OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Thomas Lotterer
  Root:   /v/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-tools                    Date:   21-Sep-2006 17:19:56
  Branch: HEAD                             Handle: 2006092116195500

  Modified files:
    openpkg-tools/cmd       bf-db.pl bf-mk.pl bf-ui.pl src2make.pl

  Log:
    rename entities to follow simple MASTER/SLAVE model; update
    documentation and remove obmtool.conf examples in favor of recently
    integrated "openpkg build" commands

  Summary:
    Revision    Changes     Path
    1.19        +1  -1      openpkg-tools/cmd/bf-db.pl
    1.31        +213 -284   openpkg-tools/cmd/bf-mk.pl
    1.27        +2  -2      openpkg-tools/cmd/bf-ui.pl
    1.21        +1  -1      openpkg-tools/cmd/src2make.pl
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-tools/cmd/bf-db.pl
  ============================================================================
  $ cvs diff -u -r1.18 -r1.19 bf-db.pl
  --- openpkg-tools/cmd/bf-db.pl        1 Jan 2006 14:04:47 -0000       1.18
  +++ openpkg-tools/cmd/bf-db.pl        21 Sep 2006 15:19:55 -0000      1.19
  @@ -149,7 +149,7 @@
       $osspcfg->parse($txt) || die "error parsing config file";
       my $tree = $osspcfg->unpack(-index => '.*') || die "error unpacking 
