abuild: fix man pages compression

fix handling of hardlinks and symlinks.
also compress n man pages and localized man pages
This commit is contained in:
Natanael Copa 2015-08-19 10:59:00 +02:00
parent 72fefe0f1d
commit fe2332d186
1 changed files with 24 additions and 3 deletions

View File

@ -1438,9 +1438,30 @@ default_doc() {
done
# compress man pages
find "$subpkgdir"/usr/share/man/*[1-9] \
-type f \! -name \*.gz \! -name \*.bz2 2>/dev/null |
xargs -r gzip -9
local previnode= prevname= mandir="$subpkgdir"/usr/share/man
[ -d "$mandir" ] && find "$subpkgdir"/usr/share/man \
-type f \( -name \*.[0-9n] -o -name \*.[0-9][a-z]* \) \
-exec stat -c "%i %n" {} \; | sort -n \
| while read inode name; do
if [ "$inode" = "$previnode" ]; then
# update hard link
rm "$name"
ln "$prevname".gz "$name".gz
else
gzip -9 "$name"
fi
previnode="$inode"
prevname="$name"
done
[ -d "$mandir" ] && find "$subpkgdir"/usr/share/man \
-type l \( -name \*.[0-9n] -o -name \*.[0-9][a-z]* \) \
| while read symlink; do
ln -s $(readlink $symlink).gz "$symlink".gz
rm "$symlink"
done
rm -f "$subpkgdir/usr/share/info/dir"