File ThePEG.spec of Package ThePEG

#
# spec file for package ThePEG
#
# Copyright (c) 2024 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/
#


# DISABLE JAVA BINDINGS UNTIL COMPATIBLE WITH openjdk >= 1.9
%bcond_with java

%define sonum 30

Name:           ThePEG
Version:        2.3.0
Release:        0
Summary:        Toolkit providing a common platform for event generators in C++
License:        GPL-2.0-only
Group:          Development/Libraries/C and C++
URL:            https://herwig.hepforge.org/
Source:         https://thepeg.hepforge.org/downloads/%{name}-%{version}.tar.bz2
BuildRequires:  HepMC-devel
BuildRequires:  LHAPDF-devel
BuildRequires:  Rivet-devel
BuildRequires:  YODA-devel
BuildRequires:  fastjet-devel
BuildRequires:  fastjet-plugin-siscone-devel
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  gsl-devel
BuildRequires:  libboost_test-devel
%if %{with java}
BuildRequires:  java-devel
%endif
BuildRequires:  time
BuildRequires:  pkgconfig(zlib)
# 32-BIT BUILDS ARE NOT SUPPORTED BY UPSTREAM
ExcludeArch:    %{ix86} %{arm}

%description
ThePEG project is a toolkit for providing a common platform for using and
building event generators in C++.

%package -n libThePEG%{sonum}
Summary:        Toolkit providing a common platform for event generators in C++
Group:          System/Libraries
Obsoletes:      ThePEG-libs < 2.3.0

%description -n libThePEG%{sonum}
ThePEG project is a toolkit for providing a common platform for using and
building event generators in C++.

This package provides the shared libraries for ThePEG.

%package devel
Summary:        Toolkit providing a common platform for event generators in C++
Group:          Development/Libraries/C and C++
Requires:       libThePEG%{sonum} = %{version}

%description devel
ThePEG project is a toolkit for providing a common platform for using and
building event generators in C++.

This package provides the header and source files needed for development with
ThePEG.

%prep
%setup -q

# FIX AN env BASED HASHBANG
sed -i "1{s|#! /usr/bin/env bash|#!/bin/bash|}" ./src/thepeg-config.in

%build
%configure \
  --with-hepmcversion=3 \
  --with-rivet=%{_prefix}
%make_build

%install
%make_install
mkdir -p %{buildroot}/%{_sysconfdir}/ld.so.conf.d
cat << EOF > %{buildroot}/%{_sysconfdir}/ld.so.conf.d/%{name}%{sonum}.conf
%{_libdir}/%{name}
EOF

find %{buildroot}%{_libdir}/%{name} -name "*.la" -delete -print
%fdupes -s %{buildroot}%{_libdir}/%{name}/

%post   -n libThePEG%{sonum} -p /sbin/ldconfig
%postun -n libThePEG%{sonum} -p /sbin/ldconfig

%check
%make_build check

%files -n libThePEG%{sonum}
%doc AUTHORS GUIDELINES ChangeLog NEWS README
%license COPYING
%config %{_sysconfdir}/ld.so.conf.d/%{name}%{sonum}.conf
%dir %{_libdir}/%{name}/
%{_libdir}/%{name}/*.so.%{sonum}*

%files devel
%{_bindir}/runThePEG
%{_bindir}/setupThePEG
%{_bindir}/thepeg-config
%{_includedir}/%{name}/
%dir %{_libdir}/%{name}/
%{_libdir}/%{name}/*.so
%{_libdir}/%{name}/Makefile
%{_libdir}/%{name}/Makefile.common
%{_libdir}/%{name}/ThePEGDefaults-%{version}.rpo
%{_libdir}/%{name}/ThePEGDefaults.rpo
%{_libdir}/%{name}/runThePEG-%{version}
%{_libdir}/%{name}/setupThePEG-%{version}
%{_datadir}/%{name}/
%if %{with java}
%{_bindir}/thepeg
%{_libdir}/%{name}/ThePEG.jar
%endif

%changelog
openSUSE Build Service is sponsored by