Base packages uploaded
Finally I got dpkg to compile. An old version of gettext was the
problem.
Everything compiled fine in base, except mawk, which fails to pass
its selftest with a segfault.
Somehow the new bash seems to be broken (regarding backspace).
By error I did upload that too ( it's on the queue in erlangen
now, and I'm not sure if I have a chance to delete it :(.)
I started a small script which checks for new source versions on the
debian ftp site and tries to download them and build them. It uses a modified
dbuild script (OK, IGNORED, and BAD are directories now, so it is
easily possible to delete entries there).
There's still a lot missing from it, but basically it works ..
Here's dbuild and diff-build (for lack of a better name)
Guenter
-----------------
#!/bin/sh
# problem: not all packages work with dpkg-buildpackage -B and if we
# use -b and then delete *_all.deb, the .changes files don't work
#
# G. Geiger changed replaced file OK BAD IGNORED ,.. by directories
PATH=$PATH:/usr/sbin:/sbin
username='NO USERNAME'
sourcetree='sources/.'
verbose=no
keepokmsgs=no
mirrorspec=""
mirrorstate="source-mirror"
#rootaccess="-rfakeroot"
rootaccess=""
architecture=`dpkg --print-gnu-build-architecture`
progname="$0"
usage() {
echo "usage: $progname [-v|--verbose] [-u username|--username username]
[-k|--keep-ok-messages] [-f host:dir|--ftp host:dir]
[dsc-or-directory ...]" 1>&2
exit 0
}
dsc2srcdir() {
basename "$1" .dsc | sed 's/-[a-zA-Z0-9.+]*$//;s/_/-/'
}
actual_build() {
dsc="$1"
dir=`dsc2srcdir $dsc`
rm -rf TEMP
mkdir TEMP
if (cd TEMP && dpkg-source -x "$dsc")
then
true
else
echo dpkg-source failed 1>&2
cp $dsc BAD
return 1
fi
if grep '^Architecture: any' "TEMP/$dir/debian/control" >/dev/null
then
if (cd "TEMP/$dir" && \
dpkg-buildpackage $rootaccess -B -m"$username")
then
true
else
echo dpkg-buildpackage failed 1>&2
cp $dsc BAD
return 1
fi
rm -rf "TEMP/$dir"
rm -f TEMP/*.orig.tar.gz
mv TEMP/*.deb TEMP/*.changes BUILT
rmdir TEMP # note: not rm -rf
else
cp $dsc IGNORED
rm -rf TEMP
fi
cp $dsc OK
return 0
}
build_from_dsc() {
dsc="$1"
basedsc=`basename $dsc`
if test -f SKIP/$basedsc
then
[ $verbose = yes ] && echo "skipping -- $dsc"
elif test -f IGNORED/$basedsc
then
[ $verbose = yes ] && echo "ignored -- $dsc"
elif test -f BAD/$basedsc
then
[ $verbose = yes ] && echo "known bad -- $dsc"
elif test -f OK/$basedsc
then
[ $verbose = yes ] && echo "known good -- $dsc"
else
pkg=`basename "$dsc" | sed 's/_.*/_/'`
echo -n "building -- $dsc..."
if actual_build "$dsc" >MESSAGES/"$pkg" 2>&1 < /dev/null
then
echo OK
[ "$keepokmsgs" = no ] && rm -f "MESSAGES/$pkg"
else
echo BAD
fi
fi
}
find_dscs_in_dir_and_build_them() {
find "$@" -name '*.dsc' |
while read dsc
do
dsc=`cd \`dirname "$dsc"\`; pwd`/`basename "$dsc"`
build_from_dsc "$dsc"
done
}
if [ -r "$HOME/.dbuildrc" ]
then
. "$HOME/.dbuildrc"
fi
loop=yes
while [ $loop = yes ]
do
case "$1" in
-u|--username) username="$2"; shift 2 ;;
-s|--sources) sourcetree="$2"; shift 2 ;;
-v|--verbose) verbose=yes ; shift ;;
-k|--keep-ok-messages) keepokmsgs=yes ; shift ;;
-f|--ftp) mirrorspec="$2" ; shift 2 ;;
--) shift; loop=no ;;
-*) usage; exit 0 ;;
*) loop=no ;;
esac
done
test -d BUILT || mkdir BUILT
test -d MESSAGES || mkdir MESSAGES
test -d OK || mkdir OK
test -d BAD || mkdir BAD
test -d SKIP || mkdir SKIP
test -d IGNORED || mkdir IGNORED
[ "$verbose" = yes ] && echo "PGP username: $username"
if [ "$1" == "" ]
then
if [ ! -z "$mirrorspec" ]
then
[ $verbose = yes ] && echo "mirroring $mirrorspec to $mirrorstate"
mkdir -p "$mirrorstate"
(cd "$mirrorstate" && mirror -kflags_recursive=-Llat -g"$mirrorspec")
find_dscs_in_dir_and_build_them "$mirrorstate"
else
for dir in $sourcetree
do
find_dscs_in_dir_and_build_them "$dir/."
done
fi
else
for arg in "$@"
do
if [ -d "$arg/." ]
then
find_dscs_in_dir_and_build_them "$arg/."
else
build_from_dsc "$arg"
fi
done
fi
-------------------------------
#!/bin/sh
#
# This script is intended for use with a modified dbuild version
#
# syntax: diff-build section , where section is a debian section
# configuration
ftphost="ftp.de.debian.org"
username="Geiger Guenter"
sourcedir="debian/hamm/hamm/source"
section="base"
verbose="yes"
deletesource="no"
test "$1" != "" && section=$1
# create directory for section
test ! -d $section && mkdir $section
#
# filter out the base name
#
dsc2trunc() {
basename "$1" .dsc | sed 's/-[a-zA-Z0-9.+]*$//'
}
#
# Fetch a listing of dsc files from the debian host
#
get_dsc_names() {
(cat << EOF
user ftp $username
cd $sourcedir/$section
ls *.dsc
bye
EOF
) | ftp -n $ftphost > DSCFILES
}
#
# Get the package
#
get_package() {
trunc=`dsc2trunc $1`
(cat << EOF
user ftp $username
cd $sourcedir/$section
prompt
mget $trunc*
bye
EOF
) | ftp -n $ftphost > /dev/zero
}
#
# filter out the base name
#
dsc2trunc() {
basename "$1" .dsc | sed 's/-[a-zA-Z0-9.+]*$//'
}
#
# main
#
test $verbose = yes && echo Getting dsc files from host $ftphost
get_dsc_names
newdsc=`cat DSCFILES | awk '{print $9}'`
for i in $newdsc
do
trunc=`dsc2trunc $i`
olddsc=`ls OK/$trunc* 2> /dev/zero` && olddsc=`basename $olddsc`
if test $i != "$olddsc"
then
test $verbose = yes && echo getting new version $i, replacing $olddsc
rm OK/$olddsc
(cd $section;get_package $i)
fi
done
test $verbose = yes && echo Building the packages
dbuild -v -u username $section
test $deletesource = yes && rm $section/*
rm DSCFILES
--
To UNSUBSCRIBE, email to debian-alpha-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: