[SCM] Debian package checker branch, master, updated. 2.5.2-14-gbec8736
The following commit has been merged in the master branch:
commit bec87367cd6255e287ce39b3ed55dfb99885b045
Author: Niels Thykier <niels@thykier.net>
Date: Sat Aug 13 21:39:49 2011 +0200
Made create-deb smarter and fixed some umask-permission issues
diff --git a/t/debs/control-files-bad/Makefile b/t/debs/control-files-bad/Makefile
index efb4fc3..aa15a28 100644
--- a/t/debs/control-files-bad/Makefile
+++ b/t/debs/control-files-bad/Makefile
@@ -2,7 +2,7 @@ name = control-files-bad
all:
mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
+ install -m0644 copyright changelog root/usr/share/doc/$(name)
gzip -9 root/usr/share/doc/$(name)/changelog
chown 0:0 control
diff --git a/t/debs/control-files-weird-files/Makefile b/t/debs/control-files-weird-files/Makefile
index ac762c2..e028d13 100644
--- a/t/debs/control-files-weird-files/Makefile
+++ b/t/debs/control-files-weird-files/Makefile
@@ -1,12 +1,8 @@
name = control-files-weird-files
all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
touch triggers
- create-deb -o $(name).deb --root root/ control triggers \
+ create-deb -o $(name).deb control triggers \
special-file isinstallable
clean:
diff --git a/t/debs/deb-format-ancient-file/Makefile b/t/debs/deb-format-ancient-file/Makefile
index b2ede8c..a2ea7fc 100644
--- a/t/debs/deb-format-ancient-file/Makefile
+++ b/t/debs/deb-format-ancient-file/Makefile
@@ -2,7 +2,7 @@ name = deb-format-ancient-file
all:
mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
+ install -m0644 copyright changelog root/usr/share/doc/$(name)
gzip -9 root/usr/share/doc/$(name)/changelog
env TZ=GMT touch -t 197001010000 \
root/usr/share/doc/$(name)/changelog.gz
diff --git a/t/debs/deb-format-extra-member/Makefile b/t/debs/deb-format-extra-member/Makefile
index 77fd334..1ad904b 100644
--- a/t/debs/deb-format-extra-member/Makefile
+++ b/t/debs/deb-format-extra-member/Makefile
@@ -1,11 +1,7 @@
name = deb-format-extra-member
all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
- create-deb -o $(name).deb --root root control
+ create-deb -o $(name).deb control
# add the extra element in the end
echo 'foo' > extra-stuff
diff --git a/t/debs/deb-format-lzma/Makefile b/t/debs/deb-format-lzma/Makefile
index b217bc1..a4c33ed 100644
--- a/t/debs/deb-format-lzma/Makefile
+++ b/t/debs/deb-format-lzma/Makefile
@@ -1,11 +1,7 @@
name = deb-format-lzma
all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
- create-deb -o $(name).deb --root root -c lzma control
+ create-deb -o $(name).deb -c lzma control
clean:
rm -f *.tar.gz *.tar.lzma *.deb md5sums debian-binary
diff --git a/t/debs/deb-format-record-size/Makefile b/t/debs/deb-format-record-size/Makefile
index 29a8a52..6ef938d 100644
--- a/t/debs/deb-format-record-size/Makefile
+++ b/t/debs/deb-format-record-size/Makefile
@@ -5,7 +5,7 @@ name = deb-format-record-size
all:
echo '2.0' > debian-binary
mkdir -p usr/share/doc/$(name)
- cp copyright changelog usr/share/doc/$(name)
+ install -m0644 copyright changelog usr/share/doc/$(name)
gzip -9 usr/share/doc/$(name)/changelog
tar --record-size=4096 -c -z -f data.tar.gz usr
chown 0:0 control
diff --git a/t/debs/deb-format-wrong-order/Makefile b/t/debs/deb-format-wrong-order/Makefile
index 1fe1c37..e965ba2 100644
--- a/t/debs/deb-format-wrong-order/Makefile
+++ b/t/debs/deb-format-wrong-order/Makefile
@@ -5,7 +5,7 @@ name = deb-format-wrong-order
all:
echo '2.0' > debian-binary
mkdir -p usr/share/doc/$(name)
- cp copyright changelog usr/share/doc/$(name)
+ install -m 0644 copyright changelog usr/share/doc/$(name)
gzip -9 usr/share/doc/$(name)/changelog
tar cfz data.tar.gz usr
chown 0:0 control
diff --git a/t/debs/description-synopsis-spaces/Makefile b/t/debs/description-synopsis-spaces/Makefile
deleted file mode 100644
index bacfdc0..0000000
--- a/t/debs/description-synopsis-spaces/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-name = description-synopsis-spaces
-
-all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
- create-deb -o $(name).deb --root root control
-
-clean:
- rm -f *.tar.gz *.deb md5sums debian-binary
- rm -rf root
diff --git a/t/debs/fields-general-bad/Makefile b/t/debs/fields-general-bad/Makefile
deleted file mode 100644
index 43078c4..0000000
--- a/t/debs/fields-general-bad/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-filename = fields-general-bad
-name = $(filename)?
-
-all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
- create-deb -o $(filename).deb --root root control
-
-clean:
- rm -f *.tar.gz *.deb md5sums debian-binary
- rm -rf root
diff --git a/t/debs/fields-general-missing/Makefile b/t/debs/fields-general-missing/Makefile
deleted file mode 100644
index 2f6351e..0000000
--- a/t/debs/fields-general-missing/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-name = fields-general-missing
-
-all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
- create-deb -o $(name).deb --root root/ control
-
-clean:
- rm -f *.tar.gz *.deb md5sums debian-binary
- rm -rf root
diff --git a/t/debs/fields-malformed-source/Makefile b/t/debs/fields-malformed-source/Makefile
deleted file mode 100644
index b3ee1c8..0000000
--- a/t/debs/fields-malformed-source/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-name = fields-malformed-source
-
-all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
- create-deb -o $(name).deb --root root control
-
-clean:
- rm -f *.tar.gz *.deb md5sums debian-binary
- rm -rf root
diff --git a/t/debs/fields-multi-arch-illegal/Makefile b/t/debs/fields-multi-arch-illegal/Makefile
deleted file mode 100644
index 4bcb219..0000000
--- a/t/debs/fields-multi-arch-illegal/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-name = fields-multi-arch-illegal
-
-all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
- create-deb -o $(name).deb --root root/ control
-
-clean:
- rm -f *.tar.gz *.deb md5sums debian-binary
- rm -rf root
diff --git a/t/debs/fields-multi-arch-unknown/Makefile b/t/debs/fields-multi-arch-unknown/Makefile
deleted file mode 100644
index 09b4df8..0000000
--- a/t/debs/fields-multi-arch-unknown/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-name = fields-multi-arch-unknown
-
-all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
- create-deb -o $(name).deb --root root/ control
-
-clean:
- rm -f *.tar.gz *.deb md5sums debian-binary
- rm -rf root/
diff --git a/t/debs/fields-obsolete-relation/Makefile b/t/debs/fields-obsolete-relation/Makefile
deleted file mode 100644
index 6076006..0000000
--- a/t/debs/fields-obsolete-relation/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-name = fields-obsolete-relation
-
-all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
- create-deb -o $(name).deb --root root/ control
-
-clean:
- rm -f *.tar.gz *.deb md5sums debian-binary
- rm -rf root/
diff --git a/t/debs/fields-wildcard-binary/Makefile b/t/debs/fields-wildcard-binary/Makefile
deleted file mode 100644
index 68cdb32..0000000
--- a/t/debs/fields-wildcard-binary/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-name = fields-wildcard-binary
-
-all:
- mkdir -p root/usr/share/doc/$(name)
- cp copyright changelog root/usr/share/doc/$(name)
- gzip -9 root/usr/share/doc/$(name)/changelog
-
- create-deb -o $(name).deb --root root/ control
-
-clean:
- rm -f *.tar.gz *.deb md5sums debian-binary
- rm -rf root/
diff --git a/t/helpers/bin/create-deb b/t/helpers/bin/create-deb
index 39ac8f7..82bbd48 100755
--- a/t/helpers/bin/create-deb
+++ b/t/helpers/bin/create-deb
@@ -23,10 +23,12 @@
use strict;
use warnings;
-
use Getopt::Long;
use Cwd();
+use lib "$ENV{'LINTIAN_ROOT'}/lib";
+use Util qw(get_dsc_info);
+
# known compression styles
my %TAR_OPTIONS = (
'gz' => ['-z'],
@@ -48,6 +50,7 @@ my %PERM = (
my %val = (
'compression' => 'gz',
'fix-perm' => 1,
+ 'auto-build-data' => 1,
);
# Accepted options
@@ -55,6 +58,7 @@ my %opts = (
'out-file|o=s' => \$val{'out-file'},
'help|h' => sub { usage(); exit 0; },
'root=s' => \$val{'root'},
+ 'auto-build-data!' => \$val{'auto-build-data'},
'compression|c=s' => \$val{'compression'},
'md5sums!' => \$val{'md5sums'},
'fix-perm!' => \$val{'fix-perm'},
@@ -70,15 +74,31 @@ GetOptions(%opts)
die "Missing --out-file option\n" unless $val{'out-file'};
-die "Missing --root option\n" unless $val{'root'};
+die "Needs either --root option or --auto-build-data\n" unless $val{'root'} || $val{'auto-build-data'};
die "Unknown compression \"$val{'compression'}\"\n" unless exists $TAR_OPTIONS{$val{'compression'}};
+$val{'auto-build-data'} = 0 if $val{'root'};
+
+die "Cannot find ./control.\n" if $val{'auto-build-data'} && ! -e './control';
+
# default to "on" unless we are given an md5sums file explicitly
$val{'md5sums'} = 1 unless defined $val{'md5sums'} || grep { $_ eq 'md5sums'} @ARGV;
$cwd = Cwd::cwd();
+if ($val{'auto-build-data'}) {
+ my $data = get_dsc_info('./control');
+ my $pkg = $data->{'package'} || die "Cannot read package name from ./control.\n";
+ runsystem('mkdir', '-p', "root/usr/share/doc/$pkg");
+ foreach my $file (qw(copyright changelog)) {
+ runsystem('install', '-m', '0644', $file, "root/usr/share/doc/$pkg/$file") if -e $file;
+ }
+ runsystem('gzip', '--best', "root/usr/share/doc/$pkg/changelog") if -e './changelog';
+ # set root so it works for later :)
+ $val{'root'} = 'root/';
+}
+
if ($val{'md5sums'}) {
runsystem("cd $val{'root'} && find -type f -a -! -ipath etc/ -print0 | xargs -0 md5sum >> $cwd/md5sums");
push @ARGV, 'md5sums' if -s 'md5sums'; # only add if it is not empty.
@@ -118,9 +138,11 @@ exit 0;
sub usage {
print <<EOF ;
-usage: $0 [options] -o <file.deb> --root <dir> control-file[... files]
+usage: $0 [options] -o <file.deb> [--root <dir>] control-file[... files]
--root <dir> Everything in <dir> will be put in the data.tar
+ --[no-]auto-build-data Auto-build a data.tar, cannot be used with --root.
+ This is the default if --root is not given.
-c, --compression <c> The extension used for the data.tar; defaults to "gz"
--help Prints usage info and exits
-o, --out-file <file> The name of the resulting deb file.
@@ -140,6 +162,14 @@ intentional).
If control.tar.gz already exists, it will be reused instead of creating a
new one.
+If --root is used, --auto-build-data is silently ignored. If
+--auto-build-data is used, it will take the changelog and copyright
+files from the current directory and build a data.tar.<c> containing
+those files.
+ In order to auto-build the package, the package field must be
+available in the control file and it will use "root/" as the storage
+for creating the data.tar.<c>.
+
Note: This writes debian-binary, data.tar.<c> and control.tar.gz to
the current directory. If --md5sums is in effect, it will also generate
a md5sums in the current directory.
@@ -152,6 +182,7 @@ EOF
}
sub runsystem {
+ print "create-deb system: @_\n";
my $r = system @_;
die "system @_ failed (exit status: " . (($r >> 8) & 0xff) .")\n" if $r;
}
diff --git a/t/runtests b/t/runtests
index e7ee2aa..227886f 100755
--- a/t/runtests
+++ b/t/runtests
@@ -72,7 +72,7 @@ chomp $ARCHITECTURE;
my %TEMPLATES = (
'tests' => ['debian/changelog', 'debian/control'],
- 'debs' => ['changelog', 'control'],
+ 'debs' => ['changelog', 'control', 'Makefile'],
'source' => ['changelog', 'control'],
);
my $DATE = `date -R`;
diff --git a/t/templates/debs/skel/Makefile.in b/t/templates/debs/skel/Makefile.in
new file mode 100644
index 0000000..8acf140
--- /dev/null
+++ b/t/templates/debs/skel/Makefile.in
@@ -0,0 +1,8 @@
+name = {%srcpkg}
+
+all:
+ create-deb -o $(name).deb control
+
+clean:
+ rm -f *.tar.gz *.deb md5sums debian-binary
+ rm -rf root/
--
Debian package checker
Reply to: