SYSROOT=/
CHROOTENV=chroot ${BUILDROOT} /bin/sh -c
NPARALLEL?= 8
+# -DNOTMPFS
all:
@echo "fastbulk build options"
@echo "NOTE: ${BUILDBASE}/{distfiles,packages} are normally retained"
@echo " to avoid having to re-pull and for incremental operation"
@echo ""
+ @echo "NOTE: When building with 'make build' the current progress"
+ @echo " is in ${BUILDROOT}/tmp/logs/{run,good,bad}, each build"
+ @echo " has its own log file named after the pkgsrc path"
scratch: cleanup
rm -rf ${BUILDBASE}/var.db
mount_null ${BUILDBASE}/etc ${BUILDROOT}/etc
mount_null ${BUILDBASE}/usr.pkg ${BUILDROOT}/usr/pkg
mount_null ${BUILDBASE}/usr.pkgsrc ${BUILDROOT}/usr/pkgsrc
+.if defined(NOTMPFS)
mount_null ${BUILDBASE}/usr.obj ${BUILDROOT}/usr/obj
+.else
+ mount_tmpfs dummy ${BUILDROOT}/usr/obj
+.endif
mount_null ${BUILDBASE}/var.db ${BUILDROOT}/var/db
mount_null ${BUILDBASE}/var.db.pkg ${BUILDROOT}/var/db/pkg
mount_null ${BUILDBASE}/var.db.pkg.refcount \
${BUILDROOT}/var/db/pkg.refcount
mount_null ${SYSROOT}/dev ${BUILDROOT}/dev
- cpdup -v -s0 -i0 -X ${.CURDIR}/pkgsrc.ign \
+ cpdup -s0 -i0 -X ${.CURDIR}/pkgsrc.ign \
${SYSPKGSRC} ${BUILDROOT}/usr/pkgsrc
find ${BUILDROOT}/usr/pkgsrc -name work | xargs rm -rf
mkdir -p ${BUILDROOT}/usr/pkgsrc/packages
rm -rf ${BUILDBASE}/usr.obj/work
${CHROOTENV} "cd /usr/pkgsrc/bootstrap; ./bootstrap --workdir=/usr/obj/work"
resident ${BUILDROOT}/usr/pkg/bin/bmake
+ cat mk.conf.add >> ${BUILDROOT}/usr/pkg/etc/mk.conf
# Figure out what has changed and deinstall the related packages
#
build: ${PRESTAGE}
rm -rf ${BUILDBASE}/usr.obj/work
mkdir -p ${BUILDBASE}/usr.obj/work
+ -rm ${BUILDROOT}/tmp/logs/run/*
${CHROOTENV} "cd /tmp/track; ./fastbulk -j ${NPARALLEL} /usr/pkgsrc"
${BUILDBASE}/bin/getpkgsrcdir: getpkgsrcdir.c
#
set pkgname = "`bmake show-var VARNAME=PKGNAME`"
set logname = $argv[1]
-if ( -f /usr/pkgsrc/packages/All/${pkgname}.tgz ) then
- rm -f /tmp/logs/run/$logname
+unsetenv PKG_PATH
+
+# Check if already installed, prevent overwrite of
+# previous run's logfile if it exists, else put in
+# a simple logfile.
+#
+pkg_info -q -e $pkgname
+if ( $status == 0 ) then
+ if ( -f /tmp/logs/good/$logname ) then
+ rm -f /tmp/logs/run/$logname
+ endif
+ echo "(already installed from previous run)"
exit 0
endif
+if ( -f /usr/pkgsrc/packages/All/${pkgname}.tgz ) then
+ echo "(found in /usr/pkgsrc/packages)"
+ bmake deinstall DEINSTALLDEPENDS=ALL SKIP_LICENSE_CHECK=yes
+ setenv PKG_PATH /usr/pkgsrc/packages/All
+ echo "pkg_add -f ${pkgname}"
+ pkg_add -f ${pkgname}
+ exit $status
+endif
+
# We have to remove any conflicting packages or the one we
# are trying to build will refuse to build. Note that we
# leave the related packages intact.
#
bmake deinstall DEINSTALLDEPENDS=ALL SKIP_LICENSE_CHECK=yes
bmake repackage clean SKIP_LICENSE_CHECK=yes
-bmake bin-install
-exit $status
+if ( $status == 0 ) then
+ setenv PKG_PATH /usr/pkgsrc/packages/All
+ echo "pkg_add -f ${pkgname}"
+ pkg_add -f ${pkgname}
+ exit $status
+endif
+exit 1