@@ -, +, @@ Import encswap init script from FreeBSD The FreeBSD encswap init script has been adapted to function in OpenRC. It should function identically to its FreeBSD counterpart. Signed-off-by: Richard Yao --- a/init.d/Makefile +++ a/init.d/Makefile @@ -22,8 +22,8 @@ NET_LO-FreeBSD= net.lo0 SRCS-FreeBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \ rpcbind.in savecore.in syslogd.in # These are FreeBSD specific -SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in ipfw.in mixer.in nscd.in \ - powerd.in syscons.in +SRCS-FreeBSD+= adjkerntz.in devd.in encswap.in dumpon.in ipfw.in \ + mixer.in nscd.in powerd.in syscons.in NET_LO-Linux= net.lo SRCS-Linux= devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \ --- a/init.d/encswap.in +++ a/init.d/encswap.in @@ -0,0 +1,46 @@ +#!@PREFIX@/sbin/runscript +# Copyright 1992-2012 FreeBSD Project +# Released under the 2-clause BSD license +# $Header: $ + +depend() { + before swap +} + +start() { + while read device mountpoint type options rest ; do + case ":${device}:${type}:${options}" in + :#*) + continue + ;; + *.bde:swap:sw) + passphrase=`dd if=/dev/random count=1 2>/dev/null | md5 -q` + device="${device%.bde}" + gbde init "${device}" -P "${passphrase}" || return 1 + gbde attach "${device}" -p "${passphrase}" || return 1 + ;; + *.eli:swap:sw) + device="${device%.eli}" + geli onetime ${geli_swap_flags} "${device}" || return 1 + ;; + esac + done < /etc/fstab +} + +stop() { + while read device mountpoint type options rest ; do + case ":${device}:${type}:${options}" in + :#*) + continue + ;; + *.bde:swap:sw) + device="${device%.bde}" + gbde detach "${device}" + ;; + *.eli:swap:sw) + # Nothing here, because geli swap devices should be + # created with the auto-detach-on-last-close option. + ;; + esac + done < /etc/fstab +}