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

  Server: cvs.openpkg.org                  Name:   Michael van Elst
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src                      Date:   15-Jan-2003 15:54:17
  Branch: HEAD                             Handle: 2003011514541700

  Modified files:
    openpkg-src/openpkg-tool
                            openpkg-build.pl

  Log:
    better enforce zero-semantics, simple text parser now reads option
    defaults

  Summary:
    Revision    Changes     Path
    1.37        +18 -9      openpkg-src/openpkg-tool/openpkg-build.pl
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg-tool/openpkg-build.pl
  ============================================================================
  $ cvs diff -u -r1.36 -r1.37 openpkg-build.pl
  --- openpkg-src/openpkg-tool/openpkg-build.pl 15 Jan 2003 13:45:43 -0000      1.36
  +++ openpkg-src/openpkg-tool/openpkg-build.pl 15 Jan 2003 14:54:17 -0000      1.37
  @@ -539,19 +539,23 @@
   #
   # pull in OPTIONS for a package or an RPM file
   #
  -sub get_with ($;$) {
  -    my($t,$fn) = @_;
  +sub get_with ($$;$) {
  +    my($env,$t,$fn) = @_;
       my(@l,%with);
  +    my($opt);
   
  -    unless ($t->{OPTIONS}) {
  +    if (($env && $env->{zero}) || $t->{OPTIONS}) {
  +        $opt = $t->{OPTIONS};
  +    } else {
           if (defined $fn) {
               @l = `$RPM_NPRIV -qi -p $fn`;
           } else {
               @l = `$RPM_NPRIV -qi $t->{name}`;
           }
  -        $t->{OPTIONS} = parse_options(\@l);
  +        $opt = parse_options(\@l);
  +        $t->{OPTIONS} = $opt if $env;
       }
  -    return $t->{OPTIONS};
  +    return $opt;
   }
   
   #
  @@ -729,6 +733,12 @@
           } elsif ($tag eq 'Prefixes') {
               $prefix = $body;
           } elsif ($tag eq 'rdf:li' || $tag eq 'resource') {
  +            if (defined $attrname) {
  +                $body = {
  +                    $attrname => $attrval,
  +                    content   => $body
  +                };
  +            }
               if ($section eq 'prereq') {
                   push(@prereq, $body);
               } elsif ($section eq 'bprereq') {
  @@ -1225,7 +1235,7 @@
       if ($i && (@vers = get_versions($i, $cond))) {
           foreach (@vers) {
               $t = $i->{$_}->[0];
  -            get_with($t);
  +            get_with($env,$t);
               if (target_suitable($t, $env->{with})) {
                   $tdef = $t;
                   unless ($env->{upgrade}) {
  @@ -1289,7 +1299,6 @@
               return;
           }
           # pull in options
  -        get_with($t);
           if ($target->{REBUILD}) {
               target_setstatus($target,'DEPEND',1);
               print "# rebuilding $target->{name} (dependency)\n";
  @@ -1307,7 +1316,7 @@
               return;
           }
           # use options from installed base
  -        override_options(get_with($target), get_with($t),
  +        override_options(get_with($env,$target), get_with($env,$t),
                            $env->{config}->{optreg});
           # remember this is a rebuild for a proxy package
           $target->{PROXY} = $t->{PROXY};
  @@ -1609,7 +1618,7 @@
       my(%target) = %$t;
   
       # pull in options from binary RPM file
  -    get_with(\%target, $fn);
  +    get_with(undef,\%target, $fn);
   
       return \%target;
   }
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to