diff options
author | Sébastien Fabbro <sebfabbro@gmail.com> | 2013-07-12 09:55:54 -0700 |
---|---|---|
committer | Sébastien Fabbro <sebfabbro@gmail.com> | 2013-07-12 09:55:54 -0700 |
commit | da85c2bb856e3c7461a2f49bf63104791ec98ff1 (patch) | |
tree | dac7ce2d1c9a7200cdc88c7cac7d27c4d2b4b131 /sys-cluster | |
parent | fix nullmpi use flags (diff) | |
parent | Turns out ${PF} doesn't work but htcondor-${VERSION} should be correct (diff) | |
download | sci-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/ChangeLog | 40 | ||||
-rw-r--r-- | sys-cluster/htcondor/Manifest | 1 | ||||
-rw-r--r-- | sys-cluster/htcondor/files/0001-Apply-the-user-s-condor_config-last-rather-than-firs.patch | 90 | ||||
-rw-r--r-- | sys-cluster/htcondor/files/condor.confd | 2 | ||||
-rw-r--r-- | sys-cluster/htcondor/files/condor.initd | 64 | ||||
-rw-r--r-- | sys-cluster/htcondor/files/condor_config.generic.patch | 257 | ||||
-rw-r--r-- | sys-cluster/htcondor/files/condor_config.local | 11 | ||||
-rw-r--r-- | sys-cluster/htcondor/files/condor_shadow_dlopen-8.0.0.patch | 11 | ||||
-rw-r--r-- | sys-cluster/htcondor/files/fix_sandbox_violations-8.0.0.patch | 31 | ||||
-rw-r--r-- | sys-cluster/htcondor/files/packaging_directories-8.0.0.patch | 32 | ||||
-rw-r--r-- | sys-cluster/htcondor/htcondor-8.0.0.ebuild | 115 | ||||
-rw-r--r-- | sys-cluster/htcondor/metadata.xml | 29 |
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> |