[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#688861: freeze exception: libxvmc/1.0.7-1.1 - adding a libxvmc1-i386:i386 package

Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please approve the following changes for package libxvmc

As we are not going to get libxvmc turned to multi-arch for wheezy (see
#640499) I'm now trying another approach with minimal changes to the
libxvmc package:

Can we add a new package

	Package: libxvmc1-i386
	Section: libs
	Priority: extra
	Architecture: i386
	Multi-arch: same
	Pre-Depends: ${misc:Pre-Depends}
	Depends: ${shlibs:Depends}, ${misc:Depends}, x11-common
	Description: X11 Video extension library (alternate i386 package)

that ships another copy of the libraries in /usr/lib/i386-linux-gnu/
To avoid installing libxvmc1-i386:i386 and libxvmc1:i386 at the same
time and have two copies of the same library available, I'm adding

	Package: libxvmc1
	Conflicts: libxvmc1-i386 [i386]

and to avoid picking up a dependency on libxvmc1-i386 by accident, its
shlibs file points to libxvmc1.

I added a lintian-overrides file, but that is not being installed as I
wanted to avoid changing anything in debian/rules.

Note that this new package does not ship the conffile as it is expected
to be only installed along libxvmc1:amd64 which comes with the conffile.
(This dependency can't be expressed by package relationships.)

This will keep the existing non-multiarch libxvmc1 unchanged, the build
system is untouched, nothing will start to use the alternate copy
package accidently. For libgl1-nvidia-glx:i386 to actually pick up this
alternate library, we need to add a shlibs.local file (in
nvidia-graphics-drivers) with
	libXvMC 1 libxvmc1 | libxvmc1-i386 [i386]

I chose to add the extra package to the libxvmc source package as that
will avoid forking (and therefore code duplication) and getting libxvmc1
and libxvmc1-i386 out of sync. Even with a second copy in the a binary
package in the archive, there is no overhead in case a security update
for libxvmc should be neccessary.

Judging by the number of bug reports, it is really important for our
users to restore the ability to run 32-bit OpenGL applications on a
amd64 system and get accelleration by the non-free nvidia driver.
That was working in squeeze and will be considered as a serious
regression if this is not getting fixed in some way for wheezy.
See e.g. #685054, #686033, #676723, #688714

I'll be happy to assist getting a proper multi-arch libxvmc into jessie
and to clean up this temporary package that we need for wheezy.

diffstat for libxvmc_1.0.7-1 libxvmc_1.0.7-1.1

 debian/libxvmc1-i386.install           |    2 ++
 debian/libxvmc1-i386.lintian-overrides |    4 ++++
 debian/libxvmc1-i386.shlibs            |    2 ++
 libxvmc-1.0.7/debian/changelog         |   12 ++++++++++++
 libxvmc-1.0.7/debian/control           |   26 ++++++++++++++++++++++++++
 5 files changed, 46 insertions(+)

diff -u libxvmc-1.0.7/debian/control libxvmc-1.0.7/debian/control
--- libxvmc-1.0.7/debian/control
+++ libxvmc-1.0.7/debian/control
@@ -22,6 +22,7 @@
 Section: libs
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}, x11-common
+Conflicts: libxvmc1-i386 [i386]
 Description: X11 Video extension library
  libXvMC provides an X Window System client interface to the
  XVideo-MotionCompensation extension to the X protocol.
@@ -37,6 +38,31 @@
  This module can be found at
+Package: libxvmc1-i386
+Section: libs
+Priority: extra
+Architecture: i386
+Multi-arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}, x11-common
+Description: X11 Video extension library (alternate i386 package)
+ libXvMC provides an X Window System client interface to the
+ XVideo-MotionCompensation extension to the X protocol.
+ .
+ The XVideo-MotionCompensation extension allows for further accelerated drawing
+ of videos.  Video data may be sent at earlier stages of the decoding pipeline
+ than raw YUV data.  At the moment, driver support for XvMC is poor to
+ non-existent.
+ .
+ More information about X.Org can be found at:
+ <URL:http://www.X.org>
+ .
+ This module can be found at
+ git://anongit.freedesktop.org/git/xorg/lib/libXvMC
+ .
+ This is a multiarchified package intended to be co-installable with
+ libxvmc1:amd64.
 Package: libxvmc1-dbg
 Section: debug
 Architecture: any
diff -u libxvmc-1.0.7/debian/changelog libxvmc-1.0.7/debian/changelog
--- libxvmc-1.0.7/debian/changelog
+++ libxvmc-1.0.7/debian/changelog
@@ -1,3 +1,15 @@
+libxvmc (2:1.0.7-1.1) UNRELEASED; urgency=low
+  * Non-maintainer upload.
+  * Add libxvmc1-i386 package, a partially multiarchified package that is
+    co-installable with libxvmc1:amd64. Works around missing multiarch
+    support, see #640499. Let libxvmc1:i386 conflict with this new package.
+    The .shlibs points to libxvmc1 instead of libxvmc1-i386 to avoid
+    accidentally adding a dependency on this package.
+    (Closes: #685054, #686033, #676723, #687373, #688714)
+ -- Andreas Beckmann <debian@abeckmann.de>  Wed, 26 Sep 2012 10:52:13 +0200
 libxvmc (2:1.0.7-1) unstable; urgency=low
   [ Robert Hooker ]
only in patch2:
--- libxvmc-1.0.7.orig/debian/libxvmc1-i386.lintian-overrides
+++ libxvmc-1.0.7/debian/libxvmc1-i386.lintian-overrides
@@ -0,0 +1,4 @@
+# the libxvmc1-i386 package is an intentional clone of libxvmc1:i386
+# that adds partial multiarch support (see #640499)
+package-name-doesnt-match-sonames libXvMC1 libXvMCW1
+shlibs-declares-dependency-on-other-package libxvmc1
only in patch2:
--- libxvmc-1.0.7.orig/debian/libxvmc1-i386.shlibs
+++ libxvmc-1.0.7/debian/libxvmc1-i386.shlibs
@@ -0,0 +1,2 @@
+libXvMC 1 libxvmc1
+libXvMCW 1 libxvmc1
only in patch2:
--- libxvmc-1.0.7.orig/debian/libxvmc1-i386.install
+++ libxvmc-1.0.7/debian/libxvmc1-i386.install
@@ -0,0 +1,2 @@
+usr/lib/libXvMC.so.1*	usr/lib/i386-linux-gnu/
+usr/lib/libXvMCW.so.1*	usr/lib/i386-linux-gnu/

Reply to: