[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