3 Commits
8.74 ... 8.75

4 changed files with 29 additions and 13 deletions

View File

@@ -463,11 +463,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 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. 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 When setting a value, we do some mangling too. Rpm maintainer scripts
are typically shell scripts, but often lack the leading #!/bin/sh are typically shell scripts, but often lack the leading shebang line.
This can confuse dpkg, so add the #!/bin/sh if it looks like there This can confuse dpkg, so add the shebang if it looks like there
is no shebang magic already in place. 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 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 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. adding code to the script to set RPM_INSTALL_PREFIX.
@@ -489,9 +494,10 @@ sub _script_helper {
my $value=shift; my $value=shift;
if (length $value and $value !~ m/^#!\s*\//) { if (length $value and $value !~ m/^#!\s*\//) {
$value="#!/bin/sh\n$prefixcode$value"; $value="#!/bin/bash\n$prefixcode$value";
} }
else { else {
$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;

11
debian/changelog vendored
View File

@@ -1,3 +1,14 @@
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 alien (8.74) unstable; urgency=low
* Support bzipped and uncompressed tar files, using tar's auto-compression * Support bzipped and uncompressed tar files, using tar's auto-compression

4
debian/control vendored
View File

@@ -1,9 +1,9 @@
Source: alien Source: alien
Section: admin Section: admin
Priority: optional Priority: optional
Build-Depends: debhelper (>= 7) Build-Depends: debhelper (>= 7.0.50)
Maintainer: Joey Hess <joeyh@debian.org> Maintainer: Joey Hess <joeyh@debian.org>
Standards-Version: 3.8.0 Standards-Version: 3.8.1
Vcs-Git: git://git.kitenet.net/alien Vcs-Git: git://git.kitenet.net/alien
Homepage: http://kitenet.net/~joey/code/alien/ Homepage: http://kitenet.net/~joey/code/alien/

13
debian/rules vendored
View File

@@ -2,20 +2,19 @@
%: %:
dh $@ dh $@
build: override_dh_auto_test:
dh build
# simple smoke test # simple smoke test
./alien.pl -V ./alien.pl -V
binary-indep: build override_dh_auto_install:
dh install --before dh_auto_install
$(MAKE) pure_install INSTALLDIRS=vendor \ $(MAKE) pure_install INSTALLDIRS=vendor \
PREFIX=$(shell pwd)/debian/alien/$(shell perl -MConfig -e 'print $$Config{prefix}') \ PREFIX=$(shell pwd)/debian/alien/$(shell perl -MConfig -e 'print $$Config{prefix}') \
VARPREFIX=$(shell pwd)/debian/alien 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. # Not intended for use by anyone except the author.
announcedir: announcedir:
@echo ${HOME}/src/joeywiki/code/alien/news @echo ${HOME}/src/joeywiki/code/alien/news
binary: binary-indep binary-arch