mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-21 21:17:37 -08:00
app-editors/xemacs: drop 21.5.35-r9, 21.5.35-r10
Signed-off-by: Mats Lidell <matsl@gentoo.org>
This commit is contained in:
parent
47864b6810
commit
ae8d0cdf6a
@ -1,5 +1,2 @@
|
||||
DIST NeXT_XEmacs.tar.gz 39571 BLAKE2B 7abf17627ec34e6b0d0edde444028c46dca6d703cfa208a8a1eaf30e2fc2543b953c9a9582c3d55bd5b37e746f45c03ebfc408a0d965606e45d5f4adb9148dea SHA512 611ddbbf5be3d2274e7f76be7f8200c6c7f3cba917efcc24e73685aa5f61c94237e6e48ce66f2d59ee4b74862e686f3ea7a29cf006717d5d0674db24d243d566
|
||||
DIST xemacs-21.5.35-info-handle-compress.patch.xz 7852 BLAKE2B 61b8d3a7d63d76311cdbb10153101ea8546ff5e4c8d6345750e44b7e80dfe7afb280dfa847097163fcb92888e5abd837c1a932170a3c362de7a523fc019269f5 SHA512 6c83a4b739075c6da88ba56b84b8521ceb1f34dc71ea51b7fbdb992b459794a3f479ea7db5df777d6497291e2eed8e33809edf5d7572822007f599cdd57955f8
|
||||
DIST xemacs-21.5.35-ootags-boolint.patch.xz 7660 BLAKE2B 9567cebeea7828dd7a207e627c4a21d49ef129ea7cf92defde67c068aab6694d0c7f70d90648b9177cea8b6ea3fc3734e1f65f1821b5e4c820df507bb6d6835b SHA512 f43656a5e4c9781e2250fca7f8750bbc131223f4a252dfdfc6315e06ac578974877ac0bbc695f957ade5a7960c4257b090ee34199965110da28851e58986e985
|
||||
DIST xemacs-21.5.35.tar.gz 16403617 BLAKE2B efab8d3d984ec2223913b09ff1abc9f2df187fb5b8c2ccf99fcfc60c86369f4411cffd48b03532d53329bd5b3d3149271a445da4c0a3cd7bdc2834021b1297b3 SHA512 e592af6ffbb6f95299039de28f59ee770bf62f54a15b1358b9d1059ed25dcb410c01dcf6e88c1d2196d54f0c6902f309d709fe003accee82e516023fa4363019
|
||||
DIST xemacs-21.5.36.tar.gz 16486681 BLAKE2B e7105dd64c49c73f2914e071707b5ec098f0c1a8a7ea7afce6785bc9f966c02e7ed9b7d8a021a3f153a65521135f90ffabcab9af66f2929fdacf5b51056bcc1b SHA512 42e1bc4283038e6829549c4bf78ff034e94f869cd038a3a28fe48b19a623b358e733e98b4c58b5c53ae7613a2d5da64f9796bb1c794a503e83f7706c4b8123f1
|
||||
|
||||
@ -1,191 +0,0 @@
|
||||
Don't segfault when calling #'center-to-window-pos and friends, -batch
|
||||
Patch backported from master branch
|
||||
https://foss.heptapod.net/xemacs/xemacs/-/issues/6
|
||||
|
||||
commit 578daa839db83c84fc7ebbc4bf809ff66fd492f5
|
||||
Author: Aidan Kehoe <kehoea@parhasard.net>
|
||||
Date: Tue Jan 21 16:15:47 2025 +0000
|
||||
|
||||
Don't segfault when calling #'center-to-window-pos and friends, -batch
|
||||
|
||||
--- xemacs-21.5.35/src/indent.c
|
||||
+++ xemacs-21.5.35/src/indent.c
|
||||
@@ -642,6 +642,15 @@ Bytebpos
|
||||
vmotion (struct window *w, Bytebpos orig, Charcount vtarget,
|
||||
Charcount *ret_vpos)
|
||||
{
|
||||
+ if (!redisplayable_window_p (w))
|
||||
+ {
|
||||
+ if (ret_vpos)
|
||||
+ {
|
||||
+ *ret_vpos = 0;
|
||||
+ }
|
||||
+ return orig;
|
||||
+ }
|
||||
+
|
||||
return vmotion_1 (w, orig, vtarget, ret_vpos, NULL);
|
||||
}
|
||||
|
||||
@@ -671,6 +680,11 @@ vertical_motion_1 (Lisp_Object lines, Li
|
||||
|
||||
w = XWINDOW (window);
|
||||
|
||||
+ if (!redisplayable_window_p (w))
|
||||
+ {
|
||||
+ return Qzero;
|
||||
+ }
|
||||
+
|
||||
orig = selected ? BYTE_BUF_PT (XBUFFER (w->buffer))
|
||||
: marker_byte_position (w->pointm[CURRENT_DISP]);
|
||||
|
||||
--- xemacs-21.5.35/src/window.c
|
||||
+++ xemacs-21.5.35/src/window.c
|
||||
@@ -402,6 +402,12 @@ allocate_window (void)
|
||||
return obj;
|
||||
}
|
||||
#undef INIT_DISP_VARIABLE
|
||||
+
|
||||
+Boolint
|
||||
+redisplayable_window_p (struct window *w)
|
||||
+{
|
||||
+ return !FRAME_STREAM_P (XFRAME (WINDOW_FRAME (w)));
|
||||
+}
|
||||
|
||||
/************************************************************************/
|
||||
/* Window mirror structure */
|
||||
@@ -1491,11 +1497,19 @@ POS defaults to point in WINDOW's buffer
|
||||
(pos, window, partially))
|
||||
{
|
||||
struct window *w = decode_window (window);
|
||||
- Bytebpos top = marker_byte_position (w->start[CURRENT_DISP]);
|
||||
- struct buffer *buf = XBUFFER (w->buffer);
|
||||
- Bytebpos posint = get_buffer_pos_byte (buf, pos,
|
||||
- GB_ALLOW_PAST_ACCESSIBLE |
|
||||
- GB_ALLOW_NIL | GB_NO_ERROR_IF_BAD);
|
||||
+ Bytebpos top, posint;
|
||||
+ struct buffer *buf;
|
||||
+
|
||||
+ if (!redisplayable_window_p (w))
|
||||
+ {
|
||||
+ return Qnil;
|
||||
+ }
|
||||
+
|
||||
+ top = marker_byte_position (w->start[CURRENT_DISP]);
|
||||
+ buf = XBUFFER (w->buffer);
|
||||
+ posint = get_buffer_pos_byte (buf, pos,
|
||||
+ GB_ALLOW_PAST_ACCESSIBLE | GB_ALLOW_NIL
|
||||
+ | GB_NO_ERROR_IF_BAD);
|
||||
|
||||
if (posint < top || posint > BYTE_BUF_ZV (buf))
|
||||
return Qnil;
|
||||
@@ -1659,6 +1673,12 @@ is non-nil, do not include space occupie
|
||||
line_start_cache_dynarr *cache;
|
||||
|
||||
window = wrap_window (w);
|
||||
+
|
||||
+ if (!redisplayable_window_p (w))
|
||||
+ {
|
||||
+ return Qzero;
|
||||
+ }
|
||||
+
|
||||
start = marker_byte_position (w->start[CURRENT_DISP]);
|
||||
hlimit = WINDOW_TEXT_HEIGHT (w);
|
||||
eobuf = BYTE_BUF_ZV (XBUFFER (w->buffer));
|
||||
@@ -1903,11 +1923,11 @@ e.g. if the window's current buffer has
|
||||
struct window *w = decode_window (window);
|
||||
Bytebpos eoll;
|
||||
|
||||
- if (NILP (guarantee) || in_display)
|
||||
+ if (NILP (guarantee) || !redisplayable_window_p (w) || in_display)
|
||||
{
|
||||
struct buffer *b = window_display_buffer (w);
|
||||
|
||||
- if (in_display ||
|
||||
+ if (in_display || !redisplayable_window_p (w) ||
|
||||
(BUFFER_LIVE_P (b) && EQ (wrap_buffer (b), window_buffer (w))))
|
||||
{
|
||||
return Fmarker_position (w->end_pos[CURRENT_DISP]);
|
||||
@@ -3341,7 +3361,7 @@ value is reasonable when this function i
|
||||
window start is outside the visible portion (as might happen when
|
||||
the display is not current, due to typeahead). */
|
||||
if (start_pos >= BYTE_BUF_BEGV (b) && start_pos <= BYTE_BUF_ZV (b)
|
||||
- && !MINI_WINDOW_P (w))
|
||||
+ && !MINI_WINDOW_P (w) && redisplayable_window_p (w))
|
||||
{
|
||||
Bytebpos new_start
|
||||
= start_with_line_at_pixpos
|
||||
@@ -4628,6 +4648,11 @@ window_scroll (Lisp_Object window, Lisp_
|
||||
struct display_line* dl;
|
||||
Boolint unchain_point = 0;
|
||||
struct gcpro gcpro1;
|
||||
+
|
||||
+ if (!redisplayable_window_p (w))
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
if (selected)
|
||||
point = b->point_marker;
|
||||
@@ -5127,6 +5152,11 @@ If WINDOW is nil, the selected window is
|
||||
Bytebpos opoint = BYTE_BUF_PT (b);
|
||||
Bytebpos startp;
|
||||
|
||||
+ if (!redisplayable_window_p (w))
|
||||
+ {
|
||||
+ return Qnil;
|
||||
+ }
|
||||
+
|
||||
if (NILP (n))
|
||||
startp = start_with_line_at_pixpos (w, opoint, window_half_pixpos (w));
|
||||
else
|
||||
@@ -5491,14 +5521,20 @@ get_current_pixel_pos (Lisp_Object windo
|
||||
{
|
||||
int first_line, i;
|
||||
Bytebpos point;
|
||||
+ struct buffer *buf;
|
||||
|
||||
if (NILP (pos))
|
||||
{
|
||||
pos = Fwindow_point (wrap_window (*w));
|
||||
}
|
||||
|
||||
- point = get_buffer_pos_byte (window_display_buffer (*w), pos,
|
||||
- GB_NO_ERROR_IF_BAD);
|
||||
+ buf = window_display_buffer (*w);
|
||||
+ if (buf == NULL)
|
||||
+ {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ point = get_buffer_pos_byte (buf, pos, GB_NO_ERROR_IF_BAD);
|
||||
|
||||
/* If the window has a modeline, ignore it for our purposes, POS can't
|
||||
be over it. Start examining the display lines from 1. */
|
||||
@@ -5552,7 +5588,7 @@ a new frame, use the following instead:
|
||||
*/
|
||||
(window, pos))
|
||||
{
|
||||
- struct window* w;
|
||||
+ struct window *w = decode_window (window);
|
||||
struct display_line *dl;
|
||||
struct rune* rb;
|
||||
|
||||
@@ -5575,7 +5611,7 @@ use the following instead:
|
||||
*/
|
||||
(window, pos))
|
||||
{
|
||||
- struct window* w;
|
||||
+ struct window *w = decode_window (window);
|
||||
struct display_line *dl;
|
||||
struct rune* rb;
|
||||
|
||||
--- xemacs-21.5.35/src/window.h
|
||||
+++ xemacs-21.5.35/src/window.h
|
||||
@@ -152,6 +152,7 @@ int buffer_window_mru (struct window *w)
|
||||
void check_frame_size (struct frame *frame, int *cols, int *rows);
|
||||
int frame_pixsize_valid_p (struct frame *frame, int width, int height);
|
||||
struct window *decode_window (Lisp_Object window);
|
||||
+Boolint redisplayable_window_p (struct window *w);
|
||||
struct window *find_window_by_pixel_pos (int pix_x, int pix_y, Lisp_Object win);
|
||||
|
||||
void free_window_mirror (struct window_mirror *mir);
|
||||
@ -1,73 +0,0 @@
|
||||
diff -r 3761ed745bc6 configure.ac
|
||||
--- a/configure.ac Sat Mar 02 17:26:00 2024 +0100
|
||||
+++ b/configure.ac Fri Mar 08 22:25:23 2024 +0100
|
||||
@@ -2192,7 +2192,6 @@
|
||||
|
||||
compiler_version=""
|
||||
gcc_compiler_specs=""
|
||||
-libc_version=""
|
||||
|
||||
AC_MSG_CHECKING([for compiler version information])
|
||||
|
||||
@@ -2255,53 +2254,6 @@
|
||||
fi
|
||||
AC_MSG_RESULT([$compiler_version])
|
||||
|
||||
-AC_MSG_CHECKING(for standard C library version information)
|
||||
-
|
||||
-case "$ac_cv_build" in
|
||||
- *-*-linux*)
|
||||
- dnl #### who would ever _not_ be running the distro's libc?
|
||||
- dnl Maybe it would be better to get/augment this info with ldd?
|
||||
- if test -f /etc/redhat-release ; then
|
||||
- libc_version=`rpm -q glibc`
|
||||
- elif test -f /etc/debian_version ; then
|
||||
- libc_version=`dpkg-query --showformat='${version}' --show libc6`
|
||||
- libc_version="GNU libc $libc_version (Debian)"
|
||||
- dnl need SuSE et al checks here...
|
||||
- fi
|
||||
- dnl #### Tested on Debian, does this actually work elsewhere? ;-)
|
||||
- if test -z "$libc_version"; then
|
||||
- libc_version=`ls /lib/libc-*.so | sed -e 's,/lib/libc-\(.*\)\.so,\1,'`
|
||||
- fi
|
||||
- ;;
|
||||
-
|
||||
- *-*-aix*)
|
||||
- libc_version="bos.rte.libc `lslpp -Lqc bos.rte.libc | cut -f3 -d:`"
|
||||
- ;;
|
||||
-
|
||||
- *-*-solaris*)
|
||||
- libc=`pkginfo -l SUNWcsl | grep VERSION: | awk '{print $2}'`
|
||||
- libc_version="SUNWcsl $libc"
|
||||
-
|
||||
- ;;
|
||||
-
|
||||
- mips-sgi-irix*)
|
||||
- libc_version="IRIX libc `uname -sRm`"
|
||||
- ;;
|
||||
-
|
||||
- alpha*-dec-osf*)
|
||||
- dnl Another ugly case
|
||||
- (cd /usr/.smdb.;
|
||||
- libc_version=` grep -h libc.so *.inv | awk '$9 == "f" {print $12}' | tr '\n' ','`
|
||||
- )
|
||||
- ;;
|
||||
-esac
|
||||
-
|
||||
-dnl Awww, shucks.
|
||||
-if test -z "libc_version"; then
|
||||
- libc_version="detection failed (please report this)"
|
||||
-fi
|
||||
-AC_MSG_RESULT([$libc_version])
|
||||
-
|
||||
dnl ---------------------------------------------------------
|
||||
dnl These directories are used to search for include subdirs.
|
||||
dnl ---------------------------------------------------------
|
||||
@@ -6122,7 +6074,6 @@
|
||||
echo " WARNING: CC and XEMACS_CC mismatched; check CFLAGS carefully."
|
||||
fi
|
||||
fi
|
||||
-echo " libc version: $libc_version"
|
||||
echo " Relocating allocator for buffers: $with_rel_alloc"
|
||||
echo "
|
||||
Package Search (a 'root' contains '{xemacs,mule,site}-packages'):"
|
||||
@ -1,42 +0,0 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3792,8 +3792,7 @@
|
||||
XE_PREPEND("$libpath_xpm", LDFLAGS)
|
||||
AC_MSG_CHECKING(for Xpm - no older than 3.4f)
|
||||
xe_check_libs="$libname_xpm"
|
||||
- AC_RUN_IFELSE([AC_LANG_SOURCE([#define XPM_NUMBERS
|
||||
-#include <X11/xpm.h>
|
||||
+ AC_RUN_IFELSE([AC_LANG_SOURCE([#include <X11/xpm.h>
|
||||
int main(int c, char **v) {
|
||||
return c == 1 ? 0 :
|
||||
XpmIncludeVersion != XpmLibraryVersion() ? 1 :
|
||||
@@ -3831,7 +3830,7 @@
|
||||
XE_PREPEND("$incpath_xpm", XE_CFLAGS)
|
||||
AC_MSG_CHECKING([for "FOR_MSW" xpm])
|
||||
xe_check_libs="$libname_xpm"
|
||||
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[XpmCreatePixmapFromData();])],
|
||||
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <X11/xpm.h>],[XpmCreatePixmapFromData(0, 0, 0, 0, 0, 0);])],
|
||||
[xpm_for_msw=no],
|
||||
[xpm_for_msw=yes])
|
||||
xe_check_libs=
|
||||
@@ -4620,9 +4619,7 @@
|
||||
AC_CACHE_VAL(emacs_cv_localtime_cache,
|
||||
[if test "$ac_cv_func_tzset" = "yes"; then
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([#include <time.h>
|
||||
-#if STDC_HEADERS
|
||||
-# include <stdlib.h>
|
||||
-#endif
|
||||
+#include <stdlib.h>
|
||||
extern char **environ;
|
||||
unset_TZ ()
|
||||
{
|
||||
@@ -4733,6 +4730,8 @@
|
||||
void *alloca ();
|
||||
#endif /* C_ALLOCA */
|
||||
#endif /* !defined (alloca) */
|
||||
+#include <string.h>
|
||||
+#include <stdlib.h>
|
||||
|
||||
void
|
||||
f1 (double a, void *ptr, int b)
|
||||
@ -1,63 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User Aidan Kehoe <kehoea@parhasard.net>
|
||||
# Date 1739950047 0
|
||||
# Wed Feb 19 07:27:27 2025 +0000
|
||||
# Node ID 10e8e0fb778fdfcace7e2257d1f1cd0a74446e66
|
||||
# Parent b2a7a1a58d1fba872a100db28ba45ddc6239cfeb
|
||||
Delay calls to FcInit() at startup until an XFT font is actually opened.
|
||||
|
||||
src/ChangeLog addition:
|
||||
|
||||
2025-02-19 Aidan Kehoe <kehoea@parhasard.net>
|
||||
|
||||
Delay calls to FcInit() until
|
||||
lwlib-fonts.c:xft_open_font_by_name() or
|
||||
fontcolor-xlike-inc.c:xft_find_charset_font(), avoiding updating
|
||||
out-of-tree cache files at build time, something Gentoo does not
|
||||
like. Thank you for the bug report, Mats Lidell.
|
||||
* emacs.c (main_1):
|
||||
Remove the call to reinit_vars_of_font_mgr() here.
|
||||
* font-mgr.c (reinit_vars_of_font_mgr): Removed. All it did was
|
||||
call FcInit() basically directly after pdump_load(), for which
|
||||
there is no need, reasonable to delay until we open an X11 device.
|
||||
* symsinit.h:
|
||||
Remove its declaration.
|
||||
|
||||
diff -r b2a7a1a58d1f -r 10e8e0fb778f src/emacs.c
|
||||
--- a/src/emacs.c Wed Feb 19 06:13:45 2025 +0000
|
||||
+++ b/src/emacs.c Wed Feb 19 07:27:27 2025 +0000
|
||||
@@ -2235,9 +2235,6 @@
|
||||
#if defined (HAVE_MENUBARS) || defined (HAVE_SCROLLBARS) || defined (HAVE_X_DIALOGS) || defined (HAVE_TOOLBARS)
|
||||
reinit_vars_of_gui_x ();
|
||||
#endif
|
||||
-#ifdef HAVE_XFT
|
||||
- reinit_vars_of_font_mgr ();
|
||||
-#endif
|
||||
#endif /* HAVE_X_WINDOWS */
|
||||
|
||||
reinit_vars_of_mule_coding ();
|
||||
diff -r b2a7a1a58d1f -r 10e8e0fb778f src/font-mgr.c
|
||||
--- a/src/font-mgr.c Wed Feb 19 06:13:45 2025 +0000
|
||||
+++ b/src/font-mgr.c Wed Feb 19 07:27:27 2025 +0000
|
||||
@@ -1439,9 +1439,4 @@
|
||||
Vxlfd_font_name_regexp = make_xlfd_font_regexp();
|
||||
}
|
||||
|
||||
-void
|
||||
-reinit_vars_of_font_mgr (void)
|
||||
-{
|
||||
- FcInit ();
|
||||
-}
|
||||
-
|
||||
+/* font-mgr.c ends here */
|
||||
diff -r b2a7a1a58d1f -r 10e8e0fb778f src/symsinit.h
|
||||
--- a/src/symsinit.h Wed Feb 19 06:13:45 2025 +0000
|
||||
+++ b/src/symsinit.h Wed Feb 19 07:27:27 2025 +0000
|
||||
@@ -419,7 +419,6 @@
|
||||
void vars_of_font_lock (void);
|
||||
void reinit_vars_of_font_lock (void);
|
||||
void vars_of_font_mgr (void);
|
||||
-void reinit_vars_of_font_mgr (void);
|
||||
void vars_of_frame (void);
|
||||
void vars_of_frame_gtk (void);
|
||||
void vars_of_frame_mswindows (void);
|
||||
@ -1,17 +0,0 @@
|
||||
changeset: 7634:770d869450ea
|
||||
parent: 7632:c35cdc528fff
|
||||
user: Mats Lidell <mats.lidell@lidells.se>
|
||||
date: Sat Mar 22 23:19:55 2025 +0100
|
||||
summary: Make xemacs.desktop Category consistent with GNU Emacs
|
||||
|
||||
diff -r c35cdc528fff -r 770d869450ea etc/xemacs.desktop
|
||||
--- a/etc/xemacs.desktop Thu Mar 20 09:40:30 2025 +0000
|
||||
+++ b/etc/xemacs.desktop Sat Mar 22 23:19:55 2025 +0100
|
||||
@@ -30,5 +30,5 @@
|
||||
Icon=xemacs
|
||||
Type=Application
|
||||
Terminal=false
|
||||
-Categories=Application;Utility;TextEditor;
|
||||
+Categories=Development;TextEditor;
|
||||
StartupWMClass=XEmacs
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
changeset: 7521:ce06831b299c
|
||||
parent: 7519:fb35ba719d24
|
||||
user: Aidan Kehoe <kehoea@parhasard.net>
|
||||
date: Thu Oct 17 09:01:54 2024 +0100
|
||||
summary: configure.ac: No longer use XE_PROTECT_LINKER_FLAGS on LDFLAGS.
|
||||
|
||||
diff -r fb35ba719d24 -r ce06831b299c configure.ac
|
||||
--- a/configure.ac Mon Oct 14 19:18:08 2024 +0100
|
||||
+++ b/configure.ac Thu Oct 17 09:01:54 2024 +0100
|
||||
@@ -2155,8 +2155,12 @@
|
||||
XE_PROTECT_LINKER_FLAGS(ld_switch_system)
|
||||
XE_PROTECT_LINKER_FLAGS(ld_switch_machine)
|
||||
XE_PROTECT_LINKER_FLAGS(ld_switch_site)
|
||||
-XE_PROTECT_LINKER_FLAGS(LDFLAGS)
|
||||
XE_PROTECT_LINKER_FLAGS(ld_call_shared)
|
||||
+dnl No longer do this for LDFLAGS, since that interacts poorly with link time
|
||||
+dnl optimization. Unclear if XE_PROTECT_LINKER_FLAGS() is still needed in
|
||||
+dnl general, it was introduced for GCC versions in the 90s and things have
|
||||
+dnl changed, but unlikely to be an issue with the other flags. See
|
||||
+dnl https://bugs.gentoo.org/940327 for a relevant bug report.
|
||||
|
||||
dnl Add s&m-determined objects to link line
|
||||
test -n "$objects_machine" && XE_ADD_OBJS($objects_machine)
|
||||
|
||||
@ -1,67 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User Aidan Kehoe <kehoea@parhasard.net>
|
||||
# Date 1727073391 -3600
|
||||
# Mon Sep 23 07:36:31 2024 +0100
|
||||
# Node ID 00eb7276ebb1a22e20e6f6b9b5247b196b44f3f1
|
||||
# Parent d40990b854cf32198aea31eae0d60ce91ce0f4f7
|
||||
Avoid misaligned coding systems objects in the dump file,
|
||||
|
||||
src/ChangeLog addition:
|
||||
|
||||
2024-09-22 Aidan Kehoe <kehoea@parhasard.net>
|
||||
|
||||
* file-coding.c:
|
||||
* file-coding.c (aligned_sizeof_coding_system): New.
|
||||
* file-coding.c (allocate_coding_system): Use it.
|
||||
Avoid misaligned coding systems objects in the dump file,
|
||||
previously addressed for lstreams, specifiers, opaque data in
|
||||
Martin Buchholz's change of 2001-01-24. Approach taken the same as
|
||||
that for specifiers.
|
||||
* file-coding.c (struct convert_eol_coding_system):
|
||||
Remove a dummy integer no longer needed.
|
||||
|
||||
[Changelog patch removed]
|
||||
|
||||
diff -r d40990b854cf -r 00eb7276ebb1 src/file-coding.c
|
||||
--- a/src/file-coding.c Mon Sep 23 08:03:15 2024 +0100
|
||||
+++ b/src/file-coding.c Mon Sep 23 07:36:31 2024 +0100
|
||||
@@ -312,11 +312,18 @@
|
||||
MAYBE_XCODESYSMETH (obj, finalize, (obj));
|
||||
}
|
||||
|
||||
+inline static Bytecount
|
||||
+aligned_sizeof_coding_system (Bytecount type_specific_size)
|
||||
+{
|
||||
+ return MAX_ALIGN_SIZE (offsetof (Lisp_Coding_System, data)
|
||||
+ + type_specific_size);
|
||||
+}
|
||||
+
|
||||
static Bytecount
|
||||
sizeof_coding_system (Lisp_Object obj)
|
||||
{
|
||||
const Lisp_Coding_System *p = XCODING_SYSTEM (obj);
|
||||
- return offsetof (Lisp_Coding_System, data) + p->methods->extra_data_size;
|
||||
+ return aligned_sizeof_coding_system (p->methods->extra_data_size);
|
||||
}
|
||||
|
||||
static const struct memory_description coding_system_methods_description_1[]
|
||||
@@ -835,7 +842,7 @@
|
||||
Bytecount data_size,
|
||||
Lisp_Object name)
|
||||
{
|
||||
- Bytecount total_size = offsetof (Lisp_Coding_System, data) + data_size;
|
||||
+ Bytecount total_size = aligned_sizeof_coding_system (data_size);
|
||||
Lisp_Object obj = ALLOC_SIZED_LISP_OBJECT (total_size, coding_system);
|
||||
Lisp_Coding_System *codesys = XCODING_SYSTEM (obj);
|
||||
|
||||
@@ -3951,10 +3958,6 @@
|
||||
struct convert_eol_coding_system
|
||||
{
|
||||
enum eol_type subtype;
|
||||
- int dummy; /* On some architectures (eg ia64) the portable dumper can
|
||||
- produce unaligned access errors without this field. Probably
|
||||
- because the combined structure of this structure and
|
||||
- Lisp_Coding_System is not properly aligned. */
|
||||
};
|
||||
|
||||
#define CODING_SYSTEM_CONVERT_EOL_SUBTYPE(codesys) \
|
||||
@ -1,124 +0,0 @@
|
||||
diff --git a/tests/automated/mule-tests.el b/tests/automated/mule-tests.el
|
||||
--- a/tests/automated/mule-tests.el
|
||||
+++ b/tests/automated/mule-tests.el
|
||||
@@ -85,14 +85,15 @@
|
||||
(insert string)
|
||||
(assert (equal (buffer-string) string))))))
|
||||
|
||||
-(when (compiled-function-p (symbol-function 'test-chars))
|
||||
- ;; Run #'test-chars in byte-compiled mode only.
|
||||
- (test-chars t
|
||||
- ;; unicode-internal has a value of #x40000000, (expt 2 30), for
|
||||
- ;; char-code-limit and even re-writing the above to avoid
|
||||
- ;; allocating the list and the string means I run out of memory
|
||||
- ;; when I attempt to run this.
|
||||
- (min char-code-limit #x200000)))
|
||||
+;; Crashes XEmacs ...
|
||||
+;; (when (compiled-function-p (symbol-function 'test-chars))
|
||||
+;; ;; Run #'test-chars in byte-compiled mode only.
|
||||
+;; (test-chars t
|
||||
+;; ;; unicode-internal has a value of #x40000000, (expt 2 30), for
|
||||
+;; ;; char-code-limit and even re-writing the above to avoid
|
||||
+;; ;; allocating the list and the string means I run out of memory
|
||||
+;; ;; when I attempt to run this.
|
||||
+;; (min char-code-limit #x200000)))
|
||||
|
||||
(defun unicode-code-point-to-utf-8-string (code-point)
|
||||
"Convert a Unicode code point to the equivalent UTF-8 string.
|
||||
@@ -812,51 +813,53 @@
|
||||
;;---------------------------------------------------------------
|
||||
;; Language environments, and whether the specified values are sane.
|
||||
;;---------------------------------------------------------------
|
||||
- (loop
|
||||
- for language in (mapcar #'car language-info-alist)
|
||||
- with language-input-method = nil
|
||||
- with native-coding-system = nil
|
||||
- with original-language-environment = current-language-environment
|
||||
- do
|
||||
- ;; s-l-e can call #'require, which says "Loading ..."
|
||||
- (Silence-Message (set-language-environment language))
|
||||
- (Assert (equal language current-language-environment))
|
||||
+
|
||||
+ ;; Crashes XEmacs ...
|
||||
+ ;; (loop
|
||||
+ ;; for language in (mapcar #'car language-info-alist)
|
||||
+ ;; with language-input-method = nil
|
||||
+ ;; with native-coding-system = nil
|
||||
+ ;; with original-language-environment = current-language-environment
|
||||
+ ;; do
|
||||
+ ;; ;; s-l-e can call #'require, which says "Loading ..."
|
||||
+ ;; (Silence-Message (set-language-environment language))
|
||||
+ ;; (Assert (equal language current-language-environment))
|
||||
|
||||
- (setq language-input-method
|
||||
- (get-language-info language 'input-method))
|
||||
- (when (and language-input-method
|
||||
- ;; #### Not robust, if more input methods besides canna are
|
||||
- ;; in core. The intention of this is that if *any* of the
|
||||
- ;; packages' input methods are available, we check that *all*
|
||||
- ;; of the language environments' input methods actually
|
||||
- ;; exist, which goes against the spirit of non-monolithic
|
||||
- ;; packages. But I don't have a better approach to this.
|
||||
- (> (length input-method-alist) 1))
|
||||
- (Assert (assoc language-input-method input-method-alist))
|
||||
- (Skip-Test-Unless
|
||||
- (assoc language-input-method input-method-alist)
|
||||
- "input method unavailable"
|
||||
- (format "check that IM %s can be activated" language-input-method)
|
||||
- ;; s-i-m can load files.
|
||||
- (Silence-Message
|
||||
- (set-input-method language-input-method))
|
||||
- (Assert (equal language-input-method current-input-method))))
|
||||
+ ;; (setq language-input-method
|
||||
+ ;; (get-language-info language 'input-method))
|
||||
+ ;; (when (and language-input-method
|
||||
+ ;; ;; #### Not robust, if more input methods besides canna are
|
||||
+ ;; ;; in core. The intention of this is that if *any* of the
|
||||
+ ;; ;; packages' input methods are available, we check that *all*
|
||||
+ ;; ;; of the language environments' input methods actually
|
||||
+ ;; ;; exist, which goes against the spirit of non-monolithic
|
||||
+ ;; ;; packages. But I don't have a better approach to this.
|
||||
+ ;; (> (length input-method-alist) 1))
|
||||
+ ;; (Assert (assoc language-input-method input-method-alist))
|
||||
+ ;; (Skip-Test-Unless
|
||||
+ ;; (assoc language-input-method input-method-alist)
|
||||
+ ;; "input method unavailable"
|
||||
+ ;; (format "check that IM %s can be activated" language-input-method)
|
||||
+ ;; ;; s-i-m can load files.
|
||||
+ ;; (Silence-Message
|
||||
+ ;; (set-input-method language-input-method))
|
||||
+ ;; (Assert (equal language-input-method current-input-method))))
|
||||
|
||||
- (dolist (charset (get-language-info language 'charset))
|
||||
- (Assert (charset-or-charset-tag-p (find-charset charset))))
|
||||
- (dolist (coding-system (get-language-info language 'coding-system))
|
||||
- (Assert (coding-system-p (find-coding-system coding-system))))
|
||||
- (dolist (coding-system
|
||||
- (if (listp (setq native-coding-system
|
||||
- (get-language-info language
|
||||
- 'native-coding-system)))
|
||||
- native-coding-system
|
||||
- (list native-coding-system)))
|
||||
- ;; We don't have the appropriate POSIX locales to test with a
|
||||
- ;; native-coding-system that is a function.
|
||||
- (unless (functionp coding-system)
|
||||
- (Assert (coding-system-p (find-coding-system coding-system)))))
|
||||
- finally (set-language-environment original-language-environment))
|
||||
+ ;; (dolist (charset (get-language-info language 'charset))
|
||||
+ ;; (Assert (charset-or-charset-tag-p (find-charset charset))))
|
||||
+ ;; (dolist (coding-system (get-language-info language 'coding-system))
|
||||
+ ;; (Assert (coding-system-p (find-coding-system coding-system))))
|
||||
+ ;; (dolist (coding-system
|
||||
+ ;; (if (listp (setq native-coding-system
|
||||
+ ;; (get-language-info language
|
||||
+ ;; 'native-coding-system)))
|
||||
+ ;; native-coding-system
|
||||
+ ;; (list native-coding-system)))
|
||||
+ ;; ;; We don't have the appropriate POSIX locales to test with a
|
||||
+ ;; ;; native-coding-system that is a function.
|
||||
+ ;; (unless (functionp coding-system)
|
||||
+ ;; (Assert (coding-system-p (find-coding-system coding-system)))))
|
||||
+ ;; finally (set-language-environment original-language-environment))
|
||||
|
||||
(with-temp-buffer
|
||||
(labels
|
||||
@ -1,179 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User Aidan Kehoe <kehoea@parhasard.net>
|
||||
# Date 1727074995 -3600
|
||||
# Mon Sep 23 08:03:15 2024 +0100
|
||||
# Node ID d40990b854cf32198aea31eae0d60ce91ce0f4f7
|
||||
# Parent d3dfe7ea1c31cc619bf8416e04c5466927d9c6f5
|
||||
Avoid passing an int among Lisp_Object va_args, specifier instantiate methods.
|
||||
|
||||
src/ChangeLog addition:
|
||||
|
||||
2024-09-08 Aidan Kehoe <kehoea@parhasard.net>
|
||||
|
||||
* fontcolor.c (color_instantiate):
|
||||
* fontcolor.c (font_instantiate):
|
||||
* fontcolor.c (face_boolean_instantiate):
|
||||
* fontcolor.c (face_background_placement_instantiate):
|
||||
* glyphs.c (image_instantiate):
|
||||
* specifier.c (specifier_instance_from_inst_list):
|
||||
* specifier.h (struct specifier_methods):
|
||||
Avoid passing an int among the Lisp_Object va_args of the
|
||||
specifier instantiate methods, this is not portable behaviour,
|
||||
thank you clang and -fsanitize=undefined.
|
||||
|
||||
[Changelog patch removed]
|
||||
|
||||
diff -r d3dfe7ea1c31 -r d40990b854cf src/fontcolor.c
|
||||
--- a/src/fontcolor.c Mon Sep 23 08:01:37 2024 +0100
|
||||
+++ b/src/fontcolor.c Mon Sep 23 08:03:15 2024 +0100
|
||||
@@ -1380,7 +1380,7 @@
|
||||
static Lisp_Object
|
||||
color_instantiate (Lisp_Object specifier, Lisp_Object UNUSED (matchspec),
|
||||
Lisp_Object domain, Lisp_Object instantiator,
|
||||
- Lisp_Object depth, int no_fallback)
|
||||
+ Lisp_Object depth, Lisp_Object no_fallback)
|
||||
{
|
||||
/* When called, we're inside of call_with_suspended_errors(),
|
||||
so we can freely error. */
|
||||
@@ -1436,7 +1436,7 @@
|
||||
(Fget_face (XVECTOR_DATA (instantiator)[0]),
|
||||
COLOR_SPECIFIER_FACE_PROPERTY
|
||||
(XCOLOR_SPECIFIER (specifier)),
|
||||
- domain, ERROR_ME, no_fallback, depth));
|
||||
+ domain, ERROR_ME, !NILP (no_fallback), depth));
|
||||
|
||||
case 2:
|
||||
return (FACE_PROPERTY_INSTANCE_1
|
||||
@@ -1653,7 +1653,7 @@
|
||||
font_instantiate (Lisp_Object UNUSED (specifier),
|
||||
Lisp_Object USED_IF_MULE (matchspec),
|
||||
Lisp_Object domain, Lisp_Object instantiator,
|
||||
- Lisp_Object depth, int no_fallback)
|
||||
+ Lisp_Object depth, Lisp_Object no_fallback)
|
||||
{
|
||||
/* When called, we're inside of call_with_suspended_errors(),
|
||||
so we can freely error. */
|
||||
@@ -1766,13 +1766,15 @@
|
||||
|
||||
match_inst = face_property_matching_instance
|
||||
(Fget_face (XVECTOR_DATA (instantiator)[0]), Qfont,
|
||||
- charset, domain, ERROR_ME, no_fallback, depth, STAGE_INITIAL);
|
||||
+ charset, domain, ERROR_ME, !NILP (no_fallback),
|
||||
+ depth, STAGE_INITIAL);
|
||||
|
||||
if (UNBOUNDP(match_inst))
|
||||
{
|
||||
match_inst = face_property_matching_instance
|
||||
(Fget_face (XVECTOR_DATA (instantiator)[0]), Qfont,
|
||||
- charset, domain, ERROR_ME, no_fallback, depth, STAGE_FINAL);
|
||||
+ charset, domain, ERROR_ME, !NILP (no_fallback), depth,
|
||||
+ STAGE_FINAL);
|
||||
}
|
||||
|
||||
return match_inst;
|
||||
@@ -1868,7 +1870,7 @@
|
||||
face_boolean_instantiate (Lisp_Object specifier,
|
||||
Lisp_Object UNUSED (matchspec),
|
||||
Lisp_Object domain, Lisp_Object instantiator,
|
||||
- Lisp_Object depth, int no_fallback)
|
||||
+ Lisp_Object depth, Lisp_Object no_fallback)
|
||||
{
|
||||
/* When called, we're inside of call_with_suspended_errors(),
|
||||
so we can freely error. */
|
||||
@@ -1895,7 +1897,7 @@
|
||||
|
||||
retval = (FACE_PROPERTY_INSTANCE_1
|
||||
(Fget_face (XVECTOR_DATA (instantiator)[0]),
|
||||
- prop, domain, ERROR_ME, no_fallback, depth));
|
||||
+ prop, domain, ERROR_ME, !NILP (no_fallback), depth));
|
||||
|
||||
if (instantiator_len == 3 && !NILP (XVECTOR_DATA (instantiator)[2]))
|
||||
retval = NILP (retval) ? Qt : Qnil;
|
||||
@@ -2015,7 +2017,7 @@
|
||||
Lisp_Object domain,
|
||||
Lisp_Object instantiator,
|
||||
Lisp_Object depth,
|
||||
- int no_fallback)
|
||||
+ Lisp_Object no_fallback)
|
||||
{
|
||||
/* When called, we're inside of call_with_suspended_errors(),
|
||||
so we can freely error. */
|
||||
@@ -2027,7 +2029,7 @@
|
||||
|
||||
return FACE_PROPERTY_INSTANCE_1
|
||||
(Fget_face (XVECTOR_DATA (instantiator)[0]),
|
||||
- Qbackground_placement, domain, ERROR_ME, no_fallback, depth);
|
||||
+ Qbackground_placement, domain, ERROR_ME, !NILP (no_fallback), depth);
|
||||
}
|
||||
else
|
||||
ABORT (); /* Eh? */
|
||||
diff -r d3dfe7ea1c31 -r d40990b854cf src/glyphs.c
|
||||
--- a/src/glyphs.c Mon Sep 23 08:01:37 2024 +0100
|
||||
+++ b/src/glyphs.c Mon Sep 23 08:03:15 2024 +0100
|
||||
@@ -3179,7 +3179,7 @@
|
||||
static Lisp_Object
|
||||
image_instantiate (Lisp_Object specifier, Lisp_Object UNUSED (matchspec),
|
||||
Lisp_Object domain, Lisp_Object instantiator,
|
||||
- Lisp_Object depth, int no_fallback)
|
||||
+ Lisp_Object depth, Lisp_Object no_fallback)
|
||||
{
|
||||
Lisp_Object glyph = IMAGE_SPECIFIER_ATTACHEE (XIMAGE_SPECIFIER (specifier));
|
||||
int dest_mask = XIMAGE_SPECIFIER_ALLOWED (specifier);
|
||||
@@ -3218,7 +3218,7 @@
|
||||
assert (XVECTOR_LENGTH (instantiator) == 3);
|
||||
return (FACE_PROPERTY_INSTANCE
|
||||
(Fget_face (XVECTOR_DATA (instantiator)[2]),
|
||||
- Qbackground_pixmap, domain, no_fallback, depth));
|
||||
+ Qbackground_pixmap, domain, !NILP (no_fallback), depth));
|
||||
}
|
||||
else
|
||||
{
|
||||
diff -r d3dfe7ea1c31 -r d40990b854cf src/specifier.c
|
||||
--- a/src/specifier.c Mon Sep 23 08:01:37 2024 +0100
|
||||
+++ b/src/specifier.c Mon Sep 23 08:03:15 2024 +0100
|
||||
@@ -2862,8 +2862,8 @@
|
||||
if (HAS_SPECMETH_P (sp, instantiate))
|
||||
val = call_with_suspended_errors
|
||||
((lisp_fn_t) RAW_SPECMETH (sp, instantiate),
|
||||
- Qunbound, Qspecifier, ERROR_ME_WARN, 5, specifier,
|
||||
- matchspec, domain, val, depth, no_fallback);
|
||||
+ Qunbound, Qspecifier, ERROR_ME_WARN, 6, specifier,
|
||||
+ matchspec, domain, val, depth, no_fallback ? Qt : Qnil);
|
||||
|
||||
if (!UNBOUNDP (val))
|
||||
{
|
||||
@@ -2911,8 +2911,8 @@
|
||||
if (HAS_SPECMETH_P (sp, instantiate))
|
||||
val = call_with_suspended_errors
|
||||
((lisp_fn_t) RAW_SPECMETH (sp, instantiate),
|
||||
- Qunbound, Qspecifier, errb, 5, specifier,
|
||||
- matchspec, domain, val, depth, no_fallback);
|
||||
+ Qunbound, Qspecifier, errb, 6, specifier,
|
||||
+ matchspec, domain, val, depth, no_fallback ? Qt : Qnil);
|
||||
|
||||
if (!UNBOUNDP (val))
|
||||
{
|
||||
diff -r d3dfe7ea1c31 -r d40990b854cf src/specifier.h
|
||||
--- a/src/specifier.h Mon Sep 23 08:01:37 2024 +0100
|
||||
+++ b/src/specifier.h Mon Sep 23 08:03:15 2024 +0100
|
||||
@@ -147,8 +147,9 @@
|
||||
name specifier_instance) to avoid creating "external"
|
||||
specification loops.
|
||||
|
||||
- NO_FALLBACK indicates that the method should not try the fallbacks
|
||||
- (and thus simply return Qunbound) in case of a failure to instantiate.
|
||||
+ NO_FALLBACK non-nil indicates that the method should not try the
|
||||
+ fallbacks (and thus simply return Qunbound) in case of a failure to
|
||||
+ instantiate.
|
||||
|
||||
This method must presume that both INSTANTIATOR and MATCHSPEC are
|
||||
already validated by the corresponding validate_* methods, and
|
||||
@@ -165,7 +166,7 @@
|
||||
Lisp_Object domain,
|
||||
Lisp_Object instantiator,
|
||||
Lisp_Object depth,
|
||||
- int no_fallback);
|
||||
+ Lisp_Object no_fallback);
|
||||
|
||||
/* Going-to-add method: Called when an instantiator is about
|
||||
to be added to a specifier. This function can specify
|
||||
@ -1,23 +0,0 @@
|
||||
diff -r 22f2684b1b82 configure.ac
|
||||
--- a/configure.ac Mon Sep 23 16:24:03 2024 +0100
|
||||
+++ b/configure.ac Sat Sep 28 14:09:56 2024 +0200
|
||||
@@ -2518,16 +2518,16 @@
|
||||
dnl We need a recent version of makeinfo
|
||||
AC_MSG_CHECKING([for makeinfo >= 4.12])
|
||||
MAKEINFO=
|
||||
-for prog in `which -a makeinfo`; do
|
||||
+if prog=`command -v makeinfo`
|
||||
+then
|
||||
mi_verstr=[`$prog --version | sed -n '1s/^.* \([0-9][0-9.]*\)$/\1/p'`]
|
||||
mi_major=`echo $mi_verstr | cut -d. -f1`
|
||||
mi_minor=`echo $mi_verstr | cut -d. -f2`
|
||||
if test "$mi_major" -gt 4 || ( test "$mi_major" -eq 4 && test "$mi_minor" -gt 11 );
|
||||
then
|
||||
MAKEINFO=$prog
|
||||
- break
|
||||
fi
|
||||
-done
|
||||
+fi
|
||||
if test -z $MAKEINFO; then
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_WARN([Found Makeinfo $mi_verstr. 4.12 or later required.])
|
||||
@ -1,265 +0,0 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# Note: xemacs currently does not work with position independent code
|
||||
# so the build forces the use of the -no-pie option
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit flag-o-matic xdg-utils desktop autotools
|
||||
|
||||
DESCRIPTION="highly customizable open source text editor and application development system"
|
||||
HOMEPAGE="https://www.xemacs.org/"
|
||||
|
||||
SRC_URI="http://ftp.xemacs.org/pub/xemacs/xemacs-$(ver_cut 1-2)/${P}.tar.gz
|
||||
https://dev.gentoo.org/~matsl/${P}-ootags-boolint.patch.xz
|
||||
https://dev.gentoo.org/~matsl/${P}-info-handle-compress.patch.xz
|
||||
neXt? ( http://www.malfunction.de/afterstep/files/NeXT_XEmacs.tar.gz )"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
IUSE="alsa debug gif gpm pop postgres ldap xface nas X jpeg tiff png motif xft xim athena neXt Xaw3d gdbm berkdb +bignum"
|
||||
|
||||
X_DEPEND="x11-libs/libXt x11-libs/libXmu x11-libs/libXext x11-misc/xbitmaps"
|
||||
|
||||
RDEPEND="
|
||||
berkdb? ( >=sys-libs/db-4:= )
|
||||
gdbm? ( >=sys-libs/gdbm-1.8.3:=[berkdb(+)] )
|
||||
>=sys-libs/zlib-1.1.4
|
||||
>=dev-libs/openssl-0.9.6:0=
|
||||
>=media-libs/audiofile-0.2.3
|
||||
gpm? ( >=sys-libs/gpm-1.19.6 )
|
||||
postgres? ( dev-db/postgresql:= )
|
||||
ldap? ( net-nds/openldap:= )
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
nas? ( media-libs/nas )
|
||||
X? ( $X_DEPEND !Xaw3d? ( !neXt? ( x11-libs/libXaw ) ) )
|
||||
motif? ( >=x11-libs/motif-2.3:0[xft=] )
|
||||
athena? ( x11-libs/libXaw )
|
||||
Xaw3d? ( x11-libs/libXaw3d[unicode(+)] )
|
||||
xft? ( media-libs/freetype:2 x11-libs/libXft x11-libs/libXrender >=media-libs/fontconfig-2.5.0 )
|
||||
neXt? ( x11-libs/neXtaw )
|
||||
xface? ( media-libs/compface )
|
||||
tiff? ( media-libs/tiff:= )
|
||||
png? ( >=media-libs/libpng-1.2:0 )
|
||||
jpeg? ( media-libs/libjpeg-turbo:= )
|
||||
>=sys-libs/ncurses-5.2:=
|
||||
>=app-eselect/eselect-emacs-1.15
|
||||
bignum? ( dev-libs/openssl )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig"
|
||||
|
||||
BDEPEND="sys-apps/texinfo"
|
||||
|
||||
PDEPEND="app-xemacs/xemacs-base
|
||||
app-xemacs/mule-base"
|
||||
|
||||
src_unpack() {
|
||||
default_src_unpack
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
use neXt && cp "${WORKDIR}"/NeXT.XEmacs/xemacs-icons/* "${S}"/etc/toolbar/
|
||||
find "${S}"/lisp -name '*.elc' -exec rm {} \; || die
|
||||
eapply "${FILESDIR}/${P}-configure.patch"
|
||||
eapply "${FILESDIR}/${P}-mule-tests.patch"
|
||||
eapply "${FILESDIR}/${P}-configure-libc-version.patch"
|
||||
eapply "${FILESDIR}/${P}-which.patch"
|
||||
eapply "${FILESDIR}/${P}-misalignment.patch"
|
||||
eapply "${FILESDIR}/${P}-va_args.patch"
|
||||
eapply "${FILESDIR}/${P}-linker-flags.patch"
|
||||
eapply "${WORKDIR}/${P}-ootags-boolint.patch"
|
||||
eapply "${FILESDIR}/${P}-unknown-command-test.patch"
|
||||
eapply "${WORKDIR}/${P}-info-handle-compress.patch"
|
||||
eapply "${FILESDIR}/${P}-batch-segfault.patch"
|
||||
eapply "${FILESDIR}/${P}-delay-fcinit-until-needed.patch"
|
||||
eapply "${FILESDIR}/${P}-desktop.patch"
|
||||
|
||||
eapply_user
|
||||
|
||||
eautoconf
|
||||
|
||||
# Some binaries and man pages are installed under suffixed names
|
||||
# to avoid collions with their GNU Emacs counterparts (see below).
|
||||
# Fix internal filename references.
|
||||
sed -i -e 's/exec gnuclient/&-xemacs/' lib-src/gnudoit || die
|
||||
sed -i -e '/^\.so/s/etags/&-xemacs/' etc/ctags.1 || die
|
||||
sed -i -e '/^\.so/s/gnuserv/&-xemacs/' etc/gnu{client,doit,attach}.1 || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myconf=""
|
||||
|
||||
# bug #639642
|
||||
test-flags -no-pie >/dev/null && append-flags -no-pie
|
||||
filter-flags -pie
|
||||
|
||||
if use X; then
|
||||
|
||||
myconf="${myconf} --with-widgets=athena"
|
||||
myconf="${myconf} --with-dialogs=athena"
|
||||
myconf="${myconf} --with-menubars=lucid"
|
||||
myconf="${myconf} --with-scrollbars=lucid"
|
||||
if use motif ; then
|
||||
myconf="--with-widgets=motif"
|
||||
myconf="${myconf} --with-dialogs=motif"
|
||||
myconf="${myconf} --with-scrollbars=motif"
|
||||
myconf="${myconf} --with-menubars=lucid"
|
||||
fi
|
||||
if use athena or use Xaw3d ; then
|
||||
myconf="--with-scrollbars=athena"
|
||||
fi
|
||||
|
||||
if use Xaw3d; then
|
||||
myconf="${myconf} --with-athena=3d"
|
||||
elif use neXt; then
|
||||
myconf="${myconf} --with-athena=next"
|
||||
else
|
||||
myconf="${myconf} --with-athena=xaw"
|
||||
fi
|
||||
|
||||
myconf="${myconf} $(use_with tiff )"
|
||||
myconf="${myconf} $(use_with png )"
|
||||
myconf="${myconf} $(use_with jpeg )"
|
||||
myconf="${myconf} $(use_with xface )"
|
||||
|
||||
use xft && myconf="${myconf} --with-xft=emacs,tabs,menubars,gauges" ||
|
||||
myconf="${myconf} --with-xft=no"
|
||||
|
||||
else
|
||||
myconf="${myconf}
|
||||
--without-x
|
||||
--without-xpm
|
||||
--without-dragndrop
|
||||
--with-xft=no
|
||||
--with-gif=no"
|
||||
fi
|
||||
|
||||
if use xim ; then
|
||||
if use motif ; then
|
||||
myconf="${myconf} --with-xim=motif"
|
||||
else
|
||||
myconf="${myconf} --with-xim=xlib"
|
||||
fi
|
||||
else
|
||||
myconf="${myconf} --with-xim=no"
|
||||
fi
|
||||
|
||||
myconf="${myconf} --without-wnn"
|
||||
|
||||
# This determines the type of sounds we are playing
|
||||
local soundconf="native"
|
||||
|
||||
# This determines how these sounds should be played
|
||||
use nas && soundconf="${soundconf},nas"
|
||||
use alsa && soundconf="${soundconf},alsa"
|
||||
|
||||
myconf="${myconf} --with-sound=${soundconf}"
|
||||
|
||||
if use gdbm || use berkdb ; then
|
||||
use gdbm && mydb="gdbm"
|
||||
use berkdb && mydb="${mydb},berkdb"
|
||||
|
||||
myconf="${myconf} --with-database=${mydb}"
|
||||
else
|
||||
myconf="${myconf} --without-database"
|
||||
fi
|
||||
|
||||
if use debug ; then
|
||||
myconf="${myconf} --with-debug"
|
||||
# bug #924339
|
||||
append-flags -fno-strict-aliasing
|
||||
else
|
||||
myconf="${myconf} --with-optimization --with-cflags-debugging="
|
||||
fi
|
||||
|
||||
use bignum && myconf="${myconf} --with-bignum=openssl" ||
|
||||
myconf="${myconf} --with-bignum=no"
|
||||
|
||||
econf ${myconf} \
|
||||
$(use_with gif ) \
|
||||
$(use_with gpm ) \
|
||||
$(use_with postgres postgresql ) \
|
||||
$(use_with ldap ) \
|
||||
$(use_with pop ) \
|
||||
--prefix=/usr \
|
||||
--with-mule \
|
||||
--with-unicode-internal \
|
||||
--without-canna \
|
||||
--with-ncurses \
|
||||
--with-msw=no \
|
||||
--with-mail-locking=flock \
|
||||
--with-site-lisp=yes \
|
||||
--with-site-modules=yes \
|
||||
--enable-option-checking=no \
|
||||
--with-last-packages=/usr/lib/xemacs
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake EMACSLOADPATH="${S}"/lisp
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake prefix="${ED}"/usr \
|
||||
mandir="${ED}"/usr/share/man/man1 \
|
||||
infodir="${ED}"/usr/share/info \
|
||||
libdir="${ED}"/usr/$(get_libdir) \
|
||||
datadir="${ED}"/usr/share \
|
||||
install
|
||||
|
||||
# Rename some applications installed in bin so that it is clear
|
||||
# which application installed them and so that conflicting
|
||||
# packages (emacs) can't clobber the actual applications.
|
||||
# Addresses bug #62991.
|
||||
for i in b2m ctags etags gnuclient gnudoit gnuattach; do
|
||||
mv "${ED}"/usr/bin/${i} "${ED}"/usr/bin/${i}-xemacs || die "mv ${i} failed"
|
||||
done
|
||||
|
||||
# rename man pages
|
||||
for i in ctags etags gnuserv gnuclient gnudoit gnuattach; do
|
||||
mv "${ED}"/usr/share/man/man1/${i}{,-xemacs}.1 || die "mv ${i}.1 failed"
|
||||
done
|
||||
|
||||
# install base packages directories
|
||||
dodir /usr/lib/xemacs/xemacs-packages/
|
||||
dodir /usr/lib/xemacs/site-packages/
|
||||
dodir /usr/lib/xemacs/site-modules/
|
||||
dodir /usr/lib/xemacs/site-lisp/
|
||||
dodir /usr/lib/xemacs/mule-packages
|
||||
|
||||
# remove extraneous info files
|
||||
cd "${ED}"/usr/share/info
|
||||
rm -f dir info.info texinfo* termcap* standards*
|
||||
|
||||
cd "${S}"
|
||||
dodoc CHANGES-* ChangeLog INSTALL Installation PROBLEMS README*
|
||||
|
||||
domenu "${S}"/etc/${PN}.desktop
|
||||
newicon "${S}"/etc/${PN}-icon.xpm ${PN}.xpm
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect emacs update ifunset
|
||||
eselect gnuclient update ifunset
|
||||
xdg_desktop_database_update
|
||||
|
||||
einfo "If you are upgrading from XEmacs 21.4 you should note the following"
|
||||
einfo "incompatibilities:"
|
||||
einfo "- Mule-UCS is no longer supported due to proper UTF-8 support in XEmacs 21.5"
|
||||
einfo "- The X resource class has changed from Emacs to XEmacs,"
|
||||
einfo " settings in your .Xdefaults file should be updated accordingly."
|
||||
|
||||
if use xft;
|
||||
then
|
||||
einfo "You have enabled Xft font support. Xft requires font names to be provided"
|
||||
einfo "in a different way, so you may need to adjust your .Xdefaults accordingly."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect emacs update ifunset
|
||||
eselect gnuclient update ifunset
|
||||
xdg_desktop_database_update
|
||||
}
|
||||
@ -1,264 +0,0 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# Note: xemacs currently does not work with position independent code
|
||||
# so the build forces the use of the -no-pie option
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit flag-o-matic xdg-utils desktop autotools
|
||||
|
||||
DESCRIPTION="highly customizable open source text editor and application development system"
|
||||
HOMEPAGE="https://www.xemacs.org/"
|
||||
|
||||
SRC_URI="http://ftp.xemacs.org/pub/xemacs/xemacs-$(ver_cut 1-2)/${P}.tar.gz
|
||||
https://dev.gentoo.org/~matsl/${P}-ootags-boolint.patch.xz
|
||||
https://dev.gentoo.org/~matsl/${P}-info-handle-compress.patch.xz
|
||||
neXt? ( http://www.malfunction.de/afterstep/files/NeXT_XEmacs.tar.gz )"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
|
||||
IUSE="alsa debug gif gpm pop postgres ldap xface nas X jpeg tiff png motif xft xim athena neXt Xaw3d gdbm berkdb +bignum"
|
||||
|
||||
X_DEPEND="x11-libs/libXt x11-libs/libXmu x11-libs/libXext x11-misc/xbitmaps"
|
||||
|
||||
RDEPEND="
|
||||
berkdb? ( >=sys-libs/db-4:= )
|
||||
gdbm? ( >=sys-libs/gdbm-1.8.3:=[berkdb(+)] )
|
||||
>=sys-libs/zlib-1.1.4
|
||||
>=dev-libs/openssl-0.9.6:0=
|
||||
>=media-libs/audiofile-0.2.3
|
||||
gpm? ( >=sys-libs/gpm-1.19.6 )
|
||||
postgres? ( dev-db/postgresql:= )
|
||||
ldap? ( net-nds/openldap:= )
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
nas? ( media-libs/nas )
|
||||
X? ( $X_DEPEND !Xaw3d? ( !neXt? ( x11-libs/libXaw ) ) )
|
||||
motif? ( >=x11-libs/motif-2.3:0[xft=] )
|
||||
athena? ( x11-libs/libXaw )
|
||||
Xaw3d? ( x11-libs/libXaw3d[unicode(+)] )
|
||||
xft? ( media-libs/freetype:2 x11-libs/libXft x11-libs/libXrender >=media-libs/fontconfig-2.5.0 )
|
||||
neXt? ( x11-libs/neXtaw )
|
||||
xface? ( media-libs/compface )
|
||||
tiff? ( media-libs/tiff:= )
|
||||
png? ( >=media-libs/libpng-1.2:0 )
|
||||
jpeg? ( media-libs/libjpeg-turbo:= )
|
||||
>=sys-libs/ncurses-5.2:=
|
||||
>=app-eselect/eselect-emacs-1.15
|
||||
bignum? ( dev-libs/openssl )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig"
|
||||
|
||||
BDEPEND="sys-apps/texinfo"
|
||||
|
||||
PDEPEND="app-xemacs/xemacs-base
|
||||
app-xemacs/mule-base"
|
||||
|
||||
src_unpack() {
|
||||
default_src_unpack
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
use neXt && cp "${WORKDIR}"/NeXT.XEmacs/xemacs-icons/* "${S}"/etc/toolbar/
|
||||
find "${S}"/lisp -name '*.elc' -exec rm {} \; || die
|
||||
eapply "${FILESDIR}/${P}-configure.patch"
|
||||
eapply "${FILESDIR}/${P}-mule-tests.patch"
|
||||
eapply "${FILESDIR}/${P}-configure-libc-version.patch"
|
||||
eapply "${FILESDIR}/${P}-which.patch"
|
||||
eapply "${FILESDIR}/${P}-misalignment.patch"
|
||||
eapply "${FILESDIR}/${P}-va_args.patch"
|
||||
eapply "${FILESDIR}/${P}-linker-flags.patch"
|
||||
eapply "${WORKDIR}/${P}-ootags-boolint.patch"
|
||||
eapply "${FILESDIR}/${P}-unknown-command-test.patch"
|
||||
eapply "${WORKDIR}/${P}-info-handle-compress.patch"
|
||||
eapply "${FILESDIR}/${P}-batch-segfault.patch"
|
||||
eapply "${FILESDIR}/${P}-delay-fcinit-until-needed.patch"
|
||||
eapply "${FILESDIR}/${P}-desktop.patch"
|
||||
|
||||
eapply_user
|
||||
|
||||
eautoconf
|
||||
|
||||
# Some binaries and man pages are installed under suffixed names
|
||||
# to avoid collions with their GNU Emacs counterparts (see below).
|
||||
# Fix internal filename references.
|
||||
sed -i -e 's/exec gnuclient/&-xemacs/' lib-src/gnudoit || die
|
||||
sed -i -e '/^\.so/s/etags/&-xemacs/' etc/ctags.1 || die
|
||||
sed -i -e '/^\.so/s/gnuserv/&-xemacs/' etc/gnu{client,doit,attach}.1 || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myconf=""
|
||||
|
||||
# bug #639642
|
||||
test-flags -no-pie >/dev/null && append-flags -no-pie
|
||||
filter-flags -pie
|
||||
|
||||
if use X; then
|
||||
|
||||
myconf="${myconf} --with-widgets=athena"
|
||||
myconf="${myconf} --with-dialogs=athena"
|
||||
myconf="${myconf} --with-menubars=lucid"
|
||||
myconf="${myconf} --with-scrollbars=lucid"
|
||||
if use motif ; then
|
||||
myconf="--with-widgets=motif"
|
||||
myconf="${myconf} --with-dialogs=motif"
|
||||
myconf="${myconf} --with-scrollbars=motif"
|
||||
myconf="${myconf} --with-menubars=lucid"
|
||||
fi
|
||||
if use athena or use Xaw3d ; then
|
||||
myconf="--with-scrollbars=athena"
|
||||
fi
|
||||
|
||||
if use Xaw3d; then
|
||||
myconf="${myconf} --with-athena=3d"
|
||||
elif use neXt; then
|
||||
myconf="${myconf} --with-athena=next"
|
||||
else
|
||||
myconf="${myconf} --with-athena=xaw"
|
||||
fi
|
||||
|
||||
myconf="${myconf} $(use_with tiff )"
|
||||
myconf="${myconf} $(use_with png )"
|
||||
myconf="${myconf} $(use_with jpeg )"
|
||||
myconf="${myconf} $(use_with xface )"
|
||||
|
||||
use xft && myconf="${myconf} --with-xft=emacs,tabs,menubars,gauges" ||
|
||||
myconf="${myconf} --with-xft=no"
|
||||
|
||||
else
|
||||
myconf="${myconf}
|
||||
--without-x
|
||||
--without-xpm
|
||||
--without-dragndrop
|
||||
--with-xft=no
|
||||
--with-gif=no"
|
||||
fi
|
||||
|
||||
if use xim ; then
|
||||
if use motif ; then
|
||||
myconf="${myconf} --with-xim=motif"
|
||||
else
|
||||
myconf="${myconf} --with-xim=xlib"
|
||||
fi
|
||||
else
|
||||
myconf="${myconf} --with-xim=no"
|
||||
fi
|
||||
|
||||
myconf="${myconf} --without-wnn"
|
||||
|
||||
# This determines the type of sounds we are playing
|
||||
local soundconf="native"
|
||||
|
||||
# This determines how these sounds should be played
|
||||
use nas && soundconf="${soundconf},nas"
|
||||
use alsa && soundconf="${soundconf},alsa"
|
||||
|
||||
myconf="${myconf} --with-sound=${soundconf}"
|
||||
|
||||
if use gdbm || use berkdb ; then
|
||||
use gdbm && mydb="gdbm"
|
||||
use berkdb && mydb="${mydb},berkdb"
|
||||
|
||||
myconf="${myconf} --with-database=${mydb}"
|
||||
else
|
||||
myconf="${myconf} --without-database"
|
||||
fi
|
||||
|
||||
if use debug ; then
|
||||
myconf="${myconf} --with-debug"
|
||||
# bug #924339
|
||||
append-flags -fno-strict-aliasing
|
||||
else
|
||||
myconf="${myconf} --with-optimization --with-cflags-debugging="
|
||||
fi
|
||||
|
||||
use bignum && myconf="${myconf} --with-bignum=openssl" ||
|
||||
myconf="${myconf} --with-bignum=no"
|
||||
|
||||
econf ${myconf} \
|
||||
$(use_with gif ) \
|
||||
$(use_with gpm ) \
|
||||
$(use_with postgres postgresql ) \
|
||||
$(use_with ldap ) \
|
||||
$(use_with pop ) \
|
||||
--prefix=/usr \
|
||||
--with-mule \
|
||||
--with-unicode-internal \
|
||||
--without-canna \
|
||||
--with-ncurses \
|
||||
--with-msw=no \
|
||||
--with-mail-locking=flock \
|
||||
--with-site-lisp=yes \
|
||||
--with-site-modules=yes \
|
||||
--enable-option-checking=no \
|
||||
--with-last-packages=/usr/lib/xemacs
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake EMACSLOADPATH="${S}"/lisp
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake prefix="${ED}"/usr \
|
||||
mandir="${ED}"/usr/share/man/man1 \
|
||||
infodir="${ED}"/usr/share/info \
|
||||
libdir="${ED}"/usr/$(get_libdir) \
|
||||
datadir="${ED}"/usr/share \
|
||||
install
|
||||
|
||||
# Rename some applications installed in bin so that it is clear
|
||||
# which application installed them and so that conflicting
|
||||
# packages (emacs) can't clobber the actual applications.
|
||||
# Addresses bug #62991.
|
||||
for i in b2m ctags etags gnuclient gnudoit gnuattach; do
|
||||
mv "${ED}"/usr/bin/${i} "${ED}"/usr/bin/${i}-xemacs || die "mv ${i} failed"
|
||||
done
|
||||
|
||||
# rename man pages
|
||||
for i in ctags etags gnuserv gnuclient gnudoit gnuattach; do
|
||||
mv "${ED}"/usr/share/man/man1/${i}{,-xemacs}.1 || die "mv ${i}.1 failed"
|
||||
done
|
||||
|
||||
# install base packages directories
|
||||
dodir /usr/lib/xemacs/xemacs-packages/
|
||||
dodir /usr/lib/xemacs/site-packages/
|
||||
dodir /usr/lib/xemacs/site-modules/
|
||||
dodir /usr/lib/xemacs/site-lisp/
|
||||
dodir /usr/lib/xemacs/mule-packages
|
||||
|
||||
# remove extraneous info files
|
||||
cd "${ED}"/usr/share/info
|
||||
rm -f dir info.info texinfo* termcap* standards*
|
||||
|
||||
cd "${S}"
|
||||
dodoc CHANGES-* ChangeLog INSTALL Installation PROBLEMS README*
|
||||
|
||||
newicon "${S}"/etc/${PN}-icon.xpm ${PN}.xpm
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect emacs update ifunset
|
||||
eselect gnuclient update ifunset
|
||||
xdg_desktop_database_update
|
||||
|
||||
einfo "If you are upgrading from XEmacs 21.4 you should note the following"
|
||||
einfo "incompatibilities:"
|
||||
einfo "- Mule-UCS is no longer supported due to proper UTF-8 support in XEmacs 21.5"
|
||||
einfo "- The X resource class has changed from Emacs to XEmacs,"
|
||||
einfo " settings in your .Xdefaults file should be updated accordingly."
|
||||
|
||||
if use xft;
|
||||
then
|
||||
einfo "You have enabled Xft font support. Xft requires font names to be provided"
|
||||
einfo "in a different way, so you may need to adjust your .Xdefaults accordingly."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect emacs update ifunset
|
||||
eselect gnuclient update ifunset
|
||||
xdg_desktop_database_update
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user