Te agregué como amigo en Faceb ook

2010-03-25 Thread Fernandito Caceres
Hola, Lintian-maint:

He creado un perfil en Facebook donde puedo publicar mis fotos, vídeos y 
eventos, y quiero agregarte a mis amigos para que puedas verlo. Para ello, 
necesitas registrarte en Facebook y, después, podrás crear también tu propio 
perfil.

Gracias,
Fernandito

Para registrarte en Facebook, sigue este enlace:
http://www.facebook.com/p.php?i=10626412795&k=Z6E3Y5QYSZ6EXKAJPA2YYRRTT3IB42VA3TAWA&r



Already have an account? Add this email address to your account 
http://www.facebook.com/n/?merge_accounts.php&e=lintian-maint%40debian.org&c=f0599333e3d9f1533400a63153d4fde2.Fernandito
 Caceres ha invitado a lintian-ma...@debian.org a unirse a Facebook. Si no 
quieres recibir este tipo de mensajes de Facebook, haz clic en el enlace 
siguiente para borrar tu nombre de la lista de personas suscritas.
http://www.facebook.com/o.php?k=7bac5b&u=1345863779&mid=21642d4G50384063G0G8
Las oficinas de Facebook están en 1601 S. California Ave., Palo Alto, CA 94304.



Te agregué como amigo en Faceb ook

2010-03-25 Thread Agustin Zafiro
Hola, Lintian-maint:

He creado un perfil en Facebook donde puedo publicar mis fotos, vídeos y 
eventos, y quiero agregarte a mis amigos para que puedas verlo. Para ello, 
necesitas registrarte en Facebook y, después, podrás crear también tu propio 
perfil.

Gracias,
Agustin

Para registrarte en Facebook, sigue este enlace:
http://www.facebook.com/p.php?i=10460625490&k=Z6E3Y5S4UX3B2KDJPA2YYRRTT3IB42VAS3HX1&r



Already have an account? Add this email address to your account 
http://www.facebook.com/n/?merge_accounts.php&e=lintian-maint%40debian.org&c=f0599333e3d9f1533400a63153d4fde2.Agustin
 Zafiro ha invitado a lintian-ma...@debian.org a unirse a Facebook. Si no 
quieres recibir este tipo de mensajes de Facebook, haz clic en el enlace 
siguiente para borrar tu nombre de la lista de personas suscritas.
http://www.facebook.com/o.php?k=7bac5b&u=1345863779&mid=2163da7G50384063G0G8
Las oficinas de Facebook están en 1601 S. California Ave., Palo Alto, CA 94304.



Te agregué como amigo en Faceb ook

2010-03-25 Thread El Negro Dela Cacerola
Hola, Lintian-maint:

He creado un perfil en Facebook donde puedo publicar mis fotos, vídeos y 
eventos, y quiero agregarte a mis amigos para que puedas verlo. Para ello, 
necesitas registrarte en Facebook y, después, podrás crear también tu propio 
perfil.

Gracias,
El

Para registrarte en Facebook, sigue este enlace:
http://www.facebook.com/p.php?i=10842468788&k=Z6E3Y566WZXOXJLJPA2YYRRTT3IB42VAS3BQJ&r



Already have an account? Add this email address to your account 
http://www.facebook.com/n/?merge_accounts.php&e=lintian-maint%40debian.org&c=f0599333e3d9f1533400a63153d4fde2.El
 Negro Dela Cacerola ha invitado a lintian-ma...@debian.org a unirse a 
Facebook. Si no quieres recibir este tipo de mensajes de Facebook, haz clic en 
el enlace siguiente para borrar tu nombre de la lista de personas suscritas.
http://www.facebook.com/o.php?k=7bac5b&u=1345863779&mid=2163afcG50384063G0G8
Las oficinas de Facebook están en 1601 S. California Ave., Palo Alto, CA 94304.



Te agregué como amigo en Faceb ook

2010-03-25 Thread El Merluza
Hola, Lintian-maint:

He creado un perfil en Facebook donde puedo publicar mis fotos, vídeos y 
eventos, y quiero agregarte a mis amigos para que puedas verlo. Para ello, 
necesitas registrarte en Facebook y, después, podrás crear también tu propio 
perfil.

Gracias,
El

Para registrarte en Facebook, sigue este enlace:
http://www.facebook.com/p.php?i=10656061622&k=Z6E3Y5Q5S5XFY1FJPA2YYRRTT3IB42VASRIYG&r



Already have an account? Add this email address to your account 
http://www.facebook.com/n/?merge_accounts.php&e=lintian-maint%40debian.org&c=f0599333e3d9f1533400a63153d4fde2.El
 Merluza ha invitado a lintian-ma...@debian.org a unirse a Facebook. Si no 
quieres recibir este tipo de mensajes de Facebook, haz clic en el enlace 
siguiente para borrar tu nombre de la lista de personas suscritas.
http://www.facebook.com/o.php?k=7bac5b&u=1345863779&mid=2163631G50384063G0G8
Las oficinas de Facebook están en 1601 S. California Ave., Palo Alto, CA 94304.



[SCM] Debian package checker branch, master, updated. 2.3.4-55-g7522eca

2010-03-25 Thread Russ Allbery
The following commit has been merged in the master branch:
commit 7522eca620dba8f2635524172eb5d3171ca8bd7e
Author: Russ Allbery 
Date:   Thu Mar 25 18:46:12 2010 -0700

Add a period to the missing-debian-source-format description

Thanks, gregor herrmann.

diff --git a/checks/debian-source-dir.desc b/checks/debian-source-dir.desc
index b767b64..2dcfb25 100644
--- a/checks/debian-source-dir.desc
+++ b/checks/debian-source-dir.desc
@@ -20,7 +20,7 @@ Info: To allow for possible future changes in the default 
source format,
  "1.0" in it to be explicit about the source package version.  If you have
  problems with the 3.0 format, the dpkg maintainers are interested in
  hearing, at debian-d...@lists.debian.org, the (technical) reasons why the
- new formats do not suit you
+ new formats do not suit you.
 Ref: dpkg-source(1), http://wiki.debian.org/Projects/DebSrc3.0
 
 Tag: unknown-source-format

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuyd9-0006va...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-54-g411de9c

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit 411de9ccbe6d32b20a2f15a046b7391885235ea9
Author: Raphael Geissert 
Date:   Thu Mar 25 18:10:16 2010 -0600

Remove one TODO item

diff --git a/private/TODO b/private/TODO
index 1115d60..2b67325 100644
--- a/private/TODO
+++ b/private/TODO
@@ -32,9 +32,6 @@ checks:
 
 collection:
 
-- [Raphael Geissert] Run collect scripts in order based on their
-  dependencies rather than using the Order key in the *.desc.
-
 - Collect desktop files so that checks/menu-format doesn't have to walk
   the file index and so that we can do interesting checks on desktop files
   from inside the Lintian lab.

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuxdd-qx...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-53-g1fcd92e

2010-03-25 Thread Russ Allbery
The following commit has been merged in the master branch:
commit 1fcd92e31a1c384eea2a6992e9aac9f62065d497
Author: Russ Allbery 
Date:   Thu Mar 25 17:27:39 2010 -0700

Another missing-debian-source-format tweak

diff --git a/checks/debian-source-dir.desc b/checks/debian-source-dir.desc
index 2191421..b767b64 100644
--- a/checks/debian-source-dir.desc
+++ b/checks/debian-source-dir.desc
@@ -12,8 +12,8 @@ Info: To allow for possible future changes in the default 
source format,
  explicitly selecting a source format by creating
  debian/source/format is recommended.
  .
