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]

Reply via email to