diff options
author | joey <joey> | 1999-08-17 04:51:05 +0000 |
---|---|---|
committer | joey <joey> | 1999-08-17 04:51:05 +0000 |
commit | d24f48c801b705fe7b95f27250cfe52d8e3e7319 (patch) | |
tree | 201e2359785f0d4a37355e1f8b680d59218744ba /dh_debstd | |
parent | 26ee9ad04424bc35ba9c1bbc3b062d6d339bbebd (diff) |
r84: Initial revision
Diffstat (limited to 'dh_debstd')
-rwxr-xr-x | dh_debstd | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/dh_debstd b/dh_debstd new file mode 100755 index 00000000..34ea0d46 --- /dev/null +++ b/dh_debstd @@ -0,0 +1,218 @@ +#!/bin/sh -e +# +# Script to be called from debian/rules to setup all the debian specifc +# required files +# Christoph Lameter, <clameter@debian.org> October 10, 1996 +# +# All the parameters are documentation files to be installed. +# (but doc files can also be listed in debian/docs) +# +# This has been gutted and extensively rewritten to function as a debhelper +# command by Joey Hess. + +# Pre-parse command line before we load dh_lib, becuase we use a +# different style of arguments. +for i;do + case "$i" in + -p) PERMS=1 + ;; + -u) UNDOC=1 + ;; + -s) SUMS=1 + ;; + -m) NOAUTOMAN=1 + ;; + -c) NOCOMPRESS=1 + ;; + *) collect="$collect$i " + ;; + esac +done +set -- $collect + +PATH=debian:$PATH:/usr/lib/debhelper +. dh_lib + +# Tolerate old style debstd invocations +if [ "$DH_FIRSTPACKAGE" = "$1" ]; then + shift +fi + +# Subroutines + +# debinit handles the installation of an init.d script +# Parameters: +# $1= name in /etc/init.d +# $2 = scriptname +# $3 = package name +# $4 = extra params for debhelper +debinit() { + PPACKAGE=$3 + SCRIPT=$1 + + INITPARAMS=`grep "^FLAGS=" $2` || true + if [ "$INITPARAMS" != "" ]; then + INITPARAMS=`expr "$INITPARAMS" : 'FLAGS="\(.*\)"'` || true + if [ "$INITPARAMS" ]; then + INITPARAMS="--update-rcd-params='$INITPARAMS'" + fi + fi + + if grep -q NO_RESTART_ON_UPGRADE $2; then + doit "dh_installinit --no-restart-on-upgrade -p$PPACKAGE $INITPARAMS --init-script=$SCRIPT $4" + else + doit "dh_installinit -p$PPACKAGE $INITPARAMS --init-script=$SCRIPT $4" + fi +} + +# Package specific things +# +# The first parameter is the package name +# The second parameter is the directory name of the temp directory +# The third parameter is the prefix for all configuration files to be processed +package() +{ + local i + local X Y + CPACKAGE=$1 + CTEMP=$2 + + # Deal with scripts in etc directories + if [ -f $3/rc.boot ]; then + warning "file $3/rc.boot was ignored." + fi + + # etc files that could need some tweaking + for i in services inittab crontab protocols profile shells rpc shells \ + syslog.conf conf.modules modules aliases diversions inetd.conf \ + X11/Xresources X11/config X11/window-managers X11/xinit purge ; do + if [ -f $3$i ]; then + warning "file $3$i was ignored." + fi + done + + if [ -f $3init.d ]; then + debinit $1 $3init.d $1 "" + fi + + # The case of a daemon without the final d + if [ -f $3init ]; then + X=`expr $1 : '\(.*\)d$'` || true + if [ "$X" ]; then + debinit $X $3init $1 "--remove-d" + fi + fi + + if [ -f $3info ]; then + warning "debhelper does not yet support info files, so $3info was ignored." + fi + + X=`find $2 -type f -perm +111 2>/dev/null | tr "\n" " "` + for i in $X; do + BINPATH="`expr "$i" : "$2/\(.*\)/.*"`" + BINNAME="`expr "$i" : "$2/.*/\(.*\)"`" + + # Check if manpages exist + case "$BINPATH" in + DEBIAN|etc/rc.boot|usr/lib/cgi-bin|etc/init.d|etc/cron.*|usr/lib/lib*|usr/lib/*) SECTION="" + ;; + sbin|usr/sbin) SECTION="8" + ;; + usr/X11R6/bin) SECTION="1x" + ;; + bin|usr/bin) SECTION="1" + ;; + usr/games) SECTION="6" + ;; + *) SECTION="" + ;; + esac + if [ "$SECTION" ]; then + Y=`find $2/usr/man $2/usr/X11R6/man -name "$BINNAME.*" 2>/dev/null` || true + if [ "$Y" = "" ]; then + if [ "$UNDOC" ]; then + doit "dh_undocumented -p$CPACKAGE $BINNAME.$SECTION" + fi + fi + fi + done +} + +packages() { + local i + BASE=$1 + shift + for i in $*; do + package $i debian/$i "debian/$i." + if [ -x debian/$i.prebuild ]; then + warning "file debian/$i.prebuild ignored" + fi + done + + if [ -f debian/clean ]; then + warning "file debian/clean ignored" + fi + package $BASE debian/tmp "debian/" +} + +# Special case of changelog +if [ "$1" ]; then + if echo "$1" | egrep -qi "change|news|history" ; then + changelogfile=$1 + shift + fi +fi + +doit "dh_installdirs" # here just to make the debian/tmp, etc directories. +doit "dh_installdocs $*" +doit "dh_installexamples" +doit "dh_installchangelogs $changelogfile" +doit "dh_installmenu" +doit "dh_installcron" + +# Manpage scan +if [ "$NOAUTOMAN" = "" ]; then + doit "dh_installmanpages -p$DH_FIRSTPACKAGE" +fi + +packages $DH_DOPACKAGES + +doit "dh_movefiles" +doit "dh_strip" + +if [ ! "$nocompress" ]; then + doit "dh_compress" +fi + +doit "dh_fixperms" +doit "dh_suidregister" +doit "dh_shlibdeps" +doit "dh_gencontrol" +doit "dh_makeshlibs" + +# Check to see if the install scripts have #DEBHELPER# in them, if not, +# warn. +for PACKAGE in $DH_DOPACKAGES; do + for file in postinst postrm preinst prerm; do + f="`pkgfile $PACKAGE $file`" + if [ "$f" ]; then + filelist="$filelist$f " + fi + done +done +if [ "$filelist" ]; then + warning "The following scripts do not contain \"#DEBHELPER#\" in them," + warning "and so debhelper will not automatically add commands to them:" + warning "$filelist" +fi + +doit "dh_installdeb" + +if [ "$SUMS" = "" ]; then + doit "dh_md5sums" +fi + +# This causes the main binary package to be built, which +# real debstd does not do. Shouldn't be a problem though, +# if that package gets built twice. +doit "dh_builddeb" |