OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-re Date: 15-Oct-2003 17:45:48
Branch: HEAD Handle: 2003101516454700
Modified files:
openpkg-re/release Makefile
Log:
flush pending work: this moves all remaining scripts into Makefile
targets for the release engineering process
Summary:
Revision Changes Path
1.12 +101 -23 openpkg-re/release/Makefile
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-re/release/Makefile
============================================================================
$ cvs diff -u -r1.11 -r1.12 Makefile
--- openpkg-re/release/Makefile 11 Jan 2003 12:45:02 -0000 1.11
+++ openpkg-re/release/Makefile 15 Oct 2003 15:45:47 -0000 1.12
@@ -7,23 +7,36 @@
LOCATION = re
USER = re
GROUP = re
-LTMP = /ltmp
+LTMP = /ltmp/re
# OpenPKG build platforms
HOSTNAME = `hostname | sed -e 's;\..*$$;;'`
-TARGET = `$(PREFIX)/bin/rpm --eval '%{l_target}'`
-PLATFORMS = dv1:ix86-freebsd4.7 \
- dv6:ix86-linux2.4 \
- dv9:sparc64-solaris2.9 \
- dv2:ix86-freebsd5.0 \
- dv5:ix86-linux2.2 \
- dv8:sparc64-solaris2.8
+TARGET = `$(PREFIX)/bin/rpm --eval '%{l_platform -p}'`
+PLATFORMS = dv1:ix86-freebsd4.9 \
+ dv2:ix86-freebsd5.1 \
+ dv6:ix86-debian3.0 \
+ dv5:ix86-debian2.2 \
+ dv9:sparc64-solaris9 \
+ dv8:sparc64-solaris8 \
+ dv4:ix86-redhat9 \
+ dv14:ix86-suse8.2 \
+ dv7:ix86-solaris9
+ #dv13:sparc64-solaris2.6 \
+ #dv12:alpha-freebsd5.1
+
+# OpenPKG package classes
+CLASSES = +CORE
+#CLASSES = +CORE+BASE+PLUS+EVAL-JUNK
+#CLASSES = +CORE+BASE+PLUS
# OpenPKG sources
+SHELL = /usr/opkg/bin/bash
+ROOTDIR = /e/openpkg/re/release
+MASTER_WEB = master.openpkg.org:/e/openpkg/web
MASTER_FTP = master.openpkg.org:/e/openpkg/ftp
CUR_SOURCE = $(MASTER_FTP)/current/SRC/
CUR_EXTRA = /e/openpkg/PKG/src/
-REL_INDEX = $(MASTER_FTP)/release/1.1/SRC/00INDEX.rdf.bz2
+REL_INDEX = $(MASTER_FTP)/release/1.3/SRC/00INDEX.rdf.bz2
# internals
WORK = .
@@ -36,6 +49,59 @@
# master targets
#
+master-buildfarm buildfarm:
+ [EMAIL PROTECTED] [ ".`screen -list | grep openpkg-buildfarm`" != . ]; then \
+ $(SHTOOL) echo -e "%B++ reconnecting to running build-farm environment%b";
\
+ exec screen -r openpkg-buildfarm; \
+ else \
+ $(SHTOOL) echo -e "%B++ establishing new build-farm environment%b"; \
+ bashrc="$(ROOTDIR)/tmp/master-builfarm-bashrc"; \
+ ( echo ". \$$HOME/.bash_login"; \
+ echo "unset TMOUT"; \
+ echo "cd $(ROOTDIR)"; \
+ echo "echo \"Entering OpenPKG Release Engineering Area (slave host
\`hostname\`)\""; \
+ ) >$$bashrc; \
+ screenrc="$(ROOTDIR)/tmp/master-builfarm-screenrc"; \
+ ( echo "vbell off"; \
+ echo "screen -t \"$(HOSTNAME) [MASTER]\" $(SHELL)"; \
+ for platform in $(PLATFORMS); do \
+ eval `echo "$$platform" | sed -e
's/^\([^:]*\):\(.*\)$$/hostname="\1"; target="\2";/'`; \
+ echo "screen -t $$hostname ssh -t -x $$hostname $(SHELL)
--rcfile $$bashrc"; \
+ done; \
+ echo "select 0"; \
+ ) >$$screenrc; \
+ eval `ssh-agent -s 2>/dev/null`; \
+ ssh-add -D </dev/null 2>/dev/null; \
+ ssh-add </dev/null ~/.ssh/id_rsa_rse_en ~/.ssh/id_rsa_rse_dev
~/.ssh/id_rsa_rse_cw; \
+ cd $(ROOTDIR); unset TMOUT; umask 022; \
+ exec screen -S openpkg-buildfarm -c $$screenrc; \
+ fi
+
+master:
+ @$(SHTOOL) echo -e "%B++ STARTING MASTER LOOP ($(HOSTNAME))%b"; \
+ cd $(WORK); PWD=`pwd`; export PWD; \
+ while [ 1 ]; do \
+ ./shtool echo -e "%B++ master: preparing%b"; \
+ $(MAKE) master-prepare; \
+ i=0; \
+ while [ $i -lt 5 ]; do \
+ ./shtool echo -e "%B++ master: generating status report%b"; \
+ $(MAKE) --no-print-directory master-report >status.txt; \
+ ./shtool echo -e "%B++ master: uploading status report%b"; \
+ scp -q status.txt $(MASTER_WEB)/ || true; \
+ rm -f status.txt; \
+ for platform in $(PLATFORMS); do \
+ eval `echo "$$platform" | sed -e
's/^\([^:]*\):\(.*\)$$/hostname="\1"; target="\2";/'`; \
+ rsync --rsh=ssh -rav --delete \
+ log/$$hostname-*/*.log.*
log/$$hostname-*/processing.* \
+ $(MASTER_WEB)/status.log/ >/dev/null 2>&1 ||
true; \
+ done; \
+ ./shtool echo -e "%B++ master: sleeping (60s, round $$i)%b"; \
+ sleep 60; \
+ i=`expr $$i + 1`; \
+ done; \
+ done
+
master-prepare: \
master-create \
master-download \
@@ -44,28 +110,32 @@
master-create:
@$(SHTOOL) echo -e "%B++ Creating working area ($(WORK)/)%b"
@$(SHTOOL) mkdir -f -p -m 775 $(WORK)/src/master
+ @$(SHTOOL) mkdir -f -p -m 775 $(WORK)/src/master-extra
@$(SHTOOL) mkdir -f -p -m 775 $(WORK)/tmp
@$(SHTOOL) mkdir -f -p -m 775 $(WORK)/bin
@$(SHTOOL) mkdir -f -p -m 775 $(WORK)/log
master-download:
@$(SHTOOL) echo -e "%B++ Downloading latest OpenPKG-CURRENT master source RPMs
($(WORK)/src/master/)%b"
- @rsync -rav --progress --rsh=ssh --delete $(CUR_SOURCE) $(WORK)/src/master/
+ @rsync -ra --rsh=ssh --delete --exclude "Makefile*" $(CUR_SOURCE)
$(WORK)/src/master/
+ @scp -q $(REL_INDEX) $(WORK)/src/master/00INDEX-release.rdf.bz2
+ @bunzip2 $(WORK)/src/master/00INDEX*.rdf.bz2
@for src in $(WORK)/src/master/*.nosrc.rpm; do \
base=`echo $$src | sed -e 's;^.*/\([^/][^/]*\)$$;\1;' -e
's;\.nosrc\.rpm$$;;'`; \
- if [ ! -f "$(WORK)/src/master/$$base.src.rpm" -a -f
"$(CUR_EXTRA)/$$base.src.rpm" ]; then \
+ if [ ! -f "$(WORK)/src/master-extra/$$base.src.rpm" -a -f
"$(CUR_EXTRA)/$$base.src.rpm" ]; then \
echo "$$base.src.rpm (no-source replacement)"; \
- cp "$(CUR_EXTRA)/$$base.src.rpm" $(WORK)/src/master/; \
+ rsync -a "$(CUR_EXTRA)/$$base.src.rpm"
"$(WORK)/src/master-extra/$$base.src.rpm"; \
fi; \
+ if [ ! -f "$(WORK)/src/master/$$base.src.rpm" -a -f
"$(WORK)/src/master-extra/$$base.src.rpm" ]; then \
+ ln "$(WORK)/src/master-extra/$$base.src.rpm"
"$(WORK)/src/master/$$base.src.rpm"; \
+ fi; \
done
- @scp $(REL_INDEX) $(WORK)/src/master/00INDEX-release.rdf.bz2
- @bunzip2 $(WORK)/src/master/00INDEX*.rdf.bz2
master-makefile:
@$(SHTOOL) echo -e "%B++ Generating Makefiles for build procedure
($(WORK)/src/master/Makefile*)%b"
@$(SRC2MAKE) --prefix=$(PREFIX) --user=$(USER) --group=$(GROUP) \
--srcdir=$(WORK)/src/master --tmpdir=$(WORK)/tmp
--outdir=$(WORK)/src/master \
- --classes=+CORE+BASE+PLUS+EVAL+JUNK --verbose
+ --classes=$(CLASSES) --verbose
master-status:
@$(SHTOOL) echo -e "%B++ Creating master status report%b"
@@ -78,8 +148,8 @@
echo . | awk '{ printf("%-15s %-15s %-10s %-4s %-3s %s\n", n, v, r, d, l, s);
}' \
n="Name" v="Version" r="Release" d="Dst" l="Rel" s="$$status"; \
echo "=============== =============== ========== ==== ===
=================================="; \
- for srpm in `(ls -1 $(WORK)/src/master/*.src.rpm; ls -1
$(WORK)/src/master/*.nosrc.rpm) | sort`; do \
- base=`echo "$$srpm" | sed -e 's;^$(WORK)/src/master/\(.*\)\.src\.rpm$$;\1;'
-e 's;^$(WORK)/src/master/\(.*\)\.nosrc\.rpm$$;\1;'`; \
+ for srpm in `ls -1 $(WORK)/src/master/*.src.rpm | sort`; do \
+ base=`echo "$$srpm" | sed -e
's;^$(WORK)/src/master/\(.*\)\.src\.rpm$$;\1;'`; \
eval `echo "$$base" | sed -e
's/^\(.*\)-\([^-][^-]*\)-\([^-][^-]*\)$$/name="\1"; version="\2"; release="\3";/'`; \
distrib=`$(PREFIX)/bin/rpm -qp --qf '%{DISTRIBUTION}' $$srpm | sed -e
's;^.*\[\(.*\)\].*;\1;'`; \
status=""; \
@@ -107,7 +177,6 @@
grep CORE $(WORK)/tmp/status.txt; cat $(WORK)/tmp/status.sep; \
grep BASE $(WORK)/tmp/status.txt; cat $(WORK)/tmp/status.sep; \
grep PLUS $(WORK)/tmp/status.txt; cat $(WORK)/tmp/status.sep; \
- grep PRIV $(WORK)/tmp/status.txt; cat $(WORK)/tmp/status.sep; \
grep EVAL $(WORK)/tmp/status.txt; cat $(WORK)/tmp/status.sep; \
grep JUNK $(WORK)/tmp/status.txt
@@ -121,6 +190,20 @@
# slave targets
#
+slave:
+ @$(SHTOOL) echo -e "%B++ STARTING SLAVE LOOP ($(HOSTNAME))%b"; \
+ cd $(WORK); PWD=`pwd`; export PWD; \
+ while [ 1 ]; do \
+ ./shtool echo -e "%B++ client [$(HOSTNAME)]: erasing OpenPKG
instrance%b"; \
+ $(MAKE) slave-erase; \
+ ./shtool echo -e "%B++ client [$(HOSTNAME)]: preparing build
environment%b"; \
+ $(MAKE) slave-prepare; \
+ ./shtool echo -e "%B++ client [$(HOSTNAME)]: try to build all
(remaining) packages%b"; \
+ $(MAKE) slave-build-check; \
+ ./shtool echo -e "%B++ client [$(HOSTNAME)]: sleeping (60s)%b"; \
+ sleep 60; \
+ done
+
slave-prepare:
@hostname=$(HOSTNAME); target=$(TARGET); \
$(SHTOOL) echo -e "%B++ Linking latest OpenPKG-CURRENT master source RPMs
($(WORK)/src/$$hostname-$$target/)%b"; \
@@ -140,11 +223,6 @@
for srpm in `ls -1 $(WORK)/src/master/*.src.rpm | sort`; do \
base=`echo "$$srpm" | sed -e
's;^$(WORK)/src/master/\(.*\)\.src\.rpm$$;\1;'`; \
ln $(WORK)/src/master/$$base.src.rpm $(WORK)/src/$$hostname-$$target/;
\
- done; \
- rm -f $(WORK)/src/$$hostname-$$target/*.nosrc.rpm; \
- for srpm in `ls -1 $(WORK)/src/master/*.nosrc.rpm | sort`; do \
- base=`echo "$$srpm" | sed -e
's;^$(WORK)/src/master/\(.*\)\.nosrc\.rpm$$;\1;'`; \
- ln $(WORK)/src/master/$$base.nosrc.rpm
$(WORK)/src/$$hostname-$$target/; \
done
slave-build:
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]