Package: debhelper
Version: 10.2.2
Severity: wishlist
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

Hi Niels et al,

While working on cross builds I am observing a recurring phenomenon.
Some upstreams like to trip their executables by passing -s to install.
While this may be useful in a number of ways it has two major drawbacks
from a Debian pov.

 * cross: install defaults to calling plain strip. That happens to be
   the build architecture strip. So any cross build with "install -s"
   usually just fails hard.

 * dbgsym: Since make install produces stripped executables, none of
   DEB_BUILD_OPTIONS=nostrip or -dbgsym packages work.

The best solution to both problems is not to strip during installation,
but letting dh_strip handle that instead. Thus nullifying the -s option
seems like the way to go to me. The usual approach is to specify:

    INSTALL=install --strip-program=true

Thus I am proposing to add this parameter to the makefile buildsystem
(and just the makefile buildsystem) in compat level 11.

Examples for using this technique:
 * konwert #844070 (not using dh_auto_*)
 * 
http://sources.debian.net/src/ifmail/2.14tx8.10-22/debian/patches/config/?hl=73#L73

I'm currently failing to find more examples, but a vague memory says
that there are some. Looking for packages with missing -dbgsym might
help here, but I don't have a good idea how to do that.

Thus I am putting the proposal up for discussion. This is not as clear
cut as it could be. Carrying this patch has a cost and it might not be
worth the effort. I'm still unsure. What do you think?

Helmut
diff --minimal -Nru debhelper-10.2.2/Debian/Debhelper/Buildsystem/makefile.pm 
debhelper-10.2.2+nmu1/Debian/Debhelper/Buildsystem/makefile.pm
--- debhelper-10.2.2/Debian/Debhelper/Buildsystem/makefile.pm   2016-10-01 
10:13:53.000000000 +0200
+++ debhelper-10.2.2+nmu1/Debian/Debhelper/Buildsystem/makefile.pm      
2016-11-12 10:35:37.000000000 +0100
@@ -8,7 +8,7 @@
 
 use strict;
 use warnings;
-use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value escape_shell 
clean_jobserver_makeflags is_cross_compiling);
+use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value escape_shell 
clean_jobserver_makeflags is_cross_compiling compat);
 use parent qw(Debian::Debhelper::Buildsystem);
 
 my %DEB_DEFAULT_TOOLS = (
@@ -141,6 +141,9 @@
                        }
                }
        }
+       if (ref($this) eq 'Debian::Debhelper::Buildsystem::makefile' and ! 
compat(10)) {
+               unshift @_, "INSTALL=install --strip-program=true";
+       }
        $this->do_make(@_);
 }
 
@@ -152,6 +155,9 @@
 sub install {
        my $this=shift;
        my $destdir=shift;
+       if (ref($this) eq 'Debian::Debhelper::Buildsystem::makefile' and ! 
compat(10)) {
+               unshift @_, "INSTALL=install --strip-program=true";
+       }
        $this->make_first_existing_target(['install'],
                "DESTDIR=$destdir",
                "AM_UPDATE_INFO_DIR=no", @_);
diff --minimal -Nru debhelper-10.2.2/debian/changelog 
debhelper-10.2.2+nmu1/debian/changelog
--- debhelper-10.2.2/debian/changelog   2016-10-08 12:16:23.000000000 +0200
+++ debhelper-10.2.2+nmu1/debian/changelog      2016-11-12 10:38:17.000000000 
+0100
@@ -1,3 +1,11 @@
+debhelper (10.2.2+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Disable stripping during dh_auto_* in makefile buildsystem in compat 11.
+    (Closs: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Sat, 12 Nov 2016 10:38:17 +0100
+
 debhelper (10.2.2) unstable; urgency=medium
 
   * Fix typo in changelog entry for release 10.2.  Thanks to

Reply via email to