]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_strip
r1963: * Typo. Closes: #400571
[debhelper.git] / dh_strip
index 8543a4ecfa2435fe49edb9e14f2ddef77faa9688..37834bc409f966054eda07732b056826ca6f6f69 100755 (executable)
--- a/dh_strip
+++ b/dh_strip
@@ -21,7 +21,7 @@ executables, shared libraries, and static libraries that are not used for
 debugging.
 
 This program examines your package build directories and works out what
-to strip on its own. It uses L<file(1)> and file permisions and filenames
+to strip on its own. It uses L<file(1)> and file permissions and filenames
 to figure out what files are shared libraries (*.so), executable binaries,
 and static (lib*.a) and debugging libraries (lib*_g.a, debug/*.so), and
 strips each as much as is possible. (Which is not at all for debugging
@@ -44,23 +44,22 @@ things to exclude.
 
 =item B<--dbg-package=>I<package>
 
-This option tells dh_strip that the given package has an associated "-dbg"
-package. dh_strip will, when stripping off the debug symbols of files in
-the given package, save them to independent files in the package build
-directory for the "-dbg" package.
+Causes dh_strip to save debug symbols stripped from the packages it acts on
+as independent files in the package build directory of the specified debugging
+package.
 
-For example, you might have a package libfoo libfoo, and want to include a
-libfoo-dbg package that contains debugging symbols. The command "dh_strip
---dbg-package=libfoo" will make dh_strip save the debugging symbols for
-usr/lib/libfoo.so.0 into usr/lib/debug/usr/lib/libfoo.so.0 in the package
-build directory for libfoo-dbg. If libfoo-dbg is installed, gdb wil
-automatically load up the debugging symbols from it when debugging libfoo.
+For example, if your packages are libfoo and foo and you want to include a
+foo-dbg package with debugging symbols, use dh_strip --dbg-package=foo-dbg.
 
-This option may be repeated to list more than one package.
+Note that this option behaves significantly different in debhelper
+compatibility levels 4 and below. Instead of specifying the name of a debug
+package to put symbols in, it specifies a package (or packages) which
+should have separated debug symbols, and the separated symbols are placed
+in packages with "-dbg" added to their name.
 
 =item B<-k>, B<--keep-debug>
 
-Debug symbols will be retained, but split into an independant
+Debug symbols will be retained, but split into an independent
 file in usr/lib/debug/ in the package build directory. --dbg-package
 is easier to use than this option, but this option is more flexible.
 
@@ -101,7 +100,7 @@ sub get_file_type {
 my (@shared_libs, @executables, @static_libs);
 sub testfile {
        return if -l $_ or -d $_; # Skip directories and symlinks always.
-
+       
        # See if we were asked to exclude this file.
        # Note that we have to test on the full filename, including directory.
        my $fn="$File::Find::dir/$_";
@@ -135,8 +134,13 @@ sub testfile {
        
        # Is it a static library, and not a debug library?
        if (m/lib.*\.a$/ && ! m/.*_g\.a$/) {
-               push @static_libs, $fn;
-               return;
+               # Is it a binary file, or something else (maybe a liner
+               # script on Hurd, for example? I don't use file, because
+               # file returns a varity of things on static libraries.
+               if (-B $_) {
+                       push @static_libs, $fn;
+                       return;
+               }
        }
 }
 
@@ -145,7 +149,7 @@ sub make_debug {
        my $tmp=shift;
        my $desttmp=shift;
 
-       my ($base_file)=$file=~/^$tmp(.*)/;
+       my ($base_file)=$file=~/^\Q$tmp\E(.*)/;
        my $debug_path=$desttmp."/usr/lib/debug/".$base_file;
        my $debug_dir=dirname($debug_path);
        if (! -d $debug_dir) {
@@ -169,9 +173,19 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
        # Support for keeping the debugging symbols in a detached file.
        my $keep_debug=$dh{KEEP_DEBUG};
        my $debugtmp=$tmp;
-       if (ref $dh{DEBUGPACKAGES} && grep { $_ eq $package } @{$dh{DEBUGPACKAGES}}) {
-               $keep_debug=1;
-               $debugtmp=tmpdir($package."-dbg");
+       if (! compat(4)) {
+               if (ref $dh{DEBUGPACKAGES}) {
+                       $keep_debug=1;
+                       # Note that it's only an array for the v4 stuff;
+                       # for v5 only one value is used.
+                       $debugtmp=tmpdir(@{$dh{DEBUGPACKAGES}}[0]);
+               }
+       }
+       else {
+               if (ref $dh{DEBUGPACKAGES} && grep { $_ eq $package } @{$dh{DEBUGPACKAGES}}) {
+                       $keep_debug=1;
+                       $debugtmp=tmpdir($package."-dbg");
+               }
        }
        
        @shared_libs=@executables=@static_libs=();