Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package emacs.15550 for 
openSUSE:Leap:15.2:Update checked in at 2021-01-16 19:54:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2:Update/emacs.15550 (Old)
 and      /work/SRC/openSUSE:Leap:15.2:Update/.emacs.15550.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "emacs.15550"

Sat Jan 16 19:54:30 2021 rev:1 rq:863449 version:25.3

Changes:
--------
New Changes file:

--- /dev/null   2021-01-11 18:20:20.070723563 +0100
+++ /work/SRC/openSUSE:Leap:15.2:Update/.emacs.15550.new.28504/emacs.changes    
2021-01-16 19:54:32.209922620 +0100
@@ -0,0 +1,2405 @@
+-------------------------------------------------------------------
+Mon Aug 10 12:31:55 UTC 2020 - Dr. Werner Fink <[email protected]>
+
+- Add patch emacs-libX11-boo1175028.patch to fix SIGSEGV introduced
+  by a security fix for libX11 (boo#1175028)
+
+-------------------------------------------------------------------
+Fri Jun 15 05:14:18 UTC 2018 - [email protected]
+
+- Simplify patch emacs-25.3-xft4x11.patch (from Henryk Hecht) for
+  boo#1096354 
+
+-------------------------------------------------------------------
+Tue Jun 12 07:52:20 UTC 2018 - [email protected]
+
+- Add patch emacs-25.3-xft4x11.patch to allow emacs-x11 to use
+  xft even for its menu bar (boo#1096354)
+
+-------------------------------------------------------------------
+Fri Sep 22 10:06:54 UTC 2017 - [email protected]
+
+- Update to emacs version 25.3 a security release
+  ** Security vulnerability related to Enriched Text mode is removed.
+- Modified patches
+  * emacs-24.4-ps-bdf.patch
+  * emacs-25.2-ImageMagick7.patch
+  * emacs-25.2-bsc1058425.patch now partly upstream
+- Rename emacs-25.2.dif to emacs-25.3.dif
+
+-------------------------------------------------------------------
+Wed Sep 13 07:21:34 UTC 2017 - [email protected]
+
+- Add patch emacs-25.2-bsc1058425.patch to fix bsc#1058425
+  VUL-0: emacs: GNU Emacs 25.2 enriched text remote code execution 
+
+-------------------------------------------------------------------
+Tue Aug 22 18:43:38 UTC 2017 - [email protected]
+
+- build without libgnutls-openssl-devel
+
+-------------------------------------------------------------------
+Fri Jun  2 21:42:04 UTC 2017 - [email protected]
+
+- Add conditional emacs-25.2-xwidget.patch, and
+  pkgconfig(webkit2gtk-4.0) BuildRequires; depend on latest
+  webkitgtk for Tumbleweed.
+
+-------------------------------------------------------------------
+Tue May  2 11:02:57 UTC 2017 - [email protected]
+
+- Add patch gnulib.git-94e01571.patch to fix CVE-2017-7476
+
+-------------------------------------------------------------------
+Wed Apr 26 07:33:45 UTC 2017 - [email protected]
+
+- Use socket activation to get dbus up before starting emacs 
+
+-------------------------------------------------------------------
+Tue Apr 25 14:51:25 UTC 2017 - [email protected]
+
+- Fix emacs.sh wrapper script to check modern dbus session (boo#1032759)
+
+-------------------------------------------------------------------
+Tue Apr 25 10:43:33 UTC 2017 - [email protected]
+
+- Update to emacs version 25.2 a bugfix release
+  * 'find-library', 'help-function-def' and 'help-variable-def' now run
+    'find-function-after-hook'.
+  * New basic face 'fixed-pitch-serif', for a fixed-width font with serifs.
+    The 'Info-quoted' and 'tex-verbatim' faces inherit from it by default.
+  * New variable 'use-default-font-for-symbols', for backward compatibility.
+    This variable allows you to get back pre-Emacs 25 behavior where the
+    font for displaying symbol and punctuation characters was always
+    selected according to your fontset setup.  By default, Emacs 25 tries
+    to use the default face's font for such characters, if it supports
+    them, disregarding the fontsets.  Set this variable to nil to disable
+    this and get back the old behavior.
+  * 'electric-quote-mode' is no longer suppressed in a buffer whose
+    coding system cannot represent curved quote characters.
+    Instead, users can deal with the unrepresentable characters in the
+    usual way when they save the buffer.
+  * New variable 'inhibit-compacting-font-caches'.
+    Set this variable to a non-nil value to speed up display of characters
+    using large fonts, at the price of a larger memory footprint.
+  * The version number of CC Mode has been changed from 5.33 to
+    5.32.99, although the software itself hasn't changed.  This aims to
+    reduce confusion with the standalone CC Mode 5.33 (available from
+    http://cc-mode.sourceforge.net), which is a more mature version than
+    the one included in Emacs 25.2.
+
+-------------------------------------------------------------------
+Wed Apr 12 09:25:13 UTC 2017 - [email protected]
+
+- build with ImageMagick 7 [bsc#1033077]
+  + emacs-25.2-ImageMagick7.patch
+
+-------------------------------------------------------------------
+Mon Apr  3 06:34:49 UTC 2017 - [email protected]
+
+- Check if "-no-pie" is known to the compiler/linker
+
+-------------------------------------------------------------------
+Sun Apr  2 16:49:35 UTC 2017 - [email protected]
+
+- also pass "-no-pie" as linkerflag to disable PIE.
+
+-------------------------------------------------------------------
+Sat Mar 11 09:02:26 CET 2017 - [email protected]
+
+- Add /var/games to filelist
+
+-------------------------------------------------------------------
+Tue Feb 28 12:28:46 UTC 2017 - [email protected]
+
+- Test out release candidate of emacs bugfix release 25.2
+  * 'find-library', 'help-function-def' and 'help-variable-def' now run
+    'find-function-after-hook'.
+  * New basic face 'fixed-pitch-serif', for a fixed-width font with serifs.
+    The 'Info-quoted' and 'tex-verbatim' faces inherit from it by default.
+  * New variable 'use-default-font-for-symbols', for backward compatibility.
+    This variable allows you to get back pre-Emacs 25 behavior where the
+    font for displaying symbol and punctuation characters was always
+    selected according to your fontset setup.  By default, Emacs 25 tries
+    to use the default face's font for such characters, if it supports
+    them, disregarding the fontsets.  Set this variable to nil to disable
+    this and get back the old behavior.
+  * 'electric-quote-mode' is no longer suppressed in a buffer whose
+    coding system cannot represent curved quote characters.
+    Instead, users can deal with the unrepresentable characters in the
+     usual way when they save the buffer.
+  * New variable 'inhibit-compacting-font-caches'.
+    Set this variable to a non-nil value to speed up display of characters
+    using large fonts, at the price of a larger memory footprint.
+  * The version number of CC Mode has been changed from 5.33 to
+    5.32.99, although the software itself hasn't changed.  This aims to
+    reduce confusion with the standalone CC Mode 5.33 (available from
+    http://cc-mode.sourceforge.net), which is a more mature version than
+    the one included in Emacs 25.2.
+- Patch emacs-25.1.dif renamed to emacs-25.2.dif
+- Modified patches emacs-24.4-glibc.patch and emacs-24.4-ps-bdf.patch
+
+-------------------------------------------------------------------
+Tue Dec 20 16:10:47 UTC 2016 - [email protected]
+
+- Add patch emacs-25.1-custom-fonts.patch as workaround for boo#1016172 
+
+-------------------------------------------------------------------
+Fri Nov 11 09:01:36 UTC 2016 - [email protected]
+
+- Avoid address space randomization during emacs build
+- Check for active Execution Shield as this breaks emacs
+
+-------------------------------------------------------------------
+Wed Sep 21 06:31:44 UTC 2016 - [email protected]
+
+- Diable experimental cairo support as it cause trouble with spacemacs
+  as well as with the w3 mode 
+
+-------------------------------------------------------------------
+Mon Sep 19 15:01:07 UTC 2016 - [email protected]
+
+- Update to emacs version 25.1
+  * Next major release
+  * Xwidgets: a new feature for embedding native widgets inside Emacs buffers.
+  * Emacs can now load shared/dynamic libraries (modules).
+  * Network security (TLS/SSL certificate validity and the like)
+  * 'C-h l' now also lists the commands that were run.
+  * New option 'switch-to-buffer-in-dedicated-window'
+  * The option 'even-window-heights' has been renamed to 'even-window-sizes'
+  * 'terpri' gets an optional arg ENSURE to conditionally output a newline.
+  * 'insert-register' now leaves point after the inserted text
+  * The new variable 'term-file-aliases' replaces some files from lisp/term.
+  * New variable 'system-configuration-features', listing some of the main
+    features that Emacs was compiled with.
+  * A password is now hidden also when typed in batch mode.
+  * The Emacs pseudo-random number generator can be securely seeded.
+  * New input methods: 'tamil-dvorak', 'programmer-dvorak' and 'probhat'.
+  * 'M-x' suggests shorthands and ignores obsolete commands for completion.
+  * Changes in undo
+  * New command 'comment-line' bound to 'C-x C-;'.
+  * New and improved facilities for inserting Unicode characters
+  * New minor mode 'global-eldoc-mode' is enabled by default.
+  * Emacs now uses "bracketed paste mode" on text terminals that support it.
+  * Emacs now supports the latest version of the UBA.
+  * You can access 'mouse-buffer-menu' ('C-down-mouse-1') using 'C-f10'.
+  * New buffer-local 'electric-pair-local-mode'.
+  * New variable 'fast-but-imprecise-scrolling' inhibits fontification
+    during full screen scrolling operations.
+  * New documentation command 'describe-symbol'.
+  * New function 'custom-prompt-customize-unsaved-options' checks for
+    unsaved customizations and prompts user to customize (if found).
+  * The old 'C-x w' bindings in 'hi-lock-mode' are officially deprecated
+  * New function 'bookmark-set-no-overwrite' bound to 'C-x r M'.
+  * Many other details, see /usr/share/emacs/25.1/etc/NEWS
+- Patch emacs-24.4.dif renamed to emacs-25.1.dif
+- Patches removed as now upstream or fixed otherwise
+   debbugs16737.patch
++++ 2208 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:Leap:15.2:Update/.emacs.15550.new.28504/emacs.changes

New:
----
  app-defaults.Emacs
  check-build.sh
  dot.gnu-emacs
  emacs-24.1-bnc628268.patch
  emacs-24.1-ps-mule.patch
  emacs-24.3-asian-print.patch
  emacs-24.3-iconic.patch
  emacs-24.3-x11r7.patch
  emacs-24.4-decl.dif
  emacs-24.4-flyspell.patch
  emacs-24.4-glibc.patch
  emacs-24.4-nonvoid.patch
  emacs-24.4-ps-bdf.patch
  emacs-24.4-xim.patch
  emacs-25.1-custom-fonts.patch
  emacs-25.2-ImageMagick7.patch
  emacs-25.2-bsc1058425.patch
  emacs-25.2-xwidget.patch
  emacs-25.3-xft4x11.patch
  emacs-25.3.dif
  emacs-25.3.tar.xz
  emacs-libX11-boo1175028.patch
  emacs-rpmlintrc
  emacs.changes
  emacs.sh
  emacs.spec
  emacs.test
  gnulib.git-94e01571.patch
  site-lisp.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ emacs.spec ++++++
++++ 4792 lines (skipped)

++++++ app-defaults.Emacs ++++++
! ==========================================================================
!                               Emacs
! ==========================================================================

Emacs.pane.menubar.font:        
-*-helvetica-bold-r-normal--12-*-*-*-p-*-iso8859-*
Emacs.menu*.font:               
-*-helvetica-bold-r-normal--12-*-*-*-p-*-iso8859-*

! With GNU Emacs 24 Xft is used, therefore no fontsets are required. If you
! like to use fontsets you have to disable "FontBackend" and enable "Font".
! If Xft fails then X font scheme (including fontsets) is used as fallback.
Emacs.FontBackend:              xft,x
!!Emacs.Font:                   fontset-16
Emacs*Fontset-0:\
        -*-fixed-medium-r-*--16-*-*-*-*-*-fontset-16,\
        latin-iso8859-1:-*-fixed-medium-r-*--16-*-iso8859-1,\
        latin-iso8859-2:-*-fixed-medium-r-*--16-*-iso8859-2,\
        latin-iso8859-3:-*-fixed-medium-r-*--16-*-iso8859-3,\
        latin-iso8859-4:-*-fixed-medium-r-*--16-*-iso8859-4,\
        cyrillic-iso8859-5:-*-fixed-medium-r-*--16-*-iso8859-5,\
        greek-iso8859-7:-*-fixed-medium-r-*--16-*-iso8859-7,\
        hebrew-iso8859-8:-*-fixed-medium-r-*--16-*-iso8859-8,\
        latin-iso8859-9:-*-fixed-medium-r-*--16-*-iso8859-9,\
        latin-iso8859-15:-*-fixed-medium-r-*--16-*-iso8859-15,\
        arabic-digit:-*-fixed-medium-r-*--16-*-mulearabic-0,\
        arabic-1-column:-*-fixed-medium-r-*--16-*-mulearabic-1,\
        arabic-2-column:-*-fixed-medium-r-*--16-*-mulearabic-2,\
        katakana-jisx0201:-*-fixed-medium-r-*--16-*-jisx0201.1976-0,\
        japanese-jisx0208:-*-fixed-medium-r-*--16-*-jisx0208*-0,\
        korean-ksc5601:-*-fixed-medium-r-*--16-*-ksc5601*-*,\
        chinese-big5-1:-*-fixed-medium-r-*--16-*-big5*-0,\
        chinese-gb2312:-*-medium-r-normal-*-16-*-gb2312*-*,\
        chinese-cns11643-1:-*-medium-r-normal-*-16-*-cns11643*-1,\
        chinese-cns11643-2:-*-medium-r-normal-*-16-*-cns11643*-2,\
        chinese-cns11643-3:-*-medium-r-normal-*-16-*-cns11643*-3,\
        chinese-cns11643-4:-*-medium-r-normal-*-16-*-cns11643*-4,\
        chinese-cns11643-5:-*-medium-r-normal-*-16-*-cns11643*-5,\
        chinese-cns11643-6:-*-medium-r-normal-*-16-*-cns11643*-6,\
        chinese-cns11643-7:-*-medium-r-normal-*-16-*-cns11643*-7,\
        thai-tis620:-*-fixed-medium-r-*--16-*-tis620.2529-1,\
        vietnamese-viscii-lower:-*-fixed-medium-r-*--16-*-viscii1.1-1,\
        lao:-*-fixed-medium-r-*--16-*-mulelao-1,\
        tibetan:-*-fixed-medium-r-*--16-*-muletibetan-0,\
        tibetan-1-column:-*-fixed-medium-r-*--16-*-muletibetan-1
Emacs*Fontset-1:\
        -*-fixed-medium-r-*--24-*-*-*-*-*-fontset-24,\
        latin-iso8859-1:-*-fixed-medium-r-*--24-*-iso8859-1,\
        latin-iso8859-2:-*-fixed-medium-r-*--24-*-iso8859-2,\
        latin-iso8859-3:-*-fixed-medium-r-*--24-*-iso8859-3,\
        latin-iso8859-4:-*-fixed-medium-r-*--24-*-iso8859-4,\
        cyrillic-iso8859-5:-*-fixed-medium-r-*--24-*-iso8859-5,\
        greek-iso8859-7:-*-fixed-medium-r-*--24-*-iso8859-7,\
        hebrew-iso8859-8:-*-fixed-medium-r-*--24-*-iso8859-8,\
        latin-iso8859-9:-*-fixed-medium-r-*--24-*-iso8859-9,\
        latin-iso8859-15:-*-fixed-medium-r-*--24-*-iso8859-15,\
        arabic-digit:-*-fixed-medium-r-*--24-*-mulearabic-0,\
        arabic-1-column:-*-fixed-medium-r-*--24-*-mulearabic-1,\
        arabic-2-column:-*-fixed-medium-r-*--24-*-mulearabic-2,\
        katakana-jisx0201:-*-fixed-medium-r-*--24-*-jisx0201.1976-0,\
        japanese-jisx0208:-*-fixed-medium-r-*--24-*-jisx0208*-0,\
        korean-ksc5601:-*-fixed-medium-r-*--24-*-ksc5601*-*,\
        chinese-big5-1:-*-fixed-medium-r-*--24-*-big5*-0,\
        chinese-gb2312:-*-medium-r-normal-*-24-*-gb2312*-*,\
        chinese-cns11643-1:-*-medium-r-normal-*-24-*-cns11643*-1,\
        chinese-cns11643-2:-*-medium-r-normal-*-24-*-cns11643*-2,\
        chinese-cns11643-3:-*-medium-r-normal-*-24-*-cns11643*-3,\
        chinese-cns11643-4:-*-medium-r-normal-*-24-*-cns11643*-4,\
        chinese-cns11643-5:-*-medium-r-normal-*-24-*-cns11643*-5,\
        chinese-cns11643-6:-*-medium-r-normal-*-24-*-cns11643*-6,\
        chinese-cns11643-7:-*-medium-r-normal-*-24-*-cns11643*-7,\
        thai-tis620:-*-fixed-medium-r-*--24-*-tis620.2529-1,\
        vietnamese-viscii-lower:-*-fixed-medium-r-*--24-*-viscii1.1-1,\
        lao:-*-fixed-medium-r-*--24-*-mulelao-1,\
        indian-is13194:-*-fixed-medium-r-*--24-*-is13194-devanagari,\
        indian-1-column:-*-fixed-medium-r-*--24-*-muleindian-1,\
        indian-2-column:-*-fixed-medium-r-*--24-*-muleindian-2,\
        tibetan:-*-fixed-medium-r-*--24-*-muletibetan-0,\
        tibetan-1-column:-*-fixed-medium-r-*--24-*-muletibetan-1
Emacs*Fontset-2:\
        -*-fixed-medium-r-*--20-*-*-*-*-*-fontset-20,\
        latin-iso8859-1:-*-fixed-medium-r-*--20-*-iso8859-1,\
        latin-iso8859-2:-*-fixed-medium-r-*--20-*-iso8859-2,\
        latin-iso8859-3:-*-fixed-medium-r-*--20-*-iso8859-3,\
        latin-iso8859-4:-*-fixed-medium-r-*--20-*-iso8859-4,\
        cyrillic-iso8859-5:-*-fixed-medium-r-*--20-*-iso8859-5,\
        greek-iso8859-7:-*-fixed-medium-r-*--20-*-iso8859-7,\
        hebrew-iso8859-8:-*-fixed-medium-r-*--20-*-iso8859-8,\
        latin-iso8859-9:-*-fixed-medium-r-*--20-*-iso8859-9,\
        latin-iso8859-15:-*-fixed-medium-r-*--20-*-iso8859-15,\
        katakana-jisx0201:-*-fixed-medium-r-*--20-*-jisx0201.1976-0,\
        japanese-jisx0208:-*-fixed-medium-r-*--20-*-jisx0208*-0,\
        korean-ksc5601:-*-fixed-medium-r-*--20-*-ksc5601*-*
Emacs*Fontset-3:\
        -*-fixed-medium-r-*--18-*-*-*-*-*-fontset-18,\
        latin-iso8859-1:-*-fixed-medium-r-*--18-*-iso8859-1,\
        latin-iso8859-2:-*-fixed-medium-r-*--18-*-iso8859-2,\
        latin-iso8859-3:-*-fixed-medium-r-*--18-*-iso8859-3,\
        latin-iso8859-4:-*-fixed-medium-r-*--18-*-iso8859-4,\
        cyrillic-iso8859-5:-*-fixed-medium-r-*--18-*-iso8859-5,\
        greek-iso8859-7:-*-fixed-medium-r-*--18-*-iso8859-7,\
        hebrew-iso8859-8:-*-fixed-medium-r-*--18-*-iso8859-8,\
        latin-iso8859-9:-*-fixed-medium-r-*--18-*-iso8859-9,\
        latin-iso8859-15:-*-fixed-medium-r-*--18-*-iso8859-15,\
        katakana-jisx0201:-*-*-medium-r-*--18-*-jisx0201.1976-0,\
        japanese-jisx0208:-*-*-medium-r-*--18-*-jisx0208*-0,\
        korean-ksc5601:-*-fixed-medium-r-*--18-*-ksc5601*-*
Emacs*Fontset-4:\
        -*-fixed-medium-r-*--14-*-*-*-*-*-fontset-14,\
        latin-iso8859-1:-*-fixed-medium-r-*--14-*-iso8859-1,\
        latin-iso8859-2:-*-fixed-medium-r-*--14-*-iso8859-2,\
        latin-iso8859-3:-*-fixed-medium-r-*--14-*-iso8859-3,\
        latin-iso8859-4:-*-fixed-medium-r-*--14-*-iso8859-4,\
        cyrillic-iso8859-5:-*-fixed-medium-r-*--14-*-iso8859-5,\
        greek-iso8859-7:-*-fixed-medium-r-*--14-*-iso8859-7,\
        hebrew-iso8859-8:-*-fixed-medium-r-*--14-*-iso8859-8,\
        latin-iso8859-9:-*-fixed-medium-r-*--14-*-iso8859-9,\
        latin-iso8859-15:-*-fixed-medium-r-*--14-*-iso8859-15,\
        katakana-jisx0201:-*-fixed-medium-r-*--14-*-jisx0201.1976-0,\
        japanese-jisx0208:-*-fixed-medium-r-*--14-*-jisx0208*-0,\
        korean-ksc5601:-*-fixed-medium-r-*--14-*-ksc5601*-*,\
        thai-tis620:-*-fixed-medium-r-*--14-*-tis620.2529-1,\
        lao:-*-fixed-medium-r-*--14-*-mulelao-1
Emacs*Fontset-5:\
        -*-fixed-medium-r-*--12-*-*-*-*-*-fontset-12,\
        latin-iso8859-1:-*-fixed-medium-r-*--12-*-iso8859-1,\
        latin-iso8859-2:-*-fixed-medium-r-*--12-*-iso8859-2,\
        latin-iso8859-3:-*-fixed-medium-r-*--12-*-iso8859-3,\
        latin-iso8859-4:-*-fixed-medium-r-*--12-*-iso8859-4,\
        cyrillic-iso8859-5:-*-fixed-medium-r-*--12-*-iso8859-5,\
        greek-iso8859-7:-*-fixed-medium-r-*--12-*-iso8859-7,\
        latin-iso8859-15:-*-fixed-medium-r-*--12-*-iso8859-15,\
        hebrew-iso8859-8:-*-fixed-medium-r-*--12-*-iso8859-8,\
        latin-iso8859-9:-*-fixed-medium-r-*--12-*-iso8859-9,\
        katakana-jisx0201:-*-fixed-medium-r-*--12-*-jisx0201.1976-0,\
        japanese-jisx0208:-*-fixed-medium-r-*--12-*-jisx0208*-0,\
        korean-ksc5601:-*-fixed-medium-r-*--12-*-ksc5601.1987-0
Emacs*Fontset-6:\
        -*-fixed-medium-r-*--10-*-*-*-*-*-fontset-10,\
        latin-iso8859-1:-*-fixed-medium-r-*--10-*-iso8859-1,\
        latin-iso8859-2:-*-fixed-medium-r-*--10-*-iso8859-2,\
        latin-iso8859-3:-*-fixed-medium-r-*--10-*-iso8859-3,\
        latin-iso8859-4:-*-fixed-medium-r-*--10-*-iso8859-4,\
        cyrillic-iso8859-5:-*-fixed-medium-r-*--10-*-iso8859-5,\
        greek-iso8859-7:-*-fixed-medium-r-*--10-*-iso8859-7,\
        hebrew-iso8859-8:-*-fixed-medium-r-*--10-*-iso8859-8,\
        latin-iso8859-9:-*-fixed-medium-r-*--10-*-iso8859-9,\
        latin-iso8859-15:-*-fixed-medium-r-*--10-*-iso8859-15,\
        katakana-jisx0201:-*-fixed-medium-r-*--10-*-jisx0201.1976-0,\
        japanese-jisx0208:-*-fixed-medium-r-*--10-*-jisx0208*-0,\
        korean-ksc5601:-*-fixed-medium-r-*--10-*-ksc5601*-*
Emacs*Fontset-7:\
        -*-fixed-medium-r-*--8-*-*-*-*-*-fontset-8,\
        latin-iso8859-1:-*-fixed-medium-r-*--8-*-iso8859-1,\
        greek-iso8859-7:-*-fixed-medium-r-*--8-*-iso8859-7,\
        latin-iso8859-15:-*-fixed-medium-r-*--8-*-iso8859-15
Emacs*Fontset-8:\
        -*-fixed-medium-r-*--7-*-*-*-*-*-fontset-7,\
        latin-iso8859-1:-*-fixed-medium-r-*--7-*-iso8859-1,\
        greek-iso8859-7:-*-fixed-medium-r-*--7-*-iso8859-7,\
        latin-iso8859-15:-*-fixed-medium-r-*--7-*-iso8859-15
++++++ check-build.sh ++++++
#!/bin/bash
case $BUILD_BASENAME in
   *ppc*)
        if test $(getconf PAGESIZE) -ne 65536; then
            echo "Error: wrong build host, PAGESIZE must be 65536"
            exit 1
        fi
        ;;
   *ia64*)
        if test $(getconf PAGESIZE) -ne 65536; then
            echo "Error: wrong build host, PAGESIZE must be 65536"
            exit 1
        fi
        ;;
   *)
        ;;
esac

exec_shield=0
if test -e /proc/sys/kernel/exec-shield; then
        read -t 1 exec_shield < /proc/sys/kernel/exec-shield
fi
if test $exec_shield -ne 0 ; then
        echo Sorry, Execution Shield exists and is enabled 1>&2
        exit 1
fi
exit 0

++++++ dot.gnu-emacs ++++++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; File name: ` ~/.gnu-emacs '
;;; ---------------------
;;;
;;; Note: This file is for GNU-Emacs only ...
;;;       GNU-Emacs is incompatible to X-Emacs. Therefore your
;;;       personal ~/.emacs should load this file if your runnning
;;;       the good old GNU-emacs.
;;;
;;; If you need your own personal ~/.gnu-emacs
;;; please make a copy of this file
;;; an placein your changes and/or extension.
;;;
;;; For emacs commands have a look onto the
;;; `emacs-revcard' in the directory /usr/doc/packages/emacs/
;;;
;;; Copyright 1993-2001 Werner Fink
;;; Copyright (c) 1996-2001 SuSE Gmbh Nuernberg, Germany.
;;; All rights reserved.
;;;
;;; Author: Werner Fink, <[email protected]> 1993-2001
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; No splash screen at all
;; -----------------------
(if (and (file-exists-p "~/.inhibit-splash-screen")
         (boundp 'inhibit-splash-screen))
  (setq-default inhibit-splash-screen t))
;;
;; Debuging only
;; -------------
;  (open-dribble-file "~/.dribble")
;  (open-termscript "~/.termscript")
;;
;; Emacs makes backup by moving original files, to
;; avoid trouble with hardlinked files we may use:
;; -----------------------------------------------
;  (defconst backup-by-copying-when-linked t)
;;
;; Rmail: We will place all Mail's an Mail-folders into ~/Mail
;; -----------------------------------------------------------
(if (file-accessible-directory-p "~/Mail/")
    (setq rmail-secondary-file-directory "~/Mail/"))
;;
;; Prefix for mail-mode
;; ---------------------
  (setq mail-yank-prefix "> ")
; (setq mail-archive-file-name "~/Mail/.CarbonCopy")
  (setq mail-self-blind nil)
  (setq mail-default-headers nil)
  (setq mail-signature nil)
;;
;; Settings for message-mode
;; -------------------------
  (setq message-from-style "angles")
(if (null mail-host-address)
  (let ((tmph (getenv "HOSTNAME"))
        (tmpf (getenv "FROM_HEADER")))
     (if (or (null tmph) (not (string-match "\\." tmph)))
         (setq tmph (system-name)))
     (if (not (string-match "\\." tmph))
         (setq mail-host-address "our.domain.is.not.set")
        (string-match "\\." tmph)
        (setq mail-host-address (substring tmph (match-end 0))))
     (if (stringp tmpf)
         (setq mail-host-address tmpf)))
     (setq tmpf nil tmph nil))
;;
;; RMAILGEN: Folder im Rmail-Mode :-)
;; ----------------------------------
;;
;; 1. I want to define a mail directory that isn't `~/'
(if (file-accessible-directory-p "~/Mail/")
    (setq rmailgen-default-directory "~/Mail/")) ; must end in slash
;;;
;; 2. I want 78 column
(add-hook 'mail-mode-hook (function (lambda () (setq fill-column 78))))
(if (file-exists-p "~/.abbrev_defs")
    (progn (read-abbrev-file "~/.abbrev_defs")
           (add-hook 'mail-setup-hook 'mail-abbrevs-setup)))
;;;
;; 3. By default, if mail-archive-file-name is non-nil then
;; archive file names will be generated automatically based on
;; the message to which a reply is being constructed.  If I
;; wanted to turn this off I would put in a statement like
(setq rmailgen-archive-file-name nil)
;;;
;; 4. By default, rmailgen.el downcases generated filenames
;; If I wanted uppercase I would put in a statement like here.
(setq rmailgen-downcase "dummy")
;;;
;; 5. By default, rmailgen.el does not append `.gz' to generated
;; filenames.  If I wanted such an extension I would put in a statement
;; like
;;(setq rmailgen-gzip-file-name t)
;;;
;; 6. By default, rmailgen.el will use generated FCC filenames even
;; if the file does not exist.  If I wanted to FCC only if the file
;; already exists I would put in a statement like
;; (setq rmailgen-archive-only-if-exists t)
;;;
;; 7. Add my own personal output list for specific friends
;; and special subjects.
;;;
;; First define rmail-output-file-alist, just in case this
;; is not already defined.  That is, may be
;; ../lisp/rmailout.el has not been loaded yet.
(if (not (boundp 'rmail-output-file-alist))
    (defvar rmail-output-file-alist nil))
;;;
(setq rmail-output-file-alist
      (append
        (list

;         ;; For my friends (some have strange account names).
;         '("^From:[ \t]*.*jones.*" . "jmjones")
;         '("^From:[ \t]*.*Joe[ \t]*Smith.*" . "joe")
;
;         ;; Special subject lines.
;         '("^Subject:[ \t]*.*crypt.*" . "crypt++")
;         '("^Subject:[ \t]*.*rmailgen.*" . "genrmail")
;         '("^Subject:[ \t]*.*dired-x.*" . "dired-x")
;         '("^Subject:[ \t]*.*GNU Emacs 19 RMAIL Poll.*" . "rmail")
;
;         ;; Add more entries here...
        )
;;;
        ;; In case rmail-output-file-alist has been defined
        ;; already elsewhere.
        rmail-output-file-alist))
;;;
;; 8. Load package [REQUIRED].
(if (file-exists-p "/usr/share/emacs/site-lisp/rmailgen.el")
    (require 'rmailgen))
;;
;; Base text mode
;; ----------------------
  (setq default-major-mode 'text-mode)
  (line-number-mode 1)
  (global-set-key "\e\?" 'goto-line)
  (column-number-mode 1)
;;
;; User can cutomize that: Just show e.g. DOS files with CR/NL
;; ----------------------
; (setq-default inhibit-eol-conversion t)
  (setq-default require-final-newline "ask")
;;
;; Specials for X Window System
;; -------------------------
(if (not window-system)
      ;; ispell
      ;; ----------------------
      ;; (A few changes on ispell)
      (setq ispell-highlight-face 'underline);)
  ;;
  ;; Some fonts
  ;; -----------------------
  (if (> emacs-major-version 20) (require 'xfonts))
  ;;
  ;; New in Emacs 21: tool bar menu, you may switch it of
  ;; ----------------------------------------------------
; (if (fboundp 'tool-bar-mode) (tool-bar-mode 0))
  ;;
  ;; mouse as arrow
  ;; --------------
  (setq x-pointer-shape x-pointer-left-ptr)
  (if (x-display-color-p)
      (set-mouse-color "RoyalBlue")
    (set-mouse-color (cdr (assq 'mouse-color (frame-parameters)))))
  ;;
  ;;   Automatically replacing of fore- and background.
  (if (not (x-display-color-p))
    (progn
      (set-face-background 'region
               (cdr (assq 'foreground-color (frame-parameters ))))
      (set-face-foreground 'region
               (cdr (assq 'background-color (frame-parameters ))))
      ;; ispell
      ;; ----------------------
      ;; (A few changes on ispell)
      (setq ispell-highlight-face 'underline)))
  ;;
  ;; Highlighting of special emacs modes
  ;; -----------------------------------
  ;; We use font lock mode

  ;; Darken greyed strings in font lock mode
  (custom-declare-face 'font-lock-string-face
    '((((class grayscale) (background light)) (:foreground "gray37"    :italic 
t))
      (((class grayscale) (background dark))  (:foreground "LightGray" :italic 
t))
      (((class color) (background light)) (:foreground "gray37"))
      (((class color) (background dark))  (:foreground "LightGray"))
      (t (:italic t)))
    "Font Lock mode face used to highlight strings."
    :group 'font-lock-highlighting-faces)

  ;; Enable font lock support
  (require 'font-lock)
  (cond ((and (boundp 'jit-lock-mode) (symbol-value 'jit-lock-mode))
         (setq font-lock-support-mode '((latex-mode . fast-lock-mode) (t . 
jit-lock-mode))))
        ((and (boundp 'lazy-lock-mode) (symbol-value 'lazy-lock-mode))
         (setq font-lock-support-mode '((latex-mode . fast-lock-mode) (t . 
lazy-lock-mode)))))
  (add-hook 'after-init-hook '(lambda () (global-font-lock-mode 1)))

  ;;
  ;; Some dialog
  ;; ------------------
  (setq use-dialog-box t)
  ;;
  ;; less dialog
  ;; -----------
  ;(menu-prompting nil)
  ;; 
  ;; Set X synchrone
  ;; ---------------
  ;; Speed up
   (setq mouse-scroll-delay 0)
   (setq x-selection-timeout 0)
  ;;
  ;; We use a wrapper script for netscape
  ;;
  (if (file-executable-p "/usr/X11R6/bin/Netscape")
      (setq browse-url-netscape-program "/usr/X11R6/bin/Netscape"))
)
;;
;; emacsclient: automatical popup under X11
;; ------------------------------------------
;(defun server-make-window-visible ()
;  "Try to make this window even more visible."
;(if window-system
;  (progn
;     (let ((foo (selected-frame)))
;          (sit-for 0)
;          (make-frame-visible foo))
;       (accept-process-output))))
;(add-hook 'server-switch-hook '(lambda () (server-make-window-visible)))
;(add-hook 'server-visit-hook  '(lambda () (server-make-window-visible)))
;; Start it for popup
;(server-start)
;;
;; Emacs experts like this
;; -----------------------
(put 'eval-expression 'disabled nil)
;;
;; Working on parts of text
;; ------------------------
;; NB: `C-x n n' is narrow-to-region
;;     `C-x n p' is narrow-to-page
;;     `C-x n w' is widen
;(put 'narrow-to-region 'disabled nil)
;(put 'narrow-to-page   'disabled nil)
;;
;; GNUS
;; ----
;; Sorting
(if (or (and (= emacs-major-version 19) (> emacs-minor-version 29))
        (> emacs-major-version 19))
     (add-hook 'gnus-select-group-hook
        '(lambda ()
          (setq-default gnus-auto-select-first nil)
          (setq-default gnus-auto-center-summary nil)
          (setq gnus-thread-sort-functions
           '(gnus-thread-sort-by-number
             gnus-thread-sort-by-subject
             gnus-thread-sort-by-date
             gnus-thread-sort-by-score))))
   (add-hook 'gnus-select-group-hook
        '(lambda ()
          (setq-default gnus-auto-select-first nil)
          (setq-default gnus-auto-center-summary nil)
          ;; First of all, sort by date.
          (gnus-keysort-headers
           (function string-lessp)
           (function
            (lambda (a)
              (gnus-sortable-date (gnus-header-date a)))))
          ;; Then sort by subject string ignoring `Re:'.
          ;; If case-fold-search is non-nil, case of letters is ignored.
          (gnus-keysort-headers
           (function string-lessp)
           (function
            (lambda (a)
              (if case-fold-search
                  (downcase (gnus-simplify-subject (gnus-header-subject a) t))
                (gnus-simplify-subject (gnus-header-subject a) t)))))
         ))
)
;; highlighting, menus, and subscribing in GNUS
(add-hook 'gnus-startup-hook
     '(lambda ()
        (setq gnus-subscribe-newsgroup-method
        '(lambda (newsgroup)
           (gnus-subscribe-newsgroup newsgroup)
           (gnus-kill-newsgroup newsgroup)))
        (setq gnus-use-generic-from t)
        ;; highlighting and menu in GNUS
        (if (or (and (= emacs-major-version 19) (> emacs-minor-version 29))
                (> emacs-major-version 19))
          (progn
            (setq gnus-visual '(highlight menu))
            (setq gnus-group-highlight
                '(;; News.
                  ((and (> unread 100) (not mailp)) . 
gnus-summary-high-ticked-face)
                  ((and (> unread 0) (not mailp))   . 
gnus-summary-high-read-face)
                  ((and (= unread 0) (not mailp))   . 
gnus-summary-high-ancient-face) 
                  ((not mailp)                      . 
gnus-summary-normal-ancient-face) 
                  ;; Mail.
                  ((and (= unread 0) (eq level 1))  . 
gnus-group-mail-1-empty-face)
                  ((eq level 1)                     . gnus-group-mail-1-face)
                  ((and (= unread 0) (eq level 2))  . 
gnus-group-mail-2-empty-face)
                  ((eq level 2)                     . gnus-group-mail-2-face)
                  ((and (= unread 0) (eq level 3))  . 
gnus-group-mail-3-empty-face)
                  ((eq level 3)                     . gnus-group-mail-3-face)
                  ((= unread 0)                     . 
gnus-group-mail-low-empty-face)
                  (t                                . 
gnus-group-mail-low-face)))
      )))
)
;;
;; Common to all C modes
;; ---------------------
;(add-hook 'c-mode-common-hook
;   '(lambda () (c-set-style "linux")
;       (c-set-offset 'case-label 4)
;       (setq c-basic-offset 4)))

;;
;; Auto fill mode
;; --------------
(add-hook 'text-mode-hook 'turn-on-auto-fill)
;;
;; Fill-column
;; -----------
;;    Fill-column ist hier auf 78 Charakter gesetzt, nach Wunsch "andern!
(setq-default fill-column 78)
(add-hook 'TeX-mode-hook '(lambda () (setq fill-column 78)))
;;
;; AUC-TeX
;; ----------------------------
(if (boundp 'AUCTeX-version)
 (progn
  (let* ((version (split-string AUCTeX-version "\\."))
         (major (string-to-number (car version)))
         (minor (string-to-number (car (cdr version)))))
    (if (or (> major 11) (and (eq major 11) (>= minor 86)))
        (custom-set-default 'TeX-master nil)
      (setq-default TeX-master nil)))
; ; Users private libaries 
; (if (boundp 'AUCTeX-version)
;   (progn
;     (setq TeX-macro-private '("~/lib/tex-lib/"))
;     (setq TeX-style-private   "~/lib/site-lisp/auctex/style/")   ; 
AUC-TeX-Macros
;     (setq TeX-auto-private    "~/lib/site-lisp/auctex/auto/")))  ; Autom. 
Auc-TeX-Macros
  (if (and window-system (featurep 'font-lock))
      (progn
        (add-hook 'latex-mode-hook 'turn-on-font-lock)
        (if (boundp 'AUCTeX-version)
          (progn
            (add-hook 'LaTeX-mode-hook 'turn-on-font-lock)
            (add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
            (add-hook 'after-init-hook '(lambda () (load "auctex/font-latex" 
nil t)))))))
))

;;
;; Brace macros
;; ------------
(defun TeX-Inserting (sta stb stc)
    (if (= (preceding-char) sta )
        (insert stb)
      (progn (insert stc) (backward-char 1))))
(defun TeX-schweif () (interactive "*") (TeX-Inserting ?\\ "{"  "{}"))
(defun TeX-rundekl () (interactive "*") (TeX-Inserting ?\\ "("  "()"))
(defun TeX-eckigek () (interactive "*") (TeX-Inserting ?\\ "["  "[]"))
(defun TeX-exponen () (interactive "*") (TeX-Inserting ?\\ "^" "^{}"))
(defun TeX-subscri () (interactive "*") (TeX-Inserting ?\\ "_" "_{}"))
(defun TeX-dollarm () (interactive "*") (TeX-Inserting ?\\ "$"  "$$"))
(defun TeX-REVbbox () (interactive "*") (TeX-Inserting ?\\ "bbox{"  "\\bbox{}"))
(add-hook 'LaTeX-mode-hook
      '(lambda ()
         ;; Uncomment this for automatic bracket closing
         ;; Begin bracket closing
;        (local-set-key  "{" 'TeX-schweif)
;        (local-set-key  "(" 'TeX-rundekl)
;        (local-set-key  "[" 'TeX-eckigek)
;        (local-set-key  "^" 'TeX-exponen)
;        (local-set-key  "_" 'TeX-subscri)
;        (local-set-key  "$" 'TeX-dollarm)
;        (local-set-key  "\C-b" 'TeX-REVbbox)
         ;;
         ;; It's german:
         ;; Deutsche Tastatur im LaTeX-German-Style/Babel-Class
         ;; ---------------------------------------------------
         ;;    Aktivierung mit `M-x german-mode' -> man dr"ucke
         ;;    *nacheinander* <ComposeCharacter>, <">, <a> und staune!
         ;;    ACHTUNG: Bei grossen Files sehr LANGSAM beim Abspeichern
         ;;    das ist vom Prinzip her bedingt! Hier gibt's keinen Support!
;        (require 'ger-keys)
         ;; End bracket closing
         ;; For ISO Latin standard: Macro out of `ger-keys'
         ;; ger-keys should be loaded
;        (german-mode)
         ;; For german style usage:
;        (modify-syntax-entry ?" "w")
;        (local-set-key  "\"" 'self-insert-command)
         ;; Deutsche Belegung amerikanischer Tastaturen: aus `ger-keys'
;        (german-keyboard)
))
;;
;; Provide some usefull function keys
;; ----------------------------------
;; Have a look on /usr/share/emacs/site-lisp/function-keys.el
;; Extensions or changes of the keymap
;; original definitions will found in loaddefs.el.
;;(global-set-key [escape] [?\e]) ; Escape
;;
  (global-set-key [M-left]  'backward-word)
  (global-set-key [M-right] 'forward-word)
  (global-set-key [M-up]    'beginning-of-line)
  (global-set-key [M-down]  'end-of-line)
;;
; (global-set-key [C-left]  'backward-char)
; (global-set-key [C-right] 'forward-char)
; (global-set-key [C-up]    'previous-line)
; (global-set-key [C-down]  'next-line)
;;
; (global-set-key [S-left]  'backward-char)
; (global-set-key [S-right] 'forward-char)
; (global-set-key [S-up]    'previous-line)
; (global-set-key [S-down]  'next-line)
;;
  (global-set-key [find]   'isearch-forward) ; Search
  (global-set-key [select] 'set-mark-command) ; Mark
;;
  (global-set-key [S-next]   'end-of-buffer)
  (global-set-key [S-prior]  'beginning-of-buffer)
  (global-set-key [S-find]   'find-file)
  (global-set-key [S-select] 'switch-to-buffer)
  (global-set-key [S-insert] 'insert-file)
;;
  (if (and (= emacs-major-version 19) (= emacs-minor-version 29))
    (define-key key-translation-map [f1] nil)) ; 19.29+
  (global-set-key [S-f1]  'find-file)
  (global-set-key [M-f1]  'find-file)
  (global-set-key [f1]    'help-for-help)    ; `Help'
  (global-set-key [pause] 'toggle-read-only) ; `HoldScreen'
;;
  (if (global-key-binding [f2])
    (progn
      (global-set-key [S-f2]  'split-window)
      (global-set-key [M-f2]  'split-window))
    (global-set-key [f2]  'split-window))
  (if (global-key-binding [f2])
    (progn
      (global-set-key [S-f2]  'split-window)
      (global-set-key [M-f2]  'split-window))
    (global-set-key [f2]  'split-window))
  (if (global-key-binding [f3])
    (progn
      (global-set-key [S-f3]  'isearch-forward)
      (global-set-key [M-f3]  'isearch-forward))
    (global-set-key [f3]  'isearch-forward))
  (if (global-key-binding [f4])
    (progn
      (global-set-key [S-f4]  'query-replace-regexp)
      (global-set-key [M-f4]  'query-replace-regexp))
    (global-set-key [f4]  'query-replace-regexp))
  (if (global-key-binding [f5])
    (progn
      (global-set-key [S-f5]  'save-buffer)
      (global-set-key [M-f5]  'save-buffer))
    (global-set-key [f5]  'save-buffer))
  (if (global-key-binding [f6])
    (progn
      (global-set-key [S-f6]  'find-file)
      (global-set-key [M-f6]  'find-file))
    (global-set-key [f6]  'find-file))
  (if (global-key-binding [f7])
    (progn
      (global-set-key [S-f7]  'buffer-menu)
      (global-set-key [M-f7]  'buffer-menu))
    (global-set-key [f7]  'buffer-menu))
  (if (global-key-binding [f8])
    (progn
      (global-set-key [S-f8]  'repeat-complex-command)
      (global-set-key [M-f8]  'repeat-complex-command))
    (global-set-key [f8]  'repeat-complex-command))
  (if (global-key-binding [f9])
    (progn
      (global-set-key [S-f9]  'execute-extended-command)
      (global-set-key [M-f9]  'execute-extended-command))
    (global-set-key [f9]  'execute-extended-command))
  (if (global-key-binding [f10])
    (progn
      (global-set-key [S-f10] 'eval-expression)
      (global-set-key [M-f10] 'eval-expression))
    (global-set-key [f10] 'eval-expression))
;;
;;(global-set-key [f11] [?\e]) ; Escape
  (global-set-key [f11] esc-map) ; Escape
;;
  (global-set-key [f12]       'backward-delete-char-untabify) ; Backspace
;;
;; DEC keyboard: f13 up to f20
  (global-set-key [f13]      'newline) ; Linefeed
  (global-set-key [linefeed] 'newline) ; Linefeed
;;
  (global-set-key [f14] 'switch-to-buffer)
;;
;; Emacs original key binding
;;
; (global-set-key [home]   'beginning-of-buffer) ;
; (global-set-key [end]    'end-of-buffer) ;
;;
  (global-set-key [help]   'info) ; Help
  (global-set-key [M-help] 'repeat-complex-command) ; Redo
  (global-set-key [menu]   'execute-extended-command) ; Do
  (global-set-key [M-menu] 'eval-expression) ; eval
;;
  (global-set-key [f17] 'beginning-of-buffer)
  (global-set-key [f18] 'end-of-buffer)
  (global-set-key [f19] 'save-buffer)
  (global-set-key [f20] 'find-file)
;;
;; Translate `C-h' to DEL.
; (keyboard-translate ?\C-h ?\C-?)
;;
;; Translate DEL to `C-h'.
; (keyboard-translate ?\C-? ?\C-h)
;;;;;;;;;;
;; the end
++++++ emacs-24.1-bnc628268.patch ++++++
--- lisp/obsolete/spell.el
+++ lisp/obsolete/spell.el      2012-06-27 11:54:27.600009491 +0000
@@ -64,7 +64,7 @@ as its \"correct\" spelling; then the qu
   (with-no-warnings
     (spell-region (point-min) (point-max) "buffer")))
 ;;;###autoload
-(make-obsolete 'spell-buffer 'ispell-buffer "23.1")
+(define-obsolete-function-alias 'spell-buffer 'ispell-buffer "23.1")
 
 ;;;###autoload
 (defun spell-word ()
@@ -83,7 +83,7 @@ and `query-replace' the entire buffer to
     (with-no-warnings
       (spell-region beg end (buffer-substring beg end)))))
 ;;;###autoload
-(make-obsolete 'spell-word 'ispell-word "23.1")
+(define-obsolete-function-alias 'spell-word 'ispell-word "23.1")
 
 ;;;###autoload
 (defun spell-region (start end &optional description)
@@ -141,7 +141,7 @@ for example, \"word\"."
             (query-replace-regexp (concat "\\b" (regexp-quote word) "\\b")
                                   newword)))))))
 ;;;###autoload
-(make-obsolete 'spell-region 'ispell-region "23.1")
+(define-obsolete-function-alias 'spell-region 'ispell-region "23.1")
 
 ;;;###autoload
 (defun spell-string (string)
++++++ emacs-24.1-ps-mule.patch ++++++
---
 lisp/ps-mule.el          |    2 ++
 lisp/textmodes/ispell.el |   14 +++++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

--- lisp/ps-mule.el
+++ lisp/ps-mule.el     2016-09-19 09:01:56.930605125 +0000
@@ -182,6 +182,8 @@ See also the variable `ps-font-info-data
 
 (defconst ps-mule-font-info-database-latin
   '((iso-8859-1
+     (normal nil nil))
+    (iso-8859-15
      (normal nil nil)))
   "Sample setting of `ps-mule-font-info-database' to use latin fonts.")
 
--- lisp/textmodes/ispell.el
+++ lisp/textmodes/ispell.el    2016-09-19 09:01:56.930605125 +0000
@@ -1709,10 +1709,18 @@ Protects against bogus binding of `enabl
       nil                        ;; in pipe mode. Disable extended-char-mode
     (nth 6 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
               (assoc ispell-current-dictionary ispell-dictionary-alist)))))
+;;
+;; Most languages in ISO-8859-15 for EURO symbols uses ISO-8859-1 chars
+;(defun ispell-get-coding-system ()
+;  (nth 7 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
+;           (assoc ispell-current-dictionary ispell-dictionary-alist))))
 (defun ispell-get-coding-system ()
-  (nth 7 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
-            (assoc ispell-current-dictionary ispell-dictionary-alist))))
-
+  (let ((sys (nth 7 (or (assoc ispell-current-dictionary 
ispell-local-dictionary-alist)
+                       (assoc ispell-current-dictionary 
ispell-dictionary-alist)))))
+       (if (and (boundp 'buffer-file-coding-system)
+                (eq buffer-file-coding-system 'iso-latin-9)
+                (eq sys 'iso-latin-1))
+           'iso-latin-9 sys)))
 
 (defvar ispell-pdict-modified-p nil
   "Non-nil means personal dictionary has modifications to be saved.")
++++++ emacs-24.3-asian-print.patch ++++++
---
 lisp/ps-mule.el |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- lisp/ps-mule.el
+++ lisp/ps-mule.el     2016-09-19 08:57:28.807664990 +0000
@@ -264,7 +264,7 @@ Currently, data for Japanese and Korean
     (japanese-jisx0208
      (normal bdf "jiskan24.bdf"))
     (korean-ksc5601
-     (normal bdf "hanglm24.bdf"))
+     (normal bdf "gulim24.bdf"))
     (japanese-jisx0212
      (normal bdf ("jksp40.bdf" "jisksp40.bdf")))
     (chinese-cns11643-1
++++++ emacs-24.3-iconic.patch ++++++
---
 lisp/startup.el |    3 +++
 1 file changed, 3 insertions(+)

--- lisp/startup.el
+++ lisp/startup.el     2016-09-19 09:15:26.871345783 +0000
@@ -2349,6 +2349,9 @@ nil default-directory" name)
                     ((equal argi "-no-splash")
                      (setq inhibit-startup-screen t))
 
+                   ((equal argi "-iconic")
+                    (setq inhibit-startup-message t))
+
                     ((member argi '("-f"       ; what the manual claims
                                     "-funcall"
                                     "-e"))  ; what the source used to say
++++++ emacs-24.3-x11r7.patch ++++++
---
 src/xrdb.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

--- src/xrdb.c
+++ src/xrdb.c  2016-09-19 09:10:35.504833294 +0000
@@ -39,6 +39,9 @@ along with GNU Emacs.  If not, see <http
 #include <X11/X.h>
 #include <X11/Xutil.h>
 #include <X11/Xresource.h>
+#ifdef USE_X_TOOLKIT
+#include <X11/Intrinsic.h>
+#endif
 #ifdef HAVE_PWD_H
 #include <pwd.h>
 #endif
@@ -496,6 +499,15 @@ x_load_resources (Display *display, cons
   XrmPutLineResource (&rdb, line);
 
 #endif /* not USE_MOTIF */
+#ifdef USE_X_TOOLKIT
+  if ((db = XtScreenDatabase(DefaultScreenOfDisplay (display))))
+    {
+      XrmCombineDatabase (rdb, &db, FALSE);
+      rdb = db;
+    }
+  else
+    {
+#endif /* not USE_X_TOOLKIT */
 
   user_database = get_user_db (display);
 
@@ -537,6 +549,10 @@ x_load_resources (Display *display, cons
        XrmMergeDatabases (db, &rdb);
     }
 
+#ifdef USE_X_TOOLKIT
+    } /* (db != XtScreenDatabase()) */
+#endif /* not USE_X_TOOLKIT */
+
   return rdb;
 }
 
++++++ emacs-24.4-decl.dif ++++++
---
 src/frame.c |    3 +++
 1 file changed, 3 insertions(+)

--- src/frame.c
+++ src/frame.c 2014-10-21 13:58:24.419838036 +0000
@@ -20,6 +20,9 @@ along with GNU Emacs.  If not, see <http
 #include <config.h>
 
 #include <stdio.h>
+#ifdef STDC_HEADERS
+#include <stdlib.h>
+#endif
 #include <errno.h>
 #include <limits.h>
 
++++++ emacs-24.4-flyspell.patch ++++++
---
 lisp/textmodes/flyspell.el |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

--- lisp/textmodes/flyspell.el
+++ lisp/textmodes/flyspell.el  2016-09-19 09:22:48.535025631 +0000
@@ -287,6 +287,12 @@ If this variable is nil, all regions are
   :type 'key-sequence
   :group 'flyspell)
 
+(defvar flyspell-signature-separator
+  (if (boundp 'message-signature-separator)
+       message-signature-separator
+     "^-- $")
+  "*String used to recognize .signatures.")
+
 ;;*---------------------------------------------------------------------*/
 ;;*    Mode specific options                                            */
 ;;*    -------------------------------------------------------------    */
@@ -310,7 +316,6 @@ property of the major mode name.")
 ;;*--- mail mode -------------------------------------------------------*/
 (put 'mail-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify)
 (put 'message-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify)
-(defvar message-signature-separator)
 (defun mail-mode-flyspell-verify ()
   "Function used for `flyspell-generic-check-word-predicate' in Mail mode."
   (let* ((header-end (save-excursion
@@ -322,11 +327,11 @@ property of the major mode name.")
                         nil t)
                        (point)))
          (signature-begin
-          (if (not (boundp 'message-signature-separator))
+          (if (not (boundp 'flyspell-signature-separator))
               (point-max)
             (save-excursion
               (goto-char (point-max))
-              (re-search-backward message-signature-separator
+              (re-search-backward flyspell-signature-separator
                                   (max header-end (- (point) 4000)) t)
               (point)))))
     (cond ((< (point) header-end)
++++++ emacs-24.4-glibc.patch ++++++
---
 configure    |    1 +
 configure.ac |    1 +
 2 files changed, 2 insertions(+)

--- configure.ac
+++ configure.ac        2017-02-27 14:03:47.908816992 +0000
@@ -2197,6 +2197,7 @@ fi
 use_mmap_for_buffers=no
 case "$opsys" in
   cygwin|mingw32|freebsd|irix6-5) use_mmap_for_buffers=yes ;;
+  gnu-linux) use_mmap_for_buffers=yes ;;
 esac
 
 AC_FUNC_MMAP
--- configure
+++ configure   2017-02-27 14:03:47.912816917 +0000
@@ -11576,6 +11576,7 @@ fi
 use_mmap_for_buffers=no
 case "$opsys" in
   cygwin|mingw32|freebsd|irix6-5) use_mmap_for_buffers=yes ;;
+  gnu-linux) use_mmap_for_buffers=yes ;;
 esac
 
 
++++++ emacs-24.4-nonvoid.patch ++++++
---
 src/emacs-module.c |    1 +
 src/xmenu.c        |    4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

--- src/xmenu.c
+++ src/xmenu.c 2016-09-19 09:01:56.930605125 +0000
@@ -1922,8 +1922,8 @@ Lisp_Object
 xw_popup_dialog (struct frame *f, Lisp_Object header, Lisp_Object contents)
 {
   Lisp_Object title;
-  const char *error_name;
-  Lisp_Object selection;
+  const char *error_name = NULL;
+  Lisp_Object selection = Qnil;
   ptrdiff_t specpdl_count = SPECPDL_INDEX ();
 
   check_window_system (f);
--- src/emacs-module.c
+++ src/emacs-module.c  2016-09-20 09:36:52.881778063 +0000
@@ -787,6 +787,7 @@ usage: (module-call ENVOBJ &rest ARGLIST
     default:
       eassume (false);
     }
+  return Qnil;
 }
 
 
++++++ emacs-24.4-ps-bdf.patch ++++++
---
 lisp/ldefs-boot.el |    4 ++--
 lisp/ps-bdf.el     |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

--- lisp/ldefs-boot.el
+++ lisp/ldefs-boot.el  2017-09-22 09:54:57.114564921 +0000
@@ -22141,9 +22141,9 @@ With prefix argument ARG, restart the Pr
 ;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (22768 58519 620336 792000))
 ;;; Generated autoloads from ps-bdf.el
 
-(defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list 
(expand-file-name "fonts/bdf" installation-directory)) 
'("/usr/local/share/emacs/fonts/bdf")) "\
+(defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list 
(expand-file-name "fonts/bdf" installation-directory)) 
'("/usr/share/fonts/bdf")) "\
 List of directories to search for `BDF' font files.
-The default value is (\"/usr/local/share/emacs/fonts/bdf\").")
+The default value is (\"/usr/share/fonts/bdf\").")
 
 (custom-autoload 'bdf-directory-list "ps-bdf" t)
 
--- lisp/ps-bdf.el
+++ lisp/ps-bdf.el      2017-09-22 09:53:18.780402545 +0000
@@ -42,9 +42,9 @@
 (defcustom bdf-directory-list
   (if (memq system-type '(ms-dos windows-nt))
       (list (expand-file-name "fonts/bdf" installation-directory))
-    '("/usr/local/share/emacs/fonts/bdf"))
+    '("/usr/share/fonts/bdf"))
   "List of directories to search for `BDF' font files.
-The default value is (\"/usr/local/share/emacs/fonts/bdf\")."
+The default value is (\"/usr/share/fonts/bdf\")."
   :type '(repeat :tag "BDF font directory list"
                 (directory :tag "BDF font directory"))
   :group 'ps-print-miscellany)
++++++ emacs-24.4-xim.patch ++++++
---
 src/xfns.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- src/xfns.c
+++ src/xfns.c  2016-09-19 09:10:35.504833294 +0000
@@ -1957,8 +1957,8 @@ static XIMStyle best_xim_style (XIMStyle
 
 static const XIMStyle supported_xim_styles[] =
 {
-  XIMPreeditPosition | XIMStatusArea,
   XIMPreeditPosition | XIMStatusNothing,
+  XIMPreeditPosition | XIMStatusArea,
   XIMPreeditPosition | XIMStatusNone,
   XIMPreeditNothing | XIMStatusArea,
   XIMPreeditNothing | XIMStatusNothing,
++++++ emacs-25.1-custom-fonts.patch ++++++
Work around openSUSE bug #1016172
 
--
 lisp/dynamic-setting.el |   29 +++++++++++++++--------------
 src/xsettings.c         |    7 ++++++-
 2 files changed, 21 insertions(+), 15 deletions(-)

--- lisp/dynamic-setting.el
+++ lisp/dynamic-setting.el     2016-12-20 16:51:49.533433283 +0000
@@ -33,6 +33,7 @@
 ;;; Customizable variables
 
 (declare-function font-get-system-font "xsettings.c" ())
+(declare-function font-face-attributes "font.c" (font &optional frame))
 
 (defvar font-use-system-font)
 
@@ -42,28 +43,28 @@ If DISPLAY-OR-FRAME is a frame, the disp
 
 If SET-FONT is non-nil, change the font for frames.  Otherwise re-apply the
 current form for the frame (i.e. hinting or somesuch changed)."
-  (let ((new-font (and (fboundp 'font-get-system-font)
-                      (font-get-system-font)))
-       (frame-list (frames-on-display-list display-or-frame)))
-    (when (and new-font (display-graphic-p display-or-frame))
+  (let ((system-font (and (fboundp 'font-get-system-font)
+                       (font-get-system-font)))
+        (frame-list (frames-on-display-list display-or-frame))
+       (user-font (face-attribute 'default :font)))
+    (when (and system-font (display-graphic-p display-or-frame))
       (clear-font-cache)
       (if set-font
          ;; Set the font on all current and future frames, as though
          ;; the `default' face had been "set for this session":
-         (set-frame-font new-font nil frame-list)
+         (if (not user-font)
+             (set-frame-font system-font nil frame-list)
+            (set-frame-font user-font nil frame-list))
        ;; Just redraw the existing fonts on all frames:
        (dolist (f frame-list)
-         (let ((frame-font
-                (or (font-get (face-attribute 'default :font f 'default)
-                              :user-spec)
-                    (frame-parameter f 'font-parameter))))
+         ;; (apply 'font-spec (font-face-attributes (font-get-system-font)))
+         (let* ((frame-font
+                 (or (face-attribute 'default :font f 'default)
+                     (frame-parameter f 'font-parameter)))
+                (font-attr (font-face-attributes frame-font)))
            (when frame-font
              (set-frame-parameter f 'font-parameter frame-font)
-             (set-face-attribute 'default f
-                                 :width 'normal
-                                 :weight 'normal
-                                 :slant 'normal
-                                 :font frame-font))))))))
+             (apply #'set-face-attribute 'default f font-attr))))))))
 
 (defun dynamic-setting-handle-config-changed-event (event)
   "Handle config-changed-event on the display in EVENT.
--- src/xsettings.c
+++ src/xsettings.c     2016-12-21 07:25:17.605036477 +0000
@@ -45,6 +45,7 @@ along with GNU Emacs.  If not, see <http
 #endif
 
 #ifdef HAVE_XFT
+#include <math.h>
 #include <X11/Xft/Xft.h>
 #endif
 
@@ -620,7 +621,11 @@ apply_xft_settings (struct x_display_inf
 #endif
   FcPatternGetInteger (pat, FC_LCD_FILTER, 0, &oldsettings.lcdfilter);
   FcPatternGetInteger (pat, FC_RGBA, 0, &oldsettings.rgba);
-  FcPatternGetDouble (pat, FC_DPI, 0, &oldsettings.dpi);
+
+  if (FcPatternGetDouble (pat, FC_DPI, 0, &oldsettings.dpi) == FcResultMatch)
+    {
+      oldsettings.dpi = round(oldsettings.dpi);
+    }
 
   if ((settings->seen & SEEN_AA) != 0 && oldsettings.aa != settings->aa)
     {
++++++ emacs-25.2-ImageMagick7.patch ++++++
Index: emacs-25.2/configure.ac
===================================================================
---
 emacs-25.3/configure.ac |    2 +-
 emacs-25.3/src/image.c  |   12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

--- emacs-25.3/configure.ac
+++ emacs-25.3/configure.ac     2017-09-22 09:59:44.049203440 +0000
@@ -2408,7 +2408,7 @@ if test "${HAVE_X11}" = "yes" || test "$
   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.
-    IMAGEMAGICK_MODULE="Wand >= 6.3.5 Wand != 6.8.2"
+    IMAGEMAGICK_MODULE="MagickWand >= 6.3.5 MagickWand != 6.8.2"
     EMACS_CHECK_MODULES([IMAGEMAGICK], [$IMAGEMAGICK_MODULE])
     AC_SUBST(IMAGEMAGICK_CFLAGS)
     AC_SUBST(IMAGEMAGICK_LIBS)
--- emacs-25.3/src/image.c
+++ emacs-25.3/src/image.c      2017-09-22 09:59:44.053203364 +0000
@@ -8402,7 +8402,11 @@ imagemagick_compute_animated_image (Magi
       PixelWand **source, **dest;
       size_t source_width, source_height;
       ssize_t source_left, source_top;
+#if MagickLibVersion >= 0x700
+      PixelInfo pixel;  
+#else
       MagickPixelPacket pixel;
+#endif
       DisposeType dispose;
       ptrdiff_t lines = 0;
 
@@ -8467,7 +8471,11 @@ imagemagick_compute_animated_image (Magi
              if (dispose == BackgroundDispose || PixelGetAlpha (source[x]))
                {
                  PixelGetMagickColor (source[x], &pixel);
+#if MagickLibVersion >= 0x700
+                 PixelSetPixelColor (dest[x + source_left], &pixel);
+#else
                  PixelSetMagickColor (dest[x + source_left], &pixel);
+#endif
                }
            }
          PixelSyncIterator (dest_iterator);
@@ -8512,7 +8520,11 @@ imagemagick_load_image (struct frame *f,
   MagickWand *image_wand;
   PixelIterator *iterator;
   PixelWand **pixels, *bg_wand = NULL;
+#if MagickLibVersion >= 0x700
+  PixelInfo pixel;
+#else
   MagickPixelPacket  pixel;
+#endif
   Lisp_Object image;
   Lisp_Object value;
   Lisp_Object crop;
++++++ emacs-25.2-bsc1058425.patch ++++++
Based on 9ad0fcc54442a9a01d41be19880250783426db70 Mon Sep 17 00:00:00 2001
From: Lars Ingebrigtsen <[email protected]>
Date: Fri, 8 Sep 2017 20:23:31 -0700
Subject: Remove unsafe enriched mode translations

* lisp/gnus/mm-view.el (mm-inline-text):
Do not worry about enriched or richtext type.
* lisp/textmodes/enriched.el (enriched-translations):
Remove translations for FUNCTION, display (Bug#28350).
(enriched-handle-display-prop, enriched-decode-display-prop): Remove.
---
 lisp/textmodes/enriched.el |   35 -----------------------------------
 1 file changed, 35 deletions(-)

--- lisp/textmodes/enriched.el
+++ lisp/textmodes/enriched.el  2017-09-22 10:03:36.648869529 +0000
@@ -117,12 +117,7 @@ expression, which is evaluated to get th
                   (full        "flushboth")
                   (center      "center"))
     (PARAMETER     (t           "param")) ; Argument of preceding annotation
-    ;; The following are not part of the standard:
-    (FUNCTION      (enriched-decode-foreground "x-color")
-                  (enriched-decode-background "x-bg-color")
-                  (enriched-decode-display-prop "x-display"))
     (read-only     (t           "x-read-only"))
-    (display      (nil         enriched-handle-display-prop))
     (unknown       (nil         format-annotate-value))
 ;   (font-size     (2           "bigger")       ; unimplemented
 ;                 (-2          "smaller"))
@@ -477,35 +472,5 @@ Return value is \(begin end name positiv
     (message "Warning: no color specified for <x-bg-color>")
     nil))
 
-;;; Handling the `display' property.
-
-
-(defun enriched-handle-display-prop (old new)
-  "Return a list of annotations for a change in the `display' property.
-OLD is the old value of the property, NEW is the new value.  Value
-is a list `(CLOSE OPEN)', where CLOSE is a list of annotations to
-close and OPEN a list of annotations to open.  Each of these lists
-has the form `(ANNOTATION PARAM ...)'."
-  (let ((annotation "x-display")
-       (param (prin1-to-string (or old new))))
-    (if (null old)
-        (cons nil (list (list annotation param)))
-      (cons (list (list annotation param)) nil))))
-
-(defun enriched-decode-display-prop (start end &optional param)
-  "Decode a `display' property for text between START and END.
-PARAM is a `<param>' found for the property.
-Value is a list `(START END SYMBOL VALUE)' with START and END denoting
-the range of text to assign text property SYMBOL with value VALUE."
-  (let ((prop (when (stringp param)
-               (condition-case ()
-                   (car (read-from-string param))
-                 (error nil)))))
-    (unless prop
-      (message "Warning: invalid <x-display> parameter %s" param))
-    ;; Disabled in Emacs 25.3 to avoid execution of arbitrary Lisp
-    ;; forms in display properties stored within enriched text.
-    ;; (list start end 'display prop)))
-    (list start end)))
 
 ;;; enriched.el ends here
++++++ emacs-25.2-xwidget.patch ++++++
commit d781662873f228b110a128f7a2b6583a4d5e0a3a
Author: Ricardo Wurmus <[email protected]>
Date:   Tue Oct 25 23:00:35 2016 -0700

    xwidget: Use WebKit2 API
    
    * configure.ac: Check for webkit2gtk-4.0.
    * src/xwidget.c: Adjust to use WebKit2 API.
    * lisp/xwidget.el (xwidget-webkit-callback): Adjust matches for
    `xwidget-event-type'.

diff --git a/configure.ac b/configure.ac
index 998ff52..46fd434 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2630,8 +2630,8 @@ if test "$with_xwidgets" != "no"; then
   test "$USE_GTK_TOOLKIT" = "GTK3" && test "$window_system" != "none" ||
     AC_MSG_ERROR([xwidgets requested but gtk3 not used.])
 
-  WEBKIT_REQUIRED=1.4.0
-  WEBKIT_MODULES="webkitgtk-3.0 >= $WEBKIT_REQUIRED"
+  WEBKIT_REQUIRED=2.12
+  WEBKIT_MODULES="webkit2gtk-4.0 >= $WEBKIT_REQUIRED"
   EMACS_CHECK_MODULES([WEBKIT], [$WEBKIT_MODULES])
   HAVE_XWIDGETS=$HAVE_WEBKIT
   test $HAVE_XWIDGETS = yes ||
diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index 7a0ca8b..1bae6bb 100644
--- a/lisp/xwidget.el
+++ b/lisp/xwidget.el
@@ -187,7 +187,7 @@ XWIDGET instance, XWIDGET-EVENT-TYPE depends on the 
originating xwidget."
        "error: callback called for xwidget with dead buffer")
     (with-current-buffer (xwidget-buffer xwidget)
       (let* ((strarg  (nth 3 last-input-event)))
-        (cond ((eq xwidget-event-type 'document-load-finished)
+        (cond ((eq xwidget-event-type 'load-changed)
                (xwidget-log "webkit finished loading: '%s'"
                             (xwidget-webkit-get-title xwidget))
                ;;TODO - check the native/internal scroll
@@ -196,8 +196,7 @@ XWIDGET instance, XWIDGET-EVENT-TYPE depends on the 
originating xwidget."
                (rename-buffer (format "*xwidget webkit: %s *"
                                       (xwidget-webkit-get-title xwidget)))
                (pop-to-buffer (current-buffer)))
-              ((eq xwidget-event-type
-                   'navigation-policy-decision-requested)
+              ((eq xwidget-event-type 'decide-policy)
                (if (string-match ".*#\\(.*\\)" strarg)
                    (xwidget-webkit-show-id-or-named-element
                     xwidget
diff --git a/src/xwidget.c b/src/xwidget.c
index f5f4da0..78349a8 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -98,13 +98,7 @@ along with GNU Emacs.  If not, see <http
 
 #include <wchar.h>
 
-#include <webkit/webkitwebview.h>
-#include <webkit/webkitwebplugindatabase.h>
-#include <webkit/webkitwebplugin.h>
-#include <webkit/webkitglobals.h>
-#include <webkit/webkitwebnavigationaction.h>
-#include <webkit/webkitdownload.h>
-#include <webkit/webkitwebpolicydecision.h>
+#include <webkit2/webkit2.h>
 
 static struct xwidget *
 allocate_xwidget (void)
@@ -50,34 +47,16 @@ allocate_xwidget_view (void)
 
 static struct xwidget_view *xwidget_view_lookup (struct xwidget *,
                                                 struct window *);
-static void webkit_document_load_finished_cb (WebKitWebView *, WebKitWebFrame 
*,
-                                             gpointer);
-static gboolean webkit_download_cb (WebKitWebView *, WebKitDownload *, 
gpointer);
+static void webkit_view_load_changed_cb (WebKitWebView *,
+                                         WebKitLoadEvent,
+                                         gpointer);
+static gboolean webkit_download_cb (WebKitWebContext *, WebKitDownload *, 
gpointer);
 
 static gboolean
-webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *,
-                                                   WebKitWebFrame *,
-                                                   WebKitNetworkRequest *,
-                                                   gchar *,
-                                                   WebKitWebPolicyDecision *,
-                                                   gpointer);
-
-static gboolean
-webkit_new_window_policy_decision_requested_cb (WebKitWebView *,
-                                                WebKitWebFrame *,
-                                                WebKitNetworkRequest *,
-                                                WebKitWebNavigationAction *,
-                                                WebKitWebPolicyDecision *,
-                                                gpointer);
-
-static gboolean
-webkit_navigation_policy_decision_requested_cb (WebKitWebView *,
-                                                WebKitWebFrame *,
-                                                WebKitNetworkRequest *,
-                                                WebKitWebNavigationAction *,
-                                                WebKitWebPolicyDecision *,
-                                                gpointer);
-
+webkit_decide_policy_cb (WebKitWebView *,
+                         WebKitPolicyDecision *,
+                         WebKitPolicyDecisionType,
+                         gpointer);
 
 
 DEFUN ("make-xwidget",
@@ -168,29 +147,17 @@ Returns the newly constructed xwidget, or nil if 
construction fails.  */)
       if (EQ (xw->type, Qwebkit))
         {
           g_signal_connect (G_OBJECT (xw->widget_osr),
-                            "document-load-finished",
-                            G_CALLBACK (webkit_document_load_finished_cb), xw);
+                            "load-changed",
+                            G_CALLBACK (webkit_view_load_changed_cb), xw);
 
-          g_signal_connect (G_OBJECT (xw->widget_osr),
-                            "download-requested",
+          g_signal_connect (G_OBJECT (webkit_web_context_get_default ()),
+                            "download-started",
                             G_CALLBACK (webkit_download_cb), xw);
 
           g_signal_connect (G_OBJECT (xw->widget_osr),
-                            "mime-type-policy-decision-requested",
-                            G_CALLBACK
-                            
(webkit_mime_type_policy_typedecision_requested_cb),
-                            xw);
-
-          g_signal_connect (G_OBJECT (xw->widget_osr),
-                            "new-window-policy-decision-requested",
-                            G_CALLBACK
-                            (webkit_new_window_policy_decision_requested_cb),
-                            xw);
-
-          g_signal_connect (G_OBJECT (xw->widget_osr),
-                            "navigation-policy-decision-requested",
+                            "decide-policy",
                             G_CALLBACK
-                            (webkit_navigation_policy_decision_requested_cb),
+                            (webkit_decide_policy_cb),
                             xw);
         }
 
@@ -284,81 +251,83 @@ store_xwidget_event_string (struct xwidget *xw, const 
char *eventname,
   kbd_buffer_store_event (&event);
 }
 
-/* TODO deprecated, use load-status.  */
 void
-webkit_document_load_finished_cb (WebKitWebView *webkitwebview,
-                                  WebKitWebFrame *arg1,
-                                  gpointer data)
+webkit_view_load_changed_cb (WebKitWebView *webkitwebview,
+                             WebKitLoadEvent load_event,
+                             gpointer data)
 {
-  struct xwidget *xw = g_object_get_data (G_OBJECT (webkitwebview),
-                                          XG_XWIDGET);
-
-  store_xwidget_event_string (xw, "document-load-finished", "");
+  switch (load_event) {
+  case WEBKIT_LOAD_FINISHED:
+    {
+      struct xwidget *xw = g_object_get_data (G_OBJECT (webkitwebview),
+                                              XG_XWIDGET);
+      store_xwidget_event_string (xw, "load-changed", "");
+      break;
+    }
+  default:
+    break;
+  }
 }
 
 gboolean
-webkit_download_cb (WebKitWebView *webkitwebview,
+webkit_download_cb (WebKitWebContext *webkitwebcontext,
                     WebKitDownload *arg1,
                     gpointer data)
 {
-  struct xwidget *xw = g_object_get_data (G_OBJECT (webkitwebview),
+  WebKitWebView *view = webkit_download_get_web_view(arg1);
+  WebKitURIRequest *request = webkit_download_get_request(arg1);
+  struct xwidget *xw = g_object_get_data (G_OBJECT (view),
                                           XG_XWIDGET);
-  store_xwidget_event_string (xw, "download-requested",
-                              webkit_download_get_uri (arg1));
+
+  store_xwidget_event_string (xw, "download-started",
+                              webkit_uri_request_get_uri(request));
   return FALSE;
 }
 
 static gboolean
-webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *webView,
-                                                  WebKitWebFrame *frame,
-                                                  WebKitNetworkRequest 
*request,
-                                                  gchar *mimetype,
-                                                  WebKitWebPolicyDecision 
*policy_decision,
-                                                  gpointer user_data)
+webkit_decide_policy_cb (WebKitWebView *webView,
+                         WebKitPolicyDecision *decision,
+                         WebKitPolicyDecisionType type,
+                         gpointer user_data)
 {
-  /* This function makes webkit send a download signal for all unknown
-     mime types.  TODO: Defer the decision to Lisp, so that it's
-     possible to make Emacs handle mime text for instance.  */
-  if (!webkit_web_view_can_show_mime_type (webView, mimetype))
+  switch (type) {
+  case WEBKIT_POLICY_DECISION_TYPE_RESPONSE:
+    /* This function makes webkit send a download signal for all unknown
+       mime types.  TODO: Defer the decision to Lisp, so that it's
+       possible to make Emacs handle mime text for instance.  */
     {
-      webkit_web_policy_decision_download (policy_decision);
-      return TRUE;
+      WebKitResponsePolicyDecision *response =
+        WEBKIT_RESPONSE_POLICY_DECISION (decision);
+      if (!webkit_response_policy_decision_is_mime_type_supported (response))
+        {
+          webkit_policy_decision_download (decision);
+          return TRUE;
+        }
+      else
+        return FALSE;
+      break;
     }
-  else
+  case WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION:
+  case WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION:
+    {
+      WebKitNavigationPolicyDecision *navigation_decision =
+        WEBKIT_NAVIGATION_POLICY_DECISION (decision);
+      WebKitNavigationAction *navigation_action =
+        webkit_navigation_policy_decision_get_navigation_action 
(navigation_decision);
+      WebKitURIRequest *request =
+        webkit_navigation_action_get_request (navigation_action);
+
+      struct xwidget *xw = g_object_get_data (G_OBJECT (webView), XG_XWIDGET);
+      store_xwidget_event_string (xw, "decide-policy",
+                                  webkit_uri_request_get_uri (request));
+      return FALSE;
+      break;
+    }
+  default:
     return FALSE;
+  }
 }
 
-static gboolean
-webkit_new_window_policy_decision_requested_cb (WebKitWebView *webView,
-                                               WebKitWebFrame *frame,
-                                               WebKitNetworkRequest *request,
-                                               WebKitWebNavigationAction 
*navigation_action,
-                                               WebKitWebPolicyDecision 
*policy_decision,
-                                               gpointer user_data)
-{
-  struct xwidget *xw = g_object_get_data (G_OBJECT (webView), XG_XWIDGET);
-  webkit_web_navigation_action_get_original_uri (navigation_action);
-
-  store_xwidget_event_string (xw, "new-window-policy-decision-requested",
-                              webkit_web_navigation_action_get_original_uri
-                              (navigation_action));
-  return FALSE;
-}
-
-static gboolean
-webkit_navigation_policy_decision_requested_cb (WebKitWebView *webView,
-                                               WebKitWebFrame *frame,
-                                               WebKitNetworkRequest *request,
-                                               WebKitWebNavigationAction 
*navigation_action,
-                                               WebKitWebPolicyDecision 
*policy_decision,
-                                               gpointer user_data)
-{
-  struct xwidget *xw = g_object_get_data (G_OBJECT (webView), XG_XWIDGET);
-  store_xwidget_event_string (xw, "navigation-policy-decision-requested",
-                              webkit_web_navigation_action_get_original_uri
-                              (navigation_action));
-  return FALSE;
-}
 
 /* For gtk3 offscreen rendered widgets.  */
 static gboolean
@@ -599,8 +568,13 @@ DEFUN ("xwidget-webkit-execute-script",
 {
   WEBKIT_FN_INIT ();
   CHECK_STRING (script);
-  webkit_web_view_execute_script (WEBKIT_WEB_VIEW (xw->widget_osr),
-                                  SSDATA (script));
+  // TODO: provide callback function to do something with the return
+  // value!  This allows us to get rid of the title hack.
+  webkit_web_view_run_javascript (WEBKIT_WEB_VIEW (xw->widget_osr),
+                                  SSDATA (script),
+                                  NULL, /*cancellable*/
+                                  NULL, /*callback*/
+                                  NULL /*user data*/);
   return Qnil;
 }

++++++ emacs-25.3-xft4x11.patch ++++++
---
 lwlib/xlwmenu.c |   13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

--- lwlib/xlwmenu.c
+++ lwlib/xlwmenu.c     2018-06-14 10:58:18.178888769 +0000
@@ -1887,21 +1887,18 @@
                                   gray_width, gray_height,
                                   (unsigned long)1, (unsigned long)0, 1);
 
+  mw->menu.font = XLoadQueryFont (display, mw->menu.fontName);
 #ifdef HAVE_XFT
-  if (openXftFont (mw))
+  if (mw->menu.font || openXftFont (mw))
     ;
   else
 #endif
     {
-      mw->menu.font = XLoadQueryFont (display, mw->menu.fontName);
+      mw->menu.font = XLoadQueryFont (display, "fixed");
       if (!mw->menu.font)
         {
-          mw->menu.font = XLoadQueryFont (display, "fixed");
-          if (!mw->menu.font)
-            {
-              fprintf (stderr, "Menu font fixed not found, can't continue.\n");
-              abort ();
-            }
+          fprintf (stderr, "Menu font fixed not found, can't continue.\n");
+          abort ();
         }
     }
 
++++++ emacs-25.3.dif ++++++
++++ 718 lines (skipped)

++++++ emacs-libX11-boo1175028.patch ++++++
>From 72c5f71cd45c860299950cd058d8e13b87375741 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gr=C3=A9gory=20Mouni=C3=A9?= <[email protected]>
Date: Sun, 2 Aug 2020 15:56:33 +0200
Subject: [PATCH] Avoid segfaults if XIM is set but not xim_styles

Emacs segfaults at the X11 initialization if XIM is set
and xim_styles is NULL.  This patch avoids the crash.
* src/xfns.c: Check also if FRAME_X_XIM_STYLES(f) is NULL.
(Bug#42676)  (Bug#42673)  (Bug#42677)

Copyright-paperwork-exempt: yes
---
 src/xfns.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- src/xfns.c
+++ src/xfns.c  2020-08-11 08:26:54.912255519 +0000
@@ -2283,7 +2283,7 @@ create_frame_xic (struct frame *f)
     goto out;
 
   xim = FRAME_X_XIM (f);
-  if (!xim)
+  if (!xim || ! FRAME_X_XIM_STYLES(f))
     goto out;
 
   /* Determine XIC style.  */
++++++ emacs-rpmlintrc ++++++
addFilter(".*no-documentation.*")
addFilter(".*zero-length.*/var/games/emacs/.*-scores.*")
addFilter(".*hidden-file-or-dir.*/etc/skel/.gnu-emacs.*")
addFilter(".*file-in-usr-marked-as-conffile.*/usr/share/emacs/site-lisp/site-start.el.*")
addFilter(".*non-etc-or-var-file-marked-as-conffile.*/usr/share/emacs/site-lisp/site-start.el.*")
addFilter(".*no-manual-page-for-binary.*emacs-*")
addFilter(".*name-repeated-in-summar.*")
addFilter(".*idden-file-or-dir.*\.dir-locals.el.*")
++++++ emacs.sh ++++++
#!/bin/bash
#
# Launch a GNU Emacs
#
# The environment variable EMACS_TOOLKIT is used to determine
# the prefered GUI. Possible values/types of EMACS_TOOLKIT are
#
#   nox -- for pure console based GNU Emacs 
#   gtk -- for full GTK2/3  based GNU Emacs
#   x11 -- for full LUCID   based GNU Emacs (used Xaw3d)
#
# Should work but remember history
#   bnc#345669 -- Emacs doesn't un-maximize in KDE/KWin
#   bnc#342385 -- Emacs doesn't keep the iconic information in KDE/KWin
#
# if test -z "$EMACS_TOOLKIT" ; then
#     EMACS_TOOLKIT=gtk
#     KDE_FULL_SESSION=$(xprop -root KDE_FULL_SESSION 2>/dev/null)
#     case "$KDE_FULL_SESSION" in
#     *true*) EMACS_TOOLKIT=x11
#     esac
# fi
#
: ${EMACS_TOOLKIT:=gtk}
if test "$EMACS_TOOLKIT" = gtk; then
    # Currently (2013/05/24) the parser of the GNOME libs
    # are broken that is it is not independent from locale
    LC_NUMERIC=POSIX
    XLIB_SKIP_ARGB_VISUALS=1
    GDK_RGBA=0
    export LC_NUMERIC XLIB_SKIP_ARGB_VISUALS GDK_RGBA
fi
arg0=$0
argv=("$@")
if   test -x ${arg0}-${EMACS_TOOLKIT}
then
    set --   ${arg0}-${EMACS_TOOLKIT}
elif test -x ${arg0}-x11
then
    set --   ${arg0}-x11
elif test -x ${arg0}-nox
then
    set --   ${arg0}-nox
else
    echo "no emacs binary found"
    exit 1
fi
dbusdaemon=$(type -p dbus-daemon 2>/dev/null)
#
# Now check for valid dbus, e.g. after su/sudo/slogin
#
if test -n "$dbusdaemon" ; then
    #
    # Currently (2013/05/24) the option --autolaunch for scanning for an
    # already existing session is an internal option of dbus-launch(1).
    #
    if test -s /var/lib/dbus/machine-id ; then
        read -t1 mid < /var/lib/dbus/machine-id
    elif test -s /etc/machine-id ; then
        read -t1 mid < /etc/machine-id
    else
        mid=
    fi
    if test -n "$DBUS_SESSION_BUS_ADDRESS" ; then
        # Determine dbus identifier
        for guid in ${DBUS_SESSION_BUS_ADDRESS//,/ } ; do
            case "$guid" in
            guid=*) break
            esac
        done
        # Check if dbus-daemon is active
        dpid=
        for suid in "${HOME}/.dbus/session-bus/"${mid}* ; do
            test -e "$suid" || break
            grep -q $guid "$suid" || continue
            dpid=$(grep -E '^DBUS_SESSION_BUS_PID=[[:digit:]]+' "$suid")
            test /proc/${dpid#*=}/exe -ef $dbusdaemon && continue
            unset DBUS_SESSION_BUS_ADDRESS
            break
        done
        if test -z "$dpid" ; then
            case ":$DBUS_SESSION_BUS_ADDRESS" in
            *:path=/run/user/${UID}/bus*) ;;
            *)  unset DBUS_SESSION_BUS_ADDRESS
            esac
        fi
    fi
    # Find a valid dbus-daemon if active
    if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
        for suid in "${HOME}/.dbus/session-bus/"${mid}* ; do
            test -e "$suid" || break
            dpid=$(grep -E '^DBUS_SESSION_BUS_PID=[[:digit:]]+' "$suid")
            test /proc/${dpid#*=}/exe -ef $dbusdaemon || continue
            dadd=$(grep -E '^DBUS_SESSION_BUS_ADDRESS=' "$suid")
            DBUS_SESSION_BUS_ADDRESS=${dadd#*=}
            export DBUS_SESSION_BUS_ADDRESS
        done
        if test -z "$DBUS_SESSION_BUS_ADDRESS" -a -S "${XDG_RUNTIME_DIR}/bus" ; 
then
            DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
            export DBUS_SESSION_BUS_ADDRESS
        fi
    fi
    unset mid guid suid dadd
    # Oops ... no dbus-daemon then launch a new session
    if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
        dbuslaunch=$(type -p dbus-launch 2>/dev/null)
        dbusession=$(type -p dbus-run-session 2>/dev/null)
        if test -z "$dbusession" -a -n "$dbuslaunch" ; then
            set -- $dbuslaunch --sh-syntax --close-stderr --exit-with-session 
${1+"$@"}
            arg0=$dbuslaunch
        elif test -n "$dbusession" ; then
            set -- $dbusession -- ${1+"$@"}
            arg0=$dbusession
        else
            arg0=emacs
        fi
    elif test -S "${XDG_RUNTIME_DIR}/bus" ; then
        dbusupdate=$(type -p dbus-update-activation-environment 2>/dev/null)
        dbusstatus=$(systemctl --user is-active dbus.service 2>/dev/null)
        if test -n "$dbusupdate" -a "$dbusstatus" != active ; then
            $dbusupdate --systemd 
DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
        fi
    fi
    unset dbuslaunch dbusdaemon
fi
#
# Disable AT bridge if not accessible
#
if test -z "NO_AT_BRIDGE" ; then
    gsettings=$(gsettings get org.gnome.desktop.interface toolkit-accessibility 
2>/dev/null)
    if test -z "$gsettings" -o "$gsettings" = false ; then
        NO_AT_BRIDGE=1
        export NO_AT_BRIDGE
    fi
    unset gsettings
fi
unset G_MESSAGES_DEBUG G_DEBUG G_MESSAGES_PREFIXED
exec -a $arg0 ${1+"$@"} "${argv[@]}"
++++++ emacs.test ++++++
                        Testform f?r  emacs
                        ===================

22.05.2007: Version 22.0.99
Maintainer: werner

Vorraussetzungen:
=================

X sollte installiert sein.

Starten:
========

   emacs
   emacs -nw
   emacs -q --no-site
   emacs -nw -q --no-site
   als Editor von mailx/elm/pine ...


   Testen mit verschiedensten File-Typen (*.tex, man-pages.
   *.html, info-mode, gnus, rmail, ...)


Ergebnisse:
===========

H?ngt von der gew?hlten mode ab.
++++++ gnulib.git-94e01571.patch ++++++
>From 94e01571507835ff59dd8ce2a0b56a4b566965a4 Mon Sep 17 00:00:00 2001
From: =?utf8?q?P=C3=A1draig=20Brady?= <[email protected]>
Date: Mon, 24 Apr 2017 01:43:36 -0700
Subject: [PATCH] time_rz: fix heap buffer overflow vulnerability

This issue has been assigned CVE-2017-7476 and was
detected with American Fuzzy Lop 2.41b run on the
coreutils date(1) program with ASAN enabled.

  ERROR: AddressSanitizer: heap-buffer-overflow on address 0x...
  WRITE of size 8 at 0x60d00000cff8 thread T0
  #1 0x443020 in extend_abbrs lib/time_rz.c:88
  #2 0x443356 in save_abbr lib/time_rz.c:155
  #3 0x44393f in localtime_rz lib/time_rz.c:290
  #4 0x41e4fe in parse_datetime2 lib/parse-datetime.y:1798

A minimized reproducer is the following 120 byte TZ value,
which goes beyond the value of ABBR_SIZE_MIN (119) on x86_64.
Extend the aa...b portion to overwrite more of the heap.

  date -d $(printf 'TZ="aaa%020daaaaaab%089d"')

localtime_rz and mktime_z were affected since commit 4bc76593.
parse_datetime was affected since commit 4e6e16b3f.

* lib/time_rz.c (save_abbr): Rearrange the calculation determining
whether there is enough buffer space available.  The rearrangement
ensures we're only dealing with positive numbers, thus avoiding
the problematic promotion of signed to unsigned causing an invalid
comparison when zone_copy is more than ABBR_SIZE_MIN bytes beyond
the start of the buffer.
* tests/test-parse-datetime.c (main): Add a test case written by
Paul Eggert, which overwrites enough of the heap so that
standard glibc will fail with "free(): invalid pointer"
without the patch applied.
Reported and analyzed at https://bugzilla.redhat.com/1444774
---
 lib/time_rz.c |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

--- lib/time_rz.c
+++ lib/time_rz.c       2017-05-02 11:00:09.386018503 +0000
@@ -27,6 +27,7 @@
 #include <time.h>
 
 #include <errno.h>
+#include <limits.h>
 #include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
@@ -34,6 +35,10 @@
 
 #include "time-internal.h"
 
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
 #if !HAVE_TZSET
 static void tzset (void) { }
 #endif
@@ -42,7 +47,7 @@ static void tzset (void) { }
    the largest "small" request for the GNU C library malloc.  */
 enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
 
-/* Minimum size of the ABBRS member of struct abbr.  ABBRS is larger
+/* Minimum size of the ABBRS member of struct tm_zone.  ABBRS is larger
    only in the unlikely case where an abbreviation longer than this is
    used.  */
 enum { ABBR_SIZE_MIN = DEFAULT_MXFAST - offsetof (struct tm_zone, abbrs) };
@@ -149,7 +154,13 @@ save_abbr (timezone_t tz, struct tm *tm)
           if (! (*zone_copy || (zone_copy == tz->abbrs && tz->tz_is_set)))
             {
               size_t zone_size = strlen (zone) + 1;
-              if (zone_size < tz->abbrs + ABBR_SIZE_MIN - zone_copy)
+              size_t zone_used = zone_copy - tz->abbrs;
+              if (SIZE_MAX - zone_used < zone_size)
+                {
+                  errno = ENOMEM;
+                  return false;
+                }
+              if (zone_used + zone_size < ABBR_SIZE_MIN)
                 extend_abbrs (zone_copy, zone, zone_size);
               else
                 {

Reply via email to