blob: ffcd24aef9413516984cb0a3001122c4e115ca4d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-cluster/torque/torque-1.2.0_p5.ebuild,v 1.3 2005/09/05 13:21:54 tantive Exp $
inherit flag-o-matic eutils
MY_P="${P/_}"
DESCRIPTION="A freely downloadable cluster resource manager and queuing system based on OpenPBS"
HOMEPAGE="http://www.clusterresources.com/products/torque/"
SRC_URI="http://www.clusterresources.com/downloads/torque/${MY_P}.tar.gz
mirror://gentoo/${PN}-1.2.0_p1-respect-destdir.patch.gz
mirror://gentoo/${PN}-1.2.0_p1-respect-ldflags.patch.gz
http://www-rcf.usc.edu/~garrick/torque-1.2.0p5-jobnanny.patch
http://www-rcf.usc.edu/~garrick/torque-1.2.0p5-jobdepterm2.patch"
LICENSE="openpbs"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 x86"
IUSE="doc tcltk X"
PROVIDE="virtual/pbs"
# ed is used by makedepend-sh
DEPEND_COMMON="virtual/libc
X? ( virtual/x11 )
tcltk? ( dev-lang/tcl )
!virtual/pbs"
DEPEND="${DEPEND_COMMON}
sys-apps/ed"
RDEPEND="${DEPEND_COMMON}
net-misc/openssh"
PDEPEND=">=sys-cluster/openpbs-common-1.1.0"
S="${WORKDIR}/${MY_P}"
SPOOL_LOCATION="/usr/spool" # this needs to move to /var later on
PBS_SERVER_HOME="${SPOOL_LOCATION}/PBS/"
src_unpack() {
append-ldflags -Wl,-z,now
unpack ${A}
EPATCH_OPTS="-p1 -d ${S}" epatch ${DISTDIR}/${PN}-1.2.0_p1-respect-ldflags.patch.gz || die "Failed to fix ldflags"
EPATCH_OPTS="-p1 -d ${S}" epatch ${DISTDIR}/${PN}-1.2.0_p1-respect-destdir.patch.gz || die "Failed to fix Makefiles for DESTDIR"
EPATCH_OPTS="-p1 -d ${S}" epatch ${DISTDIR}/${PN}-1.2.0p5-jobnanny.patch || die "Failed to apply job-nanny patch"
EPATCH_OPTS="-p1 -d ${S}" epatch ${DISTDIR}/${PN}-1.2.0p5-jobdepterm2.patch || die "Failed to apply job-dep cleanup patch"
# Tries to use absolute /tmp/ for tempfiles which fails miserably.
sed -i -e "s|/tmp/|\${TMPDIR}/|g" ${S}/buildutils/makedepend-sh || die "Failed TMPDIR change"
}
src_compile() {
# local myconf
# use X || myconf="--disable-gui"
# use tcltk && myconf="${myconf} --with-tcl"
# use doc && myconf="${myconf} --enable-docs"
append-flags -DJOB_DELETE_NANNY
./configure \
$(use_enable X gui) \
$(use_with tcltk tcl) \
$(use_enable doc docs) \
--prefix=/usr \
--mandir=/usr/share/man \
--libdir="\${exec_prefix}/$(get_libdir)/pbs" \
--enable-server \
--enable-mom \
--enable-clients \
--enable-shared \
--enable-depend-cache \
$(use_with scp) \
$(use_enable tcltk tcl-qstat) \
--set-server-home=${PBS_SERVER_HOME} \
--set-environ=/etc/pbs_environment || die "./configure failed"
emake || die "emake failed"
}
# WARNING
# OpenPBS is extremely stubborn about directory permissions. Sometimes it will
# just fall over with the error message, but in some spots it will just ignore
# you and fail strangely. Likewise it also barfs on our .keep files!
pbs_createspool() {
root="$1"
s="${SPOOL_LOCATION}"
h="${PBS_SERVER_HOME}"
sp="${h}/server_priv"
chmod 755 ${root}${SPOOL_LOCATION} ${root}${PBS_SERVER_HOME}
for a in \
0755:${h} 0755:${h}/aux 0700:${h}/checkpoint \
0755:${h}/mom_logs 0751:${h}/mom_priv 0751:${h}/mom_priv/jobs \
0755:${h}/sched_logs 0750:${h}/sched_priv \
0755:${h}/server_logs \
0750:${h}/server_priv 0755:${h}/server_priv/accounting \
0750:${h}/server_priv/acl_groups 0750:${h}/server_priv/acl_hosts \
0750:${h}/server_priv/acl_svr 0750:${h}/server_priv/acl_users \
0750:${h}/server_priv/jobs 0750:${h}/server_priv/queues \
1777:${h}/spool 1777:${h}/undelivered ;
do
d="${a/*:}"
m="${a/:*}"
if [ ! -d "${d}" ]; then
install -d -m${m} ${root}${d}
else
chmod ${m} ${root}${d}
fi
done
}
src_install() {
# Make directories first
pbs_createspool "${D}"
make DESTDIR=${D} install || die
dodoc INSTALL PBS_License.txt README.torque Release_Notes
# Init scripts come from openpbs-common
#newinitd ${FILESDIR}/pbs-init.d pbs
#newconfd ${FILESDIR}/pbs-conf.d pbs
dosym /usr/$(get_libdir)/pbs/libpbs.a /usr/$(get_libdir)/libpbs.a
# this file MUST exist for PBS/Torque to work
# but try to preserve any customatizations that the user has made
dodir /etc
if [ -f ${ROOT}/etc/pbs_environment ]; then
cp ${ROOT}/etc/pbs_environment ${D}/etc/pbs_environment
else
touch ${D}/etc/pbs_environment
fi
if [ -f "${ROOT}/usr/spool/PBS/server_name" ]; then
cp "${ROOT}/usr/spool/PBS/server_name" "${D}/usr/spool/PBS/server_name"
fi
}
pkg_postinst() {
# make sure the damn directories exist
pbs_createspool "${ROOT}"
}
|