diff options
author | Kirill Ponomarev <krion@FreeBSD.org> | 2020-06-02 11:23:53 +0000 |
---|---|---|
committer | Kirill Ponomarev <krion@FreeBSD.org> | 2020-06-02 11:23:53 +0000 |
commit | af84cfffe3e4d240e5b22552e7f41cb1d2f8f847 (patch) | |
tree | 218c7bc30a5d1249f27305e22a26433f441b879f /sysutils | |
parent | games/julius: update to 1.4.1 (diff) |
Update py-salt to version 3000 and repo copy py-salt to py-salt-2019.
We decided to run both versions for a while until 2019 is EOL and give people
the possibility to run newest 3000 version.
Approved by: maintainer
Notes
Notes:
svn path=/head/; revision=537537
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/Makefile | 1 | ||||
-rw-r--r-- | sysutils/py-salt-2019/Makefile | 103 | ||||
-rw-r--r-- | sysutils/py-salt-2019/distinfo | 3 | ||||
-rw-r--r-- | sysutils/py-salt-2019/files/patch-requirements_base.txt (renamed from sysutils/py-salt/files/patch-requirements_base.txt) | 0 | ||||
-rw-r--r-- | sysutils/py-salt-2019/files/patch-salt_loader.py | 11 | ||||
-rw-r--r-- | sysutils/py-salt-2019/files/patch-setup.py | 13 | ||||
-rw-r--r-- | sysutils/py-salt-2019/files/pkg-message.in | 36 | ||||
-rw-r--r-- | sysutils/py-salt-2019/files/salt_api.in | 31 | ||||
-rw-r--r-- | sysutils/py-salt-2019/files/salt_master.in | 42 | ||||
-rw-r--r-- | sysutils/py-salt-2019/files/salt_minion.in | 42 | ||||
-rw-r--r-- | sysutils/py-salt-2019/files/salt_proxy.in | 59 | ||||
-rw-r--r-- | sysutils/py-salt-2019/files/salt_syndic.in | 31 | ||||
-rw-r--r-- | sysutils/py-salt-2019/pkg-descr | 8 | ||||
-rw-r--r-- | sysutils/py-salt-2019/pkg-plist | 7 | ||||
-rw-r--r-- | sysutils/py-salt/Makefile | 5 | ||||
-rw-r--r-- | sysutils/py-salt/distinfo | 6 |
16 files changed, 393 insertions, 5 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile index e8c545f042d6..7f21ad16ef3b 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -992,6 +992,7 @@ SUBDIR += py-ranger SUBDIR += py-rdiff-backup SUBDIR += py-salt + SUBDIR += py-salt-2019 SUBDIR += py-scandir SUBDIR += py-scarab SUBDIR += py-scriptine diff --git a/sysutils/py-salt-2019/Makefile b/sysutils/py-salt-2019/Makefile new file mode 100644 index 000000000000..710ddd08d07c --- /dev/null +++ b/sysutils/py-salt-2019/Makefile @@ -0,0 +1,103 @@ +# Created by: Christer Edwards <christer.edwards@gmail.com> +# $FreeBSD$ + +PORTNAME= salt +PORTVERSION= 2019.2.5 +CATEGORIES= sysutils python +MASTER_SITES= CHEESESHOP +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= christer.edwards@gmail.com +COMMENT= Distributed remote execution and configuration management system + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}MarkupSafe>0:textproc/py-MarkupSafe@${PY_FLAVOR} \ + ${PY_ENUM34} \ + ${PY_FUTURES} \ + ${PYTHON_PKGNAMEPREFIX}libcloud>=0.14.0:net/py-libcloud@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}msgpack>=0.3:devel/py-msgpack@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}progressbar>0:misc/py-progressbar@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}psutil>=0.3.0:sysutils/py-psutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}requests>=1.0.0:www/py-requests@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}tornado4>=4.2.1:www/py-tornado4@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyinotify>0:devel/py-pyinotify@${PY_FLAVOR} + +USES= cpe python:3.6-3.7 + +CPE_VENDOR= saltstack +CPE_PRODUCT= salt +USE_PYTHON= autoplist distutils +NO_ARCH= yes + +CONFLICTS= py[0-9]*-salt-3000* + +# we must pass these options before the target name, and python.mk has no +# early-arguments variable, so we have to manipulate the target +PYDISTUTILS_INSTALL_TARGET=\ + --salt-root-dir=/ \ + --salt-config-dir=${ETCDIR} \ + --salt-cache-dir=/var/cache/salt \ + --salt-sock-dir=/var/run/salt \ + --salt-srv-root-dir=${ETCDIR} \ + --salt-base-file-roots-dir=${ETCDIR}/states \ + --salt-base-pillar-roots-dir=${ETCDIR}/pillar \ + --salt-base-master-roots-dir=${ETCDIR}/salt-master \ + --salt-logs-dir=/var/log/salt \ + --salt-pidfile-dir=/var/run \ + install + +USE_RC_SUBR= salt_api \ + salt_master \ + salt_minion \ + salt_proxy \ + salt_syndic + +SUB_LIST+= PYTHON_CMD=${PYTHON_CMD} + +SUB_FILES= pkg-message + +OPTIONS_DEFINE= AWS RAET TCP ZEROMQ +OPTIONS_DEFAULT=ZEROMQ + +AWS_DESC= Install dependencies required for Amazon Web Services +RAET_DESC= Install dependencies required for RAET transport +TCP_DESC= Install dependencies required for TCP transport +ZEROMQ_DESC= Install dependencies required for ZeroMQ transport + +# AWS dependencies (Note: the devel/py-botocore port is updated very frequently) +AWS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boto3>0:www/py-boto3@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}boto>=2.32.1:devel/py-boto@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}botocore>0:devel/py-botocore@${PY_FLAVOR} + +RAET_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libnacl>=1.0.0:security/py-libnacl@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}ioflo>=1.1.7:devel/py-ioflo@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}raet>=0.6.0:net/py-raet@${PY_FLAVOR} + +TCP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pycrypto>=2.6.1:security/py-pycrypto@${PY_FLAVOR} + +ZEROMQ_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyzmq>=2.2.0:net/py-pyzmq@${PY_FLAVOR} +ZEROMQ_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyzmq>=2.2.0:net/py-pyzmq@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pycrypto>=2.6.1:security/py-pycrypto@${PY_FLAVOR} + +post-patch: +.for file in conf/minion conf/master doc/man/salt-key.1 \ + doc/man/salt-cp.1 doc/man/salt-minion.1 doc/man/salt-syndic.1 \ + doc/man/salt-master.1 doc/man/salt-run.1 doc/man/salt.7 doc/man/salt.1 \ + doc/man/salt-call.1 salt/modules/mysql.py salt/modules/tls.py salt/modules/postgres.py + @${REINPLACE_CMD} -e 's|/etc/salt|${ETCDIR}|' \ + -e 's|/srv/salt|${ETCDIR}/states|' \ + -e 's|/srv/pillar|${ETCDIR}/pillar|' ${WRKSRC}/${file} +.endfor + @${REINPLACE_CMD} -e 's|yumpkg5|pkgng|' ${WRKSRC}/conf/minion + @${REINPLACE_CMD} -e 's|msgpack-python|msgpack|' ${WRKSRC}/requirements/base.txt + +post-install: + @${MKDIR} ${STAGEDIR}${ETCDIR} + ${INSTALL_DATA} ${WRKSRC}/conf/master ${STAGEDIR}${ETCDIR}/master.sample + ${INSTALL_DATA} ${WRKSRC}/conf/minion ${STAGEDIR}${ETCDIR}/minion.sample + +.include <bsd.port.mk> diff --git a/sysutils/py-salt-2019/distinfo b/sysutils/py-salt-2019/distinfo new file mode 100644 index 000000000000..a42b7ce02d79 --- /dev/null +++ b/sysutils/py-salt-2019/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1589397818 +SHA256 (salt-2019.2.5.tar.gz) = 7d7b80f17017a34bf86c6d7d6b7a94df78694d1401e69192aa3abd406f0edf3f +SIZE (salt-2019.2.5.tar.gz) = 14574347 diff --git a/sysutils/py-salt/files/patch-requirements_base.txt b/sysutils/py-salt-2019/files/patch-requirements_base.txt index 4969efb2aecc..4969efb2aecc 100644 --- a/sysutils/py-salt/files/patch-requirements_base.txt +++ b/sysutils/py-salt-2019/files/patch-requirements_base.txt diff --git a/sysutils/py-salt-2019/files/patch-salt_loader.py b/sysutils/py-salt-2019/files/patch-salt_loader.py new file mode 100644 index 000000000000..1578e73b9df7 --- /dev/null +++ b/sysutils/py-salt-2019/files/patch-salt_loader.py @@ -0,0 +1,11 @@ +--- salt/loader.py ++++ salt/loader.py +@@ -1240,7 +1240,7 @@ + try: + pycache_files = [ + os.path.join('__pycache__', x) for x in +- sorted(os.listdir(os.path.join(mod_dir, '__pycache__'))) ++ sorted(os.listdir(os.path.join(mod_dir, '__pycache__'))) if not x.endswith('opt-1.pyc') and not x.endswith('opt-2.pyc') + ] + except OSError: + pass diff --git a/sysutils/py-salt-2019/files/patch-setup.py b/sysutils/py-salt-2019/files/patch-setup.py new file mode 100644 index 000000000000..e1516c3225de --- /dev/null +++ b/sysutils/py-salt-2019/files/patch-setup.py @@ -0,0 +1,13 @@ +--- setup.py.orig 2018-04-02 16:35:13 UTC ++++ setup.py +@@ -992,8 +992,8 @@ class SaltDistribution(distutils.dist.Di + def _property_data_files(self): + # Data files common to all scenarios + data_files = [ +- ('share/man/man1', ['doc/man/salt-call.1', 'doc/man/salt-run.1']), +- ('share/man/man7', ['doc/man/salt.7']) ++ ('man/man1', ['doc/man/salt-call.1', 'doc/man/salt-run.1']), ++ ('man/man7', ['doc/man/salt.7']) + ] + if self.ssh_packaging or PACKAGED_FOR_SALT_SSH: + data_files[0][1].append('doc/man/salt-ssh.1') diff --git a/sysutils/py-salt-2019/files/pkg-message.in b/sysutils/py-salt-2019/files/pkg-message.in new file mode 100644 index 000000000000..49e8d125da15 --- /dev/null +++ b/sysutils/py-salt-2019/files/pkg-message.in @@ -0,0 +1,36 @@ +[ +{ type: install + message: <<EOM +To configure a Salt Master, do the following: + + o Copy %%PREFIX%%/etc/salt/master.sample to %%PREFIX%%/etc/salt/master + o Update to meet your needs + o sysrc salt_master_enable="YES" + + + +To configure a Salt Minion, do the following: + + o Copy %%PREFIX%%/etc/salt/minion.sample to %%PREFIX%%/etc/salt/minion + o Update 'master: salt' to point to your Salt Master's hostname or IP + o sysrc salt_minion_enable="YES" + + + +To configure a Salt Proxy Minion, do the following: + + o sysrc salt_proxy_enable="YES" + o sysrc salt_proxy_list="" + o Update the salt_proxy_list with the proxy minion name(s) + + + +To change the Transport method from the default option of Zeromq to either TCP or RAET: + + o Re-build the port with the desired options enabled to install the correct runtime dependencies + o Ensure the master and minions all have salt installed with these same options and dependencies + o Add the line 'transport: [tcp|raet]' to both the master and minion configuration files + o Restart salt on the master and minions +EOM +} +] diff --git a/sysutils/py-salt-2019/files/salt_api.in b/sysutils/py-salt-2019/files/salt_api.in new file mode 100644 index 000000000000..a5c01ea7c33e --- /dev/null +++ b/sysutils/py-salt-2019/files/salt_api.in @@ -0,0 +1,31 @@ +#!/bin/sh + +# $FreeBSD$ +# +# Salt API startup script +# +# PROVIDE: salt_api +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add the following to /etc/rc.conf[.local] to enable this service +# +# salt_api_enable (bool): Set to NO by default. +# Set it to YES to enable salt_api +# + +. /etc/rc.subr + +name=salt_api +rcvar=salt_api_enable + +load_rc_config ${name} + +: ${salt_api_enable:=NO} + +command="%%PREFIX%%/bin/salt-api" +command_interpreter="%%PYTHON_CMD%%" +required_files="%%PREFIX%%/etc/salt" +command_args="-c ${required_files} -d" + +run_rc_command "$1" diff --git a/sysutils/py-salt-2019/files/salt_master.in b/sysutils/py-salt-2019/files/salt_master.in new file mode 100644 index 000000000000..6ff79eecc366 --- /dev/null +++ b/sysutils/py-salt-2019/files/salt_master.in @@ -0,0 +1,42 @@ +#!/bin/sh + +# $FreeBSD$ +# +# Salt Master startup script +# +# PROVIDE: salt_master +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add the following to /etc/rc.conf[.local] to enable this service +# +# salt_master_enable (bool): Set to NO by default. +# Set it to YES to enable salt_master. +# salt_master_paths (string): Set to "/sbin:/bin:/usr/sbin:/usr/bin:%%PREFIX%%/bin:%%PREFIX%%/sbin" by default. +# Default $PATH for salt_master. +# salt_master_eggcache (string): Set to "/tmp" by default. +# Allows defining egg cache directory to fix runtime on diskless systems. +# + +. /etc/rc.subr + +name=salt_master +rcvar=salt_master_enable + +load_rc_config ${name} + +: ${salt_master_enable:=NO} +: ${salt_master_paths=/sbin:/bin:/usr/sbin:/usr/bin:%%PREFIX%%/bin:%%PREFIX%%/sbin} +: ${salt_master_pidfile:=/var/run/salt-master.pid} +: ${salt_master_eggcache=/tmp} + +command="%%PREFIX%%/bin/salt-master" +command_interpreter="%%PYTHON_CMD%%" +required_files="%%PREFIX%%/etc/salt" +command_args="-c ${required_files} -d" +pidfile=${salt_master_pidfile} + +export PATH="${salt_master_paths}" +export PYTHON_EGG_CACHE="${salt_master_eggcache}" + +run_rc_command "$1" diff --git a/sysutils/py-salt-2019/files/salt_minion.in b/sysutils/py-salt-2019/files/salt_minion.in new file mode 100644 index 000000000000..8ceab7e8a71d --- /dev/null +++ b/sysutils/py-salt-2019/files/salt_minion.in @@ -0,0 +1,42 @@ +#!/bin/sh + +# $FreeBSD$ +# +# Salt Minion startup script +# +# PROVIDE: salt_minion +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add the following to /etc/rc.conf[.local] to enable this service +# +# salt_minion_enable (bool): Set to NO by default. +# Set it to YES to enable salt_minion +# salt_minion_paths (string): Set to "/sbin:/bin:/usr/sbin:/usr/bin:%%PREFIX%%/bin:%%PREFIX%%/sbin" by default. +# Default $PATH for salt_minion +# salt_minion_eggcache (string): Set to "/tmp" by default. +# Allows defining egg cache directory to fix runtime on diskless systems. +# + +. /etc/rc.subr + +name=salt_minion +rcvar=salt_minion_enable + +load_rc_config ${name} + +: ${salt_minion_enable:=NO} +: ${salt_minion_paths=/sbin:/bin:/usr/sbin:/usr/bin:%%PREFIX%%/bin:%%PREFIX%%/sbin} +: ${salt_minion_pidfile:=/var/run/salt-minion.pid} +: ${salt_minion_eggcache=/tmp} + +command="%%PREFIX%%/bin/salt-minion" +command_interpreter="%%PYTHON_CMD%%" +required_files="%%PREFIX%%/etc/salt" +command_args="-c ${required_files} -d" +pidfile=${salt_minion_pidfile} + +export PATH="${salt_minion_paths}" +export PYTHON_EGG_CACHE="${salt_minion_eggcache}" + +run_rc_command "$1" diff --git a/sysutils/py-salt-2019/files/salt_proxy.in b/sysutils/py-salt-2019/files/salt_proxy.in new file mode 100644 index 000000000000..45729c17ea56 --- /dev/null +++ b/sysutils/py-salt-2019/files/salt_proxy.in @@ -0,0 +1,59 @@ +#!/bin/sh + +# $FreeBSD$ +# +# Salt Proxy startup script +# +# PROVIDE: salt_proxy +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add the following to /etc/rc.conf[.local] to enable this service +# +# salt_proxy_enable (bool): Set to NO by default. +# Set it to YES to enable salt_proxy. +# salt_proxy_paths (string): Set to "/sbin:/bin:/usr/sbin:/usr/bin:%%PREFIX%%/bin:%%PREFIX%%/sbin" by default. +# Default $PATH for Salt +# salt_proxy_eggcache (string): Set to "/tmp" by default. +# Allows defining egg cache directory to fix runtime on diskless systems. +# salt_proxy_list (string): Set to "" by default. +# Space separated list of proxies. +# + +. /etc/rc.subr + +name=salt_proxy +rcvar=salt_proxy_enable + +load_rc_config ${name} + +: ${salt_proxy_enable:=NO} +: ${salt_proxy_paths=/sbin:/bin:/usr/sbin:/usr/bin:%%PREFIX%%/bin:%%PREFIX%%/sbin} +: ${salt_proxy_eggcache=/tmp} + +start_cmd=salt_proxy_start + +command="%%PREFIX%%/bin/salt-proxy" +command_interpreter="%%PYTHON_CMD%%" +required_files="%%PREFIX%%/etc/salt" +command_args="-c ${required_files} -d" + +export PATH="${salt_proxy_paths}" +export PYTHON_EGG_CACHE="${salt_proxy_eggcache}" + +salt_proxy_start() +{ + if [ ! -n "${salt_proxy_list}" ]; then + echo "${salt_proxy_list} is undefined" + return 1 + fi + + local _proxy + + for _proxy in ${salt_proxy_list}; do + echo "Starting salt-proxy: ${_proxy}" + ${command_interpreter} ${command} --proxyid ${_proxy} ${command_args} + done +} + +run_rc_command "$1" diff --git a/sysutils/py-salt-2019/files/salt_syndic.in b/sysutils/py-salt-2019/files/salt_syndic.in new file mode 100644 index 000000000000..004d67f97914 --- /dev/null +++ b/sysutils/py-salt-2019/files/salt_syndic.in @@ -0,0 +1,31 @@ +#!/bin/sh + +# $FreeBSD$ +# +# Salt Synic startup script +# +# PROVIDE: salt_syndic +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add the following to /etc/rc.conf[.local] to enable this service +# +# salt_syndic_enable (bool): Set to NO by default. +# Set it to YES to enable salt_syndic +# + +. /etc/rc.subr + +name=salt_syndic +rcvar=salt_syndic_enable + +load_rc_config ${name} + +: ${salt_syndic_enable:=NO} + +command="%%PREFIX%%/bin/salt-syndic" +command_interpreter="%%PYTHON_CMD%%" +required_files="%%PREFIX%%/etc/salt" +command_args="-c ${required_files} -d" + +run_rc_command "$1" diff --git a/sysutils/py-salt-2019/pkg-descr b/sysutils/py-salt-2019/pkg-descr new file mode 100644 index 000000000000..c49e8412d351 --- /dev/null +++ b/sysutils/py-salt-2019/pkg-descr @@ -0,0 +1,8 @@ +Salt : Remote Execution and State Manager +====================================== + +Salt is a powerful remote execution and state manager that can be +used to administer servers in a fast and efficient way. + +WWW: https://pypi.org/project/salt/ +WWW: http://saltstack.org/ diff --git a/sysutils/py-salt-2019/pkg-plist b/sysutils/py-salt-2019/pkg-plist new file mode 100644 index 000000000000..8af3d8958fa3 --- /dev/null +++ b/sysutils/py-salt-2019/pkg-plist @@ -0,0 +1,7 @@ +@sample %%ETCDIR%%/master.sample +@sample %%ETCDIR%%/minion.sample +%%PYTHON_SITELIBDIR%%/salt/_syspaths.py +%%PYTHON2%%%%PYTHON_SITELIBDIR%%/salt/_syspaths.pyc +%%PYTHON2%%%%PYTHON_SITELIBDIR%%/salt/_syspaths.pyo +%%PYTHON3%%%%PYTHON_SITELIBDIR%%/salt/__pycache__/_syspaths.cpython-%%PYTHON_SUFFIX%%.pyc +%%PYTHON3%%%%PYTHON_SITELIBDIR%%/salt/__pycache__/_syspaths.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc diff --git a/sysutils/py-salt/Makefile b/sysutils/py-salt/Makefile index d064714cd186..ab9fcbe85a34 100644 --- a/sysutils/py-salt/Makefile +++ b/sysutils/py-salt/Makefile @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= salt -PORTVERSION= 2019.2.5 +PORTVERSION= 3000.3 CATEGORIES= sysutils python MASTER_SITES= CHEESESHOP PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -33,6 +33,8 @@ CPE_PRODUCT= salt USE_PYTHON= autoplist distutils NO_ARCH= yes +CONFLICTS= py[0-9]*-salt-2019* + # we must pass these options before the target name, and python.mk has no # early-arguments variable, so we have to manipulate the target PYDISTUTILS_INSTALL_TARGET=\ @@ -91,7 +93,6 @@ post-patch: -e 's|/srv/pillar|${ETCDIR}/pillar|' ${WRKSRC}/${file} .endfor @${REINPLACE_CMD} -e 's|yumpkg5|pkgng|' ${WRKSRC}/conf/minion - @${REINPLACE_CMD} -e 's|msgpack-python|msgpack|' ${WRKSRC}/requirements/base.txt post-install: @${MKDIR} ${STAGEDIR}${ETCDIR} diff --git a/sysutils/py-salt/distinfo b/sysutils/py-salt/distinfo index a42b7ce02d79..28d70fb0f028 100644 --- a/sysutils/py-salt/distinfo +++ b/sysutils/py-salt/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1589397818 -SHA256 (salt-2019.2.5.tar.gz) = 7d7b80f17017a34bf86c6d7d6b7a94df78694d1401e69192aa3abd406f0edf3f -SIZE (salt-2019.2.5.tar.gz) = 14574347 +TIMESTAMP = 1590047008 +SHA256 (salt-3000.3.tar.gz) = fcca49985e697d914e5a7f34b2fd8bbd833bcf7779d30174a279a4de2294cea7 +SIZE (salt-3000.3.tar.gz) = 15237557 |