Merge and update to 3005.4-1

i9ce changed/i9ce/salt-3005.4-1.el9
MSVSphere Packaging Team 1 year ago
commit df1660029c

2
.gitignore vendored

@ -1 +1 @@
SOURCES/salt-3005.1.tar.gz SOURCES/salt-3005.4.tar.gz

@ -1 +1 @@
b7359edf8db1e01ce4fb7708e9bb6af0578f4ebd SOURCES/salt-3005.1.tar.gz 44052c1fca6076a85221816f38a85e14605ea0af SOURCES/salt-3005.4.tar.gz

@ -0,0 +1,20 @@
--- salt-3005/requirements/base.txt.fix 2022-08-25 17:13:58.740984435 -0600
+++ salt-3005/requirements/base.txt 2022-08-25 17:14:14.428036445 -0600
@@ -4,5 +4,4 @@ PyYAML
MarkupSafe
requests>=1.0.0
distro>=1.0.1
-contextvars
psutil>=5.0.0
--- salt-3005.2/requirements/zeromq.txt~ 2023-08-03 12:27:49.000000000 -0500
+++ salt-3005.2/requirements/zeromq.txt 2023-09-05 15:00:22.172125782 -0500
@@ -1,8 +1,4 @@
-r base.txt
-r crypto.txt
-pyzmq<=20.0.0; python_version < "3.6"
-pyzmq>=20.0.0; python_version >= "3.6"
-# We can't use 23+ on Windows until they fix this:
-# https://github.com/zeromq/pyzmq/issues/1472
-pyzmq>=20.0.0,<=22.0.3 ; sys_platform == "win32"
+pyzmq>=20.0.0

@ -1,2 +1,154 @@
#!/bin/bash #!/bin/sh
exec /opt/saltstack/salt/run/run api "${@:1}" #
# Salt API
###################################
# LSB header
### BEGIN INIT INFO
# Provides: salt-api
# Required-Start: $local_fs $remote_fs $network $named $time
# Should-Start: $time ypbind smtp
# Required-Stop: $local_fs $remote_fs $network $named $time
# Should-Stop: ypbind smtp
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Salt API control daemon
# Description: This is a daemon that controls the Salt API.
### END INIT INFO
# chkconfig header
# chkconfig: 345 99 99
# description: This is a daemon that controls the Salt API.
#
# processname: /usr/bin/salt-api
if [ -f /etc/default/salt ]; then
. /etc/default/salt
else
SALTAPI=/usr/bin/salt-api
PYTHON=/usr/bin/python
fi
# Sanity checks.
[ -x $SALTAPI ] || exit 0
DEBIAN_VERSION=/etc/debian_version
SUSE_RELEASE=/etc/SuSE-release
# Source function library.
if [ -f $DEBIAN_VERSION ]; then
break
elif [ -f $SUSE_RELEASE -a -r /etc/rc.status ]; then
. /etc/rc.status
else
. /etc/rc.d/init.d/functions
fi
SERVICE=salt-api
PROCESS=salt-api
CONFIG_ARGS="-d"
PID_FILE="/var/run/salt-api.pid"
RETVAL=0
start() {
echo -n $"Starting salt-api daemon: "
if [ -f $SUSE_RELEASE ]; then
startproc -f -p /var/run/$SERVICE.pid $SALTAPI $CONFIG_ARGS
rc_status -v
elif [ -e $DEBIAN_VERSION ]; then
if [ -f $LOCKFILE ]; then
echo -n "already started, lock file found"
RETVAL=1
elif $PYTHON $SALTAPI; then
echo -n "OK"
RETVAL=0
fi
else
if status $PROCESS &> /dev/null; then
failure "Already running."
RETVAL=1
else
daemon --pidfile=$PID_FILE --check $SERVICE $SALTAPI $CONFIG_ARGS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SERVICE
echo
return $RETVAL
fi
fi
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping salt-api daemon: "
if [ -f $SUSE_RELEASE ]; then
killproc -TERM $SALTAPI
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
# Added this since Debian's start-stop-daemon doesn't support spawned processes
if ps -ef | grep "$PYTHON $SALTAPI" | grep -v grep | awk '{print $2}' | xargs kill &> /dev/null; then
echo -n "OK"
RETVAL=0
else
echo -n "Daemon is not started"
RETVAL=1
fi
else
killproc -d 10 $PROCESS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$SERVICE
return $RETVAL
fi
RETVAL=$?
echo
return $RETVAL
}
restart() {
stop
start
}
# See how we were called.
case "$1" in
start|stop|restart)
$1
;;
status)
if [ -f $SUSE_RELEASE ]; then
echo -n "Checking for service salt-api "
checkproc $SALTAPI
rc_status -v
RETVAL=$?
elif [ -f $DEBIAN_VERSION ]; then
if [ -f $LOCKFILE ]; then
RETVAL=0
echo "salt-api is running."
else
RETVAL=1
echo "salt-api is stopped."
fi
else
status $PROCESS
RETVAL=$?
fi
;;
condrestart|try-restart)
[ -f $LOCKFILE ] && restart || :
;;
reload)
echo "can't reload configuration, you have to restart it"
RETVAL=1
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload}"
exit 1
;;
esac
exit $RETVAL

@ -1,6 +1,6 @@
[Unit] [Unit]
Description=The Salt API Description=The Salt API
Documentation=man:salt-api(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltstack.com/en/latest/contents.html Documentation=man:salt-api(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html
After=network.target After=network.target
[Service] [Service]

@ -21,3 +21,27 @@
compress compress
notifempty notifempty
} }
/var/log/salt/api {
weekly
missingok
rotate 7
compress
notifempty
}
/var/log/salt/syndic {
weekly
missingok
rotate 7
compress
notifempty
}
/var/log/salt/proxy {
weekly
missingok
rotate 7
compress
notifempty
}

@ -1,7 +1,142 @@
#!/bin/bash #!/bin/sh
if [[ -z "${SSL_CERT_DIR}" ]] && command -v openssl &> /dev/null; then #
_DIR=$(openssl version -d) # Salt master
export SSL_CERT_DIR=${_DIR:13:-1}"/certs" ###################################
export SSL_CERT_FILE=${_DIR:13:-1}"/cert.pem"
# LSB header
### BEGIN INIT INFO
# Provides: salt-master
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Salt master control daemon
# Description: This is a daemon that controls the Salt minions.
### END INIT INFO
# chkconfig header
# chkconfig: 345 96 05
# description: This is a daemon that controls the Salt minions
#
# processname: /usr/bin/salt-master
DEBIAN_VERSION=/etc/debian_version
SUSE_RELEASE=/etc/SuSE-release
# Source function library.
if [ -f $DEBIAN_VERSION ]; then
break
elif [ -f $SUSE_RELEASE -a -r /etc/rc.status ]; then
. /etc/rc.status
else
. /etc/rc.d/init.d/functions
fi fi
exec /opt/saltstack/salt/run/run master "${@:1}"
# Default values (can be overridden below)
SALTMASTER=/usr/bin/salt-master
PYTHON=/usr/bin/python
MASTER_ARGS=""
if [ -f /etc/default/salt ]; then
. /etc/default/salt
fi
SERVICE=salt-master
PROCESS=salt-master
RETVAL=0
start() {
echo -n $"Starting salt-master daemon: "
if [ -f $SUSE_RELEASE ]; then
startproc -f -p /var/run/$SERVICE.pid $SALTMASTER -d $MASTER_ARGS
rc_status -v
elif [ -e $DEBIAN_VERSION ]; then
if [ -f $LOCKFILE ]; then
echo -n "already started, lock file found"
RETVAL=1
elif $PYTHON $SALTMASTER -d $MASTER_ARGS >& /dev/null; then
echo -n "OK"
RETVAL=0
fi
else
daemon --check $SERVICE $SALTMASTER -d $MASTER_ARGS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SERVICE
echo
return $RETVAL
fi
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping salt-master daemon: "
if [ -f $SUSE_RELEASE ]; then
killproc -TERM $SALTMASTER
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
# Added this since Debian's start-stop-daemon doesn't support spawned processes
if ps -ef | grep "$PYTHON $SALTMASTER" | grep -v grep | awk '{print $2}' | xargs kill &> /dev/null; then
echo -n "OK"
RETVAL=0
else
echo -n "Daemon is not started"
RETVAL=1
fi
else
killproc -d 10 $PROCESS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$SERVICE
return $RETVAL
fi
RETVAL=$?
echo
}
restart() {
stop
start
}
# See how we were called.
case "$1" in
start|stop|restart)
$1
;;
status)
if [ -f $SUSE_RELEASE ]; then
echo -n "Checking for service salt-master "
checkproc $SALTMASTER
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
if [ -f $LOCKFILE ]; then
RETVAL=0
echo "salt-master is running."
else
RETVAL=1
echo "salt-master is stopped."
fi
else
status $PROCESS
RETVAL=$?
fi
;;
condrestart)
[ -f $LOCKFILE ] && restart || :
;;
reload)
echo "can't reload configuration, you have to restart it"
RETVAL=1
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
exit 1
;;
esac
exit $RETVAL

