+%setup -q -c -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a13 -a14 -a15 -a16 -a17 -a18 -a19 -a20 -a30
+%patch0 -p1 -d manpages-zh-%{zh_version}
+%patch3 -p1 -d man-pages-tr-%{tr_version}
+%patch4 -p1 -d man-pages-tr-%{tr_version}
+%patch6 -p1 -d man-pages-cs-%{cs_version}
+# man-pages-extra
+%patch10 -p0
+%patch2 -p0 -d man-pages-extra
+install -d man-pages-extra/C
+%{__mv} man-pages-extra/man* man-pages-extra/C
+
+# prepare somehow unified source trees
+install -d src
+%{__mv} man-pages-%{version} src/C
+%{__mv} man-pages-posix-%{posix_version}/man*p src/C
+%{__mv} man-pages-cs-%{cs_version} src/cs
+%{__mv} manpages-da-%{da_version} src/da
+%{__mv} manpages-de-%{de_version} src/de
+%{__mv} man-pages-es-%{es_version} src/es
+%{__mv} manpages-fi src/fi
+%{__mv} fr src/fr
+%{__mv} manpages-hu-%{hu_version}.orig/usr/share/man/hu src/hu
+install -d src/id/man{1,8}
+%{__mv} man-pages-it-%{it_version} src/it
+%{__mv} man-pages-ja-%{ja_version} src/ja
+install -d src/ko
+tar xzf %{SOURCE12} -C src/ko
+%{__mv} manpages-nl-%{nl_version} src/nl
+%{__mv} pl_PL src/pl
+%{__mv} man-pages-%{pt_version}-pt_BR src/pt_BR
+%{__mv} man-ro src/ro
+%{__mv} manpages-ru-asp-%{ru_asp_version} src/ru
+%{__mv} man-pages-tr-%{tr_version} src/tr
+%{__mv} man-pages-uk_UA.alfa src/uk
+%{__mv} manpages-zh-%{zh_version} src/zh
+
+# extra so links (via man-pages-extra)
+while read LINE ; do
+ if echo "$LINE" | grep -q '^#' ; then
+ continue
+ fi
+ set -- $LINE
+ install -d man-pages-extra/${1}/$(dirname $2)
+ if [ -f man-pages-extra/${1}/${2} ]; then
+ echo "man-pages-extra/${1}/${2} already exists!"
+ exit 1
+ fi
+ echo ".so $3" >>man-pages-extra/${1}/${2}
+ # special case for zh
+ if [ "$1" = "zh_CN" ]; then
+ zhmandir="src/zh/src/$(dirname "$2")"
+ makefile="$zhmandir/manpages"
+ if [ ! -f "$zhmandir/.init.mark" ]; then
+ # allow continuation in next line
+ %{__sed} -i -e 's/\(\.[1-8]\)$/\1 \\/' "$makefile"
+ touch "$zhmandir/.init.mark"
+ fi
+ printf " %s" "$(basename "$2")" >> "$makefile"
+ fi
+done < %{SOURCE50}
+
+# unify trees for easier processing (where possible)
+
+# da: add man1 subdir
+install -d src/da/man1
+%{__mv} src/da/*.1 src/da/man1
+
+# es: merge in "extra" pages
+# skip pages already in main es
+%{__rm} man-pages-es-extra-%{es_extra_version}/man3/dl*.3
+%{__rm} man-pages-es-extra-%{es_extra_version}/man5/{acct,host.conf,resolv.conf,resolver}.5
+%{__rm} man-pages-es-extra-%{es_extra_version}/man8/ld.so.8
+for f in 1 2 4 5 6 7 8 ; do
+ mv -i man-pages-es-extra-%{es_extra_version}/man${f}/* src/es/man${f}
+done
+
+# it: merge per-package trees
+%{__mv} src/it/man-pages/man? src/it
+for f in 1 4 5 8 9 ; do
+ mv -i src/it/*/man${f}/* src/it/man${f}
+done
+
+# ja: merge per-package trees
+%{__mv} src/ja/manual/LDP_man-pages/man* src/ja
+# duplicates of LDP man pages
+%{__rm} -r src/ja/manual/{gnumaniak,ld.so,modutils/man2,glibc-linuxthreads/man3}
+%{__rm} src/ja/manual/bind/{man5/resolver.5,man7/{hostname,mailaddr}.7}
+%{__rm} src/ja/manual/netkit/{man3/{daemon,err,login}.3,man5/ftpusers.5}
+# shadow manuals already in shadow package
+%{__rm} -r src/ja/manual/shadow
+# PLD uses:
+# coreutils not {file,sh-,text}utils
+%{__rm} -r src/ja/manual/GNU_{fileutils,sh-utils,textutils}
+# dhcp 3 not dhcp2
+%{__rm} -r src/ja/manual/dhcp2
+# kmod (ex-module-init-tools) not modutils
+%{__rm} -r src/ja/manual/modutils
+# nfs-utils not nfs-server
+%{__rm} -r src/ja/manual/nfs-server
+# ypbind-mt not ypbind
+%{__rm} -r src/ja/manual/ypbind
+# man-db not man
+%{__rm} src/ja/manual/man/man1/{apropos,man,whatis}.1
+# hostname(1) from hostname (ex-net-tools)
+%{__rm} src/ja/manual/GNU_coreutils/man1/hostname.1
+# kill(1) from util-linux
+%{__rm} src/ja/manual/GNU_coreutils/man1/kill.1
+# uptime(1) from procps
+%{__rm} src/ja/manual/GNU_coreutils/man1/uptime.1
+# last(1),lastb(1),mesg(1) from util-linux
+%{__rm} src/ja/manual/SysVinit/man1/{last,lastb,mesg}.1
+# blkid(8) from util-linux
+%{__rm} src/ja/manual/e2fsprogs/man8/blkid.8
+# lpq(1),lpr(1),lprm(1),lpc(8) from cups (or LPRng)
+%{__rm} src/ja/manual/lpr-linux/{man1/{lpq,lpr,lprm}.1,man8/lpc.8}
+# timeout(1) from coreutils
+%{__rm} src/ja/manual/netatalk/man1/timeout.1
+# write(1) from util-linux
+%{__rm} src/ja/manual/netkit/man1/write.1
+# rquotad(8) from quota
+%{__rm} src/ja/manual/nfs-utils/man8/rquotad.8
+# kill(1) from util-linux
+%{__rm} src/ja/manual/procps/man1/kill.1
+# wall(1) from SysVinit
+%{__rm} src/ja/manual/util-linux/man1/wall.1
+# resolve conflicts of alternatives
+%{__mv} src/ja/manual/netkit/man8/ftpd.8{,netkit}
+# merge the rest
+for f in 1 3 4 5 6 7 8 ; do
+ mv -i src/ja/manual/*/man${f}/* src/ja/man${f}
+done
+
+# zh_CN: cleanup must be done after build (in build stage)
+
+# individual man pages fixes
+
+# unify name
+%{__mv} src/de/man7/{iso_8859_1,iso_8859-1}.7
+%{__mv} src/es/man4/magic.4 src/es/man5/magic.5
+%{__mv} src/es/man8/sync.8 src/es/man1/sync.1
+%{__mv} src/hu/man1/gpm.1 src/hu/man8/gpm.8
+# man1/sync.1 already exists
+%{__rm} src/hu/man8/sync.8
+%undos src/it/man7/{iso-8859-2,iso_8859_2}.7
+%{__mv} src/ja/man4/magic.4 src/ja/man5/magic.5
+%{__mv} src/ja/man8/nslookup.8 src/ja/man1/nslookup.1
+%{__mv} src/ko/man8/sync.8 src/ko/man1/sync.1
+# filename typo?
+%{__mv} src/pl/man5/{at_acces,at_access}.5
+# man1/sync.1 already exists
+%{__rm} src/pl/man8/sync.8
+%{__mv} src/pt_BR/man8/sync.8 src/pt_BR/man1/sync.1
+%{__mv} src/ru/man8/sync.8 src/ru/man1/sync.1
+# zh: handler later (after build)
+
+%patch1 -p1 -d src/C
+%patch5 -p1 -d src
+
+# patching creates backups
+find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -rf
+
+# merge our "extra" tarball
+
+# apply man-pages-extra, preventing overwriting of already existing man pages
+for d in man-pages-extra/C/man* ; do
+ mv -i $d/*.* src/C/${d#man-pages-extra/C/}
+done
+# note: cs and zh_CN are omitted here and processed in separate special pass
+for d in man-pages-extra/{de,es,fi,fr,hu,id,it,ja,ko,nl,pl,pt_BR,ru}/man* ; do
+ mv -i $d/*.* src/${d#man-pages-extra/}
+done
+for d in man-pages-extra/zh_CN/man* ; do
+ mv -i $d/*.* src/zh/src/${d#man-pages-extra/zh_CN/}
+done
+
+ln -sf pt_BR src/pt
+
+# remove man pages existing in other packages
+
+# time
+%{__rm} src/C/man1/time.1
+# ftp servers
+%{__rm} src/C/man5/ftpusers.5