Add patch for utf8 rendering with xft #121722
authorAron Griffis <agriffis@gentoo.org>
Fri, 17 Feb 2006 14:36:44 +0000 (14:36 +0000)
committerAron Griffis <agriffis@gentoo.org>
Fri, 17 Feb 2006 14:36:44 +0000 (14:36 +0000)
Package-Manager: portage-2.1_pre4-r1

x11-wm/sawfish/ChangeLog
x11-wm/sawfish/Manifest
x11-wm/sawfish/files/digest-sawfish-1.3.20050816-r1 [new file with mode: 0644]
x11-wm/sawfish/files/sawfish-xft-menu-utf8.patch [new file with mode: 0644]
x11-wm/sawfish/sawfish-1.3.20050816-r1.ebuild [new file with mode: 0644]

index b34cad68ab8f5886421cc79060d6ef578ac842a7..1b0e158e026197dcbd1f6653ba563dd7ef86a6ba 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for x11-wm/sawfish
 # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/sawfish/ChangeLog,v 1.62 2006/02/07 10:06:30 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/sawfish/ChangeLog,v 1.63 2006/02/17 14:36:44 agriffis Exp $
+
+*sawfish-1.3.20050816-r1 (17 Feb 2006)
+
+  17 Feb 2006; Aron Griffis <agriffis@gentoo.org>
+  +files/sawfish-xft-menu-utf8.patch, +sawfish-1.3.20050816-r1.ebuild:
+  Add patch for utf8 rendering with xft #121722
 
   07 Feb 2006; Aron Griffis <agriffis@gentoo.org>
   sawfish-1.3.20050816.ebuild:
index ec26a860a877406ca152f6bb2fe1465600cfe6ad..d3e1b8810b49696a58465ef720fd4e7d48bad2c6 100644 (file)
@@ -1,9 +1,9 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-MD5 c4aae33570307f2bfeae41ea283879d5 ChangeLog 10037
-RMD160 ea4fc38f3c82d37b388ee48a7be02f32922edf6b ChangeLog 10037
-SHA256 f6e3532949eb27276ad07bdd459d23d0d03ec7806ffc805c990f56bc69e923e7 ChangeLog 10037
+MD5 340fd5b2bf1f787ca2933860827c083a ChangeLog 10247
+RMD160 d98d4b8dff050b31babf95210c660492de83f77a ChangeLog 10247
+SHA256 01a581dc8c186d765f79eb91ace6277036c71d5c33def68f97768a5569c243fd ChangeLog 10247
 MD5 caeb1eaaf77305901f5c3bc19f3637d5 files/Sawfish.desktop 449
 RMD160 02c133c66b9816d252a8dabc5194483d586189c9 files/Sawfish.desktop 449
 SHA256 58e5a5337604b0732484698a3b1ccda847cd2d39725346210113db0ae460f99f files/Sawfish.desktop 449
@@ -22,6 +22,9 @@ SHA256 7df4d1db14bc8c60df8556e105919114285d5412875776ef7e275e902ccb90de files/di
 MD5 228430d4af4d182eca480e98af059875 files/digest-sawfish-1.3.20050816 74
 RMD160 a7b8561d81c224df25893a287201782ba2fae05e files/digest-sawfish-1.3.20050816 74
 SHA256 107b1f5d81a026c3500153fe041fe681a153d9c9589721d5bea1bddd3e77a395 files/digest-sawfish-1.3.20050816 74
+MD5 6d7e350ed295076a1d0594e3c002aefc files/digest-sawfish-1.3.20050816-r1 268
+RMD160 166266b6b60e33d9b9208a71f758abd4b8287690 files/digest-sawfish-1.3.20050816-r1 268
+SHA256 bfb44f484f8df1fa3ec2a606c7d52d54aa7e495d08f391119f21c8b830e6bfcf files/digest-sawfish-1.3.20050816-r1 268
 MD5 e1a647c4cdb92365506d533ac36c7f57 files/libtool.patch 798
 RMD160 ce31c467c17f0106abee438271f723c888eec641 files/libtool.patch 798
 SHA256 5d2a78d80ce22591c930353be21e359c542d6b241700efac5a38c1c41864c9c2 files/libtool.patch 798
