[openwrt/openwrt] apk: Fix host compilation with C89

LEDE Commits lede-commits at lists.infradead.org
Mon Dec 8 17:10:03 PST 2025


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/d11b77db5eca3e20c5c238c55d80059229a188b3

commit d11b77db5eca3e20c5c238c55d80059229a188b3
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Tue Dec 9 02:06:26 2025 +0100

    apk: Fix host compilation with C89
    
    This fixes the following build error:
    ```
    ../src/apk.c: In function 'parse_options':
    ../src/apk.c:584:4: error: a label can only be part of a statement and a declaration is not a statement
      584 |    char *arg = opt_parse_arg(&st);
          |    ^~~~
    ```
    
    Upstream MR: https://gitlab.alpinelinux.org/alpine/apk-tools/-/merge_requests/376
    
    Fixes: b91ebdabbb09 ("apk: bump to 3.0.1")
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../0020-apk-fix-compile-when-using-C89.patch      | 56 ++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/package/system/apk/patches/0020-apk-fix-compile-when-using-C89.patch b/package/system/apk/patches/0020-apk-fix-compile-when-using-C89.patch
new file mode 100644
index 0000000000..8cd30542dd
--- /dev/null
+++ b/package/system/apk/patches/0020-apk-fix-compile-when-using-C89.patch
@@ -0,0 +1,56 @@
+From 54385e6dc02ada9ec827b6b79b9359951197fee5 Mon Sep 17 00:00:00 2001
+From: Paul Donald <newtwen+gitlab at gmail.com>
+Date: Tue, 9 Dec 2025 00:31:27 +0100
+Subject: [PATCH] apk: fix compile when using C89
+
+The older standard is more strict, and gives rise to errors:
+
+../src/apk.c: In function 'parse_options':
+../src/apk.c:584:4: error: a label can only be part of a statement and a declaration is not a statement
+  584 |    char *arg = opt_parse_arg(&st);
+      |    ^~~~
+
+So move the *arg declaration to function start.
+
+../src/app_mkpkg.c: In function 'mkpkg_setup_compat':
+../src/app_mkpkg.c:423:2: error: label at end of compound statement
+  423 |  default:
+      |  ^~~~~~~
+
+add break;
+
+Signed-off-by: Paul Donald <newtwen+gitlab at gmail.com>
+---
+ src/apk.c       | 3 ++-
+ src/app_mkpkg.c | 1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+--- a/src/apk.c
++++ b/src/apk.c
+@@ -556,6 +556,7 @@ static int parse_options(int argc, char
+ 	struct apk_opt_match m;
+ 	bool applet_arg_pending = false;
+ 	int r;
++	char *arg;
+ 
+ 	applet = applet_from_arg0(argv[0]);
+ 	if (!applet) {
+@@ -581,7 +582,7 @@ static int parse_options(int argc, char
+ 		case 0:
+ 			break;
+ 		case OPT_MATCH_NON_OPTION:
+-			char *arg = opt_parse_arg(&st);
++			arg = opt_parse_arg(&st);
+ 			if (applet_arg_pending && strcmp(arg, applet->name) == 0)
+ 				applet_arg_pending = false;
+ 			else if (arg[0] || !applet || !applet->remove_empty_arguments)
+--- a/src/app_mkpkg.c
++++ b/src/app_mkpkg.c
+@@ -421,6 +421,7 @@ static void mkpkg_setup_compat(struct mk
+ 	case 0: ctx->compat_rootnode = 1; // fallthrough
+ 	case 1: ctx->compat_dirnode = 1;  // fallthrough
+ 	default:
++		break;
+ 	}
+ }
+ 




More information about the lede-commits mailing list