Compare commits

..

No commits in common. "rawhide" and "f34" have entirely different histories.
rawhide ... f34

10 changed files with 96 additions and 223 deletions

4
.gitignore vendored
View File

@ -80,7 +80,3 @@ libuv-v*/
/libuv-v1.43.0.tar.gz
/libuv-v1.44.0.tar.gz
/libuv-v1.44.1.tar.gz
/libuv-v1.44.2.tar.gz
/libuv-v1.45.0.tar.gz
/libuv-v1.46.0.tar.gz
/libuv-v1.47.0.tar.gz

View File

@ -0,0 +1,59 @@
From ec2de79876a5612916707aa3f107a99e6eeb0bff Mon Sep 17 00:00:00 2001
From: Stephen Gallagher <sgallagh@redhat.com>
Date: Wed, 5 Jan 2022 17:02:49 -0500
Subject: [PATCH] Fedora: Skip tests that can't run in Koji
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
---
test/test-list.h | 6 ------
1 file changed, 6 deletions(-)
diff --git a/test/test-list.h b/test/test-list.h
index 1f566861a0e2e9e29c925972155f49667bb7ce85..bf8519ba2e25249ace1b1e1f85ee07c46c3c60b1 100644
--- a/test/test-list.h
+++ b/test/test-list.h
@@ -163,16 +163,13 @@ TEST_DECLARE (udp_connect)
TEST_DECLARE (udp_connect6)
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)
TEST_DECLARE (udp_dgram_too_big)
TEST_DECLARE (udp_dual_stack)
@@ -741,11 +738,10 @@ TASK_LIST_START
TEST_ENTRY (udp_connect6)
TEST_ENTRY (udp_create_early)
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)
TEST_ENTRY (udp_dual_stack)
TEST_ENTRY (udp_ipv6_only)
@@ -753,12 +749,10 @@ TASK_LIST_START
TEST_ENTRY (udp_options6)
TEST_ENTRY (udp_no_autobind)
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)
TEST_ENTRY (udp_open)
--
2.33.1

View File

@ -1,33 +0,0 @@
From b963f0a75bd6c95fbfa0ac17e46ab1f9d1a787c4 Mon Sep 17 00:00:00 2001
From: Stephen Gallagher <sgallagh@redhat.com>
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 <sgallagh@redhat.com>
---
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

View File

@ -1,58 +0,0 @@
From 21e403424060d71e97ee1ef328288fdb9d24a191 Mon Sep 17 00:00:00 2001
From: Ben Noordhuis <info@bnoordhuis.nl>
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 <stdio.h>
#include <stdlib.h>
+#include <string.h>
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

View File

@ -1,34 +0,0 @@
From 3d10efa49dc063831787bc01501ab946f6d91282 Mon Sep 17 00:00:00 2001
From: Stephen Gallagher <sgallagh@redhat.com>
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 <sgallagh@redhat.com>
---
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

Binary file not shown.

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEz7ucqaW+r9cOKzxaeaZ8VaNnnIsFAmVJLkMACgkQeaZ8VaNn
nIulpw/+PDclC7vdL8iYxgPIcUrkktfeg2bNLreuh8X18vl+9pkm6L2pyHD5oczm
SOuH7l5XWSWUU9TcFH57TMb79e4PQLGQ66+8jNkNb9GDHu4ccKi0Zbke5MXscUsZ
EaG4pjpIOcmE0UopVpIh0qfAli3pO31xJzymAh0/Wz8bWwQ415VEpkAJ+N9a1bWa
Lztf0VfKNjoT5omSuxJ0xwfbc8msDnivY9fKbaHOWLeUkZ7sZ9CBbVAixCfEvGil
81imUmKpNVHjMw1+k0Z7Fw2VrFi7sPh1uOVUuKGImN7ga/tfZscLLNtH+oE3JjIw
Kg2qQDM4VU620SsXYywLZEOsuavzadbOK/2PqBNYVsZ1YOToAItaaNaXmLCVEUla
7t4Dq9W+aR7dtsgcvbS8hEc7goBvMYYLJ6h+Lf/YCTlkDxaKciDGxTEmGsPikbxk
kVjAmW6y1LHiHMw8Ob4DKuv+RMo5oH12ouN8SdSlV8xKyM+Toysv/bwynsC+92Xv
3M0EcVbj32c/9At8xfi1eRFXDPNC3Tu6ibh4qch0Jm9sgJIrzEEKmgR+f+uqAg07
gHVCQMma+Sch+6sUt8/sM1+2r+Epol0/6L5hsstrnLiUVGIyrTawzq6VJFXmc7vA
pxEgUBl/ff2tRS/RlqSNb5YIbIRo0hccuG0qepgMCeahl/UVS/k=
=URgL
-----END PGP SIGNATURE-----

11
libuv.pc.in Normal file
View File

@ -0,0 +1,11 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: libuv
Description: Development libraries for libuv
Version: @version@
Libs: -L${libdir} -luv -lrt -lpthread -lnsl -ldl
Cflags: -I{includedir}
URL: http://libuv.org/

View File

