6 Commits
8.75 ... 8.77

3 changed files with 25 additions and 5 deletions

View File

@@ -317,6 +317,7 @@ sub prep {
my $line=<$changelog>; my $line=<$changelog>;
if ($line=~/^[^ ]+\s+\(([^)]+)\)\s/) { if ($line=~/^[^ ]+\s+\(([^)]+)\)\s/) {
my $version=$1; my $version=$1;
$version=~s/\s+//; # ensure no whitespace
if ($version=~/(.*)-(.*)/) { if ($version=~/(.*)-(.*)/) {
$version=$1; $version=$1;
$this->release($2); $this->release($2);
@@ -683,7 +684,7 @@ sub email {
close MAILNAME; close MAILNAME;
} }
if (!$mailname) { if (!$mailname) {
$mailname=$this->runpipe(1, "hostname -f"); $mailname=$this->runpipe(1, "hostname");
chomp $mailname; chomp $mailname;
} }
return "$login\@$mailname"; return "$login\@$mailname";
@@ -738,7 +739,7 @@ sub postinst {
return $postinst unless %$owninfo; return $postinst unless %$owninfo;
my ($firstline, $rest)=split(/\n/, $postinst, 2); my ($firstline, $rest)=split(/\n/, $postinst, 2);
if ($firstline !~ m/^#!\s*\/bin\/sh/) { if ($firstline !~ m/^#!\s*\/bin\/(ba)?sh/) {
print STDERR "warning: unable to add ownership fixup code to postinst as the postinst is not a shell script!\n"; print STDERR "warning: unable to add ownership fixup code to postinst as the postinst is not a shell script!\n";
return $postinst; return $postinst;
} }

View File

@@ -239,6 +239,9 @@ sub unpack {
while (<GETPERMS>) { while (<GETPERMS>) {
chomp; chomp;
my ($mode, $owner, $group, $file) = split(/ /, $_, 4); my ($mode, $owner, $group, $file) = split(/ /, $_, 4);
next if -l "$workdir/$file";
$mode = $mode & 07777; # remove filetype $mode = $mode & 07777; # remove filetype
my $uid = getpwnam($owner); my $uid = getpwnam($owner);
if (! defined $uid || $uid != 0) { if (! defined $uid || $uid != 0) {
@@ -258,12 +261,10 @@ sub unpack {
if (defined($owninfo{$file}) && ($mode & 07000 > 0)) { if (defined($owninfo{$file}) && ($mode & 07000 > 0)) {
$modeinfo{$file} = sprintf "%lo", $mode; $modeinfo{$file} = sprintf "%lo", $mode;
} }
next unless -e "$workdir/$file"; # skip broken links
if ($> == 0) { if ($> == 0) {
$this->do("chown", "$uid:$gid", "$workdir/$file") $this->do("chown", "$uid:$gid", "$workdir/$file")
|| die "failed chowning $file to $uid\:$gid\: $!"; || die "failed chowning $file to $uid\:$gid\: $!";
} }
next if -l "$workdir/$file"; # skip links
$this->do("chmod", sprintf("%lo", $mode), "$workdir/$file") $this->do("chmod", sprintf("%lo", $mode), "$workdir/$file")
|| die "failed changing mode of $file to $mode\: $!"; || die "failed changing mode of $file to $mode\: $!";
} }
@@ -497,7 +498,7 @@ sub _script_helper {
$value="#!/bin/bash\n$prefixcode$value"; $value="#!/bin/bash\n$prefixcode$value";
} }
else { else {
$value=~s@^#!\s*/bin/sh(\s)@#/bin/bash$1@; $value=~s@^#!\s*/bin/sh(\s)@#!/bin/bash$1@;
$value=~s/\n/\n$prefixcode/s; $value=~s/\n/\n$prefixcode/s;
} }
$this->{$script} = $value; $this->{$script} = $value;

18
debian/changelog vendored
View File

@@ -1,3 +1,21 @@
alien (8.77) unstable; urgency=low
* Don't allow whitespace in package version when parsing debian/changelog.
* In rpm permission fixup code, avoid processing symlinks since that
would result in the file the link points to being "fixed". Closes: #535586
-- Joey Hess <joeyh@debian.org> Mon, 06 Jul 2009 13:37:01 -0400
alien (8.76) unstable; urgency=low
* Avoid using hostname -f for portability to unix systems,
such as Solaris, where any options _set_ the hostname.
* Fix bash shebang and recognise bash scripts as editable
shell scripts when converting to deb. Closes: #532330
(Thanks, Bruce Stephens)
-- Joey Hess <joeyh@debian.org> Mon, 08 Jun 2009 13:22:35 -0400
alien (8.75) unstable; urgency=low alien (8.75) unstable; urgency=low
* Simplified rules file. * Simplified rules file.