[CVS] OpenPKG: openpkg-tools/cmd/ bf-mk.pl src2make.pl

2006-09-21 Thread Thomas Lotterer
  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

2005-02-18 Thread Thomas Lotterer
  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

2005-02-15 Thread Thomas Lotterer
  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

2005-02-04 Thread Thomas Lotterer
  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