@@ -34,6 +37,9 @@ SHA256 a077e71282a4b5a2cddc7555396e8ba2d84fbe9165269009816a318709b7f94d files/sa
 MD5 280d364bfd0878351ebbbcbc62ac19c4 files/sawfish-1.3-state-below.patch 403
 RMD160 2ce7541bd8abafd778f55231a9ca4c52dc112798 files/sawfish-1.3-state-below.patch 403
 SHA256 0aaca4e9095283ae21be489eb0b8a4af687f907c13db5bcc8c81d2e61cdc941d files/sawfish-1.3-state-below.patch 403
+MD5 b77a24813c32d264f4d1b8faa066b716 files/sawfish-xft-menu-utf8.patch 6130
+RMD160 6ae34f6fd972ddaf7057e363ad7a55bbf2717241 files/sawfish-xft-menu-utf8.patch 6130
+SHA256 2cc54204aa4027cfe0161394e4e486f58c33fec49fc0f6fea33b95ce8503c271 files/sawfish-xft-menu-utf8.patch 6130
 MD5 683a44340139387ede0f0a8ec990f6af metadata.xml 252
 RMD160 e1e9d40a05f958564b97dce796d3575508fb3b2e metadata.xml 252
 SHA256 0db1ac5dbd8480024e1398a144440c9f0b77d5edf03789905ed31ae1d284aaf2 metadata.xml 252
@@ -46,13 +52,16 @@ SHA256 6c92975fe0bdfe9f679e54db3581e8cbb8032a6434fe74d1e06fec8bb01e67ea sawfish-
 MD5 2dfef4a3fc9332df431ea0b2b06c5ee8 sawfish-1.3.20040120.ebuild 2700
 RMD160 6f6bec88aecf37db880df9a0b1761c65221f76b2 sawfish-1.3.20040120.ebuild 2700
 SHA256 c7e6f737417198ed515166c3f8086c91034c934778772e273a201bcae7373fc8 sawfish-1.3.20040120.ebuild 2700
+MD5 355b4d28f3c5fe406b2fb5d73144aa64 sawfish-1.3.20050816-r1.ebuild 2919
+RMD160 c6cafc7f1ce4c0cf161ce6c5920e71e9aeeba8ff sawfish-1.3.20050816-r1.ebuild 2919
+SHA256 1bb44f6d608d5d727fadd0da8c8b0a7ef614534057ee62df76bf74a1886bce3e sawfish-1.3.20050816-r1.ebuild 2919
 MD5 e03cb873481afd914cfc286f6a085be8 sawfish-1.3.20050816.ebuild 2807
 RMD160 1298317baa21f75476995fc3d107499f66de91a8 sawfish-1.3.20050816.ebuild 2807
 SHA256 a575e07c1b363eb9f27d000367102ab317bd01ca8a868e9fabfa3634945370f8 sawfish-1.3.20050816.ebuild 2807
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.2 (GNU/Linux)
 
-iD8DBQFD6HEwJrHF4yAQTrARAkCmAKDBQ7uTHLwJXEK6wO0nrS+UtxcdlgCfW6Hi
-FEWhTYKgxGrnA15NP1nYp7o=
-=geLL
+iD8DBQFD9d+JJrHF4yAQTrARAsYTAJ49c7ZTzTu8iO8R1WGhILd2nBHtzQCdHAF7
+covhUHV6IkAEx954/8tiZo4=
+=mRSA
 -----END PGP SIGNATURE-----
