summaryrefslogtreecommitdiff
path: root/dev-libs/folks/files/folks-0.15.6-implicit-decl.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-01-30 11:49:23 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-01-30 11:49:23 +0000
commit840a65e2af3f2cc7527e723a28f6e627a9592fb7 (patch)
tree66e124d9e55317fe43e1af9984e75c156df5cb29 /dev-libs/folks/files/folks-0.15.6-implicit-decl.patch
parent73e3b099187df1c4f2df056e45f345a56d2535aa (diff)
gentoo auto-resync : 30:01:2024 - 11:49:23
Diffstat (limited to 'dev-libs/folks/files/folks-0.15.6-implicit-decl.patch')
-rw-r--r--dev-libs/folks/files/folks-0.15.6-implicit-decl.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/dev-libs/folks/files/folks-0.15.6-implicit-decl.patch b/dev-libs/folks/files/folks-0.15.6-implicit-decl.patch
new file mode 100644
index 000000000000..f61d655343e4
--- /dev/null
+++ b/dev-libs/folks/files/folks-0.15.6-implicit-decl.patch
@@ -0,0 +1,61 @@
+From 127bacf86b7ef639c37dd07afc0bf848c005c3c2 Mon Sep 17 00:00:00 2001
+From: Mohammed Anas <triallax@tutanota.com>
+Date: Sun, 14 Jan 2024 03:27:31 +0000
+Subject: [PATCH] build: add missing API declaration -include to dummy and EDS
+ backends
+
+In 7a9c8133468c1f8eb7fbb0e68a6a7e061b9452fb, the original
+`-include redeclare-internal-api.h` was added for autotools. It is
+necessary due to vala internals that require guaranteeing a private
+ABI's prototype is available when compiling folks, even though vala
+doesn't generate that prototype.
+
+During the port to meson, this `-include` was dropped.
+
+Without it, `-Werror=implicit-function-declaration` will cause folks to
+fail to compile. Implicit function declarations are a terrible feature
+-- they were part of c89, but c99 removed them without a deprecation
+because they were too dangerous to use, notable in a language that
+doesn't like to remove features even *with* a deprecation.
+
+For over two decades, compilers have, by default, allowed this invalid C
+anyways, on the grounds that it commonly existed, but modern compilers
+are finally starting to enforce this. It will become a fatal error by
+default in gcc 14, and clang 16.
+
+Folks got this right all the way back in 2013; it disappeared by
+accident. Let's restore it as originally intended.
+---
+Upstream: https://gitlab.gnome.org/GNOME/folks/-/merge_requests/68
+
+ backends/dummy/lib/meson.build | 1 +
+ backends/eds/lib/meson.build | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/backends/dummy/lib/meson.build b/backends/dummy/lib/meson.build
+index 32448f35..eacc0e7a 100644
+--- a/backends/dummy/lib/meson.build
++++ b/backends/dummy/lib/meson.build
+@@ -23,6 +23,7 @@ dummy_backendlib_vala_flags = [
+
+ dummy_backendlib_c_flags = [
+ '-include', 'config.h',
++ '-include', 'folks/redeclare-internal-api.h',
+ '-DBACKEND_NAME="@0@"'.format(dummy_backend_name),
+ '-DG_LOG_DOMAIN="@0@"'.format(dummy_backend_name),
+ ]
+diff --git a/backends/eds/lib/meson.build b/backends/eds/lib/meson.build
+index 3e3db84c..68d803b3 100644
+--- a/backends/eds/lib/meson.build
++++ b/backends/eds/lib/meson.build
+@@ -40,6 +40,7 @@ endif
+
+ eds_backendlib_c_flags = [
+ '-include', 'config.h',
++ '-include', 'folks/redeclare-internal-api.h',
+ '-DBACKEND_NAME="@0@"'.format(eds_backend_name),
+ '-DG_LOG_DOMAIN="@0@"'.format(eds_backend_name),
+ ]
+--
+GitLab
+