From f8bfe729e49fe5d7fd7df80733ad3d2d1c61160d Mon Sep 17 00:00:00 2001 From: Judd Vinet Date: Wed, 3 Sep 2003 02:09:29 +0000 Subject: Imported from pacman-2.6.tar.gz --- scripts/gensync | 75 ++++++++++++--- scripts/makepkg | 278 ++++++++++++++++++++++++++++++++++++++++++------------ scripts/makeworld | 189 +++++++++++++++++++++---------------- 3 files changed, 386 insertions(+), 156 deletions(-) (limited to 'scripts') diff --git a/scripts/gensync b/scripts/gensync index ef528543..e6bf8982 100755 --- a/scripts/gensync +++ b/scripts/gensync @@ -1,6 +1,26 @@ #!/bin/bash +# +# gensync +# +# Copyright (c) 2002-2003 by Judd Vinet +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +# USA. +# -myver='2.5.1' +myver='2.6' usage() { echo "gensync $myver" @@ -24,14 +44,15 @@ usage() { db_write_entry() { - unset pkgname pkgver pkgrel - unset depends conflicts + unset pkgname pkgver pkgrel pkgdesc + unset groups replaces provides depends conflicts source $1 || return 1 cd /tmp/.gensync mkdir $pkgname-$pkgver-$pkgrel cd $pkgname-$pkgver-$pkgrel # desc - echo "%NAME%" >desc + : >desc + echo "%NAME%" >>desc echo "$pkgname" >>desc echo "" >>desc echo "%VERSION%" >>desc @@ -40,17 +61,43 @@ db_write_entry() echo "%DESC%" >>desc echo "$pkgdesc" >>desc echo "" >>desc + if [ ${#groups[*]} -gt 0 ]; then + echo "%GROUPS%" >>desc + for it in "${groups[@]}"; do + echo "$it" >>desc + done + echo "" >>desc + fi + if [ ${#replaces[*]} -gt 0 ]; then + echo "%REPLACES%" >>desc + for it in "${replaces[@]}"; do + echo "$it" >>desc + done + echo "" >>desc + fi # depends - echo "%DEPENDS%" >depends - for depend in "${depends[@]}"; do - echo "$depend" >>depends - done - echo "" >>depends - echo "%CONFLICTS%" >>depends - for conflict in "${conflicts[@]}"; do - echo "$conflict" >>depends - done - echo "" >>depends + : >depends + if [ ${#depends[*]} -gt 0 ]; then + echo "%DEPENDS%" >>depends + for it in "${depends[@]}"; do + echo "$it" >>depends + done + echo "" >>depends + fi + if [ ${#conflicts[*]} -gt 0 ]; then + echo "%CONFLICTS%" >>depends + for it in "${conflicts[@]}"; do + echo "$it" >>depends + done + echo "" >>depends + fi + if [ ${#provides[*]} -gt 0 ]; then + echo "%PROVIDES%" >>depends + for it in "${provides[@]}"; do + echo "$it" >>depends + done + echo "" >>depends + fi } if [ $# -lt 2 ]; then diff --git a/scripts/makepkg b/scripts/makepkg index 89e9ee22..a620d139 100755 --- a/scripts/makepkg +++ b/scripts/makepkg @@ -1,17 +1,68 @@ #!/bin/bash - -myver='2.5.1' +# +# makepkg +# +# Copyright (c) 2002-2003 by Judd Vinet +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +# USA. +# + +myver='2.6' startdir=`pwd` +msg() { + echo "$1" >&2 +} + [ -f /etc/makepkg.conf ] && source /etc/makepkg.conf +INFAKEROOT= +if [ "$1" = "-F" ]; then + INFAKEROOT=1 + shift +fi + +if [ "`id -u`" != "0" ]; then + if [ "$USE_FAKEROOT" = "y" -o "$USE_FAKEROOT" = "Y" ]; then + if [ `type -p fakeroot` ]; then + msg "==> Entering fakeroot environment" + fakeroot -- $0 -F $@ + exit $? + else + msg "==> WARNING: Fakeroot is not installed. Building as an unprivileged user" + msg "==> will result in non-root ownership of the packaged files." + msg "==> Install the fakeroot package to correctly build as a non-root" + msg "==> user." + msg "" + sleep 1 + fi + else + msg "==> WARNING: Running makepkg as an unprivileged user will result in non-root" + msg "==> ownership of the packaged files. Try using the fakeroot" + msg "==> environment. (USE_FAKEROOT=y in makepkg.conf)" + msg "" + sleep 1 + fi +fi + + strip_url() { echo $1 | sed 's|^.*://.*/||g' } -msg() { - echo $* >&2 -} checkdeps() { local missdep=`pacman -T $*` @@ -50,31 +101,34 @@ usage() { echo "makepkg version $myver" echo "usage: $0 [options]" echo "options:" + echo " -b, --builddeps Build missing dependencies from source" echo " -c, --clean Clean up work files after build" echo " -C, --cleancache Clean up source files from the cache" - echo " -s, --syncdeps Install missing dependencies with pacman" - echo " -b, --builddeps Build missing dependencies from source" echo " -d, --nodeps Skip all dependency checks" - echo " -i, --install Install package after successful build" echo " -f, --force Overwrite existing package" - echo " -w Write package to instead of the working dir" - echo " -p Use an alternate build script (instead of PKGBUILD)" + echo " -g, --genmd5 Generate MD5sums for source files" echo " -h, --help This help" + echo " -i, --install Install package after successful build" + echo " -n, --nostrip Do not strip binaries/libraries" + echo " -p Use an alternate build script (instead of PKGBUILD)" + echo " -s, --syncdeps Install missing dependencies with pacman" + echo " -w Write package to instead of the working dir" echo echo " if -p is not specified, makepkg will look for a PKGBUILD" echo " file in the current directory." echo - exit 0 } # Options CLEANUP=0 CLEANCACHE=0 INSTALL=0 +GENMD5=0 DEP_BIN=0 DEP_SRC=0 NODEPS=0 FORCE=0 +NOSTRIP=0 PKGDEST=$startdir BUILDSCRIPT="./PKGBUILD" @@ -87,12 +141,18 @@ while [ "$#" -ne "0" ]; do --nodeps) NODEPS=1 ;; --install) INSTALL=1 ;; --force) FORCE=1 ;; + --nostrip) NOSTRIP=1 ;; + --genmd5) GENMD5=1 ;; + --help) + usage + exit 0 + ;; --*) usage exit 1 ;; -*) - while getopts "cCsbdifp:w:-" opt; do + while getopts "cCsbdhifgnp:w:-" opt; do case $opt in c) CLEANUP=1 ;; C) CLEANCACHE=1 ;; @@ -100,9 +160,15 @@ while [ "$#" -ne "0" ]; do b) DEP_SRC=1 ;; d) NODEPS=1 ;; i) INSTALL=1 ;; + g) GENMD5=1 ;; f) FORCE=1 ;; + n) NOSTRIP=1 ;; w) PKGDEST=$OPTARG ;; p) BUILDSCRIPT=$OPTARG ;; + h) + usage + exit 0 + ;; -) OPTIND=0 break @@ -122,13 +188,18 @@ while [ "$#" -ne "0" ]; do done if [ "$CLEANCACHE" = "1" ]; then - msg "==> Cleaning up source files from the cache" - rm -rf /var/cache/pacman/src/* - exit 0 + if [ "`id -u`" = "0" -a "$INFAKEROOT" != "1" ]; then + msg "==> Cleaning up source files from the cache." + rm -rf /var/cache/pacman/src/* + exit 0 + else + msg "==> You must be root to clean the cache." + exit 1 + fi fi -unset pkgname pkgver pkgrel pkgdesc url -unset depends conflicts backup source install build +unset pkgname pkgver pkgrel pkgdesc url groups provides md5sums +unset replaces depends conflicts backup source install build umask 0022 if [ ! -f $BUILDSCRIPT ]; then @@ -148,11 +219,13 @@ if [ `echo $pkgrel | grep '-'` ]; then exit 1 fi -if [ -f $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz -a "$FORCE" = "0" ]; then +if [ -f $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz -a "$FORCE" = "0" -a "$GENMD5" = "0" ]; then msg "==> ERROR: a package has already been built. (use -f to overwrite)" exit 1 fi +msg "==> Making package: $pkgname (`date`)" + unset deplist if [ `type -p pacman` -a "$NODEPS" = "0" ]; then msg "==> Checking Dependencies..." @@ -210,21 +283,19 @@ else msg "==> WARNING: pacman was not found in PATH. skipping dependency checks." fi -d=`date` cd $startdir -msg "==> Making package $pkgname ($d)" # extract source -msg "==> Acquiring/Extracting Sources..." +msg "==> Retrieving Sources..." mkdir -p src cd $startdir/src for netfile in ${source[@]}; do file=`strip_url $netfile` if [ -f ../$file ]; then - msg "==> Found $file in build dir" + msg " |=> Found $file in build dir" cp ../$file . elif [ -f /var/cache/pacman/src/$file ]; then - msg "==> Using local copy of $file" + msg " |=> Using local copy of $file" cp /var/cache/pacman/src/$file . else # check for a download utility @@ -245,39 +316,108 @@ for netfile in ${source[@]}; do msg "==> Aborting..." exit 1 fi - msg "==> Downloading $file" + msg " |=> Downloading $file" $FTPAGENT $netfile 2>&1 if [ ! -f $file ]; then msg "==> ERROR: Failed to download $file" msg "==> Aborting..." exit 1 fi - mkdir -p /var/cache/pacman/src && cp $file /var/cache/pacman/src + if [ "`id -u`" = "0" -a "$INFAKEROOT" != "1" ]; then + mkdir -p /var/cache/pacman/src && cp $file /var/cache/pacman/src + else + cp $file .. + fi fi - unset cmd - case $file in - *.tar.gz|*.tar.Z|*.tgz) - cmd="tar --use-compress-program=gzip -xf $file" ;; - *.tar.bz2) - cmd="tar --use-compress-program=bzip2 -xf $file" ;; - *.tar) - cmd="tar -xf $file" ;; - *.zip) - cmd="unzip -qq $file" ;; - *.gz) - cmd="gunzip $file" ;; - esac - if [ "$cmd" != "" ]; then - msg "==> $cmd" - $cmd - if [ $? -ne 0 ]; then - msg "==> ERROR: Failed to extract $file" - msg "==> Aborting..." - exit 1 + if [ "$GENMD5" = "0" ]; then + unset cmd + case $file in + *.tar.gz|*.tar.Z|*.tgz) + cmd="tar --use-compress-program=gzip -xf $file" ;; + *.tar.bz2) + cmd="tar --use-compress-program=bzip2 -xf $file" ;; + *.tar) + cmd="tar -xf $file" ;; + *.zip) + cmd="unzip -qq $file" ;; + *.gz) + cmd="gunzip $file" ;; + esac + if [ "$cmd" != "" ]; then + msg " |=> $cmd" + $cmd + if [ $? -ne 0 ]; then + msg "==> ERROR: Failed to extract $file" + msg "==> Aborting..." + exit 1 + fi fi fi done +if [ "$GENMD5" = "1" ]; then + if [ ! `type -p md5sum` ]; then + msg "==> ERROR: Cannot find the md5sum program." + exit 1 + fi + msg "==> Generating MD5sums for source files" + msg "" + ct=0 + numsrc=${#source[@]} + for netfile in ${source[@]}; do + file=`strip_url $netfile` + sum=`md5sum $file | cut -d' ' -f 1` + if [ $ct -eq 0 ]; then + echo -n "md5sums=(" + else + echo -ne "\t" + fi + echo -n "'$sum'" + ct=$(($ct+1)) + if [ $ct -eq $numsrc ]; then + echo ')' + else + echo ' \' + fi + done + msg "" + exit 0 +fi + +# MD5 Validation +if [ ${#md5sums[@]} -ne ${#source[@]} ]; then + msg "==> WARNING: MD5sums are missing or incomplete. Cannot verify source integrity." +# sleep 1 +elif [ `type -p md5sum` ]; then + msg "==> Validating source files with MD5sums" + errors=0 + idx=0 + for netfile in ${source[@]}; do + file=`strip_url $netfile` + echo -n " |=> $file ... " >&2 + echo "${md5sums[$idx]} $file" | md5sum -c - >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "FAILED" >&2 + errors=1 + else + echo "Passed" >&2 + fi + idx=$(($idx+1)) + done + if [ $errors -gt 0 ]; then + msg "==> ERROR: One or more files did not pass the validity check!" + exit 1 + fi +else + msg "==> WARNING: The md5sum program is missing. Cannot verify source files!" + sleep 1 +fi + +if [ "`id -u`" = "0" ]; then + # chown all source files to root.root + chown -R root.root $startdir/src +fi + # check for existing pkg directory if [ -d $startdir/pkg ]; then msg "==> Removing existing pkg directory..." @@ -286,7 +426,7 @@ fi mkdir -p $startdir/pkg # build -msg "==> Building Package..." +msg "==> Starting build()..." build 2>&1 if [ $? -gt 0 ]; then msg "==> Build Failed. Aborting..." @@ -330,15 +470,18 @@ if [ -d pkg/usr/man ]; then done fi -# strip binaries cd $startdir -msg "==> Stripping debugging symbols from libraries..." -find pkg/{,usr,usr/local,opt/*}/lib -type f -exec /usr/bin/strip --strip-debug '{}' ';' 2>&1 -msg "==> Stripping symbols from binaries..." -find pkg/{,usr,usr/local,opt/*}/{bin,sbin} -type f -exec /usr/bin/strip '{}' ';' 2>&1 + +# strip binaries +if [ "$NOSTRIP" = "0" ]; then + msg "==> Stripping debugging symbols from libraries..." + find pkg/{,usr,usr/local,opt/*}/lib -type f -exec /usr/bin/strip --strip-debug '{}' \; 2>&1 + msg "==> Stripping symbols from binaries..." + find pkg/{,usr,usr/local,opt/*}/{bin,sbin} -type f -exec /usr/bin/strip '{}' \; 2>&1 +fi # get some package meta info -builddate=`date -u "+%a %b %d %k:%M:%S %Y"` +builddate=`LC_ALL= ; date -u "+%a %b %d %k:%M:%S %Y"` if [ "$PACKAGER" != "" ]; then packager="$PACKAGER" else @@ -360,14 +503,23 @@ echo "builddate = $builddate" >>.PKGINFO echo "packager = $packager" >>.PKGINFO echo "size = $size" >>.PKGINFO -for depend in "${depends[@]}"; do - echo "depend = $depend" >>.PKGINFO +for it in "${replaces[@]}"; do + echo "replaces = $it" >>.PKGINFO +done +for it in "${groups[@]}"; do + echo "group = $it" >>.PKGINFO +done +for it in "${depends[@]}"; do + echo "depend = $it" >>.PKGINFO +done +for it in "${conflicts[@]}"; do + echo "conflict = $it" >>.PKGINFO done -for conflict in "${conflicts[@]}"; do - echo "conflict = $conflict" >>.PKGINFO +for it in "${provides[@]}"; do + echo "provides = $it" >>.PKGINFO done -for bakfile in "${backup[@]}"; do - echo "backup = $bakfile" >>.PKGINFO +for it in "${backup[@]}"; do + echo "backup = $it" >>.PKGINFO done # check for an install script @@ -377,9 +529,11 @@ if [ "$install" != "" ]; then fi # build a filelist -msg "==> Building filelist..." +msg "==> Generating .FILELIST file..." cd $startdir/pkg -tar cv * >/dev/null 2>.FILELIST +tar cv * >/dev/null 2>.FILELIST.tmp +cat .FILELIST.tmp | sort >.FILELIST +rm -f .FILELIST.tmp # tar it up msg "==> Compressing package..." @@ -389,7 +543,7 @@ if [ -f $startdir/pkg/.INSTALL ]; then else cmd="tar czvf $PKGDEST/$pkgname-$pkgver-$pkgrel.pkg.tar.gz .PKGINFO .FILELIST *" fi -$cmd >../filelist +$cmd | sort >../filelist cd $startdir if [ "$CLEANUP" = "1" ]; then @@ -397,7 +551,7 @@ if [ "$CLEANUP" = "1" ]; then rm -rf src pkg filelist fi -msg "==> Finished making $pkgname (`date`)" +msg "==> Finished making: $pkgname (`date`)" if [ "$INSTALL" = "1" ]; then msg "==> Running pacman --upgrade" diff --git a/scripts/makeworld b/scripts/makeworld index 94a522e2..aee9792c 100755 --- a/scripts/makeworld +++ b/scripts/makeworld @@ -1,102 +1,130 @@ #!/bin/bash +# +# makeworld +# +# Copyright (c) 2002-2003 by Judd Vinet +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +# USA. +# toplevel=`pwd` -version="2.5.1" +version="2.6" usage() { - echo "makeworld version $version" - echo "usage: $0 [options] [category] ..." - echo "options:" - echo " -b, --builddeps Build missing dependencies from source" - echo " -c, --clean Clean up work files after build" - echo " -d, --nodeps Skip all dependency checks" - echo " -f, --force Overwrite existing packages" - echo " -i, --install Install package after successful build" - echo " -h, --help This help" - echo " -s, --syncdeps Install missing dependencies with pacman" - echo - echo " where is one or more directory names under the ABS root" - echo " eg: makeworld -c /packages base lib editors" - echo - echo " this should be run from the toplevel directory of ABS (usually /usr/abs)" + echo "makeworld version $version" + echo "usage: $0 [options] [category] ..." + echo "options:" + echo " -b, --builddeps Build missing dependencies from source" + echo " -c, --clean Clean up work files after build" + echo " -d, --nodeps Skip all dependency checks" + echo " -f, --force Overwrite existing packages" + echo " -i, --install Install package after successful build" + echo " -h, --help This help" + echo " -s, --syncdeps Install missing dependencies with pacman" + echo + echo " where is one or more directory names under the ABS root" + echo " eg: makeworld -c /packages base lib editors" + echo + echo " this should be run from the toplevel directory of ABS (usually /usr/abs)" } -if [ $# -lt 2 -o "$1" = "--help" -o "$1" = "-h" ]; then - usage - exit 1 +if [ $# -lt 2 ]; then + usage + exit 1 fi MAKEPKG_OPTS= for arg in $*; do - case $arg in - --clean) MAKEPKG_OPTS="$MAKEPKG_OPTS -c" ;; - --install) MAKEPKG_OPTS="$MAKEPKG_OPTS -i" ;; - --syncdeps) MAKEPKG_OPTS="$MAKEPKG_OPTS -s" ;; - --builddeps) MAKEPKG_OPTS="$MAKEPKG_OPTS -b" ;; - --nodeps) MAKEPKG_OPTS="$MAKEPKG_OPTS -d" ;; - --force) MAKEPKG_OPTS="$MAKEPKG_OPTS -f" ;; - --*) - usage - exit 1 - ;; - -*) - while getopts "cisbdf-" opt; do - case $opt in - c) MAKEPKG_OPTS="$MAKEPKG_OPTS -c" ;; - i) MAKEPKG_OPTS="$MAKEPKG_OPTS -i" ;; - s) MAKEPKG_OPTS="$MAKEPKG_OPTS -s" ;; - b) MAKEPKG_OPTS="$MAKEPKG_OPTS -b" ;; - d) MAKEPKG_OPTS="$MAKEPKG_OPTS -d" ;; - f) MAKEPKG_OPTS="$MAKEPKG_OPTS -f" ;; - -) - OPTIND=0 - break - ;; - esac - done - ;; - *) - dest=$arg - shift - break - ;; - esac - shift - if [ "$dest" != "" ]; then - break; - fi + case $arg in + --clean) MAKEPKG_OPTS="$MAKEPKG_OPTS -c" ;; + --install) MAKEPKG_OPTS="$MAKEPKG_OPTS -i" ;; + --syncdeps) MAKEPKG_OPTS="$MAKEPKG_OPTS -s" ;; + --builddeps) MAKEPKG_OPTS="$MAKEPKG_OPTS -b" ;; + --nodeps) MAKEPKG_OPTS="$MAKEPKG_OPTS -d" ;; + --force) MAKEPKG_OPTS="$MAKEPKG_OPTS -f" ;; + --help) + usage + exit 0 + ;; + --*) + usage + exit 1 + ;; + -*) + while getopts "chisbdf-" opt; do + case $opt in + c) MAKEPKG_OPTS="$MAKEPKG_OPTS -c" ;; + i) MAKEPKG_OPTS="$MAKEPKG_OPTS -i" ;; + s) MAKEPKG_OPTS="$MAKEPKG_OPTS -s" ;; + b) MAKEPKG_OPTS="$MAKEPKG_OPTS -b" ;; + d) MAKEPKG_OPTS="$MAKEPKG_OPTS -d" ;; + f) MAKEPKG_OPTS="$MAKEPKG_OPTS -f" ;; + h) + usage + exit 0 + ;; + -) + OPTIND=0 + break + ;; + esac + done + ;; + *) + dest=$arg + shift + break + ;; + esac + shift + if [ "$dest" != "" ]; then + break + fi done if [ "$dest" = "" ]; then - usage - exit 1 + usage + exit 1 fi sd=`date +"[%b %d %H:%M]"` for category in $*; do - for port in `find $toplevel/$category -type d -maxdepth 1 -mindepth 1 | sort`; do - cd $port - if [ -f PKGBUILD ]; then - . PKGBUILD - buildstatus=0 - if [ ! -f $dest/$pkgname-$pkgver-$pkgrel.pkg.tar.gz ]; then - makepkg $MAKEPKG_OPTS -w $dest 2>>$toplevel/makepkg.log - if [ $? -gt 0 ]; then - buildstatus=2 - else - buildstatus=1 - fi - fi - d=`date +"[%b %d %H:%M]"` - echo -n "$d " >>$toplevel/build.log - case $buildstatus in - 0) echo "$pkgname already built -- skipping" >>$toplevel/build.log ;; - 1) echo "$pkgname was built successfully" >>$toplevel/build.log ;; - 2) echo "$pkgname build failed" >>$toplevel/build.log ;; - esac - fi - done + for port in `find $toplevel/$category -type d -maxdepth 1 -mindepth 1 | sort`; do + cd $port + if [ -f PKGBUILD ]; then + . PKGBUILD + buildstatus=0 + if [ ! -f $dest/$pkgname-$pkgver-$pkgrel.pkg.tar.gz ]; then + makepkg $MAKEPKG_OPTS -w $dest 2>>$toplevel/makepkg.log + if [ $? -gt 0 ]; then + buildstatus=2 + else + buildstatus=1 + fi + fi + d=`date +"[%b %d %H:%M]"` + echo -n "$d " >>$toplevel/build.log + case $buildstatus in + 0) echo "$pkgname already built -- skipping" >>$toplevel/build.log ;; + 1) echo "$pkgname was built successfully" >>$toplevel/build.log ;; + 2) echo "$pkgname build failed" >>$toplevel/build.log ;; + esac + fi + done done ed=`date +"[%b %d %H:%M]"` @@ -104,3 +132,4 @@ echo "makeworld complete." >>$toplevel/build.log echo " started: $sd" >>$toplevel/build.log echo " finished: $ed" >>$toplevel/build.log +exit 0 -- cgit v1.2.3-24-g4f1b