# # spec file for package salt # # Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %global debug_package %{nil} %global flavor @BUILD_FLAVOR@%{nil} %if "%{flavor}" == "testsuite" %define psuffix -test %else %define psuffix %{nil} %endif %if 0%{?suse_version} > 1210 || 0%{?rhel} >= 7 || 0%{?fedora} >=28 %bcond_without systemd %else %bcond_with systemd %endif %{!?python3_sitelib: %global python3_sitelib %(python3 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %if 0%{?suse_version} > 1110 %bcond_without bash_completion %bcond_without fish_completion %bcond_without zsh_completion %else %bcond_with bash_completion %bcond_with fish_completion %bcond_with zsh_completion %endif %bcond_without docs %bcond_with builddocs Name: salt%{psuffix} Version: 3006.0 Release: 0 Summary: A parallel remote execution system License: Apache-2.0 Group: System/Management Url: https://saltproject.io/ Source: v%{version}.tar.gz Source1: README.SUSE Source2: salt-tmpfiles.d Source3: html.tar.bz2 Source4: update-documentation.sh Source5: travis.yml Source6: transactional_update.conf ### SALT PATCHES LIST BEGIN ### IMPORTANT: The line above is used as a snippet marker. Do not touch it. # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/88f40fff3b81edaa55f37949f56c67112ca2dcad Patch1: run-salt-master-as-dedicated-salt-user.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/cdecbbdf5db3f1cb6b603916fecd80738f5fae9a Patch2: run-salt-api-as-user-salt-bsc-1064520.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/c44b897eb1305c6b9c341fc16f729d2293ab24e4 Patch3: activate-all-beacons-sources-config-pillar-grains.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/3c83bab3da101223c99af1f9ee2f3bf5e97be3f8 Patch4: avoid-excessive-syslogging-by-watchdog-cronjob-58.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/1b9a160f578cf446f5ae622a450d23022e7e3ca5 Patch5: fix-bsc-1065792.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/fec7f65b4debede8cf0eef335182fce2206e200d Patch6: enable-passing-a-unix_socket-for-mysql-returners-bsc.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/90 Patch7: add-environment-variable-to-know-if-yum-is-invoked-f.patch #### SUSE CAPABILITIES - unified #### # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/commit/713ccfdc5c6733495d3ce7f26a8cfeddb8e9e9c4 # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/commit/b713d0b3031faadc17cd9cf09977ccc19e50bef7 Patch8: add-custom-suse-capabilities-as-grains.patch ########### #### SUSE SLES-ES SUPPORT #### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/57166 Patch9: fix-for-suse-expanded-support-detection.patch ############ #### ADLER - unified #### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/48812 # (closed upstream in favor of different solution - might affect server_id) # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/159 # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/73e357d7eee19a73cade22becb30d9689cae27ba Patch10: use-adler32-algorithm-to-compute-string-checksums.patch ########### #### X509 - unified #### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/56819 Patch11: x509-fixes-111.patch ########### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/58054 Patch12: do-not-load-pip-state-if-there-is-no-3rd-party-depen.patch #### SALT SUPPORT - unified #### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/57054 Patch13: early-feature-support-config.patch ########### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/57071 Patch14: make-aptpkg.list_repos-compatible-on-enabled-disable.patch ### DEBIAN INFO_INSTALLED - unified ### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/50453 # (master PR not yet created - codejam) # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/50453 # https://github.com/saltstack/salt/commit/e20362f6f053eaa4144583604e6aac3d62838419 # Can be dropped one pull/50453 is in released version. Patch15: debian-info_installed-compatibility-50453.patch ########### # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/pull/116 (missing upstream PR to master) Patch16: return-the-expected-powerpc-os-arch-bsc-1117995.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/51119 (master PR not yet created) Patch17: fix-issue-2068-test.patch # PATCH_FIX_OPENSUSE Temporary fix allowing "id_" and "force" params while upstrem figures it out Patch18: temporary-fix-extend-the-whitelist-of-allowed-comman.patch ### FQDNS #### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/51384 (master PR not yet created) Patch19: include-aliases-in-the-fqdns-grains.patch ########### #### BATCH ASYNC - unified ##### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/60269 # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/50546 # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/51863 # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/139 # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/141 # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/144 # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/52855 # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/6af07030a502c427781991fc9a2b994fa04ef32e # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/002543df392f65d95dbc127dc058ac897f2035ed # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/commit/55d8a777d6a9b19c959e14a4060e5579e92cd106 # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/commit/8378bb24a5a53973e8dba7658b8b3465d967329f # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/pull/182 # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/pull/190 # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/pull/217 # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/commit/8a23030d347b7487328c0395f5e30ef29daf1455 # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/commit/a38adfa2efe40c2b1508b685af0b5d28a6bbcfc8 # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/commit/b4c401cfe6031b61e27f7795bfa1aca6e8341e52 # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/320 # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/commit/25b4e3ea983b2606b2fb3d3c0e42f9840208bf84 (cleanup local code) Patch20: async-batch-implementation.patch ########### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/52743 Patch21: switch-firewalld-state-to-use-change_interface.patch ### STANDALONE FORMULA CONFIGURATION ### # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/8ad65d6fa39edc7fc1967e2df1f3db0aa7df4d11 Patch22: add-standalone-configuration-file-for-enabling-packa.patch ############# # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/177 # (deviation from upstream - we should probably port this) Patch23: restore-default-behaviour-of-pkg-list-return.patch # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/pull/186 (missing upstream PR to master) Patch24: read-repo-info-without-using-interpolation-bsc-11356.patch # PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/pull/191 (missing upstream PR to master) Patch25: let-salt-ssh-use-platform-python-binary-in-rhel8-191.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/a18ac47b75550bd55f4ca91dc221ed408881984c Patch26: make-setup.py-script-to-not-require-setuptools-9.1.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/228 (missing upstream PR) # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/da936daeebd701e147707ad814c07bfc259d4be (not yet upstream PR) Patch27: add-publish_batch-to-clearfuncs-exposed-methods.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/57779 Patch28: info_installed-works-without-status-attr-now.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/58552 Patch29: zypperpkg-ignore-retcode-104-for-search-bsc-1176697-.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/275 (missing upstream PR) Patch30: bsc-1176024-fix-file-directory-user-and-group-owners.patch #### NO VENDOR CHANGE #### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/60421 Patch31: allow-vendor-change-option-with-zypper.patch ########### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/58784 Patch32: add-migrated-state-and-gpg-key-management-functions-.patch ### BEACON CONFIG ### # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/5ea2f10b15684dd417bad858642faafc92cd382 # (revert https://github.com/saltstack/salt/pull/58655) Patch33: revert-fixing-a-use-case-when-multiple-inotify-beaco.patch ########### # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/298 (missing upstream PR) Patch34: fix-salt.utils.stringutils.to_str-calls-to-make-it-w.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/307 (missing upstream PR) Patch35: add-sleep-on-exception-handling-on-minion-connection.patch ### SALT-SSH PROCESSING TARGETS ### # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/336 (missing upstream PR) # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/353 (missing upstream PR) Patch36: update-target-fix-for-salt-ssh-to-process-targets-li.patch ############ # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/58503 Patch37: fix-missing-minion-returns-in-batch-mode-360.patch #### OPENSCAP ENHANCE #### # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/59756 Patch38: enhance-openscap-module-add-xccdf_eval-call-386.patch ############### # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/413 (missing upstream PR) Patch39: don-t-use-shell-sbin-nologin-in-requisites.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/432 (missing upstream PR) Patch40: fix-traceback.print_exc-calls-for-test_pip_state-432.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/415 (missing upstream PR) Patch41: prevent-pkg-plugins-errors-on-missing-cookie-path-bs.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/61180 Patch42: dnfnotify-pkgset-plugin-implementation-3002.2-450.patch # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/pull/456 (missing upstream PR) Patch43: fix-the-regression-for-yumnotify-plugin-456.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/482 Patch44: drop-serial-from-event.unpack-in-cli.batch_async.patch ### SALT-SSH WITH SALT BUNDLE ### # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/61715 (ssh_pre_flight_args) # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/493 # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/497 Patch45: add-salt-ssh-support-with-venv-salt-minion-3004-493.patch Patch46: prevent-shell-injection-via-pre_flight_script_args-4.patch ############### # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/501 Patch47: fix-salt-ssh-opts-poisoning-bsc-1197637-3004-501.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/505 Patch48: prevent-affection-of-ssh.opts-with-lazyloader-bsc-11.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/506 Patch49: fix-regression-with-depending-client.ssh-on-psutil-b.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/62109 Patch50: use-salt-bundle-in-dockermod.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/61984 Patch51: save-log-to-logfile-with-docker.build.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/534 Patch52: fix-ownership-of-salt-thin-directory-when-using-the-.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/62209 Patch53: add-support-for-gpgautoimport-539.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/62519 Patch54: change-the-delimeters-to-prevent-possible-tracebacks.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/62898 Patch55: pass-the-context-to-pillar-ext-modules.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/commit/c6be36eeea49ee0d0641da272087305f79c32c99 (not yet upstream) # Fix problem caused by: https://github.com/openSUSE/salt/pull/493 (Patch47) affecting only 3005.1. Patch56: use-rlock-to-avoid-deadlocks-in-salt-ssh.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/61064 # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/commit/5e3ff4d662321c237ddd5b2c5c83f35a84af594c (not PR to master yet) Patch57: fixes-for-python-3.10-502.patch # PATCH-FIX-OPENSUSE: https://github.com/openSUSE/salt/pull/571 Patch58: control-the-collection-of-lvm-grains-via-config.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/63460 Patch59: 3005.1-implement-zypper-removeptf-573.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/63460 # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/578 Patch60: skip-package-names-without-colon-bsc-1208691-578.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/commit/c0fae09e5a4f6997a60007d970c7c6a5614d9102 Patch61: fix-version-detection-and-avoid-building-and-testing.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64113 Patch62: make-sure-the-file-client-is-destroyed-upon-used.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/581 Patch63: avoid-conflicts-with-dependencies-versions-bsc-12116.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64369 Patch64: define-__virtualname__-for-transactional_update-modu.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/587 Patch65: make-master_tops-compatible-with-salt-3000-and-older.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/583 Patch66: tornado-fix-an-open-redirect-in-staticfilehandler-cv.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/580 Patch67: fix-some-issues-detected-in-salt-support-cli-module-.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64510 Patch68: 3006.0-prevent-_pygit2.giterror-error-loading-known_.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64300 Patch69: fix-utf8-handling-in-pass-renderer-and-make-it-more-.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/63403 Patch70: zypper-pkgrepo-alreadyconfigured-585.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64530 Patch71: fix-the-regression-of-user.present-state-when-group-.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64179 Patch72: fix-regression-multiple-values-for-keyword-argument-.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64554 Patch73: mark-salt-3006-as-released-586.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64599 Patch74: prevent-possible-exceptions-on-salt.utils.user.get_g.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/592 Patch75: fix-tests-to-make-them-running-with-salt-testsuite.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/commit/f82860b8ad3ee786762fa02fa1a6eaf6e24dc8d4 # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/65020 Patch76: do-not-fail-on-bad-message-pack-message-bsc-1213441-.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64510 (dropped at patch 91) Patch77: make-sure-configured-user-is-properly-set-by-salt-bs.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64959 Patch78: fixed-gitfs-cachedir_basename-to-avoid-hash-collisio.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/600 Patch79: revert-usage-of-long-running-req-channel-bsc-1213960.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/65238 Patch80: write-salt-version-before-building-when-using-with-s.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/65036 Patch81: fix-calculation-of-sls-context-vars-when-trailing-do.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/594 Patch82: implement-the-calling-for-batch-async-from-the-salt-.patch # PATCH-FIX_UPSTREAM: https://github.com/tornadoweb/tornado/pull/2277 Patch83: only-call-native_str-on-curl_debug-message-in-tornad.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/65204 Patch84: use-salt-call-from-salt-bundle-with-transactional_up.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/65181 Patch85: improve-salt.utils.json.find_json-bsc-1213293.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/65266 Patch86: fix-optimization_order-opt-to-prevent-test-fails.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65232 Patch87: allow-all-primitive-grain-types-for-autosign_grains-.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65482 Patch88: fix-cve-2023-34049-bsc-1215157.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65017 # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65136 Patch89: fix-gitfs-__env__-and-improve-cache-cleaning-bsc-119.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65435 Patch90: dereference-symlinks-to-set-proper-__cli-opt-bsc-121.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/614 (revert patch 77) Patch91: revert-make-sure-configured-user-is-properly-set-by-.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65488 Patch92: enable-keepalive-probes-for-salt-ssh-executions-bsc-.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65644 Patch93: prefer-unittest.mock-for-python-versions-that-are-su.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/620 Patch94: fix-the-aptpkg.py-unit-test-failure.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65092 Patch95: update-__pillar__-during-pillar_refresh.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65969 Patch96: fix-cve-2024-22231-and-cve-2024-22232-bsc-1219430-bs.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65009 Patch97: fixed-keyerror-in-logs-when-running-a-state-that-fai.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65562 Patch98: improve-pip-target-override-condition-with-venv_pip_.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65819 Patch99: allow-kwargs-for-fileserver-roots-update-bsc-1218482.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66048 Patch100: discover-both-.yml-and-.yaml-playbooks-bsc-1211888.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66130 Patch101: fix-problematic-tests-and-allow-smooth-tests-executi.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/628 Patch102: make-importing-seco.range-thread-safe-bsc-1211649.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66130 Patch103: fix-tests-failures-and-errors-when-detected-on-vm-ex.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66234 (modified at Patch106) Patch104: decode-oscap-byte-stream-to-string-bsc-1219001.patch ### Commits to make Salt compatible with Python 3.11 (and 3.6) # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/commit/d92b5423464f93da6e3feb47d05a9acef8da75f9 # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/commit/60b36489225f958772b6a2f99d8fe6ae33ee9d73 # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/commit/eee0eca5e48922e5e404f812ced08ca7484bb568 # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/commit/991f7cf0a7baf08a31194ce52f4ec08290db8e52 # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/commit/2688c86f45eea9f8a6b916fcdf8eb94b3f5e185b # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/commit/a1873a1d6d50d1769ddef528d7442e38aba9de23 # PATCH-FIX_OPENSUSE https://github.com/openSUSE/salt/commit/c7ecccb0a080ca9cca097f760ef0992ab34f82df Patch105: fix-salt-warnings-and-testuite-for-python-3.11-635.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/639 Patch106: switch-oscap-encoding-to-utf-8-639.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65982 Patch107: remove-unused-import-causing-delays-on-starting-salt.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66024 Patch108: make-logging-calls-lighter.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66034 Patch109: improve-broken-events-catching-and-reporting.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/633 Patch110: make-salt-master-self-recoverable-on-killing-eventpu.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66158 Patch111: make-reactor-engine-less-blocking-the-eventpublisher.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/638 Patch112: prevent-possible-exception-in-tornado.concurrent.fut.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66455 Patch113: remove-redundant-_file_find-call-to-the-master.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/646 Patch114: skip-tests-for-unsupported-algorithm-on-old-openssl-.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/652 Patch115: add-missing-contextvars-dependency-in-salt.version.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/640 Patch116: prevent-oom-with-high-amount-of-batch-async-calls-bs.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65983 Patch117: do-not-call-the-async-wrapper-calls-with-the-separat.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66494 Patch118: speed-up-salt.matcher.confirm_top-by-using-__context.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66593 Patch119: several-fixes-for-tests-to-avoid-errors-and-failures.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/656 Patch120: provide-systemd-timer-unit.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66630 Patch121: skip-certain-tests-if-necessary-and-mark-some-flaky-.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66647 Patch122: fix-status.diskusage-and-exclude-some-tests-to-run-w.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/65077 Patch123: fix-user.list_groups-omits-remote-groups.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66695 Patch124: some-more-small-tests-fixes-enhancements-661.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/666 Patch125: test_vultrpy-adjust-test-expectation-to-prevent-fail.patch # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66698 Patch126: firewalld-normalize-new-rich-rules-before-comparing-.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/669 Patch127: skip-more-tests-related-to-old-openssl-algorithms.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/662 # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/66730 Patch128: make-tests-compatible-with-venv-bundle.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/66743 Patch129: replace-use-of-pygit2-deprecated-and-removed-1.15.0-.patch # PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/671 # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/64173 Patch130: join-masters-if-it-is-a-list-671.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/66509 # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/commit/0c3ebc0795f9c2adec90118281343cae3070e0f6 Patch131: remove-redundant-run_func-from-salt.master.mworker._.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/66818 Patch132: improve-error-handling-with-different-openssl-versio.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/66856 Patch133: avoid-crash-on-wrong-output-of-systemctl-version-bsc.patch ### IMPORTANT: The line below is used as a snippet marker. Do not touch it. ### SALT PATCHES LIST END BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: logrotate %if 0%{?suse_version} > 1020 BuildRequires: fdupes %endif Requires: python3-%{name} = %{version}-%{release} Obsoletes: python2-%{name} Requires(pre): %{_sbindir}/groupadd Requires(pre): %{_sbindir}/useradd Provides: user(salt) Provides: group(salt) %if 0%{?suse_version} Requires(pre): %fillup_prereq Requires(pre): shadow %endif %if 0%{?suse_version} Requires(pre): dbus-1 %else Requires(pre): dbus %endif Requires: logrotate Requires: procps %if 0%{?suse_version} >= 1500 Requires: iproute2 %else %if 0%{?suse_version} Requires: net-tools %else Requires: iproute %endif %endif %if %{with systemd} BuildRequires: pkgconfig(systemd) %{?systemd_ordering} %else %if 0%{?suse_version} Requires(pre): %insserv_prereq %endif %endif %if %{with fish_completion} %define fish_dir %{_datadir}/fish/ %define fish_completions_dir %{_datadir}/fish/completions/ %endif %if %{with bash_completion} %if 0%{?suse_version} >= 1140 BuildRequires: bash-completion %else BuildRequires: bash %endif %endif %if %{with zsh_completion} BuildRequires: zsh %endif %if 0%{?rhel} || 0%{?fedora} BuildRequires: yum %endif %description Salt is a distributed remote execution system used to execute commands and query data. It was developed in order to bring the best solutions found in the world of remote execution together and make them better, faster and more malleable. Salt accomplishes this via its ability to handle larger loads of information, and not just dozens, but hundreds or even thousands of individual servers, handle them quickly and through a simple and manageable interface. %if "%{flavor}" != "testsuite" %package -n python3-salt Summary: python3 library for salt Group: System/Management Requires: %{name} = %{version}-%{release} BuildRequires: python-rpm-macros %if 0%{?rhel} == 8 BuildRequires: platform-python %else BuildRequires: python3 %endif BuildRequires: python3-devel BuildRequires: python3-setuptools # requirements/base.txt %if 0%{?rhel} || 0%{?fedora} BuildRequires: python3-jinja2 BuildRequires: python3-markupsafe BuildRequires: python3-msgpack > 0.3 BuildRequires: python3-zmq >= 2.2.0 BuildRequires: python3-m2crypto %else BuildRequires: python3-Jinja2 BuildRequires: python3-MarkupSafe BuildRequires: python3-msgpack-python > 0.3 BuildRequires: python3-pyzmq >= 2.2.0 %if 0%{?suse_version} >= 1500 BuildRequires: python3-M2Crypto %else BuildRequires: python3-pycrypto >= 2.6.1 %endif %endif BuildRequires: python3-PyYAML BuildRequires: python3-psutil BuildRequires: python3-requests >= 1.0.0 BuildRequires: python3-distro BuildRequires: python3-looseversion BuildRequires: python3-packaging # requirements/zeromq.txt %if %{with test} BuildRequires: python3-boto >= 2.32.1 BuildRequires: %{python3-mock if %python-base < 3.8} BuildRequires: python3-moto >= 0.3.6 BuildRequires: python3-pip BuildRequires: python3-salt-testing >= 2015.2.16 BuildRequires: python3-unittest2 BuildRequires: python3-xml %endif %if %{with builddocs} BuildRequires: python3-sphinx %endif %if 0%{?rhel} == 8 Requires: platform-python %else Requires: python3 %endif # requirements/base.txt %if 0%{?rhel} || 0%{?fedora} Requires: python3-jinja2 Requires: yum Requires: python3-markupsafe Requires: python3-msgpack > 0.3 Requires: python3-m2crypto Requires: python3-zmq >= 2.2.0 %if 0%{?rhel} == 8 || 0%{?fedora} >= 30 Requires: dnf %endif %if 0%{?rhel} == 6 Requires: yum-plugin-security %endif %else # SUSE Requires: python3-Jinja2 Requires: python3-MarkupSafe Requires: python3-msgpack-python > 0.3 %if 0%{?suse_version} >= 1500 Requires: python3-M2Crypto %else Requires: python3-pycrypto >= 2.6.1 %endif Requires: python3-pyzmq >= 2.2.0 %endif # end of RHEL / SUSE specific section Requires: python3-jmespath Requires: python3-PyYAML Requires: python3-psutil Requires: python3-requests >= 1.0.0 Requires: python3-distro Requires: python3-looseversion Requires: python3-packaging Requires: python3-contextvars %if 0%{?suse_version} # required for zypper.py Requires: python3-rpm Requires(pre): libzypp(plugin:system) >= 0 Requires: python3-zypp-plugin # requirements/opt.txt (not all) # Suggests: python-MySQL-python ## Disabled for now, originally Recommended Suggests: python3-timelib Suggests: python3-gnupg # requirements/zeromq.txt %endif # %if 0%{?suse_version} # python-xml is part of python-base in all rhel versions Requires: python3-xml Suggests: python3-Mako Recommends: python3-netaddr Recommends: python3-pyinotify %endif # Required by Salt modules Requires: iputils Requires: sudo Requires: file Recommends: man Provides: bundled(python3-tornado) = 4.5.3 %description -n python3-salt Python3 specific files for salt %package api Summary: The api for Salt a parallel remote execution system Group: System/Management Requires: %{name} = %{version}-%{release} Requires: %{name}-master = %{version}-%{release} %if 0%{?suse_version} Requires: python3-CherryPy >= 3.2.2 %else Requires: python3-cherrypy >= 3.2.2 %endif %description api salt-api is a modular interface on top of Salt that can provide a variety of entry points into a running Salt system. %package cloud Summary: Generic cloud provisioning tool for Saltstack Group: System/Management Requires: %{name} = %{version}-%{release} Requires: %{name}-master = %{version}-%{release} Requires: python3-apache-libcloud %if 0%{?suse_version} Recommends: python3-botocore Recommends: python3-netaddr %endif %description cloud public cloud VM management system provision virtual machines on various public clouds via a cleanly controlled profile and mapping system. %if %{with docs} %package doc Summary: Documentation for salt, a parallel remote execution system Group: Documentation/HTML Requires: %{name} = %{version} %description doc This contains the documentation of salt, it is an offline version of http://docs.saltstack.com. %endif %package master Summary: The management component of Saltstack with zmq protocol supported Group: System/Management Requires: %{name} = %{version}-%{release} %if 0%{?suse_version} Recommends: python3-pygit2 >= 0.20.3 %endif %ifarch %{ix86} x86_64 %if 0%{?suse_version} %if 0%{?suse_version} > 1110 Requires: dmidecode %else Requires: pmtools %endif %endif %endif %if %{with systemd} %{?systemd_requires} BuildRequires: systemd %else %if 0%{?suse_version} Requires(pre): %insserv_prereq %endif %endif %if 0%{?suse_version} Requires(pre): %fillup_prereq %endif %description master The Salt master is the central server to which all minions connect. Enabled commands to remote systems to be called in parallel rather than serially. %package minion Summary: The client component for Saltstack Group: System/Management Requires: %{name} = %{version}-%{release} %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150000 Requires: (%{name}-transactional-update = %{version}-%{release} if read-only-root-fs) %endif %if %{with systemd} %{?systemd_requires} %else %if 0%{?suse_version} Requires(pre): %insserv_prereq %endif %endif %if 0%{?suse_version} Requires(pre): %fillup_prereq %endif %description minion Salt minion is queried and controlled from the master. Listens to the salt master and execute the commands. %package proxy Summary: Component for salt that enables controlling arbitrary devices Group: System/Management Requires: %{name} = %{version}-%{release} %if %{with systemd} %{?systemd_requires} %else %if 0%{?suse_version} Requires(pre): %insserv_prereq %endif %endif %if 0%{?suse_version} Requires(pre): %fillup_prereq %endif %description proxy Proxy minions are a developing Salt feature that enables controlling devices that, for whatever reason, cannot run a standard salt-minion. Examples include network gear that has an API but runs a proprietary OS, devices with limited CPU or memory, or devices that could run a minion, but for security reasons, will not. %package syndic Summary: The syndic component for saltstack Group: System/Management Requires: %{name} = %{version}-%{release} Requires: %{name}-master = %{version}-%{release} %if %{with systemd} %{?systemd_requires} %else %if 0%{?suse_version} Requires(pre): %insserv_prereq %endif %endif %if 0%{?suse_version} Requires(pre): %fillup_prereq %endif %description syndic Salt syndic is the master-of-masters for salt The master of masters for salt-- it enables the management of multiple masters at a time.. %package ssh Summary: Management component for Saltstack with ssh protocol Group: System/Management Requires: %{name} = %{version}-%{release} Requires: %{name}-master = %{version}-%{release} %if 0%{?suse_version} Recommends: sshpass %endif %if %{with systemd} %{?systemd_requires} %else %if 0%{?suse_version} Requires(pre): %insserv_prereq %endif %endif %if 0%{?suse_version} Requires(pre): %fillup_prereq %endif %description ssh Salt ssh is a master running without zmq. it enables the management of minions over a ssh connection. %if %{with bash_completion} %package bash-completion Summary: Bash Completion for %{name} Group: System/Management Requires: %{name} = %{version}-%{release} Requires: bash-completion %if 0%{?suse_version} > 1110 BuildArch: noarch %endif %description bash-completion Bash command line completion support for %{name}. %endif %if %{with fish_completion} %package fish-completion Summary: Fish Completion for %{name} Group: System/Management Requires: %{name} = %{version}-%{release} %if 0%{?suse_version} > 1110 BuildArch: noarch %endif %description fish-completion Fish command line completion support for %{name}. %endif %if %{with zsh_completion} %package zsh-completion Summary: Zsh Completion for %{name} Group: System/Management Requires: %{name} = %{version}-%{release} Requires: zsh %if 0%{?suse_version} > 1110 BuildArch: noarch %endif %description zsh-completion Zsh command line completion support for %{name}. %endif %package standalone-formulas-configuration Summary: Standalone Salt configuration to make the packaged formulas available for the Salt master Group: System/Management Requires: %{name} Provides: salt-formulas-configuration Conflicts: otherproviders(salt-formulas-configuration) %description standalone-formulas-configuration This package adds the standalone configuration for the Salt master in order to make the packaged Salt formulas available on the Salt master %package transactional-update Summary: Transactional update executor configuration Group: System/Management Requires: %{name} = %{version}-%{release} Requires: %{name}-minion = %{version}-%{release} Requires: tar %description transactional-update For transactional systems, like MicroOS, Salt can operate transparently if the executor "transactional-update" is registered in list of active executors. This package add the configuration file. %endif %if "%{flavor}" == "testsuite" %package -n python3-salt-testsuite Summary: Unit and integration tests for Salt %if 0%{?rhel} == 8 BuildRequires: platform-python %else BuildRequires: python3 %endif BuildRequires: python3-devel BuildRequires: python3-setuptools Requires: salt = %{version} Recommends: python3-CherryPy Requires: python3-Genshi Requires: python3-Mako %if !0%{?suse_version} > 1600 || 0%{?centos} Requires: python3-boto %endif Requires: python3-boto3 Requires: python3-docker %if 0%{?suse_version} < 1600 Requires: python3-mock %endif Requires: python3-pygit2 Requires: python3-pytest >= 7.0.1 Requires: python3-pytest-httpserver Requires: python3-pytest-salt-factories >= 1.0.0~rc21 Requires: python3-pytest-subtests Requires: python3-testinfra Requires: python3-yamllint Requires: python3-pip Requires: docker Requires: openssh Requires: git Obsoletes: %{name}-tests %description -n python3-salt-testsuite Collection of unit, functional, and integration tests for %{name}. %endif %prep %setup -q -n salt-%{version}-suse cp %{S:1} . cp %{S:5} ./.travis.yml cp %{S:6} . %autopatch -p1 %build %if "%{flavor}" != "testsuite" # Putting /usr/bin at the front of $PATH is needed for RHEL/RES 7. Without this # change, the RPM will require /bin/python, which is not provided by any package # on RHEL/RES 7. %if 0%{?fedora} || 0%{?rhel} export PATH=/usr/bin:$PATH %endif python3 setup.py --with-salt-version=%{version} --salt-transport=both build mv build _build.python3 %if %{with docs} && %{without builddocs} # extract docs from the tarball mkdir -p doc/_build pushd doc/_build/ tar xfv %{S:3} popd %endif %if %{with docs} && %{with builddocs} ## documentation cd doc && make html && rm _build/html/.buildinfo && rm _build/html/_images/proxy_minions.png && cd _build/html && chmod -R -x+X * %endif %endif %install %if "%{flavor}" != "testsuite" mv _build.python3 build python3 setup.py --salt-transport=both install --prefix=%{_prefix} --root=%{buildroot} mv build _build.python3 DEF_PYPATH=_build.python3/scripts-*/ rm -f %{buildroot}%{_bindir}/* for script in $DEF_PYPATH/*; do install -m 0755 $script %{buildroot}%{_bindir} done ## create missing directories install -Dd -m 0750 %{buildroot}%{_localstatedir}/cache/salt/cloud install -Dd -m 0750 %{buildroot}%{_localstatedir}/cache/salt/master install -Dd -m 0750 %{buildroot}%{_localstatedir}/cache/salt/master/jobs install -Dd -m 0750 %{buildroot}%{_localstatedir}/cache/salt/master/proc install -Dd -m 0750 %{buildroot}%{_localstatedir}/cache/salt/master/queues install -Dd -m 0750 %{buildroot}%{_localstatedir}/cache/salt/master/roots install -Dd -m 0750 %{buildroot}%{_localstatedir}/cache/salt/master/syndics install -Dd -m 0750 %{buildroot}%{_localstatedir}/cache/salt/master/tokens install -Dd -m 0750 %{buildroot}%{_localstatedir}/cache/salt/minion/extmod install -Dd -m 0750 %{buildroot}%{_localstatedir}/log/salt install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/ install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/cloud.maps.d install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/cloud.profiles.d install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/cloud.providers.d install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/master.d install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/minion.d install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/pki install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/pki/master install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/pki/master/minions install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/pki/master/minions_autosign install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/pki/master/minions_denied install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/pki/master/minions_pre install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/pki/master/minions_rejected install -Dd -m 0750 %{buildroot}%{_sysconfdir}/salt/pki/minion install -Dd -m 0750 %{buildroot}/srv/pillar install -Dd -m 0750 %{buildroot}/srv/salt install -Dd -m 0750 %{buildroot}/srv/spm install -Dd -m 0750 %{buildroot}/var/lib/salt install -Dd -m 0755 %{buildroot}%{_docdir}/salt install -Dd -m 0755 %{buildroot}%{_sbindir} install -Dd -m 0755 %{buildroot}%{_sysconfdir}/logrotate.d/ # Install salt-support profiles install -Dpm 0644 salt/cli/support/profiles/* %{buildroot}%{python3_sitelib}/salt/cli/support/profiles %endif %if "%{flavor}" == "testsuite" # Install Salt tests install -Dd %{buildroot}%{python3_sitelib}/salt-testsuite cp -a tests %{buildroot}%{python3_sitelib}/salt-testsuite/ # Remove runtests.py which is not used as deprecated method of running the tests rm %{buildroot}%{python3_sitelib}/salt-testsuite/tests/runtests.py # Copy conf files to the testsuite as they are used by the tests cp -a conf %{buildroot}%{python3_sitelib}/salt-testsuite/ %endif %if "%{flavor}" != "testsuite" ## Install Zypper plugins only on SUSE machines %if 0%{?suse_version} install -Dd -m 0750 %{buildroot}%{_prefix}/lib/zypp/plugins/commit %{__install} scripts/suse/zypper/plugins/commit/zyppnotify %{buildroot}%{_prefix}/lib/zypp/plugins/commit/zyppnotify sed -i '1s=^#!/usr/bin/\(python\|env python\)[0-9.]*=#!/usr/bin/python3=' %{buildroot}%{_prefix}/lib/zypp/plugins/commit/zyppnotify %endif # Install Yum plugins only on RH machines %if 0%{?fedora} || 0%{?rhel} %if 0%{?fedora} >= 22 || 0%{?rhel} >= 8 install -Dd %{buildroot}%{python3_sitelib}/dnf-plugins install -Dd %{buildroot}%{python3_sitelib}/dnf-plugins/__pycache__ install -Dd %{buildroot}%{_sysconfdir}/dnf/plugins %{__install} scripts/suse/dnf/plugins/dnfnotify.py %{buildroot}%{python3_sitelib}/dnf-plugins %{__install} scripts/suse/dnf/plugins/dnfnotify.conf %{buildroot}%{_sysconfdir}/dnf/plugins %{__python3} -m compileall -d %{python3_sitelib}/dnf-plugins %{buildroot}%{python3_sitelib}/dnf-plugins/dnfnotify.py %{__python3} -O -m compileall -d %{python3_sitelib}/dnf-plugins %{buildroot}%{python3_sitelib}/dnf-plugins/dnfnotify.py %else install -Dd %{buildroot}%{_prefix}/share/yum-plugins install -Dd %{buildroot}%{_sysconfdir}/yum/pluginconf.d %{__install} scripts/suse/yum/plugins/yumnotify.py %{buildroot}%{_prefix}/share/yum-plugins %{__install} scripts/suse/yum/plugins/yumnotify.conf %{buildroot}%{_sysconfdir}/yum/pluginconf.d %{__python} -m compileall -d %{_prefix}/share/yum-plugins %{buildroot}%{_prefix}/share/yum-plugins/yumnotify.py %{__python} -O -m compileall -d %{_prefix}/share/yum-plugins %{buildroot}%{_prefix}/share/yum-plugins/yumnotify.py %endif %endif ## install init and systemd scripts %if %{with systemd} install -Dpm 0644 pkg/old/suse/salt-master.service %{buildroot}%{_unitdir}/salt-master.service %if 0%{?suse_version} install -Dpm 0644 pkg/old/suse/salt-minion.service %{buildroot}%{_unitdir}/salt-minion.service %else install -Dpm 0644 pkg/old/suse/salt-minion.service.rhel7 %{buildroot}%{_unitdir}/salt-minion.service %endif install -Dpm 0644 pkg/common/salt-syndic.service %{buildroot}%{_unitdir}/salt-syndic.service install -Dpm 0644 pkg/old/suse/salt-api.service %{buildroot}%{_unitdir}/salt-api.service install -Dpm 0644 pkg/common/salt-proxy@.service %{buildroot}%{_unitdir}/salt-proxy@.service ln -s service %{buildroot}%{_sbindir}/rcsalt-master ln -s service %{buildroot}%{_sbindir}/rcsalt-syndic ln -s service %{buildroot}%{_sbindir}/rcsalt-minion ln -s service %{buildroot}%{_sbindir}/rcsalt-api install -Dpm 644 %{S:2} %{buildroot}/usr/lib/tmpfiles.d/salt.conf %else mkdir -p %{buildroot}%{_initddir} ## install init scripts install -Dpm 0755 pkg/old/suse/salt-master %{buildroot}%{_initddir}/salt-master install -Dpm 0755 pkg/old/suse/salt-syndic %{buildroot}%{_initddir}/salt-syndic install -Dpm 0755 pkg/old/suse/salt-minion %{buildroot}%{_initddir}/salt-minion install -Dpm 0755 pkg/old/suse/salt-api %{buildroot}%{_initddir}/salt-api ln -sf %{_initddir}/salt-master %{buildroot}%{_sbindir}/rcsalt-master ln -sf %{_initddir}/salt-syndic %{buildroot}%{_sbindir}/rcsalt-syndic ln -sf %{_initddir}/salt-minion %{buildroot}%{_sbindir}/rcsalt-minion ln -sf %{_initddir}/salt-api %{buildroot}%{_sbindir}/rcsalt-api %endif ## Install sysV salt-minion watchdog for SLES11 and RHEL6 %if 0%{?rhel} == 6 || 0%{?suse_version} == 1110 install -Dpm 0755 scripts/suse/watchdog/salt-daemon-watcher %{buildroot}%{_bindir}/salt-daemon-watcher %endif # ## install config files install -Dpm 0640 conf/minion %{buildroot}%{_sysconfdir}/salt/minion touch -m 0640 -r conf/minion %{buildroot}%{_sysconfdir}/salt/minion_id # ghost file install -Dpm 0640 conf/master %{buildroot}%{_sysconfdir}/salt/master install -Dpm 0640 conf/roster %{buildroot}%{_sysconfdir}/salt/roster install -Dpm 0640 conf/cloud %{buildroot}%{_sysconfdir}/salt/cloud install -Dpm 0640 conf/cloud.profiles %{buildroot}%{_sysconfdir}/salt/cloud.profiles install -Dpm 0640 conf/cloud.providers %{buildroot}%{_sysconfdir}/salt/cloud.providers install -Dpm 0640 transactional_update.conf %{buildroot}%{_sysconfdir}/salt/minion.d/transactional_update.conf # ## install logrotate file (for RHEL6 we use without sudo) %if 0%{?rhel} > 6 || 0%{?suse_version} install -Dpm 0644 pkg/old/suse/salt-common.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/salt %else install -Dpm 0644 pkg/common/salt-common.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/salt %endif # %if 0%{?suse_version} <= 1500 ## install SuSEfirewall2 rules install -Dpm 0644 pkg/old/suse/salt.SuSEfirewall2 %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/salt %endif # ## install completion scripts %if %{with bash_completion} install -Dpm 0644 pkg/common/salt.bash %{buildroot}%{_sysconfdir}/bash_completion.d/salt %endif %if %{with zsh_completion} install -Dpm 0644 pkg/common/salt.zsh %{buildroot}%{_sysconfdir}/zsh_completion.d/salt %endif %if %{with fish_completion} mkdir -p %{buildroot}%{fish_completions_dir} install -Dpm 0644 pkg/common/fish-completions/* %{buildroot}%{fish_completions_dir} %endif # Standalone Salt formulas configuration install -Dd -m 0750 %{buildroot}%{_prefix}/share/salt-formulas install -Dd -m 0750 %{buildroot}%{_prefix}/share/salt-formulas/states install -Dd -m 0750 %{buildroot}%{_prefix}/share/salt-formulas/metadata install -Dpm 0640 conf/suse/standalone-formulas-configuration.conf %{buildroot}%{_sysconfdir}/salt/master.d install -Dpm 0640 conf/suse/standalone-formulas-configuration.conf %{buildroot}%{_sysconfdir}/salt/minion.d %if 0%{?suse_version} > 1020 %fdupes %{buildroot}%{_docdir} %fdupes %{buildroot}%{python3_sitelib} %endif %endif %if "%{flavor}" != "testsuite" %pre S_HOME="/var/lib/salt" S_PHOME="/srv/salt" getent passwd salt | grep $S_PHOME >/dev/null && usermod -d $S_HOME salt getent group salt >/dev/null || %{_sbindir}/groupadd -r salt getent passwd salt >/dev/null || %{_sbindir}/useradd -r -g salt -d $S_HOME -s /bin/false -c "salt-master daemon" salt if [[ -d "$S_PHOME/.ssh" ]]; then mv $S_PHOME/.ssh $S_HOME fi %post %if %{with systemd} systemd-tmpfiles --create /usr/lib/tmpfiles.d/salt.conf || true %else dbus-uuidgen --ensure %endif %preun proxy %if %{with systemd} %if 0%{?suse_version} %service_del_preun salt-proxy@.service %else %systemd_preun salt-proxy@.service %endif %else %if 0%{?suse_version} %stop_on_removal salt-proxy %endif %endif %pre proxy %if %{with systemd} %if 0%{?suse_version} %service_add_pre salt-proxy@.service %endif %endif %post proxy %if %{with systemd} %if 0%{?suse_version} %service_add_post salt-proxy@.service %fillup_only %else %systemd_post salt-proxy@.service %endif %else %if 0%{?suse_version} %fillup_and_insserv %endif %endif %postun proxy %if %{with systemd} %if 0%{?suse_version} %service_del_postun salt-proxy@.service %else %systemd_postun_with_restart salt-proxy@.service %endif %else %if 0%{?suse_version} %insserv_cleanup %restart_on_update salt-proxy %endif %endif %preun syndic %if %{with systemd} %if 0%{?suse_version} %service_del_preun salt-syndic.service %else %systemd_preun salt-syndic.service %endif %else %if 0%{?suse_version} %stop_on_removal salt-syndic %else if [ $1 -eq 0 ] ; then /sbin/service salt-syndic stop >/dev/null 2>&1 /sbin/chkconfig --del salt-syndic fi %endif %endif %pre syndic %if %{with systemd} %if 0%{?suse_version} %service_add_pre salt-syndic.service %endif %endif %post syndic %if %{with systemd} %if 0%{?suse_version} %service_add_post salt-syndic.service %fillup_only %else %systemd_post salt-syndic.service %endif %else %if 0%{?suse_version} %fillup_and_insserv %endif %endif %postun syndic %if %{with systemd} %if 0%{?suse_version} %service_del_postun salt-syndic.service %else %systemd_postun_with_restart salt-syndic.service %endif %else %if 0%{?suse_version} %insserv_cleanup %restart_on_update salt-syndic %endif %endif %preun master %if %{with systemd} %if 0%{?suse_version} %service_del_preun salt-master.service %else %systemd_preun salt-master.service %endif %else %if 0%{?suse_version} %stop_on_removal salt-master %else if [ $1 -eq 0 ] ; then /sbin/service salt-master stop >/dev/null 2>&1 /sbin/chkconfig --del salt-master fi %endif %endif %pre master %if %{with systemd} %if 0%{?suse_version} %service_add_pre salt-master.service %endif %endif %post master if [ $1 -eq 2 ] ; then # Upgrading from an earlier version. If this is from 2014, where daemons # ran as root, we need to chown some stuff to salt in order for the new # version to actually work. It seems a manual restart of salt-master may # still be required, but at least this will actually work given the file # ownership is correct. # Symlinks are excluded to avoid possible user escalation (bsc#1157465) (CVE-2019-18897). for file in master.{pem,pub} ; do [ -f /etc/salt/pki/master/$file ] && [ ! -L /etc/salt/pki/master/$file ] && chown --no-dereference salt /etc/salt/pki/master/$file done MASTER_CACHE_DIR="/var/cache/salt/master" [ -d $MASTER_CACHE_DIR ] && find $MASTER_CACHE_DIR -type d | xargs -r chown --no-dereference salt:salt [ -d $MASTER_CACHE_DIR ] && find $MASTER_CACHE_DIR -type f | xargs -r chown --no-dereference salt:salt [ -f $MASTER_CACHE_DIR/.root_key ] && chown --no-dereference root:root $MASTER_CACHE_DIR/.root_key true fi %if %{with systemd} systemd_ver=$(rpm -q systemd --queryformat="%%{VERSION}") if [ "${systemd_ver%%.*}" -lt 228 ]; then # On systemd < 228 the 'TasksTask' attribute is not available. # Removing TasksMax from salt-master.service on SLE12SP1 LTSS (bsc#985112) sed -i '/TasksMax=infinity/d' %{_unitdir}/salt-master.service fi %if 0%{?suse_version} %service_add_post salt-master.service %fillup_only %else %systemd_post salt-master.service %endif %else %if 0%{?suse_version} %fillup_and_insserv %else /sbin/chkconfig --add salt-master %endif %endif %postun master %if %{with systemd} %if 0%{?suse_version} %service_del_postun salt-master.service %else %systemd_postun_with_restart salt-master.service %endif %else %if 0%{?suse_version} %restart_on_update salt-master %insserv_cleanup %else if [ "$1" -ge "1" ] ; then /sbin/service salt-master condrestart >/dev/null 2>&1 || : fi %endif %endif %preun minion %if %{with systemd} %if 0%{?suse_version} %service_del_preun salt-minion.service %else %systemd_preun salt-minion.service %endif %else %if 0%{?suse_version} %stop_on_removal salt-minion %else if [ $1 -eq 0 ] ; then /sbin/service salt-minion stop >/dev/null 2>&1 /sbin/chkconfig --del salt-minion fi %endif %endif %pre minion %if %{with systemd} %if 0%{?suse_version} %service_add_pre salt-minion.service %endif %endif %post minion %if %{with systemd} %if 0%{?suse_version} %service_add_post salt-minion.service %fillup_only %else %systemd_post salt-minion.service %endif %else %if 0%{?suse_version} %fillup_and_insserv %else /sbin/chkconfig --add salt-minion %endif %endif %postun minion %if %{with systemd} %if 0%{?suse_version} %service_del_postun salt-minion.service %else %systemd_postun_with_restart salt-minion.service %endif %else %if 0%{?suse_version} %insserv_cleanup %restart_on_update salt-minion %else if [ "$1" -ge "1" ] ; then /sbin/service salt-minion condrestart >/dev/null 2>&1 || : fi %endif %endif %preun api %if %{with systemd} %if 0%{?suse_version} %service_del_preun salt-api.service %else %systemd_preun salt-api.service %endif %else %stop_on_removal %endif %pre api %if %{with systemd} %if 0%{?suse_version} %service_add_pre salt-api.service %endif %endif %post api %if %{with systemd} %if 0%{?suse_version} %service_add_post salt-api.service %else %systemd_post salt-api.service %endif %else %if 0%{?suse_version} %fillup_and_insserv %endif %endif %postun api %if %{with systemd} %if 0%{?suse_version} %service_del_postun salt-api.service %else %systemd_postun_with_restart salt-api.service %endif %else %if 0%{?suse_version} %insserv_cleanup %restart_on_update %endif %endif %posttrans -n python3-salt # force re-generate a new thin.tgz rm -f %{_localstatedir}/cache/salt/master/thin/version rm -f %{_localstatedir}/cache/salt/minion/thin/version %files api %defattr(-,root,root) %{_bindir}/salt-api %{_sbindir}/rcsalt-api %if %{with systemd} %{_unitdir}/salt-api.service %else %{_initddir}/salt-api %endif %{_mandir}/man1/salt-api.1.* %files cloud %defattr(-,root,root) %{_bindir}/salt-cloud %dir %attr(0750, root, salt) %{_sysconfdir}/salt/cloud.maps.d %dir %attr(0750, root, salt) %{_sysconfdir}/salt/cloud.profiles.d %dir %attr(0750, root, salt) %{_sysconfdir}/salt/cloud.providers.d %config(noreplace) %attr(0640, root, salt) %{_sysconfdir}/salt/cloud %config(noreplace) %attr(0640, root, salt) %{_sysconfdir}/salt/cloud.profiles %config(noreplace) %attr(0640, root, salt) %{_sysconfdir}/salt/cloud.providers %dir %attr(0750, root, salt) %{_localstatedir}/cache/salt/cloud %attr(755,root,root)%{python3_sitelib}/salt/cloud/deploy/bootstrap-salt.sh %{_mandir}/man1/salt-cloud.1.* %files ssh %defattr(-,root,root) %{_bindir}/salt-ssh %{_mandir}/man1/salt-ssh.1.gz %files syndic %defattr(-,root,root) %{_bindir}/salt-syndic %{_mandir}/man1/salt-syndic.1.gz %{_sbindir}/rcsalt-syndic %if %{with systemd} %{_unitdir}/salt-syndic.service %else %{_initddir}/salt-syndic %endif %files minion %defattr(-,root,root) %{_bindir}/salt-minion %{_mandir}/man1/salt-minion.1.gz %config(noreplace) %attr(0640, root, root) %{_sysconfdir}/salt/minion %config(noreplace) %attr(0640, root, root) %ghost %{_sysconfdir}/salt/minion_id %dir %attr(0750, root, root) %{_sysconfdir}/salt/minion.d/ %dir %attr(0750, root, root) %{_sysconfdir}/salt/pki/minion/ %dir %attr(0750, root, root) %{_localstatedir}/cache/salt/minion/ %{_sbindir}/rcsalt-minion # Install plugin only on SUSE machines %if 0%{?suse_version} %{_prefix}/lib/zypp/plugins/commit/zyppnotify %endif # Install Yum plugins only on RH machines %if 0%{?fedora} || 0%{?rhel} %if 0%{?fedora} >= 22 || 0%{?rhel} >= 8 %{python3_sitelib}/dnf-plugins/dnfnotify.py %{python3_sitelib}/dnf-plugins/__pycache__/dnfnotify.* %{_sysconfdir}/dnf/plugins/dnfnotify.conf %else %{_prefix}/share/yum-plugins/yumnotify.* %{_sysconfdir}/yum/pluginconf.d/yumnotify.conf %endif %endif %if %{with systemd} %{_unitdir}/salt-minion.service %else %config(noreplace) %{_initddir}/salt-minion %endif ## Install sysV salt-minion watchdog for SLES11 and RHEL6 %if 0%{?rhel} == 6 || 0%{?suse_version} == 1110 %{_bindir}/salt-daemon-watcher %endif %files proxy %defattr(-,root,root) %{_bindir}/salt-proxy %{_mandir}/man1/salt-proxy.1.gz %if %{with systemd} %{_unitdir}/salt-proxy@.service %endif %files master %defattr(-,root,root) %{_bindir}/salt %{_bindir}/salt-master %{_bindir}/salt-cp %{_bindir}/salt-key %{_bindir}/salt-run %{_mandir}/man1/salt-master.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 %if 0%{?suse_version} <= 1500 %config(noreplace) %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/salt %endif %{_sbindir}/rcsalt-master %if %{with systemd} %{_unitdir}/salt-master.service %else %config(noreplace) %{_initddir}/salt-master %endif # %config(noreplace) %attr(0640, root, salt) %{_sysconfdir}/salt/master %config(noreplace) %attr(0640, root, salt) %{_sysconfdir}/salt/roster %dir %attr(0755, root, salt) %{_sysconfdir}/salt/master.d/ %dir %attr(0750, salt, salt) %{_sysconfdir}/salt/pki/master/ %dir %attr(0750, salt, salt) %{_sysconfdir}/salt/pki/master/minions/ %dir %attr(0750, salt, salt) %{_sysconfdir}/salt/pki/master/minions_autosign/ %dir %attr(0750, salt, salt) %{_sysconfdir}/salt/pki/master/minions_denied/ %dir %attr(0750, salt, salt) %{_sysconfdir}/salt/pki/master/minions_pre/ %dir %attr(0750, salt, salt) %{_sysconfdir}/salt/pki/master/minions_rejected/ %dir %attr(0755, salt, salt) /var/lib/salt %dir %attr(0755, root, salt) /srv/salt %dir %attr(0755, root, salt) /srv/pillar %dir %attr(0750, salt, salt) %{_localstatedir}/cache/salt/master/ %dir %attr(0750, salt, salt) %{_localstatedir}/cache/salt/master/jobs/ %dir %attr(0750, salt, salt) %{_localstatedir}/cache/salt/master/proc/ %dir %attr(0750, salt, salt) %{_localstatedir}/cache/salt/master/queues/ %dir %attr(0750, salt, salt) %{_localstatedir}/cache/salt/master/roots/ %dir %attr(0750, salt, salt) %{_localstatedir}/cache/salt/master/syndics/ %dir %attr(0750, salt, salt) %{_localstatedir}/cache/salt/master/tokens/ %files %defattr(-,root,root,-) %{_bindir}/spm %{_bindir}/salt-call %{_bindir}/salt-support %{_mandir}/man1/salt-call.1.gz %{_mandir}/man1/spm.1.gz %config(noreplace) %{_sysconfdir}/logrotate.d/salt %{!?_licensedir:%global license %doc} %license LICENSE %doc AUTHORS README.rst README.SUSE # %dir %attr(0750, root, salt) %{_sysconfdir}/salt %dir %attr(0750, root, salt) %{_sysconfdir}/salt/pki %dir %attr(0750, salt, salt) %{_localstatedir}/log/salt %dir %attr(0750, root, salt) %{_localstatedir}/cache/salt %dir %attr(0750, root, salt) /srv/spm %if %{with systemd} /usr/lib/tmpfiles.d/salt.conf %endif %{_mandir}/man1/salt.1.* %files -n python3-salt %defattr(-,root,root,-) %dir %{python3_sitelib}/salt %dir %{python3_sitelib}/salt-*.egg-info %{python3_sitelib}/salt/* %{python3_sitelib}/salt-*.egg-info/* %exclude %{python3_sitelib}/salt/cloud/deploy/*.sh %if %{with docs} %files doc %defattr(-,root,root) %doc doc/_build/html %endif %if %{with bash_completion} %files bash-completion %defattr(-,root,root) %dir %{_sysconfdir}/bash_completion.d/ %config %{_sysconfdir}/bash_completion.d/%{name} %endif %if %{with zsh_completion} %files zsh-completion %defattr(-,root,root) %dir %{_sysconfdir}/zsh_completion.d/ %config %{_sysconfdir}/zsh_completion.d/%{name} %endif %if %{with fish_completion} %files fish-completion %defattr(-,root,root) %{fish_completions_dir}/salt* %dir %{fish_completions_dir} %dir %{fish_dir} %endif %files standalone-formulas-configuration %defattr(-,root,root) %dir %attr(0755, root, salt) %{_sysconfdir}/salt/master.d/ %config(noreplace) %attr(0640, root, salt) %{_sysconfdir}/salt/master.d/standalone-formulas-configuration.conf %dir %attr(0750, root, root) %{_sysconfdir}/salt/minion.d/ %config(noreplace) %attr(0640, root, root) %{_sysconfdir}/salt/minion.d/standalone-formulas-configuration.conf %dir %attr(0755, root, salt) %{_prefix}/share/salt-formulas/ %dir %attr(0755, root, salt) %{_prefix}/share/salt-formulas/states/ %dir %attr(0755, root, salt) %{_prefix}/share/salt-formulas/metadata/ %files transactional-update %defattr(-,root,root) %config(noreplace) %attr(0640, root, root) %{_sysconfdir}/salt/minion.d/transactional_update.conf %endif %if "%{flavor}" == "testsuite" %files -n python3-salt-testsuite %{python3_sitelib}/salt-testsuite %endif %changelog