Index: bulk/build
===================================================================
RCS file: /cvsroot/pkgsrc/mk/bulk/build,v
retrieving revision 1.48
diff -u -r1.48 build
--- bulk/build	14 Jan 2005 15:32:34 -0000	1.48
+++ bulk/build	31 May 2005 09:23:29 -0000
@@ -356,6 +356,15 @@
 
 #rm $DEPENDSTREEFILE $DEPENDSFILE $SUPPORTSFILE $INDEXFILE $ORDERFILE
 
+# Re-install BULK_PREREQ as we may need functionality (e.g. SMTP) provided by
+# them for post-build to run.
+echo "Re-installing prerequisite packages specified with BULK_PREREQ..."
+for pkgdir in $BULK_PREREQ
+do
+	echo $pkgdir
+	( cd ${USR_PKGSRC}/$pkgdir && ${BMAKE} bulk-install )
+done
+
 # Perl was wiped, reinstall it!
 ( cd pkgtools/pkglint && cd ${PERL5_PKGSRCDIR} && ${BMAKE} bulk-install )
 perl mk/bulk/post-build | ${MAIL_CMD} -s "pkgsrc ${OPSYS} ${OS_VERSION}/${MACHINE_ARCH} bulk build results `date +%Y-%m-%d`" $ADMIN
Index: bulk/mksandbox
===================================================================
RCS file: /cvsroot/pkgsrc/mk/bulk/mksandbox,v
retrieving revision 1.39
diff -u -r1.39 mksandbox
--- bulk/mksandbox	10 Feb 2005 03:20:00 -0000	1.39
+++ bulk/mksandbox	31 May 2005 09:23:29 -0000
@@ -111,11 +111,11 @@
 	gtarprog=""
 	idprog=/usr/xpg4/bin/id
 	mkdirprog="/usr/bin/mkdir -p"
-	mountflags="-F lofs"
+	mountflags="-F nfs"
 	mountprog=/sbin/mount
 	paxprog=/bin/pax
 	sedprog=/usr/xpg4/bin/sed
-	sandboxMountDirs="/bin /sbin /kernel /lib /proc /opt/SUNWspro /usr/X11R6 /usr/5bin /usr/bin /usr/ccs /usr/dt /usr/games /usr/include /usr/lib /usr/openwin /usr/share /usr/sbin /usr/ucb /usr/ucblib /usr/xpg4 /var/mail /var/sadm"
+	sandboxMountDirs="/bin /sbin /kernel /lib /opt/SUNWspro /usr/X11R6 /usr/5bin /usr/bin /usr/ccs /usr/dt /usr/games /usr/include /usr/lib /usr/openwin /usr/share /usr/sbin /usr/ucb /usr/ucblib /usr/xpg4 /var/mail /var/sadm"
 	sandboxEmptyDirs="$sandboxEmptyDirs /usr/tmp /var/tmp"
 	;;
 *)
@@ -158,13 +158,13 @@
 	err "pkgsrc directory $pkgsrc does not exist."
 fi
 
-if [ ! -d $src ]; then
-	err "source directory $src does not exist."
-fi
-
-if [ ! -d $xsrc ]; then
-	err "xsrc directory $xsrc does not exist."
-fi
+#if [ ! -d $src ]; then
+#	err "source directory $src does not exist."
+#fi
+
+#if [ ! -d $xsrc ]; then
+#	err "xsrc directory $xsrc does not exist."
+#fi
 
 sandbox=$1
 sandbox_script="$sandbox/sandbox"
@@ -226,7 +226,7 @@
 $mkdirprog $sandbox/etc
 case "$paxprog" in
 "")	(cd /etc; $gtarprog -cf - . | (cd $sandbox/etc; $gtarprog xf - )) ;;
-*)	(cd /etc; $paxprog -rwpe . $sandbox/etc) ;;
+*)	(cd /etc; $paxprog -rwpe . $sandbox/etc 2>/dev/null) ;;
 esac
 rm -f $sandbox/etc/localtime
 
@@ -243,8 +243,17 @@
 for d in $sandboxMountDirs; do	
 	test -d $d || continue;
 	$mkdirprog $sandbox$d;
-	$mountprog $mountflags -r $d $sandbox$d;
-	echo "$d $d ro \\" >> $sandbox_script
+	case "$opsys" in
+	SunOS)
+		/usr/sbin/share -F nfs -o ro=localhost $d;
+		$mountprog $mountflags -r localhost:$d $sandbox$d;
+		echo "localhost:$d $d ro \\" >> $sandbox_script
+		;;
+	*)
+		$mountprog $mountflags -r $d $sandbox$d;
+		echo "$d $d ro \\" >> $sandbox_script
+		;;
+	esac
 done
 
 echo "Making /tmp in $sandbox"
