Summary(tr.UTF-8): Linux Belgeleme Projesinin sistem kılavuz sayfaları
Summary(uk.UTF-8): Сторінки мануалу (man) з Linux Documentation Project
Name: man-pages
-Version: 3.17
+Version: 5.13
Release: 1
License: distributable
Group: Documentation
-%define cs_version 0.16
-%define da_version 0.1.1
-%define de_version 0.4
+%define cs_version 0.17.20080113
+%define da_version 0.1.2
+%define de_version 0.5
%define es_version 1.55
%define es_extra_version 0.8a
%define fi_version 0.2
-%define fr_version 2.39.0
+%define fr_version 3.70-1
%define hu_version 20010119
%define id_version 20011116
-%define it_version 2.34
-%define ja_version 20070615
+%define it_version 5.06
+%define ja_version 20210815
%define ko_version 20050219
%define nl_version 0.13.3
%define pl_version 20051105
%define ro_version 0.2
#%%define ru_version 0.98
%define ru_asp_version 1.4
-%define tr_version 1.0.3
-%define zh_version 1.5
-Source0: http://www.kernel.org/pub/linux/docs/manpages/%{name}-%{version}.tar.gz
-# Source0-md5: 107b1977a9c9f75f5cc5100c997de93b
-Source1: ftp://ftp.linux.cz/pub/localization/linux/czman/%{name}-cs-%{cs_version}.tar.gz
-# Source1-md5: e8036794c1762804f2e242cc5b52001e
+%define tr_version 1.0.5
+%define zh_version 1.5.2
+%define posix_version 2017-a
+Source0: https://www.kernel.org/pub/linux/docs/man-pages/%{name}-%{version}.tar.xz
+# Source0-md5: 3ac24e8c6fae26b801cb87ceb63c0a30
+Source1: ftp://ftp.linux.cz/pub/localization/linux/czman/%{name}-cs-%{cs_version}.tar.bz2
+# Source1-md5: a3df67d98ab63a0a360cd0794ec87e0e
# there is no LDP man page here, yet - but include it in sources for completeness
-Source2: http://www.sslug.dk/locale/man-sider/manpages-da-%{da_version}.tar.gz
-# Source2-md5: d12ba0481d824c28a8b7d6b73e20d7c0
+# http://www.sslug.dk/locale/man-sider/manpages-da-%{da_version}.tar.gz (404 as of Feb 2018)
+Source2: manpages-da-%{da_version}.tar.gz
+# Source2-md5: 26cdd12ea7c62e595fc1a3a39bf53115
+# TODO: new project at https://manpages-de-team.pages.debian.net/manpages-de/, current version is 2.12
Source3: http://www.infodrom.org/projects/manpages-de/download/manpages-de-%{de_version}.tar.gz
-# Source3-md5: 6a2a1cd24b0bd61c4ab384324e707a95
+# Source3-md5: 6686b1be6da01cdbb5ea7511ddcf61a0
Source4: http://www.ditec.um.es/~piernas/manpages-es/%{name}-es-%{es_version}.tar.bz2
# Source4-md5: b71f701dcae827f2f5e4e848c66321fc
Source5: http://www.ditec.um.es/~piernas/manpages-es/%{name}-es-extra-%{es_extra_version}.tar.gz
# (despite archive filename it's 0.2 version)
Source6: man-fi-0.1.tar.bz2
# Source6-md5: bb266d3797cdf71bfbe1da190196f455
-Source7: http://manpagesfr.free.fr/download/man-pages-fr-%{fr_version}.tar.bz2
-# Source7-md5: 7e9ecdd134703e8172107124f1f3fec4
+#Source7Download: https://gitlab.com/perkamon/man-pages-fr/tags
+# TODO: use https://gitlab.com/perkamon/man-pages-fr/-/archive/%{fr_version}/man-pages-fr-%{fr_version}.tar.bz2, then make dist-fr to get tarball - but 4.16 produces very few translations
+Source7: man-pages-fr-%{fr_version}.tar.xz
+# Source7-md5: 66a6033fb2ed3641c35b1d53c0fe5deb
+# there is also: http://manpagesfr.free.fr/download/man-pages-extras-fr-0.8.1.tar.bz2
+# and: http://manpagesfr.free.fr/download/man-pages-sup-fr-20080606.tar.bz2
#Source8: http://download.uhulinux.hu/sources/man-pages-hu/man_hu_%{hu_version}.tar.gz (older)
Source8: http://ftp.debian.org/debian/pool/main/m/manpages-hu/manpages-hu_%{hu_version}.orig.tar.gz
# Source8-md5: 742b682c5237a1e370b28f363826b2d5
# there is no LDP man page here, yet, but included for completeness
# based on http://nakula.rvs.uni-bielefeld.de/made/my_project/ManPage/ (dead now)
-Source9: http://www.mif.pg.gda.pl/homepages/ankry/man-pages/man-pages-from-www-id-%{id_version}.tar.gz
+Source9: http://www.mif.pg.gda.pl/homepages/ankry/man-pages/%{name}-from-www-id-%{id_version}.tar.gz
# Source9-md5: 34a69de42ec4ae8180b947f8777a3e7a
# available also as http://
-Source10: ftp://ftp.pluto.linux.it/pub/pluto/ildp/man/%{name}-it-%{it_version}.tar.gz
-# Source10-md5: 259868d64ee589828b4cc43e8769507b
-Source11: http://www.linux.or.jp/JM/%{name}-ja-%{ja_version}.tar.gz
-# Source11-md5: d0079890039b10ef88f1e635ce59d859
+Source10: ftp://ftp.pluto.linux.it/pub/pluto/ildp/man/%{name}-it-%{it_version}.tar.xz
+# Source10-md5: 80329fc120d4ea29cd3408b7ced4f4c3
+# note: man-pages-it-extra-0.5.0.tar.gz is also covered by the above version
+#Source11Download: http://linuxjm.osdn.jp/download.html
+Source11: http://linuxjm.osdn.jp/%{name}-ja-%{ja_version}.tar.gz
+# Source11-md5: c7874d0f9515d150ae0612a42dc87379
Source12: http://download.kldp.net/man/man-pages-ko/%{ko_version}/%{name}-ko-%{ko_version}.tar.gz
# Source12-md5: e31dc6a51c02436371373dedaeeeacab
+# TODO: check 20051127 in Debian/Ubuntu?
Source13: ftp://ftp.nl.linux.org/pub/DOC-NL/manpages-nl/manpages-nl-%{nl_version}.tar.gz
# Source13-md5: b37b0216a87db7583e88ba87031a0b4a
-# currently at http://ptm.linux.pl/ (latest http://ptm.linux.pl/man-PL28-06-2007.tar.gz)
-# there is also a fork at http://ptm.berlios.de/, but seems to be stalled just after it started
-#Source14: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/PTM-snapshots/%{name}-pl-PTM-snapshot.%{pl_version}.tar.bz2
+# TODO: PTM has been overtaken by new project at http://manpages-pl.sourceforge.net/
+# http://downloads.sourceforge.net/manpages-pl/manpages-pl-%{pl_version}.tar.bz2 with pl_version=0.7
Source14: %{name}-pl-PTM-snapshot.%{pl_version}.tar.bz2
# Source14-md5: b9b5751fcde4c36022850d0e5a4757d3
-Source15: ftp://ftp.win.tue.nl/pub/home/aeb/linux-local/manpages/tr/%{name}-pt_BR-%{pt_version}.tgz
+Source15: http://www.win.tue.nl/~aeb/ftpdocs/linux-local/manpages/tr/%{name}-pt_BR-%{pt_version}.tgz
# Source15-md5: 3f8db6dd6a7884b595e70f624ac93735
# no LDP man pages yet
Source16: http://www.rolix.org/man/arhiva/man-pages-ro-%{ro_version}.tar.gz
# Source16-md5: ac5b2c970a31cb721e068ff80e5bd466
-#Source17: http://www.linuxshare.ru/projects/trans/manpages-ru-%{ru_version}.tar.bz2
+# TODO: new project at: https://sourceforge.net/projects/man-pages-ru/files/, latest version man-pages-ru_4.17-2385-2385-20181124.tar.bz2
+#Source17: http://linuxshare.ru/projects/trans/manpages-ru-%{ru_version}.tar.bz2
# ASP-linux have more up-to-date manpages (but 0.98 contains some updated pages)
Source17: http://www.mif.pg.gda.pl/homepages/ankry/man-pages/manpages-ru-asp-%{ru_asp_version}.tar.bz2
# Source17-md5: fffb27648417c8dd551e2a4403eefc64
-Source18: http://dl.sourceforge.net/belgeler/man-pages-tr-%{tr_version}.tar.gz
-# Source18-md5: 903c7b22a87961842dec8f4f1adeeaf3
+Source18: http://downloads.sourceforge.net/belgeler/man-pages-tr-%{tr_version}.tar.gz
+# Source18-md5: 8f322a60c80e31c34ef8979edaf68aae
Source19: http://www.linux.org.ua/twiki/pub/Projects/ManUk/man-pages-uk_UA.alfa.tar.gz
# Source19-md5: 89576c5b51bb83c8bfa8bda794b96e21
-#Source20: http://cmpp.linuxforum.net/download/man-pages-zh_CN-%{zh_version}.tar.gz
-Source20: http://download.sf.linuxforum.net/cmpp/man-pages-zh_CN-%{zh_version}.tar.gz
-# Source20-md5: edfe517621579520cf7451088ab126ea
-Source30: http://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix/man-pages-posix-2003-a.tar.bz2
-# Source30-md5: 7c78aff03c0a6767ba483d34f19e4b09
-Source50: %{name}-extra.tar.bz2
-# NoSource50-md5: 15d763c5221088dcb15ba8ae95f6d239
+#Source20Download: https://github.com/lidaobing/manpages-zh/releases
+# also newer git snapshot available at http://www.win.tue.nl/~aeb/ftpdocs/linux-local/manpages/tr/man-pages-zh-20141004.zip
+Source20: https://github.com/lidaobing/manpages-zh/archive/v%{zh_version}/manpages-zh-%{zh_version}.tar.gz
+# Source20-md5: 1bbdc4f32272df0b95146518b27bf4be
+Source30: https://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix/man-pages-posix-%{posix_version}.tar.xz
+# Source30-md5: 16972095f1ec0820d51b2390e055c59d
+Source50: %{name}-links.list
Source100: %{name}-tars.list
-Patch0: %{name}-localtime.patch
-Patch1: %{name}-zh_fixes.patch
-Patch2: %{name}-misc.patch
-Patch3: %{name}-extra.patch
-URL: http://www.kernel.org/doc/man-pages/
+Patch0: %{name}-zh_fixes.patch
+Patch1: %{name}-misc.patch
+Patch2: %{name}-extra.patch
+Patch3: %{name}-tr-bash.patch
+Patch4: %{name}-tr-so-links.patch
+Patch5: %{name}-misc-localized.patch
+Patch6: %{name}-cs-bash.patch
+Patch10: %{name}-extra-files.patch
+URL: https://www.kernel.org/doc/man-pages/
+BuildRequires: autoconf >= 2.61
+BuildRequires: automake
+BuildRequires: iconv
+BuildRequires: rpmbuild(macros) >= 1.566
BuildRequires: sed >= 4.0
-AutoReqProv: no
+BuildRequires: tar >= 1:1.22
+# for man-pages-zh
+BuildRequires: zh-autoconvert
+BuildRequires: xz
+# for man-pages-tr
+BuildRequires: zlib-devel
Obsoletes: man-pages-cs
Obsoletes: man-pages-de
Obsoletes: man-pages-es
Obsoletes: man-pages-fi
Obsoletes: man-pages-fr
Obsoletes: man-pages-hu
-Obsoletes: manpages-hu
Obsoletes: man-pages-it
Obsoletes: man-pages-ja
Obsoletes: man-pages-ko
Obsoletes: man-pages-ru-asp
Obsoletes: man-pages-uk
Obsoletes: man-pages-zh
+Obsoletes: manpages-hu
Conflicts: attr-devel < 2.2.0-2
Conflicts: kbd < 1.12-9
+Conflicts: keyutils < 1.5.10
Conflicts: libcap < 1:1.10-5
+Conflicts: lirc < 0.9.3a-2
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+AutoReqProv: no
+
+# languages of packaged man pages
+# note: pt_BR is omitted here, these manuals are packaged as pt
+%define man_langs cs da de es fi fr hu id it ja ko nl pl pt ru tr uk zh_CN zh_TW
%description
A large collection of man pages covering programming APIs, file
Group: Documentation
%description posix
-Part of POSIX 1003.1-2003 in man pages format.
+Part of POSIX 1-2017 in man pages format.
%description posix -l pl.UTF-8
-Fragmenty POSIX 1003.1-2003 w postaci stron podręcznika systemowego.
+Fragmenty POSIX 1-2017 w postaci stron podręcznika systemowego.
%prep
-%setup -q -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a13 -a14 -a15 -a16 -a17 -a18 -a19 -a20 -a30
-%patch0 -p1
-%patch1 -p0
-
-mv man-pages-posix-*/man*p .
+%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-%(echo %{posix_version} | sed -e s/-a//)/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}
-mkdir ko
-tar xzf %{SOURCE12} -C ko
+# unify trees for easier processing (where possible)
-find man-pages-tr-%{tr_version} -name '*.gz' | xargs gzip -d
+# da: add man1 subdir
+install -d src/da/man1
+%{__mv} src/da/*.1 src/da/man1
-# unify trees for easier processing
-mv -f man-pages-%{pt_version}-pt_BR pt_BR
-mv -f man-pages-cs-%{cs_version} cs
-# replace symlinks by .so pointers
-for l in `find cs -type l` ; do
- t=`readlink "$l"`
- rm -f "$l"
- echo ".so $t" > "$l"
-done
-mv -f manpages-da-%{da_version} da
-install -d da/man1
-mv -f da/*.1 da/man1
-mv -f manpages-de-%{de_version} de
-mv -f man-pages-es-%{es_version} es
-# already in main es
-rm -f man-pages-es-extra-%{es_extra_version}/man3/dl*.3
-rm -f man-pages-es-extra-%{es_extra_version}/man5/{acct,host.conf,resolv.conf,resolver}.5
-rm -f man-pages-es-extra-%{es_extra_version}/man8/ld.so.8
+# 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}/* es/man${f}
+ 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
-mv -f manpages-fi fi
-mv -f man-pages-fr-%{fr_version} fr
-mv -f manpages-hu-%{hu_version}.orig/usr/share/man/hu hu
-mv -f man-pages-it-%{it_version} it
-mv -f man-pages-ja-%{ja_version}/manual/LDP_man-pages ja
+
+# ja: merge per-package trees
+%{__mv} src/ja/manual/LDP_man-pages/man* src/ja
# duplicates of LDP man pages
-rm -rf man-pages-ja-%{ja_version}/manual/{gnumaniak,ld.so,modutils/man2,glibc-linuxthreads/man3,netkit/{man3/{daemon,err,login}.3,man5/ftpusers.5},bind/{man5/resolver.5,man7/mailaddr.7},util-linux/man1/tailf.1}
+%{__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 -rf man-pages-ja-%{ja_version}/manual/shadow
-# we have man not man-db
-rm -rf man-pages-ja-%{ja_version}/manual/man-db
+%{__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 -rf man-pages-ja-%{ja_version}/manual/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 -rf man-pages-ja-%{ja_version}/manual/nfs-server
+%{__rm} -r src/ja/manual/nfs-server
# ypbind-mt not ypbind
-rm -rf man-pages-ja-%{ja_version}/manual/ypbind
-# we use: net-tools/hostname, util-linux/{kill,write}, SysVinit/{last,mesg,wall,halt,reboot,shutdown}, textutils/od, quota/rquotad
-rm -f man-pages-ja-%{ja_version}/manual/{GNU_sh-utils/man1/hostname.1,procps/man1/kill.1,util-linux/man1/{last,mesg,od,wall}.1,netkit/man1/write.1,nfs-utils/man8/rquotad.8,util-linux/man8/{halt,reboot,shutdown}.8}
-# following modutils changes
-for f in man-pages-ja-%{ja_version}/manual/modutils/man8/{depmod,insmod,lsmod,modinfo,modprobe,rmmod} ; do
- mv -f ${f}.8 ${f}.modutils.8
-done
-# avoid filename conflict
-mv -f man-pages-ja-%{ja_version}/manual/netkit/man8/ftpd.{8,8n}
+%{__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 man-pages-ja-%{ja_version}/manual/*/man${f}/* ja/man${f}
-done
-mv -f manpages-nl-%{nl_version} nl
-mv -f pl_PL pl
-mv -f man-ro ro
-mv -f manpages-ru-asp-%{ru_asp_version} ru
-mv -f man-pages-tr-%{tr_version}/tr tr
-mv -f man-pages-uk_UA.alfa uk
-mv -f man-pages-zh_CN-%{zh_version}/src zh_CN
-find zh_CN -name CVS -o -name '*.orig' -o -name '*~' | xargs rm -rf
-# would go in big5 or gb18030, but not gb2312
-rm -f zh_CN/man1/perltw.1
-# would go in gb18030, but not gb2312
-rm -f zh_CN/man8/{chat,printcap}.8
-
-# these man-pages are in UTF-8
-for f in zh_CN/man?/* ; do
- iconv -f UTF8 -t GB2312 $f > ${f}.tmp
- mv -f ${f}.tmp $f
+ mv -i src/ja/manual/*/man${f}/* src/ja/man${f}
done
-mv -f cs/man8/at.1 cs/man1
+# zh_CN: cleanup must be done after build (in build stage)
+
+# individual man pages fixes
+
# unify name
-mv -f de/man7/{iso_8859_1,iso_8859-1}.7
-mv -f es/man4/magic.4 es/man5/magic.5
-mv -f es/man8/sync.8 es/man1/sync.1
-mv -f fr/man8/sync.8 fr/man1/sync.1
-mv -f hu/man1/gpm.1 hu/man8/gpm.8
+%{__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 -f hu/man8/sync.8
-# unify name + fix infinite loop
-mv -f it/man7/{iso_8859-1,tmp}.7
-mv -f it/man7/{iso_8859_1,iso_8859-1}.7
-mv -f it/man7/{tmp,iso_8859_1}.7
-# non-existing target
-rm -f it/man7/latin.2
-mv -f ja/man4/magic.4 ja/man5/magic.5
-mv -f ja/man8/nslookup.8 ja/man1/nslookup.1
-mv -f ja/man8/sync.8 ja/man1/sync.1
-mv -f ko/man8/sync.8 ko/man1/sync.1
+%{__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 -f pl/man5/{at_acces,at_access}.5
-# man1/sync.1 already exists
-rm -f pl/man8/sync.8
-mv -f pt_BR/man8/sync.8 pt_BR/man1/sync.1
-mv -f ru/man8/sync.8 ru/man1/sync.1
+%{__mv} src/pl/man5/{at_acces,at_access}.5
# man1/sync.1 already exists
-rm -f zh_CN/man8/sync.8
+%{__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)
-%patch2 -p1
-
-bzip2 -dc %{SOURCE50} | tar xf -
-%patch3 -p0
+%patch1 -p1 -d src/C
+%patch5 -p1 -d src
# patching creates backups
find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -rf
-# cleanup
-rm -f man1/COPYING
-rm -f man*/README*
+# merge our "extra" tarball
-for n in man{1,2,3,4,5,6,7,8,0p,1p,3p}/* */man{1,2,3,4,5,6,7,8,9}/* ; do
- x=`echo $n | sed -e 's,^.*man\([^/]\)/.*,\1,'`
- if head -n 1 $n| grep "^\.so man$x/" >/dev/null 2>&1 ; then
- sed -i -e 's,\.so man./,.so ,' $n
- fi
+# 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
-ln -sf pt_BR pt
+# remove man pages existing in other packages
-# these belong to coreutils (sync is man1 BTW)
-rm -f man1/{chgrp,chmod,chown,cp,dd,df,dircolors,du,install,diff}.1
-rm -f man1/{ln,ls,mkdir,mkfifo,mknod,mv,rm,rmdir,touch,dir,vdir}.1
-rm -f man8/sync.8
# time
-rm -f man1/time.1
+%{__rm} src/C/man1/time.1
# ftp servers
-rm -f man5/ftpusers.5
+%{__rm} src/C/man5/ftpusers.5
+
+%build
+# some man-pages require build step
+
+# cs: prepare man pages and apply extra
+LANG=en_GB.UTF-8 \
+%{__make} -C src/cs latest
+%{__mv} src/cs/latest/man* src/cs
+rmdir src/cs/latest
+for d in man-pages-extra/cs/man* ; do
+ mv -i $d/*.* src/${d#man-pages-extra/}
+done
-%if %{with tars}
+# tr: make man pages from XML (note: compiles some utility)
+%{__make} -C src/tr/source
+find src/tr/tr -name '*.gz' | xargs gzip -d
+%{__mv} src/tr/tr/man* src/tr
+
+# zh: prepare zh_CN and zh_TW
+cd src/zh
+%{__aclocal}
+%{__autoconf}
+%{__automake}
+%configure
+%{__make}
+cd ../..
+for l in zh_CN zh_TW ; do
+install -d src/${l}
+for d in man{1,2,3,4,5,6,7,8,n} ; do
+ln -snf ../zh/src/${d}/${l} src/${l}/${d}
+done
+done
+# zh_*: man1/sync.1 already exists
+%{__rm} src/zh_CN/man8/sync.8
+%{__rm} src/zh_TW/man8/sync.8
+
+# per-package lists / tarballs production
package=NONE
while read line ; do
if echo $line | grep -q '^\[.\+\]$' ; then
package=`echo $line | sed -e 's/^\[//;s/\]$//;'`
- else
- if [ -f "$line" ]; then
+ elif ! echo $line | grep -q '^#' ; then
+ if [ -f "src/C/$line" ]; then
echo "$line" >> ${package}-man.list
fi
- # omit pt_BR here, package them as pt
- for l in cs da de es fi fr hu id it ja ko nl pl pt ru tr uk zh_CN ; do
- if [ -f "$l/$line" ]; then
+ for l in %{man_langs} ; do
+ if [ -f "src/$l/$line" ]; then
echo "$l/$line" >> ${package}-man.list
fi
done
fi
done < %{SOURCE100}
+%if %{with tars}
+rm -rf tarsrc tar
+install -d tarsrc tar
+cd tarsrc
+ln -snf ../src/[!C]* ../src/C/man* ../man-pages-extra/README.*-pages .
+cd ..
for l in *-man.list ; do
t=`basename $l .list`
- if [ -f README.${t}-pages ]; then
+ if [ -f tarsrc/README.${t}-pages ]; then
echo "README.${t}-pages" >> "$l"
fi
- tar cjf %{_sourcedir}/${t}-pages.tar.bz2 --files-from "$l"
- grep '^man' "$l" | xargs rm -f
+ tar chJf tar/${t}-pages.tar.xz -C tarsrc --files-from "$l"
done
-%else
-# glibc
-find man3 -type f | grep -v 'intro\.3' | xargs rm -f
-rm -f man1/ldd.1
-rm -f man1/rpcgen.1
-rm -f man5/{locale,nscd.conf,nsswitch.conf,tzfile}.5
-rm -f man7/{ascii,charsets,iso*,koi8-r,latin*,locale,unicode,utf*}.7
-rm -f man8/{ld.so,ldconfig,nscd,tzselect,zdump,zic}.8
-rm -f */man1/ldd.1 */man8/sln.8 */man1/iconv.1
-rm -f {ja,ru}/man1/rpcgen.1
%endif
-# shadow (but not pwdutils!); shadow(5) is missing in pwdutils too
-rm -f man5/passwd.5
-
-# rpcbind, formerly glibc
-rm -f man8/rpcinfo.8
-
-rm -f man1/{i,}gawk.1
-rm -f man1/{i,}gawk.1
-rm -f {it,ja,pl}/man1/{i,}gawk.1
-
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_mandir}/man{1,2,3,4,5,6,7,8,0p,1p,3p}
-for n in man{1,2,3,4,5,6,7,8,0p,1p,3p}/*; do
- install $n $RPM_BUILD_ROOT%{_mandir}/$n
+# install C man pages
+for n in src/C/man{1,2,3,4,5,6,7,8,0p,1p,3p}/*; do
+ bn=${n#src/C/}
+ install -m644 $n $RPM_BUILD_ROOT%{_mandir}/$bn
done
+# drop man pages packaged separately
+grep '^man' glibc-man.list | sed -e "s,^,$RPM_BUILD_ROOT%{_mandir}/," | xargs -r %{__rm}
+# rpcbind, formerly glibc
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpcinfo.8
+# gawk
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{gawk,igawk}.1
+# libaio
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/{aio_init,lio_listio}.3
+# shadow (but not pwdutils!); shadow(5) is missing in pwdutils too
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man5/passwd.5
-# omit pt_BR here, package them as pt
-for l in cs da de es fi fr hu id it ja ko nl pl pt ru tr uk zh_CN ; do
+# install localized man pages, only for installed C man pages
+for l in %{man_langs} ; do
install -d $RPM_BUILD_ROOT%{_mandir}/$l/man{1,2,3,4,5,6,7,8}
- for n in man{1,2,3,4,5,6,7,8}/*; do
- if [ -f $l/$n ]; then
- install $l/$n $RPM_BUILD_ROOT%{_mandir}/$l/$n
+ for n in $RPM_BUILD_ROOT%{_mandir}/man{1,2,3,4,5,6,7,8}/*; do
+ bn=$(basename $(dirname $n))/$(basename $n)
+ if [ -f src/$l/$bn ]; then
+ install -m644 src/$l/$bn $RPM_BUILD_ROOT%{_mandir}/$l/$bn
fi
done
done
+# files with just .so links pointing to non-existing man pages
+# modules.2
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/de/man2/{create_module,delete_module,get_kernel_syms,init_module}.2
+# obsolete.2
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/{cs,de,es,ko,nl,pl,pt,ru}/man2/{oldfstat,oldlstat,oldolduname,oldstat,olduname}.2
+# undocumented.7 (exists in es, but not installed because it's not in C manuals)
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/es/man5/networks.5
+# clock_getres.3 (packaged in glibc, but these links exist only in fr manuals, not C)
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/fr/man2/{clock_getres,clock_gettime,clock_settime}.2
+# undocumented.7
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/ru/man5/networks.5
+# statfs.2
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/pl/man2/fstatfs.2
+
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%{_mandir}/man?/*
+%{_mandir}/man1/*.1*
+%{_mandir}/man2/*.2*
+%{_mandir}/man3/*.3*
+%{_mandir}/man4/*.4*
+%{_mandir}/man5/*.5*
+%{_mandir}/man6/*.6*
+%{_mandir}/man7/*.7*
+%{_mandir}/man8/*.8*
%lang(cs) %{_mandir}/cs/man*/*
%lang(de) %{_mandir}/de/man*/*
%lang(es) %{_mandir}/es/man*/*
%lang(nl) %{_mandir}/nl/man*/*
%lang(pl) %{_mandir}/pl/man*/*
%lang(pt) %{_mandir}/pt/man*/*
+# packaged as plain pt for now
#%lang(pt_BR) %{_mandir}/pt_BR/man*/*
%lang(ru) %{_mandir}/ru/man*/*
%lang(tr) %{_mandir}/tr/man*/*
%lang(uk) %{_mandir}/uk/man*/*
%lang(zh_CN) %{_mandir}/zh_CN/man*/*
+%lang(zh_TW) %{_mandir}/zh_TW/man*/*
%files posix
%defattr(644,root,root,755)
-%dir %{_mandir}/man?p
-%{_mandir}/man?p/*
+%dir %{_mandir}/man0p
+%{_mandir}/man0p/*.0p*
+%dir %{_mandir}/man1p
+%{_mandir}/man1p/*.1p*
+%dir %{_mandir}/man3p
+%{_mandir}/man3p/*.3p*