[DRE-commits] r5392 - in trunk/chef/debian: . etc/chef etc/chef/solr-jetty patches po

Joshua Timberman jtimberman-guest at alioth.debian.org
Sun May 23 06:22:22 UTC 2010


Author: jtimberman-guest
Date: 2010-05-23 06:22:18 +0000 (Sun, 23 May 2010)
New Revision: 5392

Added:
   trunk/chef/debian/chef-client.default
   trunk/chef/debian/chef-server-api.dirs
   trunk/chef/debian/chef-server-api.postrm
   trunk/chef/debian/chef-server-webui.1
   trunk/chef/debian/chef-server-webui.chef-server-webui.default
   trunk/chef/debian/chef-server-webui.chef-server-webui.init
   trunk/chef/debian/chef-server-webui.config
   trunk/chef/debian/chef-server-webui.dirs
   trunk/chef/debian/chef-server-webui.links
   trunk/chef/debian/chef-server-webui.logrotate
   trunk/chef/debian/chef-server-webui.postinst
   trunk/chef/debian/chef-server-webui.postrm
   trunk/chef/debian/chef-server-webui.templates
   trunk/chef/debian/chef-server.chef-server.default
   trunk/chef/debian/chef-server.chef-server.init
   trunk/chef/debian/chef-server.links
   trunk/chef/debian/chef-server.postinst
   trunk/chef/debian/chef-solr-indexer.1
   trunk/chef/debian/chef-solr-rebuild.8
   trunk/chef/debian/chef-solr.1
   trunk/chef/debian/chef-solr.chef-solr-indexer.default
   trunk/chef/debian/chef-solr.chef-solr-indexer.init
   trunk/chef/debian/chef-solr.chef-solr-indexer.logrotate
   trunk/chef/debian/chef-solr.chef-solr.default
   trunk/chef/debian/chef-solr.chef-solr.init
   trunk/chef/debian/chef-solr.config
   trunk/chef/debian/chef-solr.dirs
   trunk/chef/debian/chef-solr.links
   trunk/chef/debian/chef-solr.logrotate
   trunk/chef/debian/chef-solr.manpages
   trunk/chef/debian/chef-solr.postinst
   trunk/chef/debian/chef-solr.postrm
   trunk/chef/debian/chef-solr.templates
   trunk/chef/debian/chef.config
   trunk/chef/debian/chef.postinst
   trunk/chef/debian/chef.templates
   trunk/chef/debian/etc/chef/solr-jetty/
   trunk/chef/debian/etc/chef/solr-jetty/jetty-web.xml
   trunk/chef/debian/etc/chef/solr-jetty/jetty.xml
   trunk/chef/debian/etc/chef/solr-jetty/start.config
   trunk/chef/debian/etc/chef/solr-jetty/webdefault.xml
   trunk/chef/debian/etc/chef/solr.rb
   trunk/chef/debian/etc/chef/webui.rb
   trunk/chef/debian/knife.8
   trunk/chef/debian/patches/CHEF-1194_fix_cookbook_show.patch
   trunk/chef/debian/patches/chef-solr_version.patch
   trunk/chef/debian/patches/chef_solr_ruby18.patch
   trunk/chef/debian/patches/fix_reindex.patch
   trunk/chef/debian/patches/jquery_unminified.patch
   trunk/chef/debian/patches/jquery_versions.patch
   trunk/chef/debian/patches/pidfile_option.patch
   trunk/chef/debian/patches/solr_load_path.patch
   trunk/chef/debian/po/
   trunk/chef/debian/po/POTFILES.in
   trunk/chef/debian/po/templates.pot
   trunk/chef/debian/repack.sh
   trunk/chef/debian/shef.8
Removed:
   trunk/chef/debian/FIXME
Modified:
   trunk/chef/debian/README.Debian
   trunk/chef/debian/README.chef-server
   trunk/chef/debian/README.source
   trunk/chef/debian/changelog
   trunk/chef/debian/chef-client.8
   trunk/chef/debian/chef-client.init
   trunk/chef/debian/chef-server.1
   trunk/chef/debian/chef-server.dirs
   trunk/chef/debian/chef-server.logrotate
   trunk/chef/debian/chef-server.manpages
   trunk/chef/debian/chef-server.postrm
   trunk/chef/debian/chef-solo.8
   trunk/chef/debian/chef.dirs
   trunk/chef/debian/chef.logrotate
   trunk/chef/debian/chef.manpages
   trunk/chef/debian/chef.postrm
   trunk/chef/debian/control
   trunk/chef/debian/copyright
   trunk/chef/debian/etc/chef/client.rb
   trunk/chef/debian/etc/chef/server.rb
   trunk/chef/debian/etc/chef/solo.rb
   trunk/chef/debian/patches/remove_rubygems.patch
   trunk/chef/debian/patches/series
   trunk/chef/debian/rules
   trunk/chef/debian/watch
Log:
sync up chef packaging with latest development from opscode

Deleted: trunk/chef/debian/FIXME
===================================================================
--- trunk/chef/debian/FIXME	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/FIXME	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,4 +0,0 @@
-Fixed issues pointed out by Lucas.
-jquery.js will stay in the package pending upstream ticket CHEF-510.
-Maintainer will manage it as well as packaged libjs-jquery is not tested
-with chef-server at this time.

Modified: trunk/chef/debian/README.Debian
===================================================================
--- trunk/chef/debian/README.Debian	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/README.Debian	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,44 +1,64 @@
 chef packages for Debian
 ------------------------
 
-While Chef is in production use at several companies managing a variety 
-of infrastructure types and sizes, it is still a young product (7 months old as
-of this writing) and under active development. Please see the Chef Wiki for
-information on components that may be changed, or find out how you can 
-improve Chef by contributing.
+Please see the Chef Wiki for information on components that may be changed,
+or find out how you can improve Chef by contributing.
 
 Chef is normally distributed as a RubyGem, so gets its dependencies through
-RubyGems. These packages are independent of RubyGems. All dependencies are 
+RubyGems. These packages are independent of RubyGems. All dependencies are
 handled like other normal Debian packages.
 
 The 'chef' package will install a client that can run with a server via the
-'chef-client' command. The client configuration file needs to be modified 
+'chef-client' command. The client configuration file needs to be modified
 to point at the appropriate server. By default this is set to localhost.
 
   /etc/chef/client.rb
 
-  registration_url "http://localhost:4000"
-  openid_url       "http://localhost:4001"
-  template_url     "http://localhost:4000"
-  remotefile_url   "http://localhost:4000"
-  search_url       "http://localhost:4000"
+  chef_server_url "http://localhost:4000"
 
 Chef can be run in 'solo' mode though, which does not connect to a server. To
 do this, use the 'chef-solo' command instead of 'chef-client'.
-  
-The 'chef-server' and 'chef-server-slice' packages will install a server. Chef
-server is a Merb application slice, and by default the server will start up from
-an init script as a pair of Mongrels on ports 4000 (web/api access) and 4001 
-(openid).
 
-Chef server uses CouchDB to store node attribute data.
+The 'chef-server', 'chef-server-api', 'chef-solr' packages will install a server.
+Chef server is a Merb application slice, and by default the server will start
+up from an init script as a thin server on port 4000.
 
-A note about RubyGems
----------------------
+Chef server uses CouchDB to store node attribute data and RabbitMQ for an
+AMQP message queue.
 
-RubyGems is recommended for libchef-ruby1.8 because Chef has a resource that can 
+Init Scripts
+------------
+
+The init scripts in the Debian packaging use the /etc/default directory to
+store default settings. This varies by the Chef services, but the default
+settings used by each are set.
+
+When changing the port for 'chef-server', be sure to change the value of
+chef_server_url in the /etc/chef config files to match the new port.
+
+/etc/chef/client.rb:chef_server_url    "http://localhost:4000"
+/etc/chef/server.rb:chef_server_url    "http://localhost:4000"
+/etc/chef/webui.rb:chef_server_url    "http://localhost:4000"
+
+A note about Recommends
+-----------------------
+
+RubyGems is recommended for libchef-ruby1.8 because Chef has a resource that can
 handle Gem packages. That will only work in recipes if RubyGems is installed.
 
+Rake is recommended because libchef-ruby1.8 has a set of rake tasks that can
+be used to manage a Chef Repository. For more information about setting up
+a Chef Repository, see the Chef wiki.
+
+http://wiki.opscode.com/display/chef/Chef+Repository
+
+Other Chef resources that may need additional packages installed:
+
+* mdadm - package: mdadm
+* scm - packages: git-core, subversion
+* user/group - packages: libshadow-ruby1.8, adduser
+* cron - package: cron
+
 Additional Resources
 --------------------
 

Modified: trunk/chef/debian/README.chef-server
===================================================================
--- trunk/chef/debian/README.chef-server	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/README.chef-server	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,33 +1,51 @@
 chef-server for Debian
 ----------------------
 
-There are a number of ways to set up the chef-server. The default on Debian is
-to use a pair of Mongrels. These will be started when the chef-server init 
+The chef-server provides a RESTful API to manage an infrastructure. Normal
+system management with the server is with the command-line tool, knife,
+which is provided by the 'chef' package. Chef also has a Web User Interface
+(WebUI) that can be used to manage the chef-server through a web browser.
+Both the chef-server-api and chef-server-webui are Merb application slices.
+For more information about Merb, see its home page.
+
+http://merbivore.com/
+
+There are a number of ways to start up the chef-server. The default on Debian is
+to use thin to start one worker. This will be started when the chef-server init 
 script runs:
 
-  chef-server -c2 -d
+    chef-server -a thin -p 4000 -e production
 
-This is using the default 'mongrel' adapter for the Merb application slice.
-When the Chef merb application starts, it runs a 'master' merb process and
-a number of 'worker' daemons up to the -c amount. Chef needs at least two;
-one for the webui/api and the other for the openid server. By default, these
-will start on ports 4000 and 4001:
+This uses the 'thin' adapter for the Merb application slice. It runs a Merb
+'master' process that spawns one or more workers (controlled with the -c 
+parameter to the chef-server command). If only one worker is spawned, the 
+master process is replaced by the worker.
 
-  $ ps awux | grep merb
-  root      2558  0.0  0.9  22868  1128 ?        S    Aug11   0:01 merb : merb : master                                           
-  root      3003  3.7 14.1  34032 17672 ?        Sl   Aug11  55:24 merb : spawner (ports 4000)                                    
-  root      3005  0.0  1.2  34040  1508 ?        S    Aug11   0:00 merb : worker (port 4000)                                      
-  root      3006  0.0  1.2  34040  1508 ?        S    Aug11   0:00 merb : worker (port 4001)  
+    $ ps awux | grep merb
+    root      3005  0.0  1.2  34040  1508 ?        S    Feb11   0:00 merb : worker (port 4000)
 
-Clients should connect to the server on port 4000 for all "URLs" except openid, 
-which should be port 4001. See /etc/chef/client.rb for these settings.
+Clients connect to the chef-server through the "chef_server_url" value
+in the /etc/chef/client.rb config file. The chef-client program can also
+be called with the -S parameter to set the server at run-time.
 
-Note that this setup does not speak SSL over HTTPS. To do that, the server
-needs to be configured with a web front end proxy, such as Apache2 or Nginx,
-or as a mod_rack application with Phusion's Passenger. More details on these
-configurations will be coming soon to the Chef wiki, including example config
-files.
+Clients authenticate to the chef-server API via preshared RSA keys, and
+digitally signed headers. The authentication is encrypted, but the payload
+is not. To encrypt the payload, the server needs a front end proxy, or be
+run under Passenger.
 
+When the server starts for the first time, it generates a validation user,
+"chef-validator" and a corresponding certificate, /etc/chef/validation.pem.
+This certificate should be copied to clients so they can authenticate with
+the chef-server. For more information about Chef's authentication model,
+please see the Chef wiki page:
+
+http://wiki.opscode.com/display/chef/Authentication
+
+The Chef Server WebUI by default starts on port 4040. If you are upgrading
+Chef from a previous version, the WebUI was included with the chef-server
+running on port 4000, but with 0.8 they are separate. Note this change for 
+accessing the WebUI, or if you're using a proxy in front of it.
+
 Additional Resources
 --------------------
 
@@ -43,4 +61,4 @@
 
   irc://irc.freenode.net/chef
 
- -- Joshua Timberman <joshua at opscode.com>  Mon, 03 Aug 2009 22:14:03 -0600
+ -- Joshua Timberman <joshua at opscode.com>  Fri, 05 Mar 2010 22:14:03 -0600

Modified: trunk/chef/debian/README.source
===================================================================
--- trunk/chef/debian/README.source	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/README.source	2010-05-23 06:22:18 UTC (rev 5392)
@@ -3,3 +3,21 @@
     debian/patches and applied during the build.
 
     See /usr/share/doc/quilt/README.source for a detailed explanation.
+
+    The Chef source bundles SOLR and SOLR Jetty, but these are not used
+    in the resulting packages, the Debian-packaged solr and solr-jetty
+    packages are configured instead in the chef-solr package.
+
+./chef-solr/solr/solr-jetty.tar.gz
+
+    This file from upstream source contains binaries with no source and
+    is removed with the repack script.
+
+./chef-server-webui/public/javascripts/yetii-min.js
+./chef-server-webui/public/javascripts/jquery-jeditable.mini.js
+./chef-server-webui/public/javascripts/jquery-tools.min.js
+./features/data/solr/jetty/work/Jetty_0_0_0_0_8983_solr.war__solr_k1kf17/webapp/admin/jquery-1.2.3.min.js
+
+		These files are minified javascript and neigh unreadable for humans.
+		The original javascript source for these is patched in via quilt, then
+		minified during the package build with libjavascript-minifier-xs-perl.

Modified: trunk/chef/debian/changelog
===================================================================
--- trunk/chef/debian/changelog	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/changelog	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,26 +1,741 @@
-chef (0.7.10-1) UNRELEASED; urgency=low
+chef (0.8.16-3) unstable; urgency=low
 
-  [ Joshua Timberman ]
-  Problems: need merb, which is not ready.
+  * Create /var/run/chef in chef-solr.
 
