Automatic compilation: script, results
Another status report.
I attach the script that I used to compile things
automatically, using fakeroot. I mirrored the whole
hamm/hamm/source tree, and compiled it; it took 765m31.458s
(about 13 hours), but of course it didn't compile everything
fully, since some packages failed early in the compilation.
However, I think it is fast enough for us. :)
I won't send the whole list of failed packages, since many
of them failed due to problems in my build environment, or
since they need the sources of another package unpacked to
build properly. (If you want the list, ask.)
I hope to re-install the system in a couple of days, once we
get the rest of the disks installed, and will re-try the
failed packages again then.
Total package counts:
(SKIP is a list of packages that cause the script to fail,
since they use su, or just go catatonic, or something.)
# 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
basename "$1" .dsc | sed 's/-[a-zA-Z0-9.+]*$//;s/_/-/'
test -d BUILT || mkdir BUILT
test -d MESSAGES || mkdir MESSAGES
touch OK BAD
for dsc in "$@"
rm -rf TEMP
if (cd TEMP && dpkg-source -x "$dsc")
echo dpkg-source failed 1>&2
if (cd "TEMP/$dir" && dpkg-buildpackage -rfakeroot -b -us -uc)
echo dpkg-buildpackage failed 1>&2
rm -rf "TEMP/$dir"
rm -f TEMP/*.orig.tar.gz
mv TEMP/*.deb TEMP/*.changes BUILT
rmdir TEMP # note: not rm -rf
find "$@" -name '*.dsc' |
while read dsc
dsc=`cd \`dirname "$dsc"\`; pwd`/`basename "$dsc"`
if fgrep "$dsc" SKIP >/dev/null
echo "skipping -- $dsc"
elif fgrep "$dsc" BAD >/dev/null
echo "known bad -- $dsc"
elif fgrep "$dsc" OK >/dev/null
echo "known good -- $dsc"
pkg=`basename "$dsc" | sed 's/_.*/_/'`
echo -n "building -- $dsc..."
if build_from_dsc "$dsc" >MESSAGES/"$pkg" 2>&1 < /dev/null
echo "$dsc" >> OK
echo "$dsc" >> BAD