|
|
| |
inherit toolchain-funcs | inherit toolchain-funcs |
| |
|
MY_P="${P/_alpha/-alpha}" |
|
MY_P="${MY_P/_beta/-beta}" |
|
S="${WORKDIR}/${MY_P}" |
|
|
DESCRIPTION="A DHCP client" | DESCRIPTION="A DHCP client" |
HOMEPAGE="http://roy.marples.name/dhcpcd" | HOMEPAGE="http://roy.marples.name/dhcpcd" |
SRC_URI="http://roy.marples.name/${PN}/${P}.tar.bz2" |
SRC_URI="http://roy.marples.name/${PN}/${MY_P}.tar.bz2" |
LICENSE="BSD-2" | LICENSE="BSD-2" |
| |
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc ~sparc-fbsd x86 ~x86-fbsd" |
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd" |
| |
SLOT="0" | SLOT="0" |
IUSE="vram zeroconf" |
IUSE="compat zeroconf" |
| |
DEPEND="" | DEPEND="" |
PROVIDE="virtual/dhcpc" | PROVIDE="virtual/dhcpc" |
|
|
unpack ${A} | unpack ${A} |
cd "${S}" | cd "${S}" |
| |
if use zeroconf; then |
if ! use zeroconf; then |
elog "ZeroConf support enabled" |
|
else |
|
elog "Disabling zeroconf support" | elog "Disabling zeroconf support" |
{ | { |
echo | echo |
echo "/* User indicated no zeroconf support */" |
echo "# dhcpcd ebuild requested no zeroconf" |
echo "#undef ENABLE_IPV4LL" |
echo "noipv4ll" |
} >> config.h |
} >> dhcpcd.conf |
fi | fi |
| |
# Disable DUID support if we have volatile storage. |
if use compat; then |
# LiveCD's *should* enable this USE flag |
elog "dhcpcd-3 command line support enabled" |
if use vram; then |
|
elog "Disabling DUID support" |
|
{ | { |
echo | echo |
echo "/* User indicated volatile ram storage */" |
echo "/* User indicated command line compatability */" |
echo "#undef ENABLE_DUID" |
echo "#define CMDLINE_COMPAT" |
} >> config.h | } >> config.h |
else |
|
elog "DUID support enabled" |
|
fi | fi |
} | } |
| |
src_compile() { | src_compile() { |
emake CC="$(tc-getCC)" INFODIR=/var/lib/dhcpcd || die |
emake CC="$(tc-getCC)" DBDIR=/var/lib/dhcpcd || die |
} | } |
| |
src_install() { | src_install() { |
emake DESTDIR="${D}" install || die | emake DESTDIR="${D}" install || die |
|
|
|
dodir /etc/dhcpcd/dhcpcd-exit-hook.d |
|
insinto /etc/dhcpcd/dhcpcd-exit-hook.d |
|
# The sample ntp script only withs with NTP, not openntp |
|
doins hook-samples/ntp.sh |
|
# The sample ypbind script only works with linux |
|
use elibc_glibc && doins hook-samples/ypbind.sh |
} | } |
| |
pkg_postinst() { | pkg_postinst() { |
# Upgrade the duid file to the new format if needed | # Upgrade the duid file to the new format if needed |
local duid="${ROOT}"/var/lib/dhcpcd/dhcpcd.duid |
local old_duid="${ROOT}"/var/lib/dhcpcd/dhcpcd.duid |
if [ -e "${duid}" ] && ! grep -q '..:..:..:..:..:..' "${duid}"; then |
local new_duid="${ROOT}"/etc/dhcpcd/dhcpcd.duid |
sed -i -e 's/\(..\)/\1:/g; s/:$//g' "${duid}" |
if [ -e "${old_duid}" ] && ! grep -q '..:..:..:..:..:..' "${old_duid}"; then |
|
sed -i -e 's/\(..\)/\1:/g; s/:$//g' "${old_duid}" |
|
fi |
|
|
|
# Move the duid to /etc, a more sensible location |
|
if [ -e "${old_duid}" -a ! -e "${new_duid}" ]; then |
|
cp -p "${old_duid}" "${new_duid}" |
fi | fi |
| |
if use zeroconf; then | if use zeroconf; then |
|
|
elog "This behaviour can be controlled with the -L flag." | elog "This behaviour can be controlled with the -L flag." |
elog "See the dhcpcd man page for more details." | elog "See the dhcpcd man page for more details." |
fi | fi |
|
|
if ! use vram; then |
|
use zeroconf && echo |
|
elog "You have installed dhcpcd with DUID support." |
|
elog "This means that we will generate a DUID in /var/lib/dhcpcd/dhcpcd.duid" |
|
elog "This is generated from a MAC address of the card and a timestamp." |
|
elog "It will be used in every subsequent DHCP transaction, along with a IAID" |
|
elog "in the ClientID option. This is required by RFC 4361." |
|
echo |
|
elog "Some DHCP server implementations require a MAC address only in the" |
|
elog "ClientID field. These DHCP servers should be updated to be RFC" |
|
elog "conformant. If you cannot do this, you can revert to the old" |
|
elog "behaviour by using the -I '' option OR building dhcpcd with the" |
|
elog "vram USE flag enabled." |
|
fi |
|
} | } |