mirror of
https://github.com/Project-OSS-Revival/alien.git
synced 2026-04-24 14:00:17 +00:00
releasing version 8.52
This commit is contained in:
@@ -421,18 +421,24 @@ sub do {
|
|||||||
=item runpipe
|
=item runpipe
|
||||||
|
|
||||||
This is similar to backticks, but honors $Alien::Package::verbose, logging
|
This is similar to backticks, but honors $Alien::Package::verbose, logging
|
||||||
the command run if asked to. The output of the command returned.
|
the command run if asked to. The output of the command is returned.
|
||||||
|
|
||||||
|
The first parameter controls what to do on error. If it's true then any
|
||||||
|
errors from the command will be ignored (and $? will be set). If it's
|
||||||
|
false, errors will abort alien.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
sub runpipe {
|
sub runpipe {
|
||||||
my $whatever=shift;
|
my $whatever=shift;
|
||||||
|
my $ignoreerror=shift;
|
||||||
my @command=@_;
|
my @command=@_;
|
||||||
if ($Alien::Package::verbose) {
|
if ($Alien::Package::verbose) {
|
||||||
print "\t@command\n";
|
print "\t@command\n";
|
||||||
}
|
}
|
||||||
if (wantarray) {
|
if (wantarray) {
|
||||||
my @ret=`@command`;
|
my @ret=`@command`;
|
||||||
|
die "Error executing \"@command\": $!" if ! $ignoreerror && $? ne 0;
|
||||||
if ($Alien::Package::verbose >= 2) {
|
if ($Alien::Package::verbose >= 2) {
|
||||||
print @ret;
|
print @ret;
|
||||||
}
|
}
|
||||||
@@ -440,6 +446,7 @@ sub runpipe {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
my $ret=`@command`;
|
my $ret=`@command`;
|
||||||
|
die "Error executing \"@command\": $!" if ! $ignoreerror && $? ne 0;
|
||||||
if ($Alien::Package::verbose >= 2) {
|
if ($Alien::Package::verbose >= 2) {
|
||||||
print $ret."\n";
|
print $ret."\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ sub test {
|
|||||||
return map { s/\n//; $_ }
|
return map { s/\n//; $_ }
|
||||||
grep {
|
grep {
|
||||||
! /unknown-section alien/
|
! /unknown-section alien/
|
||||||
} $this->runpipe("lintian $deb");
|
} $this->runpipe(1, "lintian $deb");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return "lintian not available, so not testing";
|
return "lintian not available, so not testing";
|
||||||
@@ -127,7 +127,7 @@ sub getcontrolfile {
|
|||||||
my $file=$this->filename;
|
my $file=$this->filename;
|
||||||
|
|
||||||
if ($this->have_dpkg_deb) {
|
if ($this->have_dpkg_deb) {
|
||||||
return $this->runpipe("dpkg-deb --info $file $controlfile 2>/dev/null");
|
return $this->runpipe(1, "dpkg-deb --info $file $controlfile 2>/dev/null");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# Solaris tar doesn't support O
|
# Solaris tar doesn't support O
|
||||||
@@ -140,7 +140,7 @@ sub getcontrolfile {
|
|||||||
" cat $file; cd /; rm -rf /tmp/tar_out.$$)";
|
" cat $file; cd /; rm -rf /tmp/tar_out.$$)";
|
||||||
}
|
}
|
||||||
my $getcontrol = "ar -p $file control.tar.gz | gzip -dc | ".tar_out($controlfile)." 2>/dev/null";
|
my $getcontrol = "ar -p $file control.tar.gz | gzip -dc | ".tar_out($controlfile)." 2>/dev/null";
|
||||||
return $this->runpipe($getcontrol);
|
return $this->runpipe(1, $getcontrol);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -209,11 +209,11 @@ sub scan {
|
|||||||
my @filelist;
|
my @filelist;
|
||||||
if ($this->have_dpkg_deb) {
|
if ($this->have_dpkg_deb) {
|
||||||
@filelist=map { chomp; s:\./::; "/$_" }
|
@filelist=map { chomp; s:\./::; "/$_" }
|
||||||
$this->runpipe("dpkg-deb --fsys-tarfile $file | tar tf -");
|
$this->runpipe(0, "dpkg-deb --fsys-tarfile $file | tar tf -");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@filelist=map { chomp; s:\./::; "/$_" }
|
@filelist=map { chomp; s:\./::; "/$_" }
|
||||||
$this->runpipe("ar -p $file data.tar.gz | gzip -dc | tar tf -");
|
$this->runpipe(0, "ar -p $file data.tar.gz | gzip -dc | tar tf -");
|
||||||
}
|
}
|
||||||
$this->filelist(\@filelist);
|
$this->filelist(\@filelist);
|
||||||
|
|
||||||
@@ -304,7 +304,7 @@ sub prep {
|
|||||||
or die "patch error: $!";
|
or die "patch error: $!";
|
||||||
# Look for .rej files.
|
# Look for .rej files.
|
||||||
die "patch failed with .rej files; giving up"
|
die "patch failed with .rej files; giving up"
|
||||||
if $this->runpipe("find $dir -name \"*.rej\"");
|
if $this->runpipe(1, "find $dir -name \"*.rej\"");
|
||||||
$this->do('find', '.', '-name', '*.orig', '-exec', 'rm', '{}', ';');
|
$this->do('find', '.', '-name', '*.orig', '-exec', 'rm', '{}', ';');
|
||||||
$this->do("chmod", 755, "$dir/debian/rules");
|
$this->do("chmod", 755, "$dir/debian/rules");
|
||||||
|
|
||||||
@@ -483,7 +483,7 @@ sub build {
|
|||||||
my $this=shift;
|
my $this=shift;
|
||||||
|
|
||||||
chdir $this->unpacked_tree;
|
chdir $this->unpacked_tree;
|
||||||
my $log=$this->runpipe("debian/rules binary 2>&1");
|
my $log=$this->runpipe(1, "debian/rules binary 2>&1");
|
||||||
if ($?) {
|
if ($?) {
|
||||||
die "Package build failed. Here's the log:\n", $log;
|
die "Package build failed. Here's the log:\n", $log;
|
||||||
}
|
}
|
||||||
@@ -647,7 +647,7 @@ Returns the date, in rfc822 format.
|
|||||||
sub date {
|
sub date {
|
||||||
my $this=shift;
|
my $this=shift;
|
||||||
|
|
||||||
my $date=$this->runpipe("822-date");
|
my $date=$this->runpipe(1, "822-date");
|
||||||
chomp $date;
|
chomp $date;
|
||||||
if (!$date) {
|
if (!$date) {
|
||||||
die "822-date did not return a valid result. You probably need to install the dpkg-dev debian package";
|
die "822-date did not return a valid result. You probably need to install the dpkg-dev debian package";
|
||||||
@@ -677,7 +677,7 @@ sub email {
|
|||||||
close MAILNAME;
|
close MAILNAME;
|
||||||
}
|
}
|
||||||
if (!$mailname) {
|
if (!$mailname) {
|
||||||
$mailname=$this->runpipe("hostname -f");
|
$mailname=$this->runpipe(1, "hostname -f");
|
||||||
chomp $mailname;
|
chomp $mailname;
|
||||||
}
|
}
|
||||||
return "$login\@$mailname";
|
return "$login\@$mailname";
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ sub checkfile {
|
|||||||
my $this=shift;
|
my $this=shift;
|
||||||
my $file=shift;
|
my $file=shift;
|
||||||
return unless $file =~ m/^lsb-.*\.rpm$/;
|
return unless $file =~ m/^lsb-.*\.rpm$/;
|
||||||
my @deps=$this->runpipe("LANG=C rpm -qp -R $file");
|
my @deps=$this->runpipe(1, "LANG=C rpm -qp -R $file");
|
||||||
return 1 if grep { s/\s+//g; $_ eq 'lsb' } @deps;
|
return 1 if grep { s/\s+//g; $_ eq 'lsb' } @deps;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,23 +83,23 @@ sub scan {
|
|||||||
|
|
||||||
# Use --queryformat to pull out all the fields we need.
|
# Use --queryformat to pull out all the fields we need.
|
||||||
foreach my $field (keys(%fieldtrans)) {
|
foreach my $field (keys(%fieldtrans)) {
|
||||||
$_=$this->runpipe("LANG=C rpm -qp --queryformat \%{$field} $file");
|
$_=$this->runpipe(0, "LANG=C rpm -qp --queryformat \%{$field} $file");
|
||||||
$field=$fieldtrans{$field};
|
$field=$fieldtrans{$field};
|
||||||
$_='' if $_ eq '(none)';
|
$_='' if $_ eq '(none)';
|
||||||
$this->$field($_);
|
$this->$field($_);
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get the conffiles list.
|
# Get the conffiles list.
|
||||||
$this->conffiles([map { chomp; $_ } $this->runpipe("LANG=C rpm -qcp $file")]);
|
$this->conffiles([map { chomp; $_ } $this->runpipe(0, "LANG=C rpm -qcp $file")]);
|
||||||
if (defined $this->conffiles->[0] &&
|
if (defined $this->conffiles->[0] &&
|
||||||
$this->conffiles->[0] eq '(contains no files)') {
|
$this->conffiles->[0] eq '(contains no files)') {
|
||||||
$this->conffiles([]);
|
$this->conffiles([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->binary_info(scalar $this->runpipe("rpm -qpi $file"));
|
$this->binary_info(scalar $this->runpipe(0, "rpm -qpi $file"));
|
||||||
|
|
||||||
# Get the filelist.
|
# Get the filelist.
|
||||||
$this->filelist([map { chomp; $_ } $this->runpipe("LANG=C rpm -qpl $file")]);
|
$this->filelist([map { chomp; $_ } $this->runpipe(0, "LANG=C rpm -qpl $file")]);
|
||||||
if (defined $this->filelist->[0] &&
|
if (defined $this->filelist->[0] &&
|
||||||
$this->filelist->[0] eq '(contains no files)') {
|
$this->filelist->[0] eq '(contains no files)') {
|
||||||
$this->filelist([]);
|
$this->filelist([]);
|
||||||
@@ -362,7 +362,7 @@ sub build {
|
|||||||
|
|
||||||
# Ask rpm how it's set up. We want to know where it will place rpms.
|
# Ask rpm how it's set up. We want to know where it will place rpms.
|
||||||
my $rpmdir;
|
my $rpmdir;
|
||||||
foreach ($this->runpipe("rpm --showrc")) {
|
foreach ($this->runpipe(1, "rpm --showrc")) {
|
||||||
chomp;
|
chomp;
|
||||||
if (/^rpmdir\s+:\s(.*)$/) {
|
if (/^rpmdir\s+:\s(.*)$/) {
|
||||||
$rpmdir=$1;
|
$rpmdir=$1;
|
||||||
@@ -393,7 +393,7 @@ sub build {
|
|||||||
|
|
||||||
$opts.=" $ENV{RPMBUILDOPTS}" if exists $ENV{RPMBUILDOPTS};
|
$opts.=" $ENV{RPMBUILDOPTS}" if exists $ENV{RPMBUILDOPTS};
|
||||||
my $command="cd $dir; $buildcmd -bb $opts ".$this->name."-".$this->version."-".$this->release.".spec";
|
my $command="cd $dir; $buildcmd -bb $opts ".$this->name."-".$this->version."-".$this->release.".spec";
|
||||||
my $log=$this->runpipe("$command 2>&1");
|
my $log=$this->runpipe(1, "$command 2>&1");
|
||||||
if ($?) {
|
if ($?) {
|
||||||
die "Package build failed. Here's the log of the command ($command):\n", $log;
|
die "Package build failed. Here's the log of the command ($command):\n", $log;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ sub scan {
|
|||||||
# Read in the file list.
|
# Read in the file list.
|
||||||
my @filelist;
|
my @filelist;
|
||||||
# FIXME: support gzip files too!
|
# FIXME: support gzip files too!
|
||||||
foreach ($this->runpipe("bzip2 -d < $file | tar -tf -")) {
|
foreach ($this->runpipe(0, "bzip2 -d < $file | tar -tf -")) {
|
||||||
chomp;
|
chomp;
|
||||||
s:^\./:/:;
|
s:^\./:/:;
|
||||||
$_="/$_" unless m:^/:;
|
$_="/$_" unless m:^/:;
|
||||||
@@ -176,7 +176,7 @@ sub scan {
|
|||||||
$this->distribution('Stampede');
|
$this->distribution('Stampede');
|
||||||
$this->origformat('slp');
|
$this->origformat('slp');
|
||||||
$this->changelogtext('');
|
$this->changelogtext('');
|
||||||
$this->binary_info($this->runpipe("ls -l $file"));
|
$this->binary_info($this->runpipe(0, "ls -l $file"));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ sub scan {
|
|||||||
$this->group("unknown");
|
$this->group("unknown");
|
||||||
$this->origformat('tgz');
|
$this->origformat('tgz');
|
||||||
$this->changelogtext('');
|
$this->changelogtext('');
|
||||||
$this->binary_info($this->runpipe("ls -l $file"));
|
$this->binary_info($this->runpipe(0, "ls -l $file"));
|
||||||
|
|
||||||
# Now figure out the conffiles. Assume anything in etc/ is a
|
# Now figure out the conffiles. Assume anything in etc/ is a
|
||||||
# conffile.
|
# conffile.
|
||||||
@@ -145,7 +145,7 @@ sub scan {
|
|||||||
|
|
||||||
# Now get the scripts.
|
# Now get the scripts.
|
||||||
foreach my $script (keys %{scripttrans()}) {
|
foreach my $script (keys %{scripttrans()}) {
|
||||||
$this->$script($this->runpipe("tar Oxzf $file install/${scripttrans()}{$script} 2>/dev/null"));
|
$this->$script($this->runpipe(1, "tar Oxzf $file install/${scripttrans()}{$script} 2>/dev/null"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
11
debian/changelog
vendored
11
debian/changelog
vendored
@@ -1,3 +1,14 @@
|
|||||||
|
alien (8.52) unstable; urgency=low
|
||||||
|
|
||||||
|
* Add a new parameter to runpipe to control whether it automatically
|
||||||
|
checks the return code of the command (and exits). Turn this on for many
|
||||||
|
runpipe calls that are not expected to fail in normal operation, but can
|
||||||
|
fail if the input file is empty, corrupt, or not readable. Previous
|
||||||
|
behavior for rpm files was a cascading failure that created weird
|
||||||
|
directories in cwd. Closes: #305592
|
||||||
|
|
||||||
|
-- Joey Hess <joeyh@debian.org> Thu, 21 Apr 2005 11:34:41 -0400
|
||||||
|
|
||||||
alien (8.51) unstable; urgency=low
|
alien (8.51) unstable; urgency=low
|
||||||
|
|
||||||
* In rpm unpack permission fixup code, do not call chmod on symlinks,
|
* In rpm unpack permission fixup code, do not call chmod on symlinks,
|
||||||
|
|||||||
Reference in New Issue
Block a user