[environment-modules] Use alternatives for /etc/profile.d/modules.{csh, sh} Add /usr/share/modulefiles to MODULEPATH Add rp

Orion Poplawski orion at fedoraproject.org
Mon Apr 14 22:37:24 UTC 2014


commit d0cb1d96c135335d62f1b508bd6a973ca969e9d8
Author: Orion Poplawski <orion at cora.nwra.com>
Date:   Mon Apr 14 16:37:13 2014 -0600

    Use alternatives for /etc/profile.d/modules.{csh,sh}
    Add /usr/share/modulefiles to MODULEPATH
    Add rpm macro to define %_modulesdir

 environment-modules.spec   |   41 +++++++++++++++++++++++++++++++++++------
 macros.environment-modules |    3 +++
 2 files changed, 38 insertions(+), 6 deletions(-)
---
diff --git a/environment-modules.spec b/environment-modules.spec
index d9b81bd..ad630f7 100644
--- a/environment-modules.spec
+++ b/environment-modules.spec
@@ -1,6 +1,8 @@
+%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
+
 Name:           environment-modules
 Version:        3.2.10
-Release:        8%{?dist}
+Release:        9%{?dist}
 Summary:        Provides dynamic modification of a user's environment
 
 Group:          System Environment/Base
@@ -10,6 +12,7 @@ Source0:        http://downloads.sourceforge.net/modules/modules-%{version}.tar.
 Source1:        modules.sh
 Source2:        createmodule.sh
 Source3:        createmodule.py
+Source4:        macros.%{name}
 Patch0:         environment-modules-3.2.7-bindir.patch
 # Comment out stray module use in modules file when not using versioning
 # https://bugzilla.redhat.com/show_bug.cgi?id=895555
@@ -29,6 +32,9 @@ BuildRequires:  dejagnu
 BuildRequires:  man
 #For ps in startup script
 Requires:       procps
+Requires(post): %{_sbindir}/update-alternatives
+Requires(postun): %{_sbindir}/update-alternatives
+Provides:	environment(modules)
 
 %description
 The Environment Modules package provides for the dynamic modification of
@@ -69,7 +75,7 @@ have access to the module alias.
            --prefix=%{_datadir} \
            --exec-prefix=%{_datadir}/Modules \
            --with-man-path=$(manpath) \
-           --with-module-path=%{_sysconfdir}/modulefiles
+           --with-module-path=%{_sysconfdir}/modulefiles:%{_datadir}/modulefiles
 #           --with-debug=42 --with-log-facility-debug=stderr
 make %{?_smp_mflags}
 
@@ -77,20 +83,36 @@ make %{?_smp_mflags}
 %install
 make install DESTDIR=$RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
-cp -p %SOURCE1 $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/modules.sh
+touch %{buildroot}%{_sysconfdir}/profile.d/modules.{csh,sh}
+cp -p %SOURCE1 $RPM_BUILD_ROOT%{_datadir}/Modules/init/modules.sh
 cp -p %SOURCE2 %SOURCE3 $RPM_BUILD_ROOT%{_datadir}/Modules/bin
-ln -s %{_datadir}/Modules/init/csh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/modules.csh
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/modulefiles
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/modulefiles \
+         $RPM_BUILD_ROOT%{_datadir}/modulefiles
+# Install the rpm config file
+install -Dpm 644 %{SOURCE4} %{buildroot}/%{macrosdir}/macros.%{name}
 
 
 %check
 make test
 
 
+%post
+# Cleanup from pre-alternatives
+[ ! -L %{_bindir}/modules.sh ] && rm -f %{_sysconfdir}/profile.d/modules.sh
+%{_sbindir}/update-alternatives --install %{_sysconfdir}/profile.d/modules.sh modules.sh %{_datadir}/Modules/init/modules.sh 40 \
+                                --slave %{_sysconfdir}/profile.d/modules.csh modules.csh %{_datadir}/Modules/init/csh
+
+%postun
+if [ $1 -eq 0 ] ; then
+  %{_sbindir}/update-alternatives --remove modules.sh %{_datadir}/Modules/init/modules.sh
+fi
+
+
 %files
 %doc LICENSE.GPL README TODO
 %{_sysconfdir}/modulefiles
-%config(noreplace) %{_sysconfdir}/profile.d/*
+%ghost %{_sysconfdir}/profile.d/modules.csh
+%ghost %{_sysconfdir}/profile.d/modules.sh
 %{_bindir}/modulecmd
 %dir %{_datadir}/Modules
 %{_datadir}/Modules/bin/
@@ -98,11 +120,18 @@ make test
 %config(noreplace) %{_datadir}/Modules/init/*
 %config(noreplace) %{_datadir}/Modules/init/.modulespath
 %{_datadir}/Modules/modulefiles
+%{_datadir}/modulefiles
 %{_mandir}/man1/module.1.gz
 %{_mandir}/man4/modulefile.4.gz
+%{macrosdir}/macros.%{name}
 
 
 %changelog
+* Mon Apr 14 2014 Orion Poplawski <orion at cora.nwra.com> - 3.2.10-9
+- Use alternatives for /etc/profile.d/modules.{csh,sh}
+- Add /usr/share/modulefiles to MODULEPATH
+- Add rpm macro to define %%_modulesdir
+
 * Mon Dec 23 2013 Orion Poplawski <orion at cora.nwra.com> - 3.2.10-8
 - Fix -Werror=format-security (bug #1037053)
 
diff --git a/macros.environment-modules b/macros.environment-modules
new file mode 100644
index 0000000..e3592a8
--- /dev/null
+++ b/macros.environment-modules
@@ -0,0 +1,3 @@
+# RPM macros for environment modules
+
+%_modulesdir %{_datadir}/modulefiles


More information about the scm-commits mailing list