Bug#895597: lintian: Please improve advice on fixing maintainer-script-should-not-use-recursive-chown-or-chmod

2018-04-13 Thread Neil Williams
On Fri, 13 Apr 2018 10:33:54 +0100
Chris Lamb <la...@debian.org> wrote:

> tags 895597 + moreinfo
> thanks
> 
> Hi Neil,
> 
> > From the tag description (extended in bug #889489), it's not clear
> > to me *how* to use runuser for the requested fix and *why* using
> > runuser actually fixes the problem described in the tag  
> 
> I can't comment on this directly, but the tag was also extended in
> #895370 which might explain a little more.

That is the same content as I've been looking at - I don't find
anything useful in that bug report on how to use runuser or why using
runuser helps the situation.

> 
> If the *current* tag description is not helpful that is still a
> bug in Lintian, of course.
> 
> > For now, I will have to override this warning because I see no
> > practical way to fix it.  
> 
> Surely one can hold off on that until we get resolution here. A
> resigned "have to" seems somewhat of an excessive and unnecessary
> level of reaction, especially given the effort that has already
> gone into this already.

There are a lot of people waiting on this upstream release, a lot of
other tasks outside Debian. The upstream release can't wait for this
Debian bug to be fixed, much more important bug fixes are contained
within the upstream code.

Besides, as outlined in the original bug report, the objective here is
to document the reasoning so that a full replacement for the current
maintainer script can be designed, from scratch. The testing stage of
that development alone is expected to take several weeks. We cannot
risk that level of disruption at this stage of the upstream release
process.

A rushed fix to the current postinst is simply unacceptable.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpfzJMk5LhhU.pgp
Description: OpenPGP digital signature


Bug#895597: lintian: Please improve advice on fixing maintainer-script-should-not-use-recursive-chown-or-chmod

2018-04-13 Thread Neil Williams
Package: lintian
Version: 2.5.82
Severity: wishlist

>From the tag description (extended in bug #889489), it's not clear to me
*how* to use runuser for the requested fix and *why* using runuser
actually fixes the problem described in the tag and the referenced
bug reports. (The bugs referenced in the tag outline the security
issue but actually give no example or advice on how to implement the
advice in the tag description.)

Specifically:
W: lava-server: maintainer-script-should-not-use-recursive-chown-or-chmod 
postinst:154
W: lava-server: maintainer-script-should-not-use-recursive-chown-or-chmod 
postinst:156
W: lava-server: maintainer-script-should-not-use-recursive-chown-or-chmod 
postinst:158
W: lava-server: maintainer-script-should-not-use-recursive-chown-or-chmod 
postinst:159
W: lava-server: maintainer-script-should-not-use-recursive-chown-or-chmod 
postinst:160
W: lava-server: maintainer-script-should-not-use-recursive-chown-or-chmod 
postinst:161

The postinst at the point in git history matching the build which generated
the above output was:
https://github.com/Linaro/pkg-lava-server/blob/901d4d89b174544eebcf08cbc3c78fe3f9fef4f4/debian/lava-server.postinst

The problem is that the directories concerned are specific
to the current installation and are created based on dates (year,
month day) for archival reasons. Every day that an installation is
doing useful work, a directory of test logs will be created.

There are other directory trees as well, so simply replacing the
find with a static list of directories is completely infeasible.

Also, although I've given a link to the current postinst, patches
to that postinst are not a fix for this bug - the rationale, supporting
documentation and reasoning is required, as well as examples.

Upstream will be creating a new packaging script (see
https://projects.linaro.org/browse/LAVA-973) which will almost
certainly be written in Python3 to replace the majority of the
current Debian packaging postinst maintainer script. So, clear
reasons and advice, without getting tied up in specific languages,
on how to avoid the problem which lead to this tag is really important.

Testing any changes to the permission handling in this package
is going to take a *lot* of effort because tests can only be done
on snapshots of busy installations which have a lot of data and
the data cannot be easily generated. The current code has been tried
and tested over many iterations of large installations (typically
with a few Gb of data in the respective directories, so the fix
needs to be at least as fast as the current code).

Can a wiki page be created which goes into detail on how this
issue can be fixed both in a maintainer script and in other
upstream scripts which maintainers may need to package?

For now, I will have to override this warning because I see no
practical way to fix it.


-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf, arm64

Kernel: Linux 4.15.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8), LANGUAGE=en_GB:en 
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages lintian depends on:
ii  binutils  2.30-15
ii  bzip2 1.0.6-8.1
ii  diffstat  1.61-1+b1
ii  dpkg  1.19.0.5
ii  file  1:5.32-2
ii  gettext   0.19.8.1-6
ii  intltool-debian   0.35.0+20060710.4
ii  libapt-pkg-perl   0.1.33
ii  libarchive-zip-perl   1.60-1
ii  libclass-accessor-perl0.51-1
ii  libclone-perl 0.39-1
ii  libdpkg-perl  1.19.0.5
ii  libemail-valid-perl   1.202-1
ii  libfile-basedir-perl  0.07-1
ii  libipc-run-perl   0.99-1
ii  liblist-moreutils-perl0.416-1+b3
ii  libparse-debianchangelog-perl 1.2.0-12
ii  libperl5.26 [libdigest-sha-perl]  5.26.1-5
ii  libtext-levenshtein-perl  0.13-1
ii  libtimedate-perl  2.3000-2
ii  liburi-perl   1.73-1
ii  libxml-simple-perl2.25-1
ii  libyaml-libyaml-perl  0.69+repack-1
ii  man-db2.8.3-2
ii  patchutils0.3.4-2
ii  perl  5.26.1-5
ii  t1utils   1.41-2
ii  xz-utils  5.2.2-1.3

Versions of packages lintian recommends:
pn  libperlio-gzip-perl  

Versions of packages lintian suggests:
pn  binutils-multiarch 
ii  dpkg-dev   1.19.0.5
ii  libhtml-parser-perl3.72-3+b2
ii  libtext-template-perl  1.52-1

-- no debconf information



Bug#818609: lintian: python-script-but-no-python-dep false positive

2018-04-10 Thread Neil Williams
} so that lintian is happy.

What we should *not* be doing is forcing this kind of workaround by maintainers:
https://github.com/Linaro/pkg-lava-server/commit/ac3f2ef4e9b796f1176305f885fa815d0c756508

It all comes down to a python source package which builds more than one
python binary. One or more of the binaries only installs python
scripts into /usr/share/ and that will trigger the bug.

Change the .install to put even one python script into /usr/bin
or /usr/sbin and the bug disappears.

Add the workaround above and the bug disappears. The workaround isn't
needed for any package that installs precisely the same python scripts
in /usr/bin or /usr/sbin - that's why this whole sorry story exists.

That should be relatively easy to test.

What is going wrong is that lintian and dpkg disagree on what is correct.

lintian either needs to not check /usr/share or this gets reassigned to
dpkg-gencontrol to make dpkg check /usr/share.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpJ2ujBQiS1j.pgp
Description: OpenPGP digital signature


Bug#818609: lintian: python-script-but-no-python-dep false positive

2018-04-09 Thread Neil Williams
On Fri, 06 Apr 2018 19:41:08 +0100
Chris Lamb <la...@debian.org> wrote:

> Hi Neil,
> 
> > $ /usr/share/lava-server/debian-dev-build.sh -p lava-server  
> 
> I tried building as per your instructions but it starting re-cloning
> a bunch of stuff within the chroot, after installing fuse, grub, node
> etc. etc. …

It's simply cloning the debian/ directory out of the git packaging
repo. This is an upstream script for upstream developers.

> 
> Could you simply provide this lava-dev .deb somewhere publically? :)

https://staging.validation.linaro.org/static/docs/v2/installing_on_debian.html#lava-repositories

http://images.validation.linaro.org/staging-repo/pool/main/l/lava-server/

> > the upstream helper script builds whatever is in the git working
> > tree, without fussing about uncommitted changes like git-bp.  
> 
> As an aside: I understand that git-buildpackage is not for everyone,
> but here is a great example of where common, shared tools would really
> have a benefit and would save this round trip to fixing this issue. I
> mean, this script seems a *lot* more fuss than just committing first
> or passing --git-ignore-new … !)

This isn't about git-ignore anything, this is about building upstream
packages with (sometimes) untested and uncommitted upstream changes to
be able to do the testing prior to and during code review. Making
debian/patches for that is a complete nonsense. This script is for
upstream work with static Debian packaging. Same process is then used
to build the nightly builds which are used for functional testing well
before any release. Debian tooling is completely useless for all of
that upstream work, indeed dpkg is actively obstructive - hence the
need for the lava-dev scripts.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpJ_qmcBDWPe.pgp
Description: OpenPGP digital signature


Bug#818609: lintian: python-script-but-no-python-dep false positive

2018-04-06 Thread Neil Williams
On Fri, 06 Apr 2018 11:53:25 +0100
Chris Lamb <la...@debian.org> wrote:

> tags 818609 + moreinfo
> thanks
> 
> Chris Lamb wrote:
> 
> > > $ lintian weboob_1.3-1_all.deb
> > > E: weboob: python-script-but-no-python-dep
> > > usr/share/weboob/imm-o-matic  
> > 
> > I believe you are missing a dependency on Python 3 for this
> > script.   
> […]
> > https://anonscm.debian.org/git/lintian/lintian.git/commit/?id=8385bfa725a324d8591343179e0207d72aec9511
> >   
> 
> Neil, is this the cause of your issue too? My lava-server packages
> here don't seem to have render-template.py (or I'm missing something
> obvious!)

Upstream have since moved on to exclusive Python3 support but lintian
is still getting this wrong. Before the following change, yes, lintian
spots these files:

neil@sylvester:lava-server (master)$ git diff
diff --git a/share/download-test-suites-api.py 
b/share/download-test-suites-api.py
index 96ffe1a8..43b319b2 100755
--- a/share/download-test-suites-api.py
+++ b/share/download-test-suites-api.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 #
 #  download-test-suites-api.py
diff --git a/share/render-template.py b/share/render-template.py
index 011745cf..ffad2879 100755
--- a/share/render-template.py
+++ b/share/render-template.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python
+#! /usr/bin/python3
 
 """
 This script is particularly intended for those adding new devices to LAVA
diff --git a/share/validate_devices.py b/share/validate_devices.py
index fd53b808..b65cf25e 100755
--- a/share/validate_devices.py
+++ b/share/validate_devices.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python
+#! /usr/bin/python3
 
 """
 This script is to check the combination of the Jinja2 device-type templates

