From dbf330cfa86f9915da76a95ee95ea3f1701a7379 Mon Sep 17 00:00:00 2001 From: Peter Pentchev Date: Sat, 17 Feb 2001 14:17:30 +0000 Subject: [PATCH] Update to 3.0b2pl16, assign maintainership to Cyrille Lefevre. PR: 24911 Submitted by: Cyrille Lefevre - new maintainer --- net/isc-dhcp3-server/Makefile | 118 +++++++++++++----- net/isc-dhcp3-server/distinfo | 2 +- .../files/isc-dhcpd.sh.sample | 7 +- net/isc-dhcp3-server/files/patch-aj | 61 +++------ net/isc-dhcp3-server/files/patch-clparse.c | 14 ++- net/isc-dhcp3-server/files/patch-dhclient.8 | 56 ++++++++- net/isc-dhcp3-server/files/patch-dhclient.c | 52 ++++++-- net/isc-dhcp3-server/files/patch-freebsd | 76 +++++++++-- net/isc-dhcp3-server/files/patch-site.conf | 21 +++- net/isc-dhcp3-server/files/patch-site.h | 5 - net/isc-dhcp3-server/pkg-descr | 23 ++-- net/isc-dhcp3-server/pkg-plist | 31 +++-- net/isc-dhcp3/Makefile | 118 +++++++++++++----- net/isc-dhcp3/distinfo | 2 +- net/isc-dhcp3/files/isc-dhcpd.sh.sample | 7 +- net/isc-dhcp3/files/patch-aj | 61 +++------ net/isc-dhcp3/files/patch-clparse.c | 14 ++- net/isc-dhcp3/files/patch-dhclient.8 | 56 ++++++++- net/isc-dhcp3/files/patch-dhclient.c | 52 ++++++-- net/isc-dhcp3/files/patch-freebsd | 76 +++++++++-- net/isc-dhcp3/files/patch-site.conf | 21 +++- net/isc-dhcp3/files/patch-site.h | 5 - net/isc-dhcp3/pkg-descr | 23 ++-- net/isc-dhcp3/pkg-plist | 31 +++-- net/isc-dhcp30-server/Makefile | 118 +++++++++++++----- net/isc-dhcp30-server/distinfo | 2 +- .../files/isc-dhcpd.sh.sample | 7 +- net/isc-dhcp30-server/files/patch-aj | 61 +++------ net/isc-dhcp30-server/files/patch-clparse.c | 14 ++- net/isc-dhcp30-server/files/patch-dhclient.8 | 56 ++++++++- net/isc-dhcp30-server/files/patch-dhclient.c | 52 ++++++-- net/isc-dhcp30-server/files/patch-freebsd | 76 +++++++++-- net/isc-dhcp30-server/files/patch-site.conf | 21 +++- net/isc-dhcp30-server/files/patch-site.h | 5 - net/isc-dhcp30-server/pkg-descr | 23 ++-- net/isc-dhcp30-server/pkg-plist | 31 +++-- net/isc-dhcp31-server/Makefile | 118 +++++++++++++----- net/isc-dhcp31-server/distinfo | 2 +- .../files/isc-dhcpd.sh.sample | 7 +- net/isc-dhcp31-server/files/patch-aj | 61 +++------ net/isc-dhcp31-server/files/patch-clparse.c | 14 ++- net/isc-dhcp31-server/files/patch-dhclient.8 | 56 ++++++++- net/isc-dhcp31-server/files/patch-dhclient.c | 52 ++++++-- net/isc-dhcp31-server/files/patch-freebsd | 76 +++++++++-- net/isc-dhcp31-server/files/patch-site.conf | 21 +++- net/isc-dhcp31-server/files/patch-site.h | 5 - net/isc-dhcp31-server/pkg-descr | 23 ++-- net/isc-dhcp31-server/pkg-plist | 31 +++-- net/isc-dhcp40-server/Makefile | 118 +++++++++++++----- net/isc-dhcp40-server/distinfo | 2 +- .../files/isc-dhcpd.sh.sample | 7 +- net/isc-dhcp40-server/files/patch-aj | 61 +++------ net/isc-dhcp40-server/files/patch-clparse.c | 14 ++- net/isc-dhcp40-server/files/patch-dhclient.8 | 56 ++++++++- net/isc-dhcp40-server/files/patch-dhclient.c | 52 ++++++-- net/isc-dhcp40-server/files/patch-freebsd | 76 +++++++++-- net/isc-dhcp40-server/files/patch-site.conf | 21 +++- net/isc-dhcp40-server/files/patch-site.h | 5 - net/isc-dhcp40-server/pkg-descr | 23 ++-- net/isc-dhcp40-server/pkg-plist | 31 +++-- 60 files changed, 1655 insertions(+), 675 deletions(-) delete mode 100644 net/isc-dhcp3-server/files/patch-site.h delete mode 100644 net/isc-dhcp3/files/patch-site.h delete mode 100644 net/isc-dhcp30-server/files/patch-site.h delete mode 100644 net/isc-dhcp31-server/files/patch-site.h delete mode 100644 net/isc-dhcp40-server/files/patch-site.h diff --git a/net/isc-dhcp3-server/Makefile b/net/isc-dhcp3-server/Makefile index 0c565a531cd7..d13a14b692c4 100644 --- a/net/isc-dhcp3-server/Makefile +++ b/net/isc-dhcp3-server/Makefile @@ -7,19 +7,16 @@ # PORTNAME= isc-dhcp3 -PORTVERSION= 3.0.b2.11 +PORTVERSION= 3.0.b2.16 CATEGORIES= net MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/ -DISTNAME= dhcp-3.0b2pl${PORTVERSION:S/3.0.b2.//g} +DISTNAME= ${PORTNAME:S/isc-//:S/3/-/}${PORTVERSION:S/.b/b/:R}pl${PORTVERSION:E} -MAINTAINER= ports@FreeBSD.org +MAINTAINER= clefevre@citeweb.net -.if defined(USE_FACILITY) -_USE_FACILITY:= `${ECHO} ${USE_FACILITY} | ${TR} "[:lower:]" "[:upper:]"` -USE_FACILITY= ${_USE_FACILITY} -.else -USE_FACILITY= DAEMON -.endif +# +# Global variables +# HAS_CONFIGURE= yes @@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \ dhcpd.leases.5 MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8 -pre-fetch: -.if ${USE_FACILITY} == "DAEMON" - @${ECHO} "" - @${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:" - @${ECHO} " daemon, local{0-7}" - @${ECHO} " 'daemon' is the default option if one is not defined." - @${ECHO} " Press Control-C and run make clean build LOG_FACILITY=," - @${ECHO} " if you wish to use a different logging facility." - @${ECHO} "" - @sleep 2 +# +# Local variables +# + +PATCH_SUBDIRS= client common dhcpctl minires omapip relay server + +BIN_FILES= dhclient dhcpd dhcrelay +SAMP_FILES= client/dhclient.conf server/dhcpd.conf +RCD_FILES= isc-dhcpd.sh.sample +DOC_FILES= CHANGES COPYRIGHT README RELNOTES +DATA_FILES= dhclient.leases dhcpd.leases +CONF_FILES= dhclient.conf + +BIN_DIR= ${PREFIX}/sbin +ETC_DIR= ${PREFIX}/etc +RCD_DIR= ${PREFIX}/etc/rc.d +DOC_DIR= ${PREFIX}/share/doc/${PORTNAME} +VARDB_DIR= /var/db + +STRIP?= strip + +# +# Post-patch +# + +post-patch: patch-scripts patch-makefiles + +patch-scripts: + @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' \ + ${WRKSRC}/client/scripts/freebsd + +patch-makefiles: +.for subdir in ${PATCH_SUBDIRS} + @${PERL} -pi.fbsd -e \ + 's|^DEBUG[ ]*=|DEBUG ?=|g;s|^CFLAGS[ ]*=|CFLAGS +=|g' \ + ${WRKSRC}/${subdir}/Makefile.dist +.endfor + +# +# Post-install +# + +post-install: strip-binary-files install-startup-files \ + install-doc-files install-sample-files \ + create-data-files create-conf-files + +strip-binary-files: +.for file in ${BIN_FILES} +.if exists({BIN_DIR}/${file}) + @${STRIP} ${BIN_DIR}/${file} +.endif +.endfor + +install-startup-files: +.for file in ${RCD_FILES} + @${INSTALL_SCRIPT} ${FILESDIR}/${file} ${RCD_DIR}/${file} +.endfor + +install-doc-files: +.if !defined(NOPORTDOCS) + @${MKDIR} ${DOC_DIR} +.for file in ${DOC_FILES} + @${INSTALL_DATA} ${WRKSRC}/${file} ${DOC_DIR}/${file} +.endfor .endif -post-patch: - @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h - @${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h - @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/client/scripts/freebsd -.for MF in relay/Makefile.dist server/Makefile.dist client/Makefile.dist common/Makefile.dist dhcpctl/Makefile.dist minires/Makefile.dist omapip/Makefile.dist - @${PERL} -pi.fbsd -e 's|^DEBUG[ ]*=|DEBUG ?=|g ; s|^CFLAGS[ ]*=|CFLAGS +=|g' ${WRKSRC}/${MF} +install-sample-files: +.for file in ${SAMP_FILES} + @${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample .endfor -post-install: - ${TOUCH} /var/db/dhcpd.leases -.for file in dhclient dhcpd dhcrelay - if [ -f ${PREFIX}/sbin/${file} ]; then \ - strip ${PREFIX}/sbin/${file}; \ - fi +create-data-files: +.for file in ${DATA_FILES} +.if !exists(${VARDB_DIR}/${file}) + @${TOUCH} ${VARDB_DIR}/${file} +.endif +.endfor + +create-conf-files: +.for file in ${CONF_FILES} +.if !exists(${ETC_DIR}/${file}) + @${TOUCH} ${ETC_DIR}/${file} +.endif .endfor - ${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \ - ${PREFIX}/etc/rc.d .include diff --git a/net/isc-dhcp3-server/distinfo b/net/isc-dhcp3-server/distinfo index 969f9ab9d973..bdb0966a924d 100644 --- a/net/isc-dhcp3-server/distinfo +++ b/net/isc-dhcp3-server/distinfo @@ -1 +1 @@ -MD5 (dhcp-3.0b2pl11.tar.gz) = 5fd2c97d850c41e6445648a4108b509f +MD5 (dhcp-3.0b2pl16.tar.gz) = 88fb65480a1b66c8d011957ea6c2e138 diff --git a/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample b/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample index f07d745c3772..3cc86c5e65a3 100644 --- a/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample +++ b/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample @@ -2,6 +2,7 @@ # $FreeBSD$ +OPTIONS="" IFACES="SET_THIS" if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then @@ -11,10 +12,10 @@ fi case "$1" in start) - ${PREFIX}/sbin/dhcpd $IFACES + ${PREFIX}/sbin/dhcpd $OPTIONS $IFACES ;; stop) - kill `cat /var/run/dhcpd.pid` + killall dhcpd ;; restart) $0 stop @@ -24,7 +25,7 @@ status) ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)" ;; *) - echo "Usage: `basename $0` {start|stop|restart|status}" >&2 + echo "usage: ${0##*/} {start|stop|restart|status}" >&2 ;; esac diff --git a/net/isc-dhcp3-server/files/patch-aj b/net/isc-dhcp3-server/files/patch-aj index 14f7db13ff15..b8a356216c52 100644 --- a/net/isc-dhcp3-server/files/patch-aj +++ b/net/isc-dhcp3-server/files/patch-aj @@ -1,43 +1,20 @@ ---- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000 -+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000 -@@ -329,7 +329,7 @@ - #endif +--- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001 ++++ includes/dhcpd.h Fri Jan 26 06:46:12 2001 +@@ -672,7 +672,7 @@ + u_int32_t requested_lease; /* Requested lease time, if user + doesn't configure one. */ + struct string_list *media; /* Possible network media values. */ +- char *script_name; /* Name of config script. */ ++ const char *script_name; /* Name of config script. */ + char *vendor_space_name; /* Name of config script. */ + enum policy bootp_policy; + /* Ignore, accept or prefer BOOTP +@@ -1864,6 +1864,8 @@ + void set_ip_address PROTO ((struct interface_info *, struct in_addr)); - #ifndef CL_DEFAULT_SCRIPT_NAME --# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script" -+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script" - #endif - - #ifndef CL_DEFAULT_REQUESTED_OPTIONS -@@ -771,11 +771,11 @@ - #define _PATH_DHCPD_DB "dhcpd.leases" - #else - #ifndef _PATH_DHCPD_CONF --#define _PATH_DHCPD_CONF "/etc/dhcpd.conf" -+#define _PATH_DHCPD_CONF "!!PREFIX!!/etc/dhcpd.conf" - #endif - - #ifndef _PATH_DHCPD_DB --#define _PATH_DHCPD_DB "/etc/dhcpd.leases" -+#define _PATH_DHCPD_DB "!!PREFIX!!/etc/dhcpd.leases" - #endif - - #ifndef _PATH_DHCPD_PID -@@ -784,7 +784,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_CONF --#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf" -+#define _PATH_DHCLIENT_CONF "!!PREFIX!!/etc/dhclient.conf" - #endif - - #ifndef _PATH_DHCLIENT_PID -@@ -792,7 +792,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_DB --#define _PATH_DHCLIENT_DB "/etc/dhclient.leases" -+#define _PATH_DHCLIENT_DB "!!PREFIX!!/etc/dhclient.leases" - #endif - - #ifndef _PATH_RESOLV_CONF + /* clparse.c */ ++extern const char *client_script_name; ++ + isc_result_t read_client_conf PROTO ((void)); + void read_client_leases PROTO ((void)); + void parse_client_statement PROTO ((struct parse *, struct interface_info *, diff --git a/net/isc-dhcp3-server/files/patch-clparse.c b/net/isc-dhcp3-server/files/patch-clparse.c index f2da52a15884..48c125d11094 100644 --- a/net/isc-dhcp3-server/files/patch-clparse.c +++ b/net/isc-dhcp3-server/files/patch-clparse.c @@ -1,5 +1,11 @@ ---- client/clparse.c.orig Wed Jul 19 21:13:10 2000 -+++ client/clparse.c Thu Jul 20 21:52:53 2000 -@@ -46 +46 @@ +--- client/clparse.c.orig Thu Jan 25 09:17:17 2001 ++++ client/clparse.c Fri Jan 26 06:11:01 2001 +@@ -50,7 +50,7 @@ + + static TIME parsed_time; + -char client_script_name [] = "/etc/dhclient-script"; -+char client_script_name [] = CL_DEFAULT_SCRIPT_NAME; ++const char *client_script_name = CL_DEFAULT_SCRIPT_NAME; + + struct client_config top_level_config; + diff --git a/net/isc-dhcp3-server/files/patch-dhclient.8 b/net/isc-dhcp3-server/files/patch-dhclient.8 index 160c451e445b..2ba9899869c3 100644 --- a/net/isc-dhcp3-server/files/patch-dhclient.8 +++ b/net/isc-dhcp3-server/files/patch-dhclient.8 @@ -1,5 +1,5 @@ ---- client/dhclient.8.orig Wed May 10 02:36:03 2000 -+++ client/dhclient.8 Wed May 10 02:39:43 2000 +--- client/dhclient.8.orig Mon May 1 19:11:36 2000 ++++ client/dhclient.8 Fri Jan 26 05:12:37 2001 @@ -34,7 +34,7 @@ .B -q ] @@ -9,15 +9,59 @@ ] [ .B -lf -@@ -170,6 +170,11 @@ - .B -q +@@ -49,6 +49,10 @@ + .I config-file + ] + [ ++.B -sf ++.I script-file ++] ++[ + .B -s + server + ] +@@ -174,17 +178,25 @@ flag prevents any messages other than errors from being printed to the standard error descriptor. -+.PP + .PP +The +.B -1 +flag cause dhclient to try once to get a lease. If it fails, dhclient exits +with exit code two. - .PP ++.PP The DHCP client normally gets its configuration information from .B ETCDIR/dhclient.conf, + its lease database from +-.B DBDIR/dhclient.leases +-and stores its process ID in a file called ++.B DBDIR/dhclient.leases, ++stores its process ID in a file called + .B RUNDIR/dhclient.pid. ++and configure the network interface using ++.B CLIENTBINDIR/dhclient-script. + To specify different names and/or locations for these files, use the + .B -cf, +-.B -lf +-and ++.B -lf, + .B -pf ++and ++.B -sf + flags, respectively, followed by the name of the file. This can be + particularly useful if, for example, + .B DBDIR +@@ -206,10 +218,12 @@ + .SH CONFIGURATION + The syntax of the dhclient.conf(8) file is discussed seperately. + .SH FILES ++.B CLIENTBINDIR/dhclient-script, + .B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid, +-.B DBDIR/dhclient.leases~. ++.B DBDIR/dhclient.leases. + .SH SEE ALSO +-dhcpd(8), dhcrelay(8), dhclient.conf(5), dhclient.leases(5) ++dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5) and ++dhclient.leases(5). + .SH AUTHOR + .B dhclient(8) + has been written for the Internet Software Consortium diff --git a/net/isc-dhcp3-server/files/patch-dhclient.c b/net/isc-dhcp3-server/files/patch-dhclient.c index bb43074fbd36..ebbd815ecc5e 100644 --- a/net/isc-dhcp3-server/files/patch-dhclient.c +++ b/net/isc-dhcp3-server/files/patch-dhclient.c @@ -1,5 +1,5 @@ ---- client/dhclient.c.orig Thu Sep 14 05:42:01 2000 -+++ client/dhclient.c Wed Sep 27 03:31:33 2000 +--- client/dhclient.c.orig Thu Jan 25 09:18:06 2001 ++++ client/dhclient.c Fri Jan 26 06:15:50 2001 @@ -78,6 +78,7 @@ u_int16_t remote_port; int no_daemon; @@ -8,7 +8,27 @@ static void usage PROTO ((void)); -@@ -176,6 +177,8 @@ +@@ -104,6 +105,7 @@ + int no_dhclient_conf = 0; + int no_dhclient_db = 0; + int no_dhclient_pid = 0; ++ int no_dhclient_script = 0; + char *s; + + #ifdef SYSLOG_4_2 +@@ -159,6 +161,11 @@ + usage (); + path_dhclient_db = argv [i]; + no_dhclient_db = 1; ++ } else if (!strcmp (argv [i], "-sf")) { ++ if (++i == argc) ++ usage (); ++ client_script_name = argv [i]; ++ no_dhclient_script = 1; + } else if (!strcmp (argv [i], "-q")) { + quiet = 1; + quiet_interface_discovery = 1; +@@ -176,6 +183,8 @@ } else if (!strcmp (argv [i], "-w")) { /* do not exit if there are no broadcast interfaces. */ persist = 1; @@ -17,16 +37,32 @@ } else if (argv [i][0] == '-') { usage (); } else { -@@ -417,7 +420,7 @@ +@@ -208,6 +217,9 @@ + if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) { + path_dhclient_pid = s; + } ++ if (!no_dhclient_script && (s = getenv ("PATH_DHCLIENT_SCRIPT"))) { ++ client_script_name = s; ++ } + + /* first kill of any currently running client */ + if (release_mode) { +@@ -423,10 +435,11 @@ log_info (arr); log_info (url); - log_error ("Usage: dhclient [-d] [-D] [-q] [-p ] %s", -+ log_error ("Usage: dhclient [-1] [-d] [-D] [-q] [-p ] %s", ++ log_error ("usage: dhclient [-1] [-d] [-D] [-q] [-p ] %s", "[-s server]"); - log_fatal (" [-lf lease-file] [-pf pid-file]%s", - "[-cf config-file] [interface]"); -@@ -1402,6 +1405,10 @@ +- log_fatal (" [-lf lease-file] [-pf pid-file]%s", +- "[-cf config-file] [interface]"); ++ log_error (" [-cf config-file] [-lf lease-file] %s", ++ "[-pf pid-file] [-sf script-file]"); ++ log_fatal (" [interface]"); + } + + isc_result_t find_class (struct class **c, +@@ -1432,6 +1445,10 @@ /* No leases were available, or what was available didn't work, so tell the shell script that we failed to allocate an address, and try again later. */ diff --git a/net/isc-dhcp3-server/files/patch-freebsd b/net/isc-dhcp3-server/files/patch-freebsd index 293aa2a33130..2376cbb7ec40 100644 --- a/net/isc-dhcp3-server/files/patch-freebsd +++ b/net/isc-dhcp3-server/files/patch-freebsd @@ -1,5 +1,5 @@ ---- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000 -+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000 +--- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000 ++++ client/scripts/freebsd Sat Jan 27 02:17:01 2001 @@ -1,5 +1,11 @@ #!/bin/sh @@ -55,12 +55,26 @@ hostname $new_host_name fi fi -@@ -105,11 +111,18 @@ +@@ -93,24 +99,31 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh + fi + if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then ifconfig $interface inet $new_ip_address $new_netmask_arg \ $new_broadcast_arg $medium + $LOGGER "New IP Address($interface): $new_ip_address" -+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask" ++ $LOGGER "New Subnet Mask($interface): $new_subnet_mask" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + if [ "$new_routers" != "" ]; then + $LOGGER "New Routers: $new_routers" @@ -70,11 +84,29 @@ route add default $router >/dev/null 2>&1 done if [ "$new_static_routes" != "" ]; then +- set $new_static_routes + $LOGGER "New Static Routes: $new_static_routes" - set $new_static_routes ++ set -- $new_static_routes while [ $# -gt 1 ]; do route add $1 $2 -@@ -161,8 +174,12 @@ + shift; shift +@@ -138,13 +151,13 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \ + |sh >/dev/null 2>&1 + fi + if [ x$alias_ip_address != x ]; then +@@ -161,9 +174,13 @@ fi ifconfig $interface inet $new_ip_address $new_netmask_arg \ $new_broadcast_arg $medium @@ -83,7 +115,37 @@ + $LOGGER "New Broadcast Address($interface): $new_broadcast_address" sleep 1 if [ "$new_routers" != "" ]; then +- set $new_routers + $LOGGER "New Routers: $new_routers" - set $new_routers ++ set -- $new_routers if ping -q -c 1 $1; then if [ x$new_ip_address != x$alias_ip_address ] && \ + [ x$alias_ip_address != x ]; then +@@ -174,9 +191,9 @@ + for router in $new_routers; do + route add default $router >/dev/null 2>&1 + done +- set $new_static_routes ++ set -- $new_static_routes + while [ $# -gt 1 ]; do +- route add $0 $1 ++ route add $1 $2 + shift; shift + done + make_resolv_conf +@@ -188,13 +205,13 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \ + |sh >/dev/null 2>&1 + exit_with_hooks 1 + fi diff --git a/net/isc-dhcp3-server/files/patch-site.conf b/net/isc-dhcp3-server/files/patch-site.conf index afe3d066ff89..5efe4195aa73 100644 --- a/net/isc-dhcp3-server/files/patch-site.conf +++ b/net/isc-dhcp3-server/files/patch-site.conf @@ -1,23 +1,32 @@ ---- site.conf.orig Wed Jul 7 08:20:10 1999 -+++ site.conf Tue Oct 3 08:59:57 2000 -@@ -1,2 +1,20 @@ +--- site.conf.orig Wed Jul 7 17:20:10 1999 ++++ site.conf Fri Jan 26 06:58:15 2001 +@@ -1,2 +1,29 @@ # Put local site configuration stuff here to override the default # settings in Makefile.conf + +PREFIX ?= /usr/local + -+ETC = $(PREFIX)/etc +BINDIR = $(PREFIX)/sbin +CLIENTBINDIR = $(PREFIX)/sbin -+MANCAT = man +ADMMANDIR = $(PREFIX)/man/man8 +ADMMANEXT = .8 +FFMANDIR = $(PREFIX)/man/man5 +FFMANEXT = .5 +LIBMANDIR = $(PREFIX)/man/man3 +LIBMANEXT = .3 ++MANCAT = man ++# INSTALL = ${INSTALL_DATA} ++# MANINSTALL = ${INSTALL_MAN} ++ETC = $(PREFIX)/etc ++LIBDIR = ${PREFIX}/lib ++INCDIR = ${PREFIX}/include + +DEBUG ?= #none -+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(ETC)/dhclient-script\" ++ ++CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(CLIENTBINDIR)/dhclient-script\" ++ +CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\" ++CFLAGS += -D_PATH_DHCPD_DB=\"$(VARDB)/dhcpd.leases\" ++ +CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\" ++CFLAGS += -D_PATH_DHCLIENT_DB=\"$(VARDB)/dhclient.leases\" diff --git a/net/isc-dhcp3-server/files/patch-site.h b/net/isc-dhcp3-server/files/patch-site.h deleted file mode 100644 index c411dd071f23..000000000000 --- a/net/isc-dhcp3-server/files/patch-site.h +++ /dev/null @@ -1,5 +0,0 @@ ---- includes/site.h.orig Thu Sep 28 11:24:17 2000 -+++ includes/site.h Sat Dec 2 00:46:53 2000 -@@ -159 +159 @@ --/* #define DHCPD_LOG_FACILITY LOG_DAEMON */ -+#define DHCPD_LOG_FACILITY LOG_!!USE_FACILITY!! diff --git a/net/isc-dhcp3-server/pkg-descr b/net/isc-dhcp3-server/pkg-descr index 46bdf5ebae8e..ec2d72947025 100644 --- a/net/isc-dhcp3-server/pkg-descr +++ b/net/isc-dhcp3-server/pkg-descr @@ -1,16 +1,17 @@ -ISC-DHCP Dynamic Host Configuration Protocol server +The ISC Dynamic Host Configuration Protocol Distribution provides +a freely redistributable reference implementation of all aspects +of the DHCP protocol, through a suite of DHCP tools: -This is a release of the Internet Software Consortium -DHCP Server (ISC dhcpd). In this release, support for the core -DHCP protocol is provided. BOOTP support is also provided for -backwards compatibility. + * A DHCP server + * A DHCP client + * A DHCP relay agent Version 3, Beta 2 of the ISC DHCP Distribution includes the following -features that are new since version 2.0: +features that are new since version 2.0: * DHCP Failover Protocol support * OMAPI, an API for accessing and modifying the DHCP - server and client state. + server and client state. * Conditional behaviour * Storing arbitrary information on leases * Address pools with access control @@ -19,10 +20,12 @@ features that are new since version 2.0: * Relay agent information option support * Dynamic DNS updates * Many bug fixes, performance enhancements, and minor - new DHCP protocol features. + new DHCP protocol features. -A fully-featured implementation of dynamic DNS updates is included in -this release. There are no build dependencies with any BIND version. +Also, a fully-featured implementation of dynamic DNS updates is +included and there are no build dependencies with any BIND version. +Since patch-level 15, a log-facility configuration parameter has +been added, see the manual pages for details. WWW: http://www.isc.org/products/DHCP/ diff --git a/net/isc-dhcp3-server/pkg-plist b/net/isc-dhcp3-server/pkg-plist index dc0dc00ce17a..9cca499d267d 100644 --- a/net/isc-dhcp3-server/pkg-plist +++ b/net/isc-dhcp3-server/pkg-plist @@ -1,9 +1,8 @@ @comment $FreeBSD$ -etc/dhclient-script -sbin/dhclient -sbin/dhcpd -sbin/dhcrelay +etc/dhclient.conf.sample +etc/dhcpd.conf.sample etc/rc.d/isc-dhcpd.sh.sample +include/dhcpctl.h include/isc/boolean.h include/isc/dst.h include/isc/int.h @@ -11,13 +10,25 @@ include/isc/lang.h include/isc/list.h include/isc/result.h include/isc/types.h -@dirrm include/isc include/omapip/alloc.h include/omapip/buffer.h include/omapip/omapip.h -@dirrm include/omapip -include/dhcpctl.h -lib/libomapi.a lib/libdhcpctl.a -@exec touch /var/db/dhcpd.leases -@exec touch %D/etc/dhclient.conf +lib/libomapi.a +sbin/dhclient +sbin/dhclient-script +sbin/dhcpd +sbin/dhcrelay +share/doc/isc-dhcp3/CHANGES +share/doc/isc-dhcp3/COPYRIGHT +share/doc/isc-dhcp3/README +share/doc/isc-dhcp3/RELNOTES +@dirrm include/isc +@dirrm include/omapip +@dirrm share/doc/isc-dhcp3 +@exec [ -f /var/db/dhclient.leases ] || touch /var/db/dhclient.leases +@unexec [ -s /var/db/dhclient.leases ] || rm -f /var/db/dhclient.leases +@exec [ -f /var/db/dhcpd.leases ] || touch /var/db/dhcpd.leases +@unexec [ -s /var/db/dhcpd.leases ] || rm -f /var/db/dhcpd.leases +@exec [ -f %D/etc/dhclient.conf ] || touch %D/etc/dhclient.conf +@unexec [ -L %D/etc/dhclient.conf -o -s %D/etc/dhclient.conf ] || rm -f %D/etc/dhclient.conf diff --git a/net/isc-dhcp3/Makefile b/net/isc-dhcp3/Makefile index 0c565a531cd7..d13a14b692c4 100644 --- a/net/isc-dhcp3/Makefile +++ b/net/isc-dhcp3/Makefile @@ -7,19 +7,16 @@ # PORTNAME= isc-dhcp3 -PORTVERSION= 3.0.b2.11 +PORTVERSION= 3.0.b2.16 CATEGORIES= net MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/ -DISTNAME= dhcp-3.0b2pl${PORTVERSION:S/3.0.b2.//g} +DISTNAME= ${PORTNAME:S/isc-//:S/3/-/}${PORTVERSION:S/.b/b/:R}pl${PORTVERSION:E} -MAINTAINER= ports@FreeBSD.org +MAINTAINER= clefevre@citeweb.net -.if defined(USE_FACILITY) -_USE_FACILITY:= `${ECHO} ${USE_FACILITY} | ${TR} "[:lower:]" "[:upper:]"` -USE_FACILITY= ${_USE_FACILITY} -.else -USE_FACILITY= DAEMON -.endif +# +# Global variables +# HAS_CONFIGURE= yes @@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \ dhcpd.leases.5 MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8 -pre-fetch: -.if ${USE_FACILITY} == "DAEMON" - @${ECHO} "" - @${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:" - @${ECHO} " daemon, local{0-7}" - @${ECHO} " 'daemon' is the default option if one is not defined." - @${ECHO} " Press Control-C and run make clean build LOG_FACILITY=," - @${ECHO} " if you wish to use a different logging facility." - @${ECHO} "" - @sleep 2 +# +# Local variables +# + +PATCH_SUBDIRS= client common dhcpctl minires omapip relay server + +BIN_FILES= dhclient dhcpd dhcrelay +SAMP_FILES= client/dhclient.conf server/dhcpd.conf +RCD_FILES= isc-dhcpd.sh.sample +DOC_FILES= CHANGES COPYRIGHT README RELNOTES +DATA_FILES= dhclient.leases dhcpd.leases +CONF_FILES= dhclient.conf + +BIN_DIR= ${PREFIX}/sbin +ETC_DIR= ${PREFIX}/etc +RCD_DIR= ${PREFIX}/etc/rc.d +DOC_DIR= ${PREFIX}/share/doc/${PORTNAME} +VARDB_DIR= /var/db + +STRIP?= strip + +# +# Post-patch +# + +post-patch: patch-scripts patch-makefiles + +patch-scripts: + @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' \ + ${WRKSRC}/client/scripts/freebsd + +patch-makefiles: +.for subdir in ${PATCH_SUBDIRS} + @${PERL} -pi.fbsd -e \ + 's|^DEBUG[ ]*=|DEBUG ?=|g;s|^CFLAGS[ ]*=|CFLAGS +=|g' \ + ${WRKSRC}/${subdir}/Makefile.dist +.endfor + +# +# Post-install +# + +post-install: strip-binary-files install-startup-files \ + install-doc-files install-sample-files \ + create-data-files create-conf-files + +strip-binary-files: +.for file in ${BIN_FILES} +.if exists({BIN_DIR}/${file}) + @${STRIP} ${BIN_DIR}/${file} +.endif +.endfor + +install-startup-files: +.for file in ${RCD_FILES} + @${INSTALL_SCRIPT} ${FILESDIR}/${file} ${RCD_DIR}/${file} +.endfor + +install-doc-files: +.if !defined(NOPORTDOCS) + @${MKDIR} ${DOC_DIR} +.for file in ${DOC_FILES} + @${INSTALL_DATA} ${WRKSRC}/${file} ${DOC_DIR}/${file} +.endfor .endif -post-patch: - @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h - @${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h - @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/client/scripts/freebsd -.for MF in relay/Makefile.dist server/Makefile.dist client/Makefile.dist common/Makefile.dist dhcpctl/Makefile.dist minires/Makefile.dist omapip/Makefile.dist - @${PERL} -pi.fbsd -e 's|^DEBUG[ ]*=|DEBUG ?=|g ; s|^CFLAGS[ ]*=|CFLAGS +=|g' ${WRKSRC}/${MF} +install-sample-files: +.for file in ${SAMP_FILES} + @${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample .endfor -post-install: - ${TOUCH} /var/db/dhcpd.leases -.for file in dhclient dhcpd dhcrelay - if [ -f ${PREFIX}/sbin/${file} ]; then \ - strip ${PREFIX}/sbin/${file}; \ - fi +create-data-files: +.for file in ${DATA_FILES} +.if !exists(${VARDB_DIR}/${file}) + @${TOUCH} ${VARDB_DIR}/${file} +.endif +.endfor + +create-conf-files: +.for file in ${CONF_FILES} +.if !exists(${ETC_DIR}/${file}) + @${TOUCH} ${ETC_DIR}/${file} +.endif .endfor - ${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \ - ${PREFIX}/etc/rc.d .include diff --git a/net/isc-dhcp3/distinfo b/net/isc-dhcp3/distinfo index 969f9ab9d973..bdb0966a924d 100644 --- a/net/isc-dhcp3/distinfo +++ b/net/isc-dhcp3/distinfo @@ -1 +1 @@ -MD5 (dhcp-3.0b2pl11.tar.gz) = 5fd2c97d850c41e6445648a4108b509f +MD5 (dhcp-3.0b2pl16.tar.gz) = 88fb65480a1b66c8d011957ea6c2e138 diff --git a/net/isc-dhcp3/files/isc-dhcpd.sh.sample b/net/isc-dhcp3/files/isc-dhcpd.sh.sample index f07d745c3772..3cc86c5e65a3 100644 --- a/net/isc-dhcp3/files/isc-dhcpd.sh.sample +++ b/net/isc-dhcp3/files/isc-dhcpd.sh.sample @@ -2,6 +2,7 @@ # $FreeBSD$ +OPTIONS="" IFACES="SET_THIS" if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then @@ -11,10 +12,10 @@ fi case "$1" in start) - ${PREFIX}/sbin/dhcpd $IFACES + ${PREFIX}/sbin/dhcpd $OPTIONS $IFACES ;; stop) - kill `cat /var/run/dhcpd.pid` + killall dhcpd ;; restart) $0 stop @@ -24,7 +25,7 @@ status) ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)" ;; *) - echo "Usage: `basename $0` {start|stop|restart|status}" >&2 + echo "usage: ${0##*/} {start|stop|restart|status}" >&2 ;; esac diff --git a/net/isc-dhcp3/files/patch-aj b/net/isc-dhcp3/files/patch-aj index 14f7db13ff15..b8a356216c52 100644 --- a/net/isc-dhcp3/files/patch-aj +++ b/net/isc-dhcp3/files/patch-aj @@ -1,43 +1,20 @@ ---- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000 -+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000 -@@ -329,7 +329,7 @@ - #endif +--- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001 ++++ includes/dhcpd.h Fri Jan 26 06:46:12 2001 +@@ -672,7 +672,7 @@ + u_int32_t requested_lease; /* Requested lease time, if user + doesn't configure one. */ + struct string_list *media; /* Possible network media values. */ +- char *script_name; /* Name of config script. */ ++ const char *script_name; /* Name of config script. */ + char *vendor_space_name; /* Name of config script. */ + enum policy bootp_policy; + /* Ignore, accept or prefer BOOTP +@@ -1864,6 +1864,8 @@ + void set_ip_address PROTO ((struct interface_info *, struct in_addr)); - #ifndef CL_DEFAULT_SCRIPT_NAME --# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script" -+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script" - #endif - - #ifndef CL_DEFAULT_REQUESTED_OPTIONS -@@ -771,11 +771,11 @@ - #define _PATH_DHCPD_DB "dhcpd.leases" - #else - #ifndef _PATH_DHCPD_CONF --#define _PATH_DHCPD_CONF "/etc/dhcpd.conf" -+#define _PATH_DHCPD_CONF "!!PREFIX!!/etc/dhcpd.conf" - #endif - - #ifndef _PATH_DHCPD_DB --#define _PATH_DHCPD_DB "/etc/dhcpd.leases" -+#define _PATH_DHCPD_DB "!!PREFIX!!/etc/dhcpd.leases" - #endif - - #ifndef _PATH_DHCPD_PID -@@ -784,7 +784,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_CONF --#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf" -+#define _PATH_DHCLIENT_CONF "!!PREFIX!!/etc/dhclient.conf" - #endif - - #ifndef _PATH_DHCLIENT_PID -@@ -792,7 +792,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_DB --#define _PATH_DHCLIENT_DB "/etc/dhclient.leases" -+#define _PATH_DHCLIENT_DB "!!PREFIX!!/etc/dhclient.leases" - #endif - - #ifndef _PATH_RESOLV_CONF + /* clparse.c */ ++extern const char *client_script_name; ++ + isc_result_t read_client_conf PROTO ((void)); + void read_client_leases PROTO ((void)); + void parse_client_statement PROTO ((struct parse *, struct interface_info *, diff --git a/net/isc-dhcp3/files/patch-clparse.c b/net/isc-dhcp3/files/patch-clparse.c index f2da52a15884..48c125d11094 100644 --- a/net/isc-dhcp3/files/patch-clparse.c +++ b/net/isc-dhcp3/files/patch-clparse.c @@ -1,5 +1,11 @@ ---- client/clparse.c.orig Wed Jul 19 21:13:10 2000 -+++ client/clparse.c Thu Jul 20 21:52:53 2000 -@@ -46 +46 @@ +--- client/clparse.c.orig Thu Jan 25 09:17:17 2001 ++++ client/clparse.c Fri Jan 26 06:11:01 2001 +@@ -50,7 +50,7 @@ + + static TIME parsed_time; + -char client_script_name [] = "/etc/dhclient-script"; -+char client_script_name [] = CL_DEFAULT_SCRIPT_NAME; ++const char *client_script_name = CL_DEFAULT_SCRIPT_NAME; + + struct client_config top_level_config; + diff --git a/net/isc-dhcp3/files/patch-dhclient.8 b/net/isc-dhcp3/files/patch-dhclient.8 index 160c451e445b..2ba9899869c3 100644 --- a/net/isc-dhcp3/files/patch-dhclient.8 +++ b/net/isc-dhcp3/files/patch-dhclient.8 @@ -1,5 +1,5 @@ ---- client/dhclient.8.orig Wed May 10 02:36:03 2000 -+++ client/dhclient.8 Wed May 10 02:39:43 2000 +--- client/dhclient.8.orig Mon May 1 19:11:36 2000 ++++ client/dhclient.8 Fri Jan 26 05:12:37 2001 @@ -34,7 +34,7 @@ .B -q ] @@ -9,15 +9,59 @@ ] [ .B -lf -@@ -170,6 +170,11 @@ - .B -q +@@ -49,6 +49,10 @@ + .I config-file + ] + [ ++.B -sf ++.I script-file ++] ++[ + .B -s + server + ] +@@ -174,17 +178,25 @@ flag prevents any messages other than errors from being printed to the standard error descriptor. -+.PP + .PP +The +.B -1 +flag cause dhclient to try once to get a lease. If it fails, dhclient exits +with exit code two. - .PP ++.PP The DHCP client normally gets its configuration information from .B ETCDIR/dhclient.conf, + its lease database from +-.B DBDIR/dhclient.leases +-and stores its process ID in a file called ++.B DBDIR/dhclient.leases, ++stores its process ID in a file called + .B RUNDIR/dhclient.pid. ++and configure the network interface using ++.B CLIENTBINDIR/dhclient-script. + To specify different names and/or locations for these files, use the + .B -cf, +-.B -lf +-and ++.B -lf, + .B -pf ++and ++.B -sf + flags, respectively, followed by the name of the file. This can be + particularly useful if, for example, + .B DBDIR +@@ -206,10 +218,12 @@ + .SH CONFIGURATION + The syntax of the dhclient.conf(8) file is discussed seperately. + .SH FILES ++.B CLIENTBINDIR/dhclient-script, + .B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid, +-.B DBDIR/dhclient.leases~. ++.B DBDIR/dhclient.leases. + .SH SEE ALSO +-dhcpd(8), dhcrelay(8), dhclient.conf(5), dhclient.leases(5) ++dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5) and ++dhclient.leases(5). + .SH AUTHOR + .B dhclient(8) + has been written for the Internet Software Consortium diff --git a/net/isc-dhcp3/files/patch-dhclient.c b/net/isc-dhcp3/files/patch-dhclient.c index bb43074fbd36..ebbd815ecc5e 100644 --- a/net/isc-dhcp3/files/patch-dhclient.c +++ b/net/isc-dhcp3/files/patch-dhclient.c @@ -1,5 +1,5 @@ ---- client/dhclient.c.orig Thu Sep 14 05:42:01 2000 -+++ client/dhclient.c Wed Sep 27 03:31:33 2000 +--- client/dhclient.c.orig Thu Jan 25 09:18:06 2001 ++++ client/dhclient.c Fri Jan 26 06:15:50 2001 @@ -78,6 +78,7 @@ u_int16_t remote_port; int no_daemon; @@ -8,7 +8,27 @@ static void usage PROTO ((void)); -@@ -176,6 +177,8 @@ +@@ -104,6 +105,7 @@ + int no_dhclient_conf = 0; + int no_dhclient_db = 0; + int no_dhclient_pid = 0; ++ int no_dhclient_script = 0; + char *s; + + #ifdef SYSLOG_4_2 +@@ -159,6 +161,11 @@ + usage (); + path_dhclient_db = argv [i]; + no_dhclient_db = 1; ++ } else if (!strcmp (argv [i], "-sf")) { ++ if (++i == argc) ++ usage (); ++ client_script_name = argv [i]; ++ no_dhclient_script = 1; + } else if (!strcmp (argv [i], "-q")) { + quiet = 1; + quiet_interface_discovery = 1; +@@ -176,6 +183,8 @@ } else if (!strcmp (argv [i], "-w")) { /* do not exit if there are no broadcast interfaces. */ persist = 1; @@ -17,16 +37,32 @@ } else if (argv [i][0] == '-') { usage (); } else { -@@ -417,7 +420,7 @@ +@@ -208,6 +217,9 @@ + if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) { + path_dhclient_pid = s; + } ++ if (!no_dhclient_script && (s = getenv ("PATH_DHCLIENT_SCRIPT"))) { ++ client_script_name = s; ++ } + + /* first kill of any currently running client */ + if (release_mode) { +@@ -423,10 +435,11 @@ log_info (arr); log_info (url); - log_error ("Usage: dhclient [-d] [-D] [-q] [-p ] %s", -+ log_error ("Usage: dhclient [-1] [-d] [-D] [-q] [-p ] %s", ++ log_error ("usage: dhclient [-1] [-d] [-D] [-q] [-p ] %s", "[-s server]"); - log_fatal (" [-lf lease-file] [-pf pid-file]%s", - "[-cf config-file] [interface]"); -@@ -1402,6 +1405,10 @@ +- log_fatal (" [-lf lease-file] [-pf pid-file]%s", +- "[-cf config-file] [interface]"); ++ log_error (" [-cf config-file] [-lf lease-file] %s", ++ "[-pf pid-file] [-sf script-file]"); ++ log_fatal (" [interface]"); + } + + isc_result_t find_class (struct class **c, +@@ -1432,6 +1445,10 @@ /* No leases were available, or what was available didn't work, so tell the shell script that we failed to allocate an address, and try again later. */ diff --git a/net/isc-dhcp3/files/patch-freebsd b/net/isc-dhcp3/files/patch-freebsd index 293aa2a33130..2376cbb7ec40 100644 --- a/net/isc-dhcp3/files/patch-freebsd +++ b/net/isc-dhcp3/files/patch-freebsd @@ -1,5 +1,5 @@ ---- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000 -+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000 +--- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000 ++++ client/scripts/freebsd Sat Jan 27 02:17:01 2001 @@ -1,5 +1,11 @@ #!/bin/sh @@ -55,12 +55,26 @@ hostname $new_host_name fi fi -@@ -105,11 +111,18 @@ +@@ -93,24 +99,31 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh + fi + if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then ifconfig $interface inet $new_ip_address $new_netmask_arg \ $new_broadcast_arg $medium + $LOGGER "New IP Address($interface): $new_ip_address" -+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask" ++ $LOGGER "New Subnet Mask($interface): $new_subnet_mask" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + if [ "$new_routers" != "" ]; then + $LOGGER "New Routers: $new_routers" @@ -70,11 +84,29 @@ route add default $router >/dev/null 2>&1 done if [ "$new_static_routes" != "" ]; then +- set $new_static_routes + $LOGGER "New Static Routes: $new_static_routes" - set $new_static_routes ++ set -- $new_static_routes while [ $# -gt 1 ]; do route add $1 $2 -@@ -161,8 +174,12 @@ + shift; shift +@@ -138,13 +151,13 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \ + |sh >/dev/null 2>&1 + fi + if [ x$alias_ip_address != x ]; then +@@ -161,9 +174,13 @@ fi ifconfig $interface inet $new_ip_address $new_netmask_arg \ $new_broadcast_arg $medium @@ -83,7 +115,37 @@ + $LOGGER "New Broadcast Address($interface): $new_broadcast_address" sleep 1 if [ "$new_routers" != "" ]; then +- set $new_routers + $LOGGER "New Routers: $new_routers" - set $new_routers ++ set -- $new_routers if ping -q -c 1 $1; then if [ x$new_ip_address != x$alias_ip_address ] && \ + [ x$alias_ip_address != x ]; then +@@ -174,9 +191,9 @@ + for router in $new_routers; do + route add default $router >/dev/null 2>&1 + done +- set $new_static_routes ++ set -- $new_static_routes + while [ $# -gt 1 ]; do +- route add $0 $1 ++ route add $1 $2 + shift; shift + done + make_resolv_conf +@@ -188,13 +205,13 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \ + |sh >/dev/null 2>&1 + exit_with_hooks 1 + fi diff --git a/net/isc-dhcp3/files/patch-site.conf b/net/isc-dhcp3/files/patch-site.conf index afe3d066ff89..5efe4195aa73 100644 --- a/net/isc-dhcp3/files/patch-site.conf +++ b/net/isc-dhcp3/files/patch-site.conf @@ -1,23 +1,32 @@ ---- site.conf.orig Wed Jul 7 08:20:10 1999 -+++ site.conf Tue Oct 3 08:59:57 2000 -@@ -1,2 +1,20 @@ +--- site.conf.orig Wed Jul 7 17:20:10 1999 ++++ site.conf Fri Jan 26 06:58:15 2001 +@@ -1,2 +1,29 @@ # Put local site configuration stuff here to override the default # settings in Makefile.conf + +PREFIX ?= /usr/local + -+ETC = $(PREFIX)/etc +BINDIR = $(PREFIX)/sbin +CLIENTBINDIR = $(PREFIX)/sbin -+MANCAT = man +ADMMANDIR = $(PREFIX)/man/man8 +ADMMANEXT = .8 +FFMANDIR = $(PREFIX)/man/man5 +FFMANEXT = .5 +LIBMANDIR = $(PREFIX)/man/man3 +LIBMANEXT = .3 ++MANCAT = man ++# INSTALL = ${INSTALL_DATA} ++# MANINSTALL = ${INSTALL_MAN} ++ETC = $(PREFIX)/etc ++LIBDIR = ${PREFIX}/lib ++INCDIR = ${PREFIX}/include + +DEBUG ?= #none -+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(ETC)/dhclient-script\" ++ ++CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(CLIENTBINDIR)/dhclient-script\" ++ +CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\" ++CFLAGS += -D_PATH_DHCPD_DB=\"$(VARDB)/dhcpd.leases\" ++ +CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\" ++CFLAGS += -D_PATH_DHCLIENT_DB=\"$(VARDB)/dhclient.leases\" diff --git a/net/isc-dhcp3/files/patch-site.h b/net/isc-dhcp3/files/patch-site.h deleted file mode 100644 index c411dd071f23..000000000000 --- a/net/isc-dhcp3/files/patch-site.h +++ /dev/null @@ -1,5 +0,0 @@ ---- includes/site.h.orig Thu Sep 28 11:24:17 2000 -+++ includes/site.h Sat Dec 2 00:46:53 2000 -@@ -159 +159 @@ --/* #define DHCPD_LOG_FACILITY LOG_DAEMON */ -+#define DHCPD_LOG_FACILITY LOG_!!USE_FACILITY!! diff --git a/net/isc-dhcp3/pkg-descr b/net/isc-dhcp3/pkg-descr index 46bdf5ebae8e..ec2d72947025 100644 --- a/net/isc-dhcp3/pkg-descr +++ b/net/isc-dhcp3/pkg-descr @@ -1,16 +1,17 @@ -ISC-DHCP Dynamic Host Configuration Protocol server +The ISC Dynamic Host Configuration Protocol Distribution provides +a freely redistributable reference implementation of all aspects +of the DHCP protocol, through a suite of DHCP tools: -This is a release of the Internet Software Consortium -DHCP Server (ISC dhcpd). In this release, support for the core -DHCP protocol is provided. BOOTP support is also provided for -backwards compatibility. + * A DHCP server + * A DHCP client + * A DHCP relay agent Version 3, Beta 2 of the ISC DHCP Distribution includes the following -features that are new since version 2.0: +features that are new since version 2.0: * DHCP Failover Protocol support * OMAPI, an API for accessing and modifying the DHCP - server and client state. + server and client state. * Conditional behaviour * Storing arbitrary information on leases * Address pools with access control @@ -19,10 +20,12 @@ features that are new since version 2.0: * Relay agent information option support * Dynamic DNS updates * Many bug fixes, performance enhancements, and minor - new DHCP protocol features. + new DHCP protocol features. -A fully-featured implementation of dynamic DNS updates is included in -this release. There are no build dependencies with any BIND version. +Also, a fully-featured implementation of dynamic DNS updates is +included and there are no build dependencies with any BIND version. +Since patch-level 15, a log-facility configuration parameter has +been added, see the manual pages for details. WWW: http://www.isc.org/products/DHCP/ diff --git a/net/isc-dhcp3/pkg-plist b/net/isc-dhcp3/pkg-plist index dc0dc00ce17a..9cca499d267d 100644 --- a/net/isc-dhcp3/pkg-plist +++ b/net/isc-dhcp3/pkg-plist @@ -1,9 +1,8 @@ @comment $FreeBSD$ -etc/dhclient-script -sbin/dhclient -sbin/dhcpd -sbin/dhcrelay +etc/dhclient.conf.sample +etc/dhcpd.conf.sample etc/rc.d/isc-dhcpd.sh.sample +include/dhcpctl.h include/isc/boolean.h include/isc/dst.h include/isc/int.h @@ -11,13 +10,25 @@ include/isc/lang.h include/isc/list.h include/isc/result.h include/isc/types.h -@dirrm include/isc include/omapip/alloc.h include/omapip/buffer.h include/omapip/omapip.h -@dirrm include/omapip -include/dhcpctl.h -lib/libomapi.a lib/libdhcpctl.a -@exec touch /var/db/dhcpd.leases -@exec touch %D/etc/dhclient.conf +lib/libomapi.a +sbin/dhclient +sbin/dhclient-script +sbin/dhcpd +sbin/dhcrelay +share/doc/isc-dhcp3/CHANGES +share/doc/isc-dhcp3/COPYRIGHT +share/doc/isc-dhcp3/README +share/doc/isc-dhcp3/RELNOTES +@dirrm include/isc +@dirrm include/omapip +@dirrm share/doc/isc-dhcp3 +@exec [ -f /var/db/dhclient.leases ] || touch /var/db/dhclient.leases +@unexec [ -s /var/db/dhclient.leases ] || rm -f /var/db/dhclient.leases +@exec [ -f /var/db/dhcpd.leases ] || touch /var/db/dhcpd.leases +@unexec [ -s /var/db/dhcpd.leases ] || rm -f /var/db/dhcpd.leases +@exec [ -f %D/etc/dhclient.conf ] || touch %D/etc/dhclient.conf +@unexec [ -L %D/etc/dhclient.conf -o -s %D/etc/dhclient.conf ] || rm -f %D/etc/dhclient.conf diff --git a/net/isc-dhcp30-server/Makefile b/net/isc-dhcp30-server/Makefile index 0c565a531cd7..d13a14b692c4 100644 --- a/net/isc-dhcp30-server/Makefile +++ b/net/isc-dhcp30-server/Makefile @@ -7,19 +7,16 @@ # PORTNAME= isc-dhcp3 -PORTVERSION= 3.0.b2.11 +PORTVERSION= 3.0.b2.16 CATEGORIES= net MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/ -DISTNAME= dhcp-3.0b2pl${PORTVERSION:S/3.0.b2.//g} +DISTNAME= ${PORTNAME:S/isc-//:S/3/-/}${PORTVERSION:S/.b/b/:R}pl${PORTVERSION:E} -MAINTAINER= ports@FreeBSD.org +MAINTAINER= clefevre@citeweb.net -.if defined(USE_FACILITY) -_USE_FACILITY:= `${ECHO} ${USE_FACILITY} | ${TR} "[:lower:]" "[:upper:]"` -USE_FACILITY= ${_USE_FACILITY} -.else -USE_FACILITY= DAEMON -.endif +# +# Global variables +# HAS_CONFIGURE= yes @@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \ dhcpd.leases.5 MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8 -pre-fetch: -.if ${USE_FACILITY} == "DAEMON" - @${ECHO} "" - @${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:" - @${ECHO} " daemon, local{0-7}" - @${ECHO} " 'daemon' is the default option if one is not defined." - @${ECHO} " Press Control-C and run make clean build LOG_FACILITY=," - @${ECHO} " if you wish to use a different logging facility." - @${ECHO} "" - @sleep 2 +# +# Local variables +# + +PATCH_SUBDIRS= client common dhcpctl minires omapip relay server + +BIN_FILES= dhclient dhcpd dhcrelay +SAMP_FILES= client/dhclient.conf server/dhcpd.conf +RCD_FILES= isc-dhcpd.sh.sample +DOC_FILES= CHANGES COPYRIGHT README RELNOTES +DATA_FILES= dhclient.leases dhcpd.leases +CONF_FILES= dhclient.conf + +BIN_DIR= ${PREFIX}/sbin +ETC_DIR= ${PREFIX}/etc +RCD_DIR= ${PREFIX}/etc/rc.d +DOC_DIR= ${PREFIX}/share/doc/${PORTNAME} +VARDB_DIR= /var/db + +STRIP?= strip + +# +# Post-patch +# + +post-patch: patch-scripts patch-makefiles + +patch-scripts: + @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' \ + ${WRKSRC}/client/scripts/freebsd + +patch-makefiles: +.for subdir in ${PATCH_SUBDIRS} + @${PERL} -pi.fbsd -e \ + 's|^DEBUG[ ]*=|DEBUG ?=|g;s|^CFLAGS[ ]*=|CFLAGS +=|g' \ + ${WRKSRC}/${subdir}/Makefile.dist +.endfor + +# +# Post-install +# + +post-install: strip-binary-files install-startup-files \ + install-doc-files install-sample-files \ + create-data-files create-conf-files + +strip-binary-files: +.for file in ${BIN_FILES} +.if exists({BIN_DIR}/${file}) + @${STRIP} ${BIN_DIR}/${file} +.endif +.endfor + +install-startup-files: +.for file in ${RCD_FILES} + @${INSTALL_SCRIPT} ${FILESDIR}/${file} ${RCD_DIR}/${file} +.endfor + +install-doc-files: +.if !defined(NOPORTDOCS) + @${MKDIR} ${DOC_DIR} +.for file in ${DOC_FILES} + @${INSTALL_DATA} ${WRKSRC}/${file} ${DOC_DIR}/${file} +.endfor .endif -post-patch: - @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h - @${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h - @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/client/scripts/freebsd -.for MF in relay/Makefile.dist server/Makefile.dist client/Makefile.dist common/Makefile.dist dhcpctl/Makefile.dist minires/Makefile.dist omapip/Makefile.dist - @${PERL} -pi.fbsd -e 's|^DEBUG[ ]*=|DEBUG ?=|g ; s|^CFLAGS[ ]*=|CFLAGS +=|g' ${WRKSRC}/${MF} +install-sample-files: +.for file in ${SAMP_FILES} + @${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample .endfor -post-install: - ${TOUCH} /var/db/dhcpd.leases -.for file in dhclient dhcpd dhcrelay - if [ -f ${PREFIX}/sbin/${file} ]; then \ - strip ${PREFIX}/sbin/${file}; \ - fi +create-data-files: +.for file in ${DATA_FILES} +.if !exists(${VARDB_DIR}/${file}) + @${TOUCH} ${VARDB_DIR}/${file} +.endif +.endfor + +create-conf-files: +.for file in ${CONF_FILES} +.if !exists(${ETC_DIR}/${file}) + @${TOUCH} ${ETC_DIR}/${file} +.endif .endfor - ${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \ - ${PREFIX}/etc/rc.d .include diff --git a/net/isc-dhcp30-server/distinfo b/net/isc-dhcp30-server/distinfo index 969f9ab9d973..bdb0966a924d 100644 --- a/net/isc-dhcp30-server/distinfo +++ b/net/isc-dhcp30-server/distinfo @@ -1 +1 @@ -MD5 (dhcp-3.0b2pl11.tar.gz) = 5fd2c97d850c41e6445648a4108b509f +MD5 (dhcp-3.0b2pl16.tar.gz) = 88fb65480a1b66c8d011957ea6c2e138 diff --git a/net/isc-dhcp30-server/files/isc-dhcpd.sh.sample b/net/isc-dhcp30-server/files/isc-dhcpd.sh.sample index f07d745c3772..3cc86c5e65a3 100644 --- a/net/isc-dhcp30-server/files/isc-dhcpd.sh.sample +++ b/net/isc-dhcp30-server/files/isc-dhcpd.sh.sample @@ -2,6 +2,7 @@ # $FreeBSD$ +OPTIONS="" IFACES="SET_THIS" if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then @@ -11,10 +12,10 @@ fi case "$1" in start) - ${PREFIX}/sbin/dhcpd $IFACES + ${PREFIX}/sbin/dhcpd $OPTIONS $IFACES ;; stop) - kill `cat /var/run/dhcpd.pid` + killall dhcpd ;; restart) $0 stop @@ -24,7 +25,7 @@ status) ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)" ;; *) - echo "Usage: `basename $0` {start|stop|restart|status}" >&2 + echo "usage: ${0##*/} {start|stop|restart|status}" >&2 ;; esac diff --git a/net/isc-dhcp30-server/files/patch-aj b/net/isc-dhcp30-server/files/patch-aj index 14f7db13ff15..b8a356216c52 100644 --- a/net/isc-dhcp30-server/files/patch-aj +++ b/net/isc-dhcp30-server/files/patch-aj @@ -1,43 +1,20 @@ ---- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000 -+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000 -@@ -329,7 +329,7 @@ - #endif +--- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001 ++++ includes/dhcpd.h Fri Jan 26 06:46:12 2001 +@@ -672,7 +672,7 @@ + u_int32_t requested_lease; /* Requested lease time, if user + doesn't configure one. */ + struct string_list *media; /* Possible network media values. */ +- char *script_name; /* Name of config script. */ ++ const char *script_name; /* Name of config script. */ + char *vendor_space_name; /* Name of config script. */ + enum policy bootp_policy; + /* Ignore, accept or prefer BOOTP +@@ -1864,6 +1864,8 @@ + void set_ip_address PROTO ((struct interface_info *, struct in_addr)); - #ifndef CL_DEFAULT_SCRIPT_NAME --# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script" -+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script" - #endif - - #ifndef CL_DEFAULT_REQUESTED_OPTIONS -@@ -771,11 +771,11 @@ - #define _PATH_DHCPD_DB "dhcpd.leases" - #else - #ifndef _PATH_DHCPD_CONF --#define _PATH_DHCPD_CONF "/etc/dhcpd.conf" -+#define _PATH_DHCPD_CONF "!!PREFIX!!/etc/dhcpd.conf" - #endif - - #ifndef _PATH_DHCPD_DB --#define _PATH_DHCPD_DB "/etc/dhcpd.leases" -+#define _PATH_DHCPD_DB "!!PREFIX!!/etc/dhcpd.leases" - #endif - - #ifndef _PATH_DHCPD_PID -@@ -784,7 +784,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_CONF --#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf" -+#define _PATH_DHCLIENT_CONF "!!PREFIX!!/etc/dhclient.conf" - #endif - - #ifndef _PATH_DHCLIENT_PID -@@ -792,7 +792,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_DB --#define _PATH_DHCLIENT_DB "/etc/dhclient.leases" -+#define _PATH_DHCLIENT_DB "!!PREFIX!!/etc/dhclient.leases" - #endif - - #ifndef _PATH_RESOLV_CONF + /* clparse.c */ ++extern const char *client_script_name; ++ + isc_result_t read_client_conf PROTO ((void)); + void read_client_leases PROTO ((void)); + void parse_client_statement PROTO ((struct parse *, struct interface_info *, diff --git a/net/isc-dhcp30-server/files/patch-clparse.c b/net/isc-dhcp30-server/files/patch-clparse.c index f2da52a15884..48c125d11094 100644 --- a/net/isc-dhcp30-server/files/patch-clparse.c +++ b/net/isc-dhcp30-server/files/patch-clparse.c @@ -1,5 +1,11 @@ ---- client/clparse.c.orig Wed Jul 19 21:13:10 2000 -+++ client/clparse.c Thu Jul 20 21:52:53 2000 -@@ -46 +46 @@ +--- client/clparse.c.orig Thu Jan 25 09:17:17 2001 ++++ client/clparse.c Fri Jan 26 06:11:01 2001 +@@ -50,7 +50,7 @@ + + static TIME parsed_time; + -char client_script_name [] = "/etc/dhclient-script"; -+char client_script_name [] = CL_DEFAULT_SCRIPT_NAME; ++const char *client_script_name = CL_DEFAULT_SCRIPT_NAME; + + struct client_config top_level_config; + diff --git a/net/isc-dhcp30-server/files/patch-dhclient.8 b/net/isc-dhcp30-server/files/patch-dhclient.8 index 160c451e445b..2ba9899869c3 100644 --- a/net/isc-dhcp30-server/files/patch-dhclient.8 +++ b/net/isc-dhcp30-server/files/patch-dhclient.8 @@ -1,5 +1,5 @@ ---- client/dhclient.8.orig Wed May 10 02:36:03 2000 -+++ client/dhclient.8 Wed May 10 02:39:43 2000 +--- client/dhclient.8.orig Mon May 1 19:11:36 2000 ++++ client/dhclient.8 Fri Jan 26 05:12:37 2001 @@ -34,7 +34,7 @@ .B -q ] @@ -9,15 +9,59 @@ ] [ .B -lf -@@ -170,6 +170,11 @@ - .B -q +@@ -49,6 +49,10 @@ + .I config-file + ] + [ ++.B -sf ++.I script-file ++] ++[ + .B -s + server + ] +@@ -174,17 +178,25 @@ flag prevents any messages other than errors from being printed to the standard error descriptor. -+.PP + .PP +The +.B -1 +flag cause dhclient to try once to get a lease. If it fails, dhclient exits +with exit code two. - .PP ++.PP The DHCP client normally gets its configuration information from .B ETCDIR/dhclient.conf, + its lease database from +-.B DBDIR/dhclient.leases +-and stores its process ID in a file called ++.B DBDIR/dhclient.leases, ++stores its process ID in a file called + .B RUNDIR/dhclient.pid. ++and configure the network interface using ++.B CLIENTBINDIR/dhclient-script. + To specify different names and/or locations for these files, use the + .B -cf, +-.B -lf +-and ++.B -lf, + .B -pf ++and ++.B -sf + flags, respectively, followed by the name of the file. This can be + particularly useful if, for example, + .B DBDIR +@@ -206,10 +218,12 @@ + .SH CONFIGURATION + The syntax of the dhclient.conf(8) file is discussed seperately. + .SH FILES ++.B CLIENTBINDIR/dhclient-script, + .B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid, +-.B DBDIR/dhclient.leases~. ++.B DBDIR/dhclient.leases. + .SH SEE ALSO +-dhcpd(8), dhcrelay(8), dhclient.conf(5), dhclient.leases(5) ++dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5) and ++dhclient.leases(5). + .SH AUTHOR + .B dhclient(8) + has been written for the Internet Software Consortium diff --git a/net/isc-dhcp30-server/files/patch-dhclient.c b/net/isc-dhcp30-server/files/patch-dhclient.c index bb43074fbd36..ebbd815ecc5e 100644 --- a/net/isc-dhcp30-server/files/patch-dhclient.c +++ b/net/isc-dhcp30-server/files/patch-dhclient.c @@ -1,5 +1,5 @@ ---- client/dhclient.c.orig Thu Sep 14 05:42:01 2000 -+++ client/dhclient.c Wed Sep 27 03:31:33 2000 +--- client/dhclient.c.orig Thu Jan 25 09:18:06 2001 ++++ client/dhclient.c Fri Jan 26 06:15:50 2001 @@ -78,6 +78,7 @@ u_int16_t remote_port; int no_daemon; @@ -8,7 +8,27 @@ static void usage PROTO ((void)); -@@ -176,6 +177,8 @@ +@@ -104,6 +105,7 @@ + int no_dhclient_conf = 0; + int no_dhclient_db = 0; + int no_dhclient_pid = 0; ++ int no_dhclient_script = 0; + char *s; + + #ifdef SYSLOG_4_2 +@@ -159,6 +161,11 @@ + usage (); + path_dhclient_db = argv [i]; + no_dhclient_db = 1; ++ } else if (!strcmp (argv [i], "-sf")) { ++ if (++i == argc) ++ usage (); ++ client_script_name = argv [i]; ++ no_dhclient_script = 1; + } else if (!strcmp (argv [i], "-q")) { + quiet = 1; + quiet_interface_discovery = 1; +@@ -176,6 +183,8 @@ } else if (!strcmp (argv [i], "-w")) { /* do not exit if there are no broadcast interfaces. */ persist = 1; @@ -17,16 +37,32 @@ } else if (argv [i][0] == '-') { usage (); } else { -@@ -417,7 +420,7 @@ +@@ -208,6 +217,9 @@ + if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) { + path_dhclient_pid = s; + } ++ if (!no_dhclient_script && (s = getenv ("PATH_DHCLIENT_SCRIPT"))) { ++ client_script_name = s; ++ } + + /* first kill of any currently running client */ + if (release_mode) { +@@ -423,10 +435,11 @@ log_info (arr); log_info (url); - log_error ("Usage: dhclient [-d] [-D] [-q] [-p ] %s", -+ log_error ("Usage: dhclient [-1] [-d] [-D] [-q] [-p ] %s", ++ log_error ("usage: dhclient [-1] [-d] [-D] [-q] [-p ] %s", "[-s server]"); - log_fatal (" [-lf lease-file] [-pf pid-file]%s", - "[-cf config-file] [interface]"); -@@ -1402,6 +1405,10 @@ +- log_fatal (" [-lf lease-file] [-pf pid-file]%s", +- "[-cf config-file] [interface]"); ++ log_error (" [-cf config-file] [-lf lease-file] %s", ++ "[-pf pid-file] [-sf script-file]"); ++ log_fatal (" [interface]"); + } + + isc_result_t find_class (struct class **c, +@@ -1432,6 +1445,10 @@ /* No leases were available, or what was available didn't work, so tell the shell script that we failed to allocate an address, and try again later. */ diff --git a/net/isc-dhcp30-server/files/patch-freebsd b/net/isc-dhcp30-server/files/patch-freebsd index 293aa2a33130..2376cbb7ec40 100644 --- a/net/isc-dhcp30-server/files/patch-freebsd +++ b/net/isc-dhcp30-server/files/patch-freebsd @@ -1,5 +1,5 @@ ---- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000 -+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000 +--- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000 ++++ client/scripts/freebsd Sat Jan 27 02:17:01 2001 @@ -1,5 +1,11 @@ #!/bin/sh @@ -55,12 +55,26 @@ hostname $new_host_name fi fi -@@ -105,11 +111,18 @@ +@@ -93,24 +99,31 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh + fi + if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then ifconfig $interface inet $new_ip_address $new_netmask_arg \ $new_broadcast_arg $medium + $LOGGER "New IP Address($interface): $new_ip_address" -+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask" ++ $LOGGER "New Subnet Mask($interface): $new_subnet_mask" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + if [ "$new_routers" != "" ]; then + $LOGGER "New Routers: $new_routers" @@ -70,11 +84,29 @@ route add default $router >/dev/null 2>&1 done if [ "$new_static_routes" != "" ]; then +- set $new_static_routes + $LOGGER "New Static Routes: $new_static_routes" - set $new_static_routes ++ set -- $new_static_routes while [ $# -gt 1 ]; do route add $1 $2 -@@ -161,8 +174,12 @@ + shift; shift +@@ -138,13 +151,13 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \ + |sh >/dev/null 2>&1 + fi + if [ x$alias_ip_address != x ]; then +@@ -161,9 +174,13 @@ fi ifconfig $interface inet $new_ip_address $new_netmask_arg \ $new_broadcast_arg $medium @@ -83,7 +115,37 @@ + $LOGGER "New Broadcast Address($interface): $new_broadcast_address" sleep 1 if [ "$new_routers" != "" ]; then +- set $new_routers + $LOGGER "New Routers: $new_routers" - set $new_routers ++ set -- $new_routers if ping -q -c 1 $1; then if [ x$new_ip_address != x$alias_ip_address ] && \ + [ x$alias_ip_address != x ]; then +@@ -174,9 +191,9 @@ + for router in $new_routers; do + route add default $router >/dev/null 2>&1 + done +- set $new_static_routes ++ set -- $new_static_routes + while [ $# -gt 1 ]; do +- route add $0 $1 ++ route add $1 $2 + shift; shift + done + make_resolv_conf +@@ -188,13 +205,13 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \ + |sh >/dev/null 2>&1 + exit_with_hooks 1 + fi diff --git a/net/isc-dhcp30-server/files/patch-site.conf b/net/isc-dhcp30-server/files/patch-site.conf index afe3d066ff89..5efe4195aa73 100644 --- a/net/isc-dhcp30-server/files/patch-site.conf +++ b/net/isc-dhcp30-server/files/patch-site.conf @@ -1,23 +1,32 @@ ---- site.conf.orig Wed Jul 7 08:20:10 1999 -+++ site.conf Tue Oct 3 08:59:57 2000 -@@ -1,2 +1,20 @@ +--- site.conf.orig Wed Jul 7 17:20:10 1999 ++++ site.conf Fri Jan 26 06:58:15 2001 +@@ -1,2 +1,29 @@ # Put local site configuration stuff here to override the default # settings in Makefile.conf + +PREFIX ?= /usr/local + -+ETC = $(PREFIX)/etc +BINDIR = $(PREFIX)/sbin +CLIENTBINDIR = $(PREFIX)/sbin -+MANCAT = man +ADMMANDIR = $(PREFIX)/man/man8 +ADMMANEXT = .8 +FFMANDIR = $(PREFIX)/man/man5 +FFMANEXT = .5 +LIBMANDIR = $(PREFIX)/man/man3 +LIBMANEXT = .3 ++MANCAT = man ++# INSTALL = ${INSTALL_DATA} ++# MANINSTALL = ${INSTALL_MAN} ++ETC = $(PREFIX)/etc ++LIBDIR = ${PREFIX}/lib ++INCDIR = ${PREFIX}/include + +DEBUG ?= #none -+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(ETC)/dhclient-script\" ++ ++CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(CLIENTBINDIR)/dhclient-script\" ++ +CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\" ++CFLAGS += -D_PATH_DHCPD_DB=\"$(VARDB)/dhcpd.leases\" ++ +CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\" ++CFLAGS += -D_PATH_DHCLIENT_DB=\"$(VARDB)/dhclient.leases\" diff --git a/net/isc-dhcp30-server/files/patch-site.h b/net/isc-dhcp30-server/files/patch-site.h deleted file mode 100644 index c411dd071f23..000000000000 --- a/net/isc-dhcp30-server/files/patch-site.h +++ /dev/null @@ -1,5 +0,0 @@ ---- includes/site.h.orig Thu Sep 28 11:24:17 2000 -+++ includes/site.h Sat Dec 2 00:46:53 2000 -@@ -159 +159 @@ --/* #define DHCPD_LOG_FACILITY LOG_DAEMON */ -+#define DHCPD_LOG_FACILITY LOG_!!USE_FACILITY!! diff --git a/net/isc-dhcp30-server/pkg-descr b/net/isc-dhcp30-server/pkg-descr index 46bdf5ebae8e..ec2d72947025 100644 --- a/net/isc-dhcp30-server/pkg-descr +++ b/net/isc-dhcp30-server/pkg-descr @@ -1,16 +1,17 @@ -ISC-DHCP Dynamic Host Configuration Protocol server +The ISC Dynamic Host Configuration Protocol Distribution provides +a freely redistributable reference implementation of all aspects +of the DHCP protocol, through a suite of DHCP tools: -This is a release of the Internet Software Consortium -DHCP Server (ISC dhcpd). In this release, support for the core -DHCP protocol is provided. BOOTP support is also provided for -backwards compatibility. + * A DHCP server + * A DHCP client + * A DHCP relay agent Version 3, Beta 2 of the ISC DHCP Distribution includes the following -features that are new since version 2.0: +features that are new since version 2.0: * DHCP Failover Protocol support * OMAPI, an API for accessing and modifying the DHCP - server and client state. + server and client state. * Conditional behaviour * Storing arbitrary information on leases * Address pools with access control @@ -19,10 +20,12 @@ features that are new since version 2.0: * Relay agent information option support * Dynamic DNS updates * Many bug fixes, performance enhancements, and minor - new DHCP protocol features. + new DHCP protocol features. -A fully-featured implementation of dynamic DNS updates is included in -this release. There are no build dependencies with any BIND version. +Also, a fully-featured implementation of dynamic DNS updates is +included and there are no build dependencies with any BIND version. +Since patch-level 15, a log-facility configuration parameter has +been added, see the manual pages for details. WWW: http://www.isc.org/products/DHCP/ diff --git a/net/isc-dhcp30-server/pkg-plist b/net/isc-dhcp30-server/pkg-plist index dc0dc00ce17a..9cca499d267d 100644 --- a/net/isc-dhcp30-server/pkg-plist +++ b/net/isc-dhcp30-server/pkg-plist @@ -1,9 +1,8 @@ @comment $FreeBSD$ -etc/dhclient-script -sbin/dhclient -sbin/dhcpd -sbin/dhcrelay +etc/dhclient.conf.sample +etc/dhcpd.conf.sample etc/rc.d/isc-dhcpd.sh.sample +include/dhcpctl.h include/isc/boolean.h include/isc/dst.h include/isc/int.h @@ -11,13 +10,25 @@ include/isc/lang.h include/isc/list.h include/isc/result.h include/isc/types.h -@dirrm include/isc include/omapip/alloc.h include/omapip/buffer.h include/omapip/omapip.h -@dirrm include/omapip -include/dhcpctl.h -lib/libomapi.a lib/libdhcpctl.a -@exec touch /var/db/dhcpd.leases -@exec touch %D/etc/dhclient.conf +lib/libomapi.a +sbin/dhclient +sbin/dhclient-script +sbin/dhcpd +sbin/dhcrelay +share/doc/isc-dhcp3/CHANGES +share/doc/isc-dhcp3/COPYRIGHT +share/doc/isc-dhcp3/README +share/doc/isc-dhcp3/RELNOTES +@dirrm include/isc +@dirrm include/omapip +@dirrm share/doc/isc-dhcp3 +@exec [ -f /var/db/dhclient.leases ] || touch /var/db/dhclient.leases +@unexec [ -s /var/db/dhclient.leases ] || rm -f /var/db/dhclient.leases +@exec [ -f /var/db/dhcpd.leases ] || touch /var/db/dhcpd.leases +@unexec [ -s /var/db/dhcpd.leases ] || rm -f /var/db/dhcpd.leases +@exec [ -f %D/etc/dhclient.conf ] || touch %D/etc/dhclient.conf +@unexec [ -L %D/etc/dhclient.conf -o -s %D/etc/dhclient.conf ] || rm -f %D/etc/dhclient.conf diff --git a/net/isc-dhcp31-server/Makefile b/net/isc-dhcp31-server/Makefile index 0c565a531cd7..d13a14b692c4 100644 --- a/net/isc-dhcp31-server/Makefile +++ b/net/isc-dhcp31-server/Makefile @@ -7,19 +7,16 @@ # PORTNAME= isc-dhcp3 -PORTVERSION= 3.0.b2.11 +PORTVERSION= 3.0.b2.16 CATEGORIES= net MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/ -DISTNAME= dhcp-3.0b2pl${PORTVERSION:S/3.0.b2.//g} +DISTNAME= ${PORTNAME:S/isc-//:S/3/-/}${PORTVERSION:S/.b/b/:R}pl${PORTVERSION:E} -MAINTAINER= ports@FreeBSD.org +MAINTAINER= clefevre@citeweb.net -.if defined(USE_FACILITY) -_USE_FACILITY:= `${ECHO} ${USE_FACILITY} | ${TR} "[:lower:]" "[:upper:]"` -USE_FACILITY= ${_USE_FACILITY} -.else -USE_FACILITY= DAEMON -.endif +# +# Global variables +# HAS_CONFIGURE= yes @@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \ dhcpd.leases.5 MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8 -pre-fetch: -.if ${USE_FACILITY} == "DAEMON" - @${ECHO} "" - @${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:" - @${ECHO} " daemon, local{0-7}" - @${ECHO} " 'daemon' is the default option if one is not defined." - @${ECHO} " Press Control-C and run make clean build LOG_FACILITY=," - @${ECHO} " if you wish to use a different logging facility." - @${ECHO} "" - @sleep 2 +# +# Local variables +# + +PATCH_SUBDIRS= client common dhcpctl minires omapip relay server + +BIN_FILES= dhclient dhcpd dhcrelay +SAMP_FILES= client/dhclient.conf server/dhcpd.conf +RCD_FILES= isc-dhcpd.sh.sample +DOC_FILES= CHANGES COPYRIGHT README RELNOTES +DATA_FILES= dhclient.leases dhcpd.leases +CONF_FILES= dhclient.conf + +BIN_DIR= ${PREFIX}/sbin +ETC_DIR= ${PREFIX}/etc +RCD_DIR= ${PREFIX}/etc/rc.d +DOC_DIR= ${PREFIX}/share/doc/${PORTNAME} +VARDB_DIR= /var/db + +STRIP?= strip + +# +# Post-patch +# + +post-patch: patch-scripts patch-makefiles + +patch-scripts: + @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' \ + ${WRKSRC}/client/scripts/freebsd + +patch-makefiles: +.for subdir in ${PATCH_SUBDIRS} + @${PERL} -pi.fbsd -e \ + 's|^DEBUG[ ]*=|DEBUG ?=|g;s|^CFLAGS[ ]*=|CFLAGS +=|g' \ + ${WRKSRC}/${subdir}/Makefile.dist +.endfor + +# +# Post-install +# + +post-install: strip-binary-files install-startup-files \ + install-doc-files install-sample-files \ + create-data-files create-conf-files + +strip-binary-files: +.for file in ${BIN_FILES} +.if exists({BIN_DIR}/${file}) + @${STRIP} ${BIN_DIR}/${file} +.endif +.endfor + +install-startup-files: +.for file in ${RCD_FILES} + @${INSTALL_SCRIPT} ${FILESDIR}/${file} ${RCD_DIR}/${file} +.endfor + +install-doc-files: +.if !defined(NOPORTDOCS) + @${MKDIR} ${DOC_DIR} +.for file in ${DOC_FILES} + @${INSTALL_DATA} ${WRKSRC}/${file} ${DOC_DIR}/${file} +.endfor .endif -post-patch: - @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h - @${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h - @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/client/scripts/freebsd -.for MF in relay/Makefile.dist server/Makefile.dist client/Makefile.dist common/Makefile.dist dhcpctl/Makefile.dist minires/Makefile.dist omapip/Makefile.dist - @${PERL} -pi.fbsd -e 's|^DEBUG[ ]*=|DEBUG ?=|g ; s|^CFLAGS[ ]*=|CFLAGS +=|g' ${WRKSRC}/${MF} +install-sample-files: +.for file in ${SAMP_FILES} + @${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample .endfor -post-install: - ${TOUCH} /var/db/dhcpd.leases -.for file in dhclient dhcpd dhcrelay - if [ -f ${PREFIX}/sbin/${file} ]; then \ - strip ${PREFIX}/sbin/${file}; \ - fi +create-data-files: +.for file in ${DATA_FILES} +.if !exists(${VARDB_DIR}/${file}) + @${TOUCH} ${VARDB_DIR}/${file} +.endif +.endfor + +create-conf-files: +.for file in ${CONF_FILES} +.if !exists(${ETC_DIR}/${file}) + @${TOUCH} ${ETC_DIR}/${file} +.endif .endfor - ${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \ - ${PREFIX}/etc/rc.d .include diff --git a/net/isc-dhcp31-server/distinfo b/net/isc-dhcp31-server/distinfo index 969f9ab9d973..bdb0966a924d 100644 --- a/net/isc-dhcp31-server/distinfo +++ b/net/isc-dhcp31-server/distinfo @@ -1 +1 @@ -MD5 (dhcp-3.0b2pl11.tar.gz) = 5fd2c97d850c41e6445648a4108b509f +MD5 (dhcp-3.0b2pl16.tar.gz) = 88fb65480a1b66c8d011957ea6c2e138 diff --git a/net/isc-dhcp31-server/files/isc-dhcpd.sh.sample b/net/isc-dhcp31-server/files/isc-dhcpd.sh.sample index f07d745c3772..3cc86c5e65a3 100644 --- a/net/isc-dhcp31-server/files/isc-dhcpd.sh.sample +++ b/net/isc-dhcp31-server/files/isc-dhcpd.sh.sample @@ -2,6 +2,7 @@ # $FreeBSD$ +OPTIONS="" IFACES="SET_THIS" if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then @@ -11,10 +12,10 @@ fi case "$1" in start) - ${PREFIX}/sbin/dhcpd $IFACES + ${PREFIX}/sbin/dhcpd $OPTIONS $IFACES ;; stop) - kill `cat /var/run/dhcpd.pid` + killall dhcpd ;; restart) $0 stop @@ -24,7 +25,7 @@ status) ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)" ;; *) - echo "Usage: `basename $0` {start|stop|restart|status}" >&2 + echo "usage: ${0##*/} {start|stop|restart|status}" >&2 ;; esac diff --git a/net/isc-dhcp31-server/files/patch-aj b/net/isc-dhcp31-server/files/patch-aj index 14f7db13ff15..b8a356216c52 100644 --- a/net/isc-dhcp31-server/files/patch-aj +++ b/net/isc-dhcp31-server/files/patch-aj @@ -1,43 +1,20 @@ ---- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000 -+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000 -@@ -329,7 +329,7 @@ - #endif +--- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001 ++++ includes/dhcpd.h Fri Jan 26 06:46:12 2001 +@@ -672,7 +672,7 @@ + u_int32_t requested_lease; /* Requested lease time, if user + doesn't configure one. */ + struct string_list *media; /* Possible network media values. */ +- char *script_name; /* Name of config script. */ ++ const char *script_name; /* Name of config script. */ + char *vendor_space_name; /* Name of config script. */ + enum policy bootp_policy; + /* Ignore, accept or prefer BOOTP +@@ -1864,6 +1864,8 @@ + void set_ip_address PROTO ((struct interface_info *, struct in_addr)); - #ifndef CL_DEFAULT_SCRIPT_NAME --# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script" -+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script" - #endif - - #ifndef CL_DEFAULT_REQUESTED_OPTIONS -@@ -771,11 +771,11 @@ - #define _PATH_DHCPD_DB "dhcpd.leases" - #else - #ifndef _PATH_DHCPD_CONF --#define _PATH_DHCPD_CONF "/etc/dhcpd.conf" -+#define _PATH_DHCPD_CONF "!!PREFIX!!/etc/dhcpd.conf" - #endif - - #ifndef _PATH_DHCPD_DB --#define _PATH_DHCPD_DB "/etc/dhcpd.leases" -+#define _PATH_DHCPD_DB "!!PREFIX!!/etc/dhcpd.leases" - #endif - - #ifndef _PATH_DHCPD_PID -@@ -784,7 +784,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_CONF --#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf" -+#define _PATH_DHCLIENT_CONF "!!PREFIX!!/etc/dhclient.conf" - #endif - - #ifndef _PATH_DHCLIENT_PID -@@ -792,7 +792,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_DB --#define _PATH_DHCLIENT_DB "/etc/dhclient.leases" -+#define _PATH_DHCLIENT_DB "!!PREFIX!!/etc/dhclient.leases" - #endif - - #ifndef _PATH_RESOLV_CONF + /* clparse.c */ ++extern const char *client_script_name; ++ + isc_result_t read_client_conf PROTO ((void)); + void read_client_leases PROTO ((void)); + void parse_client_statement PROTO ((struct parse *, struct interface_info *, diff --git a/net/isc-dhcp31-server/files/patch-clparse.c b/net/isc-dhcp31-server/files/patch-clparse.c index f2da52a15884..48c125d11094 100644 --- a/net/isc-dhcp31-server/files/patch-clparse.c +++ b/net/isc-dhcp31-server/files/patch-clparse.c @@ -1,5 +1,11 @@ ---- client/clparse.c.orig Wed Jul 19 21:13:10 2000 -+++ client/clparse.c Thu Jul 20 21:52:53 2000 -@@ -46 +46 @@ +--- client/clparse.c.orig Thu Jan 25 09:17:17 2001 ++++ client/clparse.c Fri Jan 26 06:11:01 2001 +@@ -50,7 +50,7 @@ + + static TIME parsed_time; + -char client_script_name [] = "/etc/dhclient-script"; -+char client_script_name [] = CL_DEFAULT_SCRIPT_NAME; ++const char *client_script_name = CL_DEFAULT_SCRIPT_NAME; + + struct client_config top_level_config; + diff --git a/net/isc-dhcp31-server/files/patch-dhclient.8 b/net/isc-dhcp31-server/files/patch-dhclient.8 index 160c451e445b..2ba9899869c3 100644 --- a/net/isc-dhcp31-server/files/patch-dhclient.8 +++ b/net/isc-dhcp31-server/files/patch-dhclient.8 @@ -1,5 +1,5 @@ ---- client/dhclient.8.orig Wed May 10 02:36:03 2000 -+++ client/dhclient.8 Wed May 10 02:39:43 2000 +--- client/dhclient.8.orig Mon May 1 19:11:36 2000 ++++ client/dhclient.8 Fri Jan 26 05:12:37 2001 @@ -34,7 +34,7 @@ .B -q ] @@ -9,15 +9,59 @@ ] [ .B -lf -@@ -170,6 +170,11 @@ - .B -q +@@ -49,6 +49,10 @@ + .I config-file + ] + [ ++.B -sf ++.I script-file ++] ++[ + .B -s + server + ] +@@ -174,17 +178,25 @@ flag prevents any messages other than errors from being printed to the standard error descriptor. -+.PP + .PP +The +.B -1 +flag cause dhclient to try once to get a lease. If it fails, dhclient exits +with exit code two. - .PP ++.PP The DHCP client normally gets its configuration information from .B ETCDIR/dhclient.conf, + its lease database from +-.B DBDIR/dhclient.leases +-and stores its process ID in a file called ++.B DBDIR/dhclient.leases, ++stores its process ID in a file called + .B RUNDIR/dhclient.pid. ++and configure the network interface using ++.B CLIENTBINDIR/dhclient-script. + To specify different names and/or locations for these files, use the + .B -cf, +-.B -lf +-and ++.B -lf, + .B -pf ++and ++.B -sf + flags, respectively, followed by the name of the file. This can be + particularly useful if, for example, + .B DBDIR +@@ -206,10 +218,12 @@ + .SH CONFIGURATION + The syntax of the dhclient.conf(8) file is discussed seperately. + .SH FILES ++.B CLIENTBINDIR/dhclient-script, + .B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid, +-.B DBDIR/dhclient.leases~. ++.B DBDIR/dhclient.leases. + .SH SEE ALSO +-dhcpd(8), dhcrelay(8), dhclient.conf(5), dhclient.leases(5) ++dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5) and ++dhclient.leases(5). + .SH AUTHOR + .B dhclient(8) + has been written for the Internet Software Consortium diff --git a/net/isc-dhcp31-server/files/patch-dhclient.c b/net/isc-dhcp31-server/files/patch-dhclient.c index bb43074fbd36..ebbd815ecc5e 100644 --- a/net/isc-dhcp31-server/files/patch-dhclient.c +++ b/net/isc-dhcp31-server/files/patch-dhclient.c @@ -1,5 +1,5 @@ ---- client/dhclient.c.orig Thu Sep 14 05:42:01 2000 -+++ client/dhclient.c Wed Sep 27 03:31:33 2000 +--- client/dhclient.c.orig Thu Jan 25 09:18:06 2001 ++++ client/dhclient.c Fri Jan 26 06:15:50 2001 @@ -78,6 +78,7 @@ u_int16_t remote_port; int no_daemon; @@ -8,7 +8,27 @@ static void usage PROTO ((void)); -@@ -176,6 +177,8 @@ +@@ -104,6 +105,7 @@ + int no_dhclient_conf = 0; + int no_dhclient_db = 0; + int no_dhclient_pid = 0; ++ int no_dhclient_script = 0; + char *s; + + #ifdef SYSLOG_4_2 +@@ -159,6 +161,11 @@ + usage (); + path_dhclient_db = argv [i]; + no_dhclient_db = 1; ++ } else if (!strcmp (argv [i], "-sf")) { ++ if (++i == argc) ++ usage (); ++ client_script_name = argv [i]; ++ no_dhclient_script = 1; + } else if (!strcmp (argv [i], "-q")) { + quiet = 1; + quiet_interface_discovery = 1; +@@ -176,6 +183,8 @@ } else if (!strcmp (argv [i], "-w")) { /* do not exit if there are no broadcast interfaces. */ persist = 1; @@ -17,16 +37,32 @@ } else if (argv [i][0] == '-') { usage (); } else { -@@ -417,7 +420,7 @@ +@@ -208,6 +217,9 @@ + if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) { + path_dhclient_pid = s; + } ++ if (!no_dhclient_script && (s = getenv ("PATH_DHCLIENT_SCRIPT"))) { ++ client_script_name = s; ++ } + + /* first kill of any currently running client */ + if (release_mode) { +@@ -423,10 +435,11 @@ log_info (arr); log_info (url); - log_error ("Usage: dhclient [-d] [-D] [-q] [-p ] %s", -+ log_error ("Usage: dhclient [-1] [-d] [-D] [-q] [-p ] %s", ++ log_error ("usage: dhclient [-1] [-d] [-D] [-q] [-p ] %s", "[-s server]"); - log_fatal (" [-lf lease-file] [-pf pid-file]%s", - "[-cf config-file] [interface]"); -@@ -1402,6 +1405,10 @@ +- log_fatal (" [-lf lease-file] [-pf pid-file]%s", +- "[-cf config-file] [interface]"); ++ log_error (" [-cf config-file] [-lf lease-file] %s", ++ "[-pf pid-file] [-sf script-file]"); ++ log_fatal (" [interface]"); + } + + isc_result_t find_class (struct class **c, +@@ -1432,6 +1445,10 @@ /* No leases were available, or what was available didn't work, so tell the shell script that we failed to allocate an address, and try again later. */ diff --git a/net/isc-dhcp31-server/files/patch-freebsd b/net/isc-dhcp31-server/files/patch-freebsd index 293aa2a33130..2376cbb7ec40 100644 --- a/net/isc-dhcp31-server/files/patch-freebsd +++ b/net/isc-dhcp31-server/files/patch-freebsd @@ -1,5 +1,5 @@ ---- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000 -+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000 +--- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000 ++++ client/scripts/freebsd Sat Jan 27 02:17:01 2001 @@ -1,5 +1,11 @@ #!/bin/sh @@ -55,12 +55,26 @@ hostname $new_host_name fi fi -@@ -105,11 +111,18 @@ +@@ -93,24 +99,31 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh + fi + if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then ifconfig $interface inet $new_ip_address $new_netmask_arg \ $new_broadcast_arg $medium + $LOGGER "New IP Address($interface): $new_ip_address" -+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask" ++ $LOGGER "New Subnet Mask($interface): $new_subnet_mask" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + if [ "$new_routers" != "" ]; then + $LOGGER "New Routers: $new_routers" @@ -70,11 +84,29 @@ route add default $router >/dev/null 2>&1 done if [ "$new_static_routes" != "" ]; then +- set $new_static_routes + $LOGGER "New Static Routes: $new_static_routes" - set $new_static_routes ++ set -- $new_static_routes while [ $# -gt 1 ]; do route add $1 $2 -@@ -161,8 +174,12 @@ + shift; shift +@@ -138,13 +151,13 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \ + |sh >/dev/null 2>&1 + fi + if [ x$alias_ip_address != x ]; then +@@ -161,9 +174,13 @@ fi ifconfig $interface inet $new_ip_address $new_netmask_arg \ $new_broadcast_arg $medium @@ -83,7 +115,37 @@ + $LOGGER "New Broadcast Address($interface): $new_broadcast_address" sleep 1 if [ "$new_routers" != "" ]; then +- set $new_routers + $LOGGER "New Routers: $new_routers" - set $new_routers ++ set -- $new_routers if ping -q -c 1 $1; then if [ x$new_ip_address != x$alias_ip_address ] && \ + [ x$alias_ip_address != x ]; then +@@ -174,9 +191,9 @@ + for router in $new_routers; do + route add default $router >/dev/null 2>&1 + done +- set $new_static_routes ++ set -- $new_static_routes + while [ $# -gt 1 ]; do +- route add $0 $1 ++ route add $1 $2 + shift; shift + done + make_resolv_conf +@@ -188,13 +205,13 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \ + |sh >/dev/null 2>&1 + exit_with_hooks 1 + fi diff --git a/net/isc-dhcp31-server/files/patch-site.conf b/net/isc-dhcp31-server/files/patch-site.conf index afe3d066ff89..5efe4195aa73 100644 --- a/net/isc-dhcp31-server/files/patch-site.conf +++ b/net/isc-dhcp31-server/files/patch-site.conf @@ -1,23 +1,32 @@ ---- site.conf.orig Wed Jul 7 08:20:10 1999 -+++ site.conf Tue Oct 3 08:59:57 2000 -@@ -1,2 +1,20 @@ +--- site.conf.orig Wed Jul 7 17:20:10 1999 ++++ site.conf Fri Jan 26 06:58:15 2001 +@@ -1,2 +1,29 @@ # Put local site configuration stuff here to override the default # settings in Makefile.conf + +PREFIX ?= /usr/local + -+ETC = $(PREFIX)/etc +BINDIR = $(PREFIX)/sbin +CLIENTBINDIR = $(PREFIX)/sbin -+MANCAT = man +ADMMANDIR = $(PREFIX)/man/man8 +ADMMANEXT = .8 +FFMANDIR = $(PREFIX)/man/man5 +FFMANEXT = .5 +LIBMANDIR = $(PREFIX)/man/man3 +LIBMANEXT = .3 ++MANCAT = man ++# INSTALL = ${INSTALL_DATA} ++# MANINSTALL = ${INSTALL_MAN} ++ETC = $(PREFIX)/etc ++LIBDIR = ${PREFIX}/lib ++INCDIR = ${PREFIX}/include + +DEBUG ?= #none -+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(ETC)/dhclient-script\" ++ ++CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(CLIENTBINDIR)/dhclient-script\" ++ +CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\" ++CFLAGS += -D_PATH_DHCPD_DB=\"$(VARDB)/dhcpd.leases\" ++ +CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\" ++CFLAGS += -D_PATH_DHCLIENT_DB=\"$(VARDB)/dhclient.leases\" diff --git a/net/isc-dhcp31-server/files/patch-site.h b/net/isc-dhcp31-server/files/patch-site.h deleted file mode 100644 index c411dd071f23..000000000000 --- a/net/isc-dhcp31-server/files/patch-site.h +++ /dev/null @@ -1,5 +0,0 @@ ---- includes/site.h.orig Thu Sep 28 11:24:17 2000 -+++ includes/site.h Sat Dec 2 00:46:53 2000 -@@ -159 +159 @@ --/* #define DHCPD_LOG_FACILITY LOG_DAEMON */ -+#define DHCPD_LOG_FACILITY LOG_!!USE_FACILITY!! diff --git a/net/isc-dhcp31-server/pkg-descr b/net/isc-dhcp31-server/pkg-descr index 46bdf5ebae8e..ec2d72947025 100644 --- a/net/isc-dhcp31-server/pkg-descr +++ b/net/isc-dhcp31-server/pkg-descr @@ -1,16 +1,17 @@ -ISC-DHCP Dynamic Host Configuration Protocol server +The ISC Dynamic Host Configuration Protocol Distribution provides +a freely redistributable reference implementation of all aspects +of the DHCP protocol, through a suite of DHCP tools: -This is a release of the Internet Software Consortium -DHCP Server (ISC dhcpd). In this release, support for the core -DHCP protocol is provided. BOOTP support is also provided for -backwards compatibility. + * A DHCP server + * A DHCP client + * A DHCP relay agent Version 3, Beta 2 of the ISC DHCP Distribution includes the following -features that are new since version 2.0: +features that are new since version 2.0: * DHCP Failover Protocol support * OMAPI, an API for accessing and modifying the DHCP - server and client state. + server and client state. * Conditional behaviour * Storing arbitrary information on leases * Address pools with access control @@ -19,10 +20,12 @@ features that are new since version 2.0: * Relay agent information option support * Dynamic DNS updates * Many bug fixes, performance enhancements, and minor - new DHCP protocol features. + new DHCP protocol features. -A fully-featured implementation of dynamic DNS updates is included in -this release. There are no build dependencies with any BIND version. +Also, a fully-featured implementation of dynamic DNS updates is +included and there are no build dependencies with any BIND version. +Since patch-level 15, a log-facility configuration parameter has +been added, see the manual pages for details. WWW: http://www.isc.org/products/DHCP/ diff --git a/net/isc-dhcp31-server/pkg-plist b/net/isc-dhcp31-server/pkg-plist index dc0dc00ce17a..9cca499d267d 100644 --- a/net/isc-dhcp31-server/pkg-plist +++ b/net/isc-dhcp31-server/pkg-plist @@ -1,9 +1,8 @@ @comment $FreeBSD$ -etc/dhclient-script -sbin/dhclient -sbin/dhcpd -sbin/dhcrelay +etc/dhclient.conf.sample +etc/dhcpd.conf.sample etc/rc.d/isc-dhcpd.sh.sample +include/dhcpctl.h include/isc/boolean.h include/isc/dst.h include/isc/int.h @@ -11,13 +10,25 @@ include/isc/lang.h include/isc/list.h include/isc/result.h include/isc/types.h -@dirrm include/isc include/omapip/alloc.h include/omapip/buffer.h include/omapip/omapip.h -@dirrm include/omapip -include/dhcpctl.h -lib/libomapi.a lib/libdhcpctl.a -@exec touch /var/db/dhcpd.leases -@exec touch %D/etc/dhclient.conf +lib/libomapi.a +sbin/dhclient +sbin/dhclient-script +sbin/dhcpd +sbin/dhcrelay +share/doc/isc-dhcp3/CHANGES +share/doc/isc-dhcp3/COPYRIGHT +share/doc/isc-dhcp3/README +share/doc/isc-dhcp3/RELNOTES +@dirrm include/isc +@dirrm include/omapip +@dirrm share/doc/isc-dhcp3 +@exec [ -f /var/db/dhclient.leases ] || touch /var/db/dhclient.leases +@unexec [ -s /var/db/dhclient.leases ] || rm -f /var/db/dhclient.leases +@exec [ -f /var/db/dhcpd.leases ] || touch /var/db/dhcpd.leases +@unexec [ -s /var/db/dhcpd.leases ] || rm -f /var/db/dhcpd.leases +@exec [ -f %D/etc/dhclient.conf ] || touch %D/etc/dhclient.conf +@unexec [ -L %D/etc/dhclient.conf -o -s %D/etc/dhclient.conf ] || rm -f %D/etc/dhclient.conf diff --git a/net/isc-dhcp40-server/Makefile b/net/isc-dhcp40-server/Makefile index 0c565a531cd7..d13a14b692c4 100644 --- a/net/isc-dhcp40-server/Makefile +++ b/net/isc-dhcp40-server/Makefile @@ -7,19 +7,16 @@ # PORTNAME= isc-dhcp3 -PORTVERSION= 3.0.b2.11 +PORTVERSION= 3.0.b2.16 CATEGORIES= net MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/ -DISTNAME= dhcp-3.0b2pl${PORTVERSION:S/3.0.b2.//g} +DISTNAME= ${PORTNAME:S/isc-//:S/3/-/}${PORTVERSION:S/.b/b/:R}pl${PORTVERSION:E} -MAINTAINER= ports@FreeBSD.org +MAINTAINER= clefevre@citeweb.net -.if defined(USE_FACILITY) -_USE_FACILITY:= `${ECHO} ${USE_FACILITY} | ${TR} "[:lower:]" "[:upper:]"` -USE_FACILITY= ${_USE_FACILITY} -.else -USE_FACILITY= DAEMON -.endif +# +# Global variables +# HAS_CONFIGURE= yes @@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \ dhcpd.leases.5 MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8 -pre-fetch: -.if ${USE_FACILITY} == "DAEMON" - @${ECHO} "" - @${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:" - @${ECHO} " daemon, local{0-7}" - @${ECHO} " 'daemon' is the default option if one is not defined." - @${ECHO} " Press Control-C and run make clean build LOG_FACILITY=," - @${ECHO} " if you wish to use a different logging facility." - @${ECHO} "" - @sleep 2 +# +# Local variables +# + +PATCH_SUBDIRS= client common dhcpctl minires omapip relay server + +BIN_FILES= dhclient dhcpd dhcrelay +SAMP_FILES= client/dhclient.conf server/dhcpd.conf +RCD_FILES= isc-dhcpd.sh.sample +DOC_FILES= CHANGES COPYRIGHT README RELNOTES +DATA_FILES= dhclient.leases dhcpd.leases +CONF_FILES= dhclient.conf + +BIN_DIR= ${PREFIX}/sbin +ETC_DIR= ${PREFIX}/etc +RCD_DIR= ${PREFIX}/etc/rc.d +DOC_DIR= ${PREFIX}/share/doc/${PORTNAME} +VARDB_DIR= /var/db + +STRIP?= strip + +# +# Post-patch +# + +post-patch: patch-scripts patch-makefiles + +patch-scripts: + @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' \ + ${WRKSRC}/client/scripts/freebsd + +patch-makefiles: +.for subdir in ${PATCH_SUBDIRS} + @${PERL} -pi.fbsd -e \ + 's|^DEBUG[ ]*=|DEBUG ?=|g;s|^CFLAGS[ ]*=|CFLAGS +=|g' \ + ${WRKSRC}/${subdir}/Makefile.dist +.endfor + +# +# Post-install +# + +post-install: strip-binary-files install-startup-files \ + install-doc-files install-sample-files \ + create-data-files create-conf-files + +strip-binary-files: +.for file in ${BIN_FILES} +.if exists({BIN_DIR}/${file}) + @${STRIP} ${BIN_DIR}/${file} +.endif +.endfor + +install-startup-files: +.for file in ${RCD_FILES} + @${INSTALL_SCRIPT} ${FILESDIR}/${file} ${RCD_DIR}/${file} +.endfor + +install-doc-files: +.if !defined(NOPORTDOCS) + @${MKDIR} ${DOC_DIR} +.for file in ${DOC_FILES} + @${INSTALL_DATA} ${WRKSRC}/${file} ${DOC_DIR}/${file} +.endfor .endif -post-patch: - @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h - @${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h - @${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/client/scripts/freebsd -.for MF in relay/Makefile.dist server/Makefile.dist client/Makefile.dist common/Makefile.dist dhcpctl/Makefile.dist minires/Makefile.dist omapip/Makefile.dist - @${PERL} -pi.fbsd -e 's|^DEBUG[ ]*=|DEBUG ?=|g ; s|^CFLAGS[ ]*=|CFLAGS +=|g' ${WRKSRC}/${MF} +install-sample-files: +.for file in ${SAMP_FILES} + @${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample .endfor -post-install: - ${TOUCH} /var/db/dhcpd.leases -.for file in dhclient dhcpd dhcrelay - if [ -f ${PREFIX}/sbin/${file} ]; then \ - strip ${PREFIX}/sbin/${file}; \ - fi +create-data-files: +.for file in ${DATA_FILES} +.if !exists(${VARDB_DIR}/${file}) + @${TOUCH} ${VARDB_DIR}/${file} +.endif +.endfor + +create-conf-files: +.for file in ${CONF_FILES} +.if !exists(${ETC_DIR}/${file}) + @${TOUCH} ${ETC_DIR}/${file} +.endif .endfor - ${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \ - ${PREFIX}/etc/rc.d .include diff --git a/net/isc-dhcp40-server/distinfo b/net/isc-dhcp40-server/distinfo index 969f9ab9d973..bdb0966a924d 100644 --- a/net/isc-dhcp40-server/distinfo +++ b/net/isc-dhcp40-server/distinfo @@ -1 +1 @@ -MD5 (dhcp-3.0b2pl11.tar.gz) = 5fd2c97d850c41e6445648a4108b509f +MD5 (dhcp-3.0b2pl16.tar.gz) = 88fb65480a1b66c8d011957ea6c2e138 diff --git a/net/isc-dhcp40-server/files/isc-dhcpd.sh.sample b/net/isc-dhcp40-server/files/isc-dhcpd.sh.sample index f07d745c3772..3cc86c5e65a3 100644 --- a/net/isc-dhcp40-server/files/isc-dhcpd.sh.sample +++ b/net/isc-dhcp40-server/files/isc-dhcpd.sh.sample @@ -2,6 +2,7 @@ # $FreeBSD$ +OPTIONS="" IFACES="SET_THIS" if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then @@ -11,10 +12,10 @@ fi case "$1" in start) - ${PREFIX}/sbin/dhcpd $IFACES + ${PREFIX}/sbin/dhcpd $OPTIONS $IFACES ;; stop) - kill `cat /var/run/dhcpd.pid` + killall dhcpd ;; restart) $0 stop @@ -24,7 +25,7 @@ status) ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)" ;; *) - echo "Usage: `basename $0` {start|stop|restart|status}" >&2 + echo "usage: ${0##*/} {start|stop|restart|status}" >&2 ;; esac diff --git a/net/isc-dhcp40-server/files/patch-aj b/net/isc-dhcp40-server/files/patch-aj index 14f7db13ff15..b8a356216c52 100644 --- a/net/isc-dhcp40-server/files/patch-aj +++ b/net/isc-dhcp40-server/files/patch-aj @@ -1,43 +1,20 @@ ---- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000 -+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000 -@@ -329,7 +329,7 @@ - #endif +--- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001 ++++ includes/dhcpd.h Fri Jan 26 06:46:12 2001 +@@ -672,7 +672,7 @@ + u_int32_t requested_lease; /* Requested lease time, if user + doesn't configure one. */ + struct string_list *media; /* Possible network media values. */ +- char *script_name; /* Name of config script. */ ++ const char *script_name; /* Name of config script. */ + char *vendor_space_name; /* Name of config script. */ + enum policy bootp_policy; + /* Ignore, accept or prefer BOOTP +@@ -1864,6 +1864,8 @@ + void set_ip_address PROTO ((struct interface_info *, struct in_addr)); - #ifndef CL_DEFAULT_SCRIPT_NAME --# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script" -+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script" - #endif - - #ifndef CL_DEFAULT_REQUESTED_OPTIONS -@@ -771,11 +771,11 @@ - #define _PATH_DHCPD_DB "dhcpd.leases" - #else - #ifndef _PATH_DHCPD_CONF --#define _PATH_DHCPD_CONF "/etc/dhcpd.conf" -+#define _PATH_DHCPD_CONF "!!PREFIX!!/etc/dhcpd.conf" - #endif - - #ifndef _PATH_DHCPD_DB --#define _PATH_DHCPD_DB "/etc/dhcpd.leases" -+#define _PATH_DHCPD_DB "!!PREFIX!!/etc/dhcpd.leases" - #endif - - #ifndef _PATH_DHCPD_PID -@@ -784,7 +784,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_CONF --#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf" -+#define _PATH_DHCLIENT_CONF "!!PREFIX!!/etc/dhclient.conf" - #endif - - #ifndef _PATH_DHCLIENT_PID -@@ -792,7 +792,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_DB --#define _PATH_DHCLIENT_DB "/etc/dhclient.leases" -+#define _PATH_DHCLIENT_DB "!!PREFIX!!/etc/dhclient.leases" - #endif - - #ifndef _PATH_RESOLV_CONF + /* clparse.c */ ++extern const char *client_script_name; ++ + isc_result_t read_client_conf PROTO ((void)); + void read_client_leases PROTO ((void)); + void parse_client_statement PROTO ((struct parse *, struct interface_info *, diff --git a/net/isc-dhcp40-server/files/patch-clparse.c b/net/isc-dhcp40-server/files/patch-clparse.c index f2da52a15884..48c125d11094 100644 --- a/net/isc-dhcp40-server/files/patch-clparse.c +++ b/net/isc-dhcp40-server/files/patch-clparse.c @@ -1,5 +1,11 @@ ---- client/clparse.c.orig Wed Jul 19 21:13:10 2000 -+++ client/clparse.c Thu Jul 20 21:52:53 2000 -@@ -46 +46 @@ +--- client/clparse.c.orig Thu Jan 25 09:17:17 2001 ++++ client/clparse.c Fri Jan 26 06:11:01 2001 +@@ -50,7 +50,7 @@ + + static TIME parsed_time; + -char client_script_name [] = "/etc/dhclient-script"; -+char client_script_name [] = CL_DEFAULT_SCRIPT_NAME; ++const char *client_script_name = CL_DEFAULT_SCRIPT_NAME; + + struct client_config top_level_config; + diff --git a/net/isc-dhcp40-server/files/patch-dhclient.8 b/net/isc-dhcp40-server/files/patch-dhclient.8 index 160c451e445b..2ba9899869c3 100644 --- a/net/isc-dhcp40-server/files/patch-dhclient.8 +++ b/net/isc-dhcp40-server/files/patch-dhclient.8 @@ -1,5 +1,5 @@ ---- client/dhclient.8.orig Wed May 10 02:36:03 2000 -+++ client/dhclient.8 Wed May 10 02:39:43 2000 +--- client/dhclient.8.orig Mon May 1 19:11:36 2000 ++++ client/dhclient.8 Fri Jan 26 05:12:37 2001 @@ -34,7 +34,7 @@ .B -q ] @@ -9,15 +9,59 @@ ] [ .B -lf -@@ -170,6 +170,11 @@ - .B -q +@@ -49,6 +49,10 @@ + .I config-file + ] + [ ++.B -sf ++.I script-file ++] ++[ + .B -s + server + ] +@@ -174,17 +178,25 @@ flag prevents any messages other than errors from being printed to the standard error descriptor. -+.PP + .PP +The +.B -1 +flag cause dhclient to try once to get a lease. If it fails, dhclient exits +with exit code two. - .PP ++.PP The DHCP client normally gets its configuration information from .B ETCDIR/dhclient.conf, + its lease database from +-.B DBDIR/dhclient.leases +-and stores its process ID in a file called ++.B DBDIR/dhclient.leases, ++stores its process ID in a file called + .B RUNDIR/dhclient.pid. ++and configure the network interface using ++.B CLIENTBINDIR/dhclient-script. + To specify different names and/or locations for these files, use the + .B -cf, +-.B -lf +-and ++.B -lf, + .B -pf ++and ++.B -sf + flags, respectively, followed by the name of the file. This can be + particularly useful if, for example, + .B DBDIR +@@ -206,10 +218,12 @@ + .SH CONFIGURATION + The syntax of the dhclient.conf(8) file is discussed seperately. + .SH FILES ++.B CLIENTBINDIR/dhclient-script, + .B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid, +-.B DBDIR/dhclient.leases~. ++.B DBDIR/dhclient.leases. + .SH SEE ALSO +-dhcpd(8), dhcrelay(8), dhclient.conf(5), dhclient.leases(5) ++dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5) and ++dhclient.leases(5). + .SH AUTHOR + .B dhclient(8) + has been written for the Internet Software Consortium diff --git a/net/isc-dhcp40-server/files/patch-dhclient.c b/net/isc-dhcp40-server/files/patch-dhclient.c index bb43074fbd36..ebbd815ecc5e 100644 --- a/net/isc-dhcp40-server/files/patch-dhclient.c +++ b/net/isc-dhcp40-server/files/patch-dhclient.c @@ -1,5 +1,5 @@ ---- client/dhclient.c.orig Thu Sep 14 05:42:01 2000 -+++ client/dhclient.c Wed Sep 27 03:31:33 2000 +--- client/dhclient.c.orig Thu Jan 25 09:18:06 2001 ++++ client/dhclient.c Fri Jan 26 06:15:50 2001 @@ -78,6 +78,7 @@ u_int16_t remote_port; int no_daemon; @@ -8,7 +8,27 @@ static void usage PROTO ((void)); -@@ -176,6 +177,8 @@ +@@ -104,6 +105,7 @@ + int no_dhclient_conf = 0; + int no_dhclient_db = 0; + int no_dhclient_pid = 0; ++ int no_dhclient_script = 0; + char *s; + + #ifdef SYSLOG_4_2 +@@ -159,6 +161,11 @@ + usage (); + path_dhclient_db = argv [i]; + no_dhclient_db = 1; ++ } else if (!strcmp (argv [i], "-sf")) { ++ if (++i == argc) ++ usage (); ++ client_script_name = argv [i]; ++ no_dhclient_script = 1; + } else if (!strcmp (argv [i], "-q")) { + quiet = 1; + quiet_interface_discovery = 1; +@@ -176,6 +183,8 @@ } else if (!strcmp (argv [i], "-w")) { /* do not exit if there are no broadcast interfaces. */ persist = 1; @@ -17,16 +37,32 @@ } else if (argv [i][0] == '-') { usage (); } else { -@@ -417,7 +420,7 @@ +@@ -208,6 +217,9 @@ + if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) { + path_dhclient_pid = s; + } ++ if (!no_dhclient_script && (s = getenv ("PATH_DHCLIENT_SCRIPT"))) { ++ client_script_name = s; ++ } + + /* first kill of any currently running client */ + if (release_mode) { +@@ -423,10 +435,11 @@ log_info (arr); log_info (url); - log_error ("Usage: dhclient [-d] [-D] [-q] [-p ] %s", -+ log_error ("Usage: dhclient [-1] [-d] [-D] [-q] [-p ] %s", ++ log_error ("usage: dhclient [-1] [-d] [-D] [-q] [-p ] %s", "[-s server]"); - log_fatal (" [-lf lease-file] [-pf pid-file]%s", - "[-cf config-file] [interface]"); -@@ -1402,6 +1405,10 @@ +- log_fatal (" [-lf lease-file] [-pf pid-file]%s", +- "[-cf config-file] [interface]"); ++ log_error (" [-cf config-file] [-lf lease-file] %s", ++ "[-pf pid-file] [-sf script-file]"); ++ log_fatal (" [interface]"); + } + + isc_result_t find_class (struct class **c, +@@ -1432,6 +1445,10 @@ /* No leases were available, or what was available didn't work, so tell the shell script that we failed to allocate an address, and try again later. */ diff --git a/net/isc-dhcp40-server/files/patch-freebsd b/net/isc-dhcp40-server/files/patch-freebsd index 293aa2a33130..2376cbb7ec40 100644 --- a/net/isc-dhcp40-server/files/patch-freebsd +++ b/net/isc-dhcp40-server/files/patch-freebsd @@ -1,5 +1,5 @@ ---- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000 -+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000 +--- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000 ++++ client/scripts/freebsd Sat Jan 27 02:17:01 2001 @@ -1,5 +1,11 @@ #!/bin/sh @@ -55,12 +55,26 @@ hostname $new_host_name fi fi -@@ -105,11 +111,18 @@ +@@ -93,24 +99,31 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh + fi + if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then ifconfig $interface inet $new_ip_address $new_netmask_arg \ $new_broadcast_arg $medium + $LOGGER "New IP Address($interface): $new_ip_address" -+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask" ++ $LOGGER "New Subnet Mask($interface): $new_subnet_mask" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + if [ "$new_routers" != "" ]; then + $LOGGER "New Routers: $new_routers" @@ -70,11 +84,29 @@ route add default $router >/dev/null 2>&1 done if [ "$new_static_routes" != "" ]; then +- set $new_static_routes + $LOGGER "New Static Routes: $new_static_routes" - set $new_static_routes ++ set -- $new_static_routes while [ $# -gt 1 ]; do route add $1 $2 -@@ -161,8 +174,12 @@ + shift; shift +@@ -138,13 +151,13 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \ + |sh >/dev/null 2>&1 + fi + if [ x$alias_ip_address != x ]; then +@@ -161,9 +174,13 @@ fi ifconfig $interface inet $new_ip_address $new_netmask_arg \ $new_broadcast_arg $medium @@ -83,7 +115,37 @@ + $LOGGER "New Broadcast Address($interface): $new_broadcast_address" sleep 1 if [ "$new_routers" != "" ]; then +- set $new_routers + $LOGGER "New Routers: $new_routers" - set $new_routers ++ set -- $new_routers if ping -q -c 1 $1; then if [ x$new_ip_address != x$alias_ip_address ] && \ + [ x$alias_ip_address != x ]; then +@@ -174,9 +191,9 @@ + for router in $new_routers; do + route add default $router >/dev/null 2>&1 + done +- set $new_static_routes ++ set -- $new_static_routes + while [ $# -gt 1 ]; do +- route add $0 $1 ++ route add $1 $2 + shift; shift + done + make_resolv_conf +@@ -188,13 +205,13 @@ + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then +- set $old_static_routes ++ set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi +- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ ++ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \ + |sh >/dev/null 2>&1 + exit_with_hooks 1 + fi diff --git a/net/isc-dhcp40-server/files/patch-site.conf b/net/isc-dhcp40-server/files/patch-site.conf index afe3d066ff89..5efe4195aa73 100644 --- a/net/isc-dhcp40-server/files/patch-site.conf +++ b/net/isc-dhcp40-server/files/patch-site.conf @@ -1,23 +1,32 @@ ---- site.conf.orig Wed Jul 7 08:20:10 1999 -+++ site.conf Tue Oct 3 08:59:57 2000 -@@ -1,2 +1,20 @@ +--- site.conf.orig Wed Jul 7 17:20:10 1999 ++++ site.conf Fri Jan 26 06:58:15 2001 +@@ -1,2 +1,29 @@ # Put local site configuration stuff here to override the default # settings in Makefile.conf + +PREFIX ?= /usr/local + -+ETC = $(PREFIX)/etc +BINDIR = $(PREFIX)/sbin +CLIENTBINDIR = $(PREFIX)/sbin -+MANCAT = man +ADMMANDIR = $(PREFIX)/man/man8 +ADMMANEXT = .8 +FFMANDIR = $(PREFIX)/man/man5 +FFMANEXT = .5 +LIBMANDIR = $(PREFIX)/man/man3 +LIBMANEXT = .3 ++MANCAT = man ++# INSTALL = ${INSTALL_DATA} ++# MANINSTALL = ${INSTALL_MAN} ++ETC = $(PREFIX)/etc ++LIBDIR = ${PREFIX}/lib ++INCDIR = ${PREFIX}/include + +DEBUG ?= #none -+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(ETC)/dhclient-script\" ++ ++CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(CLIENTBINDIR)/dhclient-script\" ++ +CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\" ++CFLAGS += -D_PATH_DHCPD_DB=\"$(VARDB)/dhcpd.leases\" ++ +CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\" ++CFLAGS += -D_PATH_DHCLIENT_DB=\"$(VARDB)/dhclient.leases\" diff --git a/net/isc-dhcp40-server/files/patch-site.h b/net/isc-dhcp40-server/files/patch-site.h deleted file mode 100644 index c411dd071f23..000000000000 --- a/net/isc-dhcp40-server/files/patch-site.h +++ /dev/null @@ -1,5 +0,0 @@ ---- includes/site.h.orig Thu Sep 28 11:24:17 2000 -+++ includes/site.h Sat Dec 2 00:46:53 2000 -@@ -159 +159 @@ --/* #define DHCPD_LOG_FACILITY LOG_DAEMON */ -+#define DHCPD_LOG_FACILITY LOG_!!USE_FACILITY!! diff --git a/net/isc-dhcp40-server/pkg-descr b/net/isc-dhcp40-server/pkg-descr index 46bdf5ebae8e..ec2d72947025 100644 --- a/net/isc-dhcp40-server/pkg-descr +++ b/net/isc-dhcp40-server/pkg-descr @@ -1,16 +1,17 @@ -ISC-DHCP Dynamic Host Configuration Protocol server +The ISC Dynamic Host Configuration Protocol Distribution provides +a freely redistributable reference implementation of all aspects +of the DHCP protocol, through a suite of DHCP tools: -This is a release of the Internet Software Consortium -DHCP Server (ISC dhcpd). In this release, support for the core -DHCP protocol is provided. BOOTP support is also provided for -backwards compatibility. + * A DHCP server + * A DHCP client + * A DHCP relay agent Version 3, Beta 2 of the ISC DHCP Distribution includes the following -features that are new since version 2.0: +features that are new since version 2.0: * DHCP Failover Protocol support * OMAPI, an API for accessing and modifying the DHCP - server and client state. + server and client state. * Conditional behaviour * Storing arbitrary information on leases * Address pools with access control @@ -19,10 +20,12 @@ features that are new since version 2.0: * Relay agent information option support * Dynamic DNS updates * Many bug fixes, performance enhancements, and minor - new DHCP protocol features. + new DHCP protocol features. -A fully-featured implementation of dynamic DNS updates is included in -this release. There are no build dependencies with any BIND version. +Also, a fully-featured implementation of dynamic DNS updates is +included and there are no build dependencies with any BIND version. +Since patch-level 15, a log-facility configuration parameter has +been added, see the manual pages for details. WWW: http://www.isc.org/products/DHCP/ diff --git a/net/isc-dhcp40-server/pkg-plist b/net/isc-dhcp40-server/pkg-plist index dc0dc00ce17a..9cca499d267d 100644 --- a/net/isc-dhcp40-server/pkg-plist +++ b/net/isc-dhcp40-server/pkg-plist @@ -1,9 +1,8 @@ @comment $FreeBSD$ -etc/dhclient-script -sbin/dhclient -sbin/dhcpd -sbin/dhcrelay +etc/dhclient.conf.sample +etc/dhcpd.conf.sample etc/rc.d/isc-dhcpd.sh.sample +include/dhcpctl.h include/isc/boolean.h include/isc/dst.h include/isc/int.h @@ -11,13 +10,25 @@ include/isc/lang.h include/isc/list.h include/isc/result.h include/isc/types.h -@dirrm include/isc include/omapip/alloc.h include/omapip/buffer.h include/omapip/omapip.h -@dirrm include/omapip -include/dhcpctl.h -lib/libomapi.a lib/libdhcpctl.a -@exec touch /var/db/dhcpd.leases -@exec touch %D/etc/dhclient.conf +lib/libomapi.a +sbin/dhclient +sbin/dhclient-script +sbin/dhcpd +sbin/dhcrelay +share/doc/isc-dhcp3/CHANGES +share/doc/isc-dhcp3/COPYRIGHT +share/doc/isc-dhcp3/README +share/doc/isc-dhcp3/RELNOTES +@dirrm include/isc +@dirrm include/omapip +@dirrm share/doc/isc-dhcp3 +@exec [ -f /var/db/dhclient.leases ] || touch /var/db/dhclient.leases +@unexec [ -s /var/db/dhclient.leases ] || rm -f /var/db/dhclient.leases +@exec [ -f /var/db/dhcpd.leases ] || touch /var/db/dhcpd.leases +@unexec [ -s /var/db/dhcpd.leases ] || rm -f /var/db/dhcpd.leases +@exec [ -f %D/etc/dhclient.conf ] || touch %D/etc/dhclient.conf +@unexec [ -L %D/etc/dhclient.conf -o -s %D/etc/dhclient.conf ] || rm -f %D/etc/dhclient.conf