diff --git a/cdist/conf/type/__apt_mark/explorer/state b/cdist/conf/type/__apt_mark/explorer/state
new file mode 100644
index 00000000..3b70003a
--- /dev/null
+++ b/cdist/conf/type/__apt_mark/explorer/state
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# 2016 Ander Punnar (cdist at kvlt.ee)
+#
+# This file is part of cdist.
+#
+# cdist is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cdist is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cdist. If not, see .
+#
+
+if [ -f "$__object/parameter/name" ]; then
+ name="$(cat "$__object/parameter/name")"
+else
+ name="$__object_id"
+fi
+
+apt-mark showhold | grep -q $name && echo hold || echo unhold
diff --git a/cdist/conf/type/__apt_mark/gencode-remote b/cdist/conf/type/__apt_mark/gencode-remote
new file mode 100644
index 00000000..14505809
--- /dev/null
+++ b/cdist/conf/type/__apt_mark/gencode-remote
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# 2016 Ander Punnar (cdist at kvlt.ee)
+#
+# This file is part of cdist.
+#
+# cdist is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cdist is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cdist. If not, see .
+#
+
+if [ -f "$__object/parameter/name" ]; then
+ name="$(cat "$__object/parameter/name")"
+else
+ name="$__object_id"
+fi
+
+state_should="$(cat "$__object/parameter/state")"
+
+state_is="$(cat "$__object/explorer/state")"
+
+if [ "$state_should" = "$state_is" ]; then
+ exit 0
+fi
+
+case "$state_should" in
+ hold|unhold)
+ echo "apt-mark $state_should $name > /dev/null"
+ ;;
+ *)
+ echo "Unknown state: $state_should" >&2
+ exit 1
+ ;;
+esac
diff --git a/cdist/conf/type/__apt_mark/man.rst b/cdist/conf/type/__apt_mark/man.rst
new file mode 100644
index 00000000..7aa2a519
--- /dev/null
+++ b/cdist/conf/type/__apt_mark/man.rst
@@ -0,0 +1,47 @@
+cdist-type__apt_mark(7)
+=======================
+
+NAME
+----
+cdist-type__apt_mark - set package state as 'hold' or 'unhold'
+
+
+DESCRIPTION
+-----------
+See apt-mark(8) for details.
+
+
+REQUIRED PARAMETERS
+-------------------
+state
+ Either "hold" or "unhold".
+
+
+OPTIONAL PARAMETERS
+-------------------
+name
+ If supplied, use the name and not the object id as the package name.
+
+
+EXAMPLES
+--------
+
+.. code-block:: sh
+
+ # hold package
+ __apt_mark quagga --state hold
+ # unhold package
+ __apt_mark quagga --state unhold
+
+
+AUTHORS
+-------
+Ander Punnar
+
+
+COPYING
+-------
+Copyright \(C) 2016 Ander Punnar. You can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
diff --git a/cdist/conf/type/__apt_mark/parameter/optional b/cdist/conf/type/__apt_mark/parameter/optional
new file mode 100644
index 00000000..f121bdbf
--- /dev/null
+++ b/cdist/conf/type/__apt_mark/parameter/optional
@@ -0,0 +1 @@
+name
diff --git a/cdist/conf/type/__apt_mark/parameter/required b/cdist/conf/type/__apt_mark/parameter/required
new file mode 100644
index 00000000..ff72b5c7
--- /dev/null
+++ b/cdist/conf/type/__apt_mark/parameter/required
@@ -0,0 +1 @@
+state
diff --git a/cdist/conf/type/__consul/files/versions/0.7.0/cksum b/cdist/conf/type/__consul/files/versions/0.7.0/cksum
new file mode 100644
index 00000000..3bffeedb
--- /dev/null
+++ b/cdist/conf/type/__consul/files/versions/0.7.0/cksum
@@ -0,0 +1 @@
+695240564 24003648 consul
diff --git a/cdist/conf/type/__consul/files/versions/0.7.0/source b/cdist/conf/type/__consul/files/versions/0.7.0/source
new file mode 100644
index 00000000..ad610fc7
--- /dev/null
+++ b/cdist/conf/type/__consul/files/versions/0.7.0/source
@@ -0,0 +1 @@
+https://releases.hashicorp.com/consul/0.7.0/consul_0.7.0_linux_amd64.zip
diff --git a/cdist/conf/type/__consul/files/versions/0.7.1/cksum b/cdist/conf/type/__consul/files/versions/0.7.1/cksum
new file mode 100644
index 00000000..476bd9f6
--- /dev/null
+++ b/cdist/conf/type/__consul/files/versions/0.7.1/cksum
@@ -0,0 +1 @@
+3128343188 28402769 consul
diff --git a/cdist/conf/type/__consul/files/versions/0.7.1/source b/cdist/conf/type/__consul/files/versions/0.7.1/source
new file mode 100644
index 00000000..6ba2e7bf
--- /dev/null
+++ b/cdist/conf/type/__consul/files/versions/0.7.1/source
@@ -0,0 +1 @@
+https://releases.hashicorp.com/consul/0.7.1/consul_0.7.1_linux_amd64.zip
diff --git a/cdist/conf/type/__user/gencode-remote b/cdist/conf/type/__user/gencode-remote
index 463fbe49..223d4d46 100755
--- a/cdist/conf/type/__user/gencode-remote
+++ b/cdist/conf/type/__user/gencode-remote
@@ -104,7 +104,7 @@ if [ "$state" = "present" ]; then
if [ $# -gt 0 ]; then
echo mod >> "$__messages_out"
if [ "$os" = "freebsd" ]; then
- echo pw usermod "$@" "$name"
+ echo pw usermod "$@" -n "$name"
else
echo usermod "$@" "$name"
fi
@@ -125,7 +125,7 @@ if [ "$state" = "present" ]; then
done
if [ "$os" = "freebsd" ]; then
- echo pw useradd "$@" "$name"
+ echo pw useradd "$@" -n "$name"
else
echo useradd "$@" "$name"
fi