diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-04 05:48:38 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-04 05:48:38 -0500 |
| commit | bfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch) | |
| tree | 0d7a74b4463ee387f9cf9368ceb1b757f694f72a /net-misc/dhcpcd | |
| parent | f716a9fe6455d39eef01e718aae68dae61c19704 (diff) | |
| download | baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip | |
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'net-misc/dhcpcd')
| -rw-r--r-- | net-misc/dhcpcd/Manifest | 6 | ||||
| -rw-r--r-- | net-misc/dhcpcd/dhcpcd-10.2.4.ebuild | 173 | ||||
| -rw-r--r-- | net-misc/dhcpcd/dhcpcd-10.3.0.ebuild | 173 | ||||
| -rw-r--r-- | net-misc/dhcpcd/dhcpcd-10.3.1.ebuild | 180 | ||||
| -rw-r--r-- | net-misc/dhcpcd/dhcpcd-10.3.2.ebuild | 180 | ||||
| -rw-r--r-- | net-misc/dhcpcd/dhcpcd-9999.ebuild | 180 | ||||
| -rw-r--r-- | net-misc/dhcpcd/files/dhcpcd-10.0.6-fix-lib-check.patch | 16 | ||||
| -rw-r--r-- | net-misc/dhcpcd/files/dhcpcd.initd-r1 | 17 | ||||
| -rw-r--r-- | net-misc/dhcpcd/files/dhcpcd.service-r1 | 15 | ||||
| -rw-r--r-- | net-misc/dhcpcd/metadata.xml | 24 |
10 files changed, 964 insertions, 0 deletions
diff --git a/net-misc/dhcpcd/Manifest b/net-misc/dhcpcd/Manifest new file mode 100644 index 000000000000..e1e21492727c --- /dev/null +++ b/net-misc/dhcpcd/Manifest @@ -0,0 +1,6 @@ +DIST dhcpcd-10.2.4.tar.xz 276444 BLAKE2B cdc5c345c58f24852ecf7e6655446f9385c860d9095cca8fa40eaae27a1d05dfad667e1e39af6ace2bd73acaa799210d6345462c90a88f89839912416263fdef SHA512 e6c0caccd590b8c90efe8c60743b6ca4b6cd0c2c170abd8ea940be48f1b75f6767ccbd17eac42a4f1eba8349197dbdfc923696765baab79d49916c8e674f30c8 +DIST dhcpcd-10.3.0.tar.xz 279100 BLAKE2B 657d20b5b92769615035b5d8792c77280a2ef34a96f64f4c5a70d3ee51a24b9dec48f2a4f59b75d3e5505685eece0a4f163518fd1f027b09945287a30b075f8a SHA512 311113fe525d783caaa77ef962d5b81d74c9cd35e77d19070a9f4b8eff1f7da1a0abc21a55b4a54cf98e3bd4c2de5bea837e319640c797410380a82656cd0435 +DIST dhcpcd-10.3.1.tar.xz 279320 BLAKE2B 5abed98813c129add43d91e83974e05bb1a8be3ef8586e72110f33e3592f2e3f09ed42936fdfcbae4681cf0da397f2bfb900b8d41847bb66ebd7cfd17ec8b454 SHA512 89516cde49b1c37ff4e8574a04654b4196f00ec1e93d5d730e759e4d335e05d2747285db7aab6eda555561ef73348705667660c37b0f9a84889754b8074e0ed7 +DIST dhcpcd-10.3.1.tar.xz.asc 488 BLAKE2B 5b00f138ec33efa39de87891308ddda7e18594cd4f01bec6627815c9e92acb45ccf896b7a438c825cbef020c479ade638749a8c6a5e2a7aee0079d2954fb8e0b SHA512 21131c5cf29802ab958ae0d08346099b0e409a70a3d2ecb952f17fa64801de6c0a58d16627414232b308213e8f4172286779d08fe2319e0c7ae54feb506019f6 +DIST dhcpcd-10.3.2.tar.xz 279368 BLAKE2B 55a88fe29bbe1a99f8d521ab6b35765afd912a9fcf8f3bcca26a9afef418b179ed73dbbcb440f5625813890ed74b28fc11ae7d62aba94680d7c5c1c07f46fbc8 SHA512 5944fa141bd40c8aabb2c3c46748d736f69f6fd0a773386508cbff868d8f69d88305a0fd97dff4da21c5662918016b36d8327498e5b0509804dbec80603f6d6d +DIST dhcpcd-10.3.2.tar.xz.asc 488 BLAKE2B 20ad844a553c0d795591db349d44c1fb7b48c368366a1290e9f3312b07d8e1963b59e11163e92f2c2fe036dad7796e14d46ecb0d50722f588ee72a62327c3c5a SHA512 ab9bb23a3a2fa4042a37655ef38aa875c834a9731640d8d7be360296a8e88fedbbc0a1b4598fe9ee302c05e6d7a04f76de5801dba8e37b5dc1cf538bc8fd986d diff --git a/net-misc/dhcpcd/dhcpcd-10.2.4.ebuild b/net-misc/dhcpcd/dhcpcd-10.2.4.ebuild new file mode 100644 index 000000000000..acda1dcf0554 --- /dev/null +++ b/net-misc/dhcpcd/dhcpcd-10.2.4.ebuild @@ -0,0 +1,173 @@ +# Copyright 1999-2025 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" +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 + timingsafe_bcmp + # 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 +} diff --git a/net-misc/dhcpcd/dhcpcd-10.3.0.ebuild b/net-misc/dhcpcd/dhcpcd-10.3.0.ebuild new file mode 100644 index 000000000000..7728f29e63e6 --- /dev/null +++ b/net-misc/dhcpcd/dhcpcd-10.3.0.ebuild @@ -0,0 +1,173 @@ +# Copyright 1999-2026 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" +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 + timingsafe_bcmp + # 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 +} diff --git a/net-misc/dhcpcd/dhcpcd-10.3.1.ebuild b/net-misc/dhcpcd/dhcpcd-10.3.1.ebuild new file mode 100644 index 000000000000..84fe8c2b0bf8 --- /dev/null +++ b/net-misc/dhcpcd/dhcpcd-10.3.1.ebuild @@ -0,0 +1,180 @@ +# Copyright 1999-2026 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 + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/roymarples.asc + inherit verify-sig + + 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 + verify-sig? ( https://github.com/NetworkConfiguration/dhcpcd/releases/download/v${PV}/${MY_P}.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-roymarples )" +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 + timingsafe_bcmp + # 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 +} diff --git a/net-misc/dhcpcd/dhcpcd-10.3.2.ebuild b/net-misc/dhcpcd/dhcpcd-10.3.2.ebuild new file mode 100644 index 000000000000..47a9d5f68fdf --- /dev/null +++ b/net-misc/dhcpcd/dhcpcd-10.3.2.ebuild @@ -0,0 +1,180 @@ +# Copyright 1999-2026 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 + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/roymarples.asc + inherit verify-sig + + 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 + verify-sig? ( https://github.com/NetworkConfiguration/dhcpcd/releases/download/v${PV}/${MY_P}.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}" + + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-roymarples )" +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 + timingsafe_bcmp + # 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 +} diff --git a/net-misc/dhcpcd/dhcpcd-9999.ebuild b/net-misc/dhcpcd/dhcpcd-9999.ebuild new file mode 100644 index 000000000000..84fe8c2b0bf8 --- /dev/null +++ b/net-misc/dhcpcd/dhcpcd-9999.ebuild @@ -0,0 +1,180 @@ +# Copyright 1999-2026 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 + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/roymarples.asc + inherit verify-sig + + 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 + verify-sig? ( https://github.com/NetworkConfiguration/dhcpcd/releases/download/v${PV}/${MY_P}.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-roymarples )" +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 + timingsafe_bcmp + # 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 +} 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*) ;; + *) diff --git a/net-misc/dhcpcd/files/dhcpcd.initd-r1 b/net-misc/dhcpcd/files/dhcpcd.initd-r1 new file mode 100644 index 000000000000..2616a743b0d3 --- /dev/null +++ b/net-misc/dhcpcd/files/dhcpcd.initd-r1 @@ -0,0 +1,17 @@ +#!/sbin/openrc-run +# Copyright 2007-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +command=${RC_PREFIX}/sbin/dhcpcd +pidfile=${RC_PREFIX}/var/run/dhcpcd/pid +command_args=-q +name="DHCP Client Daemon" + +depend() +{ + provide net + need localmount + use logger network + after bootmisc modules + before dns +} diff --git a/net-misc/dhcpcd/files/dhcpcd.service-r1 b/net-misc/dhcpcd/files/dhcpcd.service-r1 new file mode 100644 index 000000000000..b4309c39b4c3 --- /dev/null +++ b/net-misc/dhcpcd/files/dhcpcd.service-r1 @@ -0,0 +1,15 @@ +[Unit] +Description=Lightweight DHCP client daemon +Wants=network.target +Before=network.target network-online.target + +[Service] +Type=forking +ExecStart=/sbin/dhcpcd -q +PIDFile=/run/dhcpcd/pid +# Avoid duplicate output on stderr/syslog +StandardOutput=null +StandardError=null + +[Install] +WantedBy=multi-user.target diff --git a/net-misc/dhcpcd/metadata.xml b/net-misc/dhcpcd/metadata.xml new file mode 100644 index 000000000000..6455e11f0a2e --- /dev/null +++ b/net-misc/dhcpcd/metadata.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>williamh@gentoo.org</email> + <name>William Hubbs</name> + </maintainer> + <maintainer type="project"> + <email>base-system@gentoo.org</email> + <name>Gentoo Base System</name> + </maintainer> + <upstream> + <remote-id type="github">NetworkConfiguration/dhcpcd</remote-id> + <remote-id type="cpe">cpe:/a:roy_marples:dhcpcd</remote-id> + </upstream> + <use> + <flag name="embedded"> + Embed the definitions of dhcp options in the dhcpcd executable + </flag> + <flag name="privsep"> + Enable support for privilege separation + </flag> + </use> +</pkgmetadata> |
