Bug#755874: gobject-introspection: [patch] use multi-arch pathes for the .typelib files

2014-09-17 Thread Alberto Garcia
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

2014-09-16 Thread Iain Lane
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

2014-09-15 Thread Iain Lane
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

2014-09-04 Thread Michael Vogt
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

2014-08-24 Thread Iain Lane
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

2014-07-24 Thread Michael Vogt
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;
-