diff --git a/Xalan.1 b/Xalan.1 new file mode 100644 index 0000000..28d0605 --- /dev/null +++ b/Xalan.1 @@ -0,0 +1,52 @@ +.TH XALAN "1" "April 2024" "" "User Commands" +.SH NAME +.B Xalan +\(en Transform XML documents using a stylesheet +.SH SYNOPSIS +.B Xalan +.RI [ OPTIONS ] +.I source +.I stylesheet +.SH DESCRIPTION +Transform XML documents using a stylesheet +that conforms to XSLT 1.0 standards. +.SH OPTIONS +A dash as the +.I source +argument reads from stdin. +.RB ( \- +cannot be used for both arguments.) +.TP +.B \-a +Use xml-stylesheet PI, not the +.I stylesheet +argument. +.TP +.B \-e\ \fIencoding +Force the specified encoding for the output. +.TP +.B \-i\ \fIinteger +Indent the specified amount. +.TP +.B \-m +Omit the +.B META +tag in HTML output. +.TP +.B \-o\ \fIfilename +Write output to the specified file. +.TP +.B \-p\ \fIname\ expression +Sets a stylesheet parameter. +.TP +.B \-t +Display timing information. +.TP +.B \-u +Disable escaping of URLs in HTML output. +.TP +.B \-? +Display a help message. +.TP +.B \-v +Validates source documents. diff --git a/xalan-c.rpmlintrc b/xalan-c.rpmlintrc new file mode 100644 index 0000000..19f46cf --- /dev/null +++ b/xalan-c.rpmlintrc @@ -0,0 +1,10 @@ +# Not a real spelling error: +addFilter(r" spelling-error \('([Ss]tylesheet)s?',") +# Hardlinks within directories owned by a single package are safe. +addFilter(r" cross-directory-hard-link /\S+/xalan-c-doc/\S+ /\S+/xalan-c-doc/") +# All documentation is in the -doc subpackage. +addFilter(r" no-documentation$") +#xalan-c.x86_64: W: no-manual-page-for-binary Xalan +#xalan-c.x86_64: W: no-documentation +#xalan-c-devel.x86_64: W: no-documentation +#xalan-c-doc.x86_64: E: no-binary diff --git a/xalan-c.spec b/xalan-c.spec index 82e6bd0..dfee185 100644 --- a/xalan-c.spec +++ b/xalan-c.spec @@ -10,35 +10,60 @@ Version: 1.12.0 Release: %autorelease Summary: Xalan XSLT processor for C/C++ -License: ASL 2.0 -URL: http://xalan.apache.org/xalan-c/ +# The entire source is Apache-2.0, except cmake/RunTest.cmake, which is +# libtiff, but is a build-system file that does not contribute to the licenses +# of the binary RPMs. +License: Apache-2.0 +SourceLicense: %{license} AND libtiff +URL: https://apache.github.io/xalan-c/ %global tag Xalan-C_%(echo '%{version}' | tr . _) %global tar_name xalan_c-%(echo %{version} | cut -d . -f -2) -%global release_url https://github.com/apache/xalan-c/releases/download/%{tag} -Source0: %{release_url}/%{tar_name}.tar.gz -Source1: %{release_url}/%{tar_name}.tar.gz.asc -Source2: %{release_url}/KEYS +%global forgeurl https://github.com/apache/xalan-c/ +%global releaseurl %{forgeurl}/releases/download/%{tag} +Source0: %{releaseurl}/%{tar_name}.tar.gz +Source1: %{releaseurl}/%{tar_name}.tar.gz.asc +Source2: %{releaseurl}/KEYS +# Man page hand-written for Fedora in groff_man(7) format based on Xalan -? +Source3: Xalan.1 BuildRequires: gnupg2 BuildRequires: cmake # Either make or ninja is supported. BuildRequires: ninja-build BuildRequires: gcc-c++ + +BuildRequires: dos2unix +BuildRequires: hardlink + BuildRequires: xerces-c-devel %if %{with icu} BuildRequires: libicu-devel %endif -%description +Requires: xalan-c-libs%{?_isa} = %{version}-%{release} + +%global common_description %{expand: The Apache Xalan-C++ Project provides a library and a command line program to transform XML documents using a stylesheet that conforms to XSLT 1.0 standards. -Xalan is a project of the Apache Software Foundation. +Xalan is a project of the Apache Software Foundation.} + +%description %{common_description} + +This package contains the command-line tool. + + +%package libs +Summary: Shared libraries for xalan-c + +%description libs +The xalan-c-libs package contains libraries needed by the command-line tool and +by applications that use xalan-c. %package devel Summary: Development files for xalan-c -Requires: xalan-c%{?_isa} = %{version}-%{release} +Requires: xalan-c-libs%{?_isa} = %{version}-%{release} %description devel The xalan-c-devel package contains libraries and header files for developing @@ -55,6 +80,7 @@ Summary: Documentation for xalan-c # Normally, we would enable the Doxygen PDF documentation as a lesser # substitute, but building it fails with: # ! TeX capacity exceeded, sorry [pool size=5905151]. +BuildArch: noarch %description doc Documentation for xalan-c. See https://apache.github.io/xalan-c/ for full HTML @@ -75,6 +101,12 @@ chmod -v a-x NOTICE # samples are only tested and not installed), and is annoying to exclude. rm -vf samples/configure samples/configure.in +# Convert line endings as needed: +find docs samples src -type f -exec file '{}' '+' | + grep -F 'CRLF' | + awk -F ':' '{ print $1 }' | + xargs dos2unix --keepdate + %build %cmake %{?with_icu:-Dtranscoder=icu} -GNinja @@ -89,42 +121,47 @@ rm -vf samples/configure samples/configure.in # the HTML version of the API documentation. rm -rf %{buildroot}%{_prefix}/share/doc/xalan-c/api +install -t '%{buildroot}%{_docdir}/%{name}-doc' -D -p -m 0644 \ + README.md docs/*.md +cp -rvp docs/images/ samples/ '%{buildroot}%{_docdir}/%{name}-doc' +hardlink -c -v '%{buildroot}%{_docdir}/%{name}-doc' + +install -t '%{buildroot}%{_mandir}/man1' -D -p -m 0644 '%{SOURCE3}' + %check %ctest %files -%license LICENSE -%doc CREDITS -%doc KEYS -%doc NOTICE -%doc README.md %{_bindir}/Xalan -%{_libdir}/libxalanMsg.so.%{so_version} -%{_libdir}/libxalanMsg.so.%{so_version}.* -%{_libdir}/libxalan-c.so.%{so_version} -%{_libdir}/libxalan-c.so.%{so_version}.* +%{_mandir}/man1/Xalan.1* + + +%files libs +%license CREDITS LICENSE NOTICE + +%{_libdir}/libxalanMsg.so.%{so_version}{,.*} +%{_libdir}/libxalan-c.so.%{so_version}{,.*} %files devel %{_libdir}/libxalanMsg.so %{_libdir}/libxalan-c.so + %{_includedir}/xalanc/ + %dir %{_libdir}/cmake/XalanC %{_libdir}/cmake/XalanC/*.cmake + %dir %{_libdir}/pkgconfig %{_libdir}/pkgconfig/xalan-c.pc %files doc -%license LICENSE -%doc CREDITS -%doc KEYS -%doc NOTICE -%doc README.md -%doc docs/*.md docs/images -%doc samples +%license CREDITS LICENSE NOTICE + +%{_docdir}/%{name}-doc/ %changelog