diff --git a/0001-unix-ignore-ifaddrs-with-NULL-ifa_addr-4218.patch b/0001-unix-ignore-ifaddrs-with-NULL-ifa_addr-4218.patch new file mode 100644 index 0000000000000000000000000000000000000000..20a8d6ae40246949a4d2a8d798b5c45205aee844 --- /dev/null +++ b/0001-unix-ignore-ifaddrs-with-NULL-ifa_addr-4218.patch @@ -0,0 +1,33 @@ +From b963f0a75bd6c95fbfa0ac17e46ab1f9d1a787c4 Mon Sep 17 00:00:00 2001 +From: Stephen Gallagher +Date: Tue, 14 Nov 2023 04:23:28 -0500 +Subject: [PATCH 1/2] unix: ignore ifaddrs with NULL ifa_addr (#4218) + +Passing this to uv__is_ipv6_link_local() is causing a segmentation +fault. Note that the documentation for getifaddrs() explicitly states +that this value may be NULL. + +Signed-off-by: Stephen Gallagher +--- + src/unix/tcp.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/unix/tcp.c b/src/unix/tcp.c +index a6b53e5913271d0c83e1d7f7e4cb8140f5f3936d..29f4532e747db50146a8b821389f4d45304c5cd0 100644 +--- a/src/unix/tcp.c ++++ b/src/unix/tcp.c +@@ -233,8 +233,9 @@ static int uv__ipv6_link_local_scope_id(void) { + return 0; + + for (p = ifa; p != NULL; p = p->ifa_next) +- if (uv__is_ipv6_link_local(p->ifa_addr)) +- break; ++ if (p->ifa_addr != NULL) ++ if (uv__is_ipv6_link_local(p->ifa_addr)) ++ break; + + rv = 0; + if (p != NULL) { +-- +2.41.0 + diff --git a/0002-test-check-if-ipv6-link-local-traffic-is-routable.patch b/0002-test-check-if-ipv6-link-local-traffic-is-routable.patch new file mode 100644 index 0000000000000000000000000000000000000000..53cd53a92825d90ac65bbfe09b43f69c99b68d2d --- /dev/null +++ b/0002-test-check-if-ipv6-link-local-traffic-is-routable.patch @@ -0,0 +1,58 @@ +From 21e403424060d71e97ee1ef328288fdb9d24a191 Mon Sep 17 00:00:00 2001 +From: Ben Noordhuis +Date: Tue, 14 Nov 2023 10:58:02 +0100 +Subject: [PATCH 2/2] test: check if ipv6 link-local traffic is routable + +Fixes: https://github.com/libuv/libuv/issues/4211 +--- + test/test-tcp-connect6-error.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/test/test-tcp-connect6-error.c b/test/test-tcp-connect6-error.c +index 1e6d7c78da999d5d6d1f5e1e57646e34aba4a33b..dc2fce82f8958ac5afaeafafa8f2efccf2a1e1ec 100644 +--- a/test/test-tcp-connect6-error.c ++++ b/test/test-tcp-connect6-error.c +@@ -23,6 +23,7 @@ + #include "task.h" + #include + #include ++#include + + + static int connect_cb_called = 0; +@@ -75,9 +76,13 @@ TEST_IMPL(tcp_connect6_error_fault) { + + + TEST_IMPL(tcp_connect6_link_local) { ++ uv_interface_address_t* ifs; ++ uv_interface_address_t* p; + struct sockaddr_in6 addr; + uv_connect_t req; + uv_tcp_t server; ++ int ok; ++ int n; + + if (!can_ipv6()) + RETURN_SKIP("IPv6 not supported"); +@@ -90,6 +95,18 @@ TEST_IMPL(tcp_connect6_link_local) { + RETURN_SKIP("Test does not currently work in QEMU"); + #endif /* defined(__QEMU__) */ + ++ /* Check there's an interface that routes link-local (fe80::/10) traffic. */ ++ ASSERT_OK(uv_interface_addresses(&ifs, &n)); ++ for (p = ifs; p < &ifs[n]; p++) ++ if (p->address.address6.sin6_family == AF_INET6) ++ if (!memcmp(&p->address.address6.sin6_addr, "\xfe\x80", 2)) ++ break; ++ ok = (p < &ifs[n]); ++ uv_free_interface_addresses(ifs, n); ++ ++ if (!ok) ++ RETURN_SKIP("IPv6 link-local traffic not supported"); ++ + ASSERT_OK(uv_ip6_addr("fe80::0bad:babe", 1337, &addr)); + ASSERT_OK(uv_tcp_init(uv_default_loop(), &server)); + +-- +2.41.0 + diff --git a/0003-test_fs.c-Fix-issue-on-32-bit-systems-using-btrfs.patch b/0003-test_fs.c-Fix-issue-on-32-bit-systems-using-btrfs.patch new file mode 100644 index 0000000000000000000000000000000000000000..c851c32de6b7f1b8e838979dc5eb7c1b82f7eae8 --- /dev/null +++ b/0003-test_fs.c-Fix-issue-on-32-bit-systems-using-btrfs.patch @@ -0,0 +1,34 @@ +From 3d10efa49dc063831787bc01501ab946f6d91282 Mon Sep 17 00:00:00 2001 +From: Stephen Gallagher +Date: Thu, 16 Nov 2023 10:00:20 -0500 +Subject: [PATCH 3/3] test_fs.c: Fix issue on 32-bit systems using btrfs + +On Fedora's build system, the build environment runs on btrfs. This +revealed a bug in the test on i686 systems, where this comparison was +being performed as a comparison of two signed integers, but the +filesystem type of btrfs happens to use the higher-order bits, resulting +in it appearing as a negative value. + +BTRFS_SUPER_MAGIC 0x9123683e + +Signed-off-by: Stephen Gallagher +--- + test/test-fs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/test-fs.c b/test/test-fs.c +index 1acdc5c67082c7ea4f579f25af82cd9bd3fefc71..ab8a9e07ccea95493e479703a07bebca5e29be30 100644 +--- a/test/test-fs.c ++++ b/test/test-fs.c +@@ -343,7 +343,7 @@ static void statfs_cb(uv_fs_t* req) { + defined(__OpenBSD__) || defined(__NetBSD__) + ASSERT_OK(stats->f_type); + #else +- ASSERT_GT(stats->f_type, 0); ++ ASSERT_UINT64_GT(stats->f_type, 0); + #endif + + ASSERT_GT(stats->f_bsize, 0); +-- +2.41.0 + diff --git a/backport-Skip-some-tests.patch b/backport-Skip-some-tests.patch deleted file mode 100644 index 99d91efcc4904f6e092b444d106136323a4aba20..0000000000000000000000000000000000000000 --- a/backport-Skip-some-tests.patch +++ /dev/null @@ -1,47 +0,0 @@ -From ec2de79876a5612916707aa3f107a99e6eeb0bff Mon Sep 17 00:00:00 2001 -From: Stephen Gallagher -Date: Wed, 5 Jan 2022 17:02:49 -0500 -Subject: [PATCH] Skip some tests - -Signed-off-by: Stephen Gallagher ---- - test/test-list.h | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/test/test-list.h b/test/test-list.h -index 59b95da..1d8e00a 100644 ---- a/test/test-list.h -+++ b/test/test-list.h -@@ -163,12 +163,9 @@ TEST_DECLARE (udp_create_early) - TEST_DECLARE (udp_create_early_bad_bind) - TEST_DECLARE (udp_create_early_bad_domain) - TEST_DECLARE (udp_send_and_recv) --TEST_DECLARE (udp_send_hang_loop) - TEST_DECLARE (udp_send_immediate) - TEST_DECLARE (udp_send_unreachable) - TEST_DECLARE (udp_mmsg) --TEST_DECLARE (udp_multicast_join) --TEST_DECLARE (udp_multicast_join6) - TEST_DECLARE (udp_multicast_ttl) - TEST_DECLARE (udp_multicast_interface) - TEST_DECLARE (udp_multicast_interface6) -@@ -737,7 +734,6 @@ TASK_LIST_START - TEST_ENTRY (udp_create_early_bad_bind) - TEST_ENTRY (udp_create_early_bad_domain) - TEST_ENTRY (udp_send_and_recv) -- TEST_ENTRY (udp_send_hang_loop) - TEST_ENTRY (udp_send_immediate) - TEST_ENTRY (udp_send_unreachable) - TEST_ENTRY (udp_dgram_too_big) -@@ -749,8 +745,6 @@ TASK_LIST_START - TEST_ENTRY (udp_mmsg) - TEST_ENTRY (udp_multicast_interface) - TEST_ENTRY (udp_multicast_interface6) -- TEST_ENTRY (udp_multicast_join) -- TEST_ENTRY (udp_multicast_join6) - TEST_ENTRY (udp_multicast_ttl) - TEST_ENTRY (udp_sendmmsg_error) - TEST_ENTRY (udp_try_send) --- -2.33.0 - diff --git a/libuv-v1.44.2.tar.gz b/libuv-v1.44.2.tar.gz deleted file mode 100644 index 68abdfc1f2b13d4424752d9c55334827c16871e1..0000000000000000000000000000000000000000 Binary files a/libuv-v1.44.2.tar.gz and /dev/null differ diff --git a/libuv-v1.47.0.tar.gz b/libuv-v1.47.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..13848e84bdc37d191cf809dbeb8f2a40e64a9f5d Binary files /dev/null and b/libuv-v1.47.0.tar.gz differ diff --git a/libuv.spec b/libuv.spec index a469995f5c37c4d87a535ec4699cc34ab47100a6..f6c9311150c55c5058851aae24281861d0922f0a 100644 --- a/libuv.spec +++ b/libuv.spec @@ -1,6 +1,6 @@ Name: libuv Epoch: 1 -Version: 1.44.2 +Version: 1.47.0 Release: 1 Summary: A multi-platform support library with a focus on asynchronous I/O @@ -11,7 +11,17 @@ Source0: http://dist.libuv.org/dist/v%{version}/%{name}-v%{version}.tar.g Source2: %{name}.pc.in Source3: libuv.abignore -Patch1: backport-Skip-some-tests.patch +# Test fix for IPv6 interfaces with a NULL ifa_addr +# https://github.com/libuv/libuv/pull/4218 +Patch1: 0001-unix-ignore-ifaddrs-with-NULL-ifa_addr-4218.patch + +# test: check if ipv6 link-local traffic is routable +# https://github.com/libuv/libuv/pull/4220 +Patch2: 0002-test-check-if-ipv6-link-local-traffic-is-routable.patch + +# test: Use unsigned comparison for fs_type +# https://github.com/libuv/libuv/pull/4227 +Patch3: 0003-test_fs.c-Fix-issue-on-32-bit-systems-using-btrfs.patch BuildRequires: autoconf automake libtool gcc make @@ -67,6 +77,9 @@ make check %doc ChangeLog %changelog +* Mon Nov 27 2023 Jingwiw - 1:1.47.0-1 +- Upgrade to 1.47.0 + * Thu May 04 2023 lilong - 1:1.44.2-1 - Upgrade to 1.44.2