diff --git a/editor/emacs/emacs/files/0001-Ignore-color-fonts-when-using-Xft.patch b/editor/emacs/emacs/files/0001-Ignore-color-fonts-when-using-Xft.patch new file mode 100644 index 0000000000..e17130658f --- /dev/null +++ b/editor/emacs/emacs/files/0001-Ignore-color-fonts-when-using-Xft.patch @@ -0,0 +1,72 @@ +From f21fa142aca53e3de5783e1ce6fe1bf116174aeb Mon Sep 17 00:00:00 2001 +From: Robert Pluim +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/editor/emacs/emacs/files/0001-Port-FC_COLOR-change-to-older-fontconfig.patch b/editor/emacs/emacs/files/0001-Port-FC_COLOR-change-to-older-fontconfig.patch new file mode 100644 index 0000000000..ba14df6b63 --- /dev/null +++ b/editor/emacs/emacs/files/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 +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/editor/emacs/emacs/files/0001-src-ftfont.c-ftfont_spec_pattern-Fix-whitespace.patch b/editor/emacs/emacs/files/0001-src-ftfont.c-ftfont_spec_pattern-Fix-whitespace.patch new file mode 100644 index 0000000000..8cc1fcccd6 --- /dev/null +++ b/editor/emacs/emacs/files/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 +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/editor/emacs/emacs/files/01_all_bootstrap-infloop.patch b/editor/emacs/emacs/files/01_all_bootstrap-infloop.patch new file mode 100644 index 0000000000..f4765653fd --- /dev/null +++ b/editor/emacs/emacs/files/01_all_bootstrap-infloop.patch @@ -0,0 +1,34 @@ +https://bugs.gentoo.org/660448 + +From 13726cbac681e442649de1dfd73fcc7f889e87d9 Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Sat, 7 Jul 2018 10:59:22 -0700 +Subject: [PATCH] Fix bootstrap infloop in GNU/Linux alpha + +* src/emacs.c (main): Do not re-exec if EMACS_HEAP_EXEC +is already set (Bug#32083). +--- + src/emacs.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/emacs.c b/src/emacs.c +index 017c62308c..f5e47428ef 100644 +--- a/src/emacs.c ++++ b/src/emacs.c +@@ -707,10 +707,12 @@ main (int argc, char **argv) + bool disable_aslr = dumping; + # endif + +- if (disable_aslr && disable_address_randomization ()) ++ if (disable_aslr && disable_address_randomization () ++ && !getenv ("EMACS_HEAP_EXEC")) + { + /* Set this so the personality will be reverted before execs +- after this one. */ ++ after this one, and to work around an re-exec loop on buggy ++ kernels (Bug#32083). */ + xputenv ("EMACS_HEAP_EXEC=true"); + + /* Address randomization was enabled, but is now disabled. +-- +2.17.1 diff --git a/editor/emacs/emacs/files/02_all_imagemagick-7.patch b/editor/emacs/emacs/files/02_all_imagemagick-7.patch new file mode 100644 index 0000000000..3750b675d6 --- /dev/null +++ b/editor/emacs/emacs/files/02_all_imagemagick-7.patch @@ -0,0 +1,96 @@ +Support ImageMagick version 7. +https://bugs.gentoo.org/665058 +https://debbugs.gnu.org/25967 + +This backports and consolidates the following commits from upstream git: + +commit 3cc42bb60099c32f64e57d2ee33c8321adba7942 +Author: Glenn Morris +Date: Thu Aug 30 13:56:08 2018 -0400 + + * configure.ac: Fix goofs in my recent ImageMagick change. + +commit 42ed35c68b7c199aa797e655fdc3547c5c3087d2 +Author: Paul Eggert +Date: Thu Aug 30 10:03:43 2018 -0700 + + Pacify -Wdouble-promotion in ImageMagick code + +commit bf1b147b55e1328efca6e40181e79dd9a369895d +Author: Glenn Morris +Date: Mon Aug 27 22:03:25 2018 -0400 + + * configure.ac, src/image.c: Tweak previous ImageMagick change. + +commit 5729486951e6a60db55ea17ee3bac9baf8b54f6a +Author: Karl Otness +Date: Mon Aug 27 21:57:44 2018 -0400 + + Support ImageMagick version 7 (bug#25967) + +--- emacs-26.1-orig/configure.ac ++++ emacs-26.1/configure.ac +@@ -2521,11 +2521,14 @@ + HAVE_IMAGEMAGICK=no + if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${HAVE_W32}" = "yes"; then + if test "${with_imagemagick}" != "no"; then +- ## 6.3.5 is the earliest version known to work; see Bug#17339. +- ## 6.8.2 makes Emacs crash; see Bug#13867. +- ## 7 and later have not been ported to; See Bug#25967. +- IMAGEMAGICK_MODULE="Wand >= 6.3.5 Wand != 6.8.2 Wand < 7" +- EMACS_CHECK_MODULES([IMAGEMAGICK], [$IMAGEMAGICK_MODULE]) ++ EMACS_CHECK_MODULES([IMAGEMAGICK], [MagickWand >= 7]) ++ if test $HAVE_IMAGEMAGICK = yes; then ++ AC_DEFINE([HAVE_IMAGEMAGICK7], 1, [Define to 1 if using ImageMagick7.]) ++ else ++ ## 6.3.5 is the earliest version known to work; see Bug#17339. ++ ## 6.8.2 makes Emacs crash; see Bug#13867. ++ EMACS_CHECK_MODULES([IMAGEMAGICK], [Wand >= 6.3.5 Wand != 6.8.2]) ++ fi + + if test $HAVE_IMAGEMAGICK = yes; then + OLD_CFLAGS=$CFLAGS +@@ -5399,7 +5402,7 @@ + Does Emacs use -lrsvg-2? ${HAVE_RSVG} + Does Emacs use cairo? ${HAVE_CAIRO} + Does Emacs use -llcms2? ${HAVE_LCMS2} +- Does Emacs use imagemagick (version 6)? ${HAVE_IMAGEMAGICK} ++ Does Emacs use imagemagick? ${HAVE_IMAGEMAGICK} + Does Emacs support sound? ${HAVE_SOUND} + Does Emacs use -lgpm? ${HAVE_GPM} + Does Emacs use -ldbus? ${HAVE_DBUS} +--- emacs-26.1-orig/src/image.c ++++ emacs-26.1/src/image.c +@@ -8270,11 +8270,20 @@ + /* The GIF library also defines DrawRectangle, but its never used in Emacs. + Therefore rename the function so it doesn't collide with ImageMagick. */ + #define DrawRectangle DrawRectangleGif +-#include ++ ++#ifdef HAVE_IMAGEMAGICK7 ++# include ++# include ++/* ImageMagick 7 compatibility definitions. */ ++# define PixelSetMagickColor PixelSetPixelColor ++typedef PixelInfo MagickPixelPacket; ++#else ++# include ++# include ++#endif + + /* ImageMagick 6.5.3 through 6.6.5 hid PixelGetMagickColor for some reason. + Emacs seems to work fine with the hidden version, so unhide it. */ +-#include + #if 0x653 <= MagickLibVersion && MagickLibVersion <= 0x665 + extern WandExport void PixelGetMagickColor (const PixelWand *, + MagickPixelPacket *); +@@ -8799,7 +8808,8 @@ + #endif /* HAVE_MAGICKEXPORTIMAGEPIXELS */ + { + size_t image_height; +- MagickRealType color_scale = 65535.0 / QuantumRange; ++ double quantum_range = QuantumRange; ++ MagickRealType color_scale = 65535.0 / quantum_range; + + /* Try to create a x pixmap to hold the imagemagick pixmap. */ + if (!image_create_x_image_and_pixmap (f, img, width, height, 0, diff --git a/editor/emacs/emacs/pspec.xml b/editor/emacs/emacs/pspec.xml index 2890be0b45..41f11768b1 100644 --- a/editor/emacs/emacs/pspec.xml +++ b/editor/emacs/emacs/pspec.xml @@ -37,6 +37,13 @@ imagemagick-devel lcms2-devel + + 01_all_bootstrap-infloop.patch + 02_all_imagemagick-7.patch + 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 + @@ -105,7 +112,7 @@ 2019-02-01 26.1 - Version Bump + Version Bump. Mustafa Cinasal muscnsl@gmail.com