summaryrefslogtreecommitdiff
path: root/net-misc/dhcpcd
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-05-18 00:01:42 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-05-18 00:01:42 +0100
commit075fd1f8cabc5879c6eb42127fb84c3058677fde (patch)
tree8b761e85416656264e041b1954427a58894b3333 /net-misc/dhcpcd
parent6c9dc10e04cd513437e046ccca0e51a3d6d4dc7c (diff)
gentoo auto-resync : 18:05:2024 - 00:01:41
Diffstat (limited to 'net-misc/dhcpcd')
-rw-r--r--net-misc/dhcpcd/Manifest16
-rw-r--r--net-misc/dhcpcd/dhcpcd-10.0.3.ebuild154
-rw-r--r--net-misc/dhcpcd/dhcpcd-10.0.5-r1.ebuild158
-rw-r--r--net-misc/dhcpcd/dhcpcd-10.0.6-r1.ebuild169
-rw-r--r--net-misc/dhcpcd/dhcpcd-10.0.6-r3.ebuild (renamed from net-misc/dhcpcd/dhcpcd-10.0.6.ebuild)13
-rw-r--r--net-misc/dhcpcd/dhcpcd-9999.ebuild11
-rw-r--r--net-misc/dhcpcd/files/10.0.5/0001-control-fix-hangup-non-privsep-builds.patch23
-rw-r--r--net-misc/dhcpcd/files/10.0.5/0002-dhcpcd-detach-from-launcher.patch69
-rw-r--r--net-misc/dhcpcd/files/10.0.5/0003-control-abort-control-recv-path-hangup.patch105
-rw-r--r--net-misc/dhcpcd/files/10.0.5/0004-dhcpcd-remove-stdio-callback-detach-daemonize.patch286
-rw-r--r--net-misc/dhcpcd/files/10.0.5/0005-fix-privsep-builds-for-prior.patch20
-rw-r--r--net-misc/dhcpcd/files/10.0.5/0006-fix-unused-var-warning.patch37
-rw-r--r--net-misc/dhcpcd/files/dhcpcd-10.0.6-fix-lib-check.patch16
13 files changed, 39 insertions, 1038 deletions
diff --git a/net-misc/dhcpcd/Manifest b/net-misc/dhcpcd/Manifest
index 066d3dfe427a..1d601566be64 100644
--- a/net-misc/dhcpcd/Manifest
+++ b/net-misc/dhcpcd/Manifest
@@ -1,22 +1,12 @@
-AUX 10.0.5/0001-control-fix-hangup-non-privsep-builds.patch 688 BLAKE2B 16983efd39db7bce4cf0680a37e0b19e6a2983af0add1951d03c1440f42b1885bf4e1639d5c7fc17ce42fe6e26af7d0a5a1e2f6053800fdf6459adf67f78bd5e SHA512 555804f1c0b7e5ad6dd95315a57ed77ef6c162bbeb80e7d7fc9d70c9b71e3b2e619e4ceace3018d5745fe28d49967d71bd346eb69703936237ebb031b23a9384
-AUX 10.0.5/0002-dhcpcd-detach-from-launcher.patch 2431 BLAKE2B d55f402f4820b7d853f6380b2b7bd8e053a61090f4832be525ed05a69e60c2761353b5e42cadcb14056da33cac01bc7df05328d46ec4df11ca2cff8e80895f69 SHA512 9941bb9f8f34a49e904664a3ed0952447ad9accf81db5d5c3290704defd71cbd4d19742c4b92e14ba63accafd06b2947de01b7730ef6ac2e73b92584dda512f4
-AUX 10.0.5/0003-control-abort-control-recv-path-hangup.patch 2592 BLAKE2B 48321916c9bbca4f8db7e54f005626dedb2e54fd78eeb8fd9b0251766feb652b2bfd39c2453c62158f8b7cafbc1343524d63526ff1ba6f5cc0d60204f5fef538 SHA512 6bbdda6979cf16e7471875372dae5f7f13382ff604b3e83d93857787b646f9ed5891d1a8f5462d8055681fec4eb97dae67540f48d3f31a64335c2570eab35dda
-AUX 10.0.5/0004-dhcpcd-remove-stdio-callback-detach-daemonize.patch 8772 BLAKE2B ec0c000fe60582dc9d7f2b7d2686dd84eb740d92bd44d1da3af4bca67b0db3f0dd548f4b8a1f3ad5dd4413276267084e7d0da1c181b7fda39dd667e3cd3df2c5 SHA512 e76e37c08a854d4d99bfcbb468aa8b9e83a220812c937e32dca5e6ba66d3aa147bc3f3da25d64b8bafdf1fdbf7fc5c9a46ad336a812e0bac65165bf3435e7471
-AUX 10.0.5/0005-fix-privsep-builds-for-prior.patch 589 BLAKE2B 951aa4e4ad7f441c958a4ebe9341616a5041b99cd68f669a6e4bfab6882de7f55a7fafa9a7c75295e77ef38fd823ba44ee8385bc0920e383b515ac7bc89562da SHA512 275337e99543eadeeb8804e1a8f5ec8ccbef9e922a3a25536c3cd69ca0a60cacdda26bbf8103adab46fafd0e2f6e9a6b75dcbec3b6146823ad611b6c9614914c
-AUX 10.0.5/0006-fix-unused-var-warning.patch 1148 BLAKE2B 2f4a800e55aec46d834777649357a0e4137261d0b7ca342d53b08fdfde69ffe7654478978145c6400feb82f9d1a05598319ccb6e5421da94155829512315fcba SHA512 e8a0874f5a216e101a3adb9f56c12b798263a300f13a9b34ff3ce9b6276f43dc50f39d59977f38ea9abcaa24c49753add19add10589fe185f85dde8451820287
AUX dhcpcd-10.0.6-crash.patch 1598 BLAKE2B 149cd9ab0372ba507505d1d30707e18ef69b7db583211e86bd48c2fabcde62003356735813789d4f021bdc1636291b0469601fbd2be33f79f84ba17147968f84 SHA512 dfe49bb7d872ffc27ece3d59635cc5a81975181065ae0c54576195637266b24653832c05146bf2e6c0e9f772faf1920c09f234d40b0bf57c8eabf50d0a9818ae
+AUX dhcpcd-10.0.6-fix-lib-check.patch 340 BLAKE2B 6e9f881e64676477b100bb65d4962ac4de360a21e938e79c294cd8f8cb837bbe30cdcfa8ca84b3d9558fcf3d5109ba04704c2e4bb269ba2526deed51fec0bf11 SHA512 66ac97580ae066afb4e46b15161a8331140c010764f7932218ce03112bed4bf52e316f58fbb7919c38052ce6ef2a4c36768103aa01f146161cf94169cb8ccacd
AUX dhcpcd-10.0.6-rebinding.patch 1351 BLAKE2B 5bf20cc11f82082b9aed01279c2071d948cb4308e935289b2ff7022cd146b4e600cd35dfe63d08006311769b1816cbadb0fcfe7cecaecec64d25fc1f0ddc450f SHA512 c657af1001ea7dbfcd3a6c502667cda3eb164ee532e2083976ab5a46cdc4ab0a0812fd828f0bb98dd6bf326ecdaa3ef16f4d545580c59c63f8aad0e893651427
AUX dhcpcd.initd-r1 339 BLAKE2B f5c8574545d211918cba49b0e0caf22b6dd0630d3e8627e8fc4c40dc4415fd70c83889b631606085ecf87f925a7a199cd5712178a2c90186c6b8ac4f792b0789 SHA512 cd186e4c0733fcd9c333bf7c813a879c38c962bcf6a3288577f6b1632312b10f69ac68ca413c32106559d9e53fa05de78410cba677247b52bcbcf3b35024974f
AUX dhcpcd.service-r1 308 BLAKE2B 558789adc2b67ee9d13b8213c9729f23dc691d3da8e96d93283c6c1fcf3733b17036df2a736166414a4a4738ca2a41f11b498326f18dace02e3b77945f7d8f23 SHA512 992b6f3c69b982f1dc01098dbecdee1ee2dc12e59646d13648f378a2e628cc612b65ee15a1373e3cacf7e712c6a6708c6824a9396b53e8ed8b0b3179f5267041
-DIST dhcpcd-10.0.3.tar.xz 268872 BLAKE2B c063fbb44b4a6928ffd84c109c1ed8ae0345c81b732fc75ce1c1aebc51c190fa512de9822c1c6865794db126f4ad2aceef97c4da28d6922cca082b1aeedb4760 SHA512 f4437e9aa094ab38f077c455b012f46cc84a39f97a19eae896a0954f24f2064e91407dc7f7be7fae00faf3455a8e50695e94c406f476f88a61b980169a778560
-DIST dhcpcd-10.0.5.tar.xz 269696 BLAKE2B 52435e2afa4fa5563b629af3f69b149b87de75097d20819423429741e8f2d16df136409180c509ff08b28fd060ad74da4d73057556349b8041c716dbeb7dbcc3 SHA512 f8213eee93e83c174ce5d2487364400fe07b39bb0f052d072518e12f7189136704f65e1f4467432b477f195d64eebe6ca167aec160aed1575ea9ef551b43eb43
DIST dhcpcd-10.0.6.tar.xz 269392 BLAKE2B 4afd08cf7377b2262d33bf3f7ac503e081572a7c1ffd53b285842a92d99d88fae44e7e6384134bbe1eb839001f822fa7fb43718c42f9e8e6d11a05ec66fa2fc6 SHA512 403d612080c6f1397003dc6a16f59bb5d1d3d3479e3656c598acde4c4aafe1cfa374725c5ae3dddb4972c0f23ffd55d04c3703b97bed5b7060855b61b7738004
DIST dhcpcd-9.5.1.tar.xz 258280 BLAKE2B 355a98d415253608e8f586809d41e7654c1973d956cb3951218e1ff8c928ee414aa1b9854180c78e975898d9eb0f4cb9cc0fe64eefd5690b371989093e1bcb5a SHA512 979c180743d3e01d1996033d42c5606792e3acaef4e600f0ea51c362643a5b2743c6dc2792314c3b66edfa99c3b98d17f46cf3421e2088b37804e6e2167037ee
-EBUILD dhcpcd-10.0.3.ebuild 4649 BLAKE2B e00e857c44168096c3530004d32bb62250681d686b17954b46bd6993f32ca963d4369ae79ee9d15afc90c53b9e1d7c3f71b2a819278c44e12b59d1cb08a8affb SHA512 3596770f90d6b49b1c677538cbe1b34b482a886a322050f664d90ec6851b839b3294a57144d8e7c1f93530db3e4120b95d11ded5c568162c6ac0510ec9dcbfdf
-EBUILD dhcpcd-10.0.5-r1.ebuild 4684 BLAKE2B a9f60400d1d3be191f47de793f49413d4d24fbeedd8e637d2a3beedfeaed5a123740323ba438319369845ca78b2771fe366e9f4edaa576716262d68064b76d99 SHA512 166a9f1999e7611a3bf39085a2499c9596e33d9cd35d09c1d1a94fbd5cf0770f994814e315ae2417e7469dd91b8a5c13abde2f12b03d77c909491b653fc95b13
-EBUILD dhcpcd-10.0.6-r1.ebuild 4874 BLAKE2B 7d6cf19cd8cd9183a1d373372c3f2cef5338a98ceb95457b69ff1f0165f0f5e33465d3aca203a5e5c44722cd12ccccc6353cc580b5219055230de5091f6eb219 SHA512 af060355f679965ae45bdc378028464735c88374ddda41b8bbcac80ef3231b6dc571d50a4d093aa2be0af4247245987117de01e67a0998f0cacfdb2a9470ec3a
EBUILD dhcpcd-10.0.6-r2.ebuild 4914 BLAKE2B 06d46941ff39863b0741e63a5584762a5ea72fcf8ab8f5bc08899e124777c0bd14133d0b8f3916a64d191836cd1f8aa754d21415845977a4351e8e68ca40152d SHA512 f653bbdeb503a6464bfa7fc1469cb41fdaef83f9a9042158c5401d179dca3c8ce61a545c68821f9b0a172f65037672250885d5171dc63669361465d2e7a318a4
-EBUILD dhcpcd-10.0.6.ebuild 4825 BLAKE2B 770a30abb6aa31c7c980f9ae97f53ee6390e9aa2f147c2290daf1e3b0202e7ad9c366fbf389e464b0766e8d1a42ecfc643c0e11ad55490d587f039c0def60f56 SHA512 ea7aaa97d18efecb1abbb2ad4b969138e5b4c0b46b772d1c2b5ecc9a8ae844fd320831b9a7eadd03178daa70324a23e3e6f73a3cb36929364776a5f62ee75939
+EBUILD dhcpcd-10.0.6-r3.ebuild 4990 BLAKE2B 35cdce24f98d29b36ff50fd154c0d8c07362a8eebf36bd43091e7cf8948cf0e1a455e2d4fc0fb7bb0da2d57dd48484eb5611f2c711d106e13e618700713aec04 SHA512 af40c3642abec1333dd46a53094809f2e5b4a6a8013ba76607a6d86fb813ee803ff645bd05dd3fdc226634c2d8ffe37647f18a4544545379f2af83f8d0a13ff3
EBUILD dhcpcd-9.5.1.ebuild 4610 BLAKE2B e74ed2bcac66ce60354b6a1d5fe606b91c87057db2e23dd31fd1035aa5ab05042053c62d04b406c5ff9c1b96a2e196a60a8df699c7755319ca50a58f627e684e SHA512 88976827203f49c28d45cb0dfd65b1f71e881e53c617e3cc131f6886197cfcc50dfaa6d0d1a2e6e678e12f9964aa50f70d102475bcbcc9431e6d5f4c98c5120b
-EBUILD dhcpcd-9999.ebuild 4825 BLAKE2B 770a30abb6aa31c7c980f9ae97f53ee6390e9aa2f147c2290daf1e3b0202e7ad9c366fbf389e464b0766e8d1a42ecfc643c0e11ad55490d587f039c0def60f56 SHA512 ea7aaa97d18efecb1abbb2ad4b969138e5b4c0b46b772d1c2b5ecc9a8ae844fd320831b9a7eadd03178daa70324a23e3e6f73a3cb36929364776a5f62ee75939
+EBUILD dhcpcd-9999.ebuild 4906 BLAKE2B 467184746097a6a81fbd96a75379a59871e5f7f12fcc8ec5f0612d12df5ae2c01bcae44c1f9f25095a55ba2b936bec7a37ef471fe65c9f435891cf55c1f9ab36 SHA512 e17ef164b3aa95caec81113ab65b3d2f0d5fab5e20537835b6c70425231ac7fc3e520a0d24b9f6cc94cb4df4449025b9468178789d8d5d5d52aeadb4620e6628
MISC metadata.xml 714 BLAKE2B 2ee7c968d6c9285404d5cd22afdf2d62db42af2d3d35f7784dffe80d448ea96dec7dcaa2d4784aa35ab7002de5784b191a71cb854eeede645fb3bf018c19f37b SHA512 44cb0105baac58bc24a7ff3d868ab2eb01d7f1447ca5f6ab830c60d8dc46212bb064bdb67d48bb86908aa9803b5dc887fd51733fccda8338828317f10895ea45
diff --git a/net-misc/dhcpcd/dhcpcd-10.0.3.ebuild b/net-misc/dhcpcd/dhcpcd-10.0.3.ebuild
deleted file mode 100644
index f311304756fa..000000000000
--- a/net-misc/dhcpcd/dhcpcd-10.0.3.ebuild
+++ /dev/null
@@ -1,154 +0,0 @@
-# Copyright 1999-2023 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 ~ia64 ~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
- )
-"
-
-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.5-r1.ebuild b/net-misc/dhcpcd/dhcpcd-10.0.5-r1.ebuild
deleted file mode 100644
index 0702947d5bac..000000000000
--- a/net-misc/dhcpcd/dhcpcd-10.0.5-r1.ebuild
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright 1999-2023 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 ~ia64 ~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
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/10.0.5
-)
-
-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-r1.ebuild b/net-misc/dhcpcd/dhcpcd-10.0.6-r1.ebuild
deleted file mode 100644
index cd313329537c..000000000000
--- a/net-misc/dhcpcd/dhcpcd-10.0.6-r1.ebuild
+++ /dev/null
@@ -1,169 +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 ~ia64 ~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
-)
-
-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.ebuild b/net-misc/dhcpcd/dhcpcd-10.0.6-r3.ebuild
index 914373137e7d..3fcb61425cc4 100644
--- a/net-misc/dhcpcd/dhcpcd-10.0.6.ebuild
+++ b/net-misc/dhcpcd/dhcpcd-10.0.6-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -25,7 +25,10 @@ LICENSE="BSD-2 BSD ISC MIT"
SLOT="0"
IUSE="debug +embedded ipv6 privsep +udev"
-DEPEND="udev? ( virtual/udev )"
+DEPEND="
+ app-crypt/libmd
+ udev? ( virtual/udev )
+"
RDEPEND="
${DEPEND}
privsep? (
@@ -45,6 +48,12 @@ QA_CONFIG_IMPL_DECL_SKIP=(
hmac
)
+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"
diff --git a/net-misc/dhcpcd/dhcpcd-9999.ebuild b/net-misc/dhcpcd/dhcpcd-9999.ebuild
index 914373137e7d..1c3bbc87d456 100644
--- a/net-misc/dhcpcd/dhcpcd-9999.ebuild
+++ b/net-misc/dhcpcd/dhcpcd-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -25,7 +25,10 @@ LICENSE="BSD-2 BSD ISC MIT"
SLOT="0"
IUSE="debug +embedded ipv6 privsep +udev"
-DEPEND="udev? ( virtual/udev )"
+DEPEND="
+ app-crypt/libmd
+ udev? ( virtual/udev )
+"
RDEPEND="
${DEPEND}
privsep? (
@@ -45,6 +48,10 @@ QA_CONFIG_IMPL_DECL_SKIP=(
hmac
)
+PATCHES=(
+ "${FILESDIR}"/${PN}-10.0.6-fix-lib-check.patch
+)
+
src_configure() {
local myeconfargs=(
--dbdir="${EPREFIX}/var/lib/dhcpcd"
diff --git a/net-misc/dhcpcd/files/10.0.5/0001-control-fix-hangup-non-privsep-builds.patch b/net-misc/dhcpcd/files/10.0.5/0001-control-fix-hangup-non-privsep-builds.patch
deleted file mode 100644
index 632cf402fc94..000000000000
--- a/net-misc/dhcpcd/files/10.0.5/0001-control-fix-hangup-non-privsep-builds.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-https://github.com/NetworkConfiguration/dhcpcd/issues/262
-https://github.com/NetworkConfiguration/dhcpcd/commit/584b52db330a96471ff9301b85ce47ebb065a8a4
-
-From 584b52db330a96471ff9301b85ce47ebb065a8a4 Mon Sep 17 00:00:00 2001
-From: Roy Marples <roy@marples.name>
-Date: Sun, 12 Nov 2023 11:30:01 +0000
-Subject: [PATCH] control: Fix hangup for non privsep builds
-
-Fix related to #262.
---- a/src/control.c
-+++ b/src/control.c
-@@ -113,8 +113,9 @@ control_handle_read(struct fd_list *fd)
- ssize_t bytes;
-
- bytes = read(fd->fd, buffer, sizeof(buffer) - 1);
-- if (bytes == -1) {
-+ if (bytes == -1)
- logerr(__func__);
-+ if (bytes == -1 || bytes == 0) {
- control_hangup(fd);
- return;
- }
-
diff --git a/net-misc/dhcpcd/files/10.0.5/0002-dhcpcd-detach-from-launcher.patch b/net-misc/dhcpcd/files/10.0.5/0002-dhcpcd-detach-from-launcher.patch
deleted file mode 100644
index 44de6a83f843..000000000000
--- a/net-misc/dhcpcd/files/10.0.5/0002-dhcpcd-detach-from-launcher.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-https://github.com/NetworkConfiguration/dhcpcd/issues/262
-https://github.com/NetworkConfiguration/dhcpcd/commit/21d020b00e60e71b1300d89815f914145d7372f6
-
-From 21d020b00e60e71b1300d89815f914145d7372f6 Mon Sep 17 00:00:00 2001
-From: Roy Marples <roy@marples.name>
-Date: Sun, 12 Nov 2023 12:16:53 +0000
-Subject: [PATCH] dhcpcd: Detach from launcher before stopping root process
-
-This fixes non privsep builds where the launcher reports dhcpcd
-hungup. Unsure why this happens, but it should not be a problem.
-
-While here, shutdown has no effect on non STREAM sockets and
-remove the silly error logging in fork_cb that we read an
-error. We already printed the error so this makes no sense.
-
-Hopefully fixes #262.
---- a/src/dhcpcd.c
-+++ b/src/dhcpcd.c
-@@ -395,7 +395,6 @@ dhcpcd_daemonise(struct dhcpcd_ctx *ctx)
- logerr("write");
- ctx->options |= DHCPCD_DAEMONISED;
- // dhcpcd_fork_cb will close the socket
-- shutdown(ctx->fork_fd, SHUT_RDWR);
- #endif
- }
-
-@@ -1877,8 +1876,6 @@ dhcpcd_fork_cb(void *arg, unsigned short events)
- if (ctx->options & DHCPCD_FORKED) {
- if (exit_code == EXIT_SUCCESS)
- logdebugx("forked to background");
-- else
-- logerrx("exited with code %d", exit_code);
- eloop_exit(ctx->eloop, exit_code);
- } else
- dhcpcd_signal_cb(exit_code, ctx);
-@@ -2738,8 +2735,19 @@ main(int argc, char **argv, char **envp)
- if (ps_stopwait(&ctx) != EXIT_SUCCESS)
- i = EXIT_FAILURE;
- #endif
-- if (ctx.options & DHCPCD_STARTED && !(ctx.options & DHCPCD_FORKED))
-+ if (ctx.options & DHCPCD_STARTED && !(ctx.options & DHCPCD_FORKED)) {
- loginfox(PACKAGE " exited");
-+#ifdef USE_SIGNALS
-+ /* Detach from the launch process.
-+ * This *should* happen after we stop the root process,
-+ * but for some reason non privsep builds get a zero length
-+ * read in dhcpcd_fork_cb(). */
-+ if (ctx.fork_fd != -1) {
-+ if (write(ctx.fork_fd, &i, sizeof(i)) == -1)
-+ logerr("%s: write", __func__);
-+ }
-+#endif
-+ }
- #ifdef PRIVSEP
- if (ps_root_stop(&ctx) == -1)
- i = EXIT_FAILURE;
-@@ -2753,12 +2761,6 @@ main(int argc, char **argv, char **envp)
- setproctitle_fini();
- #endif
- #ifdef USE_SIGNALS
-- if (ctx.options & DHCPCD_STARTED) {
-- /* Try to detach from the launch process. */
-- if (ctx.fork_fd != -1 &&
-- write(ctx.fork_fd, &i, sizeof(i)) == -1)
-- logerr("%s: write", __func__);
-- }
- if (ctx.options & (DHCPCD_FORKED | DHCPCD_PRIVSEP))
- _exit(i); /* so atexit won't remove our pidfile */
- #endif
diff --git a/net-misc/dhcpcd/files/10.0.5/0003-control-abort-control-recv-path-hangup.patch b/net-misc/dhcpcd/files/10.0.5/0003-control-abort-control-recv-path-hangup.patch
deleted file mode 100644
index de4ee353ccf3..000000000000
--- a/net-misc/dhcpcd/files/10.0.5/0003-control-abort-control-recv-path-hangup.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-https://github.com/NetworkConfiguration/dhcpcd/issues/262
-https://github.com/NetworkConfiguration/dhcpcd/commit/3b4c71859c45b9405f96a5ee8fce04bd3014b2d0
-
-From 3b4c71859c45b9405f96a5ee8fce04bd3014b2d0 Mon Sep 17 00:00:00 2001
-From: Roy Marples <roy@marples.name>
-Date: Mon, 13 Nov 2023 10:24:15 +0000
-Subject: [PATCH] control: Abort control recv path on hangup
-
-This fixes a crash when we try and re-use it in another function.
---- a/src/control.c
-+++ b/src/control.c
-@@ -106,7 +106,7 @@ control_hangup(struct fd_list *fd)
- control_free(fd);
- }
-
--static void
-+static int
- control_handle_read(struct fd_list *fd)
- {
- char buffer[1024];
-@@ -117,7 +117,7 @@ control_handle_read(struct fd_list *fd)
- logerr(__func__);
- if (bytes == -1 || bytes == 0) {
- control_hangup(fd);
-- return;
-+ return -1;
- }
-
- #ifdef PRIVSEP
-@@ -129,21 +129,23 @@ control_handle_read(struct fd_list *fd)
- fd->flags &= ~FD_SENDLEN;
- if (err == -1) {
- logerr(__func__);
-- return;
-+ return 0;
- }
- if (err == 1 &&
- ps_ctl_sendargs(fd, buffer, (size_t)bytes) == -1) {
- logerr(__func__);
- control_free(fd);
-+ return -1;
- }
-- return;
-+ return 0;
- }
- #endif
-
- control_recvdata(fd, buffer, (size_t)bytes);
-+ return 0;
- }
-
--static void
-+static int
- control_handle_write(struct fd_list *fd)
- {
- struct iovec iov[2];
-@@ -170,7 +172,7 @@ control_handle_write(struct fd_list *fd)
- logerr("%s: write", __func__);
- }
- control_hangup(fd);
-- return;
-+ return -1;
- }
-
- TAILQ_REMOVE(&fd->queue, data, next);
-@@ -183,7 +185,7 @@ control_handle_write(struct fd_list *fd)
- #endif
-
- if (TAILQ_FIRST(&fd->queue) != NULL)
-- return;
-+ return 0;
-
- #ifdef PRIVSEP
- if (IN_PRIVSEP_SE(fd->ctx) && !(fd->flags & FD_LISTEN)) {
-@@ -196,9 +198,9 @@ control_handle_write(struct fd_list *fd)
- if (eloop_event_add(fd->ctx->eloop, fd->fd, ELE_READ,
- control_handle_data, fd) == -1)
- logerr("%s: eloop_event_add", __func__);
-+ return 0;
- }
-
--
- static void
- control_handle_data(void *arg, unsigned short events)
- {
-@@ -207,10 +209,14 @@ control_handle_data(void *arg, unsigned short events)
- if (!(events & (ELE_READ | ELE_WRITE | ELE_HANGUP)))
- logerrx("%s: unexpected event 0x%04x", __func__, events);
-
-- if (events & ELE_WRITE && !(events & ELE_HANGUP))
-- control_handle_write(fd);
-- if (events & ELE_READ)
-- control_handle_read(fd);
-+ if (events & ELE_WRITE && !(events & ELE_HANGUP)) {
-+ if (control_handle_write(fd) == -1)
-+ return;
-+ }
-+ if (events & ELE_READ) {
-+ if (control_handle_read(fd) == -1)
-+ return;
-+ }
- if (events & ELE_HANGUP)
- control_hangup(fd);
- }
-
diff --git a/net-misc/dhcpcd/files/10.0.5/0004-dhcpcd-remove-stdio-callback-detach-daemonize.patch b/net-misc/dhcpcd/files/10.0.5/0004-dhcpcd-remove-stdio-callback-detach-daemonize.patch
deleted file mode 100644
index 331f60e739a1..000000000000
--- a/net-misc/dhcpcd/files/10.0.5/0004-dhcpcd-remove-stdio-callback-detach-daemonize.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-https://github.com/NetworkConfiguration/dhcpcd/issues/262
-https://github.com/NetworkConfiguration/dhcpcd/commit/ea53344a2430736124bf9fa62acb0d3107acd58f
-
-From ea53344a2430736124bf9fa62acb0d3107acd58f Mon Sep 17 00:00:00 2001
-From: Roy Marples <roy@marples.name>
-Date: Mon, 13 Nov 2023 10:29:58 +0000
-Subject: [PATCH] dhcpcd: Remove stdio callback and detach on daemonise
-
-For some reason, the stdio callback is extremely flaky on
-*some* Linux based distributions making it very hard to debug some
-things.
-Removing it is fine because we now enforce that we have file descriptors
-for stdin, stdout and stdrr on launch and dup them to /dev/null on daemonise.
-
-It's also interesting to see behavioural differences between
-some socketpair implementations that emit a HANGUP and some don't.
-
-As such, we now close the fork socket on daemonise once more AND
-in the fork_cb depending on if we hangup or read zero first.
-
-Fixes #262
---- a/src/dhcpcd.c
-+++ b/src/dhcpcd.c
-@@ -364,7 +364,7 @@ dhcpcd_daemonise(struct dhcpcd_ctx *ctx)
- errno = ENOSYS;
- return;
- #else
-- int i;
-+ int exit_code;
-
- if (ctx->options & DHCPCD_DAEMONISE &&
- !(ctx->options & (DHCPCD_DAEMONISED | DHCPCD_NOWAITIP)))
-@@ -385,16 +385,19 @@ dhcpcd_daemonise(struct dhcpcd_ctx *ctx)
- return;
-
- #ifdef PRIVSEP
-- ps_daemonised(ctx);
-+ if (IN_PRIVSEP(ctx))
-+ ps_daemonised(ctx);
-+ else
- #else
-- dhcpcd_daemonised(ctx);
-+ dhcpcd_daemonised(ctx);
- #endif
-
-- i = EXIT_SUCCESS;
-- if (write(ctx->fork_fd, &i, sizeof(i)) == -1)
-- logerr("write");
-- ctx->options |= DHCPCD_DAEMONISED;
-- // dhcpcd_fork_cb will close the socket
-+ eloop_event_delete(ctx->eloop, ctx->fork_fd);
-+ exit_code = EXIT_SUCCESS;
-+ if (write(ctx->fork_fd, &exit_code, sizeof(exit_code)) == -1)
-+ logerr(__func__);
-+ close(ctx->fork_fd);
-+ ctx->fork_fd = -1;
- #endif
- }
-
-@@ -1814,30 +1817,6 @@ dhcpcd_readdump(struct dhcpcd_ctx *ctx)
- dhcpcd_readdump0, ctx);
- }
-
--static void
--dhcpcd_stderr_cb(void *arg, unsigned short events)
--{
-- struct dhcpcd_ctx *ctx = arg;
-- char log[BUFSIZ];
-- ssize_t len;
--
-- if (events & ELE_HANGUP)
-- eloop_exit(ctx->eloop, EXIT_SUCCESS);
--
-- if (!(events & ELE_READ))
-- return;
--
-- len = read(ctx->stderr_fd, log, sizeof(log) - 1);
-- if (len == -1) {
-- if (errno != ECONNRESET)
-- logerr(__func__);
-- return;
-- }
--
-- log[len] = '\0';
-- fprintf(stderr, "%s", log);
--}
--
- static void
- dhcpcd_fork_cb(void *arg, unsigned short events)
- {
-@@ -1928,7 +1907,7 @@ main(int argc, char **argv, char **envp)
- ssize_t len;
- #if defined(USE_SIGNALS) || !defined(THERE_IS_NO_FORK)
- pid_t pid;
-- int fork_fd[2], stderr_fd[2];
-+ int fork_fd[2];
- #endif
- #ifdef USE_SIGNALS
- int sig = 0;
-@@ -2013,22 +1992,17 @@ main(int argc, char **argv, char **envp)
- TAILQ_INIT(&ctx.ps_processes);
- #endif
-
-- /* Check our streams for validity */
-- ctx.stdin_valid = fcntl(STDIN_FILENO, F_GETFD) != -1;
-- ctx.stdout_valid = fcntl(STDOUT_FILENO, F_GETFD) != -1;
-- ctx.stderr_valid = fcntl(STDERR_FILENO, F_GETFD) != -1;
-+ logopts = LOGERR_LOG | LOGERR_LOG_DATE | LOGERR_LOG_PID;
-
-- /* Even we if we don't have input/outputs, we need to
-- * ensure they are setup for shells. */
-- if (!ctx.stdin_valid)
-+ /* Ensure we have stdin, stdout and stderr file descriptors.
-+ * This is important as we do run scripts which expect these. */
-+ if (fcntl(STDIN_FILENO, F_GETFD) == -1)
- dup_null(STDIN_FILENO);
-- if (!ctx.stdout_valid)
-+ if (fcntl(STDOUT_FILENO, F_GETFD) == -1)
- dup_null(STDOUT_FILENO);
-- if (!ctx.stderr_valid)
-+ if (fcntl(STDERR_FILENO, F_GETFD) == -1)
- dup_null(STDERR_FILENO);
--
-- logopts = LOGERR_LOG | LOGERR_LOG_DATE | LOGERR_LOG_PID;
-- if (ctx.stderr_valid)
-+ else
- logopts |= LOGERR_ERR;
-
- i = 0;
-@@ -2398,17 +2372,13 @@ main(int argc, char **argv, char **envp)
- loginfox(PACKAGE "-" VERSION " starting");
-
- // We don't need stdin past this point
-- if (ctx.stdin_valid)
-- dup_null(STDIN_FILENO);
-+ dup_null(STDIN_FILENO);
-
- #if defined(USE_SIGNALS) && !defined(THERE_IS_NO_FORK)
- if (!(ctx.options & DHCPCD_DAEMONISE))
- goto start_manager;
-
-- if (xsocketpair(AF_UNIX, SOCK_SEQPACKET|SOCK_CXNB, 0, fork_fd) == -1 ||
-- (ctx.stderr_valid &&
-- xsocketpair(AF_UNIX, SOCK_SEQPACKET|SOCK_CXNB, 0, stderr_fd) == -1))
-- {
-+ if (xsocketpair(AF_UNIX, SOCK_SEQPACKET|SOCK_CXNB, 0, fork_fd) == -1) {
- logerr("socketpair");
- goto exit_failure;
- }
-@@ -2429,22 +2399,6 @@ main(int argc, char **argv, char **envp)
- dhcpcd_fork_cb, &ctx) == -1)
- logerr("%s: eloop_event_add", __func__);
-
-- /*
-- * Redirect stderr to the stderr socketpair.
-- * Redirect stdout as well.
-- * dhcpcd doesn't output via stdout, but something in
-- * a called script might.
-- */
-- if (ctx.stderr_valid) {
-- if (dup2(stderr_fd[1], STDERR_FILENO) == -1 ||
-- (ctx.stdout_valid &&
-- dup2(stderr_fd[1], STDOUT_FILENO) == -1))
-- logerr("dup2");
-- close(stderr_fd[0]);
-- close(stderr_fd[1]);
-- } else if (ctx.stdout_valid)
-- dup_null(STDOUT_FILENO);
--
- if (setsid() == -1) {
- logerr("%s: setsid", __func__);
- goto exit_failure;
-@@ -2478,19 +2432,6 @@ main(int argc, char **argv, char **envp)
- dhcpcd_fork_cb, &ctx) == -1)
- logerr("%s: eloop_event_add", __func__);
-
-- if (ctx.stderr_valid) {
-- ctx.stderr_fd = stderr_fd[0];
-- close(stderr_fd[1]);
--#ifdef PRIVSEP_RIGHTS
-- if (ps_rights_limit_fd(ctx.stderr_fd) == 1) {
-- logerr("ps_rights_limit_fd");
-- goto exit_failure;
-- }
--#endif
-- if (eloop_event_add(ctx.eloop, ctx.stderr_fd, ELE_READ,
-- dhcpcd_stderr_cb, &ctx) == -1)
-- logerr("%s: eloop_event_add", __func__);
-- }
- #ifdef PRIVSEP
- if (IN_PRIVSEP(&ctx) && ps_managersandbox(&ctx, NULL) == -1)
- goto exit_failure;
-@@ -2602,6 +2543,7 @@ main(int argc, char **argv, char **envp)
- if (ifp->active == IF_ACTIVE_USER)
- break;
- }
-+
- if (ifp == NULL) {
- if (ctx.ifc == 0) {
- int loglevel;
-@@ -2735,24 +2677,22 @@ main(int argc, char **argv, char **envp)
- if (ps_stopwait(&ctx) != EXIT_SUCCESS)
- i = EXIT_FAILURE;
- #endif
-- if (ctx.options & DHCPCD_STARTED && !(ctx.options & DHCPCD_FORKED)) {
-+ if (ctx.options & DHCPCD_STARTED && !(ctx.options & DHCPCD_FORKED))
- loginfox(PACKAGE " exited");
--#ifdef USE_SIGNALS
-- /* Detach from the launch process.
-- * This *should* happen after we stop the root process,
-- * but for some reason non privsep builds get a zero length
-- * read in dhcpcd_fork_cb(). */
-- if (ctx.fork_fd != -1) {
-- if (write(ctx.fork_fd, &i, sizeof(i)) == -1)
-- logerr("%s: write", __func__);
-- }
--#endif
-- }
- #ifdef PRIVSEP
- if (ps_root_stop(&ctx) == -1)
- i = EXIT_FAILURE;
- eloop_free(ctx.ps_eloop);
- #endif
-+
-+#ifdef USE_SIGNALS
-+ /* If still attached, detach from the launcher */
-+ if (ctx.options & DHCPCD_STARTED && ctx.fork_fd != -1) {
-+ if (write(ctx.fork_fd, &i, sizeof(i)) == -1)
-+ logerr("%s: write", __func__);
-+ }
-+#endif
-+
- eloop_free(ctx.eloop);
- logclose();
- free(ctx.logfile);
-@@ -2760,6 +2700,7 @@ main(int argc, char **argv, char **envp)
- #ifdef SETPROCTITLE_H
- setproctitle_fini();
- #endif
-+
- #ifdef USE_SIGNALS
- if (ctx.options & (DHCPCD_FORKED | DHCPCD_PRIVSEP))
- _exit(i); /* so atexit won't remove our pidfile */
---- a/src/dhcpcd.h
-+++ b/src/dhcpcd.h
-@@ -116,10 +116,6 @@ struct passwd;
- struct dhcpcd_ctx {
- char pidfile[sizeof(PIDFILE) + IF_NAMESIZE + 1];
- char vendor[256];
-- bool stdin_valid; /* It's possible stdin, stdout and stderr */
-- bool stdout_valid; /* could be closed when dhcpcd starts. */
-- bool stderr_valid;
-- int stderr_fd; /* FD for logging to stderr */
- int fork_fd; /* FD for the fork init signal pipe */
- const char *cffile;
- unsigned long long options;
---- a/src/privsep.c
-+++ b/src/privsep.c
-@@ -172,8 +172,7 @@ ps_dropprivs(struct dhcpcd_ctx *ctx)
- * Obviously this won't work if we are using a logfile
- * or redirecting stderr to a file. */
- if ((ctx->options & DHC_NOCHKIO) == DHC_NOCHKIO ||
-- (ctx->logfile == NULL &&
-- (!ctx->stderr_valid || isatty(STDERR_FILENO) == 1)))
-+ (ctx->logfile == NULL && isatty(STDERR_FILENO) == 1))
- {
- if (setrlimit(RLIMIT_FSIZE, &rzero) == -1)
- logerr("setrlimit RLIMIT_FSIZE");
-@@ -305,14 +304,11 @@ ps_rights_limit_stdio(struct dhcpcd_ctx *ctx)
- const int iebadf = CAPH_IGNORE_EBADF;
- int error = 0;
-
-- if (ctx->stdin_valid &&
-- caph_limit_stream(STDIN_FILENO, CAPH_READ | iebadf) == -1)
-+ if (caph_limit_stream(STDIN_FILENO, CAPH_READ | iebadf) == -1)
- error = -1;
-- if (ctx->stdout_valid &&
-- caph_limit_stream(STDOUT_FILENO, CAPH_WRITE | iebadf) == -1)
-+ if (caph_limit_stream(STDOUT_FILENO, CAPH_WRITE | iebadf) == -1)
- error = -1;
-- if (ctx->stderr_valid &&
-- caph_limit_stream(STDERR_FILENO, CAPH_WRITE | iebadf) == -1)
-+ if (caph_limit_stream(STDERR_FILENO, CAPH_WRITE | iebadf) == -1)
- error = -1;
-
- return error;
diff --git a/net-misc/dhcpcd/files/10.0.5/0005-fix-privsep-builds-for-prior.patch b/net-misc/dhcpcd/files/10.0.5/0005-fix-privsep-builds-for-prior.patch
deleted file mode 100644
index bafabfcb0275..000000000000
--- a/net-misc/dhcpcd/files/10.0.5/0005-fix-privsep-builds-for-prior.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-https://github.com/NetworkConfiguration/dhcpcd/commit/8d12632c670f02d8a685e80c8abad7049d3dd18f
-
-From 8d12632c670f02d8a685e80c8abad7049d3dd18f Mon Sep 17 00:00:00 2001
-From: Roy Marples <roy@marples.name>
-Date: Mon, 13 Nov 2023 15:54:50 +0000
-Subject: [PATCH] Fix privsep builds for prior.
-
---- a/src/dhcpcd.c
-+++ b/src/dhcpcd.c
-@@ -388,9 +388,8 @@ dhcpcd_daemonise(struct dhcpcd_ctx *ctx)
- if (IN_PRIVSEP(ctx))
- ps_daemonised(ctx);
- else
--#else
-- dhcpcd_daemonised(ctx);
- #endif
-+ dhcpcd_daemonised(ctx);
-
- eloop_event_delete(ctx->eloop, ctx->fork_fd);
- exit_code = EXIT_SUCCESS;
diff --git a/net-misc/dhcpcd/files/10.0.5/0006-fix-unused-var-warning.patch b/net-misc/dhcpcd/files/10.0.5/0006-fix-unused-var-warning.patch
deleted file mode 100644
index 9672dc5b9570..000000000000
--- a/net-misc/dhcpcd/files/10.0.5/0006-fix-unused-var-warning.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-https://github.com/NetworkConfiguration/dhcpcd/commit/6788608eb0fcd32fd23974100cdd42d3174cb8d1
-
-From 6788608eb0fcd32fd23974100cdd42d3174cb8d1 Mon Sep 17 00:00:00 2001
-From: Roy Marples <roy@marples.name>
-Date: Mon, 13 Nov 2023 16:05:04 +0000
-Subject: [PATCH] Fix an unused var warning for capsicum for prior
-
---- a/src/privsep.c
-+++ b/src/privsep.c
-@@ -299,7 +299,7 @@ ps_rights_limit_fdpair(int fd[])
- }
-
- static int
--ps_rights_limit_stdio(struct dhcpcd_ctx *ctx)
-+ps_rights_limit_stdio()
- {
- const int iebadf = CAPH_IGNORE_EBADF;
- int error = 0;
-@@ -452,7 +452,7 @@ ps_startprocess(struct ps_process *psp,
- ctx->ps_log_root_fd = -1;
- }
- #ifdef PRIVSEP_RIGHTS
-- if (ps_rights_limit_stdio(ctx) == -1) {
-+ if (ps_rights_limit_stdio() == -1) {
- logerr("ps_rights_limit_stdio");
- goto errexit;
- }
-@@ -666,7 +666,7 @@ ps_managersandbox(struct dhcpcd_ctx *ctx, const char *_pledge)
- #ifdef PRIVSEP_RIGHTS
- if ((ctx->pf_inet_fd != -1 &&
- ps_rights_limit_ioctl(ctx->pf_inet_fd) == -1) ||
-- ps_rights_limit_stdio(ctx) == -1)
-+ ps_rights_limit_stdio() == -1)
- {
- logerr("%s: cap_rights_limit", __func__);
- return -1;
-
diff --git a/net-misc/dhcpcd/files/dhcpcd-10.0.6-fix-lib-check.patch b/net-misc/dhcpcd/files/dhcpcd-10.0.6-fix-lib-check.patch
new file mode 100644
index 000000000000..0d609822aad1
--- /dev/null
+++ b/net-misc/dhcpcd/files/dhcpcd-10.0.6-fix-lib-check.patch
@@ -0,0 +1,16 @@
+--- a/configure
++++ b/configure
+@@ -361,11 +361,8 @@ if [ -e "$LDELF" ]; then
+ echo "LDFLAGS+= -Wl,-rpath=${LIBDIR}" >>$CONFIG_MK
+ fi
+
+-if [ -z "$PREFIX" ] || [ "$PREFIX" = / ]; then
+- ALLOW_USR_LIBS=false
+-else
+- ALLOW_USR_LIBS=true
+-fi
++ALLOW_USR_LIBS=true
++
+ case "$OS" in
+ linux*|solaris*|sunos*|kfreebsd*|dragonfly*|freebsd*) ;;
+ *)