svn commit: r221097 - in projects/portbuild: scripts tools

Florent Thoumie flz at FreeBSD.org
Tue Apr 26 22:38:44 UTC 2011


Author: flz
Date: Tue Apr 26 22:38:43 2011
New Revision: 221097
URL: http://svn.freebsd.org/changeset/base/221097

Log:
  portbuild: build ptimeout/pnohang when needed.
  
  This removes the need to manually compile pnohang on every single arch
  when setting up a new pointyhat instance. Added bonus is less clutter
  in scripts/.

Modified:
  projects/portbuild/scripts/dopackages
  projects/portbuild/scripts/dosetupnode
  projects/portbuild/scripts/pdispatch
  projects/portbuild/scripts/portbuild
  projects/portbuild/tools/showrunning.py

Modified: projects/portbuild/scripts/dopackages
==============================================================================
--- projects/portbuild/scripts/dopackages	Tue Apr 26 22:18:53 2011	(r221096)
+++ projects/portbuild/scripts/dopackages	Tue Apr 26 22:38:43 2011	(r221097)
@@ -676,6 +676,9 @@ if [ "$nobuild" = 0 ]; then
     else
 	cp duds.orig duds
     fi
+
+    # Compile ptimeout.
+    /usr/bin/gcc -o ${builddir}/ptimeout -Wall ${pbc}/sources/ptimeout.c
     
     dobuild ${pb} ${arch} ${branch} ${builddir}
     

Modified: projects/portbuild/scripts/dosetupnode
==============================================================================
--- projects/portbuild/scripts/dosetupnode	Tue Apr 26 22:18:53 2011	(r221096)
+++ projects/portbuild/scripts/dosetupnode	Tue Apr 26 22:38:43 2011	(r221097)
@@ -67,7 +67,7 @@ setup() {
 
     if [ "${norsync}" -eq 0 ]; then
 
-	rsync ${rsync_gzip} -e "${ssh_cmd}" -r -l -p --delete ${pb}/scripts \
+	rsync ${rsync_gzip} -e "${ssh_cmd}" -r -l -p --delete ${pb}/scripts ${pb}/sources \
 	    ${client_user}@${node}:${pb}/
 	checkerror $? || (echo "Copying scripts to ${node} failed"; return 1)
 

Modified: projects/portbuild/scripts/pdispatch
==============================================================================
--- projects/portbuild/scripts/pdispatch	Tue Apr 26 22:18:53 2011	(r221096)
+++ projects/portbuild/scripts/pdispatch	Tue Apr 26 22:38:43 2011	(r221097)
@@ -134,7 +134,7 @@ test -f ${pb}/${arch}/portbuild.${host} 
 rm -f ${builddir}/logs/${pkgname}.log ${builddir}/logs/${pkgname}.log.bz2
 rm -f ${builddir}/errors/${pkgname}.log ${builddir}/errors/${pkgname}.log.bz2
     
-${pb}/scripts/ptimeout.host $timeout ${ssh_cmd} -a -n ${client_user}@${host} ${sudo_cmd} ${command} ${arch} ${branch} ${buildid} ${chroot} ${flags} \"$ED\" \"$PD\" \"$FD\" \"$BD\" \"$RD\" ${args} 2>&1
+${builddir}/ptimeout $timeout ${ssh_cmd} -a -n ${client_user}@${host} ${sudo_cmd} ${command} ${arch} ${branch} ${buildid} ${chroot} ${flags} \"$ED\" \"$PD\" \"$FD\" \"$BD\" \"$RD\" ${args} 2>&1
 error=$?
 
 # Pull in the results of the build from the client

Modified: projects/portbuild/scripts/portbuild
==============================================================================
--- projects/portbuild/scripts/portbuild	Tue Apr 26 22:18:53 2011	(r221096)
+++ projects/portbuild/scripts/portbuild	Tue Apr 26 22:38:43 2011	(r221097)
@@ -299,15 +299,23 @@ while [ $# -gt 0 ]; do
 done
 
 cp -p ${pb}/scripts/buildscript ${chroot}
-cp -p ${pb}/scripts/pnohang.${arch} ${chroot}/pnohang
+cp -p ${pb}/sources/pnohang.c ${chroot}
 
+# phase 0, compile pnohang
+chroot ${chroot} /usr/bin/gcc -o /pnohang -Wall /pnohang.c 2>&1 | tee -a ${chroot}/tmp/${pkgname}.log
+if [ $? -ne 0 ]; then
+  error=255
+fi
+
+if [ "${error}" = 0 ]; then
 # phase 1, make checksum
 # Needs to be chroot not jail so that port can be fetched
-chroot ${chroot} /buildscript ${dirname} 1 "$ED" "$PD" "$FD" "$BD" "$RD" 2>&1 | tee -a ${chroot}/tmp/${pkgname}.log
-if [ -f ${chroot}/tmp/status ]; then
-  error=$(cat ${chroot}/tmp/status)
-else
-  error=255
+  chroot ${chroot} /buildscript ${dirname} 1 "$ED" "$PD" "$FD" "$BD" "$RD" 2>&1 | tee -a ${chroot}/tmp/${pkgname}.log
+  if [ -f ${chroot}/tmp/status ]; then
+    error=$(cat ${chroot}/tmp/status)
+  else
+    error=255
+  fi
 fi
 
 if [ "${error}" = 0 ]; then

Modified: projects/portbuild/tools/showrunning.py
==============================================================================
--- projects/portbuild/tools/showrunning.py	Tue Apr 26 22:18:53 2011	(r221096)
+++ projects/portbuild/tools/showrunning.py	Tue Apr 26 22:38:43 2011	(r221097)
@@ -61,7 +61,7 @@ def getallsubprocs(pids):
 	return ppids
 
 def dosubprocs(data):
-	""" recursively get list of subprocesses (ptimeout.host, sleep 15, ...) and fill in data """
+	""" recursively get list of subprocesses (ptimeout, sleep 15, ...) and fill in data """
 
 	ppid_map = { }
 	idlers = { }
@@ -74,7 +74,7 @@ def dosubprocs(data):
 		ppid = fields.pop(0)
 		time = fields.pop(0)
 		command = ' '.join(fields)
-		if command.count('ptimeout.host'):
+		if command.count('ptimeout'):
 			command = "building"
 		elif command == 'sleep 15':
 			command = "waiting for idle node"


More information about the svn-src-projects mailing list