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:   19-Mar-2003 11:46:14
  Branch: OPENPKG_1_STABLE                 Handle: 2003031910461301

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

  Log:
    MFC: update to latest version

  Summary:
    Revision    Changes     Path
    1.39.2.4    +52 -24     openpkg-src/openpkg-tool/openpkg-build.pl
    1.11.2.3    +6  -1      openpkg-src/openpkg-tool/openpkg-index.pl
    1.27.2.7    +2  -2      openpkg-src/openpkg-tool/openpkg-tool.spec
    1.4.2.1     +43 -12     openpkg-src/openpkg-tool/openpkg.1
    1.10.2.3    +8  -1      openpkg-src/openpkg-tool/openpkg.pod
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg-tool/openpkg-build.pl
  ============================================================================
  $ cvs diff -u -r1.39.2.3 -r1.39.2.4 openpkg-build.pl
  --- openpkg-src/openpkg-tool/openpkg-build.pl 16 Feb 2003 09:20:17 -0000      
1.39.2.3
  +++ openpkg-src/openpkg-tool/openpkg-build.pl 19 Mar 2003 10:46:13 -0000      
1.39.2.4
  @@ -33,8 +33,8 @@
       $opt_R $opt_r $opt_f $opt_u $opt_U $opt_a $opt_A
       $opt_z $opt_Z $opt_P $opt_N $opt_E $opt_i $opt_D
       $opt_p $opt_q $opt_s $opt_S $opt_X $opt_M $opt_L
  -    $opt_W $opt_K/;
  -my $getopts = 'R:r:f:uUaAzZP:N:E:iD:p:qsSXMLWK';
  +    $opt_W $opt_K $opt_e/;
  +my $getopts = 'R:r:f:uUaAzZP:N:E:iD:p:qsSXMLWKe';
   getopts($getopts);
   
   ##########################################################################
  @@ -112,7 +112,7 @@
       close(FH);
   }
   
  -die "openpkg:build:USAGE: $0 [-R rpm] [-r repository] [-f index.rdf] 
[-uUzZiqsSXMLWK] [-P priv-cmd] [-N non-priv-cmd] [-p platform] [-Dwith ...] [-Ename 
...] ( [-aA] | patternlist )\n"
  +die "openpkg:build:USAGE: $0 [-R rpm] [-r repository] [-f index.rdf] 
