Files
RPM/Pmodules.spec
T
ebner 57e30ec138
Build and Publish RPM / build-and-publish (push) Successful in 2m25s
remove tests
2025-10-06 10:01:03 +02:00

159 lines
5.7 KiB
RPMSpec

#
# File hierarchy:
#
# /etc/Pmodules
# /etc/profile.d
# /usr/bin/
# /usr/share/Pmodules/bin
# /usr/share/Pmodules/libexec
# /usr/share/Pmodules/lib
# /usr/share/Pmodules/init
# /usr/share/doc/Pmodules
# /usr/share/licenses/Pmodules
Name: Pmodules
Version: 2.0.1
Release: 1%{?dist}
Summary: PSI module system
Group: System Environment/Daemons
License: GPL
URL: https://pmodules.gitpages.psi.ch
Packager: Achim Gsell <achim.gsell@psi.ch>
Vendor: Paul Scherrer Institut
%define modules_version 3.2.10.2
Requires: lua
Requires: luarocks
Requires: lua-posix
Requires: tcl
Requires: tcllib
Requires: Lmod
Requires: p7zip
Requires: patchelf
Requires: Pmodules_bash
Requires: Pmodules_modules = 3.2.10.2
Provides: Pmodules
conflicts: environment_modules
Source0: https://github.com/Pmodules/Pmodules/archive/refs/tags/%{version}.tar.gz
%description
Pmodules
#------------------------------------------------------------------------
# d e f i n i t i o n s
#
%define debug_package %nil
%define _prefix /usr
%define prefix %{buildroot}/%{_prefix}
%define builddir %{_builddir}/%{name}-%{version}
#------------------------------------------------------------------------
# p r e p
%prep
%setup -b 0 -q -n Pmodules-%{version}
#------------------------------------------------------------------------
# b u i l d
%build
sed_cmd=''
sed_cmd+="s:@PMODULES_VERSION@:%{version}:g;"
sed_cmd+="s:@MODULES_VERSION@:%{modules_version}:g;"
sed_cmd+="s:@TCL_VERSION@:8.6:g;"
sed_cmd+="s:@PMODULES_TMPDIR@:/var/tmp/${USER}:g;"
sed_cmd+="s:@PMODULES_DISTFILESDIR@:/var/cache/Pmodules/distfiles:g;"
sed_cmd+="s:@INSTALL_ROOT@:/opt/psi:g;"
libexec_dir='/usr/share/Pmodules/libexec'
sed_cmd+="s:@BASH@:${libexec_dir}/bash:g;"
sed_cmd+="s:@MODULECMD@:${libexec_dir}/modulecmd.bash:g;"
sed "${sed_cmd}" "%{builddir}/Pmodules/modulecmd.in" > "%{builddir}/Pmodules/modulecmd"
sed "${sed_cmd}" "%{builddir}/Pmodules/modulecmd.bash.in" > "%{builddir}/Pmodules/modulecmd.bash"
sed "${sed_cmd}" "%{builddir}/Pmodules/libpmodules.bash.in" > "%{builddir}/Pmodules/libpmodules.bash"
sed "${sed_cmd}" "%{builddir}/Pmodules/modbuild.in" > "%{builddir}/Pmodules/modbuild"
sed "${sed_cmd}" "%{builddir}/config/Pmodules.yaml.in" > "%{builddir}/config/Pmodules.yaml"
#------------------------------------------------------------------------
# i n s t a l l
%install
mkdir -p %{prefix}/share/Pmodules/bin
mkdir -p %{prefix}/share/Pmodules/config
mkdir -p %{prefix}/share/Pmodules/libexec
mkdir -p %{prefix}/share/Pmodules/lib/Pmodules
mkdir -p %{prefix}/share/Pmodules/init
mkdir -p %{prefix}/share/doc/Pmodules
mkdir -p %{prefix}/share/licenses/Pmodules
install -m 0644 %{builddir}/LICENSE %{prefix}/share/licenses/Pmodules
install -m 0644 %{builddir}/CHANGELOG.md %{prefix}/share/doc/Pmodules
install -m 0644 %{builddir}/config/Pmodules.yaml %{prefix}/share/Pmodules/config
install -m 0755 %{builddir}/Pmodules/modulecmd %{prefix}/share/Pmodules/bin
install -m 0755 %{builddir}/Pmodules/modbuild %{prefix}/share/Pmodules/bin
install -m 0644 %{builddir}/Pmodules/libpmodules.bash %{prefix}/share/Pmodules/lib
install -m 0644 %{builddir}/Pmodules/libpbuild.bash %{prefix}/share/Pmodules/lib
install -m 0644 %{builddir}/Pmodules/libstd.bash %{prefix}/share/Pmodules/lib
install -m 0644 %{builddir}/Pmodules/libmodules.tcl %{prefix}/share/Pmodules/lib/Pmodules
install -m 0644 %{builddir}/tclIndex %{prefix}/share/Pmodules/lib/Pmodules
install -m 0755 %{builddir}/Pmodules/modulecmd.bash %{prefix}/share/Pmodules/libexec
install -m 0755 %{builddir}/Pmodules/yq.x86_64_Linux %{prefix}/share/Pmodules/libexec/yq
install -m 0644 %{builddir}/Pmodules/bash %{prefix}/share/Pmodules/init
install -m 0644 %{builddir}/Pmodules/bash_completion %{prefix}/share/Pmodules/init
install -m 0644 %{builddir}/Pmodules/csh %{prefix}/share/Pmodules/init
install -m 0644 %{builddir}/Pmodules/zsh %{prefix}/share/Pmodules/init
ln -sf /usr/bin/7za %{prefix}/share/Pmodules/libexec/sevenz
echo -e "#!/bin/sh\n\n" > %{prefix}/share/Pmodules/init/profile
echo -e "source %{_prefix}/share/Pmodules/init/bash\n" > %{prefix}/share/Pmodules/init/profile
#------------------------------------------------------------------------
# f i l e s
%files
%defattr(-,root,root)
%dir %_prefix/share/Pmodules
%dir %_prefix/share/Pmodules/config
%config(noreplace) %_prefix/share/Pmodules/config/Pmodules.yaml
%_prefix/share/Pmodules/bin
%_prefix/share/Pmodules/lib
%_prefix/share/Pmodules/libexec
%_prefix/share/Pmodules/init
%doc CHANGELOG.md
%{_prefix}/share/licenses/Pmodules
#------------------------------------------------------------------------
# c l e a n u p
%clean
%__rm -rf %buildroot
#------------------------------------------------------------------------
# p o s t - i n s t a l l
%post
# Cleanup from pre-alternatives
[ ! -L /etc/profile.d/modules.sh ] && rm -f /etc/profile.d/modules.sh
/usr/sbin/update-alternatives --install /etc/profile.d/modules.sh modules.sh \
/usr/share/Pmodules/init/profile 30
#------------------------------------------------------------------------
# t r i g g e r i n
#------------------------------------------------------------------------
# p o s t - u n i n s t a l l
%postun
if [ $1 -eq 0 ] ; then
/usr/sbin/update-alternatives --remove modules.sh /usr/share/Pmodules/init/profile
fi
#------------------------------------------------------------------------
# p r e - u n i n s t a l l
#------------------------------------------------------------------------
# c h a n g e l o g
%changelog
* Wed Aug 6 2025 Achim Gsell <achim.gsell@psi.ch - 5.2.37
initial version
# vim: ts=8 ft=spec