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 openpkg-web Date: 24-Jan-2003 10:57:55
Branch: HEAD Handle: 2003012409575301
Modified files:
openpkg-src/openpkg-tool
openpkg-build.pl openpkg-tool.spec openpkg.pod
openpkg-web news.txt
Log:
support optional discriminator prefix to pattern
Summary:
Revision Changes Path
1.44 +30 -18 openpkg-src/openpkg-tool/openpkg-build.pl
1.30 +2 -2 openpkg-src/openpkg-tool/openpkg-tool.spec
1.12 +7 -1 openpkg-src/openpkg-tool/openpkg.pod
1.3027 +1 -0 openpkg-web/news.txt
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-build.pl
============================================================================
$ cvs diff -u -r1.43 -r1.44 openpkg-build.pl
--- openpkg-src/openpkg-tool/openpkg-build.pl 22 Jan 2003 13:55:39 -0000 1.43
+++ openpkg-src/openpkg-tool/openpkg-build.pl 24 Jan 2003 09:57:54 -0000 1.44
@@ -1048,8 +1048,8 @@
#
# there can be multiple sources for a target release
#
-sub chose_source ($$@) {
- my($env, $name, $vmap, @vers) = @_;
+sub chose_source ($$$$@) {
+ my($env, $name, $select, $vmap, @vers) = @_;
my(@recs,@nrecs,$rec);
return unless @vers;
@@ -1067,6 +1067,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}} ||
@@ -1092,12 +1098,14 @@
}
return;
- } else {
+ } elsif (@recs) {
if ($env->{upgrade}) {
$rec = $recs[-1];
} else {
$rec = $recs[0];
}
+ } else {
+ return;
}
print "# source for $name is ".vsn($rec)."\n";
@@ -1312,7 +1320,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}))) {
@@ -1496,19 +1504,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
@@ -1532,7 +1542,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);
@@ -1541,6 +1551,8 @@
# chose sources for goals from repository
#
foreach $name (@$todo) {
+ $select = undef;
+ $select = $1 if $name =~ s/,([^\s,]+)$//;
$t = undef;
#
@@ -1554,14 +1566,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);
}
}
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-tool.spec
============================================================================
$ cvs diff -u -r1.29 -r1.30 openpkg-tool.spec
--- openpkg-src/openpkg-tool/openpkg-tool.spec 22 Jan 2003 10:46:56 -0000
1.29
+++ openpkg-src/openpkg-tool/openpkg-tool.spec 24 Jan 2003 09:57:54 -0000
1.30
@@ -32,8 +32,8 @@
Distribution: OpenPKG [PLUS]
Group: Bootstrapping
License: GPL
-Version: 20030122
-Release: 20030122
+Version: 20030124
+Release: 20030124
# list of sources
Source0: openpkg.sh
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg.pod
============================================================================
$ cvs diff -u -r1.11 -r1.12 openpkg.pod
--- openpkg-src/openpkg-tool/openpkg.pod 21 Jan 2003 13:25:06 -0000 1.11
+++ openpkg-src/openpkg-tool/openpkg.pod 24 Jan 2003 09:57:54 -0000 1.12
@@ -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
@@ .
patch -p0 <<'@@ .'
Index: openpkg-web/news.txt
============================================================================
$ cvs diff -u -r1.3026 -r1.3027 news.txt
--- openpkg-web/news.txt 24 Jan 2003 09:45:15 -0000 1.3026
+++ openpkg-web/news.txt 24 Jan 2003 09:57:53 -0000 1.3027
@@ -1,3 +1,4 @@
+24-Jan-2003: Upgraded package: P<openpkg-tool-20030124-20030124>
24-Jan-2003: Upgraded package: P<mysql-3.23.55-20030124>
24-Jan-2003: Upgraded package: P<vim-6.1.301-20030124>
24-Jan-2003: Upgraded package: P<postgresql-7.3.1-20030124>
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]