Index: /trunk/slurm_drmaa/job.c
===================================================================
--- /trunk/slurm_drmaa/job.c	(revision 35)
+++ /trunk/slurm_drmaa/job.c	(revision 1)
@@ -1,6 +1,6 @@
-/* $Id$ */
+/* $Id: job.c 351 2010-10-01 13:14:55Z mamonski $ */
 /*
  * PSNC DRMAA for SLURM
- * Copyright (C) 2011 Poznan Supercomputing and Networking Center
+ * Copyright (C) 2010 Poznan Supercomputing and Networking Center
  *
  *  This program is free software: you can redistribute it and/or modify
@@ -54,5 +54,4 @@
 					fsd_exc_raise_fmt(	FSD_ERRNO_INTERNAL_ERROR,"slurm_suspend error: %s,job_id: %s",slurm_strerror(slurm_get_errno()),self->job_id);
 				}
-				slurm_self->user_suspended = true;
 				break;
 			case DRMAA_CONTROL_HOLD:
@@ -62,5 +61,4 @@
 				job_desc.job_id = atoi(self->job_id);
 				job_desc.priority = 0;
-				job_desc.alloc_sid = 0;
 				if(slurm_update_job(&job_desc) == -1) {
 					fsd_exc_raise_fmt(	FSD_ERRNO_INTERNAL_ERROR,"slurm_update_job error: %s,job_id: %s",slurm_strerror(slurm_get_errno()),self->job_id);
@@ -71,5 +69,4 @@
 					fsd_exc_raise_fmt(	FSD_ERRNO_INTERNAL_ERROR,"slurm_resume error: %s,job_id: %s",slurm_strerror(slurm_get_errno()),self->job_id);
 				}
-				slurm_self->user_suspended = false;
 				break;
 			case DRMAA_CONTROL_RELEASE:
@@ -109,5 +106,4 @@
 {
 	job_info_msg_t *job_info = NULL;
-	slurmdrmaa_job_t * slurm_self = (slurmdrmaa_job_t *) self;
 	fsd_log_enter(( "({job_id=%s})", self->job_id ));
 
@@ -116,92 +112,93 @@
 	{
 		if ( slurm_load_job( &job_info, fsd_atoi(self->job_id), SHOW_ALL) ) {
-			int _slurm_errno = slurm_get_errno();
-
-			if (_slurm_errno == ESLURM_INVALID_JOB_ID) {
-				self->on_missing(self);
-			} else {
-				fsd_exc_raise_fmt(FSD_ERRNO_INTERNAL_ERROR,"slurm_load_jobs error: %s,job_id: %s", slurm_strerror(slurm_get_errno()), self->job_id);
-			}
-		}
-		if (job_info) {
-			fsd_log_debug(("state = %d, state_reason = %d", job_info->job_array[0].job_state, job_info->job_array[0].state_reason));
-			
-			switch(job_info->job_array[0].job_state & JOB_STATE_BASE)
-			{
-
-				case JOB_PENDING:
-					switch(job_info->job_array[0].state_reason)
-					{
-						#if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0)
-						case WAIT_HELD_USER:   /* job is held by user */
-							fsd_log_debug(("interpreting as DRMAA_PS_USER_ON_HOLD"));
-							self->state = DRMAA_PS_USER_ON_HOLD;
-							break;
-						#endif
-						case WAIT_HELD:  /* job is held by administrator */
-							fsd_log_debug(("interpreting as DRMAA_PS_SYSTEM_ON_HOLD"));
-							self->state = DRMAA_PS_SYSTEM_ON_HOLD;
-							break;
-						default:
-							fsd_log_debug(("interpreting as DRMAA_PS_QUEUED_ACTIVE"));
-							self->state = DRMAA_PS_QUEUED_ACTIVE;
-					}
-					break;
-				case JOB_RUNNING:
-					fsd_log_debug(("interpreting as DRMAA_PS_RUNNING"));
-					self->state = DRMAA_PS_RUNNING;
-					break;
-				case JOB_SUSPENDED:
-					if(slurm_self->user_suspended == true) {
-						fsd_log_debug(("interpreting as DRMAA_PS_USER_SUSPENDED"));
-						self->state = DRMAA_PS_USER_SUSPENDED;
-					} else {
-						fsd_log_debug(("interpreting as DRMAA_PS_SYSTEM_SUSPENDED"));
-						self->state = DRMAA_PS_SYSTEM_SUSPENDED;
-					}
-					break;
-				case JOB_COMPLETE:
-					fsd_log_debug(("interpreting as DRMAA_PS_DONE"));
-					self->state = DRMAA_PS_DONE;
-					self->exit_status = job_info->job_array[0].exit_code;
-					fsd_log_debug(("exit_status = %d -> %d",self->exit_status, WEXITSTATUS(self->exit_status)));
-					break;
-				case JOB_CANCELLED:
-					fsd_log_debug(("interpreting as DRMAA_PS_FAILED (aborted)"));
-					self->state = DRMAA_PS_FAILED;
-					self->exit_status = -1;
-				case JOB_FAILED:
-				case JOB_TIMEOUT:
-				case JOB_NODE_FAIL:
-				#if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,3,0)
-				case JOB_PREEMPTED:
-				#endif
-					fsd_log_debug(("interpreting as DRMAA_PS_FAILED"));
-					self->state = DRMAA_PS_FAILED;
-					self->exit_status = job_info->job_array[0].exit_code;
-					fsd_log_debug(("exit_status = %d -> %d",self->exit_status, WEXITSTATUS(self->exit_status)));
-					break;
-				default: /*unknown state */
-					fsd_log_error(("Unknown job state: %d. Please send bug report: http://apps.man.poznan.pl/trac/slurm-drmaa", job_info->job_array[0].job_state));
-			}
-
-			if (job_info->job_array[0].job_state & JOB_STATE_FLAGS & JOB_COMPLETING) {
-				fsd_log_debug(("Epilog completing"));
-			}
-
-			if (job_info->job_array[0].job_state & JOB_STATE_FLAGS & JOB_CONFIGURING) {
-				fsd_log_debug(("Nodes booting"));
-			}
-
-			if (self->exit_status == -1) /* input,output,error path failure etc*/
+			fsd_exc_raise_fmt(	FSD_ERRNO_INTERNAL_ERROR,"slurm_load_jobs error: %s,job_id: %s",slurm_strerror(slurm_get_errno()),self->job_id);
+        }
+		
+		self->exit_status = job_info->job_array[0].exit_code;
+		fsd_log_debug(("exit_status = %d -> %d",self->exit_status, WEXITSTATUS(self->exit_status)));
+
+		switch(job_info->job_array[0].job_state)
+		{
+			case JOB_PENDING:
+				switch(job_info->job_array[0].state_reason)
+				{
+					case WAIT_NO_REASON:
+					case WAIT_PRIORITY:
+					case WAIT_DEPENDENCY:
+					case WAIT_RESOURCES:
+					case WAIT_PART_NODE_LIMIT: 
+					case WAIT_PART_TIME_LIMIT: 
+					case WAIT_PART_STATE: 
+						self->state = DRMAA_PS_QUEUED_ACTIVE;
+						break;
+					case WAIT_HELD:
+						self->state = DRMAA_PS_USER_ON_HOLD;
+						break;
+					case WAIT_TIME:
+					case WAIT_LICENSES:
+					case WAIT_ASSOC_JOB_LIMIT:
+					case WAIT_ASSOC_RESOURCE_LIMIT: 
+					case WAIT_ASSOC_TIME_LIMIT:
+					case WAIT_RESERVATION: 
+					case WAIT_NODE_NOT_AVAIL:
+					case WAIT_TBD1:
+					case WAIT_TBD2:
+						self->state = DRMAA_PS_QUEUED_ACTIVE;
+						break;
+					case FAIL_DOWN_PARTITION:
+					case FAIL_DOWN_NODE:
+					case FAIL_BAD_CONSTRAINTS:
+					case FAIL_SYSTEM:
+					case FAIL_LAUNCH:
+					case FAIL_EXIT_CODE:
+					case FAIL_TIMEOUT:
+					case FAIL_INACTIVE_LIMIT:
+					case FAIL_BANK_ACCOUNT:
+						self->state = DRMAA_PS_FAILED;
+						break;
+					default:
+						fsd_log_error(("job_state_reason = %d, assert(0)",job_info->job_array[0].state_reason));
+						fsd_assert(false);
+	
+				}
+				break;
+			case JOB_RUNNING:
+				self->state = DRMAA_PS_RUNNING;
+				break;
+			case JOB_SUSPENDED:
+				self->state = DRMAA_PS_SYSTEM_SUSPENDED; /* assume SYSTEM - suspendig jobs is administrator only */
+				break;
+			case JOB_COMPLETE:
+				self->state = DRMAA_PS_DONE;
+				break;
+			case JOB_CANCELLED:
+				self->exit_status = -1;
+			case JOB_FAILED:
+			case JOB_TIMEOUT:
+			case JOB_NODE_FAIL:
 				self->state = DRMAA_PS_FAILED;
-
-			self->last_update_time = time(NULL);
-		
-			if( self->state >= DRMAA_PS_DONE ) {
-				fsd_log_debug(("exit_status = %d, WEXITSTATUS(exit_status) = %d", self->exit_status, WEXITSTATUS(self->exit_status)));
-				fsd_cond_broadcast( &self->status_cond );
-			}
-		}
+				break;
+			default: /*transient states */
+				if(job_info->job_array[0].job_state >= 0x8000) {
+					fsd_log_debug(("state COMPLETING"));
+				}
+				else if (job_info->job_array[0].job_state >= 0x4000) {
+					fsd_log_debug(("state Allocated nodes booting"));
+				}
+				else {
+					fsd_log_error(("job_state = %d, assert(0)",job_info->job_array[0].job_state));
+					fsd_assert(false);
+				}
+		}
+
+		if(self->exit_status == -1) /* input,output,error path failure etc*/
+			self->state = DRMAA_PS_FAILED;
+
+		fsd_log_debug(("state: %d ,state_reason: %d-> %s", job_info->job_array[0].job_state, job_info->job_array[0].state_reason, drmaa_job_ps_to_str(self->state)));
+
+		self->last_update_time = time(NULL);
+	
+		if( self->state >= DRMAA_PS_DONE )
+			fsd_cond_broadcast( &self->status_cond );
 	}
 	FINALLY
@@ -215,30 +212,4 @@
 	
 	fsd_log_return(( "" ));
-}
-
-static void
-slurmdrmaa_job_on_missing( fsd_job_t *self )
-{
-
-	fsd_log_enter(( "({job_id=%s})", self->job_id ));
-	fsd_log_warning(( "Job %s missing from DRM queue", self->job_id ));
-
-	fsd_log_info(( "job_on_missing: last job_ps: %s (0x%02x)", drmaa_job_ps_to_str(self->state), self->state));
-
-	if( self->state >= DRMAA_PS_RUNNING ) { /*if the job ever entered running state assume finished */
-		self->state = DRMAA_PS_DONE;
-		self->exit_status = 0;
-	}
-	else {
-		self->state = DRMAA_PS_FAILED; /* otherwise failed */
-		self->exit_status = -1;
-	}
-
-	fsd_log_info(("job_on_missing evaluation result: state=%d exit_status=%d", self->state, self->exit_status));
-
-	fsd_cond_broadcast( &self->status_cond);
-	fsd_cond_broadcast( &self->session->wait_condition );
-
-	fsd_log_return(( "; job_ps=%s, exit_status=%d", drmaa_job_ps_to_str(self->state), self->exit_status ));
 }
 
@@ -253,7 +224,6 @@
 	self->super.control = slurmdrmaa_job_control;
 	self->super.update_status = slurmdrmaa_job_update_status;
-	self->super.on_missing = slurmdrmaa_job_on_missing;
 	self->old_priority = UINT32_MAX;
-	self->user_suspended = true;
+
 	return (fsd_job_t*)self;
 }
@@ -422,24 +392,5 @@
 	}
 
-	/*  propagate all environment variables from submission host */
-	{
-		extern char **environ;
-		char **i;
-		unsigned j = 0;
-
-		for ( i = environ; *i; i++) {
-			job_desc->env_size++;
-		}
-		
-		fsd_log_debug(("environ env_size = %d",job_desc->env_size));
-		fsd_calloc(job_desc->environment, job_desc->env_size+1, char *);
-		
-		for ( i = environ; *i; i++,j++ ) {
-			job_desc->environment[j] = fsd_strdup(*i);
-		}
-	}
-
 	/* environment */
-	
 	vector = jt->get_v_attr( jt, DRMAA_V_ENV );
 	if( vector )
@@ -447,5 +398,4 @@
 		const char *const *i;
 		unsigned j = 0;
-		unsigned env_offset = job_desc->env_size;
 
 		for( i = vector;  *i;  i++ )
@@ -453,13 +403,13 @@
 			job_desc->env_size++;
 		}
-		fsd_log_debug(("jt env_size = %d",job_desc->env_size));
+		fsd_log_debug(("env_size = %d",job_desc->env_size));
 
 		fsd_log_debug(("# environment ="));
-		fsd_realloc(job_desc->environment, job_desc->env_size+1, char *);
+		fsd_calloc(job_desc->environment, job_desc->env_size+1, char *);
 
 		for( i = vector;  *i;  i++,j++ )
  		{
-			job_desc->environment[j + env_offset] = fsd_strdup(*i);
-			fsd_log_debug((" %s", job_desc->environment[j+ env_offset]));
+			job_desc->environment[j] = fsd_strdup(*i);
+			fsd_log_debug((" %s", job_desc->environment[j]));
 		}
 	 }
@@ -470,5 +420,5 @@
 	{
 		job_desc->time_limit = slurmdrmaa_datetime_parse( value );
-		fsd_log_debug(("# wct_hlimit = %s -> %ld",value, (long int)slurmdrmaa_datetime_parse( value )));
+		fsd_log_debug(("# wct_hlimit = %s -> %ld",value,slurmdrmaa_datetime_parse( value )));
 	}
 
@@ -571,11 +521,9 @@
 			/* only to one email address message may be send */
 			job_desc->mail_user = fsd_strdup(vector[0]);
-			job_desc->mail_type = MAIL_JOB_BEGIN | MAIL_JOB_END |  MAIL_JOB_FAIL;
 			fsd_log_debug(("# mail_user = %s\n",vector[0]));
-			fsd_log_debug(("# mail_type = %o\n",job_desc->mail_type));
 			if( vector[1] != NULL )
 			{
-				fsd_log_error(( "SLURM only supports one e-mail notification address" ));
-				fsd_exc_raise_msg(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE,"SLURM only supports one e-mail notification address");
+				fsd_log_error(( "LL only supports one e-mail notification address" ));
+				fsd_exc_raise_msg(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE,"LL only supports one e-mail notification address");
 			}
 		}
@@ -635,5 +583,12 @@
 	END_TRY			
 	
-	
+	/* native specification */
+	value = jt->get_attr( jt, DRMAA_NATIVE_SPECIFICATION );
+	if( value )
+	{
+		fsd_log_debug(("# Native specification: %s\n", value));
+		slurmdrmaa_parse_native(job_desc, value);
+	}
+		
 	/* job category */
 	value = jt->get_attr( jt, DRMAA_JOB_CATEGORY );
@@ -665,21 +620,6 @@
 	 	}
  	}
-
-    /* set defaults for constraints - ref: slurm.h */
-    fsd_log_debug(("# Setting defaults for tasks and processors" ));
-    job_desc->num_tasks = 1;
-    job_desc->min_cpus = 0;
-    job_desc->cpus_per_task = 0;
-    job_desc->pn_min_cpus = 0;
-
-	/* native specification */
-	value = jt->get_attr( jt, DRMAA_NATIVE_SPECIFICATION );
-	if( value )
-	{
-		fsd_log_debug(("# Native specification: %s\n", value));
-		slurmdrmaa_parse_native(job_desc, value);
-	}
-	
-}
-
-
+	
+}		
+		
+
Index: /trunk/slurm_drmaa/util.c
===================================================================
--- /trunk/slurm_drmaa/util.c	(revision 44)
+++ /trunk/slurm_drmaa/util.c	(revision 1)
@@ -1,5 +1,6 @@
+/* $Id: util.c 351 2010-10-01 13:14:55Z mamonski $ */
 /*
  * PSNC DRMAA for SLURM
- * Copyright (C) 2011 Poznan Supercomputing and Networking Center
+ * Copyright (C) 2010 Poznan Supercomputing and Networking Center
  *
  *  This program is free software: you can redistribute it and/or modify
@@ -31,8 +32,8 @@
 		__attribute__ ((unused))
 #	endif
-	= "$Id$";
+	= "$Id: util.c 351 2010-10-01 13:14:55Z mamonski $";
 #endif
 
-unsigned int
+unsigned
 slurmdrmaa_datetime_parse( const char *string )
 {
@@ -78,37 +79,7 @@
 	END_TRY
 
-	fsd_log_return(( "(%s) =%u minutes", string, (unsigned)60*dt.hour+dt.minute ));
+	fsd_log_return(( "(%s) =%u", string, (unsigned)60*dt.hour+dt.minute ));
 	return 60*dt.hour+dt.minute;
 }
-
-/* taken from SLURM src/common/proc_args.c */
-static int slurmdrmaa_mail_type_parse(const char *mail_type_str)
-{
-	int rc = 0;
-
-
-	if (strcasecmp(mail_type_str, "BEGIN") == 0)
-		rc = MAIL_JOB_BEGIN;
-	else if (strcasecmp(mail_type_str, "END") == 0)
-		rc = MAIL_JOB_END;
-	else if (strcasecmp(mail_type_str, "FAIL") == 0)
-		rc = MAIL_JOB_FAIL;
-#if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0)
-	else if (strcasecmp(mail_type_str, "REQUEUE") == 0)
-		rc = MAIL_JOB_REQUEUE;
-#endif
-	else if (strcasecmp(mail_type_str, "ALL") == 0)
-#if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0)
-		rc = MAIL_JOB_BEGIN | MAIL_JOB_END | MAIL_JOB_FAIL | MAIL_JOB_REQUEUE;
-#else
-		rc = MAIL_JOB_BEGIN | MAIL_JOB_END | MAIL_JOB_FAIL;
-#endif
-	else {
-		fsd_log_error(("Unknown mail type: %s", mail_type_str));
-	}
-
-	return rc;
-}
-
 
 enum slurm_native {
@@ -118,5 +89,4 @@
 	SLURM_NATIVE_CONSTRAINT,
 	SLURM_NATIVE_CONTIGUOUS,
-	SLURM_NATIVE_CPUS_PER_TASK,
 	SLURM_NATIVE_EXCLUSIVE,
 	SLURM_NATIVE_MEM,
@@ -130,16 +100,5 @@
 	SLURM_NATIVE_REQUEUE,
 	SLURM_NATIVE_RESERVATION,
-	SLURM_NATIVE_SHARE,
-	SLURM_NATIVE_JOB_NAME,
-	SLURM_NATIVE_TIME_LIMIT,
-	SLURM_NATIVE_NTASKS,
-	SLURM_NATIVE_GRES,
-	SLURM_NATIVE_NO_KILL,
-	SLURM_NATIVE_LICENSES,
-	SLURM_NATIVE_MAIL_TYPE,
-	SLURM_NATIVE_NO_REQUEUE,
-	SLURM_NATIVE_EXCLUDE,
-	SLURM_NATIVE_TMP,
-	SLURM_NATIVE_DEPENDENCY
+	SLURM_NATIVE_SHARE
 };
 
@@ -168,4 +127,6 @@
 	fsd_free(job_desc->partition);
 	fsd_free(job_desc->qos);
+	fsd_free(job_desc->req_nodes);
+	fsd_free(job_desc->reservation);
 	fsd_free(job_desc->script);
 	fsd_free(job_desc->std_in);
@@ -173,8 +134,4 @@
 	fsd_free(job_desc->std_err);	
 	fsd_free(job_desc->work_dir);
-	fsd_free(job_desc->exc_nodes);
-#if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0)
-	fsd_free(job_desc->gres);
-#endif
 	
 	fsd_log_return(( "" ));
@@ -213,8 +170,4 @@
 			job_desc->contiguous = 1;
 			break;
-		case SLURM_NATIVE_CPUS_PER_TASK:
-			fsd_log_debug(( "# cpus_per_task = %s", value));
-            job_desc->cpus_per_task = fsd_atoi(value);
-			break;
 		case SLURM_NATIVE_EXCLUSIVE:
 			fsd_log_debug(( "# exclusive -> shared = 0"));
@@ -222,43 +175,24 @@
 			break;
 		case SLURM_NATIVE_MEM:
-		#if SLURM_VERSION_NUMBER < SLURM_VERSION_NUM(2,2,0)
 			if(job_desc->job_min_memory == NO_VAL ||  fsd_atoi(value) > (int)job_desc->job_min_memory) {
 				fsd_log_debug(("# job_min_memory = %s",value));
 				job_desc->job_min_memory = fsd_atoi(value);
 			}
-		#else
-			if(job_desc->pn_min_memory == NO_VAL ||  fsd_atoi(value) > (int)job_desc->pn_min_memory) {
-				fsd_log_debug(("# pn_min_memory = %s",value));
-				job_desc->pn_min_memory = fsd_atoi(value);
-			}
-		#endif
-			else { 
+			else {
 				fsd_log_debug(("mem value defined lower or equal to mem-per-cpu or value defined before"));
 			}
 			break;
 		case SLURM_NATIVE_MEM_PER_CPU:
-		#if SLURM_VERSION_NUMBER < SLURM_VERSION_NUM(2,2,0)
 			if(job_desc->job_min_memory == NO_VAL ||  fsd_atoi(value) > (int)job_desc->job_min_memory) {
 				fsd_log_debug(("# job_min_memory = %s",value));
 				job_desc->job_min_memory = fsd_atoi(value);
 			}
-		#else
-			if(job_desc->pn_min_memory == NO_VAL ||  fsd_atoi(value) > (int)job_desc->pn_min_memory) {
-				fsd_log_debug(("# pn_min_memory (MEM_PER_CPU) = %s",value));
-				job_desc->pn_min_memory = fsd_atoi(value) | MEM_PER_CPU;
-			}
-		#endif
-			else { 
+			else {
 				fsd_log_debug(("mem-per-cpu value defined lower or equal to mem or value defined before"));
 			}
 			break;
 		case SLURM_NATIVE_MINCPUS:
-		#if SLURM_VERSION_NUMBER < SLURM_VERSION_NUM(2,2,0)
 			fsd_log_debug(("# job_min_cpus = %s",value));
 			job_desc->job_min_cpus = fsd_atoi(value);
-		#else
-			fsd_log_debug(("# pn_min_cpus = %s",value));
-			job_desc->pn_min_cpus = fsd_atoi(value);
-		#endif
 			break;
 		case SLURM_NATIVE_NODELIST:
@@ -269,5 +203,5 @@
 		case SLURM_NATIVE_NODES:
 			ptr = strdup(value);
-			
+
 			if((token = strtok_r(ptr,"=",&rest)) == NULL){
 				fsd_log_error(("strtok_r returned NULL"));
@@ -310,56 +244,4 @@
 			job_desc->shared = 1;
 			break;
-		case SLURM_NATIVE_JOB_NAME:
-			fsd_log_debug(("# job_name = %s",job_desc->name));
-			job_desc->name = fsd_strdup(value);
-			break;
-		case SLURM_NATIVE_NTASKS:
-			fsd_log_debug(("# ntasks = %s",value));
-			job_desc->num_tasks = fsd_atoi(value); 
-			break;	
-		case SLURM_NATIVE_TIME_LIMIT:
-			fsd_log_debug(("# time_limit = %s",value));
-			job_desc->time_limit = slurmdrmaa_datetime_parse(value); 
-			break;	
-		case SLURM_NATIVE_GRES:
-			#if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0)
-			fsd_log_debug(("# gres = %s",value));
-			job_desc->gres = fsd_strdup(value);
-			#else
-			fsd_log_error(("GRES not supported in this version of SLURM."));
-			#endif
-			break;
-		case SLURM_NATIVE_NO_KILL:
-			fsd_log_debug(("# no_kill = 1"));
-			job_desc->kill_on_node_fail = 0;
-			break;
-		case SLURM_NATIVE_LICENSES:
-			fsd_log_debug(("# licenses = %s", value));
-			job_desc->licenses = fsd_strdup(value);
-			break;
-		case SLURM_NATIVE_MAIL_TYPE:
-			fsd_log_debug(("# mail_type = %s", value));
-			job_desc->mail_type = slurmdrmaa_mail_type_parse(value);
-			break;
-		case SLURM_NATIVE_NO_REQUEUE:
-			fsd_log_debug(("# requeue = 0"));
-			job_desc->requeue = 0;
-			break;
-		case SLURM_NATIVE_EXCLUDE:
-			fsd_log_debug(("# exclude = %s", value));
-			job_desc->exc_nodes = fsd_strdup(value);
-			break;
-		case SLURM_NATIVE_TMP:
-			fsd_log_debug(("# tmp = %s", value));
-				#if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,3,0)
-					job_desc->pn_min_tmp_disk = fsd_atoi(value);
-					#else
-					job_desc->job_min_tmp_disk = fsd_atoi(value);
-					#endif
-			break;
-		case SLURM_NATIVE_DEPENDENCY:
-			fsd_log_debug(("# dependency = %s", value));
-			job_desc->dependency = fsd_strdup(value);
-			break;
 		default:
 			fsd_exc_raise_fmt(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE,"Invalid attribute");
@@ -375,17 +257,9 @@
 	char * volatile add_attr_copy = fsd_strdup(add_attr);
 
-	fsd_log_enter(( "" ));
-
 	TRY
 	  {
 		name = fsd_strdup(strtok_r(add_attr_copy, "=", &ctxt));
 		value = strtok_r(NULL, "=", &ctxt);
-		/*
-		 * TODO: move it to slurmdrmaa_add_attribute
-		 if (value == NULL) {
-			fsd_exc_raise_fmt(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE, 
-				"Invalid native specification: %s Missing '='.", add_attr_copy);
-		} */
-
+			
 		if(strcmp(name,"account") == 0) {
 			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_ACCOUNT,value);
@@ -402,7 +276,4 @@
 		else if (strcmp(name,"contiguous") == 0) {
 			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_CONTIGUOUS,NULL);
-		}
-		else if (strcmp(name,"cpus-per-task") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_CPUS_PER_TASK,value);
 		}
 		else if(strcmp(name,"exclusive") == 0) {
@@ -442,40 +313,5 @@
 			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_SHARE,NULL);
 		}		
-		else if(strcmp(name,"job_name") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_JOB_NAME,value);
-		}
-		else if(strcmp(name,"time_limit") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_TIME_LIMIT,value);
-		}
-		else if(strcmp(name,"time") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_TIME_LIMIT,value);
-		}
-		else if(strcmp(name,"ntasks") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_NTASKS,value);
-		}
-		else if(strcmp(name,"gres") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_GRES,value);
-		}
-		else if(strcmp(name,"no-kill") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_NO_KILL,NULL);
-		}
-		else if(strcmp(name,"licenses") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_LICENSES,value);
-		}
-		else if(strcmp(name,"mail-type") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_MAIL_TYPE,value);
-		}
-		else if(strcmp(name,"no-requeue") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_NO_REQUEUE,NULL);
-		}
-		else if(strcmp(name,"exclude") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_EXCLUDE,value);
-		}
-		else if(strcmp(name,"tmp") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_TMP,value);
-		}
-		else if(strcmp(name,"dependency") == 0) {
-			slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_DEPENDENCY,value);
-		} else {
+		else {
 			fsd_exc_raise_fmt(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE,
 					"Invalid native specification: %s (Unsupported option: --%s)",
@@ -483,4 +319,5 @@
 		}
 	
+		/*}*/
 	  }
 	FINALLY
@@ -490,5 +327,4 @@
 	  }
 	END_TRY
