All of lore.kernel.org
 help / color / mirror / Atom feed
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
> 

  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.