diff --git a/man-db-2.6.3.tar.xz b/man-db-2.6.3.tar.xz deleted file mode 100644 index 52c52d3..0000000 --- a/man-db-2.6.3.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:51db85cbbdcb99927865bad4c653a8b18991831e751cc501098a772924e26b47 -size 1388944 diff --git a/man-db-2.6.3-firefox.dif b/man-db-2.6.5-firefox.dif similarity index 74% rename from man-db-2.6.3-firefox.dif rename to man-db-2.6.5-firefox.dif index 153729c..2b7c7d7 100644 --- a/man-db-2.6.3-firefox.dif +++ b/man-db-2.6.5-firefox.dif @@ -1,6 +1,12 @@ +--- + src/man.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git src/man.c src/man.c +index 10bcd4f..5c164ad 100644 --- src/man.c -+++ src/man.c 2012-10-01 14:34:29.003506558 +0000 -@@ -2312,21 +2312,23 @@ static void format_display (pipeline *de ++++ src/man.c +@@ -2316,22 +2316,24 @@ static void format_display (pipeline *decomp, if (!status) break; } @@ -21,6 +27,7 @@ htmldir); free (htmlfile); free (htmldir); + free (old_cwd); + if (!candidate) + error (CHILD_FAIL, 0, + "couldn't execute any browser from %s", @@ -28,3 +35,6 @@ } else #endif /* TROFF_IS_GROFF */ /* TODO: check format_cmd status too? */ +-- +1.8.4.5 + diff --git a/man-db-2.6.3-security4.dif b/man-db-2.6.5-security4.dif similarity index 69% rename from man-db-2.6.3-security4.dif rename to man-db-2.6.5-security4.dif index bab6216..3a4a21f 100644 --- a/man-db-2.6.3-security4.dif +++ b/man-db-2.6.5-security4.dif @@ -1,5 +1,11 @@ +--- + src/mandb.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git src/mandb.c src/mandb.c +index 86b9e97..5b8c57d 100644 --- src/mandb.c -+++ src/mandb.c 2012-10-01 14:30:11.619507260 +0000 ++++ src/mandb.c @@ -37,6 +37,7 @@ #include #include @@ -8,17 +14,15 @@ #include #include #include -@@ -420,11 +421,20 @@ static int mandb (const char *catpath, c +@@ -422,10 +423,19 @@ static int mandb (const char *catpath, const char *manpath) char *dbname; char *cachedir_tag; struct stat st; + int fd; dbname = mkdbname (catpath); - sprintf (pid, "%d", getpid ()); - database = appendstr (NULL, catpath, "/", pid, NULL); -- -+ + database = xasprintf ("%s/%d", catpath, getpid ()); + + /* Just for the case that catpath isn't a system catpath */ + drop_effective_privs (); + fd = open (database, O_WRONLY | O_CREAT | O_EXCL, 0644); @@ -30,7 +34,7 @@ if (!quiet) printf (_("Processing manual pages under %s...\n"), manpath); -@@ -432,6 +442,7 @@ static int mandb (const char *catpath, c +@@ -433,6 +443,7 @@ static int mandb (const char *catpath, const char *manpath) if (stat (cachedir_tag, &st) == -1 && errno == ENOENT) { FILE *cachedir_tag_file; @@ -38,7 +42,7 @@ cachedir_tag_file = fopen (cachedir_tag, "w"); if (cachedir_tag_file) { fputs ("Signature: 8a477f597d28d172789f06886806bc55\n" -@@ -443,6 +454,7 @@ static int mandb (const char *catpath, c +@@ -444,6 +455,7 @@ static int mandb (const char *catpath, const char *manpath) cachedir_tag_file); fclose (cachedir_tag_file); } @@ -46,3 +50,6 @@ } free (cachedir_tag); +-- +1.8.4.5 + diff --git a/man-db-2.6.3-zio.dif b/man-db-2.6.5-zio.dif similarity index 83% rename from man-db-2.6.3-zio.dif rename to man-db-2.6.5-zio.dif index 4bb5e77..2a09ede 100644 --- a/man-db-2.6.3-zio.dif +++ b/man-db-2.6.5-zio.dif @@ -1,6 +1,14 @@ +--- + config.h.in | 3 +++ + configure.ac | 52 +++++++++++++++++++++++++++++++++++++++++++++ + lib/decompress.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 120 insertions(+) + +diff --git config.h.in config.h.in +index efa85da..9a3fcc9 100644 --- config.h.in -+++ config.h.in 2012-10-02 09:06:48.591006953 +0000 -@@ -674,6 +674,9 @@ ++++ config.h.in +@@ -692,6 +692,9 @@ /* Define to 1 if you have the `z' library (-lz). */ #undef HAVE_LIBZ @@ -10,8 +18,10 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LINEWRAP_H +diff --git configure.ac configure.ac +index adde408..2daf4a3 100644 --- configure.ac -+++ configure.ac 2012-10-02 09:55:06.783914808 +0000 ++++ configure.ac @@ -98,6 +98,18 @@ AC_ARG_WITH([sections], sections="$withval" fi], @@ -31,7 +41,7 @@ AC_ARG_ENABLE([automatic-create], [AS_HELP_STRING([--enable-automatic-create], [allow man to create user databases on the fly])], [if test "$enableval" = "yes" -@@ -375,6 +387,46 @@ AC_SUBST([unlzma]) +@@ -410,6 +422,46 @@ AC_SUBST([unlzma]) AC_SUBST([unxz]) AC_SUBST([unlzip]) MAN_COMPRESS_LIB([z], [gzopen]) @@ -78,11 +88,13 @@ dnl To add more decompressors just follow the scheme above. # Work out which manual page hierarchy scheme might be in use. +diff --git lib/decompress.c lib/decompress.c +index a176a9d..0057e39 100644 --- lib/decompress.c -+++ lib/decompress.c 2012-10-02 09:05:43.787007258 +0000 -@@ -36,6 +36,10 @@ - # include "zlib.h" - #endif /* HAVE_LIBZ */ ++++ lib/decompress.c +@@ -38,6 +38,10 @@ + + #include "xvasprintf.h" +#ifdef HAVE_ZIO +# include "zio.h" @@ -91,7 +103,7 @@ #include "manconfig.h" #include "comp_src.h" #include "pipeline.h" -@@ -66,6 +70,32 @@ static void decompress_zlib (void *data +@@ -68,6 +72,32 @@ static void decompress_zlib (void *data ATTRIBUTE_UNUSED) #endif /* HAVE_LIBZ */ @@ -124,7 +136,7 @@ pipeline *decompress_open (const char *filename) { pipecmd *cmd; -@@ -80,6 +110,37 @@ pipeline *decompress_open (const char *f +@@ -82,6 +112,37 @@ pipeline *decompress_open (const char *filename) if (stat (filename, &st) < 0 || S_ISDIR (st.st_mode)) return NULL; @@ -162,7 +174,7 @@ #ifdef HAVE_LIBZ filename_len = strlen (filename); if (filename_len > 3 && STREQ (filename + filename_len - 3, ".gz")) { -@@ -93,7 +154,11 @@ pipeline *decompress_open (const char *f +@@ -95,7 +156,11 @@ pipeline *decompress_open (const char *filename) } #endif /* HAVE_LIBZ */ @@ -174,3 +186,6 @@ if (ext) { ++ext; +-- +1.8.4.5 + diff --git a/man-db-2.6.3.dif b/man-db-2.6.5.dif similarity index 84% rename from man-db-2.6.3.dif rename to man-db-2.6.5.dif index ab8b8dd..c1f7348 100644 --- a/man-db-2.6.3.dif +++ b/man-db-2.6.5.dif @@ -1,6 +1,28 @@ +--- + configure.ac | 18 ++++++- + include/comp_src.h.in | 2 +- + lib/security.c | 36 +++++++++++++ + lib/util.c | 3 ++ + libdb/mydbm.h | 4 +- + mk_catdirs | 30 +++++++++++ + src/Makefile.am | 12 ++--- + src/check_mandirs.c | 48 ++++++++++++----- + src/lexgrog.l | 121 ++++++++++++++++++++++++++++------------- + src/man.c | 115 ++++++++++++++++++++++++++------------- + src/man_db.conf.in | 145 +++++++++++++++++++++++++++++++++++++++++++++++--- + src/mandb.c | 18 +++++-- + src/manp.c | 2 +- + src/straycats.c | 13 +++-- + src/ult_src.c | 9 +++- + src/ult_src.h | 7 +-- + 16 files changed, 460 insertions(+), 123 deletions(-) + create mode 100644 mk_catdirs + +diff --git configure.ac configure.ac +index 2daf4a3..34ce06e 100644 --- configure.ac -+++ configure.ac 2012-10-09 15:25:13.090345177 +0000 -@@ -316,6 +316,14 @@ then ++++ configure.ac +@@ -333,6 +333,14 @@ then fi MAN_CHECK_PROGS([eqn], [EQN], [use EQN to preprocess equations], [eqn geqn]) @@ -15,7 +37,7 @@ MAN_CHECK_PROGS([neqn], [NEQN], [use NEQN to preprocess equations for character devices], [neqn gneqn]) # If we fail to find an neqn, use eqn and try to force it to output for an # ascii device. As this is only relevant for equations (?), not using latin1 -@@ -341,9 +349,15 @@ then +@@ -376,9 +384,15 @@ then compress_ext="gz" fi MAN_CHECK_PROGS([compress], [COMPRESS], [use COMPRESS as UNIX compression utility], [compress]) @@ -33,8 +55,10 @@ if test -z "$gzip" then compressor="$compress -c" +diff --git include/comp_src.h.in include/comp_src.h.in +index 4d6b0e7..7c865e8 100644 --- include/comp_src.h.in -+++ include/comp_src.h.in 2012-10-09 15:25:13.266345026 +0000 ++++ include/comp_src.h.in @@ -53,7 +53,7 @@ struct compression comp_list[] = { #endif /* HAVE_GZIP */ @@ -44,8 +68,10 @@ {UNCOMPRESS, "Z", NULL}, /* Else if we have gzip, incorporate the following */ #elif defined (HAVE_GZIP) +diff --git lib/security.c lib/security.c +index dd2e221..37d0ca7 100644 --- lib/security.c -+++ lib/security.c 2012-10-09 15:25:13.374643928 +0000 ++++ lib/security.c @@ -60,7 +60,10 @@ uid_t ruid; /* initial real user id */ @@ -108,9 +134,11 @@ #endif /* SECURE_MAN_UID */ } +diff --git lib/util.c lib/util.c +index 978a16e..3dcf336 100644 --- lib/util.c -+++ lib/util.c 2012-10-09 15:25:13.482578481 +0000 -@@ -46,6 +46,9 @@ ++++ lib/util.c +@@ -48,6 +48,9 @@ #include "gettext.h" @@ -120,8 +148,10 @@ #include "manconfig.h" #include "error.h" +diff --git libdb/mydbm.h libdb/mydbm.h +index f0c4784..3538ed4 100644 --- libdb/mydbm.h -+++ libdb/mydbm.h 2012-10-09 15:25:13.574993382 +0000 ++++ libdb/mydbm.h @@ -42,7 +42,7 @@ # include @@ -131,7 +161,7 @@ # endif /* !HAVE_GDBM_EXISTS */ /* gdbm_nextkey() is not lexicographically sorted, so we need to keep the -@@ -144,7 +144,7 @@ extern int btree_nextkeydata(DB *db, dat +@@ -144,7 +144,7 @@ extern int btree_nextkeydata(DB *db, datum *key, datum *cont); # define MYDBM_SET_DPTR(d, value) ((d).data = (char *) (value)) # define MYDBM_DSIZE(d) ((d).size) # define MYDBM_CTRWOPEN(file) btree_flopen(file, O_TRUNC|O_CREAT|O_RDWR, DBMODE) @@ -140,8 +170,11 @@ # define MYDBM_RWOPEN(file) btree_flopen(file, O_RDWR, DBMODE) # define MYDBM_RDOPEN(file) btree_flopen(file, O_RDONLY, DBMODE) # define MYDBM_INSERT(db, key, cont) btree_insert(db, key, cont) ---- mk_catdirs -+++ mk_catdirs 2012-10-09 15:25:13.182344989 +0000 +diff --git mk_catdirs mk_catdirs +new file mode 100644 +index 0000000..47eaa25 +--- /dev/null ++++ mk_catdirs @@ -0,0 +1,30 @@ +#!/bin/sh + @@ -173,9 +206,11 @@ +cd ${OLDPWD} + +test "$(id -u)" -ne 0 || chown man:man -R ${CACHE} +diff --git src/Makefile.am src/Makefile.am +index 51118a1..0003cbc 100644 --- src/Makefile.am -+++ src/Makefile.am 2012-10-09 15:25:13.666345062 +0000 -@@ -167,15 +167,9 @@ apropos$(EXEEXT): whatis$(EXEEXT) ++++ src/Makefile.am +@@ -177,15 +177,9 @@ apropos$(EXEEXT): whatis$(EXEEXT) all-am: apropos$(EXEEXT) install-exec-hook: @@ -194,9 +229,11 @@ install-data-hook: @if test -f $(DESTDIR)$(config_file); then \ +diff --git src/check_mandirs.c src/check_mandirs.c +index f954dbf..f9d6314 100644 --- src/check_mandirs.c -+++ src/check_mandirs.c 2012-10-09 15:25:13.758815292 +0000 -@@ -354,10 +354,13 @@ static inline void add_dir_entries (cons ++++ src/check_mandirs.c +@@ -354,10 +354,13 @@ static inline void add_dir_entries (const char *path, char *infile) #ifdef SECURE_MAN_UID extern uid_t ruid; /* initial real user id */ @@ -211,7 +248,7 @@ { char *manname, *catname; #ifdef SECURE_MAN_UID -@@ -381,6 +384,8 @@ static void mkcatdirs (const char *mandi +@@ -381,6 +384,8 @@ static void mkcatdirs (const char *mandir, const char *catdir) #ifdef SECURE_MAN_UID if (ruid == 0) chown (catdir, man_owner->pw_uid, 0); @@ -220,7 +257,7 @@ #endif /* SECURE_MAN_UID */ drop_effective_privs (); } -@@ -391,9 +396,14 @@ static void mkcatdirs (const char *mandi +@@ -391,9 +396,14 @@ static void mkcatdirs (const char *mandir, const char *catdir) int j; regain_effective_privs (); debug ("creating catdir hierarchy %s ", catdir); @@ -238,7 +275,7 @@ if ((is_directory (manname) == 1) && (is_directory (catname) != 1)) { if (mkdir (catname, -@@ -402,11 +412,12 @@ static void mkcatdirs (const char *mandi +@@ -402,11 +412,12 @@ static void mkcatdirs (const char *mandir, const char *catdir) error (0, 0, _("warning: cannot create catdir %s"), catname); debug ("warning: cannot create catdir %s\n", catname); } else @@ -254,7 +291,7 @@ #endif /* SECURE_MAN_UID */ } } -@@ -498,15 +509,10 @@ static int testmandirs (const char *path +@@ -505,15 +516,10 @@ static int testmandirs (const char *path, const char *catpath, time_t last, } if (!quiet) { @@ -271,7 +308,7 @@ } add_dir_entries (path, mandir->d_name); MYDBM_CLOSE (dbf); -@@ -674,7 +680,7 @@ int update_db (const char *manpath, cons +@@ -681,7 +687,7 @@ int update_db (const char *manpath, const char *catpath) return new; } @@ -280,7 +317,7 @@ return EOF; } -@@ -856,6 +862,7 @@ static int purge_whatis (const char *pat +@@ -863,6 +869,7 @@ static int purge_whatis (const char *path, int cat, const char *name, "would delete\n", name, info->ext); return 1; } @@ -288,7 +325,7 @@ } /* Check that multi keys are correctly constructed. */ -@@ -919,6 +926,11 @@ int purge_missing (const char *manpath, +@@ -937,6 +944,11 @@ int purge_missing (const char *manpath, const char *catpath) gripe_rwopen_failed (); return 0; } @@ -300,11 +337,10 @@ /* Extract the database mtime. */ key = MYDBM_FIRSTKEY (dbf); -@@ -959,6 +971,14 @@ int purge_missing (const char *manpath, - key = nextkey; +@@ -978,6 +990,14 @@ int purge_missing (const char *manpath, const char *catpath) continue; } -+ + + /* Ignore db identifier keys. */ + if (*key.dptr == '.' && *(key.dptr+1) == 0) { + nextkey = MYDBM_NEXTKEY (dbf, key); @@ -312,22 +348,14 @@ + key = nextkey; + continue; + } - ++ content = MYDBM_FETCH (dbf, key); if (!MYDBM_DPTR (content)) { ---- src/descriptions_store.c -+++ src/descriptions_store.c 2012-10-09 15:25:13.842344839 +0000 -@@ -71,7 +71,7 @@ void store_descriptions (const struct pa - - if (trace) { - for (i = 0; i < trace->len; ++i) -- debug ("trace->names[%d] = '%s'\n", -+ debug ("trace->names[%zu] = '%s'\n", - i, trace->names[i]); - } - + nextkey = MYDBM_NEXTKEY (dbf, key); +diff --git src/lexgrog.l src/lexgrog.l +index 18c5a5b..9e5fc16 100644 --- src/lexgrog.l -+++ src/lexgrog.l 2012-10-09 15:25:13.934344902 +0000 ++++ src/lexgrog.l @@ -56,7 +56,7 @@ #include "manconv_client.h" @@ -370,7 +398,7 @@ static pipeline *decomp; -@@ -240,7 +241,7 @@ static pipeline *decomp; +@@ -241,7 +242,7 @@ static pipeline *decomp; %} %option ecs meta-ecs @@ -379,7 +407,7 @@ %option nostdinit %option warn %option noyywrap nounput -@@ -278,8 +279,9 @@ font_change \\f([[:upper:]1-4]|\({upper} +@@ -279,8 +280,9 @@ font_change \\f([[:upper:]1-4]|\({upper}{2}) size_change \\s[+-]?{digit} style_change ({font_change}{size_change}?|{size_change}{font_change}?) typeface \.(B[IR]?|I[BR]?|R[BI]|S[BM]) @@ -390,7 +418,7 @@ /* Please add to this list if you know how. */ /* Note that, since flex only supports UTF-8 by accident, character classes -@@ -314,7 +316,26 @@ vi_name TÊN +@@ -315,7 +317,26 @@ vi_name TÊN zh_CN_name 名{blank}?(称|字){blank}?.* zh_TW_name (名{blank}?(稱|字)|命令名){blank}?.* name ({bg_name}|{cs_name}|{da_name}|{de_name}|{en_name}|{es_name}|{fi_name}|{fr_name}|{hu_name}|{id_name}|{it_name}|{ja_name}|{ko_name}|{latin_name}|{lt_name}|{nl_name}|{pl_name}|{ru_name}|{sk_name}|{sr_name}|{srlatin_name}|{sv_name}|{tr_name}|{vi_name}|{zh_CN_name}|{zh_TW_name}) @@ -418,7 +446,7 @@ /* eptgrv : eqn, pic, tbl, grap, refer, vgrind */ tbl_request \.TS -@@ -328,8 +349,13 @@ vgrind_request \.vS +@@ -329,8 +350,13 @@ vgrind_request \.vS %% /* begin NAME section processing */ @@ -434,7 +462,7 @@ /* general text matching */ \.[^Ss\r\n].* | -@@ -397,6 +423,7 @@ vgrind_request \.vS +@@ -398,6 +424,7 @@ vgrind_request \.vS {bol}\.sp{blank}* | /* vertical spacing */ {bol}\.ig{blank}* | /* block comment */ {bol}\.de[1i]?{blank}* | /* macro definition */ @@ -442,7 +470,7 @@ {bol}\.i[ef]{blank}* | /* conditional */ {empty}{bol}.+ | <> { /* terminate the string */ -@@ -434,21 +461,24 @@ vgrind_request \.vS +@@ -435,21 +462,24 @@ vgrind_request \.vS } /* No-op requests */ @@ -472,7 +500,7 @@ /* escape sequences and special characters */ { -@@ -464,6 +494,7 @@ vgrind_request \.vS +@@ -465,6 +495,7 @@ vgrind_request \.vS {next}\\[|^&!%acdpruz{}\r\n] /* various useless control chars */ {next}\\[bhlLvx]{blank}*'[^']+' /* various inline functions */ @@ -480,7 +508,7 @@ {next}\\\$[1-9] /* interpolate arg */ /* roff named glyphs */ -@@ -626,11 +657,8 @@ vgrind_request \.vS +@@ -627,11 +658,8 @@ vgrind_request \.vS for later processing */ { {bol}\.br{blank}* | @@ -493,7 +521,7 @@ {bol}\.RS{blank}.* | {bol}\.RE{blank}.* add_char_to_whatis ((char) 0x11); } -@@ -645,7 +673,7 @@ vgrind_request \.vS +@@ -646,7 +674,7 @@ vgrind_request \.vS [[:alnum:]]* add_str_to_whatis (yytext, yyleng); /* normalise the period (,) separators */ @@ -502,7 +530,7 @@ {blank}*,{blank}* add_str_to_whatis (", ", 2); {bol}. { -@@ -661,7 +689,7 @@ vgrind_request \.vS +@@ -662,7 +690,7 @@ vgrind_request \.vS %% /* print warning and force scanner to terminate */ @@ -511,7 +539,7 @@ { /* Even though MAX_NAME is a macro expanding to a constant, we * translate it using ngettext anyway because that will make it -@@ -678,7 +706,7 @@ static void too_big (void) +@@ -679,7 +707,7 @@ static void too_big (void) } /* append a string to newname if enough room */ @@ -520,7 +548,7 @@ { if (p_name - newname + length >= MAX_NAME) too_big (); -@@ -689,8 +717,10 @@ static void add_str_to_whatis (const cha +@@ -690,8 +718,10 @@ static void add_str_to_whatis (const char *string, size_t length) } /* append a char to newname if enough room */ @@ -532,7 +560,7 @@ if (p_name - newname + 1 >= MAX_NAME) too_big (); else if (waiting_for_quote && c == '"') -@@ -702,8 +732,24 @@ static void add_char_to_whatis (unsigned +@@ -703,8 +733,24 @@ static void add_char_to_whatis (unsigned char c) /* append the " - " separator to newname, trimming the first space if one's * already there */ @@ -558,7 +586,7 @@ if (p_name != newname && *(p_name - 1) != ' ') add_char_to_whatis (' '); add_str_to_whatis ("- ", 2); -@@ -711,7 +757,7 @@ static void add_separator_to_whatis (voi +@@ -712,7 +758,7 @@ static void add_separator_to_whatis (void) /* append a word to newname if enough room, ensuring only necessary surrounding space */ @@ -567,7 +595,7 @@ { if (p_name != newname && *(p_name - 1) != ' ') add_char_to_whatis (' '); -@@ -721,7 +767,7 @@ static void add_wordn_to_whatis (const c +@@ -722,7 +768,7 @@ static void add_wordn_to_whatis (const char *string, size_t length) add_str_to_whatis (string, length); } @@ -576,7 +604,7 @@ { add_wordn_to_whatis (string, strlen (string)); } -@@ -731,7 +777,7 @@ struct compare_macro_key { +@@ -732,7 +778,7 @@ struct compare_macro_key { size_t length; }; @@ -585,7 +613,7 @@ { const struct compare_macro_key *key = left; const struct macro *value = right; -@@ -749,7 +795,7 @@ static int compare_macro (const void *le +@@ -750,7 +796,7 @@ static int compare_macro (const void *left, const void *right) return 0; } @@ -594,7 +622,7 @@ const char *string, size_t length) { struct compare_macro_key key; -@@ -763,23 +809,23 @@ static void add_macro_to_whatis (const s +@@ -764,23 +810,23 @@ static void add_macro_to_whatis (const struct macro *macros, size_t n_macros, add_str_to_whatis (macro->value, strlen (macro->value)); } @@ -622,7 +650,7 @@ { /* If we are mid p_name and the last added char was not a space, * best add one. -@@ -855,6 +901,7 @@ int find_name_decompressed (pipeline *p, +@@ -856,6 +902,7 @@ int find_name_decompressed (pipeline *p, const char *filename, lexgrog *p_lg) fill_mode = 1; waiting_for_quote = 0; @@ -630,8 +658,10 @@ if (p_lg->type) BEGIN (CAT_FILE); +diff --git src/man.c src/man.c +index 4715efb..edcd59c 100644 --- src/man.c -+++ src/man.c 2012-10-09 15:26:50.654659512 +0000 ++++ src/man.c @@ -68,6 +68,7 @@ static char *cwd; #include #include @@ -660,7 +690,7 @@ #if defined _AIX || defined __sgi char **global_argv; -@@ -244,9 +251,9 @@ static int found_a_stray; /* found a st +@@ -244,9 +251,9 @@ static int found_a_stray; /* found a straycat */ #ifdef MAN_CATS static char *tmp_cat_file; /* for open_cat_stream(), close_cat_stream() */ static int created_tmp_cat; /* dto. */ @@ -671,7 +701,7 @@ # ifdef TROFF_IS_GROFF static int ditroff; -@@ -607,25 +614,6 @@ static void gripe_no_name (const char *s +@@ -611,25 +618,6 @@ static void gripe_no_name (const char *sect) exit (FAIL); } @@ -697,17 +727,18 @@ #if defined(TROFF_IS_GROFF) || defined(HEIRLOOM_NROFF) static int get_roff_line_length (void) { -@@ -912,30 +900,43 @@ static int local_man_loop (const char *a +@@ -916,30 +904,43 @@ static int local_man_loop (const char *argv) display (NULL, "", NULL, "(stdin)", NULL); else { struct stat st; -+ char *pwd = cwd; -+ char *file = basename((char*)argv); - +- - if (cwd[0]) { - debug ("chdir %s\n", cwd); - if (chdir (cwd)) { - error (0, errno, _("can't chdir to %s"), cwd); ++ char *pwd = cwd; ++ char *file = basename((char*)argv); ++ + if (strcmp(argv, file)) { + char *dlm; + pwd = strdupa(argv); @@ -746,7 +777,7 @@ return NOT_FOUND; } -@@ -1000,8 +1001,13 @@ executable_out: +@@ -1006,8 +1007,13 @@ executable_out: argv_abs = xstrdup (argv); } lang = lang_dir (argv_abs); @@ -761,7 +792,7 @@ if (local_mf) error (0, errno, "%s", argv); exit_status = NOT_FOUND; -@@ -1030,7 +1036,16 @@ int main (int argc, char *argv[]) +@@ -1036,7 +1042,16 @@ int main (int argc, char *argv[]) umask (022); init_locale (); @@ -779,7 +810,7 @@ /* Use LANGUAGE only when LC_MESSAGES locale category is * neither "C" nor "POSIX". */ if (internal_locale && strcmp (internal_locale, "C") && -@@ -1095,9 +1110,13 @@ int main (int argc, char *argv[]) +@@ -1101,9 +1116,13 @@ int main (int argc, char *argv[]) if (external) do_extern (argc, argv); @@ -794,7 +825,7 @@ #endif /* SECURE_MAN_UID */ /* close this locale and reinitialise if a new locale was -@@ -1400,7 +1419,8 @@ static const char *get_preprocessors_fro +@@ -1409,7 +1428,8 @@ static char *get_preprocessors_from_file (pipeline *decomp) if (!line) return NULL; @@ -803,8 +834,8 @@ + (strlen(line) == 6 && !strncmp(line, ".\\\" ", 4))) { const char *newline = strchr (line, '\n'); if (newline) - directive = xstrndup (line + 4, newline - (line + 4)); -@@ -1917,6 +1937,18 @@ static void setenv_less (pipecmd *cmd, c + return xstrndup (line + 4, newline - (line + 4)); +@@ -1921,6 +1941,18 @@ static void setenv_less (pipecmd *cmd, const char *title) free (less_opts); } @@ -823,7 +854,7 @@ static void add_output_iconv (pipeline *p, const char *source, const char *target) { -@@ -1972,6 +2004,8 @@ static pipeline *make_display_command (c +@@ -1976,6 +2008,8 @@ static pipeline *make_display_command (const char *encoding, const char *title) if (pager_cmd) { setenv_less (pager_cmd, title); @@ -832,7 +863,7 @@ pipeline_command (p, pager_cmd); } pipeline_ignore_signals (p, 1); -@@ -1982,7 +2016,7 @@ static pipeline *make_display_command (c +@@ -1986,7 +2020,7 @@ static pipeline *make_display_command (const char *encoding, const char *title) return p; } @@ -841,7 +872,7 @@ /* return a (malloced) temporary name in cat_file's directory */ static char *tmp_cat_filename (const char *cat_file) { -@@ -2084,6 +2118,7 @@ static int commit_tmp_cat (const char *c +@@ -2088,6 +2122,7 @@ static int commit_tmp_cat (const char *cat_file, const char *tmp_cat, return status; } @@ -849,7 +880,7 @@ /* TODO: This should all be refactored after work on the decompression * library is complete. -@@ -2104,7 +2139,6 @@ static void maybe_discard_stderr (pipeli +@@ -2108,7 +2143,6 @@ static void maybe_discard_stderr (pipeline *p) } #ifdef MAN_CATS @@ -857,7 +888,7 @@ /* Return pipeline to write formatted manual page to for saving as cat file. */ static pipeline *open_cat_stream (const char *cat_file, const char *encoding) { -@@ -2338,6 +2372,7 @@ static void format_display (pipeline *de +@@ -2343,6 +2377,7 @@ static void format_display (pipeline *decomp, regain_effective_privs (); } @@ -865,7 +896,7 @@ /* "Display" a page in catman mode, which amounts to saving it. */ /* TODO: merge with format_display_and_save? */ static void display_catman (const char *cat_file, pipeline *decomp, -@@ -2377,6 +2412,7 @@ static void display_catman (const char * +@@ -2382,6 +2417,7 @@ static void display_catman (const char *cat_file, pipeline *decomp, pop_cleanup(); free (tmpcat); } @@ -873,7 +904,7 @@ static void disable_hyphenation (void *data ATTRIBUTE_UNUSED) { -@@ -2529,7 +2565,7 @@ static int display (const char *dir, con +@@ -2535,7 +2571,7 @@ static int display (const char *dir, const char *man_file, format_cmd = NULL; decomp_errno = errno; } @@ -882,7 +913,7 @@ /* Get modification time, for commit_tmp_cat(). */ if (man_file && *man_file) { struct stat stb; -@@ -2538,7 +2574,7 @@ static int display (const char *dir, con +@@ -2544,7 +2580,7 @@ static int display (const char *dir, const char *man_file, else man_modtime = stb.st_mtime; } @@ -891,7 +922,7 @@ display_to_stdout = troff; #ifdef TROFF_IS_GROFF if (htmlout) -@@ -2673,6 +2709,7 @@ static int display (const char *dir, con +@@ -2680,6 +2716,7 @@ static int display (const char *dir, const char *man_file, } if (printed) putchar ('\n'); @@ -899,7 +930,7 @@ } else if (catman) { if (format) { if (!save_cat) -@@ -2685,6 +2722,7 @@ static int display (const char *dir, con +@@ -2692,6 +2729,7 @@ static int display (const char *dir, const char *man_file, format_cmd, formatted_encoding); } @@ -907,9 +938,9 @@ } else if (format) { /* no cat or out of date */ pipeline *disp_cmd; -@@ -2743,8 +2781,10 @@ static int display (const char *dir, con - } - } +@@ -2753,8 +2791,10 @@ static int display (const char *dir, const char *man_file, + + free (formatted_encoding); - pipeline_free (format_cmd); - pipeline_free (decomp); @@ -920,7 +951,7 @@ if (!prompt) prompt = found; -@@ -2752,7 +2792,6 @@ static int display (const char *dir, con +@@ -2762,7 +2802,6 @@ static int display (const char *dir, const char *man_file, return found; } @@ -928,7 +959,7 @@ static char *find_cat_file (const char *path, const char *original, const char *man_file) { -@@ -3486,7 +3525,7 @@ static int display_database_check (struc +@@ -3515,7 +3554,7 @@ static int display_database_check (struct candidate *candp) #ifdef MAN_DB_UPDATES if (!exists && !skip) { debug ("dbdelete_wrapper (%s, %p)\n", @@ -937,8 +968,10 @@ dbdelete_wrapper (candp->req_name, candp->source); } #endif /* MAN_DB_UPDATES */ +diff --git src/man_db.conf.in src/man_db.conf.in +index bc8bb7e..c94b543 100644 --- src/man_db.conf.in -+++ src/man_db.conf.in 2012-10-09 15:25:14.146344181 +0000 ++++ src/man_db.conf.in @@ -20,6 +20,14 @@ MANDATORY_MANPATH /usr/man MANDATORY_MANPATH /usr/share/man @@ -954,7 +987,7 @@ #--------------------------------------------------------- # set up PATH to MANPATH mapping # ie. what man tree holds man pages for what binary directory. -@@ -34,8 +42,10 @@ MANPATH_MAP /usr/local/bin /usr/local/m +@@ -34,8 +42,10 @@ MANPATH_MAP /usr/local/bin /usr/local/man MANPATH_MAP /usr/local/bin /usr/local/share/man MANPATH_MAP /usr/local/sbin /usr/local/man MANPATH_MAP /usr/local/sbin /usr/local/share/man @@ -1106,8 +1139,10 @@ # #--------------------------------------------------------- # Program definitions. These are commented out by default as the value +diff --git src/mandb.c src/mandb.c +index 5b8c57d..58cfeb6 100644 --- src/mandb.c -+++ src/mandb.c 2012-10-09 15:25:14.270344007 +0000 ++++ src/mandb.c @@ -193,6 +193,8 @@ static const char *xtmpfile; #ifdef SECURE_MAN_UID extern uid_t ruid; @@ -1117,7 +1152,7 @@ #endif /* SECURE_MAN_UID */ static char *manpathlist[MAXDIRS]; -@@ -527,6 +529,8 @@ static int mandb (const char *catpath, c +@@ -528,6 +530,8 @@ static int mandb (const char *catpath, const char *manpath) return amount; } @@ -1126,7 +1161,7 @@ static int process_manpath (const char *manpath, int global_manpath, struct hashtable *tried_catdirs) { -@@ -560,6 +564,8 @@ static int process_manpath (const char * +@@ -561,6 +565,8 @@ static int process_manpath (const char *manpath, int global_manpath, database = NULL; } @@ -1135,7 +1170,7 @@ push_cleanup (cleanup, NULL, 0); push_cleanup (cleanup_sigsafe, NULL, 1); if (single_filename) { -@@ -590,7 +596,7 @@ static int process_manpath (const char * +@@ -591,7 +597,7 @@ static int process_manpath (const char *manpath, int global_manpath, if (!opt_test && amount) { finish_up (); #ifdef SECURE_MAN_UID @@ -1161,9 +1196,11 @@ #endif /* SECURE_MAN_UID */ read_config_file (user); +diff --git src/manp.c src/manp.c +index e73e838..22c7ae0 100644 --- src/manp.c -+++ src/manp.c 2012-10-09 15:25:14.378344409 +0000 -@@ -907,7 +907,7 @@ static char *def_path (int flag) ++++ src/manp.c +@@ -925,7 +925,7 @@ static char *def_path (int flag) /* If we have complete config file failure... */ if (!manpath) @@ -1172,8 +1209,10 @@ return manpath; } +diff --git src/straycats.c src/straycats.c +index 349d57b..9a27ff8 100644 --- src/straycats.c -+++ src/straycats.c 2012-10-09 15:25:14.486844509 +0000 ++++ src/straycats.c @@ -36,6 +36,7 @@ #include #include @@ -1204,9 +1243,11 @@ } closedir (cdir); return strays; +diff --git src/ult_src.c src/ult_src.c +index 283aee1..d2eb971 100644 --- src/ult_src.c -+++ src/ult_src.c 2012-10-09 15:25:14.610345084 +0000 -@@ -326,12 +326,17 @@ const char *ult_src (const char *name, c ++++ src/ult_src.c +@@ -379,10 +379,15 @@ const char *ult_src (const char *name, const char *path, } pipeline_start (decomp); @@ -1222,13 +1263,12 @@ + (STRNEQ (buffer, ".\\\"", 3) || + STRNEQ (buffer, "'\\\"", 3))); -- if (buffer) { -+ if (buffer && *buffer) { - char *include = test_for_include (buffer); - if (include) { - const char *ult; + include = test_for_include (buffer); + if (include) { +diff --git src/ult_src.h src/ult_src.h +index 6fad470..3cd3a37 100644 --- src/ult_src.h -+++ src/ult_src.h 2012-10-09 15:25:14.714345027 +0000 ++++ src/ult_src.h @@ -22,9 +22,10 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -1243,3 +1283,6 @@ /* Trace of the link chain from a given file. Any names listed here should * not have WHATIS_MAN entries created for them. +-- +1.8.4.5 + diff --git a/man-db-2.6.6.tar.xz b/man-db-2.6.6.tar.xz new file mode 100644 index 0000000..2a3b0cb --- /dev/null +++ b/man-db-2.6.6.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7da90f8d8df91e0e682769d50f4bdb905f525b5d0f01e7e5b8cc3c6da45f66c3 +size 1448576 diff --git a/man.changes b/man.changes index cf04c50..787e207 100644 --- a/man.changes +++ b/man.changes @@ -1,3 +1,52 @@ +------------------------------------------------------------------- +Tue Apr 8 12:26:37 UTC 2014 - sweet_f_a@gmx.de + +- Update to version 2.6.6 +- Fixes since 2.6.3: + * man(1) and catman(8) now document the default section list set at + configure time. + * Build fixes for Automake 1.13. + * man-db 2.6.0 arranged to search the full manpath when expanding + .so directives in manual pages (so that ".so name.1" works as well + as ".so man1/name.1"), but this incorrectly did not take effect + for manual pages that consist only of a .so directive. This is + now fixed. +- Improvements since 2.6.3: + * The MANLESS environment variable is now treated as if it were a + default value for the -r option to man: occurrences of the text + "$MAN_PN" are expanded, and explicitly using the -r option + overrides the default. + * The (unfortunately still hardcoded) maximum length for paths to + manual page hierarchies in the configuration file is now 511 + characters rather than 49. + * MANPATH entries now undergo glob(7)-style wildcard expansion, + allowing entries such as "/opt/*/man". +- Fixes since 2.6.4: + * man's --warnings option works again on systems with versions of + groff that support it (broken in 2.6.4). + * man automatically falls back to C.UTF-8 and then en_GB.UTF-8 if + trying to find a UTF-8 locale on a system without + /usr/share/i18n/SUPPORTED. +- Fixes since 2.6.5: + * apropos's --and option now works again; it was broken by the + optimisations in 2.6.2. + * Restore compatibility with Automake 1.10. + * Improve support for translation of common elements of help + messages. + * Don't issue error messages when the database refers to a page that + no longer exists. + * Pass macro and hyphenation language tags to groff again (broken in + 2.6.5). +- Improvements since 2.6.5: + * ./configure --with-override-dir=OVERRIDE arranges to look for + manual pages in DIR/OVERRIDE before each path element DIR. +- rebase following patches: + * man-db-2.6.3.dif + * man-db-2.6.3-security4.dif + * man-db-2.6.3-firefox.dif + * man-db-2.6.3-zio.dif +- enable checks + ------------------------------------------------------------------- Thu Sep 12 11:33:08 UTC 2013 - mvyskocil@suse.com diff --git a/man.spec b/man.spec index 3c04b38..9836456 100644 --- a/man.spec +++ b/man.spec @@ -1,7 +1,7 @@ # # spec file for package man # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -31,7 +31,7 @@ BuildRequires: pkg-config BuildRequires: po4a BuildRequires: xz-devel BuildRequires: zlib-devel -Version: 2.6.3 +Version: 2.6.6 Release: 0 Summary: A Program for Displaying man Pages License: GPL-2.0+ @@ -51,14 +51,14 @@ Source2: cron.daily.do_mandb Source3: cron.daily.clean_catman Source4: mancoding Source5: wrapper.c -Patch0: man-db-%{version}.dif +Patch0: man-db-2.6.5.dif Patch1: man-db-2.6.3-man0.dif Patch2: man-db-2.3.19deb4.0-groff.dif Patch4: man-db-2.6.3-section.dif -Patch5: man-db-2.6.3-security4.dif -Patch6: man-db-2.6.3-firefox.dif +Patch5: man-db-2.6.5-security4.dif +Patch6: man-db-2.6.5-firefox.dif Patch7: man-db-2.6.3-chinese.dif -Patch9: man-db-2.6.3-zio.dif +Patch9: man-db-2.6.5-zio.dif Patch10: man-db-2.6.3-listall.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _sysconfdir /etc @@ -162,6 +162,12 @@ Authors: gcc $CFLAGS -I gnulib/lib/ -I include/ --include config.h --include configmake.h \ -o wrapper %{S:5} -L gnulib/lib/.libs/ -lgnu +%check +if ! make check; then + cat src/tests/test-suite.log + exit 1 +fi + %install %if %suse_version <= 1030 export MKDIR_P="mkdir -p"