Hi Lunar,

Just a heads up that lowmem is FTBFS in Jenkins because something in the
dh_buildeb/dpkg-deb interface is creating the -dbgsym packages without a
.udeb extension:

dpkg-deb: building package 'lowmemcheck-dbgsym' in
dpkg-deb: building package 'lowmem' in '../lowmem_1.43_all.udeb'.
dpkg-deb: building package 'lowmemcheck' in
 dpkg-genbuildinfo  >../lowmem_1.43_amd64.buildinfo
dpkg-genbuildinfo: error: cannot fstat file
../lowmemcheck-dbgsym_1.43_amd64.udeb: No such file or directory
dpkg-buildpackage: error: dpkg-genbuildinfo 
>../lowmem_1.43_amd64.buildinfo gave error exit status 2

debian/files is:

  lowmem_1.43_all.udeb debian-installer optional
  lowmem_1.43_amd64.buildinfo debian-installer optional
  lowmemcheck-dbgsym_1.43_amd64.udeb debugsym extra
  lowmemcheck_1.43_amd64.udeb debian-installer optional

I can paper over it with the attached patch but:

 * Is this specific to us? ie. because we are using some random Git
 version of debhelper?

 * Is this specific to dpkg-genbuildinfo? I don't think so given that
 debian/files and the filename itself is already out of sync by the time
 we are called.

 * I'm guessing the target filename should be .udeb (otherwise the debug
 symbols are uninstallable with d-i) rather than fixing it by always
 making debug symbol packages with .deb.

 * (Should we even be building ddeb's for udebs? Does d-i have the rest
 of the mechanism to make this remotely useful?)

Just to clarify, attached patch merely to concisely show the problem. I
mean, we should not be doing the filename calculation here (!) - I guess
dpkg-deb should be. But at *that* point it doesn't know to create a udeb
vs. deb, etc.

Anyway, just letting you know. Feel free to forward to the Debhelper
Maintainers list <debhelper-de...@lists.alioth.debian.org> or the BTS if
this is really an upstream issue, I'm afraid I just don't know enough
about the debug package proposal.

 [0] https://reproducible.debian.net/rb-pkg/unstable/amd64/lowmem.html


     : :'  :     Chris Lamb
     `. `'`      la...@debian.org / chris-lamb.co.uk
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm
index 348144e..cd5f8dd 100644
--- a/Debian/Debhelper/Dh_Lib.pm
+++ b/Debian/Debhelper/Dh_Lib.pm
@@ -23,6 +23,7 @@ use vars qw(@EXPORT %dh);
            &cross_command &set_buildflags &get_buildoption
            &install_dh_config_file &error_exitcode &package_multiarch
            &install_file &install_prog &install_lib &install_dir
+           &ddeb_filename
 my $max_compat=10;
@@ -982,6 +983,13 @@ sub udeb_filename {
        return _xdeb_filename($package, 'udeb');
+# Generates the target that is used for a ddeb package.
+sub ddeb_target {
+       my ($package, $ext) = @_;
+       return _xdeb_filename($package, $ext, $package."-dbgsym");
 # Handles #DEBHELPER# substitution in a script; also can generate a new
 # script from scratch if none exists but there is a .debhelper file for it.
 sub debhelper_script_subst {
diff --git a/dh_builddeb b/dh_builddeb
index e36f0a3..e673a74 100755
--- a/dh_builddeb
+++ b/dh_builddeb
@@ -128,8 +128,10 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                        # the ddeb.
                        my @args = default_compressor_args(["-z1", "-Zxz", 
+                        my $target = $dh{DESTDIR}."/".
+                               ddeb_filename($package, is_udeb($package) ? 
"udeb" : "deb");
                        doit("dpkg-deb", @args,
-                                "--build", $ddeb_tmpdir, $dh{DESTDIR});
+                                "--build", $ddeb_tmpdir, $target);
                } else {
                        warning("Not building ddeb for ${package} as it has no 
control file");
                        warning("Please use dh_gencontrol to avoid this issue");
Reproducible-builds mailing list

Reply via email to