mandoc/mandoc.spec
2024-04-15 15:01:51 +08:00

146 lines
4.3 KiB
RPMSpec

Name: mandoc
Version: 1.14.6
Release: 4
Summary: A suite of tools for compiling mdoc and man
License: ISC
URL: https://mandoc.bsd.lv/
Source0: https://mandoc.bsd.lv/snapshots/mandoc-%{version}.tar.gz
Patch0: 0001-add-compile-option.patch
BuildRequires: gcc
BuildRequires: make
BuildRequires: clang
BuildRequires: zlib-devel
# requirements for %%check
BuildRequires: perl-interpreter
BuildRequires: perl(IPC::Open3)
# The shared library package has been removed per discussion with the
# upstream maintainer. If using the library, the static library is
# preferred because the API is not stable.
Provides: libmandoc = %{version}-%{release}
Obsoletes: libmandoc <= 1.14.5-10
Conflicts: groff
Conflicts: groff-full
Conflicts: makewhat
Conflicts: man
%description
mandoc is a suite of tools compiling mdoc, the roff macro language of choice
for BSD manual pages, and man, the predominant historical language for UNIX
manuals. It is small, ISO C, ISC-licensed, and quite fast. The main component
of the toolset is the mandoc utility program, based on the libmandoc validating
compiler, to format output for UTF-8 and ASCII UNIX terminals, HTML 5,
PostScript, and PDF.
%package -n libmandoc-devel
Summary: Development libraries and headers for libmandoc
%description -n libmandoc-devel
The mandoc library parses a UNIX manual into an abstract syntax tree (AST).
UNIX manuals are composed of mdoc(7) or man(7), and may be mixed with roff(7),
tbl(7), and eqn(7) invocations.
%prep
%autosetup -p1
%build
# NB: not an autoconf script
# settings are read in through configure.local
echo 'PREFIX=%{_prefix}' > configure.local
echo 'BINDIR=%{_bindir}' >> configure.local
echo 'SBINDIR=%{_sbindir}' >> configure.local
echo 'MANDIR=%{_mandir}' >> configure.local
echo 'INCLUDEDIR=%{_includedir}' >> configure.local
echo 'LIBDIR=%{_libdir}' >> configure.local
# with default settings rpmlint complains about cross-directory hardlinks
echo 'LN="ln -sf"' >> configure.local
echo 'MANM_MANCONF=mandoc.conf' >> configure.local
# override the install permissions so that owner-write bits are set,
# so rpmbuild can do whatever modifications it does post-%%install
echo 'INSTALL_PROGRAM="${INSTALL} -m 0755"' >> configure.local
echo 'INSTALL_LIB="${INSTALL} -m 0755"' >> configure.local
echo 'INSTALL_MAN="${INSTALL} -m 0644"' >> configure.local
echo 'INSTALL_DATA="${INSTALL} -m 0644"' >> configure.local
echo 'INSTALL_LIBMANDOC=1' >> configure.local
%ifarch riscv64
echo 'CFLAGS="%{optflags} -fPIC -Werror=implicit-function-declaration"' >> configure.local
%else
echo 'CFLAGS="%{optflags} -fPIC"' >> configure.local
%endif
export CC=clang
./configure
%make_build
%install
%make_install
# Ensure headers do not have the execute bit set
chmod -x %{buildroot}%{_includedir}/*.h
%check
env LD_LIBRARY_PATH="$PWD" %make_build regress
%files
%license LICENSE
%{_bindir}/demandoc
%{_bindir}/mandoc
%{_bindir}/apropos
%{_bindir}/man
%{_bindir}/soelim
%{_bindir}/whatis
%{_sbindir}/makewhatis
%{_mandir}/man1/demandoc.1.gz
%{_mandir}/man1/mandoc.1.gz
%{_mandir}/man1/apropos.1.gz
%{_mandir}/man1/man.1.gz
%{_mandir}/man1/soelim.1.gz
%{_mandir}/man1/whatis.1.gz
%{_mandir}/man5/mandoc.conf.5.gz
%{_mandir}/man5/mandoc.db.5.gz
%{_mandir}/man7/eqn.7.gz
%{_mandir}/man7/mandoc_char.7.gz
%{_mandir}/man7/man.7.gz
%{_mandir}/man7/mdoc.7.gz
%{_mandir}/man7/roff.7.gz
%{_mandir}/man7/tbl.7.gz
%{_mandir}/man8/makewhatis.8.gz
%files -n libmandoc-devel
%license LICENSE
%{_libdir}/libmandoc.a
%{_includedir}/eqn.h
%{_includedir}/man.h
%{_includedir}/mandoc.h
%{_includedir}/mandoc_aux.h
%{_includedir}/mandoc_parse.h
%{_includedir}/mdoc.h
%{_includedir}/roff.h
%{_includedir}/tbl.h
%{_mandir}/man3/mandoc.3*
%{_mandir}/man3/mandoc_escape.3*
%{_mandir}/man3/mandoc_malloc.3*
%{_mandir}/man3/mansearch.3*
%{_mandir}/man3/mchars_alloc.3*
%{_mandir}/man3/tbl.3*
%changelog
* Mon Apr 15 2024 lilong <lilong@kylinos.cn> - 1.14.6-4
- Fix crash when mandoc install
* Mon Oct 9 2023 laokz <zhangkai@iscas.ac.cn> - 1.14.6-3
- add CFLAGS for riscv64 to workaround fragile test-strptime.c
* Thu Apr 6 2023 changzhangm <chaozhangm@isoftstone.com> - 1.14.6-2
- Update to 1.14.6-2
* Fri Sep 23 2022 chendexi <chendexi@kylinos.cn> - 1.14.6-1
- Initial package