Bug#755874: gobject-introspection: [patch] use multi-arch pathes for the .typelib files
On Tue, Sep 16, 2014 at 04:08:40PM +0100, Iain Lane wrote: there's only a few failures, most of which are packages which respect typelibdir and so need updating. https://people.debian.org/~laney/gi-ma/grep.txt Hi, I maintain a couple of those (event-dance and grilo) and I'm following the progress of this. You don't need to send me patches, just ping me or file a bug when you're moving g-i to unstable and I'll update my packages to make them build using the new path. Berto -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#755874: gobject-introspection: [patch] use multi-arch pathes for the .typelib files
On Mon, Sep 15, 2014 at 11:07:55AM +0100, Iain Lane wrote: On Thu, Sep 04, 2014 at 02:13:59PM +0200, Michael Vogt wrote: […] Thanks a lot for your experimental upload! I played with the new version in a PPA and did a bunch of package updates in my test repo (ppa:mvo/gir-multiarch). While doing that I noticed that the dh_girepository needs a small tweak (attached). Without that it fails for me for json-glib (and probably more, it was just the first failure I noticed). Thanks again - I just uploaded this fix to exp now. :) For the next step I'll rebuild all gi packages in Debian with this gobject-introspection version so we can see what fails. I did this today. The build logs are at https://people.debian.org/~laney/gi-ma/ there's only a few failures, most of which are packages which respect typelibdir and so need updating. https://people.debian.org/~laney/gi-ma/grep.txt It shouldn't be too hard to come up with patches for all of these, and then it would be safe to upload this to unstable, IMHO. I'll do these file bugs when I have some downtime in the next couple of weeks (help appreciated though). After that the rest could be updated whenever people want. -- Iain Lane [ i...@orangesquash.org.uk ] Debian Developer [ la...@debian.org ] Ubuntu Developer [ la...@ubuntu.com ] signature.asc Description: Digital signature
Bug#755874: gobject-introspection: [patch] use multi-arch pathes for the .typelib files
On Thu, Sep 04, 2014 at 02:13:59PM +0200, Michael Vogt wrote: […] Thanks a lot for your experimental upload! I played with the new version in a PPA and did a bunch of package updates in my test repo (ppa:mvo/gir-multiarch). While doing that I noticed that the dh_girepository needs a small tweak (attached). Without that it fails for me for json-glib (and probably more, it was just the first failure I noticed). Thanks again - I just uploaded this fix to exp now. :) For the next step I'll rebuild all gi packages in Debian with this gobject-introspection version so we can see what fails. -- Iain Lane [ i...@orangesquash.org.uk ] Debian Developer [ la...@debian.org ] Ubuntu Developer [ la...@ubuntu.com ] -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#755874: gobject-introspection: [patch] use multi-arch pathes for the .typelib files
On Sun, Aug 24, 2014 at 10:04:43PM +0100, Iain Lane wrote: Hi mvo, Hi Ian, On Thu, Jul 24, 2014 at 09:05:48AM +0200, Michael Vogt wrote: […] With this change most packages that ship a gir1.2-* package need a small change to their debian/gir1.2-foo.install file: - usr/lib/girepository-1.0/* + usr/lib/*/girepository-1.0/* Without they will fail to build. Cool - I'm interested in this change since a package I care about is no longer x-buildable due to this problem. Didn't review the patch yet, but I will do before uploading. Since this requires source changes, I made a dd-list of all packages which ship files in /usr/lib/girepository-1.0. There are two packages - workrave and ibus-anthy - which I think would need splitting because they ship typelibs along with programs. I've got an opportunity at Debconf to spend some time on this. What's the best way? Do it in unstable and NMU after an announce/fix perioud because packages will be broken or use experimental and do this more gradually with MBF and prodding? Thanks a lot for your experimental upload! I played with the new version in a PPA and did a bunch of package updates in my test repo (ppa:mvo/gir-multiarch). While doing that I noticed that the dh_girepository needs a small tweak (attached). Without that it fails for me for json-glib (and probably more, it was just the first failure I noticed). The update the for individual is mostly a very mechanical process, I created a script in lp:~mvo/+junk/gir-multiarch that automates the work. It has a pretty high success rate, some packages need manual tweaks of course, I put a list into the update.sh for the ones I know about. Hope that helps the transition, I'm very excited about it! Thanks, Michael diff -Nru gobject-introspection-1.41.4/debian/dh_girepository gobject-introspection-1.41.4/debian/dh_girepository --- gobject-introspection-1.41.4/debian/dh_girepository 2014-08-30 21:40:04.0 + +++ gobject-introspection-1.41.4/debian/dh_girepository 2014-09-04 09:28:25.0 + @@ -196,8 +196,8 @@ } if (! $found) { addsubstvar ($package, gir:Depends, $deppkg); -return; } +return; } } error(Could not find $req dependency);
Bug#755874: gobject-introspection: [patch] use multi-arch pathes for the .typelib files
Hi mvo, On Thu, Jul 24, 2014 at 09:05:48AM +0200, Michael Vogt wrote: […] With this change most packages that ship a gir1.2-* package need a small change to their debian/gir1.2-foo.install file: - usr/lib/girepository-1.0/* + usr/lib/*/girepository-1.0/* Without they will fail to build. Cool - I'm interested in this change since a package I care about is no longer x-buildable due to this problem. Didn't review the patch yet, but I will do before uploading. Since this requires source changes, I made a dd-list of all packages which ship files in /usr/lib/girepository-1.0. There are two packages - workrave and ibus-anthy - which I think would need splitting because they ship typelibs along with programs. I've got an opportunity at Debconf to spend some time on this. What's the best way? Do it in unstable and NMU after an announce/fix perioud because packages will be broken or use experimental and do this more gradually with MBF and prodding? Cheers, -- Iain Lane [ i...@orangesquash.org.uk ] Debian Developer [ la...@debian.org ] Ubuntu Developer [ la...@ubuntu.com ] Alberto Garcia be...@igalia.com event-dance grilo Alessio Treglia ales...@debian.org accountsservice ganv Andreas Henriksson andr...@fatal.se uhttpmock Andrew Starr-Bochicchio a...@debian.org keybinder keybinder-3.0 Christopher James Halse Rogers r...@ubuntu.com colord colord-gtk Debian Accessibility Team debian-accessibil...@lists.debian.org at-spi2-core Debian Chinese Team chinese-develop...@lists.alioth.debian.org lunar-date Debian Cinnamon Team pkg-cinnamon-t...@lists.alioth.debian.org cinnamon-desktop cinnamon-menus muffin nemo Debian Evolution Maintainers pkg-evolution-maintain...@lists.alioth.debian.org evolution-data-server Debian GIS Project pkg-grass-de...@lists.alioth.debian.org osm-gps-map Debian GNOME Maintainers pkg-gnome-maintain...@lists.alioth.debian.org anjuta atk1.0 brasero caribou cheese clutter-1.0 clutter-gst clutter-gst-2.0 clutter-gtk evince gdk-pixbuf gdl gdm3 geocode-glib gfbgraph glade gnome-bluetooth gnome-desktop3 gnome-menus gnome-online-accounts gnome-panel gobject-introspection gsettings-desktop-schemas gtk+2.0 gtk+3.0 gtksourceview3 gtkspell3 gucharmap json-glib libcryptui libgda5 libgdata libgnome-keyring libgnomekbd libgtop2 libgweather libnotify libpeas libsecret libsoup2.4 libxklavier libzapojit nautilus pango1.0 rhythmbox totem totem-pl-parser vte3 Debian Islamic Maintainers debian-islamic-maintain...@lists.alioth.debian.org libitl-gobject Debian Libvirt Maintainers pkg-libvirt-maintain...@lists.alioth.debian.org gtk-vnc libguestfs Debian Med Packaging Team debian-med-packag...@lists.alioth.debian.org clinica Debian OLPC debian-olpc-de...@lists.alioth.debian.org sugar-toolkit-gtk3 Debian PhotoTools Maintainers pkg-phototools-de...@lists.alioth.debian.org entangle Debian Science Team debian-science-maintain...@lists.alioth.debian.org v-sim Debian Shotwell Maintainers pkg-shotwell-ma...@lists.alioth.debian.org gexiv2 Debian systemd Maintainers pkg-systemd-maintain...@lists.alioth.debian.org systemd Debian Telepathy maintainers pkg-telepathy-maintain...@lists.alioth.debian.org farstream farstream-0.2 folks telepathy-glib telepathy-logger Debian WebKit Maintainers pkg-webkit-maintain...@lists.alioth.debian.org webkitgtk Debian Xfce Maintainers pkg-xfce-de...@lists.alioth.debian.org lightdm Dmitry Smirnov only...@debian.org gnumeric goffice libgsf Francois Marier franc...@debian.org workrave Guido Günther a...@sigxcpu.org libosinfo libvirt-glib IME Packaging Team pkg-ime-de...@lists.alioth.debian.org fcitx ibus ibus-anthy input-pad libskk Josselin Mouette j...@debian.org gconf gcr librsvg libwnck3 Kartik Mistry kar...@debian.org dee libgwibber Laurent Bigonville bi...@debian.org gupnp-igd Liang Guo guoli...@debian.org spice-gtk Loic Minier l...@dooz.org poppler Maintainers of GStreamer packages pkg-gstreamer-maintain...@lists.alioth.debian.org gst-plugins-base0.10 gst-plugins-base1.0 gstreamer-editing-services1.0 gstreamer0.10 gstreamer0.10-editing-services gstreamer1.0 Maintainers of Vala packages pkg-vala-maintain...@lists.alioth.debian.org libgee libgee-0.8 Martin Pitt mp...@debian.org umockdev MATE Packaging Team pkg-mate-t...@lists.alioth.debian.org mate-menus mate-panel Mathieu Trudel mathieu...@gmail.com emerillon Matthias Klumpp m...@debian.org appstream listaller packagekit Michael Biebl bi...@debian.org libmediaart tracker Michal Čihař ni...@debian.org libgusb Oliver Sauder o...@esite.ch diodon
Bug#755874: gobject-introspection: [patch] use multi-arch pathes for the .typelib files
Package: gobject-introspection Version: 1.40.0-1ubuntu0.1 Severity: wishlist Tags: patch Hello, to install a cross build environment it would be great if the typelibs could be co-installed in a multiarch environment. Right now all foo-dev packages depend on gir1.2-foo. So when trying to install foo-dev for cross-building that won't work because the gir1.2-foo is not multi-arch ready. The attached patch moves gobject-introspection to multiarch triplet pathes, adds compatiblity for the old path and updates dh_girepository to look at both the new and old path. This part could probably do with a review of someone more familiar with perl than I am :) With this change most packages that ship a gir1.2-* package need a small change to their debian/gir1.2-foo.install file: - usr/lib/girepository-1.0/* + usr/lib/*/girepository-1.0/* Without they will fail to build. Here is a draft announcement: Dear developers, we would like to move the gnome introspection typelib data from /usr/lib/girepository-1.0 to /usr/lib/triplet/girepository-1.0 so that we can install them in parallel on a multiarch system. A updated version of gobject-introspection is ready in experimental that will look into the new multiarch path and have the old path as a fallback. But because the pkg-config libdir is now also a multiarch path most gir1.2-* packages need adjustments to their debian/install file(s). The change is straightforward, just change your debian/install file: - usr/lib/girepository-1.0/* + usr/lib/*/girepository-1.0/* because the typelib files are now in e.g. /usr/lib/x86_64-linux-gnu. Thanks, Thanks for your consideration! Michael -- System Information: Debian Release: jessie/sid APT prefers trusty-updates APT policy: (500, 'trusty-updates'), (500, 'trusty-security'), (500, 'trusty'), (100, 'trusty-backports') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.13.0-32-generic (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages gobject-introspection depends on: ii build-essential11.6ubuntu6 ii libc6 2.19-0ubuntu6 ii libffi63.1~rc1+r3.0.13-12 ii libgirepository-1.0-1 1.40.0-1ubuntu0.1 ii libglib2.0-0 2.40.0-2 ii python-mako0.9.1-1 ii python2.7 2.7.6-8 pn python:any none gobject-introspection recommends no packages. gobject-introspection suggests no packages. -- no debconf information diff -Nru gobject-introspection-1.40.0/debian/dh_girepository gobject-introspection-1.40.0/debian/dh_girepository --- gobject-introspection-1.40.0/debian/dh_girepository 2011-12-01 22:22:10.0 +0100 +++ gobject-introspection-1.40.0/debian/dh_girepository 2014-07-23 17:07:14.0 +0200 @@ -75,8 +75,12 @@ my $bin_version = $dh{VERSION}; my @archpackages = getpackages(arch); +my $triplet = `dpkg-architecture -qDEB_HOST_MULTIARCH`; +chomp $triplet; +my $typelib_multiarch_path = /usr/lib/$triplet/girepository-1.0; my $typelib_path = /usr/lib/girepository-1.0; -my @typelibdirs = (@ARGV, $typelib_path); + +my @typelibdirs = (@ARGV, $typelib_path, $typelib_multiarch_path); my $gir_path = /usr/share/gir-1.0; my @girdirs = (@ARGV, $gir_path); my $arch_triplet = `dpkg-architecture -qDEB_HOST_MULTIARCH`; @@ -146,28 +150,31 @@ sub require_typelib { my $req = shift; my $package = shift; -my $fullpath = $typelib_path/$req; +my $fullpath = ; +foreach my $typelibdir (@typelibdirs) { +$fullpath = $typelibdir/$req; -verbose_print (Dependency: $req); -foreach my $girdir (@girdirs) { -if (-f tmpdir($package).$girdir/$req) { -verbose_print( found in the same package); -return; +verbose_print (Dependency: $req); +foreach my $girdir (@girdirs) { +if (-f tmpdir($package).$girdir/$req) { +verbose_print( found in the same package); +return; +} } -} -foreach my $otherpkg (@archpackages) { -if (-f tmpdir($otherpkg).$fullpath) { -verbose_print ( found in $otherpkg); -error(Dependency on $otherpkg with a different format than $format) unless $otherpkg =~ /^gir$format/; -addsubstvar ($package, gir:Depends, $otherpkg, = $bin_version); -return; +foreach my $otherpkg (@archpackages) { +if (-f tmpdir($otherpkg).$fullpath) { +verbose_print ( found in $otherpkg); +error(Dependency on $otherpkg with a different format than $format) unless $otherpkg =~ /^gir$format/; +addsubstvar ($package, gir:Depends, $otherpkg, = $bin_version); +return; +} } -} -foreach my $privpath (@privdirs) { -if (-f $privpath/$req) { -verbose_print ( found in $privpath); -$fullpath = $privpath/$req; -