Bug#609112: unblock: man-db/2.5.7-8
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
man-db (2.5.7-8) unstable; urgency=low
* Avoid assertion if no path elements with manpaths were found (closes:
#608490).
-- Colin Watson <cjwatson@debian.org> Mon, 03 Jan 2011 01:13:19 +0000
This failure happens if you have "." on $PATH and try to build a package
whose upstream build system installs a manual page with executable
permissions. This is not exactly common but I have my suspicions that
it is not entirely rare either, and I'd like to get this fixed to avoid
weird knock-on failures in builds elsewhere.
The patch is short enough that it follows here.
diff -Nru man-db-2.5.7/debian/changelog man-db-2.5.7/debian/changelog
--- man-db-2.5.7/debian/changelog 2010-12-04 13:39:40.000000000 +0000
+++ man-db-2.5.7/debian/changelog 2011-01-03 01:13:20.000000000 +0000
@@ -1,3 +1,10 @@
+man-db (2.5.7-8) unstable; urgency=low
+
+ * Avoid assertion if no path elements with manpaths were found (closes:
+ #608490).
+
+ -- Colin Watson <cjwatson@debian.org> Mon, 03 Jan 2011 01:13:19 +0000
+
man-db (2.5.7-7) unstable; urgency=low
* Backport from 2.5.8:
diff -Nru man-db-2.5.7/debian/patches/manpath-assertion.patch man-db-2.5.7/debian/patches/manpath-assertion.patch
--- man-db-2.5.7/debian/patches/manpath-assertion.patch 1970-01-01 01:00:00.000000000 +0100
+++ man-db-2.5.7/debian/patches/manpath-assertion.patch 2011-01-03 01:12:18.000000000 +0000
@@ -0,0 +1,53 @@
+Description: Avoid assertion if no path elements with manpaths were found
+Author: Colin Watson <cjwatson@debian.org>
+Origin: backport, http://bazaar.launchpad.net/~cjwatson/man-db/trunk/revision/1300
+Bug-Debian: http://bugs.debian.org/608490
+Forwarded: not-needed
+Last-Update: 2011-01-03
+
+Index: b/src/man.c
+===================================================================
+--- a/src/man.c
++++ b/src/man.c
+@@ -921,8 +921,13 @@
+ debug ("recalculating manpath for executable "
+ "in %s\n", argv_dir);
+
+- new_manp = locale_manpath (
+- get_manpath_from_path (argv_dir, 0));
++ new_manp = get_manpath_from_path (argv_dir, 0);
++ if (!new_manp || !*new_manp) {
++ debug ("no useful manpath for "
++ "executable\n");
++ goto executable_out;
++ }
++ new_manp = locale_manpath (new_manp);
+
+ old_manpathlist = XNMALLOC (MAXDIRS, char *);
+ for (i = 0; i < MAXDIRS; ++i)
+@@ -936,6 +941,7 @@
+ manpathlist[i] = old_manpathlist[i];
+ }
+ free (old_manpathlist);
++executable_out:
+ free (new_manp);
+ free (argv_base);
+ }
+Index: b/src/manp.c
+===================================================================
+--- a/src/manp.c
++++ b/src/manp.c
+@@ -1042,7 +1042,12 @@
+ lp++;
+ }
+
+- assert (len);
++ if (!len)
++ /* No path elements in configuration file or with
++ * appropriate subdirectories.
++ */
++ return xstrdup ("");
++
+ manpathlist = xmalloc (len);
+ *manpathlist = '\0';
+
diff -Nru man-db-2.5.7/debian/patches/series man-db-2.5.7/debian/patches/series
--- man-db-2.5.7/debian/patches/series 2010-12-04 13:14:39.000000000 +0000
+++ man-db-2.5.7/debian/patches/series 2011-01-03 01:11:00.000000000 +0000
@@ -3,3 +3,4 @@
translation-fr.patch
translation-man-fr.patch
locale-warnings.patch
+manpath-assertion.patch
Thanks,
--
Colin Watson [cjwatson@debian.org]
Reply to: