I'm installing burp 2.1 on my systems thusly with salt:

burp-pkgs:
  pkg.installed:
    - pkgs:
        - burp%2.1

This works reasonably well, except that salt doesn't understand that
2.1 is already installed.  So on every highstate run it tries to
install it again.
pkg_add usually does nothing. Except when a new snapshot is out, then
I get a new version of quirks installed. This is annoying since I get
an email that salt change something.

It would also upgrade the burp package if there was a newer one and
all hell might break lose. I'd rather do my sysupgrade and pkg_add -u
when I want them, not when salt runs.

Anyway, this teaches salt about branch names, I'm running with this
for about a month now.

diff --git Makefile Makefile
index 8018247174c..55e7d9e44eb 100644
--- Makefile
+++ Makefile
@@ -19,6 +19,7 @@ COMMENT =             remote execution and configuration 
management system
 
 MODPY_EGG_VERSION =    3000.3
 DISTNAME =             salt-${MODPY_EGG_VERSION}
+REVISION =             0
 
 CATEGORIES =           sysutils net devel
 
diff --git patches/patch-salt_states_pkg_py patches/patch-salt_states_pkg_py
new file mode 100644
index 00000000000..f5e67b319ce
--- /dev/null
+++ patches/patch-salt_states_pkg_py
@@ -0,0 +1,21 @@
+$OpenBSD$
+
+Index: salt/states/pkg.py
+--- salt/states/pkg.py.orig
++++ salt/states/pkg.py
+@@ -713,6 +713,15 @@ def _find_install_targets(name=None,
+     failed_verify = False
+     for package_name, version_string in six.iteritems(desired):
+         cver = cur_pkgs.get(package_name, [])
++        if not cver and salt.utils.platform.is_openbsd():
++            if "%" in package_name:
++                # deal with %branch package names, e.g. python%3.7
++                (stem, branch) = package_name.split("%")
++                for tver in cur_pkgs.get(stem, []):
++                    if tver.startswith(branch):
++                        cver = [tver]
++                        break
++
+         if resolve_capabilities and not cver and package_name in cur_prov:
+             cver = cur_pkgs.get(cur_prov.get(package_name)[0], [])
+ 


-- 
I'm not entirely sure you are real.

Reply via email to