use a function

This commit is contained in:
Stephan Kulow 2013-03-21 20:48:17 +01:00
parent b011ca4eb4
commit 1edda8e5b9

View File

@ -1,4 +1,4 @@
#! /usr/bin/perl
#! /usr/bin/perl -w
BEGIN {
unshift @INC, "/usr/lib/build/Build";
@ -11,6 +11,8 @@ use Data::Dumper;
use Cwd;
use Rpm;
use strict;
my $dir = $ARGV[0];
my %toignore;
foreach my $name (split(/,/, $ARGV[1])) {
@ -29,24 +31,27 @@ while ( <GREP> ) {
exit(1);
}
# RPMTAG_FILEMODES = 1030, /* h[] */
# RPMTAG_FILEFLAGS = 1037, /* i[] */
# RPMTAG_FILEUSERNAME = 1039, /* s[] */
# RPMTAG_FILEGROUPNAME = 1040, /* s[] */
my @rpms = glob("~/factory-repo/*.rpm");
open(PACKAGES, ">", $ENV{'HOME'} . "/packages") || die 'can not open';
print PACKAGES "=Ver: 2.0\n";
foreach my $package (@rpms) {
sub write_package($$)
{
my $package = shift;
my $ignore = shift;
# RPMTAG_FILEMODES = 1030, /* h[] */
# RPMTAG_FILEFLAGS = 1037, /* i[] */
# RPMTAG_FILEUSERNAME = 1039, /* s[] */
# RPMTAG_FILEGROUPNAME = 1040, /* s[] */
my %qq = Build::Rpm::rpmq("$package", qw{NAME VERSION RELEASE ARCH OLDFILENAMES DIRNAMES BASENAMES DIRINDEXES 1030 1037 1039 1040
PROVIDENAME PROVIDEFLAGS PROVIDEVERSION 1049 1048 1050 1090 1114 1115 1054 1053 1055
1047 1112 1113 1049 1048 1050 1090 1114 1115 1054 1053 1055
});
if (defined $toignore{$qq{'NAME'}[0]}) {
if ($ignore && defined $toignore{$qq{'NAME'}[0]}) {
next;
}
Build::Rpm::add_flagsvers(\%qq, PROVIDENAME, PROVIDEFLAGS, PROVIDEVERSION); # provides
Build::Rpm::add_flagsvers(\%qq, 1049, 1048, 1050); # requires
Build::Rpm::add_flagsvers(\%qq, 1047, 1112, 1113); # provides
Build::Rpm::add_flagsvers(\%qq, 1090, 1114, 1115); # obsoletes
@ -80,7 +85,7 @@ foreach my $package (@rpms) {
}
print PACKAGES "-Flx:\n";
print PACKAGES "+Prv:\n";
foreach my $prv (@{$qq{PROVIDENAME} || []}) {
foreach my $prv (@{$qq{1047} || []}) {
print PACKAGES "$prv\n";
}
foreach my $prv (@xprvs) {
@ -104,6 +109,16 @@ foreach my $package (@rpms) {
print PACKAGES "-Obs:\n";
}
foreach my $package (@rpms) {
write_package(1, $package);
}
@rpms = glob("$dir/*.rpm");
foreach my $package (@rpms) {
write_package(0, $package);
}
close(PACKAGES);
exit(0);