- If you don't have a good reason to stick with the old format, please
- consider switching to "3.0 (quilt)" (for packages with a separate
+ If you don't have a reason to stay with the old format for this package,
+ please consider switching to "3.0 (quilt)" (for packages with a separate
  upstream tarball) or to "3.0 (native)" (for Debian native packages).
  .
  If you wish to keep using the old format, please create that file and put

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuxqw-0007hb...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-52-ga618573

2010-03-25 Thread Russ Allbery
The following commit has been merged in the master branch:
commit a61857305e8404dfb1a4a32e9f569eac12c2aeb2
Author: Russ Allbery 
Date:   Thu Mar 25 17:22:24 2010 -0700

Tone down missing-debian-source-format

* checks/debian-source-dir.desc:
  + [RA] Downgrade missing-debian-source-format to wishlist and tone
down the long description a bit.

diff --git a/checks/debian-source-dir.desc b/checks/debian-source-dir.desc
index 8fafee4..2191421 100644
--- a/checks/debian-source-dir.desc
+++ b/checks/debian-source-dir.desc
@@ -6,20 +6,21 @@ Info: This script looks for mistakes in debian/source/* files.
 Needs-Info: debfiles
 
 Tag: missing-debian-source-format
-Severity: normal
+Severity: wishlist
 Certainty: certain
 Info: To allow for possible future changes in the default source format,
  explicitly selecting a source format by creating
  debian/source/format is recommended.
  .
- If you don't have a good reason to stick with the old format, you should
- switch to "3.0 (quilt)" (for packages with a separate upstream tarball)
- or to "3.0 (native)" (for Debian native packages).
+ If you don't have a good reason to stick with the old format, please
+ consider switching to "3.0 (quilt)" (for packages with a separate
+ upstream tarball) or to "3.0 (native)" (for Debian native packages).
  .
- If you plan to keep using the old format, you should still create that
- file and put "1.0" in it. In that case, you are invited to get in touch
- with debian-d...@lists.debian.org to discuss the (technical) reasons why
- the new formats do not suit you.
+ If you wish to keep using the old format, please create that file and put
+ "1.0" in it to be explicit about the source package version.  If you have
+ problems with the 3.0 format, the dpkg maintainers are interested in
+ hearing, at debian-d...@lists.debian.org, the (technical) reasons why the
+ new formats do not suit you
 Ref: dpkg-source(1), http://wiki.debian.org/Projects/DebSrc3.0
 
 Tag: unknown-source-format
diff --git a/debian/changelog b/debian/changelog
index 4f4604b..88477a0 100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,9 @@ lintian (2.4.0) UNRELEASED; urgency=low
 + [ADB] New check script for .changes file tests
   * checks/deb-format.desc:
 + [RG] deb-format needs changelog-file.
+  * checks/debian-source-dir.desc:
++ [RA] Downgrade missing-debian-source-format to wishlist and tone
+  down the long description a bit.
   * checks/fields:
 + [RA] Add an exception for diffutils for depending on an essential
   package without a version, since diff was renamed to diffutils and
diff --git a/t/tests/debian-source-dir-general/tags 
b/t/tests/debian-source-dir-general/tags
index ce61b85..9c16f21 100644
--- a/t/tests/debian-source-dir-general/tags
+++ b/t/tests/debian-source-dir-general/tags
@@ -1,2 +1,2 @@
 E: debian-source-dir-general source: unknown-file-in-debian-source formt
-W: debian-source-dir-general source: missing-debian-source-format
+I: debian-source-dir-general source: missing-debian-source-format
diff --git a/testset/tags.binary b/testset/tags.binary
index 78f8a81..f35d213 100644
--- a/testset/tags.binary
+++ b/testset/tags.binary
@@ -49,6 +49,7 @@ E: binary: suidregister-used-in-maintainer-script postinst
 E: binary: symlink-contains-spurious-segments 
usr/share/doc/binary/html/ch2.html ../html/./ch1.html
 E: binary: unstripped-binary-or-object ./usr/bin/hello
 I: binary source: binary-control-field-duplicates-source field "vcs-svn" in 
package binary
+I: binary source: missing-debian-source-format
 I: binary source: xs-vcs-header-in-debian-control xs-vcs-browser
 I: binary-data: capitalization-error-in-description subversion Subversion
 I: binary: arch-dep-package-has-big-usr-share
@@ -61,7 +62,6 @@ W: binary source: ancient-standards-version 3.2.1 (current is 
3.8.4)
 W: binary source: debian-rules-ignores-make-clean-error line 12
 W: binary source: debian-rules-uses-pwd line 9
 W: binary source: maintainer-upload-has-incorrect-version-number 4-1.1
-W: binary source: missing-debian-source-format
 W: binary source: native-package-with-dash-version
 W: binary source: substvar-source-version-is-deprecated binary
 W: binary source: substvar-source-version-is-deprecated binary-data
diff --git a/testset/tags.debconf b/testset/tags.debconf
index d0c084b..da2dca5 100644
--- a/testset/tags.debconf
+++ b/testset/tags.debconf
@@ -13,6 +13,7 @@ E: debconf-test: no-template-type debconf/language
 E: debconf-test: unknown-debconf-priority config:10 LOW
 E: debconf-test: unknown-debconf-priority config:11 normal
 E: debconf-udeb udeb: udeb-postinst-must-not-call-ldconfig
+I: debconf source: missing-debian-source-format
 I: debconf source: no-complete-debconf-translation
 I: debconf-test-noscripts: unused-debconf-template debconf/test
 I: debconf-test: unused-debconf-template debconf/1st-person
@@ -38,7 +39,6 @@ W: debconf source: invalid-po-file debian/po/sample-file.po
 W: debconf source: maintainer

[SCM] Debian package checker branch, master, updated. 2.3.4-51-g8a8a6b6

2010-03-25 Thread Russ Allbery
The following commit has been merged in the master branch:
commit 8a8a6b6208466840db82e3851b52a73fafa6e871
Author: Russ Allbery 
Date:   Thu Mar 25 17:16:02 2010 -0700

Add changelog for parallel collection and checking improvements

diff --git a/debian/changelog b/debian/changelog
index c50bfc2..4f4604b 100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ lintian (2.4.0) UNRELEASED; urgency=low
 
   * checks/changes-file{,.desc}:
 + [ADB] New check script for .changes file tests
+  * checks/deb-format.desc:
++ [RG] deb-format needs changelog-file.
   * checks/fields:
 + [RA] Add an exception for diffutils for depending on an essential
   package without a version, since diff was renamed to diffutils and
@@ -29,6 +31,9 @@ lintian (2.4.0) UNRELEASED; urgency=low
   handle tildes for upstream pre-releases.  Patch from Peter
   Eisentraut.  (Closes: #575064)
 
+  * collection/*.desc:
++ [RG] Remove now-unneeded Order keys.
+
   * frontend/lintian:
 + [ADB] Add "changes" as a valid type for collection and check scripts
 + [ADB] Replace the special-cased parsing of .changes files with calls to
@@ -37,6 +42,8 @@ lintian (2.4.0) UNRELEASED; urgency=low
   directory
 + [ADB] Remove import of Lintian::Check which is no longer required after
   the .changes parsing code was removed
++ [RG] Support running collection and check scripts in parallel as soon
+  as their prerequisites are satisfied.
   * frontend/lintian-info:
 + [ADB] Add support for .changes tags to --annotate
 
@@ -44,12 +51,23 @@ lintian (2.4.0) UNRELEASED; urgency=low
 + [ADB] Add a "changes" directory to the lab structure. For static labs,
   the directory is automatically added the first time a .changes-aware
   Lintian accesses the lab.
-
   * lib/Lintian/Collect.pm:
 + [ADB] Add support for Lintian::Collect::Changes
   * lib/Lintian/Collect/Changes.pm:
 + [ADB] New module providing information about .changes files and the
   files referenced therein
+  * lib/Lintian/Command.pm:
++ [RG] Add done() method to check whether a process can be reaped
+  without blocking.
+  * lib/Lintian/Command/Simple.pm:
++ [RG] New simple command interface which supports backgrounded
+  commands and easier waiting on commands without the full features of
+  Lintian::Command.
+  * lib/Lintian/DepMap.pm:
++ [RG] New module to manipulate dependency maps.
+  * lib/Lintian/DepMap/Properties.pm:
++ [RG] New subclass of Lintian::DepMap that allows properties to be
+  associated with Lintian::DepMap nodes.
   * lib/Lintian/Schedule.pm:
 + [ADB] Add support for scheduling .changes files
 + [ADB] Fix an uninitialised value warning caused by .changes files by

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuxeb-0005op...@alioth.debian.org



Re: RFC: further parallelisation (dependency-based collection and check scripts)

2010-03-25 Thread Raphael Geissert
Russ Allbery wrote:
> Raphael Geissert writes:
>> I have to rebase my branch again because the addition of .changes files
>> as a kind of object to be tested conflicts with a change I made to the
>> lintian frontend to use a hash instead of a string to denote the
>> source/binary/udeb/changes types.
> 
> Oh, sorry, I forgot about that.  Although I suppose it was going to
> conflict no matter which one went in first.

Adam D. Barratt wrote:
> Sorry about that. :-s

Oops, looks like what I wrote sounded like I was sort of upset. Just to 
clarify, I wasn't :)
Had I merged my branch first Adam would have had to rebase his work.

> 
>> Will try to get to that tomorrow so that I push the changes before the
>> weekend.

I just merged and pushed my branch :)

> 
> Thanks!  I will then try to get the manual rewrite in, and then see what
> else can be accomplished before the next upload (since I'd like to let the
> last one age into testing).

I've some partial work in other branches but I don't think I will have time 
to finish any of that soon.

> No guarantees for the next week or two, as I'm currently way behind on a
> bunch of different projects and I'm not sure what I'm going to manage to
> catch up on first.

Me neither (for the next week) as I will be on VAC. When I come back I might 
spend an afternoon or something to fix bugs and stuff like that. If nobody 
has time by then I might also make an upload (unless there's any objection, 
of course :).

Cheers,
-- 
Raphael Geissert - Debian Developer
www.debian.org - get.debian.net



-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/hogsvo$98...@dough.gmane.org



[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit 7610c462eddc301c5d0c63075f87b61da7acf67c
Author: Raphael Geissert 
Date:   Sun Mar 21 01:03:33 2010 -0600

Add missing documentation for some methods

Also test Lintian::DepMap::Properties for 100% POD coverage.

diff --git a/lib/Lintian/DepMap.pm b/lib/Lintian/DepMap.pm
index 1cd2466..dc69ea8 100644
--- a/lib/Lintian/DepMap.pm
+++ b/lib/Lintian/DepMap.pm
@@ -159,6 +159,19 @@ sub add {
 } else { 1; }
 }
 
+=item addp(node[, prefix, dependency[, dependency[, ...]]])
+
+Adds the given C to the map marking any third or more parameters,
+after prefixing them with C, as its dependencies. E.g.
+
+# pA and pB have no dependency:
+$map->add('pA');
+$map->add('pA');
+# C depends on pA and pB:
+$map->addp('C', 'p', 'A', 'B');
+
+=cut
+
 sub addp {
 my ($self,$node,$prefix) = (shift,shift,shift);
 my @deps;
@@ -225,6 +238,23 @@ sub satisfy {
 delete $self->{'nodes'}{$node};
 }
 
+=item done(node)
+
+Returns whether the given C has been satisfied/done.
+
+E.g.
+
+# A has no dependencies:
+$map->add('A');
+# we work on A, and we are done:
+$map->satisfy('A');
+
+print "A is done!"
+   if ($map->done('A'));
+
+=cut
+
+
 sub done {
 my $self = shift;
 my $node = shift;
diff --git a/lib/Lintian/DepMap/Properties.pm b/lib/Lintian/DepMap/Properties.pm
index 7d4335d..b26aee0 100644
--- a/lib/Lintian/DepMap/Properties.pm
+++ b/lib/Lintian/DepMap/Properties.pm
@@ -80,6 +80,21 @@ sub add {
 return $self->SUPER::add(@_);
 }
 
+=item addp(node[, prefix, dependency[, dependency...]], [ref to property])
+
+Adds the given C to the map marking any third or more parameters,
+after prefixing them with C, as its dependencies and sets the
+C's property to the ref, if defined. See add()'s description for
+more information about about properties. E.g.
+
+# pA and pB have no dependency:
+$map->addp('pA', {name => 'John Doe'});
+$map->addp('pB', {name => 'Jane Doe'});
+# Df depends on pA and pB:
+$map->addp('Df', 'p', 'A', 'B', {name => 'Doe Family'});
+
+=cut
+
 sub addp {
 my $self = shift;
 my $ref = pop;
diff --git a/t/scripts/pod-coverage.t b/t/scripts/pod-coverage.t
index 4b472f0..4623af2 100755
--- a/t/scripts/pod-coverage.t
+++ b/t/scripts/pod-coverage.t
@@ -13,17 +13,18 @@ plan skip_all => 'Test::Pod::Coverage is required for 
testing POD coverage'
 # add underscores; personally, I (rra) think they make the code hard to read.
 our %MODULES =
 (
- 'Lintian::Check' => [],
- 'Lintian::Collect'   => [],
- 'Lintian::Command'   => [],
- 'Lintian::Command::Simple'   => [],
- 'Lintian::Data'  => [],
- 'Lintian::DepMap'=> [],
- 'Lintian::Relation'  => [ qr/^parse_element$/,
-   qr/^implies_(element|array)/ ],
- 'Lintian::Relation::Version' => [ qr/^compare$/ ],
- 'Lintian::Tags'  => [],
- 'Lintian::Tag::Info' => [],
+ 'Lintian::Check'  => [],
+ 'Lintian::Collect'=> [],
+ 'Lintian::Command'=> [],
+ 'Lintian::Command::Simple'=> [],
+ 'Lintian::Data'   => [],
+ 'Lintian::DepMap' => [],
+ 'Lintian::DepMap::Properties' => [],
+ 'Lintian::Relation'   => [ qr/^parse_element$/,
+qr/^implies_(element|array)/ ],
+ 'Lintian::Relation::Version'  => [ qr/^compare$/ ],
+ 'Lintian::Tags'   => [],
+ 'Lintian::Tag::Info'  => [],
 );
 # TODO:
 #  Lintian::Collect::Binary

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuwr9-0001r9...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit e551c28ed8174f8bd8ea9462c99a61c6d293165c
Author: Raphael Geissert 
Date:   Sat Mar 20 21:29:21 2010 -0600

Rename Lintian::PDepMap to Lintian::DepMap::Properties

diff --git a/frontend/lintian b/frontend/lintian
index e488ee2..1a2616a 100755
--- a/frontend/lintian
+++ b/frontend/lintian
@@ -1085,9 +1085,9 @@ if ($action eq 'check') {
 
 # }}}
 
-require Lintian::PDepMap;
+require Lintian::DepMap::Properties;
 
-my $map = Lintian::PDepMap->new();
+my $map = Lintian::DepMap::Properties->new();
 
 # {{{ determine which info is needed by the collection scripts
 for my $c (keys %unpack_infos) {
diff --git a/lib/Lintian/PDepMap.pm b/lib/Lintian/DepMap/Properties.pm
similarity index 87%
rename from lib/Lintian/PDepMap.pm
rename to lib/Lintian/DepMap/Properties.pm
index bce7345..7d4335d 100644
--- a/lib/Lintian/PDepMap.pm
+++ b/lib/Lintian/DepMap/Properties.pm
@@ -13,7 +13,7 @@
 # You should have received a copy of the GNU General Public License along with
 # this program.  If not, see .
 
-package Lintian::PDepMap;
+package Lintian::DepMap::Properties;
 
 use strict;
 use warnings;
@@ -23,18 +23,18 @@ my ($properties);
 
 =head1 NAME
 
-Lintian::PDepMap - Dependencies with properties map/tree creator
+Lintian::DepMap::Properties - Dependencies with properties map/tree creator
 
 =head1 SYNOPSIS
 
-use Lintian::PDepMap;
+use Lintian::DepMap::Properties;
 
-my $map = Lintian::DepMap->new();
+my $map = Lintian::DepMap::Properties->new();
 
 
 =head1 DESCRIPTION
 
-Lintian::PDepMap is a simple layer between Lintian::DepMap and the
+Lintian::DepMap::Properties is a simple layer between Lintian::DepMap and the
 application allowing nodes to have application-defined properties.
 
 
@@ -42,7 +42,7 @@ application allowing nodes to have application-defined 
properties.
 
 =item new()
 
-Creates a new Lintian::PDepMap object and returns a reference to it.
+Creates a new Lintian::DepMap::Properties object and returns a reference to it.
 
 =cut
 
diff --git a/t/scripts/Lintian/PDepMap/00construct.t 
b/t/scripts/Lintian/DepMap/Properties/00construct.t
similarity index 79%
rename from t/scripts/Lintian/PDepMap/00construct.t
rename to t/scripts/Lintian/DepMap/Properties/00construct.t
index f2c7d9e..f9238b8 100644
--- a/t/scripts/Lintian/PDepMap/00construct.t
+++ b/t/scripts/Lintian/DepMap/Properties/00construct.t
@@ -2,11 +2,11 @@
 
 use Test::More qw(no_plan);
 
-BEGIN { use_ok('Lintian::PDepMap'); }
+BEGIN { use_ok('Lintian::DepMap::Properties'); }
 
 my $map;
 
-ok(eval { $map = Lintian::PDepMap->new(); }, 'Create');
+ok(eval { $map = Lintian::DepMap::Properties->new(); }, 'Create');
 
 my %prop = (name => 'John Doe', age => 20);
 

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuwr7-0001qd...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit 28e2ff37af660d38afa94f9748e9a475c3e178f2
Author: Raphael Geissert 
Date:   Sat Mar 20 20:55:21 2010 -0600

Fix some minor POD formatting bugs

diff --git a/lib/Lintian/Command/Simple.pm b/lib/Lintian/Command/Simple.pm
index 284e31b..953c5a9 100644
--- a/lib/Lintian/Command/Simple.pm
+++ b/lib/Lintian/Command/Simple.pm
@@ -57,6 +57,8 @@ provided.
 It is possible to reuse an object to run multiple commands, but only
 after reaping the previous command.
 
+=over 4
+
 =item new()
 
 Creates a new Lintian::Command::Simple object and returns a reference
@@ -373,6 +375,7 @@ sub status {
 __END__
 
 =back
+
 =head1 TODO
 
 Provide the necessary methods to modify the environment variables of

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuwr5-0001pf...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit bab3c76323966288e531cab7aeeb9a7e6a898199
Author: Raphael Geissert 
Date:   Sat Mar 20 20:52:32 2010 -0600

Make the frontend use Lintian::Command::Simple

This is one of the last changes needed to bring this branch ready to be
merged into master. Yay!

diff --git a/frontend/lintian b/frontend/lintian
index 6955d76..e488ee2 100755
--- a/frontend/lintian
+++ b/frontend/lintian
@@ -604,6 +604,7 @@ require Lintian::Data;
 require Lintian::Schedule;
 require Lintian::Output;
 import Lintian::Output qw(:messages);
+require Lintian::Command::Simple;
 require Lintian::Command;
 import Lintian::Command qw(spawn reap);
 require Lintian::Tags;
@@ -1181,7 +1182,7 @@ require Checker;
 require Lintian::Collect;
 
 my %overrides;
-my @pending_jobs;
+my %running_jobs;
 PACKAGE:
 foreach my $pkg_info ($schedule->get_all) {
 my ($type, $pkg, $ver, $arch, $file) =
@@ -1194,8 +1195,8 @@ foreach my $pkg_info ($schedule->get_all) {
 $map->initialise();
 
 # Kill pending jobs, if any
-Lintian::Command::kill(@pending_jobs);
-undef @pending_jobs;
+Lintian::Command::Simple::kill(\%running_jobs);
+%running_jobs = ();
 
 # determine base directory
 my $base = "$LINTIAN_LAB/$long_type/$pkg";
@@ -1298,7 +1299,6 @@ foreach my $pkg_info ($schedule->get_all) {
if ($ri->{'type'} eq 'collection') {
my $coll = $ri->{'name'};
my $ci = $collection_info{$coll};
-   my %run_opts = ('description' => $coll);
 
# current type?
unless (exists $ci->{'type'}{$type}) {
@@ -1327,13 +1327,14 @@ foreach my $pkg_info ($schedule->get_all) {
remove_status_file($base);
debug_msg(1, "Collecting info: $coll ...");
my $script = "$LINTIAN_ROOT/collection/$ci->{'script'}";
-   unless (spawn(\%run_opts, [ $script, $pkg, $long_type, 
'&'])) {
+   my $cmd = Lintian::Command::Simple->new();
+   unless ($cmd->background($script, $pkg, $long_type) > 0) {
warning("collect info $coll about package $pkg failed",
"skipping $action of $long_type package $pkg");
$exit_code = 2;
next PACKAGE;
}
-   push @pending_jobs, \%run_opts;
+   $running_jobs{$coll} = $cmd;
} elsif ($ri->{'type'} eq 'check') {
# skip check if overrides were not yet loaded
last unless $loaded_overrides or $no_override;
@@ -1361,11 +1362,30 @@ foreach my $pkg_info ($schedule->get_all) {
# wait until a job finishes to run its branches, if any, or skip
# this package if any of the jobs failed.
debug_msg(1, "Reaping done jobs ...");
-   unless (reap_collect_jobs($pkg, $base, \...@pending_jobs, $map)) {
-   warning("skipping $action of $long_type package $pkg");
-   $exit_code = 2;
-   next PACKAGE;
+
+   while (my ($coll, $cmd) = 
Lintian::Command::Simple::wait(\%running_jobs)) {
+   if ($cmd->status() == 0) {
+   my $ci = $collection_info{$coll};
+   open(VERSION, '>', "$base/.${coll}-$ci->{'version'}")
+   or fail("cannot create $base/.${coll}-$ci->{'version'}: 
$!");
+   print VERSION "Lintian-Version: $LINTIAN_VERSION\n"
+   . "Timestamp: " . time . "\n";
+   close(VERSION);
+   debug_msg(1, "Collection script $coll done");
+   } else {
+   warning("collect info $coll about package $pkg failed");
+   warning("skipping $action of $long_type package $pkg");
+   $exit_code = 2;
+   next PACKAGE;
+   }
+
+   $map->satisfy('coll-' . $coll);
+
+   # give a chance to other jobs to finish while we
+   # process other stuff:
+   last;
}
+
unless ($no_override or $loaded_overrides) {
if ($map->done('coll-override-file')) {
debug_msg(1, "Override file collected, loading it ...");
@@ -1375,7 +1395,7 @@ foreach my $pkg_info ($schedule->get_all) {
}
}
}
-   undef @pending_jobs;
+   %running_jobs = ();
 
if ($action eq 'check') {
unless ($exit_code) {
@@ -1450,7 +1470,7 @@ foreach my $pkg_info ($schedule->get_all) {
next unless (-f "$base/.${coll}-$ci->{'version'}");
my $script = "$LINTIAN_ROOT/collection/$ci->{'script'}";
debug_msg(1, "Auto removing: $ci->{'script'} ...");
-   unless (spawn({}, [ $script, $pkg, "remove-$long_type"])) {
+  

[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit 0711d076a9087f39b058ba87a0be3940329ad414
Author: Raphael Geissert 
Date:   Sat Mar 20 19:21:42 2010 -0600

Rename the Lintian::Command::Simple functions/methods

The names were unnecessarily confusing.

diff --git a/lib/Lintian/Command/Simple.pm b/lib/Lintian/Command/Simple.pm
index 2c5aab1..2514d79 100644
--- a/lib/Lintian/Command/Simple.pm
+++ b/lib/Lintian/Command/Simple.pm
@@ -26,19 +26,19 @@ Lintian::Command::Simple - Run commands without pipes
 
 use Lintian::Command::Simple;
 
-Lintian::Command::Simple::exec("echo", "hello world");
+Lintian::Command::Simple::run("echo", "hello world");
 
 # Start a command in the background:
-Lintian::Command::Simple::fork("sleep", 10);
+Lintian::Command::Simple::background("sleep", 10);
 print (Lintian::Command::Simple::wait())? "success" : "failure";
 
 # Using the OO interface
 
 my $cmd = Lintian::Command::Simple->new();
 
-$cmd->exec("echo", "hello world");
+$cmd->run("echo", "hello world");
 
-$cmd->fork("sleep", 10);
+$cmd->background("sleep", 10);
 print ($cmd->wait())? "success" : "failure";
 
 
@@ -71,7 +71,7 @@ sub new {
 return $self;
 }
 
-=item exec(command, argument  [, ...])
+=item run(command, argument  [, ...])
 
 Executes the given C with the given arguments and returns the
 status code as one would see it from a shell script.
@@ -81,7 +81,7 @@ CORE::system() function is the way the return status is 
reported.
 
 =cut
 
-sub exec {
+sub run {
 my $self;
 
 if (ref $_[0]) {
@@ -98,7 +98,7 @@ sub exec {
 return $? >> 8;
 }
 
-=item fork(command, argument  [, ...])
+=item background(command, argument  [, ...])
 
 Executes the given C with the given arguments asynchronously
 and returns the process id of the child process.
@@ -109,7 +109,7 @@ calling wait() to reap the previous command.
 
 =cut
 
-sub fork {
+sub background {
 my $self;
 
 if (ref $_[0]) {
@@ -149,7 +149,7 @@ a child of the current process) returns. If C is not 
specified, it
 waits for any child process to finish and returns.
 
 When called as a method:
-It takes no argument. It waits for the previously fork()ed process to
+It takes no argument. It waits for the previously background()ed process to
 return.
 
 The return value is either -1, probably indicating an error, or the
@@ -263,7 +263,7 @@ sub wait {
 =item pid()
 
 Only available under the OO interface, it returns the pid of a
-fork()ed process.
+background()ed process.
 
 After calling wait(), this method always returns undef.
 
@@ -278,7 +278,7 @@ sub pid {
 =item status()
 
 Only available under the OO interface, it returns the return status of
-the fork()ed or exec()uted process.
+the background()ed or run()-ran process.
 
 When used on async processes, it is only defined after calling wait().
 
@@ -315,7 +315,7 @@ __END__
 
 Provide the necessary methods to modify the environment variables of
 the to-be-executed commands.  This would let us drop C (from
-lib/Util.pm) and make C more useful.
+lib/Util.pm) and make C more useful.
 
 =head1 NOTES
 
@@ -334,7 +334,7 @@ object that started the reaped process won't be able to 
determine the
 return status, which can affect the rest of the application.
 
 As a general advise, the procedural and OO interfaces should not be
-combined when using fork(). Unless, of course, you are calling wait()
+combined when using background(). Unless, of course, you are calling wait()
 with a hash ref.
 
 =head1 AUTHOR
diff --git a/t/scripts/Lintian/Command/Simple/01-basic.t 
b/t/scripts/Lintian/Command/Simple/01-basic.t
index 06ba8c1..e78b3f2 100644
--- a/t/scripts/Lintian/Command/Simple/01-basic.t
+++ b/t/scripts/Lintian/Command/Simple/01-basic.t
@@ -6,5 +6,5 @@ use Test::More tests => 3;
 
 BEGIN { use_ok('Lintian::Command::Simple'); }
 
-is(Lintian::Command::Simple::exec("true"), 0, 'Basic exec (true)');
-is(Lintian::Command::Simple::exec("false"), 1, 'Basic exec (false)');
+is(Lintian::Command::Simple::run("true"), 0, 'Basic run (true)');
+is(Lintian::Command::Simple::run("false"), 1, 'Basic run (false)');
diff --git a/t/scripts/Lintian/Command/Simple/02-OO-basic.t 
b/t/scripts/Lintian/Command/Simple/02-OO-basic.t
index b814a53..40cf423 100644
--- a/t/scripts/Lintian/Command/Simple/02-OO-basic.t
+++ b/t/scripts/Lintian/Command/Simple/02-OO-basic.t
@@ -10,5 +10,5 @@ my $cmd;
 
 ok(eval { $cmd = Lintian::Command::Simple->new(); }, 'Create');
 
-is($cmd->exec("true"), 0, 'Basic exec (true)');
-is($cmd->exec("false"), 1, 'Basic exec (false)');
+is($cmd->run("true"), 0, 'Basic run (true)');
+is($cmd->run("false"), 1, 'Basic run (false)');
diff --git a/t/scripts/Lintian/Command/Simple/03-background.t 
b/t/scripts/Lintian/Command/Simple/03-background.t
index a4eea79..ab4286c 100644
--- a/t/scripts/Lintian/Command/Simple/03-background.t
+++ b/t/scripts/Lintian/Command/Simple/03-background.t
@@ -8,24 +8,24 @@ use Lintian::Command::Simple;
 
 my

[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit 594f079d777806ba723c45d31b9903b2aca910f4
Author: Raphael Geissert 
Date:   Sat Mar 20 20:23:25 2010 -0600

Add Lintian::Command::Simple::kill to kill processes

diff --git a/lib/Lintian/Command/Simple.pm b/lib/Lintian/Command/Simple.pm
index 2514d79..284e31b 100644
--- a/lib/Lintian/Command/Simple.pm
+++ b/lib/Lintian/Command/Simple.pm
@@ -260,6 +260,68 @@ sub wait {
 }
 }
 
+=item kill([pid|hashref])
+
+When called as a function:
+C must be specified. It sigTERMs the given process.
+Under this mode, it acts as a wrapper around CORE::kill().
+
+When called as a method:
+It takes no argument. It sigTERMsr the previously background()ed
+process and cleans up internal variables.
+
+The return value is that of CORE:kill().
+
+
+Killing multiple processes:
+
+In a similar way to wait(), it is possible to pass a hash reference to
+kill() so that it calls the kill() method of each of the objects and
+reaps them afterwards with wait().
+
+Only the processes that were successfully signaled are reaped.
+Depending on the effects of the signal, it is possible that the call to
+wait() blocks. To reduce the chances of blocking, the processes are
+reaped in the same order they were signaled.
+
+The return value is the number of processes that were successfully
+signaled (and per the above description, reaped.)
+
+=cut
+
+sub kill {
+my ($self, $pid);
+
+if (ref $_[0] eq "Lintian::Command::Simple") {
+   $self = shift;
+   $pid = $self->pid();
+} elsif (ref $_[0]) {
+   my $jobs = shift;
+   my $count = 0;
+   my @killed_jobs;
+
+   # reset internal iterator
+   keys %$jobs;
+   # send signals
+   while (my ($k, $cmd) = each %$jobs) {
+   if ($cmd->kill()) {
+   $count++;
+   push @killed_jobs, $k;
+   }
+   }
+   # and reap afterwards
+   while (my $k = shift @killed_jobs) {
+   $jobs->{$k}->wait();
+   }
+
+   return $count;
+} else {
+   $pid = shift;
+}
+
+return CORE::kill('TERM', $pid);
+}
+
 =item pid()
 
 Only available under the OO interface, it returns the pid of a
diff --git a/t/scripts/Lintian/Command/Simple/09-kill.t 
b/t/scripts/Lintian/Command/Simple/09-kill.t
new file mode 100644
index 000..dc1654c
--- /dev/null
+++ b/t/scripts/Lintian/Command/Simple/09-kill.t
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More tests => 2;
+
+use Lintian::Command::Simple;
+
+my $pid;
+
+$pid = Lintian::Command::Simple::background("sleep", 10);
+
+is(Lintian::Command::Simple::kill($pid), 1, "One job was killed");
+
+is(Lintian::Command::Simple::wait($pid), 0, "The job was reaped");
diff --git a/t/scripts/Lintian/Command/Simple/10-OO-kill.t 
b/t/scripts/Lintian/Command/Simple/10-OO-kill.t
new file mode 100644
index 000..9a814f9
--- /dev/null
+++ b/t/scripts/Lintian/Command/Simple/10-OO-kill.t
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More tests => 2;
+
+use Lintian::Command::Simple;
+
+my ($cmd, $pid);
+
+$cmd = Lintian::Command::Simple->new();
+
+$cmd->background("sleep", 10);
+
+is($cmd->kill(), 1, "One process was killed");
+is($cmd->wait(), 0, "One process was reaped");
diff --git a/t/scripts/Lintian/Command/Simple/11-kill-multiple-jobs.t 
b/t/scripts/Lintian/Command/Simple/11-kill-multiple-jobs.t
new file mode 100644
index 000..d11b66b
--- /dev/null
+++ b/t/scripts/Lintian/Command/Simple/11-kill-multiple-jobs.t
@@ -0,0 +1,23 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More tests => 2;
+
+use Lintian::Command::Simple;
+
+my $cmd;
+my $c = 4;
+my %jobs;
+
+while ($c) {
+$cmd = Lintian::Command::Simple->new();
+$cmd->background("sleep", 10);
+$jobs{$c} = $cmd;
+$c--;
+}
+
+is(Lintian::Command::Simple::kill(\%jobs), 4, "4 jobs were killed");
+
+is(Lintian::Command::Simple::wait(\%jobs), undef,
+   "kill(hashref) kills and reaps");

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuwr2-0001nc...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit 2b4f7bfa9fb8afb32003030118916a644e5c3add
Author: Raphael Geissert 
Date:   Wed Mar 3 23:55:09 2010 -0600

Introduce Lintian::Command::Simple to run commands without pipes

Running multiple asynchronous processes with Lintian::Command leads to
an extra overhead.

This new module should ease multiple tasks that don't require pipes
to/from Perl code or other special features provided by
Lintian::Command.

diff --git a/lib/Lintian/Command/Simple.pm b/lib/Lintian/Command/Simple.pm
new file mode 100644
index 000..7d9c7b9
--- /dev/null
+++ b/lib/Lintian/Command/Simple.pm
@@ -0,0 +1,227 @@
+# Copyright (C) 2010 Raphael Geissert 
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program.  If not, see .
+
+package Lintian::Command::Simple;
+
+use strict;
+use warnings;
+
+=head1 NAME
+
+Lintian::Command::Simple - Run commands without pipes
+
+=head1 SYNOPSIS
+
+use Lintian::Command::Simple;
+
+Lintian::Command::Simple::exec("echo", "hello world");
+
+# Start a command in the background:
+Lintian::Command::Simple::fork("sleep", 10);
+print (Lintian::Command::Simple::wait())? "success" : "failure";
+
+# Using the OO interface
+
+my $cmd = Lintian::Command::Simple->new();
+
+$cmd->exec("echo", "hello world");
+
+$cmd->fork("sleep", 10);
+print ($cmd->wait())? "success" : "failure";
+
+
+=head1 DESCRIPTION
+
+Lintian::Command::Simple allows running commands with the capability of
+running them "in the background" (asynchronously.)
+
+Pipes are not handled at all, except for those handled internally by
+the shell. See 'perldoc -f exec's note about shell metacharacters.
+If you want to pipe to/from Perl, look at Lintian::Command instead.
+
+A procedural and an Object-Oriented (from now on OO) interfaces are
+provided.
+
+It is possible to reuse an object to run multiple commands, but only
+after reaping the previous command.
+
+=item new()
+
+Creates a new Lintian::Command::Simple object and returns a reference
+to it.
+
+=cut
+
+sub new {
+my ($class, $pkg) = @_;
+my $self = {};
+bless($self, $class);
+return $self;
+}
+
+=item exec(command, argument  [, ...])
+
+Executes the given C with the given arguments and returns the
+status code as one would see it from a shell script.
+
+Being fair, the only advantage of this function (or method) over the
+CORE::system() function is the way the return status is reported.
+
+=cut
+
+sub exec {
+my $self;
+
+if (ref $_[0]) {
+   $self = shift;
+   return -1
+   if defined($self->{'pid'});
+}
+
+system(@_);
+
+return $? >> 8;
+}
+
+=item fork(command, argument  [, ...])
+
+Executes the given C with the given arguments asynchronously
+and returns the process id of the child process.
+
+A return value of -1 indicates an error. This can either be a problem
+when calling CORE::fork() or when trying to run another command before
+calling wait() to reap the previous command.
+
+=cut
+
+sub fork {
+my $self;
+
+if (ref $_[0]) {
+   $self = shift;
+   return -1
+   if (defined($self->{'pid'}));
+}
+
+my $pid = fork();
+
+if (not defined($pid)) {
+   # failed
+   return -1;
+} elsif ($pid > 0) {
+   # parent
+
+   $self->{'pid'} = $pid
+   if (defined($self));
+
+   return $pid;
+} else {
+   # child
+   close(STDIN);
+   open(STDIN, '<', '/dev/null');
+
+   CORE::exec @_ or die("Failed to exec '$_[0]': $!\n");
+}
+}
+
+=item wait([pid])
+
+When called as a function:
+If C is specified, it waits until the given process (which must be
+a child of the current process) returns. If C is not specified, it
+waits for any child process to finish and returns.
+
+When called as a method:
+It takes no argument. It waits for the previously fork()ed process to
+return.
+
+The return value is either -1, probably indicating an error, or the
+return status of the process as it would be seen from a shell script.
+See 'perldoc -f wait' for more details about the possible meanings of
+-1.
+
+=cut
+
+sub wait {
+my ($self, $pid);
+
+if (ref $_[0]) {
+   $self = shift;
+   $pid = $self->{'pid'};
+} else {
+   $pid = shift;
+}
+
+if (defined($pid)) {
+   $self->{'pid'} = undef
+   if defined($self);
+   return (waitpid(

[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit d799233d09c57f3202333205465b868bec12bc80
Author: Raphael Geissert 
Date:   Sat Mar 20 19:05:27 2010 -0600

Add support to easily handle multiple async processes

diff --git a/lib/Lintian/Command/Simple.pm b/lib/Lintian/Command/Simple.pm
index 7d9c7b9..2c5aab1 100644
--- a/lib/Lintian/Command/Simple.pm
+++ b/lib/Lintian/Command/Simple.pm
@@ -92,6 +92,9 @@ sub exec {
 
 system(@_);
 
+$self->{'status'} = $?
+   if defined $self;
+
 return $? >> 8;
 }
 
@@ -113,6 +116,8 @@ sub fork {
$self = shift;
return -1
if (defined($self->{'pid'}));
+
+   $self->{'status'} = undef;
 }
 
 my $pid = fork();
@@ -136,7 +141,7 @@ sub fork {
 }
 }
 
-=item wait([pid])
+=item wait([pid|hashref])
 
 When called as a function:
 If C is specified, it waits until the given process (which must be
@@ -152,24 +157,104 @@ return status of the process as it would be seen from a 
shell script.
 See 'perldoc -f wait' for more details about the possible meanings of
 -1.
 
+
+To reap one from many:
+
+When starting multiple processes asynchronously, it is common to wait
+until the first is done. While the CORE::wait() function is usually
+used for that very pourpose, it does not provide the desired results
+when the processes were started via the OO interface.
+
+To help with this task, wait() can take a hash ref where the value of
+each entry is an instance of Lintian::Command::Simple. The key of each
+entry is irrelevant and is not used for any pourpose.
+
+Under this mode, wait() waits until any child process is done and if the
+deceased process is one of the set passed via the hash ref it marks it
+as reaped and stores the return status.
+The results and return value are undefined when under this mode wait()
+"accidentally" reaps a process not started by one of the objects passed
+in the hash ref.
+
+The return value in scalar context is the instance of the object that
+started the now deceased process. In list context, the key and value
+(i.e. the object instance) are returned.
+Whenever CORE::wait() would return -1, wait() returns undef or a null
+value so that it is safe to:
+
+while($cmd = Lintian::Command::Simple::wait(\%hash)) { something; }
+
+The same is true whenever the hash reference points to an empty hash.
+
+Passing any other kind of reference or value as arguments has undefined
+results.
+
 =cut
 
 sub wait {
 my ($self, $pid);
 
-if (ref $_[0]) {
+if (ref $_[0] eq "Lintian::Command::Simple") {
$self = shift;
$pid = $self->{'pid'};
 } else {
$pid = shift;
 }
 
-if (defined($pid)) {
+if (defined($pid) && !ref $pid) {
$self->{'pid'} = undef
if defined($self);
-   return (waitpid($pid, 0) == -1)? -1 : ($? >> 8);
+
+   my $ret = waitpid($pid, 0);
+   my $status = $?;
+
+   $self->{'status'} = $?
+   if defined($self);
+
+   return ($ret == -1)? -1 : $status >> 8;
+} elsif (defined($pid)) {
+   # in this case $pid is a ref (must be a hash ref)
+   # rename it accordingly:
+   my $jobs = $pid;
+   $pid = 0;
+
+   my ($reaped_pid, $reaped_status);
+
+   # count the number of members and reset the internal hash iterator
+   if (scalar keys %$jobs == 0) {
+   if (wantarray) {
+   return ();
+   } else {
+   return undef;
+   }
+   }
+
+   $reaped_pid = CORE::wait();
+   $reaped_status = $?;
+
+   if ($reaped_pid == -1) {
+   if (wantarray) {
+   return ();
+   } else {
+   return undef;
+   }
+   }
+
+   while (my ($k, $cmd) = each %$jobs) {
+   next unless (defined($cmd->pid()) && $reaped_pid == $cmd->pid());
+
+   $cmd->status($reaped_status)
+   or die("internal error: object of pid $reaped_pid " .
+   "failed to recognise its termination\n");
+
+   if (wantarray) {
+   return ($k, $cmd);
+   } else {
+   return $cmd;
+   }
+   }
 } elsif (not defined($self)) {
-   return (wait() == -1)? -1 : ($? >> 8);
+   return (CORE::wait() == -1)? -1 : ($? >> 8);
 } else {
return -1;
 }
@@ -190,6 +275,37 @@ sub pid {
 return $self->{'pid'};
 }
 
+=item status()
+
+Only available under the OO interface, it returns the return status of
+the fork()ed or exec()uted process.
+
+When used on async processes, it is only defined after calling wait().
+
+B: it is also the method internally used by wait() to set the return
+status in some cases.
+
+=cut
+
+sub status {
+my $self = shift;
+my $status = shift;
+
+# Externally set the return status.
+# It performs a sanity check by making sure the executed command is
+# indeed done.
+if (defined($status)) {
+   my $rstatus = $self->wait();
+
+   return 0 if ($rst

[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit fb423e877f786ff99e507eaf2d847af4799c1fe4
Author: Raphael Geissert 
Date:   Tue Mar 2 11:27:26 2010 -0600

override-file has Needs-Info, add it to the map too

Before the removal of the Unpack-Level 2, the override-file didn't
depend on any other collection script, therefore the code to add its
dependencies was missing.

diff --git a/frontend/lintian b/frontend/lintian
index 4b98001..6955d76 100755
--- a/frontend/lintian
+++ b/frontend/lintian
@@ -1165,6 +1165,10 @@ unless ($count) {
 # {{{ Okay, now really processing the packages in one huge loop
 $map->add('coll-override-file', {'type' => 'collection', 'name' => 
'override-file'})
 unless $no_override;
+if (exists $collection_info{'override-file'}{'needs-info'}) {
+$map->addp('coll-override-file', 'coll-',
+   @{$collection_info{'override-file'}{'needs-info'}});
+}
 v_msg(sprintf("Processing %d packages...", $count));
 debug_msg(1,
  "Selected action: $action",

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuwqv-0001ho...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit 3ada7264fc5094adfeabc550c426350fc32f5d30
Author: Raphael Geissert 
Date:   Tue Mar 2 11:21:08 2010 -0600

Remove some duplicated code

diff --git a/frontend/lintian b/frontend/lintian
index c4d9a55..4b98001 100755
--- a/frontend/lintian
+++ b/frontend/lintian
@@ -1280,6 +1280,14 @@ foreach my $pkg_info ($schedule->get_all) {
my $info = Lintian::Collect->new($pkg, $long_type);
my $loaded_overrides = 0;
 
+   # chdir to base directory
+   unless (chdir($base)) {
+   warning("could not chdir into directory $base: $!",
+   "skipping $action of $long_type package $pkg");
+   $exit_code = 2;
+   next PACKAGE;
+   }
+
while ($map->pending) {
foreach my $req (sort sort_coll $map->selectable) {
my $ri = $map->getProp($req);
@@ -1310,14 +1318,6 @@ foreach my $pkg_info ($schedule->get_all) {
}
closedir(BASE);
 
-   # chdir to base directory
-   unless (chdir($base)) {
-   warning("could not chdir into directory $base: $!",
-   "skipping $action of $long_type package $pkg");
-   $exit_code = 2;
-   next PACKAGE;
-   }
-
# collect info
$map->select($req);
remove_status_file($base);
@@ -1342,14 +1342,6 @@ foreach my $pkg_info ($schedule->get_all) {
next;
}
 
-   # chdir to base directory
-   unless (chdir($base)) {
-   warning("could not chdir into directory $base: $!",
-   "skipping $action of $long_type package $pkg");
-   $exit_code = 2;
-   next PACKAGE;
-   }
-
debug_msg(1, "Running check: $check ...");
my $returnvalue = Checker::runcheck($pkg, $long_type, 
$info, $check);
# Set exit_code correctly if there was not yet an exit code

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuwqt-0001h6...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit c7f8af5c0fbbad50627ca7051f2867f9df6c4d08
Author: Raphael Geissert 
Date:   Wed Sep 23 17:51:58 2009 -0500

Add to deb-format a missing dependency on changelog-file

deb-format accesses the changelog to determine if it is an ubuntu
package to exclude the lzma warning.

diff --git a/checks/deb-format.desc b/checks/deb-format.desc
index c753b03..09bf450 100644
--- a/checks/deb-format.desc
+++ b/checks/deb-format.desc
@@ -2,7 +2,7 @@ Check-Script: deb-format
 Author: Russ Allbery 
 Abbrev: dfmt
 Type: binary, udeb
-Needs-Info: unpacked
+Needs-Info: unpacked, changelog-file
 Info: This script checks the format of the deb ar archive itself.
 
 Tag: malformed-deb-archive

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuwqs-0001g2...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit e951eccb1fa34405b3a3ae2b022669b0cf835a8c
Author: Raphael Geissert 
Date:   Mon Sep 21 11:33:10 2009 -0500

Run the checks as soon as the info they need is collected

This introduces Lintian::PDepMap which is a layer on top of
Lintian::DepMap to support per-node properties.

diff --git a/frontend/lintian b/frontend/lintian
index 70bcfae..c4d9a55 100755
--- a/frontend/lintian
+++ b/frontend/lintian
@@ -916,7 +916,6 @@ for my $f (readdir COLLDIR) {
 }
 $p->{'type'} = \%type;
 
-set_value($f,$p,'unpack-level',$secs[0],1);
 set_value($f,$p,'version',$secs[0],1);
 set_value($f,$p,'auto-remove',$secs[0],0);
 
@@ -987,6 +986,7 @@ for my $f (readdir CHECKDIR) {
 
 if (exists $secs[0]->{'needs-info'} && defined $secs[0]->{'needs-info'}) {
for (split(/\s*,\s*/o,$secs[0]->{'needs-info'})) {
+   push @{$p->{'needs-info'}}, $_;
$p->{$_} = 1;
}
delete $secs[0]->{'needs-info'};
@@ -1084,15 +1084,24 @@ if ($action eq 'check') {
 
 # }}}
 
-require Lintian::DepMap;
+require Lintian::PDepMap;
 
-my $coll_map = Lintian::DepMap->new();
+my $map = Lintian::PDepMap->new();
 
 # {{{ determine which info is needed by the collection scripts
 for my $c (keys %unpack_infos) {
-$coll_map->add($c);
+$map->add('coll-' . $c, {'type' => 'collection', 'name' => $c});
 if (exists $collection_info{$c}{'needs-info'}) {
-   $coll_map->add($c, @{$collection_info{$c}{'needs-info'}});
+   $map->addp('coll-' . $c, 'coll-', 
@{$collection_info{$c}{'needs-info'}});
+}
+}
+# }}}
+
+# {{{ add the checks to the dependencies tree
+for my $c (keys %checks) {
+$map->add('check-' . $c, {'type' => 'check', 'name' => $c});
+if (exists $check_info{$c}{'needs-info'}) {
+   $map->addp('check-' . $c, 'coll-', @{$check_info{$c}{'needs-info'}});
 }
 }
 # }}}
@@ -1154,12 +1163,13 @@ unless ($count) {
 # }}}
 
 # {{{ Okay, now really processing the packages in one huge loop
-$coll_map->add('override-file') unless $no_override;
+$map->add('coll-override-file', {'type' => 'collection', 'name' => 
'override-file'})
+unless $no_override;
 v_msg(sprintf("Processing %d packages...", $count));
 debug_msg(1,
  "Selected action: $action",
  "Requested unpack level: $unpack_level",
- sprintf("Requested data to collect: %s", join(',',sort 
$coll_map->known)),
+ sprintf("Requested data to collect: %s", join(',',sort keys 
%unpack_infos)),
  sprintf("Selected checks: %s", join(',',sort keys %checks)),
 );
 
@@ -1177,7 +1187,7 @@ foreach my $pkg_info ($schedule->get_all) {
 ($type eq 's' ? 'source' : 'udeb' )));
 
 $TAGS->file_start($file, $pkg, $ver, $arch, $long_type);
-$coll_map->initialise();
+$map->initialise();
 
 # Kill pending jobs, if any
 Lintian::Command::kill(@pending_jobs);
@@ -1266,139 +1276,153 @@ foreach my $pkg_info ($schedule->get_all) {
next PACKAGE;
 }
 
-if (($action eq 'unpack') or ($action eq 'check')) { # collect info
-   while ($coll_map->pending) {
-   for my $coll ($coll_map->selectable) {
-   my $ci = $collection_info{$coll};
-   my %run_opts = ('description' => $coll);
+if (($action eq 'unpack') or ($action eq 'check')) {
+   my $info = Lintian::Collect->new($pkg, $long_type);
+   my $loaded_overrides = 0;
+
+   while ($map->pending) {
+   foreach my $req (sort sort_coll $map->selectable) {
+   my $ri = $map->getProp($req);
+   if ($ri->{'type'} eq 'collection') {
+   my $coll = $ri->{'name'};
+   my $ci = $collection_info{$coll};
+   my %run_opts = ('description' => $coll);
+
+   # current type?
+   unless (exists $ci->{'type'}{$type}) {
+   $map->satisfy($req);
+   next;
+   }
 
-   # current type?
-   unless (exists $ci->{'type'}{$type}) {
-   $coll_map->satisfy($coll);
-   next;
-   }
+   # If a file named .SCRIPT-VERSION already exists, we've 
already
+   # collected this information and we can skip it.  Otherwise,
+   # remove any .SCRIPT-* files (which are old version 
information).
+   if (-f "$base/.${coll}-$ci->{'version'}") {
+   $map->satisfy($req);
+   next;
+   }
+   opendir(BASE, $base)
+   or fail("cannot read directory $base: $!");
+   for my $file (readdir BASE) {
+   if ($file =~ /^\.\Q$coll-/) {
+   unlink("$base/$file");
+   }
+   }
+   closedir(BASE);
+
+   # chdir to base directo

[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit a55da02dc7e877511d76e6a4a994510da529b3db
Author: Raphael Geissert 
Date:   Thu Sep 17 11:38:54 2009 -0500

Run the collection scripts based on their dependencies instead of the order.

This introduces Lintian::DepMap, a simple dependencies map/tree creator and
solver. This is the base for further work on parallelising the execution
of collection and check scripts.

Lintian::DepMap itself is intended to become a standalone general-pourpose
simple solver.

diff --git a/collection/ar-info.desc b/collection/ar-info.desc
index 1fed4fa..45c1d7b 100644
--- a/collection/ar-info.desc
+++ b/collection/ar-info.desc
@@ -4,4 +4,3 @@ Info: This script runs the "ar t" command over all .a files of 
package.
 Type: binary
 Needs-Info: unpacked
 Version: 1
-Order: 1
diff --git a/collection/changelog-file.desc b/collection/changelog-file.desc
index 4caae66..caa6950 100644
--- a/collection/changelog-file.desc
+++ b/collection/changelog-file.desc
@@ -5,5 +5,4 @@ Info: This script copies the changelog file and
  directory.
 Type: binary
 Version: 1
-Order: 1
 Needs-Info: unpacked
diff --git a/collection/copyright-file.desc b/collection/copyright-file.desc
index 785266c..e0ae131 100644
--- a/collection/copyright-file.desc
+++ b/collection/copyright-file.desc
@@ -4,5 +4,4 @@ Info: This script copies the "copyright" file of a package into 
the
  lintian directory.
 Type: binary
 Version: 1
-Order: 1
 Needs-Info: unpacked
diff --git a/collection/debfiles.desc b/collection/debfiles.desc
index 9c374bb..18c7e92 100644
--- a/collection/debfiles.desc
+++ b/collection/debfiles.desc
@@ -4,5 +4,4 @@ Info: This script collects files shipped in the source of the
  package.
 Type: source
 Version: 1
-Order: 1
 Needs-Info: unpacked
diff --git a/collection/debian-readme.desc b/collection/debian-readme.desc
index 5b17a83..d792c75 100644
--- a/collection/debian-readme.desc
+++ b/collection/debian-readme.desc
@@ -3,5 +3,4 @@ Author: Richard Braakman 
 Info: This script copies the 'README.Debian' file of a package into the 
lintian directory.
 Type: binary
 Version: 1
-Order: 1
 Needs-Info: unpacked
diff --git a/collection/diffstat.desc b/collection/diffstat.desc
index 992b0db..a714306 100644
--- a/collection/diffstat.desc
+++ b/collection/diffstat.desc
@@ -4,4 +4,3 @@ Info: This script extracts the Debian diff of a source package, 
and runs
  diffstat on it, leaving the result in the diffstat output file
 Type: source
 Version: 1
-Order: 1
diff --git a/collection/doc-base-files.desc b/collection/doc-base-files.desc
index 5d687af..ee4652d 100644
--- a/collection/doc-base-files.desc
+++ b/collection/doc-base-files.desc
@@ -4,5 +4,4 @@ Info: This script copies the contents of /usr/share/doc-base 
into the
  lintian doc-base/ directory.
 Type: binary
 Version: 1
-Order: 1
 Needs-Info: unpacked
diff --git a/collection/file-info.desc b/collection/file-info.desc
index b82f33e..ca6f615 100644
--- a/collection/file-info.desc
+++ b/collection/file-info.desc
@@ -3,5 +3,4 @@ Author: Richard Braakman 
 Info: This script runs the "file" command over all files of any kind of 
package.
 Type: binary, udeb, source
 Version: 1
-Order: 1
 Needs-Info: unpacked
diff --git a/collection/init.d.desc b/collection/init.d.desc
index 85ea0ee..de7e7d3 100644
--- a/collection/init.d.desc
+++ b/collection/init.d.desc
@@ -4,5 +4,4 @@ Info: This script copies the "etc/init.d" directory into the 
lintian
  directory.
 Type: binary
 Version: 1
-Order: 1
 Needs-Info: unpacked
diff --git a/collection/md5sums.desc b/collection/md5sums.desc
index 3e1b11d..2697eb6 100644
--- a/collection/md5sums.desc
+++ b/collection/md5sums.desc
@@ -3,5 +3,4 @@ Author: Richard Braakman 
 Info: This script runs the "md5sums" over all files in a binary package.
 Type: binary, udeb
 Version: 1
-Order: 1
 Needs-Info: unpacked
diff --git a/collection/menu-files.desc b/collection/menu-files.desc
index 92495b6..cce2451 100644
--- a/collection/menu-files.desc
+++ b/collection/menu-files.desc
@@ -3,5 +3,4 @@ Author: Richard Braakman 
 Info: This script copies the contents of /usr/lib/menu into the lintian menu/ 
directory.
 Type: binary
 Version: 2
-Order: 1
 Needs-Info: unpacked
diff --git a/collection/objdump-info.desc b/collection/objdump-info.desc
index d52ec36..f3af27a 100644
--- a/collection/objdump-info.desc
+++ b/collection/objdump-info.desc
@@ -4,5 +4,4 @@ Info: This script runs "objdump" over all binaries and object 
files of a
  binary package.
 Type: binary, udeb
 Version: 1
-Order: 2
 Needs-Info: file-info, unpacked
diff --git a/collection/override-file.desc b/collection/override-file.desc
index 0a2cc54..b1414f4 100644
--- a/collection/override-file.desc
+++ b/collection/override-file.desc
@@ -4,5 +4,4 @@ Info: This script copies the "override" file of a package into 
the lintian
  directory.
 Type: binary, udeb, source
 Version: 1
-Order: 1
 Needs-Info: unpacked
diff --git a/collection/scripts.desc b/

[SCM] Debian package checker branch, master, updated. 2.3.4-50-g7610c46

2010-03-25 Thread Raphael Geissert
The following commit has been merged in the master branch:
commit 6bb0f55174d65111e2ead525076df39c5260477c
Author: Raphael Geissert 
Date:   Thu Sep 17 18:09:24 2009 -0500

Add Lintian::DepMap to the POD coverage test

diff --git a/t/scripts/pod-coverage.t b/t/scripts/pod-coverage.t
index 8020058..db371e9 100755
--- a/t/scripts/pod-coverage.t
+++ b/t/scripts/pod-coverage.t
@@ -17,6 +17,7 @@ our %MODULES =
  'Lintian::Collect'   => [],
  'Lintian::Command'   => [],
  'Lintian::Data'  => [],
+ 'Lintian::DepMap'=> [],
  'Lintian::Relation'  => [ qr/^parse_element$/,
qr/^implies_(element|array)/ ],
  'Lintian::Relation::Version' => [ qr/^compare$/ ],

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuwqo-0001dl...@alioth.debian.org



Bug#575363: [checks/init.d] init.d-script-sourcing-without-test test is too simple

2010-03-25 Thread Russ Allbery
Russ Allbery  writes:

> I would not recommend against doing what you do above, however.

Er, I would recommend against doingn what you do above.  Sorry about the
double negative.

-- 
Russ Allbery (r...@debian.org)   



-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87r5n8f1t3@windlord.stanford.edu



Bug#575363: [checks/init.d] init.d-script-sourcing-without-test test is too simple

2010-03-25 Thread Russ Allbery
Jérémie Corbier  writes:

> Lintian complains that my init scripts do not test whether
> /etc/default/wide-dhcpv6-* are available.  Actually, they do but the
> lintian test is too simple to catch that:

> --- 8< ---
> if [ ! -f /etc/default/wide-dhcpv6-relay ]; then
> log_failure_msg \
> "/etc/default/wide-dhcpv6-relay does not exist! - Aborting..."
> log_failure_msg \
> "Run 'dpkg-reconfigure wide-dhcpv6-relay' to solve the problem."
> exit 1
> else
> . /etc/default/wide-dhcpv6-relay
> fi
> --- 8< ---

> It would be nice if this test could be a little smarter since its
> severity is serious.

Indeed, thanks.  Will be fixed in the next release.

I would not recommend against doing what you do above, however.  If that
package is removed but not purged, it's going to produce an annoying error
message on every boot, which isn't normally how removed but not purged
daemon packages should behave.  It's typical (see Policy 9.3.2) to just
exit silently when the /etc/default file is not present.

-- 
Russ Allbery (r...@debian.org)   



--
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87bpecghaf@windlord.stanford.edu



Processed: limit source to lintian, tagging 575363, tagging 575192

2010-03-25 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

> #lintian (2.4.0) UNRELEASED; urgency=low
> #
> #  * checks/init.d:
> #+ [RA] Allow $all to satisfy a $remote_fs or $local_fs requirement for
> #  Required-Stop, since this has now been implemented.  Thanks, Michael
> #  Meskes.
> #+ [RA] Recognize negated file checks when checking for file sourcing
> #  without a test.  Thanks, Jérémie Corbier.  (Closes: #575363)
> #  * checks/nmu:
> #+ [RA] Skip leading multi-author changelog lines when looking for
> #  things like non-maintainer upload notes at the start of the
> #  changelog entry.  Thanks, Vincent Danjean.  (Closes: #575192)
> #
> limit source lintian
Limiting to bugs with field 'source' containing at least one of 'lintian'
Limit currently set to 'source':'lintian'

> tags 575363 + pending
Bug #575363 [lintian] [checks/init.d] init.d-script-sourcing-without-test test 
is too simple
Added tag(s) pending.
> tags 575192 + pending
Bug #575192 [lintian] [check/nmu] lintian do not understand changelog with 
several authors
Added tag(s) pending.
> thanks
Stopping processing here.

Please contact me if you need assistance.

Debian bug tracking system administrator
(administrator, Debian Bugs database)


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/handler.s.c.126955648012094.transcr...@bugs.debian.org



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

2010-03-25 Thread Russ Allbery
Neil Williams  writes:
> Russ Allbery  wrote:

>> 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 . . .

For the time being, indeed.

>> 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?

No, it's not an override.  It would be support for adding that option (or
any other Lintian command-line option) to /etc/lintianrc or ~/.lintianrc.

-- 
Russ Allbery (r...@debian.org)   



-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/877hp0gh8g@windlord.stanford.edu



[SCM] Debian package checker branch, master, updated. 2.3.4-36-g70d0e93

2010-03-25 Thread Russ Allbery
The following commit has been merged in the master branch:
commit 70d0e934ec5f1852f5f957b8bf44d378d2072397
Author: Russ Allbery 
Date:   Thu Mar 25 15:33:46 2010 -0700

Recognize negated tests when checking init script sourcing

* checks/init.d:
  + [RA] Recognize negated file checks when checking for file sourcing
without a test.  Thanks, Jérémie Corbier.  (Closes: #575363)

diff --git a/checks/init.d b/checks/init.d
index e456308..d24daf3 100644
--- a/checks/init.d
+++ b/checks/init.d
@@ -255,7 +255,7 @@ sub check_init {
 
# Pretty dummy way to handle conditionals, but should be enough
# for simple init scripts
-   $in_file_test = 1 if ($l =~ m/\bif\s+.*?(?:test|\[)\s+-[efr]\s+/);
+   $in_file_test = 1 if ($l =~ 
m/\bif\s+.*?(?:test|\[)(?:\s+\!)?\s+-[efr]\s+/);
$in_file_test = 0 if ($l =~ m/\bfi\b/);
if (!$in_file_test && $l =~ m,^\s*\.\s+["'"]?(/etc/default/[\$\w/-]+),) 
{
tag "init.d-script-sourcing-without-test", "/etc/init.d/$_:$. $1";
diff --git a/debian/changelog b/debian/changelog
index a406140..c50bfc2 100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,8 @@ lintian (2.4.0) UNRELEASED; urgency=low
 + [RA] Allow $all to satisfy a $remote_fs or $local_fs requirement for
   Required-Stop, since this has now been implemented.  Thanks, Michael
   Meskes.
++ [RA] Recognize negated file checks when checking for file sourcing
+  without a test.  Thanks, Jérémie Corbier.  (Closes: #575363)
   * checks/lintian.desc:
 + [ADB] Remove information about .changes-related tags, now included in
   checks/changes-file.desc
diff --git 
a/t/tests/init.d-general/debian/debian/init.d-general-sourcing-without-test.init
 
b/t/tests/init.d-general/debian/debian/init.d-general-sourcing-without-test.init
index 1b946e3..378be9f 100644
--- 
a/t/tests/init.d-general/debian/debian/init.d-general-sourcing-without-test.init
+++ 
b/t/tests/init.d-general/debian/debian/init.d-general-sourcing-without-test.init
@@ -40,3 +40,11 @@ fi
 if test -f /etc/default/$PACKAGE; then
 . /etc/default/$PACKAGE
 fi
+
+# This is not sourcing without a test and shouldn't produce an error.
+if [ ! -f /etc/default/$PACKAGE ] ; then
+# do something else
+:
+else
+. /etc/default/$PACKAGE
+fi

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuvd9-00014c...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-35-g927bb9a

2010-03-25 Thread Russ Allbery
The following commit has been merged in the master branch:
commit 927bb9a0debf6f8a41080461baba4a607273f710
Author: Russ Allbery 
Date:   Thu Mar 25 15:29:22 2010 -0700

Next release will be 2.4.0

diff --git a/debian/changelog b/debian/changelog
index 1d4f5b9..a406140 100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-lintian (2.3.5) UNRELEASED; urgency=low
+lintian (2.4.0) UNRELEASED; urgency=low
 
   * checks/changes-file{,.desc}:
 + [ADB] New check script for .changes file tests

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1nuvyu-0008hy...@alioth.debian.org



[SCM] Debian package checker branch, master, updated. 2.3.4-34-gc1d25a1

2010-03-25 Thread Russ Allbery
The following commit has been merged in the master branch:
commit c1d25a121e547079d6b09b1e49d3f27c9316ea5a
Author: Russ Allbery 
Date:   Thu Mar 25 15:28:35 2010 -0700

Track local diversions through other diversion checks

* checks/scripts:
  + [RA] Track local diversions like other diversions for the purposes
of checking for orphans and diversions of unknown files.  Partly
addresses #575361.

diff --git a/checks/scripts b/checks/scripts
index 62d4742..e82dc31 100644
--- a/checks/scripts
+++ b/checks/scripts
@@ -945,53 +945,51 @@ while () {
if (m,$LEADIN(?:/usr/sbin/)?dpkg-divert\s, && ! 
/--(?:help|list|truename|version)/) {
if (/--local/ or !/--package/) {
tag 'package-uses-local-diversion', "$file:$.";
+   }
+   my $mode = /--remove/ ? 'remove' : 'add';
+   my ($divert) = /dpkg-divert\s*(.*)$/;
+   $divert =~ 
s/\s*--(?:add|quiet|remove|rename|test|local|(:?admindir|divert|package)\s+\S+)\s*//g;
+   # Remove unpaired opening or closing parenthesis
+   1 while($divert =~ m/\G.*?\(.+?\)/gc);
+   $divert =~ s/\G(.*?)[()]/$1/;
+   pos($divert) = undef;
+   # Remove unpaired opening or closing braces
+   1 while($divert =~ m/\G.*?{.+?}/gc);
+   $divert =~ s/\G(.*?)[{}]/$1/;
+   pos($divert) = undef;
+
+   # position after the last pair of quotation marks, if any
+   1 while($divert =~ m/\G.*?(\"|\').+?\1/gc);
+   # Strip anything matching and after '&&', '||', ';', or '>'
+   # this is safe only after we are positioned after the last pair
+   # of quotation marks
+   $divert =~ s/\G.+?\K(?: && | \|\| | ; | \d*> ).*$//x;
+   pos($divert) = undef;
+   # Remove quotation marks, they affect:
+   # * our var to regex trick
+   # * stripping the initial slash if the path was quoted
+   $divert =~ s/[\"\']//g;
+   # remove the leading / because it's not in the index hash
+   $divert =~ s,^/,,;
+
+   # remove any remaining leading or trailing whitespace.
+   $divert =~ s/^\s+//;
+   $divert =~ s/\s+$//;
+
+   $divert = quotemeta($divert);
+
+   # For now just replace variables, they will later be normalised
+   $expand_diversions = 1 if $divert =~ s/\\\$\w+/.+/g;
+   $expand_diversions = 1 if $divert =~ s/\\\$\\{\w+.*?\\}/.+/g;
+   # handle $() the same way:
+   $expand_diversions = 1 if $divert =~ s/\\\$\\\(.+?\\\)/.+/g;
+
+   if ($mode eq 'add') {
+   $added_diversions{$divert} = {'script' => $file, 'line' => $.};
+   } elsif ($mode eq 'remove') {
+   push @{$removed_diversions{$divert}}, {'script' => $file, 
'line' => $.};
} else {
-   my $mode = /--remove/ ? 'remove' : 'add';
-   my ($divert) = /dpkg-divert\s*(.*)$/;
-   $divert =~ 
s/\s*--(?:add|quiet|remove|rename|test|(:?admindir|divert|package)\s+\S+)\s*//g;
-   # Remove unpaired opening or closing parenthesis
-   1 while($divert =~ m/\G.*?\(.+?\)/gc);
-   $divert =~ s/\G(.*?)[()]/$1/;
-   pos($divert) = undef;
-   # Remove unpaired opening or closing braces
-   1 while($divert =~ m/\G.*?{.+?}/gc);
-   $divert =~ s/\G(.*?)[{}]/$1/;
-   pos($divert) = undef;
-
-   # position after the last pair of quotation marks, if any
-   1 while($divert =~ m/\G.*?(\"|\').+?\1/gc);
-   # Strip anything matching and after '&&', '||', ';', or '>'
-   # this is safe only after we are positioned after the last pair
-   # of quotation marks
-   $divert =~ s/\G.+?\K(?: && | \|\| | ; | \d*> ).*$//x;
-   pos($divert) = undef;
-   # Remove quotation marks, they affect:
-   # * our var to regex trick
-   # * stripping the initial slash if the path was quoted
-   $divert =~ s/[\"\']//g;
-   # remove the leading / because it's not in the index hash
-   $divert =~ s,^/,,;
-
-   # remove any remaining leading or trailing whitespace.
-   $divert =~ s/^\s+//;
-   $divert =~ s/\s+$//;
-
-   $divert = quotemeta($divert);
-
-   # For now just replace variables, they will later be normalised
-   $expand_diversions = 1 if $divert =~ s/\\\$\w+/.+/g;
-   $expand_diversions = 1 if $divert =~ s/\\\$\\{\w+.*?\\}/.+/g;
-   # handle $() the same way:
-   $expand_diversions = 1 if $divert =~ s/\\\$\\\(.+?\\\)/.+/g;
-
-   if ($mode eq 'add') {
-   $added_diversions{$divert} = {'script' => $file, 'line' => 
$.};
-   } elsif ($mode eq 'remove') {
-   push @{$removed_diversion

Bug#575447: lintian: Please add a warning in a .jar is not in /usr/share/java/

2010-03-25 Thread Sylvestre Ledru
Le jeudi 25 mars 2010 à 21:45 +0100, Niels Thykier a écrit :
> Hi
> 
> I am not sure I can support this. There has been an interest in allowing
> a package to install "private" jar files in /usr/share//.
> 
> Though jar files beneath /usr/lib/ is *usually* a problem (the swt jars
> are known exceptions). Though I think these are so rare that an override
> is in order for these. Adding a warning for jars beneath /usr/lib/ will
> cause a warning explosion in eclipse, but I am okay with that! I suspect
> quite a few of them can be moved to /usr/share/ and a lintian warning
> will serve as a good reminder of that.
I am not sure to follow you. In the first paragraph, you say you do not
agree and in the second, reading between the lines, I have the feeling
you think it might be relevant. Am I wrong ?

BTW, I am just asking for a warning, not an error ;)

Sylvestre





-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/1269550852.5310.262.ca...@zlarin



Bug#575447: lintian: Please add a warning in a .jar is not in /usr/share/java/

2010-03-25 Thread Niels Thykier
Hi

I am not sure I can support this. There has been an interest in allowing
a package to install "private" jar files in /usr/share//.

Though jar files beneath /usr/lib/ is *usually* a problem (the swt jars
are known exceptions). Though I think these are so rare that an override
is in order for these. Adding a warning for jars beneath /usr/lib/ will
cause a warning explosion in eclipse, but I am okay with that! I suspect
quite a few of them can be moved to /usr/share/ and a lintian warning
will serve as a good reminder of that.

~Niels



signature.asc
Description: OpenPGP digital signature


Bug#575447: lintian: Please add a warning in a .jar is not in /usr/share/java/

2010-03-25 Thread Sylvestre Ledru
Package: lintian
Severity: wishlist

Hello,

It would be nice if you could add a lintian warning if a .jar file is installed 
in an other
directory than /usr/share/java/

Thanks!
Sylvestre
PS: The Debian Java policy is available here: 
http://www.debian.org/doc/packaging-manuals/java-policy/x105.html





-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/1269548405.5310.166.ca...@zlarin



Site recommendation from a friend

2010-03-25 Thread sonia emmedy
HELLO,
my mane is Sonia, honest and nice looking girl, i saw your contact and decided 
to have a communication to hopping that you will accept my request, please 
reply so that i will send you my pictures and more about me.

lets distance not be a barer but lets love connect because love is like a 
bridge that connects far distance to be closed.
looking forward to read your lovely mail
yours
Sonia



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  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#575361: false positive: E: dash: package-uses-local-diversion

2010-03-25 Thread Russ Allbery
Gerrit Pape  writes:

> Hi, to me this looks like false positives.  With the current dash and
> ash packages in squeeze:

> $ lintian /var/cache/apt/archives/dash_0.5.5.1-3_powerpc.deb 
> W: dash: spelling-error-in-changelog explicitely explicitly
> W: dash: missing-debconf-dependency
> E: dash: postinst-does-not-call-updatemenus usr/share/menu/dash
> E: dash: package-uses-local-diversion prerm:15
> E: dash: package-uses-local-diversion postinst:11
> E: dash: package-uses-local-diversion postinst:23
> E: dash: package-uses-local-diversion postinst:45
> E: dash: orphaned-diversion * postinst
> $ lintian /var/cache/apt/archives/ash_0.5.5.1-3_all.deb 
> W: ash: spelling-error-in-changelog explicitely explicitly
> E: ash: depends-on-essential-package-without-using-version pre-depends: dash
> E: ash: package-uses-local-diversion postinst:23
> E: ash: orphaned-diversion * postinst
> $ 

> The code handling the diversion in these scripts is years old, and I
> never saw a local diversion created by them, nor received any bug
> reports about that.

This may be a case where Lintian is just completely baffled by what you're
doing, but let me explain what's going on and see if it makes sense.

Lintian's specific concern is not that you're *creating* a local diversion
but that, as far as it can determine, you may be *removing* local
diversions.  Debian packages are supposed to never remove local diversions
created by the sysadmin.  The specific lines that it is complaining about
look like:

dpkg-divert --remove $1

which will remove both package and local diversions.

The orphaned diversion tags are then due to bugs in Lintian because
Lintian doesn't consider what it thinks are local diversions when tracking
whether created diversions are removed.  We'll fix that.

My understanding of shell substitution patterns isn't what it ideally
should be, but my understanding is that, in prerm, you're already checking
that dash owns the diversion:

div=$(dpkg-divert --list $1)
if [ -n "$div" ] && [ -z "${div%%*by dash}" ]; then
distrib=${div% by dash}
distrib=${distrib##* to }
mv $distrib $1
dpkg-divert --remove $1
fi

If I'm right, then while it isn't necessary, it would remove the Lintian
warning and make it clearer for anyone reading prerm if you could write
the dpkg-divert --remove line as:

dpkg-divert --package dash --remove $1

instead.  In fact, I'm not entirely sure why that whole block isn't
replaced by just:

dpkg-divert --package dash --rename --remove $1

which should be roughly equivalent, but presumably there was some reason
why that didn't work?

The postinst case is somewhat more complicated, and there, it really does
look like the package is overriding local diversions in one place if the
user answers yes to the debconf prompt.  The first block of check_divert
does appear to be exactly the thing that Lintian is meant to warn about.
I think the intention was to remove the diversion no matter what package
created it, but not necessarily to remove local diversions.  If I'm right,
changing that dpkg-divert --remove invocation to:

dpkg-divert --package "$sh_diverter" --remove $2

should be completely equivalent for that use case but fail to remove local
diversions (which is probably the safe behavior since something strange
may be happening if you have a local diversion).

In the second case, you've already confirmed that the owner of the
diversion is dash, so as with the prerm, explicitly writing:

dpkg-divert --package dash --remove $2

would fix the Lintian tag.

Similarly, in the third case you've already confirmed that the owner is
ash, so changing that dpkg-divert to:

dpkg-divert --package ash --remove $2

should fix the Lintian tag.

Does this make sense?  I'm sorry about the hassle; I think that of the
four cases there, only one is arguably a bug, and the other three are
cases where the maintainer scripts in dash are doing what dpkg-divert
would do in a different way and hence are really false positives.
Although I do think as a matter of style that adding the --package option
is a good idea.

> Unfortunately a new upload of the dash package without any changes in
> these scripts is currently auto-rejected because of this.

If the above changes seem okay to you, the fastest way to fix this is
probably to make them, but if you feel strongly that you shouldn't need to
do so, I'm happy to discuss this analysis with the ftpmasters to see if
they'll make that tag overridable.

-- 
Russ Allbery (r...@debian.org)   



-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/871vf8jl7z@windlord.stanford.edu



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

2010-03-25 Thread Russ Allbery
Neil Williams  writes:

> 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.

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.

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

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?

-- 
Russ Allbery (r...@debian.org)   



-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87634kjm1c@windlord.stanford.edu



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-multiarch (no description available)
pn  libtext-template-perl  (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#575363: [checks/init.d] init.d-script-sourcing-without-test test is too simple

2010-03-25 Thread Jérémie Corbier
Package: lintian
Version: 2.3.4
Severity: normal

Lintian complains that my init scripts do not test whether
/etc/default/wide-dhcpv6-* are available.  Actually, they do but the lintian
test is too simple to catch that:

--- 8< ---
if [ ! -f /etc/default/wide-dhcpv6-relay ]; then
log_failure_msg \
"/etc/default/wide-dhcpv6-relay does not exist! - Aborting..."
log_failure_msg \
"Run 'dpkg-reconfigure wide-dhcpv6-relay' to solve the problem."
exit 1
else
. /etc/default/wide-dhcpv6-relay
fi
--- 8< ---

It would be nice if this test could be a little smarter since its severity is
serious.

Cheers,

-- 
Jeremie
/* ``Real hackers can write assembly
  code in any language''
   -- Unknown */


signature.asc
Description: Digital signature


Bug#575361: false positive: E: dash: package-uses-local-diversion

2010-03-25 Thread Gerrit Pape
Package: lintian
Version: 2.3.3

Hi, to me this looks like false positives.  With the current dash and
ash packages in squeeze:

$ lintian /var/cache/apt/archives/dash_0.5.5.1-3_powerpc.deb 
W: dash: spelling-error-in-changelog explicitely explicitly
W: dash: missing-debconf-dependency
E: dash: postinst-does-not-call-updatemenus usr/share/menu/dash
E: dash: package-uses-local-diversion prerm:15
E: dash: package-uses-local-diversion postinst:11
E: dash: package-uses-local-diversion postinst:23
E: dash: package-uses-local-diversion postinst:45
E: dash: orphaned-diversion * postinst
$ lintian /var/cache/apt/archives/ash_0.5.5.1-3_all.deb 
W: ash: spelling-error-in-changelog explicitely explicitly
E: ash: depends-on-essential-package-without-using-version pre-depends: dash
E: ash: package-uses-local-diversion postinst:23
E: ash: orphaned-diversion * postinst
$ 

The code handling the diversion in these scripts is years old, and I
never saw a local diversion created by them, nor received any bug
reports about that.

Unfortunately a new upload of the dash package without any changes in
these scripts is currently auto-rejected because of this.

Regards, Gerrit.



-- 
To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20100325082250.24424.qm...@84019cd2413149.315fe32.mid.smarden.org