15 Commits
8.69 ... 8.74

Author SHA1 Message Date
Joey Hess
0f8fa0df54 pod fixes 2009-02-15 19:56:50 -05:00
Joey Hess
2a84d6e8ec true slackware packages unlikely, so generalize messages 2009-01-14 13:39:14 -05:00
Joey Hess
66a1247dfd Support bzipped and uncompressed tar files, using tar's auto-compression detection. (Requires gnu tar 1.14.91) 2009-01-14 13:37:06 -05:00
Joey Hess
e921e1417f releasing version 8.73 2008-10-26 23:45:09 -04:00
Joey Hess
d15598e944 Fix pkg generation to not include /prototype in all packages. (Kim Bisgaard) 2008-09-11 16:23:14 -04:00
Joey Hess
ee792cb76c releasing version 8.72 2008-05-01 15:41:14 -04:00
Joey Hess
ecabe240bc When generating a debian changelog file, work around bug #478925 by including the alien changelog text inside the debian changelog entry. 2008-05-01 15:40:57 -04:00
Joey Hess
b2421b584a Improve parsing of tgz filenames, to avoid confusion when the filename includes the package type (ie, "noarch"). Patch from Andrej Ricnik-Bay. 2008-04-29 18:26:16 -04:00
Joey Hess
7893ffb4ed Use debhelper 7, rules file minimisation. 2008-04-24 02:02:59 -04:00
Joey Hess
5e1d2c9fa4 * Deal with rpms that relocate ie, /usr into /usr/local, and don't
try to move /usr into /usr/local in this case. Closes: #470905
2008-03-14 13:35:41 -04:00
Joey Hess
3c8631f8fd don't try to modify a constant value 2008-03-12 11:10:09 -04:00
Joey Hess
17bcd710f7 * Extract prefixes field before extracting scripts so that
RPM_INSTALL_PREFIX gets set.
2008-03-12 11:05:39 -04:00
Joey Hess
ac38739a74 lintin fixes 2008-01-05 14:50:46 -05:00
Joey Hess
dbf7fdfa5b typo 2007-11-27 15:47:42 -05:00
Joey Hess
15b2f7ff92 add homepage field 2007-11-06 15:54:02 -05:00
11 changed files with 120 additions and 73 deletions

View File

@@ -335,9 +335,13 @@ sub prep {
print OUT "\n";
print OUT " * Converted from .".$this->origformat." format to .deb by alien version $Alien::Version\n";
print OUT " \n";
print OUT " -- ".$this->username." <".$this->email."> ".$this->date."\n";
if (defined $this->changelogtext) {
my $ct=$this->changelogtext;
$ct=~s/^/ /gm;
print OUT $ct."\n";
}
print OUT "\n";
print OUT $this->changelogtext."\n" if defined $this->changelogtext;
print OUT " -- ".$this->username." <".$this->email."> ".$this->date."\n";
close OUT;
# Control file.
@@ -750,7 +754,7 @@ sub postinst {
return "$firstline\n$permscript\n$rest";
}
=cut
=back
=head1 AUTHOR

View File

@@ -262,7 +262,7 @@ sub prep {
# grep {/^\./} readdir DIR;
# closedir DIR;
$this->do("cd $dir; find . -print | pkgproto > ./prototype")
$this->do("cd $dir; find . -print | sed -e '/.\\/prototype\$/d' | pkgproto > ./prototype")
|| die "error during pkgproto: $!\n";
open(PKGPROTO, ">>$dir/prototype")
@@ -327,6 +327,8 @@ sub build {
return $name;
}
=back
=head1 AUTHOR
Mark Hershberger <mah@everybody.org>

View File

@@ -78,18 +78,20 @@ sub scan {
POSTUN => 'postrm',
);
# These fields need no translation except case.
foreach (qw{name version release arch changelogtext summary
description copyright prefixes}) {
$fieldtrans{uc $_}=$_;
}
# Use --queryformat to pull out all the fields we need.
foreach my $field (keys(%fieldtrans)) {
$_=$this->runpipe(0, "LANG=C rpm -qp --queryformat \%{$field} $file");
$field=$fieldtrans{$field};
$_='' if $_ eq '(none)';
$this->$field($_);
foreach my $field (qw{NAME VERSION RELEASE ARCH CHANGELOGTEXT
SUMMARY DESCRIPTION COPYRIGHT PREFIXES},
keys(%fieldtrans)) {
my $value=$this->runpipe(0, "LANG=C rpm -qp --queryformat \%{$field} $file");
my $key;
if (exists $fieldtrans{$field}) {
$key=$fieldtrans{$field};
}
else {
$key=lc($field);
}
$value='' if $value eq '(none)';
$this->$key($value);
}
# Get the conffiles list.
@@ -185,6 +187,8 @@ sub unpack {
#
# Test to see if the package contains the prefix directory already.
if (defined $this->prefixes && ! -e "$workdir/".$this->prefixes) {
my $relocate=1;
# Get the files to move.
my @filelist=glob("$workdir/*");
@@ -193,9 +197,21 @@ sub unpack {
foreach (split m:/:, $this->prefixes) {
if ($_ ne '') { # this keeps us from using anything but relative paths.
$collect.="/$_";
if (-d $collect) {
# The package contains a parent
# directory of the relocation
# directory. Since it's impossible
# to move a parent directory into
# its child, bail out and do
# nothing.
$relocate=0;
last;
}
$this->do("mkdir", $collect) || die "unable to mkdir $collect: $!";
}
}
if ($relocate) {
# Now move all files in the package to the directory we made.
if (@filelist) {
$this->do("mv", @filelist, "$workdir/".$this->prefixes)
@@ -210,6 +226,7 @@ sub unpack {
}
$this->conffiles([@cf]);
}
}
# rpm files have two sets of permissions; the set in the cpio
# archive, and the set in the control data; which override them.

View File

@@ -358,6 +358,8 @@ sub release {
}
=back
=head1 AUTHOR
Joey Hess <joey@kitenet.net>

View File

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

View File

@@ -137,7 +137,7 @@ built.
Be less strict about which patch file is used, perhaps attempting to use a patch
file for an older verson of the package. This is not guaranteed to always work;
older patches may necessarily not work with newer packages.
older patches may not necessarily work with newer packages.
=item B<--nopatch>

39
debian/changelog vendored
View File

@@ -1,3 +1,42 @@
alien (8.74) unstable; urgency=low
* Support bzipped and uncompressed tar files, using tar's auto-compression
detection. (Requires gnu tar 1.14.91)
* pod fixes
-- Joey Hess <joeyh@debian.org> Sun, 15 Feb 2009 19:51:54 -0500
alien (8.73) unstable; urgency=low
* Fix pkg generation to not include /prototype in all packages.
(Kim Bisgaard)
-- Joey Hess <joeyh@debian.org> Sun, 26 Oct 2008 23:43:47 -0400
alien (8.72) unstable; urgency=low
* Use debhelper 7, rules file minimisation.
* Improve parsing of tgz filenames, to avoid confusion when the filename
includes the package type (ie, "noarch"). Patch from Andrej Ricnik-Bay.
* When generating a debian changelog file, work around bug #478925 by
including the alien changelog text inside the debian changelog entry.
-- Joey Hess <joeyh@debian.org> Thu, 01 May 2008 15:40:34 -0400
alien (8.71) unstable; urgency=low
* Deal with rpms that relocate ie, /usr into /usr/local, and don't
try to move /usr into /usr/local in this case. Closes: #470905
-- Joey Hess <joeyh@debian.org> Fri, 14 Mar 2008 13:35:33 -0400
alien (8.70) unstable; urgency=low
* Extract prefixes field before extracting scripts so that
RPM_INSTALL_PREFIX gets set.
-- Joey Hess <joeyh@debian.org> Wed, 12 Mar 2008 11:05:40 -0400
alien (8.69) unstable; urgency=low
* Alien's repository has moved from subversion to git.

2
debian/compat vendored
View File

@@ -1 +1 @@
4
7

5
debian/control vendored
View File

@@ -1,10 +1,11 @@
Source: alien
Section: admin
Priority: optional
Build-Depends: debhelper (>= 4), dpkg-dev (>= 1.9.0)
Build-Depends: debhelper (>= 7)
Maintainer: Joey Hess <joeyh@debian.org>
Standards-Version: 3.7.2
Standards-Version: 3.8.0
Vcs-Git: git://git.kitenet.net/alien
Homepage: http://kitenet.net/~joey/code/alien/
Package: alien
Architecture: all

2
debian/docs vendored Normal file
View File

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

38
debian/rules vendored
View File

@@ -1,47 +1,21 @@
#!/usr/bin/make -f
%:
dh $@
build: build-stamp
build-stamp:
dh_testdir
perl Makefile.PL
$(MAKE)
build:
dh build
# simple smoke test
./alien.pl -V
touch build-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp
perl Makefile.PL
if [ -e Makefile ]; then $(MAKE) realclean; fi
dh_clean
binary-arch: build
binary-indep: build
dh_testdir
dh_testroot
dh_clean -k
dh install --before 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
# Why does it make this empty directory? Sigh.
rm -rf debian/alien/usr/lib
dh_installdocs README gendiff.txt
dh_installexamples
dh_installchangelogs
dh_compress
dh_fixperms
dh_perl
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh install --after dh_auto_install
# Not intended for use by anyone except the author.
announcedir:
@echo ${HOME}/src/joeywiki/code/alien/news
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary