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

Bug#990372: buster-pu: package feature-check/0.2.2-3



Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@packages.debian.org
Usertags: pu

This is a pre-approval request for feature-check/0.2.2-3+deb10u1 to
fix the #990276 RC bug already fixed in unstable.

[ Reason ]
See #990276 (https://bugs.debian.org/990276): Version comparisons may
return the wrong result.

[ Impact ]
If the feature-check command-line tool is used by other programs to
make sure that an installed program has a recent enough version of
a supported feature, the checks may fail for some versions containing
non-numeric characters (pre-release, patch, etc).

[ Tests ]
The patches include additions to the feature-check unit-test suite that
is run both at build time and as an autopkgtest.

[ Risks ]
Leaf package, not widely used yet; targeted fix, so hopefully
any risks are very low.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]
In my infinite wisdom of > 20 years of Perl programming, I managed to
switch around the "cmp" and "<=>" comparison operators for integer and
string values, leading to, mm, incorrect results and diagnostic messages.
The changes switch the operators back and add test cases covering
the relevant usage.
diff -Nru feature-check-0.2.2/debian/changelog feature-check-0.2.2/debian/changelog
--- feature-check-0.2.2/debian/changelog	2019-02-26 17:08:55.000000000 +0200
+++ feature-check-0.2.2/debian/changelog	2021-06-27 17:49:55.000000000 +0300
@@ -1,3 +1,10 @@
+feature-check (0.2.2-3+deb10u1) buster; urgency=medium
+
+  * Add the cmp-num and cmp-rest upstream patches to fix some version
+    string comparisons. Closes: #990276
+
+ -- Peter Pentchev <roam@debian.org>  Sun, 27 Jun 2021 17:49:55 +0300
+
 feature-check (0.2.2-3) unstable; urgency=medium
 
   * Switch to a DEP-14 debian/master branch.
diff -Nru feature-check-0.2.2/debian/patches/cmp-num.patch feature-check-0.2.2/debian/patches/cmp-num.patch
--- feature-check-0.2.2/debian/patches/cmp-num.patch	1970-01-01 02:00:00.000000000 +0200
+++ feature-check-0.2.2/debian/patches/cmp-num.patch	2021-06-27 17:49:55.000000000 +0300
@@ -0,0 +1,46 @@
+Description: Fix a 2 < 10 version int/string bug.
+Origin: upstream; https://gitlab.com/ppentchev/feature-check/-/commit/ed0da5159562fa37cf32386a1baf2a1114562822
+Bug-Debian: https://bugs.debian.org/990276
+Author: Peter Pentchev <roam@ringlet.net>
+Last-Update: 2021-06-24
+
+--- a/perl5/feature-check.pl
++++ b/perl5/feature-check.pl
+@@ -269,7 +269,7 @@
+ 	if ($na ne '') {
+ 		if ($nb ne '') {
+ 			if ($nb != $na) {
+-				return $na cmp $nb;
++				return $na <=> $nb;
+ 			}
+ 		} else {
+ 			return 1;
+--- a/t/04-simple.t
++++ b/t/04-simple.t
+@@ -1,6 +1,6 @@
+ #!/usr/bin/perl
+ #
+-# Copyright (c) 2018  Peter Pentchev
++# Copyright (c) 2018, 2021  Peter Pentchev
+ # All rights reserved.
+ #
+ # Redistribution and use in source and binary forms, with or without
+@@ -89,6 +89,18 @@
+ 	['base ge 3', 0],
+ 	['base gt 3', 0],
+ 	['base eq 3', 0],
++
++	['base lt 10', 1],
++	['base le 10', 1],
++	['base ge 10', 0],
++	['base gt 10', 0],
++	['base eq 10', 0],
++
++	['base lt 10.1', 1],
++	['base le 10.1', 1],
++	['base ge 10.1', 0],
++	['base gt 10.1', 0],
++	['base eq 10.1', 0],
+ );
+ 
+ my %c = env_init;
diff -Nru feature-check-0.2.2/debian/patches/cmp-rest.patch feature-check-0.2.2/debian/patches/cmp-rest.patch
--- feature-check-0.2.2/debian/patches/cmp-rest.patch	1970-01-01 02:00:00.000000000 +0200
+++ feature-check-0.2.2/debian/patches/cmp-rest.patch	2021-06-27 17:49:55.000000000 +0300
@@ -0,0 +1,62 @@
+Description: Fix a 3.0.beta2 < 3.0 version int/string bug.
+Origin: upstream; https://gitlab.com/ppentchev/feature-check/-/commit/59e618baff6836f281697561f5a9cfa22ccd28df
+Bug-Debian: https://bugs.debian.org/990276
+Author: Peter Pentchev <roam@ringlet.net>
+Last-Update: 2021-06-24
+
+--- a/perl5/feature-check.pl
++++ b/perl5/feature-check.pl
+@@ -282,7 +282,7 @@
+ 	if ($ra ne '') {
+ 		if ($rb ne '') {
+ 			if ($ra ne $rb) {
+-				return $ra <=> $rb;
++				return $ra cmp $rb;
+ 			}
+ 		} else {
+ 			return 1;
+--- a/t/04-simple.t
++++ b/t/04-simple.t
+@@ -101,6 +101,42 @@
+ 	['base ge 10.1', 0],
+ 	['base gt 10.1', 0],
+ 	['base eq 10.1', 0],
++
++	['beta lt 1', 0],
++	['beta le 1', 0],
++	['beta eq 1', 0],
++	['beta ge 1', 1],
++	['beta gt 1', 1],
++
++	['beta lt 3.0', 1],
++	['beta le 3.0', 1],
++	['beta eq 3.0', 0],
++	['beta ge 3.0', 0],
++	['beta gt 3.0', 0],
++
++	['beta lt 3.0.beta1', 0],
++	['beta le 3.0.beta1', 0],
++	['beta eq 3.0.beta1', 0],
++	['beta ge 3.0.beta1', 1],
++	['beta gt 3.0.beta1', 1],
++
++	['beta lt 3.0.beta2', 0],
++	['beta le 3.0.beta2', 1],
++	['beta eq 3.0.beta2', 1],
++	['beta ge 3.0.beta2', 1],
++	['beta gt 3.0.beta2', 0],
++
++	['beta lt 3.0.beta3', 1],
++	['beta le 3.0.beta3', 1],
++	['beta eq 3.0.beta3', 0],
++	['beta ge 3.0.beta3', 0],
++	['beta gt 3.0.beta3', 0],
++
++	['beta lt 3.0.0', 1],
++	['beta le 3.0.0', 1],
++	['beta eq 3.0.0', 0],
++	['beta ge 3.0.0', 0],
++	['beta gt 3.0.0', 0],
+ );
+ 
+ my %c = env_init;
diff -Nru feature-check-0.2.2/debian/patches/series feature-check-0.2.2/debian/patches/series
--- feature-check-0.2.2/debian/patches/series	2019-01-14 16:45:12.000000000 +0200
+++ feature-check-0.2.2/debian/patches/series	2021-06-27 17:49:04.000000000 +0300
@@ -1 +1,3 @@
 python-no-executable.patch
+cmp-num.patch
+cmp-rest.patch

Attachment: signature.asc
Description: PGP signature


Reply to: