summaryrefslogtreecommitdiff
path: root/x11-wm
diff options
context:
space:
mode:
authorJimi Huotari <chiitoo@gentoo.org>2023-03-09 16:22:09 +0200
committerJimi Huotari <chiitoo@gentoo.org>2023-03-09 18:29:48 +0200
commitc7ad157920317e70d19389d9f3601d3cc7f599be (patch)
tree0370f0b52530fb772ed0ab773edf92d7f6782361 /x11-wm
parentx11-wm/openbox: use EAPI 8 and python3_11 (diff)
downloadgentoo-c7ad157920317e70d19389d9f3601d3cc7f599be.tar.gz
gentoo-c7ad157920317e70d19389d9f3601d3cc7f599be.tar.bz2
gentoo-c7ad157920317e70d19389d9f3601d3cc7f599be.zip
x11-wm/openbox: patch getgrent to getgroups
Upstream: https://bugzilla.icculus.org/show_bug.cgi?id=5978 Closes: https://bugs.gentoo.org/827227 Signed-off-by: Jimi Huotari <chiitoo@gentoo.org>
Diffstat (limited to 'x11-wm')
-rw-r--r--x11-wm/openbox/files/openbox-3.6.1-getgrent-to-getgroups.patch67
-rw-r--r--x11-wm/openbox/openbox-3.6.1-r4.ebuild121
-rw-r--r--x11-wm/openbox/openbox-9999.ebuild4
3 files changed, 191 insertions, 1 deletions
diff --git a/x11-wm/openbox/files/openbox-3.6.1-getgrent-to-getgroups.patch b/x11-wm/openbox/files/openbox-3.6.1-getgrent-to-getgroups.patch
new file mode 100644
index 000000000000..4634b5a03028
--- /dev/null
+++ b/x11-wm/openbox/files/openbox-3.6.1-getgrent-to-getgroups.patch
@@ -0,0 +1,67 @@
+Gentoo: https://bugs.gentoo.org/827227
+Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808138
+Upstream: https://bugzilla.icculus.org/show_bug.cgi?id=5978
+
+>From e0cb404f53c9b21a521ea2f14c8cd66fdfb68ea7 Mon Sep 17 00:00:00 2001
+From: Simon <simondobbss@gmail.com>
+Date: Tue, 15 Dec 2015 15:46:18 +0100
+Subject: [PATCH] Replace getgrent with getgroups. Fixes #5978.
+
+---
+ obt/paths.c | 34 +++++++++++++++++++++-------------
+ 1 file changed, 21 insertions(+), 13 deletions(-)
+
+diff --git a/obt/paths.c b/obt/paths.c
+index 25cb6b0..d526936 100644
+--- a/obt/paths.c
++++ b/obt/paths.c
+@@ -108,25 +108,33 @@ static void find_uid_gid(uid_t *u, gid_t **g, guint *n)
+ const gchar *name;
+ struct group *gr;
+
++ gid_t gmain;
++ unsigned int maininc;
++ int i;
++
+ *u = getuid();
+ pw = getpwuid(*u);
+ name = pw->pw_name;
+
+- *g = g_new(gid_t, *n=1);
+- (*g)[0] = getgid();
+-
+- while ((gr = getgrent())) {
+- if (gr->gr_gid != (*g)[0]) { /* skip the main group */
+- gchar **c;
+- for (c = gr->gr_mem; *c; ++c)
+- if (strcmp(*c, name) == 0) {
+- *g = g_renew(gid_t, *g, ++(*n)); /* save the group */
+- (*g)[*n-1] = gr->gr_gid;
+- break;
+- }
++ gmain = getgid();
++
++ *n = getgroups(0, *g);
++ *g = g_new(gid_t, *n);
++ *n = getgroups(*n, *g);
++
++ /* Check if the effective group ID of the calling process is already
++ included in the returned list. Add it otherwise. */
++ maininc = 0;
++ for (i = 0; i < *n; i++) {
++ if ( (*g)[i] == gmain ) {
++ maininc = 1;
++ break;
+ }
+ }
+- endgrent();
++ if (!maininc) {
++ *g = g_renew(gid_t, *g, ++(*n));
++ (*g)[*n-1] = gmain;
++ }
+
+ qsort(*g, *n, sizeof(gid_t), gid_cmp);
+ }
+--
+2.1.4
+
diff --git a/x11-wm/openbox/openbox-3.6.1-r4.ebuild b/x11-wm/openbox/openbox-3.6.1-r4.ebuild
new file mode 100644
index 000000000000..e569dd1af6b1
--- /dev/null
+++ b/x11-wm/openbox/openbox-3.6.1-r4.ebuild
@@ -0,0 +1,121 @@
+# 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="git://git.openbox.org/dana/openbox"
+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"
+)
+
+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 "/<theme>/{n; s@<name>.*</name>@<name>Surreal_Gentoo</name>@}" \
+ "${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
+}
diff --git a/x11-wm/openbox/openbox-9999.ebuild b/x11-wm/openbox/openbox-9999.ebuild
index 261d9e75d33f..e569dd1af6b1 100644
--- a/x11-wm/openbox/openbox-9999.ebuild
+++ b/x11-wm/openbox/openbox-9999.ebuild
@@ -14,7 +14,7 @@ if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="git://git.openbox.org/dana/openbox"
else
SRC_URI="http://openbox.org/dist/openbox/${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-linux"
+ 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 )"
@@ -59,6 +59,8 @@ 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"
)
pkg_setup() {