svn commit: r253534 - user/nwhitehorn/condorports

Nathan Whitehorn nwhitehorn at FreeBSD.org
Sun Jul 21 22:20:45 UTC 2013


Author: nwhitehorn
Date: Sun Jul 21 22:20:44 2013
New Revision: 253534
URL: http://svnweb.freebsd.org/changeset/base/253534

Log:
  Fancify tarball preparation, connect entire ports tree. I suspect the
  non-shared-FS thing may have to be abandoned: 2500 ports have a
  .include directive pointing to another directory and there does not seem
  at present to be any way to programmatically detect such dependencies.

Modified:
  user/nwhitehorn/condorports/buildport.sh
  user/nwhitehorn/condorports/buildportsdag.sh
  user/nwhitehorn/condorports/stagebuildfiles.sh

Modified: user/nwhitehorn/condorports/buildport.sh
==============================================================================
--- user/nwhitehorn/condorports/buildport.sh	Sun Jul 21 21:10:53 2013	(r253533)
+++ user/nwhitehorn/condorports/buildport.sh	Sun Jul 21 22:20:44 2013	(r253534)
@@ -14,8 +14,8 @@ scratchdir=$(pwd)
 
 set -e
 sudo /pkgscripts/prepbuildjail $_CONDOR_SLOT $release
-cat $tarballname | sudo jexec $_CONDOR_SLOT tar xvzf -
-sudo jexec $_CONDOR_SLOT make -C $port install USE_PACKAGE_DEPENDS=true BATCH=true DISABLE_MAKE_JOBS=true
+cat $tarballname | sudo jexec $_CONDOR_SLOT tar xvf -
+sudo jexec $_CONDOR_SLOT make -C $port install USE_PACKAGE_DEPENDS=true BATCH=true DISABLE_MAKE_JOBS=true PKGREPOSITORY=/packages PACKAGES=/packages DISTDIR=/distfiles
 sudo jexec $_CONDOR_SLOT make -C $port package PKGREPOSITORY=/packages BATCH=true NO_LATEST_LINK=true
 ls -lh /scratch/$_CONDOR_SLOT/packages
 cp /scratch/$_CONDOR_SLOT/packages/$pkg $scratchdir/$pkg

Modified: user/nwhitehorn/condorports/buildportsdag.sh
==============================================================================
--- user/nwhitehorn/condorports/buildportsdag.sh	Sun Jul 21 21:10:53 2013	(r253533)
+++ user/nwhitehorn/condorports/buildportsdag.sh	Sun Jul 21 22:20:44 2013	(r253534)
@@ -1,13 +1,12 @@
 #!/bin/sh
 : ${PORTSDIR=/usr/ports}
-: ${PKGSDIR=/usr/ports/packages}
+: ${PKGSDIR=$PORTSDIR/packages}
+: ${DISTHORDE=$PORTSDIR/distfiles}
 : ${ARCH=`uname -p`}
 : ${RELEASE=$ARCH/`uname -r`}
 : ${STAGEDIR=$(pwd)/stage-$ARCH/$PKGSDIR}
 
-#(cd $PORTSDIR && make index)
-ports="$(cut -f 2 -d '|' $PORTSDIR/INDEX-`uname -r | cut -f 1 -d .`)"
-ports="/usr/ports/games/sl /usr/ports/ports-mgmt/pkg /usr/ports/japanese/nkf"
+#ports="/usr/ports/games/sl /usr/ports/ports-mgmt/pkg /usr/ports/japanese/nkf"
 
 mkdir -p $STAGEDIR
 
@@ -15,7 +14,9 @@ dagjobs=$(pwd)/ports.dagjobs
 dagdeps=$(pwd)/ports.dagdeps
 dag=$(pwd)/ports.dag
 rm -f $dagjobs $dagdeps
-for job in $ports; do
+for category in $(make -C $PORTSDIR -V SUBDIR); do for port in $(make -C $PORTSDIR/$category -V SUBDIR); do
+	echo $category/$port
+	job=$PORTSDIR/$category/$port
 	cd $job
 	echo JOB $job package.sub >> $dagjobs
 	# One fetch for all archs with dummy fetch job?
@@ -23,7 +24,7 @@ for job in $ports; do
 	export UNAME_p=$ARCH
 	PKGNAME=$(make package-name)
 	TARBALL=$STAGEDIR/$(make -V UNIQUENAME).tgz
