HTCondor Project List Archives



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-devel] What does Condor _really_ depend on?



On Mon, Aug 13, 2007 at 08:33:15PM -0500, Matthew Farrellee wrote:
> I don't think so. I'm working with the current idea that everything 
> should be enabled, if it can be. There is also a mechanism to say 
> certain things MUST be enabled -- configure blows up in your face is 
> something that MUST be enabled cannot be. Presumably when a release is 
> being made, or maybe even a nightly build, you could say that everything 
> MUST be enabled. The exact mechanism for that is up for debate. It is 
> implemented statically right now, but really should not be.

So there are three sets entites we can control during the compilation of
Condor:

1) Hard required entities, like PCRE.
	Hard means in all cases this feature must be enabled and if not
	enablable, then it is an error and Condor will not build.

2) Soft required entites, like Kerberos.
	Soft means you can turn it off and on, but we try very, very hard to have
	it be on for an official release of Condor. Many of our features are of
	this variety and this is extremely useful for porting work. It is often
	the case people will accept a crippled clipped port because it doesn't
	use a feature someone doesn't care about.

3) Truely optional features, like classad functions.
	There could be argument that should the conditions exist that these may
	be turned on, they should be, and we use runtime configuration file entries
	to enable/diable them.

So, a "config file" like this:

DEFAULT ON HARD PCRE
DEFAULT ON SOFT KERBEROS
DISABLE KERBEROS m/some regex against a config.guess-like os,arch ident str/
DEFAULT OFF OPTIONAL CLASSAD_FUNCTIONS

could start to describe under the usual conditions we want something turned on
or not.

Then, we just need one flag which says:
--make-soft-into-hard
Which turns all soft requirements into hard requirements, except leving
out the manually disabled features on the correct architectures.

--enable-* and --disable-* work by becoming DEFAULT ON HARD <thingy> and 
DEFAULT OFF HARD <thingy> respectively and override the config file.

Thank you.

-pete