From: Thierry Parmentelat Date: Thu, 19 Mar 2009 11:49:30 +0000 (+0000) Subject: add the ablity to maintain a pldistro in a separate svn repo, see gnuradio X-Git-Tag: 4.3-rc1~81 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=3678eb46899b9bafdeee19909161757c49fe49d3;p=build.git add the ablity to maintain a pldistro in a separate svn repo, see gnuradio 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 --- diff --git a/Makefile b/Makefile index 6afcdd57..de08f696 100644 --- 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 index 00000000..91886e4a --- /dev/null +++ b/config.gnuradio.svnpath @@ -0,0 +1,2 @@ +# make sure to invoke remote_pldistro appropriately in the Makefile +http://svn.onelab.eu/gnuradio/trunk/ diff --git a/vbuild-init-vserver.sh b/vbuild-init-vserver.sh index 07657e39..cd7c7d36 100755 --- a/vbuild-init-vserver.sh +++ b/vbuild-init-vserver.sh @@ -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 # " diff --git a/vbuild-nightly.sh b/vbuild-nightly.sh index 18dcb396..e146e468 100755 --- a/vbuild-nightly.sh +++ b/vbuild-nightly.sh @@ -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