diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix index 121a92b845d6..f664bcc6917d 100644 --- a/pkgs/tools/misc/man-db/default.nix +++ b/pkgs/tools/misc/man-db/default.nix @@ -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; }; } diff --git a/pkgs/tools/misc/man-db/share.patch b/pkgs/tools/misc/man-db/share.patch deleted file mode 100644 index 95582a50269d..000000000000 --- a/pkgs/tools/misc/man-db/share.patch +++ /dev/null @@ -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;