commit:     047579dd5fdbd32b836c75634fdce4d7ddf89607
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 18 05:34:05 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Nov 18 05:34:48 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=047579dd

dev-libs/ell: fix C23 compat

Closes: https://bugs.gentoo.org/943704
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-libs/ell/ell-0.70-r1.ebuild                    | 63 ++++++++++++++++++++
 .../0001-settings-fix-std-c23-build-failure.patch  | 43 ++++++++++++++
 .../0.70/0002-cert-fix-std-c23-build-failure.patch | 67 ++++++++++++++++++++++
 .../0.70/0003-dbus-fix-std-c23-build-failure.patch | 45 +++++++++++++++
 .../0004-test-rtnl-fix-std-c23-build-failure.patch | 58 +++++++++++++++++++
 5 files changed, 276 insertions(+)

diff --git a/dev-libs/ell/ell-0.70-r1.ebuild b/dev-libs/ell/ell-0.70-r1.ebuild
new file mode 100644
index 000000000000..458f682ec04f
--- /dev/null
+++ b/dev-libs/ell/ell-0.70-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic linux-info
+
+DESCRIPTION="Embedded Linux Library provides core, low-level functionality for 
system daemons"
+HOMEPAGE="https://git.kernel.org/pub/scm/libs/ell/ell.git";
+if [[ "${PV}" == *9999 ]] ; then
+       inherit autotools git-r3
+       EGIT_REPO_URI="https://git.kernel.org/pub/scm/libs/ell/ell.git";
+else
+       
SRC_URI="https://mirrors.edge.kernel.org/pub/linux/libs/${PN}/${P}.tar.xz";
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 
~riscv ~sparc ~x86"
+fi
+LICENSE="LGPL-2.1+"
+SLOT="0"
+
+IUSE="pie test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( sys-apps/dbus )"
+
+CONFIG_CHECK="
+       ~TIMERFD
+       ~EVENTFD
+       ~CRYPTO_USER_API
+       ~CRYPTO_USER_API_HASH
+       ~CRYPTO_MD5
+       ~CRYPTO_SHA1
+       ~KEY_DH_OPERATIONS
+"
+
+PATCHES=(
+       "${FILESDIR}"/0.70
+)
+
+src_prepare() {
+       default
+       sed -i -e "s#/tmp/ell-test-bus#/tmp/ell-test-bus-$(uuidgen)#" \
+               unit/test-dbus*.c unit/dbus.conf || die
+       [[ "${PV}" == *9999 ]] && eautoreconf
+}
+
+src_configure() {
+       append-cflags "-fsigned-char" #662694
+       local myeconfargs=(
+               $(use_enable pie)
+       )
+       econf "${myeconfargs[@]}"
+}
+
+src_install() {
+       default
+
+       find "${ED}" -name "*.la" -delete || die
+}
+
+src_test() {
+       # New dbus tests fail with >3 jobs, this should get fixed soon
+       emake -j1 check
+}

