pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/mk/bulk - Added a function post_filter_cmd() that can ...
details: https://anonhg.NetBSD.org/pkgsrc/rev/ec565deae257
branches: trunk
changeset: 502513:ec565deae257
user: rillig <rillig%pkgsrc.org@localhost>
date: Sat Nov 05 15:41:53 2005 +0000
description:
- Added a function post_filter_cmd() that can be overridden in bulk.conf.
The default function prepends the well-known "date, progress, pkgdir" to
each line.
- Check that the environment variable USR_PKGSRC is given and is an
absolute pathname.
- Introduced variables for the various directories. Their names all end in
_dir, and they contain absolute pathnames. Changed all instances of
${USR_PKGSRC}/pkgtools/pkglint to ${pkglint_dir}. Likewise for the other
directories.
- Added more error checking. The bulk build is terminated if the
pkg_install package cannot be updated or the prerequisite packages
cannot be installed.
diffstat:
mk/bulk/build | 87 ++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 54 insertions(+), 33 deletions(-)
diffs (171 lines):
diff -r e437aebe1074 -r ec565deae257 mk/bulk/build
--- a/mk/bulk/build Sat Nov 05 15:02:28 2005 +0000
+++ b/mk/bulk/build Sat Nov 05 15:41:53 2005 +0000
@@ -1,5 +1,5 @@
#!/bin/sh
-# $NetBSD: build,v 1.62 2005/11/05 14:33:17 rillig Exp $
+# $NetBSD: build,v 1.63 2005/11/05 15:41:53 rillig Exp $
#
# Copyright (c) 1999, 2000 Hubert Feyrer <hubertf%NetBSD.org@localhost>
@@ -85,6 +85,16 @@
exit 1
}
+# This function can be overridden in the build.conf file to change the
+# output format of the bulk build. It is used in a pipe, so if you want
+# the original output, just define post_filter_cmd() { cat; }.
+#
+# For more sophisticated output, you may use all the variables that this
+# example function uses.
+post_filter_cmd() {
+ ${SED} "s;^;`date '+%Y/%m/%d %H:%M:%S'` ${built}/${tot}=${percent} ${pkgdir} @ ${MACHINE_ARCH}> ;g"
+}
+
restart=no
mirror_only=no
target=bulk-package
@@ -172,6 +182,16 @@
die "Cannot find config file ${BULK_BUILD_CONF}, aborting."
fi
+# Check if a valid pkgsrc root directory is given.
+case ${USR_PKGSRC-""} in
+/*) ;;
+*) die "USR_PKGSRC must be set to an absolute pathname.";;
+esac
+pkgsrc_dir="${USR_PKGSRC}"
+perl5_dir="${USR_PKGSRC}/lang/perl5"
+pkg_install_dir="${USR_PKGSRC}/pkgtools/pkg_install"
+pkglint_dir="${USR_PKGSRC}/pkgtools/pkglint"
+
# set up variables specifically for the bulk build
BATCH=1
DEPENDS_TARGET=bulk-install
@@ -192,31 +212,28 @@
unset DISPLAY # allow sane failure for gimp, xlispstat
# Check that the pkg_tools are up to date
-(
- cd ${USR_PKGSRC}/pkgtools/pkglint \
- && ${BMAKE} fetch >/dev/null 2>&1
-) || (
- echo "Updating pkgtools" \
- && cd ${USR_PKGSRC}/pkgtools/pkg_install \
- && ${BMAKE} clean \
- && ${BMAKE} install \
- && ${BMAKE} clean
-)
-
-cd ${USR_PKGSRC}
-
+( cd "${pkglint_dir}" \
+ && ${BMAKE} fetch >/dev/null 2>&1
+) || {
+ echo "Updating pkgtools"
+ ( cd "${pkg_install_dir}" \
+ && ${BMAKE} clean \
+ && ${BMAKE} install \
+ && ${BMAKE} clean
+ ) || die "Could not update the package tools."
+}
if [ "x$restart" = "xyes" ]; then
echo "Restarting - skipping pre-build script"
else
# make veryveryclean :)
- sh mk/bulk/pre-build \
- || die "Error during bulk-build preparations, aborting."
+ ( cd "${pkgsrc_dir}" \
+ && /bin/sh mk/bulk/pre-build
+ ) || die "Error during bulk-build preparations, aborting."
fi
fail=no
-if [ -d pkgtools/pkglint ]; then
- cd pkgtools/pkglint
+if cd "${pkglint_dir}"; then
BULK_DBFILE=`${BMAKE} show-var VARNAME=BULK_DBFILE` || fail=yes
DEPENDSTREEFILE=`${BMAKE} show-var VARNAME=DEPENDSTREEFILE` || fail=yes
DEPENDSFILE=`${BMAKE} show-var VARNAME=DEPENDSFILE` || fail=yes
@@ -238,7 +255,7 @@
PKG_TOOLS_BIN=`${BMAKE} show-var VARNAME=PKG_TOOLS_BIN` || fail=yes
else
die "The pkgtools/pkglint directory does not exist." \
- "Please update your pkgsrc tree in ${USR_PKGSRC}."
+ "Please update your pkgsrc tree in ${pkgsrc_dir}."
fi
echo "+----------------------------------------+"
@@ -294,9 +311,9 @@
fi
# get the list of packages which should always be installed during the build
-cd ${USR_PKGSRC}/pkgtools/pkglint
-BULK_PREREQ=`${BMAKE} show-var VARNAME=BULK_PREREQ`
-cd ${USR_PKGSRC}
+{ cd "${pkglint_dir}" \
+ && BULK_PREREQ=`${BMAKE} show-var VARNAME=BULK_PREREQ`
+} || die "Could not get the value of BULK_PREREQ."
# install prerequisite packages. Note: we do this _before_ the depends tree
# because some packages like xpkgwedge only become DEPENDS if its installed
@@ -305,21 +322,24 @@
do
echo $pkgdir
# make sure its installed _and_ packaged
- cd ${USR_PKGSRC}/$pkgdir && ${BMAKE} bulk-install
+ ( cd "${pkgsrc_dir}/${pkgdir}" \
+ && ${BMAKE} bulk-install
+ ) || die "Could not install prerequisite packages."
done
# Create the bulk cache files
-cd ${USR_PKGSRC}
if [ "x$restart" != "xyes" ]; then
- (cd ${USR_PKGSRC} && ${BMAKE} bulk-cache $makeargs) \
- || die "Cache creation failed. Aborting build."
+ ( cd "${pkgsrc_dir}" \
+ && ${BMAKE} bulk-cache $makeargs
+ ) || die "Could not create the bulk build cache."
fi
+cd "${pkgsrc_dir}" || die "The pkgsrc directory does not exist."
+
echo "Starting actual build using the order specified in $ORDERFILE..."
-cd ${USR_PKGSRC}
# make sure we have something to grep in in the build loop
-touch $BUILDLOG
+touch "${BUILDLOG}"
# set the nice level for bulk builds
#case "${NICE_LEVEL}" in
@@ -343,9 +363,10 @@
if [ $? -ne 0 ]; then
built=`wc -l $BUILDLOG | ${AWK} '{print $1}'`
percent=`echo $built $tot | ${AWK} '{printf("%4.1f%%",$1*100/$2);}'`
- (cd $pkgdir && ${NICE_LEVEL} ${BMAKE} USE_BULK_CACHE=yes $target \
- $makeargs </dev/null | \
- ${SED} "s;^;`date '+%Y/%m/%d %H:%M:%S'` $built/${tot}=$percent $pkgdir @ ${MACHINE_ARCH}> ;g")
+ ( cd "${pkgsrc_dir}/${pkgdir}" \
+ && ${NICE_LEVEL} ${BMAKE} USE_BULK_CACHE=yes $target \
+ $makeargs </dev/null | post_filter_cmd
+ ) || true
echo "$pkgdir" >> $BUILDLOG
fi
done
@@ -394,11 +415,11 @@
for pkgdir in $BULK_PREREQ
do
echo $pkgdir
- ( cd ${USR_PKGSRC}/$pkgdir && ${BMAKE} bulk-install )
+ ( cd "${pkgsrc_dir}/${pkgdir}" && ${BMAKE} bulk-install )
done
# Perl was wiped, reinstall it!
-( cd lang/perl5 && ${BMAKE} bulk-install )
+( cd "${perl5_dir}" && ${BMAKE} bulk-install )
BUILDDATE=`date +%Y-%m-%d`
mkdir -p ${FTP}
${PERL5} mk/bulk/post-build > ${FTP}/pkgsrc-results-${BUILDDATE}.txt
Home |
Main Index |
Thread Index |
Old Index