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]

Reply via email to