After building with these changes, lintian gets it wrong:

neil@sylvester:lava-server (master)$ lintian -o 
/tmp/tmp.WrhJ2TmpXH/lava-dev_2018.2+7171.458f470e-1_all.deb
W: lava-dev: binary-package-depends-on-toolchain-package depends: debhelper (>= 
9.20160709)
E: lava-dev: python-script-but-no-python-dep 
usr/share/lava-server/download-test-suites-api.py
E: lava-dev: python-script-but-no-python-dep 
usr/share/lava-server/render-template.py
E: lava-dev: python-script-but-no-python-dep 
usr/share/lava-server/validate_devices.py

$ dpkg -I /tmp/tmp.WrhJ2TmpXH/lava-dev_2018.2+7171.458f470e-1_all.deb|grep 
Depends
 Depends: build-essential, ca-certificates, devscripts, dpkg-dev,
 debootstrap (>= 1.0.86), debhelper (>= 9.20160709), fakeroot, git,
 libdistro-info-perl, node-uglify, libjs-excanvas, libjs-jquery-cookie,
 libjs-jquery, libjs-jquery-watermark, libjs-jquery-flot (>= 0.8.2),
 libjs-jquery-ui, python3 | python3-all | python3-dev |
 python3-all-dev, python3-setuptools, python3-dateutil,
 python3-guestfs, python3-nose, python3-netifaces, python3-pexpect (>=
 4.2), pep8 | python3-pep8, python3-sphinx (>= 1.4),
 python3-sphinx-bootstrap-theme, python3-requests, python3-zmq,
 python3-yaml, python3-voluptuous (>= 0.8.8), docbook-xsl, xsltproc

If you have time to reproduce, we have a build script helper. Install
lava-dev (in chroot or wherever), git clone
http://git.linaro.org/lava/lava-server.git , cd lava-server then:

$ /usr/share/lava-server/debian-dev-build.sh -p lava-server

Is it something to do with the scripts being in /usr/share ?
dh_python3 doesn't notice files in /usr/share

$ dpkg-query -W lintian
lintian 2.5.80

I'll be putting the above git diff into review today, so the master
branch will likely have this change soon. However, the upstream helper
script builds whatever is in the git working tree, without fussing
about uncommitted changes like git-bp.