@ -3,3 +3,4 @@
# hack to load functions from salt_common completion # hack to load functions from salt_common completion
complete --do-complete='salt_common --' >/dev/null complete --do-complete='salt_common --' >/dev/null

@ -1,6 +1,6 @@
[Unit] [Unit]
Description=The Salt Master Server Description=The Salt Master Server
Documentation=man:salt-master(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltstack.com/en/latest/contents.html Documentation=man:salt-master(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html
After=network.target After=network.target
[Service] [Service]

@ -1,7 +1,323 @@
#!/bin/bash #!/bin/sh
if [[ -z "${SSL_CERT_DIR}" ]] && command -v openssl &> /dev/null; then #
_DIR=$(openssl version -d) # Salt minion
export SSL_CERT_DIR=${_DIR:13:-1}"/certs" ###################################
export SSL_CERT_FILE=${_DIR:13:-1}"/cert.pem"
# LSB header
### BEGIN INIT INFO
# Provides: salt-minion
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Salt minion daemon
# Description: This is the Salt minion daemon that can be controlled by the
# Salt master.
### END INIT INFO
# chkconfig header
# chkconfig: 345 97 04
# description: This is the Salt minion daemon that can be controlled by the Salt master.
#
# processname: /usr/bin/salt-minion
# Allow these to be overridden for tests
: "${SALTMINION_BINDIR:=/usr/bin}"
: "${SALTMINION_SYSCONFDIR:=/etc}"
# Default values (can be overridden in settings file)
: "${USER:=$(id -nu)}"
SALTMINION="${SALTMINION_BINDIR}/salt-minion"
SALTCALL="${SALTMINION_BINDIR}/salt-call"
# SALTMINION_CONFIGS are newline-separated entries of: MINION_USER CONFIG_DIR
: "${SALTMINION_CONFIGS:="
$USER ${SALTMINION_SYSCONFDIR}/salt
"}"
SALTMINION_ARGS=""
SALTMINION_TIMEOUT=30
SALTMINION_TICK=1
SERVICE="salt-minion"
# Read in settings file
if [ -f "${SALTMINION_SYSCONFDIR}/default/salt" ]; then
. "${SALTMINION_SYSCONFDIR}/default/salt"
elif [ -f "${SALTMINION_SYSCONFDIR}/sysconfig/salt" ]; then
. "${SALTMINION_SYSCONFDIR}/sysconfig/salt"
fi
RETVAL=0
NS_NOTRIM="--notrim"
ERROR_TO_DEVNULL="/dev/null"
_su_cmd() {
local user="$1"
shift
if [ "X$USER" = "X$user" ]; then
eval $1
else
su -l -c "$1" "$user"
fi
}
_get_pid() {
cat $PID_FILE 2>/dev/null
}
_is_running() {
[ -n "$(_get_pid)" ] && ps wwwaxu | grep '[s]alt-minion' | awk '{print $2}' | grep -qi "\b$(_get_pid)\b"
}
_get_salt_config_value() {
_su_cmd \
"$MINION_USER" \
"\
\"$SALTCALL\" \
-c \"$CONFIG_DIR\" \
--no-color \
--skip-grains \
--local config.get \
\"$1\" \
" \
2>$ERROR_TO_DEVNULL \
| sed -r -e '2!d; s/^\s*//;'
}
_make_id_hash() {
# $1 - minion_id
local hasher=''
case "$(_get_salt_config_value hash_type)" in
(md5) hasher="md5sum";;
(sha1) hasher="sha1sum";;
(sha224) hasher="sha224sum";;
(sha256) hasher="sha256sum";;
(sha384) hasher="sha384sum";;
(sha512) hasher="sha512sum";;
(*) echo "ERROR: No salt hash_type specified";;
esac
if [ -n "$hasher" ]; then
printf "$1" | "$hasher" | cut -c 1-10
fi
}
start() {
# $1 - config dir
local retval=0
if _is_running; then
echo "Service $SERVICE:$MINION_USER:$MINION_ID already running"
return 0
fi
echo -n "Starting $SERVICE:$MINION_USER:$MINION_ID daemon: "
_su_cmd \
"$MINION_USER" \
"\
\"$SALTMINION\" \
-c \"$CONFIG_DIR\" \
-d $SALTMINION_ARGS \
${SALTMINION_DEBUG:+-l debug} \
" \
2>$ERROR_TO_DEVNULL \
|| retval=$?
if [ 0 -eq "$retval" ]; then
local endtime=$(($(date '+%s')+$SALTMINION_TIMEOUT))
while ! _is_running; do
if [ "$endtime" -lt "$(date '+%s')" ]; then
echo -n "TIMEOUT "
retval=1
break
fi
sleep $SALTMINION_TICK
done
fi
if [ 0 -eq "$retval" ]; then
echo -n "OK"
else
echo -n "FAIL"
if [ -n "$SALTMINION_DEBUG" ]; then
printf "\nPROCESSES:\n" >&2
ps wwwaxu | grep '[s]alt-minion' >&2
printf "\nSOCKETS:\n" >&2
netstat -n $NS_NOTRIM -ap --protocol=unix | grep 'salt.*minion' >&2
printf "\nLOG_FILE:\n" >&2
tail -n 20 "$LOG_FILE" >&2
printf "\nENVIRONMENT:\n" >&2
env >&2
fi
fi
echo
return $retval
}
stop() {
# $1 - config dir
local retval=0
if ! _is_running; then
echo "Service $SERVICE:$MINION_USER:$MINION_ID is not running"
return 0
fi
echo -n "Stopping $SERVICE:$MINION_USER:$MINION_ID daemon: "
local pid="$(_get_pid)"
# pid below is intentionally not quoted in case there are *multiple*
# minions running with the same configuration.
_su_cmd "$MINION_USER" "kill -TERM $pid 2>/dev/null" || retval=$?
if [ 0 -eq "$retval" ]; then
local endtime=$(($(date '+%s')+$SALTMINION_TIMEOUT))
while _is_running; do
if [ "$endtime" -lt "$(date '+%s')" ]; then
# Try one more time with a big hammer
_su_cmd "$MINION_USER" "kill -KILL $pid 2>/dev/null" || :
sleep $SALTMINION_TICK
if _is_running; then
echo -n "TIMEOUT "
retval=1
fi
break
fi
sleep 1
done
fi
if [ 0 -eq "$retval" ]; then
rm -f "$PID_FILE"
echo -n "OK"
else
echo -n "FAIL"
fi
echo
return $retval
}
status() {
local retval=0
local pid="$(_get_pid)"
if _is_running; then
# Unquote $pid here to display multiple PIDs in one line
echo "$SERVICE:$MINION_USER:$MINION_ID is running:" $pid
else
retval=3
echo "$SERVICE:$MINION_USER:$MINION_ID is stopped."
if [ -e "$PID_FILE" ]; then
echo "$SERVICE:$MINION_USER:$MINION_ID has orphaned pid file: $PID_FILE."
retval=1
fi
fi
return $retval
}
restart() {
# $1 - config dir
stop "$1"
start "$1"
}
main() {
if [ -n "$SALTMINION_DEBUG" ]; then
set -x
ERROR_TO_DEVNULL="&2"
fi
# Check to see if --notrim is a valid netstat option
if ! ( netstat --help 2>&1 | grep -wq '\-\-notrim') ; then
NS_NOTRIM=''
fi
# Pre-filter for unhandled commands
case "$1" in
(start|stop|status|restart|condrestart|try-restart) ;;
(reload)
echo "Can't reload $SERVICE - you must restart it"
exit 3
;;
(*)
echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload}"
exit 2
;;
esac
while read MINION_USER CONFIG_DIR; do
if [ -z "$CONFIG_DIR" ]; then
continue
fi
if ! [ -d "$CONFIG_DIR" ]; then
echo "ERROR: non-existent $SERVICE config directory: $CONFIG_DIR"
RETVAL=1
continue
fi
SOCK_DIR="$(_get_salt_config_value sock_dir)"
PID_FILE="$(_get_salt_config_value pidfile)"
LOG_FILE="$(_get_salt_config_value log_file)"
MINION_ID="$(_get_salt_config_value id)"
MINION_ID_HASH="$(_make_id_hash "$MINION_ID")"
if [ \
-z "$SOCK_DIR" \
-o -z "$PID_FILE" \
-o -z "$LOG_FILE" \
-o -z "$MINION_ID" \
-o -z "$MINION_ID_HASH" \
]; then
echo "ERROR: Unable to look-up config values for $CONFIG_DIR"
RETVAL=1
continue
fi
# See how we were called.
case "$1" in
(start|stop|restart|status)
"$1" || RETVAL=$?
;;
(condrestart|try-restart)
if ! _is_running; then
RETVAL=7
else
stop
start || RETVAL=$?
fi
;;
(*)
echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload}"
RETVAL=2
;;
esac
done <<EOF
$SALTMINION_CONFIGS
EOF
exit $RETVAL
}
if [ "$#" = 0 ]; then
main
else
main "$@"
fi fi
exec /opt/saltstack/salt/run/run minion "${@:1}"

