6d018f8
%bcond icu 1
6d018f8
1d7d17b
Name:           xalan-c
0468225
Version:        1.12.0
cd48100
# The soversion is made from the major and minor version numbers, e.g. 112 for
cd48100
# version 1.12.x. We could do this automatically…
cd48100
#   %%global so_version %%(echo %%{version} | cut -d . -f -2 | tr -d .)
cd48100
# …but we do not do so because we want to make sure we detect any soversion
cd48100
# update.
cd48100
%global so_version 112
57a8836
Release:        %autorelease
ffe4a39
Summary:        Xalan XSLT processor for C/C++
1d7d17b
c6181b3
# The entire source is Apache-2.0, except cmake/RunTest.cmake, which is
c6181b3
# libtiff, but is a build-system file that does not contribute to the licenses
c6181b3
# of the binary RPMs.
c6181b3
License:        Apache-2.0
e643033
URL:            https://apache.github.io/xalan-c/
3a8edd5
%global tag Xalan-C_%{gsub %{version} . _}
0468225
%global tar_name xalan_c-%(echo %{version} | cut -d . -f -2)
e6a89aa
%global forgeurl https://github.com/apache/xalan-c/
e6a89aa
%global releaseurl %{forgeurl}/releases/download/%{tag}
e6a89aa
Source0:        %{releaseurl}/%{tar_name}.tar.gz
e6a89aa
Source1:        %{releaseurl}/%{tar_name}.tar.gz.asc
e6a89aa
Source2:        %{releaseurl}/KEYS
1026f87
# Man page hand-written for Fedora in groff_man(7) format based on Xalan -?
1026f87
Source3:        Xalan.1
0468225
0468225
BuildRequires:  gnupg2
0468225
BuildRequires:  cmake
0468225
# Either make or ninja is supported.
0468225
BuildRequires:  ninja-build
Igor Gnatenko e67784b
BuildRequires:  gcc-c++
329bf98
329bf98
BuildRequires:  dos2unix
21057a2
BuildRequires:  hardlink
21057a2
1d7d17b
BuildRequires:  xerces-c-devel
0468225
%if %{with icu}
0468225
BuildRequires:  libicu-devel
0468225
%endif
0468225
865b071
Requires:       xalan-c-libs%{?_isa} = %{version}-%{release}
865b071
865b071
%global common_description %{expand:
ffe4a39
The Apache Xalan-C++ Project provides a library and a command line program to
ffe4a39
transform XML documents using a stylesheet that conforms to XSLT 1.0 standards.
ffe4a39
865b071
Xalan is a project of the Apache Software Foundation.}
865b071
865b071
%description %{common_description}
865b071
865b071
This package contains the command-line tool.
865b071
865b071
865b071
%package        libs
865b071
Summary:        Shared libraries for xalan-c
865b071
865b071
%description libs
865b071
The xalan-c-libs package contains libraries needed by the command-line tool and
865b071
by applications that use xalan-c.
1d7d17b
1d7d17b
1d7d17b
%package        devel
8a8827c
Summary:        Development files for xalan-c
865b071
Requires:       xalan-c-libs%{?_isa} = %{version}-%{release}
1d7d17b
1d7d17b
%description devel
8a8827c
The xalan-c-devel package contains libraries and header files for developing
8a8827c
applications that use xalan-c.
1d7d17b
1d7d17b
1d7d17b
%package doc
8a8827c
Summary:        Documentation for xalan-c
d1ec8cb
d1ec8cb
# Doxygen HTML help is not suitable for packaging due to a minified JavaScript
d1ec8cb
# bundle inserted by Doxygen itself. See discussion at
d1ec8cb
# https://bugzilla.redhat.com/show_bug.cgi?id=2006555.
d1ec8cb
#
d1ec8cb
# Normally, we would enable the Doxygen PDF documentation as a lesser
d1ec8cb
# substitute, but building it fails with:
d1ec8cb
#   ! TeX capacity exceeded, sorry [pool size=5905151].
df6bef3
BuildArch:      noarch
1d7d17b
1d7d17b
%description doc
d1ec8cb
Documentation for xalan-c. See https://apache.github.io/xalan-c/ for full HTML
d1ec8cb
documentation.
1d7d17b
1d7d17b
1d7d17b
%prep
0468225
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
0468225
0468225
%autosetup -n %{tar_name}
0468225
0468225
# https://github.com/apache/xalan-c/pull/35
52e2faa
chmod -v a-x NOTICE
0468225
006cff5
# Remove the Autotools build system cruft from the samples; otherwise, it would
006cff5
# be installed as documentation. We leave the CmakeLists.txt even though it
006cff5
# cannot be used standalone; it is used in the build (even though the built
006cff5
# samples are only tested and not installed), and is annoying to exclude.
0468225
rm -vf samples/configure samples/configure.in
1d7d17b
329bf98
# Convert line endings as needed:
329bf98
find docs samples src -type f -exec file '{}' '+' |
329bf98
  grep -F 'CRLF' |
329bf98
  awk -F ':' '{ print $1 }' |
329bf98
  xargs dos2unix --keepdate
329bf98
1d7d17b
1d7d17b
%build
2ed2e58
%cmake %{?with_icu:-Dtranscoder=icu} -GNinja
0468225
%cmake_build
1d7d17b
1d7d17b
1d7d17b
%install
0468225
%cmake_install
0468225
# Remove CMake-installed docs in favor of using the doc macro. We refer to
0468225
# _prefix/share instead of _datadir to mirror how the install path is defined
d1ec8cb
# in the relevant CMakeLists.txt. Note also that we do *not* want to install
d1ec8cb
# the HTML version of the API documentation.
0468225
rm -rf %{buildroot}%{_prefix}/share/doc/xalan-c/api
1d7d17b
21057a2
install -t '%{buildroot}%{_docdir}/%{name}-doc' -D -p -m 0644 \
53aa39d
    README.md docs/*.md
21057a2
cp -rvp docs/images/ samples/ '%{buildroot}%{_docdir}/%{name}-doc'
21057a2
hardlink -c -v '%{buildroot}%{_docdir}/%{name}-doc'
21057a2
1026f87
install -t '%{buildroot}%{_mandir}/man1' -D -p -m 0644 '%{SOURCE3}'
1026f87
1d7d17b
0468225
%check
0468225
%ctest
1d7d17b
1d7d17b
1d7d17b
%files
1d7d17b
%{_bindir}/Xalan
1026f87
%{_mandir}/man1/Xalan.1*
13e310a
865b071
865b071
%files libs
865b071
%license CREDITS LICENSE NOTICE
865b071
13e310a
%{_libdir}/libxalanMsg.so.%{so_version}{,.*}
13e310a
%{_libdir}/libxalan-c.so.%{so_version}{,.*}
1d7d17b
1d7d17b
1d7d17b
%files devel
0468225
%{_libdir}/libxalanMsg.so
0468225
%{_libdir}/libxalan-c.so
a867aba
1d7d17b
%{_includedir}/xalanc/
a867aba
0468225
%dir %{_libdir}/cmake/XalanC
0468225
%{_libdir}/cmake/XalanC/*.cmake
a867aba
0468225
%dir %{_libdir}/pkgconfig
8a8827c
%{_libdir}/pkgconfig/xalan-c.pc
1d7d17b
1d7d17b
1d7d17b
%files doc
0b91f9c
%license CREDITS LICENSE NOTICE
a867aba
21057a2
%{_docdir}/%{name}-doc/
1d7d17b
1d7d17b
1d7d17b
%changelog
57a8836
%autochangelog