exit 1
}
+# Output a warning.
+warning() {
+ echo `basename $0`": $1" >&2
+}
+
# Pass it a name of a binary package, it returns the name of the tmp dir to
# use, for that package.
# This is for back-compatability with the debian/tmp tradition.
# Pass this the name of a binary package, and the name of the file wanted
# for the package, and it will return the actual filename to use. For
# example if the package is foo, and the file is somefile, it will look for
-# debian/somefile, and if found return that, otherwise, it will look for
-# debian/foo, and if found, return that. Failing that, it will return
-# nothing.
+# debian/somefile, and if found return that, otherwise, if the package is
+# the main package, it will look for debian/foo, and if found, return that.
+# Failing that, it will return nothing.
pkgfile() {
if [ -e "debian/$1.$2" ]; then
echo "debian/$1.$2"
# Caches return code so it only needs to run dpkg-parsechangelog once.
isnative() {
if [ -z "$DH_ISNATIVE" ]; then
+ # Make sure we look at the correct changelog.
+ isnative_changelog=`pkgfile $PACKAGE changelog`
+ if [ ! "$isnative_changelog" ]; then
+ isnative_changelog=debian/changelog
+ fi
# Get the package version.
# Note that the 2>/dev/null is because a bug in dpkg-parsechangelog makes it
# output a bogus error message to stderr.
# If it actually has a real error, then the expr will fail, and this whole
# script will come crashing to a halt, which is good enough to inform
# the user something's wrong. :-)
- VERSION=`expr "\`dpkg-parsechangelog 2>/dev/null\`" : \
+ VERSION=`expr "\`dpkg-parsechangelog -l$isnative_changelog 2>/dev/null\`" : \
'.*Version: \(.*\).*Distribution:'`
# Is this a native Debian package?
if expr "$VERSION" : '.*-' >/dev/null; then
complex_doit "echo '# End automatically added section' >> $autoscript_debscript"
}
-# Sets 2 global variables, INDEP_PACKAGES is all the arch-independant
-# packages, ARCH_PACKAGES is the arch-dependant packages.
-get_arch_indep_packages() {
- INDEP_PACKAGES=""
- ARCH_PACKAGES=""
-
- # First, get the list of all binary packages.
- # Notice we want the list in reverse order, thus the tac.
- PACKAGES=`grep ^Package: debian/control | cut -d " " -f 2 | tac | tr "\n" " "`
- # Remove trailing space.
- PACKAGES=`expr "$PACKAGES" : '\(.*\) '`
- # Loop on the list of architectures.
- for ARCH in `grep ^Architecture: debian/control | cut -d " " -f 2` ; do
- # Pull the last package off the list.
- THISPKG=`expr "$PACKAGES" : '.* \(.*\)'` || true
- if [ ! "$THISPKG" ]; then
- THISPKG=$PACKAGES
- fi
- PACKAGES=`expr "$PACKAGES" : '\(.*\) .*'` || true
-
- if [ ! "$THISPKG" ]; then
- error "debian/control invalid - too many Architecture lines or too few Package lines"
- fi
-
- if [ "$ARCH" = "all" ]; then
- INDEP_PACKAGES="$INDEP_PACKAGES $THISPKG"
- else
- ARCH_PACKAGES="$ARCH_PACKAGES $THISPKG"
- fi
- done
-
- if [ "$PACKAGES" ]; then
- error "debian/control invalid - too many Architecure lines or too few Package lines"
- fi
-}
-
# Argument processing and global variable initialization is below.
+# If DH_OPTIONS is set, prepend it to the command line.
+if [ "$DH_OPTIONS" ]; then
+ set -- $DH_OPTIONS $@
+fi
+
# Check to see if an argument on the command line starts with a dash.
# if so, we need to pass this off to the resource intensive perl.
for arg; do
# Check if packages to build have been specified, if not, fall back to
# the default, doing them all.
if [ ! "$DH_DOPACKAGES" ]; then
- if [ "$DH_DOINDEP" -o "$DH_DOARCH" ]; then
+ if [ "$DH_DOINDEP" -o "$DH_DOARCH" -o "$DH_DOSAME" ]; then
error "I have no package to build."
fi
DH_DOPACKAGES=`grep ^Package: debian/control | cut -d " " -f 2 | tr "\n" " "`