aboutsummaryrefslogtreecommitdiff
path: root/x11-wm
diff options
context:
space:
mode:
authorg3ngr33n <gengreen@tutanota.com>2019-05-22 04:07:30 +0000
committerAnthony G. Basile <blueness@gentoo.org>2019-05-22 09:29:04 -0400
commitbea7682cf4bd9d4e52579bf48d0b1821c018656b (patch)
treefa8f453d12894900dce6b71775ef02d614bdeb83 /x11-wm
parentsys-auth/polkit: change netgroup support patch for 0.116 (diff)
downloadmusl-bea7682cf4bd9d4e52579bf48d0b1821c018656b.tar.gz
musl-bea7682cf4bd9d4e52579bf48d0b1821c018656b.tar.bz2
musl-bea7682cf4bd9d4e52579bf48d0b1821c018656b.zip
x11-wm/fluxbox: Patch, update, small change
- Update the ebuild to EAPI 7 - Deprecated patch have been removed - 0001 : Remove from the source feature fluxbox-remote - 0002 : Fix nls on musl Package-Manager: Portage-2.3.62, Repoman-2.3.11 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'x11-wm')
-rw-r--r--x11-wm/fluxbox/Manifest1
-rw-r--r--x11-wm/fluxbox/files/0001-strip-fluxbox-remote.patch467
-rw-r--r--x11-wm/fluxbox/files/0002-fix-nls-musl.patch33
-rw-r--r--x11-wm/fluxbox/files/fluxbox.desktop8
-rw-r--r--x11-wm/fluxbox/files/fluxbox.xsession90
-rw-r--r--x11-wm/fluxbox/files/styles-menu-commonbox5
-rw-r--r--x11-wm/fluxbox/files/styles-menu-fluxbox5
-rw-r--r--x11-wm/fluxbox/files/styles-menu-user5
-rw-r--r--x11-wm/fluxbox/fluxbox-1.3.7-r4.ebuild102
-rw-r--r--x11-wm/fluxbox/metadata.xml27
10 files changed, 743 insertions, 0 deletions
diff --git a/x11-wm/fluxbox/Manifest b/x11-wm/fluxbox/Manifest
new file mode 100644
index 00000000..1419f31c
--- /dev/null
+++ b/x11-wm/fluxbox/Manifest
@@ -0,0 +1 @@
+DIST fluxbox-1.3.7.tar.xz 786492 BLAKE2B ecf50e2eb19949b4a301366eaffc1d5199c17b116b7d19a31392eea632e6320210e1dff24b1794d3427c14206e31d9722d3c21ce24b584c61288233feb564925 SHA512 ab8adb8b5a5e396b6df814c93d7fe5aca3eaaa347ca45c1572ad7da0185dbe1e8981190af9b814112f9831b560e31ba0b7dec7e6af5e3e3e3d9d20f2bd463e01
diff --git a/x11-wm/fluxbox/files/0001-strip-fluxbox-remote.patch b/x11-wm/fluxbox/files/0001-strip-fluxbox-remote.patch
new file mode 100644
index 00000000..8b1c9705
--- /dev/null
+++ b/x11-wm/fluxbox/files/0001-strip-fluxbox-remote.patch
@@ -0,0 +1,467 @@
+--- a/src/ScreenResource.cc
++++ b/src/ScreenResource.cc
+@@ -103,7 +103,6 @@
+ menu_delay(rm, 200, scrname + ".menuDelay", altscrname+".MenuDelay"),
+ tab_width(rm, 64, scrname + ".tab.width", altscrname+".Tab.Width"),
+ tooltip_delay(rm, 500, scrname + ".tooltipDelay", altscrname+".TooltipDelay"),
+- allow_remote_actions(rm, false, scrname+".allowRemoteActions", altscrname+".AllowRemoteActions"),
+ clientmenu_use_pixmap(rm, true, scrname+".clientMenu.usePixmap", altscrname+".ClientMenu.UsePixmap"),
+ tabs_use_pixmap(rm, true, scrname+".tabs.usePixmap", altscrname+".Tabs.UsePixmap"),
+ max_over_tabs(rm, false, scrname+".tabs.maxOver", altscrname+".Tabs.MaxOver"),
+
+--- a/src/Screen.hh
++++ b/src/Screen.hh
+@@ -115,7 +115,6 @@
+ FbWinFrame::TabPlacement getTabPlacement() const { return *resource.tab_placement; }
+
+ unsigned int noFocusWhileTypingDelay() const { return *resource.typing_delay; }
+- const bool allowRemoteActions() const { return *resource.allow_remote_actions; }
+ const bool clientMenuUsePixmap() const { return *resource.clientmenu_use_pixmap; }
+ const bool getDefaultInternalTabs() const { return *resource.default_internal_tabs; }
+ const bool getTabsUsePixmap() const { return *resource.tabs_use_pixmap; }
+
+--- a/src/ScreenResource.hh
++++ b/src/ScreenResource.hh
+@@ -53,7 +53,6 @@
+ menu_delay,
+ tab_width,
+ tooltip_delay;
+- FbTk::Resource<bool> allow_remote_actions;
+ FbTk::Resource<bool> clientmenu_use_pixmap;
+ FbTk::Resource<bool> tabs_use_pixmap;
+ FbTk::Resource<bool> max_over_tabs;
+
+--- a/src/Screen.cc
++++ b/src/Screen.cc
+@@ -624,34 +624,7 @@
+
+ void BScreen::propertyNotify(Atom atom) {
+
+- if (allowRemoteActions() && atom == atom_fbcmd) {
+- Atom xa_ret_type;
+- int ret_format;
+- unsigned long ret_nitems, ret_bytes_after;
+- char *str;
+- if (rootWindow().property(atom_fbcmd, 0l, 64l,
+- True, XA_STRING, &xa_ret_type, &ret_format, &ret_nitems,
+- &ret_bytes_after, (unsigned char **)&str) && str) {
+-
+- if (ret_bytes_after) {
+- XFree(str);
+- long len = 64 + (ret_bytes_after + 3)/4;
+- rootWindow().property(atom_fbcmd, 0l, len,
+- True, XA_STRING, &xa_ret_type, &ret_format, &ret_nitems,
+- &ret_bytes_after, (unsigned char **)&str);
+- }
+-
+- static std::auto_ptr<FbTk::Command<void> > cmd(0);
+- cmd.reset(FbTk::CommandParser<void>::instance().parse(str, false));
+- if (cmd.get()) {
+- cmd->execute();
+- }
+- XFree(str);
+-
+- }
+- // TODO: this doesn't belong in FbPixmap
+- } else if (FbTk::FbPixmap::rootwinPropertyNotify(screenNumber(), atom))
+- m_bg_change_sig.emit(*this);
++ return;
+ }
+
+ void BScreen::keyPressEvent(XKeyEvent &ke) {
+
+--- a/util/fluxbox-remote.cc
++++ b/util/fluxbox-remote.cc
+@@ -18,79 +18,3 @@
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ // DEALINGS IN THE SOFTWARE.
+-
+-#include <X11/Xlib.h>
+-#include <X11/Xatom.h>
+-#include <X11/Xutil.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-
+-bool g_gotError = false;
+-static int HandleIPCError(Display *disp, XErrorEvent*ptr)
+-{
+- // ptr->error_code contains the actual error flags
+- g_gotError = true;
+- return( 0 );
+-}
+-
+-typedef int (*xerror_cb_t)(Display*,XErrorEvent*);
+-
+-
+-int main(int argc, char **argv) {
+-
+- int rc;
+- Display* disp;
+- Window root;
+- Atom atom_fbcmd;
+- Atom atom_result;
+- xerror_cb_t error_cb;
+- char* cmd;
+-
+- if (argc <= 1) {
+- printf("fluxbox-remote <fluxbox-command>\n");
+- return EXIT_SUCCESS;
+- }
+-
+- disp = XOpenDisplay(NULL);
+- if (!disp) {
+- perror("error, can't open display.");
+- rc = EXIT_FAILURE;
+- return rc;
+- }
+-
+- cmd = argv[1];
+- atom_fbcmd = XInternAtom(disp, "_FLUXBOX_ACTION", False);
+- atom_result = XInternAtom(disp, "_FLUXBOX_ACTION_RESULT", False);
+- root = DefaultRootWindow(disp);
+-
+- // assign the custom handler, clear the flag, sync the data,
+- // then check it for success/failure
+- error_cb = XSetErrorHandler(HandleIPCError);
+-
+-
+- if (strcmp(cmd, "result") == 0) {
+- XTextProperty text_prop;
+- if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0
+- && text_prop.value > 0
+- && text_prop.nitems > 0) {
+-
+- printf("%s", text_prop.value);
+- XFree(text_prop.value);
+- }
+- } else {
+- XChangeProperty(disp, root, atom_fbcmd,
+- XA_STRING, 8, PropModeReplace,
+- (unsigned char *)cmd, strlen(cmd));
+- XSync(disp, false);
+- }
+-
+- rc = (g_gotError ? EXIT_FAILURE : EXIT_SUCCESS);
+-
+- XSetErrorHandler(error_cb);
+- XCloseDisplay(disp);
+-
+- return rc;
+-}
+-
+
+--- a/util/Makemodule.am
++++ b/util/Makemodule.am
+@@ -12,7 +12,6 @@
+
+ bin_PROGRAMS += \
+ fbsetroot \
+- fluxbox-remote \
+ fluxbox-update_configs
+
+ fbsetroot_SOURCES = \
+@@ -46,9 +45,3 @@
+ libFbTk.a \
+ $(FRIBIDI_LIBS)
+
+-fluxbox_remote_SOURCES = \
+- util/fluxbox-remote.cc
+-fluxbox_remote_CPPFLAGS = \
+- $(AM_CPPFLAGS) \
+- -I$(fbtk_incdir)
+-
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -114,8 +114,7 @@
+ build_triplet = @build@
+ host_triplet = @host@
+ bin_PROGRAMS = fluxbox$(EXEEXT) fbsetroot$(EXEEXT) \
+- fluxbox-remote$(EXEEXT) fluxbox-update_configs$(EXEEXT) \
+- fbrun$(EXEEXT)
++ fluxbox-update_configs$(EXEEXT) fbrun$(EXEEXT) \
+ DIST_COMMON = $(srcdir)/data/Makemodule.am \
+ $(srcdir)/data/styles/carp/Makemodule.am \
+ $(srcdir)/data/styles/bora_blue/Makemodule.am \
+@@ -467,11 +466,6 @@
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+-am_fluxbox_remote_OBJECTS = \
+- util/fluxbox_remote-fluxbox-remote.$(OBJEXT)
+-fluxbox_remote_OBJECTS = $(am_fluxbox_remote_OBJECTS)
+-fluxbox_remote_LDADD = $(LDADD)
+-fluxbox_remote_DEPENDENCIES = libFbTk.a src/defaults.$(OBJEXT)
+ am_fluxbox_update_configs_OBJECTS = \
+ src/fluxbox_update_configs-defaults.$(OBJEXT) \
+ src/fluxbox_update_configs-Resources.$(OBJEXT) \
+@@ -594,19 +588,16 @@
+ am__v_CCLD_0 = @echo " CCLD " $@;
+ am__v_CCLD_1 =
+ SOURCES = $(libFbTk_a_SOURCES) $(fbrun_SOURCES) $(fbsetroot_SOURCES) \
+- $(fluxbox_SOURCES) $(fluxbox_remote_SOURCES) \
+- $(fluxbox_update_configs_SOURCES) \
++ $(fluxbox_SOURCES) $(fluxbox_update_configs_SOURCES) \
+ $(testDemandAttention_SOURCES) $(testFont_SOURCES) \
+ $(testFullscreen_SOURCES) $(testKeys_SOURCES) \
+ $(testRectangleUtil_SOURCES) $(testStringUtil_SOURCES) \
+ $(testTexture_SOURCES)
+ DIST_SOURCES = $(am__libFbTk_a_SOURCES_DIST) $(fbrun_SOURCES) \
+ $(fbsetroot_SOURCES) $(am__fluxbox_SOURCES_DIST) \
+- $(fluxbox_remote_SOURCES) $(fluxbox_update_configs_SOURCES) \
+- $(testDemandAttention_SOURCES) $(testFont_SOURCES) \
++ $(fluxbox_update_configs_SOURCES) $(testDemandAttention_SOURCES) $(testFont_SOURCES) \
+ $(testFullscreen_SOURCES) $(testKeys_SOURCES) \
+- $(testRectangleUtil_SOURCES) $(testStringUtil_SOURCES) \
+- $(testTexture_SOURCES)
++ $(testRectangleUtil_SOURCES) $(testStringUtil_SOURCES) $(testTexture_SOURCES) \
+ RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+@@ -863,12 +854,11 @@
+ data/windowmenu $(style_DATA) doc/CODESTYLE doc/fbrun.1.in \
+ doc/fbsetbg.1.in doc/fbsetroot.1.in doc/fluxbox-apps.5.in \
+ doc/fluxbox-keys.5.in doc/fluxbox-menu.5.in \
+- doc/fluxbox-remote.1.in doc/fluxbox-style.5.in \
+- doc/fluxbox.1.in doc/startfluxbox.1.in util/fbsetbg
++ doc/fluxbox-style.5.in doc/fluxbox.1.in \
++ doc/startfluxbox.1.in util/fbsetbg
+ CLEANFILES = $(PATHFILES) doc/fbrun.1 doc/fbsetbg.1 doc/fbsetroot.1 \
+ doc/fluxbox-apps.5 doc/fluxbox-keys.5 doc/fluxbox-menu.5 \
+- doc/fluxbox-remote.1 doc/fluxbox-style.5 doc/fluxbox.1 \
+- doc/startfluxbox.1
++ doc/fluxbox-style.5 doc/fluxbox.1 doc/startfluxbox.1 \
+ MAINTAINERCLEANFILES = \
+ aclocal.m4 \
+ config.h.in \
+@@ -1072,7 +1062,6 @@
+ doc/fluxbox-apps.5 \
+ doc/fluxbox-keys.5 \
+ doc/fluxbox-menu.5 \
+- doc/fluxbox-remote.1 \
+ doc/fluxbox-style.5 \
+ doc/fluxbox.1 \
+ doc/startfluxbox.1
+@@ -1568,13 +1557,6 @@
+ libFbTk.a \
+ $(FRIBIDI_LIBS)
+
+-fluxbox_remote_SOURCES = \
+- util/fluxbox-remote.cc
+-
+-fluxbox_remote_CPPFLAGS = \
+- $(AM_CPPFLAGS) \
+- -I$(fbtk_incdir)
+-
+ fbrun_CPPFLAGS = \
+ $(AM_CPPFLAGS) \
+ -I$(src_incdir)
+@@ -1999,12 +1981,7 @@
+ fluxbox$(EXEEXT): $(fluxbox_OBJECTS) $(fluxbox_DEPENDENCIES) $(EXTRA_fluxbox_DEPENDENCIES)
+ @rm -f fluxbox$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(fluxbox_OBJECTS) $(fluxbox_LDADD) $(LIBS)
+-util/fluxbox_remote-fluxbox-remote.$(OBJEXT): util/$(am__dirstamp) \
+- util/$(DEPDIR)/$(am__dirstamp)
+
+-fluxbox-remote$(EXEEXT): $(fluxbox_remote_OBJECTS) $(fluxbox_remote_DEPENDENCIES) $(EXTRA_fluxbox_remote_DEPENDENCIES)
+- @rm -f fluxbox-remote$(EXEEXT)
+- $(AM_V_CXXLD)$(CXXLINK) $(fluxbox_remote_OBJECTS) $(fluxbox_remote_LDADD) $(LIBS)
+ src/fluxbox_update_configs-defaults.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+ src/fluxbox_update_configs-Resources.$(OBJEXT): src/$(am__dirstamp) \
+@@ -2246,7 +2223,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/testStringUtil-StringUtiltest.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/testTexture-texturetest.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/fbsetroot-fbsetroot.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/fluxbox_remote-fluxbox-remote.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/fluxbox_update_configs-fluxbox-update_configs.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@util/fbrun/$(DEPDIR)/fbrun-FbRun.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@util/fbrun/$(DEPDIR)/fbrun-main.Po@am__quote@
+@@ -4073,20 +4049,6 @@
+ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fluxbox_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/fluxbox-SystemTray.obj `if test -f 'src/SystemTray.cc'; then $(CYGPATH_W) 'src/SystemTray.cc'; else $(CYGPATH_W) '$(srcdir)/src/SystemTray.cc'; fi`
+
+-util/fluxbox_remote-fluxbox-remote.o: util/fluxbox-remote.cc
+-@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fluxbox_remote_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT util/fluxbox_remote-fluxbox-remote.o -MD -MP -MF util/$(DEPDIR)/fluxbox_remote-fluxbox-remote.Tpo -c -o util/fluxbox_remote-fluxbox-remote.o `test -f 'util/fluxbox-remote.cc' || echo '$(srcdir)/'`util/fluxbox-remote.cc
+-@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) util/$(DEPDIR)/fluxbox_remote-fluxbox-remote.Tpo util/$(DEPDIR)/fluxbox_remote-fluxbox-remote.Po
+-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='util/fluxbox-remote.cc' object='util/fluxbox_remote-fluxbox-remote.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fluxbox_remote_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o util/fluxbox_remote-fluxbox-remote.o `test -f 'util/fluxbox-remote.cc' || echo '$(srcdir)/'`util/fluxbox-remote.cc
+-
+-util/fluxbox_remote-fluxbox-remote.obj: util/fluxbox-remote.cc
+-@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fluxbox_remote_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT util/fluxbox_remote-fluxbox-remote.obj -MD -MP -MF util/$(DEPDIR)/fluxbox_remote-fluxbox-remote.Tpo -c -o util/fluxbox_remote-fluxbox-remote.obj `if test -f 'util/fluxbox-remote.cc'; then $(CYGPATH_W) 'util/fluxbox-remote.cc'; else $(CYGPATH_W) '$(srcdir)/util/fluxbox-remote.cc'; fi`
+-@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) util/$(DEPDIR)/fluxbox_remote-fluxbox-remote.Tpo util/$(DEPDIR)/fluxbox_remote-fluxbox-remote.Po
+-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='util/fluxbox-remote.cc' object='util/fluxbox_remote-fluxbox-remote.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fluxbox_remote_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o util/fluxbox_remote-fluxbox-remote.obj `if test -f 'util/fluxbox-remote.cc'; then $(CYGPATH_W) 'util/fluxbox-remote.cc'; else $(CYGPATH_W) '$(srcdir)/util/fluxbox-remote.cc'; fi`
+-
+ src/fluxbox_update_configs-defaults.o: src/defaults.cc
+ @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fluxbox_update_configs_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/fluxbox_update_configs-defaults.o -MD -MP -MF src/$(DEPDIR)/fluxbox_update_configs-defaults.Tpo -c -o src/fluxbox_update_configs-defaults.o `test -f 'src/defaults.cc' || echo '$(srcdir)/'`src/defaults.cc
+ @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/fluxbox_update_configs-defaults.Tpo src/$(DEPDIR)/fluxbox_update_configs-defaults.Po
+
+--- a/doc/fluxbox-remote.1
++++ /dev/null
+@@ -1,65 +0,0 @@
+-'\" t
+-.\" Title: fluxbox-remote
+-.\" Author: Mark Tiefenbruck <mark@fluxbox.org>
+-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+-.\" Date: 08 February 2015
+-.\" Manual: Fluxbox Manual
+-.\" Source: fluxbox-remote.txt
+-.\" Language: English
+-.\"
+-.TH "FLUXBOX\-REMOTE" "1" "08 February 2015" "fluxbox\-remote\&.txt" "Fluxbox Manual"
+-.\" -----------------------------------------------------------------
+-.\" * Define some portability stuff
+-.\" -----------------------------------------------------------------
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.\" http://bugs.debian.org/507673
+-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.ie \n(.g .ds Aq \(aq
+-.el .ds Aq '
+-.\" -----------------------------------------------------------------
+-.\" * set default formatting
+-.\" -----------------------------------------------------------------
+-.\" disable hyphenation
+-.nh
+-.\" disable justification (adjust text to left margin only)
+-.ad l
+-.\" -----------------------------------------------------------------
+-.\" * MAIN CONTENT STARTS HERE *
+-.\" -----------------------------------------------------------------
+-.SH "NAME"
+-fluxbox-remote \- command line access to key commands for fluxbox(1)
+-.SH "SYNOPSIS"
+-.sp
+-\fBfluxbox\-remote\fR \fIcommand\fR
+-.SH "DESCRIPTION"
+-.sp
+-\fIfluxbox\-remote(1)\fR is designed to allow scripts to execute most key commands from \fIfluxbox(1)\fR\&. \fIfluxbox\-remote(1)\fR will only work with \fIfluxbox(1)\fR: its communications with \fIfluxbox(1)\fR are not standardized in any way\&. It is recommended that a standards\-based tool such as \fIwmctrl(1)\fR be used whenever possible, in order for scripts to work with other window managers\&.
+-.SH "CAVEATS"
+-.sp
+-\fIfluxbox\-remote(1)\fR uses the X11 protocol to communicate with \fIfluxbox(1)\fR\&. Therefore, it is possible for any user with access to the \fIX(7)\fR server to use \fIfluxbox\-remote(1)\fR\&. For this reason, several key commands have been disabled\&. Users should be aware of the security implications when enabling \fIfluxbox\-remote(1)\fR, especially when using a forwarded \fIX(7)\fR connection\&.
+-.SH "RESOURCES"
+-.PP
+-session\&.screen0\&.allowRemoteActions: <boolean>
+-.RS 4
+-This resource in ~/\&.fluxbox/init must be set to \(oqtrue\(cq in order for
+-\fIfluxbox\-remote(1)\fR
+-to function\&. Please read the
+-\fBCAVEATS\fR
+-first\&.
+-.RE
+-.SH "ENVIRONMENT"
+-.sp
+-In order to communicate with \fIfluxbox(1)\fR, the DISPLAY environment variable must be set properly\&. Usually, the value should be \(oq:0\&.0\(cq\&.
+-.SH "AUTHORS"
+-.sp
+-This man page written by Mark Tiefenbruck <mark at fluxbox\&.org>
+-.SH "SEE ALSO"
+-.sp
+-fluxbox(1) fluxbox\-keys(5) wmctrl(1)
+-.SH "AUTHOR"
+-.PP
+-\fBMark Tiefenbruck\fR <\&mark@fluxbox\&.org\&>
+-.RS 4
+-Author.
+-.RE
+
+--- a/doc/fluxbox-remote.1.in
++++ /dev/null
+@@ -1,65 +0,0 @@
+-'\" t
+-.\" Title: fluxbox-remote
+-.\" Author: Mark Tiefenbruck <mark@fluxbox.org>
+-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+-.\" Date: 08 February 2015
+-.\" Manual: Fluxbox Manual
+-.\" Source: fluxbox-remote.txt
+-.\" Language: English
+-.\"
+-.TH "FLUXBOX\-REMOTE" "1" "08 February 2015" "fluxbox\-remote\&.txt" "Fluxbox Manual"
+-.\" -----------------------------------------------------------------
+-.\" * Define some portability stuff
+-.\" -----------------------------------------------------------------
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.\" http://bugs.debian.org/507673
+-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.ie \n(.g .ds Aq \(aq
+-.el .ds Aq '
+-.\" -----------------------------------------------------------------
+-.\" * set default formatting
+-.\" -----------------------------------------------------------------
+-.\" disable hyphenation
+-.nh
+-.\" disable justification (adjust text to left margin only)
+-.ad l
+-.\" -----------------------------------------------------------------
+-.\" * MAIN CONTENT STARTS HERE *
+-.\" -----------------------------------------------------------------
+-.SH "NAME"
+-fluxbox-remote \- command line access to key commands for fluxbox(1)
+-.SH "SYNOPSIS"
+-.sp
+-\fBfluxbox\-remote\fR \fIcommand\fR
+-.SH "DESCRIPTION"
+-.sp
+-\fIfluxbox\-remote(1)\fR is designed to allow scripts to execute most key commands from \fIfluxbox(1)\fR\&. \fIfluxbox\-remote(1)\fR will only work with \fIfluxbox(1)\fR: its communications with \fIfluxbox(1)\fR are not standardized in any way\&. It is recommended that a standards\-based tool such as \fIwmctrl(1)\fR be used whenever possible, in order for scripts to work with other window managers\&.
+-.SH "CAVEATS"
+-.sp
+-\fIfluxbox\-remote(1)\fR uses the X11 protocol to communicate with \fIfluxbox(1)\fR\&. Therefore, it is possible for any user with access to the \fIX(7)\fR server to use \fIfluxbox\-remote(1)\fR\&. For this reason, several key commands have been disabled\&. Users should be aware of the security implications when enabling \fIfluxbox\-remote(1)\fR, especially when using a forwarded \fIX(7)\fR connection\&.
+-.SH "RESOURCES"
+-.PP
+-session\&.screen0\&.allowRemoteActions: <boolean>
+-.RS 4
+-This resource in ~/\&.fluxbox/init must be set to \(oqtrue\(cq in order for
+-\fIfluxbox\-remote(1)\fR
+-to function\&. Please read the
+-\fBCAVEATS\fR
+-first\&.
+-.RE
+-.SH "ENVIRONMENT"
+-.sp
+-In order to communicate with \fIfluxbox(1)\fR, the DISPLAY environment variable must be set properly\&. Usually, the value should be \(oq:0\&.0\(cq\&.
+-.SH "AUTHORS"
+-.sp
+-This man page written by Mark Tiefenbruck <mark at fluxbox\&.org>
+-.SH "SEE ALSO"
+-.sp
+-fluxbox(1) fluxbox\-keys(5) wmctrl(1)
+-.SH "AUTHOR"
+-.PP
+-\fBMark Tiefenbruck\fR <\&mark@fluxbox\&.org\&>
+-.RS 4
+-Author.
+-.RE
+
+--- a/doc/Makemodule.am
++++ b/doc/Makemodule.am
+@@ -5,7 +5,6 @@
+ doc/fluxbox-apps.5 \
+ doc/fluxbox-keys.5 \
+ doc/fluxbox-menu.5 \
+- doc/fluxbox-remote.1 \
+ doc/fluxbox-style.5 \
+ doc/fluxbox.1 \
+ doc/startfluxbox.1
+@@ -17,7 +16,6 @@
+ doc/fluxbox-apps.5 \
+ doc/fluxbox-keys.5 \
+ doc/fluxbox-menu.5 \
+- doc/fluxbox-remote.1 \
+ doc/fluxbox-style.5 \
+ doc/fluxbox.1 \
+ doc/startfluxbox.1
+@@ -30,7 +28,6 @@
+ doc/fluxbox-apps.5.in \
+ doc/fluxbox-keys.5.in \
+ doc/fluxbox-menu.5.in \
+- doc/fluxbox-remote.1.in \
+ doc/fluxbox-style.5.in \
+ doc/fluxbox.1.in \
+ doc/startfluxbox.1.in
diff --git a/x11-wm/fluxbox/files/0002-fix-nls-musl.patch b/x11-wm/fluxbox/files/0002-fix-nls-musl.patch
new file mode 100644
index 00000000..caba8718
--- /dev/null
+++ b/x11-wm/fluxbox/files/0002-fix-nls-musl.patch
@@ -0,0 +1,33 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -332,18 +332,18 @@
+ AM_CONDITIONAL([TEST], [test "x$enable_test" = "xyes"])
+
+ dnl Check whether to include native language support (i18n)
+-AC_MSG_CHECKING([whether to include NLS support])
+-AC_ARG_ENABLE([nls],
+- AS_HELP_STRING([--enable-nls],
+- [include native language support (default=yes)]),
+- [], [enable_nls=yes]
+-)
+-AC_MSG_RESULT([$enable_nls])
+-AS_IF([test "x$enable_nls" = "xyes"], [
+- AC_DEFINE([NLS], [1], [Native language support])
+- NLS="-DNLS"
+-], [])
+-AC_SUBST([NLS])
++AC_PREREQ([2.50])
++
++AC_DEFUN([AM_NLS],
++[
++ AC_MSG_CHECKING([whether NLS is requested])
++ dnl Default is enabled NLS
++ AC_ARG_ENABLE([nls],
++ [ --disable-nls do not use Native Language Support],
++ USE_NLS=$enableval, USE_NLS=yes)
++ AC_MSG_RESULT([$USE_NLS])
++ AC_SUBST([USE_NLS])
++])
+
+ dnl Check for new timed pixmap cache
+ AC_MSG_CHECKING([whether to use a timed pixmap cache])
diff --git a/x11-wm/fluxbox/files/fluxbox.desktop b/x11-wm/fluxbox/files/fluxbox.desktop
new file mode 100644
index 00000000..975d121c
--- /dev/null
+++ b/x11-wm/fluxbox/files/fluxbox.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=Fluxbox
+Comment=This session logs you into Fluxbox
+Exec=startfluxbox
+TryExec=startfluxbox
+# no icon yet, only the top three are currently used
+Icon=
+Type=Application
diff --git a/x11-wm/fluxbox/files/fluxbox.xsession b/x11-wm/fluxbox/files/fluxbox.xsession
new file mode 100644
index 00000000..0fb9dcd6
--- /dev/null
+++ b/x11-wm/fluxbox/files/fluxbox.xsession
@@ -0,0 +1,90 @@
+#!/bin/sh
+# Fluxbox Xsession starter, based on Xsession shipped by x11-apps/xinit-1.0.5-r1
+
+# redirect errors to a file in user's home directory if we can
+for errfile in "$HOME/.fluxbox-errors" "${TMPDIR-/tmp}/fluxbox-$USER" "/tmp/fluxbox-$USER"
+do
+ if ( cp /dev/null "$errfile" 2> /dev/null )
+ then
+ chmod 600 "$errfile"
+ exec > "$errfile" 2>&1
+ break
+ fi
+done
+
+userresources=$HOME/.Xresources
+usermodmap=$HOME/.Xmodmap
+userxkbmap=$HOME/.Xkbmap
+
+sysresources=/etc/X11/Xresources
+sysmodmap=/etc/X11/Xmodmap
+sysxkbmap=/etc/X11/Xkbmap
+
+rh6sysresources=/etc/X11/xinit/Xresources
+rh6sysmodmap=/etc/X11/xinit/Xmodmap
+
+
+# merge in defaults
+if [ -f "$rh6sysresources" ]; then
+ xrdb -merge "$rh6sysresources"
+fi
+
+if [ -f "$sysresources" ]; then
+ xrdb -merge "$sysresources"
+fi
+
+if [ -f "$userresources" ]; then
+ xrdb -merge "$userresources"
+fi
+
+# merge in keymaps
+if [ -f "$sysxkbmap" ]; then
+ setxkbmap `cat "$sysxkbmap"`
+ XKB_IN_USE=yes
+fi
+
+if [ -f "$userxkbmap" ]; then
+ setxkbmap `cat "$userxkbmap"`
+ XKB_IN_USE=yes
+fi
+
+#
+# Eeek, this seems like too much magic here
+#
+if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
+ if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
+ xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config /etc/X11/xorg.conf`
+ if [ -n "$xkbsymbols" ]; then
+ setxkbmap -symbols "$xkbsymbols"
+ XKB_IN_USE=yes
+ fi
+ fi
+fi
+
+# xkb and xmodmap don't play nice together
+if [ -z "$XKB_IN_USE" ]; then
+ if [ -f "$rh6sysmodmap" ]; then
+ xmodmap "$rh6sysmodmap"
+ fi
+
+ if [ -f "$sysmodmap" ]; then
+ xmodmap "$sysmodmap"
+ fi
+
+ if [ -f "$usermodmap" ]; then
+ xmodmap "$usermodmap"
+ fi
+fi
+
+unset XKB_IN_USE
+
+# run all system xinitrc shell scripts.
+if [ -d /etc/X11/xinit/xinitrc.d ]; then
+ for i in /etc/X11/xinit/xinitrc.d/* ; do
+ if [ -x "$i" ]; then
+ . "$i"
+ fi
+ done
+fi
+
+exec /usr/bin/startfluxbox
diff --git a/x11-wm/fluxbox/files/styles-menu-commonbox b/x11-wm/fluxbox/files/styles-menu-commonbox
new file mode 100644
index 00000000..742e587e
--- /dev/null
+++ b/x11-wm/fluxbox/files/styles-menu-commonbox
@@ -0,0 +1,5 @@
+[begin] (Legacy Commonbox Styles)
+[submenu] (Legacy Commonbox Styles)
+ [stylesdir] (/usr/share/commonbox/styles)
+[end]
+[end]
diff --git a/x11-wm/fluxbox/files/styles-menu-fluxbox b/x11-wm/fluxbox/files/styles-menu-fluxbox
new file mode 100644
index 00000000..d2e0d580
--- /dev/null
+++ b/x11-wm/fluxbox/files/styles-menu-fluxbox
@@ -0,0 +1,5 @@
+[begin] (Fluxbox Core Styles)
+[submenu] (Fluxbox Core Styles)
+ [stylesdir] (/usr/share/fluxbox/styles)
+[end]
+[end]
diff --git a/x11-wm/fluxbox/files/styles-menu-user b/x11-wm/fluxbox/files/styles-menu-user
new file mode 100644
index 00000000..3d011d27
--- /dev/null
+++ b/x11-wm/fluxbox/files/styles-menu-user
@@ -0,0 +1,5 @@
+[begin] (User Styles)
+[submenu] (User Styles)
+ [stylesdir] (~/.fluxbox/styles)
+[end]
+[end]
diff --git a/x11-wm/fluxbox/fluxbox-1.3.7-r4.ebuild b/x11-wm/fluxbox/fluxbox-1.3.7-r4.ebuild
new file mode 100644
index 00000000..aef98eb9
--- /dev/null
+++ b/x11-wm/fluxbox/fluxbox-1.3.7-r4.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools toolchain-funcs
+
+IUSE="nls xinerama bidi +truetype +imlib +slit +systray +toolbar vim-syntax"
+
+REQUIRED_USE="systray? ( toolbar )"
+
+DESCRIPTION="X11 window manager featuring tabs and an iconbar"
+
+SRC_URI="mirror://sourceforge/fluxbox/${P}.tar.xz"
+HOMEPAGE="http://www.fluxbox.org"
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ !!<=x11-misc/fbdesk-1.2.1
+ !!<=x11-misc/fluxconf-0.9.9
+ !!<x11-themes/fluxbox-styles-fluxmod-20040809-r1
+ bidi? ( >=dev-libs/fribidi-0.19.2 )
+ imlib? ( >=media-libs/imlib2-1.2.0[X] )
+ truetype? ( media-libs/freetype )
+ vim-syntax? ( app-vim/fluxbox-syntax )
+ x11-libs/libXext
+ x11-libs/libXft
+ x11-libs/libXpm
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ xinerama? ( x11-libs/libXinerama )
+ || ( x11-misc/gxmessage x11-apps/xmessage )
+"
+
+DEPEND="
+ ${RDEPEND}
+ bidi? ( virtual/pkgconfig )
+ nls? ( sys-devel/gettext )
+ x11-base/xorg-proto
+"
+
+PATCHES=(
+ "${FILESDIR}"/0001-strip-fluxbox-remote.patch
+ "${FILESDIR}"/0002-fix-nls-musl.patch
+)
+
+src_prepare() {
+
+ default
+ eautoreconf
+}
+
+src_configure() {
+
+ local myeconfargs=(
+ $(use_enable imlib imlib2)
+ $(use_enable bidi fribidi)
+ $(use_enable slit)
+ $(use_enable systray)
+ $(use_enable toolbar)
+ $(use_enable truetype xft)
+ $(use_enable xinerama)
+ --sysconfdir="${EPREFIX}"/etc/X11/${PN} \
+ --with-style="${EPREFIX}"/usr/share/fluxbox/styles/Emerge
+
+ )
+
+ if ! use nls; then
+ local myeconfargs=( --disable-nls )
+ fi
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ default
+
+}
+
+src_install() {
+
+ emake DESTDIR="${D}" STRIP="" install
+ dodoc README* AUTHORS TODO* ChangeLog NEWS
+
+ # Install the generated menu
+ insinto /usr/share/fluxbox
+ doins data/menu
+
+ insinto /usr/share/xsessions
+ doins "${FILESDIR}"/${PN}.desktop
+
+ exeinto /etc/X11/Sessions
+ newexe "${FILESDIR}"/${PN}.xsession fluxbox
+
+ # Styles menu framework
+ insinto /usr/share/fluxbox/menu.d/styles
+ doins "${FILESDIR}"/styles-menu-fluxbox
+ doins "${FILESDIR}"/styles-menu-commonbox
+ doins "${FILESDIR}"/styles-menu-user
+}
diff --git a/x11-wm/fluxbox/metadata.xml b/x11-wm/fluxbox/metadata.xml
new file mode 100644
index 00000000..0cbfa3e8
--- /dev/null
+++ b/x11-wm/fluxbox/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>zlogene@gentoo.org</email>
+ <name>Mikle Kolyada</name>
+ </maintainer>
+ <longdescription>
+ Fluxbox is yet another windowmanager for X. Originally based upon the
+ Blackbox 0.61.1 code, Fluxbox has been extended to include a new tabbed
+ window handling mechanism, an improved configurable window title bar,
+ better KDE and GNOME integration, an integrated key grabber and
+ countless additional features.
+ </longdescription>
+ <use>
+ <flag name="bidi">
+ Enable bidirectional language support with
+ <pkg>dev-libs/fribidi</pkg>
+ </flag>
+ <flag name="slit">Enables the Fluxbox slit (or dock)</flag>
+ <flag name="systray">Enables the system tray in the Fluxbox toolbar</flag>
+ <flag name="toolbar">Enables the Fluxbox toolbar</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">fluxbox</remote-id>
+ </upstream>
+</pkgmetadata>