[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[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: