Package: libvdpau
Version: 0.4-3
Severity: wishlist
Tags: patch

Hi Andres,

I'm attaching a patch to build a 32-bit libvdpau.so.1 on amd64, so that
we have the possibility to convert the nvidia-libvdpau1{-ia32} packages
to transitional dummy packages later and only keep one variant of the
vdpau wrappers in Debian.

 * Build lib32vdpau1 [amd64], so we can replace nvidia-libvdpau-ia32.
   Build rules inspired by lib32z1. (Closes: #xxxxxx)
 * Add lib{,32}vdpau1.symbols.
 * Do not ship /usr/lib/vdpau/libvdpau_trace.so, will be used never.

The last change removes a superfluous file - nothing is going to be
linked with libvdpau_trace.so anyway and the wrapper no longer dlopen()s
that file.

The patched package builds on i386 and amd64 and installing lib32vdpau1
replaces nvidia-libvdpau1-ia32 (190.53) without problems. I did not try
running anything that would actually use the 32-bit wrapper. A 32-bit
mplayer might be a target to test this. Did someone ever test whether
nvidia-libvdpau1-ia32 + nvidia-vdpau-driver-ia32 was actually
functional?


Andreas


-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (800, 'testing'), (800, 'stable'), (600, 'unstable'), (130, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.31-0-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Index: debian/control
===================================================================
--- debian/control	(.../trunk)	(revision 1559)
+++ debian/control	(.../branches/10-lib32vdpau1)	(revision 1559)
@@ -7,6 +7,7 @@
 DM-Upload-Allowed: yes
 Build-Depends: debhelper (>= 7.0.50), pkg-config, libx11-dev,
  x11proto-dri2-dev (>= 2.2), libxext-dev,
+ g++-multilib [amd64], ia32-libs [amd64],
 Build-Depends-Indep: doxygen, graphviz, texlive-binaries, texlive-base,
 Standards-Version: 3.8.4
 Homepage: http://cgit.freedesktop.org/~aplattner/libvdpau
@@ -51,6 +52,22 @@
  .
  This package contains the VDPAU wrapper and trace libraries.
 
+Package: lib32vdpau1
+Architecture: amd64
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Replaces: nvidia-libvdpau1-ia32
+Conflicts: nvidia-libvdpau1-ia32
+Suggests: nvidia-vdpau-driver-ia32 [amd64] | vdpau-driver-ia32
+Description: Video Decode and Presentation API for Unix (32-bit libraries)
+ VDPAU (Video Decode and Presentation API for Unix) is an open source library
+ (libvdpau) and API designed by NVIDIA originally for its GeForce 8 series and
+ later GPU hardware, targeted at the X Window System on Unix operating-systems
+ (including Linux, FreeBSD, and Solaris). This VDPAU API
+ allows video programs to offload portions of the video decoding process and
+ video post-processing to the GPU video-hardware.
+ .
+ This package contains the VDPAU wrapper and trace 32-bit libraries.
+
 Package: libvdpau-doc
 Architecture: all
 Section: doc
Index: debian/lib32vdpau1.symbols
===================================================================
--- debian/lib32vdpau1.symbols	(.../trunk)	(revision 0)
+++ debian/lib32vdpau1.symbols	(.../branches/10-lib32vdpau1)	(revision 1559)
@@ -0,0 +1,5 @@
+libvdpau.so.1 lib32vdpau1 #MINVER#
+ _vdp_dri2conn...@base 0.4
+ _vdp_dri2queryextens...@base 0.4
+ _vdp_dri2queryvers...@base 0.4
+ vdp_device_create_...@base 0.2
Index: debian/changelog
===================================================================
--- debian/changelog	(.../trunk)	(revision 1559)
+++ debian/changelog	(.../branches/10-lib32vdpau1)	(revision 1559)
@@ -1,3 +1,15 @@
+libvdpau (0.4-3.0anbe0) unstable; urgency=low
+
+  * Non-maintainer upload.
+
+  [ Andreas Beckmann ]
+  * Build lib32vdpau1 [amd64], so we can replace nvidia-libvdpau-ia32.
+    Build rules inspired by lib32z1. (Closes: #xxxxxx)
+  * Add lib{,32}vdpau1.symbols.
+  * Do not ship /usr/lib/vdpau/libvdpau_trace.so, will be used never.
+
+ -- Andreas Beckmann <deb...@abeckmann.de>  Mon, 01 Mar 2010 12:47:48 +0100
+
 libvdpau (0.4-3) unstable; urgency=low
 
   * Enable dri2 feature. Requires x11proto-dri2-dev (>= 2.2) and libxext-dev.
Index: debian/libvdpau-dev.install
===================================================================
--- debian/libvdpau-dev.install	(.../trunk)	(revision 1559)
+++ debian/libvdpau-dev.install	(.../branches/10-lib32vdpau1)	(revision 1559)
@@ -1,4 +1,3 @@
 usr/lib/libvdpau.so
-usr/lib/vdpau/libvdpau_trace.so
 usr/lib/pkgconfig
 usr/include
Index: debian/lib32vdpau1.lintian-overrides
===================================================================
--- debian/lib32vdpau1.lintian-overrides	(.../trunk)	(revision 0)
+++ debian/lib32vdpau1.lintian-overrides	(.../branches/10-lib32vdpau1)	(revision 1559)
@@ -0,0 +1 @@
+lib32vdpau1: non-dev-pkg-with-shlib-symlink usr/lib32/libvdpau.so.1.0.0 usr/lib32/libvdpau.so
Index: debian/rules
===================================================================
--- debian/rules	(.../trunk)	(revision 1559)
+++ debian/rules	(.../branches/10-lib32vdpau1)	(revision 1559)
@@ -1,5 +1,9 @@
 #!/usr/bin/make -f
 
+#export DH_VERBOSE=1
+
+DEB_HOST_ARCH       ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+
 # Used to enable documentation if dependencies are available
 define cond_enable
 	$(shell if test -x /usr/bin/doxygen && test -x /usr/bin/dot \
@@ -10,9 +14,41 @@
 CONFIGURE_OPTIONS ?= $(call cond_enable) \
 		     --enable-dri2
 
+32-ARCHS=amd64
+ifneq (,$(findstring $(DEB_HOST_ARCH), $(32-ARCHS)))
+EXTRA_CONFIGURE	+= configure32
+EXTRA_BUILD	+= build32
+EXTRA_INSTALL	+= install32
+endif
+
 %:
 	dh $@
 
-override_dh_auto_configure:
+binary: binary-indep binary-arch ;
+
+override_dh_auto_configure: $(EXTRA_CONFIGURE)
 	dh_testdir
 	./configure --prefix=/usr $(CONFIGURE_OPTIONS)
+
+configure32:
+	dh_testdir
+	mkdir debian/32
+	cd debian/32 && CC="$(CC) -m32" CXX="$(CXX) -m32" \
+		../../configure --prefix=/usr --libdir=/usr/lib32 \
+		$(CONFIGURE_OPTIONS)
+
+override_dh_auto_build: $(EXTRA_BUILD)
+	dh_auto_build
+
+build32:
+	dh_auto_build --sourcedirectory=debian/32
+
+override_dh_auto_install: $(EXTRA_INSTALL)
+	dh_auto_install
+
+install32:
+	dh_auto_install --sourcedirectory=debian/32
+
+clean:
+	dh clean
+	rm -rf debian/32
Index: debian/lib32vdpau1.install
===================================================================
--- debian/lib32vdpau1.install	(.../trunk)	(revision 0)
+++ debian/lib32vdpau1.install	(.../branches/10-lib32vdpau1)	(revision 1559)
@@ -0,0 +1,3 @@
+usr/lib32/libvdpau.so
+usr/lib32/libvdpau.so.*
+usr/lib32/vdpau/libvdpau_trace.so.*
Index: debian/libvdpau1.symbols
===================================================================
--- debian/libvdpau1.symbols	(.../trunk)	(revision 0)
+++ debian/libvdpau1.symbols	(.../branches/10-lib32vdpau1)	(revision 1559)
@@ -0,0 +1,5 @@
+libvdpau.so.1 libvdpau1 #MINVER#
+ _vdp_dri2conn...@base 0.4
+ _vdp_dri2queryextens...@base 0.4
+ _vdp_dri2queryvers...@base 0.4
+ vdp_device_create_...@base 0.2

Reply via email to