diff -u -r1.50 SymlinkProgram
--- bin/SymlinkProgram	25 Nov 2007 02:08:56 -0000	1.50
+++ bin/SymlinkProgram	7 Jan 2008 01:19:15 -0000
@@ -22,6 +22,7 @@
 Add_Option_Entry "t" "tasks" "Link tasks into ${goboExecutables}: 'yes', 'no' or 'safe'." "yes"
 Add_Option_Entry "u" "unmanaged" "Defines what to do with unmanaged files in package: 'ask', 'install' or 'skip'." "ask"
 Add_Option_Boolean "E" "no-environment" "Do not link entries from ${goboEnvironment}."
+Add_Option_Boolean "E" "no-requirements" "Do not process Resources/Requirements."
 Add_Option_Boolean "A" "no-variable" "Do not move variable files into ${goboVariable}."
 Add_Option_Boolean "M" "no-doc" "Do not link manuals and info files."
 Add_Option_Boolean "C" "cleanup" "Clean up after installation."
@@ -369,6 +370,39 @@
 
 ################################################################################
 
+if ! Boolean "no-requirements"
+then
+   if [ -f $current/Resources/Requirements ]
+   then
+      Log_Normal "Asserting requirements are met..."
+      source $current/Resources/Requirements
+      for entry in "${required_groups[@]}"
+      do
+         unset gid
+         group=`echo "$entry" | cut -d" " -f1`
+         grep -q "^$group:" $goboSettings/group && continue
+         echo "$entry" | grep -q "gid=" && gid="--gid `echo $entry | sed 's,.*gid=\([^ ]*\).*,\1,g'`"
+         Log_Normal "Adding group $group..."
+         groupadd $group $gid
+      done
+
+      for entry in "${required_users[@]}"
+      do
+         unset uid
+         unset groups
+         user=`echo "$entry" | cut -d" " -f1`
+         grep -q "^$user:" $goboSettings/passwd && continue
+         echo "$entry" | grep -q "uid=" && uid="--uid `echo $entry | sed 's,.*uid=\([^ ]*\).*,\1,g'`"
+         echo "$entry" | grep -q "groups=" && groups="`echo $entry | sed 's,.*groups=\([^ ]*\).*,\1,g'`"
+         Log_Normal "Adding user $user..."
+         useradd $user $uid -c "Added by Compile/InstallPackage" -d "$goboVariable/empty" -s "$goboExecutables/nologin"
+         [ "$groups" ] && usermod -a -G "$groups" "$user"
+      done
+   fi
+fi
+
+################################################################################
+
 Log_Normal "Removing unused directories..."
 PrepareProgram --tree-cleanup "$package" "$version"
 
