code to add.
* Don't assume that just because we know of a user or are root, that files
can go into the deb owned by that user, and come out right on install.
Instead, assume that any non-root user will not be on the target system
the rpm is installed on, and that it might be created in the preinst or
something, so add permissions fixup code for all such users.
directory failing if the directory already existed (and let it delete the
existing directory). Closes: #181061
* Fixed several other instances of the same precidence problem in the code.
working in recent versions of rpm, as shipped by red hat (Debian's rpm,
confusingly, continues to support rpm -bb, possibly because of how I hack
its popt stuff up for debian.) This may fail with older, pre-rpmbuild
rpm's; if so you should upgrade to a more current version I guess.
* Updated js2k patch from Gerald Turner.
users/groups in their preinst, and which alien therefore cannot ship the
files with proper ownerships in the .deb. In this case alien will now
insert appropriate chown commands into the postinst script of the
converted package.
* That only works when converting rpm to deb, not the other way around,
for now.
* Removed the cpio directory permissions fixup code, which was probably
broken, and is obsolete since I get directory perms from the rpm now.
known permissions setting from rpm --queryformat, so that it can override
any directories that do indeed have a permission set.
* Fixed MakeFile.PL to work with perl 5.8.
from rpm, ignore the icky file owners and perms from the cpio archive,
and query rpm for the real set that it overrides in the control data
structure. Closes: #151546
* 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.