From 9e65a38a260a44292ceb8a0bf4fea5f0b5666826 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 19 Apr 2025 08:46:18 +0100 Subject: gentoo auto-resync : 19:04:2025 - 08:46:17 --- net-misc/Manifest.gz | Bin 53165 -> 53160 bytes net-misc/dhcpcd/Manifest | 2 + net-misc/dhcpcd/dhcpcd-10.2.2-r1.ebuild | 173 ++++++++++++ net-misc/dhcpcd/files/dhcpcd-10.2.2-ipv6.patch | 312 +++++++++++++++++++++ net-misc/ntpsec/Manifest | 6 +- .../ntpsec/files/ntpsec-1.2.4-pep517-no-egg.patch | 38 +++ net-misc/ntpsec/metadata.xml | 16 -- net-misc/ntpsec/ntpsec-1.2.4.ebuild | 193 +++++++++++++ 8 files changed, 723 insertions(+), 17 deletions(-) create mode 100644 net-misc/dhcpcd/dhcpcd-10.2.2-r1.ebuild create mode 100644 net-misc/dhcpcd/files/dhcpcd-10.2.2-ipv6.patch create mode 100644 net-misc/ntpsec/files/ntpsec-1.2.4-pep517-no-egg.patch create mode 100644 net-misc/ntpsec/ntpsec-1.2.4.ebuild (limited to 'net-misc') diff --git a/net-misc/Manifest.gz b/net-misc/Manifest.gz index 51871ac7338f..c4496116b991 100644 Binary files a/net-misc/Manifest.gz and b/net-misc/Manifest.gz differ diff --git a/net-misc/dhcpcd/Manifest b/net-misc/dhcpcd/Manifest index caefb3cb9ec9..9bda7f0fd5d9 100644 --- a/net-misc/dhcpcd/Manifest +++ b/net-misc/dhcpcd/Manifest @@ -1,6 +1,7 @@ AUX dhcpcd-10.0.6-fix-lib-check.patch 340 BLAKE2B 6e9f881e64676477b100bb65d4962ac4de360a21e938e79c294cd8f8cb837bbe30cdcfa8ca84b3d9558fcf3d5109ba04704c2e4bb269ba2526deed51fec0bf11 SHA512 66ac97580ae066afb4e46b15161a8331140c010764f7932218ce03112bed4bf52e316f58fbb7919c38052ce6ef2a4c36768103aa01f146161cf94169cb8ccacd AUX dhcpcd-10.1.0-seccomp-glibc-2.41.patch 870 BLAKE2B 1ea71a1a5b9d3483139617bea790ad70a989e28256afd2c2a73b0048bbfdefd1f164b548b59caf47269fba5ef6deb379c9ee6d790149a02559b6ea2334992e3b SHA512 acfce6d1966347b1b7797c96d499fe28e3a7e97c1961ab10f3fc7023826af18bcfcef7731e42444b78c5404870b75b9790eac529f346a1a68ae03f3366e91171 AUX dhcpcd-10.2.0-no-ipv6-build.patch 2878 BLAKE2B 2977a52230d9d88b5661614ff0831dc77357472ee17d39de133bd864d5e13545e9e1f9a753865139bd961548f3d27053589d6234df7dcf0f2af1716355036c50 SHA512 827bfb891f58134b508c7ec97eaa1e300c3c6b0f37e108199db0d3d5c07ae6d75e36ad7c1ffebad6182df326ecf3302b68bcb708674c7d96a45dec6c0de40a88 +AUX dhcpcd-10.2.2-ipv6.patch 9090 BLAKE2B 38d355efe17b19230dd9ea5bbda562fb87474d72177b34a5b10f7aca134bc2117b2259accd94b36da4d1b812f97504374c02864e074b4b26d399b56172368320 SHA512 3e6b6a706d33e839f59fa413259d7b7227ceaf609fea9ad96a47260af782c4b5dc40bd773106ade1eceaeb0f51e7da78fa4066df0b8b99b52dee97876d44a708 AUX dhcpcd.initd-r1 339 BLAKE2B f5c8574545d211918cba49b0e0caf22b6dd0630d3e8627e8fc4c40dc4415fd70c83889b631606085ecf87f925a7a199cd5712178a2c90186c6b8ac4f792b0789 SHA512 cd186e4c0733fcd9c333bf7c813a879c38c962bcf6a3288577f6b1632312b10f69ac68ca413c32106559d9e53fa05de78410cba677247b52bcbcf3b35024974f AUX dhcpcd.service-r1 308 BLAKE2B 558789adc2b67ee9d13b8213c9729f23dc691d3da8e96d93283c6c1fcf3733b17036df2a736166414a4a4738ca2a41f11b498326f18dace02e3b77945f7d8f23 SHA512 992b6f3c69b982f1dc01098dbecdee1ee2dc12e59646d13648f378a2e628cc612b65ee15a1373e3cacf7e712c6a6708c6824a9396b53e8ed8b0b3179f5267041 DIST dhcpcd-10.1.0.tar.xz 271660 BLAKE2B 9d47ae8b97ba082f980966a2c3f688c6a8addb10989c166dafebdb6491793815c4caddc3016334f6549923632fd01fc8ce0987eca31af01948b0f4a643f88b38 SHA512 25b3304471c85975e004f101fdd8dc6155065009e9d94719aadc6181717839c501d66740f002aa00acda73cce3c0d924f4241eed177688c4e794be301b059e04 @@ -9,6 +10,7 @@ DIST dhcpcd-10.2.2.tar.xz 275700 BLAKE2B 95777f7aedc3a68e9873dd69d2c36b0235da31d EBUILD dhcpcd-10.1.0-r1.ebuild 4972 BLAKE2B fff05e778865b69889a86e5522e8103e3ec88495ef2efcfd8184681cf22925309673f868e77d502b26ad4cb1709c3ccd180dc498187ca16fd37fde0a7ec9b7d9 SHA512 bfe60a7f0aa12b2703bd3a8320a79850c906f9b450ebb58b9610d3ef5e6b31f185a3626e1d0f0959fd3d3321b3b9fc9a63d80631e3bce48f30576f255163d0ab EBUILD dhcpcd-10.1.0.ebuild 4927 BLAKE2B 3dbfb502559abb44bd51cc3f732ae5610c493fae91f1b16e60428ea3ef31922c3d2ec4e75a040b5826607e411c07604d675fc8762c8008ef79982a0adc1a91a9 SHA512 1e4404ce6a14ec4e0bddf7d3eb169fcc50dc91e85951955896380b4798d28a97b02c7b35ebc86453a70f2798d4e72ce6b363ecf212a679f39865fff46987003c EBUILD dhcpcd-10.2.0.ebuild 4975 BLAKE2B 80cd65893ab4a5c5b3cd6e9913278d2ecfcb013c40898e3a2f26fcf7ad2f8ac11825ccd26ba633ac420df20d46f6869c3e52c77c7afe286bb7e027262b0f5960 SHA512 5e3d62016332ee3c7c40c1ae2f2e1f23fc416d22a309f6f2f7122fc990a79dbb67f1bce03328abc1a6645a2e8f5cf2468eeac1225ee99539d1612d0f80de8d71 +EBUILD dhcpcd-10.2.2-r1.ebuild 4966 BLAKE2B 037acad6e24b2f24c8d850f53844b3381288511acb244859ff1beb974b5e823aeb91a272bb4127396b9c63542dd3114ac9a412c89cb0fe1c7cac3dec487396b0 SHA512 7eb82e654cdb0373f3a032be69d5a95381a138e8d8e6ee011203c8d33d755838c35e5425129410bf812dd64dd3d47e7603325aa0651e2c0636173dbc4be243cd EBUILD dhcpcd-10.2.2.ebuild 4927 BLAKE2B 134260bb92e493b3e9de01678d9c0f8c67d4224e5ec6a7b831e377e24bf0bd84ef3f68a4fd4c239c259f3310664dd4e866c589eb134d6f1a0d3942d1246cceed SHA512 c9c7d467ba90e04b2af621a476aa4fe4754c17330757cbddedd21cdfea3fe76471bc20f45b2ebb808c0494c8faae9c94a135d76f59d8f76ef87ea83e521c495c EBUILD dhcpcd-9999.ebuild 4935 BLAKE2B c5c7a630572305a52a7edb2f9c329c3314393a94896f7b538c6e613d05eeb35eff0059186ad402c05a29130af09f231f3d8d712df413c6d6088ceb9376b52780 SHA512 d0edccb3d0047d4adf3f694f0c7625914de2e552e7aa8ef189ced54399469622cdb3a340549eb4017b391eb765d93095fd21312d78e7b7ab537c290ec07fa251 MISC metadata.xml 714 BLAKE2B 2ee7c968d6c9285404d5cd22afdf2d62db42af2d3d35f7784dffe80d448ea96dec7dcaa2d4784aa35ab7002de5784b191a71cb854eeede645fb3bf018c19f37b SHA512 44cb0105baac58bc24a7ff3d868ab2eb01d7f1447ca5f6ab830c60d8dc46212bb064bdb67d48bb86908aa9803b5dc887fd51733fccda8338828317f10895ea45 diff --git a/net-misc/dhcpcd/dhcpcd-10.2.2-r1.ebuild b/net-misc/dhcpcd/dhcpcd-10.2.2-r1.ebuild new file mode 100644 index 000000000000..d0e44d9ae704 --- /dev/null +++ b/net-misc/dhcpcd/dhcpcd-10.2.2-r1.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 ~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 + "${FILESDIR}"/${P}-ipv6.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/files/dhcpcd-10.2.2-ipv6.patch b/net-misc/dhcpcd/files/dhcpcd-10.2.2-ipv6.patch new file mode 100644 index 000000000000..1a42788d23d9 --- /dev/null +++ b/net-misc/dhcpcd/files/dhcpcd-10.2.2-ipv6.patch @@ -0,0 +1,312 @@ +https://bugs.gentoo.org/953895 +https://github.com/NetworkConfiguration/dhcpcd/issues/492 + +From 664952372f0965da16ef24abe079bea1ad87a166 Mon Sep 17 00:00:00 2001 +From: Roy Marples +Date: Fri, 28 Mar 2025 19:44:48 +0000 +Subject: [PATCH] route: Don't spam route changes for lifetime + +Fixes #459 +--- + src/route.c | 134 +++++++++++++++++++++++++++------------------------- + 1 file changed, 70 insertions(+), 64 deletions(-) + +diff --git a/src/route.c b/src/route.c +index 865d50a5..0037dda4 100644 +--- a/src/route.c ++++ b/src/route.c +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + #include + + #include "config.h" +@@ -255,7 +256,7 @@ rt_is_default(const struct rt *rt) + } + + static void +-rt_desc(const char *cmd, const struct rt *rt) ++rt_desc(int loglevel, const char *cmd, const struct rt *rt) + { + char dest[INET_MAX_ADDRSTRLEN], gateway[INET_MAX_ADDRSTRLEN]; + int prefix; +@@ -273,25 +274,25 @@ rt_desc(const char *cmd, const struct rt *rt) + + if (rt->rt_flags & RTF_HOST) { + if (gateway_unspec) +- loginfox("%s: %s host route to %s", ++ logmessage(loglevel, "%s: %s host route to %s", + ifname, cmd, dest); + else +- loginfox("%s: %s host route to %s via %s", ++ logmessage(loglevel, "%s: %s host route to %s via %s", + ifname, cmd, dest, gateway); + } else if (rt_is_default(rt)) { + if (gateway_unspec) +- loginfox("%s: %s default route", ++ logmessage(loglevel, "%s: %s default route", + ifname, cmd); + else +- loginfox("%s: %s default route via %s", ++ logmessage(loglevel, "%s: %s default route via %s", + ifname, cmd, gateway); + } else if (gateway_unspec) +- loginfox("%s: %s%s route to %s/%d", ++ logmessage(loglevel, "%s: %s%s route to %s/%d", + ifname, cmd, + rt->rt_flags & RTF_REJECT ? " reject" : "", + dest, prefix); + else +- loginfox("%s: %s%s route to %s/%d via %s", ++ logmessage(loglevel, "%s: %s%s route to %s/%d via %s", + ifname, cmd, + rt->rt_flags & RTF_REJECT ? " reject" : "", + dest, prefix, gateway); +@@ -490,7 +491,7 @@ rt_recvrt(int cmd, const struct rt *rt, pid_t pid) + + rb_tree_remove_node(&ctx->routes, f); + snprintf(buf, sizeof(buf), "pid %d deleted", pid); +- rt_desc(buf, f); ++ rt_desc(LOG_WARNING, buf, f); + rt_free(f); + } + break; +@@ -503,8 +504,8 @@ rt_recvrt(int cmd, const struct rt *rt, pid_t pid) + } + + /* Compare miscellaneous route details */ +-static bool +-rt_cmp_misc(struct rt *nrt, struct rt *ort) ++static int ++rt_cmp_mtu(struct rt *nrt, struct rt *ort) + { + #if defined(__FreeBSD__) || defined(__DragonFly__) + /* FreeBSD puts the interface MTU into the route MTU +@@ -514,13 +515,19 @@ rt_cmp_misc(struct rt *nrt, struct rt *ort) + nmtu = nrt->rt_mtu ? nrt->rt_mtu : (unsigned int)nrt->rt_ifp->mtu; + omtu = ort->rt_mtu ? ort->rt_mtu : (unsigned int)ort->rt_ifp->mtu; + if (omtu != nmtu) +- return false; ++ return 1; + #else + if (ort->rt_mtu != nrt->rt_mtu) +- return false; ++ return 1; + #endif + ++ return 0; ++} ++ + #ifdef HAVE_ROUTE_LIFETIME ++static int ++rt_cmp_lifetime(struct rt *nrt, struct rt *ort) ++{ + /* There might be a minor difference between kernel route + * lifetime and our lifetime due to processing times. + * We allow a small deviation to avoid needless route changes. +@@ -533,23 +540,25 @@ rt_cmp_misc(struct rt *nrt, struct rt *ort) + if (ts.tv_sec < 0) + ts.tv_sec = -ts.tv_sec; + if (ts.tv_sec > RTLIFETIME_DEV_MAX) +- return false; ++ return 1; + if (nrt->rt_lifetime > ort->rt_lifetime) + deviation = nrt->rt_lifetime - ort->rt_lifetime; + else + deviation = ort->rt_lifetime - nrt->rt_lifetime; + if (deviation > RTLIFETIME_DEV_MAX) +- return false; +-#endif ++ return 1; + +- return true; ++ return 0; + } ++#endif + + static bool + rt_add(rb_tree_t *kroutes, struct rt *nrt, struct rt *ort) + { + struct dhcpcd_ctx *ctx; +- bool change, kroute, result; ++ struct rt *krt; ++ int loglevel = LOG_INFO; ++ bool change, result; + + assert(nrt != NULL); + ctx = nrt->rt_ifp->ctx; +@@ -569,46 +578,40 @@ rt_add(rb_tree_t *kroutes, struct rt *nrt, struct rt *ort) + sa_is_unspecified(&nrt->rt_netmask)) + return false; + +- rt_desc(ort == NULL ? "adding" : "changing", nrt); +- +- change = kroute = result = false; +- if (ort == NULL) { +- ort = rb_tree_find_node(kroutes, nrt); +- if (ort != NULL && +- ((ort->rt_flags & RTF_REJECT && +- nrt->rt_flags & RTF_REJECT) || +- (ort->rt_ifp == nrt->rt_ifp && ++ krt = rb_tree_find_node(kroutes, nrt); ++ if (krt != NULL && ++ krt->rt_ifp == nrt->rt_ifp && ++ /* Only test flags dhcpcd controls */ ++ (krt->rt_flags & (RTF_HOST | RTF_REJECT)) == nrt->rt_flags && + #ifdef HAVE_ROUTE_METRIC +- ort->rt_metric == nrt->rt_metric && ++ krt->rt_metric == nrt->rt_metric && + #endif +- sa_cmp(&ort->rt_gateway, &nrt->rt_gateway) == 0))) +- { +- if (rt_cmp_misc(nrt, ort)) +- return true; +- change = true; +- kroute = true; +- } +- } else if (ort->rt_dflags & RTDF_FAKE && +- !(nrt->rt_dflags & RTDF_FAKE) && +- ort->rt_ifp == nrt->rt_ifp && +-#ifdef HAVE_ROUTE_METRIC +- ort->rt_metric == nrt->rt_metric && +-#endif +- sa_cmp(&ort->rt_dest, &nrt->rt_dest) == 0 && +- rt_cmp_netmask(ort, nrt) == 0 && +- sa_cmp(&ort->rt_gateway, &nrt->rt_gateway) == 0) ++ sa_cmp(&krt->rt_dest, &nrt->rt_dest) == 0 && ++ rt_cmp_netmask(krt, nrt) == 0 && ++ sa_cmp(&krt->rt_gateway, &nrt->rt_gateway) == 0 && ++ rt_cmp_mtu(krt, nrt) == 0) + { +- if (rt_cmp_misc(nrt, ort)) ++#ifdef HAVE_ROUTE_LIFETIME ++ if (rt_cmp_lifetime(krt, nrt) == 0) { ++ rt_desc(LOG_DEBUG, "keeping", krt); + return true; +- change = true; ++ } else ++ loglevel = LOG_DEBUG; ++#else ++ rt_desc(LOG_DEBUG, "keeping", krt); ++ return true; ++#endif + } + ++ rt_desc(loglevel, ort == NULL ? "adding" : "changing", nrt); ++ ++ change = krt != NULL; + #ifdef RTF_CLONING + /* BSD can set routes to be cloning routes. + * Cloned routes inherit the parent flags. + * As such, we need to delete and re-add the route to flush children + * to correct the flags. */ +- if (change && ort != NULL && ort->rt_flags & RTF_CLONING) ++ if (change && krt != NULL && krt->rt_flags & RTF_CLONING) + change = false; + #endif + +@@ -625,8 +628,8 @@ rt_add(rb_tree_t *kroutes, struct rt *nrt, struct rt *ort) + /* With route metrics, we can safely add the new route before + * deleting the old route. */ + if (if_route(RTM_ADD, nrt) != -1) { +- if (ort != NULL) { +- if (if_route(RTM_DELETE, ort) == -1 && errno != ESRCH) ++ if (krt != NULL) { ++ if (if_route(RTM_DELETE, krt) == -1 && errno != ESRCH) + logerr("if_route (DEL)"); + } + result = true; +@@ -644,19 +647,17 @@ rt_add(rb_tree_t *kroutes, struct rt *nrt, struct rt *ort) + #ifdef ROUTE_PER_GATEWAY + errno = 0; + #endif +- if (ort != NULL) { +- if (if_route(RTM_DELETE, ort) == -1 && errno != ESRCH) ++ if (krt != NULL) { ++ if (if_route(RTM_DELETE, krt) == -1 && errno != ESRCH) + logerr("if_route (DEL)"); +- else +- kroute = false; + } + #ifdef ROUTE_PER_GATEWAY + /* The OS allows many routes to the same dest with different gateways. + * dhcpcd does not support this yet, so for the time being just keep on + * deleting the route until there is an error. */ +- if (ort != NULL && errno == 0) { ++ if (krt != NULL && errno == 0) { + for (;;) { +- if (if_route(RTM_DELETE, ort) == -1) ++ if (if_route(RTM_DELETE, krt) == -1) + break; + } + } +@@ -675,9 +676,9 @@ rt_add(rb_tree_t *kroutes, struct rt *nrt, struct rt *ort) + logerr("if_route (ADD)"); + + out: +- if (kroute) { +- rb_tree_remove_node(kroutes, ort); +- rt_free(ort); ++ if (krt != NULL) { ++ rb_tree_remove_node(kroutes, krt); ++ rt_free(krt); + } + return result; + } +@@ -687,22 +688,24 @@ rt_delete(struct rt *rt) + { + int retval; + +- rt_desc("deleting", rt); ++ rt_desc(LOG_INFO, "deleting", rt); + retval = if_route(RTM_DELETE, rt) == -1 ? false : true; + if (!retval && errno != ENOENT && errno != ESRCH) + logerr(__func__); + return retval; + } + +-static bool ++static int + rt_cmp(const struct rt *r1, const struct rt *r2) + { + +- return (r1->rt_ifp == r2->rt_ifp && ++ if (r1->rt_ifp == r2->rt_ifp && + #ifdef HAVE_ROUTE_METRIC + r1->rt_metric == r2->rt_metric && + #endif +- sa_cmp(&r1->rt_gateway, &r2->rt_gateway) == 0); ++ sa_cmp(&r1->rt_gateway, &r2->rt_gateway) == 0) ++ return 0; ++ return 1; + } + + static bool +@@ -718,10 +721,13 @@ rt_doroute(rb_tree_t *kroutes, struct rt *rt) + if (rt->rt_dflags & RTDF_FAKE) + return true; + if (or->rt_dflags & RTDF_FAKE || +- !rt_cmp(rt, or) || ++ rt_cmp(rt, or) != 0 || + (rt->rt_ifa.sa_family != AF_UNSPEC && + sa_cmp(&or->rt_ifa, &rt->rt_ifa) != 0) || +- !rt_cmp_misc(rt, or)) ++#ifdef HAVE_ROUTE_LIFETIME ++ rt_cmp_lifetime(rt, or) != 0 || ++#endif ++ rt_cmp_mtu(rt, or) != 0) + { + if (!rt_add(kroutes, rt, or)) + return false; +@@ -733,7 +739,7 @@ rt_doroute(rb_tree_t *kroutes, struct rt *rt) + or = rb_tree_find_node(kroutes, rt); + if (or == NULL) + return false; +- if (!rt_cmp(rt, or)) ++ if (rt_cmp(rt, or) == 0) + return false; + } else { + if (!rt_add(kroutes, rt, NULL)) + diff --git a/net-misc/ntpsec/Manifest b/net-misc/ntpsec/Manifest index d9ef3b7c227f..f9e95cc379d2 100644 --- a/net-misc/ntpsec/Manifest +++ b/net-misc/ntpsec/Manifest @@ -6,9 +6,13 @@ AUX ntpd.rc-r3 491 BLAKE2B e91eb8921b60142d9f827abf7c2a4e4e48be423b3227cbe736433 AUX ntpsec-1.1.9-remove-asciidoctor-from-config.patch 680 BLAKE2B 7204a831b3dc0dba7f268febd10fa7599ef6b9bee30199ce10529d2d326719f5b376d301aabfef3beacecd4af813bcef1d6a65d61ab00996d72f1240f83ef8e3 SHA512 3e012ad70507f440ed3a4aca4886a96e40d49a0dd7c14572f664633a56139cb7767e07ee1bb5e8295fc32052914364660c928d11369b6f80193ae7e190e5a48e AUX ntpsec-1.2.2-logrotate.patch 663 BLAKE2B c5e8eca739909695b6fd6cf7e507acb8e49a8eb2eebbf2afe83733159b8240f563a22a7389ac58373c10df104ee5dd34c7aec40787200bd3d704e5f0273cfc42 SHA512 ccba1116fac3fcb8dc075c81f2d8ed24399b41b6718ae65ed042b0da8bf19c0a5259650323a9b1d6f0e5c44ae167874ccaca7cbdd50b38955b17a4a49840c863 AUX ntpsec-1.2.3-pep517-no-egg.patch 1147 BLAKE2B 653e9cce60feece6d906b06263e9b44e93f07ca41430e6d2021f105bdfbcf2e7405c02974419d124c7ea6b64110b5ad2aec48c5d044f5011aaad339647a13405 SHA512 bbdfa0441d5a353872fd6fdaed8acea3133440766a2dc96178d3367cc24360b94d5473c9d0ad97bffa9e1c9044ba9af78fc1732ea52a98d218452fe91cbca98f +AUX ntpsec-1.2.4-pep517-no-egg.patch 1137 BLAKE2B 1a31ac1cda998396ed51047bf27359b476186fd0fde598aa77a3a6e078f904edc6bbf0f5c4741289d3ae83d56ed1147d346ac12eb37cd40186e64e95e19b738a SHA512 09fcc90494aa741acaa9d6286255f8518863183a115f6653fb682dd3a3bbc6cd20a98ab2407ab667c8296f8a88798ba3c795aa550cc0bcbc0622a7b520cf5155 AUX ntpsec-no-bsd.patch 1538 BLAKE2B 6abb7acf23149a5a47f8e479bff090966e7e6161fc0d5bca1f9e5b9396d90898a783e7d309d6cdbdf689ea12314c804aa7a39f05b3f11d75a95eb337cea95b55 SHA512 7ddb346c7f0c9b30ea08ac28eaa39cf86e3d6cee7eaeba3bc7fe0883acd5087966e4e7beb298cee02607dfa3198a8c1dfcd9ce43ead820de3bb7014cefe75302 DIST ntpsec-1.2.3.tar.gz 2725081 BLAKE2B d39a4d08790949afb28b843739a410624a8d862bfc25afd4e6c7dc55be43e41f3c89823406c60fb911496e7a3db51d6fa83c8bcda9b9686708c36154c2fe9686 SHA512 6baecf32f499fc12c2ef0b44360072b61ab9e8b52ec7ead64ff43a27b5a57431db939d4ce1fad92d38def981f6256a1d8ede0c0cdc5abb50d861be729255eee2 DIST ntpsec-1.2.3.tar.gz.asc 833 BLAKE2B f0d6a0b163a7f9214da6d6eb1982f87387a7087efb740ec146f55362381aa101a5a8e40c27f121ca6607c0a5c429b1e06ecaf9a9ab5392d836535430cf6575fa SHA512 17280e3092e7e9de0ddae0723637a261d3a740d916ce0f016c44c6010672cfe2fc39b45f86257cfa5bd29f1f11895f8bd583c76765c6484489027cbc82dbe6b2 +DIST ntpsec-1.2.4.tar.gz 2736913 BLAKE2B fcff3460c7676b08b18dfca3fc6a67a4788682c75a427626a4b636b844856a94f16d72b007d4ca7396b4813700969a1c614ce7fc50bb7b08f59242cca8003630 SHA512 f3e8494dd669fa2e4ac61721efe38c26a615f3fe38e659e33ea9d0994d67d779600c4ff6e65b023e6252c478ffc90a51baa90aeecc9f17daaf3f785273269efc +DIST ntpsec-1.2.4.tar.gz.asc 833 BLAKE2B e8c1c2a94e19ca9746d68cd2d0ef56345773cc0dfc84168b6e0451eec78476d275dbd66cfd28c14333a7aa8ddb2d895459aff755dfd1106347dac8faef2cb24a SHA512 001f27bb418863b265b6ccab01be584a6941be4e4426fa1deca420833bdd5792ded983d06deb2b7352dccf051033882403c5ac2d81d20deaa5e4a0542e1a95d8 EBUILD ntpsec-1.2.3-r1.ebuild 4758 BLAKE2B 30ad626b112802998108d7870b81b122c33c36629db453d787462b48b48e47f4e248e785c29f88a23e9d4a0b33a83b13f48f6075663b4574af453e2d032d2afb SHA512 1bea39d8c4755ff76a6c953e7a628bf86c30824ca3675af269ffe8d4406e9e4cb590c237da77f2d072eeff046078905b04c2f21e9342f5eecc36ac4e88c4627d +EBUILD ntpsec-1.2.4.ebuild 4761 BLAKE2B 27a84c44c24cab0dfd4c894d20f881e847869b28bc94641acac7ec758a3beecb4d075c6ea8a2af31b9aa7be9cb056eb33cb683bbc75f10ebabad9b7b7bb1d527 SHA512 567ed77b8ac9905bfff060241a57202e36bda627c371e518327f0dc1f325ea5003cd0587a0ccb7b349a6e91b98a43b1b59e71388f6530ca418467e447bb10890 EBUILD ntpsec-9999.ebuild 4761 BLAKE2B b85b41993e44b2f5ca562db0c2b87ee637ec1fcac99f5d8f1311b660612a4486e6a66f374451750890e0bd3ffa85d4104a94b423d4c61f2b9c428b5b4678f8c9 SHA512 b9def6c11cc8a55138a269e3764fd15251e2a25086012bae1457d1e3ea6e48b4f7e7bb9a3c325bb9ad95e589d07f08af259a7051d0375934dee9c53ac1fe27c4 -MISC metadata.xml 2612 BLAKE2B 4333e99791da57969b1745266fc6a24056da02f6bdfe11cb0d279a7eb259f82f0812e87bd828cd912cb643cd3e67ada44727e6f0237183d293f01532f250c2ae SHA512 cdb45516847d9afcc1e18511c1820d2426d2678cc8b9dd0e5574d10085205f197d5f38cba8f6050979241274fbb9de5a49d3348e096a76c9271f133a6da48cb8 +MISC metadata.xml 1620 BLAKE2B 6f809613bd80e93ae684e967dae280f6d837cb1ac760ebfbbf5870348dcc84e01b9de8ad07dfa905951cef019c2c870f5f361d6bad37ccde9a0f9380345256b4 SHA512 28637038827e01b8f9b4ea3473a36f22df8abb0199ad5e14d2da5f9170284e6dd9b1a0a820580d490096c76a8eeaa7ea492f1ce8d7e4808667733691a30f8f74 diff --git a/net-misc/ntpsec/files/ntpsec-1.2.4-pep517-no-egg.patch b/net-misc/ntpsec/files/ntpsec-1.2.4-pep517-no-egg.patch new file mode 100644 index 000000000000..a84e5942786d --- /dev/null +++ b/net-misc/ntpsec/files/ntpsec-1.2.4-pep517-no-egg.patch @@ -0,0 +1,38 @@ +diff --git a/pylib/ntp-in.egg-info b/pylib/ntp-in.egg-info +deleted file mode 100644 +index b672a8431..000000000 +--- a/pylib/ntp-in.egg-info ++++ /dev/null +@@ -1,12 +0,0 @@ +-Metadata-Version: 1.0 +-Name: ntpsec +-Version: @NTPSEC_VERSION_EXTENDED@ +-Platform: POSIX +-Summary: The NTP reference implementation, refactored +-Home-page: https://ntpsec.org/ +-License: Beerware, BSD-2-Clause, BSD-3-Clause, BSD-4-Clause, CC-BY-4.0, ISC, MIT, NTP +-Description: +- The Network Time Protocol suite, refactored +-Author: the NTPsec project +-Author-email: devel@ntpsec.org +-Keywords: +\ No newline at end of file +diff --git a/pylib/wscript b/pylib/wscript +index d010802..6e4a956 100644 +--- a/pylib/wscript ++++ b/pylib/wscript +@@ -101,11 +101,9 @@ def build(ctx): + install_path='${PYTHONDIR}/ntp' + ) + +- # pep241 lay an egg +- egg = ['ntp-%s.egg-info' % ctx.env.NTPSEC_VERSION] ++ # pep517 pyproject.toml + ctx( + features="subst", +- source=['ntp-in.egg-info'], +- target=egg ++ source=['pyproject.toml'], ++ target=['../pyproject.toml'] + ) +- ctx.install_files(ctx.env.PYTHONDIR, egg) diff --git a/net-misc/ntpsec/metadata.xml b/net-misc/ntpsec/metadata.xml index a2ce6c3f8cbc..86c960e040ed 100644 --- a/net-misc/ntpsec/metadata.xml +++ b/net-misc/ntpsec/metadata.xml @@ -7,26 +7,10 @@ Drop root privileges early - Enable debugging with gdb Install contrib heat generating scripts Use libbsd instead of internal funcs Set local clock deps Make visualizations of offsets, jiffies, etc. - Oncore driver - Trimble driver - Trutime driver (deprecated) - Enable gpsd daemon support - JJY driver - Enable support for generic time radios and GPSDOs - Spectracom driver - Obtain refclock info from shared memory-segment - PPS cesium clock driver - Hewlett Packard GPS driver - Zyfer driver - Arbiter 1088A/B GPS driver - NMEA GPS driver - NIST/USNO/PTB Modem Time Services - Support for undisciplined local clock (not recommended) Oncore driver Trimble driver Trutime driver (deprecated) diff --git a/net-misc/ntpsec/ntpsec-1.2.4.ebuild b/net-misc/ntpsec/ntpsec-1.2.4.ebuild new file mode 100644 index 000000000000..c799b205251c --- /dev/null +++ b/net-misc/ntpsec/ntpsec-1.2.4.ebuild @@ -0,0 +1,193 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517="flit" +PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_REQ_USE='threads(+)' + +inherit distutils-r1 flag-o-matic multiprocessing waf-utils systemd + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/NTPsec/ntpsec.git" +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ntpsec.asc + inherit verify-sig + SRC_URI=" + https://ftp.ntpsec.org/pub/releases/${P}.tar.gz + verify-sig? ( https://ftp.ntpsec.org/pub/releases/${P}.tar.gz.asc ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" + + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ntpsec )" +fi + +DESCRIPTION="The NTP reference implementation, refactored" +HOMEPAGE="https://www.ntpsec.org/" + +LICENSE="HPND MIT BSD-2 BSD CC-BY-SA-4.0" +SLOT="0" + +NTPSEC_REFCLOCK=( + oncore trimble truetime gpsd jjy generic spectracom + shm pps hpgps zyfer arbiter nmea modem local +) + +IUSE="${NTPSEC_REFCLOCK[@]} debug doc early heat libbsd nist ntpviz samba seccomp smear test" #ionice +REQUIRED_USE="${PYTHON_REQUIRED_USE} nist? ( local )" +RESTRICT="!test? ( test )" + +# net-misc/pps-tools oncore,pps +DEPEND=" + ${PYTHON_DEPS} + dev-libs/openssl:= + dev-python/psutil[${PYTHON_USEDEP}] + sys-libs/libcap + libbsd? ( dev-libs/libbsd:0= ) + seccomp? ( sys-libs/libseccomp ) + oncore? ( net-misc/pps-tools ) + pps? ( net-misc/pps-tools ) +" +RDEPEND=" + ${DEPEND} + !net-misc/ntp + !net-misc/openntpd + acct-group/ntp + acct-user/ntp + ntpviz? ( + media-fonts/liberation-fonts + sci-visualization/gnuplot + ) +" +BDEPEND+=" + >=app-text/asciidoc-8.6.8 + dev-libs/libxslt + app-text/docbook-xsl-stylesheets + app-alternatives/yacc +" + +PATCHES=( + "${FILESDIR}/${PN}-1.1.9-remove-asciidoctor-from-config.patch" + "${FILESDIR}/${PN}-1.2.2-logrotate.patch" + "${FILESDIR}/${PN}-1.2.4-pep517-no-egg.patch" +) + +WAF_BINARY="${S}/waf" + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif use verify-sig ; then + # Needed for downloaded waf which is unsigned + verify-sig_verify_detached "${DISTDIR}"/${P}.tar.gz{,.asc} + fi + + default +} + +src_prepare() { + default + + # Remove autostripping of binaries + sed -i -e '/Strip binaries/d' wscript || die + if ! use libbsd ; then + eapply "${FILESDIR}/${PN}-no-bsd.patch" + fi + # remove extra default pool servers + sed -i '/use-pool/s/^/#/' "${S}"/etc/ntp.d/default.conf || die +} + +src_configure() { + filter-lto + + local string_127="" + local rclocks=""; + local CLOCKSTRING="" + + for refclock in ${NTPSEC_REFCLOCK[@]} ; do + if use ${refclock} ; then + string_127+="$refclock," + fi + done + CLOCKSTRING="`echo ${string_127}|sed 's|,$||'`" + + myconf=( + --notests + --nopyc + --nopyo + --refclock="${CLOCKSTRING}" + #--build-epoch="$(date +%s)" + $(use doc || echo "--disable-doc") + $(use early && echo "--enable-early-droproot") + $(use samba && echo "--enable-mssntp") + $(use seccomp && echo "--enable-seccomp") + $(use smear && echo "--enable-leap-smear") + $(use debug && echo "--enable-debug") + ) + python_setup + cp -v "${FILESDIR}/flit.toml" "pylib/pyproject.toml" || die + waf-utils_src_configure "${myconf[@]}" +} + +src_compile() { + waf-utils_src_compile --notests + + ln -svf pylib build/main/ntp || die + cd build/main || die + distutils-r1_src_compile +} + +src_test() { + cd build/main || die + distutils-r1_src_test +} + +python_test() { + "${EPYTHON}" "${WAF_BINARY}" check -v -j $(makeopts_jobs) || die +} + +src_install() { + # Install heat generating scripts + use heat && dosbin "${S}"/contrib/ntpheat{,usb} + + # Install the openrc files + newinitd "${FILESDIR}"/ntpd.rc-r3 ntp + newconfd "${FILESDIR}"/ntpd.confd ntp + + # Install the systemd unit file + systemd_newunit "${FILESDIR}"/ntpd-r1.service ntpd.service + + # Prepare a directory for the ntp.drift file + mkdir -pv "${ED}"/var/lib/ntp + chown ntp:ntp "${ED}"/var/lib/ntp + chmod 770 "${ED}"/var/lib/ntp + keepdir /var/lib/ntp + + # Install a logrotate script + mkdir -pv "${ED}"/etc/logrotate.d + cp -v "${S}"/etc/logrotate-config.ntpd "${ED}"/etc/logrotate.d/ntpd + + # Install the configuration file and sample configuration + cp -v "${FILESDIR}"/ntp.conf "${ED}"/etc/ntp.conf + cp -Rv "${S}"/etc/ntp.d/ "${ED}"/etc/ + + # move doc files to /usr/share/doc/"${P}" + use doc && mv -v "${ED}"/usr/share/doc/"${PN}" "${ED}"/usr/share/doc/"${P}"/html + + ln -svf pylib build/main/ntp || die + distutils-r1_src_install + waf-utils_src_install --notests + python_fix_shebang "${ED}" + python_optimize +} + +pkg_postinst() { + einfo "If you want to serve time on your local network, then" + einfo "you should disable all the ref_clocks unless you have" + einfo "one and can get stable time from it. Feel free to try" + einfo "it but PPS probably won't work unless you have a UART" + einfo "GPS that actually provides PPS messages." +} -- cgit v1.2.3