--- builds_bin/update_repos 2007/11/05 03:01:24 1.21 +++ builds_bin/update_repos 2007/11/05 14:51:28 1.23 @@ -128,15 +128,21 @@ foreach my $smever ( sort { $a <=> $b } $archs = (); foreach my $pkg ( @pkgs ) { - next if $pkg->{done} || $pkg->{obsolete} || $pkg->{rpm}->is_source_package || ! $repos->{$pkg->{repo}} || rprop($pkg, 'stage'); + next if $pkg->{done} || $pkg->{obsolete} || $pkg->{rpm}->is_source_package || ! $repos->{$pkg->{repo}}; printline('bold black', 1, ' - ', $pkg->{rpm}->filename) if $opts{d}; my $orig = 0; # Find names of packages in same or higher repos my %names = names($pkg, @pkgs); + # Stage packages should never be most current + if ( rprop($pkg, 'stage') ) { + tagpkg($pkg, 'obsolete'); + next; + } + # Move packages from base/builds to correct area - if ( rprop($pkg, 'base') || rprop($pkg, 'builds') ) { + elsif ( rprop($pkg, 'base') || rprop($pkg, 'builds') ) { printline('dark blue', 1, ' - checking base/builds') if $opts{d}; my $repo = $names{$pkg->{name}} && $names{$pkg->{name}} > 1 ? $devel2 : $devel1; if ( $pkg->{nonbase} ) { @@ -293,7 +299,7 @@ foreach my $smever ( sort { $a <=> $b } printline('white', 0, "Finished copying/moving.\n"); foreach my $repo ( sort keys %repochg ) { - next if ! $repos->{$repo} || $repos->{$repo}->{base} || $repos->{$repo}->{builds}; + next if ! $repos->{$repo} || $repos->{$repo}->{base} || $repos->{$repo}->{builds} || $repos->{$repo}->{stage}; foreach my $arch ( @archs ) { my $dir = $distrepo->{$rel}->{repo} . "$repo/$arch"; $dir = qx(readlink -f $dir); @@ -336,25 +342,25 @@ sub dest { my ($pkg, @repos) = @_; my @d = (); foreach my $repo ( @repos ) { - my $base = $distrepo->{$rel}->{repo}; + my $base = $distrepo->{$rel}->{repo} . $repo; $base = $distrepo->{$rel}->{stage} if $repos->{$repo}->{stage}; if ( $pkg->{arch} eq 'noarch' ) { - push @d, "$base$repo/i386/" . + push @d, "$base/i386/" . ( $repos->{$repo}->{os} ? $distrepo->{$rel}->{os} : 'RPMS/' ) . basename $pkg->{rpm}->filename; - push @d, "$base$repo/x86_64/" . + push @d, "$base/x86_64/" . ( $repos->{$repo}->{os} ? $distrepo->{$rel}->{os} : 'RPMS/' ) . basename $pkg->{rpm}->filename; } elsif ( $pkg->{arch} =~ m{^(i[356]86)$} ) { - push @d, "$base$repo/i386/" . + push @d, "$base/i386/" . ( $repos->{$repo}->{os} ? $distrepo->{$rel}->{os} : 'RPMS/' ) . basename $pkg->{rpm}->filename; } elsif ( $pkg->{arch} eq 'x86_64' ) { - push @d, "$base$repo/x86_64/" . + push @d, "$base/x86_64/" . ( $repos->{$repo}->{os} ? $distrepo->{$rel}->{os} : 'RPMS/' ) . basename $pkg->{rpm}->filename; } elsif ( $pkg->{arch} eq 'zsrc' ) { - push @d, "$base$repo/SRPMS/" . + push @d, "$base/SRPMS/" . basename $pkg->{rpm}->filename; } else { printline('bold yellow on_red', 1, ' - ', $pkg->{rpm}->filename, ' (bad arch: ', $pkg->{arch}, ')');