summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatti Bickel <mabi@gentoo.org>2007-09-04 10:29:28 +0000
committerMatti Bickel <mabi@gentoo.org>2007-09-04 10:29:28 +0000
commitf463af4cece6ed8095ffa5c151a13820a5eb25e5 (patch)
treea890935c31e4490fc61d916056a812c167ac18ed /x11-wm/ion3
parentadding repo_name (bug #190167) (diff)
downloadmabi-f463af4cece6ed8095ffa5c151a13820a5eb25e5.tar.gz
mabi-f463af4cece6ed8095ffa5c151a13820a5eb25e5.tar.bz2
mabi-f463af4cece6ed8095ffa5c151a13820a5eb25e5.zip
version bump
svn path=/; revision=13
Diffstat (limited to 'x11-wm/ion3')
-rw-r--r--x11-wm/ion3/ChangeLog12
-rw-r--r--x11-wm/ion3/Manifest41
-rw-r--r--x11-wm/ion3/files/20070902/201_all_fix-paths.patch75
-rw-r--r--x11-wm/ion3/files/20070902/202_all_fix-menus.patch13
-rw-r--r--x11-wm/ion3/files/20070902/205_all_ion-lock.patch22
-rw-r--r--x11-wm/ion3/files/20070902/208_all_as-needed.patch12
-rw-r--r--x11-wm/ion3/files/digest-ion3-20070720-r16
-rw-r--r--x11-wm/ion3/files/digest-ion3-200709026
-rw-r--r--x11-wm/ion3/files/ion3-scripts-20070902.tar.bz2bin0 -> 103961 bytes
-rw-r--r--x11-wm/ion3/files/xft-ion3-20070902.patch669
-rw-r--r--x11-wm/ion3/ion3-20070902.ebuild200
11 files changed, 1052 insertions, 4 deletions
diff --git a/x11-wm/ion3/ChangeLog b/x11-wm/ion3/ChangeLog
index 7a03d13..42d93c8 100644
--- a/x11-wm/ion3/ChangeLog
+++ b/x11-wm/ion3/ChangeLog
@@ -2,6 +2,18 @@
# Copyright 2000-2007 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ChangeLog,v 1.55 2007/06/05 13:29:53 mabi Exp $
+*ion3-20070902 (04 September 2007)
+
+ 04 Sep 2007; Matti Bickel <mabi@gentoo.org>
+ -to much,
+ +files/ion3-scripts-2007092.tar.bz2,
+ +files/xft-ion3-20070902.patch,
+ +files/20070902/201_all_fix-paths.patch,
+ +files/20070902/202_all_fix-menus.patch,
+ +files/20070902/205_all_ion-lock.patch,
+ +files/20070902/208_all_as-needed.patch, +ion3-20070902.ebuild:
+ version bump.
+
17 Jul 2007; Matti Bickel <mabi@gentoo.org>
-ion3-20070720.ebuild,
+ion3-20070720-r1.ebuild:
diff --git a/x11-wm/ion3/Manifest b/x11-wm/ion3/Manifest
index f2ef6ec..42ca7b8 100644
--- a/x11-wm/ion3/Manifest
+++ b/x11-wm/ion3/Manifest
@@ -14,6 +14,22 @@ AUX 20070720/208_all_as-needed.patch 350 RMD160 d4a5d21442b8cdb618e116dd542389b2
MD5 477892385b4dd0708761fe54886459d7 files/20070720/208_all_as-needed.patch 350
RMD160 d4a5d21442b8cdb618e116dd542389b2c6a0d442 files/20070720/208_all_as-needed.patch 350
SHA256 0bedd444e6384f35f6b37c4ec2848150f25ae1d1b93fe5062934887786cba893 files/20070720/208_all_as-needed.patch 350
+AUX 20070902/201_all_fix-paths.patch 2197 RMD160 0b8e10fec59bc47421e1a03c912c94cde4442282 SHA1 77f8b846aec55e48fbffb71306458c75baf806a5 SHA256 b22f7202f51ff7a5a775ed6cfa2cced23716a9ec5bad29538eab6632748802b6
+MD5 b6a97e57804b8c383f41ef27662d4cdb files/20070902/201_all_fix-paths.patch 2197
+RMD160 0b8e10fec59bc47421e1a03c912c94cde4442282 files/20070902/201_all_fix-paths.patch 2197
+SHA256 b22f7202f51ff7a5a775ed6cfa2cced23716a9ec5bad29538eab6632748802b6 files/20070902/201_all_fix-paths.patch 2197
+AUX 20070902/202_all_fix-menus.patch 990 RMD160 a49c2e8c44c4c7ddceae989a0637cb4ca51647f4 SHA1 ef72a6d5b100c8148d96f6718bc95a456a3b51eb SHA256 2f9404a884e28f9d7ff42ba6ae24df99436b7a9f3c75560282fb87daa9fdf9af
+MD5 aecae9e8f4e48e9b74532a3309643598 files/20070902/202_all_fix-menus.patch 990
+RMD160 a49c2e8c44c4c7ddceae989a0637cb4ca51647f4 files/20070902/202_all_fix-menus.patch 990
+SHA256 2f9404a884e28f9d7ff42ba6ae24df99436b7a9f3c75560282fb87daa9fdf9af files/20070902/202_all_fix-menus.patch 990
+AUX 20070902/205_all_ion-lock.patch 780 RMD160 9834836d55fb390f06d8e3c1ea821ef01c1a74b8 SHA1 6bd0278dd7d56fd9f1025fae8a00db24bf0e781f SHA256 ea4ad810355fab8a848e6506a6a2762b5ab9c37f28a7edac73030e6026bc3fae
+MD5 4f2dcedcbf6d885723d1b888f0aacb87 files/20070902/205_all_ion-lock.patch 780
+RMD160 9834836d55fb390f06d8e3c1ea821ef01c1a74b8 files/20070902/205_all_ion-lock.patch 780
+SHA256 ea4ad810355fab8a848e6506a6a2762b5ab9c37f28a7edac73030e6026bc3fae files/20070902/205_all_ion-lock.patch 780
+AUX 20070902/208_all_as-needed.patch 350 RMD160 d4a5d21442b8cdb618e116dd542389b2c6a0d442 SHA1 2a59201ad480f35e7553c4bd470c696fc5dc0436 SHA256 0bedd444e6384f35f6b37c4ec2848150f25ae1d1b93fe5062934887786cba893
+MD5 477892385b4dd0708761fe54886459d7 files/20070902/208_all_as-needed.patch 350
+RMD160 d4a5d21442b8cdb618e116dd542389b2c6a0d442 files/20070902/208_all_as-needed.patch 350
+SHA256 0bedd444e6384f35f6b37c4ec2848150f25ae1d1b93fe5062934887786cba893 files/20070902/208_all_as-needed.patch 350
AUX ion3-mod-ionflux-20070512.tar.bz2 12770 RMD160 8e834de0c3048b676bc5c5d5454aedac09129eb3 SHA1 d482654557104adfbf6d184e44f87a993577720a SHA256 63c4902159923aa02921e39aa7746ca8819ba1c216efa8fa6384fd093f60d18c
MD5 c8c2d7b039f751db017275f5f977702e files/ion3-mod-ionflux-20070512.tar.bz2 12770
RMD160 8e834de0c3048b676bc5c5d5454aedac09129eb3 files/ion3-mod-ionflux-20070512.tar.bz2 12770
@@ -26,6 +42,10 @@ AUX ion3-scripts-20070708.tar.bz2 102282 RMD160 ec4b85a9362ed0ba0975eb9fef485277
MD5 0f4166b2330577eb60e7c3027a327c73 files/ion3-scripts-20070708.tar.bz2 102282
RMD160 ec4b85a9362ed0ba0975eb9fef48527775f8962f files/ion3-scripts-20070708.tar.bz2 102282
SHA256 c7f4410796ae559610499250bfee7d214b6248d334d08852e3f54f3d163dea3d files/ion3-scripts-20070708.tar.bz2 102282
+AUX ion3-scripts-20070902.tar.bz2 103961 RMD160 8a58bc09d81f13dd8b2df27662907ec793bccedf SHA1 bf61ce4f6c3e3634411fca4e09cabd73f051c975 SHA256 b8c1fc03257c2f347f186e33dea19d2a294e41560e703b63d8fe68db93ef5cac
+MD5 89855df8c92334f75dc7926c31e1db29 files/ion3-scripts-20070902.tar.bz2 103961
+RMD160 8a58bc09d81f13dd8b2df27662907ec793bccedf files/ion3-scripts-20070902.tar.bz2 103961
+SHA256 b8c1fc03257c2f347f186e33dea19d2a294e41560e703b63d8fe68db93ef5cac files/ion3-scripts-20070902.tar.bz2 103961
AUX ion3.desktop 217 RMD160 438917d6c0370e7a368598ea611ec7658312627d SHA1 cf5cd1f09faf7530f8cb2f832a17c0cf893541c4 SHA256 4742797e200b956abf3d0b94d860aa7430c9f67a97f3640ef2c28168fa773bb9
MD5 00450ed1292b72e2be71b9860c4db6ee files/ion3.desktop 217
RMD160 438917d6c0370e7a368598ea611ec7658312627d files/ion3.desktop 217
@@ -38,16 +58,26 @@ AUX xft-ion3-20070608.patch 18375 RMD160 2510ae25502346f0347eafce8a313aac4db2a36
MD5 68f3da20b45ec583347b5325d9062e19 files/xft-ion3-20070608.patch 18375
RMD160 2510ae25502346f0347eafce8a313aac4db2a36c files/xft-ion3-20070608.patch 18375
SHA256 1db26c1db08b9a87530ef29ad2538cf191bc5d08630cc776f1dbd61940eff21f files/xft-ion3-20070608.patch 18375
+AUX xft-ion3-20070902.patch 18375 RMD160 2510ae25502346f0347eafce8a313aac4db2a36c SHA1 ae75b297d6cf8c3f5dfd3793c22d754369f982bb SHA256 1db26c1db08b9a87530ef29ad2538cf191bc5d08630cc776f1dbd61940eff21f
+MD5 68f3da20b45ec583347b5325d9062e19 files/xft-ion3-20070902.patch 18375
+RMD160 2510ae25502346f0347eafce8a313aac4db2a36c files/xft-ion3-20070902.patch 18375
+SHA256 1db26c1db08b9a87530ef29ad2538cf191bc5d08630cc776f1dbd61940eff21f files/xft-ion3-20070902.patch 18375
DIST ion-3rc-20070720.tar.gz 655409 RMD160 a97944850d88b81dd20d234f3f114e9f3038d0b3 SHA1 583042c8c713d0e12146369d2775ae80d5f9be2d SHA256 c1d412444bbcbb541adab4efd9fecb131065f3c8c908b2fe9dd17707ac03df61
+DIST ion-3rc-20070902.tar.gz 655566 RMD160 abca8f424869cc78d8880c869981c796c8e7dd83 SHA1 24762d3677cc64754b4649d24c8fb17aa78156d2 SHA256 b42321986a84e16f95ad2e3d955749e0c3edaca0e7d202230c90fcdf5f064a18
DIST ion-doc-3rc-20070720.tar.gz 669878 RMD160 d485145fd8493bebe3c5076605c86d427c8105fb SHA1 0b600ec1d95fb87732d46757eb560c6d6214d150 SHA256 6da15a64ac01c0e1df0548214dfb3bc5874006f31a2c84fe160127829301dd99
+DIST ion-doc-3rc-20070902.tar.gz 670268 RMD160 9d561a72cfcdeab5f4e4af42cb8b5f7e233a8f05 SHA1 046cc879e7d17ec5893785eb06f618a8f26c5092 SHA256 a5f12b469c013c77dcc3c0a9d56f02009f974cb6f9b3b15bdda2b826145ed585
EBUILD ion3-20070720-r1.ebuild 5446 RMD160 52e2858870fc7c9a089be4a13e59076ac8d4b586 SHA1 5bff7cb1d6cdf57fdf8e4cdde07e05b45659eaa8 SHA256 aeb691c48baf838191a4faa08462b2fea37bdb9bf9ccd74293bb7cd089844615
MD5 223dfa52c975c17198645b03d48ea0c2 ion3-20070720-r1.ebuild 5446
RMD160 52e2858870fc7c9a089be4a13e59076ac8d4b586 ion3-20070720-r1.ebuild 5446
SHA256 aeb691c48baf838191a4faa08462b2fea37bdb9bf9ccd74293bb7cd089844615 ion3-20070720-r1.ebuild 5446
-MISC ChangeLog 11171 RMD160 76f86e4b5d4ae60a3cf9bb8282bb226404058700 SHA1 ce71d65625a2ecfad87c75bc5128d01a432c6672 SHA256 f69000c02d84e7f7cfa863c179fc01b20ec51a79492c5f3ffcc370c6cfead637
-MD5 ea907c75958c0a3358bc80a72f66e92b ChangeLog 11171
-RMD160 76f86e4b5d4ae60a3cf9bb8282bb226404058700 ChangeLog 11171
-SHA256 f69000c02d84e7f7cfa863c179fc01b20ec51a79492c5f3ffcc370c6cfead637 ChangeLog 11171
+EBUILD ion3-20070902.ebuild 5446 RMD160 4ccd24893ff1efb89b7cb702861a9ca9128def3a SHA1 4de829a55b09c2d281081294b93a0372d29ec512 SHA256 18bac5e9e2ffab81b570a05770a073b2d9197f236238bb3e83fc8adb46831466
+MD5 f946b3f4bfeb6283ed4dff1247d27e01 ion3-20070902.ebuild 5446
+RMD160 4ccd24893ff1efb89b7cb702861a9ca9128def3a ion3-20070902.ebuild 5446
+SHA256 18bac5e9e2ffab81b570a05770a073b2d9197f236238bb3e83fc8adb46831466 ion3-20070902.ebuild 5446
+MISC ChangeLog 11549 RMD160 1cc7b7a51a33647c53a84940a6d62c67f8ad02de SHA1 6ad4954e77aadd9ec193d143a7995639a6c2fe55 SHA256 77a065d1017f06d5c768dca7c352d004c9760369a7e83748e72c496004d58369
+MD5 e64bb33e131a56fb302e29c940e61b05 ChangeLog 11549
+RMD160 1cc7b7a51a33647c53a84940a6d62c67f8ad02de ChangeLog 11549
+SHA256 77a065d1017f06d5c768dca7c352d004c9760369a7e83748e72c496004d58369 ChangeLog 11549
MISC metadata.xml 248 RMD160 7e7a4fe276728c6c4d6d0face7f0708dae9776d7 SHA1 b16dc683091d4a7cee7f9b8a6d6034a257df80b0 SHA256 3f6027d293a7bd953fd444ba8a1345ca6b9c00c28b35e8328386b9635d8eb71f
MD5 c4aada614ade13541606f0901dffd61f metadata.xml 248
RMD160 7e7a4fe276728c6c4d6d0face7f0708dae9776d7 metadata.xml 248
@@ -55,3 +85,6 @@ SHA256 3f6027d293a7bd953fd444ba8a1345ca6b9c00c28b35e8328386b9635d8eb71f metadata
MD5 3a5a7bfbd608419f59019b16bd135cdf files/digest-ion3-20070720-r1 512
RMD160 13d7dbaadb91e61680eaa0c870230f21c99d5dd6 files/digest-ion3-20070720-r1 512
SHA256 c94d9a2728ff29b461dc7a66249ffe3eb88fd9ec3d5d6a92dd88aa6744debb65 files/digest-ion3-20070720-r1 512
+MD5 4773fc3748eefe0a68234b715dea1b78 files/digest-ion3-20070902 512
+RMD160 09ea1732091be54936155c6704ee394748fea406 files/digest-ion3-20070902 512
+SHA256 5b3c0bc831a227e98d05cf05a137af586d38a245f38a65b7e04963afccd83734 files/digest-ion3-20070902 512
diff --git a/x11-wm/ion3/files/20070902/201_all_fix-paths.patch b/x11-wm/ion3/files/20070902/201_all_fix-paths.patch
new file mode 100644
index 0000000..cb27bfc
--- /dev/null
+++ b/x11-wm/ion3/files/20070902/201_all_fix-paths.patch
@@ -0,0 +1,75 @@
+--- ion-3rc-20070708.orig/system.mk 2007-07-14 12:40:45.000000000 +0200
++++ ion-3rc-20070708/system.mk 2007-07-14 15:54:39.000000000 +0200
+@@ -7,7 +7,7 @@
+ ## Installation paths
+ ##
+
+-PREFIX=/usr/local
++PREFIX=/usr
+
+ # Unless you are creating a package conforming to some OS's standards, you
+ # probably do not want to modify the following directories:
+@@ -15,7 +15,7 @@
+ # Main binaries
+ BINDIR=$(PREFIX)/bin
+ # Configuration .lua files
+-ETCDIR=$(PREFIX)/etc/ion3
++ETCDIR=/etc/X11/ion3
+ # Some .lua files and ion-* shell scripts
+ SHAREDIR=$(PREFIX)/share/ion3
+ # Manual pages
+@@ -56,18 +56,18 @@
+
+ # If you have installed Lua 5.1 from the official tarball without changing
+ # paths, this should do it.
+-LUA_DIR=/usr/local
+-LUA_LIBS = -L$(LUA_DIR)/lib -llua
+-LUA_INCLUDES = -I$(LUA_DIR)/include
+-LUA=$(LUA_DIR)/bin/lua
+-LUAC=$(LUA_DIR)/bin/luac
++#LUA_DIR=/usr/local
++#LUA_LIBS = -L$(LUA_DIR)/lib -llua
++#LUA_INCLUDES = -I$(LUA_DIR)/include
++#LUA=$(LUA_DIR)/bin/lua
++#LUAC=$(LUA_DIR)/bin/luac
+
+ # If you are using the Debian packages, the following settings should be
+ # what you want.
+-#LUA_LIBS=`pkg-config --libs lua5.1`
+-#LUA_INCLUDES=`pkg-config --cflags lua5.1`
+-#LUA=/usr/bin/lua5.1
+-#LUAC=/usr/bin/luac5.1
++LUA_LIBS=`pkg-config --libs lua`
++LUA_INCLUDES=`pkg-config --cflags lua`
++LUA=/usr/bin/lua
++LUAC=/usr/bin/luac
+
+
+ ##
+@@ -104,7 +104,7 @@
+ # asprintf and vasprintf in the c library. (gnu libc has.)
+ # If HAS_SYSTEM_ASPRINTF is not defined, an implementation
+ # in sprintf_2.2/ is used.
+-#HAS_SYSTEM_ASPRINTF=1
++HAS_SYSTEM_ASPRINTF=1
+
+ # If you're on an archaic system (such as relatively recent *BSD releases)
+ # without even dummy multibyte/widechar and localisation support, you may
+@@ -143,14 +143,14 @@
+
+ #C89_SOURCE=-ansi
+
+-#POSIX_SOURCE=-D_POSIX_C_SOURCE=200112L
++POSIX_SOURCE=-D_POSIX_C_SOURCE=200112L
+
+ # Most systems
+-#XOPEN_SOURCE=-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED
++XOPEN_SOURCE=-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED
+ # SunOS, (Irix)
+ #XOPEN_SOURCE=-D__EXTENSIONS__
+
+-#C99_SOURCE=-std=c99 -DCF_HAS_VA_COPY
++C99_SOURCE=-std=c99 -DCF_HAS_VA_COPY
+
+ # The -DCF_HAS_VA_COPY option should allow for some optimisations, and
+ # in some cases simply defining
diff --git a/x11-wm/ion3/files/20070902/202_all_fix-menus.patch b/x11-wm/ion3/files/20070902/202_all_fix-menus.patch
new file mode 100644
index 0000000..c2d77c8
--- /dev/null
+++ b/x11-wm/ion3/files/20070902/202_all_fix-menus.patch
@@ -0,0 +1,13 @@
+diff -Naur ../work/ion-3ds-20061223/etc/cfg_ioncore.lua ion-3ds-20061223/etc/cfg_ioncore.lua
+--- ../work/ion-3ds-20061223/etc/cfg_ioncore.lua 2006-12-23 17:59:43.000000000 +0300
++++ ion-3ds-20061223/etc/cfg_ioncore.lua 2006-12-31 15:35:59.000000000 +0300
+@@ -331,7 +331,8 @@
+ defmenu("mainmenu", {
+ menuentry("Run...", "mod_query.query_exec(_)"),
+ menuentry("Terminal", "ioncore.exec_on(_, XTERM or 'xterm')"),
+- menuentry("Lock screen", "ioncore.exec_on(_, 'xlock')"),
++ menuentry("Lock screen",
++ "ioncore.exec_on(_, ioncore.lookup_script('ion-lock'))"),
+ menuentry("Help", "mod_query.query_man(_)"),
+ menuentry("About Ion", "mod_query.show_about_ion(_)"),
+ submenu("Styles", "stylemenu"),
diff --git a/x11-wm/ion3/files/20070902/205_all_ion-lock.patch b/x11-wm/ion3/files/20070902/205_all_ion-lock.patch
new file mode 100644
index 0000000..dda2016
--- /dev/null
+++ b/x11-wm/ion3/files/20070902/205_all_ion-lock.patch
@@ -0,0 +1,22 @@
+diff -Nur ion3-20050322.orig/utils/Makefile ion3-20050322/utils/Makefile
+--- ion3-20050322.orig/utils/Makefile 2005-03-22 14:31:06.000000000 +0000
++++ ion3-20050322/utils/Makefile 2005-03-22 16:29:37.197355881 +0000
+@@ -11,7 +11,7 @@
+ SUBDIRS=ion-completefile
+ INSTALL_SUBDIRS=$(SUBDIRS)
+
+-SHELLSCRIPTS = ion-runinxterm ion-completeman
++SHELLSCRIPTS = ion-runinxterm ion-completeman ion-lock
+
+ TARGETS = ion-completeman
+
+diff -Nur ion3-20050322.orig/utils/ion-lock ion3-20050322/utils/ion-lock
+--- ion3-20050322.orig/utils/ion-lock 1970-01-01 00:00:00.000000000 +0000
++++ ion3-20050322/utils/ion-lock 2005-03-22 16:29:19.550092305 +0000
+@@ -0,0 +1,6 @@
++#!/bin/sh
++if xscreensaver-command -version >/dev/null 2>&1; then
++ exec xscreensaver-command -lock
++else
++ exec xlock
++fi
diff --git a/x11-wm/ion3/files/20070902/208_all_as-needed.patch b/x11-wm/ion3/files/20070902/208_all_as-needed.patch
new file mode 100644
index 0000000..662a078
--- /dev/null
+++ b/x11-wm/ion3/files/20070902/208_all_as-needed.patch
@@ -0,0 +1,12 @@
+diff -uNr ion-3ds-20070318.orig/de/Makefile ion-3ds-20070318/de/Makefile
+--- ion-3ds-20070318.orig/de/Makefile 2007-03-18 21:31:37.000000000 +0100
++++ ion-3ds-20070318/de/Makefile 2007-04-30 17:30:23.000000000 +0200
+@@ -17,6 +17,8 @@
+
+ MAKE_EXPORTS=de
+
++LDFLAGS+=-lXext
++
+ ######################################
+
+ include $(TOPDIR)/build/rules.mk
diff --git a/x11-wm/ion3/files/digest-ion3-20070720-r1 b/x11-wm/ion3/files/digest-ion3-20070720-r1
new file mode 100644
index 0000000..cfd9c1a
--- /dev/null
+++ b/x11-wm/ion3/files/digest-ion3-20070720-r1
@@ -0,0 +1,6 @@
+MD5 cef18d7a4aa476b400ecf722c57f6e6a ion-3rc-20070720.tar.gz 655409
+RMD160 a97944850d88b81dd20d234f3f114e9f3038d0b3 ion-3rc-20070720.tar.gz 655409
+SHA256 c1d412444bbcbb541adab4efd9fecb131065f3c8c908b2fe9dd17707ac03df61 ion-3rc-20070720.tar.gz 655409
+MD5 27f2d86dda6f9afc9e7c439d85427cd0 ion-doc-3rc-20070720.tar.gz 669878
+RMD160 d485145fd8493bebe3c5076605c86d427c8105fb ion-doc-3rc-20070720.tar.gz 669878
+SHA256 6da15a64ac01c0e1df0548214dfb3bc5874006f31a2c84fe160127829301dd99 ion-doc-3rc-20070720.tar.gz 669878
diff --git a/x11-wm/ion3/files/digest-ion3-20070902 b/x11-wm/ion3/files/digest-ion3-20070902
new file mode 100644
index 0000000..6827700
--- /dev/null
+++ b/x11-wm/ion3/files/digest-ion3-20070902
@@ -0,0 +1,6 @@
+MD5 cdaff06fd9519c593f898a81ce01b5f9 ion-3rc-20070902.tar.gz 655566
+RMD160 abca8f424869cc78d8880c869981c796c8e7dd83 ion-3rc-20070902.tar.gz 655566
+SHA256 b42321986a84e16f95ad2e3d955749e0c3edaca0e7d202230c90fcdf5f064a18 ion-3rc-20070902.tar.gz 655566
+MD5 24c60a4a2d4eeb554dc8a3d76a9c637d ion-doc-3rc-20070902.tar.gz 670268
+RMD160 9d561a72cfcdeab5f4e4af42cb8b5f7e233a8f05 ion-doc-3rc-20070902.tar.gz 670268
+SHA256 a5f12b469c013c77dcc3c0a9d56f02009f974cb6f9b3b15bdda2b826145ed585 ion-doc-3rc-20070902.tar.gz 670268
diff --git a/x11-wm/ion3/files/ion3-scripts-20070902.tar.bz2 b/x11-wm/ion3/files/ion3-scripts-20070902.tar.bz2
new file mode 100644
index 0000000..b54ad56
--- /dev/null
+++ b/x11-wm/ion3/files/ion3-scripts-20070902.tar.bz2
Binary files differ
diff --git a/x11-wm/ion3/files/xft-ion3-20070902.patch b/x11-wm/ion3/files/xft-ion3-20070902.patch
new file mode 100644
index 0000000..0cff558
--- /dev/null
+++ b/x11-wm/ion3/files/xft-ion3-20070902.patch
@@ -0,0 +1,669 @@
+diff -Naur ../work/ion-3/de/brush.c ion-3ds-20070203/de/brush.c
+--- ../work/ion-3/de/brush.c 2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/brush.c 2007-02-21 13:11:57.000000000 +0300
+@@ -47,6 +47,9 @@
+
+ gr_stylespec_init(&brush->current_attr);
+
++#ifdef XFT
++ brush->draw=NULL;
++#endif /* XFT */
+ style->usecount++;
+
+ if(!grbrush_init(&(brush->grbrush))){
+@@ -127,6 +130,10 @@
+ {
+ destyle_unref(brush->d);
+ brush->d=NULL;
++#ifdef XFT
++ if(brush->draw!=NULL)
++ XftDrawDestroy(brush->draw);
++#endif /* XFT */
+ gr_stylespec_unalloc(&brush->current_attr);
+ grbrush_deinit(&(brush->grbrush));
+ }
+@@ -138,6 +145,21 @@
+ }
+
+
++#ifdef XFT
++XftDraw *debrush_get_draw(DEBrush *brush, Drawable d)
++{
++ if(brush->draw==NULL)
++ brush->draw=XftDrawCreate(ioncore_g.dpy, d,
++ XftDEDefaultVisual(),
++ DefaultColormap(ioncore_g.dpy,
++ 0));
++ else
++ XftDrawChange(brush->draw, d);
++
++ return brush->draw;
++}
++#endif
++
+ /*}}}*/
+
+
+diff -Naur ../work/ion-3/de/brush.h ion-3ds-20070203/de/brush.h
+--- ../work/ion-3/de/brush.h 2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/brush.h 2007-02-21 13:11:57.000000000 +0300
+@@ -17,6 +17,9 @@
+ #include <ioncore/common.h>
+ #include <ioncore/gr.h>
+ #include <ioncore/rectangle.h>
++#ifdef XFT
++#include <X11/Xft/Xft.h>
++#endif /* XFT */
+
+ INTRCLASS(DEBrush);
+
+@@ -36,6 +39,9 @@
+ DECLCLASS(DEBrush){
+ GrBrush grbrush;
+ DEStyle *d;
++#ifdef XFT
++ XftDraw *draw;
++#endif
+ DEBrushExtrasFn *extras_fn;
+ int indicator_w;
+ Window win;
+@@ -111,5 +117,8 @@
+ extern void debrush_fill_area(DEBrush *brush, const WRectangle *geom);
+ extern void debrush_clear_area(DEBrush *brush, const WRectangle *geom);
+
++#ifdef XFT
++XftDraw *debrush_get_draw(DEBrush *brush, Drawable d);
++#endif
+
+ #endif /* ION_DE_BRUSH_H */
+diff -Naur ../work/ion-3/de/colour.c ion-3ds-20070203/de/colour.c
+--- ../work/ion-3/de/colour.c 2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/colour.c 2007-02-21 13:11:57.000000000 +0300
+@@ -15,9 +15,21 @@
+
+ bool de_alloc_colour(WRootWin *rootwin, DEColour *ret, const char *name)
+ {
++#ifndef XFT
+ XColor c;
+ bool ok=FALSE;
++#else /* XFT */
++ if(name==NULL)
++ return FALSE;
++ return XftColorAllocName(
++ ioncore_g.dpy,
++ XftDEDefaultVisual(),
++ rootwin->default_cmap,
++ name,
++ ret);
++#endif /* XFT */
+
++#ifndef XFT
+ if(name==NULL)
+ return FALSE;
+
+@@ -28,11 +40,13 @@
+ }
+
+ return ok;
++#endif /* ! XFT */
+ }
+
+
+ bool de_duplicate_colour(WRootWin *rootwin, DEColour in, DEColour *out)
+ {
++#ifndef XFT
+ XColor c;
+ c.pixel=in;
+ XQueryColor(ioncore_g.dpy, rootwin->default_cmap, &c);
+@@ -41,11 +55,20 @@
+ return TRUE;
+ }
+ return FALSE;
++#else /* XFT */
++ return XftColorAllocName(
++ ioncore_g.dpy,
++ XftDEDefaultVisual(),
++ rootwin->default_cmap,
++ &(in.color),
++ out);
++#endif /* XFT */
+ }
+
+
+ void de_free_colour_group(WRootWin *rootwin, DEColourGroup *cg)
+ {
++#ifndef XFT
+ DEColour pixels[5];
+
+ pixels[0]=cg->bg;
+@@ -57,15 +80,26 @@
+ XFreeColors(ioncore_g.dpy, rootwin->default_cmap, pixels, 5, 0);
+
+ gr_stylespec_unalloc(&cg->spec);
++#else /* XFT */
++ de_free_colour(rootwin, cg->bg);
++ de_free_colour(rootwin, cg->fg);
++ de_free_colour(rootwin, cg->hl);
++ de_free_colour(rootwin, cg->sh);
++ de_free_colour(rootwin, cg->pad);
++#endif /* XFT */
+ }
+
+
+ void de_free_colour(WRootWin *rootwin, DEColour col)
+ {
++#ifndef XFT
+ DEColour pixels[1];
+
+ pixels[0]=col;
+
+ XFreeColors(ioncore_g.dpy, rootwin->default_cmap, pixels, 1, 0);
++#else /* XFT */
++ XftColorFree(ioncore_g.dpy, XftDEDefaultVisual(), rootwin->default_cmap, &col);
++#endif /* XFT */
+ }
+
+diff -Naur ../work/ion-3/de/colour.h ion-3ds-20070203/de/colour.h
+--- ../work/ion-3/de/colour.h 2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/colour.h 2007-02-21 13:11:57.000000000 +0300
+@@ -15,12 +15,19 @@
+ #include <ioncore/common.h>
+ #include <ioncore/global.h>
+ #include <ioncore/rootwin.h>
++#ifdef XFT
++#include <X11/Xft/Xft.h>
++#endif /* XFT */
+
+
+ INTRSTRUCT(DEColourGroup);
+
+
++#ifndef XFT
+ typedef unsigned long DEColour;
++#else /* XFT */
++typedef XftColor DEColour;
++#endif /* XFT */
+
+
+ DECLSTRUCT(DEColourGroup){
+@@ -37,5 +44,6 @@
+ bool de_duplicate_colour(WRootWin *rootwin, DEColour in, DEColour *out);
+ void de_free_colour_group(WRootWin *rootwin, DEColourGroup *cg);
+ void de_free_colour(WRootWin *rootwin, DEColour col);
++#define XftDEDefaultVisual() DefaultVisual(ioncore_g.dpy, 0)
+
+ #endif /* ION_DE_COLOUR_H */
+diff -Naur ../work/ion-3/de/draw.c ion-3ds-20070203/de/draw.c
+--- ../work/ion-3/de/draw.c 2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/draw.c 2007-02-21 13:11:57.000000000 +0300
+@@ -22,6 +22,14 @@
+ #include <X11/extensions/shape.h>
+
+
++#ifndef XFT
++#define PIXEL(x) x
++#else /* XFT */
++#define PIXEL(x) x.pixel
++#endif /* XFT */
++
++
++
+ /*{{{ Colour group lookup */
+
+
+@@ -86,8 +94,7 @@
+ w--;
+ h--;
+
+- XSetForeground(ioncore_g.dpy, gc, tlc);
+-
++ XSetForeground(ioncore_g.dpy, gc, PIXEL(tlc));
+
+ a=(br!=0);
+ b=0;
+@@ -104,9 +111,8 @@
+
+ XDrawLines(ioncore_g.dpy, win, gc, points, 3, CoordModeOrigin);
+ }
+-
+
+- XSetForeground(ioncore_g.dpy, gc, brc);
++ XSetForeground(ioncore_g.dpy, gc, PIXEL(brc));
+
+ a=(tl!=0);
+ b=0;
+@@ -143,23 +143,23 @@
+ GrBorderLine line)
+ {
+ if(line==GR_BORDERLINE_LEFT && geom->h>0 && tl>0){
+- XSetForeground(ioncore_g.dpy, gc, tlc);
+- XSetBackground(ioncore_g.dpy, gc, tlc);
++ XSetForeground(ioncore_g.dpy, gc, PIXEL(tlc));
++ XSetBackground(ioncore_g.dpy, gc, PIXEL(tlc));
+ XFillRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y, tl, geom->h);
+ geom->x+=tl;
+ }else if(line==GR_BORDERLINE_TOP && geom->w>0 && tl>0){
+- XSetForeground(ioncore_g.dpy, gc, tlc);
+- XSetBackground(ioncore_g.dpy, gc, tlc);
++ XSetForeground(ioncore_g.dpy, gc, PIXEL(tlc));
++ XSetBackground(ioncore_g.dpy, gc, PIXEL(tlc));
+ XFillRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y, geom->w, tl);
+ geom->y+=tl;
+ }else if(line==GR_BORDERLINE_RIGHT && geom->h>0 && br>0){
+- XSetForeground(ioncore_g.dpy, gc, brc);
+- XSetBackground(ioncore_g.dpy, gc, brc);
++ XSetForeground(ioncore_g.dpy, gc, PIXEL(brc));
++ XSetBackground(ioncore_g.dpy, gc, PIXEL(brc));
+ XFillRectangle(ioncore_g.dpy, win, gc, geom->x+geom->w-br, geom->y, br, geom->h);
+ geom->w-=br;
+ }else if(line==GR_BORDERLINE_BOTTOM && geom->w>0 && br>0){
+- XSetForeground(ioncore_g.dpy, gc, brc);
+- XSetBackground(ioncore_g.dpy, gc, brc);
++ XSetForeground(ioncore_g.dpy, gc, PIXEL(brc));
++ XSetBackground(ioncore_g.dpy, gc, PIXEL(brc));
+ XFillRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y+geom->h-br, geom->w, br);
+ geom->h-=br;
+ }
+@@ -293,7 +299,7 @@
+ }
+
+ if(ISSET(a2, GR_ATTR(tagged)) || ISSET(a1, GR_ATTR(tagged))){
+- XSetForeground(ioncore_g.dpy, d->copy_gc, cg->fg);
++ XSetForeground(ioncore_g.dpy, d->copy_gc, PIXEL(cg->fg));
+
+ copy_masked(brush, d->tag_pixmap, brush->win, 0, 0,
+ d->tag_pixmap_w, d->tag_pixmap_h,
+@@ -348,7 +354,7 @@
+ GC gc=brush->d->normal_gc;
+
+ if(TRUE/*needfill*/){
+- XSetForeground(ioncore_g.dpy, gc, cg->bg);
++ XSetForeground(ioncore_g.dpy, gc, PIXEL(cg->bg));
+ XFillRectangle(ioncore_g.dpy, brush->win, gc, geom->x, geom->y,
+ geom->w, geom->h);
+ }
+@@ -513,7 +519,7 @@
+ attr.background_pixmap=ParentRelative;
+ }else{
+ attrflags=CWBackPixel;
+- attr.background_pixel=brush->d->cgrp.bg;
++ attr.background_pixel=brush->d->PIXEL(cgrp.bg);
+ }
+
+ XChangeWindowAttributes(ioncore_g.dpy, brush->win, attrflags, &attr);
+@@ -529,7 +535,7 @@
+ if(cg==NULL)
+ return;
+
+- XSetForeground(ioncore_g.dpy, gc, cg->bg);
++ XSetForeground(ioncore_g.dpy, gc, PIXEL(cg->bg));
+ XFillRectangle(ioncore_g.dpy, brush->win, gc,
+ geom->x, geom->y, geom->w, geom->h);
+ }
+diff -Naur ../work/ion-3/de/font.c ion-3ds-20070203/de/font.c
+--- ../work/ion-3/de/font.c 2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/font.c 2007-02-21 13:11:57.000000000 +0300
+@@ -14,7 +14,9 @@
+ #include <libtu/objp.h>
+ #include <ioncore/common.h>
+ #include "font.h"
++#ifndef XFT
+ #include "fontset.h"
++#endif /* ! XFT */
+ #include "brush.h"
+
+
+@@ -26,6 +28,9 @@
+
+ DEFont *de_load_font(const char *fontname)
+ {
++#ifdef XFT
++ XftFont *font;
++#endif
+ DEFont *fnt;
+ XFontSet fontset=NULL;
+ XFontStruct *fontstruct=NULL;
+@@ -40,6 +45,7 @@
+ }
+ }
+
++#ifndef XFT
+ if(ioncore_g.use_mb){
+ fontset=de_create_font_set(fontname);
+ if(fontset!=NULL){
+@@ -66,13 +72,34 @@
+ return NULL;
+ }
+
++#else /* XFT */
++ if(strncmp(fontname, "xft:", 4)==0){
++ font=XftFontOpenName(ioncore_g.dpy, DefaultScreen(ioncore_g.dpy),
++ fontname+4);
++ }else{
++ font=XftFontOpenXlfd(ioncore_g.dpy, DefaultScreen(ioncore_g.dpy), fontname);
++ }
++
++ if(font==NULL){
++ if(strcmp(fontname, CF_FALLBACK_FONT_NAME)!=0){
++ warn(TR("Could not load font \"%s\", trying \"%s\""),
++ fontname, CF_FALLBACK_FONT_NAME);
++ return de_load_font(CF_FALLBACK_FONT_NAME);
++ }
++ return NULL;
++ }
++#endif /* XFT */
+ fnt=ALLOC(DEFont);
+
+ if(fnt==NULL)
+ return NULL;
+
++#ifndef XFT
+ fnt->fontset=fontset;
+ fnt->fontstruct=fontstruct;
++#else
++ fnt->font=font;
++#endif
+ fnt->pattern=scopy(fontname);
+ fnt->next=NULL;
+ fnt->prev=NULL;
+@@ -92,11 +119,13 @@
+ style->font=font;
+ font->refcount++;
+
++#ifndef XFT
+ if(style->font->fontstruct!=NULL){
+ XSetFont(ioncore_g.dpy, style->normal_gc,
+ style->font->fontstruct->fid);
+ }
+
++#endif /* ! XFT */
+ return TRUE;
+ }
+
+@@ -111,11 +140,13 @@
+ if(style->font==NULL)
+ return FALSE;
+
++#ifndef XFT
+ if(style->font->fontstruct!=NULL){
+ XSetFont(ioncore_g.dpy, style->normal_gc,
+ style->font->fontstruct->fid);
+ }
+
++#endif /* ! XFT */
+ return TRUE;
+ }
+
+@@ -125,10 +156,15 @@
+ if(--font->refcount!=0)
+ return;
+
++#ifndef XFT
+ if(font->fontset!=NULL)
+ XFreeFontSet(ioncore_g.dpy, font->fontset);
+ if(font->fontstruct!=NULL)
+ XFreeFont(ioncore_g.dpy, font->fontstruct);
++#else /* XFT */
++ if(font->font!=NULL)
++ XftFontClose(ioncore_g.dpy, font->font);
++#endif /* XFT */
+ if(font->pattern!=NULL)
+ free(font->pattern);
+
+@@ -156,6 +192,7 @@
+
+ void defont_get_font_extents(DEFont *font, GrFontExtents *fnte)
+ {
++#ifndef XFT
+ if(font->fontset!=NULL){
+ XFontSetExtents *ext=XExtentsOfFontSet(font->fontset);
+ if(ext==NULL)
+@@ -171,7 +208,14 @@
+ fnte->baseline=fnt->ascent;
+ return;
+ }
+-
++#else /* XFT */
++ if(font->font!=NULL){
++ fnte->max_height=font->font->ascent+font->font->descent;
++ fnte->max_width=font->font->max_advance_width;
++ fnte->baseline=font->font->ascent;
++ return;
++ }
++#endif /* XFT */
+ fail:
+ DE_RESET_FONT_EXTENTS(fnte);
+ }
+@@ -188,20 +232,35 @@
+
+ uint defont_get_text_width(DEFont *font, const char *text, uint len)
+ {
++#ifndef XFT
+ if(font->fontset!=NULL){
+ XRectangle lext;
+ #ifdef CF_DE_USE_XUTF8
+- if(ioncore_g.enc_utf8)
+- Xutf8TextExtents(font->fontset, text, len, NULL, &lext);
+- else
++ if(ioncore_g.enc_utf8)
++ Xutf8TextExtents(font->fontset, text, len, NULL, &lext);
++ else
+ #endif
+- XmbTextExtents(font->fontset, text, len, NULL, &lext);
+- return lext.width;
++ XmbTextExtents(font->fontset, text, len, NULL, &lext);
++ return lext.width;
+ }else if(font->fontstruct!=NULL){
+ return XTextWidth(font->fontstruct, text, len);
+ }else{
+ return 0;
+ }
++#else /* XFT */
++ if(font->font!=NULL){
++ XGlyphInfo extents;
++ if(ioncore_g.enc_utf8)
++ XftTextExtentsUtf8(ioncore_g.dpy, font->font, (XftChar8 *)text, len,
++ &extents);
++ else
++ XftTextExtents8(ioncore_g.dpy, font->font, (XftChar8 *)text, len,
++ &extents);
++ return extents.xOff;
++ }else{
++ return 0;
++ }
++#endif /* XFT */
+ }
+
+
+@@ -211,6 +270,7 @@
+ /*{{{ String drawing */
+
+
++#ifndef XFT
+ void debrush_do_draw_string_default(DEBrush *brush, int x, int y,
+ const char *str, int len, bool needfill,
+ DEColourGroup *colours)
+@@ -256,6 +316,41 @@
+ }
+ }
+
++#else /* XFT */
++void debrush_do_draw_string_default(DEBrush *brush,
++ int x, int y, const char *str,
++ int len, bool needfill,
++ DEColourGroup *colours)
++{
++ Window win = brush->win;
++ GC gc=brush->d->normal_gc;
++ XftDraw *draw;
++ XftFont *font;
++
++ if(brush->d->font==NULL)
++ return;
++
++ font=brush->d->font->font;
++ draw=debrush_get_draw(brush, win);
++
++ if(needfill){
++ XGlyphInfo extents;
++ if(ioncore_g.enc_utf8)
++ XftTextExtentsUtf8(ioncore_g.dpy, font, (XftChar8 *)str, len,
++ &extents);
++ else
++ XftTextExtents8(ioncore_g.dpy, font, (XftChar8 *)str, len, &extents);
++ XftDrawRect(draw, &(colours->bg), x-extents.x, y-extents.y,
++ extents.width+10, extents.height);
++ }
++
++ if(ioncore_g.enc_utf8)
++ XftDrawStringUtf8(draw, &(colours->fg), font, x, y, (XftChar8 *)str,
++ len);
++ else
++ XftDrawString8(draw, &(colours->fg), font, x, y, (XftChar8 *)str, len);
++}
++#endif /* XFT */
+
+ void debrush_do_draw_string(DEBrush *brush, int x, int y,
+ const char *str, int len, bool needfill,
+diff -Naur ../work/ion-3/de/font.h ion-3ds-20070203/de/font.h
+--- ../work/ion-3/de/font.h 2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/font.h 2007-02-21 13:11:57.000000000 +0300
+@@ -14,6 +14,9 @@
+
+ #include <ioncore/common.h>
+ #include <ioncore/gr.h>
++#ifdef XFT
++#include <X11/Xft/Xft.h>
++#endif /* XFT */
+
+ INTRSTRUCT(DEFont);
+
+@@ -29,6 +32,9 @@
+ int refcount;
+ XFontSet fontset;
+ XFontStruct *fontstruct;
++#ifdef XFT /* XFT */
++ XftFont *font;
++#endif /* XFT */
+ DEFont *next, *prev;
+ };
+
+diff -Naur ../work/ion-3/de/init.c ion-3ds-20070203/de/init.c
+--- ../work/ion-3/de/init.c 2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/init.c 2007-02-21 13:11:57.000000000 +0300
+@@ -165,17 +165,26 @@
+ {
+ bool bgset;
+ DEColour padinh;
+-
++ DEColour black, white;
++
++#ifdef XFT
++ de_alloc_colour(rootwin, &black, "black");
++ de_alloc_colour(rootwin, &white, "white");
++#else
++ black=DE_BLACK(rootwin);
++ white=DE_WHITE(rootwin);
++#endif
++
+ de_get_colour(rootwin, &(cg->hl), tab, "highlight_colour",
+- (based_on ? based_on->cgrp.hl : DE_WHITE(rootwin)));
++ (based_on ? based_on->cgrp.hl : white));
+ de_get_colour(rootwin, &(cg->sh), tab, "shadow_colour",
+- (based_on ? based_on->cgrp.sh : DE_WHITE(rootwin)));
++ (based_on ? based_on->cgrp.sh : white));
+ de_get_colour(rootwin, &(cg->fg), tab, "foreground_colour",
+- (based_on ? based_on->cgrp.fg : DE_WHITE(rootwin)));
++ (based_on ? based_on->cgrp.fg : white));
+ bgset=de_get_colour(rootwin, &(cg->bg), tab, "background_colour",
+- (based_on ? based_on->cgrp.bg : DE_BLACK(rootwin)));
++ (based_on ? based_on->cgrp.bg : black));
+
+- padinh=(based_on ? based_on->cgrp.pad : DE_WHITE(rootwin));
++ padinh=(based_on ? based_on->cgrp.pad : white);
+
+ de_get_colour_(rootwin, &(cg->pad), tab, "padding_colour",
+ (bgset ? cg->bg : padinh), padinh);
+diff -Naur ../work/ion-3/de/style.c ion-3ds-20070203/de/style.c
+--- ../work/ion-3/de/style.c 2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/style.c 2007-02-21 13:11:57.000000000 +0300
+@@ -74,10 +74,17 @@
+ /*gcv.function=GXclear;*/
+ gcv.stipple=stipple_pixmap;
+ gcvmask=GCFillStyle|GCStipple/*|GCFunction*/;
++#ifndef XFT
+ if(style->font!=NULL && style->font->fontstruct!=NULL){
+ gcv.font=style->font->fontstruct->fid;
+ gcvmask|=GCFont;
+ }
++#else /* XFT */
++// if(style->font!=NULL){
++// gcv.font=style->font;
++// gcvmask|=GCFont;
++// }
++#endif /* XFT */
+
+ style->stipple_gc=XCreateGC(dpy, root, gcvmask, &gcv);
+ XCopyGC(dpy, style->normal_gc,
+@@ -205,6 +212,14 @@
+
+ bool destyle_init(DEStyle *style, WRootWin *rootwin, const char *name)
+ {
++ DEColour black, white;
++#ifdef XFT
++ de_alloc_colour(rootwin, &black, "black");
++ de_alloc_colour(rootwin, &white, "white");
++#else
++ black=DE_BLACK(rootwin);
++ white=DE_WHITE(rootwin);
++#endif /* XFT */
+ if(!gr_stylespec_load(&style->spec, name))
+ return FALSE;
+
+@@ -226,11 +241,11 @@
+ style->textalign=DEALIGN_CENTER;
+
+ style->cgrp_alloced=FALSE;
+- style->cgrp.bg=DE_BLACK(rootwin);
+- style->cgrp.pad=DE_BLACK(rootwin);
+- style->cgrp.fg=DE_WHITE(rootwin);
+- style->cgrp.hl=DE_WHITE(rootwin);
+- style->cgrp.sh=DE_WHITE(rootwin);
++ style->cgrp.bg=black;
++ style->cgrp.pad=black;
++ style->cgrp.fg=white;
++ style->cgrp.hl=white;
++ style->cgrp.sh=white;
+ gr_stylespec_init(&style->cgrp.spec);
+
+ style->font=NULL;
+diff -Naur ../work/ion-3/de/style.h ion-3ds-20070203/de/style.h
+--- ../work/ion-3/de/style.h 2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/style.h 2007-02-21 13:11:57.000000000 +0300
+@@ -76,6 +76,7 @@
+ Pixmap tag_pixmap;
+ int tag_pixmap_w;
+ int tag_pixmap_h;
++ int xft_style;
+
+ DEStyle *next, *prev;
+ };
+--- ../work/ion-3/system.mk 2007-05-10 22:45:16.000000000 +0400
++++ ion-3ds-20070203/system.mk 2007-05-10 22:45:07.000000000 +0400
+@@ -115,6 +115,16 @@
+ #EXTRA_LIBS += -lintl
+ #EXTRA_INCLUDES +=
+
++##
++## Xft support
++##
++
++#USE_XFT=1
++
++ifeq ($(USE_XFT),1)
++EXTRA_INCLUDES += `xft-config --cflags` -DXFT
++EXTRA_LIBS += `xft-config --libs`
++endif
+
+ ##
+ ## C compiler
diff --git a/x11-wm/ion3/ion3-20070902.ebuild b/x11-wm/ion3/ion3-20070902.ebuild
new file mode 100644
index 0000000..0fe3cac
--- /dev/null
+++ b/x11-wm/ion3/ion3-20070902.ebuild
@@ -0,0 +1,200 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ion3-20070506-r1.ebuild,v 1.3 2007/06/03 15:08:02 mabi Exp $
+
+inherit eutils flag-o-matic
+
+MY_PV=${PV/_p/-}
+MY_PN=ion-3rc-${MY_PV}
+
+SCRIPTS_PV=20070902
+SCRIPTS_PN=ion3-scripts
+
+IONFLUX_PV=20070512
+IONFLUX_PN=ion3-mod-ionflux
+
+IONXRANDR_PV=20070410
+IONXRANDR_PN=ion3-mod-xrandr
+
+IONDOC_PV=20070902
+IONDOC_PN=ion-doc-3rc
+
+DESCRIPTION="A tiling tabbed window manager designed with keyboard users in mind"
+HOMEPAGE="http://www.iki.fi/tuomov/ion/"
+SRC_URI="http://iki.fi/tuomov/dl/${MY_PN}.tar.gz
+ doc? ( http://iki.fi/tuomov/dl/${IONDOC_PN}-${IONDOC_PV}.tar.gz )"
+
+LICENSE="LGPL-2.1+tuomov"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="unicode ion3-voidupstreamsupport-truetype doc"
+DEPEND="
+ || (
+ (
+ x11-libs/libICE
+ x11-libs/libXext
+ x11-libs/libSM
+ ion3-voidupstreamsupport-truetype? ( x11-libs/libXft )
+ )
+ virtual/x11
+ )
+ dev-util/pkgconfig
+ app-misc/run-mailcap
+ >=dev-lang/lua-5.1.1
+ doc? ( dev-tex/latex2html
+ virtual/tetex )"
+
+S=${WORKDIR}/${MY_PN}
+
+SCRIPTS_DIRS="keybindings scripts statusbar statusd styles"
+MODULES="${IONXRANDR_PN}-${IONXRANDR_PV} ${IONFLUX_PN}-${IONFLUX_PV}"
+
+src_unpack() {
+ unpack ${A}
+
+ ln -s "${FILESDIR}"/${SCRIPTS_PN}-${SCRIPTS_PV}.tar.bz2
+ unpack ./${SCRIPTS_PN}-${SCRIPTS_PV}.tar.bz2
+ ln -s "${FILESDIR}"/${IONXRANDR_PN}-${IONXRANDR_PV}.tar.bz2
+ unpack ./${IONXRANDR_PN}-${IONXRANDR_PV}.tar.bz2
+ ln -s "${FILESDIR}"/${IONFLUX_PN}-${IONFLUX_PV}.tar.bz2
+ unpack ./${IONFLUX_PN}-${IONFLUX_PV}.tar.bz2
+
+ cd ${S}
+ EPATCH_SOURCE="${FILESDIR}/${PV}" EPATCH_SUFFIX="patch" epatch
+ if (use ion3-voidupstreamsupport-truetype); then
+ epatch ${FILESDIR}/xft-ion3-${PV}.patch
+
+ sed -i -e "s:#USE_XFT=1:USE_XFT=1:" ${S}/system.mk
+ sed -i -e 's:\(#define ION_VERSION "3rc-20070608\):\1-voidupstreamsupport-xft-enabled:' ${S}/version.h
+ fi;
+
+ # Allow user CFLAGS
+ sed -i "s:\(CFLAGS=\)-g -Os\(.*\):\1\2 ${CFLAGS}:" system.mk
+
+ # Allow user LDFLAGS
+ sed -i "s:\(LDFLAGS=\)-g -Os\(.*\):\1\2 ${LDFLAGS}:" system.mk
+
+ # XOPEN_SOURCE does give _POSIX_MONOTONIC_CLOCK, but not CLOCK_MONOTONIC,
+ # thus compile will fail
+ sed -e '/CFLAGS +=.*XOPEN_SOURCE.*C99_SOURCE/s:$: $\(POSIX_SOURCE\):' \
+ -i libmainloop/Makefile
+
+ # Don't strip ionflux
+ sed -i "s:-s::" "../${IONFLUX_PN}-${IONFLUX_PV}/ionflux/Makefile"
+
+ # Rewrite install directories to be prefixed by DESTDIR for sake of portage's sandbox
+ sed -i 's!\($(INSTALL\w*)\|rm -f\|ln -s\)\(.*\)\($(\w\+DIR)\)!\1\2$(DESTDIR)\3!g' Makefile */Makefile */*/Makefile build/rules.mk
+
+ for i in ${MODULES}
+ do
+ cd ${WORKDIR}/${i}
+ # Rewrite install directories to be prefixed by DESTDIR for sake of portage's sandbox
+ sed -i Makefile */Makefile \
+ -e 's!\($(INSTALL\w*)\|rm -f\|ln -s\)\(.*\)\($(\w\+DIR)\)!\1\2$(DESTDIR)\3!g'
+
+ done
+ cd ${S}
+
+ # Hey guys! Implicit rules apply to include statements also. Be more careful!
+ # Fix an implicit rule that will kill the installation by rewriting a .mk
+ # should configure be given just the right set of options.
+ sed -i 's!%: %.in!ion-completeman: %: %.in!g' utils/Makefile
+
+ # Fix prestripping of files
+ sed -i mod_statusbar/ion-statusd/Makefile utils/ion-completefile/Makefile \
+ -e 's: -s::'
+
+ # FIX for modules
+ cd ${WORKDIR}
+ ln -s ${MY_PN} ion-3
+}
+
+src_compile() {
+ local myconf=""
+
+ # xfree
+ if has_version '>=x11-base/xfree-4.3.0'; then
+ sed -i -e "s:DEFINES += -DCF_XFREE86_TEXTPROP_BUG_WORKAROUND:#DEFINES += -DCF_XFREE86_TEXTPROP_BUG_WORKAROUND:" ${S}/system.mk
+ fi
+
+ # help out this arch as it can't handle certain shared library linkage
+ use hppa && sed -i -e "s:#PRELOAD_MODULES=1:PRELOAD_MODULES=1:" ${S}/system.mk
+
+ # unicode support
+ use unicode && sed -i -e "s:#DEFINES += -DCF_DE_USE_XUTF8:DEFINES += -DCF_DE_USE_XUTF8:" ${S}/system.mk
+
+ cd ${S}
+ make \
+ LIBDIR=/usr/$(get_libdir) \
+ DOCDIR=/usr/share/doc/${PF} || die
+
+ for i in ${MODULES}
+ do
+ cd ${WORKDIR}/${i}
+
+ make \
+ LIBDIR=/usr/$(get_libdir)
+ done
+
+ if ( use doc )
+ then
+ export MT_FEATURES=varfonts
+ mkdir -p ${T}/var/cache/fonts
+ export VARTEXFONTS=${T}/var/cache/fonts
+
+ cd ${WORKDIR}/${IONDOC_PN}-${IONDOC_PV}
+ make all
+ make all-pdf
+ fi
+}
+
+src_install() {
+
+ emake \
+ DESTDIR=${D} \
+ DOCDIR=/usr/share/doc/${PF} \
+ install || die
+
+ echo -e "#!/bin/sh\n/usr/bin/ion3" > ${T}/ion3
+ echo -e "#!/bin/sh\n/usr/bin/pwm3" > ${T}/pwm3
+ exeinto /etc/X11/Sessions
+ doexe ${T}/ion3 ${T}/pwm3
+
+ insinto /usr/share/xsessions
+ doins ${FILESDIR}/ion3.desktop ${FILESDIR}/pwm3.desktop
+
+ cd ${WORKDIR}/${SCRIPTS_PN}-${SCRIPTS_PV}
+ insinto /usr/share/ion3
+ find $SCRIPTS_DIRS -type f |\
+ while read FILE
+ do
+ doins $PWD/$FILE
+ done
+
+ for i in ${MODULES}
+ do
+ cd ${WORKDIR}/${i}
+
+ emake \
+ DESTDIR=${D} \
+ install || die
+
+ done
+
+ if ( use doc )
+ then
+ cd ${WORKDIR}/${IONDOC_PN}-${IONDOC_PV}
+ dodoc *.pdf
+ fi
+
+ sed -i -e '/dopath("mod_sp")/a\dopath("mod_xrandr")' ${D}/etc/X11/ion3/cfg_defaults.lua
+}
+
+pkg_postinst() {
+ elog "This version of ion3 contains no xinerama support (removed upstream)."
+ elog "Remember that USE='ion3-voidupstreamsupport-truetype' will render"
+ elog "upstream support for your installation of ion3 void."
+ elog "Thus, if you encouter a bug in ion-3, be sure to to reproduce it with a"
+ elog "vanilla build before reporting it upstream. You are welcome to report"
+ elog "any problem as a bug on http://bugs.gentoo.org."
+}