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

Bug#273309: .devhelp usability check



tags 273309 +patch
kthxbye

I have attached a patch that implements this feature.

Bradley Smith.
Index: checks/files
===================================================================
--- checks/files	(revision 1123)
+++ checks/files	(working copy)
@@ -41,6 +41,10 @@
 my %linked_against_libvga;
 my %script = ();
 
+my @files;
+my @devhelp_files;
+my %links = ();
+
 # read data from objdump-info file
 open(IN, '<', "objdump-info")
     or fail("cannot find objdump-info for $type package $pkg");
@@ -119,6 +123,13 @@
 	($file, $link) = split(' -> ', $file);
     }
 
+	# devhelp data
+	push(@files, $file);
+	$links{$file} = $link;
+	push(@devhelp_files, $file)
+		if ($file =~ m,usr\/share\/gtk-doc\/html\/.*\.devhelp(\.gz)?$, ||
+        	$file =~ m,usr\/share\/devhelp\/books\/.*\.devhelp(\.gz)?$,);
+
     $operm = perm2oct($perm);
 
     my ($year) = ($date =~ /^(\d{4})/);
@@ -833,6 +844,22 @@
 }
 close(IN);
 
+# devhelp files
+foreach $file (@files) {
+	my $found = 0;
+	if ($file =~ m,\.devhelp(\.gz)?$, &&
+		$file !~ m,usr\/share\/gtk-doc\/html\/.*\.devhelp(\.gz)?$, &&
+		$file !~ m,usr\/share\/devhelp\/books\/.*\.devhelp(\.gz)?$,) {
+		foreach my $link (@devhelp_files) {
+			if ($links{$link} && $file eq $links{$link}) {
+				$found = 1;
+			}
+		}
+		tag "package-contains-devhelp-file-without-symlink", "$file"
+		if ($found == 0);
+	}
+}
+
 #check for sect: games but nothing in /usr/games. Check for any binary to
 #save ourselves from game-data false positives:
 if ($pkg_section =~ m{games$} && 
Index: checks/files.desc
===================================================================
--- checks/files.desc	(revision 1123)
+++ checks/files.desc	(working copy)
@@ -7,6 +7,11 @@
 Info: This script checks if a binary package conforms to policy
  WRT to files and directories.
 
+Tag: package-contains-devhelp-file-without-symlink
+Type: warning
+Info: Devhelp files should be symlinked into /usr/share/gtk-doc/html/ or
+ /usr/share/devhelp/books/.
+
 Tag: package-contains-ancient-file
 Type: error
 Info: Your package contains a file that claims to been generated more
Index: testset/tags.filenames
===================================================================
--- testset/tags.filenames	(revision 1123)
+++ testset/tags.filenames	(working copy)
@@ -85,6 +85,8 @@
 W: filenames: package-contains-arch-control-dir usr/lib/perl5/.arch-ids/
 W: filenames: package-contains-arch-control-dir usr/lib/perl5/{arch}/
 W: filenames: package-contains-bzr-control-dir usr/lib/perl5/.bzr/
+W: filenames: package-contains-devhelp-file-without-symlink usr/share/filenames/wrong.devhelp
+W: filenames: package-contains-devhelp-file-without-symlink usr/share/filenames/wrong.devhelp.gz
 W: filenames: package-contains-empty-directory usr/lib/perl5/.arch-ids/
 W: filenames: package-contains-empty-directory usr/lib/perl5/.bzr/
 W: filenames: package-contains-empty-directory usr/lib/perl5/.svn/
Index: testset/filenames/debian/rules
===================================================================
--- testset/filenames/debian/rules	(revision 1123)
+++ testset/filenames/debian/rules	(working copy)
@@ -34,6 +34,22 @@
 	cp -a files debian/tmp
 	chmod -R go=rX debian/tmp/files
 
+	install -d debian/tmp/usr/share/filenames
+	install -d debian/tmp/usr/share/gtk-doc/html
+	install -d debian/tmp/usr/share/devhelp/books
+	touch debian/tmp/usr/share/filenames/wrong.devhelp
+	touch debian/tmp/usr/share/filenames/wrong.devhelp.gz
+	touch debian/tmp/usr/share/filenames/right1.devhelp
+	touch debian/tmp/usr/share/filenames/right1.devhelp.gz
+	touch debian/tmp/usr/share/filenames/right2.devhelp
+	touch debian/tmp/usr/share/filenames/right2.devhelp.gz
+	touch debian/tmp/usr/share/gtk-doc/html/non-symlink.devhelp
+	touch debian/tmp/usr/share/gtk-doc/html/non-symlink.devhelp.gz
+	ln -s usr/share/filenames/right1.devhelp debian/tmp/usr/share/gtk-doc/html/right1.devhelp
+	ln -s usr/share/filenames/right1.devhelp.gz debian/tmp/usr/share/gtk-doc/html/right1.devhelp.gz
+	ln -s usr/share/filenames/right2.devhelp debian/tmp/usr/share/devhelp/books/right2.devhelp
+	ln -s usr/share/filenames/right2.devhelp.gz debian/tmp/usr/share/devhelp/books/right2.devhelp.gz
+
 	install -d debian/tmp/usr/lib/filenames
 	install -m 555 -d debian/tmp/usr/lib/filenames/readonly
 	touch debian/tmp/usr/lib/filenames/readonly/test

Attachment: signature.asc
Description: PGP signature


Reply to: