# # spec file for package man # # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %bcond_with wrapman Name: man BuildRequires: automake BuildRequires: flex BuildRequires: gdbm-devel BuildRequires: gettext-runtime BuildRequires: gettext-tools BuildRequires: groff BuildRequires: less BuildRequires: libbz2-devel BuildRequires: libpipeline-devel BuildRequires: libzio-devel BuildRequires: pkg-config BuildRequires: po4a BuildRequires: xz-devel BuildRequires: zlib-devel Version: 2.7.6 Release: 0 Summary: A Program for Displaying man Pages License: GPL-2.0+ Group: System/Base Url: https://savannah.nongnu.org/projects/man-db PreReq: coreutils fillup Provides: man_db Requires: cron Requires: glibc-locale %if 0%{suse_version} > 1300 Recommends: groff-full %endif Requires: groff >= 1.18 Requires: less Source: http://download.savannah.gnu.org/releases/man-db/man-db-%{version}.tar.xz Source1: sysconfig.cron-man Source2: cron.daily.do_mandb Source3: cron.daily.clean_catman Source4: mancoding Source5: wrapper.c Source6: man-rpmlintrc Patch0: man-db-2.7.6.dif Patch1: man-db-2.6.3-man0.dif Patch2: man-db-2.3.19deb4.0-groff.dif Patch4: man-db-2.6.3-section.dif Patch5: man-db-2.7.1-security4.dif Patch6: man-db-2.7.1-firefox.dif Patch7: man-db-2.6.3-chinese.dif Patch9: man-db-2.7.1-zio.dif Patch10: man-db-2.6.3-listall.dif # PATCH-FIX-SUSE Fixes the documentation for bnc#786679 Patch11: man-MAN_POSIXLY_CORRECT-man1.dif # PATCH-FIX-SUSE Fixes build-compare bnc#971922 Patch12: reproducible.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _sysconfdir /etc %global _has_tmpfiled %(rpm -q -f /usr/lib/tmpfiles.d | grep -c filesystem) %description A program for displaying man pages on the screen or sending them to a printer (using groff). Authors: -------- G. Wilford Fabrizio Polacco Colin Watson %prep %setup -n man-db-%{version} %patch2 -p0 -b .groff %patch4 -p0 -b .sect %patch5 -p0 -b .secu4 %patch6 -p0 -b .firefox %patch7 -p0 -b .chinese %patch9 -p0 -b .zio %patch10 -p0 -b .listall %patch11 -p0 -b .p11 %patch12 -p1 -b .p12 %patch0 -p0 -b .0 %build gettextize --force --copy --no-changelog SEC=(0 1 n l 8 3 2 5 4 9 6 7 1x 3x 4x 5x 6x 8x 1bind 3bind 5bind 7bind 8bind 1cn 8cn 1m 1mh 5mh 8mh 1netpbm 3netpbm 5netpbm 0p 1p 3p 3posix 1pgsql 3pgsql 5pgsql 3C++ 8C++ 3blt 3curses 3ncurses 3form 3menu 3db 3gdbm 3f 3gk 3paper 3mm 5mm 3perl 3pm 3pq 3qt 3pub 3readline 1ssl 3ssl 5ssl 7ssl 3t 3tk 3tcl 3tclx 3tix 7l 7nr 8c Cg g s m) SEC="${SEC[@]}" rm -f configure %global optflags %{optflags} -funroll-loops -pipe -Wall if grep -q _DEFAULT_SOURCE /usr/include/features.h ; then CFLAGS="%{optflags} -D_DEFAULT_SOURCE" else CFLAGS="%{optflags} -D_GNU_SOURCE -D_SVID_SOURCE" fi LDFLAGS= LIBS= LINGUAS= for d in $(cat man/LINGUAS*) ; do test -d %{_datadir}/locale/$d || continue LINGUAS="${LINGUAS:+$LINGUAS }$d" done export CFLAGS LDFLAGS LIBS LINGUAS aclocal -I ${PWD} -I ${PWD}/m4 -I ${PWD}/gnulib/m4 autoconf -B ${PWD} -B ${PWD}/m4 -B ${PWD}/gnulib/m4 automake --add-missing find -name 'Makefile.*' | xargs \ sed -ri -e '/^pkglibdir/{ s@^(pkglibdir[[:blank:]]+=[[:blank:]]+\$\(libdir\)).*@\1@p }' %configure \ --enable-dups \ --enable-cache-owner=man \ --with-device=utf8 \ --with-zio \ --with-gnu-ld \ --disable-rpath \ --disable-automatic-create \ --enable-automatic-update \ --disable-cats \ --enable-threads=posix \ --enable-mb-groff \ --with-db=gdbm \ --enable-nls \ --with-config-file=%{_sysconfdir}/manpath.config \ --without-included-gettext \ --with-sections="${SEC}" make %{?_smp_mflags} nls=all for man in $(find man/ -type f -a -name '*.[0-9]'); do pp="$(head -n 1 $man)" case "$pp" in \'\\\"*\ -\*-\ coding:\ *\ -\*-) continue ;; \'\\\"*) sed -ri "1{ s/('\\\\\".*)/\\1 -\*- coding: UTF-8 -\*-/ }" $man ;; *) sed -ri "1 i\ '\\\\\" -\*- coding: UTF-8 -\*-\ " $man esac done patch -p0 < %{P:1} gcc $CFLAGS -I gnulib/lib/ -I include/ --include config.h --include configmake.h \ -o wrapper %{S:5} -L gnulib/lib/.libs/ -lgnu %check if ! make check; then cat src/tests/test-suite.log exit 1 fi %install %if %suse_version <= 1030 export MKDIR_P="mkdir -p" %endif rm -rf %{buildroot}%{_localstatedir}/cache/man mkdir -p %{buildroot}%{_datadir}/doc/packages/man mkdir -p %{buildroot}%{_libexecdir}/man-db mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}/etc make nls=all install DESTDIR=%{buildroot} rm -vf %{buildroot}%{_libdir}/*.la mv %{buildroot}%{_datadir}/doc/man-db/man-db-manual.* \ %{buildroot}%{_datadir}/doc/packages/man/ # wrapper which drops roots privileges if root executes man or mandb if test -x %{buildroot}%{_bindir}/mandb ; then mv %{buildroot}%{_bindir}/mandb %{buildroot}%{_libexecdir}/man-db/ install wrapper %{buildroot}%{_bindir}/mandb fi %if %{with wrapman} if test -x %{buildroot}%{_bindir}/man ; then mv %{buildroot}%{_bindir}/man %{buildroot}%{_libexecdir}/man-db/ ln -sf mandb %{buildroot}%{_bindir}/man fi %endif mkdir -p %{buildroot}%{_mandir} pushd %{buildroot}%{_mandir}/ rm -rf *.ascii/ for d in *.UTF-8 ; do find -name '*.[1-9nlop]' | xargs gzip -9f done for d in `find -name manpath.5.gz -printf '%%h '` ; do ln -sf manpath.5.gz $d/manpath.config.5.gz done # remove japanese pages, as they are in man-pages-ja # (need to cross verify at some point that they are up to date there) rm -rf ja popd install -m 644 src/man_db.conf %{buildroot}%{_sysconfdir}/manpath.config sh ./mk_catdirs %{buildroot} mkdir -p %{buildroot}%{_datadir}/groff/site-tmac install -m 0644 groff/tmac.andb %{buildroot}%{_datadir}/groff/site-tmac/ install -m 0644 groff/tmac.andocdb %{buildroot}%{_datadir}/groff/site-tmac/ mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates mkdir -p %{buildroot}/etc/cron.daily install -m 0644 %{SOURCE1} %{buildroot}%{_localstatedir}/adm/fillup-templates install -m 0744 %{SOURCE2} %{buildroot}/etc/cron.daily/suse-do_mandb install -m 0744 %{SOURCE3} %{buildroot}/etc/cron.daily/suse-clean_catman %find_lang man-db --all-name --with-man %pre test -d var/catman/ && rm -rf var/catman/ || true %post %{?tmpfiles_create:%tmpfiles_create %{_libexecdir}/tmpfiles.d/man-db.conf} %{fillup_only -an cron} /sbin/ldconfig %postun -p /sbin/ldconfig %posttrans mandb --quiet --create %files -f man-db.lang %defattr(-,root,root) %doc docs/COPYING %doc ChangeLog %doc %{_datadir}/doc/packages/man/man-db-manual.* %config /etc/manpath.config %attr(0744,root,root) /etc/cron.daily/suse-clean_catman %attr(0744,root,root) /etc/cron.daily/suse-do_mandb %{_bindir}/apropos %{_bindir}/catman %{_bindir}/lexgrog %{_bindir}/man %{_bindir}/mandb %{_bindir}/manpath %{_bindir}/whatis %dir %attr(0755,root,root) %{_libexecdir}/man-db %if %{with wrapman} %attr(0755,root,root) %{_libexecdir}/man-db/man %endif %attr(0755,root,root) %{_libexecdir}/man-db/mandb %attr(0755,man,man) %{_libexecdir}/man-db/manconv %attr(0755,man,man) %{_libexecdir}/man-db/globbing %{_sbindir}/accessdb %{_libdir}/libman*.so %{_libexecdir}/man-db/zsoelim %if 0%{?_has_tmpfiled} == 0 %dir %{_libexecdir}/tmpfiles.d %endif %{_libexecdir}/tmpfiles.d/man-db.conf %dir %{_datadir}/groff/site-tmac %{_datadir}/groff/site-tmac/tmac.andb %{_datadir}/groff/site-tmac/tmac.andocdb %doc %{_mandir}/man1/*.1.gz %doc %{_mandir}/man5/*.5.gz %doc %{_mandir}/man8/*.8.gz %dir %{_mandir}/id %{_localstatedir}/adm/fillup-templates/sysconfig.cron-man %defattr(-,man,man) %ghost %{_localstatedir}/cache/man/* %changelog