apk: backport patch fixing broken apk update with wget fetch
authorChristian Marangi <ansuelsmth@gmail.com>
Tue, 4 Mar 2025 00:03:10 +0000 (01:03 +0100)
committerChristian Marangi <ansuelsmth@gmail.com>
Tue, 4 Mar 2025 00:03:10 +0000 (01:03 +0100)
APK update is currently broken if wget is used as a tool. This wasn't
correctly tested and cause seg fault. Backport the patch fixing this to
restore original functionality.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
package/system/apk/Makefile
package/system/apk/patches/0002-io_url_wget-correctly-init-wget_out-on-apk_io_url_in.patch [new file with mode: 0644]

index b1b1fd3a4028020e2854b1958c73e71dea9693c8..f753b41f85b74d1e38ab7d569a3c7b5cd5807a8b 100644 (file)
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apk
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git
 PKG_SOURCE_PROTO:=git
diff --git a/package/system/apk/patches/0002-io_url_wget-correctly-init-wget_out-on-apk_io_url_in.patch b/package/system/apk/patches/0002-io_url_wget-correctly-init-wget_out-on-apk_io_url_in.patch
new file mode 100644 (file)
index 0000000..305e367
--- /dev/null
@@ -0,0 +1,27 @@
+From a50f7ea2dd023ef124c5209b487608b37dbeea7c Mon Sep 17 00:00:00 2001
+From: Christian Marangi <ansuelsmth@gmail.com>
+Date: Sat, 1 Mar 2025 19:33:18 +0100
+Subject: [PATCH] io_url_wget: correctly init wget_out on apk_io_url_init call
+
+Commit fc7768c09497 ("io_url_wget: log wget output using apk_process
+api") reworked the implementation but forgot to init the static wget_out
+on calling apk_io_url_init. This cause APK to SIGFAULT on apk update or
+apk add when actually using the WGET method to download remote packages.
+
+Fix this by setting wget_out with the passed out from apk_io_url_init.
+
+Reported-by: John Crispin <john@phrozen.org>
+Fixes: fc7768c09497 ("io_url_wget: log wget output using apk_process api")
+Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
+---
+ src/io_url_wget.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/src/io_url_wget.c
++++ b/src/io_url_wget.c
+@@ -48,4 +48,5 @@ void apk_io_url_set_redirect_callback(vo
+ void apk_io_url_init(struct apk_out *out)
+ {
++      wget_out = out;
+ }