From: Aron Griffis Date: Fri, 17 Feb 2006 14:36:44 +0000 (+0000) Subject: Add patch for utf8 rendering with xft #121722 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=4511f355717a7eee30d1feb324cab637ae8432a8;p=gentoo.git Add patch for utf8 rendering with xft #121722 Package-Manager: portage-2.1_pre4-r1 --- diff --git a/x11-wm/sawfish/ChangeLog b/x11-wm/sawfish/ChangeLog index b34cad68ab8f..1b0e158e0261 100644 --- a/x11-wm/sawfish/ChangeLog +++ b/x11-wm/sawfish/ChangeLog @@ -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 + +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 sawfish-1.3.20050816.ebuild: diff --git a/x11-wm/sawfish/Manifest b/x11-wm/sawfish/Manifest index ec26a860a877..d3e1b8810b49 100644 --- a/x11-wm/sawfish/Manifest +++ b/x11-wm/sawfish/Manifest @@ -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 index 000000000000..ace9f6842fec --- /dev/null +++ b/x11-wm/sawfish/files/digest-sawfish-1.3.20050816-r1 @@ -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 index 000000000000..b7afb0d13f18 --- /dev/null +++ b/x11-wm/sawfish/files/sawfish-xft-menu-utf8.patch @@ -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 + #include + ++#ifdef HAVE_GLIB ++# include ++#endif ++ + #ifdef HAVE_X11_XFT_XFT_H + # include + #else + # undef HAVE_PANGO + #endif + ++ + #ifdef HAVE_PANGO +-# include + # define PANGO_ENABLE_BACKEND + # include + # 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 + #include +- ++#ifdef HAVE_GLIB ++#include ++#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 ++} ++ ++ ++ + + /* 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 index 000000000000..b4f53991e294 --- /dev/null +++ b/x11-wm/sawfish/sawfish-1.3.20050816-r1.ebuild @@ -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, (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 +}