Merge pull request #1855 from coolo/more_rebuildpacs
Fix rebuildpacs to trigger rpmlint-mini on polkit changes
This commit is contained in:
commit
6d706a6a4b
@ -25,6 +25,7 @@ sub find_source_container($) {
|
|||||||
for my $repodir (@repodirs) {
|
for my $repodir (@repodirs) {
|
||||||
my @rpms = glob("$repodir/*-$pkg.rpm");
|
my @rpms = glob("$repodir/*-$pkg.rpm");
|
||||||
for my $rpm (@rpms) {
|
for my $rpm (@rpms) {
|
||||||
|
|
||||||
# 1123 == Disturl
|
# 1123 == Disturl
|
||||||
my %qq = Build::Rpm::rpmq( $rpm, qw{NAME 1123} );
|
my %qq = Build::Rpm::rpmq( $rpm, qw{NAME 1123} );
|
||||||
next if ( $qq{NAME}[0] ne $pkg );
|
next if ( $qq{NAME}[0] ne $pkg );
|
||||||
@ -86,6 +87,7 @@ my %parents = (
|
|||||||
"kdebase4-openSUSE" => [qw(bundle-lang-kde)],
|
"kdebase4-openSUSE" => [qw(bundle-lang-kde)],
|
||||||
"kernel-source" => [qw(perf)],
|
"kernel-source" => [qw(perf)],
|
||||||
);
|
);
|
||||||
|
|
||||||
# for subsets (staging projects) we need to remember which are ignored
|
# for subsets (staging projects) we need to remember which are ignored
|
||||||
my %ignored;
|
my %ignored;
|
||||||
|
|
||||||
@ -100,7 +102,8 @@ sub check_leaf_package($$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my @lines = ();
|
my @lines = ();
|
||||||
open( OSC, "osc api /build/$project/$repo/$arch/$package/_buildinfo?internal=1|" );
|
open( OSC,
|
||||||
|
"osc api /build/$project/$repo/$arch/$package/_buildinfo|" );
|
||||||
while (<OSC>) {
|
while (<OSC>) {
|
||||||
chomp;
|
chomp;
|
||||||
if (m/<subpack>(.*)</) {
|
if (m/<subpack>(.*)</) {
|
||||||
@ -109,6 +112,7 @@ sub check_leaf_package($$) {
|
|||||||
if (m/bdep name="([^"]*)"/) {
|
if (m/bdep name="([^"]*)"/) {
|
||||||
my $parent = $leafed{$1};
|
my $parent = $leafed{$1};
|
||||||
if ( $parent && $parent ne "rpmlint-mini" ) {
|
if ( $parent && $parent ne "rpmlint-mini" ) {
|
||||||
|
|
||||||
# I dislike grep
|
# I dislike grep
|
||||||
unless ( grep { $_ eq $package } @{ $parents{$parent} } ) {
|
unless ( grep { $_ eq $package } @{ $parents{$parent} } ) {
|
||||||
print "ADD $package to PARENT $parent!!\n";
|
print "ADD $package to PARENT $parent!!\n";
|
||||||
@ -141,8 +145,8 @@ sub check_leaf_package($$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my %torebuild;
|
my %torebuild;
|
||||||
check_leaf_package("rpmlint", \%torebuild);
|
|
||||||
check_leaf_package( "rpmlint-mini", \%torebuild );
|
check_leaf_package( "rpmlint-mini", \%torebuild );
|
||||||
|
check_leaf_package( "rpmlint", \%torebuild );
|
||||||
|
|
||||||
check_leaf_package( "branding-openSUSE", \%torebuild );
|
check_leaf_package( "branding-openSUSE", \%torebuild );
|
||||||
check_leaf_package( "glib2-branding-openSUSE", \%torebuild );
|
check_leaf_package( "glib2-branding-openSUSE", \%torebuild );
|
||||||
@ -156,7 +160,6 @@ check_leaf_package("bundle-lang-common", \%torebuild);
|
|||||||
check_leaf_package( "bundle-lang-kde", \%torebuild );
|
check_leaf_package( "bundle-lang-kde", \%torebuild );
|
||||||
check_leaf_package( "bundle-lang-gnome", \%torebuild );
|
check_leaf_package( "bundle-lang-gnome", \%torebuild );
|
||||||
check_leaf_package( "installation-images-openSUSE", \%torebuild );
|
check_leaf_package( "installation-images-openSUSE", \%torebuild );
|
||||||
check_leaf_package("openSUSE-images", \%torebuild);
|
|
||||||
if (%torebuild) {
|
if (%torebuild) {
|
||||||
my $api = "/build/$project?cmd=rebuild&repository=$repo&arch=$arch";
|
my $api = "/build/$project?cmd=rebuild&repository=$repo&arch=$arch";
|
||||||
for my $package ( sort keys %torebuild ) {
|
for my $package ( sort keys %torebuild ) {
|
||||||
@ -167,7 +170,8 @@ if (%torebuild) {
|
|||||||
system("osc api -X POST '$api'");
|
system("osc api -X POST '$api'");
|
||||||
}
|
}
|
||||||
|
|
||||||
my $pfile = tempdir(CLEANUP => 1) . "/packages"; # the filename is important ;(
|
my $pfile =
|
||||||
|
tempdir( CLEANUP => 1 ) . "/packages"; # the filename is important ;(
|
||||||
|
|
||||||
sub mirror_repo($$$) {
|
sub mirror_repo($$$) {
|
||||||
|
|
||||||
@ -176,7 +180,8 @@ sub mirror_repo($$$) {
|
|||||||
my $arch = shift;
|
my $arch = shift;
|
||||||
|
|
||||||
# Old and new in single directory, but never deployed together.
|
# Old and new in single directory, but never deployed together.
|
||||||
my $repodir = ($ENV{XDG_CACHE_HOME}||$ENV{HOME}."/.cache")."/openSUSE-release-tools/repository-meta/repo-$project-$repo-$arch";
|
my $repodir = ( $ENV{XDG_CACHE_HOME} || $ENV{HOME} . "/.cache" )
|
||||||
|
. "/openSUSE-release-tools/repository-meta/repo-$project-$repo-$arch";
|
||||||
mkdir($repodir);
|
mkdir($repodir);
|
||||||
|
|
||||||
system(
|
system(
|
||||||
@ -195,10 +200,8 @@ sub find_package_in_project($) {
|
|||||||
return shift @packs;
|
return shift @packs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# find a random package
|
# find a random package
|
||||||
|
|
||||||
|
|
||||||
sub get_paths($$$) {
|
sub get_paths($$$) {
|
||||||
my $project = shift;
|
my $project = shift;
|
||||||
my $repo = shift;
|
my $repo = shift;
|
||||||
@ -223,11 +226,17 @@ my @rpms;
|
|||||||
for my $path (@$paths) {
|
for my $path (@$paths) {
|
||||||
|
|
||||||
# openSUSE:Factory/ports is in the paths, but not a repo
|
# openSUSE:Factory/ports is in the paths, but not a repo
|
||||||
if (system("osc api /build/$path->{'project'}/$path->{'repository'}/$arch > /dev/null 2>&1 ")) {
|
if (
|
||||||
|
system(
|
||||||
|
"osc api /build/$path->{'project'}/$path->{'repository'}/$arch > /dev/null 2>&1 "
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $repodir = mirror_repo($path->{'project'}, $path->{'repository'}, $arch);
|
my $repodir =
|
||||||
|
mirror_repo( $path->{'project'}, $path->{'repository'}, $arch );
|
||||||
push( @repodirs, $repodir );
|
push( @repodirs, $repodir );
|
||||||
push( @rpms, glob("$repodir/*.rpm") );
|
push( @rpms, glob("$repodir/*.rpm") );
|
||||||
}
|
}
|
||||||
@ -274,15 +283,43 @@ while (<INSTALLCHECK>) {
|
|||||||
s,(needed by [^ ]*)\-[^-]*\-[^-]*\.($rpmarch|noarch)$,$1,;
|
s,(needed by [^ ]*)\-[^-]*\-[^-]*\.($rpmarch|noarch)$,$1,;
|
||||||
|
|
||||||
s,^\s*,,;
|
s,^\s*,,;
|
||||||
|
|
||||||
# patterns are too spammy and rebuilding doesn't help
|
# patterns are too spammy and rebuilding doesn't help
|
||||||
next if (grep { $_ eq $cproblem } qw(
|
next
|
||||||
patterns-openSUSE patterns-base patterns-haskell
|
if (
|
||||||
patterns-mate patterns-media patterns-yast
|
grep { $_ eq $cproblem }
|
||||||
installation-images:Kubic fftw3:gnu-openmpi-hpc hdf5:mvapich2
|
qw(
|
||||||
hdf5:openmpi hdf5:serial scalapack:gnu-mvapich2-hpc
|
fftw3:gnu-openmpi-hpc
|
||||||
scalapack:gnu-openmpi-hpc python-numpy:gnu-hpc
|
hdf5:gnu-hpc
|
||||||
petsc:serial netcdf:serial netcdf:openmpi netcdf:gnu-hpc
|
hdf5:gnu-mpich-hpc
|
||||||
netcdf:gnu-openmpi-hpc netcdf:gnu-mvapich2-hpc));
|
hdf5:gnu-mvapich2-hpc
|
||||||
|
hdf5:gnu-openmpi-hpc
|
||||||
|
hdf5:gnu-openmpi2-hpc
|
||||||
|
hdf5:gnu-openmpi3-hpc
|
||||||
|
hdf5:mvapich2
|
||||||
|
hdf5:openmpi
|
||||||
|
hdf5:serial
|
||||||
|
installation-images:Kubic
|
||||||
|
metis:gnu-hpc
|
||||||
|
netcdf:gnu-hpc
|
||||||
|
netcdf:gnu-mvapich2-hpc
|
||||||
|
netcdf:gnu-openmpi-hpc
|
||||||
|
netcdf:openmpi
|
||||||
|
netcdf:serial
|
||||||
|
patterns-base
|
||||||
|
patterns-haskell
|
||||||
|
patterns-mate
|
||||||
|
patterns-media
|
||||||
|
patterns-openSUSE
|
||||||
|
patterns-yast
|
||||||
|
petsc:serial
|
||||||
|
python-numpy:gnu-hpc
|
||||||
|
scalapack:gnu-mvapich2-hpc
|
||||||
|
scalapack:gnu-openmpi-hpc
|
||||||
|
warewulf:modules
|
||||||
|
python-scipy:gnu-hpc
|
||||||
|
)
|
||||||
|
);
|
||||||
$problems{$cproblem}->{$_} = 1;
|
$problems{$cproblem}->{$_} = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -303,6 +340,7 @@ while (<PROBLEMS>) {
|
|||||||
if (m,^$project/$repo/$arch/([^:]*):\s*(.*)$,) {
|
if (m,^$project/$repo/$arch/([^:]*):\s*(.*)$,) {
|
||||||
my $package = $1;
|
my $package = $1;
|
||||||
my $oproblem = $2;
|
my $oproblem = $2;
|
||||||
|
|
||||||
# remember old problems for current project/repo
|
# remember old problems for current project/repo
|
||||||
$oproblems{$package} = $oproblem;
|
$oproblems{$package} = $oproblem;
|
||||||
}
|
}
|
||||||
@ -332,6 +370,7 @@ for my $package (@packages) {
|
|||||||
last if ( length($api) > 32767 );
|
last if ( length($api) > 32767 );
|
||||||
|
|
||||||
if ( !$problems{$package} ) {
|
if ( !$problems{$package} ) {
|
||||||
|
|
||||||
# it can go
|
# it can go
|
||||||
delete $oproblems{$package};
|
delete $oproblems{$package};
|
||||||
next;
|
next;
|
||||||
@ -339,24 +378,24 @@ for my $package (@packages) {
|
|||||||
|
|
||||||
my $oproblem = $oproblems{$package} || '';
|
my $oproblem = $oproblems{$package} || '';
|
||||||
if ( $problems{$package} eq $oproblem ) {
|
if ( $problems{$package} eq $oproblem ) {
|
||||||
|
|
||||||
# rebuild won't help
|
# rebuild won't help
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
$rebuildit = 1;
|
$rebuildit = 1;
|
||||||
print "rebuild ", $package, ": ",
|
print "rebuild ", $package, ": ", $problems{$package}, "\n";
|
||||||
$problems{ $package }, "\n";
|
|
||||||
$api .= "&package=" . uri_escape($package);
|
$api .= "&package=" . uri_escape($package);
|
||||||
$oproblems{$package} = $problems{$package};
|
$oproblems{$package} = $problems{$package};
|
||||||
}
|
}
|
||||||
|
|
||||||
open( PROBLEMS, ">problems" );
|
open( PROBLEMS, ">problems" );
|
||||||
|
|
||||||
# write all lines for other projects/repos as they are
|
# write all lines for other projects/repos as they are
|
||||||
foreach (@other_problems) {
|
foreach (@other_problems) {
|
||||||
print PROBLEMS $_, "\n";
|
print PROBLEMS $_, "\n";
|
||||||
}
|
}
|
||||||
for my $package ( keys %oproblems ) {
|
for my $package ( keys %oproblems ) {
|
||||||
print PROBLEMS "$project/$repo/$arch/"
|
print PROBLEMS "$project/$repo/$arch/" . $package . ": "
|
||||||
. $package . ": "
|
|
||||||
. $oproblems{$package}, "\n";
|
. $oproblems{$package}, "\n";
|
||||||
}
|
}
|
||||||
close(PROBLEMS);
|
close(PROBLEMS);
|
||||||
@ -365,4 +404,3 @@ if ($rebuildit) {
|
|||||||
print "API '$api'\n";
|
print "API '$api'\n";
|
||||||
system("osc api -X POST '$api'");
|
system("osc api -X POST '$api'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user