]> git.donarmstrong.com Git - debhelper.git/commitdiff
r4: Initial Import
authorjoey <joey>
Tue, 17 Aug 1999 04:21:03 +0000 (04:21 +0000)
committerjoey <joey>
Tue, 17 Aug 1999 04:21:03 +0000 (04:21 +0000)
15 files changed:
1  2 
TODO
debian/changelog
debian/rules
dh_builddeb
dh_clean
dh_compress
dh_fixperms
dh_installchangelogs
dh_installdebfiles
dh_installdocs
dh_installexamples
dh_installmanpages
dh_installmenu
dh_lib
examples/rules

diff --cc TODO
index de0177faa9694394aba33706546b98a7844b7839,de0177faa9694394aba33706546b98a7844b7839..078a1d4e882684399b7fd3917cb8d8fbccf136a6
--- 1/TODO
--- 2/TODO
+++ b/TODO
@@@ -1,6 -1,6 +1,4 @@@
--shared libaries
  .so files of compressed manpages change to symlinks
--multiple binary packages support
  edit package scripts (??)
  add all other functionality of debstd (??)
--documentation
++dh_fixperms: allow listing of files not to be touched (diffucult).
index 87d526399607b5ddbb6dd7100918be643ce19277,87d526399607b5ddbb6dd7100918be643ce19277..7f1faa301cc0f07a574a084fdc2db14794d490c0
@@@ -1,3 -1,3 +1,29 @@@
++debhelper (0.2) unstable; urgency=low
++
++  * Moved out of unstable, it still has rough edges and incomplete bits, but
++    is ready for general use.
++  * Added man pages for all commands.
++  * Multiple binary package support.
++  * Support for specifying exactly what set of binary packages to act on,
++    by group (arch or noarch), and by package name.
++  * dh_clean: allow specification of additional files to remove as
++    parameters.
++  * dh_compress: fixed it to not compress doc/package/copyright
++  * dh_installmanpage: allow listing of man pages that should not be 
++    auto-installed as parameters.
++  * dh_installdebfiles: make sure all installed files have proper ownerships
++    and permissions.
++  * dh_installdebfiles: only pass ELF files to dpkg-shlibdeps, and pass .so
++    files.
++  * Added a README.
++  * dh_compress: changed behavior - debian/compress script is now run inside
++    the package build directory it is to act on.
++  * Added dh_lib symlink in debian/ so the debhelper apps used in this
++    package's debian/rules always use the most up-to-date db_lib.
++  * Changed dh_cleantmp commands in the examples rules files to dh_clean.
++
++ -- Joey Hess <joeyh@master.debian.org>  Tue, 23 Sep 1997 12:26:12 -0400
++
  debhelper (0.1) experimental; urgency=low
  
    * First release. This is a snapshot of my work so far, and it not yet
diff --cc debian/rules
index 0806a4db0f346ef4fab98ab884b541c81857e219,0806a4db0f346ef4fab98ab884b541c81857e219..247b48b5d0964e2dd5e3a766d293af69c93b4dc7
@@@ -2,6 -2,6 +2,8 @@@
  # Note that I have to refer to debhelper programs witrh ./, to make sure
  # I run the most current ones.
  
++export DH_VERBOSE=1
++
  test_files=dh_lib
  
  build:
@@@ -14,7 -14,7 +16,7 @@@ clean
  
  # Build architecture-dependent files here.
  binary-arch: build
--      # We have nothing to do by default.
++# We have nothing to do by default.
  
  # Build architecture-independent files here.
  binary-indep: build
@@@ -28,7 -28,7 +30,7 @@@
        install -d debian/tmp/usr/lib/debhelper
        cp dh_lib debian/tmp/usr/lib/debhelper
  
