summaryrefslogtreecommitdiff
path: root/x11-wm/openbox
diff options
context:
space:
mode:
authorPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
committerPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
commitecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch)
treeb89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /x11-wm/openbox
parent1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff)
downloadbaldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip
Updating liguros repo
Diffstat (limited to 'x11-wm/openbox')
-rw-r--r--x11-wm/openbox/Manifest2
-rw-r--r--x11-wm/openbox/files/openbox-3.5.0-title-matching.patch11
-rw-r--r--x11-wm/openbox/files/openbox-3.5.0-which-2.20.patch11
-rw-r--r--x11-wm/openbox/files/openbox-3.5.2-gnome-session.patch14
-rw-r--r--x11-wm/openbox/files/openbox-3.6.1-py3-xdg.patch126
-rw-r--r--x11-wm/openbox/files/openbox-3.6.2-fix-out-of-bounds.patch22
-rw-r--r--x11-wm/openbox/files/openbox-3.6.2-rounded-corners.patch178
-rw-r--r--x11-wm/openbox/metadata.xml22
-rw-r--r--x11-wm/openbox/openbox-3.6.1-r1.ebuild95
-rw-r--r--x11-wm/openbox/openbox-3.6.1-r3.ebuild101
-rw-r--r--x11-wm/openbox/openbox-3.6.1-r4.ebuild105
-rw-r--r--x11-wm/openbox/openbox-3.6.1.ebuild96
-rw-r--r--x11-wm/openbox/openbox-9999.ebuild95
13 files changed, 878 insertions, 0 deletions
diff --git a/x11-wm/openbox/Manifest b/x11-wm/openbox/Manifest
new file mode 100644
index 000000000000..7777fc3ee964
--- /dev/null
+++ b/x11-wm/openbox/Manifest
@@ -0,0 +1,2 @@
+DIST openbox-3.6.1.tar.gz 962665 BLAKE2B 1c0288137d7b02d443c384f970cd9a3f4d5d5585989917ac6ae8cf492e045dc086650c245907e168bc7b6d0ce701339854a5d94ad510823141cc78e28c1e13c5 SHA512 5e6f4a214005bea8b26bc8959fe5bb67356a387ddd317e014f43cb5b5bf263ec617a5973e2982eb76a08dc7d3ca5ec9e72e64c9b5efd751001a8999b420b1ad0
+DIST surreal-gentoo.tar.gz 13410 BLAKE2B e7d902278004785c68a2e5aa02aa326cee1ef04fe964fce283afde00cb668b06d5d8461207ef9571aa402b960ec16bdff6bf11cf38ca9a76335ced173592ffce SHA512 dd43cb78e5e33345767edad22d0470765ac9eeae02bbad0acd8098bc096c15a166bf651493d12a5953bc043c9be92e9b160607eafb4723a6bcfc5d1d6fae235e
diff --git a/x11-wm/openbox/files/openbox-3.5.0-title-matching.patch b/x11-wm/openbox/files/openbox-3.5.0-title-matching.patch
new file mode 100644
index 000000000000..fdfe28af0279
--- /dev/null
+++ b/x11-wm/openbox/files/openbox-3.5.0-title-matching.patch
@@ -0,0 +1,11 @@
+--- openbox-3.5.0/openbox/client.c 2011-08-01 22:14:58.000000000 +0200
++++ openbox-3.5.0/openbox/client.c 2011-10-22 14:59:56.000000000 +0200
+@@ -883,7 +883,7 @@
+ !g_pattern_match(app->role,
+ strlen(self->role), self->role, NULL))
+ match = FALSE;
+- else if (app->title &&
++ else if (app->title && self->title &&
+ !g_pattern_match(app->title,
+ strlen(self->title), self->title, NULL))
+ match = FALSE;
diff --git a/x11-wm/openbox/files/openbox-3.5.0-which-2.20.patch b/x11-wm/openbox/files/openbox-3.5.0-which-2.20.patch
new file mode 100644
index 000000000000..35d6b59065eb
--- /dev/null
+++ b/x11-wm/openbox/files/openbox-3.5.0-which-2.20.patch
@@ -0,0 +1,11 @@
+--- openbox-3.5.0/data/autostart/autostart.in~ 2011-08-02 15:50:01.963531310 +0000
++++ openbox-3.5.0/data/autostart/autostart.in 2011-08-02 15:51:57.277879458 +0000
+@@ -8,7 +8,7 @@
+ #
+ #if test -x @libexecdir@/gnome-settings-daemon >/dev/null; then
+ # @libexecdir@/gnome-settings-daemon &
+-#elif which gnome-settings-daemon >/dev/null; then
++#elif which gnome-settings-daemon >/dev/null 2>&1; then
+ # gnome-settings-daemon &
+ #fi
+
diff --git a/x11-wm/openbox/files/openbox-3.5.2-gnome-session.patch b/x11-wm/openbox/files/openbox-3.5.2-gnome-session.patch
new file mode 100644
index 000000000000..10406af33c96
--- /dev/null
+++ b/x11-wm/openbox/files/openbox-3.5.2-gnome-session.patch
@@ -0,0 +1,14 @@
+Index: openbox-3.5.2/data/xsession/openbox-gnome-session.in
+===================================================================
+--- openbox-3.5.2.orig/data/xsession/openbox-gnome-session.in
++++ openbox-3.5.2/data/xsession/openbox-gnome-session.in
+@@ -18,6 +18,9 @@ VER=$(gnome-session --version 2>/dev/nul
+ MAJOR=$(echo $VER | cut -d . -f 1)
+ MINOR=$(echo $VER | cut -d . -f 2)
+
++# use gnome menus (gentoo bug #291965)
++export XDG_MENU_PREFIX=gnome-
++
+ # run GNOME with Openbox as its window manager
+
+ if test $MAJOR -lt 2 || (test $MAJOR = 2 && test $MINOR -le 22); then
diff --git a/x11-wm/openbox/files/openbox-3.6.1-py3-xdg.patch b/x11-wm/openbox/files/openbox-3.6.1-py3-xdg.patch
new file mode 100644
index 000000000000..d28b536d64ad
--- /dev/null
+++ b/x11-wm/openbox/files/openbox-3.6.1-py3-xdg.patch
@@ -0,0 +1,126 @@
+diff --git a/data/autostart/openbox-xdg-autostart b/data/autostart/openbox-xdg-autostart
+index 04a17a199..f2c75bbdd 100755
+--- a/data/autostart/openbox-xdg-autostart
++++ b/data/autostart/openbox-xdg-autostart
+@@ -19,6 +19,8 @@
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ # GNU General Public License for more details.
+
++from __future__ import print_function
++
+ ME="openbox-xdg-autostart"
+ VERSION="1.1"
+
+@@ -28,9 +30,9 @@ try:
+ from xdg.DesktopEntry import DesktopEntry
+ from xdg.Exceptions import ParsingError
+ except ImportError:
+- print
+- print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed"
+- print
++ print()
++ print("ERROR:", ME, "requires PyXDG to be installed", file=sys.stderr)
++ print()
+ sys.exit(1)
+
+ def main(argv=sys.argv):
+@@ -51,7 +53,7 @@ def main(argv=sys.argv):
+ try:
+ autofile = AutostartFile(path)
+ except ParsingError:
+- print "Invalid .desktop file: " + path
++ print("Invalid .desktop file: " + path)
+ else:
+ if not autofile in files:
+ files.append(autofile)
+@@ -99,9 +101,9 @@ class AutostartFile:
+
+ def _alert(self, str, info=False):
+ if info:
+- print "\t ", str
++ print("\t ", str)
+ else:
+- print "\t*", str
++ print("\t*", str)
+
+ def _showInEnvironment(self, envs, verbose=False):
+ default = not self.de.getOnlyShowIn()
+@@ -146,14 +148,14 @@ class AutostartFile:
+
+ def display(self, envs):
+ if self._shouldRun(envs):
+- print "[*] " + self.de.getName()
++ print("[*] " + self.de.getName())
+ else:
+- print "[ ] " + self.de.getName()
++ print("[ ] " + self.de.getName())
+ self._alert("File: " + self.path, info=True)
+ if self.de.getExec():
+ self._alert("Executes: " + self.de.getExec(), info=True)
+ self._shouldRun(envs, True)
+- print
++ print()
+
+ def run(self, envs):
+ here = os.getcwd()
+@@ -165,34 +167,34 @@ class AutostartFile:
+ os.chdir(here)
+
+ def show_help():
+- print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..."
+- print
+- print "This tool will run xdg autostart .desktop files"
+- print
+- print "OPTIONS"
+- print " --list Show a list of the files which would be run"
+- print " Files which would be run are marked with an asterix"
+- print " symbol [*]. For files which would not be run,"
+- print " information is given for why they are excluded"
+- print " --help Show this help and exit"
+- print " --version Show version and copyright information"
+- print
+- print "ENVIRONMENT specifies a list of environments for which to run autostart"
+- print "applications. If none are specified, only applications which do not "
+- print "limit themselves to certain environments will be run."
+- print
+- print "ENVIRONMENT can be one or more of:"
+- print " GNOME Gnome Desktop"
+- print " KDE KDE Desktop"
+- print " ROX ROX Desktop"
+- print " XFCE XFCE Desktop"
+- print " Old Legacy systems"
+- print
++ print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...")
++ print()
++ print("This tool will run xdg autostart .desktop files")
++ print()
++ print("OPTIONS")
++ print(" --list Show a list of the files which would be run")
++ print(" Files which would be run are marked with an asterix")
++ print(" symbol [*]. For files which would not be run,")
++ print(" information is given for why they are excluded")
++ print(" --help Show this help and exit")
++ print(" --version Show version and copyright information")
++ print()
++ print("ENVIRONMENT specifies a list of environments for which to run autostart")
++ print("applications. If none are specified, only applications which do not ")
++ print("limit themselves to certain environments will be run.")
++ print()
++ print("ENVIRONMENT can be one or more of:")
++ print(" GNOME Gnome Desktop")
++ print(" KDE KDE Desktop")
++ print(" ROX ROX Desktop")
++ print(" XFCE XFCE Desktop")
++ print(" Old Legacy systems")
++ print()
+
+ def show_version():
+- print ME, VERSION
+- print "Copyright (c) 2008 Dana Jansens"
+- print
++ print(ME, VERSION)
++ print("Copyright (c) 2008 Dana Jansens")
++ print()
+
+ if __name__ == "__main__":
+ sys.exit(main())
diff --git a/x11-wm/openbox/files/openbox-3.6.2-fix-out-of-bounds.patch b/x11-wm/openbox/files/openbox-3.6.2-fix-out-of-bounds.patch
new file mode 100644
index 000000000000..5bf59af644e1
--- /dev/null
+++ b/x11-wm/openbox/files/openbox-3.6.2-fix-out-of-bounds.patch
@@ -0,0 +1,22 @@
+From b0ed75ee851121ad25491ef6e1dca25be7bc50f3 Mon Sep 17 00:00:00 2001
+From: o9000 <mrovi9000@gmail.com>
+Date: Wed, 5 Apr 2017 12:38:10 +0200
+Subject: [PATCH] Fix out-of-bounds read
+
+---
+ openbox/frame.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/openbox/frame.c b/openbox/frame.c
+index 89669726a..943b6380b 100644
+--- a/openbox/frame.c
++++ b/openbox/frame.c
+@@ -1215,7 +1215,7 @@ static void layout_title(ObFrame *self)
+ }
+
+ /* stop at the end of the string (or the label, which calls break) */
+- for (; *lc != '\0' && lc >= config_title_layout; lc+=i) {
++ for (; lc >= config_title_layout && *lc != '\0'; lc+=i) {
+ if (*lc == 'L') {
+ if (i > 0) {
+ self->label_on = TRUE;
diff --git a/x11-wm/openbox/files/openbox-3.6.2-rounded-corners.patch b/x11-wm/openbox/files/openbox-3.6.2-rounded-corners.patch
new file mode 100644
index 000000000000..35950a02b29c
--- /dev/null
+++ b/x11-wm/openbox/files/openbox-3.6.2-rounded-corners.patch
@@ -0,0 +1,178 @@
+diff --git a/openbox/config.c b/openbox/config.c
+index dad5d1bf..a387335c 100644
+--- a/openbox/config.c
++++ b/openbox/config.c
+@@ -48,6 +48,8 @@ StrutPartial config_margins;
+ gchar *config_theme;
+ gboolean config_theme_keepborder;
+ guint config_theme_window_list_icon_size;
++guint config_theme_cornerradius;
++gboolean config_theme_menuradius;
+
+ gchar *config_title_layout;
+
+@@ -719,6 +721,10 @@ static void parse_theme(xmlNodePtr node, gpointer d)
+ else if (config_theme_window_list_icon_size > 96)
+ config_theme_window_list_icon_size = 96;
+ }
++ if ((n = obt_xml_find_node(node, "cornerRadius"))) {
++ config_theme_cornerradius = obt_xml_node_int(n);
++ obt_xml_attr_bool(n, "menu", &config_theme_menuradius);
++ }
+
+ for (n = obt_xml_find_node(node, "font");
+ n;
+@@ -1098,6 +1104,8 @@ void config_startup(ObtXmlInst *i)
+ config_title_layout = g_strdup("NLIMC");
+ config_theme_keepborder = TRUE;
+ config_theme_window_list_icon_size = 36;
++ config_theme_cornerradius = 0;
++ config_theme_menuradius = TRUE;
+
+ config_font_activewindow = NULL;
+ config_font_inactivewindow = NULL;
+diff --git a/openbox/config.h b/openbox/config.h
+index 96a66cf1..5622d059 100644
+--- a/openbox/config.h
++++ b/openbox/config.h
+@@ -152,6 +152,10 @@ extern gchar *config_title_layout;
+ extern gboolean config_animate_iconify;
+ /*! Size of icons in focus switching dialogs */
+ extern guint config_theme_window_list_icon_size;
++/*! Display rounded corners for decorated windows */
++extern guint config_theme_cornerradius;
++/*! Display rounded corners for root and client-list menus */
++extern gboolean config_theme_menuradius;
+
+ /*! The font for the active window's title */
+ extern RrFont *config_font_activewindow;
+diff --git a/openbox/frame.c b/openbox/frame.c
+index 89669726..1539717c 100644
+--- a/openbox/frame.c
++++ b/openbox/frame.c
+@@ -334,6 +334,51 @@ void frame_adjust_shape(ObFrame *self)
+ #endif
+ }
+
++void frame_round_corners(Window window)
++{
++ XWindowAttributes win_attr;
++ XGetWindowAttributes(obt_display, window, &win_attr);
++
++ // If this returns null, the window is invalid.
++ if(!XGetWindowAttributes(obt_display, window, &win_attr))
++ return;
++
++ int width = win_attr.border_width * 2 + win_attr.width;
++ int height = win_attr.border_width * 2 + win_attr.height;
++ int rad = config_theme_cornerradius;
++ int dia = 2 * rad;
++
++ // do not try to round if the window would be smaller than the corners
++ if(width < dia || height < dia)
++ return;
++
++ Pixmap mask = XCreatePixmap(obt_display, window, width, height, 1);
++ // if this returns null, the mask is not drawable
++ if(!mask)
++ return;
++
++ XGCValues xgcv;
++ GC shape_gc = XCreateGC(obt_display, mask, 0, &xgcv);
++ if(!shape_gc) {
++ XFreePixmap(obt_display, mask);
++ return;
++ }
++
++ XSetForeground(obt_display, shape_gc, 0);
++ XFillRectangle(obt_display, mask, shape_gc, 0, 0, width, height);
++ XSetForeground(obt_display, shape_gc, 1);
++ XFillArc(obt_display, mask, shape_gc, 0, 0, dia, dia, 0, 23040);
++ XFillArc(obt_display, mask, shape_gc, width-dia-1, 0, dia, dia, 0, 23040);
++ XFillArc(obt_display, mask, shape_gc, 0, height-dia-1, dia, dia, 0, 23040);
++ XFillArc(obt_display, mask, shape_gc, width-dia-1, height-dia-1, dia, dia,
++ 0, 23040);
++ XFillRectangle(obt_display, mask, shape_gc, rad, 0, width-dia, height);
++ XFillRectangle(obt_display, mask, shape_gc, 0, rad, width, height-dia);
++ XShapeCombineMask(obt_display, window, ShapeBounding, 0-win_attr.border_width, 0-win_attr.border_width, mask, ShapeSet);
++ XFreePixmap(obt_display, mask);
++ XFreeGC(obt_display, shape_gc);
++}
++
+ void frame_adjust_area(ObFrame *self, gboolean moved,
+ gboolean resized, gboolean fake)
+ {
+@@ -857,7 +902,6 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
+
+ if (resized) {
+ self->need_render = TRUE;
+- framerender_frame(self);
+ frame_adjust_shape(self);
+ }
+
+@@ -884,7 +928,9 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
+ {
+ XResizeWindow(obt_display, self->label, self->label_width,
+ ob_rr_theme->label_height);
++ self->need_render = TRUE;
+ }
++ framerender_frame(self);
+ }
+
+ static void frame_adjust_cursors(ObFrame *self)
+@@ -958,6 +1004,8 @@ void frame_adjust_client_area(ObFrame *self)
+ XMoveResizeWindow(obt_display, self->backfront, 0, 0,
+ self->client->area.width,
+ self->client->area.height);
++ self->need_render = TRUE;
++ framerender_frame(self);
+ }
+
+ void frame_adjust_state(ObFrame *self)
+diff --git a/openbox/framerender.c b/openbox/framerender.c
+index 094d5962..54046580 100644
+--- a/openbox/framerender.c
++++ b/openbox/framerender.c
+@@ -21,6 +21,7 @@
+ #include "openbox.h"
+ #include "screen.h"
+ #include "client.h"
++#include "config.h"
+ #include "framerender.h"
+ #include "obrender/theme.h"
+
+@@ -42,6 +43,12 @@ void framerender_frame(ObFrame *self)
+ return;
+ self->need_render = FALSE;
+
++ if (config_theme_cornerradius &&
++ !self->client->fullscreen &&
++ !self->client->shaped &&
++ !(self->client->type == OB_CLIENT_TYPE_DOCK))
++ frame_round_corners(self->window);
++
+ {
+ gulong px;
+
+diff --git a/openbox/menuframe.c b/openbox/menuframe.c
+index c37fdcc5..f598cf15 100644
+--- a/openbox/menuframe.c
++++ b/openbox/menuframe.c
+@@ -17,6 +17,7 @@
+ See the COPYING file for a copy of the GNU General Public License.
+ */
+
++#include "frame.h"
+ #include "menuframe.h"
+ #include "client.h"
+ #include "menu.h"
+@@ -845,6 +846,9 @@ void menu_frame_render(ObMenuFrame *self)
+
+ RECT_SET_SIZE(self->area, w, h);
+
++ if (config_theme_menuradius)
++ frame_round_corners(self->window);
++
+ XFlush(obt_display);
+ }
+
diff --git a/x11-wm/openbox/metadata.xml b/x11-wm/openbox/metadata.xml
new file mode 100644
index 000000000000..8af229968daf
--- /dev/null
+++ b/x11-wm/openbox/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>lxde@gentoo.org</email>
+ <name>Gentoo LXDE Project</name>
+ </maintainer>
+ <use>
+ <flag name="session">Enables support for session managers</flag>
+ <flag name="xdg">Install the python xdg files for xdg autostart</flag>
+ </use>
+ <upstream>
+ <maintainer status="active">
+ <email>danakj@orodu.net</email>
+ <name>Dana Jansens</name>
+ </maintainer>
+ <changelog>http://openbox.org/wiki/Openbox:News</changelog>
+ <doc>http://openbox.org/wiki/Help:Contents</doc>
+ <bugs-to>http://openbox.org/wiki/Openbox:Contribute</bugs-to>
+ </upstream>
+ <origin>kit-fixups</origin>
+</pkgmetadata>
diff --git a/x11-wm/openbox/openbox-3.6.1-r1.ebuild b/x11-wm/openbox/openbox-3.6.1-r1.ebuild
new file mode 100644
index 000000000000..7866f2eda029
--- /dev/null
+++ b/x11-wm/openbox/openbox-3.6.1-r1.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+inherit multilib autotools ltprune python-r1 eutils
+
+DESCRIPTION="A standards compliant, fast, light-weight, extensible window manager"
+HOMEPAGE="http://openbox.org/"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://git.openbox.org/dana/openbox"
+ SRC_URI="branding? (
+ https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )"
+else
+ SRC_URI="http://openbox.org/dist/openbox/${P}.tar.gz
+ branding? ( https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-linux"
+fi
+
+LICENSE="GPL-2"
+SLOT="3"
+IUSE="branding debug imlib nls session startup-notification static-libs svg xdg"
+REQUIRED_USE="xdg? ( ${PYTHON_REQUIRED_USE} )"
+
+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}
+ dev-python/pyxdg[${PYTHON_USEDEP}]
+ )
+ "
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ virtual/pkgconfig
+ x11-base/xorg-proto"
+
+PATCHES=( "${FILESDIR}/${PN}-3.5.2-gnome-session.patch" )
+
+src_prepare() {
+ default
+ sed -i \
+ -e "s:-O0 -ggdb ::" \
+ -e 's/-fno-strict-aliasing//' \
+ "${S}"/m4/openbox.m4 || die
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_enable static-libs static) \
+ $(use_enable nls) \
+ $(use_enable imlib imlib2) \
+ $(use_enable svg librsvg) \
+ $(use_enable startup-notification) \
+ $(use_enable session session-management) \
+ --with-x
+}
+
+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
+ use static-libs || prune_libtool_files --all
+ if use xdg ; then
+ python_replicate_script "${ED}"/usr/libexec/openbox-xdg-autostart
+ else
+ rm "${ED}"/usr/libexec/openbox-xdg-autostart || die
+ fi
+}
diff --git a/x11-wm/openbox/openbox-3.6.1-r3.ebuild b/x11-wm/openbox/openbox-3.6.1-r3.ebuild
new file mode 100644
index 000000000000..ab87c3a9cac7
--- /dev/null
+++ b/x11-wm/openbox/openbox-3.6.1-r3.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{5,6,7,8} )
+inherit multilib autotools python-single-r1 eutils
+
+DESCRIPTION="A standards compliant, fast, light-weight, extensible window manager"
+HOMEPAGE="http://openbox.org/"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://git.openbox.org/dana/openbox"
+ SRC_URI="branding? (
+ https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )"
+else
+ SRC_URI="http://openbox.org/dist/openbox/${P}.tar.gz
+ branding? ( https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-linux"
+fi
+
+LICENSE="GPL-2"
+SLOT="3"
+IUSE="branding debug imlib nls session startup-notification static-libs svg xdg"
+REQUIRED_USE="xdg? ( ${PYTHON_REQUIRED_USE} )"
+
+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_MULTI_USEDEP}]
+ ')
+ )
+ "
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ virtual/pkgconfig
+ 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"
+)
+
+src_prepare() {
+ default
+ sed -i \
+ -e "s:-O0 -ggdb ::" \
+ -e 's/-fno-strict-aliasing//' \
+ "${S}"/m4/openbox.m4 || die
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_enable static-libs static) \
+ $(use_enable nls) \
+ $(use_enable imlib imlib2) \
+ $(use_enable svg librsvg) \
+ $(use_enable startup-notification) \
+ $(use_enable session session-management) \
+ --with-x
+}
+
+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
+ use static-libs || find "${D}" -name '*.la' -delete
+ 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-3.6.1-r4.ebuild b/x11-wm/openbox/openbox-3.6.1-r4.ebuild
new file mode 100644
index 000000000000..359f755e6799
--- /dev/null
+++ b/x11-wm/openbox/openbox-3.6.1-r4.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{5,6,7,8} )
+inherit multilib autotools python-single-r1 eutils
+
+DESCRIPTION="A standards compliant, fast, light-weight, extensible window manager"
+HOMEPAGE="http://openbox.org/"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://git.openbox.org/dana/openbox"
+ SRC_URI="branding? (
+ https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )"
+else
+ SRC_URI="http://openbox.org/dist/openbox/${P}.tar.gz
+ branding? ( https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-linux"
+fi
+
+LICENSE="GPL-2"
+SLOT="3"
+IUSE="branding debug imlib nls session startup-notification static-libs svg xdg"
+REQUIRED_USE="xdg? ( ${PYTHON_REQUIRED_USE} )"
+
+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_MULTI_USEDEP}]
+ ')
+ )
+ "
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ virtual/pkgconfig
+ 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"
+ "${FILESDIR}/${PN}-3.5.0-title-matching.patch"
+ "${FILESDIR}/${PN}-3.5.0-which-2.20.patch"
+ "${FILESDIR}/${PN}-3.6.2-fix-out-of-bounds.patch"
+ "${FILESDIR}/${PN}-3.6.2-rounded-corners.patch"
+)
+
+src_prepare() {
+ default
+ sed -i \
+ -e "s:-O0 -ggdb ::" \
+ -e 's/-fno-strict-aliasing//' \
+ "${S}"/m4/openbox.m4 || die
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_enable static-libs static) \
+ $(use_enable nls) \
+ $(use_enable imlib imlib2) \
+ $(use_enable svg librsvg) \
+ $(use_enable startup-notification) \
+ $(use_enable session session-management) \
+ --with-x
+}
+
+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
+ use static-libs || find "${D}" -name '*.la' -delete
+ 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-3.6.1.ebuild b/x11-wm/openbox/openbox-3.6.1.ebuild
new file mode 100644
index 000000000000..810985f6f7cf
--- /dev/null
+++ b/x11-wm/openbox/openbox-3.6.1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+inherit multilib autotools ltprune python-r1 eutils
+
+DESCRIPTION="A standards compliant, fast, light-weight, extensible window manager"
+HOMEPAGE="http://openbox.org/"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://git.openbox.org/dana/openbox"
+ SRC_URI="branding? (
+ https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )"
+else
+ SRC_URI="http://openbox.org/dist/openbox/${P}.tar.gz
+ branding? ( https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )"
+ KEYWORDS="~alpha amd64 arm ~arm64 hppa ~mips ppc ppc64 sparc x86 ~x86-linux"
+fi
+
+LICENSE="GPL-2"
+SLOT="3"
+IUSE="branding debug imlib nls session startup-notification static-libs svg xdg"
+REQUIRED_USE="xdg? ( ${PYTHON_REQUIRED_USE} )"
+
+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}
+ dev-python/pyxdg[${PYTHON_USEDEP}]
+ )
+ "
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ virtual/pkgconfig
+ x11-base/xorg-proto"
+
+src_prepare() {
+ use xdg && python_setup
+ epatch "${FILESDIR}"/${PN}-3.5.2-gnome-session.patch
+ sed -i \
+ -e "s:-O0 -ggdb ::" \
+ -e 's/-fno-strict-aliasing//' \
+ "${S}"/m4/openbox.m4 || die
+ epatch_user
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ $(use_enable debug) \
+ $(use_enable static-libs static) \
+ $(use_enable nls) \
+ $(use_enable imlib imlib2) \
+ $(use_enable svg librsvg) \
+ $(use_enable startup-notification) \
+ $(use_enable session session-management) \
+ --with-x
+}
+
+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
+ use static-libs || prune_libtool_files --all
+ if use xdg ; then
+ python_replicate_script "${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
new file mode 100644
index 000000000000..75bd3b71f0f6
--- /dev/null
+++ b/x11-wm/openbox/openbox-9999.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+inherit multilib autotools ltprune python-r1 eutils
+
+DESCRIPTION="A standards compliant, fast, light-weight, extensible window manager"
+HOMEPAGE="http://openbox.org/"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://git.openbox.org/dana/openbox"
+ SRC_URI="branding? (
+ https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )"
+else
+ SRC_URI="http://openbox.org/dist/openbox/${P}.tar.gz
+ branding? ( https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )"
+ KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86 ~x86-linux"
+fi
+
+LICENSE="GPL-2"
+SLOT="3"
+IUSE="branding debug imlib nls session startup-notification static-libs svg xdg"
+REQUIRED_USE="xdg? ( ${PYTHON_REQUIRED_USE} )"
+
+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}
+ dev-python/pyxdg[${PYTHON_USEDEP}]
+ )
+ "
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ virtual/pkgconfig
+ x11-base/xorg-proto"
+
+PATCHES=( "${FILESDIR}/${PN}-3.5.2-gnome-session.patch" )
+
+src_prepare() {
+ default
+ sed -i \
+ -e "s:-O0 -ggdb ::" \
+ -e 's/-fno-strict-aliasing//' \
+ "${S}"/m4/openbox.m4 || die
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_enable static-libs static) \
+ $(use_enable nls) \
+ $(use_enable imlib imlib2) \
+ $(use_enable svg librsvg) \
+ $(use_enable startup-notification) \
+ $(use_enable session session-management) \
+ --with-x
+}
+
+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
+ use static-libs || prune_libtool_files --all
+ if use xdg ; then
+ python_replicate_script "${ED}"/usr/libexec/openbox-xdg-autostart
+ else
+ rm "${ED}"/usr/libexec/openbox-xdg-autostart || die
+ fi
+}