+ -- Joshua Timberman <joshua at opscode.com>  Mon, 17 May 2010 10:45:23 -0600
+
+chef (0.8.16-2) unstable; urgency=low
+
+  * Remove conditional on CONFIGFILE existence. Fixes user creation on
+    upgrades.
+  * Loosen version requirements on dependencies for chef for backportability.
+
+ -- Joshua Timberman <joshua at opscode.com>  Wed, 12 May 2010 12:02:26 -0600
+
+chef (0.8.16-1) unstable; urgency=low
+
+  * New upstream release (0.8.16).
+    * [CHEF-1194] - WebUI - show of cookbook fails
+    * [CHEF-1196] - Commit bc411a1ded418a385af23bbec7d1cc6b013cb08b breaks
+      template owner setting
+    * [CHEF-1204] - Mixlib CLI update breaks shef
+    * [CHEF-1207] - Leftover debug output in chef-solo
+    * [CHEF-1208] - CHEF-1207 breaks chef-client
+
+ -- Joshua Timberman <joshua at opscode.com>  Tue, 11 May 2010 14:27:09 -0600
+
+chef (0.8.14-4) unstable; urgency=low
+
+  * Make chef-server depend on chef-solr so configuration for amqp exists.
+
+ -- Joshua Timberman <joshua at opscode.com>  Tue, 11 May 2010 10:12:20 -0600
+
+chef (0.8.14-3) unstable; urgency=low
+
+  * Fix typo in chef-server-webui.postinst sed file.
+
+ -- Joshua Timberman <joshua at opscode.com>  Sat, 08 May 2010 21:40:00 -0600
+
+chef (0.8.14-2) unstable; urgency=low
+
+  * Adding jeditable unminified source to chef-server-webui.
+  * Fixing link to jquery-ui by creating symlink to wildcard in
+    chef-server-webui.postinst, because the filename varies by version
+    across ubuntu/debian releases.
+  * Patch CHEF-1194, fix method name for showing cookbooks in webui.
+  * Fixing copyright of chef-client.init.
+  * Adding required-start/stop for chef-server-webui, chef-server,
+    chef-solr-indexer.
+  * openid dirs are only needed in the webui package.
+  * remove spurious db_gets from *.config.
+  * test for /usr/bin/ucf before trying to run the command in *postrm.
+
+ -- Joshua Timberman <joshua at opscode.com>  Sat, 08 May 2010 18:35:53 -0600
+
+chef (0.8.14-1) unstable; urgency=low
+
+  * New upstream release (0.8.14).
+    * [CHEF-702] - chef server should 404 when recipes can't be found
+    * [CHEF-982] - Node gets overwritten when using 'knife node create foobar'
+      when 'foobar' already exists
+    * [CHEF-1086] - chef-solr jetty listening on all interfaces
+    * [CHEF-1088] - chef-server, chef-server-api, and chef-server-webui do not
+      load /etc/chef/server.rb if run as  a Rack app without their wrapper script.
+    * [CHEF-1104] - intermittent closed stream error on packages and templates
+    * [CHEF-1169] - Chef raises NotFound outside of chef server
+    * [CHEF-1188] - Chef::Client squashes errors in its save_node method,
+      destroying valuable debugging info
+    * [CHEF-1189] - Authenticated subversion checkouts fail due to prompt
+    * [CHEF-1190] - Chef should always print stderr and stdout when a shelled-out
+      command fails
+    * [CHEF-1191] - hotfix for all applications always cd-ing to root leaves a
+      failing test
+    * [CHEF-462] - http_request should allow for setting HTTP Header
+    * [CHEF-792] - Extend the interface provider to add ethtool options
+    * [CHEF-909] - Rollback on deploy errors
+    * [CHEF-1021] - Pass environment, group and cwd to run on deploy
+    * [CHEF-1171] - Knife should grow the ability to manage webui users
+    * [CHEF-966] - useradd provider should support creation of system users
+
+ -- Joshua Timberman <joshua at opscode.com>  Fri, 07 May 2010 12:50:54 -0600
+
+chef (0.8.12-1) unstable; urgency=low
+
+  * New upstream release (0.8.12).
+    * [CHEF-424] - Chef's Tempfile leaves lot of chef-rest files in /tmp
+    * [CHEF-557] - Remove rubygems from any libraries
+    * [CHEF-675] - Allow for rendering file contents with a 'content' variable
+    * [CHEF-702] - chef server should 404 when recipes can't be found
+    * [CHEF-724] - Chef should complain when it can't find any cookbooks
+    * [CHEF-730] - Can't create mixlib-log gem from tarball
+    * [CHEF-751] - mixlib-authentication needs version tags
+    * [CHEF-785] - svn_arguments not used when svn info is called (deploy resource)
+    * [CHEF-791] - Help text for -T refers to openid
+    * [CHEF-845] - Wrong number of arguments in preseed_package
+    * [CHEF-982] - Node gets overwritten when using 'knife node create foobar'
+      when 'foobar' already exists
+    * [CHEF-1001] - gem provider specify's the source of 'gems.rubyforge.org' if
+      the source is not specified, which is a deprecated mirror...
+    * [CHEF-1025] - mdadm provider is broken
+    * [CHEF-1030] - Properly escape existing cron-job names
+    * [CHEF-1032] - rake test no longer performs syntax check on ruby and erb files
+    * [CHEF-1060] - Deep merge json attributes passed on the command line
+    * [CHEF-1086] - chef-solr jetty listening on all interfaces
+    * [CHEF-1087] - chef-solr truncating logs, not logging startup
+    * [CHEF-1088] - chef-server, chef-server-api, and chef-server-webui do not
+      load /etc/chef/server.rb if run as  a Rack app without their wrapper script.
+    * [CHEF-1091] - chef_repo rake task fails to build metadata
+    * [CHEF-1092] - chef problems with dropping privileges
+    * [CHEF-1099] - chef-solr problems with dropping privileges
+    * [CHEF-1104] - intermittent closed stream error on packages and templates
+    * [CHEF-1107] - Revision Provider for Deployment Resource cannot recover
+      if cache file storing deployed revisions is lost
+    * [CHEF-1126] - Deleting a role is extremely slow when using couchdb 10
+    * [CHEF-1150] - "knife configure -i" uses hardcoded validation key path
+    * [CHEF-1151] - Chef Solr should not run ohai in its startup sequence
+    * [CHEF-1152] - Scientific Linux missing from chef/lib/platform.rb
+    * [CHEF-1166] - There is no need to save the node after syncing cookbooks
+    * [CHEF-1168] - RubyGems 1.3.7 will introduce an issue where Chef's
+      gem_package won't be able to install arch-specific packages
+    * [CHEF-1169] - Chef raises NotFound outside of chef server
+    * [CHEF-1170] - File lookup problems cause specs to fail on ruby 1.9.2 when run with rake
+    * [CHEF-1172] - file_spec.rb test is time zone dependent
+    * [CHEF-1173] - clients can turn themselves into admins
+    * [CHEF-1178] - rake role[role_name] does not work at all
+    * [CHEF-1181] - knife configure needs to be updated to reflect that
+  	  the validator is no longer an administrator
+    * [CHEF-462] - http_request should allow for setting HTTP Header
+    * [CHEF-489] - Ruby 1.9 Support for Chef
+    * [CHEF-510] - be able to use debian/ubuntu libjs-jquery packaged
+      library for chef-server
+    * [CHEF-600] - Refactoring RubyGems provider to use output_of_command
+  		for better diagnostics
+    * [CHEF-632] - remote_file resource should display an INFO message at
+      start of a download
+    * [CHEF-721] - support for purging managed directories
+    * [CHEF-792] - Extend the interface provider to add ethtool options
+    * [CHEF-804] - make knife 'configure' give an example of the server
+      url requested
+    * [CHEF-909] - Rollback on deploy errors
+    * [CHEF-1008] - validation key should not be an admin key
+    * [CHEF-1021] - Pass environment, group and cwd to run on deploy
+    * [CHEF-1105] - bring back the ruby/template test cache
+    * [CHEF-1109] - Add descriptive error message identifying the file
+      when an invalid metadata.json is loaded from a cookbook.
+    * [CHEF-1120] - Regex validation in the params validation mixin should
+      print regex.inspect instead of regex.to_s in the error message
+    * [CHEF-1155] - Allow 'execute' resource to accept multiple return
+      values without error.
+    * [CHEF-1171] - Knife should grow the ability to manage webui users
+    * [CHEF-1174] - Knife output format: Allow more simple output for
+      single attribute
+    * [CHEF-966] - useradd provider should support creation of system users
+    * [CHEF-1053] - Chef source code repository need a CONTRIBUTING file
+    * [CHEF-1106] - remove suse copyrighted init script
+    * [CHEF-1108] - attribute note for streaming_cookbook_uploader.rb
+      from author
+  * Fix ucf handling in postinst using templates and correct execution order.
+  * Make postinsts use tmpfiles for possibly sensitive settings.
+  * Remove files from remove_rubygems patch that no longer require rubygems.
+  * Unredistributable SuSE script removed by upstream, removed rm from
+    repack.sh.
+  * Remove minified jquery and yetii javascripts with repack.sh script.
+  * Patch in unminified jquery and yetii javascripts via quilt.
+  * Add minification to rules for jquery and yetii javascripts.
+  * Fix solr-jetty config directory (goes in /etc/chef).
+  * Patch version change to debian packaged jquery-ui.
+  * Unswitch from dpkg-source 3.0 (quilt) format.
+
+ -- Joshua Timberman <joshua at opscode.com>  Thu, 06 May 2010 15:31:09 -0600
+
+chef (0.8.10-5) unstable; urgency=low
+
+  * use system jquery (libjs-jquery, libjs-jquery-ui) instead of vendored
+    jquery for non-plugin javascripts.
+  * use ucf for managing config files modified from templates.
+  * Switch to dpkg-source 3.0 (quilt) format.
+  * remove var/run/chef from chef-server*.dirs.
+  * add remote_fs requirement to init scripts.
+
+ -- Joshua Timberman <joshua at opscode.com>  Tue, 20 Apr 2010 17:51:55 -0600
+
+chef (0.8.10-4) unstable; urgency=low
+
+  * API package conflicts with chef-server-slice.
+  * don't remove cache on removal.
+  * change ownership of /var/run/chef created by init scripts.
+  * make config files read only by owner in postinst.
+  * set update-rc.d priorities in init scripts.
+  * render config file templates in /usr/share and copy if they don't exist.
+
+ -- Joshua Timberman <joshua at opscode.com>  Sun, 18 Apr 2010 10:36:26 -0600
+
+chef (0.8.10-3) unstable; urgency=low
+
+  * Depend on adduser for postinst scripts.
+  * Clarify settings in comments of config files.
+  * Use /var/lib for cookbooks,roles,nodes instead of /srv.
+  * Add json_attribs and recipe_url examples to solo.rb.
+  * Specify conflicts for chef-indexer to ensure removal on upgrade.
+  * Add repack script to remove undistributable files.
+
+ -- Joshua Timberman <joshua at opscode.com>  Sat, 17 Apr 2010 23:48:43 -0600
+
+chef (0.8.10-2) unstable; urgency=low
+
+  * Add cache_options to server config.
+
+ -- Joshua Timberman <joshua at opscode.com>  Mon, 05 Apr 2010 16:26:29 -0600
+
+chef (0.8.10-1) unstable; urgency=low
+
+  * New upstream release.
+    * [CHEF-252] - If a template's source doesn't end in .erb, but exists, we
+      still get a 500 error.
+    * [CHEF-653] - Cron resource fails when the program takes a numerical
+      argument.
+    * [CHEF-735] - Web Slice needs a override config file.
+    * [CHEF-833] - recursive copy of cached-copy in deploy resource fails on
+      symlinked file
+    * [CHEF-946] - if rabbitmq is down, the generated web ui and validation keys
+      are lost
+    * [CHEF-1039] - chef-solr doesn't actually log to specified log file.
+    * [CHEF-1044] - Nested arrays of hashes break node indexing
+    * [CHEF-1048] - Creating an Invalid Role in WebUI causes 500
+    * [CHEF-1069] - Chef::Node does not properly validate the name parameter
+    * [CHEF-1076] - Role error messages are non-helpful to track down which
+      role caused the problem (when loading roles from filesystem)
+    * [CHEF-1083] - chef-server-webui doesn't correctly rescue load error
+      when it tries to load itself from source checkout
+    * [CHEF-1057] - Support templates that are already on the file system
+  * Use chef user/group for non-privileged server processes
+    (-server,-server-webui,-solr).
+  * Sam Ruby released xchar.rb under MIT license.
+
+ -- Joshua Timberman <joshua at opscode.com>  Thu, 01 Apr 2010 13:01:55 -0600
+
+chef (0.8.8-3) unstable; urgency=low
+
+  * Fix conflicting chef-solr in chef package.
+
+ -- Joshua Timberman <joshua at opscode.com>  Wed, 31 Mar 2010 10:24:53 -0600
+
+chef (0.8.8-2) unstable; urgency=low
+
+  * Make sure chef-solr init script is handled before chef-solr-indexer.
+  * Copyright file fixes.
+
+ -- Joshua Timberman <joshua at opscode.com>  Mon, 29 Mar 2010 01:14:49 -0600
+
+chef (0.8.8-1) unstable; urgency=low
+
+  * New upstream release (0.8.8).
+    * [CHEF-649] - cucumber.yml tags in --tags option must always start with @
+    * [CHEF-780] - Invalid file parameters of a cookbook upload request cause
+      an authentication failure
+    * [CHEF-961] - Bad use of sudo in chef-server rake tasks
+    * [CHEF-965] - chef-server logs excessively regardless of the log_level
+      setting
+    * [CHEF-1009] - "WebUIUser" fails to index, snake-casing name to invalid
+      value.
+    * [CHEF-1014] - Remote directory does not work with chef-solo.
+    * [CHEF-1015] - Permission denied to /var/chef/ca/key.pem when running
+      chef-server under non-root user
+    * [CHEF-1018] - chef-solr should report version
+    * [CHEF-959] - Add a command-line switch for the pid_file option
+    * [CHEF-1020] - Features tests should not start a merb inside the cucumber
+      process
+    * [CHEF-1033] - knife ssh should be able to use screen for real
+      interactivity
+    * [CHEF-1022] - chef-* commands should support -P or --pidfile that sets
+      Chef::Config[:pid_file]
+  * Remove quilt patches: fix_reindex, pidfile_option and chef-solr_version,
+    as they are fixed in the 0.8.8 release.
+
+ -- Joshua Timberman <joshua at opscode.com>  Thu, 18 Mar 2010 16:12:35 -0600
+
+chef (0.8.6-12) unstable; urgency=low
+
+  * Clean up package depends, recommends and suggests.
+    * chef depends on ohai so commandline tools are consistently available.
+    * chef-solr,-server,server-api need rabbitmq-server 1.6 for rabbitmqctl
+      command syntax.
+    * More consistent suggestions/recommends for chef-server/chef-server-webui
+      installations (probably want a chef-client available).
+    * More stringent version of depends/recommends.
+    * libchef-ruby1.8 suggests packages that provide commands for resources
+      that can be configured (adduser, libshadow-ruby, git, subversion, cron,
+      mdadm).
+    * libchef-ruby1.8 recommends rubygems, because gems are commonly managed.
+  * Add replaces/conflicts for previous chef packages and deprecated chef
+    packages.
+  * Remove rubygems from additional chef-solr files.
+  * Remove rubygems from chef-webui config rackup.
+
+ -- Joshua Timberman <joshua at opscode.com>  Wed, 17 Mar 2010 22:20:08 -0600
+
+chef (0.8.6-11) unstable; urgency=low
+
+  * Fixing chef-solr config to use Debian specific solr and solr-jetty
+    environment.
+    * Sets up symlinks to appropriate locations.
+    * Additional custom configs in /etc/chef/solr-jetty.
+    * Switch chef-solr init script to use java directly.
+    * /etc/chef/solr.rb should send START option for start.config file.
+
+ -- Joshua Timberman <joshua at opscode.com>  Wed, 17 Mar 2010 20:06:03 -0600
+
+chef (0.8.6-10) unstable; urgency=low
+
+  * Only set the webui admin password if the user entered a value
+  * Update the webui template about password usage/requirements.
+
+ -- Joshua Timberman <joshua at opscode.com>  Mon, 15 Mar 2010 13:51:06 -0600
+
+chef (0.8.6-9) unstable; urgency=low
+
+  * Clarify usage of chef server URI prompt debconf.
+  * Clarify usage of amqp password prompt from debconf.
+  * Clarify usage of webui password prompt from debconf.
+
+ -- Joshua Timberman <joshua at opscode.com>  Thu, 11 Mar 2010 16:43:52 -0700
+
+chef (0.8.6-8) unstable; urgency=low
+
+  * Create chef-server-webui etc/chef dir and config file properly.
+
+ -- Joshua Timberman <joshua at opscode.com>  Wed, 10 Mar 2010 22:11:20 -0700
+
+chef (0.8.6-7) unstable; urgency=low
+
+  * chef-solr-indexer's default should point to solr.rb config file.
+
+ -- Joshua Timberman <joshua at opscode.com>  Wed, 10 Mar 2010 20:10:15 -0700
+
+chef (0.8.6-6) unstable; urgency=low
+
+  * create etc in chef-server-webui.
+
+ -- Joshua Timberman <joshua at opscode.com>  Wed, 10 Mar 2010 16:30:55 -0700
+
+chef (0.8.6-5) unstable; urgency=low
+
+  * Grab the amqp_pass for chef_server as well.
+  * Fixed client config prompt.
+
+ -- Joshua Timberman <joshua at opscode.com>  Mon, 08 Mar 2010 22:09:35 -0700
+
+chef (0.8.6-4) unstable; urgency=low
+
+  * Add postinst script/config to prompt for chef_server_url for client
+    configuration.
+
+ -- Joshua Timberman <joshua at opscode.com>  Mon, 08 Mar 2010 18:07:29 -0700
+
+chef (0.8.6-3) unstable; urgency=low
+
+  * Add postinst scripts for chef-solr, chef-server-webui to prompt for
+    required passwords (amqp and webui admin).
+
+ -- Joshua Timberman <joshua at opscode.com>  Mon, 08 Mar 2010 16:08:39 -0700
+
+chef (0.8.6-2) unstable; urgency=low
+
+  * Add pidfile option for solr commands so the file gets created in the
+    proper location when start-stop-daemon starts.
+  * Comment quilt patches with description.
+  * Use ruby1.8 specifically for chef-solr commands.
+
+ -- Joshua Timberman <joshua at opscode.com>  Sun, 07 Mar 2010 01:20:32 -0700
+
+chef (0.8.6-1) unstable; urgency=low
+
+  * New upstream release (0.8.6).
+    * [CHEF-964] - Adding a bad role name to run list breaks everything for
+      that node.
+    * [CHEF-992] - A node created with a role that did not exist can not be
+      edited or deleted
+    * [CHEF-1000] - Runlist expand does not pass couchdb value on
+    * [CHEF-1010] - Yum provider ignores specified version in some circumstances
+    * [CHEF-707] - Change "gid" to "group" for the User Resource
+    * [CHEF-909] - Rollback on deploy errors
+    * [CHEF-968] - Chef rest should be more flexible with user keys and headers
+    * [CHEF-1005] - knife cookbook upload should support a list of multiple
+      cookbooks
+    * [CHEF-1012] - knife help text needs a scrub for accuracy and consistent
+      formatting
+  * Really update remove_rubygems.patch.
+  * 'libchef' Suggests rubygems and rake, for the rake tasks file.
+  * Remove *_url settings for single "chef_server_url" setting in config
+    files.
+  * Update server.rb with deprecation notices about some pre 0.8.x settings.
+  * Make sure client has verbose logging.
+  * Add /etc/default files for init script control.
+  * Quilt-patch --version support for chef-solr commands.
+  * Add man pages for chef-solr commands.
+  * Create chef-server-webui config file.
+
+ -- Joshua Timberman <joshua at opscode.com>  Thu, 04 Mar 2010 19:00:42 -0700
+
+chef (0.8.4-1) unstable; urgency=low
+
+  * New upstream release (0.8.4).
+    * [CHEF-996] - CA key not properly protected
+    * [CHEF-1003] - Cookbook Uploading does not contain an X-Chef-Version
+  * Remove fix_slice_dirs patch for (unused) chef-server-slice package.
+  * Update remove_rubygems.patch for changes since original packaging.
+
+ -- Joshua Timberman <joshua at opscode.com>  Thu, 04 Mar 2010 12:17:10 -0700
+
+chef (0.8.2-1) unstable; urgency=low
+
+  * Update versioned dependencies for mixlibs to 1.1.0.
+  * Add versioned dependency on CouchDB 0.9.1.
+  * New upstream release (0.8.2).
+    * [CHEF-219] - Attribute files need include_attribute
+    * [CHEF-291] - No high-level cookbook endpoint in REST API
+    * [CHEF-328] - CRUD Cookbooks via API
+    * [CHEF-358] - Refactor the REST API
+    * [CHEF-374] - drop outdated contrib/
+    * [CHEF-390] - Software raid provider
+    * [CHEF-417] - Add rake task to update roles in running server.
+    * [CHEF-438] - Chef::Provider::Execute doesn't honor user attribute for
+      not_if/only_if
+    * [CHEF-440] - Running chef-client with a JSON file should override the
+      node's run_list on server
+    * [CHEF-470] - role attribute deep merge only goes one level deep
+    * [CHEF-474] - Switch chef-server syntax highlighting to coderay
+    * [CHEF-491] - Should suport SSL verification
+    * [CHEF-505] - Nested Roles
+    * [CHEF-530] - chef-client daemon dies with segfault
+    * [CHEF-536] - Add server side key-pair creation
+    * [CHEF-537] - Authenticate Signed API Requests
+    * [CHEF-538] - Allow for the creation of API Clients
+    * [CHEF-539] - User Accounts
+    * [CHEF-540] - Allow association of user accounts with OpenIDs
+    * [CHEF-542] - Cookbook Uploading
+    * [CHEF-543] - Web UI should call the API exclusively
+    * [CHEF-551] - erl_call provider
+    * [CHEF-555] - Default adapter for chef-server merb should be thin
+      instead of mongrel
+    * [CHEF-573] - Add a verbose setting to allow logging to a TTY
+    * [CHEF-576] - provider for python easy_install
+    * [CHEF-584] - launching chef-client init script hangs chef-solo
+    * [CHEF-598] - Upstart service provider
+    * [CHEF-601] - Extend metadata spec based on wiki comments
+    * [CHEF-607] - cookbook loader doesn't get attributes in correct order
+    * [CHEF-616] - rake install in chef-repo breaks if there is no git
+      origin
+    * [CHEF-617] - Install to chef repository on a remote machine
+    * [CHEF-623] - Nodes are able to be created without names
+    * [CHEF-626] - Template Context should have a #node method so users
+      don't have to remember to use @node
+    * [CHEF-629] - Users *must* be able to set the action on the SCM
+      resource used by deploy
+    * [CHEF-633] - HTTP Request uses Chef::REST incorrectly
+    * [CHEF-634] - UI fails silently when unable to save node
+    * [CHEF-638] - Deploy with a revision should make that revision current
+      if it already exists
+    * [CHEF-639] - git resource fails on subsequent checkouts of the same
+      repostiry
+    * [CHEF-642] - Services no longer issue a WARN when status is not
+      present
+    * [CHEF-643] - Fix CHEF-570, as it doesn't catch package -revisions
+    * [CHEF-644] - Shebang lines should respect user's ruby
+    * [CHEF-645] - cd to /tmp breaks merb bootloader in features
+    * [CHEF-647] - Deploy resource should always run symlinks before migrate
+    * [CHEF-654] - chef-client -j against a self signed cert fails
+    * [CHEF-657] - Deploy with revision strategey did not clean up cache on
+      rollback
+    * [CHEF-659] - UI expands some escaped characters from JSON, then fails
+      to encode them again
+    * [CHEF-668] - cron resource seems to always run for non-numeric time
+      entries
+    * [CHEF-670] - knife should be smarter about the command line arguments
+    * [CHEF-671] - SCM providers should be able to specify the group
+    * [CHEF-680] -  When rake upload_cookbooks fails, it leaves behind a
+      tempdir that causes the next run to fail
+    * [CHEF-681] - 500 error when trying to retrieve a file w/o a default
+      dir
+    * [CHEF-684] - Should be possible for roles to be created without
+      anything in the run_list
+    * [CHEF-687] - shef: irb/REPL mode for chef
+    * [CHEF-688] - Deploy revision strategy does not fetch tags
+    * [CHEF-693] - Nodes should auto-expand
+    * [CHEF-694] - role override and default attributes don't get indexed
+    * [CHEF-695] - No backups kept if backup is set to 1
+    * [CHEF-696] - Cache file checksums
+    * [CHEF-698] - Validate JSON in the Web UI
+    * [CHEF-699] - solo and client modes in shef
+    * [CHEF-703] - chef search: make the default always be to iterate over
+      the results
+    * [CHEF-704] - Ruby block device does not have a default action
+    * [CHEF-705] - chef-repo with rake install should update roles via api
+    * [CHEF-706] - mount provider fails to mount samba/cifs devices
+      (Device does not exist)
+    * [CHEF-708] - add data bags support to Chef DSL
+    * [CHEF-709] - Support for backup up files in another directory than the
+      original file
+    * [CHEF-710] - knife fails silently if you lack the EDITOR env var
+    * [CHEF-722] - Link provider doesn't understand paths requiring
+      expansion
+    * [CHEF-723] - creating ssl-certs with fqdn "*.example.com" should name
+      w/ wildcard instead of *
+    * [CHEF-728] - Data bags could be Mash, not Hash
+    * [CHEF-731] - Add a screenrc to start a chef environment in screen
+    * [CHEF-732] - Remove references to chef-indexer
+    * [CHEF-734] - LWRP resources should look for provider named same by
+      default
+    * [CHEF-737] - Starting chef-server with '-c2' fails to create a couch
+      database
+    * [CHEF-741] - Web UI allows creation of a user with no name
+    * [CHEF-742] - Cron provider hangs installing new crontab
+    * [CHEF-744] - rake upload_cookbook and upload_cookbooks tasks should
+      complain when run from the wrong location.
+    * [CHEF-747] - webui needs a binary so you can run the slice outside of
+      git
+    * [CHEF-748] - chef-server-webui - config.ru and bin script
+    * [CHEF-749] - cache is not maintained with run_list; so we load items
+      from the cache that are no longer set to run in the run_list
+    * [CHEF-750] - Refactor the caching code so logic for what gets cached
+      and why is wrapped in a class
+    * [CHEF-751] - mixlib-authentication needs version tags
+    * [CHEF-753] - chef server slice should finish activating
+    * [CHEF-754] - Chef::Config.cookbook_path is in reverse order of
+      override application
+    * [CHEF-755] - "knife create_client" could accept :admin option
+    * [CHEF-756] - Specifying the run list for instance data with knife
+      should ignore commas
+    * [CHEF-758] - Webui prints generated keys with spaces and not newlines
+    * [CHEF-760] - Use AMQP drivers directly for indexing queues
+    * [CHEF-764] - webui crashes when attributes are Fixnum
+    * [CHEF-765] - when creating a user in the web-ui, it causes an indexer
+      failure to occur in solr and thus users never get indexed.
+    * [CHEF-766] - Chef should print the error message generated by the Chef
+      Server when an HTTP Exception occurs
+    * [CHEF-769] - knife should be able to specify the config file location
+    * [CHEF-774] - Chef-server does not log anything to server.log
+    * [CHEF-777] - hostnames with an _ in it, create 2 node entry's and then
+      fail during a chef-client run
+    * [CHEF-779] - rake upload_cookbook shouldn't try to upload cookbooks
+      that don't exist in the local repo
+    * [CHEF-796] - Change to mixlib-log breaks Chef::Log.level() usage
+    * [CHEF-799] - remote_directory does not work
+    * [CHEF-800] - The response from /search contains nil in some situations
+      while the Chef::Search::Query library tries to process every result
+      even it's nil
+    * [CHEF-805] - Deploy resource's scm_provider should accept a short
+      string/symbol as name instead of a fully qualified class name
+    * [CHEF-806] - knife refactored should show all the sub commands with
+      --help
+    * [CHEF-807] - SVN provider uses undefined local variables to create an
+      error message, obscuring the true cause of the error
+    * [CHEF-809] - man page for knife
+    * [CHEF-811] - knife subcommand options are invalid, not processed
+    * [CHEF-812] - file backup permissions less secure than file
+    * [CHEF-815] - knife cookbook upload fails when cookbooks are in an SVN
+      repo
+    * [CHEF-822] - Web UI differentiates between "user not found" and
+      "wrong password"
+    * [CHEF-824] - The WebUI is not detecting thin
+    * [CHEF-825] - The WebUI is a little excited about wanting you to change
+      the password and gramatically off
+    * [CHEF-826] - rest fails with an obscure error if node_name is not
+      determinable
+    * [CHEF-828] - Mixlib CLI - Preserve ARGV after @opt_parser.parse!
+    * [CHEF-832] - chef-solr does not install any binaries what so ever.
+    * [CHEF-837] - Delayed actions excute in unpredicatable order
+    * [CHEF-840] - client admin field should be checkbox not text box
+    * [CHEF-841] - knife keeps trying to upload a cookbook despite HTTP 401
+    * [CHEF-842] - duplicate copies of FileEdit: file_edit.rb & fileedit.rb
+    * [CHEF-843] - FileEdit permission issues
+    * [CHEF-856] - knife configure should allow you to create a new api user
+    * [CHEF-858] - Provider detection broken if Resource type and Provider
+      name matches
+    * [CHEF-860] - chef-web-ui status button shows 500 error
+    * [CHEF-864] - Unable to reindex chef via knife or chef-solr-rebuild
+    * [CHEF-865] - Implement retry logic when making server requests
+    * [CHEF-866] - @node and node should be available in attributes
+    * [CHEF-870] - does not close stderr when daemonising
+    * [CHEF-873] - Template provider doesn't respect the template resource's
+      cookbook option
+    * [CHEF-877] - fix :default and :required in lwrp
+    * [CHEF-880] - chef-server-api should require admin privileges to update
+      data bag items
+    * [CHEF-881] - make :name_attribute work in lwrp
+    * [CHEF-882] - slowdown due to debugging in ruby_block provider
+    * [CHEF-896] - file_backup_path include prefix in log output
+    * [CHEF-897] - package provider does not tell you about which package is
+      the cause of problems
+    * [CHEF-900] - security vulnerability in 0.8 webui
+    * [CHEF-902] - mixlib-authentication fails to generate SHA1
+    * [CHEF-904] - "Could not create work tree dir" on chef deploy
+    * [CHEF-906] - chef-server-webui refers to JSONeditor which doesn't
+      exist
+    * [CHEF-908] - Indexer fails on node properties that have invalid XML
+      character sequences
+    * [CHEF-916] - on chef-server startup, webui_user.rb:203:in
+      `create_design_document': uninitialized constant Chef::Couchdb
+      (NameError)
+    * [CHEF-918] - chef-solo fails to download remote recipes because
+      application/solo.rb no longer uses open-uri
+    * [CHEF-922] - knife ssh should accept -a ec2.public_hostname
+    * [CHEF-927] - Override and Default attributes get clobbered at recipe
+      load time
+    * [CHEF-928] - deep_merge issues with empty strings
+    * [CHEF-929] - typo in provider/deploy/revision causes rescue from
+      StandardError instead of Chef::Exceptions::FileNotFound
+    * [CHEF-931] - deep_merge mixin spits out a warning
+    * [CHEF-932] - git provider fetch strategy will not get all updates
+    * [CHEF-935] - chef-server-webui data bag item editing is broken
+    * [CHEF-937] - chef-server-api and Chef::Solr::Query bans queries for
+      api_users
+    * [CHEF-943] - add section for knife ssh to man page
+    * [CHEF-944] - chef-solr needs LICENSE information
+    * [CHEF-956] - Embed the Chef::VERSION as X-Chef-Version in HTTP request
+    * [CHEF-969] - Api client should expect 409 not 403 in save when one
+      with same name already exists
+    * [CHEF-970] - Need both class and instance methods for chef_server_rest
+    * [CHEF-971] - Changes to webui error handling
+    * [CHEF-974] - undefined chef_server_rest
+    * [CHEF-975] - client.pem is mode 644 by default
+    * [CHEF-977] - `knife configure` should prompt for validation_client
+      name and validation_key
+    * [CHEF-978] - Knife should not show HTTP Request Returned 404 Not
+      Found: Cannot load node foo as WARN when the node gets created
+      successfully
+    * [CHEF-980] - BULK DELETE (cookbook/node/client/role) requires REGEX
+    * [CHEF-989] - Search for client in the webui returns 404 when trying to
+      show the client in the search result
+
+
+ -- Joshua Timberman <joshua at opscode.com>  Sun, 28 Feb 2010 21:53:04 -0700
+
+chef (0.8.0~20100222+git+f3287fc-2) karmic; urgency=low
+
+  * Merge CHEF-975 and CHEF-984 from ~tfheen
+  * Get rid of obsolete search_dir directories.
+  * Fix up solr/jetty startup.
+
+ -- Tollef Fog Heen <tfheen at varnish-software.com>  Fri, 26 Feb 2010 10:19:58 +0100
+
+chef (0.8.0~20100222+git+f3287fc-1) karmic; urgency=low
+
+  * New upstream snapshot
+  * Install solr configuration files.
+
+ -- Tollef Fog Heen <tfheen at varnish-software.com>  Mon, 22 Feb 2010 12:05:43 +0100
+
+chef (0.8.0~20100210+git+efd1c5-1) unstable; urgency=low
+
+  * Upstream snapshot release.
+  * Add versioned depends on libextlib-ruby to ensure we get a version
+    without "require 'rubygems'"
+  * Rename chef-server-slice to chef-server-api
+  * Change depends on lib*-ruby to lib*-ruby1.8 to make versioned
+    dependencies work as well as making sure we actually have the 1.8
+    versions installed, as we depend on ruby 1.8.
+  * Change Chef::Log::Formatter to Mixlib::Log::Formatter in client.rb and
+    server.rb.
+  * Add signing_ca_{cert,key} settings to server.rb to ensure we get the
+    certificates in the right place.
+  * Rename chef-indexer to chef-solr and fix up for changes in the
+    upstream switch to solr.
+
+ -- Tollef Fog Heen <tfheen at varnish-software.com>  Wed, 10 Feb 2010 09:46:18 +0100
+
+chef (0.7.14-3) unstable; urgency=low
+
+  * Remove duplicate file_cache_path
+
+ -- Joshua Timberman <joshua at opscode.com>  Wed, 04 Nov 2009 16:33:44 -0700
+
+chef (0.7.14-2) unstable; urgency=low
+
+  * chef-server depends on chef-server-slice explicit source version.
+  * libchef-ruby depends on libchef-ruby1.8 explicit source version.
+
+ -- Joshua Timberman <joshua at opscode.com>  Thu, 29 Oct 2009 08:47:15 -0600
+
+chef (0.7.14-1) unstable; urgency=low
+
+  * New upstream release notes 0.7.12rc0.
+    * [CHEF-293] - Chef breaks on systems with non-English Locales
+    * [CHEF-501] - Fails to follow notification chains
+    * [CHEF-534] - remove execute permissions from javascripts, images, etc.
+    * [CHEF-544] - Service provider fails to set @new_resource.updated
+    * [CHEF-562] - typo in provider/ifconfig.rb
+    * [CHEF-569] - Remote File causes updates to be sent regardless
+    * [CHEF-578] - Lots of files/subdirectories in a remote_directory cause
+      most chef requests to take 11.5 seconds, and the merb process goes
+      up to 100% CPU
+    * [CHEF-503] - cookbooks UI should display the relative path of the template
+    * [CHEF-546] - Make couchdb version switcher 0.8 specific, and use the new
+      format for everything else.
+    * [CHEF-560] - refactor Chef::Provider::Group::Groupadd
+    * [CHEF-561] - Flexible application layouts for deploy resource and provider
+    * [CHEF-566] - Deploy resource/provider callbacks for before_migrate, &etc.
+      should support in-line recipes
+    * [CHEF-568] - Increase logging for Remote File status, including checksum
+    * [CHEF-580] - faster find_preferred_file
+    * [CHEF-582] - group resource should allow users or members as a parameter
+    * [CHEF-145] - Cron resource: add support for setting cron ENV vars
+    * [CHEF-419] - Create SCM resource and providers for git & svn
+    * [CHEF-496] - add simple service provider to chef
+    * [CHEF-571] - LWRP unit tests
+  * New upstream release notes 0.7.14.
+    * [CHEF-565] - dpkg provider fails at packages with a dash in it
+    * [CHEF-577] - provider.rb doesn't give @definitions default of Hash.new
+    * [CHEF-588] - RC is missing debugging info in find_preferred_file
+    * [CHEF-591] - process table inspection fails in simple service provider
+    * [CHEF-593] - deploy resource is not idempotent
+    * [CHEF-602] - in deploy provider, callback-defined resources are executed
+      in all subsequent callbacks
+    * [CHEF-603] - deploy: gems.yml support
+    * [CHEF-604] - deploy: sudo / run command handler support
+    * [CHEF-614] - LWRP  undefined local variable or method `new_resource'
+    * [CHEF-621] - LWRP dynamic attribute methods are Ruby 1.9 incompatible
+    * [CHEF-628] - Deploy resource removes newest release instead of oldest
+    * [CHEF-640] - SCM providers do not set resource updated (notifications)
+    * [CHEF-620] - LWRP components should be shown in Web UI
+    * [CHEF-622] - Gem Package r/p shouldn't silently ignore the options attr
+    * [CHEF-631] - Should create LWRP resources/providers for new_cookbook
+  * Watch file should look for version prior to 0.8 for now.
+
+ -- Joshua Timberman <joshua at opscode.com>  Wed, 28 Oct 2009 22:52:42 -0600
+
+chef (0.7.10-0ubuntu1) karmic; urgency=low
+
   * New upstream release
   * Upstream patch for couchdb 0.10.0 (CHEF-515, quilt patch removed)
   * Fix client logging to file (CHEF-287)
   * Fix config log_location settings (CHEF-500)
   * Requires libmixlib-config-ruby (>= 1.0.12)
   * Suggest, not recommend, rubygems (LP: #424131)
-  * Remove lintian override for jquery.js warning,
-     + evaluating removal of jquery.js in upstream ticket 
-       http://tickets.opscode.com/browse/CHEF-510
+  * Update watch file to use apt.opscode.com instead of githubredir.
 
-  [ Gunnar Wolf ]
-  * Fix debian/watch to ignore non-numeric tags
+ -- Joshua Timberman <joshua at opscode.com>  Fri, 04 Sep 2009 09:31:46 -0600
 
-  [ Paul van Tilburg]
-  * debian/watch: changed the regexp so that it makes PET happy too.
-
- -- Paul van Tilburg <paulvt at debian.org>  Sat, 20 Feb 2010 17:18:52 +0100
-
 chef (0.7.8-0ubuntu2) karmic; urgency=low
 
   * Add couchdb_0.10.0_support.patch patch to make chef-server working with

Modified: trunk/chef/debian/chef-client.8
===================================================================
--- trunk/chef/debian/chef-client.8	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef-client.8	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,5 +1,4 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
-.TH CHEF-CLIENT: "8" "August 2009" "chef-client 0.7.8" "System Administration Utilities"
+.TH CHEF-CLIENT: "8" "August 2009" "chef-client" "System Administration Utilities"
 .SH NAME
 chef-client: \- Runs a client node connecting to a chef-server.
 .SH SYNOPSIS
@@ -33,6 +32,9 @@
 \fB\-L\fR, \fB\-\-logfile\fR LOGLOCATION
 Set the log file location, defaults to STDOUT \- recommended for daemonizing
 .TP
+\fB\-V\fR, \fB\-\-verbose\fR
+Ensures logging goes to STDOUT as well as to other configured log location(s).
+.TP
 \fB\-N\fR, \fB\-\-node\-name\fR NODE_NAME
 The node name for this client
 .TP

Added: trunk/chef/debian/chef-client.default
===================================================================
--- trunk/chef/debian/chef-client.default	                        (rev 0)
+++ trunk/chef/debian/chef-client.default	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,4 @@
+LOGFILE=/var/log/chef/client.log
+CONFIG=/etc/chef/client.rb
+INTERVAL=1800
+SPLAY=20

Modified: trunk/chef/debian/chef-client.init
===================================================================
--- trunk/chef/debian/chef-client.init	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef-client.init	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,36 +1,36 @@
 #! /bin/sh
 ### BEGIN INIT INFO
 # Provides:           chef-client
-# Required-Start:     $network
-# Required-Stop:      $network
+# Required-Start:     $remote_fs $network
+# Required-Stop:      $remote_fs $network
 # Default-Start:      2 3 4 5
 # Default-Stop:       0 1 6
 # Short-Description:  Start a chef-client.
 ### END INIT INFO
 #
-# Copyright (c) 2009 Joshua Timberman, <joshua at opscode.com>
+# Copyright (c) 2009-2010 Opscode, Inc, <legal at opscode.com>
 #
 # chef-client         Startup script for chef-client.
-# chkconfig: - 98 02
+# chkconfig: - 99 02
 # description: starts up chef-client in daemon mode.
 
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 DAEMON=/usr/bin/chef-client
 NAME=chef-client
 DESC=chef-client
-LOGDIR=/var/log/chef
-CONFIG=/etc/chef/client.rb
 PIDFILE=/var/run/chef/client.pid
 
 test -x $DAEMON || exit 0
 
 . /lib/lsb/init-functions
 
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
 if [ ! -d /var/run/chef ]; then
   mkdir /var/run/chef
 fi
 
-DAEMON_OPTS="-d -c $CONFIG -i 1800 -s 20"
+DAEMON_OPTS="-L $LOGFILE -d -c $CONFIG -i $INTERVAL -s $SPLAY"
 
 running_pid() {                                                                 
   pid=$1

Added: trunk/chef/debian/chef-server-api.dirs
===================================================================
--- trunk/chef/debian/chef-server-api.dirs	                        (rev 0)
+++ trunk/chef/debian/chef-server-api.dirs	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,4 @@
+var/cache/chef
+var/lib/chef/cookbooks
+usr/share/doc/chef-server-api
+usr/share/chef-server-api/app

Added: trunk/chef/debian/chef-server-api.postrm
===================================================================
--- trunk/chef/debian/chef-server-api.postrm	                        (rev 0)
+++ trunk/chef/debian/chef-server-api.postrm	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,26 @@
+#!/bin/sh
+# postrm script for chef-server-slice
+#
+# see: dh_installdeb(1)
+
+set -e
+
+case "$1" in
+    remove)
+      rm -rf /var/cache/chef
+    ;;
+    purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Added: trunk/chef/debian/chef-server-webui.1
===================================================================
--- trunk/chef/debian/chef-server-webui.1	                        (rev 0)
+++ trunk/chef/debian/chef-server-webui.1	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,106 @@
+.TH CHEF-SERVER-WEBUI "1" "March 2010" "chef-server-webui" "User Commands"
+.SH NAME
+chef-server-webui \- Start the Chef Server merb application slice providing Web User Interface.
+.SH SYNOPSIS
+.B chef-server-webui
+[\fIuGdcIpPhmailLerkKX\fR] [\fIargument\fR]
+.SH DESCRIPTION
+The Chef Server WebUI is a Merb application slice. The default listen port is 4040.
+.TP
+\fB\-u\fR, \fB\-\-user\fR USER
+This flag is for having chef-server-webui run as a user other than the one currently logged in. Note: if you set this you must also provide a \fB\-\-group\fR option for it to take effect.
+.TP
+\fB\-G\fR, \fB\-\-group\fR GROUP
+This flag is for having chef-server-webui run as a group other than the one currently logged in. Note: if you set this you must also provide a \fB\-\-user\fR option for it to take effect.
+.TP
+\fB\-d\fR, \fB\-\-daemonize\fR
+This will run a single chef-server-webui in the background.
+.TP
+\fB\-N\fR, \fB\-\-no\-daemonize\fR
+This will allow you to run a cluster in console mode
+.TP
+\fB\-c\fR, \fB\-\-cluster\-nodes\fR NUM_MERBS
+Number of merb daemons to run for chef-server-webui.
+.TP
+\fB\-I\fR, \fB\-\-init\-file\fR FILE
+File to use for initialization on load, defaults to config/init.rb
+.TP
+\fB\-p\fR, \fB\-\-port\fR PORTNUM
+Port to run chef-server-webui on, defaults to 4040. Additional nodes (\-c) listen on incrementing port numbers.
+.TP
+\fB\-o\fR, \fB\-\-socket\-file\fR FILE
+Socket file to run chef-server-webui on, defaults to [Merb.root]/log/merb.sock. This is for web servers, like thin, that use sockets.Specify this *only* if you *must*.
+.TP
+\fB\-s\fR, \fB\-\-socket\fR SOCKNUM
+Socket number to run chef-server-webui on, defaults to 0.
+.TP
+\fB\-n\fR, \fB\-\-name\fR NAME
+Set the name of the application. This is used in the process title and log file names.
+.TP
+\fB\-P\fR, \fB\-\-pid\fR PIDFILE
+PID file, defaults to [Merb.root]/log/merb.main.pid for the master process and[Merb.root]/log/merb.[port number].pid for worker processes. For clusters, use %s to specify where in the file chef-server-webui should place the port number. For instance: \fB\-P\fR myapp.%s.pid
+.TP
+\fB\-h\fR, \fB\-\-host\fR HOSTNAME
+Host to bind to (default is 0.0.0.0).
+.HP
+\fB\-m\fR, \fB\-\-merb\-root\fR /path/to/approot The path to the Merb.root for the app you want to run (default is current working directory).
+.TP
+\fB\-a\fR, \fB\-\-adapter\fR ADAPTER
+The rack adapter to use to run chef-server-webui (default is mongrel)[mongrel, emongrel, thin, ebb, fastcgi, webrick]
+.TP
+\fB\-R\fR, \fB\-\-rackup\fR FILE
+Load an alternate Rack config file (default is config/rack.rb)
+.TP
+\fB\-i\fR, \fB\-\-irb\-console\fR
+This flag will start chef-server-webui in irb console mode. All your models and other classes will be available for you in an irb session.
+.TP
+\fB\-S\fR, \fB\-\-sandbox\fR
+This flag will enable a sandboxed irb console. If your ORM supports transactions, all edits will be rolled back on exit.
+.TP
+\fB\-l\fR, \fB\-\-log\-level\fR LEVEL
+Log levels can be set to any of these options: debug < info < warn < error < fatal (default is info)
+.TP
+\fB\-L\fR, \fB\-\-log\fR LOGFILE
+A string representing the logfile to use. Defaults to [Merb.root]/log/merb.[main].log for the master process and [Merb.root]/log/merb[port number].logfor worker processes
+.TP
+\fB\-e\fR, \fB\-\-environment\fR STRING
+Environment to run Merb under [development, production, testing] (default is development)
+.HP
+\fB\-r\fR ['RUBY CODE'| FULL_SCRIPT_PATH]
+.TP
+\fB\-\-script\-runner\fR
+Command\-line option to run scripts and/or code in the chef-server-webui app.
+.TP
+\fB\-K\fR, \fB\-\-graceful\fR PORT or all
+Gracefully kill chef-server-webui proceses by port number.  Use chef-server \fB\-K\fR all to gracefully kill all merbs.
+.TP
+\fB\-k\fR, \fB\-\-kill\fR PORT
+Force kill one merb worker by port number. This will cause the worker tobe respawned.
+.TP
+\fB\-\-fast\-deploy\fR
+Reload the code, but not yourinit.rb or gems
+.TP
+\fB\-X\fR, \fB\-\-mutex\fR on/off
+This flag is for turning the mutex lock on and off.
+.TP
+\fB\-D\fR, \fB\-\-debugger\fR
+Run chef-server-webui using rDebug.
+.TP
+\fB\-V\fR, \fB\-\-verbose\fR
+Print extra information
+.TP
+\fB\-C\fR, \fB\-\-console\-trap\fR
+Enter an irb console on ^C
+.TP
+\-?, \fB\-H\fR, \fB\-\-help\fR
+Show this help message
+.SH "SEE ALSO"
+Full documentation for Chef and chef-server-webui is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home.
+.SH AUTHOR
+Chef was written by Adam Jacob <adam at ospcode.com> of Opscode (http://www.opscode.com), with contributions from the community.
+This manual page was written by Joshua Timberman <joshua at opscode.com> with help2man
+for the Debian project (but may be used by others).. Permission is granted
+  to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+  On Debian systems, the complete text of the Apache 2.0 License can be found in
+  /usr/share/common-licenses/Apache-2.0.

Added: trunk/chef/debian/chef-server-webui.chef-server-webui.default
===================================================================
--- trunk/chef/debian/chef-server-webui.chef-server-webui.default	                        (rev 0)
+++ trunk/chef/debian/chef-server-webui.chef-server-webui.default	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,6 @@
+LOGFILE=/var/log/chef/server-webui.log
+CONFIG=/etc/chef/webui.rb
+ADAPTER=thin
+PORT=4040
+USER=chef
+GROUP=chef

Added: trunk/chef/debian/chef-server-webui.chef-server-webui.init
===================================================================
--- trunk/chef/debian/chef-server-webui.chef-server-webui.init	                        (rev 0)
+++ trunk/chef/debian/chef-server-webui.chef-server-webui.init	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,121 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:           chef-server-webui
+# Required-Start:     $remote_fs $network chef-server
+# Required-Stop:      $remote_fs $network chef-server
+# Default-Start:      2 3 4 5
+# Default-Stop:       0 1 6
+# Short-Description:  Start a chef-server-webui
+### END INIT INFO
+#
+# Copyright (c) 2009-2010 Opscode, Inc <legal at opscode.com>
+#
+# chef-server-webui   Startup script for chef-server-webui.
+# chkconfig: - 95 02
+# description: starts up chef-server webui.
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/bin/chef-server-webui
+PIDFILE=/var/run/chef/server-webui.%s.pid
+MAINPID=/var/run/chef/server-webui.main.pid
+NAME=chef-server-webui
+DESC=chef-server-webui
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+if [ ! -d /var/run/chef ]; then
+  mkdir /var/run/chef
+  chown $USER:$GROUP /var/run/chef
+fi
+
+DAEMON_OPTS="-p $PORT -e production -d -a $ADAPTER -P $PIDFILE -L $LOGFILE -C $CONFIG -u $USER -G $GROUP"
+
+running() {
+  [ ! -f  "$MAINPID" ] &&  return 1
+  pid=`cat $MAINPID`
+  name=$WORKER
+  [ -z "$pid" ] && return 1
+  [ ! -d /proc/$pid ] && return 1
+  (ps -fp $pid | egrep -q "merb.*(merb : master|worker.*$PORT)") || return 1
+  return 0
+}
+
+start_server() {
+  $DAEMON $DAEMON_OPTS
+  errcode=$?
+  return $errcode
+}
+
+stop_server() {
+  $DAEMON -K all -P $PIDFILE
+  errcode=$?
+  return $errcode
+}
+
+reload_server() {
+  stop_server
+  start_server
+}
+
+case "$1" in
+  start)
+    log_daemon_msg "Starting $DESC "
+    if running ;  then
+        log_progress_msg "apparently already running"
+        log_end_msg 0
+        exit 0
+    fi
+    if start_server ; then
+        sleep 1
+        if  running ;  then
+            log_end_msg 0
+        else
+            log_end_msg 1
+        fi
+    else
+        log_end_msg 1
+    fi
+    ;;
+  stop)
+    log_daemon_msg "Stopping $DESC"
+    if running ; then
+      errcode=0
+      stop_server || errcode=$?
+      log_end_msg $errcode
+    else
+      log_progress_msg "apparently not running"
+      log_end_msg 0
+      exit 0
+    fi
+    ;;
+  restart|force-reload)
+    log_daemon_msg "Restarting $DESC"
+    errcode=0
+    reload_server
+    running && errcode=$?
+    log_end_msg $errcode
+    ;;
+  status)
+    log_daemon_msg "Checking status of $DESC"
+    if running ;  then
+      log_progress_msg "running"
+      log_end_msg 0
+    else
+      log_progress_msg "apparently not running"
+      log_end_msg 1
+      exit 3
+    fi
+    ;;
+  *)
+    N=/etc/init.d/$NAME
+    echo "Usage: $N {start|stop|restart|status}" >&2
+    exit 1
+    ;;
+esac
+
+exit 0
+

Added: trunk/chef/debian/chef-server-webui.config
===================================================================
--- trunk/chef/debian/chef-server-webui.config	                        (rev 0)
+++ trunk/chef/debian/chef-server-webui.config	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,21 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+case "$1" in
+  configure|reconfigure)
+    db_input high chef-server-webui/admin_password || true
+    db_go
+  ;;
+
+  *)
+    echo "config called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+db_stop 
+
+exit 0

Added: trunk/chef/debian/chef-server-webui.dirs
===================================================================
--- trunk/chef/debian/chef-server-webui.dirs	                        (rev 0)
+++ trunk/chef/debian/chef-server-webui.dirs	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,8 @@
+etc/chef
+var/lib/chef/openid
+var/lib/chef/openid/store
+var/lib/chef/openid/cstore
+var/cache/chef
+var/log/chef
+usr/share/doc/chef-server-webui
+usr/share/chef-server-webui/app

Added: trunk/chef/debian/chef-server-webui.links
===================================================================
--- trunk/chef/debian/chef-server-webui.links	                        (rev 0)
+++ trunk/chef/debian/chef-server-webui.links	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1 @@
+/usr/share/javascript/jquery/jquery.js /usr/share/chef-server-webui/public/javascripts/jquery-1.3.2.min.js

Added: trunk/chef/debian/chef-server-webui.logrotate
===================================================================
--- trunk/chef/debian/chef-server-webui.logrotate	                        (rev 0)
+++ trunk/chef/debian/chef-server-webui.logrotate	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,8 @@
+/var/log/chef/server-webui.log /var/log/chef/merb-webui*log {
+  rotate 12
+  weekly
+  compress
+  postrotate
+  /usr/sbin/invoke-rc.d chef-server-webui force-reload > /dev/null
+  endscript
+}

Added: trunk/chef/debian/chef-server-webui.postinst
===================================================================
--- trunk/chef/debian/chef-server-webui.postinst	                        (rev 0)
+++ trunk/chef/debian/chef-server-webui.postinst	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,57 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+. /etc/default/chef-server-webui
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+TEMPLATE=/usr/share/chef-server-webui/webui.rb
+TMPDIR=`mktemp -d` # used for holding temp files
+TMPFILE=`mktemp -p ${TMPDIR}` # used for holding rendered template
+CONFIGFILE=/etc/chef/webui.rb
+
+case "$1" in
+  configure)
+    db_get chef-server-webui/admin_password && chef_webui_pass="$RET"
+		tsed=`mktemp -p ${TMPDIR}`
+    cat << EOF > $tsed
+s/^web_ui_admin_default_password \".*\"/web_ui_admin_default_password \"$chef_webui_pass\"/g
+EOF
+    if [ -n "$chef_webui_pass" ]; then
+      sed -f $tsed $TEMPLATE > $TMPFILE
+    fi
+    ucf --debconf-ok $TMPFILE $CONFIGFILE
+    test -f $CONFIGFILE && chmod 0640 $CONFIGFILE
+    rm -rf $TMPDIR
+    # the jquery-ui javascript file doesn't have a consistent name across
+    # debian and ubuntu versions. Symlink it here with a wildcard works.
+    ln -fs /usr/share/javascript/jquery-ui/jquery-ui*.min.js /usr/share/chef-server-webui/public/javascripts/jquery-ui-1.7.1.custom.min.js
+    if ! getent passwd chef > /dev/null; then
+      adduser --system --quiet \
+        --home /var/lib/chef --no-create-home \
+        --shell /bin/false --group --gecos "Chef Daemon" chef
+    fi
+    chown -R $USER:$GROUP /etc/chef
+    chown -R $USER:$GROUP /var/lib/chef
+    chown -R $USER:$GROUP /var/log/chef
+    chown -R $USER:$GROUP /var/cache/chef
+    chown -R $USER:$GROUP /var/run/chef
+  ;;
+
+  abort-upgrade|abort-remove|abort-deconfigure)
+  ;;
+
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+db_stop 
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Added: trunk/chef/debian/chef-server-webui.postrm
===================================================================
--- trunk/chef/debian/chef-server-webui.postrm	                        (rev 0)
+++ trunk/chef/debian/chef-server-webui.postrm	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,34 @@
+#!/bin/sh
+# postrm script for chef-server-webui
+#
+# see: dh_installdeb(1)
+
+set -e
+
+TEMPLATE=/usr/share/chef/webui.rb
+CONFIGFILE=/etc/chef/webui.rb
+
+case "$1" in
+    remove)
+    ;;
+    purge)
+      rm -rf /var/log/chef/server-webui*
+      rm -rf /var/log/chef/merb-webui*
+      test -x /usr/bin/ucf && ucf --purge $TEMPLATEFILE $CONFIGFILE
+      rm -rf $CONFIGFILE $CONFIGFILE.ucf-old $CONFIGFILE.ucf-new $CONFIGFILE.ucf-dist
+    ;;
+    upgrade|failed-upgrade|abort-install|abort-upgrade|disappear|remove)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Added: trunk/chef/debian/chef-server-webui.templates
===================================================================
--- trunk/chef/debian/chef-server-webui.templates	                        (rev 0)
+++ trunk/chef/debian/chef-server-webui.templates	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,16 @@
+Template: chef-server-webui/admin_password
+Type: password
+_Description: New password for the 'admin' user in the Chef Server WebUI:
+  This sets a temporary first-use password to log into the Chef Server WebUI
+  as the 'admin' user for the first time. Once logged in, the password should
+  be changed immediately.
+  .
+  Once the chef-server-webui process is running, login using the username
+  'admin' using the password set here.
+  .
+  If a password is not entered, the webui default password for 'admin' will
+  be used, which is displayed on the webui home page. The password must be 
+  at least 6 characters or the webui will not start properly.
+  .
+  This will be used in /etc/chef/webui.rb as 'web_ui_admin_default_password'.
+  .

Modified: trunk/chef/debian/chef-server.1
===================================================================
--- trunk/chef/debian/chef-server.1	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef-server.1	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,4 +1,3 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
 .TH CHEF-SERVER "1" "August 2009" "chef-server" "User Commands"
 .SH NAME
 chef-server \- Start the Chef Server merb application slice.

Added: trunk/chef/debian/chef-server.chef-server.default
===================================================================
--- trunk/chef/debian/chef-server.chef-server.default	                        (rev 0)
+++ trunk/chef/debian/chef-server.chef-server.default	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,6 @@
+LOGFILE=/var/log/chef/server.log
+CONFIG=/etc/chef/server.rb
+ADAPTER=thin
+PORT=4000
+USER=chef
+GROUP=chef

