All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sen Hastings <sen@hastings.org>
To: Javad Rahimipetroudi via buildroot <buildroot@buildroot.org>
Cc: buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 1/2] package/libplacebo: add libplacebo package
Date: Mon, 21 Oct 2024 21:15:54 -0700	[thread overview]
Message-ID: <Zxcm4lWvOQcbZ2YU@shale> (raw)
In-Reply-To: <20240719161557.8832-1-javad.rahimipetroudi@mind.be>

On Fri, Jul 19, 2024 at 06:15:56PM +0200, Javad Rahimipetroudi via buildroot wrote:
> This patch adds libplacebo package that is used
> by mpv player.
> libplacebo is the core rendering algorithms and
> ideas of mpv rewritten as an independent library
> and contains a large assortment of video processing
> shaders, focusing on both quality and performance.
> 

Great, this works! 

tested on: x86_64 with musl stable 2024.05-1 bootlin toolchain

I was thinking however: perhaps the package should live under "Multimedia" 
instead of "Audio/Sound"?

> Signed-off-by: Javad Rahimipetroudi <javad.rahimipetroudi@mind.be>
Tested-by: Sen Hastings <sen@hastings.org>
> ---
>  package/Config.in                             |  1 +
>  ...ild-fix-linker-error-in-uclibc-sparc.patch | 45 +++++++++++++++++++
>  ...h-add-static_assert-define-for-ulibc.patch | 36 +++++++++++++++
>  package/libplacebo/Config.in                  | 18 ++++++++
>  package/libplacebo/libplacebo.hash            |  2 +
>  package/libplacebo/libplacebo.mk              | 15 +++++++
>  6 files changed, 117 insertions(+)
>  create mode 100644 package/libplacebo/0001-meson.build-fix-linker-error-in-uclibc-sparc.patch
>  create mode 100644 package/libplacebo/0002-src-pl_assert.h-add-static_assert-define-for-ulibc.patch
>  create mode 100644 package/libplacebo/Config.in
>  create mode 100644 package/libplacebo/libplacebo.hash
>  create mode 100644 package/libplacebo/libplacebo.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index f2e10b2b5e..1207001640 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1509,6 +1509,7 @@ menu "Audio/Sound"
>  	source "package/libmodplug/Config.in"
>  	source "package/libmpdclient/Config.in"
>  	source "package/libopenmpt/Config.in"
> +	source "package/libplacebo/Config.in"
>  	source "package/libreplaygain/Config.in"
>  	source "package/libsamplerate/Config.in"
>  	source "package/libsidplay2/Config.in"
> diff --git a/package/libplacebo/0001-meson.build-fix-linker-error-in-uclibc-sparc.patch b/package/libplacebo/0001-meson.build-fix-linker-error-in-uclibc-sparc.patch
> new file mode 100644
> index 0000000000..3056d28651
> --- /dev/null
> +++ b/package/libplacebo/0001-meson.build-fix-linker-error-in-uclibc-sparc.patch
> @@ -0,0 +1,45 @@
> +From 4386f3e3b3d02c55776e3f674d8447fd24388c2c Mon Sep 17 00:00:00 2001
> +From: Javad Rahimipetroudi <javad.rahimipetroudi@mind.be>
> +Date: Fri, 19 Jul 2024 07:02:48 +0200
> +Subject: [PATCH] meson.build: add libatomic dependency if needed  
> +
> +This PR fixes the problem related to not finding the libatomic during the
> +build. Some combinations or architecture and libc (e.g. uClibc on SPARC)
> +operations in a separate library and don't link with it automatically.
> +An optional find_library to meson.build has been added to 
> +discover this.
> +
> +
> +Fixes:
> + - https://github.com/haasn/libplacebo/issues/278
> +
> +Signed-off-by: Javad Rahimipetroudi <javad.rahimipetroudi@mind.be>
> +Upstream: https://github.com/haasn/libplacebo/commit/4386f3e3b3d02c55776e3f674d8447fd24388c2c
> +---
> + meson.build | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/meson.build b/meson.build
> +index a73e49ff..f8cbf9f1 100644
> +--- a/meson.build
> ++++ b/meson.build
> +@@ -448,6 +448,7 @@ add_project_link_arguments(link_args, language: ['c', 'cpp'])
> + # Global dependencies
> + fs = import('fs')
> + libm = cc.find_library('m', required: false)
> ++atomic = cc.find_library('atomic', required: false)
> + thirdparty = meson.project_source_root()/'3rdparty'
> + python = import('python').find_installation()
> + python_env = environment()
> +@@ -473,7 +474,7 @@ else
> +     )
> + endif
> + 
> +-build_deps = [ libm, threads ]
> ++build_deps = [ libm, threads, atomic]
> + 
> + subdir('tools')
> + subdir('src')
> +-- 
> +2.45.2
> +
> diff --git a/package/libplacebo/0002-src-pl_assert.h-add-static_assert-define-for-ulibc.patch b/package/libplacebo/0002-src-pl_assert.h-add-static_assert-define-for-ulibc.patch
> new file mode 100644
> index 0000000000..6960c2f219
> --- /dev/null
> +++ b/package/libplacebo/0002-src-pl_assert.h-add-static_assert-define-for-ulibc.patch
> @@ -0,0 +1,36 @@
> +From 0182e2b94bbc6bb964f96527d18e93c9b4709a3a Mon Sep 17 00:00:00 2001
> +From: Javad Rahimipetroudi <javad.rahimipetroudi@mind.be>
> +Date: Fri, 19 Jul 2024 07:57:45 +0200
> +Subject: [PATCH] src/pl_assert.h:add static_assert define for ulibc
> +
> +This PR adds the static_assert macro defination for uClibc that is
> +missed in some platforms. However, it is limited to C versions lower
> +than C23. From C23, static_assert is not defined as macro anymore:
> +https://en.cppreference.com/w/c/language/_Static_assert
> +
> +Signed-off-by: Javad Rahimipetroudi <javad.rahimipetroudi@mind.be>
> +Upstream: https://github.com/haasn/libplacebo/commit/0182e2b94bbc6bb964f96527d18e93c9b4709a3a
> +---
> + src/pl_assert.h | 6 ++++++
> + 1 file changed, 6 insertions(+)
> +
> +diff --git a/src/pl_assert.h b/src/pl_assert.h
> +index b4c6656c..de9d3547 100644
> +--- a/src/pl_assert.h
> ++++ b/src/pl_assert.h
> +@@ -20,6 +20,12 @@
> + #include <stdio.h>
> + #include <assert.h>
> + 
> ++#if !defined (__cplusplus)
> ++#if (__STDC_VERSION__ < 202301L)
> ++#define static_assert _Static_assert
> ++#endif
> ++#endif
> ++
> + #ifndef NDEBUG
> + # define pl_assert assert
> + #else
> +-- 
> +2.45.2
> +
> diff --git a/package/libplacebo/Config.in b/package/libplacebo/Config.in
> new file mode 100644
> index 0000000000..e2fc434248
> --- /dev/null
> +++ b/package/libplacebo/Config.in
> @@ -0,0 +1,18 @@
> +config BR2_PACKAGE_LIBPLACEBO
> +	bool "libplacebo"
> +	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 #C++20
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC
> +	depends on !BR2_STATIC_LIBS # needs <dlfcn.h>
> +
> +	help
> +	  libplacebo is, in a nutshell, the core rendering
> +	  algorithms and ideas of mpv rewritten as an
> +	  independent library. As of today, libplacebo
> +	  contains a large assortment of video processing
> +	  shaders, focusing on both quality and performance.
> +
> +comment "libplacebo needs a toolchain w/ dynamic library, threads, and dynamic loading"
> +	depends on BR2_USE_MMU
> +	depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
> diff --git a/package/libplacebo/libplacebo.hash b/package/libplacebo/libplacebo.hash
> new file mode 100644
> index 0000000000..d1588a608b
> --- /dev/null
> +++ b/package/libplacebo/libplacebo.hash
> @@ -0,0 +1,2 @@
> +sha256  afaaf16668a1dfaa5f5bf7329713d0dd89cf2ca0dbe7c68aeea894d333e2503e  libplacebo-v7.349.0-git4.tar.gz
> +sha256  b3aa400aca6d2ba1f0bd03bd98d03d1fe7489a3bbb26969d72016360af8a5c9d  LICENSE
> diff --git a/package/libplacebo/libplacebo.mk b/package/libplacebo/libplacebo.mk
> new file mode 100644
> index 0000000000..ae3cb68022
> --- /dev/null
> +++ b/package/libplacebo/libplacebo.mk
> @@ -0,0 +1,15 @@
> +################################################################################
> +#
> +# libplacebo
> +#
> +################################################################################
> +
> +LIBPLACEBO_VERSION = v7.349.0
> +LIBPLACEBO_SITE = https://github.com/haasn/libplacebo
> +LIBPLACEBO_SITE_METHOD = git
> +LIBPLACEBO_GIT_SUBMODULES = YES
> +LIBPLACEBO_LICENSE = LGPL-2.1
> +LIBPLACEBO_LICENSE_FILES = LICENSE
> +LIBPLACEBO_INSTALL_STAGING = YES
> +
> +$(eval $(meson-package))
> -- 
> 2.45.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  parent reply	other threads:[~2024-10-22  4:26 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-19 16:15 [Buildroot] [PATCH 1/2] package/libplacebo: add libplacebo package Javad Rahimipetroudi via buildroot
2024-07-19 16:15 ` [Buildroot] [PATCH 2/2] package/mpv: bump version to v0.38.0 Javad Rahimipetroudi via buildroot
2025-05-16 16:59   ` Arnout Vandecappelle via buildroot
2024-10-22  4:15 ` Sen Hastings [this message]
     [not found] <20240719161557.8832-1-javad.rahimipetroudi__49989.5562579454$1721405789$gmane$org@mind.be>
2024-08-02  6:01 ` [Buildroot] [PATCH 1/2] package/libplacebo: add libplacebo package Bernd Kuhls
  -- strict thread matches above, loose matches on Subject: below --
2025-10-03 14:30 Bernd Kuhls
2026-01-01 16:31 ` Thomas Petazzoni via buildroot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Zxcm4lWvOQcbZ2YU@shale \
    --to=sen@hastings.org \
    --cc=buildroot@buildroot.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.