All Debian + -ports supported GNU triplets

2011-02-28 Thread Loïc Minier
Hi

 binutils-multiarch is currently built with support for a hardcoded list
 of triplets.  I've changed this in Ubuntu to use --enable-targets=all
 [1] and used the same for the new gdb-multiarch package, but this is a
 bit painful as it causes some issues [2] and requires people to set the
 gnutarget in gdb-mutliarch [3].

 So I intend to change binutils-multiarch and gdb-multiarch to
 --enable-targets=all Debian-supported GNU triplets.

 But the first column of /usr/share/dpkg/archtable only covers triplets
 suppored in Debian itself (not on debian-ports) and is documented as
 being there for historical reasons only.

 My current guess is to combine all GNU CPU names found in the second
 column of /usr/share/dpkg/cputable with all the GNU names found in the
 second column of /usr/share/dpkg/ostable, but that seems to be way more
 than the real Debian + debian-ports.org ports which we support.

 What would you folks suggest?

   Thanks for your input!

[1] 
http://launchpadlibrarian.net/65095236/binutils_2.21.0.20110216-1ubuntu1_2.21.0.20110216-1ubuntu2.diff.gz
[2] 
http://launchpadlibrarian.net/65218001/buildlog_ubuntu-natty-i386.armel-cross-toolchain-base_1.59_FAILEDTOBUILD.txt.gz

http://launchpadlibrarian.net/65215384/buildlog_ubuntu-natty-i386.gcc-4.5-armel-cross_1.46_FAILEDTOBUILD.txt.gz
[3] http://lists.linaro.org/pipermail/linaro-dev/2011-January/002022.html
-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-dpkg-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110228160856.ga9...@bee.dooz.org



Re: Bug#594179: dpkg armhf patch acceptance status?

2011-02-17 Thread Loïc Minier
Hey

 Trying to kick the dust a bit as having the triplet in the air is
 kind of an unhappy situation for armhf   :-)

On Wed, Sep 08, 2010, Guillem Jover wrote:
 We currently need something like this in dpkg-dev because the mappings
 need to be bidirectional, as dpkg-dev needs to be able to convert
 from GNU triplet to Debian architecture and the other way around.
 
 Steve wondered why this is the case, and that's because for
 cross-compiling purposes dpkg-architecture infers the host architecture
 from the CC environment variable through the -dumpmachine option.
 Chaning this is possible but, would break a current way of
 cross-compiling which has been around for a long time.

 So this use case is CC=arm-linux-gnueabi-gcc dpkg-buildpackage and it
 just guesses the -a flag that you should have set?

 The toolchain has the same triplet for binary incompatible producing
 objects, which seems like a bug/misfeature to me, and that's one of
 the assumptions dpkg-dev has relied on, in the same way as multiarch
 when deciding to use the triplet as a unique token for the installation
 directories.

 You describe this as a bug/misfeature, that might be true but I don't
 think we can challenge this usage of triplets in the upstream
 toolchain, and multiarch is moving to having its own tuples instead now
 (http://wiki.debian.org/Multiarch/Tuples).

 This also causes issue with not being able to have installed two
 cross-toolchains for say armel and armhf as they share triplet,
 although you can use the armel toolchain with few options to build for
 armhf, but then you'd need to specify those as part of the CC variable.

 Even if we could co-install them, I'm not sure how
 /some-armel-path/arm-linux-gnueabi-gcc and
 /some-armhf-path/arm-linux-gnueabi-gcc could helpfully be installed on
 the same system   :-/

 It's a real limitation of the upstream toolchain.

 Also that also happens with biarch, you can produce i386 binaries from
 an x86_64 toolchain, yet they both have their own triplet.

 Yes but x86 goes to the other extreme, with separate triplets for
 compatible ABIs ({i386,i486,i586,i686}-linux-gnu); the fact is the
 triplet is not a good ABI specifier.

 Anyway, ideally I'd rather see this addressed by giving armhf a real
 triplet, which would also make multiarch life way easier as there'd not
 be any need to define an artificial set of neutral architecture names
 to be able to place objects in the file system. But if this is not going
 to happen, and thus the assumptions dpkg-dev is making have been just
 wrong, then I'd rather drop the bidirectional mappings, and be done
 with it. This will need careful consideration though, as it's breaking
 a current interface, but something that could be done for dpkg 1.16.x.

 Having a separate triplet (not using the vendor field) like e.g. lpia
 would mean a lot of pain IMO, and we'd have to fix many packages to
 cope with it, including reaching out to upstream etc.  It was pain for
 lpia for sure.

 We could have an additional set of preprocessor macros which dpkg
 checks for to decide which Debian architecture we're talking about; the
 the would only be done if there is more than one architecture using the
 same triplet in dpkg tables.  This alone is a bit fragile though, as it
 means that if a new ABI is introduced to an existing triplet and is not
 immediately added as a new dpkg architecture, then people might be
 picking the wrong dpkg architecture when using a toolchain defaulting
 to thenew ABI.

 I wonder whether it would be a good idea to use multiarch tuples
 internally; dpkg would still have to map to/from GNU triplets, but it
 would force implementors to think about their ABI.  I am not sure how
 we can ensure that we've mapped to the right tuple though.  Neither am
 I sure that the multiarch tuples are frozen already, so it might be too
 early for that either.

Bye
-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-dpkg-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110217112730.ga19...@bee.dooz.org



Bug#594179: dpkg armhf patch acceptance status?

2011-02-17 Thread Loïc Minier
Hey

 Trying to kick the dust a bit as having the triplet in the air is
 kind of an unhappy situation for armhf   :-)