Added: trunk/chef/debian/chef-server.chef-server.init
===================================================================
--- trunk/chef/debian/chef-server.chef-server.init	                        (rev 0)
+++ trunk/chef/debian/chef-server.chef-server.init	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,120 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:           chef-server
+# Required-Start:     $remote_fs $network rabbitmq-server couchdb
+# Required-Stop:      $remote_fs $network rabbitmq-server couchdb
+# Default-Start:      2 3 4 5
+# Default-Stop:       0 1 6
+# Short-Description:  Start a chef-server.
+### END INIT INFO
+#
+# Copyright (c) 2009-2010 Opscode, Inc <legal at opscode.com>
+#
+# chef-server         Startup script for chef-server.
+# chkconfig: - 90 02
+# description: starts up chef-server webui.
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/bin/chef-server
+PIDFILE=/var/run/chef/server.%s.pid
+MAINPID=/var/run/chef/server.main.pid
+NAME=chef-server
+DESC=chef-server
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+if [ ! -d /var/run/chef ]; then
+  mkdir /var/run/chef
+  chown $USER:$GROUP /var/run/chef
+fi
+
+DAEMON_OPTS="-p $PORT -e production -d -a $ADAPTER -P $PIDFILE -L $LOGFILE -C $CONFIG -u $USER -G $GROUP"
+
+running() {
+  [ ! -f  "$MAINPID" ] &&  return 1
+  pid=`cat $MAINPID`
+  [ -z "$pid" ] && return 1
+  [ ! -d /proc/$pid ] && return 1
+  (ps -fp $pid | egrep -q "merb.*(merb : master|worker.*$PORT)") || return 1
+  return 0
+}
+
+start_server() {
+  $DAEMON $DAEMON_OPTS
+  errcode=$?
+  return $errcode
+}
+
+stop_server() {
+  $DAEMON -K all -P $PIDFILE
+  errcode=$?
+  return $errcode
+}
+
+reload_server() {
+  stop_server
+  start_server
+}
+
+case "$1" in
+  start)
+    log_daemon_msg "Starting $DESC "
+    if running ;  then
+        log_progress_msg "apparently already running"
+        log_end_msg 0
+        exit 0
+    fi
+    if start_server ; then
+        sleep 1
+        if  running ;  then
+            log_end_msg 0
+        else
+            log_end_msg 1
+        fi
+    else
+        log_end_msg 1
+    fi
+    ;;
+  stop)
+    log_daemon_msg "Stopping $DESC"
+    if running ; then
+      errcode=0
+      stop_server || errcode=$?
+      log_end_msg $errcode
+    else
+      log_progress_msg "apparently not running"
+      log_end_msg 0
+      exit 0
+    fi
+    ;;
+  restart|force-reload)
+    log_daemon_msg "Restarting $DESC"
+    errcode=0
+    reload_server
+    running && errcode=$?
+    log_end_msg $errcode
+    ;;
+  status)
+    log_daemon_msg "Checking status of $DESC"
+    if running ;  then
+      log_progress_msg "running"
+      log_end_msg 0
+    else
+      log_progress_msg "apparently not running"
+      log_end_msg 1
+      exit 3
+    fi
+    ;;
+  *)
+    N=/etc/init.d/$NAME
+    echo "Usage: $N {start|stop|restart|status}" >&2
+    exit 1
+    ;;
+esac
+
+exit 0
+

Modified: trunk/chef/debian/chef-server.dirs
===================================================================
--- trunk/chef/debian/chef-server.dirs	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef-server.dirs	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,10 +1,8 @@
 var/cache/chef
 var/lib/chef/cookbooks
-var/lib/chef/openid
-var/lib/chef/openid/store
-var/lib/chef/openid/cstore
 var/log/chef
 usr/share/doc/chef-server
 usr/share/chef-server
 etc/chef
 etc/chef/certificates
+usr/bin

Added: trunk/chef/debian/chef-server.links
===================================================================
--- trunk/chef/debian/chef-server.links	                        (rev 0)
+++ trunk/chef/debian/chef-server.links	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1 @@
+/usr/share/javascript/jquery/jquery.js /usr/share/chef-server/public/javascripts/jquery.js

Modified: trunk/chef/debian/chef-server.logrotate
===================================================================
--- trunk/chef/debian/chef-server.logrotate	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef-server.logrotate	2010-05-23 06:22:18 UTC (rev 5392)
@@ -3,7 +3,6 @@
   weekly
   compress
   postrotate
-  /etc/init.d/chef-server force-reload
+	/usr/sbin/invoke-rc.d chef-server force-reload > /dev/null
   endscript
 }
-

Modified: trunk/chef/debian/chef-server.manpages
===================================================================
--- trunk/chef/debian/chef-server.manpages	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef-server.manpages	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1 +1,2 @@
 debian/chef-server.1
+debian/chef-server-webui.1

Added: trunk/chef/debian/chef-server.postinst
===================================================================
--- trunk/chef/debian/chef-server.postinst	                        (rev 0)
+++ trunk/chef/debian/chef-server.postinst	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,54 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+. /etc/default/chef-server
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+TEMPLATE=/usr/share/chef-server/server.rb
+TMPDIR=`mktemp -d` # used for holding temp files
+TMPFILE=`mktemp -p ${TMPDIR}` # used for holding rendered template
+CONFIGFILE=/etc/chef/server.rb
+
+case "$1" in
+  configure)
+    db_get chef-solr/amqp_password && amqp_pass="$RET"
+    tsed=`mktemp -p ${TMPDIR}`
+    cat << EOF > $tsed
+s/^amqp_pass \".*\"/amqp_pass \"${amqp_pass}\"/g
+EOF
+    if [ ! -z "$amqp_pass" ]; then
+      sed -f $tsed $TEMPLATE > $TMPFILE
+    fi
+    ucf --debconf-ok $TMPFILE $CONFIGFILE
+    test -f $CONFIGFILE && chmod 0640 $CONFIGFILE
+    rm -rf $TMPDIR
+    if ! getent passwd chef > /dev/null; then
+      adduser --system --quiet \
+        --home /var/lib/chef --no-create-home \
+        --shell /bin/false --group --gecos "Chef Daemon" chef
+    fi
+    chown -R $USER:$GROUP /etc/chef
+    chown -R $USER:$GROUP /var/lib/chef
+    chown -R $USER:$GROUP /var/log/chef
+    chown -R $USER:$GROUP /var/cache/chef
+    chown -R $USER:$GROUP /var/run/chef
+  ;;
+
+  abort-upgrade|abort-remove|abort-deconfigure)
+  ;;
+
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+db_stop
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Modified: trunk/chef/debian/chef-server.postrm
===================================================================
--- trunk/chef/debian/chef-server.postrm	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef-server.postrm	2010-05-23 06:22:18 UTC (rev 5392)
@@ -5,13 +5,17 @@
 
 set -e
 
+TEMPLATE=/usr/share/chef/server.rb
+CONFIGFILE=/etc/chef/server.rb
+
 case "$1" in
     remove)
-      rm -rf /var/cache/chef
     ;;
     purge)
-      rm -rf /var/log/chef/server*
-      rm -rf /var/log/chef/merb*
+      rm -rf /var/log/chef/server.log*
+      rm -rf /var/log/chef/merb.log*
+      test -x /usr/bin/ucf && ucf --purge $TEMPLATEFILE $CONFIGFILE
+      rm -rf $CONFIGFILE $CONFIGFILE.ucf-old $CONFIGFILE.ucf-new $CONFIGFILE.ucf-dist
     ;;
     upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
     ;;

Modified: trunk/chef/debian/chef-solo.8
===================================================================
--- trunk/chef/debian/chef-solo.8	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef-solo.8	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,5 +1,4 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
-.TH CHEF-SOLO: "8" "August 2009" "chef-solo 0.7.8" "System Administration Utilities"
+.TH CHEF-SOLO: "8" "August 2009" "chef-solo" "System Administration Utilities"
 .SH NAME
 chef-solo: \- Runs chef in solo mode against a specified cookbook location.
 .SH SYNOPSIS

Added: trunk/chef/debian/chef-solr-indexer.1
===================================================================
--- trunk/chef/debian/chef-solr-indexer.1	                        (rev 0)
+++ trunk/chef/debian/chef-solr-indexer.1	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,55 @@
+.TH CHEF-SOLR-INDEXER: "1" "March 2010" "chef-solr-indexer" "User Commands"
+.SH NAME
+chef-solr-indexer: \- manual page for chef-solr-indexer
+.SH SYNOPSIS
+.B chef-solr-indexer
+\fI(options)\fR
+.SH DESCRIPTION
+.TP
+\fB\-\-amqp\-host\fR HOST
+The amqp host
+.TP
+\fB\-\-amqp\-pass\fR PASS
+The amqp password
+.TP
+\fB\-\-amqp\-port\fR PORT
+The amqp port
+.TP
+\fB\-\-amqp\-user\fR USER
+The amqp user
+.TP
+\fB\-\-amqp\-vhost\fR VHOST
+The amqp vhost
+.TP
+\fB\-c\fR, \fB\-\-config\fR CONFIG
+The configuration file to use
+.TP
+\fB\-d\fR, \fB\-\-daemonize\fR
+Daemonize the process
+.TP
+\fB\-g\fR, \fB\-\-group\fR GROUP
+Group to set privilege to
+.TP
+\fB\-l\fR, \fB\-\-log_level\fR LEVEL
+Set the log level (debug, info, warn, error, fatal)
+.TP
+\fB\-L\fR, \fB\-\-logfile\fR LOGLOCATION
+Set the log file location, defaults to STDOUT \- recommended for daemonizing
+.TP
+\fB\-u\fR, \fB\-\-user\fR USER
+User to set privilege to
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Show chef\-solr\-indexer version
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Show this message
+.SH "SEE ALSO"
+Full documentation for Chef and chef-solr is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home.
+.SH AUTHOR
+chef-solr-indexer was written by Adam Jacob <adam at ospcode.com> of Opscode (http://www.opscode.com), with contributions from the community.
+This manual page was written by Joshua Timberman <joshua at opscode.com> with help2man. Permission is granted
+to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+On Debian systems, the complete text of the Apache 2.0 License can be found in
+/usr/share/common-licenses/Apache-2.0.

Added: trunk/chef/debian/chef-solr-rebuild.8
===================================================================
--- trunk/chef/debian/chef-solr-rebuild.8	                        (rev 0)
+++ trunk/chef/debian/chef-solr-rebuild.8	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,37 @@
+.TH CHEF-SOLR-REBUILD: "1" "March 2010" "chef-solr-rebuild" "User Commands"
+.SH NAME
+chef-solr-rebuild: \- manual page for chef-solr-rebuild
+.SH SYNOPSIS
+.B chef-solr-rebuild
+\fI(options)\fR
+.SH DESCRIPTION
+.TP
+\fB\-c\fR, \fB\-\-config\fR CONFIG
+The configuration file to use
+.TP
+\fB\-d\fR, \fB\-\-couchdb\-database\fR DB
+The CouchDB Database to re\-index
+.TP
+\fB\-u\fR, \fB\-\-couchdb\-url\fR URL
+The CouchDB URL
+.TP
+\fB\-l\fR, \fB\-\-log_level\fR LEVEL
+Set the log level (debug, info, warn, error, fatal)
+.TP
+\fB\-L\fR, \fB\-\-logfile\fR LOGLOCATION
+Set the log file location, defaults to STDOUT \- recommended for daemonizing
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Show chef\-solr\-rebuild version
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Show this message
+.SH "SEE ALSO"
+Full documentation for Chef and chef-solr is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home.
+.SH AUTHOR
+chef-solr-rebuild was written by Adam Jacob <adam at ospcode.com> of Opscode (http://www.opscode.com), with contributions from the community.
+This manual page was written by Joshua Timberman <joshua at opscode.com> with help2man. Permission is granted
+to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+On Debian systems, the complete text of the Apache 2.0 License can be found in
+/usr/share/common-licenses/Apache-2.0.

Added: trunk/chef/debian/chef-solr.1
===================================================================
--- trunk/chef/debian/chef-solr.1	                        (rev 0)
+++ trunk/chef/debian/chef-solr.1	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,55 @@
+.TH CHEF-SOLR: "1" "March 2010" "chef-solr" "User Commands"
+.SH NAME
+chef-solr: \- manual page for chef-solr
+.SH SYNOPSIS
+.B chef-solr
+\fI(options)\fR
+.SH DESCRIPTION
+.TP
+\fB\-c\fR, \fB\-\-config\fR CONFIG
+The configuration file to use
+.TP
+\fB\-d\fR, \fB\-\-daemonize\fR
+Daemonize the process
+.TP
+\fB\-g\fR, \fB\-\-group\fR GROUP
+Group to set privilege to
+.TP
+\fB\-l\fR, \fB\-\-log_level\fR LEVEL
+Set the log level (debug, info, warn, error, fatal)
+.TP
+\fB\-L\fR, \fB\-\-logfile\fR LOGLOCATION
+Set the log file location, defaults to STDOUT \- recommended for daemonizing
+.TP
+\fB\-D\fR, \fB\-\-solr\-data\-dir\fR PATH
+Where the Solr data lives
+.TP
+\fB\-x\fR, \fB\-\-solor\-heap\-size\fR SIZE
+Set the size of the Java Heap
+.TP
+\fB\-H\fR, \fB\-\-solr\-home\-dir\fR PATH
+Solr home directory
+.TP
+\fB\-j\fR, \fB\-\-java\-opts\fR OPTS
+Raw options passed to Java
+.TP
+\fB\-W\fR, \fB\-\-solr\-jetty\-dir\fR PATH
+Where to place the Solr Jetty instance
+.TP
+\fB\-u\fR, \fB\-\-user\fR USER
+User to set privilege to
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Show chef\-solr version
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Show this message
+.SH "SEE ALSO"
+Full documentation for Chef and chef-solr is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home.
+.SH AUTHOR
+chef-solr was written by Adam Jacob <adam at ospcode.com> of Opscode (http://www.opscode.com), with contributions from the community.
+This manual page was written by Joshua Timberman <joshua at opscode.com> with help2man. Permission is granted
+to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+On Debian systems, the complete text of the Apache 2.0 License can be found in
+/usr/share/common-licenses/Apache-2.0.

Added: trunk/chef/debian/chef-solr.chef-solr-indexer.default
===================================================================
--- trunk/chef/debian/chef-solr.chef-solr-indexer.default	                        (rev 0)
+++ trunk/chef/debian/chef-solr.chef-solr-indexer.default	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,4 @@
+LOGFILE=/var/log/chef/solr-indexer.log
+CONFIG=/etc/chef/solr.rb
+USER=chef
+GROUP=chef

Added: trunk/chef/debian/chef-solr.chef-solr-indexer.init
===================================================================
--- trunk/chef/debian/chef-solr.chef-solr-indexer.init	                        (rev 0)
+++ trunk/chef/debian/chef-solr.chef-solr-indexer.init	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,176 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:           chef-solr-indexer
+# Required-Start:     $remote_fs $network rabbitmq-server chef-solr
+# Required-Stop:      $remote_fs $network rabbitmq-server chef-solr
+# Default-Start:      2 3 4 5
+# Default-Stop:       0 1 6
+# Short-Description:  Start a chef-solr-indexer.
+### END INIT INFO
+#
+# Copyright (c) 2009-2010 Opscode, Inc <legal at opscode.com>
+#
+# chef-solr-indexer         Startup script for chef-solr-indexer.
+# chkconfig: - 85 02
+# description: starts up chef-solr-indexer in daemon mode.
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/chef-solr-indexer
+NAME=chef-solr-indexer
+DESC=chef-solr-indexer
+PIDFILE=/var/run/chef/solr-indexer.pid
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+if [ ! -d /var/run/chef ]; then
+  mkdir /var/run/chef
+  chown $USER:$GROUP /var/run/chef
+fi
+
+DAEMON_OPTS="-d -P $PIDFILE -c $CONFIG -L $LOGFILE -u $USER -g $GROUP"
+
+running_pid() {                                                                 
+  pid=$1
+  name=$2                                                                     
+  [ -z "$pid" ] && return 1                                                   
+  [ ! -d /proc/$pid ] &&  return 1                                            
+  cmd=`cat /proc/$pid/cmdline | tr '\000' '\n' | awk 'NR==2'`
+  [ "$cmd" != "$name" ] &&  return 1                                          
+  return 0 
+}   
+
+running() {                                                                     
+  [ ! -f "$PIDFILE" ] && return 1
+  pid=`cat $PIDFILE`
+  running_pid $pid $DAEMON || return 1                                        
+  return 0
+}   
+
+start_server() {                                                                
+  if [ -z "$DAEMONUSER" ] ; then                                          
+    start_daemon -p $PIDFILE $DAEMON $DAEMON_OPTS                       
+  errcode=$?
+  else
+    start-stop-daemon --start --quiet --pidfile $PIDFILE \              
+      --chuid $DAEMONUSER \ 
+      --exec $DAEMON -- $DAEMON_OPTS                          
+    errcode=$?  
+  fi  
+  return $errcode                                                         
+}       
+
+stop_server() {                                                                 
+   if [ -z "$DAEMONUSER" ] ; then                                          
+     killproc -p $PIDFILE $DAEMON                                        
+     errcode=$?
+   else
+     start-stop-daemon --stop --quiet --pidfile $PIDFILE \               
+       --user $DAEMONUSER \ 
+       --exec $DAEMON
+     errcode=$?  
+   fi  
+   return $errcode                                                         
+}       
+
+reload_server() {                                                               
+  [ ! -f "$PIDFILE" ] && return 1                                             
+  pid=pidofproc $PIDFILE # This is the daemon's pid                           
+  /bin/kill -1 $pid
+  return $?
+}   
+
+force_stop() {
+  [ ! -e "$PIDFILE" ] && return
+  if running ; then
+    /bin/kill -15 $pid
+    sleep "$DIETIME"s
+    if running ; then
+      /bin/kill -9 $pid
+      sleep "$DIETIME"s
+      if running ; then
+        echo "Cannot kill $NAME (pid=$pid)!"
+        exit 1
+      fi
+    fi
+  fi
+  rm -f $PIDFILE
+}
+
+case "$1" in
+  start)
+    log_daemon_msg "Starting $DESC " "$NAME"
+    if running ;  then
+        log_progress_msg "apparently already running"
+        log_end_msg 0
+        exit 3
+    fi
+    if start_server ; then
+        [ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time 
+        if  running ;  then
+            log_end_msg 0
+        else
+            log_end_msg 1
+        fi
+    else
+        log_end_msg 1
+    fi
+    ;;
+  stop)
+    log_daemon_msg "Stopping $DESC" "$NAME"
+    if running ; then
+      errcode=0
+      stop_server || errcode=$?
+      log_end_msg $errcode
+    else
+      log_progress_msg "apparently not running"
+      log_end_msg 0
+      exit 0
+    fi
+    ;;
+  force-stop)
+    $0 stop
+    if running; then
+      log_daemon_msg "Stopping (force) $DESC" "$NAME"
+      errcode=0
+      force_stop || errcode=$?
+      log_end_msg $errcode
+    fi
+    ;;
+  restart|force-reload)
+    log_daemon_msg "Restarting $DESC" "$NAME"
+    errcode=0
+    stop_server || errcode=$?
+    [ -n "$DIETIME" ] && sleep $DIETIME
+    start_server || errcode=$?
+    [ -n "$STARTTIME" ] && sleep $STARTTIME
+    running || errcode=$?
+    log_end_msg $errcode
+    ;;
+  status)
+    log_daemon_msg "Checking status of $DESC" "$NAME"
+    if running ;  then
+      log_progress_msg "running"
+      log_end_msg 0
+    else
+      log_progress_msg "apparently not running"
+      log_end_msg 1
+      exit 1
+    fi
+    ;;
+  reload)
+    log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon"
+    log_warning_msg "cannot re-read the config file (use restart)."
+    ;;
+  *)
+    N=/etc/init.d/$NAME
+    echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2
+    exit 1
+    ;;
+esac
+
+exit 0
+

Added: trunk/chef/debian/chef-solr.chef-solr-indexer.logrotate
===================================================================
--- trunk/chef/debian/chef-solr.chef-solr-indexer.logrotate	                        (rev 0)
+++ trunk/chef/debian/chef-solr.chef-solr-indexer.logrotate	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,8 @@
+/var/log/chef/solr-indexer.log {
+  rotate 12
+  weekly
+  compress
+  postrotate
+  /usr/sbin/invoke-rc.d chef-solr-indexer force-reload > /dev/null
+  endscript
+}

Added: trunk/chef/debian/chef-solr.chef-solr.default
===================================================================
--- trunk/chef/debian/chef-solr.chef-solr.default	                        (rev 0)
+++ trunk/chef/debian/chef-solr.chef-solr.default	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,4 @@
+LOGFILE=/var/log/chef/solr.log
+CONFIG=/etc/chef/solr.rb
+USER=chef
+GROUP=chef

Added: trunk/chef/debian/chef-solr.chef-solr.init
===================================================================
--- trunk/chef/debian/chef-solr.chef-solr.init	                        (rev 0)
+++ trunk/chef/debian/chef-solr.chef-solr.init	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,177 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:           chef-solr
+# Required-Start:     $remote_fs $network
+# Required-Stop:      $remote_fs $network
+# Default-Start:      2 3 4 5
+# Default-Stop:       0 1 6
+# Short-Description:  Start a chef-solr.
+### END INIT INFO
+#
+# Copyright (c) 2009-2010 Opscode, Inc <legal at opscode.com>
+#
+# chef-solr         Startup script for chef-solr.
+# chkconfig: - 84 02
+# description: starts up chef-solr in daemon mode.
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/chef-solr
+DAEMON_NAME=java
+NAME=chef-solr
+DESC=chef-solr
+PIDFILE=/var/run/chef/solr.pid
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+if [ ! -d /var/run/chef ]; then
+  mkdir /var/run/chef
+  chown $USER:$GROUP /var/run/chef
+fi
+
+DAEMON_OPTS="-d -P $PIDFILE -c $CONFIG -L $LOGFILE -u $USER -g $GROUP"
+
+running_pid() {                                                                 
+  pid=$1
+  name=$2                                                                     
+  [ -z "$pid" ] && return 1                                                   
+  [ ! -d /proc/$pid ] &&  return 1                                            
+  cmd=`cat /proc/$pid/cmdline | tr '\000' '\n' | head -1`
+  [ "$cmd" != "$name" ] &&  return 1                                          
+  return 0 
+}   
+
+running() {                                                                     
+  [ ! -f "$PIDFILE" ] && return 1
+  pid=`cat $PIDFILE`
+  running_pid $pid $DAEMON_NAME || return 1                                        
+  return 0
+}   
+
+start_server() {                                                                
+  if [ -z "$DAEMONUSER" ] ; then                                          
+    start_daemon -p $PIDFILE $DAEMON $DAEMON_OPTS                       
+  errcode=$?
+  else
+    start-stop-daemon --start --quiet --pidfile $PIDFILE \              
+      --chuid $DAEMONUSER \ 
+      --exec $DAEMON -- $DAEMON_OPTS                          
+    errcode=$?  
+  fi  
+  return $errcode                                                         
+}       
+
+stop_server() {                                                                 
+   if [ -z "$DAEMONUSER" ] ; then                                          
+     killproc -p $PIDFILE $DAEMON                                        
+     errcode=$?
+   else
+     start-stop-daemon --stop --quiet --pidfile $PIDFILE \               
+       --user $DAEMONUSER \ 
+       --exec $DAEMON
+     errcode=$?  
+   fi  
+   return $errcode                                                         
+}       
+
+reload_server() {                                                               
+  [ ! -f "$PIDFILE" ] && return 1                                             
+  pid=pidofproc $PIDFILE # This is the daemon's pid                           
+  /bin/kill -1 $pid
+  return $?
+}   
+
+force_stop() {
+  [ ! -e "$PIDFILE" ] && return
+  if running ; then
+    /bin/kill -15 $pid
+    sleep "$DIETIME"s
+    if running ; then
+      /bin/kill -9 $pid
+      sleep "$DIETIME"s
+      if running ; then
+        echo "Cannot kill $NAME (pid=$pid)!"
+        exit 1
+      fi
+    fi
+  fi
+  rm -f $PIDFILE
+}
+
+case "$1" in
+  start)
+    log_daemon_msg "Starting $DESC " "$NAME"
+    if running ;  then
+        log_progress_msg "apparently already running"
+        log_end_msg 0
+        exit 3
+    fi
+    if start_server ; then
+        [ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time 
+        if  running ;  then
+            log_end_msg 0
+        else
+            log_end_msg 1
+        fi
+    else
+        log_end_msg 1
+    fi
+    ;;
+  stop)
+    log_daemon_msg "Stopping $DESC" "$NAME"
+    if running ; then
+      errcode=0
+      stop_server || errcode=$?
+      log_end_msg $errcode
+    else
+      log_progress_msg "apparently not running"
+      log_end_msg 0
+      exit 0
+    fi
+    ;;
+  force-stop)
+    $0 stop
+    if running; then
+      log_daemon_msg "Stopping (force) $DESC" "$NAME"
+      errcode=0
+      force_stop || errcode=$?
+      log_end_msg $errcode
+    fi
+    ;;
+  restart|force-reload)
+    log_daemon_msg "Restarting $DESC" "$NAME"
+    errcode=0
+    stop_server || errcode=$?
+    [ -n "$DIETIME" ] && sleep $DIETIME
+    start_server || errcode=$?
+    [ -n "$STARTTIME" ] && sleep $STARTTIME
+    running || errcode=$?
+    log_end_msg $errcode
+    ;;
+  status)
+    log_daemon_msg "Checking status of $DESC" "$NAME"
+    if running ;  then
+      log_progress_msg "running"
+      log_end_msg 0
+    else
+      log_progress_msg "apparently not running"
+      log_end_msg 1
+      exit 1
+    fi
+    ;;
+  reload)
+    log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon"
+    log_warning_msg "cannot re-read the config file (use restart)."
+    ;;
+  *)
+    N=/etc/init.d/$NAME
+    echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2
+    exit 1
+    ;;
+esac
+
+exit 0
+

Added: trunk/chef/debian/chef-solr.config
===================================================================
--- trunk/chef/debian/chef-solr.config	                        (rev 0)
+++ trunk/chef/debian/chef-solr.config	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,20 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+case "$1" in
+  configure|reconfigure)
+    db_input high chef-solr/amqp_password || true
+    db_go
+  ;;
+  *)
+    echo "config called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+db_stop 
+
+exit 0

Added: trunk/chef/debian/chef-solr.dirs
===================================================================
--- trunk/chef/debian/chef-solr.dirs	                        (rev 0)
+++ trunk/chef/debian/chef-solr.dirs	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,14 @@
+var/lib/chef/search_index
+var/lib/chef/solr
+var/lib/chef/solr/bin
+var/lib/chef/solr/solr-jetty
+var/lib/chef/solr/solr-jetty/webapps
+var/lib/chef/solr/solr-jetty/solr
+var/lib/chef/solr/solr-jetty/solr/WEB-INF
+var/cache/chef/solr/data
+var/log/chef
+var/run/chef
+etc/chef
+etc/chef/solr-jetty
+usr/sbin
+usr/share/chef-solr

Added: trunk/chef/debian/chef-solr.links
===================================================================
--- trunk/chef/debian/chef-solr.links	                        (rev 0)
+++ trunk/chef/debian/chef-solr.links	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,11 @@
+/var/log/chef                   /var/lib/chef/solr/logs
+/etc/chef/solr-jetty            /var/lib/chef/solr/solr-jetty/etc
+/usr/share/jetty/lib            /var/lib/chef/solr/solr-jetty/lib
+/var/log/jetty/                 /var/lib/chef/solr/solr-jetty/logs
+/usr/share/jetty/start.jar      /var/lib/chef/solr/solr-jetty/start.jar
+/usr/share/jetty/webapps/root/  /var/lib/chef/solr/solr-jetty/webapps/root
+/usr/share/solr/admin           /var/lib/chef/solr/solr-jetty/webapps/solr/admin
+/etc/solr/conf                  /var/lib/chef/solr/solr-jetty/webapps/solr/conf
+/usr/share/solr/scripts         /var/lib/chef/solr/solr-jetty/webapps/solr/scripts
+/usr/share/solr/WEB-INF/lib/    /var/lib/chef/solr/solr-jetty/webapps/solr/WEB-INF/lib
+/etc/solr/web.xml               /var/lib/chef/solr/solr-jetty/webapps/solr/WEB-INF/web.xml

Added: trunk/chef/debian/chef-solr.logrotate
===================================================================
--- trunk/chef/debian/chef-solr.logrotate	                        (rev 0)
+++ trunk/chef/debian/chef-solr.logrotate	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,8 @@
+/var/log/chef/solr.log {
+  rotate 12
+  weekly
+  compress
+  postrotate
+	/usr/sbin/invoke-rc.d chef-solr force-reload > /dev/null
+  endscript
+}

Added: trunk/chef/debian/chef-solr.manpages
===================================================================
--- trunk/chef/debian/chef-solr.manpages	                        (rev 0)
+++ trunk/chef/debian/chef-solr.manpages	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,3 @@
+debian/chef-solr.1
+debian/chef-solr-indexer.1
+debian/chef-solr-rebuild.8

Added: trunk/chef/debian/chef-solr.postinst
===================================================================
--- trunk/chef/debian/chef-solr.postinst	                        (rev 0)
+++ trunk/chef/debian/chef-solr.postinst	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,78 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+. /etc/default/chef-solr
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+TEMPLATE=/usr/share/chef-solr/solr.rb
+TMPDIR=`mktemp -d` # used for holding temp files
+TMPFILE=`mktemp -p ${TMPDIR}` # used for holding rendered template
+CONFIGFILE=/etc/chef/solr.rb
+
+rabbitmq_has_vhost() {
+  rabbitmqctl list_vhosts | grep -qx "^/chef$"
+}
+
+rabbitmq_has_user() {
+  # using -q for grep causes rabbit to terminate on do_boot, redirect
+  # STDOUT to /dev/null instead.
+  rabbitmqctl list_users | grep -x "^chef$" 1>/dev/null
+}
+
+rabbitmq_has_perms() {
+  rabbitmqctl list_permissions -p /chef | egrep -qx "chef[[:space:]]+.*{3}"
+}
+
+case "$1" in
+  configure)
+    db_get chef-solr/amqp_password && amqp_pass="$RET"
+    tsed=`mktemp -p ${TMPDIR}`
+    cat << EOF > $tsed
+s/^amqp_pass \".*\"/amqp_pass \"${amqp_pass}\"/g
+EOF
+    if ! rabbitmq_has_vhost; then
+      rabbitmqctl add_vhost /chef
+    fi
+    if ! rabbitmq_has_user; then
+      # NOTE: Bug filed with upstream to allow password from a file.
+      rabbitmqctl add_user chef "$amqp_pass"
+    fi
+    if ! rabbitmq_has_perms; then
+      rabbitmqctl set_permissions -p /chef chef ".*" ".*" ".*"
+    fi
+    if [ -n "$amqp_pass" ]; then
+      sed -f $tsed $TEMPLATE > $TMPFILE
+    fi
+    ucf --debconf-ok $TMPFILE $CONFIGFILE
+    test -f $CONFIGFILE && chmod 0640 $CONFIGFILE
+    rm -rf $TMPDIR
+    if ! getent passwd chef > /dev/null; then
+      adduser --system --quiet \
+        --home /var/lib/chef --no-create-home \
+        --shell /bin/false --group --gecos "Chef Daemon" chef
+    fi
+    chown -R $USER:$GROUP /etc/chef
+    chown -R $USER:$GROUP /var/lib/chef
+    chown -R $USER:$GROUP /var/log/chef
+    chown -R $USER:$GROUP /var/cache/chef
+    chown -R $USER:$GROUP /var/run/chef
+  ;;
+
+  abort-upgrade|abort-remove|abort-deconfigure)
+  ;;
+
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+db_stop 
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Added: trunk/chef/debian/chef-solr.postrm
===================================================================
--- trunk/chef/debian/chef-solr.postrm	                        (rev 0)
+++ trunk/chef/debian/chef-solr.postrm	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,31 @@
+#!/bin/sh
+# postrm script for chef-solr
+#
+# see: dh_installdeb(1)
+
+set -e
+
+TEMPLATE=/usr/share/chef/solr.rb
+CONFIGFILE=/etc/chef/solr.rb
+
+case "$1" in
+    purge)
+      rm -rf /var/log/chef/solr*
+      test -x /usr/bin/ucf && ucf --purge $TEMPLATEFILE $CONFIGFILE
+      rm -rf $CONFIGFILE $CONFIGFILE.ucf-old $CONFIGFILE.ucf-new $CONFIGFILE.ucf-dist
+    ;;
+    remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Added: trunk/chef/debian/chef-solr.templates
===================================================================
--- trunk/chef/debian/chef-solr.templates	                        (rev 0)
+++ trunk/chef/debian/chef-solr.templates	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,12 @@
+Template: chef-solr/amqp_password
+Type: password
+_Description: New password for the 'chef' AMQP user in the RabbitMQ vhost "/chef":
+  Set the password for the chef user in the AMQP server queue. Use
+  RabbitMQ's rabbitmqctl program to set this password. The default user
+  and vhost are assumed (chef and /chef, respectively).
+  .
+  RabbitMQ does not have the capability to read the password from a file, and
+  this will be passed via "" on the command-line. As such, do not use shell
+  meta-characters that could cause errors such as !.
+  .
+  This will be used in /etc/chef/solr.rb and /etc/chef/server.rb as 'amqp_pass'.

Added: trunk/chef/debian/chef.config
===================================================================
--- trunk/chef/debian/chef.config	                        (rev 0)
+++ trunk/chef/debian/chef.config	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,20 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+case "$1" in
+  configure|reconfigure)
+    db_input high chef/chef_server_url || true
+    db_go
+  ;;
+  *)
+    echo "config called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+db_stop 
+
+exit 0

Modified: trunk/chef/debian/chef.dirs
===================================================================
--- trunk/chef/debian/chef.dirs	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef.dirs	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,5 +1,5 @@
 var/cache/chef
-var/lib/chef/openid
-var/lib/chef/search_index
+var/cache/chef/checksums
 var/log/chef
 etc/chef
+usr/share/chef

Modified: trunk/chef/debian/chef.logrotate
===================================================================
--- trunk/chef/debian/chef.logrotate	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef.logrotate	2010-05-23 06:22:18 UTC (rev 5392)
@@ -3,6 +3,6 @@
   weekly
   compress
   postrotate
-  /etc/init.d/chef-client force-reload
+	/usr/sbin/invoke-rc.d  chef-client force-reload > /dev/null
   endscript
 }

Modified: trunk/chef/debian/chef.manpages
===================================================================
--- trunk/chef/debian/chef.manpages	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef.manpages	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,2 +1,4 @@
 debian/chef-client.8
 debian/chef-solo.8
+debian/knife.8
+debian/shef.8

Added: trunk/chef/debian/chef.postinst
===================================================================
--- trunk/chef/debian/chef.postinst	                        (rev 0)
+++ trunk/chef/debian/chef.postinst	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,37 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+TEMPLATE=/usr/share/chef/client.rb
+TMPFILE=`mktemp`
+CONFIGFILE=/etc/chef/client.rb
+
+case "$1" in
+  configure|reconfigure)
+    db_get chef/chef_server_url && server_url="$RET"
+    if [ -n "$server_url" ]; then
+      sed "s#chef_server_url \".*\"#chef_server_url \"$server_url\"#" $TEMPLATE > $TMPFILE
+    fi
+    ucf --debconf-ok $TMPFILE $CONFIGFILE
+    test -f $CONFIGFILE && chmod 0640 $CONFIGFILE
+  ;;
+
+  abort-upgrade|abort-remove|abort-deconfigure)
+  ;;
+
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+db_stop
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Modified: trunk/chef/debian/chef.postrm
===================================================================
--- trunk/chef/debian/chef.postrm	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/chef.postrm	2010-05-23 06:22:18 UTC (rev 5392)
@@ -5,12 +5,17 @@
 
 set -e
 
+TEMPLATE=/usr/share/chef/client.rb
+CONFIGFILE=/etc/chef/client.rb
+
 case "$1" in
     remove)
       rm -rf /var/cache/chef
     ;;
     purge)
       rm -rf /var/log/chef/client*
+      test -x /usr/bin/ucf && ucf --purge $TEMPLATEFILE $CONFIGFILE
+      rm -rf $CONFIGFILE $CONFIGFILE.ucf-old $CONFIGFILE.ucf-new $CONFIGFILE.ucf-dist
     ;;
     upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
     ;;