-	echo SCRIPT PRE $job stagebuildfiles.sh $job $PKGSDIR $ARCH $TARBALL >> $dagjobs
+	echo SCRIPT PRE $job stagebuildfiles.sh $job $PKGSDIR $ARCH $TARBALL $DISTHORDE >> $dagjobs
 	echo SCRIPT POST $job postbuild.sh $TARBALL \$RETURN >> $dagjobs
 	echo VARS $job BuildArch=\"$ARCH\" >> $dagjobs
 	echo VARS $job port=\"$job\" >> $dagjobs
@@ -31,11 +32,11 @@ for job in $ports; do
 	echo VARS $job pkgdir=\"$PKGSDIR/All\" >> $dagjobs
 	echo VARS $job stagetarball=\"$TARBALL\" >> $dagjobs
 	echo VARS $job release=\"$RELEASE\" >> $dagjobs
-	deps=$(make all-depends-list)
+	deps=$(make -V _DEPEND_DIRS)
 	if [ ! -z "$deps" ]; then
 		echo PARENT $deps CHILD $job >> $dagdeps
 	fi
-done
+done; done
 
 cat $dagjobs $dagdeps > $dag
 rm -f $dagjobs $dagdeps

Modified: user/nwhitehorn/condorports/stagebuildfiles.sh
==============================================================================
--- user/nwhitehorn/condorports/stagebuildfiles.sh	Sun Jul 21 21:10:53 2013	(r253533)
+++ user/nwhitehorn/condorports/stagebuildfiles.sh	Sun Jul 21 22:20:44 2013	(r253534)
@@ -5,10 +5,11 @@
 
 set -e
 export UNAME_p=$3
+DISTHORDE=$5
 
 # Fetch distfiles if unfetched
 cd $1
-make fetch
+make checksum DISTDIR=$DISTHORDE
 make package-links PACKAGES=$2
 mkdir -p $2/All
 
@@ -18,9 +19,10 @@ mkdir -p $2/All
 # Need POST script to clean up
 
 TARBALL=$4
+mkdir -p $(dirname $TARBALL)
 
 # Find distfiles
-DIST_SUBDIR=$(make -V DISTDIR)/$(make -V DIST_SUBDIR)
+DIST_SUBDIR=$DISTHORDE/$(make -V DIST_SUBDIR)
 ALLFILES=$(for f in `make -V ALLFILES`; do echo $DIST_SUBDIR/$f; done)
 
 # Find packages
@@ -30,8 +32,19 @@ PKGLIST=$(for x in $DEPENDS; do make -C 
 # Take an interesting subset of the ports tree
 # TODO: how on Earth to do this robustly?
 PORTSDIR=$(make -V PORTSDIR)
-PORTS_SUBSET="$PORTSDIR/Mk $PORTSDIR/Templates $PORTSDIR/Tools $PORTSDIR/Keywords $PORTSDIR/UIDs $PORTSDIR/GIDs $PORTSDIR/*/Makefile.inc $DEPENDS" # Other important bits?
+PORTS_SUBSET="$PORTSDIR/Mk $PORTSDIR/Templates $PORTSDIR/Tools $PORTSDIR/Keywords $PORTSDIR/UIDs $PORTSDIR/GIDs $PORTSDIR/*/Makefile.inc $DEPENDS $(make -V DIR_DEPENDS) $(make -V MASTERDIR)" # Other important bits?
 
-tar cvzf $TARBALL $ALLFILES $PKGLIST $PORTS_SUBSET $1
+tar cvf $TARBALL.tmp $ALLFILES $PKGLIST $PORTS_SUBSET $1
+rm -rf $TARBALL-dir
+mkdir -p $TARBALL-dir/packages $TARBALL-dir/distfiles
+if [ -n "$ALLFILES" ]; then
+	ln -s $ALLFILES $TARBALL-dir/distfiles
+fi
+if [ -n "$PKGLIST" ]; then
+	ln -s $PKGLIST $TARBALL-dir/packages
+fi
+tar -r -C $TARBALL-dir -v -L -f $TARBALL.tmp distfiles packages
+tar cvzf $TARBALL @$TARBALL.tmp
+rm -rf $TARBALL.tmp $TARBALL-dir
 set +e
 


More information about the svn-src-user mailing list