From fa2ae436faa592a9e37a39039777e89b2ca0a440 Mon Sep 17 00:00:00 2001 From: mtm Date: Tue, 9 Dec 2003 08:51:11 +0000 Subject: o Rename devfs_link() to make_symlink() and turn it into a generic symlinking routine. o Modify rc.d/jail to create its own symlink relative to the jail's filesystem --- etc/rc.d/jail | 12 ++++++++++-- etc/rc.subr | 33 +++++++++++++++++---------------- 2 files changed, 27 insertions(+), 18 deletions(-) (limited to 'etc') diff --git a/etc/rc.d/jail b/etc/rc.d/jail index 95837f2..019e148 100644 --- a/etc/rc.d/jail +++ b/etc/rc.d/jail @@ -100,11 +100,19 @@ jail_start() # Transitional symlink for old binaries if [ ! -L ${jail_devdir}/log ]; then - devfs_link ${jail_devdir} ../var/run/log log + __pwd="`pwd`" + cd "${jail_devdir}" + ln -sf ../var/run/log log + cd "$__pwd" fi + # XXX - It seems symlinks don't work when there + # is a devfs(5) device of the same name. # Jail console output - devfs_link ${jail_devdir} ../var/log/console console + # __pwd="`pwd`" + # cd "${jail_devdir}" + # ln -sf ../var/log/console console + # cd "$__pwd" fi if checkyesno jail_fdescfs; then info "Mounting fdescfs on ${jail_fdescdir}" diff --git a/etc/rc.subr b/etc/rc.subr index 34c4816..1699bb3 100644 --- a/etc/rc.subr +++ b/etc/rc.subr @@ -1038,29 +1038,30 @@ backup_file() fi } -# devfs_link dir src link -# Make a symbolic link 'link' to src in chroot/dev. -# Returns 0 on sucess. +# make_symlink src link +# Make a symbolic link 'link' to src from basedir. If the +# directory in which link is to be created does not exist +# a warning will be displayed and an error will be returned. +# Returns 0 on sucess, 1 otherwise. # -devfs_link() +make_symlink() { - local dir src link _me - dir="$1" - src="$2" - link="$3" - _me="devfs_link" - - if [ -z "$dir" -o -z "$src" -o -z "$link" ]; then - warn "devfs_link(): requires three arguments." + local src link linkdir _me + src="$1" + link="$2" + linkdir="`dirname $link`" + _me="make_symlink()" + + if [ -z "$src" -o -z "$link" ]; then + warn "$_me: requires two arguments." return 1 fi - if [ -z "$dir" ]; then - warn "$_me: the directory ($dir) does not exist" + if [ ! -d "$linkdir" ]; then + warn "$_me: the directory $linkdir does not exist" return 1 fi - cd ${chroot}/dev if ! ln -sf $src $link ; then - warn "$_me: unable to link $link --> $src in $dir" + warn "$_me: unable to make a symbolic link from $link to $src" return 1 fi return 0 -- cgit v1.1