Bug#861525: unblock: lintian/2.5.50.2
Niels Thykier:
> Package: release.debian.org
> Severity: normal
> User: release.debian.org@packages.debian.org
> Usertags: unblock
>
> Please unblock package lintian
>
> The 2.5.50.2 unload works around a "perl stack" corruption (not to be
> confused with perl's C stack) and makes a gnuplot file compability
> with gnuplot 5 (so it works with the version we are shipping in
> stretch).
>
> I will expand on the stack corruption below in case it is relevant for
> your understanding of the issue and the fix[1]. That said, the fix is
> shorter than my explanation, so you may just want to skip ahead to the
> debdiff.
>
> unblock lintian/2.5.50.2
>
> Thanks,
> ~Niels
>
> [...]
Fumble-fingered reportbug, here is the debdiff. The upload is in the
queue and should be ACCEPTed soon. :)
Thanks,
~Niels
diff -Nru lintian-2.5.50.1/debian/changelog lintian-2.5.50.2/debian/changelog
--- lintian-2.5.50.1/debian/changelog 2017-02-04 16:05:07.000000000 +0100
+++ lintian-2.5.50.2/debian/changelog 2017-04-30 09:40:24.000000000 +0200
@@ -1,3 +1,16 @@
+lintian (2.5.50.2) unstable; urgency=medium
+
+ * frontend/dplint:
+ + [NT] Work around a "Bizarre Copy" bug in perl that could trigger
+ on errors. Notably, this bug causes the reporting framework in
+ lintian to break with a very non-informative error when the
+ "state-cache" is not present.
+
+ * reporting/graphs/tags.gpi:
+ + [NT] Tweak tags.gpi so it works with gnuplot 5.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 30 Apr 2017 07:40:24 +0000
+
lintian (2.5.50.1) unstable; urgency=medium
* debian/copyright:
diff -Nru lintian-2.5.50.1/frontend/dplint lintian-2.5.50.2/frontend/dplint
--- lintian-2.5.50.1/frontend/dplint 2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/frontend/dplint 2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
}
sub run_tool {
- my ($truename, $tool, @args) = @_;
+ my ($truename, $tool) = @_;
for my $include_dir (@INCLUDE_DIRS) {
my $tool_path = "$include_dir/commands/${tool}";
my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
}
{
# Scope here it to avoid a warning about exec not returning.
- exec {$tool_path} $truename, @args;
+ exec {$tool_path} $truename, @ARGV;
}
local $" = ' ';
error(
"Running $tool failed!",
- " Command: $tool_path @args",
+ " Command: $tool_path @ARGV",
" Error from exec: $!"
);
}
@@ -273,7 +273,7 @@
error("Built-in $cmd returned unexpectedly");
}
$truename //= $cmd;
- run_tool($truename, $cmd, @ARGV);
+ run_tool($truename, $cmd);
error('run_tool returned unexpectedly');
}
diff -Nru lintian-2.5.50.1/frontend/lintian lintian-2.5.50.2/frontend/lintian
--- lintian-2.5.50.1/frontend/lintian 2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/frontend/lintian 2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
}
sub run_tool {
- my ($truename, $tool, @args) = @_;
+ my ($truename, $tool) = @_;
for my $include_dir (@INCLUDE_DIRS) {
my $tool_path = "$include_dir/commands/${tool}";
my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
}
{
# Scope here it to avoid a warning about exec not returning.
- exec {$tool_path} $truename, @args;
+ exec {$tool_path} $truename, @ARGV;
}
local $" = ' ';
error(
"Running $tool failed!",
- " Command: $tool_path @args",
+ " Command: $tool_path @ARGV",
" Error from exec: $!"
);
}
@@ -273,7 +273,7 @@
error("Built-in $cmd returned unexpectedly");
}
$truename //= $cmd;
- run_tool($truename, $cmd, @ARGV);
+ run_tool($truename, $cmd);
error('run_tool returned unexpectedly');
}
diff -Nru lintian-2.5.50.1/frontend/lintian-info lintian-2.5.50.2/frontend/lintian-info
--- lintian-2.5.50.1/frontend/lintian-info 2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/frontend/lintian-info 2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
}
sub run_tool {
- my ($truename, $tool, @args) = @_;
+ my ($truename, $tool) = @_;
for my $include_dir (@INCLUDE_DIRS) {
my $tool_path = "$include_dir/commands/${tool}";
my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
}
{
# Scope here it to avoid a warning about exec not returning.
- exec {$tool_path} $truename, @args;
+ exec {$tool_path} $truename, @ARGV;
}
local $" = ' ';
error(
"Running $tool failed!",
- " Command: $tool_path @args",
+ " Command: $tool_path @ARGV",
" Error from exec: $!"
);
}
@@ -273,7 +273,7 @@
error("Built-in $cmd returned unexpectedly");
}
$truename //= $cmd;
- run_tool($truename, $cmd, @ARGV);
+ run_tool($truename, $cmd);
error('run_tool returned unexpectedly');
}
diff -Nru lintian-2.5.50.1/frontend/lintian-lab-tool lintian-2.5.50.2/frontend/lintian-lab-tool
--- lintian-2.5.50.1/frontend/lintian-lab-tool 2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/frontend/lintian-lab-tool 2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
}
sub run_tool {
- my ($truename, $tool, @args) = @_;
+ my ($truename, $tool) = @_;
for my $include_dir (@INCLUDE_DIRS) {
my $tool_path = "$include_dir/commands/${tool}";
my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
}
{
# Scope here it to avoid a warning about exec not returning.
- exec {$tool_path} $truename, @args;
+ exec {$tool_path} $truename, @ARGV;
}
local $" = ' ';
error(
"Running $tool failed!",
- " Command: $tool_path @args",
+ " Command: $tool_path @ARGV",
" Error from exec: $!"
);
}
@@ -273,7 +273,7 @@
error("Built-in $cmd returned unexpectedly");
}
$truename //= $cmd;
- run_tool($truename, $cmd, @ARGV);
+ run_tool($truename, $cmd);
error('run_tool returned unexpectedly');
}
diff -Nru lintian-2.5.50.1/frontend/spellintian lintian-2.5.50.2/frontend/spellintian
--- lintian-2.5.50.1/frontend/spellintian 2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/frontend/spellintian 2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
}
sub run_tool {
- my ($truename, $tool, @args) = @_;
+ my ($truename, $tool) = @_;
for my $include_dir (@INCLUDE_DIRS) {
my $tool_path = "$include_dir/commands/${tool}";
my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
}
{
# Scope here it to avoid a warning about exec not returning.
- exec {$tool_path} $truename, @args;
+ exec {$tool_path} $truename, @ARGV;
}
local $" = ' ';
error(
"Running $tool failed!",
- " Command: $tool_path @args",
+ " Command: $tool_path @ARGV",
" Error from exec: $!"
);
}
@@ -273,7 +273,7 @@
error("Built-in $cmd returned unexpectedly");
}
$truename //= $cmd;
- run_tool($truename, $cmd, @ARGV);
+ run_tool($truename, $cmd);
error('run_tool returned unexpectedly');
}
diff -Nru lintian-2.5.50.1/reporting/graphs/tags.gpi lintian-2.5.50.2/reporting/graphs/tags.gpi
--- lintian-2.5.50.1/reporting/graphs/tags.gpi 2016-09-25 20:21:58.000000000 +0200
+++ lintian-2.5.50.2/reporting/graphs/tags.gpi 2017-04-29 19:53:57.000000000 +0200
@@ -1,4 +1,4 @@
-tag="$0"
+tag=sprintf("%s", ARG1)
# set terminal png truecolor small size 600,300
set terminal svg size 640,375 font "Sans,11"
diff -Nru lintian-2.5.50.1/reporting/harness lintian-2.5.50.2/reporting/harness
--- lintian-2.5.50.1/reporting/harness 2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/reporting/harness 2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
}
sub run_tool {
- my ($truename, $tool, @args) = @_;
+ my ($truename, $tool) = @_;
for my $include_dir (@INCLUDE_DIRS) {
my $tool_path = "$include_dir/commands/${tool}";
my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
}
{
# Scope here it to avoid a warning about exec not returning.
- exec {$tool_path} $truename, @args;
+ exec {$tool_path} $truename, @ARGV;
}
local $" = ' ';
error(
"Running $tool failed!",
- " Command: $tool_path @args",
+ " Command: $tool_path @ARGV",
" Error from exec: $!"
);
}
@@ -273,7 +273,7 @@
error("Built-in $cmd returned unexpectedly");
}
$truename //= $cmd;
- run_tool($truename, $cmd, @ARGV);
+ run_tool($truename, $cmd);
error('run_tool returned unexpectedly');
}
Reply to: