head	1.14;
access;
symbols
	RELENG_8_4:1.14.0.2
	RELENG_9_1_0_RELEASE:1.13.16.1.4.2
	RELENG_9_1:1.13.16.1.0.4
	RELENG_9_1_BP:1.13.16.1
	RELENG_8_3_0_RELEASE:1.13.10.1.8.1
	RELENG_8_3:1.13.10.1.0.8
	RELENG_8_3_BP:1.13.10.1
	RELENG_9_0_0_RELEASE:1.13.16.1.2.1
	RELENG_9_0:1.13.16.1.0.2
	RELENG_9_0_BP:1.13.16.1
	RELENG_9:1.13.0.16
	RELENG_9_BP:1.13
	RELENG_7_4_0_RELEASE:1.13.14.1
	RELENG_8_2_0_RELEASE:1.13.10.1.6.1
	RELENG_7_4:1.13.0.14
	RELENG_7_4_BP:1.13
	RELENG_8_2:1.13.10.1.0.6
	RELENG_8_2_BP:1.13.10.1
	RELENG_8_1_0_RELEASE:1.13.10.1.4.1
	RELENG_8_1:1.13.10.1.0.4
	RELENG_8_1_BP:1.13.10.1
	RELENG_7_3_0_RELEASE:1.13.12.1
	RELENG_7_3:1.13.0.12
	RELENG_7_3_BP:1.13
	RELENG_8_0_0_RELEASE:1.13.10.1.2.1
	RELENG_8_0:1.13.10.1.0.2
	RELENG_8_0_BP:1.13.10.1
	RELENG_8:1.13.0.10
	RELENG_8_BP:1.13
	RELENG_7_2_0_RELEASE:1.13.8.1
	RELENG_7_2:1.13.0.8
	RELENG_7_2_BP:1.13
	RELENG_7_1_0_RELEASE:1.13.6.1
	RELENG_6_4_0_RELEASE:1.12.2.1.10.1
	RELENG_7_1:1.13.0.6
	RELENG_7_1_BP:1.13
	RELENG_6_4:1.12.2.1.0.10
	RELENG_6_4_BP:1.12.2.1
	RELENG_7_0_0_RELEASE:1.13
	RELENG_6_3_0_RELEASE:1.12.2.1
	RELENG_7_0:1.13.0.4
	RELENG_7_0_BP:1.13
	RELENG_6_3:1.12.2.1.0.8
	RELENG_6_3_BP:1.12.2.1
	RELENG_7:1.13.0.2
	RELENG_7_BP:1.13
	RELENG_6_2_0_RELEASE:1.12.2.1
	RELENG_6_2:1.12.2.1.0.6
	RELENG_6_2_BP:1.12.2.1
	RELENG_5_5_0_RELEASE:1.5.2.4
	RELENG_5_5:1.5.2.4.0.4
	RELENG_5_5_BP:1.5.2.4
	RELENG_6_1_0_RELEASE:1.12.2.1
	RELENG_6_1:1.12.2.1.0.4
	RELENG_6_1_BP:1.12.2.1
	RELENG_6_0_0_RELEASE:1.12.2.1
	RELENG_6_0:1.12.2.1.0.2
	RELENG_6_0_BP:1.12.2.1
	RELENG_6:1.12.0.2
	RELENG_6_BP:1.12
	RELENG_5_4_0_RELEASE:1.5.2.4
	RELENG_5_4:1.5.2.4.0.2
	RELENG_5_4_BP:1.5.2.4
	RELENG_5_3_0_RELEASE:1.5.2.2
	RELENG_5_3:1.5.2.2.0.2
	RELENG_5_3_BP:1.5.2.2
	RELENG_5:1.5.0.2
	RELENG_5_BP:1.5
	RELENG_5_2_1_RELEASE:1.1
	RELENG_5_2_0_RELEASE:1.1
	RELENG_5_2:1.1.0.2
	RELENG_5_2_BP:1.1;
locks; strict;
comment	@# @;


1.14
date	2012.11.17.01.49.04;	author svnexp;	state Exp;
branches
	1.14.2.1;
next	1.13;

1.13
date	2005.08.14.17.28.15;	author pjd;	state Exp;
branches
	1.13.2.1
	1.13.6.1
	1.13.8.1
	1.13.10.1
	1.13.12.1
	1.13.14.1
	1.13.16.1;
next	1.12;

1.12
date	2005.01.30.11.04.13;	author pjd;	state Exp;
branches
	1.12.2.1;
next	1.11;

1.11
date	2005.01.23.16.43.55;	author pjd;	state Exp;
branches;
next	1.10;

1.10
date	2005.01.21.14.38.44;	author pjd;	state Exp;
branches;
next	1.9;

1.9
date	2004.10.07.13.55.25;	author mtm;	state Exp;
branches;
next	1.8;

1.8
date	2004.10.07.10.02.46;	author pjd;	state Exp;
branches;
next	1.7;

1.7
date	2004.10.07.06.00.06;	author pjd;	state Exp;
branches;
next	1.6;

1.6
date	2004.10.06.14.42.35;	author pjd;	state Exp;
branches;
next	1.5;

1.5
date	2004.07.18.18.01.47;	author simon;	state Exp;
branches
	1.5.2.1;
next	1.4;

1.4
date	2004.03.08.12.25.05;	author pjd;	state Exp;
branches;
next	1.3;

1.3
date	2004.02.03.10.22.55;	author des;	state Exp;
branches;
next	1.2;

1.2
date	2004.02.03.10.21.35;	author des;	state Exp;
branches;
next	1.1;

1.1
date	2003.06.17.02.56.29;	author wollman;	state Exp;
branches;
next	;

1.14.2.1
date	2012.11.17.01.49.04;	author svnexp;	state dead;
branches;
next	1.14.2.2;

1.14.2.2
date	2013.03.28.13.02.43;	author svnexp;	state Exp;
branches;
next	;

1.13.2.1
date	2012.11.17.08.01.20;	author svnexp;	state Exp;
branches;
next	;

1.13.6.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.13.8.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.13.10.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.13.10.1.2.1
	1.13.10.1.4.1
	1.13.10.1.6.1
	1.13.10.1.8.1;
next	1.13.10.2;

1.13.10.2
date	2012.11.17.10.35.56;	author svnexp;	state Exp;
branches;
next	;

1.13.10.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.13.10.1.4.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.13.10.1.6.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.13.10.1.8.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.13.10.1.8.2;

1.13.10.1.8.2
date	2012.11.17.08.24.38;	author svnexp;	state Exp;
branches;
next	;

1.13.12.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.13.14.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.13.14.2;

1.13.14.2
date	2012.11.17.08.16.37;	author svnexp;	state Exp;
branches;
next	;

1.13.16.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.13.16.1.2.1
	1.13.16.1.4.1;
next	1.13.16.2;

1.13.16.2
date	2012.11.17.11.36.11;	author svnexp;	state Exp;
branches;
next	;

1.13.16.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.13.16.1.2.2;

1.13.16.1.2.2
date	2012.11.17.08.36.11;	author svnexp;	state Exp;
branches;
next	;

1.13.16.1.4.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.13.16.1.4.2;

1.13.16.1.4.2
date	2012.11.17.08.47.01;	author svnexp;	state Exp;
branches;
next	;

1.12.2.1
date	2005.08.16.08.39.36;	author pjd;	state Exp;
branches
	1.12.2.1.10.1;
next	1.12.2.2;

1.12.2.2
date	2012.11.17.07.39.07;	author svnexp;	state Exp;
branches;
next	;

1.12.2.1.10.1
date	2008.10.02.02.57.24;	author kensmith;	state Exp;
branches;
next	;

1.5.2.1
date	2004.10.10.09.50.53;	author mtm;	state Exp;
branches;
next	1.5.2.2;

1.5.2.2
date	2004.10.15.06.14.43;	author pjd;	state Exp;
branches;
next	1.5.2.3;

1.5.2.3
date	2005.01.30.10.54.32;	author pjd;	state Exp;
branches;
next	1.5.2.4;

1.5.2.4
date	2005.01.30.11.05.01;	author pjd;	state Exp;
branches;
next	;


desc
@@