-	fsd_log_return(( "" ));
 }
 
@@ -519,5 +355,5 @@
 				}		
 			} else {
-				switch (opt) {
+				switch (opt) {			
 					case 'A' :
 						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_ACCOUNT, arg);
@@ -526,7 +362,4 @@
 						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_CONSTRAINT, arg);
 						break;	
-					case 'c' :
-						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_CPUS_PER_TASK, arg);
-						break;  
 					case 'N' :	
 						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_NODES, arg);
@@ -537,24 +370,9 @@
 					case 's' :
 						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_SHARE, NULL);
-						break;
+						break;	
 					case 'w' :
 						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_NODELIST, arg);
-						break;
-					case 'J' :
-						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_JOB_NAME, arg);
-						break;
-					case 't' :
-						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_TIME_LIMIT, arg);
-						break;  
-					case 'n' :
-						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_NTASKS, arg);
-						break;  
-					case 'x' :
-						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_EXCLUDE, arg);
-						break;
-					case 'L' :
-						slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_LICENSES, arg);
-						break;							
-					default :
+						break;		
+					default :								
 							fsd_exc_raise_fmt(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE,
 									"Invalid native specification: %s (Unsupported option: -%c)",
@@ -584,18 +402,4 @@
 	FINALLY
 	 {
-        fsd_log_debug(( "finalizing job constraints" ));
-        if( job_desc->cpus_per_task > 0 ) {
-            job_desc->min_cpus = job_desc->num_tasks * job_desc->cpus_per_task ;
-            fsd_log_debug((
-                        "set min_cpus to ntasks*cpus_per_task: %d",
-                        job_desc->min_cpus 
-                        ));
-        } else {
-            job_desc->min_cpus = job_desc->num_tasks ; 
-            fsd_log_debug((
-                        "set min_cpus to ntasks: %d",
-                        job_desc->min_cpus 
-                        ));
-        }
 		fsd_free(native_spec_copy);
 		fsd_free(native_specification);
Index: /trunk/slurm_drmaa/job.h
===================================================================
--- /trunk/slurm_drmaa/job.h	(revision 27)
+++ /trunk/slurm_drmaa/job.h	(revision 1)
@@ -1,6 +1,6 @@
-/* $Id$ */
+/* $Id: job.h 351 2010-10-01 13:14:55Z mamonski $ */
 /*
  * PSNC DRMAA for SLURM
- * Copyright (C) 2011 Poznan Supercomputing and Networking Center
+ * Copyright (C) 2010 Poznan Supercomputing and Networking Center
  *
  *  This program is free software: you can redistribute it and/or modify
@@ -40,9 +40,8 @@
 	/* job priority before hold */
 	uint32_t old_priority;
-	bool user_suspended;
 };
 
-void slurmdrmaa_job_create_req(fsd_drmaa_session_t *session, const fsd_template_t *jt, fsd_environ_t **envp, job_desc_msg_t * job_desc, int n_job );
-void slurmdrmaa_job_create(fsd_drmaa_session_t *session, const fsd_template_t *jt, fsd_environ_t **envp, fsd_expand_drmaa_ph_t *expand, job_desc_msg_t * job_desc, int n_job);
+void slurmdrmaa_job_create_req(fsd_drmaa_session_t *session,const fsd_template_t *jt,fsd_environ_t **envp, job_desc_msg_t * job_desc,	int n_job );
+void slurmdrmaa_job_create(fsd_drmaa_session_t *session,const fsd_template_t *jt,fsd_environ_t **envp,fsd_expand_drmaa_ph_t *expand, job_desc_msg_t * job_desc,	int n_job);
 
 #endif /* __SLURM_DRMAA__JOB_H */
Index: /trunk/slurm_drmaa/util.h
===================================================================
--- /trunk/slurm_drmaa/util.h	(revision 13)
+++ /trunk/slurm_drmaa/util.h	(revision 1)
@@ -1,6 +1,6 @@
-/* $Id$ */
+/* $Id: util.h 349 2010-09-30 12:20:44Z mmatloka $ */
 /*
  * PSNC DRMAA for SLURM
- * Copyright (C) 2011 Poznan Supercomputing and Networking Center
+ * Copyright (C) 2010 Poznan Supercomputing and Networking Center
  *
  *  This program is free software: you can redistribute it and/or modify
Index: /trunk/slurm_drmaa/session.c
===================================================================
--- /trunk/slurm_drmaa/session.c	(revision 35)
+++ /trunk/slurm_drmaa/session.c	(revision 1)
@@ -1,6 +1,6 @@
-/* $Id$ */
+/* $Id: session.c 351 2010-10-01 13:14:55Z mamonski $ */
 /*
  * PSNC DRMAA for SLURM
- * Copyright (C) 2011 Poznan Supercomputing and Networking Center
+ * Copyright (C) 2010 Poznan Supercomputing and Networking Center
  *
  *  This program is free software: you can redistribute it and/or modify
@@ -93,5 +93,5 @@
 	fsd_job_t *volatile job = NULL;
 	char **volatile job_ids = NULL;
-	unsigned n_jobs = 1;
+	unsigned n_jobs = 0;
 	volatile bool connection_lock = false;
 	fsd_environ_t *volatile env = NULL;
@@ -103,8 +103,11 @@
 
 		if( start != end )
+			n_jobs = (end - start) / incr + 1;
+		else 
+			n_jobs = 1;	
+
+		if(  start != end )
 		 {
 			unsigned idx, i;
-
-			n_jobs = (end - start) / incr + 1;
 
 			fsd_calloc( job_ids, n_jobs+1, char* );
@@ -122,4 +125,5 @@
 				connection_lock = fsd_mutex_unlock( &self->drm_connection_mutex );
 
+
 				job_ids[i] = fsd_asprintf("%d",submit_response->job_id); /*TODO  */
 
@@ -136,5 +140,5 @@
 		 {
 			fsd_calloc( job_ids, n_jobs+1, char* );
-
+			
 			connection_lock = fsd_mutex_lock( &self->drm_connection_mutex );
 			slurmdrmaa_job_create_req( self, jt, (fsd_environ_t**)&env , &job_desc, 0);
@@ -144,7 +148,6 @@
 			}
 
+			fsd_log_debug(("job %u submitted", submit_response->job_id));         
 			connection_lock = fsd_mutex_unlock( &self->drm_connection_mutex );
-
-			fsd_log_debug(("job %u submitted", submit_response->job_id));         
 			
 			job_ids[0] = fsd_asprintf( "%d", submit_response->job_id); /* .0*/
Index: /trunk/slurm_drmaa/slurm_drmaa.conf.example
===================================================================
--- /trunk/slurm_drmaa/slurm_drmaa.conf.example	(revision 5)
+++ /trunk/slurm_drmaa/slurm_drmaa.conf.example	(revision 1)
@@ -1,3 +1,3 @@
-## $Id$
+## $Id: slurm_drmaa.conf.example 300 2010-09-18 23:43:21Z mmatloka $
 ## slurm_drmaa.conf.example - Sample slurm_drmaa configuration file.
 
Index: /trunk/slurm_drmaa/drmaa.c
===================================================================
--- /trunk/slurm_drmaa/drmaa.c	(revision 13)
+++ /trunk/slurm_drmaa/drmaa.c	(revision 1)
@@ -1,6 +1,6 @@
-/* $Id$ */
+/* $Id: drmaa.c 351 2010-10-01 13:14:55Z mamonski $ */
 /*
  * PSNC DRMAA for SLURM
- * Copyright (C) 2011 Poznan Supercomputing and Networking Center
+ * Copyright (C) 2010 Poznan Supercomputing and Networking Center
  *
  *  This program is free software: you can redistribute it and/or modify
Index: /trunk/slurm_drmaa/Makefile.am
===================================================================
--- /trunk/slurm_drmaa/Makefile.am	(revision 13)
+++ /trunk/slurm_drmaa/Makefile.am	(revision 1)
@@ -1,6 +1,6 @@
-# $Id$
+# $Id: Makefile.am 349 2010-09-30 12:20:44Z mmatloka $
 #
 # PSNC DRMAA for LoadLeveler
-# Copyright (C) 2011 Poznan Supercomputing and Networking Center
+# Copyright (C) 2010 Poznan Supercomputing and Networking Center
 #
 # This program is free software: you can redistribute it and/or modify
Index: /trunk/slurm_drmaa/session.h
===================================================================
--- /trunk/slurm_drmaa/session.h	(revision 13)
+++ /trunk/slurm_drmaa/session.h	(revision 1)
@@ -1,6 +1,6 @@
-/* $Id$ */
+/* $Id: session.h 351 2010-10-01 13:14:55Z mamonski $ */
 /*
  * PSNC DRMAA for SLURM
- * Copyright (C) 2011 Poznan Supercomputing and Networking Center
+ * Copyright (C) 2010 Poznan Supercomputing and Networking Center
  *
  *  This program is free software: you can redistribute it and/or modify
Index: /trunk/Makefile.am
===================================================================
--- /trunk/Makefile.am	(revision 13)
+++ /trunk/Makefile.am	(revision 1)
@@ -1,6 +1,6 @@
-# $Id$
+# $Id: Makefile.am 227 2010-05-25 13:14:20Z mamonski $
 #
 # PSNC DRMAA for LoadLeveler
-# Copyright (C) 2011 Poznan Supercomputing and Networking Center
+# Copyright (C) 2010 Poznan Supercomputing and Networking Center
 #
 # This program is free software: you can redistribute it and/or modify
@@ -24,4 +24,3 @@
  m4/missing-dev-prog.sh
 
-SUBDIRS = drmaa_utils slurm_drmaa 
-
+SUBDIRS = drmaa_utils slurm_drmaa doc
Index: /trunk/README
===================================================================
--- /trunk/README	(revision 6)
+++ /trunk/README	(revision 1)
@@ -1,1 +1,244 @@
-The manual for the DRMAA for Simple Linux Utility for Resource Management (SLURM) is available at project wiki: http://apps.man.poznan.pl/trac/slurm-drmaa/wiki
+===================================================================
+PSNC DRMAA for Simple Linux Utility for Resource Management (SLURM)
+===================================================================
+
+:Author:        Michal Matloka <michal.matloka@student.put.poznan.pl>, Mariusz Mamonski <mamonski@man.poznan.pl>
+:Organization:  Poznan Supercomputing and Networking Center
+:Contact:       Mariusz Mamonski <mamonski@man.poznan.pl>, Michal Matloka <michal.matloka@student.put.poznan.pl>
+:Date:          $Date: 2010-10-01 15:14:55 +0200 (Pt, 01 paÅº 2010) $
+:Version:       1.0.0
+:Revision:      $Revision: 351 $
+:Copyright:     Copyright (C) 2010  Poznan Supercomputing and Networking Center
+
+:Abstract:  This document describes installation, configuration and usage
+  of PSNC DRMAA for Simple Linux Utility for Resource Management (SLURM).
+
+.. meta::
+  :http-equiv=Content-Language: en
+  :http-equiv=Content-Type: application/xhtml+xml; charset=UTF-8
+  :description lang=en: Distributed Resource Management Application API 1.0 implementation for Simple Linux Utility for Resource Management (SLURM)
+  :keywords: DRMAA, Distributed Resource Management Application API, Simple Linux Utility for Resource Management, SLURM, Poznan Supercomputing and Networking Center
+
+.. contents::
+
+.. default-role:: literal
+
+
+Introduction
+============
+
+PSNC DRMAA for `Simple Linux Utility for Resource Management (SLURM)`_ is an implementation of `Open Grid Forum`_ DRMAA_
+1.0 (Distributed Resource Management Application API) specification_
+for submission and control of jobs to `Simple Linux Utility for Resource Management (SLURM)`_.  Using DRMAA,
+grid applications builders, portal developers and ISVs can use the same
+high-level API to link their software with different cluster/resource
+management systems.
+
+This software also enables the integration of `SMOA Computing`_ with the
+underlying SLURM system for remote multi-user job submission and control
+over Web Services.
+
+
+Installation
+============
+
+To compile and install the library just go to main source directory
+and type::
+
+  $ ./configure [options] && make
+  $ sudo make install
+
+The library was tested with Simple Linux Utility for Resource Management version 2.1.13.
+If you encountered any problems using the library on the different systems, please use 
+the contact e-mails for reporting the problem.
+
+Notable `./configure` script options:
+
+  `--with-slurm-inc` SLURM_INCLUDE_PATH
+    Path to SLURM header files (i.e. directory containing `slurm/slurm.h` ). By default the library tries 
+    to guess the `SLURM_INCLUDE_PATH` and `SLURM_LIBRARY_PATH` based on location
+    of the `srun` executable.
+
+  `--with-slurm-lib` SLURM_LIBRARY_PATH
+    Path to SLURM libraries (i.e. directory containing `libslurm.a` ).
+
+  `--prefix` INSTALLATION_DIRECTORY
+    Root directory where PSNC DRMAA for SLURM shall be installed.
+    When not given library is installed in `/usr/local`.
+
+  `--enable-debug`
+    Compiles library with debugging enabled (with debugging symbols not
+    stripped, without optimizations, and with many log messages enabled).
+    Useful when you are to debug DRMAA enabled application
+    or investigate problems with DRMAA library itself.
+
+There are no unusual requirements for basic usage of library: ANSI C
+compiler and standard make program should suffice.  If you have taken
+sources directly from SVN repository or wish to run test-suite you would
+need additional `developer tools`_.  For further information regarding
+GNU build system see the INSTALL file.
+
+
+Configuration
+=============
+
+During DRMAA session initialization (`drmaa_init`) library tries to
+read its configuration parameters from locations: `/etc/slurm_drmaa.conf`,
+`~/.slurm_drmaa.conf` and from file given in `SLURM_DRMAA_CONF` environment
+variable (if set to non-empty string).  If multiple configuration
+sources are present then all configurations are merged with values
+from user-defined files taking precedence (in following order:
+`$SLURM_DRMAA_CONF`, `~/.slurm_drmaa.conf`, `/etc/slurm_drmaa.conf`).
+
+Currently recognized configuration parameters are:
+
+  cache_job_state
+    According to DRMAA specification every `drmaa_job_ps()` call should
+    query DRM system for job state.  With this option one may optimize
+    communication with DRM.  If set to positive integer `drmaa_job_ps()`
+    returns remembered job state without communicating with DRM for
+    `cache_job_state` seconds since last update.  By default library
+    conforms to specification (no caching will be performed).
+
+    Type: integer, default: 0
+
+  job_categories
+    Dictionary of job categories.  It's keys are job categories names
+    mapped to `native specification`_ strings.  Attributes set by job
+    category can be overridden by corresponding DRMAA attributes or
+    native specification.  Special category name `default` is used when
+    `drmaa_job_category` job attribute was not set.
+
+    Type: dictionary with string values, default: empty dictionary
+	
+
+Configuration file syntax
+-------------------------
+
+Configuration file is in form a dictionary.
+Dictionary is set of zero or more key-value pairs.
+Key is a string while value could be a string, an integer
+or another dictionary.
+::
+
+  configuration: dictionary | dictionary_body
+  dictionary: '{' dictionary_body '}'
+  dictionary_body: (string ':' value ',')*
+  value: integer | string | dictionary
+  string: unquoted-string | single-quoted-string | double-quoted-string
+  unquoted-string: [^ \t\n\r:,0-9][^ \t\n\r:,]*
+  single-quoted-string: '[^']*'
+  double-quoted-string: "[^"]*"
+  integer: [0-9]+
+
+
+Native specification
+====================
+
+DRMAA interface allows to pass DRM dependent job submission options.
+Those options may be specified directly by setting `drmaa_native_specification` job
+template attribute or indirectly by the `drmaa_job_category` job template attribute. 
+The legal format of the native options looks like::
+
+  -A My_job_name -s -N 1=10
+
+.. table::
+
+  ============================= =======================================================================================================================
+  Native specification          Description
+  ============================= =======================================================================================================================
+  `-A, --account=`\name         Charge job to specified accounts
+  `--acctg-freq`                Define  the  job accounting sampling interval
+  `--comment`                   An arbitrary comment
+  `-C, --constraint=`\list      Specify a list of constraints
+  `--contiguous`                If  set,  then  the  allocated nodes must form a contiguous set
+  `--exclusive`                 Allocate nodenumber of tasks to invoke on each nodes in exclusive mode when cpu consumable resource is enabled
+  `--mem=`\MB                   Minimum amount of real memory
+  `--mem-per-cpu=`\MB           Maximum mount of real memory per allocated cpu required by a job
+  `--mincpus=`\n                Minimum number of logical processors (threads) per node
+  `-N, --nodes=`\N              Number of nodes on which to run (N = min[-max])
+  `--ntasks-per-node=`\n        Number of tasks to invoke on each node    
+  `-p, --partition=`\partition  Partition requested
+  `--qos=`\qos                  Quality of Serice
+  `--requeue`                   If set, permit the job to be requeued
+  `--reservation=`\name         Allocate resources from named reservation
+  `-s, --share`                 Job allocation  can  share  nodes with other running jobs
+  `-w, --nodelist=`\hosts       Request a specific list of hosts
+  ============================= =======================================================================================================================
+  
+Description of each parameter can be found in `man sbatch`.
+
+Release notes
+=============
+ * 1.0.0 - first public release
+
+Known bugs and limitations
+--------------------------
+
+Library covers all `DRMAA 1.0 specification`_ with exceptions listed
+below.  It was successfully tested with `Simple Linux Utility for Resource Management (SLURM)`_ 2.1.13 on Linux and passes 44/44 tests of the `official DRMAA test-suite`_ (running as SLURM administrator).
+Using regular user account SLURM DRMAA passes 40/44 tests of the official DRMAA test-suite. 
+
+Known limitations:
+
+ * `drmaa_control` options `DRMAA_CONTROL_HOLD`, `DRMAA_CONTROL_SUSPEND`, `DRMAA_CONTROL_RELEASE`, `DRMAA_CONTROL_RESUME` are only available for users being SLURM administrators
+ * `drmaa_wct_slimit` not implemented
+ * optional attributes `drmaa_deadline_time`, `drmaa_duration_hlimit`, `drmaa_duration_slimit`, `drmaa_transfer_files` not implemented
+
+
+Authors
+-------
+
+The library was developed by:
+
+ * Michal Matloka <michal.matloka@student.put.poznan.pl> - core implementation
+
+This library relies heavily on the *Fedstage DRMAA utils* code developed by:
+
+ * Lukasz Ciesnik <lukasz.ciesnik@gmail.com>.
+
+Developer tools
+---------------
+Although not needed for library user the following tools may be required
+if you intend to develop PSNC DRMAA for SLURM:
+
+ * GNU autotools (autoconf, automake, libtool),
+ * Bison_ parser generator,
+ * Docutils_ for processing this `README`,
+ * LaTeX_ for creating documentation in PDF format,
+ * Doxygen_ for generating source code documentation.
+
+.. _Bison:     http://www.gnu.org/software/bison/
+.. _Docutils:  http://docutils.sourceforge.net/
+.. _LaTeX:     http://www.latex-project.org/
+.. _Doxygen:   http://www.stack.nl/~dimitri/doxygen/
+.. _DRMAA: http://www.drmaa.org/
+.. _Open Grid Forum: http://www.gridforum.org/
+.. _DRMAA 1.0 specification: http://www.ogf.org/documents/GFD.133.pdf
+.. _specification: http://www.ogf.org/documents/GFD.133.pdf
+.. _Official DRMAA test-suite: http://drmaa.org/testsuite.php
+.. _SMOA Computing: http://larix.man.poznan.pl/wiki/SMOA_Computing
+.. _Simple Linux Utility for Resource Management (SLURM): https://computing.llnl.gov/linux/slurm/
+
+
+License
+=======
+
+Copyright (C) 2009-2010  Poznan Supercomputing and Networking Center 
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+.. vim700: spell spelllang=en
+.. vim: ft=rst
+.. vim: ts=2 sw=2 et
Index: /trunk/m4/ax_gcc_warnings.m4
===================================================================
--- /trunk/m4/ax_gcc_warnings.m4	(revision 5)
+++ /trunk/m4/ax_gcc_warnings.m4	(revision 1)
@@ -1,3 +1,3 @@
-# $Id$
+# $Id: ax_gcc_warnings.m4 92 2010-04-08 15:40:49Z mamonski $
 #
 # SYNOPSIS
Index: /trunk/m4/ax_docutils.m4
===================================================================
--- /trunk/m4/ax_docutils.m4	(revision 5)
+++ /trunk/m4/ax_docutils.m4	(revision 1)
@@ -1,3 +1,3 @@
-# $Id$
+# $Id: ax_docutils.m4 92 2010-04-08 15:40:49Z mamonski $
 #
 # SYNOPSIS
Index: /trunk/m4/acx_pthread.m4
===================================================================
--- /trunk/m4/acx_pthread.m4	(revision 5)
+++ /trunk/m4/acx_pthread.m4	(revision 1)
@@ -1,3 +1,3 @@
-dnl $Id$
+dnl $Id: acx_pthread.m4 92 2010-04-08 15:40:49Z mamonski $
 
 dnl
Index: /trunk/m4/missing-dev-prog.sh
===================================================================
--- /trunk/m4/missing-dev-prog.sh	(revision 27)
+++ /trunk/m4/missing-dev-prog.sh	(revision 1)
@@ -5,4 +5,3 @@
  * tarball with generated sources included.
 MESSAGE
-
 exit 1
Index: /trunk/m4/ax_slurm.m4
===================================================================
--- /trunk/m4/ax_slurm.m4	(revision 5)
+++ /trunk/m4/ax_slurm.m4	(revision 1)
@@ -1,3 +1,3 @@
-# $Id$
+# $Id: ax_slurm.m4 208 2010-05-20 10:24:54Z mmatloka $
 #
 # SYNOPSIS
Index: /trunk/configure.ac
===================================================================
--- /trunk/configure.ac	(revision 29)
+++ /trunk/configure.ac	(revision 1)
@@ -1,8 +1,8 @@
-AC_INIT([PSNC DRMAA for SLURM], [1.0.6], [mamonski@man.poznan.pl], [slurm-drmaa])
+AC_INIT([PSNC DRMAA for SLURM], [1.0.0], [mamonski@man.poznan.pl], [slurm_drmaa])
 AC_PREREQ(2.59)
-AC_REVISION([$Id$])
+AC_REVISION([$Id: configure.ac 2694 2009-09-12 17:17:35Z mmamonski $])
 AC_COPYRIGHT([
 PSNC DRMAA for SLURM
-Copyright (C) 2011 Poznan Supercomputing and Networking Center
+Copyright (C) 2010 Poznan Supercomputing and Networking Center
 
 
@@ -23,6 +23,6 @@
 SLURM_DRMAA_MAJOR=1
 SLURM_DRMAA_MINOR=0
-SLURM_DRMAA_MICRO=6
-SLURM_DRMAA_VERSION_INFO=1:6:0
+SLURM_DRMAA_MICRO=0
+SLURM_DRMAA_VERSION_INFO=1:0:0
 AC_SUBST([SLURM_DRMAA_MAJOR])
 AC_SUBST([SLURM_DRMAA_MINOR])
@@ -181,4 +181,5 @@
 	Makefile
 	slurm_drmaa/Makefile
+	doc/Makefile
 ])
 AC_CONFIG_HEADERS([config.h])
Index: /trunk/autoclean.sh
===================================================================
--- /trunk/autoclean.sh	(revision 5)
+++ /trunk/autoclean.sh	(revision 1)
@@ -1,4 +1,4 @@
 #!/bin/sh
-# $Id$
+# $Id: autoclean.sh 2420 2009-06-24 14:40:21Z lukasz $
 
 echo "Removing all generated files. ($PWD)"
Index: /trunk/doc/rst.css
===================================================================
--- /trunk/doc/rst.css	(revision 5)
+++ /trunk/doc/rst.css	(revision 1)
@@ -1,5 +1,5 @@
 /*
 :Author: David Goodger (goodger@python.org)
-:Id: $Id$
+:Id: $Id: rst.css 92 2010-04-08 15:40:49Z mamonski $
 :Copyright: This stylesheet has been placed in the public domain.
 
Index: /trunk/doc/Makefile.am
===================================================================
--- /trunk/doc/Makefile.am	(revision 13)
+++ /trunk/doc/Makefile.am	(revision 1)
@@ -1,6 +1,6 @@
-# $Id$
+# $Id: Makefile.am 92 2010-04-08 15:40:49Z mamonski $
 #
 # PSNC DRMAA for LoadLeveler
-# Copyright (C) 2011 Poznan Supercomputing and Networking Center
+# Copyright (C) 2010 Poznan Supercomputing and Networking Center
 #
 # This program is free software: you can redistribute it and/or modify
