4c5f6edcc6cc7741e76f98e0a0fbf1c549616e23
[gentoo.git] / app-text / openjade / openjade-1.3.2-r9.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5 inherit autotools flag-o-matic sgml-catalog-r1 toolchain-funcs
6
7 DESCRIPTION="Jade is an implementation of DSSSL for formatting SGML and XML documents"
8 HOMEPAGE="http://openjade.sourceforge.net"
9 SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${PV}/${P}.tar.gz"
10
11 LICENSE="MIT"
12 SLOT="0"
13 KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
14 IUSE=""
15
16 RDEPEND="
17         app-text/sgml-common
18         >=app-text/opensp-1.5.1
19 "
20 DEPEND="${RDEPEND}
21         dev-lang/perl
22 "
23
24 src_prepare() {
25         default
26
27         eapply "${FILESDIR}"/${P}-deplibs.patch
28         eapply "${FILESDIR}"/${P}-ldflags.patch
29         eapply "${FILESDIR}"/${P}-msggen.pl.patch
30         eapply "${FILESDIR}"/${P}-respect-ldflags.patch
31         eapply "${FILESDIR}"/${P}-libosp-la.patch
32         eapply "${FILESDIR}"/${P}-gcc46.patch
33         eapply "${FILESDIR}"/${P}-no-undefined.patch
34         eapply "${FILESDIR}"/${P}-wchar_t-uint.patch
35         eapply "${FILESDIR}"/${P}-chmod.patch #487218
36
37         # Please note!  Opts are disabled.  If you know what you're doing
38         # feel free to remove this line.  It may cause problems with
39         # docbook-sgml-utils among other things.
40         #ALLOWED_FLAGS="-O -O1 -O2 -pipe -g -march"
41         strip-flags
42
43         # Default CFLAGS and CXXFLAGS is -O2 but this make openjade segfault
44         # on hppa. Using -O1 works fine. So I force it here.
45         use hppa && replace-flags -O2 -O1
46
47         ln -s config/configure.in configure.ac || die
48         cp "${FILESDIR}"/${P}-acinclude.m4 acinclude.m4 || die
49         rm config/missing || die
50
51         AT_NOEAUTOMAKE=yes \
52         eautoreconf
53 }
54
55 src_configure() {
56         # avoids dead-store elimination optimization
57         # leading to segfaults on GCC 6
58         # bug #592590 #596506
59         tc-is-clang || append-cxxflags $(test-flags-CXX -fno-lifetime-dse)
60
61         # We need Prefix env, bug #287358
62         CONFIG_SHELL="${CONFIG_SHELL:-${BASH}}" \
63         econf \
64                 --enable-http \
65                 --enable-default-catalog="${EPREFIX}"/etc/sgml/catalog \
66                 --enable-default-search-path="${EPREFIX}"/usr/share/sgml \
67                 --enable-splibdir="${EPREFIX}"/usr/$(get_libdir) \
68                 --libdir="${EPREFIX}"/usr/$(get_libdir) \
69                 --datadir="${EPREFIX}"/usr/share/sgml/${P} \
70                 --disable-static
71 }
72
73 src_compile() {
74         unset INCLUDE #412725
75         emake -j1 SHELL="${BASH}"
76 }
77
78 src_install() {
79         #dodir /usr/$(get_libdir)
80
81         make DESTDIR="${D}" \
82                 SHELL="${BASH}" \
83                 libdir="${EPREFIX}"/usr/$(get_libdir) \
84                 install install-man
85
86         find "${D}" -name '*.la' -delete || die
87
88         dosym openjade /usr/bin/jade
89         dosym onsgmls /usr/bin/nsgmls
90         dosym osgmlnorm /usr/bin/sgmlnorm
91         dosym ospam /usr/bin/spam
92         dosym ospent /usr/bin/spent
93         dosym osx /usr/bin/sgml2xml
94
95         insinto /usr/share/sgml/${P}
96         doins dsssl/builtins.dsl
97
98         newins - catalog <<-EOF
99                 SYSTEM "builtins.dsl" "builtins.dsl"
100         EOF
101         doins -r pubtext
102         insinto /usr/share/sgml/${P}/dsssl
103         doins dsssl/{dsssl.dtd,style-sheet.dtd,fot.dtd}
104         newins "${FILESDIR}"/${P}.dsssl-catalog catalog
105
106         # Breaks sgml2xml among other things
107         #insinto /usr/share/sgml/${P}/unicode
108         #doins unicode/{catalog,unicode.sd,unicode.syn,gensyntax.pl}
109
110         insinto /etc/sgml
111         newins - "${P}.cat" <<-EOF
112                 CATALOG "${EPREFIX}/usr/share/sgml/openjade-${PV}/catalog"
113                 CATALOG "${EPREFIX}/usr/share/sgml/openjade-${PV}/dsssl/catalog"
114         EOF
115
116         local HTML_DOCS=( doc/*.htm )
117         einstalldocs
118         dodoc -r jadedoc
119 }
120
121 pkg_preinst() {
122         # work-around old revision removing it
123         cp "${ED}"/etc/sgml/${P}.cat "${T}" || die
124 }
125
126 pkg_postinst() {
127         local backup=${T}/${P}.cat
128         local real=${EROOT}/etc/sgml/${P}.cat
129         if ! cmp -s "${backup}" "${real}"; then
130                 cp "${backup}" "${real}" || die
131         fi
132         # this one's shared with docbook-dsssl, so we need to do it in postinst
133         if ! grep -q -s ${P}.cat \
134                         "${EROOT}"/etc/sgml/sgml-docbook.cat; then
135                 ebegin "Adding ${P}.cat to /etc/sgml/sgml-docbook.cat"
136                 cat >> "${EROOT}"/etc/sgml/sgml-docbook.cat <<-EOF
137                         CATALOG "${EPREFIX}/etc/sgml/${P}.cat"
138                 EOF
139                 eend ${?}
140         fi
141         sgml-catalog-r1_pkg_postinst
142 }
143
144 pkg_postrm() {
145         if [[ -z ${REPLACED_BY_VERSION} ]]; then
146                 ebegin "Removing ${P}.cat from /etc/sgml/sgml-docbook.cat"
147                 sed -i -e '/${P}/d' \
148                         "${EROOT}"/etc/sgml/sgml-docbook.cat
149                 eend ${?}
150                 if [[ ! -s ${EROOT}/etc/sgml/sgml-docbook.cat ]]; then
151                         rm -f "${EROOT}"/etc/sgml/sgml-docbook.cat
152                 fi
153         fi
154         sgml-catalog-r1_pkg_postrm
155 }