From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 8216715A7D9 for ; Sun, 19 Mar 2023 10:29:49 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B455FE079E; Sun, 19 Mar 2023 10:29:48 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 8435DE079E for ; Sun, 19 Mar 2023 10:29:48 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 68B14341300 for ; Sun, 19 Mar 2023 10:29:47 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id BCAE98CF for ; Sun, 19 Mar 2023 10:29:45 +0000 (UTC) From: "Jimi Huotari" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jimi Huotari" Message-ID: <1679221459.95d5a573165b47f9523ba43d9abc3cae5e116c48.chiitoo@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: x11-wm/openbox/files/, x11-wm/openbox/ X-VCS-Repository: repo/gentoo X-VCS-Files: x11-wm/openbox/files/openbox-3.6.1-glib-2.76.patch x11-wm/openbox/openbox-3.6.1-r5.ebuild X-VCS-Directories: x11-wm/openbox/ x11-wm/openbox/files/ X-VCS-Committer: chiitoo X-VCS-Committer-Name: Jimi Huotari X-VCS-Revision: 95d5a573165b47f9523ba43d9abc3cae5e116c48 X-VCS-Branch: master Date: Sun, 19 Mar 2023 10:29:45 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: c39d1835-e9cc-4fed-b0d2-31b4e5d7f774 X-Archives-Hash: 5d27cf20ad0f0a51215c9260cba16384 commit: 95d5a573165b47f9523ba43d9abc3cae5e116c48 Author: Jimi Huotari gentoo org> AuthorDate: Sun Mar 19 10:24:19 2023 +0000 Commit: Jimi Huotari gentoo org> CommitDate: Sun Mar 19 10:24:19 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95d5a573 x11-wm/openbox: patch issue with >=glib-2.76.0 Bug: https://bugs.gentoo.org/901777 Signed-off-by: Jimi Huotari gentoo.org> x11-wm/openbox/files/openbox-3.6.1-glib-2.76.patch | 54 +++++++++ x11-wm/openbox/openbox-3.6.1-r5.ebuild | 123 +++++++++++++++++++++ 2 files changed, 177 insertions(+) diff --git a/x11-wm/openbox/files/openbox-3.6.1-glib-2.76.patch b/x11-wm/openbox/files/openbox-3.6.1-glib-2.76.patch new file mode 100644 index 000000000000..65d0dba17300 --- /dev/null +++ b/x11-wm/openbox/files/openbox-3.6.1-glib-2.76.patch @@ -0,0 +1,54 @@ +Gentoo Bug: https://bugs.gentoo.org/901777 +Upstream Bug: https://bugzilla.icculus.org/show_bug.cgi?id=6669 +Upstream Commit: https://github.com/Mikachu/openbox/commit/9ed6fdd71890c5cc43747f105382d5677e5d37e7 + +From 9ed6fdd71890c5cc43747f105382d5677e5d37e7 Mon Sep 17 00:00:00 2001 +From: pldubouilh +Date: Fri, 17 Mar 2023 18:23:47 +0100 +Subject: [PATCH] Fix list traversal issue in client_calc_layer + +The calls to client_calc_layer_internal can modify stacking_list, which +can cause us to follow dangling ->next pointers (either by the pointer +itself already being freed, or it pointing to a freed area). Avoid this +by copying the list first, the goal is to visit every client in the list +once so this should be fine. +--- + openbox/client.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/openbox/client.c b/openbox/client.c +index 7168b2407..b8264587c 100644 +--- a/openbox/client.c ++++ b/openbox/client.c +@@ -2742,9 +2742,12 @@ static void client_calc_layer_internal(ObClient *self) + void client_calc_layer(ObClient *self) + { + GList *it; ++ /* the client_calc_layer_internal calls below modify stacking_list, ++ so we have to make a copy to iterate over */ ++ GList *list = g_list_copy(stacking_list); + + /* skip over stuff above fullscreen layer */ +- for (it = stacking_list; it; it = g_list_next(it)) ++ for (it = list; it; it = g_list_next(it)) + if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break; + + /* find the windows in the fullscreen layer, and mark them not-visited */ +@@ -2757,7 +2760,7 @@ void client_calc_layer(ObClient *self) + client_calc_layer_internal(self); + + /* skip over stuff above fullscreen layer */ +- for (it = stacking_list; it; it = g_list_next(it)) ++ for (it = list; it; it = g_list_next(it)) + if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break; + + /* now recalc any windows in the fullscreen layer which have not +@@ -2768,6 +2771,8 @@ void client_calc_layer(ObClient *self) + !WINDOW_AS_CLIENT(it->data)->visited) + client_calc_layer_internal(it->data); + } ++ ++ g_list_free(it); + } + + gboolean client_should_show(ObClient *self) diff --git a/x11-wm/openbox/openbox-3.6.1-r5.ebuild b/x11-wm/openbox/openbox-3.6.1-r5.ebuild new file mode 100644 index 000000000000..ebd2a5d8b75d --- /dev/null +++ b/x11-wm/openbox/openbox-3.6.1-r5.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11}) +inherit autotools python-single-r1 + +DESCRIPTION="Standards compliant, fast, light-weight, extensible window manager" +HOMEPAGE="http://openbox.org/wiki/Main_Page" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/Mikachu/openbox.git" +else + SRC_URI="http://openbox.org/dist/openbox/${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x86-linux" +fi + +SRC_URI+=" branding? ( https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )" + +LICENSE="GPL-2" +SLOT="3" +IUSE="branding debug imlib nls session startup-notification svg xdg" +REQUIRED_USE="xdg? ( ${PYTHON_REQUIRED_USE} )" + +BDEPEND=" + sys-devel/gettext + virtual/pkgconfig +" +RDEPEND=" + dev-libs/glib:2 + >=dev-libs/libxml2-2.0 + >=media-libs/fontconfig-2 + x11-libs/cairo + x11-libs/libXau + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXft + x11-libs/libXinerama + x11-libs/libXrandr + x11-libs/libXt + >=x11-libs/pango-1.8[X] + imlib? ( media-libs/imlib2 ) + startup-notification? ( >=x11-libs/startup-notification-0.8 ) + svg? ( gnome-base/librsvg:2 ) + xdg? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/pyxdg[${PYTHON_USEDEP}] + ') + ) +" +DEPEND="${RDEPEND} + x11-base/xorg-proto +" + +PATCHES=( + "${FILESDIR}/${PN}-3.5.2-gnome-session.patch" + # see https://github.com/danakj/openbox/pull/35 + "${FILESDIR}/${PN}-3.6.1-py3-xdg.patch" + # https://bugs.gentoo.org/827227 + "${FILESDIR}/${PN}-3.6.1-getgrent-to-getgroups.patch" + # https://bugs.gentoo.org/901777 + "${FILESDIR}/${PN}-3.6.1-glib-2.76.patch" +) + +pkg_setup() { + use xdg && python-single-r1_pkg_setup +} + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + git-r3_src_unpack + fi + + default +} + +src_prepare() { + default + sed -i \ + -e "s:-O0 -ggdb ::" \ + -e 's/-fno-strict-aliasing//' \ + m4/openbox.m4 || die + eautoreconf +} + +src_configure() { + local myeconfargs=( + --disable-static + --with-x + $(use_enable debug) + $(use_enable imlib imlib2) + $(use_enable nls) + $(use_enable session session-management) + $(use_enable startup-notification) + $(use_enable svg librsvg) + ) + econf "${myeconfargs[@]}" +} + +src_install() { + dodir /etc/X11/Sessions + echo "/usr/bin/openbox-session" > "${ED}/etc/X11/Sessions/${PN}" + fperms a+x /etc/X11/Sessions/${PN} + emake DESTDIR="${D}" install + if use branding; then + insinto /usr/share/themes + doins -r "${WORKDIR}"/Surreal_Gentoo + # make it the default theme + sed -i \ + -e "//{n; s@.*@Surreal_Gentoo@}" \ + "${D}"/etc/xdg/openbox/rc.xml \ + || die "failed to set Surreal Gentoo as the default theme" + fi + find "${ED}" -name '*.la' -delete || die + if use xdg ; then + python_fix_shebang "${ED}"/usr/libexec/openbox-xdg-autostart + else + rm "${ED}"/usr/libexec/openbox-xdg-autostart || die + fi +}