summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /app-admin/salt
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'app-admin/salt')
-rw-r--r--app-admin/salt/Manifest5
-rw-r--r--app-admin/salt/files/api-confd-15
-rw-r--r--app-admin/salt/files/api-initd-314
-rw-r--r--app-admin/salt/files/api-initd-415
-rw-r--r--app-admin/salt/files/master-confd-15
-rw-r--r--app-admin/salt/files/master-initd-314
-rw-r--r--app-admin/salt/files/master-initd-415
-rw-r--r--app-admin/salt/files/minion-confd-15
-rw-r--r--app-admin/salt/files/minion-initd-315
-rw-r--r--app-admin/salt/files/minion-initd-416
-rw-r--r--app-admin/salt/files/salt-2014.7.0-remove-pydsl-includes-test.patch104
-rw-r--r--app-admin/salt/files/salt-2014.7.1-remove-pydsl-includes-test.patch104
-rw-r--r--app-admin/salt/files/salt-2014.7.5-archive-test.patch15
-rw-r--r--app-admin/salt/files/salt-2015.5.0-archive-test.patch15
-rw-r--r--app-admin/salt/files/salt-2015.5.1-skip-libvirt-test-on-nonroot.patch20
-rw-r--r--app-admin/salt/files/salt-api.service10
-rw-r--r--app-admin/salt/files/salt-master.service10
-rw-r--r--app-admin/salt/files/salt-minion.service10
-rw-r--r--app-admin/salt/files/salt-syndic.service10
-rw-r--r--app-admin/salt/files/syndic-confd-15
-rw-r--r--app-admin/salt/files/syndic-initd-314
-rw-r--r--app-admin/salt/files/syndic-initd-415
-rw-r--r--app-admin/salt/metadata.xml43
-rw-r--r--app-admin/salt/salt-2014.7.4.ebuild108
-rw-r--r--app-admin/salt/salt-2014.7.5.ebuild109
-rw-r--r--app-admin/salt/salt-2015.5.1.ebuild117
-rw-r--r--app-admin/salt/salt-2015.5.3.ebuild116
-rw-r--r--app-admin/salt/salt-9999.ebuild104
28 files changed, 1038 insertions, 0 deletions
diff --git a/app-admin/salt/Manifest b/app-admin/salt/Manifest
new file mode 100644
index 000000000000..baf548fc0313
--- /dev/null
+++ b/app-admin/salt/Manifest
@@ -0,0 +1,5 @@
+DIST salt-2014.7.4.tar.gz 3833928 SHA256 0adf4c138ebd26745b1d1157be0772d89da3582fe8a6622a8031cbe32a28e9f3 SHA512 8cbb9b26472b8980c36f0394a79bf872fd68a62bc886ba2a7fa35720db0a01c3a026e63c839a5c0dddc328c9555fa87aff4cfd71e3faaf01d6c1db01ae5bed64 WHIRLPOOL 1234c14e5fbb552cabb827d416e5ccbaccf9df03bac1ea72f32eeac33dc06d6afe0af0e83bff1682fbec0a52558a43945fccca8a9b08ace28c42a6c2c2016f01
+DIST salt-2014.7.5.tar.gz 3845643 SHA256 474d0a23866e42c664f46e04bc8ead87fc57ee16ff2cc8945248f1e0706f6eb8 SHA512 60e64db5125eb3c6f44cccf906ff0e8916cdcb31970e000785a81cf6ae95b38c681088f2fb3964fabc16667a26403ae30cb84cea3493d837d0b57aa86e771160 WHIRLPOOL b3600c1824cd49983cfe73567ec4a3861bdec88c5cc725ae8159e917e5074ade32aee29eafe5ec78fe4c87f2effc0f5f49627772e12468eb3a050b9395a45374
+DIST salt-2015.5.1.tar.gz 4970135 SHA256 0edb1d0584f53e805ad6ffc21c163a637b23d187052ba2dbb7e641c2d7099c4d SHA512 0de9b3391f33940e230b21841dca05943edcf7a890c0cae8efdd39bcbaf46c27f71cefaf73861dc5b59b567c40c2f0cada04ccedc73cffd905a449795b2f8ecb WHIRLPOOL 4aaa899fa6fd13b60daba7bbef692db24020ffc54e03e4c5d194e32aaa1580430a5fc7bb70f0b87e1ed2710428ed9aa8e729fa4e1144fb42754c740e3e45405e
+DIST salt-2015.5.3.tar.gz 5389038 SHA256 f8b04dc8bd4b00ce803d31ce5fba033c2f20fa38cdc5a3bf54b4c47362fbe853 SHA512 61203cb9b82fe8ab84fa36d06f442aebcf5c5decfacb99f8df6b52320979699d168f9df7e9e675a13a8078feabbe9210a40e526627a213239760ea43d85f1298 WHIRLPOOL 160455263ee1a95faec1f03dfcd16f9b811e5ecb961a2db5c9545070ed74786c83592e008c1ed70a6ea358ba2491128d6081d57bf7c0a679bb99abb1555bbd21
+DIST salt-vim-20141109.tar.gz 3783 SHA256 4989d111ad618ea3f5f7a7046a0ff6ce3ca6bc7f71fca90849f7c38947ab6d9a SHA512 d8d62ee827012e29586cf492f2881ee5870ed058828102f985e8b27300c115e01bb126f89decb15a19a8e206dc54c89856d4c31b3ff5320a36385cb5ed517a63 WHIRLPOOL 98026b2cdcb64665790475e3b20a7de294e5cefb390b414294756cad440bc040d9044ffd37a13f3c93af9be1a1bfd444710ff0df24895db624f49fddd16b5545
diff --git a/app-admin/salt/files/api-confd-1 b/app-admin/salt/files/api-confd-1
new file mode 100644
index 000000000000..c70e8e766da0
--- /dev/null
+++ b/app-admin/salt/files/api-confd-1
@@ -0,0 +1,5 @@
+# /etc/conf.d/salt-master: config file for /etc/init.d/salt-master
+
+# see man pages for salt-minion or run `salt-master --help`
+# for valid cmdline options
+SALT_OPTS="--log-level=warning"
diff --git a/app-admin/salt/files/api-initd-3 b/app-admin/salt/files/api-initd-3
new file mode 100644
index 000000000000..e5be2c3d83d8
--- /dev/null
+++ b/app-admin/salt/files/api-initd-3
@@ -0,0 +1,14 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+command="/usr/bin/salt-api"
+command_args="${SALT_OPTS}"
+command_background="1"
+pidfile="/var/run/salt-api.pid"
+name="SALT API daemon"
+
+depend() {
+ use net logger
+}
diff --git a/app-admin/salt/files/api-initd-4 b/app-admin/salt/files/api-initd-4
new file mode 100644
index 000000000000..e69acdf86b9b
--- /dev/null
+++ b/app-admin/salt/files/api-initd-4
@@ -0,0 +1,15 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+command="/usr/bin/salt-api"
+command_args="${SALT_OPTS}"
+command_background="1"
+pidfile="/var/run/salt-api.pid"
+name="SALT API daemon"
+retry="20"
+
+depend() {
+ use net logger
+}
diff --git a/app-admin/salt/files/master-confd-1 b/app-admin/salt/files/master-confd-1
new file mode 100644
index 000000000000..c70e8e766da0
--- /dev/null
+++ b/app-admin/salt/files/master-confd-1
@@ -0,0 +1,5 @@
+# /etc/conf.d/salt-master: config file for /etc/init.d/salt-master
+
+# see man pages for salt-minion or run `salt-master --help`
+# for valid cmdline options
+SALT_OPTS="--log-level=warning"
diff --git a/app-admin/salt/files/master-initd-3 b/app-admin/salt/files/master-initd-3
new file mode 100644
index 000000000000..ecaa29f5779b
--- /dev/null
+++ b/app-admin/salt/files/master-initd-3
@@ -0,0 +1,14 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+command="/usr/bin/salt-master"
+command_args="${SALT_OPTS}"
+command_background="1"
+pidfile="/var/run/salt-master.pid"
+name="SALT master daemon"
+
+depend() {
+ use net logger
+}
diff --git a/app-admin/salt/files/master-initd-4 b/app-admin/salt/files/master-initd-4
new file mode 100644
index 000000000000..dc4962809e02
--- /dev/null
+++ b/app-admin/salt/files/master-initd-4
@@ -0,0 +1,15 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+command="/usr/bin/salt-master"
+command_args="${SALT_OPTS}"
+command_background="1"
+pidfile="/var/run/salt-master.pid"
+name="SALT master daemon"
+retry="20"
+
+depend() {
+ use net logger
+}
diff --git a/app-admin/salt/files/minion-confd-1 b/app-admin/salt/files/minion-confd-1
new file mode 100644
index 000000000000..d69d83fcd60d
--- /dev/null
+++ b/app-admin/salt/files/minion-confd-1
@@ -0,0 +1,5 @@
+# /etc/conf.d/salt-minion: config file for /etc/init.d/salt-minion
+
+# see man pages for salt-minion or run `salt-minion --help`
+# for valid cmdline options
+SALT_OPTS="--log-level=warning"
diff --git a/app-admin/salt/files/minion-initd-3 b/app-admin/salt/files/minion-initd-3
new file mode 100644
index 000000000000..07842841a59a
--- /dev/null
+++ b/app-admin/salt/files/minion-initd-3
@@ -0,0 +1,15 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+command="/usr/bin/salt-minion"
+command_args="${SALT_OPTS}"
+command_background="1"
+pidfile="/var/run/salt-minion.pid"
+name="SALT minion daemon"
+
+depend() {
+ need net
+ use logger
+}
diff --git a/app-admin/salt/files/minion-initd-4 b/app-admin/salt/files/minion-initd-4
new file mode 100644
index 000000000000..350703a0b52b
--- /dev/null
+++ b/app-admin/salt/files/minion-initd-4
@@ -0,0 +1,16 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+command="/usr/bin/salt-minion"
+command_args="${SALT_OPTS}"
+command_background="1"
+pidfile="/var/run/salt-minion.pid"
+name="SALT minion daemon"
+retry="20"
+
+depend() {
+ need net
+ use logger
+}
diff --git a/app-admin/salt/files/salt-2014.7.0-remove-pydsl-includes-test.patch b/app-admin/salt/files/salt-2014.7.0-remove-pydsl-includes-test.patch
new file mode 100644
index 000000000000..0cf3efe8f347
--- /dev/null
+++ b/app-admin/salt/files/salt-2014.7.0-remove-pydsl-includes-test.patch
@@ -0,0 +1,104 @@
+diff --git a/tests/unit/pydsl_test.py b/tests/unit/pydsl_test.py
+index 59442bd..2c5d129 100644
+--- a/tests/unit/pydsl_test.py
++++ b/tests/unit/pydsl_test.py
+@@ -297,99 +297,6 @@ class PyDSLRendererTestCase(TestCase):
+ finally:
+ shutil.rmtree(dirpath, ignore_errors=True)
+
+- def test_rendering_includes(self):
+- dirpath = tempfile.mkdtemp(dir=integration.SYS_TMP_DIR)
+- if not os.path.isdir(dirpath):
+- self.skipTest(
+- 'The temporary directory {0!r} was not created'.format(
+- dirpath
+- )
+- )
+- output = os.path.join(dirpath, 'output')
+- try:
+- write_to(os.path.join(dirpath, 'aaa.sls'), textwrap.dedent('''\
+- #!pydsl|stateconf -ps
+-
+- include('xxx')
+- yyy = include('yyy')
+-
+- # ensure states in xxx are run first, then those in yyy and then those in aaa last.
+- extend(state('yyy::start').stateconf.require(stateconf='xxx::goal'))
+- extend(state('.start').stateconf.require(stateconf='yyy::goal'))
+-
+- extend(state('yyy::Y2').cmd.run('echo Y2 extended >> {0}'))
+-
+- __pydsl__.set(ordered=True)
+-
+- yyy.hello('red', 1)
+- yyy.hello('green', 2)
+- yyy.hello('blue', 3)
+- '''.format(output)))
+-
+- write_to(os.path.join(dirpath, 'xxx.sls'), textwrap.dedent('''\
+- #!stateconf -os yaml . jinja
+-
+- include:
+- - yyy
+-
+- extend:
+- yyy::start:
+- stateconf.set:
+- - require:
+- - stateconf: .goal
+-
+- yyy::Y1:
+- cmd.run:
+- - name: 'echo Y1 extended >> {0}'
+-
+- .X1:
+- cmd.run:
+- - name: echo X1 >> {1}
+- - cwd: /
+- .X2:
+- cmd.run:
+- - name: echo X2 >> {2}
+- - cwd: /
+- .X3:
+- cmd.run:
+- - name: echo X3 >> {3}
+- - cwd: /
+-
+- '''.format(output, output, output, output)))
+-
+- write_to(os.path.join(dirpath, 'yyy.sls'), textwrap.dedent('''\
+- #!pydsl|stateconf -ps
+-
+- include('xxx')
+- __pydsl__.set(ordered=True)
+-
+- state('.Y1').cmd.run('echo Y1 >> {0}', cwd='/')
+- state('.Y2').cmd.run('echo Y2 >> {1}', cwd='/')
+- state('.Y3').cmd.run('echo Y3 >> {2}', cwd='/')
+-
+- def hello(color, number):
+- state(color).cmd.run('echo hello '+color+' '+str(number)+' >> {3}', cwd='/')
+- '''.format(output, output, output, output)))
+-
+- state_highstate({'base': ['aaa']}, dirpath)
+- expected = textwrap.dedent('''\
+- X1
+- X2
+- X3
+- Y1 extended
+- Y2 extended
+- Y3
+- hello red 1
+- hello green 2
+- hello blue 3
+- ''')
+-
+- with open(output, 'r') as f:
+- self.assertEqual(sorted(f.read()), sorted(expected))
+-
+- finally:
+- shutil.rmtree(dirpath, ignore_errors=True)
+-
+ def test_compile_time_state_execution(self):
+ if not sys.stdin.isatty():
+ self.skipTest('Not attached to a TTY')
diff --git a/app-admin/salt/files/salt-2014.7.1-remove-pydsl-includes-test.patch b/app-admin/salt/files/salt-2014.7.1-remove-pydsl-includes-test.patch
new file mode 100644
index 000000000000..7c33c12f5c71
--- /dev/null
+++ b/app-admin/salt/files/salt-2014.7.1-remove-pydsl-includes-test.patch
@@ -0,0 +1,104 @@
+diff --git a/tests/unit/pydsl_test.py b/tests/unit/pydsl_test.py
+index 57ba81e..b26154e 100644
+--- a/tests/unit/pydsl_test.py
++++ b/tests/unit/pydsl_test.py
+@@ -298,99 +298,6 @@ class PyDSLRendererTestCase(TestCase):
+ finally:
+ shutil.rmtree(dirpath, ignore_errors=True)
+
+- def test_rendering_includes(self):
+- dirpath = tempfile.mkdtemp(dir=integration.SYS_TMP_DIR)
+- if not os.path.isdir(dirpath):
+- self.skipTest(
+- 'The temporary directory {0!r} was not created'.format(
+- dirpath
+- )
+- )
+- output = os.path.join(dirpath, 'output')
+- try:
+- write_to(os.path.join(dirpath, 'aaa.sls'), textwrap.dedent('''\
+- #!pydsl|stateconf -ps
+-
+- include('xxx')
+- yyy = include('yyy')
+-
+- # ensure states in xxx are run first, then those in yyy and then those in aaa last.
+- extend(state('yyy::start').stateconf.require(stateconf='xxx::goal'))
+- extend(state('.start').stateconf.require(stateconf='yyy::goal'))
+-
+- extend(state('yyy::Y2').cmd.run('echo Y2 extended >> {0}'))
+-
+- __pydsl__.set(ordered=True)
+-
+- yyy.hello('red', 1)
+- yyy.hello('green', 2)
+- yyy.hello('blue', 3)
+- '''.format(output)))
+-
+- write_to(os.path.join(dirpath, 'xxx.sls'), textwrap.dedent('''\
+- #!stateconf -os yaml . jinja
+-
+- include:
+- - yyy
+-
+- extend:
+- yyy::start:
+- stateconf.set:
+- - require:
+- - stateconf: .goal
+-
+- yyy::Y1:
+- cmd.run:
+- - name: 'echo Y1 extended >> {0}'
+-
+- .X1:
+- cmd.run:
+- - name: echo X1 >> {1}
+- - cwd: /
+- .X2:
+- cmd.run:
+- - name: echo X2 >> {2}
+- - cwd: /
+- .X3:
+- cmd.run:
+- - name: echo X3 >> {3}
+- - cwd: /
+-
+- '''.format(output, output, output, output)))
+-
+- write_to(os.path.join(dirpath, 'yyy.sls'), textwrap.dedent('''\
+- #!pydsl|stateconf -ps
+-
+- include('xxx')
+- __pydsl__.set(ordered=True)
+-
+- state('.Y1').cmd.run('echo Y1 >> {0}', cwd='/')
+- state('.Y2').cmd.run('echo Y2 >> {1}', cwd='/')
+- state('.Y3').cmd.run('echo Y3 >> {2}', cwd='/')
+-
+- def hello(color, number):
+- state(color).cmd.run('echo hello '+color+' '+str(number)+' >> {3}', cwd='/')
+- '''.format(output, output, output, output)))
+-
+- state_highstate({'base': ['aaa']}, dirpath)
+- expected = textwrap.dedent('''\
+- X1
+- X2
+- X3
+- Y1 extended
+- Y2 extended
+- Y3
+- hello red 1
+- hello green 2
+- hello blue 3
+- ''')
+-
+- with salt.utils.fopen(output, 'r') as f:
+- self.assertEqual(sorted(f.read()), sorted(expected))
+-
+- finally:
+- shutil.rmtree(dirpath, ignore_errors=True)
+-
+ def test_compile_time_state_execution(self):
+ if not sys.stdin.isatty():
+ self.skipTest('Not attached to a TTY')
diff --git a/app-admin/salt/files/salt-2014.7.5-archive-test.patch b/app-admin/salt/files/salt-2014.7.5-archive-test.patch
new file mode 100644
index 000000000000..f7ff561efd62
--- /dev/null
+++ b/app-admin/salt/files/salt-2014.7.5-archive-test.patch
@@ -0,0 +1,15 @@
+diff --git a/tests/unit/states/archive_test.py b/tests/unit/states/archive_test.py
+index a7f3005..bb0bc45 100644
+--- a/tests/unit/states/archive_test.py
++++ b/tests/unit/states/archive_test.py
+@@ -78,9 +78,7 @@ class ArchiveTest(TestCase):
+ running_as = 'root'
+ filename = os.path.join(
+ tmp_dir,
+- 'files/test/_tmp{0}_test_archive.tar'.format(
+- '' if running_as == 'root' else '_{0}'.format(running_as)
+- )
++ 'files/test/_tmp_test_archive.tar'
+ )
+ for test_opts, ret_opts in zip(test_tar_opts, ret_tar_opts):
+ ret = archive.extracted(tmp_dir,
diff --git a/app-admin/salt/files/salt-2015.5.0-archive-test.patch b/app-admin/salt/files/salt-2015.5.0-archive-test.patch
new file mode 100644
index 000000000000..c47422326974
--- /dev/null
+++ b/app-admin/salt/files/salt-2015.5.0-archive-test.patch
@@ -0,0 +1,15 @@
+diff --git a/tests/unit/states/archive_test.py b/tests/unit/states/archive_test.py
+index 588ec1a..acd53fa 100644
+--- a/tests/unit/states/archive_test.py
++++ b/tests/unit/states/archive_test.py
+@@ -78,9 +78,7 @@ class ArchiveTest(TestCase):
+ running_as = 'root'
+ filename = os.path.join(
+ tmp_dir,
+- 'files/test/_tmp{0}_test_archive_.tar'.format(
+- '' if running_as == 'root' else '_{0}'.format(running_as)
+- )
++ 'files/test/_tmp_test_archive_.tar'
+ )
+ for test_opts, ret_opts in zip(test_tar_opts, ret_tar_opts):
+ ret = archive.extracted(tmp_dir,
diff --git a/app-admin/salt/files/salt-2015.5.1-skip-libvirt-test-on-nonroot.patch b/app-admin/salt/files/salt-2015.5.1-skip-libvirt-test-on-nonroot.patch
new file mode 100644
index 000000000000..acb8a091ac48
--- /dev/null
+++ b/app-admin/salt/files/salt-2015.5.1-skip-libvirt-test-on-nonroot.patch
@@ -0,0 +1,20 @@
+diff --git a/tests/unit/states/libvirt_test.py b/tests/unit/states/libvirt_test.py
+index ec09542..477e5c3 100644
+--- a/tests/unit/states/libvirt_test.py
++++ b/tests/unit/states/libvirt_test.py
+@@ -4,6 +4,7 @@
+ '''
+ # Import Python libs
+ from __future__ import absolute_import
++import os
+
+ # Import Salt Testing Libs
+ from salttesting import skipIf, TestCase
+@@ -27,6 +28,7 @@ libvirt.__opts__ = {}
+
+
+ @skipIf(NO_MOCK, NO_MOCK_REASON)
++@skipIf(os.geteuid() != 0, 'You must be logged in as root to run this test')
+ class LibvirtTestCase(TestCase):
+ '''
+ Test cases for salt.states.libvirt
diff --git a/app-admin/salt/files/salt-api.service b/app-admin/salt/files/salt-api.service
new file mode 100644
index 000000000000..fd9f665fff09
--- /dev/null
+++ b/app-admin/salt/files/salt-api.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=The Salt Master Server
+After=syslog.target network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/salt-api
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-admin/salt/files/salt-master.service b/app-admin/salt/files/salt-master.service
new file mode 100644
index 000000000000..4f3827ede6df
--- /dev/null
+++ b/app-admin/salt/files/salt-master.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=The Salt Master Server
+After=syslog.target network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/salt-master
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-admin/salt/files/salt-minion.service b/app-admin/salt/files/salt-minion.service
new file mode 100644
index 000000000000..2f199f998eca
--- /dev/null
+++ b/app-admin/salt/files/salt-minion.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=The Salt Minion
+After=syslog.target network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/salt-minion
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-admin/salt/files/salt-syndic.service b/app-admin/salt/files/salt-syndic.service
new file mode 100644
index 000000000000..922eef35af8b
--- /dev/null
+++ b/app-admin/salt/files/salt-syndic.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=The Salt Master Server
+After=syslog.target network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/salt-syndic
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-admin/salt/files/syndic-confd-1 b/app-admin/salt/files/syndic-confd-1
new file mode 100644
index 000000000000..d69d83fcd60d
--- /dev/null
+++ b/app-admin/salt/files/syndic-confd-1
@@ -0,0 +1,5 @@
+# /etc/conf.d/salt-minion: config file for /etc/init.d/salt-minion
+
+# see man pages for salt-minion or run `salt-minion --help`
+# for valid cmdline options
+SALT_OPTS="--log-level=warning"
diff --git a/app-admin/salt/files/syndic-initd-3 b/app-admin/salt/files/syndic-initd-3
new file mode 100644
index 000000000000..532be92c50f8
--- /dev/null
+++ b/app-admin/salt/files/syndic-initd-3
@@ -0,0 +1,14 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+command="/usr/bin/salt-syndic"
+command_args="${SALT_OPTS}"
+command_background="1"
+pidfile="/var/run/salt-syndic.pid"
+name="SALT syndic daemon"
+
+depend() {
+ use net logger
+}
diff --git a/app-admin/salt/files/syndic-initd-4 b/app-admin/salt/files/syndic-initd-4
new file mode 100644
index 000000000000..65916b4b42c2
--- /dev/null
+++ b/app-admin/salt/files/syndic-initd-4
@@ -0,0 +1,15 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+command="/usr/bin/salt-syndic"
+command_args="${SALT_OPTS}"
+command_background="1"
+pidfile="/var/run/salt-syndic.pid"
+name="SALT syndic daemon"
+retry="20"
+
+depend() {
+ use net logger
+}
diff --git a/app-admin/salt/metadata.xml b/app-admin/salt/metadata.xml
new file mode 100644
index 000000000000..7b86f458a6ae
--- /dev/null
+++ b/app-admin/salt/metadata.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <longdescription lang="en">
+Salt is a powerful remote execution manager that can be used to administer
+servers in a fast and efficient way.
+
+Salt allows commands to be executed across large groups of servers. This means
+systems can be easily managed, but data can also be easily gathered. Quick
+introspection into running systems becomes a reality.
+
+Remote execution is usually used to set up a certain state on a remote system.
+Salt addresses this problem as well, the salt state system uses salt state
+files to define the state a server needs to be in.
+
+Between the remote execution system, and state management Salt addresses the
+backbone of cloud and data center management.
+</longdescription>
+ <use>
+ <flag name="api">Enable support for salt-api.</flag>
+ <flag name="cherrypy">Enable support for using cherrypy.</flag>
+ <flag name="libcloud">Enable salt-cloud support via libcloud.</flag>
+ <flag name="libvirt">Support managing virtual machines with app-emulation/libvirt.</flag>
+ <flag name="gnupg">Enable support for gnupg via python-gnupg.</flag>
+ <flag name="keyring">Enable support for keyrings via python-keyring.</flag>
+ <flag name="mako">Add support for using the mako template engine for parsing salt states.</flag>
+ <flag name="mongodb">Support returning data to a mongodb server.</flag>
+ <flag name="neutron">Support the OpenStack neutron network service.</flag>
+ <flag name="nova">Enable support for the OpenStack Nova API</flag>
+ <flag name="openssl">Add support for using TLS via OpenSSL.</flag>
+ <flag name="raet">Add support for the new RAET transport.</flag>
+ <flag name="redis">Support returning data to a redis database.</flag>
+ <flag name="timelib">Use timelib to parse english textual date descriptions.</flag>
+ <flag name="zeromq">Add support for the zeromq transport.</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">salt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-admin/salt/salt-2014.7.4.ebuild b/app-admin/salt/salt-2014.7.4.ebuild
new file mode 100644
index 000000000000..385fe0fcec7b
--- /dev/null
+++ b/app-admin/salt/salt-2014.7.4.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+
+inherit eutils distutils-r1 systemd
+
+DESCRIPTION="Salt is a remote execution and configuration manager"
+HOMEPAGE="http://saltstack.org/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://github.com/${PN}stack/${PN}.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="api ldap libcloud libvirt gnupg keyring mako mongodb mysql nova"
+IUSE+=" openssl redis selinux timelib raet +zeromq test"
+
+RDEPEND="sys-apps/pciutils
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.3[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/markupsafe[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ libcloud? ( >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}] )
+ mako? ( dev-python/mako[${PYTHON_USEDEP}] )
+ ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )
+ openssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )
+ libvirt? ( dev-python/libvirt-python[${PYTHON_USEDEP}] )
+ raet? (
+ dev-python/libnacl[${PYTHON_USEDEP}]
+ dev-python/ioflo[${PYTHON_USEDEP}]
+ dev-python/raet[${PYTHON_USEDEP}]
+ )
+ zeromq? (
+ >=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/m2crypto-0.22.3[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+ api? (
+ || (
+ dev-python/cherrypy[${PYTHON_USEDEP}]
+ www-servers/tornado[${PYTHON_USEDEP}]
+ )
+ )
+ mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
+ keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
+ mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
+ selinux? ( sec-policy/selinux-salt )
+ timelib? ( dev-python/timelib[${PYTHON_USEDEP}] )
+ nova? ( >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] )
+ gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/timelib[${PYTHON_USEDEP}]
+ >=dev-python/SaltTesting-2015.2.16[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )"
+
+DOCS=(README.rst AUTHORS)
+
+REQUIRED_USE="|| ( raet zeromq )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2014.7.1-remove-pydsl-includes-test.patch"
+)
+
+python_prepare() {
+ # this test fails because it trys to "pip install distribute"
+ rm tests/unit/{modules,states}/zcbuildout_test.py
+}
+
+python_install_all() {
+ USE_SETUPTOOLS=1 distutils-r1_python_install_all
+
+ for s in minion master syndic $(use api && echo api); do
+ newinitd "${FILESDIR}"/${s}-initd-3 salt-${s}
+ newconfd "${FILESDIR}"/${s}-confd-1 salt-${s}
+ systemd_dounit "${FILESDIR}"/salt-${s}.service
+ done
+
+ insinto /etc/${PN}
+ doins -r conf/*
+}
+
+python_test() {
+ # testsuite likes lots of files
+ ulimit -n 3072
+
+ # using ${T} for the TMPDIR makes some tests needs paths that exceed PATH_MAX
+ USE_SETUPTOOLS=1 SHELL="/bin/bash" TMPDIR="/tmp" \
+ ${EPYTHON} tests/runtests.py \
+ --unit-tests --no-report --verbose || die "testing failed"
+}
diff --git a/app-admin/salt/salt-2014.7.5.ebuild b/app-admin/salt/salt-2014.7.5.ebuild
new file mode 100644
index 000000000000..bfbff12057f2
--- /dev/null
+++ b/app-admin/salt/salt-2014.7.5.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+
+inherit eutils distutils-r1 systemd
+
+DESCRIPTION="Salt is a remote execution and configuration manager"
+HOMEPAGE="http://saltstack.org/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://github.com/${PN}stack/${PN}.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="api ldap libcloud libvirt gnupg keyring mako mongodb mysql nova"
+IUSE+=" openssl redis selinux timelib raet +zeromq test"
+
+RDEPEND="sys-apps/pciutils
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.3[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/markupsafe[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ libcloud? ( >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}] )
+ mako? ( dev-python/mako[${PYTHON_USEDEP}] )
+ ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )
+ openssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )
+ libvirt? ( dev-python/libvirt-python[${PYTHON_USEDEP}] )
+ raet? (
+ dev-python/libnacl[${PYTHON_USEDEP}]
+ dev-python/ioflo[${PYTHON_USEDEP}]
+ dev-python/raet[${PYTHON_USEDEP}]
+ )
+ zeromq? (
+ >=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/m2crypto-0.22.3[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+ api? (
+ || (
+ dev-python/cherrypy[${PYTHON_USEDEP}]
+ www-servers/tornado[${PYTHON_USEDEP}]
+ )
+ )
+ mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
+ keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
+ mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
+ selinux? ( sec-policy/selinux-salt )
+ timelib? ( dev-python/timelib[${PYTHON_USEDEP}] )
+ nova? ( >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] )
+ gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/timelib[${PYTHON_USEDEP}]
+ >=dev-python/SaltTesting-2015.2.16[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )"
+
+DOCS=(README.rst AUTHORS)
+
+REQUIRED_USE="|| ( raet zeromq )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2014.7.1-remove-pydsl-includes-test.patch"
+ "${FILESDIR}/${PN}-2014.7.5-archive-test.patch"
+)
+
+python_prepare() {
+ # this test fails because it trys to "pip install distribute"
+ rm tests/unit/{modules,states}/zcbuildout_test.py
+}
+
+python_install_all() {
+ USE_SETUPTOOLS=1 distutils-r1_python_install_all
+
+ for s in minion master syndic $(use api && echo api); do
+ newinitd "${FILESDIR}"/${s}-initd-3 salt-${s}
+ newconfd "${FILESDIR}"/${s}-confd-1 salt-${s}
+ systemd_dounit "${FILESDIR}"/salt-${s}.service
+ done
+
+ insinto /etc/${PN}
+ doins -r conf/*
+}
+
+python_test() {
+ # testsuite likes lots of files
+ ulimit -n 3072
+
+ # using ${T} for the TMPDIR makes some tests needs paths that exceed PATH_MAX
+ USE_SETUPTOOLS=1 SHELL="/bin/bash" TMPDIR="/tmp" \
+ ${EPYTHON} tests/runtests.py \
+ --unit-tests --no-report --verbose || die "testing failed"
+}
diff --git a/app-admin/salt/salt-2015.5.1.ebuild b/app-admin/salt/salt-2015.5.1.ebuild
new file mode 100644
index 000000000000..33404a8d1129
--- /dev/null
+++ b/app-admin/salt/salt-2015.5.1.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+
+inherit eutils systemd vim-plugin distutils-r1
+
+DESCRIPTION="Salt is a remote execution and configuration manager"
+HOMEPAGE="http://saltstack.org/"
+SALT_VIM_HASH="20695f68e5895e5ae2b5884b78f5a2cd29897b05"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://github.com/${PN}stack/${PN}.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+SRC_URI+=" vim-syntax? ( https://github.com/${PN}stack/${PN}-vim/archive/${SALT_VIM_HASH}.tar.gz -> salt-vim-20141109.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="cherrypy ldap libcloud libvirt gnupg keyring mako mongodb mysql neutron nova"
+IUSE+=" openssl redis selinux test timelib raet +zeromq vim-syntax"
+
+RDEPEND="sys-apps/pciutils
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.3[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/markupsafe[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.0[${PYTHON_USEDEP}]
+ libcloud? ( >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}] )
+ mako? ( dev-python/mako[${PYTHON_USEDEP}] )
+ ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )
+ openssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )
+ libvirt? ( dev-python/libvirt-python[${PYTHON_USEDEP}] )
+ raet? (
+ >=dev-python/libnacl-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/ioflo-1.1.7[${PYTHON_USEDEP}]
+ >=dev-python/raet-0.6.0[${PYTHON_USEDEP}]
+ )
+ zeromq? (
+ >=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/m2crypto-0.22.3[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+ cherrypy? ( >=dev-python/cherrypy-3.2.2[${PYTHON_USEDEP}] )
+ mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
+ keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
+ mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
+ selinux? ( sec-policy/selinux-salt )
+ timelib? ( dev-python/timelib[${PYTHON_USEDEP}] )
+ nova? ( >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] )
+ neutron? ( >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}] )
+ gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/timelib[${PYTHON_USEDEP}]
+ >=dev-python/boto-2.32.1[${PYTHON_USEDEP}]
+ >=dev-python/moto-0.3.6[${PYTHON_USEDEP}]
+ >=dev-python/SaltTesting-2015.2.16[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )"
+
+DOCS=(README.rst AUTHORS)
+
+REQUIRED_USE="|| ( raet zeromq )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2014.7.1-remove-pydsl-includes-test.patch"
+ "${FILESDIR}/${PN}-2015.5.0-archive-test.patch"
+ "${FILESDIR}/${PN}-2015.5.1-skip-libvirt-test-on-nonroot.patch"
+)
+
+python_prepare() {
+ # this test fails because it trys to "pip install distribute"
+ rm tests/unit/{modules,states}/zcbuildout_test.py tests/unit/modules/{rh_ip,win_network}_test.py
+}
+
+python_install_all() {
+ local svc
+ USE_SETUPTOOLS=1 distutils-r1_python_install_all
+
+ for svc in minion master syndic api; do
+ newinitd "${FILESDIR}"/${svc}-initd-4 salt-${svc}
+ newconfd "${FILESDIR}"/${svc}-confd-1 salt-${svc}
+ systemd_dounit "${FILESDIR}"/salt-${svc}.service
+ done
+
+ insinto /etc/${PN}
+ doins -r conf/*
+
+ use vim-syntax && S="${WORKDIR}/salt-vim-${SALT_VIM_HASH}" \
+ vim-plugin_src_install
+}
+
+python_test() {
+ # testsuite likes lots of files
+ ulimit -n 3072
+
+ # using ${T} for the TMPDIR makes some tests needs paths that exceed PATH_MAX
+ USE_SETUPTOOLS=1 SHELL="/bin/bash" TMPDIR="/tmp" \
+ ${EPYTHON} tests/runtests.py \
+ --unit-tests --no-report --verbose || die "testing failed"
+}
diff --git a/app-admin/salt/salt-2015.5.3.ebuild b/app-admin/salt/salt-2015.5.3.ebuild
new file mode 100644
index 000000000000..5f23c6bb1c04
--- /dev/null
+++ b/app-admin/salt/salt-2015.5.3.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+
+inherit eutils systemd vim-plugin distutils-r1
+
+DESCRIPTION="Salt is a remote execution and configuration manager"
+HOMEPAGE="http://saltstack.org/"
+SALT_VIM_HASH="20695f68e5895e5ae2b5884b78f5a2cd29897b05"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://github.com/${PN}stack/${PN}.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+SRC_URI+=" vim-syntax? ( https://github.com/${PN}stack/${PN}-vim/archive/${SALT_VIM_HASH}.tar.gz -> salt-vim-20141109.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="cherrypy ldap libcloud libvirt gnupg keyring mako mongodb mysql neutron nova"
+IUSE+=" openssl redis selinux test timelib raet +zeromq vim-syntax"
+
+RDEPEND="sys-apps/pciutils
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.3[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/markupsafe[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.0[${PYTHON_USEDEP}]
+ libcloud? ( >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}] )
+ mako? ( dev-python/mako[${PYTHON_USEDEP}] )
+ ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )
+ openssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )
+ libvirt? ( dev-python/libvirt-python[${PYTHON_USEDEP}] )
+ raet? (
+ >=dev-python/libnacl-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/ioflo-1.1.7[${PYTHON_USEDEP}]
+ >=dev-python/raet-0.6.0[${PYTHON_USEDEP}]
+ )
+ zeromq? (
+ >=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/m2crypto-0.22.3[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+ cherrypy? ( >=dev-python/cherrypy-3.2.2[${PYTHON_USEDEP}] )
+ mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
+ keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
+ mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
+ selinux? ( sec-policy/selinux-salt )
+ timelib? ( dev-python/timelib[${PYTHON_USEDEP}] )
+ nova? ( >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] )
+ neutron? ( >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}] )
+ gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/timelib[${PYTHON_USEDEP}]
+ >=dev-python/boto-2.32.1[${PYTHON_USEDEP}]
+ >=dev-python/moto-0.3.6[${PYTHON_USEDEP}]
+ >=dev-python/SaltTesting-2015.2.16[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )"
+
+DOCS=(README.rst AUTHORS)
+
+REQUIRED_USE="|| ( raet zeromq )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2014.7.1-remove-pydsl-includes-test.patch"
+ "${FILESDIR}/${PN}-2015.5.0-archive-test.patch"
+)
+
+python_prepare() {
+ # this test fails because it trys to "pip install distribute"
+ rm tests/unit/{modules,states}/zcbuildout_test.py tests/unit/modules/{rh_ip,win_network}_test.py
+}
+
+python_install_all() {
+ local svc
+ USE_SETUPTOOLS=1 distutils-r1_python_install_all
+
+ for svc in minion master syndic api; do
+ newinitd "${FILESDIR}"/${svc}-initd-4 salt-${svc}
+ newconfd "${FILESDIR}"/${svc}-confd-1 salt-${svc}
+ systemd_dounit "${FILESDIR}"/salt-${svc}.service
+ done
+
+ insinto /etc/${PN}
+ doins -r conf/*
+
+ use vim-syntax && S="${WORKDIR}/salt-vim-${SALT_VIM_HASH}" \
+ vim-plugin_src_install
+}
+
+python_test() {
+ # testsuite likes lots of files
+ ulimit -n 3072
+
+ # using ${T} for the TMPDIR makes some tests needs paths that exceed PATH_MAX
+ USE_SETUPTOOLS=1 SHELL="/bin/bash" TMPDIR="/tmp" \
+ ${EPYTHON} tests/runtests.py \
+ --unit-tests --no-report --verbose || die "testing failed"
+}
diff --git a/app-admin/salt/salt-9999.ebuild b/app-admin/salt/salt-9999.ebuild
new file mode 100644
index 000000000000..d7d1937a474c
--- /dev/null
+++ b/app-admin/salt/salt-9999.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+
+inherit eutils distutils-r1 systemd
+
+DESCRIPTION="Salt is a remote execution and configuration manager"
+HOMEPAGE="http://saltstack.org/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://github.com/${PN}stack/${PN}.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="api ldap libcloud libvirt gnupg keyring mako mongodb mysql nova"
+IUSE+=" openssl redis selinux timelib raet +zeromq test"
+
+RDEPEND="sys-apps/pciutils
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.3[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/markupsafe[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ libcloud? ( >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}] )
+ mako? ( dev-python/mako[${PYTHON_USEDEP}] )
+ ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )
+ openssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )
+ libvirt? ( dev-python/libvirt-python[${PYTHON_USEDEP}] )
+ raet? (
+ dev-python/libnacl[${PYTHON_USEDEP}]
+ dev-python/ioflo[${PYTHON_USEDEP}]
+ dev-python/raet[${PYTHON_USEDEP}]
+ )
+ zeromq? (
+ >=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/m2crypto-0.22.3[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+ api? (
+ || (
+ dev-python/cherrypy[${PYTHON_USEDEP}]
+ www-servers/tornado[${PYTHON_USEDEP}]
+ )
+ )
+ mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
+ keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
+ mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
+ selinux? ( sec-policy/selinux-salt )
+ timelib? ( dev-python/timelib[${PYTHON_USEDEP}] )
+ nova? ( >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] )
+ gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/timelib[${PYTHON_USEDEP}]
+ >=dev-python/SaltTesting-2015.2.16[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )"
+
+DOCS=(README.rst AUTHORS)
+
+REQUIRED_USE="|| ( raet zeromq )"
+
+python_prepare() {
+ # this test fails because it trys to "pip install distribute"
+ rm tests/unit/{modules,states}/zcbuildout_test.py
+}
+
+python_install_all() {
+ USE_SETUPTOOLS=1 distutils-r1_python_install_all
+
+ for s in minion master syndic $(use api && echo api); do
+ newinitd "${FILESDIR}"/${s}-initd-3 salt-${s}
+ newconfd "${FILESDIR}"/${s}-confd-1 salt-${s}
+ systemd_dounit "${FILESDIR}"/salt-${s}.service
+ done
+
+ insinto /etc/${PN}
+ doins -r conf/*
+}
+
+python_test() {
+ # testsuite likes lots of files
+ ulimit -n 3072
+
+ # using ${T} for the TMPDIR makes some tests needs paths that exceed PATH_MAX
+ USE_SETUPTOOLS=1 SHELL="/bin/bash" TMPDIR="/tmp" \
+ ${EPYTHON} tests/runtests.py \
+ --unit-tests --no-report --verbose || die "testing failed"
+}