xcat-core/xCAT-web/xCAT-web.spec

125 lines
3.7 KiB
RPMSpec
Raw Normal View History

Summary: Web Interface for xCAT
Name: xCAT-web
Version: 2.1
Release: snap%(date +"%Y%m%d%H%M")
Epoch: 4
License: EPL
Group: Applications/System
Source: xCAT-web-2.1.tar.gz
Packager: IBM Corp.
Vendor: IBM Corp.
URL: http://xcat.org
Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}}
Prefix: /opt/xcat
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
BuildArch: noarch
Provides: xCAT-web = %{version}
# httpd is provided by apache2 on SLES and httpd on RHEL
Requires: httpd
# we also require php4-session on SLES, but this does not exist on RHEL, so do not know how to do the Require
%description
Provides a browser-based interface for xCAT (extreme Cluster Administration Tool).
%prep
%setup -q
%build
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{prefix}/web
cp -r * $RPM_BUILD_ROOT%{prefix}/web
chmod 755 $RPM_BUILD_ROOT%{prefix}/web/*
%files
%defattr(-,root,root)
# %defattr( 555, root, root, 755 )
%{prefix}/web
%post
# Post-install script---------------------------------------------------
if [ "$1" = 1 ] # initial install
then
# Set variables for apache because the names vary on redhat and suse
if [ -e "/etc/redhat-release" ]; then
apachedaemon='httpd'
apacheuser='apache'
# todo: change this when switch to xcat 2
echo "Updating apache userid to allow logins..."
cp /etc/passwd /etc/passwd.orig
perl -e 'while (<>) { s,^apache:(.*):/sbin/nologin$,apache:$1:/bin/bash,; print $_; }' /etc/passwd.orig >/etc/passwd
else # SuSE
apachedaemon='apache2'
apacheuser='wwwrun'
fi
# Update the apache config
echo "Updating $apachedaemon configuration for xCAT..."
/bin/rm -f /etc/$apachedaemon/conf.d/xcat-web.conf
/bin/ln -s %{prefix}/web/etc/apache2/conf.d/xcat-web.conf /etc/$apachedaemon/conf.d/xcat-web.conf
/etc/init.d/$apachedaemon reload
# Link to the grpattr cmd. Todo: remove this when it is in base xcat
/bin/rm -f %{prefix}/bin/grpattr
mkdir -p %{prefix}/bin
/bin/ln -s %{prefix}/web/cmds/grpattr %{prefix}/bin/grpattr
# Config sudo. Todo: change this when switch to xcat 2
if ! egrep -q "^$apacheuser ALL=\(ALL\) NOPASSWD:ALL" /etc/sudoers; then
echo "Configuring sudo for $apacheuser..."
echo "$apacheuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
fi
# Authorize the apacheuser to xcatd
# echo -e "y\ny\ny" | %{prefix}/share/xcat/scripts/setup-local-client.sh $apacheuser
# XCATROOT=%{prefix} %{prefix}/sbin/chtab priority=5 policy.name=$apacheuser policy.rule=allow
fi
if [ "$1" = 1 ] || [ "$1" = 2 ] # initial install, or upgrade and this is the newer rpm
then
true
fi
%preun
# Pre-uninstall script -------------------------------------------------
if [ "$1" = 0 ] # final rpm being removed
then
if [ -e "/etc/redhat-release" ]; then
apachedaemon='httpd'
apacheuser='apache'
# Undo change we made to passwd file. Todo: change this when switch to xcat 2
echo "Undoing apache userid login..."
cp /etc/passwd /etc/passwd.tmp
perl -e 'while (<>) { s,^apache:(.*):/bin/bash$,apache:$1:/sbin/nologin,; print $_; }' /etc/passwd.tmp >/etc/passwd
else # SuSE
apachedaemon='apache2'
apacheuser='wwwrun'
fi
# Remove links made during the post install script
echo "Undoing $apachedaemon configuration for xCAT..."
/bin/rm -f /etc/$apachedaemon/conf.d/xcat-web.conf
/etc/init.d/$apachedaemon reload
/bin/rm -f %{prefix}/bin/grpattr
# Remove change we made to sudoers config. Todo: remove this when switch to xcat 2
if egrep -q "^$apacheuser ALL=\(ALL\) NOPASSWD:ALL" /etc/sudoers; then
echo "Undoing sudo configuration for $apacheuser..."
cp -f /etc/sudoers /etc/sudoers.tmp
egrep -v "^$apacheuser ALL=\(ALL\) NOPASSWD:ALL" /etc/sudoers.tmp > /etc/sudoers
rm -f /etc/sudoers.tmp
fi
fi