summaryrefslogtreecommitdiff
path: root/dh_makeshlibs
diff options
context:
space:
mode:
authorjoey <joey>2001-03-05 00:36:29 +0000
committerjoey <joey>2001-03-05 00:36:29 +0000
commit515a01d46a768ee63a4665c643cdd6889ffaebfc (patch)
tree118e16220c50d9986029fb4a7a348e540ef0eed9 /dh_makeshlibs
parent811a51e68bf36e8116d5cb0f60fde617640cdcd3 (diff)
r450: * Modified to use dpkg-architecture instead of dpkg --print-architecture.
I hate this, and wish it wasn't necessary to make cross compiles for the hurd work. Closes: #88494 * Now depends on debconf-utils for debconf-mergetemplates. Closes: #87321 * Continues to depend on lynx for html changelog conversions. Yes, these and packages with translated debconf templates are rather rare, but it makes more sense for debhelper to consistently depend on all utilities it uses internally rather than force people to keep their dependancies up to date with debhelper internals. If I decide tomorrow that w3m is the better program to use to format html changelogs, I can make the change and packages don't need to update their build dependancies. Closes: #88464, #77743 * Test for init scripts before running them, since they are conffiles and the admin may have removed them for some reason, and policy wants us to deal with that gracefully. * dh_makeshlibs: now uses objdump, should be more accurate. Closes: #88426 * Wildcards have been supported for a while, Closes: #54197 * dh_installdocs and dh_link have been able to make doc-dir symlinks for a while, Closes: #51225
Diffstat (limited to 'dh_makeshlibs')
-rwxr-xr-xdh_makeshlibs28
1 files changed, 8 insertions, 20 deletions
diff --git a/dh_makeshlibs b/dh_makeshlibs
index 1888ee2d..fe31f5ff 100755
--- a/dh_makeshlibs
+++ b/dh_makeshlibs
@@ -27,8 +27,10 @@ DH_COMPAT=3 mode and above only).
=item B<-m>I<major>, B<--major=>I<major>
-Instead of trying to guess the major number of the library from the
-filename of the library, use the major number specified after the -m parameter.
+Instead of trying to guess the major number of the library with objdump,
+use the major number specified after the -m parameter. This is much less
+useful than it used to be, back in the bad old days when this program
+looked at library filenames rather than using objdump.
=item B<-V>, B<-V>I<dependancies>
@@ -68,14 +70,6 @@ file that looks something like:
Generates a shlibs file that looks something like:
libfoobar 1 libfoobar1 (>= 1.0)
-=head1 NOTES
-
-There is no guarantee that the program will get the shlibs file right. For
-example, it may not correctly guess the major number of your package. In
-cases like these (and perhaps in general, just to be safe), it is better to
-create a debian/shlibs file by hand, or force it to use the correct major
-number by specifying the -m parameter.
-
=cut
init();
@@ -90,19 +84,13 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
open (FIND, "find $tmp -xtype f -name '*.so*' |");
while (<FIND>) {
- my $library;
- my $major;
-
- chomp;
- # The second evil regexp is for db3, whose author should
- # be shot.
- if (m#.*/([^/]*)\.so\.(\d*)\.?# || m#.*/([^/]*)-([^\s/]+)\.so$#) {
- $library = $1;
- $major = $2;
- }
+ my ($library, $major) =
+ `objdump -p $_` =~ m/\s+SONAME\s+(.+)\.so\.(.+)/;
+
if (defined($dh{M_PARAMS}) && $dh{M_PARAMS} ne '') {
$major=$dh{M_PARAMS};
}
+
if (! -d "$tmp/DEBIAN") {
doit("install","-d","$tmp/DEBIAN");
}