From 84a83679021a942c5baa35fa05777bc254a4e789 Mon Sep 17 00:00:00 2001 From: joey Date: Sat, 22 Apr 2000 06:18:50 +0000 Subject: [PATCH] * The great rewrite. Alien is now based on pure object oriented package 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. --- Alien/Package/Rpm.pm | 2 +- Makefile.PL | 6 +++--- alien.pl | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Alien/Package/Rpm.pm b/Alien/Package/Rpm.pm index 80219b4..d75a418 100644 --- a/Alien/Package/Rpm.pm +++ b/Alien/Package/Rpm.pm @@ -215,7 +215,7 @@ sub prep { my $filelist; foreach my $fn (@{$this->filelist}) { if ($fn =~ m:/$:) { - # a directory. Skip entirely. + $filelist.="%dir $fn\n"; } elsif (grep(m:^\Q$fn\E$:,@conffiles)) { # it's a conffile $filelist.="%config $fn\n"; diff --git a/Makefile.PL b/Makefile.PL index 386690b..f57b61b 100755 --- a/Makefile.PL +++ b/Makefile.PL @@ -28,7 +28,7 @@ extra_install: alien: perl -pe ' \ - $$_="\tmy \$$version_string=\"$(VER)\";" \ + $$_="\tmy \$$version_string=\"$(VER)\";\n" \ if /VERSION_AUTOREPLACE/' alien.pl > alien } } @@ -39,6 +39,6 @@ WriteMakefile( # Pure evil. Hook into build and install targets 'depend' => {'all:' => 'extra_build', 'install:' => 'extra_install', - 'pure_install:' => 'extra_install' - 'clean' => {FILES => 'alien.lsm alien.subst'}, + 'pure_install:' => 'extra_install'}, + 'clean' => {FILES => 'alien.lsm alien'}, ); diff --git a/alien.pl b/alien.pl index 5b490c5..c04f846 100755 --- a/alien.pl +++ b/alien.pl @@ -371,7 +371,7 @@ foreach my $file (@ARGV) { $package->patchfile($patchfile) } else { - $package->patchfile($package->getpatch(patchdirs()); + $package->patchfile($package->getpatch(patchdirs())); } }