diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /sys-apps/man | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sys-apps/man')
-rw-r--r-- | sys-apps/man/Manifest | 1 | ||||
-rw-r--r-- | sys-apps/man/files/makewhatis.cron | 5 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.5m2-apropos.patch | 16 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6-cross-compile.patch | 61 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6c-cut-duplicate-manpaths.patch | 83 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6e-headers.patch | 13 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6f-makewhatis-compression-cleanup.patch | 69 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6f-man2html-compression-2.patch | 61 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6f-parallel-build.patch | 78 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6f-so-search-2.patch | 34 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6f-unicode.patch | 28 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6g-compress.patch | 17 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6g-echo-escape.patch | 15 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6g-fbsd.patch | 15 | ||||
-rw-r--r-- | sys-apps/man/files/man-1.6g-xz.patch | 53 | ||||
-rw-r--r-- | sys-apps/man/man-1.6g-r1.ebuild | 129 | ||||
-rw-r--r-- | sys-apps/man/man-1.6g.ebuild | 128 | ||||
-rw-r--r-- | sys-apps/man/metadata.xml | 5 |
18 files changed, 811 insertions, 0 deletions
diff --git a/sys-apps/man/Manifest b/sys-apps/man/Manifest new file mode 100644 index 000000000000..677fe5cffdaa --- /dev/null +++ b/sys-apps/man/Manifest @@ -0,0 +1 @@ +DIST man-1.6g.tar.gz 256906 SHA256 ccdcb8c3f4e0080923d7e818f0e4a202db26c46415eaef361387c20995b8959f SHA512 c786fa2201aed92293e5590dc3ad5d550cf14e5059fa274ef7719af86ee4c892e747576495b6dc0a09286e73e2f0f0caf860216e0c8032d9ef13e5d26853048b WHIRLPOOL 1b531476108c27a3993023da430831c2d20f8045a51490d559a7f588f0771931defd7a3a745e9f1f03797e681eea8767aad4a27ab9abdd5d06ad935dc96a5020 diff --git a/sys-apps/man/files/makewhatis.cron b/sys-apps/man/files/makewhatis.cron new file mode 100644 index 000000000000..bef5ea6d1e2d --- /dev/null +++ b/sys-apps/man/files/makewhatis.cron @@ -0,0 +1,5 @@ +#!/bin/sh +# this is part of the man package +# it updates the search database for manpages + +exec nice makewhatis -u diff --git a/sys-apps/man/files/man-1.5m2-apropos.patch b/sys-apps/man/files/man-1.5m2-apropos.patch new file mode 100644 index 000000000000..9735a5330e88 --- /dev/null +++ b/sys-apps/man/files/man-1.5m2-apropos.patch @@ -0,0 +1,16 @@ +Ripped from Fedora + +--- man-1.5m2/src/apropos.sh ++++ man-1.5m2/src/apropos.sh +@@ -19,9 +19,9 @@ + + # When man pages in your favorite locale look to grep like binary files + # (and you use GNU grep) you may want to add the 'a' option to *grepopt1. +-aproposgrepopt1='i' ++aproposgrepopt1='ai' + aproposgrepopt2='' +-whatisgrepopt1='iw' ++whatisgrepopt1='aiw' + whatisgrepopt2='^' + grepopt1=$%apropos_or_whatis%grepopt1 + grepopt2=$%apropos_or_whatis%grepopt2 diff --git a/sys-apps/man/files/man-1.6-cross-compile.patch b/sys-apps/man/files/man-1.6-cross-compile.patch new file mode 100644 index 000000000000..184236918b91 --- /dev/null +++ b/sys-apps/man/files/man-1.6-cross-compile.patch @@ -0,0 +1,61 @@ +Fix up to work with cross-compiling ... most of these tests only +need to see if the example compiled, not whether it runs ... + +--- configure ++++ configure +@@ -232,15 +232,13 @@ + + echo checking for POSIX.1 header files + echo "#include <unistd.h> +-main() { + #ifdef _POSIX_VERSION +-exit(0); ++main() { exit(0); } + #else +-exit(1); +-#endif +-}" > conftest.c ++# error no _POSIX_VERSION ++#endif" > conftest.c + eval $compile +-if test -s conftest && ./conftest 2>/dev/null; then ++if test -s conftest ; then + DEFS="$DEFS -DPOSIX" + fi + rm -f conftest conftest.c +@@ -249,7 +247,7 @@ + echo "#include <strings.h> + main() { exit(0); rindex(0, 0); bzero(0, 0); }" > conftest.c + eval $compile +-if test -s conftest && ./conftest 2>/dev/null; then : ++if test -s conftest ; then : + else DEFS="$DEFS -DUSG" + fi + rm -f conftest conftest.c +@@ -258,7 +256,7 @@ + echo '#include <sys/types.h> + main() { uid_t x; exit(0); }' > conftest.c + eval $compile +-if test -s conftest && ./conftest 2>/dev/null; then : ++if test -s conftest ; then : + else + uid_t=`awk '/pw_uid;/ {print $1}' $INCLUDEDIR/pwd.h` + DEFS="$DEFS -Duid_t=${uid_t} -Dgid_t=${uid_t}" +@@ -291,7 +289,7 @@ + #endif + main() { char *p = (char *) alloca(1); exit(0); }' > conftest.c + eval $compile +-if test -s conftest && ./conftest 2>/dev/null; then : ++if test -s conftest ; then : + elif test -d /usr/ucblib; then LIBS="$LIBS -L/usr/ucblib -lucb" + elif test -f /usr/lib/libPW.a; then LIBS="$LIBS -lPW" + else DEFS="$DEFS -DALLOCA_MISSING" +@@ -321,7 +319,7 @@ + struct option long_opts[] = { { "", no_argument, NULL, 0 } }; + main() { exit(0); }' > conftest.c + eval $compile +-if test -s conftest && ./conftest 2>/dev/null; then ++if test -s conftest ; then + manpathoption="--path" + else + manpathoption="-w" diff --git a/sys-apps/man/files/man-1.6c-cut-duplicate-manpaths.patch b/sys-apps/man/files/man-1.6c-cut-duplicate-manpaths.patch new file mode 100644 index 000000000000..9ecaeb70e16e --- /dev/null +++ b/sys-apps/man/files/man-1.6c-cut-duplicate-manpaths.patch @@ -0,0 +1,83 @@ +http://bugs.gentoo.org/90186 + +If we have entries in MANPATH that are really symlinks to other entries, +then many man functions will yield duplicate entries. + +Without this patch, we see this behavior: +$ echo $MANPATH +/usr/share/man:/usr/man +$ man --path +/usr/share/man:/usr/man +$ ls -ld /usr/share/man /usr/man +lrwxrwxrwx 1 /usr/man -> /usr/share/man +drwxr-xr-x 36 /usr/share/man +$ man -k passwd +passwd (1) - change user password +passwd (1) - change user password + +With this patch, we get: +$ echo $MANPATH +/usr/share/man:/usr/man +$ man --path +/usr/share/man +$ ls -ld /usr/share/man /usr/man +lrwxrwxrwx 1 /usr/man -> /usr/share/man +drwxr-xr-x 36 /usr/share/man +$ man -k passwd +passwd (1) - change user password + +--- man-1.6c/src/manpath.c ++++ man-1.6c/src/manpath.c +@@ -380,6 +380,44 @@ + } + } + ++void trim_symlinked_manpaths (void); ++void ++trim_symlinked_manpaths () { ++ /* ++ * Skip symlinks to other entries in path. ++ * Do this after we've built the entire list. ++ */ ++ struct stat *stat_cache; ++ size_t i, j, size; ++ ++ if (!mandirlist) ++ return; ++ ++ for (size = 0; mandirlist[size]; ++size) ++ /* count # of elements */; ++ if (size == 0) ++ return; ++ /* cache stat information for every element */ ++ stat_cache = (struct stat *) my_malloc (size * sizeof(*stat_cache)); ++ for (i = 0; i < size; ++i) ++ stat(mandirlist[i], &stat_cache[i]); ++ ++#define EQU_STAT(s,d) ((s).st_dev == (d).st_dev && (s).st_ino == (d).st_ino) ++ for (i = 0; i < size; ++i) { ++ for (j = i+1; j < size; ++j) { ++ if (EQU_STAT(stat_cache[i], stat_cache[j])) { ++ /* these two entries are the same, so cut out the second one */ ++ memmove(mandirlist+j, mandirlist+j+1, (size-j)*sizeof(*mandirlist)); ++ memmove(stat_cache+j, stat_cache+j+1, (size-j)*sizeof(*stat_cache)); ++ mandirlist[--size] = NULL; ++ --j; ++ } ++ } ++ } ++ ++ free(stat_cache); ++} ++ + void + init_manpath () { + static int done = 0; +@@ -391,6 +431,7 @@ + (manp = getenv ("MANPATH")) == NULL) + manp = ""; /* default path */ + split (manp, to_mandirlist, 0); ++ trim_symlinked_manpaths (); + done = 1; + } + } diff --git a/sys-apps/man/files/man-1.6e-headers.patch b/sys-apps/man/files/man-1.6e-headers.patch new file mode 100644 index 000000000000..9c6fd6f43516 --- /dev/null +++ b/sys-apps/man/files/man-1.6e-headers.patch @@ -0,0 +1,13 @@ +--- gencat/genlib.c ++++ gencat/genlib.c +@@ -49,10 +49,8 @@ + + #include <stdio.h> + #include <stdlib.h> +-#ifdef SYSV + #include <sys/types.h> + #include <unistd.h> +-#endif + + #if !defined(__linux__) && !defined(__FreeBSD__) + #include <memory.h> diff --git a/sys-apps/man/files/man-1.6f-makewhatis-compression-cleanup.patch b/sys-apps/man/files/man-1.6f-makewhatis-compression-cleanup.patch new file mode 100644 index 000000000000..a7d74c32be3a --- /dev/null +++ b/sys-apps/man/files/man-1.6f-makewhatis-compression-cleanup.patch @@ -0,0 +1,69 @@ +http://bugs.gentoo.org/331979 + +patch by William Throwe <wthrowe@mit.edu> + +The problem is that a failed match() resets the RSTART variable used to +extract filename_no_gz (visible in the trailing context of the patch), +so it is important that no more match() commands are attempted after the +successful one. Without the scoping, if (for example) the test for .bz2 +succeeds, it prevents testing for .lzma, but doesn't prevent testing for +.xz. The failing .xz test causes RSTART to be set to zero so +filename_no_gz becomes the empty string. + +--- man-1.6f/src/makewhatis.sh ++++ man-1.6f/src/makewhatis.sh +@@ -234,7 +234,7 @@ + find $mandir/${pages}$i/. -name '*' $findarg0 $findarg -print | $AWK ' + + function readline() { +- if (use_zcat || use_bzcat || use_lzcat || use_xzcat) { ++ if (use_compression) { + result = (pipe_cmd | getline); + if (result < 0) { + print "Pipe error: " pipe_cmd " " ERRNO > "/dev/stderr"; +@@ -249,7 +249,7 @@ + } + + function closeline() { +- if (use_zcat || use_bzcat || use_lzcat || use_xzcat) { ++ if (use_compression) { + return close(pipe_cmd); + } else { + return close(filename); +@@ -263,16 +263,20 @@ + if (verbose) { + print "adding " filename > "/dev/stderr" + } +- ++ + use_zcat = match(filename,"\\.Z$") || + match(filename,"\\.z$") || match(filename,"\\.gz$"); +- if (!use_zcat) ++ if (!use_zcat) { + use_bzcat = match(filename,"\\.bz2"); +- if(!use_bzcat) +- use_lzcat = match(filename,"\\.lzma"); +- if(!use_lzcat) +- use_xzcat = match(filename,"\\.xz"); +- if (use_zcat || use_bzcat || use_lzcat || use_xzcat) { ++ if (!use_bzcat) { ++ use_lzcat = match(filename,"\\.lzma"); ++ if (!use_lzcat) { ++ use_xzcat = match(filename,"\\.xz"); ++ } ++ } ++ } ++ use_compression = (use_zcat || use_bzcat || use_lzcat || use_xzcat); ++ if (use_compression) { + filename_no_gz = substr(filename, 0, RSTART - 1); + } else { + filename_no_gz = filename; +@@ -285,7 +289,7 @@ + actual_section = section; + } + sub(/\..*/, "", progname); +- if (use_zcat || use_bzcat || use_lzcat || use_xzcat) { ++ if (use_compression) { + if (use_zcat) { + pipe_cmd = "zcat \"" filename "\""; + } else if (use_bzcat) { diff --git a/sys-apps/man/files/man-1.6f-man2html-compression-2.patch b/sys-apps/man/files/man-1.6f-man2html-compression-2.patch new file mode 100644 index 000000000000..b79b3a1872f1 --- /dev/null +++ b/sys-apps/man/files/man-1.6f-man2html-compression-2.patch @@ -0,0 +1,61 @@ +add support for bzip2/lzma to man2html and friends + +--- man2html/glimpse_filters ++++ man2html/glimpse_filters +@@ -1,3 +1,6 @@ ++*.bz2 bzip2 -d -c ++*.lzma lzma -d -c ++*.xz xz -d -c + *.gz gzip -d -c + *.Z gzip -d -c + +--- man2html/scripts/cgi-bin/man/man2html ++++ man2html/scripts/cgi-bin/man/man2html +@@ -93,6 +93,12 @@ + *.bz2) + bzcat "$PAGE" | "$MAN2HTML" "$LL" -D "$PAGE" + ;; ++ *.lzma) ++ lzcat "$PAGE" | "$MAN2HTML" "$LL" -D "$PAGE" ++ ;; ++ *.xz) ++ xzcat "$PAGE" | "$MAN2HTML" "$LL" -D "$PAGE" ++ ;; + *) + "$MAN2HTML" "$LL" "$PAGE" + ;; +@@ -103,6 +106,12 @@ + elif [ -r "$PAGE".bz2 ] + then + bzcat "$PAGE".bz2 | "$MAN2HTML" "$LL" -D "$PAGE" ++elif [ -r "$PAGE".lzma ] ++then ++ lzcat "$PAGE".lzma | "$MAN2HTML" "$LL" -D "$PAGE" ++elif [ -r "$PAGE".xz ] ++then ++ xzcat "$PAGE".xz | "$MAN2HTML" "$LL" -D "$PAGE" + else + "$MAN2HTML" -E "Strange... Cannot find (or read) $PAGE." + fi +--- man2html/scripts/cgi-bin/man/mansearch ++++ man2html/scripts/cgi-bin/man/mansearch +@@ -153,7 +153,7 @@ + } + print "<DT> <a href=\"" cgipath "/man2html?" fullname "\">"; + textname = filename; +- sub(/\.(gz)|Z|z$/, "", textname); ++ sub(/\.([zZ]|gz|bz2|lzma|xz)$/, "", textname); + sub(/\./, "(", textname); + textname = textname ")"; + print textname; +--- man2html/scripts/cgi-bin/man/mansec ++++ man2html/scripts/cgi-bin/man/mansec +@@ -128,7 +128,7 @@ + # Print out alphabetic quick index and other links + } + # Split page.n into "page" and "n" and generate an entry +- sub(/[.]([zZ]|(gz))$/, "", manpage); ++ sub(/[.]([zZ]|gz|bz2|lzma|xz)$/, "", manpage); + match(manpage, /[.][^.]+$/); + title = substr(manpage, 1, RSTART - 1); + if (section != "all") { diff --git a/sys-apps/man/files/man-1.6f-parallel-build.patch b/sys-apps/man/files/man-1.6f-parallel-build.patch new file mode 100644 index 000000000000..41918d9244da --- /dev/null +++ b/sys-apps/man/files/man-1.6f-parallel-build.patch @@ -0,0 +1,78 @@ +http://bugs.gentoo.org/207148 + +patch by Kevin Pyle to fix parallel build issues + +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -42,9 +42,12 @@ + makemsg: + $(BUILD_CC) -o makemsg makemsg.c + +-msg.c gripedefs.h: ../msgs/mess.en makemsg ++gripedefs.h: ../msgs/mess.en makemsg + ./makemsg ../msgs/mess.en gripedefs.h msg.c + ++# avoid parallel build issues with makemsg ++msg.c: gripedefs.h ++ + # glob.c does not have prototypes + glob.o: glob.c ndir.h + $(CC) -c $(CWARNNP) $(CFLAGS) -I. $(DEFS) glob.c + +http://bugs.gentoo.org/258916 + +avoid: + make[2]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. + +--- a/man/Makefile.in ++++ b/man/Makefile.in +@@ -3,7 +3,7 @@ + MAN5 = man.conf + MAN8 = makewhatis + ALL = man.1 whatis.1 apropos.1 man.conf.5 +-MAYBE8 = makewhatis ++MAYBE8 = $(wildcard makewhatis.man) + + .SUFFIXES: .man .1 .5 .8 + +@@ -21,9 +21,7 @@ + # Where to put the manual pages. + mandir = $(DESTDIR)$(PREFIX)@mandir@$(SLANG) + +-all: $(ALL) +- for i in $(MAYBE8); \ +- do if test -f $$i.man; then make -f ../Makefile $$i.8; fi; done ++all: $(ALL) $(MAYBE8:.man=.8) + + install: $(ALL) + mkdir -p $(mandir)/man1 $(mandir)/man5 $(mandir)/man8 +@@ -39,18 +37,17 @@ + + spotless: + +-subdirs: +- @for i in @languages@; do if test -d $$i; then echo; \ +- echo "==== Making the `cat $$i.txt` man pages. ===="; \ +- cd $$i; make -f ../Makefile; cd ..; \ +- else echo "==== No $$i man pages found. ===="; fi; done +- +-installsubdirs: +- @for i in @languages@; do if test -d $$i; then echo; \ +- echo "==== Installing the `cat $$i.txt` man pages. ===="; \ +- cd $$i; SLANG=/$$i; if test $$SLANG = /en; then SLANG= ; fi; \ +- export SLANG; make -f ../Makefile install; cd ..; \ +- else echo "==== No $$i man pages found. ===="; fi; done ++MAN_LANGS = $(wildcard @languages@) ++subdirs: $(MAN_LANGS:=_lang_subdir) ++%_lang_subdir: ++ @echo "==== Making the `cat $(@:_lang_subdir=).txt` man pages. ====" ++ $(MAKE) -f ../Makefile -C $(@:_lang_subdir=) ++ ++installsubdirs: $(MAN_LANGS:=_lang_installsubdir) ++%_lang_installsubdir: ++ @echo "==== Making the `cat $(@:_lang_installsubdir=).txt` man pages. ====" ++ $(MAKE) -f ../Makefile -C $(@:_lang_installsubdir=) install \ ++ SLANG=`s=$(@:_lang_installsubdir=); test $$s = en || echo /$$s` + + cleansubdirs: + @for i in ??; do cd $$i; make -f ../Makefile clean; cd ..; done diff --git a/sys-apps/man/files/man-1.6f-so-search-2.patch b/sys-apps/man/files/man-1.6f-so-search-2.patch new file mode 100644 index 000000000000..ac42c8df7b37 --- /dev/null +++ b/sys-apps/man/files/man-1.6f-so-search-2.patch @@ -0,0 +1,34 @@ +improve the uncompressed .so search + +--- a/src/man.c ++++ b/src/man.c +@@ -381,13 +381,23 @@ again: + } + /* + * Some people have compressed man pages, but uncompressed +- * .so files - we could glob for all possible extensions, +- * for now: only try .gz ++ * .so files - we should discover this list dynamically, but ++ * for now just hardcode it. + */ +- else if (fp == NULL && get_expander(".gz") && +- strlen(name)+strlen(".gz") < BUFSIZE) { +- strcat(name, ".gz"); +- fp = fopen (name, "r"); ++ else if (fp == NULL) { ++#define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a))) ++ size_t i, name_len = strlen(name); ++ const char *extensions[] = { ".gz", ".bz2", ".lzma", ".xz", ".z", ".Z" }; ++ for (i = 0; i < ARRAY_SIZE(extensions); ++i) { ++ const char *comp = extensions[i]; ++ name[name_len] = '\0'; ++ if (get_expander(comp) && name_len+strlen(comp) < BUFSIZE) { ++ strcat(name, comp); ++ fp = fopen(name, "r"); ++ if (fp) ++ break; ++ } ++ } + } + + if (fp == NULL) { diff --git a/sys-apps/man/files/man-1.6f-unicode.patch b/sys-apps/man/files/man-1.6f-unicode.patch new file mode 100644 index 000000000000..89d3821df3ca --- /dev/null +++ b/sys-apps/man/files/man-1.6f-unicode.patch @@ -0,0 +1,28 @@ +let the active locale work its magic + +http://bugs.gentoo.org/146315 + +--- man-1.6f/configure ++++ man-1.6f/configure +@@ -473,9 +473,9 @@ + then + if test $Fnroff = "missing" + then +- nroff="nroff -Tlatin1 -mandoc" ++ nroff="nroff -Tascii -c -mandoc" + else +- nroff="$Fnroff -Tlatin1 -mandoc" ++ nroff="$Fnroff -mandoc" + fi + troff="troff -mandoc" + echo "Warning: could not find groff" +@@ -484,7 +484,7 @@ + then + nroff="$Fgroff -Tlatin1 -mandoc" + else +- nroff="$Fnroff -Tlatin1 -mandoc" ++ nroff="$Fnroff -mandoc" + fi + troff="$Fgroff -Tps -mandoc" + jnroff="$Fgroff -Tnippon -mandocj" + diff --git a/sys-apps/man/files/man-1.6g-compress.patch b/sys-apps/man/files/man-1.6g-compress.patch new file mode 100644 index 000000000000..374d80730074 --- /dev/null +++ b/sys-apps/man/files/man-1.6g-compress.patch @@ -0,0 +1,17 @@ +allow selection of default cache compressor + +http://bugs.gentoo.org/205147 + +--- configure ++++ configure +@@ -1012,6 +1012,10 @@ + done + done + ++ if [ x$COMPRESS != x ]; then ++ compress=$COMPRESS ++ fi ++ + if [ x$default = x ]; then + echo "" + echo "What program should be used to compress the formatted pages?" diff --git a/sys-apps/man/files/man-1.6g-echo-escape.patch b/sys-apps/man/files/man-1.6g-echo-escape.patch new file mode 100644 index 000000000000..96e950a51e86 --- /dev/null +++ b/sys-apps/man/files/man-1.6g-echo-escape.patch @@ -0,0 +1,15 @@ +avoid using escape sequences in echo as they're not portable + +https://bugs.gentoo.org/523874 + +--- a/src/man.c ++++ b/src/man.c +@@ -626,7 +626,7 @@ make_roff_command (const char *path, const char *file) { + the current position plus 10 lines. This plus setpl() + gives us a single page that just contains the whole + man page. (William Webber, wew@cs.rmit.edu.au) */ +- strcat(buft, "; echo \".\\\\\\\"\"; echo \".pl \\n(nlu+10\""); ++ strcat(buft, "; echo \".\\\\\\\"\"; echo \".pl \"; echo \"(nlu+10\""); + #if 0 + /* In case this doesnt work for some reason, + michaelkjohnson suggests: I've got a simple diff --git a/sys-apps/man/files/man-1.6g-fbsd.patch b/sys-apps/man/files/man-1.6g-fbsd.patch new file mode 100644 index 000000000000..ef01a6e01fc0 --- /dev/null +++ b/sys-apps/man/files/man-1.6g-fbsd.patch @@ -0,0 +1,15 @@ +Fixes compilation in FreeBSD + +http://bugs.gentoo.org/138123 + +--- man-1.6g/gencat/genlib.c ++++ man-1.6g/gencat/genlib.c +@@ -54,7 +54,7 @@ + #include <unistd.h> + #endif + +-#if !defined(__linux__) && !defined(__CYGWIN__) ++#if !defined(__linux__) && !defined(__CYGWIN__) && !defined(__FreeBSD__) + #include <memory.h> + static int bcopy(src, dst, length) + char *src, *dst; diff --git a/sys-apps/man/files/man-1.6g-xz.patch b/sys-apps/man/files/man-1.6g-xz.patch new file mode 100644 index 000000000000..fcf91f71d376 --- /dev/null +++ b/sys-apps/man/files/man-1.6g-xz.patch @@ -0,0 +1,53 @@ +add support for xz + +http://bugs.gentoo.org/302380 + +--- a/src/makewhatis.sh ++++ b/src/makewhatis.sh +@@ -230,7 +230,7 @@ + find $mandir/${pages}$i/. -name '*' $findarg0 $findarg -print | $AWK ' + + function readline() { +- if (use_zcat || use_bzcat || use_lzcat) { ++ if (use_zcat || use_bzcat || use_lzcat || use_xzcat) { + result = (pipe_cmd | getline); + if (result < 0) { + print "Pipe error: " pipe_cmd " " ERRNO > "/dev/stderr"; +@@ -245,7 +245,7 @@ + } + + function closeline() { +- if (use_zcat || use_bzcat || use_lzcat) { ++ if (use_zcat || use_bzcat || use_lzcat || use_xzcat) { + return close(pipe_cmd); + } else { + return close(filename); +@@ -266,7 +266,9 @@ + use_bzcat = match(filename,"\\.bz2"); + if(!use_bzcat) + use_lzcat = match(filename,"\\.lzma"); +- if (use_zcat || use_bzcat || use_lzcat ) { ++ if(!use_lzcat) ++ use_xzcat = match(filename,"\\.xz"); ++ if (use_zcat || use_bzcat || use_lzcat || use_xzcat) { + filename_no_gz = substr(filename, 0, RSTART - 1); + } else { + filename_no_gz = filename; +@@ -279,13 +281,15 @@ + actual_section = section; + } + sub(/\..*/, "", progname); +- if (use_zcat || use_bzcat || use_lzcat) { ++ if (use_zcat || use_bzcat || use_lzcat || use_xzcat) { + if (use_zcat) { + pipe_cmd = "zcat \"" filename "\""; + } else if (use_bzcat) { + pipe_cmd = "bzcat \"" filename "\""; +- } else { ++ } else if (use_lzcat) { + pipe_cmd = "lzcat \"" filename "\""; ++ } else { ++ pipe_cmd = "xzcat \"" filename "\""; + } + # try to avoid suspicious stuff + if (filename ~ /[;&|`$(]/) { diff --git a/sys-apps/man/man-1.6g-r1.ebuild b/sys-apps/man/man-1.6g-r1.ebuild new file mode 100644 index 000000000000..9923c81c5779 --- /dev/null +++ b/sys-apps/man/man-1.6g-r1.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit eutils toolchain-funcs user + +DESCRIPTION="Standard commands to read man pages" +HOMEPAGE="http://primates.ximian.com/~flucifredi/man/" +SRC_URI="http://primates.ximian.com/~flucifredi/man/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" +IUSE="+lzma nls selinux" + +DEPEND="nls? ( sys-devel/gettext )" +RDEPEND="|| ( >=sys-apps/groff-1.19.2-r1 app-doc/heirloom-doctools ) + !sys-apps/man-db + !<app-arch/lzma-4.63 + lzma? ( app-arch/xz-utils ) + selinux? ( sec-policy/selinux-makewhatis )" + +pkg_setup() { + enewgroup man 15 + enewuser man 13 -1 /usr/share/man man +} + +src_prepare() { + epatch "${FILESDIR}"/man-1.6f-man2html-compression-2.patch + epatch "${FILESDIR}"/man-1.6-cross-compile.patch + epatch "${FILESDIR}"/man-1.6f-unicode.patch #146315 + epatch "${FILESDIR}"/man-1.6c-cut-duplicate-manpaths.patch + epatch "${FILESDIR}"/man-1.5m2-apropos.patch + epatch "${FILESDIR}"/man-1.6g-fbsd.patch #138123 + epatch "${FILESDIR}"/man-1.6e-headers.patch + epatch "${FILESDIR}"/man-1.6f-so-search-2.patch + epatch "${FILESDIR}"/man-1.6g-compress.patch #205147 + epatch "${FILESDIR}"/man-1.6f-parallel-build.patch #207148 #258916 + epatch "${FILESDIR}"/man-1.6g-xz.patch #302380 + epatch "${FILESDIR}"/man-1.6f-makewhatis-compression-cleanup.patch #331979 + epatch "${FILESDIR}"/man-1.6g-echo-escape.patch #523874 + # make sure `less` handles escape sequences #287183 + sed -i -e '/^DEFAULTLESSOPT=/s:"$:R":' configure +} + +echoit() { echo "$@" ; "$@" ; } +src_configure() { + strip-linguas $(eval $(grep ^LANGUAGES= configure) ; echo ${LANGUAGES//,/ }) + + unset NLSPATH #175258 + + tc-export CC BUILD_CC + + local mylang= + if use nls ; then + if [[ -z ${LINGUAS} ]] ; then + mylang="all" + else + mylang="${LINGUAS// /,}" + fi + else + mylang="none" + fi + export COMPRESS + if use lzma ; then + COMPRESS=/usr/bin/xz + else + COMPRESS=/bin/bzip2 + fi + echoit \ + ./configure \ + -confdir=/etc \ + +sgid +fhs \ + +lang ${mylang} \ + || die "configure failed" +} + +src_install() { + unset NLSPATH #175258 + + emake PREFIX="${D}" install || die "make install failed" + dosym man /usr/bin/manpath + + dodoc LSM README* TODO + + # makewhatis only adds man-pages from the last 24hrs + exeinto /etc/cron.daily + newexe "${FILESDIR}"/makewhatis.cron makewhatis + + keepdir /var/cache/man + diropts -m0775 -g man + local mansects=$(grep ^MANSECT "${D}"/etc/man.conf | cut -f2-) + for x in ${mansects//:/ } ; do + keepdir /var/cache/man/cat${x} + done +} + +pkg_postinst() { + einfo "Forcing sane permissions onto ${ROOT}var/cache/man (Bug #40322)" + chown -R root:man "${ROOT}"/var/cache/man + chmod -R g+w "${ROOT}"/var/cache/man + [[ -e ${ROOT}/var/cache/man/whatis ]] \ + && chown root:0 "${ROOT}"/var/cache/man/whatis + + echo + + local f files=$(ls "${ROOT}"/etc/cron.{daily,weekly}/makewhatis{,.cron} 2>/dev/null) + for f in ${files} ; do + [[ ${f} == */etc/cron.daily/makewhatis ]] && continue + [[ $(md5sum "${f}") == "8b2016cc778ed4e2570b912c0f420266 "* ]] \ + && rm -f "${f}" + done + files=$(ls "${ROOT}"etc/cron.{daily,weekly}/makewhatis{,.cron} 2>/dev/null) + if [[ ${files/$'\n'} != ${files} ]] ; then + ewarn "You have multiple makewhatis cron files installed." + ewarn "You might want to delete all but one of these:" + ewarn ${files} + fi + + if has_version app-doc/heirloom-doctools; then + ewarn "Please note that the /etc/man.conf file installed will not" + ewarn "work with heirloom's nroff by default (yet)." + ewarn "" + ewarn "Check app-doc/heirloom-doctools elog messages for the proper" + ewarn "configuration." + fi +} diff --git a/sys-apps/man/man-1.6g.ebuild b/sys-apps/man/man-1.6g.ebuild new file mode 100644 index 000000000000..d36a02632483 --- /dev/null +++ b/sys-apps/man/man-1.6g.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="2" + +inherit eutils toolchain-funcs user + +DESCRIPTION="Standard commands to read man pages" +HOMEPAGE="http://primates.ximian.com/~flucifredi/man/" +SRC_URI="http://primates.ximian.com/~flucifredi/man/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" +IUSE="+lzma nls selinux" + +DEPEND="nls? ( sys-devel/gettext )" +RDEPEND="|| ( >=sys-apps/groff-1.19.2-r1 app-doc/heirloom-doctools ) + !sys-apps/man-db + !<app-arch/lzma-4.63 + lzma? ( app-arch/xz-utils ) + selinux? ( sec-policy/selinux-makewhatis )" + +pkg_setup() { + enewgroup man 15 + enewuser man 13 -1 /usr/share/man man +} + +src_prepare() { + epatch "${FILESDIR}"/man-1.6f-man2html-compression-2.patch + epatch "${FILESDIR}"/man-1.6-cross-compile.patch + epatch "${FILESDIR}"/man-1.6f-unicode.patch #146315 + epatch "${FILESDIR}"/man-1.6c-cut-duplicate-manpaths.patch + epatch "${FILESDIR}"/man-1.5m2-apropos.patch + epatch "${FILESDIR}"/man-1.6g-fbsd.patch #138123 + epatch "${FILESDIR}"/man-1.6e-headers.patch + epatch "${FILESDIR}"/man-1.6f-so-search-2.patch + epatch "${FILESDIR}"/man-1.6g-compress.patch #205147 + epatch "${FILESDIR}"/man-1.6f-parallel-build.patch #207148 #258916 + epatch "${FILESDIR}"/man-1.6g-xz.patch #302380 + epatch "${FILESDIR}"/man-1.6f-makewhatis-compression-cleanup.patch #331979 + # make sure `less` handles escape sequences #287183 + sed -i -e '/^DEFAULTLESSOPT=/s:"$:R":' configure +} + +echoit() { echo "$@" ; "$@" ; } +src_configure() { + strip-linguas $(eval $(grep ^LANGUAGES= configure) ; echo ${LANGUAGES//,/ }) + + unset NLSPATH #175258 + + tc-export CC BUILD_CC + + local mylang= + if use nls ; then + if [[ -z ${LINGUAS} ]] ; then + mylang="all" + else + mylang="${LINGUAS// /,}" + fi + else + mylang="none" + fi + export COMPRESS + if use lzma ; then + COMPRESS=/usr/bin/xz + else + COMPRESS=/bin/bzip2 + fi + echoit \ + ./configure \ + -confdir=/etc \ + +sgid +fhs \ + +lang ${mylang} \ + || die "configure failed" +} + +src_install() { + unset NLSPATH #175258 + + emake PREFIX="${D}" install || die "make install failed" + dosym man /usr/bin/manpath + + dodoc LSM README* TODO + + # makewhatis only adds man-pages from the last 24hrs + exeinto /etc/cron.daily + newexe "${FILESDIR}"/makewhatis.cron makewhatis + + keepdir /var/cache/man + diropts -m0775 -g man + local mansects=$(grep ^MANSECT "${D}"/etc/man.conf | cut -f2-) + for x in ${mansects//:/ } ; do + keepdir /var/cache/man/cat${x} + done +} + +pkg_postinst() { + einfo "Forcing sane permissions onto ${ROOT}var/cache/man (Bug #40322)" + chown -R root:man "${ROOT}"/var/cache/man + chmod -R g+w "${ROOT}"/var/cache/man + [[ -e ${ROOT}/var/cache/man/whatis ]] \ + && chown root:0 "${ROOT}"/var/cache/man/whatis + + echo + + local f files=$(ls "${ROOT}"/etc/cron.{daily,weekly}/makewhatis{,.cron} 2>/dev/null) + for f in ${files} ; do + [[ ${f} == */etc/cron.daily/makewhatis ]] && continue + [[ $(md5sum "${f}") == "8b2016cc778ed4e2570b912c0f420266 "* ]] \ + && rm -f "${f}" + done + files=$(ls "${ROOT}"etc/cron.{daily,weekly}/makewhatis{,.cron} 2>/dev/null) + if [[ ${files/$'\n'} != ${files} ]] ; then + ewarn "You have multiple makewhatis cron files installed." + ewarn "You might want to delete all but one of these:" + ewarn ${files} + fi + + if has_version app-doc/heirloom-doctools; then + ewarn "Please note that the /etc/man.conf file installed will not" + ewarn "work with heirloom's nroff by default (yet)." + ewarn "" + ewarn "Check app-doc/heirloom-doctools elog messages for the proper" + ewarn "configuration." + fi +} diff --git a/sys-apps/man/metadata.xml b/sys-apps/man/metadata.xml new file mode 100644 index 000000000000..96a2d586367d --- /dev/null +++ b/sys-apps/man/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>base-system</herd> +</pkgmetadata> |