Added: trunk/chef/debian/chef.templates
===================================================================
--- trunk/chef/debian/chef.templates	                        (rev 0)
+++ trunk/chef/debian/chef.templates	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,7 @@
+Template: chef/chef_server_url
+Type: string
+Description: URL of Chef Server (e.g., http://chef.example.com:4000):
+  This is the full URI that clients will use to connect to the
+  server.
+  .
+  This will be used in /etc/chef/client.rb as 'chef_server_url'.

Modified: trunk/chef/debian/control
===================================================================
--- trunk/chef/debian/control	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/control	2010-05-23 06:22:18 UTC (rev 5392)
@@ -3,38 +3,46 @@
 Priority: extra
 Maintainer: Joshua Timberman <joshua at opscode.com>
 Uploaders: Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers at lists.alioth.debian.org>
-Build-Depends: cdbs, debhelper (>= 7), ruby-pkg-tools (>= 0.14), quilt
-Build-Depends-Indep: ruby1.8, rake
-Standards-Version: 3.8.3
+Build-Depends: cdbs, debhelper (>= 7), ruby-pkg-tools (>= 0.14), quilt, po-debconf, libjavascript-minifier-xs-perl
+Build-Depends-Indep: ruby, rake
+Standards-Version: 3.8.4
 Homepage: http://wiki.opscode.com/display/chef/Home
 
 Package: chef
 Architecture: all
-Depends: ${misc:Depends}, ruby1.8, libopenid-ruby1.8, liberubis-ruby1.8, libjson-ruby1.8, libextlib-ruby1.8, libstomp-ruby1.8, libohai-ruby1.8, libchef-ruby1.8, libopenssl-ruby1.8
-Suggests: rake
-Description: configuration management system written in Ruby
- Chef is a systems integration framework and configuration management system
+Depends: ${misc:Depends}, ruby1.8, liberubis-ruby1.8, libjson-ruby1.8, libextlib-ruby1.8 (>= 0.9.13), ohai (>= 0.4.0), libchef-ruby1.8 (= ${source:Version}), libopenssl-ruby1.8, libmixlib-authentication-ruby1.8 (>= 1.1.0), ucf
+Recommends: irb1.8
+Description: System integration framework written in Ruby
+ Chef is a systems integration framework and configuration management library
  written in Ruby. Chef provides a Ruby library and API that can be used to
  bring the benefits of configuration management to an entire infrastructure.
  .
  Chef can be run as a client (chef-client) to a server, or run as a standalone
  tool (chef-solo). Configuration recipes are written in a pure Ruby DSL.
  .
- This package contains the chef-client and chef-solo binaries and associated 
+ This package contains the chef-client and chef-solo binaries and associated
  files.
 
-Package: chef-indexer
+Package: chef-solr
 Architecture: all
-Depends: ${misc:Depends}, ruby1.8, stompserver, libferret-ruby1.8, libjson-ruby1.8, libchef-ruby1.8
-Description: Creates search indexes of Chef node attributes
- The chef indexer listens to a message queue via stomp for changes to search
- indexes. It then either creates or deletes entries in the index according 
+Depends: ${misc:Depends}, ruby1.8, rabbitmq-server (>= 1.6), default-jre-headless | java6-runtime-headless, libjson-ruby1.8, libchef-ruby1.8 (= ${source:Version}), solr-jetty (>=1.4.0), libxml-ruby1.8, adduser, ucf
+Suggests: chef (= ${source:Version})
+Replaces: chef-indexer
+Conflicts: chef-indexer
+Description: Manages search indexes of Chef node attributes using SOLR
+ The chef indexer listens to a message queue via AMQP for changes to search
+ indexes. It then either creates or deletes entries in the index according
  to the information it is passed.
+ .
+ This package provides the chef-solr search engine which runs as a solr-jetty
+ server, and chef-solr-indexer that talks to the AMQP message queue, by
+ default rabbitmq-server.
 
 Package: chef-server
 Architecture: all
-Depends: ${misc:Depends}, ruby1.8, merb-slices, libmerb-assets-ruby1.8, libmerb-haml-ruby1.8, libmerb-helpers-ruby1.8, chef-server-slice, stompserver, libstomp-ruby1.8, couchdb, libferret-ruby1.8, mongrel, libopenid-ruby1.8, libjson-ruby1.8, libcoderay-ruby1.8, chef-indexer, libchef-ruby1.8
-Suggests: thin, nginx, apache2, rake
+Depends: ${misc:Depends}, ruby, merb-slices, libmerb-assets-ruby, libmerb-haml-ruby, libmerb-helpers-ruby, chef-server-api (= ${source:Version}), chef-solr (= ${source:Version}), thin, libjson-ruby, libchef-ruby (= ${source:Version}), libuuidtools-ruby1.8, adduser, libjs-jquery (>= 1.3.2), ucf
+Recommends: chef (= ${source:Version})
+Suggests: nginx, apache2, rake, chef-server-webui (=${source:Version})
 Description: Merb application providing centralized management for Chef
  Chef is a systems integration framework and configuration management system
  written in Ruby. Chef provides a Ruby library and API that can be used to
@@ -45,15 +53,18 @@
  of client nodes and node data, and search indexes for that data.
  .
  The chef-server package provides a merb binary wrapper that loads up the
- chef-server-slice application.
+ chef-server-api application.
  .
  This package contains the chef-server Merb application and associated files.
 
-Package: chef-server-slice
+Package: chef-server-api
 Architecture: all
-Depends: ${misc:Depends}, ruby1.8, merb-slices, libmerb-assets-ruby1.8, libmerb-haml-ruby1.8, libmerb-helpers-ruby1.8, stompserver, couchdb, libferret-ruby1.8, mongrel, libopenid-ruby1.8, libjson-ruby1.8, libcoderay-ruby1.8, libchef-ruby1.8
-Description: Merb app slice providing centralized management for Chef
- Chef is a systems integration framework and configuration management system
+Depends: ${misc:Depends}, ruby, merb-slices, libmerb-assets-ruby, libmerb-haml-ruby, libmerb-helpers-ruby, rabbitmq-server (>= 1.6), couchdb (>= 0.9.1), thin, libjson-ruby, libchef-ruby (= ${source:Version})
+Recommends: chef (= ${source:Version})
+Replaces: chef-server-slice
+Conflicts: chef-server-slice
+Description: Merb slice providing REST API for Chef client access
+ Chef is a systems integration framework and configuration management library
  written in Ruby. Chef provides a Ruby library and API that can be used to
  bring the benefits of configuration management to an entire infrastructure.
  .
@@ -61,16 +72,32 @@
  distribution for recipes stored in "cookbooks," management and authentication
  of client nodes and node data, and search indexes for that data.
  .
- The chef-server-slice package contains all the goods for the Chef Server and is
- started with the chef-server program.
+ The chef-server-api package provides the API for the Chef Server so
+ clients can connect and is started with the chef-server program.
  .
- This package contains the Merb slice for the chef-server.
+ This package contains the Merb slice for the chef-server-api.
 
+Package: chef-server-webui
+Architecture: all
+Depends: ${misc:Depends}, ruby, merb-slices, libmerb-param-protection-ruby, libmerb-assets-ruby, libmerb-haml-ruby, libmerb-helpers-ruby, thin, libopenid-ruby, libjson-ruby, libchef-ruby (= ${source:Version}), libcoderay-ruby, chef-server (= ${source:Version}), adduser, libjs-jquery-ui (>= 1.7.1), ucf
+Suggests: chef (= ${source:Version}), apache2, nginx
+Conflicts: chef-server-slice
+Description: Merb app slice providing Web interface to API server for Chef
+ Chef is a systems integration framework and configuration management library
+ written in Ruby. Chef provides a Ruby library and API that can be used to
+ bring the benefits of configuration management to an entire infrastructure.
+ .
+ The Chef Server WebUI is a Merb application that accesses the Chef Server API
+ directly to provide an easy to use interface for managing Chef clients and
+ Chef server data.
+ .
+ This package contains the Merb slice and assets for the chef-server-webui.
+
 Package: libchef-ruby
 Architecture: all
-Depends: ${misc:Depends}, ruby1.8, libchef-ruby1.8
-Description: Ruby libraries for Chef configuration management system
- Chef is a systems integration framework and configuration management system
+Depends: ${misc:Depends}, ruby, libchef-ruby1.8 (= ${source:Version})
+Description: Ruby libraries for Chef system integration framework
+ Chef is a systems integration framework and configuration management library
  written in Ruby. Chef provides a Ruby library and API that can be used to
  bring the benefits of configuration management to an entire infrastructure.
  .
@@ -83,10 +110,11 @@
 
 Package: libchef-ruby1.8
 Architecture: all
-Depends: ${misc:Depends}, ruby1.8, libopenssl-ruby1.8, libmixlib-cli-ruby1.8, libmixlib-config-ruby1.8 (>= 1.0.12), libmixlib-log-ruby1.8, libohai-ruby1.8
-Suggests: rake, rubygems
-Description: Ruby 1.8 libraries for Chef configuration management system
- Chef is a systems integration framework and configuration management system
+Depends: ${misc:Depends}, ruby1.8, libopenssl-ruby1.8, libmixlib-authentication-ruby1.8 (>= 1.1.0), libmixlib-cli-ruby1.8 (>= 1.1.0), libmixlib-config-ruby1.8 (>= 1.1.0), libmixlib-log-ruby1.8 (>= 1.1.0), libohai-ruby1.8 (>= 0.4.0), libmoneta-ruby1.8, libbunny-ruby1.8
+Recommends: ohai (>= 0.4.0), chef (= ${source:Version}), rubygems1.8
+Suggests: rake, libshadow-ruby1.8
+Description: Ruby 1.8 libraries for Chef system integration framework
+ Chef is a systems integration framework and configuration management library
  written in Ruby. Chef provides a Ruby library and API that can be used to
  bring the benefits of configuration management to an entire infrastructure.
  .

Modified: trunk/chef/debian/copyright
===================================================================
--- trunk/chef/debian/copyright	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/copyright	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,4 +1,4 @@
-This package was debianized by Joshua Timberman <joshua at opscode.com> 
+This package was debianized by Joshua Timberman <joshua at opscode.com>
 Thu, 30 Jul 2009 21:06:25 -0600
 
 It was downloaded from <http://github.com/opscode/chef>
@@ -7,326 +7,283 @@
 
 Contributors and Copyright holders:
 
- * Copyright 2008, Adam Jacob <adam at opscode.com>
- * Copyright 2008, Arjuna Christensen <aj at hjksolutions.com>
- * Copyright 2008, Bryan McLellan <btm at loftninjas.org>
- * Copyright 2008, Ezra Zygmuntowicz <ezra at engineyard.com>
- * Copyright 2009, Joshua Timberman <joshua at opscode.com>
- * Copyright 2009, Sean Cribbs <seancribbs at gmail.com>
- * Copyright 2009, Christopher Brown <cb at opscode.com>
- * Copyright 2009, Thom May <thom at clearairturbulence.org>
- * Copyright 2009, Joe Williams <joe at joetify.com>
+    * Copyright 2008-2010, Opscode, Inc <legal at opscode.com>
+    * Copyright 2008 HJK Solutions, LLC <legal at opscode.com>
+    * Copyright 2008-2010, Adam Jacob <adam at opscode.com>
+    * Copyright 2008-2010, Arjuna Christensen <aj at opscode.com>
+    * Copyright 2008-2010, Bryan McLellan <btm at loftninjas.org>
+    * Copyright 2008-2009, Ezra Zygmuntowicz <ezra at engineyard.com>
+    * Copyright 2008-2010, Joshua Timberman <joshua at opscode.com>
+    * Copyright 2009, Sean Cribbs <seancribbs at gmail.com>
+    * Copyright 2009, Christopher Brown <cb at opscode.com>
+    * Copyright 2010, Stephen Delano <stephen at opscode.com>
+    * Copyright 2009-2010, Nuo Yan <nuo at opscode.com>
+    * Copyright 2009, Chris Walters <cw at opscode.com>
+    * Copyright 2009, Thom May <thom at clearairturbulence.org>
+    * Copyright 2009, Joe Williams <joe at joetify.com>
+    * Copyright 2009-2010, Daniel DeLeo <dan at kallistec.com>
+    * Copyright 2009, Jason Jackson <jason.jackson at monster.com>
+    * Copyright 2009, Mathew Landauer <matthew at openaustralia.org>
+    * Copyright 2009-2010, Jan Zimmek <jan.zimmek at web.de>
+    * Copyright 2009, CleanOffer, Inc <info at cleanoffer.com>
+    * Copyright 2009, Phusion <info at phusion.nl>
+    * Copyright 2009-2010, Matthew Kent <mkent at magoazul.com>
+    * Copyright 2009, David Balatero <dbalatero at gmail.com>
+    * Copyright 2009 Mathieu Sauve-Frankel <msf at kisoku.net>
+    * Author: Hongli Lai <hongli at phusion.nl>
+    * Author: Dreamcat4 <dreamcat4 at gmail.com>
+    * Author: Stephen Haynes <sh at nomitor.com>
+    * Author: Jesse Nelson <spheromak at gmail.com>
+    * Author: Cary Penniman <cary at rightscale.com>
+    * Author: John Hampton <john at cleanoffer.com>
+    * Author: Lee Jensen <ljensen at engineyard.com>
 
-Licensed under the Apache License, Version 2.0:
-                                  Apache License
-                            Version 2.0, January 2004
-                         http://www.apache.org/licenses/
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+chef/lib/chef/streaming_cookbook_uploader.rb:
+
+    Chef incorporates code modified from Stanislav Vitvitskiy's multipart POST
+    code:
+
+      http://stanislavvitvitskiy.blogspot.com/2008/12/multipart-post-in-ruby.html
     
-    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+    Permission granted by the author to use/modify/distribute this code without
+    attribution.
     
-    1. Definitions.
+    Original author: Stanislav Vitvitskiy
+
+chef/lib/chef/mixin/command.rb:
+    Chef incorporates code modified from Open4 which was written by
+    Ara T. Howard <ara.t.howard at gmail.com>
     
-       "License" shall mean the terms and conditions for use, reproduction,
-       and distribution as defined by Sections 1 through 9 of this document.
+    http://www.codeforpeople.com/lib/ruby/open4/
     
-       "Licensor" shall mean the copyright owner or entity authorized by
-       the copyright owner that is granting the License.
+    * Copyright: (c) 2007 Ara T. Howard
     
-       "Legal Entity" shall mean the union of the acting entity and all
-       other entities that control, are controlled by, or are under common
-       control with that entity. For the purposes of this definition,
-       "control" means (i) the power, direct or indirect, to cause the
-       direction or management of such entity, whether by contract or
-       otherwise, or (ii) ownership of fifty percent (50%) or more of the
-       outstanding shares, or (iii) beneficial ownership of such entity.
+    Licensed under the Ruby License:
     
-       "You" (or "Your") shall mean an individual or Legal Entity
-       exercising permissions granted by this License.
+      http://codeforpeople.com/lib/license.txt
     
-       "Source" form shall mean the preferred form for making modifications,
-       including but not limited to software source code, documentation
-       source, and configuration files.
+      Ruby's License (http://www.ruby-lang.org/en/LICENSE.txt):
     
-       "Object" form shall mean any form resulting from mechanical
-       transformation or translation of a Source form, including but
-       not limited to compiled object code, generated documentation,
-       and conversions to other media types.
+      Systemu is copyrighted free software by Ara T. Howard <ara.t.howard at gmail.com>
+      You can redistribute it and/or modify it under either the terms of the GPL
+      (see /usr/share/common-licenses/GPL-2 file), or the conditions below:
     
-       "Work" shall mean the work of authorship, whether in Source or
-       Object form, made available under the License, as indicated by a
-       copyright notice that is included in or attached to the work
-       (an example is provided in the Appendix below).
+        1. You may make and give away verbatim copies of the source form of the
+           software without restriction, provided that you duplicate all of the
+           original copyright notices and associated disclaimers.
     
-       "Derivative Works" shall mean any work, whether in Source or Object
-       form, that is based on (or derived from) the Work and for which the
-       editorial revisions, annotations, elaborations, or other modifications
-       represent, as a whole, an original work of authorship. For the purposes
-       of this License, Derivative Works shall not include works that remain
-       separable from, or merely link (or bind by name) to the interfaces of,
-       the Work and Derivative Works thereof.
+        2. You may modify your copy of the software in any way, provided that
+           you do at least ONE of the following:
     
-       "Contribution" shall mean any work of authorship, including
-       the original version of the Work and any modifications or additions
-       to that Work or Derivative Works thereof, that is intentionally
-       submitted to Licensor for inclusion in the Work by the copyright owner
-       or by an individual or Legal Entity authorized to submit on behalf of
-       the copyright owner. For the purposes of this definition, "submitted"
-       means any form of electronic, verbal, or written communication sent
-       to the Licensor or its representatives, including but not limited to
-       communication on electronic mailing lists, source code control systems,
-       and issue tracking systems that are managed by, or on behalf of, the
-       Licensor for the purpose of discussing and improving the Work, but
-       excluding communication that is conspicuously marked or otherwise
-       designated in writing by the copyright owner as "Not a Contribution."
+             a) place your modifications in the Public Domain or otherwise
+                make them Freely Available, such as by posting said
+          modifications to Usenet or an equivalent medium, or by allowing
+          the author to include your modifications in the software.
     
-       "Contributor" shall mean Licensor and any individual or Legal Entity
-       on behalf of whom a Contribution has been received by Licensor and
-       subsequently incorporated within the Work.
+             b) use the modified software only within your corporation or
+                organization.
     
-    2. Grant of Copyright License. Subject to the terms and conditions of
-       this License, each Contributor hereby grants to You a perpetual,
-       worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-       copyright license to reproduce, prepare Derivative Works of,
-       publicly display, publicly perform, sublicense, and distribute the
-       Work and such Derivative Works in Source or Object form.
+             c) rename any non-standard executables so the names do not conflict
+          with standard executables, which must also be provided.
     
-    3. Grant of Patent License. Subject to the terms and conditions of
-       this License, each Contributor hereby grants to You a perpetual,
-       worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-       (except as stated in this section) patent license to make, have made,
-       use, offer to sell, sell, import, and otherwise transfer the Work,
-       where such license applies only to those patent claims licensable
-       by such Contributor that are necessarily infringed by their
-       Contribution(s) alone or by combination of their Contribution(s)
-       with the Work to which such Contribution(s) was submitted. If You
-       institute patent litigation against any entity (including a
-       cross-claim or counterclaim in a lawsuit) alleging that the Work
-       or a Contribution incorporated within the Work constitutes direct
-       or contributory patent infringement, then any patent licenses
-       granted to You under this License for that Work shall terminate
-       as of the date such litigation is filed.
+             d) make other distribution arrangements with the author.
     
-    4. Redistribution. You may reproduce and distribute copies of the
-       Work or Derivative Works thereof in any medium, with or without
-       modifications, and in Source or Object form, provided that You
-       meet the following conditions:
+        3. You may distribute the software in object code or executable
+           form, provided that you do at least ONE of the following:
     
-       (a) You must give any other recipients of the Work or
-           Derivative Works a copy of this License; and
+             a) distribute the executables and library files of the software,
+          together with instructions (in the manual page or equivalent)
+          on where to get the original distribution.
     
-       (b) You must cause any modified files to carry prominent notices
-           stating that You changed the files; and
+             b) accompany the distribution with the machine-readable source of
+          the software.
     
-       (c) You must retain, in the Source form of any Derivative Works
-           that You distribute, all copyright, patent, trademark, and
-           attribution notices from the Source form of the Work,
-           excluding those notices that do not pertain to any part of
-           the Derivative Works; and
+             c) give non-standard executables non-standard names, with
+                instructions on where to get the original software distribution.
     
-       (d) If the Work includes a "NOTICE" text file as part of its
-           distribution, then any Derivative Works that You distribute must
-           include a readable copy of the attribution notices contained
-           within such NOTICE file, excluding those notices that do not
-           pertain to any part of the Derivative Works, in at least one
-           of the following places: within a NOTICE text file distributed
-           as part of the Derivative Works; within the Source form or
-           documentation, if provided along with the Derivative Works; or,
-           within a display generated by the Derivative Works, if and
-           wherever such third-party notices normally appear. The contents
-           of the NOTICE file are for informational purposes only and
-           do not modify the License. You may add Your own attribution
-           notices within Derivative Works that You distribute, alongside
-           or as an addendum to the NOTICE text from the Work, provided
-           that such additional attribution notices cannot be construed
-           as modifying the License.
+             d) make other distribution arrangements with the author.
     
-       You may add Your own copyright statement to Your modifications and
-       may provide additional or different license terms and conditions
-       for use, reproduction, or distribution of Your modifications, or
-       for any such Derivative Works as a whole, provided Your use,
-       reproduction, and distribution of the Work otherwise complies with
-       the conditions stated in this License.
+        4. You may modify and include the part of the software into any other
+           software (possibly commercial).  But some files in the distribution
+           are not written by the author, so that they are not under this terms.
     
-    5. Submission of Contributions. Unless You explicitly state otherwise,
-       any Contribution intentionally submitted for inclusion in the Work
-       by You to the Licensor shall be under the terms and conditions of
-       this License, without any additional terms or conditions.
-       Notwithstanding the above, nothing herein shall supersede or modify
-       the terms of any separate license agreement you may have executed
-       with Licensor regarding such Contributions.
+           They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
+           files under the ./missing directory.  See each file for the copying
+           condition.
     
-    6. Trademarks. This License does not grant permission to use the trade
-       names, trademarks, service marks, or product names of the Licensor,
-       except as required for reasonable and customary use in describing the
-       origin of the Work and reproducing the content of the NOTICE file.
+        5. The scripts and library files supplied as input to or produced as
+           output from the software do not automatically fall under the
+           copyright of the software, but belong to whomever generated them,
+           and may be sold commercially, and may be aggregated with this
+           software.
     
-    7. Disclaimer of Warranty. Unless required by applicable law or
-       agreed to in writing, Licensor provides the Work (and each
-       Contributor provides its Contributions) on an "AS IS" BASIS,
-       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-       implied, including, without limitation, any warranties or conditions
-       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-       PARTICULAR PURPOSE. You are solely responsible for determining the
-       appropriateness of using or redistributing the Work and assume any
-       risks associated with Your exercise of permissions under this License.
+        6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+           IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+           WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+           PURPOSE.
+
+chef-server/bin/chef-server:
+
+    Chef incorporates code modified from Merb (http://www.merbivore.com), which is
+    Copyright (c) 2008 Engine Yard.
     
-    8. Limitation of Liability. In no event and under no legal theory,
-       whether in tort (including negligence), contract, or otherwise,
-       unless required by applicable law (such as deliberate and grossly
-       negligent acts) or agreed to in writing, shall any Contributor be
-       liable to You for damages, including any direct, indirect, special,
-       incidental, or consequential damages of any character arising as a
-       result of this License or out of the use or inability to use the
-       Work (including but not limited to damages for loss of goodwill,
-       work stoppage, computer failure or malfunction, or any and all
-       other commercial damages or losses), even if such Contributor
-       has been advised of the possibility of such damages.
+    Merb upstream Authors: Yehuda Katz <ykatz at engineyard.com>
     
-    9. Accepting Warranty or Additional Liability. While redistributing
-       the Work or Derivative Works thereof, You may choose to offer,
-       and charge a fee for, acceptance of support, warranty, indemnity,
-       or other liability obligations and/or rights consistent with this
-       License. However, in accepting such obligations, You may act only
-       on Your own behalf and on Your sole responsibility, not on behalf
-       of any other Contributor, and only if You agree to indemnify,
-       defend, and hold each Contributor harmless for any liability
-       incurred by, or claims asserted against, such Contributor by reason
-       of your accepting any such warranty or additional liability.
+    License:
+      Merb is released under the MIT License.
     
-    END OF TERMS AND CONDITIONS
+      Permission is hereby granted, free of charge, to any person obtaining
+      a copy of this software and associated documentation files (the
+      "Software"), to deal in the Software without restriction, including
+      without limitation the rights to use, copy, modify, merge, publish,
+      distribute, sublicense, and/or sell copies of the Software, and to
+      permit persons to whom the Software is furnished to do so, subject to
+      the following conditions:
     
-    APPENDIX: How to apply the Apache License to your work.
+      The above copyright notice and this permission notice shall be
+      included in all copies or substantial portions of the Software.
     
-       To apply the Apache License to your work, attach the following
-       boilerplate notice, with the fields enclosed by brackets "[]"
-       replaced with your own identifying information. (Don't include
-       the brackets!)  The text should be enclosed in the appropriate
-       comment syntax for the file format. We also recommend that a
-       file or class name and description of purpose be included on the
-       same "printed page" as the copyright notice for easier
-       identification within third-party archives.
-    
-    Copyright [yyyy] [name of copyright owner]
-    
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
+      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+      EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+      MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+      NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+      LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+      OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+      WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-chef/lib/chef/mixin/command.rb:
-  Chef incorporates code modified from Open4 (http://www.codeforpeople.com/lib/ruby/open4/), 
-  which was written by Ara T. Howard <ara.t.howard at gmail.com>
+chef-server/public/javascripts/jquery.js:
+chef-server-webui/public/javascripts/jquery*:
 
-  Copyright: (c) 2007 Ara T. Howard
+    Chef incorporates code modified from JQuery (http://jquery.com/)
 
-  Licensed under the Ruby License:
+    * Copyright (c) 2009 John Resig
+    * Copyright (c) 2009 The Dojo Foundation
+    * Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
+    * Copyright (c) 2007-2008 Ariel Flesler <aflesler at gmail.com>
+    * Copyright (c) 2009 Tero Piirainen
 
-    http://codeforpeople.com/lib/license.txt
+    JQuery is dual licensed under the MIT and GPL v2 licenses.
+    http://docs.jquery.com/License
+    Full text of the GPL is available in /usr/share/common-licenses/GPL-2
+    See above for the MIT license, as it is also used by Merb.
 
-    Ruby's License (http://www.ruby-lang.org/en/LICENSE.txt):
+chef-server-webui/public/javascripts/yetii-min.js:
 
-    Systemu is copyrighted free software by Ara T. Howard <ara.t.howard at gmail.com>
-    You can redistribute it and/or modify it under either the terms of the GPL
-    (see /usr/share/common-licenses/GPL-2 file), or the conditions below:
-    
-      1. You may make and give away verbatim copies of the source form of the
-         software without restriction, provided that you duplicate all of the
-         original copyright notices and associated disclaimers.
-    
-      2. You may modify your copy of the software in any way, provided that
-         you do at least ONE of the following:
-    
-           a) place your modifications in the Public Domain or otherwise
-              make them Freely Available, such as by posting said
-        modifications to Usenet or an equivalent medium, or by allowing
-        the author to include your modifications in the software.
-    
-           b) use the modified software only within your corporation or
-              organization.
-    
-           c) rename any non-standard executables so the names do not conflict
-        with standard executables, which must also be provided.
-    
-           d) make other distribution arrangements with the author.
-    
-      3. You may distribute the software in object code or executable
-         form, provided that you do at least ONE of the following:
-    
-           a) distribute the executables and library files of the software,
-        together with instructions (in the manual page or equivalent)
-        on where to get the original distribution.
-    
-           b) accompany the distribution with the machine-readable source of
-        the software.
-    
-           c) give non-standard executables non-standard names, with
-              instructions on where to get the original software distribution.
-    
-           d) make other distribution arrangements with the author.
-    
-      4. You may modify and include the part of the software into any other
-         software (possibly commercial).  But some files in the distribution
-         are not written by the author, so that they are not under this terms.
-    
-         They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
-         files under the ./missing directory.  See each file for the copying
-         condition.
-    
-      5. The scripts and library files supplied as input to or produced as 
-         output from the software do not automatically fall under the
-         copyright of the software, but belong to whomever generated them, 
-         and may be sold commercially, and may be aggregated with this
-         software.
-    
-      6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
-         IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-         WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-         PURPOSE.
+    Chef incorporates code from Yetii.
 