@@ -253,8 +262,14 @@
 
 echo "Making /var/games in $sandbox"
 $mkdirprog $sandbox/var/games
-$chownprog games:games $sandbox/var/games
-$chmodprog 2775 $sandbox/var/games
+case "$opsys" in
+SunOS)
+	;;
+*)
+	$chownprog games:games $sandbox/var/games
+	$chmodprog 2775 $sandbox/var/games
+	;;
+esac
 
 for d in $sandboxEmptyDirs; do
 	test -d $d || continue
@@ -268,36 +283,93 @@
 	$cpprog /dev/null $sandbox$f
 done
 
-echo "Mount $src from $sandbox"
-$mkdirprog $sandbox/usr/src
-$mountprog $mountflags -r $src $sandbox/usr/src
-echo "$src /usr/src ro \\" >> $sandbox_script
+echo "Mount home directories from $sandbox"
+$mkdirprog $sandbox/home/sketch
+$mkdirprog $sandbox/home/ftp
+/usr/sbin/share -F nfs -o ro=localhost /home/sketch
+/usr/sbin/share -F nfs -o rw=localhost,root=localhost /home/ftp
+$mountprog $mountflags localhost:/home/sketch $sandbox/home/sketch
+$mountprog $mountflags localhost:/home/ftp $sandbox/home/ftp
+echo "localhost:/home/sketch /home/sketch ro \\" >> $sandbox_script
+echo "localhost:/home/ftp /home/ftp rw \\" >> $sandbox_script
+
+#echo "Mount $src from $sandbox"
+#$mkdirprog $sandbox/usr/src
+#$mountprog $mountflags -r $src $sandbox/usr/src
+#echo "$src /usr/src ro \\" >> $sandbox_script
 
 echo "Mount $pkgsrc from $sandbox"
 $mkdirprog $sandbox/usr/pkgsrc
-$mountprog $mountflags $pkgsrc $sandbox/usr/pkgsrc
-echo "$pkgsrc /usr/pkgsrc rw \\" >> $sandbox_script
+case "$opsys" in
+SunOS)
+	/usr/sbin/share -F nfs -o rw=localhost,root=localhost $pkgsrc
+	$mountprog $mountflags localhost:$pkgsrc $sandbox/usr/pkgsrc
+	echo "localhost:$pkgsrc /usr/pkgsrc rw \\" >> $sandbox_script
+	;;
+*)
+	$mountprog $mountflags $pkgsrc $sandbox/usr/pkgsrc
+	echo "$pkgsrc /usr/pkgsrc rw \\" >> $sandbox_script
+	;;
+esac
 
-echo "Mount $xsrc from $sandbox"
-$mkdirprog $sandbox/usr/xsrc
-$mountprog $mountflags -r $xsrc $sandbox/usr/xsrc
-echo "$xsrc /usr/xsrc ro \\" >> $sandbox_script
+#echo "Mount $xsrc from $sandbox"
+#$mkdirprog $sandbox/usr/xsrc
+#$mountprog $mountflags -r $xsrc $sandbox/usr/xsrc
+#echo "$xsrc /usr/xsrc ro \\" >> $sandbox_script
 
 echo "Mounting $packages and $distfiles from $sandbox"
 $mkdirprog $sandbox/$packages $sandbox/$distfiles
 $mkdirprog $packages $distfiles
-$mountprog $mountflags $packages $sandbox/$packages
-$mountprog $mountflags $distfiles $sandbox/$distfiles
-echo "$packages $packages rw \\" >> $sandbox_script
-echo "$distfiles $distfiles rw \\" >> $sandbox_script
+case "$opsys" in
+SunOS)
+	# These are usually held under $pkgsrc and will therefore already be
+	# shared, so ignore warnings
+	/usr/sbin/share -F nfs -o rw=localhost,root=localhost $packages 2>/dev/null
+	/usr/sbin/share -F nfs -o rw=localhost,root=localhost $distfiles 2>/dev/null
+	$mountprog $mountflags localhost:$packages $sandbox/$packages
+	$mountprog $mountflags localhost:$distfiles $sandbox/$distfiles
+	echo "localhost:$packages $packages rw \\" >> $sandbox_script
+	echo "localhost:$distfiles $distfiles rw \\" >> $sandbox_script
+	;;
+*)
+	$mountprog $mountflags $packages $sandbox/$packages
+	$mountprog $mountflags $distfiles $sandbox/$distfiles
+	echo "$packages $packages rw \\" >> $sandbox_script
+	echo "$distfiles $distfiles rw \\" >> $sandbox_script
+	;;
+esac
 
 if [ -n "$localpatches" ] && [ -d "$localpatches" ]; then
 	echo "Mounting $localpatches from $sandbox"
 	$mkdirprog $sandbox/$localpatches
