mirror of
https://github.com/Project-OSS-Revival/alien.git
synced 2026-04-24 14:00:17 +00:00
Compare commits
40 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a6bf8f390 | ||
|
|
32f04aed12 | ||
|
|
ab603a11e0 | ||
|
|
b3bc197956 | ||
|
|
ee8794614c | ||
|
|
c4c8e3bc4a | ||
|
|
c6b123e40f | ||
|
|
c83906446f | ||
|
|
6a2e53bc63 | ||
|
|
ccd0532208 | ||
|
|
3985359d47 | ||
|
|
385b2066d3 | ||
|
|
b65f2d6974 | ||
|
|
2989545da6 | ||
|
|
3e7874e029 | ||
|
|
919146ea09 | ||
|
|
7179500cf8 | ||
|
|
f0fe4f6c80 | ||
|
|
922b06bf8d | ||
|
|
b235b51c36 | ||
|
|
3e46c56693 | ||
|
|
80877786d3 | ||
|
|
0de126bcfb | ||
|
|
3f13d15dfd | ||
|
|
f66dbb457b | ||
|
|
a5a16d572f | ||
|
|
18e40eeabb | ||
|
|
1a98232df6 | ||
|
|
648de61a5d | ||
|
|
0a70fe5858 | ||
|
|
e2eb7e0026 | ||
|
|
9b5622f8f2 | ||
|
|
88a0008668 | ||
|
|
a7be498dca | ||
|
|
f11a007797 | ||
|
|
9f53b73b58 | ||
|
|
bb351ddbc8 | ||
|
|
3572ac62b9 | ||
|
|
6443b942ab | ||
|
|
919297f3d1 |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1 +0,0 @@
|
|||||||
debian/changelog merge=dpkg-mergechangelogs
|
|
||||||
@@ -62,7 +62,7 @@ The package's maintainer.
|
|||||||
|
|
||||||
=item depends
|
=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).
|
target distributions can be put in here though (ie: lsb).
|
||||||
|
|
||||||
=item group
|
=item group
|
||||||
@@ -173,7 +173,7 @@ sub install {
|
|||||||
=item test
|
=item test
|
||||||
|
|
||||||
Test a package file. The filename is passed, should return an array of lines
|
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
|
=cut
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ sub init {
|
|||||||
|
|
||||||
=item checkfile
|
=item checkfile
|
||||||
|
|
||||||
Detect deb files by their extention.
|
Detect deb files by their extension.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
@@ -176,6 +176,8 @@ sub getcontrolfile {
|
|||||||
$controlcomp = 'gzip -dc';
|
$controlcomp = 'gzip -dc';
|
||||||
} elsif ($controlmember eq 'control.tar.xz') {
|
} elsif ($controlmember eq 'control.tar.xz') {
|
||||||
$controlcomp = 'xz -dc';
|
$controlcomp = 'xz -dc';
|
||||||
|
} elsif ($controlmember eq 'control.tar.zst') {
|
||||||
|
$controlcomp = 'zstd -dc';
|
||||||
} elsif ($controlmember eq 'control.tar') {
|
} elsif ($controlmember eq 'control.tar') {
|
||||||
$controlcomp = 'cat';
|
$controlcomp = 'cat';
|
||||||
} else {
|
} else {
|
||||||
@@ -210,6 +212,8 @@ sub get_datamember_cmd {
|
|||||||
$datacomp = 'xz -dc';
|
$datacomp = 'xz -dc';
|
||||||
} elsif ($datamember eq 'data.tar.lzma') {
|
} elsif ($datamember eq 'data.tar.lzma') {
|
||||||
$datacomp = 'xz -dc';
|
$datacomp = 'xz -dc';
|
||||||
|
} elsif ($datamember eq 'data.tar.zst') {
|
||||||
|
$datacomp = 'zstd -dc';
|
||||||
} elsif ($datamember eq 'data.tar') {
|
} elsif ($datamember eq 'data.tar') {
|
||||||
$datacomp = 'cat';
|
$datacomp = 'cat';
|
||||||
} else {
|
} else {
|
||||||
@@ -459,7 +463,7 @@ sub prep {
|
|||||||
|
|
||||||
# Use debhelper v7
|
# Use debhelper v7
|
||||||
open (OUT, ">$dir/debian/compat") || die "$dir/debian/compat: $!";
|
open (OUT, ">$dir/debian/compat") || die "$dir/debian/compat: $!";
|
||||||
print OUT "7\n";
|
print OUT "10\n";
|
||||||
close OUT;
|
close OUT;
|
||||||
|
|
||||||
# A minimal rules file.
|
# A minimal rules file.
|
||||||
@@ -471,48 +475,40 @@ sub prep {
|
|||||||
|
|
||||||
PACKAGE=\$(shell dh_listpackages)
|
PACKAGE=\$(shell dh_listpackages)
|
||||||
|
|
||||||
build:
|
%:
|
||||||
dh_testdir
|
dh \$\@
|
||||||
|
|
||||||
clean:
|
override_dh_clean:
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
dh_clean -d
|
dh_clean -d
|
||||||
|
|
||||||
binary-indep: build
|
override_dh_auto_configure:
|
||||||
|
|
||||||
binary-arch: build
|
override_dh_auto_build:
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
dh_prep
|
|
||||||
dh_installdirs
|
|
||||||
|
|
||||||
dh_installdocs
|
override_dh_auto_install:
|
||||||
dh_installchangelogs
|
mkdir -p debian/\$(PACKAGE)
|
||||||
|
# Copy the packages's files.
|
||||||
# Copy the packages's files.
|
|
||||||
find . -maxdepth 1 -mindepth 1 -not -name debian -print0 | \\
|
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
|
# If you need to move files around in debian/\$(PACKAGE) or do some
|
||||||
# binary patching, do it here
|
# binary patching, do it here
|
||||||
#
|
#
|
||||||
|
|
||||||
|
override_dh_strip:
|
||||||
# This has been known to break on some wacky binaries.
|
# This has been known to break on some wacky binaries.
|
||||||
# dh_strip
|
# dh_strip
|
||||||
dh_compress
|
|
||||||
$fixpermscomment dh_fixperms
|
override_dh_usrlocal:
|
||||||
dh_makeshlibs
|
-dh_usrlocal || printf "Your package seems to be installing files into /usr/local/, which could be buggy. Will continue anyway.\\n"
|
||||||
dh_installdeb
|
|
||||||
-dh_shlibdeps
|
override_dh_fixperms:
|
||||||
dh_gencontrol
|
$fixpermscomment dh_fixperms
|
||||||
dh_md5sums
|
|
||||||
dh_builddeb
|
override_dh_shlibdeps:
|
||||||
|
-dh_shlibdeps
|
||||||
|
|
||||||
binary: binary-indep binary-arch
|
|
||||||
.PHONY: build clean binary-indep binary-arch binary
|
|
||||||
EOF
|
EOF
|
||||||
close OUT;
|
close OUT;
|
||||||
$this->do("chmod", 755, "$dir/debian/rules");
|
$this->do("chmod", 755, "$dir/debian/rules");
|
||||||
@@ -614,7 +610,7 @@ sub cleantree {
|
|||||||
|
|
||||||
Set/get package name.
|
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.
|
rmoved. The name is however, stored unchanged.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ Alien::Package::Rpm - an object that represents a rpm package
|
|||||||
|
|
||||||
package Alien::Package::Rpm;
|
package Alien::Package::Rpm;
|
||||||
use strict;
|
use strict;
|
||||||
use base qw(Alien::Package);
|
use Exporter qw(import);
|
||||||
|
our @EXPORT_OK = qw(arch);
|
||||||
|
use base qw(Alien::Package Exporter);
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
@@ -31,7 +33,7 @@ Relocatable rpm packages have a prefixes field.
|
|||||||
|
|
||||||
=item checkfile
|
=item checkfile
|
||||||
|
|
||||||
Detect rpm files by their extention.
|
Detect rpm files by their extension.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
@@ -44,7 +46,7 @@ sub checkfile {
|
|||||||
|
|
||||||
=item install
|
=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.
|
it are passed to rpm on its command line.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
@@ -302,10 +304,142 @@ sub prep {
|
|||||||
my $this=shift;
|
my $this=shift;
|
||||||
my $dir=$this->unpacked_tree || die "The package must be unpacked first!";
|
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.
|
# Place %config in front of files that are conffiles.
|
||||||
my @conffiles = @{$this->conffiles};
|
my @conffiles = @{$this->conffiles};
|
||||||
my $filelist;
|
my $filelist;
|
||||||
foreach my $fn (@{$this->filelist}) {
|
foreach my $fn (@{$this->filelist}) {
|
||||||
|
if (! grep(m:^\Q$fn\E$:,@standard_dirs)) {
|
||||||
# Unquote any escaped characters in filenames - needed for
|
# Unquote any escaped characters in filenames - needed for
|
||||||
# non ascii characters. (eg. iso_8859-1 latin set)
|
# non ascii characters. (eg. iso_8859-1 latin set)
|
||||||
if ($fn =~ /\\/) {
|
if ($fn =~ /\\/) {
|
||||||
@@ -324,6 +458,7 @@ sub prep {
|
|||||||
$filelist.=qq{"$fn"\n};
|
$filelist.=qq{"$fn"\n};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Write out the spec file.
|
# Write out the spec file.
|
||||||
my $spec="$dir/".$this->name."-".$this->version."-".$this->release.".spec";
|
my $spec="$dir/".$this->name."-".$this->version."-".$this->release.".spec";
|
||||||
@@ -392,7 +527,7 @@ sub cleantree {
|
|||||||
|
|
||||||
=item build
|
=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.
|
it are passed to rpm on its command line.
|
||||||
|
|
||||||
An optional parameter, if passed, can be used to specify the program to use
|
An optional parameter, if passed, can be used to specify the program to use
|
||||||
@@ -479,7 +614,7 @@ sub version {
|
|||||||
|
|
||||||
Set/get script fields.
|
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
|
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.
|
||||||
@@ -564,7 +699,7 @@ sub prerm {
|
|||||||
|
|
||||||
Set/get arch field. When the arch field is set, some sanitizing is done
|
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
|
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
|
=cut
|
||||||
|
|
||||||
@@ -611,6 +746,10 @@ sub arch {
|
|||||||
# Treat armv7l as armel.
|
# Treat armv7l as armel.
|
||||||
$arch='armel';
|
$arch='armel';
|
||||||
}
|
}
|
||||||
|
elsif ($arch eq 'aarch64') {
|
||||||
|
# Treat aarch64 as arm64.
|
||||||
|
$arch='arm64';
|
||||||
|
}
|
||||||
elsif ($arch eq 'parisc') {
|
elsif ($arch eq 'parisc') {
|
||||||
$arch='hppa';
|
$arch='hppa';
|
||||||
}
|
}
|
||||||
@@ -636,6 +775,9 @@ sub arch {
|
|||||||
elsif ($arch eq 'all') {
|
elsif ($arch eq 'all') {
|
||||||
$arch='noarch';
|
$arch='noarch';
|
||||||
}
|
}
|
||||||
|
elsif ($arch eq 'arm64') {
|
||||||
|
$arch='aarch64';
|
||||||
|
}
|
||||||
elsif ($arch eq 'ppc64el') {
|
elsif ($arch eq 'ppc64el') {
|
||||||
$arch='ppc64le';
|
$arch='ppc64le';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ character, I=unsigned integer.)
|
|||||||
=item footer_version
|
=item footer_version
|
||||||
|
|
||||||
What package format are we up to now? (Lowest one this is still
|
What package format are we up to now? (Lowest one this is still
|
||||||
compatable with.)
|
compatible with.)
|
||||||
|
|
||||||
=item archtrans
|
=item archtrans
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@ Holds the slp package format version of the slp file.
|
|||||||
|
|
||||||
=item checkfile
|
=item checkfile
|
||||||
|
|
||||||
Detect slp files by their extention.
|
Detect slp files by their extension.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
@@ -270,7 +270,7 @@ Set/get conffiles.
|
|||||||
|
|
||||||
When the conffiles are set, the format used by slp (a colon-delimited list)
|
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
|
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
|
=cut
|
||||||
|
|
||||||
@@ -291,7 +291,7 @@ Set/get copyright.
|
|||||||
|
|
||||||
When the copyright is set, the number used by slp is changed into a textual
|
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
|
description. This is changed back into a number when the value is
|
||||||
retreived.
|
retrieved.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
@@ -315,7 +315,7 @@ Set/get arch.
|
|||||||
|
|
||||||
When the arch is set, the number used by slp is changed into a textual
|
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
|
description. This is changed back into a number when the value is
|
||||||
retreived.
|
retrieved.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
@@ -341,7 +341,7 @@ sub arch {
|
|||||||
|
|
||||||
Set/get release version.
|
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.
|
integer, as is required by the slp package format.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ package Alien::Package::Tgz;
|
|||||||
use strict;
|
use strict;
|
||||||
use base qw(Alien::Package);
|
use base qw(Alien::Package);
|
||||||
use Cwd qw(abs_path);
|
use Cwd qw(abs_path);
|
||||||
|
use Alien::Package::Rpm qw(arch);
|
||||||
|
|
||||||
my $tarext=qr/\.(?:tgz|tar(?:\.(?:gz|Z|z|bz|bz2))?|taz)$/;
|
my $tarext=qr/\.(?:tgz|tar(?:\.(?:gz|Z|z|bz|bz2))?|taz)$/;
|
||||||
|
|
||||||
@@ -45,7 +46,7 @@ use constant scripttrans => {
|
|||||||
|
|
||||||
=item checkfile
|
=item checkfile
|
||||||
|
|
||||||
Detect tgz files by their extention.
|
Detect tgz files by their extension.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
@@ -96,7 +97,7 @@ sub scan {
|
|||||||
# Get basename of the filename.
|
# Get basename of the filename.
|
||||||
my ($basename)=('/'.$file)=~m#^/?.*/(.*?)$#;
|
my ($basename)=('/'.$file)=~m#^/?.*/(.*?)$#;
|
||||||
|
|
||||||
# Strip out any tar extentions.
|
# Strip out any tar extensions.
|
||||||
$basename=~s/$tarext//;
|
$basename=~s/$tarext//;
|
||||||
|
|
||||||
if ($basename=~m/([\w-]+)-([0-9\.?]+).*/) {
|
if ($basename=~m/([\w-]+)-([0-9\.?]+).*/) {
|
||||||
@@ -110,8 +111,92 @@ sub scan {
|
|||||||
|
|
||||||
$this->arch('all');
|
$this->arch('all');
|
||||||
|
|
||||||
|
# Attempt to extract slack-desc
|
||||||
|
my $slack_desc_content = $this->runpipe(1, "tar Oxf '$file' install/slack-desc 2>/dev/null");
|
||||||
|
my $pkg_name = $this->name(); # Get package name early
|
||||||
|
|
||||||
|
if ($slack_desc_content && $slack_desc_content =~ /\S/) {
|
||||||
|
my @slack_lines = split /\n/, $slack_desc_content;
|
||||||
|
|
||||||
|
# Default values if parsing fails or parts are missing
|
||||||
|
my $default_summary_text = "Package from tgz file (slack-desc found)";
|
||||||
|
my $default_description_text = "Package from tgz file (slack-desc found)";
|
||||||
|
$this->summary($default_summary_text);
|
||||||
|
$this->description($default_description_text);
|
||||||
|
|
||||||
|
my $summary_parsed_successfully = 0;
|
||||||
|
|
||||||
|
if (@slack_lines) {
|
||||||
|
my $first_line = $slack_lines[0]; # Peek at first line
|
||||||
|
# Try to parse summary from the first line using the strict format
|
||||||
|
if ($first_line =~ /^\Q$pkg_name\E: \Q$pkg_name\E \((.+)\)\s*$/) {
|
||||||
|
my $summary_candidate = $1;
|
||||||
|
if ($summary_candidate =~ /\S/) { # Check if captured summary is not just whitespace
|
||||||
|
$this->summary($summary_candidate);
|
||||||
|
$this->description($summary_candidate); # Initial guess for description
|
||||||
|
shift @slack_lines; # Consume the line as it was successfully parsed
|
||||||
|
$summary_parsed_successfully = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Description Parsing from remaining lines (or all lines if summary parse failed)
|
||||||
|
my @description_parts;
|
||||||
|
my $expected_prefix_regex = qr/^\Q$pkg_name\E: /; # $pkg_name: <text>
|
||||||
|
my $paragraph_break_regex = qr/^\Q$pkg_name\E:$/; # $pkg_name:
|
||||||
|
|
||||||
|
foreach my $line (@slack_lines) {
|
||||||
|
if ($line =~ $paragraph_break_regex) {
|
||||||
|
push @description_parts, ""; # Paragraph break
|
||||||
|
} elsif ((my $desc_content = $line) =~ s/$expected_prefix_regex//) {
|
||||||
|
# Prefix was stripped, $desc_content now holds the rest
|
||||||
|
push @description_parts, $desc_content;
|
||||||
|
} else {
|
||||||
|
# Line does not match strict format, ignore it for description.
|
||||||
|
# This handles cases where the first line was not a valid summary
|
||||||
|
# and is now being re-evaluated here but doesn't fit description format either.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (@description_parts) {
|
||||||
|
my $parsed_description = join("\n", @description_parts);
|
||||||
|
# Remove leading/trailing empty lines from the final description block
|
||||||
|
$parsed_description =~ s/^\n+//;
|
||||||
|
$parsed_description =~ s/\n+$/\n/; # Keep single trailing newline if content, or make it one if many
|
||||||
|
$parsed_description =~ s/\s+$//; # Trim trailing whitespace overall, including last newline if it was just that
|
||||||
|
|
||||||
|
if ($parsed_description =~ /\S/) {
|
||||||
|
$this->description($parsed_description);
|
||||||
|
# If summary is still the generic default, but we have a description,
|
||||||
|
# try to set summary from the first line of this description.
|
||||||
|
if ($this->summary() eq $default_summary_text) {
|
||||||
|
my ($first_desc_line) = split /\n/, $parsed_description;
|
||||||
|
if ($first_desc_line && length($first_desc_line) < 100 && $first_desc_line =~ /\S/) {
|
||||||
|
$this->summary($first_desc_line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
# Description parts were found but resulted in an empty string (e.g. only paragraph markers)
|
||||||
|
# Revert to summary if summary was good, or default if summary was also default.
|
||||||
|
if ($summary_parsed_successfully) {
|
||||||
|
$this->description($this->summary());
|
||||||
|
} else {
|
||||||
|
$this->description($default_description_text); # Keep default
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elsif (!$summary_parsed_successfully) {
|
||||||
|
# No description parts AND summary was not parsed successfully means slack-desc was
|
||||||
|
# present but entirely unparsable or empty after the first line (if any).
|
||||||
|
# Summary and Description remain $default_summary_text.
|
||||||
|
}
|
||||||
|
# If summary was parsed but no description lines, description is already set to summary.
|
||||||
|
|
||||||
|
} else {
|
||||||
|
# Original behavior if slack-desc is not found or empty
|
||||||
$this->summary("Converted 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/tarball");
|
$this->distribution("Slackware/tarball");
|
||||||
@@ -177,6 +262,161 @@ sub unpack {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Helper function for _format_slack_desc
|
||||||
|
sub _format_slack_desc_section {
|
||||||
|
my ($pkgname, $text_content, $num_target_lines, $max_total_line_length) = @_;
|
||||||
|
|
||||||
|
my $line_prefix_with_space = "$pkgname: ";
|
||||||
|
my $line_prefix_no_space = "$pkgname:";
|
||||||
|
# Max length for the actual content, after the prefix
|
||||||
|
my $max_content_len = $max_total_line_length - length($line_prefix_with_space);
|
||||||
|
# Ensure max_content_len is somewhat reasonable if pkgname is very long
|
||||||
|
$max_content_len = 10 if $max_content_len < 10;
|
||||||
|
|
||||||
|
my @formatted_lines;
|
||||||
|
$text_content = "" if !defined $text_content; # Ensure defined
|
||||||
|
|
||||||
|
my @segments = split /\n/, $text_content;
|
||||||
|
# If text_content was empty, split results in one empty segment.
|
||||||
|
# If text_content ended with \n, split might produce an extra empty segment.
|
||||||
|
# We want to preserve intentional paragraph breaks (empty segments from \n\n).
|
||||||
|
|
||||||
|
# Special case: if text_content is completely empty, segments will be [""]
|
||||||
|
# and num_target_lines is 1, it should produce one "$pkgname:" line.
|
||||||
|
# If text_content is non-empty but results in no words (e.g. " \n "),
|
||||||
|
# it should also be handled gracefully.
|
||||||
|
|
||||||
|
SEGMENT: foreach my $segment (@segments) {
|
||||||
|
last SEGMENT if scalar(@formatted_lines) >= $num_target_lines;
|
||||||
|
|
||||||
|
# Trim whitespace from segment. If it becomes empty, it's a paragraph break.
|
||||||
|
$segment =~ s/^\s+|\s+$//g;
|
||||||
|
|
||||||
|
if ($segment eq "") {
|
||||||
|
push @formatted_lines, $line_prefix_no_space;
|
||||||
|
next SEGMENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
my @words = split /\s+/, $segment;
|
||||||
|
next SEGMENT if !@words; # Should not happen if segment was non-empty after trim
|
||||||
|
|
||||||
|
my $current_line_buffer = ""; # Holds content part of the line
|
||||||
|
|
||||||
|
WORD: foreach my $word (@words) {
|
||||||
|
if (scalar(@formatted_lines) >= $num_target_lines && $current_line_buffer eq "") {
|
||||||
|
# Already filled target lines and current buffer for this segment is empty
|
||||||
|
last SEGMENT;
|
||||||
|
}
|
||||||
|
# Check if a single word itself is too long
|
||||||
|
if (length($word) > $max_content_len) {
|
||||||
|
# If buffer has content, push it first
|
||||||
|
if ($current_line_buffer ne "") {
|
||||||
|
last SEGMENT if scalar(@formatted_lines) >= $num_target_lines;
|
||||||
|
push @formatted_lines, $line_prefix_with_space . $current_line_buffer;
|
||||||
|
$current_line_buffer = "";
|
||||||
|
}
|
||||||
|
# Push the long word, truncated, on its own line
|
||||||
|
last SEGMENT if scalar(@formatted_lines) >= $num_target_lines;
|
||||||
|
push @formatted_lines, $line_prefix_with_space . substr($word, 0, $max_content_len);
|
||||||
|
# The rest of the word is lost, as per typical shell script behavior (often implicit)
|
||||||
|
# Or, decide if $word should become the remainder: $word = substr($word, $max_content_len); and re-evaluate
|
||||||
|
# For now, simply truncating and moving to next word in input.
|
||||||
|
# Given the spec, it's more about fitting, so a very long word will just fill one line.
|
||||||
|
next WORD; # Move to next word, current long word handled.
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($current_line_buffer eq "") {
|
||||||
|
$current_line_buffer = $word;
|
||||||
|
} else {
|
||||||
|
my $potential_line = $current_line_buffer . " " . $word;
|
||||||
|
if (length($potential_line) <= $max_content_len) {
|
||||||
|
$current_line_buffer = $potential_line;
|
||||||
|
} else {
|
||||||
|
last SEGMENT if scalar(@formatted_lines) >= $num_target_lines;
|
||||||
|
push @formatted_lines, $line_prefix_with_space . $current_line_buffer;
|
||||||
|
$current_line_buffer = $word;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}# end WORD loop
|
||||||
|
|
||||||
|
# Push any remaining content in buffer for the current segment
|
||||||
|
if ($current_line_buffer ne "") {
|
||||||
|
last SEGMENT if scalar(@formatted_lines) >= $num_target_lines;
|
||||||
|
push @formatted_lines, $line_prefix_with_space . $current_line_buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
} # end SEGMENT loop
|
||||||
|
|
||||||
|
# Pad with "$pkgname:" or truncate to meet exactly $num_target_lines
|
||||||
|
while (scalar(@formatted_lines) < $num_target_lines) {
|
||||||
|
push @formatted_lines, $line_prefix_no_space;
|
||||||
|
}
|
||||||
|
if (scalar(@formatted_lines) > $num_target_lines) {
|
||||||
|
@formatted_lines = @formatted_lines[0 .. $num_target_lines - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return @formatted_lines;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub _format_slack_desc {
|
||||||
|
my $this = shift;
|
||||||
|
|
||||||
|
my $pkgname = $this->name() || "unknown"; # Should usually be defined
|
||||||
|
my $summary = $this->summary();
|
||||||
|
my $description = $this->description();
|
||||||
|
my $homepage_url = ""; # Fixed as per requirement
|
||||||
|
|
||||||
|
# Ensure summary is a single, trimmed line
|
||||||
|
$summary = "" if !defined $summary;
|
||||||
|
$summary =~ s/\n.*//s; # Keep only the first line
|
||||||
|
$summary =~ s/^\s+|\s+$//g; # Trim whitespace
|
||||||
|
$summary = "No summary" if $summary eq "";
|
||||||
|
|
||||||
|
|
||||||
|
$description = "" if !defined $description;
|
||||||
|
# Newlines in description are paragraph separators, handled by _format_slack_desc_section
|
||||||
|
|
||||||
|
my $screen_width = 72 + length($pkgname);
|
||||||
|
|
||||||
|
my $ruler_header = "# HOW TO EDIT THIS FILE:\n# The \"handy ruler\" below makes it easier to edit a package description.\n# Line up the first '|' above the ':' following the base package name, and\n# the '|' on the right side marks the last column you can put a character in.\n# You must make exactly 11 lines for the formatting to be correct. It's also\n# customary to leave one space after the ':' except on otherwise blank lines.\n\n";
|
||||||
|
|
||||||
|
my $ruler_gap = ' ' x length($pkgname);
|
||||||
|
my $ruler_base = $ruler_gap . "|-----handy-ruler--";
|
||||||
|
# Screen width is total, ruler includes the final '|', so -1 from screen_width for filling
|
||||||
|
my $ruler_fill_count = $screen_width - 1 - length($ruler_base);
|
||||||
|
$ruler_fill_count = 0 if $ruler_fill_count < 0; # Ensure not negative
|
||||||
|
my $ruler_line = $ruler_base . ('-' x $ruler_fill_count) . '|';
|
||||||
|
|
||||||
|
my $complete_ruler_block = $ruler_header . $ruler_line . "\n";
|
||||||
|
|
||||||
|
# Section 1: Summary (1 line)
|
||||||
|
# The format "$pkgname ($summary)" is part of the text_content for this section
|
||||||
|
my $summary_content_for_section = "$pkgname ($summary)";
|
||||||
|
my @summary_section = _format_slack_desc_section($pkgname, $summary_content_for_section, 1, $screen_width);
|
||||||
|
|
||||||
|
# Section 2: Empty line (1 line)
|
||||||
|
# This is effectively an empty paragraph
|
||||||
|
my @empty_section = _format_slack_desc_section($pkgname, "", 1, $screen_width);
|
||||||
|
# Ensure it's just "$pkgname:" as per spec for empty lines
|
||||||
|
$empty_section[0] = "$pkgname:" if @empty_section;
|
||||||
|
|
||||||
|
|
||||||
|
# Section 3: Description (8 lines)
|
||||||
|
my @description_section = _format_slack_desc_section($pkgname, $description, 8, $screen_width);
|
||||||
|
|
||||||
|
# Section 4: Homepage (1 line)
|
||||||
|
my @homepage_section = _format_slack_desc_section($pkgname, $homepage_url, 1, $screen_width);
|
||||||
|
# Ensure it's just "$pkgname:" if homepage_url is empty
|
||||||
|
if ($homepage_url eq "" && @homepage_section) {
|
||||||
|
$homepage_section[0] = "$pkgname:";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
my $all_content_lines = join("\n", @summary_section, @empty_section, @description_section, @homepage_section);
|
||||||
|
|
||||||
|
return $complete_ruler_block . $all_content_lines . "\n";
|
||||||
|
}
|
||||||
|
|
||||||
=item prep
|
=item prep
|
||||||
|
|
||||||
Adds a populated install directory to the build tree.
|
Adds a populated install directory to the build tree.
|
||||||
@@ -186,16 +426,41 @@ Adds a populated install directory to the build tree.
|
|||||||
sub prep {
|
sub prep {
|
||||||
my $this=shift;
|
my $this=shift;
|
||||||
my $dir=$this->unpacked_tree || die "The package must be unpacked first!";
|
my $dir=$this->unpacked_tree || die "The package must be unpacked first!";
|
||||||
|
my $install_dir = $dir."/install";
|
||||||
my $install_made=0;
|
my $install_made=0;
|
||||||
|
|
||||||
|
# Check if install directory already exists (e.g. from unpacking)
|
||||||
|
if (-d $install_dir) {
|
||||||
|
$install_made = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Generate and write slack-desc if description is meaningful
|
||||||
|
my $description = $this->description();
|
||||||
|
my $summary = $this->summary();
|
||||||
|
if (defined $description && $description =~ /\S/ && $description ne "Converted tgz package" && $description ne $summary) {
|
||||||
|
my $slack_desc_content = $this->_format_slack_desc();
|
||||||
|
if ($slack_desc_content && $slack_desc_content =~ /\S/) {
|
||||||
|
if (!$install_made) {
|
||||||
|
mkdir($install_dir, 0755)
|
||||||
|
|| die "unable to mkdir $install_dir: $!";
|
||||||
|
$install_made=1;
|
||||||
|
}
|
||||||
|
my $slack_desc_path = $install_dir."/slack-desc";
|
||||||
|
open (SLACKDESC, ">$slack_desc_path") || die "Unable to open $slack_desc_path for writing: $!";
|
||||||
|
print SLACKDESC $slack_desc_content;
|
||||||
|
close SLACKDESC;
|
||||||
|
chmod(0644, $slack_desc_path) || $this->warn("Could not chmod $slack_desc_path: $!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->usescripts) {
|
if ($this->usescripts) {
|
||||||
foreach my $script (keys %{scripttrans()}) {
|
foreach my $script (keys %{scripttrans()}) {
|
||||||
my $data=$this->$script();
|
my $data=$this->$script();
|
||||||
my $out=$this->unpacked_tree."/install/".${scripttrans()}{$script};
|
my $out=$install_dir."/".${scripttrans()}{$script};
|
||||||
next if ! defined $data || $data =~ m/^\s*$/;
|
next if ! defined $data || $data =~ m/^\s*$/;
|
||||||
if (!$install_made) {
|
if (!$install_made) {
|
||||||
mkdir($this->unpacked_tree."/install", 0755)
|
mkdir($install_dir, 0755)
|
||||||
|| die "unable to mkdir ".$this->unpacked_tree."/install: $!";
|
|| die "unable to mkdir $install_dir: $!";
|
||||||
$install_made=1;
|
$install_made=1;
|
||||||
}
|
}
|
||||||
open (OUT, ">$out") || die "$out: $!";
|
open (OUT, ">$out") || die "$out: $!";
|
||||||
@@ -214,11 +479,18 @@ Build a tgz.
|
|||||||
|
|
||||||
sub build {
|
sub build {
|
||||||
my $this=shift;
|
my $this=shift;
|
||||||
my $tgz=$this->name."-".$this->version.".tgz";
|
my $arch = Alien::Package::Rpm::arch($this, @_);
|
||||||
|
my $tgz=$this->name."-".$this->version."-".$arch."-1_alien.tgz";
|
||||||
$this->do("cd ".$this->unpacked_tree."; tar czf ../$tgz .")
|
if (-x "/sbin/makepkg") {
|
||||||
or die "Package build failed";
|
my $v=$Alien::Package::verbose;
|
||||||
|
$Alien::Package::verbose=2;
|
||||||
|
$this->do("cd ".$this->unpacked_tree."; makepkg -l y -c n ../$tgz .")
|
||||||
|
or die "Unable to make pkg";
|
||||||
|
$Alien::Package::verbose=$v;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
die "Sorry, I cannot generate the .tgz file because /sbin/makepkg is not present.\n"
|
||||||
|
}
|
||||||
return $tgz;
|
return $tgz;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,17 +19,11 @@ VER=$(shell perl -e '$$_=<>;print m/\((.*?)\)/'<debian/changelog)
|
|||||||
|
|
||||||
all:: extra_build
|
all:: extra_build
|
||||||
clean:: extra_build
|
clean:: extra_build
|
||||||
install:: extra_install
|
|
||||||
pure_install:: extra_install
|
|
||||||
|
|
||||||
extra_build:
|
extra_build:
|
||||||
perl -i -pe "s/\@version\@/$(VER)/g" <alien.lsm.in >alien.lsm
|
perl -i -pe "s/\@version\@/$(VER)/g" <alien.lsm.in >alien.lsm
|
||||||
perl -i -pe "s/\@version\@/$(VER)/g" <alien.spec.in >alien.spec
|
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:
|
alien:
|
||||||
perl -pe '$$_="" if /use lib/; $$_="our \$$Version=\"$(VER)\";\n" if /VERSION_AUTOREPLACE/' alien.pl > alien
|
perl -pe '$$_="" if /use lib/; $$_="our \$$Version=\"$(VER)\";\n" if /VERSION_AUTOREPLACE/' alien.pl > alien
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Begin3
|
Begin3
|
||||||
Title: alien
|
Title: alien
|
||||||
Version: 8.91
|
Version: 8.95.2
|
||||||
Entered-date: 31MAR97
|
Entered-date: 31MAR97
|
||||||
Description: Alien converts Slackware .tgz packages, Red Hat .rpm packages,
|
Description: Alien converts Slackware .tgz packages, Red Hat .rpm packages,
|
||||||
Debian .deb packages, and Stampede .slp packages. It can
|
Debian .deb packages, and Stampede .slp packages. It can
|
||||||
@@ -9,6 +9,6 @@ Description: Alien converts Slackware .tgz packages, Red Hat .rpm packages,
|
|||||||
Keywords: debian dpkg deb red hat redhat rpm slackware tgz stampede slp convert package LSB
|
Keywords: debian dpkg deb red hat redhat rpm slackware tgz stampede slp convert package LSB
|
||||||
Author: joey@kitenet.net
|
Author: joey@kitenet.net
|
||||||
Primary-site: sunsite.unc.edu /pub/Linux/utils/package
|
Primary-site: sunsite.unc.edu /pub/Linux/utils/package
|
||||||
80 alien-8.91.tar.gz
|
80 alien-8.95.2.tar.gz
|
||||||
Copying-policy: GPL
|
Copying-policy: GPL
|
||||||
End
|
End
|
||||||
|
|||||||
8
alien.pl
8
alien.pl
@@ -37,7 +37,7 @@ installed.
|
|||||||
|
|
||||||
=item lsb
|
=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
|
lsb packages if the destination package format supports dependencies. Note
|
||||||
that this means that the package generated from a lsb package will depend on
|
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
|
a package named "lsb" -- your distribution should provide a package by that
|
||||||
@@ -149,7 +149,7 @@ built.
|
|||||||
=item B<--anypatch>
|
=item B<--anypatch>
|
||||||
|
|
||||||
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 version of the package. This is not guaranteed to always work;
|
||||||
older patches may not necessarily work with newer packages.
|
older patches may not necessarily work with newer packages.
|
||||||
|
|
||||||
=item B<--nopatch>
|
=item B<--nopatch>
|
||||||
@@ -158,12 +158,12 @@ Do not use any patch files.
|
|||||||
|
|
||||||
=item B<--description=>I<desc>
|
=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.
|
converting from the tgz package format, which lacks descriptions.
|
||||||
|
|
||||||
=item B<--version=>I<version>
|
=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
|
converting from the tgz package format, which may lack version
|
||||||
information.
|
information.
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
Summary: Install Debian, Slackware, and Stampede packages with rpm.
|
Summary: Install Debian, Slackware, and Stampede packages with rpm.
|
||||||
Name: alien
|
Name: alien
|
||||||
Packager: Joey Hess <joey@kitenet.net>
|
Packager: Joey Hess <joey@kitenet.net>
|
||||||
Version: 8.91
|
Version: 8.95.2
|
||||||
Release: 1
|
Release: 1
|
||||||
Source: ftp://kitenet.net/pub/code/debian/alien_8.91.tar.gz
|
Source: ftp://kitenet.net/pub/code/debian/alien_8.95.2.tar.gz
|
||||||
License: GPL
|
License: GPL
|
||||||
Group: Utilities/File
|
Group: Utilities/File
|
||||||
Buildroot: /tmp/alien-8.91.build
|
Buildroot: /tmp/alien-8.95.2.build
|
||||||
Requires: perl
|
Requires: perl
|
||||||
BuildArchitectures: noarch
|
BuildArchitectures: noarch
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ This is a tool only suitable for binary packages.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -n alien
|
%setup -n alien
|
||||||
rm -rf /tmp/alien-8.91.build
|
rm -rf /tmp/alien-8.95.2.build
|
||||||
|
|
||||||
%install
|
%install
|
||||||
perl Makefile.PL PREFIX=$RPM_BUILD_ROOT/usr
|
perl Makefile.PL PREFIX=$RPM_BUILD_ROOT/usr
|
||||||
|
|||||||
2682
debian/changelog
vendored
2682
debian/changelog
vendored
File diff suppressed because it is too large
Load Diff
1
debian/compat
vendored
1
debian/compat
vendored
@@ -1 +0,0 @@
|
|||||||
9
|
|
||||||
21
debian/control
vendored
21
debian/control
vendored
@@ -1,21 +0,0 @@
|
|||||||
Source: alien
|
|
||||||
Section: admin
|
|
||||||
Priority: optional
|
|
||||||
Build-Depends: debhelper (>= 9)
|
|
||||||
Maintainer: Joey Hess <joeyh@debian.org>
|
|
||||||
Standards-Version: 3.9.5
|
|
||||||
Vcs-Git: git://git.kitenet.net/alien
|
|
||||||
Homepage: http://kitenet.net/~joey/code/alien/
|
|
||||||
|
|
||||||
Package: alien
|
|
||||||
Architecture: all
|
|
||||||
Section: admin
|
|
||||||
Depends: debhelper (>= 7), ${misc:Depends}, ${perl:Depends}, rpm (>= 2.4.4-2), dpkg-dev, make, cpio, rpm2cpio
|
|
||||||
Suggests: patch, bzip2, lsb-rpm, 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.
|
|
||||||
.
|
|
||||||
It can also generate packages of any of the other formats.
|
|
||||||
.
|
|
||||||
This is a tool only suitable for binary packages.
|
|
||||||
13
debian/copyright
vendored
13
debian/copyright
vendored
@@ -1,13 +0,0 @@
|
|||||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
|
||||||
Source: native package
|
|
||||||
|
|
||||||
Files: *
|
|
||||||
Copyright:
|
|
||||||
1996, 1997 Christoph Lameter
|
|
||||||
1997 Randolph Chung
|
|
||||||
2001 Mark A. Hershberger
|
|
||||||
1997-2011 Joey Hess
|
|
||||||
License: GPL-2+
|
|
||||||
On Debian systems, the complete text of the GPL can be found in
|
|
||||||
/usr/share/common-licenses/GPL.
|
|
||||||
|
|
||||||
2
debian/docs
vendored
2
debian/docs
vendored
@@ -1,2 +0,0 @@
|
|||||||
README
|
|
||||||
gendiff.txt
|
|
||||||
20
debian/rules
vendored
20
debian/rules
vendored
@@ -1,20 +0,0 @@
|
|||||||
#!/usr/bin/make -f
|
|
||||||
%:
|
|
||||||
dh $@
|
|
||||||
|
|
||||||
override_dh_auto_test:
|
|
||||||
# simple smoke test
|
|
||||||
./alien.pl -V
|
|
||||||
|
|
||||||
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
|
|
||||||
if [ -e Makefile ]; then $(MAKE) realclean; fi
|
|
||||||
|
|
||||||
# Not intended for use by anyone except the author.
|
|
||||||
announcedir:
|
|
||||||
@echo ${HOME}/src/joeywiki/code/alien/news
|
|
||||||
Reference in New Issue
Block a user