--      ./dh_installdocs TODO
++      ./dh_installdocs TODO README
        ./dh_installexamples examples/*
  #     ./dh_installmenu
        ./dh_installmanpages
diff --cc dh_builddeb
index a62e81cede06102d38c24909d987cfb0bdcc07a8,a62e81cede06102d38c24909d987cfb0bdcc07a8..7bea3c06608700b6fe6a472ceab1c2c22475dc93
@@@ -1,7 -1,7 +1,11 @@@
  #!/bin/sh -e
  #
--# Build the .deb package, assuming all the files are set up in debian/tmp.
++# Build the .deb package, assuming all the files are set up.
  
  PATH=debian:$PATH:/usr/lib/debhelper
  source dh_lib
--doit "dpkg --build debian/tmp .."
++
++for PACKAGE in $DH_DOPACKAGES; do
++      TMP=`tmpdir $PACKAGE`
++      doit "dpkg --build debian/$TMP .."
++done
diff --cc dh_clean
index da2c4b2279f5607c8df9e6d1b01e1f398b39a9ce,da2c4b2279f5607c8df9e6d1b01e1f398b39a9ce..e7bec968758c7fc5b2425cd5317c56ea8433b3c7
+++ b/dh_clean
@@@ -1,16 -1,16 +1,21 @@@
  #!/bin/sh -e
  #
--# Clean up debian/tmp and other teporary files generated by the 
++# Clean up debian/$TMP and other tepmorary files generated by the 
  # build process.
  
  PATH=debian:$PATH:/usr/lib/debhelper
  source dh_lib
  
--doit "rm -rf debian/tmp"
--doit "rm -f debian/substvars debian/*.substvars debian/files*"
++for PACKAGE in $DH_DOPACKAGES; do
++      TMP=`tmpdir $PACKAGE`
++      EXT=`pkgext $PACKAGE`
++      doit "rm -rf debian/$TMP"
++      doit "rm -f debian/${EXT}substvars"
++done
++doit "rm -f debian/files* $*"
  
  # Remove other temp files. I don't run this through doit becuase
  # I haven't figured out what I have to esacape to put it in quotes.
--# However, it doesn't modify debian/tmp, so I guess it's ok to not run it 
++# However, it doesn't modify debian/$TMP, so I guess it's ok to not run it 
  # through doit.
  find . \( -name "\#*\#" -o -name "*~" -o -name "DEADJOE" \) -exec rm -f {} \;
diff --cc dh_compress
index e1f8ed643525f9102e87a652b60515ea71337713,e1f8ed643525f9102e87a652b60515ea71337713..a1ff97e36d7c92ed425d662b0f778fe6e46892fb
@@@ -6,35 -6,35 +6,47 @@@
  PATH=debian:$PATH:/usr/lib/debhelper
  source dh_lib
  
--# The config file is a sh script that outputs the files to be compressed
--# (typically using find).
--if [ -f debian/compress ]; then
--      files=`sh debian/compress 2>/dev/null`
--else
--      # By default fall back on what the policy manual says to compress.
--      files=`
--              find debian/tmp/usr/info debian/tmp/usr/man \
--                      debian/tmp/usr/X11*/man -type f 2>/dev/null ;
--              find debian/tmp/usr/doc -type f -size +4k \
--                      ! -name "*.htm*" ! -name "*.gif" \
--                      ! -name "debian/tmp/usr/doc/*/copyright" 2>/dev/null
--      `
--fi
++for PACKAGE in $DH_DOPACKAGES; do
++      TMP=`tmpdir $PACKAGE`
++      EXT=`pkgext $PACKAGE`
  
--if [ "$files" ]; then
--      # This is just a cosmetic fix.
--      files=`echo $files | tr "\n" " "`       
++      # Run the file name gatering commands from within the directory
++      # structure that will be effected.
++      olddir=`pwd`
++      cd debian/$TMP
  
--      doit "gzip -9 $files" || true
--fi
++      if [ -f debian/${EXT}compress ]; then
++              # The config file is a sh script that outputs the files to be compressed
++              # (typically using find).
++              files=`sh debian/${EXT}compress 2>/dev/null`
++      else
++              # By default fall back on what the policy manual says to compress.
++              files=`
++                      find usr/info usr/man usr/X11*/man -type f 2>/dev/null ;
++                      find usr/doc -type f -size +4k \
++                              ! -name "*.htm*" ! -name "*.gif" \
++                              ! -name "copyright" 2>/dev/null
++              `
++      fi
  
--# Fix up symlinks that were pointing to the uncompressed files.
--for file in `find debian/tmp -type l`; do
--      DIRECTORY=`expr $file : "\(.*\)/[^/]*"`
--      NAME=`expr $file : ".*/\([^/]*\)"`
--      LINKVAL=`ls -l $DIRECTORY/$NAME | awk '{ print $11;}'`
--      if [ ! -e $DIRECTORY/$LINKVAL -a -f $DIRECTORY/$LINKVAL.gz ]; then
--              doit "rm $DIRECTORY/$NAME"
--              doit "ln -s $LINKVAL.gz $DIRECTORY/$NAME.gz"
++      if [ "$files" ]; then
++              # This is just a cosmetic fix.
++              files=`echo $files | tr "\n" " "`       
++      
++              doit "gzip -9 $files" || true
        fi
++
++      # Change back to old pwd.
++      cd $olddir
++
++      # Fix up symlinks that were pointing to the uncompressed files.
++      for file in `find debian/$TMP -type l`; do
++              DIRECTORY=`expr $file : "\(.*\)/[^/]*"`
++              NAME=`expr $file : ".*/\([^/]*\)"`
++              LINKVAL=`ls -l $DIRECTORY/$NAME | awk '{ print $11;}'`
++              if [ ! -e $DIRECTORY/$LINKVAL -a -f $DIRECTORY/$LINKVAL.gz ]; then
++                      doit "rm $DIRECTORY/$NAME"
++                      doit "ln -s $LINKVAL.gz $DIRECTORY/$NAME.gz"
++              fi
++      done
  done
diff --cc dh_fixperms
index a2fd9442db641c66720f357010a940f100973ea8,a2fd9442db641c66720f357010a940f100973ea8..97738313f1379dfee2489f3acae692a34a3c9ca0
@@@ -5,25 -5,25 +5,30 @@@
  PATH=debian:$PATH:/usr/lib/debhelper
  source dh_lib
  
--# General things..
--if [ -d debian/tmp ]; then
--      doit "chown -R root.root debian/tmp"
--      doit "chmod -R go=rX debian/tmp"
--fi
++for PACKAGE in $DH_DOPACKAGES; do
++      TMP=`tmpdir $PACKAGE`
++      EXT=`pkgext $PACKAGE`
  
--# Fix up premissions in /usr/doc, setting everything to not exectable
--# by default.
--files=`find debian/tmp/usr/doc -type f 2>/dev/null | tr "\n" " "` || true
--if [ "$files" ]; then
--      doit "chmod 644 $files"
--fi
--files=`find debian/tmp/usr/doc -type d 2>/dev/null | tr "\n" " "` || true
--if [ "$files" ]; then
--      doit "chmod 755 $files"
--fi
++      # General things..
++      if [ -d debian/$TMP ]; then
++              doit "chown -R root.root debian/$TMP"
++              doit "chmod -R go=rX debian/$TMP"
++      fi
  
--# Executable man pages is just not done.
--files=`find debian/tmp/usr/man/ debian/tmp/usr/X11*/man/ -type f 2>/dev/null | tr "\n" " "` || true
--if [ "$files" ]; then
--      doit "chmod 644 $files"
--fi
++      # Fix up premissions in usr/doc, setting everything to not exectable
++      # by default.
++      files=`find debian/$TMP/usr/doc -type f 2>/dev/null | tr "\n" " "` || true
++      if [ "$files" ]; then
++              doit "chmod 644 $files"
++      fi
++      files=`find debian/$TMP/usr/doc -type d 2>/dev/null | tr "\n" " "` || true
++      if [ "$files" ]; then
++              doit "chmod 755 $files"
++      fi
++
++      # Executable man pages are a bad thing.
++      files=`find debian/$TMP/usr/man/ debian/$TMP/usr/X11*/man/ -type f 2>/dev/null | tr "\n" " "` || true
++      if [ "$files" ]; then
++              doit "chmod 644 $files"
++      fi
++done
index 935a87a687e43fdf95a35bda7548c38baf846eee,935a87a687e43fdf95a35bda7548c38baf846eee..4a93188c4b4ea15878e7c12e41e5f21d86df1aff
@@@ -13,7 -13,7 +13,7 @@@ source dh_li
  UPSTREAM=$1
  
  if [ "$NATIVE" -a "$UPSTREAM" ]; then
--      error "Cannot specify an upstream changelog for a native package."
++      error "Cannot specify an upstream changelog for a native debian package."
  fi
  
  if [ "$NATIVE" ]; then
@@@ -22,11 -22,11 +22,15 @@@ els
        CHANGELOG_NAME=changelog.Debian
  fi
  
--if [ ! -d debian/tmp/usr/doc/$PACKAGE ]; then
--      doit "install -d debian/tmp/usr/doc/$PACKAGE"
--fi
--doit "install -p -m644 debian/changelog debian/tmp/usr/doc/$PACKAGE/$CHANGELOG_NAME"
++for PACKAGE in $DH_DOPACKAGES; do
++      TMP=`tmpdir $PACKAGE`
  
--if [ "$UPSTREAM" ]; then
--      doit "install -p -m644 $UPSTREAM debian/tmp/usr/doc/$PACKAGE/changelog"
--fi
++      if [ ! -d debian/$TMP/usr/doc/$PACKAGE ]; then
++              doit "install -d debian/$TMP/usr/doc/$PACKAGE"
++      fi
++      doit "install -p -m644 debian/changelog debian/$TMP/usr/doc/$PACKAGE/$CHANGELOG_NAME"
++
++      if [ "$UPSTREAM" ]; then
++              doit "install -p -m644 $UPSTREAM debian/$TMP/usr/doc/$PACKAGE/changelog"
++      fi
++done
index ada82155ac80f5a4fdb82b2e4dc1ff3d5464995a,ada82155ac80f5a4fdb82b2e4dc1ff3d5464995a..872eacbbdb7ea4c8b94664ddc500096a9547b434
@@@ -6,30 -6,30 +6,42 @@@
  PATH=debian:$PATH:/usr/lib/debhelper
  source dh_lib
  
--if [ ! -d debian/tmp/DEBIAN ]; then
--      doit "install -d debian/tmp/DEBIAN"
--fi
++for PACKAGE in $DH_DOPACKAGES; do
++      TMP=`tmpdir $PACKAGE`
++      EXT=`pkgext $PACKAGE`
  
--# Install executable files.
--for file in postinst preinst prerm postrm; do
--      if [ -f debian/$file ]; then
--              doit "install -p debian/$file debian/tmp/DEBIAN"
++      if [ ! -d debian/$TMP/DEBIAN ]; then
++              doit "install -o root -g root -d debian/$TMP/DEBIAN"
        fi
--done
  
--# Install non-executable files
--for file in shlibs conffiles; do
--      if [ -f debian/$file ]; then
--              doit "install -m 644 -p debian/$file debian/tmp/DEBIAN"
--      fi                                               
--done
++      # Install executable files.
++      for file in postinst preinst prerm postrm; do
++              if [ -f debian/$EXT$file ]; then
++                      doit "install -o root -g root -p debian/$EXT$file debian/$TMP/DEBIAN"
++              fi
++      done
  
--# Run dpkg-shlibdeps to generate dependancies.
--# This ends up running dpkg-shlibdeps on scripts, but that is no big deal.
--files=`find debian/tmp -type f -perm +111 | tr "\n" " "`
--if [ "$files" ]; then
--      doit "dpkg-shlibdeps $files"
--fi
++      # Install non-executable files
++      for file in shlibs conffiles; do
++              if [ -f debian/$EXT$file ]; then
++                      doit "install -o root -g root -m 644 -p debian/$EXT$file debian/$TMP/DEBIAN"
++              fi                                               
++      done
  
--# Generate and install control file.
--doit "dpkg-gencontrol -p$PACKAGE"
++      # Run dpkg-shlibdeps to generate dependancies.
++      filelist=""
++      for file in `find debian/$TMP -type f \( -perm +111 \) -or -name "*.so.*" | tr "\n" " "` ; do
++              case "`file $file`" in
++                      *ELF*)
++                              filelist="$file $filelist"
++                      ;;
++              esac
++      done
++      if [ "$filelist" ]; then
++              doit "dpkg-shlibdeps -Tdebian/${EXT}substvars $filelist"
++      fi
++
++      # Generate and install control file.
++      doit "dpkg-gencontrol -p$PACKAGE -Tdebian/${EXT}substvars -Pdebian/$TMP"
++      doit "chown root.root debian/$TMP/DEBIAN/control"
++done
diff --cc dh_installdocs
index 9481ec4e5dee35c9458a2d6a9a210797235b2003,9481ec4e5dee35c9458a2d6a9a210797235b2003..336ed6eedf201c18c2dfec7de7362502377798e3
@@@ -1,26 -1,26 +1,45 @@@
  #!/bin/sh -e
  #
--# Reads debian/docs, and looks at files listed on command line, installs all 
--# files listed there into /usr/doc/$PACKAGE
++# Reads debian/docs, installs all files listed there into /usr/doc/$PACKAGE
  # Also installs the debian/copyright and debian/README.debian and debian/TODO
  
  PATH=debian:$PATH:/usr/lib/debhelper
  source dh_lib
  
--if [ ! -d debian/tmp/usr/doc/$PACKAGE ]; then
--      doit "install -d debian/tmp/usr/doc/$PACKAGE"
--fi
++for PACKAGE in $DH_DOPACKAGES; do
++      TMP=`tmpdir $PACKAGE`
++      EXT=`pkgext $PACKAGE`
  
--if [ -e debian/docs ]; then
--      docs=`cat debian/docs | tr "\n" " "`
--fi
++      if [ ! -d debian/$TMP/usr/doc/$PACKAGE ]; then
++              doit "install -d debian/$TMP/usr/doc/$PACKAGE"
++      fi
  
--for file in $docs $@; do
--      doit "cp -a $file debian/tmp/usr/doc/$PACKAGE/"
--done
++      docs=""
++
++      if [ -e debian/${EXT}docs ]; then
++              docs=`cat debian/${EXT}docs | tr "\n" " "`
++      fi
++
++      if [ "$PACKAGE" = "$MAINPACKAGE" -a "$*" ]; then
++              docs="$* $docs"
++      fi
++
++      if [ "$docs" ]; then
++              for file in $docs; do
++                      doit "cp -a $file debian/$TMP/usr/doc/$PACKAGE/"
++              done
++      fi
++
++      # Install these files only into the main package by default.
++      if [ "$PACKAGE" = "$MAINPACKAGE" ]; then
++              for file in README.debian TODO ; do
++                      if [ -f debian/$file ]; then
++                              doit "install -m 644 -p debian/$file debian/$TMP/usr/doc/$PACKAGE/"
++                      fi
++              done
++      fi
  
--for file in copyright README.debian TODO ; do
--      if [ -f debian/$file ]; then
--              doit "install -m 644 -p debian/$file debian/tmp/usr/doc/$PACKAGE/"
++      if [ -f debian/copyright ]; then
++                      doit "install -m 644 -p debian/copyright debian/$TMP/usr/doc/$PACKAGE/"
        fi
  done
index 7aec26ebc3e471e750fc08fa839efe641b46ea93,7aec26ebc3e471e750fc08fa839efe641b46ea93..06e28d619a0b46c256cda83702a15ea480369cf6
@@@ -6,16 -6,16 +6,27 @@@
  PATH=debian:$PATH:/usr/lib/debhelper
  source dh_lib
  
--if [ -e debian/examples ]; then
--      examples=`cat debian/examples | tr "\n" " "`
--fi
++for PACKAGE in $DH_DOPACKAGES; do
++      TMP=`tmpdir $PACKAGE`
++      EXT=`pkgext $PACKAGE`
  
--if [ "$examples" -o $@ ]; then
--      if [ ! -d debian/tmp/usr/doc/$PACKAGE/examples ]; then
--              doit "install -d debian/tmp/usr/doc/$PACKAGE/examples"
++      examples=""
++
++      if [ -e debian/${EXT}examples ]; then
++              examples=`cat debian/${EXT}examples | tr "\n" " "`
++      fi
++
++      if [ "$PACKAGE" = "$MAINPACKAGE" -a "$*" ]; then
++              examples="$* $examples"
        fi
  
--      for file in $examples $@; do
--              doit "cp -a $file debian/tmp/usr/doc/$PACKAGE/examples/"
--      done
--fi
++      if [ "$examples" ]; then
++              if [ ! -d debian/$TMP/usr/doc/$PACKAGE/examples ]; then
++                      doit "install -d debian/$TMP/usr/doc/$PACKAGE/examples"
++              fi
++
++              for file in $examples; do
++                      doit "cp -a $file debian/$TMP/usr/doc/$PACKAGE/examples/"
++              done
++      fi
++done
index 9dbf1c9381e68e2f2b1c9d7ec14090f4569b86a0,9dbf1c9381e68e2f2b1c9d7ec14090f4569b86a0..7ee35a904c13781ec13f06654d68af57cd896a8f
@@@ -1,16 -1,16 +1,19 @@@
  #!/bin/sh -e
  #
--# Automatically find and install man pages.
++# Automatically find and install man pages. However, do not install any man 
++# pages listed on the command line.
  # This is a little bit DWIMish, but still very handy.
  
  PATH=debian:$PATH:/usr/lib/debhelper
  source dh_lib
  
--# Note: this was mostly copied from debstd, and not verified to work.
--# Find all filenames that look like man pages.
--for file in `find * -name "*.[1-9]*" ! -name "*.ex" ! -name "*.in"`; do
--      # Make sure they arn't alreadt in debian/tmp
--      if ! expr $file : 'debian/tmp/.*' >/dev/null; then
++for PACKAGE in $DH_DOPACKAGES; do
++        TMP=`tmpdir $PACKAGE`
++
++      # Find all filenames that look like man pages.
++      # .ex files are examples installed by deb-make, we don't want those, or
++      # .in files, which are from configure.
++      for file in `find * -name "*.[1-9]*" ! -name "*.ex" ! -name "*.in" | grep -v ^debian/$TMP`; do
                # Make sure file thinks they are man pages.
                if file $file|grep -q roff; then
                        if echo $file|grep -q /; then
                        else
                                NAME=$file
                        fi
--                      SECTION=man`expr $NAME : '.*\.\([123456789]\)'`
--                      if [ ! -e debian/tmp/usr/man/$SECTION/$NAME -a \
--                           ! -e debian/tmp/usr/X11*/man/$SECTION/$NAME ]; then
--                              if [ ! -d debian/tmp/usr/man/$SECTION ]; then
--                                      doit "install -d debian/tmp/usr/man/$SECTION"
++                      # Look at the command line and check if we should
++                      # install the file.
++                      install=1
++                      for notinstall in $@; do
++                              if [ "$NAME" = "$notinstall" -o \
++                                   "$file" = "$notinstall" ]; then
++                                      install=""
++                              fi
++                      done
++                      if [ "$install" ]; then
++                              SECTION=man`expr $NAME : '.*\.\([123456789]\)'`
++                              if [ ! -e debian/$TMP/usr/man/$SECTION/$NAME -a \
++                                   ! -e debian/$TMP/usr/X11*/man/$SECTION/$NAME ]; then
++                                      if [ ! -d debian/$TMP/usr/man/$SECTION ]; then
++                                              doit "install -d debian/$TMP/usr/man/$SECTION"
++                                      fi
++                                      doit "install -p -m644 $file debian/$TMP/usr/man/$SECTION/$NAME"
                                fi
--                              doit "install -p -m644 $file debian/tmp/usr/man/$SECTION/$NAME"
                        fi
                fi
--      fi
++      done
  done
diff --cc dh_installmenu
index 26798c29c006f78a905e041d592718866514683e,26798c29c006f78a905e041d592718866514683e..775945aaa8d4b35dab3c9ecfd5d71ab6e75aa5fe
@@@ -2,23 -2,23 +2,28 @@@
  #
  # Integration with debian menu system:
  #
--# If debian/menu file exists, save it to debian/tmp/usr/lib/menu/$PACKAGE
++# If debian/menu file exists, save it to debian/$TMP/usr/lib/menu/$PACKAGE
  # If debian/menu-method file exists, save it to 
--# debian/tmp/etc/menu-methods/$PACKAGE
++# debian/$TMP/etc/menu-methods/$PACKAGE
  
  PATH=debian:$PATH:/usr/lib/debhelper
  source dh_lib
  
--if [ -e debian/menu ]; then
--      if [ ! -d debian/tmp/usr/lib/menu ]; then
--              doit "install -d debian/tmp/usr/lib/menu"
++for PACKAGE in $DH_DOPACKAGES; do
++      TMP=`tmpdir $PACKAGE`
++      EXT=`pkgext $PACKAGE`
++
++      if [ -e debian/${EXT}menu ]; then
++              if [ ! -d debian/$TMP/usr/lib/menu ]; then
++                      doit "install -d debian/$TMP/usr/lib/menu"
++              fi
++              doit "install -p -m644 debian/${EXT}menu debian/$TMP/usr/lib/menu/$PACKAGE"
        fi
--      doit "install -p -m644 debian/menu debian/tmp/usr/lib/menu/$PACKAGE"
--fi
  
--if [ -e debian/menu-method ]; then
--      if [ ! -d debian/tmp/etc/menu-methods ]; then
--              doit "install -d debian/tmp/etc/menu-methods"
++      if [ -e debian/${EXT}menu-method ]; then
++              if [ ! -d debian/$TMP/etc/menu-methods ]; then
++                      doit "install -d debian/$TMP/etc/menu-methods"
++              fi
++              doit "install -p debian/${EXT}menu-method debian/$TMP/etc/menu-methods/$PACKAGE"
        fi
--      doit "install -p debian/menu-method debian/tmp/etc/menu-methods/$PACKAGE"
--fi
++done
diff --cc dh_lib
index d92663950e3122278f07f34d0b1305bb3b2f48d3,d92663950e3122278f07f34d0b1305bb3b2f48d3..b8562cdfda43976176756b4d2b0ba28084039029
--- 1/dh_lib
--- 2/dh_lib
+++ b/dh_lib
@@@ -1,7 -1,7 +1,8 @@@
  # Library functions for debhelper programs.
  
  # Run a command, and display the command to stdout if verbose mode is on.
--# All commands that edit debian/tmp should be ran via this function.
++# All commands that modifiy files in debian/$TMP should be ran via this 
++# function.
  function doit() {
        verbose_echo "$1"
        $1
@@@ -20,20 -20,20 +21,29 @@@ function error() 
        exit 1
  }
  
--# Argument processing and global variable initialization is below.
++# Pass it a name of a binary package, it returns the name of the tmp dir to
++# use, for that package, relative to debian/
++# This is for back-compatability with the debian/tmp tradition.
++function tmpdir() {
++      if [ "$1" = "$MAINPACKAGE" ]; then
++              echo tmp
++      else
++              echo "$PACKAGE"
++      fi
++}
  
--# Get the package name and version from the changelog.
--LINE=`head -1 debian/changelog`
--PACKAGE=`expr "$LINE" : '\(.*\) (.*)'`
--VERSION=`expr "$LINE" : '.* (\(.*\))'`
++# Pass it a name of a binary package, it returns the name to prefix to files
++# in debian for this package.
++function pkgext() {
++      if [ "$1" != "$MAINPACKAGE" ]; then
++              echo "$PACKAGE."
++      fi
++}
  
--# Is this a native Debian package?
--if ! expr "$VERSION" : '.*-' >/dev/null; then
--              NATIVE=1
--fi
++# Argument processing and global variable initialization is below.
  
  # Parse command line.
--set -- `getopt v $*` 
++set -- `getopt viap: $*`
  
  for i; do
        case "$i"
                        DH_VERBOSE=1
                        shift
                        ;;
++              -i)
++                      DH_DOINDEP=1
++                      shift
++                      ;;
++              -a)
++                      DH_DOARCH=1
++                      shift
++                      ;;
++              -p)
++                      DH_DOPACKAGES="$DH_DOPACKAGES $2"
++                      shift
++                      shift
++                      ;;
                --)
                        shift
                        break
                        ;;
        esac
  done
++
++# Get the package version from the changelog.
++LINE=`head -1 debian/changelog`
++VERSION=`expr "$LINE" : '.* (\(.*\))'`
++
++# Get the name of the main binary package.
++MAINPACKAGE=`grep ^Package: debian/control | cut -d " " -f 2 | head -1`
++
++# Is this a native Debian package?
++if ! expr "$VERSION" : '.*-' >/dev/null; then
++              NATIVE=1
++fi
++
++if [ "$DH_DOINDEP" -o "$DH_DOARCH" ]; then
++      # Figure out all the binary packages to be produced, by looking at the
++      # control file. Break it into 2 lists, INDEP_PACKAGES and ARCH_PACKAGES.
++      #
++      # First, get the list of all binary packages.
++      PACKAGES=`grep ^Package: debian/control | cut -d " " -f 2 | tr "\n" " "`
++      # Remove trailing space.
++      PACKAGES=`expr "$PACKAGES" : '\(.*\) '`
++      # Loop on the list of architectures. Note that we tac the result to reverse
++      # it, becuase we are going through the list of packages in reverse.
++      for ARCH in `grep ^Architecture: debian/control | tac | cut -d " " -f 2` ; do
++              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
++      if [ "$DH_DOINDEP" ]; then
++              DH_DOPACKAGES="$DH_DOPACKAGES $INDEP_PACKAGES"
++      fi
++      if [ "$DH_DOARCH" ]; then
++              DH_DOPACKAGES="$DH_DOPACKAGES $ARCH_PACKAGES"
++      fi
++fi
++
++# Check if packages to build have been specified, if not, fall back to 
++# the default, doing them all. Note that DH_DOPACKAGES may have a leading
++# space and be empty otherwise.
++if [ ! "$DH_DOPACKAGES" -o "$DH_DOPACKAGES" = " " ]; then
++      if [ "$DH_DOINDEP" -o "$DH_DOARCH" ]; then
++              error "I have no package to build."
++      fi
++      DH_DOPACKAGES=`grep ^Package: debian/control | cut -d " " -f 2`
++fi
diff --cc examples/rules
index e6ebf0b0015b3b1cdae50331f63d9ba21e0cc4a0,e6ebf0b0015b3b1cdae50331f63d9ba21e0cc4a0..b18213c3ee6a4d1ebdfadc579213dfc5449b5f6a
@@@ -1,6 -1,6 +1,9 @@@
  #!/usr/bin/make -f
  # Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
  
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
  build: build-stamp
  build-stamp:
        dh_testdir
  clean:
        dh_testdir
        dh_testroot
--      dh_cleantmp
++      rm -f build-stamp
++      dh_clean
        # Add here commands to clean up after the build process.
        #-$(MAKE) distclean
--      rm -f build-stamp
  
  # Build architecture-independent files here.
  binary-indep: build
--      # We have nothing to do by default.
++# We have nothing to do by default.
  
  # Build architecture-dependent files here.
  binary-arch: build
        dh_testdir
        dh_testroot
--      dh_cleantmp
++      dh_clean
        # Add here commands to install the files into debian/tmp
        #$(MAKE) PREFIX=debian/tmp install
        dh_installdocs