summaryrefslogtreecommitdiff
path: root/x11-wm
diff options
context:
space:
mode:
authorBrahmajit Das <brahmajit.xyz@gmail.com>2024-05-01 14:18:39 +0530
committerSam James <sam@gentoo.org>2024-05-02 04:54:25 +0100
commit5b37553a9c5af8e400cd23a2dd79ecdf4b32812e (patch)
treea789d2df13591c285bd7daa32af2a6ec4e7d341c /x11-wm
parentdev-perl/Time-Out: add 0.240.0 (diff)
downloadgentoo-5b37553a9c5af8e400cd23a2dd79ecdf4b32812e.tar.gz
gentoo-5b37553a9c5af8e400cd23a2dd79ecdf4b32812e.tar.bz2
gentoo-5b37553a9c5af8e400cd23a2dd79ecdf4b32812e.zip
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@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/36498 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'x11-wm')
-rw-r--r--x11-wm/notion/files/notion-4.0.2-gcc14-build-fix.patch49
-rw-r--r--x11-wm/notion/notion-4.0.2_p20220613-r1.ebuild97
-rw-r--r--x11-wm/notion/notion-9999.ebuild6
3 files changed, 151 insertions, 1 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 <brahmajit.xyz@gmail.com>
+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 <brahmajit.xyz@gmail.com>
+---
+ 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-4.0.2_p20220613-r1.ebuild b/x11-wm/notion/notion-4.0.2_p20220613-r1.ebuild
new file mode 100644
index 000000000000..8838324ac69b
--- /dev/null
+++ b/x11-wm/notion/notion-4.0.2_p20220613-r1.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-4 )
+
+inherit lua-single toolchain-funcs readme.gentoo-r1
+
+DESCRIPTION="Notion is a tiling, tabbed window manager for the X window system"
+HOMEPAGE="https://notionwm.net/"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/raboof/${PN}.git"
+else
+ inherit vcs-snapshot
+ COMMIT="f161c1b4dbba1ac81d8e9c3d7e5e353058a4d7d1"
+ SRC_URI="https://github.com/raboof/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+IUSE="nls xinerama +xrandr"
+# needs slingshot,... not in tree
+RESTRICT="test"
+# mod_xrandr references mod_xinerama
+REQUIRED_USE="
+ ${LUA_REQUIRED_USE}
+ xrandr? ( xinerama )"
+
+RDEPEND="
+ ${LUA_DEPS}
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXext
+ nls? ( sys-devel/gettext )
+ xinerama? ( x11-libs/libXinerama )
+ xrandr? ( x11-libs/libXrandr )"
+DEPEND="${RDEPEND}"
+# luac is called at build time
+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=""
+
+ cat > system-local.mk <<- _EOF_ || die
+ PREFIX=${EPREFIX}/usr
+ DOCDIR=\$(PREFIX)/share/doc/${PF}
+ ETCDIR=${EPREFIX}/etc/${PN}
+ LIBDIR=\$(PREFIX)/$(get_libdir)
+ VARDIR=${EPREFIX}/var/cache/${PN}
+ LUA_MANUAL=1
+ LUA=${LUA}
+ LUAC=${BROOT}/usr/bin/${ELUA/lua/luac}
+ LUA_LIBS=$(lua_get_LIBS)
+ LUA_INCLUDES=$(lua_get_CFLAGS)
+ $(usev !nls "DEFINES+=-DCF_NO_LOCALE -DCF_NO_GETTEXT")
+ _EOF_
+
+ if ! use xinerama ; then
+ sed -e 's/mod_xinerama//g' -i modulelist.mk || die
+ fi
+
+ if ! use xrandr ; then
+ sed -e 's/mod_xrandr//g' -i modulelist.mk || die
+ sed -e '/mod_xrandr/d' -i etc/cfg_defaults.lua || die
+ fi
+}
+
+src_install() {
+ default
+
+ exeinto /etc/X11/Sessions
+ doexe "${FILESDIR}"/notion
+
+ insinto /usr/share/xsessions
+ doins "${FILESDIR}"/notion.desktop
+
+ local DOC_CONTENTS="
+ If you want notion to have an ability to view a file based on its
+ guessed MIME type you should emerge app-misc/run-mailcap."
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
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=""