34 Commits
8.67 ... 8.78

Author SHA1 Message Date
Joey Hess
6ab9218809 releasing version 8.78 2009-07-08 13:55:16 -04:00
Pavel Roskin
9c28b11e6c Fix support for recent versions of rpm
Recent versions of rpm (such as 4.7.0) ignore the buildroot setting in
the spec file.  Use the --buildroot option to ensure the correct
buildroot is used.
2009-07-08 13:52:49 -04:00
Joey Hess
e14d223117 releasing version 8.77 2009-07-06 13:40:58 -04:00
Joey Hess
f456bbf8b6 In rpm permission fixup code, avoid processing symlinks since that would result in the file the link points to being "fixed". Closes: #535586 2009-07-06 13:35:03 -04:00
Joey Hess
78734c0523 Don't allow whitespace in package version when parsing debian/changelog. 2009-06-17 13:07:18 -04:00
Joey Hess
f680d3af91 releasing version 8.76 2009-06-08 13:24:25 -04:00
Joey Hess
5b605e1960 Fix bash shebang and recognise bash scripts as editable shell scripts when converting to deb. Closes: #532330 (Thanks, Bruce Stephens) 2009-06-08 13:22:30 -04:00
Joey Hess
cbf330f982 Avoid using hostname -f for portability to unix systems, such as Solaris, where any options _set_ the hostname. 2009-05-29 13:03:17 -04:00
Joey Hess
bcd8dae206 releasing version 8.75 2009-05-06 17:24:21 -04:00
Joey Hess
edcd96f80f Modify maintainer scripts from rpm files to use /bin/bash rather than /bin/sh. Many such scripts are only tested on systems where /bin/sh is bash, and contain bashisms, which can cause trouble when converting the rpm to be used on eg, the Debian family of distributions, where /bin/sh can legitimatly be dash. Closes: #495971 2009-05-06 17:20:44 -04:00
Joey Hess
c21645ddfa Simplified rules file. 2009-02-27 20:20:37 -05:00
Joey Hess
0f8fa0df54 pod fixes 2009-02-15 19:56:50 -05:00
Joey Hess
2a84d6e8ec true slackware packages unlikely, so generalize messages 2009-01-14 13:39:14 -05:00
Joey Hess
66a1247dfd Support bzipped and uncompressed tar files, using tar's auto-compression detection. (Requires gnu tar 1.14.91) 2009-01-14 13:37:06 -05:00
Joey Hess
e921e1417f releasing version 8.73 2008-10-26 23:45:09 -04:00
Joey Hess
d15598e944 Fix pkg generation to not include /prototype in all packages. (Kim Bisgaard) 2008-09-11 16:23:14 -04:00
Joey Hess
ee792cb76c releasing version 8.72 2008-05-01 15:41:14 -04:00
Joey Hess
ecabe240bc When generating a debian changelog file, work around bug #478925 by including the alien changelog text inside the debian changelog entry. 2008-05-01 15:40:57 -04:00
Joey Hess
b2421b584a Improve parsing of tgz filenames, to avoid confusion when the filename includes the package type (ie, "noarch"). Patch from Andrej Ricnik-Bay. 2008-04-29 18:26:16 -04:00
Joey Hess
7893ffb4ed Use debhelper 7, rules file minimisation. 2008-04-24 02:02:59 -04:00
Joey Hess
5e1d2c9fa4 * Deal with rpms that relocate ie, /usr into /usr/local, and don't
try to move /usr into /usr/local in this case. Closes: #470905
2008-03-14 13:35:41 -04:00
Joey Hess
3c8631f8fd don't try to modify a constant value 2008-03-12 11:10:09 -04:00
Joey Hess
17bcd710f7 * Extract prefixes field before extracting scripts so that
RPM_INSTALL_PREFIX gets set.
2008-03-12 11:05:39 -04:00
Joey Hess
ac38739a74 lintin fixes 2008-01-05 14:50:46 -05:00
Joey Hess
dbf7fdfa5b typo 2007-11-27 15:47:42 -05:00
Joey Hess
15b2f7ff92 add homepage field 2007-11-06 15:54:02 -05:00
Joey Hess
7a06220ed7 * Improve the short description. 2007-10-19 20:34:22 -04:00
Joey Hess
d39d884f1b * Minor improvement to debian/rules clean. 2007-10-19 20:32:58 -04:00
Joey Hess
9edefc1c48 add 2007-10-19 20:32:35 -04:00
Joey Hess
13b74f3141 * Alien's repository has moved from subversion to git. 2007-10-15 23:35:16 -04:00
joey
6230493dfe Vcs- fields now official 2007-10-10 22:24:21 +00:00
joey
cfc242e886 releasing version 8.68 2007-05-24 18:11:25 +00:00
joey
ffcb91fa04 * Show output of installation of package with -i, since some packages
install scripts may have important output or even be interactive.
  Closes; #425732
