Index: Makefile =================================================================== RCS file: /ncvs/ports/net/isc-dhcp41-server/Makefile,v retrieving revision 1.16 diff -u -r1.16 Makefile --- Makefile 29 Jan 2011 01:05:38 -0000 1.16 +++ Makefile 5 Feb 2011 17:43:39 -0000 @@ -172,6 +172,11 @@ .endif .if ${SUBSYS} == client ${INSTALL_SCRIPT} ${WRKSRC}/client/scripts/freebsd ${PREFIX}/sbin/dhclient-script +.elif ${SUBSYS} == server + if [ ! -f ${PREFIX}/etc/dhcpd6.conf ]; then \ + ${CP} -p ${PREFIX}/etc/dhcpd.conf.sample ${PREFIX}/etc/dhcpd6.conf ; \ + fi + @${LN} -sf isc-dhcpd ${PREFIX}/etc/rc.d/isc-dhcpd6 .endif @${SED} ${PKGMESSAGE_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \ ${MSG_FILE} > ${PKGMESSAGE} Index: pkg-plist =================================================================== RCS file: /ncvs/ports/net/isc-dhcp41-server/pkg-plist,v retrieving revision 1.3 diff -u -r1.3 pkg-plist --- pkg-plist 12 Jul 2010 01:54:25 -0000 1.3 +++ pkg-plist 5 Feb 2011 17:43:39 -0000 @@ -1,8 +1,12 @@ @comment $FreeBSD: ports/net/isc-dhcp41-server/pkg-plist,v 1.3 2010/07/12 01:54:25 wxs Exp $ @unexec %D/etc/rc.d/isc-dhcpd forcestop 2>/dev/null || true +@unexec %D/etc/rc.d/isc-dhcpd6 forcestop 2>/dev/null || true @unexec if cmp -s %D/etc/dhcpd.conf.sample %D/etc/dhcpd.conf; then rm -f %D/etc/dhcpd.conf; fi +@unexec if cmp -s %D/etc/dhcpd.conf.sample %D/etc/dhcpd6.conf; then rm -f %D/etc/dhcpd6.conf; fi etc/dhcpd.conf.sample @exec if [ ! -f %D/etc/dhcpd.conf ] ; then cp -p %D/%F %B/dhcpd.conf; fi +@exec if [ ! -f %D/etc/dhcpd6.conf ] ; then cp -p %D/%F %B/dhcpd6.conf; fi +etc/rc.d/isc-dhcpd6 sbin/dhcpd bin/omshell %%LDAP%%bin/dhcpd-conf-to-ldap Index: files/isc-dhcpd.in =================================================================== RCS file: /ncvs/ports/net/isc-dhcp41-server/files/isc-dhcpd.in,v retrieving revision 1.2 diff -u -r1.2 isc-dhcpd.in --- files/isc-dhcpd.in 12 Jul 2010 01:54:25 -0000 1.2 +++ files/isc-dhcpd.in 5 Feb 2011 17:43:39 -0000 @@ -14,25 +14,36 @@ . /etc/rc.subr -name=dhcpd +case $0 in +/etc/rc*) + # during boot (shutdown) $0 is /etc/rc (/etc/rc.shutdown), + # so get the name of the script from $_file + name=$_file + ;; +*) + name=$0 + ;; +esac + +name=${name##*/isc-} paranoia=%%PARANOIA%% # compiled in paranoia? load_rc_config ${name} # override these variables in /etc/rc.conf -dhcpd_enable=${dhcpd_enable:-"NO"} +eval ": \${${name}_enable:=\"NO\"}" # dhcpd_flags="" # -q -early_chroot # command option(s) # dhcpd_ifaces="" # ethernet interface(s) -dhcpd_conf=${dhcpd_conf:-%%PREFIX%%/etc/${name}.conf} # configuration file -dhcpd_withumask=${dhcpd_withumask:-022} # file creation mask +eval ": \${${name}_conf:=%%PREFIX%%/etc/${name}.conf}" # configuration file +eval ": \${${name}_withumask:=022}" # file creation mask -dhcpd_chuser_enable=${dhcpd_chuser_enable:-"%%PARANOIA%%"} # runs w/o privileges? -dhcpd_withuser=${dhcpd_withuser:-${name}} # user name to run as -dhcpd_withgroup=${dhcpd_withgroup:-${name}} # group name to run as - -dhcpd_chroot_enable=${dhcpd_chroot_enable:-"NO"} # runs chrooted? -dhcpd_devfs_enable=${dhcpd_devfs_enable:-"YES"} # devfs if available? -dhcpd_rootdir=${dhcpd_rootdir:-/var/db/${name}} # directory to run in +eval ": \${${name}_chuser_enable:=\"%%PARANOIA%%\"}" # runs w/o privileges? +eval ": \${${name}_withuser:=dhcpd}" # user name to run as +eval ": \${${name}_withgroup:=dhcpd}" # group name to run as + +eval ": \${${name}_chroot_enable:=\"NO\"}" # runs chrooted? +eval ": \${${name}_devfs_enable:=\"YES\"}" # devfs if available? +eval ": \${${name}_rootdir:=/var/db/${name}}" # directory to run in # dhcpd_includedir="" # directory for included config files safe_run () # rc command [args...] @@ -86,8 +97,8 @@ { local _entry _user _group _usergroup _rc - _user=${dhcpd_withuser} - _group=${dhcpd_withgroup} + eval "_user=\${${name}_withuser}" + eval "_group=\${${name}_withgroup}" _rc=0 if [ -n "${_user}" -o -n "${_group}" ]; then @@ -219,7 +230,7 @@ local _rc _rc=1 - if checkyesno dhcpd_devfs_enable; then + if checkyesno ${name}_devfs_enable; then mount -t devfs | awk ' BEGIN { n = ARGC; ARGC = 2 } { for (i = 2; i != n; i++) if ($3 == ARGV[i]) exit 1 } @@ -236,7 +247,7 @@ _dir=$1 _rc=0 - if checkyesno dhcpd_devfs_enable && + if checkyesno ${name}_devfs_enable && ! mounted ${_dir} && ! safe_run ${_rc} mount -t devfs devfs ${_dir}; then err 1 "unable to mount ${_dir}" @@ -252,7 +263,7 @@ _dir=$1 _rc=0 - if checkyesno dhcpd_devfs_enable && + if checkyesno ${name}_devfs_enable && mounted ${_dir} && ! safe_run ${_rc} umount ${_dir}; then warn "unable to unmount ${_dir}" @@ -264,15 +275,15 @@ check_chuser () { if checkyesno paranoia; then - if checkyesno dhcpd_chuser_enable && - [ -z "${dhcpd_withuser}" -a -z "${dhcpd_withgroup}" ]; then - err 1 "one of dhcpd_withuser and dhcpd_withgroup" \ - "must be set if dhcpd_chuser_enable is enabled" + if checkyesno ${name}_chuser_enable && + eval "[ -z \"\${${name}_withuser}\" -a -z \"\${${name}_withgroup}\" ]"; then + err 1 "one of ${name}_withuser and ${name}_withgroup" \ + "must be set if ${name}_chuser_enable is enabled" fi else - if checkyesno dhcpd_chuser_enable; then - warn "dhcpd_chuser_enable disabled -- not compiled in" - dhcpd_chuser_enable=NO + if checkyesno ${name}_chuser_enable; then + warn "${name}_chuser_enable disabled -- not compiled in" + eval "${name}_chuser_enable=NO" fi fi } @@ -280,82 +291,82 @@ check_chroot () { if checkyesno paranoia; then - if checkyesno dhcpd_chroot_enable; then - if [ -z "${dhcpd_rootdir}" ]; then - err 1 "dhcpd_rootdir must be set" \ - "if dhcpd_chroot_enable is enabled" + if checkyesno ${name}_chroot_enable; then + if eval "[ -z \"\${${name}_rootdir}\" ]"; then + err 1 "${name}_rootdir must be set" \ + "if ${name}_chroot_enable is enabled" fi if test `uname -r | cut -c 1` -le 6; then - if checkyesno dhcpd_devfs_enable && + if checkyesno ${name}_devfs_enable && ! ( type mount_devfs ) > /dev/null 2>&1; then - warn "dhcpd_devfs_enable disabled" \ + warn "${name}_devfs_enable disabled" \ "-- not available" - dhcpd_devfs_enable=NO + eval "${name}_devfs_enable=NO" fi fi else - dhcpd_devfs_enable=NO + eval "${name}_devfs_enable=NO" fi else - if checkyesno dhcpd_chroot_enable; then - warn "dhcpd_chroot_enable disabled -- not compiled in" - dhcpd_chroot_enable=NO + if checkyesno ${name}_chroot_enable; then + warn "${name}_chroot_enable disabled -- not compiled in" + eval "${name}_chroot_enable=NO" fi - dhcpd_devfs_enable=NO + eval "${name}_devfs_enable=NO" fi } rcvar_chuser () { - if checkyesno paranoia && checkyesno dhcpd_chuser_enable; then - dhcpd_piddir=${__dhcpd_piddir}/${name} - dhcpd_leasesdir=${__dhcpd_leasesdir}/${name} + if checkyesno paranoia && checkyesno ${name}_chuser_enable; then + eval "${name}_piddir=\${__dhcpd_piddir}/\${name}" + eval "${name}_leasesdir=\${__dhcpd_leasesdir}/\${name}" else - dhcpd_withuser= dhcpd_withgroup= + eval "${name}_withuser= ${name}_withgroup=" fi } rcvar_chroot () { - if ! checkyesno paranoia || ! checkyesno dhcpd_chroot_enable; then - dhcpd_rootdir= - elif checkyesno paranoia && checkyesno dhcpd_chroot_enable; then - dhcpd_devdir=${__dhcpd_devdir} - dhcpd_etcdir=${__dhcpd_etcdir} + if ! checkyesno paranoia || ! checkyesno ${name}_chroot_enable; then + eval "${name}_rootdir=" + elif checkyesno paranoia && checkyesno ${name}_chroot_enable; then + eval "${name}_devdir=\${__dhcpd_devdir}" + eval "${name}_etcdir=\${__dhcpd_etcdir}" fi } rcvar_pidnleases () { - if ! checkyesno dhcpd_chuser_enable; then - dhcpd_piddir=${__dhcpd_piddir} - dhcpd_leasesdir=${__dhcpd_leasesdir} - fi - dhcpd_pidfile=${dhcpd_piddir}/${name}.pid - dhcpd_leasesfile=${dhcpd_leasesdir}/${name}.leases - dhcpd_conffile=${dhcpd_conf} # for convenience only - dhcpd_confdir=$(dirname ${dhcpd_conffile}) + if ! checkyesno ${name}_chuser_enable; then + eval "${name}_piddir=\${__dhcpd_piddir}" + eval "${name}_leasesdir=\${__dhcpd_leasesdir}" + fi + eval "${name}_pidfile=\${${name}_piddir}/\${name}.pid" + eval "${name}_leasesfile=\${${name}_leasesdir}/\${name}.leases" + eval "${name}_conffile=\${${name}_conf}" # for convenience only + eval "${name}_confdir=\$(dirname \${${name}_conffile})" } rcvar_rooted () { - _dhcpd_rootdir=${dhcpd_rootdir} - _dhcpd_devdir=${dhcpd_rootdir}${dhcpd_devdir} - _dhcpd_etcdir=${dhcpd_rootdir}${dhcpd_etcdir} - _dhcpd_confdir=${dhcpd_rootdir}${dhcpd_confdir} - _dhcpd_includedir=${dhcpd_rootdir}${dhcpd_includedir} - _dhcpd_piddir=${dhcpd_rootdir}${dhcpd_piddir} - _dhcpd_leasesdir=${dhcpd_rootdir}${dhcpd_leasesdir} - _dhcpd_conffile=${dhcpd_rootdir}${dhcpd_conffile} - _dhcpd_pidfile=${dhcpd_rootdir}${dhcpd_pidfile} - _dhcpd_leasesfile=${dhcpd_rootdir}${dhcpd_leasesfile} + eval "_dhcpd_rootdir=\${${name}_rootdir}" + eval "_dhcpd_devdir=\${${name}_rootdir}\${${name}_devdir}" + eval "_dhcpd_etcdir=\${${name}_rootdir}\${${name}_etcdir}" + eval "_dhcpd_confdir=\${${name}_rootdir}\${${name}_confdir}" + eval "_dhcpd_includedir=\${${name}_rootdir}\${${name}_includedir}" + eval "_dhcpd_piddir=\${${name}_rootdir}\${${name}_piddir}" + eval "_dhcpd_leasesdir=\${${name}_rootdir}\${${name}_leasesdir}" + eval "_dhcpd_conffile=\${${name}_rootdir}\${${name}_conffile}" + eval "_dhcpd_pidfile=\${${name}_rootdir}\${${name}_pidfile}" + eval "_dhcpd_leasesfile=\${${name}_rootdir}\${${name}_leasesfile}" } setup_umask () { - if [ -n "${dhcpd_withumask}" ]; then - umask ${dhcpd_withumask} + if eval "[ -n \"\${${name}_withumask}\" ]"; then + eval "umask \${${name}_withumask}" fi } @@ -368,27 +379,27 @@ _ltime=localtime _rconf=resolv.conf - if checkyesno paranoia && checkyesno dhcpd_chroot_enable; then + if checkyesno paranoia && checkyesno ${name}_chroot_enable; then if ! mounted ${_dhcpd_devdir}; then safe_mkdir ${_dhcpd_devdir}/_ # XXX /_ hack! so, .../dev is root owned. fi safe_mkdir ${_dhcpd_rootdir} ${_dhcpd_etcdir}/_ ${_dhcpd_confdir} # XXX /_ hack! so, .../etc is root owned. - if checkyesno dhcpd_devfs_enable; then + if checkyesno ${name}_devfs_enable; then safe_mount ${_dhcpd_devdir} else - safe_copy ${dhcpd_devdir} ${_dhcpd_devdir} + eval "safe_copy \${${name}_devdir} \${_dhcpd_devdir}" fi - safe_copy ${dhcpd_conffile} ${_dhcpd_conffile} - safe_copy ${dhcpd_etcdir}/$_hconf ${_dhcpd_etcdir}/$_hconf - safe_copy ${dhcpd_etcdir}/$_hosts ${_dhcpd_etcdir}/$_hosts - safe_copy ${dhcpd_etcdir}/$_ltime ${_dhcpd_etcdir}/$_ltime - safe_copy ${dhcpd_etcdir}/$_rconf ${_dhcpd_etcdir}/$_rconf + eval "safe_copy \${${name}_conffile} \${_dhcpd_conffile}" + eval "safe_copy \${${name}_etcdir}/\$_hconf \${_dhcpd_etcdir}/\$_hconf" + eval "safe_copy \${${name}_etcdir}/\$_hosts \${_dhcpd_etcdir}/\$_hosts" + eval "safe_copy \${${name}_etcdir}/\$_ltime \${_dhcpd_etcdir}/\$_ltime" + eval "safe_copy \${${name}_etcdir}/\$_rconf \${_dhcpd_etcdir}/\$_rconf" # copy dhcpd_includedir if defined and available - if [ -d "${dhcpd_includedir}" ]; then + if eval "[ -d \"\${${name}_includedir}\" ]"; then safe_mkdir ${_dhcpd_includedir} - safe_copy ${dhcpd_includedir} ${_dhcpd_includedir} + eval "safe_copy \${${name}_includedir} \${_dhcpd_includedir}" fi fi } @@ -396,7 +407,7 @@ setup_chuser () { if checkyesno paranoia && { - checkyesno dhcpd_chuser_enable || checkyesno dhcpd_chroot_enable + checkyesno ${name}_chuser_enable || checkyesno ${name}_chroot_enable }; then safe_mkdir ${_dhcpd_piddir} ${_dhcpd_leasesdir} fi @@ -409,30 +420,33 @@ setup_flags () { - if [ -n "${dhcpd_conf}" ]; then - rc_flags="${rc_flags} -cf ${dhcpd_conf}" + if [ "${name}" = "dhcpd6" ]; then + rc_flags="${rc_flags} -6" + fi + if eval "[ -n \"\${${name}_conf}\" ]"; then + eval "rc_flags=\"\${rc_flags} -cf \${${name}_conf}\"" fi - if [ -n "${dhcpd_leasesfile}" ]; then - rc_flags="${rc_flags} -lf ${dhcpd_leasesfile}" + if eval "[ -n \"\${${name}_leasesfile}\" ]"; then + eval "rc_flags=\"\${rc_flags} -lf \${${name}_leasesfile}\"" fi - if [ -n "${dhcpd_pidfile}" ]; then - rc_flags="${rc_flags} -pf ${dhcpd_pidfile}" + if eval "[ -n \"\${${name}_pidfile}\" ]"; then + eval "rc_flags=\"\${rc_flags} -pf \${${name}_pidfile}\"" fi - if [ -n "${dhcpd_withuser}" ]; then - rc_flags="${rc_flags} -user ${dhcpd_withuser}" + if eval "[ -n \"\${dhcpd_withuser}\" ]"; then + eval "rc_flags=\"\${rc_flags} -user \${${name}_withuser}\"" fi - if [ -n "${dhcpd_withgroup}" ]; then - rc_flags="${rc_flags} -group ${dhcpd_withgroup}" + if eval "[ -n \"\${${name}_withgroup}\" ]"; then + eval "rc_flags=\"\${rc_flags} -group \${${name}_withgroup}\"" fi - if [ -n "${dhcpd_rootdir}" ]; then - rc_flags="${rc_flags} -chroot ${dhcpd_rootdir}" + if eval "[ -n \"\${${name}_rootdir}\" ]"; then + eval "rc_flags=\"\${rc_flags} -chroot \${${name}_rootdir}\"" fi - rc_flags="${rc_flags} ${dhcpd_ifaces}" + eval "rc_flags=\"\${rc_flags} \${${name}_ifaces}\"" } cleanup_chroot () { - if checkyesno paranoia && checkyesno dhcpd_chroot_enable; then + if checkyesno paranoia && checkyesno ${name}_chroot_enable; then safe_umount ${_dhcpd_devdir} fi } @@ -499,11 +513,11 @@ dhcpd_check dhcpd_rcvar -command=%%PREFIX%%/sbin/${name} +command=%%PREFIX%%/sbin/dhcpd pidfile=${_dhcpd_pidfile} -required_files=${dhcpd_conf} -start_precmd=${name}_precmd -stop_postcmd=${name}_postcmd +eval "required_files=\${${name}_conf}" +start_precmd=dhcpd_precmd +stop_postcmd=dhcpd_postcmd restart_precmd="dhcpd_checkconfig" uninstall_cmd=dhcpd_uninstall extra_commands="uninstall"