-chef-server/bin/chef-server:
-  Chef incorporates code modified from Merb (http://www.merbivore.com), which is 
-  Copyright (c) 2008 Engine Yard.
+    * Copyright (c) 2007 Grzegorz Wojcik
 
-  Merb upstream Authors: Yehuda Katz <ykatz at engineyard.com>
+    Licensed under the BSD License. The full text of the BSD license is
+    available in /usr/share/common-licenses/BSD on Debian systems.
 
-  License:
-    Merb is released under the MIT License.
+chef-server-webui/public/facebox/*
 
-    Permission is hereby granted, free of charge, to any person obtaining
-    a copy of this software and associated documentation files (the
-    "Software"), to deal in the Software without restriction, including
-    without limitation the rights to use, copy, modify, merge, publish,
-    distribute, sublicense, and/or sell copies of the Software, and to
-    permit persons to whom the Software is furnished to do so, subject to
-    the following conditions:
-    
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-    
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-    LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-    OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+    Chef incorporates code and images from the Facebox project.
 
-chef-server/public/javascripts/jquery.js:
-chef-server-slice/public/javascripts/jquery*:
+    * Copyright 2007, 2008 Chris Wanstrath <chris at ozmm.org>
 
-  Chef incorporates code modified from JQuery (http://jquery.com/) and is Copyright (c) John Resig.
+    Facebox is licensed under the MIT License.
 
-  JQuery is dual licensed under the MIT and GPL v2 licenses.
-  http://docs.jquery.com/License
-  Full text of the GPL is available in /usr/share/common-licenses/GPL-2
-  See above for the MIT license, as it is also used by Merb.
+chef/lib/chef/mixin/deep_merge.rb:
+chef/spec/unit/mixin/deep_merge_spec.rb:
 
+    Chef incorporates code modified from deep_merge
+    (http://trac.misuse.org/science/wiki/DeepMerge)
+
+    * Copyright (c) 2008 Steve Midgley <science at misuse.org>
+
+    License:
+      deep_merge is released under the MIT License.
+
+      Permission is hereby granted, free of charge, to any person obtaining
+      a copy of this software and associated documentation files (the
+      "Software"), to deal in the Software without restriction, including
+      without limitation the rights to use, copy, modify, merge, publish,
+      distribute, sublicense, and/or sell copies of the Software, and to
+      permit persons to whom the Software is furnished to do so, subject to
+      the following conditions:
+
+      The above copyright notice and this permission notice shall be
+      included in all copies or substantial portions of the Software.
+
+      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+      EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+      MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+      NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+      LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+      OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+      WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+chef/lib/chef/mixin/xml_escape.rb:
+    Chef incorporates code adapted from Sam Ruby's xchar.rb
+    (http://intertwingly.net/stories/2005/09/28/xchar.rb)
+
+    * Copyright (c) 2005, Sam Ruby
+
+    Licensed under the MIT License, as part of the Builder::XChar library
+    (Unused by Chef).
+
+chef-solr/solr/solr-home.tar.gz:
+
+    Chef incorporates configuration data modified from SOLR. SOLR is licensed
+    under the Apache 2.0 license.
+
+chef-solr/solr/solr-jetty.tar.gz:
+
+    Chef incorporates code modified from solr-jetty v6.1.3
+    (http://jetty.mortbay.org/). solr-jetty is licensed under the Apache 2.0
+    license. The actual solr-jetty.tar.gz is removed from the source via the
+    repack.sh script and is not included in the resulting package.
+
+features/data/myapp.bundle!public/javascripts/prototype.js
+
+    Chef's feature tests incorporate a Rails project as a Git repository
+    bundle which includes Prototype.
+
+    * Copyright (c) 2005-2008 Sam Stephenson
+
+    Prototype is freely distributable under the terms of an MIT-style license.
+    For details, see the Prototype web site: http://www.prototypejs.org/
+
+features/data/myapp.bundle!public/javascripts/effects.js
+features/data/myapp.bundle!public/javascripts/dragdrop.js
+features/data/myapp.bundle!public/javascripts/controls.js
+
+    Chef's feature tests incorporate a Rails project as a Git repository
+    bundle which includes script.aculo.us.
+
+    script.aculo.us is freely distributable under the terms of an MIT-style
+    license.
+
+    For details, see the script.aculo.us web site: http://script.aculo.us/
+
+    * Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us,
+                            http://mir.aculo.us)
+    * Copyright (c) 2005-2008 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
+    * Copyright (c) 2005-2008 Jon Tirsen (http://www.tirsen.com)
+    * Copyright (c) 2005-2008 Sammi Williams (http://www.oriontransfer.co.nz,
+                            sammi at oriontransfer.co.nz)
+
+    Contributors:
+        Richard Livsey
+        Rahul Bhargava
+        Rob Wills
+        Justin Palmer (http://encytemedia.com/)
+        Mark Pilgrim (http://diveintomark.org/)
+        Martin Bialasinki
+
 The Debian packaging for Chef is Copyright (c) 2009 Opscode, Inc. and is licensed
 under the Apache 2.0 license.

Modified: trunk/chef/debian/etc/chef/client.rb
===================================================================
--- trunk/chef/debian/etc/chef/client.rb	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/etc/chef/client.rb	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,79 +1,49 @@
 # Configuration File For Chef (chef-client)
-# 
+#
 # The chef-client program will connect the local system to the specified
 # server URLs through a RESTful API to retrieve its configuration.
-# 
+#
 # By default, the client is configured to connect to a Chef Server
-# running on the local system. Change this to reflect your environment.
+# as prompted by DebConf during package installation.
 #
-# Chef uses a Ruby DSL for configuration, and this file contains a few
-# Ruby idioms. First, symbols. These are designated by a colon sigil, ie,
-# :value. Second, in Ruby, everything but false and nil (no quotes or other
-# designations) is true, including true, the integer 0 and the string "false".
-# So to set the value of a setting to false, write:
+# The chef-client daemon reads this file by default, as set in
+# /etc/default/chef-client.
 #
+# This is a Ruby DSL config file, and can embed regular Ruby code in addition to
+# the configuration settings. Some settings use Ruby symbols, which are a value
+# that starts with a colon. In Ruby, anything but 'false' or 'nil' is true. To
+# set something to false:
+#
 # some_setting false
 #
-# Third, Ruby class methods can be used, for example we tell the log to show
-# the current time stamp with Chef::Log::Formatter.show_time, below.
-#
 # log_level specifies the level of verbosity for output.
-# valid values are: :debug, :info, :warn, :error, :fatal
+# valid values are: :debug, :info, :warn, :error, :fatal.
+# Corresponds to chef-client -l
 
 log_level          :info
 
 # log_location specifies where the client should log to.
 # valid values are: a quoted string specifying a file, or STDOUT with
-# no quotes. When run as a daemon (default), STDOUT will produce no output.
+# no quotes. STDOUT is a constant in Ruby.
+# Corresponds to chef-client -L, and use -V with chef-client to ensure output
+# also goes to STDOUT if this value is changed. The chef-client daemon is
+# configured to log to /var/log/chef/client.log in /etc/default/chef-client.
 
-log_location       "/var/log/chef/client.log"
+log_location       STDOUT
 
 # ssl_verify_mode specifies if the REST client should verify SSL certificates.
-# valid values are :verify_none, :verify_peer. The default Chef Server 
+# valid values are :verify_none, :verify_peer. The default Chef Server
 # installation on Debian will use a self-generated SSL certificate so this
 # should be :verify_none unless you replace the certificate.
 
 ssl_verify_mode    :verify_none
 
-# Server URLs.
-# 
-# registration_url specifies the URL which the client retrieves to register.
+# chef_server_url specifies the Chef Server to connect to.
 # valid values are any HTTP URL.
+# Corresponds to chef-client -S
 
-registration_url   "http://localhost:4000"
+chef_server_url "http://localhost:4000"
 
-# openid_url specifies the URL where the server's OpenID relay is listening.
-# valid values are any HTTP URL. The default server configuration is set to
-# use a vhost running on port 444 for this.
-#
-# NOTE: The client/server openid communication will be removed in favor of a
-# pre-shared key authentication and authorization architecture in a future 
-# release of Chef. This is currently scheduled for version 0.8.0.
-
-openid_url         "http://localhost:4001"
-
-# template_url specifies the URL where the client should retrieve templates.
-# valid values are any HTTP URL.
-
-template_url       "http://localhost:4000"
-
-# remotefile_url specifies the URL where the client should retrieve remote 
-# static file and directory contents.
-# valid values are any HTTP URL.
-
-remotefile_url     "http://localhost:4000"
-
-# search_url specifies the URL where the client should send queries for search
-# indexes.
-# valid values are any HTTP URL.
-
-search_url         "http://localhost:4000"
-
-# role_url specifies the URL where the client should look for role data.
-# valid values are any HTTP URL.
-
-role_url           "http://localhost:4000"
-
 # file_cache_path specifies where the client should cache cookbooks, server
 # cookie ID, and openid registration data.
 # valid value is any filesystem directory location.
@@ -86,11 +56,20 @@
 
 pid_file           "/var/run/chef/client.pid"
 
-# Chef::Log::Formatter.show_time specifies whether the chef-client log should
-# contain timestamps. 
-# valid values are true or false (no quotes, see above about Ruby idioms). The
-# printed timestamp is rfc2822, for example:
-# Fri, 31 Jul 2009 19:19:46 -0600
+# cache_options sets options used by the moneta library for local cache
+# for checksums of compared objects.
 
-Chef::Log::Formatter.show_time = true
+cache_options({ :path => "/var/cache/chef/checksums", :skip_expires => true})
 
+# signing_ca_user is used when generating the certificates used by chef to
+# set the owner of the keyfile. This is set to chef so services that run
+# as the chef user can read the file.
+
+signing_ca_user "chef"
+
+# Mixlib::Log::Formatter.show_time specifies whether the log should
+# contain timestamps.
+# valid values are true or false. The printed timestamp is rfc2822, for example:
+# Fri, 31 Jul 2009 19:19:46 -0600
+
+Mixlib::Log::Formatter.show_time = true

Modified: trunk/chef/debian/etc/chef/server.rb
===================================================================
--- trunk/chef/debian/etc/chef/server.rb	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/etc/chef/server.rb	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,31 +1,23 @@
 # Configuration File For Chef (chef-server)
-# 
-# chef-server is a Merb application slice. By default it is configured to
-# run via Mongrel, the default Merb adapter. This should be run as:
 #
-#		chef-server -c2 
+# chef-server is a Merb application slice that provides the Chef API.
 #
-#	Which specifies two workers, so that chef-server has a worker to handle
-# OpenID requests. The two processes will be listening on port 4000 and 4001,
-# see the URL settings below.
+# By default it is configured to run via Thin. It can be run manually as:
 #
-# For details on how to set up the chef-server with a web front end proxy 
-# (nginx, apache, etc) or as an application under Passenger, see the Chef 
-# Wiki, under Additional Resources.
+#		chef-server -p 4000 -e production -a thin
 #
+# This starts up the RESTful Chef Server API on port 4000 in production mode
+# using the thin server adapter.
+#
 # This file configures the behavior of the running server itself.
 #
-# Chef uses a Ruby DSL for configuration, and this file contains a few
-# Ruby idioms. First, symbols. These are designated by a colon sigil, ie,
-# :value. Second, in Ruby, everything but false and nil (no quotes or other
-# designations) is true, including true, the integer 0 and the string "false".
-# So to set the value of a setting to false, write:
+# It is a Ruby DSL config file, and can embed regular Ruby code in addition to
+# the configuration settings. Some settings use Ruby symbols, which are a value
+# that starts with a colon. In Ruby, anything but 'false' or 'nil' is true. To
+# set something to false:
 #
 # some_setting false
 #
-# Third, Ruby class methods can be used, for example we tell the log to show
-# the current time stamp with Chef::Log::Formatter.show_time, below.
-#
 # log_level specifies the level of verbosity for output.
 # valid values are: :debug, :info, :warn, :error, :fatal
 
@@ -34,87 +26,46 @@
 # log_location specifies where the server should log to.
 # valid values are: a quoted string specifying a file, or STDOUT with
 # no quotes. This is the application log for the Merb workers that get
-# spawned.
+# spawned. The chef-server daemon is configured to log to
+# /var/log/chef/server.log in /etc/chef/default/chef-server.
 
-log_location       "/var/log/chef/server.log"
+log_location       STDOUT
 
 # ssl_verify_mode specifies if the REST client should verify SSL certificates.
-# valid values are :verify_none, :verify_peer. The default Chef Server 
+# valid values are :verify_none, :verify_peer. The default Chef Server
 # installation on Debian will use a self-generated SSL certificate so this
 # should be :verify_none unless you replace the certificate.
 
 ssl_verify_mode    :verify_none
 
-# The next few settings specify the URL where chef-server should respond
-# for various components. 
-#
-# registration_url specifies the URL which clients retrieve to register.
-# valid values are any HTTP URL.
+# chef_server_url specifies the URL for the server API. The process actually
+# listens on 0.0.0.0:PORT. valid values are any HTTP URL. To change the port
+# the server listens on, modify /etc/default/chef-server.
 
-registration_url   "http://localhost:4000"
+chef_server_url    "http://localhost:4000"
 
-# openid_url specifies the URL where the server's OpenID relay is listening.
-# valid values are any HTTP URL. This should be one port higher than the other
-# URLs.
+# cookbook_path is a Ruby array of filesystem locations to search for cookbooks
+# that are available for clients. This is also where cookbooks uploaded via
+# 'knife' are stored.
 #
-# NOTE: The client/server openid communication will be removed in favor of a
-# pre-shared key authentication and authorization architecture in a future 
-# release of Chef. This is currently scheduled for version 0.8.0.
-
-openid_url         "http://localhost:4001"
-
-# template_url specifies the URL where clients should retrieve templates.
-# valid values are any HTTP URL.
-
-template_url       "http://localhost:4000"
-
-# remotefile_url specifies the URL where clients should retrieve remote 
-# static file and directory contents.
-# valid values are any HTTP URL.
-
-remotefile_url     "http://localhost:4000"
-
-# search_url specifies the URL where the client should send queries for search
-# indexes.
-# valid values are any HTTP URL.
-
-search_url         "http://localhost:4000"
-
-# role_url specifies the URL where the client should look for role data.
-# valid values are any HTTP URL.
-
-role_url           "http://localhost:4000"
-
-# file_cache_path specifies where the client should cache cookbooks, server
-# cookie ID, and openid registration data.
-# valid value is any filesystem directory location.
-
-file_cache_path    "/var/cache/chef"
-
-# validation_token specifies a token that clients can use to automatically authorize
-# with the server, normally this must be done through the webui.
-# valid value is a string. This should be alphanumeric, otherwise unexpected things 
-# may occur. This is commented out so the default value gets set to nil (invalid,
-# unusable) so we're not shipping a default known value. If you want to use this
-# feature, you'll need to uncomment it, set a good value (random strings of 20+ 
-# characters work well), and restart the chef-server.
-
-#validation_token   ""
-
-# cookbook_path is a Ruby array of filesystem locations to search for cookbooks.
 # valid value is a string, or an array of strings of filesystem directory locations.
 # This setting is searched beginning (index 0) to end in order. You might specify
 # multiple search paths for cookbooks if you want to use an upstream source, and
-# provide localised "site" overrides.
-# The default value, /srv/chef/cookbooks does not contain any cookbooks by default.
+# provide localised "site" overrides. These should come after the 'upstream' source.
+# The default value, /var/lib/chef/cookbooks does not contain any cookbooks by default.
+#
 # See the Chef Wiki for more information about setting up a local repository for
-# working on cookbooks.
-# http://wiki.opscode.com/display/chef/Chef+Repository
+# working on cookbooks: http://wiki.opscode.com/display/chef/Chef+Repository
 
-#cookbook_path      [ "/srv/chef/site-cookbooks", "/srv/chef/cookbooks" ]
-cookbook_path      [ "/srv/chef/cookbooks" ]
+cookbook_path      [ "/var/lib/chef/cookbooks" ]
 
-# file_cache_path specifies where the client should cache cookbooks, server
+# cookbook_tarball_path is the location where the server will store uploaded
+# cookbook tarballs. These tarballs can be downloaded with knife, for
+# redistribution.
+
+cookbook_tarball_path "/var/lib/chef/cookbook-tarballs"
+
+# file_cache_path specifies where chef should cache cookbooks, server
 # cookie ID, and openid registration data.
 # valid value is any filesystem directory location.
 
@@ -123,37 +74,60 @@
 # node_path specifies a location for where to find node-specific recipes.
 # valid values are any filesystem direcory location.
 
-node_path          "/srv/chef/nodes"
+#node_path          "/var/lib/chef/nodes"
 
 # openid_store_path specifies a location where to keep openid nonces for clients.
 # valid values are any filesystem directory location.
+#
+# NOTE: OpenID is deprecated and this option may not be used, kept for
+# historical purposes because the default in Chef is not FHS compliant, and
+# may be removed in a future version.
 
 openid_store_path  "/var/lib/chef/openid/store"
 
 # openid_store_path specifies a location where to keep openid nonces for clients.
 # valid values are any filesystem directory location.
+#
+# NOTE: OpenID is deprecated and this option may not be used, kept for
+# historical purposes because the default in Chef is not FHS compliant, and
+# may be removed in a future version.
 
 openid_cstore_path "/var/lib/chef/openid/cstore"
 
-# search_index_path tells the indexer where to store search indexes.
-# valid values are any filesystem directory location.
-
-search_index_path  "/var/lib/chef/search_index"
-
-# role_path designates where the server should load role JSON and Ruby DSL 
+# role_path designates where the server should load role JSON and Ruby DSL
 # files from.
-# valid values are any filesystem directory location. Roles are a feature 
+# valid values are any filesystem directory location. Roles are a feature
 # that allow you to easily reuse lists of recipes and attribute settings.
 # Please see the Chef Wiki page for information on how to utilize the feature.
 # http://wiki.opscode.com/display/chef/Roles
+#
+# NOTE: The role_path setting is deprecated on the chef-server, as the
+# roles are now stored directly in CouchDB rather than on the filesystem.
+# This option is kept for historical purposes because the default in Chef is
+# not FHS compliant, and may be removed in a future version.
 
-role_path          "/srv/chef/roles"
+#role_path          "/var/lib/chef/roles"
 
-# Chef::Log::Formatter.show_time specifies whether the chef-client log should
-# contain timestamps. 
-# valid values are true or false (no quotes, see above about Ruby idioms). The
-# printed timestamp is rfc2822, for example:
+# cache_options sets options used by the moneta library for local cache
+# for checksums of compared objects.
+
+cache_options({ :path => "/var/cache/chef/checksums", :skip_expires => true})
+
+# Mixlib::Log::Formatter.show_time specifies whether the chef-client log should
+# contain timestamps.
+# valid values are true or false. The printed timestamp is rfc2822, for example:
 # Fri, 31 Jul 2009 19:19:46 -0600
 
-Chef::Log::Formatter.show_time = true
+Mixlib::Log::Formatter.show_time = true
 
+# The following options configure the signing CA so it can be read by
+# non-privileged user for the server daemon.
+
+signing_ca_cert "/etc/chef/certificates/cert.pem"
+signing_ca_key "/etc/chef/certificates/key.pem"
+signing_ca_user "chef"
+signing_ca_group "chef"
+
+# amqp_pass sets the password for the AMQP virtual host in rabbitmq-server.
+
+amqp_pass "testing"

Modified: trunk/chef/debian/etc/chef/solo.rb
===================================================================
--- trunk/chef/debian/etc/chef/solo.rb	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/etc/chef/solo.rb	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,36 +1,37 @@
-# Configuration File For Chef Solo (chef-solo) 
+# Configuration File For Chef Solo (chef-solo)
 #
 # The program chef-solo allows you to run Chef as a standalone program
 # without connecting to a remote Chef Server.
 #
-# Chef uses a Ruby DSL for configuration, and this file may contain some
-# Ruby idioms. First, symbols. These are designated by a colon sigil, ie,
-# :value. Second, in Ruby, everything but false and nil (no quotes or other
-# designations) is true, including true, the integer 0 and the string "false".
-# So to set the value of a setting to false, write:
+# When invoked without the -c option, chef-solo reads this file by default,
+# otherwise it reads the specified file for configuration.
 #
+# It is a Ruby DSL config file, and can embed regular Ruby code in addition to
+# the configuration settings. Some settings use Ruby symbols, which are a value
+# that starts with a colon. In Ruby, anything but 'false' or 'nil' is true. To
+# set something to false:
+#
 # some_setting false
 #
-# Third, Ruby class methods can be used, for example we tell the log to show
-# the current time stamp with Chef::Log::Formatter.show_time, below.
-#
 # log_level specifies the level of verbosity for output.
 # valid values are: :debug, :info, :warn, :error, :fatal
+# Corresponds to chef-solo -l
 
 log_level          :info
 
 # log_location specifies where the client should log to.
 # valid values are: a quoted string specifying a file, or STDOUT with
 # no quotes.
+# Corresponds to chef-solo -L
 
 log_location       STDOUT
 
 # file_cache_path specifies where solo should look for the cookbooks to use
-# valid value is any filesystem directory location. This is slightly 
-# different from 'normal' client mode as solo is actually downloading (or 
+# valid value is any filesystem directory location. This is slightly
+# different from 'normal' client mode as solo is actually downloading (or
 # using) the specified cookbooks in this location.
 
-file_cache_path    "/srv/chef"
+file_cache_path    "/var/cache/chef"
 
 # cookbook_path specifies where solo should look for cookbooks it will use.
 # valid value is a string, or array of strings of filesystem directory locations.
@@ -38,13 +39,23 @@
 # this as a search location, in Array order. It should be a subdirectory of
 # file_cache_path, above.
 
-cookbook_path      [ "/srv/chef/cookbooks" ]
+cookbook_path      [ "/var/lib/chef/cookbooks" ]
 
-# Chef::Log::Formatter.show_time specifies whether the chef-client log should
-# contain timestamps. 
-# valid values are true or false (no quotes, see above about Ruby idioms). The
-# printed timestamp is rfc2822, for example:
+# recipe_url specifies a remote URL to retrieve a tarball of cookbooks.
+# Corresponds to chef-solo -r
+
+#recipe_url "http://www.example.com/chef/cookbooks.tar.gz"
+
+# json_attribs specifies a local or remote JSON data file that specifies
+# attributes and a run_list that Chef will use to configure the system.
+# Corresponds to chef-solo -j
+
+#json_attribs "/var/tmp/node.json"
+#json_attribs "http://www.example.com/chef/node.json"
+
+# Mixlib::Log::Formatter.show_time specifies whether the log should
+# contain timestamps.
+# valid values are true or false. The printed timestamp is rfc2822, for example:
 # Fri, 31 Jul 2009 19:19:46 -0600
 
-Chef::Log::Formatter.show_time = true
-
+Mixlib::Log::Formatter.show_time = true

Added: trunk/chef/debian/etc/chef/solr-jetty/jetty-web.xml
===================================================================
--- trunk/chef/debian/etc/chef/solr-jetty/jetty-web.xml	                        (rev 0)
+++ trunk/chef/debian/etc/chef/solr-jetty/jetty-web.xml	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,11 @@
+<?xml version="1.0"  encoding="ISO-8859-1"?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
+"http://jetty.mortbay.org/configure.dtd">
+
+<!-- Set the solr.solr.home system property -->
+<Configure class="org.mortbay.jetty.webapp.WebAppContext">
+  <Call name="setProperty" class="java.lang.System">
+    <Arg type="String">solr.solr.home</Arg>
+    <Arg type="String">/var/lib/chef/solr</Arg>
+  </Call>
+</Configure>

Added: trunk/chef/debian/etc/chef/solr-jetty/jetty.xml
===================================================================
--- trunk/chef/debian/etc/chef/solr-jetty/jetty.xml	                        (rev 0)
+++ trunk/chef/debian/etc/chef/solr-jetty/jetty.xml	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,213 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
+
+<!-- =============================================================== -->
+<!-- Configure the Jetty Server                                      -->
+<!--                                                                 -->
+<!-- Documentation of this file format can be found at:              -->
+<!-- http://docs.codehaus.org/display/JETTY/jetty.xml                -->
+<!--                                                                 -->
+<!-- =============================================================== -->
+
+
+<Configure id="Server" class="org.mortbay.jetty.Server">
+
+    <!-- Increase the maximum POST size to 1 MB to be able to handle large shard requests -->
+    <Call class="java.lang.System" name="setProperty">
+      <Arg>org.mortbay.jetty.Request.maxFormContentSize</Arg>
+      <Arg>1000000</Arg>
+    </Call>
+
+    <!-- =========================================================== -->
+    <!-- Server Thread Pool                                          -->
+    <!-- =========================================================== -->
+    <Set name="ThreadPool">
+      <!-- Default bounded blocking threadpool 
+      -->
+      <New class="org.mortbay.thread.BoundedThreadPool">
+        <Set name="minThreads">10</Set>
+        <Set name="lowThreads">50</Set>
+        <Set name="maxThreads">10000</Set>
+      </New>
+
+      <!-- Optional Java 5 bounded threadpool with job queue 
+      <New class="org.mortbay.thread.concurrent.ThreadPool">
+        <Arg type="int">0</Arg>
+        <Set name="corePoolSize">10</Set>
+        <Set name="maximumPoolSize">250</Set>
+      </New>
+      -->
+    </Set>
+
+
+
+    <!-- =========================================================== -->
+    <!-- Set connectors                                              -->
+    <!-- =========================================================== -->
+    <!-- One of each type!                                           -->
+    <!-- =========================================================== -->
+
+    <!-- Use this connector for many frequently idle connections
+         and for threadless continuations.
+    <Call name="addConnector">
+      <Arg>
+          <New class="org.mortbay.jetty.nio.SelectChannelConnector">
+            <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>
+            <Set name="maxIdleTime">30000</Set>
+            <Set name="Acceptors">2</Set>
+            <Set name="confidentialPort">8443</Set>
+          </New>
+      </Arg>
+    </Call>
+   -->     
+
+    <!-- Use this connector if NIO is not available. -->
+    <!-- This connector is currently being used for Solr because the
+         nio.SelectChannelConnector showed poor performance under WindowsXP
+         from a single client with non-persistent connections (35s vs ~3min)
+         to complete 10,000 requests)
+    -->
+    <Call name="addConnector">
+      <Arg>
+          <New class="org.mortbay.jetty.bio.SocketConnector">
+            <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>
+            <Set name="Host">127.0.0.1</Set>
+            <Set name="maxIdleTime">50000</Set>
+            <Set name="lowResourceMaxIdleTime">1500</Set>
+          </New>
+      </Arg>
+    </Call>
+
+    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+    <!-- To add a HTTPS SSL listener                                     -->
+    <!-- see jetty-ssl.xml to add an ssl connector. use                  -->
+    <!-- java -jar start.jar etc/jetty.xml etc/jetty-ssl.xml             -->
+    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+    
+    <!-- =========================================================== -->
+    <!-- Set up global session ID manager                            -->
+    <!-- =========================================================== -->
+    <!--
+    <Set name="sessionIdManager">
+      <New class="org.mortbay.jetty.servlet.HashSessionIdManager">
+        <Set name="workerName">node1</Set>
+      </New>
+    </Set>
+    -->
+
+    <!-- =========================================================== -->
+    <!-- Set handler Collection Structure                            --> 
+    <!-- =========================================================== -->
+    <Set name="handler">
+      <New id="Handlers" class="org.mortbay.jetty.handler.HandlerCollection">
+        <Set name="handlers">
+         <Array type="org.mortbay.jetty.Handler">
+           <Item>
+             <New id="Contexts" class="org.mortbay.jetty.handler.ContextHandlerCollection"/>
+           </Item>
+           <Item>
+             <New id="DefaultHandler" class="org.mortbay.jetty.handler.DefaultHandler"/>
+           </Item>
+           <Item>
+             <New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>
+           </Item>
+         </Array>
+        </Set>
+      </New>
+    </Set>
+    
+    <!-- =========================================================== -->
+    <!-- Configure the context deployer                              -->
+    <!-- A context deployer will deploy contexts described in        -->
+    <!-- configuration files discovered in a directory.              -->
+    <!-- The configuration directory can be scanned for hot          -->
+    <!-- deployments at the configured scanInterval.                 -->
+    <!--                                                             -->
+    <!-- This deployer is configured to deploy contexts configured   -->
+    <!-- in the $JETTY_HOME/contexts directory                       -->
+    <!--                                                             -->
+    <!-- =========================================================== -->
+    <Call name="addLifeCycle">
+      <Arg>
+        <New class="org.mortbay.jetty.deployer.ContextDeployer">
+          <Set name="contexts"><Ref id="Contexts"/></Set>
+          <Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set>
+          <Set name="scanInterval">1</Set>
+        </New>
+      </Arg>
+    </Call>
+
+    <!-- =========================================================== -->
+    <!-- Configure the webapp deployer.                              -->
+    <!-- A webapp  deployer will deploy standard webapps discovered  -->
+    <!-- in a directory at startup, without the need for additional  -->
+    <!-- configuration files.    It does not support hot deploy or   -->
+    <!-- non standard contexts (see ContextDeployer above).          -->
+    <!--                                                             -->
+    <!-- This deployer is configured to deploy webapps from the      -->
+    <!-- $JETTY_HOME/webapps directory                               -->
+    <!--                                                             -->
+    <!-- Normally only one type of deployer need be used.            -->
+    <!--                                                             -->
+    <!-- =========================================================== -->
+    <Call name="addLifeCycle">
+      <Arg>
+        <New class="org.mortbay.jetty.deployer.WebAppDeployer">
+          <Set name="contexts"><Ref id="Contexts"/></Set>
+          <Set name="webAppDir"><SystemProperty name="jetty.home" default="."/>/webapps</Set>
+				  <Set name="parentLoaderPriority">false</Set>
+				  <Set name="extract">true</Set>
+				  <Set name="allowDuplicates">false</Set>
+          <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
+        </New>
+      </Arg>
+    </Call>
+
+    <!-- =========================================================== -->
+    <!-- Configure Authentication Realms                             -->
+    <!-- Realms may be configured for the entire server here, or     -->
+    <!-- they can be configured for a specific web app in a context  -->
+    <!-- configuration (see $(jetty.home)/contexts/test.xml for an   -->
+    <!-- example).                                                   -->
+    <!-- =========================================================== -->
+    <Set name="UserRealms">
+      <Array type="org.mortbay.jetty.security.UserRealm">
+        <!--
+        <Item>
+          <New class="org.mortbay.jetty.security.HashUserRealm">
+            <Set name="name">Test Realm</Set>
+            <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
+          </New>
+        </Item>
+	-->
+      </Array>
+    </Set>
+
+    <!-- =========================================================== -->
+    <!-- Configure Request Log                                       -->
+    <!-- Request logs  may be configured for the entire server here, -->
+    <!-- or they can be configured for a specific web app in a       -->
+    <!-- contexts configuration (see $(jetty.home)/contexts/test.xml -->
+    <!-- for an example).                                            -->
+    <!-- =========================================================== -->
+    <Ref id="RequestLog">
+      <Set name="requestLog">
+        <New id="RequestLogImpl" class="org.mortbay.jetty.NCSARequestLog">
+          <Arg><SystemProperty name="jetty.logs" default="/var/log/chef"/>/yyyy_mm_dd.jetty.log</Arg>
+          <Set name="retainDays">90</Set>
+          <Set name="append">true</Set>
+          <Set name="extended">false</Set>
+          <Set name="LogTimeZone">GMT</Set>
+        </New>
+      </Set>
+    </Ref>
+
+    <!-- =========================================================== -->
+    <!-- extra options                                               -->
+    <!-- =========================================================== -->
+    <Set name="stopAtShutdown">true</Set>
+    <!-- ensure/prevent Server: header being sent to browsers        -->
+    <Set name="sendServerVersion">true</Set>
+
+</Configure>
+

Added: trunk/chef/debian/etc/chef/solr-jetty/start.config
===================================================================
--- trunk/chef/debian/etc/chef/solr-jetty/start.config	                        (rev 0)
+++ trunk/chef/debian/etc/chef/solr-jetty/start.config	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,62 @@
+# This file controls what file are to be put on classpath or command line.
+#
+# Format is as follows:
+# Each line contains entry for one JAR file.
+# Format of line:
+#
+#  SUBJECT [ [!] CONDITION [AND|OR] ]*
+# 
+# where SUBJECT: 
+#   ends with ".class" is the Main class to run.
+#   ends with ".xml" is a configuration file for the command line
+#   ends with "/" is a directory from which to add all jar and zip files. 
+#   ends with "/*" is a directory from which to add all unconsidered jar and zip files.
+#   ends with "/**" is a directory from which to recursively add all unconsidered jar and zip files.
+#   Containing = are used to assign system properties.
+#   all other subjects are treated as files to be added to the classpath.
+#
+# Subjects may include system properties with $(propertyname) syntax. 
+#
+# Files starting with "/" are considered absolute, all others are relative to
+# the home directory.
+#
+# CONDITION is one of:
+#   always
+#   never
+#   available classname        # true if class on classpath
+#   property name              # true of set
+#   java OPERATOR version      # java version compared to literal
+#   nargs OPERATOR number      # number of command line args compared to literal
+#   OPERATOR := one of "<",">","<=",">=","==","!="
+#
+# CONDITIONS can be combined with AND OR or !, with AND being the assume
+# operator for a list of CONDITIONS.
+# Classpath operations are evaluated on the fly, so once a class or jar is
+# added to the classpath, subsequent available conditions will see that class.
+#
+
+$(jetty.class.path)                              always
+$(jetty.lib)/**                                  exists $(jetty.lib)
+
+jetty.home=/var/lib/chef/solr/solr-jetty                      always 
+
+# The main class to run
+org.mortbay.xml.XmlConfiguration.class
+$(start.class).class
+
+# The default configuration files
+$(jetty.home)/etc/jetty.xml                      nargs == 0
+
+/usr/share/java/servlet-api-2.5.jar
+/usr/share/java/slf4j-api.jar
+
+# Optional stuff for libjetty-extra-java
+/usr/share/java/gnumail.jar
+/usr/share/java/activation.jar
+/usr/share/java/ant.jar
+
+# Set the jetty classpath
+/usr/share/jetty/lib/**
+
+# Add a resources directory if it is there
+$(jetty.home)/resources/

Added: trunk/chef/debian/etc/chef/solr-jetty/webdefault.xml
===================================================================
--- trunk/chef/debian/etc/chef/solr-jetty/webdefault.xml	                        (rev 0)
+++ trunk/chef/debian/etc/chef/solr-jetty/webdefault.xml	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,379 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!-- ===================================================================== -->
+<!-- This file contains the default descriptor for web applications.       -->
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+<!-- The intent of this descriptor is to include jetty specific or common  -->
+<!-- configuration for all webapps.   If a context has a webdefault.xml    -->
+<!-- descriptor, it is applied before the contexts own web.xml file        -->
+<!--                                                                       -->
+<!-- A context may be assigned a default descriptor by:                    -->
+<!--  + Calling WebApplicationContext.setDefaultsDescriptor                -->
+<!--  + Passed an arg to addWebApplications                                -->
+<!--                                                                       -->
+<!-- This file is used both as the resource within the jetty.jar (which is -->
+<!-- used as the default if no explicit defaults descriptor is set) and it -->
+<!-- is copied to the etc directory of the Jetty distro and explicitly     -->
+<!-- by the jetty.xml file.                                                -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+<web-app 
+   xmlns="http://java.sun.com/xml/ns/javaee" 
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
+   metadata-complete="true"
+   version="2.5"> 
+
+  <description>
+    Default web.xml file.  
+    This file is applied to a Web application before it's own WEB_INF/web.xml file
+  </description>
+
+
+  <!-- ==================================================================== -->
+  <!-- Context params to control Session Cookies                            -->
+  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
+  <!-- UNCOMMENT TO ACTIVATE
+  <context-param>
+    <param-name>org.mortbay.jetty.servlet.SessionDomain</param-name>
+    <param-value>127.0.0.1</param-value>
+  </context-param>
+
+  <context-param>
+    <param-name>org.mortbay.jetty.servlet.SessionPath</param-name>
+    <param-value>/</param-value>
+  </context-param>
+
+  <context-param>
+    <param-name>org.mortbay.jetty.servlet.MaxAge</param-name>
+    <param-value>-1</param-value>
+  </context-param>
+  -->
+
+  <context-param>
+    <param-name>org.mortbay.jetty.webapp.NoTLDJarPattern</param-name>
+    <param-value>start.jar|ant-.*\.jar|dojo-.*\.jar|jetty-.*\.jar|jsp-api-.*\.jar|junit-.*\.jar|servlet-api-.*\.jar|dnsns\.jar|rt\.jar|jsse\.jar|tools\.jar|sunpkcs11\.jar|sunjce_provider\.jar|xerces.*\.jar|</param-value>
+  </context-param>
+            
+
+
+  <!-- ==================================================================== -->
+  <!-- The default servlet.                                                 -->
+  <!-- This servlet, normally mapped to /, provides the handling for static -->
+  <!-- content, OPTIONS and TRACE methods for the context.                  -->
+  <!-- The following initParameters are supported:                          -->
+  <!--                                                                      -->
+  <!--   acceptRanges     If true, range requests and responses are         -->
+  <!--                    supported                                         -->
+  <!--                                                                      -->
+  <!--   dirAllowed       If true, directory listings are returned if no    -->
+  <!--                    welcome file is found. Else 403 Forbidden.        -->
+  <!--                                                                      -->
+  <!--   redirectWelcome  If true, redirect welcome file requests           -->
+  <!--                    else use request dispatcher forwards              -->
+  <!--                                                                      -->
+  <!--   gzip             If set to true, then static content will be served--> 
+  <!--                    as gzip content encoded if a matching resource is -->
+  <!--                    found ending with ".gz"                           -->
+  <!--                                                                      -->
+  <!--   resoureBase      Can be set to replace the context resource base   -->
+  <!--                                                                      -->
+  <!--   relativeResourceBase                                               -->
+  <!--                    Set with a pathname relative to the base of the   -->
+  <!--                    servlet context root. Useful for only serving     -->
+  <!--                    static content from only specific subdirectories. -->
+  <!--                                                                      -->
+  <!--   useFileMappedBuffer                                                -->
+  <!--                    If set to true (the default), a  memory mapped    -->
+  <!--                    file buffer will be used to serve static content  -->
+  <!--                    when using an NIO connector. Setting this value   -->
+  <!--                    to false means that a direct buffer will be used  -->
+  <!--                    instead. If you are having trouble with Windows   -->
+  <!--                    file locking, set this to false.                  -->
+  <!--                                                                      -->
+  <!--  cacheControl      If set, all static content will have this value   -->
+  <!--                    set as the cache-control header.                  -->
+  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
+  <servlet>
+    <servlet-name>default</servlet-name>
+    <servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class>
+    <init-param>
+      <param-name>acceptRanges</param-name>
+      <param-value>true</param-value>
+    </init-param>
+    <init-param>
+      <param-name>dirAllowed</param-name>
+      <param-value>true</param-value>
+    </init-param>
+    <init-param>
+      <param-name>redirectWelcome</param-name>
+      <param-value>false</param-value>
+    </init-param>
+    <init-param>
+      <param-name>maxCacheSize</param-name>
+      <param-value>2000000</param-value>
+    </init-param>
+    <init-param>
+      <param-name>maxCachedFileSize</param-name>
+      <param-value>254000</param-value>
+    </init-param>
+    <init-param>
+      <param-name>maxCachedFiles</param-name>
+      <param-value>1000</param-value>
+    </init-param>
+    <init-param>
+      <param-name>gzip</param-name>
+      <param-value>false</param-value>
+    </init-param>
+    <init-param>
+      <param-name>useFileMappedBuffer</param-name>
+      <param-value>false</param-value>
+    </init-param>  
+    <!--
+    <init-param>
+      <param-name>cacheControl</param-name>
+      <param-value>max-age=3600,public</param-value>
+    </init-param>
+    -->
+    <load-on-startup>0</load-on-startup>
+  </servlet> 
+
+  <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
+  
+
+  <!-- ==================================================================== -->
+  <!-- JSP Servlet                                                          -->
+  <!-- This is the jasper JSP servlet from the jakarta project              -->
+  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
+  <!-- The JSP page compiler and execution servlet, which is the mechanism  -->
+  <!-- used by Glassfish to support JSP pages.  Traditionally, this servlet -->
+  <!-- is mapped to URL patterh "*.jsp".  This servlet supports the         -->
+  <!-- following initialization parameters (default values are in square    -->
+  <!-- brackets):                                                           -->
+  <!--                                                                      -->
+  <!--   checkInterval       If development is false and reloading is true, -->
+  <!--                       background compiles are enabled. checkInterval -->
+  <!--                       is the time in seconds between checks to see   -->
+  <!--                       if a JSP page needs to be recompiled. [300]    -->
+  <!--                                                                      -->
+  <!--   compiler            Which compiler Ant should use to compile JSP   -->
+  <!--                       pages.  See the Ant documenation for more      -->
+  <!--                       information. [javac]                           -->
+  <!--                                                                      -->
+  <!--   classdebuginfo      Should the class file be compiled with         -->
+  <!--                       debugging information?  [true]                 -->
+  <!--                                                                      -->
+  <!--   classpath           What class path should I use while compiling   -->
+  <!--                       generated servlets?  [Created dynamically      -->
+  <!--                       based on the current web application]          -->
+  <!--                       Set to ? to make the container explicitly set  -->
+  <!--                       this parameter.                                -->
+  <!--                                                                      -->
+  <!--   development         Is Jasper used in development mode (will check -->
+  <!--                       for JSP modification on every access)?  [true] -->
+  <!--                                                                      -->
+  <!--   enablePooling       Determines whether tag handler pooling is      -->
+  <!--                       enabled  [true]                                -->
+  <!--                                                                      -->
+  <!--   fork                Tell Ant to fork compiles of JSP pages so that -->
+  <!--                       a separate JVM is used for JSP page compiles   -->
+  <!--                       from the one Tomcat is running in. [true]      -->
+  <!--                                                                      -->
+  <!--   ieClassId           The class-id value to be sent to Internet      -->
+  <!--                       Explorer when using <jsp:plugin> tags.         -->
+  <!--                       [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]   -->
+  <!--                                                                      -->
+  <!--   javaEncoding        Java file encoding to use for generating java  -->
+  <!--                       source files. [UTF-8]                          -->
+  <!--                                                                      -->
+  <!--   keepgenerated       Should we keep the generated Java source code  -->
+  <!--                       for each page instead of deleting it? [true]   -->
+  <!--                                                                      -->
+  <!--   logVerbosityLevel   The level of detailed messages to be produced  -->
+  <!--                       by this servlet.  Increasing levels cause the  -->
+  <!--                       generation of more messages.  Valid values are -->
+  <!--                       FATAL, ERROR, WARNING, INFORMATION, and DEBUG. -->
+  <!--                       [WARNING]                                      -->
+  <!--                                                                      -->
+  <!--   mappedfile          Should we generate static content with one     -->
+  <!--                       print statement per input line, to ease        -->
+  <!--                       debugging?  [false]                            -->
+  <!--                                                                      -->
+  <!--                                                                      -->
+  <!--   reloading           Should Jasper check for modified JSPs?  [true] -->
+  <!--                                                                      -->
+  <!--   suppressSmap        Should the generation of SMAP info for JSR45   -->
+  <!--                       debugging be suppressed?  [false]              -->
+  <!--                                                                      -->
+  <!--   dumpSmap            Should the SMAP info for JSR45 debugging be    -->
+  <!--                       dumped to a file? [false]                      -->
+  <!--                       False if suppressSmap is true                  -->
+  <!--                                                                      -->
+  <!--   scratchdir          What scratch directory should we use when      -->
+  <!--                       compiling JSP pages?  [default work directory  -->
+  <!--                       for the current web application]               -->
+  <!--                                                                      -->
+  <!--   tagpoolMaxSize      The maximum tag handler pool size  [5]         -->
+  <!--                                                                      -->
+  <!--   xpoweredBy          Determines whether X-Powered-By response       -->
+  <!--                       header is added by generated servlet  [false]  -->
+  <!--                                                                      -->
+  <!-- If you wish to use Jikes to compile JSP pages:                       -->
+  <!--   Set the init parameter "compiler" to "jikes".  Define              -->
+  <!--   the property "-Dbuild.compiler.emacs=true" when starting Jetty     -->
+  <!--   to cause Jikes to emit error messages in a format compatible with  -->
+  <!--   Jasper.                                                            -->
+  <!--   If you get an error reporting that jikes can't use UTF-8 encoding, -->
+  <!--   try setting the init parameter "javaEncoding" to "ISO-8859-1".     -->
+  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
+  <servlet id="jsp">
+    <servlet-name>jsp</servlet-name>
+    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
+    <init-param>
+        <param-name>logVerbosityLevel</param-name>
+        <param-value>DEBUG</param-value>
+    </init-param>
+    <init-param>
+        <param-name>fork</param-name>
+        <param-value>false</param-value>
+    </init-param>
+    <init-param>
+        <param-name>xpoweredBy</param-name>
+        <param-value>false</param-value>
+    </init-param>
+    <!--  
+    <init-param>
+        <param-name>classpath</param-name>
+        <param-value>?</param-value>
+    </init-param>
+    -->
+    <load-on-startup>0</load-on-startup>
+  </servlet>
+
+  <servlet-mapping> 
+    <servlet-name>jsp</servlet-name> 
+    <url-pattern>*.jsp</url-pattern> 
+    <url-pattern>*.jspf</url-pattern>
+    <url-pattern>*.jspx</url-pattern>
+    <url-pattern>*.xsp</url-pattern>
+    <url-pattern>*.JSP</url-pattern> 
+    <url-pattern>*.JSPF</url-pattern>
+    <url-pattern>*.JSPX</url-pattern>
+    <url-pattern>*.XSP</url-pattern>
+  </servlet-mapping>
+  
+  <!-- ==================================================================== -->
+  <!-- Dynamic Servlet Invoker.                                             -->
+  <!-- This servlet invokes anonymous servlets that have not been defined   -->
+  <!-- in the web.xml or by other means. The first element of the pathInfo  -->
+  <!-- of a request passed to the envoker is treated as a servlet name for  -->
+  <!-- an existing servlet, or as a class name of a new servlet.            -->
+  <!-- This servlet is normally mapped to /servlet/*                        -->
+  <!-- This servlet support the following initParams:                       -->
+  <!--                                                                      -->
+  <!--  nonContextServlets       If false, the invoker can only load        -->
+  <!--                           servlets from the contexts classloader.    -->
+  <!--                           This is false by default and setting this  -->
+  <!--                           to true may have security implications.    -->
+  <!--                                                                      -->
+  <!--  verbose                  If true, log dynamic loads                 -->
+  <!--                                                                      -->
+  <!--  *                        All other parameters are copied to the     -->
+  <!--                           each dynamic servlet as init parameters    -->
+  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
+  <!-- Uncomment for dynamic invocation
+  <servlet>
+    <servlet-name>invoker</servlet-name>
+    <servlet-class>org.mortbay.jetty.servlet.Invoker</servlet-class>
+    <init-param>
+      <param-name>verbose</param-name>
+      <param-value>false</param-value>
+    </init-param>
+    <init-param>
+      <param-name>nonContextServlets</param-name>
+      <param-value>false</param-value>
+    </init-param>
+    <init-param>
+      <param-name>dynamicParam</param-name>
+      <param-value>anyValue</param-value>
+    </init-param>
+    <load-on-startup>0</load-on-startup>
+  </servlet>
+
+  <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
+  -->
+
+
+
+  <!-- ==================================================================== -->
+  <session-config>
+    <session-timeout>30</session-timeout>
+  </session-config>
+
+  <!-- ==================================================================== -->
+  <!-- Default MIME mappings                                                -->
+  <!-- The default MIME mappings are provided by the mime.properties        -->
+  <!-- resource in the org.mortbay.jetty.jar file.  Additional or modified  -->
+  <!-- mappings may be specified here                                       -->
+  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
+  <!-- UNCOMMENT TO ACTIVATE
+  <mime-mapping>
+    <extension>mysuffix</extension>
+    <mime-type>mymime/type</mime-type>
+  </mime-mapping>
+  -->
+
+  <!-- ==================================================================== -->
+  <welcome-file-list>
+    <welcome-file>index.html</welcome-file>
+    <welcome-file>index.htm</welcome-file>
+    <welcome-file>index.jsp</welcome-file>
+  </welcome-file-list>
+
+  <!-- ==================================================================== -->
+  <locale-encoding-mapping-list>
+    <locale-encoding-mapping><locale>ar</locale><encoding>ISO-8859-6</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>be</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>bg</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>ca</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>cs</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>da</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>de</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>el</locale><encoding>ISO-8859-7</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>en</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>es</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>et</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>fi</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>fr</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>hr</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>hu</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>is</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>it</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>iw</locale><encoding>ISO-8859-8</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>ja</locale><encoding>Shift_JIS</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>ko</locale><encoding>EUC-KR</encoding></locale-encoding-mapping>     
+    <locale-encoding-mapping><locale>lt</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>lv</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>mk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>nl</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>no</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>pl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>pt</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>ro</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>ru</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>sh</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>sk</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>sl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>sq</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>sr</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>sv</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>tr</locale><encoding>ISO-8859-9</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>uk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>zh</locale><encoding>GB2312</encoding></locale-encoding-mapping>
+    <locale-encoding-mapping><locale>zh_TW</locale><encoding>Big5</encoding></locale-encoding-mapping>   
+  </locale-encoding-mapping-list>
+
+  
+  
+</web-app>
+

Added: trunk/chef/debian/etc/chef/solr.rb
===================================================================
--- trunk/chef/debian/etc/chef/solr.rb	                        (rev 0)
+++ trunk/chef/debian/etc/chef/solr.rb	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,66 @@
+# Configuration File For Chef SOLR (chef-solr, chef-solr-indexer)
+#
+# Both the chef-solr and chef-solr-indexer daemons read this configuration 
+# file on startup, as set in /etc/default/chef-solr*.
+#
+# The chef-solr-indexer program listens to a rabbitmq-server for the /chef
+# queue, for data stored in the CouchDB. When data is saved to the chef-server,
+# a message is sent to the queue, and the data is indexed and stored by
+# chef-solr for search in Chef recipes, or with the 'knife' command-line tool.
+#
+# chef-solr is a solr-jetty instance.
+# 
+# It is a Ruby DSL config file, and can embed regular Ruby code in addition to
+# the configuration settings. Some settings use Ruby symbols, which are a value
+# that starts with a colon. In Ruby, anything but 'false' or 'nil' is true. To
+# set something to false:
+#
+# some_setting false
+#
+# log_location specifies where the indexer should log to.
+# valid values are: a quoted string specifying a file, or STDOUT with
+# no quotes.
+# Corresponds to chef-solr or chef-solr-indexer -l
+# Both chef-solr and chef-solr-indexer daemons are configured to log in
+#   /etc/default/chef-solr -> /var/log/chef-solr
+#   /etc/default/chef-solr-indexer -> /var/log/chef-solr-indexer
+# respectively. The jetty log for chef-solr is set in
+# /etc/chef/solr-jetty/jetty.xml to /var/log/chef/yyyy_mm_dd.jetty.log.
+
+log_location       STDOUT
+
+# search_index_path specifies where the indexer should store the indexes.
+# valid value is any filesystem directory location.
+
+search_index_path    "/var/lib/chef/search_index"
+
+# set the jetty path to use Debian solr-jetty. Additional configuration for
+# jetty can be found in /etc/chef/solr-jetty (which is symbolically linked to
+# /var/lib/chef/solr/solr-jetty/etc).
+
+solr_jetty_path "/var/lib/chef/solr/solr-jetty"
+solr_home_path  "/var/lib/chef/solr"
+solr_data_path  "/var/cache/chef/solr/data"
+solr_heap_size  "256M"
+
+# specifies the URL of the SOLR instance for the indexer to connect to.
+# To change the port, modify the jetty.port setting in
+# /etc/chef/solr-jetty/jetty.xml
+
+solr_url        "http://localhost:8983"
+
+# uses the solr_jetty_path option set above, and the etc directory is
+# actually a symbolic link to /etc/chef/solr-jetty.
+
+solr_java_opts  "-DSTART=#{Chef::Config[:solr_jetty_path]}/etc/start.config"
+
+# amqp_pass sets the password for the AMQP virtual host in rabbitmq-server.
+
+amqp_pass "testing"
+
+# Mixlib::Log::Formatter.show_time specifies whether the log should
+# contain timestamps.
+# valid values are true or false. The printed timestamp is rfc2822, for example:
+# Fri, 31 Jul 2009 19:19:46 -0600
+
+Mixlib::Log::Formatter.show_time = true

Added: trunk/chef/debian/etc/chef/webui.rb
===================================================================
--- trunk/chef/debian/etc/chef/webui.rb	                        (rev 0)
+++ trunk/chef/debian/etc/chef/webui.rb	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,114 @@
+# Configuration File For Chef (chef-server-webui)
+#
+# chef-server-webui is a Merb application slice that provides a web user
+# interface to the Chef Server. The WebUI is optional as of version 0.8.0+,
+# and is a client to the API itself, which can be running on the same server,
+# or optionally on a different server.
+#
+# By default, it is configured to run via Thin. It can be run manually as:
+#
+#		chef-server-webui -p 4040 -e production -a thin
+#
+# This starts up the Chef Server WebUI on port 4040 in production mode using
+# the thin server adapter.
+#
+# This file configures the behavior of the running server-webui itself.
+#
+# It is a Ruby DSL config file, and can embed regular Ruby code in addition to
+# the configuration settings. Some settings use Ruby symbols, which are a value
+# that starts with a colon. In Ruby, anything but 'false' or 'nil' is true. To
+# set something to false:
+#
+# some_setting false
+#
+# log_level specifies the level of verbosity for output.
+# valid values are: :debug, :info, :warn, :error, :fatal
+
+log_level          :info
+
+# log_location specifies where the server should log to.
+# valid values are: a quoted string specifying a file, or STDOUT with
+# no quotes. This is the application log for the Merb workers that get
+# spawned. The chef-server-webui daemon is configured to log to
+# /var/log/chef/server-webui.log in /etc/chef/default/chef-server-webui.
+
+log_location       STDOUT
+
+# ssl_verify_mode specifies if the REST client should verify SSL certificates.
+# valid values are :verify_none, :verify_peer. The default Chef Server
+# installation on Debian will use a self-generated SSL certificate so this
+# should be :verify_none unless you replace the certificate.
+
+ssl_verify_mode    :verify_none
+
+# chef_server_url specifies the URL for the server API. The process actually
+# listens on 0.0.0.0:PORT.
+# valid values are any HTTP URL. If the server API port is changed, this
+# value needs to be updated as well.
+
+chef_server_url    "http://localhost:4000"
+
+# file_cache_path specifies where the client should cache cookbooks, server
+# cookie ID, and openid registration data.
+# valid value is any filesystem directory location.
+
+file_cache_path    "/var/cache/chef"
+
+# openid_store_path specifies a location where to keep openid nonces for clients.
+# valid values are any filesystem directory location.
+#
+# NOTE: OpenID is optionally used in the WebUI to associate OpenIDs with webui
+# users.
+
+openid_store_path  "/var/lib/chef/openid/store"
+
+# openid_store_path specifies a location where to keep openid nonces for clients.
+# valid values are any filesystem directory location.
+#
+# NOTE: OpenID is optionally used in the WebUI to associate OpenIDs with webui
+# users.
+
+openid_cstore_path "/var/lib/chef/openid/cstore"
+
+# Mixlib::Log::Formatter.show_time specifies whether the chef-client log should
+# contain timestamps.
+# valid values are true or false. The printed timestamp is rfc2822, for example:
+# Fri, 31 Jul 2009 19:19:46 -0600
+
+Mixlib::Log::Formatter.show_time = true
+
+# The following options configure the signing CA so it can be read by
+# non-privileged user for the server daemon.
+
+signing_ca_cert "/etc/chef/certificates/cert.pem"
+signing_ca_key "/etc/chef/certificates/key.pem"
+signing_ca_user "chef"
+signing_ca_group "chef"
+
+# web_ui_client_name specifies the user to use when accessing the Chef
+# Server API. By default this is already set to "chef-webui".
+#
+# This user gets created by the chef-server and stored in CouchDB the
+# first time the server starts up if the user and key don't exist.
+
+web_ui_client_name "chef-webui"
+
+# web_ui_admin_user_name and web_ui_admin_default_password specify the
+# user and password that a human can use to initially log into the
+# chef-server-webui when it starts. The default value for the user is 'admin'
+# and the default password is'p at ssw0rd1' should be changed immediately on
+# login. The web form will display the password reset page on first login.
+# During package installation, debconf will prompt for a password, so this
+# may differ from the default.
+
+web_ui_admin_user_name "admin"
+web_ui_admin_default_password "p at ssw0rd1"
+
+# web_ui_key specifics the file to use for authenticating with the Chef
+# Server API. By default this is already set to "/etc/chef/webui.pem".
+#
+# This file gets created by the chef-server and the public key stored in
+# CouchDB the first time the server starts up if the user and key don't
+# exist.
+
+web_ui_key "/etc/chef/webui.pem"

Added: trunk/chef/debian/knife.8
===================================================================
--- trunk/chef/debian/knife.8	                        (rev 0)
+++ trunk/chef/debian/knife.8	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,359 @@
+.TH CHEF: "1" "December 2009" "knife: 0.8.0" "System Administration Utilities"
+.SH NAME
+knife: \- Chef server REST API utility
+.SH SYNOPSIS
+.B knife
+\fIsub-command (options)\fR
+.SH DESCRIPTION
+.TP
+This manual page documents knife, a command-line utility used to interact with a Chef server directly through the RESTful API. Knife uses sub-commands to take various actions on different types of Chef objects. Some sub-commands take additional options. General options follow sub-commands and their options. A configuration file can be created for common defaults.
+.TP
+Unless otherwise specified, output is in JSON format, and input files are also JSON format.
+.SH GENERAL OPTIONS
+.TP
+\fB\-s\fR, \fB\-\-server\-url\fR URL
+Chef Server URL
+.TP
+\fB\-k\fR, \fB\-\-key\fR KEY
+API Client Key
+.TP
+\fB\-c\fR, \fB\-\-config\fR CONFIG
+The configuration file to use
+.TP
+\fB\-e\fR, \fB\-\-editor\fR EDITOR
+Set the editor to use for interactive commands
+.TP
+\fB\-l\fR, \fB\-\-log_level\fR LEVEL
+Set the log level (debug, info, warn, error, fatal)
+.TP
+\fB\-L\fR, \fB\-\-logfile\fR LOGLOCATION
+Set the log file location, defaults to STDOUT
+.TP
+\fB\-u\fR, \fB\-\-user\fR USER
+API Client Username
+.TP
+\fB\-p\fR, \fB\-\-print\-after\fR
+Show the data after a destructive operation
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Show chef version
+.TP
+\fB\-y\fR, \fB\-\-yes\fR
+Say yes to all prompts for confirmation
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Show usage information.
+.SH SUB-COMMANDS
+Knife sub-commands are structured as "NOUN verb NOUN (options)". The sub-commands are meant to be intuitively named.
+.SH CLIENT SUB-COMMANDS
+.TP
+Sub-commands related to working with clients, which are registered entities that access the Chef server.
+.TP
+.B client bulk delete \fI(options)\fR
+.TP
+\fB\-r\fR, \fB\-\-regex\fR [REGEX]
+Narrow the operation via regular expression
+.PP
+Delete all the clients on the Chef server, or only certain clients based on a regular expression.
+.PP
+.B client create CLIENT (options)
+.TP
+\fB\-f\fR, \fB\-\-file\fR FILE
+Write the key to a file
+.PP
+Create a new client.
+.PP
+.B client delete CLIENT (options)
+.PP
+Deletes a registered client.
+.PP
+.B client edit CLIENT (options)
+.PP
+Edit a registered client.
+.PP
+.B client list (options)
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.PP
+List all registered clients.
+.PP
+.B client reregister CLIENT (options)
+.TP
+\fB\-f\fR, \fB\-\-file\fR FILE
+Write the key to a file
+.PP
+Regenerate the private key for a client.
+.PP
+.B client show CLIENT (options)
+.TP
+\fB\-a\fR, \fB\-\-attribute\fR [ATTR]
+Show only one attribute
+.PP
+Show a client.
+.SH COOKBOOK SUB-COMMANDS
+.TP
+Cookbooks are the fundamental unit of distribution in Chef. They encapsulate all the recipes of resources and the assets used to configure a particular aspect of the infrastructure.
+.PP
+.B cookbook bulk delete COOKBOOK (options)
+.TP
+\fB\-r\fR, \fB\-\-regex\fR [REGEX]
+Narrow the operation via regular expression
+.PP
+Delete all the cookbooks on the Chef server, or use a regular expression to only delete certain cookbooks.
+.PP
+.B cookbook delete COOKBOOK (options)
+.PP
+Delete a single named COOKBOOK.
+.PP
+.B cookbook download COOKBOOK (options)
+.TP
+\fB\-f\fR, \fB\-\-file\fR FILE
+The filename to write to
+.PP
+Download a cookbook from the server as a gzip(1)'ed, tar(1) archive.
+.PP
+.B cookbook list (options)
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.PP
+List all cookbooks.
+.PP
+.B cookbook metadata COOKBOOK (options)
+.TP
+\fB\-a\fR, \fB\-\-all\fR
+Generate metadata for all cookbooks, rather than just a single cookbook
+.PP
+Generate cookbook metadata for the named COOKBOOK.
+.TP
+\fB\-o\fR, \fB\-\-cookbook\-path\fR PATH:PATH
+A colon\-separated path to look for cookbooks in
+.PP
+.B cookbook show COOKBOOK [PART] [FILENAME] (options)
+.TP
+\fB\-f\fR, \fB\-\-fqdn\fR FQDN
+The FQDN of the host to see the file for
+.TP
+\fB\-p\fR, \fB\-\-platform\fR PLATFORM
+The platform to see the file for
+.TP
+\fB\-V\fR, \fB\-\-platform\-version\fR VERSION
+The platform version to see the file for
+.PP
+Show the particular part of a COOKBOOK. PART can be one of:
+.TP
+\fIattribute definition file provider recipe resource template\fR
+.PP
+.B cookbook upload COOKBOOK (options)
+.TP
+\fB\-a\fR, \fB\-\-all\fR
+Upload all cookbooks, rather than just a single cookbook
+.TP
+\fB\-o\fR, \fB\-\-cookbook\-path\fR PATH:PATH
+A colon\-separated path to look for cookbooks in
+.PP
+Upload a cookbook to the server.
+.SH DATA BAG SUB-COMMANDS
+.PP
+Data bags are stores of JSON blobs. These blobs are called items. They are free form and indexed by the search mechanism on the Chef server.
+.PP
+.B data bag create BAG [ITEM] (options)
+.PP
+Create a new data bag, or item in a data bag.
+.PP
+.B data bag delete BAG [ITEM] (options)
+.PP
+Delete a data bag, or item from a data bag.
+.PP
+.B data bag edit BAG ITEM (options)
+.PP
+Edit an item in a data bag.
+.PP
+.B data bag list (options)
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.PP
+List the available data bags.
+.PP
+.B data bag show BAG [ITEM] (options)
+.PP
+Show a specific data bag or an item in a data bag.
+.SH NODE SUB-COMMANDS
+.PP
+Nodes are the entities which are configured with Chef, typically servers or workstations. Nodes are registered as a client, typcially of the same name, but a single client might represent one or more nodes.
+.PP
+.B node bulk delete (options)
+.TP
+\fB\-r\fR, \fB\-\-regex\fR [REGEX]
+Narrow the operation via regular expression
+.PP
+Delete all nodes, or only certain nodes based on a regular expression.
+.PP
+.B node create NODE (options)
+.PP
+Create a new node.
+.PP
+.B node delete NODE (options)
+.PP
+Delete a single node.
+.PP
+.B node edit NODE (options)
+.PP
+Edit a node.
+.PP
+.B node from file FILE (options)
+.PP
+Create a node from a JSON file.
+.PP
+.B node list (options)
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.PP
+List all nodes.
+.PP
+.B node run_list add [NODE] [ENTRY] (options)
+.TP
+\fB\-a\fR, \fB\-\-after\fR [ITEM]
+Place the ENTRY in the run list after ITEM
+.PP
+Add a recipe or role to the node's run_list.
+.PP
+.B node run_list remove [NODE] [ENTRY] (options)
+.PP
+Remove a recipe or role from the node's run_list.
+.PP
+.B node show NODE (options)
+.TP
+\fB\-a\fR, \fB\-\-attribute\fR [ATTR]
+Show only one attribute
+.TP
+\fB\-r\fR, \fB\-\-run\-list\fR
+Show only the run list
+.PP
+Show a node.
+.SH ROLE SUB-COMMANDS
+.PP
+Roles provide a mechanism to apply a set of recipes and attributes to nodes. For example, the 'webserver' role might instruct Chef to add a recipe for Apache, and specify a default domain to use.
+.PP
+.B role bulk delete (options)
+.TP
+\fB\-r\fR, \fB\-\-regex\fR [REGEX]
+Narrow the operation via regular expression
+.PP
+Delete all roles, or only certain roles based on a regular expression.
+.PP
+.B role create ROLE (options)
+.TP
+\fB\-d\fR, \fB\-\-description\fR
+The role description
+.PP
+Create a new role.
+.PP
+.B role delete ROLE (options)
+.PP
+Delete a role.
+.PP
+.B role edit ROLE (options)
+Edit a role.
+.PP
+.B role from file FILE (options)
+.PP
+Update a role from a file.
+.PP
+.B role list (options)
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.PP
+List roles.
+.PP
+.B role show ROLE (options)
+.TP
+\fB\-a\fR, \fB\-\-attribute\fR [ATTR]
+Show only one attribute
+.PP
+Show a specific role.
+.SH GENERAL SUB-COMMANDS
+.PP
+The following are general sub-commands that do not fit within the other object types used in Chef.
+.PP
+.B configure (options)
+.TP
+\fB\-r\fR, \fB\-\-repository\fR REPO
+The path to your chef\-repo
+.PP
+Create a configuration file for knife. This will prompt for values to enter into the file. See "\fBCONFIGURATION\fR" below for available options.
+.PP
+.B ec2 instance data [RUN LIST...] (options)
+.TP
+\fB\-e\fR, \fB\-\-edit\fR
+Edit the instance data
+.PP
+Chef is commonly used with Amazon AWS EC2 nodes. This command will generate instance metadata that can be used to automatically configure an EC2 instance with Chef.
+.PP
+.B search INDEX QUERY (options)
+.TP
+\fB\-a\fR, \fB\-\-attribute\fR [ATTR]
+Show only one attribute
+.TP
+\fB\-i\fR, \fB\-\-id\-only\fR
+Show only the ID of matching objects
+.TP
+\fB\-R\fR, \fB\-\-rows\fR INT
+The number of rows to return
+.TP
+\fB\-r\fR, \fB\-\-run\-list\fR
+Show only the run list
+.TP
+\fB\-o\fR, \fB\-\-sort\fR SORT
+The order to sort the results in
+.TP
+\fB\-b\fR, \fB\-\-start\fR ROW
+The row to start returning results at
+.PP
+Search indexes are a powerful feature of the Chef server and the search subcommand allows searching any of the available indexes using the SOLR query syntax.
+.SH CONFIGURATION
+The knife configuration file is a Ruby DSL. If it exists, knife uses the settings for \fBGENERAL OPTIONS\fR defaults.
+.TP
+.B log_level
+A Ruby symbol specifying the log level. Corresponds to the \-l or \-\-log_level option. Default is :info.
+.TP
+.B log_location
+Corresponds to the \-L or \-\-logfile option. Default is STDOUT.
+.TP
+.B node_name
+User to authenticate to the Chef server. Corresponds to the \-u or \-\-user option. This is requested from the user when running this sub-command.
+.TP
+.B client_key
+Private key file to authenticate to the Chef server. Corresponds to the \-k or \-\-key option. This is requested from the user when running this sub-command.
+.TP
+.B chef_server_url
+URL of the Chef server. Corresponds to the \-s or \-\-server\-url option. This is requested from the user when running this sub-command.
+.TP
+.B cache_type
+The type of cache to use. Default is \fIBasicFile\fR. This can be any type of Cache that moneta supports: BasicFile, Berkeley, Couch, DataMapper, File, LMC, Memcache, Memory, MongoDB, Redis, Rufus, S3, SDBM, Tyrant, Xattr, YAML.
+.TP
+.B cache_options
+Specifies various options to use for caching. Default reads the Chef client configuration (/etc/chef/checksums).
+.SH FILES
+.PP
+\fI~/.chef/knife.rb\fR
+.TP
+Ruby DSL configuration file for Knife. See "\fBCONFIGURATION\fR".
+.SH SEE ALSO
+.PP
+Full documentation for Chef and Knife is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home.
+.PP
+JSON is JavaScript Object Notation and more information can be found at http://json.org/.
+.PP
+SOLR is an open source search engine. The Chef Server includes a SOLR installation. More information about SOLR, including search query syntax, can be found at http://lucene.apache.org/solr/.
+.SH AUTHOR
+Chef was written by Adam Jacob <adam at ospcode.com> of Opscode (http://www.opscode.com), with contributions from the community.
+This manual page was written by Joshua Timberman <joshua at opscode.com> with help2man. Permission is granted
+to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+.PP
+On Debian systems, the complete text of the Apache 2.0 License can be found in
+/usr/share/common-licenses/Apache-2.0.

Added: trunk/chef/debian/patches/CHEF-1194_fix_cookbook_show.patch
===================================================================
--- trunk/chef/debian/patches/CHEF-1194_fix_cookbook_show.patch	                        (rev 0)
+++ trunk/chef/debian/patches/CHEF-1194_fix_cookbook_show.patch	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,14 @@
+# Description: CHEF-1194 upstream typo bugfix.
+Index: chef-0.8.14+dfsg.orig/chef-server-webui/app/helpers/application_helper.rb
+===================================================================
+--- chef-0.8.14+dfsg.orig.orig/chef-server-webui/app/helpers/application_helper.rb	2010-05-08 20:20:39.000000000 -0600
++++ chef-0.8.14+dfsg.orig/chef-server-webui/app/helpers/application_helper.rb	2010-05-08 20:20:45.000000000 -0600
+@@ -112,7 +112,7 @@
+         count
+       end
+       
+-      def syntax_hightlight(uri)
++      def syntax_highlight(uri)
+         code = Chef::REST.new(Chef::Config[:chef_server_url]).get_rest(uri)
+         CodeRay.encode_tokens(CodeRay.scan(code, :ruby), :span)
+       end

Added: trunk/chef/debian/patches/chef-solr_version.patch
===================================================================
--- trunk/chef/debian/patches/chef-solr_version.patch	                        (rev 0)
+++ trunk/chef/debian/patches/chef-solr_version.patch	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,233 @@
+# Description: Set the version for chef-solr so the binaries can have a 
+# command-line option. This is fixed upstream in ticket CHEF-1018.
+Index: chef-0.8.6/chef-solr/lib/chef/solr.rb
+===================================================================
+--- chef-0.8.6.orig/chef-solr/lib/chef/solr.rb	2010-03-05 15:00:07.000000000 -0700
++++ chef-0.8.6/chef-solr/lib/chef/solr.rb	2010-03-05 15:00:22.000000000 -0700
+@@ -6,9 +6,9 @@
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+-# 
++#
+ #     http://www.apache.org/licenses/LICENSE-2.0
+-# 
++#
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@@ -34,6 +34,9 @@
+ 
+ class Chef
+   class Solr
++
++    VERSION="0.8.6"
++
+     include Chef::Mixin::XMLEscape
+ 
+     attr_accessor :solr_url, :http
+@@ -73,7 +76,7 @@
+ 
+     def solr_add(data)
+       data = [data] unless data.kind_of?(Array)
+-      
++
+       Chef::Log.debug("adding to SOLR: #{data.inspect}")
+       xml_document = LibXML::XML::Document.new
+       xml_add = LibXML::XML::Node.new("add")
+@@ -97,19 +100,19 @@
+     def solr_commit(opts={})
+       post_to_solr(generate_single_element("commit", opts))
+     end
+-    
++
+     def solr_optimize(opts={})
+       post_to_solr(generate_single_element("optimize", opts))
+     end
+-    
++
+     def solr_rollback
+       post_to_solr(generate_single_element("rollback"))
+     end
+-    
++
+     def solr_delete_by_id(ids)
+       post_to_solr(generate_delete_document("id", ids))
+     end
+-    
++
+     def solr_delete_by_query(queries)
+       post_to_solr(generate_delete_document("query", queries))
+     end
+@@ -117,20 +120,20 @@
+     def rebuild_index(url=Chef::Config[:couchdb_url], db=Chef::Config[:couchdb_database])
+       solr_delete_by_query("X_CHEF_database_CHEF_X:#{db}")
+       solr_commit
+-      
++
+       results = {}
+       [Chef::ApiClient, Chef::Node, Chef::OpenIDRegistration, Chef::Role, Chef::WebUIUser].each do |klass|
+         results[klass.name] = reindex_all(klass) ? "success" : "failed"
+       end
+       databags = Chef::DataBag.cdb_list(true)
+       Chef::Log.info("Reloading #{databags.size.to_s} #{Chef::DataBag} objects into the indexer")
+-      databags.each { |i| i.add_to_index; i.list(true).each { |x| x.add_to_index } } 
+-      results[Chef::DataBag.name] = "success" 
++      databags.each { |i| i.add_to_index; i.list(true).each { |x| x.add_to_index } }
++      results[Chef::DataBag.name] = "success"
+       results
+     end
+ 
+     private
+-    
++
+     def reindex_all(klass, metadata={})
+       begin
+         items = klass.cdb_list(true)
+@@ -204,7 +207,7 @@
+     def escape(s)
+       s.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/n) {
+         '%'+$1.unpack('H2'*$1.size).join('%').upcase
+-      }.tr(' ', '+') 
++      }.tr(' ', '+')
+     end
+ 
+   end
+Index: chef-0.8.6/chef-solr/lib/chef/solr/application/indexer.rb
+===================================================================
+--- chef-0.8.6.orig/chef-solr/lib/chef/solr/application/indexer.rb	2010-03-05 14:54:52.000000000 -0700
++++ chef-0.8.6/chef-solr/lib/chef/solr/application/indexer.rb	2010-03-05 14:55:54.000000000 -0700
+@@ -6,9 +6,9 @@
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+-# 
++#
+ #     http://www.apache.org/licenses/LICENSE-2.0
+-# 
++#
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@@ -29,14 +29,14 @@
+   class Solr
+     class Application
+       class Indexer < Chef::Application
+-  
+-        option :config_file, 
++
++        option :config_file,
+           :short => "-c CONFIG",
+           :long  => "--config CONFIG",
+           :default => "/etc/chef/solr.rb",
+           :description => "The configuration file to use"
+ 
+-        option :log_level, 
++        option :log_level,
+           :short        => "-l LEVEL",
+           :long         => "--log_level LEVEL",
+           :description  => "Set the log level (debug, info, warn, error, fatal)",
+@@ -94,7 +94,15 @@
+         option :amqp_vhost,
+           :long => "--amqp-vhost VHOST",
+           :description => "The amqp vhost"
+-        
++
++        option :version,
++          :short => "-v",
++          :long => "--version",
++          :description => "Show chef-solr-indexer version",
++          :boolean => true,
++          :proc => lambda {|v| puts "chef-solr-indexer: #{Chef::Solr::VERSION}"},
++          :exit => 0
++
+         Signal.trap("INT") do
+           begin
+             AmqpClient.instance.stop
+@@ -102,15 +110,15 @@
+           end
+           fatal!("SIGINT received, stopping", 2)
+         end
+-        
+-        Kernel.trap("TERM") do 
++
++        Kernel.trap("TERM") do
+           begin
+             AmqpClient.instance.stop
+           rescue Bunny::ProtocolError, Bunny::ConnectionError, Bunny::UnsubscribeError
+           end
+           fatal!("SIGTERM received, stopping", 1)
+         end
+-        
++
+         def initialize
+           super
+ 
+Index: chef-0.8.6/chef-solr/lib/chef/solr/application/rebuild.rb
+===================================================================
+--- chef-0.8.6.orig/chef-solr/lib/chef/solr/application/rebuild.rb	2010-03-05 14:59:17.000000000 -0700
++++ chef-0.8.6/chef-solr/lib/chef/solr/application/rebuild.rb	2010-03-05 14:59:57.000000000 -0700
+@@ -6,9 +6,9 @@
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+-# 
++#
+ #     http://www.apache.org/licenses/LICENSE-2.0
+-# 
++#
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@@ -26,14 +26,14 @@
+   class Solr
+     class Application
+       class Rebuild < Chef::Application
+-  
+-        option :config_file, 
++
++        option :config_file,
+           :short => "-c CONFIG",
+           :long  => "--config CONFIG",
+           :default => "/etc/chef/solr.rb",
+           :description => "The configuration file to use"
+ 
+-        option :log_level, 
++        option :log_level,
+           :short        => "-l LEVEL",
+           :long         => "--log_level LEVEL",
+           :description  => "Set the log level (debug, info, warn, error, fatal)",
+@@ -64,6 +64,14 @@
+           :long => "--couchdb-url URL",
+           :description => "The CouchDB URL"
+ 
++        option :version,
++          :short => "-v",
++          :long => "--version",
++          :description => "Show chef-solr-rebuild version",
++          :boolean => true,
++          :proc => lambda {|v| puts "chef-solr-rebuild: #{::Chef::Solr::VERSION}"},
++          :exit => 0
++
+         def initialize
+           super
+ 
+Index: chef-0.8.6/chef-solr/lib/chef/solr/application/solr.rb
+===================================================================
+--- chef-0.8.6.orig/chef-solr/lib/chef/solr/application/solr.rb	2010-03-05 14:41:19.000000000 -0700
++++ chef-0.8.6/chef-solr/lib/chef/solr/application/solr.rb	2010-03-05 14:54:44.000000000 -0700
+@@ -97,6 +97,14 @@
+           :long => "--java-opts OPTS",
+           :description => "Raw options passed to Java" 
+ 
++        option :version,
++          :short => "-v",
++          :long => "--version",
++          :description => "Show chef-solr version",
++          :boolean => true,
++          :proc => lambda {|v| puts "chef-solr: #{::Chef::Solr::VERSION}"},
++          :exit => 0
++
+         def initialize
+           super
+           Chef::Log.level = Chef::Config[:log_level] 

Added: trunk/chef/debian/patches/chef_solr_ruby18.patch
===================================================================
--- trunk/chef/debian/patches/chef_solr_ruby18.patch	                        (rev 0)
+++ trunk/chef/debian/patches/chef_solr_ruby18.patch	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,32 @@
+# Description: Use ruby1.8 specifically as Chef Solr/Server doesn't support
+# ruby1.9 yet.
+Index: chef-0.8.6/chef-solr/bin/chef-solr
+===================================================================
+--- chef-0.8.6.orig/chef-solr/bin/chef-solr	2010-03-07 01:39:44.000000000 -0700
++++ chef-0.8.6/chef-solr/bin/chef-solr	2010-03-07 01:39:50.000000000 -0700
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env ruby
++#!/usr/bin/ruby1.8
+ #
+ # Author:: Adam Jacob (<adam at opscode.com>)
+ # Copyright:: Copyright (c) 2009 Opscode, Inc.
+Index: chef-0.8.6/chef-solr/bin/chef-solr-indexer
+===================================================================
+--- chef-0.8.6.orig/chef-solr/bin/chef-solr-indexer	2010-03-07 01:39:55.000000000 -0700
++++ chef-0.8.6/chef-solr/bin/chef-solr-indexer	2010-03-07 01:40:04.000000000 -0700
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env ruby
++#!/usr/bin/ruby1.8
+ #
+ # Author:: Adam Jacob (<adam at opscode.com>)
+ # Copyright:: Copyright (c) 2009 Opscode, Inc.
+Index: chef-0.8.6/chef-solr/bin/chef-solr-rebuild
+===================================================================
+--- chef-0.8.6.orig/chef-solr/bin/chef-solr-rebuild	2010-03-07 01:40:10.000000000 -0700
++++ chef-0.8.6/chef-solr/bin/chef-solr-rebuild	2010-03-07 01:40:18.000000000 -0700
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env ruby
++#!/usr/bin/ruby1.8
+ #
+ # Author:: Adam Jacob (<adam at opscode.com>)
+ # Copyright:: Copyright (c) 2009 Opscode, Inc.

Added: trunk/chef/debian/patches/fix_reindex.patch
===================================================================
--- trunk/chef/debian/patches/fix_reindex.patch	                        (rev 0)
+++ trunk/chef/debian/patches/fix_reindex.patch	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,18 @@
+# Description: Remove WebUIUsers and OpenIDRegistrations from re-indexing,
+# as they are not indexed in the first place, which causes a 500 error
+# on reindexing.
+# This is fixed in upstream bug CHEF-1009 and this patch should be removed
+# in a later version (0.8.8+) of the package.
+Index: chef-0.8.6/chef-solr/lib/chef/solr.rb
+===================================================================
+--- chef-0.8.6.orig/chef-solr/lib/chef/solr.rb	2010-03-18 11:03:19.000000000 -0600
++++ chef-0.8.6/chef-solr/lib/chef/solr.rb	2010-03-18 11:03:43.000000000 -0600
+@@ -119,7 +119,7 @@
+       solr_commit
+       
+       results = {}
+-      [Chef::ApiClient, Chef::Node, Chef::OpenIDRegistration, Chef::Role, Chef::WebUIUser].each do |klass|
++      [Chef::ApiClient, Chef::Node, Chef::Role].each do |klass|
+         results[klass.name] = reindex_all(klass) ? "success" : "failed"
+       end
+       databags = Chef::DataBag.cdb_list(true)

Added: trunk/chef/debian/patches/jquery_unminified.patch
===================================================================
--- trunk/chef/debian/patches/jquery_unminified.patch	                        (rev 0)
+++ trunk/chef/debian/patches/jquery_unminified.patch	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,1320 @@
+# Description: patch in the unminified jquery scripts for the minified
+# files we nuked with repack.sh.
+Index: chef-0.8.14+dfsg.orig/chef-server-webui/public/javascripts/jquery.tools.js
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ chef-0.8.14+dfsg.orig/chef-server-webui/public/javascripts/jquery.tools.js	2010-05-08 18:39:59.000000000 -0600
+@@ -0,0 +1,551 @@
++/**
++ * @license 
++ * jQuery Tools 1.2.0 / Mask - Dim the lights
++ * 
++ * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
++ * 
++ * http://flowplayer.org/tools/toolbox/mask.html
++ *
++ * Since: Mar 2010
++ * Date:    Tue Apr 20 19:26:58 2010 +0000 
++ */
++(function($) { 	
++
++	// static constructs
++	$.tools = $.tools || {version: '1.2.0'};
++	
++	var tool;
++	
++	tool = $.tools.expose = {
++		
++		conf: {	
++			maskId: 'exposeMask',
++			loadSpeed: 'slow',
++			closeSpeed: 'fast',
++			closeOnClick: true,
++			closeOnEsc: true,
++			
++			// css settings
++			zIndex: 9998,
++			opacity: 0.8,
++			startOpacity: 0,
++			color: '#fff',
++			
++			// callbacks
++			onLoad: null,
++			onClose: null
++		}
++	};
++
++	/* one of the greatest headaches in the tool. finally made it */
++	function viewport() {
++				
++		// the horror case
++		if ($.browser.msie) {
++			
++			// if there are no scrollbars then use window.height
++			var d = $(document).height(), w = $(window).height();
++			
++			return [
++				window.innerWidth || 							// ie7+
++				document.documentElement.clientWidth || 	// ie6  
++				document.body.clientWidth, 					// ie6 quirks mode
++				d - w < 20 ? w : d
++			];
++		} 
++		
++		// other well behaving browsers
++		return [$(window).width(), $(document).height()]; 
++	} 
++	
++	function call(fn) {
++		if (fn) { return fn.call($.mask); }
++	}
++	
++	var mask, exposed, loaded, config, overlayIndex;		
++	
++	
++	$.mask = {
++		
++		load: function(conf, els) {
++			
++			// already loaded ?
++			if (loaded) { return this; }			
++			
++			// configuration
++			if (typeof conf == 'string') {
++				conf = {color: conf};	
++			}
++			
++			// use latest config
++			conf = conf || config;
++			
++			config = conf = $.extend($.extend({}, tool.conf), conf);
++
++			// get the mask
++			mask = $("#" + conf.maskId);
++				
++			// or create it
++			if (!mask.length) {
++				mask = $('<div/>').attr("id", conf.maskId);
++				$("body").append(mask);
++			}
++			
++			// set position and dimensions 			
++			var size = viewport();
++				
++			mask.css({				
++				position:'absolute', 
++				top: 0, 
++				left: 0,
++				width: size[0],
++				height: size[1],
++				display: 'none',
++				opacity: conf.startOpacity,					 		
++				zIndex: conf.zIndex 
++			});
++			
++			// background color 
++			var bg = mask.css("backgroundColor");
++			
++			if (!bg || bg == 'transparent' || bg == 'rgba(0, 0, 0, 0)') {
++				mask.css("backgroundColor", conf.color);	
++			}			
++			
++			// onBeforeLoad
++			if (call(conf.onBeforeLoad) === false) {
++				return this;
++			}
++			
++			// esc button
++			if (conf.closeOnEsc) {						
++				$(document).bind("keydown.mask", function(e) {							
++					if (e.keyCode == 27) {
++						$.mask.close(e);	
++					}		
++				});			
++			}
++			
++			// mask click closes
++			if (conf.closeOnClick) {
++				mask.bind("click.mask", function(e)  {
++					$.mask.close(e);		
++				});					
++			}			
++			
++			// resize mask when window is resized
++			$(window).bind("resize.mask", function() {
++				$.mask.fit();
++			});
++			
++			// exposed elements
++			if (els && els.length) {
++				
++				overlayIndex = els.eq(0).css("zIndex");
++
++				// make sure element is positioned absolutely or relatively
++				$.each(els, function() {
++					var el = $(this);
++					if (!/relative|absolute|fixed/i.test(el.css("position"))) {
++						el.css("position", "relative");		
++					}					
++				});
++			 
++				// make elements sit on top of the mask
++				exposed = els.css({ zIndex: Math.max(conf.zIndex + 1, overlayIndex == 'auto' ? 0 : overlayIndex)});			
++			}	
++			
++			// reveal mask
++			mask.css({display: 'block'}).fadeTo(conf.loadSpeed, conf.opacity, function() {
++				$.mask.fit(); 
++				call(conf.onLoad);
++			});
++			
++			loaded = true;			
++			return this;				
++		},
++		
++		close: function() {
++			if (loaded) {
++				
++				// onBeforeClose
++				if (call(config.onBeforeClose) === false) { return this; }
++					
++				mask.fadeOut(config.closeSpeed, function()  {					
++					call(config.onClose);					
++					if (exposed) {
++						exposed.css({zIndex: overlayIndex});
++					}				
++				});				
++				
++				// unbind various event listeners
++				$(document).unbind("keydown.mask");
++				mask.unbind("click.mask");
++				$(window).unbind("resize.mask");
++	
++				loaded = false;
++			}
++			
++			return this; 
++		},
++		
++		fit: function() {
++			if (loaded) {
++				var size = viewport();				
++				mask.css({width: size[0], height: size[1]});
++			}				
++		},
++		
++		getMask: function() {
++			return mask;	
++		},
++		
++		isLoaded: function() {
++			return loaded;	
++		}, 
++		
++		getConf: function() {
++			return config;	
++		},
++		
++		getExposed: function() {
++			return exposed;	
++		}		
++	};
++	
++	$.fn.mask = function(conf) {
++		$.mask.load(conf);
++		return this;		
++	};			
++	
++	$.fn.expose = function(conf) {
++		$.mask.load(conf, this);
++		return this;			
++	};
++
++
++})(jQuery);
++/**
++ * @license 
++ * jQuery Tools 1.2.0 Tooltip - UI essentials
++ * 
++ * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
++ * 
++ * http://flowplayer.org/tools/tooltip/
++ *
++ * Since: November 2008
++ * Date:    Tue Apr 20 19:26:58 2010 +0000 
++ */
++(function($) { 
++
++	/* 
++		removed: oneInstance, lazy, 
++		tip must next to the trigger 
++		isShown(fully), layout, tipClass, layout
++	*/
++	
++	// static constructs
++	$.tools = $.tools || {version: '1.2.0'};
++	
++	$.tools.tooltip = {
++		
++		conf: { 
++			
++			// default effect variables
++			effect: 'toggle',			
++			fadeOutSpeed: "fast",
++			predelay: 0,
++			delay: 30,
++			opacity: 1,			
++			tip: 0,
++			
++			// 'top', 'bottom', 'right', 'left', 'center'
++			position: ['top', 'center'], 
++			offset: [0, 0],
++			relative: false,
++			cancelDefault: true,
++			
++			// type to event mapping 
++			events: {
++				def: 			"mouseenter,mouseleave",
++				input: 		"focus,blur",
++				widget:		"focus mouseenter,blur mouseleave",
++				tooltip:		"mouseenter,mouseleave"
++			},
++			
++			// 1.2
++			layout: '<div/>',
++			tipClass: 'tooltip'
++		},
++		
++		addEffect: function(name, loadFn, hideFn) {
++			effects[name] = [loadFn, hideFn];	
++		} 
++	};
++	
++	
++	var effects = { 
++		toggle: [ 
++			function(done) { 
++				var conf = this.getConf(), tip = this.getTip(), o = conf.opacity;
++				if (o < 1) { tip.css({opacity: o}); }
++				tip.show();
++				done.call();
++			},
++			
++			function(done) { 
++				this.getTip().hide();
++				done.call();
++			} 
++		],
++		
++		fade: [
++			function(done) { this.getTip().fadeIn(this.getConf().fadeInSpeed, done); },  
++			function(done) { this.getTip().fadeOut(this.getConf().fadeOutSpeed, done); } 
++		]		
++	};   
++
++		
++	/* calculate tip position relative to the trigger */  	
++	function getPosition(trigger, tip, conf) {	
++
++		
++		// get origin top/left position 
++		var top = conf.relative ? trigger.position().top : trigger.offset().top, 
++			 left = conf.relative ? trigger.position().left : trigger.offset().left,
++			 pos = conf.position[0];
++
++		top  -= tip.outerHeight() - conf.offset[0];
++		left += trigger.outerWidth() + conf.offset[1];
++		
++		// adjust Y		
++		var height = tip.outerHeight() + trigger.outerHeight();
++		if (pos == 'center') 	{ top += height / 2; }
++		if (pos == 'bottom') 	{ top += height; }
++		
++		// adjust X
++		pos = conf.position[1]; 	
++		var width = tip.outerWidth() + trigger.outerWidth();
++		if (pos == 'center') 	{ left -= width / 2; }
++		if (pos == 'left')   	{ left -= width; }	 
++		
++		return {top: top, left: left};
++	}		
++
++	
++	
++	function Tooltip(trigger, conf) {
++
++		var self = this, 
++			 fire = trigger.add(self),
++			 tip,
++			 timer = 0,
++			 pretimer = 0, 
++			 title = trigger.attr("title"),
++			 effect = effects[conf.effect],
++			 shown,
++				 
++			 // get show/hide configuration
++			 isInput = trigger.is(":input"), 
++			 isWidget = isInput && trigger.is(":checkbox, :radio, select, :button"),			
++			 type = trigger.attr("type"),
++			 evt = conf.events[type] || conf.events[isInput ? (isWidget ? 'widget' : 'input') : 'def']; 
++		
++		
++		// check that configuration is sane
++		if (!effect) { throw "Nonexistent effect \"" + conf.effect + "\""; }					
++		
++		evt = evt.split(/,\s*/); 
++		if (evt.length != 2) { throw "Tooltip: bad events configuration for " + type; } 
++		
++		
++		// trigger --> show  
++		trigger.bind(evt[0], function(e) {
++			if (conf.predelay) {
++				clearTimeout(timer);
++				pretimer = setTimeout(function() { self.show(e); }, conf.predelay);	
++				
++			} else {
++				self.show(e);	
++			}
++			
++		// trigger --> hide
++		}).bind(evt[1], function(e)  {
++			if (conf.delay)  {
++				clearTimeout(pretimer);
++				timer = setTimeout(function() { self.hide(e); }, conf.delay);	
++				
++			} else {
++				self.hide(e);		
++			}
++			
++		}); 
++		
++		
++		// remove default title
++		if (title && conf.cancelDefault) { 
++			trigger.removeAttr("title");
++			trigger.data("title", title);			
++		}		
++		
++		$.extend(self, {
++				
++			show: function(e) { 
++
++				// tip not initialized yet
++				if (!tip) {
++					
++					// find a "manual" tooltip
++					if (title) { 
++						tip = $(conf.layout).addClass(conf.tipClass).appendTo(document.body).hide();
++					} else if (conf.tip) { 
++						tip = $(conf.tip).eq(0);
++						
++					} else {	
++						tip = trigger.next();  
++						if (!tip.length) { tip = trigger.parent().next(); } 	 
++					}
++					
++					if (!tip.length) { throw "Cannot find tooltip for " + trigger;	}
++				} 
++			 	
++			 	if (self.isShown()) { return self; }  
++				
++			 	// stop previous animation
++			 	tip.stop(true, true); 
++			 	
++			 	
++				// get position
++				var pos = getPosition(trigger, tip, conf);			
++				
++				// title attribute
++				if (title) { tip.html(title); } 				
++				
++				// onBeforeShow
++				e = e || $.Event();
++				e.type = "onBeforeShow";
++				fire.trigger(e, [pos]);				
++				if (e.isDefaultPrevented()) { return self; }
++		
++				
++				// onBeforeShow may have altered the configuration
++				pos = getPosition(trigger, tip, conf);
++				
++				// set position
++				tip.css({position:'absolute', top: pos.top, left: pos.left});					
++				
++				shown = true;
++				
++				// invoke effect 
++				effect[0].call(self, function() {
++					e.type = "onShow";
++					shown = 'full';
++					fire.trigger(e);		 
++				});					
++
++	 	
++				// tooltip events       
++				var event = conf.events.tooltip.split(/,\s*/);
++
++				tip.bind(event[0], function() { 
++					clearTimeout(timer);
++					clearTimeout(pretimer);
++				});
++				
++				if (event[1] && !trigger.is("input:not(:checkbox, :radio), textarea")) { 					
++					tip.bind(event[1], function(e) {
++
++						// being moved to the trigger element
++						if (e.relatedTarget != trigger[0]) {
++							trigger.trigger(evt[1].split(" ")[0]);
++						}
++					}); 
++				} 
++				
++				return self;
++			},
++			
++			hide: function(e) {
++
++				if (!tip || !self.isShown()) { return self; }
++			
++				// onBeforeHide
++				e = e || $.Event();
++				e.type = "onBeforeHide";
++				fire.trigger(e);				
++				if (e.isDefaultPrevented()) { return; }
++	
++				shown = false;
++				
++				effects[conf.effect][1].call(self, function() {
++					e.type = "onHide";
++					shown = false;
++					fire.trigger(e);		 
++				});
++				
++				return self;
++			},
++			
++			isShown: function(fully) {
++				return fully ? shown == 'full' : shown;	
++			},
++				
++			getConf: function() {
++				return conf;	
++			},
++				
++			getTip: function() {
++				return tip;	
++			},
++			
++			getTrigger: function() {
++				return trigger;	
++			}		
++
++		});		
++
++		// callbacks	
++		$.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","), function(i, name) {
++				
++			// configuration
++			if ($.isFunction(conf[name])) { 
++				$(self).bind(name, conf[name]); 
++			}
++
++			// API
++			self[name] = function(fn) {
++				$(self).bind(name, fn);
++				return self;
++			};
++		});
++		
++	}
++		
++	
++	// jQuery plugin implementation
++	$.fn.tooltip = function(conf) {
++		
++		// return existing instance
++		var api = this.data("tooltip");
++		if (api) { return api; }
++
++		conf = $.extend(true, {}, $.tools.tooltip.conf, conf);
++		
++		// position can also be given as string
++		if (typeof conf.position == 'string') {
++			conf.position = conf.position.split(/,?\s/);	
++		}
++		
++		// install tooltip for each entry in jQuery object
++		this.each(function() {
++			api = new Tooltip($(this), conf); 
++			$(this).data("tooltip", api); 
++		});
++		
++		return conf.api ? api: this;		 
++	};
++		
++}) (jQuery);
++
++		
++
+Index: chef-0.8.14+dfsg.orig/chef-server-webui/public/javascripts/yetii.js
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ chef-0.8.14+dfsg.orig/chef-server-webui/public/javascripts/yetii.js	2010-05-08 18:39:59.000000000 -0600
+@@ -0,0 +1,206 @@
++/*
++Yetii - Yet (E)Another Tab Interface Implementation
++version 1.6
++http://www.kminek.pl/lab/yetii/
++Copyright (c) Grzegorz Wojcik
++Code licensed under the BSD License:
++http://www.kminek.pl/bsdlicense.txt
++*/
++
++function Yetii() {
++
++	this.defaults = {
++		
++		id: null,
++		active: 1,
++		interval: null,
++		wait: null,
++		persist: null,
++		tabclass: 'tab',
++		activeclass: 'active',
++		callback: null,
++		leavecallback: null
++	
++	};
++	
++	this.activebackup = null;
++	
++	for (var n in arguments[0]) { this.defaults[n]=arguments[0][n]; };	
++	
++	this.getTabs = function() {
++        	
++        var retnode = [];
++        var elem = document.getElementById(this.defaults.id).getElementsByTagName('*');
++		
++		var regexp = new RegExp("(^|\\s)" + this.defaults.tabclass.replace(/\-/g, "\\-") + "(\\s|$)");
++	
++        for (var i = 0; i < elem.length; i++) {
++			if (regexp.test(elem[i].className)) retnode.push(elem[i]);
++        }
++    
++        return retnode;
++    
++    };
++	
++	this.links = document.getElementById(this.defaults.id + '-nav').getElementsByTagName('a');
++	this.listitems = document.getElementById(this.defaults.id + '-nav').getElementsByTagName('li');
++	
++	this.show = function(number) {
++        
++        for (var i = 0; i < this.tabs.length; i++) {
++			
++			this.tabs[i].style.display = ((i+1)==number) ? 'block' : 'none';
++				
++			if ((i+1)==number) {
++				this.addClass(this.links[i], this.defaults.activeclass);
++				this.addClass(this.listitems[i], this.defaults.activeclass + 'li');
++			} else {
++				this.removeClass(this.links[i], this.defaults.activeclass);
++				this.removeClass(this.listitems[i], this.defaults.activeclass + 'li');
++			}
++		
++		}
++		
++		
++		if (this.defaults.leavecallback && (number != this.activebackup)) this.defaults.leavecallback(this.defaults.active);
++		
++		this.activebackup = number;
++		
++		
++		this.defaults.active = number;
++		
++		if (this.defaults.callback) this.defaults.callback(number);
++		
++    
++    };
++	
++	this.rotate = function(interval) {
++    
++        this.show(this.defaults.active);
++        this.defaults.active++;
++    
++        if (this.defaults.active > this.tabs.length) this.defaults.active = 1;
++    
++	
++        var self = this;
++		
++		if (this.defaults.wait) clearTimeout(this.timer2);
++		 
++        this.timer1 = setTimeout(function(){self.rotate(interval);}, interval*1000);
++    
++    };
++	
++	this.next = function() {
++
++        var _target = (this.defaults.active + 1 > this.tabs.length) ? 1 : this.defaults.active + 1;
++        this.show(_target);
++        this.defaults.active = _target;
++
++    };
++	
++	this.previous = function() {
++
++        var _target = ((this.defaults.active - 1) == 0) ? this.tabs.length : this.defaults.active - 1;
++        this.show(_target);
++        this.defaults.active = _target; 
++
++    };
++	
++	this.previous = function() {
++		
++		this.defaults.active--;
++    	if(!this.defaults.active) this.defaults.active = this.tabs.length;
++		this.show(this.defaults.active);
++	
++	};
++	
++	this.gup = function(name) {
++		name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
++		var regexS = "[\\?&]"+name+"=([^&#]*)";
++		var regex = new RegExp( regexS );
++		var results = regex.exec( window.location.href );
++		if (results == null) return null;
++		else return results[1];
++	};
++	
++	this.parseurl = function(tabinterfaceid) {
++		
++		var result = this.gup(tabinterfaceid);
++		
++		if (result==null) return null;
++		if (parseInt(result)) return parseInt(result); 
++		if (document.getElementById(result)) {	
++			for (var i=0;i<this.tabs.length;i++) {
++				if (this.tabs[i].id == result) return (i+1);
++			}
++		}
++		
++		return null;
++		
++	};
++
++	this.createCookie = function(name,value,days) {
++		if (days) {
++			var date = new Date();
++			date.setTime(date.getTime()+(days*24*60*60*1000));
++			var expires = "; expires="+date.toGMTString();
++		}
++		else var expires = "";
++		document.cookie = name+"="+value+expires+"; path=/";
++	};
++	
++	this.readCookie = function(name) {
++		var nameEQ = name + "=";
++		var ca = document.cookie.split(';');
++		for(var i=0;i < ca.length;i++) {
++			var c = ca[i];
++			while (c.charAt(0)==' ') c = c.substring(1,c.length);
++			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
++		}
++		return null;
++	};
++	
++	this.contains = function(el, item, from) {
++		return el.indexOf(item, from) != -1;
++	};
++	
++	this.hasClass = function(el, className){
++		return this.contains(el.className, className, ' ');
++	};
++	
++	this.addClass = function(el, className){
++		if (!this.hasClass(el, className)) el.className = (el.className + ' ' + className).replace(/\s{2,}/g, ' ').replace(/^\s+|\s+$/g, '');
++	};
++	
++	this.removeClass = function(el, className){
++		el.className = el.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1');
++		el.className.replace(/\s{2,}/g, ' ').replace(/^\s+|\s+$/g, '');
++	};
++
++
++	this.tabs = this.getTabs();
++	this.defaults.active = (this.parseurl(this.defaults.id)) ? this.parseurl(this.defaults.id) : this.defaults.active;
++	if (this.defaults.persist && this.readCookie(this.defaults.id)) this.defaults.active = this.readCookie(this.defaults.id);  
++	this.activebackup = this.defaults.active;
++	this.show(this.defaults.active);
++	
++	var self = this;
++	for (var i = 0; i < this.links.length; i++) {
++	this.links[i].customindex = i+1;
++	this.links[i].onclick = function(){ 
++		
++		if (self.timer1) clearTimeout(self.timer1);
++		if (self.timer2) clearTimeout(self.timer2); 
++		
++		self.show(this.customindex);
++		if (self.defaults.persist) self.createCookie(self.defaults.id, this.customindex, 0);
++		
++		if (self.defaults.wait) self.timer2 = setTimeout(function(){self.rotate(self.defaults.interval);}, self.defaults.wait*1000);
++		
++		return false;
++	};
++    }
++	
++	if (this.defaults.interval) this.rotate(this.defaults.interval);
++	
++};
+Index: chef-0.8.14+dfsg.orig/chef-server-webui/public/javascripts/jquery.jeditable.js
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ chef-0.8.14+dfsg.orig/chef-server-webui/public/javascripts/jquery.jeditable.js	2010-05-08 18:45:09.000000000 -0600
+@@ -0,0 +1,544 @@
++/*
++ * Jeditable - jQuery in place edit plugin
++ *
++ * Copyright (c) 2006-2009 Mika Tuupola, Dylan Verheul
++ *
++ * Licensed under the MIT license:
++ *   http://www.opensource.org/licenses/mit-license.php
++ *
++ * Project home:
++ *   http://www.appelsiini.net/projects/jeditable
++ *
++ * Based on editable by Dylan Verheul <dylan_at_dyve.net>:
++ *    http://www.dyve.net/jquery/?editable
++ *
++ */
++
++/**
++  * Version 1.7.1
++  *
++  * ** means there is basic unit tests for this parameter. 
++  *
++  * @name  Jeditable
++  * @type  jQuery
++  * @param String  target             (POST) URL or function to send edited content to **
++  * @param Hash    options            additional options 
++  * @param String  options[method]    method to use to send edited content (POST or PUT) **
++  * @param Function options[callback] Function to run after submitting edited content **
++  * @param String  options[name]      POST parameter name of edited content
++  * @param String  options[id]        POST parameter name of edited div id
++  * @param Hash    options[submitdata] Extra parameters to send when submitting edited content.
++  * @param String  options[type]      text, textarea or select (or any 3rd party input type) **
++  * @param Integer options[rows]      number of rows if using textarea ** 
++  * @param Integer options[cols]      number of columns if using textarea **
++  * @param Mixed   options[height]    'auto', 'none' or height in pixels **
++  * @param Mixed   options[width]     'auto', 'none' or width in pixels **
++  * @param String  options[loadurl]   URL to fetch input content before editing **
++  * @param String  options[loadtype]  Request type for load url. Should be GET or POST.
++  * @param String  options[loadtext]  Text to display while loading external content.
++  * @param Mixed   options[loaddata]  Extra parameters to pass when fetching content before editing.
++  * @param Mixed   options[data]      Or content given as paramameter. String or function.**
++  * @param String  options[indicator] indicator html to show when saving
++  * @param String  options[tooltip]   optional tooltip text via title attribute **
++  * @param String  options[event]     jQuery event such as 'click' of 'dblclick' **
++  * @param String  options[submit]    submit button value, empty means no button **
++  * @param String  options[cancel]    cancel button value, empty means no button **
++  * @param String  options[cssclass]  CSS class to apply to input form. 'inherit' to copy from parent. **
++  * @param String  options[style]     Style to apply to input form 'inherit' to copy from parent. **
++  * @param String  options[select]    true or false, when true text is highlighted ??
++  * @param String  options[placeholder] Placeholder text or html to insert when element is empty. **
++  * @param String  options[onblur]    'cancel', 'submit', 'ignore' or function ??
++  *             
++  * @param Function options[onsubmit] function(settings, original) { ... } called before submit
++  * @param Function options[onreset]  function(settings, original) { ... } called before reset
++  * @param Function options[onerror]  function(settings, original, xhr) { ... } called on error
++  *             
++  * @param Hash    options[ajaxoptions]  jQuery Ajax options. See docs.jquery.com.
++  *             
++  */
++
++(function($) {
++
++    $.fn.editable = function(target, options) {
++            
++        if ('disable' == target) {
++            $(this).data('disabled.editable', true);
++            return;
++        }
++        if ('enable' == target) {
++            $(this).data('disabled.editable', false);
++            return;
++        }
++        if ('destroy' == target) {
++            $(this)
++                .unbind($(this).data('event.editable'))
++                .removeData('disabled.editable')
++                .removeData('event.editable');
++            return;
++        }
++        
++        var settings = $.extend({}, $.fn.editable.defaults, {target:target}, options);
++        
++        /* setup some functions */
++        var plugin   = $.editable.types[settings.type].plugin || function() { };
++        var submit   = $.editable.types[settings.type].submit || function() { };
++        var buttons  = $.editable.types[settings.type].buttons 
++                    || $.editable.types['defaults'].buttons;
++        var content  = $.editable.types[settings.type].content 
++                    || $.editable.types['defaults'].content;
++        var element  = $.editable.types[settings.type].element 
++                    || $.editable.types['defaults'].element;
++        var reset    = $.editable.types[settings.type].reset 
++                    || $.editable.types['defaults'].reset;
++        var callback = settings.callback || function() { };
++        var onedit   = settings.onedit   || function() { }; 
++        var onsubmit = settings.onsubmit || function() { };
++        var onreset  = settings.onreset  || function() { };
++        var onerror  = settings.onerror  || reset;
++          
++        /* show tooltip */
++        if (settings.tooltip) {
++            $(this).attr('title', settings.tooltip);
++        }
++        
++        settings.autowidth  = 'auto' == settings.width;
++        settings.autoheight = 'auto' == settings.height;
++        
++        return this.each(function() {
++                        
++            /* save this to self because this changes when scope changes */
++            var self = this;  
++                   
++            /* inlined block elements lose their width and height after first edit */
++            /* save them for later use as workaround */
++            var savedwidth  = $(self).width();
++            var savedheight = $(self).height();
++            
++            /* save so it can be later used by $.editable('destroy') */
++            $(this).data('event.editable', settings.event);
++            
++            /* if element is empty add something clickable (if requested) */
++            if (!$.trim($(this).html())) {
++                $(this).html(settings.placeholder);
++            }
++            
++            $(this).bind(settings.event, function(e) {
++                
++                /* abort if disabled for this element */
++                if (true === $(this).data('disabled.editable')) {
++                    return;
++                }
++                
++                /* prevent throwing an exeption if edit field is clicked again */
++                if (self.editing) {
++                    return;
++                }
++                
++                /* abort if onedit hook returns false */
++                if (false === onedit.apply(this, [settings, self])) {
++                   return;
++                }
++                
++                /* prevent default action and bubbling */
++                e.preventDefault();
++                e.stopPropagation();
++                
++                /* remove tooltip */
++                if (settings.tooltip) {
++                    $(self).removeAttr('title');
++                }
++                
++                /* figure out how wide and tall we are, saved width and height */
++                /* are workaround for http://dev.jquery.com/ticket/2190 */
++                if (0 == $(self).width()) {
++                    //$(self).css('visibility', 'hidden');
++                    settings.width  = savedwidth;
++                    settings.height = savedheight;
++                } else {
++                    if (settings.width != 'none') {
++                        settings.width = 
++                            settings.autowidth ? $(self).width()  : settings.width;
++                    }
++                    if (settings.height != 'none') {
++                        settings.height = 
++                            settings.autoheight ? $(self).height() : settings.height;
++                    }
++                }
++                //$(this).css('visibility', '');
++                
++                /* remove placeholder text, replace is here because of IE */
++                if ($(this).html().toLowerCase().replace(/(;|")/g, '') == 
++                    settings.placeholder.toLowerCase().replace(/(;|")/g, '')) {
++                        $(this).html('');
++                }
++                                
++                self.editing    = true;
++                self.revert     = $(self).html();
++                $(self).html('');
++
++                /* create the form object */
++                var form = $('<form />');
++                
++                /* apply css or style or both */
++                if (settings.cssclass) {
++                    if ('inherit' == settings.cssclass) {
++                        form.attr('class', $(self).attr('class'));
++                    } else {
++                        form.attr('class', settings.cssclass);
++                    }
++                }
++
++                if (settings.style) {
++                    if ('inherit' == settings.style) {
++                        form.attr('style', $(self).attr('style'));
++                        /* IE needs the second line or display wont be inherited */
++                        form.css('display', $(self).css('display'));                
++                    } else {
++                        form.attr('style', settings.style);
++                    }
++                }
++
++                /* add main input element to form and store it in input */
++                var input = element.apply(form, [settings, self]);
++
++                /* set input content via POST, GET, given data or existing value */
++                var input_content;
++                
++                if (settings.loadurl) {
++                    var t = setTimeout(function() {
++                        input.disabled = true;
++                        content.apply(form, [settings.loadtext, settings, self]);
++                    }, 100);
++
++                    var loaddata = {};
++                    loaddata[settings.id] = self.id;
++                    if ($.isFunction(settings.loaddata)) {
++                        $.extend(loaddata, settings.loaddata.apply(self, [self.revert, settings]));
++                    } else {
++                        $.extend(loaddata, settings.loaddata);
++                    }
++                    $.ajax({
++                       type : settings.loadtype,
++                       url  : settings.loadurl,
++                       data : loaddata,
++                       async : false,
++                       success: function(result) {
++                          window.clearTimeout(t);
++                          input_content = result;
++                          input.disabled = false;
++                       }
++                    });
++                } else if (settings.data) {
++                    input_content = settings.data;
++                    if ($.isFunction(settings.data)) {
++                        input_content = settings.data.apply(self, [self.revert, settings]);
++                    }
++                } else {
++                    input_content = self.revert; 
++                }
++                content.apply(form, [input_content, settings, self]);
++
++                input.attr('name', settings.name);
++        
++                /* add buttons to the form */
++                buttons.apply(form, [settings, self]);
++         
++                /* add created form to self */
++                $(self).append(form);
++         
++                /* attach 3rd party plugin if requested */
++                plugin.apply(form, [settings, self]);
++
++                /* focus to first visible form element */
++                $(':input:visible:enabled:first', form).focus();
++
++                /* highlight input contents when requested */
++                if (settings.select) {
++                    input.select();
++                }
++        
++                /* discard changes if pressing esc */
++                input.keydown(function(e) {
++                    if (e.keyCode == 27) {
++                        e.preventDefault();
++                        //self.reset();
++                        reset.apply(form, [settings, self]);
++                    }
++                });
++
++                /* discard, submit or nothing with changes when clicking outside */
++                /* do nothing is usable when navigating with tab */
++                var t;
++                if ('cancel' == settings.onblur) {
++                    input.blur(function(e) {
++                        /* prevent canceling if submit was clicked */
++                        t = setTimeout(function() {
++              
+ 58 24351   58 14202    0     0  79686      0 --:--:-- --:--:-- --:--:--  101k              reset.apply(form, [settings, self]);
++                        }, 500);
++                    });
++                } else if ('submit' == settings.onblur) {
++                    input.blur(function(e) {
++                        /* prevent double submit if submit was clicked */
++                        t = setTimeout(function() {
++                            form.submit();
++                        }, 200);
++                    });
++                } else if ($.isFunction(settings.onblur)) {
++                    input.blur(function(e) {
++                        settings.onblur.apply(self, [input.val(), settings]);
++                    });
++                } else {
++                    input.blur(function(e) {
++                      /* TODO: maybe something here */
++                    });
++                }
++
++                form.submit(function(e) {
++
++                    if (t) { 
++                        clearTimeout(t);
++                    }
++
++                    /* do no submit */
++                    e.preventDefault(); 
++            
++                    /* call before submit hook. */
++                    /* if it returns false abort submitting */                    
++                    if (false !== onsubmit.apply(form, [settings, self])) { 
++                        /* custom inputs call before submit hook. */
++                        /* if it returns false abort submitting */
++                        if (false !== submit.apply(form, [settings, self])) { 
++
++                          /* check if given target is function */
++                          if ($.isFunction(settings.target)) {
++                              var str = settings.target.apply(self, [input.val(), settings]);
++                              $(self).html(str);
++                              self.editing = false;
++                              callback.apply(self, [self.innerHTML, settings]);
++                              /* TODO: this is not dry */                              
++                              if (!$.trim($(self).html())) {
++                                  $(self).html(settings.placeholder);
++                              }
++                          } else {
++                              /* add edited content and id of edited element to POST */
++                              var submitdata = {};
++                              submitdata[settings.name] = input.val();
++                              submitdata[settings.id] = self.id;
++                              /* add extra data to be POST:ed */
++                              if ($.isFunction(settings.submitdata)) {
++                                  $.extend(submitdata, settings.submitdata.apply(self, [self.revert, settings]));
++                              } else {
++                                  $.extend(submitdata, settings.submitdata);
++                              }
++
++                              /* quick and dirty PUT support */
++                              if ('PUT' == settings.method) {
++                                  submitdata['_method'] = 'put';
++                              }
++
++                              /* show the saving indicator */
++                              $(self).html(settings.indicator);
++                              
++                              /* defaults for ajaxoptions */
++                              var ajaxoptions = {
++                                  type    : 'POST',
++                                  data    : submitdata,
++                                  dataType: 'html',
++                                  url     : settings.target,
++                                  success : function(result, status) {
++                                      if (ajaxoptions.dataType == 'html') {
++                                        $(self).html(result);
++                                      }
++                                      self.editing = false;
++                                      callback.apply(self, [result, settings]);
++                                      if (!$.trim($(self).html())) {
++                                          $(self).html(settings.placeholder);
++                                      }
++                                  },
++                                  error   : function(xhr, status, error) {
++                                      onerror.apply(form, [settings, self, xhr]);
++                                  }
++                              };
++                              
++                              /* override with what is given in settings.ajaxoptions */
++                              $.extend(ajaxoptions, settings.ajaxoptions);   
++                              $.ajax(ajaxoptions);          
++                              
++                            }
++                        }
++                    }
++                    
++                    /* show tooltip again */
++                    $(self).attr('title', settings.tooltip);
++                    
++                    return false;
++                });
++            });
++            
++            /* privileged methods */
++            this.reset = function(form) {
++                /* prevent calling reset twice when blurring */
++                if (this.editing) {
++                    /* before reset hook, if it returns false abort reseting */
++                    if (false !== onreset.apply(form, [settings, self])) { 
++                        $(self).html(self.revert);
++                        self.editing   = false;
++                        if (!$.trim($(self).html())) {
++                            $(self).html(settings.placeholder);
++                        }
++                        /* show tooltip again */
++                        if (settings.tooltip) {
++                            $(self).attr('title', settings.tooltip);                
++                        }
++                    }                    
++                }
++            };            
++        });
++
++    };
++
++
++    $.editable = {
++        types: {
++            defaults: {
++                element : function(settings, original) {
++                    var input = $('<input type="hidden"></input>');                
++                    $(this).append(input);
++                    return(input);
++                },
++                content : function(string, settings, original) {
++                    $(':input:first', this).val(string);
++                },
++                reset : function(settings, original) {
++                  original.reset(this);
++                },
++                buttons : function(settings, original) {
++                    var form = this;
++                    if (settings.submit) {
++                        /* if given html string use that */
++                        if (settings.submit.match(/>$/)) {
++                            var submit = $(settings.submit).click(function() {
++                                if (submit.attr("type") != "submit") {
++                                    form.submit();
++                                }
++                            });
++                        /* otherwise use button with given string as text */
++                        } else {
++                            var submit = $('<button type="submit" />');
++                            submit.html(settings.submit);                            
++                        }
++                        $(this).append(submit);
++                    }
++                    if (settings.cancel) {
++                        /* if given html string use that */
++                        if (settings.cancel.match(/>$/)) {
++                            var cancel = $(settings.cancel);
++                        /* otherwise use button with given string as text */
++                        } else {
++                            var cancel = $('<button type="cancel" />');
++                            cancel.html(settings.cancel);
++                        }
++                        $(this).append(cancel);
++
++                        $(cancel).click(function(event) {
++                            //original.reset();
++                            if ($.isFunction($.editable.types[settings.type].reset)) {
++                                var reset = $.editable.types[settings.type].reset;                                                            
+100 24351  100 24351    0     0   130k      0 --:--:-- --:--:-- --:--:--  169k
++    
++                            } else {
++                                var reset = $.editable.types['defaults'].reset;                                
++                            }
++                            reset.apply(form, [settings, original]);
++                            return false;
++                        });
++                    }
++                }
++            },
++            text: {
++                element : function(settings, original) {
++                    var input = $('<input />');
++                    if (settings.width  != 'none') { input.width(settings.width);  }
++                    if (settings.height != 'none') { input.height(settings.height); }
++                    /* https://bugzilla.mozilla.org/show_bug.cgi?id=236791 */
++                    //input[0].setAttribute('autocomplete','off');
++                    input.attr('autocomplete','off');
++                    $(this).append(input);
++                    return(input);
++                }
++            },
++            textarea: {
++                element : function(settings, original) {
++                    var textarea = $('<textarea />');
++                    if (settings.rows) {
++                        textarea.attr('rows', settings.rows);
++                    } else if (settings.height != "none") {
++                        textarea.height(settings.height);
++                    }
++                    if (settings.cols) {
++                        textarea.attr('cols', settings.cols);
++                    } else if (settings.width != "none") {
++                        textarea.width(settings.width);
++                    }
++                    $(this).append(textarea);
++                    return(textarea);
++                }
++            },
++            select: {
++               element : function(settings, original) {
++                    var select = $('<select />');
++                    $(this).append(select);
++                    return(select);
++                },
++                content : function(data, settings, original) {
++                    /* If it is string assume it is json. */
++                    if (String == data.constructor) {      
++                        eval ('var json = ' + data);
++                    } else {
++                    /* Otherwise assume it is a hash already. */
++                        var json = data;
++                    }
++                    for (var key in json) {
++                        if (!json.hasOwnProperty(key)) {
++                            continue;
++                        }
++                        if ('selected' == key) {
++                            continue;
++                        } 
++                        var option = $('<option />').val(key).append(json[key]);
++                        $('select', this).append(option);    
++                    }                    
++                    /* Loop option again to set selected. IE needed this... */ 
++                    $('select', this).children().each(function() {
++                        if ($(this).val() == json['selected'] || 
++                            $(this).text() == $.trim(original.revert)) {
++                                $(this).attr('selected', 'selected');
++                        }
++                    });
++                }
++            }
++        },
++
++        /* Add new input type */
++        addInputType: function(name, input) {
++            $.editable.types[name] = input;
++        }
++    };
++
++    // publicly accessible defaults
++    $.fn.editable.defaults = {
++        name       : 'value',
++        id         : 'id',
++        type       : 'text',
++        width      : 'auto',
++        height     : 'auto',
++        event      : 'click.editable',
++        onblur     : 'cancel',
++        loadtype   : 'GET',
++        loadtext   : 'Loading...',
++        placeholder: 'Click to edit',
++        loaddata   : {},
++        submitdata : {},
++        ajaxoptions: {}
++    };
++
++})(jQuery);

Added: trunk/chef/debian/patches/jquery_versions.patch
===================================================================
--- trunk/chef/debian/patches/jquery_versions.patch	                        (rev 0)
+++ trunk/chef/debian/patches/jquery_versions.patch	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,13 @@
+# Description: set the jquery-ui version to the same from the debian package.
+Index: chef-0.8.10/chef-server-webui/app/views/layout/chef_server_webui.html.haml
+===================================================================
+--- chef-0.8.10.orig/chef-server-webui/app/views/layout/chef_server_webui.html.haml     2010-05-06 21:53:38.000000000 -0600
++++ chef-0.8.10/chef-server-webui/app/views/layout/chef_server_webui.html.haml  2010-05-06 21:54:28.000000000 -0600
+@@ -7,7 +7,7 @@
+     = css_include_tag "base", "themes/djime-cerulean/style", "chef", "/facebox/facebox.css", "jquery-ui-1.7.1.custom", "jquery.treeTable", "jsonedit_main.css"
+     = js_include_tag "jquery-1.3.2.min", "jquery.jeditable.mini", "jquery.livequery", "jquery.localscroll", "jquery.scrollTo", "jquery.tools.min"
+     = js_include_tag "/facebox/facebox.js"
+-    = js_include_tag "jquery-ui-1.7.1.custom.min"
++    = js_include_tag "jquery-ui-1.7.2.custom.min"
+     = js_include_tag "jquery.treeTable.min"
+     = js_include_tag "chef"

Added: trunk/chef/debian/patches/pidfile_option.patch
===================================================================
--- trunk/chef/debian/patches/pidfile_option.patch	                        (rev 0)
+++ trunk/chef/debian/patches/pidfile_option.patch	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,39 @@
+# Description: Add a pid_file option so it can be specified via commandline
+# (for init scripts) rather than splitting config files for this one option.
+# The daemonizing method doesn't properly create PIDFILE specified in the 
+# init scripts and without this creates pid files in /tmp. This is fixed
+# upstream in ticket CHEF-1022.
+Index: chef-0.8.6/chef-solr/lib/chef/solr/application/indexer.rb
+===================================================================
+--- chef-0.8.6.orig/chef-solr/lib/chef/solr/application/indexer.rb	2010-03-07 00:30:07.000000000 -0700
++++ chef-0.8.6/chef-solr/lib/chef/solr/application/indexer.rb	2010-03-07 00:30:17.000000000 -0700
+@@ -75,6 +75,12 @@
+           :description => "Daemonize the process",
+           :proc => lambda { |p| true }
+ 
++        option :pid_file,
++          :short => "-P PIDFILE",
++          :long => "--pidfile PIDFILE",
++          :description => "PID file to use.",
++          :proc => nil
++
+         option :amqp_host,
+           :long => "--amqp-host HOST",
+           :description => "The amqp host"
+Index: chef-0.8.6/chef-solr/lib/chef/solr/application/solr.rb
+===================================================================
+--- chef-0.8.6.orig/chef-solr/lib/chef/solr/application/solr.rb	2010-03-07 00:29:26.000000000 -0700
++++ chef-0.8.6/chef-solr/lib/chef/solr/application/solr.rb	2010-03-07 00:30:02.000000000 -0700
+@@ -72,6 +72,12 @@
+           :description => "Daemonize the process",
+           :proc => lambda { |p| true }
+ 
++        option :pid_file,
++          :short => "-P PIDFILE",
++          :long => "--pidfile PIDFILE",
++          :description => "PID file to use.",
++          :proc => nil
++
+         option :solr_jetty_path,
+           :short => "-W PATH",
+           :long => "--solr-jetty-dir PATH",

Modified: trunk/chef/debian/patches/remove_rubygems.patch
===================================================================
--- trunk/chef/debian/patches/remove_rubygems.patch	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/patches/remove_rubygems.patch	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,143 +1,149 @@
-# Description: Remove rubygems from the various bits of chef.
-# Also set up chef-server program to load slice correctly due to no rubygems.
-# No upstream patch/ticket filed yet, still discussing how we're going to 
-# approach this to be applicable to other platforms than Debian/Ubuntu.
-Index: chef-0.7.8/chef-server/bin/chef-indexer
+# Description: Remove rubygems from various places in Chef were not needed.
+# Also set up chef-server programs to load slices correctly w/o rubygems.
+# Upstream does not plan to remove rubygems, so this patch needs to be
+# updated with new files that require rubygems.
+Index: chef-0.8.14+dfsg.orig/chef-server-api/config/init.rb
 ===================================================================
---- chef-0.7.8.orig/chef-server/bin/chef-indexer	2009-08-20 14:56:55.171895794 -0600
-+++ chef-0.7.8/chef-server/bin/chef-indexer	2009-08-20 14:58:38.375887954 -0600
-@@ -20,7 +20,6 @@
+--- chef-0.8.14+dfsg.orig.orig/chef-server-api/config/init.rb	2010-05-07 15:06:33.000000000 -0600
++++ chef-0.8.14+dfsg.orig/chef-server-api/config/init.rb	2010-05-07 15:07:01.000000000 -0600
+@@ -29,8 +29,6 @@
+ dependency "merb-helpers", merb_gems_version
+ dependency "chef", :immediate=>true unless defined?(Chef)
  
- $: << File.join(File.dirname(__FILE__), "..", "lib")
+-require 'rubygems'
+-
+ Merb::Config.use do |c|
+   c[:session_id_key] = '_chef_server_session_id'
+   c[:session_secret_key]  = Chef::Config.manage_secret_key
+Index: chef-0.8.14+dfsg.orig/chef/bin/shef
+===================================================================
+--- chef-0.8.14+dfsg.orig.orig/chef/bin/shef	2010-05-07 15:06:33.000000000 -0600
++++ chef-0.8.14+dfsg.orig/chef/bin/shef	2010-05-07 15:07:01.000000000 -0600
+@@ -19,7 +19,6 @@
+ # limitations under the License.
  
+ # TODO::EVIL
+-require "rubygems"
+ require "mixlib/cli"
+ 
+ require "irb"
+Index: chef-0.8.14+dfsg.orig/chef-server/config-webui.ru
+===================================================================
+--- chef-0.8.14+dfsg.orig.orig/chef-server/config-webui.ru	2010-05-07 15:06:33.000000000 -0600
++++ chef-0.8.14+dfsg.orig/chef-server/config-webui.ru	2010-05-07 15:07:01.000000000 -0600
+@@ -1,4 +1,3 @@
 -require 'rubygems'
- require 'chef/application/indexer'
+ require 'merb-core'
+ require 'chef'
  
--Chef::Application::Indexer.new.run
-\ No newline at end of file
-+Chef::Application::Indexer.new.run
-Index: chef-0.7.8/chef-server/bin/chef-server
+Index: chef-0.8.14+dfsg.orig/chef-server/config.ru
 ===================================================================
---- chef-0.7.8.orig/chef-server/bin/chef-server	2009-08-20 14:56:55.151889438 -0600
-+++ chef-0.7.8/chef-server/bin/chef-server	2009-08-20 14:58:38.375887954 -0600
-@@ -23,13 +23,10 @@
+--- chef-0.8.14+dfsg.orig.orig/chef-server/config.ru	2010-05-07 15:06:33.000000000 -0600
++++ chef-0.8.14+dfsg.orig/chef-server/config.ru	2010-05-07 15:07:01.000000000 -0600
+@@ -1,4 +1,3 @@
+-require 'rubygems'
+ require 'merb-core'
+ require 'chef'
+ 
+Index: chef-0.8.14+dfsg.orig/chef-server/bin/chef-server
+===================================================================
+--- chef-0.8.14+dfsg.orig.orig/chef-server/bin/chef-server	2010-05-07 15:06:33.000000000 -0600
++++ chef-0.8.14+dfsg.orig/chef-server/bin/chef-server	2010-05-07 15:07:01.000000000 -0600
+@@ -23,24 +23,14 @@
  # Add chef and chef-server-slice lib dirs to the load path
  # Load chef and chef-server slice from source rather than gem, if present
  
 -require "rubygems"
  require "merb-core"
--
--[ 'chef', 'chef-server-slice' ].each do |lib|
--  library = File.join(File.dirname(__FILE__), "..", "..", lib, "lib", "#{lib}.rb")
+ 
+-CHEF_SERVER_VERSION = "0.8.16"
++CHEF_SERVER_VERSION = "0.8.16" unless defined?(CHEF_SERVER_VERSION)
+ 
+-[ 'chef', 'chef-server-api' ].each do |lib|
+-  $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "lib")))
+-  library = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", lib, "lib", "#{lib}.rb"))
 -  require library if File.exists?(library)
 -end
 +require "chef"
-+require "/usr/share/chef-server-slice/lib/chef-server-slice"
-+require "openid/util"
++require "/usr/share/chef-server-api/lib/chef-server-api"
  
- ObjectSpace.each_object(Gem::Specification) do |gem|
-   next unless gem.name == "chef-server"
-@@ -37,13 +34,15 @@
-   break
- end
+-# Ensure the chef gem we load is the same version as the chef server
+-unless defined?(Chef)
+-  gem "chef", "=" + CHEF_SERVER_VERSION 
+-  require 'chef'  
+-end
+-
+-Dir.chdir File.join(File.dirname(__FILE__),"..")
++Dir.chdir File.join(File.dirname(__FILE__),"..", "share", "chef-server")
+ __DIR__ = Dir.getwd
  
-+CHEF_SERVER_VERSION = "0.7.8" unless defined?(CHEF_SERVER_VERSION)
-+
- # Ensure the chef gem we load is the same version as the chef server
- unless defined?(Chef)
-   gem "chef", "=" + CHEF_SERVER_VERSION if CHEF_SERVER_VERSION
-   require 'chef'  
- end
+ if ARGV[0] && ARGV[0] =~ /^[^-]/
+Index: chef-0.8.14+dfsg.orig/chef-server/bin/chef-server-webui
+===================================================================
+--- chef-0.8.14+dfsg.orig.orig/chef-server/bin/chef-server-webui	2010-05-07 15:06:33.000000000 -0600
++++ chef-0.8.14+dfsg.orig/chef-server/bin/chef-server-webui	2010-05-07 15:07:01.000000000 -0600
+@@ -23,24 +23,14 @@
+ # Add chef and chef-server-slice lib dirs to the load path
+ # Load chef and chef-server slice from source rather than gem, if present
  
+-require "rubygems"
+ require "merb-core"
+ 
+-[ 'chef', 'chef-server-webui' ].each do |lib|
+-  $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "lib")))
+-  library = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", lib, "lib", "#{lib}.rb"))
+-  require library if File.exists?(library)
+-end
++CHEF_SERVER_VERSION = "0.8.16" unless defined?(CHEF_SERVER_VERSION)
+ 
+-CHEF_SERVER_VERSION = "0.8.16"
++require "chef"
++require "/usr/share/chef-server-webui/lib/chef-server-webui"
+ 
+-# Ensure the chef gem we load is the same version as the chef server
+-unless defined?(Chef)
+-  gem "chef", "=" + CHEF_SERVER_VERSION 
+-  require 'chef'  
+-end
+-
 -Dir.chdir File.join(File.dirname(__FILE__),"..")
 +Dir.chdir File.join(File.dirname(__FILE__),"..", "share", "chef-server")
  __DIR__ = Dir.getwd
  
  if ARGV[0] && ARGV[0] =~ /^[^-]/
