[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"; -sudo"sudo"; -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
[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 2>&1 || 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 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"; # " [ ]" # (, ) @@ . __ 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"; +cpio"cpio"; 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:\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 2>&1 || 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 2>&1)"); +&runcmd("$rpm2cpio $srcdir/$srcrpm | (cd $tmpdir/$srcrpm_name && $cpio -idvmu $srcrpm_name.spec $srcrpm_name.sh >/dev/null 2>&1)"); 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