> 
> 
> Best wishes,
> 
> -- 
>   ,''`.
>  : :'  : Chris Lamb
>  `. `'`  la...@debian.org / chris-lamb.co.uk
>`-


-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpDyd8KB867T.pgp
Description: OpenPGP digital signature


Bug#818609: lintian: python-script-but-no-python-dep false positive

2018-01-22 Thread Neil Williams
On Tue, 23 Jan 2018 11:11:30 +0530
Chris Lamb <la...@debian.org> wrote:

> tags 818609 + moreinfo
> thanks
> 
> Hi,
> 
> > The python-script-but-no-python-dep check is being triggered despite
> > the dependency existing  
> 
> I can't reproduce this; as in, this package is missing the
> dependencies for me!
> 
> $ dget lava-dev
> dget: retrieving
> http://127.0.0.1/deb.debian.org/pool/main/l/lava-server/lava-dev_2018.1-2_all.deb
> % Total% Received % Xferd  Average Speed   TimeTime Time
> Current Dload  Upload   Total   SpentLeft  Speed 100 39832  100
> 398320 0  39832  0  0:00:01 --:--:--  0:00:01 37.9M
> 
> $ dpkg -I lava-dev_2018.1-2_all.deb | grep Depends  
>  Depends: build-essential, ca-certificates, devscripts, dpkg-dev,
> debootstrap (>= 1.0.86), debhelper (>= 9.20160709), fakeroot, git,
> libdistro-info-perl, node-uglify, libjs-excanvas,
> libjs-jquery-cookie, libjs-jquery, libjs-jquery-watermark,
> libjs-jquery-flot (>= 0.8.2), libjs-jquery-ui, pep8 | python-pep8,
> python-guestfs, python-nose, python-netifaces, python3-sphinx (>=
> 1.4), python-setuptools, python-pexpect (>= 4.2),
> python3-sphinx-bootstrap-theme, python-requests, python-zmq,
> python-yaml, python-voluptuous (>= 0.8.8), docbook-xsl, xsltproc,
> python-mock
> 

There are 10 packages there which already have that strict Depends
which lintian expects. The packaging already has the lintian advice for
calculating dependencies with debhelper but no such dependency is
calculated.

So is debhelper wrong here to not add (a completely redundant)
dependency or is lintian wrong to not handle dependencies already
listed?

There really is no point adding the spurious dependency covered by this
lintian warning.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpc0tL1iXyuf.pgp
Description: OpenPGP digital signature


Bug#818607: lintian: python-script-but-no-python-dep refers to removed package: dh_pysupport or dh_pycentral

2016-03-19 Thread Neil Williams
Package: lintian
Version: 2.5.42.1
Severity: normal

The information for python-script-but-no-python-dep contains the section:

N:If you are using debhelper, adding ${python:Depends} to the Depends
N:field and ensuring dh_pysupport or dh_pycentral are run during the build
N:should take care of adding the correct dependency.

Neither dh_pysupport nor dh_pycentral exist in stretch or sid since the
end of December 2015.
https://tracker.debian.org/news/736769

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf, arm64

Kernel: Linux 4.4.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages lintian depends on:
ii  binutils  2.26-6
ii  bzip2 1.0.6-8
ii  diffstat  1.61-1
ii  file  1:5.25-2
ii  gettext   0.19.7-2
ii  hardening-includes2.8+nmu2
ii  intltool-debian   0.35.0+20060710.4
ii  libapt-pkg-perl   0.1.29+b5
ii  libarchive-zip-perl   1.56-2
ii  libclass-accessor-perl0.34-1
ii  libclone-perl 0.38-1+b1
ii  libdata-alias-perl1.20-1+b1
ii  libdpkg-perl  1.18.4
ii  libemail-valid-perl   1.198-1
ii  libfile-basedir-perl  0.07-1
ii  libipc-run-perl   0.94-1
ii  liblist-moreutils-perl0.413-1+b1
ii  libparse-debianchangelog-perl 1.2.0-8
ii  libperl5.22 [libdigest-sha-perl]  5.22.1-9
ii  libtext-levenshtein-perl  0.13-1
ii  libtimedate-perl  2.3000-2
ii  liburi-perl   1.71-1
ii  libyaml-libyaml-perl  0.41-6+b1
ii  man-db2.7.5-1
ii  patchutils0.3.4-1
ii  perl  5.22.1-9
ii  t1utils   1.39-2
ii  xz-utils  5.1.1alpha+20120614-2.1

Versions of packages lintian recommends:
ii  dpkg 1.18.4
pn  libperlio-gzip-perl  
ii  perl 5.22.1-9
ii  perl-modules-5.22 [libautodie-perl]  5.22.1-9

Versions of packages lintian suggests:
pn  binutils-multiarch 
ii  dpkg-dev   1.18.4
ii  libhtml-parser-perl3.72-1
ii  libtext-template-perl  1.46-1

-- no debconf information



Bug#818609: lintian: python-script-but-no-python-dep false positive

2016-03-19 Thread Neil Williams
Package: lintian
Version: 2.5.42.1
Severity: normal

The python-script-but-no-python-dep check is being triggered despite the 
dependency
existing:

$ lintian ../lava-server_2016.3+5538.7f896cb-1_amd64.changes 
E: lava-dev: python-script-but-no-python-dep 
usr/share/lava-server/render-template.py
E: lava-dev: python-script-but-no-python-dep 
usr/share/lava-server/validate_devices.py
N: 7 tags overridden (4 errors, 3 warnings)
$ dpkg -I ../lava-dev_2016.3+5538.7f896cb-1_all.deb|grep Depends
 Depends: build-essential, ca-certificates, devscripts, dpkg-dev, debhelper (>= 
8.0.0), fakeroot, git, libdistro-info-perl, node-uglify, libjs-excanvas, 
libjs-jquery-cookie, libjs-jquery, libjs-jquery-watermark, libjs-jquery-flot 
(>= 0.8.2), libjs-jquery-ui, django-testscenarios, android-tools-adb, 
android-tools-fastboot, python | python-all | python-dev | python-all-dev, pep8 
| python-pep8, python-sphinx (>= 1.0.7+dfsg) | python3-sphinx, po-debconf, 
python-mocker, python-setuptools, python-versiontools, python-yaml, 
docbook-xsl, xsltproc, python-mock

python | python-all | python-dev | python-all-dev is the same as other binaries 
built
from the same source which correctly pass lintian checks.

- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf, arm64

Kernel: Linux 4.4.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages lintian depends on:
ii  binutils  2.26-6
ii  bzip2 1.0.6-8
ii  diffstat  1.61-1
ii  file  1:5.25-2
ii  gettext   0.19.7-2
ii  hardening-includes2.8+nmu2
ii  intltool-debian   0.35.0+20060710.4
ii  libapt-pkg-perl   0.1.29+b5
ii  libarchive-zip-perl   1.56-2
ii  libclass-accessor-perl0.34-1
ii  libclone-perl 0.38-1+b1
ii  libdata-alias-perl1.20-1+b1
ii  libdpkg-perl  1.18.4
ii  libemail-valid-perl   1.198-1
ii  libfile-basedir-perl  0.07-1
ii  libipc-run-perl   0.94-1
ii  liblist-moreutils-perl0.413-1+b1
ii  libparse-debianchangelog-perl 1.2.0-8
ii  libperl5.22 [libdigest-sha-perl]  5.22.1-9
ii  libtext-levenshtein-perl  0.13-1
ii  libtimedate-perl  2.3000-2
ii  liburi-perl   1.71-1
ii  libyaml-libyaml-perl  0.41-6+b1
ii  man-db2.7.5-1
ii  patchutils0.3.4-1
ii  perl  5.22.1-9
ii  t1utils   1.39-2
ii  xz-utils  5.1.1alpha+20120614-2.1

Versions of packages lintian recommends:
ii  dpkg 1.18.4
pn  libperlio-gzip-perl  
ii  perl 5.22.1-9
ii  perl-modules-5.22 [libautodie-perl]  5.22.1-9

Versions of packages lintian suggests:
pn  binutils-multiarch 
ii  dpkg-dev   1.18.4
ii  libhtml-parser-perl3.72-1
ii  libtext-template-perl  1.46-1

-- no debconf information



Bug#801717: lintian: False positive for source-is-missing

2015-10-14 Thread Neil Williams
On Wed, 14 Oct 2015 11:17:40 +0800
Paul Wise <p...@debian.org> wrote:

> On Tue, 13 Oct 2015 20:48:48 +0100 Neil Williams wrote:
> 
> > lava_server/htdocs/js/jquery.validate.js
> > lava_server/lava-server/js/jquery.validate.js  
> 
> Are you sure these files are source for the jQuery validation plugin?

The plugin which isn't packaged (cannot be packaged currently if it
does need grunt) and which I cannot therefore use?

These js files are effectively part of the source code of lava-server,
not the JQuery upstream - lintian should not be making any decisions
based on things which are not in the archive. 

> Looking at the upstream git repo for the jQuery validation plugin the
> source is a bunch of separate files instead of just one file.
> 
> https://github.com/jzaefferer/jquery-validation/

This isn't packaged, therefore, lintian cannot know about them.

Anything lintian has to say about things which are not packaged for
Debian can only be under the --pedantic classification.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgppROMN3mxYN.pgp
Description: OpenPGP digital signature


Bug#801717: lintian: False positive for source-is-missing

2015-10-13 Thread Neil Williams
Package: lintian
Version: 2.5.38
Severity: normal

lintian is complaining about source-is-missing in the
lava-server binary package for these files. The files
are present in the package as source:

dashboard_app/static/dashboard_app/js/jquery.flot.navigate.js
lava_scheduler_app/static/lava_scheduler_app/js/beautify.js
lava_scheduler_app/static/lava_scheduler_app/js/shCore.js
lava_server/htdocs/js/jquery.validate.js
lava_server/lava-server/js/jquery.validate.js

lava-server has support for using a number of javascript packages
and using symlinks to the minified javascript files in those
packages. I'm unclear why these files are being listed as
lacking source as these are not minified javascript files.

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf, arm64

Kernel: Linux 4.1.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages lintian depends on:
ii  binutils   2.25.1-7
ii  bzip2  1.0.6-8
ii  diffstat   1.60-1
ii  file   1:5.25-2
ii  gettext0.19.6-1
ii  hardening-includes 2.7
ii  intltool-debian0.35.0+20060710.4
ii  libapt-pkg-perl0.1.29+b3
ii  libarchive-zip-perl1.53-1
ii  libclass-accessor-perl 0.34-1
ii  libclone-perl  0.38-1
ii  libdpkg-perl   1.18.3
ii  libemail-valid-perl1.196-1
ii  libfile-basedir-perl   0.07-1
ii  libipc-run-perl0.94-1
ii  liblist-moreutils-perl 0.413-1
ii  libparse-debianchangelog-perl  1.2.0-8
ii  libtext-levenshtein-perl   0.13-1
ii  libtimedate-perl   2.3000-2
ii  liburi-perl1.69-1
ii  man-db 2.7.4-1
ii  patchutils 0.3.4-1
ii  perl [libdigest-sha-perl]  5.20.2-6
ii  t1utils1.38-4
ii  xz-utils   5.1.1alpha+20120614-2.1

Versions of packages lintian recommends:
ii  dpkg1.18.3
pn  libperlio-gzip-perl 
ii  perl5.20.2-6
ii  perl-modules [libautodie-perl]  5.20.2-6

Versions of packages lintian suggests:
pn  binutils-multiarch 
ii  dpkg-dev   1.18.3
ii  libhtml-parser-perl3.71-2
ii  libtext-template-perl  1.46-1
ii  libyaml-perl   1.13-1

-- no debconf information



Re: lintian and Debian derivatives

2011-07-07 Thread Neil Williams
On Thu, 07 Jul 2011 00:25:59 +0200
Paul Wise p...@debian.org wrote:

 As a member of the Debian derivatives front desk (CCed) and initiator of
 the derivatives census, which aims to make derivatives more visible to
 Debian, I figured I should update lintian folks on the state of lintian
 development and usage in Debian derivatives.

Just a note, Emdebian is involved in lintian testing for Emdebian
packages, via the new lintian profile support (based on DEB_VENDOR), but
as the current Emdebian release (Grip) is binary-compatible with Debian,
the emphasis is on ensuring that the processed packages comply with the
Emdebian Policy changes from Debian Policy. (Specifically, allow the
removal of manpages and other files which lintian would otherwise
output as missing, allow compression where Debian does not, etc.)

Once MultiArch is in place with cross-building support, things will
change and Emdebian will again start using lintian in earnest. Quite
how and where the lintian tests are run is largely a problem of
resources.

 In addition, there is one derivative that I know of that has current and
 public lintian web pages, but I guess that one is well known by lintian
 maintainers since I guess it is run by Russ. It is a shame that lintian
 pages aren't more widespread within our derivatives. I guess some use it
 on the packages during their build process but I wonder how we could
 encourage them to use it more, anyone have any thoughts?

Lintian requires a lot of resources if it's to be run automatically
against an entire distribution. Emdebian will look at lintian reports
for cross-built stuff but that's only because that is likely to be
limited to less than a thousand source packages. Even then, I'm
expecting the full lintian test to take almost as long as it currently
takes to process the daily updates to Emdebian Grip.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgp6I4ZpEPdo1.pgp
Description: PGP signature


Re: Vendor-based customization of Lintian (or profiles)

2011-04-19 Thread Neil Williams
On Tue, 19 Apr 2011 20:04:47 +0200
Niels Thykier ni...@thykier.net wrote:

  [Needed]
   * No code changes:
 - It must be possible to alter whether Lintian emits a tag without
   modifying code.
   * Re-usable:
 - Most profiles will likely be based on the core profile. New
   profiles should be able to extend existing profile.
 - Extended profile must be able to include tags not originally
   in the original profile.
 - Extended profile must be able to exclude tags originally in the
   original profile.
   * Add vendor/3rd party checks [Deferred]:
 - A profile may include new checks/collections not present in the
   Lintian package itself.
   * A tag not included in the current profile shall not be emitted.
 - An override for such a tag is not considered unneeded and must be
   ignored.

Emdebian tried this and came up against a few hidden assumptions in
lintian which we discussed with the lintian maintainers at the time. We
experimented with an emdebian checks file and desc file:

http://packages.debian.org/sid/all/emdebian-crush/filelist

If this proposal completes the final stage of that process, I will be
v.happy. :-)

Another common requirement at work is to switch off the lintian warning
about unsupported distributions as we're trying to build
lintian-clean packages for our own internal repositories and it makes
apt pinning a lot easier to *not* use stable, testing, unstable or any
of the Debian ToyStory codenames.

If that can be done with a simple file which applies across all
packages, it will just be so much easier.

  Rationale for deferring Add checks: Fixing this is effectively to fix
  the third party checks problem and this adds complexity like how to
  handle name clashing with checks/collections.  We will have that debate
  eventually.  It is my belief that it will be easier for us to add the
  third party checks on top on the profile system than the other way
  around (infrastructure wise).

That makes the third-party responsible for avoiding clashes - which is,
IMHO, the way it should work.

Also, as soon as we add third party checks our current collections as
  well as our check interface becomes part of our API.  Changing any of
  these could possibly break other packages.
  
  Proposed solution
  -
  We add a new directory to the Lintian root called profiles with the
  structure:
  
   profiles/
 debian/
   main.profile
   ftp-auto-reject.profile
 ubuntu/
   main.profile
 $other_vendor/
   some.profile
 default

I think there should be support for dpkg-vendor in this situation. If
DEB_VENDOR is defined, lintian can look for that profile. Emdebian has
been doing this for some time with emvendor but not (yet) with lintian.

  Profiles should be specified with a new command line argument --profile
  profile or the environment/lintianrc variable LINTIAN_PROFILE=profile.

IMHO DEB_VENDOR is a better fit.

  When we agree on (the basis of) an implementation (not necessarily the
  one proposed here) I suggest we add it to the Debian wiki under
  Lintian/Spec/VendorCustomization (or similar).
This way the specification does not suddenly get lost on the mailing
  list and we can easily update it later.

Any patches?
:-)

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpsoi6oCLH7K.pgp
Description: PGP signature


Re: Vendor-based customization of Lintian (or profiles)

2011-04-19 Thread Neil Williams
On Tue, 19 Apr 2011 21:02:27 +0200
Niels Thykier ni...@thykier.net wrote:

  Emdebian tried this and came up against a few hidden assumptions in
  lintian which we discussed with the lintian maintainers at the time. We
  experimented with an emdebian checks file and desc file:
  
  http://packages.debian.org/sid/all/emdebian-crush/filelist
  
  If this proposal completes the final stage of that process, I will be
  v.happy. :-)
 
 Do you have a link to that debate; unfortunately I believe it was before
 my involvement with Lintian, so I do not believe I have seen it (unless
 it is covered in the DC10 notes from the BoF).

Not really. I did describe some of the results to the Emdebian folks:

http://lists.debian.org/debian-embedded/2008/04/msg3.html

http://lists.debian.org/debian-embedded/2009/12/msg00032.html

The other discussions with Russ were mostly direct email and/or
discussions at DebConf9.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpKvBnkJLj0z.pgp
Description: PGP signature


Bug#575400: lintian does not allow overriding bad-distribution-in-changes-file

2010-03-25 Thread Neil Williams
Package: lintian
Version: 2.3.4
Severity: wishlist

When working with packages not intended for upload to Debian but used
with internal repositories to create systems based on Debian, it is
still useful to run lintian over the results of dpkg-buildpackage.

Such configurations have non-standard suites and codenames, targeted at
our own releases and schedules, and these are included in the .changes
files so that reprepro and other tools can handle the .changes files
correctly upon local upload.

lintian does not appear to accept an override for a
bad-distribution-in-changes-file where we need to use development
instead of unstable.

Please allow lintian to support an override in
debian/source.lintian-overrides to clear this warning.

Current source overrides for the package concerned:
$ cat debian/source.lintian-overrides
section-category-mismatch
ancient-standards-version
bad-distribution-in-changes-file
section-area-mismatch
missing-debian-source-format



-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-2-686 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Shell: /bin/sh linked to /bin/dash

Versions of packages lintian depends on:
ii  binutils   2.20.1-3  The GNU assembler, linker and bina
ii  diffstat   1.47-1produces graph of changes introduc
ii  dpkg-dev   1.15.5.6  Debian package development tools
ii  file   5.04-1Determines file type using magic
ii  gettext0.17-10   GNU Internationalization utilities
ii  intltool-debian0.35.0+20060710.1 Help i18n of RFC822 compliant conf
ii  libapt-pkg-perl0.1.24Perl interface to libapt-pkg
ii  libclass-accessor-perl 0.34-1Perl module that automatically gen
ii  libipc-run-perl0.84-1Perl module for running processes
ii  libparse-debianchangel 1.1.1-2   parse Debian changelogs and output
ii  libtimedate-perl   1.2000-1  collection of modules to manipulat
ii  liburi-perl1.53-1module to manipulate and access UR
ii  locales2.10.2-6  Embedded GNU C Library: National L
ii  man-db 2.5.7-2   on-line manual pager
ii  perl [libdigest-sha-pe 5.10.1-11 Larry Wall's Practical Extraction 

lintian recommends no packages.

Versions of packages lintian suggests:
pn  binutils-multiarchnone (no description available)
pn  libtext-template-perl none (no description available)
ii  man-db2.5.7-2on-line manual pager

-- no debconf information


-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/



pgpbxzkjA6z3m.pgp
Description: PGP signature


Bug#575400: lintian does not allow overriding bad-distribution-in-changes-file

2010-03-25 Thread Neil Williams
On Thu, 25 Mar 2010 11:25:51 -0700
Russ Allbery r...@debian.org wrote:

 There's really no way for Lintian to use information from the source
 package to override tags for the *.changes file.  Those are two entirely
 separate objects to Lintian, and the *.changes file is parsed and tags
 emitted for it before the source package is looked at.

I suspected that from a cursory glance at the source code.
 
 The supported way of handling unwanted tags from the *.changes file is to
 suppress them from the command line:
 
 lintian --suppress-tags bad-distribution-in-changes-file

Sounds like an alias is required . . .
 
 which will accomplish functionally the same thing as an override.  There's
 an open bug to allow one to put things like that into a configuration
 file, which is definitely something we want to support going forward.
 
 Does that sound like a reasonable solution to you?

Yes, feel free to merge this bug report into the bug seeking a
per-system configuration file. Is that the support where a package can
drop in a config file into a lintian/overrrides.d/ type directory? 

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/



pgpOR3CJqC9xH.pgp
Description: PGP signature


Bug#512210: lintian: [checks/po-debconf] Extend template check for updated strings

2009-01-19 Thread Neil Williams
 containing debconf questions should always be reviewed
before upload and that review will lead to at least some translations.

BTW mentors may require that repeated uploads to mentors.debian.net
during the process of review and testing get full descriptive entries
in the changelog for what has actually been done during the sponsoring
process. So a single changelog entry is not a predicate of a NEW
package.

  I'd like to see severity important but normal would be OK for starters.
 
 Remember, the rule of thumb here is that severity should match the
 severity that you'd pick for the bug that you filed about the problem,
 were you to file a bug.  Important is a rather large leap over the current
 severities used for translations.

Debconf is a little different. It is a peculiar problem that if a new
debconf question is not translated, the user does not get the chance to
reconsider their answer when the translation finally arrives.

Normal severity would be fine if important is deemed a step too far.

I still think it is worth enforcing no untranslated debconf questions
in debian-mentors as a point of good practice - even if the lintian tag
severity is not changed in order to avoid annoying existing DD's.
Mentors should be about raising the quality of NEW packages and package
updates (especially QA uploads etc.) and all packages coming through
mentors should be up to the latest measures of Policy, Standards and
general behaviour.

Maybe lintian could be more aggressive for checks performed during
sponsoring than when being used by more experienced DD's. ;-)

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/



pgpi1r7jP4xr5.pgp
Description: PGP signature


Bug#512210: lintian: [checks/po-debconf] Extend template check for updated strings

2009-01-19 Thread Neil Williams
On Mon, 19 Jan 2009 18:27:40 +0100
Christian Perrier bubu...@debian.org wrote:

 Quoting Neil Williams (codeh...@debian.org):
 
   Yes, we can change the severity, although I'd like to run that past
   debian-i18n first.
  
  Christian - this is a slightly different problem to what you first
  thought. It isn't that some translators have answered and some have
  not, it is that a new question has been added and nobody at all has
  replied. If a sane deadline is set, isn't it unlikely that not one of
  the language teams managed to get a translation to the maintainer in
  time? It is far more likely that the maintainer didn't ask the
  translation teams before uploading the new question.
 
 I agree here. If you manage to get through the problem of having to
 examine binary packages' templates, then I agree that having a
 template that's marked translatable and *no* translation at all makes
 it very likely that no call for translations was issued when the
 templated was added.

Something like this should work:

# i18n -- lintian check script  -*- perl -*-

package Lintian::codehelp;
use strict;
use Tags;
use Util;

sub run {

my $pkg = shift;
my $type = shift;

if (-f control/templates)
{
my $incomplete;
my $stanza;
open (I18N, '', control/templates) or
fail (cannot open lintian templates: $!);
while (I18N)
{
if (/^Description: /)
{
$stanza++;
undef $incomplete;
next;
}
undef ($stanza) if (/^Description-/);
if ((defined ($stanza) and (/^Template:/)))
{
$incomplete++;
last;
}
}
close (I18N);
tag (ch-package-contains-docs, templates) if (defined $incomplete);
}
}

1;


control/templates is safe as we're checking the binary here - we don't
want to be checking debian/foo.templates. It's not perfect, it probably
also need to check that this isn't a source package with:

return if ($type eq source);

and output the $pkg variable instead of the rather bland templates.

It simply says that once a Description has been found, there must be a
Description- (this too can be improved) before the next empty line and
following Template stanza. That might need improvement to catch the
last question in the file, especially if there is no terminal newline.
I've not used a sensible tagname either.

Under what circumstances are questions untranslated? There should
always be some help text that needs translation.

 By fairly likely, I mean quite certain, indeed
 
  The tag name might have to change:
  
  new-question-without-translations
 
 that would certainly help avoiding the case where maintainers entirely
 drop existing translations
 
 A properly worded long information will also help.

I'm sure we can come up with that. Something based on:

 debconf only ever asks the same question once - to be effective, that
 question should be translated the very first time that question is
 offered to the user. Translating it after the user has answered the
 question in English is pointless - at least as far as that user is
 concerned.
 .
 This package contains a template file containing at least one question
 that has not been translated at all. This means that translators
 were not properly warned about new strings.
 .
 Translators may be notified of changes using podebconf-report-po, for
 example:
 .
  podebconf-report-po --call --withtranslators --deadline=+10 days \
  --languageteam
Ref: devref 6.5.2.2

I can spend some more time on this, if you'd like a fully tested patch Russ.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/



pgpYwNSe5z91E.pgp
Description: PGP signature


Bug#512210: lintian: [checks/po-debconf] Extend template check for updated strings

2009-01-19 Thread Neil Williams
On Mon, 19 Jan 2009 12:20:40 -0800
Russ Allbery r...@debian.org wrote:

 If I check the generated templates in the binary deb, how do I check that
 the string was marked for translation?  We don't want to trigger this tag
 on strings that aren't intended to be translated.

TBH I was expecting that all questions would be translated - at least
the help text (Description), even if not the possible answers.
Otherwise, doesn't it tend to indicate that debconf is being used as a
registry?

The empirical answer, at the moment, would be as described earlier:
Template:
...
Description: 
 

Template:

should fail - with the proviso that the last question in the file also
needs to be allowed to fail, so check for EOF as well.

Template:
...
Description: 
 
Description-
 ...
Template:

would pass.

A quick check finds these files on my system that contain unexpected
content like:
Template: debconf-apt-progress/info
Type: text
Description: ${DESCRIPTION}

Template: debconf-apt-progress/media-change
Type: text
Description: Media change
 ${MESSAGE}

How are those variables utilised? Where and how could these be
translated?

debconf.templates failed
console-data.templates failed
x11-common.templates failed
gdm.templates failed
console-setup.templates failed
tasksel.templates failed
dbconfig-common.templates failed
linux-image-2.6.24-1-amd64.templates failed
linux-image-2.6.25-2-amd64.templates failed
linux-image-2.6.26-1-amd64.templates failed

That's using a script based on the perl script from the other message.
Out of 65 templates on this system, it's a start.

Choices is a little awkward but I cannot see a scenario where Choices
is *translated* but the Description *is not* so basing the check on
Description alone (to avoid a more common case where Choices is not
translatable) is appropriate, AFAICT.

x11 has:
Template: x11-common/xwrapper/actual_allowed_users
Type: string
Description: internal use only
 This template is never shown to the user and does not require
translation.

Others include:
Template: console-data/bootmap-md5sum
Type: string
Default: none
Description: for internal use

Template: gdm/daemon_name
Type: string
Default: /usr/bin/gdm
Description: for internal use only

Template: console-setup/modelcode
Type: string
Description: for internal use

Template: console-setup/layoutcode
Type: string
Description: for internal use

Template: console-setup/variantcode
Type: string
Description: for internal use

Template: console-setup/optionscode
Type: string
Description: for internal use

Template: console-setup/fontsize
Type: string
Description: for internal use

Template: console-setup/codesetcode
Type: string
Description: for internal use

Those all look wrong to me - debconf for internal use only?

Template: tasksel/desktop
Type: multiselect
Choices: gnome, kde, xfce
Default: gnome
Description: The desktop environment to install when the desktop task
is selected This can be preseeded to change the default.

(That tasksel one looks like a true positive - I can't see why that is
not translated.)

Template: dbconfig-common/missing-db-package-error
Type: select
Choices: abort, retry, ignore
Default: abort
Description: Database package required.
 To properly configure the database for ${pkg}, it is necessary
 that you also have ${dbpackage} installed.  Unfortunately, this can
 not be done automatically.
 .
 If in doubt, you should choose abort, and install ${dbpackage} before
 continuing with the configuration of this package.  If you choose
retry, you will be allowed to choose different answers (in case you
chose the wrong database type by mistake).  If you choose ignore,
then installation will continue as normal.
 .
 (Note to translators: don't bother translating this message yet, as the
  text/wording is not stabilized)

Hmm. That's going to be tricky to identify but probably OK for an
override.

linux-image-2.6.24-1-amd64.templates - none of the strings appear to be
translated and to my eye, all should have been - true positive?

Ditto for linux-image-2.6.25-2-amd64.templates and
linux-image-2.6.26-1-amd64.templates

I'm attaching the script so that others can check their templates
files. (Consider it under the GPL-3+, Copyright me 2009. Note that
it does not currently check for EOF correctly.)

So, overall, only one package needs an override from this cursory
glance at one machine, two packages (four template files) look like
correct checks that should have been caught before (probably) and
another 4 that are using debconf for internal use which seems to be
against the spirit of debconf, to me anyway. 

Oh and before anyone asks, I'm not saying that the true positive checks
or the internal use only templates need to be fixed for Lenny. ;-)

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

#!/usr/bin/perl

opendir (LINT, /var/lib/dpkg/info/);
@files=grep(/templates$/, readdir(LINT));
closedir (LINT);
foreach $file

Bug#512210: lintian: [checks/po-debconf] Extend template check for updated strings

2009-01-19 Thread Neil Williams
On Mon, 19 Jan 2009 14:54:26 -0800
Russ Allbery r...@debian.org wrote:

 Neil Williams codeh...@debian.org writes:
  Russ Allbery r...@debian.org wrote:
 
  If I check the generated templates in the binary deb, how do I check
  that the string was marked for translation?  We don't want to trigger
  this tag on strings that aren't intended to be translated.
 
  TBH I was expecting that all questions would be translated - at least
  the help text (Description), even if not the possible answers.
  Otherwise, doesn't it tend to indicate that debconf is being used as a
  registry?
 
 Private templates are extremely common.  We can't realistically do
 anything that would warn about private templates.  It will just annoy a
 lot of people.

OK, I think there is a way of identifying private templates. It could
be as simple as agreeing (after Lenny) that a particular Description is
uniformly used for all private templates. That would help translators
too. Most already seem to use for internal use. After all, the
description itself is completely arbitrary as far as internal templates
are concerned.

Indeed, simply adding one line to the test script could be enough:
next if ($line =~ /^Description: .*[for ]?internal use/);

Which gives: (excluding debconf.templates as you described)

tasksel.templates failed
dbconfig-common.templates failed
linux-image-2.6.24-1-amd64.templates failed
linux-image-2.6.25-2-amd64.templates failed
linux-image-2.6.26-1-amd64.templates failed

dbconfig probably needs an override and the others look like correct checks.

Until there is consensus on the syntax for private templates, the
lintian test could stay at lower severity.

 Description: For internal use only

That would match too - so it would be ignored for the test.

 I think this sort of thing is quite common.

As long as a particular identifier can be used for all (and the lintian
test can provide information on that identifier in the guide text),
that shouldn't be a problem.
 
-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/



pgprvn2hu4gOp.pgp
Description: PGP signature


Bug#512210: lintian: [checks/po-debconf] Extend template check for updated strings

2009-01-18 Thread Neil Williams
Package: lintian
Version: 2.1.6
Severity: wishlist
Tags: l10n

http://people.debian.org/~codehelp/#debconf

http://lists.debian.org/debian-mentors/2009/01/msg00178.html

I've been thinking about translation and debconf, partially due to my
work on TDebs etc. I think there are good reasons to consider any
untranslated debconf templates as automatically buggy. 

debconf only ever asks the same question once - to be effective, that
question should be translated the very first time that question is
offered to the user. Translating it after the user has answered the
question in English is pointless - at least as far as that user is
concerned.

So, I wonder if lintian could extend checks/po-debconf to raise an error 
not only if any package contains a completely untranslated set of templates
but also check if a single question is untranslated even if the rest
of the templates have one or more translations.

It is important that if a question is translated, even just once, that
the error is not issued - only questions that have no translations at
all should generate the error.

Maybe for Squeeze it could even be a release goal that no package using
debconf is uploaded without the translations being updated. A lintian
test would be a useful stage in such a process.

'msgfmt -c --statistics' will output the status of the debian/po files
or it may just be simpler to parse the templates file(s) in the binary
package(s) and check for any 'Description' that does not have a 
'Description-[a-z]{2}\..*:' in the corresponding Template: stanza.

e.g.:
Template: emsource/svnusername
Type: string
Description: Subversion login to use on buildd.emdebian.org:
...
Description-cs.UTF-8: Uživatelské jméno pro subversion na
buildd.emdebian.org:
...
Description-eu.UTF-8: buildd.emdebian.org-en erabiliko den subversion
erabiltzaile izena:
...
Description-fi.UTF-8: Koneella buildd.emdebian.org käytettävä
Subversion-tunnus:
...

Template: emsetup/aptagent
...


Deliberately breaking that stanza produces:

Template: emsource/svnusername
Type: string
Description: Subversion login to use on buildd.emdebian.org:
 ... 
 .
 Deliberately compromising the question to break translations

Template: emsetup/aptagent
...

No lintian warning is raised after this act of wanton vandalism. ;-)

$ lintian -Ii ../build-area/libemdebian-tools-perl_1.4.15_all.deb
$ 

lintian (2.1.6)

The lack of a Description-$foo at the start of a line after a
Description: but before the next empty line would indicate the error
with a high degree of certainty. (UTF-8 is by no means a reliable
token, sadly).

A lintian error would also provide a quite useful hook for various
l10n scripts that may exist or will soon be written by myself and/or
Christian Perrier, just by parsing lintian.debian.org. It would provide
very useful data on existing translation support and assist me in the
development of a range of TDeb support code.

An extension like this would complement the existing support for
newer-debconf-templates and no-complete-debconf-translation.

-- System Information:
Debian Release: 5.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages lintian depends on:
ii  binutils2.18.1~cvs20080103-7 The GNU assembler, linker and bina
ii  diffstat1.46-1   produces graph of changes introduc
ii  dpkg-dev1.14.24  Debian package development tools
ii  file4.26-2   Determines file type using magic
ii  gettext 0.17-6   GNU Internationalization utilities
ii  intltool-debian 0.35.0+20060710.1Help i18n of RFC822 compliant conf
ii  libipc-run-perl 0.82-1   Perl module for running processes
ii  libparse-debianchan 1.1.1-2  parse Debian changelogs and output
ii  libtimedate-perl1.1600-9 Time and date functions for Perl
ii  liburi-perl 1.37+dfsg-1  Manipulates and accesses URI strin
ii  man-db  2.5.2-3  on-line manual pager
ii  perl [libdigest-sha 5.10.0-19Larry Wall's Practical Extraction 

lintian recommends no packages.

Versions of packages lintian suggests:
ii  binutils-multiarch  2.18.1~cvs20080103-7 Binary utilities that support mult
ii  libtext-template-pe 1.44-1.2 Text::Template perl module
ii  man-db  2.5.2-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



Bug#512210: lintian: [checks/po-debconf] Extend template check for updated strings

2009-01-18 Thread Neil Williams
On Sun, 18 Jan 2009 10:22:09 -0800
Russ Allbery r...@debian.org wrote:

 Neil Williams codeh...@debian.org writes:
 
  debconf only ever asks the same question once - to be effective, that
  question should be translated the very first time that question is
  offered to the user. Translating it after the user has answered the
  question in English is pointless - at least as far as that user is
  concerned.
 
  So, I wonder if lintian could extend checks/po-debconf to raise an error
  not only if any package contains a completely untranslated set of
  templates but also check if a single question is untranslated even if
  the rest of the templates have one or more translations.
 
 I must be missing something -- why doesn't no-complete-debconf-translation
 catch that?  That's its intention as I understand it; in fact, it's even
 stricter than what you're proposing.  Is it just buggy?

Well that check only works on the source package and only uses msgfmt -
it could probably be improved with a check on the binaries and the
actual templates file(s).

In the original report, I only tested against the .deb. The
no-complete-debconf-translation check is not high enough severity to
show up without -I when checking the source package.

If the binary check is added, the certainty can be raised and also the
severity. With that change, the description could be made more strict:

Info: Even though this package provides debconf translation support,
there are either no translations or none of the translations are
complete. This will mean that users are expected to answer the new
question(s) exclusively in English. You should always call for
translations for any new strings before uploading new debconf
questions because debconf only asks any question once.

I'd like to see severity important but normal would be OK for starters.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/



pgpVCCQa4KB97.pgp
Description: PGP signature


Bug#510190: lintian: missing-dep-for-interpreter confused by unusual layout

2008-12-30 Thread Neil Williams
Package: lintian
Version: 2.1.3
Severity: normal

I'm designing a fairly unusual package which contains the source to
build another package as well as scripts and other files for the main
package. Therefore, /usr/share/foo/ contains a debian/ directory with
debian/rules and postinst files as well as a copyright, control etc.
;-) (The built package is entirely free software but cannot be uploaded
to Debian as it does non-Policy stuff with unrelated packages.) Yes,
embedded stuff can get a little weird at times.

The main package (the outer package) is to be installed on a server
that builds, maintains and updates a repository of packages for
machines running the Grip flavour of Emdebian. In order to work
around bugs as they appear (and during times when such bugs cannot
be fixed, e.g. during release freezes), Grip provides for a helper
package - grip-config - which only exists inside the Grip repository
created by the main package. When grip-config needs to be updated,
the main package containing the source is updated and the admin can
build the grip-config package and update the repository.

Rather than require the debian/ directory for grip-config to be checked
out of Emdebian SVN, I thought I'd add the entire package build metadata
into the server-side package and update the server package when the
helper package needs an update. In practice, the server side package
will need more frequent updates than the helper package anyway.

The server-side package depends on dpkg-dev and lintian complains:

E: emdebian-grip-server: missing-dep-for-interpreter make = make |
build-essential (./usr/share/emdebian-tools/grip-config/debian/rules)
N: 
N:You used an interpreter for a script that is not in an essential
N:package. In most cases, you will need to add a Dependency on the
package
N:that contains the interpreter. If the dependency is already
present,
N:please file a bug against Lintian with the details of your package
so
N:that its database can be updated.
N:
N:In some cases a weaker relationship, such as Suggests or
Recommends,
N:will be more appropriate.
N:
N:Severity: important; Certainty: possible

dpkg-dev depends on make and Recommends build-essential.

I'm expecting to use lndir or similar to create a writeable directory
containing the relevant build files for grip-config, use
dpkg-buildpackage -uc- us and then include the generated .changes file
directly into the repository maintained by emdebian-grip-server and
remove the build directory. This could become a script within
emdebian-grip-server itself in due course.

I appreciate this is an unusual situation, but could dpkg-dev be
accepted by lintian as providing the relevant interpreter for
debian/rules when installed in /usr/share/ ?

-- System Information:
Debian Release: 5.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages lintian depends on:
ii  binutils2.18.1~cvs20080103-7 The GNU assembler, linker and bina
ii  diffstat1.46-1   produces graph of changes introduc
ii  dpkg-dev1.14.24  Debian package development tools
ii  file4.26-2   Determines file type using magic
ii  gettext 0.17-6   GNU Internationalization utilities
ii  intltool-debian 0.35.0+20060710.1Help i18n of RFC822 compliant conf
ii  libipc-run-perl 0.80-2   Perl module for running processes
ii  libparse-debianchan 1.1.1-2  parse Debian changelogs and output
ii  libtimedate-perl1.1600-9 Time and date functions for Perl
ii  liburi-perl 1.37+dfsg-1  Manipulates and accesses URI strin
ii  man-db  2.5.2-3  on-line manual pager
ii  perl [libdigest-sha 5.10.0-18Larry Wall's Practical Extraction 

lintian recommends no packages.

Versions of packages lintian suggests:
ii  binutils-multiarch  2.18.1~cvs20080103-7 Binary utilities that support mult
ii  libtext-template-pe 1.44-1.2 Text::Template perl module
ii  man-db  2.5.2-3  on-line manual pager

-- debconf-show failed



-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#507278: lintian: complains about uninitialized values for severity and certainty

2008-11-29 Thread Neil Williams
clone -1
reassign -1 emdebian-tools
retitle -1 emdebian.desc lintian checks should include certainty values
severity 507278 wishlist
retitle 507278 please check for out-of-sync check files in 
/usr/share/lintian/checks
thanks

On Sat, 29 Nov 2008 18:20:16 +
Adam D. Barratt [EMAIL PROTECTED] wrote:

 On Sat, 2008-11-29 at 18:26 +0100, Neil Williams wrote:
  lintian has started outputting a lot of perl warnings:
  
  Use of uninitialized value $severity in hash element
  at /usr/share/lintian/lib/Tags.pm line 293. Use of uninitialized
  value $certainty in hash element at /usr/share/lintian/lib/Tags.pm
  line 293. (repeated once for each test)
  
  In this particular case, I was running lintian after a build of the
  current version of ipsec-tools in unstable/testing (without
  changes).
 
 Apologies for the amount of information requested, but the warnings
 suggest that something is quite broken, and I can't reproduce them
 locally.
 
 The above sounds like lintian's not reading the tag files
 from /usr/share/lintian/checks/*.desc properly. The number of
 occurrences of Tag:, Severity: and Certainty: in each file
 should match.

Ah. In that case, the problem
is /usr/share/lintian/checks/emdebian.desc

I didn't know that the desc file had to be updated.

 Would it be possible to get hold of a copy of the package(s) you're
 checking? I've just done apt-get source ipsec-tools; pdebuild on an
 amd64 unstable box and lintian 2.1.0 didn't produce any perl warnings
 when run against the .changes, .dsc or .deb.

It would be good if lintian wasn't quite so noisy about such errors,
hence I've cloned this as wishlist for lintian as well as reassigning
to emdebian-tools.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/



pgp0tkI5mLuPN.pgp
Description: PGP signature


Bug#507278: more uninitialized values with lintian --color=auto

2008-11-29 Thread Neil Williams
$ alias | grep lintian
alias lintian='lintian --color=auto'

$ lintian ../ipsec-tools_0.7.1-1.3_amd64.changes
Use of uninitialized value $_ in split at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 121.
Use of uninitialized value in concatenation (.) or string at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 187.
W: ipsec-tools source: debhelper-but-no-misc-depends ipsec-tools
Use of uninitialized value $_ in split at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 121.
Use of uninitialized value in concatenation (.) or string at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 187.
W: ipsec-tools source: debhelper-but-no-misc-depends racoon
Use of uninitialized value $_ in split at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 121.
Use of uninitialized value in concatenation (.) or string at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 187.
W: ipsec-tools source: out-of-date-standards-version 3.7.3 (current is 3.8.0)
Use of uninitialized value $_ in split at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 121.
Use of uninitialized value in concatenation (.) or string at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 187.
W: racoon: non-dev-pkg-with-shlib-symlink usr/lib/libracoon.so.0.0.0 
usr/lib/libracoon.so
Use of uninitialized value $_ in split at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 121.
Use of uninitialized value in concatenation (.) or string at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 187.
W: racoon: package-name-doesnt-match-sonames libracoon0
Use of uninitialized value $_ in split at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 121.
Use of uninitialized value in concatenation (.) or string at 
/usr/share/perl/5.10/Term/ANSIColor.pm line 187.
W: ipsec-tools: package-name-doesnt-match-sonames libipsec0

The errors go away if I avoid the alias using /usr/bin/lintian.



-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/



pgpbH699ZTSI3.pgp
Description: PGP signature


Bug#471263: Generated changes and patch systems

2008-05-28 Thread Neil Williams
Oops, sent to the wrong bug report.

On Wed, 2008-05-28 at 11:45 +0100, Neil Williams wrote:
 On Tue, 2008-05-27 at 18:06 -0700, Russ Allbery wrote:
  Neil Williams [EMAIL PROTECTED] writes:
   On Sun, 2008-05-25 at 08:40 -0700, Russ Allbery wrote:
  
   Lots of other packages do this -- one of mine off the top of my head is
   xml-security-c.
  
   Nope. No mention of aclocal.m4 in debian/rules for that package,
   just /usr/share/misc/config.guess and config.sub.
  
  Uh, it's the same problem.  Surely the generalization is obvious?
 
 It's not quite the same problem because aclocal.m4 is regenerated in the
 clean rule itself because changing it causes ./configure --recheck to
 recreate the (modified) file. So instead of copying it around, it has to
 be deleted - merely because a patch system is in use. Seems crazy to me.
 
   I need to patch configure and configure.ac in this package, that means
   that aclocal.m4 is constantly being changed and reverted. It shouldn't
   matter - it really should not.
  
  Right, so delete it in the clean rule.
 
 OK. It's a bit like collateral damage - need a patch to configure,
 patching causes configure --recheck which modifies aclocal.m4 so delete
 aclocal.m4. Hmmm. I don't like it but I'll do it anyway.
 
   I see no purpose in lintian (or dpkg come to that) testing for changes
   in aclocal.m4 - IMHO it should simply be exempt from this check.
  
  Absolutely not -- you're introducing unexpected changes to the packaging
  diff file, 
 
 Well my point is that the change is entirely expected (because the
 patch modifies a file that is involved in generating the changes) - the
 changes are merely a consequence of the patch. It feels wrong to have to
 add a clean rule for aclocal.m4 as a direct result of patching
 configure.ac when aclocal.m4 was not a problem before the patch. 
 
 Anyway, the problem of the tmpl/* files is far more resistant.
 
   I really don't want to do all that for the tmpl/* files as well - I
   don't see the need, copying dozens of files into foo.safe or
   foo.upstream and then moving them back?
  
   Just delete them then.
  
   ??? That simply does not work. The problem is that running gtk-doc not
   only requires tmpl/*.sgml files to exist but it *then modifies them*!
  
  This is extremely unusual.  Are you *sure* that it does an inplace edit of
  the files during the build process? 
 
 $ ls libgpewidget-0.115.orig/doc/tmpl/ -1
 colordialog.sgml
 color-slider.sgml
 dirbrowser.sgml
 errorbox.sgml
 gpeclockface.sgml
 gpehelp.sgml
 gpeiconlistitem.sgml
 gpe-iconlist.sgml
 gpeiconlistview.sgml
 gpetimesel.sgml
 gpewindowlist.sgml
 gtkdatecombo.sgml
 gtksimplemenu.sgml
 infoprint.sgml
 init.sgml
 libgpewidget-unused.sgml
 picturebutton.sgml
 pixmaps.sgml
 popup_menu.sgml
 popup.sgml
 question.sgml
 smallbox.sgml
 spacing.sgml
 stylus.sgml
 translabel.sgml
 tray.sgml
 windows.sgml
 
 From the build log:
  gtkdoc-mkdb --module=libgpewidget --source-dir=.. --output-format=xml
 --sgml-mode --output-format=xml --tmpl-dir=tmpl
 
 Now running lintian...
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/color-slider.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/colordialog.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/colorrenderer.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/gpeclockface.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/gpedialog.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/gpehelp.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/gtkdatecombo.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/gtksimplemenu.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/libgpewidget-unused.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/link-warning.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/pixmaps.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/smallbox.sgml
 W: libgpewidget source: patch-system-but-direct-changes-in-diff 
 doc/tmpl/spacing.sgml
 Finished running lintian.
 
 13 out of 27 files modified by gtk-doc.
 
 Copy those files back into doc/tmpl/ from the upstream source and they
 are still modified at the next build.
 
 Add a rm -f doc/tmpl/*.sgml to clean:: and the build fails: No rule to
 make doc/tmp/*.sgml
 
 So, yes, --enable-gtkdoc is modifying files included upstream and which
 are essential to the build process.
 
 If I drop --enable-gtkdoc I get different contents in the
 libgpewidget-doc package.
 
   This is almost never what build
  systems do; instead, they generate files from other files using templating
  systems.  They may ship the results of that operation and then redo it
  during the build, in which case you need to delete

Generated files and patch systems

2008-05-25 Thread Neil Williams
 have been changed, hence no
patches.

This, to me, is where the all changes are patches approach falls down.
A patch, IMHO, is a deliberate action - similar to a GnuPG signature on
an email. It should require a conscious act to solve an identifiable
problem - preferably one with a bug report. Changes that result merely
from differences in build environment between upstream and Debian should
not even be in the .diff.gz if at all possible - such changes are, IMHO,
certainly not deliberate actions by the maintainer. Changes that
themselves change independently of the actions of the maintainer cannot
be implemented by the maintainer as patches, imho.

The silent build is available from my repo:
dget -x 
http://www.linux.codehelp.co.uk/packages/pool/main/libg/libgpewidget/libgpewidget_0.116-1.dsc

I won't upload to ftp-master just yet - I do need to do some more tests
to ensure that other GPE packages build and function correctly so that I
don't inadvertently trigger a transition in over 40 packages.
;-)

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: This is a digitally signed message part


Re: lintian for Emdebian

2008-04-06 Thread Neil Williams
On Thu, 2008-04-03 at 16:59 -0700, Russ Allbery wrote:
 Neil Williams [EMAIL PROTECTED] writes:
 
 We should support a global overrides file or directory.  I'd be happy to
 add that functionality, but it does probably require code changes now that
 I think about this some more.

Yes, it would need to either be duplicated into %info under the $file
key of each package or held as a separate reference and checked in
check_overrides() of Tags.pm or simply duplicate the existing code to
read package overrides:
unless ($no_override) {
if (open(O, '', $base/override)) {
while (O) 
which means reading the global override file more than once.

I've played with a global override directory and I've included some
working perl code below. However, there are problems with using this as
a global and I've also included sample code for an alternative method
that does not involve a global directory but actually retains complete
control over the overrides within the specific check script itself. (So
this email is a bit long.) :-)

  However, I'm finding it impossible to override the manpage warnings
  without removing all the manpages checks with -X :
 
  I don't actually need the manpages checks but I would like to not have
  to alias lintian to lintian -X manpages.
 
 Where are you adding the overrides?  Is it possible that the manpage check
 script is happening before your overrides are added?

  Is there a way of implementing '-X' within the check scripts? (It would
  save time if I could drop entire scripts like manpages and replace with
  a simple check that /usr/share/man/ is empty).
 
 You could divert the manpages file, but there isn't any way to skip an
 entire check from within another check (in part because the order in which
 the checks are run is not, I think, fully deterministic, although I could
 be wrong -- I think it runs them in glob order).

Not AFAICT at the readdir stage:
$ perl -le 'opendir DIR, /usr/share/lintian/checks; print join  , readdir 
DIR'

emdebian appears there before manpages.
. .. changelog-file.desc po-debconf.desc emdebian init.d scripts
copyright-file.desc emdebian.desc menu-format description.desc
common_data.pm shared-libs md5sums etcfiles menu-format.desc cruft.desc
debconf files standards-version menus.desc fields conffiles.desc
standards-version.desc manpages.desc conffiles control-file.desc
etcfiles.desc nmu.desc huge-usr-share.desc debconf.desc infofiles
files.desc control-files description fields.desc cruft init.d.desc nmu
debian-readme.desc copyright-file menus infofiles.desc debhelper rules
manpages

No, the problem appears to be only when running the checks due to the
arbitrary way that perl indexes hashes:

# perform checks
for my $check (keys %checks) {
my $ci = $check_info{$check};

Sorting those keys puts manpages behind emdebian but then puts copyright
ahead of emdebian which means that the copyright overrides are missed
instead. :-(

I can hack around it by then making the emdebian checks to be 00emdebian
etc. but that is ugly.

 I think the right approach may be to create a directory
 /usr/share/lintian/overrides/global and load all files in that directory
 in addition to the regular overrides.

Even that needs some flexibility because I currently use
Tags::add_override to selectively override tags dependent on the type of
package so that I don't get too many unused overrides.

My current override set is:

binary-or-shlib-defines-rpath
binary-without-manpage
build-depends-indep-without-arch-indep
changelog-should-mention-nmu
debian-files-list-in-source
debian-rules-missing-required-target
extended-description-is-empty
native-package-with-dash-version
no-copyright-file
no-md5sums-control-file
python-script-but-no-python-dep
source-nmu-has-incorrect-version-number

Of those, some apply only to the source package, some only to binaries,
some only to the Emdebian TDebs that are a completely different issue
(eventually, those will need something like the current lintian support
for udebs).

e.g.

elsif (($info =~ /GNU message catalog/) and ($tdeb  0))
{
Tags::add_override (extended-description-is-empty);
Tags::add_override (no-md5sums-control-file);
Tags::add_override (no-copyright-file);
# need TDeb checks here.
Tags::add_override (debian-rules-missing-required-target *);
# might want to fix this one.
Tags::add_override (debian-files-list-in-source);
Tags::add_override (native-package-with-dash-version);

This code works for me (without the extra flexibility):
Adding to the existing code at:

unless ($no_override) {
if (open(O, '', $base/override)) {
while (O) {
chomp;
next if m,^\s*(\#|\z),o;
s/^\s+//o;
s/\s+$//o;
s/\s+/ /go;
my $override = $_;
$override =~ s/^\Q$pkg\E( \Q$long_type\E

Re: lintian for Emdebian

2008-04-03 Thread Neil Williams
On Tue, 2008-04-01 at 14:09 -0700, Russ Allbery wrote:
 Neil Williams [EMAIL PROTECTED] writes:
 
 My recommendation is to try to tackle this on two fronts:
 
 * For the new checks specific to emdebian, add new check files.  You can
   do this in a completely separate package and just depend on lintian.

OK, that's working, thanks Russ.

Current test code:
http://buildd.emdebian.org/svn/browser/current/host/trunk/emdebian-tools/trunk/checks

   Lintian when run will pick up any files in /usr/share/lintian/checks, so
   you can just drop more checks and *.desc files in there.  You can have
   those checks do nothing if they detect they're not running in the
   emdebian mode somehow.
 
 * For the Lintian checks that are wrong for emdebian, I would just add a
   global override file for emdebian. 

Hmmm, can't find any docs on a global lintian override file - where
would that live and how would it cope with unknown/unbuilt packages?

So far, I'm working with:
Tags::add_override (source-nmu-has-incorrect-version-number);
Tags::add_override (changelog-should-mention-nmu);
Tags::add_override (binary-or-shlib-defines-rpath);
tag binary-or-shlib-omits-rpath, $file $RPATH{$file};
and others

Those all work fine.

However, I'm finding it impossible to override the manpage warnings
without removing all the manpages checks with -X :

Tags::add_override (binary-without-manpage);
Tags::add_override (binary-without-manpage apt-cache);
Tags::add_override (apt, binary-without-manpage apt-cache);
Tags::add_override (binary-without-manpage usr/bin/apt-cache);
Tags::add_override (apt, binary-without-manpage usr/bin/apt-cache);
Tags::add_override (apt, binary-without-manpage ./usr/bin/apt-cache);
Tags::add_override (binary-without-manpage apt-cache);

Still, I get:
W: apt: binary-without-manpage usr/bin/apt-cache
W: apt: binary-without-manpage usr/bin/apt-cdrom
W: apt: binary-without-manpage usr/bin/apt-config
W: apt: binary-without-manpage usr/bin/apt-get
W: apt: binary-without-manpage usr/bin/apt-key
W: apt: binary-without-manpage usr/bin/apt-mark
I: apt: unused-override binary-without-manpage
I: apt: unused-override binary-without-manpage apt-cache
I: apt: unused-override binary-without-manpage usr/bin/apt-cache

I don't actually need the manpages checks but I would like to not have
to alias lintian to lintian -X manpages.

Is there a way of implementing '-X' within the check scripts? (It would
save time if I could drop entire scripts like manpages and replace with
a simple check that /usr/share/man/ is empty). (Have I got the overrides
wrong? I've tried various formats.)

W: apt: binary-without-manpage usr/bin/apt-cache
I: apt: unused-override binary-without-manpage
I: apt: unused-override binary-without-manpage apt-cache
I: apt: unused-override binary-without-manpage usr/bin/apt-cache

Tags::add_override (binary-without-manpage);
Tags::add_override (binary-without-manpage *);
Tags::add_override (binary-without-manpage apt-cache);
Tags::add_override (binary-without-manpage usr/bin/apt-cache);

You can get an example .deb from the Emdebian repository:
http://www.emdebian.org/packages/pool/main/a/apt/

$ lintian -q -C emdebian apt_0.7.9em2_arm.deb 
E: apt: unsupported-interpreter-in-binary usr/bin/apt-mark
E: apt: unsupported-interpreter-in-binary usr/lib/dpkg/methods/apt/setup

(These are errors in the current Emdebian package which I need to fix -
a failure with 'lintian -q -C emdebian' will cause a FTBFS in Emdebian
once this support is implemented in emdebian-tools 1.0.0 - that call
could easily be 'lintian -q -X manpages -C emdebian' but I'd like to
know if I've done something wrong in my manpage overrides.)

$ lintian -I apt_0.7.9em2_arm.deb 
W: apt: binary-without-manpage usr/bin/apt-cache
W: apt: binary-without-manpage usr/bin/apt-cdrom
W: apt: binary-without-manpage usr/bin/apt-config
W: apt: binary-without-manpage usr/bin/apt-get
W: apt: binary-without-manpage usr/bin/apt-key
W: apt: binary-without-manpage usr/bin/apt-mark
E: apt: unsupported-interpreter-in-binary usr/bin/apt-mark
E: apt: unsupported-interpreter-in-binary usr/lib/dpkg/methods/apt/setup
W: apt: package-name-doesnt-match-sonames libapt-pkg-libc6.6-6-4.6
I: apt: unused-override binary-or-shlib-defines-rpath
I: apt: unused-override binary-without-manpage
I: apt: unused-override build-depends-indep-without-arch-indep
N: 2 tags overridden (2 errors)


  If you need additional Lintian
   support for override files that are more overridey than normal
   (suppressing tags even with --show-overrides, for example) or are
   selectively loaded, we can try to work out generic changes to the driver
   scripts for this.

Thanks, I'll work through the current package set and build up a list of
lintian messages and overrides.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: This is a digitally signed message part


lintian for Emdebian

2008-04-01 Thread Neil Williams
I've been looking over the lintian source code with a view to
implementing some form of lintian support for crossbuilt packages in
Emdebian.

Common differences between Emdebian packages and standard Debian policy
include:

1. Removal of documentation, even those files mandated by Debian policy
like manpages, leading to empty virtual packages and empty (or entirely
missing) -doc packages. /usr/share/doc should be almost empty.
2. Architecture-checks on all files in ./*/?bin and ./*/lib to ensure
that the build has completed successfully without the native compiler
being called accidentally (quite common) or due to a patch failure.
3. Removal of all /usr/share/locale/ content unless the package is an
Emdebian TDeb.
4. Complete ban on the use of perl in maintainer scripts, including the
use of any command that is implemented in perl like update-alternatives,
until such time as Emdebian has a C replacement.
5. Complete ban on trying to process any file in a maintainer script
that has been removed for Emdebian (like install-info).
6. Checks on Emdebian TDebs to ensure the presence of the POT file in
the source, the presence of only .mo files in the package and a ban on
empty TDeb packages.
7. No Essential tags in debian/control, ever.
8. No unsupported interpreters (python etc.) and no expectation of
running /bin/bash - all /bin/sh only (actually must be able to use
busybox dash but I'll deal with that on a package-specific basis via the
BTS.)
9. Mandatory use of RPATH - any package that has removed RPATH for
Debian will find it exists again after a cross build and this is
essential. A lack of an RPATH may indicate a crossbuild failure.
10. No attempts to use network access during package configuration -
this one is harder but it is important because a lot of embedded devices
will have no possible network connection during installation - serial
yes, network, no. (Installation media == USB keys or SD cards.)

Those are just the top 10. :-)

There are probably another 25 that I can think of.

Now I'm quite familiar with Perl (all the emdebian build tools are in
Perl), I could come up with compatible Perl modules along the lines of
Lintian::binaries::Emdebian or Lintian::Cross but I want to be able to
fold these checks into the standard lintian checks so that I don't just
create a fork that will lag behind lintian and eventually be too
incompatible to maintain. (We did that with dpkg-dev and dpkg-cross and
it took nearly 10 years to get our changes back into dpkg-dev.)

So I'm looking for ideas. I want to be able to selectively disable
checks *within* lintian packages - e.g. the RPATH issue - whilst
retaining the other checks in that package, modifying the importance of
some and adding new ones. Simply disabling the entire set of checks is
not worthwhile - I'd have to maintain 90% of the original check file as
a fork.

I want to be able to do this largely independently of lintian itself so
that I don't have to bug you for changes in lintian every time Emdebian
makes a new Policy decision. (Emdebian Policy is extremely fluid at this
time but will be mostly compatible with Debian Policy within the
constraints of an embedded device.)

Within the above 10 items, some are even more subtle because if, for
example, someone uses Emdebian patches and Emdebian build tools to
prepare an i386 package on i386 (e.g. for Eeee PC etc.) then the RPATH
issue may disappear and the check would need to revert to Debian
behaviour. Necessarily, the actual code running these tests should
remain in the Emdebian build tools packages (emdebian-tools) so that
these can be maintained without expecting lintian maintainers to test
with cross builds.

A basic subset of these checks is already implemented in the
emdebian-tools build script but wider and more subtle support is
necessary, along with proper support for the rest of the lintian checks.

It may also be a good idea if Emdebian can modify the importance of
various existing lintian checks so that we can downplay errors and
warnings that really only matter within the wider Debian context.

I don't want to spend too much time discussing the actual checks, I
described the 10 above to give some flavour of the extent of the changes
and the required granularity of the changes. 

I'm willing to do the work, all I need from you is some direction and
possible means of creating a suitable interface or wrapper. I'm quite
happy writing 'emlintian' if I know how it could remain a wrapper
without becoming a fork.

How could this be achieved?

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: This is a digitally signed message part


Bug#452316: Packages with empty directories

2007-11-21 Thread Neil Williams
Daniel Schepler wrote:
 On Tuesday 20 November 2007 11:20:17 pm Michael Biebl wrote:
 Imho adding a lintian check for empty /usr/bin, /usr/sbin, /usr/lib and
 /usr/include directories (as created by dh-make) would be a good start.
 
 I wrote a lintian check implementing the conservative approach, and submitted 
 a patch as bug #452316.  It lists empty directories matching directories from 
 base-files, as well as any empty subdirectories of
 /usr/include, /usr/share/man, and some others where they clearly make no 
 sense.

The only problem with the patch is that /usr/lib/perl5/ is often
included just by creating a perl package. I've tried to get rid of it
but it *is* created during 'make install' by use ExtUtils::MakeMaker;
but it is not necessarily used by package files. Another problem is that
the creation of the directory often doesn't show up in the build log - I
can force it by running make install without sudo or a prefix:

Warning: You do not have permissions to install into
/usr/local/lib/perl/5.8.8 at /usr/share/perl/5.8/ExtUtils/Install.pm
line 114.
mkdir /usr/local/share/perl/5.8.8/XML: Permission denied at
/usr/share/perl/5.8/ExtUtils/Install.pm line 176

It seems that ExtUtils::MakeMaker insists on using both /usr/lib/perl5
and /usr/share/perl5 whether the module itself uses them or not.

Maybe someone from the Debian Perl group can show me where I'm going
wrong or maybe CDBS can check for empty directories but everytime I
remove debian/tmp/usr/lib/perl5, it gets recreated, despite not having
any mention of it in the package files.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: OpenPGP digital signature


Bug#407528: typo

2007-05-28 Thread Neil Williams
 Maybe this very old bug should be closed as unfeasible?
 

s/very old//

Hmm, it must be getting late - I've been browsing some old lintian bugs
and thought this one was a lot older than it really is. 

-- 

Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/


pgpxI1JGBc37K.pgp
Description: PGP signature


Bug#406731: reopen: bug still exists in source: check

2007-04-10 Thread Neil Williams
Package: lintian
Version: 1.23.28

--- Please enter the report below this line. ---

For some reason, this bug has not actually gone - the source check is
still complaining:

lintian -o /path/build-area/emdebian-tools_0.1.5_amd64.changes
W: emdebian-tools source: uploader-not-full-name Wookey

Once debian/source.lintian-overrides is removed svn-buildpackage with
--svn-lintian gives:

Binary
package: /path/trunk/emdebian-tools/build-area/emdebian-tools_0.2.0_all.deb
lintian /path/build-area/emdebian-tools_0.2.0_powerpc.changes
W: emdebian-tools source: uploader-not-full-name Wookey

--- System information. ---
Architecture: powerpc
Kernel:   Linux 2.6.18-4-powerpc

Debian Release: lenny/sid
  500 unstablewww.linux.codehelp.co.uk
  500 unstablewww.emdebian.org
  500 unstablemirror.ox.ac.uk
  500 unstableftp.uk.debian.org
1 experimentalftp.uk.debian.org

--- Package information. ---
Depends   (Version) | Installed
===-+-==
perl| 5.8.8-7
libdigest-md5-perl  |
 OR perl   ( 5.8) | 5.8.8-7
dpkg-dev   (= 1.13.17) | 1.13.25
file| 4.20-4
binutils| 2.17-3
diffstat(= 1.27-1) | 1.43-2
man-db(= 2.3.20-1) | 2.4.4-2
gettext   (= 0.16) | 0.16.1-1
intltool-debian | 0.35.0+20060710.1
libparse-debianchangelog-perl  (= 0.6) | 1.0-1

--

Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/


pgp5WkVV5SXii.pgp
Description: PGP signature


Bug#406731: lintian: please consider removing maintainer-not-full-name check

2007-01-13 Thread Neil Williams
Package: lintian
Version: 1.23.27
Severity: wishlist

The only packages that generate this warning are packages by a DD who
has changed his name by deed poll to just one word: wookey. It seems
unfair to have a warning that only he has to override. :-)

I came across this when checking my own package that Wookey will
co-maintain: emdebian-tools, currently at ITP stage. I'd rather not have
to use a lintian override in perpetuity.

http://lintian.debian.org/reports/Tmaintainer-not-full-name.html

http://www.chaos.org.uk/~wookey/name.html

-- System Information:
Debian Release: 4.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-2-amd64-k8
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)

Versions of packages lintian depends on:
ii  binutils   2.17-3The GNU assembler, linker and bina
ii  diffstat   1.43-2produces graph of changes introduc
ii  dpkg-dev   1.13.25   package building tools for Debian
ii  file   4.17-5Determines file type using magic
ii  gettext0.16.1-1  GNU Internationalization utilities
ii  intltool-debian0.35.0+20060710.1 Help i18n of RFC822 compliant conf
ii  libparse-debianchangel 1.0-1 parse Debian changelogs and output
ii  man-db 2.4.3-5   The on-line manual pager
ii  perl [libdigest-md5-pe 5.8.8-7   Larry Wall's Practical Extraction 

lintian recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#387166: lintian: Failed to identify Priorities error: Policy 2.5.

2006-09-12 Thread Neil Williams
Package: lintian
Version: 1.23.24
Severity: important

A recent upload of QOF included two new packages. The main library is
dependent on at least one of these new packages being installed and is
Priority: optional. However, I inadvertently put the two new packages as
Priority: extra and lintian did NOT complain. When the upload was made,
the two new binaries raised a Debcheck error:

Binary Package: libqof1 (Version: 0.7.1-1)

Priority

According to Policy Section 2.5: Priorities packages MUST NOT depend on
packages with lower priority values (excluding build-time dependencies).
In order to ensure this, the priorities of one or more packages must be
adjusted.

Package is optional and has a Depends on libqof-backend-qsf0 (within
libqof-backend-qsf0 | libqof-backend-sqlite0) which is extra on mips.
etc.

I have since built and my sponsor has uploaded 0.7.1-2 which corrects
the settings in the debian/control file for qof before the Debcheck
becomes an RC bug. Despite the Debcheck page being created, the online
lintian page indicates no lintian errors in 0.7.1-1.

Lintian should make sure that errors like this are caught in future
because 2.5 is a 'must' in Policy.


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-1-amd64-k8
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)

Versions of packages lintian depends on:
ii  binutils 2.17-2  The GNU assembler, linker and bina
ii  diffstat 1.43-1  produces graph of changes introduc
ii  dpkg-dev 1.13.22 package building tools for Debian
ii  file 4.17-3  Determines file type using magic
ii  gettext  0.15-2  GNU Internationalization utilities
ii  intltool-debian  0.35.0+20060710 Help i18n of RFC822 compliant conf
ii  libparse-debianchangelog 1.0-1   parse Debian changelogs and output
ii  man-db   2.4.3-3 The on-line manual pager
ii  perl [libdigest-md5-perl 5.8.8-6.1   Larry Wall's Practical Extraction 

lintian recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]