%global cache /var/cache/man

Name:            man-db
Version:         2.8.7
Release:         5
Summary:         Online database for using man pages
License:         GPLv2+ and GPLv3+
URL:             http://www.nongnu.org/man-db/
Source0:         http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.xz
Source1:         man-db.crondaily
Source2:         man-db.sysconfig
Source3:         man-db-cache-update.service

BuildRequires:   gcc systemd gdbm-devel gettext groff less libpipeline-devel zlib-devel
BuildRequires:   po4a perl-interpreter perl-version make
Requires:        coreutils grep groff gzip less crontabs systemd

Provides:        man = %{version} man-pages-reader = %{version} bundled(gnulib) = 20140202
Obsoletes:       man < 2.0
Provides:        man-db-cron
Obsoletes:       man-db-cron

%description
man-db is an implementation of the standard Unix documentation system accessed using the man command.
It uses a Berkeley DB database in place of the traditional flat-text whatis databases.

%prep
%autosetup -n %{name}-%{version}

%build
%configure \
    --with-sections="1 1p 8 2 3 3p 4 5 6 7 9 0p n l p o 1x 2x 3x 4x 5x 6x 7x 8x" \
    --disable-setuid --disable-cache-owner --with-browser=elinks --with-lzip=lzip
%make_build

%check
make check

%install
%make_install

# move the documentation to the relevant place
mv %{buildroot}%{_datadir}/doc/man-db/* ./

# install cache directory
install -d -m 0755 %{buildroot}/var/cache/man

# install cron script for man-db creation/update
mkdir -p %{buildroot}%{_sysconfdir}/cron.daily
install -D -p -m 0755 %{SOURCE1} %{buildroot}%{_sysconfdir}/cron.daily/man-db.cron

# config for cron script
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/man-db

# config for tmpfiles.d
install -D -p -m 0644 init/systemd/man-db.conf %{buildroot}/usr/lib/tmpfiles.d/.

# man-db-cache-update.service
install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/man-db-cache-update.service

%find_lang %{name}
%find_lang %{name}-gnulib

%pre

%preun

%post
# clear the old cache
%{__rm} -rf %{cache}/* || :

# update cache
%transfiletriggerin -- %{_mandir}
if [ -x /usr/bin/systemd-run -a -x /usr/bin/systemctl ]; then
    /usr/bin/systemd-run /usr/bin/systemctl start man-db-cache-update >/dev/null 2>&1 || :
fi

# update cache
%transfiletriggerpostun -- %{_mandir}
if [ -x /usr/bin/systemd-run -a -x /usr/bin/systemctl ]; then
    /usr/bin/systemd-run /usr/bin/systemctl start man-db-cache-update >/dev/null 2>&1 || :
fi

%postun

%files -f %{name}.lang -f %{name}-gnulib.lang
%{!?_licensedir:%global license %%doc}
%license docs/COPYING
%doc README man-db-manual.txt man-db-manual.ps ChangeLog NEWS
%config(noreplace) %{_sysconfdir}/man_db.conf
%config(noreplace) %{_sysconfdir}/sysconfig/man-db
%config(noreplace) /usr/lib/tmpfiles.d/man-db.conf
%config(noreplace) %{_sysconfdir}/cron.daily/man-db.cron
%{_unitdir}/man-db-cache-update.service
%{_sbindir}/accessdb
%{_bindir}/man
%{_bindir}/whatis
%{_bindir}/apropos
%{_bindir}/manpath
%{_bindir}/lexgrog
%{_bindir}/catman
%{_bindir}/mandb
%dir %{_libdir}/man-db
%{_libdir}/man-db/*.so
%dir %{_libexecdir}/man-db
%{_libexecdir}/man-db/globbing
%{_libexecdir}/man-db/manconv
%{_libexecdir}/man-db/zsoelim
/usr/lib/systemd/system/man-db.service
/usr/lib/systemd/system/man-db.timer
%verify(not mtime) %dir %{cache}
%lang(da)       %{_datadir}/man/da/man*/*
%lang(de)       %{_datadir}/man/de/man*/*
%lang(es)       %{_datadir}/man/es/man*/*
%lang(fr)       %{_datadir}/man/fr/man*/*
%lang(id)       %{_datadir}/man/id/man*/*
%lang(it)       %{_datadir}/man/it/man*/*
%lang(ja)       %{_datadir}/man/ja/man*/*
%lang(nl)       %{_datadir}/man/nl/man*/*
%lang(pl)       %{_datadir}/man/pl/man*/*
%lang(pt_BR)    %{_datadir}/man/pt_BR/man*/*
%lang(ru)       %{_datadir}/man/ru/man*/*
%lang(sr)       %{_datadir}/man/sr/man*/*
%lang(sv)       %{_datadir}/man/sv/man*/*
%lang(tr)       %{_datadir}/man/tr/man*/*
%lang(zh_CN)    %{_datadir}/man/zh_CN/man*/*
%{_mandir}/man1/apropos.1*
%{_mandir}/man1/lexgrog.1*
%{_mandir}/man1/man.1*
%{_mandir}/man1/manconv.1*
%{_mandir}/man1/manpath.1*
%{_mandir}/man1/whatis.1*
%{_mandir}/man5/manpath.5*
%{_mandir}/man8/accessdb.8*
%{_mandir}/man8/catman.8*
%{_mandir}/man8/mandb.8*
%{_mandir}/pt/man1/*
%{_mandir}/pt/man5/*
%{_mandir}/pt/man8/*
%exclude %{_datadir}/man/man1/zsoelim.1.gz
%exclude %{_libdir}/man-db/*.la

%changelog
* Mon Feb 17 2020 chengquan <chengquan3@huawei.com> - 2.8.7-5
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:Add necessary BuildRequire

* Mon Dec 16 2019 chengquan <chengquan3@huawei.com> - 2.8.7-4
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:remove help package into main package

* Tue Sep 24 2019 chengquan <chengquan3@huawei.com> - 2.8.7-3
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:revise requires of groff

* Fri Sep 20 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.8.7-2
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:fix error in POSTIN scriptlet

* Fri Sep 20 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.8.7-1
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:update software

* Thu Sep 19 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.8.4-3
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:add global marco

* Tue Sep 3 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.8.4-2
- Package init
