--- lib/Tinderbox/MakeCache.pm.orig 2011-09-24 12:21:33.000000000 -0400 +++ lib/Tinderbox/MakeCache.pm 2011-09-24 12:21:48.000000000 -0400 @@ -36,7 +36,7 @@ 'EXTRACT_DEPENDS', 'PATCH_DEPENDS', 'FETCH_DEPENDS', 'BUILD_DEPENDS', 'LIB_DEPENDS', 'RUN_DEPENDS', - 'DEPENDS', 'MAINTAINER', + 'TEST_DEPENDS', 'MAINTAINER', 'COMMENT', 'PORTNAME', 'DISTFILES', ); @@ -175,11 +175,11 @@ return $self->_getList($port, 'RUN_DEPENDS'); } -# Other dependencies -sub Depends { +# Test dependencies +sub TestDepends { my $self = shift; my $port = shift; - return $self->_getList($port, 'DEPENDS'); + return $self->_getList($port, 'TEST_DEPENDS'); } # A close approximation to the 'ignore-list' target @@ -201,7 +201,6 @@ my @deps; push(@deps, $self->FetchDepends($port)); - push(@deps, $self->Depends($port)); my %uniq; return grep { !$uniq{$_}++ } @deps; @@ -213,7 +212,6 @@ my @deps; push(@deps, $self->ExtractDepends($port)); - push(@deps, $self->Depends($port)); my %uniq; return grep { !$uniq{$_}++ } @deps; @@ -225,7 +223,17 @@ my @deps; push(@deps, $self->PatchDepends($port)); - push(@deps, $self->Depends($port)); + + my %uniq; + return grep { !$uniq{$_}++ } @deps; +} + +sub TestDependsList { + my $self = shift; + my $port = shift; + + my @deps; + push(@deps, $self->TestDepends($port)); my %uniq; return grep { !$uniq{$_}++ } @deps; @@ -242,7 +250,6 @@ push(@deps, $self->FetchDepends($port)); push(@deps, $self->BuildDepends($port)); push(@deps, $self->LibDepends($port)); - push(@deps, $self->Depends($port)); my %uniq; return grep { !$uniq{$_}++ } @deps; @@ -256,7 +263,6 @@ my @deps; push(@deps, $self->LibDepends($port)); push(@deps, $self->RunDepends($port)); - push(@deps, $self->Depends($port)); my %uniq; return grep { !$uniq{$_}++ } @deps; --- lib/makemake.orig 2011-09-24 12:08:35.000000000 -0400 +++ lib/makemake 2011-09-24 12:08:59.000000000 -0400 @@ -135,6 +135,7 @@ my ( %pkgdir, %pkgdeps, %pkgedeps, %pkgpdeps, %pkgfdeps, %pkgbdeps, %pkgrdeps, @duds, $portbase, $makecache, + %pkgtdeps, ); $portbase = $ENV{'PORTSDIR'}; @@ -167,30 +168,33 @@ push @duds, $dudpkg if ($dudpkg); } - my (@edeps, @pdeps, @fdeps, @bdeps, @rdeps) = (); + my (@edeps, @pdeps, @fdeps, @bdeps, @rdeps, @tdeps) = (); $pkgdeps{$portdir} = []; $pkgedeps{$portdir} = []; $pkgpdeps{$portdir} = []; $pkgfdeps{$portdir} = []; $pkgbdeps{$portdir} = []; $pkgrdeps{$portdir} = []; + $pkgtdeps{$portdir} = []; $pkgdir{$portdir} = $pkgname; push @edeps, $makecache->ExtractDependsList($portdir); push @pdeps, $makecache->PatchDependsList($portdir); push @fdeps, $makecache->FetchDependsList($portdir); push @bdeps, $makecache->BuildDependsList($portdir); push @rdeps, $makecache->RunDependsList($portdir); + push @tdeps, $makecache->TestDependsList($portdir); findRunDepends(\@edeps, \%pkgedeps, $portdir, $makecache, \@PORTS); findRunDepends(\@pdeps, \%pkgpdeps, $portdir, $makecache, \@PORTS); findRunDepends(\@fdeps, \%pkgfdeps, $portdir, $makecache, \@PORTS); findRunDepends(\@bdeps, \%pkgbdeps, $portdir, $makecache, \@PORTS); findRunDepends(\@rdeps, \%pkgrdeps, $portdir, $makecache, \@PORTS); + findRunDepends(\@tdeps, \%pkgtdeps, $portdir, $makecache, \@PORTS); foreach my $depport ( @{$pkgedeps{$portdir}}, @{$pkgpdeps{$portdir}}, @{$pkgfdeps{$portdir}}, @{$pkgbdeps{$portdir}}, - @{$pkgrdeps{$portdir}} + @{$pkgrdeps{$portdir}}, @{$pkgtdeps{$portdir}}, ) { if (defined($depport) && $depport ne "") { @@ -217,6 +221,7 @@ my $fdeplst = makeList(\%pkgdir, 1, $makecache, @{$pkgfdeps{$key}}); my $bdeplst = makeList(\%pkgdir, 1, $makecache, @{$pkgbdeps{$key}}); my $rdeplst = makeList(\%pkgdir, 1, $makecache, @{$pkgrdeps{$key}}); + my $tdeplst = makeList(\%pkgdir, 1, $makecache, @{$pkgtdeps{$key}}); printf MK "all: %s\n", $pname; printf MK "%s: %s\n", $pkgdir{$key}, $pname; @@ -224,8 +229,8 @@ printf MK "\t@%s %s %s %s %s %s ", tinderLoc($pb, 'scripts', 'lib/portbuild'), $BUILD_NAME, $JAIL_NAME, $PORTSTREE_NAME, $ENV{'PORTBUILD_ARGS'}; - printf MK "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\" ", $edeplst, $pdeplst, - $fdeplst, $bdeplst, $rdeplst; + printf MK "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\" \"%s\" ", $edeplst, $pdeplst, + $fdeplst, $bdeplst, $rdeplst, $tdeplst; printf MK "%s /usr/ports/%s\n", $pname, $key; } --- lib/portbuild.orig 2011-09-24 12:11:12.000000000 -0400 +++ lib/portbuild 2011-09-24 12:11:48.000000000 -0400 @@ -5,7 +5,7 @@ . ${pb}/scripts/lib/tinderlib.sh usage () { - echo "usage: $0 [-noclean] [-plistcheck] [-nullfs] [-fetch-original] [-nolog] ED PD FD BD RD pkgname dirname" + echo "usage: $0 [-noclean] [-plistcheck] [-nullfs] [-fetch-original] [-nolog] ED PD FD BD RD TD pkgname dirname" exit 1 } @@ -141,8 +141,9 @@ FD=$3 BD=$4 RD=$5 -pkgname=$(basename $6 ${PKGSUFFIX}) -dirname=$7 +TD=$6 +pkgname=$(basename $7 ${PKGSUFFIX}) +dirname=$8 echo ${pkgname} echo ${dirname} @@ -307,7 +308,7 @@ chroot ${chroot} /sbin/ldconfig -aout /usr/lib/aout /usr/lib/compat/aout fi -set x $ED $FD $PD $BD $RD +set x $ED $FD $PD $BD $RD $TD shift 1 cd ${chroot}/tmp/depends @@ -339,7 +340,7 @@ exit 1 fi -chroot ${chroot} /buildscript ${dirname} 1 "$ED" "$PD" "$FD" "$BD" "$RD" "${plistcheck}" 2>&1 | tee -a ${chroot}/tmp/${pkgname}.log +chroot ${chroot} /buildscript ${dirname} 1 "$ED" "$PD" "$FD" "$BD" "$RD" "$TD" "${plistcheck}" 2>&1 | tee -a ${chroot}/tmp/${pkgname}.log if [ -f ${chroot}/tmp/status ]; then error=$(cat ${chroot}/tmp/status) else @@ -360,7 +361,7 @@ -cf - . | tar --unlink -C ${chroot}${DISTCACHE} -xvf - fi - chroot ${chroot} /usr/bin/nice -n $nice /buildscript ${dirname} 2 "$ED" "$PD" "$FD" "$BD" "$RD" "${plistcheck}" > ${chroot}/tmp/${pkgname}.log2 2>&1 + chroot ${chroot} /usr/bin/nice -n $nice /buildscript ${dirname} 2 "$ED" "$PD" "$FD" "$BD" "$RD" "$TD" "${plistcheck}" > ${chroot}/tmp/${pkgname}.log2 2>&1 grep pnohang ${chroot}/tmp/${pkgname}.log2 cat ${chroot}/tmp/${pkgname}.log2 >> ${chroot}/tmp/${pkgname}.log --- lib/buildscript.orig 2011-09-24 12:12:50.000000000 -0400 +++ lib/buildscript 2011-09-24 12:19:11.000000000 -0400 @@ -1,6 +1,6 @@ #!/bin/sh -# usage: $0 DIRNAME PHASE ED PD FD BD RD [PLISTCHECK] +# usage: $0 DIRNAME PHASE ED PD FD BD RD TD [PLISTCHECK] # PHASE is 1 (checksum) or 2 (package) cleanup() { @@ -90,6 +90,7 @@ fi done fi + find /var/db/pkg -type f -empty -delete } dir=$1 @@ -100,7 +101,8 @@ FD=$5 BD=$6 RD=$7 -PLISTCHECK=$8 +TD=$8 +PLISTCHECK=$9 L=$(echo ${LOCALBASE} | sed 's,^/,,') @@ -136,6 +138,7 @@ echo "EXTRACT_DEPENDS=${ED}" echo "BUILD_DEPENDS=${BD}" echo "RUN_DEPENDS=${RD}" + echo "TEST_DEPENDS=${TD}" #Allow ports to notice they're being run in Tinderbox export PACKAGE_BUILDING=1 @@ -261,10 +264,18 @@ echo "================================================================" echo "========================================" + + pkg_info | awk '{print $1}' | sort > /tmp/pkgs_pre_test + add_pkg ${TD} + pkg_info | awk '{print $1}' | sort > /tmp/pkgs_post_test cd $dir /pnohang $TIMEOUT /tmp/make.log5 ${pkgname} make -k regression-test cat /tmp/make.log5 + RTD=`comm -3 /tmp/pkgs_pre_test /tmp/pkgs_post_test | tr -d '\t'` + del_pkg ${RTD} + rm /tmp/pkgs_pre_test /tmp/pkgs_post_test + mtree -X /tmp/mtree.buildexclude -x -f /tmp/mtree.prebuild -p / | egrep -v "^(${L}/var|${L}/lib/X11/xserver/SecurityPolicy|${L}/share/nls/POSIX|${L}/share/nls/en_US.US-ASCII|etc/services|compat |${L} |etc/manpath.config|etc/.*.bak|${L}/info/dir|${L}/lib/X11/fonts/.*/fonts\.|${L}/man/..( |/man. )|${L}/lib/X11/fonts/TrueType|${L}/etc/gconf/gconf.xml.defaults/%gconf-tree.*.xml|usr/X11R6 )" > /tmp/list.preinstall if [ -s /tmp/list.preinstall ]; then --- lib/tc_command.pl.orig 2011-09-24 12:30:53.000000000 -0400 +++ lib/tc_command.pl 2011-09-24 12:30:57.000000000 -0400 @@ -240,7 +240,7 @@ func => \&getDependenciesForPort, help => "Get stored dependencies for a given port and build", usage => - "-b -d [-t EXTRACT_DEPENDS|PATCH_DEPENDS|FETCH_DEPENDS|BUILD_DEPENDS|LIB_DEPENDS|DEPENDS|RUN_DEPENDS]", + "-b -d [-t EXTRACT_DEPENDS|PATCH_DEPENDS|FETCH_DEPENDS|BUILD_DEPENDS|LIB_DEPENDS|RUN_DEPENDS|TEST_DEPENDS]", optstr => 'b:d:t:', }, "listHooks" => { @@ -1522,8 +1522,8 @@ FETCH_DEPENDS => 'FetchDepends', BUILD_DEPENDS => 'BuildDepends', LIB_DEPENDS => 'LibDepends', - DEPENDS => 'Depends', RUN_DEPENDS => 'RunDepends', + TEST_DEPENDS => 'TestDepends', ); $ds->clearDependenciesForPort($pCls, $build, undef); @@ -1718,8 +1718,8 @@ FETCH_DEPENDS => 2, BUILD_DEPENDS => 3, LIB_DEPENDS => 4, - DEPENDS => 5, - RUN_DEPENDS => 6, + RUN_DEPENDS => 5, + TEST_DEPEND => 6, ); if (!$opts->{'b'} || !$opts->{'d'}) { @@ -3369,6 +3369,7 @@ my @list; push @list, $cache->BuildDependsList($port); push @list, $cache->RunDependsList($port); + push @list, $cache->TestDependsList($port); my %uniq; foreach my $dep (grep { !$uniq{$_}++ } @list) {