File spacewalk-search.spec of Package spacewalk-search

#
# spec file for package spacewalk-search
#
# Copyright (c) 2025 SUSE LLC and contributors
# Copyright (c) 2008-2018 Red Hat, Inc.
#
# 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/
#

%{!?java_version: %global java_version 11}
%if 0%{?suse_version}
%global apache_group www
%else
%define java_version   1:%{java_version}
%global apache_group apache
%endif

%define oro (oro or jakarta-oro)

Name:           spacewalk-search
Version:        5.2.0
Release:        0
Summary:        Spacewalk Full Text Search Server
License:        Apache-2.0 AND GPL-2.0-only
# FIXME: use correct group or remove it, see "https://en.opensuse.org/openSUSE:Package_group_guidelines"
Group:          Applications/Internet
# This src.rpm is cannonical upstream
# You can obtain it using this set of commands
# git clone https://github.com/spacewalkproject/spacewalk.git
# cd search-server
# make test-srpm
URL:            https://github.com/uyuni-project/uyuni
Source0: spacewalk-search-git-812.698137b.tar.gz
BuildRequires:  %{oro}
BuildRequires:  ant
BuildRequires:  apache-commons-cli
BuildRequires:  apache-commons-codec
BuildRequires:  apache-commons-lang3
BuildRequires:  apache-commons-logging
BuildRequires:  apache-commons-text
BuildRequires:  c3p0 >= 0.9.1
BuildRequires:  cglib
BuildRequires:  javapackages-tools
BuildRequires:  junit
BuildRequires:  lucene == 2.4.1
BuildRequires:  objectweb-asm
BuildRequires:  picocontainer
BuildRequires:  quartz >= 2.0
BuildRequires:  redstone-xmlrpc
BuildRequires:  simple-core
BuildRequires:  slf4j
BuildRequires:  systemd
BuildRequires:  (java-devel >= %{java_version} or java-%{java_version}-openjdk-devel)
BuildRequires:  mvn(javassist:javassist)
BuildRequires:  mvn(ognl:ognl)
BuildRequires:  mvn(org.mybatis:mybatis)
%if 0%{?rhel}
BuildRequires:  systemd-rpm-macros
%endif
BuildRequires:  uyuni-base-common
BuildRequires:  zip
Requires(pre):  uyuni-base-common
Requires:       %{oro}
Requires:       apache-commons-cli
Requires:       apache-commons-codec
Requires:       apache-commons-lang3
Requires:       apache-commons-logging
Requires:       apache-commons-text
Requires:       c3p0 >= 0.9.1
Requires:       cglib
Requires:       javapackages-tools
Requires:       lucene == 2.4.1
Requires:       objectweb-asm
Requires:       picocontainer
Requires:       quartz >= 2.0
Requires:       redstone-xmlrpc
Requires:       simple-core
Requires:       mvn(javassist:javassist)
Requires:       mvn(ognl:ognl)
Requires:       mvn(org.mybatis:mybatis)
Obsoletes:      rhn-search < 5.3.0
Requires:       log4j
BuildRequires:  log4j
BuildArch:      noarch

%description
This package contains the code for the Full Text Search Server for
Spacewalk Server.

%prep
%setup -n spacewalk-search-git-812.698137b

%install
%if 0%{?rhel}
export JAVA_HOME=/usr/lib/jvm/java-%{java_version}-openjdk/
%endif
ant -Djar.version=%{version} install
install -d -m 755 %{buildroot}%{_datadir}/rhn/config-defaults
install -d -m 755 %{buildroot}%{_datadir}/rhn/search
install -d -m 755 %{buildroot}%{_datadir}/rhn/search/lib
install -d -m 755 %{buildroot}%{_datadir}/rhn/search/classes
install -d -m 755 %{buildroot}%{_var}/lib/rhn/search
install -d -m 755 %{buildroot}%{_var}/lib/rhn/search/indexes
install -d -m 755 %{buildroot}%{_sbindir}
install -d -m 755 %{buildroot}%{_unitdir}
install -d -m 755 %{buildroot}%{_bindir}
install -d -m 755 %{buildroot}%{_var}/log/rhn/search
install -d -m 755 %{buildroot}%{_sysconfdir}/logrotate.d
install -p -m 644 dist/%{name}-%{version}.jar %{buildroot}%{_datadir}/rhn/search/lib/
# using install -m does not preserve the symlinks
cp -d lib/* %{buildroot}%{_datadir}/rhn/search/lib

install -p -m 644 src/config%{_sysconfdir}/logrotate.d/rhn-search %{buildroot}%{_sysconfdir}/logrotate.d/rhn-search
install -p -m 755 src/config/rhn-search %{buildroot}%{_sbindir}
install -p -m 644 src/config/rhn-search.service %{buildroot}%{_unitdir}
install -p -m 644 src/config/search/rhn_search.conf %{buildroot}%{_datadir}/rhn/config-defaults/rhn_search.conf
install -p -m 644 src/config/search/rhn_search_daemon.conf %{buildroot}%{_datadir}/rhn/config-defaults/rhn_search_daemon.conf
install -p -m 644 src/config/log4j2.xml %{buildroot}%{_datadir}/rhn/search/classes/log4j2.xml
ln -s -f %{_datadir}/rhn/search/lib/spacewalk-search-%{version}.jar %{buildroot}%{_datadir}/rhn/search/lib/spacewalk-search.jar

# add rc link
mkdir -p  %{buildroot}%{_sbindir}/
ln -sf service %{buildroot}/%{_sbindir}/rcrhn-search

# cleanup unwanted jar
rm -f %{buildroot}%{_datadir}/rhn/search/lib/junit.jar

%post
%if 0%{?rhel}
%{systemd_post} rhn-search.service
%else
%service_add_post rhn-search.service
%endif

%preun
%if 0%{?rhel}
%systemd_preun rhn-search.service
%else
%service_del_preun rhn-search.service
%endif

%postun
%if 0%{?rhel}
%systemd_preun rhn-search.service
%else
%service_del_postun rhn-search.service
%endif

%pre
%if !0%{?rhel}
%service_add_pre rhn-search.service
%endif

%files
%defattr(644,root,root,755)
%attr(755, root, root) %{_var}/log/rhn/search
%dir %{_datadir}/rhn/search/classes/
%{_datadir}/rhn/search/lib/*
%attr(755, root, root) %{_sbindir}/rhn-search
%attr(644, root, root) %{_unitdir}/rhn-search.service
%{_datadir}/rhn/config-defaults/rhn_search.conf
%{_datadir}/rhn/config-defaults/rhn_search_daemon.conf
%{_datadir}/rhn/search/classes/log4j2.xml
%{_sysconfdir}/logrotate.d/rhn-search
%dir %attr(755, root, root) %{_var}/lib/rhn/search
%dir %attr(755, root, root) %{_var}/lib/rhn/search/indexes
%dir %attr(755, root, root) %{_var}/lib/rhn
%dir %{_datadir}/rhn
%dir %{_datadir}/rhn/search
%dir %{_datadir}/rhn/search/lib
%if 0%{?rhel}
%dir %{_var}/log/rhn
%else
%attr(770,root,%{apache_group}) %dir %{_var}/log/rhn
%endif
%{_sbindir}/rcrhn-search

%changelog
openSUSE Build Service is sponsored by