467 lines
13 KiB
RPMSpec
467 lines
13 KiB
RPMSpec
|
|
# comment out snap if building a real release
|
|
%define name torque
|
|
%define version 2.1.0p0
|
|
#%%define snap 200604251602
|
|
%define release 1
|
|
|
|
# The following options are supported:
|
|
# --with server_name=hostname
|
|
# --with homedir=directory
|
|
# --with[out] rcp
|
|
# --with[out] gui
|
|
# --with[out] tcl
|
|
|
|
|
|
# Hrm, should we default to the name of the buildhost? That seems only
|
|
# slightly better than picking a hostname at random. This is exactly the kind
|
|
# of compile-time default that doesn't work well with distributable packages.
|
|
# Let's force the issue with the non-sensical "localhost".
|
|
#
|
|
# Note that "localhost" doesn't actually work. You must either define the
|
|
# correct hostname here, pass '--with server_name=foo' to rpmbuild, or be sure
|
|
# that $PBS_SERVER_HOME/server_name contains the correct hostname.
|
|
%define server_name localhost
|
|
|
|
# change as you wish
|
|
%define use_rcp 0
|
|
%define use_tcl 1
|
|
%define build_gui 1
|
|
|
|
# these are non-defaults, but fit better into most RPM-based systems
|
|
%define torquehomedir %_localstatedir/torque
|
|
|
|
|
|
|
|
# --with/--without processing
|
|
# first, error if conflicting options are used
|
|
%{?_with_rcp: %{?_without_rcp: %{error: both _with_rcp and _without_rcp}}}
|
|
%{?_with_tcl: %{?_without_tcl: %{error: both _with_tcl and _without_tcl}}}
|
|
%{?_with_gui: %{?_without_gui: %{error: both _with_gui and _without_gui}}}
|
|
|
|
# did we find any --with options?
|
|
%{?_with_rcp: %define use_rcp 1}
|
|
%{?_with_tcl: %define use_tcl 1}
|
|
%{?_with_gui: %define build_gui 1}
|
|
|
|
%{?_with_server_name:%define server_name %(set -- %{_with_server_name}; echo $1 | grep -v with | sed 's/=//')}
|
|
%{?_with_homedir:%define torquehomedir %(set -- %{_with_homedir}; echo $1 | grep -v with | sed 's/=//')}
|
|
|
|
# did we find any --without options?
|
|
%{?_without_rcp: %define use_rcp 0}
|
|
%{?_without_tcl: %define use_tcl 0}
|
|
%{?_without_gui: %define build_gui 0}
|
|
|
|
# Set up all options as disabled
|
|
%define rcpflags --with-rcp=/usr/bin/scp
|
|
%define tclflags --without-tcl
|
|
%define guiflags --disable-gui
|
|
|
|
# Enable options that we want
|
|
%if %use_rcp
|
|
%define rcpflags --with-rcp=mom_rcp
|
|
%endif
|
|
|
|
%if %build_gui
|
|
%define guiflags --enable-gui
|
|
%endif
|
|
|
|
%if %use_tcl
|
|
%if %build_gui
|
|
%define tclflags --with-tcl --with-tk
|
|
%else
|
|
%define tclflags --with-tcl --without-tk
|
|
%endif
|
|
%endif
|
|
|
|
# finish up the configs...
|
|
%define server_nameflags --with-default-server=%{server_name}
|
|
|
|
|
|
%define shared_description %(echo -e "TORQUE (Tera-scale Open-source Resource and QUEue manager) is a resource \\nmanager providing control over batch jobs and distributed compute nodes. \\nTORQUE is based on OpenPBS version 2.3.12 and incorporates scalability, \\nfault tolerance, and feature extension patches provided by USC, NCSA, OSC, \\nthe U.S. Dept of Energy, Sandia, PNNL, U of Buffalo, TeraGrid, and many \\nother leading edge HPC organizations.\\n\\nThis build was configured with:\\n %{server_nameflags}\\n %{tclflags}\\n %{guiflags}\\n %{rcpflags}\\n")
|
|
|
|
|
|
Summary: Tera-scale Open-source Resource and QUEue manager
|
|
Name: %{name}
|
|
Version: %{version}
|
|
Release: %{?snap:0.%{release}.%{snap}cvs}%{!?snap:%{release}}%{?dist}
|
|
Source: torque-%{version}%{?snap:-snap.%snap}.tar.gz
|
|
Source2: xpbs.desktop
|
|
Source3: xpbsmon.desktop
|
|
Source4: xpbs.png
|
|
Source5: xpbsmon.png
|
|
Patch1: torque-2.1.0-remove-rpath.path
|
|
License: Freely redistributable (See PBS_License.txt)
|
|
Group: System Environment/Daemons
|
|
URL: http://www.clusterresources.com/products/torque/
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
Provides: pbs
|
|
BuildRequires: desktop-file-utils
|
|
Conflicts: pbspro, openpbs, openpbs-oscar
|
|
|
|
%if %use_tcl
|
|
BuildRequires: tcl-devel
|
|
%endif
|
|
%if %build_gui
|
|
BuildRequires: tk-devel
|
|
%else
|
|
Obsoletes: torque-gui
|
|
%endif
|
|
%if ! %use_rcp
|
|
Requires: openssh-clients
|
|
%endif
|
|
|
|
%description
|
|
%shared_description
|
|
This package holds just a few shared files and directories.
|
|
|
|
|
|
%prep
|
|
%setup -q -n torque-%{version}%{?snap:-snap.%snap}
|
|
%patch1 -p1
|
|
|
|
%__cp -p %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} .
|
|
|
|
|
|
%build
|
|
%configure --includedir=%{_includedir}/torque --with-server-home=%{torquehomedir} \
|
|
%{server_nameflags} %{guiflags} %{tclflags} %{rcpflags}
|
|
|
|
%__make %{?_smp_mflags}
|
|
|
|
|
|
|
|
%install
|
|
%__rm -rf "$RPM_BUILD_ROOT"
|
|
%__make DESTDIR=$RPM_BUILD_ROOT install
|
|
|
|
# remove files we don't need
|
|
%__rm -f $RPM_BUILD_ROOT/%_libdir/*.la
|
|
%__rm -f $RPM_BUILD_ROOT/%_libdir/*/buildindex
|
|
|
|
# install initscripts
|
|
%__mkdir_p $RPM_BUILD_ROOT%{_initrddir}
|
|
for daemon in pbs_mom pbs_sched pbs_server; do
|
|
%__sed -e 's|^PBS_HOME=.*|PBS_HOME=%{torquehomedir}|' \
|
|
-e 's|^PBS_DAEMON=.*|PBS_DAEMON=%{_sbindir}/'$daemon'|' \
|
|
-e 's|chkconfig: 345|chkconfig: -|' \
|
|
< contrib/init.d/$daemon > $RPM_BUILD_ROOT%{_initrddir}/$daemon
|
|
%__chmod 755 $RPM_BUILD_ROOT%{_initrddir}/$daemon
|
|
done
|
|
|
|
%if %{build_gui}
|
|
# This is really trivial, but cleans up an rpmlint warning
|
|
%__sed -i -e 's|%_lib/../||' $RPM_BUILD_ROOT%{_bindir}/xpbs
|
|
|
|
# install .desktop files and my ugly icons
|
|
desktop-file-install --vendor fedora \
|
|
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
|
|
--add-category X-Fedora \
|
|
xpbs.desktop
|
|
desktop-file-install --vendor fedora \
|
|
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
|
|
--add-category X-Fedora \
|
|
xpbsmon.desktop
|
|
%__install -d $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
|
%__install -p -m0644 xpbs.png xpbsmon.png $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
|
|
|
%endif
|
|
|
|
|
|
%clean
|
|
%__rm -rf "$RPM_BUILD_ROOT"
|
|
|
|
|
|
%post
|
|
if %__grep -q "PBS services" /etc/services;then
|
|
: PBS services already installed
|
|
else
|
|
cat<<-__EOF__>>/etc/services
|
|
# Standard PBS services
|
|
pbs 15001/tcp # pbs server (pbs_server)
|
|
pbs 15001/udp # pbs server (pbs_server)
|
|
pbs_mom 15002/tcp # mom to/from server
|
|
pbs_mom 15002/udp # mom to/from server
|
|
pbs_resmom 15003/tcp # mom resource management requests
|
|
pbs_resmom 15003/udp # mom resource management requests
|
|
pbs_sched 15004/tcp # scheduler
|
|
pbs_sched 15004/udp # scheduler
|
|
__EOF__
|
|
fi
|
|
|
|
|
|
%files
|
|
%defattr(-, root, root)
|
|
%doc README.torque torque.setup Release_Notes CHANGELOG PBS_License.txt
|
|
%config(noreplace) %{torquehomedir}/pbs_environment
|
|
%config(noreplace) %{torquehomedir}/server_name
|
|
%{torquehomedir}/aux
|
|
%{torquehomedir}/spool
|
|
|
|
|
|
%package docs
|
|
Group: Documentation
|
|
Summary: Documentation files for TORQUE
|
|
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
Provides: pbs-docs
|
|
%description docs
|
|
%shared_description
|
|
This package holds the documentation files.
|
|
|
|
%files docs
|
|
%defattr(-, root, root)
|
|
%doc doc/admin_guide.ps
|
|
%{_mandir}/man*/*
|
|
|
|
|
|
%package scheduler
|
|
Group: System Environment/Daemons
|
|
Summary: Simple fifo scheduler for TORQUE
|
|
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
Provides: pbs-scheduler
|
|
%description scheduler
|
|
%shared_description
|
|
This package holds the fifo C scheduler.
|
|
|
|
%files scheduler
|
|
%defattr(-, root, root)
|
|
%attr(0755, root, root) %{_sbindir}/pbs_sched
|
|
%{_initrddir}/pbs_sched
|
|
%dir %{torquehomedir}/sched_priv
|
|
%config(noreplace) %{torquehomedir}/sched_priv/*
|
|
%{torquehomedir}/sched_logs
|
|
|
|
%post scheduler
|
|
/sbin/chkconfig --add pbs_sched
|
|
|
|
%preun scheduler
|
|
if [ $1 -eq 0 ]; then
|
|
/sbin/service pbs_sched stop
|
|
/sbin/chkconfig --del pbs_sched
|
|
fi
|
|
|
|
|
|
%package server
|
|
Group: System Environment/Daemons
|
|
Summary: The main part of TORQUE
|
|
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
Provides: pbs-server
|
|
%description server
|
|
%shared_description
|
|
This package holds the server.
|
|
|
|
%files server
|
|
%defattr(-, root, root)
|
|
%attr(0755, root, root) %{_sbindir}/pbs_server
|
|
%attr(0755, root, root) %{_sbindir}/momctl
|
|
%{_initrddir}/pbs_server
|
|
%{torquehomedir}/server_logs
|
|
%{torquehomedir}/server_priv
|
|
|
|
%post server
|
|
/sbin/chkconfig --add pbs_server
|
|
|
|
%preun server
|
|
if [ $1 -eq 0 ]; then
|
|
/sbin/service pbs_server stop
|
|
/sbin/chkconfig --del pbs_server
|
|
fi
|
|
|
|
|
|
%package mom
|
|
Group: System Environment/Daemons
|
|
Summary: Node execution daemon for TORQUE
|
|
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
Provides: pbs-mom
|
|
%description mom
|
|
%shared_description
|
|
This package holds the execute daemon required on every node.
|
|
|
|
%files mom
|
|
%defattr(-, root, root)
|
|
%attr(0755, root, root) %{_sbindir}/pbs_mom
|
|
%{_initrddir}/pbs_mom
|
|
%if %{use_rcp}
|
|
%attr(4755 root root) %{_sbindir}/pbs_rcp
|
|
%endif
|
|
%{torquehomedir}/mom_priv/*
|
|
%{torquehomedir}/mom_logs
|
|
%{torquehomedir}/checkpoint
|
|
%{torquehomedir}/undelivered
|
|
|
|
%post mom
|
|
/sbin/chkconfig --add pbs_mom
|
|
|
|
%preun mom
|
|
if [ $1 -eq 0 ]; then
|
|
/sbin/service pbs_mom stop
|
|
/sbin/chkconfig --del pbs_mom
|
|
fi
|
|
|
|
|
|
%package client
|
|
Group: Applications/System
|
|
Summary: Client part of TORQUE
|
|
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
Provides: pbs-client
|
|
%description client
|
|
%shared_description
|
|
This package holds the command-line client programs.
|
|
|
|
%files client
|
|
%defattr(-, root, root)
|
|
%{_bindir}/q*
|
|
%{_bindir}/chk_tree
|
|
%{_bindir}/hostn
|
|
%{_bindir}/nqs2pbs
|
|
%{_bindir}/pbsdsh
|
|
%{_bindir}/pbsnodes
|
|
%{_bindir}/printjob
|
|
%{_bindir}/printtracking
|
|
%{_bindir}/tracejob
|
|
%attr(4755 root root) %{_sbindir}/pbs_iff
|
|
%{_sbindir}/pbs_demux
|
|
%if %use_tcl
|
|
%{_bindir}/pbs_tclsh
|
|
%endif
|
|
|
|
%package gui
|
|
Group: Applications/System
|
|
Summary: Graphical clients for TORQUE
|
|
Requires: %{name}-client = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
Provides: xpbs xpbsmon
|
|
%description gui
|
|
%shared_description
|
|
This package holds the graphical clients.
|
|
|
|
|
|
%if %{build_gui}
|
|
%files gui
|
|
%defattr(-, root, root)
|
|
%{_bindir}/pbs_wish
|
|
%{_bindir}/xpbs
|
|
%{_bindir}/xpbsmon
|
|
%{_libdir}/xpbs
|
|
%{_libdir}/xpbsmon
|
|
%{_datadir}/applications/*.desktop
|
|
%{_datadir}/pixmaps/*.png
|
|
%endif
|
|
|
|
|
|
%package localhost
|
|
Group: Applications/System
|
|
Summary: Installs and configures a minimal localhost-only batch queue system
|
|
Requires(post): %{name}-mom %{name}-server %{name}-client %{name}-scheduler
|
|
|
|
%description localhost
|
|
%shared_description
|
|
This package installs and configures a minimal localhost-only batch queue
|
|
system.
|
|
|
|
%files localhost
|
|
%defattr(-, root, root)
|
|
%pre localhost
|
|
if [ -f %{torquehomedir}/server_priv/serverdb ];then
|
|
echo "This package wipes out the existing server configuration. Remove" 1>&2
|
|
echo "%{torquehomedir}/server_priv/serverdb if you really want this." 1>&2
|
|
exit 1
|
|
fi
|
|
%post localhost
|
|
/sbin/chkconfig pbs_mom on
|
|
/sbin/chkconfig pbs_server on
|
|
/sbin/chkconfig pbs_sched on
|
|
/bin/hostname --long > %{torquehomedir}/server_priv/nodes
|
|
/bin/hostname --long > %{torquehomedir}/server_name
|
|
/bin/hostname --long > %{torquehomedir}/mom_priv/config
|
|
pbs_server -t create
|
|
qmgr -c "s s scheduling=true"
|
|
qmgr -c "c q batch queue_type=execution"
|
|
qmgr -c "s q batch started=true"
|
|
qmgr -c "s q batch enabled=true"
|
|
qmgr -c "s q batch resources_default.nodes=1"
|
|
qmgr -c "s q batch resources_default.walltime=3600"
|
|
qmgr -c "s s default_queue=batch"
|
|
%{_initrddir}/pbs_mom restart
|
|
%{_initrddir}/pbs_sched restart
|
|
%{_initrddir}/pbs_server restart
|
|
qmgr -c "s n `/bin/hostname --long` state=free" -e
|
|
|
|
|
|
%package -n lib%{name}
|
|
Summary: Run-time libs for programs which will use the %{name} library
|
|
Group: Development/Libraries
|
|
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
|
|
%description -n lib%{name}
|
|
%shared_description
|
|
This package includes the shared libraries
|
|
necessary for running TORQUE programs.
|
|
|
|
%files -n lib%{name}
|
|
%defattr(-, root, root)
|
|
%{_libdir}/*.so.*
|
|
|
|
%post -n lib%{name} -p /sbin/ldconfig
|
|
%postun -n lib%{name} -p /sbin/ldconfig
|
|
|
|
%package -n lib%{name}-devel
|
|
Summary: Development tools for programs which will use the %{name} library
|
|
Group: Development/Libraries
|
|
Requires: lib%{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
|
|
%description -n lib%{name}-devel
|
|
%shared_description
|
|
This package includes the header files and static libraries
|
|
necessary for developing programs which will use %{name}.
|
|
|
|
%files -n lib%{name}-devel
|
|
%defattr(-, root, root)
|
|
%{_libdir}/*.a
|
|
%{_libdir}/*.so
|
|
%{_includedir}/torque
|
|
%{_bindir}/pbs-config
|
|
|
|
|
|
%changelog
|
|
* Thu May 11 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-1
|
|
- bump to final release
|
|
|
|
* Tue Apr 25 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.11.200604251602cvs
|
|
- bump to fix "mem" job resources for non-serial jobs
|
|
- rm.h is now installed
|
|
|
|
* Fri Apr 21 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.10.200604211036cvs
|
|
- bump
|
|
|
|
* Fri Apr 21 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.9.200604171430cvs
|
|
- fix qsub write return check
|
|
|
|
* Thu Apr 20 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.8.200604171430cvs
|
|
- fix pbs_sched error opening lockfile and immediately exiting
|
|
|
|
* Mon Apr 17 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.7.200604171430cvs
|
|
- importing to fedora extras
|
|
|
|
* Mon Apr 17 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.6.200604171430cvs
|
|
- add %%{dist} tag
|
|
- cleanup the cleanups in spec
|
|
- bump to matching upstream
|
|
- move headers to /usr/include/torque/
|
|
|
|
* Wed Apr 12 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.5.200604071240cvs
|
|
- remove rpath
|
|
|
|
* Tue Apr 11 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.4.200604071240cvs
|
|
- fix release string to match fedora guidelines
|
|
|
|
* Fri Apr 7 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.3.200604071240
|
|
- spec and initscript cleanups
|
|
|
|
* Wed Apr 5 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.2.200604051756
|
|
- add .desktop files
|
|
|
|
* Wed Apr 5 2006 Garrick Staples <garrick@usc.edu> 2.1.0p0-0.1.200604051756
|
|
- Initial package for Fedora Extras
|
|
|
|
|