mirror of
https://github.com/Project-OSS-Revival/alien.git
synced 2026-04-25 14:00:17 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6ab9218809 | ||
|
|
9c28b11e6c | ||
|
|
e14d223117 | ||
|
|
f456bbf8b6 | ||
|
|
78734c0523 | ||
|
|
f680d3af91 | ||
|
|
5b605e1960 | ||
|
|
cbf330f982 | ||
|
|
bcd8dae206 | ||
|
|
edcd96f80f | ||
|
|
c21645ddfa |
@@ -317,6 +317,7 @@ sub prep {
|
||||
my $line=<$changelog>;
|
||||
if ($line=~/^[^ ]+\s+\(([^)]+)\)\s/) {
|
||||
my $version=$1;
|
||||
$version=~s/\s+//; # ensure no whitespace
|
||||
if ($version=~/(.*)-(.*)/) {
|
||||
$version=$1;
|
||||
$this->release($2);
|
||||
@@ -683,7 +684,7 @@ sub email {
|
||||
close MAILNAME;
|
||||
}
|
||||
if (!$mailname) {
|
||||
$mailname=$this->runpipe(1, "hostname -f");
|
||||
$mailname=$this->runpipe(1, "hostname");
|
||||
chomp $mailname;
|
||||
}
|
||||
return "$login\@$mailname";
|
||||
@@ -738,7 +739,7 @@ sub postinst {
|
||||
return $postinst unless %$owninfo;
|
||||
|
||||
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";
|
||||
return $postinst;
|
||||
}
|
||||
|
||||
@@ -239,6 +239,9 @@ sub unpack {
|
||||
while (<GETPERMS>) {
|
||||
chomp;
|
||||
my ($mode, $owner, $group, $file) = split(/ /, $_, 4);
|
||||
|
||||
next if -l "$workdir/$file";
|
||||
|
||||
$mode = $mode & 07777; # remove filetype
|
||||
my $uid = getpwnam($owner);
|
||||
if (! defined $uid || $uid != 0) {
|
||||
@@ -258,12 +261,10 @@ sub unpack {
|
||||
if (defined($owninfo{$file}) && ($mode & 07000 > 0)) {
|
||||
$modeinfo{$file} = sprintf "%lo", $mode;
|
||||
}
|
||||
next unless -e "$workdir/$file"; # skip broken links
|
||||
if ($> == 0) {
|
||||
$this->do("chown", "$uid:$gid", "$workdir/$file")
|
||||
|| die "failed chowning $file to $uid\:$gid\: $!";
|
||||
}
|
||||
next if -l "$workdir/$file"; # skip links
|
||||
$this->do("chmod", sprintf("%lo", $mode), "$workdir/$file")
|
||||
|| die "failed changing mode of $file to $mode\: $!";
|
||||
}
|
||||
@@ -418,7 +419,9 @@ sub build {
|
||||
}
|
||||
|
||||
$opts.=" $ENV{RPMBUILDOPT}" if exists $ENV{RPMBUILDOPT};
|
||||
my $command="cd $dir; $buildcmd -bb $opts ".$this->name."-".$this->version."-".$this->release.".spec";
|
||||
my $pwd=`pwd`;
|
||||
chomp $pwd;
|
||||
my $command="cd $dir; $buildcmd --buildroot=$pwd/$dir -bb $opts ".$this->name."-".$this->version."-".$this->release.".spec";
|
||||
my $log=$this->runpipe(1, "$command 2>&1");
|
||||
if ($?) {
|
||||
die "Package build failed. Here's the log of the command ($command):\n", $log;
|
||||
@@ -463,11 +466,16 @@ debian/slackware scripts can be anything -- perl programs or binary files
|
||||
-- and rpm is limited to only shell scripts, we need to encode the files
|
||||
and add a scrap of shell script to make it unextract and run on the fly.
|
||||
|
||||
When setting a value, we do some mangling too. Rpm maitainer scripts
|
||||
are typically shell scripts, but often lack the leading #!/bin/sh
|
||||
This can confuse dpkg, so add the #!/bin/sh if it looks like there
|
||||
When setting a value, we do some mangling too. Rpm maintainer scripts
|
||||
are typically shell scripts, but often lack the leading shebang line.
|
||||
This can confuse dpkg, so add the shebang if it looks like there
|
||||
is no shebang magic already in place.
|
||||
|
||||
Additionally, it's not uncommon for rpm maintainer scripts to contain
|
||||
bashisms, which can be triggered when they are ran on systems where /bin/sh
|
||||
is not bash. To work around this, the shebang line of the scripts is
|
||||
changed to use bash.
|
||||
|
||||
Also, if the rpm is relocatable, the script could refer to
|
||||
RPM_INSTALL_PREFIX, which is set by rpm at run time. Deal with this by
|
||||
adding code to the script to set RPM_INSTALL_PREFIX.
|
||||
@@ -489,9 +497,10 @@ sub _script_helper {
|
||||
|
||||
my $value=shift;
|
||||
if (length $value and $value !~ m/^#!\s*\//) {
|
||||
$value="#!/bin/sh\n$prefixcode$value";
|
||||
$value="#!/bin/bash\n$prefixcode$value";
|
||||
}
|
||||
else {
|
||||
$value=~s@^#!\s*/bin/sh(\s)@#!/bin/bash$1@;
|
||||
$value=~s/\n/\n$prefixcode/s;
|
||||
}
|
||||
$this->{$script} = $value;
|
||||
|
||||
36
debian/changelog
vendored
36
debian/changelog
vendored
@@ -1,3 +1,39 @@
|
||||
alien (8.78) unstable; urgency=low
|
||||
|
||||
* Add support for rpm 4.7.0, which ignores the buildroot setting in the
|
||||
spec file, by passing --buildroot. (Thanks, Pavel Roskin)
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Wed, 08 Jul 2009 13:53:05 -0400
|
||||
|
||||
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
|
||||
|
||||
* Simplified rules file.
|
||||
* Modify maintainer scripts from rpm files to use /bin/bash rather
|
||||
than /bin/sh. Many such scripts are only tested on systems where /bin/sh
|
||||
is bash, and contain bashisms, which can cause trouble when converting
|
||||
the rpm to be used on eg, the Debian family of distributions, where
|
||||
/bin/sh can legitimatly be dash. Closes: #495971
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Wed, 06 May 2009 17:22:02 -0400
|
||||
|
||||
alien (8.74) unstable; urgency=low
|
||||
|
||||
* Support bzipped and uncompressed tar files, using tar's auto-compression
|
||||
|
||||
4
debian/control
vendored
4
debian/control
vendored
@@ -1,9 +1,9 @@
|
||||
Source: alien
|
||||
Section: admin
|
||||
Priority: optional
|
||||
Build-Depends: debhelper (>= 7)
|
||||
Build-Depends: debhelper (>= 7.0.50)
|
||||
Maintainer: Joey Hess <joeyh@debian.org>
|
||||
Standards-Version: 3.8.0
|
||||
Standards-Version: 3.8.1
|
||||
Vcs-Git: git://git.kitenet.net/alien
|
||||
Homepage: http://kitenet.net/~joey/code/alien/
|
||||
|
||||
|
||||
13
debian/rules
vendored
13
debian/rules
vendored
@@ -2,20 +2,19 @@
|
||||
%:
|
||||
dh $@
|
||||
|
||||
build:
|
||||
dh build
|
||||
override_dh_auto_test:
|
||||
# simple smoke test
|
||||
./alien.pl -V
|
||||
|
||||
binary-indep: build
|
||||
dh install --before dh_auto_install
|
||||
override_dh_auto_install:
|
||||
$(MAKE) pure_install INSTALLDIRS=vendor \
|
||||
PREFIX=$(shell pwd)/debian/alien/$(shell perl -MConfig -e 'print $$Config{prefix}') \
|
||||
VARPREFIX=$(shell pwd)/debian/alien
|
||||
dh install --after dh_auto_install
|
||||
|
||||
override_dh_auto_clean:
|
||||
# distclean moans about MANIFEST, this is quieter
|
||||
if [ -e Makefile ]; then $(MAKE) realclean; fi
|
||||
|
||||
# Not intended for use by anyone except the author.
|
||||
announcedir:
|
||||
@echo ${HOME}/src/joeywiki/code/alien/news
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
|
||||
Reference in New Issue
Block a user