On Wed, Sep 08, 2010, Guillem Jover wrote:
 We currently need something like this in dpkg-dev because the mappings
 need to be bidirectional, as dpkg-dev needs to be able to convert
 from GNU triplet to Debian architecture and the other way around.
 
 Steve wondered why this is the case, and that's because for
 cross-compiling purposes dpkg-architecture infers the host architecture
 from the CC environment variable through the -dumpmachine option.
 Chaning this is possible but, would break a current way of
 cross-compiling which has been around for a long time.

 So this use case is CC=arm-linux-gnueabi-gcc dpkg-buildpackage and it
 just guesses the -a flag that you should have set?

 The toolchain has the same triplet for binary incompatible producing
 objects, which seems like a bug/misfeature to me, and that's one of
 the assumptions dpkg-dev has relied on, in the same way as multiarch
 when deciding to use the triplet as a unique token for the installation
 directories.

 You describe this as a bug/misfeature, that might be true but I don't
 think we can challenge this usage of triplets in the upstream
 toolchain, and multiarch is moving to having its own tuples instead now
 (http://wiki.debian.org/Multiarch/Tuples).

 This also causes issue with not being able to have installed two
 cross-toolchains for say armel and armhf as they share triplet,
 although you can use the armel toolchain with few options to build for
 armhf, but then you'd need to specify those as part of the CC variable.

 Even if we could co-install them, I'm not sure how
 /some-armel-path/arm-linux-gnueabi-gcc and
 /some-armhf-path/arm-linux-gnueabi-gcc could helpfully be installed on
 the same system   :-/

 It's a real limitation of the upstream toolchain.

 Also that also happens with biarch, you can produce i386 binaries from
 an x86_64 toolchain, yet they both have their own triplet.

 Yes but x86 goes to the other extreme, with separate triplets for
 compatible ABIs ({i386,i486,i586,i686}-linux-gnu); the fact is the
 triplet is not a good ABI specifier.

 Anyway, ideally I'd rather see this addressed by giving armhf a real
 triplet, which would also make multiarch life way easier as there'd not
 be any need to define an artificial set of neutral architecture names
 to be able to place objects in the file system. But if this is not going
 to happen, and thus the assumptions dpkg-dev is making have been just
 wrong, then I'd rather drop the bidirectional mappings, and be done
 with it. This will need careful consideration though, as it's breaking
 a current interface, but something that could be done for dpkg 1.16.x.

 Having a separate triplet (not using the vendor field) like e.g. lpia
 would mean a lot of pain IMO, and we'd have to fix many packages to
 cope with it, including reaching out to upstream etc.  It was pain for
 lpia for sure.

 We could have an additional set of preprocessor macros which dpkg
 checks for to decide which Debian architecture we're talking about; the
 the would only be done if there is more than one architecture using the
 same triplet in dpkg tables.  This alone is a bit fragile though, as it
 means that if a new ABI is introduced to an existing triplet and is not
 immediately added as a new dpkg architecture, then people might be
 picking the wrong dpkg architecture when using a toolchain defaulting
 to thenew ABI.

 I wonder whether it would be a good idea to use multiarch tuples
 internally; dpkg would still have to map to/from GNU triplets, but it
 would force implementors to think about their ABI.  I am not sure how
 we can ensure that we've mapped to the right tuple though.  Neither am
 I sure that the multiarch tuples are frozen already, so it might be too
 early for that either.

Bye
-- 
Loïc Minier




--
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: dpkg armhf patch acceptance status?

2010-09-13 Thread Loïc Minier
On Wed, Sep 08, 2010, Guillem Jover wrote:
 Steve wondered why this is the case, and that's because for
 cross-compiling purposes dpkg-architecture infers the host architecture
 from the CC environment variable through the -dumpmachine option.
 Chaning this is possible but, would break a current way of
 cross-compiling which has been around for a long time.

 Should perhaps use dpkg --print-architecture instead?  or is it for
 cross-compiling dpkg itself on systems without dpkg?

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-dpkg-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100913095452.gb21...@bee.dooz.org



Bug#594179: dpkg armhf patch acceptance status?

2010-09-13 Thread Loïc Minier
On Wed, Sep 08, 2010, Guillem Jover wrote:
 Steve wondered why this is the case, and that's because for
 cross-compiling purposes dpkg-architecture infers the host architecture
 from the CC environment variable through the -dumpmachine option.
 Chaning this is possible but, would break a current way of
 cross-compiling which has been around for a long time.

 Should perhaps use dpkg --print-architecture instead?  or is it for
 cross-compiling dpkg itself on systems without dpkg?

-- 
Loïc Minier




--
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#591522: dpkg-shlibdeps still fails when cross-compiling

2010-08-03 Thread Loïc Minier
On Tue, Aug 03, 2010, Raphael Hertzog wrote:
 On Tue, 03 Aug 2010, Simon Richter wrote:
  while using the target objdump is a Good Thing(tm), it uncovered another
  bug: for dependent libraries, the host's version is passed to the target
  objdump.
 
 That's not really accurate, it's passed to objdump -a only to verify if
 the binary has the same format than the executable analyzed. The full
 analysis comes only later if there's a match.
 
  While this looks like a regression as builds that used to work now fail,
  it isn't, because the builds were only correct by chance before.
  
  Symptom is that during a cross build of a library that links against
  libutil, the following is output:
  
  m68k-linux-gnu-objdump: /lib/libutil.so.1: File format not recognized
  dpkg-shlibdeps: error: m68k-linux-gnu-objdump gave error exit status 1
  
  The correct file would be /usr/m68k-linux-gnu/lib/libutil.so.1 . The
  path can be retrieved from the target gcc using the -print-search-dirs
  option.
 
 dpkg-shlibdeps looks in the correct path as well. But it really needs a
 portable way to know whether a file has been built for the same
 architecture than the executable analyzed.
 
 It tries to do this with objdump -a and with binutils-multiarch that was
 working fine. It would then detect that it was the wrong version and would
 continue to look for the correct library.
 
 Loïc, what do you suggest? Should we parse the error instead? And/or fallback
 to the host objdump?

 I wonder whether it makes sense to look into /usr/lib at all when
 cross-building?

 Perhaps we should patch the routine which prepares a list of files to
 analyze to not search usr/lib when cross-building?

 I'm not sure where that one is.


 If that's not an option, I think the routine checking the format of
 executable could run the cross-objdump and if it fails try the host
 objdump as a fallback.

-- 
Loïc Minier




--
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: armelfp: new architecture name for an armel variant

2010-07-15 Thread Loïc Minier
On Thu, Jul 15, 2010, Aurelien Jarno wrote:
It allows
 to provide different versions of a given symbol using an IFUNC symbol
 type. This will be resolved by the dynamic loader during relocation
 depending on the hardware characteristics.
[...]
 Currently only x86, x86_64, ia64, powerpc and sparc are supported, but
 it should not be difficult to add support for more architectures.

 Unfortunately, this requires getting it in the ARM ABI spec first, and
 apparently that can take very long, they avoid rev-ing the ABI too
 frequently (Linaro intends to work on this later this year [1])


 [1]
 https://blueprints.launchpad.net/binutils-linaro/+spec/stt-gnu-ifunc
 and
 https://blueprints.launchpad.net/binutils-linaro/+spec/gold-stt-gnu-ifunc
-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-dpkg-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100715183524.ga6...@bee.dooz.org



Re: armelfp: new architecture name for an armel variant

2010-07-09 Thread Loïc Minier
On Thu, Jul 08, 2010, Guillem Jover wrote:
 The
 lpia is a great example of an architecture variant that was a mistake,
 and should haver never been created.

 This is a bit oversimplified; when lpia was created, there were
 proposals to diverge the x86 ISA.  These didn't happen though, and I
 agree that the end result wasn't worth the pain.

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-dpkg-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100709142817.gb14...@bee.dooz.org



Bug#583902: Integration into other tools

2010-06-15 Thread Loïc Minier
Hi there

 This is a followup to Debian #583902 which adds
 --path-include/--path-exclude flags.

 First, this is awesome, thanks!

 I was wondering about some related things:
 - how are diverts handled, that is what if a package tries to
   dpkg-divert an ultimately excluded file, will that be excluded and
   skipped?
 - I understand that debsums will just work because you strip .list
   files as well
 - how is integration with APT going to happen?  I think APT has an
   option to pass random flags to dpkg (DPkg::options I think), but I
   wonder whether it would make sense to have an APT variable tracking
   list of include/excludes which need to be passed to dpkg on all
   calls.  Also, this doesn't cover manual installation of packages by
   the admin, so perhaps you simply intended to use /etc/dpkg/dpkg.cfg?
 - is there a way to apply the includes to an installed
   systems/chroots?  That is, I expect this will be used during image
   builds or on installed systems, so it will probably have to work from
   an existing chroot, just after debootstrap for instance (or perhaps
   much later); I expect it might be something like:
   * update file exclusion filters in some central (config?) file for
 dpkg
   * apply the filters
 - in the same vein, is there a way to track which packages are missing
   files as to allow reinstalling them when the filters get updated?
   For instance, if I'm stripping all man pages but later decide I want
   them, I would remove the filter and reinstall all the relevant
   packages, how would list the stripped packages?

Thanks!
-- 
Loïc Minier




--
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#583902: Integration into other tools

2010-06-15 Thread Loïc Minier
On Tue, Jun 15, 2010, Martin Pitt wrote:
   - is there a way to apply the includes to an installed
   systems/chroots?
 Not right now. In our project where we use that we use a
 projectname-config package which just applies those changes in the
 postinst with some find | xargs rm style commands.

 Would be lovely if you script would base it's input (list of filters)
 on the dpkg.cfg format so that it could be included and shipped with
 dpkg as a contributed script.  e.g. dpkg-apply-path-filters or
 something.  That would avoid duplicating the list of path filters.

   - in the same vein, is there a way to track which packages are missing
 files as to allow reinstalling them when the filters get updated?
 For instance, if I'm stripping all man pages but later decide I want
 them, I would remove the filter and reinstall all the relevant
 packages, how would list the stripped packages?
 
 I guess you could compare the .list contents with actually installed
 files. Otherwise this would require install --reinstall'ing every
 package which is certainly possible, but takes a lot of effort.

 I wonder how trivial that really is with things like diverts, conffiles
 and such.  But it sounds like a good base, I was asking because I
 wondered whether it would make sense for dpkg to track the delta as
 well.

   Thanks for your replies!
-- 
Loïc Minier




--
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: (not) simplifying dpkg-shlibdeps with readelf

2010-04-26 Thread Loïc Minier
On Thu, Apr 22, 2010, Jonathan Nieder wrote:
  - readelf is tiny and works for all ELF targets.
By contrast, multi-target objdump is large and its Debian package
only supports the targets that were considered worth the trouble
when it was last built.

 I guess you mean binutils-multiarch here; I submitted a patch in Debian
 #578365 to use a cross-objdump when cross-building.  I expect objdump
 or cross-objdump should support the binaries which you're about to ship
 in a .deb.  The only other case I can think of is when a package's
 build calls a non-default (cross-)compiler to generate a specific file,
 e.g. a firmware, in which case it might not be ELF at all.

 [1] To discover SONAME, NEEDED, RUNPATH, and RPATH, one could parse
 ‘eu-readelf --dynamic $file’ output.

 You might want to consider symbols as well as to have dpkg-shlibdeps
 and dpkg-gensymbols rely on the same underlying tool.

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-dpkg-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100426115011.ga14...@bee.dooz.org



Bug#578365: Cross objdump support

2010-04-19 Thread Loïc Minier
Package: dpkg
Version: 1.15.6.1
Severity: minor
Tags: patch

Hi there

 When cross-building, tools using Dpkg/Shlibs/Objdump.pm will call
 /usr/bin/objdump instead of its $triplet-objdump counterpart from the
 cross-toolchain.

 It was never reported so far because it's a common issue in upstream
 build systems as well, and there's an easy workaround in the form of
 binutils-multiarch.  dpkg-cross depends on binutils-multiarch.
 However, this means that one has to rebuild binutils-multiarch to
 cross-build for an architecture not supported by binutils-multiarch.

   Thanks for considering the attached patch,
-- 
Loïc Minier
diff -Nru dpkg-1.15.6.1/debian/changelog dpkg-1.15.6.2/debian/changelog
--- dpkg-1.15.6.1/debian/changelog	2010-03-25 00:52:32.0 +0100
+++ dpkg-1.15.6.2/debian/changelog	2010-04-19 12:38:29.0 +0200
@@ -1,3 +1,9 @@
+dpkg (1.15.6.2) UNRELEASED; urgency=low
+
+  * scripts/Dpkg/Shlibs/Objdump.pm: Use triplet-objdump when cross-building.
+
+ -- Loïc Minier l...@debian.org  Mon, 19 Apr 2010 12:38:01 +0200
+
 dpkg (1.15.6.1) experimental; urgency=low
 
   [ Guillem Jover ]
diff -Nru dpkg-1.15.6.1/scripts/Dpkg/Shlibs/Objdump.pm dpkg-1.15.6.2/scripts/Dpkg/Shlibs/Objdump.pm
--- dpkg-1.15.6.1/scripts/Dpkg/Shlibs/Objdump.pm	2010-03-21 09:46:34.0 +0100
+++ dpkg-1.15.6.2/scripts/Dpkg/Shlibs/Objdump.pm	2010-04-19 12:39:43.0 +0200
@@ -80,8 +80,13 @@
 	return $format{$file};
 	} else {
 	local $ENV{LC_ALL} = C;
-	open(P, -|, objdump, -a, --, $file)
-		|| syserr(_g(cannot fork for %s), objdump);
+	my $od = objdump;
+	# cross-compiling?
+	if ($ENV{'DEB_BUILD_GNU_TYPE'} ne $ENV{'DEB_HOST_GNU_TYPE'}) {
+		$od = $ENV{'DEB_HOST_GNU_TYPE'} . -objdump;
+	}
+	open(P, -|, $od, -a, --, $file)
+		|| syserr(_g(cannot fork for %s), $od);
 	while (P) {
 		chomp;
 		if (/^\s*\S+:\s*file\s+format\s+(\S+)\s*$/) {
@@ -89,7 +94,7 @@
 		return $format{$file};
 		}
 	}
-	close(P) or subprocerr(_g(objdump on \`%s'), $file);
+	close(P) or subprocerr(_g($od on \`%s'), $file);
 	}
 }
 }
@@ -154,8 +159,13 @@
 $self-{file} = $file;
 
 local $ENV{LC_ALL} = 'C';
-open(my $objdump, -|, objdump, -w, -f, -p, -T, -R, $file)
-	|| syserr(_g(cannot fork for %s), objdump);
+my $od = objdump;
+# cross-compiling?
+if ($ENV{'DEB_BUILD_GNU_TYPE'} ne $ENV{'DEB_HOST_GNU_TYPE'}) {
+	$od = $ENV{'DEB_HOST_GNU_TYPE'} . -objdump;
+}
+open(my $objdump, -|, $od, -w, -f, -p, -T, -R, $file)
+	|| syserr(_g(cannot fork for %s), $od);
 my $ret = $self-parse_objdump_output($objdump);
 close($objdump);
 return $ret;


Bug#578365: Cross objdump support

2010-04-19 Thread Loïc Minier
On Mon, Apr 19, 2010, Raphael Hertzog wrote:
 Hum, shouldn't we call $arch-objdump only after having checked its
 availability?

 That would be ideal in the possible (albeit unlikely case) where
 binutils-multiarch is available but not a cross-binutils.

 Are there packages that can be cross-built without the binutils for the
 target host? I guess in theory no (but I don't know all esoteric languages
 that we have)... but maybe in practice there might be packages which are
 wrongly architecture specific that could be crossbuilt without it
 nevertheless. It would be sad to introduce a regression for those just
 because we're trying to call something that doesn't exist.

 I can't think of any example, but it might be.  Note that objdump can
 not be expected to parse these, so it's either our regular objdump
 failing or binutils-multiarch is installed.

 quotes not needed around $od

 Fixed in attached patch

  -   close(P) or subprocerr(_g(objdump on \`%s'), $file);
  +   close(P) or subprocerr(_g($od on \`%s'), $file);
 
 No variable in translated strings (I think we can remove the translation
 altogether and only put the command called in the message).

 Ah right, wasn't paying attention (just rebased an old patch I had
 tested); I dropped the translation altogether in the attached patch,
 but this means we don't mention the processed file in the error message
 anymore.

-- 
Loïc Minier
diff -Nru dpkg-1.15.6.1/debian/changelog dpkg-1.15.6.2/debian/changelog
--- dpkg-1.15.6.1/debian/changelog	2010-03-25 00:52:32.0 +0100
+++ dpkg-1.15.6.2/debian/changelog	2010-04-19 12:38:29.0 +0200
@@ -1,3 +1,9 @@
+dpkg (1.15.6.2) UNRELEASED; urgency=low
+
+  * scripts/Dpkg/Shlibs/Objdump.pm: Use triplet-objdump when cross-building.
+
+ -- Loïc Minier l...@debian.org  Mon, 19 Apr 2010 12:38:01 +0200
+
 dpkg (1.15.6.1) experimental; urgency=low
 
   [ Guillem Jover ]
diff -Nru dpkg-1.15.6.1/scripts/Dpkg/Shlibs/Objdump.pm dpkg-1.15.6.2/scripts/Dpkg/Shlibs/Objdump.pm
--- dpkg-1.15.6.1/scripts/Dpkg/Shlibs/Objdump.pm	2010-03-21 09:46:34.0 +0100
+++ dpkg-1.15.6.2/scripts/Dpkg/Shlibs/Objdump.pm	2010-04-19 17:15:03.0 +0200
@@ -80,8 +80,13 @@
 	return $format{$file};
 	} else {
 	local $ENV{LC_ALL} = C;
-	open(P, -|, objdump, -a, --, $file)
-		|| syserr(_g(cannot fork for %s), objdump);
+	my $od = objdump;
+	# cross-compiling?
+	if ($ENV{'DEB_BUILD_GNU_TYPE'} ne $ENV{'DEB_HOST_GNU_TYPE'}) {
+		$od = $ENV{'DEB_HOST_GNU_TYPE'} . -objdump;
+	}
+	open(P, -|, $od, -a, --, $file)
+		|| syserr(_g(cannot fork for %s), $od);
 	while (P) {
 		chomp;
 		if (/^\s*\S+:\s*file\s+format\s+(\S+)\s*$/) {
@@ -89,7 +94,7 @@
 		return $format{$file};
 		}
 	}
-	close(P) or subprocerr(_g(objdump on \`%s'), $file);
+	close(P) or subprocerr($od);
 	}
 }
 }
@@ -154,8 +159,13 @@
 $self-{file} = $file;
 
 local $ENV{LC_ALL} = 'C';
-open(my $objdump, -|, objdump, -w, -f, -p, -T, -R, $file)
-	|| syserr(_g(cannot fork for %s), objdump);
+my $od = objdump;
+# cross-compiling?
+if ($ENV{'DEB_BUILD_GNU_TYPE'} ne $ENV{'DEB_HOST_GNU_TYPE'}) {
+	$od = $ENV{'DEB_HOST_GNU_TYPE'} . -objdump;
+}
+open(my $objdump, -|, $od, -w, -f, -p, -T, -R, $file)
+	|| syserr(_g(cannot fork for %s), $od);
 my $ret = $self-parse_objdump_output($objdump);
 close($objdump);
 return $ret;


Bug#555743: dpkg-gencontrol: add support for Description:-s in the Source package stanza

2010-03-03 Thread Loïc Minier
On Tue, Mar 02, 2010, Raphael Hertzog wrote:
 The sensible answer is putting this information in the .dsc and thus in
 the Sources files. But it means that the file would get somewhat bigger
 and it might meant again supplementary changes in the infrastructutre if
 people want to see those descriptions translated (but I'm not convinced
 we need translations on Sources, users of those are mostly developers
 contrary to Packages).

 While that seems sensible, I wonder whether it would make sense to
 include the information in Packages.gz instead.  There's a high level
 use case which is not too nicely covered at the moment: if one upgrades
 with a graphical package management tools displaying progress of the
 upgrade, it would typically show which package is being upgraded with
 its description, but you typically upgrade all binary packages from the
 same source at the same time, so in the list of packages to update,
 you'd likely see The GTK+ graphical user interface library
 (libgtk2.0-0), The programs for the GTK+ graphical user interface
 library (libgtk2.0-bin), Common files for the GTK+ graphical user
 interface library (libgtk2.0-common) while it would probably make
 sense to only offer a single entry for the software bundle being
 updated, i.e. for all binary packages provided by the same source, with
 a nice description.

 Now that use case still has a flaw in usability in that even per source
 package descriptions wouldn't mean much to non-developers, so it's
 probably a minor improvement in package managers not worth the effort
 of changing infrastucture etc.

-- 
Loïc Minier




--
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#528171: dpkg --print-installation-architecture isn't covered in manpage nor --help

2009-05-11 Thread Loïc Minier
Package: dpkg
Version: 1.14.26
Severity: wishlist

Hi

 I came across a script which calls dpkg
 --print-installation-architecture and works fine; it seems to act as
 --print-architecture; could you please document that in --help and man
 page?

   Thanks
-- 
Loïc Minier




--
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#489238: Cryptic message when using | in Conflicts

2008-07-04 Thread Loïc Minier
Package: dpkg
Version: 1.14.20
Severity: wishlist

Hi,

 I accidentally used a | in conflicts (instead of depends) in a build
 and this resulter in:
dpkg-gencontrol: internal error: The method merge_union() is only valid for 
Dpkg::Deps::Simple

 As discussed on IRC with Raphaël, this is a bit cryptic; perhaps the
 error message could be improved to point out undefined usage of | in
 conflicts.

   Thanks

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.25-2-686 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages dpkg depends on:
ii  coreutils 6.10-6 The GNU core utilities
ii  libc6 2.7-12 GNU C Library: Shared libraries

dpkg recommends no packages.

-- no debconf information

-- 
Loïc Minier




--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: git bikeshedding (Re: triggers in dpkg, and dpkg maintenance)

2008-03-05 Thread Loïc Minier
On Wed, Mar 05, 2008, Mike Bird wrote:
 May I suggest then that if no dpkg maintainer objects here
 within 48 hours that Ian should proceed with his update?

 May you stop in the next hour giving executive advice when you're not
 representing anybody whatsoever?

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: dpkg-buildpackage now reorganizing debian/control Depends field??

2008-02-23 Thread Loïc Minier
On Fri, Feb 22, 2008, Raphael Hertzog wrote:
 2/ debdiff uses wdiff to show changes on field values and wdiff gives
 spurious differences if the sole difference between both values is
 a different order. Thus debdiff output is more useful with ordered Depends
 fields.

 (Probably stating the obvious, but this could be fixed at the debdiff
 level.)

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#465282: Proposalto introduce compiler options passed from dpkg-buildpackage

2008-02-14 Thread Loïc Minier
On Thu, Feb 14, 2008, Frank Lichtenheld wrote:
 Hmm, I doubt that dpkg-dev should be the place to keep track of that.
 I mean, that probably depends on the version of gcc/g++/whatever used,
 so it's quite meaningless to make it dependent on the version of
 dpkg-dev you use.

 Should we have a new default-flags package or something which would
 be the place where these flags are set?  Perhaps queryable with:
get-default-flags --gcc
get-default-flags --ld
etc.

-- 
Loïc Minier





Bug#445552: dpkg-buildpackage should systematically check build-deps before calling clean

2008-01-18 Thread Loïc Minier
On Fri, Jan 18, 2008, Raphael Hertzog wrote:
 Do we have any idea of how many packages/services actually use
 dpkg-buildpackage -S ?

 I know a lot of people do sourceful uploads in Ubuntu (all uploads are
 sourceful in Ubuntu and PPAs); I don't know of services doing it, but I
 guess things like buildserver.net might.

 These can actually call clean manually if they want to take the risk.


 I think it's not a problem to checkbuilddeps if you skip the test when
 -nc is passed: people will simply have to learn to -S -nc or -S -d
 if they want to clean (or fakeroot debian/rules clean manually, as I
 do).

-- 
Loïc Minier





Bug#445552: dpkg-buildpackage should systematically check build-deps before calling clean

2007-10-06 Thread Loïc Minier
Package: dpkg-dev
Version: 1.14.6
Severity: normal

Hi,

 Per policy 7.6, build-deps must be available for clean; pbuilder
 calls dpkg-buildpackage -S to generate a source suitable to be copied
 into the build environment; by default, this involves cleaning before
 building the source, but dpkg-checkbuilddeps isn't run before cleaning.

 I think dpkg-builcpackage should run dpkg-checkbuilddeps and fail at
 this point when called with -S.  Currently, clean might fail if
 build-deps are unavailable (such as missing patch system package), but
 this should really be an error detected earlier on.

 pbuilder will probably want to override this behavior and output a
 warning if dpkg-checkbuilddeps as run by pbuilder fails, but still try
 to continue unless clean fails.

   Bye,

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.22-2-686 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dpkg-dev depends on:
ii  binutils  2.18-1 The GNU assembler, linker and bina
ii  cpio  2.9-4  GNU cpio -- a program to manage ar
ii  dpkg  1.14.6 package maintenance system for Deb
ii  make  3.81-3 The GNU version of the make util
ii  patch 2.5.9-4Apply a diff file to an original
ii  perl [perl5]  5.8.8-11   Larry Wall's Practical Extraction 
ii  perl-modules  5.8.8-11   Core Perl modules

Versions of packages dpkg-dev recommends:
ii  bzip2 1.0.3-7high-quality block-sorting file co
ii  gcc [c-compiler]  4:4.2.1-6  The GNU C compiler
ii  gcc-3.4 [c-compiler]  3.4.6-6The GNU C compiler
ii  gcc-4.1 [c-compiler]  4.1.2-16   The GNU C compiler
ii  gcc-4.2 [c-compiler]  4.2.1-5The GNU C compiler

-- no debconf information

-- 
Loïc Minier





Bug#41907: test to avoid self-dependencies is incorrect

2006-09-10 Thread Loïc Minier
tags 41907 + confirmed
stop

Hi,

 I'm still experiencing this bug today, and I suppose most people
 generating udebs are:

bee% for i in udeb 0; do dpkg-shlibdeps   -O  
debian/libpango1.0-$i/usr/lib/libpangoft2-1.0.so.0.1400.0; done
shlibs:Depends=libc6 (= 2.3.6-6), libfontconfig1 (= 2.3.0), libfreetype6 (= 
2.2), libglib2.0-0 (= 2.12.0), libpango1.0-0 (= 1.14.0), zlib1g (= 1:1.2.1)
shlibs:Depends=libc6 (= 2.3.6-6), libfontconfig1 (= 2.3.0), libfreetype6 (= 
2.2), libglib2.0-0 (= 2.12.0), zlib1g (= 1:1.2.1)

 (Note that there's an added libpango1.0-0 dependency in the udeb; would
 I be calling dpkg-shlibdeps with the proper flags, this would cause a
 self dependency in libpango1.0-udeb.)

 I've investigated this a little further, and found the cause to be:
 1) binaries in the package which depend on the shared lib
 2) special exception to not add self-dependencies in some cases in
 dpkg-shlibdeps:
return 1 if $fn eq $curpackdir/DEBIAN/shlibs;
(around 365)

 However, the above test is incorrect: it tests whether the shlibs where
 the dependencies comes from is in the same package as the binary which
 needs the dependency.  Instead, it should test whether the shlibs would
 cause a dependency on the same package where the binary is from.

 I think that both the incorrect and the proposed fixed behaviors are
 both too clever for dpkg-shlibdeps, and it should simply permit
 filtering the generated deps instead.  This could for example be used
 by dh_shlibdeps to implement the old behavior and permit the maintainer
 to extend the filtering such as in the case of udebs.

   Bye,
-- 
Loïc Minier [EMAIL PROTECTED]