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

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-tools                    Date:   08-Jan-2005 10:09:55
  Branch: HEAD                             Handle: 2005010809095500

  Modified files:
    openpkg-tools/cmd       build.pl

  Log:
    - don't allow a package list if -A or -a is specified.
    - don't conflict with options of already installed packages
      (still a bit questionable) but require an update instead.
    - Make -E filter the packages selected by -A/-a (and any
      wildcard pattern you specify in the package list, -A is
      the same as '*').
    
    Submitted by: Michael van Elst

  Summary:
    Revision    Changes     Path
    1.9         +17 -15     openpkg-tools/cmd/build.pl
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-tools/cmd/build.pl
  ============================================================================
  $ cvs diff -u -r1.8 -r1.9 build.pl
  --- openpkg-tools/cmd/build.pl        24 Sep 2004 06:41:26 -0000      1.8
  +++ openpkg-tools/cmd/build.pl        8 Jan 2005 09:09:55 -0000       1.9
  @@ -114,7 +114,8 @@
   }
   
   die "openpkg:build:USAGE: $0 [-R rpm] [-r repository] [-f index.rdf] 
[-uUzZiqsSXMLWKebBg] [-P priv-cmd] [-N non-priv-cmd] [-p platform] [-Dwith ...] 
[-Ename ...] [-Hname ...] ( [-aA] | patternlist )\n"
  -    unless $#ARGV >= 0 || ($#ARGV == -1 && ($opt_a || $opt_A));
  +    unless ($#ARGV >= 0 && !($opt_a || $opt_A)) ||
  +           ($#ARGV == -1 && ($opt_a || $opt_A));
   
   ##########################################################################
   
  @@ -1596,8 +1597,7 @@
           $conflict = 1;
       }
   
  -    $relmap = $env->{built}->{$pro->{prefix}} ||
  -              $env->{installed}->{$pro->{prefix}};
  +    $relmap = $env->{built}->{$pro->{prefix}};
       @t = get_targets($relmap, sub { 1; });
       foreach $t (@t) {
           $with = $t->{OPTIONS};
  @@ -1904,18 +1904,17 @@
       if (defined $pattern) {
           @todo = map {
               my($p) = $_;
  -            my($s);
  +            my($s,$w);
               $s = $1 if $p =~ s/(,[^\s,]+)$//;
               if ($p =~ s/\*+$//) {
                   $p = '^'.quotemeta($p).'';
  +                $w = 1;
               } else {
                   $p = '^'.quotemeta($p).'$';
               }
  -            map {
  -                "$_$s"
  -            } grep {
  -                /$p/
  -            } keys %{$env->{repository}}
  +            map { "$_$s" }
  +            grep { /$p/ && !($w && exists $env->{exclude}->{$_}) }
  +                keys %{$env->{repository}}
           } split(/\s+/,$pattern);
       } else {
           #
  @@ -1925,7 +1924,9 @@
           @todo = grep {
                       my($n) = $_;
                       (ref $env->{installed}->{$n}) &&
  -                    grep { $_ ne '-' } keys %{$env->{installed}->{$n}}
  +                    !exists $env->{exclude}->{$n} &&
  +                    grep { $_ ne '-' }
  +                        keys %{$env->{installed}->{$n}}
                   } keys %{$env->{repository}};
       }
   
  @@ -2720,8 +2721,9 @@
   =item B<-E> I<name>
   
   Ignore a package with the specified I<name>. This can be used to avoid
  -upgrading to a broken package in the repository. There can be multiple
  -B<-E> options.
  +upgrading to a broken package in the repository. If you use a
  +wildcard pattern or the B<-a> or B<-A> options then I<name> will not
  +be selected. There can be multiple B<-E> options.
   
   =item B<-H> I<name>
   
  @@ -2730,13 +2732,13 @@
   
   =item B<-a>
   
  -Select all installed packages. Do not specify a pattern list together
  +Select all installed packages. You cannot specify a pattern list together
   with the B<-a> option.
   
   =item B<-A>
   
  -Select all packages in the repository. Do not specify a pattern list together
  -with the B<-A> option.
  +Select all packages in the repository. You cannot specify a pattern list
  +together with the B<-A> option.
   
   =back
   
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     openpkg-cvs@openpkg.org

Reply via email to