From baa426bbe1f458d834f5c51859127d799f837e70afc08dc653e6632d77d03283 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 4 Dec 2009 17:43:38 +0000 Subject: [PATCH] . OBS-URL: https://build.opensuse.org/package/show/M17N/xemacs?expand=0&rev=8 --- bnc558764_avoid-xft-if-absent.patch | 47 +++++++++ changeset-dec62ca5a899.patch | 148 ++++++++++++++++++++++++++++ destdir.patch | 22 +---- ndbm.patch | 16 +++ xemacs-21.5.29-large-images.patch | 96 ------------------ xemacs-21.5.29.tar.bz2 | 3 - xemacs-beta-b604d235f028.tar.bz2 | 3 + xemacs.changes | 5 + xemacs.patch | 12 --- xemacs.spec | 68 +++++-------- 10 files changed, 247 insertions(+), 173 deletions(-) create mode 100644 bnc558764_avoid-xft-if-absent.patch create mode 100644 changeset-dec62ca5a899.patch delete mode 100644 xemacs-21.5.29-large-images.patch delete mode 100644 xemacs-21.5.29.tar.bz2 create mode 100644 xemacs-beta-b604d235f028.tar.bz2 diff --git a/bnc558764_avoid-xft-if-absent.patch b/bnc558764_avoid-xft-if-absent.patch new file mode 100644 index 0000000..2a42dc8 --- /dev/null +++ b/bnc558764_avoid-xft-if-absent.patch @@ -0,0 +1,47 @@ +diff -r 1257b938f03a lisp/ChangeLog +--- lisp/ChangeLog Fri Dec 04 10:59:45 2009 +0900 ++++ lisp/ChangeLog Sat Dec 05 01:08:29 2009 +0900 +@@ -1,3 +1,8 @@ ++2009-12-05 Stephen J. Turnbull ++ ++ * font.el (x-font-create-object): Check for Xft before using it. ++ This fixes the symptom in openSUSE bug #558764. ++ + 2009-11-10 Jerry James + + * device.el (device-type): Remove (mostly imaginary) support for +diff -r 1257b938f03a lisp/font.el +--- lisp/font.el Fri Dec 04 10:59:45 2009 +0900 ++++ lisp/font.el Sat Dec 05 01:08:29 2009 +0900 +@@ -569,6 +569,7 @@ + (if (or (not (stringp fontname)) + (not (string-match font-x-font-regexp fontname))) + (if (and (stringp fontname) ++ (featurep 'xft-fonts) + (string-match font-xft-font-regexp fontname)) + ;; Return an XFT font. + (xft-font-create-object fontname) +diff -r 1257b938f03a src/ChangeLog +--- src/ChangeLog Fri Dec 04 10:59:45 2009 +0900 ++++ src/ChangeLog Sat Dec 05 01:08:29 2009 +0900 +@@ -1,3 +1,8 @@ ++2009-12-05 Stephen J. Turnbull ++ ++ * faces.c (complex_vars_of_faces): Explain why "*" isn't rewritten ++ as a full XLFD. ++ + 2009-11-19 Vin Shelton + + * sysdep.c (sys_subshell): Restore sys_subshell(); it's necessary +diff -r 1257b938f03a src/faces.c +--- src/faces.c Fri Dec 04 10:59:45 2009 +0900 ++++ src/faces.c Sat Dec 05 01:08:29 2009 +0900 +@@ -2342,6 +2342,8 @@ + Fcons + (Fcons + (list1 (device_symbol), ++ /* grrr. This really does need to be "*", not an XLFD. ++ An unspecified XLFD won't pick up stuff like 10x20. */ + build_string ("*")), + inst_list); + #ifdef MULE diff --git a/changeset-dec62ca5a899.patch b/changeset-dec62ca5a899.patch new file mode 100644 index 0000000..11625b2 --- /dev/null +++ b/changeset-dec62ca5a899.patch @@ -0,0 +1,148 @@ + +# HG changeset patch +# User Stephen J. Turnbull +# Date 1259891798 -32400 +# Node ID dec62ca5a899f41688a663765df1aefddfae6351 +# Parent 75975fd0b7fc8043f7fc719439c225fa739134d9 +Prevent font frobbers from operating on TTY specs. + +--- lisp/ChangeLog Wed Nov 18 22:44:28 2009 +0900 ++++ lisp/ChangeLog Fri Dec 04 10:56:38 2009 +0900 +@@ -79,6 +79,20 @@ + Update docstring. + (narrow-to-defun): + Document that optional ARG is ignored. ++ ++2009-11-01 Stephen Turnbull ++ ++ * faces.el (Face-frob-property): ++ Give mapper for TTYs 2 args. ++ (make-face-family): ++ (make-face-size): ++ Generic mapper ignores TTYs and null devices. ++ (make-face-bold): ++ (make-face-italic): ++ (make-face-bold-italic): ++ (make-face-unbold): ++ (make-face-unitalic): ++ TTY mapper takes 2 args. + + 2009-10-09 Stephen Turnbull + +--- lisp/faces.el Wed Nov 18 22:44:28 2009 +0900 ++++ lisp/faces.el Fri Dec 04 10:56:38 2009 +0900 +@@ -933,10 +933,11 @@ + ;; and EXACT-P are as in that call. UNFROBBED-FACE and FROBBED-FACE are + ;; what we expect the original face and the result to look like, + ;; respectively. TTY-PROPS is a list of face properties to frob in place +- ;; of `font' for TTY's. FROB-MAPPING is either a plist mapping device ++ ;; of `font' for TTYs. FROB-MAPPING is either a plist mapping device + ;; types to functions of two args (NAME DEVICE) that will frob the +- ;; instantiator as appropriate for the device type (this includes TTY's), +- ;; or a function to handle the mapping for all device types. ++ ;; instantiator to NAME as appropriate for DEVICE's type (this includes ++ ;; TTYs #### TTYs are not passed the device, just the symbol 'tty), or a ++ ;; function to handle the mapping for all device types. + ;; STANDARD-FACE-MAPPING is an alist of mappings of inheritance + ;; instantiators to be replaced with other inheritance instantiators, meant + ;; for e.g. converting [bold] into [bold-italic]. +@@ -1038,7 +1039,11 @@ + (t + (let ((value + (if (eq devtype-spec 'tty) +- (funcall mapper x) ++ ;; #### not quite right but need ++ ;; two args to match documentation ++ ;; mostly we just ignore TTYs so ++ ;; for now just pass the devtype ++ (funcall mapper x 'tty) + (funcall mapper x + (derive-domain-from-locale + locale devtype-spec +@@ -1193,11 +1198,16 @@ + + (Face-frob-property face locale tags exact-p + nil nil 'font nil ++ ;; #### this code is duplicated in make-face-size + `(lambda (f d) +- ;; keep the dependency on font.el for now +- (let ((fo (font-create-object f d))) +- (set-font-family fo ,family) +- (font-create-name fo d))) ++ ;; keep the dependency on font.el for now ++ ;; #### The filter on null d is a band-aid. ++ ;; Frob-face-property should not be passing in ++ ;; null devices. ++ (unless (or (null d) (eq d 'tty)) ++ (let ((fo (font-create-object f d))) ++ (set-font-family fo ,family) ++ (font-create-name fo d)))) + nil)) + + ;; Style (ie, typographical face) frobbing +@@ -1311,7 +1321,7 @@ + (interactive (list (read-face-name "Make which face bold: "))) + (Face-frob-property face locale tags exact-p + 'default 'bold 'font '(highlight) +- '(tty (lambda (x) t) ++ '(tty (lambda (f d) t) + x x-make-font-bold + gtk gtk-make-font-bold + mswindows mswindows-make-font-bold +@@ -1330,7 +1340,7 @@ + (interactive (list (read-face-name "Make which face italic: "))) + (Face-frob-property face locale tags exact-p + 'default 'italic 'font '(underline) +- '(tty (lambda (x) t) ++ '(tty (lambda (f d) t) + x x-make-font-italic + gtk gtk-make-font-italic + mswindows mswindows-make-font-italic +@@ -1349,7 +1359,7 @@ + (interactive (list (read-face-name "Make which face bold-italic: "))) + (Face-frob-property face locale tags exact-p + 'default 'bold-italic 'font '(underline highlight) +- '(tty (lambda (x) t) ++ '(tty (lambda (f d) t) + x x-make-font-bold-italic + gtk gtk-make-font-bold-italic + mswindows mswindows-make-font-bold-italic +@@ -1369,7 +1379,7 @@ + (interactive (list (read-face-name "Make which face non-bold: "))) + (Face-frob-property face locale tags exact-p + 'bold 'default 'font '(highlight) +- '(tty (lambda (x) nil) ++ '(tty (lambda (f d) nil) + x x-make-font-unbold + gtk gtk-make-font-unbold + mswindows mswindows-make-font-unbold +@@ -1388,7 +1398,7 @@ + (interactive (list (read-face-name "Make which face non-italic: "))) + (Face-frob-property face locale tags exact-p + 'italic 'default 'font '(underline) +- '(tty (lambda (x) nil) ++ '(tty (lambda (f d) nil) + x x-make-font-unitalic + gtk gtk-make-font-unitalic + mswindows mswindows-make-font-unitalic +@@ -1408,11 +1418,16 @@ + (read-number "Size to set: " t 10))) + (Face-frob-property face locale tags exact-p + nil nil 'font nil ++ ;; #### this code is duplicated in make-face-family + `(lambda (f d) + ;; keep the dependency on font.el for now +- (let ((fo (font-create-object f d))) +- (set-font-size fo ,size) +- (font-create-name fo d))) ++ ;; #### The filter on null d is a band-aid. ++ ;; Frob-face-property should not be passing in ++ ;; null devices. ++ (unless (or (null d) (eq d 'tty)) ++ (let ((fo (font-create-object f d))) ++ (set-font-size fo ,size) ++ (font-create-name fo d)))) + nil)) + + ;; Why do the following two functions lose so badly in so many + diff --git a/destdir.patch b/destdir.patch index 0614fd8..4c7dd13 100644 --- a/destdir.patch +++ b/destdir.patch @@ -35,7 +35,7 @@ Index: xemacs-21.5.29/Makefile.in.in #endif #ifdef WIN32_NATIVE ${INSTALL_PROGRAM} src/${PROGNAME} ${bindir}/${PROGNAME} -@@ -417,14 +419,14 @@ install-arch-dep: mkdir +@@ -417,10 +417,10 @@ install-arch-dep: mkdir cd ${bindir} && $(RM) ./${PROGNAME} && ${LN_S} ${PROGNAME}-${version}.exe ./${PROGNAME} cd ${bindir} && $(RM) ./${SHEBANG_PROGNAME} && ${LN_S} ${PROGNAME}-${version}.exe ./${SHEBANG_PROGNAME} # else @@ -49,12 +49,7 @@ Index: xemacs-21.5.29/Makefile.in.in + cd $(DESTDIR)${bindir} && $(RM) ./${SHEBANG_PROGNAME} && ${LN_S} ${PROGNAME}-${version} ./${SHEBANG_PROGNAME} # endif /* CYGWIN */ #endif /* WIN32_NATIVE */ - if test "${prefix}" != "${exec_prefix}"; then \ -- $(MAKEPATH) ${exec_prefix}/lib/${instvardir}; \ -+ $(MAKEPATH) $(DESTDIR)${exec_prefix}/lib/${instvardir}; \ - for dir in \ - lib/${inststaticdir} \ - lib/${instvardir}/etc \ + #ifdef HAVE_SHLIB @@ -435,13 +437,13 @@ install-arch-dep: mkdir done; \ fi @@ -148,19 +143,6 @@ Index: xemacs-21.5.29/Makefile.in.in ## Install bundled packages, if present. -Index: xemacs-21.5.29/dynodump/Makefile.in.in -=================================================================== ---- xemacs-21.5.29.orig/dynodump/Makefile.in.in -+++ xemacs-21.5.29/dynodump/Makefile.in.in -@@ -22,6 +22,8 @@ - - ## Synched up with: Not synched with FSF. - -+DESTDIR= -+ - ## For performance and consistency, no built-in rules. - .SUFFIXES: - .SUFFIXES: .c .o .i .h Index: xemacs-21.5.29/etc/tests/external-widget/Makefile =================================================================== --- xemacs-21.5.29.orig/etc/tests/external-widget/Makefile diff --git a/ndbm.patch b/ndbm.patch index cb25b33..5ae6bde 100644 --- a/ndbm.patch +++ b/ndbm.patch @@ -13,3 +13,19 @@ Index: xemacs-21.5.29/configure.ac AC_CHECK_LIB(gdbm_compat, dbm_open, [ enable_database_gdbm=yes enable_database_dbm=no libdbm="-lgdbm_compat -lgdbm"], [ if test "$enable_database_gdbm" = "yes"; then +--- xemacs-beta-b604d235f028/configure.ac ++++ xemacs-beta-b604d235f028/configure.ac 2009-12-03 15:29:15.975430547 +0000 +@@ -5035,11 +5035,11 @@ dnl #### Should we check for gdbm.h, too + if test "$enable_database_gdbm $enable_database_dbm" != "no no"; then + ndbm_h_file="" + AC_CHECK_HEADERS([ndbm.h gdbm/ndbm.h],[ndbm_h_file=$ac_header; break;],[],[]) +- if test "$ndbm_h_found" != "yes"; then ++ if test -z "$ndbm_h_file" ; then + test "$enable_database_gdbm" = "yes" -o \ + "$enable_database_dbm" = "yes" && \ + XE_DIE("Required DBM support cannot be provided.") +- enable_database_gdbm=no enable_database_dbm=no] ++ enable_database_gdbm=no enable_database_dbm=no + fi + fi + diff --git a/xemacs-21.5.29-large-images.patch b/xemacs-21.5.29-large-images.patch deleted file mode 100644 index b30bac7..0000000 --- a/xemacs-21.5.29-large-images.patch +++ /dev/null @@ -1,96 +0,0 @@ -|APPROVE COMMIT 21.5 -| -|This patch has been committed. When trying to open very large image -|files (or image files with header files that claim the image is very -|large), we multiply length times width to get the number of pixels in -|the image (and possibly multiply that number if a pixel occupies more -|than 1 byte). The multiplication can overflow, resulting in passing -|negative or insufficiently positive size values to malloc. This patch -|checks whether the multiplication will overflow. If so, XEmacs -|refuses to attempt to load the image. -| -|(Patch taken from upstream, already applied there) -| ---- src/glyphs-eimage.c Mon Jun 29 08:20:47 2009 -0600 -+++ src/glyphs-eimage.c Wed Jul 01 15:42:54 2009 -0600 -@@ -409,6 +409,7 @@ - */ - - { -+ UINT_64_BIT pixels_sq; - int jpeg_gray = 0; /* if we're dealing with a grayscale */ - /* Step 4: set parameters for decompression. */ - -@@ -431,7 +432,10 @@ - jpeg_start_decompress (&cinfo); - - /* Step 6: Read in the data and put into EImage format (8bit RGB triples)*/ -- -+ pixels_sq = -+ (UINT_64_BIT) cinfo.output_width * (UINT_64_BIT) cinfo.output_height; -+ if (pixels_sq > ((size_t) -1) / 3) -+ signal_image_error ("JPEG image too large to instantiate", instantiator); - unwind.eimage = - xnew_binbytes (cinfo.output_width * cinfo.output_height * 3); - if (!unwind.eimage) -@@ -677,6 +681,7 @@ - { - ColorMapObject *cmo = unwind.giffile->SColorMap; - int i, j, row, pass, interlace, slice; -+ UINT_64_BIT pixels_sq; - Binbyte *eip; - /* interlaced gifs have rows in this order: - 0, 8, 16, ..., 4, 12, 20, ..., 2, 6, 10, ..., 1, 3, 5, ... */ -@@ -685,6 +690,9 @@ - - height = unwind.giffile->SHeight; - width = unwind.giffile->SWidth; -+ pixels_sq = (UINT_64_BIT) width * (UINT_64_BIT) height; -+ if (pixels_sq > ((size_t) -1) / (3 * unwind.giffile->ImageCount)) -+ signal_image_error ("GIF image too large to instantiate", instantiator); - unwind.eimage = - xnew_binbytes (width * height * 3 * unwind.giffile->ImageCount); - if (!unwind.eimage) -@@ -948,11 +956,15 @@ - { - int y; - Binbyte **row_pointers; -+ UINT_64_BIT pixels_sq; - height = info_ptr->height; - width = info_ptr->width; -+ pixels_sq = (UINT_64_BIT) width * (UINT_64_BIT) height; -+ if (pixels_sq > ((size_t) -1) / 3) -+ signal_image_error ("PNG image too large to instantiate", instantiator); - - /* Wow, allocate all the memory. Truly, exciting. */ -- unwind.eimage = xnew_array_and_zero (Binbyte, width * height * 3); -+ unwind.eimage = xnew_array_and_zero (Binbyte, (size_t) (pixels_sq * 3)); - /* libpng expects that the image buffer passed in contains a - picture to draw on top of if the png has any transparencies. - This could be a good place to pass that in... */ -@@ -1299,6 +1311,7 @@ - - uint32 *raster; - Binbyte *ep; -+ UINT_64_BIT pixels_sq; - - assert (!NILP (data)); - -@@ -1321,12 +1334,15 @@ - - TIFFGetField (unwind.tiff, TIFFTAG_IMAGEWIDTH, &width); - TIFFGetField (unwind.tiff, TIFFTAG_IMAGELENGTH, &height); -- unwind.eimage = xnew_binbytes (width * height * 3); -+ pixels_sq = (UINT_64_BIT) width * (UINT_64_BIT) height; -+ if (pixels_sq >= 1 << 29) -+ signal_image_error ("TIFF image too large to instantiate", instantiator); -+ unwind.eimage = xnew_binbytes (pixels_sq * 3); - - /* #### This is little more than proof-of-concept/function testing. - It needs to be reimplemented via scanline reads for both memory - compactness. */ -- raster = (uint32*) _TIFFmalloc (width * height * sizeof (uint32)); -+ raster = (uint32*) _TIFFmalloc ((tsize_t) (pixels_sq * sizeof (uint32))); - if (raster != NULL) - { - int i, j; diff --git a/xemacs-21.5.29.tar.bz2 b/xemacs-21.5.29.tar.bz2 deleted file mode 100644 index d607955..0000000 --- a/xemacs-21.5.29.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:50627ee71e69dfbf818494f6701e7e07767f4ceafad20ad1a57c60f48119002a -size 12547703 diff --git a/xemacs-beta-b604d235f028.tar.bz2 b/xemacs-beta-b604d235f028.tar.bz2 new file mode 100644 index 0000000..b98f242 --- /dev/null +++ b/xemacs-beta-b604d235f028.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f3880590588e727a99eebdec4deec354f5c1b2be51c6ee524a16571f7c5599a +size 9999561 diff --git a/xemacs.changes b/xemacs.changes index f0e8e2b..b09e8c8 100644 --- a/xemacs.changes +++ b/xemacs.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Dec 4 18:41:30 CET 2009 - werner@suse.de + +- Add patches from upstream to fix bnc#558764 (thenk you Stephen) + ------------------------------------------------------------------- Tue Aug 25 12:27:40 UTC 2009 - aj@suse.de diff --git a/xemacs.patch b/xemacs.patch index b37a76c..808d2a3 100644 --- a/xemacs.patch +++ b/xemacs.patch @@ -885,18 +885,6 @@ Index: xemacs-21.5.29/src/regex.c reg_syntax_t re_syntax_options; -Index: xemacs-21.5.29/src/s/linux.h -=================================================================== ---- xemacs-21.5.29.orig/src/s/linux.h -+++ xemacs-21.5.29/src/s/linux.h -@@ -25,6 +25,7 @@ Boston, MA 02111-1307, USA. */ - - #define USG - #define LINUX -+#define I18N2 - - /* powerpc gcc 2.8.0 doesn't define __ELF__, but it is */ - Index: xemacs-21.5.29/suse/README.SuSE =================================================================== --- /dev/null diff --git a/xemacs.spec b/xemacs.spec index 85dee80..4e8ca6f 100644 --- a/xemacs.spec +++ b/xemacs.spec @@ -30,6 +30,8 @@ BuildRequires: canna-devel compface db-devel fdupes fwnndev gcc-c++ gdbm-devel %define xincludes /usr/X11R6/include %define xlibraries /usr/X11R6/%{_lib} %endif +%define _id b604d235f028 +%define _hg beta-%{_id} Url: http://www.xemacs.org License: GPL v2 or later Group: Productivity/Editors/Emacs @@ -37,31 +39,17 @@ PreReq: permissions Requires: xemacs-info xemacs-packages ctags Conflicts: gnuserv AutoReqProv: on -Version: 21.5.29 +Version: 21.5.b604d235f028 Release: 4 Summary: XEmacs BuildRoot: %{_tmppath}/%{name}-%{version}-build -# Howto get the cvs tree of XEmacs: -# ============================================== -# cvs -d :pserver:cvs@cvs.xemacs.org:/pack/xemacscvs login -# Password = cvs -# cvs -z3 -d :pserver:cvs@cvs.xemacs.org:/pack/xemacscvs checkout xemacs -# Now check what tags are available: -# cd packages -# cvs status -v ChangeLog -# And update to the latest xemacs tag: -# cvs update -r r21-5-16 -# cd .. -# Now make a tar.bz2 file from the contents of the "packages" directory: -# tar jcvf xemacs-.tar.bz2 xemacs-/ -# -# XEmacs moved to Mercurial instad of CVS. +# Howto get the Mercurial tree of XEmacs: # See: http://xemacs.digimirror.nl/Develop/hgaccess.html # hg clone http://hg.debian.org/hg/xemacs/xemacs-beta # # delete the .hg directory before creating the tarball in order # not to make the source rpm huge. -Source0: ftp://ftp.xemacs.org/xemacs-21.5/xemacs-%{version}.tar.bz2 +Source0: ftp://ftp.xemacs.org/xemacs-21.5/xemacs-%{_hg}.tar.bz2 Source1: xe-list.el Source2: fix-load-history.el Source3: xemacs.desktop @@ -94,9 +82,11 @@ Patch45: fix-defface-custom-modified-face.patch Patch50: menus-always-utf8.patch Patch51: bnc502716-fontmenu.patch Patch52: bnc502716-xft.patch -Patch53: xemacs-21.5.29-large-images.patch +Patch54: bnc558764_avoid-xft-if-absent.patch +Patch55: changeset-dec62ca5a899.patch Patch292811: bugzilla-292811-make-x-make-font-bold-italic-xft-work.patch Patch301352: bugzilla-301352-fix-wrong-incrementing-in-macros.patch +%define _default_patch_fuzz 2 %description This is the current version of XEmacs, formerly known as Lucid-Emacs. @@ -160,33 +150,24 @@ Authors: and many other contributors %prep +# Currently XEmacs is not fully usable for Xfreetype support +# therefore we use XFontSet support: +%{!?enable_xfs:%global enable_xfs 1} %ifarch ia64 %global enable_pdump 0 %else %global enable_pdump 0 %endif %global enable_dump_in_exec 0 -# Currently XEmacs is not fully usable for Xfreetype support -# therefore we use XFontSet support: -%if %{?_project:1}%{!?_project:0} -%{!?enable_xfs:%global enable_xfs %(echo '%_project'|grep -cE '(SUSE:)?(openSUSE|SLE|Factory)')} -echo Project='%_project' -%else -%if %{?distribution:1}%{!?distribution:0} -%{!?enable_xfs:%global enable_xfs %(echo '%distribution'|grep -cE 'SUSE[:[:blank:]](openSUSE|SLE|Linux|Factory)')} -echo Distribution='%distribution' -%endif -%endif -%{!?enable_xfs:%global enable_xfs 1} %if ! %enable_xfs echo Use xft, requires X11, Xft, Xrender, freetype, and fontconfig support. %else echo Use xfs, that is XFontSet support for internationalized menubar. %endif -%setup -q -n xemacs-%{version} +%setup -q -n xemacs-%{_hg} %patch3 -p1 #%patch5 -p1 -b .fontmenu # appears to be not needed anymore -%patch13 -p1 +#%patch13 -p1 %patch14 -p1 %patch18 -p0 -b .xevent %patch19 -p1 -b .ppc @@ -212,7 +193,8 @@ echo Use xfs, that is XFontSet support for internationalized menubar. %patch51 -p0 %patch52 -p0 %endif -%patch53 -p0 +%patch54 -p0 +%patch55 -p0 %patch292811 -p1 %patch301352 -p1 %patch0 -p1 @@ -292,7 +274,7 @@ PREFIX="--prefix=/usr \ # when using "--rel-alloc, XEmacs 21.5.18 crashes often when using # 'compile-goto-error'. # --rel-alloc \ -SPECIAL="--enable-database=gdbm,berkdb \ +SPECIAL="--enable-database=berkdb,gdbm \ --with-ncurses \ --with-canna \ --with-tty=yes \ @@ -335,10 +317,10 @@ X11="--with-xpm \ --with-png \ --with-x \ --with-athena=3d \ - --enable--menubars=lucid \ - --enable-scrollbars=lucid \ - --enable-dialogs=athena \ - --enable-widgets=athena \ + --with-menubars=lucid \ + --with-scrollbars=lucid \ + --with-dialogs=athena \ + --with-widgets=athena \ --x-includes=%{xincludes} \ --x-libraries=%{xlibraries} \ " @@ -354,18 +336,20 @@ MAIL="--enable-clash-detection \ # # Mule # -MULE="--enable-mule \ - --with-xim=xlib \ -# --with-xfs Compile with XFontSet support for bilingual menubar. +# * --with-xfs Compile with XFontSet support for bilingual menubar. # Can't use this option with --with-xim=motif or xlib. # And should have --with-menubars=lucid. -# # (this is necessary to get German, French, Japanese # and Romanian texts in the menus. It DOES work with # --with-xim=xlib, the above comment from './configure --help' # seems to be incorrect in that respect.) +# +MULE="--enable-mule \ + --with-xim=xlib \ %if %enable_xfs --with-xfs \ +%else + --with-xft \ %endif " #