diff --git a/bin/cdist-build-helper b/bin/cdist-build-helper
index 6f514ef5..0380b3f8 100755
--- a/bin/cdist-build-helper
+++ b/bin/cdist-build-helper
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# 2011-2022 Nico Schottelius (nico-cdist at schottelius.org)
+# 2011-2013 Nico Schottelius (nico-cdist at schottelius.org)
# 2016-2019 Darko Poljak (darko.poljak at gmail.com)
#
# This file is part of cdist.
@@ -534,8 +534,7 @@ eof
;;
version)
- target_version="$(git describe | sed 's/-/.dev/; s/-/+/g')"
- printf "VERSION = \"%s\"\n" "${target_version}" > cdist/version.py
+ printf "VERSION = \"%s\"\n" "$(git describe)" > cdist/version.py
;;
target-version)
diff --git a/cdist/argparse.py b/cdist/argparse.py
index 8f7bbb85..f17315e7 100644
--- a/cdist/argparse.py
+++ b/cdist/argparse.py
@@ -472,6 +472,9 @@ def get_parsers():
parser['info'].set_defaults(func=cdist.info.Info.commandline)
# Scan = config + further
+ parser['scan'] = parser['sub'].add_parser('scan', add_help=False,
+ parents=[parser['config']])
+
parser['scan'] = parser['sub'].add_parser(
'scan', parents=[parser['loglevel'],
parser['beta'],
diff --git a/cdist/conf/explorer/lsb_codename b/cdist/conf/explorer/lsb_codename
index c9fb5cdf..26bb8e3d 100755
--- a/cdist/conf/explorer/lsb_codename
+++ b/cdist/conf/explorer/lsb_codename
@@ -21,9 +21,6 @@
set +e
case "$("$__explorer/os")" in
- checkpoint)
- awk '{printf("%s\n", $(NF-1))}' /etc/cp-release
- ;;
openwrt)
# shellcheck disable=SC1091
(. /etc/openwrt_release && echo "$DISTRIB_CODENAME")
diff --git a/cdist/conf/explorer/lsb_description b/cdist/conf/explorer/lsb_description
index 7279a9c2..b1009627 100755
--- a/cdist/conf/explorer/lsb_description
+++ b/cdist/conf/explorer/lsb_description
@@ -21,9 +21,6 @@
set +e
case "$("$__explorer/os")" in
- checkpoint)
- cat /etc/cp-release
- ;;
openwrt)
# shellcheck disable=SC1091
(. /etc/openwrt_release && echo "$DISTRIB_DESCRIPTION")
diff --git a/cdist/conf/explorer/lsb_id b/cdist/conf/explorer/lsb_id
index 1f91cc40..82ff9977 100755
--- a/cdist/conf/explorer/lsb_id
+++ b/cdist/conf/explorer/lsb_id
@@ -21,9 +21,6 @@
set +e
case "$("$__explorer/os")" in
- checkpoint)
- echo "CheckPoint"
- ;;
openwrt)
# shellcheck disable=SC1091
(. /etc/openwrt_release && echo "$DISTRIB_ID")
diff --git a/cdist/conf/explorer/lsb_release b/cdist/conf/explorer/lsb_release
index 0bb9f7fe..5ebfff1a 100755
--- a/cdist/conf/explorer/lsb_release
+++ b/cdist/conf/explorer/lsb_release
@@ -21,9 +21,6 @@
set +e
case "$("$__explorer/os")" in
- checkpoint)
- sed /etc/cp-release -e 's/.* R\([1-9][0-9]*\)\.[0-9]*$/\1/'
- ;;
openwrt)
# shellcheck disable=SC1091
(. /etc/openwrt_release && echo "$DISTRIB_RELEASE")
diff --git a/cdist/conf/explorer/machine_type b/cdist/conf/explorer/machine_type
index c31f5ca6..00646c75 100755
--- a/cdist/conf/explorer/machine_type
+++ b/cdist/conf/explorer/machine_type
@@ -515,7 +515,7 @@ check_vm_arch_specific() {
&& return 0
fi
if has_cpuinfo \
- && grep -q -i -e '^flags.*:.*\(hypervisor\|vmm\)\( \|$\)' /proc/cpuinfo
+ && grep -q -i -e '^flags.*:.*\(hypervisor\|vmm\)' /proc/cpuinfo
then
return 0
fi
diff --git a/cdist/conf/explorer/os b/cdist/conf/explorer/os
index b9232ee4..32bb282c 100755
--- a/cdist/conf/explorer/os
+++ b/cdist/conf/explorer/os
@@ -51,6 +51,13 @@ if grep -q ^DISTRIB_ID=Ubuntu /etc/lsb-release 2>/dev/null; then
exit 0
fi
+if grep -q ^DISTRIB_ID=LinuxMint /etc/lsb-release 2>/dev/null; then
+ echo linuxmint
+ exit 0
+fi
+
+#FIXME: Linux Mint Debian Edition/lmde
+
# devuan ascii has both devuan_version and debian_version, so we need to check devuan_version first!
if [ -f /etc/devuan_version ]; then
echo devuan
@@ -116,13 +123,6 @@ if [ -f /etc/slackware-version ]; then
exit 0
fi
-# Appliances
-
-if grep -q '^Check Point Gaia' /etc/cp-release 2>/dev/null; then
- echo checkpoint
- exit 0
-fi
-
uname_s="$(uname -s)"
# Assume there is no tr on the client -> do lower case ourselves
diff --git a/cdist/conf/explorer/os_release b/cdist/conf/explorer/os_release
index ec85046f..6489446b 100644
--- a/cdist/conf/explorer/os_release
+++ b/cdist/conf/explorer/os_release
@@ -34,9 +34,5 @@ elif test -f /var/run/os-release
then
# FreeBSD (created by os-release service)
cat /var/run/os-release
-elif test -f /etc/cp-release
-then
- # Checkpoint firewall or management (actually linux based)
- cat /etc/cp-release
fi
diff --git a/cdist/conf/explorer/os_version b/cdist/conf/explorer/os_version
index fc59fd14..edc92a77 100755
--- a/cdist/conf/explorer/os_version
+++ b/cdist/conf/explorer/os_version
@@ -41,10 +41,7 @@ in
# empty, but well...
cat /etc/arch-release
;;
- checkpoint)
- awk '{version=$NF; printf("%s\n", substr(version, 2))}' /etc/cp-release
- ;;
- debian)
+ debian|lmde)
debian_version=$(cat /etc/debian_version)
case $debian_version
in
@@ -82,7 +79,6 @@ in
# ceres versions don't have a number, so we decode by codename:
case ${devuan_version}
in
- (daedalus/ceres) echo 4.99 ;;
(chimaera/ceres) echo 3.99 ;;
(beowulf/ceres) echo 2.99 ;;
(ascii/ceres) echo 1.99 ;;
@@ -138,7 +134,7 @@ in
cat /etc/SuSE-release
fi
;;
- ubuntu)
+ ubuntu|linuxmint)
if command -v lsb_release >/dev/null 2>&1
then
lsb_release -sr
diff --git a/cdist/conf/type/__apt_backports/manifest b/cdist/conf/type/__apt_backports/manifest
index 6fcd9212..46bf8eb2 100755
--- a/cdist/conf/type/__apt_backports/manifest
+++ b/cdist/conf/type/__apt_backports/manifest
@@ -36,7 +36,7 @@ codename_os_release() {
# detect backport distribution
os="$(cat "$__global/explorer/os")"
case "$os" in
- debian)
+ debian|lmde)
dist="$( codename_os_release )"
components="main"
mirror="http://deb.debian.org/debian/"
@@ -46,7 +46,7 @@ case "$os" in
components="main"
mirror="http://deb.devuan.org/merged"
;;
- ubuntu)
+ ubuntu|linuxmint)
dist="$( codename_os_release )"
components="main restricted universe multiverse"
mirror="http://archive.ubuntu.com/ubuntu"
diff --git a/cdist/conf/type/__apt_default_release/manifest b/cdist/conf/type/__apt_default_release/manifest
index 1232efb5..bbdf6311 100755
--- a/cdist/conf/type/__apt_default_release/manifest
+++ b/cdist/conf/type/__apt_default_release/manifest
@@ -24,7 +24,7 @@ os=$(cat "$__global/explorer/os")
release="$(cat "$__object/parameter/release")"
case "$os" in
- ubuntu|debian|devuan)
+ ubuntu|debian|devuan|linuxmint|lmde)
__file /etc/apt/apt.conf.d/99-default-release \
--owner root --group root --mode 644 \
--source - << DONE
diff --git a/cdist/conf/type/__apt_mark/explorer/state b/cdist/conf/type/__apt_mark/explorer/state
index b464179a..b7fe08fa 100755
--- a/cdist/conf/type/__apt_mark/explorer/state
+++ b/cdist/conf/type/__apt_mark/explorer/state
@@ -24,4 +24,4 @@ else
name="$__object_id"
fi
-apt-mark showhold | grep -q "^${name}$" && echo hold || echo unhold
+apt-mark showhold | grep -Fq "$name" && echo hold || echo unhold
diff --git a/cdist/conf/type/__apt_norecommends/manifest b/cdist/conf/type/__apt_norecommends/manifest
index fc187784..05bc369e 100755
--- a/cdist/conf/type/__apt_norecommends/manifest
+++ b/cdist/conf/type/__apt_norecommends/manifest
@@ -24,7 +24,7 @@ os=$(cat "${__global:?}/explorer/os")
case ${os}
in
- (ubuntu|debian|devuan)
+ (ubuntu|debian|devuan|linuxmint|lmde)
__file /etc/apt/apt.conf.d/00InstallRecommends --state present \
--owner root --group root --mode 0644 --source - <<-'EOF'
APT::Install-Recommends "false";
diff --git a/cdist/conf/type/__apt_pin/man.rst b/cdist/conf/type/__apt_pin/man.rst
index e6ec8b51..4229c0cd 100644
--- a/cdist/conf/type/__apt_pin/man.rst
+++ b/cdist/conf/type/__apt_pin/man.rst
@@ -23,7 +23,7 @@ package
Package name, glob or regular expression to match (multiple) packages. If not specified `__object_id` is used.
priority
- The priority value to assign to matching packages. Defaults to 500. (To match the default target distro's priority)
+ The priority value to assign to matching packages. Deafults to 500. (To match the default target distro's priority)
state
Will be passed to underlying `__file` type; see there for valid values and defaults.
diff --git a/cdist/conf/type/__apt_pin/manifest b/cdist/conf/type/__apt_pin/manifest
index 983b2b42..22368d7a 100755
--- a/cdist/conf/type/__apt_pin/manifest
+++ b/cdist/conf/type/__apt_pin/manifest
@@ -35,7 +35,7 @@ priority="$(cat "$__object/parameter/priority")"
case "$os" in
- debian|ubuntu|devuan)
+ debian|ubuntu|devuan|linux|lmde)
;;
*)
printf "This type is specific to Debian and it's derivatives" >&2
@@ -57,11 +57,6 @@ __file "/etc/apt/preferences.d/$name" \
--owner root --group root --mode 0644 \
--state "$state" \
--source - << EOF
-# Created by cdist ${__type##*/}
-# Do not change. Changes will be overwritten.
-#
-
-# $name
Package: $package
Pin: $pin
Pin-Priority: $priority
diff --git a/cdist/conf/type/__apt_pin/parameter/default/priority b/cdist/conf/type/__apt_pin/parameter/default/priority
deleted file mode 100644
index 1b79f38e..00000000
--- a/cdist/conf/type/__apt_pin/parameter/default/priority
+++ /dev/null
@@ -1 +0,0 @@
-500
diff --git a/cdist/conf/type/__apt_pin/parameter/optional b/cdist/conf/type/__apt_pin/parameter/optional
index 847e703d..52f01fd2 100644
--- a/cdist/conf/type/__apt_pin/parameter/optional
+++ b/cdist/conf/type/__apt_pin/parameter/optional
@@ -1,3 +1,2 @@
state
package
-priority
diff --git a/cdist/conf/type/__apt_pin/parameter/required b/cdist/conf/type/__apt_pin/parameter/required
index c8572d92..4b4e9741 100644
--- a/cdist/conf/type/__apt_pin/parameter/required
+++ b/cdist/conf/type/__apt_pin/parameter/required
@@ -1 +1,2 @@
distribution
+priority
diff --git a/cdist/conf/type/__apt_ppa/files/remove-apt-repository b/cdist/conf/type/__apt_ppa/files/remove-apt-repository
new file mode 100755
index 00000000..3eb7d491
--- /dev/null
+++ b/cdist/conf/type/__apt_ppa/files/remove-apt-repository
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+#
+# Remove the given apt repository.
+#
+# Exit with:
+# 0: if it worked
+# 1: if not
+# 2: on other error
+
+import os
+import sys
+from aptsources import distro, sourceslist
+from softwareproperties import ppa
+from softwareproperties.SoftwareProperties import SoftwareProperties
+
+
+def remove_if_empty(file_name):
+ with open(file_name, 'r') as f:
+ if f.read().strip():
+ return
+ os.unlink(file_name)
+
+def remove_repository(repository):
+ #print 'repository:', repository
+ codename = distro.get_distro().codename
+ #print 'codename:', codename
+ (line, file) = ppa.expand_ppa_line(repository.strip(), codename)
+ #print 'line:', line
+ #print 'file:', file
+ deb_source_entry = sourceslist.SourceEntry(line, file)
+ src_source_entry = sourceslist.SourceEntry('deb-src{}'.format(line[3:]), file)
+
+ try:
+ sp = SoftwareProperties()
+ sp.remove_source(deb_source_entry)
+ try:
+ # If there's a deb-src entry, remove that too
+ sp.remove_source(src_source_entry)
+ except:
+ pass
+ remove_if_empty(file)
+ return True
+ except ValueError:
+ print >> sys.stderr, "Error: '%s' doesn't exists in a sourcelist file" % line
+ return False
+
+if __name__ == '__main__':
+ if (len(sys.argv) != 2):
+ print >> sys.stderr, 'Error: need a repository as argument'
+ sys.exit(2)
+ repository = sys.argv[1]
+ if remove_repository(repository):
+ sys.exit(0)
+ else:
+ sys.exit(1)
diff --git a/cdist/conf/type/__apt_ppa/gencode-remote b/cdist/conf/type/__apt_ppa/gencode-remote
index e41341b8..84ebebfe 100755
--- a/cdist/conf/type/__apt_ppa/gencode-remote
+++ b/cdist/conf/type/__apt_ppa/gencode-remote
@@ -29,9 +29,9 @@ fi
case "$state_should" in
present)
- echo "add-apt-repository -y '$name'"
+ echo "add-apt-repository '$name'"
;;
absent)
- echo "add-apt-repository -r -y '$name'"
+ echo "remove-apt-repository '$name'"
;;
esac
diff --git a/cdist/conf/type/__apt_ppa/manifest b/cdist/conf/type/__apt_ppa/manifest
index 57e85442..c6f4e876 100755
--- a/cdist/conf/type/__apt_ppa/manifest
+++ b/cdist/conf/type/__apt_ppa/manifest
@@ -20,4 +20,9 @@
__package software-properties-common
+require="__package/software-properties-common" \
+ __file /usr/local/bin/remove-apt-repository \
+ --source "$__type/files/remove-apt-repository" \
+ --mode 0755
+
require="$__object_name" __apt_update_index
diff --git a/cdist/conf/type/__apt_source/files/source.list.template b/cdist/conf/type/__apt_source/files/source.list.template
index a28bb45f..d4420e96 100755
--- a/cdist/conf/type/__apt_source/files/source.list.template
+++ b/cdist/conf/type/__apt_source/files/source.list.template
@@ -2,14 +2,13 @@
set -u
entry="$uri $distribution $component"
-
cat << DONE
# Created by cdist ${__type##*/}
# Do not change. Changes will be overwritten.
#
# $name
-deb ${options} $entry
+deb ${forcedarch} $entry
DONE
if [ -f "$__object/parameter/include-src" ]; then
echo "deb-src $entry"
diff --git a/cdist/conf/type/__apt_source/man.rst b/cdist/conf/type/__apt_source/man.rst
index d317a135..d1acb388 100644
--- a/cdist/conf/type/__apt_source/man.rst
+++ b/cdist/conf/type/__apt_source/man.rst
@@ -23,9 +23,6 @@ OPTIONAL PARAMETERS
arch
set this if you need to force and specific arch (ubuntu specific)
-signed-by
- provide a GPG key fingerprint or keyring path for signature checks
-
state
'present' or 'absent', defaults to 'present'
@@ -59,11 +56,6 @@ EXAMPLES
--uri http://archive.canonical.com/ \
--component partner --state present
- __apt_source goaccess \
- --uri http://deb.goaccess.io/ \
- --component main \
- --signed-by C03B48887D5E56B046715D3297BD1A0133449C3D
-
AUTHORS
-------
diff --git a/cdist/conf/type/__apt_source/manifest b/cdist/conf/type/__apt_source/manifest
index fd1ec47f..35f15909 100755
--- a/cdist/conf/type/__apt_source/manifest
+++ b/cdist/conf/type/__apt_source/manifest
@@ -21,7 +21,6 @@
name="$__object_id"
state="$(cat "$__object/parameter/state")"
uri="$(cat "$__object/parameter/uri")"
-options=""
if [ -f "$__object/parameter/distribution" ]; then
distribution="$(cat "$__object/parameter/distribution")"
@@ -32,15 +31,9 @@ fi
component="$(cat "$__object/parameter/component")"
if [ -f "$__object/parameter/arch" ]; then
- options="arch=$(cat "$__object/parameter/arch")"
-fi
-
-if [ -f "$__object/parameter/signed-by" ]; then
- options="$options signed-by=$(cat "$__object/parameter/signed-by")"
-fi
-
-if [ "$options" ]; then
- options="[$options]"
+ forcedarch="[arch=$(cat "$__object/parameter/arch")]"
+else
+ forcedarch=""
fi
# export variables for use in template
@@ -48,7 +41,7 @@ export name
export uri
export distribution
export component
-export options
+export forcedarch
# generate file from template
mkdir "$__object/files"
diff --git a/cdist/conf/type/__apt_source/parameter/optional b/cdist/conf/type/__apt_source/parameter/optional
index 0b5470a1..87537335 100644
--- a/cdist/conf/type/__apt_source/parameter/optional
+++ b/cdist/conf/type/__apt_source/parameter/optional
@@ -1,5 +1,4 @@
state
distribution
component
-arch
-signed-by
+arch
\ No newline at end of file
diff --git a/cdist/conf/type/__consul/manifest b/cdist/conf/type/__consul/manifest
index 156eb667..cc4221c5 100755
--- a/cdist/conf/type/__consul/manifest
+++ b/cdist/conf/type/__consul/manifest
@@ -24,7 +24,7 @@
os=$(cat "$__global/explorer/os")
case "$os" in
- alpine|scientific|centos|redhat|ubuntu|debian|devuan|archlinux|gentoo)
+ alpine|scientific|centos|redhat|ubuntu|debian|devuan|archlinux|gentoo|linuxmint|lmde)
# any linux should work
:
;;
diff --git a/cdist/conf/type/__consul_agent/manifest b/cdist/conf/type/__consul_agent/manifest
index 7b54529c..a90b7d9d 100755
--- a/cdist/conf/type/__consul_agent/manifest
+++ b/cdist/conf/type/__consul_agent/manifest
@@ -58,6 +58,7 @@ esac
distribution_setup () {
case "$os" in
+#FIXME: Linux Mint Debian Edition/lmde
debian)
# consul is only available starting Debian 10 (buster).
# See https://packages.debian.org/buster/consul
@@ -136,7 +137,7 @@ init_upstart()
manual_setup () {
case "$os" in
- alpine|scientific|centos|debian|devuan|redhat|ubuntu)
+ alpine|scientific|centos|debian|devuan|redhat|ubuntu|linuxmint|lmde)
# whitelist safeguard
:
;;
@@ -191,6 +192,7 @@ manual_setup () {
esac
;;
+#FIXME: Linux Mint Debian Edition/lmde
debian)
os_version=$(cat "$__global/explorer/os_version")
major_version="${os_version%%.*}"
@@ -209,6 +211,7 @@ manual_setup () {
esac
;;
+#FIXME: Linux Mint
ubuntu)
init_upstart
;;
diff --git a/cdist/conf/type/__docker/manifest b/cdist/conf/type/__docker/manifest
index 6a57d85a..cb82f7f9 100755
--- a/cdist/conf/type/__docker/manifest
+++ b/cdist/conf/type/__docker/manifest
@@ -44,7 +44,7 @@ case "$os" in
exit 1
fi
;;
- ubuntu|debian)
+ ubuntu|debian|linuxmint|lmde)
if [ "${state}" = "present" ]; then
__package apt-transport-https
__package ca-certificates
diff --git a/cdist/conf/type/__dot_file/man.rst b/cdist/conf/type/__dot_file/man.rst
index c8f36712..ba7621a1 100644
--- a/cdist/conf/type/__dot_file/man.rst
+++ b/cdist/conf/type/__dot_file/man.rst
@@ -37,12 +37,6 @@ state
source
forwarded to :strong:`__file` type
-file
- forwarded to :strong:`__file` type
- This can be used if multiple users need to have a dotfile updated,
- which will result in duplicate object id errors. When using the
- file parameter the object id can be some unique value.
-
MESSAGES
--------
@@ -67,15 +61,6 @@ EXAMPLES
# Install default xmonad config for user 'eve'. Parent directory is created automatically.
__dot_file .xmonad/xmonad.hs --user eve --state exists --source "$__files/xmonad.hs"
- # install .vimrc for root and some users
- for user in root userx usery userz; do
- __dot_file "${user}_dot_vimrc" \
- --user $user \
- --file .vimrc \
- --state exists \
- --source "$__files/$user/.vimrc"
- done
-
SEE ALSO
--------
diff --git a/cdist/conf/type/__dot_file/manifest b/cdist/conf/type/__dot_file/manifest
index a38ed943..02dadf05 100755
--- a/cdist/conf/type/__dot_file/manifest
+++ b/cdist/conf/type/__dot_file/manifest
@@ -20,19 +20,13 @@ user="$(cat "${__object}/parameter/user")"
home="$(cat "${__object}/explorer/home")"
primary_group="$(cat "${__object}/explorer/primary_group")"
dirmode="$(cat "${__object}/parameter/dirmode")"
-if [ -f "${__object}/parameter/file" ]; then
- file="$(cat "${__object}/parameter/file")"
-else
- file="${__object_id}"
-fi
-
# Create parent directory. Type __directory has flag 'parents', but it
# will leave us with root-owned directory in user home, which is not
# acceptable. So we create parent directories one-by-one. XXX: maybe
# it should be fixed in '__directory'?
set --
-subpath=${file}
+subpath=${__object_id}
while subpath="$(dirname "${subpath}")" ; do
[ "${subpath}" = . ] && break
set -- "${subpath}" "$@"
@@ -70,4 +64,4 @@ if [ "${source}" = "-" ] ; then
fi
unset source
-__file "${home}/${file}" --owner "$user" --group "$primary_group" "$@"
+__file "${home}/${__object_id}" --owner "$user" --group "$primary_group" "$@"
diff --git a/cdist/conf/type/__file/gencode-local b/cdist/conf/type/__file/gencode-local
index 5a303308..231b6927 100755
--- a/cdist/conf/type/__file/gencode-local
+++ b/cdist/conf/type/__file/gencode-local
@@ -1,7 +1,7 @@
#!/bin/sh -e
#
# 2011-2012 Nico Schottelius (nico-cdist at schottelius.org)
-# 2013-2022 Steven Armstrong (steven-cdist armstrong.cc)
+# 2013 Steven Armstrong (steven-cdist armstrong.cc)
#
# This file is part of cdist.
#
@@ -72,7 +72,6 @@ if [ "$state_should" = "present" ] || [ "$state_should" = "exists" ]; then
if [ "$type" != "file" ]; then
# destination is not a regular file, upload source to replace it
upload_file=1
- echo upload >> "$__messages_out"
else
local_cksum="$(cksum < "$source")"
remote_cksum="$(cat "$__object/explorer/cksum")"
@@ -89,39 +88,27 @@ if [ "$state_should" = "present" ] || [ "$state_should" = "exists" ]; then
mkdir "$__object/files"
touch "$__object/files/set-attributes"
- if [ "$create_file" ]; then
- # When creating an empty file we create it locally and then
- # upload it so that permissions can be set before moving the file
- # into place.
- source="$__object/files/empty"
- touch "$source"
- fi
-
# upload file to temp location
- upload_destination="${destination}.cdist.${__cdist_object_marker}.$$"
- # Yes, we are aware that this is a race condition.
- # However:
- # a) cdist usually writes to directories that are not user writable
- # (probably > 99.9%)
- # b) if they are user owned, the user / attacker always wins
- # (probably < 0.1%)
- # c) the only case which we could improve are tmp directories and we
- # don't think managing tmp directories with cdist is a typical case
- # ("the rest %)"
-
- # Tell gencode-remote to where we uploaded the file so it can move
- # it to its final destination.
- echo "$upload_destination" > "$__object/files/upload-destination"
-
- # IPv6 fix
- if echo "${__target_host}" | grep -q -E '^[0-9a-fA-F:]+$'
- then
- my_target_host="[${__target_host}]"
- else
- my_target_host="${__target_host}"
- fi
+ tempfile_template="${destination}.cdist.XXXXXXXXXX"
cat << DONE
-$__remote_copy "$source" "${my_target_host}:${upload_destination}"
+destination_upload="\$($__remote_exec $__target_host "mktemp $tempfile_template")"
+DONE
+ if [ "$upload_file" ]; then
+ echo upload >> "$__messages_out"
+ # IPv6 fix
+ if echo "${__target_host}" | grep -q -E '^[0-9a-fA-F:]+$'
+ then
+ my_target_host="[${__target_host}]"
+ else
+ my_target_host="${__target_host}"
+ fi
+ cat << DONE
+$__remote_copy "$source" "${my_target_host}:\$destination_upload"
+DONE
+ fi
+# move uploaded file into place
+cat << DONE
+$__remote_exec $__target_host "rm -rf \"$destination\"; mv \"\$destination_upload\" \"$destination\""
DONE
fi
fi
diff --git a/cdist/conf/type/__file/gencode-remote b/cdist/conf/type/__file/gencode-remote
index 1a9ff69c..f7a528fd 100755
--- a/cdist/conf/type/__file/gencode-remote
+++ b/cdist/conf/type/__file/gencode-remote
@@ -1,7 +1,7 @@
#!/bin/sh -e
#
# 2011-2013 Nico Schottelius (nico-cdist at schottelius.org)
-# 2013-2022 Steven Armstrong (steven-cdist armstrong.cc)
+# 2013 Steven Armstrong (steven-cdist armstrong.cc)
#
# This file is part of cdist.
#
@@ -62,13 +62,6 @@ set_mode() {
case "$state_should" in
present|exists)
- if [ -f "$__object/files/upload-destination" ]; then
- final_destination="$destination"
- # We change the 'global' $destination variable here so we can
- # change attributes of the new/uploaded file before moving it
- # to it's final destination.
- destination="$(cat "$__object/files/upload-destination")"
- fi
# Note: Mode - needs to happen last as a chown/chgrp can alter mode by
# clearing S_ISUID and S_ISGID bits (see chown(2))
for attribute in group owner mode; do
@@ -88,11 +81,6 @@ case "$state_should" in
fi
fi
done
- if [ -f "$__object/files/upload-destination" ]; then
- # move uploaded file into place
- printf 'rm -rf "%s"\n' "$final_destination"
- printf 'mv "%s" "%s"\n' "$destination" "$final_destination"
- fi
if [ -f "$__object/files/set-attributes" ]; then
# set-attributes is created if file is created or uploaded in gencode-local
fire_onchange=1
diff --git a/cdist/conf/type/__firewalld_start/gencode-remote b/cdist/conf/type/__firewalld_start/gencode-remote
index 3e767f68..2e9099ee 100755
--- a/cdist/conf/type/__firewalld_start/gencode-remote
+++ b/cdist/conf/type/__firewalld_start/gencode-remote
@@ -45,6 +45,7 @@ if [ "$init" = 'systemd' ]; then
echo "systemctl \"$cmd\" \"$name\""
else
case "$os" in
+#FIXME: Linux Mint Debian Edition/lmde
debian)
case "$os_version" in
[1-7]*)
@@ -72,7 +73,7 @@ else
echo "/etc/init.d/\"$name\" \"$cmd\""
;;
- ubuntu)
+ ubuntu|linuxmint)
echo "service \"$name\" \"$cmd\""
;;
diff --git a/cdist/conf/type/__go_get/manifest b/cdist/conf/type/__go_get/manifest
index a5cc4c80..3440f310 100755
--- a/cdist/conf/type/__go_get/manifest
+++ b/cdist/conf/type/__go_get/manifest
@@ -5,7 +5,7 @@ go_executable=$(cat "$__object/explorer/go-executable")
os=$(cat "$__global/explorer/os")
case $os in
- debian|devuan|ubuntu)
+ debian|devuan|ubuntu|linuxmint|lmde)
__package build-essential
;;
*)
diff --git a/cdist/conf/type/__grafana_dashboard/manifest b/cdist/conf/type/__grafana_dashboard/manifest
index 0d944482..e94fc954 100755
--- a/cdist/conf/type/__grafana_dashboard/manifest
+++ b/cdist/conf/type/__grafana_dashboard/manifest
@@ -5,6 +5,7 @@ os_version=$(cat "$__global/explorer/os_version")
require=""
case $os in
+#FIXME: Linux Mint Debian Edition/lmde
debian|devuan)
case $os_version in
8*|jessie)
diff --git a/cdist/conf/type/__hostname/gencode-remote b/cdist/conf/type/__hostname/gencode-remote
index c1a97ac8..b09fef3e 100755
--- a/cdist/conf/type/__hostname/gencode-remote
+++ b/cdist/conf/type/__hostname/gencode-remote
@@ -59,7 +59,7 @@ echo 'changed' >>"${__messages_out:?}"
# Use the good old way to set the hostname.
case ${os}
in
- (alpine|debian|devuan|ubuntu)
+ (alpine|debian|devuan|ubuntu|linuxmint|lmde)
echo 'hostname -F /etc/hostname'
;;
(archlinux)
diff --git a/cdist/conf/type/__hostname/manifest b/cdist/conf/type/__hostname/manifest
index b80aa2ef..7bceb120 100755
--- a/cdist/conf/type/__hostname/manifest
+++ b/cdist/conf/type/__hostname/manifest
@@ -56,7 +56,7 @@ fi
case ${os}
in
- (alpine|debian|devuan|ubuntu|void)
+ (alpine|debian|devuan|ubuntu|void|linuxmint|lmde)
echo "${name_should}" | __file /etc/hostname --source -
;;
(archlinux)
diff --git a/cdist/conf/type/__hwclock/manifest b/cdist/conf/type/__hwclock/manifest
index 7d9ab88f..c5939a30 100755
--- a/cdist/conf/type/__hwclock/manifest
+++ b/cdist/conf/type/__hwclock/manifest
@@ -104,11 +104,12 @@ in
unset CDIST_ORDER_DEPENDENCY
fi
;;
- (debian|devuan|ubuntu)
+ (debian|devuan|ubuntu|linuxmint|lmde)
os_major=$(sed 's/[^0-9].*$//' "${__global:?}/explorer/os_version")
case ${os}
in
+#FIXME: Linux Mint Debian Edition/lmde
(debian)
if test "${os_major}" -ge 7
then
@@ -129,7 +130,7 @@ in
(devuan)
update_rcS=false
;;
- (ubuntu)
+ (ubuntu|linuxmint)
update_rcS=$(test "${os_major}" -lt 16 && echo true || echo false)
;;
esac
diff --git a/cdist/conf/type/__install_bootloader_grub/explorer/target_os b/cdist/conf/type/__install_bootloader_grub/explorer/target_os
index f235710a..117a8c53 100755
--- a/cdist/conf/type/__install_bootloader_grub/explorer/target_os
+++ b/cdist/conf/type/__install_bootloader_grub/explorer/target_os
@@ -48,6 +48,13 @@ if grep -q ^DISTRIB_ID=Ubuntu "$chroot/etc/lsb-release" 2>/dev/null; then
exit 0
fi
+if grep -q ^DISTRIB_ID=LinuxMint "$chroot/etc/lsb-release" 2>/dev/null; then
+ echo linuxmint
+ exit 0
+fi
+
+#FIXME: Linux Mint Debian Edition/lmde
+
if [ -f "$chroot/etc/debian_version" ]; then
echo debian
exit 0
diff --git a/cdist/conf/type/__install_bootloader_grub/gencode-remote b/cdist/conf/type/__install_bootloader_grub/gencode-remote
index 1caebbbf..3c5bf3e8 100755
--- a/cdist/conf/type/__install_bootloader_grub/gencode-remote
+++ b/cdist/conf/type/__install_bootloader_grub/gencode-remote
@@ -34,7 +34,7 @@ exec > "$install_script"
printf '#!/bin/sh -l\n'
case "$target_os" in
- ubuntu|debian)
+ ubuntu|debian|linuxmint|lmde)
if [ -s "$__global/explorer/efi" ]; then
# FIXME: untested. maybe also just run update-grub for EFI system?
printf 'grub-mkconfig --output=/boot/efi/EFI/%s/grub.cfg\n' "$target_os"
diff --git a/cdist/conf/type/__letsencrypt_cert/manifest b/cdist/conf/type/__letsencrypt_cert/manifest
index 39067f3b..971cdf17 100644
--- a/cdist/conf/type/__letsencrypt_cert/manifest
+++ b/cdist/conf/type/__letsencrypt_cert/manifest
@@ -15,6 +15,7 @@ if [ -z "${certbot_fullpath}" ]; then
alpine)
__package certbot
;;
+#FIXME: Linux Mint Debian Edition/lmde
debian)
case "$os_version" in
8*)
@@ -85,10 +86,10 @@ if [ -z "${certbot_fullpath}" ]; then
esac
;;
freebsd)
- __package py39-certbot
+ __package py37-certbot
certbot_fullpath="/usr/local/bin/certbot"
;;
- ubuntu)
+ ubuntu|linuxmint)
__package certbot
;;
*)
diff --git a/cdist/conf/type/__locale/manifest b/cdist/conf/type/__locale/manifest
index 9f1e17ac..a83cabae 100755
--- a/cdist/conf/type/__locale/manifest
+++ b/cdist/conf/type/__locale/manifest
@@ -26,11 +26,12 @@ os=$(cat "$__global/explorer/os")
case "$os" in
+#FIXME: Linux Mint Debian Edition/lmde
debian|devuan)
# Debian needs a seperate package
__package locales --state present
;;
- archlinux|suse|ubuntu|scientific|centos|alpine)
+ archlinux|suse|ubuntu|scientific|centos|alpine|linuxmint)
:
;;
*)
diff --git a/cdist/conf/type/__locale_system/manifest b/cdist/conf/type/__locale_system/manifest
index 4b996ebc..7172f1f9 100755
--- a/cdist/conf/type/__locale_system/manifest
+++ b/cdist/conf/type/__locale_system/manifest
@@ -55,6 +55,7 @@ os=$(cat "$__global/explorer/os")
case $os
in
+#FIXME: Linux Mint Debian Edition/lmde
debian)
if version_ge 4 <"${__global}/explorer/os_version"
then
@@ -67,7 +68,7 @@ in
devuan)
locale_conf="/etc/default/locale"
;;
- ubuntu)
+ ubuntu|linuxmint)
if version_ge 6.10 <"${__global}/explorer/os_version"
then
# Ubuntu 6.10 (edgy) and later
diff --git a/cdist/conf/type/__localedef/gencode-remote b/cdist/conf/type/__localedef/gencode-remote
index 4538151f..af0bc783 100755
--- a/cdist/conf/type/__localedef/gencode-remote
+++ b/cdist/conf/type/__localedef/gencode-remote
@@ -61,7 +61,7 @@ in
printf '%s does not support locales.\n' "${os}" >&2
exit 1
;;
- (archlinux|debian|devuan|ubuntu|suse|centos|fedora|redhat|scientific)
+ (archlinux|debian|devuan|ubuntu|suse|centos|fedora|redhat|scientific|linuxmint|lmde)
# FIXME: The code below only works for glibc-based installations.
# NOTE: Hardcoded, create a pull request in case it is at another
diff --git a/cdist/conf/type/__localedef/manifest b/cdist/conf/type/__localedef/manifest
index 3ab3ad8c..3f2a8022 100755
--- a/cdist/conf/type/__localedef/manifest
+++ b/cdist/conf/type/__localedef/manifest
@@ -24,7 +24,7 @@
case $(cat "${__global:?}/explorer/os")
in
- (debian|devuan)
+ (debian|devuan|lmde)
__package_apt locales --state present
;;
esac
diff --git a/cdist/conf/type/__openldap_server/manifest b/cdist/conf/type/__openldap_server/manifest
index 2aeece26..54dd6a1c 100644
--- a/cdist/conf/type/__openldap_server/manifest
+++ b/cdist/conf/type/__openldap_server/manifest
@@ -37,7 +37,7 @@ case "${os}" in
tls_cipher_suite="HIGH:MEDIUM:+SSLv2"
fi
;;
- debian|ubuntu|devuan)
+ debian|ubuntu|devuan|linuxmint|lmde)
PKGS="slapd ldap-utils"
ETC="/etc"
SLAPD_DIR="/etc/ldap"
@@ -157,7 +157,7 @@ case "${os}" in
--comment "# LDAP Listener URLs" \
"${__target_host}__slapd_flags"
;;
- debian|ubuntu|devuan)
+ debian|ubuntu|devuan|linuxmint|lmde)
require="__package/${PKG_MAIN}" __line rm_slapd_conf \
--file ${ETC}/default/slapd \
--regex 'SLAPD_CONF=.*' \
diff --git a/cdist/conf/type/__package/manifest b/cdist/conf/type/__package/manifest
index a453c32b..e6dfd840 100755
--- a/cdist/conf/type/__package/manifest
+++ b/cdist/conf/type/__package/manifest
@@ -33,7 +33,7 @@ else
case "$os" in
amazon|scientific|centos|fedora|redhat) type="yum" ;;
archlinux) type="pacman" ;;
- debian|ubuntu|devuan) type="apt" ;;
+ debian|ubuntu|devuan|linuxmint|lmde) type="apt" ;;
freebsd)
if [ -n "$(cat "$__object/explorer/pkgng_exists")" ]; then
type="pkgng_freebsd"
diff --git a/cdist/conf/type/__package_luarocks/manifest b/cdist/conf/type/__package_luarocks/manifest
index 9e4499b2..7d8262ca 100755
--- a/cdist/conf/type/__package_luarocks/manifest
+++ b/cdist/conf/type/__package_luarocks/manifest
@@ -19,5 +19,5 @@
# along with cdist. If not, see .
#
-__package luarocks --state present
-__package make --state present
+__package luarocks --state installed
+__package make --state installed
diff --git a/cdist/conf/type/__package_update_index/explorer/type b/cdist/conf/type/__package_update_index/explorer/type
index c98e1e67..07c06184 100644
--- a/cdist/conf/type/__package_update_index/explorer/type
+++ b/cdist/conf/type/__package_update_index/explorer/type
@@ -24,7 +24,7 @@ else
os="$("$__explorer/os")"
case "$os" in
amazon|scientific|centos|fedora|redhat) echo "yum" ;;
- debian|ubuntu|devuan) echo "apt" ;;
+ debian|ubuntu|devuan|linuxmint|lmde) echo "apt" ;;
archlinux) echo "pacman" ;;
alpine) echo "apk" ;;
*)
diff --git a/cdist/conf/type/__package_upgrade_all/gencode-remote b/cdist/conf/type/__package_upgrade_all/gencode-remote
index d332e851..e2250c55 100755
--- a/cdist/conf/type/__package_upgrade_all/gencode-remote
+++ b/cdist/conf/type/__package_upgrade_all/gencode-remote
@@ -39,7 +39,7 @@ else
os="$(cat "$__global/explorer/os")"
case "$os" in
amazon|scientific|centos|fedora|redhat) type="yum" ;;
- debian|ubuntu|devuan) type="apt" ;;
+ debian|ubuntu|devuan|linuxmint|lmde) type="apt" ;;
archlinux) type="pacman" ;;
*)
echo "Don't know how to manage packages on: $os" >&2
diff --git a/cdist/conf/type/__postfix_master/manifest b/cdist/conf/type/__postfix_master/manifest
index 0960ea41..5e2a9ddc 100755
--- a/cdist/conf/type/__postfix_master/manifest
+++ b/cdist/conf/type/__postfix_master/manifest
@@ -22,7 +22,7 @@
os=$(cat "$__global/explorer/os")
case "$os" in
- ubuntu|debian|archlinux|scientific|centos|devuan)
+ ubuntu|debian|archlinux|scientific|centos|devuan|linuxmint|lmde)
:
;;
*)
diff --git a/cdist/conf/type/__postfix_postconf/explorer/value b/cdist/conf/type/__postfix_postconf/explorer/value
index 67dacad8..a84ec127 100755
--- a/cdist/conf/type/__postfix_postconf/explorer/value
+++ b/cdist/conf/type/__postfix_postconf/explorer/value
@@ -22,7 +22,7 @@
os=$("$__explorer/os")
case "$os" in
- alpine|ubuntu|debian|archlinux|suse|scientific|centos|devuan)
+ alpine|ubuntu|debian|archlinux|suse|scientific|centos|devuan|linuxmint|lmde)
:
;;
*)
diff --git a/cdist/conf/type/__postfix_postconf/gencode-remote b/cdist/conf/type/__postfix_postconf/gencode-remote
index 279dddd4..94f0b82a 100755
--- a/cdist/conf/type/__postfix_postconf/gencode-remote
+++ b/cdist/conf/type/__postfix_postconf/gencode-remote
@@ -22,7 +22,7 @@
os=$(cat "$__global/explorer/os")
case "$os" in
- alpine|archlinux|centos|debian|devuan|suse|scientific|ubuntu)
+ alpine|archlinux|centos|debian|devuan|suse|scientific|ubuntu|linuxmint|lmde)
:
;;
*)
diff --git a/cdist/conf/type/__postfix_reload/gencode-remote b/cdist/conf/type/__postfix_reload/gencode-remote
index 7720dc49..3bdc7e4b 100755
--- a/cdist/conf/type/__postfix_reload/gencode-remote
+++ b/cdist/conf/type/__postfix_reload/gencode-remote
@@ -22,7 +22,7 @@
os=$(cat "$__global/explorer/os")
case "$os" in
- ubuntu|debian|archlinux|scientific|centos|devuan)
+ ubuntu|debian|archlinux|scientific|centos|devuan|linuxmint|lmde)
echo "postfix reload"
;;
*)
diff --git a/cdist/conf/type/__postgres_conf/explorer/postgres_user b/cdist/conf/type/__postgres_conf/explorer/postgres_user
index c6582dc4..d2a6fa96 100644
--- a/cdist/conf/type/__postgres_conf/explorer/postgres_user
+++ b/cdist/conf/type/__postgres_conf/explorer/postgres_user
@@ -29,7 +29,7 @@ in
(centos|rhel|scientific)
echo 'postgres'
;;
- (debian|devuan|ubuntu)
+ (debian|devuan|ubuntu|linuxmint|lmde)
echo 'postgres'
;;
(freebsd)
diff --git a/cdist/conf/type/__sensible_editor/explorer/editor_path b/cdist/conf/type/__sensible_editor/explorer/editor_path
index dcf63c9b..b7a43886 100644
--- a/cdist/conf/type/__sensible_editor/explorer/editor_path
+++ b/cdist/conf/type/__sensible_editor/explorer/editor_path
@@ -39,7 +39,7 @@ test "$(cat "${__object}/parameter/state")" != 'absent' || exit 0
case $("${__explorer}/os")
in
- debian|devuan|ubuntu)
+ debian|devuan|ubuntu|linuxmint|lmde)
has_alternatives=true
# NOTE: Old versions do not support `--list`, in this case ignore the errors.
diff --git a/cdist/conf/type/__sensible_editor/manifest b/cdist/conf/type/__sensible_editor/manifest
index 1cdb0c2c..6b8e3da7 100644
--- a/cdist/conf/type/__sensible_editor/manifest
+++ b/cdist/conf/type/__sensible_editor/manifest
@@ -57,7 +57,7 @@ package_name='sensible-utils'
case $os
in
- debian)
+ debian|linuxmint|lmde)
pkg_type='apt'
;;
devuan)
diff --git a/cdist/conf/type/__ssh_authorized_key/gencode-remote b/cdist/conf/type/__ssh_authorized_key/gencode-remote
index cbffde94..61c77fb9 100755
--- a/cdist/conf/type/__ssh_authorized_key/gencode-remote
+++ b/cdist/conf/type/__ssh_authorized_key/gencode-remote
@@ -40,7 +40,6 @@ if [ -f "$file" ]; then
grep -v -F -x '$line' '$file' >\$tmpfile
fi
cat "\$tmpfile" >"$file"
-rm -f "\$tmpfile"
DONE
}
diff --git a/cdist/conf/type/__sshd_config/manifest b/cdist/conf/type/__sshd_config/manifest
index e37afebb..54485155 100755
--- a/cdist/conf/type/__sshd_config/manifest
+++ b/cdist/conf/type/__sshd_config/manifest
@@ -24,7 +24,7 @@ state_should=$(cat "${__object:?}/parameter/state")
case ${os}
in
- (alpine|centos|fedora|redhat|scientific|debian|devuan|ubuntu)
+ (alpine|centos|fedora|redhat|scientific|debian|devuan|ubuntu|linuxmint|lmde)
if test "${state_should}" != 'absent'
then
__package openssh-server --state present
diff --git a/cdist/conf/type/__start_on_boot/explorer/state b/cdist/conf/type/__start_on_boot/explorer/state
index b7a6cf0f..232a78bc 100644
--- a/cdist/conf/type/__start_on_boot/explorer/state
+++ b/cdist/conf/type/__start_on_boot/explorer/state
@@ -37,7 +37,7 @@ if [ "$init" = 'systemd' ]; then
else
case "$os" in
- debian|openwrt|devuan)
+ debian|openwrt|devuan|lmde)
state="absent"
for file in "/etc/rc$runlevel.d/S"??"$name"
do
@@ -48,7 +48,7 @@ else
fi
done
;;
- ubuntu)
+ ubuntu|linuxmint)
state="absent"
for file in "/etc/rc$runlevel.d/S"??"$name"
do
diff --git a/cdist/conf/type/__start_on_boot/gencode-remote b/cdist/conf/type/__start_on_boot/gencode-remote
index c900933f..b03feeef 100755
--- a/cdist/conf/type/__start_on_boot/gencode-remote
+++ b/cdist/conf/type/__start_on_boot/gencode-remote
@@ -40,6 +40,7 @@ case "$state_should" in
echo "systemctl -q enable '$name'"
else
case "$os" in
+#FIXME: Linux Mint Debian Edition/lmde
debian)
case "$os_version" in
[1-7]*)
@@ -73,7 +74,7 @@ case "$state_should" in
echo "'/etc/init.d/$name' enable || [ -f /etc/rc.d/S??'$name' ]"
;;
- ubuntu)
+ ubuntu|linuxmint)
echo "update-rc.d '$name' defaults >/dev/null"
;;
diff --git a/cdist/conf/type/__sysctl/gencode-remote b/cdist/conf/type/__sysctl/gencode-remote
index f0f6deef..3812eda1 100755
--- a/cdist/conf/type/__sysctl/gencode-remote
+++ b/cdist/conf/type/__sysctl/gencode-remote
@@ -30,7 +30,7 @@ fi
os=$(cat "$__global/explorer/os")
case "$os" in
# Linux
- redhat|centos|ubuntu|debian|devuan|archlinux|gentoo|coreos)
+ redhat|centos|ubuntu|debian|devuan|archlinux|gentoo|coreos|linuxmint|lmde)
flag='-w'
;;
# BusyBox
diff --git a/cdist/conf/type/__sysctl/manifest b/cdist/conf/type/__sysctl/manifest
index 71dea7f7..8c9e7ec2 100755
--- a/cdist/conf/type/__sysctl/manifest
+++ b/cdist/conf/type/__sysctl/manifest
@@ -25,7 +25,7 @@ os=$(cat "$__global/explorer/os")
case "$os" in
# Linux
- alpine|redhat|centos|ubuntu|debian|devuan|archlinux|coreos)
+ alpine|redhat|centos|ubuntu|debian|devuan|archlinux|coreos|linuxmint|lmde)
:
;;
# BSD
diff --git a/cdist/conf/type/__timezone/gencode-remote b/cdist/conf/type/__timezone/gencode-remote
index d8612986..9ec7aae3 100755
--- a/cdist/conf/type/__timezone/gencode-remote
+++ b/cdist/conf/type/__timezone/gencode-remote
@@ -30,16 +30,7 @@ if [ "$timezone_is" = "$timezone_should" ]; then
fi
case "$os" in
- ubuntu|debian|devuan|coreos|alpine)
+ ubuntu|debian|devuan|coreos|alpine|linuxmint|lmde)
echo "echo \"$timezone_should\" > /etc/timezone"
;;
esac
-
-case "$os" in
- openwrt)
- cat <&2
echo "Please contribute an implementation for it if you can." >&2
diff --git a/cdist/conf/type/__unpack/manifest b/cdist/conf/type/__unpack/manifest
index 6bdf5a10..ca8e4408 100755
--- a/cdist/conf/type/__unpack/manifest
+++ b/cdist/conf/type/__unpack/manifest
@@ -20,7 +20,7 @@ case "$src" in
;;
*.lzma|*.xz|*.txz)
case "$os" in
- debian|ubuntu|devuan)
+ debian|ubuntu|devuan|linuxmint|lmde)
__package xz-utils
;;
alpine|centos)
@@ -30,7 +30,7 @@ case "$src" in
;;
*.rar)
case "$os" in
- debian|ubuntu|devuan|alpine|freebsd)
+ debian|ubuntu|devuan|alpine|freebsd|linuxmint|lmde)
__package unrar
;;
esac
diff --git a/cdist/conf/type/__user_groups/explorer/group b/cdist/conf/type/__user_groups/explorer/group
index 8a02f219..5bad9a0b 100755
--- a/cdist/conf/type/__user_groups/explorer/group
+++ b/cdist/conf/type/__user_groups/explorer/group
@@ -20,4 +20,4 @@
user="$(cat "$__object/parameter/user" 2>/dev/null || echo "$__object_id")"
-(id -G -n "$user" | tr ' ' '\n') 2>/dev/null || true
+(id -G -n "$user" | tr ' ' '\n' | sort) 2>/dev/null || true
diff --git a/cdist/conf/type/__user_groups/gencode-remote b/cdist/conf/type/__user_groups/gencode-remote
index 0585e90f..8120761a 100755
--- a/cdist/conf/type/__user_groups/gencode-remote
+++ b/cdist/conf/type/__user_groups/gencode-remote
@@ -26,15 +26,13 @@ os=$(cat "$__global/explorer/os")
mkdir "$__object/files"
# file has to be sorted for comparison with `comm`
sort "$__object/parameter/group" > "$__object/files/group.sorted"
-# Use local sort for remote groups
-sort "$__object/explorer/group" > "$__object/files/group-remote.sorted"
case "$state_should" in
present)
- changed_groups="$(comm -13 "$__object/files/group-remote.sorted" "$__object/files/group.sorted")"
+ changed_groups="$(comm -13 "$__object/explorer/group" "$__object/files/group.sorted")"
;;
absent)
- changed_groups="$(comm -12 "$__object/files/group-remote.sorted" "$__object/files/group.sorted")"
+ changed_groups="$(comm -12 "$__object/explorer/group" "$__object/files/group.sorted")"
;;
esac
diff --git a/cdist/conf/type/__xymon_apache/gencode-remote b/cdist/conf/type/__xymon_apache/gencode-remote
index e7d8e344..a6f90f1c 100755
--- a/cdist/conf/type/__xymon_apache/gencode-remote
+++ b/cdist/conf/type/__xymon_apache/gencode-remote
@@ -21,7 +21,7 @@ state=$(cat "$__object/parameter/state")
os=$(cat "$__global/explorer/os")
case "$os" in
- debian|ubuntu)
+ debian|ubuntu|linuxmint|lmde)
:
;;
*)
diff --git a/cdist/conf/type/__xymon_apache/manifest b/cdist/conf/type/__xymon_apache/manifest
index bfd0af79..6e85ee98 100755
--- a/cdist/conf/type/__xymon_apache/manifest
+++ b/cdist/conf/type/__xymon_apache/manifest
@@ -21,7 +21,7 @@ state=$(cat "$__object/parameter/state")
os=$(cat "$__global/explorer/os")
case "$os" in
- debian|ubuntu)
+ debian|ubuntu|linuxmint|lmde)
:
;;
*)
diff --git a/cdist/conf/type/__xymon_client/manifest b/cdist/conf/type/__xymon_client/manifest
index 88293a12..c75b92d0 100755
--- a/cdist/conf/type/__xymon_client/manifest
+++ b/cdist/conf/type/__xymon_client/manifest
@@ -22,7 +22,7 @@ servers=$(cat "$__object/parameter/servers")
os=$(cat "$__global/explorer/os")
case "$os" in
- debian|ubuntu)
+ debian|ubuntu|linuxmint|lmde)
:
;;
*)
diff --git a/cdist/conf/type/__xymon_server/manifest b/cdist/conf/type/__xymon_server/manifest
index 7cee0d23..4b31d8ad 100755
--- a/cdist/conf/type/__xymon_server/manifest
+++ b/cdist/conf/type/__xymon_server/manifest
@@ -26,7 +26,7 @@ fi
os=$(cat "$__global/explorer/os")
case "$os" in
- debian|ubuntu)
+ debian|ubuntu|linuxmint|lmde)
:
;;
*)
diff --git a/cdist/test/autil/fixtures/explorer/os b/cdist/test/autil/fixtures/explorer/os
index 094685ea..c357bfc0 100755
--- a/cdist/test/autil/fixtures/explorer/os
+++ b/cdist/test/autil/fixtures/explorer/os
@@ -50,6 +50,13 @@ if grep -q ^DISTRIB_ID=Ubuntu /etc/lsb-release 2>/dev/null; then
exit 0
fi
+if grep -q ^DISTRIB_ID=LinuxMint /etc/lsb-release 2>/dev/null; then
+ echo linuxmint
+ exit 0
+fi
+
+#FIXME: Linux Mint Debian Edition/lmde
+
if [ -f /etc/debian_version ]; then
echo debian
exit 0
diff --git a/cdist/test/autil/fixtures/explorer/os_version b/cdist/test/autil/fixtures/explorer/os_version
index 380782cc..92335e74 100755
--- a/cdist/test/autil/fixtures/explorer/os_version
+++ b/cdist/test/autil/fixtures/explorer/os_version
@@ -30,6 +30,7 @@ case "$($__explorer/os)" in
# empty, but well...
cat /etc/arch-release
;;
+#FIXME: Linux Mint Debian Edition/lmde
debian)
cat /etc/debian_version
;;
@@ -67,7 +68,7 @@ case "$($__explorer/os)" in
cat /etc/SuSE-release
fi
;;
- ubuntu)
+ ubuntu|linuxmint)
lsb_release -sr
;;
esac
diff --git a/docs/changelog b/docs/changelog
index fa741365..26d89057 100644
--- a/docs/changelog
+++ b/docs/changelog
@@ -2,17 +2,6 @@ Changelog
---------
next:
- * Type __timezone: Add support for OpenWRT (Nico Schottelius)
-
-7.0.1:
- * Core: Remove double definition of scan parser (Nico Schottelius)
- * Type __apt_mark: Narrow down grep for hold packages (marcoduif)
- * Type __apt_source: Set required options variable (Mark Verboom)
- * Type __letsencrypt_cert: Update python version (Michelle)
- * Explorer os_version: Add support for Daedalus (Michelle)
- * Explorer machine_type: Correct incorrect VMM matching (Mark Verboom)
-
-7.0.0: 2022-07-31
* Explorer machine_type: Rewrite (Dennis Camera)
* New type: __sed (Ander Punnar)
* New type: __haproxy_dualstack (Evilham and ungleich)
@@ -23,13 +12,6 @@ next:
* Type __package_apt: Fix complaint about suite change (Matthias Stecher)
* Type __debconf_set_selections: Fix bug where --file was unsupported (Evilham)
* Types __letsencrypt_cert, __grafana_dashboard: Improve bullseye support (Evilham)
- * Type __ssh_authorized_key: Also remove tmpfile if removing line (Mark Verboom)
- * Type __apt_pin: Add default priority, add comment in generated files (Daniel Fancsali)
- * Type __file: make file uploading and attribute changes more atomic (Steven Armstrong)
- * Type __dot_file: Add support for using --file parameter (Stephan Leemburg)
- * Type __apt_ppa: Replace custom "remove-apt-repository" with add-apt-repository -r (Romain Dartigues)
- * Type __apt_source: Add signed-by parameter (Daniel Fancsali)
- * Explorer: add support for checkpoint (Stephan Leemburg)
6.9.8: 2021-08-24
* Type __rsync: Rewrite (Ander Punnar)
diff --git a/docs/dev/release-process.org b/docs/dev/release-process.org
deleted file mode 100644
index 42b4f5c5..00000000
--- a/docs/dev/release-process.org
+++ /dev/null
@@ -1,90 +0,0 @@
-* Install requirements (Alpine)
- - apk add py3-pycodestyle shellcheck py3-sphinx py3-sphinx_rtd_theme \
- py3-build twine
-* Ensure your gpg setup works with the email used in the git commit!
- - For me this is nico@nico-notebook.schottelius.org
- - Signature / id is on nb2
-* Create ~/.pypirc
-[distutils]
- index-servers =
- pypi
- cdist
-
-[pypi]
- username = __token__
- password = ...
-
-[cdist]
- repository = https://upload.pypi.org/legacy/
- username = __token__
- password = ...
-
-* Add date in docs/changelog
-* Run ./bin/cdist-build-helper
-* TODO Move to "build"
- - python3 -m build
-* DONE git tag: when?
-CLOSED: [2022-07-31 Sun 23:58]
-** Asked during release process: ok
-* DONE Pypi error with distutils: do not use distutils anymore
-CLOSED: [2022-07-31 Sun 23:58]
-python3 setup.py sdist upload
-...
-Creating tar archive
-removing 'cdist-7.0.0' (and everything under it)
-running upload
-Submitting dist/cdist-7.0.0.tar.gz to https://upload.pypi.org/legacy/
-Upload failed (400): Invalid value for blake2_256_digest. Error: Use a valid, hex-encoded, BLAKE2 message digest.
-error: Upload failed (400): Invalid value for blake2_256_digest. Error: Use a valid, hex-encoded, BLAKE2 message digest.
-(venv2) [22:50] nb2:cdist%
-
-* DONE Pypi error with twine: fixed in twine 4.0.1
-CLOSED: [2022-07-31 Sun 23:58]
-
-Seeing:
-
-(venv2) [22:47] nb2:cdist% twine upload dist/cdist-7.0.0*
-Uploading distributions to https://upload.pypi.org/legacy/
-Traceback (most recent call last):
- File "/usr/bin/twine", line 8, in
- sys.exit(main())
- File "/usr/lib/python3.10/site-packages/twine/__main__.py", line 28, in main
- result = cli.dispatch(sys.argv[1:])
- File "/usr/lib/python3.10/site-packages/twine/cli.py", line 68, in dispatch
- return main(args.args)
- File "/usr/lib/python3.10/site-packages/twine/commands/upload.py", line 197, in main
- return upload(upload_settings, parsed_args.dists)
- File "/usr/lib/python3.10/site-packages/twine/commands/upload.py", line 141, in upload
- resp = repository.upload(package)
- File "/usr/lib/python3.10/site-packages/twine/repository.py", line 189, in upload
- resp = self._upload(package)
- File "/usr/lib/python3.10/site-packages/twine/repository.py", line 144, in _upload
- data = package.metadata_dictionary()
- File "/usr/lib/python3.10/site-packages/twine/package.py", line 181, in metadata_dictionary
- "dynamic": meta.dynamic,
-AttributeError: 'Wheel' object has no attribute 'dynamic'
-
-
-Fix:
-
-
-(venv2) [23:43] nb2:cdist% pipx run twine upload dist/*
-⚠️ twine is already on your PATH and installed at /home/nico/venv2/bin/twine. Downloading and running anyway.
-Uploading distributions to https://upload.pypi.org/legacy/
-Uploading cdist-7.0.0-py3-none-any.whl
-100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 868.6/868.6 kB • 00:04 • 221.3 kB/s
-Uploading cdist-7.0.0.tar.gz
-100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB • 00:08 • 169.3 kB/s
-
-View at:
-https://pypi.org/project/cdist/7.0.0/
-* TODO cdist web
- - on staticweb-2022
- - Should be moved to sftp/k8s
-
-
- Manual steps:
-
- ~/bin/permissions.public html/
- rsync -a html/ staticweb.ungleich.ch:/home/services/www/nico/www.cdi.st/www/manual/7.0.0/
- ssh staticweb.ungleich.ch "cd /home/services/www/nico/www.cdi.st/www/manual; ln -sf 7.0.0 latest"