diff --git a/x11-wm/sawfish/files/digest-sawfish-1.3.20050816-r1 b/x11-wm/sawfish/files/digest-sawfish-1.3.20050816-r1
new file mode 100644 (file)
index 0000000..ace9f68
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 ce418e61e0388e9ab45b06cd68a966df sawfish-1.3.20050816.tar.bz2 1145082
+RMD160 e15e222baa1f1f52f085f4658abc3d8a37d6c8e8 sawfish-1.3.20050816.tar.bz2 1145082
+SHA256 2b4954f1605e985dba5d71fafd57c4d2914bd7e0b19941c3b937915772fc98f3 sawfish-1.3.20050816.tar.bz2 1145082
diff --git a/x11-wm/sawfish/files/sawfish-xft-menu-utf8.patch b/x11-wm/sawfish/files/sawfish-xft-menu-utf8.patch
new file mode 100644 (file)
index 0000000..b7afb0d
--- /dev/null
@@ -0,0 +1,243 @@
+--- config.h.in        2006-02-05 21:42:27.000000000 -0500
++++ config.h.in        2006-02-05 21:48:46.000000000 -0500
+@@ -151,4 +151,7 @@
+ #undef HAVE_PANGO_X
+ #undef HAVE_PANGO_XFT
++/* Define if you have glib */
++#undef HAVE_GLIB
++
+ #endif /* SAWMILL_CONFIG_H */
+--- configure.in       2006-02-05 21:42:27.000000000 -0500
++++ configure.in       2006-02-05 21:48:46.000000000 -0500
+@@ -127,7 +127,14 @@
+ CPPFLAGS="${_cppflags}"
+-dnl Checks for pango
++dnl Checks for pango. Disabled by default
++
++AC_ARG_WITH(pango,
++ [  --with-pango        Enable pango font rendering engine
++  --without-pango], [],
++ [with_pango=no])
++        
++if test "${with_pango}" = "yes"; then
+ PKG_CHECK_MODULES(PANGO, pango >= 1.2.0,
+   [if $PKG_CONFIG --exists pangoxft; then
+      AC_DEFINE(HAVE_PANGO_XFT, 1)
+@@ -142,6 +149,7 @@
+      PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_MODULES`
+      PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_MODULES`
+    fi], [: nothing])
++fi
+ dnl Check for librep
+ AM_PATH_REP(0.14)
+@@ -247,6 +255,17 @@
+     AC_DEFINE(HAVE_ESD)
+ fi
++AC_ARG_WITH(glib,
++ [  --with-glib                 Use glib for locale -> utf8
++  --without-glib], [], [with_glib=yes])
++
++if test "$with_glib" = "yes"; then
++    PKG_CHECK_MODULES(GLIB, glib-2.0 > 2.0)
++    AC_SUBST(GLIB_LIBS)
++    AC_SUBST(GLIB_CFLAGS)
++    AC_DEFINE(HAVE_GLIB)
++fi
++
+ AC_ARG_ENABLE(capplet,
+  [  --enable-capplet    Build the sawfish GNOME capplet [default]
+   --disable-capplet     Don't built the capplet], [],
+--- lisp/sawfish/wm/ext/beos-window-menu.jl    2006-02-05 21:42:27.000000000 -0500
++++ lisp/sawfish/wm/ext/beos-window-menu.jl    2006-02-05 21:49:07.000000000 -0500
+@@ -25,6 +25,7 @@
+     (export beos-window-menu)
+     (open rep
++        rep.regexp
+         sawfish.wm.windows
+         sawfish.wm.misc
+         sawfish.wm.custom
+@@ -38,9 +39,16 @@
+   (define (abbreviate name #!optional len)
+     (unless len (setq len 20))
+-    (if (> (length name) len)
+-      (concat (substring name 0 len) "...")
+-      name))
++    (setq name (locale-to-utf8 name))
++    (let ((namelen (length name)))
++      (let loop ((idx len))
++         (cond ((>= idx namelen)
++             name)
++            ((string-match "[\200-\277]" (substring name idx (1+ idx)))
++             ;; move to utf-8 mbchar boundary
++             (loop (1+ idx)))
++            (t
++             (concat (substring name 0 idx) "..."))))))
+   (define (make-label w)
+     (let ((name (window-name w))
+--- src/fonts.c        2006-02-05 21:42:27.000000000 -0500
++++ src/fonts.c        2006-02-05 21:49:22.000000000 -0500
+@@ -42,14 +42,18 @@
+ #include <X11/Xlocale.h>
+ #include <ctype.h>
++#ifdef HAVE_GLIB
++# include<glib.h>
++#endif
++
+ #ifdef HAVE_X11_XFT_XFT_H
+ # include <X11/Xft/Xft.h>
+ #else
+ # undef HAVE_PANGO
+ #endif
++   
+ #ifdef HAVE_PANGO
+-# include <glib.h>
+ # define PANGO_ENABLE_BACKEND
+ # include <pango/pango.h>
+ # undef PANGO_ENABLE_BACKEND
+@@ -364,9 +368,22 @@
+ xft_measure (Lisp_Font *f, u_char *string, size_t length)
+ {
+     XGlyphInfo info;
+-
+-    XftTextExtents8 (dpy, f->font, string, length, &info);
+-
++#ifdef HAVE_GLIB 
++     gsize r, w;
++     u_char *utf8str;
++     utf8str = g_locale_to_utf8 (string, length, &r, &w, NULL);
++     if (utf8str != NULL){
++       string = utf8str;
++       length = w;
++     }
++     
++     XftTextExtentsUtf8 (dpy, f->font, string, length, &info);
++     
++     g_free(utf8str);
++#else
++     XftTextExtents8 (dpy, f->font, string, length, &info);
++#endif
++ 
+     return info.xOff; 
+ }
+@@ -375,6 +392,10 @@
+         Window id, GC gc, Lisp_Color *fg, int x, int y)
+ {
+     static XftDraw *draw;
++#ifdef HAVE_GLIB
++    gsize r, w;
++    u_char *utf8str;
++#endif
+     XftColor xft_color;
+@@ -389,8 +410,21 @@
+     xft_color.color.blue = fg->blue;
+     xft_color.color.alpha = fg->alpha;
++#ifdef HAVE_GLIB
++    utf8str = g_locale_to_utf8 (string, length, &r, &w, NULL);
++    if (utf8str != NULL){
++      string = utf8str;
++      length = w;
++    }
++    
++    XftDrawStringUtf8 (draw, &xft_color, f->font,
++                     x, y, string, length);
++    g_free(utf8str);
++#else
+     XftDrawString8 (draw, &xft_color, f->font,
+                   x, y, string, length);
++#endif
++    
+ }
+ static const Lisp_Font_Class xft_class = {
+--- src/functions.c    2006-02-05 21:42:27.000000000 -0500
++++ src/functions.c    2006-02-05 21:49:27.000000000 -0500
+@@ -43,7 +43,9 @@
+ #include "sawmill.h"
+ #include <string.h>
+ #include <X11/Xatom.h>
+-
++#ifdef HAVE_GLIB
++#include <glib.h>
++#endif
+ /* Number of outstanding server grabs made; only when this is zero is
+    the server ungrabbed. */
+ static int server_grabs;
+@@ -1340,6 +1342,37 @@
+     }
+ }
++DEFUN("locale-to-utf8", Flocale_to_utf8, Slocale_to_utf8,
++      (repv src), rep_Subr1)
++{
++#ifdef HAVE_GLIB
++    gsize r, w;
++    u_char *utf8str;
++    repv res;
++
++    rep_DECLARE1 (src, rep_STRINGP);
++
++    utf8str = g_locale_to_utf8 (rep_STR (src), -1, &r, &w, NULL);
++    if (utf8str == NULL) {
++      return src;
++    }
++
++    res = rep_make_string (w + 1);
++    if (!res)
++      return rep_mem_error ();
++
++    strncpy (rep_STR (res), utf8str, w);
++    rep_STR (res)[w] = '\0';
++
++    g_free (utf8str);
++    return res;
++#else
++    return src;
++#endif
++}
++
++
++
\f
+ /* initialisation */
+@@ -1380,6 +1413,7 @@
+     rep_ADD_SUBR(Shead_dimensions);
+     rep_ADD_SUBR(Shead_offset);
+     rep_ADD_SUBR(Sdisplay_message);
++    rep_ADD_SUBR(Slocale_to_utf8);
+     rep_pop_structure (tem);
+     tem = rep_push_structure ("sawfish.wm.events");
+--- src/Makefile.in    2006-02-05 21:42:27.000000000 -0500
++++ src/Makefile.in    2006-02-05 21:53:35.000000000 -0500
+@@ -38,14 +38,14 @@
+         sawfish/wm/util/play-sample.la
+ DL_DIRS = sawfish/wm/util
+-override CFLAGS := $(CFLAGS) $(REP_CFLAGS) $(IMAGE_CFLAGS) $(X11_CFLAGS) $(ESD_CFLAGS) $(PANGO_CFLAGS)
++override CFLAGS := $(CFLAGS) $(REP_CFLAGS) $(IMAGE_CFLAGS) $(X11_CFLAGS) $(ESD_CFLAGS) $(PANGO_CFLAGS) $(GLIB_CFLAGS)
+ all : sawfish libclient.o $(DL_OBJS) .libexec gtk-style
+ sawfish : $(OBJS) $(LIBOBJS)
+       $(rep_LIBTOOL) --mode=link --tag=CC $(CC) -export-dynamic $(LDFLAGS) \
+         -o sawfish $(OBJS) $(LIBOBJS) $(REP_LIBS) $(PANGO_LIBS) \
+-        $(IMAGE_LIBS) $(X11_LIBS) $(EXTRA_X11_LIBS) $(LIBS)
++        $(IMAGE_LIBS) $(X11_LIBS) $(EXTRA_X11_LIBS) $(LIBS) $(GLIB_LIBS)
+ %.la : %.lo
+       $(rep_DL_LD) $(LDFLAGS) -o $@ $<
diff --git a/x11-wm/sawfish/sawfish-1.3.20050816-r1.ebuild b/x11-wm/sawfish/sawfish-1.3.20050816-r1.ebuild
new file mode 100644 (file)
index 0000000..b4f5399
--- /dev/null
@@ -0,0 +1,106 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/sawfish/sawfish-1.3.20050816-r1.ebuild,v 1.1 2006/02/17 14:36:44 agriffis Exp $
+
+# detect cvs snapshots; fex. 1.3.20040120
+[[ $PV == *.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] ]]
+(( snapshot = !$? ))
+
+inherit eutils gnuconfig
+
+DESCRIPTION="Extensible window manager using a Lisp-based scripting language"
+HOMEPAGE="http://sawmill.sourceforge.net/"
+if (( snapshot )); then
+       SRC_URI="mirror://gentoo/${P}.tar.bz2"
+else
+       SRC_URI="mirror://sourceforge/sawmill/${P}.tar.gz"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="gnome esd nls audiofile pango"
+
+DEPEND=">=dev-util/pkgconfig-0.12.0
+       >=x11-libs/rep-gtk-0.17
+       >=dev-libs/librep-0.16
+       >=x11-libs/gtk+-2.0.8
+       audiofile? ( >=media-libs/audiofile-0.2.3 )
+       esd? ( >=media-sound/esound-0.2.23 )
+       nls? ( sys-devel/gettext )"
+RDEPEND="${DEPEND}"
+
+if (( snapshot )); then
+       DEPEND="${DEPEND}
+               sys-devel/automake
+               sys-devel/autoconf"
+       S="${WORKDIR}/${PN}"
+fi
+
+src_unpack() {
+       unpack ${A}
+       cd "${S}"
+       epatch "${FILESDIR}/libtool.patch"
+       # Fix utf8 with xft #121772
+       epatch "${FILESDIR}/sawfish-xft-menu-utf8.patch"
+       # This is for alpha, but there's no reason to restrict it
+       gnuconfig_update
+}
+
+src_compile() {
+       # Make sure we include freetype2 headers before freetype1 headers,
+       # else Xft2 borks, <azarah@gentoo.org> (13 Dec 2002)
+       export C_INCLUDE_PATH="${C_INCLUDE_PATH}:/usr/include/freetype2"
+       export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:/usr/include/freetype2"
+
+       # If this is a snapshot then we need to create the autoconf stuff
+       if (( snapshot )); then
+               aclocal || die "aclocal failed"
+               autoconf || die "autoconf failed"
+       fi
+
+       set -- \
+               --disable-themer \
+               --with-gdk-pixbuf \
+               $(use_with audiofile) \
+               $(use_with esd) \
+               $(use_with pango)
+
+       if use gnome; then
+               set -- "$@" \
+                       --with-gnome-prefix=/usr \
+                       --enable-gnome-widgets \
+                       --enable-capplet
+       else
+               set -- "$@" \
+                       --disable-gnome-widgets \
+                       --disable-capplet
+       fi
+
+       if ! use nls; then
+               # Use a space because configure script reads --enable-linguas="" as
+               # "install everything"
+               # Don't use --disable-linguas, because that means --enable-linguas="no",
+               # which means "install Norwegian translations"
+               set -- "$@" --enable-linguas=" "
+       elif [[ "${LINGUAS+set}" == "set" ]]; then
+               strip-linguas -i po
+               set -- "$@" --enable-linguas=" ${LINGUAS} "
+       else
+               set -- "$@" --enable-linguas=""
+       fi
+
+       econf "$@" || die "configure failed"
+
+       # The following two lines allow sawfish to compile with gcc 2.95
+       # (see bug 18294)
+       sed -i -e 's:REP_CFLAGS=:REP_CFLAGS=-I/usr/include/freetype2 :' Makedefs
+
+       # Parallel build doesn't work
+       emake -j1 || die "make failed"
+}
+
+src_install() {
+       make DESTDIR="${D}" install || die "make install failed"
+       dodoc AUTHORS BUGS ChangeLog DOC FAQ NEWS README THANKS TODO OPTIONS
+}