diff --git a/salt-2014.7.0.tar.gz b/salt-2014.7.0.tar.gz deleted file mode 100644 index e192b34..0000000 --- a/salt-2014.7.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d4a64436636a5e6839c1ae1d16052d2e965b9aed5c3c58735bd89fddb9a0ed5c -size 3518342 diff --git a/salt-2014.7.1.tar.gz b/salt-2014.7.1.tar.gz new file mode 100644 index 0000000..cff242d --- /dev/null +++ b/salt-2014.7.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbb292ec9bd77fce0965bfaf429021916edbee83f6544c0216738d8653fff10a +size 3583585 diff --git a/salt.changes b/salt.changes index 0c918aa..783835a 100644 --- a/salt.changes +++ b/salt.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Thu Jan 15 17:50:52 UTC 2015 - aboe76@gmail.com + +- New Bugfix release 2014.7.1: ++ Fixed gitfs serving symlinks in file.recurse states (issue 17700) ++ Fixed holding of multiple packages (YUM) when combined with version pinning (issue 18468) ++ Fixed use of Jinja templates in masterless mode with non-roots fileserver backend (issue 17963) ++ Re-enabled pillar and compound matching for mine and publish calls. Note that pillar globbing is still disabled for those modes, for security reasons. (issue 17194) ++ Fix for tty: True in salt-ssh (issue 16847) +- Needed to provide zsh completion because of the tarball missing the zsh completion script. +- Removed man salt.1.gz file from salt-master because upstream removed it. +- Added man salt.7.gz to salt-master package + ------------------------------------------------------------------- Mon Nov 3 21:35:31 UTC 2014 - aboe76@gmail.com diff --git a/salt.spec b/salt.spec index 13e3266..3e6f4b7 100644 --- a/salt.spec +++ b/salt.spec @@ -16,7 +16,7 @@ # Name: salt -Version: 2014.7.0 +Version: 2014.7.1 Release: 0 Summary: A parallel remote execution system License: Apache-2.0 @@ -24,6 +24,9 @@ Group: System/Monitoring Url: http://saltstack.org/ Source0: http://pypi.python.org/packages/source/s/%{name}/%{name}-%{version}.tar.gz +# FIX_UPSTREAM_TARBALL no zsh completion +Source1: zsh_completion.zsh + # PATCH-FIX-OPENSUSE use-forking-daemon.patch tserong@suse.com -- We don't have python-systemd, so notify can't work Patch1: use-forking-daemon.patch @@ -322,7 +325,8 @@ install -Dpm 0644 pkg/suse/salt.SuSEfirewall2 %{buildroot}%{_sysconfdir}/syscon ## install completion scripts %if %with_bashcomp install -Dpm 0644 pkg/salt.bash %{buildroot}/etc/bash_completion.d/%{name} -install -Dpm 0644 scripts/completion/zsh_completion.zsh %{buildroot}/etc/zsh_completion.d/%{name} +#install -Dpm 0644 scripts/completion/zsh_completion.zsh #%%{buildroot}/etc/zsh_completion.d/#%%{name} +install -Dpm 0644 %{SOURCE1} %{buildroot}/etc/zsh_completion.d/%{name} %endif #with_bashcomp #%%check @@ -500,10 +504,10 @@ install -Dpm 0644 scripts/completion/zsh_completion.zsh %{buildroot}/etc/zsh_com %{_bindir}/salt-key %{_bindir}/salt-run %{_mandir}/man1/salt-master.1.gz -%{_mandir}/man1/salt.1.gz %{_mandir}/man1/salt-cp.1.gz %{_mandir}/man1/salt-key.1.gz %{_mandir}/man1/salt-run.1.gz +%{_mandir}/man7/salt.7.gz %config(noreplace) %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/salt %attr(0644, root, root) %config(noreplace) %{_sysconfdir}/salt/master %attr(0644, root, root) %config(noreplace) %{_sysconfdir}/salt/roster @@ -529,7 +533,6 @@ install -Dpm 0644 scripts/completion/zsh_completion.zsh %{buildroot}/etc/zsh_com %{_bindir}/salt-unity %{_mandir}/man1/salt-unity.1.gz %{_mandir}/man1/salt-call.1.gz -%{_mandir}/man7/salt.7.gz %config(noreplace) %{_sysconfdir}/logrotate.d/salt %attr(755,root,root)%{python_sitelib}/salt/cloud/deploy/*.sh %{python_sitelib}/* diff --git a/use-forking-daemon.patch b/use-forking-daemon.patch index cc435aa..bcbde0a 100644 --- a/use-forking-daemon.patch +++ b/use-forking-daemon.patch @@ -1,7 +1,7 @@ -Index: salt-2014.1.8/pkg/salt-master.service +Index: salt-2014.7.1/pkg/salt-master.service =================================================================== ---- salt-2014.1.13.orig/pkg/salt-master.service -+++ salt-2014.1.13/pkg/salt-master.service +--- salt-2014.7.1.orig/pkg/salt-master.service ++++ salt-2014.7.1/pkg/salt-master.service @@ -3,8 +3,10 @@ Description=The Salt Master Server After=syslog.target network.target diff --git a/zsh_completion.zsh b/zsh_completion.zsh new file mode 100644 index 0000000..203de64 --- /dev/null +++ b/zsh_completion.zsh @@ -0,0 +1,122 @@ +#compdef salt salt-call salt-cp + +local state line curcontext="$curcontext" + +salt_dir="${$(python2 -c 'import salt; print(salt.__file__);')%__init__*}" +_modules(){ + typeset -a _funcs + for file in $salt_dir/modules/*${words[CURRENT]%.*}*.py; do + module=${${file##*/}%.py} + if ! grep '__virtual__' $file &> /dev/null; then + continue + fi + mod=$(python2 -c "import salt.modules.$module as tmp; print(getattr(tmp, '__virtualname__', '$module'));") + for func in $(awk -F'[ (]' '/^def [^_]/ {print $2}' $file); do + _funcs+=($mod.$func) + done + done + _describe modules _funcs +} + +_minions(){ + _peons=($(salt-key 2>/dev/null | tail -n +2)) + _describe Minions _peons +} + +_target_options=( + '(-E --pcre)'{-E,--pcre}'[use pcre regular expressions]:pcre:' + '(-L --list)'{-L,--list}'[take a comma or space delimited list of servers.]:list:' + '(-G --grain)'{-G,--grain}'[use a grain value to identify targets]:Grains:' + '--grain-pcre[use a grain value to identify targets.]:pcre:' + '(-N --nodegroup)'{-N,--nodegroup}'[use one of the predefined nodegroups to identify a list of targets.]:Nodegroup:' + '(-R --range)'{-R,--range}'[use a range expression to identify targets.]:Range:' + '(-C --compound)'{-C,--compound}'[Use multiple targeting options.]:Compound:' + '(-I --pillar)'{-I,--pillar}'[use a pillar value to identify targets.]:Pillar:' + '(-S --ipcidr)'{-S,--ipcidr}'[Match based on Subnet (CIDR notation) or IPv4 address.]:Cidr:' +) + +_common_opts=( + "--version[show program's version number and exit]" + "--versions-report[show program's dependencies version number and exit]" + '(-h --help)'{-h,--help}'[show this help message and exit]' + '(-c --config-dir)'{-c,--config-dir}'[Pass in an alternative configuration directory.(default: /etc/salt/)]:Config Directory:_files -/' + '(-t --timeout)'{-t,--timeout}'[Change the timeout for the running command; default=5]:Timeout (seconds):' +) + +_master_options=( + '(-s --static)'{-s,--static}'[Return the data from minions as a group after they all return.]' + "--async[Run the salt command but don't wait for a reply]" + '(--state-output --state_output)'{--state-output,--state_output}'[Override the configured state_output value for minion output. Default: full]:Outputs:(full terse mixed changes)' + '--subset[Execute the routine on a random subset of the targeted minions]:Subset:' + '(-v --verbose)'{-v,--verbose}'[Turn on command verbosity, display jid and active job queries]' + '--hide-timeout[Hide minions that timeout]' + '(-b --batch --batch-size)'{-b,--batch,--batch-size}'[Execute the salt job in batch mode, pass number or percentage to batch.]:Batch Size:' + '(-a --auth --eauth --extrenal-auth)'{-a,--auth,--eauth,--external-auth}'[Specify an external authentication system to use.]:eauth:' + '(-T --make-token)'{-T,--make-token}'[Generate and save an authentication token for re-use.]' + "--return[Set an alternative return method.]:Returners:_path_files -W '$salt_dir/returners' -g '[^_]*.py(\:r)'" + '(-d --doc --documentation)'{-d,--doc,--documentation}"[Return the documentation for the specified module]:Module:_path_files -W '$salt_dir/modules' -g '[^_]*.py(\:r)'" + '--args-separator[Set the special argument used as a delimiter between command arguments of compound commands.]:Arg separator:' +) + +_minion_options=( + "--return[Set an alternative return method.]:Returners:_path_files -W '$salt_dir/returners' -g '[^_]*.py(\:r)'" + '(-d --doc --documentation)'{-d,--doc,--documentation}"[Return the documentation for the specified module]:Module:_path_files -W '$salt_dir/modules' -g '[^_]*.py(\:r)'" + '(-g --grains)'{-g,--grains}'[Return the information generated by the salt grains]' + {*-m,*--module-dirs}'[Specify an additional directory to pull modules from.]:Module Dirs:_files -/' + '--master[Specify the master to use.]:Master:' + '--local[Run salt-call locally, as if there was no master running.]' + '--file-root[Set this directory as the base file root.]:File Root:_files -/' + '--pillar-root[Set this directory as the base pillar root.]:Pillar Root:_files -/' + '--retcode-passthrough[Exit with the salt call retcode and not the salt binary retcode]' + '--id[Specify the minion id to use.]:Minion ID:' + '--skip-grains[Do not load grains.]' + '--refresh-grains-cache[Force a refresh of the grains cache]' +) + +_logging_options=( + '(-l --log-level)'{-l,--log-level}'[Console logging log level.(default: warning)]:Log Level:(all garbage trace debug info warning error critical quiet)' + '--log-file[Log file path. Default: /var/log/salt/master.]:Log File:_files' + '--log-file-level=[Logfile logging log level.Default: warning]:Log Level:(all garbage trace debug info warning error critical quiet)' +) + +_out_opts=( + '(--out --output)'{--out,--output}"[Print the output using the specified outputter.]:Outputters:_path_files -W '$salt_dir/output' -g '[^_]*.py(\:r)'" + '(--out-indent --output-indent)'{--out-indent,--output-indent}'[Print the output indented by the provided value in spaces.]:Number:' + '(--out-file --output-file)'{--out-file,--output-file}'[Write the output to the specified file]:Output File:_files' + '(--no-color --no-colour)'{--no-color,--no-colour}'[Disable all colored output]' + '(--force-color --force-colour)'{--force-color,--force-colour}'[Force colored output]' +) + +_salt_comp(){ + case "$service" in + salt) + _arguments -C \ + ':minions:_minions' \ + ':modules:_modules' \ + "$_target_options[@]" \ + "$_common_opts[@]" \ + "$_master_options[@]" \ + "$_logging_options[@]" \ + "$_out_opts[@]" + ;; + salt-call) + _arguments -C \ + ':modules:_modules' \ + "$_minion_options[@]" \ + "$_common_opts[@]" \ + "$_logging_options[@]" \ + "$_out_opts[@]" + ;; + salt-cp) + _arguments -C \ + ':minions:_minions' \ + "$_target_options[@]" \ + "$_common_opts[@]" \ + "$_logging_options[@]" \ + ':Source File:_files' \ + ':Destination File:_files' + ;; + esac +} + +_salt_comp "$@"