diff options
author | Matti Bickel <mabi@gentoo.org> | 2007-03-25 18:17:41 +0000 |
---|---|---|
committer | Matti Bickel <mabi@gentoo.org> | 2007-03-25 18:17:41 +0000 |
commit | ba51d359f6e813cd64c6ec80ef15ae7871aaaa1e (patch) | |
tree | 597af891583217342926945e887ebd46792826d1 /x11-wm | |
parent | Add ~ia64 keyword wrt bug 157879 (diff) | |
download | gentoo-2-ba51d359f6e813cd64c6ec80ef15ae7871aaaa1e.tar.gz gentoo-2-ba51d359f6e813cd64c6ec80ef15ae7871aaaa1e.tar.bz2 gentoo-2-ba51d359f6e813cd64c6ec80ef15ae7871aaaa1e.zip |
Version bump
(Portage version: 2.1.2.2)
Diffstat (limited to 'x11-wm')
-rw-r--r-- | x11-wm/ion3/ChangeLog | 12 | ||||
-rw-r--r-- | x11-wm/ion3/files/20070318/201_all_fix-paths.patch | 90 | ||||
-rw-r--r-- | x11-wm/ion3/files/20070318/202_all_fix-menus.patch | 13 | ||||
-rw-r--r-- | x11-wm/ion3/files/20070318/205_all_ion-lock.patch | 22 | ||||
-rw-r--r-- | x11-wm/ion3/files/20070318/207_all_bindings-manpage.patch | 117 | ||||
-rw-r--r-- | x11-wm/ion3/files/digest-ion3-20070318 | 12 | ||||
-rw-r--r-- | x11-wm/ion3/files/xft-ion3-20070318.patch | 689 | ||||
-rw-r--r-- | x11-wm/ion3/ion3-20070318.ebuild | 191 |
8 files changed, 1145 insertions, 1 deletions
diff --git a/x11-wm/ion3/ChangeLog b/x11-wm/ion3/ChangeLog index f6e4bd7cea06..c23e28546b0f 100644 --- a/x11-wm/ion3/ChangeLog +++ b/x11-wm/ion3/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for x11-wm/ion3 # Copyright 2000-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ChangeLog,v 1.45 2007/03/11 09:40:37 mabi Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ChangeLog,v 1.46 2007/03/25 18:17:41 mabi Exp $ + +*ion3-20070318 (25 Mar 2007) + + 25 Mar 2007; Matti Bickel <mabi@gentoo.org> + +files/20070318/201_all_fix-paths.patch, + +files/20070318/205_all_ion-lock.patch, +files/xft-ion3-20070318.patch, + +files/20070318/202_all_fix-menus.patch, + +files/20070318/207_all_bindings-manpage.patch, +ion3-20070318.ebuild: + Version bump; readded iontruetype USE for problems with non latin fonts, + added docs *ion3-20070203 (11 Mar 2007) diff --git a/x11-wm/ion3/files/20070318/201_all_fix-paths.patch b/x11-wm/ion3/files/20070318/201_all_fix-paths.patch new file mode 100644 index 000000000000..7f8f228fed40 --- /dev/null +++ b/x11-wm/ion3/files/20070318/201_all_fix-paths.patch @@ -0,0 +1,90 @@ +diff -Nur ion-3ds-20060519.orig/system.mk ion-3ds-20060519/system.mk +--- ion-3ds-20060519.orig/system.mk 2006-05-18 18:06:53.000000000 -0500 ++++ ion-3ds-20060519/system.mk 2006-05-18 23:51:23.000000000 -0500 +@@ -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 +@@ -27,11 +27,11 @@ + # Nothing at the moment + LIBDIR=$(PREFIX)/lib + # Modules +-MODULEDIR=$(LIBDIR)/ion3/mod ++MODULEDIR=$(LIBDIR)/ion3/mod + # Compiled Lua source code + LCDIR=$(LIBDIR)/ion3/lc + # ion-completefile (does not belong in SHAREDIR being a binary file) +-EXTRABINDIR=$(LIBDIR)/ion3/bin ++EXTRABINDIR=$(LIBDIR)/ion3/bin + # For ion-completeman system-wide cache + VARDIR=/var/cache/ion3 + # Message catalogs +@@ -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=`which lua5.1` +-#LUAC=`which luac5.1` ++LUA_LIBS=`pkg-config --libs lua` ++LUA_INCLUDES=`pkg-config --cflags lua` ++LUA=`which lua` ++LUAC=`which luac` + + + ## +@@ -107,7 +107,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) +@@ -144,14 +144,14 @@ + + #C89_SOURCE=-ansi + +-#POSIX_SOURCE=-D_POSIX_SOURCE ++POSIX_SOURCE=-D_POSIX_SOURCE + + # 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/20070318/202_all_fix-menus.patch b/x11-wm/ion3/files/20070318/202_all_fix-menus.patch new file mode 100644 index 000000000000..c2d77c89cfa6 --- /dev/null +++ b/x11-wm/ion3/files/20070318/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/20070318/205_all_ion-lock.patch b/x11-wm/ion3/files/20070318/205_all_ion-lock.patch new file mode 100644 index 000000000000..dda201612800 --- /dev/null +++ b/x11-wm/ion3/files/20070318/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/20070318/207_all_bindings-manpage.patch b/x11-wm/ion3/files/20070318/207_all_bindings-manpage.patch new file mode 100644 index 000000000000..5fac5481cf71 --- /dev/null +++ b/x11-wm/ion3/files/20070318/207_all_bindings-manpage.patch @@ -0,0 +1,117 @@ +diff -Nur ion3-20061020.orig/man/ion3.cs.in ion3-20061020/man/ion3.cs.in +--- ion3-20061020.orig/man/ion3.cs.in 2006-10-20 17:43:37.000000000 +0200 ++++ ion3-20061020/man/ion3.cs.in 2006-10-23 20:42:12.000000000 +0200 +@@ -81,6 +81,10 @@ + + .SS Globální přiřazení + ++BINDINGS:WFrame ++ ++.SS Přiřazení pro přesun/změnu velikosti ++ + BINDINGS:WScreen + + .SS Přiřazení pro práci s nejvyššími rámy a obrazovkami a jejich potomky +diff -Nur ion3-20061020.orig/man/ion3.fi.in ion3-20061020/man/ion3.fi.in +--- ion3-20061020.orig/man/ion3.fi.in 2006-10-20 17:43:36.000000000 +0200 ++++ ion3-20061020/man/ion3.fi.in 2006-10-23 20:42:12.000000000 +0200 +@@ -84,6 +84,10 @@ + + .SS Yleisesti saatavilla olevat sidonnat + ++BINDINGS:WFrame ++ ++.SS Siirto ja koonmuutostilan sidonnat ++ + BINDINGS:WScreen + + .SS Näytöillä tai ylimmän tason kehyksissä toimivat sidonnat +diff -Nur ion3-20061020.orig/man/ion3.in ion3-20061020/man/ion3.in +--- ion3-20061020.orig/man/ion3.in 2006-10-20 17:43:36.000000000 +0200 ++++ ion3-20061020/man/ion3.in 2006-10-23 20:42:12.000000000 +0200 +@@ -82,6 +82,10 @@ + + .SS Globally available bindings + ++BINDINGS:WFrame ++ ++.SS Move/resize mode bindings ++ + BINDINGS:WScreen + + .SS Bindings operating on top-level frames and screens and their children +diff -Nur ion3-20061020.orig/man/pwm3.cs.in ion3-20061020/man/pwm3.cs.in +--- ion3-20061020.orig/man/pwm3.cs.in 2006-10-20 17:43:36.000000000 +0200 ++++ ion3-20061020/man/pwm3.cs.in 2006-10-23 20:42:12.000000000 +0200 +@@ -56,6 +56,10 @@ + + .SS Globální přiřazení + ++BINDINGS:WFrame ++ ++.SS Přiřazení pro přesun/změnu velikosti ++ + BINDINGS:WScreen + + .".SS Přiřazení pro práci s rámy, obrazovkami a jejich potomky +@@ -64,10 +68,6 @@ + + .SS Přiřazení pro práci s rámy a jejich potomky + +-BINDINGS:WFrame +- +-.SS Přiřazení pro přesun/změnu velikosti +- + BINDINGS:WMoveresMode + + .SS Přiřazení pro plovoucí pracovní plochy [mod_floatws] +diff -Nur ion3-20061020.orig/man/pwm3.fi.in ion3-20061020/man/pwm3.fi.in +--- ion3-20061020.orig/man/pwm3.fi.in 2006-10-20 17:43:36.000000000 +0200 ++++ ion3-20061020/man/pwm3.fi.in 2006-10-23 20:42:12.000000000 +0200 +@@ -57,6 +57,10 @@ + + .SS Yleisesti saatavilla olevat sidonnat + ++BINDINGS:WFrame ++ ++.SS Siirto ja koonmuutostilan sidonnat ++ + BINDINGS:WScreen + + .\".SS Kehyksiä ja näyttöjä, sekä niiden lapsia käsittelevät sidonnat +@@ -65,10 +69,6 @@ + + .SS Kehyksiä, sekä niiden lapsia käsittelevät sidonnat + +-BINDINGS:WFrame +- +-.SS Siirto ja koonmuutostilan sidonnat +- + BINDINGS:WMoveresMode + + .SS Kelluvien työpöytien ja kehyksien sidonnat [mod_floatws] +diff -Nur ion3-20061020.orig/man/pwm3.in ion3-20061020/man/pwm3.in +--- ion3-20061020.orig/man/pwm3.in 2006-10-20 17:43:36.000000000 +0200 ++++ ion3-20061020/man/pwm3.in 2006-10-23 20:42:12.000000000 +0200 +@@ -57,6 +57,10 @@ + + .SS Globally available bindings + ++BINDINGS:WFrame ++ ++.SS Move/resize mode bindings ++ + BINDINGS:WScreen + + .".SS Bindings operating on both frames and screens and their children +@@ -65,10 +69,6 @@ + + .SS Bindings operating on frames and their children + +-BINDINGS:WFrame +- +-.SS Move/resize mode bindings +- + BINDINGS:WMoveresMode + + .SS Bindings for floating workspaces and frames [mod_floatws] diff --git a/x11-wm/ion3/files/digest-ion3-20070318 b/x11-wm/ion3/files/digest-ion3-20070318 new file mode 100644 index 000000000000..b233dc82b4c2 --- /dev/null +++ b/x11-wm/ion3/files/digest-ion3-20070318 @@ -0,0 +1,12 @@ +MD5 f02264ab7ecc990c2cd322f57a5e8a4d ion-3ds-20070318.tar.gz 657282 +RMD160 a7cc9baea3624b0ed840fdc82fc5db2ac1018d9a ion-3ds-20070318.tar.gz 657282 +SHA256 712da027fb12774f67d933d95a95452d98a5658617fc5515011ca79b6035258a ion-3ds-20070318.tar.gz 657282 +MD5 b6ec641eac93eb32a97de4baf02f4da0 ion3-doc-20070318.tar.bz2 38870 +RMD160 5fc0225ad23f1c96b5e979d66185ea608372297d ion3-doc-20070318.tar.bz2 38870 +SHA256 22ca643ca5df67086f12d3f106b16094017477c41fd1ebd73d30607db206821b ion3-doc-20070318.tar.bz2 38870 +MD5 4ce492ba5311d74328655923386868ee ion3-mod-xrandr-20070220.tar.bz2 10822 +RMD160 680714961af7e6b81896c4d989baded5ea4c5222 ion3-mod-xrandr-20070220.tar.bz2 10822 +SHA256 858a72ad203fb98f3cea672809a2cdfd7cb87cfa744e622e5a04d2f87cc1ae38 ion3-mod-xrandr-20070220.tar.bz2 10822 +MD5 47c6573679eead6183c49bdbc660aedd ion3-scripts-20070322.tar.bz2 101212 +RMD160 101a6dd933b5b9b495ca4607a7e0d48d48a9c409 ion3-scripts-20070322.tar.bz2 101212 +SHA256 6864d75f2f7ca021368b52051c297f5590047257ca39d0332af65c7fef0f8d39 ion3-scripts-20070322.tar.bz2 101212 diff --git a/x11-wm/ion3/files/xft-ion3-20070318.patch b/x11-wm/ion3/files/xft-ion3-20070318.patch new file mode 100644 index 000000000000..f2d9658eaf1f --- /dev/null +++ b/x11-wm/ion3/files/xft-ion3-20070318.patch @@ -0,0 +1,689 @@ +diff -Naur ../work/ion-3/build/ac/configure.ac ion-3ds-20070203/build/ac/configure.ac +--- ../work/ion-3/build/ac/configure.ac 2007-02-21 13:11:28.000000000 +0300 ++++ ion-3ds-20070203/build/ac/configure.ac 2007-02-21 13:11:56.000000000 +0300 +@@ -65,6 +65,8 @@ + + if test "x$enable_xinerama" = xno; then + _DCF_NO_XINERAMA="-DCF_NO_XINERAMA" ++else ++ _DCF_NO_XINERAMA="-DCF_XINERAMA" + fi + + dnl }}} +@@ -427,6 +429,18 @@ + + dnl }}} + ++AC_ARG_ENABLE([xft], ++ [AS_HELP_STRING([--disable-xft], ++ [Disable XFT Support])]) ++ ++if test "x$enable_xft" != xno; then ++ XFT_CFLAGS=`xft-config --cflags` ++ XFT_CFLAGS="${XFT_CFLAGS} -DXFT" ++ XFT_LIBS=`xft-config --libs` ++fi ++ ++AC_SUBST([XFT_CFLAGS]) ++AC_SUBST([XFT_LIBS]) + + AC_OUTPUT([system-ac.mk]) + +diff -Naur ../work/ion-3/build/ac/system-ac.mk.in ion-3ds-20070203/build/ac/system-ac.mk.in +--- ../work/ion-3/build/ac/system-ac.mk.in 2007-02-21 13:11:28.000000000 +0300 ++++ ion-3ds-20070203/build/ac/system-ac.mk.in 2007-02-21 13:11:56.000000000 +0300 +@@ -188,3 +188,7 @@ + STRIP=@STRIP@ + + RM=rm ++ ++### XFT Support ++CFLAGS+=@XFT_CFLAGS@ ++LIBS+=@XFT_LIBS@ +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(MATCHES2(tagged_spec, a1, a2)){ +- 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 +@@ -138,16 +138,19 @@ + void de_get_colour_group(WRootWin *rootwin, DEColourGroup *cg, + ExtlTab tab, DEStyle *based_on) + { +- de_get_colour(rootwin, &(cg->hl), tab, based_on, "highlight_colour", +- DE_WHITE(rootwin)); +- de_get_colour(rootwin, &(cg->sh), tab, based_on, "shadow_colour", +- DE_WHITE(rootwin)); +- de_get_colour(rootwin, &(cg->bg), tab, based_on, "background_colour", +- DE_BLACK(rootwin)); +- de_get_colour(rootwin, &(cg->fg), tab, based_on, "foreground_colour", +- DE_WHITE(rootwin)); +- de_get_colour(rootwin, &(cg->pad), tab, based_on, "padding_colour", +- cg->bg); ++ 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, based_on, "highlight_colour", white); ++ de_get_colour(rootwin, &(cg->sh), tab, based_on, "shadow_colour", white); ++ de_get_colour(rootwin, &(cg->bg), tab, based_on, "background_colour", black); ++ de_get_colour(rootwin, &(cg->fg), tab, based_on, "foreground_colour", white); ++ de_get_colour(rootwin, &(cg->pad), tab, based_on, "padding_colour", cg->bg); + } + + +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; + }; diff --git a/x11-wm/ion3/ion3-20070318.ebuild b/x11-wm/ion3/ion3-20070318.ebuild new file mode 100644 index 000000000000..4a89330215e4 --- /dev/null +++ b/x11-wm/ion3/ion3-20070318.ebuild @@ -0,0 +1,191 @@ +# 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-20070318.ebuild,v 1.1 2007/03/25 18:17:41 mabi Exp $ + +inherit eutils + +MY_PV=${PV/_p/-} +MY_PN=ion-3ds-${MY_PV} + +SCRIPTS_PV=20070322 +SCRIPTS_PN=ion3-scripts + +IONFLUX_PV=20061022 +IONFLUX_PN=ion3-mod-ionflux + +IONXRANDR_PV=20070220 +IONXRANDR_PN=ion3-mod-xrandr + +IONDOC_PV=20070318 +IONDOC_PN=ion3-doc + + +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 + mirror://gentoo/${SCRIPTS_PN}-${SCRIPTS_PV}.tar.bz2 + mirror://gentoo/${IONXRANDR_PN}-${IONXRANDR_PV}.tar.bz2 + doc? ( mirror://gentoo/${IONDOC_PN}-${IONDOC_PV}.tar.bz2 )" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86" +IUSE="unicode iontruetype doc" +DEPEND=" + || ( + ( + x11-libs/libICE + x11-libs/libXext + x11-libs/libSM + iontruetype? ( 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}" + +src_unpack() { + unpack ${A} + + cd ${S} + EPATCH_SOURCE="${FILESDIR}/${PV}" EPATCH_SUFFIX="patch" epatch + use iontruetype && epatch ${FILESDIR}/xft-ion3-${PV}.patch + + + # 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 the docpath + #sed -i system.mk build/ac/system-ac.mk.in \ + # -e "s:\(DOCDIR=@datadir@/doc/\)@PACKAGE_TARNAME@:\1${PF}:" + + cd ${S}/build/ac/ + autoreconf -i --force + + # FIX for modules + cd ${WORKDIR} + ln -s ${MY_PN} ion-3 +} + +src_compile() { + local myconf="" + + myconf="${myconf} `use_enable iontruetype xft`" + + # xfree + if has_version '>=x11-base/xfree-4.3.0'; then + myconf="${myconf} --disable-xfree86-textprop-bug-workaround" + fi + + # help out this arch as it can't handle certain shared library linkage + use hppa && myconf="${myconf} --disable-shared" + + # unicode support + use unicode && myconf="${myconf} --enable-Xutf8" + + cd build/ac/ + econf \ + ${myconf} \ + --sysconfdir=/etc/X11 \ + + cd ${S} + make \ + DOCDIR=/usr/share/doc/${PF} || die + + for i in ${MODULES} + do + cd ${WORKDIR}/${i} + + emake \ + prefix=/usr \ + ETCDIR=/etc/X11/ion3 \ + SHAREDIR=/usr/share/ion3 \ + MANDIR=/usr/share/man \ + DOCDIR=/usr/share/doc/${PF} \ + LOCALEDIR=/usr/share/locale \ + LIBDIR=/usr/lib \ + MODULEDIR=/usr/lib/ion3/mod \ + LCDIR=/usr/lib/ion3/lc \ + VARDIR=/var/cache/ion3 + done + + if ( use doc ) + then + 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)." +} |