aboutsummaryrefslogtreecommitdiff
path: root/manifests/utils
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2013-04-12 17:09:03 -0300
committerSilvio Rhatto <rhatto@riseup.net>2013-04-12 17:09:03 -0300
commitfe1c86b8f938283e9dd8196a8b11a9648f4b49e6 (patch)
treec2d999eca03862a3e4af57e0885397adf6bbc6ec /manifests/utils
parentec5c750d12bdc7948bb3c04f0c72817718a0bf47 (diff)
downloadpuppet-nodo-fe1c86b8f938283e9dd8196a8b11a9648f4b49e6.tar.gz
puppet-nodo-fe1c86b8f938283e9dd8196a8b11a9648f4b49e6.tar.bz2
Major refactor
Diffstat (limited to 'manifests/utils')
-rw-r--r--manifests/utils/desktop.pp6
-rw-r--r--manifests/utils/development.pp15
-rw-r--r--manifests/utils/development/virtual.pp12
-rw-r--r--manifests/utils/dns.pp5
-rw-r--r--manifests/utils/firmware.pp5
-rw-r--r--manifests/utils/firmware/iwlwifi.pp6
-rw-r--r--manifests/utils/firmware/realtek.pp5
-rw-r--r--manifests/utils/grub.pp5
-rw-r--r--manifests/utils/hamradio.pp5
-rw-r--r--manifests/utils/interface.pp30
-rw-r--r--manifests/utils/java.pp18
-rw-r--r--manifests/utils/laptop.pp9
-rw-r--r--manifests/utils/laptop/debian.pp35
-rw-r--r--manifests/utils/microcode/intel.pp8
-rw-r--r--manifests/utils/multimedia.pp48
-rw-r--r--manifests/utils/multimedia/mediacenter.pp5
-rw-r--r--manifests/utils/multimedia/ripper.pp6
-rw-r--r--manifests/utils/multimedia/studio.pp5
-rw-r--r--manifests/utils/network.pp80
-rw-r--r--manifests/utils/network/analyzer.pp5
-rw-r--r--manifests/utils/network/irssi.pp23
-rw-r--r--manifests/utils/network/minimal.pp17
-rw-r--r--manifests/utils/network/nfs.pp5
-rw-r--r--manifests/utils/network/samba.pp5
-rw-r--r--manifests/utils/network/torrent.pp5
-rw-r--r--manifests/utils/office.pp29
-rw-r--r--manifests/utils/personal.pp9
-rw-r--r--manifests/utils/personal/bundle.pp10
-rw-r--r--manifests/utils/personal/debian.pp17
-rw-r--r--manifests/utils/physical.pp13
-rw-r--r--manifests/utils/plug.pp6
-rw-r--r--manifests/utils/ruby.pp45
-rw-r--r--manifests/utils/security.pp13
-rw-r--r--manifests/utils/storage.pp6
-rw-r--r--manifests/utils/storage/archive.pp5
-rw-r--r--manifests/utils/thinkpad.pp16
-rw-r--r--manifests/utils/tor.pp5
-rw-r--r--manifests/utils/touchpad.pp6
-rw-r--r--manifests/utils/web.pp10
39 files changed, 558 insertions, 0 deletions
diff --git a/manifests/utils/desktop.pp b/manifests/utils/desktop.pp
new file mode 100644
index 0000000..9001b59
--- /dev/null
+++ b/manifests/utils/desktop.pp
@@ -0,0 +1,6 @@
+# Common utilities for desktop
+class nodo::utils::desktop {
+ package { 'cups':
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/development.pp b/manifests/utils/development.pp
new file mode 100644
index 0000000..6c85bef
--- /dev/null
+++ b/manifests/utils/development.pp
@@ -0,0 +1,15 @@
+class nodo::utils::development {
+ # Development
+ package { [ 'debhelper', 'gitk', 'git-gui', 'subversion', 'python-stdeb',
+ 'fakeroot', 'dupload', 'autotools-dev', 'dh-make', 'doxygen',
+ 'tig', 'mercurial', 'exuberant-ctags', 'reportbug', 'debian-keyring',
+ 'devscripts', 'pbuilder', 'build-essential', 'pnopaste-cli', 'agave',
+ 'cdbs', 'dh-buildinfo', 'quilt', 'dpatch', 'dput',
+ 'bzr', 'debian-goodies', 'debirf', 'xorriso', 'dh-autoreconf',
+ 'unetbootin', 'git-buildpackage', 'gem2deb', 'python-setuptools', 'python-virtualenv',
+ 'ditz', 'mr', 'puppet-lint', 'kpartx', 'openocd' ]:
+ ensure => installed,
+ }
+
+ include nodo::utils::storage::archive
+}
diff --git a/manifests/utils/development/virtual.pp b/manifests/utils/development/virtual.pp
new file mode 100644
index 0000000..011253e
--- /dev/null
+++ b/manifests/utils/development/virtual.pp
@@ -0,0 +1,12 @@
+class nodo::utils::development::virtual {
+ package { 'vagrant':
+ ensure => $::lsbdistcodename ? {
+ 'squeeze' => absent,
+ default => present,
+ }
+ }
+
+ package { [ 'virtualbox-guest-additions-iso', 'virtualbox-fuse', 'qemu', 'qemu-kvm' ]:
+ ensure => present,
+ }
+}
diff --git a/manifests/utils/dns.pp b/manifests/utils/dns.pp
new file mode 100644
index 0000000..57bb992
--- /dev/null
+++ b/manifests/utils/dns.pp
@@ -0,0 +1,5 @@
+class nodo::utils::dns {
+ package { 'dnstop':
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/firmware.pp b/manifests/utils/firmware.pp
new file mode 100644
index 0000000..ccdae37
--- /dev/null
+++ b/manifests/utils/firmware.pp
@@ -0,0 +1,5 @@
+class nodo::utils::firmware {
+ package { 'firmware-linux':
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/firmware/iwlwifi.pp b/manifests/utils/firmware/iwlwifi.pp
new file mode 100644
index 0000000..0dd761a
--- /dev/null
+++ b/manifests/utils/firmware/iwlwifi.pp
@@ -0,0 +1,6 @@
+# Wireless support
+class nodo::utils::firmware::iwlwifi {
+ package { 'firmware-iwlwifi':
+ ensure => present,
+ }
+}
diff --git a/manifests/utils/firmware/realtek.pp b/manifests/utils/firmware/realtek.pp
new file mode 100644
index 0000000..77d916a
--- /dev/null
+++ b/manifests/utils/firmware/realtek.pp
@@ -0,0 +1,5 @@
+class nodo::utils::firmware::realtek {
+ package { 'firmware-realtek':
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/grub.pp b/manifests/utils/grub.pp
new file mode 100644
index 0000000..1d24458
--- /dev/null
+++ b/manifests/utils/grub.pp
@@ -0,0 +1,5 @@
+class nodo::utils::grub {
+ package { 'grub2':
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/hamradio.pp b/manifests/utils/hamradio.pp
new file mode 100644
index 0000000..6915650
--- /dev/null
+++ b/manifests/utils/hamradio.pp
@@ -0,0 +1,5 @@
+class nodo::utils::hamradio {
+ package { 'aldo':
+ ensure => present,
+ }
+}
diff --git a/manifests/utils/interface.pp b/manifests/utils/interface.pp
new file mode 100644
index 0000000..c43bad7
--- /dev/null
+++ b/manifests/utils/interface.pp
@@ -0,0 +1,30 @@
+class nodo::utils::interface {
+ # Interface
+ package { [ 'awesome', 'eterm', 'weather-util', 'gnome-terminal', 'conky',
+ 'xterm', 'bash-completion', 'tmux', 'xscreensaver', 'thunar',
+ 'mc', 'gtk-theme-switch', 'gtk-smooth-themes', 'rxvt', 'lxappearance',
+ 'xtitle', 'xclip', 'pcmanfm', 'awesome-extra', 'numlockx',
+ 'x11-apps' ]:
+ ensure => installed,
+ }
+
+ # Old stuff
+ package { [ 'conkyforecast', 'fluxbox' ]:
+ ensure => absent,
+ }
+
+ # Fonts
+ package { [ 'xfonts-terminus', 'ttf-bitstream-vera', 'ttf-inconsolata' ]:
+ ensure => installed,
+ }
+
+ package { 'rxvt-unicode':
+ ensure => present,
+ # We need a workaround for this:
+ # http://packages.debian.org/search?keywords=screen&searchon=names&suite=all&section=all&sourceid=mozilla-search
+ #name => $lsbdistcodename ? {
+ # 'squeeze' => 'rxvt-unicode',
+ # default => 'rxvt-unicode-256color',
+ #}
+ }
+}
diff --git a/manifests/utils/java.pp b/manifests/utils/java.pp
new file mode 100644
index 0000000..a14635f
--- /dev/null
+++ b/manifests/utils/java.pp
@@ -0,0 +1,18 @@
+class nodo::utils::java {
+ # Java
+ package { [ 'sun-java6-jre' ]:
+ ensure => absent,
+ }
+
+ package { 'default-jre':
+ ensure => present,
+ }
+
+ # Java alternative
+ file { "/etc/alternatives/java":
+ ensure => "/usr/lib/jvm/java-6-openjdk/jre/bin/java",
+ owner => root,
+ group => root,
+ require => Package['default-jre'],
+ }
+}
diff --git a/manifests/utils/laptop.pp b/manifests/utils/laptop.pp
new file mode 100644
index 0000000..9a1e42c
--- /dev/null
+++ b/manifests/utils/laptop.pp
@@ -0,0 +1,9 @@
+# Common utilities for laptop
+class nodo::utils::laptop {
+ case $::operatingsystem {
+ debian: {
+ include utils::laptop::debian
+ }
+ default: { }
+ }
+}
diff --git a/manifests/utils/laptop/debian.pp b/manifests/utils/laptop/debian.pp
new file mode 100644
index 0000000..e4c769c
--- /dev/null
+++ b/manifests/utils/laptop/debian.pp
@@ -0,0 +1,35 @@
+# Common utilities for debian laptops
+class nodo::utils::laptop::debian {
+ package { [ 'cpufrequtils', 'module-assistant', 'wireless-tools',
+ 'wpasupplicant', 'ekiga', 'mumble',
+ 'revelation', 'arp-scan', 'usb-modeswitch',
+ 'iw', 'wvdial', 'wavemon',
+ 'btscanner', 'laptop-mode-tools', 'acpi-support',
+ 'tftp', 'sharutils', 'wireshark',
+ 'macchanger', 'weplab', 'wpagui',
+ 'gnokii' ]:
+ ensure => installed,
+ }
+
+ # Wicd
+ package { [ 'wicd', 'wicd-curses', 'wicd-gtk' ]:
+ ensure => installed,
+ }
+
+ # Wheezy specific packages
+ package { 'network-manager':
+ ensure => $::lsbdistcodename ? {
+ 'squeeze' => absent,
+ default => absent,
+ }
+ }
+
+ # Squeeze specific packages
+ package { [ 'kismet' ]:
+ ensure => $::lsbdistcodename ? {
+ 'squeeze' => installed,
+ default => absent,
+ }
+ }
+
+}
diff --git a/manifests/utils/microcode/intel.pp b/manifests/utils/microcode/intel.pp
new file mode 100644
index 0000000..b4d12bc
--- /dev/null
+++ b/manifests/utils/microcode/intel.pp
@@ -0,0 +1,8 @@
+class nodo::utils::microcode::intel {
+ # Microcode
+ # See https://wiki.archlinux.org/index.php/Microcode
+ # http://en.gentoo-wiki.com/wiki/Intel_Microcode
+ package { 'intel-microcode':
+ ensure => present,
+ }
+}
diff --git a/manifests/utils/multimedia.pp b/manifests/utils/multimedia.pp
new file mode 100644
index 0000000..d1a498f
--- /dev/null
+++ b/manifests/utils/multimedia.pp
@@ -0,0 +1,48 @@
+# Multimedia utilities
+class nodo::utils::multimedia {
+ # Multimedia
+ package { [ 'alsa-tools-gui', 'mp3blaster', 'alsa-utils', 'netpbm',
+ 'gqview', 'mpg123', 'audacious', 'qjackctl',
+ 'gimp', 'xine-ui', 'v4l-utils', 'inkscape',
+ 'easytag', 'gstreamer-tools', 'vlc', 'audacity',
+ 'opencubicplayer', 'youtube-dl', 'mencoder', 'libasound2-plugins',
+ 'cbrpager', 'llgal', 'darksnow', 'mplayer',
+ 'picard', 'ffmpeg2theora', 'oggfwd', 'jhead',
+ 'pavucontrol' ]:
+ ensure => installed,
+ }
+
+ # Old stuff
+ package { [ 'flashplugin-nonfree', 'amarok', 'moc', 'cmus' ]:
+ ensure => purged,
+ }
+
+ # Squeeze only
+ package { [ 'tucan', 'orpheus' ]:
+ ensure => $::lsbdistcodename ? {
+ 'squeeze' => installed,
+ default => purged,
+ }
+ }
+
+ # Wheezy onwards
+ package { 'landell':
+ ensure => $::lsbdistcodename ? {
+ 'squeeze' => absent,
+ default => installed,
+ }
+ }
+
+ # Flash
+ package { 'browser-plugin-gnash':
+ ensure => installed,
+ }
+
+ # Flash alternative
+ file { "/etc/alternatives/flash-mozilla.so":
+ ensure => "/usr/lib/gnash/libgnashplugin.so",
+ owner => root,
+ group => root,
+ require => Package['flashplugin-nonfree'],
+ }
+}
diff --git a/manifests/utils/multimedia/mediacenter.pp b/manifests/utils/multimedia/mediacenter.pp
new file mode 100644
index 0000000..3d8f241
--- /dev/null
+++ b/manifests/utils/multimedia/mediacenter.pp
@@ -0,0 +1,5 @@
+class nodo::utils::multimedia::mediacenter {
+ package { [ 'xbmc', 'upnp-inspector', 'gupnp-tools' ]:
+ ensure => present,
+ }
+}
diff --git a/manifests/utils/multimedia/ripper.pp b/manifests/utils/multimedia/ripper.pp
new file mode 100644
index 0000000..83d7029
--- /dev/null
+++ b/manifests/utils/multimedia/ripper.pp
@@ -0,0 +1,6 @@
+class nodo::utils::multimedia::ripper {
+ # CD writers and extractors
+ package { [ 'ripit', 'asunder', 'wodim', 'genisoimage', 'dvd+rw-tools' ]:
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/multimedia/studio.pp b/manifests/utils/multimedia/studio.pp
new file mode 100644
index 0000000..3d9966d
--- /dev/null
+++ b/manifests/utils/multimedia/studio.pp
@@ -0,0 +1,5 @@
+class nodo::utils::multimedia::studio {
+ package { [ 'ardour', 'hydrogen', ]:
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/network.pp b/manifests/utils/network.pp
new file mode 100644
index 0000000..196038a
--- /dev/null
+++ b/manifests/utils/network.pp
@@ -0,0 +1,80 @@
+class nodo::utils::network inherits nodo::utils::network::minimal {
+ # Network
+ package { [ 'mutt', 'offlineimap',
+ 'newsbeuter', 'nicotine', 'sshfs',
+ 'bogofilter', 'fetchmail', 'procmail',
+ 'msmtp', 'mairix', 'notmuch-mutt',
+ 'links', 'gftp', 'iceweasel',
+ 'openvpn', 'pssh', 'mutt-patched',
+ 'pidgin', 'pidgin-encryption', 'pidgin-openpgp',
+ 'pidgin-otr', 'pidgin-privacy-please', 'pidgin-plugin-pack',
+ 'sslscan', 'muttprofile', 'connect-proxy',
+ 'avahi-discover', 'mdns-scan' ]:
+ ensure => installed,
+ }
+
+ # Fix: ensure that fetchmail is not a service
+ service { 'fetchmail':
+ ensure => stopped,
+ enable => false,
+ require => Package['fetchmail'],
+ }
+
+ # Old packages
+ # About firegpg, see http://tails.boum.org/bugs/FireGPG_may_be_unsafe/
+ package { [ 'silc', 'twinkle', 'konqueror', 'transmission', 'amule', 'epiphany-browser',
+ 'bittorrent', 'bittornado', 'xul-ext-firegpg' ]:
+ ensure => absent,
+ }
+
+ # Squeeze (or newer) packages
+ if $::lsbdistcodename != 'lenny' {
+ package { [ 'xul-ext-monkeysphere', 'chromium-browser', 'libical-parser-perl',
+ 'maildir-utils', 'icedtea6-plugin', 'xul-ext-adblock-plus',
+ 'xul-ext-noscript', 'xul-ext-firebug' ]:
+ ensure => installed,
+ }
+
+ # Not using right now
+ package { [ 'xul-ext-torbutton', 'vidalia', 'xul-ext-perspectives', 'xul-ext-greasemonkey' ]:
+ ensure => absent,
+ }
+ }
+
+ # Wheezy (or newer) packages
+ if $::lsbdistcodename != 'squeeze' {
+ package { [ 'xul-ext-pentadactyl', 'xul-ext-https-everywhere', 'xul-ext-certificatepatrol',
+ 'xul-ext-cookie-monster', 'xul-ext-refcontrol', 'xul-ext-quickproxy',
+ 'xul-ext-requestpolicy' ]:
+ ensure => installed,
+ }
+
+ package { [ 'torchat' ]:
+ ensure => installed,
+ }
+ }
+
+ # Lenny only
+ package { [ 'mozilla-firefox-adblock' ]:
+ ensure => $::lsbdistcodename ? {
+ 'lenny' => present,
+ default => absent,
+ },
+ }
+
+ # Browser alternative
+ file { "/etc/alternatives/x-www-browser":
+ ensure => "/usr/bin/iceweasel",
+ owner => root,
+ group => root,
+ require => Package['iceweasel'],
+ }
+
+ # Browser alternative: manpage
+ file { "/etc/alternatives/x-www-browser.1.gz":
+ ensure => "/usr/share/man/man1/iceweasel.1.gz",
+ owner => root,
+ group => root,
+ require => Package['iceweasel'],
+ }
+}
diff --git a/manifests/utils/network/analyzer.pp b/manifests/utils/network/analyzer.pp
new file mode 100644
index 0000000..64ed803
--- /dev/null
+++ b/manifests/utils/network/analyzer.pp
@@ -0,0 +1,5 @@
+class nodo::utils::network::analyzer {
+ package { [ 'tshark' ]:
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/network/irssi.pp b/manifests/utils/network/irssi.pp
new file mode 100644
index 0000000..e476a0d
--- /dev/null
+++ b/manifests/utils/network/irssi.pp
@@ -0,0 +1,23 @@
+class nodo::utils::network::irssi {
+ package { [ 'irssi', 'bitlbee', 'irssi-scripts' ]:
+ ensure => installed,
+ }
+
+ # See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=695150
+ #package { 'irssi-plugin-otr':
+ # ensure => installed,
+ #}
+
+ # These are needed by the cap_sasl.pl irssi plugin
+ package { [ 'libcrypt-blowfish-perl', 'libcrypt-dh-perl', 'libcrypt-openssl-bignum-perl' ]:
+ ensure => installed,
+ }
+
+ # Not on wheezy
+ package { 'irssi-plugin-silc':
+ ensure => $::lsbdistcodename ? {
+ 'wheezy' => absent,
+ default => present,
+ }
+ }
+}
diff --git a/manifests/utils/network/minimal.pp b/manifests/utils/network/minimal.pp
new file mode 100644
index 0000000..51c4efe
--- /dev/null
+++ b/manifests/utils/network/minimal.pp
@@ -0,0 +1,17 @@
+class nodo::utils::network::minimal {
+ include nodo::utils::network::irssi
+ include nodo::utils::network::torrent
+
+ package { 'unison':
+ ensure => installed,
+ }
+
+ # For backwards compatibility
+ # See addversionno unison config parameter
+ package { 'unison2.32.52':
+ ensure => $::lsbdistcodename ? {
+ 'wheezy' => present,
+ default => absent,
+ }
+ }
+}
diff --git a/manifests/utils/network/nfs.pp b/manifests/utils/network/nfs.pp
new file mode 100644
index 0000000..9abe38e
--- /dev/null
+++ b/manifests/utils/network/nfs.pp
@@ -0,0 +1,5 @@
+class nodo::utils::network::nfs {
+ package { 'nfs-common':
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/network/samba.pp b/manifests/utils/network/samba.pp
new file mode 100644
index 0000000..c53e5e5
--- /dev/null
+++ b/manifests/utils/network/samba.pp
@@ -0,0 +1,5 @@
+class nodo::utils::network::samba {
+ package { [ 'smbclient', 'cifs-utils' ]:
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/network/torrent.pp b/manifests/utils/network/torrent.pp
new file mode 100644
index 0000000..154b24c
--- /dev/null
+++ b/manifests/utils/network/torrent.pp
@@ -0,0 +1,5 @@
+class nodo::utils::network::torrent {
+ package { [ 'rtorrent' ]:
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/office.pp b/manifests/utils/office.pp
new file mode 100644
index 0000000..4c96670
--- /dev/null
+++ b/manifests/utils/office.pp
@@ -0,0 +1,29 @@
+class nodo::utils::office {
+ # Office
+ package { [ 'wyrd', 'vim-gtk', 'gobby',
+ 'sc', 'antiword', 'dia',
+ 'kalarm', 'texlive-latex-base', 'texlive-latex-recommended',
+ 'texlive-latex-extra', 'pandoc', 'gnumeric',
+ 'cups-client', 'hplip', 'cups-bsd',
+ 'gnucash', 'worklog', 'pdftk',
+ 'calibre', 'fbreader', 'gobby-0.5',
+ 'mat', 'evince-gtk', 'jekyll' ]:
+ ensure => installed,
+ }
+
+ # Squeeze only
+ package { 'broffice.org':
+ ensure => $::lsbdistcodename ? {
+ 'squeeze' => installed,
+ default => absent,
+ }
+ }
+
+ # Wheezy onwards
+ package { 'libreoffice':
+ ensure => $::lsbdistcodename ? {
+ 'squeeze' => absent,
+ default => installed,
+ }
+ }
+}
diff --git a/manifests/utils/personal.pp b/manifests/utils/personal.pp
new file mode 100644
index 0000000..5202216
--- /dev/null
+++ b/manifests/utils/personal.pp
@@ -0,0 +1,9 @@
+# Common utilities for personal
+class nodo::utils::personal {
+ case $::operatingsystem {
+ debian: {
+ include nodo::utils::personal::debian
+ }
+ default: { }
+ }
+}
diff --git a/manifests/utils/personal/bundle.pp b/manifests/utils/personal/bundle.pp
new file mode 100644
index 0000000..e8cf4b9
--- /dev/null
+++ b/manifests/utils/personal/bundle.pp
@@ -0,0 +1,10 @@
+class nodo::utils::personal::bundle {
+ include nodo::utils::office
+ include nodo::utils::interface
+ include nodo::utils::network
+ include nodo::utils::development
+ include nodo::utils::security
+ include nodo::utils::multimedia
+ include nodo::utils::ruby
+ include nodo::utils::java
+}
diff --git a/manifests/utils/personal/debian.pp b/manifests/utils/personal/debian.pp
new file mode 100644
index 0000000..592ed3e
--- /dev/null
+++ b/manifests/utils/personal/debian.pp
@@ -0,0 +1,17 @@
+class nodo::utils::personal::debian {
+ # System
+ package { [ 'libpam-mount', 'ecryptfs-utils', 'gawk',
+ 'laptop-detect', 'syslinux', 'ack-grep', 'mtp-tools' ]:
+ ensure => installed,
+ }
+
+ # Misc
+ package { [ 'fortunes-br', 'recode', 'p7zip-full', 'funcoeszz', 'detox' ]:
+ ensure => installed,
+ }
+
+ # Non-free, old, buggy or absent in newer releases
+ package { [ 'mtpfs', 'unrar', 'figlet' ]:
+ ensure => purged,
+ }
+}
diff --git a/manifests/utils/physical.pp b/manifests/utils/physical.pp
new file mode 100644
index 0000000..78ff767
--- /dev/null
+++ b/manifests/utils/physical.pp
@@ -0,0 +1,13 @@
+# Common utilities for physical
+class nodo::utils::physical {
+ package { [ 'nload', 'acpid', 'slurm', 'ethtool', 'parted', 'iftop', 'iptraf', 'htop', 'sdparm' ]:
+ ensure => installed,
+ }
+
+ package { 'acpi':
+ ensure => $::architecture ? {
+ 'armv5tel' => absent,
+ default => present,
+ }
+ }
+}
diff --git a/manifests/utils/plug.pp b/manifests/utils/plug.pp
new file mode 100644
index 0000000..861c346
--- /dev/null
+++ b/manifests/utils/plug.pp
@@ -0,0 +1,6 @@
+# Common utilities for plug computers
+class nodo::utils::plug {
+ package { [ 'mtd-utils', 'cryptsetup', 'u-boot', 'smartmontools' ]:
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/ruby.pp b/manifests/utils/ruby.pp
new file mode 100644
index 0000000..14c770d
--- /dev/null
+++ b/manifests/utils/ruby.pp
@@ -0,0 +1,45 @@
+class nodo::utils::ruby {
+ # Gem packages
+ package { 'capistrano':
+ ensure => installed,
+ provider => $::lsbdistcodename ? {
+ 'squeeze' => gem,
+ default => apt,
+ },
+ require => Package['rubygems'],
+ }
+
+ # Gem packages
+ package { 'slideshow':
+ ensure => installed,
+ provider => gem,
+ require => Package['rubygems'],
+ }
+
+ if !defined(Package['ruby']) {
+ package { 'ruby':
+ ensure => installed,
+ }
+ }
+
+ if !defined(Package['rubygems']) {
+ package { 'rubygems':
+ ensure => installed,
+ require => Package['ruby'],
+ }
+ }
+
+ if !defined(Package['ruby-dev']) {
+ package { 'ruby-dev':
+ ensure => installed,
+ require => Package['ruby'],
+ }
+ }
+
+ if !defined(Package['libgpgme-ruby1.8']) {
+ package { 'libgpgme-ruby1.8':
+ ensure => installed,
+ require => Package['ruby'],
+ }
+ }
+}
diff --git a/manifests/utils/security.pp b/manifests/utils/security.pp
new file mode 100644
index 0000000..0f26688
--- /dev/null
+++ b/manifests/utils/security.pp
@@ -0,0 +1,13 @@
+class nodo::utils::security {
+ # Security
+ package { [ 'apg', 'gnupg-agent', 'makepasswd', 'pwgen', 'fpm2', 'encfs',
+ 'signing-party', 'libnss3-tools', 'ssss', 'libgfshare-bin' ]:
+ ensure => installed,
+ }
+
+ if $::lsbdistcodename != 'squeeze' {
+ package { [ 'kedpm', 'kedpm-gtk' ]:
+ ensure => installed,
+ }
+ }
+}
diff --git a/manifests/utils/storage.pp b/manifests/utils/storage.pp
new file mode 100644
index 0000000..d4a40e6
--- /dev/null
+++ b/manifests/utils/storage.pp
@@ -0,0 +1,6 @@
+# Common utilities for storage
+class nodo::utils::storage {
+ package { 'clamav':
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/storage/archive.pp b/manifests/utils/storage/archive.pp
new file mode 100644
index 0000000..e310bf5
--- /dev/null
+++ b/manifests/utils/storage/archive.pp
@@ -0,0 +1,5 @@
+class nodo::utils::storage::archive {
+ package { 'git-annex':
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/thinkpad.pp b/manifests/utils/thinkpad.pp
new file mode 100644
index 0000000..d595dbc
--- /dev/null
+++ b/manifests/utils/thinkpad.pp
@@ -0,0 +1,16 @@
+class nodo::utils::thinkpad {
+ # Keyboard
+ package { 'tpb':
+ ensure => installed,
+ }
+
+ # Thinkfan
+ package { 'thinkfan':
+ ensure => installed
+ }
+
+ # HDAPS
+ package { 'hdapsd':
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/tor.pp b/manifests/utils/tor.pp
new file mode 100644
index 0000000..f9475a3
--- /dev/null
+++ b/manifests/utils/tor.pp
@@ -0,0 +1,5 @@
+class nodo::utils::tor {
+ package { 'tor-arm':
+ ensure => installed,
+ }
+}
diff --git a/manifests/utils/touchpad.pp b/manifests/utils/touchpad.pp
new file mode 100644
index 0000000..a5390dd
--- /dev/null
+++ b/manifests/utils/touchpad.pp
@@ -0,0 +1,6 @@
+class nodo::utils::touchpad {
+ # Touchpad
+ package { 'gpointing-device-settings':
+ ensure => present,
+ }
+}
diff --git a/manifests/utils/web.pp b/manifests/utils/web.pp
new file mode 100644
index 0000000..9c2cd71
--- /dev/null
+++ b/manifests/utils/web.pp
@@ -0,0 +1,10 @@
+# Common utilities for web
+class nodo::utils::web {
+ package { [ 'ffmpeg', 'flvtool2', 'curl', 'rake',
+ 'libxml2', 'libxml2-dev', 'libxslt1-dev', 'libmysqlclient-dev',
+ 'g++', 'libcurl4-openssl-dev', 'apache2-prefork-dev' ]:
+ ensure => installed,
+ }
+
+ include nodo::utils::storage::archive
+}