-	$mountprog $mountflags $localpatches $sandbox/$localpatches
-	echo "$localpatches $localpatches rw \\" >> $sandbox_script
+	case "$opsys" in
+	SunOS)
+		/usr/sbin/share -F nfs -o rw=localhost,root=localhost $localpatches
+		$mountprog $mountflags localhost:$localpatches $sandbox/$localpatches
+		echo "localhost:$localpatches $localpatches rw \\" >> $sandbox_script
+		;;
+	*)
+		$mountprog $mountflags $localpatches $sandbox/$localpatches
+		echo "$localpatches $localpatches rw \\" >> $sandbox_script
+		;;
+	esac
 fi
 
+case "$opsys" in
+SunOS)
+	echo "Mount /proc"
+	$mkdirprog $sandbox/proc
+	$mountprog -F proc -o rw /proc $sandbox/proc
+
+	echo "Mount /dev/fd"
+	$mkdirprog $sandbox/dev/fd
+	$mountprog -F lofs -o rw /dev/fd $sandbox/dev/fd
+
+	echo "Mount /etc/mnttab"
+	$mountprog -F lofs -o ro /etc/mnttab $sandbox/etc/mnttab
+	;;
+esac
+
 cat >> $sandbox_script <<EOS
 "
 case x\$1 in
@@ -309,10 +381,39 @@
 		mntpoint=\$1; shift
 		rwro=\$1; shift
 		case \$rwro in
-			ro) mount $mountflags -r \$fs \$sandbox/\$mntpoint || exit 1 ;;
-			rw) mount $mountflags \$fs \$sandbox/\$mntpoint || exit 1 ;;
+		ro)
+			case "\$opsys" in
+			SunOS)
+				/usr/sbin/share -F nfs -o ro=localhost \$fs
+				mount $mountflags -r localhost:\$fs \$sandbox/\$mntpoint || exit 1
+				;;
+			*)
+				mount $mountflags -r \$fs \$sandbox/\$mntpoint || exit 1
+				;;
+			esac
+			;;
+		rw)
+			case "\$opsys" in
+			SunOS)
+				/usr/sbin/share -F nfs -o rw=localhost,root=localhost \$fs
+				mount $mountflags localhost:\$fs \$sandbox/\$mntpoint || exit 1 
+				;;
+			*)
+				mount $mountflags \$fs \$sandbox/\$mntpoint || exit 1
+				;;
+			esac
+			;;
 		esac
 	done
+	case "$opsys" in
+	SunOS)
+		$mkdirprog $sandbox/proc
+		$mountprog -F proc -o rw /proc $sandbox/proc
+		$mkdirprog $sandbox/dev/fd
+		$mountprog -F lofs -o rw /dev/fd $sandbox/dev/fd
+		$mountprog -F lofs -o ro /etc/mnttab $sandbox/etc/mnttab
+		;;
+	esac
 	;;
 	xumount)
 	set dummy \`r3 \$fses\`
@@ -322,7 +423,19 @@
 		mntpoint=\$1; shift
 		dummy=\$1; shift
 		umount \$sandbox/\$mntpoint
+		case "\$opsys" in
+		SunOS)
+			/usr/sbin/unshare \$sandbox/\$mntpoint
+			;;
+		esac
 	done
+	case "$opsys" in
+	SunOS)
+		umount \$sandbox/proc
+		umount \$sandbox/dev/fd
+		umount \$sandbox/etc/mnttab
+		;;
+	esac
 	;;
 	*)
 	if [ \$# -eq 0 ]; then
Index: bulk/pre-build
===================================================================
RCS file: /cvsroot/pkgsrc/mk/bulk/pre-build,v
retrieving revision 1.44
diff -u -r1.44 pre-build
--- bulk/pre-build	19 Jan 2005 20:58:01 -0000	1.44
+++ bulk/pre-build	31 May 2005 09:23:29 -0000
@@ -67,7 +67,7 @@
 		share/mk/bsd.links.mk share/mk/bsd.man.mk                    \
 		share/mk/bsd.nls.mk share/mk/bsd.obj.mk                      \
 		share/mk/bsd.prog.mk share/mk/bsd.subdir.mk                  \
-		share/mk/bsd.sys.mk share/mk/bsd.own.mk                      \
+		share/mk/bsd.sys.mk share/mk/bsd.own.mk etc/mk.conf          \
 		bin/bmake bin/ftp bin/digest bin/nbsed bin/install-sh        \
 		bin/pax bin/tar bin/cpio man/cat1/ftp.1 man/cat1/pax.0       \
 		man/cat1/tar.0 man/cat1/cpio.0 man/cat1/pkg_add.0            \
