Skip to content

Salt Bundle

Victor Zhestkov edited this page Jul 22, 2025 · 13 revisions
Package Original package Original project Description
+ saltbundle-libsodium libsodium SUSE:SLE-15:Update
saltbundle-openssl openssl SUSE:SLE-12-SP2:Update Required for SLE12 bulding only as SLE12 GA contains outdated and incompatible with Python 3.9 version of openssl
saltbundle-swig swig SUSE:SLE-15-SP6:Update
+ saltbundle-zeromq zeromq SUSE:SLE-15:Update
+ saltbundlepy python311 SUSE:SLE-15-SP6:Update
+ saltbundlepy-appdirs python-appdirs SUSE:SLE-15:GA
+ saltbundlepy-apt - - The package is building separately for all Debian based distros as the APT versions used in the distros are different and the module is binary
saltbundlepy-asn1crypto python-asn1crypto SUSE:SLE-15:Update
saltbundlepy-atomicwrites python-atomicwrites SUSE:SLE-15-SP1:GA
saltbundlepy-attrs python-attrs SUSE:SLE-15:GA
+ saltbundlepy-bcrypt python-bcrypt SUSE:SLE-15-SP3:GA
+ saltbundlepy-certifi python-certifi SUSE:SLE-15:GA
saltbundlepy-cffi python-cffi SUSE:SLE-15-SP2:Update
+ saltbundlepy-chardet python-chardet SUSE:SLE-15:GA
saltbundlepy-cryptography python-cryptography SUSE:SLE-15-SP2:Update
saltbundlepy-cryptography-vectors python-cryptography-vectors SUSE:SLE-15-SP2:GA
+ saltbundlepy-cssselect python-cssselect SUSE:SLE-15:GA
saltbundlepy-cython python-Cython SUSE:SLFO:Main
+ saltbundlepy-dbus-python python-dbus-python SUSE:SLE-15-SP6:Update Build only enabled for SUSE/openSUSE based distros
+ saltbundlepy-distro python-distro SUSE:SLE-15:Update
+ saltbundlepy-docker python-docker SUSE:SLE-15-SP2:Update
+ saltbundlepy-docker-pycreds python-docker-pycreds SUSE:SLE-15-SP2:Update
+ saltbundlepy-docopt python-docopt SUSE:SLE-15:GA
+ saltbundlepy-idna python-idna SUSE:SLE-15:GA
saltbundlepy-importlib-metadata python-importlib-metadata SUSE:SLE-15-SP1:Update
+ saltbundlepy-jinja2 python-Jinja2 SUSE:SLE-15:Update
+ saltbundlepy-kiwi python-kiwi SUSE:SLE-15-SP1:Update
+ saltbundlepy-libvirt python-libvirt-python SUSE:SLE-15-SP4:Update The package is placed in SLE15 subproject and linked to all SUSE based distros.
+ saltbundlepy-lxml python-lxml SUSE:SLFO:Main
+ saltbundlepy-m2crypto python-M2Crypto SUSE:SLE-15-SP4:Update
+ saltbundlepy-markupsafe python-MarkupSafe SUSE:SLFO:Main
saltbundlepy-more-itertools python-more-itertools SUSE:SLE-15-SP1:Update
+ saltbundlepy-msgpack python-msgpack SUSE:SLFO:Main
saltbundlepy-netaddr python-netaddr SUSE:SLE-15:GA
saltbundlepy-packaging python-packaging SUSE:SLE-15-SP2:GA
+ saltbundlepy-paramiko python-paramiko SUSE:SLE-15-SP1:Update
+ saltbundlepy-pip python310-pip SUSE:SLE-15-SP4:Update
saltbundlepy-pluggy python-pluggy SUSE:SLE-15-SP1:Update
+ saltbundlepy-psutil python-psutil SUSE:SLFO:Main
saltbundlepy-ptyprocess python-ptyprocess SUSE:SLE-15:GA
saltbundlepy-py python-py SUSE:SLE-15-SP1:Update
saltbundlepy-pyasn1 python-pyasn1 SUSE:SLE-15:Update
saltbundlepy-pyasn1-modules python-pyasn1-modules SUSE:SLE-15:Update
saltbundlepy-pycparser python-pycparser SUSE:SLE-15:Update
saltbundlepy-pycurl python-pycurl SUSE:SLE-15:Update
+ saltbundlepy-pyinotify python-pyinotify SUSE:SLE-15:Update
saltbundlepy-pynacl python-PyNaCl SUSE:SLE-15:Update
+ saltbundlepy-pyopenssl python-pyOpenSSL SUSE:SLE-15-SP3:GA
saltbundlepy-pyparsing python-pyparsing SUSE:SLE-15-SP3:GA
+ saltbundlepy-pysocks python-PySocks SUSE:SLE-15:GA Additional patches for Python 3.9 deprecations fix applied
saltbundlepy-pytest python-pytest SUSE:SLE-15-SP1:Update
+ saltbundlepy-pytz python-pytz SUSE:SLE-15-SP3:Update
+ saltbundlepy-pyxattr python-pyxattr openSUSE:Factory
+ saltbundlepy-pyyaml python-pyyaml SUSE:SLFO:Main
+ saltbundlepy-pyzmq python-pyzmq SUSE:SLFO:Main
+ saltbundlepy-requests python-requests SUSE:SLE-15-SP3:GA
saltbundlepy-rpm-macros python-rpm-macros SUSE:SLE-15:Update Modified for saltbundlepy python flavor
+ saltbundlepy-rpm-vercmp GitHub - With additional patch from https://github.com/sassoftware/python-rpm-vercmp/pull/3
+ saltbundlepy-setuptools python-setuptools SUSE:SLFO:Main
saltbundlepy-setuptools-scm python-setuptools_scm SUSE:SLFO:Main
saltbundlepy-simplejson python-simplejson SUSE:SLE-15-SP3:GA
+ saltbundlepy-six python-six SUSE:SLFO:Main
saltbundlepy-tornado python-tornado SUSE:SLE-15:Update
+ saltbundlepy-urllib3 python-urllib3 SUSE:SLE-15-SP3:Update
saltbundlepy-venvjail GitHub -
saltbundlepy-wcwidth python-wcwidth SUSE:SLE-15-SP1:Update
saltbundlepy-wheel python-wheel SUSE:SLFO:Main
+ saltbundlepy-websocket-client python-websocket-client SUSE:SLE-15-SP1:Update
saltbundlepy-zipp python-zipp SUSE:SLE-15-SP1:Update
+ saltbundlepy-zypp-plugin zypp-plugin SUSE:SLE-15:GA
+ venv-salt-minion GitHub - Resulting and only published package with Salt codebase from openSUSE Salt 3002.2

