Package: lintian Version: 2.4.3 Severity: wishlist Tags: patch Hi
I have created a new check to test if a package B-D(-I) on openjdk-6-doc or classpath-doc instead of the default-jdk-doc. The rationale is that default-jdk-doc is a meta package that will pull a system level jdk documentation (javadoc) and put it in a unified location (using symlinks). Using default-jdk-doc also allows us to later switch to a newer doc (e.g openjdk-7-doc) by simply updating default-jdk-doc and not a lot java packages. The tag description may need some improvement and the check itself is done in the part checking all the Build-{Depends*,Conflicts*} fields. It may make more sense to move it into a part only checking B-D{,-I}, but I could not find such a part and honestly could not see why you would ever need to Build-Conflict on a doc package. The check comes with a simple test case to catch the openjdk-6-doc case. ~Niels *** 0001-Add-check-for-build-depending-on-specific-system-jav.patch >From 995d68ba31dab3fa80cdab5e839bfb21d927025c Mon Sep 17 00:00:00 2001 From: Niels Thykier <ni...@thykier.net> Date: Sat, 21 Aug 2010 14:15:32 +0200 Subject: [PATCH] Add check for build-depending on specific system javadoc instead of default-jdk-doc --- checks/fields | 4 ++++ checks/fields.desc | 8 ++++++++ t/tests/fields-java/debian/debian/control.in | 16 ++++++++++++++++ t/tests/fields-java/debian/debian/install | 1 + t/tests/fields-java/debian/some-file | 2 ++ t/tests/fields-java/desc | 6 ++++++ t/tests/fields-java/tags | 1 + 7 files changed, 38 insertions(+), 0 deletions(-) create mode 100644 t/tests/fields-java/debian/debian/control.in create mode 100644 t/tests/fields-java/debian/debian/install create mode 100644 t/tests/fields-java/debian/some-file create mode 100644 t/tests/fields-java/desc create mode 100644 t/tests/fields-java/tags diff --git a/checks/fields b/checks/fields index 5b4b5e7..5161ae2 100644 --- a/checks/fields +++ b/checks/fields @@ -726,6 +726,10 @@ if ($type eq "source") { } } + if($d_pkg =~ m/openjdk-\d+-doc/o or $d_pkg eq 'classpath-doc'){ + tag 'build-depends-on-specific-java-doc-package', $d_pkg; + } + tag 'conflicting-negation-in-source-relation', "$field: $part_d_orig" unless (not $d_arch or $d_arch->[1] == 0 or $d_arch->[1] eq @{ $d_arch->[0] }); diff --git a/checks/fields.desc b/checks/fields.desc index eff85cc..2a77b7e 100644 --- a/checks/fields.desc +++ b/checks/fields.desc @@ -992,3 +992,11 @@ Info: The given package appears to have a Python development package If you are building a Python extension instead, you should have development packages listed in Build-Depends, but normally there should be at least one Architecture: any package. + +Tag: build-depends-on-specific-java-doc-package +Severity: normal +Certainty: certain +Info: The given package declares a build dependency on either openjdk- + X-doc or classpath-doc instead of using default-jdk-doc. default-jdk-doc + provides a symlink to the API via /usr/share/default-jdk-doc/api. + diff --git a/t/tests/fields-java/debian/debian/control.in b/t/tests/fields-java/debian/debian/control.in new file mode 100644 index 0000000..8dbc64a --- /dev/null +++ b/t/tests/fields-java/debian/debian/control.in @@ -0,0 +1,16 @@ +Source: {$srcpkg} +Priority: extra +Section: java +Maintainer: {$author} +Standards-Version: {$standards_version} +Build-Depends: debhelper (>= 7.0.50~), openjdk-6-doc + +Package: lib{$srcpkg}-java +Architecture: {$architecture} +Depends: $\{shlibs:Depends\}, $\{misc:Depends\} +Description: {$description} + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. It may + be an empty package. + diff --git a/t/tests/fields-java/debian/debian/install b/t/tests/fields-java/debian/debian/install new file mode 100644 index 0000000..6c37889 --- /dev/null +++ b/t/tests/fields-java/debian/debian/install @@ -0,0 +1 @@ +some-file usr/share/lintian diff --git a/t/tests/fields-java/debian/some-file b/t/tests/fields-java/debian/some-file new file mode 100644 index 0000000..7bf08f7 --- /dev/null +++ b/t/tests/fields-java/debian/some-file @@ -0,0 +1,2 @@ +This file is installed into /usr/share/lintian just to ensure that this +package doesn't look like a metapackage for the dependency checks. diff --git a/t/tests/fields-java/desc b/t/tests/fields-java/desc new file mode 100644 index 0000000..12e1005 --- /dev/null +++ b/t/tests/fields-java/desc @@ -0,0 +1,6 @@ +Testname: fields-java +Sequence: 6000 +Version: 1.0 +Description: General tests for java package (build) dependencies +Test-For: + build-depends-on-specific-java-doc-package diff --git a/t/tests/fields-java/tags b/t/tests/fields-java/tags new file mode 100644 index 0000000..4f3321f --- /dev/null +++ b/t/tests/fields-java/tags @@ -0,0 +1 @@ +W: fields-java source: build-depends-on-specific-java-doc-package openjdk-6-doc -- 1.7.1 -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.32-5-686 (SMP w/2 CPU cores) Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages lintian depends on: ii binutils 2.20.1-12 The GNU assembler, linker and bina ii diffstat 1.53-1 produces graph of changes introduc ii dpkg-dev 1.15.7.2 Debian package development tools ii file 5.04-5 Determines file type using "magic" ii gettext 0.18.1.1-1 GNU Internationalization utilities ii intltool-debian 0.35.0+20060710.1 Help i18n of RFC822 compliant conf ii libapt-pkg-perl 0.1.24 Perl interface to libapt-pkg ii libclass-accessor-perl 0.34-1 Perl module that automatically gen ii libipc-run-perl 0.89-1 Perl module for running processes ii libparse-debianchangel 1.1.1-2.1 parse Debian changelogs and output ii libtimedate-perl 1.2000-1 collection of modules to manipulat ii liburi-perl 1.54-1 module to manipulate and access UR ii locales 2.11.2-2 Embedded GNU C Library: National L ii man-db 2.5.7-3 on-line manual pager ii perl [libdigest-sha-pe 5.10.1-14 Larry Wall's Practical Extraction lintian recommends no packages. Versions of packages lintian suggests: pn binutils-multiarch <none> (no description available) ii libtext-template-perl 1.45-1 Text::Template perl module ii man-db 2.5.7-3 on-line manual pager -- no debconf information -- To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20100821123316.23670.85603.report...@getsu.thykier.net