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
signature.asc
Description: This is a digitally signed message part.