* If a preinstall script in a rpm starts like this:
# BEGINNING_OF_POST_DOT_SH
#!/bin/sh
Add anther hashbang at the top, so dpkg doesn't croak on it.
Closes: #137032
fully conformant with the LSB), and it can take LSB packages and convert
them into other formats. Unlike all the other conversions, lsb packages's
dependancy (on lsb) and their package scripts are preserved in the
generated packages (when allowed by the target package format). This means
your distribution will need to have a package named 'lsb' for the result
to be installable. (Debian will have one soon..)
* Suggest rpm-lsb, which is the preferred rpm to build lsb packages with.
Use it if it's present, plain old rpm otherwise.
The latter used to work, but no longer does, due to some change in rpm or
popt. It also has to come after the -bb.
* Trap stderr of rpm and debian/rules building packages, and only display if
the build fails.
There are still a lot that use shell tricks. Should deal with screwey
rpms and file names better though. Closes: #105283
* Display build logs after build failures.
* Applied a patch from Chris Gorman to deal with spaces in directory
names, spaces in conffile names (!!), and accented characters
everywhere in deb -> rpm conversions.
* Fixed numerous problems when converting from .deb w/o dpkg installed.
not in a subshell; this is safer especially if odd filenames are
involved.
* When converting from rpm, only chmod each directory once, it was doing
it many times for some directories before.
* Fixed chmodding to use the correct path to the directory. This fixes
file permissions in rpm's converted to other formats, a bug introduced
at 7.0.
* Fixed some undefined value warnings (which pointed out real but rare
bugs).
* Fixed a rare, but bad little bug. If you ran alien in a directory that
had the suid/sgid bit set (as my home directory does), and generated
debs and probably other formats, it generated packages with the root
directory suid/sgid.
objects. These objects can read all relevant details about a package, and
can generate packages based on that information. Thus, converting from one
format to another becomes a simple matter of generating one of these
objects, pointing it at a package, mutating it into the destination
class, and telling it to write the new package out! A basic alien can now
be written using these objects in one "line" of perl -- in fact, here is
one:
perl -MAlien::Package::Deb -MAlien::Package::Rpm -e '
$p=Alien::Package::Rpm->new(filename => shift); $p->unpack;
* Almost every line of code has been rewritten.
* Package descriptions now include a note that they were converted with
alien. There are other numerous changes to the converted packages, for
instance, generated .deb's now have more info in their copyright file.
* The template files were all moved inside the objects, which is actually
cleaner and is certainly easier to deal with.
* Usernames are now looked up the way POSIX intended.
* alien.1 is now generated from POD docs.
* Alien can now convert into multiple formats at once.
* Alien now always cleans up after failed converts, Closes: #62331
* Alien can now be used to just install a package with no conversion.
Closes: #53441
* Use a Makefile.PL because that seems to make sense, which means lots of
the build system had to be changed.