summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2009-05-29 09:50:34 +0000
committerMarc Kleine-Budde <mkl@pengutronix.de>2009-05-29 09:50:34 +0000
commitaea0fb0f148bdc4ad1e46b5d3697b7acb901977e (patch)
treed66c89a4d98f834d6300883cb2c2a957d2d5577b
parent0dc4fb01f24e7ba3eddf38e293eabd51ffdf4241 (diff)
downloadptxdist-aea0fb0f148bdc4ad1e46b5d3697b7acb901977e.tar.gz
ptxdist-aea0fb0f148bdc4ad1e46b5d3697b7acb901977e.tar.xz
[dhcp] cleanups + add install alternative for config files
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-trunk@10605 33e552b5-05e3-0310-8538-816dae2090ed
-rw-r--r--generic/etc/dhclient-script300
-rw-r--r--generic/etc/dhclient.conf36
-rw-r--r--generic/etc/dhcpd.conf104
-rw-r--r--rules/dhcp.in54
-rw-r--r--rules/dhcp.make72
5 files changed, 509 insertions, 57 deletions
diff --git a/generic/etc/dhclient-script b/generic/etc/dhclient-script
new file mode 100644
index 00000000..8b4d7a4a
--- /dev/null
+++ b/generic/etc/dhclient-script
@@ -0,0 +1,300 @@
+#!/bin/sh
+# dhclient-script for Linux. Dan Halbert, March, 1997.
+# Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
+# No guarantees about this. I'm a novice at the details of Linux
+# networking.
+
+# Notes:
+
+# 0. This script is based on the netbsd script supplied with dhcp-970306.
+
+# 1. ifconfig down apparently deletes all relevant routes and flushes
+# the arp cache, so this doesn't need to be done explicitly.
+
+# 2. The alias address handling here has not been tested AT ALL.
+# I'm just going by the doc of modern Linux ip aliasing, which uses
+# notations like eth0:0, eth0:1, for each alias.
+
+# 3. I have to calculate the network address, and calculate the broadcast
+# address if it is not supplied. This might be much more easily done
+# by the dhclient C code, and passed on.
+
+# 4. TIMEOUT not tested. ping has a flag I don't know, and I'm suspicious
+# of the $1 in its args.
+
+# 'ip' just looks too weird. /sbin/ip looks less weird.
+ip=/sbin/ip
+
+make_resolv_conf() {
+ if [ x"$new_domain_name_servers" != x ]; then
+ cat /dev/null > /etc/resolv.conf.dhclient
+ chmod 644 /etc/resolv.conf.dhclient
+ if [ x"$new_domain_search" != x ]; then
+ echo search $new_domain_search >> /etc/resolv.conf.dhclient
+ elif [ x"$new_domain_name" != x ]; then
+ # Note that the DHCP 'Domain Name Option' is really just a domain
+ # name, and that this practice of using the domain name option as
+ # a search path is both nonstandard and deprecated.
+ echo search $new_domain_name >> /etc/resolv.conf.dhclient
+ fi
+ for nameserver in $new_domain_name_servers; do
+ echo nameserver $nameserver >>/etc/resolv.conf.dhclient
+ done
+
+ mv /etc/resolv.conf.dhclient /etc/resolv.conf
+ elif [ "x${new_dhcp6_name_servers}" != x ] ; then
+ cat /dev/null > /etc/resolv.conf.dhclient6
+ chmod 644 /etc/resolv.conf.dhclient6
+
+ if [ "x${new_dhcp6_domain_search}" != x ] ; then
+ echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
+ fi
+ for nameserver in ${new_dhcp6_name_servers} ; do
+ echo nameserver ${nameserver} >> /etc/resolv.conf.dhclient6
+ done
+
+ mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
+ fi
+}
+
+# Must be used on exit. Invokes the local dhcp client exit hooks, if any.
+exit_with_hooks() {
+ exit_status=$1
+ if [ -f /etc/dhclient-exit-hooks ]; then
+ . /etc/dhclient-exit-hooks
+ fi
+# probably should do something with exit status of the local script
+ exit $exit_status
+}
+
+# Invoke the local dhcp client enter hooks, if they exist.
+if [ -f /etc/dhclient-enter-hooks ]; then
+ exit_status=0
+ . /etc/dhclient-enter-hooks
+ # allow the local script to abort processing of this state
+ # local script must set exit_status variable to nonzero.
+ if [ $exit_status -ne 0 ]; then
+ exit $exit_status
+ fi
+fi
+
+release=`uname -r`
+release=`expr $release : '\(.*\)\..*'`
+relminor=`echo $release |sed -e 's/[0-9]*\.\([0-9][0-9]*\)\(\..*\)*$/\1/'`
+relmajor=`echo $release |sed -e 's/\([0-9][0-9]*\)\..*$/\1/'`
+
+###
+### DHCPv4 Handlers
+###
+
+if [ x$new_broadcast_address != x ]; then
+ new_broadcast_arg="broadcast $new_broadcast_address"
+fi
+if [ x$old_broadcast_address != x ]; then
+ old_broadcast_arg="broadcast $old_broadcast_address"
+fi
+if [ x$new_subnet_mask != x ]; then
+ new_subnet_arg="netmask $new_subnet_mask"
+fi
+if [ x$old_subnet_mask != x ]; then
+ old_subnet_arg="netmask $old_subnet_mask"
+fi
+if [ x$alias_subnet_mask != x ]; then
+ alias_subnet_arg="netmask $alias_subnet_mask"
+fi
+
+if [ x$reason = xMEDIUM ]; then
+ # Linux doesn't do mediums (ok, ok, media).
+ exit_with_hooks 0
+fi
+
+if [ x$reason = xPREINIT ]; then
+ if [ x$alias_ip_address != x ]; then
+ # Bring down alias interface. Its routes will disappear too.
+ ifconfig $interface:0- inet 0
+ fi
+ if [ $relmajor -lt 2 ] || ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] )
+ then
+ ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \
+ broadcast 255.255.255.255 up
+ # Add route to make broadcast work. Do not omit netmask.
+ route add default dev $interface netmask 0.0.0.0
+ else
+ ifconfig $interface 0 up
+ fi
+
+ # We need to give the kernel some time to get the interface up.
+ sleep 1
+
+ exit_with_hooks 0
+fi
+
+if [ x$reason = xARPCHECK ] || [ x$reason = xARPSEND ]; then
+ exit_with_hooks 0
+fi
+
+if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
+ [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then
+ current_hostname=`hostname`
+ if [ x$current_hostname = x ] || \
+ [ x$current_hostname = x$old_host_name ]; then
+ if [ x$current_hostname = x ] || \
+ [ x$new_host_name != x$old_host_name ]; then
+ hostname $new_host_name
+ fi
+ fi
+
+ if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \
+ [ x$alias_ip_address != x$old_ip_address ]; then
+ # Possible new alias. Remove old alias.
+ ifconfig $interface:0- inet 0
+ fi
+ if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then
+ # IP address changed. Bringing down the interface will delete all routes,
+ # and clear the ARP cache.
+ ifconfig $interface inet 0 down
+
+ 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_subnet_arg \
+ $new_broadcast_arg
+ # Add a network route to the computed network address.
+ if [ $relmajor -lt 2 ] || \
+ ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then
+ route add -net $new_network_number $new_subnet_arg dev $interface
+ fi
+ for router in $new_routers; do
+ if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
+ route add -host $router dev $interface
+ fi
+ route add default gw $router
+ done
+ fi
+ if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
+ then
+ ifconfig $interface:0- inet 0
+ ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
+ route add -host $alias_ip_address $interface:0
+ fi
+ make_resolv_conf
+ exit_with_hooks 0
+fi
+
+if [ x$reason = xEXPIRE ] || [ x$reason = xFAIL ] || [ x$reason = xRELEASE ] \
+ || [ x$reason = xSTOP ]; then
+ if [ x$alias_ip_address != x ]; then
+ # Turn off alias interface.
+ ifconfig $interface:0- inet 0
+ fi
+ if [ x$old_ip_address != x ]; then
+ # Shut down interface, which will delete routes and clear arp cache.
+ ifconfig $interface inet 0 down
+ fi
+ if [ x$alias_ip_address != x ]; then
+ ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
+ route add -host $alias_ip_address $interface:0
+ fi
+ exit_with_hooks 0
+fi
+
+if [ x$reason = xTIMEOUT ]; then
+ if [ x$alias_ip_address != x ]; then
+ ifconfig $interface:0- inet 0
+ fi
+ ifconfig $interface inet $new_ip_address $new_subnet_arg \
+ $new_broadcast_arg
+ 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
+ ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
+ route add -host $alias_ip_address dev $interface:0
+ fi
+ if [ $relmajor -lt 2 ] || \
+ ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then
+ route add -net $new_network_number
+ fi
+ for router in $new_routers; do
+ if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
+ route add -host $router dev $interface
+ fi
+ route add default gw $router
+ done
+ make_resolv_conf
+ exit_with_hooks 0
+ fi
+ ifconfig $interface inet 0 down
+ exit_with_hooks 1
+fi
+
+###
+### DHCPv6 Handlers
+###
+
+if [ ${reason} = PREINIT6 ] ; then
+ # Ensure interface is up.
+ ${ip} link set ${interface} up
+
+ # Remove any stale addresses from aborted clients.
+ ${ip} -f inet6 addr flush dev ${interface} scope global permanent
+
+ exit_with_hooks 0
+fi
+
+if [ x${old_ip6_prefix} != x ] || [ x${new_ip6_prefix} != x ] ; then
+ echo Prefix ${reason} old=${old_ip6_prefix} new=${new_ip6_prefix}
+
+ exit_with_hooks 0
+fi
+
+if [ ${reason} = BOUND6 ] ; then
+ if [ x${new_ip6_address} = x ] || [ x${new_ip6_prefixlen} = x ] ; then
+ exit_with_hooks 2;
+ fi
+
+ ${ip} -f inet6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
+ dev ${interface} scope global
+
+ # Check for nameserver options.
+ make_resolv_conf
+
+ exit_with_hooks 0
+fi
+
+if [ ${reason} = RENEW6 ] || [ ${reason} = REBIND6 ] ; then
+ # Make sure nothing has moved around on us.
+
+ # Nameservers/domains/etc.
+ if [ "x${new_dhcp6_name_servers}" != "x${old_dhcp6_name_servers}" ] ||
+ [ "x${new_dhcp6_domain_search}" != "x${old_dhcp6_domain_search}" ] ; then
+ make_resolv_conf
+ fi
+
+ exit_with_hooks 0
+fi
+
+if [ ${reason} = DEPREF6 ] ; then
+ if [ x${new_ip6_prefixlen} = x ] ; then
+ exit_with_hooks 2;
+ fi
+
+ ${ip} -f inet6 addr change ${new_ip6_address}/${new_ip6_prefixlen} \
+ dev ${interface} scope global preferred_lft 0
+
+ exit_with_hooks 0
+fi
+
+if [ ${reason} = EXPIRE6 -o ${reason} = RELEASE6 -o ${reason} = STOP6 ] ; then
+ if [ x${old_ip6_address} = x ] || [ x${old_ip6_prefixlen} = x ] ; then
+ exit_with_hooks 2;
+ fi
+
+ ${ip} -f inet6 addr del ${old_ip6_address}/${old_ip6_prefixlen} \
+ dev ${interface}
+
+ exit_with_hooks 0
+fi
+
+exit_with_hooks 0
diff --git a/generic/etc/dhclient.conf b/generic/etc/dhclient.conf
new file mode 100644
index 00000000..147e0045
--- /dev/null
+++ b/generic/etc/dhclient.conf
@@ -0,0 +1,36 @@
+send host-name "andare.fugue.com";
+send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
+send dhcp-lease-time 3600;
+supersede domain-name "fugue.com home.vix.com";
+prepend domain-name-servers 127.0.0.1;
+request subnet-mask, broadcast-address, time-offset, routers,
+ domain-name, domain-name-servers, host-name;
+require subnet-mask, domain-name-servers;
+timeout 60;
+retry 60;
+reboot 10;
+select-timeout 5;
+initial-interval 2;
+script "/etc/dhclient-script";
+media "-link0 -link1 -link2", "link0 link1";
+reject 192.33.137.209;
+
+alias {
+ interface "ep0";
+ fixed-address 192.5.5.213;
+ option subnet-mask 255.255.255.255;
+}
+
+lease {
+ interface "ep0";
+ fixed-address 192.33.137.200;
+ medium "link0 link1";
+ option host-name "andare.swiftmedia.com";
+ option subnet-mask 255.255.255.0;
+ option broadcast-address 192.33.137.255;
+ option routers 192.33.137.250;
+ option domain-name-servers 127.0.0.1;
+ renew 2 2000/1/12 00:00:01;
+ rebind 2 2000/1/12 00:00:01;
+ expire 2 2000/1/12 00:00:01;
+}
diff --git a/generic/etc/dhcpd.conf b/generic/etc/dhcpd.conf
new file mode 100644
index 00000000..5eab9516
--- /dev/null
+++ b/generic/etc/dhcpd.conf
@@ -0,0 +1,104 @@
+# dhcpd.conf
+#
+# Sample configuration file for ISC dhcpd
+#
+
+# option definitions common to all supported networks...
+option domain-name "example.org";
+option domain-name-servers ns1.example.org, ns2.example.org;
+
+default-lease-time 600;
+max-lease-time 7200;
+
+# Use this to enble / disable dynamic dns updates globally.
+#ddns-update-style none;
+
+# If this DHCP server is the official DHCP server for the local
+# network, the authoritative directive should be uncommented.
+#authoritative;
+
+# Use this to send dhcp log messages to a different log file (you also
+# have to hack syslog.conf to complete the redirection).
+log-facility local7;
+
+# No service will be given on this subnet, but declaring it helps the
+# DHCP server to understand the network topology.
+
+subnet 10.152.187.0 netmask 255.255.255.0 {
+}
+
+# This is a very basic subnet declaration.
+
+subnet 10.254.239.0 netmask 255.255.255.224 {
+ range 10.254.239.10 10.254.239.20;
+ option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
+}
+
+# This declaration allows BOOTP clients to get dynamic addresses,
+# which we don't really recommend.
+
+subnet 10.254.239.32 netmask 255.255.255.224 {
+ range dynamic-bootp 10.254.239.40 10.254.239.60;
+ option broadcast-address 10.254.239.31;
+ option routers rtr-239-32-1.example.org;
+}
+
+# A slightly different configuration for an internal subnet.
+subnet 10.5.5.0 netmask 255.255.255.224 {
+ range 10.5.5.26 10.5.5.30;
+ option domain-name-servers ns1.internal.example.org;
+ option domain-name "internal.example.org";
+ option routers 10.5.5.1;
+ option broadcast-address 10.5.5.31;
+ default-lease-time 600;
+ max-lease-time 7200;
+}
+
+# Hosts which require special configuration options can be listed in
+# host statements. If no address is specified, the address will be
+# allocated dynamically (if possible), but the host-specific information
+# will still come from the host declaration.
+
+host passacaglia {
+ hardware ethernet 0:0:c0:5d:bd:95;
+ filename "vmunix.passacaglia";
+ server-name "toccata.fugue.com";
+}
+
+# Fixed IP addresses can also be specified for hosts. These addresses
+# should not also be listed as being available for dynamic assignment.
+# Hosts for which fixed IP addresses have been specified can boot using
+# BOOTP or DHCP. Hosts for which no fixed address is specified can only
+# be booted with DHCP, unless there is an address range on the subnet
+# to which a BOOTP client is connected which has the dynamic-bootp flag
+# set.
+host fantasia {
+ hardware ethernet 08:00:07:26:c0:a5;
+ fixed-address fantasia.fugue.com;
+}
+
+# You can declare a class of clients and then do address allocation
+# based on that. The example below shows a case where all clients
+# in a certain class get addresses on the 10.17.224/24 subnet, and all
+# other clients get addresses on the 10.0.29/24 subnet.
+
+class "foo" {
+ match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
+}
+
+shared-network 224-29 {
+ subnet 10.17.224.0 netmask 255.255.255.0 {
+ option routers rtr-224.example.org;
+ }
+ subnet 10.0.29.0 netmask 255.255.255.0 {
+ option routers rtr-29.example.org;
+ }
+ pool {
+ allow members of "foo";
+ range 10.17.224.10 10.17.224.250;
+ }
+ pool {
+ deny members of "foo";
+ range 10.0.29.10 10.0.29.230;
+ }
+}
diff --git a/rules/dhcp.in b/rules/dhcp.in
index a4909c49..2ffc9ac9 100644
--- a/rules/dhcp.in
+++ b/rules/dhcp.in
@@ -22,6 +22,17 @@ config DHCP_SERVER
help
FIXME
+config DHCP_DHCPD_CONF
+ bool "Install /etc/dhcpd.conf"
+ depends on DHCP_SERVER
+ default y
+ help
+ Installs (if present) the "./projectroot/etc/dhcpd.conf"
+ file from your workspace, otherwise a generic one from the
+ ptxdist installation
+ ("<PTXDIST>/generic/etc/dhcpd.conf").
+
+
config DHCP_CLIENT
bool
prompt "DHCP Client dhclient"
@@ -30,34 +41,27 @@ config DHCP_CLIENT
with an IP adress. It also handles a lease refresh if it
expires.
-config DHCP_CLIENT_CONFIG
- bool
- depends on DHCP_CLIENT
- prompt "Install /etc/dhclient.conf"
- help
- PTXdist installs a /etc/dhclient.conf from a selectable source.
+if DHCP_CLIENT
-choice
- prompt "Kind of dhclient.conf"
- default DHCP_CLIENT_CONFIG_DEFAULT
- depends on DHCP_CLIENT_CONFIG
-
- config DHCP_CLIENT_CONFIG_DEFAULT
- bool
- prompt "Use generic"
- help
- Installs a generic /etc/dhclient.conf from the dhcp package.
- See <build-target/dhcp-?.?.?/client/dhclient.conf
+config DHCP_DHCLIENT_CONF
+ bool "Install /etc/dhclient.conf"
+ default y
+ help
+ Installs (if present) the "./projectroot/etc/dhclient.conf"
+ file from your workspace, otherwise a generic one from the
+ ptxdist installation
+ ("<PTXDIST>/generic/etc/dhclient.conf").
- config DHCP_CLIENT_CONFIG_USER
- bool
- prompt "User defined"
- help
- This uses a user defined /etc/dhclient.conf file. PTXdist
- uses files projectroot/etc/dhclient.conf in your local
- project
+config DHCP_DHCLIENT_SCRIPT
+ bool "Install /etc/dhclient-script"
+ depends on DHCP_DHCLIENT_CONF
+ help
+ Installs (if present) the "./projectroot/etc/dhclient-script"
+ file from your workspace, otherwise a generic one from the
+ ptxdist installation
+ ("<PTXDIST>/generic/etc/dhclient-script").
-endchoice
+endif
config DHCP_RELAY
bool
diff --git a/rules/dhcp.make b/rules/dhcp.make
index 6c3751c6..487bb8d0 100644
--- a/rules/dhcp.make
+++ b/rules/dhcp.make
@@ -18,13 +18,15 @@ PACKAGES-$(PTXCONF_DHCP) += dhcp
#
# Paths and names
#
-DHCP_VERSION = 4.1.0
-DHCP = dhcp-$(DHCP_VERSION)
-DHCP_SUFFIX = tar.gz
-DHCP_URL = http://ftp.isc.org/isc/dhcp/$(DHCP).$(DHCP_SUFFIX) \
- http://ftp.isc.org/isc/dhcp/dhcp-4.1-history/$(DHCP).$(DHCP_SUFFIX)
-DHCP_SOURCE = $(SRCDIR)/$(DHCP).$(DHCP_SUFFIX)
-DHCP_DIR = $(BUILDDIR)/$(DHCP)
+DHCP_VERSION := 4.1.0
+DHCP := dhcp-$(DHCP_VERSION)
+DHCP_SUFFIX := tar.gz
+DHCP_SOURCE := $(SRCDIR)/$(DHCP).$(DHCP_SUFFIX)
+DHCP_DIR := $(BUILDDIR)/$(DHCP)
+
+DHCP_URL := \
+ http://ftp.isc.org/isc/dhcp/$(DHCP).$(DHCP_SUFFIX) \
+ http://ftp.isc.org/isc/dhcp/dhcp-4.1-history/$(DHCP).$(DHCP_SUFFIX)
# ----------------------------------------------------------------------------
# Get
@@ -34,66 +36,72 @@ $(DHCP_SOURCE):
@$(call targetinfo)
@$(call get, DHCP)
-
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
DHCP_PATH := PATH=$(CROSS_PATH)
-DHCP_ENV := $(CROSS_ENV) \
- ac_cv_file__dev_random=yes
-DHCP_AUTOCONF := $(CROSS_AUTOCONF_USR) \
- --disable-dhcpv6
-# ^ sorry bbu ;)
+DHCP_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_file__dev_random=yes
+
+#
+# autoconf
+#
+DHCP_AUTOCONF := \
+ $(CROSS_AUTOCONF_ROOT) \
+ --disable-dhcpv6
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
$(STATEDIR)/dhcp.targetinstall:
-
- @$(call targetinfo, $@)
+ @$(call targetinfo)
@$(call install_init, dhcp)
@$(call install_fixup, dhcp,PACKAGE,dhcp)
@$(call install_fixup, dhcp,PRIORITY,optional)
@$(call install_fixup, dhcp,VERSION,$(DHCP_VERSION))
@$(call install_fixup, dhcp,SECTION,base)
- @$(call install_fixup, dhcp,AUTHOR,"Robert Schwebel <r.schwebel\@pengutronix.de>")
+ @$(call install_fixup, dhcp,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
@$(call install_fixup, dhcp,DEPENDS,)
@$(call install_fixup, dhcp,DESCRIPTION,missing)
ifdef PTXCONF_DHCP_SERVER
- @$(call install_copy, dhcp, 0, 0, 0755, \
- $(DHCP_DIR)/server/dhcpd, /sbin/dhcpd)
+ @$(call install_copy, dhcp, 0, 0, 0755, -, \
+ /sbin/dhcpd)
+endif
+
+ifdef PTXCONF_DHCP_DHCPD_CONF
+ @$(call install_alternative, dhcp, 0, 0, 0644, /etc/dhcpd.conf)
endif
ifdef PTXCONF_DHCP_CLIENT
- @$(call install_copy, dhcp, 0, 0, 0755, \
- $(DHCP_DIR)/client/dhclient, /sbin/dhclient)
+ @$(call install_copy, dhcp, 0, 0, 0755, /var/db)
@$(call install_copy, dhcp, 0, 0, 0755, /var/state/dhcp )
-ifdef PTXCONF_DHCP_CLIENT_CONFIG_DEFAULT
- @$(call install_copy, dhcp, 0, 0, 0755, \
- $(DHCP_DIR)/client/dhclient.conf, /etc/dhclient.conf, n)
+ @$(call install_copy, dhcp, 0, 0, 0755, -, \
+ /sbin/dhclient)
+
endif
-ifdef PTXCONF_DHCP_CLIENT_CONFIG_USER
- @$(call install_copy, dhcp, 0, 0, 0755, \
- ${PTXDIST_WORKSPACE}/projectroot/etc/dhclient.conf, \
- /etc/dhclient.conf, n)
+
+ifdef PTXCONF_DHCP_DHCLIENT_SCRIPT
+ @$(call install_alternative, dhcp, 0, 0, 0755, /etc/dhclient-script)
endif
- @$(call install_copy, dhcp, 0, 0, 0755, /var/db)
- @$(call install_copy, dhcp, 0, 0, 0755, \
- $(DHCP_DIR)/client/scripts/linux, /etc/dhclient-script, n)
+
+ifdef PTXCONF_DHCP_DHCLIENT_CONF
+ @$(call install_alternative, dhcp, 0, 0, 0644, /etc/dhclient.conf)
endif
ifdef PTXCONF_DHCP_RELAY
- @$(call install_copy, dhcp, 0, 0, 0755, $(DHCP_DIR)/relay/dhcrelay, /sbin/dhcrelay)
+ @$(call install_copy, dhcp, 0, 0, 0755, -, \
+ /sbin/dhcrelay)
endif
@$(call install_finish, dhcp)
- @$(call touch, $@)
+ @$(call touch)
# ----------------------------------------------------------------------------
# Clean