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

Another Bits draft



Hi,

I am suggesting we post another "Bits from the Lintian Maintainers" and
I have attached a draft of how it could look.  Feedback welcome.  :)

Also, in about 12 hours from now I will be mostly unavailable for the
rest of the week.  So I will probably not answer to any feedback after
that.  Obviously I will not be around to post it before Monday (at the
earliest), but feel free to do it before I return.

~Niels

Topics:
  - Override comments <OC>
  - Command-line/frontend changes <CLI>
  - New lab layout <LAB>
  - Output format changes <OUT>
  - GZipped lintian log <GZLL>
  - Help wanted <HELP>



Override comments <OC>
======================

Since 2.5.3, Lintian attempts to associate comments in the overrides
file to the relevant override(s).  These comments are then printed
next the override when --show-overrides is used.  As example of how
this looks:

$ lintian --show-overrides lintian_2.5.4_amd64.changes 
N: We build-depend on cdbs for the test suite
O: lintian source: unused-build-dependency-on-cdbs
N: We build-depend on quilt for the test suite
O: lintian source: quilt-build-dep-but-no-series-file
N: We don't have a patch system for lintian itself
O: lintian source: patch-system-but-no-source-readme

The actual output format is not set in stone and may be changed in the
future.  Particularly, we are looking at making these comments directly
available on the lintian.d.o pages (#512901).


Please refer to the Lintian Manual [LM#2.4.2] for more information.

[LM#2.4.2] http://lintian.debian.org/manual/section-2.4.html#section-2.4.2



Command-line/frontend changes <CLI>
===================================

In the last two uploads we have once again changed the arguments
accepted by Lintian.  The following arguments/frontend features
have been removed:

  * --arch, --archivedir, --area, --dist and --section

    These options (and the related LINTIAN_* variables) were used in
    archive-wide checks.  However, this functionality has slowly
    migrated to the semi-public "harness" frontend.

    Removed in 2.5.4

 * "dist" search is no longer possible.

    The feature could be used for archive-wide checks to schedule
    specific packages in the archive.  However, these days
    archive-wide checks tend to be done by cron'ing the semi-public
    "harness" frontend.

    Removed in 2.5.4


The following arguments/features have changed semantics:

  * --unpack-info

    Explicitly requested collections are no longer auto-removed.

    Changed in 2.5.4

  * --tags, --tags-from-file

    Tags requested explicitly with these options are now always
    visible.

    Changed in 2.5.3

  * --quiet and --verbose

    If passed together, the last of these options to appear takes
    effect (except if --debug is also passed).  Previously both could
    be active at the same time[1].

    Changed in 2.5.3

  * "lab" search has new (backwards compatible) format

    Due to the lab layout changes a package name and type are no
    longer enough to identify the packages.  The new format is:

    [type:]name[/version[/arch]]

    Where [val] denotes an optional value.  These are documented in
    the "LAB QUERY" section of the manpage.

    Changed in 2.5.3

  * --packages-from-file

    Lab queries are now accepted in the file.  These must be prefixed
    with "!query:" to be considered a query.

    Changed in 2.5.3

Please refer to the Lintian manpage for more details of the new/changed
options and semantics.

[1] In case you were wondering: --quiet would only suppress the
summary message that appears if there were overrides.


New lab layout <LAB>
====================

The Lintian Lab layout has changed to accomodate the ever growing
number of packages in Debian.  Currently unstable has over 35 000
binary packages.  With the old layout this makes over 3 000 packages
untestable on an ext3 file system.  The new layout solves this by
mimicing the mirror layout.

This change breaks existing static labs and currently no migration
tools are available.  Though most users are not using static labs, so
this is unlikely to affect anyone but lintian.d.o-like instances.

Lintian has also optimized its lab usage by no longer using empty
files to track unpacking state.  Instead it stores the collection
states in the status file.  This reduces the amount of empty
files in the lab with up 17 files per entry.


As a side-effect of the layout changes, Lintian now supports storing
multiple variants of the same package (i.e. different version or/and
architecture) in the Lab at the same time.


Output format changes <OUT>
===========================

With 2.5.4 there are two changes in the output format.

First off, the "name" of a ".changes" is now equal to the source
package.  Previously it was the basename (without extension) of the
filename.

For archive-wide lintian runs, Lintian will include more information
about the tag.  Tools that parse the lintian.log from lintian.d.o
(and similar) will need to be updated to accept this.

The old format is:

 C: pkg type*: tag extra*

The new format (for archive-wide logs) is:

 C: pkg type (version) [arch]: tag extra*

Note that the version *can* include a colon (an epoch).  The arch
field can contain spaces when processing changes files (or in very
broken packages).

(The * denotes an "optional" parameter)

Two tools/parses that known not to be ready are "lintian-info" and UDD
(#647917).

You can test this format by passing the (unsupported, unofficial and
undocumented) magic parameter:

  --exp-output=format=fullewi 

(NB: If you get the argument for --exp-output wrong it is silently
ignored).

GZipped lintian log <GZLL>
==========================

lintian.d.o now provides a gzipped version of the results of the
archive-wide log.  The gzipped log is only a tenth of the original
size (approx. 30MB vs 3.0MB) and this is including all of the
override comments.  :)

Help wanted <HELP>
==================

More hands are always welcome!  Lintian is a nice project to work on when 
one only has an hour or two, since a lot of the requested checks don't 
require very much code.  Work on the test suite is also much appreciated
and doesn't require a large time investment.  If you want to help out,
take a look at the wiki page at:

    http://wiki.debian.org/Teams/Lintian

We're also looking for someone who would like to work on updating the 
Lintian manual.  There's quite a bit about Lintian that isn't currently 
documented.  If you're interested, let us know.

If you have any ideas for new tests that would be helpful to you, please
do submit them as wishlist bugs against the lintian package.  It's nice to
have a large collection of ideas known to be useful to someone to pick
from when one has a few hours to work on Lintian.


Reply to: