OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Michael van Elst
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-re                       Date:   12-Nov-2002 17:13:57
  Branch: HEAD                             Handle: 2002111216135700

  Modified files:
    openpkg-re              openpkg-build

  Log:
    honor releases.

  Summary:
    Revision    Changes     Path
    1.6         +39 -14     openpkg-re/openpkg-build
  ____________________________________________________________________________

  Index: openpkg-re/openpkg-build
  ============================================================
  $ cvs diff -u -r1.5 -r1.6 openpkg-build
  --- openpkg-re/openpkg-build  12 Nov 2002 15:33:05 -0000      1.5
  +++ openpkg-re/openpkg-build  12 Nov 2002 16:13:57 -0000      1.6
  @@ -92,7 +92,7 @@
   die "FATAL: cannot locate rpm in path\n" unless $RPM =~ m{^/};
   ($PROG) = $0 =~ /(?:.*\/)?(.*)/;
   
  -sub vcmp ($$) {
  +sub version_cmp ($$) {
       my($a,$b) = @_;
       my(@a,@b,$c);
       my($ax,$bx);
  @@ -120,6 +120,29 @@
       return $c;
   }
   
  +sub release_cmp ($$) {
  +    my($a,$b) = @_;
  +
  +    return $a cmp $b;
  +}
  +
  +sub vcmp ($$) {
  +    my($a,$b) = @_;
  +    my($av,$ar) = $a =~ /^(.*?)(?:\-([\d\.]+))?$/;
  +    my($bv,$br) = $b =~ /^(.*?)(?:\-([\d\.]+))?$/;
  +    my($c);
  +
  +    $c = version_cmp($av,$bv);
  +    return if $c;
  +    $c = release_cmp($ar,$br);
  +    return $c;
  +}
  +
  +sub vs ($) {
  +    my($t) = @_;
  +    return "$t->{version}-$t->{release}";
  +}
  +
   sub get_config ()
   {
       my($c,@q);
  @@ -162,7 +185,7 @@
   
       foreach (@l) {
           /^(\S+)\s*(?:=\s*([^\s\-]+)-(\S+))?$/;
  -        push(@{$map{$1}->{"$2"}}, {
  +        push(@{$map{$1}->{"$2-$3"}}, {
               name       => $1,
               version    => (defined $2 ? $2 : '*'),
               release    => (defined $3 ? $3 : '*')
  @@ -325,11 +348,12 @@
   
                   if (defined $href && defined $name && defined $version) {
   
  -                    @provides = map {{ name => $_, version => '' } } @provides;
  +                    @provides = map {{ name => $_, version => '' }} @provides;
   
                       push(@provides, {
  -                        name => $name,
  -                        version => $version
  +                        name    => $name,
  +                        version => $version,
  +                        release => $release
                       });
   
                       $rec = {
  @@ -342,7 +366,7 @@
                       };
   
                       foreach (@provides) {
  -                        push(@{$map{$_->{name}}->{$_->{version}}}, $rec);
  +                        push(@{$map{$_->{name}}->{vs($_)}}, $rec);
                       }
                   }
   
  @@ -365,8 +389,9 @@
                   @provides = ();
               }
               push(@provides, {
  -                name => $_->{'Name'}->[0],
  -                version => $_->{'Version'}->[0]
  +                name    => $_->{'Name'}->[0],
  +                version => $_->{'Version'}->[0],
  +                release => $_->{'Release'}->[0]
               });
   
               $rec = {
  @@ -379,7 +404,7 @@
               };
   
               foreach (@provides) {
  -                push(@{$map{$_->{name}}->{$_->{version}}}, $rec);
  +                push(@{$map{$_->{name}}->{vs($_)}}, $rec);
               }
           }
       }
  @@ -439,7 +464,7 @@
       return unless $vmap;
   
       return !defined $target->{version} ||
  -            defined $vmap->{$target->{version}};
  +            defined $vmap->{vs($target)};
   }
   
   #
  @@ -453,7 +478,7 @@
       return unless $vmap;
       return unless defined $target->{version};
   
  -    $vers = $vmap->{$target->{version}};
  +    $vers = $vmap->{vs($target)};
       return unless $vers && @$vers;
   
       return $vers->[0]->{depends};
  @@ -470,7 +495,7 @@
       return unless $vmap;
       return unless defined $target->{version};
   
  -    $vers = $vmap->{$target->{version}};
  +    $vers = $vmap->{vs($target)};
       return unless $vers && @$vers;
   
       return $vers->[0]->{keeps};
  @@ -590,7 +615,7 @@
   
       print "# adding $target->{name}-$target->{version} to list\n";
       push(@$list, $target);
  -    push(@{$env->{built}->{$target->{name}}->{$target->{version}}}, $target);
  +    push(@{$env->{built}->{$target->{name}}->{vs($target)}}, $target);
   }
   
   sub remove_list ($$$) {
  @@ -599,7 +624,7 @@
   
       %keep = map { $_ => 1 } @$keeps;
       return [ grep {
  -               !$keep{$_} && !$installed->{$_->{name}}->{$_->{version}};
  +               !$keep{$_} && !$installed->{$_->{name}}->{vs($_)};
                } @$targets
              ];
   }
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to