diff options
4 files changed, 155 insertions, 16 deletions
diff --git a/pcr/emacs-lucid/0001-Ignore-color-fonts-when-using-Xft.patch b/pcr/emacs-lucid/0001-Ignore-color-fonts-when-using-Xft.patch new file mode 100644 index 000000000..e17130658 --- /dev/null +++ b/pcr/emacs-lucid/0001-Ignore-color-fonts-when-using-Xft.patch @@ -0,0 +1,72 @@ +From f21fa142aca53e3de5783e1ce6fe1bf116174aeb Mon Sep 17 00:00:00 2001 +From: Robert Pluim <rpluim@gmail.com> +Date: Tue, 3 Apr 2018 11:06:01 +0200 +Subject: [PATCH] Ignore color fonts when using Xft + +* src/font.c (syms_of_font): New configuration variable +xft-ignore-color-fonts, default t. +* src/ftfont.c (ftfont_spec_pattern): Tell fontconfig to ignore +color fonts if xft-ignore-color-fonts is t. (Bug#30874, Bug#30045) +* etc/NEWS: Document xft-ignore-color-fonts. +--- + etc/NEWS | 6 ++++++ + src/font.c | 7 +++++++ + src/ftfont.c | 7 +++++++ + 3 files changed, 20 insertions(+) + +diff --git a/etc/NEWS b/etc/NEWS +index 873e2dfd1d..2bec8de0ea 100644 +--- a/etc/NEWS ++++ b/etc/NEWS +@@ -31,6 +31,12 @@ in its NEWS.) + + * Changes in Emacs 26.2 + ++--- ++** New variable 'xft-ignore-color-fonts'. ++Default t means don't try to load color fonts when using Xft, as they ++often cause crashes. Set it to nil if you really need those fonts. ++(Bug#30874) ++ + + * Editing Changes in Emacs 26.2 + +diff --git a/src/font.c b/src/font.c +index e53935a15c..305bb14576 100644 +--- a/src/font.c ++++ b/src/font.c +@@ -5476,6 +5476,13 @@ Disabling compaction of font caches might enlarge the Emacs memory + footprint in sessions that use lots of different fonts. */); + inhibit_compacting_font_caches = 0; + ++ DEFVAR_BOOL ("xft-ignore-color-fonts", ++ Vxft_ignore_color_fonts, ++ doc: /* ++Non-nil means don't query fontconfig for color fonts, since they often ++cause Xft crashes. Only has an effect in Xft builds. */); ++ Vxft_ignore_color_fonts = 1; ++ + #ifdef HAVE_WINDOW_SYSTEM + #ifdef HAVE_FREETYPE + syms_of_ftfont (); +diff --git a/src/ftfont.c b/src/ftfont.c +index c2e093e633..24a92dd52e 100644 +--- a/src/ftfont.c ++++ b/src/ftfont.c +@@ -764,6 +764,13 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots + if (scalable >= 0 + && ! FcPatternAddBool (pattern, FC_SCALABLE, scalable ? FcTrue : FcFalse)) + goto err; ++#ifdef HAVE_XFT ++ /* We really don't like color fonts, they cause Xft crashes. See ++ Bug#30874. */ ++ if (Vxft_ignore_color_fonts ++ && ! FcPatternAddBool(pattern, FC_COLOR, FcFalse)) ++ goto err; ++#endif + + goto finish; + +-- +2.17.1 + diff --git a/pcr/emacs-lucid/0001-Port-FC_COLOR-change-to-older-fontconfig.patch b/pcr/emacs-lucid/0001-Port-FC_COLOR-change-to-older-fontconfig.patch new file mode 100644 index 000000000..ba14df6b6 --- /dev/null +++ b/pcr/emacs-lucid/0001-Port-FC_COLOR-change-to-older-fontconfig.patch @@ -0,0 +1,32 @@ +From 97d61f878e6378efbde73923a36f71caac73a4a0 Mon Sep 17 00:00:00 2001 +From: Paul Eggert <eggert@cs.ucla.edu> +Date: Tue, 3 Apr 2018 08:12:41 -0700 +Subject: [PATCH] Port FC_COLOR change to older fontconfig +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Problem reported by John ff in: +https://lists.gnu.org/r/emacs-devel/2018-04/msg00058.html +* src/ftfont.c (ftfont_spec_pattern) [!FC_COLOR]: +Don’t use FC_COLOR on older fontconfigs that don’t have it. +--- + src/ftfont.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ftfont.c b/src/ftfont.c +index 24a92dd52e..84e4a30389 100644 +--- a/src/ftfont.c ++++ b/src/ftfont.c +@@ -764,7 +764,7 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots + if (scalable >= 0 + && ! FcPatternAddBool (pattern, FC_SCALABLE, scalable ? FcTrue : FcFalse)) + goto err; +-#ifdef HAVE_XFT ++#if defined HAVE_XFT && defined FC_COLOR + /* We really don't like color fonts, they cause Xft crashes. See + Bug#30874. */ + if (Vxft_ignore_color_fonts +-- +2.17.1 + diff --git a/pcr/emacs-lucid/0001-src-ftfont.c-ftfont_spec_pattern-Fix-whitespace.patch b/pcr/emacs-lucid/0001-src-ftfont.c-ftfont_spec_pattern-Fix-whitespace.patch new file mode 100644 index 000000000..8cc1fcccd --- /dev/null +++ b/pcr/emacs-lucid/0001-src-ftfont.c-ftfont_spec_pattern-Fix-whitespace.patch @@ -0,0 +1,25 @@ +From acaebed014951fdd13855aa7bba9aee60618785f Mon Sep 17 00:00:00 2001 +From: Eli Zaretskii <eliz@gnu.org> +Date: Tue, 3 Apr 2018 19:59:40 +0300 +Subject: [PATCH] ; * src/ftfont.c (ftfont_spec_pattern): Fix whitespace. + +--- + src/ftfont.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ftfont.c b/src/ftfont.c +index 84e4a30389..8f048d2983 100644 +--- a/src/ftfont.c ++++ b/src/ftfont.c +@@ -768,7 +768,7 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots + /* We really don't like color fonts, they cause Xft crashes. See + Bug#30874. */ + if (Vxft_ignore_color_fonts +- && ! FcPatternAddBool(pattern, FC_COLOR, FcFalse)) ++ && ! FcPatternAddBool (pattern, FC_COLOR, FcFalse)) + goto err; + #endif + +-- +2.17.1 + diff --git a/pcr/emacs-lucid/PKGBUILD b/pcr/emacs-lucid/PKGBUILD index 037fa0292..9a087bbf8 100644 --- a/pcr/emacs-lucid/PKGBUILD +++ b/pcr/emacs-lucid/PKGBUILD @@ -1,31 +1,46 @@ -# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> +# Maintainer: Luke Shumaker <lukeshu@parabola.nu> # Maintainer (Arch:emacs): Juergen Hoetzel <juergen@archlinux.org> # Contributor (Arch:emacs): Renchi Raju <renchi@green.tam.uiuc.edu> _pkgname=emacs pkgname=emacs-lucid -pkgver=25.3 -pkgrel=3.1 +pkgver=26.1 +pkgrel=2 +pkgrel+=.lucid1 pkgdesc="The extensible, customizable, self-documenting real-time display editor" -arch=('i686' 'x86_64') +pkgdesc+=", with the Lucid X11 toolkit" +arch=('x86_64') +arch+=('i686' 'armv7h') url="http://www.gnu.org/software/emacs/emacs.html" license=('GPL3') depends=('librsvg' 'gpm' 'giflib' 'libxpm' 'libotf' 'm17n-lib' 'hicolor-icon-theme' 'gconf' 'desktop-file-utils' 'alsa-lib' 'libmagick6' 'gnutls') validpgpkeys=('B29426DEFB07724C3C35E5D36592E9A3A0B0F199' '28D3BED851FDF3AB57FEF93C233587A47C207910') -source=(ftp://ftp.gnu.org/gnu/emacs/$_pkgname-$pkgver.tar.xz{,.sig}) -sha1sums=('1cb4f39e9c0a3305fd62f936c7c95ff8e2924323' - 'SKIP') +source=(ftp://ftp.gnu.org/gnu/emacs/$_pkgname-$pkgver.tar.xz{,.sig} + 0001-Ignore-color-fonts-when-using-Xft.patch + 0001-Port-FC_COLOR-change-to-older-fontconfig.patch + 0001-src-ftfont.c-ftfont_spec_pattern-Fix-whitespace.patch) +sha1sums=('53c01d987b2613701f42d9f941c2d5225a5874c4' + 'SKIP' + 'e6b77aadf6c60dfdc1ec6b61d5968e64d959257d' + '6b40ad3d8936bfd068398c8d46cb8e0b9501fe64' + '51b3e6a2c32be315c9a15c55ca2e97e84d204f32') -pkgdesc+=", with the Lucid X11 toolkit" provides=("$_pkgname=$pkgver") conflicts=("$_pkgname") -arch+=('armv7h') + +prepare() { + cd $_pkgname-$pkgver + patch -Np1 -i "${srcdir}/0001-Ignore-color-fonts-when-using-Xft.patch" + patch -Np1 -i "${srcdir}/0001-Port-FC_COLOR-change-to-older-fontconfig.patch" + patch -Np1 -i "${srcdir}/0001-src-ftfont.c-ftfont_spec_pattern-Fix-whitespace.patch" +} build() { cd "$srcdir"/$_pkgname-$pkgver + PKG_CONFIG_PATH="/usr/lib/imagemagick6/pkgconfig" \ ac_cv_lib_gif_EGifPutExtensionLast=yes ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \ - --localstatedir=/var --with-x-toolkit=lucid --with-xft \ - --with-modules + --localstatedir=/var --with-x-toolkit=lucid --with-xft \ + --with-modules make } @@ -39,9 +54,4 @@ package() { # fix user/root permissions on usr/share files find "$pkgdir"/usr/share/emacs/$pkgver -exec chown root:root {} \; - # fix perms on /var/games - chmod 775 "$pkgdir"/var/games - chmod 775 "$pkgdir"/var/games/emacs - chmod 664 "$pkgdir"/var/games/emacs/* - chown -R root:games "$pkgdir"/var/games } |