add the ablity to maintain a pldistro in a separate svn repo, see gnuradio
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 19 Mar 2009 11:49:30 +0000 (11:49 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 19 Mar 2009 11:49:30 +0000 (11:49 +0000)
fix a small glitch for when running the nightly in override mode after partial distclean
test vservers now have a loginuid-clean /etc/pam.d

Makefile
config.gnuradio.svnpath [new file with mode: 0644]
vbuild-init-vserver.sh
vbuild-nightly.sh

index 6afcdd5..de08f69 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -109,6 +109,8 @@ RPM-INSTALL-DEVEL := rpm --force -Uvh
 # need to ignore result, kernel-headers cannot be uninstalled as glibc depends on it
 RPM-UNINSTALL-DEVEL := rpm -e
 
+REMOTE-PLDISTROS="gnuradio"
+
 #################### Makefile
 # Default target
 all:
@@ -119,9 +121,15 @@ PLDISTRO := planetlab
 RPMBUILD := rpmbuild
 export CVS_RSH := ssh
 
-########## pldistro.mk holds PLDISTRO - it is generated at stage1 (see below)
+########## savedpldistro.mk holds PLDISTRO - it is generated at stage1 (see below)
 ifeq "$(stage1)" ""
-include pldistro.mk
+include savedpldistro.mk
+endif
+
+# when re-running the nightly build after failure, we need to gather the former values
+# do this by running make stage1=skip +PLDISTRO
+ifeq "$(stage1)" "skip"
+include savedpldistro.mk
 endif
 
 #################### include onelab.mk
@@ -148,6 +156,29 @@ endif
 # use default if necessary
 build-SVNPATH ?= $(default-build-SVNPATH)
 
+####################
+define remote_pldistro
+$(1).mk: config.$(1)/$(1).mk
+       @echo 'creating $(1) from config subdir'
+       cp config.$(1)/$(1).mk $(1).mk
+
+$(2).mk: config.$(1)/$(2).mk
+       @echo 'creating $(1) tags from config subdir'
+       cp config.$(1)/$(2).mk $(2).mk
+
+config.$(1)/$(1).mk: config.$(1)
+config.$(1)/$(2).mk: config.$(1)
+
+config.$(1): config.$(1).svnpath
+       @echo "Fetching details for pldistro $(1)"
+       svn export $(shell grep -v "^#" config.$(1).svnpath) config.$(1)
+
+DISTCLEANS += $(1).mk $(2).mk config.$(1)
+
+endef
+
+$(eval $(call remote_pldistro,gnuradio,gnuradio-tags))
+
 ########## stage1 and stage1iter
 # extract specs and compute .mk files by running 
 # make stage1=true
@@ -318,7 +349,7 @@ $(foreach package,$(ALL),$(eval $(call target_mk,$(package))))
 
 # stores PLDISTRO in a file
 # this is done at stage1. later run wont get confused
-pldistro.mk:
+savedpldistro.mk:
        echo "PLDISTRO:=$(PLDISTRO)" > $@
        echo "PLDISTROTAGS:=$(PLDISTROTAGS)" >> $@
        echo "build-SVNPATH:=$(build-SVNPATH)" >> $@
@@ -326,11 +357,11 @@ pldistro.mk:
        echo "MAILTO:=$(MAILTO)" >> $@
        echo "BASE:=$(BASE)" >> $@
 
-savepldistro: pldistro.mk
-.PHONY: savepldistro
+savedpldistro: savedpldistro.mk
+.PHONY: savedpldistro
 
 # always refresh this
-all: savepldistro
+all: savedpldistro
 
 #################### regular make
 
@@ -586,7 +617,7 @@ clean-help:
 
 ### brute force clean
 distclean1:
-       rm -rf pldistro.mk .rpmmacros spec2make header.spec SPECS MAKE 
+       rm -rf savedpldistro.mk .rpmmacros spec2make header.spec SPECS MAKE $(DISTCLEANS)
 distclean2:
        rm -rf CODEBASES SOURCES BUILD RPMS SRPMS tmp
 distclean: distclean1 distclean2
@@ -694,6 +725,7 @@ tests_svnpath:
        @$(if $(TESTS_SVNPATH), echo $(TESTS_SVNPATH) > $@, \
        echo "http://svn.planet-lab.org/svn/tests/trunk" > $@)
 
+
 ####################
 help:
        @echo "********** Run make in two stages:"
diff --git a/config.gnuradio.svnpath b/config.gnuradio.svnpath
new file mode 100644 (file)
index 0000000..91886e4
--- /dev/null
@@ -0,0 +1,2 @@
+# make sure to invoke remote_pldistro appropriately in the Makefile
+http://svn.onelab.eu/gnuradio/trunk/
index 07657e3..cd7c7d3 100755 (executable)
@@ -337,6 +337,9 @@ function post_install_myplc  () {
     # turn off regular crond, as plc invokes plc_crond
     chkconfig crond off
 
+    # take care of loginuid in /etc/pam.d 
+    sed -i "s,#*\(.*loginuid.*\),#\1," /etc/pam.d/*
+
     # customize root's prompt
     cat << PROFILE > /root/.profile
 export PS1="[$vserver] \\w # "
index 18dcb39..e146e46 100755 (executable)
@@ -465,11 +465,11 @@ function main () {
            # get environment from the first run 
            FCDISTRO=$(vserver ${BASE} exec /build/getdistroname.sh)
 
-           PLDISTRO=$(vserver ${BASE} exec make --no-print-directory -C /build +PLDISTRO)
-           PLDISTROTAGS=$(vserver ${BASE} exec make --no-print-directory -C /build +PLDISTROTAGS)
-           build_SVNPATH=$(vserver ${BASE} exec make --no-print-directory -C /build +build-SVNPATH)
-           PERSONALITY=$(vserver ${BASE} exec make --no-print-directory -C /build +PERSONALITY)
-           MAILTO=$(vserver ${BASE} exec make --no-print-directory -C /build +MAILTO)
+           PLDISTRO=$(vserver ${BASE} exec make --no-print-directory -C /build stage1=skip +PLDISTRO)
+           PLDISTROTAGS=$(vserver ${BASE} exec make --no-print-directory -C /build stage1=skip +PLDISTROTAGS)
+           build_SVNPATH=$(vserver ${BASE} exec make --no-print-directory -C /build stage1=skip +build-SVNPATH)
+           PERSONALITY=$(vserver ${BASE} exec make --no-print-directory -C /build stage1=skip +PERSONALITY)
+           MAILTO=$(vserver ${BASE} exec make --no-print-directory -C /build stage1=skip +MAILTO)
            show_env
        else
            # create vserver: check it does not exist yet