From c45d2b764f1d3190dfb8b2e72ba13c5d9b1e0008 Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 12 Feb 2025 12:15:22 +0000 Subject: [PATCH] net-misc/dhcpcd: drop 10.0.6-r2, 10.0.6-r3, 10.0.8, 10.0.10 Signed-off-by: Sam James --- net-misc/dhcpcd/Manifest | 3 - net-misc/dhcpcd/dhcpcd-10.0.10.ebuild | 172 ----------------- net-misc/dhcpcd/dhcpcd-10.0.6-r2.ebuild | 170 ----------------- net-misc/dhcpcd/dhcpcd-10.0.6-r3.ebuild | 178 ------------------ net-misc/dhcpcd/dhcpcd-10.0.8.ebuild | 176 ----------------- .../dhcpcd/files/dhcpcd-10.0.6-crash.patch | 46 ----- .../files/dhcpcd-10.0.6-rebinding.patch | 46 ----- 7 files changed, 791 deletions(-) delete mode 100644 net-misc/dhcpcd/dhcpcd-10.0.10.ebuild delete mode 100644 net-misc/dhcpcd/dhcpcd-10.0.6-r2.ebuild delete mode 100644 net-misc/dhcpcd/dhcpcd-10.0.6-r3.ebuild delete mode 100644 net-misc/dhcpcd/dhcpcd-10.0.8.ebuild delete mode 100644 net-misc/dhcpcd/files/dhcpcd-10.0.6-crash.patch delete mode 100644 net-misc/dhcpcd/files/dhcpcd-10.0.6-rebinding.patch diff --git a/net-misc/dhcpcd/Manifest b/net-misc/dhcpcd/Manifest index 6e03948d6ca69..25e325e5ffbe3 100644 --- a/net-misc/dhcpcd/Manifest +++ b/net-misc/dhcpcd/Manifest @@ -1,4 +1 @@ -DIST dhcpcd-10.0.10.tar.xz 272732 BLAKE2B 2ecf52009f3fd4442863e1927a8d9e777ee6f34ff4d50a6f1e67821fb23fd12221df1e3a0a04ea0874df8feac15785772b4aa75af407f74448e442db36410e30 SHA512 87c836731637c134a95ea91d9a3d5c682e6e7f3340961f2995fc84931ff9b2a4c0073aca872a98738dc76005eb1159c42f1044fb0998891386784df299786349 -DIST dhcpcd-10.0.6.tar.xz 269392 BLAKE2B 4afd08cf7377b2262d33bf3f7ac503e081572a7c1ffd53b285842a92d99d88fae44e7e6384134bbe1eb839001f822fa7fb43718c42f9e8e6d11a05ec66fa2fc6 SHA512 403d612080c6f1397003dc6a16f59bb5d1d3d3479e3656c598acde4c4aafe1cfa374725c5ae3dddb4972c0f23ffd55d04c3703b97bed5b7060855b61b7738004 -DIST dhcpcd-10.0.8.tar.xz 272116 BLAKE2B 1bf27387c13f192c6216e2f1ecad06bfa82267d5d6e08ddaa123789699fe9154222c33b1aa1f603e65ae8dce510cb24d48e72701494e0793c766e81f024f8bc5 SHA512 8c9bcd49a828dbc1089f49b73decefb6d1c3ef47fecaae242b08e3bdc8c3c49540d1d3551ab879d58df0dca64dcc64d7a29c665d1b1ebbd72d6a52662529eea4 DIST dhcpcd-10.1.0.tar.xz 271660 BLAKE2B 9d47ae8b97ba082f980966a2c3f688c6a8addb10989c166dafebdb6491793815c4caddc3016334f6549923632fd01fc8ce0987eca31af01948b0f4a643f88b38 SHA512 25b3304471c85975e004f101fdd8dc6155065009e9d94719aadc6181717839c501d66740f002aa00acda73cce3c0d924f4241eed177688c4e794be301b059e04 diff --git a/net-misc/dhcpcd/dhcpcd-10.0.10.ebuild b/net-misc/dhcpcd/dhcpcd-10.0.10.ebuild deleted file mode 100644 index 4a63060cb6be3..0000000000000 --- a/net-misc/dhcpcd/dhcpcd-10.0.10.ebuild +++ /dev/null @@ -1,172 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit systemd optfeature toolchain-funcs - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/NetworkConfiguration/dhcpcd.git" -else - MY_P="${P/_alpha/-alpha}" - MY_P="${MY_P/_beta/-beta}" - MY_P="${MY_P/_rc/-rc}" - SRC_URI="https://github.com/NetworkConfiguration/dhcpcd/releases/download/v${PV}/${MY_P}.tar.xz" - S="${WORKDIR}/${MY_P}" - - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" -fi - -DESCRIPTION="A fully featured, yet light weight RFC2131 compliant DHCP client" -HOMEPAGE="https://github.com/NetworkConfiguration/dhcpcd/ https://roy.marples.name/projects/dhcpcd/" - -LICENSE="BSD-2 BSD ISC MIT" -SLOT="0" -IUSE="debug +embedded ipv6 privsep +udev" - -DEPEND=" - app-crypt/libmd - udev? ( virtual/udev ) -" -RDEPEND=" - ${DEPEND} - privsep? ( - acct-group/dhcpcd - acct-user/dhcpcd - ) -" - -QA_CONFIG_IMPL_DECL_SKIP=( - # These don't exist on Linux/glibc (bug #900264) - memset_explicit - memset_s - setproctitle - strtoi - consttime_memequal - SHA256_Init - hmac - # These may exist on some glibc versions, but the checks fail due to - # -Werror / undefined reference no matter what. bug #924825 - arc4random - arc4random_uniform -) - -PATCHES=( - "${FILESDIR}"/${PN}-10.0.6-fix-lib-check.patch -) - -src_configure() { - local myeconfargs=( - --dbdir="${EPREFIX}/var/lib/dhcpcd" - --libexecdir="${EPREFIX}/lib/dhcpcd" - --localstatedir="${EPREFIX}/var" - --prefix="${EPREFIX}" - --with-hook=ntp.conf - $(use_enable debug) - $(use_enable embedded) - $(use_enable ipv6) - $(use_enable privsep) - $(usex elibc_glibc '--with-hook=yp.conf' '') - --rundir=$(usex kernel_linux "${EPREFIX}/run/dhcpcd" "${EPREFIX}/var/run/dhcpcd") - $(usex privsep '--privsepuser=dhcpcd' '') - $(usex udev '' '--without-dev --without-udev') - CC="$(tc-getCC)" - ) - econf "${myeconfargs[@]}" -} - -src_install() { - default - keepdir /var/lib/dhcpcd - newinitd "${FILESDIR}"/dhcpcd.initd-r1 dhcpcd - systemd_newunit "${FILESDIR}"/dhcpcd.service-r1 dhcpcd.service -} - -pkg_postinst() { - local dbdir="${EROOT}"/var/lib/dhcpcd old_files=() - - local old_old_duid="${EROOT}"/var/lib/dhcpcd/dhcpcd.duid - local old_duid="${EROOT}"/etc/dhcpcd.duid - local new_duid="${dbdir}"/duid - if [[ -e "${old_old_duid}" ]] ; then - # Upgrade the duid file to the new format if needed - if ! grep -q '..:..:..:..:..:..' "${old_old_duid}"; then - sed -i -e 's/\(..\)/\1:/g; s/:$//g' "${old_old_duid}" - fi - - # Move the duid to /etc, a more sensible location - if [[ ! -e "${old_duid}" ]] ; then - cp -p "${old_old_duid}" "${new_duid}" - fi - old_files+=( "${old_old_duid}" ) - fi - - # dhcpcd-7 moves the files out of /etc - if [[ -e "${old_duid}" ]] ; then - if [[ ! -e "${new_duid}" ]] ; then - cp -p "${old_duid}" "${new_duid}" - fi - old_files+=( "${old_duid}" ) - fi - local old_secret="${EROOT}"/etc/dhcpcd.secret - local new_secret="${dbdir}"/secret - if [[ -e "${old_secret}" ]] ; then - if [[ ! -e "${new_secret}" ]] ; then - cp -p "${old_secret}" "${new_secret}" - fi - old_files+=( "${old_secret}" ) - fi - - # dhcpcd-7 renames some files in /var/lib/dhcpcd - local old_rdm="${dbdir}"/dhcpcd-rdm.monotonic - local new_rdm="${dbdir}"/rdm_monotonic - if [[ -e "${old_rdm}" ]] ; then - if [[ ! -e "${new_rdm}" ]] ; then - cp -p "${old_rdm}" "${new_rdm}" - fi - old_files+=( "${old_rdm}" ) - fi - local lease= - for lease in "${dbdir}"/dhcpcd-*.lease*; do - [[ -f "${lease}" ]] || continue - old_files+=( "${lease}" ) - local new_lease=$(basename "${lease}" | sed -e "s/dhcpcd-//") - [[ -e "${dbdir}/${new_lease}" ]] && continue - cp "${lease}" "${dbdir}/${new_lease}" - done - - # Warn about removing stale files - if [[ -n "${old_files[@]}" ]] ; then - elog - elog "dhcpcd-7 has copied dhcpcd.duid and dhcpcd.secret from" - elog "${EROOT}/etc to ${dbdir}" - elog "and copied leases in ${dbdir} to new files with the dhcpcd-" - elog "prefix dropped." - elog - elog "You should remove these files if you don't plan on reverting" - elog "to an older version:" - local old_file= - for old_file in ${old_files[@]}; do - elog " ${old_file}" - done - fi - - if [ -z "${REPLACING_VERSIONS}" ]; then - elog - elog "dhcpcd has zeroconf support active by default." - elog "This means 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 noipv4ll configuration" - elog "file option or the -L command line switch." - elog "See the dhcpcd and dhcpcd.conf man pages for more details." - - elog - elog "Dhcpcd has duid enabled by default, and this may cause issues" - elog "with some dhcp servers. For more information, see" - elog "https://bugs.gentoo.org/show_bug.cgi?id=477356" - fi - - optfeature "lookup-hostname hook" net-dns/bind-tools -} diff --git a/net-misc/dhcpcd/dhcpcd-10.0.6-r2.ebuild b/net-misc/dhcpcd/dhcpcd-10.0.6-r2.ebuild deleted file mode 100644 index da71fc81b6472..0000000000000 --- a/net-misc/dhcpcd/dhcpcd-10.0.6-r2.ebuild +++ /dev/null @@ -1,170 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit systemd toolchain-funcs - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/NetworkConfiguration/dhcpcd.git" -else - MY_P="${P/_alpha/-alpha}" - MY_P="${MY_P/_beta/-beta}" - MY_P="${MY_P/_rc/-rc}" - SRC_URI="https://github.com/NetworkConfiguration/dhcpcd/releases/download/v${PV}/${MY_P}.tar.xz" - S="${WORKDIR}/${MY_P}" - - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" -fi - -DESCRIPTION="A fully featured, yet light weight RFC2131 compliant DHCP client" -HOMEPAGE="https://github.com/NetworkConfiguration/dhcpcd/ https://roy.marples.name/projects/dhcpcd/" - -LICENSE="BSD-2 BSD ISC MIT" -SLOT="0" -IUSE="debug +embedded ipv6 privsep +udev" - -DEPEND="udev? ( virtual/udev )" -RDEPEND=" - ${DEPEND} - privsep? ( - acct-group/dhcpcd - acct-user/dhcpcd - ) -" - -QA_CONFIG_IMPL_DECL_SKIP=( - # These don't exist on Linux/glibc (bug #900264) - memset_explicit - memset_s - setproctitle - strtoi - consttime_memequal - SHA256_Init - hmac -) - -PATCHES=( - "${FILESDIR}"/${PN}-10.0.6-rebinding.patch - "${FILESDIR}"/${PN}-10.0.6-crash.patch -) - -src_configure() { - local myeconfargs=( - --dbdir="${EPREFIX}/var/lib/dhcpcd" - --libexecdir="${EPREFIX}/lib/dhcpcd" - --localstatedir="${EPREFIX}/var" - --prefix="${EPREFIX}" - --with-hook=ntp.conf - $(use_enable debug) - $(use_enable embedded) - $(use_enable ipv6) - $(use_enable privsep) - $(usex elibc_glibc '--with-hook=yp.conf' '') - --rundir=$(usex kernel_linux "${EPREFIX}/run/dhcpcd" "${EPREFIX}/var/run/dhcpcd") - $(usex privsep '--privsepuser=dhcpcd' '') - $(usex udev '' '--without-dev --without-udev') - CC="$(tc-getCC)" - ) - econf "${myeconfargs[@]}" -} - -src_install() { - default - keepdir /var/lib/dhcpcd - newinitd "${FILESDIR}"/dhcpcd.initd-r1 dhcpcd - systemd_newunit "${FILESDIR}"/dhcpcd.service-r1 dhcpcd.service -} - -pkg_postinst() { - local dbdir="${EROOT}"/var/lib/dhcpcd old_files=() - - local old_old_duid="${EROOT}"/var/lib/dhcpcd/dhcpcd.duid - local old_duid="${EROOT}"/etc/dhcpcd.duid - local new_duid="${dbdir}"/duid - if [[ -e "${old_old_duid}" ]] ; then - # Upgrade the duid file to the new format if needed - if ! grep -q '..:..:..:..:..:..' "${old_old_duid}"; then - sed -i -e 's/\(..\)/\1:/g; s/:$//g' "${old_old_duid}" - fi - - # Move the duid to /etc, a more sensible location - if [[ ! -e "${old_duid}" ]] ; then - cp -p "${old_old_duid}" "${new_duid}" - fi - old_files+=( "${old_old_duid}" ) - fi - - # dhcpcd-7 moves the files out of /etc - if [[ -e "${old_duid}" ]] ; then - if [[ ! -e "${new_duid}" ]] ; then - cp -p "${old_duid}" "${new_duid}" - fi - old_files+=( "${old_duid}" ) - fi - local old_secret="${EROOT}"/etc/dhcpcd.secret - local new_secret="${dbdir}"/secret - if [[ -e "${old_secret}" ]] ; then - if [[ ! -e "${new_secret}" ]] ; then - cp -p "${old_secret}" "${new_secret}" - fi - old_files+=( "${old_secret}" ) - fi - - # dhcpcd-7 renames some files in /var/lib/dhcpcd - local old_rdm="${dbdir}"/dhcpcd-rdm.monotonic - local new_rdm="${dbdir}"/rdm_monotonic - if [[ -e "${old_rdm}" ]] ; then - if [[ ! -e "${new_rdm}" ]] ; then - cp -p "${old_rdm}" "${new_rdm}" - fi - old_files+=( "${old_rdm}" ) - fi - local lease= - for lease in "${dbdir}"/dhcpcd-*.lease*; do - [[ -f "${lease}" ]] || continue - old_files+=( "${lease}" ) - local new_lease=$(basename "${lease}" | sed -e "s/dhcpcd-//") - [[ -e "${dbdir}/${new_lease}" ]] && continue - cp "${lease}" "${dbdir}/${new_lease}" - done - - # Warn about removing stale files - if [[ -n "${old_files[@]}" ]] ; then - elog - elog "dhcpcd-7 has copied dhcpcd.duid and dhcpcd.secret from" - elog "${EROOT}/etc to ${dbdir}" - elog "and copied leases in ${dbdir} to new files with the dhcpcd-" - elog "prefix dropped." - elog - elog "You should remove these files if you don't plan on reverting" - elog "to an older version:" - local old_file= - for old_file in ${old_files[@]}; do - elog " ${old_file}" - done - fi - - if [ -z "${REPLACING_VERSIONS}" ]; then - elog - elog "dhcpcd has zeroconf support active by default." - elog "This means 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 noipv4ll configuration" - elog "file option or the -L command line switch." - elog "See the dhcpcd and dhcpcd.conf man pages for more details." - - elog - elog "Dhcpcd has duid enabled by default, and this may cause issues" - elog "with some dhcp servers. For more information, see" - elog "https://bugs.gentoo.org/show_bug.cgi?id=477356" - fi - - if ! has_version net-dns/bind-tools; then - elog - elog "If you activate the lookup-hostname hook to look up your hostname" - elog "using the dns, you need to install net-dns/bind-tools." - fi -} diff --git a/net-misc/dhcpcd/dhcpcd-10.0.6-r3.ebuild b/net-misc/dhcpcd/dhcpcd-10.0.6-r3.ebuild deleted file mode 100644 index 06b17e02b53a7..0000000000000 --- a/net-misc/dhcpcd/dhcpcd-10.0.6-r3.ebuild +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit systemd toolchain-funcs - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/NetworkConfiguration/dhcpcd.git" -else - MY_P="${P/_alpha/-alpha}" - MY_P="${MY_P/_beta/-beta}" - MY_P="${MY_P/_rc/-rc}" - SRC_URI="https://github.com/NetworkConfiguration/dhcpcd/releases/download/v${PV}/${MY_P}.tar.xz" - S="${WORKDIR}/${MY_P}" - - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" -fi - -DESCRIPTION="A fully featured, yet light weight RFC2131 compliant DHCP client" -HOMEPAGE="https://github.com/NetworkConfiguration/dhcpcd/ https://roy.marples.name/projects/dhcpcd/" - -LICENSE="BSD-2 BSD ISC MIT" -SLOT="0" -IUSE="debug +embedded ipv6 privsep +udev" - -DEPEND=" - app-crypt/libmd - udev? ( virtual/udev ) -" -RDEPEND=" - ${DEPEND} - privsep? ( - acct-group/dhcpcd - acct-user/dhcpcd - ) -" - -QA_CONFIG_IMPL_DECL_SKIP=( - # These don't exist on Linux/glibc (bug #900264) - memset_explicit - memset_s - setproctitle - strtoi - consttime_memequal - SHA256_Init - hmac - # These may exist on some glibc versions, but the checks fail due to - # -Werror / undefined reference no matter what. bug #924825 - arc4random - arc4random_uniform -) - -PATCHES=( - "${FILESDIR}"/${PN}-10.0.6-rebinding.patch - "${FILESDIR}"/${PN}-10.0.6-crash.patch - "${FILESDIR}"/${PN}-10.0.6-fix-lib-check.patch -) - -src_configure() { - local myeconfargs=( - --dbdir="${EPREFIX}/var/lib/dhcpcd" - --libexecdir="${EPREFIX}/lib/dhcpcd" - --localstatedir="${EPREFIX}/var" - --prefix="${EPREFIX}" - --with-hook=ntp.conf - $(use_enable debug) - $(use_enable embedded) - $(use_enable ipv6) - $(use_enable privsep) - $(usex elibc_glibc '--with-hook=yp.conf' '') - --rundir=$(usex kernel_linux "${EPREFIX}/run/dhcpcd" "${EPREFIX}/var/run/dhcpcd") - $(usex privsep '--privsepuser=dhcpcd' '') - $(usex udev '' '--without-dev --without-udev') - CC="$(tc-getCC)" - ) - econf "${myeconfargs[@]}" -} - -src_install() { - default - keepdir /var/lib/dhcpcd - newinitd "${FILESDIR}"/dhcpcd.initd-r1 dhcpcd - systemd_newunit "${FILESDIR}"/dhcpcd.service-r1 dhcpcd.service -} - -pkg_postinst() { - local dbdir="${EROOT}"/var/lib/dhcpcd old_files=() - - local old_old_duid="${EROOT}"/var/lib/dhcpcd/dhcpcd.duid - local old_duid="${EROOT}"/etc/dhcpcd.duid - local new_duid="${dbdir}"/duid - if [[ -e "${old_old_duid}" ]] ; then - # Upgrade the duid file to the new format if needed - if ! grep -q '..:..:..:..:..:..' "${old_old_duid}"; then - sed -i -e 's/\(..\)/\1:/g; s/:$//g' "${old_old_duid}" - fi - - # Move the duid to /etc, a more sensible location - if [[ ! -e "${old_duid}" ]] ; then - cp -p "${old_old_duid}" "${new_duid}" - fi - old_files+=( "${old_old_duid}" ) - fi - - # dhcpcd-7 moves the files out of /etc - if [[ -e "${old_duid}" ]] ; then - if [[ ! -e "${new_duid}" ]] ; then - cp -p "${old_duid}" "${new_duid}" - fi - old_files+=( "${old_duid}" ) - fi - local old_secret="${EROOT}"/etc/dhcpcd.secret - local new_secret="${dbdir}"/secret - if [[ -e "${old_secret}" ]] ; then - if [[ ! -e "${new_secret}" ]] ; then - cp -p "${old_secret}" "${new_secret}" - fi - old_files+=( "${old_secret}" ) - fi - - # dhcpcd-7 renames some files in /var/lib/dhcpcd - local old_rdm="${dbdir}"/dhcpcd-rdm.monotonic - local new_rdm="${dbdir}"/rdm_monotonic - if [[ -e "${old_rdm}" ]] ; then - if [[ ! -e "${new_rdm}" ]] ; then - cp -p "${old_rdm}" "${new_rdm}" - fi - old_files+=( "${old_rdm}" ) - fi - local lease= - for lease in "${dbdir}"/dhcpcd-*.lease*; do - [[ -f "${lease}" ]] || continue - old_files+=( "${lease}" ) - local new_lease=$(basename "${lease}" | sed -e "s/dhcpcd-//") - [[ -e "${dbdir}/${new_lease}" ]] && continue - cp "${lease}" "${dbdir}/${new_lease}" - done - - # Warn about removing stale files - if [[ -n "${old_files[@]}" ]] ; then - elog - elog "dhcpcd-7 has copied dhcpcd.duid and dhcpcd.secret from" - elog "${EROOT}/etc to ${dbdir}" - elog "and copied leases in ${dbdir} to new files with the dhcpcd-" - elog "prefix dropped." - elog - elog "You should remove these files if you don't plan on reverting" - elog "to an older version:" - local old_file= - for old_file in ${old_files[@]}; do - elog " ${old_file}" - done - fi - - if [ -z "${REPLACING_VERSIONS}" ]; then - elog - elog "dhcpcd has zeroconf support active by default." - elog "This means 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 noipv4ll configuration" - elog "file option or the -L command line switch." - elog "See the dhcpcd and dhcpcd.conf man pages for more details." - - elog - elog "Dhcpcd has duid enabled by default, and this may cause issues" - elog "with some dhcp servers. For more information, see" - elog "https://bugs.gentoo.org/show_bug.cgi?id=477356" - fi - - if ! has_version net-dns/bind-tools; then - elog - elog "If you activate the lookup-hostname hook to look up your hostname" - elog "using the dns, you need to install net-dns/bind-tools." - fi -} diff --git a/net-misc/dhcpcd/dhcpcd-10.0.8.ebuild b/net-misc/dhcpcd/dhcpcd-10.0.8.ebuild deleted file mode 100644 index ba52c3873ac88..0000000000000 --- a/net-misc/dhcpcd/dhcpcd-10.0.8.ebuild +++ /dev/null @@ -1,176 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit systemd toolchain-funcs - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/NetworkConfiguration/dhcpcd.git" -else - MY_P="${P/_alpha/-alpha}" - MY_P="${MY_P/_beta/-beta}" - MY_P="${MY_P/_rc/-rc}" - SRC_URI="https://github.com/NetworkConfiguration/dhcpcd/releases/download/v${PV}/${MY_P}.tar.xz" - S="${WORKDIR}/${MY_P}" - - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" -fi - -DESCRIPTION="A fully featured, yet light weight RFC2131 compliant DHCP client" -HOMEPAGE="https://github.com/NetworkConfiguration/dhcpcd/ https://roy.marples.name/projects/dhcpcd/" - -LICENSE="BSD-2 BSD ISC MIT" -SLOT="0" -IUSE="debug +embedded ipv6 privsep +udev" - -DEPEND=" - app-crypt/libmd - udev? ( virtual/udev ) -" -RDEPEND=" - ${DEPEND} - privsep? ( - acct-group/dhcpcd - acct-user/dhcpcd - ) -" - -QA_CONFIG_IMPL_DECL_SKIP=( - # These don't exist on Linux/glibc (bug #900264) - memset_explicit - memset_s - setproctitle - strtoi - consttime_memequal - SHA256_Init - hmac - # These may exist on some glibc versions, but the checks fail due to - # -Werror / undefined reference no matter what. bug #924825 - arc4random - arc4random_uniform -) - -PATCHES=( - "${FILESDIR}"/${PN}-10.0.6-fix-lib-check.patch -) - -src_configure() { - local myeconfargs=( - --dbdir="${EPREFIX}/var/lib/dhcpcd" - --libexecdir="${EPREFIX}/lib/dhcpcd" - --localstatedir="${EPREFIX}/var" - --prefix="${EPREFIX}" - --with-hook=ntp.conf - $(use_enable debug) - $(use_enable embedded) - $(use_enable ipv6) - $(use_enable privsep) - $(usex elibc_glibc '--with-hook=yp.conf' '') - --rundir=$(usex kernel_linux "${EPREFIX}/run/dhcpcd" "${EPREFIX}/var/run/dhcpcd") - $(usex privsep '--privsepuser=dhcpcd' '') - $(usex udev '' '--without-dev --without-udev') - CC="$(tc-getCC)" - ) - econf "${myeconfargs[@]}" -} - -src_install() { - default - keepdir /var/lib/dhcpcd - newinitd "${FILESDIR}"/dhcpcd.initd-r1 dhcpcd - systemd_newunit "${FILESDIR}"/dhcpcd.service-r1 dhcpcd.service -} - -pkg_postinst() { - local dbdir="${EROOT}"/var/lib/dhcpcd old_files=() - - local old_old_duid="${EROOT}"/var/lib/dhcpcd/dhcpcd.duid - local old_duid="${EROOT}"/etc/dhcpcd.duid - local new_duid="${dbdir}"/duid - if [[ -e "${old_old_duid}" ]] ; then - # Upgrade the duid file to the new format if needed - if ! grep -q '..:..:..:..:..:..' "${old_old_duid}"; then - sed -i -e 's/\(..\)/\1:/g; s/:$//g' "${old_old_duid}" - fi - - # Move the duid to /etc, a more sensible location - if [[ ! -e "${old_duid}" ]] ; then - cp -p "${old_old_duid}" "${new_duid}" - fi - old_files+=( "${old_old_duid}" ) - fi - - # dhcpcd-7 moves the files out of /etc - if [[ -e "${old_duid}" ]] ; then - if [[ ! -e "${new_duid}" ]] ; then - cp -p "${old_duid}" "${new_duid}" - fi - old_files+=( "${old_duid}" ) - fi - local old_secret="${EROOT}"/etc/dhcpcd.secret - local new_secret="${dbdir}"/secret - if [[ -e "${old_secret}" ]] ; then - if [[ ! -e "${new_secret}" ]] ; then - cp -p "${old_secret}" "${new_secret}" - fi - old_files+=( "${old_secret}" ) - fi - - # dhcpcd-7 renames some files in /var/lib/dhcpcd - local old_rdm="${dbdir}"/dhcpcd-rdm.monotonic - local new_rdm="${dbdir}"/rdm_monotonic - if [[ -e "${old_rdm}" ]] ; then - if [[ ! -e "${new_rdm}" ]] ; then - cp -p "${old_rdm}" "${new_rdm}" - fi - old_files+=( "${old_rdm}" ) - fi - local lease= - for lease in "${dbdir}"/dhcpcd-*.lease*; do - [[ -f "${lease}" ]] || continue - old_files+=( "${lease}" ) - local new_lease=$(basename "${lease}" | sed -e "s/dhcpcd-//") - [[ -e "${dbdir}/${new_lease}" ]] && continue - cp "${lease}" "${dbdir}/${new_lease}" - done - - # Warn about removing stale files - if [[ -n "${old_files[@]}" ]] ; then - elog - elog "dhcpcd-7 has copied dhcpcd.duid and dhcpcd.secret from" - elog "${EROOT}/etc to ${dbdir}" - elog "and copied leases in ${dbdir} to new files with the dhcpcd-" - elog "prefix dropped." - elog - elog "You should remove these files if you don't plan on reverting" - elog "to an older version:" - local old_file= - for old_file in ${old_files[@]}; do - elog " ${old_file}" - done - fi - - if [ -z "${REPLACING_VERSIONS}" ]; then - elog - elog "dhcpcd has zeroconf support active by default." - elog "This means 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 noipv4ll configuration" - elog "file option or the -L command line switch." - elog "See the dhcpcd and dhcpcd.conf man pages for more details." - - elog - elog "Dhcpcd has duid enabled by default, and this may cause issues" - elog "with some dhcp servers. For more information, see" - elog "https://bugs.gentoo.org/show_bug.cgi?id=477356" - fi - - if ! has_version net-dns/bind-tools; then - elog - elog "If you activate the lookup-hostname hook to look up your hostname" - elog "using the dns, you need to install net-dns/bind-tools." - fi -} diff --git a/net-misc/dhcpcd/files/dhcpcd-10.0.6-crash.patch b/net-misc/dhcpcd/files/dhcpcd-10.0.6-crash.patch deleted file mode 100644 index 5b61e3ca37efd..0000000000000 --- a/net-misc/dhcpcd/files/dhcpcd-10.0.6-crash.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://github.com/NetworkConfiguration/dhcpcd/issues/179 -https://github.com/NetworkConfiguration/dhcpcd/issues/283 -https://bugzilla.redhat.com/2262996 -https://github.com/NetworkConfiguration/dhcpcd/commit/727c78f503d456875e2a3cee7609288b537d9d25 - -From 727c78f503d456875e2a3cee7609288b537d9d25 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= -Date: Fri, 16 Feb 2024 17:15:35 +0100 -Subject: [PATCH] Move dhcp(v4) packet size check earlier (#295) - -dhcp_handlebootp handled zero sized packets correctly, but -dhcp_redirect_dhcp did not have such protection. Move size check before -both of them. Size when called from dhcp_packet is checked by -is_packet_udp_bootp call. Only dhcp_recvmsg needs earlier checking to be -added. - -Fixes #283 ---- a/src/dhcp.c -+++ b/src/dhcp.c -@@ -3532,12 +3532,6 @@ dhcp_handlebootp(struct interface *ifp, struct bootp *bootp, size_t len, - { - size_t v; - -- if (len < offsetof(struct bootp, vend)) { -- logerrx("%s: truncated packet (%zu) from %s", -- ifp->name, len, inet_ntoa(*from)); -- return; -- } -- - /* Unlikely, but appeases sanitizers. */ - if (len > FRAMELEN_MAX) { - logerrx("%s: packet exceeded frame length (%zu) from %s", -@@ -3670,6 +3664,13 @@ dhcp_recvmsg(struct dhcpcd_ctx *ctx, struct msghdr *msg) - logerr(__func__); - return; - } -+ -+ if (iov->iov_len < offsetof(struct bootp, vend)) { -+ logerrx("%s: truncated packet (%zu) from %s", -+ ifp->name, iov->iov_len, inet_ntoa(from->sin_addr)); -+ return; -+ } -+ - state = D_CSTATE(ifp); - if (state == NULL) { - /* Try re-directing it to another interface. */ diff --git a/net-misc/dhcpcd/files/dhcpcd-10.0.6-rebinding.patch b/net-misc/dhcpcd/files/dhcpcd-10.0.6-rebinding.patch deleted file mode 100644 index 6457368f11504..0000000000000 --- a/net-misc/dhcpcd/files/dhcpcd-10.0.6-rebinding.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://bugs.gentoo.org/920652#c2 -https://github.com/NetworkConfiguration/dhcpcd/commit/8ab7ca1eb4e9bb797d6e6d955c83d8a82f69a663 - -From 8ab7ca1eb4e9bb797d6e6d955c83d8a82f69a663 Mon Sep 17 00:00:00 2001 -From: Roy Marples -Date: Sun, 24 Dec 2023 12:07:25 +0000 -Subject: [PATCH] DHCP: DECLINE address on ARP defend failure - -Also, drop the lease. -This should get us a new address from the DHCP server when we -re-enter DISCOVER to avoid looping on the same address and fail -again. ---- - src/dhcp.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/dhcp.c b/src/dhcp.c -index 014ce6cf..a58e1db2 100644 ---- a/src/dhcp.c -+++ b/src/dhcp.c -@@ -1944,7 +1944,11 @@ dhcp_expire(void *arg) - static void - dhcp_decline(struct interface *ifp) - { -+ struct dhcp_state *state = D_STATE(ifp); - -+ // Set the expired state so we send over BPF as this could be -+ // an address defence failure. -+ state->added |= STATE_EXPIRED; - send_message(ifp, DHCP_DECLINE, NULL); - } - #endif -@@ -2098,8 +2102,12 @@ static void - dhcp_arp_defend_failed(struct arp_state *astate) - { - struct interface *ifp = astate->iface; -+ struct dhcp_state *state = D_STATE(ifp); - -+ if (!(ifp->options->options & (DHCPCD_INFORM | DHCPCD_STATIC))) -+ dhcp_decline(ifp); - dhcp_drop(ifp, "EXPIRED"); -+ dhcp_unlink(ifp->ctx, state->leasefile); - dhcp_start1(ifp); - } - #endif -