!7 Fix crash when mandoc install

From: @lilong88 
Reviewed-by: @duyiwei7w 
Signed-off-by: @duyiwei7w
This commit is contained in:
openeuler-ci-bot 2024-04-15 07:35:37 +00:00 committed by Gitee
commit 18e3cfc44c
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -1,6 +1,6 @@
Name: mandoc Name: mandoc
Version: 1.14.6 Version: 1.14.6
Release: 3 Release: 4
Summary: A suite of tools for compiling mdoc and man Summary: A suite of tools for compiling mdoc and man
License: ISC License: ISC
@ -17,16 +17,17 @@ BuildRequires: zlib-devel
BuildRequires: perl-interpreter BuildRequires: perl-interpreter
BuildRequires: perl(IPC::Open3) 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 # The shared library package has been removed per discussion with the
# upstream maintainer. If using the library, the static library is # upstream maintainer. If using the library, the static library is
# preferred because the API is not stable. # preferred because the API is not stable.
Provides: libmandoc = %{version}-%{release} Provides: libmandoc = %{version}-%{release}
Obsoletes: libmandoc <= 1.14.5-10 Obsoletes: libmandoc <= 1.14.5-10
Conflicts: groff
Conflicts: groff-full
Conflicts: makewhat
Conflicts: man
%description %description
mandoc is a suite of tools compiling mdoc, the roff macro language of choice 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 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 # Ensure headers do not have the execute bit set
chmod -x %{buildroot}%{_includedir}/*.h 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 %check
env LD_LIBRARY_PATH="$PWD" %make_build regress 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 %files
%license LICENSE %license LICENSE
%{_bindir}/demandoc %{_bindir}/demandoc
%{_bindir}/mandoc %{_bindir}/mandoc
%{_bindir}/apropos.mandoc %{_bindir}/apropos
%ghost %{_bindir}/apropos %{_bindir}/man
%{_bindir}/man.mandoc %{_bindir}/soelim
%ghost %{_bindir}/man %{_bindir}/whatis
%{_bindir}/soelim.mandoc %{_sbindir}/makewhatis
%ghost %{_bindir}/soelim
%{_bindir}/whatis.mandoc
%ghost %{_bindir}/whatis
%{_sbindir}/makewhatis.mandoc
%ghost %{_sbindir}/makewhatis
%{_mandir}/man1/demandoc.1.gz %{_mandir}/man1/demandoc.1.gz
%{_mandir}/man1/mandoc.1.gz %{_mandir}/man1/mandoc.1.gz
%{_mandir}/man1/apropos.mandoc.1.gz %{_mandir}/man1/apropos.1.gz
%ghost %{_mandir}/man1/apropos.1.gz %{_mandir}/man1/man.1.gz
%{_mandir}/man1/man.mandoc.1.gz %{_mandir}/man1/soelim.1.gz
%ghost %{_mandir}/man1/man.1.gz %{_mandir}/man1/whatis.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}/man5/mandoc.conf.5.gz %{_mandir}/man5/mandoc.conf.5.gz
%{_mandir}/man5/mandoc.db.5.gz %{_mandir}/man5/mandoc.db.5.gz
%{_mandir}/man7/eqn.mandoc.7.gz %{_mandir}/man7/eqn.7.gz
%ghost %{_mandir}/man7/eqn.7.gz
%{_mandir}/man7/mandoc_char.7.gz %{_mandir}/man7/mandoc_char.7.gz
%{_mandir}/man7/man.mandoc.7.gz %{_mandir}/man7/man.7.gz
%ghost %{_mandir}/man7/man.7.gz
%{_mandir}/man7/mdoc.7.gz %{_mandir}/man7/mdoc.7.gz
%{_mandir}/man7/roff.mandoc.7.gz %{_mandir}/man7/roff.7.gz
%ghost %{_mandir}/man7/roff.7.gz %{_mandir}/man7/tbl.7.gz
%{_mandir}/man7/tbl.mandoc.7.gz %{_mandir}/man8/makewhatis.8.gz
%ghost %{_mandir}/man7/tbl.7.gz
%{_mandir}/man8/makewhatis.mandoc.8.gz
%ghost %{_mandir}/man8/makewhatis.8.gz
%files -n libmandoc-devel %files -n libmandoc-devel
%license LICENSE %license LICENSE
@ -224,6 +133,9 @@ fi
%{_mandir}/man3/tbl.3* %{_mandir}/man3/tbl.3*
%changelog %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 * Mon Oct 9 2023 laokz <zhangkai@iscas.ac.cn> - 1.14.6-3
- add CFLAGS for riscv64 to workaround fragile test-strptime.c - add CFLAGS for riscv64 to workaround fragile test-strptime.c
* Thu Apr 6 2023 changzhangm <chaozhangm@isoftstone.com> - 1.14.6-2 * Thu Apr 6 2023 changzhangm <chaozhangm@isoftstone.com> - 1.14.6-2