File geant4-data.spec of Package geant4-data-template
%define g4DataName %%CURRENT_BUILDING_G4DATA%%
%define g4DataVersion %%CURRENT_G4DATA_VERSION%%
%define g4DataPreviousVersion %%PREVIOUS_G4DATA_VERSION%%
%if "%{g4DataPreviousVersion}" == "initial"
%define with_MultiVersionBuild 0
%else
%define with_MultiVersionBuild 1
%endif
%define g4Name geant4
%define g4NameData %{g4Name}-data
%define g4InstallRoot /opt/%{g4Name}
%define g4DataPath %{g4InstallRoot}/%{g4NameData}
Name: %{g4NameData}-%{g4DataName}-%{g4DataVersion}
Version: %{g4DataVersion}
Release: 0
Group: Productivity/Scientific/Physics
Summary: Geant4 data files for %%G4DATA_DESCRIPTION%%
License: BSD-4-Clause
Url: https://geant4.web.cern.ch/
BuildArch: noarch
Source0: geant4-data.tar.gz
Source1: my-fdupes.sh
Conflicts: %{name}-multi-version
BuildRequires: fdupes
%description
Data files for %%G4DATA_DESCRIPTION%%, to be used by Geant4
%if %{with_MultiVersionBuild}
%define g4PreviousVersionDataName %{g4NameData}-%{g4DataName}-%{g4DataPreviousVersion}
%package multi-version
Group: Productivity/Scientific/Physics
Summary: Multi Geant4 versions data files for %%G4DATA_DESCRIPTION%%
License: BSD-4-Clause
Url: https://geant4.web.cern.ch/
BuildArch: noarch
Conflicts: %{name}
BuildRequires: %{g4PreviousVersionDataName}
Requires: (%{g4PreviousVersionDataName}-multi-version or %{g4PreviousVersionDataName})
BuildRequires: fdupes
%description multi-version
Data files for %%G4DATA_DESCRIPTION%%, to be used when installing multiple versions of Geant4
%endif
###############################################################################################################################
%prep
cp %{SOURCE1} ./
chmod +x ./my-fdupes.sh
%build
%install
%if %{with_MultiVersionBuild}
[ ! -d %{buildroot}/%{g4DataPath}/%{g4DataName}%{g4DataVersion}-multi ] && install -d %{buildroot}/%{g4DataPath}/%{g4DataName}%{g4DataVersion}-multi
tar --strip-components=1 -xzf %{_sourcedir}/*.tar.gz -C %{buildroot}/%{g4DataPath}/%{g4DataName}%{g4DataVersion}-multi/
cp -r %{g4DataPath}/%{g4DataName}%{g4DataPreviousVersion} %{buildroot}/%{g4DataPath}/
./my-fdupes.sh "%{buildroot}/%{g4DataPath}" "%{g4DataName}%{g4DataVersion}-multi"
rm -rf %{buildroot}/%{g4DataPath}/%{g4DataName}%{g4DataPreviousVersion}
%fdupes -s %{buildroot}/%{g4DataPath}/%{g4DataName}%{g4DataVersion}-multi
%endif
[ ! -d %{buildroot}/%{g4DataPath}/%{g4DataName}%{g4DataVersion} ] && install -d %{buildroot}/%{g4DataPath}/%{g4DataName}%{g4DataVersion}
tar --strip-components=1 -xzf %{_sourcedir}/*.tar.gz -C %{buildroot}/%{g4DataPath}/%{g4DataName}%{g4DataVersion}/
find %{buildroot}/%{g4DataPath} -name ".DS_Store" -delete -print
find %{buildroot}/%{g4DataPath} -name "*.swp" -delete -print
%fdupes -s %{buildroot}/%{g4DataPath}/%{g4DataName}%{g4DataVersion}
%if %{with_MultiVersionBuild}
%post multi-version
if [ ! -d %{g4DataPath}/%{g4DataName}%{g4DataVersion} ] && [ -d %{g4DataPath}/%{g4DataName}%{g4DataVersion}-multi ] ; then
ln -s %{g4DataPath}/%{g4DataName}%{g4DataVersion}-multi %{g4DataPath}/%{g4DataName}%{g4DataVersion}
fi
%preun multi-version
if [ ! -d %{g4DataPath}/%{g4DataName}%{g4DataVersion}-multi ] && [ -h %{g4DataPath}/%{g4DataName}%{g4DataVersion} ] ; then
rm -rf %{g4DataPath}/%{g4DataName}%{g4DataVersion}
fi
%files multi-version
%dir %{g4DataPath}
%dir %{g4DataPath}/%{g4DataName}%{g4DataVersion}-multi
%{g4DataPath}/%{g4DataName}%{g4DataVersion}-multi/*
%endif
%files
%dir %{g4InstallRoot}
%dir %{g4DataPath}
%dir %{g4DataPath}/%{g4DataName}%{g4DataVersion}
%{g4DataPath}/%{g4DataName}%{g4DataVersion}/*
%changelog