source-highlight/source-highlight.spec

198 lines
7.1 KiB
RPMSpec

#
# spec file for package source-highlight
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define soname 4
Name: source-highlight
Version: 3.1.9
Release: 0
Summary: Source Code Highlighter with Support for Many Languages
License: GPL-3.0-only
Group: Productivity/Publishing/Other
URL: https://www.gnu.org/software/src-highlite
Source0: https://ftp.gnu.org/gnu/src-highlite/source-highlight-%{version}.tar.gz
Source1: https://ftp.gnu.org/gnu/src-highlite/source-highlight-%{version}.tar.gz.sig
Source2: %{name}.keyring
Source3: baselibs.conf
Source4: source-highlight-apache2.conf
Patch0: source-highlight-doxygen_disable_timestamp_in_footer.patch
# PATCH-FIX-OPENSUSE use-lessopen.patch boo#1016309 fcrozat@suse.com -- use lessopen, not lesspipe
Patch1: use-lessopen.patch
# PATCH-FIX-UPSTREAM
Patch2: 0001-Remove-throw-specifications.patch
BuildRequires: bison
BuildRequires: ctags
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: graphviz-gd
BuildRequires: help2man
BuildRequires: libboost_regex-devel
BuildRequires: libicu-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: texinfo
Requires(post): %{install_info_prereq}
Requires(preun): %{install_info_prereq}
%description
Source-highlight reads source language specifications dynamically, thus it can
be easily extended (without recompiling the sources) for handling new
languages. It also reads output format specifications dynamically, and thus it
can be easily extended (without recompiling the sources) for handling new
output formats. The syntax for these specifications is quite easy (take a look
at the manual).
%package -n libsource-highlight%{soname}
Summary: Source Code Highlighting C++ Library
Group: System/Libraries
# libsource-highlight is only used by gdb, which does not use the ctags
# feature. Use a recommendation instead of a hard requirement, bsc#1193401
Recommends: ctags
%description -n libsource-highlight%{soname}
Source-highlight reads source language specifications dynamically, thus it can
be easily extended (without recompiling the sources) for handling new
languages. It also reads output format specifications dynamically, and thus it
can be easily extended (without recompiling the sources) for handling new
output formats. The syntax for these specifications is quite easy (take a look
at the manual).
libsource-highlight is a C++ library that provides the features of
Source-highlight.
%package -n libsource-highlight-devel
Summary: Source Code Highlighting C++ Library
Group: Development/Libraries/C and C++
Requires: libsource-highlight%{soname} = %{version}-%{release}
Requires(post): %{install_info_prereq}
Requires(preun): %{install_info_prereq}
%description -n libsource-highlight-devel
Source-highlight reads source language specifications dynamically, thus it can
be easily extended (without recompiling the sources) for handling new
languages. It also reads output format specifications dynamically, and thus it
can be easily extended (without recompiling the sources) for handling new
output formats. The syntax for these specifications is quite easy (take a look
at the manual).
libsource-highlight is a C++ library that provides the features of
Source-highlight.
%package cgi
Summary: Source Code Highlighting CGI
Group: Productivity/Networking/Web/Utilities
Requires: apache2
%description cgi
Source-highlight reads source language specifications dynamically, thus it can
be easily extended (without recompiling the sources) for handling new
languages. It also reads output format specifications dynamically, and thus it
can be easily extended (without recompiling the sources) for handling new
output formats. The syntax for these specifications is quite easy (take a look
at the manual).
This package contains a CGI that can be used to highlight source code on
your webserver using source-highlight.
%prep
%autosetup -p1
sed -i 's/\r//g' doc/*.css
%build
BOOST_REGEX=$(/bin/ls -1 "%{_libdir}"/libboost_regex*mt*.so 2>/dev/null | head -1)
[ -n "$BOOST_REGEX" ] || BOOST_REGEX=$(/bin/ls -1 "%{_libdir}"/libboost_regex*.so 2>/dev/null | head -1)
if [ -n "$BOOST_REGEX" ]; then
BOOST_REGEX="${BOOST_REGEX##*/lib}"
BOOST_REGEX="${BOOST_REGEX%.so}"
BOOST_REGEX_PARAM="--with-boost-regex=${BOOST_REGEX}"
else
BOOST_REGEX_PARAM=""
fi
%configure \
"$BOOST_REGEX_PARAM" \
--with-bash-completion="%{_sysconfdir}/bash_completion.d" \
--with-doxygen \
--enable-static=no
%make_build
%make_build -C src source-highlight-cgi
%install
%make_install
install -d "%{buildroot}/srv/source-highlight"
libtool --mode=install install -m 0755 src/source-highlight-cgi "%{buildroot}/srv/source-highlight/source-highlight.cgi"
install -D -m0644 "%{SOURCE4}" "%{buildroot}%{_sysconfdir}/apache2/conf.d/%{name}.conf"
find %{buildroot} -type f -name "*.la" -delete -print
rm -rf "%{buildroot}%{_docdir}/%{name}/html"
rm -rf "%{buildroot}%{_datadir}/doc"
chmod 0644 AUTHORS ChangeLog COPYING CREDITS NEWS README THANKS TODO.txt
%if 0%{?suse_version} >= 1030
%fdupes -s "%{buildroot}%{_datadir}/"
%endif
%post
%install_info --info-dir="%{_infodir}" "%{_infodir}/source-highlight".info%{ext_info}
%preun
%install_info_delete --info-dir="%{_infodir}" "%{_infodir}/source-highlight".info%{ext_info}
%post -n libsource-highlight-devel
%install_info --info-dir="%{_infodir}" "%{_infodir}/source-highlight-lib".info%{ext_info}
%preun -n libsource-highlight-devel
%install_info_delete --info-dir="%{_infodir}" "%{_infodir}/source-highlight-lib".info%{ext_info}
%post -n libsource-highlight%{soname} -p /sbin/ldconfig
%postun -n libsource-highlight%{soname} -p /sbin/ldconfig
%files
%license COPYING
%doc AUTHORS ChangeLog CREDITS NEWS README THANKS TODO.txt
%config %{_sysconfdir}/bash_completion.d/source-highlight
%{_bindir}/*
%{_datadir}/source-highlight
%{_mandir}/man1/*.1%{?ext_man}
%{_infodir}/source-highlight.info%{ext_man}
%files -n libsource-highlight%{soname}
%{_libdir}/libsource-highlight.so.%{soname}
%{_libdir}/libsource-highlight.so.%{soname}.*.*
%files -n libsource-highlight-devel
%{_includedir}/srchilite
%{_libdir}/libsource-highlight.so
%{_libdir}/pkgconfig/source-highlight.pc
%{_infodir}/source-highlight-lib.info%{?ext_info}
%files cgi
%config(noreplace) %{_sysconfdir}/apache2/conf.d/source-highlight.conf
%dir %{_sysconfdir}/apache2
%dir %{_sysconfdir}/apache2/conf.d
%dir /srv/source-highlight
/srv/source-highlight/source-highlight.cgi
%changelog