1.14
log
@Switching exporter and resync
@
text
@#!/bin/sh
#
# This file, originally written by Garrett A. Wollman, is in the public
# domain.
#
# $FreeBSD: head/etc/rc.d/gbde 180563 2008-07-16 19:22:48Z dougb $
#

# PROVIDE: disks
# KEYWORD: nojail

. /etc/rc.subr

name="gbde"
start_precmd="find_gbde_devices start"
stop_precmd="find_gbde_devices stop"
start_cmd="gbde_start"
stop_cmd="gbde_stop"

find_gbde_devices()
{
	case "${gbde_devices-auto}" in
	[Aa][Uu][Tt][Oo])
		gbde_devices=""
		;;
	*)
		return 0
		;;
	esac

	case "$1" in
	start)
		fstab="/etc/fstab"
		;;
	stop)
		fstab=$(mktemp /tmp/mtab.XXXXXX)
		mount -p >${fstab}
		;;
	esac

	#
	# We can't use "mount -p | while ..." because when a shell loop
	# is the target of a pipe it executes in a subshell, and so can't
	# modify variables in the script.
	#
	while read device mountpt type options dump pass; do
		case "$device" in
		*.bde)
			# Ignore swap devices
			case "$type" in
			swap)
				continue
				;;
			esac

			case "$options" in
			*noauto*)
				if checkyesno gbde_autoattach_all; then
					gbde_devices="${gbde_devices} ${device}"
				fi
				;;
			*)
				gbde_devices="${gbde_devices} ${device}"
				;;
			esac
			;;
		esac
	done <${fstab}

	case "$1" in
	stop)
		rm -f ${fstab}
		;;
	esac

	return 0
}

gbde_start()
{
	for device in $gbde_devices; do
		parent=${device%.bde}
		parent=${parent#/dev/}
		parent_=`ltr ${parent} '/' '_'`
		eval "lock=\${gbde_lock_${parent_}-\"${gbde_lockdir}/${parent_}.lock\"}"
		if [ -e "/dev/${parent}" -a ! -e "/dev/${parent}.bde" ]; then
			echo "Configuring Disk Encryption for ${parent}."

			count=1
			while [ ${count} -le ${gbde_attach_attempts} ]; do
				if [ -e "${lock}" ]; then
					gbde attach ${parent} -l ${lock}
				else
					gbde attach ${parent}
				fi
				if [ -e "/dev/${parent}.bde" ]; then
					break
				fi
				echo "Attach failed; attempt ${count} of ${gbde_attach_attempts}."
				count=$((${count} + 1))
			done
		fi
	done
}

gbde_stop()
{
	for device in $gbde_devices; do
		parent=${device%.bde}
		parent=${parent#/dev/}
		if [ -e "/dev/${parent}.bde" ]; then
			umount "/dev/${parent}.bde" 2>/dev/null
			gbde detach "${parent}"
		fi
	done
}

load_rc_config $name
run_rc_command "$1"
@


1.14.2.1
log
@file gbde was added on branch RELENG_8_4 on 2013-03-28 13:02:43 +0000
@
text
@d1 119
@


1.14.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 119
#!/bin/sh
#
# This file, originally written by Garrett A. Wollman, is in the public
# domain.
#
# $FreeBSD: releng/8.4/etc/rc.d/gbde 180563 2008-07-16 19:22:48Z dougb $
#

# PROVIDE: disks
# KEYWORD: nojail

. /etc/rc.subr

name="gbde"
start_precmd="find_gbde_devices start"
stop_precmd="find_gbde_devices stop"
start_cmd="gbde_start"
stop_cmd="gbde_stop"

find_gbde_devices()
{
	case "${gbde_devices-auto}" in
	[Aa][Uu][Tt][Oo])
		gbde_devices=""
		;;
	*)
		return 0
		;;
	esac

	case "$1" in
	start)
		fstab="/etc/fstab"
		;;
	stop)
		fstab=$(mktemp /tmp/mtab.XXXXXX)
		mount -p >${fstab}
		;;
	esac

	#
	# We can't use "mount -p | while ..." because when a shell loop
	# is the target of a pipe it executes in a subshell, and so can't
	# modify variables in the script.
	#
	while read device mountpt type options dump pass; do
		case "$device" in
		*.bde)
			# Ignore swap devices
			case "$type" in
			swap)
				continue
				;;
			esac

			case "$options" in
			*noauto*)
				if checkyesno gbde_autoattach_all; then
					gbde_devices="${gbde_devices} ${device}"
				fi
				;;
			*)
				gbde_devices="${gbde_devices} ${device}"
				;;
			esac
			;;
		esac
	done <${fstab}

	case "$1" in
	stop)
		rm -f ${fstab}
		;;
	esac

	return 0
}