diff --git 
a/dev-libs/ell/files/0.70/0001-settings-fix-std-c23-build-failure.patch 
b/dev-libs/ell/files/0.70/0001-settings-fix-std-c23-build-failure.patch
new file mode 100644
index 000000000000..7adbb003267a
--- /dev/null
+++ b/dev-libs/ell/files/0.70/0001-settings-fix-std-c23-build-failure.patch
@@ -0,0 +1,43 @@
+https://bugs.gentoo.org/943704
+https://lore.kernel.org/all/[email protected]/T/#m1770e7c457dbb58d6950ee981c68cdd39a996724
+
+From fdfed58104edd309431f738eaf3a7b5361ff9c86 Mon Sep 17 00:00:00 2001
+Message-ID: 
<fdfed58104edd309431f738eaf3a7b5361ff9c86.1731907744.git....@gentoo.org>
+From: Sergei Trofimovich <[email protected]>
+Date: Sun, 17 Nov 2024 00:18:11 +0000
+Subject: [PATCH 1/4] settings: fix -std=c23 build failure
+
+gcc-15 switched to -std=c23 by default:
+
+    
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=55e3bd376b2214e200fa76d12b67ff259b06c212
+
+As a result `ell` fails the build as:
+
+    ell/settings.c: In function 'l_settings_get_embedded_value':
+    ell/settings.c:1521:24: error: incompatible types when returning type 
'_Bool' but 'const char *' was expected
+     1521 |                 return false;
+          |                        ^~~~~
+
+The change uses poiter instead of a bool to return the zero value.
+---
+ ell/settings.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ell/settings.c b/ell/settings.c
+index a5f17d1..b46d00b 100644
+--- a/ell/settings.c
++++ b/ell/settings.c
+@@ -1518,7 +1518,7 @@ LIB_EXPORT const char *l_settings_get_embedded_value(
+       struct embedded_group_data *group;
+ 
+       if (unlikely(!settings))
+-              return false;
++              return NULL;
+ 
+       group = l_queue_find(settings->embedded_groups,
+                                       embedded_group_match, group_name);
+
+base-commit: 373b828093fd48e5f33558bfba9fceaed311486c
+-- 
+2.47.0
+

diff --git a/dev-libs/ell/files/0.70/0002-cert-fix-std-c23-build-failure.patch 
b/dev-libs/ell/files/0.70/0002-cert-fix-std-c23-build-failure.patch
new file mode 100644
index 000000000000..85b95a845834
--- /dev/null
+++ b/dev-libs/ell/files/0.70/0002-cert-fix-std-c23-build-failure.patch
@@ -0,0 +1,67 @@
+https://bugs.gentoo.org/943704
+https://lore.kernel.org/all/[email protected]/T/#m1770e7c457dbb58d6950ee981c68cdd39a996724
+
+From f06bcc6e1b08563ef9a8c8837ad39aaa4357ee43 Mon Sep 17 00:00:00 2001
+Message-ID: 
<f06bcc6e1b08563ef9a8c8837ad39aaa4357ee43.1731907744.git....@gentoo.org>
+In-Reply-To: 
<fdfed58104edd309431f738eaf3a7b5361ff9c86.1731907744.git....@gentoo.org>
+References: 
<fdfed58104edd309431f738eaf3a7b5361ff9c86.1731907744.git....@gentoo.org>
+From: Sergei Trofimovich <[email protected]>
+Date: Sun, 17 Nov 2024 00:18:12 +0000
+Subject: [PATCH 2/4] cert: fix -std=c23 build failure
+
+gcc-15 switched to -std=c23 by default:
+
+    
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=55e3bd376b2214e200fa76d12b67ff
+259b06c212
+
+As a result `ell` fails the build as:
+
+      390 |                         return false;
+          |                                ^~~~~
+
+ell/cert.c:390:32: error: incompatible types when returning type '_Bool' but 
'const uint8_t *' {aka 'const unsigned char *'} was expected
+---
+ ell/cert.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/ell/cert.c b/ell/cert.c
+index 38bb01a..19a6556 100644
+--- a/ell/cert.c
++++ b/ell/cert.c
+@@ -387,13 +387,13 @@ const uint8_t *cert_get_extension(struct l_cert *cert,
+ 
+               seq = asn1_der_find_elem(ext, end - ext, 0, &tag, &len);
+               if (unlikely(!seq || tag != ASN1_ID_SEQUENCE))
+-                      return false;
++                      return NULL;
+ 
+               ext = seq + len;
+ 
+               oid = asn1_der_find_elem(seq, len, 0, &tag, &oid_len);
+               if (unlikely(!oid || tag != ASN1_ID_OID))
+-                      return false;
++                      return NULL;
+ 
+               if (!asn1_oid_eq(ext_id, oid_len, oid))
+                       continue;
+@@ -403,7 +403,7 @@ const uint8_t *cert_get_extension(struct l_cert *cert,
+ 
+               if (data && tag == ASN1_ID_BOOLEAN) {
+                       if (data_len != 1)
+-                              return false;
++                              return NULL;
+ 
+                       critical = *data != 0;  /* Tolerate BER booleans */
+ 
+@@ -411,7 +411,7 @@ const uint8_t *cert_get_extension(struct l_cert *cert,
+               }
+ 
+               if (unlikely(!data || tag != ASN1_ID_OCTET_STRING))
+-                      return false;
++                      return NULL;
+ 
+               if (out_critical)
+                       *out_critical = critical;
+-- 
+2.47.0
+

diff --git a/dev-libs/ell/files/0.70/0003-dbus-fix-std-c23-build-failure.patch 
b/dev-libs/ell/files/0.70/0003-dbus-fix-std-c23-build-failure.patch
new file mode 100644
index 000000000000..d320a7ba7ab0
--- /dev/null
+++ b/dev-libs/ell/files/0.70/0003-dbus-fix-std-c23-build-failure.patch
@@ -0,0 +1,45 @@
+https://bugs.gentoo.org/943704
+https://lore.kernel.org/all/[email protected]/T/#m1770e7c457dbb58d6950ee981c68cdd39a996724
+
+From 4aebc7cd5b40df939532bcf4c15e0407e2748750 Mon Sep 17 00:00:00 2001
+Message-ID: 
<4aebc7cd5b40df939532bcf4c15e0407e2748750.1731907744.git....@gentoo.org>
+In-Reply-To: 
<fdfed58104edd309431f738eaf3a7b5361ff9c86.1731907744.git....@gentoo.org>
+References: 
<fdfed58104edd309431f738eaf3a7b5361ff9c86.1731907744.git....@gentoo.org>
+From: Sergei Trofimovich <[email protected]>
+Date: Sun, 17 Nov 2024 00:18:13 +0000
+Subject: [PATCH 3/4] dbus: fix -std=c23 build failure
+
+gcc-15 switched to -std=c23 by default:
+
+    
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=55e3bd376b2214e200fa76d12b67ff259b06c212
+
+As a result `ell` fails the build as:
+
+     1700 |                 return false;
+          |                        ^~~~~
+
+ell/dbus.c:1700:24: error: incompatible types when returning type '_Bool' but 
'void *' was expected
+---
+ ell/dbus.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ell/dbus.c b/ell/dbus.c
+index bd6e1b8..1ab4ded 100644
+--- a/ell/dbus.c
++++ b/ell/dbus.c
+@@ -1697,10 +1697,10 @@ LIB_EXPORT void *l_dbus_object_get_data(struct l_dbus 
*dbus, const char *object,
+                                       const char *interface)
+ {
+       if (unlikely(!dbus))
+-              return false;
++              return NULL;
+ 
+       if (unlikely(!dbus->tree))
+-              return false;
++              return NULL;
+ 
+       return _dbus_object_tree_get_interface_data(dbus->tree, object,
+                                                       interface);
+-- 
+2.47.0
+

diff --git 
a/dev-libs/ell/files/0.70/0004-test-rtnl-fix-std-c23-build-failure.patch 
b/dev-libs/ell/files/0.70/0004-test-rtnl-fix-std-c23-build-failure.patch
new file mode 100644
index 000000000000..a170e2475b0c
--- /dev/null
+++ b/dev-libs/ell/files/0.70/0004-test-rtnl-fix-std-c23-build-failure.patch
@@ -0,0 +1,58 @@
+https://bugs.gentoo.org/943704
+https://lore.kernel.org/all/[email protected]/T/#m1770e7c457dbb58d6950ee981c68cdd39a996724
+
+From f5048a5412a0f046c58e1566569dfcc31cd5b5d6 Mon Sep 17 00:00:00 2001
+Message-ID: 
<f5048a5412a0f046c58e1566569dfcc31cd5b5d6.1731907744.git....@gentoo.org>
+In-Reply-To: 
<fdfed58104edd309431f738eaf3a7b5361ff9c86.1731907744.git....@gentoo.org>
+References: 
<fdfed58104edd309431f738eaf3a7b5361ff9c86.1731907744.git....@gentoo.org>
+From: Sergei Trofimovich <[email protected]>
+Date: Sun, 17 Nov 2024 00:18:14 +0000
+Subject: [PATCH 4/4] test-rtnl: fix -std=c23 build failure
+
+gcc-15 switched to -std=c23 by default:
+
+    
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=55e3bd376b2214e200fa76d12b67ff259b06c212
+
+As a result `ell` fails the build as:
+
+      passing argument 1 of 'l_idle_oneshot' from incompatible pointer type 
[-Wincompatible-pointer-types]
+      501 |         l_idle_oneshot(test_next, NULL, NULL);
+          |                        ^~~~~~~~~
+          |                        |
+          |                        void (*)(void)
+
+unit/test-rtnl.c: In function 'test_run':
+unit/test-rtnl.c:501:24: error:
+---
+ unit/test-rtnl.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/unit/test-rtnl.c b/unit/test-rtnl.c
+index 59d8492..6fbac9e 100644
+--- a/unit/test-rtnl.c
++++ b/unit/test-rtnl.c
+@@ -358,6 +358,12 @@ static void test_next()
+       test->start(rtnl, test->data);
+ }
+ 
++static void test_next_cb(void * unused)
++{
++      (void)unused;
++      test_next();
++}
++
+ #define test_assert(cond)     \
+       do {    \
+               if (!(cond)) {  \
+@@ -498,7 +504,7 @@ static void test_run(void)
+ {
+       success = false;
+ 
+-      l_idle_oneshot(test_next, NULL, NULL);
++      l_idle_oneshot(test_next_cb, NULL, NULL);
+       l_main_run_with_signal(signal_handler, NULL);
+ }
+ 
+-- 
+2.47.0
+

Reply via email to