Niels Thykier: Updates in the Lintian World
Documentation!
That is what the next version of Lintian will have. In 2.5.1, Lintian
had support for adding options in the lintianrc. Unfortunately, the
user had to guess the syntax, which makes the feature less useful.
With the next release, the manpage and the example config file[1]
will contain documentation and examples. The User Manual[2] also saw some improvements. Particularly, it will
mention that lintian can process a .changes file and that it does
cross-package checks. Of course, it also documents the format of the
new Vendor Profiles. Though even with these improvements, the current
documentation still leaves much to be wanted. The last unpack script (
was replaced by a smarter version of
that Lintian can now schedule
collections (namely
good time to upgrade our
multi-tarball source packages. Previously Lintian only extracted the
index from the base tarball. The
extracted fields from the control file (in the .deb, etc.) into a
directory. Each field became a file and the value of the field would
be written in the field. Today, the collection basically looks like
this:
upgrade to fetch these fields itself. This change should remove some
unnecessary file I/O in a normal run[3]. If you have a friend with his/her own little home-grown Lintian check
(or collection)[4], they will have to update it to A) not depend on
depend on index for source packages if it uses the index information.
For the latter,
index. Lintian has also seen a lot of decrufting in the 2.5.2 development
cycle. The new test suite now features skeletons ( standard base
environments ) and template support for all package test suites[5]. This means it takes a lot less of writing (or copy/waste) to generate
a simple specialized test in the low-level test suites. As a part
of cleaning up the test-suites, I got to run:
is among my favorite ones in the 2.5.2 development cycle. Finally, if you are one of the few that have ever used the
be deprecated in 2.5.2 and replaced by
old option had some specialized format, whereas the new option parses
the file (or
more
the packages-file parser from lintian 2.5.1:
in every package (the fields were cached, once they were read). Not
to mention a directory listing and having to remove the files again
later. [4] Of course, you do not have such a thing Because we all know
that no one (except this not too close friend of yours) messes with
Internal APIs of other projects [5] The exception being that the changes suite does not have a
standard base environment, since it would be completely unused.
had support for adding options in the lintianrc. Unfortunately, the
user had to guess the syntax, which makes the feature less useful.
With the next release, the manpage and the example config file[1]
will contain documentation and examples. The User Manual[2] also saw some improvements. Particularly, it will
mention that lintian can process a .changes file and that it does
cross-package checks. Of course, it also documents the format of the
new Vendor Profiles. Though even with these improvements, the current
documentation still leaves much to be wanted. The last unpack script (
unpack-srcpkg-l1) was finally removed andwas replaced by a smarter version of
index collection. This meansthat Lintian can now schedule
index in parallel with a few othercollections (namely
unpacked, which is the current bottleneck).
The speed improvement is probably not noticeable, but it was also agood time to upgrade our
index collection to properly handlemulti-tarball source packages. Previously Lintian only extracted the
index from the base tarball. The
fields collection also saw some attention. Previously itextracted fields from the control file (in the .deb, etc.) into a
directory. Each field became a file and the value of the field would
be written in the field. Today, the collection basically looks like
this:
[...]
if (-d 'fields')
system('rm', '-rf', 'fields') == 0
or die 'Could not remove old fields directory';
[...]
It has been deprecated the minute Lintian::Collect API saw a littleupgrade to fetch these fields itself. This change should remove some
unnecessary file I/O in a normal run[3]. If you have a friend with his/her own little home-grown Lintian check
(or collection)[4], they will have to update it to A) not depend on
fields, B) use the Lintian::Collect API for accessing fields and C)depend on index for source packages if it uses the index information.
For the latter,
Lintian::Collect has grown support for source packageindex. Lintian has also seen a lot of decrufting in the 2.5.2 development
cycle. The new test suite now features skeletons ( standard base
environments ) and template support for all package test suites[5]. This means it takes a lot less of writing (or copy/waste) to generate
a simple specialized test in the low-level test suites. As a part
of cleaning up the test-suites, I got to run:
$ git rm t/ source,debs /*/copyright
without breaking a single test. I have to admit that commit 8584996is among my favorite ones in the 2.5.2 development cycle. Finally, if you are one of the few that have ever used the
--packages-file option, then I am pleased to inform you that it willbe deprecated in 2.5.2 and replaced by
--packages-from-file. Theold option had some specialized format, whereas the new option parses
the file (or
stdin) as one package per line . The latter being farmore
"find -name '*.deb' "-friendly.
In case you are wondering why --packages-file is deprecated, here isthe packages-file parser from lintian 2.5.1:
while (my $line = <$pkgin>)
chomp($line);
my (undef, undef, undef, $file) = split(/\s+/, $line, 4);
$pool->add_file($file);
-
[1] Installed as /etc/lintianrc
[2] Installed as /usr/share/doc/lintian/lintian. html/,txt.gz
[3] Namely, 2 opens + 2 closes + 1 read and one write for each fieldin every package (the fields were cached, once they were read). Not
to mention a directory listing and having to remove the files again
later. [4] Of course, you do not have such a thing Because we all know
that no one (except this not too close friend of yours) messes with
Internal APIs of other projects [5] The exception being that the changes suite does not have a
standard base environment, since it would be completely unused.
Wondering what is going on with the port of Debian to the Minix 3 microkernal? Here's an update.
dpkg Ported
Well, the big news as I mentioned in

The construction, deployment, and use of software involves a number of roles.
I do not have an exhaustive list, but I have a couple in my list that
seem to be surprising to some developers.
In the traditional Unix (mainframe) model, there are three roles:
FreedomBox activities at Debconf11
I spent the last two weeks of July 2011 in Banja Luka. The occasion was the
annual
This month passed by very quickly since I attended both the 
Boy, the last three months have been very eventful, developmentally.
First off, about 2 weeks after she turned 1, Zoe started walking in earnest.
Within about 2 weeks of that there was no stopping her. It's funny to think
she's only been walking for under 3 months and yet she's very stable on her
feet.
Secondly, she developed a mild egg allergy. Sarah was giving her some
scrambled eggs (one egg's worth) for lunch one day, and she mixed in some
cream cheese, and Zoe absolutely scoffed it all down, so she scrambled
another egg and she scoffed that down too. She then 
Due to the midterm evaluation, this report will cover a span of 4 weeks. As a result, it will be quite a bit longer than my previous reports.
One of the first things I did after my last report was create a FAQ for the project. At first, the FAQ was a plain text file living only in the git repository. Then, it moved to being maintained on the Debian wiki with a cronjob pulling it into my local repository for me to commit and push. Finally, the cronjob moved to wagner. The FAQ is not actually committed to the git repository, but it is available in the
As 





Fellow Debian Developer
In the past week, I ran a lot of benchmarks using a
matplotlib allows to plot subfigures. We create 4 subfigures sharing
the same X axis (which the number of seconds elapsed since the
beginning of the benchmark). We save the result to
Most functions of matplotlib are exposed as a method of the object
they refer to and as a global function. In the latest case, the
function is applied to the latest created figure or plotting area. For
example,
The original data is a green dotted line while the smoothed one is a
green thick line. What about the three annotations? matplotlib
allows to put annotations on a figure. Here is how this is done: