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
openSUSE Build Service is sponsored by