config file";
   
  -    foreach my $section (qw(master shared driver slaves)) {
  +    foreach my $section (qw(master shared slave workbench)) {
           foreach my $k (keys %{$tree->{$section}->[1]}) {
               my $v = $tree->{$section}->[1]->{$k}->[1];
               $v =~ s|%{([^}\.]+)}|%{$section.\1}|g; #expand shortcuts with 
section omitted
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-tools/cmd/bf-mk.pl
  ============================================================================
  $ cvs diff -u -r1.30 -r1.31 bf-mk.pl
  --- openpkg-tools/cmd/bf-mk.pl        21 Sep 2006 15:11:11 -0000      1.30
  +++ openpkg-tools/cmd/bf-mk.pl        21 Sep 2006 15:19:55 -0000      1.31
  @@ -161,7 +161,7 @@
   }
   else {
       my $cfg = &readconfig($opt_config);
  -    my $shared = $cfg->{"shared"}->{"prefix"} || die "mandatory setting 
shared.prefix undefined";
  +    my $shared = $cfg->{"shared"}->{"folder"} || die "mandatory setting 
shared.folder 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 or $opt_worker) {
  @@ -239,7 +239,7 @@
       $osspcfg->parse($txt) || die "error parsing config file";
       my $tree = $osspcfg->unpack(-index => '.*') || die "error unpacking 
config file";
   
  -    foreach my $section (qw(master shared driver slaves)) {
  +    foreach my $section (qw(master shared slave workbench)) {
           foreach my $k (keys %{$tree->{$section}->[1]}) {
               my $v = $tree->{$section}->[1]->{$k}->[1];
               $v =~ s|%{([^}\.]+)}|%{$section.\1}|g; #expand shortcuts with 
section omitted
  @@ -300,12 +300,12 @@
       my ($cfg) = @_;
   
       #   handle config
  -    my $shared     = $cfg->{"shared"}->{"prefix"}   || die "mandatory 
setting shared.prefix undefined";
  -    my $slaves     = $cfg->{"slaves"}->{"prefix"}   || die "mandatory 
setting slaves.prefix undefined";
  -    my $classes    = $cfg->{"master"}->{"classes"}  || die "mandatory 
setting master.classes undefined";
  -    my $rsync      = $cfg->{"master"}->{"rsync"}    || die "mandatory 
setting master.rsync undefined";
  -    my $src2make   = $cfg->{"master"}->{"src2make"} || die "mandatory 
setting master.src2make undefined";
  -    my $source     = $cfg->{"master"}->{"source"}   || die "mandatory 
setting master.source undefined";
  +    my $shared     = $cfg->{"shared"}->{"folder"}    || die "mandatory 
setting shared.folder undefined";
  +    my $workbench  = $cfg->{"workbench"}->{"prefix"} || die "mandatory 
setting workbench.prefix undefined";
  +    my $classes    = $cfg->{"master"}->{"classes"}   || die "mandatory 
setting master.classes undefined";
  +    my $rsync      = $cfg->{"master"}->{"rsync"}     || die "mandatory 
setting master.rsync undefined";
  +    my $src2make   = $cfg->{"master"}->{"src2make"}  || die "mandatory 
setting master.src2make undefined";
  +    my $source     = $cfg->{"master"}->{"source"}    || die "mandatory 
setting master.source undefined";
       my $nosource   = $cfg->{"master"}->{"nosource"};
       my $skippkg    = $cfg->{"master"}->{"skippkg"};
   
  @@ -344,7 +344,7 @@
   
       #   run src2make
       &shtoolechoe("%B++ MASTER:$shared: run src2make%b");
  -    system("$src2make --prefix=\"$slaves\" " .
  +    system("$src2make --prefix=\"$workbench\" " .
                        "--srcdir=\"$shared/src/master\" " .
                        "--outdir=\"$shared/src/master\" " .
                        "--tmpdir=\"$shared/tmp/master\" " .
  @@ -357,7 +357,7 @@
       my ($cfg) = @_;
   
       #   handle config
  -    my $shared     = $cfg->{"shared"}->{"prefix"}    || die "mandatory 
setting shared.prefix undefined";
  +    my $shared     = $cfg->{"shared"}->{"folder"}    || die "mandatory 
setting shared.folder undefined";
       my $sshkeygen  = $cfg->{"master"}->{"sshkeygen"} || die "mandatory 
setting master.sshkeygen undefined";
   
       #   generate server DSA (SSH2) key
  @@ -379,11 +379,11 @@
   {
       my ($cfg) = @_;
       my $txt = <<'EOT';
  -if [ ".$HOME" != ".%{shared.prefix}" ]; then
  -    echo ".bashrc:ERROR: HOME does not match %{shared.prefix}"
  +if [ ".$HOME" != ".%{shared.folder}" ]; then
  +    echo ".bashrc:ERROR: HOME does not match %{shared.folder}"
   fi
  -export PATH=%{shared.prefix}/bin:$PATH
  -export PS1="[EMAIL PROTECTED] | %{driver.sed} -e 's;\..*$;;'`\$ "
  +export PATH=%{shared.folder}/bin:$PATH
  +export PS1="[EMAIL PROTECTED] | %{slave.sed} -e 's;\..*$;;'`\$ "
   alias bf=%{master.ssh}
   unset TMOUT
   EOT
  @@ -395,7 +395,7 @@
       my ($cfg) = @_;
       my $txt = <<'EOT';
   . .bashrc
  -echo "    Welcome to the OpenPKG build farm %{shared.prefix}"
  +echo "    Welcome to the OpenPKG build farm %{shared.folder}"
   echo ""
   echo "    connect to build-farm on slave via ssh(1)"
   echo "    $ bf <host>"
  @@ -422,15 +422,15 @@
   {
       my ($cfg) = @_;
       my $txt = <<'EOT';
  -#!%{driver.sh}
  +#!%{master.bash}
   ##
   ##  This file was created by "openpkg bf-mk" and will be overwritten on
   ##  any configuration change. Manual edits are a waste of time.
   ##
   
   #main()
  -HOST=`%{driver.hostname} | %{driver.sed} -e 's;\..*$;;'`
  -if [ ".$TERM" = .screen -o ".$TERM" = .xterm ]; then %{driver.shtool} echo 
-n "k$HOST [MASTER]\\"; fi
  +HOST=`%{master.hostname} | %{master.sed} -e 's;\..*$;;'`
  +if [ ".$TERM" = .screen -o ".$TERM" = .xterm ]; then %{master.shtool} echo 
-n "k$HOST [MASTER]\\"; fi
   
   exec %{master.bfmk} "$@"
   EOT
  @@ -441,7 +441,7 @@
   {
       my ($cfg) = @_;
       my $txt = <<'EOT';
  -#!%{driver.sh}
  +#!%{slave.sh}
   ##
   ##  This file was created by "openpkg bf-mk" and will be overwritten on
   ##  any configuration change. Manual edits are a waste of time.
  @@ -461,28 +461,28 @@
   createslavestructure () 
   {
       #   creating SHARED directory structure for SLAVE
  -    %{driver.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.prefix}: 
creating SHARED directory structure for SLAVE%b"
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: 
creating SHARED directory structure for SLAVE%b"
       for dir in ctl dst log src tmp; do
  -        target="%{shared.prefix}/$dir/$HOST-$ARCH-$OS"
  -        %{driver.shtool} mkdir -f -p -m 775 $target || die "cannot create 
directory \"$target\""
  +        target="%{shared.folder}/$dir/$HOST-$ARCH-$OS"
  +        %{slave.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\""
  +    target="%{workbench.ltmp}"
  +    %{slave.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}" \
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: list 
package targets available to SLAVE%b"
  +    source="%{shared.folder}/src/master"
  +    target="%{shared.folder}/src/$HOST-$ARCH-$OS"
  +    %{slave.cp} $source/Makefile* $target/
  +    ( 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" \
  +        TMP="%{workbench.ltmp}/$HOST-$ARCH-$OS" \
  +        EXEC_BFDB="%{slave.bfdb}" \
           EXEC_HOST="$HOST" \
           list \
       )
  @@ -491,14 +491,14 @@
   cmd_erase ()
   {
       #   erase packages from SLAVE OpenPKG instance
  -    %{driver.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.prefix}: erase 
packages from SLAVE OpenPKG instance%b"
  -    surplus=`%{slaves.rpm} -qa | sed -e 's;^openpkg-[^-][^-]*-[^-][^-]*$;;' 
-e 's;^gpg-pubkey-[^-][^-]*-[^-][^-]*$;;'`
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: erase 
packages from SLAVE OpenPKG instance%b"
  +    surplus=`%{workbench.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"
  -        %{slaves.rpm} -e $surplus
  -        surplus=`%{slaves.rpm} -qa | sed -e 
's;^openpkg-[^-][^-]*-[^-][^-]*$;;' -e 's;^gpg-pubkey-[^-][^-]*-[^-][^-]*$;;'`
  +        %{workbench.rpm} -e $surplus
  +        surplus=`%{workbench.rpm} -qa | sed -e 
's;^openpkg-[^-][^-]*-[^-][^-]*$;;' -e 's;^gpg-pubkey-[^-][^-]*-[^-][^-]*$;;'`
           if [ ".$surplus" = . ]; then
               echo "instance successfully stripped to baseline"
           else
  @@ -516,19 +516,19 @@
       fi
   
       #   prepare SRPMs for SLAVE
  -    %{driver.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.prefix}: 
prepare SRPMs for SLAVE%b"
  -    source="%{shared.prefix}/src/master"
  -    target="%{shared.prefix}/src/$HOST-$ARCH-$OS"
  -    %{driver.cp} $source/Makefile* $target/
  -    %{driver.rm} -f $target/*.src.rpm
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: 
prepare SRPMs for SLAVE%b"
  +    source="%{shared.folder}/src/master"
  +    target="%{shared.folder}/src/$HOST-$ARCH-$OS"
  +    %{slave.cp} $source/Makefile* $target/
  +    %{slave.rm} -f $target/*.src.rpm
       for srpm in `cd $source && ls -1 *.src.rpm | sort`; do
  -        %{driver.ln} $source/$srpm $target/
  +        %{slave.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"
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: erase 
obsolete DST packages for SLAVE%b"
  +    reference="%{shared.folder}/src/$HOST-$ARCH-$OS"
  +    cleanthis="%{shared.folder}/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
  @@ -538,9 +538,9 @@
       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"
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: erase 
obsolete LOG files for SLAVE%b"
  +    reference="%{shared.folder}/src/$HOST-$ARCH-$OS"
  +    cleanthis="%{shared.folder}/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
  @@ -552,7 +552,7 @@
       cmd_erase
   
       #   SLAVE building packages
  -    %{driver.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.prefix}: SLAVE 
building packages%b"
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: SLAVE 
building packages%b"
       for package in $packages; do
           case $package in
               try-build-latest ) : ;;
  @@ -573,7 +573,7 @@
   
   cmd_support ()
   {
  -    %{driver.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.prefix}: set 
support identifiation for SLAVE%b"
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: set 
support identifiation for SLAVE%b"
       support=""
       [ ".$1" = .deprecated -o ".$1" = .deprecate -o ".$1" = .deprecat -o 
".$1" = .depreca -o ".$1" = .deprec -o ".$1" = .depre -o ".$1" = .depr -o ".$1" 
= .dep -o ".$1" = .de -o ".$1" = .d ] && support="deprecated"
       [ ".$1" = .obsoleted -o ".$1" = .obsolete -o ".$1" = .obsolet -o ".$1" = 
.obsole -o ".$1" = .obsol -o ".$1" = .obso -o ".$1" = .obs -o ".$1" = .ob -o 
".$1" = .o ]                        && support="obsoleted"
  @@ -583,7 +583,7 @@
       if [ ".$support" = . ]; then
           die "support must be one of \"deprecated\", \"obsoleted\", 
\"supported\", \"tentative\", \"forecasted\""
       fi
  -    %{slaves.bfdb} -i $HOST-$ARCH-$OS-$TAG -s $support support
  +    %{slave.bfdb} -i $HOST-$ARCH-$OS-$TAG -s $support support
   }
   
   cmd_amend ()
  @@ -591,22 +591,22 @@
       createslavestructure
   
       #   amend DST packages for SLAVE
  -    %{driver.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.prefix}: amend 
DST packages for SLAVE%b"
  -    amendthis="%{shared.prefix}/dst/$HOST-$ARCH-$OS"
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: amend 
DST packages for SLAVE%b"
  +    amendthis="%{shared.folder}/dst/$HOST-$ARCH-$OS"
       for item in `cd $amendthis && 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
  -         %{slaves.bfdb} -i $HOST-$ARCH-$OS-$TAG -p $item -c green amend
  +         %{slave.bfdb} -i $HOST-$ARCH-$OS-$TAG -p $item -c green amend
       done
   }
   
   wipe ()
   {
       #   wipe out SHARED areas belonging to SLAVE
  -    %{driver.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.prefix}: wipe 
out SHARED areas belonging to SLAVE%b"
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: wipe 
out SHARED areas belonging to SLAVE%b"
       for dir in bin ctl log src tmp; do
  -        target="%{shared.prefix}/$dir/$HOST-$ARCH-$OS"
  -        %{driver.rm} -rf || warn "cannot remove directory \"$target\""
  +        target="%{shared.folder}/$dir/$HOST-$ARCH-$OS"
  +        %{slave.rm} -rf || warn "cannot remove directory \"$target\""
       done
   }
   
  @@ -637,37 +637,37 @@
   {
       round=1
       while [ 1 ]; do
  -        %{driver.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.prefix}: 
loop%b round $round"
  +        %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: 
loop%b round $round"
           cmd_oneshot "$@"
   
  -        slavebreak="%{shared.prefix}/ctl/$HOST-$ARCH-$OS/slave.break"
  +        slavebreak="%{shared.folder}/ctl/$HOST-$ARCH-$OS/slave.break"
           if [ -f $slavebreak ]; then
  -                 %{driver.shtool} echo -e "%B++ [EMAIL 
PROTECTED]:%{shared.prefix}: found $slavebreak file%b";
  +                 %{slave.shtool} echo -e "%B++ [EMAIL 
PROTECTED]:%{shared.folder}: found $slavebreak file%b";
                        ls -ld $slavebreak
               cat <$slavebreak
                        break
                else
  -                 %{driver.shtool} echo -e "%B++ [EMAIL 
PROTECTED]:%{shared.prefix}: no $slavebreak file found%b";
  +                 %{slave.shtool} echo -e "%B++ [EMAIL 
PROTECTED]:%{shared.folder}: no $slavebreak file found%b";
                fi
  -        slavebreak="%{shared.prefix}/ctl/slave.break"
  +        slavebreak="%{shared.folder}/ctl/slave.break"
           if [ -f $slavebreak ]; then
  -                 %{driver.shtool} echo -e "%B++ [EMAIL 
PROTECTED]:%{shared.prefix}: found $slavebreak file%b";
  +                 %{slave.shtool} echo -e "%B++ [EMAIL 
PROTECTED]:%{shared.folder}: found $slavebreak file%b";
                        ls -ld $slavebreak
               cat <$slavebreak
                        break
                else
  -                 %{driver.shtool} echo -e "%B++ [EMAIL 
PROTECTED]:%{shared.prefix}: no $slavebreak file found%b";
  +                 %{slave.shtool} echo -e "%B++ [EMAIL 
PROTECTED]:%{shared.folder}: no $slavebreak file found%b";
                fi
           round=`expr $round + 1`
       done
   }
   
   #main()
  -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 -o ".$TERM" = .xterm ]; then %{driver.shtool} echo 
-n "k$HOST-$ARCH-$OS\\"; fi
  +HOST=`%{slave.hostname} | %{slave.sed} -e 's;\..*$;;'`; [ ".$HOST" = . ] && 
die "HOST detection failed"
  +ARCH=`%{workbench.rpm} --eval '%{l_host_arch}'`; [ ".$ARCH" = . ] && die 
"ARCH detection failed"
  +OS=`%{workbench.rpm} --eval '%{l_host_os}'`; [ ".$OS" = . ] && die "OS 
detection failed"
  +TAG=`%{workbench.rpm} --eval '%{l_tag}'`; [ ".$TAG" = . ] && die "TAG 
detection failed"
  +if [ ".$TERM" = .screen -o ".$TERM" = .xterm ]; then %{slave.shtool} echo -n 
"k$HOST-$ARCH-$OS\\"; fi
   
   cmd=""
   if [ ".$1" = ".-s" -o ".$1" = ".--support" ]; then shift; cmd="support"; fi
  @@ -691,7 +691,7 @@
   {
       my ($cfg) = @_;
       my $txt = <<'EOT';
  -#!%{driver.sh}
  +#!%{slave.sh}
   ##
   ##  This file was created by "openpkg bf-mk" and will be overwritten on
   ##  any configuration change. Manual edits are a waste of time.
  @@ -710,15 +710,15 @@
   
   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 = -x
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: attach 
to screen%b"
  +    cd %{shared.folder} && exec %{master.screen} -r openpkg-buildfarm -p = -x
   }
   
   cmd_create ()
   {
  -    %{driver.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.prefix}: 
create screens%b"
  -    instances=`cd %{shared.prefix}/src && echo *-*-*`
  -    screenrc="%{shared.prefix}/.screenrc"
  +    %{slave.shtool} echo -e "%B++ [EMAIL PROTECTED]:%{shared.folder}: create 
screens%b"
  +    instances=`cd %{shared.folder}/src && echo *-*-*`
  +    screenrc="%{shared.folder}/.screenrc"
       ( echo "##"
         echo "##  ~/.screenrc"
         echo "##"
  @@ -732,19 +732,19 @@
         echo "defscrollback   10000"
         echo "hardstatus      alwayslastline \" OpenPKG build farm | %t | 
%=%Y-%m-%d %c \""
       ) >$screenrc
  -    masterscreenrc="%{shared.prefix}/tmp/master/screenrc"
  +    masterscreenrc="%{shared.folder}/tmp/master/screenrc"
       ( cat <$screenrc
  -      echo "screen -t \"$HOST [MASTER]\" %{driver.sh}"
  +      echo "screen -t \"$HOST [MASTER]\" %{slave.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}"
  +          echo "screen -t \"$host-$arch-$os\" %{master.ssh} -A -t -x $host 
%{slave.sh}"
         done
         echo "select 0"
       ) >$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 
$masterscreenrc
  +    cd %{shared.folder} && exec %{master.screen} -S openpkg-buildfarm -c 
$masterscreenrc
   }
   
   usage ()
  @@ -765,8 +765,8 @@
   }
   
   #main()
  -HOST=`%{driver.hostname} | %{driver.sed} -e 's;\..*$;;'`
  -if [ ".$TERM" = .screen -o ".$TERM" = .xterm ]; then %{driver.shtool} echo 
-n "k$HOST [WORKER]\\"; fi
  +HOST=`%{slave.hostname} | %{slave.sed} -e 's;\..*$;;'`
  +if [ ".$TERM" = .screen -o ".$TERM" = .xterm ]; then %{slave.shtool} echo -n 
"k$HOST [WORKER]\\"; fi
   
   cmd=""
   if [ ".$1" = ".-a" -o ".$1" = ".--attach" ]; then shift; cmd="attach"; fi
  @@ -799,11 +799,11 @@
   
   master {
       #   OpenPKG instance on MASTER doing the build
  -    #   openpkg-team using prefix="/openpkg-bf/sw" on host="bf.openpkg.org"
  +    #   RE using prefix="/openpkg-bf/sw" on host="bf.openpkg.org"
       #
       prefix      "@l_prefix@";
       openpkg     "%{prefix}/bin/openpkg";
  -    shtool      "%{openpkg} shtool";
  +    shtool      "%{prefix}/bin/shtool";
       src2make    "%{openpkg} src2make";
       rpm         "%{openpkg} rpm";
       rpm2cpio    "%{openpkg} rpm2cpio";
  @@ -811,10 +811,12 @@
       bfmk        "%{openpkg} bf-mk";
       bfui        "%{openpkg} bf-ui";
       bfdb        "%{openpkg} bf-db";
  -    rsync       "%{prefix}/bin/rsync";
  +    rsync       "RSYNC_PASSWORD= %{prefix}/bin/rsync -v";
       screen      "%{prefix}/bin/screen";
       grep        "%{prefix}/bin/grep";
  -    sh          "%{prefix}/bin/bash";
  +    hostname    "%{prefix}/bin/ghostname";
  +    sed         "%{prefix}/bin/sed";
  +    bash        "%{prefix}/bin/bash";
       ssh         "%{prefix}/bin/ssh";
       sshadd      "%{prefix}/bin/ssh-add";
       sshagent    "%{prefix}/bin/ssh-agent";
  @@ -822,42 +824,31 @@
       host        "master.example.com";
   
       #   database file
  -    #   openpkg-team using "%{prefix}/var/openpkg-tools/bf/db.sqlite"
  +    #   RE using "%{prefix}/var/openpkg-tools/bf/db.sqlite"
       dbfile      "%{prefix}/var/openpkg-tools/bf/db.sqlite";
   
       #   max. retries to get database lock
  -    #   openpkg-team using 250
  +    #   RE using 250
       lockretries 250;
   
       #   location to download SRPMs from using rsync(1)
  -    #   openpkg-team using "rsync://rsync.openpkg.org/openpkg-pre"
  +    #   RE using "rsync://rsync.openpkg.org/openpkg-pre"
       #
  -    source      "rsync://rsync.openpkg.org/openpkg-ftp/current/SRC/";
  +    source      "rsync://[EMAIL 
PROTECTED]@rsync.openpkg.org/openpkg-ftp/current/SRC/";
   
       #   location where master can download usable replacements for 
.nosrc.rpm packages
       #   Empty setting inhibits download and effectivly disables processing 
of .nosrc.rpm packages
  -    #   openpkg-team using "/e/openpkg/PKG/src/"
  +    #   RE using "/v/openpkg/PKG/src/"
       #
  -    nosource    "rsync://rsync.openpkg.org/openpkg-ftp/private/SRC/";
  +    nosource    "rsync://[EMAIL 
PROTECTED]@rsync.openpkg.org/openpkg-ftp/private/SRC/";
   
       #   let master prepare Makefile(.rules) for packages of the following 
classes
  -    #   openpkg-team using "+CORE+BASE-PLUS-EVAL-JUNK" for final release 
build
  +    #   RE using "+CORE+BASE-PLUS-EVAL-JUNK" for final release build
       classes     "+CORE-BASE-PLUS-EVAL-JUNK";
   
       #   let master skip Makefile(.rules) preparation for packages matching 
the following shell wildcard patterns
  -    #   openpkg-team using ""
  +    #   RE using ""
       skippkg     "";
  -};
  -
  -shared {
  -    #   folder shared between MASTER and SLAVES, e.g. NFS mount
  -    #   MASTER writes SRPMs, Makefile and Makefile.rules to 
$SHARED/src/master/
  -    #   MASTER uses $SHARED/tmp/ for caching SRPMs spec files
  -    #   MASTER picks up logs from $SHARED/log/
  -    #   SLAVES write logs to $SHARED/log and binaries to $SHARED/bin/
  -    #   openpkg-team using "/e/openpkg/bf"
  -    #
  -    prefix      "@l_prefix@/var/openpkg-tools/bf/shared";
   
       #   User account launching the actual work
       #   Must exist on MASTER and all SLAVES (consider NIS)
  @@ -865,43 +856,52 @@
       #   Must have $HOME set to $SHARED
       #   Must be able to ssh to MASTER and all SLAVES
       #   logs in to MASTER and launches/reconnects screen(1) via "make" aka 
"make all" aka "make worker"
  -    #   openpkg-team using "openpkg-bf"
  +    #   RE using "openpkg-bf"
       #
  -    worker      "worker";
  +    worker      "openpkg-bf";
   };
   
  -slaves {
  -    #   OpenPKG instance on SLAVES doing the build
  -    #   openpkg-team using "/openpkg"
  +shared {
  +    #   folder shared between MASTER and SLAVES, e.g. NFS mount
  +    #   MASTER writes SRPMs, Makefile and Makefile.rules to 
$SHARED/src/master/
  +    #   MASTER uses $SHARED/tmp/ for caching SRPMs spec files
  +    #   MASTER picks up logs from $SHARED/log/
  +    #   SLAVES write logs to $SHARED/log and binaries to $SHARED/bin/
  +    #   RE using "/v/openpkg/bf"
       #
  -    prefix      "/bf/slaves";
  -    openpkg     "%{prefix}/bin/openpkg";
  -    rpm         "%{openpkg} rpm";
  -    bfdb        "%{driver.ssh} [EMAIL PROTECTED] %{master.bfdb}";
  -
  -    #   large and fast temporary disk space for building
  -    #   openpkg-team using "/ltmp/openpkg-bf"
  -    ltmp        "/var/tmp";
  +    folder      "@l_prefix@/var/openpkg-tools/bf/shared";
   };
   
  -
  -driver {
  +slave {
       #   Place to find common (development) tools used by SLAVES
  -    #   Might be a OpenPKG instance but can be OS stuff if available
  -    #   openpkg-team using OpenPKG instance at "/usr/opkg"
  +    #   RE using OpenPKG instance at "/usr/opkg"
       #
       prefix      "/bf/driver";
       cp          "cp";
  -    gcc         "gcc";
  -    hostname    "hostname";
  +    gcc         "%{prefix}/bin/gcc";
  +    hostname    "%{prefix}/bin/ghostname";
       ld          "ld";
       ln          "ln";
       make        "nice -20 make";
       rm          "rm";
  -    sed         "sed";
  +    sed         "%{prefix}/bin/sed";
       sh          "/bin/sh";
  -    ssh         "ssh";
  -    shtool      "shtool";
  +    ssh         "%{prefix}/bin/ssh";
  +    shtool      "%{prefix}/bin/shtool";
  +    bfdb        "%{slave.ssh} [EMAIL PROTECTED] %{master.bfdb}";
  +};
  +
  +workbench {
  +    #   OpenPKG instance on SLAVES doing the build
  +    #   RE using "/openpkg"
  +    #
  +    prefix      "/bf/slaves";
  +    openpkg     "%{prefix}/bin/openpkg";
  +    rpm         "%{openpkg} rpm";
  +
  +    #   large and fast temporary disk space for building
  +    #   RE using "/ltmp/openpkg-bf"
  +    ltmp        "/var/tmp";
   };
   
   EOT
  @@ -994,197 +994,126 @@
   
       The buildfarm is made of the following pieces:
   
  -    MASTER
  +    MASTER INSTANCE
   
  -        Must be a OpenPKG instance that runs all the administrative
  -        software including "openpkg bf-mk", "openpkg bf-db" and the
  -        Apache web server executing a CGI wrapper for "openpkg bf-ui".
  -        Get the required dependencies by installing "openpkg-tools"
  -        package "with_bf yes". The master also stores the database.
  +        OpenPKG instance that hosts all the software required by the 
"master" command.
  +        The master instance also stores the database.
  +        Get the required dependencies by installing "openpkg-tools" package 
"with_bf_master yes".
   
  -    DRIVER
  +    SLAVE INSTANCE
   
  -        Can be native OS utilities or a OpenPKG instance providing
  -        common (development) tools, e.g. "make". Must be installed/
  -        configured on every machine hosting a SLAVE.
  +        OpenPKG instance that hosts all the software required by the "slave" 
command.
  +        Get the required dependencies by installing "openpkg-tools" package 
"with_bf_slave yes".
   
  -    SLAVES
  +    WORKBENCH INSTANCE
   
  -        OpenPKG instances doing the actual build. They are controlled by
  -        a "slave" shell script which uses the DRIVER's tools.
  +        OpenPKG scratch instance that performs the actual build, driven by 
the "slave" command.
   
  -    SHARED
  +    WORKER ACCOUNT 
   
  -        A filesystem area accessible by the MASTER and all SLAVES. When
  -        multiple hosts are involved a NFS share can be used.
  +        Unix shell account which can login to machines hosting the master 
instance and on machines hosting a slave instance.
  +        In local operation mode, the worker account may be shared across 
machines using NIS.
  +        The worker account on slave machines needs ssh access the worker 
account on master machines.
   
  -    WORKER
  +    SHARED FOLDER
   
  -        A UNIX shell account using SHARED as it's HOME. It must exist
  -        on all machines involved in the build farm. This account runs
  -        the "master" (wrapper for "openpkg bf-mk" on the machine hosting
  -        MASTER and the (generated) "slave" shell script on every host
  -        having SLAVES installed.
  +        A filesystem area accessible by the worker account on the machine 
hosting the master instance and accessible by the worker account  on all 
machines hosting a slave instance.
  +        In local operation mode, the worker account running the "master" 
command and worker account  running the "slave" command share data through NFS.
  +        In remote operation mode, the worker account running the "master" 
command access the shared folder directly and the worker account running the 
"slave" command access shared folder through rsync.
   
  -    Typical setup:
  +    SETUP INSTRUCTIONS
   
  -    Install a MASTER, one or more SLAVES with DRIVER instances.
  +    Install the MASTER INSTANCE
   
  -        mkdir /bf
  -        for i in master slaves driver; do \
  -            mkdir /d1/$i; \
  -            ln -s /d1/$i /bf/$i; \
  -            sh obmtool $i; \
  -        done
  +        a) on a host with no slave instance
   
  -    Create a SHARED directory and a WORKER account
  +        # 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
   
  -        su - root
  -        ... /etc/passwd #worker:*:999:999::0:0:Build Farm 
Worker:/bf/worker:/bf/master/lib/openpkg/bash
  -        ... /etc/group  #worker:*:999:worker
  -        mkdir /d1/worker
  -        ln -s /d1/worker /bf/worker
  -        chown worker /bf/worker
  -        chgrp worker /bf/worker
  +        b) on a host with a slave instance
   
  -    Initialize MASTER and adjust configuration verbose
  +        # sh openpkg-*-*.src.sh --prefix=/bf --user=bf --group=bf --tag=bf
  +        # sh openpkg-*-*-*-*.sh
  +        # su - bf
  +        $ openpkg build -D with_bf_master=yes -D with_bf_slave=yes 
openpkg-tools | sh
   
  -        su - master
  -        openpkg bf-mk --init -V
  -        vi /bf/master/etc/openpkg-tools/bf.conf
  +    Install a SLAVE INSTANCE on every build host
   
  -    Allow the WORKER to write the database via "openpkg bf-db"
  +        # sh openpkg-*-*.src.sh --prefix=/bf --user=bf --group=bf --tag=bf
  +        # sh openpkg-*-*-*-*.sh
  +        # su - bf
  +        $ openpkg build -D with_bf_slave=yes openpkg-tools | sh
   
  -        su - root
  -        mkdir        /bf/master/var/openpkg-tools/bf
  -        chown master /bf/master/var/openpkg-tools/bf
  -        chgrp worker /bf/master/var/openpkg-tools/bf
  -        chmod 775    /bf/master/var/openpkg-tools/bf
  +    Install a WORKBENCH INSTANCE on every build host
   
  -    let WORKER build SLAVES environment on SHARED directory from MASTER 
config
  +        # sh openpkg-*-*.src.sh --prefix=/openpkg --user=openpkg 
--group=openpkg --tag=openpkg \
  +             --muid="42000" --ruid="42001" --nuid="42002" \
  +             --mgid="42000" --rgid="42001" --ngid="42002"
  +        # sh openpkg-*-*-*-*.sh
  +        # su - openpkg
  +        $ echo 'openpkg_rc_all="yes"' >>~/etc/rc.conf
   
  -        su - worker /bf/master/bin/openpkg bf-mk
  +    Create WORKER ACCOUNT
   
  -    enter WORKER area (and optionally repeat previous step)
  +        Details are actually specific to the Unix system being used.
  +        Create a user "worker" with primary group "worker" and homedir 
~worker
   
  -        su - worker
  -        master
  +    Initialize MASTER INSTANCE and adjust configuration verbose
   
  -    run WORKER to initialize screen(s)
  +        # su - bf
  +        $ openpkg bf-mk --init -V
  +        $ vi ~/etc/openpkg-tools/bf.conf
   
  -        su - worker
  -        worker
  +    Allow the WORKER ACCOUNT to write the configuration, if desired
   
  -    run MASTER once
  +        # chgrp worker /bf/master/etc/openpkg-tools/bf.conf
  +        # chmod g+w    /bf/master/etc/openpkg-tools/bf.conf
   
  -        su - worker
  -        worker
  -        select MASTER screen
  -        master -1
  +    Allow the WORKER ACCOUNT to write the database via "openpkg bf-db"
   
  -    run SLAVE in a loop
  +        # mkdir        /bf/master/var/openpkg-tools/bf
  +        # chown master /bf/master/var/openpkg-tools/bf
  +        # chgrp worker /bf/master/var/openpkg-tools/bf
  +        # chmod 775    /bf/master/var/openpkg-tools/bf
   
  -        su - worker
  -        worker
  -        reattaches to screen, select SLAVE or create a new screen
  -        slave -l
  +    Setup WORKER build environment on shared folder
   
  -    access database
  +        # su - worker
  +        $ /bf/bin/openpkg bf-mk
   
  -        su - root
  -        vi /bf/master/etc/apache/apache.conf
  -        adjust Apache config to listen on favorite <address>:<port>
  -        /bf/master/bin/openpkg rc apache start
  -        mozilla http://127.0.0.1/openpkg-cgi/openpkg-tools/bf-ui.cgi
  +    Enter WORKER build environment
   
  -=head1 PACKAGES
  +        # su - worker
  +        $ master
   
  -    Here is a list of required packages in obmtool.conf format which is
  -    easy to read for humans and can be used for automation verbatim.
  +    Initialize screen
   
  -##
  -##  obmtool.conf -- OpenPKG poor man's Boot, Build & Management Tool 
Configuration
  -##  find obmtool at http://www.zfos.org/
  -##
  +        # su - worker
  +        $ worker
  +
  +    Run MASTER once
  +
  +        # su - worker
  +        $ worker
  +        select the MASTER screen
  +        $ master -1
   
  -%common
  -    @hasfeature TAGFMT || exit 1 # require obmtool to support TAGFMT
  +    run SLAVE in a loop
  +
  +        # su - worker
  +        $ worker
  +        reattaches to screen, select SLAVE or create a new screen
  +        $ slave -l
   
  -%master
  -    #openpkg build -Zu -D perl-dbi::with_dbd_sqlite perl-dbi perl-www apache 
rsync cfg shtool openssh | sh build2obmtool.sh
  -    echo "---- boot/build ${NODE} %${CMD} ----"
  -    PREFIX=/bf/${CMD}
  -    @install openpkg-2.2.2-2.2.2 \
  -        --tag="${CMD}" \
  -        --prefix="${PREFIX}" \
  -        --user="${CMD}" --group="${CMD}"
  -    @install make-3.80-2.2.0
  -    @install binutils-2.14-2.2.0
  -    @install gcc-3.4.2-2.2.0
  -    @install perl-5.8.5-2.2.1
  -    @install cfg-0.9.7-20041219 --with=perl
  -    @install sqlite-2.8.15-2.2.0 --with=v3
  -    @install perl-openpkg-5.8.5-2.2.0
  -    @install perl-ds-5.8.5-2.2.0
  -    @install perl-time-5.8.5-2.2.0
  -    @install readline-5.0.0-2.2.0
  -    @install perl-term-5.8.5-2.2.0
  -    @install perl-sys-5.8.5-2.2.0
  -    @install openssl-0.9.7d-2.2.0
  -    @install perl-crypto-5.8.5-2.2.0
  -    @install perl-net-5.8.5-2.2.0
  -    @install perl-dbi-5.8.5-2.2.0 --with=dbd_sqlite
  -    @install sharutils-4.3.77-2.2.0
  -    @install ncurses-5.4.20041009-2.2.0
  -    @install texinfo-4.7-2.2.0
  -    @install diffutils-2.8.7-2.2.0
  -    @install pcre-5.0-2.2.0
  -    @install grep-2.5.1-2.2.0
  -    @install bzip2-1.0.2-2.2.0
  -    @install perl-util-5.8.5-2.2.0
  -    @install gzip-1.3.5-2.2.0
  -    @install perl-mail-5.8.5-2.2.0
  -    @install perl-ssl-5.8.5-2.2.0
  -    @install perl-parse-5.8.5-2.2.0
  -    @install zlib-1.2.1-2.2.0
  -    @install expat-1.95.8-2.2.0
  -    @install perl-xml-5.8.5-2.2.0
  -    @install perl-www-5.8.5-2.2.0
  -    @install gdbm-1.8.3-2.2.0
  -    @install apache-1.3.31-2.2.3
  -    @install rsync-2.6.3-2.2.0
  -    @install shtool-2.0.1-2.2.0
  -    @install fsl-1.5.0-2.2.0
  -    @install openssh-3.9p1-2.2.0
  -    @install screen-4.0.2-2.2.0
  -    @install openpkg-tools-0.8.28-20050124 --with=bf
  -
  -%slaves
  -    echo "---- boot/build ${NODE} %${CMD} ----"
  -    PREFIX=/bf/${CMD}
  -    @install openpkg-2.2.2-2.2.2 \
  -        --tag="${CMD}" \
  -        --prefix="${PREFIX}" \
  -        --user="${CMD}" --group="${CMD}"
  -
  -%driver
  -    # 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 \
  -        --tag="${CMD}" \
  -        --prefix="${PREFIX}" \
  -        --user="${CMD}" --group="${CMD}"
  -    @install openpkg-2.2.2-2.2.2
  -    @install make-3.80-2.2.0
  -    @install binutils-2.14-2.2.0
  -    @install gcc-3.4.2-2.2.0
  -    @install fsl-1.5.0-2.2.0
  -    @install perl-5.8.5-2.2.1
  -    @install shtool-2.0.1-2.2.0
  -    @install openssl-0.9.7d-2.2.0
  -    @install zlib-1.2.1-2.2.0
  -    @install openssh-3.9p1-2.2.0
  +    access database
  +
  +        # su - bf
  +        $ vi ~/etc/apache/apache.conf
  +        adjust Apache config to listen on favorite <address>:<port>
  +        $ openpkg rc apache start
  +        browse to http://127.0.0.1/openpkg-cgi/openpkg-tools/bf-ui.cgi
   
   =cut
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-tools/cmd/bf-ui.pl
  ============================================================================
  $ cvs diff -u -r1.26 -r1.27 bf-ui.pl
  --- openpkg-tools/cmd/bf-ui.pl        1 Jan 2006 14:04:48 -0000       1.26
  +++ openpkg-tools/cmd/bf-ui.pl        21 Sep 2006 15:19:55 -0000      1.27
  @@ -100,7 +100,7 @@
       $osspcfg->parse($txt) || die "error parsing config file";
       my $tree = $osspcfg->unpack(-index => '.*') || die "error unpacking 
config file";
   
  -    foreach my $section (qw(master shared driver slaves)) {
  +    foreach my $section (qw(master shared slave workbench)) {
           foreach my $k (keys %{$tree->{$section}->[1]}) {
               my $v = $tree->{$section}->[1]->{$k}->[1];
               $v =~ s|%{([^}\.]+)}|%{$section.\1}|g; #expand shortcuts with 
section omitted
  @@ -138,7 +138,7 @@
   
   #   handle config
   my $cfg = &readconfig($opt_config);
  -my $shared      = $cfg->{"shared"}->{"prefix"}      || die "mandatory 
setting shared.prefix undefined";
  +my $shared      = $cfg->{"shared"}->{"folder"}      || die "mandatory 
setting shared.folder undefined";
   my $dbfile      = $cfg->{"master"}->{"dbfile"}      || die "mandatory 
setting master.dbfile undefined";
   my $lockretries = $cfg->{"master"}->{"lockretries"} || 250;
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-tools/cmd/src2make.pl
  ============================================================================
  $ cvs diff -u -r1.20 -r1.21 src2make.pl
  --- openpkg-tools/cmd/src2make.pl     21 Sep 2006 15:11:11 -0000      1.20
  +++ openpkg-tools/cmd/src2make.pl     21 Sep 2006 15:19:55 -0000      1.21
  @@ -968,7 +968,7 @@
       $osspcfg->parse($txt) || die "error parsing config file";
       my $tree = $osspcfg->unpack(-index => '.*') || die "error unpacking 
config file";
   
  -    foreach my $section (qw(master shared driver slaves)) {
  +    foreach my $section (qw(master shared slave workbench)) {
           foreach my $k (keys %{$tree->{$section}->[1]}) {
               my $v = $tree->{$section}->[1]->{$k}->[1];
               $v =~ s|%{([^}\.]+)}|%{$section.\1}|g; #expand shortcuts with 
section omitted
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     openpkg-cvs@openpkg.org

Reply via email to