-Index: chef-0.7.8/chef-server/public/merb.fcgi
+Index: chef-0.8.14+dfsg.orig/chef/bin/chef-client
 ===================================================================
---- chef-0.7.8.orig/chef-server/public/merb.fcgi	2009-08-20 14:56:55.191856158 -0600
-+++ chef-0.7.8/chef-server/public/merb.fcgi	2009-08-20 14:58:38.375887954 -0600
-@@ -1,6 +1,5 @@
- #!/usr/bin/env ruby
-                                                                
--require 'rubygems'
- require 'merb-core'
+--- chef-0.8.14+dfsg.orig.orig/chef/bin/chef-client	2010-05-07 15:07:10.000000000 -0600
++++ chef-0.8.14+dfsg.orig/chef/bin/chef-client	2010-05-07 15:07:16.000000000 -0600
+@@ -18,7 +18,6 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
  
- # this is Merb.root, change this if you have some funky setup.
-@@ -19,4 +18,4 @@
- # start merb with the fcgi adapter, add options or change the log dir here
- Merb.start(:adapter => 'fcgi',
-            :merb_root => merb_root,
--           :log_file => merb_root /'log'/'merb.log')
-\ No newline at end of file
-+           :log_file => merb_root /'log'/'merb.log')
-Index: chef-0.7.8/chef/bin/chef-client
-===================================================================
---- chef-0.7.8.orig/chef/bin/chef-client	2009-08-20 14:56:55.207683729 -0600
-+++ chef-0.7.8/chef/bin/chef-client	2009-08-20 14:58:41.964123959 -0600
-@@ -1,4 +1,4 @@
--#!/usr/bin/env ruby
-+#! /usr/bin/ruby1.8
- #
- # ./chef-client - Run the chef client
- #
-@@ -20,7 +20,6 @@
- 
- $: << File.join(File.dirname(__FILE__), "..", "lib")
- 
 -require 'rubygems'
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
+ require 'chef'
  require 'chef/application/client'
