Merge pull request #1230 from uggedal/develop

Make onlyif and unless run with the same settings as the cmd itself.
updated salt.spec to use 0.9.9.1
adding /etc/salt template files to setup.py so they get packaged
First take at jail management module for FreeBSD
Merge pull request #1233 from herlo/master

Updated salt.spec to latest release
If no jail name specified act on all
Missing brackets
Changed tabs to whitespaces
Display specified jail's configuration
Merge remote-tracking branch 'upstream/develop' into develop
Use FreeBSD's kenv(1) command for _hw_data and _virtual
Merge pull request #1235 from therek/develop

Develop
Add the ability to specify the shell to use.
Merge branch 'develop' of https://github.com/saltstack/salt into etcpkg
undoing previous changes to setup.py; will handle this in the spec file instead
Print a message to the console or /tmp when sent a SIGUSR1

This will print a stacktrace of the currently running code when any
of the salt-minion or salt-master processes are sent a SIGUSR1 signal.
This is for seeing what's going on and to help with debugging.

Minion example:
======== Salt Debug Stack Trace =========
  File "/home/jeff/git/salt/scripts/salt-minion", line 18, in <module>
    main()
  File "/home/jeff/git/salt/scripts/salt-minion", line 15, in main
    minion.start()
  File "/home/jeff/git/salt/salt/__init__.py", line 202, in start
    minion.tune_in()
  File "/home/jeff/git/salt/salt/minion.py", line 510, in tune_in
    time.sleep(0.05)
=========================================

Master watchdog process example:
======== Salt Debug Stack Trace =========
  File "/home/jeff/git/salt/scripts/salt-master", line 17, in <module>
    main()
  File "/home/jeff/git/salt/scripts/salt-master", line 14, in main
    master.start()
  File "/home/jeff/git/salt/salt/__init__.py", line 110, in start
    master.start()
  File "/home/jeff/git/salt/salt/master.py", line 192, in start
    reqserv.run()
  File "/home/jeff/git/salt/salt/master.py", line 304, in run
    self.__bind()
  File "/home/jeff/git/salt/salt/master.py", line 286, in __bind
    zmq.device(zmq.QUEUE, self.clients, self.workers)
=========================================

Master worker example:
======== Salt Debug Stack Trace =========
  File "/home/jeff/git/salt/scripts/salt-master", line 17, in <module>
    main()
  File "/home/jeff/git/salt/scripts/salt-master", line 14, in main
    master.start()
  File "/home/jeff/git/salt/salt/__init__.py", line 110, in start
    master.start()
  File "/home/jeff/git/salt/salt/master.py", line 158, in start
    clear_old_jobs_proc.start()
  File "/usr/lib/python2.6/multiprocessing/process.py", line 104, in start
    self._popen = Popen(self)
  File "/usr/lib/python2.6/multiprocessing/forking.py", line 99, in __init__
    code = process_obj._bootstrap()
  File "/usr/lib/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "/home/jeff/git/salt/salt/master.py", line 145, in _clear_old_jobs
    time.sleep(60)
=========================================

I'm sure there are places missed as this needs a *lot* more testing,
but for the moment, it "works for me TM"
Remove a few instances of hardcoded /tmp in code

tempfile.gettempdir() is way better. The gem and rvm states are
still failing, but only because they require the "mock" python
module for running their tests.
Properly use os.path.join in some integration tests
DRY with the grains integration tests
Cleaning up the publish module integration tests a bit