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

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src                      Date:   05-Feb-2003 17:21:32
  Branch: OPENPKG_1_STABLE                 Handle: 2003020516212901

  Modified files:           (Branch: OPENPKG_1_STABLE)
    openpkg-src/openpkg-tool
                            openpkg-build.pl openpkg-tool.spec openpkg.pod

  Log:
    MFC: all latest changes from HEAD

  Summary:
    Revision    Changes     Path
    1.39.2.2    +226 -127   openpkg-src/openpkg-tool/openpkg-build.pl
    1.27.2.5    +3  -3      openpkg-src/openpkg-tool/openpkg-tool.spec
    1.10.2.2    +7  -1      openpkg-src/openpkg-tool/openpkg.pod
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg-tool/openpkg-build.pl
  ============================================================================
  $ cvs diff -u -r1.39.2.1 -r1.39.2.2 openpkg-build.pl
  --- openpkg-src/openpkg-tool/openpkg-build.pl 21 Jan 2003 14:00:27 -0000      
1.39.2.1
  +++ openpkg-src/openpkg-tool/openpkg-build.pl 5 Feb 2003 16:21:29 -0000       
1.39.2.2
  @@ -102,7 +102,11 @@
               $env = $env{$1};
           } elsif (my($opt,$val) = /^\-([$go])\s*(.*?)\s*$/) {
               $val = 1 unless defined $val;
  -            $env->{$opt} = $val;
  +            if (exists $env->{$opt}) {
  +                $env->{$opt} = " $val";
  +            } else {
  +                $env->{$opt} = $val;
  +            }
           }
       }
       close(FH);
  @@ -255,7 +259,7 @@
   {
       my($c,@q,@g);
   
  -    $c = run("$RPM --eval '%{_rpmdir} %{_rpmfilename} %{_target_os} %{_target_cpu} 
%{_prefix}'");
  +    $c = run("$RPM --eval \"%{_rpmdir} %{_rpmfilename} %{_target_os} %{_target_cpu} 
%{_prefix}\"");
       chomp($c);
       (@q) = split(/\s+/,$c);
   
  @@ -308,7 +312,7 @@
       #
       if (($pre,$with) = $nam =~ /^(\S+?)::(\S*)$/) {
           $val =~ s/(?:\%([0-9a-fA-F][0-9a-fA-F]))/chr(hex($1))/eg;
  -        ($ver,$rel,$pxy) = ($val, '', undef);
  +        ($ver,$rel,$pxy) = ($val, undef, undef);
       } else {
           ($ver,$rel,$pxy) = $val =~ /^([^\s\-]+)-([^\s\+]+)(\+PROXY)?$/;
       }
  @@ -436,7 +440,7 @@
               $options{$p->{prefix}}->{$p->{with}} = $p->{version}
           }
   
  -        push @{$map{$p->{name}}->{"$p->{version}-$p->{release}"}}, {
  +        push @{$map{$p->{name}}->{vs($p)}}, {
               name       => $p->{name},
               version    => (defined $p->{version} ? $p->{version} : '*'),
               release    => (defined $p->{release} ? $p->{release} : '*'),
  @@ -525,7 +529,7 @@
   sub parse_options ($) {
       my($l) = @_;
       $l = join("\n", @$l) if ref $l;
  -    return if ($l !~ m/(--define|\%option\s+)/s);
  +    return {} if ($l !~ m/(--define|\%option\s+)/s);
       my $with = {};
       $l =~ s/--define\s*'(\S+)\s+(\S+?)'/$with->{$1} = $2, ''/sge; # before 
openpkg-20021230
       $l =~ s/\%option\s+(\S+)\s+(\S+)/$with->{$1} = $2, ''/sge;     # after  
openpkg-20021230
  @@ -541,28 +545,46 @@
       my($old, $new, $reg) = @_;
   
       foreach my $k (keys %$new) {
  -        $old->{$k} = $new->{$k} if exists $old->{$k} || $k =~ /^$reg$/;
  +        if ((exists $old->{$k} && $old->{$k} ne $new->{$k}) || $k =~ /^$reg$/) {
  +            $old->{$k} = $new->{$k};
  +        }
       }
   }
   
   #
  +# merge any number of options together
  +#
  +sub combine_options {
  +    my($old) = shift;
  +    my($new) = { %$old };
  +    foreach (grep { defined $_ } @_) {
  +        override_options($new,$_,''),
  +    }
  +    return $new;
  +}
  +
  +#
   # pull in OPTIONS for a package or an RPM file
   #
  -sub get_with ($$;$) {
  -    my($env,$t,$fn) = @_;
  +sub get_with ($;$) {
  +    my($t,$fn) = @_;
       my(@l,%with);
       my($opt);
   
  -    if (($env && $env->{zero}) || $t->{OPTIONS}) {
  +    if ($t->{OPTIONS}) {
           $opt = $t->{OPTIONS};
       } else {
           if (defined $fn) {
               @l = run("$RPM -qi -p $fn");
  +            $opt = parse_options(\@l);
  +            # don't write back result, this is just
  +            # for testing compatibility of a binary
  +            # package
           } else {
               @l = run("$RPM -qi $t->{name}");
  +            $opt = parse_options(\@l);
  +            $t->{OPTIONS} = $opt;
           }
  -        $opt = parse_options(\@l);
  -        $t->{OPTIONS} = $opt if $env;
       }
       return $opt;
   }
  @@ -626,7 +648,7 @@
   # grep XML Bag against condition
   # return as flat list
   #
  -sub with_list ($$) {
  +sub xwith ($$) {
       my($bags,$with) = @_;
       my($bag,$li,$el);
       my(@out);
  @@ -642,26 +664,44 @@
       return \@out;
   }
   
  +#
  +# grep simple parser bag against condition
  +# return as flat list
  +#
  +sub swith ($$$) {
  +    my($bags,$name,$with) = @_;
  +    my($cond);
  +    my(@out);
  +
  +    foreach $cond (keys %$bags) {
  +        next unless conditional($cond, $with);
  +        if (exists $bags->{$cond}->{$name}) {
  +            push @out, @{$bags->{$cond}->{$name}};
  +        }
  +    }
  +
  +    return \@out;
  +}
  +
   sub goodpf ($$) {
       my($l,$p) = @_;
       return 1 if $l eq '';
       return $l =~ /(?:^|\s)\Q$p\E(?:\s|$)/;
   }
   
  -sub simple_text_parser ($$$$$) {
  -    my($fh,$url,$with,$map,$pfmatch) = @_;
  +sub simple_text_parser ($$$$$$) {
  +    my($fh,$url,$with,$map,$pfmatch,$installed) = @_;
       my(@include);
   
       my($section);
       my($name,$version);
  -    my($href,$release,$desc);
  -    my(@prereq,@bprereq);
  -    my(@provides,@conflicts,@source,@nosource);
  -    my(%options);
  +    my($href,$release,$desc,$bags);
  +    my(%options,@provides);
       my($platform,$prefix);
       my($rec);
       my($tag,$cond,$attrname,$attrval,$body);
  -    my($useit);
  +    my($usecond);
  +    my($options, $mywith);
   
       print "# using simple text parser\n";
   
  @@ -678,12 +718,7 @@
               $desc      = '';
               $platform  = undef;
               $prefix    = undef;
  -            @prereq    = ();
  -            @bprereq   = ();
  -            @provides  = ();
  -            @conflicts = ();
  -            @source    = ();
  -            @nosource  = ();
  +            $bags      = {};
           }
   
           if (!(defined $href) &&
  @@ -709,37 +744,49 @@
               $
               /mx;
   
  -        $useit = conditional($cond,$with);
  -
           if ($tag eq 'Description') {
  +            $usecond = $cond;
               $section = 'description';
           } elsif ($tag eq '/Description') {
  +            $usecond = $cond;
               $section = undef;
           } elsif ($section eq 'description') {
               $desc .= $_;
           } elsif ($tag eq 'PreReq') {
  -            $section = 'prereq' if $useit;
  +            $usecond = $cond;
  +            $section = 'prereq';
           } elsif ($tag eq '/PreReq') {
  +            $usecond = undef;
               $section = undef;
           } elsif ($tag eq 'BuildPreReq') {
  -            $section = 'bprereq' if $useit;
  +            $usecond = $cond;
  +            $section = 'bprereq';
           } elsif ($tag eq '/BuildPreReq') {
  +            $usecond = undef;
               $section = undef;
           } elsif ($tag eq 'Provides') {
  -            $section = 'provides' if $useit;
  +            $usecond = $cond;
  +            $section = 'provides';
           } elsif ($tag eq '/Provides') {
  +            $usecond = undef;
               $section = undef;
           } elsif ($tag eq 'Conflicts') {
  -            $section = 'conflicts' if $useit;
  +            $usecond = $cond;
  +            $section = 'conflicts';
           } elsif ($tag eq '/Conflicts') {
  +            $usecond = undef;
               $section = undef;
           } elsif ($tag eq 'NoSource') {
  -            $section = 'nosource' if $useit;
  +            $usecond = $cond;
  +            $section = 'nosource';
           } elsif ($tag eq '/NoSource') {
  +            $usecond = undef;
               $section = undef;
           } elsif ($tag eq 'Source') {
  -            $section = 'source' if $useit;
  +            $usecond = $cond;
  +            $section = 'source';
           } elsif ($tag eq '/Source') {
  +            $usecond = undef;
               $section = undef;
           } elsif ($tag eq 'Name') {
               $name = $body;
  @@ -758,18 +805,10 @@
                       content   => $body
                   };
               }
  -            if ($section eq 'prereq') {
  -                push(@prereq, $body);
  -            } elsif ($section eq 'bprereq') {
  -                push(@bprereq, $body);
  -            } elsif ($section eq 'provides') {
  -                push(@provides, $body);
  -            } elsif ($section eq 'conflicts') {
  -                push(@conflicts, $body);
  -            } elsif ($section eq 'source') {
  -                push(@source, $body);
  -            } elsif ($section eq 'nosource') {
  -                push(@nosource, $body);
  +            if ($section eq 'provides') {
  +                push @provides, $body;
  +            } elsif ($section ne '') {
  +                push @{$bags->{"$usecond"}->{$section}}, $body;
               }
           } elsif ($tag eq '/rdf:Description') {
   
  @@ -796,26 +835,38 @@
                       });
                   }
   
  +                $options = %options
  +                    ? { %options }
  +                    : parse_options($desc);
  +
  +                if ($options) {
  +                    my(@t) = get_targets($installed->{$name},sub { 1; });
  +                    $mywith = combine_options(
  +                        $options,
  +                        @t ? get_with($t[0]) : undef,
  +                        $with
  +                    );
  +                } else {
  +                    $mywith = $with;
  +                }
  +
                   $rec = {
                       href      => (relurl($url, undef, $href))[0],
                       name      => $name,
                       version   => $version,
                       release   => $release,
  -                    depends   => depend_list([ @bprereq ]),
  -                    keeps     => depend_list([ @prereq ]),
  -                    conflicts => [ @conflicts ],
  -                    source    => [ @source ],
  -                    nosource  => [ @nosource ],
  +                    depends   => depend_list(swith($bags,'bprereq',$mywith)),
  +                    keeps     => depend_list(swith($bags,'prereq',$mywith)),
  +                    conflicts => swith($bags,'conflicts',$mywith),
  +                    source    => swith($bags,'source',$mywith),
  +                    nosource  => swith($bags,'nosource',$mywith),
                       desc      => $desc,
                       platform  => $platform,
  -                    prefix    => $prefix
  +                    prefix    => $prefix,
  +                    OPTIONS   => $options,
  +                    DEFOPTS   => { %$options }
                   };
   
  -                $rec->{OPTIONS} =
  -                    %options
  -                    ? { %options }
  -                    : parse_options($rec->{desc});
  -
                   foreach (@provides) {
                       push(@{$map->{$_->{name}}->{vs($_)}}, $rec);
                   }
  @@ -828,21 +879,22 @@
       return \@include;
   }
   
  -sub xml_parser ($$$$$) {
  -    my($fh, $url, $with, $map,$pfmatch) = @_;
  +sub xml_parser ($$$$$$) {
  +    my($fh, $url, $with, $map, $pfmatch, $installed) = @_;
       my(@include);
   
  -    my($xml,$desc,$sub);
  +    my($xml,$rep,$sub);
       my($provides,@provides,%options,$rec);
  -    my($href,$name,$version,$release);
  +    my($href,$name,$version,$release,$desc);
  +    my($options, $mywith);
   
       print "# using XML parser\n";
   
  -    $xml  = XML::Simple::XMLin($fh, forcearray => 1);
  -    $desc = $xml->{'Repository'}->[0]->{'rdf:Description'};
  -    $sub  = $xml->{'Repository'}->[0]->{'Repository'};
  +    $xml = XML::Simple::XMLin($fh, forcearray => 1);
  +    $rep = $xml->{'Repository'}->[0]->{'rdf:Description'};
  +    $sub = $xml->{'Repository'}->[0]->{'Repository'};
   
  -    foreach (@$desc) {
  +    foreach (@$rep) {
   
           $href    = $_->{'href'};
           $name    = xel($_->{'Name'});
  @@ -878,6 +930,22 @@
               });
           }
   
  +        $desc = xel($_->{'Description'});
  +        $options = %options
  +            ? { %options }
  +            : parse_options($desc);
  +
  +        if ($options) {
  +            my(@t) = get_targets($installed->{$name},sub { 1; });
  +            $mywith = combine_options(
  +                $options,
  +                @t ? get_with($t[0]) : undef,
  +                $with
  +            );
  +        } else {
  +            $mywith = $with;
  +        } 
  +
           $rec = {
               href      => (relurl($url, undef, $href))[0],
               name      => $name,
  @@ -885,19 +953,16 @@
               release   => $release,
               platform  => xel($_->{'Platform'}),
               prefix    => xel($_->{'Prefixes'}),
  -            depends   => depend_list(with_list($_->{'BuildPreReq'}, $with)),
  -            keeps     => depend_list(with_list($_->{'PreReq'}, $with)),
  -            conflicts => with_list($_->{'Conflicts'}, $with),
  -            source    => with_list($_->{'Source'}, $with),
  -            nosource  => with_list($_->{'NoSource'}, $with),
  -            desc      => xel($_->{'Description'})
  +            depends   => depend_list(xwith($_->{'BuildPreReq'}, $mywith)),
  +            keeps     => depend_list(xwith($_->{'PreReq'}, $mywith)),
  +            conflicts => xwith($_->{'Conflicts'}, $mywith),
  +            source    => xwith($_->{'Source'}, $mywith),
  +            nosource  => xwith($_->{'NoSource'}, $mywith),
  +            desc      => $desc,
  +            OPTIONS   => $options,
  +            DEFOPTS   => { %$options }
           };
   
  -        $rec->{OPTIONS} =
  -            %options
  -            ? { %options }
  -            : parse_options($rec->{desc});
  -
           foreach (@provides) {
               push(@{$map->{$_->{name}}->{vs($_)}}, $rec);
           }
  @@ -952,8 +1017,8 @@
   # fetch index from file or URL
   # recursively fetch sub-indexes
   #
  -sub get_index ($$$$$) {
  -    my($url,$fn,$with,$noxml,$pfmatch) = @_;
  +sub get_index ($$$$$$) {
  +    my($url,$fn,$with,$noxml,$pfmatch,$installed) = @_;
       my(%map,$include);
   
       open_index($url,$fn);
  @@ -966,9 +1031,11 @@
       }
   
       if ($noxml) {
  -        $include = simple_text_parser(\*RFH, $url, $with, \%map, $pfmatch);
  +        $include = simple_text_parser(\*RFH, $url, $with,
  +                                      \%map, $pfmatch, $installed);
       } else {
  -        $include = xml_parser(\*RFH, $url, $with, \%map, $pfmatch);
  +        $include = xml_parser(\*RFH, $url, $with,
  +                              \%map, $pfmatch, $installed);
       }
   
       close(RFH)
  @@ -981,7 +1048,7 @@
       foreach (@$include) {
           my($submap);
           my($suburl,$subfn) = relurl($url,$fn,$_);
  -        $submap = get_index($suburl,$subfn,$with,$noxml,$pfmatch);
  +        $submap = get_index($suburl,$subfn,$with,$noxml,$pfmatch,$installed);
           while (my($name,$vmap) = each %$submap) {
               while (my($vs,$recs) = each %$vmap) {
                   push @{$map{$name}->{$vs}}, @$recs;
  @@ -1005,11 +1072,22 @@
   }
   
   #
  +# fetch targets of a name that
  +# satisfies a condition
  +#
  +sub get_targets ($$) {
  +    my($relmap, $cond) = @_;
  +    return map {
  +            @{$relmap->{$_}}
  +        } get_versions($relmap, $cond);
  +}
  +
  +#
   # there can be multiple sources for a target release
   #
  -sub chose_source ($$@) {
  -    my($env, $name, $vmap, @vers) = @_;
  -    my(@recs,@nrecs,$rec);
  +sub chose_source ($$$$@) {
  +    my($env, $name, $select, $vmap, @vers) = @_;
  +    my(@recs,@nrecs,$rec,%nam);
   
       return unless @vers;
   
  @@ -1026,6 +1104,12 @@
               } map { @{$vmap->{$_}} } @vers;
       return unless @recs;
   
  +    if (defined $select) {
  +        @recs = grep {
  +            vsn($_) =~ /^\Q$select\E/
  +        } @recs;
  +    }
  +
       if (scalar(@recs) > 1) {
           @nrecs = grep {
               $env->{built}->{$_->{name}} ||
  @@ -1034,6 +1118,13 @@
           @recs = @nrecs if @nrecs;
       }
   
  +    if (scalar(@recs) > 1) {
  +        @nrecs = grep {
  +            $name eq $_->{name}
  +        } @recs;
  +        @recs = @nrecs if @nrecs;
  +    }
  +
       if (scalar(@recs) > 1 && !$env->{sourceonly}) {
           @nrecs = grep {
               defined $_->{'platform'}
  @@ -1042,21 +1133,26 @@
       }
   
       if (scalar(@recs) > 1) {
  -
  -        print "# ambigous sources for $name\n";
  -        my($i) = 0;
  -        foreach (@recs) {
  -            print "# $i: ".vsn($_)." = $_->{href}\n";
  -            $i++;
  +        %nam = map { $_->{name} => 1 } @recs;
  +        if (scalar(keys %nam) > 1) {
  +            print "# ambigous sources for $name\n";
  +            my($i) = 0;
  +            foreach (@recs) {
  +                print "# $i: ".vsn($_)." = $_->{href}\n";
  +                $i++;
  +            }
  +            return;
           }
  -        return;
  -
  -    } else {
  +    }
  +    
  +    if (@recs) {
           if ($env->{upgrade}) {
               $rec = $recs[-1];
           } else {
               $rec = $recs[0];
           }
  +    } else {
  +        return;
       }
   
       print "# source for $name is ".vsn($rec)."\n";
  @@ -1258,7 +1354,7 @@
       if ($i && (@vers = get_versions($i, $cond))) {
           foreach (@vers) {
               $t = $i->{$_}->[0];
  -            get_with($env,$t);
  +            get_with($t);
               if (target_suitable($t, $env->{with})) {
                   $tdef = $t;
                   unless ($env->{upgrade}) {
  @@ -1271,7 +1367,7 @@
           return ($b->{$vers[0]}->[0], 1);
       }
   
  -    $t = chose_source($env, $name, $r, get_versions($r, $cond));
  +    $t = chose_source($env, $name, undef, $r, get_versions($r, $cond));
       if ($t) {
           if (!$tdef ||
               ($env->{upgrade} && target_newer($t, $env->{installed}))) {
  @@ -1339,7 +1435,7 @@
               return;
           }
           # use options from installed base
  -        override_options(get_with($env,$target), get_with($env,$t),
  +        override_options(get_with($target), get_with($t),
                            $env->{config}->{optreg});
           # remember this is a rebuild for a proxy package
           $target->{PROXY} = $t->{PROXY};
  @@ -1455,19 +1551,21 @@
       # handle various patterns
       #
       if (defined $pattern) {
  -        @todo = ();
  -        foreach (split(/\s+/,$pattern)) {
  -            next unless /\S/;
  -            if (s/\*+$//) {
  -                push @todo, '^'.quotemeta($_).'';
  -            } else {
  -                push @todo, '^'.quotemeta($_).'$';
  -            }
  -        }
           @todo = map {
               my($p) = $_;
  -            grep(/$p/, keys %{$env->{repository}})
  -        } @todo;
  +            my($s);
  +            $s = $1 if $p =~ s/(,[^\s,]+)$//;
  +            if ($p =~ s/\*+$//) {
  +                $p = '^'.quotemeta($p).'';
  +            } else {
  +                $p = '^'.quotemeta($p).'$';
  +            }
  +            map {
  +                "$_$s"
  +            } grep {
  +                /$p/
  +            } keys %{$env->{repository}}
  +        } split(/\s+/,$pattern);
       } else {
           #
           # undefined pattern means -a option that selects
  @@ -1491,7 +1589,7 @@
   sub build_list ($$) {
       my($pattern, $env) = @_;
       my(@goals,@targets,@keeps,@conflicts,@bonly,$t);
  -    my($name,$r,$i,@vers);
  +    my($name,$select,$r,$i,@vers);
       my($todo,%keep);
   
       $todo = search_pattern($pattern, $env);
  @@ -1500,6 +1598,8 @@
       # chose sources for goals from repository
       #
       foreach $name (@$todo) {
  +        $select = undef;
  +        $select = $1 if $name =~ s/,([^\s,]+)$//;
           $t = undef;
   
           #
  @@ -1513,14 +1613,14 @@
           #unless ($env->{upgrade}) {
           #    $i = $env->{installed}->{$name};
           #    if (@vers = get_versions($i, sub { 1; })) {
  -        #        $t = chose_source($env, $name, $i, @vers);
  +        #        $t = chose_source($env, $name, $select, $i, @vers);
           #    }
           #}
   
           unless ($t) {
               $r = $env->{repository}->{$name};
               if (@vers = get_versions($r, sub { 1; })) {
  -                $t = chose_source($env, $name, $r, @vers);
  +                $t = chose_source($env, $name, $select, $r, @vers);
               }
           }
   
  @@ -1641,7 +1741,7 @@
       my(%target) = %$t;
   
       # pull in options from binary RPM file
  -    get_with(undef,\%target, $fn);
  +    get_with(\%target, $fn);
   
       return \%target;
   }
  @@ -1670,32 +1770,30 @@
   # then map the result to --define command line arguments
   # suitable for rpm
   #
  -sub make_defines ($$$) {
  -    my($old, $new, $c) = @_;
  +sub make_defines ($$$$) {
  +    my($old, $new, $def, $c) = @_;
       my($with);
   
  +    $old = {} unless $old;
  +    $def = {} unless $def;
  +
       #
       # override old parameters with new parameters
       # drop new parameters that do not exist in old set
       #
  -    # if there is no old set at all (which happens if there
  -    # is no template and no installed package), just use the
  -    # new parameters and assume these are useful.
  -    #
  -    if ($old) {
  -        $old = { %$old };
  -        override_options($old, $new, $c->{optreg});
  -    } else {
  -        $old = $new;
  -    }
  +    $old = { %$old };
  +    override_options($old, $new, $c->{optreg});
   
       #
       # convert parameters to --define command line options
       # skip parameter templates from index
  +    # skip parameters that are identical to defaults
       #
       $with = join(' ',map { "--define '$_ $old->{$_}'" }
  -                     sort grep { $old->{$_} =~ /\S/ &&
  -                                 $old->{$_} !~ /^%/
  +                     sort grep {
  +                         $old->{$_} =~ /\S/ &&
  +                         $old->{$_} !~ /^%/ &&
  +                         $old->{$_} ne $def->{$_}
                        } keys %$old);
   
       $with = ' '.$with if $with ne '';
  @@ -1732,10 +1830,10 @@
           # OR existing binary package doesn't satisfy wanted options
           #
           $cmd1 = undef;
  -        if ($uncond || !-f $bpkg || $_->{REBUILD} ||
  +        if ($uncond || !-f $bpkg ||
               !target_suitable(binary_target($_, $bpkg),$with)) {
   
  -            $opt = make_defines($_->{OPTIONS}, $with, $c);
  +            $opt = make_defines($_->{OPTIONS}, $with, $_->{DEFOPTS}, $c);
   
               #
               # proxy packages are rebuilt from their maste
  @@ -1936,7 +2034,8 @@
                       $opt_f,
                       ($opt_W ? undef : \%with),
                       $opt_X,
  -                    $config->{platform});
  +                    $config->{platform},
  +                    $installed);
   
   $env = {
       config     => $config,
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg-tool/openpkg-tool.spec
  ============================================================================
  $ cvs diff -u -r1.27.2.4 -r1.27.2.5 openpkg-tool.spec
  --- openpkg-src/openpkg-tool/openpkg-tool.spec        21 Jan 2003 14:00:27 -0000     
 1.27.2.4
  +++ openpkg-src/openpkg-tool/openpkg-tool.spec        5 Feb 2003 16:21:30 -0000      
 1.27.2.5
  @@ -9,7 +9,7 @@
   ##  the above copyright notice and this permission notice appear in all
   ##  copies.
   ##
  -##  THIS SOFTWARE IS PROVIDED AS IS'' AND ANY EXPRESSED OR IMPLIED
  +##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  @@ -32,8 +32,8 @@
   Distribution: OpenPKG [PLUS]
   Group:        Bootstrapping
   License:      GPL
  -Version:      1.20030121
  -Release:      1.20030121
  +Version:      1.20030205
  +Release:      1.20030205
   
   #   list of sources
   Source0:      openpkg.sh
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg-tool/openpkg.pod
  ============================================================================
  $ cvs diff -u -r1.10.2.1 -r1.10.2.2 openpkg.pod
  --- openpkg-src/openpkg-tool/openpkg.pod      21 Jan 2003 14:00:27 -0000      
1.10.2.1
  +++ openpkg-src/openpkg-tool/openpkg.pod      5 Feb 2003 16:21:30 -0000       
1.10.2.2
  @@ -138,6 +138,12 @@
   on the upgraded package ("reverse dependencies"). The dependency
   information is read from an index generated by B<openpkg index>.
   
  +Packages are selected by providing a list of name patterns. Each
  +pattern is either a package name or a prefix followed by a '*'
  +character. Additionally you can append a discrimation prefix separated
  +by a comma that matches against the full name-version-revision
  +string.
  +
   The following command line options exist:
   
   =over 4
  @@ -320,7 +326,7 @@
   =item B<-A>
   
   Select all packages in the repository. Do not specify a pattern list together
  -with the B<-a> option.
  +with the B<-A> option.
   
   =back
   
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to