From 12e7e3b2f656277de1e4fe92aee4c20e7a21f913 Mon Sep 17 00:00:00 2001 From: Laurent Coustet Date: Fri, 15 Nov 2013 12:20:30 +0100 Subject: [PATCH] OpenBSD packages can be installed using 'flavour'. Best example is vim. It can be installed as vim--no_x11 or vim--gtk2. --- CHANGELOG.md | 1 + library/packaging/openbsd_pkg | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f9bf870990..04aa82a02cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -63,6 +63,7 @@ Misc changes: * Fixes for IPv6 addresses in inventory text files * name of executable can be passed to pip/gem etc, for installing under *different* interpreters * copy of ./hacking/env-setup added for fish users, ./hacking/env-setup.fish +* openbsd_pkg can handle "flavoured" packages like vim--no_x11 1.3.4 "Top of the World" (reprise) - October 29, 2013 diff --git a/library/packaging/openbsd_pkg b/library/packaging/openbsd_pkg index 16f969ff0fd..079c62e191c 100644 --- a/library/packaging/openbsd_pkg +++ b/library/packaging/openbsd_pkg @@ -52,6 +52,9 @@ EXAMPLES = ''' # Make sure nmap is not installed - openbsd_pkg: name=nmap state=absent + +# Make sure vim is installed using no_x11 flavour +- openbsd_pkg name=vim--no_x11 state=present ''' # Function used for executing commands. @@ -81,13 +84,23 @@ def get_current_name(name, specific_version, module): return current_name # Function used to find out if a package is currently installed. +# OpenBSD packages can contain "flavours" +# For example vim is distributed as a "gtk2": +# - vim--gtk2 +# and "no_x11" flavour: +# - vim--no_x11 def get_package_state(name, specific_version, module): info_cmd = 'pkg_info -e' if specific_version: syntax = "%s %s" else: + if "--" in name: + (name, flavour) = name.split("--", 1) syntax = "%s %s-*" + if flavour: + syntax += "-%s" % (flavour, ) + syntax = "%s-" rc, stdout, stderr = execute_command(syntax % (info_cmd, name), module)