-
0005945c
by Chris Lamb
at 2019-10-31T18:08:35Z
Open new changelog entry.
Gbp-Dch: ignore
-
cea51f81
by Felix Lechner
at 2019-10-31T23:27:53Z
In Lintian::Unpacker, use Moo for object-oriented programming.
This commit is part of an ongoing effort to simplify the main data
flow in Lintian. Moo helps to reduce boilerplate.
Gbp-Dch: ignore
-
277bce5f
by Felix Lechner
at 2019-10-31T23:27:58Z
Transfer to Lintian::Processable all routines from Lab::Entry and Processable::Package.
This combines all three classes into Lintian::Processable. All
functionality is now available elsewhere. Both Lab::Entry and
Processable::Package will be removed in the near future.
Lintian::Processable is now the class that get "processed" in the
pool.
Gbp-Dch: ignore
-
4e3f53e5
by Felix Lechner
at 2019-10-31T23:28:02Z
Delete Lintian::Lab::Entry.
This class is no longer used. All functionality was transferred to
Lintian::Processable or elsewhere.
Gbp-Dch: ignore
-
e40472d0
by Felix Lechner
at 2019-10-31T23:28:05Z
Delete Lintian::Processable::Package.
This class is no longer used. All functionality was transferred to
Lintian::Processable or elsewhere.
Gbp-Dch: ignore
-
a7f209e8
by Felix Lechner
at 2019-10-31T23:28:08Z
In Processable::Pool, refactor some collection hook arguments.
This commit is part of an ongoing effort to simplify the main data
flow in Lintian. Reducing function arguments tends to group code into
logical units when global variables are are not used.
Gbp-Dch: ignore
-
acba16d6
by Felix Lechner
at 2019-10-31T23:28:11Z
In Processable::Group, refactor some collection hook arguments.
This commit is part of an ongoing effort to simplify the main data
flow in Lintian. Reducing function arguments tends to group code into
logical units when global variables are are not used.
Gbp-Dch: ignore
-
beaaf79f
by Felix Lechner
at 2019-10-31T23:28:19Z
From Lintian::Lab, remove instance method get_package, which was transferred to Processable::Group.
This commit is part of an ongoing effort to simplify the main data
flow in Lintian. One goal is to place code in the proper class, which
was advanced here.
Gbp-Dch: ignore
-
8cf4bd87
by Felix Lechner
at 2019-10-31T23:53:37Z
In collection/java-info, store data in MLDBM instead of plain text files.
These values were previously stored in a plain text file. That
approach was fast but had many disadvantages with respect to escape
characters and encodings.
This will ultimately help resolve Bug#929729.
Gbp-Dch: ignore
-
42db4d9d
by Felix Lechner
at 2019-10-31T23:53:43Z
In Lintian::Collect::Binary, read from MLDBM in new facilites for details on java-info.
These values were previously stored in a plain text file. That
approach was fast but had many disadvantages with respect to escape
characters and encodings.
This will ultimately help resolve Bug#929729.
Gbp-Dch: igore
-
e1c11106
by Felix Lechner
at 2019-10-31T23:53:43Z
In Lintian::Collect::Source, read from MLDBM in new facilites for details on java-info.
These values were previously stored in a plain text file. That
approach was fast but had many disadvantages with respect to escape
characters and encodings.
This will ultimately help resolve Bug#929729.
Gbp-Dch: igore
-
aa1ccbab
by Felix Lechner
at 2019-11-01T03:59:46Z
In collection src-orig-index, drop reference to obsolete class Processable::Package.
Together with Lab::Entry, this class was merged into Processable. All
three did basically the same thing. The differences will be worked out
with Moo roles in the future.
The presence of this reference in a collection script caused a test
failure on Gitlab after all tests completed successfully on a desktop
computer running Debian stable.
It probably means that the work product of the collection script
src-orig-index is not tested.
Together with the following commit, this should restore building on
Gitlab.
Gbp-Dch: ignore
-
323957d7
by Felix Lechner
at 2019-11-01T04:00:42Z
In t/scripts/pod-coverage.t, drop reference to obsolete class Lab::Entry.
Together with Processable::Package, this class was merged into
Processable. All three did basically the same thing. The differences
will be worked out with Moo roles in the future.
The presence of this reference in a TAP script caused a test failure
on Gitlab after all tests completed sucessfully on a desktop computer
running Debian stable.
It probably means that the test suite loads installed modules when
they are unavailable in LINTIAN_ROOT. Similar symptoms have been
observed before. They are probably worth addressing.
Together with the prior commit, this should restore building on
Gitlab.
Gbp-Dch: ignore
-
b6a60e83
by Felix Lechner
at 2019-11-01T05:23:21Z
Remove POD references to obsolete class Processable::Packages; does not FTBS on desktop.
The presence of this reference in POD documentation caused a test
failure on Gitlab in t/script/pod-synopsis.t after all tests completed
sucessfully on a desktop computer running Debian stable.
It's unclear why the test did not fail locally.
Gbp-Dch: ignore
-
e145d962
by Felix Lechner
at 2019-11-01T15:07:34Z
Add 'noguile' to the list of valid build profiles. (Closes: #943947)
Brings Lintian's list of build profiles in line with the official list
located at:
https://wiki.debian.org/BuildProfileSpec#Registered_profile_names
It would be nice if Lintian had a automated update script to glean
this information from that URL. The script would be used manually when
necessary.
-
ee419833
by Chris Lamb
at 2019-11-01T19:34:16Z
Upgrade the severity of missing-systemd-service-for-init.d-script from pedantic to a normal warning. (Closes; #943957)
-
4d88fce1
by Chris Lamb
at 2019-11-01T21:28:40Z
Update tests for ee4198331.
Gbp-Dch: ignore
-
1367e877
by Chris Lamb
at 2019-11-01T21:29:26Z
Suggest switching from debian/compat to debhelper-compat. (Closes: #933304)
-
9784cfda
by Felix Lechner
at 2019-11-02T00:41:04Z
Add TAGS to .gitignore.
Gbp-Dch: ignore
-
43a836e7
by Felix Lechner
at 2019-11-02T00:41:04Z
Use true boolean value for {calls_env} returned by collection scripts.
Using 'undef' to indicate boolean FALSE can have unintended
consequences. For details, please see Bug#943724.
Gbp-Dch: ignore
-
d3d56f18
by Felix Lechner
at 2019-11-02T00:41:04Z
Return 0 for boolean FALSE in methods that return truth values.
Using 'undef' to indicate boolean FALSE can have unintended
consequences. For details, please see Bug#943724.
Gbp-Dch: ignore
-
a5198298
by Felix Lechner
at 2019-11-02T00:41:04Z
In Lintian::Relation, return 0 for boolean FALSE only in public methods returning truth values.
Using undef to indicate boolean FALSE can have unintended
consequences. For details, please see Bug#943724.
Some of the routines in this file return one of the three states 1, 0
and undef. This is presumably done to make the code more efficient.
The most notable example here is implies_element, but also
implies_array and the inverse subroutines for both. To return 0
instead of undef would be an error.
Instead, only the public-facing interface, which obviously means to
deliver boolean values, is modified.
In the case of Relation::visit, force scalar context. Otherwise the
regular _expression_ in the 'matches' routine above it could return
undef. All other users also expect boolean values, judging from the
POD for visit.
Gbp-Dch: ignore
-
ac15102b
by Felix Lechner
at 2019-11-02T00:41:04Z
In test script Lintan::Relation/07-implies.t, adjust expected values for boolean false to be 0 instead of undef.
Using 'undef' to indicate boolean FALSE can have unintended
consequences. For details, please see Bug#943724.
Gbp-Dch: ignore
-
15ae1403
by Felix Lechner
at 2019-11-02T00:41:04Z
In Lintian::Lab, fix POD documentation at lease with respect to format.
The errors that triggered these changes did not appear in the test
suite until Lintian started depending on libclass-xsaccessor-perl.
The report for Bug#943724 may or may not provide a clue as to why.
Gbp-Dch: ignore
-
29a4d4dc
by Felix Lechner
at 2019-11-02T00:41:04Z
In Processable::Group, fix POD documentation at least with respect to format.
The errors that triggered these changes did not appear in the test
suite until Lintian started depending on libclass-xsaccessor-perl.
The report for Bug#943724 may or may not provide a clue as to why.
Gbp-Dch: ignore
-
f4c56593
by Felix Lechner
at 2019-11-02T00:41:04Z
In Processable::Pool, fix POD documentation at least with respect to format.
The errors that triggered these changes did not appear in the test
suite until Lintian started depending on libclass-xsaccessor-perl.
The report for Bug#943724 may or may not provide a clue as to why.
Gbp-Dch: ignore
-
9a65e81f
by Felix Lechner
at 2019-11-02T00:43:23Z
Require libclass-xsaccessor-perl in both Depends and Build-Depends.
Moo accessors behave somewhat differently when Class::XSAccessor is
available. Bug#943724 only showed up when the module was installed.
This commit requires the module for everyone.
Moo's behavior is documented here:
https://metacpan.org/pod/Moo#MOO-AND-CLASS::XSACCESSOR
While it is not great for Lintian to depend on modules that are not
essential, doing so will reduce the risk for malfunction or FTBFS in
this case. Many people run builders with recommended packages enabled.
On the positive side, Class::XSAccessor should be 3-4 times faster,
although it may not be relevant for Lintian. The POD tests are also
more stringent, which is probably desirable.
Lintian maintainers running Lintian primarily via t/bin/runtests or
frontend/lintian may not become aware of the new prerequisite without
a note.
A ticket was filed under RT#8012 to also update the installed packages
on lindsay.d.o.
-
15690c3f
by Felix Lechner
at 2019-11-02T12:11:35Z
In tests, set default to --pedantic.
This switches the default invocation of Lintian in the test suite to
'--pedantic'. Many new tags will appear, but only in related checks.
This commit was motivated by 4d88fce1. The test suite should not need
to be recalibrated because a tag's severity level changed. The whole
purpose of the 'universal' tag format was to remove this information.
This commit completes that train of thought.
Logically, this change also follows commit 0af8a3d8. In it, the test
suite ran just specified checks. It stopped many nuisance tags, such
as debian-watch-does-not-check-gpg-signature, from appearing
throughout the test suite. Now that tag appears only in tests related
to the check debian/watch.
The tests now focus on whether a condition was detected properly. It
is the essence of good check writing.
Some test specifications individually require the pedantic setting.
Those individual settings will be removed once it is clear that the
test suite performs as intended with this change.
Some tags relate to these default settings. They should be modified so
that the pedantic tags, like regular ones, appear less frequently and
ideally only when provoked by a particular test case.
Gbp-Dch: ignore
-
93c391d6
by Felix Lechner
at 2019-11-02T12:13:29Z
In t/scripts/harness/logged-prepare.t, expect --pedantic in tests.
This test is a misnomer. It primarily tests the default settings. They
changed, and that is reflected here.
Gbp-Dch: ignore
-
c057bb76
by Felix Lechner
at 2019-11-02T12:13:38Z
In tests, add the newly appearing pedantic tags to the list of expected tags.
The default for the test suite changed to --pedantic. Here are the
tags that appeared.
This commit was motivated by 4d88fce1. The test suite should not need
to be recalibrated because a tag's severity level changed. The whole
purpose of the 'universal' tag format was to remove this information.
This commit completes that train of thought.
Logically, this change also follows commit 0af8a3d8. In it, the test
suite ran just specified checks. It stopped many nuisance tags, such
as debian-watch-does-not-check-gpg-signature, from appearing
throughout the test suite. Now that tag appears only in tests related
to the check debian/watch.
The tests now focus on whether a condition was detected properly. It
is the essence of good check writing.
Some tags relate to default settings. Those should be modified so that
pedantic tags, like regular ones, appear less frequently and ideally
only when provoked by a particular test case.
Some test specifications individually require the pedantic setting.
Those individual settings will be removed once it is clear that the
test suite performs as intended with this change.
-
5391c4dc
by Felix Lechner
at 2019-11-02T14:19:23Z
Adjust literal tests for appearance of pedantic tags, which were enabled for all tests.
For tests using Match-Strategy: literal, adds the newly appearing
tags, all of which have the severity 'pedantic', to the list of
expected tags.
The default for the test suite changed to --pedantic.
Gbp-Dch: ignore
-
eee151fc
by Felix Lechner
at 2019-11-02T19:57:03Z
Convert Processable to Moo.
These changes look insignificant but they were a major step in
disentangling Processable from Collect and Unpacker.
The key was to wait with transferring the 'extra-fields' until the
info structure is read for the first time. At that point, the Unpacker
has completed all the unpacking.
All of this will fade into the distance as functionality can now be
moved between the appropriate places in various classes and roles.
Gbp-Dch: ignore
-
ee2442c3
by Felix Lechner
at 2019-11-02T19:58:53Z
In collection/src-orig-index, use new Moo class for Processable.
This only uses the 'source' version.
Gbp-Dch: ignore
-
cd2a9ef7
by Felix Lechner
at 2019-11-02T20:00:12Z
In Processable::Group, use the new Moo class for Processable.
Gbp-Dch: ignore
-
119cdfe3
by Peter Wienemann
at 2019-11-03T18:32:56Z
Add a "standards-version" classification tag to extend the collection of trend plots on https://trends.debian.net, etc.
Signed-off-by: Chris Lamb <lamby@debian.org>
-
16e4b8e3
by Felix Lechner
at 2019-11-03T18:53:28Z
Split Processable into five role users; Processable becomes a properly abstracted Moo role.
The five consumers of the new Moo role Processable deal with most type
related issues, so that much of the code base surrounding Processable
can become type-agnostic.
The notable exception is presently Processable::Group, which will
ensure going forward that, for source packages, all files are
symlinked. That may be revisited. It works great for now.
Makes the mechanism for guessing package names from file names more
explict via 'basename'.
That code path is difficult to test because it is rarely taken. In
the test suite, only the 'fields-general-missing' family is confirmed
to require a guess. Those cases is furtermore special because there is
no underscore; the fields for version and architecture are missing.
Gbp-Dch: ignore
-
37c9191c
by Felix Lechner
at 2019-11-03T18:53:28Z
In Processable::Group, use new Processable subclasses; improve error handling.
This instantiates the five users of the mew Moo role Processable,
which properly abstracts the package type. The new role is completely
type-agnostic.
Also eliminates an errorhandler related to an 'eval' in Unpacker. The
eval there was removed. It trapped errors but also led to the obsuring
of errors. Lintian failed later on, but with the wrong error messages.
The last change may improve our understanding of why lindsay.d.o
sometimes bails out.
Also clarifies the boolean return type in Group->unpack for one code
path.
Gbp-Dch: ignore
-
c3078dbd
by Felix Lechner
at 2019-11-03T18:53:28Z
In Processable::Group, use the module Processable::Source, which uses the new Moo role Processable.
This instantiates the new Processable::Source, which uses the new Moo
role Processable. The latter properly abstract the package type.
Gbp-Dch: ignore
-
3444a066
by Felix Lechner
at 2019-11-03T18:53:28Z
In Unpacker, eliminate an 'eval' that obscured messages to improve error handling.
Eliminates an 'eval' which trapped errors but sometimes led to the
obsuring of hideous errors. Lintian failed later on, but with the
wrong error messages!
This change may improve our understanding of why lindsay.d.o sometimes
bails out. It could also negatively affect the ability of automated
runs to recover.
-
ae80803a
by Felix Lechner
at 2019-11-03T21:31:25Z
Require libnamespace-clean-perl in both Depends and Build-Depends.
Moo::Role modifies the symbol table, but the behaviour is sensitive to
the order of imports in the consuming code. That caused a build error
for testing an unstable on Gitlab, which this commit series tries to
fix.
The build error did not appear on Debian stable before the offending
changes were committed to the group repo.
Stable and testing have the same version of Moo, so the change is
presumably in Perl, which is different, or in constant.pm.
I had followed a recommendation to place Moo::Role last, but that did
not clean the namespace. The POD tests then picked up the offending
names (all constants) from the symbol table.
Moo's behavior is documented here:
https://metacpan.org/pod/Moo#CLEANING-UP-IMPORTS
This adds namespace::clean to Lintian's prerequisites in d/control.
A ticket was filed under RT#8015 to also update the packages installed
on lindsay.d.o
-
759e5b2e
by Felix Lechner
at 2019-11-03T21:36:55Z
In consuming packages, place Moo::Role last among imports and clean up the namespace.
Newer versions of Debian (testing and unstable) trigger the POD tests
because the namespace is not clean.
The issue is described here:
https://metacpan.org/pod/Moo#CLEANING-UP-IMPORTS
This commit cleans the namespace in modules that use Moo::Role. If
that solves the build failures on Gitlab, a similar technique will be
applied to regular Moo imports, as well.
Gbp-Dch: ignore
-
506ae198
by Felix Lechner
at 2019-11-04T03:35:11Z
Add namespace::clean to all modules that use plain Moo and place those imports last.
Newer versions of Debian (testing and unstable) trigger the POD tests
because the namespace is not clean.
The issue is described here:
https://metacpan.org/pod/Moo#CLEANING-UP-IMPORTS
This commit cleans the namespace in modules that use plain Moo. An
earlier commit dealt only with Moo::Role.
Gbp-Dch: ignore
-
64130105
by Felix Lechner
at 2019-11-04T14:15:00Z
Fix tag description for symbols-file-missing-build-depends-package-field.
Perhaps this will reduce the errant use of the #PACKAGE# placeholder
described in Bug#944047.
-
869ea32c
by Chris Lamb
at 2019-11-04T17:40:59Z
Release lintian/2.33.0 into unstable.
-
f9f9b7e6
by Chris Lamb
at 2019-11-07T19:12:37Z
Merge tag '2.33.0' into stretch-backports
Release lintian/2.33.0 into unstable.
Format: 1.8
Date: Mon, 04 Nov 2019 17:40:59 +0000
Source: lintian
Architecture: source
Version: 2.33.0
Distribution: unstable
Urgency: medium
Maintainer: Debian Lintian Maintainers <lintian-maint@debian.org>
Changed-By: Chris Lamb <lamby@debian.org>
Closes: 933304 943947 943957
Changes:
lintian (2.33.0) unstable; urgency=medium
.
[ Chris Lamb ]
* Suggest switching from debian/compat to debhelper-compat. (Closes: #933304)
* Upgrade the severity of missing-systemd-service-for-init.d-script from
pedantic to a warning. (Closes: #943957)
.
[ Felix Lechner ]
* Add 'noguile' to the list of valid build profiles. (Closes: #943947)
* Add libclass-xsaccessor-perl and libnamespace-clean-perl to Depends and
Build-Depends.
* Fix the tag description for the
symbols-file-missing-build-depends-package-field tag.
* In the tests add the newly appearing pedantic tags to the list of
expected tags.
* In Unpacker, eliminate an 'eval' that obscured messages to improve
error handling.
* In Lintian::Collect::{Binary,Source}, read from MLDBM in new facilites
for details on java-info.
.
[ Peter Wienemann ]
* Add a "standards-version" classification tag to extend the collection
of plots on <https://trends.debian.net>.
Checksums-Sha1:
76c41f17afa89c93c8fb2c0292aeaa85a4f3882c 3189 lintian_2.33.0.dsc
a20ea9fb3cdaf957489d741a1bc2ddefedaf5c7a 1796384 lintian_2.33.0.tar.xz
131a4e76c569cd61fecad00dfab6c31d6d5da6ed 15926 lintian_2.33.0_amd64.buildinfo
Checksums-Sha256:
0c83697426d194d502a8bfd4618e553968df26c38759cfed7ec42da7c6ab6362 3189 lintian_2.33.0.dsc
d7083d72cecabcc8e602f5cf44359a5f4e49c5ed462c8a8667259a0f84cd59bf 1796384 lintian_2.33.0.tar.xz
d6555a61150ff64c8d03a3225e037349d80c14875f23f911033e4303a3c435cc 15926 lintian_2.33.0_amd64.buildinfo
Files:
70863a3038d775da754451aad084ac61 3189 devel optional lintian_2.33.0.dsc
789efa17804ba81c0e23b2efcfe82b31 1796384 devel optional lintian_2.33.0.tar.xz
a96626f7d625e1a6deb65a06a0b7ffcd 15926 devel optional lintian_2.33.0_amd64.buildinfo
* tag '2.33.0': (44 commits)
Release lintian/2.33.0 into unstable.
Fix tag description for symbols-file-missing-build-depends-package-field.
Add namespace::clean to all modules that use plain Moo and place those imports last.
In consuming packages, place Moo::Role last among imports and clean up the namespace.
Require libnamespace-clean-perl in both Depends and Build-Depends.
In Unpacker, eliminate an 'eval' that obscured messages to improve error handling.
In Processable::Group, use the module Processable::Source, which uses the new Moo role Processable.
In Processable::Group, use new Processable subclasses; improve error handling.
Split Processable into five role users; Processable becomes a properly abstracted Moo role.
Add a "standards-version" classification tag to extend the collection of trend plots on https://trends.debian.net, etc.
In Processable::Group, use the new Moo class for Processable.
In collection/src-orig-index, use new Moo class for Processable.
Convert Processable to Moo.
Adjust literal tests for appearance of pedantic tags, which were enabled for all tests.
In tests, add the newly appearing pedantic tags to the list of expected tags.
In t/scripts/harness/logged-prepare.t, expect --pedantic in tests.
In tests, set default to --pedantic.
Require libclass-xsaccessor-perl in both Depends and Build-Depends.
In Processable::Pool, fix POD documentation at least with respect to format.
In Processable::Group, fix POD documentation at least with respect to format.
...
-
ce3446c0
by Chris Lamb
at 2019-11-07T19:12:48Z
Rebuild for stretch-backports.