[-uUzZiqsSXMLWKe] [-P priv-cmd] [-N non-priv-cmd] [-p platform] [-Dwith ...] [-Ename 
...] ( [-aA] | patternlist )\n"
       unless $#ARGV >= 0 || ($#ARGV == -1 && ($opt_a || $opt_A));
   
   ##########################################################################
  @@ -157,7 +157,7 @@
   my($RPM,$CURL,$PROG);
   
   $RPM = $opt_R || $env{''}->{'R'} || '@l_prefix@/bin/rpm';
  -$RPM = (`which $RPM` =~ m{^(/.*)})[0];
  +$RPM = (`which $RPM` =~ m{^(/.*)})[0] if ($RPM !~ m|^/|);
   die "FATAL: cannot locate rpm in path\n" unless $RPM =~ m{^/};
   
   # augment command line parameters
  @@ -178,7 +178,7 @@
       if (!defined $w) {
           return $s;
       } elsif ($w =~ /^-(.*)/) {
  -        return "$1 '$s'";
  +        return "$1 \"$s\"";
       } else {
           return "$w $s";
       }
  @@ -618,15 +618,12 @@
       } else {
           if (defined $fn) {
               $subfn = $fn;
  -            $subfn =~ s/\/[^\/]*$//;
  -            $subfn .= '/' unless $subfn =~ /\/$/;
  -            $subfn .= $suburl;
  +            $subfn =~ s/(\/)?\/*[^\/]*$/$1$suburl/;
               $suburl = $subfn;
           } else {
               $subfn = $url;
  -            $subfn =~ s/\/[^\/]*$//;
  -            $subfn .= '/' unless $subfn =~ /\/$/;
  -            $suburl = "$subfn$suburl";
  +            $subfn =~ s/(\/)?\/*[^\/]*$/$1$suburl/;
  +            $suburl = $subfn;
               $subfn  = undef;
           }
       }
  @@ -1248,16 +1245,41 @@
   }
   
   #
  -# test wether target could be upgraded
  +# determine wether target should be rebuild
   #
  -sub target_newer ($$) {
  -    my($target, $map) = @_;
  +sub target_better ($$$) {
  +    my($env, $target, $map) = @_;
       my($vs) = vs($target);
       my($vmap) = $map->{$target->{name}};
   
  -    return 1 unless $vmap;
  +    #
  +    # rebuild if target isn't installed
  +    #
  +    return 'new' unless $vmap;
  +
  +    #
  +    # always update GOALs
  +    #
  +    if ($target->{GOAL} && !grep { vcmp($vs, $_) <= 0; } keys %$vmap) {
  +        return 'goal';
  +    }
  +    #
  +    # if -e then
  +    # always update if installed version is different from repository
  +    #
  +    if ($env->{exact} && !grep { vcmp($vs, $_) == 0; } keys %$vmap) {
  +        return 'exact';
  +    }
  +    #
  +    # if -U then
  +    # always update if installed version is older than repository
  +    #
  +    if ($env->{upgrade} && !grep { vcmp($vs, $_) <= 0; } keys %$vmap) {
  +        return 'upgrade';
  +    }
   
  -    return !grep { vcmp($vs, $_) <= 0; } keys %$vmap;
  +    # keep installed target
  +    return;
   }
   
   #
  @@ -1366,8 +1388,7 @@
   
       $t = chose_source($env, $name, undef, $r, get_versions($r, $cond));
       if ($t) {
  -        if (!$tdef ||
  -            ($env->{upgrade} && target_newer($t, $env->{installed}))) {
  +        if (!$tdef || target_better($env, $t, $env->{installed})) {
               return ($t, 0);
           }
       }
  @@ -1385,7 +1406,7 @@
   sub make_dep ($$$$$$$) {
       my($who,$target,$depth,$env,$list,$blist,$clist) = @_;
       my($d,$k,%d,%k,$t,$old);
  -    my(@deps,$conflict);
  +    my(@deps,$conflict,$why);
   
       if (target_exists($target, $env->{built})) {
           print "# $target->{name} is already in list\n";
  @@ -1421,9 +1442,9 @@
           } elsif ($env->{zero}) {
               target_setstatus($target,'ZERO',1);
               print "# rebuilding $target->{name} (zero)\n";
  -        } elsif (target_newer($target, $env->{installed})) {
  -            target_setstatus($target,'UPGRADE',3);
  -            print "# rebuilding $target->{name} (upgrade)\n";
  +        } elsif ($why = target_better($env, $target, $env->{installed})) {
  +            target_setstatus($target,'UPDATE',3);
  +            print "# rebuilding $target->{name} ($why)\n";
           } elsif (!target_suitable($t, $env->{with})) {
               target_setstatus($target,'MISMATCH',2);
               print "# rebuilding $target->{name} (parameter mismatch)\n";
  @@ -1448,6 +1469,7 @@
       # mark this as a target before reverse dependencies trigger
       # it again
       push(@{$env->{built}->{$target->{name}}->{vs($target)}}, $target);
  +    $target->{LIMBO} = 1;
   
       $d = target_depends($target, $env->{repository});
       $k = target_keeps($target, $env->{repository});
  @@ -1471,6 +1493,9 @@
               if ($t) {
                   if ($old) {
                       print "# $target->{name} uses ".vsn($t)." for $_\n";
  +                    if ($t->{LIMBO}) {
  +                        print "# ATTENTION: ".vsn($t)." is in LIMBO\n";
  +                    }
                       next;
                   }
   
  @@ -1502,6 +1527,7 @@
       $target->{WHO} = $who;
       $target->{WHY} = $target->{STATUS};
       push(@$list, $target);
  +    $target->{LIMBO} = 0;
   
       foreach (@{$target->{nosource}}) {
           my($p) = $target->{source}->[$_];
  @@ -1623,6 +1649,7 @@
   
           if ($t) {
               warn_about_options($t, $env->{with}, $env->{config});
  +            $t->{GOAL} = 1;
               push(@goals, $t);
           } else {
               if ($env->{status}) {
  @@ -1643,8 +1670,8 @@
   
       %keep = map { $_ => 1 } @keeps;
       @bonly = reverse grep {
  -               !$keep{$_} && !$env->{installed}->{$_->{name}}->{vs($_)};
  -             } @targets;
  +        !$keep{$_} && !$env->{installed}->{$_->{name}}
  +    } @targets;
   
       return ([EMAIL PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED]);
   }
  @@ -2044,6 +2071,7 @@
       exclude    => \%exclude,
       upgrade    => ($opt_a || $opt_U),
       zero       => ($opt_z || $opt_Z),
  +    exact      => $opt_e,
       quick      => $opt_q,
       status     => ($opt_s || $opt_S),
       fatal      => [],
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg-tool/openpkg-index.pl
  ============================================================================
  $ cvs diff -u -r1.11.2.2 -r1.11.2.3 openpkg-index.pl
  --- openpkg-src/openpkg-tool/openpkg-index.pl 16 Feb 2003 09:20:17 -0000      
1.11.2.2
  +++ openpkg-src/openpkg-tool/openpkg-index.pl 19 Mar 2003 10:46:14 -0000      
1.11.2.3
  @@ -939,7 +939,12 @@
   }
   
   if ($opt_C) {
  -    require DB_File;
  +    eval {
  +        require DB_File;
  +    };
  +    if ($@) {
  +        die "Sorry. The -C option requires an installed DB_File perl module.\n";
  +    }
       tie %cache, 'DB_File', $opt_C, O_CREAT|O_RDWR, 0666, $DB_File::DB_HASH
           or die "FATAL: cannot tie cache '$opt_C' ($!)\n";
   }
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg-tool/openpkg-tool.spec
  ============================================================================
  $ cvs diff -u -r1.27.2.6 -r1.27.2.7 openpkg-tool.spec
  --- openpkg-src/openpkg-tool/openpkg-tool.spec        16 Feb 2003 09:20:17 -0000     
 1.27.2.6
  +++ openpkg-src/openpkg-tool/openpkg-tool.spec        19 Mar 2003 10:46:14 -0000     
 1.27.2.7
  @@ -32,8 +32,8 @@
   Distribution: OpenPKG [PLUS]
   Group:        Bootstrapping
   License:      GPL
  -Version:      1.20030216
  -Release:      1.20030216
  +Version:      1.20030319
  +Release:      1.20030319
   
   #   list of sources
   Source0:      openpkg.sh
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg-tool/openpkg.1
  ============================================================================
  $ cvs diff -u -r1.4 -r1.4.2.1 openpkg.1
  --- openpkg-src/openpkg-tool/openpkg.1        14 Jan 2003 20:39:00 -0000      1.4
  +++ openpkg-src/openpkg-tool/openpkg.1        19 Mar 2003 10:46:14 -0000      1.4.2.1
  @@ -129,7 +129,7 @@
   .\" ========================================================================
   .\"
   .IX Title "OPENPKG 1"
  -.TH OPENPKG 1 "2003-01-13" "openpkg-tool" "OpenPKG Maintainance"
  +.TH OPENPKG 1 "2003-02-28" "openpkg-tool" "OpenPKG Maintainance"
   .SH "NAME"
   \&\fBopenpkg\fR \- \fBOpenPKG\fR maintainance utility
   .SH "VERSION"
  @@ -161,7 +161,11 @@
   [\fB\-s\fR]
   [\fB\-S\fR]
   [\fB\-M\fR]
  +[\fB\-L\fR]
  +[\fB\-W\fR]
   [\fB\-X\fR]
  +[\fB\-K\fR]
  +[\fB\-e\fR]
   [\fB\-P\fR \fIpriv-cmd\fR]
   [\fB\-N\fR \fInon-priv-cmd\fR]
   [\fB\-p\fR \fIplatform\fR]
  @@ -190,17 +194,15 @@
   "\f(CW\*(C`OpenPKG\-CURRENT/Source/\*(C'\fR".
   .IP "\fB\-p\fR \fIplatform\fR" 4
   .IX Item "-p platform"
  -\&\fBopenpkg index\fR adds a platform attribute for binary RPMs. The
  -attribute is built as 
\fI%{arch}\fR\f(CW\*(C`\-\*(C'\fR\fIplatform\fR\f(CW\*(C`\-\*(C'\fR\fI%{os}\fR where
  -\&\fI%{arch}\fR and \fI%{os}\fR are taken from the \s-1RPM\s0 header and 
\fIplatform\fR is
  -the value of the \fB\-p\fR option. The default value is 
"\f(CW\*(C`unknown\*(C'\fR". This
  -must be used to distinguish between platforms that support the same
  -Architecture and \s-1OS\s0 name like various Linux distributions.
  +\&\fBopenpkg index\fR adds a platform attribute for binary RPMs. This
  +must be unique to correctly identify a specific architecture, \s-1OS\s0
  +and build environment.
   .IP "\fB\-C\fR \fIcache.db\fR" 4
   .IX Item "-C cache.db"
   Cache all \fI.spec\fR files into this Berkeley-DB file when indexing source
   RPMs. The cache is refreshed automatically when the source RPMs are more
  -recent than the cache entry.
  +recent than the cache entry. The \fB\-C\fR option requires an installed
  +DB_File perl module.
   .IP "\fB\-o\fR \fIindex.rdf\fR" 4
   .IX Item "-o index.rdf"
   Name of the output \s-1XML/RDF\s0 file, default is to write to \fIstdout\fR.
  @@ -226,6 +228,12 @@
   on the upgraded package (\*(L"reverse dependencies\*(R"). The dependency
   information is read from an index generated by \fBopenpkg index\fR.
   .PP
  +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.
  +.PP
   The following command line options exist:
   .IP "\fB\-R\fR \fIrpm\fR" 4
   .IX Item "-R rpm"
  @@ -320,22 +328,45 @@
   .IP "\fB\-M\fR" 4
   .IX Item "-M"
   Similar to \fB\-s\fR but print a short dependency map.
  +.IP "\fB\-L\fR" 4
  +.IX Item "-L"
  +Print a list of packages in the repository that depend on the target.
  +.IP "\fB\-W\fR" 4
  +.IX Item "-W"
  +Include all conditional dependencies as if all possible configuration
  +options had been switched on. This has little use except for generating
  +an all-inclusive list with the \fB\-L\fR option.
  +\&\fI\s-1ATTENTION:\s0 Even mutually exclusive options are evaluated to be 'on',
  +building packages with \f(BI\-W\fI therefore might fail or cause unusuable
  +results!\fR
   .IP "\fB\-X\fR" 4
   .IX Item "-X"
   Ignore an installed \s-1XML\s0 parser module but use the internal
   simple text parser instead.
  +.IP "\fB\-K\fR" 4
  +.IX Item "-K"
  +Keep packages that were installed temporarily during the build process.
  +.IP "\fB\-e\fR" 4
  +.IX Item "-e"
  +Rebuild exact version from repository even when you have installed
  +a newer version from another repository.
   .IP "\fB\-P\fR \fIpriv-cmd\fR" 4
   .IX Item "-P priv-cmd"
   Command prefix to use for install commands that require elevated
  -privileges. The most common tool for this is \fIsudo\fR\|(8).
  +privileges. The most common tool for this is \fIsudo\fR\|(8). If \fIpriv-cmd\fR
  +starts with a dash it will be run without the dash and the command
  +line it should execute is passed as a single quoted string.
   .IP "\fB\-N\fR \fInon-priv-cmd\fR" 4
   .IX Item "-N non-priv-cmd"
   Command prefix to use for install commands that do not require elevated
  -privileges. The most common tool for this is \fIsudo\fR\|(8).
  +privileges. The most common tool for this is \fIsudo\fR\|(8). If \fIpriv-cmd\fR
  +starts with a dash it will be run without the dash and the command
  +line it should execute is passed as a single quoted string.
   .IP "\fB\-p\fR \fIplatform\fR" 4
   .IX Item "-p platform"
   The platform string that is matched against the index for binary
  -packages. Default is to use the \fI%{_target_platform}\fR variable.
  +packages. Default is an empty string so that no binary packages
  +are matched.
   .IP "\fB\-D\fR\fIvar\fR=\fIval\fR" 4
   .IX Item "-Dvar=val"
   Specify configuration options for all selected packages. This can be
  @@ -356,7 +387,7 @@
   .IP "\fB\-A\fR" 4
   .IX Item "-A"
   Select all packages in the repository. Do not specify a pattern list together
  -with the \fB\-a\fR option.
  +with the \fB\-A\fR option.
   .SH "CONFIGURATION"
   .IX Header "CONFIGURATION"
   \&\fBopenpkg build\fR reads the configuration file \fI$HOME/.openpkg/build\fR.
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg-tool/openpkg.pod
  ============================================================================
  $ cvs diff -u -r1.10.2.2 -r1.10.2.3 openpkg.pod
  --- openpkg-src/openpkg-tool/openpkg.pod      5 Feb 2003 16:21:30 -0000       
1.10.2.2
  +++ openpkg-src/openpkg-tool/openpkg.pod      19 Mar 2003 10:46:14 -0000      
1.10.2.3
  @@ -64,6 +64,7 @@
   [B<-W>]
   [B<-X>]
   [B<-K>]
  +[B<-e>]
   [B<-P> I<priv-cmd>]
   [B<-N> I<non-priv-cmd>]
   [B<-p> I<platform>]
  @@ -106,7 +107,8 @@
   
   Cache all F<.spec> files into this Berkeley-DB file when indexing source
   RPMs. The cache is refreshed automatically when the source RPMs are more
  -recent than the cache entry.
  +recent than the cache entry. The B<-C> option requires an installed
  +DB_File perl module.
   
   =item B<-o> I<index.rdf>
   
  @@ -282,6 +284,11 @@
   =item B<-K>
   
   Keep packages that were installed temporarily during the build process.
  +
  +=item B<-e>
  +
  +Rebuild exact version from repository even when you have installed
  +a newer version from another repository.
   
   =item B<-P> I<priv-cmd>
   
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to