aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Fabbro <sebfabbro@gmail.com>2013-07-12 09:55:54 -0700
committerSébastien Fabbro <sebfabbro@gmail.com>2013-07-12 09:55:54 -0700
commitda85c2bb856e3c7461a2f49bf63104791ec98ff1 (patch)
treedac7ce2d1c9a7200cdc88c7cac7d27c4d2b4b131 /sys-cluster
parentfix nullmpi use flags (diff)
parentTurns out ${PF} doesn't work but htcondor-${VERSION} should be correct (diff)
downloadsci-da85c2bb856e3c7461a2f49bf63104791ec98ff1.tar.gz
sci-da85c2bb856e3c7461a2f49bf63104791ec98ff1.tar.bz2
sci-da85c2bb856e3c7461a2f49bf63104791ec98ff1.zip
Merge pull request #88 from chatcannon/HTCondor
Ebuild for htcondor (fixes #81)
Diffstat (limited to 'sys-cluster')
-rw-r--r--sys-cluster/htcondor/ChangeLog40
-rw-r--r--sys-cluster/htcondor/Manifest1
-rw-r--r--sys-cluster/htcondor/files/0001-Apply-the-user-s-condor_config-last-rather-than-firs.patch90
-rw-r--r--sys-cluster/htcondor/files/condor.confd2
-rw-r--r--sys-cluster/htcondor/files/condor.initd64
-rw-r--r--sys-cluster/htcondor/files/condor_config.generic.patch257
-rw-r--r--sys-cluster/htcondor/files/condor_config.local11
-rw-r--r--sys-cluster/htcondor/files/condor_shadow_dlopen-8.0.0.patch11
-rw-r--r--sys-cluster/htcondor/files/fix_sandbox_violations-8.0.0.patch31
-rw-r--r--sys-cluster/htcondor/files/packaging_directories-8.0.0.patch32
-rw-r--r--sys-cluster/htcondor/htcondor-8.0.0.ebuild115
-rw-r--r--sys-cluster/htcondor/metadata.xml29
12 files changed, 683 insertions, 0 deletions
diff --git a/sys-cluster/htcondor/ChangeLog b/sys-cluster/htcondor/ChangeLog
new file mode 100644
index 000000000..484d64224
--- /dev/null
+++ b/sys-cluster/htcondor/ChangeLog
@@ -0,0 +1,40 @@
+# ChangeLog for sys-cluster/condor
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+*condor-7.5.4 (08 Jan 2011)
+
+ 08 Jan 2011; Sébastien Fabbro <bicatali@gentoo.org> +condor-7.5.4.ebuild:
+ Version bump
+
+ 22 Jun 2010; Sébastien Fabbro <bicatali@gentoo.org> condor-7.5.2.ebuild,
+ files/condor.initd:
+ More initd fixes, now local config will reside in /var/lib
+
+*condor-7.5.2 (21 Jun 2010)
+
+ 21 Jun 2010; Sébastien Fabbro <bicatali@gentoo.org> -condor-7.4.1.ebuild,
+ -files/condor-7.4.1-config_generic.patch, +condor-7.5.2.ebuild,
+ -files/chkconfig_off.patch, files/condor.confd, files/condor.initd,
+ -files/condor_config.generic.patch, -files/log_lock_run.patch,
+ -files/no_basename.patch, -files/no_rpmdb_query.patch,
+ -files/stdsoap2.h.patch.patch, -condor-7.2.4.ebuild:
+ Version bump, developer version. Too many changes
+
+*condor-7.4.1 (12 Feb 2010)
+
+ 12 Feb 2010; Sébastien Fabbro <bicatali@gentoo.org> +condor-7.4.1.ebuild,
+ +files/condor-7.4.1-config_generic.patch, files/condor.confd,
+ files/condor.initd, files/condor_config.local:
+ Version bump. libvirt added as dependency, still need to check whether
+ absolutely necessary
+
+*condor-7.2.4 (17 Nov 2009)
+
+ 17 Nov 2009; Sébastien Fabbro <bicatali@gentoo.org> +condor-7.2.4.ebuild,
+ +files/chkconfig_off.patch, +files/condor.confd, +files/condor.initd,
+ +files/condor_config.generic.patch, +files/condor_config.local,
+ +files/log_lock_run.patch, +files/no_basename.patch,
+ +files/no_rpmdb_query.patch, +files/stdsoap2.h.patch.patch, +metadata.xml:
+ Initial import
+
diff --git a/sys-cluster/htcondor/Manifest b/sys-cluster/htcondor/Manifest
new file mode 100644
index 000000000..fe70962d9
--- /dev/null
+++ b/sys-cluster/htcondor/Manifest
@@ -0,0 +1 @@
+DIST condor_src-8.0.0-all-all.tar.gz 18636227 SHA256 b1fe7cedcab17d713a64b57dbb2a5f0426979316b8f309f9492ff60f7b43d3a8 SHA512 a335d0cb200f1899711f6f87968a01a2f5dcd37fede2ef973f2863a3f628d6f04421abbaaa22a310711ea1367af3a4f68e31c5e91e8cee1149cc5957d6ac0119 WHIRLPOOL 4c755644cd2ba5f7414ac3c8374df141b98d3e830f07a0ea0e0cc46b575ac8b42c1e47135cb9a87342bd41309b03df1693de1836cd250ea7e6ace1c3445ebd25
diff --git a/sys-cluster/htcondor/files/0001-Apply-the-user-s-condor_config-last-rather-than-firs.patch b/sys-cluster/htcondor/files/0001-Apply-the-user-s-condor_config-last-rather-than-firs.patch
new file mode 100644
index 000000000..0664fe764
--- /dev/null
+++ b/sys-cluster/htcondor/files/0001-Apply-the-user-s-condor_config-last-rather-than-firs.patch
@@ -0,0 +1,90 @@
+--- a/src/condor_utils/condor_config.cpp
++++ b/src/condor_utils/condor_config.cpp
+@@ -110,6 +110,7 @@ void check_params();
+ // External variables
+ extern int ConfigLineNo;
+ } /* End extern "C" */
++bool find_user_file(std::string &);
+
+ // Global variables
+ BUCKET *ConfigTab[TABLESIZE];
+@@ -654,6 +655,14 @@ real_config(char* host, int wantsQuiet, bool wantExtraInfo)
+ if(dirlist) { free(dirlist); dirlist = NULL; }
+ if(newdirlist) { free(newdirlist); newdirlist = NULL; }
+
++ // Now, insert overrides from the user config file
++ std::string file_location;
++ if (find_user_file(file_location))
++ {
++ process_config_source( file_location.c_str(), "user local source", host, false );
++ local_config_sources.append(file_location.c_str());
++ }
++
+ // Now, insert any macros defined in the environment.
+ char **my_environ = GetEnviron();
+ for( int i = 0; my_environ[i]; i++ ) {
+@@ -996,6 +1005,38 @@ find_global()
+ }
+
+
++// Find user-specific location of a file
++// Returns true if found, and puts the location in the file_location argument.
++// If not found, returns false. The contents of file_location are undefined.
++bool
++find_user_file(std::string &file_location)
++{
++#ifdef UNIX
++ // $HOME/.condor/condor_config
++ struct passwd *pw = getpwuid( geteuid() );
++ std::stringstream ss;
++ if ( can_switch_ids() || !pw || !pw->pw_dir ) {
++ return false;
++ }
++ ss << pw->pw_dir << "/." << myDistro->Get() << "/" << myDistro->Get() << "_config";
++ file_location = ss.str();
++
++ int fd;
++ if ((fd = safe_open_wrapper_follow(file_location.c_str(), O_RDONLY)) < 0) {
++ return false;
++ } else {
++ close(fd);
++ dprintf(D_FULLDEBUG, "Reading condor configuration from '%s'\n", file_location.c_str());
++ }
++
++ return true;
++#else
++ // To get rid of warnings...
++ file_location = "";
++ return false;
++#endif
++}
++
+ // Find location of specified file
+ char*
+ find_file(const char *env_name, const char *file_name)
+@@ -1052,21 +1093,15 @@ find_file(const char *env_name, const char *file_name)
+ if (!config_source) {
+ // List of condor_config file locations we'll try to open.
+ // As soon as we find one, we'll stop looking.
+- const int locations_length = 4;
++ const int locations_length = 3;
+ MyString locations[locations_length];
+- // 1) $HOME/.condor/condor_config
+- struct passwd *pw = getpwuid( geteuid() );
+- if ( !can_switch_ids() && pw && pw->pw_dir ) {
+- formatstr( locations[0], "%s/.%s/%s", pw->pw_dir, myDistro->Get(),
+- file_name );
+- }
+ // 2) /etc/condor/condor_config
+- locations[1].formatstr( "/etc/%s/%s", myDistro->Get(), file_name );
++ locations[0].formatstr( "/etc/%s/%s", myDistro->Get(), file_name );
+ // 3) /usr/local/etc/condor_config (FreeBSD)
+- locations[2].formatstr( "/usr/local/etc/%s", file_name );
++ locations[1].formatstr( "/usr/local/etc/%s", file_name );
+ if (tilde) {
+ // 4) ~condor/condor_config
+- locations[3].formatstr( "%s/%s", tilde, file_name );
++ locations[2].formatstr( "%s/%s", tilde, file_name );
+ }
+
+ int ctr;
diff --git a/sys-cluster/htcondor/files/condor.confd b/sys-cluster/htcondor/files/condor.confd
new file mode 100644
index 000000000..bbb955811
--- /dev/null
+++ b/sys-cluster/htcondor/files/condor.confd
@@ -0,0 +1,2 @@
+CONDOR_CENTRAL_MANAGER="$(cat /etc/condor/central_manager)"
+CONDOR_OPTS=""
diff --git a/sys-cluster/htcondor/files/condor.initd b/sys-cluster/htcondor/files/condor.initd
new file mode 100644
index 000000000..287df2675
--- /dev/null
+++ b/sys-cluster/htcondor/files/condor.initd
@@ -0,0 +1,64 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+CONDOR_USER=condor
+
+CONDOR_CONFIG_LOCAL=$(condor_config_val LOCAL_CONFIG_FILE)
+CONDOR_MASTER=$(condor_config_val MASTER)
+CONDOR_RUN=$(condor_config_val RUN)
+CONDOR_LOCK=$(condor_config_val LOCK)
+
+depend() {
+ need net
+ use logger
+}
+
+setup_central_manager() {
+ # delete current condor host, replace it with central manager
+ sed -e '/CONDOR_HOST/d' \
+ /etc/condor/condor_config.local > ${CONDOR_CONFIG_LOCAL}
+ echo "CONDOR_HOST=${CONDOR_CENTRAL_MANAGER}" >> ${CONDOR_CONFIG_LOCAL}
+ chown ${CONDOR_USER}:${CONDOR_USER} ${CONDOR_CONFIG_LOCAL}
+}
+
+# set up condor ccb if only private networking is available (assumes ifconfig)
+setup_ccb() {
+ /sbin/ifconfig | grep "inet addr" | egrep -v "addr:127.|addr:192.|addr:172.|addr:10." > /dev/null
+ retval=$?
+ if [ ${retval} -ne 0 ]; then # all addresses are local
+ echo \
+ "$(/sbin/ifconfig | grep "inet addr" | grep -v 127. | awk '{print $2}' | sed s/addr://)" \
+ "$(hostname)" \
+ "# Added for Condor CCB" \
+ >> /etc/hosts
+ fi
+}
+
+cleanup_ccb() {
+ sed -i '/# Added for Condor CCB/d' /etc/hosts
+}
+
+start() {
+ ebegin "Starting condor"
+ setup_central_manager
+ setup_ccb
+ start-stop-daemon --start --quiet --user ${CONDOR_USER} \
+ --pidfile ${CONDOR_RUN}/condor.pid \
+ --exec ${CONDOR_MASTER} -- ${CONDOR_OPTS}
+ retval=$?
+ [ $retval -eq 0 ] && touch /var/lock/subsys/condor
+ eend ${retval}
+}
+
+stop() {
+ ebegin "Stopping condor"
+ cleanup_ccb
+ start-stop-daemon --stop --quiet \
+ --pidfile ${CONDOR_RUN}/condor.pid \
+ --exec ${CONDOR_MASTER}
+ retval=$?
+ [ ${retval} -eq 0 ] && rm -f /var/lock/subsys/condor
+ eend ${retval}
+}
diff --git a/sys-cluster/htcondor/files/condor_config.generic.patch b/sys-cluster/htcondor/files/condor_config.generic.patch
new file mode 100644
index 000000000..5a986227c
--- /dev/null
+++ b/sys-cluster/htcondor/files/condor_config.generic.patch
@@ -0,0 +1,257 @@
+--- a/src/condor_examples/condor_config.generic
++++ b/src/condor_examples/condor_config.generic
+@@ -1,12 +1,31 @@
+ ######################################################################
++######################################################################
++### ###
++### N O T I C E: D O N O T E D I T T H I S F I L E ###
++### ###
++### Customization should be done via the LOCAL_CONFIG_DIR. ###
++### ###
++######################################################################
++######################################################################
++
++
++######################################################################
+ ##
+ ## condor_config
+ ##
+ ## This is the global configuration file for condor. Any settings
+-## made here may potentially be overridden in the local configuration
+-## file. KEEP THAT IN MIND! To double-check that a variable is
+-## getting set from the configuration file that you expect, use
+-## condor_config_val -v <variable name>
++## found here * * s h o u l d b e c u s t o m i z e d i n
++## a l o c a l c o n f i g u r a t i o n f i l e. * *
++##
++## The local configuration files are located in LOCAL_CONFIG_DIR, set
++## below.
++##
++## For a basic configuration, you may only want to start by
++## customizing CONDOR_HOST and DAEMON_LIST.
++##
++## Note: To double-check where a configuration variable is set from
++## you can use condor_config_val -v -config <variable name>,
++## e.g. condor_config_val -v -config CONDOR_HOST.
+ ##
+ ## The file is divided into four main parts:
+ ## Part 1: Settings you likely want to customize
+@@ -53,7 +72,7 @@
+ ## Pathnames:
+ ##--------------------------------------------------------------------
+ ## Where have you installed the bin, sbin and lib condor directories?
+-RELEASE_DIR = /usr/local/condor
++RELEASE_DIR = /usr
+
+ ## Where is the local condor directory for each host?
+ ## This is where the local config file(s), logs and
+@@ -61,17 +80,20 @@
+ LOCAL_DIR = $(TILDE)
+ #LOCAL_DIR = $(RELEASE_DIR)/hosts/$(HOSTNAME)
+
+-## Where is the machine-specific local config file for each host?
+-LOCAL_CONFIG_FILE = $(LOCAL_DIR)/condor_config.local
+-#LOCAL_CONFIG_FILE = $(RELEASE_DIR)/etc/$(HOSTNAME).local
++## Looking for LOCAL_CONFIG_FILE? You will not find it here. Instead
++## put a file in the LOCAL_CONFIG_DIR below. It is a more extensible
++## means to manage configuration. The order in which configuration
++## files are read from the LOCAL_CONFIG_DIR is lexicographic. For
++## instance, config in 00MyConfig will be overridden by config in
++## 97MyConfig.
+
+ ## Where are optional machine-specific local config files located?
+ ## Config files are included in lexicographic order.
+-LOCAL_CONFIG_DIR = $(LOCAL_DIR)/config
+-#LOCAL_CONFIG_DIR = $(LOCAL_DIR)/config
++## No default.
++LOCAL_CONFIG_DIR = $(ETC)/config.d
+
+ ## Blacklist for file processing in the LOCAL_CONFIG_DIR
+-## LOCAL_CONFIG_DIR_EXCLUDE_REGEXP = ^((\..*)|(.*~)|(#.*)|(.*\.rpmsave)|(.*\.rpmnew))$
++LOCAL_CONFIG_DIR_EXCLUDE_REGEXP = ^((\..*)|(.*~)|(#.*)|(.*\.rpmsave)|(.*\.rpmnew))$
+
+ ## If the local config file is not present, is it an error?
+ ## WARNING: This is a potential security issue.
+@@ -409,7 +431,22 @@
+ ## condor account, it's probably condor. Otherwise, it's whatever
+ ## you've set in the CONDOR_IDS environment variable. See the Admin
+ ## manual for details on this.
+-LOCK = $(LOG)
++LOCK = /var/lock/condor
++
++# Condor allows for creating surrogate lock files that always live on
++# local disk. This is useful for the times when Condor would otherwise
++# lock a file on a network filesystem, such as a UserLog.
++# CREATE_LOCKS_ON_LOCAL_DISK controls this feature, and
++# LOCAL_DISK_LOCK_DIR controls where the lock files are created. The
++# local dir must have tmp-like permissions (1777), because multiple
++# users, e.g. via condor_submit or condor_dagman, will need to
++# add/remove lock files.
++# NOTE: This will not provide proper locking if a shared file is
++# simultaneously accessed from multiple machines. However, that is not
++# a common event. One example where it is possible is remote
++# submission with condor_submit -remote.
++#CREATE_LOCKS_ON_LOCAL_DISK = TRUE
++LOCAL_DISK_LOCK_DIR = $(LOCK)/local
+
+ ## If you don't use a fully qualified name in your /etc/hosts file
+ ## (or NIS, etc.) for either your official hostname or as an alias,
+@@ -475,7 +512,8 @@
+ ## the execute machine and just make sure the two strings match. The
+ ## default for this setting is False, since it is more secure this
+ ## way.
+-#TRUST_UID_DOMAIN = False
++## Default is False
++TRUST_UID_DOMAIN = True
+
+ ## If you would like to be informed in near real-time via condor_q when
+ ## a vanilla/standard/java job is in a suspension state, set this attribute to
+@@ -514,8 +552,9 @@
+ ## just disable it).
+ #NEGOTIATOR_IGNORE_USER_PRIORITIES = False
+
+-## This is a list of libraries containing ClassAd plug-in functions.
+-#CLASSAD_USER_LIBS =
++## These are the directories used to locate classad plug-in functions
++#CLASSAD_SCRIPT_DIRECTORY =
++#CLASSAD_LIB_PATH =
+
+ ## This setting tells Condor whether to delegate or copy GSI X509
+ ## credentials when sending them over the wire between daemons.
+@@ -605,6 +644,9 @@
+ MAX_HDFS_LOG = 1000000
+ HDFS_DEBUG =
+
++MAX_TRIGGERD_LOG = 1000000
++TRIGGERD_DEBUG =
++
+ # High Availability Logs
+ MAX_HAD_LOG = 1000000
+ HAD_DEBUG =
+@@ -932,14 +974,18 @@ TESTINGMODE_CLAIM_WORKLIFE = 1200
+ ######################################################################
+
+ ## Pathnames
+-LOG = $(LOCAL_DIR)/log
++LOG = /var/log/condor
+ SPOOL = $(LOCAL_DIR)/spool
+ EXECUTE = $(LOCAL_DIR)/execute
+ BIN = $(RELEASE_DIR)/bin
+ LIB = $(RELEASE_DIR)/lib
+-INCLUDE = $(RELEASE_DIR)/include
++INCLUDE = $(RELEASE_DIR)/include/condor
+ SBIN = $(RELEASE_DIR)/sbin
+-LIBEXEC = $(RELEASE_DIR)/libexec
++SHARE = $(RELEASE_DIR)/share/condor
++RUN = /var/run/condor
++DATA = $(SPOOL)
++ETC = /etc/condor
++LIBEXEC = $(RELEASE_DIR)/libexec/condor
+
+ ## If you leave HISTORY undefined (comment it out), no history file
+ ## will be created.
+@@ -963,6 +1009,7 @@ HAD_LOG = $(LOG)/HADLog
+ REPLICATION_LOG = $(LOG)/ReplicationLog
+ TRANSFERER_LOG = $(LOG)/TransfererLog
+ HDFS_LOG = $(LOG)/HDFSLog
++TRIGGERD_LOG = $(LOG)/TriggerLog
+
+ ## Lock files
+ SHADOW_LOCK = $(LOCK)/ShadowLock
+@@ -1084,7 +1131,7 @@ DAEMON_LIST = MASTER, STARTD, SCHEDD
+ #MASTER, STARTD, SCHEDD, KBDD, COLLECTOR, NEGOTIATOR, EVENTD, \
+ #VIEW_SERVER, CONDOR_VIEW, VIEW_COLLECTOR, HAWKEYE, CREDD, HAD, \
+ #DBMSD, QUILL, JOB_ROUTER, ROOSTER, LEASEMANAGER, HDFS, SHARED_PORT, \
+-#DEFRAG
++#DEFRAG TRIGGERD
+
+
+ ## Where are the binaries for these daemons?
+@@ -1094,7 +1141,6 @@ SCHEDD = $(SBIN)/condor_schedd
+ KBDD = $(SBIN)/condor_kbdd
+ NEGOTIATOR = $(SBIN)/condor_negotiator
+ COLLECTOR = $(SBIN)/condor_collector
+-CKPT_SERVER = $(SBIN)/condor_ckpt_server
+ STARTER_LOCAL = $(SBIN)/condor_starter
+ JOB_ROUTER = $(LIBEXEC)/condor_job_router
+ ROOSTER = $(LIBEXEC)/condor_rooster
+@@ -1102,6 +1148,7 @@ HDFS = $(SBIN)/condor_hdfs
+ SHARED_PORT = $(LIBEXEC)/condor_shared_port
+ TRANSFERER = $(LIBEXEC)/condor_transferer
+ DEFRAG = $(LIBEXEC)/condor_defrag
++TRIGGERD = $(sbin)/condor_triggerd
+
+ ## When the master starts up, it can place it's address (IP and port)
+ ## into a file. This way, tools running on the local machine don't
+@@ -1178,11 +1225,13 @@ PREEN_ARGS = -m -r
+ ##--------------------------------------------------------------------
+ ## Address to which Condor will send a weekly e-mail with output of
+ ## condor_status.
+-#CONDOR_DEVELOPERS = condor-admin@cs.wisc.edu
++## Default is condor-admin@cs.wisc.edu
++CONDOR_DEVELOPERS = NONE
+
+ ## Global Collector to periodically advertise basic information about
+ ## your pool.
+-#CONDOR_DEVELOPERS_COLLECTOR = condor.cs.wisc.edu
++## Default is condor.cs.wisc.edu
++CONDOR_DEVELOPERS_COLLECTOR = NONE
+
+ ## When the collector starts up, it can place it's address (IP and port)
+ ## into a file. This way, tools running on the local machine don't
+@@ -1199,6 +1248,7 @@ COLLECTOR_ADDRESS_FILE = $(LOG)/.collector_address
+ ## Determine if the Negotiator will honor SlotWeight attributes, which
+ ## may be used to give a slot greater weight when calculating usage.
+ #NEGOTIATOR_USE_SLOT_WEIGHTS = True
++NEGOTIATOR_USE_SLOT_WEIGHTS = True
+
+
+ ## How often the Negotaitor starts a negotiation cycle, defined in
+@@ -1668,7 +1718,7 @@ QUEUE_SUPER_USERS = root, condor
+ ## Such as when when Condor is running as a service.
+ ## /s is delete subdirectories
+ ## /c is continue on error
+-WINDOWS_RMDIR = $(SBIN)\condor_rmdir.exe
++#WINDOWS_RMDIR = $(SBIN)\condor_rmdir.exe
+ #WINDOWS_RMDIR_OPTIONS = /s /c
+
+ ##--------------------------------------------------------------------
+@@ -1689,13 +1739,15 @@ PROCD = $(SBIN)/condor_procd
+ # UNIX); the name will be something like:
+ # \\.\pipe\condor_procd
+ #
+-PROCD_ADDRESS = $(LOCK)/procd_pipe
++PROCD_ADDRESS = $(RUN)/procd_pipe
+
+-# Note that in other Condor daemons, turning on D_PROCFAMILY will
+-# result in that daemon logging all of its interactions with the
+-# ProcD.
++# The procd currently uses a very simplistic logging system. Since this
++# log will not be rotated like other Condor logs, it is only recommended
++# to set PROCD_LOG when attempting to debug a problem. In other Condor
++# daemons, turning on D_PROCFAMILY will result in that daemon logging
++# all of its interactions with the ProcD.
+ #
+-PROCD_LOG = $(LOG)/ProcLog
++#PROCD_LOG = $(LOG)/ProcLog
+
+ # This is the maximum period that the procd will use for taking
+ # snapshots (the actual period may be lower if a condor daemon registers
+@@ -1788,7 +1840,7 @@ JAVA = /usr/bin/java
+ ## them here. However, do not remove the existing entries, as Condor
+ ## needs them.
+
+-JAVA_CLASSPATH_DEFAULT = $(LIB) $(LIB)/scimark2lib.jar .
++JAVA_CLASSPATH_DEFAULT = $(SHARE) $(SHARE)/scimark2lib.jar .
+
+ ## JAVA_CLASSPATH_ARGUMENT describes the command-line parameter
+ ## used to introduce a new classpath:
+@@ -2458,7 +2510,7 @@ KBDD_ADDRESS_FILE = $(LOG)/.kbdd_address
+ #SSH_TO_JOB_SSHD_ARGS = "-i -e -f %f"
+
+ # sshd configuration template used by condor_ssh_to_job_sshd_setup.
+-#SSH_TO_JOB_SSHD_CONFIG_TEMPLATE = $(LIB)/condor_ssh_to_job_sshd_config_template
++SSH_TO_JOB_SSHD_CONFIG_TEMPLATE = $(ETC)/condor_ssh_to_job_sshd_config_template
+
+ # Path to ssh-keygen
+ #SSH_TO_JOB_SSH_KEYGEN = /usr/bin/ssh-keygen
diff --git a/sys-cluster/htcondor/files/condor_config.local b/sys-cluster/htcondor/files/condor_config.local
new file mode 100644
index 000000000..cada046bd
--- /dev/null
+++ b/sys-cluster/htcondor/files/condor_config.local
@@ -0,0 +1,11 @@
+CONDOR_DEVELOPERS = NONE
+CONDOR_HOST = $(FULL_HOSTNAME)
+COLLECTOR_NAME = Personal Condor
+START = TRUE
+SUSPEND = FALSE
+CONTINUE = TRUE
+PREEMPT = FALSE
+KILL = FALSE
+DAEMON_LIST = COLLECTOR, MASTER, NEGOTIATOR, SCHEDD, STARTD
+NEGOTIATOR_INTERVAL = 20
+TRUST_UID_DOMAIN = TRUE
diff --git a/sys-cluster/htcondor/files/condor_shadow_dlopen-8.0.0.patch b/sys-cluster/htcondor/files/condor_shadow_dlopen-8.0.0.patch
new file mode 100644
index 000000000..50a4556da
--- /dev/null
+++ b/sys-cluster/htcondor/files/condor_shadow_dlopen-8.0.0.patch
@@ -0,0 +1,11 @@
+--- build/cmake/CondorConfigure.cmake.orig 2013-06-17 19:49:16.067968000 +0100
++++ build/cmake/CondorConfigure.cmake 2013-06-17 19:51:27.105306000 +0100
+@@ -704,7 +704,7 @@
+ set (CONDOR_TOOL_LIBS "condor_utils;${CLASSADS_FOUND};${VOMS_FOUND};${GLOBUS_FOUND};${EXPAT_FOUND};${PCRE_FOUND};${COREDUMPER_FOUND}")
+ set (CONDOR_SCRIPT_PERMS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ if (LINUX OR DARWIN)
+- set (CONDOR_LIBS_FOR_SHADOW "condor_utils_s;classads;${VOMS_FOUND};${GLOBUS_FOUND};${EXPAT_FOUND};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${POSTGRESQL_FOUND};${COREDUMPER_FOUND};${IOKIT_FOUND};${COREFOUNDATION_FOUND}")
++ set (CONDOR_LIBS_FOR_SHADOW "condor_utils_s;classads;${VOMS_FOUND};${GLOBUS_FOUND};${EXPAT_FOUND};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${POSTGRESQL_FOUND};${COREDUMPER_FOUND};${IOKIT_FOUND};${COREFOUNDATION_FOUND};dl")
+ if (DARWIN)
+ set (CONDOR_LIBS_FOR_SHADOW "${CONDOR_LIBS_FOR_SHADOW};resolv" )
+ endif (DARWIN) \ No newline at end of file
diff --git a/sys-cluster/htcondor/files/fix_sandbox_violations-8.0.0.patch b/sys-cluster/htcondor/files/fix_sandbox_violations-8.0.0.patch
new file mode 100644
index 000000000..cb4629993
--- /dev/null
+++ b/sys-cluster/htcondor/files/fix_sandbox_violations-8.0.0.patch
@@ -0,0 +1,31 @@
+--- src/condor_scripts/CMakeLists.txt.orig 2013-06-17 23:02:02.815939000 +0100
++++ src/condor_scripts/CMakeLists.txt 2013-06-17 23:02:34.476727000 +0100
+@@ -27,9 +27,6 @@
+ install ( FILES condor_configure DESTINATION ${C_SBIN} PERMISSIONS ${CONDOR_SCRIPT_PERMS} )
+ install ( FILES condor_configure DESTINATION ${C_SBIN} RENAME condor_install PERMISSIONS ${CONDOR_SCRIPT_PERMS} )
+ install ( FILES condor_configure DESTINATION ${C_SBIN} RENAME bosco_install PERMISSIONS ${CONDOR_SCRIPT_PERMS} )
+- install ( CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ./sbin/bosco_install \${CMAKE_INSTALL_PREFIX}/bosco_install)" )
+- install ( CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ./sbin/condor_install \${CMAKE_INSTALL_PREFIX}/condor_install)" )
+- install ( CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ./sbin/condor_configure \${CMAKE_INSTALL_PREFIX}/condor_configure)" )
+ endif(WANT_FULL_DEPLOYMENT)
+
+ install ( FILES condor_ssh sshd.sh DESTINATION ${C_LIBEXEC} PERMISSIONS ${CONDOR_SCRIPT_PERMS} )
+--- src/condor_tools/CMakeLists.txt.orig 2013-06-17 22:50:20.459572000 +0100
++++ src/condor_tools/CMakeLists.txt 2013-06-17 22:52:59.841733000 +0100
+@@ -102,13 +102,13 @@
+ if ( LINUX AND NOT CONDOR_PACKAGE_BUILD )
+ set( SRC_DIR ${CMAKE_SOURCE_DIR} )
+ set( BIN_DIR ${CMAKE_BINARY_DIR} )
+- install( CODE "execute_process(COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/lib/condor)" )
++ install( CODE "execute_process(COMMAND mkdir -p \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/lib/condor)" )
+ install( CODE "execute_process(COMMAND ${SRC_DIR}/src/condor_scripts/print-libs ${BIN_DIR}/src/condor_tools/condor_version ${SRC_DIR}/src/condor_scripts/syslib-patterns
+- COMMAND xargs -isrc cp src ${CMAKE_INSTALL_PREFIX}/lib/condor
++ COMMAND xargs -isrc cp src \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/lib/condor
+ )" )
+ # This is required for opensuse, where the system's libssl and
+ # libcrypto files don't have owner write permission.
+- install( CODE "execute_process(COMMAND chmod -R u+w ${CMAKE_INSTALL_PREFIX}/lib/condor/)" )
++ install( CODE "execute_process(COMMAND chmod -R u+w \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/lib/condor/)" )
+ endif()
+
+ ############################################################
diff --git a/sys-cluster/htcondor/files/packaging_directories-8.0.0.patch b/sys-cluster/htcondor/files/packaging_directories-8.0.0.patch
new file mode 100644
index 000000000..d0882644c
--- /dev/null
+++ b/sys-cluster/htcondor/files/packaging_directories-8.0.0.patch
@@ -0,0 +1,32 @@
+--- build/cmake/CondorPackageConfig.cmake.orig 2013-06-29 22:54:28.964316000 +0100
++++ build/cmake/CondorPackageConfig.cmake 2013-06-29 22:56:26.258961000 +0100
+@@ -401,6 +401,29 @@
+ set(CMAKE_INSTALL_PREFIX "")
+ set(CPACK_SET_DESTDIR "ON")
+
++ else()
++
++ #Directory overrides
++ set( C_BIN usr/bin )
++ set( C_LIB usr/lib\${LIB_SUFFIX}/condor )
++ set( C_LIB_PUBLIC usr/lib\${LIB_SUFFIX} )
++ set( C_LIB32 usr/lib\${LIB_SUFFIX}/condor )
++ set( C_SBIN usr/sbin )
++ set( C_INCLUDE usr/include/condor )
++ set( C_INCLUDE_PUBLIC usr/include )
++ set( C_MAN usr/share/man )
++ set( C_SRC usr/src)
++ set( C_SQL usr/share/condor/sql)
++ set( C_INIT etc/init.d )
++ set( C_ETC etc/condor )
++ set( C_CONFIGD etc/condor/config.d )
++
++ set( C_ETC_EXAMPLES usr/share/doc/htcondor-${VERSION}/etc/examples )
++ set( C_SHARE_EXAMPLES usr/share/doc/htcondor-${VERSION} )
++ set( C_DOC usr/share/doc/htcondor-${VERSION} )
++ set( C_LIBEXEC usr/lib\${LIB_SUFFIX}/condor/libexec )
++ set( C_SYSCONFIG etc/default )
++
+ endif()
+
+ set( EXTERNALS_LIB "${C_LIB}" )
diff --git a/sys-cluster/htcondor/htcondor-8.0.0.ebuild b/sys-cluster/htcondor/htcondor-8.0.0.ebuild
new file mode 100644
index 000000000..4a1585a61
--- /dev/null
+++ b/sys-cluster/htcondor/htcondor-8.0.0.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+CMAKE_MIN_VERSION=2.8
+PYTHON_COMPAT=( python{2_6,2_7} )
+
+inherit cmake-utils python-single-r1 user
+
+DESCRIPTION="Workload management system for compute-intensive jobs"
+HOMEPAGE="http://www.cs.wisc.edu/htcondor/"
+SRC_URI="condor_src-${PV}-all-all.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="boinc cgroup contrib curl dmtcp doc kerberos libvirt management minimal postgres python soap ssl test X xml"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+CDEPEND="sys-libs/zlib
+ >=dev-libs/libpcre-7.6
+ >=dev-libs/boost-1.49.0[${PYTHON_USEDEP}]
+ net-nds/openldap
+ boinc? ( sci-misc/boinc )
+ cgroup? ( >=dev-libs/libcgroup-0.37 )
+ curl? ( >=net-misc/curl-7.19.7[ssl?] )
+ dmtcp? ( sys-apps/dmtcp )
+ libvirt? ( >=app-emulation/libvirt-0.6.2 )
+ kerberos? ( virtual/krb5 )
+ X? ( x11-libs/libX11 )
+ management? ( net-libs/qmf )
+ postgres? ( >=dev-db/postgresql-base-8.2.4 )
+ python? ( ${PYTHON_DEPS} )
+ soap? ( >=net-libs/gsoap-2.7.11[ssl?] )
+ ssl? ( >=dev-libs/openssl-0.9.8i )
+ xml? ( >=dev-libs/libxml2-2.7.3 )"
+
+DEPEND="${CDEPEND}
+ test? ( dev-util/valgrind )"
+
+RDEPEND="${CDEPEND}
+ mail-client/mailx"
+
+RESTRICT=fetch
+
+S="${WORKDIR}/condor-${PV}"
+
+pkg_setup() {
+ enewgroup condor
+ enewuser condor -1 "${ROOT}"bin/bash "${ROOT}var/lib/condor" condor
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/condor_shadow_dlopen-${PV}.patch" \
+ "${FILESDIR}/condor_config.generic.patch" \
+ "${FILESDIR}/0001-Apply-the-user-s-condor_config-last-rather-than-firs.patch" \
+ "${FILESDIR}/packaging_directories-${PV}.patch" \
+ "${FILESDIR}/fix_sandbox_violations-${PV}.patch"
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ # All the hard coded -DWITH_X=OFF flags are for packages that aren't in portage
+ # I also haven't included support for HAVE_VMWARE because I don't know what it requires
+ local mycmakeargs="
+ -DCONDOR_PACKAGE_BUILD=ON
+ -DCMAKE_INSTALL_PREFIX=/
+ -DWITH_BLAHP=OFF
+ -DWITH_CAMPUSFACTORY=OFF
+ -DWITH_CLUSTER_RA=OFF
+ -DWITH_COREDUMPER=OFF
+ -DWITH_CREAM=OFF
+ -DWITH_GLOBUS=OFF
+ -DWITH_LIBDELTACLOUD=OFF
+ -DWITH_BLAHP=OFF
+ -DWITH_QPID=OFF
+ -DWITH_UNICOREGAHP=OFF
+ -DWITH_VOMS=OFF
+ -DWITH_WSO2=OFF
+ $(cmake-utils_use_has boinc BACKFILL)
+ $(cmake-utils_use_has boinc)
+ $(cmake-utils_use_with cgroup LIBCGROUP)
+ $(cmake-utils_use_want contrib)
+ $(cmake-utils_use_with curl)
+ $(cmake-utils_use_want doc MAN_PAGES)
+ $(cmake-utils_use_with libvirt)
+ $(cmake-utils_use_has X KBDD)
+ $(cmake-utils_use_with kerberos KRB5)
+ $(cmake-utils_use_with postgres POSTGRESQL)
+ $(cmake-utils_use_with python PYTHON_BINDINGS)
+ $(cmake-utils_use_with management)
+ $(cmake-utils_use minimal CLIPPED)
+ $(cmake-utils_use_with soap AVIARY)
+ $(cmake-utils_use_with soap GSOAP)
+ $(cmake-utils_use_with ssl OPENSSL)
+ $(cmake-utils_use_build test TESTING)
+ $(cmake-utils_use_with xml LIBXML2)"
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ dodir /var/lib/condor
+ dodir /var/log/condor
+ dodir /var/run/condor
+ dodir /var/lock/condor
+
+ fperms 750 /var/lib/condor /var/log/condor
+ fperms 755 /var/run/condor
+ fperms 0775 /var/lock/condor
+ fowners condor:condor /var/lib/condor /var/log/condor /var/run/condor
+} \ No newline at end of file
diff --git a/sys-cluster/htcondor/metadata.xml b/sys-cluster/htcondor/metadata.xml
new file mode 100644
index 000000000..6485807ae
--- /dev/null
+++ b/sys-cluster/htcondor/metadata.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cluster</herd>
+ <maintainer>
+ <email>cjk34@cam.ac.uk</email>
+ </maintainer>
+ <longdescription lang="en">
+ HTCondor is a open-source, specialized workload management system for
+ compute-intensive jobs. Like other full-featured batch systems, HTCondor
+ provides a job queueing mechanism, scheduling policy, priority scheme,
+ resource monitoring, and resource management. Users submit their serial
+ or parallel jobs to HTCondor, HTCondor places them into a queue, chooses
+ when and where to run the jobs based upon a policy, carefully monitors
+ their progress, and ultimately informs the user upon completion. HTCondor
+ also contains mechanisms to submit jobs to grid-sites and supports many
+ different grid toolkits.
+</longdescription>
+ <use>
+ <flag name="boinc">Enable backfill with BOINC jobs when the cluster is not being used</flag>
+ <flag name="cgroup">Use <pkg>dev-libs/libcgroup</pkg> for kernel control groups</flag>
+ <flag name="contrib">Build contrib modules</flag>
+ <flag name="dmtcp">Use <pkg>sys-apps/dmtcp</pkg> for checkpointing</flag>
+ <flag name="libvirt">Use <pkg>app-emulation/libvirt</pkg> for virtualisation</flag>
+ <flag name="management">Use <pkg>net-libs/qmf</pkg> for management</flag>
+ <flag name="minimal">Don't support standard universe jobs</flag>
+ <flag name="X">Enable the HTCondor Keyboard Daemon to monitor logged in X users for activity</flag>
+ </use>
+</pkgmetadata>