gbde_start()
{
	for device in $gbde_devices; do
		parent=${device%.bde}
		parent=${parent#/dev/}
		parent_=`ltr ${parent} '/' '_'`
		eval "lock=\${gbde_lock_${parent_}-\"${gbde_lockdir}/${parent_}.lock\"}"
		if [ -e "/dev/${parent}" -a ! -e "/dev/${parent}.bde" ]; then
			echo "Configuring Disk Encryption for ${parent}."

			count=1
			while [ ${count} -le ${gbde_attach_attempts} ]; do
				if [ -e "${lock}" ]; then
					gbde attach ${parent} -l ${lock}
				else
					gbde attach ${parent}
				fi
				if [ -e "/dev/${parent}.bde" ]; then
					break
				fi
				echo "Attach failed; attempt ${count} of ${gbde_attach_attempts}."
				count=$((${count} + 1))
			done
		fi
	done
}

gbde_stop()
{
	for device in $gbde_devices; do
		parent=${device%.bde}
		parent=${parent#/dev/}
		if [ -e "/dev/${parent}.bde" ]; then
			umount "/dev/${parent}.bde" 2>/dev/null
			gbde detach "${parent}"
		fi
	done
}

load_rc_config $name
run_rc_command "$1"
@


1.13
log
@Move 'local_tr' function to rc.subr and change its name to 'ltr'.

MFC after:	3 days
@
text
@d6 1
a6 1
# $FreeBSD$
@


1.13.2.1
log
@Switch importer
@
text
@d6 1
a6 1
# $FreeBSD: stable/7/etc/rc.d/gbde 220110 2011-03-28 19:29:30Z dougb $
@


1.13.16.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.13.16.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d6 1
a6 1
# $FreeBSD: stable/9/etc/rc.d/gbde 180563 2008-07-16 19:22:48Z dougb $
@


1.13.16.1.4.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.13.16.1.4.2
log
@Switch importer
@
text
@d6 1
a6 1
# $FreeBSD: releng/9.1/etc/rc.d/gbde 180563 2008-07-16 19:22:48Z dougb $
@


1.13.16.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.13.16.1.2.2
log
@Switch importer
@
text
@d6 1
a6 1
# $FreeBSD: releng/9.0/etc/rc.d/gbde 180563 2008-07-16 19:22:48Z dougb $
@


1.13.14.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.13.14.2
log
@Switch importer
@
text
@d6 1
a6 1
# $FreeBSD: releng/7.4/etc/rc.d/gbde 149049 2005-08-14 17:28:15Z pjd $
@


1.13.12.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.13.10.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.13.10.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d6 1
a6 1
# $FreeBSD: stable/8/etc/rc.d/gbde 180563 2008-07-16 19:22:48Z dougb $
@


1.13.10.1.8.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.13.10.1.8.2
log
@Switch importer
@
text
@d6 1
a6 1
# $FreeBSD: releng/8.3/etc/rc.d/gbde 180563 2008-07-16 19:22:48Z dougb $
@


1.13.10.1.6.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.13.10.1.4.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.13.10.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.13.8.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.13.6.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.12
log
@Add a comment which explain why we need to use special function instead of
tr(1)/sed(1)/awk(1).
@
text
@a19 21
# Change every ${_src} in ${_str} to ${_dst}.
# We cannot use tr(1), sed(1) nor awk(1) here, because this script is executed
# before /usr is mounted.
local_tr()
{
	_str=$1
	_src=$2
	_dst=$3
	_out=""

	IFS=${_src}
	for _com in ${_str}; do
		if [ -z "${_out}" ]; then
			_out="${_com}"
		else
			_out="${_out}${_dst}${_com}"
		fi
	done
	echo "${_out}"
}

d84 1
a84 1
		parent_=`local_tr ${parent} '/' '_'`
@


1.12.2.1
log
@MFC:	rc.d/gbde	1.13
	rc.subr		1.35

Move 'local_tr' function to rc.subr and change its name to 'ltr'.

Approved by:	re (kensmith)
@
text
@d20 21
d105 1
a105 1
		parent_=`ltr ${parent} '/' '_'`
@


1.12.2.2
log
@Switch importer
@
text
@d6 1
a6 1
# $FreeBSD: stable/6/etc/rc.d/gbde 149123 2005-08-16 08:39:36Z pjd $
@


1.12.2.1.10.1
log
@SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)
@
text
@@


1.11
log
@We cannot use sed(1), because rc.d/gbde has to be called before
rc.d/mountcritlocal and sed(1) is placed in /usr/bin/. Other useful tools
for this task are also placed in /usr/ (tr(1), awk(1)), so I implemented
local_tr() function which works simlar to tr(1).

Reported by:	Amir Shalem <amir@@boom.org.il>
MFC after:	1 week
@
text
@d21 2
@


1.10
log
@Fix handling of providers with / in them (e.g. mirror/foo).

Submitted by:	Attila Nagy <bra@@fsn.hu>
MFC after:	1 week
@
text
@d20 19
d103 1
a103 1
		parent_=`echo ${parent} | sed "s/\//_/g"`
@


1.9
log
@Remove the requirement for the FreeBSD keyword as it no longer
makes any sense.

Discussed with: dougb, brooks
MFC after: 3 days
@
text
@d84 2
a85 1
		eval "lock=\${gbde_lock_${parent}-\"${gbde_lockdir}/${parent}.lock\"}"
@


1.8
log
@- Be more userfriendly and allow to specify gbde device name in those forms:
	device
	device.bde
	/dev/device
	/dev/device.bde
- Fix stop routine:
	+ There don't have to be file system mounted on gbde device,
	  so ignore errors from umount(8).
	+ Only detach existing gbde devices.
@
text
@d10 1
a10 1
# KEYWORD: FreeBSD nojail
@


1.7
log
@Only try to attach if parent device actually exists.
I used ugly "/dev/${parent}" instead of "${parentdev}", because "/dev/"
prefix for devices listed in gbde_devices variable is optional.

Reported by:	Sean McNeil <sean@@mcneil.com>
@
text
@d82 2
a83 2
		parentdev=${device%.bde}
		parent=${parentdev#/dev/}
d85 2
a86 2
		if [ -e "/dev/${parent}" -a ! -e "${device}" ]; then
			echo "Configuring Disk Encryption for ${device}."
d91 1
a91 1
					gbde attach ${parentdev} -l ${lock}
d93 1
a93 1
					gbde attach ${parentdev}
d95 1
a95 1
				if [ -e ${device} ]; then
a100 1

d108 6
a113 2
		umount ${device}
		gbde detach ${device%.bde}
@


1.6
log
@Lock file for gbde devices is optional.
@
text
@d85 1
a85 1
		if [ ! -e "${device}" ]; then
@


1.5
log
@For the gbde attach script:
- Ask the user up to X times (3 by default) for the pass-phrase, if
  it is incorrect the first time.
- Add support for storing the lockfiles in another other directory
  than /etc.
- Document that it is possible to override the location of each single
  lockfile.

Approved by:	pjd
@
text
@d85 1
a85 1
		if [ -e "${lock}" -a ! -e "${device}" ]; then
d90 5
a94 1
				gbde attach ${parentdev} -l ${lock}
@


1.5.2.1
log
@RCS file: /home/ncvs/src/etc/rc,v
----------------------------
revision 1.335
date: 2004/10/08 14:23:49;  author: mtm;  state: Exp;  lines: +0 -1
Remove an unused variable.

Submitted by: Pawel Worach <pawel.worach@@telia.com>
----------------------------
revision 1.334
date: 2004/10/07 13:55:25;  author: mtm;  state: Exp;  lines: +1 -1
Remove the requirement for the FreeBSD keyword as it no longer
makes any sense.

Discussed with: dougb, brooks
MFC after: 3 days
=============================================================================
RCS file: /home/ncvs/src/etc/rc.d/nsswitch,v
----------------------------
revision 1.4
date: 2004/09/16 17:03:12;  author: keramida;  state: Exp;  lines: +1 -1
Fix requirement of `network' to `NETWORK' because the former isn't
provided by any rc.d script.

Approved by:	mtm
=============================================================================
RCS file: /home/ncvs/src/etc/rc.d/pflog,v
----------------------------
revision 1.3
date: 2004/09/16 17:04:20;  author: keramida;  state: Exp;  lines: +1 -1
We don't have any providers of `beforenetlkm' in FreeBSD.  Remove the
dependency to it from our rc.d scripts.

Approved by:	mtm
=============================================================================

Approved by: re/scottl
@
text
@d10 1
a10 1
# KEYWORD: nojail
@


1.5.2.2
log
@- There don't have to be a lock file.
- Be more userfriendly and allow to specify gbde device name in those forms:
	device
	device.bde
	/dev/device
	/dev/device.bde
- Fix stop routine:
	+ There don't have to be file system mounted on gbde device,
	  so ignore errors from umount(8).
	+ Only detach existing gbde devices.

Approved by:	re (kensmith)
@
text
@d82 2
a83 2
		parent=${device%.bde}
		parent=${parent#/dev/}
d85 2
a86 2
		if [ -e "/dev/${parent}" -a ! -e "/dev/${parent}.bde" ]; then
			echo "Configuring Disk Encryption for ${parent}."
d90 2
a91 6
				if [ -e "${lock}" ]; then
					gbde attach ${parent} -l ${lock}
				else
					gbde attach ${parent}
				fi
				if [ -e "/dev/${parent}.bde" ]; then
d97 1
d105 2
a106 6
		parent=${device%.bde}
		parent=${parent#/dev/}
		if [ -e "/dev/${parent}.bde" ]; then
			umount "/dev/${parent}.bde" 2>/dev/null
			gbde detach "${parent}"
		fi
@


1.5.2.3
log
@MFC:	gbde	1.10, 1.11

Fix handling of providers with / in their names (e.g. mirror/foo).
@
text
@a19 19
# Change every ${_src} in ${_str} to ${_dst}.
local_tr()
{
	_str=$1
	_src=$2
	_dst=$3
	_out=""

	IFS=${_src}
	for _com in ${_str}; do
		if [ -z "${_out}" ]; then
			_out="${_com}"
		else
			_out="${_out}${_dst}${_com}"
		fi
	done
	echo "${_out}"
}

d84 1
a84 2
		parent_=`local_tr ${parent} '/' '_'`
		eval "lock=\${gbde_lock_${parent_}-\"${gbde_lockdir}/${parent_}.lock\"}"
@


1.5.2.4
log
@MFC:	gbde	1.12

Add a comment which explain why we need to use special function instead of
tr(1)/sed(1)/awk(1).
@
text
@a20 2
# We cannot use tr(1), sed(1) nor awk(1) here, because this script is executed
# before /usr is mounted.
@


1.4
log
@Mark scripts as not usable inside a jail by adding keyword 'nojail'.

Some suggestions from:	rwatson, Ruben de Groot <mail25@@bzerk.org>
@
text
@d84 2
a85 2
		eval "lock=\${gbde_lock_${parent}-\"/etc/${parent}.lock\"}"
		if [ -e $lock ]; then
d87 11
a97 1
			gbde attach ${parentdev} -l ${lock}
@


1.3
log
@Missed one in previous commit.
@
text
@d10 1
a10 1
# KEYWORD: FreeBSD
@


1.2
log
@Style fixes.
@
text
@d52 2
a53 1
				continue;;
@


1.1
log
@Add a script to automatically attach gbde devices found in fstab
(or rc.conf) at boot time, and detach them when shutting down.  Not
added to the Makefile to give the rcng gurus an opportunity to improve
it.
@
text
@d24 2
a25 1
		gbde_devices="";;
d27 2
a28 1
		return 0;;
d32 5
a36 2
	start)	fstab="/etc/fstab";;
	stop)	fstab=$(mktemp /tmp/mtab.XXXXXX)
d38 1
d70 3
a72 1
	stop)	rm -f ${fstab};;
@

