diff --git a/.gitignore b/.gitignore
index 1f555e3..23ba9e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,22 +1,22 @@
-bin
-boot/
-data/
-dev/
-home/
-lib
-lib32
-lib64
-lost+found/
-media/
-misc/
-mnt/
-net/
-opt/
-proc/
-root/
-run/
-sbin
-srv/
-sys/
-tmp/
-usr/
+/bin
+/boot/
+/data/
+/dev/
+/home/
+/lib
+/lib32
+/lib64
+/lost+found/
+/media/
+/misc/
+/mnt/
+/net/
+/opt/
+/proc/
+/root/
+/run/
+/sbin
+/srv/
+/sys/
+/tmp/
+/usr/
diff --git a/etc/.gitignore b/etc/.gitignore
index 95bd876..4c3c9b1 100644
--- a/etc/.gitignore
+++ b/etc/.gitignore
@@ -1,102 +1,130 @@
-*~
-*.lock
-*.orig
-*.OLD
-acpi/
-bash/
-bindresvport.blacklist
-ca-certificates/
-ca-certificates.conf
-colors/
-cron.d/
-cron.hourly/
-cron.monthly/
-cron.weekly/
-crypttab
-cups/
-dbus-1/
-default/
-depmod.d/
-dhcpcd.conf
-dns/
-dracut.conf
-dracut.conf.d/
-e2scrub.conf
-environment
-ethertypes
-exports
-exports.d/
-filesystems
-fonts/
-gai.conf
-group-
-grub.d/
-gshadow
-gshadow-
-gtk-3.0/
-host.conf
-hosts
-idmapd.conf
-inputrc
-iproute2/
-iptables/
-issue
-kernel.d/
-ld.so.conf
-ld.so.conf.d/
-libnl/
-localtime
-login.defs
-lvm/
-lynx.cfg
-lynx.lss
-mail.rc
-mailx.rc
-man.conf
-mke2fs.conf
-modprobe.d/
-modules-load.d/
-mtab
-netconfig
-nsswitch.conf
-ntp.conf
-os-release
-pam.d/
-passwd
-passwd-
-pkcs11/
-profile
-profile.d/
-protocols
-rc.local
-rc.shutdown*
-resolv.conf
-rpc
-runit/
-screenrc
-securetty
-security/
-services
-shadow
-shadow-
-shells
-skel/
-ssl/
-subgid
-subgid-
-subuid
-subuid-
-sudo.conf
-sudoers
-sudoers.dist
-sv/
-sysctl.conf
-sysctl.d/
-udev/
-vmware-tools/
-wpa_supplicant/
-xattr.conf
-xbps.d/
-xdg/
-xtables.conf
-zzz.d/
+/*~
+/*.lock
+/*.orig
+/*.OLD
+/UPower/
+/X11/
+/acpi/
+/apparmor.d/
+/asound.conf
+/bash/
+/bindresvport.blacklist
+/ca-certificates/
+/ca-certificates.conf
+/certificates/
+/colors/
+/cron.d/
+/cron.hourly/
+/cron.monthly/
+/cron.weekly/
+/crypttab
+/cupshelpers/
+/dbus-1/
+/default/
+/depmod.d/
+/dhcpcd.conf
+/dkms/
+/dns/
+/dnsmasq.conf
+/dracut.conf
+/dracut.conf.d/
+/e2scrub.conf
+/environment
+/ethertypes
+/exports
+/exports.d/
+/fonts/
+/fuse.conf
+/gai.conf
+/gimp/
+/gprofng.rc
+/group-
+/grub.d/
+/gshadow
+/gshadow-
+/gtk-2.0/
+/gtk-3.0/
+/host.conf
+/hosts
+/idmapd.conf
+/inputrc
+/iproute2/
+/iptables/
+/irssi.conf
+/issue
+/kernel.d/
+/ld.so.cache
+/ld.so.conf
+/ld.so.conf.d/
+/libblockdev/
+/libnl/
+/libpaper.d/
+/libvirt/
+/localtime
+/login.defs
+/logrotate.d/
+/lvm/
+/lxdm/
+/lynx.cfg
+/lynx.lss
+/mail.rc
+/man.conf
+/mke2fs.conf
+/modprobe.d/
+/modules-load.d/
+/mtab
+/netconfig
+/nsswitch.conf
+/openldap/
+/os-release
+/pam.d/
+/papersize
+/passwd-
+/pinforc
+/pkcs11/
+/polkit-1/
+/profile
+/profile.d/
+/protocols
+/pulse/
+/rc.shutdown
+/rc_maps.cfg
+/resolv.conf
+/rpc
+/rsyncd.conf
+/samba/
+/sane.d/
+/sasl2/
+/screenrc
+/security/
+/sensors3.conf
+/services
+/sgml/
+/shadow
+/shadow-
+/shells
+/skel/
+/ssl/
+/subgid-
+/subuid-
+/sudo.conf
+/sudoers
+/sudoers.dist
+/sysconfig/
+/sysctl.conf
+/s-nail.rc
+/tigervnc/
+/ts.conf
+/udev/
+/udisks2/
+/vbox/
+/vdpau_wrapper.cfg
+/wgetrc
+/wpa_supplicant/
+/xattr.conf
+/xbps.d/
+/xdg/
+/xinetd.d/
+/xml/
+/xtables.conf
+/zzz.d/
diff --git a/etc/autofs/.gitignore b/etc/autofs/.gitignore
index ec790fe..a888381 100644
--- a/etc/autofs/.gitignore
+++ b/etc/autofs/.gitignore
@@ -1,6 +1,6 @@
-auto.master
-auto.misc
-auto.net*
-auto.smb*
-autofs.conf
-autofs_ldap_auth.conf
+/auto.master
+/auto.misc
+/auto.net*
+/auto.smb*
+/autofs.conf
+/autofs_ldap_auth.conf
diff --git a/etc/certificates/.gitignore b/etc/certificates/.gitignore
deleted file mode 100644
index dbd311a..0000000
--- a/etc/certificates/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-_DH_.pem
-_msmtp_-afterdark.lan-cert.pem
-_msmtp_-afterdark.lan-key.pem
-_msmtp_-afterdark.lan-key.pem.gpg
-_msmtp_-cert.pem
-_msmtp_-key.pem
diff --git a/etc/cron.daily/.gitignore b/etc/cron.daily/.gitignore
index fa4de9b..9eb4338 100644
--- a/etc/cron.daily/.gitignore
+++ b/etc/cron.daily/.gitignore
@@ -1,2 +1,3 @@
-makewhatis
-shadow
+/makewhatis
+/mupdatedb
+/shadow
diff --git a/etc/cups/.gitignore b/etc/cups/.gitignore
new file mode 100644
index 0000000..5f9a4c0
--- /dev/null
+++ b/etc/cups/.gitignore
@@ -0,0 +1,10 @@
+/*.O
+/*.default
+/classes.conf
+/client.conf
+/cupsd.conf
+/cups-browsed.conf
+/cups-files.conf
+/snmp.conf
+/ssl/
+/subscriptions.conf
diff --git a/etc/cups/ppd/.gitignore b/etc/cups/ppd/.gitignore
new file mode 100644
index 0000000..fe9c65d
--- /dev/null
+++ b/etc/cups/ppd/.gitignore
@@ -0,0 +1 @@
+/*.O
diff --git a/etc/cups/ppd/Brother_DCP-1610W.ppd b/etc/cups/ppd/Brother_DCP-1610W.ppd
new file mode 100644
index 0000000..d698651
--- /dev/null
+++ b/etc/cups/ppd/Brother_DCP-1610W.ppd
@@ -0,0 +1,154 @@
+*PPD-Adobe: "4.3"
+*%%%% PPD file for DCP-1600 series with CUPS.
+*%%%% Created by the CUPS PPD Compiler CUPS v2.3.3.
+*FormatVersion: "4.3"
+*FileVersion: "6"
+*LanguageVersion: English
+*LanguageEncoding: ISOLatin1
+*PCFileName: "br1600.ppd"
+*Product: "(DCP-1600 series)"
+*Manufacturer: "Brother"
+*ModelName: "Brother DCP-1600 series"
+*ShortNickName: "Brother DCP-1600 series"
+*NickName: "Brother DCP-1600 series, using brlaser v6"
+*PSVersion: "(3010.000) 0"
+*LanguageLevel: "3"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*FileSystem: False
+*Throughput: "1"
+*LandscapeOrientation: Plus90
+*TTRasterizer: Type42
+*% Driver-defined attributes...
+*1284DeviceID: "MFG:Brother;CMD:PJL,XL2HB;MDL:DCP-1600 series;CLS:PRINTER;CID:Brother Laser Type1;"
+*cupsVersion: 2.3
+*cupsModelNumber: 0
+*cupsManualCopies: False
+*cupsFilter: "application/vnd.cups-raster 33 rastertobrlaser"
+*cupsLanguages: "en"
+*OpenUI *PageSize/Media Size: PickOne
+*OrderDependency: 10 AnySetup *PageSize
+*DefaultPageSize: A4
+*PageSize A4/A4: "<>setpagedevice"
+*PageSize A5/A5: "<>setpagedevice"
+*PageSize A6/A6: "<>setpagedevice"
+*PageSize B5/JIS B5: "<>setpagedevice"
+*PageSize B6/JIS B6: "<>setpagedevice"
+*PageSize EnvC5/Envelope C5: "<>setpagedevice"
+*PageSize EnvMonarch/Envelope Monarch: "<>setpagedevice"
+*PageSize EnvDL/Envelope DL: "<>setpagedevice"
+*PageSize Executive/Executive: "<>setpagedevice"
+*PageSize Legal/US Legal: "<>setpagedevice"
+*PageSize Letter/US Letter: "<>setpagedevice"
+*CloseUI: *PageSize
+*OpenUI *PageRegion/Media Size: PickOne
+*OrderDependency: 10 AnySetup *PageRegion
+*DefaultPageRegion: A4
+*PageRegion A4/A4: "<>setpagedevice"
+*PageRegion A5/A5: "<>setpagedevice"
+*PageRegion A6/A6: "<>setpagedevice"
+*PageRegion B5/JIS B5: "<>setpagedevice"
+*PageRegion B6/JIS B6: "<>setpagedevice"
+*PageRegion EnvC5/Envelope C5: "<>setpagedevice"
+*PageRegion EnvMonarch/Envelope Monarch: "<>setpagedevice"
+*PageRegion EnvDL/Envelope DL: "<>setpagedevice"
+*PageRegion Executive/Executive: "<>setpagedevice"
+*PageRegion Legal/US Legal: "<>setpagedevice"
+*PageRegion Letter/US Letter: "<>setpagedevice"
+*CloseUI: *PageRegion
+*DefaultImageableArea: A4
+*ImageableArea A4/A4: "8 8 587 826"
+*ImageableArea A5/A5: "8 8 412 579"
+*ImageableArea A6/A6: "8 8 289 404"
+*ImageableArea B5/JIS B5: "8 8 508 713"
+*ImageableArea B6/JIS B6: "8 8 355 500"
+*ImageableArea EnvC5/Envelope C5: "8 8 451 633"
+*ImageableArea EnvMonarch/Envelope Monarch: "8 8 271 524"
+*ImageableArea EnvDL/Envelope DL: "8 8 304 608"
+*ImageableArea Executive/Executive: "8 8 514 740"
+*ImageableArea Legal/US Legal: "8 8 604 992"
+*ImageableArea Letter/US Letter: "8 8 604 776"
+*DefaultPaperDimension: A4
+*PaperDimension A4/A4: "595 842"
+*PaperDimension A5/A5: "420 595"
+*PaperDimension A6/A6: "297 420"
+*PaperDimension B5/JIS B5: "516 729"
+*PaperDimension B6/JIS B6: "363 516"
+*PaperDimension EnvC5/Envelope C5: "459 649"
+*PaperDimension EnvMonarch/Envelope Monarch: "279 540"
+*PaperDimension EnvDL/Envelope DL: "312 624"
+*PaperDimension Executive/Executive: "522 756"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension Letter/US Letter: "612 792"
+*OpenUI *Resolution/Resolution: PickOne
+*OrderDependency: 10 AnySetup *Resolution
+*DefaultResolution: 600dpi
+*Resolution 600dpi/600 DPI: "<>setpagedevice"
+*Resolution 1200dpi/1200HQ: "<>setpagedevice"
+*CloseUI: *Resolution
+*OpenUI *InputSlot/Media Source: PickOne
+*OrderDependency: 10 AnySetup *InputSlot
+*DefaultInputSlot: Auto
+*InputSlot Auto/Auto-select: "<>setpagedevice"
+*InputSlot Tray1/Tray 1: "<>setpagedevice"
+*InputSlot Tray2/Tray 2: "<>setpagedevice"
+*InputSlot Tray3/Tray 3: "<>setpagedevice"
+*InputSlot MPTray/MP Tray: "<>setpagedevice"
+*InputSlot Manual/Manual: "<>setpagedevice"
+*CloseUI: *InputSlot
+*OpenUI *MediaType/Media Type: PickOne
+*OrderDependency: 10 AnySetup *MediaType
+*DefaultMediaType: PLAIN
+*MediaType PLAIN/Plain paper: "<>setpagedevice"
+*MediaType THIN/Thin paper: "<>setpagedevice"
+*MediaType THICK/Thick paper: "<>setpagedevice"
+*MediaType THICKER/Thicker paper: "<>setpagedevice"
+*MediaType BOND/Bond paper: "<>setpagedevice"
+*MediaType TRANS/Transparencies: "<>setpagedevice"
+*MediaType ENV/Envelopes: "<>setpagedevice"
+*MediaType ENV-THICK/Thick envelopes: "<>setpagedevice"
+*MediaType ENV-THIN/Thin envelopes: "<>setpagedevice"
+*CloseUI: *MediaType
+*OpenUI *brlaserEconomode/Toner save mode: Boolean
+*OrderDependency: 10 AnySetup *brlaserEconomode
+*DefaultbrlaserEconomode: False
+*brlaserEconomode False/Off: "<>setpagedevice"
+*brlaserEconomode True/On: "<>setpagedevice"
+*CloseUI: *brlaserEconomode
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(1.05)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(1.05)" Standard ROM
+*Font AvantGarde-Demi: Standard "(1.05)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(1.05)" Standard ROM
+*Font Bookman-Demi: Standard "(1.05)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(1.05)" Standard ROM
+*Font Bookman-Light: Standard "(1.05)" Standard ROM
+*Font Bookman-LightItalic: Standard "(1.05)" Standard ROM
+*Font Courier: Standard "(1.05)" Standard ROM
+*Font Courier-Bold: Standard "(1.05)" Standard ROM
+*Font Courier-BoldOblique: Standard "(1.05)" Standard ROM
+*Font Courier-Oblique: Standard "(1.05)" Standard ROM
+*Font Helvetica: Standard "(1.05)" Standard ROM
+*Font Helvetica-Bold: Standard "(1.05)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(1.05)" Standard ROM
+*Font Helvetica-Narrow: Standard "(1.05)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(1.05)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(1.05)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(1.05)" Standard ROM
+*Font Helvetica-Oblique: Standard "(1.05)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(1.05)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(1.05)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(1.05)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(1.05)" Standard ROM
+*Font Palatino-Bold: Standard "(1.05)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(1.05)" Standard ROM
+*Font Palatino-Italic: Standard "(1.05)" Standard ROM
+*Font Palatino-Roman: Standard "(1.05)" Standard ROM
+*Font Symbol: Special "(001.005)" Special ROM
+*Font Times-Bold: Standard "(1.05)" Standard ROM
+*Font Times-BoldItalic: Standard "(1.05)" Standard ROM
+*Font Times-Italic: Standard "(1.05)" Standard ROM
+*Font Times-Roman: Standard "(1.05)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(1.05)" Standard ROM
+*Font ZapfDingbats: Special "(001.005)" Special ROM
+*% End of br1600.ppd, 08022 bytes.
diff --git a/etc/cups/ppd/Brother_DCP-J1050DW.ppd b/etc/cups/ppd/Brother_DCP-J1050DW.ppd
new file mode 100644
index 0000000..30f6597
--- /dev/null
+++ b/etc/cups/ppd/Brother_DCP-J1050DW.ppd
@@ -0,0 +1,214 @@
+*PPD-Adobe: "4.3"
+*cupsMandatory: attributes-charset attributes-natural-language printer-uri
+*FormatVersion: "4.3"
+*FileVersion: "2.4"
+*LanguageVersion: English
+*LanguageEncoding: ISOLatin1
+*PSVersion: "(3010.000) 0"
+*LanguageLevel: "3"
+*FileSystem: False
+*PCFileName: "ippeve.ppd"
+*Manufacturer: "Brother"
+*ModelName: "DCP-J1050DW"
+*Product: "(DCP-J1050DW)"
+*NickName: "DCP-J1050DW - IPP Everywhere"
+*ShortNickName: "DCP-J1050DW - IPP Everywhere"
+*ColorDevice: True
+*cupsVersion: 2.4
+*cupsSNMPSupplies: False
+*cupsLanguages: "en_US en ja"
+*APSupplies: "http://pr1/net/net/airprint.html"
+*cupsStringsURI: "http://pr1/ipp/strings/dict/en.txt"
+*cupsStringsURI en: "http://pr1/ipp/strings/dict/en.txt"
+*cupsStringsURI ja: "http://pr1/ipp/strings/dict/ja.txt"
+*cupsFilter2: "image/jpeg image/jpeg 0 -"
+*cupsManualCopies: True
+*cupsFilter2: "image/urf image/urf 100 -"
+*OpenUI *PageSize: PickOne
+*OrderDependency: 10 AnySetup *PageSize
+*DefaultPageSize: A4
+*PageSize 3.5x5: "<>setpagedevice"
+*PageSize 3.5x5.Borderless: "<>setpagedevice"
+*PageSize 4x6: "<>setpagedevice"
+*PageSize 4x6.Borderless: "<>setpagedevice"
+*PageSize 5x7: "<>setpagedevice"
+*PageSize 5x7.Borderless: "<>setpagedevice"
+*PageSize 5x8: "<>setpagedevice"
+*PageSize 5x8.Borderless: "<>setpagedevice"
+*PageSize A4: "<>setpagedevice"
+*PageSize A4.Borderless: "<>setpagedevice"
+*PageSize A5: "<>setpagedevice"
+*PageSize A6: "<>setpagedevice"
+*PageSize A6.Borderless: "<>setpagedevice"
+*PageSize Env10: "<>setpagedevice"
+*PageSize EnvC5: "<>setpagedevice"
+*PageSize EnvDL: "<>setpagedevice"
+*PageSize EnvMonarch: "<>setpagedevice"
+*PageSize Executive: "<>setpagedevice"
+*PageSize Letter: "<>setpagedevice"
+*PageSize Letter.Borderless: "<>setpagedevice"
+*CloseUI: *PageSize
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 10 AnySetup *PageRegion
+*DefaultPageRegion: A4
+*PageRegion 3.5x5: "<>setpagedevice"
+*PageRegion 3.5x5.Borderless: "<>setpagedevice"
+*PageRegion 4x6: "<>setpagedevice"
+*PageRegion 4x6.Borderless: "<>setpagedevice"
+*PageRegion 5x7: "<>setpagedevice"
+*PageRegion 5x7.Borderless: "<>setpagedevice"
+*PageRegion 5x8: "<>setpagedevice"
+*PageRegion 5x8.Borderless: "<>setpagedevice"
+*PageRegion A4: "<>setpagedevice"
+*PageRegion A4.Borderless: "<>setpagedevice"
+*PageRegion A5: "<>setpagedevice"
+*PageRegion A6: "<>setpagedevice"
+*PageRegion A6.Borderless: "<>setpagedevice"
+*PageRegion Env10: "<>setpagedevice"
+*PageRegion EnvC5: "<>setpagedevice"
+*PageRegion EnvDL: "<>setpagedevice"
+*PageRegion EnvMonarch: "<>setpagedevice"
+*PageRegion Executive: "<>setpagedevice"
+*PageRegion Letter: "<>setpagedevice"
+*PageRegion Letter.Borderless: "<>setpagedevice"
+*CloseUI: *PageRegion
+*DefaultImageableArea: A4
+*DefaultPaperDimension: A4
+*ImageableArea 3.5x5: "8.503937007874 8.503937007874 243.496062992126 351.496062992126"
+*PaperDimension 3.5x5: "252 360"
+*ImageableArea 3.5x5.Borderless: "0 0 252 360"
+*PaperDimension 3.5x5.Borderless: "252 360"
+*ImageableArea 4x6: "8.503937007874 8.503937007874 279.496062992126 423.496062992126"
+*PaperDimension 4x6: "288 432"
+*ImageableArea 4x6.Borderless: "0 0 288 432"
+*PaperDimension 4x6.Borderless: "288 432"
+*ImageableArea 5x7: "8.503937007874 8.503937007874 351.496062992126 495.496062992126"
+*PaperDimension 5x7: "360 504"
+*ImageableArea 5x7.Borderless: "0 0 360 504"
+*PaperDimension 5x7.Borderless: "360 504"
+*ImageableArea 5x8: "8.503937007874 8.503937007874 351.496062992126 567.496062992126"
+*PaperDimension 5x8: "360 576"
+*ImageableArea 5x8.Borderless: "0 0 360 576"
+*PaperDimension 5x8.Borderless: "360 576"
+*ImageableArea A4: "8.503937007874 8.503937007874 586.771653543307 833.385826771654"
+*PaperDimension A4: "595.275590551181 841.889763779528"
+*ImageableArea A4.Borderless: "0 0 595.275590551181 841.889763779528"
+*PaperDimension A4.Borderless: "595.275590551181 841.889763779528"
+*ImageableArea A5: "8.503937007874 8.503937007874 411.023622047244 586.771653543307"
+*PaperDimension A5: "419.527559055118 595.275590551181"
+*ImageableArea A6: "8.503937007874 8.503937007874 289.133858267717 411.023622047244"
+*PaperDimension A6: "297.637795275591 419.527559055118"
+*ImageableArea A6.Borderless: "0 0 297.637795275591 419.527559055118"
+*PaperDimension A6.Borderless: "297.637795275591 419.527559055118"
+*ImageableArea Env10: "8.503937007874 34.015748031496 288.48188976378 649.984251968504"
+*PaperDimension Env10: "296.985826771654 684"
+*ImageableArea EnvC5: "8.503937007874 34.015748031496 450.708661417323 615.11811023622"
+*PaperDimension EnvC5: "459.212598425197 649.133858267717"
+*ImageableArea EnvDL: "8.503937007874 34.015748031496 303.307086614173 589.606299212598"
+*PaperDimension EnvDL: "311.811023622047 623.622047244094"
+*ImageableArea EnvMonarch: "8.503937007874 34.015748031496 270.48188976378 505.984251968504"
+*PaperDimension EnvMonarch: "278.985826771654 540"
+*ImageableArea Executive: "8.503937007874 8.503937007874 513.496062992126 747.496062992126"
+*PaperDimension Executive: "522 756"
+*ImageableArea Letter: "8.503937007874 8.503937007874 603.496062992126 783.496062992126"
+*PaperDimension Letter: "612 792"
+*ImageableArea Letter.Borderless: "0 0 612 792"
+*PaperDimension Letter.Borderless: "612 792"
+*HWMargins: "8.503937007874 34.015748031496 8.503937007874 34.015748031496"
+*ParamCustomPageSize Width: 1 points 252 612
+*ParamCustomPageSize Height: 2 points 360 1008
+*ParamCustomPageSize WidthOffset: 3 points 0 0
+*ParamCustomPageSize HeightOffset: 4 points 0 0
+*ParamCustomPageSize Orientation: 5 int 0 3
+*CustomPageSize True: "pop pop pop <>setpagedevice"
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 10 AnySetup *InputSlot
+*DefaultInputSlot: Auto
+*InputSlot Auto: "<>setpagedevice"
+*en_US.InputSlot Auto/Automatic: ""
+*InputSlot Main: "<>setpagedevice"
+*en_US.InputSlot Main/Main: ""
+*CloseUI: *InputSlot
+*OpenUI *MediaType: PickOne
+*OrderDependency: 10 AnySetup *MediaType
+*DefaultMediaType: Stationery
+*MediaType Stationery: "<>setpagedevice"
+*en_US.MediaType Stationery/Stationery: ""
+*MediaType PhotographicGlossy: "<>setpagedevice"
+*en_US.MediaType PhotographicGlossy/Glossy Photo Paper: ""
+*MediaType StationeryInkjet: "<>setpagedevice"
+*en_US.MediaType StationeryInkjet/Stationery Inkjet Paper: ""
+*MediaType Com.brotherBp71: "<>setpagedevice"
+*en_US.MediaType Com.brotherBp71/Brother BP71: ""
+*CloseUI: *MediaType
+*DefaultResolution: 300dpi
+*OpenUI *cupsPrintQuality: PickOne
+*OrderDependency: 10 AnySetup *cupsPrintQuality
+*en_US.Translation cupsPrintQuality/Print Quality: ""
+*DefaultcupsPrintQuality: Normal
+*cupsPrintQuality Draft: "<>setpagedevice"
+*en_US.cupsPrintQuality Draft/Draft: ""
+*cupsPrintQuality Normal: "<>setpagedevice"
+*en_US.cupsPrintQuality Normal/Normal: ""
+*cupsPrintQuality High: "<>setpagedevice"
+*en_US.cupsPrintQuality High/High: ""
+*CloseUI: *cupsPrintQuality
+*% ColorModel from urf-supported
+*OpenUI *ColorModel: PickOne
+*OrderDependency: 10 AnySetup *ColorModel
+*en_US.Translation ColorModel/Color Mode: ""
+*ColorModel RGB: "<>setpagedevice"
+*en_US.ColorModel RGB/Color: ""
+*ColorModel Gray: "<>setpagedevice"
+*en_US.ColorModel Gray/Grayscale: ""
+*DefaultColorModel: RGB
+*CloseUI: *ColorModel
+*APPrinterPreset Gray_with_Paper_Auto-Detect_-_Draft/Draft B&W: "
+ *cupsPrintQuality Draft *ColorModel Gray
+ com.apple.print.preset.graphicsType General
+ com.apple.print.preset.quality low
+ com.apple.print.preset.media-front-coating autodetect
+ com.apple.print.preset.output-mode monochrome"
+*End
+*APPrinterPreset Gray_with_Paper_Auto-Detect/Black and White: "
+ *cupsPrintQuality Normal *ColorModel Gray
+ com.apple.print.preset.graphicsType General
+ com.apple.print.preset.quality mid
+ com.apple.print.preset.media-front-coating autodetect
+ com.apple.print.preset.output-mode monochrome"
+*End
+*APPrinterPreset Color_with_Paper_Auto-Detect/Color: "
+ *cupsPrintQuality Normal *ColorModel RGB
+ com.apple.print.preset.graphicsType General
+ com.apple.print.preset.quality mid
+ com.apple.print.preset.media-front-coating autodetect
+ com.apple.print.preset.output-mode color"
+*End
+*APPrinterPreset Photo_with_Paper_Auto-Detect/Photo: "
+ *cupsPrintQuality High *ColorModel RGB
+ com.apple.print.preset.graphicsType Photo
+ com.apple.print.preset.quality high
+ com.apple.print.preset.media-front-coating autodetect
+ com.apple.print.preset.output-mode color"
+*End
+*OpenUI *Duplex: PickOne
+*OrderDependency: 10 AnySetup *Duplex
+*en_US.Translation Duplex/2-Sided Printing: ""
+*DefaultDuplex: None
+*Duplex None: "<>setpagedevice"
+*en_US.Duplex None/Off (1-Sided): ""
+*Duplex DuplexNoTumble: "<>setpagedevice"
+*en_US.Duplex DuplexNoTumble/Long-Edge (Portrait): ""
+*Duplex DuplexTumble: "<>setpagedevice"
+*en_US.Duplex DuplexTumble/Short-Edge (Landscape): ""
+*CloseUI: *Duplex
+*cupsBackSide: Rotated
+*OpenUI *OutputBin: PickOne
+*OrderDependency: 10 AnySetup *OutputBin
+*DefaultOutputBin: FaceUp
+*DefaultOutputOrder: Reverse
+*OutputBin FaceUp: ""
+*en_US.OutputBin FaceUp/Face Up: ""
+*PageStackOrder FaceUp: Reverse
+*CloseUI: *OutputBin
+*cupsSingleFile: true
diff --git a/etc/cups/printers.conf b/etc/cups/printers.conf
new file mode 100644
index 0000000..6b9bc85
--- /dev/null
+++ b/etc/cups/printers.conf
@@ -0,0 +1,55 @@
+# Printer configuration file for CUPS v2.4.6
+# Written by cupsd
+# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
+NextPrinterId 4
+
+PrinterId 2
+UUID urn:uuid:38bb3c4e-debc-3be6-549f-73681a4091b6
+Info Brother DCP-1610W
+Location
+MakeModel Brother DCP-1600 series, using brlaser v6
+DeviceURI lpd://Printer/BINARY_P1
+State Idle
+StateTime 1661516089
+ConfigTime 1697735960
+Type 4164
+Accepting Yes
+Shared No
+JobSheets none none
+QuotaPeriod 0
+PageLimit 0
+KLimit 0
+OpPolicy default
+ErrorPolicy stop-printer
+Attribute marker-colors \#000000,none
+Attribute marker-levels -1,94
+Attribute marker-names Black Toner Cartridge,Drum Unit
+Attribute marker-types toner,opc
+Attribute marker-change-time 1661516089
+
+
+PrinterId 3
+UUID urn:uuid:fabcb579-b6a7-316b-4389-1e8df80b5433
+AuthInfoRequired none
+Info Brother DCP-J1050DW
+Location
+MakeModel DCP-J1050DW - IPP Everywhere
+DeviceURI ipp://pr1/
+State Idle
+StateTime 1697736316
+ConfigTime 1697736171
+Type 36892
+Accepting Yes
+Shared No
+JobSheets none none
+QuotaPeriod 0
+PageLimit 0
+KLimit 0
+OpPolicy default
+ErrorPolicy stop-printer
+Attribute marker-levels 69,73,62,80
+Attribute marker-low-levels 24,24,24,25
+Attribute marker-high-levels 100,100,100,100
+Attribute marker-types ink-cartridge,ink-cartridge,ink-cartridge,ink-cartridge
+Attribute marker-change-time 1697736316
+
diff --git a/etc/filesystems b/etc/filesystems
new file mode 100644
index 0000000..5fcf6aa
--- /dev/null
+++ b/etc/filesystems
@@ -0,0 +1,18 @@
+ext4
+ext3
+ext2
+iso9660
+exfat
+vfat
+ntfs
+msdos
+reiserfs
+btrfs
+jfs
+xfs
+f2fs
+squashfs
+romfs
+udf
+minix
+*
diff --git a/etc/fstab b/etc/fstab
index bc08dbe..0fdce99 100644
--- a/etc/fstab
+++ b/etc/fstab
@@ -1,3 +1,4 @@
-UUID=55f6f46d-b408-4416-994d-faadde6c54aa / ext4 defaults 0 1
-UUID=e87a8703-cc91-446b-84a4-17b38194b3d2 none swap defaults 0 0
-tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0
+UUID=94592a25-8ddd-4172-8a4a-ba37039264b9 / f2fs defaults 0 0
+UUID=3b36e83b-4742-402c-8374-a1938c2eac47 none swap sw 0 0
+UUID=1991-AFAB /boot/efi vfat defaults 0 2
+#tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0
diff --git a/etc/group b/etc/group
index 216de73..51c5ece 100644
--- a/etc/group
+++ b/etc/group
@@ -6,29 +6,43 @@ wheel:x:4:tadgy
tty:x:5:
tape:x:6:
daemon:x:7:
-floppy:x:8:
-disk:x:9:
-lp:x:10:
+floppy:x:8:tadgy
+disk:x:9:libvirt
+lp:x:10:_saned
dialout:x:11:
-audio:x:12:
-video:x:13:
+audio:x:12:pulse,tadgy
+video:x:13:tadgy
utmp:x:14:
adm:x:15:
-cdrom:x:16:
-optical:x:17:
+cdrom:x:16:tadgy
+optical:x:17:tadgy
mail:x:18:
storage:x:19:
-scanner:x:20:
-network:x:21:
-kvm:x:24:
+scanner:x:20:_saned
+network:x:21:tadgy
+kvm:x:24:tadgy,libvirt
input:x:25:
-plugdev:x:26:
-usbmon:x:27:
-sgx:x:28:
nogroup:x:99:
users:x:100:
-admin:x:101:tadgy
+xbuilder:x:101:tadgy
+dbus:x:22:
_dhcpcd:x:999:
-_uuidd:x:998:
-ntpd:x:997:
-rpc:x:996:
+lxdm:x:998:
+polkitd:x:997:
+pulse-access:x:996:
+pulse:x:995:
+rtkit:x:994:
+_uuidd:x:993:
+ntpd:x:992:
+socklog:x:991:
+lpadmin:x:990:
+_mlocate:x:989:
+dnsmasq:x:988:
+libvirt:x:987:
+ldap:x:986:
+rpc:x:985:
+vboxusers:x:984:tadgy
+plugdev:x:26:
+_saned:x:983:
+usbmon:x:27:
+sgx:x:28:
diff --git a/etc/gshadow.gpg b/etc/gshadow.gpg
index e878cb2..8f59f56 100644
Binary files a/etc/gshadow.gpg and b/etc/gshadow.gpg differ
diff --git a/etc/hostname b/etc/hostname
index f3bc7a0..6c8511b 100644
--- a/etc/hostname
+++ b/etc/hostname
@@ -1 +1 @@
-chuckie.afterdark.lan
+phil.afterdark.lan
diff --git a/etc/msmtprc b/etc/msmtprc
index 7bcf3b9..8f9699e 100644
--- a/etc/msmtprc
+++ b/etc/msmtprc
@@ -1,7 +1,7 @@
account default
host gw.afterdark.lan
timeout 300
-domain chuckie.afterdark.lan
+domain phil.afterdark.lan
tls off
tls_starttls off
tls_trust_file /etc/ssl/certs/ca-certificates.crt
diff --git a/etc/ntp.conf b/etc/ntp.conf
new file mode 100644
index 0000000..dac8658
--- /dev/null
+++ b/etc/ntp.conf
@@ -0,0 +1,31 @@
+# NTP servers to sync to.
+server gw.afterdark.lan
+
+# Sync to local clock if no servers are available.
+server 127.127.1.0
+fudge 127.127.1.0 stratum 10
+
+# By default, restrict access to the service.
+restrict -4 default limited nomodify noquery nopeer notrap kod
+restrict -6 default limited nomodify noquery nopeer notrap kod
+
+# Allow localhost to query the service, but nothing else.
+restrict -4 127.0.0.1 limited nomodify nopeer notrap kod
+restrict -6 ::1 limited nomodify nopeer notrap kod
+
+# Allow local networks to sync with us.
+# Edit the network address and mask below, and uncomment.
+# restrict 192.168.1.0 mask 255.255.255.0 limited nomodify nopeer notrap kod
+
+# Where to store the drift calculation.
+driftfile /var/db/ntpd/drift
+
+# Stats should be written here.
+statsdir /var/db/ntpd/stats
+
+# PID file location.
+pidfile /run/ntpd.pid
+
+# Disable the ntpdc -c monlist command, which is insecure and can be used
+# to cause a denial of service attack (CVE-2013-5211).
+disable monitor
diff --git a/etc/passwd b/etc/passwd
new file mode 100644
index 0000000..b3da8eb
--- /dev/null
+++ b/etc/passwd
@@ -0,0 +1,17 @@
+root:x:0:0:root:/root:/bin/bash
+nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
+dbus:x:22:22:dbus unprivileged user:/var/empty:/sbin/nologin
+_dhcpcd:x:999:999:_dhcpcd unprivileged user:/var/db/dhcpcd:/sbin/nologin
+polkitd:x:998:997:polkitd unprivileged user:/var/empty:/sbin/nologin
+pulse:x:997:995:pulse unprivileged user:/var/empty:/sbin/nologin
+rtkit:x:996:994:rtkit unprivileged user:/proc:/sbin/nologin
+_uuidd:x:995:993:_uuidd unprivileged user:/var/empty:/sbin/nologin
+tadgy:x:1001:100:Darren 'Tadgy' Austin:/home/tadgy:/bin/bash
+ntpd:x:994:992:ntpd unprivileged user:/var/db/ntpd:/sbin/nologin
+cups:x:993:10:cups unprivileged user:/var/spool/cups:/sbin/nologin
+_mlocate:x:992:989:_mlocate unprivileged user:/var/empty:/sbin/nologin
+dnsmasq:x:991:988:dnsmasq unprivileged user:/var/chroot:/sbin/nologin
+libvirt:x:990:987:libvirt unprivileged user:/var/empty:/sbin/nologin
+ldap:x:989:986:ldap unprivileged user - for uninstalled package openldap:/var/empty:/bin/false
+rpc:x:988:985:rpc unprivileged user:/var/empty:/sbin/nologin
+_saned:x:987:983:_saned unprivileged user:/var/empty:/sbin/nologin
diff --git a/etc/printcap b/etc/printcap
new file mode 100644
index 0000000..b32b91e
--- /dev/null
+++ b/etc/printcap
@@ -0,0 +1,5 @@
+# This file was automatically generated by cupsd(8) from the
+# /etc/cups/printers.conf file. All changes to this file
+# will be lost.
+Brother_DCP-1610W|Brother DCP-1610W:rm=phil.afterdark.lan:rp=Brother_DCP-1610W:
+Brother_DCP-J1050DW|Brother DCP-J1050DW:rm=phil.afterdark.lan:rp=Brother_DCP-J1050DW:
diff --git a/etc/rc.conf b/etc/rc.conf
index 723d29d..cf283ff 100644
--- a/etc/rc.conf
+++ b/etc/rc.conf
@@ -23,7 +23,7 @@ HARDWARECLOCK="UTC"
KEYMAP=uk
# Console font to load, see setfont(8).
-#FONT="lat9w-16"
+FONT="ter-v24n"
# Console map to load, see setfont(8).
#FONT_MAP=
@@ -32,7 +32,7 @@ KEYMAP=uk
#FONT_UNIMAP=
# Amount of ttys which should be setup.
-#TTYS=
+TTYS=10
# Set the mode for cgroup mounts.
# hybrid: mount cgroup v1 under /sys/fs/cgroup and
diff --git a/etc/rc.firewall b/etc/rc.firewall
new file mode 100755
index 0000000..3550c8b
--- /dev/null
+++ b/etc/rc.firewall
@@ -0,0 +1,108 @@
+#!/bin/bash
+
+# The name of the main external interface.
+EX_IF="enp11s0"
+
+
+start_firewall() {
+ # Flush old rules.
+ iptables -F
+ ip6tables -F
+ iptables -t nat -F
+ ip6tables -t nat -F
+ iptables -t mangle -F
+ ip6tables -t mangle -F
+
+ # Delete any custom chains.
+ iptables -X
+ ip6tables -X
+ iptables -t nat -X
+ ip6tables -t nat -X
+ iptables -t mangle -X
+ ip6tables -t mangle -X
+
+ # Allow all loopback traffic.
+ iptables -A INPUT -i lo -j ACCEPT
+ ip6tables -A INPUT -i lo -j ACCEPT
+
+ # Drop invalid packets on all interfaces.
+ iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
+ ip6tables -A INPUT -m conntrack --ctstate INVALID -j DROP
+
+ # Allow packets of established connections and those related to them.
+ iptables -A INPUT -i "$EX_IF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
+ ip6tables -A INPUT -i "$EX_IF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
+
+ # Allow pings.
+ iptables -A INPUT -i "$EX_IF" -p icmp -m icmp --icmp-type echo-request -j ACCEPT
+ ip6tables -A INPUT -i "$EX_IF" -p icmpv6 --icmpv6-type echo-request -j ACCEPT
+ iptables -A INPUT -i "$EX_IF" -p icmp --icmp-type echo-reply -j ACCEPT
+ ip6tables -A INPUT -i "$EX_IF" -p icmpv6 --icmpv6-type echo-reply -j ACCEPT
+
+ # Allow certain types of ICMP informational packets.
+ iptables -A INPUT -i "$EX_IF" -p icmp --icmp-type destination-unreachable -j ACCEPT
+ ip6tables -A INPUT -i "$EX_IF" -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
+ iptables -A INPUT -i "$EX_IF" -p icmp --icmp-type time-exceeded -j ACCEPT
+ ip6tables -A INPUT -i "$EX_IF" -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT
+ iptables -A INPUT -i "$EX_IF" -p icmp --icmp-type parameter-problem -j ACCEPT
+ ip6tables -A INPUT -i "$EX_IF" -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT
+ ip6tables -A INPUT -i "$EX_IF" -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
+ ip6tables -A INPUT -i "$EX_IF" -p icmpv6 --icmpv6-type neighbour-solicitation -j ACCEPT
+ ip6tables -A INPUT -i "$EX_IF" -p icmpv6 --icmpv6-type neighbour-advertisement -j ACCEPT
+
+ # Allow SSH.
+ iptables -A INPUT -i "$EX_IF" -p tcp --syn --dport 22 -m conntrack --ctstate NEW -j ACCEPT
+ ip6tables -A INPUT -i "$EX_IF" -p tcp --syn --dport 22 -m conntrack --ctstate NEW -j ACCEPT
+
+ # Set default policies.
+ iptables -P INPUT DROP
+ ip6tables -P INPUT DROP
+ iptables -P OUTPUT ACCEPT # We don't firewall outgoing connections.
+ ip6tables -P OUTPUT ACCEPT # We don't firewall outgoing connections.
+ iptables -P FORWARD DROP
+ ip6tables -P FORWARD DROP
+}
+
+stop_firewall() {
+ # Set default policies to ACCEPT.
+ iptables -P INPUT ACCEPT
+ ip6tables -P INPUT ACCEPT
+ iptables -P OUTPUT ACCEPT
+ ip6tables -P OUTPUT ACCEPT
+ iptables -P FORWARD ACCEPT
+ ip6tables -P FORWARD ACCEPT
+
+ # Flush rules.
+ iptables -F
+ ip6tables -F
+ iptables -t nat -F
+ ip6tables -t nat -F
+ iptables -t mangle -F
+ ip6tables -t mangle -F
+
+ # Delete any custom chains.
+ iptables -X
+ ip6tables -X
+ iptables -t nat -X
+ ip6tables -t nat -X
+ iptables -t mangle -X
+ ip6tables -t mangle -X
+}
+
+
+case "$1" in
+ 'start')
+ start_firewall
+ ;;
+ 'stop')
+ stop_firewall
+ ;;
+ 'restart')
+ stop_firewall
+ start_firewall
+ ;;
+ *)
+ echo "Usage: $BASH_SOURCE " >&2
+ ERR=1
+ ;;
+esac
diff --git a/etc/rc.local b/etc/rc.local
new file mode 100755
index 0000000..619cdba
--- /dev/null
+++ b/etc/rc.local
@@ -0,0 +1,10 @@
+# Default rc.local for void; add your custom commands here.
+#
+# This is run by runit in stage 2 before the services are executed
+# (see /etc/runit/2).
+
+[ -x /etc/rc.firewall ] && /etc/rc.firewall start
+
+echo 5000 >/sys/class/backlight/intel_backlight/brightness
+
+/sbin/setcolors /etc/setcolors.conf
diff --git a/etc/runit/.gitignore b/etc/runit/.gitignore
new file mode 100644
index 0000000..f8c4f83
--- /dev/null
+++ b/etc/runit/.gitignore
@@ -0,0 +1,10 @@
+/1
+/2
+/3
+/core-services/
+/crypt.awk
+/ctrlaltdel
+/functions
+/reboot
+/shutdown.d/
+/stopit
diff --git a/etc/runit/runsvdir/.gitignore b/etc/runit/runsvdir/.gitignore
new file mode 100644
index 0000000..ccc1342
--- /dev/null
+++ b/etc/runit/runsvdir/.gitignore
@@ -0,0 +1,3 @@
+/current
+/previous
+/single/
diff --git a/etc/runit/runsvdir/default/.gitignore b/etc/runit/runsvdir/default/.gitignore
new file mode 100644
index 0000000..78ed279
--- /dev/null
+++ b/etc/runit/runsvdir/default/.gitignore
@@ -0,0 +1,19 @@
+/acpid
+/agetty-*
+!/agetty-tty7
+!/agetty-tty8
+!/agetty-tty9
+!/agetty-tty10
+/alsa
+/cupsd
+/dbus
+/dhcpcd
+/gpm-custom
+/lxdm
+/nanoklogd
+/polkitd
+/rtkit
+/socklog-unix
+/sshd
+/udevd
+/uuidd
diff --git a/etc/runit/runsvdir/default/agetty-tty10 b/etc/runit/runsvdir/default/agetty-tty10
new file mode 120000
index 0000000..d727056
--- /dev/null
+++ b/etc/runit/runsvdir/default/agetty-tty10
@@ -0,0 +1 @@
+/etc/sv/agetty-tty10
\ No newline at end of file
diff --git a/etc/runit/runsvdir/default/agetty-tty7 b/etc/runit/runsvdir/default/agetty-tty7
new file mode 120000
index 0000000..dd13a79
--- /dev/null
+++ b/etc/runit/runsvdir/default/agetty-tty7
@@ -0,0 +1 @@
+/etc/sv/agetty-tty7
\ No newline at end of file
diff --git a/etc/runit/runsvdir/default/agetty-tty8 b/etc/runit/runsvdir/default/agetty-tty8
new file mode 120000
index 0000000..52a9bc1
--- /dev/null
+++ b/etc/runit/runsvdir/default/agetty-tty8
@@ -0,0 +1 @@
+/etc/sv/agetty-tty8
\ No newline at end of file
diff --git a/etc/runit/runsvdir/default/agetty-tty9 b/etc/runit/runsvdir/default/agetty-tty9
new file mode 120000
index 0000000..975a5f5
--- /dev/null
+++ b/etc/runit/runsvdir/default/agetty-tty9
@@ -0,0 +1 @@
+/etc/sv/agetty-tty9
\ No newline at end of file
diff --git a/etc/runit/runsvdir/default/autofs b/etc/runit/runsvdir/default/autofs
new file mode 120000
index 0000000..bf6c977
--- /dev/null
+++ b/etc/runit/runsvdir/default/autofs
@@ -0,0 +1 @@
+/etc/sv/autofs
\ No newline at end of file
diff --git a/etc/runit/runsvdir/default/dcron b/etc/runit/runsvdir/default/dcron
new file mode 120000
index 0000000..5487a89
--- /dev/null
+++ b/etc/runit/runsvdir/default/dcron
@@ -0,0 +1 @@
+/etc/sv/dcron
\ No newline at end of file
diff --git a/etc/runit/runsvdir/default/ntpd b/etc/runit/runsvdir/default/ntpd
new file mode 120000
index 0000000..995c2bd
--- /dev/null
+++ b/etc/runit/runsvdir/default/ntpd
@@ -0,0 +1 @@
+/etc/sv/ntpd
\ No newline at end of file
diff --git a/etc/runit/runsvdir/default/smartd b/etc/runit/runsvdir/default/smartd
new file mode 120000
index 0000000..9d53616
--- /dev/null
+++ b/etc/runit/runsvdir/default/smartd
@@ -0,0 +1 @@
+/etc/sv/smartd
\ No newline at end of file
diff --git a/etc/securetty b/etc/securetty
new file mode 100644
index 0000000..e3667da
--- /dev/null
+++ b/etc/securetty
@@ -0,0 +1,25 @@
+# Console tty's:
+console
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+tty7
+tty8
+tty9
+tty10
+
+# Pseudo TTYs (not recommended):
+# pts/0
+# pts/1
+# pts/2
+# pts/3
+# pts/4
+# pts/5
+# pts/6
+# pts/7
+# pts/8
+# pts/9
+# pts/10
diff --git a/etc/setcolors.conf b/etc/setcolors.conf
new file mode 100644
index 0000000..1e491e4
--- /dev/null
+++ b/etc/setcolors.conf
@@ -0,0 +1,16 @@
+0#000000
+1#800000
+2#008000
+3#aa5500
+4#0000aa
+5#5833ff
+6#00aaaa
+7#aaaaaa
+8#555555
+9#ff0000
+10#00ff00
+11#ffff00
+12#0000ff
+13#5833ff
+14#00ffff
+15#ffffff
diff --git a/etc/shadow.gpg b/etc/shadow.gpg
index 754d592..7728001 100644
Binary files a/etc/shadow.gpg and b/etc/shadow.gpg differ
diff --git a/etc/smartd/.gitignore b/etc/smartd/.gitignore
new file mode 100644
index 0000000..d7084c9
--- /dev/null
+++ b/etc/smartd/.gitignore
@@ -0,0 +1 @@
+/smartd_warning.sh
diff --git a/etc/smartd/smartd.conf b/etc/smartd/smartd.conf
new file mode 100644
index 0000000..7ebc6b2
--- /dev/null
+++ b/etc/smartd/smartd.conf
@@ -0,0 +1,148 @@
+# Sample configuration file for smartd. See man smartd.conf.
+
+# Home page is: http://www.smartmontools.org
+
+# $Id: smartd.conf 4120 2015-08-27 16:12:21Z samm2 $
+
+# smartd will re-read the configuration file if it receives a HUP
+# signal
+
+# The file gives a list of devices to monitor using smartd, with one
+# device per line. Text after a hash (#) is ignored, and you may use
+# spaces and tabs for white space. You may use '\' to continue lines.
+
+# You can usually identify which hard disks are on your system by
+# looking in /proc/ide and in /proc/scsi.
+
+# The word DEVICESCAN will cause any remaining lines in this
+# configuration file to be ignored: it tells smartd to scan for all
+# ATA and SCSI devices. DEVICESCAN may be followed by any of the
+# Directives listed below, which will be applied to all devices that
+# are found. Most users should comment out DEVICESCAN and explicitly
+# list the devices that they wish to monitor.
+#DEVICESCAN
+
+# Alternative setting to ignore temperature and power-on hours reports
+# in syslog.
+#DEVICESCAN -I 194 -I 231 -I 9
+
+# Alternative setting to report more useful raw temperature in syslog.
+#DEVICESCAN -R 194 -R 231 -I 9
+
+# Alternative setting to report raw temperature changes >= 5 Celsius
+# and min/max temperatures.
+#DEVICESCAN -I 194 -I 231 -I 9 -W 5
+
+# First ATA/SATA or SCSI/SAS disk. Monitor all attributes, enable
+# automatic online data collection, automatic Attribute autosave, and
+# start a short self-test every day between 2-3am, and a long self test
+# Saturdays between 3-4am.
+#/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03)
+
+# Monitor SMART status, ATA Error Log, Self-test log, and track
+# changes in all attributes except for attribute 194
+#/dev/sdb -H -l error -l selftest -t -I 194
+
+# Monitor all attributes except normalized Temperature (usually 194),
+# but track Temperature changes >= 4 Celsius, report Temperatures
+# >= 45 Celsius and changes in Raw value of Reallocated_Sector_Ct (5).
+# Send mail on SMART failures or when Temperature is >= 55 Celsius.
+#/dev/sdc -a -I 194 -W 4,45,55 -R 5 -m admin@example.com
+
+# An ATA disk may appear as a SCSI device to the OS. If a SCSI to
+# ATA Translation (SAT) layer is between the OS and the device then
+# this can be flagged with the '-d sat' option. This situation may
+# become common with SATA disks in SAS and FC environments.
+# /dev/sda -a -d sat
+
+# A very silent check. Only report SMART health status if it fails
+# But send an email in this case
+#/dev/sdc -H -C 0 -U 0 -m admin@example.com
+
+# First two SCSI disks. This will monitor everything that smartd can
+# monitor. Start extended self-tests Wednesdays between 6-7pm and
+# Sundays between 1-2 am
+#/dev/sda -d scsi -s L/../../3/18
+#/dev/sdb -d scsi -s L/../../7/01
+
+# Monitor 4 ATA disks connected to a 3ware 6/7/8000 controller which uses
+# the 3w-xxxx driver. Start long self-tests Sundays between 1-2, 2-3, 3-4,
+# and 4-5 am.
+# NOTE: starting with the Linux 2.6 kernel series, the /dev/sdX interface
+# is DEPRECATED. Use the /dev/tweN character device interface instead.
+# For example /dev/twe0, /dev/twe1, and so on.
+#/dev/sdc -d 3ware,0 -a -s L/../../7/01
+#/dev/sdc -d 3ware,1 -a -s L/../../7/02
+#/dev/sdc -d 3ware,2 -a -s L/../../7/03
+#/dev/sdc -d 3ware,3 -a -s L/../../7/04
+
+# Monitor 2 ATA disks connected to a 3ware 9000 controller which
+# uses the 3w-9xxx driver (Linux, FreeBSD). Start long self-tests Tuesdays
+# between 1-2 and 3-4 am.
+#/dev/twa0 -d 3ware,0 -a -s L/../../2/01
+#/dev/twa0 -d 3ware,1 -a -s L/../../2/03
+
+# Monitor 2 SATA (not SAS) disks connected to a 3ware 9000 controller which
+# uses the 3w-sas driver (Linux). Start long self-tests Tuesdays
+# between 1-2 and 3-4 am.
+# On FreeBSD /dev/tws0 should be used instead
+#/dev/twl0 -d 3ware,0 -a -s L/../../2/01
+#/dev/twl0 -d 3ware,1 -a -s L/../../2/03
+
+# Same as above for Windows. Option '-d 3ware,N' is not necessary,
+# disk (port) number is specified in device name.
+# NOTE: On Windows, DEVICESCAN works also for 3ware controllers.
+#/dev/hdc,0 -a -s L/../../2/01
+#/dev/hdc,1 -a -s L/../../2/03
+
+# Monitor 3 ATA disks directly connected to a HighPoint RocketRAID. Start long
+# self-tests Sundays between 1-2, 2-3, and 3-4 am.
+#/dev/sdd -d hpt,1/1 -a -s L/../../7/01
+#/dev/sdd -d hpt,1/2 -a -s L/../../7/02
+#/dev/sdd -d hpt,1/3 -a -s L/../../7/03
+
+# Monitor 2 ATA disks connected to the same PMPort which connected to the
+# HighPoint RocketRAID. Start long self-tests Tuesdays between 1-2 and 3-4 am
+#/dev/sdd -d hpt,1/4/1 -a -s L/../../2/01
+#/dev/sdd -d hpt,1/4/2 -a -s L/../../2/03
+
+# HERE IS A LIST OF DIRECTIVES FOR THIS CONFIGURATION FILE.
+# PLEASE SEE THE smartd.conf MAN PAGE FOR DETAILS
+#
+# -d TYPE Set the device type: ata, scsi, marvell, removable, 3ware,N, hpt,L/M/N
+# -T TYPE set the tolerance to one of: normal, permissive
+# -o VAL Enable/disable automatic offline tests (on/off)
+# -S VAL Enable/disable attribute autosave (on/off)
+# -n MODE No check. MODE is one of: never, sleep, standby, idle
+# -H Monitor SMART Health Status, report if failed
+# -l TYPE Monitor SMART log. Type is one of: error, selftest
+# -f Monitor for failure of any 'Usage' Attributes
+# -m ADD Send warning email to ADD for -H, -l error, -l selftest, and -f
+# -M TYPE Modify email warning behavior (see man page)
+# -s REGE Start self-test when type/date matches regular expression (see man page)
+# -p Report changes in 'Prefailure' Normalized Attributes
+# -u Report changes in 'Usage' Normalized Attributes
+# -t Equivalent to -p and -u Directives
+# -r ID Also report Raw values of Attribute ID with -p, -u or -t
+# -R ID Track changes in Attribute ID Raw value with -p, -u or -t
+# -i ID Ignore Attribute ID for -f Directive
+# -I ID Ignore Attribute ID for -p, -u or -t Directive
+# -C ID Report if Current Pending Sector count non-zero
+# -U ID Report if Offline Uncorrectable count non-zero
+# -W D,I,C Monitor Temperature D)ifference, I)nformal limit, C)ritical limit
+# -v N,ST Modifies labeling of Attribute N (see man page)
+# -a Default: equivalent to -H -f -t -l error -l selftest -C 197 -U 198
+# -F TYPE Use firmware bug workaround. Type is one of: none, samsung
+# -P TYPE Drive-specific presets: use, ignore, show, showall
+# # Comment: text after a hash sign is ignored
+# \ Line continuation character
+# Attribute ID is a decimal integer 1 <= ID <= 255
+# except for -C and -U, where ID = 0 turns them off.
+# All but -d, -m and -M Directives are only implemented for ATA devices
+#
+# If the test string DEVICESCAN is the first uncommented text
+# then smartd will scan for devices.
+# DEVICESCAN may be followed by any desired Directives.
+
+#DEVICESCAN -a -s (S/../.././02|L/../../7/07) -I 190 -W 5,30,35 -m sysadmin@opensourcerers.uk -M daily -M test
+DEVICESCAN -a -s (S/../.././02|L/../../7/07) -W 5,30,35 -m darren@afterdark.org.uk -M daily
diff --git a/etc/ssh/.gitignore b/etc/ssh/.gitignore
index 23b67fd..3dbe4f3 100644
--- a/etc/ssh/.gitignore
+++ b/etc/ssh/.gitignore
@@ -1,5 +1,4 @@
-*_key
-moduli
-sshd_config
-sshd_config.d/
-ssh_config
+/*_key
+/moduli
+/sshd_config.d/
+/*_key
diff --git a/etc/ssh/ssh_config b/etc/ssh/ssh_config
new file mode 100644
index 0000000..0c27d9f
--- /dev/null
+++ b/etc/ssh/ssh_config
@@ -0,0 +1,5 @@
+Host *
+ ControlPath ~/.ssh/%u@%l->%r@%h:%p
+ SendEnv LANG LC_*
+ VerifyHostKeyDNS yes
+ VisualHostKey yes
diff --git a/etc/ssh/ssh_host_ecdsa_key.gpg b/etc/ssh/ssh_host_ecdsa_key.gpg
index 217dbab..7a6836d 100644
Binary files a/etc/ssh/ssh_host_ecdsa_key.gpg and b/etc/ssh/ssh_host_ecdsa_key.gpg differ
diff --git a/etc/ssh/ssh_host_ecdsa_key.pub b/etc/ssh/ssh_host_ecdsa_key.pub
index b385ae3..7027888 100644
--- a/etc/ssh/ssh_host_ecdsa_key.pub
+++ b/etc/ssh/ssh_host_ecdsa_key.pub
@@ -1 +1 @@
-ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBG+VCvLAdhS4yFB+KisMidAUZP6QSMOHWbEAK2194VAVdowZi/dJDNfH59QbEtI7wJ+y35pX5fXExWXbinUnKP0= root@void-live
+ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEk5L0y7Skd8vZLONzhzSzxYyu8/v/NajhBgGBhxDCxw3W7XRUW7l6fSAyjfkGIOccE6wH1EAwP5j3Xq2O9lkMc= root@void-live
diff --git a/etc/ssh/ssh_host_ed25519_key.gpg b/etc/ssh/ssh_host_ed25519_key.gpg
index 9a54c6e..cdbbbb4 100644
Binary files a/etc/ssh/ssh_host_ed25519_key.gpg and b/etc/ssh/ssh_host_ed25519_key.gpg differ
diff --git a/etc/ssh/ssh_host_ed25519_key.pub b/etc/ssh/ssh_host_ed25519_key.pub
index 2a88a93..124735c 100644
--- a/etc/ssh/ssh_host_ed25519_key.pub
+++ b/etc/ssh/ssh_host_ed25519_key.pub
@@ -1 +1 @@
-ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIETA3xleyhRRvvu/+RzMsacrAo9YQiPW0LYXojch+V9D root@void-live
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHjz3PZKTcAzU6RtIS+7Qo90hBGzLDV8k1c9lAXK+A3+ root@void-live
diff --git a/etc/ssh/ssh_host_rsa_key.gpg b/etc/ssh/ssh_host_rsa_key.gpg
index 9937fc2..fd5152a 100644
Binary files a/etc/ssh/ssh_host_rsa_key.gpg and b/etc/ssh/ssh_host_rsa_key.gpg differ
diff --git a/etc/ssh/ssh_host_rsa_key.pub b/etc/ssh/ssh_host_rsa_key.pub
index 455a717..6fd54ef 100644
--- a/etc/ssh/ssh_host_rsa_key.pub
+++ b/etc/ssh/ssh_host_rsa_key.pub
@@ -1 +1 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCu/CWfLeiY97WzgmeDxWTsIuGEPY6aAzk6O67kyEozRwikgB54asxzI2gYxmnoJ7gHO0VjWg1PnE+I0cRyplxKummxwU9opRZ6xT3ehLXRJKWfFKIAQsVt5OncC/S1m496Me2B18WnXYcWhZkxo38DQpOOFtXkEGNuu/Q9juBBk1bkw56Ntn9ArKVQ2jBmGrodC329TK16mss1rN+RlEGrEpVU+EI8W1m/qYSs6menmWGvx92BPPn0ujCGOQZSYus4r07ebl2Xuy8ZCbdOdyqWfUW2CpQ5pokSIW5OtXiX6Gqgfb8KorG+wDaJs2tpSalvp9AR06rIfjlEFte4gszr5vuvnciKE0imVTvGbySUs6/0VB/lyCXzgWB12T9qIVdBop72pLfHFTkVG29yfQ5KlmPAw+WKAr9GQnsLQq3NwJQ9JyU/9+1Ak05A+X2+Cq0vMR45a8+/uo2aysLATeEW9Ew1cooQaJM350IVKy8QwOA1Af3cy+Y2fcDPuqwYHZU= root@void-live
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3/coKfLqBW9BxLxBtT9m+ZohuUxF9qB1EBn95eP4zepStDVmwpB72JY/6lyv5PcK7Ja/6pbGlIomreIf8avOKHhDvk0cIL2wh0glJKyO1vJx88UnOvF0OMZUz0u2yojgMhUOPAi7MHG9O/rv3YNdVjzbYbY4Ul+fYhDOULEHV/gzyYgxccatD3Jq3Ec8uqUFFCaRy4qElFlzM063C3EX7O1e0n21sZpdtt/S86zv2crUlRR29XtWFjggondFTCuRt4IDdHaZ5CPe7mjCE1s5cCdiTkTacOTVM05BVYO312xqFOXLeiOZn+jnNXbQdE8hOxItpaZ/MWNW09biet6wBIRS9ZI4MzfP+fpE+WDmUgSxKaF77sIv1tYdEqxbQgu860d/GgH02PkO95xz5iIKr0ufwfFaHEF7o7ItBW+oE2hm+mcFV9+isSHPXTpcDM3u0jWniqe/qFjbfqGEuaY8fmc4a+bxN7ChG0Pt9B0OhdyaBVle8nUIyFzweuMPSwPM= root@void-live
diff --git a/etc/ssh/sshd_config b/etc/ssh/sshd_config
new file mode 100644
index 0000000..2b102f3
--- /dev/null
+++ b/etc/ssh/sshd_config
@@ -0,0 +1,14 @@
+Port 22
+
+AcceptEnv LANG LC_*
+LoginGraceTime 30
+MaxStartups 5
+PermitRootLogin prohibit-password
+StreamLocalBindUnlink yes
+Subsystem sftp /usr/libexec/sftp-server
+UsePAM yes
+X11Forwarding no
+
+Match Address 10.0.0.0/8,169.254.0.0/16,172.16.0.0/12,192.168.0.0/16
+ PermitRootLogin yes
+ X11Forwarding yes
diff --git a/etc/subgid b/etc/subgid
new file mode 100644
index 0000000..df7d5e2
--- /dev/null
+++ b/etc/subgid
@@ -0,0 +1,2 @@
+root:1000000:65536
+tadgy:165536:65536
diff --git a/etc/subuid b/etc/subuid
new file mode 100644
index 0000000..df7d5e2
--- /dev/null
+++ b/etc/subuid
@@ -0,0 +1,2 @@
+root:1000000:65536
+tadgy:165536:65536
diff --git a/etc/sv/.gitignore b/etc/sv/.gitignore
new file mode 100644
index 0000000..c566b9f
--- /dev/null
+++ b/etc/sv/.gitignore
@@ -0,0 +1,64 @@
+/NetworkManager/
+/acpid/
+/agetty-*/
+/!agetty-tty7/
+/!agetty-tty8/
+/!agetty-tty9/
+/!agetty-tty10/
+/alsa/
+/autofs/
+/crond
+/cupsd/
+/cups-browsed/
+/dbus/
+/dcron/
+/dhcpcd/
+/dhcpcd-eth0/
+/dmeventd/
+/dnsmasq/
+/fancontrol/
+/gpm/
+/gpm-custom/supervise/
+/!gpm-custom/supervise/.empty
+/ip6tables/
+/iptables/
+/isc-ntpd/
+/libvirtd*/
+/lvmetad/
+/lxdm/
+/mdadm/
+/nanoklogd/
+/nfs-server/
+/ntpd
+/polkitd/
+/rpcbind/
+/rpcblkmapd/
+/rpcgssd/
+/rpcidmapd/
+/rpcsvcgssd/
+/rsyncd/
+/rsyncd/
+/rtkit/
+/saned/
+/smartd/
+/socklog-unix/
+/sshd/
+/statd/
+/sulogin/
+/udevd/
+/uuidd/
+/vboxwebsrv/
+/virtinterfaced/
+/virtlockd/
+/virtlogd/
+/virtlxcd/
+/virtnetworkd/
+/virtnodedevd/
+/virtnwfilterd/
+/virtproxyd/
+/virtqemud/
+/virtsecretd/
+/virtstoraged/
+/virtvboxd/
+/virtxend/
+/wpa_supplicant/
diff --git a/etc/sv/agetty-tty10/conf b/etc/sv/agetty-tty10/conf
new file mode 120000
index 0000000..7c3c642
--- /dev/null
+++ b/etc/sv/agetty-tty10/conf
@@ -0,0 +1 @@
+../agetty-tty1/conf
\ No newline at end of file
diff --git a/etc/sv/agetty-tty10/finish b/etc/sv/agetty-tty10/finish
new file mode 120000
index 0000000..ad464cb
--- /dev/null
+++ b/etc/sv/agetty-tty10/finish
@@ -0,0 +1 @@
+../agetty-generic/finish
\ No newline at end of file
diff --git a/etc/sv/agetty-tty10/run b/etc/sv/agetty-tty10/run
new file mode 120000
index 0000000..26e72f0
--- /dev/null
+++ b/etc/sv/agetty-tty10/run
@@ -0,0 +1 @@
+../agetty-generic/run
\ No newline at end of file
diff --git a/etc/sv/agetty-tty10/supervise b/etc/sv/agetty-tty10/supervise
new file mode 120000
index 0000000..0276e7c
--- /dev/null
+++ b/etc/sv/agetty-tty10/supervise
@@ -0,0 +1 @@
+/run/runit/supervise.agetty-tty10
\ No newline at end of file
diff --git a/etc/sv/agetty-tty7/conf b/etc/sv/agetty-tty7/conf
new file mode 120000
index 0000000..7c3c642
--- /dev/null
+++ b/etc/sv/agetty-tty7/conf
@@ -0,0 +1 @@
+../agetty-tty1/conf
\ No newline at end of file
diff --git a/etc/sv/agetty-tty7/finish b/etc/sv/agetty-tty7/finish
new file mode 120000
index 0000000..ad464cb
--- /dev/null
+++ b/etc/sv/agetty-tty7/finish
@@ -0,0 +1 @@
+../agetty-generic/finish
\ No newline at end of file
diff --git a/etc/sv/agetty-tty7/run b/etc/sv/agetty-tty7/run
new file mode 120000
index 0000000..26e72f0
--- /dev/null
+++ b/etc/sv/agetty-tty7/run
@@ -0,0 +1 @@
+../agetty-generic/run
\ No newline at end of file
diff --git a/etc/sv/agetty-tty7/supervise b/etc/sv/agetty-tty7/supervise
new file mode 120000
index 0000000..11cfba7
--- /dev/null
+++ b/etc/sv/agetty-tty7/supervise
@@ -0,0 +1 @@
+/run/runit/supervise.agetty-tty7
\ No newline at end of file
diff --git a/etc/sv/agetty-tty8/conf b/etc/sv/agetty-tty8/conf
new file mode 120000
index 0000000..7c3c642
--- /dev/null
+++ b/etc/sv/agetty-tty8/conf
@@ -0,0 +1 @@
+../agetty-tty1/conf
\ No newline at end of file
diff --git a/etc/sv/agetty-tty8/finish b/etc/sv/agetty-tty8/finish
new file mode 120000
index 0000000..ad464cb
--- /dev/null
+++ b/etc/sv/agetty-tty8/finish
@@ -0,0 +1 @@
+../agetty-generic/finish
\ No newline at end of file
diff --git a/etc/sv/agetty-tty8/run b/etc/sv/agetty-tty8/run
new file mode 120000
index 0000000..26e72f0
--- /dev/null
+++ b/etc/sv/agetty-tty8/run
@@ -0,0 +1 @@
+../agetty-generic/run
\ No newline at end of file
diff --git a/etc/sv/agetty-tty8/supervise b/etc/sv/agetty-tty8/supervise
new file mode 120000
index 0000000..caddfd1
--- /dev/null
+++ b/etc/sv/agetty-tty8/supervise
@@ -0,0 +1 @@
+/run/runit/supervise.agetty-tty8
\ No newline at end of file
diff --git a/etc/sv/agetty-tty9/conf b/etc/sv/agetty-tty9/conf
new file mode 120000
index 0000000..7c3c642
--- /dev/null
+++ b/etc/sv/agetty-tty9/conf
@@ -0,0 +1 @@
+../agetty-tty1/conf
\ No newline at end of file
diff --git a/etc/sv/agetty-tty9/finish b/etc/sv/agetty-tty9/finish
new file mode 120000
index 0000000..ad464cb
--- /dev/null
+++ b/etc/sv/agetty-tty9/finish
@@ -0,0 +1 @@
+../agetty-generic/finish
\ No newline at end of file
diff --git a/etc/sv/agetty-tty9/run b/etc/sv/agetty-tty9/run
new file mode 120000
index 0000000..26e72f0
--- /dev/null
+++ b/etc/sv/agetty-tty9/run
@@ -0,0 +1 @@
+../agetty-generic/run
\ No newline at end of file
diff --git a/etc/sv/agetty-tty9/supervise b/etc/sv/agetty-tty9/supervise
new file mode 120000
index 0000000..e4175f6
--- /dev/null
+++ b/etc/sv/agetty-tty9/supervise
@@ -0,0 +1 @@
+/run/runit/supervise.agetty-tty9
\ No newline at end of file
diff --git a/etc/sv/gpm-custom/run b/etc/sv/gpm-custom/run
new file mode 100755
index 0000000..e2c4df5
--- /dev/null
+++ b/etc/sv/gpm-custom/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 1>&2
+#exec gpm -D -m /dev/input/mice -t imps2 -d 6 -a 4 -3
+exec gpm -D -m /dev/input/mice -t imps2 -3
diff --git a/etc/sv/libvirt-generic/log/run b/etc/sv/libvirt-generic/log/run
new file mode 100755
index 0000000..855f605
--- /dev/null
+++ b/etc/sv/libvirt-generic/log/run
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec vlogger -t libvirt-generic -p daemon
diff --git a/etc/sv/libvirt-generic/log/supervise b/etc/sv/libvirt-generic/log/supervise
new file mode 120000
index 0000000..6ff96a0
--- /dev/null
+++ b/etc/sv/libvirt-generic/log/supervise
@@ -0,0 +1 @@
+/run/runit/supervise.libvirt-generic-log
\ No newline at end of file
diff --git a/etc/sv/libvirt-generic/run b/etc/sv/libvirt-generic/run
new file mode 100755
index 0000000..9d172da
--- /dev/null
+++ b/etc/sv/libvirt-generic/run
@@ -0,0 +1,11 @@
+#!/bin/sh
+exec 2>&1
+
+sv check dbus >/dev/null || exit 1
+
+# Take daemon name from service name
+daemon="${PWD##*/}"
+
+[ -f ./conf ] && . ./conf
+
+exec "$daemon" $OPTS 2>&1
diff --git a/etc/sv/libvirt-generic/supervise b/etc/sv/libvirt-generic/supervise
new file mode 120000
index 0000000..a4abf13
--- /dev/null
+++ b/etc/sv/libvirt-generic/supervise
@@ -0,0 +1 @@
+/run/runit/supervise.libvirt-generic
\ No newline at end of file
diff --git a/var/.gitignore b/var/.gitignore
index 0edb0e5..5b94ac6 100644
--- a/var/.gitignore
+++ b/var/.gitignore
@@ -1,12 +1,12 @@
-cache/
-chroot/
-db/
-empty/
-lib/
-lock
-log/
-mail/
-opt/
-run
-service
-tmp/
+/cache/
+/chroot/
+/db/
+/empty/
+/lib/
+/lock
+/log/
+/mail/
+/opt/
+/run
+/service
+/tmp/
diff --git a/var/spool/.gitignore b/var/spool/.gitignore
index db4ee56..f5cb463 100644
--- a/var/spool/.gitignore
+++ b/var/spool/.gitignore
@@ -1,2 +1,3 @@
-cronstamps/
-mail
+/cronstamps/
+/cups/
+/mail