* 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

View File

@@ -13,16 +13,19 @@ sub FixFields { my ($self,%fields)=@_;
# 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,
# 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.
my $field;
foreach $field ('POSTINST', 'POSTRM', 'PREINST', 'PRERM') {
if ($fields{$field}) {
# Rpm expands %S, so escape such things.
` my $f = pack("u",$fields{$field});
$f =~ s/%/%%/g;
$fields{$field}=
"set -e\n".
"mkdir /tmp/alien.\$\$\n".
qq{perl -pe '\$_=unpack("u",\$_)' << '__EOF__' > /tmp/alien.\$\$/script\n}.
pack("u",$fields{$field}).
$f.
"__EOF__\n".
"chmod 755 /tmp/alien.\$\$/script\n".
"/tmp/alien.\$\$/script \"\$@\"\n".