@ -1,57 +1,27 @@
# Run the tests by default on Fedora
# Some of the network tests fail on RHEL/CentOS Stream due to the network
# configuration on the builders
%if 0%{?rhel}
%bcond tests 0
%else
%bcond tests 1
%endif
# Run the tests by default
%bcond_without tests
Name: libuv
Epoch: 1
Version: 1.47.0
Version: 1.44.1
Release: %autorelease
Summary: Platform layer for node.js
# Code is MIT
# Documentation is CC-BY-4.0
# src/inet.c is ISC
# include/uv/tree.h is BSD-2-Clause
License: MIT AND CC-BY-4.0 AND ISC AND BSD-2-Clause
# the licensing breakdown is described in detail in the LICENSE file
License: MIT and BSD and ISC
URL: http://libuv.org/
Source0: http://dist.libuv.org/dist/v%{version}/libuv-v%{version}.tar.gz
Source1: https://dist.libuv.org/dist/v%{version}/%{name}-v%{version}.tar.gz.sign
# mkdir temp
# gpg --no-default-keyring --keyring temp/keyring.gpg --keyserver keyserver.ubuntu.com \
# --recv-keys D77B1E34243FBAF05F8E9CC34F55C8C846AB89B9 \
# FDF519364458319FA8233DC9410E5553AE9BC059 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
# 57353E0DBDAAA7E839B66A1AFF47D5E4AD8B4FDC AEAD0A4B686767751A0E4AEF34A25FB128246514 \
# CFBB9CA9A5BEAFD70E2B3C5A79A67C55A3679C8B C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
# 612F0EAD9401622379DF4402F28C3C8DA33C03BE \
# && gpg --no-default-keyring --keyring temp/keyring.gpg --output temp/keysuv.gpg --export
# cp temp/keysuv.gpg .
Source2: keysuv.gpg
Source2: %{name}.pc.in
Source3: libuv.abignore
# Test fix for IPv6 interfaces with a NULL ifa_addr
# https://github.com/libuv/libuv/pull/4218
Patch: 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
Patch: 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
Patch: 0003-test_fs.c-Fix-issue-on-32-bit-systems-using-btrfs.patch
BuildRequires: cmake
BuildRequires: autoconf automake libtool
BuildRequires: gcc
BuildRequires: gnupg2
# Documentation
BuildRequires: make
BuildRequires: python3-sphinx
BuildRequires: make
# -- Patches -- #
# Disable some tests that fail in the network-free Koji builders
Patch0001: 0001-Fedora-Skip-tests-that-can-t-run-in-Koji.patch
%description
libuv is a new platform layer for Node. Its purpose is to abstract IOCP on
@ -61,8 +31,6 @@ differences in this library.
%package devel
Summary: Development libraries for libuv
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-static%{?_isa} = %{epoch}:%{version}-%{release}
%description devel
Development libraries for libuv
@ -76,62 +44,42 @@ Static library (.a) version of libuv.
%prep
gpgv2 --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0}
%autosetup -n %{name}-v%{version} -p1
%build
%if %{with tests}
%cmake -DBUILD_TESTING=ON
%else
%cmake -DBUILD_TESTING=OFF
%endif
%cmake_build
# Build Documentation
cd docs
make man
cd ..
./autogen.sh
%configure --disable-silent-rules
%make_build
%install
%cmake_install
# install documentation
mkdir -p %{buildroot}/%{_mandir}/man1/
install -p -m 644 docs/build/man/libuv.1 %{buildroot}/%{_mandir}/man1/
%make_install
rm -f %{buildroot}%{_libdir}/libuv.la
mkdir -p %{buildroot}%{_libdir}/libuv/
install -Dm0644 -t %{buildroot}%{_libdir}/libuv/ %{SOURCE3}
# Remove packaged license files
rm %{buildroot}/%{_docdir}/libuv/LICENSE
rm %{buildroot}/%{_docdir}/libuv/LICENSE-extra
%check
%if %{with tests}
env UV_TEST_TIMEOUT_MULTIPLIER=10 ./%{__cmake_builddir}/uv_run_tests
env UV_TEST_TIMEOUT_MULTIPLIER=10 ./%{__cmake_builddir}/uv_run_tests_a
%make_build check
%endif
%ldconfig_scriptlets
%files
%doc README.md AUTHORS CONTRIBUTING.md MAINTAINERS.md SUPPORTED_PLATFORMS.md
%doc ChangeLog
%license LICENSE LICENSE-docs LICENSE-extra
%{_libdir}/%{name}.so.1
%{_libdir}/%{name}.so.1.*
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/libuv.abignore
%{_mandir}/man1/%{name}.1*
%license LICENSE
%{_libdir}/%{name}.so.*
%{_libdir}/libuv/libuv.abignore
%files devel
%{_includedir}/uv.h
%dir %{_includedir}/uv
%{_includedir}/uv/*.h
%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%dir %{_libdir}/cmake/%{name}
%{_libdir}/cmake/%{name}/*.cmake
%{_includedir}/uv.h
%{_includedir}/uv/
%files static
%{_libdir}/%{name}.a
%{_libdir}/pkgconfig/%{name}-static.pc
%changelog
%autochangelog

View File

@ -1 +1 @@
SHA512 (libuv-v1.47.0.tar.gz) = 3fb6db0109dfa49db0e6028f6667ab5245b9707df337134ce6e1e9c9f82d4d686356cad30221094f79e87441e300f3c036a3cf04838d6eb23d4f27b1aaf4da13
SHA512 (libuv-v1.44.1.tar.gz) = b4f8944e2c79e3a6a31ded6cccbe4c0eeada50db6bc8a448d7015642795012a4b80ffeef7ca455bb093c59a8950d0e1430566c3c2fa87b73f82699098162d834