From 80995fc7d139cb99b2ce05f63e9b89f6a9627cf8 Mon Sep 17 00:00:00 2001 From: Super User Date: Mon, 15 Apr 2024 14:32:10 +0800 Subject: [PATCH] Fix crash when mandoc install --- mandoc.spec | 134 +++++++++------------------------------------------- 1 file changed, 23 insertions(+), 111 deletions(-) diff --git a/mandoc.spec b/mandoc.spec index 3910d7b..24c2ffc 100644 --- a/mandoc.spec +++ b/mandoc.spec @@ -1,6 +1,6 @@ Name: mandoc Version: 1.14.6 -Release: 3 +Release: 4 Summary: A suite of tools for compiling mdoc and man License: ISC @@ -17,16 +17,17 @@ BuildRequires: zlib-devel BuildRequires: perl-interpreter BuildRequires: perl(IPC::Open3) -Requires(post): %{_sbindir}/update-alternatives -Requires(postun): %{_sbindir}/update-alternatives -Requires(preun): %{_sbindir}/update-alternatives - # 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 @@ -85,125 +86,33 @@ export CC=clang # Ensure headers do not have the execute bit set chmod -x %{buildroot}%{_includedir}/*.h -# Rename files for alternative usage -mv %{buildroot}%{_bindir}/man %{buildroot}%{_bindir}/man.mandoc -mv %{buildroot}%{_bindir}/apropos %{buildroot}%{_bindir}/apropos.mandoc -mv %{buildroot}%{_bindir}/whatis %{buildroot}%{_bindir}/whatis.mandoc -mv %{buildroot}%{_bindir}/soelim %{buildroot}%{_bindir}/soelim.mandoc -mv %{buildroot}%{_sbindir}/makewhatis %{buildroot}%{_sbindir}/makewhatis.mandoc -mv %{buildroot}%{_mandir}/man1/apropos.1 %{buildroot}%{_mandir}/man1/apropos.mandoc.1 -mv %{buildroot}%{_mandir}/man1/man.1 %{buildroot}%{_mandir}/man1/man.mandoc.1 -mv %{buildroot}%{_mandir}/man1/soelim.1 %{buildroot}%{_mandir}/man1/soelim.mandoc.1 -mv %{buildroot}%{_mandir}/man1/whatis.1 %{buildroot}%{_mandir}/man1/whatis.mandoc.1 -mv %{buildroot}%{_mandir}/man7/man.7 %{buildroot}%{_mandir}/man7/man.mandoc.7 -mv %{buildroot}%{_mandir}/man7/roff.7 %{buildroot}%{_mandir}/man7/roff.mandoc.7 -mv %{buildroot}%{_mandir}/man7/eqn.7 %{buildroot}%{_mandir}/man7/eqn.mandoc.7 -mv %{buildroot}%{_mandir}/man7/tbl.7 %{buildroot}%{_mandir}/man7/tbl.mandoc.7 -mv %{buildroot}%{_mandir}/man8/makewhatis.8 %{buildroot}%{_mandir}/man8/makewhatis.mandoc.8 - -# Touch all the locations that update-alternatives will use -touch %{buildroot}%{_bindir}/man -touch %{buildroot}%{_bindir}/apropos -touch %{buildroot}%{_bindir}/whatis -touch %{buildroot}%{_bindir}/soelim -touch %{buildroot}%{_sbindir}/makewhatis -touch %{buildroot}%{_mandir}/man1/apropos.1 -touch %{buildroot}%{_mandir}/man1/man.1 -touch %{buildroot}%{_mandir}/man1/soelim.1 -touch %{buildroot}%{_mandir}/man1/whatis.1 -touch %{buildroot}%{_mandir}/man7/man.7 -touch %{buildroot}%{_mandir}/man7/roff.7 -touch %{buildroot}%{_mandir}/man7/eqn.7 -touch %{buildroot}%{_mandir}/man7/tbl.7 -touch %{buildroot}%{_mandir}/man8/makewhatis.8 - %check env LD_LIBRARY_PATH="$PWD" %make_build regress -%postun -if [ $1 -ge 1 ]; then - if [ "$(readlink %{_sysconfdir}/alternatives/man)" = "%{_bindir}/man.mandoc" ]; then - %{_sbindir}/alternatives --set man %{_bindir}/man.mandoc - fi - - if [ "$(readlink %{_sysconfdir}/alternatives/soelim)" = "%{_bindir}/soelim.mandoc" ]; then - %{_sbindir}/alternatives --set soelim %{_bindir}/soelim.mandoc - fi - - if [ "$(readlink %{_sysconfdir}/alternatives/roff.7.gz)" = "%{_mandir}/man7/roff.mandoc.7.gz" ]; then - %{_sbindir}/alternatives --set roff.7.gz %{_mandir}/man7/roff.mandoc.7.gz - fi - - if [ "$(readlink %{_sysconfdir}/alternatives/man.7.gz)" = "%{_mandir}/man7/man.mandoc.7.gz" ]; then - %{_sbindir}/alternatives --set man.7.gz %{_mandir}/man7/man.mandoc.7.gz - fi -fi - -%post -%{_sbindir}/update-alternatives --install %{_bindir}/man man %{_bindir}/man.mandoc 200 \ - --slave %{_bindir}/apropos apropos %{_bindir}/apropos.mandoc \ - --slave %{_bindir}/whatis whatis %{_bindir}/whatis.mandoc \ - --slave %{_sbindir}/makewhatis makewhatis %{_sbindir}/makewhatis.mandoc \ - --slave %{_mandir}/man1/apropos.1.gz apropos.1.gz %{_mandir}/man1/apropos.mandoc.1.gz \ - --slave %{_mandir}/man1/man.1.gz man.1.gz %{_mandir}/man1/man.mandoc.1.gz \ - --slave %{_mandir}/man1/whatis.1.gz whatis.1.gz %{_mandir}/man1/whatis.mandoc.1.gz \ - --slave %{_mandir}/man8/makewhatis.8.gz makewhatis.8.gz %{_mandir}/man8/makewhatis.mandoc.8.gz - -%{_sbindir}/update-alternatives --install %{_bindir}/soelim soelim %{_bindir}/soelim.mandoc 200 \ - --slave %{_mandir}/man1/soelim.1.gz soelim.1.gz %{_mandir}/man1/soelim.mandoc.1.gz - -%{_sbindir}/update-alternatives --install %{_mandir}/man7/roff.7.gz roff.7.gz %{_mandir}/man7/roff.mandoc.7.gz 200 \ - --slave %{_mandir}/man7/eqn.7.gz eqn.7.gz %{_mandir}/man7/eqn.mandoc.7.gz \ - --slave %{_mandir}/man7/tbl.7.gz tbl.7.gz %{_mandir}/man7/tbl.mandoc.7.gz - -%{_sbindir}/update-alternatives --install %{_mandir}/man7/man.7.gz man.7.gz %{_mandir}/man7/man.mandoc.7.gz 200 - -%preun -if [ $1 -eq 0 ]; then - %{_sbindir}/update-alternatives --remove man %{_bindir}/man.mandoc - %{_sbindir}/update-alternatives --remove soelim %{_bindir}/soelim.mandoc - %{_sbindir}/update-alternatives --remove roff.7.gz %{_mandir}/man7/roff.mandoc.7.gz - %{_sbindir}/update-alternatives --remove man.7.gz %{_mandir}/man7/man.mandoc.7.gz -fi - %files %license LICENSE %{_bindir}/demandoc %{_bindir}/mandoc -%{_bindir}/apropos.mandoc -%ghost %{_bindir}/apropos -%{_bindir}/man.mandoc -%ghost %{_bindir}/man -%{_bindir}/soelim.mandoc -%ghost %{_bindir}/soelim -%{_bindir}/whatis.mandoc -%ghost %{_bindir}/whatis -%{_sbindir}/makewhatis.mandoc -%ghost %{_sbindir}/makewhatis +%{_bindir}/apropos +%{_bindir}/man +%{_bindir}/soelim +%{_bindir}/whatis +%{_sbindir}/makewhatis %{_mandir}/man1/demandoc.1.gz %{_mandir}/man1/mandoc.1.gz -%{_mandir}/man1/apropos.mandoc.1.gz -%ghost %{_mandir}/man1/apropos.1.gz -%{_mandir}/man1/man.mandoc.1.gz -%ghost %{_mandir}/man1/man.1.gz -%{_mandir}/man1/soelim.mandoc.1.gz -%ghost %{_mandir}/man1/soelim.1.gz -%{_mandir}/man1/whatis.mandoc.1.gz -%ghost %{_mandir}/man1/whatis.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.mandoc.7.gz -%ghost %{_mandir}/man7/eqn.7.gz +%{_mandir}/man7/eqn.7.gz %{_mandir}/man7/mandoc_char.7.gz -%{_mandir}/man7/man.mandoc.7.gz -%ghost %{_mandir}/man7/man.7.gz +%{_mandir}/man7/man.7.gz %{_mandir}/man7/mdoc.7.gz -%{_mandir}/man7/roff.mandoc.7.gz -%ghost %{_mandir}/man7/roff.7.gz -%{_mandir}/man7/tbl.mandoc.7.gz -%ghost %{_mandir}/man7/tbl.7.gz -%{_mandir}/man8/makewhatis.mandoc.8.gz -%ghost %{_mandir}/man8/makewhatis.8.gz +%{_mandir}/man7/roff.7.gz +%{_mandir}/man7/tbl.7.gz +%{_mandir}/man8/makewhatis.8.gz %files -n libmandoc-devel %license LICENSE @@ -224,6 +133,9 @@ fi %{_mandir}/man3/tbl.3* %changelog +* Mon Apr 15 2024 lilong - 1.14.6-4 +- Fix crash when mandoc install + * Mon Oct 9 2023 laokz - 1.14.6-3 - add CFLAGS for riscv64 to workaround fragile test-strptime.c * Thu Apr 6 2023 changzhangm - 1.14.6-2 -- Gitee