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: 20-Mar-2003 16:33:54
Branch: HEAD Handle: 2003032015335301
Modified files:
openpkg-src/openpkg-tool
openpkg-build.pl openpkg-tool.spec
openpkg-web news.txt
Log:
Avoid switching (and conflicting) virtual targets on upgrade
Summary:
Revision Changes Path
1.63 +25 -2 openpkg-src/openpkg-tool/openpkg-build.pl
1.45 +2 -2 openpkg-src/openpkg-tool/openpkg-tool.spec
1.3741 +1 -0 openpkg-web/news.txt
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-build.pl
============================================================================
$ cvs diff -u -r1.62 -r1.63 openpkg-build.pl
--- openpkg-src/openpkg-tool/openpkg-build.pl 19 Mar 2003 13:54:10 -0000 1.62
+++ openpkg-src/openpkg-tool/openpkg-build.pl 20 Mar 2003 15:33:54 -0000 1.63
@@ -1342,7 +1342,7 @@
my($dep, $env) = @_;
my($name,$op,@vers);
my($i,$r,$b,$cond,$version);
- my($t,$tdef);
+ my($t,$tdef,$why);
($name, $op, $version) = ($dep->{name}, $dep->{op}, $dep->{val});
@@ -1370,6 +1370,10 @@
$tdef = undef;
+ #
+ # search installed target that matches requirement
+ # use it if we are not upgrading (no -U)
+ #
if ($i && (@vers = get_versions($i, $cond))) {
foreach (@vers) {
$t = $i->{$_}->[0];
@@ -1382,17 +1386,36 @@
}
}
}
+
+ #
+ # search target in current build list that matches requirement
+ # use it if it exists
+ #
if ($b && (@vers = get_versions($b, $cond))) {
return ($b->{$vers[0]}->[0], 1);
}
+ #
+ # search target in repository and install it, if it is newer
+ # than corresponding installed versions
+ # avoid repository packages that would install 'new' (i.e.
+ # are not an upgrade of an existing package)
+ #
$t = chose_source($env, $name, undef, $r, get_versions($r, $cond));
if ($t) {
- if (!$tdef || target_better($env, $t, $env->{installed})) {
+ if (!$tdef || (
+ $why = target_better($env, $t, $env->{installed}) &&
+ $why ne 'new'
+ )) {
return ($t, 0);
}
}
+ #
+ # if nothing is suitable in repository then fall back to
+ # anything we already have installed but that we skipped
+ # above to look for upgrades.
+ #
if ($tdef) {
return ($tdef, 1);
}
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-tool.spec
============================================================================
$ cvs diff -u -r1.44 -r1.45 openpkg-tool.spec
--- openpkg-src/openpkg-tool/openpkg-tool.spec 19 Mar 2003 09:48:38 -0000
1.44
+++ openpkg-src/openpkg-tool/openpkg-tool.spec 20 Mar 2003 15:33:54 -0000
1.45
@@ -32,8 +32,8 @@
Distribution: OpenPKG [PLUS]
Group: Bootstrapping
License: GPL
-Version: 20030319
-Release: 20030319
+Version: 20030320
+Release: 20030320
# list of sources
Source0: openpkg.sh
@@ .
patch -p0 <<'@@ .'
Index: openpkg-web/news.txt
============================================================================
$ cvs diff -u -r1.3740 -r1.3741 news.txt
--- openpkg-web/news.txt 20 Mar 2003 15:29:23 -0000 1.3740
+++ openpkg-web/news.txt 20 Mar 2003 15:33:53 -0000 1.3741
@@ -1,3 +1,4 @@
+20-Mar-2003: Upgraded package: P<openpkg-tool-20030320-20030320>
20-Mar-2003: Upgraded package: P<emacs-21.3-20030319>
20-Mar-2003: Upgraded package: P<lyx-1.3.1-20030320>
20-Mar-2003: Upgraded package: P<perl-tk-20030320-20030320>
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]