* Thanks to the excellent work of Mark A. Hershberger <mah@everybody.org>,

alien now supports converting to and from Solaris "pkg" packages (which
     are really SysV packages). You probably need to run it on Solaris for this
     to work, though. This brings the number of possible conversions alien can
     do up from 12 to a monstrous 20!
   * Mark also had to patch Deb.pm a bit so the by-hand deb extraction could
     work with solaris's ar and tar.
   * Documented the EMAIL environment variable. Closes: #116754
   * Threw out a lot of old patches, circa 1999. Probably useless today.
   * When converting to debs, move files as follows, if possible, for better
     FHS compliance:
   	/usr/man	=> /usr/share/man
         /usr/info	=> /usr/share/info
         /usr/doc'	=> /usr/share/doc
   * Also moves files as follows, to avoid possibly confusing dpkg with
     installing over symlinks (?). Closes: #40012
         /usr/bin/X11 should be /usr/X11R6/bin
         /usr/lib/X11 should be /usr/X11R6/lib/X11
         /usr/include/X11 should be /usr/X11R6/include/X11
   * Reverse these moves in the cleantree stage.
   * Debian users who have installed alien packages in the past may want to
     re-convert and reinstall them, to take advantage of the new FHS
     conversions.
This commit is contained in:
joey
2001-11-07 17:14:27 +00:00
parent e106d96664
commit 0aa7015f37
2 changed files with 20 additions and 7 deletions

View File

@@ -97,9 +97,19 @@ sub getcontrolfile {
return `dpkg-deb --info $file $controlfile 2>/dev/null`; return `dpkg-deb --info $file $controlfile 2>/dev/null`;
} }
else { else {
# Solaris tar doesn't support O
sub tar_out {
my $file = shift;
return "(mkdir /tmp/tar_out.$$ &&".
" cd /tmp/tar_out.$$ &&".
# Have to handle old debs without a leading ./ and # Have to handle old debs without a leading ./ and
# new ones with it. # new ones with it.
return `ar p $file control.tar.gz | gzip -dc | tar Oxf - $controlfile ./$controlfile 2>/dev/null` " tar xf - $file ./$file &&".
" cat $file; cd /; rm -rf /tmp/tar_out.$$)";
}
my $getcontrol = "ar -p $file control.tar.gz | gzip -dc | ".tar_out($controlfile)." 2>/dev/null";
return `$getcontrol`
} }
} }
@@ -115,7 +125,8 @@ sub scan {
my $file=$this->filename; my $file=$this->filename;
my @control=$this->getcontrolfile('control'); my @control=$this->getcontrolfile('control');
die "Control file couldn't be read!"
if @control == 0;
# Parse control file and extract fields. Use a translation table # Parse control file and extract fields. Use a translation table
# to map between the debian names and the internal field names, # to map between the debian names and the internal field names,
# which more closely resemble those used by rpm (for historical # which more closely resemble those used by rpm (for historical
@@ -170,7 +181,7 @@ sub scan {
} }
else { else {
@filelist=map { chomp; s:\./::; "/$_" } @filelist=map { chomp; s:\./::; "/$_" }
`ar p $file data.tar.gz | gzip -dc | tar tf -`; `ar -p $file data.tar.gz | gzip -dc | tar tf -`;
} }
$this->filelist(\@filelist); $this->filelist(\@filelist);
@@ -198,7 +209,7 @@ sub unpack {
or die "Unpacking of `$file' failed: $!"; or die "Unpacking of `$file' failed: $!";
} }
else { else {
system("ar p $file data.tar.gz | gzip -dc | (cd ".$this->unpacked_tree."; tar xpf -)") == 0 system("ar -p $file data.tar.gz | gzip -dc | (cd ".$this->unpacked_tree."; tar xpf -)") == 0
or die "Unpacking of `$file' failed: $!"; or die "Unpacking of `$file' failed: $!";
} }

4
debian/changelog vendored
View File

@@ -1,10 +1,12 @@
alien (7.30pre) unstable; urgency=low alien (7.30) unstable; urgency=low
* Thanks to the excellent work of Mark A. Hershberger <mah@everybody.org>, * Thanks to the excellent work of Mark A. Hershberger <mah@everybody.org>,
alien now supports converting to and from Solaris "pkg" packages (which alien now supports converting to and from Solaris "pkg" packages (which
are really SysV packages). You probably need to run it on Solaris for this are really SysV packages). You probably need to run it on Solaris for this
to work, though. This brings the number of possible conversions alien can to work, though. This brings the number of possible conversions alien can
do up from 12 to a monstrous 20! do up from 12 to a monstrous 20!
* Mark also had to patch Deb.pm a bit so the by-hand deb extraction could
work with solaris's ar and tar.
* Documented the EMAIL environment variable. Closes: #116754 * Documented the EMAIL environment variable. Closes: #116754
* Threw out a lot of old patches, circa 1999. Probably useless today. * Threw out a lot of old patches, circa 1999. Probably useless today.
* When converting to debs, move files as follows, if possible, for better * When converting to debs, move files as follows, if possible, for better