@ -3,3 +3,4 @@
# hack to load functions from salt_common completion # hack to load functions from salt_common completion
complete --do-complete='salt_common --' >/dev/null complete --do-complete='salt_common --' >/dev/null

@ -1,6 +1,6 @@
[Unit] [Unit]
Description=The Salt Minion Description=The Salt Minion
Documentation=man:salt-minion(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltstack.com/en/latest/contents.html Documentation=man:salt-minion(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html
After=network.target salt-master.service After=network.target salt-master.service
[Service] [Service]

@ -1,6 +1,6 @@
[Unit] [Unit]
Description=salt-proxy service for %i Description=salt-proxy service for %i
Documentation=man:salt-proxy(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltstack.com/en/latest/contents.html Documentation=man:salt-proxy(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html
After=network.target After=network.target
[Service] [Service]

@ -0,0 +1,214 @@
diff -Naur a/salt/modules/rpmbuild_pkgbuild.py b/salt/modules/rpmbuild_pkgbuild.py
--- a/salt/modules/rpmbuild_pkgbuild.py 2019-07-02 10:15:07.035874718 -0600
+++ b/salt/modules/rpmbuild_pkgbuild.py 2019-07-02 10:55:34.147934899 -0600
@@ -140,7 +140,9 @@
tgtattrs = tgt.split('-')
if tgtattrs[0] == 'amzn':
distset = '--define "dist .{0}1"'.format(tgtattrs[0])
- elif tgtattrs[1] in ['6', '7']:
+ elif tgtattrs[0] == 'amzn2':
+ distset = '--define "dist .{0}"'.format(tgtattrs[0])
+ elif tgtattrs[1] in ['6', '7', '8']:
distset = '--define "dist .el{0}"'.format(tgtattrs[1])
else:
distset = ''
@@ -173,6 +175,19 @@
return deps_list
+def _check_repo_gpg_phrase_utils():
+ '''
+ Check for /usr/libexec/gpg-preset-passphrase is installed
+ '''
+ util_name = '/usr/libexec/gpg-preset-passphrase'
+ if __salt__['file.file_exists'](util_name):
+ return True
+ else:
+ raise CommandExecutionError(
+ 'utility \'{0}\' needs to be installed'.format(util_name)
+ )
+
+
def make_src_pkg(dest_dir, spec, sources, env=None, template=None, saltenv='base', runas='root'):
'''
Create a source rpm from the given spec file and sources
@@ -450,8 +465,14 @@
Use a passphrase with the signing key presented in ``keyid``.
Passphrase is received from Pillar data which could be passed on the
- command line with ``pillar`` parameter. For example:
+ command line with ``pillar`` parameter.
+ .. versionadded:: 2018.2.1
+
+ RHEL 8 and above leverages gpg-agent and gpg-preset-passphrase for
+ caching keys, etc.
+
+ For example:
.. code-block:: bash
pillar='{ "gpg_passphrase" : "my_passphrase" }'
@@ -485,10 +506,27 @@
'''
SIGN_PROMPT_RE = re.compile(r'Enter pass phrase: ', re.M)
- define_gpg_name = ''
+ local_keygrip_to_use = None
+ local_key_fingerprint = None
local_keyid = None
local_uids = None
+ define_gpg_name = ''
phrase = ''
+ retrc = 0
+ use_gpg_agent = False
+
+ res = {
+ 'retcode': 1,
+ 'stdout': '',
+ 'stderr': 'initialization value'
+ }
+
+ if gnupghome and env is None:
+ env = {}
+ env['GNUPGHOME'] = gnupghome
+
+ if __grains__.get('osmajorrelease') >= 7:
+ use_gpg_agent = True
if keyid is not None:
# import_keys
@@ -517,8 +555,29 @@
if keyid == gpg_key['keyid'][8:]:
local_uids = gpg_key['uids']
local_keyid = gpg_key['keyid']
+ if use_gpg_agent:
+ local_keygrip_to_use = gpg_key['fingerprint']
+ local_key_fingerprint = gpg_key['fingerprint']
break
+ if use_gpg_agent:
+ cmd = 'gpg --with-keygrip --list-secret-keys'
+ local_keys2_keygrip = __salt__['cmd.run'](cmd, runas=runas, env=env)
+ local_keys2 = iter(local_keys2_keygrip.splitlines())
+ try:
+ for line in local_keys2:
+ if line.startswith('sec'):
+ line_fingerprint = next(local_keys2).lstrip().rstrip()
+ if local_key_fingerprint == line_fingerprint:
+ lkeygrip = next(local_keys2).split('=')
+ local_keygrip_to_use = lkeygrip[1].lstrip().rstrip()
+ break
+ except StopIteration:
+ raise SaltInvocationError(
+ 'unable to find keygrip associated with fingerprint \'{0}\' for keyid \'{1}\''
+ .format(local_key_fingerprint, local_keyid)
+ )
+
if local_keyid is None:
raise SaltInvocationError(
'The key ID \'{0}\' was not found in GnuPG keyring at \'{1}\''
@@ -527,6 +586,15 @@
if use_passphrase:
phrase = __salt__['pillar.get']('gpg_passphrase')
+ if use_gpg_agent:
+ _check_repo_gpg_phrase_utils()
+ cmd = '/usr/libexec/gpg-preset-passphrase --verbose --preset --passphrase "{0}" {1}'.format(phrase, local_keygrip_to_use)
+ retrc = __salt__['cmd.retcode'](cmd, runas=runas, env=env)
+ if retrc != 0:
+ raise SaltInvocationError(
+ 'Failed to preset passphrase, error {1}, '
+ 'check logs for further details'.format(retrc)
+ )
if local_uids:
define_gpg_name = '--define=\'%_signature gpg\' --define=\'%_gpg_name {0}\''.format(
@@ -553,43 +621,54 @@
number_retries = timeout / interval
times_looped = 0
error_msg = 'Failed to sign file {0}'.format(abs_file)
- cmd = 'rpm {0} --addsign {1}'.format(define_gpg_name, abs_file)
- preexec_fn = functools.partial(salt.utils.user.chugid_and_umask, runas, None)
- try:
- stdout, stderr = None, None
- proc = salt.utils.vt.Terminal(
- cmd,
- shell=True,
- preexec_fn=preexec_fn,
- stream_stdout=True,
- stream_stderr=True
- )
- while proc.has_unread_data:
- stdout, stderr = proc.recv()
- if stdout and SIGN_PROMPT_RE.search(stdout):
- # have the prompt for inputting the passphrase
- proc.sendline(phrase)
- else:
- times_looped += 1
+ if use_gpg_agent:
+ cmd = 'rpmsign --verbose --key-id={0} --addsign {1}'.format(local_keyid, abs_file)
+ retrc |= __salt__['cmd.retcode'](cmd, runas=runas, cwd=repodir, use_vt=True, env=env)
+ if retrc != 0:
+ raise SaltInvocationError(
+ 'Signing encountered errors for command \'{0}\', '
+ 'return error {1}, check logs for further details'.format(
+ cmd,
+ retrc)
+ )
+ else:
+ cmd = 'rpm {0} --addsign {1}'.format(define_gpg_name, abs_file)
+ preexec_fn = functools.partial(salt.utils.user.chugid_and_umask, runas, None)
+ try:
+ stdout, stderr = None, None
+ proc = salt.utils.vt.Terminal(
+ cmd,
+ shell=True,
+ preexec_fn=preexec_fn,
+ stream_stdout=True,
+ stream_stderr=True
+ )
+ while proc.has_unread_data:
+ stdout, stderr = proc.recv()
+ if stdout and SIGN_PROMPT_RE.search(stdout):
+ # have the prompt for inputting the passphrase
+ proc.sendline(phrase)
+ else:
+ times_looped += 1
+
+ if times_looped > number_retries:
+ raise SaltInvocationError(
+ 'Attemping to sign file {0} failed, timed out after {1} seconds'
+ .format(abs_file, int(times_looped * interval))
+ )
+ time.sleep(interval)
- if times_looped > number_retries:
+ proc_exitstatus = proc.exitstatus
+ if proc_exitstatus != 0:
raise SaltInvocationError(
- 'Attemping to sign file {0} failed, timed out after {1} seconds'
- .format(abs_file, int(times_looped * interval))
+ 'Signing file {0} failed with proc.status {1}'
+ .format(abs_file, proc_exitstatus)
)
- time.sleep(interval)
-
- proc_exitstatus = proc.exitstatus
- if proc_exitstatus != 0:
- raise SaltInvocationError(
- 'Signing file {0} failed with proc.status {1}'
- .format(abs_file, proc_exitstatus)
- )
- except salt.utils.vt.TerminalException as err:
- trace = traceback.format_exc()
- log.error(error_msg, err, trace)
- finally:
- proc.close(terminate=True, kill=True)
+ except salt.utils.vt.TerminalException as err:
+ trace = traceback.format_exc()
+ log.error(error_msg, err, trace)
+ finally:
+ proc.close(terminate=True, kill=True)
cmd = 'createrepo --update {0}'.format(repodir)
return __salt__['cmd.run_all'](cmd, runas=runas)

@ -3,3 +3,4 @@
# hack to load functions from salt_common completion # hack to load functions from salt_common completion
complete --do-complete='salt_common --' >/dev/null complete --do-complete='salt_common --' >/dev/null

@ -1,2 +1,136 @@
#!/bin/bash #!/bin/sh
exec /opt/saltstack/salt/run/run syndic "${@:1}" #
# Salt syndic
###################################
# LSB header
### BEGIN INIT INFO
# Provides: salt-syndic
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Salt syndic master-minion passthrough daemon
# Description: This is a the Salt syndic daemon that enables Salt master-minion
# remote control passthrough.
### END INIT INFO
# chkconfig header
# chkconfig: - 99 99
# description: This is a the Salt syndic daemon that enables Salt master-minion remote control passthrough.
#
# processname: /usr/bin/salt-syndic
DEBIAN_VERSION=/etc/debian_version
SUSE_RELEASE=/etc/SuSE-release
# Source function library.
if [ -f $DEBIAN_VERSION ]; then
break
elif [ -f $SUSE_RELEASE -a -r /etc/rc.status ]; then
. /etc/rc.status
else
. /etc/rc.d/init.d/functions
fi
# Default values (can be overridden below)
SALTSYNDIC=/usr/bin/salt-syndic
PYTHON=/usr/bin/python
SYNDIC_ARGS=""
if [ -f /etc/default/salt ]; then
. /etc/default/salt
fi
SERVICE=salt-syndic
PROCESS=salt-syndic
RETVAL=0
start() {
echo -n $"Starting salt-syndic daemon: "
if [ -f $SUSE_RELEASE ]; then
startproc -f -p /var/run/$SERVICE.pid $SALTSYNDIC -d $SYNDIC_ARGS
rc_status -v
elif [ -e $DEBIAN_VERSION ]; then
if [ -f $LOCKFILE ]; then
echo -n "already started, lock file found"
RETVAL=1
elif $PYTHON $SALTSYNDIC -d $SYNDIC_ARGS >& /dev/null; then
echo -n "OK"
RETVAL=0
fi
else
daemon --check $SERVICE $SALTSYNDIC -d $SYNDIC_ARGS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SERVICE
echo
return $RETVAL
fi
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping salt-syndic daemon: "
if [ -f $SUSE_RELEASE ]; then
killproc -TERM $SALTSYNDIC
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
# Added this since Debian's start-stop-daemon doesn't support spawned processes
if ps -ef | grep "$PYTHON $SALTSYNDIC" | grep -v grep | awk '{print $2}' | xargs kill &> /dev/null; then
echo -n "OK"
RETVAL=0
else
echo -n "Daemon is not started"
RETVAL=1
fi
else
killproc -d 10 $PROCESS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$SERVICE
return $RETVAL
fi
RETVAL=$?
echo
}
restart() {
stop
start
}
# See how we were called.
case "$1" in
start|stop|restart)
$1
;;
status)
if [ -f $SUSE_RELEASE ]; then
echo -n "Checking for service salt-syndic "
checkproc $SALTSYNDIC
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
if [ -f $LOCKFILE ]; then
RETVAL=0
echo "salt-syndic is running."
else
RETVAL=1
echo "salt-syndic is stopped."
fi
else
status $PROCESS
RETVAL=$?
fi
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit $RETVAL

@ -3,3 +3,4 @@
# hack to load functions from salt_common completion # hack to load functions from salt_common completion
complete --do-complete='salt_common --' >/dev/null complete --do-complete='salt_common --' >/dev/null

@ -1,6 +1,6 @@
[Unit] [Unit]
Description=The Salt Master Server Description=The Salt Master Server
Documentation=man:salt-syndic(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltstack.com/en/latest/contents.html Documentation=man:salt-syndic(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html
After=network.target After=network.target
PartOf=salt-master.service PartOf=salt-master.service

@ -436,3 +436,4 @@ function __fish_salt_prefix_with_arg_name
tee tee
end end
end end

@ -1,66 +1,46 @@
%global __brp_check_rpaths %{nil} ## For Python 3 only
%bcond_with tests # Release Candidate
%bcond_with docs %global __rc_ver %{nil}
# Disable build-id symlinks %global fish_dir %{_datadir}/fish/vendor_functions.d
%define _build_id_links none %global zsh_dir %{_datadir}/zsh/site-functions
%undefine _missing_build_ids_terminate_build
# Disable private libraries from showing in provides # py3_shbang_flags is '-s' and causing issues with pip install.
%global __provides_exclude_from ^.*\\.so.*$ %global py3_shebang_flags %(echo %py3_shebang_flags | sed s/s//)
%global __requires_exclude_from ^.*\\.so.*$
# Disable python bytecompile for MANY reasons
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
%define fish_dir %{_datadir}/fish/vendor_functions.d
Name: salt Name: salt
Version: 3005.1 Version: 3005.4
Release: 4%{?dist} Release: 1%{?dist}
Summary: A parallel remote execution system Summary: A parallel remote execution system
Group: System Environment/Daemons Group: System Environment/Daemons
License: ASL 2.0 License: ASL 2.0
URL: http://saltstack.org/ URL: https://saltproject.io/
Source0: %{name}-%{version}.tar.gz Source0: %{pypi_source}
Source1: build.conf Source1: %{name}-proxy@.service
Source3: requirements.txt Source2: %{name}-master
Source5: %{name}-proxy@.service Source3: %{name}-syndic
Source4: %{name}-minion
Source5: %{name}-api
Source6: %{name}-master.service Source6: %{name}-master.service
Source7: %{name}-syndic.service Source7: %{name}-syndic.service
Source8: %{name}-minion.service Source8: %{name}-minion.service
Source9: %{name}-api.service Source9: %{name}-api.service
Source10: README.fedora Source10: README.fedora
Source11: %{name}-common.logrotate Source11: %{name}-common.logrotate
Source12: salt.bash Source12: %{name}.bash
Source13: salt.fish Source13: %{name}.fish
Source14: salt_common.fish Source14: %{name}_common.fish
Source15: salt-call.fish Source15: %{name}-call.fish
Source16: salt-cp.fish Source16: %{name}-cp.fish
Source17: salt-key.fish Source17: %{name}-key.fish
Source18: salt-master.fish Source18: %{name}-master.fish
Source19: salt-minion.fish Source19: %{name}-minion.fish
Source20: salt-run.fish Source20: %{name}-run.fish
Source21: salt-syndic.fish Source21: %{name}-syndic.fish
Source22: salt
Source23: salt-master Patch0: contextvars.patch
Source24: salt-minion BuildArch: noarch
Source25: salt-api
Source26: salt-cp
Source27: salt-key
Source28: salt-run
Source29: salt-cloud
Source30: salt-ssh
Source31: salt-syndic
Source32: salt-call
Source33: salt-proxy
Source34: spm
Source35: salt-pip
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: x86_64
%ifarch %{ix86} x86_64 %ifarch %{ix86} x86_64
Requires: dmidecode Requires: dmidecode
@ -68,20 +48,12 @@ Requires: dmidecode
Requires: pciutils Requires: pciutils
Requires: which Requires: which
Requires: openssl Requires: dnf-utils
Requires: logrotate
%if 0%{?systemd_preun:1}
Requires(post): systemd-units
Requires(preun): systemd-units
Requires(postun): systemd-units
%endif
BuildRequires: systemd-units BuildRequires: systemd-rpm-macros
#BuildRequires: python3 BuildRequires: python3-devel
#BuildRequires: python3-devel BuildRequires: python3-toml
#BuildRequires: openssl-devel
BuildRequires: git
%description %description
Salt is a distributed remote execution system used to execute commands and Salt is a distributed remote execution system used to execute commands and
@ -96,9 +68,11 @@ servers, handle them quickly and through a simple and manageable interface.
Summary: Management component for salt, a parallel remote execution system Summary: Management component for salt, a parallel remote execution system
Group: System Environment/Daemons Group: System Environment/Daemons
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: python3-systemd
%description master %description master
The Salt master is the central server to which all minions connect. The Salt master is the central server to which all minions connect.
Supports Python 3.
%package minion %package minion
@ -109,6 +83,7 @@ Requires: %{name} = %{version}-%{release}
%description minion %description minion
The Salt minion is the agent component of Salt. It listens for instructions The Salt minion is the agent component of Salt. It listens for instructions
from the master, runs jobs, and returns results back to the master. from the master, runs jobs, and returns results back to the master.
Supports Python 3.
%package syndic %package syndic
@ -120,25 +95,30 @@ Requires: %{name}-master = %{version}-%{release}
The Salt syndic is a master daemon which can receive instruction from a The Salt syndic is a master daemon which can receive instruction from a
higher-level master, allowing for tiered organization of your Salt higher-level master, allowing for tiered organization of your Salt
infrastructure. infrastructure.
Supports Python 3.
%package api %package api
Summary: REST API for Salt, a parallel remote execution system Summary: REST API for Salt, a parallel remote execution system
Group: Applications/System Group: Applications/System
Requires: %{name}-master = %{version}-%{release} Requires: %{name}-master = %{version}-%{release}
Requires: python3-cherrypy >= 3.2.2
%description api %description api
salt-api provides a REST interface to the Salt master. salt-api provides a REST interface to the Salt master.
Supports Python 3.
%package cloud %package cloud
Summary: Cloud provisioner for Salt, a parallel remote execution system Summary: Cloud provisioner for Salt, a parallel remote execution system
Group: Applications/System Group: Applications/System
Requires: %{name}-master = %{version}-%{release} Requires: %{name}-master = %{version}-%{release}
Requires: python3-libcloud
%description cloud %description cloud
The salt-cloud tool provisions new cloud VMs, installs salt-minion on them, and The salt-cloud tool provisions new cloud VMs, installs salt-minion on them, and
adds them to the master's collection of controllable minions. adds them to the master's collection of controllable minions.
Supports Python 3.
%package ssh %package ssh
@ -149,309 +129,324 @@ Requires: %{name} = %{version}-%{release}
%description ssh %description ssh
The salt-ssh tool can run remote execution functions and states without the use The salt-ssh tool can run remote execution functions and states without the use
of an agent (salt-minion) service. of an agent (salt-minion) service.
Supports Python 3.
%prep %prep
tar xvf %{SOURCE0} %autosetup -p1
%generate_buildrequires
%pyproject_buildrequires
%build %build
mv_srcdir=$RPM_BUILD_DIR/%{name}-3005.1 %pyproject_wheel
mv_dstdir=$RPM_BUILD_DIR/%{name}-%{version}
if [ "${mv_srcdir}" != "${mv_dstdir}" ]; then
mv ${mv_srcdir} ${mv_dstdir}
fi
cd %{name}-%{version}
PYTHONPATH="/usr/local/lib/python3.6/site-packages/:/usr/local/lib64/python3.6/site-packages/" tiamat --log-level=debug build -c %{SOURCE1} -r %{SOURCE3}
find . -name __pycache__ | xargs rm -fR
pwd
ls -l
%install %install
rm -rf %{buildroot} %pyproject_install
#cd $RPM_BUILD_DIR/%{name}-%{version} %pyproject_save_files salt
pwd
ls -l
mkdir -p %{buildroot}/opt/saltstack/salt
# pip installs directory
mkdir -p %{buildroot}/opt/saltstack/salt/pypath/
cp -ra %{name}-%{version}/dist/run %{buildroot}/opt/saltstack/salt
# Add some directories # Add some directories
install -d -m 0755 %{buildroot}%{_var}/log/salt install -d -m 0755 %{buildroot}%{_var}/log/%{name}
touch %{buildroot}%{_var}/log/salt/minion touch %{buildroot}%{_var}/log/%{name}/minion
touch %{buildroot}%{_var}/log/salt/master touch %{buildroot}%{_var}/log/%{name}/master
install -d -m 0755 %{buildroot}%{_var}/cache/salt install -d -m 0755 %{buildroot}%{_var}/cache/%{name}
install -d -m 0755 %{buildroot}%{_sysconfdir}/salt install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}
install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/master.d install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/master.d
install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/minion.d install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/minion.d
install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/pki install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/pki
install -d -m 0700 %{buildroot}%{_sysconfdir}/salt/pki/master install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/pki/master
install -d -m 0700 %{buildroot}%{_sysconfdir}/salt/pki/minion install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/pki/minion
install -d -m 0700 %{buildroot}%{_sysconfdir}/salt/cloud.conf.d install -d -m 0700 %{buildroot}%{_sysconfdir}/%{name}/cloud.conf.d
install -d -m 0700 %{buildroot}%{_sysconfdir}/salt/cloud.deploy.d install -d -m 0700 %{buildroot}%{_sysconfdir}/%{name}/cloud.deploy.d
install -d -m 0700 %{buildroot}%{_sysconfdir}/salt/cloud.maps.d install -d -m 0700 %{buildroot}%{_sysconfdir}/%{name}/cloud.maps.d
install -d -m 0700 %{buildroot}%{_sysconfdir}/salt/cloud.profiles.d install -d -m 0700 %{buildroot}%{_sysconfdir}/%{name}/cloud.profiles.d
install -d -m 0700 %{buildroot}%{_sysconfdir}/salt/cloud.providers.d install -d -m 0700 %{buildroot}%{_sysconfdir}/%{name}/cloud.providers.d
install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/proxy.d install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/proxy.d
install -d -m 0755 %{buildroot}%{_bindir}
# Add helper scripts
install -m 0755 %{SOURCE22} %{buildroot}%{_bindir}/salt
install -m 0755 %{SOURCE23} %{buildroot}%{_bindir}/salt-master
install -m 0755 %{SOURCE24} %{buildroot}%{_bindir}/salt-minion
install -m 0755 %{SOURCE25} %{buildroot}%{_bindir}/salt-api
install -m 0755 %{SOURCE26} %{buildroot}%{_bindir}/salt-cp
install -m 0755 %{SOURCE27} %{buildroot}%{_bindir}/salt-key
install -m 0755 %{SOURCE28} %{buildroot}%{_bindir}/salt-run
install -m 0755 %{SOURCE29} %{buildroot}%{_bindir}/salt-cloud
install -m 0755 %{SOURCE30} %{buildroot}%{_bindir}/salt-ssh
install -m 0755 %{SOURCE31} %{buildroot}%{_bindir}/salt-syndic
install -m 0755 %{SOURCE32} %{buildroot}%{_bindir}/salt-call
install -m 0755 %{SOURCE33} %{buildroot}%{_bindir}/salt-proxy
install -m 0755 %{SOURCE34} %{buildroot}%{_bindir}/spm
install -m 0755 %{SOURCE35} %{buildroot}%{_bindir}/salt-pip
# Add the config files # Add the config files
install -p -m 0640 %{name}-%{version}/conf/minion %{buildroot}%{_sysconfdir}/salt/minion install -p -m 0640 conf/minion %{buildroot}%{_sysconfdir}/%{name}/minion
install -p -m 0640 %{name}-%{version}/conf/master %{buildroot}%{_sysconfdir}/salt/master install -p -m 0640 conf/master %{buildroot}%{_sysconfdir}/%{name}/master
install -p -m 0600 %{name}-%{version}/conf/cloud %{buildroot}%{_sysconfdir}/salt/cloud install -p -m 0600 conf/cloud %{buildroot}%{_sysconfdir}/%{name}/cloud
install -p -m 0640 %{name}-%{version}/conf/roster %{buildroot}%{_sysconfdir}/salt/roster install -p -m 0640 conf/roster %{buildroot}%{_sysconfdir}/%{name}/roster
install -p -m 0640 %{name}-%{version}/conf/proxy %{buildroot}%{_sysconfdir}/salt/proxy install -p -m 0640 conf/proxy %{buildroot}%{_sysconfdir}/%{name}/proxy
# Add the unit files # Add the unit files
mkdir -p %{buildroot}%{_unitdir} mkdir -p %{buildroot}%{_unitdir}
install -p -m 0644 %{SOURCE5} %{buildroot}%{_unitdir}/
install -p -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/ install -p -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/
install -p -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/ install -p -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/
install -p -m 0644 %{SOURCE8} %{buildroot}%{_unitdir}/ install -p -m 0644 %{SOURCE8} %{buildroot}%{_unitdir}/
install -p -m 0644 %{SOURCE9} %{buildroot}%{_unitdir}/ install -p -m 0644 %{SOURCE9} %{buildroot}%{_unitdir}/
install -p -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/
# Logrotate # Logrotate
install -p %{SOURCE10} . install -p %{SOURCE10} .
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d/ mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d/
install -p -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/logrotate.d/salt install -p -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
# Bash completion # Bash completion
mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d/ mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d/
install -p -m 0644 %{SOURCE12} %{buildroot}%{_sysconfdir}/bash_completion.d/salt.bash install -p -m 0644 %{SOURCE12} %{buildroot}%{_sysconfdir}/bash_completion.d/%{name}.bash
# Fish completion (TBD remove -v) # Fish completion (TBD remove -v)
mkdir -p %{buildroot}%{fish_dir} mkdir -p %{buildroot}%{fish_dir}
install -p -m 0644 %{SOURCE13} %{buildroot}%{fish_dir}/salt.fish install -p -m 0644 %{SOURCE13} %{buildroot}%{fish_dir}/%{name}.fish
install -p -m 0644 %{SOURCE14} %{buildroot}%{fish_dir}/salt_common.fish install -p -m 0644 %{SOURCE14} %{buildroot}%{fish_dir}/%{name}_common.fish
install -p -m 0644 %{SOURCE15} %{buildroot}%{fish_dir}/salt-call.fish install -p -m 0644 %{SOURCE15} %{buildroot}%{fish_dir}/%{name}-call.fish
install -p -m 0644 %{SOURCE16} %{buildroot}%{fish_dir}/salt-cp.fish install -p -m 0644 %{SOURCE16} %{buildroot}%{fish_dir}/%{name}-cp.fish
install -p -m 0644 %{SOURCE17} %{buildroot}%{fish_dir}/salt-key.fish install -p -m 0644 %{SOURCE17} %{buildroot}%{fish_dir}/%{name}-key.fish
install -p -m 0644 %{SOURCE18} %{buildroot}%{fish_dir}/salt-master.fish install -p -m 0644 %{SOURCE18} %{buildroot}%{fish_dir}/%{name}-master.fish
install -p -m 0644 %{SOURCE19} %{buildroot}%{fish_dir}/salt-minion.fish install -p -m 0644 %{SOURCE19} %{buildroot}%{fish_dir}/%{name}-minion.fish
install -p -m 0644 %{SOURCE20} %{buildroot}%{fish_dir}/salt-run.fish install -p -m 0644 %{SOURCE20} %{buildroot}%{fish_dir}/%{name}-run.fish
install -p -m 0644 %{SOURCE21} %{buildroot}%{fish_dir}/salt-syndic.fish install -p -m 0644 %{SOURCE21} %{buildroot}%{fish_dir}/%{name}-syndic.fish
# Man files # ZSH completion
mkdir -p %{buildroot}%{_mandir}/man1 mkdir -p %{buildroot}%{zsh_dir}
mkdir -p %{buildroot}%{_mandir}/man7 install -p -m 0644 pkg/%{name}.zsh %{buildroot}%{zsh_dir}/_%{name}
ls -alh %{name}-%{version}/*
install -p -m 0644 %{name}-%{version}/doc/man/spm.1 %{buildroot}%{_mandir}/man1/spm.1
install -p -m 0644 %{name}-%{version}/doc/man/salt.1 %{buildroot}%{_mandir}/man1/salt.1 %check
install -p -m 0644 %{name}-%{version}/doc/man/salt.7 %{buildroot}%{_mandir}/man7/salt.7 %pyproject_check_import -t
install -p -m 0644 %{name}-%{version}/doc/man/salt-cp.1 %{buildroot}%{_mandir}/man1/salt-cp.1
install -p -m 0644 %{name}-%{version}/doc/man/salt-key.1 %{buildroot}%{_mandir}/man1/salt-key.1
install -p -m 0644 %{name}-%{version}/doc/man/salt-master.1 %{buildroot}%{_mandir}/man1/salt-master.1 %files -f %{pyproject_files}
install -p -m 0644 %{name}-%{version}/doc/man/salt-run.1 %{buildroot}%{_mandir}/man1/salt-run.1 %license LICENSE
install -p -m 0644 %{name}-%{version}/doc/man/salt-call.1 %{buildroot}%{_mandir}/man1/salt-call.1 %doc README.fedora
install -p -m 0644 %{name}-%{version}/doc/man/salt-minion.1 %{buildroot}%{_mandir}/man1/salt-minion.1 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
install -p -m 0644 %{name}-%{version}/doc/man/salt-proxy.1 %{buildroot}%{_mandir}/man1/salt-proxy.1 %config(noreplace) %{_sysconfdir}/bash_completion.d/%{name}.bash
install -p -m 0644 %{name}-%{version}/doc/man/salt-syndic.1 %{buildroot}%{_mandir}/man1/salt-syndic.1 %{_var}/cache/%{name}
install -p -m 0644 %{name}-%{version}/doc/man/salt-api.1 %{buildroot}%{_mandir}/man1/salt-api.1 %{_var}/log/%{name}
install -p -m 0644 %{name}-%{version}/doc/man/salt-cloud.1 %{buildroot}%{_mandir}/man1/salt-cloud.1
install -p -m 0644 %{name}-%{version}/doc/man/salt-ssh.1 %{buildroot}%{_mandir}/man1/salt-ssh.1
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%{_sysconfdir}/logrotate.d/salt
%{_sysconfdir}/bash_completion.d/salt.bash
%{_var}/cache/salt
%{_var}/log/salt
/opt/saltstack/
/opt/saltstack/salt
/opt/saltstack/salt/run
/opt/saltstack/salt/pypath
%doc %{_mandir}/man1/spm.1*
%{_bindir}/spm %{_bindir}/spm
%{_bindir}/salt-pip %doc %{_mandir}/man1/spm.1*
%config(noreplace) %{_sysconfdir}/salt/ %dir %{zsh_dir}
#%config(noreplace) %{_sysconfdir}/salt/pki %dir %{_sysconfdir}/%{name}/
%config(noreplace) %{fish_dir}/salt*.fish %dir %{_sysconfdir}/%{name}/pki/
%{fish_dir}/%{name}*.fish
%{zsh_dir}/_%{name}
%files master %files master
%defattr(-,root,root) %doc %{_mandir}/man7/%{name}.7*
%doc %{_mandir}/man7/salt.7* %doc %{_mandir}/man1/%{name}.1*
%doc %{_mandir}/man1/salt.1* %doc %{_mandir}/man1/%{name}-cp.1*
%doc %{_mandir}/man1/salt-cp.1* %doc %{_mandir}/man1/%{name}-key.1*
%doc %{_mandir}/man1/salt-key.1* %doc %{_mandir}/man1/%{name}-master.1*
%doc %{_mandir}/man1/salt-master.1* %doc %{_mandir}/man1/%{name}-run.1*
%doc %{_mandir}/man1/salt-run.1* %{_bindir}/%{name}
%{_bindir}/salt %{_bindir}/%{name}-cp
%{_bindir}/salt-cp %{_bindir}/%{name}-key
%{_bindir}/salt-key %{_bindir}/%{name}-master
%{_bindir}/salt-master %{_bindir}/%{name}-run
%{_bindir}/salt-run %{_unitdir}/%{name}-master.service
%{_unitdir}/salt-master.service %config(noreplace) %{_sysconfdir}/%{name}/master
%config(noreplace) %{_sysconfdir}/salt/master %config(noreplace) %{_sysconfdir}/%{name}/master.d
%config(noreplace) %{_sysconfdir}/salt/master.d %config(noreplace) %{_sysconfdir}/%{name}/pki/master
%config(noreplace) %{_sysconfdir}/salt/pki/master
%files minion %files minion
%defattr(-,root,root) %doc %{_mandir}/man1/%{name}-call.1*
%doc %{_mandir}/man1/salt-call.1* %doc %{_mandir}/man1/%{name}-minion.1*
%doc %{_mandir}/man1/salt-minion.1* %doc %{_mandir}/man1/%{name}-proxy.1*
%doc %{_mandir}/man1/salt-proxy.1* %{_bindir}/%{name}-minion
%{_bindir}/salt-minion %{_bindir}/%{name}-call
%{_bindir}/salt-call %{_bindir}/%{name}-proxy
%{_bindir}/salt-proxy %{_unitdir}/%{name}-minion.service
%{_unitdir}/salt-minion.service %{_unitdir}/%{name}-proxy@.service
%{_unitdir}/salt-proxy@.service %config(noreplace) %{_sysconfdir}/%{name}/minion
%config(noreplace) %{_sysconfdir}/salt/minion %config(noreplace) %{_sysconfdir}/%{name}/proxy
%config(noreplace) %{_sysconfdir}/salt/proxy %config(noreplace) %{_sysconfdir}/%{name}/minion.d
%config(noreplace) %{_sysconfdir}/salt/minion.d %config(noreplace) %{_sysconfdir}/%{name}/pki/minion
%config(noreplace) %{_sysconfdir}/salt/pki/minion
%files syndic %files syndic
%doc %{_mandir}/man1/salt-syndic.1* %doc %{_mandir}/man1/%{name}-syndic.1*
%{_bindir}/salt-syndic %{_bindir}/%{name}-syndic
%{_unitdir}/salt-syndic.service %{_unitdir}/%{name}-syndic.service
%files api %files api
%defattr(-,root,root) %doc %{_mandir}/man1/%{name}-api.1*
%doc %{_mandir}/man1/salt-api.1* %{_bindir}/%{name}-api
%{_bindir}/salt-api %{_unitdir}/%{name}-api.service
%{_unitdir}/salt-api.service
%files cloud %files cloud
%doc %{_mandir}/man1/salt-cloud.1* %doc %{_mandir}/man1/%{name}-cloud.1*
%{_bindir}/salt-cloud %{_bindir}/%{name}-cloud
%{_sysconfdir}/salt/cloud.conf.d %{_sysconfdir}/%{name}/cloud.conf.d
%{_sysconfdir}/salt/cloud.deploy.d %{_sysconfdir}/%{name}/cloud.deploy.d
%{_sysconfdir}/salt/cloud.maps.d %{_sysconfdir}/%{name}/cloud.maps.d
%{_sysconfdir}/salt/cloud.profiles.d %{_sysconfdir}/%{name}/cloud.profiles.d
%{_sysconfdir}/salt/cloud.providers.d %{_sysconfdir}/%{name}/cloud.providers.d
%config(noreplace) %{_sysconfdir}/salt/cloud %config(noreplace) %{_sysconfdir}/%{name}/cloud
%files ssh %files ssh
%doc %{_mandir}/man1/salt-ssh.1* %doc %{_mandir}/man1/%{name}-ssh.1*
%{_bindir}/salt-ssh %{_bindir}/%{name}-ssh
%config(noreplace) %{_sysconfdir}/salt/roster %config(noreplace) %{_sysconfdir}/%{name}/roster
# assumes systemd for RHEL 7 & 8 & 9 # assumes systemd for RHEL 7 & 8
%preun master %preun master
# RHEL 9 is giving warning msg if syndic is not installed, supress it %systemd_preun %{name}-syndic.service
%systemd_preun salt-syndic.service > /dev/null 2>&1
%preun minion %preun minion
%systemd_preun salt-minion.service %systemd_preun %{name}-minion.service
%preun api %preun api
%systemd_preun salt-api.service %systemd_preun %{name}-api.service
%post master %post master
%systemd_post salt-master.service %systemd_post %{name}-master.service
if [ $1 -lt 2 ]; then
# install
# ensure hmac are up to date, master or minion, rest install one or the other
# key used is from openssl/crypto/fips/fips_standalone_hmac.c openssl 1.1.1k
if [ $(cat /etc/os-release | grep VERSION_ID | cut -d '=' -f 2 | sed 's/\"//g' | cut -d '.' -f 1) = "8" ]; then
/bin/openssl sha256 -r -hmac orboDeJITITejsirpADONivirpUkvarP /opt/saltstack/salt/run/libssl.so.1.1 | cut -d ' ' -f 1 > /opt/saltstack/salt/run/.libssl.so.1.1.hmac || :
/bin/openssl sha256 -r -hmac orboDeJITITejsirpADONivirpUkvarP /opt/saltstack/salt/run/libcrypto.so.1.1 | cut -d ' ' -f 1 > /opt/saltstack/salt/run/.libcrypto.so.1.1.hmac || :
fi
fi
%post syndic %post syndic
%systemd_post salt-syndic.service %systemd_post %{name}-syndic.service
%post minion %post minion
%systemd_post salt-minion.service %systemd_post %{name}-minion.service
if [ $1 -lt 2 ]; then
# install
# ensure hmac are up to date, master or minion, rest install one or the other
# key used is from openssl/crypto/fips/fips_standalone_hmac.c openssl 1.1.1k
if [ $(cat /etc/os-release | grep VERSION_ID | cut -d '=' -f 2 | sed 's/\"//g' | cut -d '.' -f 1) = "8" ]; then
/bin/openssl sha256 -r -hmac orboDeJITITejsirpADONivirpUkvarP /opt/saltstack/salt/run/libssl.so.1.1 | cut -d ' ' -f 1 > /opt/saltstack/salt/run/.libssl.so.1.1.hmac || :
/bin/openssl sha256 -r -hmac orboDeJITITejsirpADONivirpUkvarP /opt/saltstack/salt/run/libcrypto.so.1.1 | cut -d ' ' -f 1 > /opt/saltstack/salt/run/.libcrypto.so.1.1.hmac || :
fi
fi
%post api %post api
%systemd_post salt-api.service %systemd_post %{name}-api.service
%postun master %postun master
%systemd_postun_with_restart salt-master.service %systemd_postun_with_restart %{name}-master.service
if [ $1 -eq 0 ]; then
if [ $(cat /etc/os-release | grep VERSION_ID | cut -d '=' -f 2 | sed 's/\"//g' | cut -d '.' -f 1) = "8" ]; then
if [ -z "$(rpm -qi salt-minion | grep Name | grep salt-minion)" ]; then
# uninstall and no minion running
/bin/rm -f /opt/saltstack/salt/run/.libssl.so.1.1.hmac || :
/bin/rm -f /opt/saltstack/salt/run/.libcrypto.so.1.1.hmac || :
fi
fi
fi
%postun syndic %postun syndic
%systemd_postun_with_restart salt-syndic.service %systemd_postun_with_restart %{name}-syndic.service
%postun minion %postun minion
%systemd_postun_with_restart salt-minion.service %systemd_postun_with_restart %{name}-minion.service
if [ $1 -eq 0 ]; then
if [ $(cat /etc/os-release | grep VERSION_ID | cut -d '=' -f 2 | sed 's/\"//g' | cut -d '.' -f 1) = "8" ]; then
if [ -z "$(rpm -qi salt-master | grep Name | grep salt-master)" ]; then
# uninstall and no master running
/bin/rm -f /opt/saltstack/salt/run/.libssl.so.1.1.hmac || :
/bin/rm -f /opt/saltstack/salt/run/.libcrypto.so.1.1.hmac || :
fi
fi
fi
%postun api %postun api
%systemd_postun_with_restart salt-api.service %systemd_postun_with_restart %{name}-api.service
%changelog %changelog
* Mon Oct 30 2023 Gwyn Ciesla <gwync@protonmail.com> - 3005.4-1
- 3005.4
* Tue Sep 05 2023 Gwyn Ciesla <gwync@protonmail.com> - 3005.2-1
- 3005.2
* Tue Apr 25 2023 Sergey Cherevko <s.cherevko@msvsphere.ru> - 3005.1-4 * Tue Apr 25 2023 Sergey Cherevko <s.cherevko@msvsphere.ru> - 3005.1-4
- Rebuilt for MSVSphere 9.1 - Rebuilt for MSVSphere 9.1
* Tue Nov 01 2022 SaltStack Packaging Team <packaging@saltstack.com> - 3005-2 * Mon Oct 10 2022 Robby Callicotte <rcallicotte@fedoraproject.org> - 3005.1-2
- Generate HMAC files post-install in case FIPS mode used only if libraries exist - Removed macros from changelog
* Tue Sep 27 2022 SaltStack Packaging Team <packaging@saltstack.com> - 3005-1 * Tue Oct 04 2022 Salt Project Packaging <saltproject-packaging@vmware.com> - 3005.1-1
- Generate HMAC files post-install in case FIPS mode used - Update to feature release 3005.1-1 for Python 3
- Added MAN pages
* Fri Apr 10 2020 SaltStack Packaging Team <packaging@frogunder.com> - 3001 * Thu Aug 25 2022 Salt Project Packaging <saltproject-packaging@vmware.com> - 3005-1
- Update to use pop-build - Update to feature release 3005-1 for Python 3
* Mon Feb 03 2020 SaltStack Packaging Team <packaging@frogunder.com> - 3000-1 * Thu Jul 28 2022 Robby Callicotte <rcallicotte@fedoraproject.org> - 3004.2-3
- Update to feature release 3000-1 for Python 3 - Cleaned up specfile
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3004.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jun 21 2022 Salt Project Packaging <saltproject-packaging@vmware.com> - 3004.2-1
- Update to CVE release 3004.2-1 for Python 3
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 3004.1-2
- Rebuilt for Python 3.11
* Mon Mar 28 2022 Salt Project Packaging <saltproject-packaging@vmware.com> - 3004.1-1
- Update to CVE release 3004.1-1 for Python 3
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3004-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Oct 19 2021 Salt Project Packaging <saltproject-packaging@vmware.com> - 3004-1
- Update to feature release 3004-1 for Python 3
* Wed Sep 08 2021 SaltStack Packaging Team <saltproject-packaging@vmware.com> - 3003.3-1
- Update to CVE release 3003.3-1 https://saltproject.io/security_announcements/salt-security-advisory-2021-sep-02/
* Thu Aug 12 2021 SaltStack Packaging Team <packaging@saltstack.com> - 3003.2-1
- Update to bugfix release 3003.2-1 for Python 3
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3003.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jul 01 2021 SaltStack Packaging Team <packaging@saltstack.com> - 3003.1-1
- Update to bugfix release 3003.1-1 for Python 3
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 3003-2
- Rebuilt for Python 3.10
* Mon Apr 26 2021 SaltStack Packaging Team <packaging@saltstack.com> - 3003-1
- Update to feature release 3003-1 for Python 3
* Fri Mar 26 2021 SaltStack Packaging Team <packaging@saltstack.com> - 3002.6-1
- Update to bugfix release 3002.6-1 for Python 3
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3002.5-2
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Fri Feb 26 2021 SaltStack Packaging Team <packaging@saltstack.com> - 3002.5-1
- Update to CVE release 3002.5-1 for Python 3
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3002.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Nov 18 2020 SaltStack Packaging Team <packaging@saltstack.com> - 3002.2-1
- Update to bugfix release 3002.2-1 for Python3
- Revert _scope_id patch since it's been fixed upstream
## - Removed Torando since salt.ext.tornado, add dependencies for Tornado * Wed Nov 04 2020 SaltStack Packaging Team <packaging@saltstack.com> - 3002.1-1
- Update to CVE release 3002.1-1 for Python3
* Wed Jan 22 2020 SaltStack Packaging Team <packaging@garethgreenaway.com> - 3000.0.0rc2-1 * Sun Oct 25 2020 Gwyn Ciesla <gwync@protonmail.com> - 3002-1
- 3002
- Patch for _scope_id 3.9 error.
* Mon Jul 27 2020 SaltStack Packaging Team <packaging@saltstack.com> - 3001.1-1
- Update to feature release 3001.1-1 for Python 3
* Thu Jun 18 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 30001-1
- Update to feature release 30001-1 for Python 3
* Wed Jun 03 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3001rc1-2
- Altered msgpack and python-zmq versions limitation
* Tue Jun 02 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3001rc1-1
- Update to Release Candidate rc1 for point release 3001
* Fri May 15 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000.3-1
- Update to feature release 3000.3-1 for Python 3
* Wed Apr 29 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000.2-1
- Update to feature release 3000.2-1 for Python 3
* Wed Apr 01 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000.1-1
- Update to feature release 3000.1-1 for Python 3
* Tue Feb 25 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000-5
- Fix lint clean up issues
* Tue Feb 25 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000-4
- Removed cherrypy < 18.0.0 check since python 3.5 no longer used on Fedora
* Mon Feb 24 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000-3
- Added distro as a build and requires dependency for Fedora >= 31
* Mon Feb 24 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000-2
- Changed dependency for crypto to pycryptodomex
* Mon Feb 03 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000-1
- Update to feature release 3000-1 for Python 3
- Removed Torando since salt.ext.tornado, add dependencies for Tornado
* Wed Jan 22 2020 SaltStack Packaging Team <packaging@saltstack.com> - 3000.0.0rc2-1
- Update to Neon Release Candidate 2 for Python 3 - Update to Neon Release Candidate 2 for Python 3
- Updated spec file to not use py3_build due to '-s' preventing pip installs - Updated spec file to not use py3_build due to '-s' preventing pip installs
- Updated patch file to support Tornado4 - Updated patch file to support Tornado4
* Wed Jan 08 2020 SaltStack Packaging Team <packaging@frogunder.com> - 2019.2.3-1 * Wed Jan 08 2020 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.3-1
- Update to feature release 2019.2.3-1 for Python 3 - Update to feature release 2019.2.3-1 for Python 3
* Tue Oct 15 2019 SaltStack Packaging Team <packaging@frogunder.com> - 2019.2.2-1 * Tue Oct 15 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.2-1
- Update to feature release 2019.2.2-1 for Python 3 - Update to feature release 2019.2.2-1 for Python 3
* Thu Sep 12 2019 SaltStack Packaging Team <packaging@frogunder.com> - 2019.2.1-1 * Thu Sep 12 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.1-1
- Update to feature release 2019.2.1-1 for Python 3 - Update to feature release 2019.2.1-1 for Python 3
* Tue Sep 10 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.0-10 * Tue Sep 10 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.0-10
@ -484,27 +479,70 @@ fi
* Mon Apr 08 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.4-2 * Mon Apr 08 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.4-2
- Update to allow for Python 3.6 - Update to allow for Python 3.6
* Mon Mar 04 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2019.2.0-1
- Update to feature release 2019.2.0-1 for Python 2
* Sat Feb 16 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.0-1 * Sat Feb 16 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.0-1
- Update to feature release 2019.2.0-1 for Python 3 - Update to feature release 2019.2.0-1 for Python 3
* Sat Feb 16 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.4-1 * Sat Feb 16 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.4-1
- Update to feature release 2018.3.4-1 for Python 3 - Update to feature release 2018.3.4-1 for Python 3
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2018.3.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Jan 09 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.0-0 * Wed Jan 09 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.0-0
- Update to feature release branch 2019.2.0-0 for Python 2 - Update to feature release branch 2019.2.0-0 for Python 2
- Revised acceptable versions of cherrypy, futures - Revised acceptable versions of cherrypy, futures
* Thu Nov 29 2018 SaltStack Packaging Team <packaging@Ch3LL.com> - 2018.3.3-2
- Revised BuildRequires and Requires to use python2 versions of packages
- Cleaned up spec file to apply to Fedora 28 and above
* Mon Oct 15 2018 SaltStack Packaging Team <packaging@Ch3LL.com> - 2018.3.3-1
- Update to feature release 2018.3.3-1 for Python 2
- Revised versions of cherrypy acceptable
* Tue Oct 09 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.3-1 * Tue Oct 09 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.3-1
- Update to feature release 2018.3.3-1 for Python 3 - Update to feature release 2018.3.3-1 for Python 3
- Revised versions of cherrypy acceptable - Revised versions of cherrypy acceptable
* Tue Jul 24 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.2-5
- Fix version of python used, multiple addition of 2.7
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2018.3.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Jul 09 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.2-3
- Allow for removal of /usr/bin/python
* Mon Jul 09 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.2-2
- Correct tornado version check
* Thu Jun 21 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.2-1
- Update to feature release 2018.3.2-1 for Python 2
* Mon Jun 11 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.1-1 * Mon Jun 11 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.1-1
- Update to feature release 2018.3.1-1 for Python 3 - Update to feature release 2018.3.1-1 for Python 3
- Revised minimum msgpack version >= 0.4 - Revised minimum msgpack version >= 0.4
* Fri Jun 08 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.1-1
- Update to feature release 2018.3.1-1 for Python 2
- Revised minimum msgpack version >= 0.4
* Mon Apr 02 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.0-1 * Mon Apr 02 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.0-1
- Development build for Python 3 support - Development build for Python 3 support
* Fri Mar 30 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.0-1
- Update to feature release 2018.3.0-1
* Tue Mar 27 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2017.7.5-1
- Update to feature release 2017.7.5-1
* Fri Feb 16 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2017.7.4-1
- Update to feature release 2017.7.4-1
- Limit to Tornado use to between versions 4.2.1 and less than 5.0
* Tue Jan 30 2018 SaltStack Packaging Team <packaging@Ch3LL.com> - 2017.7.3-1 * Tue Jan 30 2018 SaltStack Packaging Team <packaging@Ch3LL.com> - 2017.7.3-1
- Update to feature release 2017.7.3-1 - Update to feature release 2017.7.3-1
Loading…
Cancel
Save