+ - The package is included to the Salt Bundle venv-salt-minion directly, all the rest are build time dependencies.

Note: All the inheritance is listed as we have right now in SUSE:SLE-15-SP3:Update, except the packages inherited from openSUSE:Factory.

Updating Salt Bundle dependencies

Important notes

For now the Salt Bundle dependencies update is mostly manual task as the dependency package is not just a full 1:1 copy of the source package due to some limitation from tha maintanance side like impossibility to have the packages with the same name in the same codestream, so for binary dependencies saltbundle- prefix is used, for python dependencies saltbundlepy- prefix is used. The original packages should be renamed to lowercased name with such prefix (the limitation for lowercased name and using - instead of _ in the name is caused by deb packages naming limitations. For example python-setuptools_scm became saltbundlepy-setuptools-scm, 'python-MarkupSafebecamesaltbundlepy-markupsafe`.

salybundlepy is used as an internal name of python flavor of python package, so the spec should be adjusted to use saltbundepy_ prefixes instead of python_ where needed. With some of the macroses python_ prefixes could be translated to saltbundlepy_ automatically, but not with the dependencies in the header of the spec as OBS is performing dependency resoultion by itself before running package build.

Preferred source packages origins

We are trying to keep Salt Bundle as stable as possible, so originally the latest available sources was used from SUSE:SLE-15-SPx:Update. With the latest SLFO project it's preferred to align the sources with SUSE:SLFO:Main as the latest available stable, there could be some dependency issues with the packages from these sources as we have to build Salt Bundle on base of Python 3.11 because of dependency issues with higher version of Python with salt 3006.0. In some specific cases we have to use packages from openSUSE:Factory for example in case if SUSE:SLE-15-SPx:Update doesn't have the version compatible with Python 3.11 (for now shouldn't really happen). On the other hand, the latest version from either SUSE:SLFO:Main or openSUSE:Factory could be incompatible with some core binary dependencies of the sertain target we are building the Salt Bundle for. For example old gcc or openssl in SLE12 or CentOS 7.

Updating package sources

This just requires to choose the correct source of the dependency package and copy updated files to the destination with aligning .spec file of the destination Salt Bundle dependency pacakge. It works for most cases when just the version is bumping, but it could require some adjustments in the .spec. New changelog should be created manually with osc vc and copying all the changelog entries content in between the previous dependency update and the current one in one changelog entry. These changelog entries are not promoted to the bundle package in any way and only required for us to track the changes made in the dependencies, but even in this case the changelog entries should be formatted according to the latest requirements described in openSUSE:Creating a changes file (RPM).

Aligning .spec files

For easier maintanance it's better to keep .spec file of the Salt Bundle dependency aligned with the source as much as possible, but it's not possible to keep them as 1:1 copy because of the difference of the package names, difference of singlespec macro prefixes used for Salt Bundle. With the promoting the updates the easiest way is to check the difference between the .spec files with diff -urN /path/to/saltbundle*.spec /path/to/source/rpm/*.spec.

Note that there could be some patches specific to Salt Bundle dependencies only and in some specific cases we have to align them with original sources. It could be especially challenging with cryptography and OpenSSL related packages. There is no any specific recommendations for such cases. It's better to keep the %check section working if it doesn't require huge number of extra dependencies just to make tests running.

Clone this wiki locally