man-db: Upgrade package from 2.5.1 -> 2.6.6

Additionally, remove the uneeded share.patch since share/man is now
searched within upstream code.
This commit is contained in:
William A. Kennington III 2014-02-04 16:34:31 -06:00 committed by Bjørn Forsman
parent e5a21b7bed
commit 42358f0cd0
2 changed files with 10 additions and 129 deletions

View File

@ -1,32 +1,23 @@
{stdenv, fetchurl, db, groff}:
{ stdenv, fetchurl, pkgconfig, libpipeline, db, groff }:
stdenv.mkDerivation {
name = "man-db-2.5.1";
stdenv.mkDerivation rec {
name = "man-db-2.6.6";
src = fetchurl {
url = mirror://savannah/man-db/man-db-2.5.1.tar.gz;
sha256 = "178w1fk23ffh8vabj29cn0yyg5ps7bwy1zrrrcsw8aypbh3sfjy3";
url = "mirror://savannah/man-db/${name}.tar.xz";
sha256 = "1hv6byj6sg6cp3jyf08gbmdm4pwhvd5hzmb94xl0w7prin6hzabx";
};
buildInputs = [db groff];
buildInputs = [ pkgconfig libpipeline db groff ];
configureFlags = ''
--disable-setuid
--with-nroff=${groff}/bin/nroff
--with-tbl=${groff}/bin/tbl
--with-eqn=${groff}/bin/eqn
--with-neqn=${groff}/bin/neqn
'';
troff = "${groff}/bin/troff";
patches = [
# Search in "share/man" relative to each path in $PATH (in addition to "man").
./share.patch
];
meta = {
homepage = http://www.nongnu.org/man-db/;
meta = with stdenv.lib; {
homepage = "http://man-db.nongnu.org";
description = "An implementation of the standard Unix documentation system accessed using the man command";
license = licenses.gpl2;
platforms = platforms.unix;
};
}

View File

@ -1,110 +0,0 @@
diff -rc man-db-2.5.1-orig/src/manp.c man-db-2.5.1/src/manp.c
*** man-db-2.5.1-orig/src/manp.c 2008-01-07 03:23:11.000000000 +0100
--- man-db-2.5.1/src/manp.c 2008-02-07 14:20:20.000000000 +0100
***************
*** 96,102 ****
static void mkcatdirs (const char *mandir, const char *catdir);
static inline char *get_manpath_from_path (const char *path);
! static inline char *has_mandir (const char *p);
static inline char *fsstnd (const char *path);
static char *def_path (int flag);
static void add_dir_to_list (char **lp, const char *dir);
--- 96,102 ----
static void mkcatdirs (const char *mandir, const char *catdir);
static inline char *get_manpath_from_path (const char *path);
! static inline char *has_mandir (const char *p, const char *mandir);
static inline char *fsstnd (const char *path);
static char *def_path (int flag);
static void add_dir_to_list (char **lp, const char *dir);
***************
*** 928,934 ****
} else {
debug ("is not in the config file\n");
! t = has_mandir (p);
if (t) {
debug ("but does have a ../man or man "
"subdirectory\n");
--- 928,934 ----
} else {
debug ("is not in the config file\n");
! t = has_mandir (p, "man");
if (t) {
debug ("but does have a ../man or man "
"subdirectory\n");
***************
*** 938,943 ****
--- 938,952 ----
} else
debug ("and doesn't have ../man or man "
"subdirectories\n");
+
+ t = has_mandir (p, "share/man");
+ if (t) {
+ debug ("but does have a ../share/man or share/man subdirectory\n");
+
+ add_dir_to_list (tmplist, t);
+ free (t);
+ } else
+ debug ("and doesn't have ../share/man or share/man subdirectories\n");
}
}
***************
*** 1013,1019 ****
/* path does not exist in config file: check to see if path/../man or
path/man exist. If so return it, if not return NULL. */
! static inline char *has_mandir (const char *path)
{
char *newpath = NULL;
--- 1022,1028 ----
/* path does not exist in config file: check to see if path/../man or
path/man exist. If so return it, if not return NULL. */
! static inline char *has_mandir (const char *path, const char *mandir)
{
char *newpath = NULL;
***************
*** 1023,1031 ****
char *subdir = strrchr (path, '/');
if (subdir) {
const int prefix_len = subdir + 1 - path;
! newpath = xmalloc (prefix_len + sizeof ("man") + 1);
strncpy (newpath, path, prefix_len);
! strcpy (newpath + prefix_len, "man");
if (is_directory (newpath) == 1)
return newpath;
--- 1032,1040 ----
char *subdir = strrchr (path, '/');
if (subdir) {
const int prefix_len = subdir + 1 - path;
! newpath = xmalloc (prefix_len + strlen (mandir) + 2);
strncpy (newpath, path, prefix_len);
! strcpy (newpath + prefix_len, mandir);
if (is_directory (newpath) == 1)
return newpath;
***************
*** 1033,1039 ****
*newpath = '\0';
}
! newpath = appendstr (newpath, path, "/man", NULL);
if (is_directory (newpath) == 1)
return newpath;
--- 1042,1048 ----
*newpath = '\0';
}
! newpath = appendstr (newpath, path, "/", mandir, NULL);
if (is_directory (newpath) == 1)
return newpath;