clone 695361 -1
reassign -1 man-db
retitle -1 man-db: Please revert workaround for less 456
severity -1 serious
# Justification: 695361 is serious
block 695361 by -1
tags -1 patch
thanks
Hi Colin,
In #695459 you added a workaround for the new backslash-escaping behavior
in less 456-1. Upstream less 457 has since reverted this behavior unless
opted in, so I think the sanest thing to do is to remove this workaround
entirely from man-db, declare a Breaks on just version 456, and put less
= 457 into testing.
Attached is a debdiff for a local test build to do this -- see also my
comment in the less bug, #695361, reproduced below. Please incorporate and
upload this change, and also revert the upstream commit of the workaround;
then less 457 or above can be safely uploaded to close #695361.
I note that the maintainers of both man-db and less are on the
LowThresholdNmu list, so since this is currently blocking sane
dist-upgrades to testing (I'm caring because I tried to upgrade my laptop
and apt is threatening to remove less), I'm happy to NMU either or both
these packages, if that's easier for you. I'll wait for comments until
tomorrow evening my time, about 24h, before doing so.
--
Geoffrey Thomas
http://ldpreload.com
geo...@ldpreload.com
On Mon, 6 May 2013, Vincent Lefevre wrote:
On 2013-05-05 17:55:44 -0700, Geoffrey Thomas wrote:
Since upstream less has reverted this behavior, it seems to me that the
right approach is to revert man-db's workaround, mark it as breaking less
456 only (since 456 and = 457 are then both okay), and upload the new
less upstream release as closing this bug.
Attached is a debdiff for the change to man-db needed to implement this.
Since you can't have a Breaks field for a range bounded on both sides, I've
just marked it as breaking less 456-1 and 456-1ubuntu1, the only known
packaged versions. I've tested that building this patch works the way that
you'd expect: apt neither installs the new version of less from unstable,
nor attempts to remove it. I've also test-built the new less upstream
release (458; 457 is no longer available) with no other changes to
packaging, and it works fine and `man apt.conf` displays the right thing.
I haven't tested, but I think this is the way to do.
--
Vincent Lefèvre vinc...@vinc17.net - Web: http://www.vinc17.net/
100% accessible validated (X)HTML - Blog: http://www.vinc17.net/blog/
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
diff -Nru man-db-2.6.3/debian/changelog man-db-2.6.3/debian/changelog
--- man-db-2.6.3/debian/changelog 2012-12-16 04:18:24.0 -0800
+++ man-db-2.6.3/debian/changelog 2013-05-05 16:20:30.0 -0700
@@ -1,3 +1,10 @@
+man-db (2.6.3-3geofft1) unstable; urgency=low
+
+ * The incompatible change from less 456 has been reverted, so revert
+our patch and instead Break that version of less.
+
+ -- Geoffrey Thomas geo...@ldpreload.com Sun, 05 May 2013 16:18:17 -0700
+
man-db (2.6.3-3) unstable; urgency=low
* Support parallel builds.
diff -Nru man-db-2.6.3/debian/control man-db-2.6.3/debian/control
--- man-db-2.6.3/debian/control 2012-12-16 04:17:47.0 -0800
+++ man-db-2.6.3/debian/control 2013-05-05 17:11:58.0 -0700
@@ -13,7 +13,7 @@
Suggests: groff, less, www-browser
Provides: man, man-browser
Conflicts: man, suidmanager ( 0.50)
-Breaks: less ( 456)
+Breaks: less (= 456-1), less (= 456-1ubuntu1)
Replaces: man, nlsutils, manpages-de ( 0.5-4)
Multi-Arch: foreign
Description: on-line manual pager
diff -Nru man-db-2.6.3/debian/patches/less-incompatibility.patch
man-db-2.6.3/debian/patches/less-incompatibility.patch
--- man-db-2.6.3/debian/patches/less-incompatibility.patch 2012-12-16
04:05:23.0 -0800
+++ man-db-2.6.3/debian/patches/less-incompatibility.patch 1969-12-31
16:00:00.0 -0800
@@ -1,52 +0,0 @@
-Description: Handle incompatible change to option string escaping in less 456
-Author: Colin Watson cjwat...@debian.org
-Origin: backport,
http://bazaar.launchpad.net/~cjwatson/man-db/trunk/revision/1443
-Bug-Debian: http://bugs.debian.org/695459
-Forwarded: not-needed
-Last-Update: 2012-12-16
-
-Index: b/src/man.c
-===
a/src/man.c
-+++ b/src/man.c
-@@ -814,17 +814,35 @@
- static char *escaped_string;
- char *ptr;
-
-- /* 2*strlen will always be long enough to hold the escaped string */
-+ /* 4*strlen will always be long enough to hold the escaped string */
- ptr = escaped_string = xrealloc (escaped_string,
-- 2 * strlen (string) + 1);
--
-+ 4 * strlen (string) + 1);
-+
- while (*string) {
-+ /* less 456 requires dollar and backslash to be escaped in
-+ * the option string; this means that we need two
-+ * backslashes to effectively escape characters special in
-+