many man pages exist merely as a redirect to another man page:
$ xzcat /usr/share/man/man1/zcat.1.xz
.so man1/gzip.1

compressing these tiny (always?) results in a larger file.  that means we
arent saving space, and we're adding overhead at runtime.

two options which we can do transparently:
        - rewrite the .so man pages into symlinks
        - omit them from compression

the latter is pretty easy (see below).  any preferences on which route to take
though as the former shouldnt be too hard either ...

--- a/bin/ebuild-helpers/ecompressdir
+++ b/bin/ebuild-helpers/ecompressdir
@@ -13,6 +13,7 @@ case $1 in
        --ignore)
                shift
                for skip in "$@" ; do
+                       skip=${skip#${D}}
                        [[ -d ${D}${skip} || -f ${D}${skip} ]] \
                                && touch "${D}${skip}.ecompress.skip"
                done
--- a/bin/ebuild-helpers/prepman
+++ b/bin/ebuild-helpers/prepman
@@ -27,6 +27,10 @@ for subdir in "${mandir}"/man* "${mandir}"/*/man* ; do
        [[ -d ${subdir} ]] && really_is_mandir=1 && break
 done
 
-[[ ${really_is_mandir} == 1 ]] && exec ecompressdir --queue "${mandir#${D}}"
+if [[ ${really_is_mandir} == 1 ]] ; then
+       ecompressdir --queue "${mandir#${D}}" || exit 1
+       # compressing small files just adds overhead
+       find "${mandir}" -type f '!' -size +100c -print0 | ${XARGS} -0 
ecompressdir --ignore
+fi
 
 exit 0
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to