commit:     5b37553a9c5af8e400cd23a2dd79ecdf4b32812e
Author:     Brahmajit Das <brahmajit.xyz <AT> gmail <DOT> com>
AuthorDate: Wed May  1 08:48:39 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu May  2 03:54:25 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5b37553a

x11-wm/notion: Fix passing of incompatible pointer type

TODO:
According to developer/s, frame->mplex->win would be a more type-safe way to
achieve the same, but then it becomes less clear whether this is an 'is' or a
'has' relationship.

Closes: https://bugs.gentoo.org/919249
Signed-off-by: Brahmajit Das <brahmajit.xyz <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/36498
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/notion-4.0.2-gcc14-build-fix.patch       | 49 ++++++++++++++++++++++
 ...999.ebuild => notion-4.0.2_p20220613-r1.ebuild} | 10 ++++-
 x11-wm/notion/notion-9999.ebuild                   |  6 ++-
 3 files changed, 62 insertions(+), 3 deletions(-)

diff --git a/x11-wm/notion/files/notion-4.0.2-gcc14-build-fix.patch 
b/x11-wm/notion/files/notion-4.0.2-gcc14-build-fix.patch
new file mode 100644
index 000000000000..94782a30a8cc
--- /dev/null
+++ b/x11-wm/notion/files/notion-4.0.2-gcc14-build-fix.patch
@@ -0,0 +1,49 @@
+https://github.com/raboof/notion/commit/3c81575d48b2fd1b851536e305961bb199ea36b5.patch
+From: Brahmajit Das <[email protected]>
+Date: Wed, 1 May 2024 11:35:59 +0530
+Subject: [PATCH] Fix build with GCC 14 and above
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Newer compilers such as GCC 14 ( and above ) have enabled a few compiler
+flags by default, -Wincompatible-pointer-types being one of them. Thus
+resulting in build errors such as:
+
+frame.c: In function ‘frame_set_numbers_extl’:
+frame.c:799:32: error: passing argument 1 of ‘ioncore_grab_establish’ from 
incompatible pointer type [-Wincompatible-pointer-types]
+  799 |         ioncore_grab_establish(frame, numbers_grab_handler, NULL,
+      |                                ^~~~~
+      |                                |
+      |                                WFrame * {aka struct WFrame_struct *}
+
+For now a type casting can be used to supress the error, as changing the type
+of frame would require touching other parts of the codebase. This should be
+fine for now as WFrame is a WMPlex which is a WWindow.
+
+TODO:
+According to developer/s, frame->mplex->win would be a more type-safe way to
+achieve the same, but then it becomes less clear whether this is an 'is' or a
+'has' relationship.
+
+First reported on Gentoo Linux with GCC 14, for more details please
+reffer https://bugs.gentoo.org/919249
+
+Signed-off-by: Brahmajit Das <[email protected]>
+---
+ ioncore/frame.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ioncore/frame.c b/ioncore/frame.c
+index dbe0d107c..2f7663815 100644
+--- a/ioncore/frame.c
++++ b/ioncore/frame.c
+@@ -796,7 +796,7 @@ bool frame_set_numbers_extl(WFrame *frame, const char *how)
+ {
+     if(how!=NULL && strcmp(how, "during_grab")==0){
+         bool new_state = frame_set_numbers(frame, SETPARAM_SET);
+-        ioncore_grab_establish(frame, numbers_grab_handler, NULL,
++        ioncore_grab_establish((WRegion *)frame, numbers_grab_handler, NULL,
+                                0, GRAB_DEFAULT_FLAGS&~GRAB_POINTER);
+         return new_state;
+     }

diff --git a/x11-wm/notion/notion-9999.ebuild 
b/x11-wm/notion/notion-4.0.2_p20220613-r1.ebuild
similarity index 88%
copy from x11-wm/notion/notion-9999.ebuild
copy to x11-wm/notion/notion-4.0.2_p20220613-r1.ebuild
index 3bc5247a3ad3..8838324ac69b 100644
--- a/x11-wm/notion/notion-9999.ebuild
+++ b/x11-wm/notion/notion-4.0.2_p20220613-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -14,7 +14,9 @@ if [[ ${PV} == *9999 ]]; then
        inherit git-r3
        EGIT_REPO_URI="https://github.com/raboof/${PN}.git";
 else
-       SRC_URI="https://github.com/raboof/${PN}/archive/${PV}.tar.gz -> 
${P}.tar.gz"
+       inherit vcs-snapshot
+       COMMIT="f161c1b4dbba1ac81d8e9c3d7e5e353058a4d7d1"
+       SRC_URI="https://github.com/raboof/${PN}/archive/${COMMIT}.tar.gz -> 
${P}.tar.gz"
 
        KEYWORDS="~amd64 ~x86"
 fi
@@ -43,6 +45,10 @@ BDEPEND="
        ${LUA_DEPS}
        virtual/pkgconfig"
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-4.0.2-gcc14-build-fix.patch
+)
+
 src_configure() {
        tc-export AR CC PKG_CONFIG
        export INSTALL_STRIP=""

diff --git a/x11-wm/notion/notion-9999.ebuild b/x11-wm/notion/notion-9999.ebuild
index 3bc5247a3ad3..213357db0dbf 100644
--- a/x11-wm/notion/notion-9999.ebuild
+++ b/x11-wm/notion/notion-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -43,6 +43,10 @@ BDEPEND="
        ${LUA_DEPS}
        virtual/pkgconfig"
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-4.0.2-gcc14-build-fix.patch
+)
+
 src_configure() {
        tc-export AR CC PKG_CONFIG
        export INSTALL_STRIP=""

Reply via email to