summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /x11-wm/icewm
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'x11-wm/icewm')
-rw-r--r--x11-wm/icewm/Manifest3
-rw-r--r--x11-wm/icewm/files/IceWM.desktop8
-rwxr-xr-xx11-wm/icewm/files/icewm2
-rw-r--r--x11-wm/icewm/files/icewm-1.3.10-menu.patch22
-rw-r--r--x11-wm/icewm/files/icewm-1.3.7-dso.patch10
-rw-r--r--x11-wm/icewm/files/icewm-1.3.7-gcc44.patch13
-rw-r--r--x11-wm/icewm/files/icewm-1.3.7-menuiconsize.patch73
-rw-r--r--x11-wm/icewm/files/icewm-1.3.7-thermal.patch41
-rw-r--r--x11-wm/icewm/files/icewm-1.3.8-build-fixes.patch113
-rw-r--r--x11-wm/icewm/files/icewm-1.3.8-deprecated.patch12
-rw-r--r--x11-wm/icewm/files/icewm-1.3.8-menu.patch23
-rw-r--r--x11-wm/icewm/files/icewm-1.3.8-uclibc.patch64
-rw-r--r--x11-wm/icewm/files/icewm-1.3.9-fribidi.patch137
-rw-r--r--x11-wm/icewm/files/icewm-1.3.9-uclibc.patch64
-rw-r--r--x11-wm/icewm/files/icewm-defaults.patch13
-rw-r--r--x11-wm/icewm/files/icewm-fribidi.patch83
-rw-r--r--x11-wm/icewm/files/icewm-keys.patch43
-rw-r--r--x11-wm/icewm/files/icewm-startup4
-rw-r--r--x11-wm/icewm/files/icewm-toolbar.patch12
-rw-r--r--x11-wm/icewm/files/icewm-xdg-menu128
-rw-r--r--x11-wm/icewm/icewm-1.3.10.ebuild130
-rw-r--r--x11-wm/icewm/icewm-1.3.8.ebuild133
-rw-r--r--x11-wm/icewm/icewm-1.3.9.ebuild135
-rw-r--r--x11-wm/icewm/metadata.xml16
24 files changed, 1282 insertions, 0 deletions
diff --git a/x11-wm/icewm/Manifest b/x11-wm/icewm/Manifest
new file mode 100644
index 00000000000..ec8f36d74ca
--- /dev/null
+++ b/x11-wm/icewm/Manifest
@@ -0,0 +1,3 @@
+DIST icewm-1.3.10.tar.gz 929941 SHA256 dae6aa00c88f700537cc841cbd233ea2905e756f6274f9ebd52020f782502706 SHA512 96834d5ed2d693451ef071d574b4f553431183feefc8c6db97d46666ec086e9ff8d4a1b0c0eaf60cfbb1398be653aad3a47a61b35a5354730c05b1ddfa61bf16 WHIRLPOOL a085604cd70ef0d10ff3a9c9e91b2572f47750e2a5627c1d8feeadd3d9024423b75ffe9339329c59ade855ebd1046d1c18757994ce38aef0fdfca03dcb47e97d
+DIST icewm-1.3.8.tar.gz 905680 SHA256 17588d9e0bbbb23587bc04c83da9dd94fd4da6894ecfee6d7f3ed50d780dcd18 SHA512 ce9bf3e736a2f3fad4bbf731647b4e4ad0168cd2c4af66b1c43beef9ceeee39d14909714d2fc73ab13f6c285a74dfe31fffc9677ae8bd2d1077716cd6d6afb72 WHIRLPOOL 5bb0f6fa830ea10978bb8fd31805596c849a370d619626736e1218e844de72e142ed1aaa87b2f2aeb40603fcf2cfaa88ffae242c726ae1151045c6a792d5cf6c
+DIST icewm-1.3.9.tar.gz 890170 SHA256 2d47f8cda48a91ac14fb20890c2df0f304cf8278adf50c3e4070ef68b61a687d SHA512 9c28b004d3a13470e61a3ecbea489d67134b5d1651d84677e8ab0fb732b630d30b7be047553833c818a0ae05841ec808d37d7d50e21e5a562d407cdc74b4943e WHIRLPOOL 8ecba1325da50655524b414280bf4c87f7bcf4c5d0e7edb0df8c6b341680443f961eddf7fd653ac75229aea88100ba8c06b8268196b48f63f6683231f972eb97
diff --git a/x11-wm/icewm/files/IceWM.desktop b/x11-wm/icewm/files/IceWM.desktop
new file mode 100644
index 00000000000..087384ee130
--- /dev/null
+++ b/x11-wm/icewm/files/IceWM.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=IceWM
+Comment=This session logs you into IceWM
+Exec=icewm-session
+TryExec=icewm-session
+# no icon yet, only the top three are currently used
+Icon=
+Type=Application
diff --git a/x11-wm/icewm/files/icewm b/x11-wm/icewm/files/icewm
new file mode 100755
index 00000000000..90905960d1a
--- /dev/null
+++ b/x11-wm/icewm/files/icewm
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/bin/icewm-session
diff --git a/x11-wm/icewm/files/icewm-1.3.10-menu.patch b/x11-wm/icewm/files/icewm-1.3.10-menu.patch
new file mode 100644
index 00000000000..721a15d25ee
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.10-menu.patch
@@ -0,0 +1,22 @@
+--- icewm-1.3.10/lib/menu.in
++++ icewm-1.3.10/lib/menu.in
+@@ -4,14 +4,9 @@
+ # since modifications to this file will be discarded when you
+ # (re)install icewm.
+ #
+-prog xterm xterm xterm
+-prog rxvt xterm rxvt -bg black -cr green -fg white -C -fn 9x15 -sl 500
+-prog fte fte fte
+-prog NEdit nedit nedit
+-prog Mozilla mozilla mozilla
+-prog XChat xchat xchat
+-prog Gimp gimp gimp
++prog xterm /usr/share/icons/gnome/16x16/apps/terminal.png xterm
++"Web browser" /usr/share/icons/gnome/16x16/apps/web-browser.png xdg-open about:blank
+ separator
+-menuprog "Desktop Apps" folder icewm-menu-fdo
+-menufile Programs folder programs
+-menufile Tool_bar folder toolbar
++prog "Rebuild program menu" /usr/share/icons/gnome/16x16/actions/edit-find-replace.png /usr/share/icewm/startup
++separator
++menufile Programs folder programs.autogen
diff --git a/x11-wm/icewm/files/icewm-1.3.7-dso.patch b/x11-wm/icewm/files/icewm-1.3.7-dso.patch
new file mode 100644
index 00000000000..55100d5f62a
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.7-dso.patch
@@ -0,0 +1,10 @@
+--- configure.in.old 2011-11-23 15:44:52.121654867 +0200
++++ configure.in 2011-11-23 15:47:09.514411391 +0200
+@@ -494,6 +494,7 @@
+ AC_DEFINE(CONFIG_COREFONTS, 1, [Define to enable X11 core conts.])
+ features="${features} corefonts"
+ fi
++ CORE_LIBS="${CORE_LIBS} -lfontconfig"
+
+ dnl ============================================================= GUI Events ===
+ dnl
diff --git a/x11-wm/icewm/files/icewm-1.3.7-gcc44.patch b/x11-wm/icewm/files/icewm-1.3.7-gcc44.patch
new file mode 100644
index 00000000000..d500f64004b
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.7-gcc44.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/show_bug.cgi?id=376451
+
+--- a/src/wmapp.cc
++++ b/src/wmapp.cc
+@@ -337,7 +337,7 @@
+ char ** fontPath(XGetFontPath(xapp->display(), &ndirs));
+
+ char ** newFontPath = new char *[ndirs + 1];
+- newFontPath[ndirs] = fontsdir;
++ newFontPath[ndirs] = (char *)fontsdir;
+
+ if (fontPath)
+ memcpy(newFontPath, fontPath, ndirs * sizeof (char *));
diff --git a/x11-wm/icewm/files/icewm-1.3.7-menuiconsize.patch b/x11-wm/icewm/files/icewm-1.3.7-menuiconsize.patch
new file mode 100644
index 00000000000..d051d5bc5f1
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.7-menuiconsize.patch
@@ -0,0 +1,73 @@
+diff -Naur icewm-1.3.7.bak/src/yicon.cc icewm-1.3.7/src/yicon.cc
+--- icewm-1.3.7.bak/src/yicon.cc 2010-10-31 15:09:36.000000000 +0100
++++ icewm-1.3.7/src/yicon.cc 2011-11-07 19:41:52.841910531 +0100
+@@ -270,6 +270,10 @@
+ iconCache.getItem(0)->removeFromCache();
+ }
+
++int YIcon::menuSize() {
++ return menuIconSize;
++}
++
+ int YIcon::smallSize() {
+ return smallIconSize;
+ }
+diff -Naur icewm-1.3.7.bak/src/yicon.h icewm-1.3.7/src/yicon.h
+--- icewm-1.3.7.bak/src/yicon.h 2010-10-31 15:09:36.000000000 +0100
++++ icewm-1.3.7/src/yicon.h 2011-11-07 19:41:28.555296033 +0100
+@@ -25,6 +25,7 @@
+ bool isCached() { return fCached; }
+ void setCached(bool cached) { fCached = cached; }
+
++ static int menuSize();
+ static int smallSize();
+ static int largeSize();
+ static int hugeSize();
+diff -Naur icewm-1.3.7.bak/src/ymenu.cc icewm-1.3.7/src/ymenu.cc
+--- icewm-1.3.7.bak/src/ymenu.cc 2010-10-31 15:09:36.000000000 +0100
++++ icewm-1.3.7/src/ymenu.cc 2011-11-07 19:42:40.498474049 +0100
+@@ -153,8 +153,8 @@
+
+ #ifndef LITE
+ if (getItem(selItem)->getIcon() != null &&
+- YIcon::smallSize() > h)
+- h = YIcon::smallSize();
++ YIcon::menuSize() > h)
++ h = YIcon::menuSize();
+ #endif
+
+ if (x <= int(width() - h - 4))
+@@ -1023,8 +1023,8 @@
+ mitem->getIcon()->draw(g,
+ l + 1 + delta, t + delta + top + pad +
+ (eh - top - pad * 2 - bottom -
+- YIcon::smallSize()) / 2,
+- YIcon::smallSize());
++ YIcon::menuSize()) / 2,
++ YIcon::menuSize());
+ #endif
+ }
+
+diff -Naur icewm-1.3.7.bak/src/ymenuitem.cc icewm-1.3.7/src/ymenuitem.cc
+--- icewm-1.3.7.bak/src/ymenuitem.cc 2010-10-31 15:09:36.000000000 +0100
++++ icewm-1.3.7/src/ymenuitem.cc 2011-11-07 19:50:04.458316916 +0100
+@@ -86,8 +86,8 @@
+ int ih = fontHeight;
+
+ #ifndef LITE
+- if (YIcon::smallSize() > ih)
+- ih = YIcon::smallSize();
++ if (YIcon::menuSize() > ih)
++ ih = YIcon::menuSize();
+ #endif
+
+ if (wmLook == lookWarp4 || wmLook == lookWin95) {
+@@ -123,7 +123,7 @@
+ return 0;
+ #else
+ ref<YIcon> icon = getIcon();
+- return icon != null ? YIcon::smallSize(): 0;
++ return icon != null ? YIcon::menuSize(): 0;
+ #endif
+ }
+
diff --git a/x11-wm/icewm/files/icewm-1.3.7-thermal.patch b/x11-wm/icewm/files/icewm-1.3.7-thermal.patch
new file mode 100644
index 00000000000..f6b2cf71f0f
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.7-thermal.patch
@@ -0,0 +1,41 @@
+diff -uprN a/src/acpustatus.cc b/src/acpustatus.cc
+--- a/src/acpustatus.cc 2010-10-31 15:09:36.000000000 +0100
++++ b/src/acpustatus.cc 2013-01-17 21:12:19.085715083 +0100
+@@ -315,6 +315,37 @@ int CPUStatus::getAcpiTemp(char *tempbuf
+ }
+ closedir(dir);
+ }
++ else if ((dir = opendir("/sys/class/thermal")) != NULL) {
++ struct dirent *de;
++
++ while ((de = readdir(dir)) != NULL) {
++
++ int fd, seglen;
++
++ if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0)
++ continue;
++
++ sprintf(namebuf, "/sys/class/thermal/%s/temp", de->d_name);
++ fd = open(namebuf, O_RDONLY);
++ if (fd != -1) {
++ int len = read(fd, buf, sizeof(buf) - 1);
++ buf[len - 4] = '\0';
++ seglen = strlen(buf) + 4;
++ if (retbuflen + seglen >= buflen) {
++ retbuflen = -retbuflen;
++ close(fd);
++ closedir(dir);
++ break;
++ }
++ retbuflen += seglen;
++ strcat(tempbuf, " ");
++ strncat(tempbuf, buf, seglen);
++ strcat(tempbuf, " C");
++ close(fd);
++ }
++ }
++ closedir(dir);
++ }
+ return retbuflen;
+ }
+
diff --git a/x11-wm/icewm/files/icewm-1.3.8-build-fixes.patch b/x11-wm/icewm/files/icewm-1.3.8-build-fixes.patch
new file mode 100644
index 00000000000..cec27a79ad0
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.8-build-fixes.patch
@@ -0,0 +1,113 @@
+--- icewm-1.3.8/Makefile.in
++++ icewm-1.3.8/Makefile.in
+@@ -35,7 +35,7 @@
+
+ ################################################################################
+
+-BINFILES = @BINFILES@ icewm-set-gnomewm
++BINFILES = @BINFILES@ "$(srcdir)/icewm-set-gnomewm"
+ LIBFILES = lib/preferences lib/winoptions lib/keys \
+ lib/menu lib/toolbar # lib/programs
+ DOCFILES = README BUGS CHANGES COPYING AUTHORS INSTALL VERSION icewm.lsm
+@@ -83,21 +83,23 @@
+ @echo ------------------------------------------
+ @echo "Installing binaries in $(DESTDIR)$(BINDIR)"
+ @$(INSTALLDIR) "$(DESTDIR)$(BINDIR)"
++#generated files, relative to the build directory
+ @for bin in $(BINFILES); do \
+ $(INSTALLBIN) "$${bin}" "$(DESTDIR)$(BINDIR)"; \
+ done
+
+ @echo "Installing presets and icons in $(DESTDIR)$(LIBDIR)"
+ @$(INSTALLDIR) "$(DESTDIR)$(LIBDIR)"
++# data files from the source directory
+ #-@$(INSTALLDIR) "$(DESTDIR)$(CFGDIR)"
+ @for lib in $(LIBFILES); do \
+- $(INSTALLLIB) "$${lib}" "$(DESTDIR)$(LIBDIR)"; \
++ $(INSTALLLIB) "$(top_srcdir)/$${lib}" "$(DESTDIR)$(LIBDIR)"; \
+ done
+
+ @for xpmdir in $(XPMDIRS); do \
+- if test -d "lib/$${xpmdir}"; then \
++ if test -d "$(top_srcdir)/lib/$${xpmdir}"; then \
+ $(INSTALLDIR) "$(DESTDIR)$(LIBDIR)/$${xpmdir}"; \
+- for pixmap in "lib/$${xpmdir}/"*.xpm; do \
++ for pixmap in "$(top_srcdir)/lib/$${xpmdir}/"*.xpm; do \
+ $(INSTALLLIB) "$${pixmap}" "$(DESTDIR)$(LIBDIR)/$${xpmdir}"; \
+ done; \
+ fi; \
+--- icewm-1.3.8/po/Makefile.in
++++ icewm-1.3.8/po/Makefile.in
+@@ -20,6 +20,7 @@
+ XGETTEXT = @XGETTEXT@
+ MSGMERGE = @MSGMERGE@
+ MSGFMT = @MSGFMT@
++VPATH = .:po:@srcdir@
+
+ .SUFFIXES:
+ .SUFFIXES: .po .mo
+--- icewm-1.3.8/src/Makefile.in
++++ icewm-1.3.8/src/Makefile.in
+@@ -11,7 +11,7 @@
+
+ CXX = @CXX@
+ HOSTCXX = @HOSTCXX@
+-LD = @CXX_LINK@
++LD = gcc
+ HOSTLD = @HOSTCXX_LINK@
+ EXEEXT = @EXEEXT@
+
+@@ -32,12 +32,12 @@
+ -DICEWMBGEXE='"icewmbg$(EXEEXT)"' \
+ -DICESMEXE='"icewm-session$(EXEEXT)"' \
+ -DICEHELPEXE='"icehelp$(EXEEXT)"' \
+- -DICEHELPIDX='"$(DOCDIR)/icewm-$(VERSION)/icewm.html"'
++ -DICEHELPIDX='"$(DOCDIR)/icewm-common/icewm.html"'
+
+ CXXFLAGS = @CXXFLAGS@ $(DEBUG) $(DEFS) `pkg-config gdk-pixbuf-xlib-2.0 --cflags` \
+ @CORE_CFLAGS@ @IMAGE_CFLAGS@ @AUDIO_CFLAGS@ `pkg-config fontconfig --cflags`
+ LFLAGS = @LDFLAGS@
+-LIBS = @LIBS@ `pkg-config gdk-pixbuf-xlib-2.0 --libs`
++LIBS = @LIBS@ `pkg-config gdk-pixbuf-xlib-2.0 --libs` -lfontconfig -lm -lsupc++
+
+ CORE_LIBS = @CORE_LIBS@ `pkg-config fontconfig --libs`
+ IMAGE_LIBS = @IMAGE_LIBS@
+@@ -188,6 +188,8 @@
+ TESTCASES = @TESTCASES@
+ OBJECTS = @BASEOBJS@ @TESTOBJS@
+ BINARIES = @BASEBINS@ @TESTBINS@
++BASEOBJS = @BASEOBJS@
++VPATH = .:@srcdir@
+
+ ################################################################################
+
+@@ -205,7 +207,8 @@
+ @echo " CXX " $@
+ @$(CXX) $(CXXFLAGS) $(GCCDEP) -c $<
+
+-$(BINARIES):
++$(BINARIES): $(BASEOBJS)
++# @$(MAKE) --no-print-directory build-dep DEPLIST="$($(@:$(EXEEXT)=)_OBJS)"
+ @echo " LD " $@
+ @$(LD) -o $@ $($(@:$(EXEEXT)=)_OBJS) $(LFLAGS) $($(@:$(EXEEXT)=)_LFLAGS) $(LIBS) $($(@:$(EXEEXT)=)_LIBS)
+
+@@ -217,6 +220,8 @@
+ @echo " HOSTLD " $@
+ @$(HOSTLD) -o $@ $(genpref_OBJS)
+
++build-dep: $(DEPLIST)
++
+ ################################################################################
+
+ gnome2.o: gnome2.cc
+--- icewm-1.3.8/src/WinMgr.h
++++ icewm-1.3.8/src/WinMgr.h
+@@ -128,7 +128,7 @@
+ * this where WIN_WORKSPACE_COUNT comes into play.
+ */
+
+-#define WinWorkspaceInvalid (-1L)
++#define WinWorkspaceInvalid ((unsigned long)-1)
+
+ /* workspaces */
+ #define XA_WIN_WORKSPACES "_WIN_WORKSPACES"
diff --git a/x11-wm/icewm/files/icewm-1.3.8-deprecated.patch b/x11-wm/icewm/files/icewm-1.3.8-deprecated.patch
new file mode 100644
index 00000000000..b956180627b
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.8-deprecated.patch
@@ -0,0 +1,12 @@
+--- icewm-1.3.8/src/base.h
++++ icewm-1.3.8/src/base.h
+@@ -2,7 +2,9 @@
+ #define __BASE_H
+
+ #if ( __GNUC__ == 3 && __GNUC_MINOR__ > 0 ) || __GNUC__ > 3
++#if ( __GNUC__ == 4 && __GNUC_MINOR__ > 7 ) || __GNUC__ > 3
+ #define _icewm_deprecated __attribute__((deprecated))
++#endif
+ #else
+ #define _icewm_deprecated
+ #endif
diff --git a/x11-wm/icewm/files/icewm-1.3.8-menu.patch b/x11-wm/icewm/files/icewm-1.3.8-menu.patch
new file mode 100644
index 00000000000..e4bab5c5ffc
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.8-menu.patch
@@ -0,0 +1,23 @@
+--- icewm-1.3.8/lib/menu.in
++++ icewm-1.3.8/lib/menu.in
+@@ -4,15 +4,9 @@
+ # since modifications to this file will be discarded when you
+ # (re)install icewm.
+ #
+-prog xterm xterm xterm
+-prog rxvt xterm rxvt -bg black -cr green -fg white -C -fn 9x15 -sl 500
+-prog fte fte fte
+-prog NEdit nedit nedit
+-prog Mozilla mozilla mozilla
+-prog XChat xchat xchat
+-prog Gimp gimp gimp
++prog xterm /usr/share/icons/gnome/16x16/apps/terminal.png xterm
++prog "Web browser" /usr/share/icons/gnome/16x16/apps/web-browser.png xdg-open about:blank
+ separator
+-menuprog Gnome folder icewm-menu-gnome2 --list @CONFIG_GNOME2_MENU_DIR@
+-menuprog KDE folder icewm-menu-gnome@GNOME_VER@ --list @CONFIG_KDE_MENU_DIR@
+-menufile Programs folder programs
+-menufile Tool_bar folder toolbar
++prog "Rebuild program menu" /usr/share/icons/gnome/16x16/actions/edit-find-replace.png /usr/share/icewm/startup
++separator
++menufile Programs folder programs.autogen
diff --git a/x11-wm/icewm/files/icewm-1.3.8-uclibc.patch b/x11-wm/icewm/files/icewm-1.3.8-uclibc.patch
new file mode 100644
index 00000000000..e790842faed
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.8-uclibc.patch
@@ -0,0 +1,64 @@
+diff -Naur icewm-1.3.7.orig/configure.in icewm-1.3.7/configure.in
+--- icewm-1.3.7.orig/configure.in 2010-10-31 10:09:37.000000000 -0400
++++ icewm-1.3.7/configure.in 2013-10-19 06:20:22.947520430 -0400
+@@ -113,6 +113,7 @@
+ AC_CHECK_HEADERS(libgen.h) dnl -- basename() for FreeBSD
+ AC_CHECK_HEADERS(machine/apmvar.h)
+ AC_CHECK_HEADERS(machine/apm_bios.h)
++AC_CHECK_HEADERS(execinfo.h)
+
+ AC_CHECK_HEADERS(kstat.h,
+ [ CORE_LIBS="${CORE_LIBS} -lkstat"
+diff -Naur icewm-1.3.7.orig/src/acpustatus.cc icewm-1.3.7/src/acpustatus.cc
+--- icewm-1.3.7.orig/src/acpustatus.cc 2010-10-31 10:09:36.000000000 -0400
++++ icewm-1.3.7/src/acpustatus.cc 2013-10-19 06:20:18.355519888 -0400
+@@ -25,17 +25,12 @@
+ #include "sysdep.h"
+ #include "default.h"
+
+-#if defined(linux)
+-//#include <linux/kernel.h>
+-#include <sys/sysinfo.h>
+-#endif
+ #if defined(sun) && defined(SVR4)
+ #include <sys/loadavg.h>
+ #endif
+ #ifdef HAVE_KSTAT_H
+ #include <sys/resource.h>
+ #include <kstat.h>
+-#include <sys/sysinfo.h>
+ #endif
+
+ #ifdef HAVE_SYS_PARAM_H
+@@ -56,6 +51,10 @@
+ #include <dirent.h>
+ #include "intl.h"
+
++#if defined(linux) || defined(HAVE_KSTAT_H)
++#include <sys/sysinfo.h>
++#endif
++
+ #if (defined(linux) || defined(HAVE_KSTAT_H)) || defined(HAVE_SYSCTL_CP_TIME)
+
+ extern ref<YPixmap> taskbackPixmap;
+diff -Naur icewm-1.3.7.orig/src/misc.cc icewm-1.3.7/src/misc.cc
+--- icewm-1.3.7.orig/src/misc.cc 2010-10-31 10:09:36.000000000 -0400
++++ icewm-1.3.7/src/misc.cc 2013-10-19 06:20:22.947520430 -0400
+@@ -15,7 +15,7 @@
+ #include <libgen.h>
+ #endif
+
+-#ifdef linux
++#if defined(linux) && defined(HAVE_EXECINFO_H)
+ #include <execinfo.h>
+ #endif
+
+@@ -503,7 +503,7 @@
+ }
+
+ void show_backtrace() {
+-#ifdef linux
++#if defined(linux) && defined(HAVE_EXECINFO_H)
+ const char head[] = "\nbacktrace:\n";
+ const char tail[] = "end\n";
+ void *array[20];
diff --git a/x11-wm/icewm/files/icewm-1.3.9-fribidi.patch b/x11-wm/icewm/files/icewm-1.3.9-fribidi.patch
new file mode 100644
index 00000000000..91aa55c1f12
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.9-fribidi.patch
@@ -0,0 +1,137 @@
+From 800fc7caa9728cebafee86d841ac23b6ffaa896b Mon Sep 17 00:00:00 2001
+From: Brian Bidulock <bidulock@openss7.org>
+Date: Wed, 5 Nov 2014 03:25:44 -0700
+Subject: [PATCH] fribidi support (gentoo icewm-1.3.9-fribidi.patch)
+
+ Also fixes several problems with the gentoo patch:
+
+ 1) the patch modifies CORE_CFLAGS and CORE_LIBS before they
+ are first defined, confusing later PKG_CONFIG([CORE], ...)
+ so I moved it later in configure.ac
+
+ 2) the patch uses the deprecated fribidi_log2vis, so I modified
+ src/yfontxft.cc to disabled deprecated symbols (because I
+ always test build with -Werror).
+
+ 3) the patch ignores the return value of fribidi_log2vis()
+ causing another warning which -Werror turns into an error.
+ Changed to "if (fribidi_log2vis(...)) ;" to disable that.
+
+ 4) fixed the configure.ac macro check for fribidi to only warn
+ when the library is not present but the feature has not
+ been disabled
+
+ 5) add fribidi to configure.ac features list shown at end of
+ ./configure run (added xrandr and xinerama too...)
+---
+ configure.ac | 17 +++++++++++++++--
+ src/yfontxft.cc | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 62 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index dce4f1e..63d362f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -158,7 +158,8 @@ if test x$enable_xrandr != xno; then
+ PKG_CHECK_MODULES([XRANDR],[xrandr],[
+ CORE_CFLAGS="$XRANDR_CFLAGS $CORE_CFLAGS"
+ CORE_LIBS="$XRANDR_LIBS $CORE_LIBS"
+- AC_DEFINE([CONFIG_XRANDR],[1],[Define to enable XRANDR extension.])],
++ AC_DEFINE([CONFIG_XRANDR],[1],[Define to enable XRANDR extension.])
++ features="$features xrandr"],
+ [AC_MSG_WARN([XRANDR not supported.])])
+ fi
+
+@@ -270,10 +271,22 @@ if test x$enable_xinerama != xno ; then
+ PKG_CHECK_MODULES([XINERAMA],[xinerama],[
+ CORE_CFLAGS="$XINERAMA_CFLAGS $CORE_CFLAGS"
+ CORE_LIBS="$XINERAMA_LIBS $CORE_LIBS"
+- AC_DEFINE([XINERAMA],[1],[Define to enable Xinerama support.])],
++ AC_DEFINE([XINERAMA],[1],[Define to enable Xinerama support.])
++ features="$features xinerama"],
+ [AC_MSG_WARN([XINERAMA is not supported.])])
+ fi
+
++AC_ARG_ENABLE([fribidi],
++ AC_HELP_STRING([--disable-fribidi],[Disable right to left support.]))
++if test "$enable_fribidi" != "no" && test "$enable_i18n" != "no"; then
++ PKG_CHECK_MODULES([FRIBIDI], [fribidi],[
++ CORE_CFLAGS="$FRIBIDI_CFLAGS $CORE_CFLAGS"
++ CORE_LIBS="$FRIBIDI_LIBS $CORE_LIBS"
++ AC_DEFINE([CONFIG_FRIBIDI],[1],[Define to enable fribidi support.])
++ features="$features fribidi"],
++ [AC_MSG_WARN([FRIBIDI is not supported.])])
++fi
++
+ AC_ARG_ENABLE([prefs],
+ AC_HELP_STRING([--disable-prefs],[Disable configurable preferences.]))
+ if test x$enable_prefs = xno ; then
+diff --git a/src/yfontxft.cc b/src/yfontxft.cc
+index c200dc6..01b52f9 100644
+--- a/src/yfontxft.cc
++++ b/src/yfontxft.cc
+@@ -6,6 +6,18 @@
+ #include "ypaint.h"
+ #include "yxapp.h"
+ #include "intl.h"
++#include <stdio.h>
++
++#ifdef CONFIG_FRIBIDI
++ // remove deprecated warnings for now...
++ #include <fribidi/fribidi-config.h>
++ #if FRIBIDI_USE_GLIB+0
++ #include <glib.h>
++ #undef G_GNUC_DEPRECATED
++ #define G_GNUC_DEPRECATED
++ #endif
++ #include <fribidi/fribidi.h>
++#endif
+
+ /******************************************************************************/
+
+@@ -69,10 +81,45 @@ class XftGraphics {
+ char_t * str, size_t len)
+ {
+ XftColor *c = *g.color();
++
++#ifdef CONFIG_FRIBIDI
++
++#define STATIS_STRING_SIZE 256
++
++ // Based around upstream (1.3.2) patch with some optimization
++ // on my end. (reduce unnecessary memory allocation)
++ // - Gilboa
++
++ char_t static_str[STATIS_STRING_SIZE];
++ char_t *vis_str = static_str;
++
++ if (len >= STATIS_STRING_SIZE)
++ {
++ vis_str = new char_t[len+1];
++ if (!vis_str)
++ return;
++ }
++
++ FriBidiCharType pbase_dir = FRIBIDI_TYPE_N;
++ if (fribidi_log2vis(str, len, &pbase_dir, //input
++ vis_str, // output
++ NULL, NULL, NULL // "statistics" that we don't need
++ )) ;
++ str = vis_str;
++#endif
++
+ XftDrawString(g.handleXft(), c, font,
+ x - g.xorigin(),
+ y - g.yorigin(),
+ str, len);
++
++#ifdef CONFIG_FRIBIDI
++
++ if (vis_str != static_str)
++ delete[] str;
++
++#endif
++
+ }
+
+ static void textExtents(XftFont * font, char_t * str, size_t len,
diff --git a/x11-wm/icewm/files/icewm-1.3.9-uclibc.patch b/x11-wm/icewm/files/icewm-1.3.9-uclibc.patch
new file mode 100644
index 00000000000..5019b68f3d7
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-1.3.9-uclibc.patch
@@ -0,0 +1,64 @@
+diff -Naur a/configure.ac b/configure.ac
+--- a/configure.ac 2015-01-02 16:27:05.093088172 +0000
++++ b/configure.ac 2015-01-02 16:29:58.563094214 +0000
+@@ -75,6 +75,7 @@
+ AC_CHECK_HEADERS([libgen.h])
+ AC_CHECK_HEADERS([machine/apmvar.h])
+ AC_CHECK_HEADERS([machine/apm_bios.h])
++AC_CHECK_HEADERS([execinfo.h])
+
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_CHECK_HEADER_STDBOOL
+diff -Naur a/src/acpustatus.cc b/src/acpustatus.cc
+--- a/src/acpustatus.cc 2014-09-01 10:21:57.000000000 +0000
++++ b/src/acpustatus.cc 2015-01-02 16:28:35.738091329 +0000
+@@ -25,17 +25,12 @@
+ #include "sysdep.h"
+ #include "default.h"
+
+-#if defined(linux)
+-//#include <linux/kernel.h>
+-#include <sys/sysinfo.h>
+-#endif
+ #if defined(sun) && defined(SVR4)
+ #include <sys/loadavg.h>
+ #endif
+ #ifdef HAVE_KSTAT_H
+ #include <sys/resource.h>
+ #include <kstat.h>
+-#include <sys/sysinfo.h>
+ #endif
+
+ #ifdef HAVE_SYS_PARAM_H
+@@ -56,6 +51,10 @@
+ #include <dirent.h>
+ #include "intl.h"
+
++#if defined(linux) || defined(HAVE_KSTAT_H)
++#include <sys/sysinfo.h>
++#endif
++
+ #if (defined(linux) || defined(HAVE_KSTAT_H)) || defined(HAVE_SYSCTL_CP_TIME)
+
+ extern ref<YPixmap> taskbackPixmap;
+diff -Naur a/src/misc.cc b/src/misc.cc
+--- a/src/misc.cc 2014-09-01 10:21:57.000000000 +0000
++++ b/src/misc.cc 2015-01-02 16:31:00.722096379 +0000
+@@ -15,7 +15,7 @@
+ #include <libgen.h>
+ #endif
+
+-#ifdef linux
++#if defined(linux) && defined(HAVE_EXECINFO_H)
+ #include <execinfo.h>
+ #endif
+
+@@ -543,7 +543,7 @@
+ }
+
+ void show_backtrace() {
+-#ifdef linux
++#if defined(linux) && defined(HAVE_EXECINFO_H)
+ void *array[20];
+
+ fprintf(stderr, "\nbacktrace:\n");
diff --git a/x11-wm/icewm/files/icewm-defaults.patch b/x11-wm/icewm/files/icewm-defaults.patch
new file mode 100644
index 00000000000..72e5410db4f
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-defaults.patch
@@ -0,0 +1,13 @@
+--- src/default.h.old 2011-11-23 18:04:22.429626938 +0200
++++ src/default.h 2011-11-23 18:04:38.416824083 +0200
+@@ -161,8 +161,8 @@
+ #endif
+
+ XSV(const char *, mailBoxPath, 0)
+-XSV(const char *, mailCommand, "xterm -name pine -title PINE -e pine")
+-XSV(const char *, mailClassHint, "pine.XTerm")
++XSV(const char *, mailCommand, "xterm -name alpine -title ALPINE -e alpine")
++XSV(const char *, mailClassHint, "alpine.XTerm")
+ XSV(const char *, newMailCommand, 0)
+ XSV(const char *, lockCommand, 0)
+ XSV(const char *, clockCommand, "xclock -name icewm -title Clock")
diff --git a/x11-wm/icewm/files/icewm-fribidi.patch b/x11-wm/icewm/files/icewm-fribidi.patch
new file mode 100644
index 00000000000..66691d78a3f
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-fribidi.patch
@@ -0,0 +1,83 @@
+--- src/yfontxft.cc.old 2009-09-25 00:07:51.000000000 +0300
++++ src/yfontxft.cc 2009-09-25 00:18:09.000000000 +0300
+@@ -6,6 +6,11 @@
+ #include "ypaint.h"
+ #include "yxapp.h"
+ #include "intl.h"
++#include <stdio.h>
++
++#ifdef CONFIG_FRIBIDI
++ #include <fribidi/fribidi.h>
++#endif
+
+ /******************************************************************************/
+
+@@ -68,10 +73,45 @@
+ char_t * str, size_t len)
+ {
+ XftColor *c = *g.color();
++
++#ifdef CONFIG_FRIBIDI
++
++#define STATIS_STRING_SIZE 256
++
++ // Based around upstream (1.3.2) patch with some optimization
++ // on my end. (reduce unnecessary memory allocation)
++ // - Gilboa
++
++ char_t static_str[STATIS_STRING_SIZE];
++ char_t *vis_str = static_str;
++
++ if (len >= STATIS_STRING_SIZE)
++ {
++ vis_str = new char_t[len+1];
++ if (!vis_str)
++ return;
++ }
++
++ FriBidiCharType pbase_dir = FRIBIDI_TYPE_N;
++ fribidi_log2vis(str, len, &pbase_dir, //input
++ vis_str, // output
++ NULL, NULL, NULL // "statistics" that we don't need
++ );
++ str = vis_str;
++#endif
++
+ XftDrawString(g.handleXft(), c, font,
+ x - g.xorigin(),
+ y - g.yorigin(),
+ str, len);
++
++#ifdef CONFIG_FRIBIDI
++
++ if (vis_str != static_str)
++ delete[] str;
++
++#endif
++
+ }
+
+ static void textExtents(XftFont * font, char_t * str, size_t len,
+--- configure.in.old 2009-09-25 00:05:08.000000000 +0300
++++ configure.in 2009-09-25 00:07:14.000000000 +0300
+@@ -307,6 +307,20 @@
+ features="${features} i18n"
+ fi
+
++dnl =================================================== Right to left support ===
++dnl
++AC_ARG_ENABLE(fribidi,
++ [ --disable-fribidi Disable right to left support])
++
++if test "$enable_fribidi" != "no" && test "$enable_i18n" != "no"; then
++ PKG_CHECK_MODULES(FRIBIDI, fribidi)
++
++ AC_DEFINE(CONFIG_FRIBIDI,1, [Define to enable fribidi support])
++
++ CORE_CFLAGS="${CORE_CFLAGS} ${FRIBIDI_CFLAGS}"
++ CORE_LIBS="${CORE_LIBS} ${FRIBIDI_LIBS}"
++fi
++
+ dnl ============================================================ NLS Support ===
+ dnl
+ AC_ARG_ENABLE(nls,
diff --git a/x11-wm/icewm/files/icewm-keys.patch b/x11-wm/icewm/files/icewm-keys.patch
new file mode 100644
index 00000000000..7e136bb9328
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-keys.patch
@@ -0,0 +1,43 @@
+--- icewm-1.2.30/lib/keys.in.old 2007-01-18 13:55:20.000000000 +0200
++++ icewm-1.2.30/lib/keys.in 2007-01-18 16:07:07.000000000 +0200
+@@ -9,28 +9,21 @@
+ # You'll have to omit XK_ prefixs and to replace XF86XK_ prefixes by
+ # XF86. Valid modifiers are Alt, Ctrl, Shift, Meta, Super and Hyper.
+ #
+-key "Alt+Ctrl+t" xterm
+-key "Alt+Ctrl+f" fte
+-key "Alt+Ctrl+e" nedit
+-key "Alt+Ctrl+g" gimp
+-key "Alt+Ctrl+n" netscape -noraise -remote openBrowser
+-key "Alt+Ctrl+b" netscape -noraise -remote openBookmarks
+-key "Alt+Ctrl+m" netscape -noraise -remote openURL(mailto:,new-window)
++key "Alt+Ctrl+t" xterm
++key "Alt+Ctrl+b" xdg-open about:blank
++key "Alt+Ctrl+s" xdg-open http://www.google.com
+
+-key "Alt+Ctrl+KP_Divide" aumix -v -5 # lower volume
+-key "Alt+Ctrl+KP_Multiply" aumix -v +5 # raise volume
++key "Super+KP_Subtract" amixer sset PCM 5%-
++key "Super+KP_Add" amixer sset PCM 5%+
+
+ # "Multimedia key" bindings for XFree86. Gather the keycodes of your
+ # advanced function keys by watching the output of the xev command whilest
+ # pressing those keys and map those symbols by using xmodmap.
+
+-key "XF86Standby" killall -QUIT icewm
+-key "XF86AudioLowerVolume" aumix -v -5
+-key "XF86AudioRaiseVolume" aumix -v +5
+-key "XF86AudioMute" aumix -v 0
+-key "XF86AudioPlay" cdplay play 1
+-key "XF86AudioStop" cdplay stop
+-key "XF86HomePage" netscape -noraise -remote openHomepage
+-key "XF86Mail" netscape -noraise -remote openURL(mailto:,new-window)
+-key "XF86Search" netscape -noraise -remote openURL(http://www.google.com/)
+-key "XF86Eject" eject
++key "XF86Standby" killall -QUIT icewm
++key "XF86AudioLowerVolume" amixer sset PCM 5%-
++key "XF86AudioRaiseVolume" amixer sset PCM 5%+
++key "XF86AudioMute" amixer sset PCM 0%
++key "XF86HomePage" xdg-open about:blank
++key "XF86Search" xdg-open http://www.google.com
++key "XF86Eject" eject
diff --git a/x11-wm/icewm/files/icewm-startup b/x11-wm/icewm/files/icewm-startup
new file mode 100644
index 00000000000..048ab593848
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-startup
@@ -0,0 +1,4 @@
+#!/bin/sh
+[ ! -d ~/.icewm ] && mkdir ~/.icewm
+XDG_MENU_PREFIX="gnome-" icewm-xdg-menu --entire-menu --with-theme-paths --icon-size 16 --theme gnome > ~/.icewm/programs.autogen
+
diff --git a/x11-wm/icewm/files/icewm-toolbar.patch b/x11-wm/icewm/files/icewm-toolbar.patch
new file mode 100644
index 00000000000..a6f0f15f52d
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-toolbar.patch
@@ -0,0 +1,12 @@
+--- icewm-1.2.30/lib/toolbar.in.old 2007-01-18 18:51:55.000000000 +0200
++++ icewm-1.3.7/lib/toolbar.in 2012-06-10 09:36:00.000000000 +0200
+@@ -4,6 +4,6 @@
+ # since modifications to this file will be discarded when you
+ # (re)install icewm.
+ #
+-prog XTerm xterm xterm
+-prog FTE fte fte
+-prog Netscape netscape netscape
++prog xterm /usr/share/icons/gnome/16x16/apps/terminal.png xterm
++prog "Web browser" /usr/share/icons/gnome/16x16/apps/web-browser.png xdg-open about:blank
++
diff --git a/x11-wm/icewm/files/icewm-xdg-menu b/x11-wm/icewm/files/icewm-xdg-menu
new file mode 100644
index 00000000000..529f9e2ab3b
--- /dev/null
+++ b/x11-wm/icewm/files/icewm-xdg-menu
@@ -0,0 +1,128 @@
+#!/usr/bin/python2
+"""
+This script generates FreeDesktop application menu for IceWM window manager.
+
+Written by Konstantin Korikov <lostclus@ua.fm>, put in the public domain
+
+Requires pyxdg http://cvs.freedesktop.org/cgi-bin/viewcvs.cgi/pyxdg/
+
+USAGE EXAMPLE
+
+Add to $HOME/.icewm/menu this line:
+
+ menuprog Applications - icewm-xdg-menu
+
+and restart IceWM.
+"""
+
+import sys
+import locale
+import getopt
+import re
+import xdg.Menu
+import xdg.DesktopEntry
+import xdg.IconTheme
+import xdg.Config
+
+version = "0.3"
+
+def print_usage(exit_code = 1):
+ print """Usage: %s [options]
+Options:
+ --locale=locale set output languege and encoding
+ --root-folder folder folder to generate (for example: /Games)
+ --terminal command set terminal emulator command (default: xterm -e %%s)
+ --default-folder-icon icon icon for folders that not provide Icon option
+ --default-entry-icon icon icon for entries that not provide Icon option
+ --with-theme-paths convert icon base names to icon absolute paths
+ using icon theme
+ --entire-menu print entire menu
+ --icon-size set default icon size
+ --theme theme set icon theme
+ --help print this help and exit
+ --version print version and exit
+""" % sys.argv[0]
+ sys.exit(exit_code)
+
+def print_version():
+ print "%s version %s" % (
+ os.path.basename(sys.argv[0]), version)
+ sys.exit(0)
+
+root_folder = ""
+terminal = "xterm -e %s"
+default_folder_icon = "folder"
+default_entry_icon = "-"
+entire_menu = False
+with_theme_paths = False
+icon_size = 16
+
+exec_clean1_re = re.compile(r'%[a-zA-Z]')
+exec_clean2_re = re.compile(r'%%')
+encoding = None
+locale_str = None
+
+def find_icon(entry):
+ icon = entry.getIcon()
+ if icon and with_theme_paths:
+ icon = xdg.IconTheme.getIconPath(icon, icon_size) or icon
+ return icon
+
+def process_menu(menu):
+ for entry in menu.getEntries():
+ if isinstance(entry, xdg.Menu.Menu):
+ name = entry.getName() or entry.DesktopFileID
+ icon = find_icon(entry) or default_folder_icon
+
+ if entire_menu:
+ print ("menu \"%s\" \"%s\" {" % (name, icon)).encode(encoding)
+ process_menu(entry)
+ print "}".encode(encoding)
+ else:
+ print (("menuprog \"%s\" \"%s\" %s" % (name, icon, sys.argv[0])) +
+ (" --root-folder \"%s\"" % entry.getPath(org=True)) +
+ (" --terminal \"%s\"" % terminal) +
+ (" --default-folder-icon \"%s\"" % default_folder_icon) +
+ (" --default-entry-icon \"%s\"" % default_entry_icon) +
+ (" --theme \"%s\"" % xdg.Config.icon_theme) +
+ (" --icon-size \"%d\"" % icon_size) +
+ (with_theme_paths and " --with-theme-paths" or "")).encode(encoding),
+ if locale_str:
+ print (" --locale \"%s\"" % locale_str).encode(encoding),
+ print
+ elif isinstance(entry, xdg.Menu.MenuEntry):
+ de = entry.DesktopEntry
+ name = de.getName() or entry.DesktopFileID
+ icon = find_icon(de) or default_entry_icon
+ execute = exec_clean2_re.sub('%', exec_clean1_re.sub('', de.getExec()))
+ if de.getTerminal(): execute = terminal % execute
+ print ("prog \"%s\" \"%s\" %s" % (name, icon, execute)).encode(encoding)
+
+try: opts, args = getopt.getopt(sys.argv[1:], "",
+ ("help", "version", "locale=",
+ "root-folder=", "terminal=", "default-folder-icon=",
+ "default-entry-icon=", "entire-menu", "theme=", "with-theme-paths",
+ "icon-size="))
+except getopt.GetoptError: print_usage()
+
+locale.setlocale(locale.LC_ALL, "")
+
+for o, v in opts:
+ if o == "--locale":
+ locale_str = v
+ locale.setlocale(locale.LC_ALL, locale_str)
+ if o == "--root-folder": root_folder = v
+ elif o == "--terminal": terminal = v
+ elif o == "--default-folder-icon": default_folder_icon = v
+ elif o == "--default-entry-icon": default_entry_icon = v
+ elif o == "--entire-menu" : entire_menu = True
+ elif o == "--with-theme-paths" : with_theme_paths = True
+ elif o == "--icon-size": icon_size = int(v)
+ elif o == "--theme" : xdg.Config.setIconTheme(v)
+ elif o in ("-h", "-?", "--help"): print_usage(0)
+ elif o in ("-v", "--version"): print_version()
+
+encoding = locale.getlocale()[1] or 'UTF-8'
+menu = xdg.Menu.parse()
+if root_folder: menu = menu.getMenu(root_folder)
+process_menu(menu)
diff --git a/x11-wm/icewm/icewm-1.3.10.ebuild b/x11-wm/icewm/icewm-1.3.10.ebuild
new file mode 100644
index 00000000000..0ea58766e11
--- /dev/null
+++ b/x11-wm/icewm/icewm-1.3.10.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils python-single-r1
+
+DESCRIPTION="Ice Window Manager with Themes"
+HOMEPAGE="http://www.icewm.org/ https://github.com/bbidulock/icewm"
+LICENSE="GPL-2"
+SRC_URI="http://github.com/bbidulock/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="bidi debug doc gnome minimal nls truetype uclibc xinerama"
+REQUIRED_USE="gnome? ( ${PYTHON_REQUIRED_USE} )"
+
+# Tests broken in all versions, patches welcome, bug #323907, #389533
+RESTRICT="test"
+
+#fix for icewm preversion package names
+S=${WORKDIR}/${P/_}
+
+RDEPEND="
+ media-libs/fontconfig
+ x11-libs/gdk-pixbuf:2[X]
+ x11-libs/libX11
+ x11-libs/libXrandr
+ x11-libs/libXext
+ x11-libs/libXpm
+ x11-libs/libXrender
+ x11-libs/libXft
+ x11-libs/libSM
+ x11-libs/libICE
+ xinerama? ( x11-libs/libXinerama )
+ bidi? ( dev-libs/fribidi )
+ gnome? (
+ ${PYTHON_DEPS}
+ dev-python/pyxdg
+ gnome-base/gnome-desktop:2
+ gnome-base/gnome-menus
+ gnome-base/libgnomeui )
+"
+DEPEND="${RDEPEND}
+ >=sys-apps/sed-4
+ x11-proto/xproto
+ x11-proto/xextproto
+ doc? ( app-text/linuxdoc-tools )
+ nls? ( >=sys-devel/gettext-0.19.2 )
+ truetype? ( >=media-libs/freetype-2.0.9 )
+ xinerama? ( x11-proto/xineramaproto )
+"
+
+pkg_setup() {
+ if use truetype && use minimal; then
+ ewarn "You have both 'truetype' and 'minimal' use flags enabled."
+ ewarn "If you really want a minimal install, you will have to turn off"
+ ewarn "the truetype flag for this package."
+ fi
+}
+
+PATCHES=(
+ # Fedora patches
+ "${FILESDIR}"/${PN}-1.3.10-menu.patch
+)
+
+src_prepare() {
+ epatch ${PATCHES[@]}
+
+ # Fix bug #486710
+ use uclibc && epatch "${FILESDIR}/${PN}-1.3.8-uclibc.patch"
+
+ if ! use doc ; then
+ sed '/^SUBDIRS =/s@ doc@@' -i Makefile.am || die
+ fi
+
+ eautoreconf
+}
+
+src_configure() {
+ if use truetype
+ then
+ myconf="${myconf} --enable-gradients --enable-shape --enable-shaped-decorations"
+ else
+ myconf="${myconf} --disable-xfreetype --enable-corefonts
+ $(use_enable minimal lite)"
+ fi
+
+ myconf="${myconf}
+ --with-libdir=/usr/share/icewm
+ --with-cfgdir=/etc/icewm
+ --with-docdir=/usr/share/doc/${PF}/html
+ $(use_enable bidi fribidi)
+ $(use_enable debug)
+ $(use_enable gnome menus-gnome2)
+ $(use_enable nls i18n)
+ $(use_enable nls)
+ $(use_enable xinerama)"
+
+ CXXFLAGS="${CXXFLAGS}" econf ${myconf}
+
+ sed -i "s:/icewm-\$(VERSION)::" src/Makefile || die "patch failed"
+ sed -i "s:ungif:gif:" src/Makefile || die "libungif fix failed"
+}
+
+src_install(){
+ default
+
+ if use gnome; then
+ dobin "${FILESDIR}"/icewm-xdg-menu
+ exeinto /usr/share/icewm/
+ newexe "${FILESDIR}"/icewm-startup startup
+ fi
+
+ dodoc AUTHORS BUGS CHANGES PLATFORMS README* TODO VERSION
+
+ if ! use doc ; then
+ dohtml -a html,sgml doc/*
+ cp doc/${PN}.man "${T}"/${PN}.1
+ doman "${T}"/${PN}.1
+ fi
+
+ exeinto /etc/X11/Sessions
+ doexe "${FILESDIR}/icewm"
+
+ insinto /usr/share/xsessions
+ doins "${FILESDIR}/IceWM.desktop"
+}
diff --git a/x11-wm/icewm/icewm-1.3.8.ebuild b/x11-wm/icewm/icewm-1.3.8.ebuild
new file mode 100644
index 00000000000..a884d32071d
--- /dev/null
+++ b/x11-wm/icewm/icewm-1.3.8.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils python-single-r1
+
+DESCRIPTION="Ice Window Manager with Themes"
+HOMEPAGE="http://www.icewm.org/"
+LICENSE="GPL-2"
+SRC_URI="mirror://sourceforge/${PN}/${P/_}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~alpha amd64 ppc ~ppc64 sparc x86"
+IUSE="bidi debug gnome minimal nls truetype uclibc xinerama"
+REQUIRED_USE="gnome? ( ${PYTHON_REQUIRED_USE} )"
+
+# Tests broken in all versions, patches welcome, bug #323907, #389533
+RESTRICT="test"
+
+#fix for icewm preversion package names
+S=${WORKDIR}/${P/_}
+
+RDEPEND="
+ x11-libs/gdk-pixbuf:2[X]
+ x11-libs/libX11
+ x11-libs/libXrandr
+ x11-libs/libXext
+ x11-libs/libXpm
+ x11-libs/libXrender
+ x11-libs/libXft
+ x11-libs/libSM
+ x11-libs/libICE
+ xinerama? ( x11-libs/libXinerama )
+ bidi? ( dev-libs/fribidi )
+ gnome? (
+ ${PYTHON_DEPS}
+ dev-python/pyxdg
+ gnome-base/gnome-desktop:2
+ gnome-base/gnome-menus
+ gnome-base/libgnomeui )
+ nls? ( sys-devel/gettext )
+ truetype? ( >=media-libs/freetype-2.0.9 )
+ media-libs/giflib
+"
+DEPEND="${RDEPEND}
+ x11-proto/xproto
+ x11-proto/xextproto
+ xinerama? ( x11-proto/xineramaproto )
+ >=sys-apps/sed-4
+"
+
+pkg_setup() {
+ if use truetype && use minimal; then
+ ewarn "You have both 'truetype' and 'minimal' use flags enabled."
+ ewarn "If you really want a minimal install, you will have to turn off"
+ ewarn "the truetype flag for this package."
+ fi
+}
+
+src_prepare() {
+ # Fedora patches
+ epatch "${FILESDIR}"/${PN}-1.3.8-menu.patch
+ epatch "${FILESDIR}"/${PN}-toolbar.patch
+ epatch "${FILESDIR}"/${PN}-keys.patch
+ epatch "${FILESDIR}"/${PN}-fribidi.patch
+ epatch "${FILESDIR}"/${PN}-1.3.7-dso.patch
+ epatch "${FILESDIR}"/${PN}-defaults.patch
+ epatch "${FILESDIR}"/${PN}-1.3.7-menuiconsize.patch
+ epatch "${FILESDIR}"/${PN}-1.3.8-deprecated.patch
+
+ epatch "${FILESDIR}"/${PN}-1.3.7-gcc44.patch
+
+ # Get thermal info from proper locations, bug #452730
+ epatch "${FILESDIR}"/${PN}-1.3.7-thermal.patch
+
+ # Debian patch fixing multiple build issues, like bug #470148
+ epatch "${FILESDIR}"/${PN}-1.3.8-build-fixes.patch
+
+ # Fix bug #486710
+ use uclibc && epatch "${FILESDIR}/${P}-uclibc.patch"
+
+ eautoreconf
+}
+
+src_configure() {
+ if use truetype
+ then
+ myconf="${myconf} --enable-gradients --enable-shape --enable-shaped-decorations"
+ else
+ myconf="${myconf} --disable-xfreetype --enable-corefonts
+ $(use_enable minimal lite)"
+ fi
+
+ myconf="${myconf}
+ --with-libdir=/usr/share/icewm
+ --with-cfgdir=/etc/icewm
+ --with-docdir=/usr/share/doc/${PF}/html
+ $(use_enable bidi fribidi)
+ $(use_enable debug)
+ $(use_enable gnome menus-gnome2)
+ $(use_enable nls i18n)
+ $(use_enable nls)
+ $(use_enable x86 x86-asm)
+ $(use_enable xinerama)
+ --without-esd-config"
+
+ CXXFLAGS="${CXXFLAGS}" econf ${myconf}
+
+ sed -i "s:/icewm-\$(VERSION)::" src/Makefile || die "patch failed"
+ sed -i "s:ungif:gif:" src/Makefile || die "libungif fix failed"
+}
+
+src_install(){
+ default
+
+ if use gnome; then
+ dobin "${FILESDIR}"/icewm-xdg-menu
+ exeinto /usr/share/icewm/
+ newexe "${FILESDIR}"/icewm-startup startup
+ fi
+
+ dodoc AUTHORS BUGS CHANGES PLATFORMS README* TODO VERSION
+ dohtml -a html,sgml doc/*
+
+ exeinto /etc/X11/Sessions
+ doexe "${FILESDIR}/icewm"
+
+ insinto /usr/share/xsessions
+ doins "${FILESDIR}/IceWM.desktop"
+}
diff --git a/x11-wm/icewm/icewm-1.3.9.ebuild b/x11-wm/icewm/icewm-1.3.9.ebuild
new file mode 100644
index 00000000000..eb3eaed9b85
--- /dev/null
+++ b/x11-wm/icewm/icewm-1.3.9.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils python-single-r1
+
+DESCRIPTION="Ice Window Manager with Themes"
+HOMEPAGE="http://www.icewm.org/ https://github.com/bbidulock/icewm"
+LICENSE="GPL-2"
+SRC_URI="http://github.com/bbidulock/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="bidi debug doc gnome minimal nls truetype uclibc xinerama"
+REQUIRED_USE="gnome? ( ${PYTHON_REQUIRED_USE} )"
+
+# Tests broken in all versions, patches welcome, bug #323907, #389533
+RESTRICT="test"
+
+#fix for icewm preversion package names
+S=${WORKDIR}/${P/_}
+
+RDEPEND="
+ media-libs/fontconfig
+ x11-libs/gdk-pixbuf:2[X]
+ x11-libs/libX11
+ x11-libs/libXrandr
+ x11-libs/libXext
+ x11-libs/libXpm
+ x11-libs/libXrender
+ x11-libs/libXft
+ x11-libs/libSM
+ x11-libs/libICE
+ xinerama? ( x11-libs/libXinerama )
+ bidi? ( dev-libs/fribidi )
+ gnome? (
+ ${PYTHON_DEPS}
+ dev-python/pyxdg
+ gnome-base/gnome-desktop:2
+ gnome-base/gnome-menus
+ gnome-base/libgnomeui )
+"
+DEPEND="${RDEPEND}
+ >=sys-apps/sed-4
+ x11-proto/xproto
+ x11-proto/xextproto
+ doc? ( app-text/linuxdoc-tools )
+ nls? ( >=sys-devel/gettext-0.19.2 )
+ truetype? ( >=media-libs/freetype-2.0.9 )
+ xinerama? ( x11-proto/xineramaproto )
+"
+
+pkg_setup() {
+ if use truetype && use minimal; then
+ ewarn "You have both 'truetype' and 'minimal' use flags enabled."
+ ewarn "If you really want a minimal install, you will have to turn off"
+ ewarn "the truetype flag for this package."
+ fi
+}
+
+PATCHES=(
+ # Fedora patches
+ "${FILESDIR}"/${PN}-1.3.8-menu.patch
+ "${FILESDIR}"/${PN}-1.3.9-fribidi.patch
+ "${FILESDIR}"/${PN}-1.3.8-deprecated.patch
+
+ # Debian patch fixing multiple build issues, like bug #470148
+ #"${FILESDIR}"/${PN}-1.3.8-build-fixes.patch
+)
+
+src_prepare() {
+ epatch ${PATCHES[@]}
+
+ # Fix bug #486710
+ use uclibc && epatch "${FILESDIR}/${PN}-1.3.8-uclibc.patch"
+
+ if ! use doc ; then
+ sed '/^SUBDIRS =/s@ doc@@' -i Makefile.am || die
+ fi
+
+ eautoreconf
+}
+
+src_configure() {
+ if use truetype
+ then
+ myconf="${myconf} --enable-gradients --enable-shape --enable-shaped-decorations"
+ else
+ myconf="${myconf} --disable-xfreetype --enable-corefonts
+ $(use_enable minimal lite)"
+ fi
+
+ myconf="${myconf}
+ --with-libdir=/usr/share/icewm
+ --with-cfgdir=/etc/icewm
+ --with-docdir=/usr/share/doc/${PF}/html
+ $(use_enable bidi fribidi)
+ $(use_enable debug)
+ $(use_enable gnome menus-gnome2)
+ $(use_enable nls i18n)
+ $(use_enable nls)
+ $(use_enable xinerama)"
+
+ CXXFLAGS="${CXXFLAGS}" econf ${myconf}
+
+ sed -i "s:/icewm-\$(VERSION)::" src/Makefile || die "patch failed"
+ sed -i "s:ungif:gif:" src/Makefile || die "libungif fix failed"
+}
+
+src_install(){
+ default
+
+ if use gnome; then
+ dobin "${FILESDIR}"/icewm-xdg-menu
+ exeinto /usr/share/icewm/
+ newexe "${FILESDIR}"/icewm-startup startup
+ fi
+
+ dodoc AUTHORS BUGS CHANGES PLATFORMS README* TODO VERSION
+
+ if ! use doc ; then
+ dohtml -a html,sgml doc/*
+ cp doc/${PN}.man "${T}"/${PN}.1
+ doman "${T}"/${PN}.1
+ fi
+
+ exeinto /etc/X11/Sessions
+ doexe "${FILESDIR}/icewm"
+
+ insinto /usr/share/xsessions
+ doins "${FILESDIR}/IceWM.desktop"
+}
diff --git a/x11-wm/icewm/metadata.xml b/x11-wm/icewm/metadata.xml
new file mode 100644
index 00000000000..175a10c99c1
--- /dev/null
+++ b/x11-wm/icewm/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+ <longdescription>
+ IceWM is a window manager designed for speed, usability, and consistency.
+ It is able to emulate the looks of Motif, OS/2, and Windows, and allows you
+ to have a customizable look using pixmaps.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">bbidulock/icewm</remote-id>
+ </upstream>
+</pkgmetadata>