forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net-misc/dhcp: Bump to version 4.3.3_p1
Package-Manager: portage-2.2.26 Signed-off-by: Lars Wendler <[email protected]>
- Loading branch information
Lars Wendler
committed
Jan 13, 2016
1 parent
98bf9ea
commit ae8350b
Showing
2 changed files
with
259 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
DIST dhcp-4.2.5-P1.tar.gz 8255960 SHA256 59b06c9f5d775e46999b422c45b9229402c462b114ce1685617bfb2b8b028250 SHA512 02a811b6e88ce013f7ecff6abf81d4b2aff82fff584521ae03fc3242b6036d0d0ad3afc6283fe8b97d18b8fffd4b6d2253386897ae2297c165240017f5f219ec WHIRLPOOL b8cf91c69ae0e1b234089ce3fae4b9daf5bde7f415d8cbc274ab4d006c8aa25f55807c70ba4c6771e0c9803ec5a99f8cc2088e561cac7d16479f5f022ee5459f | ||
DIST dhcp-4.3.1.tar.gz 8980806 SHA256 266cbca8a7a6bb8f9ccc5765da0d2b04099329314a54a4fc1022d510ad3e9af0 SHA512 84ca525fda825bf367a98754f1fb1b8eba5b095c92c25ddaec6e30b31008c7d5c43062ae43cecaa43731a8e78ae406a3123906fd402d2ba4b46b7adbae65aa6a WHIRLPOOL 3fd3720f6883b43856d2169264ee2adfb541b793604728c4e5cc3b647d4a88d6245fb6e53062de4118301cc15f0b4388363eba304bf3623dfb88c91bde94b2b6 | ||
DIST dhcp-4.3.2.tar.gz 9230340 SHA256 6246c9b358759f6cdcc45104caaf76e732a211dbbbbf64a21f499c8db1298165 SHA512 b91a0a90736c6e8bd66a74af8c67949c81db3148eba23ee647f0987bbd98543f0dfd1605c94e152b28a606bbbecd94cd8a8112db5f5fe4c3d041101bda1b95da WHIRLPOOL a201cea52e96517ff1dae2b6c05b05da11feb4c2eed6dca539ea5ab3185711377cd7f7ed9ecc5e5f2bc30bc84d73a85d4140154c43b4f0f27a7e0a4a51f56787 | ||
DIST dhcp-4.3.3-P1.tar.gz 9204043 SHA256 c11e896dffa1bfbc49462965d3f6dec45534e34068603546d9a236f2aa669921 SHA512 7e14268b4acaa82c807af9d956f76f4327a9a75d36273a244fef74dbd54e7506e8b38ce6035e56f61ab09a19bfc0a40599f76c89dc342514f1048b5ac3b2a0eb WHIRLPOOL a0a6873e2f1625cfa208c328ed2d6ec507e239456d6eba24f5731a83ba16f5fbb36f0d6d99fd33fb9045cbf051116196a57c6c2ded2b36e93964475ad29d2b0e | ||
DIST dhcp-4.3.3.tar.gz 9205539 SHA256 553c4945b09b1c1b904c4780f34f72aaefa2fc8c6556715de0bc9d4e3d255ede SHA512 33671816e21456ffec57e2c9ab2d129377096b4e2e5b4ca8194dcd9495c6a9e18a2a5e79d4f05694f3dc841895aa0adb63afd7bd6fe4641eb5a80d3fd7e715d9 WHIRLPOOL 27e7f2fdd1f1f7b3309b444a67e21d139468317538345cc3599e6a47f20489fa5d07018eabe8e32c429f2f16f03c28b22b29bff2ab08972f541c63603bd3df9a |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,258 @@ | ||
# Copyright 1999-2016 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
EAPI=5 | ||
|
||
inherit eutils systemd toolchain-funcs user | ||
|
||
MY_PV="${PV//_alpha/a}" | ||
MY_PV="${MY_PV//_beta/b}" | ||
MY_PV="${MY_PV//_rc/rc}" | ||
MY_PV="${MY_PV//_p/-P}" | ||
MY_P="${PN}-${MY_PV}" | ||
DESCRIPTION="ISC Dynamic Host Configuration Protocol (DHCP) client/server" | ||
HOMEPAGE="http://www.isc.org/products/DHCP" | ||
SRC_URI="ftp://ftp.isc.org/isc/dhcp/${MY_P}.tar.gz | ||
ftp://ftp.isc.org/isc/dhcp/${MY_PV}/${MY_P}.tar.gz" | ||
|
||
LICENSE="ISC BSD SSLeay GPL-2" # GPL-2 only for init script | ||
SLOT="0" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" | ||
IUSE="+client ipv6 kernel_linux ldap libressl selinux +server ssl vim-syntax" | ||
|
||
DEPEND=" | ||
client? ( | ||
kernel_linux? ( | ||
ipv6? ( sys-apps/iproute2 ) | ||
sys-apps/net-tools | ||
) | ||
) | ||
ldap? ( | ||
net-nds/openldap | ||
ssl? ( | ||
!libressl? ( dev-libs/openssl:0 ) | ||
libressl? ( dev-libs/libressl ) | ||
) | ||
)" | ||
RDEPEND="${DEPEND} | ||
selinux? ( sec-policy/selinux-dhcp ) | ||
vim-syntax? ( app-vim/dhcpd-syntax )" | ||
|
||
S="${WORKDIR}/${MY_P}" | ||
|
||
src_unpack() { | ||
unpack ${A} | ||
# handle local bind hell | ||
cd "${S}"/bind | ||
unpack ./bind.tar.gz | ||
} | ||
|
||
src_prepare() { | ||
# Gentoo patches - these will probably never be accepted upstream | ||
# Fix some permission issues | ||
epatch "${FILESDIR}"/${PN}-3.0-fix-perms.patch | ||
# Enable dhclient to equery NTP servers | ||
epatch "${FILESDIR}"/${PN}-4.0-dhclient-ntp.patch | ||
epatch "${FILESDIR}"/${PN}-4.3.1-dhclient-resolvconf.patch | ||
# Stop downing the interface on Linux as that breaks link daemons | ||
# such as wpa_supplicant and netplug | ||
epatch "${FILESDIR}"/${PN}-3.0.3-dhclient-no-down.patch | ||
# Enable dhclient to get extra configuration from stdin | ||
epatch "${FILESDIR}"/${PN}-4.2.2-dhclient-stdin-conf.patch | ||
epatch "${FILESDIR}"/${PN}-4.2.2-nogateway.patch #265531 | ||
epatch "${FILESDIR}"/${PN}-4.2.4-quieter-ping.patch #296921 | ||
epatch "${FILESDIR}"/${PN}-4.2.4-always-accept-4.patch #437108 | ||
epatch "${FILESDIR}"/${PN}-4.2.5-iproute2-path.patch #480636 | ||
epatch "${FILESDIR}"/${PN}-4.2.5-bindtodevice-inet6.patch #471142 | ||
epatch "${FILESDIR}"/${PN}-4.3.3-ldap-ipv6-client-id.patch #559832 | ||
|
||
# Brand the version with Gentoo | ||
sed -i \ | ||
-e "/VERSION=/s:'$: Gentoo-${PR}':" \ | ||
configure || die | ||
|
||
# Change the hook script locations of the scripts | ||
sed -i \ | ||
-e 's,/etc/dhclient-exit-hooks,/etc/dhcp/dhclient-exit-hooks,g' \ | ||
-e 's,/etc/dhclient-enter-hooks,/etc/dhcp/dhclient-enter-hooks,g' \ | ||
client/scripts/* || die | ||
|
||
# No need for the linux script to force bash #158540 | ||
sed -i -e 's,#!/bin/bash,#!/bin/sh,' client/scripts/linux || die | ||
|
||
# Quiet the freebsd logger a little | ||
sed -i -e '/LOGGER=/ s/-s -p user.notice //g' client/scripts/freebsd || die | ||
|
||
# Remove these options from the sample config | ||
sed -i -r \ | ||
-e "/(script|host-name|domain-name) /d" \ | ||
client/dhclient.conf.example || die | ||
|
||
if use client && ! use server ; then | ||
sed -i -r \ | ||
-e '/^SUBDIRS/s:\<(dhcpctl|relay|server)\>::g' \ | ||
Makefile.in || die | ||
elif ! use client && use server ; then | ||
sed -i -r \ | ||
-e '/^SUBDIRS/s:\<client\>::' \ | ||
Makefile.in || die | ||
fi | ||
|
||
# Only install different man pages if we don't have en | ||
if [[ " ${LINGUAS} " != *" en "* ]]; then | ||
# Install Japanese man pages | ||
if [[ " ${LINGUAS} " == *" ja "* && -d doc/ja_JP.eucJP ]]; then | ||
einfo "Installing Japanese documention" | ||
cp doc/ja_JP.eucJP/dhclient* client | ||
cp doc/ja_JP.eucJP/dhcp* common | ||
fi | ||
fi | ||
# Now remove the non-english docs so there are no errors later | ||
rm -rf doc/ja_JP.eucJP | ||
|
||
# make the bind build work | ||
binddir=${S}/bind | ||
cd "${binddir}" || die | ||
cat <<-EOF > bindvar.tmp | ||
binddir=${binddir} | ||
GMAKE=${MAKE:-gmake} | ||
EOF | ||
epatch "${FILESDIR}"/${PN}-4.3.3-bind-disable.patch | ||
cd bind-*/ | ||
epatch "${FILESDIR}"/${PN}-4.2.2-bind-parallel-build.patch #380717 | ||
epatch "${FILESDIR}"/${PN}-4.2.2-bind-build-flags.patch | ||
} | ||
|
||
src_configure() { | ||
# bind defaults to stupid `/usr/bin/ar` | ||
tc-export AR BUILD_CC | ||
export ac_cv_path_AR=${AR} | ||
|
||
# this is tested for by the bind build system, and can cause trouble | ||
# when cross-building; since dhcp itself doesn't make use of libcap, | ||
# simply disable it. | ||
export ac_cv_lib_cap_cap_set_proc=no | ||
|
||
# Use FHS sane paths ... some of these have configure options, | ||
# but not all, so just do it all here. | ||
local e="/etc/dhcp" r="/var/run/dhcp" l="/var/lib/dhcp" | ||
cat <<-EOF >> includes/site.h | ||
#define _PATH_DHCPD_CONF "${e}/dhcpd.conf" | ||
#define _PATH_DHCLIENT_CONF "${e}/dhclient.conf" | ||
#define _PATH_DHCPD_DB "${l}/dhcpd.leases" | ||
#define _PATH_DHCPD6_DB "${l}/dhcpd6.leases" | ||
#define _PATH_DHCLIENT_DB "${l}/dhclient.leases" | ||
#define _PATH_DHCLIENT6_DB "${l}/dhclient6.leases" | ||
#define _PATH_DHCPD_PID "${r}/dhcpd.pid" | ||
#define _PATH_DHCPD6_PID "${r}/dhcpd6.pid" | ||
#define _PATH_DHCLIENT_PID "${r}/dhcpclient.pid" | ||
#define _PATH_DHCLIENT6_PID "${r}/dhcpclient6.pid" | ||
#define _PATH_DHCRELAY_PID "${r}/dhcrelay.pid" | ||
#define _PATH_DHCRELAY6_PID "${r}/dhcrelay6.pid" | ||
EOF | ||
|
||
econf \ | ||
--enable-paranoia \ | ||
--enable-early-chroot \ | ||
--sysconfdir=${e} \ | ||
$(use_enable ipv6 dhcpv6) \ | ||
$(use_with ldap) \ | ||
$(use ldap && use_with ssl ldapcrypto || echo --without-ldapcrypto) | ||
|
||
# configure local bind cruft. symtable option requires | ||
# perl and we don't want to require that #383837. | ||
cd bind/bind-*/ || die | ||
eval econf \ | ||
$(sed -n '/^bindconfig =/,/^$/{:a;N;$!ba;s,^[^-]*,,;s,\\\s*\n\s*--,--,g;s, @[[:upper:]]\+@,,g;P;D}' ../Makefile.in) \ | ||
--disable-symtable \ | ||
--without-make-clean | ||
} | ||
|
||
src_compile() { | ||
# build local bind cruft first | ||
emake -C bind/bind-*/lib/export install | ||
# then build standard dhcp code | ||
emake AR="$(tc-getAR)" | ||
} | ||
|
||
src_install() { | ||
default | ||
|
||
dodoc README RELNOTES doc/{api+protocol,IANA-arp-parameters} | ||
dohtml doc/References.html | ||
|
||
if [[ -e client/dhclient ]] ; then | ||
# move the client to / | ||
dodir /sbin | ||
mv "${D}"/usr/sbin/dhclient "${D}"/sbin/ || die | ||
|
||
exeinto /sbin | ||
if use kernel_linux ; then | ||
newexe "${S}"/client/scripts/linux dhclient-script | ||
else | ||
newexe "${S}"/client/scripts/freebsd dhclient-script | ||
fi | ||
fi | ||
|
||
if [[ -e server/dhcpd ]] ; then | ||
if use ldap ; then | ||
insinto /etc/openldap/schema | ||
doins contrib/ldap/dhcp.* | ||
dosbin contrib/ldap/dhcpd-conf-to-ldap | ||
fi | ||
|
||
newinitd "${FILESDIR}"/dhcpd.init5 dhcpd | ||
newconfd "${FILESDIR}"/dhcpd.conf2 dhcpd | ||
newinitd "${FILESDIR}"/dhcrelay.init3 dhcrelay | ||
newconfd "${FILESDIR}"/dhcrelay.conf dhcrelay | ||
newinitd "${FILESDIR}"/dhcrelay.init3 dhcrelay6 | ||
newconfd "${FILESDIR}"/dhcrelay6.conf dhcrelay6 | ||
|
||
systemd_newtmpfilesd "${FILESDIR}"/dhcpd.tmpfiles dhcpd.conf | ||
systemd_dounit "${FILESDIR}"/dhcpd4.service | ||
systemd_dounit "${FILESDIR}"/dhcpd6.service | ||
systemd_dounit "${FILESDIR}"/dhcrelay4.service | ||
systemd_dounit "${FILESDIR}"/dhcrelay6.service | ||
systemd_install_serviced "${FILESDIR}"/dhcrelay4.service.conf | ||
systemd_install_serviced "${FILESDIR}"/dhcrelay6.service.conf | ||
|
||
sed -i "s:#@slapd@:$(usex ldap slapd ''):" "${ED}"/etc/init.d/* || die #442560 | ||
fi | ||
|
||
# the default config files aren't terribly useful #384087 | ||
local f | ||
for f in "${ED}"/etc/dhcp/*.conf.example ; do | ||
mv "${f}" "${f%.example}" || die | ||
done | ||
sed -i '/^[^#]/s:^:#:' "${ED}"/etc/dhcp/*.conf || die | ||
} | ||
|
||
pkg_preinst() { | ||
enewgroup dhcp | ||
enewuser dhcp -1 -1 /var/lib/dhcp dhcp | ||
|
||
# Keep the user files over the sample ones. The | ||
# hashing is to ignore the crappy defaults #384087. | ||
local f h | ||
for f in dhclient:da7c8496a96452190aecf9afceef4510 dhcpd:10979e7b71134bd7f04d2a60bd58f070 ; do | ||
h=${f#*:} | ||
f="/etc/dhcp/${f%:*}.conf" | ||
if [ -e "${EROOT}"${f} ] ; then | ||
case $(md5sum "${EROOT}"${f}) in | ||
${h}*) ;; | ||
*) cp -p "${EROOT}"${f} "${ED}"${f};; | ||
esac | ||
fi | ||
done | ||
} | ||
|
||
pkg_postinst() { | ||
if [[ -e "${ROOT}"/etc/init.d/dhcp ]] ; then | ||
ewarn | ||
ewarn "WARNING: The dhcp init script has been renamed to dhcpd" | ||
ewarn "/etc/init.d/dhcp and /etc/conf.d/dhcp need to be removed and" | ||
ewarn "and dhcp should be removed from the default runlevel" | ||
ewarn | ||
fi | ||
} |