merge recent changes, prep for plc-0.2-9
authorMark Huang <mlhuang@cs.princeton.edu>
Wed, 14 Sep 2005 19:28:01 +0000 (19:28 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Wed, 14 Sep 2005 19:28:01 +0000 (19:28 +0000)
Makefile
Makerules
Rules.mk
devbox.sh
packages.sh

index eaa8ab7..b5e0f8a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2003-2005 The Trustees of Princeton University
 #
-# $Id: Makefile,v 1.68 2005/05/04 20:35:27 mlhuang Exp $
+# $Id: Makefile,v 1.79 2005/09/04 17:37:36 mlhuang Exp $
 #
 
 # Default target
@@ -16,6 +16,7 @@ all:
 # TAG: CVS tag to patch to (if not HEAD)
 # MODULE: CVS module name to use (if not HEAD)
 # SPEC: RPM spec file template
+# RPMBUILD: If not rpmbuild
 # RPMFLAGS: Miscellaneous RPM flags
 # CVS_RSH: If not ssh
 # ALL: default targets
@@ -64,18 +65,6 @@ util-vserver-MODULE := util-vserver
 util-vserver-SPEC := util-vserver/util-vserver.spec
 ALL += util-vserver
 
-# Build kernel first so we can bootstrap off of its build
-util-vserver: kernel
-
-#
-# vserver-reference
-#
-
-vserver-reference-CVSROOT := :pserver:anon@cvs.planet-lab.org:/cvs
-vserver-reference-MODULE := vserver-reference
-vserver-reference-SPEC := vserver-reference/vserver-reference.spec
-ALL += vserver-reference
-
 #
 # lkcdutils
 #
@@ -273,18 +262,67 @@ kexec-tools-MODULE := kexec-tools
 kexec-tools-SPEC := kexec-tools/kexec-tools.spec
 ALL += kexec-tools
 
+#
+# util-python
+#
+
+util-python-CVSROOT := :pserver:anon@cvs.planet-lab.org:/cvs
+util-python-MODULE := util-python
+util-python-SPEC := util-python/util-python.spec
+ALL += util-python
+
+# proper and util-vserver both use scripts in util-python for building
+proper: util-python
+util-vserver: util-python
+
+#
+# vserver-reference
+#
+
+vserver-reference-CVSROOT := :pserver:anon@cvs.planet-lab.org:/cvs
+vserver-reference-MODULE := vserver-reference
+vserver-reference-SPEC := vserver-reference/vserver-reference.spec
+# Package must be built as root
+vserver-reference-RPMBUILD := sudo rpmbuild
+ALL += vserver-reference
+
+# vserver-reference may require current packages
+vserver-reference: $(filter-out vserver-reference,$(ALL))
+
+# ...and the yum manifest
+vserver-reference: RPMS/yumgroups.xml
+
+#
+# bootmanager
+#
+
+bootmanager-CVSROOT := :pserver:anon@cvs.planet-lab.org:/cvs
+bootmanager-MODULE := bootmanager
+bootmanager-SPEC := bootmanager/bootmanager.spec
+bootmanager-RPMBUILD := sudo rpmbuild
+ALL += bootmanager
+
+# bootmanager may require current packages
+bootmanager: $(filter-out bootmanager,$(ALL))
+
+# ...and the yum manifest
+bootmanager: RPMS/yumgroups.xml
+
 ifeq ($(findstring $(package),$(ALL)),)
 
 # Build all packages
 all: $(ALL)
-        # XXX Should check out a tagged version of yumgroups.xml
-       cvs -d $(CVSROOT) checkout -p alpina/groups/v3_yumgroups.xml > RPMS/yumgroups.xml
         # Create package manifest
        sh ./packages.sh -b "http://build.planet-lab.org/$(subst $(HOME)/,,$(shell pwd))/SRPMS" SRPMS > SRPMS/packages.xml
 
+RPMS/yumgroups.xml:
+       install -D -m 644 groups/v3_yumgroups.xml RPMS/yumgroups.xml
+
 # Recurse
 $(ALL):
        $(MAKE) package=$@
+       yum-arch RPMS
+       yum-arch SRPMS
 
 # Upload packages to boot server
 SERVER := build@boot.planet-lab.org
@@ -306,10 +344,10 @@ ifneq ($(BUILDS),)
 endif
         # Populate repository
        ssh $(SERVER) mkdir -p $(ARCHIVE)/$(BASE)/RPMS $(ARCHIVE)/$(BASE)/SRPMS
-       rsync --links --perms --times --group --compress --rsh=ssh \
+       rsync --delete --links --perms --times --group --compress --rsh=ssh \
            $(sort $(subst -debuginfo,,$(wildcard RPMS/yumgroups.xml RPMS/*/*))) $(SERVER):$(ARCHIVE)/$(BASE)/RPMS/
        ssh $(SERVER) yum-arch $(ARCHIVE)/$(BASE)/RPMS >/dev/null
-       rsync --links --perms --times --group --compress --rsh=ssh \
+       rsync --delete --links --perms --times --group --compress --rsh=ssh \
            $(wildcard SRPMS/*) $(SERVER):$(ARCHIVE)/$(BASE)/SRPMS/
        ssh $(SERVER) yum-arch $(ARCHIVE)/$(BASE)/SRPMS >/dev/null
 ifeq ($(TAG),HEAD)
@@ -339,6 +377,7 @@ TAG := $(if $($(package)-TAG),$($(package)-TAG),$(TAG))
 MODULE := $($(package)-MODULE)
 SPEC := $($(package)-SPEC)
 RPMFLAGS := $($(package)-RPMFLAGS)
+RPMBUILD := $(if $($(package)-RPMBUILD),$($(package)-RPMBUILD),rpmbuild)
 CVS_RSH := $(if $($(package)-CVS_RSH),$($(package)-CVS_RSH),ssh)
 
 include Makerules
index 276f673..7b63829 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -4,7 +4,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2003-2005 The Trustees of Princeton University
 #
-# $Id: Makerules,v 1.15 2005/05/18 15:18:43 mlhuang Exp $
+# $Id: Makerules,v 1.16 2005/09/01 18:58:45 mlhuang Exp $
 #
 
 # Base cvsps and rpmbuild in the current directory
@@ -151,7 +151,7 @@ all: RPMS/$(ARCH)/$(NVR).$(ARCH).rpm SRPMS/$(NVR).src.rpm
 # Build RPM
 RPMS/$(ARCH)/$(NVR).$(ARCH).rpm: SPECS/$(notdir $(SPEC)) $(SOURCES) .rpmmacros
        mkdir -p BUILD RPMS
-       rpmbuild $(RPMFLAGS) -bb $<
+       $(RPMBUILD) $(RPMFLAGS) -bb $<
 
 # Build SRPM
 SRPMS/$(NVR).src.rpm: SPECS/$(notdir $(SPEC)) $(SOURCES) .rpmmacros
index 276f673..7b63829 100644 (file)
--- a/Rules.mk
+++ b/Rules.mk
@@ -4,7 +4,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2003-2005 The Trustees of Princeton University
 #
-# $Id: Makerules,v 1.15 2005/05/18 15:18:43 mlhuang Exp $
+# $Id: Makerules,v 1.16 2005/09/01 18:58:45 mlhuang Exp $
 #
 
 # Base cvsps and rpmbuild in the current directory
@@ -151,7 +151,7 @@ all: RPMS/$(ARCH)/$(NVR).$(ARCH).rpm SRPMS/$(NVR).src.rpm
 # Build RPM
 RPMS/$(ARCH)/$(NVR).$(ARCH).rpm: SPECS/$(notdir $(SPEC)) $(SOURCES) .rpmmacros
        mkdir -p BUILD RPMS
-       rpmbuild $(RPMFLAGS) -bb $<
+       $(RPMBUILD) $(RPMFLAGS) -bb $<
 
 # Build SRPM
 SRPMS/$(NVR).src.rpm: SPECS/$(notdir $(SPEC)) $(SOURCES) .rpmmacros
index 69a37fc..3ff8625 100644 (file)
--- a/devbox.sh
+++ b/devbox.sh
@@ -3,7 +3,7 @@
 # PlanetLab devbox release script. Intended to be used by scripts and
 # crontabs to build nightly releases (default).
 #
-# $Id:$
+# $Id: devbox.sh,v 1.3 2005/08/02 05:36:47 mef Exp $
 #
 
 # Set defaults
@@ -16,6 +16,7 @@ BASE=$PWD
 # Export certain variables
 export CVS_RSH
 
+BASE=
 # Get options
 while getopts "d:r:m:b:x:h" opt ; do
     case $opt in
@@ -45,13 +46,17 @@ while getopts "d:r:m:b:x:h" opt ; do
 done
 
 # Base operations in specified directory
-BASE=`mktemp -d /tmp/DEVBOX.XXXXXX` || { echo $"could not make temp file" >& 2; exit 1; }
-mkdir -p $BASE
+if [ -z "$BASE" ]; then
+       BASE=`mktemp -d /tmp/DEVBOX.XXXXXX` || { echo $"could not make temp file" >& 2; exit 1; }
+       mkdir -p $BASE
+fi
 cd $BASE || exit $?
 
+DAT=`date +%Y.%m.%d`
+DAT="2005.08.01"
 # Redirect output from here
 exec 2>&1
-exec &>${BASE}/log
+exec &>${BASE}/${DAT}/devbox.log
 
 # XXX For debugging
 set -x
@@ -61,7 +66,7 @@ SERVER=build@boot.planet-lab.org
 REPOSITORY=/var/www/html/install-rpms
 
 for RELEASE in devbox alpha-devbox beta-devbox ; do
-    TMPDEVBOXRELEASE=planetlab-${RELEASE}_`date +%Y.%m.%d`_tmp
+    TMPDEVBOXRELEASE=planetlab-${RELEASE}_${DAT}_tmp
     DEVBOXRELEASE=planetlab-${RELEASE}
 
     ssh $SERVER mkdir -p ${REPOSITORY}/${TMPDEVBOXRELEASE}
@@ -72,9 +77,9 @@ for RELEASE in devbox alpha-devbox beta-devbox ; do
     BUILT=$(echo $DEVBOXRELEASE | sed "s,\-devbox,,")
     ssh $SERVER ln -nf ${REPOSITORY}/$BUILT/*.rpm ${REPOSITORY}/${TMPDEVBOXRELEASE}
 
-    mkdir -p ${BASE}/${DEVBOXRELEASE}
-    cvs -d ${CVSROOT} checkout -p alpina/groups/${RELEASE}_yumgroups.xml > ${BASE}/${DEVBOXRELEASE}/yumgroups.xml
-    scp ${BASE}/${DEVBOXRELEASE}/yumgroups.xml ${SERVER}:${REPOSITORY}/${TMPDEVBOXRELEASE}/yumgroups.xml
+    mkdir -p ${BASE}/${DAT}/${DEVBOXRELEASE}
+    install -D -m 644 ${DAT}/groups/${RELEASE}_yumgroups.xml ${BASE}/${DAT}/${DEVBOXRELEASE}/yumgroups.xml
+    scp ${BASE}/${DAT}/${DEVBOXRELEASE}/yumgroups.xml ${SERVER}:${REPOSITORY}/${TMPDEVBOXRELEASE}/yumgroups.xml
 
     ssh $SERVER yum-arch ${REPOSITORY}/${TMPDEVBOXRELEASE} >/dev/null
 
@@ -88,6 +93,6 @@ for RELEASE in devbox alpha-devbox beta-devbox ; do
 done
 
 cd / || exit $?
-rm -rf $BASE
+#rm -rf $BASE
 
 exit 0
index ad9c303..745bb62 100755 (executable)
@@ -6,7 +6,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2004 The Trustees of Princeton University
 #
-# $Id: packages.sh,v 1.4 2004/10/28 14:53:05 mlhuang Exp $
+# $Id: packages.sh,v 1.6 2005/06/14 18:53:43 mlhuang Exp $
 #
 
 # Set defaults
@@ -29,7 +29,7 @@ shift $(($OPTIND - 1))
 
 xml_escape_pcdata() {
     # & to &amp;
-    # " to \"
+    # " to &quot;
     # ' to &apos;
     # < to &lt;
     # > to &gt;
@@ -63,7 +63,7 @@ TAGS="NAME VERSION RELEASE URL BUILDTIME DESCRIPTION"
 
 cat <<EOF
 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
-<!-- \$Id: packages.sh,v 1.4 2004/10/28 14:53:05 mlhuang Exp $ -->
+<!-- \$Id: packages.sh,v 1.6 2005/06/14 18:53:43 mlhuang Exp $ -->
 <!-- Generated at $(date) in $(cd ${1-.} && pwd -P) on $HOSTNAME by $USER -->
 <!DOCTYPE PACKAGES [
   <!ELEMENT PACKAGES (PACKAGE)*>