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]