* Patch from Michael Barabanov <baraban@fsmlabs.com> to make -n work by

preventing rpm from expanding stuff like %S in the uuencoded scripts.
This commit is contained in:
joey
2000-03-12 23:40:38 +00:00
parent 6cbb8c267d
commit 6f7dc901be
2 changed files with 12 additions and 2 deletions

7
debian/changelog vendored
View File

@@ -1,3 +1,10 @@
alien (6.58) unstable; urgency=low
* Patch from Michael Barabanov <baraban@fsmlabs.com> to make -n work by
preventing rpm from expanding stuff like %S in the uuencoded scripts.
-- Joey Hess <joeyh@debian.org> Sun, 12 Mar 2000 15:39:07 -0800
alien (6.57) unstable; urgency=low alien (6.57) unstable; urgency=low
* Corrected priority in control file to optional; ftp admins, please take * Corrected priority in control file to optional; ftp admins, please take

View File

@@ -13,16 +13,19 @@ sub FixFields { my ($self,%fields)=@_;
# Fix up the scripts. Since debian/slackware scripts can be anything, even # Fix up the scripts. Since debian/slackware scripts can be anything, even
# perl programs or binary files, and redhat is limited to only shell scripts, # perl programs or binary files, and redhat is limited to only shell scripts,
# we need to encode the files and add a scrap of shell script to make it # we need to encode the files and add a scrap of shell script to make it
# unextract and run on the fly. # unextract and run on the fly.
my $field; my $field;
foreach $field ('POSTINST', 'POSTRM', 'PREINST', 'PRERM') { foreach $field ('POSTINST', 'POSTRM', 'PREINST', 'PRERM') {
if ($fields{$field}) { if ($fields{$field}) {
# Rpm expands %S, so escape such things.
` my $f = pack("u",$fields{$field});
$f =~ s/%/%%/g;
$fields{$field}= $fields{$field}=
"set -e\n". "set -e\n".
"mkdir /tmp/alien.\$\$\n". "mkdir /tmp/alien.\$\$\n".
qq{perl -pe '\$_=unpack("u",\$_)' << '__EOF__' > /tmp/alien.\$\$/script\n}. qq{perl -pe '\$_=unpack("u",\$_)' << '__EOF__' > /tmp/alien.\$\$/script\n}.
pack("u",$fields{$field}). $f.
"__EOF__\n". "__EOF__\n".
"chmod 755 /tmp/alien.\$\$/script\n". "chmod 755 /tmp/alien.\$\$/script\n".
"/tmp/alien.\$\$/script \"\$@\"\n". "/tmp/alien.\$\$/script \"\$@\"\n".