2007-05-23 18:03:47 +00:00
joey
f0c859c1c4 typo 2007-05-23 17:30:22 +00:00
12 changed files with 213 additions and 88 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
alien.lsm
alien.spec

View File

@@ -87,8 +87,11 @@ sub install {
my $this=shift; my $this=shift;
my $deb=shift; my $deb=shift;
my $v=$Alien::Package::verbose;
$Alien::Package::verbose=2;
$this->do("dpkg", "--no-force-overwrite", "-i", $deb) $this->do("dpkg", "--no-force-overwrite", "-i", $deb)
or die "Unable to install"; or die "Unable to install";
$Alien::Package::verbose=$v;
} }
=item test =item test
@@ -314,6 +317,7 @@ sub prep {
my $line=<$changelog>; my $line=<$changelog>;
if ($line=~/^[^ ]+\s+\(([^)]+)\)\s/) { if ($line=~/^[^ ]+\s+\(([^)]+)\)\s/) {
my $version=$1; my $version=$1;
$version=~s/\s+//; # ensure no whitespace
if ($version=~/(.*)-(.*)/) { if ($version=~/(.*)-(.*)/) {
$version=$1; $version=$1;
$this->release($2); $this->release($2);
@@ -331,10 +335,14 @@ sub prep {
print OUT $this->name." (".$this->version."-".$this->release.") experimental; urgency=low\n"; print OUT $this->name." (".$this->version."-".$this->release.") experimental; urgency=low\n";
print OUT "\n"; print OUT "\n";
print OUT " * Converted from .".$this->origformat." format to .deb by alien version $Alien::Version\n"; print OUT " * Converted from .".$this->origformat." format to .deb by alien version $Alien::Version\n";
print OUT " \n";
if (defined $this->changelogtext) {
my $ct=$this->changelogtext;
$ct=~s/^/ /gm;
print OUT $ct."\n";
}
print OUT "\n"; print OUT "\n";
print OUT " -- ".$this->username." <".$this->email."> ".$this->date."\n"; print OUT " -- ".$this->username." <".$this->email."> ".$this->date."\n";
print OUT "\n";
print OUT $this->changelogtext."\n" if defined $this->changelogtext;
close OUT; close OUT;
# Control file. # Control file.
@@ -676,7 +684,7 @@ sub email {
close MAILNAME; close MAILNAME;
} }
if (!$mailname) { if (!$mailname) {
$mailname=$this->runpipe(1, "hostname -f"); $mailname=$this->runpipe(1, "hostname");
chomp $mailname; chomp $mailname;
} }
return "$login\@$mailname"; return "$login\@$mailname";
@@ -731,7 +739,7 @@ sub postinst {
return $postinst unless %$owninfo; return $postinst unless %$owninfo;
my ($firstline, $rest)=split(/\n/, $postinst, 2); my ($firstline, $rest)=split(/\n/, $postinst, 2);
if ($firstline !~ m/^#!\s*\/bin\/sh/) { if ($firstline !~ m/^#!\s*\/bin\/(ba)?sh/) {
print STDERR "warning: unable to add ownership fixup code to postinst as the postinst is not a shell script!\n"; print STDERR "warning: unable to add ownership fixup code to postinst as the postinst is not a shell script!\n";
return $postinst; return $postinst;
} }
@@ -747,7 +755,7 @@ sub postinst {
return "$firstline\n$permscript\n$rest"; return "$firstline\n$permscript\n$rest";
} }
=cut =back
=head1 AUTHOR =head1 AUTHOR

View File

@@ -106,8 +106,11 @@ sub install {
my $pkg=shift; my $pkg=shift;
if (-x "/usr/sbin/pkgadd") { if (-x "/usr/sbin/pkgadd") {
my $v=$Alien::Package::verbose;
$Alien::Package::verbose=2;
$this->do("/usr/sbin/pkgadd", "-d .", "$pkg") $this->do("/usr/sbin/pkgadd", "-d .", "$pkg")
or die "Unable to install"; or die "Unable to install";
$Alien::Package::verbose=$v;
} }
else { else {
die "Sorry, I cannot install the generated .pkg file because /usr/sbin/pkgadd is not present.\n"; die "Sorry, I cannot install the generated .pkg file because /usr/sbin/pkgadd is not present.\n";
@@ -259,7 +262,7 @@ sub prep {
# grep {/^\./} readdir DIR; # grep {/^\./} readdir DIR;
# closedir DIR; # closedir DIR;
$this->do("cd $dir; find . -print | pkgproto > ./prototype") $this->do("cd $dir; find . -print | sed -e '/.\\/prototype\$/d' | pkgproto > ./prototype")
|| die "error during pkgproto: $!\n"; || die "error during pkgproto: $!\n";
open(PKGPROTO, ">>$dir/prototype") open(PKGPROTO, ">>$dir/prototype")
@@ -324,6 +327,8 @@ sub build {
return $name; return $name;
} }
=back
=head1 AUTHOR =head1 AUTHOR
Mark Hershberger <mah@everybody.org> Mark Hershberger <mah@everybody.org>

View File

@@ -53,8 +53,11 @@ sub install {
my $this=shift; my $this=shift;
my $rpm=shift; my $rpm=shift;
my $v=$Alien::Package::verbose;
$Alien::Package::verbose=2;
$this->do("rpm -ivh ".(exists $ENV{RPMINSTALLOPT} ? $ENV{RPMINSTALLOPT} : '').$rpm) $this->do("rpm -ivh ".(exists $ENV{RPMINSTALLOPT} ? $ENV{RPMINSTALLOPT} : '').$rpm)
or die "Unable to install"; or die "Unable to install";
$Alien::Package::verbose=$v;
} }
=item scan =item scan
@@ -75,18 +78,20 @@ sub scan {
POSTUN => 'postrm', POSTUN => 'postrm',
); );
# These fields need no translation except case.
foreach (qw{name version release arch changelogtext summary
description copyright prefixes}) {
$fieldtrans{uc $_}=$_;
}
# Use --queryformat to pull out all the fields we need. # Use --queryformat to pull out all the fields we need.
foreach my $field (keys(%fieldtrans)) { foreach my $field (qw{NAME VERSION RELEASE ARCH CHANGELOGTEXT
$_=$this->runpipe(0, "LANG=C rpm -qp --queryformat \%{$field} $file"); SUMMARY DESCRIPTION COPYRIGHT PREFIXES},
$field=$fieldtrans{$field}; keys(%fieldtrans)) {
$_='' if $_ eq '(none)'; my $value=$this->runpipe(0, "LANG=C rpm -qp --queryformat \%{$field} $file");
$this->$field($_); my $key;
if (exists $fieldtrans{$field}) {
$key=$fieldtrans{$field};
}
else {
$key=lc($field);
}
$value='' if $value eq '(none)';
$this->$key($value);
} }
# Get the conffiles list. # Get the conffiles list.
@@ -182,30 +187,45 @@ sub unpack {
# #
# Test to see if the package contains the prefix directory already. # Test to see if the package contains the prefix directory already.
if (defined $this->prefixes && ! -e "$workdir/".$this->prefixes) { if (defined $this->prefixes && ! -e "$workdir/".$this->prefixes) {
my $relocate=1;
# Get the files to move. # Get the files to move.
my @filelist=glob("$workdir/*"); my @filelist=glob("$workdir/*");
# Now, make the destination directory. # Now, make the destination directory.
my $collect=$workdir; my $collect=$workdir;
foreach (split m:/:, $this->prefixes) { foreach (split m:/:, $this->prefixes) {
if ($_ ne '') { # this keeps us from using anything but relative paths. if ($_ ne '') { # this keeps us from using anything but relative paths.
$collect.="/$_"; $collect.="/$_";
if (-d $collect) {
# The package contains a parent
# directory of the relocation
# directory. Since it's impossible
# to move a parent directory into
# its child, bail out and do
# nothing.
$relocate=0;
last;
}
$this->do("mkdir", $collect) || die "unable to mkdir $collect: $!"; $this->do("mkdir", $collect) || die "unable to mkdir $collect: $!";
} }
} }
# Now move all files in the package to the directory we made.
if (@filelist) {
$this->do("mv", @filelist, "$workdir/".$this->prefixes)
or die "error moving unpacked files into the default prefix directory: $!";
}
# Deal with relocating conffiles. if ($relocate) {
my @cf; # Now move all files in the package to the directory we made.
foreach my $cf (@{$this->conffiles}) { if (@filelist) {
$cf=$this->prefixes.$cf; $this->do("mv", @filelist, "$workdir/".$this->prefixes)
push @cf, $cf; or die "error moving unpacked files into the default prefix directory: $!";
}
# Deal with relocating conffiles.
my @cf;
foreach my $cf (@{$this->conffiles}) {
$cf=$this->prefixes.$cf;
push @cf, $cf;
}
$this->conffiles([@cf]);
} }
$this->conffiles([@cf]);
} }
# rpm files have two sets of permissions; the set in the cpio # rpm files have two sets of permissions; the set in the cpio
@@ -219,6 +239,9 @@ sub unpack {
while (<GETPERMS>) { while (<GETPERMS>) {
chomp; chomp;
my ($mode, $owner, $group, $file) = split(/ /, $_, 4); my ($mode, $owner, $group, $file) = split(/ /, $_, 4);
next if -l "$workdir/$file";
$mode = $mode & 07777; # remove filetype $mode = $mode & 07777; # remove filetype
my $uid = getpwnam($owner); my $uid = getpwnam($owner);
if (! defined $uid || $uid != 0) { if (! defined $uid || $uid != 0) {
@@ -238,12 +261,10 @@ sub unpack {
if (defined($owninfo{$file}) && ($mode & 07000 > 0)) { if (defined($owninfo{$file}) && ($mode & 07000 > 0)) {
$modeinfo{$file} = sprintf "%lo", $mode; $modeinfo{$file} = sprintf "%lo", $mode;
} }
next unless -e "$workdir/$file"; # skip broken links
if ($> == 0) { if ($> == 0) {
$this->do("chown", "$uid:$gid", "$workdir/$file") $this->do("chown", "$uid:$gid", "$workdir/$file")
|| die "failed chowning $file to $uid\:$gid\: $!"; || die "failed chowning $file to $uid\:$gid\: $!";
} }
next if -l "$workdir/$file"; # skip links
$this->do("chmod", sprintf("%lo", $mode), "$workdir/$file") $this->do("chmod", sprintf("%lo", $mode), "$workdir/$file")
|| die "failed changing mode of $file to $mode\: $!"; || die "failed changing mode of $file to $mode\: $!";
} }
@@ -398,7 +419,9 @@ sub build {
} }
$opts.=" $ENV{RPMBUILDOPT}" if exists $ENV{RPMBUILDOPT}; $opts.=" $ENV{RPMBUILDOPT}" if exists $ENV{RPMBUILDOPT};
my $command="cd $dir; $buildcmd -bb $opts ".$this->name."-".$this->version."-".$this->release.".spec"; my $pwd=`pwd`;
chomp $pwd;
my $command="cd $dir; $buildcmd --buildroot=$pwd/$dir -bb $opts ".$this->name."-".$this->version."-".$this->release.".spec";
my $log=$this->runpipe(1, "$command 2>&1"); my $log=$this->runpipe(1, "$command 2>&1");
if ($?) { if ($?) {
die "Package build failed. Here's the log of the command ($command):\n", $log; die "Package build failed. Here's the log of the command ($command):\n", $log;
@@ -443,11 +466,16 @@ debian/slackware scripts can be anything -- perl programs or binary files
-- and rpm is limited to only shell scripts, we need to encode the files -- and rpm is limited to only shell scripts, we need to encode the files
and add a scrap of shell script to make it unextract and run on the fly. and add a scrap of shell script to make it unextract and run on the fly.
When setting a value, we do some mangling too. Rpm maitainer scripts When setting a value, we do some mangling too. Rpm maintainer scripts
are typically shell scripts, but often lack the leading #!/bin/sh are typically shell scripts, but often lack the leading shebang line.
This can confuse dpkg, so add the #!/bin/sh if it looks like there This can confuse dpkg, so add the shebang if it looks like there
is no shebang magic already in place. is no shebang magic already in place.
Additionally, it's not uncommon for rpm maintainer scripts to contain
bashisms, which can be triggered when they are ran on systems where /bin/sh
is not bash. To work around this, the shebang line of the scripts is
changed to use bash.
Also, if the rpm is relocatable, the script could refer to Also, if the rpm is relocatable, the script could refer to
RPM_INSTALL_PREFIX, which is set by rpm at run time. Deal with this by RPM_INSTALL_PREFIX, which is set by rpm at run time. Deal with this by
adding code to the script to set RPM_INSTALL_PREFIX. adding code to the script to set RPM_INSTALL_PREFIX.
@@ -469,9 +497,10 @@ sub _script_helper {
my $value=shift; my $value=shift;
if (length $value and $value !~ m/^#!\s*\//) { if (length $value and $value !~ m/^#!\s*\//) {
$value="#!/bin/sh\n$prefixcode$value"; $value="#!/bin/bash\n$prefixcode$value";
} }
else { else {
$value=~s@^#!\s*/bin/sh(\s)@#!/bin/bash$1@;
$value=~s/\n/\n$prefixcode/s; $value=~s/\n/\n$prefixcode/s;
} }
$this->{$script} = $value; $this->{$script} = $value;

View File

@@ -114,8 +114,11 @@ sub install {
my $this=shift; my $this=shift;
my $slp=shift; my $slp=shift;
my $v=$Alien::Package::verbose;
$Alien::Package::verbose=2;
$this->do("slpi", $slp) $this->do("slpi", $slp)
or die "Unable to install"; or die "Unable to install";
$Alien::Package::verbose=$v;
} }
=item getfooter =item getfooter
@@ -355,6 +358,8 @@ sub release {
} }
=back
=head1 AUTHOR =head1 AUTHOR
Joey Hess <joey@kitenet.net> Joey Hess <joey@kitenet.net>

View File

@@ -9,10 +9,14 @@ Alien::Package::Tgz - an object that represents a tgz package
package Alien::Package::Tgz; package Alien::Package::Tgz;
use strict; use strict;
use base qw(Alien::Package); use base qw(Alien::Package);
use Cwd qw(abs_path);
my $tarext=qr/\.(?:tgz|tar(?:\.(?:gz|Z|z|bz|bz2))?|taz)$/;
=head1 DESCRIPTION =head1 DESCRIPTION
This is an object class that represents a tgz package, as used in Slackware. This is an object class that represents a tgz package, as used in Slackware.
It also allows conversion of raw tar files.
It is derived from Alien::Package. It is derived from Alien::Package.
=head1 CLASS DATA =head1 CLASS DATA
@@ -49,7 +53,7 @@ sub checkfile {
my $this=shift; my $this=shift;
my $file=shift; my $file=shift;
return $file =~ m/.*\.(?:tgz|tar\.(?:gz|Z|z)|taz)$/; return $file =~ m/$tarext$/;
} }
=item install =item install
@@ -66,8 +70,11 @@ sub install {
my $tgz=shift; my $tgz=shift;
if (-x "/sbin/installpkg") { if (-x "/sbin/installpkg") {
my $v=$Alien::Package::verbose;
$Alien::Package::verbose=2;
$this->do("/sbin/installpkg", "$tgz") $this->do("/sbin/installpkg", "$tgz")
or die "Unable to install"; or die "Unable to install";
$Alien::Package::verbose=$v;
} }
else { else {
die "Sorry, I cannot install the generated .tgz file because /sbin/installpkg is not present. You can use tar to install it yourself.\n" die "Sorry, I cannot install the generated .tgz file because /sbin/installpkg is not present. You can use tar to install it yourself.\n"
@@ -90,9 +97,9 @@ sub scan {
my ($basename)=('/'.$file)=~m#^/?.*/(.*?)$#; my ($basename)=('/'.$file)=~m#^/?.*/(.*?)$#;
# Strip out any tar extentions. # Strip out any tar extentions.
$basename=~s/\.(tgz|tar\.(gz|Z))$//; $basename=~s/$tarext//;
if ($basename=~m/(.*)-(.*?[0-9]+.*)/) { if ($basename=~m/([\w-]+)-([0-9\.?]+).*/) {
$this->name($1); $this->name($1);
$this->version($2); $this->version($2);
} }
@@ -103,11 +110,11 @@ sub scan {
$this->arch('all'); $this->arch('all');
$this->summary("Converted Slackware tgz package"); $this->summary("Converted tgz package");
$this->description($this->summary); $this->description($this->summary);
$this->copyright('unknown'); $this->copyright('unknown');
$this->release(1); $this->release(1);
$this->distribution("Slackware"); $this->distribution("Slackware/tarball");
$this->group("unknown"); $this->group("unknown");
$this->origformat('tgz'); $this->origformat('tgz');
$this->changelogtext(''); $this->changelogtext('');
@@ -116,7 +123,7 @@ sub scan {
# Now figure out the conffiles. Assume anything in etc/ is a # Now figure out the conffiles. Assume anything in etc/ is a
# conffile. # conffile.
my @conffiles; my @conffiles;
open (FILELIST,"tar zvtf $file | grep etc/ |") || open (FILELIST,"tar vtf $file | grep etc/ |") ||
die "getting filelist: $!"; die "getting filelist: $!";
while (<FILELIST>) { while (<FILELIST>) {
# Make sure it's a normal file. This is looking at the # Make sure it's a normal file. This is looking at the
@@ -133,7 +140,7 @@ sub scan {
# Now get the whole filelist. We have to add leading /'s to the # Now get the whole filelist. We have to add leading /'s to the
# filenames. We have to ignore all files under /install/ # filenames. We have to ignore all files under /install/
my @filelist; my @filelist;
open (FILELIST, "tar ztf $file |") || open (FILELIST, "tar tf $file |") ||
die "getting filelist: $!"; die "getting filelist: $!";
while (<FILELIST>) { while (<FILELIST>) {
chomp; chomp;
@@ -145,7 +152,7 @@ sub scan {
# Now get the scripts. # Now get the scripts.
foreach my $script (keys %{scripttrans()}) { foreach my $script (keys %{scripttrans()}) {
$this->$script(scalar $this->runpipe(1, "tar Oxzf $file install/${scripttrans()}{$script} 2>/dev/null")); $this->$script(scalar $this->runpipe(1, "tar Oxf $file install/${scripttrans()}{$script} 2>/dev/null"));
} }
return 1; return 1;
@@ -160,9 +167,9 @@ Unpack tgz.
sub unpack { sub unpack {
my $this=shift; my $this=shift;
$this->SUPER::unpack(@_); $this->SUPER::unpack(@_);
my $file=$this->filename; my $file=abs_path($this->filename);
$this->do("cat $file | (cd ".$this->unpacked_tree."; tar zxpf -)") $this->do("cd ".$this->unpacked_tree."; tar xpf $file")
or die "Unpacking of '$file' failed: $!"; or die "Unpacking of '$file' failed: $!";
# Delete the install directory that has slackware info in it. # Delete the install directory that has slackware info in it.
$this->do("cd ".$this->unpacked_tree."; rm -rf ./install"); $this->do("cd ".$this->unpacked_tree."; rm -rf ./install");
@@ -215,6 +222,8 @@ sub build {
return $tgz; return $tgz;
} }
=back
=head1 AUTHOR =head1 AUTHOR
Joey Hess <joey@kitenet.net> Joey Hess <joey@kitenet.net>

View File

@@ -137,7 +137,7 @@ built.
Be less strict about which patch file is used, perhaps attempting to use a patch Be less strict about which patch file is used, perhaps attempting to use a patch
file for an older verson of the package. This is not guaranteed to always work; file for an older verson of the package. This is not guaranteed to always work;
older patches may necessarily not work with newer packages. older patches may not necessarily work with newer packages.
=item B<--nopatch> =item B<--nopatch>
@@ -159,7 +159,7 @@ Note that without an argument, this displays the version of B<alien> instead.
=item B<-c>, B<--scripts> =item B<-c>, B<--scripts>
Try to convert the scripts that are meant to be run when the Try to convert the scripts that are meant to be run when the
package is installed and removed. Use this with caution, becuase these package is installed and removed. Use this with caution, because these
scripts might be designed to work on a system unlike your own, and could scripts might be designed to work on a system unlike your own, and could
cause problems. It is recommended that you examine the scripts by hand cause problems. It is recommended that you examine the scripts by hand
and check to see what they do before using this option. and check to see what they do before using this option.

91
debian/changelog vendored
View File

@@ -1,3 +1,94 @@
alien (8.78) unstable; urgency=low
* Add support for rpm 4.7.0, which ignores the buildroot setting in the
spec file, by passing --buildroot. (Thanks, Pavel Roskin)
-- Joey Hess <joeyh@debian.org> Wed, 08 Jul 2009 13:53:05 -0400
alien (8.77) unstable; urgency=low
* Don't allow whitespace in package version when parsing debian/changelog.
* In rpm permission fixup code, avoid processing symlinks since that
would result in the file the link points to being "fixed". Closes: #535586
-- Joey Hess <joeyh@debian.org> Mon, 06 Jul 2009 13:37:01 -0400
alien (8.76) unstable; urgency=low
* Avoid using hostname -f for portability to unix systems,
such as Solaris, where any options _set_ the hostname.
* Fix bash shebang and recognise bash scripts as editable
shell scripts when converting to deb. Closes: #532330
(Thanks, Bruce Stephens)
-- Joey Hess <joeyh@debian.org> Mon, 08 Jun 2009 13:22:35 -0400
alien (8.75) unstable; urgency=low
* Simplified rules file.
* Modify maintainer scripts from rpm files to use /bin/bash rather
than /bin/sh. Many such scripts are only tested on systems where /bin/sh
is bash, and contain bashisms, which can cause trouble when converting
the rpm to be used on eg, the Debian family of distributions, where
/bin/sh can legitimatly be dash. Closes: #495971
-- Joey Hess <joeyh@debian.org> Wed, 06 May 2009 17:22:02 -0400
alien (8.74) unstable; urgency=low
* Support bzipped and uncompressed tar files, using tar's auto-compression
detection. (Requires gnu tar 1.14.91)
* pod fixes
-- Joey Hess <joeyh@debian.org> Sun, 15 Feb 2009 19:51:54 -0500
alien (8.73) unstable; urgency=low
* Fix pkg generation to not include /prototype in all packages.
(Kim Bisgaard)
-- Joey Hess <joeyh@debian.org> Sun, 26 Oct 2008 23:43:47 -0400
alien (8.72) unstable; urgency=low
* Use debhelper 7, rules file minimisation.
* Improve parsing of tgz filenames, to avoid confusion when the filename
includes the package type (ie, "noarch"). Patch from Andrej Ricnik-Bay.
* When generating a debian changelog file, work around bug #478925 by
including the alien changelog text inside the debian changelog entry.
-- Joey Hess <joeyh@debian.org> Thu, 01 May 2008 15:40:34 -0400
alien (8.71) unstable; urgency=low
* Deal with rpms that relocate ie, /usr into /usr/local, and don't
try to move /usr into /usr/local in this case. Closes: #470905
-- Joey Hess <joeyh@debian.org> Fri, 14 Mar 2008 13:35:33 -0400
alien (8.70) unstable; urgency=low
* Extract prefixes field before extracting scripts so that
RPM_INSTALL_PREFIX gets set.
-- Joey Hess <joeyh@debian.org> Wed, 12 Mar 2008 11:05:40 -0400
alien (8.69) unstable; urgency=low
* Alien's repository has moved from subversion to git.
* Minor improvement to debian/rules clean.
* Improve the short description.
-- Joey Hess <joeyh@debian.org> Fri, 19 Oct 2007 20:27:53 -0400
alien (8.68) unstable; urgency=low
* Show output of installation of package with -i, since some packages
install scripts may have important output or even be interactive.
Closes: #425732
-- Joey Hess <joeyh@debian.org> Thu, 24 May 2007 14:08:39 -0400
alien (8.67) unstable; urgency=low alien (8.67) unstable; urgency=low
* Update the url to the web page, and remove several other broken urls from * Update the url to the web page, and remove several other broken urls from

2
debian/compat vendored
View File

@@ -1 +1 @@
4 7

9
debian/control vendored
View File

@@ -1,17 +1,18 @@
Source: alien Source: alien
Section: admin Section: admin
Priority: optional Priority: optional
Build-Depends: debhelper (>= 4), dpkg-dev (>= 1.9.0) Build-Depends: debhelper (>= 7.0.50)
Maintainer: Joey Hess <joeyh@debian.org> Maintainer: Joey Hess <joeyh@debian.org>
Standards-Version: 3.7.2 Standards-Version: 3.8.1
XS-Vcs-Svn: svn://svn.kitenet.net/joey/trunk/src/packages/alien Vcs-Git: git://git.kitenet.net/alien
Homepage: http://kitenet.net/~joey/code/alien/
Package: alien Package: alien
Architecture: all Architecture: all
Section: admin Section: admin
Depends: debhelper (>= 3), ${misc:Depends}, ${perl:Depends}, rpm (>= 2.4.4-2), dpkg-dev, make, cpio Depends: debhelper (>= 3), ${misc:Depends}, ${perl:Depends}, rpm (>= 2.4.4-2), dpkg-dev, make, cpio
Suggests: patch, bzip2, lsb-rpm, lintian Suggests: patch, bzip2, lsb-rpm, lintian
Description: install non-native packages with dpkg Description: convert and install rpm and other packages
Alien allows you to convert LSB, Red Hat, Stampede and Slackware Packages Alien allows you to convert LSB, Red Hat, Stampede and Slackware Packages
into Debian packages, which can be installed with dpkg. into Debian packages, which can be installed with dpkg.
. .

2
debian/docs vendored Normal file
View File

@@ -0,0 +1,2 @@
README
gendiff.txt

43
debian/rules vendored
View File

@@ -1,47 +1,20 @@
#!/usr/bin/make -f #!/usr/bin/make -f
%:
dh $@
build: build-stamp override_dh_auto_test:
build-stamp:
dh_testdir
perl Makefile.PL
$(MAKE)
# simple smoke test # simple smoke test
./alien.pl -V ./alien.pl -V
touch build-stamp
clean: override_dh_auto_install:
dh_testdir
dh_testroot
rm -f build-stamp
perl Makefile.PL
-$(MAKE) realclean
dh_clean
binary-arch: build
binary-indep: build
dh_testdir
dh_testroot
dh_clean -k
$(MAKE) pure_install INSTALLDIRS=vendor \ $(MAKE) pure_install INSTALLDIRS=vendor \
PREFIX=$(shell pwd)/debian/alien/$(shell perl -MConfig -e 'print $$Config{prefix}') \ PREFIX=$(shell pwd)/debian/alien/$(shell perl -MConfig -e 'print $$Config{prefix}') \
VARPREFIX=$(shell pwd)/debian/alien VARPREFIX=$(shell pwd)/debian/alien
# Why does it make this empty directory? Sigh.
rm -rf debian/alien/usr/lib override_dh_auto_clean:
dh_installdocs README gendiff.txt # distclean moans about MANIFEST, this is quieter
dh_installexamples if [ -e Makefile ]; then $(MAKE) realclean; fi
dh_installchangelogs
dh_compress
dh_fixperms
dh_perl
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
# Not intended for use by anyone except the author. # Not intended for use by anyone except the author.
announcedir: announcedir:
@echo ${HOME}/src/joeywiki/code/alien/news @echo ${HOME}/src/joeywiki/code/alien/news
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary