171 lines
6.4 KiB
RPMSpec
171 lines
6.4 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.4
|
|
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: make
|
|
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@:${HOME}/.cache/Pmodules/distfiles:g;"
|
|
sed_cmd+="s:@INSTALL_ROOT@:/opt/psi:g;"
|
|
sed_cmd+="s:@PREFIX@:%{_prefix}: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"
|
|
sed "${sed_cmd}" "%{builddir}/config/pmodules.sh.in" > "%{builddir}/config/pmodules.sh"
|
|
|
|
#------------------------------------------------------------------------
|
|
# 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/Pmodules.yaml.sample
|
|
install -m 0644 %{builddir}/config/pmodules.sh %{prefix}/share/Pmodules/init/pmodules.sh
|
|
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
|
|
ln -sf /etc/Pmodules.yaml %{prefix}/share/Pmodules/config/Pmodules.yaml
|
|
|
|
#------------------------------------------------------------------------
|
|
# f i l e s
|
|
%files
|
|
%defattr(-,root,root)
|
|
%dir %_prefix/share/Pmodules
|
|
%dir %_prefix/share/Pmodules/config
|
|
%_prefix/share/Pmodules/bin
|
|
%_prefix/share/Pmodules/config
|
|
%_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/pmodules.sh 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/pmodules.sh
|
|
fi
|
|
|
|
#------------------------------------------------------------------------
|
|
# p r e - u n i n s t a l l
|
|
|
|
#------------------------------------------------------------------------
|
|
# c h a n g e l o g
|
|
%changelog
|
|
* Fri Nov 28 2025 Achim Gsell <achim.gsell@psi.ch>
|
|
- Pmodules version 2.0.3
|
|
- untabify spec file
|
|
- default directory for downloaded files (PMODULES_DISTFILESDIR) is now
|
|
${HOME}/.cache/Pmodules/distfiles
|
|
- shell profile: don't initialize Pmodules if UID is less then 1000
|
|
* Mon Nov 3 2025 Achim Gsell <achim.gsell@psi.ch>
|
|
- Pmodules 2.0.2
|
|
- %_prefix/share/Pmodules/config/Pmodules.yaml is now a sym-link to /etc/Pmodules.yaml
|
|
- install sample config file as %_prefix/share/Pmodules/config/Pmodules.yaml.sample
|
|
* Wed Aug 6 2025 Achim Gsell <achim.gsell@psi.ch>
|
|
initial version
|
|
|
|
# vim: ts=8 ft=spec
|