[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 27-Oct-2006 21:09:50 Branch: HEAD Handle: 2006102720095000 Modified files: openpkg-tools/cmd bf-mk.pl Log: too nice here because definition of make in bf.conf doubles nice level Summary: RevisionChanges Path 1.45+1 -1 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.44 -r1.45 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl14 Oct 2006 17:35:05 - 1.44 +++ openpkg-tools/cmd/bf-mk.pl27 Oct 2006 19:09:50 - 1.45 @@ -590,7 +590,7 @@ build-latest ) : ;; * ) package=build-$package ;; esac -( cd $target nice -20 %{slave.make} \ +( cd $target %{slave.make} \ LOG=%{shared.folder}/log/$HOST-$ARCH-$OS \ SRC=%{shared.folder}/src/$HOST-$ARCH-$OS \ DST=%{shared.folder}/dst/$HOST-$ARCH-$OS \ @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 27-Oct-2006 21:19:53 Branch: HEAD Handle: 2006102720195200 Modified files: openpkg-tools/cmd bf-mk.pl Log: make sure we pick our make Summary: RevisionChanges Path 1.46+1 -1 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.45 -r1.46 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl27 Oct 2006 19:09:50 - 1.45 +++ openpkg-tools/cmd/bf-mk.pl27 Oct 2006 19:19:52 - 1.46 @@ -921,7 +921,7 @@ hostname%{prefix}/bin/ghostname; ld ld; ln ln; -makenice -20 make; +makenice -20 %{prefix}/bin/make; rm rm; rsync %{prefix}/bin/rsync -v; sed %{prefix}/bin/sed; @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 14-Oct-2006 19:35:06 Branch: HEAD Handle: 2006101418350500 Modified files: openpkg-tools/cmd bf-mk.pl Log: buildfarm master support for changed ftp server layout Summary: RevisionChanges Path 1.44+17 -2 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.43 -r1.44 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl29 Sep 2006 19:31:36 - 1.43 +++ openpkg-tools/cmd/bf-mk.pl14 Oct 2006 17:35:05 - 1.44 @@ -274,7 +274,7 @@ sub createsharedstructure($) { my ($shared) = @_; -foreach my $dir (qw(bin ctl dst log src src/master src/master.norestriction tmp tmp/master)) { +foreach my $dir (qw(bin ctl dst log src src/master.mirror src/master src/master.norestriction tmp tmp/master)) { my $target = $shared . / . $dir; verbose(creating $target/); if (not -d $target) { @@ -315,7 +315,22 @@ # download sources and remove those to be skipped shtoolechoe(%B++ MASTER:$shared: download sources and remove those to be skipped%b); -system($rsync -rt --perms --chmod=ug+w,a+r --delete --exclude \Makefile*\ \$source\ \$shared/src/master/\) == 0 || die(cannot rsync source RPMs from \$source\ ($!)); +system($rsync -rt --perms --chmod=ug+w,a+r --delete --exclude \Makefile*\ \$source\ \$shared/src/master.mirror/\) == 0 || die(cannot rsync source RPMs from \$source.mirror\ ($!)); +unlink ($shared/src/master/*.src.rpm) || warn cannot unlink source RPMs from \$source\ ($!); +foreach my $package ($shared/src/master.mirror/*/*.src.rpm) { +next unless $package =~ m|^.*/([^/]+)/([^/]+)\.src\.rpm$|; +my $class; +($class, $package) = ($1, $2); +next unless ($classes =~ m|\+$class|); +my $source=$shared/src/master.mirror/$class/$package.src.rpm; +my $target=$shared/src/master/$package.src.rpm; +if (-f $source) { +link $source, $target || die cannot link \$source\ to \$target\; +} +else { +warn $source not available; +} +} foreach my $p (split(/ /, $skippkg)) { #FIXME obey name-version-release instead only unlinking for my $f ($shared/src/master/$p) { @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 29-Sep-2006 21:31:36 Branch: HEAD Handle: 2006092920313600 Modified files: openpkg-tools/cmd bf-mk.pl Log: use slave based configuration Summary: RevisionChanges Path 1.43+1 -1 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.42 -r1.43 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl26 Sep 2006 12:14:13 - 1.42 +++ openpkg-tools/cmd/bf-mk.pl29 Sep 2006 19:31:36 - 1.43 @@ -580,7 +580,7 @@ SRC=%{shared.folder}/src/$HOST-$ARCH-$OS \ DST=%{shared.folder}/dst/$HOST-$ARCH-$OS \ TMP=%{workbench.ltmp}/$HOST-$ARCH-$OS \ -EXEC_BFDB=%{slave.ssh} [EMAIL PROTECTED] %{master.bfdb} \ +EXEC_BFDB=%{slave.bfdb} \ EXEC_HOST=$HOST \ $package \ ) @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 26-Sep-2006 13:57:53 Branch: HEAD Handle: 2006092612575300 Modified files: openpkg-tools/cmd bf-mk.pl Log: update and correct documentation Summary: RevisionChanges Path 1.39+8 -6 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.38 -r1.39 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl26 Sep 2006 11:56:10 - 1.38 +++ openpkg-tools/cmd/bf-mk.pl26 Sep 2006 11:57:53 - 1.39 @@ -922,7 +922,7 @@ # OpenPKG instance on SLAVES doing the build # RE using /openpkg # -prefix /bf/slaves; +prefix /bf/workbench; openpkg %{prefix}/bin/openpkg; rpm %{openpkg} rpm; @@ -1052,14 +1052,14 @@ Install the MASTER INSTANCE -a) on a host with no slave instance +a) on a host with no slave instance or master and slave using two independent instances # sh openpkg-*-*.src.sh --prefix=/bf --user=bf --group=bf --tag=bf # sh openpkg-*-*-*-*.sh # su - bf $ openpkg build -D with_bf_master=yes openpkg-tools | sh -b) on a host with a slave instance +b) on a host with master and slave sharing a single instance # sh openpkg-*-*.src.sh --prefix=/bf --user=bf --group=bf --tag=bf # sh openpkg-*-*-*-*.sh @@ -1082,10 +1082,12 @@ # su - openpkg $ echo 'openpkg_rc_all=yes' ~/etc/rc.conf -Create WORKER ACCOUNT +Create WORKER ACCOUNT on every host participating in the Buildfarm +You may create a single shared account using NIS or similar. Details are actually specific to the Unix system being used. Create a user worker with primary group worker and homedir ~worker +You may create a single shared homedir using NFS or similar. Initialize MASTER INSTANCE and adjust configuration verbose @@ -1105,9 +1107,9 @@ # chgrp worker /bf/master/var/openpkg-tools/bf # chmod 775/bf/master/var/openpkg-tools/bf -Make the WORKER ACCOUNT a manager of the SLAVE INSTANCE +Make the WORKER ACCOUNT a manager of the WORKBENCH INSTANCE -# su - bf +# su - openpkg $ echo worker ~/etc/openpkg/managers Setup WORKER build environment on shared folder @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 26-Sep-2006 14:01:50 Branch: HEAD Handle: 2006092613015000 Modified files: openpkg-tools/cmd bf-mk.pl Log: get rid of hardcoded data Summary: RevisionChanges Path 1.41+2 -2 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.40 -r1.41 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl26 Sep 2006 12:00:25 - 1.40 +++ openpkg-tools/cmd/bf-mk.pl26 Sep 2006 12:01:50 - 1.41 @@ -575,12 +575,12 @@ build-latest ) : ;; * ) package=build-$package ;; esac -( cd $target nice -20 /usr/opkg/bin/make \ +( cd $target nice -20 %{slave.make} \ LOG=%{shared.folder}/log/$HOST-$ARCH-$OS \ SRC=%{shared.folder}/src/$HOST-$ARCH-$OS \ DST=%{shared.folder}/dst/$HOST-$ARCH-$OS \ TMP=%{workbench.ltmp}/$HOST-$ARCH-$OS \ -EXEC_BFDB=/usr/opkg/bin/ssh [EMAIL PROTECTED] /v/rel/sw/bin/openpkg bf-db \ +EXEC_BFDB=%{slave.ssh} [EMAIL PROTECTED] %{master.bfdb} \ EXEC_HOST=$HOST \ $package \ ) @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 26-Sep-2006 13:56:10 Branch: HEAD Handle: 2006092612561000 Modified files: openpkg-tools/cmd bf-mk.pl Log: improve environment handling, ssh/rsync must be in PATH for remote slaves Summary: RevisionChanges Path 1.38+11 -2 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.37 -r1.38 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl22 Sep 2006 08:02:07 - 1.37 +++ openpkg-tools/cmd/bf-mk.pl26 Sep 2006 11:56:10 - 1.38 @@ -382,6 +382,16 @@ if [ .$HOME != .%{shared.folder} ]; then echo .bashrc:ERROR: HOME does not match %{shared.folder} fi +if [ -x %{slave.openpkg} ]; then +eval `%{slave.openpkg} rc --eval all env` +export PS1=[EMAIL PROTECTED] | %{slave.sed} -e 's;\..*$;;'`\$ +else +if [ -x %{master.openpkg} ]; then +eval `%{master.openpkg} rc --eval all env` +export PS1=[EMAIL PROTECTED] | %{master.sed} -e 's;\..*$;;'`\$ +alias bf=%{master.ssh} +fi +fi export PATH=%{shared.folder}/bin:$PATH unset TMOUT EOT @@ -393,8 +403,6 @@ my ($cfg) = @_; my $txt = 'EOT'; . .bashrc -export PS1=[EMAIL PROTECTED] | %{slave.sed} -e 's;\..*$;;'`\$ -alias bf=%{master.ssh} echo Welcome to the OpenPKG build farm %{shared.folder} echo echo connect to build-farm on slave via ssh(1) @@ -888,6 +896,7 @@ # RE using OpenPKG instance at /usr/opkg # prefix /bf/driver; +openpkg %{prefix}/bin/openpkg; cp cp; gcc %{prefix}/bin/gcc; hostname%{prefix}/bin/ghostname; @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 26-Sep-2006 14:14:13 Branch: HEAD Handle: 2006092613141300 Modified files: openpkg-tools/cmd bf-mk.pl Log: fix rsync pathes by applying proper slash Summary: RevisionChanges Path 1.42+5 -5 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.41 -r1.42 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl26 Sep 2006 12:01:50 - 1.41 +++ openpkg-tools/cmd/bf-mk.pl26 Sep 2006 12:14:13 - 1.42 @@ -523,12 +523,12 @@ packages=$@ fi -# prepare SRPMs for SLAVE +# prepare SRPMs for remote SLAVE if [ .%{slave.remote} != . ]; then %{slave.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.folder}: downloading from master%b echo downloading sources from remote master %{slave.remote}/src/master -%{slave.rsync} -ar --perms --chmod=ug+w,a+r %{slave.remote}/src/master %{shared.folder}/src/$HOST-$ARCH-$OS \ -|| die downloading sources, error=$? #FIXME --delete +%{slave.rsync} -ar --delete --perms --chmod=ug+w,a+r %{slave.remote}/src/master/ %{shared.folder}/src/master/ \ +|| die downloading sources, error=$? fi # prepare SRPMs for SLAVE @@ -588,9 +588,9 @@ if [ .%{slave.remote} != . ]; then echo uploading binaries to remote master %{slave.remote}/dst/$HOST-$ARCH-$OS -%{slave.rsync} -ar %{shared.folder}/dst/$HOST-$ARCH-$OS %{slave.remote}/dst/$HOST-$ARCH-$OS/ #FIXME --delete +%{slave.rsync} -ar --delete %{shared.folder}/dst/$HOST-$ARCH-$OS/ %{slave.remote}/dst/$HOST-$ARCH-$OS/ echo uploading logs to remote master %{slave.remote}/dst/$HOST-$ARCH-$OS -%{slave.rsync} -ar %{shared.folder}/log/$HOST-$ARCH-$OS %{slave.remote}/log/$HOST-$ARCH-$OS/ #FIXME --delete +%{slave.rsync} -ar --delete %{shared.folder}/log/$HOST-$ARCH-$OS/ %{slave.remote}/log/$HOST-$ARCH-$OS/ fi } @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 22-Sep-2006 09:56:20 Branch: HEAD Handle: 2006092208561900 Modified files: openpkg-tools/cmd bf-mk.pl Log: fix bug wrong comparison in slave command Summary: RevisionChanges Path 1.35+1 -1 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.34 -r1.35 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl21 Sep 2006 15:25:36 - 1.34 +++ openpkg-tools/cmd/bf-mk.pl22 Sep 2006 07:56:19 - 1.35 @@ -574,7 +574,7 @@ ) done -if [ .%{slave.remote} = . ]; then +if [ .%{slave.remote} != . ]; then echo uploading binaries to remote master %{slave.remote}/dst/$HOST-$ARCH-$OS %{slave.rsync} -ar %{shared.folder}/dst/$HOST-$ARCH-$OS %{slave.remote}/dst/$HOST-$ARCH-$OS/ #FIXME --delete echo uploading logs to remote master %{slave.remote}/dst/$HOST-$ARCH-$OS @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 22-Sep-2006 10:00:11 Branch: HEAD Handle: 2006092209001000 Modified files: openpkg-tools/cmd bf-mk.pl Log: update bf-mk documentation to show managers must be configured and for the worker account ssh must be used to get a pseudo-tty for screen Summary: RevisionChanges Path 1.36+10 -5 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.35 -r1.36 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl22 Sep 2006 07:56:19 - 1.35 +++ openpkg-tools/cmd/bf-mk.pl22 Sep 2006 08:00:10 - 1.36 @@ -1096,6 +1096,11 @@ # chgrp worker /bf/master/var/openpkg-tools/bf # chmod 775/bf/master/var/openpkg-tools/bf +Make the WORKER ACCOUNT a manager of the SLAVE INSTANCE + +# su - bf +$ echo worker ~/etc/openpkg/managers + Setup WORKER build environment on shared folder # su - worker @@ -1108,24 +1113,24 @@ Initialize screen -# su - worker +# ssh [EMAIL PROTECTED] $ worker Run MASTER once -# su - worker +# ssh [EMAIL PROTECTED] $ worker select the MASTER screen $ master -1 -run SLAVE in a loop +Run SLAVE in a loop -# su - worker +# ssh [EMAIL PROTECTED] $ worker reattaches to screen, select SLAVE or create a new screen $ slave -l -access database +Access the database through the web user interface # su - bf $ vi ~/etc/apache/apache.conf @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 22-Sep-2006 10:02:07 Branch: HEAD Handle: 2006092209020700 Modified files: openpkg-tools/cmd bf-mk.pl Log: use local controlled permissions when transferring data using rsync Summary: RevisionChanges Path 1.37+3 -3 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.36 -r1.37 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl22 Sep 2006 08:00:10 - 1.36 +++ openpkg-tools/cmd/bf-mk.pl22 Sep 2006 08:02:07 - 1.37 @@ -315,7 +315,7 @@ # download sources and remove those to be skipped shtoolechoe(%B++ MASTER:$shared: download sources and remove those to be skipped%b); -system($rsync -rt --delete --exclude \Makefile*\ \$source\ \$shared/src/master/\) == 0 || die(cannot rsync source RPMs from \$source\ ($!)); +system($rsync -rt --perms --chmod=ug+w,a+r --delete --exclude \Makefile*\ \$source\ \$shared/src/master/\) == 0 || die(cannot rsync source RPMs from \$source\ ($!)); foreach my $p (split(/ /, $skippkg)) { #FIXME obey name-version-release instead only unlinking for my $f ($shared/src/master/$p) { @@ -326,7 +326,7 @@ # download sources with norestriction to replace .nosrc.rpm shtoolechoe(%B++ MASTER:$shared: download sources with norestriction to replace .nosrc.rpm%b); if ($nosource) { -system($rsync -rt --delete --exclude \Makefile*\ \$nosource\ \$shared/src/master.norestriction/\) == 0 || die(cannot rsync nosource RPMs from \$nosource\ ($!)); +system($rsync -rt --perms --chmod=ug+w,a+r --delete --exclude \Makefile*\ \$nosource\ \$shared/src/master.norestriction/\) == 0 || die(cannot rsync nosource RPMs from \$nosource\ ($!)); } foreach my $package ($shared/src/master/*.nosrc.rpm) { unlink $package || die cannot erase \$package\; @@ -523,7 +523,7 @@ %{slave.rm} -f $target/*.src.rpm if [ .%{slave.remote} != . ]; then echo downloading sources from remote master %{slave.remote}/src/master -%{slave.rsync} -ar %{slave.remote}/src/master %{shared.folder}/src/$HOST-$ARCH-$OS #FIXME --delete +%{slave.rsync} -ar --perms --chmod=ug+w,a+r %{slave.remote}/src/master %{shared.folder}/src/$HOST-$ARCH-$OS #FIXME --delete fi for srpm in `cd $source ls -1 *.src.rpm | sort`; do %{slave.ln} $source/$srpm $target/ @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl src2make.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 21-Sep-2006 17:11:11 Branch: HEAD Handle: 200609211600 Modified files: openpkg-tools/cmd bf-mk.pl src2make.pl Log: remove Buildfarm dependency to sudo(8), the SetUID wrapper [29743] is a replacement Summary: RevisionChanges Path 1.30+2 -14 openpkg-tools/cmd/bf-mk.pl 1.20+6 -14 openpkg-tools/cmd/src2make.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.29 -r1.30 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl20 Sep 2006 14:29:38 - 1.29 +++ openpkg-tools/cmd/bf-mk.pl21 Sep 2006 15:11:11 - 1.30 @@ -483,7 +483,6 @@ DST=%{shared.prefix}/dst/$HOST-$ARCH-$OS \ TMP=%{slaves.ltmp}/$HOST-$ARCH-$OS \ EXEC_BFDB=%{slaves.bfdb} \ -EXEC_ROOT=%{driver.sudo} \ EXEC_HOST=$HOST \ list \ ) @@ -498,7 +497,7 @@ echo instance already stripped to baseline, nothing to erase else echo erasing $surplus -%{driver.sudo} %{slaves.rpm} -e $surplus +%{slaves.rpm} -e $surplus surplus=`%{slaves.rpm} -qa | sed -e 's;^openpkg-[^-][^-]*-[^-][^-]*$;;' -e 's;^gpg-pubkey-[^-][^-]*-[^-][^-]*$;;'` if [ .$surplus = . ]; then echo instance successfully stripped to baseline @@ -566,7 +565,6 @@ DST=/v/openpkg/bf/dst/$HOST-$ARCH-$OS \ TMP=/ltmp/openpkg-bf/$HOST-$ARCH-$OS \ EXEC_BFDB=/usr/opkg/bin/ssh [EMAIL PROTECTED] /v/rel/sw/bin/openpkg bf-db \ -EXEC_ROOT=/usr/opkg/bin/sudo \ EXEC_HOST=$HOST \ $package \ ) @@ -904,8 +902,6 @@ sh /bin/sh; ssh ssh; shtool shtool; -sudosudo; -sudoers /etc/sudoers; }; EOT @@ -1065,13 +1061,6 @@ chgrp worker /bf/master/var/openpkg-tools/bf chmod 775/bf/master/var/openpkg-tools/bf -Setup DRIVER - -su - root -/bf/driver/sbin/visudo -# User privilege specification -worker ALL=(ALL) NOPASSWD: ALL - let WORKER build SLAVES environment on SHARED directory from MASTER config su - worker /bf/master/bin/openpkg bf-mk @@ -1179,7 +1168,7 @@ --user=${CMD} --group=${CMD} %driver -# openpkg build -Zu make binutils gcc sudo shtool openssh | sh build2obmtool.sh +# openpkg build -Zu make binutils gcc shtool openssh | sh build2obmtool.sh echo boot/build ${NODE} %${CMD} PREFIX=/bf/${CMD} @install openpkg-2.2.2-2.2.2 \ @@ -1191,7 +1180,6 @@ @install binutils-2.14-2.2.0 @install gcc-3.4.2-2.2.0 @install fsl-1.5.0-2.2.0 -@install sudo-1.6.8p1-2.2.2 @install perl-5.8.5-2.2.1 @install shtool-2.0.1-2.2.0 @install openssl-0.9.7d-2.2.0 @@ . patch -p0 '@@ .' Index: openpkg-tools/cmd/src2make.pl $ cvs diff -u -r1.19 -r1.20 src2make.pl --- openpkg-tools/cmd/src2make.pl 21 Jun 2006 07:48:56 - 1.19 +++ openpkg-tools/cmd/src2make.pl 21 Sep 2006 15:11:11 - 1.20 @@ -498,8 +498,6 @@ TMP= *\n . RPM= *\n . RPM_FLAGS = *\n . - EXEC_ROOT = *\n . - EXEC_USER = *\n . EXEC_BFDB = *\n . TERM_B = *\n . TERM_N = *\n . @@ -511,12 +509,10 @@ TERM_B=\\$(TERM_B)\ TERM_N=\\$(TERM_N)\ \\\n . LOG=\\$(LOG)\ SRC=\\$(SRC)\ DST=\\$(DST)\ TMP=\\$(TMP)n . RPM=\\$(RPM)\ RPM_FLAGS=\\$(RPM_FLAGS)\ \\\n . -EXEC_ROOT=\\$(EXEC_ROOT)\ EXEC_USER=\\$(EXEC_USER)n . EXEC_BFDB=\\$(EXEC_BFDB)\\n . \n . - # RPM read-only/read-write operations\n . - RPM_RD = MAKEFLAGS=\\ \$(EXEC_USER) \$(RPM) \$(RPM_FLAGS)\n . - RPM_RW = MAKEFLAGS=\\ \$(EXEC_ROOT) \$(RPM) \$(RPM_FLAGS)\n . + # RPM operations\n . + RPMRUN = MAKEFLAGS=\\ \$(RPM) \$(RPM_FLAGS)\n . \n . # default target\n . default:\n . @@ -728,10 +724,10 @@ $MF .= \t-\$(EXEC_BFDB) -i \$(HOSTNAME)-\$(PLATFORM) -p $pkg begin\n; $MF .= \t-rm -rf \$(TMP)/SRC/* \$(TMP)/TMP/* 2/dev/null\n; $MF .= [EMAIL
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 21-Sep-2006 17:22:04 Branch: HEAD Handle: 2006092116220400 Modified files: openpkg-tools/cmd bf-mk.pl Log: do not use hardcoded pathes Summary: RevisionChanges Path 1.32+4 -4 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.31 -r1.32 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl21 Sep 2006 15:19:55 - 1.31 +++ openpkg-tools/cmd/bf-mk.pl21 Sep 2006 15:22:04 - 1.32 @@ -560,10 +560,10 @@ * ) package=build-$package ;; esac ( cd $target nice -20 /usr/opkg/bin/make \ -LOG=/v/openpkg/bf/log/$HOST-$ARCH-$OS \ -SRC=/v/openpkg/bf/src/$HOST-$ARCH-$OS \ -DST=/v/openpkg/bf/dst/$HOST-$ARCH-$OS \ -TMP=/ltmp/openpkg-bf/$HOST-$ARCH-$OS \ +LOG=%{shared.folder}/log/$HOST-$ARCH-$OS \ +SRC=%{shared.folder}/src/$HOST-$ARCH-$OS \ +DST=%{shared.folder}/dst/$HOST-$ARCH-$OS \ +TMP=%{workbench.ltmp}/$HOST-$ARCH-$OS \ EXEC_BFDB=/usr/opkg/bin/ssh [EMAIL PROTECTED] /v/rel/sw/bin/openpkg bf-db \ EXEC_HOST=$HOST \ $package \ @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 21-Sep-2006 17:24:32 Branch: HEAD Handle: 2006092116243200 Modified files: openpkg-tools/cmd bf-mk.pl Log: relocate statements from .bashrc to .bash_login to allow remote slaves to execute commands on a master which has no slave instance on the same machine Summary: RevisionChanges Path 1.33+2 -2 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.32 -r1.33 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl21 Sep 2006 15:22:04 - 1.32 +++ openpkg-tools/cmd/bf-mk.pl21 Sep 2006 15:24:32 - 1.33 @@ -383,8 +383,6 @@ echo .bashrc:ERROR: HOME does not match %{shared.folder} fi export PATH=%{shared.folder}/bin:$PATH -export PS1=[EMAIL PROTECTED] | %{slave.sed} -e 's;\..*$;;'`\$ -alias bf=%{master.ssh} unset TMOUT EOT return subst($cfg, $txt); @@ -395,6 +393,8 @@ my ($cfg) = @_; my $txt = 'EOT'; . .bashrc +export PS1=[EMAIL PROTECTED] | %{slave.sed} -e 's;\..*$;;'`\$ +alias bf=%{master.ssh} echo Welcome to the OpenPKG build farm %{shared.folder} echo echo connect to build-farm on slave via ssh(1) @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 21-Sep-2006 17:25:36 Branch: HEAD Handle: 2006092116253600 Modified files: openpkg-tools/cmd bf-mk.pl Log: introduce support for master/slave relationship with no dependency to NFS Summary: RevisionChanges Path 1.34+18 -0 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.33 -r1.34 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl21 Sep 2006 15:24:32 - 1.33 +++ openpkg-tools/cmd/bf-mk.pl21 Sep 2006 15:25:36 - 1.34 @@ -521,6 +521,10 @@ target=%{shared.folder}/src/$HOST-$ARCH-$OS %{slave.cp} $source/Makefile* $target/ %{slave.rm} -f $target/*.src.rpm +if [ .%{slave.remote} != . ]; then +echo downloading sources from remote master %{slave.remote}/src/master +%{slave.rsync} -ar %{slave.remote}/src/master %{shared.folder}/src/$HOST-$ARCH-$OS #FIXME --delete +fi for srpm in `cd $source ls -1 *.src.rpm | sort`; do %{slave.ln} $source/$srpm $target/ done @@ -569,6 +573,13 @@ $package \ ) done + +if [ .%{slave.remote} = . ]; then +echo uploading binaries to remote master %{slave.remote}/dst/$HOST-$ARCH-$OS +%{slave.rsync} -ar %{shared.folder}/dst/$HOST-$ARCH-$OS %{slave.remote}/dst/$HOST-$ARCH-$OS/ #FIXME --delete +echo uploading logs to remote master %{slave.remote}/dst/$HOST-$ARCH-$OS +%{slave.rsync} -ar %{shared.folder}/log/$HOST-$ARCH-$OS %{slave.remote}/log/$HOST-$ARCH-$OS/ #FIXME --delete +fi } cmd_support () @@ -884,11 +895,18 @@ ln ln; makenice -20 make; rm rm; +rsync %{prefix}/bin/rsync -v; sed %{prefix}/bin/sed; sh /bin/sh; ssh %{prefix}/bin/ssh; shtool %{prefix}/bin/shtool; bfdb%{slave.ssh} [EMAIL PROTECTED] %{master.bfdb}; + +# Remote location where slave pulls sources from and pushes binaries and logs to +# Keep empty for local machine and local network (NFS) setups +# RE using +# +remote [EMAIL PROTECTED]:%{shared.folder} }; workbench { @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 20-Sep-2006 16:29:39 Branch: HEAD Handle: 2006092015293800 Modified files: openpkg-tools/cmd bf-mk.pl Log: DSA keys must be 1024 bits Summary: RevisionChanges Path 1.29+1 -1 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.28 -r1.29 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl1 Jan 2006 14:04:48 - 1.28 +++ openpkg-tools/cmd/bf-mk.pl20 Sep 2006 14:29:38 - 1.29 @@ -363,7 +363,7 @@ # generate server DSA (SSH2) key my $key = $shared/.ssh/id_dsa; if ( ! -f $key or ! -s $key ) { -system($sshkeygen -t dsa -b 2048 . +system($sshkeygen -t dsa . -f $key . -N '' -C \(WORKER:$shared)\ 12) == 0 || die ssh-keygen failed to create \$key\ ($!); } @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 28-Apr-2005 13:42:19 Branch: HEAD Handle: 2005042812421900 Modified files: openpkg-tools/cmd bf-mk.pl Log: xterm understands same escape sequence for setting window title like screen does Summary: RevisionChanges Path 1.26+3 -3 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.25 -r1.26 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl24 Mar 2005 11:21:11 - 1.25 +++ openpkg-tools/cmd/bf-mk.pl28 Apr 2005 11:42:19 - 1.26 @@ -430,7 +430,7 @@ #main() HOST=`%{driver.hostname} | %{driver.sed} -e 's;\..*$;;'` -if [ .$TERM = .screen ]; then %{driver.shtool} echo -n k$HOST [MASTER]\\; fi +if [ .$TERM = .screen -o .$TERM = .xterm ]; then %{driver.shtool} echo -n k$HOST [MASTER]\\; fi exec %{master.bfmk} $@ EOT @@ -662,7 +662,7 @@ ARCH=`%{slaves.rpm} --eval '%{l_host_arch}'`; [ .$ARCH = . ] die ARCH detection failed OS=`%{slaves.rpm} --eval '%{l_host_os}'`; [ .$OS = . ] die OS detection failed TAG=`%{slaves.rpm} --eval '%{l_tag}'`; [ .$TAG = . ] die TAG detection failed -if [ .$TERM = .screen ]; then %{driver.shtool} echo -n k$HOST-$ARCH-$OS\\; fi +if [ .$TERM = .screen -o .$TERM = .xterm ]; then %{driver.shtool} echo -n k$HOST-$ARCH-$OS\\; fi cmd= if [ .$1 = .-s -o .$1 = .--support ]; then shift; cmd=support; fi @@ -761,7 +761,7 @@ #main() HOST=`%{driver.hostname} | %{driver.sed} -e 's;\..*$;;'` -if [ .$TERM = .screen ]; then %{driver.shtool} echo -n k$HOST [WORKER]\\; fi +if [ .$TERM = .screen -o .$TERM = .xterm ]; then %{driver.shtool} echo -n k$HOST [WORKER]\\; fi cmd= if [ .$1 = .-a -o .$1 = .--attach ]; then shift; cmd=attach; fi @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl src2make.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 19-Feb-2005 00:00:57 Branch: HEAD Handle: 2005021823005600 Modified files: openpkg-tools/cmd bf-mk.pl src2make.pl Log: shift erase logic from Makefile into slave and make it more picky and robust Summary: RevisionChanges Path 1.24+13 -13 openpkg-tools/cmd/bf-mk.pl 1.13+0 -6 openpkg-tools/cmd/src2make.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.23 -r1.24 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl15 Feb 2005 15:34:54 - 1.23 +++ openpkg-tools/cmd/bf-mk.pl18 Feb 2005 23:00:56 - 1.24 @@ -494,19 +494,19 @@ { # erase packages from SLAVE OpenPKG instance %{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: erase packages from SLAVE OpenPKG instance%b -source=%{shared.prefix}/src/master -target=%{shared.prefix}/src/$HOST-$ARCH-$OS -%{driver.cp} $source/Makefile* $target/ -( cd $target %{driver.make} \ -LOG=%{shared.prefix}/log/$HOST-$ARCH-$OS \ -SRC=%{shared.prefix}/src/$HOST-$ARCH-$OS \ -DST=%{shared.prefix}/dst/$HOST-$ARCH-$OS \ -TMP=%{slaves.ltmp}/$HOST-$ARCH-$OS \ -EXEC_BFDB=%{slaves.bfdb} \ -EXEC_ROOT=%{driver.sudo} \ -EXEC_HOST=$HOST \ -erase \ -) +surplus=`%{slaves.rpm} -qa | sed -e 's;^openpkg-[^-][^-]*-[^-][^-]*$;;' -e 's;^gpg-pubkey-[^-][^-]*-[^-][^-]*$;;'` +if [ .$surplus = . ]; then +echo instance already stripped to baseline, nothing to erase +else +echo erasing $surplus +%{driver.sudo} %{slaves.rpm} -e $surplus +surplus=`%{slaves.rpm} -qa | sed -e 's;^openpkg-[^-][^-]*-[^-][^-]*$;;' -e 's;^gpg-pubkey-[^-][^-]*-[^-][^-]*$;;'` +if [ .$surplus = . ]; then +echo instance successfully stripped to baseline +else +die some unwanted crap remains, need operator help +fi +fi } cmd_oneshot () @@ . patch -p0 '@@ .' Index: openpkg-tools/cmd/src2make.pl $ cvs diff -u -r1.12 -r1.13 src2make.pl --- openpkg-tools/cmd/src2make.pl 18 Feb 2005 12:32:31 - 1.12 +++ openpkg-tools/cmd/src2make.pl 18 Feb 2005 23:00:56 - 1.13 @@ -929,12 +929,6 @@ \trm -f Makefile.log.* /dev/null 21 || true\n . \n; -$MF .= # erase\n . - erase:\n . - [EMAIL PROTECTED](PREFIX)/bin/openpkg rpm -qa | sed -e '/^openpkg-[0-9].*/d' -e '/^gpg-pubkey-.*/d'`\\\n . - \t[ \.\$\$surplus\ = . ] || \$(EXEC_ROOT) \$(PREFIX)/bin/openpkg rpm -e \$\$surplus\n . - \n; - verbose(writing Makefile); $mf = new IO::File $outdir/Makefile || die unable to create output '$outdir/Makefile'; @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 15-Feb-2005 15:31:31 Branch: HEAD Handle: 2005021514313000 Modified files: openpkg-tools/cmd bf-mk.pl Log: add command line option to slave allowing to erase packages from OpenPKG instance Summary: RevisionChanges Path 1.21+23 -14 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.20 -r1.21 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl11 Feb 2005 20:23:23 - 1.20 +++ openpkg-tools/cmd/bf-mk.pl15 Feb 2005 14:31:30 - 1.21 @@ -471,10 +471,27 @@ %{driver.shtool} mkdir -f -m 775 $target || die cannot create directory \$target\ } -cmd_oneshot () +cmd_erase () { -createslavestructure +# erase packages from SLAVE OpenPKG instance +%{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: erase packages from SLAVE OpenPKG instance%b +source=%{shared.prefix}/src/master +target=%{shared.prefix}/src/$HOST-$ARCH-$OS +%{driver.cp} $source/Makefile* $target/ +( cd $target %{driver.make} \ +LOG=%{shared.prefix}/log/$HOST-$ARCH-$OS \ +SRC=%{shared.prefix}/src/$HOST-$ARCH-$OS \ +DST=%{shared.prefix}/dst/$HOST-$ARCH-$OS \ +TMP=%{slaves.ltmp}/$HOST-$ARCH-$OS \ +EXEC_BFDB=%{slaves.bfdb} \ +EXEC_ROOT=%{driver.sudo} \ +EXEC_HOST=$HOST \ +erase \ +) +} +cmd_oneshot () +{ # prepare SRPMs for SLAVE %{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: prepare SRPMs for SLAVE%b source=%{shared.prefix}/src/master @@ -509,18 +526,7 @@ fi done -# erase packages from SLAVE OpenPKG instance -%{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: erase packages from SLAVE OpenPKG instance%b -( cd $target %{driver.make} \ -LOG=%{shared.prefix}/log/$HOST-$ARCH-$OS \ -SRC=%{shared.prefix}/src/$HOST-$ARCH-$OS \ -DST=%{shared.prefix}/dst/$HOST-$ARCH-$OS \ -TMP=%{slaves.ltmp}/$HOST-$ARCH-$OS \ -EXEC_BFDB=%{slaves.bfdb} \ -EXEC_ROOT=%{driver.sudo} \ -EXEC_HOST=$HOST \ -erase \ -) +cmd_erase # SLAVE building packages %{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: SLAVE building packages%b @@ -587,6 +593,7 @@ echo -H|helpprint out this usage page echo -A|amend amend slave packages echo -s|support set support grade + echo -e|erase erase packages from OpenPKG instance echo Notes on slave mode echo with -[1l] the application executes the SLAVE role echo To reconfigure settings, change bf.conf on the MASTER @@ -634,6 +641,7 @@ cmd= if [ .$1 = .-s -o .$1 = .--support ]; then shift; cmd=support; fi +if [ .$1 = .-e -o .$1 = .--erase ]; then shift; cmd=erase; fi if [ .$1 = .-1 -o .$1 = .--oneshot ]; then shift; cmd=oneshot; fi if [ .$1 = .-l -o .$1 = .--loop ];then shift; cmd=loop; fi if [ .$1 = .-A -o .$1 = .--amend ]; then shift; cmd=amend; fi @@ -641,6 +649,7 @@ if [ .$cmd = .help ]; then usage; fi if [ .$cmd = . ]; then usage ERROR; fi +createslavestructure cmd_$cmd $@ exit 1 EOT @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl src2make.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 15-Feb-2005 16:25:48 Branch: HEAD Handle: 2005021515254800 Modified files: openpkg-tools/cmd bf-mk.pl src2make.pl Log: add command line option to slave allowing to list available package targets and fix src2make to provide proper list targets Summary: RevisionChanges Path 1.22+21 -0 openpkg-tools/cmd/bf-mk.pl 1.10+9 -1 openpkg-tools/cmd/src2make.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.21 -r1.22 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl15 Feb 2005 14:31:30 - 1.21 +++ openpkg-tools/cmd/bf-mk.pl15 Feb 2005 15:25:48 - 1.22 @@ -471,6 +471,25 @@ %{driver.shtool} mkdir -f -m 775 $target || die cannot create directory \$target\ } +cmd_list () +{ +# list package targets available to SLAVE +%{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: list package targets available to SLAVE%b +source=%{shared.prefix}/src/master +target=%{shared.prefix}/src/$HOST-$ARCH-$OS +%{driver.cp} $source/Makefile* $target/ +( cd $target %{driver.make} \ +LOG=%{shared.prefix}/log/$HOST-$ARCH-$OS \ +SRC=%{shared.prefix}/src/$HOST-$ARCH-$OS \ +DST=%{shared.prefix}/dst/$HOST-$ARCH-$OS \ +TMP=%{slaves.ltmp}/$HOST-$ARCH-$OS \ +EXEC_BFDB=%{slaves.bfdb} \ +EXEC_ROOT=%{driver.sudo} \ +EXEC_HOST=$HOST \ +list \ +) +} + cmd_erase () { # erase packages from SLAVE OpenPKG instance @@ -594,6 +613,7 @@ echo -A|amend amend slave packages echo -s|support set support grade echo -e|erase erase packages from OpenPKG instance + echo -L|listlist package targets available echo Notes on slave mode echo with -[1l] the application executes the SLAVE role echo To reconfigure settings, change bf.conf on the MASTER @@ -642,6 +662,7 @@ cmd= if [ .$1 = .-s -o .$1 = .--support ]; then shift; cmd=support; fi if [ .$1 = .-e -o .$1 = .--erase ]; then shift; cmd=erase; fi +if [ .$1 = .-L -o .$1 = .--list ];then shift; cmd=list; fi if [ .$1 = .-1 -o .$1 = .--oneshot ]; then shift; cmd=oneshot; fi if [ .$1 = .-l -o .$1 = .--loop ];then shift; cmd=loop; fi if [ .$1 = .-A -o .$1 = .--amend ]; then shift; cmd=amend; fi @@ . patch -p0 '@@ .' Index: openpkg-tools/cmd/src2make.pl $ cvs diff -u -r1.9 -r1.10 src2make.pl --- openpkg-tools/cmd/src2make.pl 4 Feb 2005 14:11:25 - 1.9 +++ openpkg-tools/cmd/src2make.pl 15 Feb 2005 15:25:48 - 1.10 @@ -656,7 +656,15 @@ $MF .= sprintf(%-30s %s\n, list-$name-$V:, list-$name-.$PMV-{$name}); push(@MFTL, list-$name-$V); } -#$MF .= \n; +$MF .= \n; + +$MF .= # list (print) individual-version-release\n; +foreach my $name (sort(keys(%{$PMV}))) { +my $V = $PMV-{$name}; +$MF .= sprintf([EMAIL PROTECTED] %s\n, list-$name-$V:, $name-$V); +push(@MFTL, list-$name-$V); +} +$MF .= \n; # name [op vers] # (name, vers) @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 15-Feb-2005 16:34:54 Branch: HEAD Handle: 2005021515345400 Modified files: openpkg-tools/cmd bf-mk.pl Log: allow slave to specify package target to be build Summary: RevisionChanges Path 1.23+9 -3 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.22 -r1.23 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl15 Feb 2005 15:25:48 - 1.22 +++ openpkg-tools/cmd/bf-mk.pl15 Feb 2005 15:34:54 - 1.23 @@ -511,6 +511,12 @@ cmd_oneshot () { +if [ .$1 = . ]; then +package=try-build-latest +else +package=build-$1 +fi + # prepare SRPMs for SLAVE %{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: prepare SRPMs for SLAVE%b source=%{shared.prefix}/src/master @@ -557,7 +563,7 @@ EXEC_BFDB=%{slaves.bfdb} \ EXEC_ROOT=%{driver.sudo} \ EXEC_HOST=$HOST \ -try-build-latest \ +$package \ ) } @@ -607,7 +613,7 @@ ( echo $0:$level Usage: $0 [options] echo Available options: - echo -1|oneshot run slave once + echo -1|oneshot [pkg] run slave once echo -l|looprun slave in a loop echo -H|helpprint out this usage page echo -A|amend amend slave packages @@ -628,7 +634,7 @@ round=1 while [ 1 ]; do %{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: loop%b round $round -cmd_oneshot +cmd_oneshot $@ slavebreak=%{shared.prefix}/ctl/$HOST-$ARCH-$OS/slave.break if [ -f $slavebreak ]; then @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 11-Feb-2005 11:28:16 Branch: HEAD Handle: 2005021110281600 Modified files: openpkg-tools/cmd bf-mk.pl Log: add bf alias for easy use of correct ssh(1); print information about bf alias and location of config file; allow concurrent screen sessions Summary: RevisionChanges Path 1.16+8 -2 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.15 -r1.16 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl7 Feb 2005 15:42:54 - 1.15 +++ openpkg-tools/cmd/bf-mk.pl11 Feb 2005 10:28:16 - 1.16 @@ -231,6 +231,7 @@ my $osspcfg = new OSSP::cfg::simple; die no config file specified unless (defined $cfgfile); +$cfg-{global}-{cfgfile} = $cfgfile; my $io = new IO::File $cfgfile; die cannot open \$cfgfile\ for reading ($!) if(not defined $io); my $txt = ''; $txt .= $_ while ($io); @@ -394,9 +395,14 @@ my ($cfg) = @_; my $txt = 'EOT'; . .bashrc +alias bf=%{master.ssh} echo Welcome to the OpenPKG build farm %{shared.prefix} echo -echo recreate scripts and config based on %{master.host} configuration +echo connect to build-farm on slave via ssh(1) +echo $ bf host +echo +echo recreate scripts and config based on configuration +echo located on host %{master.host}, file \%{global.cfgfile}\ echo $ master echo echo run WORKER (attach to or create screens) @@ -651,7 +657,7 @@ cmd_attach () { %{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: attach to screen%b -cd %{shared.prefix} exec %{master.screen} -r openpkg-buildfarm -p = +cd %{shared.prefix} exec %{master.screen} -r openpkg-buildfarm -p = -x } cmd_create () @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 11-Feb-2005 16:32:54 Branch: HEAD Handle: 2005021115325400 Modified files: openpkg-tools/cmd bf-mk.pl Log: add argument shifting and align command evaluation Summary: RevisionChanges Path 1.17+13 -16 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.16 -r1.17 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl11 Feb 2005 10:28:16 - 1.16 +++ openpkg-tools/cmd/bf-mk.pl11 Feb 2005 15:32:54 - 1.17 @@ -471,7 +471,7 @@ %{driver.shtool} mkdir -f -m 775 $target || die cannot create directory \$target\ } -oneshot () +cmd_oneshot () { createslavestructure @@ -536,7 +536,7 @@ ) } -amend () +cmd_amend () { createslavestructure @@ -580,7 +580,7 @@ exit 0 } -loop () +cmd_loop () { round=1 while [ 1 ]; do @@ -617,18 +617,15 @@ if [ .$TERM = .screen ]; then %{driver.shtool} echo -n k$HOST-$ARCH-$OS\\; fi cmd= -if [ .$1 = .-1 -o .$1 = .--oneshot ]; then cmd=oneshot; fi -if [ .$1 = .-l -o .$1 = .--loop ];then cmd=loop; fi -if [ .$1 = .-A -o .$1 = .--amend ]; then cmd=amend; fi -if [ .$1 = .-H -o .$1 = .--help ];then cmd=help; fi -if [ .$cmd = . ]; then usage ERROR; fi +if [ .$1 = .-1 -o .$1 = .--oneshot ]; then shift; cmd=oneshot; fi +if [ .$1 = .-l -o .$1 = .--loop ];then shift; cmd=loop; fi +if [ .$1 = .-A -o .$1 = .--amend ]; then shift; cmd=amend; fi +if [ .$1 = .-H -o .$1 = .--help ];then shift; cmd=help; fi if [ .$cmd = .help ]; then usage; fi -if [ .$cmd = .oneshot ]; then oneshot; fi -if [ .$cmd = .loop ]; then loop; fi -if [ .$cmd = .amend ]; then amend; fi +if [ .$cmd = . ]; then usage ERROR; fi +cmd_$cmd $@ exit 1 - EOT return subst($cfg, $txt); } @@ -715,9 +712,9 @@ if [ .$TERM = .screen ]; then %{driver.shtool} echo -n k$HOST [WORKER]\\; fi cmd= -if [ .$1 = .-a -o .$1 = .--attach ]; then cmd=attach; fi -if [ .$1 = .-c -o .$1 = .--create ]; then cmd=create; fi -if [ .$1 = .-H -o .$1 = .--help ]; then cmd=help; fi +if [ .$1 = .-a -o .$1 = .--attach ]; then shift; cmd=attach; fi +if [ .$1 = .-c -o .$1 = .--create ]; then shift; cmd=create; fi +if [ .$1 = .-H -o .$1 = .--help ]; then shift; cmd=help; fi if [ .$cmd = .help ]; then usage; fi # fallback to command autodetection @@ -730,7 +727,7 @@ fi if [ .$cmd = . ]; then usage ERROR; fi -cmd_$cmd +cmd_$cmd $@ exit 1 EOT return subst($cfg, $txt); @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 11-Feb-2005 16:33:45 Branch: HEAD Handle: 2005021115334500 Modified files: openpkg-tools/cmd bf-mk.pl Log: make sure correct ssh(1) is called Summary: RevisionChanges Path 1.18+2 -1 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.17 -r1.18 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl11 Feb 2005 15:32:54 - 1.17 +++ openpkg-tools/cmd/bf-mk.pl11 Feb 2005 15:33:45 - 1.18 @@ -820,7 +820,7 @@ prefix /bf/slaves; openpkg %{prefix}/bin/openpkg; rpm %{openpkg} rpm; -bfdbssh [EMAIL PROTECTED] %{master.bfdb}; +bfdb%{driver.ssh} [EMAIL PROTECTED] %{master.bfdb}; # large and fast temporary disk space for building # openpkg-team using /ltmp/openpkg-bf @@ -843,6 +843,7 @@ rm rm; sed sed; sh /bin/sh; +ssh ssh; shtool shtool; sudosudo; sudoers /etc/sudoers; @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 11-Feb-2005 21:23:24 Branch: HEAD Handle: 2005021120232300 Modified files: openpkg-tools/cmd bf-mk.pl Log: move bf alias to bashrc making it available inside screens; fix slave loop problem where new prefix was missing Summary: RevisionChanges Path 1.20+2 -2 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.19 -r1.20 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl11 Feb 2005 15:35:13 - 1.19 +++ openpkg-tools/cmd/bf-mk.pl11 Feb 2005 20:23:23 - 1.20 @@ -385,6 +385,7 @@ fi export PATH=%{shared.prefix}/bin:$PATH export PS1=[EMAIL PROTECTED] | %{driver.sed} -e 's;\..*$;;'`\$ +alias bf=%{master.ssh} unset TMOUT EOT return subst($cfg, $txt); @@ -395,7 +396,6 @@ my ($cfg) = @_; my $txt = 'EOT'; . .bashrc -alias bf=%{master.ssh} echo Welcome to the OpenPKG build farm %{shared.prefix} echo echo connect to build-farm on slave via ssh(1) @@ -601,7 +601,7 @@ round=1 while [ 1 ]; do %{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: loop%b round $round -oneshot +cmd_oneshot slavebreak=%{shared.prefix}/ctl/$HOST-$ARCH-$OS/slave.break if [ -f $slavebreak ]; then @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 07-Feb-2005 10:49:32 Branch: HEAD Handle: 2005020709493100 Modified files: openpkg-tools/cmd bf-mk.pl Log: make sure the build farm working subdir below large tmp exists Summary: RevisionChanges Path 1.14+2 -0 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.13 -r1.14 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl4 Feb 2005 14:11:25 - 1.13 +++ openpkg-tools/cmd/bf-mk.pl7 Feb 2005 09:49:31 - 1.14 @@ -461,6 +461,8 @@ target=%{shared.prefix}/$dir/$HOST-$ARCH-$OS %{driver.shtool} mkdir -f -p -m 775 $target || die cannot create directory \$target\ done +target=%{slaves.ltmp} +%{driver.shtool} mkdir -f -m 775 $target || die cannot create directory \$target\ } oneshot () @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl src2make.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 04-Feb-2005 15:11:25 Branch: HEAD Handle: 2005020414112500 Modified files: openpkg-tools/cmd bf-mk.pl src2make.pl Log: allow specification of rpm(8) and rpm2cpio(8) for MASTER through config file and set appropriate default Summary: RevisionChanges Path 1.13+2 -0 openpkg-tools/cmd/bf-mk.pl 1.9 +16 -15 openpkg-tools/cmd/src2make.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.12 -r1.13 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl4 Feb 2005 09:40:08 - 1.12 +++ openpkg-tools/cmd/bf-mk.pl4 Feb 2005 14:11:25 - 1.13 @@ -725,6 +725,8 @@ shtool %{openpkg} shtool; src2make%{openpkg} src2make; rpm %{openpkg} rpm; +rpm2cpio%{openpkg} rpm2cpio; +cpiocpio; bfmk%{openpkg} bf-mk; bfui%{openpkg} bf-ui; bfdb%{openpkg} bf-db; @@ . patch -p0 '@@ .' Index: openpkg-tools/cmd/src2make.pl $ cvs diff -u -r1.8 -r1.9 src2make.pl --- openpkg-tools/cmd/src2make.pl 2 Feb 2005 21:03:14 - 1.8 +++ openpkg-tools/cmd/src2make.pl 4 Feb 2005 14:11:25 - 1.9 @@ -138,27 +138,28 @@ -C|--config=FILE specifiy config file ($config)\n; exit(0); } + +# handle config +my $cfg = readconfig($config); +my $dbfile = $cfg-{master}-{dbfile} || die mandatory setting master.dbfile undefined; +my $lockretries = $cfg-{master}-{lockretries} || 250; +my $rpm = $cfg-{master}-{rpm} || $prefix/bin/openpkg rpm; +my $rpm2cpio= $cfg-{master}-{rpm2cpio}|| $prefix/bin/openpkg rpm2cpio; +my $cpio= $cfg-{master}-{cpio}|| cpio; + +$rpm = fullpath($rpm) unless ($rpm =~ m|/|); +$rpm2cpio = fullpath($rpm2cpio) unless ($rpm2cpio =~ m|/|); +$cpio = fullpath($cpio) unless ($cpio =~ m|/|); + $outdir = $srcdir if ($outdir eq ''); if ($prefix eq '' or $srcdir eq '') { die at least --prefix and --srcdir have to be specified; } -if (not (-x $prefix/bin/openpkg and -x $prefix/libexec/openpkg/rpm and -x $prefix/libexec/openpkg/rpm2cpio)) { -die programs 'rpm' and 'rpm2cpio' not found under OpenPKG hierarchy '$prefix'; -} -my $cpio; -if (($cpio = fullpath(cpio)) eq '') { -die program 'cpio' not found in PATH; -} if (not -d $tmpdir) { mkdir($tmpdir, 0700) || die cannot create temporary directory '$tmpdir'; cleanup_remember(rm -rf $tmpdir); } -# handle config -my $cfg = readconfig($config); -my $dbfile = $cfg-{master}-{dbfile} || die mandatory setting master.dbfile undefined; -my $lockretries = $cfg-{master}-{lockretries} || 250; - # open and initialize database my $dbh = dbinit($dbfile); @@ -214,7 +215,7 @@ $q .= S-$t:%{$t}\n; } $q .= [M-BuildPreReq:%{REQUIRENAME} %|REQUIREFLAGS?{%{REQUIREFLAGS:depflags} %{REQUIREVERSION}}:{}|\n]; -my $o = `$prefix/bin/openpkg rpm -qp --qf $q $srcdir/$srcrpm 2/dev/null`; +my $o = `$rpm -qp --qf $q $srcdir/$srcrpm 2/dev/null`; $o =~ s|M-BuildPreReq:rpmlib\(.*?\).*?\n||gs; my $r = parseresponse($o); my $pkg_name = $r-{Name}; @@ -285,7 +286,7 @@ verbose(sprintf cache dirty (md5 mismatch): discard whole cache content, read original source and cache it); system(rm -rf $tmpdir/$srcrpm_name /dev/null 21 || true); mkdir($tmpdir/$srcrpm_name, 0755) || die cannot create temporary directory '$tmpdir/$srcrpm_name'; -runcmd($prefix/bin/openpkg rpm2cpio $srcdir/$srcrpm | (cd $tmpdir/$srcrpm_name $cpio -idvmu $srcrpm_name.spec $srcrpm_name.sh /dev/null 21)); +runcmd($rpm2cpio $srcdir/$srcrpm | (cd $tmpdir/$srcrpm_name $cpio -idvmu $srcrpm_name.spec $srcrpm_name.sh /dev/null 21)); if (not -f $tmpdir/$srcrpm_name/$srcrpm_name.spec) { print STDERR $progname: failed to extract '$srcrpm_name.spec' from '$srcdir/$srcrpm' - skipping\n; next SRCRPM; @@ -297,7 +298,7 @@ $o = cacheread($tmpdir/$srcrpm_name/o); if ($o eq ) { verbose(sprintf cache dirty (o not cached): execute original query and cache it); -$o = `cd $tmpdir/$srcrpm_name $prefix/bin/openpkg rpm -q --qf $q --define
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 04-Feb-2005 10:40:08 Branch: HEAD Handle: 2005020409400800 Modified files: openpkg-tools/cmd bf-mk.pl Log: protect slave against problems when important environment parameters cannot be detected (happend after updated rpm segfaulted) Summary: RevisionChanges Path 1.12+4 -4 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.11 -r1.12 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl2 Feb 2005 21:00:56 - 1.11 +++ openpkg-tools/cmd/bf-mk.pl4 Feb 2005 09:40:08 - 1.12 @@ -583,10 +583,10 @@ } #main() -HOST=`%{driver.hostname} | %{driver.sed} -e 's;\..*$;;'` -ARCH=`%{slaves.rpm} --eval '%{l_host_arch}'` -OS=`%{slaves.rpm} --eval '%{l_host_os}'` -TAG=`%{slaves.rpm} --eval '%{l_tag}'` +HOST=`%{driver.hostname} | %{driver.sed} -e 's;\..*$;;'`; [ .$HOST = . ] die HOST detection failed +ARCH=`%{slaves.rpm} --eval '%{l_host_arch}'`; [ .$ARCH = . ] die ARCH detection failed +OS=`%{slaves.rpm} --eval '%{l_host_os}'`; [ .$OS = . ] die OS detection failed +TAG=`%{slaves.rpm} --eval '%{l_tag}'`; [ .$TAG = . ] die TAG detection failed if [ .$TERM = .screen ]; then %{driver.shtool} echo -n k$HOST-$ARCH-$OS\\; fi cmd= @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 02-Feb-2005 22:01:01 Branch: HEAD Handle: 2005020221005600 Modified files: openpkg-tools/cmd bf-mk.pl Log: beautify screen(1) usage for worker Summary: RevisionChanges Path 1.11+18 -4 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.10 -r1.11 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl2 Feb 2005 11:46:40 - 1.10 +++ openpkg-tools/cmd/bf-mk.pl2 Feb 2005 21:00:56 - 1.11 @@ -637,19 +637,33 @@ { %{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: create screens%b instances=`cd %{shared.prefix}/src echo *-*-*` -screenrc=%{shared.prefix}/tmp/master/screenrc -( echo vbell off +screenrc=%{shared.prefix}/.screenrc +( echo ## + echo ## ~/.screenrc + echo ## + echo + echo escape ^Aa + echo startup_message off + echo vbell off + echo defmonitor off + echo msgminwait 1 + echo msgwait 1 + echo defscrollback 1 + echo hardstatus alwayslastline \ OpenPKG build farm | %t | %=%Y-%m-%d %c \ +) $screenrc +masterscreenrc=%{shared.prefix}/tmp/master/screenrc +( cat $screenrc echo screen -t \$HOST [MASTER]\ %{driver.sh} for inst in $instances; do eval `echo $inst | sed -e 's/^\([^-][^-]*\)-\([^-][^-]*\)-\([^-][^-]*\)$/host=\1; arch=\2; os=\3;/'` echo screen -t \$host-$arch-$os\ %{master.ssh} -A -t -x $host %{driver.sh} done echo select 0 -) $screenrc +) $masterscreenrc eval `%{master.sshagent} -s 2/dev/null` %{master.sshadd} -D /dev/null 2/dev/null %{master.sshadd} /dev/null || exit 1 -cd %{shared.prefix} exec %{master.screen} -S openpkg-buildfarm -c $screenrc +cd %{shared.prefix} exec %{master.screen} -S openpkg-buildfarm -c $masterscreenrc } usage () @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 31-Jan-2005 11:37:10 Branch: HEAD Handle: 2005013110371000 Modified files: openpkg-tools/cmd bf-mk.pl Log: erase obsolete files to reclaim disk space (integrate my old janitor script) Summary: RevisionChanges Path 1.5 +24 -0 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.4 -r1.5 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl26 Jan 2005 14:43:13 - 1.4 +++ openpkg-tools/cmd/bf-mk.pl31 Jan 2005 10:37:10 - 1.5 @@ -472,6 +472,30 @@ %{driver.ln} $source/$srpm $target/ done +# erase obsolete DST packages for SLAVE +%{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: erase obsolete DST packages for SLAVE%b +reference=%{shared.prefix}/src/$HOST-$ARCH-$OS +cleanthis=%{shared.prefix}/dst/$HOST-$ARCH-$OS +for item in `cd $cleanthis ls 2/dev/null -1 *-*-*.*-*-*.rpm \ +| sed -e 's;^\(.*-[^-][^-]*-[^-][^-]*\)\.[^-][^-]*-[^-][^-]*-[^-][^-]*\.rpm$;\1;' \ +| sort`; do #aide-0.10-20040920.ix86-freebsd4.10-openpkg.rpm = aide-0.10-20040920 +if [ ! -f $reference/$item.src.rpm ]; then +rm $cleanthis/$item.*-*-*.rpm +fi +done + +# erase obsolete LOG files for SLAVE +%{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: erase obsolete LOG files for SLAVE%b +reference=%{shared.prefix}/src/$HOST-$ARCH-$OS +cleanthis=%{shared.prefix}/log/$HOST-$ARCH-$OS +for item in `cd $cleanthis ls 2/dev/null -1 *-*-*.log.*.*-*-* \ +| sed -e 's;^\(.*-[^-][^-]*-[^-][^-]*\)\.log\.[^.][^.]*\.[^-][^-]*-[^-][^-]*-[^-][^-]*$;\1;' \ +| sort`; do #aide-0.10-20040206.log.dv1.ix86-freebsd4.9-openpkg = aide-0.10-20040206 +if [ ! -f $reference/$item.src.rpm ]; then +rm $cleanthis/$item.log.*.*-*-* +fi +done + # erase packages from SLAVE OpenPKG instance %{driver.shtool} echo -e %B++ [EMAIL PROTECTED]:%{shared.prefix}: erase packages from SLAVE OpenPKG instance%b ( cd $target %{driver.make} \ @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 26-Jan-2005 09:09:39 Branch: HEAD Handle: 2005012608093900 Modified files: openpkg-tools/cmd bf-mk.pl Log: improve/correct manpage and bf.conf defaults; add screen prereq; generate convenience worker command; Summary: RevisionChanges Path 1.2 +143 -36openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.1 -r1.2 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl24 Jan 2005 15:37:51 - 1.1 +++ openpkg-tools/cmd/bf-mk.pl26 Jan 2005 08:09:39 - 1.2 @@ -50,6 +50,7 @@ my $opt_key= 0; my $opt_master = 0; my $opt_slave = 0; +my $opt_worker = 0; my $opt_oneshot= 0; my $opt_loop = 0; my $opt_init = 0; @@ -94,6 +95,7 @@ -k|key generate .ssh/ keys\n . -m|master generate bin/master wrapper\n . -s|slave generate bin/slave script\n . + -w|worker generate bin/worker script\n . -1|oneshot run master once\n . -l|looprun master in a loop\n . -i|initinit mode\n . @@ -111,7 +113,7 @@ Notes on query mode; with -q variables can be printed, e.g. \prefix=%{master.prefix}\\n; Notes on shared setup mode; - with -[rlkms] only selected files are generated, otherwise all\n . + with -[rlkmsw] only selected files are generated, otherwise all\n . with -o is written to given file otherwise to proper destination\n; exit(1) if (defined $level); exit(0); @@ -126,6 +128,7 @@ 'k|key' = \$opt_key, 'm|master' = \$opt_master, 's|slave'= \$opt_slave, +'w|worker' = \$opt_worker, '1|oneshot' = \$opt_oneshot, 'l|loop' = \$opt_loop, 'i|init' = \$opt_init, @@ -162,12 +165,13 @@ my $shared = $cfg-{shared}-{prefix} || die mandatory setting shared.prefix undefined; # if no files selected default to all files selected -unless ($opt_bashrc or $opt_bashlogin or $opt_key or $opt_master or $opt_slave) { +unless ($opt_bashrc or $opt_bashlogin or $opt_key or $opt_master or $opt_slave or $opt_worker) { $opt_bashrc = 1; $opt_bashlogin = 1; $opt_key = 1; $opt_master = 1; $opt_slave = 1; +$opt_worker = 1; } if ($opt_oneshot) { @@ -194,6 +198,7 @@ writefile($shared/.bash_login, $opt_outfile, 0644, gen_bashlogin($cfg)) if($opt_bashrc); writefile($shared/bin/master, $opt_outfile, 0755, gen_master($cfg))if($opt_master); writefile($shared/bin/slave, $opt_outfile, 0755, gen_slave($cfg)) if($opt_slave); +writefile($shared/bin/worker, $opt_outfile, 0755, gen_worker($cfg))if($opt_worker); } } # die gracefully ;-) @@ -389,6 +394,21 @@ my ($cfg) = @_; my $txt = 'EOT'; . .bashrc +echo Welcome to the OpenPKG build farm %{shared.prefix} +echo +echo recreate scripts and config based on %{master.host} configuration +echo $ master +echo +echo run WORKER (attach to or create screens) +echo $ worker +echo +echo run MASTER (define work for slaves) +echo $ master -1 #oneshot +echo $ master -l #loop +echo +echo run SLAVE (do the work) +echo $ slave -1 #oneshot +echo $ slave -l #loop EOT return subst($cfg, $txt); } @@ -429,19 +449,6 @@ exit 1 } -assert () -{ -[ .%{shared.prefix} != . ] || die SHARED directory not configured -[ -d %{shared.prefix} ] || die shared prefix \%{shared.prefix}\ does not exist on this machine -cd %{shared.prefix} || die cannot change directory to shared prefix \%{shared.prefix}\ -[ -x %{driver.shtool} ] || die driver shtool(1) \%{driver.shtool}\ not executable -[ -x %{driver.sudo} ] || die driver sudo(1) \%{driver.sudo}\ not executable -[ .%{slaves.prefix} != . ] || die SLAVES prefix not configured -[ -d %{slaves.prefix} ] || die slave prefix \%{slaves.prefix}\ does not exist on this machine -[ -d %{slaves.ltmp} ] || die large temporary disks space \%{slaves.ltmp}\ missing -[ .%{slaves.bfdb} != . ] || die SLAVES bfdb not configured
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 26-Jan-2005 10:40:54 Branch: HEAD Handle: 2005012609405400 Modified files: openpkg-tools/cmd bf-mk.pl Log: set screen window title; set build TMP to local/large temporary disk space Summary: RevisionChanges Path 1.3 +8 -4 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.2 -r1.3 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl26 Jan 2005 08:09:39 - 1.2 +++ openpkg-tools/cmd/bf-mk.pl26 Jan 2005 09:40:54 - 1.3 @@ -423,6 +423,10 @@ ## any configuration change. Manual edits are a waste of time. ## +#main() +HOST=`%{driver.hostname} | %{driver.sed} -e 's;\..*$;;'` +if [ .$TERM = .screen ]; then %{driver.shtool} echo -n k$HOST [MASTER]\\; fi + exec %{master.bfmk} $@ EOT return subst($cfg, $txt); @@ -474,7 +478,7 @@ LOG=%{shared.prefix}/log/$HOST-$ARCH-$OS \ SRC=%{shared.prefix}/src/$HOST-$ARCH-$OS \ DST=%{shared.prefix}/dst/$HOST-$ARCH-$OS \ -TMP=%{shared.prefix}/tmp/$HOST-$ARCH-$OS \ +TMP=%{slaves.ltmp}/$HOST-$ARCH-$OS \ EXEC_BFDB=%{slaves.bfdb} \ EXEC_ROOT=%{driver.sudo} \ EXEC_HOST=$HOST \ @@ -487,7 +491,7 @@ LOG=%{shared.prefix}/log/$HOST-$ARCH-$OS \ SRC=%{shared.prefix}/src/$HOST-$ARCH-$OS \ DST=%{shared.prefix}/dst/$HOST-$ARCH-$OS \ -TMP=%{shared.prefix}/tmp/$HOST-$ARCH-$OS \ +TMP=%{slaves.ltmp}/$HOST-$ARCH-$OS \ EXEC_BFDB=%{slaves.bfdb} \ EXEC_ROOT=%{driver.sudo} \ EXEC_HOST=$HOST \ @@ -538,6 +542,7 @@ HOST=`%{driver.hostname} | %{driver.sed} -e 's;\..*$;;'` ARCH=`%{slaves.rpm} --eval '%{l_host_arch}'` OS=`%{slaves.rpm} --eval '%{l_host_os}'` +if [ .$TERM = .screen ]; then %{driver.shtool} echo -n k$HOST-$ARCH-$OS\\; fi cmd= if [ .$1 = .-1 -o .$1 = .--oneshot ]; then cmd=oneshot; fi @@ -619,8 +624,7 @@ #main() HOST=`%{driver.hostname} | %{driver.sed} -e 's;\..*$;;'` -ARCH=`%{slaves.rpm} --eval '%{l_host_arch}'` -OS=`%{slaves.rpm} --eval '%{l_host_os}'` +if [ .$TERM = .screen ]; then %{driver.shtool} echo -n k$HOST [WORKER]\\; fi cmd= if [ .$1 = .-a -o .$1 = .--attach ]; then cmd=attach; fi @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 26-Jan-2005 15:43:14 Branch: HEAD Handle: 2005012614431300 Modified files: openpkg-tools/cmd bf-mk.pl Log: remove obsolete master.db setting, it is called master.dbfile Summary: RevisionChanges Path 1.4 +0 -1 openpkg-tools/cmd/bf-mk.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-mk.pl $ cvs diff -u -r1.3 -r1.4 bf-mk.pl --- openpkg-tools/cmd/bf-mk.pl26 Jan 2005 09:40:54 - 1.3 +++ openpkg-tools/cmd/bf-mk.pl26 Jan 2005 14:43:13 - 1.4 @@ -667,7 +667,6 @@ bfmk%{openpkg} bf-mk; bfui%{openpkg} bf-ui; bfdb%{openpkg} bf-db; -db %{prefix}/var/openpkg-tools/bf/db.sqlite; rsync %{prefix}/bin/rsync; screen %{prefix}/bin/screen; grep%{prefix}/bin/grep; @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org