aboutsummaryrefslogtreecommitdiff
path: root/ports-mgmt/pkg_jail/files/pkg_jail
diff options
context:
space:
mode:
Diffstat (limited to 'ports-mgmt/pkg_jail/files/pkg_jail')
-rw-r--r--ports-mgmt/pkg_jail/files/pkg_jail28
1 files changed, 25 insertions, 3 deletions
diff --git a/ports-mgmt/pkg_jail/files/pkg_jail b/ports-mgmt/pkg_jail/files/pkg_jail
index 4e289d113377..e5595aa0960b 100644
--- a/ports-mgmt/pkg_jail/files/pkg_jail
+++ b/ports-mgmt/pkg_jail/files/pkg_jail
@@ -39,7 +39,7 @@ extra_commands="status shell list init"
: ${pkg_jail_dir="/usr/jail/mybuild"}
: ${pkg_jail_rule="127"}
#
-pkg_jail_init()
+pkg_jail_setup()
{
if test ! -d "${pkg_jail_dir}"
then
@@ -52,6 +52,10 @@ pkg_jail_init()
make "DESTDIR=${D}" delete-old-libs RM_I="-f -v"
if test ! -f "${pkg_jail_dir}/etc/rc.conf"
then
+ if test ! -d "${pkg_jail_dir}/usr/ports"
+ then
+ mkdir "${pkg_jail_dir}/usr/ports"
+ fi
cd /usr/src/etc
make "DESTDIR=${pkg_jail_dir}" distribution
ln -sf dev/null "${pkg_jail_dir}/kernel"
@@ -108,7 +112,8 @@ pkg_jail_create_dev_links()
pkg_jail_create_devfs()
{
local jail_devdir="${pkg_jail_dir}/dev"
- if test ! -e "${jail_devdir}/null"
+ local jail_devmount=`mount -t devfs | cut -d " " -f 3 | fgrep -x ${jail_devdir}`
+ if test "${jail_devmount}" = ""
then
# create and mount devfs
pkg_jail_create_dev_rules
@@ -116,7 +121,7 @@ pkg_jail_create_devfs()
devfs -m ${jail_devdir} ruleset ${pkg_jail_rule}
devfs -m ${jail_devdir} rule applyset
fi
- if test ! -L "${jail_devdir}/console"
+ if test ! -e "${jail_devdir}/console"
then
pkg_jail_create_dev_links ${jail_devdir} null console
fi
@@ -159,6 +164,11 @@ pkg_jail_create_jail_mount()
pkg_jail_start()
{
echo "Starting jail-${pkg_jail_hostname}-${pkg_jail_ip}"
+ if test ! -d "${pkg_jail_dir}"
+ then
+ echo "${pkg_jail_dir}: Directory not found" >&2
+ exit 1
+ fi
pkg_jail_create_devfs
pkg_jail_create_jail_mount "${pkg_jail_dir}"
sysctl security.jail.sysvipc_allowed=1
@@ -203,6 +213,18 @@ pkg_jail_umount()
fi
done
}
+pkg_jail_init()
+{
+ if pkg_jail_free
+ then
+ pkg_jail_setup
+ pkg_jail_create_devfs
+ pkg_jail_create_jail_mount "${pkg_jail_dir}"
+ /usr/sbin/jail -n "${pkg_jail_short}" "${pkg_jail_dir}" "${pkg_jail_hostname}" "${pkg_jail_ip}" \
+ /bin/sh -c "/usr/ports/ports-mgmt/pkg_jail && make install-ports"
+ pkg_jail_umount
+ fi
+}
pkg_jail_shell()
{
if pkg_jail_free