diff options
author | William Hubbs <williamh@gentoo.org> | 2013-02-17 15:56:34 +0000 |
---|---|---|
committer | William Hubbs <williamh@gentoo.org> | 2013-02-17 15:56:34 +0000 |
commit | d115f611b889af72e08c5a230d4820534dff12fb (patch) | |
tree | 2ff8fb051f93fbbf901da9d85d13219d0ae52c7c /net-misc | |
parent | Version bump: EAPI-5 usage, fix doc installation (wrong dir, fails with curre... (diff) | |
download | gentoo-2-d115f611b889af72e08c5a230d4820534dff12fb.tar.gz gentoo-2-d115f611b889af72e08c5a230d4820534dff12fb.tar.bz2 gentoo-2-d115f611b889af72e08c5a230d4820534dff12fb.zip |
add live ebuild for bug #457762, thanks to Scott Bertilson.
(Portage version: 2.2.0_alpha163/cvs/Linux i686, signed Manifest commit with key 0x30C46538)
Diffstat (limited to 'net-misc')
-rw-r--r-- | net-misc/dhcpcd/ChangeLog | 7 | ||||
-rw-r--r-- | net-misc/dhcpcd/dhcpcd-9999.ebuild | 99 |
2 files changed, 105 insertions, 1 deletions
diff --git a/net-misc/dhcpcd/ChangeLog b/net-misc/dhcpcd/ChangeLog index 66b3860ea4d9..65f5804ffc69 100644 --- a/net-misc/dhcpcd/ChangeLog +++ b/net-misc/dhcpcd/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for net-misc/dhcpcd # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/dhcpcd/ChangeLog,v 1.350 2013/02/05 18:54:35 williamh Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/dhcpcd/ChangeLog,v 1.351 2013/02/17 15:56:34 williamh Exp $ + +*dhcpcd-9999 (17 Feb 2013) + + 17 Feb 2013; William Hubbs <williamh@gentoo.org> +dhcpcd-9999.ebuild: + add live ebuild for bug #457762, thanks to Scott Bertilson. *dhcpcd-5.6.7 (05 Feb 2013) diff --git a/net-misc/dhcpcd/dhcpcd-9999.ebuild b/net-misc/dhcpcd/dhcpcd-9999.ebuild new file mode 100644 index 000000000000..3be8da7793d2 --- /dev/null +++ b/net-misc/dhcpcd/dhcpcd-9999.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/dhcpcd/dhcpcd-9999.ebuild,v 1.1 2013/02/17 15:56:34 williamh Exp $ + +EAPI=5 + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="git://roy.marples.name/${PN}.git" + inherit git-2 +else + SRC_URI="http://roy.marples.name/downloads/${PN}/${MY_P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux" + MY_P="${P/_alpha/-alpha}" + MY_P="${MY_P/_beta/-beta}" + MY_P="${MY_P/_rc/-rc}" + S="${WORKDIR}/${MY_P}" +fi + +inherit eutils systemd + +DESCRIPTION="A fully featured, yet light weight RFC2131 compliant DHCP client" +HOMEPAGE="http://roy.marples.name/projects/dhcpcd/" +LICENSE="BSD-2" +SLOT="0" +IUSE="+zeroconf elibc_glibc" + +DEPEND="" +RDEPEND="" + +src_prepare() +{ + epatch_user + if ! use zeroconf; then + elog "Disabling zeroconf support" + { + echo + echo "# dhcpcd ebuild requested no zeroconf" + echo "noipv4ll" + } >> dhcpcd.conf + fi +} + +src_configure() +{ + local hooks="--with-hook=ntp.conf" + use elibc_glibc && hooks="${hooks} --with-hook=yp.conf" + econf \ + --prefix="${EPREFIX}" \ + --libexecdir="${EPREFIX}/lib/dhcpcd" \ + --dbdir="${EPREFIX}/var/lib/dhcpcd" \ + --localstatedir="${EPREFIX}/var" \ + ${hooks} +} + +src_install() +{ + default + newinitd "${FILESDIR}"/${PN}.initd ${PN} + systemd_dounit "${FILESDIR}"/${PN}.service +} + +pkg_preinst() +{ + has_version 'net-misc/dhcpcd[zeroconf]' && prev_zero=true || prev_zero=false +} + +pkg_postinst() +{ + # Upgrade the duid file to the new format if needed + local old_duid="${ROOT}"/var/lib/dhcpcd/dhcpcd.duid + local new_duid="${ROOT}"/etc/dhcpcd.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 + + if use zeroconf && ! $prev_zero; then + elog "You have installed dhcpcd with zeroconf support." + elog "This means that it will always obtain an IP address even if no" + elog "DHCP server can be contacted, which will break any existing" + elog "failover support you may have configured in your net configuration." + elog "This behaviour can be controlled with the -L flag." + elog "See the dhcpcd man page for more details." + fi + + # Mea culpa, feel free to remove that after some time --mgorny. + if [[ -e "${ROOT}"/etc/systemd/system/network.target.wants/${PN}.service ]] + then + ebegin "Moving ${PN}.service to multi-user.target" + mv "${ROOT}"/etc/systemd/system/network.target.wants/${PN}.service \ + "${ROOT}"/etc/systemd/system/multi-user.target.wants/ + eend ${?} \ + "Please try to re-enable dhcpcd.service" + fi +} |