* man-db 2.5.1.

svn path=/nixpkgs/branches/stdenv-updates/; revision=10600
This commit is contained in:
Yury G. Kudryashov 2008-02-10 17:40:39 +00:00
parent 7830284677
commit 71dd78fe64
2 changed files with 65 additions and 51 deletions

View File

@ -1,15 +1,32 @@
{stdenv, fetchurl, db4, groff}: {stdenv, fetchurl, db4, groff}:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "man-2.4.3"; name = "man-db-2.5.1";
src = fetchurl { src = fetchurl {
url = http://savannah.nongnu.org/download/man-db/man-db-2.4.3.tar.gz; url = http://download.savannah.nongnu.org/releases/man-db/man-db-2.5.1.tar.gz;
md5 = "30814a47f209f43b152659ba51fc7937"; sha256 = "178w1fk23ffh8vabj29cn0yyg5ps7bwy1zrrrcsw8aypbh3sfjy3";
}; };
buildInputs = [db4 groff]; buildInputs = [db4 groff];
configureFlags = "--disable-setuid";
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 = [ patches = [
# Search in "share/man" relative to each path in $PATH (in addition to "man"). # Search in "share/man" relative to each path in $PATH (in addition to "man").
./share.patch ./share.patch
]; ];
meta = {
homepage = http://www.nongnu.org/man-db/;
description = "An implementation of the standard Unix documentation system accessed using the man command";
};
} }

View File

@ -1,79 +1,77 @@
diff -rc man-db-2.4.3/src/manp.c man-db-2.4.3-new/src/manp.c diff -rc man-db-2.5.1-orig/src/manp.c man-db-2.5.1/src/manp.c
*** man-db-2.4.3/src/manp.c Mon Nov 8 10:06:03 2004 *** man-db-2.5.1-orig/src/manp.c 2008-01-07 03:23:11.000000000 +0100
--- man-db-2.4.3-new/src/manp.c Tue Jan 9 17:08:31 2007 --- man-db-2.5.1/src/manp.c 2008-02-07 14:20:20.000000000 +0100
*************** ***************
*** 101,107 **** *** 96,102 ****
static void mkcatdirs (const char *mandir, const char *catdir); static void mkcatdirs (const char *mandir, const char *catdir);
static __inline__ char *get_manpath (char *path); static inline char *get_manpath_from_path (const char *path);
! static __inline__ char *has_mandir (const char *p); ! static inline char *has_mandir (const char *p);
static __inline__ char *fsstnd (const char *path); static inline char *fsstnd (const char *path);
static char *def_path (int flag); static char *def_path (int flag);
static void add_dir_to_list (char **lp, const char *dir); static void add_dir_to_list (char **lp, const char *dir);
--- 101,107 ---- --- 96,102 ----
static void mkcatdirs (const char *mandir, const char *catdir); static void mkcatdirs (const char *mandir, const char *catdir);
static __inline__ char *get_manpath (char *path); static inline char *get_manpath_from_path (const char *path);
! static __inline__ char *has_mandir (const char *p, const char *mandir); ! static inline char *has_mandir (const char *p, const char *mandir);
static __inline__ char *fsstnd (const char *path); static inline char *fsstnd (const char *path);
static char *def_path (int flag); static char *def_path (int flag);
static void add_dir_to_list (char **lp, const char *dir); static void add_dir_to_list (char **lp, const char *dir);
*************** ***************
*** 885,891 **** *** 928,934 ****
if (debug) } else {
fputs ("is not in the config file\n", stderr); debug ("is not in the config file\n");
! t = has_mandir (p); ! t = has_mandir (p);
if (t) { if (t) {
if (debug) debug ("but does have a ../man or man "
fprintf (stderr, "but does have a ../man or man subdirectory\n"); "subdirectory\n");
--- 885,891 ---- --- 928,934 ----
if (debug) } else {
fputs ("is not in the config file\n", stderr); debug ("is not in the config file\n");
! t = has_mandir (p, "man"); ! t = has_mandir (p, "man");
if (t) { if (t) {
if (debug) debug ("but does have a ../man or man "
fprintf (stderr, "but does have a ../man or man subdirectory\n"); "subdirectory\n");
*************** ***************
*** 895,900 **** *** 938,943 ****
--- 895,911 ---- --- 938,952 ----
} else } else
if (debug) debug ("and doesn't have ../man or man "
fprintf (stderr, "and doesn't have ../man or man subdirectories\n"); "subdirectories\n");
+ +
+ t = has_mandir (p, "share/man"); + t = has_mandir (p, "share/man");
+ if (t) { + if (t) {
+ if (debug) + debug ("but does have a ../share/man or share/man subdirectory\n");
+ fprintf (stderr, "but does have a ../share/man or share/man subdirectory\n"); +
+ + add_dir_to_list (tmplist, t);
+ add_dir_to_list (tmplist, t); + free (t);
+ free (t); + } else
+ } + debug ("and doesn't have ../share/man or share/man subdirectories\n");
+ if (debug)
+ fprintf (stderr, "and doesn't have ../share/man or share/man subdirectories\n");
} }
} }
*************** ***************
*** 973,979 **** *** 1013,1019 ****
/* path does not exist in config file: check to see if path/../man or /* 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. */ path/man exist. If so return it, if not return NULL. */
! static __inline__ char *has_mandir (const char *path) ! static inline char *has_mandir (const char *path)
{ {
char *newpath = NULL; char *newpath = NULL;
--- 984,990 ---- --- 1022,1028 ----
/* path does not exist in config file: check to see if path/../man or /* 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. */ path/man exist. If so return it, if not return NULL. */
! static __inline__ char *has_mandir (const char *path, const char *mandir) ! static inline char *has_mandir (const char *path, const char *mandir)
{ {
char *newpath = NULL; char *newpath = NULL;
*************** ***************
*** 983,991 **** *** 1023,1031 ****
char *subdir = strrchr (path, '/'); char *subdir = strrchr (path, '/');
if (subdir) { if (subdir) {
const int prefix_len = subdir + 1 - path; const int prefix_len = subdir + 1 - path;
@ -83,7 +81,7 @@ diff -rc man-db-2.4.3/src/manp.c man-db-2.4.3-new/src/manp.c
if (is_directory (newpath) == 1) if (is_directory (newpath) == 1)
return newpath; return newpath;
--- 994,1002 ---- --- 1032,1040 ----
char *subdir = strrchr (path, '/'); char *subdir = strrchr (path, '/');
if (subdir) { if (subdir) {
const int prefix_len = subdir + 1 - path; const int prefix_len = subdir + 1 - path;
@ -94,20 +92,19 @@ diff -rc man-db-2.4.3/src/manp.c man-db-2.4.3-new/src/manp.c
if (is_directory (newpath) == 1) if (is_directory (newpath) == 1)
return newpath; return newpath;
*************** ***************
*** 993,999 **** *** 1033,1039 ****
*newpath = '\0'; *newpath = '\0';
} }
! newpath = strappend (newpath, path, "/man", NULL); ! newpath = appendstr (newpath, path, "/man", NULL);
if (is_directory (newpath) == 1) if (is_directory (newpath) == 1)
return newpath; return newpath;
--- 1004,1010 ---- --- 1042,1048 ----
*newpath = '\0'; *newpath = '\0';
} }
! newpath = strappend (newpath, path, "/", mandir, NULL); ! newpath = appendstr (newpath, path, "/", mandir, NULL);
if (is_directory (newpath) == 1) if (is_directory (newpath) == 1)
return newpath; return newpath;
Only in man-db-2.4.3-new/src: manp.c~