- 
--Chef::Application::Client.new.run
-\ No newline at end of file
-+Chef::Application::Client.new.run
-Index: chef-0.7.8/chef/bin/chef-solo
+Index: chef-0.8.14+dfsg.orig/chef/bin/chef-solo
 ===================================================================
---- chef-0.7.8.orig/chef/bin/chef-solo	2009-08-20 14:56:55.227719673 -0600
-+++ chef-0.7.8/chef/bin/chef-solo	2009-08-20 14:58:41.964123959 -0600
-@@ -1,4 +1,4 @@
--#!/usr/bin/env ruby
-+#! /usr/bin/ruby1.8
- #
- # ./chef-solo - Run the chef client, in stand-alone mode
- #
-@@ -20,7 +20,6 @@
+--- chef-0.8.14+dfsg.orig.orig/chef/bin/chef-solo	2010-05-07 15:07:22.000000000 -0600
++++ chef-0.8.14+dfsg.orig/chef/bin/chef-solo	2010-05-07 15:07:25.000000000 -0600
+@@ -18,7 +18,6 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
  
- $: << File.join(File.dirname(__FILE__), "..", "lib")
- 
 -require 'rubygems'
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
  require 'chef/application/solo'
  
- Chef::Application::Solo.new.run
-Index: chef-0.7.8/chef/lib/chef.rb
+Index: chef-0.8.14+dfsg.orig/chef/bin/knife
 ===================================================================
