From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] libvdpau: new package
Date: Fri, 17 Jun 2016 16:00:51 +0100 [thread overview]
Message-ID: <576410A3.4050404@imgtec.com> (raw)
In-Reply-To: <1466173136-25627-1-git-send-email-damien@kal-host.com>
Hello Damien,
I have inlined some comments. Please keep reading.
On 17/06/16 15:18, Damien Lanson wrote:
> Signed-off-by: Damien Lanson <damien@kal-host.com>
> ---
> package/Config.in | 1 +
> .../libvdpau/0001-missing-configh-include.patch | 28 +++++++++++++
> package/libvdpau/0002-link-with-libx11.patch | 28 +++++++++++++
> .../libvdpau/0003-vdpau-module-searchpath.patch | 43 ++++++++++++++++++++
> package/libvdpau/Config.in | 15 +++++++
> package/libvdpau/libvdpau.hash | 4 ++
> package/libvdpau/libvdpau.mk | 27 ++++++++++++
> 7 files changed, 146 insertions(+)
> create mode 100644 package/libvdpau/0001-missing-configh-include.patch
> create mode 100644 package/libvdpau/0002-link-with-libx11.patch
> create mode 100644 package/libvdpau/0003-vdpau-module-searchpath.patch
> create mode 100755 package/libvdpau/Config.in
> create mode 100644 package/libvdpau/libvdpau.hash
> create mode 100644 package/libvdpau/libvdpau.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 3d93951..ee79474 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -957,6 +957,7 @@ menu "Graphics"
> source "package/libsvgtiny/Config.in"
> source "package/libva/Config.in"
> source "package/libva-intel-driver/Config.in"
> + source "package/libvdpau/Config.in"
> source "package/libvips/Config.in"
> source "package/menu-cache/Config.in"
> source "package/opencv/Config.in"
> diff --git a/package/libvdpau/0001-missing-configh-include.patch b/package/libvdpau/0001-missing-configh-include.patch
> new file mode 100644
> index 0000000..85f7934
> --- /dev/null
> +++ b/package/libvdpau/0001-missing-configh-include.patch
> @@ -0,0 +1,28 @@
> +From: Rico Tzschichholz <ricotz@ubuntu.com>
> +Date: Tue, 1 Sep 2015 10:45:11 +0200
> +Subject: mesa_dri2: Add missing include of config.h to define _GNU_SOURCE
> +
> +Fix build with -Wimplicit-function-declaration while secure_getenv() is
> +guarded by __USE_GNU.
> +
> +Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
> +Tested-by: Stefan Dirsch <sndirsch@suse.de>
> +(cherry picked from commit 1cda354bdfd0c9ca107293b84b52f4464fdbedcc)
you are adding that patch to another project (Buildroot), so it needs
your SoB here as well.
> +---
> + src/mesa_dri2.c | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/src/mesa_dri2.c b/src/mesa_dri2.c
> +index 51e8794..420ccee 100644
> +--- a/src/mesa_dri2.c
> ++++ b/src/mesa_dri2.c
> +@@ -33,6 +33,9 @@
> + * and Jos? Hiram Soltren (jsoltren at nvidia.com)
> + */
> +
> ++#ifdef HAVE_CONFIG_H
> ++#include "config.h"
> ++#endif
> +
> + #define NEED_REPLIES
> + #include <X11/Xlibint.h>
> diff --git a/package/libvdpau/0002-link-with-libx11.patch b/package/libvdpau/0002-link-with-libx11.patch
> new file mode 100644
> index 0000000..2ecd10f
> --- /dev/null
> +++ b/package/libvdpau/0002-link-with-libx11.patch
> @@ -0,0 +1,28 @@
> +Subject: Link libvdpao with libX11 since it uses symbols from it
> +Author: Russ Allbery <rra@debian.org>
> +Forwarded: no
> +
> +libvdpau uses the symbols:
> +
> + _XEatData
> + _XReply
> + _XFlush
> + _XReadPad
> + XFree
> +
> +which are provided by libX11, but wasn't linking with it directly, resulting
> +in warnings during the package build (and possibly errors later with better
> +linkers).
Same here.
> +--- a/src/Makefile.am
> ++++ b/src/Makefile.am
> +@@ -22,7 +22,8 @@ endif
> + libvdpau_la_LIBADD = \
> + $(DLOPEN_LIBS) \
> + $(PTHREAD_LIBS) \
> +- $(XEXT_LIBS)
> ++ $(XEXT_LIBS) \
> ++ $(X11_LIBS)
> +
> + libvdpau_la_LDFLAGS = -version-info 1:0:0 -no-undefined
> +
> diff --git a/package/libvdpau/0003-vdpau-module-searchpath.patch b/package/libvdpau/0003-vdpau-module-searchpath.patch
> new file mode 100644
> index 0000000..9750871
> --- /dev/null
> +++ b/package/libvdpau/0003-vdpau-module-searchpath.patch
> @@ -0,0 +1,43 @@
> +From: Andreas Beckmann <debian@abeckmann.de>
> +Subject: search the vdpau module in multiple directories
> + start searching the vdpau module in ${ORIGIN}/vdpau, then the MODULEDIR and
> + finally fall back to /usr/lib/vdpau
And here.
> +--- a/src/vdpau_wrapper.c
> ++++ b/src/vdpau_wrapper.c
> +@@ -103,6 +103,13 @@ static char * _vdp_get_driver_name_from_
> + return driver_name;
> + }
> +
> ++static char const * _vdpau_module_search_paths[] = {
> ++ "${ORIGIN}/vdpau",
> ++ VDPAU_MODULEDIR,
> ++ "/usr/lib/vdpau",
> ++ NULL
> ++};
> ++
> + static VdpStatus _vdp_open_driver(
> + Display * display,
> + int screen)
> +@@ -117,6 +127,7 @@ static VdpStatus _vdp_open_driver(
> + char vdpau_driver_lib[PATH_MAX];
> + char const * vdpau_trace;
> + char const * func_name;
> ++ char const ** module_path;
> +
> + vdpau_driver = secure_getenv("VDPAU_DRIVER");
> + if (vdpau_driver) {
> +@@ -138,9 +146,11 @@ static VdpStatus _vdp_open_driver(
> +
> + /* Fallback to VDPAU_MODULEDIR when VDPAU_DRIVER_PATH is not set,
> + * or if we fail to create the driver path/dlopen the library. */
> +- if (!_vdp_driver_dll) {
> ++ for (module_path = _vdpau_module_search_paths;
> ++ !_vdp_driver_dll && *module_path;
> ++ ++module_path) {
> + if (snprintf(vdpau_driver_lib, sizeof(vdpau_driver_lib),
> +- DRIVER_LIB_FORMAT, VDPAU_MODULEDIR, vdpau_driver) >=
> ++ DRIVER_LIB_FORMAT, *module_path, vdpau_driver) >=
> + sizeof(vdpau_driver_lib)) {
> + fprintf(stderr, "Failed to construct driver path: path too long\n");
> + }
> diff --git a/package/libvdpau/Config.in b/package/libvdpau/Config.in
> new file mode 100755
> index 0000000..42ad09b
> --- /dev/null
> +++ b/package/libvdpau/Config.in
> @@ -0,0 +1,15 @@
> +config BR2_PACKAGE_LIBVDPAU
> + bool "libvdpau"
> + depends on BR2_INSTALL_LIBSTDCPP
> + depends on BR2_TOOLCHAIN_HAS_THREADS
> + select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
> + select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
It looks like you have an extra tab here.
> + help
> + VDPAU is the Video Decode and Presentation API for UNIX.
> + It provides an interface to video decode acceleration and
> + presentation hardware present in modern GPUs.
> +
> + http://freedesktop.org/wiki/Software/VDPAU
> +
> +comment "libvdpau needs a toolchain w/ threads, C++"
> + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
> diff --git a/package/libvdpau/libvdpau.hash b/package/libvdpau/libvdpau.hash
> new file mode 100644
> index 0000000..8953752
> --- /dev/null
> +++ b/package/libvdpau/libvdpau.hash
> @@ -0,0 +1,4 @@
> +# From https://lists.freedesktop.org/archives/xorg-announce/2015-August/002630.html
> +md5 2fa0b05a4f4d06791eec83bc9c854d14 libvdpau-1.1.1.tar.bz2
> +sha1 86516e2a962fd34f65d49115d6ddf15fd912f579 libvdpau-1.1.1.tar.bz2
> +sha256 857a01932609225b9a3a5bf222b85e39b55c08787d0ad427dbd9ec033d58d736 libvdpau-1.1.1.tar.bz2
> diff --git a/package/libvdpau/libvdpau.mk b/package/libvdpau/libvdpau.mk
> new file mode 100644
> index 0000000..78e5de5
> --- /dev/null
> +++ b/package/libvdpau/libvdpau.mk
> @@ -0,0 +1,27 @@
> +################################################################################
> +#
> +# libvdpau
> +#
> +################################################################################
> +LIBVDPAU_VERSION = 1.1.1
> +LIBVDPAU_SOURCE = libvdpau-$(LIBVDPAU_VERSION).tar.bz2
> +LIBVDPAU_SITE = http://people.freedesktop.org/~aplattner/vdpau
> +LIBVDPAU_LICENSE = NVIDIA Corporation
> +LIBVDPAU_LICENSE_FILES = COPYING
> +LIBVDPAU_INSTALL_STAGING = YES
> +
> +#Autoreconf for patch 0002-link-with-libx11.patch
> +LIBVDPAU_AUTORECONF = YES
> +
> +LIBVDPAU_DEPENDENCIES = xlib_libX11 xlib_libXext
You are unconditionally adding xlib_libX11 and xlib_libXext to the
dependencies. However, in Config.in you selected those packages only if
BR2_PACKAGE_XORG7 was previously selected. You have to do the same here:
ifeq ($(BR2_PACKAGE_XORG7),y)
LIBVDPAU_DEPENDENCIES += xlib_libX11 xlib_libXext
endif
Regards,
Vincent.
> +
> +LIBVDPAU_CONF_OPTS = --with-module-dir=/usr/lib/vdpau
> +
> +ifeq ($(BR2_PACKAGE_XPROTO_DRI2PROTO),y)
> +LIBVDPAU_DEPENDENCIES += xproto_dri2proto
> +LIBVDPAU_CONF_OPTS += --enable-dri2
> +else
> +LIBVDPAU_CONF_OPTS += --disable-dri2
> +endif
> +
> +$(eval $(autotools-package))
> \ No newline at end of file
>
next prev parent reply other threads:[~2016-06-17 15:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-17 14:18 [Buildroot] [PATCH 1/1] libvdpau: new package Damien Lanson
2016-06-17 15:00 ` Vicente Olivert Riera [this message]
2016-06-17 15:01 ` Baruch Siach
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=576410A3.4050404@imgtec.com \
--to=vincent.riera@imgtec.com \
--cc=buildroot@busybox.net \
/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.