Erich, Thanks for reporting the non-compliances in cryptmount's init-script, and for your helpful patch. I've incorporated your patch and tried to make the script more LSB compliant in its support for the 'status' argument and in its return-codes.
Before I issue a revised version of the cryptmount Debian package, I'd be very grateful if you had any comments on the attached version of the script. As regards your nautilus/pmount question, I'm afraid I don't use either of these, so I'm afraid I can't offer you any quick answers there. Thanks, Richard +-- on Tue, Aug 29, 2006 at 03:23:25PM +0200, Erich Schubert wrote: ---+ > Package: cryptmount > Version: 1.1-1 > Severity: serious > Tags: patch > Justification: Policy 10.4 > > /etc/init.d/cryptmount: 16: source: not found > /etc/init.d/cryptmount: 19: Syntax error: "(" unexpected > > Please use POSIX shell (s/source/./; s/^function //;) or specify > /bin/bash as interpreter. A patch to fix the init script is attached; > but I didn't check the other scripts for similar problems. > > Maybe you could make the init-script LSB compliant, too. > > Btw, do you have a hint for me on how to have nautilus/pmount ask for > the luks passphrase with a graphical prompt? > > -- System Information: > Debian Release: testing/unstable > APT prefers unstable > APT policy: (500, 'unstable'), (1, 'experimental') > Architecture: i386 (i686) > Shell: /bin/sh linked to /bin/dash > Kernel: Linux 2.6.17.7 > Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=UTF-8) > > Versions of packages cryptmount depends on: > ii libc6 2.3.6.ds1-4 GNU C Library: Shared libraries > ii libdevmapper1.02 [libdevmapp 2:1.02.08-1 The Linux Kernel Device Mapper > use > ii libssl0.9.8 0.9.8b-2 SSL shared libraries > ii openssl 0.9.8b-2 Secure Socket Layer (SSL) binary > a > > Versions of packages cryptmount recommends: > ii dmsetup 2:1.02.08-1 The Linux Kernel Device Mapper > use > > -- no debconf information > --- /tmp/cryptmount 2006-08-29 15:17:51.000000000 +0200 > +++ /etc/init.d/cryptmount 2006-08-29 15:18:21.000000000 +0200 > @@ -12,11 +12,11 @@ > > test -x "${CM_EXE}" || exit 0 > if [ -f /etc/default/cryptmount ]; then > - source /etc/default/cryptmount > + . /etc/default/cryptmount > fi > > > -function configured() { > +configured() { > # check if any of the targets needed at boot has been configured: > for target in ${CM_BOOTDV} ${CM_BOOTFS} ${CM_BOOTSW}; do > if [ -b "${DMPATH}/${target}" ]; then > @@ -28,7 +28,7 @@ > } > > > -function dodevices() { > +dodevices() { > case "$1" in > start) test -z "${CM_BOOTDV}" || ${CM_EXE} --prepare ${CM_BOOTDV} > ;; > @@ -38,7 +38,7 @@ > } > > > -function doswaps() { > +doswaps() { > case "$1" in > start) test -z "${CM_BOOTSW}" || ${CM_EXE} --swapon ${CM_BOOTSW} > ;; > @@ -48,7 +48,7 @@ > } > > > -function dofilesys() { > +dofilesys() { > case "$1" in > start) test -z "${CM_BOOTFS}" || ${CM_EXE} --mount ${CM_BOOTFS} > ;; > @@ -58,7 +58,7 @@ > } > > > -function doALL() { > +doALL() { > case "$1" in > start) > dodevices start
#!/bin/sh # boot-time init script for cryptmount # $Revision: 119 $, $Date: 2006-08-14 17:05:02 +0100 (Mon, 14 Aug 2006) $ # RW Penney, August 2006 CM_EXE=/usr/bin/cryptmount DMPATH=/dev/mapper CM_BOOTDV="" CM_BOOTSW="" CM_BOOTFS="" test -x "${CM_EXE}" || exit 5 if [ -f /etc/default/cryptmount ]; then . /etc/default/cryptmount fi configured() { # check if any of the targets needed at boot has been configured: for target in ${CM_BOOTDV} ${CM_BOOTFS} ${CM_BOOTSW}; do if [ -b "${DMPATH}/${target}" ]; then true return fi done false } dodevices() { case "$1" in start) test -z "${CM_BOOTDV}" || ${CM_EXE} --prepare ${CM_BOOTDV} ;; stop) test -z "${CM_BOOTDV}" || ${CM_EXE} --release ${CM_BOOTDV} ;; esac } doswaps() { case "$1" in start) test -z "${CM_BOOTSW}" || ${CM_EXE} --swapon ${CM_BOOTSW} ;; stop) test -z "${CM_BOOTSW}" || ${CM_EXE} --swapoff ${CM_BOOTSW} ;; esac } dofilesys() { case "$1" in start) test -z "${CM_BOOTFS}" || ${CM_EXE} --mount ${CM_BOOTFS} ;; stop) test -z "${CM_BOOTFS}" || ${CM_EXE} --unmount ${CM_BOOTFS} ;; esac } doALL() { case "$1" in start) dodevices start doswaps start dofilesys start ;; stop) dofilesys stop doswaps stop dodevices stop ;; esac } case "$1" in start) if configured; then echo "cryptmount auto-filesystems seem to be already configured" else echo "Starting cryptmount targets (hit shift/ctrl if short of entropy):" doALL start fi ;; stop) if configured; then echo "Stopping cryptmount targets:" doALL stop fi ;; restart) if configured; then doALL stop fi doALL start ;; force-reload|reload) # nothing to do ;; status) if configured; then echo "cryptmount auto-filesystems are in use" else echo "cryptmount auto-filesystems do not appear to be in use" exit 3 fi ;; *) echo "Usage: /etc/init.d/cryptmount " \ " {start|stop|restart|reload|force-reload|status}" >&2 exit 1 ;; esac exit 0
Index: initscript =================================================================== --- initscript (revision 119) +++ initscript (working copy) @@ -10,13 +10,13 @@ CM_BOOTSW="" CM_BOOTFS="" -test -x "${CM_EXE}" || exit 0 +test -x "${CM_EXE}" || exit 5 if [ -f /etc/default/cryptmount ]; then - source /etc/default/cryptmount + . /etc/default/cryptmount fi -function configured() { +configured() { # check if any of the targets needed at boot has been configured: for target in ${CM_BOOTDV} ${CM_BOOTFS} ${CM_BOOTSW}; do if [ -b "${DMPATH}/${target}" ]; then @@ -28,7 +28,7 @@ } -function dodevices() { +dodevices() { case "$1" in start) test -z "${CM_BOOTDV}" || ${CM_EXE} --prepare ${CM_BOOTDV} ;; @@ -38,7 +38,7 @@ } -function doswaps() { +doswaps() { case "$1" in start) test -z "${CM_BOOTSW}" || ${CM_EXE} --swapon ${CM_BOOTSW} ;; @@ -48,7 +48,7 @@ } -function dofilesys() { +dofilesys() { case "$1" in start) test -z "${CM_BOOTFS}" || ${CM_EXE} --mount ${CM_BOOTFS} ;; @@ -58,7 +58,7 @@ } -function doALL() { +doALL() { case "$1" in start) dodevices start @@ -77,8 +77,7 @@ case "$1" in start) if configured; then - echo "cryptmount filing systems seem to be already configured" - exit 1 + echo "cryptmount auto-filesystems seem to be already configured" else echo "Starting cryptmount targets (hit shift/ctrl if short of entropy):" doALL start @@ -99,9 +98,17 @@ force-reload|reload) # nothing to do ;; + status) + if configured; then + echo "cryptmount auto-filesystems are in use" + else + echo "cryptmount auto-filesystems do not appear to be in use" + exit 3 + fi + ;; *) echo "Usage: /etc/init.d/cryptmount " \ - " {start|stop|restart|reload|force-reload}" >&2 + " {start|stop|restart|reload|force-reload|status}" >&2 exit 1 ;; esac