summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog13
-rw-r--r--debian/control2
-rwxr-xr-xdh_fixperms8
-rw-r--r--dh_fixperms.13
-rwxr-xr-xdh_installdirs3
-rw-r--r--dh_installdirs.18
-rwxr-xr-xdh_installdocs3
-rw-r--r--dh_installdocs.19
-rwxr-xr-xdh_installexamples3
-rw-r--r--dh_installexamples.19
-rw-r--r--dh_lib12
-rwxr-xr-xdh_makeshlibs14
-rw-r--r--dh_makeshlibs.135
-rwxr-xr-xdh_suidregister3
-rw-r--r--dh_suidregister.110
-rwxr-xr-xdh_undocumented3
-rw-r--r--dh_undocumented.110
17 files changed, 126 insertions, 22 deletions
diff --git a/debian/changelog b/debian/changelog
index 75e03dae..15b91d46 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,16 @@
+debhelper (0.51) unstable; urgency=low
+
+ * dh_fixperms: make shared libraries non-executable, in accordance with
+ policy. (#16644)
+ * dh_makeshlibs: introduced a -V flag, which allows you to specify explicit
+ version requirements in the shlibs file.
+ * dh_{installdirs,installdocs,installexamples,suidregister,undocumented}:
+ Added a -A flag, which makes any files/directories specified on the
+ command line apply to ALL packages acted on.
+ * Updated Standards-Version to latest.
+
+ -- Joey Hess <joeyh@master.debian.org> Mon, 5 Jan 1998 16:15:01 -0500
+
debhelper (0.50) unstable; urgency=low
* dh_makeshlibs: added -m parameter, which can force the major number
diff --git a/debian/control b/debian/control
index e22d969b..6883f628 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: debhelper
Section: devel
Priority: optional
Maintainer: Joey Hess <joeyh@master.debian.org>
-Standards-Version: 2.1.1.0
+Standards-Version: 2.3.0.1
Package: debhelper
Architecture: all
diff --git a/dh_fixperms b/dh_fixperms
index 0534549c..32c9dbef 100755
--- a/dh_fixperms
+++ b/dh_fixperms
@@ -26,9 +26,15 @@ for PACKAGE in $DH_DOPACKAGES; do
doit "chmod 755 $files"
fi
- # Executable man pages are a bad thing.
+ # Executable man pages are a bad thing..
files=`find $TMP/usr/man/ $TMP/usr/X11*/man/ -type f 2>/dev/null | tr "\n" " "` || true
if [ "$files" ]; then
doit "chmod 644 $files"
fi
+
+ # ..so are executable shared libraries.
+ files=`find $TMP -perm -5 -type f -name "*.so*" | tr "\n" " "` || true
+ if [ "$files" ]; then
+ doit "chmod a-X $files"
+ fi
done
diff --git a/dh_fixperms.1 b/dh_fixperms.1
index c403836c..1fac26c3 100644
--- a/dh_fixperms.1
+++ b/dh_fixperms.1
@@ -12,6 +12,7 @@ dh_fixperms makes all files in usr/doc in the package build directory
(excluding files in the examples/ directory) be mode 644. It also changes
the permissions of all man pages to mode 644. It makes all files be owned by
root, and it removes group and other write permission from all files.
+Finally, it removes execute permissions from any libraries that have it set.
.SH OPTIONS
.TP
.B \-v
@@ -43,6 +44,6 @@ Enables verbose mode
.SH "SEE ALSO"
.BR /usr/doc/debhelper/README
.SH "CONFORMS TO"
-Debian policy, version 2.3.0.0
+Debian policy, version 2.3.0.1
.SH AUTHOR
Joey Hess <joeyh@master.debian.org>
diff --git a/dh_installdirs b/dh_installdirs
index 51ef2ce7..1ef311e7 100755
--- a/dh_installdirs
+++ b/dh_installdirs
@@ -19,7 +19,8 @@ for PACKAGE in $DH_DOPACKAGES; do
dirs=`tr "\n" " " < debian/${EXT}dirs`
fi
- if [ "$PACKAGE" = "$DH_FIRSTPACKAGE" -a "$*" ]; then
+ if [ \( "$PACKAGE" = "$DH_FIRSTPACKAGE" -o "$DH_PARAMS_ALL" \) \
+ -a "$*" ]; then
dirs="$* $dirs"
fi
diff --git a/dh_installdirs.1 b/dh_installdirs.1
index fc5c8d62..0fba87de 100644
--- a/dh_installdirs.1
+++ b/dh_installdirs.1
@@ -3,7 +3,7 @@
dh_installdirs \- create subdirectories in package build directories
.SH SYNOPSIS
.B dh_installdirs
-.I "[-v] [-a] [-i] [-ppackage] [-Ptmpdir] [dir ...]"
+.I "[-v] [-a] [-i] [-ppackage] [-Ptmpdir] [-A] [dir ...]"
.SH "DESCRIPTION"
dh_installdirs is a debhelper program that is responsible for creating
subdirectories in package build directories.
@@ -37,9 +37,13 @@ Create directories for the package named "package".
.B \-Ptmpdir
Use "tmpdir" for package build directory.
.TP
+.B \-A
+Create any directories specified by command line parameters in ALL packages
+acted on.
+.TP
.B dir ...
Create these directories in the package build directory of the first package
-acted on.
+acted on. (Or in all packages if -A is specified.)
.SH NOTES
The
.B \-a
diff --git a/dh_installdocs b/dh_installdocs
index 11014229..f345a282 100755
--- a/dh_installdocs
+++ b/dh_installdocs
@@ -20,7 +20,8 @@ for PACKAGE in $DH_DOPACKAGES; do
docs=`tr "\n" " " < debian/${EXT}docs`
fi
- if [ "$PACKAGE" = "$DH_FIRSTPACKAGE" -a "$*" ]; then
+ if [ \( "$PACKAGE" = "$DH_FIRSTPACKAGE" -o "$DH_PARAMS_ALL" \) \
+ -a "$*" ]; then
docs="$* $docs"
fi
diff --git a/dh_installdocs.1 b/dh_installdocs.1
index 86195b79..ab9ed476 100644
--- a/dh_installdocs.1
+++ b/dh_installdocs.1
@@ -3,7 +3,7 @@
dh_installdocs \- install documentation into package build directories
.SH SYNOPSIS
.B dh_installdocs
-.I "[-v] [-a] [-i] [-ppackage] [-Ptmpdir] [file ...]"
+.I "[-v] [-a] [-i] [-ppackage] [-Ptmpdir] [-A] [file ...]"
.SH "DESCRIPTION"
dh_installdocs is a debhelper program that is responsible for installing
documentation into usr/doc/package in package build directories.
@@ -43,8 +43,13 @@ Install files for the package named "package".
.B \-Ptmpdir
Use "tmpdir" for package build directory.
.TP
+.B \-A
+Install all files specified by command line parameters in ALL packages
+acted on.
+.TP
.B file ...
-Install these files as documentation into the first package acted on.
+Install these files as documentation into the first package acted on. (Or in
+all packages if -A is specified).
.SH NOTES
The
.B \-a
diff --git a/dh_installexamples b/dh_installexamples
index 98a752df..423c647a 100755
--- a/dh_installexamples
+++ b/dh_installexamples
@@ -16,7 +16,8 @@ for PACKAGE in $DH_DOPACKAGES; do
examples=`tr "\n" " " < debian/${EXT}examples`
fi
- if [ "$PACKAGE" = "$DH_FIRSTPACKAGE" -a "$*" ]; then
+ if [ \( "$PACKAGE" = "$DH_FIRSTPACKAGE" -o "$DH_PARAMS_ALL" \) \
+ -a "$*" ]; then
examples="$* $examples"
fi
diff --git a/dh_installexamples.1 b/dh_installexamples.1
index f70b98ce..e46ed826 100644
--- a/dh_installexamples.1
+++ b/dh_installexamples.1
@@ -3,7 +3,7 @@
dh_installexamples \- install example files into package build directories
.SH SYNOPSIS
.B dh_installexamples
-.I "[-v] [-a] [-i] [-ppackage] [-Ptmpdir] [file ...]"
+.I "[-v] [-a] [-i] [-ppackage] [-Ptmpdir] [-A] [file ...]"
.SH "DESCRIPTION"
dh_installexamples is a debhelper program that is responsible for installing
examples into usr/doc/package/examples in package build directories.
@@ -33,8 +33,13 @@ Install files for the package named "package".
.B \-Ptmpdir
Use "tmpdir" for package build directory.
.TP
+.B \-A
+Install any files specified by command line parameters in ALL packages
+acted on.
+.TP
.B file ...
-Install these files as examples into the first package acted on.
+Install these files as examples into the first package acted on. (Or into all
+packages if -A is specified.)
.SH NOTES
The
.B \-a
diff --git a/dh_lib b/dh_lib
index 2c2b995f..39dae2a5 100644
--- a/dh_lib
+++ b/dh_lib
@@ -10,6 +10,7 @@ doit() {
eval '$@'
}
+
# This is an identical command to doit, except the parameter passed to it
# are evaled with double quotes. This version can handle compound commands.
complex_doit() {
@@ -52,6 +53,7 @@ pkgext() {
}
# Returns 1 if the package is a native debian package, null otherwise.
+# As a side effect, sets $VERSION to the version of this package.
# Caches return code so it only needs to run dpkg-parsechangelog once.
isnative() {
if [ -z "$DH_ISNATIVE" ]; then
@@ -141,7 +143,7 @@ get_arch_indep_packages() {
# Argument processing and global variable initialization is below.
# Parse command line.
-set -- `getopt xvidrnakp:P:u:m: $*`
+set -- `getopt xvidrnakVAp:P:u:m: $*`
for i; do
case "$i"
@@ -202,6 +204,14 @@ for i; do
shift
shift
;;
+ -V)
+ DH_V_FLAG=1
+ shift
+ ;;
+ -A)
+ DH_PARAMS_ALL=1
+ shift
+ ;;
--)
shift
break
diff --git a/dh_makeshlibs b/dh_makeshlibs
index 6cf9c803..f96c327f 100755
--- a/dh_makeshlibs
+++ b/dh_makeshlibs
@@ -14,9 +14,9 @@ for PACKAGE in $DH_DOPACKAGES; do
for file in `find $TMP -type f -name "*.so*" | tr "\n" " "` ; do
LIBRARY=`expr $file : ".*/\(.*\)\.so\..*"` || true
- VERSION=`expr $file : ".*/.*\.so\.\(.*\)"` || true
+ LIB_VERSION=`expr $file : ".*/.*\.so\.\(.*\)"` || true
if [ -z "$DH_M_PARAMS" ]; then
- MAJOR=`expr $VERSION : "\([0-9]*\)\."` || true
+ MAJOR=`expr $LIB_VERSION : "\([0-9]*\)\."` || true
else
MAJOR="$DH_M_PARAMS"
fi
@@ -24,6 +24,16 @@ for PACKAGE in $DH_DOPACKAGES; do
if [ ! -d "$TMP/DEBIAN" ] ; then
doit "install -d $TMP/DEBIAN"
fi
+ if [ "$DH_V_FLAG" ]; then
+ if [ "$*" ]; then
+ PACKAGE="$*"
+ else
+ # Call isnative becuase it sets $VERSION
+ # as a side effect.
+ isnative
+ PACKAGE="$PACKAGE (>= $VERSION)"
+ fi
+ fi
complex_doit "echo '$LIBRARY $MAJOR $PACKAGE' >>$TMP/DEBIAN/shlibs"
done
diff --git a/dh_makeshlibs.1 b/dh_makeshlibs.1
index 02c7ea8a..056cc0f2 100644
--- a/dh_makeshlibs.1
+++ b/dh_makeshlibs.1
@@ -3,7 +3,7 @@
dh_makeshlibs \- automatically create shlibs file
.SH SYNOPSIS
.B dh_makeshlibs
-.I "[-v] [-a] [-i] [-mmajor] [-Ptmpdir] [-ppackage]"
+.I "[-v] [-a] [-i] [-mmajor] [-Ptmpdir] [-ppackage] [-mmajor] [-V [dependancies]]"
.SH "DESCRIPTION"
dh_makeshlibs is a debhelper program that automatically scans for shared
libraries, and generates a shlibs file for the libraries it finds.
@@ -30,6 +30,31 @@ Use "tmpdir" for package build directory.
.B \-mmajor
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.
+.TP
+.B \-V [dependancies]
+By default, the shlibs file generated by this program does not make packages
+depend on any particular version of the package containing the shared
+library. It may be necessary for you to add some version dependancy
+information to the shlibs file. If -V is specified with no dependancy
+information, the current version of the package is plugged into a dependancy
+that looks like "packagename (>= packageversion)". If -V is specified with
+parameters, the parameters can be used to specify the exact dependancy
+information needed (be sure to include the package name).
+.SH EXAMPLES
+.TP
+.B dh_makeshlibs
+Assuming this is a package named libfoobar1, generates a shlibs file that
+looks something like:
+ libfoobar 1 libfoobar1
+.TP
+.B dh_makeshlibs \-V
+Assuming the current version of the package is 1.0-3, generates a shlibs
+file that looks something like:
+ libfoobar 1 libfoobar1 (>= 1.0-3)
+.TP
+.B dh_makeshlibs \-V "libfoobar1 (>= 1.0)"
+Generates a shlibs file that looks something like:
+ libfoobar 1 libfoobar1 (>= 1.0)
.SH NOTES
The
.B \-a
@@ -45,6 +70,14 @@ Enables verbose mode
.SH "SEE ALSO"
.BR /usr/doc/debhelper/README
.SH BUGS
+Due to limitations in
+.BR getopt (1)
+, I had to fudge a bit on how the -V parameter really works. When -V is
+specified, it's really examining the rest of the command line for any text
+that isn't a switch, and using that for the dependancy information. This
+means that the -V switch and any dependancy parameters should come last on
+the command line.
+.P
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
diff --git a/dh_suidregister b/dh_suidregister
index 42e4d16d..3f7622af 100755
--- a/dh_suidregister
+++ b/dh_suidregister
@@ -19,7 +19,8 @@ for PACKAGE in $DH_DOPACKAGES; do
files=`tr "\n" " " < debian/${EXT}suid`
fi
- if [ "$PACKAGE" = "$DH_FIRSTPACKAGE" -a "$*" ]; then
+ if [ \( "$PACKAGE" = "$DH_FIRSTPACKAGE" -o "$DH_PARAMS_ALL" \) \
+ -a "$*" ]; then
files="$* $files"
fi
diff --git a/dh_suidregister.1 b/dh_suidregister.1
index d374a4c1..ef5b08dc 100644
--- a/dh_suidregister.1
+++ b/dh_suidregister.1
@@ -3,7 +3,7 @@
dh_suidregister \- set up package to register files with suidregister
.SH SYNOPSIS
.B dh_suidregister
-.I "[-v] [-a] [-i] [-ppackage] [-Ptmpdir] [file ...]"
+.I "[-v] [-a] [-i] [-ppackage] [-Ptmpdir] [-A] [file ...]"
.SH "DESCRIPTION"
dh_suidregister is a debhelper program that is responsible for modifying the
postinst and postrm scripts of a package so the package will register files
@@ -44,8 +44,14 @@ Register files for the package named "package".
.B \-Ptmpdir
Use "tmpdir" for package build directory.
.TP
+.B \-A
+Register any files specified by command line parameters in ALL packages
+acted on. I doubt anyone will find this useful, it's here for consitency
+with other debhelper programs.
+.TP
.B file ...
-Register these files in the first package acted on.
+Register these files in the first package acted on. (Or in all packages if
+-A is specified.)
.SH NOTES
The
.B \-a
diff --git a/dh_undocumented b/dh_undocumented
index e8ca0e01..31b2f987 100755
--- a/dh_undocumented
+++ b/dh_undocumented
@@ -19,7 +19,8 @@ for PACKAGE in $DH_DOPACKAGES; do
undoc=`tr "\n" " " < debian/${EXT}undocumented`
fi
- if [ "$PACKAGE" = "$DH_FIRSTPACKAGE" -a "$*" ]; then
+ if [ \( "$PACKAGE" = "$DH_FIRSTPACKAGE" -o "$DH_PARAMS_ALL" \) \
+ -a "$*" ]; then
undoc="$* $undoc"
fi
diff --git a/dh_undocumented.1 b/dh_undocumented.1
index 2bbf24a1..9df8e311 100644
--- a/dh_undocumented.1
+++ b/dh_undocumented.1
@@ -3,7 +3,7 @@
dh_undocumented \- make symlinks to undocumented.7.gz man page
.SH SYNOPSIS
.B dh_undocumented
-.I "[-v] [-a] [-i] [-ppackage] [-Ptmpdir] [manpage ...]"
+.I "[-v] [-a] [-i] [-ppackage] [-Ptmpdir] [-A] [manpage ...]"
.SH "DESCRIPTION"
dh_undocumented is a debhelper program that is responsible for making
symlinks to the
@@ -47,9 +47,15 @@ Install undocumented man page symlinks for the package named "package".
.B \-Ptmpdir
Use "tmpdir" for package build directory.
.TP
+.B \-A
+Install undocumented man page symlinks for any man pages specified by
+command line parameters in ALL packages acted on. I doubt anyone will find
+this useful, it's here for consitency with other debhelper programs.
+.TP
.B manpage ...
Install undocumented man page symlinks for each of these man pages
-into the first package acted on.
+into the first package acted on. (Or in all packages acted on if -A is
+specified.)
.SH NOTES
The
.B \-a