aboutsummaryrefslogtreecommitdiffstats
path: root/rpmbuildupdate
diff options
context:
space:
mode:
Diffstat (limited to 'rpmbuildupdate')
-rwxr-xr-xrpmbuildupdate148
1 files changed, 75 insertions, 73 deletions
diff --git a/rpmbuildupdate b/rpmbuildupdate
index 12fd95b..d16e27a 100755
--- a/rpmbuildupdate
+++ b/rpmbuildupdate
@@ -305,82 +305,90 @@ sub build {
push(@url, "$url/$tar_ball")
}
- my $found = 0;
+ if ($version ne $newversion) {
+ my $found = 0;
- foreach (@url) {
- # Replace variable from spec (%blabla)
- while (/\%/) {
- s/\%\{(.*?)\}/$specvars{$1}/g;
- s/\%(\w+)/$specvars{$1}/g;
- s/\%\{name\}/$pkg/gi;
- s/\%\{version\}/$newversion/gi;
- }
+ foreach (@url) {
+ # Replace variable from spec (%blabla)
+ while (/\%/) {
+ s/\%\{(.*?)\}/$specvars{$1}/g;
+ s/\%(\w+)/$specvars{$1}/g;
+ s/\%\{name\}/$pkg/gi;
+ s/\%\{version\}/$newversion/gi;
+ }
- my $basename = basename($_);
+ my $basename = basename($_);
- rm_rf("${top}/SOURCES/$basename") if $config{nobuild};
-
- # GNOME: add the major version to the URL automatically
- # for example: ftp://ftp://ftp.gnome.org/pub/GNOME/sources/ORbit2/ORbit2-2.10.0.tar.bz2
- # is rewritten in ftp://ftp.gnome.org/pub/GNOME/sources/ORbit2/2.10/ORbit2-2.10.0.tar.bz2
- if (m!ftp.gnome.org/pub/GNOME/sources/!) {
- (my $major = $newversion) =~ s/([^.]+\.[^.]+).*/$1/;
- s!(.*/)(.*)!$1$major/$2!;
- }
-
- # download from Fedora rpms
- if (/ftp\.redhat\.com/) {
- opendir(MP, $config{fedora}) or die "$config{fedora} is not a directory";
- my @rpmsrh = readdir(MP);
+ rm_rf("${top}/SOURCES/$basename") if $config{nobuild};
- my $pkgrpmrh;
- my $pkge = $pkg;
- $pkge =~ s/\+/\\+/;
-
- foreach (@rpmsrh) {
- if (m|^($pkge)-([^-]+)-([^-]+)\.[^\.]+\.rpm|) {
- $pkgrpmrh = $_;
- last;
- }
+ # GNOME: add the major version to the URL automatically
+ # for example: ftp://ftp://ftp.gnome.org/pub/GNOME/sources/ORbit2/ORbit2-2.10.0.tar.bz2
+ # is rewritten in ftp://ftp.gnome.org/pub/GNOME/sources/ORbit2/2.10/ORbit2-2.10.0.tar.bz2
+ if (m!ftp.gnome.org/pub/GNOME/sources/!) {
+ (my $major = $newversion) =~ s/([^.]+\.[^.]+).*/$1/;
+ s!(.*/)(.*)!$1$major/$2!;
}
- closedir(MP);
+ # download from Fedora rpms
+ if (/ftp\.redhat\.com/) {
+ opendir(MP, $config{fedora}) or die "$config{fedora} is not a directory";
+ my @rpmsrh = readdir(MP);
+
+ my $pkgrpmrh;
+ my $pkge = $pkg;
+ $pkge =~ s/\+/\\+/;
+
+ foreach (@rpmsrh) {
+ if (m|^($pkge)-([^-]+)-([^-]+)\.[^\.]+\.rpm|) {
+ $pkgrpmrh = $_;
+ last;
+ }
+ }
+
+ closedir(MP);
- print "Trying from fedora($basename): $config{fedora}/$pkgrpmrh\n";
- system_die("cd ${top}/SOURCES; rpm2cpio $config{fedora}/$pkgrpmrh | cpio -id $basename", "Rpm extraction failed");
+ print "Trying from fedora($basename): $config{fedora}/$pkgrpmrh\n";
+ system_die("cd ${top}/SOURCES; rpm2cpio $config{fedora}/$pkgrpmrh | cpio -id $basename", "Rpm extraction failed");
- if (! -f "${top}/SOURCES/$basename") {
- (my $bname = $basename) =~ s/bz2/gz/;
- print "Trying from fedora($bname): $config{fedora}/$pkgrpmrh\n";
- system("cd ${top}/SOURCES; rpm2cpio $config{fedora}/$pkgrpmrh | cpio -id $bname; bzme $bname", "rpm recompression failed");
+ if (! -f "${top}/SOURCES/$basename") {
+ (my $bname = $basename) =~ s/bz2/gz/;
+ print "Trying from fedora($bname): $config{fedora}/$pkgrpmrh\n";
+ system("cd ${top}/SOURCES; rpm2cpio $config{fedora}/$pkgrpmrh | cpio -id $bname; bzme $bname", "rpm recompression failed");
+ }
}
- }
- # download from sourceforge mirrors
- if (m!http://prdownloads.sourceforge.net!) {
- foreach my $site ("http://ovh.dl.sourceforge.net/sourceforge/",
- "http://heanet.dl.sourceforge.net/sourceforge/",
- "http://aleron.dl.sourceforge.net/sourceforge/",
- "http://keihanna.dl.sourceforge.net/sourceforge/",
- "http://belnet.dl.sourceforge.net/sourceforge/",
- "http://unc.dl.sourceforge.net/sourceforge/",
- "http://twtelecom.dl.sourceforge.net/sourceforge/",
- )
- {
- (my $dest = $_) =~ s!http://prdownloads.sourceforge.net/!$site!;
- last if fetch_http($dest);
+ # download from sourceforge mirrors
+ if (m!http://prdownloads.sourceforge.net!) {
+ foreach my $site ("http://ovh.dl.sourceforge.net/sourceforge/",
+ "http://heanet.dl.sourceforge.net/sourceforge/",
+ "http://aleron.dl.sourceforge.net/sourceforge/",
+ "http://keihanna.dl.sourceforge.net/sourceforge/",
+ "http://belnet.dl.sourceforge.net/sourceforge/",
+ "http://unc.dl.sourceforge.net/sourceforge/",
+ "http://twtelecom.dl.sourceforge.net/sourceforge/",
+ )
+ {
+ (my $dest = $_) =~ s!http://prdownloads.sourceforge.net/!$site!;
+ last if fetch_http($dest);
+ }
}
+ # download specified url
+ if (! -f "${top}/SOURCES/$basename") {
+ fetch($_);
+ }
+
+ $found++ if -e $basename;
+ chmod(0644, "${top}/SOURCES/$basename");
}
- # download specified url
- if (! -f "${top}/SOURCES/$basename") {
- fetch($_);
- }
- $found++ if -e $basename;
- chmod(0644, "${top}/SOURCES/$basename");
+ # some specs have no source ( php )
+ $found++ if ! $tar_ball;
+
+ unless ($found) {
+ print "Unable to download file: URL is not valid ! :-(\n\n";
+ return;
+ }
}
- # some specs have no source ( php )
- $found++ if ! $tar_ball;
unless ($config{noupdate}) {
# TODO use output ?
@@ -389,17 +397,11 @@ sub build {
close($SPECFILE);
}
- if (!$found) {
- print "Unable to download file: URL is not valid ! :-(\n\n";
- return;
- } elsif ($config{nobuild}) {
- print "All files downloaded\n";
- return;
- }
-
- if (system("$rpm -ba $config{rpmoption} $spec_path $log")) {
- print "Binary build fails: building source only\n";
- system("$rpm -bs $config{rpmoption} --nodeps $spec_path $log");
+ unless ($config{nobuild}) {
+ if (system("$rpm -ba $config{rpmoption} $spec_path $log")) {
+ print "Binary build fails: building source only\n";
+ system("$rpm -bs $config{rpmoption} --nodeps $spec_path $log");
+ }
}
}