Bug#647481: [PATCH] please transaction gstreamer0.10 to multiarch
Package: gstreamer0.10 Version: 0.10.35-1 Followup-For: Bug #647481 User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu precise ubuntu-patch Hi guys, In Ubuntu, the attached patch was applied to make gstreamer compatible with multiarch, as described at http://wiki.debian.org/Multiarch/Implementation. gstreamer is one of the last major bits needed to have a multiarch-friendly wine package in Ubuntu; I presume it will be useful to Debian for the same reason. Following this upload, I will be converting the various gstreamer plugin packages over to use the multiarch path as well, with a hard-coded versioned dependency on libgstreamer0.10-0 (= 0.10.35-1ubuntu1) to ensure that these plugins are always installed against a version of libgst that knows to look in that directory. I don't see a good way to forcibly bump the dependency for plugins without also bumping it for applications since libgst is using shlibs (no symbols files), but I'm open to working with you to find a more automated solution for dependency generation if you think that's important here. This adds a new patch to the upstream source to look in the multiarch library path with a fallback to the legacy /usr/lib/gstreamer-0.10 path; this way we don't have to declare breaks: against an arbitrary set of packages using the legacy path. I also have modified the ia32-libs hack d dpatch to regard /usr/lib32 as only a fallback equivalent to /usr/lib - so plugins in the multiarch directory will always take precedence, which I believe is the optimal behavior. I have tested that totem is able to load plugins from both directories with this change applied. The changelog for the Ubuntu upload is: * Build for multiarch. * debian/patches/79_multiarch-backwards-compat.patch, debian/patches/80_ia32-hack.patch: PLUGINDIR now always points to the multiarch path, so look in /usr/lib/gstreamer-0.10 as a fallback (and /usr/lib32/gstreamer-0.10, in case ia32-libs is still around). Thanks for considering the patch. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developerhttp://www.debian.org/ slanga...@ubuntu.com vor...@debian.org === modified file 'debian/compat' --- debian/compat 2010-11-01 20:11:56 + +++ debian/compat 2011-12-08 00:43:02 + @@ -1 +1 @@ -7 +9 === modified file 'debian/control' --- debian/control 2011-05-14 11:41:04 + +++ debian/control 2011-12-09 05:58:22 + @@ -6,8 +6,8 @@ Sebastien Bacher seb...@debian.org, Sebastian Dröge sl...@debian.org, Sjoerd Simons sjo...@debian.org -Build-Depends: debhelper (= 7), - cdbs (= 0.4.20), +Build-Depends: debhelper (= 8.1.3~), + cdbs (= 0.4.93~), gnome-pkg-tools (= 0.7), autotools-dev, dh-autoreconf, @@ -44,7 +44,9 @@ Package: libgstreamer0.10-0 Architecture: any +Multi-Arch: same Section: libs +Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Suggests: gstreamer0.10-tools, @@ -64,6 +66,7 @@ Package: libgstreamer0.10-0-dbg Architecture: any +Multi-Arch: same Section: debug Priority: extra Depends: libgstreamer0.10-0 (= ${binary:Version}), @@ -134,7 +137,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, pkg-config, - libgstreamer0.10-0 (= 0.10.33) + libgstreamer0.10-0 (= 0.10.35) Suggests: gstreamer0.10-plugins-base Description: Tools for use with GStreamer GStreamer is a streaming media framework, based on graphs of filters === modified file 'debian/control.in' --- debian/control.in 2011-04-27 14:04:36 + +++ debian/control.in 2011-12-09 05:58:22 + @@ -6,8 +6,8 @@ Sebastien Bacher seb...@debian.org, Sebastian Dröge sl...@debian.org, Sjoerd Simons sjo...@debian.org -Build-Depends: debhelper (= 7), - cdbs (= 0.4.20), +Build-Depends: debhelper (= 8.1.3~), + cdbs (= 0.4.93~), gnome-pkg-tools (= 0.7), autotools-dev, dh-autoreconf, @@ -44,7 +44,9 @@ Package: @GST_LIB@ Architecture: any +Multi-Arch: same Section: libs +Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Suggests: @GST_PKGNAME@-tools, @@ -64,6 +66,7 @@ Package: @GST_LIB@-dbg Architecture: any +Multi-Arch: same Section: debug Priority: extra Depends: @GST_LIB@ (= ${binary:Version}), === modified file 'debian/gir1.2-gstreamer.install' --- debian/gir1.2-gstreamer.install 2010-12-12 19:45:03 + +++ debian/gir1.2-gstreamer.install 2011-12-08 01:08:26 + @@ -1 +1 @@ -debian/tmp/usr/lib/girepository-* +debian/tmp/usr/lib/*/girepository-1.0 usr/lib === modified file 'debian/libgstreamer-dev.install' --- debian/libgstreamer-dev.install 2009-09-12 12:23:52
Bug#647481: [PATCH] please transaction gstreamer0.10 to multiarch
Raof said: You say you've tested this on Ubuntu - to what extent have you tested? This looks like it will break everything depending on libgstreamer0.10-0 because it won't be able to find the plugins until they're updated to install in the multiarch paths. If so, then (a) patches should be posted for the plugin packages (you may have already done this; I haven't checked), and (b) this package should declare a Breaks: on the plugin packages with versions less than the version in which they're multiarched. The (a) part appears to be done: #647485 [n| | ] [gst-plugins-base0.10] [PATCH] please transaction gst-plugins-base0.10 to multiarch #647486 [n| | ] [gst-plugins-good0.10] [PATCH] please transaction gst-plugins-good0.10 to multiarch #647487 [n| | ] [gst-plugins-bad0.10] [PATCH] please transaction gst-plugins-bad0.10 to multiarch #647488 [n| | ] [gst-plugins-ugly0.10] [PATCH] please transaction gst-plugins-ugly0.10 to multiarch #647490 [n| | ] [gstreamer0.10-ffmpeg] [PATCH] please transaction gstreamer0.10-ffmpeg to multiarch Fixing (b) is trivial, I can provide an updated patch if you want. Since we are moving the .la files anyways, perhaps it would be a good moment to remove them completly, closing #633319 at the same time? Riku -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#647481: [PATCH] please transaction gstreamer0.10 to multiarch
Package: gstreamer0.10 Version: 0.10.35-1 I multiarch it and test it on Ubuntu 11.10, it works well. And another several package also multiarched. And I will file bugs for them. -- YunQiang Su diff -ur debian/changelog gstreamer0.10-0.10.35/debian/changelog --- debian/changelog 2011-06-23 14:50:08.0 +0800 +++ gstreamer0.10-0.10.35/debian/changelog 2011-11-02 12:39:57.441011417 +0800 @@ -1,3 +1,10 @@ +gstreamer0.10 (0.10.35-2~deepin9) oneiric; urgency=low + + * Multiarch it. + * Modify search directory of dh_gstscancodecs. + + -- YunQiang Su wzss...@gmail.com Sat, 29 Oct 2011 17:08:39 +0800 + gstreamer0.10 (0.10.35-1) unstable; urgency=low * New upstream bugfix release, Nuclear Fission. diff -ur debian/compat gstreamer0.10-0.10.35/debian/compat --- debian/compat 2011-05-10 21:41:23.0 +0800 +++ gstreamer0.10-0.10.35/debian/compat 2011-10-29 17:14:28.597846316 +0800 @@ -1 +1 @@ -7 +9 diff -ur debian/control gstreamer0.10-0.10.35/debian/control --- debian/control 2011-05-10 21:48:11.0 +0800 +++ gstreamer0.10-0.10.35/debian/control 2011-10-30 03:28:23.616501313 +0800 @@ -6,8 +6,8 @@ Sebastien Bacher seb...@debian.org, Sebastian Dröge sl...@debian.org, Sjoerd Simons sjo...@debian.org -Build-Depends: debhelper (= 7), - cdbs (= 0.4.20), +Build-Depends: debhelper (= 8.1.3), + cdbs (= 0.4.93), gnome-pkg-tools (= 0.7), autotools-dev, dh-autoreconf, @@ -39,7 +39,7 @@ netpbm, libxml2-doc, libglib2.0-doc -Standards-Version: 3.8.4 +Standards-Version: 3.9.2 Homepage: http://gstreamer.freedesktop.org Package: libgstreamer0.10-0 @@ -47,6 +47,8 @@ Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same Suggests: gstreamer0.10-tools, gstreamer0.10-plugins-base Conflicts: libgstreamer-plugins-base0.10-0 ( 0.10.11cvs20070110-0ubuntu5), @@ -134,7 +136,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, pkg-config, - libgstreamer0.10-0 (= 0.10.33) + libgstreamer0.10-0 (= 0.10.35) Suggests: gstreamer0.10-plugins-base Description: Tools for use with GStreamer GStreamer is a streaming media framework, based on graphs of filters diff -ur debian/control.in gstreamer0.10-0.10.35/debian/control.in --- debian/control.in 2011-05-10 21:41:23.0 +0800 +++ gstreamer0.10-0.10.35/debian/control.in 2011-10-30 03:28:11.272440109 +0800 @@ -6,8 +6,8 @@ Sebastien Bacher seb...@debian.org, Sebastian Dröge sl...@debian.org, Sjoerd Simons sjo...@debian.org -Build-Depends: debhelper (= 7), - cdbs (= 0.4.20), +Build-Depends: debhelper (= 8.1.3), + cdbs (= 0.4.93), gnome-pkg-tools (= 0.7), autotools-dev, dh-autoreconf, @@ -39,7 +39,7 @@ netpbm, libxml2-doc, libglib2.0-doc -Standards-Version: 3.8.4 +Standards-Version: 3.9.2 Homepage: http://gstreamer.freedesktop.org Package: @GST_LIB@ @@ -47,6 +47,8 @@ Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same Suggests: @GST_PKGNAME@-tools, @GST_PKGNAME@-plugins-base Conflicts: libgstreamer-plugins-base0.10-0 ( 0.10.11cvs20070110-0ubuntu5), diff -ur debian/dh_gstscancodecs gstreamer0.10-0.10.35/debian/dh_gstscancodecs --- debian/dh_gstscancodecs 2011-05-10 21:41:23.0 +0800 +++ gstreamer0.10-0.10.35/debian/dh_gstscancodecs 2011-11-02 12:39:34.512897721 +0800 @@ -21,7 +21,7 @@ gstreamer-based applications. dh_gstscancodecs generates substitution variable for debian/control, -by scanning libraries /usr/lib/gstreamer-0.10/*.so. +by scanning libraries /usr/lib/$deb_host_multiarch/gstreamer-0.10/*.so. The generated substitution variables are @@ -68,7 +68,9 @@ init(); -$::pluginlibdirprefix = '/usr/lib/gstreamer-'; +my $deb_host_multiarch = `dpkg-architecture -qDEB_HOST_MULTIARCH`; +chop $deb_host_multiarch; +$::pluginlibdirprefix = '/usr/lib/'.$deb_host_multiarch.'/gstreamer-'; foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp = tmpdir($package); diff -ur debian/gir1.2-gstreamer.install gstreamer0.10-0.10.35/debian/gir1.2-gstreamer.install --- debian/gir1.2-gstreamer.install 2011-05-10 21:41:23.0 +0800 +++ gstreamer0.10-0.10.35/debian/gir1.2-gstreamer.install 2011-10-30 01:51:11.131579584 +0800 @@ -1 +1 @@ -debian/tmp/usr/lib/girepository-* +debian/tmp/usr/lib/*/girepository-* usr/lib diff -ur debian/libgstreamer-dev.install gstreamer0.10-0.10.35/debian/libgstreamer-dev.install --- debian/libgstreamer-dev.install 2011-05-10 21:41:23.0 +0800 +++ gstreamer0.10-0.10.35/debian/libgstreamer-dev.install 2011-10-29 17:06:32.599485973 +0800 @@ -1,7 +1,7 @@ debian/tmp/usr/include