diff options
author | Sam James <sam@gentoo.org> | 2022-02-03 09:25:57 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-02-03 09:33:57 +0000 |
commit | 1588352a15a53c38ce3b00b5a8a0f9c243abc6a5 (patch) | |
tree | bc3b4a0b307cd018fae515714265918f6309900a /net-misc | |
parent | net-vpn/libreswan: fix build on musl (diff) | |
download | gentoo-1588352a15a53c38ce3b00b5a8a0f9c243abc6a5.tar.gz gentoo-1588352a15a53c38ce3b00b5a8a0f9c243abc6a5.tar.bz2 gentoo-1588352a15a53c38ce3b00b5a8a0f9c243abc6a5.zip |
net-misc/rdate: fix build on musl
Closes: https://bugs.gentoo.org/832554
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-misc')
-rw-r--r-- | net-misc/rdate/files/rdate-1.10.2-fix-musl-compat-stdint.patch | 180 | ||||
-rw-r--r-- | net-misc/rdate/rdate-1.10.2.ebuild | 8 |
2 files changed, 186 insertions, 2 deletions
diff --git a/net-misc/rdate/files/rdate-1.10.2-fix-musl-compat-stdint.patch b/net-misc/rdate/files/rdate-1.10.2-fix-musl-compat-stdint.patch new file mode 100644 index 000000000000..a6ff70b353d5 --- /dev/null +++ b/net-misc/rdate/files/rdate-1.10.2-fix-musl-compat-stdint.patch @@ -0,0 +1,180 @@ +https://github.com/resurrecting-open-source-projects/openrdate/pull/3 + +From: Sam James <sam@gentoo.org> +Date: Thu, 3 Feb 2022 09:23:35 +0000 +Subject: [PATCH] Use <stdint.h> to fix musl compatibility + +uint32_t and friends are provided by <stdint.h> and the types +previously being relied on are non-standard, so let's swap. + +This fixes building rdate on e.g. musl rather than glibc. + +Bug: https://bugs.gentoo.org/832554 +Signed-off-by: Sam James <sam@gentoo.org> +--- a/src/ntp.c ++++ b/src/ntp.c +@@ -52,6 +52,7 @@ + #include <netdb.h> + #include <stdio.h> + #include <stdlib.h> ++#include <stdint.h> + #include <string.h> + #include <time.h> + #include <unistd.h> +@@ -106,11 +107,11 @@ struct ntp_data { + double receive; + double transmit; + double current; +- u_int64_t recvck; ++ uint64_t recvck; + + /* Local State */ + double originate; +- u_int64_t xmitck; ++ uint64_t xmitck; + }; + + void ntp_client(const char *, int, struct timeval *, struct timeval *, int, int, int); +@@ -282,7 +283,7 @@ write_packet(int fd, struct ntp_data *data) + + packet[0] = (NTP_VERSION << 3) | (NTP_MODE_CLIENT); + +- data->xmitck = (u_int64_t)arc4random() << 32 | arc4random(); ++ data->xmitck = (uint64_t)arc4random() << 32 | arc4random(); + + /* + * Send out a random 64-bit number as our transmit time. The NTP +@@ -300,7 +301,7 @@ write_packet(int fd, struct ntp_data *data) + * the transmit field intelligible. + */ + +- *(u_int64_t *)(packet + NTP_TRANSMIT) = data->xmitck; ++ *(uint64_t *)(packet + NTP_TRANSMIT) = data->xmitck; + + data->originate = current_time(JAN_1970); + +@@ -453,7 +454,7 @@ double + current_time(double offset) + { + struct timeval current; +- u_int64_t t; ++ uint64_t t; + + if (gettimeofday(¤t, NULL)) + err(1, "Could not get local time of day"); +--- a/src/ntpleaps.c ++++ b/src/ntpleaps.c +@@ -45,12 +45,13 @@ + #include <fcntl.h> + #include <stdio.h> + #include <stdlib.h> ++#include <stdint.h> + #include <string.h> + #include <unistd.h> + + #include "ntpleaps.h" + +-static u_int64_t *leapsecs; ++static uint64_t *leapsecs; + static unsigned int leapsecs_num; + + +@@ -81,10 +82,10 @@ ntpleaps_init(void) + } + + int +-ntpleaps_sub(u_int64_t *t) ++ntpleaps_sub(uint64_t *t) + { + unsigned int i = 0; +- u_int64_t u; ++ uint64_t u; + int r = 1; + + if (ntpleaps_init() == -1) +@@ -105,10 +106,10 @@ ntpleaps_sub(u_int64_t *t) + return (r); + } + +-u_int32_t +-read_be_dword(u_int8_t *ptr) ++uint32_t ++read_be_dword(uint8_t *ptr) + { +- u_int32_t res; ++ uint32_t res; + + memcpy(&res, ptr, 4); + return (ntohl(res)); +@@ -120,10 +121,10 @@ ntpleaps_read(void) + { + int fd; + unsigned int r; +- u_int8_t buf[32]; +- u_int32_t m1, m2, m3; +- u_int64_t s; +- u_int64_t *l; ++ uint8_t buf[32]; ++ uint32_t m1, m2, m3; ++ uint64_t s; ++ uint64_t *l; + + fd = open("/usr/share/zoneinfo/right/UTC", O_RDONLY | O_NDELAY); + if (fd == -1) +@@ -153,7 +154,7 @@ ntpleaps_read(void) + close(fd); + return (-1); + } +- if ((l = (u_int64_t *)malloc(r << 3)) == NULL) { ++ if ((l = (uint64_t *)malloc(r << 3)) == NULL) { + close(fd); + return (-1); + } +--- a/src/ntpleaps.h ++++ b/src/ntpleaps.h +@@ -46,11 +46,13 @@ + #ifndef _NTPLEAPS_H + #define _NTPLEAPS_H + ++#include <stdint.h> ++ + /* Offset between struct timeval.tv_sec and a tai64_t */ + #define NTPLEAPS_OFFSET (4611686018427387914ULL) + + /* Hide this ugly value from programmes */ +-#define SEC_TO_TAI64(s) (NTPLEAPS_OFFSET + (u_int64_t)(s)) ++#define SEC_TO_TAI64(s) (NTPLEAPS_OFFSET + (uint64_t)(s)) + #define TAI64_TO_SEC(t) ((t) - NTPLEAPS_OFFSET) + + /* Initializes the leap second table. Does not need to be called +@@ -70,6 +72,6 @@ int ntpleaps_read(void); + * to posix clock tick time. + * returns 0 on success, -1 on error (time is unchanged), 1 on leap second + */ +-int ntpleaps_sub(u_int64_t *); ++int ntpleaps_sub(uint64_t *); + + #endif +--- a/src/rfc868time.c ++++ b/src/rfc868time.c +@@ -50,6 +50,7 @@ + #include <stdio.h> + #include <ctype.h> + #include <err.h> ++#include <stdint.h> + #include <string.h> + #include <netdb.h> + #include <unistd.h> +@@ -68,10 +69,10 @@ rfc868time_client (const char *hostname, int family, struct timeval *new, + { + struct addrinfo hints, *res0, *res; + struct timeval old; +- u_int32_t tim; /* RFC 868 states clearly this is an uint32 */ ++ uint32_t tim; /* RFC 868 states clearly this is an uint32 */ + int s; + int error; +- u_int64_t td; ++ uint64_t td; + + memset(&hints, 0, sizeof(hints)); + hints.ai_family = family; diff --git a/net-misc/rdate/rdate-1.10.2.ebuild b/net-misc/rdate/rdate-1.10.2.ebuild index 85c5f91b3cf8..40191e638b49 100644 --- a/net-misc/rdate/rdate-1.10.2.ebuild +++ b/net-misc/rdate/rdate-1.10.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -17,7 +17,11 @@ SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86" DEPEND="dev-libs/libbsd" -RDEPEND=${DEPEND} +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-1.10.2-fix-musl-compat-stdint.patch +) src_prepare() { default |