From 7a19ea40f77316c8fc8122c346954bb95728d1c2 Mon Sep 17 00:00:00 2001 From: bbhtt Date: Sat, 16 May 2026 12:50:46 +0530 Subject: [PATCH 1/5] builder-flatpak-utils: Use long for curl_easy_setopt parameters See [1], [2]. GCC lets this slide but Clang does not and causes a Wattribute-warning. [1]: https://curl.se/libcurl/c/curl_easy_setopt.html [2]: https://github.com/curl/curl/blob/e8c1023b00b4b1491d0436f8bc95fe589ad659ed/include/curl/typecheck-gcc.h#L650-L655 (cherry picked from commit 20eca7919a06cfbd55e83ce51f319b833e95fdd9) --- src/builder-flatpak-utils.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/builder-flatpak-utils.c b/src/builder-flatpak-utils.c index 927bdade..2b3f781f 100644 --- a/src/builder-flatpak-utils.c +++ b/src/builder-flatpak-utils.c @@ -1163,11 +1163,11 @@ flatpak_create_curl_session (const char *user_agent) if (curl_session == NULL) return NULL; - curl_easy_setopt (curl_session, CURLOPT_CONNECTTIMEOUT, 60); - curl_easy_setopt (curl_session, CURLOPT_FAILONERROR, 1); - curl_easy_setopt (curl_session, CURLOPT_FOLLOWLOCATION, 1); - curl_easy_setopt (curl_session, CURLOPT_MAXREDIRS, 50); - curl_easy_setopt (curl_session, CURLOPT_NOPROGRESS, 0); + curl_easy_setopt (curl_session, CURLOPT_CONNECTTIMEOUT, 60L); + curl_easy_setopt (curl_session, CURLOPT_FAILONERROR, 1L); + curl_easy_setopt (curl_session, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt (curl_session, CURLOPT_MAXREDIRS, 50L); + curl_easy_setopt (curl_session, CURLOPT_NOPROGRESS, 0L); curl_easy_setopt (curl_session, CURLOPT_LOW_SPEED_TIME, 60L); curl_easy_setopt (curl_session, CURLOPT_LOW_SPEED_LIMIT, 10000L); curl_easy_setopt (curl_session, CURLOPT_USERAGENT, user_agent); From c32fc6e3762695d99612f9ffbe24fb9e637b6ff4 Mon Sep 17 00:00:00 2001 From: bbhtt Date: Sat, 16 May 2026 12:59:34 +0530 Subject: [PATCH 2/5] builder-utils: Fix type signature of curl write callback gpointer * is void ** which does not match the expected type signature of the params in the typecheck macro [1], [2]. GCC lets this slide but Clang causes a -Wattribute-warning. [1]: https://github.com/curl/curl/blob/e8c1023b00b4b1491d0436f8bc95fe589ad659ed/include/curl/typecheck-gcc.h#L734 [2]: https://curl.se/libcurl/c/CURLOPT_WRITEFUNCTION.html (cherry picked from commit a8cb2d38e52e3c318d7fd0115ac19206000569e1) --- src/builder-utils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/builder-utils.c b/src/builder-utils.c index 05be6616..7a844f5c 100644 --- a/src/builder-utils.c +++ b/src/builder-utils.c @@ -1117,10 +1117,10 @@ typedef struct { } CURLWriteData; static gsize -builder_curl_write_cb (gpointer *buffer, +builder_curl_write_cb (char *buffer, gsize size, gsize nmemb, - gpointer *userdata) + void *userdata) { gsize bytes_written; CURLWriteData *write_data = (CURLWriteData *) userdata; From 49213d89b8494b1b0c11672fe43ea507e4082b34 Mon Sep 17 00:00:00 2001 From: bbhtt Date: Sat, 16 May 2026 13:03:38 +0530 Subject: [PATCH 3/5] build: Ignore typedef-redefinition when building with clang OSTree has a typedef-redefinition in OstreeContentWriter, since it is allowed by C11 and earlier via GCC C11 extensions, ignore it for Clang builds (cherry picked from commit ae4ddc5ef5578ec338f01eb7cbb4a98d866a510f) --- meson.build | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/meson.build b/meson.build index 8a0138ca..d7fde29e 100644 --- a/meson.build +++ b/meson.build @@ -37,6 +37,17 @@ foreach arg : project_c_args endif endforeach +if cc.get_id() == 'clang' + clang_args = [ + '-Wno-typedef-redefinition', + ] + foreach arg : clang_args + if cc.has_argument(arg) + add_project_arguments(arg, language: 'c') + endif + endforeach +endif + # The debugedit program is a hard dependency debugedit = find_program('debugedit', version: '>= 5.0') From 408b5220b51a15b6587deeac456910eb5e664d87 Mon Sep 17 00:00:00 2001 From: bbhtt Date: Sat, 16 May 2026 11:18:51 +0530 Subject: [PATCH 4/5] builder-flatpak-utils: Fix const correctness warnings Glibc 2.43 implements C23 const-preserving string-search functions [1] This fixes the build with Glibc 2.43 and GCC 15.1 (which defaults to C23). [1]: https://sourceware.org/glibc/wiki/Release/2.43#C23_Const-Preserving_Standard_Library_Macros_May_Break_Some_Packages (cherry picked from commit ebc4f5e2158937ef54f2553779f6d456aff614e7) --- src/builder-flatpak-utils.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/builder-flatpak-utils.c b/src/builder-flatpak-utils.c index 2b3f781f..2829e7eb 100644 --- a/src/builder-flatpak-utils.c +++ b/src/builder-flatpak-utils.c @@ -185,7 +185,7 @@ flatpak_path_match_prefix (const char *pattern, /* special case * at end */ if (c == 0) { - char *tmp = strchr (string, '/'); + const char *tmp = strchr (string, '/'); if (tmp != NULL) return tmp; return string + strlen (string); @@ -1633,7 +1633,7 @@ get_xdg_user_dir_from_string (const char *filesystem, const char **suffix, const char **dir) { - char *slash; + const char *slash; const char *rest; g_autofree char *prefix = NULL; gsize len; @@ -2087,7 +2087,7 @@ option_add_generic_policy_cb (const gchar *option_name, GError **error) { FlatpakContext *context = data; - char *t; + const char *t; g_autofree char *key = NULL; const char *policy_value; @@ -2114,7 +2114,7 @@ option_remove_generic_policy_cb (const gchar *option_name, GError **error) { FlatpakContext *context = data; - char *t; + const char *t; g_autofree char *key = NULL; const char *policy_value; g_autofree char *extended_value = NULL; From ba67f2af89692eb3feb95cec7e9fc4db82f98d99 Mon Sep 17 00:00:00 2001 From: bbhtt Date: Tue, 19 May 2026 06:38:28 +0530 Subject: [PATCH 5/5] ci: Exercise -Werror in CI --- .github/workflows/check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index d9e2da0b..484655ed 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -35,7 +35,7 @@ jobs: - name: configure run: ./autogen.sh env: - CFLAGS: -fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2 + CFLAGS: -fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2 -Werror - name: Build flatpak run: make -j $(getconf _NPROCESSORS_ONLN) - name: Run tests @@ -96,7 +96,7 @@ jobs: sudo apt-get install -y $(xargs < .github/dependencies.apt.txt) - name: Configure flatpak-builder - run: meson setup --wrap-mode nodownload ${CONFIG_OPTS} ${BUILDDIR} . + run: meson setup --wrap-mode nodownload ${CONFIG_OPTS} -Dwerror=true ${BUILDDIR} . - name: Build flatpak-builder with Meson run: meson compile -C ${BUILDDIR}