64 Commits
8.80 ... 8.95.4

Author SHA1 Message Date
Boyuan Yang
80877786d3 Prepare new upload. 2021-04-07 12:20:23 -04:00
Boyuan Yang
0de126bcfb Let alien recognize aarch64->arm64. (Closes: #985808) 2021-04-07 12:13:57 -04:00
Boyuan Yang
3f13d15dfd Fix incorrect filepath (Closes: #985835) 2021-04-07 12:12:13 -04:00
Boyuan Yang
f66dbb457b Fix incorrect debian/rules template. (Closes: #983492) 2021-04-07 12:09:23 -04:00
Boyuan Yang
a5a16d572f Revert "debian/control: Bump Standard-Version to 4.5.1."
This reverts commit 18e40eeabb.
2021-04-07 12:08:05 -04:00
Boyuan Yang
18e40eeabb debian/control: Bump Standard-Version to 4.5.1. 2021-04-07 12:07:16 -04:00
Adrian Bunk
1a98232df6 Import Debian version 8.95.3
alien (8.95.3) unstable; urgency=medium
.
  * QA upload.
  * Upload to unstable.
2021-04-07 12:05:10 -04:00
Jelmer Vernooij
648de61a5d Merge branch 'scrub-obsolete' into 'master'
Remove unnecessary constraints

See merge request debian/alien!1
2021-03-03 17:28:58 +00:00
Jenkins
0a70fe5858 Remove constraints unnecessary since stretch.
* alien: Drop versioned constraint on debhelper, rpm in Depends.

Changes-By: deb-scrub-obsolete
2021-02-14 15:04:11 +00:00
Thiago da Silva Gracini
e2eb7e0026 Import Debian version 8.95.2
alien (8.95.2) experimental; urgency=medium
.
  * QA upload.
  * debian/control:
      + Bump debhelper compat to v13.
      + Included Rules-Requires-Root: no
  * debian/changelog:
      + Removed trailing-whitespaces.
  * alien.pl:
      + Fixed some misspelled words.
  * Alien/Package.pm:
      + Fixed misspelled word.
  * Alien/Package/Rpm.pm:
      + Fixed misspeled word.
  * debian/rules:
      + Added a "nocheck" check on override_dh_auto_test.
2020-11-11 23:10:13 +00:00
Boyuan Yang
9b5622f8f2 Deb.pm: Use dh sequencer in rules file; bump debhelper requirement to 10+ 2020-03-29 00:07:47 -04:00
Boyuan Yang
88a0008668 Rpm.pm: Do not ship conflicting dirs (Closes: #759533)
See also: https://sourceforge.net/p/alien-pkg-convert/tickets/1/

Generated RPM packages provides directories that conflict with
the "filesystem" package. As a result, do not ship commonly-used
directories.

Patch provided by woob in the above ticket webpage.
2020-03-28 23:50:17 -04:00
Boyuan Yang
a7be498dca debian/changelog: Document changes in Vcs-* fields 2020-03-28 23:45:30 -04:00
Boyuan Yang
f11a007797 debian/control,compat: Minor fixes 2020-03-28 23:40:53 -04:00
Fabiano Antunes
9f53b73b58 Import Debian version 8.95
alien (8.95) unstable; urgency=medium

  * QA upload.
  * debian/control:
      - Bumped Standards-Version to 3.9.6.
      - Removed duplicated section field.
  * debian/copyright:
      - Replaced protocol from http to https in the Format field.
      - Included authors' e-mail addresses.
      - Replaced GPL-2+ license reference by actual GPL-2+ license.
  * debian/source/format: Created as 3.0 (native).

alien (8.94) unstable; urgency=medium

  * QA upload.
  * Fix "FTBFS with perl 5.22 in experimental (MakeMaker changes)":
    remove override_dh_auto_install in debian/rules, and 
    use DESTDIR in Makefile.PL.
    (Closes: #792371)
2020-03-28 23:37:19 -04:00
Joey Hess
bb351ddbc8 Alien needs a new maintainer, both in Debian and upstream. 2014-11-07 17:26:20 -04:00
Joey Hess
3572ac62b9 foo 2014-08-31 14:16:51 -07:00
Joey Hess
6443b942ab prep 2014-08-31 14:16:33 -07:00
Joey Hess
919297f3d1 Remove suggests for lsb-rpm, which no longer exists. Closes: #756873 2014-08-02 19:20:25 -04:00
Joey Hess
22709da70e prep 2014-06-13 12:04:21 -04:00
Joey Hess
06ae0587ac prep release 2014-06-13 12:04:01 -04:00
Joey Hess
c1b64b0c48 Support other deb data.tar compression schemes in fallback code. Closes: #718364 Thanks, Guillem Jover 2014-05-18 12:21:01 -04:00
Guillem Jover
93ad8ae367 Update deb support in fallback code
Add support for control.tar, control.tar.xz, data.tar, data.tar.xz,
data.tar.bz2 (deprecated) and data.tar.lzma (deprecated), so that the
fallback code is in line with current dpkg-deb.

The deprecated members are supported because there might be such binary
packages laying around.
2014-05-18 12:20:18 -04:00
Joey Hess
d3750a8156 prep release 2014-02-27 12:00:21 -04:00
Joey Hess
7a1afcfb97 prep release 2014-02-27 11:59:27 -04:00
Joey Hess
2999238f34 Add conversion from ppc64le (rpm) to ppc64el (deb). 2014-02-26 13:09:32 -04:00
Joey Hess
887717f304 changelog 2014-01-17 14:05:43 -04:00
Teemu Ikonen
9cb511802b Add --target=<arch> option for setting architecture. 2014-01-17 14:05:05 -04:00
Krzysztof Opasiak
6f5a303f3b Treat armv7l as an alias to armel architecture.
There are some OS like Tizne which use rpm's and build
them for armv7l architecture. In debain nomenclature
this architecture is armel, so armv7l should be
an alias to armel.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2013-12-10 12:36:17 -04:00
Joey Hess
92933477e6 need to check in these files to use dgit
These files appear in the tarball, so dgit requires they be in git. hmm.
2013-08-26 01:06:39 -04:00
Joey Hess
53751ccbbf Merge remote-tracking branch 'remotes/dgit/dgit/sid' 2013-08-26 00:59:39 -04:00
Joey Hess
41fc0d549f prep release (with dgit!) 2013-08-26 00:48:28 -04:00
Joey Hess
b1bd50cc90 Handle whitespace in path to RPMs. Closes: #719776 (Thanks, Christopher Huhn) 2013-08-15 11:10:46 +02:00
Christopher Huhn
dd38b4e86d Correctly handle RPMs with whitespace in their path 2013-08-15 11:09:22 +02:00
Joey Hess
7aee419bd2 Correct man page to say RPMBUILDOPT (not RPMBUILDOPTS). Closes: #701106 2013-02-21 17:05:03 -04:00
Joey Hess
db4ea6fa4a releasing version 8.88 2012-08-09 14:45:24 -04:00
Joey Hess
f545de15f5 alien (8.88) unstable; urgency=low
* Ensure that version numbers begin with well, a number, when building a
    deb, otherwise dpkg-deb will refuse to build it.

# imported from the archive
2012-08-09 14:44:49 -04:00
Joey Hess
2fb28d27d2 Ensure that version numbers begin with well, a number, when building a deb, otherwise dpkg-deb will refuse to build it. 2012-08-09 14:14:59 -04:00
Joey Hess
363deec1c6 releasing version 8.87 2012-04-05 13:54:58 -04:00
Joey Hess
b69f536367 Fix adding of postinst script to deb, containing rpm permissions fixups code. Closes: #667651 2012-04-05 13:51:24 -04:00
Joey Hess
f717997da1 Use lsb-rpmbuild, not lsb-rpm. Closes: #667044
Note that lsb-rpm has been dropped from rpm in Debian unstable. So
this changes nothing really; it already fell back to rpmbuild.

And I can find no mention of either lsb-rpm or lsb-rpmbuild in the LSB
spec, although I didn't look very hard.
2012-04-04 13:36:18 -04:00
Joey Hess
3faa48b23f update copyright format url 2012-02-25 10:43:13 -04:00
Joey Hess
e745cde2a0 releasing version 8.86 2011-11-12 13:14:11 -04:00
Joey Hess
5e4e122d58 Filter out illegal characters in version number when building a deb. Closes: #648531 2011-11-12 13:12:25 -04:00
Joey Hess
873c3606f3 typo 2011-09-29 21:31:38 -04:00
Joey Hess
7640cb99d4 releasing version 8.85 2011-06-19 15:51:33 -04:00
Joey Hess
585fc93270 Avoid breaking on spaces in filenames. Closes: #618636
The runpipe interface is not a good one, it would be better to use
something that does not expose to the shell.

As a quick fix, quote filenames in runpipe calls. Too bad if you have a
quote character in a file though. Later need to find a better interface
or do full shell escaping.
2011-06-11 13:00:34 -04:00
Joey Hess
5b49be4d3d releasing version 8.84 2011-04-15 14:14:38 -04:00
Joey Hess
2dee87ca02 add bug closure 2011-04-15 14:13:11 -04:00
Joey Hess
5c6bf645b5 DEP5 2011-01-13 18:48:08 -04:00
Joey Hess
1ca19300b4 Squash an uninitialized value when creating a deb. 2011-01-06 13:49:40 -04:00
Joey Hess
9b37ec8545 Silence error message when deleting build tree after making an rpm, if rpmbuild has already deleted it. 2011-01-06 13:47:37 -04:00
Joey Hess
143131c8c0 releasing version 8.83 2010-09-09 08:25:35 -04:00
Joey Hess
0d765b965d Correct handling of arch all packages in deb arch check. Closes: #596209 2010-09-09 08:24:54 -04:00
Joey Hess
efeddebd32 releasing version 8.82 2010-08-30 17:09:52 -04:00
Joey Hess
3a44b767ac Print a nice error message when attempting to build a deb from a package of an unsupported architecture. Closes: #592625 2010-08-30 17:02:26 -04:00
Joey Hess
291db35466 use dpkg-mergechangelog 2010-05-24 11:12:33 -04:00
Joey Hess
66b2a2a226 debhelper updates
* Use debhelper compat level v7 when building packages. All changes
  since v4 seem safe for alien's generated rules files.
* Use dh_prep instead of deprecated dh_clean -k.
2010-05-23 18:56:57 -04:00
Joey Hess
574490fb79 releasing version 8.81 2010-05-17 21:02:47 -04:00
Joey Hess
e7e9f10486 Support RPMs containing ghost files.
(Patch by Ben Webb, who would get his patches applied quicker if he actually communicated them to the program's author.)
2010-05-17 20:54:30 -04:00
Joey Hess
a320ae144c Fix precedence problem that prevented alien from preserving permissions of suid/sgid binaries that are not owned by root.
(Patch by Duane Waddle, on a bug tracking system I don't frequent, that was
about the "expire" it 4 days from now. We got lucky Duane, but please use
the Debian BTS next time!)
2010-05-17 20:48:54 -04:00
Joey Hess
f6529d9be0 Suggest lzma. If not installed, alien will still fail to decompress RPMs using it, but will support most rpms, which are not. 2010-05-17 20:27:12 -04:00
Joey Hess
38bf42863d Support extracting lzma compressed RPMs. (Patch by unnamed person on some bug tracking system I don't frequent.) 2010-05-17 20:24:19 -04:00
Joey Hess
b4bdd3818d Avoid uninitialized value warning when debian/rules fails to run due to alien being run in a noexec directory. Closes: #579216
* Avoid uninitialized value warning when debian/rules fails to run
  due to alien being run in a noexec directory. Closes: #579216
* Prevent DESTROY stomping on alien's exit code sometimes.
2010-04-28 11:30:44 -04:00
17 changed files with 731 additions and 225 deletions

2
.gitignore vendored
View File

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

View File

@@ -62,7 +62,7 @@ The package's maintainer.
=item depends
The package's dependancies. Only dependencies that should exist on all
The package's dependencies. Only dependencies that should exist on all
target distributions can be put in here though (ie: lsb).
=item group
@@ -173,7 +173,7 @@ sub install {
=item test
Test a package file. The filename is passed, should return an array of lines
of test results. Child classses may implement this.
of test results. Child classes may implement this.
=cut
@@ -331,20 +331,27 @@ package was unpacked, it is time now to wipe out the temporary directory.
sub DESTROY {
my $this=shift;
my $exitcode=$?;
return if (! defined $this->unpacked_tree || $this->unpacked_tree eq '');
# This should never happen, but it pays to check.
if ($this->unpacked_tree eq '/') {
die "alien internal error: unpacked_tree is set to '/'. Please file a bug report!";
}
# Just in case some dir perms are too screwed up for rm to work and
# we're not running as root. NB: can't use xargs
$this->do('find', $this->unpacked_tree, '-type', 'd',
'-exec', 'chmod', '755', '{}', ';');
if (-d $this->unpacked_tree) {
# Just in case some dir perms are too screwed up for
# rm to work and we're not running as root. NB: can't
# use xargs
$this->do('find', $this->unpacked_tree, '-type', 'd',
'-exec', 'chmod', '755', '{}', ';');
$this->do('rm', '-rf', $this->unpacked_tree)
or die "unable to delete temporary directory '".$this->unpacked_tree."': $!";
$this->unpacked_tree('');
$this->do('rm', '-rf', $this->unpacked_tree)
or die "unable to delete temporary directory '".$this->unpacked_tree."': $!";
$this->unpacked_tree('');
}
$?=$exitcode;
}
=item AUTOLOAD

View File

@@ -9,6 +9,7 @@ Alien::Package::Deb - an object that represents a deb package
package Alien::Package::Deb;
use strict;
use base qw(Alien::Package);
use List::Util qw(first);
=head1 DESCRIPTION
@@ -23,6 +24,10 @@ Alien::Package.
Set to a true value if dpkg-deb is available.
=item deb_member_list
Set to the list of member names in the deb package.
=item dirtrans
After the build stage, set to a hash reference of the directories we moved
@@ -66,7 +71,7 @@ sub init {
=item checkfile
Detect deb files by their extention.
Detect deb files by their extension.
=cut
@@ -110,13 +115,33 @@ sub test {
return map { s/\n//; $_ }
grep {
! /unknown-section alien/
} $this->runpipe(1, "lintian $deb");
} $this->runpipe(1, "lintian '$deb'");
}
else {
return "lintian not available, so not testing";
}
}
=item get_deb_member_list
Helper method. Pass it the name of the deb and it will return the list of
ar members.
=cut
sub get_deb_member_list {
my $this=shift;
my $file=$this->filename;
my $members=$this->deb_member_list;
unless (defined $members) {
$members = [ map { chomp; $_ } $this->runpipe(1, "ar -t '$file'") ];
$this->deb_member_list($members);
}
return @{$members};
}
=item getcontrolfile
Helper method. Pass it the name of a control file, and it will pull it out
@@ -130,7 +155,7 @@ sub getcontrolfile {
my $file=$this->filename;
if ($this->have_dpkg_deb) {
return $this->runpipe(1, "dpkg-deb --info $file $controlfile 2>/dev/null");
return $this->runpipe(1, "dpkg-deb --info '$file' $controlfile 2>/dev/null");
}
else {
# Solaris tar doesn't support O
@@ -139,14 +164,61 @@ sub getcontrolfile {
return "(mkdir /tmp/tar_out.$$ &&".
" cd /tmp/tar_out.$$ &&".
" tar xf - ./$file &&".
" cat $file; cd /; rm -rf /tmp/tar_out.$$)";
" tar xf - './$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";
my $controlcomp;
my $controlmember = first { /^control\.tar/ }
$this->get_deb_member_list;
if (! defined $controlmember) {
die 'Cannot find control member!';
} elsif ($controlmember eq 'control.tar.gz') {
$controlcomp = 'gzip -dc';
} elsif ($controlmember eq 'control.tar.xz') {
$controlcomp = 'xz -dc';
} elsif ($controlmember eq 'control.tar') {
$controlcomp = 'cat';
} else {
die 'Unknown control member!';
}
my $getcontrol = "ar -p '$file' $controlmember | $controlcomp | ".tar_out($controlfile)." 2>/dev/null";
return $this->runpipe(1, $getcontrol);
}
}
=item get_datamember_cmd
Helper method. Pass it the name of the deb and it will return the raw
command needed to extract the data.tar member.
=cut
sub get_datamember_cmd {
my $this=shift;
my $file=$this->filename;
my $datacomp;
my $datamember = first { /^data\.tar/ }
$this->get_deb_member_list;
if (! defined $datamember) {
die 'Cannot find data member!';
} elsif ($datamember eq 'data.tar.gz') {
$datacomp = 'gzip -dc';
} elsif ($datamember eq 'data.tar.bz2') {
$datacomp = 'bzip2 -dc';
} elsif ($datamember eq 'data.tar.xz') {
$datacomp = 'xz -dc';
} elsif ($datamember eq 'data.tar.lzma') {
$datacomp = 'xz -dc';
} elsif ($datamember eq 'data.tar') {
$datacomp = 'cat';
} else {
die 'Unknown data member!';
}
return "ar -p '$file' $datamember | $datacomp";
}
=item scan
Implement the scan method to read a deb file.
@@ -209,15 +281,15 @@ sub scan {
# Read in the list of all files.
# Note that tar doesn't supply a leading '/', so we have to add that.
my @filelist;
my $datamember_cmd;
if ($this->have_dpkg_deb) {
@filelist=map { chomp; s:\./::; "/$_" }
$this->runpipe(0, "dpkg-deb --fsys-tarfile $file | tar tf -");
$datamember_cmd = "dpkg-deb --fsys-tarfile '$file'";
}
else {
@filelist=map { chomp; s:\./::; "/$_" }
$this->runpipe(0, "ar -p $file data.tar.gz | gzip -dc | tar tf -");
$datamember_cmd = $this->get_datamember_cmd($file);
}
my @filelist=map { chomp; s:\./::; "/$_" }
$this->runpipe(0, "$datamember_cmd | tar tf -");
$this->filelist(\@filelist);
# Read in the scripts, if any.
@@ -244,7 +316,9 @@ sub unpack {
or die "Unpacking of '$file' failed: $!";
}
else {
$this->do("ar -p $file data.tar.gz | gzip -dc | (cd ".$this->unpacked_tree."; tar xpf -)")
my $datamember_cmd = $this->get_datamember_cmd($file);
$this->do("$datamember_cmd | (cd ".$this->unpacked_tree."; tar xpf -)")
or die "Unpacking of '$file' failed: $!";
}
@@ -307,7 +381,7 @@ sub prep {
or die "patch error: $!";
# Look for .rej files.
die "patch failed with .rej files; giving up"
if $this->runpipe(1, "find $dir -name \"*.rej\"");
if $this->runpipe(1, "find '$dir' -name \"*.rej\"");
$this->do('find', '.', '-name', '*.orig', '-exec', 'rm', '{}', ';');
$this->do("chmod", 755, "$dir/debian/rules");
@@ -383,6 +457,11 @@ sub prep {
close OUT;
}
# Use debhelper v7
open (OUT, ">$dir/debian/compat") || die "$dir/debian/compat: $!";
print OUT "10\n";
close OUT;
# A minimal rules file.
open (OUT, ">$dir/debian/rules") || die "$dir/debian/rules: $!";
my $fixpermscomment = $this->fixperms ? "" : "#";
@@ -390,71 +469,52 @@ sub prep {
#!/usr/bin/make -f
# debian/rules for alien
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# Use v4 compatability mode, so ldconfig gets added to maint scripts.
export DH_COMPAT=4
PACKAGE=\$(shell dh_listpackages)
build:
dh_testdir
%:
dh \$\@
clean:
dh_testdir
dh_testroot
override_dh_clean:
dh_clean -d
binary-indep: build
override_dh_auto_configure:
binary-arch: build
dh_testdir
dh_testroot
dh_clean -k -d
dh_installdirs
override_dh_auto_build:
dh_installdocs
dh_installchangelogs
# Copy the packages's files.
override_dh_auto_install:
mkdir -p debian/\$(PACKAGE)
# Copy the packages's files.
find . -maxdepth 1 -mindepth 1 -not -name debian -print0 | \\
xargs -0 -r -i cp -a {} debian/\$(PACKAGE)
sed -e s#'./'##g | \\
xargs -0 -r -i cp -a ./{} debian/\$(PACKAGE)/{}
#
# If you need to move files around in debian/\$(PACKAGE) or do some
# binary patching, do it here
#
override_dh_strip:
# This has been known to break on some wacky binaries.
# dh_strip
dh_compress
$fixpermscomment dh_fixperms
dh_makeshlibs
dh_installdeb
-dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
# dh_strip
override_dh_fixperms:
$fixpermscomment dh_fixperms
override_dh_shlibdeps:
-dh_shlibdeps
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary
EOF
close OUT;
$this->do("chmod", 755, "$dir/debian/rules");
# Save any scripts.
if ($this->usescripts) {
foreach my $script (qw{postinst postrm preinst prerm}) {
my $data=$this->$script();
next unless defined $data;
next if $data =~ m/^\s*$/;
open (OUT,">$dir/debian/$script") ||
die "$dir/debian/$script: $!";
print OUT $data;
close OUT;
}
$this->savescript($script, $this->$script());
}
}
else {
# There may be a postinst with permissions fixups even when
# scripts are disabled.
$this->savescript("postinst", undef);
}
my %dirtrans=( # Note: no trailing slashes on these directory names!
@@ -488,13 +548,27 @@ Build a deb.
sub build {
my $this=shift;
# Detect architecture mismatch and abort with a comprehensible
# error message.
my $arch=$this->arch;
if ($arch ne 'all') {
my $ret=system("dpkg-architecture", "-i".$arch);
if ($ret != 0) {
die $this->filename." is for architecture ".$this->arch." ; the package cannot be built on this system"."\n";
}
}
chdir $this->unpacked_tree;
my $log=$this->runpipe(1, "debian/rules binary 2>&1");
if ($?) {
chdir "..";
my $err=$?;
if ($err) {
if (! defined $log) {
die "Package build failed; could not run generated debian/rules file.\n";
}
die "Package build failed. Here's the log:\n", $log;
}
chdir "..";
return $this->name."_".$this->version."-".$this->release."_".$this->arch.".deb";
}
@@ -529,7 +603,7 @@ sub cleantree {
Set/get package name.
Always returns the packge name in lowercase with all invalid characters
Always returns the package name in lowercase with all invalid characters
rmoved. The name is however, stored unchanged.
=cut
@@ -583,12 +657,13 @@ sub version {
# get
return unless defined wantarray; # optimization
$_=$this->{version};
# Make sure the version contains digets.
unless (/[0-9]/) {
# Drat. Well, add some. dpkg-deb won't work
# on a version w/o numbers!
return $_."0";
# Make sure the version contains a digit at the start, as required
# by dpkg-deb.
unless (/^[0-9]/) {
$_="0".$_;
}
# filter out some characters not allowed in debian versions
s/[^-.+~:A-Za-z0-9]//g; # see lib/dpkg/parsehelp.c parseversion
return $_;
}
@@ -714,29 +789,49 @@ sub username {
return $username;
}
=item postinst
=item savescript
Returns the postinst. This may include generated shell code to set owners
and groups from the owninfo field, and update modes from the modeinfo field.
Saves script to debian directory.
=cut
sub postinst {
sub savescript {
my $this=shift;
my $script=shift;
my $data=shift;
if (@_) {
$this->{postinst}=shift;
if ($script eq 'postinst') {
$data=$this->gen_postinst($data);
}
my $dir=$this->unpacked_tree;
return unless defined $data;
next if $data =~ m/^\s*$/;
open (OUT,">$dir/debian/$script") ||
die "$dir/debian/$script: $!";
print OUT $data;
close OUT;
}
=item gen_postinst
Modifies or creates a postinst. This may include generated shell code to set
owners and groups from the owninfo field, and update modes from the modeinfo
field.
=cut
sub gen_postinst {
my $this=shift;
my $postinst=shift;
my $owninfo = $this->owninfo;
my $modeinfo = $this->modeinfo;
my $postinst = $this->{postinst};
return $postinst unless ref $owninfo;
return $postinst unless ref $owninfo && %$owninfo;
# If there is no postinst, let's make one up..
$postinst="#!/bin/sh\n" unless length $postinst;
return $postinst unless %$owninfo;
$postinst="#!/bin/sh\n" unless defined $postinst && length $postinst;
my ($firstline, $rest)=split(/\n/, $postinst, 2);
if ($firstline !~ m/^#!\s*\/bin\/(ba)?sh/) {

View File

@@ -30,7 +30,7 @@ sub checkfile {
my $this=shift;
my $file=shift;
return unless $file =~ m/^lsb-.*\.rpm$/;
my @deps=$this->runpipe(1, "LANG=C rpm -qp -R $file");
my @deps=$this->runpipe(1, "LANG=C rpm -qp -R '$file'");
return 1 if grep { s/\s+//g; $_ eq 'lsb' } @deps;
return;
}
@@ -96,8 +96,8 @@ sub revert {
=item build
Uses the parent's build method. If a lsb-rpm is available, uses it to build
the package.
Uses the parent's build method. If a lsb-rpmbuild is available, uses it to
build the package.
=cut
@@ -105,8 +105,8 @@ sub build {
my $this=shift;
my $buildcmd=shift || 'rpmbuild';
foreach (split(/:/,$ENV{PATH})) {
if (-x "$_/lsb-rpm") {
$buildcmd='lsb-rpm';
if (-x "$_/lsb-rpmbuild") {
$buildcmd='lsb-rpmbuild';
last;
}
}

View File

@@ -31,7 +31,7 @@ Relocatable rpm packages have a prefixes field.
=item checkfile
Detect rpm files by their extention.
Detect rpm files by their extension.
=cut
@@ -44,7 +44,7 @@ sub checkfile {
=item install
Install a rpm. If RPMINSTALLOPT is set in the environement, the options in
Install a rpm. If RPMINSTALLOPT is set in the environment, the options in
it are passed to rpm on its command line.
=cut
@@ -83,7 +83,7 @@ sub scan {
foreach my $field (qw{NAME VERSION RELEASE ARCH CHANGELOGTEXT
SUMMARY DESCRIPTION PREFIXES},
keys(%fieldtrans)) {
my $value=$this->runpipe(0, "LANG=C rpm -qp --queryformat \%{$field} $file");
my $value=$this->runpipe(0, "LANG=C rpm -qp --queryformat \%{$field} '$file'");
next if $? || $value eq '(none)';
my $key;
if (exists $fieldtrans{$field}) {
@@ -96,16 +96,16 @@ sub scan {
}
# Get the conffiles list.
$this->conffiles([map { chomp; $_ } $this->runpipe(0, "LANG=C rpm -qcp $file")]);
$this->conffiles([map { chomp; $_ } $this->runpipe(0, "LANG=C rpm -qcp '$file'")]);
if (defined $this->conffiles->[0] &&
$this->conffiles->[0] eq '(contains no files)') {
$this->conffiles([]);
}
$this->binary_info(scalar $this->runpipe(0, "rpm -qpi $file"));
$this->binary_info(scalar $this->runpipe(0, "rpm -qpi '$file'"));
# Get the filelist.
$this->filelist([map { chomp; $_ } $this->runpipe(0, "LANG=C rpm -qpl $file")]);
$this->filelist([map { chomp; $_ } $this->runpipe(0, "LANG=C rpm -qpl '$file'")]);
if (defined $this->filelist->[0] &&
$this->filelist->[0] eq '(contains no files)') {
$this->filelist([]);
@@ -128,7 +128,7 @@ sub scan {
}
unless (defined $this->copyright) {
# Older rpms have no licence tag, but have a copyright.
$this->copyright($this->runpipe(0, "LANG=C rpm -qp --queryformat \%{COPYRIGHT} $file"));
$this->copyright($this->runpipe(0, "LANG=C rpm -qp --queryformat \%{COPYRIGHT} '$file'"));
# Fallback.
if (! $this->copyright) {
@@ -159,7 +159,13 @@ sub unpack {
$this->SUPER::unpack(@_);
my $workdir=$this->unpacked_tree;
$this->do("rpm2cpio ".$this->filename." | (cd $workdir; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>&1")
# Check if we need to use lzma to uncompress the cpio archive
my $decomp='';
if ($this->do("rpm2cpio '".$this->filename."' | lzma -t -q > /dev/null 2>&1")) {
$decomp = 'lzma -d -q |';
}
$this->do("rpm2cpio '".$this->filename."' | (cd $workdir; $decomp cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>&1")
or die "Unpacking of '".$this->filename."' failed";
# cpio does not necessarily store all parent directories in an
@@ -168,7 +174,7 @@ sub unpack {
# Find those directories and make them mode 755, which is more
# reasonable.
my %seenfiles;
open (RPMLIST, "rpm2cpio ".$this->filename." | cpio -it --quiet |")
open (RPMLIST, "rpm2cpio '".$this->filename."' | $decomp cpio -it --quiet |")
or die "File list of '".$this->filename."' failed";
while (<RPMLIST>) {
chomp;
@@ -178,7 +184,7 @@ sub unpack {
foreach my $file (`cd $workdir; find ./`) {
chomp $file;
if (! $seenfiles{$file} && -d "$workdir/$file" && ! -l "$workdir/$file") {
$this->do("chmod 755 $workdir/$file");
$this->do("chmod 755 '$workdir/$file'");
}
}
@@ -242,7 +248,7 @@ sub unpack {
# postinst.
my %owninfo = ();
my %modeinfo = ();
open (GETPERMS, 'rpm --queryformat \'[%{FILEMODES} %{FILEUSERNAME} %{FILEGROUPNAME} %{FILENAMES}\n]\' -qp '.$this->filename.' |');
open (GETPERMS, 'rpm --queryformat \'[%{FILEMODES} %{FILEUSERNAME} %{FILEGROUPNAME} %{FILENAMES}\n]\' -qp \''.$this->filename.'\' |');
while (<GETPERMS>) {
chomp;
my ($mode, $owner, $group, $file) = split(/ /, $_, 4);
@@ -265,15 +271,20 @@ sub unpack {
}
$gid=0;
}
if (defined($owninfo{$file}) && ($mode & 07000 > 0)) {
if (defined($owninfo{$file}) && (($mode & 07000) > 0)) {
$modeinfo{$file} = sprintf "%lo", $mode;
}
if ($> == 0) {
$this->do("chown", "$uid:$gid", "$workdir/$file")
|| die "failed chowning $file to $uid\:$gid\: $!";
# Note that ghost files exist in the metadata but not
# in the cpio archive, so check that the file exists
# before trying to access it
if (-e "$workdir/$file") {
if ($> == 0) {
$this->do("chown", "$uid:$gid", "$workdir/$file")
|| die "failed chowning $file to $uid\:$gid\: $!";
}
$this->do("chmod", sprintf("%lo", $mode), "$workdir/$file")
|| die "failed changing mode of $file to $mode\: $!";
}
$this->do("chmod", sprintf("%lo", $mode), "$workdir/$file")
|| die "failed changing mode of $file to $mode\: $!";
}
$this->owninfo(\%owninfo);
$this->modeinfo(\%modeinfo);
@@ -291,26 +302,159 @@ sub prep {
my $this=shift;
my $dir=$this->unpacked_tree || die "The package must be unpacked first!";
# Exclude standard system directories
# This list is adapted from the rpmlint source code
my @standard_dirs = (
"/",
"/bin/",
"/boot/",
"/etc/",
"/etc/X11/",
"/etc/opt/",
"/etc/profile.d/",
"/etc/skel/",
"/etc/xinetd.d/",
"/home/",
"/lib/",
"/lib/modules/",
"/lib64/",
"/media/",
"/mnt/",
"/mnt/cdrom/",
"/mnt/disk/",
"/mnt/floppy/",
"/opt/",
"/proc/",
"/root/",
"/run/",
"/sbin/",
"/selinux/",
"/srv/",
"/sys/",
"/tmp/",
"/usr/",
"/usr/X11R6/",
"/usr/X11R6/bin/",
"/usr/X11R6/doc/",
"/usr/X11R6/include/",
"/usr/X11R6/lib/",
"/usr/X11R6/lib64/",
"/usr/X11R6/man/",
"/usr/X11R6/man/man1/",
"/usr/X11R6/man/man2/",
"/usr/X11R6/man/man3/",
"/usr/X11R6/man/man4/",
"/usr/X11R6/man/man5/",
"/usr/X11R6/man/man6/",
"/usr/X11R6/man/man7/",
"/usr/X11R6/man/man8/",
"/usr/X11R6/man/man9/",
"/usr/X11R6/man/mann/",
"/usr/bin/",
"/usr/bin/X11/",
"/usr/etc/",
"/usr/games/",
"/usr/include/",
"/usr/lib/",
"/usr/lib/X11/",
"/usr/lib/games/",
"/usr/lib/gcc-lib/",
"/usr/lib/menu/",
"/usr/lib64/",
"/usr/lib64/gcc-lib/",
"/usr/local/",
"/usr/local/bin/",
"/usr/local/doc/",
"/usr/local/etc/",
"/usr/local/games/",
"/usr/local/info/",
"/usr/local/lib/",
"/usr/local/lib64/",
"/usr/local/man/",
"/usr/local/man/man1/",
"/usr/local/man/man2/",
"/usr/local/man/man3/",
"/usr/local/man/man4/",
"/usr/local/man/man5/",
"/usr/local/man/man6/",
"/usr/local/man/man7/",
"/usr/local/man/man8/",
"/usr/local/man/man9/",
"/usr/local/man/mann/",
"/usr/local/sbin/",
"/usr/local/share/",
"/usr/local/share/man/",
"/usr/local/share/man/man1/",
"/usr/local/share/man/man2/",
"/usr/local/share/man/man3/",
"/usr/local/share/man/man4/",
"/usr/local/share/man/man5/",
"/usr/local/share/man/man6/",
"/usr/local/share/man/man7/",
"/usr/local/share/man/man8/",
"/usr/local/share/man/man9/",
"/usr/local/share/man/mann/",
"/usr/local/src/",
"/usr/sbin/",
"/usr/share/",
"/usr/share/dict/",
"/usr/share/doc/",
"/usr/share/icons/",
"/usr/share/info/",
"/usr/share/man/",
"/usr/share/man/man1/",
"/usr/share/man/man2/",
"/usr/share/man/man3/",
"/usr/share/man/man4/",
"/usr/share/man/man5/",
"/usr/share/man/man6/",
"/usr/share/man/man7/",
"/usr/share/man/man8/",
"/usr/share/man/man9/",
"/usr/share/man/mann/",
"/usr/share/misc/",
"/usr/src/",
"/usr/tmp/",
"/var/",
"/var/cache/",
"/var/db/",
"/var/lib/",
"/var/lib/games/",
"/var/lib/misc/",
"/var/lib/rpm/",
"/var/local/",
"/var/log/",
"/var/mail/",
"/var/nis/",
"/var/opt/",
"/var/preserve/",
"/var/spool/",
"/var/spool/mail/",
"/var/tmp/"
);
# Place %config in front of files that are conffiles.
my @conffiles = @{$this->conffiles};
my $filelist;
foreach my $fn (@{$this->filelist}) {
# Unquote any escaped characters in filenames - needed for
# non ascii characters. (eg. iso_8859-1 latin set)
if ($fn =~ /\\/) {
$fn=eval qq{"$fn"};
}
if (! grep(m:^\Q$fn\E$:,@standard_dirs)) {
# Unquote any escaped characters in filenames - needed for
# non ascii characters. (eg. iso_8859-1 latin set)
if ($fn =~ /\\/) {
$fn=eval qq{"$fn"};
}
# Note all filenames are quoted in case they contain
# spaces.
if ($fn =~ m:/$:) {
$filelist.=qq{%dir "$fn"\n};
}
elsif (grep(m:^\Q$fn\E$:,@conffiles)) { # it's a conffile
$filelist.=qq{%config "$fn"\n};
}
else { # normal file
$filelist.=qq{"$fn"\n};
# Note all filenames are quoted in case they contain
# spaces.
if ($fn =~ m:/$:) {
$filelist.=qq{%dir "$fn"\n};
}
elsif (grep(m:^\Q$fn\E$:,@conffiles)) { # it's a conffile
$filelist.=qq{%config "$fn"\n};
}
else { # normal file
$filelist.=qq{"$fn"\n};
}
}
}
@@ -381,7 +525,7 @@ sub cleantree {
=item build
Build a rpm. If RPMBUILDOPT is set in the environement, the options in
Build a rpm. If RPMBUILDOPT is set in the environment, the options in
it are passed to rpm on its command line.
An optional parameter, if passed, can be used to specify the program to use
@@ -413,7 +557,7 @@ sub build {
$opts="--buildarch ".$this->arch;
}
else {
# Presumably we're delaing with rpm 3.0 or above, which
# Presumably we're dealing with rpm 3.0 or above, which
# doesn't output rpmdir in any format I'd care to try to
# parse. Instead, rpm is now of a late enough version to
# notice the %define's in the spec file, that will make the
@@ -428,7 +572,7 @@ sub build {
$opts.=" $ENV{RPMBUILDOPT}" if exists $ENV{RPMBUILDOPT};
my $pwd=`pwd`;
chomp $pwd;
my $command="cd $dir; $buildcmd --buildroot=$pwd/$dir -bb $opts ".$this->name."-".$this->version."-".$this->release.".spec";
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");
if ($?) {
die "Package build failed. Here's the log of the command ($command):\n", $log;
@@ -468,7 +612,7 @@ sub version {
Set/get script fields.
When retrieving a value, we have to do some truely sick mangling. Since
When retrieving a value, we have to do some truly sick mangling. Since
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 add a scrap of shell script to make it unextract and run on the fly.
@@ -553,7 +697,7 @@ sub prerm {
Set/get arch field. When the arch field is set, some sanitizing is done
first to convert it to the debian format used internally. When it's
retreived it's converted back to rpm form from the internal form.
retrieved it's converted back to rpm form from the internal form.
=cut
@@ -596,9 +740,20 @@ sub arch {
# Treat armv4l as arm.
$arch='arm';
}
elsif ($arch eq 'armv7l') {
# Treat armv7l as armel.
$arch='armel';
}
elsif ($arch eq 'aarch64') {
# Treat aarch64 as arm64.
$arch='arm64';
}
elsif ($arch eq 'parisc') {
$arch='hppa';
}
elsif ($arch eq 'ppc64le') {
$arch='ppc64el';
}
$this->{arch}=$arch;
}
@@ -618,6 +773,9 @@ sub arch {
elsif ($arch eq 'all') {
$arch='noarch';
}
elsif ($arch eq 'ppc64el') {
$arch='ppc64le';
}
return $arch
}

View File

@@ -35,7 +35,7 @@ character, I=unsigned integer.)
=item footer_version
What package format are we up to now? (Lowest one this is still
compatable with.)
compatible with.)
=item archtrans
@@ -93,7 +93,7 @@ Holds the slp package format version of the slp file.
=item checkfile
Detect slp files by their extention.
Detect slp files by their extension.
=cut
@@ -166,7 +166,7 @@ sub scan {
# Read in the file list.
my @filelist;
# FIXME: support gzip files too!
foreach ($this->runpipe(0, "bzip2 -d < $file | tar -tf -")) {
foreach ($this->runpipe(0, "bzip2 -d < '$file' | tar -tf -")) {
chomp;
s:^\./:/:;
$_="/$_" unless m:^/:;
@@ -179,7 +179,7 @@ sub scan {
$this->distribution('Stampede');
$this->origformat('slp');
$this->changelogtext('');
$this->binary_info($this->runpipe(0, "ls -l $file"));
$this->binary_info($this->runpipe(0, "ls -l '$file'"));
return 1;
}
@@ -270,7 +270,7 @@ Set/get conffiles.
When the conffiles are set, the format used by slp (a colon-delimited list)
is turned into the real list that is used internally. The list is changed
back into slp's internal format when it is retreived.
back into slp's internal format when it is retrieved.
=cut
@@ -291,7 +291,7 @@ Set/get copyright.
When the copyright is set, the number used by slp is changed into a textual
description. This is changed back into a number when the value is
retreived.
retrieved.
=cut
@@ -315,7 +315,7 @@ Set/get arch.
When the arch is set, the number used by slp is changed into a textual
description. This is changed back into a number when the value is
retreived.
retrieved.
=cut
@@ -341,7 +341,7 @@ sub arch {
Set/get release version.
When the release version is retreived, it is converted to an unsigned
When the release version is retrieved, it is converted to an unsigned
integer, as is required by the slp package format.
=cut

View File

@@ -45,7 +45,7 @@ use constant scripttrans => {
=item checkfile
Detect tgz files by their extention.
Detect tgz files by their extension.
=cut
@@ -96,7 +96,7 @@ sub scan {
# Get basename of the filename.
my ($basename)=('/'.$file)=~m#^/?.*/(.*?)$#;
# Strip out any tar extentions.
# Strip out any tar extensions.
$basename=~s/$tarext//;
if ($basename=~m/([\w-]+)-([0-9\.?]+).*/) {
@@ -118,7 +118,7 @@ sub scan {
$this->group("unknown");
$this->origformat('tgz');
$this->changelogtext('');
$this->binary_info($this->runpipe(0, "ls -l $file"));
$this->binary_info($this->runpipe(0, "ls -l '$file'"));
# Now figure out the conffiles. Assume anything in etc/ is a
# conffile.
@@ -152,7 +152,7 @@ sub scan {
# Now get the scripts.
foreach my $script (keys %{scripttrans()}) {
$this->$script(scalar $this->runpipe(1, "tar Oxf $file install/${scripttrans()}{$script} 2>/dev/null"));
$this->$script(scalar $this->runpipe(1, "tar Oxf '$file' install/${scripttrans()}{$script} 2>/dev/null"));
}
return 1;

View File

@@ -19,17 +19,11 @@ VER=$(shell perl -e '$$_=<>;print m/\((.*?)\)/'<debian/changelog)
all:: extra_build
clean:: extra_build
install:: extra_install
pure_install:: extra_install
extra_build:
perl -i -pe "s/\@version\@/$(VER)/g" <alien.lsm.in >alien.lsm
perl -i -pe "s/\@version\@/$(VER)/g" <alien.spec.in >alien.spec
extra_install:
install -d $(PREFIX)/share/alien/patches \
$(VARPREFIX)/var/lib/alien
alien:
perl -pe '$$_="" if /use lib/; $$_="our \$$Version=\"$(VER)\";\n" if /VERSION_AUTOREPLACE/' alien.pl > alien
}

14
alien.lsm Normal file
View File

@@ -0,0 +1,14 @@
Begin3
Title: alien
Version: 8.95.2
Entered-date: 31MAR97
Description: Alien converts Slackware .tgz packages, Red Hat .rpm packages,
Debian .deb packages, and Stampede .slp packages. It can
convert from any of the formats to any other format. It works
only on binary packages. It also support LSB packages.
Keywords: debian dpkg deb red hat redhat rpm slackware tgz stampede slp convert package LSB
Author: joey@kitenet.net
Primary-site: sunsite.unc.edu /pub/Linux/utils/package
80 alien-8.95.2.tar.gz
Copying-policy: GPL
End

View File

@@ -37,7 +37,7 @@ installed.
=item lsb
Unlike the other package formats, B<alien> can handle the depenendencies of
Unlike the other package formats, B<alien> can handle the dependencies of
lsb packages if the destination package format supports dependencies. Note
that this means that the package generated from a lsb package will depend on
a package named "lsb" -- your distribution should provide a package by that
@@ -149,7 +149,7 @@ built.
=item B<--anypatch>
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 version of the package. This is not guaranteed to always work;
older patches may not necessarily work with newer packages.
=item B<--nopatch>
@@ -158,12 +158,12 @@ Do not use any patch files.
=item B<--description=>I<desc>
Specifiy a description for the package. This only has an effect when
Specify a description for the package. This only has an effect when
converting from the tgz package format, which lacks descriptions.
=item B<--version=>I<version>
Specifiy a version for the package. This only has an effect when
Specify a version for the package. This only has an effect when
converting from the tgz package format, which may lack version
information.
@@ -193,6 +193,10 @@ some things to mess with their permissions and owners to the degree this does,
so it defaults to off. This can only be used when converting to debian
packages.
=item B<--target=>I<architecture>
Force the architecture of the generated package to the given string.
=item B<-v>, B<--verbose>
Be verbose: Display each command B<alien> runs in the process of converting a
@@ -246,7 +250,7 @@ B<alien> recognizes the following environment variables:
=over 4
=item RPMBUILDOPTS
=item RPMBUILDOPT
Options to pass to rpm when it is building a package.
@@ -330,6 +334,7 @@ Usage: alien [options] file [...]
-i, --install Install generated package.
-g, --generate Generate build tree, but do not build package.
-c, --scripts Include scripts in package.
--target=<arch> Set architecture of the generated package.
-v, --verbose Display each command alien runs.
--veryverbose Be verbose, and also display output of run commands.
-k, --keep-version Do not change version of generated package.
@@ -344,7 +349,7 @@ EOF
# Start by processing the parameters.
my (%destformats, $generate, $install, $single, $scripts, $patchfile,
$nopatch, $tgzdescription, $tgzversion, $keepversion, $fixperms,
$test, $anypatch);
$test, $anypatch, $target);
my $versionbump=1;
# Bundling is nice anyway, and it is required or Getopt::Long will confuse
@@ -366,6 +371,7 @@ GetOptions(
"patch=s" => \$patchfile,
"nopatch" => \$nopatch,
"anypatch" => \$anypatch,
"target=s" => \$target,
"description=s" => \$tgzdescription,
"V" => \&version,
"version:s" => sub { length $_[1] ? $tgzversion=$_[1] : version() },
@@ -446,6 +452,10 @@ foreach my $file (@ARGV) {
die "Unknown type of package, $file.\n";
}
if ($target) {
$package->arch($target);
}
if (! $package->usescripts && $package->scripts) {
$package->usescripts($scripts);
if (! $scripts) {

34
alien.spec Normal file
View File

@@ -0,0 +1,34 @@
Summary: Install Debian, Slackware, and Stampede packages with rpm.
Name: alien
Packager: Joey Hess <joey@kitenet.net>
Version: 8.95.2
Release: 1
Source: ftp://kitenet.net/pub/code/debian/alien_8.95.2.tar.gz
License: GPL
Group: Utilities/File
Buildroot: /tmp/alien-8.95.2.build
Requires: perl
BuildArchitectures: noarch
%description
Alien allows you to convert Debian, Slackware, and Stampede Packages into Red
Hat packages, which can be installed with rpm.
It can also generate Slackware, Debian and Stampede packages.
This is a tool only suitable for binary packages.
%prep
%setup -n alien
rm -rf /tmp/alien-8.95.2.build
%install
perl Makefile.PL PREFIX=$RPM_BUILD_ROOT/usr
make
make pure_install VARPREFIX=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -not -type d -printf "/%%P\n" | \
sed '/\/man\//s/$/\*/' > manifest
%files -f manifest
%defattr(-,root,root)
%doc debian/changelog GPL README alien.lsm

242
debian/changelog vendored
View File

@@ -1,3 +1,195 @@
alien (8.95.4) unstable; urgency=high
* QA upload.
* Alien/Package/Deb.pm: Fix incorrect debian/rules template by
properly escaping special characters (dh \$\@ instead of dh $@).
Closes: #983492.
* Alien/Package/Deb.pm: Fix incorrect file installation path.
This fixes the bug in manual override_dh_auto_install that files
are placed under / instead of /usr/ (default prefix).
Closes: #985835.
* Alien/Package/Rpm.pm: Also map aarch64 in rpm to arm64 in deb.
This fixes conversion of aarch64 rpm packages.
Closes: #985808.
-- Boyuan Yang <byang@debian.org> Wed, 07 Apr 2021 12:15:06 -0400
alien (8.95.3) unstable; urgency=medium
* QA upload.
* Upload to unstable.
-- Adrian Bunk <bunk@debian.org> Thu, 11 Feb 2021 22:02:09 +0200
alien (8.95.2) experimental; urgency=medium
* QA upload.
* debian/control:
+ Bump debhelper compat to v13.
+ Included Rules-Requires-Root: no
* debian/changelog:
+ Removed trailing-whitespaces.
* alien.pl:
+ Fixed some misspelled words.
* Alien/Package.pm:
+ Fixed misspelled word.
* Alien/Package/Rpm.pm:
+ Fixed misspeled word.
* debian/rules:
+ Added a "nocheck" check on override_dh_auto_test.
-- Thiago da Silva Gracini <tsgracini@outlook.com> Sun, 01 Nov 2020 15:35:34 -0300
alien (8.95.1) experimental; urgency=medium
* QA upload.
* Rebuild source and binary package.
* debian/control:
+ Bump debhelper compat to v12.
+ Bump Standards-Version to 4.5.0.
+ Update Vcs-* fields to use git packaging repo under Salsa
Debian group.
* Rpm.pm: Do not ship conflicting dirs. (Closes: #759533)
* Deb.pm:
+ Use dh sequencer when generating deb packages.
+ Bump supported debhelper compatibility level to v10.
-- Boyuan Yang <byang@debian.org> Tue, 31 Mar 2020 10:52:19 -0400
alien (8.95) unstable; urgency=medium
* QA upload.
* debian/control:
- Bumped Standards-Version to 3.9.6.
- Removed duplicated section field.
* debian/copyright:
- Replaced protocol from http to https in the Format field.
- Included authors' e-mail addresses.
- Replaced GPL-2+ license reference by actual GPL-2+ license.
* debian/source/format: Created as 3.0 (native).
-- Fabiano Antunes <fabianoantunes@itgen.com.br> Thu, 10 Sep 2015 17:09:04 -0300
alien (8.94) unstable; urgency=medium
* QA upload.
* Fix "FTBFS with perl 5.22 in experimental (MakeMaker changes)":
remove override_dh_auto_install in debian/rules, and
use DESTDIR in Makefile.PL.
(Closes: #792371)
-- gregor herrmann <gregoa@debian.org> Sat, 25 Jul 2015 21:24:15 +0200
alien (8.93) unstable; urgency=medium
* Alien needs a new maintainer, both in Debian and upstream.
-- Joey Hess <joeyh@debian.org> Fri, 07 Nov 2014 17:25:47 -0400
alien (8.92) unstable; urgency=medium
* Remove suggests for lsb-rpm, which no longer exists.
Closes: #756873
-- Joey Hess <joeyh@debian.org> Sun, 31 Aug 2014 14:16:23 -0700
alien (8.91) unstable; urgency=medium
* Support other deb data.tar compression schemes in fallback code.
Closes: #718364
Thanks, Guillem Jover
-- Joey Hess <joeyh@debian.org> Fri, 13 Jun 2014 12:03:54 -0400
alien (8.90) unstable; urgency=medium
* Add --target=<arch> option for setting architecture. Closes: #260948
(Thanks, Teemu Ikonen)
* Add conversion from ppc64le (rpm) to ppc64el (deb).
* debhelper v9
-- Joey Hess <joeyh@debian.org> Thu, 27 Feb 2014 11:59:07 -0400
alien (8.89) unstable; urgency=low
* Correct man page to say RPMBUILDOPT (not RPMBUILDOPTS). Closes: #701106
* Handle whitespace in path to RPMs. Closes: #719776
(Thanks, Christopher Huhn)
-- Joey Hess <joeyh@debian.org> Thu, 22 Aug 2013 21:53:44 -0400
alien (8.88) unstable; urgency=low
* Ensure that version numbers begin with well, a number, when building a
deb, otherwise dpkg-deb will refuse to build it.
-- Joey Hess <joeyh@debian.org> Thu, 09 Aug 2012 14:44:49 -0400
alien (8.87) unstable; urgency=low
* Use lsb-rpmbuild, not lsb-rpm. Closes: #667044
* Fix adding of postinst script to deb, containing rpm permissions
fixups code. Closes: #667651
-- Joey Hess <joeyh@debian.org> Thu, 05 Apr 2012 13:53:29 -0400
alien (8.86) unstable; urgency=low
* Filter out illegal characters in version number when building a deb.
Closes: #648531
-- Joey Hess <joeyh@debian.org> Sat, 12 Nov 2011 13:12:35 -0400
alien (8.85) unstable; urgency=low
* Avoid breaking on spaces in filenames. Closes: #618636
-- Joey Hess <joeyh@debian.org> Sun, 19 Jun 2011 15:43:49 -0400
alien (8.84) unstable; urgency=low
* Silence error message when deleting build tree after making an rpm,
if rpmbuild has already deleted it. Closes: #622846
* Squash an uninitialized value when creating a deb.
-- Joey Hess <joeyh@debian.org> Fri, 15 Apr 2011 14:13:20 -0400
alien (8.83) unstable; urgency=low
* Correct handling of arch all packages in deb arch check. Closes: #596209
-- Joey Hess <joeyh@debian.org> Thu, 09 Sep 2010 08:24:58 -0400
alien (8.82) unstable; urgency=low
* Use debhelper compat level v7 when building packages. All changes
since v4 seem safe for alien's generated rules files.
* Use dh_prep instead of deprecated dh_clean -k.
* Print a nice error message when attempting to build a deb from a package
of an unsupported architecture. Closes: #592625
-- Joey Hess <joeyh@debian.org> Mon, 30 Aug 2010 17:04:24 -0400
alien (8.81) unstable; urgency=low
* Avoid uninitialized value warning when debian/rules fails to run
due to alien being run in a noexec directory. Closes: #579216
* Prevent DESTROY stomping on alien's exit code sometimes.
* Support extracting lzma compressed RPMs.
(Patch by unnamed person on some bug tracking system I don't frequent.)
* Suggest lzma. If not installed, alien will still fail to decompress
RPMs using it, but will support most rpms, which are not.
* Fix precedence problem that prevented alien from preserving permissions
of suid/sgid binaries that are not owned by root.
(Patch by Duane Waddle, on a bug tracking system I don't frequent, that
was about the "expire" it 4 days from now. We got lucky Duane, but please
use the Debian BTS next time!)
* Support RPMs containing ghost files.
(Patch by Ben Webb, who would get his patches applied quicker if he
actually communicated them to the program's author.)
-- Joey Hess <joeyh@debian.org> Mon, 17 May 2010 20:56:59 -0400
alien (8.80) unstable; urgency=low
* Support querying rpm LICENSE field. (Alexey Khoroshilov)
@@ -399,7 +591,7 @@ alien (8.30) unstable; urgency=low
alien (8.26) unstable; urgency=low
* alien.spec: pass PREFIX to Makefile.PL so it works on systems
* alien.spec: pass PREFIX to Makefile.PL so it works on systems
(such as red hat 8) where the generated Makefile does not use
$PREFIX in all paths.
@@ -556,7 +748,7 @@ alien (8.07) unstable; urgency=low
alien (8.06) unstable; urgency=low
* Added --fixperms option. Closes: #142850
* Added --fixperms option. Closes: #142850
-- Joey Hess <joeyh@debian.org> Sun, 21 Apr 2002 22:19:12 -0400
@@ -637,7 +829,7 @@ alien (7.30) unstable; urgency=low
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
* When converting to debs, move files as follows, if possible, for better
FHS compliance:
/usr/man => /usr/share/man
/usr/info => /usr/share/info
@@ -703,7 +895,7 @@ alien (7.20) unstable; urgency=low
* Updated to use debhelper v3 when converting packages. This
automatically should make it start adding ldconfig calls
as appropriate to maintainer scripts. Closes: #86088
* It does mean you need debhelper 3.x for alien to convert to
* It does mean you need debhelper 3.x for alien to convert to
deb now, so alien-extra will need an update.
* Rebuilt with newer perl, so it will work with newer perl (bug filed;
this should not have been necessary).
@@ -718,7 +910,7 @@ alien (7.18) unstable; urgency=low
alien (7.17) unstable; urgency=low
* Munge in #!/bin/sh entries at the top of rpm maintainer
* Munge in #!/bin/sh entries at the top of rpm maintainer
scripts that appear to be shell scripts. Closes: #76124
-- Joey Hess <joeyh@debian.org> Wed, 7 Feb 2001 18:58:56 -0800
@@ -783,7 +975,7 @@ alien (7.9) unstable; urgency=low
alien (7.8) unstable; urgency=low
* Use debhelper v2 for debian/rules, but not when converting
* Use debhelper v2 for debian/rules, but not when converting
packages to deb format.
-- Joey Hess <joeyh@debian.org> Mon, 25 Sep 2000 12:36:25 -0700
@@ -815,7 +1007,7 @@ alien (7.5) unstable; urgency=low
alien (7.4) unstable; urgency=low
* Corrected typo that broke Deb.pm, Closes: #64559
* Corrected typo that broke Deb.pm, Closes: #64559
-- Joey Hess <joeyh@debian.org> Tue, 23 May 2000 19:30:04 -0700
@@ -830,7 +1022,7 @@ alien (7.3) unstable; urgency=low
alien (7.2) unstable; urgency=low
* When reloating files from a rpm, run the mv command directly,
* When reloating files from a rpm, run the mv command directly,
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
@@ -1089,7 +1281,7 @@ alien (6.34) unstable; urgency=low
alien (6.33) unstable; urgency=low
* Fixes for rpm 3.0:
- Since rpm --showrc has changed to a format that is now very
- Since rpm --showrc has changed to a format that is now very
difficult to machine parse for the topdir value, don't. Instead,
force rpm to output the rpm into the cirrent directory. This is
more consistent anyway.
@@ -1133,7 +1325,7 @@ alien (6.29) unstable; urgency=low
alien (6.28) unstable; urgency=low
* Don't call dh_installmanpages when converting to .deb, it can do the
* Don't call dh_installmanpages when converting to .deb, it can do the
wrong thing in some instances.
* Handling of relocatable packages was broken. (#31868) Fixed it by
looking at the rpm PREFIXES tag.
@@ -1158,7 +1350,7 @@ alien (6.25) unstable; urgency=low
* Alien can now be installed into eg, /usr/local via a PREFIX variaible
in the Makefile, based on work by Roman Shterenzon <roman@xpert.com>.
* Typo fix from Roman Shterenzon.
* Moved the patch files that come with alien out of /var/lib/alien
* Moved the patch files that come with alien out of /var/lib/alien
into /usr/lib/alien/patches. Alien will now check both directories for
patches, /var first.
@@ -1220,7 +1412,7 @@ alien (6.17) unstable; urgency=low
alien (6.16) unstable; urgency=low
* When converting from .tgz files, use arch: all. Sort of a hack, but
since we don't know what arch of stuff is in them, it's as good a
since we don't know what arch of stuff is in them, it's as good a
guess as any. This will let people use the conversion on other
architectures. (#26253).
@@ -1282,7 +1474,7 @@ alien (6.09) unstable; urgency=low
to be generated by "alien --to-rpm --scripts".
* That bug is even less likely, becuase it turns out --scripts has been
broken since alien version 6.0. Oops. Fixed.
* --single and --description were also broken since 6.0, and are fixed
* --single and --description were also broken since 6.0, and are fixed
now.
* It used to be that only shell scripts could be converted to rpm format,
because of a stupid bug. Fixed.
@@ -1410,7 +1602,7 @@ alien (5.19) unstable; urgency=low
alien (5.18) unstable; urgency=low
* Use debhelper to build alien (still uses debstd to convert packages).
* Use dpkg-deb if available, instead of using ar. This fixes #12318: alien
* Use dpkg-deb if available, instead of using ar. This fixes #12318: alien
can now handle old format deb files.
-- Joey Hess <joeyh@debian.org> Sat, 27 Sep 1997 15:52:08 -0400
@@ -1418,7 +1610,7 @@ alien (5.18) unstable; urgency=low
alien (5.17) unstable; urgency=low
* Added version info to filename of generated .tgz files.
* Added --keep-version flag, which makes alien not increment the
* Added --keep-version flag, which makes alien not increment the
release number/debian version number.
* Man page fixups.
* Fixes for epochs (for now, just remove epochs, since rpm cannot handle
@@ -1449,7 +1641,7 @@ alien (5.14) unstable; urgency=low
alien (5.13) unstable; urgency=low
* Preliminary support for converting install scripts with the --scripts
* Preliminary support for converting install scripts with the --scripts
option. We have to uuencode them for rpm's.
* Revised documentation.
* Routine update of debian/rules:
@@ -1518,8 +1710,8 @@ alien (5.5) unstable; urgency=low
* Added some more documentation and warnings about file ownerships getting
screwed up if you run alien as non-root.
* Added basic support for converting to Slackware tgz format. Mostly
untested. I confess, I did this just to simplify the documentation of
* Added basic support for converting to Slackware tgz format. Mostly
untested. I confess, I did this just to simplify the documentation of
what alien can do. It was only 10 lines of code to add this, anyway. :-)
* Had a hard drive crash and reassembled this package from bits and
pieces. Hope it's not broken..
@@ -1553,7 +1745,7 @@ alien (5.2) unstable; urgency=low
alien (5.1) unstable; urgency=low
* Added partial support for relocatable packages: DEFAULTPREFIX is
examined, and if set, a subdirectory by the same name is created in the
examined, and if set, a subdirectory by the same name is created in the
build directory of the package. This means relocatable packages end up
in a sane location, not scattered in the root directory as they were
previously.
@@ -1585,7 +1777,7 @@ alien (4.2) unstable; urgency=low
* When installing deb file, alien will use --no-force-overwrite
The idea behind this is to make it difficult to trash your debian system
by installing alien packages that overwrite files in it. This only works
by installing alien packages that overwrite files in it. This only works
if you use alien --install, not if you install the resulting .deb file by
hand. This is a temporary fix until dpkg has --force-overwrite turned
off by default.
@@ -1595,7 +1787,7 @@ alien (4.2) unstable; urgency=low
alien (4.1) unstable; urgency=low
* If a package has underscores in it's name and is being converted to deb
format, change the underscores to dashes. Thanks to
format, change the underscores to dashes. Thanks to
Robert Coie <rac@mata.intrigue.com>
* Strip out any other disallowed characters in package name when
converting to deb.
@@ -1619,7 +1811,7 @@ alien (4.00) unstable; urgency=low
postinst. If there is any demand, I'll try to work this back into the
program.
* Rewrote most of the man page.
* Fixed the version number so there are two digets in the minor revision
* Fixed the version number so there are two digets in the minor revision
number.
-- Joey Hess <joeyh@debian.org> Sat, 29 Mar 1997 21:49:30 -0500
@@ -1691,7 +1883,7 @@ alien (2.80) unstable; urgency=low
* Fixed bug in guessing name of patch file to use.
* Fixed bug that would not let you specify a patch file in the current
directory, or a relative path to a patch file.
* Don't use /etc/rpmrc as an indiciation of whether rpm is present, as
* Don't use /etc/rpmrc as an indiciation of whether rpm is present, as
this is a conffile, and might be deleted. Test for actual rpm binary.
* More friendly error message if patch file is not found, suggesting that
you try -n option.
@@ -2436,7 +2628,7 @@ debmake (1.00) unstable; urgency=low
* rpminstall enables a direct installation of Red Hat packages into the
debian package maintenance system! All dpkg commands will work on it!
* rpminstall uses debstd and thus compresses manpages + documentation and
computes dependencies according to the libraries referenced by the
computes dependencies according to the libraries referenced by the
ELF binaries in the Red Hat package.
-- Christoph Lameter <clameter@waterf.org> Sun, 27 Oct 1996 12:17:51 -0800
@@ -2552,7 +2744,7 @@ debmake (0.4) unstable; urgency=low
* Added automatic compression of documentation in /usr/man and /usr/doc
if files are >1K.
* Checks for dangling symlinks and redirects symlinks to filenames that
* Checks for dangling symlinks and redirects symlinks to filenames that
were changed due to compression.
* Added rc.boot handling
* Permissions for documentation were set to executable when debstd was

1
debian/compat vendored
View File

@@ -1 +0,0 @@
7

22
debian/control vendored
View File

@@ -1,17 +1,25 @@
Source: alien
Section: admin
Priority: optional
Build-Depends: debhelper (>= 7.0.50)
Maintainer: Joey Hess <joeyh@debian.org>
Standards-Version: 3.8.3
Vcs-Git: git://git.kitenet.net/alien
Build-Depends: debhelper-compat (= 13)
Maintainer: Debian QA Group <packages@qa.debian.org>
Standards-Version: 4.5.0
Rules-Requires-Root: no
Vcs-Git: https://salsa.debian.org/debian/alien.git
Vcs-Browser: https://salsa.debian.org/debian/alien
Homepage: http://kitenet.net/~joey/code/alien/
Package: alien
Architecture: all
Section: admin
Depends: debhelper (>= 3), ${misc:Depends}, ${perl:Depends}, rpm (>= 2.4.4-2), dpkg-dev, make, cpio, rpm2cpio
Suggests: patch, bzip2, lsb-rpm, lintian
Depends: debhelper (>= 10),
${misc:Depends},
${perl:Depends},
rpm (>= 2.4.4-2),
dpkg-dev,
make,
cpio,
rpm2cpio
Suggests: patch, bzip2, lintian, lzma
Description: convert and install rpm and other packages
Alien allows you to convert LSB, Red Hat, Stampede and Slackware Packages
into Debian packages, which can be installed with dpkg.

65
debian/copyright vendored
View File

@@ -1,35 +1,34 @@
This is a program originally written by Christoph Lameter
<clameter@debian.org>.
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: native package
Deb to rpm conversion code was taken from the Martian program by
Randolph Chung <randolph@tausq.org>.
The Solaris pkg code was written by Mark A. Hershberger
<mah@everybody.org>.
This program is now maintained by Joey Hess <joeyh@debian.org>.
Copyright 1996, 1997 Christoph Lameter
Portions copyright 1997 Randolph Chung
Portions copyright 2001 Mark A. Hershberger
Copyright 1997-2007 Joey Hess
License:
alien is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
On Debian systems, the complete text of the GPL can be found in
/usr/share/common-licenses/GPL.
Files: *
Copyright: 1996-1997 Christoph Lameter <clameter@debian.org>
1997 Randolph Chung <rc42@cornell.edu>
2001 Mark A. Hershberger <mah@everybody.org>
1997-2011 Joey Hess <joeyh@debian.org>
License: GPL-2+
Files: debian/*
Copyright: 1996-1997 Christoph Lameter <clameter@debian.org>
1997 Randolph Chung <rc42@cornell.edu>
2001 Mark A. Hershberger <mah@everybody.org>
1997-2011 Joey Hess <joeyh@debian.org>
2015 Fabiano Antunes <fabianoantunes@itgen.com.br>
License: GPL-2+
License: GPL-2+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".

7
debian/rules vendored
View File

@@ -3,13 +3,10 @@
dh $@
override_dh_auto_test:
# simple smoke test
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
./alien.pl -V
endif
override_dh_auto_install:
$(MAKE) pure_install INSTALLDIRS=vendor \
PREFIX=$(shell pwd)/debian/alien/$(shell perl -MConfig -e 'print $$Config{prefix}') \
VARPREFIX=$(shell pwd)/debian/alien
override_dh_auto_clean:
# distclean moans about MANIFEST, this is quieter

1
debian/source/format vendored Normal file
View File

@@ -0,0 +1 @@
3.0 (native)