Seeing if we can get pkgng to work with salt
adding /etc/salt template files to setup.py so they get packaged
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"
Add shell selection to cmd.run.wait
Add shell checking to cmdmod since shell can be defined.
Remove redundant checking (DRY)
Make the errors return the right way.
Add a no replace option for file.managed state
Fix changing error into string.
Remove env from wait.
Add a grain to provide the shell

I'm not sure how this would end up working on Windows.
Check for transparent objects in file finder, fix # 1236
Fix #1238
Merge pull request #1241 from SEJeff/handle-sigusr1

Print a message to the console or /tmp when sent a SIGUSR1
Merge pull request #1243 from jhutchins/choose_shell

Choose shell
cast to a string
Merge pull request #1247 from jhutchins/1242

Add a no replace option for file.managed state