Jan Alexander Steffens (heftig) pushed to branch main at Arch Linux / Packaging 
/ Packages / networkmanager


Commits:
29da5181 by Jan Alexander Steffens (heftig) at 2023-10-13T19:59:20+02:00
1.44.2-2: Fix looping callbacks with curl 8.4

- - - - -


3 changed files:

- .SRCINFO
- + 0001-connectivity-Make-curl-timeout-callback-non-repeatin.patch
- PKGBUILD


Changes:

=====================================
.SRCINFO
=====================================
@@ -1,7 +1,7 @@
 pkgbase = networkmanager
        pkgdesc = Network connection manager and user applications
        pkgver = 1.44.2
-       pkgrel = 1
+       pkgrel = 2
        url = https://networkmanager.dev/
        arch = x86_64
        license = GPL
@@ -41,7 +41,9 @@ pkgbase = networkmanager
        makedepends = vala
        makedepends = wpa_supplicant
        source = 
git+https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git#commit=8bee6ef894a27ffc8a464df3b32b03e811e1a15d
+       source = 0001-connectivity-Make-curl-timeout-callback-non-repeatin.patch
        b2sums = SKIP
+       b2sums = 
d5466c3edc1f989238bc5c414e5b166cf22cdf2bb21a59654e34bb9b930542945027856bb995eee322daa8e84b3c9c2a81ab5d1c20d498211a54426040cca9c8
 
 pkgname = networkmanager
        depends = audit


=====================================
0001-connectivity-Make-curl-timeout-callback-non-repeatin.patch
=====================================
@@ -0,0 +1,28 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tatsuyuki Ishi <[email protected]>
+Date: Fri, 13 Oct 2023 16:46:09 +0000
+Subject: [PATCH] connectivity: Make curl timeout callback non-repeating.
+
+The CURLMOPT_TIMERFUNCTION manual says:
+Your callback function timer_callback should install a *non-repeating* timer 
with an expire time of timeout_ms milliseconds.
+
+The previous callback returned G_SOURCE_CONTINUE, resulting in a repeating 
firing callback. curl tweaked some internals in v8.4.0 and started giving 0 
timeouts, which caused this to wreak havoc.
+
+Fix it by making the callback non-repeating as specified by the API contract.
+---
+ src/core/nm-connectivity.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/nm-connectivity.c b/src/core/nm-connectivity.c
+index 92de44f17d99..2a34752558e8 100644
+--- a/src/core/nm-connectivity.c
++++ b/src/core/nm-connectivity.c
+@@ -408,7 +408,7 @@ _con_curl_timeout_cb(gpointer user_data)
+ 
+     _con_curl_check_connectivity(cb_data->concheck.curl_mhandle, 
CURL_SOCKET_TIMEOUT, 0);
+     _complete_queued(cb_data->self);
+-    return G_SOURCE_CONTINUE;
++    return G_SOURCE_REMOVE;
+ }
+ 
+ static int


=====================================
PKGBUILD
=====================================
@@ -12,7 +12,7 @@ pkgname=(
   nm-cloud-setup
 )
 pkgver=1.44.2
-pkgrel=1
+pkgrel=2
 pkgdesc="Network connection manager and user applications"
 url="https://networkmanager.dev/";
 arch=(x86_64)
@@ -57,8 +57,12 @@ checkdepends=(
   python-dbus
 )
 _commit=8bee6ef894a27ffc8a464df3b32b03e811e1a15d  # tags/1.44.2^0
-source=("git+https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git#commit=$_commit";)
-b2sums=('SKIP')
+source=(
+  
"git+https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git#commit=$_commit";
+  0001-connectivity-Make-curl-timeout-callback-non-repeatin.patch
+)
+b2sums=('SKIP'
+        
'd5466c3edc1f989238bc5c414e5b166cf22cdf2bb21a59654e34bb9b930542945027856bb995eee322daa8e84b3c9c2a81ab5d1c20d498211a54426040cca9c8')
 
 pkgver() {
   cd NetworkManager
@@ -67,6 +71,9 @@ pkgver() {
 
 prepare() {
   cd NetworkManager
+
+  # 
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1756
+  git apply -3 
../0001-connectivity-Make-curl-timeout-callback-non-repeatin.patch
 }
 
 build() {



View it on GitLab: 
https://gitlab.archlinux.org/archlinux/packaging/packages/networkmanager/-/commit/29da51812f399c44fdc8cae8168d194db51b4025

-- 
View it on GitLab: 
https://gitlab.archlinux.org/archlinux/packaging/packages/networkmanager/-/commit/29da51812f399c44fdc8cae8168d194db51b4025
You're receiving this email because of your account on gitlab.archlinux.org.


Reply via email to