---- chef-0.7.8.orig/chef/lib/chef.rb	2009-08-20 14:56:55.239908163 -0600
-+++ chef-0.7.8/chef/lib/chef.rb	2009-08-20 14:58:38.375887954 -0600
-@@ -19,7 +19,6 @@
- $:.unshift(File.dirname(__FILE__)) unless
-   $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
+--- chef-0.8.14+dfsg.orig.orig/chef/bin/knife	2010-05-07 15:07:33.000000000 -0600
++++ chef-0.8.14+dfsg.orig/chef/bin/knife	2010-05-07 15:07:36.000000000 -0600
+@@ -18,7 +18,6 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
  
 -require 'rubygems'
- require 'extlib'
- require 'chef/exceptions'
- require 'chef/log'
-Index: chef-0.7.8/chef/lib/chef/openid_registration.rb
-===================================================================
---- chef-0.7.8.orig/chef/lib/chef/openid_registration.rb	2009-08-20 14:56:55.263837175 -0600
-+++ chef-0.7.8/chef/lib/chef/openid_registration.rb	2009-08-20 14:58:38.375887954 -0600
-@@ -20,7 +20,6 @@
- require 'chef/mixin/params_validate'
- require 'chef/couchdb'
- require 'digest/sha1'
--require 'rubygems'
- require 'json'
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
+ require 'chef/application/knife'
  
- class Chef
-@@ -178,4 +177,4 @@
-       end
-     
-   end
--end
-\ No newline at end of file
-+end

Modified: trunk/chef/debian/patches/series
===================================================================
--- trunk/chef/debian/patches/series	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/patches/series	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,2 +1,4 @@
-fix_slice_dirs.patch
+chef_solr_ruby18.patch
+solr_load_path.patch
 remove_rubygems.patch
+jquery_unminified.patch

Added: trunk/chef/debian/patches/solr_load_path.patch
===================================================================
--- trunk/chef/debian/patches/solr_load_path.patch	                        (rev 0)
+++ trunk/chef/debian/patches/solr_load_path.patch	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,44 @@
+# Description: set the load path for chef-solr's binaries correctly for Debian
+# FHS compliant location. No plans for upstream to change this.
+Index: chef-0.8.6/chef-solr/bin/chef-solr
+===================================================================
+--- chef-0.8.6.orig/chef-solr/bin/chef-solr	2010-03-06 22:45:32.000000000 -0700
++++ chef-0.8.6/chef-solr/bin/chef-solr	2010-03-06 22:45:50.000000000 -0700
+@@ -19,8 +19,8 @@
+ 
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "chef", "lib")))
++$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "share", "chef-solr", "lib")))
+ 
+-require 'rubygems'
+ require 'chef/solr/application/solr'
+ 
+ Chef::Solr::Application::Solr.new.run
+Index: chef-0.8.6/chef-solr/bin/chef-solr-indexer
+===================================================================
+--- chef-0.8.6.orig/chef-solr/bin/chef-solr-indexer	2010-03-06 22:45:58.000000000 -0700
++++ chef-0.8.6/chef-solr/bin/chef-solr-indexer	2010-03-06 22:46:04.000000000 -0700
+@@ -19,8 +19,8 @@
+ 
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "chef", "lib")))
++$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "share", "chef-solr", "lib")))
+ 
+-require 'rubygems'
+ require 'chef/solr/application/indexer'
+ 
+ Chef::Solr::Application::Indexer.new.run
+Index: chef-0.8.6/chef-solr/bin/chef-solr-rebuild
+===================================================================
+--- chef-0.8.6.orig/chef-solr/bin/chef-solr-rebuild	2010-03-06 22:46:31.000000000 -0700
++++ chef-0.8.6/chef-solr/bin/chef-solr-rebuild	2010-03-06 22:47:22.000000000 -0700
+@@ -19,8 +19,8 @@
+ 
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "chef", "lib")))
++$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "share", "chef-solr", "lib")))
+ 
+-require 'rubygems'
+ require 'chef/solr/application/rebuild'
+ 
+ Chef::Solr::Application::Rebuild.new.run

Added: trunk/chef/debian/po/POTFILES.in
===================================================================
--- trunk/chef/debian/po/POTFILES.in	                        (rev 0)
+++ trunk/chef/debian/po/POTFILES.in	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,3 @@
+[type: gettext/rfc822deb] chef.templates
+[type: gettext/rfc822deb] chef-solr.templates
+[type: gettext/rfc822deb] chef-server-webui.templates

Added: trunk/chef/debian/po/templates.pot
===================================================================
--- trunk/chef/debian/po/templates.pot	                        (rev 0)
+++ trunk/chef/debian/po/templates.pot	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,68 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: chef at packages.debian.org\n"
+"POT-Creation-Date: 2010-05-07 13:28-0600\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: password
+#. Description
+#: ../chef-solr.templates:1001
+msgid "New password for the 'chef' AMQP user in the RabbitMQ vhost \"/chef\":"
+msgstr ""
+
+#. Type: password
+#. Description
+#: ../chef-solr.templates:1001
+msgid ""
+" Set the password for the chef user in the AMQP server queue. Use\n"
+" RabbitMQ's rabbitmqctl program to set this password. The default user\n"
+" and vhost are assumed (chef and /chef, respectively).\n"
+" .\n"
+" RabbitMQ does not have the capability to read the password from a file, "
+"and\n"
+" this will be passed via \"\" on the command-line. As such, do not use "
+"shell\n"
+" meta-characters that could cause errors such as !.\n"
+" .\n"
+" This will be used in /etc/chef/solr.rb and /etc/chef/server.rb as "
+"'amqp_pass'."
+msgstr ""
+
+#. Type: password
+#. Description
+#: ../chef-server-webui.templates:1001
+msgid "New password for the 'admin' user in the Chef Server WebUI:"
+msgstr ""
+
+#. Type: password
+#. Description
+#: ../chef-server-webui.templates:1001
+msgid ""
+" This sets a temporary first-use password to log into the Chef Server WebUI\n"
+" as the 'admin' user for the first time. Once logged in, the password "
+"should\n"
+" be changed immediately.\n"
+" .\n"
+" Once the chef-server-webui process is running, login using the username\n"
+" 'admin' using the password set here.\n"
+" .\n"
+" If a password is not entered, the webui default password for 'admin' will\n"
+" be used, which is displayed on the webui home page. The password must be\n"
+" at least 6 characters or the webui will not start properly.\n"
+" .\n"
+" This will be used in /etc/chef/webui.rb as "
+"'web_ui_admin_default_password'.\n"
+" ."
+msgstr ""

Added: trunk/chef/debian/repack.sh
===================================================================
--- trunk/chef/debian/repack.sh	                        (rev 0)
+++ trunk/chef/debian/repack.sh	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,47 @@
+#!/bin/sh
+# Repackage upstream source to exclude non-distributable files
+# should be called as "repack.sh --upstream-source <ver> <downloaded file>
+# (for example, via uscan)
+
+set -e
+set -u
+
+VER="$2+dfsg"
+FILE="$3"
+PKG=`dpkg-parsechangelog|grep ^Source:|sed 's/^Source: //'`
+
+REPACK_DIR="$PKG-$VER.orig" # DevRef § 6.7.8.2
+
+echo -e "\nRepackaging $FILE\n"
+
+DIR=`mktemp -d ./tmpRepackXXXXXX`
+trap "rm -rf \"$DIR\"" QUIT INT EXIT
+
+# Create an extra directory to cope with rootless tarballs
+UP_BASE="$DIR/unpack"
+mkdir "$UP_BASE"
+tar xzf "$FILE" -C "$UP_BASE"
+
+if [ `ls -1 "$UP_BASE" | wc -l` -eq 1 ]; then
+        # Tarball does contain a root directory
+        UP_BASE="$UP_BASE/`ls -1 "$UP_BASE"`"
+fi
+
+## Remove undistributable files from source.
+rm -vfr $UP_BASE/chef-solr/solr/solr-jetty.tar.gz
+rm -vfr $UP_BASE/chef-server-webui/public/javascripts/yetii-min.js
+rm -vfr $UP_BASE/chef-server-webui/public/javascripts/jquery.jeditable.mini.js
+rm -vfr $UP_BASE/chef-server-webui/public/javascripts/jquery.tools.min.js
+rm -vfr $UP_BASE/chef-server-webui/public/javascripts/jquery-ui-1.7.1.custom.min.js
+rm -vfr $UP_BASE/features/data/solr/jetty/work/Jetty_0_0_0_0_8983_solr.war__solr__k1kf17/webapp/admin/jquery-1.2.3.min.js
+## End
+
+mv "$UP_BASE" "$DIR/$REPACK_DIR"
+
+# Using a pipe hides tar errors!
+tar cfC "$DIR/repacked.tar" "$DIR" "$REPACK_DIR"
+gzip -9 < "$DIR/repacked.tar" > "$DIR/repacked.tar.gz"
+FILE="../${PKG}_${VER}.orig.tar.gz"
+mv "$DIR/repacked.tar.gz" "$FILE"
+
+echo "*** $FILE repackaged"


Property changes on: trunk/chef/debian/repack.sh
___________________________________________________________________
Added: svn:executable
   + *

Modified: trunk/chef/debian/rules
===================================================================
--- trunk/chef/debian/rules	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/rules	2010-05-23 06:22:18 UTC (rev 5392)
@@ -6,13 +6,15 @@
 
 # setup.rb doesn't work very well with separate binary / lib
 # packages, and with subproject directories, so while this
-# looks like duplication of ruby-setup-rb.mk, using that 
+# looks like duplication of ruby-setup-rb.mk, using that
 # doesn't build these packages properly.
 CDBS_NO_DOC_SYMLINKING = ""
 
 PACKAGED_RUBY_SETUP_CMD = /usr/lib/ruby/1.8/setup.rb
 DEB_RUBY_SETUP_CMD = debian-setup.rb
 DEB_RUBY_CONFIG_ARGS = --installdirs=std
+JAVASCRIPTS = chef-server-webui/public/javascripts
+MINJS = perl -0 -e 'use JavaScript::Minifier::XS qw(minify);print minify(<>);'
 
 CHEF_INSTALL_SETUP_CMD = \
   if [ ! -L chef/$(DEB_RUBY_SETUP_CMD) ] ; then \
@@ -32,9 +34,9 @@
 
 install/chef::
 	# init script name is different from the package:
-	dh_installinit --name chef-client 
-	cp -rf $(CURDIR)/debian/etc/chef/client.rb $(CURDIR)/debian/chef/etc/chef
-	cp -rf $(CURDIR)/debian/etc/chef/solo.rb $(CURDIR)/debian/chef/etc/chef
+	dh_installinit --name chef-client -- defaults 99 02
+	cp -rf $(CURDIR)/debian/etc/chef/client.rb $(CURDIR)/debian/chef/usr/share/chef
+	cp -rf $(CURDIR)/debian/etc/chef/solo.rb $(CURDIR)/debian/chef/usr/share/chef
 
 install/libchef-ruby1.8::
 	# straight setup.rb won't build this correctly, see comment at top.
@@ -45,33 +47,58 @@
 	mkdir -p $(CURDIR)/debian/chef/usr/bin
 	mv $(CURDIR)/debian/libchef-ruby1.8/usr/bin/chef-client $(CURDIR)/debian/chef/usr/bin/
 	mv $(CURDIR)/debian/libchef-ruby1.8/usr/bin/chef-solo $(CURDIR)/debian/chef/usr/bin/
+	mv $(CURDIR)/debian/libchef-ruby1.8/usr/bin/knife $(CURDIR)/debian/chef/usr/bin/
+	mv $(CURDIR)/debian/libchef-ruby1.8/usr/bin/shef $(CURDIR)/debian/chef/usr/bin/
 	rmdir $(CURDIR)/debian/libchef-ruby1.8/usr/bin/
 
-install/chef-indexer::
-	mkdir -p $(CURDIR)/debian/chef-indexer/usr/bin
-	cp debian/etc/chef/indexer.rb debian/chef-indexer/etc/chef
-	cp chef-server/bin/chef-indexer debian/chef-indexer/usr/bin
+install/chef-solr::
+	cp -rf $(CURDIR)/debian/etc/chef/solr.rb debian/chef-solr/usr/share/chef-solr
+	cp -rf $(CURDIR)/debian/etc/chef/solr-jetty debian/chef-solr/etc/chef
+	cp chef-solr/bin/chef-solr-indexer debian/chef-solr/usr/sbin
+	cp chef-solr/bin/chef-solr-rebuild debian/chef-solr/usr/sbin
+	cp chef-solr/bin/chef-solr debian/chef-solr/usr/sbin
+	cp -r chef-solr/lib debian/chef-solr/usr/share/chef-solr
+	tar xvzf chef-solr/solr/solr-home.tar.gz -C debian/chef-solr/var/lib/chef/solr
+	dh_installinit --name=chef-solr -- defaults 84 02
+	dh_installinit --name=chef-solr-indexer -- defaults 85 02
+	dh_installlogrotate --name=chef-solr-indexer
 
 install/chef-server::
 	mkdir -p $(CURDIR)/debian/chef-server/usr/bin
-	cp debian/etc/chef/server.rb  debian/chef-server/etc/chef
-	cp chef-server/bin/chef-server  debian/chef-server/usr/bin
+	cp debian/etc/chef/server.rb  debian/chef-server/usr/share/chef-server
+	cp chef-server/bin/chef-server debian/chef-server/usr/bin
 	cp chef-server/README.rdoc debian/chef-server/usr/share/doc/chef-server
 	cp chef-server/config.ru debian/chef-server/usr/share/chef-server
 	cp -rf chef-server/app    debian/chef-server/usr/share/chef-server
 	cp -rf chef-server/config debian/chef-server/usr/share/chef-server
 	cp -rf chef-server/lib    debian/chef-server/usr/share/chef-server
 	cp -rf chef-server/public debian/chef-server/usr/share/chef-server
+	dh_installinit --name=chef-server -- defaults 90 02
 
-install/chef-server-slice::
-	cp chef-server-slice/README.rdoc debian/chef-server-slice/usr/share/doc/chef-server-slice
-	cp -rf chef-server-slice/app    debian/chef-server-slice/usr/share/chef-server-slice
-	cp -rf chef-server-slice/config debian/chef-server-slice/usr/share/chef-server-slice
-	cp -rf chef-server-slice/public debian/chef-server-slice/usr/share/chef-server-slice
-	cp -rf chef-server-slice/lib    debian/chef-server-slice/usr/share/chef-server-slice
-	rm debian/chef-server-slice/usr/share/chef-server-slice/public/images/treeBuilderImages/Thumbs.db
-	find debian/chef-server-slice -type f -perm +755 -exec chmod 644 {} \;
+install/chef-server-api::
+	cp chef-server-api/README.rdoc debian/chef-server-api/usr/share/doc/chef-server-api
+	cp -rf chef-server-api/app    debian/chef-server-api/usr/share/chef-server-api
+	cp -rf chef-server-api/config debian/chef-server-api/usr/share/chef-server-api
+	cp -rf chef-server-api/public debian/chef-server-api/usr/share/chef-server-api
+	cp -rf chef-server-api/lib    debian/chef-server-api/usr/share/chef-server-api
+	find debian/chef-server-api -type f -perm +755 -exec chmod 644 {} \;
 
+install/chef-server-webui::
+	cp debian/etc/chef/webui.rb  debian/chef-server-webui/usr/share/chef-server-webui
+	cp chef-server/bin/chef-server-webui debian/chef-server/usr/bin
+	cp chef-server/config-webui.ru debian/chef-server/usr/share/chef-server
+	cp chef-server-webui/README.rdoc debian/chef-server-webui/usr/share/doc/chef-server-webui
+	cp -rf chef-server-webui/app    debian/chef-server-webui/usr/share/chef-server-webui
+	cp -rf chef-server-webui/config debian/chef-server-webui/usr/share/chef-server-webui
+	cp -rf chef-server-webui/public debian/chef-server-webui/usr/share/chef-server-webui
+	cp -rf chef-server-webui/lib    debian/chef-server-webui/usr/share/chef-server-webui
+	rm debian/chef-server-webui/usr/share/chef-server-webui/public/images/treeBuilderImages/Thumbs.db
+	$(MINJS) $(JAVASCRIPTS)/jquery.tools.js > debian/chef-server-webui/usr/share/$(JAVASCRIPTS)/jquery.tools.min.js
+	$(MINJS) $(JAVASCRIPTS)/jquery.jeditable.js > debian/chef-server-webui/usr/share/$(JAVASCRIPTS)/jquery.jeditable.mini.js
+	$(MINJS) $(JAVASCRIPTS)/yetii.js > debian/chef-server-webui/usr/share/$(JAVASCRIPTS)/yetii-min.js
+	find debian/chef-server-webui -type f -perm +755 -exec chmod 644 {} \;
+	dh_installinit --name=chef-server-webui -- defaults 95 02
+
 clean::
 	$(CHEF_INSTALL_SETUP_CMD)
 	(cd chef && /usr/bin/ruby $(DEB_RUBY_SETUP_CMD) distclean)

Added: trunk/chef/debian/shef.8
===================================================================
--- trunk/chef/debian/shef.8	                        (rev 0)
+++ trunk/chef/debian/shef.8	2010-05-23 06:22:18 UTC (rev 5392)
@@ -0,0 +1,45 @@
+.TH SHEF: "8" "March 2010" "Chef: 0.8.4" "System Administration Utilities"
+.SH NAME
+shef: \- Run Chef in an IRB session.
+.SH SYNOPSIS
+.B shef
+\fI(options)\fR
+.SH DESCRIPTION
+.TP
+This manual page documents shef, a command-line REPL console used to run Chef in an IRB session. It includes recipe and attribute file syntax, and interactive debugging features.
+\fB\-S\fR, \fB\-\-server\fR CHEFSERVERURL
+The chef server URL
+.TP
+\fB\-z\fR, \fB\-\-client\fR
+chef\-client shef session
+.TP
+\fB\-c\fR, \fB\-\-config\fR CONFIG
+The configuration file to use
+.TP
+\fB\-j\fR JSON_ATTRIBS
+Load attributes from a JSON file or URL
+.HP
+\fB\-\-json\-attributes\fR
+.TP
+\fB\-s\fR, \fB\-\-solo\fR
+chef\-solo shef session
+.TP
+\fB\-a\fR, \fB\-\-standalone\fR
+standalone shef session
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Show chef version
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Show this message
+.SH "SEE ALSO"
+The full documentation for
+.B shef
+is maintained on the Chef wiki, http://wiki.opscode.com/display/chef/Shef/.
+.SH AUTHOR
+Shef was written by Daniel DeLeo <dan at kallistec.com> as part of Chef, by Opscode, Inc.
+This manual page was written by Joshua Timberman <joshua at opscode.com> with help2man. Permission is granted
+to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+.PP
+On Debian systems, the complete text of the Apache 2.0 License can be found in
+/usr/share/common-licenses/Apache-2.0.

Modified: trunk/chef/debian/watch
===================================================================
--- trunk/chef/debian/watch	2010-05-21 11:32:27 UTC (rev 5391)
+++ trunk/chef/debian/watch	2010-05-23 06:22:18 UTC (rev 5392)
@@ -1,2 +1,2 @@
 version=3
-http://githubredir.debian.net/github/opscode/chef .*/(\d.*).tar.gz
+http://githubredir.debian.net/github/opscode/chef /([0..9].*).tar.gz debian debian/repack.sh




More information about the Pkg-ruby-extras-commits mailing list