Compare commits

...

113 Commits

Author SHA1 Message Date
1b5cf5a875
Bump release
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-08 13:26:05 +03:00
01bcd4a03a
Re-enable gtkx11, lucid, nw
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-08 13:25:28 +03:00
2ee32c0e8e
Enable libtree-sitter
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-08 11:40:45 +03:00
2735239ef1
Remove more directories from files
RPM build errors:
    Directory not found: /builddir/build/BUILD/emacs-29.4-build/BUILDROOT/usr/lib64/emacs
    Directory not found: /builddir/build/BUILD/emacs-29.4-build/BUILDROOT/usr/lib64/emacs/29.4

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-08 09:37:46 +03:00
dc74bed757
Remove non-existing directory
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-07 17:30:20 +03:00
8266c3523b
Remove empty file
Empty files are not allowed.

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-07 12:21:55 +03:00
4c5d256ec9
Bring back non-existing file
error: Could not open %files file /builddir/build/BUILD/emacs-29.4-build/emacs-29.4/pgtk-dirs: No such file or directory
    Could not open %files file /builddir/build/BUILD/emacs-29.4-build/emacs-29.4/pgtk-dirs: No such file or directory

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-07 09:55:29 +03:00
51b171f77d
Disable more eln things
We have none as native compile is disabled.

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-05 06:14:22 +03:00
05a264cf24
Disable sed
+ sed -i -e 's|\./usr/lib64/emacs/29.4/native-lisp|/usr/lib64/emacs/29.4/native-lisp|' pgtk-eln-filelist '*-dirs'
sed: can't read *-dirs: No such file or directory

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-04 22:45:40 +03:00
91a094dd7b
Do not install native compiled lisp
Native compile was disabled.

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-04 20:12:09 +03:00
0c44e71a08
Disable native compilation
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-04 19:10:20 +03:00
cb01b1a863
Disable native compilation AOT mode
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-04 17:02:07 +03:00
86db569746
Disable libtree-sitter
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-04 15:09:08 +03:00
f3f00165dc
Merge remote-tracking branch 'up/main' into main-riscv64
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-10-04 13:38:07 +03:00
Peter Oliver
78d229edc1 RPM git-core is sufficient for fetching Tree-sitter grammar source (#2316238) 2024-10-03 11:58:28 +01:00
Peter Oliver
155673080c Don’t mention removed games in menus or documentation. 2024-09-26 14:45:55 +01:00
Peter Oliver
cf88b767de Rebuild against tree-sitter-0.23.0-2.fc41. 2024-09-24 12:33:14 +01:00
Peter Oliver
88a3c70353 Fix typo. 2024-09-22 21:59:29 +01:00
Peter Oliver
66296574a2 Drop WebKit, since recent versions are incompatible with Emacs
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66068
2024-09-22 19:56:29 +01:00
Peter Oliver
1d7139dcc2 Relax libtree-sitter requirement. 2024-08-28 12:36:06 +01:00
Jacek Migacz
07ecef2a9c Unset custom linker flags 2024-08-22 21:17:27 +02:00
e0ae3f066f
Disable gtkx11, lucid, nw on riscv64
Let's see if this is enough to get emacs compiling again.

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-07-26 07:24:10 +03:00
Fedora Release Engineering
b97332f65e Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 21:53:04 +00:00
Peter Oliver
88b7252ef1 More test stabilisation. 2024-07-17 12:45:35 +01:00
Peter Oliver
d81023e55d Try harder to stabalise dired-test-bug27243-02 2024-07-17 00:10:18 +01:00
Peter Oliver
449be03f8f Skip another unstable test. 2024-07-16 16:23:30 +01:00
Peter Oliver
311ab8413b Builds on i686 are working again. 2024-07-16 16:15:25 +01:00
Peter Oliver
04dac35b63 Skip intermittently failing tests. 2024-07-15 16:23:38 +01:00
Peter Oliver
290ab368cc Fix another intermittent test failure. 2024-07-15 12:14:29 +01:00
Peter Oliver
16d2054b15 Fall back to the terminal from pure GTK when no display is available
Works around bug #2276822 (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63555).
2024-07-14 22:07:44 +01:00
Peter Oliver
21f0a822f7 Fix typos. 2024-07-12 14:49:45 +01:00
Peter Oliver
c68d79e36c Fix intermittently failing test wdired-test-unfinished-edit-01. 2024-07-12 11:05:50 +01:00
Peter Oliver
9c1333df9d Drop i686, which is currently failing to build. 2024-07-12 10:33:33 +01:00
Peter Oliver
ec525e1cea Restore former alternatives symlinks, if they are missing
Fixes #2297425.
2024-07-12 00:06:36 +01:00
Peter Oliver
df45480b91 Skip tests that are unstable when run on GNU EMBA
Some of these tests are unreliable for us, too.
2024-07-11 17:49:33 +01:00
Peter Oliver
2860413ce2 Emacs’ -*- line has to come first. 2024-07-11 12:44:40 +01:00
Peter Oliver
6ee9fc3c3b Patches no-longer require numbering. 2024-07-11 12:44:40 +01:00
Peter Oliver
c7d90c2305 Don’t explicitly specify a hardened build, since that’s now default. 2024-07-11 12:44:40 +01:00
Peter Oliver
df9b814018 Don’t pacakge duplicate desktop-related files. 2024-07-11 12:44:40 +01:00
Peter Oliver
dec4348128 Gitignore more temporary packaging-related files. 2024-07-11 12:44:40 +01:00
Peter Oliver
5e02a413da Own unowned directories. 2024-07-11 12:44:40 +01:00
Peter Oliver
7157b76d42 Fix another failing test. 2024-07-10 23:57:53 +01:00
Peter Oliver
bce17310e3 Conditionalise build of alternative binaries
With this, builds can be significantly speeded up by, e.g.,

```
fedpkg mockbuild --without=nw --without=lucid --without=gtkx11
```
2024-07-08 15:56:26 +01:00
Peter Oliver
d3db50bc99 Run tests. 2024-07-08 15:56:26 +01:00
Peter Oliver
54190f15c1 Add missing symlink to package. 2024-07-08 15:25:29 +01:00
Peter Oliver
21c4c1004d Reduce use of alternatives
Attempt to fix #2277689 without reintroducing #684447.  We shouldn’t need to use alternatives for the versioned binaries, since there should only ever be one version installed at a time.
2024-07-03 14:36:19 +01:00
Peter Oliver
9bbdcd5307 Add Missing Requires for emacs-desktop wrapper 2024-07-03 00:58:41 +01:00
Peter Oliver
5551df4c13 Conflicts of emacsclient should reflect emacs-common in F40. 2024-07-02 23:56:24 +01:00
Peter Oliver
dfc53dd6c8 Remember to commit key. 2024-06-23 23:39:12 +01:00
Peter Oliver
e3cc998c0e Emacs 29.4 tarball is signed by Stefan Kangas, not Eli Zaretskii. 2024-06-23 23:27:03 +01:00
Peter Oliver
f705000ea2 Update to version 29.4. 2024-06-23 22:51:36 +01:00
Peter Oliver
9b5c26fbad Tweak subpackage summaries and descriptions. 2024-04-27 11:50:49 +01:00
Peter Oliver
6f72315876 Split emacsclient into a package that can be installed independently 2024-04-27 11:50:49 +01:00
Peter Oliver
4842649133 Rebuild Emacs, fixing Tree-sitter crash #2277250. 2024-04-26 01:04:48 +01:00
Pavol Žáčik
0f3de093ef
Remove liblockfile dependency 2024-04-23 10:02:06 +02:00
Peter Oliver
66f03e51df Split emacs-filesystem into a separate source package. 2024-04-09 14:37:42 +01:00
Peter Oliver
1ebda76805 Don’t assume a prerelease Emacs version in emacs-desktop
Fixes #2273957.
2024-04-09 14:28:54 +01:00
Peter Oliver
bc7d4e0406 Use HTTPS for URL. 2024-04-08 16:48:40 +01:00
Peter Oliver
6fe2018073 Require any emacs-filesystem
Its contents hasn’t changed since it was first introduced, in Fedora 15.
2024-04-05 13:06:27 +01:00
Peter Oliver
de1de70ec0 Obsolete the newer emacs-nox now in F39, fixing system upgrades 2024-04-03 12:36:34 +01:00
Dan Čermák
21cb2308ce
New upstream release 29.3, fixes rhbz#2271287
Drop 0001-configure-Remove-obsolete-check-for-b-i486-linuxaout.patch, it does
not appear to be necessary anymore
2024-03-25 12:23:19 +01:00
Yaakov Selkowitz
6a7849921b Disable gpm on ELN
gpm is unwanted in RHEL 10:

https://github.com/minimization/content-resolver-input/pull/1084
2024-02-06 13:08:45 -05:00
Fedora Release Engineering
e99b18145c Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-24 10:17:06 +00:00
Peter Oliver
88b50bfe26 Remember to update sources. 2024-01-22 19:41:31 +00:00
Peter Oliver
bc0c012fb9 Update to version 29.2 2024-01-22 19:36:42 +00:00
Peter Oliver
e207621728 Merge #37 Add -W option to %_emacs_bytecompile 2024-01-22 19:35:49 +00:00
Fedora Release Engineering
e44bfe4f3d Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 18:00:41 +00:00
Tim Landscheidt
3461073c54 Add -W option to %_emacs_bytecompile
The new option -W to %_emacs_bytecompile causes the byte-compilation
to fail on warnings.  Also, the amendment of load-path is simplified
and the macro %bytecompargs that is no longer used is removed.
2024-01-17 13:46:33 +00:00
Lukáš Zaoral
6efc21e5fc
use correct BuildRequires for SQLite support
libsqlite3x is a library with C++ bindings for SQLite which emacs does not use
at all which transitively pulled in the necessary sqlite-devel.  Due to that
dependency, the libsqlite3x package was also brought into ELN which is unwanted.

Fixes: 9c5e49b7f0 ("Enable new features in Emacs 29: SQLite, Tree-sitter, WEBP, XInput 2.")
2024-01-05 16:28:27 +01:00
Peter Oliver
927faab5c0 Recommend libtree-sitter-java. 2023-11-19 19:25:12 +00:00
Yaakov Selkowitz
aba744d1bc Fix alternatives dependencies
Installation path macros must not be used in file dependencies:

https://docs.fedoraproject.org/en-US/packaging-guidelines/#_file_and_directory_dependencies
2023-11-07 15:57:46 -05:00
Peter Oliver
eb9a486090 Fix typo. 2023-10-21 16:45:27 +01:00
Peter Oliver
64a3d6cec1 Fix typo. 2023-10-21 12:40:23 +01:00
Peter Oliver
2778435025 Merge remote-tracking branch 'yselkowitz/rawhide' into rawhide
Split `%configure` options across multiple lines for easier merging in future.
2023-10-21 11:58:07 +01:00
Yaakov Selkowitz
0d766e84f3 Disable xwidgets on RHEL 10
xwidgets require webkitgtk, which is being dropped from RHEL 10.
2023-10-20 00:19:58 -04:00
Peter Oliver
e739d345f1 Rename emacs-nox subpackage to emacs-nw
The name “no X” doesn’t make sense any more, now that use of the default `emacs` binary is discouraged on the X Window System.  Let’s call it `emacs-nw` instead (which matches the `-nw` command-line option for `emacs`).
2023-09-25 19:23:31 +01:00
Peter Oliver
6a39a2112e Switch the default emacs binary to pure-GTK, suitable for Wayland
Rename the old default hybrid GTK/X11 binary to `emacs-gtk+x11`.
2023-09-25 19:23:31 +01:00
Peter Oliver
e27f9eabc4 Consolidate more files and requirements into the common subpackage
Depend on google-noto-sans-mono-vf-fonts rather than dejavu-sans-mono-fonts, since that's Fedora's default these days.
2023-09-24 21:17:32 +01:00
Peter Oliver
85031a2f73 Convert to %autorelease and %autochangelog
[skip changelog]
2023-09-24 21:03:37 +01:00
Peter Oliver
c5d17299b7 Merge branch 'duplicate-files' into rawhide 2023-09-24 01:22:37 +01:00
Peter Oliver
0fd1a3e8ed Explicitly BuildRequire libXi-devel
See the discussion [To Emacs packagers!](https://lists.gnu.org/archive/html/emacs-devel/2023-09/msg00815.html) on the emacs-devel mailing list.  We were pulling in the dependency indirectly, so this didn’t actually affect us, but still, it’s better to be explicit.
2023-09-13 14:07:30 +01:00
Peter Oliver
6a817e69ea Recommend packages required to build Tree-sitter parsers at runtime. 2023-08-07 19:04:53 +01:00
Peter Oliver
9c5e49b7f0 Enable new features in Emacs 29: SQLite, Tree-sitter, WEBP, XInput 2. 2023-08-06 00:45:31 +01:00
Dan Čermák
0bef0584b6
New upstream release 29.1, fixes rhbz#2227492 2023-08-01 08:32:43 +02:00
Dan Čermák
4c61f62d69
Backport emacs-configure-c99-1 patch from emacs-master branch 2023-08-01 00:37:26 +02:00
Dan Čermák
2850fb1bc1
Use %autosetup instead of %setup -q 2023-08-01 00:36:45 +02:00
Dan Čermák
da33813951
Remove patches already part of emacs-29
- remove emacs-pdmp-fingerprint.patch, it was cherry picked from emacs 29.1
- remove emacs-configure-c99-2.patch, already part of emacs-29
- remove fixed-ctags-local-command-execute-vulnerability.patch
- remove fix-searching-for-end-of-string-in-python-nav-end-of.patch
- remove native-compile-with_-Q.patch
- remove webkit2gtk-4.1.patch, has been implemented in emacs-29 via
  7287b7b53a17f9b2d1b474466106806a9d57af47
2023-08-01 00:35:44 +02:00
Dan Čermák
28d8e707a9
Update gpg signkey for emacs 29 2023-08-01 00:33:45 +02:00
Dan Čermák
8a2469cc20
Remove our bundled cdefs.h, emacs' version caught up with gnulib 2023-08-01 00:33:02 +02:00
Scott Talbert
be0cd269fa Rebuild for libotf soname bump 2023-07-25 10:44:01 -04:00
Benson Muite
a50b3ef331 Add change log entry for typo fix 2023-07-22 21:34:11 +03:00
Jason Thatcher
a0c541bd55 Fix typo in emacs.spec
lisp/play/pong.el -> lisp/play/pong.elc
2023-07-22 06:01:25 +00:00
Fedora Release Engineering
3dae471d21 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 18:21:58 +00:00
Benson Muite
9e852a1606 Fix infinite loop when editing Python files
rhbz2187041
2023-05-31 09:06:27 +03:00
Lukáš Zaoral
57bf08d2e1
migrate to SPDX license format 2023-04-24 13:29:50 +02:00
Peter Oliver
f151e68f40 Eliminate "file listed twice" warings during RPM build 2023-04-14 23:19:42 +01:00
Peter Oliver
44811312be Consolidate more files and requirements into the common subpackage. 2023-04-11 12:48:31 +01:00
Michael Catanzaro
1670e57f63 Use webkit2gtk-4.1 2023-02-10 10:38:26 -06:00
Dan Čermák
a45e306af9
Ensure native files are newer than byte-code files
See: https://bugzilla.redhat.com/show_bug.cgi?id=2157979#c11
2023-01-27 15:38:19 +01:00
Fedora Release Engineering
d5a49f6fd2 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 02:13:27 +00:00
Dan Čermák
42430c92f4
Use filelists to not remove exec permissions from eln files
We need to remove the exec permission on the eln files to prevent them from
having the same build-id and thereby failing the debuginfo extraction, while at
the same time they must be executable for emacs to use them.
We use filelists for that where we use attr to set their executable bits *after*
the build.
2023-01-18 00:36:03 +01:00
Dan Čermák
ebd9e6be29
Include info files via filelist & remove useless check with info subdir
The shell snippet comparing %info_files and ls info was not working anyway and
the check itself was not serving any purpose. Also, not all the contents of that
directory are actually installed as info pages.
2023-01-18 00:34:04 +01:00
Dan Čermák
ecd248959e
Don't glob manpages in %files 2023-01-17 00:21:13 +01:00
Dan Čermák
a1c92fb665
Don't include everything in %emacs_libexecdir in common subpackage
This fixes rhbz#2160550
Otherwise the pdmp files are included in the nox, lucid and gtk subpackage as
well as duplicates in the common subpackage
2023-01-17 00:20:54 +01:00
Jens Petersen
45bfcb855d
spawn native-compilation processes with -Q rhbz#2155824 (petersen) 2022-12-31 00:13:49 +01:00
Dan Čermák
69e6751434
Remove exec permissions from eln files to prevent build failures due to duplicate build-ids 2022-12-31 00:07:31 +01:00
Dan Čermák
e6bb941875
Add missing BuildRequires: pkgconfig(systemd)
emacs-libdir-vs-systemd.patch relies on the systemd package config files being
in the buildroot, which stopped being the case in Fedora >= 37. Thus we need to
depend on systemd explicitly
2022-12-31 00:07:31 +01:00
Dan Čermák
d21b022666
Add patch to fix CVE-2022-45939 2022-12-31 00:07:30 +01:00
Dan Čermák
b7ecd22927
Rebase pdm-fingerprint patch 2022-12-31 00:06:47 +01:00
Dan Čermák
665fa92b7e
Update cdefs.h from gnulib 2022-12-31 00:06:46 +01:00
Dan Čermák
2d9a8cd742
Use Stefan Kangas' gpg key for verification
The Emacs 28.2 tarballs have been signed by Stefan
2022-12-31 00:06:46 +01:00
Dan Čermák
27348f8c69
New upstream release 28.2, fixes rhbz#2126048 2022-12-31 00:06:43 +01:00
Florian Weimer
c079ae3eb0 C99 compatibility fixes for the configure script
Related to:

  <https://fedoraproject.org/wiki/Changes/PortingToModernC>
  <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
2022-12-23 21:22:35 +01:00
21 changed files with 3257 additions and 2954 deletions

15
.gitignore vendored
View File

@ -1,5 +1,6 @@
/bodhi.template.last
/emacs-*.src.rpm
/emacs-23.3a.tar.bz2
/php-mode.el
/emacs-24.0.92.tar.gz
/emacs-24.0.93.tar.gz
/emacs-24.0.94.tar.gz
@ -30,4 +31,14 @@
/emacs-27.2.tar.xz
/emacs-27.2.tar.xz.sig
/emacs-28.1.tar.xz
/emacs-28.1.tar.xz.sig
/emacs-28.1.tar.xz.sig
/emacs-28.2.tar.xz
/emacs-28.2.tar.xz.sig
/emacs-29.1.tar.xz
/emacs-29.1.tar.xz.sig
/emacs-29.3.tar.xz
/emacs-29.3.tar.xz.sig
/emacs-29.4.tar.xz
/emacs-29.4.tar.xz.sig
/php-mode.el
/results_emacs/

View File

@ -0,0 +1,50 @@
From 2f348ffee3777a8e2b02814d8cc50d282d98d366 Mon Sep 17 00:00:00 2001
From: Peter Oliver <git@mavit.org.uk>
Date: Sun, 14 Jul 2024 21:50:33 +0100
Subject: [PATCH 1/2] Apply --display kluge for PGTK too
* src/emacs.c (main): The --display option needs the same handling
with the PGTK backend as it does with the X11 backends. (Bug#72118)
---
src/emacs.c | 4 ++--
src/lisp.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/emacs.c b/src/emacs.c
index 712826d57b7..ec284b16f8d 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -181,7 +181,7 @@ #define MAIN_PROGRAM
data on the first attempt to change it inside asynchronous code. */
bool running_asynch_code;
-#if defined (HAVE_X_WINDOWS) || defined (HAVE_NS)
+#if defined (HAVE_X_WINDOWS) || defined (HAVE_PGTK) || defined (HAVE_NS)
/* If true, -d was specified, meaning we're using some window system. */
bool display_arg;
#endif
@@ -2014,7 +2014,7 @@ main (int argc, char **argv)
{
int count_before = skip_args;
-#ifdef HAVE_X_WINDOWS
+#if defined (HAVE_X_WINDOWS) || defined (HAVE_PGTK)
char *displayname = 0;
/* Skip any number of -d options, but only use the last one. */
diff --git a/src/lisp.h b/src/lisp.h
index 5fa48cec2f0..05daceb5dff 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -4889,7 +4889,7 @@ fast_c_string_match_ignore_case (Lisp_Object regexp,
extern char **initial_argv;
extern int initial_argc;
extern char const *emacs_wd;
-#if defined (HAVE_X_WINDOWS) || defined (HAVE_NS)
+#if defined (HAVE_X_WINDOWS) || defined (HAVE_PGTK) || defined (HAVE_NS)
extern bool display_arg;
#endif
extern Lisp_Object decode_env_path (const char *, const char *, bool);
--
2.45.2

View File

@ -0,0 +1,30 @@
From 75ca15f2a3146b17fde5e2a50ad9102c6108ba7f Mon Sep 17 00:00:00 2001
From: Stefan Kangas <stefankangas@gmail.com>
Date: Sun, 23 Jun 2024 20:54:22 +0200
Subject: [PATCH] Fix failing help-fns-test
* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun):
Fix failing test.
---
test/lisp/help-fns-tests.el | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/test/lisp/help-fns-tests.el b/test/lisp/help-fns-tests.el
index c3e8ca49723..fabf1959658 100644
--- a/test/lisp/help-fns-tests.el
+++ b/test/lisp/help-fns-tests.el
@@ -63,9 +63,8 @@ help-fns-test-lisp-macro
(should (string-match regexp result))))
(ert-deftest help-fns-test-lisp-defun ()
- (let ((regexp (if (featurep 'native-compile)
- "a native-compiled Lisp function in .+subr\\.el"
- "a byte-compiled Lisp function in .+subr\\.el"))
+ (let ((regexp (rx "a " (or "byte-compiled" "native-compiled")
+ " Lisp function in " nonl "subr.el" nonl))
(result (help-fns-tests--describe-function 'last)))
(should (string-match regexp result))))
--
2.45.2

View File

@ -0,0 +1,28 @@
From a769f171e7ebb8e30f198f4328d46f47fe7958fb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ulrich=20M=C3=BCller?= <ulm@gentoo.org>
Date: Mon, 24 Jun 2024 15:20:26 +0200
Subject: [PATCH] ; Fix flymake tests with GCC 14.
* test/lisp/progmodes/flymake-tests.el (included-c-header-files):
Fix test failure with GCC 14. (Bug#71749)
---
test/lisp/progmodes/flymake-tests.el | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/test/lisp/progmodes/flymake-tests.el b/test/lisp/progmodes/flymake-tests.el
index 21dbb0711d2..93bc9028031 100644
--- a/test/lisp/progmodes/flymake-tests.el
+++ b/test/lisp/progmodes/flymake-tests.el
@@ -174,7 +174,8 @@ included-c-header-files
(flymake-tests--with-flymake
("some-problems.h")
(flymake-goto-next-error)
- (should (eq 'flymake-warning (face-at-point)))
+ ;; implicit-int was promoted from warning to error in GCC 14
+ (should (memq (face-at-point) '(flymake-warning flymake-error)))
(flymake-goto-next-error)
(should (eq 'flymake-error (face-at-point)))
(should-error (flymake-goto-next-error nil nil t)))
--
2.45.2

View File

@ -0,0 +1,30 @@
From c86645dde30fbd54ae0f187e4428a09ad75e0ba8 Mon Sep 17 00:00:00 2001
From: Peter Oliver <git@mavit.org.uk>
Date: Mon, 15 Jul 2024 12:03:47 +0100
Subject: [PATCH] Fix intermittent failure of dired-test-bug27243-02
* test/lisp/dired-tests.el (dired-test-bug27243-02): Exclude free disk
space from dired listing in this test, in case it changes while it's
running and confuses the result.
---
test/lisp/dired-tests.el | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el
index 2589281e5e1..ea47043dfc5 100644
--- a/test/lisp/dired-tests.el
+++ b/test/lisp/dired-tests.el
@@ -189,7 +189,9 @@ dired-test-bug27243-01
(ert-deftest dired-test-bug27243-02 ()
"Test for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27243#28 ."
(ert-with-temp-directory test-dir
- (let ((dired-auto-revert-buffer t) buffers)
+ (let ((dired-auto-revert-buffer t)
+ (dired-free-space nil)
+ buffers)
;; On MS-Windows, get rid of 8+3 short names in test-dir, if the
;; corresponding long file names exist, otherwise such names trip
;; string comparisons below.
--
2.45.2

View File

@ -0,0 +1,29 @@
From 90734f5a3ba9998886e0b03382878a2fb514d015 Mon Sep 17 00:00:00 2001
From: Peter Oliver <git@mavit.org.uk>
Date: Fri, 12 Jul 2024 10:52:23 +0100
Subject: [PATCH] Fix wdired-test-unfinished-edit-01 when temp dirname contains
"foo"
* test/lisp/wdired-tests.el (wdired-test-unfinished-edit-01): Don't
modify the random directory name if, by chance, it happens to contain
the substring "foo".
---
test/lisp/wdired-tests.el | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/lisp/wdired-tests.el b/test/lisp/wdired-tests.el
index f7bff743058..f6d2194e998 100644
--- a/test/lisp/wdired-tests.el
+++ b/test/lisp/wdired-tests.el
@@ -114,7 +114,7 @@ wdired-test-unfinished-edit-01
(setq test-dir (file-truename test-dir))
(let* ((test-file (concat (file-name-as-directory test-dir) "foo.c"))
(replace "bar")
- (new-file (string-replace "foo" replace test-file)))
+ (new-file (string-replace "/foo" (concat "/" replace) test-file)))
(write-region "" nil test-file nil 'silent)
(let ((buf (find-file-noselect test-dir)))
(unwind-protect
--
2.45.2

View File

@ -0,0 +1,86 @@
From 6f29ac0393bb0bb70c8122d9f1bda0ae5d8cee24 Mon Sep 17 00:00:00 2001
From: Peter Oliver <git@mavit.org.uk>
Date: Thu, 26 Sep 2024 13:20:06 +0100
Subject: [PATCH] Pong and Tetris are excluded.
---
doc/emacs/ack.texi | 2 +-
doc/emacs/misc.texi | 7 +------
lisp/menu-bar.el | 6 ------
test/src/doc-tests.el | 4 ++--
4 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi
index 5ec5cd53fa6..26f174831ca 100644
--- a/doc/emacs/ack.texi
+++ b/doc/emacs/ack.texi
@@ -228,7 +228,7 @@ Acknowledgments
@item
Glynn Clements provided @file{gamegrid.el} and a couple of games that
-use it, Snake and Tetris.
+use it, including Snake.
@item
Andrew Cohen wrote @file{spam-wash.el}, to decode and clean email before
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 41e37fd094e..38e281bf59c 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -3248,14 +3248,9 @@ Amusements
nato-region} converts the text in the region to NATO phonetic
alphabet; @kbd{M-x denato-region} converts it back.
-@findex pong
-@cindex Pong game
-@findex tetris
-@cindex Tetris
@findex snake
@cindex Snake
- @kbd{M-x pong}, @kbd{M-x snake} and @kbd{M-x tetris} are
-implementations of the well-known Pong, Snake and Tetris games.
+ @kbd{M-x snake} is an implementation of the well-known Snake game.
@findex solitaire
@cindex solitaire
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index bcfa83cf8e4..1b0a0bce6a5 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1658,18 +1658,12 @@ menu-bar-games-menu
(bindings--define-key menu [zone]
'(menu-item "Zone Out" zone
:help "Play tricks with Emacs display when Emacs is idle"))
- (bindings--define-key menu [tetris]
- '(menu-item "Tetris" tetris
- :help "Falling blocks game"))
(bindings--define-key menu [solitaire]
'(menu-item "Solitaire" solitaire
:help "Get rid of all the stones"))
(bindings--define-key menu [snake]
'(menu-item "Snake" snake
:help "Move snake around avoiding collisions"))
- (bindings--define-key menu [pong]
- '(menu-item "Pong" pong
- :help "Bounce the ball to your opponent"))
(bindings--define-key menu [mult]
'(menu-item "Multiplication Puzzle" mpuz
:help "Exercise brain with multiplication"))
diff --git a/test/src/doc-tests.el b/test/src/doc-tests.el
index b41a7ac5fb6..24befb737bc 100644
--- a/test/src/doc-tests.el
+++ b/test/src/doc-tests.el
@@ -34,8 +34,8 @@ doc-tests-documentation/autoloaded-macro
(ert-deftest doc-tests-documentation/autoloaded-defun ()
(skip-unless noninteractive)
- (should (autoloadp (symbol-function 'tetris)))
- (should (stringp (documentation 'tetris)))) ; See Bug#52969.
+ (should (autoloadp (symbol-function 'doctor)))
+ (should (stringp (documentation 'doctor)))) ; See Bug#52969.
(ert-deftest doc-tests-quoting-style ()
(should (memq (text-quoting-style) '(grave straight curve))))
--
2.46.1

View File

@ -0,0 +1,63 @@
From 7099578f18b1ea6a168b1883fa7a4ac7f49fc08f Mon Sep 17 00:00:00 2001
From: Peter Oliver <git@mavit.org.uk>
Date: Sun, 14 Jul 2024 20:47:14 +0100
Subject: [PATCH 2/2] Fall back to the terminal from pure GTK when no display
is available
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* src/dispnew.c (init_display_interactive): Only use PGTK windowing if
at least one of the environment variables WAYLAND_DISPLAY, DISPLAY,
BROADWAY_DISPLAY is set. (Bug#63555)
This patch is not suitable for merging, because it doesnt consider
what happens if you try to use PGTK on Windows or MacOS.
---
src/dispnew.c | 29 ++++++++++++++++++++++++++---
1 file changed, 26 insertions(+), 3 deletions(-)
diff --git a/src/dispnew.c b/src/dispnew.c
index 7cf2b49273c..481d33a7302 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -6557,10 +6557,33 @@ init_display_interactive (void)
#endif
#ifdef HAVE_PGTK
- if (!inhibit_window_system && !will_dump_p ())
+ if (!inhibit_window_system)
{
- Vinitial_window_system = Qpgtk;
- return;
+ if (!display_arg && !will_dump_p ())
+ {
+ int i;
+ const char *gdk_display_variables[] = {
+ "WAYLAND_DISPLAY",
+ "DISPLAY",
+ "BROADWAY_DISPLAY",
+ };
+ size_t n = ARRAYELTS (gdk_display_variables);
+
+ for (i = 0; i < n; i++)
+ {
+ char *display;
+ display = getenv (gdk_display_variables[i]);
+ if (display != 0 && *display != 0)
+ {
+ display_arg = 1;
+ break;
+ }
+ }
+ }
+ if (display_arg) {
+ Vinitial_window_system = Qpgtk;
+ return;
+ }
}
#endif
--
2.45.2

View File

@ -0,0 +1,25 @@
From 8ae158173d1d748d55e2605c04d33a95739e055c Mon Sep 17 00:00:00 2001
From: Peter Oliver <git@mavit.org.uk>
Date: Mon, 15 Jul 2024 16:17:38 +0100
Subject: [PATCH 2/3] Test eshell-test/subcommand-reset-in-pipeline is unstable
Could be related to https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65602
---
test/lisp/eshell/eshell-tests.el | 1 +
1 file changed, 1 insertion(+)
diff --git a/test/lisp/eshell/eshell-tests.el b/test/lisp/eshell/eshell-tests.el
index 3812a4117ac..8c13d4af237 100644
--- a/test/lisp/eshell/eshell-tests.el
+++ b/test/lisp/eshell/eshell-tests.el
@@ -79,6 +79,7 @@ eshell-test/pipe-subcommand-with-pipe
(ert-deftest eshell-test/subcommand-reset-in-pipeline ()
"Check that subcommands reset `eshell-in-pipeline-p'."
+ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable))
(skip-unless (executable-find "cat"))
(dolist (template '("echo {%s} | *cat"
"echo ${%s} | *cat"
--
2.45.2

View File

@ -0,0 +1,60 @@
From 84174667ab624d16ba4c4f806d25e305ab919b80 Mon Sep 17 00:00:00 2001
From: Peter Oliver <git@mavit.org.uk>
Date: Mon, 15 Jul 2024 16:19:10 +0100
Subject: [PATCH 3/4] Mark multiple mml-sec tests as unstable when built in an
RPM
* test/lisp/gnus/mml-sec-tests.el: Mark unstable tests which have been
seen to intermittently fail at
https://koji.fedoraproject.org/koji/packageinfo?packageID=560
---
test/lisp/gnus/mml-sec-tests.el | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el
index 7abd1bd65a3..a381ff8e94d 100644
--- a/test/lisp/gnus/mml-sec-tests.el
+++ b/test/lisp/gnus/mml-sec-tests.el
@@ -278,6 +278,7 @@ mml-secure-key-checks
(ert-deftest mml-secure-find-usable-keys-1 ()
"Make sure that expired and disabled keys and revoked UIDs are not used."
+ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable))
(skip-unless (test-conf))
(mml-secure-test-fixture
(lambda ()
@@ -369,6 +370,7 @@ mml-secure-find-usable-keys-2
(ert-deftest mml-secure-select-preferred-keys-1 ()
"If only one key exists for an e-mail address, it is the preferred one."
+ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable))
(skip-unless (test-conf))
(mml-secure-test-fixture
(lambda ()
@@ -407,6 +409,7 @@ mml-secure-select-preferred-keys-2
(ert-deftest mml-secure-select-preferred-keys-3 ()
"Expired customized keys are removed if multiple keys are available."
+ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable))
(skip-unless (test-conf))
(mml-secure-test-fixture
(lambda ()
@@ -581,6 +584,7 @@ mml-secure-test-en-decrypt-with-passphrase
(ert-deftest mml-secure-en-decrypt-1 ()
"Encrypt message; then decrypt and test for expected result.
In this test, the single matching key is chosen automatically."
+ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable))
(skip-unless (test-conf))
(dolist (method (enc-standards) nil)
;; no-exp@example.org with single encryption key
@@ -625,6 +629,7 @@ mml-secure-en-decrypt-3
(ert-deftest mml-secure-en-decrypt-4 ()
"Encrypt message; then decrypt and test for expected result.
In this test, encrypt-to-self variables are set to lists."
+ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable))
(skip-unless (test-conf))
;; Send from sub@example.org, which has two keys; encrypt to both.
(let ((mml-secure-openpgp-encrypt-to-self
--
2.45.2

View File

@ -0,0 +1,38 @@
From e0f0549ac6766ab565dbd581098b96792a807727 Mon Sep 17 00:00:00 2001
From: Peter Oliver <git@mavit.org.uk>
Date: Wed, 17 Jul 2024 00:06:02 +0100
Subject: [PATCH 4/4] Try harder to stabalise dired-test-bug27243-02
* test/lisp/dired-tests.el (dired-test-bug27243-02): Don't rely on the
expected point, since columns will move if the size of the parent directory
changes order of magnitude.
---
test/lisp/dired-tests.el | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el
index ea47043dfc5..6078e99e13c 100644
--- a/test/lisp/dired-tests.el
+++ b/test/lisp/dired-tests.el
@@ -190,7 +190,6 @@ dired-test-bug27243-02
"Test for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27243#28 ."
(ert-with-temp-directory test-dir
(let ((dired-auto-revert-buffer t)
- (dired-free-space nil)
buffers)
;; On MS-Windows, get rid of 8+3 short names in test-dir, if the
;; corresponding long file names exist, otherwise such names trip
@@ -216,7 +215,9 @@ dired-test-bug27243-02
;; Sanity check: point should now be back on the subdirectory.
(should (eq (point) pt1))
(push (dired test-dir) buffers)
- (should (eq (point) pt1)))
+ (should (equal (dired-file-name-at-point)
+ (concat (file-name-as-directory test-dir)
+ (file-name-as-directory "test-subdir")))))
(dolist (buf buffers)
(when (buffer-live-p buf) (kill-buffer buf)))))))
--
2.45.2

View File

@ -0,0 +1,337 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: CEA1 DE21 AB10 8493 CC9C 6574 2E82 323B 8F43 53EE
Comment: Stefan Kangas <skangas@skangas.se>
Comment: Stefan Kangas <stefan@marxist.se>
Comment: Stefan Kangas <stefankangas@gmail.com>
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
ZOTZGRs=
=fO4L
-----END PGP PUBLIC KEY BLOCK-----

707
cdefs.h
View File

@ -1,707 +0,0 @@
/* Copyright (C) 1992-2022 Free Software Foundation, Inc.
Copyright The GNU Toolchain Authors.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
#ifndef _SYS_CDEFS_H
#define _SYS_CDEFS_H 1
/* We are almost always included from features.h. */
#ifndef _FEATURES_H
# include <features.h>
#endif
/* The GNU libc does not support any K&R compilers or the traditional mode
of ISO C compilers anymore. Check for some of the combinations not
supported anymore. */
#if defined __GNUC__ && !defined __STDC__
# error "You need a ISO C conforming compiler to use the glibc headers"
#endif
/* Some user header file might have defined this before. */
#undef __P
#undef __PMT
/* Compilers that lack __has_attribute may object to
#if defined __has_attribute && __has_attribute (...)
even though they do not need to evaluate the right-hand side of the &&.
Similarly for __has_builtin, etc. */
#if (defined __has_attribute \
&& (!defined __clang_minor__ \
|| (defined __apple_build_version__ \
? 6000000 <= __apple_build_version__ \
: 3 < __clang_major__ + (5 <= __clang_minor__))))
# define __glibc_has_attribute(attr) __has_attribute (attr)
#else
# define __glibc_has_attribute(attr) 0
#endif
#ifdef __has_builtin
# define __glibc_has_builtin(name) __has_builtin (name)
#else
# define __glibc_has_builtin(name) 0
#endif
#ifdef __has_extension
# define __glibc_has_extension(ext) __has_extension (ext)
#else
# define __glibc_has_extension(ext) 0
#endif
#if defined __GNUC__ || defined __clang__
/* All functions, except those with callbacks or those that
synchronize memory, are leaf functions. */
# if __GNUC_PREREQ (4, 6) && !defined _LIBC
# define __LEAF , __leaf__
# define __LEAF_ATTR __attribute__ ((__leaf__))
# else
# define __LEAF
# define __LEAF_ATTR
# endif
/* GCC can always grok prototypes. For C++ programs we add throw()
to help it optimize the function calls. But this only works with
gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions
as non-throwing using a function attribute since programs can use
the -fexceptions options for C code as well. */
# if !defined __cplusplus \
&& (__GNUC_PREREQ (3, 4) || __glibc_has_attribute (__nothrow__))
# define __THROW __attribute__ ((__nothrow__ __LEAF))
# define __THROWNL __attribute__ ((__nothrow__))
# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct
# define __NTHNL(fct) __attribute__ ((__nothrow__)) fct
# else
# if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major >= 4)
# if __cplusplus >= 201103L
# define __THROW noexcept (true)
# else
# define __THROW throw ()
# endif
# define __THROWNL __THROW
# define __NTH(fct) __LEAF_ATTR fct __THROW
# define __NTHNL(fct) fct __THROW
# else
# define __THROW
# define __THROWNL
# define __NTH(fct) fct
# define __NTHNL(fct) fct
# endif
# endif
#else /* Not GCC or clang. */
# if (defined __cplusplus \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
# define __inline inline
# else
# define __inline /* No inline functions. */
# endif
# define __THROW
# define __THROWNL
# define __NTH(fct) fct
#endif /* GCC || clang. */
/* These two macros are not used in glibc anymore. They are kept here
only because some other projects expect the macros to be defined. */
#define __P(args) args
#define __PMT(args) args
/* For these things, GCC behaves the ANSI way normally,
and the non-ANSI way under -traditional. */
#define __CONCAT(x,y) x ## y
#define __STRING(x) #x
/* This is not a typedef so `const __ptr_t' does the right thing. */
#define __ptr_t void *
/* C++ needs to know that types and declarations are C, not C++. */
#ifdef __cplusplus
# define __BEGIN_DECLS extern "C" {
# define __END_DECLS }
#else
# define __BEGIN_DECLS
# define __END_DECLS
#endif
/* Fortify support. */
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
#define __bos0(ptr) __builtin_object_size (ptr, 0)
/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */
#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \
|| __GNUC_PREREQ (12, 0))
# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0)
# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1)
#else
# define __glibc_objsize0(__o) __bos0 (__o)
# define __glibc_objsize(__o) __bos (__o)
#endif
/* Compile time conditions to choose between the regular, _chk and _chk_warn
variants. These conditions should get evaluated to constant and optimized
away. */
#define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s))
#define __glibc_unsigned_or_positive(__l) \
((__typeof (__l)) 0 < (__typeof (__l)) -1 \
|| (__builtin_constant_p (__l) && (__l) > 0))
/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ
condition can be folded to a constant and if it is true. The -1 check is
redundant because since it implies that __glibc_safe_len_cond is true. */
#define __glibc_safe_or_unknown_len(__l, __s, __osz) \
(__glibc_unsigned_or_positive (__l) \
&& __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \
__s, __osz)) \
&& __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz))
/* Conversely, we know at compile time that the length is unsafe if the
__L * __S <= __OBJSZ condition can be folded to a constant and if it is
false. */
#define __glibc_unsafe_len(__l, __s, __osz) \
(__glibc_unsigned_or_positive (__l) \
&& __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \
__s, __osz)) \
&& !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz))
/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be
declared. */
#define __glibc_fortify(f, __l, __s, __osz, ...) \
(__glibc_safe_or_unknown_len (__l, __s, __osz) \
? __ ## f ## _alias (__VA_ARGS__) \
: (__glibc_unsafe_len (__l, __s, __osz) \
? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \
: __ ## f ## _chk (__VA_ARGS__, __osz))) \
/* Fortify function f, where object size argument passed to f is the number of
elements and not total size. */
#define __glibc_fortify_n(f, __l, __s, __osz, ...) \
(__glibc_safe_or_unknown_len (__l, __s, __osz) \
? __ ## f ## _alias (__VA_ARGS__) \
: (__glibc_unsafe_len (__l, __s, __osz) \
? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \
: __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \
#if __GNUC_PREREQ (4,3)
# define __warnattr(msg) __attribute__((__warning__ (msg)))
# define __errordecl(name, msg) \
extern void name (void) __attribute__((__error__ (msg)))
#else
# define __warnattr(msg)
# define __errordecl(name, msg) extern void name (void)
#endif
/* Support for flexible arrays.
Headers that should use flexible arrays only if they're "real"
(e.g. only if they won't affect sizeof()) should test
#if __glibc_c99_flexarr_available. */
#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc
# define __flexarr []
# define __glibc_c99_flexarr_available 1
#elif __GNUC_PREREQ (2,97) || defined __clang__
/* GCC 2.97 and clang support C99 flexible array members as an extension,
even when in C89 mode or compiling C++ (any version). */
# define __flexarr []
# define __glibc_c99_flexarr_available 1
#elif defined __GNUC__
/* Pre-2.97 GCC did not support C99 flexible arrays but did have
an equivalent extension with slightly different notation. */
# define __flexarr [0]
# define __glibc_c99_flexarr_available 1
#else
/* Some other non-C99 compiler. Approximate with [1]. */
# define __flexarr [1]
# define __glibc_c99_flexarr_available 0
#endif
/* __asm__ ("xyz") is used throughout the headers to rename functions
at the assembly language level. This is wrapped by the __REDIRECT
macro, in order to support compilers that can do this some other
way. When compilers don't support asm-names at all, we have to do
preprocessor tricks instead (which don't have exactly the right
semantics, but it's the best we can do).
Example:
int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */
#if (defined __GNUC__ && __GNUC__ >= 2) || (__clang_major__ >= 4)
# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias))
# ifdef __cplusplus
# define __REDIRECT_NTH(name, proto, alias) \
name proto __THROW __asm__ (__ASMNAME (#alias))
# define __REDIRECT_NTHNL(name, proto, alias) \
name proto __THROWNL __asm__ (__ASMNAME (#alias))
# else
# define __REDIRECT_NTH(name, proto, alias) \
name proto __asm__ (__ASMNAME (#alias)) __THROW
# define __REDIRECT_NTHNL(name, proto, alias) \
name proto __asm__ (__ASMNAME (#alias)) __THROWNL
# endif
# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
# define __ASMNAME2(prefix, cname) __STRING (prefix) cname
/*
#elif __SOME_OTHER_COMPILER__
# define __REDIRECT(name, proto, alias) name proto; \
_Pragma("let " #name " = " #alias)
*/
#endif
/* GCC and clang have various useful declarations that can be made with
the '__attribute__' syntax. All of the ways we use this do fine if
they are omitted for compilers that don't understand it. */
#if !(defined __GNUC__ || defined __clang__)
# define __attribute__(xyz) /* Ignore */
#endif
/* At some point during the gcc 2.96 development the `malloc' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__malloc__)
# define __attribute_malloc__ __attribute__ ((__malloc__))
#else
# define __attribute_malloc__ /* Ignore */
#endif
/* Tell the compiler which arguments to an allocation function
indicate the size of the allocation. */
#if __GNUC_PREREQ (4, 3)
# define __attribute_alloc_size__(params) \
__attribute__ ((__alloc_size__ params))
#else
# define __attribute_alloc_size__(params) /* Ignore. */
#endif
/* Tell the compiler which argument to an allocation function
indicates the alignment of the allocation. */
#if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__alloc_align__)
# define __attribute_alloc_align__(param) \
__attribute__ ((__alloc_align__ param))
#else
# define __attribute_alloc_align__(param) /* Ignore. */
#endif
/* At some point during the gcc 2.96 development the `pure' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__pure__)
# define __attribute_pure__ __attribute__ ((__pure__))
#else
# define __attribute_pure__ /* Ignore */
#endif
/* This declaration tells the compiler that the value is constant. */
#if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__)
# define __attribute_const__ __attribute__ ((__const__))
#else
# define __attribute_const__ /* Ignore */
#endif
#if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__)
# define __attribute_maybe_unused__ __attribute__ ((__unused__))
#else
# define __attribute_maybe_unused__ /* Ignore */
#endif
/* At some point during the gcc 3.1 development the `used' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (3,1) || __glibc_has_attribute (__used__)
# define __attribute_used__ __attribute__ ((__used__))
# define __attribute_noinline__ __attribute__ ((__noinline__))
#else
# define __attribute_used__ __attribute__ ((__unused__))
# define __attribute_noinline__ /* Ignore */
#endif
/* Since version 3.2, gcc allows marking deprecated functions. */
#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__deprecated__)
# define __attribute_deprecated__ __attribute__ ((__deprecated__))
#else
# define __attribute_deprecated__ /* Ignore */
#endif
/* Since version 4.5, gcc also allows one to specify the message printed
when a deprecated function is used. clang claims to be gcc 4.2, but
may also support this feature. */
#if __GNUC_PREREQ (4,5) \
|| __glibc_has_extension (__attribute_deprecated_with_message__)
# define __attribute_deprecated_msg__(msg) \
__attribute__ ((__deprecated__ (msg)))
#else
# define __attribute_deprecated_msg__(msg) __attribute_deprecated__
#endif
/* At some point during the gcc 2.8 development the `format_arg' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings.
If several `format_arg' attributes are given for the same function, in
gcc-3.0 and older, all but the last one are ignored. In newer gccs,
all designated arguments are considered. */
#if __GNUC_PREREQ (2,8) || __glibc_has_attribute (__format_arg__)
# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))
#else
# define __attribute_format_arg__(x) /* Ignore */
#endif
/* At some point during the gcc 2.97 development the `strfmon' format
attribute for functions was introduced. We don't want to use it
unconditionally (although this would be possible) since it
generates warnings. */
#if __GNUC_PREREQ (2,97) || __glibc_has_attribute (__format__)
# define __attribute_format_strfmon__(a,b) \
__attribute__ ((__format__ (__strfmon__, a, b)))
#else
# define __attribute_format_strfmon__(a,b) /* Ignore */
#endif
/* The nonnull function attribute marks pointer parameters that
must not be NULL. This has the name __nonnull in glibc,
and __attribute_nonnull__ in files shared with Gnulib to avoid
collision with a different __nonnull in DragonFlyBSD 5.9. */
#ifndef __attribute_nonnull__
# if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__)
# define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params))
# else
# define __attribute_nonnull__(params)
# endif
#endif
#ifndef __nonnull
# define __nonnull(params) __attribute_nonnull__ (params)
#endif
/* The returns_nonnull function attribute marks the return type of the function
as always being non-null. */
#ifndef __returns_nonnull
# if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__returns_nonnull__)
# define __returns_nonnull __attribute__ ((__returns_nonnull__))
# else
# define __returns_nonnull
# endif
#endif
/* If fortification mode, we warn about unused results of certain
function calls which can lead to problems. */
#if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__)
# define __attribute_warn_unused_result__ \
__attribute__ ((__warn_unused_result__))
# if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0
# define __wur __attribute_warn_unused_result__
# endif
#else
# define __attribute_warn_unused_result__ /* empty */
#endif
#ifndef __wur
# define __wur /* Ignore */
#endif
/* Forces a function to be always inlined. */
#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__always_inline__)
/* The Linux kernel defines __always_inline in stddef.h (283d7573), and
it conflicts with this definition. Therefore undefine it first to
allow either header to be included first. */
# undef __always_inline
# define __always_inline __inline __attribute__ ((__always_inline__))
#else
# undef __always_inline
# define __always_inline __inline
#endif
/* Associate error messages with the source location of the call site rather
than with the source location inside the function. */
#if __GNUC_PREREQ (4,3) || __glibc_has_attribute (__artificial__)
# define __attribute_artificial__ __attribute__ ((__artificial__))
#else
# define __attribute_artificial__ /* Ignore */
#endif
/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
older than 4.3 may define these macros and still not guarantee GNU inlining
semantics.
clang++ identifies itself as gcc-4.2, but has support for GNU inlining
semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
__GNUC_GNU_INLINE__ macro definitions. */
#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \
|| (defined __clang__ && (defined __GNUC_STDC_INLINE__ \
|| defined __GNUC_GNU_INLINE__)))
# if defined __GNUC_STDC_INLINE__ || defined __cplusplus
# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
# define __extern_always_inline \
extern __always_inline __attribute__ ((__gnu_inline__))
# else
# define __extern_inline extern __inline
# define __extern_always_inline extern __always_inline
# endif
#endif
#ifdef __extern_always_inline
# define __fortify_function __extern_always_inline __attribute_artificial__
#endif
/* GCC 4.3 and above allow passing all anonymous arguments of an
__extern_always_inline function to some other vararg function. */
#if __GNUC_PREREQ (4,3)
# define __va_arg_pack() __builtin_va_arg_pack ()
# define __va_arg_pack_len() __builtin_va_arg_pack_len ()
#endif
/* It is possible to compile containing GCC extensions even if GCC is
run in pedantic mode if the uses are carefully marked using the
`__extension__' keyword. But this is not generally available before
version 2.8. */
#if !(__GNUC_PREREQ (2,8) || defined __clang__)
# define __extension__ /* Ignore */
#endif
/* __restrict is known in EGCS 1.2 and above, and in clang.
It works also in C++ mode (outside of arrays), but only when spelled
as '__restrict', not 'restrict'. */
#if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3)
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
# define __restrict restrict
# else
# define __restrict /* Ignore */
# endif
#endif
/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is
array_name[restrict]
GCC 3.1 and clang support this.
This syntax is not usable in C++ mode. */
#if (__GNUC_PREREQ (3,1) || __clang_major__ >= 3) && !defined __cplusplus
# define __restrict_arr __restrict
#else
# ifdef __GNUC__
# define __restrict_arr /* Not supported in old GCC. */
# else
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
# define __restrict_arr restrict
# else
/* Some other non-C99 compiler. */
# define __restrict_arr /* Not supported. */
# endif
# endif
#endif
#if (__GNUC__ >= 3) || __glibc_has_builtin (__builtin_expect)
# define __glibc_unlikely(cond) __builtin_expect ((cond), 0)
# define __glibc_likely(cond) __builtin_expect ((cond), 1)
#else
# define __glibc_unlikely(cond) (cond)
# define __glibc_likely(cond) (cond)
#endif
#if (!defined _Noreturn \
&& (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \
&& !(__GNUC_PREREQ (4,7) \
|| (3 < __clang_major__ + (5 <= __clang_minor__))))
# if __GNUC_PREREQ (2,8)
# define _Noreturn __attribute__ ((__noreturn__))
# else
# define _Noreturn
# endif
#endif
#if __GNUC_PREREQ (8, 0)
/* Describes a char array whose address can safely be passed as the first
argument to strncpy and strncat, as the char array is not necessarily
a NUL-terminated string. */
# define __attribute_nonstring__ __attribute__ ((__nonstring__))
#else
# define __attribute_nonstring__
#endif
/* Undefine (also defined in libc-symbols.h). */
#undef __attribute_copy__
#if __GNUC_PREREQ (9, 0)
/* Copies attributes from the declaration or type referenced by
the argument. */
# define __attribute_copy__(arg) __attribute__ ((__copy__ (arg)))
#else
# define __attribute_copy__(arg)
#endif
#if (!defined _Static_assert && !defined __cplusplus \
&& (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \
&& (!(__GNUC_PREREQ (4, 6) || __clang_major__ >= 4) \
|| defined __STRICT_ANSI__))
# define _Static_assert(expr, diagnostic) \
extern int (*__Static_assert_function (void)) \
[!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })]
#endif
/* Gnulib avoids including these, as they don't work on non-glibc or
older glibc platforms. */
#ifndef __GNULIB_CDEFS
# include <bits/wordsize.h>
# include <bits/long-double.h>
#endif
#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# ifdef __REDIRECT
/* Alias name defined automatically. */
# define __LDBL_REDIR(name, proto) ... unused__ldbl_redir
# define __LDBL_REDIR_DECL(name) \
extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128"));
/* Alias name defined automatically, with leading underscores. */
# define __LDBL_REDIR2_DECL(name) \
extern __typeof (__##name) __##name \
__asm (__ASMNAME ("__" #name "ieee128"));
/* Alias name defined manually. */
# define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1
# define __LDBL_REDIR1_DECL(name, alias) \
extern __typeof (name) name __asm (__ASMNAME (#alias));
# define __LDBL_REDIR1_NTH(name, proto, alias) \
__REDIRECT_NTH (name, proto, alias)
# define __REDIRECT_NTH_LDBL(name, proto, alias) \
__LDBL_REDIR1_NTH (name, proto, __##alias##ieee128)
/* Unused. */
# define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl
# define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth
# else
_Static_assert (0, "IEEE 128-bits long double requires redirection on this platform");
# endif
#elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH
# define __LDBL_COMPAT 1
# ifdef __REDIRECT
# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias)
# define __LDBL_REDIR(name, proto) \
__LDBL_REDIR1 (name, proto, __nldbl_##name)
# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias)
# define __LDBL_REDIR_NTH(name, proto) \
__LDBL_REDIR1_NTH (name, proto, __nldbl_##name)
# define __LDBL_REDIR2_DECL(name) \
extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name));
# define __LDBL_REDIR1_DECL(name, alias) \
extern __typeof (name) name __asm (__ASMNAME (#alias));
# define __LDBL_REDIR_DECL(name) \
extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name));
# define __REDIRECT_LDBL(name, proto, alias) \
__LDBL_REDIR1 (name, proto, __nldbl_##alias)
# define __REDIRECT_NTH_LDBL(name, proto, alias) \
__LDBL_REDIR1_NTH (name, proto, __nldbl_##alias)
# endif
#endif
#if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \
|| !defined __REDIRECT
# define __LDBL_REDIR1(name, proto, alias) name proto
# define __LDBL_REDIR(name, proto) name proto
# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW
# define __LDBL_REDIR_NTH(name, proto) name proto __THROW
# define __LDBL_REDIR2_DECL(name)
# define __LDBL_REDIR_DECL(name)
# ifdef __REDIRECT
# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias)
# define __REDIRECT_NTH_LDBL(name, proto, alias) \
__REDIRECT_NTH (name, proto, alias)
# endif
#endif
/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
intended for use in preprocessor macros.
Note: MESSAGE must be a _single_ string; concatenation of string
literals is not supported. */
#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5)
# define __glibc_macro_warning1(message) _Pragma (#message)
# define __glibc_macro_warning(message) \
__glibc_macro_warning1 (GCC warning message)
#else
# define __glibc_macro_warning(msg)
#endif
/* Generic selection (ISO C11) is a C-only feature, available in GCC
since version 4.9. Previous versions do not provide generic
selection, even though they might set __STDC_VERSION__ to 201112L,
when in -std=c11 mode. Thus, we must check for !defined __GNUC__
when testing __STDC_VERSION__ for generic selection support.
On the other hand, Clang also defines __GNUC__, so a clang-specific
check is required to enable the use of generic selection. */
#if !defined __cplusplus \
&& (__GNUC_PREREQ (4, 9) \
|| __glibc_has_extension (c_generic_selections) \
|| (!defined __GNUC__ && defined __STDC_VERSION__ \
&& __STDC_VERSION__ >= 201112L))
# define __HAVE_GENERIC_SELECTION 1
#else
# define __HAVE_GENERIC_SELECTION 0
#endif
#if __GNUC_PREREQ (10, 0)
/* Designates a 1-based positional argument ref-index of pointer type
that can be used to access size-index elements of the pointed-to
array according to access mode, or at least one element when
size-index is not provided:
access (access-mode, <ref-index> [, <size-index>]) */
# define __attr_access(x) __attribute__ ((__access__ x))
/* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may
use the access attribute to get object sizes from function definition
arguments, so we can't use them on functions we fortify. Drop the object
size hints for such functions. */
# if __USE_FORTIFY_LEVEL == 3
# define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o)))
# else
# define __fortified_attr_access(a, o, s) __attr_access ((a, o, s))
# endif
# if __GNUC_PREREQ (11, 0)
# define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno)))
# else
# define __attr_access_none(argno)
# endif
#else
# define __fortified_attr_access(a, o, s)
# define __attr_access(x)
# define __attr_access_none(argno)
#endif
#if __GNUC_PREREQ (11, 0)
/* Designates dealloc as a function to call to deallocate objects
allocated by the declared function. */
# define __attr_dealloc(dealloc, argno) \
__attribute__ ((__malloc__ (dealloc, argno)))
# define __attr_dealloc_free __attr_dealloc (__builtin_free, 1)
#else
# define __attr_dealloc(dealloc, argno)
# define __attr_dealloc_free
#endif
/* Specify that a function such as setjmp or vfork may return
twice. */
#if __GNUC_PREREQ (4, 1)
# define __attribute_returns_twice__ __attribute__ ((__returns_twice__))
#else
# define __attribute_returns_twice__ /* Ignore. */
#endif
#endif /* sys/cdefs.h */

1880
changelog Normal file

File diff suppressed because it is too large Load Diff

26
emacs-desktop.patch Normal file
View File

@ -0,0 +1,26 @@
From 90e902854c53c6ab5ef8711af27f42fbc77d9ffe Mon Sep 17 00:00:00 2001
From: Peter Oliver <git@mavit.org.uk>
Date: Mon, 10 Apr 2023 20:55:54 +0100
Subject: [PATCH] Use a wrapper to avoid the pure GTK build on X11, where it is
unsupported.
---
etc/emacs.desktop | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etc/emacs.desktop b/etc/emacs.desktop
index 0d7cac14da5..eabc78bb884 100644
--- a/etc/emacs.desktop
+++ b/etc/emacs.desktop
@@ -3,7 +3,7 @@ Name=Emacs
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
-Exec=emacs %F
+Exec=emacs-desktop %F
Icon=emacs
Type=Application
Terminal=false
--
2.39.2

18
emacs-desktop.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/sh
# The pure GTK build of emacs is not supported on X11, so try to avoid
# using if there is an alternative.
if [ "$XDG_SESSION_TYPE" = 'x11' ]; then
case "$(readlink -f /usr/bin/emacs)" in
*/emacs-*.*-pgtk)
if type emacs-gtk+x11 >/dev/null; then
exec emacs-gtk+x11 "$@"
elif type emacs-lucid >/dev/null; then
exec emacs-lucid "$@"
fi
;;
esac
fi
exec emacs "$@"

View File

@ -1,171 +0,0 @@
From e81f1faca4382ed5c8f15fec84fb7c900a5468f9 Mon Sep 17 00:00:00 2001
From: Glenn Morris <rgm@gnu.org>
Date: Mon, 11 Oct 2021 14:03:26 +0200
Subject: Make the installed pmdp file use a fingerprint
* Makefile.in (EMACS_PDMP): Use --fingerprint.
* doc/emacs/cmdargs.texi (Action Arguments): Document --fingerprint.
* src/emacs.c (load_pdump): Load the fingerprinted version of the
pdmp file (bug#42790).
(main): Support --fingerprint.
* src/pdumper.c (dump_fingerprint): Make non-static.
* src/pdumper.h: Declare dump_fingerprint.
---
Makefile.in | 3 ++-
doc/emacs/cmdargs.texi | 5 +++++
src/emacs.c | 31 +++++++++++++++++++++++++++++--
src/pdumper.c | 2 +-
src/pdumper.h | 3 +++
5 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 5fc1edc..c6c507f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -313,6 +313,7 @@ TRANSFORM = @program_transform_name@
EMACS_NAME = `echo emacs | sed '$(TRANSFORM)'`
EMACS = ${EMACS_NAME}${EXEEXT}
EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`${EXEEXT}
+EMACS_PDMP = `./src/emacs${EXEEXT} --fingerprint 2>&1 | sed 's/.* //'`.pdmp
# Subdirectories to make recursively.
SUBDIR = $(NTDIR) lib lib-src src lisp
@@ -521,7 +522,7 @@ install-arch-dep: src install-arch-indep install-etcdoc install-$(NTDIR)
ifeq (${ns_self_contained},no)
${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)"
ifeq (${DUMPING},pdumper)
- ${INSTALL_DATA} src/emacs.pdmp "$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}"/emacs.pdmp
+ ${INSTALL_DATA} src/emacs.pdmp "$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}"/emacs-${EMACS_PDMP}
endif
-chmod 755 "$(DESTDIR)${bindir}/$(EMACSFULL)"
ifndef NO_BIN_LINK
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index d5177fa..313682b 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -185,6 +185,11 @@ successfully.
@item --version
@opindex --version
Print Emacs version, then exit successfully.
+
+@item --fingerprint
+@opindex --fingerprint
+Print the Emacs ``fingerprint'', which is used to uniquely identify
+the compiled version of Emacs.
@end table
@node Initial Options
diff --git a/src/emacs.c b/src/emacs.c
index 866e43f..cda7a9b 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -133,6 +133,7 @@ extern char etext;
#endif
#include "pdumper.h"
+#include "fingerprint.h"
#include "epaths.h"
static const char emacs_version[] = PACKAGE_VERSION;
@@ -255,6 +256,7 @@ Initialization options:\n\
#ifdef HAVE_PDUMPER
"\
--dump-file FILE read dumped state from FILE\n\
+--fingerprint output fingerprint and exit\n\
",
#endif
#if SECCOMP_USABLE
@@ -830,6 +832,8 @@ load_pdump (int argc, char **argv)
const char *const suffix = ".pdmp";
int result;
char *emacs_executable = argv[0];
+ ptrdiff_t hexbuf_size;
+ char *hexbuf;
const char *strip_suffix =
#if defined DOS_NT || defined CYGWIN
".exe"
@@ -927,9 +931,15 @@ load_pdump (int argc, char **argv)
/* Look for "emacs.pdmp" in PATH_EXEC. We hardcode "emacs" in
"emacs.pdmp" so that the Emacs binary still works if the user
copies and renames it. */
+ hexbuf_size = 2 * sizeof fingerprint;
+ hexbuf = xmalloc (hexbuf_size + 1);
+ hexbuf_digest (hexbuf, (char *)fingerprint, sizeof fingerprint);
+ hexbuf[hexbuf_size] = '\0';
needed = (strlen (path_exec)
+ 1
+ strlen (argv0_base)
+ + 1
+ + strlen (hexbuf)
+ strlen (suffix)
+ 1);
if (bufsize < needed)
@@ -937,8 +947,8 @@ load_pdump (int argc, char **argv)
xfree (dump_file);
dump_file = xpalloc (NULL, &bufsize, needed - bufsize, -1, 1);
}
- sprintf (dump_file, "%s%c%s%s",
- path_exec, DIRECTORY_SEP, argv0_base, suffix);
+ sprintf (dump_file, "%s%c%s-%s%s",
+ path_exec, DIRECTORY_SEP, argv0_base, hexbuf, suffix);
#if !defined (NS_SELF_CONTAINED)
/* Assume the Emacs binary lives in a sibling directory as set up by
the default installation configuration. */
@@ -1387,6 +1397,23 @@ main (int argc, char **argv)
exit (0);
}
+#ifdef HAVE_PDUMPER
+ if (argmatch (argv, argc, "-fingerprint", "--fingerprint", 4,
+ NULL, &skip_args))
+ {
+ if (initialized)
+ {
+ dump_fingerprint ("fingerprint", (unsigned char *)fingerprint);
+ exit (0);
+ }
+ else
+ {
+ fputs ("Not initialized\n", stderr);
+ exit (1);
+ }
+ }
+#endif
+
emacs_wd = emacs_get_current_dir_name ();
#ifdef HAVE_PDUMPER
if (dumped_with_pdumper_p ())
diff --git a/src/pdumper.c b/src/pdumper.c
index 11c680d..977f4fb 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -312,7 +312,7 @@ dump_reloc_set_offset (struct dump_reloc *reloc, dump_off offset)
error ("dump relocation out of range");
}
-static void
+void
dump_fingerprint (char const *label,
unsigned char const xfingerprint[sizeof fingerprint])
{
diff --git a/src/pdumper.h b/src/pdumper.h
index deec9af..bc339c4 100644
--- a/src/pdumper.h
+++ b/src/pdumper.h
@@ -50,6 +50,9 @@ enum { PDUMPER_NO_OBJECT = -1 };
#define PDUMPER_REMEMBER_SCALAR(thing) \
pdumper_remember_scalar (&(thing), sizeof (thing))
+extern void dump_fingerprint (const char *label,
+ const unsigned char *xfingerprint);
+
extern void pdumper_remember_scalar_impl (void *data, ptrdiff_t nbytes);
INLINE void
--
cgit v1.1

View File

@ -0,0 +1,26 @@
From eaaf4883aee50974eeb03e529a29585f8ddc1d9d Mon Sep 17 00:00:00 2001
From: Bhavin Gandhi <bhavin192@geeksocket.in>
Date: Wed, 31 May 2023 22:44:54 +0530
Subject: [PATCH] Add package names to PGTK on X error message
---
src/pgtkterm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/pgtkterm.c b/src/pgtkterm.c
index c00e13550bd..ce51bff5947 100644
--- a/src/pgtkterm.c
+++ b/src/pgtkterm.c
@@ -6680,7 +6680,8 @@ pgtk_display_x_warning (GdkDisplay *display)
" System. That configuration is unsupported and"
" will lead to sporadic crashes during transfer of"
" large selection data. It will also lead to"
- " various problems with keyboard input.");
+ " various problems with keyboard input."
+ "\nInstall emacs-gtk+x11 or emacs-lucid package.");
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_container_add (GTK_CONTAINER (content_area), label);
gtk_widget_show (label);
--
2.40.1

2588
emacs.spec

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,2 @@
SHA512 (emacs-28.1.tar.xz) = c146ff7086aba49fa6c18adf4e485a59eb4c6525fddb9d385034446830b8bb0ac9e6fb76e7b6d94a9fddc41643415f36acad57a1ae16a841c97f61bc211459d9
SHA512 (emacs-28.1.tar.xz.sig) = cc905fb3d75c2f03c491fb1e0edd883312147d65125a667dcf77e6a078a6381f0674e321feba24a205d819275b6f31282a54910b3fc1c1284421a0fd35a2882a
SHA512 (emacs-29.4.tar.xz) = 66b38081cb01d2c46ff7beefb45986cc225b4c922c30712ad0d456c6cae5507176ed99418c8f26948c5375c8afde4e4b2507d23ed997dbb5392d12150a121d80
SHA512 (emacs-29.4.tar.xz.sig) = 6c20269c260fb7f6d8b9b4582be25179a5adaaa1b9d94e68d55890f7b0b211dfd396c7005694b0154471ab3769f12e5067b8f4ec21720755d9087d89a8c722f6