From 66f03e51dfd4aa06c811431ac9bde0b5444d1240 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 9 Apr 2024 14:37:42 +0100 Subject: [PATCH 001/111] Split emacs-filesystem into a separate source package. --- emacs.spec | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/emacs.spec b/emacs.spec index f0a6f55..5b1031a 100644 --- a/emacs.spec +++ b/emacs.spec @@ -212,14 +212,6 @@ emacs-terminal if you need a terminal with Malayalam support. Please note that emacs-terminal is a temporary package and it will be removed when another terminal becomes capable of handling Malayalam. -%package filesystem -Summary: Emacs filesystem layout -BuildArch: noarch - -%description filesystem -This package provides some directories which are required by other -packages that add functionality to Emacs. - %package devel Summary: Development header files for Emacs @@ -644,11 +636,6 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop %{_bindir}/emacs-terminal %{_datadir}/applications/emacs-terminal.desktop -%files filesystem -%dir %{_datadir}/emacs -%dir %{_datadir}/emacs/site-lisp -%dir %{_datadir}/emacs/site-lisp/site-start.d - %files devel %{_includedir}/emacs-module.h From 0f3de093ef98e690d20750287298038ed718e1d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavol=20=C5=BD=C3=A1=C4=8Dik?= Date: Tue, 23 Apr 2024 10:02:06 +0200 Subject: [PATCH 002/111] Remove liblockfile dependency --- emacs.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 5b1031a..7c91966 100644 --- a/emacs.spec +++ b/emacs.spec @@ -63,7 +63,6 @@ BuildRequires: alsa-lib-devel %if %{with gpm} BuildRequires: gpm-devel %endif -BuildRequires: liblockfile-devel BuildRequires: libxml2-devel BuildRequires: autoconf BuildRequires: bzip2 From 4842649133bdd8e66627cc5a37a3df1ff95ea6fb Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 26 Apr 2024 01:04:11 +0100 Subject: [PATCH 003/111] Rebuild Emacs, fixing Tree-sitter crash #2277250. --- emacs.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/emacs.spec b/emacs.spec index 7c91966..cf07f7f 100644 --- a/emacs.spec +++ b/emacs.spec @@ -184,6 +184,10 @@ Provides: emacs-transient = 0.3.7 # version as of the release of emacs 28.1 is obsoleted Obsoletes: emacs-transient < 0.3.0-4 +# https://github.com/tree-sitter/tree-sitter/issues/3296 +Requires: libtree-sitter >= 0.22.5 +Requires: libtree-sitter < 0.23 + # Ideally, we'd package all tree-sitter parsers as RPMs, but, in the # meantime, we need the following packages for # treesit-install-language-grammar to be able to build the parsers for From 6f7231587621dae314bf71b1cd9403375f6f95f5 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sat, 27 Apr 2024 00:33:11 +0100 Subject: [PATCH 004/111] Split emacsclient into a package that can be installed independently --- emacs.spec | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/emacs.spec b/emacs.spec index cf07f7f..1f6a06c 100644 --- a/emacs.spec +++ b/emacs.spec @@ -118,11 +118,13 @@ language (elisp), and the capability to read mail, news, and more without leaving the editor. } + %description %desc This package provides an emacs binary with support for Wayland, using the GTK toolkit. + %package gtk+x11 Summary: GNU Emacs text editor with GTK toolkit X support Requires: libgccjit @@ -137,6 +139,7 @@ Supplements: (xorg-x11-server-Xorg and emacs-common) This package provides an emacs-gtk+x11 binary with support for the X Window System, using the GTK toolkit. + %package lucid Summary: GNU Emacs text editor with Lucid toolkit X support Requires: google-noto-sans-mono-vf-fonts @@ -150,6 +153,7 @@ Provides: emacs(bin) = %{epoch}:%{version}-%{release} This package provides an emacs-lucid binary with support for the X Window System, using the Lucid toolkit. + %package nw Summary: GNU Emacs text editor without X support Requires(preun): /usr/sbin/alternatives @@ -164,6 +168,17 @@ Obsoletes: emacs-nox < 1:30 This package provides an emacs-nw binary with no graphical display support, for running on a terminal. + +%package -n emacsclient +Summary: Remotely control GNU Emacs +Conflicts: emacs-common < 1:29.3-9 + +%description -n emacsclient +%desc +This package provides emacsclient, which can be used to control an Emacs +server. + + %package common Summary: Emacs common files # The entire source code is GPLv3+ except lib-src/etags.c which is @@ -172,6 +187,7 @@ License: GPL-3.0-or-later AND GFDL-1.3-no-invariants-or-later AND BSD-3-Cl Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: %{name}-filesystem +Requires: emacsclient Requires: libgccjit Recommends: (emacs or emacs-gtk+x11 or emacs-lucid or emacs-nw) Recommends: enchant2 @@ -197,12 +213,13 @@ Recommends: git Recommends: libtree-sitter-java - %description common %desc This package contains all the common files needed by emacs, emacs-gtk+x11, emacs-lucid, or emacs-nw. + + %package terminal Summary: A desktop menu item for GNU Emacs terminal. Requires: emacs = %{epoch}:%{version}-%{release} @@ -215,12 +232,14 @@ emacs-terminal if you need a terminal with Malayalam support. Please note that emacs-terminal is a temporary package and it will be removed when another terminal becomes capable of handling Malayalam. + %package devel Summary: Development header files for Emacs %description devel Development header files for Emacs. + %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %autosetup -p1 @@ -601,13 +620,17 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop %attr(0755,-,-) %ghost %{_bindir}/emacs %attr(0755,-,-) %ghost %{_bindir}/emacs-nw +%files -n emacsclient +%license etc/COPYING +%{_bindir}/emacsclient +%{_mandir}/man1/emacsclient.1* + %files common -f common-filelist -f info-filelist %config(noreplace) %{_sysconfdir}/skel/.emacs %{_rpmconfigdir}/macros.d/macros.emacs %license etc/COPYING %doc doc/NEWS BUGS README %{_bindir}/ebrowse -%{_bindir}/emacsclient %{_bindir}/emacs-desktop %{_bindir}/etags.emacs %{_bindir}/gctags @@ -620,7 +643,6 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop %{_datadir}/icons/hicolor/scalable/mimetypes/emacs-document.svg %{_mandir}/man1/ebrowse.1* %{_mandir}/man1/emacs.1* -%{_mandir}/man1/emacsclient.1* %{_mandir}/man1/etags.emacs.1* %{_mandir}/man1/gctags.1* %dir %{_datadir}/emacs/%{version} From 9b5c26fbaded5d4d5500bfc0510a987a0b0f2ded Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sat, 27 Apr 2024 01:46:40 +0100 Subject: [PATCH 005/111] Tweak subpackage summaries and descriptions. --- emacs.spec | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/emacs.spec b/emacs.spec index 1f6a06c..d3e9250 100644 --- a/emacs.spec +++ b/emacs.spec @@ -112,10 +112,10 @@ Supplements: (libwayland-server and emacs-common) %define emacs_libexecdir %{_libexecdir}/emacs/%{version}/%{_host} %define native_lisp %{_libdir}/emacs/%{version}/native-lisp -%global desc %{expand:Emacs is a powerful, customizable, self-documenting, modeless text -editor. Emacs contains special code editing features, a scripting -language (elisp), and the capability to read mail, news, and more -without leaving the editor. +%global desc %{expand:GNU Emacs is a powerful, customizable, self-documenting, modeless text +editor. It contains special code editing features, a scripting language +(elisp), and the capability to read mail, news, and more without leaving +the editor. } @@ -155,7 +155,7 @@ Window System, using the Lucid toolkit. %package nw -Summary: GNU Emacs text editor without X support +Summary: GNU Emacs text editor with no window system support Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} @@ -165,8 +165,8 @@ Obsoletes: emacs-nox < 1:30 %description nw %desc -This package provides an emacs-nw binary with no graphical display -support, for running on a terminal. +This package provides an emacs-nw binary without graphical display +support, for running on a terminal only. %package -n emacsclient From f705000ea2318432048b3eb27d005284dc39059d Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sun, 23 Jun 2024 22:51:36 +0100 Subject: [PATCH 006/111] Update to version 29.4. --- .gitignore | 2 ++ emacs.spec | 2 +- sources | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 1d9aa7a..2721471 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,5 @@ /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 diff --git a/emacs.spec b/emacs.spec index d3e9250..3d3dcf0 100644 --- a/emacs.spec +++ b/emacs.spec @@ -7,7 +7,7 @@ Summary: GNU Emacs text editor Name: emacs Epoch: 1 -Version: 29.3 +Version: 29.4 Release: %autorelease License: GPL-3.0-or-later AND CC0-1.0 URL: https://www.gnu.org/software/emacs/ diff --git a/sources b/sources index a02f31c..e7ca0a5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (emacs-29.3.tar.xz) = efaecfc46a0b88f61de477d92c08ee592b8838e6c34724151a3b1502efa7ebd4d4837733c694807e6de1ba4b8d37d2ec382c6bb2ed000b67ad8f0e11c7df2a6b -SHA512 (emacs-29.3.tar.xz.sig) = 369cd1b2f39c57be4f343c950389a20d48f87f830b39183c8e0fbaf4f1929c5915ac82ceab5c4889dfa5ce95408857a06ff7ab877da346046a73e30d873c807c +SHA512 (emacs-29.4.tar.xz) = 66b38081cb01d2c46ff7beefb45986cc225b4c922c30712ad0d456c6cae5507176ed99418c8f26948c5375c8afde4e4b2507d23ed997dbb5392d12150a121d80 +SHA512 (emacs-29.4.tar.xz.sig) = 6c20269c260fb7f6d8b9b4582be25179a5adaaa1b9d94e68d55890f7b0b211dfd396c7005694b0154471ab3769f12e5067b8f4ec21720755d9087d89a8c722f6 From e3cc998c0e8d1b55a3403b555ccfbc3a75c5974c Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sun, 23 Jun 2024 23:26:40 +0100 Subject: [PATCH 007/111] Emacs 29.4 tarball is signed by Stefan Kangas, not Eli Zaretskii. --- emacs.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/emacs.spec b/emacs.spec index 3d3dcf0..6721803 100644 --- a/emacs.spec +++ b/emacs.spec @@ -13,8 +13,8 @@ License: GPL-3.0-or-later AND CC0-1.0 URL: https://www.gnu.org/software/emacs/ Source0: https://ftp.gnu.org/gnu/emacs/emacs-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/emacs/emacs-%{version}.tar.xz.sig -# Emacs 29+ sign key Source2: https://keys.openpgp.org/vks/v1/by-fingerprint/17E90D521672C04631B1183EE78DAE0F3115E06B +Source3: https://keys.openpgp.org/vks/v1/by-fingerprint/CEA1DE21AB108493CC9C65742E82323B8F4353EE Source4: dotemacs.el Source5: site-start.el Source6: default.el @@ -241,7 +241,9 @@ Development header files for Emacs. %prep -%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +cat '%{SOURCE2}' '%{SOURCE3}' > keyring +%{gpgverify} --keyring=keyring --signature='%{SOURCE1}' --data='%{SOURCE0}' +rm keyring %autosetup -p1 autoconf From dfc53dd6c8c225550739241e75a92df9952e768f Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sun, 23 Jun 2024 23:39:12 +0100 Subject: [PATCH 008/111] Remember to commit key. --- CEA1DE21AB108493CC9C65742E82323B8F4353EE | 337 +++++++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 CEA1DE21AB108493CC9C65742E82323B8F4353EE diff --git a/CEA1DE21AB108493CC9C65742E82323B8F4353EE b/CEA1DE21AB108493CC9C65742E82323B8F4353EE new file mode 100644 index 0000000..9007a2c --- /dev/null +++ b/CEA1DE21AB108493CC9C65742E82323B8F4353EE @@ -0,0 +1,337 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: CEA1 DE21 AB10 8493 CC9C 6574 2E82 323B 8F43 53EE +Comment: Stefan Kangas +Comment: Stefan Kangas +Comment: Stefan Kangas + +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 +ZOTZGRs= +=fO4L +-----END PGP PUBLIC KEY BLOCK----- From 5551df4c13f35ccf2cf5adb2bfb9bcf3d6c4ff1f Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 2 Jul 2024 23:56:24 +0100 Subject: [PATCH 009/111] Conflicts of emacsclient should reflect emacs-common in F40. --- emacs.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 6721803..daa5f55 100644 --- a/emacs.spec +++ b/emacs.spec @@ -171,7 +171,9 @@ support, for running on a terminal only. %package -n emacsclient Summary: Remotely control GNU Emacs -Conflicts: emacs-common < 1:29.3-9 + +# This is a moving target whilst Fedora 40 is still receivng updates: +Conflicts: emacs-common < %{epoch}:%{version}-%{release} %description -n emacsclient %desc From 9bbdcd530711835a98994e406dc0032e0ed021d1 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 3 Jul 2024 00:57:11 +0100 Subject: [PATCH 010/111] Add Missing Requires for emacs-desktop wrapper --- emacs.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/emacs.spec b/emacs.spec index daa5f55..28d7f38 100644 --- a/emacs.spec +++ b/emacs.spec @@ -188,6 +188,7 @@ Summary: Emacs common files License: GPL-3.0-or-later AND GFDL-1.3-no-invariants-or-later AND BSD-3-Clause Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives +Requires: /usr/bin/readlink Requires: %{name}-filesystem Requires: emacsclient Requires: libgccjit From 21c4c1004d2565c72707e52aeb121230ccff0a9e Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 3 Jul 2024 00:55:41 +0100 Subject: [PATCH 011/111] Reduce use of alternatives MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- emacs-desktop.sh | 9 ++++---- emacs.spec | 59 ++++++++++++++++++++++++++++-------------------- 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/emacs-desktop.sh b/emacs-desktop.sh index a94c100..30648ae 100755 --- a/emacs-desktop.sh +++ b/emacs-desktop.sh @@ -4,16 +4,15 @@ # using if there is an alternative. if [ "$XDG_SESSION_TYPE" = 'x11' ]; then - emacs="$(readlink -f /usr/bin/emacs)" - emacs="${emacs##*/}" - emacs="${emacs%-*.*}" - if [ "$emacs" = 'emacs' ]; 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 - fi + ;; + esac fi exec emacs "$@" diff --git a/emacs.spec b/emacs.spec index 28d7f38..a09ed12 100644 --- a/emacs.spec +++ b/emacs.spec @@ -413,16 +413,23 @@ touch %{buildroot}%{_bindir}/emacs gunzip %{buildroot}%{_datadir}/emacs/%{version}/lisp/jka-compr.el.gz gunzip %{buildroot}%{_datadir}/emacs/%{version}/lisp/jka-cmpr-hook.el.gz -# Install the emacs with GTK toolkit +# Install the emacs binary with pure GTK toolkit +mv %{buildroot}%{_bindir}/emacs-%{version} %{buildroot}%{_bindir}/emacs-%{version}-pgtk +ln -s emacs-%{version}-pgtk %{buildroot}%{_bindir}/emacs-pgtk + +# Install the emacs binary using mixed GTK and X11 install -p -m 0755 build-gtk+x11/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-gtk+x11 +ln -s emacs-%{version}-gtk+x11 %{buildroot}%{_bindir}/emacs-gtk+x11 # Install the emacs with Lucid toolkit install -p -m 0755 build-lucid/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-lucid +ln -s emacs-%{version}-lucid %{buildroot}%{_bindir}/emacs-lucid # Install the emacs without graphical display install -p -m 0755 build-nw/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-nw ln -s emacs-%{version}-nw %{buildroot}%{_bindir}/emacs-%{version}-nox -ln -s emacs-nw %{buildroot}%{_bindir}/emacs-nox +ln -s emacs-%{version}-nw %{buildroot}%{_bindir}/emacs-nox +ln -s emacs-%{version}-nw %{buildroot}%{_bindir}/emacs-nw # Make sure movemail isn't setgid chmod 755 %{buildroot}%{emacs_libexecdir}/movemail @@ -567,63 +574,67 @@ appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/*.metainfo.xm desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop %preun -/usr/sbin/alternatives --remove emacs %{_bindir}/emacs-%{version} || : +if [ $1 = 0 ]; then + /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-pgtk || : +fi %posttrans -/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-%{version} 80 || : +/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-pgtk 80 || : %preun lucid -/usr/sbin/alternatives --remove emacs %{_bindir}/emacs-%{version}-lucid || : -/usr/sbin/alternatives --remove emacs-lucid %{_bindir}/emacs-%{version}-lucid || : +if [ $1 = 0 ]; then + /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-lucid || : +fi %posttrans lucid -/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-%{version}-lucid 70 || : -/usr/sbin/alternatives --install %{_bindir}/emacs-lucid emacs-lucid %{_bindir}/emacs-%{version}-lucid 60 || : +/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-lucid 70 || : %preun gtk+x11 -/usr/sbin/alternatives --remove emacs %{_bindir}/emacs-%{version}-gtk+x11 || : -/usr/sbin/alternatives --remove emacs-gtk+x11 %{_bindir}/emacs-%{version}-gtk+x11 || : +if [ $1 = 0 ]; then + /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-gtk+x11 || : +fi %posttrans gtk+x11 -/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-%{version}-gtk+x11 75 || : -/usr/sbin/alternatives --install %{_bindir}/emacs-gtk+x11 emacs-gtk+x11 %{_bindir}/emacs-%{version}-gtk+x11 60 || : +/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-gtk+x11 75 || : %preun nw -/usr/sbin/alternatives --remove emacs %{_bindir}/emacs-%{version}-nw || : -/usr/sbin/alternatives --remove emacs-nw %{_bindir}/emacs-%{version}-nw || : +if [ $1 = 0 ]; then + /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-nw || : +fi %posttrans nw -/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-%{version}-nw 70 || : -/usr/sbin/alternatives --install %{_bindir}/emacs-nw emacs-nw %{_bindir}/emacs-%{version}-nw 60 || : +/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-nw 70 || : %preun common -/usr/sbin/alternatives --remove emacs.etags %{_bindir}/etags.emacs || : +if [ $1 = 0 ]; then + /usr/sbin/alternatives --remove emacs.etags %{_bindir}/etags.emacs || : +fi %posttrans common /usr/sbin/alternatives --install %{_bindir}/etags emacs.etags %{_bindir}/etags.emacs 80 \ --slave %{_mandir}/man1/etags.1.gz emacs.etags.man %{_mandir}/man1/etags.emacs.1.gz || : %files -f pgtk-eln-filelist -f pgtk-dirs -%{_bindir}/emacs-%{version} +%{_bindir}/emacs-%{version}-pgtk %attr(0755,-,-) %ghost %{_bindir}/emacs %{_datadir}/glib-2.0/schemas/org.gnu.emacs.defaults.gschema.xml %files gtk+x11 -f gtk+x11-eln-filelist -f gtk+x11-dirs -%{_bindir}/emacs-%{version}-gtk+x11 %attr(0755,-,-) %ghost %{_bindir}/emacs -%attr(0755,-,-) %ghost %{_bindir}/emacs-gtk+x11 +%{_bindir}/emacs-%{version}-gtk+x11 +%{_bindir}/emacs-gtk+x11 %files lucid -f lucid-eln-filelist -f lucid-dirs -%{_bindir}/emacs-%{version}-lucid %attr(0755,-,-) %ghost %{_bindir}/emacs -%attr(0755,-,-) %ghost %{_bindir}/emacs-lucid +%{_bindir}/emacs-%{version}-lucid +%{_bindir}/emacs-lucid %files nw -f nw-eln-filelist -f nw-dirs +%attr(0755,-,-) %ghost %{_bindir}/emacs %{_bindir}/emacs-%{version}-nox %{_bindir}/emacs-%{version}-nw %{_bindir}/emacs-nox -%attr(0755,-,-) %ghost %{_bindir}/emacs -%attr(0755,-,-) %ghost %{_bindir}/emacs-nw +%{_bindir}/emacs-nw %files -n emacsclient %license etc/COPYING From 54190f15c1b77ae76c90a16be715307a00cb8dd7 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 8 Jul 2024 15:23:10 +0100 Subject: [PATCH 012/111] Add missing symlink to package. --- emacs.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index a09ed12..93b9e8c 100644 --- a/emacs.spec +++ b/emacs.spec @@ -615,8 +615,9 @@ fi --slave %{_mandir}/man1/etags.1.gz emacs.etags.man %{_mandir}/man1/etags.emacs.1.gz || : %files -f pgtk-eln-filelist -f pgtk-dirs -%{_bindir}/emacs-%{version}-pgtk %attr(0755,-,-) %ghost %{_bindir}/emacs +%{_bindir}/emacs-%{version}-pgtk +%{_bindir}/emacs-pgtk %{_datadir}/glib-2.0/schemas/org.gnu.emacs.defaults.gschema.xml %files gtk+x11 -f gtk+x11-eln-filelist -f gtk+x11-dirs From d3db50bc9991e35ea9ac389b70841b226cb42466 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sun, 7 Jul 2024 00:35:02 +0100 Subject: [PATCH 013/111] Run tests. --- 0001-Fix-flymake-tests-with-GCC-14.patch | 28 ++++++++++++++++++ ...s-multiple-threads-waiting-unstable-.patch | 29 +++++++++++++++++++ emacs.spec | 26 +++++++++++++++-- 3 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 0001-Fix-flymake-tests-with-GCC-14.patch create mode 100644 0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch diff --git a/0001-Fix-flymake-tests-with-GCC-14.patch b/0001-Fix-flymake-tests-with-GCC-14.patch new file mode 100644 index 0000000..484561d --- /dev/null +++ b/0001-Fix-flymake-tests-with-GCC-14.patch @@ -0,0 +1,28 @@ +From a769f171e7ebb8e30f198f4328d46f47fe7958fb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ulrich=20M=C3=BCller?= +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 + diff --git a/0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch b/0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch new file mode 100644 index 0000000..5bddc6b --- /dev/null +++ b/0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch @@ -0,0 +1,29 @@ +From d3a62e79847f00855eac69477fa3cd78014106c4 Mon Sep 17 00:00:00 2001 +From: Peter Oliver +Date: Mon, 8 Jul 2024 14:26:26 +0100 +Subject: [PATCH] Tag process-tests/multiple-threads-waiting :unstable in RPM + %check + +* test/src/process-tests.el (process-tests/multiple-threads-waiting): +Tag it as :unstable when building an RPM package. +--- + test/src/process-tests.el | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/src/process-tests.el b/test/src/process-tests.el +index 15d46cbae15..ceeaa9f1554 100644 +--- a/test/src/process-tests.el ++++ b/test/src/process-tests.el +@@ -895,7 +895,8 @@ process-tests/sentinel-with-multiple-processes + (list (list process "finished\n")))))))))) + + (ert-deftest process-tests/multiple-threads-waiting () +- :tags (if (getenv "EMACS_EMBA_CI") '(:unstable)) ++ :tags (if (or (getenv "EMACS_EMBA_CI") (getenv "RPM_BUILD_ROOT")) ++ '(:unstable)) + (skip-unless (fboundp 'make-thread)) + (with-timeout (60 (ert-fail "Test timed out")) + (process-tests--with-processes processes +-- +2.45.2 + diff --git a/emacs.spec b/emacs.spec index 93b9e8c..0a8a129 100644 --- a/emacs.spec +++ b/emacs.spec @@ -32,6 +32,10 @@ Patch3: emacs-libdir-vs-systemd.patch Patch4: emacs-desktop.patch Patch5: emacs-pgtk-on-x-error-message.patch +# Skip failing tests: +Patch: 0001-Fix-flymake-tests-with-GCC-14.patch +Patch: 0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch + BuildRequires: gcc BuildRequires: atk-devel BuildRequires: cairo-devel @@ -251,14 +255,14 @@ rm keyring autoconf +# Avoid trademark issues grep -v "tetris.elc" lisp/Makefile.in > lisp/Makefile.in.new \ && mv lisp/Makefile.in.new lisp/Makefile.in grep -v "pong.elc" lisp/Makefile.in > lisp/Makefile.in.new \ && mv lisp/Makefile.in.new lisp/Makefile.in - -# Avoid trademark issues rm -f lisp/play/tetris.el lisp/play/tetris.elc rm -f lisp/play/pong.el lisp/play/pong.elc +sed -i "s/'tetris/'doctor/" test/src/doc-tests.el %ifarch %{ix86} %define setarch setarch %{_arch} -R @@ -569,10 +573,28 @@ find %{buildroot}%{_libdir}/ -name '*eln' -type f | xargs chmod -x # see: https://bugzilla.redhat.com/show_bug.cgi?id=2157979#c11 find %{buildroot}%{_libdir}/ -name '*eln' -type f | xargs touch + %check +cd build-pgtk +%make_build check +cd .. + +cd build-gtk+x11 +%make_build check +cd .. + +cd build-lucid +%make_build check +cd .. + +cd build-nw +%make_build check +cd .. + appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/*.metainfo.xml desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop + %preun if [ $1 = 0 ]; then /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-pgtk || : From bce17310e3070ee8c4145bc2de31b405ae078cba Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 8 Jul 2024 13:30:24 +0100 Subject: [PATCH 014/111] Conditionalise build of alternative binaries With this, builds can be significantly speeded up by, e.g., ``` fedpkg mockbuild --without=nw --without=lucid --without=gtkx11 ``` --- emacs.spec | 194 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 126 insertions(+), 68 deletions(-) diff --git a/emacs.spec b/emacs.spec index 0a8a129..3155fbd 100644 --- a/emacs.spec +++ b/emacs.spec @@ -3,6 +3,10 @@ %bcond gpm %[!(0%{?rhel} >= 10)] %bcond webkit %[!(0%{?rhel} >= 10)] +%bcond_without gtkx11 +%bcond_without lucid +%bcond_without nw + # This file is encoded in UTF-8. -*- coding: utf-8 -*- Summary: GNU Emacs text editor Name: emacs @@ -36,63 +40,68 @@ Patch5: emacs-pgtk-on-x-error-message.patch Patch: 0001-Fix-flymake-tests-with-GCC-14.patch Patch: 0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch -BuildRequires: gcc -BuildRequires: atk-devel -BuildRequires: cairo-devel -BuildRequires: freetype-devel -BuildRequires: fontconfig-devel -BuildRequires: dbus-devel -BuildRequires: giflib-devel -BuildRequires: glibc-devel -BuildRequires: libpng-devel -BuildRequires: libjpeg-turbo-devel -BuildRequires: libjpeg-turbo -BuildRequires: libtiff-devel -BuildRequires: libX11-devel -BuildRequires: libXau-devel -BuildRequires: libXdmcp-devel -BuildRequires: libXi-devel -BuildRequires: libXrender-devel -BuildRequires: libXt-devel -BuildRequires: libXpm-devel -BuildRequires: ncurses-devel -BuildRequires: xorg-x11-proto-devel -BuildRequires: zlib-devel -BuildRequires: gnutls-devel -BuildRequires: librsvg2-devel -BuildRequires: m17n-lib-devel -BuildRequires: libotf-devel -BuildRequires: libselinux-devel BuildRequires: alsa-lib-devel -%if %{with gpm} -BuildRequires: gpm-devel -%endif -BuildRequires: libxml2-devel +BuildRequires: atk-devel BuildRequires: autoconf BuildRequires: bzip2 BuildRequires: cairo -BuildRequires: texinfo -BuildRequires: gzip +BuildRequires: cairo-devel +BuildRequires: dbus-devel BuildRequires: desktop-file-utils -BuildRequires: libappstream-glib -BuildRequires: libacl-devel +BuildRequires: fontconfig-devel +BuildRequires: freetype-devel +BuildRequires: gcc +BuildRequires: giflib-devel +BuildRequires: glibc-devel +BuildRequires: gnupg2 +BuildRequires: gnutls-devel +BuildRequires: gtk3-devel +BuildRequires: gzip BuildRequires: harfbuzz-devel BuildRequires: jansson-devel -BuildRequires: systemd-devel +BuildRequires: libacl-devel +BuildRequires: libappstream-glib BuildRequires: libgccjit-devel +BuildRequires: libjpeg-turbo +BuildRequires: libjpeg-turbo-devel +BuildRequires: libotf-devel +BuildRequires: libpng-devel +BuildRequires: librsvg2-devel +BuildRequires: libselinux-devel +BuildRequires: libtiff-devel BuildRequires: libtree-sitter-devel -BuildRequires: sqlite-devel BuildRequires: libwebp-devel +BuildRequires: libxml2-devel +BuildRequires: m17n-lib-devel +BuildRequires: make +BuildRequires: ncurses-devel +BuildRequires: sqlite-devel +BuildRequires: systemd-devel +BuildRequires: texinfo +BuildRequires: zlib-devel + +%if %{with gpm} +BuildRequires: gpm-devel +%endif -BuildRequires: gtk3-devel %if %{with webkit} BuildRequires: webkit2gtk4.1-devel %endif -BuildRequires: gnupg2 +%if %{with lucid} || %{with gtkx11} +BuildRequires: libX11-devel +BuildRequires: libXau-devel +BuildRequires: libXdmcp-devel +BuildRequires: libXi-devel +BuildRequires: libXpm-devel +BuildRequires: libXrender-devel +BuildRequires: libXt-devel +BuildRequires: xorg-x11-proto-devel +%endif -# For lucid +%if %{with lucid} BuildRequires: Xaw3d-devel +%endif # for Patch3 BuildRequires: pkgconfig(systemd) @@ -100,10 +109,10 @@ BuildRequires: pkgconfig(systemd) %ifarch %{ix86} BuildRequires: util-linux %endif -BuildRequires: make # Emacs doesn't run without a font, rhbz#732422 Requires: google-noto-sans-mono-vf-fonts + Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} @@ -129,6 +138,7 @@ This package provides an emacs binary with support for Wayland, using the GTK toolkit. +%if %{with gtkx11} %package gtk+x11 Summary: GNU Emacs text editor with GTK toolkit X support Requires: libgccjit @@ -142,8 +152,10 @@ Supplements: (xorg-x11-server-Xorg and emacs-common) %desc This package provides an emacs-gtk+x11 binary with support for the X Window System, using the GTK toolkit. +%endif +%if %{with lucid} %package lucid Summary: GNU Emacs text editor with Lucid toolkit X support Requires: google-noto-sans-mono-vf-fonts @@ -156,8 +168,10 @@ Provides: emacs(bin) = %{epoch}:%{version}-%{release} %desc This package provides an emacs-lucid binary with support for the X Window System, using the Lucid toolkit. +%endif +%if %{with nw} %package nw Summary: GNU Emacs text editor with no window system support Requires(preun): /usr/sbin/alternatives @@ -171,6 +185,7 @@ Obsoletes: emacs-nox < 1:30 %desc This package provides an emacs-nw binary without graphical display support, for running on a terminal only. +%endif %package -n emacsclient @@ -279,6 +294,7 @@ ln -s ../../%{name}/%{version}/etc/NEWS doc export CFLAGS="-DMAIL_USE_LOCKF %{build_cflags}" %set_build_flags +%if %{with lucid} # Build Lucid binary mkdir build-lucid && cd build-lucid ln -s ../configure . @@ -306,8 +322,11 @@ LDFLAGS=-Wl,-z,relro; export LDFLAGS; --with-xpm %{setarch} %make_build bootstrap %{setarch} %make_build +rm src/emacs-%{version}.* cd .. +%endif +%if %{with nw} # Build binary without X support mkdir build-nw && cd build-nw ln -s ../configure . @@ -322,8 +341,11 @@ ln -s ../configure . --with-x=no %{setarch} %make_build bootstrap %{setarch} %make_build +rm src/emacs-%{version}.* cd .. +%endif +%if %{with gtkx11} # Build GTK/X11 binary mkdir build-gtk+x11 && cd build-gtk+x11 ln -s ../configure . @@ -351,7 +373,9 @@ LDFLAGS=-Wl,-z,relro; export LDFLAGS; %{?with_webkit:--with-xwidgets} %{setarch} %make_build bootstrap %{setarch} %make_build +rm src/emacs-%{version}.* cd .. +%endif # Build pure GTK binary mkdir build-pgtk && cd build-pgtk @@ -379,11 +403,10 @@ LDFLAGS=-Wl,-z,relro; export LDFLAGS; %{?with_webkit:--with-xwidgets} %{setarch} %make_build bootstrap %{setarch} %make_build +ls -l src/emacs-%{version}.* +rm src/emacs-%{version}.* cd .. -# Remove versioned file so that we end up with .1 suffix and only one DOC file -rm build-{gtk+x11,lucid,nw,pgtk}/src/emacs-%{version}.* - # Create pkgconfig file cat > emacs.pc << EOF sitepkglispdir=%{site_lisp} @@ -404,6 +427,7 @@ cat > macros.emacs << EOF %%_emacs_bytecompile(W) /usr/bin/emacs -batch --no-init-file --no-site-file --eval '(push nil load-path)' %%{-W:--eval '(setq byte-compile-error-on-warn t)' }-f batch-byte-compile %%* EOF + %install cd build-pgtk %make_install @@ -421,19 +445,25 @@ gunzip %{buildroot}%{_datadir}/emacs/%{version}/lisp/jka-cmpr-hook.el.gz mv %{buildroot}%{_bindir}/emacs-%{version} %{buildroot}%{_bindir}/emacs-%{version}-pgtk ln -s emacs-%{version}-pgtk %{buildroot}%{_bindir}/emacs-pgtk +%if %{with gtkx11} # Install the emacs binary using mixed GTK and X11 install -p -m 0755 build-gtk+x11/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-gtk+x11 ln -s emacs-%{version}-gtk+x11 %{buildroot}%{_bindir}/emacs-gtk+x11 +%endif +%if %{with lucid} # Install the emacs with Lucid toolkit install -p -m 0755 build-lucid/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-lucid ln -s emacs-%{version}-lucid %{buildroot}%{_bindir}/emacs-lucid +%endif +%if %{with nw} # Install the emacs without graphical display install -p -m 0755 build-nw/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-nw ln -s emacs-%{version}-nw %{buildroot}%{_bindir}/emacs-%{version}-nox ln -s emacs-%{version}-nw %{buildroot}%{_bindir}/emacs-nox ln -s emacs-%{version}-nw %{buildroot}%{_bindir}/emacs-nw +%endif # Make sure movemail isn't setgid chmod 755 %{buildroot}%{emacs_libexecdir}/movemail @@ -518,49 +548,57 @@ grep -vhE '%{site_lisp}(|/(default\.el|site-start\.d|site-start\.el))$' {common, # Remove old icon rm %{buildroot}%{_datadir}/icons/hicolor/scalable/mimetypes/emacs-document23.svg -# Install all the pdmp with fingerprints +# Install the pdmp with fingerprints pgtk_pdmp="emacs-$(./build-pgtk/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" install -p -m 0644 build-pgtk/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${pgtk_pdmp} -gtkx11_pdmp="emacs-$(./build-gtk+x11/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" -install -p -m 0644 build-gtk+x11/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${gtkx11_pdmp} - -lucid_pdmp="emacs-$(./build-lucid/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" -install -p -m 0644 build-lucid/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${lucid_pdmp} - -nw_pdmp="emacs-$(./build-nw/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" -install -p -m 0644 build-nw/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${nw_pdmp} - # Install native compiled Lisp of all builds pgtk_comp_native_ver=$(ls -1 build-pgtk/native-lisp) -gtkx11_comp_native_ver=$(ls -1 build-gtk+x11/native-lisp) -lucid_comp_native_ver=$(ls -1 build-lucid/native-lisp) -nw_comp_native_ver=$(ls -1 build-nw/native-lisp) cp -ar build-pgtk/native-lisp/${pgtk_comp_native_ver} %{buildroot}%{native_lisp} -cp -ar build-gtk+x11/native-lisp/${gtkx11_comp_native_ver} %{buildroot}%{native_lisp} -cp -ar build-lucid/native-lisp/${lucid_comp_native_ver} %{buildroot}%{native_lisp} -cp -ar build-nw/native-lisp/${nw_comp_native_ver} %{buildroot}%{native_lisp} - -(TOPDIR=${PWD} - cd %{buildroot} - find .%{native_lisp}/${gtkx11_comp_native_ver} \( -type f -name '*eln' -fprintf $TOPDIR/gtk+x11-eln-filelist "%%%%attr(755,-,-) %%p\n" \) -o \( -type d -fprintf $TOPDIR/gtk+x11-dirs "%%%%dir %%p\n" \) -) (TOPDIR=${PWD} cd %{buildroot} find .%{native_lisp}/${pgtk_comp_native_ver} \( -type f -name '*eln' -fprintf $TOPDIR/pgtk-eln-filelist "%%%%attr(755,-,-) %%p\n" \) -o \( -type d -fprintf $TOPDIR/pgtk-dirs "%%%%dir %%p\n" \) ) +echo %{emacs_libexecdir}/${pgtk_pdmp} >> pgtk-eln-filelist + +%if %{with gtkx11} +gtkx11_pdmp="emacs-$(./build-gtk+x11/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" +install -p -m 0644 build-gtk+x11/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${gtkx11_pdmp} + +gtkx11_comp_native_ver=$(ls -1 build-gtk+x11/native-lisp) +cp -ar build-gtk+x11/native-lisp/${gtkx11_comp_native_ver} %{buildroot}%{native_lisp} +(TOPDIR=${PWD} + cd %{buildroot} + find .%{native_lisp}/${gtkx11_comp_native_ver} \( -type f -name '*eln' -fprintf $TOPDIR/gtk+x11-eln-filelist "%%%%attr(755,-,-) %%p\n" \) -o \( -type d -fprintf $TOPDIR/gtk+x11-dirs "%%%%dir %%p\n" \) +) +echo %{emacs_libexecdir}/${gtkx11_pdmp} >> gtk+x11-eln-filelist +%endif + +%if %{with lucid} +lucid_pdmp="emacs-$(./build-lucid/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" +install -p -m 0644 build-lucid/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${lucid_pdmp} + +lucid_comp_native_ver=$(ls -1 build-lucid/native-lisp) +cp -ar build-lucid/native-lisp/${lucid_comp_native_ver} %{buildroot}%{native_lisp} (TOPDIR=${PWD} cd %{buildroot} find .%{native_lisp}/${lucid_comp_native_ver} \( -type f -name '*eln' -fprintf $TOPDIR/lucid-eln-filelist "%%%%attr(755,-,-) %%p\n" \) -o \( -type d -fprintf $TOPDIR/lucid-dirs "%%%%dir %%p\n" \) ) +echo %{emacs_libexecdir}/${lucid_pdmp} >> lucid-eln-filelist +%endif + +%if %{with nw} +nw_pdmp="emacs-$(./build-nw/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" +install -p -m 0644 build-nw/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${nw_pdmp} + +nw_comp_native_ver=$(ls -1 build-nw/native-lisp) +cp -ar build-nw/native-lisp/${nw_comp_native_ver} %{buildroot}%{native_lisp} (TOPDIR=${PWD} cd %{buildroot} find .%{native_lisp}/${nw_comp_native_ver} \( -type f -name '*eln' -fprintf $TOPDIR/nw-eln-filelist "%%%%attr(755,-,-) %%p\n" \) -o \( -type d -fprintf $TOPDIR/nw-dirs "%%%%dir %%p\n" \) ) -echo %{emacs_libexecdir}/${pgtk_pdmp} >> pgtk-eln-filelist -echo %{emacs_libexecdir}/${gtkx11_pdmp} >> gtk+x11-eln-filelist -echo %{emacs_libexecdir}/${lucid_pdmp} >> lucid-eln-filelist echo %{emacs_libexecdir}/${nw_pdmp} >> nw-eln-filelist +%endif # remove leading . from filelists sed -i -e "s|\.%{native_lisp}|%{native_lisp}|" *-eln-filelist *-dirs @@ -579,17 +617,23 @@ cd build-pgtk %make_build check cd .. +%if %{with gtkx11} cd build-gtk+x11 %make_build check cd .. +%endif +%if %{with lucid} cd build-lucid %make_build check cd .. +%endif +%if %{with nw} cd build-nw %make_build check cd .. +%endif appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/*.metainfo.xml desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop @@ -603,6 +647,7 @@ fi %posttrans /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-pgtk 80 || : +%if %{with lucid} %preun lucid if [ $1 = 0 ]; then /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-lucid || : @@ -610,7 +655,9 @@ fi %posttrans lucid /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-lucid 70 || : +%endif +%if %{with gtkx11} %preun gtk+x11 if [ $1 = 0 ]; then /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-gtk+x11 || : @@ -618,7 +665,9 @@ fi %posttrans gtk+x11 /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-gtk+x11 75 || : +%endif +%if %{with nw} %preun nw if [ $1 = 0 ]; then /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-nw || : @@ -626,6 +675,7 @@ fi %posttrans nw /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-nw 70 || : +%endif %preun common if [ $1 = 0 ]; then @@ -636,28 +686,35 @@ fi /usr/sbin/alternatives --install %{_bindir}/etags emacs.etags %{_bindir}/etags.emacs 80 \ --slave %{_mandir}/man1/etags.1.gz emacs.etags.man %{_mandir}/man1/etags.emacs.1.gz || : + %files -f pgtk-eln-filelist -f pgtk-dirs %attr(0755,-,-) %ghost %{_bindir}/emacs %{_bindir}/emacs-%{version}-pgtk %{_bindir}/emacs-pgtk %{_datadir}/glib-2.0/schemas/org.gnu.emacs.defaults.gschema.xml +%if %{with gtkx11} %files gtk+x11 -f gtk+x11-eln-filelist -f gtk+x11-dirs %attr(0755,-,-) %ghost %{_bindir}/emacs %{_bindir}/emacs-%{version}-gtk+x11 %{_bindir}/emacs-gtk+x11 +%endif +%if %{with lucid} %files lucid -f lucid-eln-filelist -f lucid-dirs %attr(0755,-,-) %ghost %{_bindir}/emacs %{_bindir}/emacs-%{version}-lucid %{_bindir}/emacs-lucid +%endif +%if %{with nw} %files nw -f nw-eln-filelist -f nw-dirs %attr(0755,-,-) %ghost %{_bindir}/emacs %{_bindir}/emacs-%{version}-nox %{_bindir}/emacs-%{version}-nw %{_bindir}/emacs-nox %{_bindir}/emacs-nw +%endif %files -n emacsclient %license etc/COPYING @@ -703,5 +760,6 @@ fi %files devel %{_includedir}/emacs-module.h + %changelog %autochangelog From 7157b76d426e9983281aef574b41e81172f07569 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 10 Jul 2024 23:57:21 +0100 Subject: [PATCH 015/111] Fix another failing test. --- 0001-Fix-failing-help-fns-test.patch | 30 ++++++++++++++++++++++++++++ emacs.spec | 5 ++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 0001-Fix-failing-help-fns-test.patch diff --git a/0001-Fix-failing-help-fns-test.patch b/0001-Fix-failing-help-fns-test.patch new file mode 100644 index 0000000..c24d7f5 --- /dev/null +++ b/0001-Fix-failing-help-fns-test.patch @@ -0,0 +1,30 @@ +From 75ca15f2a3146b17fde5e2a50ad9102c6108ba7f Mon Sep 17 00:00:00 2001 +From: Stefan Kangas +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 + diff --git a/emacs.spec b/emacs.spec index 3155fbd..b2138a1 100644 --- a/emacs.spec +++ b/emacs.spec @@ -36,8 +36,11 @@ Patch3: emacs-libdir-vs-systemd.patch Patch4: emacs-desktop.patch Patch5: emacs-pgtk-on-x-error-message.patch -# Skip failing tests: +# Skip failing tests (patches taken from Emacs Git) +Patch: 0001-Fix-failing-help-fns-test.patch Patch: 0001-Fix-flymake-tests-with-GCC-14.patch + +# Skip failing test (need to work out why this fails when building an RPM) Patch: 0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch BuildRequires: alsa-lib-devel From 5e02a413da5dee83bdcee0e30b21e059c39e186f Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 9 Jul 2024 23:25:10 +0100 Subject: [PATCH 016/111] Own unowned directories. --- emacs.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index b2138a1..5c3e9ef 100644 --- a/emacs.spec +++ b/emacs.spec @@ -747,7 +747,12 @@ fi %dir %{_datadir}/emacs/%{version} %{_datadir}/emacs/%{version}/etc %{_datadir}/emacs/%{version}/site-lisp -%dir %{emacs_libexecdir}/ +%dir %{_libdir}/%{name} +%dir %{_libdir}/%{name}/%{version} +%dir %{native_lisp} +%dir %{_libexecdir}/emacs +%dir %{_libexecdir}/emacs/%{version} +%dir %{emacs_libexecdir} %{emacs_libexecdir}/movemail %{emacs_libexecdir}/hexl %{emacs_libexecdir}/rcs2log From dec43481282a0be8728be1e09e22ecee8cbf0206 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 9 Jul 2024 23:29:58 +0100 Subject: [PATCH 017/111] Gitignore more temporary packaging-related files. --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2721471..71d5258 100644 --- a/.gitignore +++ b/.gitignore @@ -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 @@ -39,3 +40,5 @@ /emacs-29.3.tar.xz.sig /emacs-29.4.tar.xz /emacs-29.4.tar.xz.sig +/php-mode.el +/results_emacs/ From df9b81401836c1fe2d57a5202a5e637853253fb3 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 10 Jul 2024 14:14:13 +0100 Subject: [PATCH 018/111] =?UTF-8?q?Don=E2=80=99t=20pacakge=20duplicate=20d?= =?UTF-8?q?esktop-related=20files.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emacs.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 5c3e9ef..0203031 100644 --- a/emacs.spec +++ b/emacs.spec @@ -515,7 +515,9 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications \ install -p -m 0755 %SOURCE9 %{buildroot}%{_bindir}/emacs-desktop # Remove duplicate desktop-related files -rm %{buildroot}%{_datadir}/%{name}/%{version}/etc/%{name}.{desktop,service} +rm %{buildroot}%{_datadir}/%{name}/%{version}/etc/%{name}.{desktop,metainfo.xml,service} \ + %{buildroot}%{_datadir}/%{name}/%{version}/etc/%{name}-mail.desktop \ + %{buildroot}%{_datadir}/%{name}/%{version}/etc/org.gnu.emacs.defaults.gschema.xml # We don't ship the client variants yet # https://src.fedoraproject.org/rpms/emacs/pull-request/12 From c7d90c2305394a9590154b7aa163fce55259bd7a Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 11 Jul 2024 00:20:42 +0100 Subject: [PATCH 019/111] =?UTF-8?q?Don=E2=80=99t=20explicitly=20specify=20?= =?UTF-8?q?a=20hardened=20build,=20since=20that=E2=80=99s=20now=20default.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emacs.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/emacs.spec b/emacs.spec index 0203031..f4a5b83 100644 --- a/emacs.spec +++ b/emacs.spec @@ -1,5 +1,3 @@ -%global _hardened_build 1 - %bcond gpm %[!(0%{?rhel} >= 10)] %bcond webkit %[!(0%{?rhel} >= 10)] From 6ee9fc3c3b904c4cd5eb7bed71d70a8fad6c6f04 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 11 Jul 2024 00:23:44 +0100 Subject: [PATCH 020/111] Patches no-longer require numbering. --- emacs.spec | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/emacs.spec b/emacs.spec index f4a5b83..015aebb 100644 --- a/emacs.spec +++ b/emacs.spec @@ -24,15 +24,19 @@ Source6: default.el Source7: emacs-terminal.desktop Source8: emacs-terminal.sh Source9: emacs-desktop.sh + # rhbz#713600 -Patch1: emacs-spellchecker.patch -Patch2: emacs-system-crypto-policies.patch +Patch: emacs-spellchecker.patch + +Patch: emacs-system-crypto-policies.patch + # causes a dependency on pkgconfig(systemd) # => remove it if we stop using this patch -Patch3: emacs-libdir-vs-systemd.patch +Patch: emacs-libdir-vs-systemd.patch + # Avoid using the pure GTK build on X11 where it is unsupported: -Patch4: emacs-desktop.patch -Patch5: emacs-pgtk-on-x-error-message.patch +Patch: emacs-desktop.patch +Patch: emacs-pgtk-on-x-error-message.patch # Skip failing tests (patches taken from Emacs Git) Patch: 0001-Fix-failing-help-fns-test.patch From 2860413ce224108dfaa5731dd946a7241a829227 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 11 Jul 2024 00:25:11 +0100 Subject: [PATCH 021/111] =?UTF-8?q?Emacs=E2=80=99=20-*-=20line=20has=20to?= =?UTF-8?q?=20come=20first.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emacs.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 015aebb..072daa0 100644 --- a/emacs.spec +++ b/emacs.spec @@ -1,3 +1,5 @@ +# This file is encoded in UTF-8. -*- coding: utf-8 -*- + %bcond gpm %[!(0%{?rhel} >= 10)] %bcond webkit %[!(0%{?rhel} >= 10)] @@ -5,7 +7,6 @@ %bcond_without lucid %bcond_without nw -# This file is encoded in UTF-8. -*- coding: utf-8 -*- Summary: GNU Emacs text editor Name: emacs Epoch: 1 From df45480b916f387660d3986237f0f068f154f842 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 11 Jul 2024 17:49:33 +0100 Subject: [PATCH 022/111] Skip tests that are unstable when run on GNU EMBA Some of these tests are unreliable for us, too. --- ...s-multiple-threads-waiting-unstable-.patch | 29 ------------------- emacs.spec | 7 +++-- 2 files changed, 4 insertions(+), 32 deletions(-) delete mode 100644 0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch diff --git a/0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch b/0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch deleted file mode 100644 index 5bddc6b..0000000 --- a/0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch +++ /dev/null @@ -1,29 +0,0 @@ -From d3a62e79847f00855eac69477fa3cd78014106c4 Mon Sep 17 00:00:00 2001 -From: Peter Oliver -Date: Mon, 8 Jul 2024 14:26:26 +0100 -Subject: [PATCH] Tag process-tests/multiple-threads-waiting :unstable in RPM - %check - -* test/src/process-tests.el (process-tests/multiple-threads-waiting): -Tag it as :unstable when building an RPM package. ---- - test/src/process-tests.el | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/test/src/process-tests.el b/test/src/process-tests.el -index 15d46cbae15..ceeaa9f1554 100644 ---- a/test/src/process-tests.el -+++ b/test/src/process-tests.el -@@ -895,7 +895,8 @@ process-tests/sentinel-with-multiple-processes - (list (list process "finished\n")))))))))) - - (ert-deftest process-tests/multiple-threads-waiting () -- :tags (if (getenv "EMACS_EMBA_CI") '(:unstable)) -+ :tags (if (or (getenv "EMACS_EMBA_CI") (getenv "RPM_BUILD_ROOT")) -+ '(:unstable)) - (skip-unless (fboundp 'make-thread)) - (with-timeout (60 (ert-fail "Test timed out")) - (process-tests--with-processes processes --- -2.45.2 - diff --git a/emacs.spec b/emacs.spec index 072daa0..d9ecfc8 100644 --- a/emacs.spec +++ b/emacs.spec @@ -43,9 +43,6 @@ Patch: emacs-pgtk-on-x-error-message.patch Patch: 0001-Fix-failing-help-fns-test.patch Patch: 0001-Fix-flymake-tests-with-GCC-14.patch -# Skip failing test (need to work out why this fails when building an RPM) -Patch: 0001-Tag-process-tests-multiple-threads-waiting-unstable-.patch - BuildRequires: alsa-lib-devel BuildRequires: atk-devel BuildRequires: autoconf @@ -621,6 +618,10 @@ find %{buildroot}%{_libdir}/ -name '*eln' -type f | xargs touch %check +# A number of tests that don't work on GNU EMBA are also unstable when +# run in Koji. +export EMACS_EMBA_CI=1 + cd build-pgtk %make_build check cd .. From ec525e1cea99bc8b25c4f309a8fae9f528b7a865 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 12 Jul 2024 00:06:36 +0100 Subject: [PATCH 023/111] Restore former alternatives symlinks, if they are missing Fixes #2297425. --- emacs.spec | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/emacs.spec b/emacs.spec index d9ecfc8..ce3a09e 100644 --- a/emacs.spec +++ b/emacs.spec @@ -664,6 +664,11 @@ fi %posttrans lucid /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-lucid 70 || : +# The preun scriptlet of packages before 29.4-5 will remove this symlink +# after it has been installed, so we may need to put it back: +if [ $1 = 2 && ! -h %{_bindir}/emacs-lucid ]; then + ln -s %emacs-%{version}-nw %{_bindir}/emacs-lucid +fi %endif %if %{with gtkx11} @@ -674,6 +679,11 @@ fi %posttrans gtk+x11 /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-gtk+x11 75 || : +# The preun scriptlet of packages before 29.4-5 will remove this symlink +# after it has been installed, so we may need to put it back: +if [ $1 = 2 && ! -h %{_bindir}/emacs-gtk+x11 ]; then + ln -s %emacs-%{version}-nw %{_bindir}/emacs-gtk+x11 +fi %endif %if %{with nw} @@ -684,6 +694,11 @@ fi %posttrans nw /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-nw 70 || : +# The preun scriptlet of packages before 29.4-5 will remove this symlink +# after it has been installed, so we may need to put it back: +if [ $1 = 2 && ! -h %{_bindir}/emacs-nw ]; then + ln -s %emacs-%{version}-nw %{_bindir}/emacs-nw +fi %endif %preun common From 9c1333df9d919619e0c0b59cfede8617984387a4 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 12 Jul 2024 10:30:05 +0100 Subject: [PATCH 024/111] Drop i686, which is currently failing to build. --- emacs.spec | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/emacs.spec b/emacs.spec index ce3a09e..839949b 100644 --- a/emacs.spec +++ b/emacs.spec @@ -43,6 +43,8 @@ Patch: emacs-pgtk-on-x-error-message.patch Patch: 0001-Fix-failing-help-fns-test.patch Patch: 0001-Fix-flymake-tests-with-GCC-14.patch +ExcludeArch: %{ix86} + BuildRequires: alsa-lib-devel BuildRequires: atk-devel BuildRequires: autoconf @@ -109,10 +111,6 @@ BuildRequires: Xaw3d-devel # for Patch3 BuildRequires: pkgconfig(systemd) -%ifarch %{ix86} -BuildRequires: util-linux -%endif - # Emacs doesn't run without a font, rhbz#732422 Requires: google-noto-sans-mono-vf-fonts @@ -282,12 +280,6 @@ rm -f lisp/play/tetris.el lisp/play/tetris.elc rm -f lisp/play/pong.el lisp/play/pong.elc sed -i "s/'tetris/'doctor/" test/src/doc-tests.el -%ifarch %{ix86} -%define setarch setarch %{_arch} -R -%else -%define setarch %{nil} -%endif - # Avoid duplicating doc files in the common subpackage ln -s ../../%{name}/%{version}/etc/COPYING doc ln -s ../../%{name}/%{version}/etc/NEWS doc @@ -323,8 +315,8 @@ LDFLAGS=-Wl,-z,relro; export LDFLAGS; --with-xft \ --with-xinput2 \ --with-xpm -%{setarch} %make_build bootstrap -%{setarch} %make_build +%make_build bootstrap +%make_build rm src/emacs-%{version}.* cd .. %endif @@ -342,8 +334,8 @@ ln -s ../configure . --with-gpm=no \ %endif --with-x=no -%{setarch} %make_build bootstrap -%{setarch} %make_build +%make_build bootstrap +%make_build rm src/emacs-%{version}.* cd .. %endif @@ -374,8 +366,8 @@ LDFLAGS=-Wl,-z,relro; export LDFLAGS; --with-xinput2 \ --with-xpm \ %{?with_webkit:--with-xwidgets} -%{setarch} %make_build bootstrap -%{setarch} %make_build +%make_build bootstrap +%make_build rm src/emacs-%{version}.* cd .. %endif @@ -404,9 +396,8 @@ LDFLAGS=-Wl,-z,relro; export LDFLAGS; --with-webp \ --with-xpm \ %{?with_webkit:--with-xwidgets} -%{setarch} %make_build bootstrap -%{setarch} %make_build -ls -l src/emacs-%{version}.* +%make_build bootstrap +%make_build rm src/emacs-%{version}.* cd .. From c68d79e36cb94a8854e0ab8e96fd6a91cf82d5b6 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 12 Jul 2024 11:05:50 +0100 Subject: [PATCH 025/111] Fix intermittently failing test wdired-test-unfinished-edit-01. --- ...unfinished-edit-01-when-temp-dirname.patch | 29 +++++++++++++++++++ emacs.spec | 3 ++ 2 files changed, 32 insertions(+) create mode 100644 0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch diff --git a/0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch b/0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch new file mode 100644 index 0000000..370d314 --- /dev/null +++ b/0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch @@ -0,0 +1,29 @@ +From 90734f5a3ba9998886e0b03382878a2fb514d015 Mon Sep 17 00:00:00 2001 +From: Peter Oliver +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 + diff --git a/emacs.spec b/emacs.spec index 839949b..01ebb52 100644 --- a/emacs.spec +++ b/emacs.spec @@ -43,6 +43,9 @@ Patch: emacs-pgtk-on-x-error-message.patch Patch: 0001-Fix-failing-help-fns-test.patch Patch: 0001-Fix-flymake-tests-with-GCC-14.patch +# Fix intermittently failing test (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72073) +Patch: 0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch + ExcludeArch: %{ix86} BuildRequires: alsa-lib-devel From 21f0a822f71ef964eda6214c2f26e0f5516bbd2c Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 12 Jul 2024 14:49:08 +0100 Subject: [PATCH 026/111] Fix typos. --- emacs.spec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/emacs.spec b/emacs.spec index 01ebb52..e7d87e5 100644 --- a/emacs.spec +++ b/emacs.spec @@ -660,8 +660,8 @@ fi /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-lucid 70 || : # The preun scriptlet of packages before 29.4-5 will remove this symlink # after it has been installed, so we may need to put it back: -if [ $1 = 2 && ! -h %{_bindir}/emacs-lucid ]; then - ln -s %emacs-%{version}-nw %{_bindir}/emacs-lucid +if [ $1 = 2 -a ! -h %{_bindir}/emacs-lucid ]; then + ln -s emacs-%{version}-lucid %{_bindir}/emacs-lucid fi %endif @@ -675,8 +675,8 @@ fi /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-gtk+x11 75 || : # The preun scriptlet of packages before 29.4-5 will remove this symlink # after it has been installed, so we may need to put it back: -if [ $1 = 2 && ! -h %{_bindir}/emacs-gtk+x11 ]; then - ln -s %emacs-%{version}-nw %{_bindir}/emacs-gtk+x11 +if [ $1 = 2 -a ! -h %{_bindir}/emacs-gtk+x11 ]; then + ln -s emacs-%{version}-gtk+x11 %{_bindir}/emacs-gtk+x11 fi %endif @@ -690,8 +690,8 @@ fi /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-nw 70 || : # The preun scriptlet of packages before 29.4-5 will remove this symlink # after it has been installed, so we may need to put it back: -if [ $1 = 2 && ! -h %{_bindir}/emacs-nw ]; then - ln -s %emacs-%{version}-nw %{_bindir}/emacs-nw +if [ $1 = 2 -a ! -h %{_bindir}/emacs-nw ]; then + ln -s emacs-%{version}-nw %{_bindir}/emacs-nw fi %endif From 16d2054b156f3f27717952981121f54b0175e3a6 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sun, 14 Jul 2024 22:07:44 +0100 Subject: [PATCH 027/111] 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). --- 0001-Apply-display-kluge-for-PGTK-too.patch | 50 +++++++++++++++ ...-terminal-from-pure-GTK-when-no-disp.patch | 63 +++++++++++++++++++ emacs.spec | 6 ++ 3 files changed, 119 insertions(+) create mode 100644 0001-Apply-display-kluge-for-PGTK-too.patch create mode 100644 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch diff --git a/0001-Apply-display-kluge-for-PGTK-too.patch b/0001-Apply-display-kluge-for-PGTK-too.patch new file mode 100644 index 0000000..13c9cb3 --- /dev/null +++ b/0001-Apply-display-kluge-for-PGTK-too.patch @@ -0,0 +1,50 @@ +From 2f348ffee3777a8e2b02814d8cc50d282d98d366 Mon Sep 17 00:00:00 2001 +From: Peter Oliver +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 + diff --git a/0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch b/0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch new file mode 100644 index 0000000..dbcf3d9 --- /dev/null +++ b/0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch @@ -0,0 +1,63 @@ +From 7099578f18b1ea6a168b1883fa7a4ac7f49fc08f Mon Sep 17 00:00:00 2001 +From: Peter Oliver +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 doesn’t 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 + diff --git a/emacs.spec b/emacs.spec index e7d87e5..6934efa 100644 --- a/emacs.spec +++ b/emacs.spec @@ -46,6 +46,12 @@ Patch: 0001-Fix-flymake-tests-with-GCC-14.patch # Fix intermittently failing test (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72073) Patch: 0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch +# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2276822 +# (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63555). If GDK ever +# gets any new backends, this patch may need extending. +Patch: 0001-Apply-display-kluge-for-PGTK-too.patch +Patch: 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch + ExcludeArch: %{ix86} BuildRequires: alsa-lib-devel From 290ab368cc65f53d95ae58b507e093fa00c08990 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 15 Jul 2024 12:14:29 +0100 Subject: [PATCH 028/111] Fix another intermittent test failure. --- ...nt-failure-of-dired-test-bug27243-02.patch | 30 +++++++++++++++++++ emacs.spec | 3 ++ 2 files changed, 33 insertions(+) create mode 100644 0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch diff --git a/0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch b/0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch new file mode 100644 index 0000000..f3e821f --- /dev/null +++ b/0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch @@ -0,0 +1,30 @@ +From c86645dde30fbd54ae0f187e4428a09ad75e0ba8 Mon Sep 17 00:00:00 2001 +From: Peter Oliver +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 + diff --git a/emacs.spec b/emacs.spec index 6934efa..1a68564 100644 --- a/emacs.spec +++ b/emacs.spec @@ -46,6 +46,9 @@ Patch: 0001-Fix-flymake-tests-with-GCC-14.patch # Fix intermittently failing test (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72073) Patch: 0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch +# Fix intermittently failing test (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72120) +Patch: 0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch + # Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2276822 # (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63555). If GDK ever # gets any new backends, this patch may need extending. From 04dac35b639835e34e86cfcb1a6bf9aedd2f8cfc Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 15 Jul 2024 16:23:38 +0100 Subject: [PATCH 029/111] Skip intermittently failing tests. --- ...-subcommand-reset-in-pipeline-is-uns.patch | 25 +++++++++++ ...l-sec-tests-as-unstable-when-built-i.patch | 44 +++++++++++++++++++ emacs.spec | 4 ++ 3 files changed, 73 insertions(+) create mode 100644 0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch create mode 100644 0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch diff --git a/0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch b/0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch new file mode 100644 index 0000000..94b83bf --- /dev/null +++ b/0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch @@ -0,0 +1,25 @@ +From 8ae158173d1d748d55e2605c04d33a95739e055c Mon Sep 17 00:00:00 2001 +From: Peter Oliver +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 + diff --git a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch new file mode 100644 index 0000000..397cbf1 --- /dev/null +++ b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch @@ -0,0 +1,44 @@ +From 7beb6f67c68f110bf91324bdaafb2cbd22d9f814 Mon Sep 17 00:00:00 2001 +From: Peter Oliver +Date: Mon, 15 Jul 2024 16:19:10 +0100 +Subject: [PATCH 3/3] 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 | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el +index 7abd1bd65a3..1d83ec98ed8 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 () +@@ -581,6 +582,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 +627,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 + diff --git a/emacs.spec b/emacs.spec index 1a68564..e0dece3 100644 --- a/emacs.spec +++ b/emacs.spec @@ -49,6 +49,10 @@ Patch: 0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch # Fix intermittently failing test (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72120) Patch: 0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch +# Skip intermittently failing tests +Patch: 0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch +Patch: 0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch + # Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2276822 # (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63555). If GDK ever # gets any new backends, this patch may need extending. From 311ab8413b07313b3327669fcae5af841610db9a Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 16 Jul 2024 16:15:25 +0100 Subject: [PATCH 030/111] Builds on i686 are working again. --- emacs.spec | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/emacs.spec b/emacs.spec index e0dece3..7783308 100644 --- a/emacs.spec +++ b/emacs.spec @@ -59,8 +59,6 @@ Patch: 0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch Patch: 0001-Apply-display-kluge-for-PGTK-too.patch Patch: 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch -ExcludeArch: %{ix86} - BuildRequires: alsa-lib-devel BuildRequires: atk-devel BuildRequires: autoconf @@ -127,6 +125,10 @@ BuildRequires: Xaw3d-devel # for Patch3 BuildRequires: pkgconfig(systemd) +%ifarch %{ix86} +BuildRequires: util-linux +%endif + # Emacs doesn't run without a font, rhbz#732422 Requires: google-noto-sans-mono-vf-fonts @@ -296,6 +298,12 @@ rm -f lisp/play/tetris.el lisp/play/tetris.elc rm -f lisp/play/pong.el lisp/play/pong.elc sed -i "s/'tetris/'doctor/" test/src/doc-tests.el +%ifarch %{ix86} +%define setarch setarch %{_arch} -R +%else +%define setarch %{nil} +%endif + # Avoid duplicating doc files in the common subpackage ln -s ../../%{name}/%{version}/etc/COPYING doc ln -s ../../%{name}/%{version}/etc/NEWS doc @@ -331,8 +339,8 @@ LDFLAGS=-Wl,-z,relro; export LDFLAGS; --with-xft \ --with-xinput2 \ --with-xpm -%make_build bootstrap -%make_build +%{setarch} %make_build bootstrap +%{setarch} %make_build rm src/emacs-%{version}.* cd .. %endif @@ -350,8 +358,8 @@ ln -s ../configure . --with-gpm=no \ %endif --with-x=no -%make_build bootstrap -%make_build +%{setarch} %make_build bootstrap +%{setarch} %make_build rm src/emacs-%{version}.* cd .. %endif @@ -382,8 +390,8 @@ LDFLAGS=-Wl,-z,relro; export LDFLAGS; --with-xinput2 \ --with-xpm \ %{?with_webkit:--with-xwidgets} -%make_build bootstrap -%make_build +%{setarch} %make_build bootstrap +%{setarch} %make_build rm src/emacs-%{version}.* cd .. %endif @@ -412,8 +420,8 @@ LDFLAGS=-Wl,-z,relro; export LDFLAGS; --with-webp \ --with-xpm \ %{?with_webkit:--with-xwidgets} -%make_build bootstrap -%make_build +%{setarch} %make_build bootstrap +%{setarch} %make_build rm src/emacs-%{version}.* cd .. From 449be03f8f7114bee6e0e02f14ad7c653488ba12 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 16 Jul 2024 16:23:30 +0100 Subject: [PATCH 031/111] Skip another unstable test. --- ...l-sec-tests-as-unstable-when-built-i.patch | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch index 397cbf1..dbf0668 100644 --- a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch +++ b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch @@ -1,4 +1,4 @@ -From 7beb6f67c68f110bf91324bdaafb2cbd22d9f814 Mon Sep 17 00:00:00 2001 +From 8d5348d6be9dadc9a98a66a70f08c995575deda1 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 15 Jul 2024 16:19:10 +0100 Subject: [PATCH 3/3] Mark multiple mml-sec tests as unstable when built in an @@ -8,11 +8,11 @@ Subject: [PATCH 3/3] Mark multiple mml-sec tests as unstable when built in an seen to intermittently fail at https://koji.fedoraproject.org/koji/packageinfo?packageID=560 --- - test/lisp/gnus/mml-sec-tests.el | 3 +++ - 1 file changed, 3 insertions(+) + test/lisp/gnus/mml-sec-tests.el | 4 ++++ + 1 file changed, 4 insertions(+) diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el -index 7abd1bd65a3..1d83ec98ed8 100644 +index 7abd1bd65a3..f5a412cf2a4 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 @@ -23,7 +23,15 @@ index 7abd1bd65a3..1d83ec98ed8 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -581,6 +582,7 @@ mml-secure-test-en-decrypt-with-passphrase +@@ -407,6 +408,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 +583,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." @@ -31,7 +39,7 @@ index 7abd1bd65a3..1d83ec98ed8 100644 (skip-unless (test-conf)) (dolist (method (enc-standards) nil) ;; no-exp@example.org with single encryption key -@@ -625,6 +627,7 @@ mml-secure-en-decrypt-3 +@@ -625,6 +628,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." From d81023e55d67e4ecbff1c74630cfab1925c57af4 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 17 Jul 2024 00:10:18 +0100 Subject: [PATCH 032/111] Try harder to stabalise dired-test-bug27243-02 --- ...-to-stabalise-dired-test-bug27243-02.patch | 27 +++++++++++++++++++ emacs.spec | 1 + 2 files changed, 28 insertions(+) create mode 100644 0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch diff --git a/0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch b/0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch new file mode 100644 index 0000000..884f70f --- /dev/null +++ b/0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch @@ -0,0 +1,27 @@ +From 456525d14a6778ab624f4e329627cb7adfb0d053 Mon Sep 17 00:00:00 2001 +From: Peter Oliver +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): Hide file +details, to prevent changes to the size or contents of the parent +directory from affecting the test. +--- + test/lisp/dired-tests.el | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el +index ea47043dfc5..6bfb2d56303 100644 +--- a/test/lisp/dired-tests.el ++++ b/test/lisp/dired-tests.el +@@ -198,6 +198,7 @@ dired-test-bug27243-02 + (if (eq system-type 'windows-nt) + (setq test-dir (file-truename test-dir))) + (with-current-buffer (find-file-noselect test-dir) ++ (dired-hide-details-mode) + (make-directory "test-subdir")) + (push (dired test-dir) buffers) + (unwind-protect +-- +2.45.2 + diff --git a/emacs.spec b/emacs.spec index 7783308..67be675 100644 --- a/emacs.spec +++ b/emacs.spec @@ -48,6 +48,7 @@ Patch: 0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch # Fix intermittently failing test (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72120) Patch: 0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch +Patch: 0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch # Skip intermittently failing tests Patch: 0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch From 88b7252ef15f1faf7478af130f94a64c25f741b9 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 17 Jul 2024 12:45:35 +0100 Subject: [PATCH 033/111] More test stabilisation. --- ...l-sec-tests-as-unstable-when-built-i.patch | 24 +++++++---- ...-to-stabalise-dired-test-bug27243-02.patch | 41 ++++++++++++------- 2 files changed, 42 insertions(+), 23 deletions(-) diff --git a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch index dbf0668..579c1fe 100644 --- a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch +++ b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch @@ -1,18 +1,18 @@ -From 8d5348d6be9dadc9a98a66a70f08c995575deda1 Mon Sep 17 00:00:00 2001 +From 84174667ab624d16ba4c4f806d25e305ab919b80 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 15 Jul 2024 16:19:10 +0100 -Subject: [PATCH 3/3] Mark multiple mml-sec tests as unstable when built in an +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 | 4 ++++ - 1 file changed, 4 insertions(+) + 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..f5a412cf2a4 100644 +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 @@ -23,7 +23,15 @@ index 7abd1bd65a3..f5a412cf2a4 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -407,6 +408,7 @@ mml-secure-select-preferred-keys-2 +@@ -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." @@ -31,7 +39,7 @@ index 7abd1bd65a3..f5a412cf2a4 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -581,6 +583,7 @@ mml-secure-test-en-decrypt-with-passphrase +@@ -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." @@ -39,7 +47,7 @@ index 7abd1bd65a3..f5a412cf2a4 100644 (skip-unless (test-conf)) (dolist (method (enc-standards) nil) ;; no-exp@example.org with single encryption key -@@ -625,6 +628,7 @@ mml-secure-en-decrypt-3 +@@ -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." diff --git a/0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch b/0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch index 884f70f..d7aa8fe 100644 --- a/0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch +++ b/0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch @@ -1,27 +1,38 @@ -From 456525d14a6778ab624f4e329627cb7adfb0d053 Mon Sep 17 00:00:00 2001 +From e0f0549ac6766ab565dbd581098b96792a807727 Mon Sep 17 00:00:00 2001 From: Peter Oliver 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): Hide file -details, to prevent changes to the size or contents of the parent -directory from affecting the test. +* 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 | 1 + - 1 file changed, 1 insertion(+) + 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..6bfb2d56303 100644 +index ea47043dfc5..6078e99e13c 100644 --- a/test/lisp/dired-tests.el +++ b/test/lisp/dired-tests.el -@@ -198,6 +198,7 @@ dired-test-bug27243-02 - (if (eq system-type 'windows-nt) - (setq test-dir (file-truename test-dir))) - (with-current-buffer (find-file-noselect test-dir) -+ (dired-hide-details-mode) - (make-directory "test-subdir")) - (push (dired test-dir) buffers) - (unwind-protect +@@ -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 From b97332f65e6e7c50e62de4bd11dd1bf1dc1f041a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 21:53:04 +0000 Subject: [PATCH 034/111] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 07ecef2a9c7d5d7356204e5140eb4763a7054c20 Mon Sep 17 00:00:00 2001 From: Jacek Migacz Date: Thu, 22 Aug 2024 21:17:27 +0200 Subject: [PATCH 035/111] Unset custom linker flags --- emacs.spec | 6 ------ 1 file changed, 6 deletions(-) diff --git a/emacs.spec b/emacs.spec index 67be675..8060406 100644 --- a/emacs.spec +++ b/emacs.spec @@ -319,8 +319,6 @@ export CFLAGS="-DMAIL_USE_LOCKF %{build_cflags}" mkdir build-lucid && cd build-lucid ln -s ../configure . -LDFLAGS=-Wl,-z,relro; export LDFLAGS; - %configure --with-cairo \ --with-dbus \ --with-gif \ @@ -370,8 +368,6 @@ cd .. mkdir build-gtk+x11 && cd build-gtk+x11 ln -s ../configure . -LDFLAGS=-Wl,-z,relro; export LDFLAGS; - %configure --with-cairo \ --with-dbus \ --with-gif \ @@ -401,8 +397,6 @@ cd .. mkdir build-pgtk && cd build-pgtk ln -s ../configure . -LDFLAGS=-Wl,-z,relro; export LDFLAGS; - %configure --with-cairo \ --with-dbus \ --with-gif \ From 1d7139dcc20dfe988689b976592a29f161a9d1a8 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 28 Aug 2024 12:35:08 +0100 Subject: [PATCH 036/111] Relax libtree-sitter requirement. --- emacs.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 8060406..81d03ed 100644 --- a/emacs.spec +++ b/emacs.spec @@ -244,7 +244,6 @@ Obsoletes: emacs-transient < 0.3.0-4 # https://github.com/tree-sitter/tree-sitter/issues/3296 Requires: libtree-sitter >= 0.22.5 -Requires: libtree-sitter < 0.23 # Ideally, we'd package all tree-sitter parsers as RPMs, but, in the # meantime, we need the following packages for From 66296574a243bc1c30b80a5fd6261f3d608bc17c Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sun, 22 Sep 2024 19:49:58 +0100 Subject: [PATCH 037/111] Drop WebKit, since recent versions are incompatible with Emacs https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66068 --- emacs.spec | 8 -------- 1 file changed, 8 deletions(-) diff --git a/emacs.spec b/emacs.spec index 81d03ed..4f6748a 100644 --- a/emacs.spec +++ b/emacs.spec @@ -1,8 +1,6 @@ # This file is encoded in UTF-8. -*- coding: utf-8 -*- %bcond gpm %[!(0%{?rhel} >= 10)] -%bcond webkit %[!(0%{?rhel} >= 10)] - %bcond_without gtkx11 %bcond_without lucid %bcond_without nw @@ -104,10 +102,6 @@ BuildRequires: zlib-devel BuildRequires: gpm-devel %endif -%if %{with webkit} -BuildRequires: webkit2gtk4.1-devel -%endif - %if %{with lucid} || %{with gtkx11} BuildRequires: libX11-devel BuildRequires: libXau-devel @@ -385,7 +379,6 @@ ln -s ../configure . --with-x-toolkit=gtk3 \ --with-xinput2 \ --with-xpm \ - %{?with_webkit:--with-xwidgets} %{setarch} %make_build bootstrap %{setarch} %make_build rm src/emacs-%{version}.* @@ -413,7 +406,6 @@ ln -s ../configure . --with-tree-sitter \ --with-webp \ --with-xpm \ - %{?with_webkit:--with-xwidgets} %{setarch} %make_build bootstrap %{setarch} %make_build rm src/emacs-%{version}.* From 88a3c703535663905c2943a90be7fa4ac0980359 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sun, 22 Sep 2024 21:59:29 +0100 Subject: [PATCH 038/111] Fix typo. --- emacs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/emacs.spec b/emacs.spec index 4f6748a..a2b716c 100644 --- a/emacs.spec +++ b/emacs.spec @@ -378,7 +378,7 @@ ln -s ../configure . --with-webp \ --with-x-toolkit=gtk3 \ --with-xinput2 \ - --with-xpm \ + --with-xpm %{setarch} %make_build bootstrap %{setarch} %make_build rm src/emacs-%{version}.* @@ -405,7 +405,7 @@ ln -s ../configure . --with-tiff \ --with-tree-sitter \ --with-webp \ - --with-xpm \ + --with-xpm %{setarch} %make_build bootstrap %{setarch} %make_build rm src/emacs-%{version}.* From cf88b767de5d9b5151130d340442b0b108497af6 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 24 Sep 2024 12:33:14 +0100 Subject: [PATCH 039/111] Rebuild against tree-sitter-0.23.0-2.fc41. From 155673080c59b0ec73fcab658b652b7ef3eb3692 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 26 Sep 2024 14:45:55 +0100 Subject: [PATCH 040/111] =?UTF-8?q?Don=E2=80=99t=20mention=20removed=20gam?= =?UTF-8?q?es=20in=20menus=20or=20documentation.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 0001-Pong-and-Tetris-are-excluded.patch | 86 +++++++++++++++++++++++++ emacs.spec | 17 +++-- 2 files changed, 94 insertions(+), 9 deletions(-) create mode 100644 0001-Pong-and-Tetris-are-excluded.patch diff --git a/0001-Pong-and-Tetris-are-excluded.patch b/0001-Pong-and-Tetris-are-excluded.patch new file mode 100644 index 0000000..989764a --- /dev/null +++ b/0001-Pong-and-Tetris-are-excluded.patch @@ -0,0 +1,86 @@ +From 6f29ac0393bb0bb70c8122d9f1bda0ae5d8cee24 Mon Sep 17 00:00:00 2001 +From: Peter Oliver +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 + diff --git a/emacs.spec b/emacs.spec index a2b716c..a6db4f7 100644 --- a/emacs.spec +++ b/emacs.spec @@ -24,6 +24,9 @@ Source7: emacs-terminal.desktop Source8: emacs-terminal.sh Source9: emacs-desktop.sh +# Avoid trademark issues +Patch: 0001-Pong-and-Tetris-are-excluded.patch + # rhbz#713600 Patch: emacs-spellchecker.patch @@ -279,18 +282,14 @@ Development header files for Emacs. cat '%{SOURCE2}' '%{SOURCE3}' > keyring %{gpgverify} --keyring=keyring --signature='%{SOURCE1}' --data='%{SOURCE0}' rm keyring + %autosetup -p1 -autoconf - # Avoid trademark issues -grep -v "tetris.elc" lisp/Makefile.in > lisp/Makefile.in.new \ - && mv lisp/Makefile.in.new lisp/Makefile.in -grep -v "pong.elc" lisp/Makefile.in > lisp/Makefile.in.new \ - && mv lisp/Makefile.in.new lisp/Makefile.in -rm -f lisp/play/tetris.el lisp/play/tetris.elc -rm -f lisp/play/pong.el lisp/play/pong.elc -sed -i "s/'tetris/'doctor/" test/src/doc-tests.el +rm lisp/play/pong.el lisp/play/pong.elc \ + lisp/play/tetris.el lisp/play/tetris.elc + +autoconf %ifarch %{ix86} %define setarch setarch %{_arch} -R From 78d229edc10ab70c03da3d34fcf1511b36ca9f12 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 3 Oct 2024 11:58:28 +0100 Subject: [PATCH 041/111] RPM git-core is sufficient for fetching Tree-sitter grammar source (#2316238) --- emacs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index a6db4f7..a3a06a9 100644 --- a/emacs.spec +++ b/emacs.spec @@ -247,7 +247,7 @@ Requires: libtree-sitter >= 0.22.5 # treesit-install-language-grammar to be able to build the parsers for # us at runtime: Recommends: ((gcc and gcc-c++) or clang) -Recommends: git +Recommends: /usr/bin/git Recommends: libtree-sitter-java From 05cd234a6919b9a712936f004a06118a541e4b08 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 9 Oct 2024 13:15:24 +0100 Subject: [PATCH 042/111] =?UTF-8?q?Don=E2=80=99t=20pull=20in=20GUI=20build?= =?UTF-8?q?s=20if=20emacs-nw=20is=20installed=20(#2273786).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emacs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/emacs.spec b/emacs.spec index a3a06a9..43f49e3 100644 --- a/emacs.spec +++ b/emacs.spec @@ -134,7 +134,7 @@ Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} Provides: emacs(bin) = %{epoch}:%{version}-%{release} -Supplements: (libwayland-server and emacs-common) +Supplements: ((libwayland-server and emacs-common) unless emacs-nw) %define site_lisp %{_datadir}/emacs/site-lisp %define site_start_d %{site_lisp}/site-start.d @@ -163,7 +163,7 @@ Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} Provides: emacs(bin) = %{epoch}:%{version}-%{release} -Supplements: (xorg-x11-server-Xorg and emacs-common) +Supplements: ((xorg-x11-server-Xorg and emacs-common) unless emacs-nw) %description gtk+x11 %desc From 87182d19c2c7d688c007675c729b029b352eac04 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 9 Oct 2024 19:52:45 +0100 Subject: [PATCH 043/111] Skip unstable test mml-secure-key-checks. --- ...l-sec-tests-as-unstable-when-built-i.patch | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch index 579c1fe..353e87f 100644 --- a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch +++ b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch @@ -1,4 +1,4 @@ -From 84174667ab624d16ba4c4f806d25e305ab919b80 Mon Sep 17 00:00:00 2001 +From 0a9da2a5c6a321567381dc5ca0ba37b959b05261 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 15 Jul 2024 16:19:10 +0100 Subject: [PATCH 3/4] Mark multiple mml-sec tests as unstable when built in an @@ -8,14 +8,22 @@ Subject: [PATCH 3/4] Mark multiple mml-sec tests as unstable when built in an 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(+) + test/lisp/gnus/mml-sec-tests.el | 6 ++++++ + 1 file changed, 6 insertions(+) diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el -index 7abd1bd65a3..a381ff8e94d 100644 +index 7abd1bd65a3..a20cf84858c 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 +@@ -210,6 +210,7 @@ mml-secure-test-key-fixture + + (ert-deftest mml-secure-key-checks () + "Test mml-secure-check-user-id and mml-secure-check-sub-key on sample keys." ++ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable)) + (skip-unless (test-conf)) + (mml-secure-test-fixture + (lambda () +@@ -278,6 +279,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." @@ -23,7 +31,7 @@ index 7abd1bd65a3..a381ff8e94d 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -369,6 +370,7 @@ mml-secure-find-usable-keys-2 +@@ -369,6 +371,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." @@ -31,7 +39,7 @@ index 7abd1bd65a3..a381ff8e94d 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -407,6 +409,7 @@ mml-secure-select-preferred-keys-2 +@@ -407,6 +410,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." @@ -39,7 +47,7 @@ index 7abd1bd65a3..a381ff8e94d 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -581,6 +584,7 @@ mml-secure-test-en-decrypt-with-passphrase +@@ -581,6 +585,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." @@ -47,7 +55,7 @@ index 7abd1bd65a3..a381ff8e94d 100644 (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 +@@ -625,6 +630,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." @@ -56,5 +64,5 @@ index 7abd1bd65a3..a381ff8e94d 100644 ;; Send from sub@example.org, which has two keys; encrypt to both. (let ((mml-secure-openpgp-encrypt-to-self -- -2.45.2 +2.46.2 From 8dd6af7706edc97cd4bcc703c56f6a0e526b8c3a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 22 Oct 2024 16:53:51 +0100 Subject: [PATCH 044/111] Rebuild for Jansson 2.14 (https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/3PYINSQGKQ4BB25NQUI2A2UCGGLAG5ND/) From c39eb8eaa92a37f0fd16d96f23838eab1ca814d6 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 30 Oct 2024 11:41:29 +0000 Subject: [PATCH 045/111] Skip unstable test mml-secure-select-preferred-keys-2. --- ...l-sec-tests-as-unstable-when-built-i.patch | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch index 353e87f..86d84e5 100644 --- a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch +++ b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch @@ -1,4 +1,4 @@ -From 0a9da2a5c6a321567381dc5ca0ba37b959b05261 Mon Sep 17 00:00:00 2001 +From aab58d6577acf5c4dc189a1ad602dd3e076505e5 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 15 Jul 2024 16:19:10 +0100 Subject: [PATCH 3/4] Mark multiple mml-sec tests as unstable when built in an @@ -8,11 +8,11 @@ Subject: [PATCH 3/4] Mark multiple mml-sec tests as unstable when built in an seen to intermittently fail at https://koji.fedoraproject.org/koji/packageinfo?packageID=560 --- - test/lisp/gnus/mml-sec-tests.el | 6 ++++++ - 1 file changed, 6 insertions(+) + test/lisp/gnus/mml-sec-tests.el | 7 +++++++ + 1 file changed, 7 insertions(+) diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el -index 7abd1bd65a3..a20cf84858c 100644 +index 7abd1bd65a3..50b14e97254 100644 --- a/test/lisp/gnus/mml-sec-tests.el +++ b/test/lisp/gnus/mml-sec-tests.el @@ -210,6 +210,7 @@ mml-secure-test-key-fixture @@ -39,7 +39,15 @@ index 7abd1bd65a3..a20cf84858c 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -407,6 +410,7 @@ mml-secure-select-preferred-keys-2 +@@ -380,6 +383,7 @@ mml-secure-select-preferred-keys-1 + + (ert-deftest mml-secure-select-preferred-keys-2 () + "If multiple keys exists for an e-mail address, customization is necessary." ++ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable)) + (skip-unless (test-conf)) + (mml-secure-test-fixture + (lambda () +@@ -407,6 +411,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." @@ -47,7 +55,7 @@ index 7abd1bd65a3..a20cf84858c 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -581,6 +585,7 @@ mml-secure-test-en-decrypt-with-passphrase +@@ -581,6 +586,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." @@ -55,7 +63,7 @@ index 7abd1bd65a3..a20cf84858c 100644 (skip-unless (test-conf)) (dolist (method (enc-standards) nil) ;; no-exp@example.org with single encryption key -@@ -625,6 +630,7 @@ mml-secure-en-decrypt-3 +@@ -625,6 +631,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." @@ -64,5 +72,5 @@ index 7abd1bd65a3..a20cf84858c 100644 ;; Send from sub@example.org, which has two keys; encrypt to both. (let ((mml-secure-openpgp-encrypt-to-self -- -2.46.2 +2.47.0 From 4dac80cb55f2d8f071d2c5292042d6798071a72a Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 31 Oct 2024 12:00:46 +0000 Subject: [PATCH 046/111] Skip unstable test mml-secure-find-usable-keys-2. --- ...l-sec-tests-as-unstable-when-built-i.patch | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch index 86d84e5..68c21c8 100644 --- a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch +++ b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch @@ -1,4 +1,4 @@ -From aab58d6577acf5c4dc189a1ad602dd3e076505e5 Mon Sep 17 00:00:00 2001 +From bf512d1bad98bcd1dc87da93fd2e7f415be14501 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 15 Jul 2024 16:19:10 +0100 Subject: [PATCH 3/4] Mark multiple mml-sec tests as unstable when built in an @@ -8,11 +8,11 @@ Subject: [PATCH 3/4] Mark multiple mml-sec tests as unstable when built in an seen to intermittently fail at https://koji.fedoraproject.org/koji/packageinfo?packageID=560 --- - test/lisp/gnus/mml-sec-tests.el | 7 +++++++ - 1 file changed, 7 insertions(+) + test/lisp/gnus/mml-sec-tests.el | 8 ++++++++ + 1 file changed, 8 insertions(+) diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el -index 7abd1bd65a3..50b14e97254 100644 +index 7abd1bd65a3..2bd52bf3ee0 100644 --- a/test/lisp/gnus/mml-sec-tests.el +++ b/test/lisp/gnus/mml-sec-tests.el @@ -210,6 +210,7 @@ mml-secure-test-key-fixture @@ -31,7 +31,15 @@ index 7abd1bd65a3..50b14e97254 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -369,6 +371,7 @@ mml-secure-find-usable-keys-2 +@@ -317,6 +319,7 @@ mml-secure-find-usable-keys-1 + + (ert-deftest mml-secure-find-usable-keys-2 () + "Test different ways to search for keys." ++ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable)) + (skip-unless (test-conf)) + (mml-secure-test-fixture + (lambda () +@@ -369,6 +372,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." @@ -39,7 +47,7 @@ index 7abd1bd65a3..50b14e97254 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -380,6 +383,7 @@ mml-secure-select-preferred-keys-1 +@@ -380,6 +384,7 @@ mml-secure-select-preferred-keys-1 (ert-deftest mml-secure-select-preferred-keys-2 () "If multiple keys exists for an e-mail address, customization is necessary." @@ -47,7 +55,7 @@ index 7abd1bd65a3..50b14e97254 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -407,6 +411,7 @@ mml-secure-select-preferred-keys-2 +@@ -407,6 +412,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." @@ -55,7 +63,7 @@ index 7abd1bd65a3..50b14e97254 100644 (skip-unless (test-conf)) (mml-secure-test-fixture (lambda () -@@ -581,6 +586,7 @@ mml-secure-test-en-decrypt-with-passphrase +@@ -581,6 +587,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." @@ -63,7 +71,7 @@ index 7abd1bd65a3..50b14e97254 100644 (skip-unless (test-conf)) (dolist (method (enc-standards) nil) ;; no-exp@example.org with single encryption key -@@ -625,6 +631,7 @@ mml-secure-en-decrypt-3 +@@ -625,6 +632,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." From 12239bab400349c2c68bd1934bbd650160c452cb Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 10 Jul 2024 18:02:39 +0100 Subject: [PATCH 047/111] Prefer `make install` to our own approximations. --- emacs.spec | 135 +++++++++++++++++++++++++++-------------------------- 1 file changed, 70 insertions(+), 65 deletions(-) diff --git a/emacs.spec b/emacs.spec index 43f49e3..6a25efd 100644 --- a/emacs.spec +++ b/emacs.spec @@ -311,7 +311,8 @@ export CFLAGS="-DMAIL_USE_LOCKF %{build_cflags}" mkdir build-lucid && cd build-lucid ln -s ../configure . -%configure --with-cairo \ +%configure --program-suffix=-lucid \ + --with-cairo \ --with-dbus \ --with-gif \ --with-gpm=no \ @@ -332,7 +333,6 @@ ln -s ../configure . --with-xpm %{setarch} %make_build bootstrap %{setarch} %make_build -rm src/emacs-%{version}.* cd .. %endif @@ -340,7 +340,8 @@ cd .. # Build binary without X support mkdir build-nw && cd build-nw ln -s ../configure . -%configure --with-json \ +%configure --program-suffix=-nw \ + --with-json \ --with-modules \ --with-native-compilation=aot \ --with-sqlite3 \ @@ -351,7 +352,6 @@ ln -s ../configure . --with-x=no %{setarch} %make_build bootstrap %{setarch} %make_build -rm src/emacs-%{version}.* cd .. %endif @@ -360,7 +360,8 @@ cd .. mkdir build-gtk+x11 && cd build-gtk+x11 ln -s ../configure . -%configure --with-cairo \ +%configure --program-suffix=-gtk+x11 \ + --with-cairo \ --with-dbus \ --with-gif \ --with-gpm=no \ @@ -380,7 +381,6 @@ ln -s ../configure . --with-xpm %{setarch} %make_build bootstrap %{setarch} %make_build -rm src/emacs-%{version}.* cd .. %endif @@ -407,7 +407,6 @@ ln -s ../configure . --with-xpm %{setarch} %make_build bootstrap %{setarch} %make_build -rm src/emacs-%{version}.* cd .. # Create pkgconfig file @@ -432,40 +431,53 @@ EOF %install +%if %{with nw} +cd build-nw +%{__make} install-arch-dep install-eln DESTDIR=%{?buildroot} INSTALL="%{__install} -p" +cd .. +%endif + +%if %{with lucid} +cd build-lucid +%{__make} install-arch-dep install-eln DESTDIR=%{?buildroot} INSTALL="%{__install} -p" +cd .. +%endif + +%if %{with gtkx11} +cd build-gtk+x11 +%{__make} install-arch-dep install-eln DESTDIR=%{?buildroot} INSTALL="%{__install} -p" +cd .. +%endif + cd build-pgtk %make_install cd .. -# Let alternatives manage the symlink -rm %{buildroot}%{_bindir}/emacs -touch %{buildroot}%{_bindir}/emacs - # Do not compress the files which implement compression itself (#484830) gunzip %{buildroot}%{_datadir}/emacs/%{version}/lisp/jka-compr.el.gz gunzip %{buildroot}%{_datadir}/emacs/%{version}/lisp/jka-cmpr-hook.el.gz -# Install the emacs binary with pure GTK toolkit +# Remove duplicate files with suffixed names +%if %{with nw} || %{with lucid} || %{with gtkx11} +find %{buildroot} \ + -type f \ + ! -name emacs-%{version}-gtk+x11 ! -name emacs-gtk+x11 \ + ! -name emacs-%{version}-lucid ! -name emacs-lucid \ + ! -name emacs-%{version}-nw ! -name emacs-nw \ + -regextype posix-extended \ + -regex '.*-(gtk\+x11|lucid|nw)((-mail)?\.[^/]+)?$' \ + -print \ + -delete +%endif + +# Rename the emacs binary to indicate it's a "pure GTK" build mv %{buildroot}%{_bindir}/emacs-%{version} %{buildroot}%{_bindir}/emacs-%{version}-pgtk ln -s emacs-%{version}-pgtk %{buildroot}%{_bindir}/emacs-pgtk -%if %{with gtkx11} -# Install the emacs binary using mixed GTK and X11 -install -p -m 0755 build-gtk+x11/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-gtk+x11 -ln -s emacs-%{version}-gtk+x11 %{buildroot}%{_bindir}/emacs-gtk+x11 -%endif - -%if %{with lucid} -# Install the emacs with Lucid toolkit -install -p -m 0755 build-lucid/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-lucid -ln -s emacs-%{version}-lucid %{buildroot}%{_bindir}/emacs-lucid -%endif - +# Compatibility with earlier Fedora packages %if %{with nw} -# Install the emacs without graphical display -install -p -m 0755 build-nw/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-nw ln -s emacs-%{version}-nw %{buildroot}%{_bindir}/emacs-%{version}-nox ln -s emacs-%{version}-nw %{buildroot}%{_bindir}/emacs-nox -ln -s emacs-%{version}-nw %{buildroot}%{_bindir}/emacs-nw %endif # Make sure movemail isn't setgid @@ -553,60 +565,51 @@ grep -vhE '%{site_lisp}(|/(default\.el|site-start\.d|site-start\.el))$' {common, # Remove old icon rm %{buildroot}%{_datadir}/icons/hicolor/scalable/mimetypes/emacs-document23.svg -# Install the pdmp with fingerprints -pgtk_pdmp="emacs-$(./build-pgtk/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" -install -p -m 0644 build-pgtk/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${pgtk_pdmp} - # Install native compiled Lisp of all builds -pgtk_comp_native_ver=$(ls -1 build-pgtk/native-lisp) -cp -ar build-pgtk/native-lisp/${pgtk_comp_native_ver} %{buildroot}%{native_lisp} (TOPDIR=${PWD} cd %{buildroot} - find .%{native_lisp}/${pgtk_comp_native_ver} \( -type f -name '*eln' -fprintf $TOPDIR/pgtk-eln-filelist "%%%%attr(755,-,-) %%p\n" \) -o \( -type d -fprintf $TOPDIR/pgtk-dirs "%%%%dir %%p\n" \) + find ".%{native_lisp}/$(ls -1 build-pgtk/native-lisp)" \ + \( -type f -name '*eln' -fprintf "$TOPDIR/pgtk-filelist" "%%%%attr(755,-,-) %%p\n" \) \ + -o \( -type d -fprintf "$TOPDIR/pgtk-dirlist" "%%%%dir %%p\n" \) ) -echo %{emacs_libexecdir}/${pgtk_pdmp} >> pgtk-eln-filelist +echo "%{emacs_libexecdir}/emacs-$(./build-pgtk/src/emacs --fingerprint).pdmp" \ + >> pgtk-filelist %if %{with gtkx11} -gtkx11_pdmp="emacs-$(./build-gtk+x11/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" -install -p -m 0644 build-gtk+x11/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${gtkx11_pdmp} - -gtkx11_comp_native_ver=$(ls -1 build-gtk+x11/native-lisp) -cp -ar build-gtk+x11/native-lisp/${gtkx11_comp_native_ver} %{buildroot}%{native_lisp} (TOPDIR=${PWD} cd %{buildroot} - find .%{native_lisp}/${gtkx11_comp_native_ver} \( -type f -name '*eln' -fprintf $TOPDIR/gtk+x11-eln-filelist "%%%%attr(755,-,-) %%p\n" \) -o \( -type d -fprintf $TOPDIR/gtk+x11-dirs "%%%%dir %%p\n" \) + find ".%{native_lisp}/$(ls -1 build-gtk+x11/native-lisp)" \ + \( -type f -name '*eln' -fprintf "$TOPDIR/gtk+x11-filelist" "%%%%attr(755,-,-) %%p\n" \) \ + -o \( -type d -fprintf "$TOPDIR/gtk+x11-dirlist" "%%%%dir %%p\n" \) ) -echo %{emacs_libexecdir}/${gtkx11_pdmp} >> gtk+x11-eln-filelist +echo "%{emacs_libexecdir}/emacs-$(./build-gtk+x11/src/emacs --fingerprint).pdmp" \ + >> gtk+x11-filelist %endif %if %{with lucid} -lucid_pdmp="emacs-$(./build-lucid/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" -install -p -m 0644 build-lucid/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${lucid_pdmp} - -lucid_comp_native_ver=$(ls -1 build-lucid/native-lisp) -cp -ar build-lucid/native-lisp/${lucid_comp_native_ver} %{buildroot}%{native_lisp} (TOPDIR=${PWD} cd %{buildroot} - find .%{native_lisp}/${lucid_comp_native_ver} \( -type f -name '*eln' -fprintf $TOPDIR/lucid-eln-filelist "%%%%attr(755,-,-) %%p\n" \) -o \( -type d -fprintf $TOPDIR/lucid-dirs "%%%%dir %%p\n" \) + find ".%{native_lisp}/$(ls -1 build-lucid/native-lisp)" \ + \( -type f -name '*eln' -fprintf "$TOPDIR/lucid-filelist" "%%%%attr(755,-,-) %%p\n" \) \ + -o \( -type d -fprintf "$TOPDIR/lucid-dirlist" "%%%%dir %%p\n" \) ) -echo %{emacs_libexecdir}/${lucid_pdmp} >> lucid-eln-filelist +echo "%{emacs_libexecdir}/emacs-$(./build-lucid/src/emacs --fingerprint).pdmp" \ + >> lucid-filelist %endif %if %{with nw} -nw_pdmp="emacs-$(./build-nw/src/emacs --fingerprint 2>&1 | sed 's/.* //').pdmp" -install -p -m 0644 build-nw/src/emacs.pdmp %{buildroot}%{emacs_libexecdir}/${nw_pdmp} - -nw_comp_native_ver=$(ls -1 build-nw/native-lisp) -cp -ar build-nw/native-lisp/${nw_comp_native_ver} %{buildroot}%{native_lisp} (TOPDIR=${PWD} cd %{buildroot} - find .%{native_lisp}/${nw_comp_native_ver} \( -type f -name '*eln' -fprintf $TOPDIR/nw-eln-filelist "%%%%attr(755,-,-) %%p\n" \) -o \( -type d -fprintf $TOPDIR/nw-dirs "%%%%dir %%p\n" \) + find ".%{native_lisp}/$(ls -1 build-nw/native-lisp)" \ + \( -type f -name '*eln' -fprintf "$TOPDIR/nw-filelist" "%%%%attr(755,-,-) %%p\n" \) \ + -o \( -type d -fprintf "$TOPDIR/nw-dirlist" "%%%%dir %%p\n" \) ) -echo %{emacs_libexecdir}/${nw_pdmp} >> nw-eln-filelist +echo "%{emacs_libexecdir}/emacs-$(./build-nw/src/emacs --fingerprint).pdmp" \ + >> nw-filelist %endif # remove leading . from filelists -sed -i -e "s|\.%{native_lisp}|%{native_lisp}|" *-eln-filelist *-dirs +sed -i -e "s|\.%{native_lisp}|%{native_lisp}|" *-filelist *-dirlist # remove exec permissions from eln files to prevent the debuginfo extractor from # trying to extract debuginfo from them @@ -616,6 +619,8 @@ find %{buildroot}%{_libdir}/ -name '*eln' -type f | xargs chmod -x # see: https://bugzilla.redhat.com/show_bug.cgi?id=2157979#c11 find %{buildroot}%{_libdir}/ -name '*eln' -type f | xargs touch +export QA_SKIP_BUILD_ROOT=0 + %check # A number of tests that don't work on GNU EMBA are also unstable when @@ -711,29 +716,29 @@ fi --slave %{_mandir}/man1/etags.1.gz emacs.etags.man %{_mandir}/man1/etags.emacs.1.gz || : -%files -f pgtk-eln-filelist -f pgtk-dirs -%attr(0755,-,-) %ghost %{_bindir}/emacs +%files -f pgtk-filelist -f pgtk-dirlist +%ghost %{_bindir}/emacs %{_bindir}/emacs-%{version}-pgtk %{_bindir}/emacs-pgtk %{_datadir}/glib-2.0/schemas/org.gnu.emacs.defaults.gschema.xml %if %{with gtkx11} -%files gtk+x11 -f gtk+x11-eln-filelist -f gtk+x11-dirs -%attr(0755,-,-) %ghost %{_bindir}/emacs +%files gtk+x11 -f gtk+x11-filelist -f gtk+x11-dirlist +%ghost %{_bindir}/emacs %{_bindir}/emacs-%{version}-gtk+x11 %{_bindir}/emacs-gtk+x11 %endif %if %{with lucid} -%files lucid -f lucid-eln-filelist -f lucid-dirs -%attr(0755,-,-) %ghost %{_bindir}/emacs +%files lucid -f lucid-filelist -f lucid-dirlist +%ghost %{_bindir}/emacs %{_bindir}/emacs-%{version}-lucid %{_bindir}/emacs-lucid %endif %if %{with nw} -%files nw -f nw-eln-filelist -f nw-dirs -%attr(0755,-,-) %ghost %{_bindir}/emacs +%files nw -f nw-filelist -f nw-dirlist +%ghost %{_bindir}/emacs %{_bindir}/emacs-%{version}-nox %{_bindir}/emacs-%{version}-nw %{_bindir}/emacs-nox From 751093527054bcd7ffca9da09310112c4de3cd77 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 28 Oct 2024 14:47:17 +0000 Subject: [PATCH 048/111] Isolate builds from each other Fixes dumping failures on Emacs 30. --- emacs.spec | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/emacs.spec b/emacs.spec index 6a25efd..1673ed3 100644 --- a/emacs.spec +++ b/emacs.spec @@ -283,7 +283,9 @@ cat '%{SOURCE2}' '%{SOURCE3}' > keyring %{gpgverify} --keyring=keyring --signature='%{SOURCE1}' --data='%{SOURCE0}' rm keyring -%autosetup -p1 +%autosetup -N -c +cd %{name}-%{version} +%autopatch -p1 # Avoid trademark issues rm lisp/play/pong.el lisp/play/pong.elc \ @@ -302,15 +304,26 @@ ln -s ../../%{name}/%{version}/etc/COPYING doc ln -s ../../%{name}/%{version}/etc/NEWS doc +cd .. +%if %{with lucid} +cp -a %{name}-%{version} build-lucid +%endif +%if %{with nw} +cp -a %{name}-%{version} build-nw +%endif +%if %{with gtkx11} +cp -a %{name}-%{version} build-gtk+x11 +%endif +mv %{name}-%{version} build-pgtk + + %build export CFLAGS="-DMAIL_USE_LOCKF %{build_cflags}" %set_build_flags %if %{with lucid} # Build Lucid binary -mkdir build-lucid && cd build-lucid -ln -s ../configure . - +cd build-lucid %configure --program-suffix=-lucid \ --with-cairo \ --with-dbus \ @@ -338,8 +351,7 @@ cd .. %if %{with nw} # Build binary without X support -mkdir build-nw && cd build-nw -ln -s ../configure . +cd build-nw %configure --program-suffix=-nw \ --with-json \ --with-modules \ @@ -357,9 +369,7 @@ cd .. %if %{with gtkx11} # Build GTK/X11 binary -mkdir build-gtk+x11 && cd build-gtk+x11 -ln -s ../configure . - +cd build-gtk+x11 %configure --program-suffix=-gtk+x11 \ --with-cairo \ --with-dbus \ @@ -385,9 +395,7 @@ cd .. %endif # Build pure GTK binary -mkdir build-pgtk && cd build-pgtk -ln -s ../configure . - +cd build-pgtk %configure --with-cairo \ --with-dbus \ --with-gif \ @@ -746,15 +754,15 @@ fi %endif %files -n emacsclient -%license etc/COPYING +%license build-pgtk/etc/COPYING %{_bindir}/emacsclient %{_mandir}/man1/emacsclient.1* %files common -f common-filelist -f info-filelist %config(noreplace) %{_sysconfdir}/skel/.emacs %{_rpmconfigdir}/macros.d/macros.emacs -%license etc/COPYING -%doc doc/NEWS BUGS README +%license build-pgtk/etc/COPYING +%doc build-pgtk/doc/NEWS build-pgtk/BUGS build-pgtk/README %{_bindir}/ebrowse %{_bindir}/emacs-desktop %{_bindir}/etags.emacs From 3ba3bada539df33166bb88f92a20749cd2bfba44 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 31 Oct 2024 00:12:32 +0000 Subject: [PATCH 049/111] Drop emacs-terminal subpackage It was supposed to be temporary, as the then-only terminal emulator that supported the Malayalam language. These days, Konsole can be used instead (https://smc.org.in/en/articles/malayalam-linux-console/). --- emacs.spec | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/emacs.spec b/emacs.spec index 1673ed3..4fd79cd 100644 --- a/emacs.spec +++ b/emacs.spec @@ -19,9 +19,6 @@ Source3: https://keys.openpgp.org/vks/v1/by-fingerprint/CEA1DE21AB108493CC Source4: dotemacs.el Source5: site-start.el Source6: default.el -# Emacs Terminal Mode, #551949, #617355 -Source7: emacs-terminal.desktop -Source8: emacs-terminal.sh Source9: emacs-desktop.sh # Avoid trademark issues @@ -257,20 +254,6 @@ This package contains all the common files needed by emacs, emacs-gtk+x11, emacs-lucid, or emacs-nw. - -%package terminal -Summary: A desktop menu item for GNU Emacs terminal. -Requires: emacs = %{epoch}:%{version}-%{release} -BuildArch: noarch - -%description terminal -Contains a desktop menu item running GNU Emacs terminal. Install -emacs-terminal if you need a terminal with Malayalam support. - -Please note that emacs-terminal is a temporary package and it will be -removed when another terminal becomes capable of handling Malayalam. - - %package devel Summary: Development header files for Emacs @@ -521,16 +504,9 @@ install -p -m 0644 emacs.pc %{buildroot}/%{pkgconfig} mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d install -p -m 0644 macros.emacs %{buildroot}%{_rpmconfigdir}/macros.d/ -# Installing emacs-terminal binary -install -p -m 755 %SOURCE8 %{buildroot}%{_bindir}/emacs-terminal - # After everything is installed, remove info dir rm -f %{buildroot}%{_infodir}/dir -# Install desktop files -desktop-file-install --dir=%{buildroot}%{_datadir}/applications \ - %SOURCE7 - # Install a wrapper to avoid running the Wayland-only build on X11 install -p -m 0755 %SOURCE9 %{buildroot}%{_bindir}/emacs-desktop @@ -795,10 +771,6 @@ fi %attr(0644,root,root) %config %{site_lisp}/site-start.el %{pkgconfig}/emacs.pc -%files terminal -%{_bindir}/emacs-terminal -%{_datadir}/applications/emacs-terminal.desktop - %files devel %{_includedir}/emacs-module.h From f201351dff6718d7cdb610992e6644082accbdfb Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 31 Oct 2024 14:59:17 +0000 Subject: [PATCH 050/111] Fix typo in emacs-gtk+x11 Requires. --- emacs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 4fd79cd..8b12729 100644 --- a/emacs.spec +++ b/emacs.spec @@ -155,7 +155,7 @@ GTK toolkit. %if %{with gtkx11} %package gtk+x11 Summary: GNU Emacs text editor with GTK toolkit X support -Requires: libgccjit +Requires: google-noto-sans-mono-vf-fonts Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} From 2094f8176e4b566f5ed2dbbc9ad7775f5bb41b1c Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 3 Jan 2025 14:01:21 +0000 Subject: [PATCH 051/111] Require XPM pixbuf loader for GTK builds (#2335309) --- emacs.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/emacs.spec b/emacs.spec index 8b12729..22ec3cc 100644 --- a/emacs.spec +++ b/emacs.spec @@ -124,12 +124,17 @@ BuildRequires: pkgconfig(systemd) BuildRequires: util-linux %endif +%if "%{_lib}" == "lib64" +%global marker ()(64bit) +%endif + # Emacs doesn't run without a font, rhbz#732422 Requires: google-noto-sans-mono-vf-fonts Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} +Requires: libpixbufloader-xpm.so%{?marker} Provides: emacs(bin) = %{epoch}:%{version}-%{release} Supplements: ((libwayland-server and emacs-common) unless emacs-nw) @@ -159,6 +164,7 @@ Requires: google-noto-sans-mono-vf-fonts Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} +Requires: libpixbufloader-xpm.so%{?marker} Provides: emacs(bin) = %{epoch}:%{version}-%{release} Supplements: ((xorg-x11-server-Xorg and emacs-common) unless emacs-nw) From bc8ee9cedf64f3ea836d6623efc4c72b3f2ca5e0 Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Wed, 15 Jan 2025 12:05:46 +0800 Subject: [PATCH 052/111] rebuild rawhide against tree-sitter-0.24 From c8f0e7e4469f779e3cd61b40c0b20baba779002c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 16:49:01 +0000 Subject: [PATCH 053/111] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 253c482c86fe71257cb34c54d94e5a0758326e83 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 17 Jan 2025 12:42:03 +0000 Subject: [PATCH 054/111] Debug configure failures. --- emacs.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/emacs.spec b/emacs.spec index 22ec3cc..1478858 100644 --- a/emacs.spec +++ b/emacs.spec @@ -332,7 +332,8 @@ cd build-lucid --with-x-toolkit=lucid \ --with-xft \ --with-xinput2 \ - --with-xpm + --with-xpm \ + || ( cat config.log && false ) %{setarch} %make_build bootstrap %{setarch} %make_build cd .. @@ -350,7 +351,8 @@ cd build-nw %if %{without gpm} --with-gpm=no \ %endif - --with-x=no + --with-x=no \ + || ( cat config.log && false ) %{setarch} %make_build bootstrap %{setarch} %make_build cd .. @@ -377,7 +379,8 @@ cd build-gtk+x11 --with-webp \ --with-x-toolkit=gtk3 \ --with-xinput2 \ - --with-xpm + --with-xpm \ + || ( cat config.log && false ) %{setarch} %make_build bootstrap %{setarch} %make_build cd .. @@ -401,7 +404,8 @@ cd build-pgtk --with-tiff \ --with-tree-sitter \ --with-webp \ - --with-xpm + --with-xpm \ + || ( cat config.log && false ) %{setarch} %make_build bootstrap %{setarch} %make_build cd .. From a64c461ff74eceb29475f0401fd97796a0fe5463 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 3 Feb 2025 12:20:53 +0000 Subject: [PATCH 055/111] Rebuild against tree-sitter-0.25.1-3.fc42 From 563755ba2172a8515280f831ce2664419af05e23 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 3 Feb 2025 12:23:18 +0000 Subject: [PATCH 056/111] Rebuild against tree-sitter-0.25.1-5.fc42 From efc6d1cc8f4378f13f8872716922e5c0071090de Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 19 Feb 2025 14:41:28 +0000 Subject: [PATCH 057/111] Rebuild against tree-sitter-0.25.2-3.fc43 From 782c788973dd092e274c71466d8a04347692f996 Mon Sep 17 00:00:00 2001 From: Tom spot Callaway Date: Thu, 20 Feb 2025 12:06:37 -0500 Subject: [PATCH 058/111] rebuild for tree-sitter --- emacs.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 1478858..4beea30 100644 --- a/emacs.spec +++ b/emacs.spec @@ -784,6 +784,5 @@ fi %files devel %{_includedir}/emacs-module.h - %changelog %autochangelog From bfeb333323acb75940489ea186b9c35455d75ef5 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 23 Oct 2023 22:57:09 +0530 Subject: [PATCH 059/111] Update to version 30.0.91. --- .gitignore | 2 + 0001-Apply-display-kluge-for-PGTK-too.patch | 50 ------------------- 0001-Fix-failing-help-fns-test.patch | 30 ----------- 0001-Fix-flymake-tests-with-GCC-14.patch | 28 ----------- ...nt-failure-of-dired-test-bug27243-02.patch | 30 ----------- ...unfinished-edit-01-when-temp-dirname.patch | 29 ----------- ...-subcommand-reset-in-pipeline-is-uns.patch | 25 ---------- 12BB9B400EE3F77282864D18272B5C54E015416A | 31 ++++++++++++ emacs-pgtk-on-x-error-message.patch | 12 ++--- emacs-system-crypto-policies.patch | 3 +- emacs.spec | 30 ++++------- 11 files changed, 52 insertions(+), 218 deletions(-) delete mode 100644 0001-Apply-display-kluge-for-PGTK-too.patch delete mode 100644 0001-Fix-failing-help-fns-test.patch delete mode 100644 0001-Fix-flymake-tests-with-GCC-14.patch delete mode 100644 0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch delete mode 100644 0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch delete mode 100644 0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch create mode 100644 12BB9B400EE3F77282864D18272B5C54E015416A diff --git a/.gitignore b/.gitignore index 71d5258..5a24e8f 100644 --- a/.gitignore +++ b/.gitignore @@ -40,5 +40,7 @@ /emacs-29.3.tar.xz.sig /emacs-29.4.tar.xz /emacs-29.4.tar.xz.sig +/emacs-30.0.91.tar.xz +/emacs-30.0.91.tar.xz.sig /php-mode.el /results_emacs/ diff --git a/0001-Apply-display-kluge-for-PGTK-too.patch b/0001-Apply-display-kluge-for-PGTK-too.patch deleted file mode 100644 index 13c9cb3..0000000 --- a/0001-Apply-display-kluge-for-PGTK-too.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 2f348ffee3777a8e2b02814d8cc50d282d98d366 Mon Sep 17 00:00:00 2001 -From: Peter Oliver -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 - diff --git a/0001-Fix-failing-help-fns-test.patch b/0001-Fix-failing-help-fns-test.patch deleted file mode 100644 index c24d7f5..0000000 --- a/0001-Fix-failing-help-fns-test.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 75ca15f2a3146b17fde5e2a50ad9102c6108ba7f Mon Sep 17 00:00:00 2001 -From: Stefan Kangas -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 - diff --git a/0001-Fix-flymake-tests-with-GCC-14.patch b/0001-Fix-flymake-tests-with-GCC-14.patch deleted file mode 100644 index 484561d..0000000 --- a/0001-Fix-flymake-tests-with-GCC-14.patch +++ /dev/null @@ -1,28 +0,0 @@ -From a769f171e7ebb8e30f198f4328d46f47fe7958fb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ulrich=20M=C3=BCller?= -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 - diff --git a/0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch b/0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch deleted file mode 100644 index f3e821f..0000000 --- a/0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch +++ /dev/null @@ -1,30 +0,0 @@ -From c86645dde30fbd54ae0f187e4428a09ad75e0ba8 Mon Sep 17 00:00:00 2001 -From: Peter Oliver -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 - diff --git a/0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch b/0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch deleted file mode 100644 index 370d314..0000000 --- a/0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 90734f5a3ba9998886e0b03382878a2fb514d015 Mon Sep 17 00:00:00 2001 -From: Peter Oliver -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 - diff --git a/0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch b/0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch deleted file mode 100644 index 94b83bf..0000000 --- a/0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 8ae158173d1d748d55e2605c04d33a95739e055c Mon Sep 17 00:00:00 2001 -From: Peter Oliver -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 - diff --git a/12BB9B400EE3F77282864D18272B5C54E015416A b/12BB9B400EE3F77282864D18272B5C54E015416A new file mode 100644 index 0000000..47fb297 --- /dev/null +++ b/12BB9B400EE3F77282864D18272B5C54E015416A @@ -0,0 +1,31 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: 12BB 9B40 0EE3 F772 8286 4D18 272B 5C54 E015 416A +Comment: Andrea Corallo + +xsFNBGa/sd8BEAC7hQAGte6YvxDaiTutpSkVrb+zJBGcEW/AroE/dduBn8mfxa/Y +i71C2GV/y03aibdaO+cXPULAkkuJVDnFk57hn3w9zo98LzqDSEgNFcAUSSSQdyj7 +Wn3J26doRpFQKnv3dbx1yZRZccbLgt/AH6hzhvNjFbYZ53LYE9rKzUYLTNHDhUI4 +QTda2PvgWoySXcjBKhyIgg9zZLSc2w4ZwhO9WDVai58xNsl+YyU2HqVPpJZSCX0j +liIooHOEL2D601ByrWmePRGFR0tD6V9xj5jWuusErb78r57NOPsRCRKCKcg/v/kl +fA5+byvanw27PDa8zoheXgF41uDf96keOQPBve3TE1Oy4x+G55zuP9KNQ5aSCG49 +x0Cc7BET23JmiWUnz1GUbM7vka5ell+smmq+kTDtK47L+4N954a6CR0esPLJMLF6 +Ub2y8SY2XPn1Bv8lsN77f0L5yyhnK72H+mf4fS/qjJlN0F+DWx49Z8it9rbG8Atc +X6Vqzv5qaDPbCpAqdqs2qrv3nAdvYOlwxmVh6Hxq1EOFT2v49dmn3viVBNnuT7yW +tyvpTDyvfLKOnfH+OLLuqPUFZnxt8mU8ieNEnvIYojSOFyddJAh2uOI3sqjLHrDg +PRAYFv9jp7K7pk+S054mdF31qD+TTxjWQtNI8Sxh/Q71Vtz7JyqYWd/JCQARAQAB +zSFBbmRyZWEgQ29yYWxsbyA8YWNvcmFsbG9AZ251Lm9yZz7CwZQEEwEKAD4WIQQS +u5tADuP3coKGTRgnK1xU4BVBagUCZr+x3wIbAwUJA8JnAAULCQgHAgYVCgkICwIE +FgIDAQIeAQIXgAAKCRAnK1xU4BVBaj/0D/4ogwPjg6Cwyi8pmRYx9gOjQNIRtjOb +2aHFYQs9luFy20Wlt/7QtelDH+NLCAb5PKvhDI3Sw+SIoheAndhbzqW7GEW5J9G7 +10PPkCUCjbicJOKsUkMv03wS6IrelUYzgjbmGYRo2vYcSb+BHXQR4MuxDSL/2vPD +LHYKwij9K+FozgJVfjq5n97l/wsGsc/orRiST23ykiXyCZweulGLhXnoCghHrnB1 +B+xBaCv3P1GW/BZZgXGPQ+1XMOsFlP951vfjirlHnJMvMDkMkNhT6Qh282jTokWN +TVQqKUv5tpdNkId+QmUhzC+DcfoOsegB3wWa6VQ/w1cG9mkoPUTT8Y8fo4FXnWwV +U4472JuZdQYFDAKEnTsW1TRNgBb5xLNNCUmDUVDndgn1WtZIZx18QBtJ1CHhycaN +C68McWuvvENhEM8clUXIHundgeDce4gcQC23Un7NT0PbNTwvGPfBSaoVax5ZVHuZ +Tr2pTHqAqqi4YLnrE5R06OIWQzVOVs5NZplDPZGXZOxryXa3ssLxjL2VYbo4AAUZ +h3fyVOzNHlGLT3Egj4XHDuDFcswUimD5SmrqQQwg94CgXExDisqH9Uo8L7Zxf/AG +UpIsxpDv219GOdTffbzl01W6oaP4obiTwMFUaQ7ljdCfq19KYdo576touTU+/48q +7AjjL28Eznhz0Q== +=goOm +-----END PGP PUBLIC KEY BLOCK----- diff --git a/emacs-pgtk-on-x-error-message.patch b/emacs-pgtk-on-x-error-message.patch index cfc7c3d..b49abee 100644 --- a/emacs-pgtk-on-x-error-message.patch +++ b/emacs-pgtk-on-x-error-message.patch @@ -12,12 +12,12 @@ 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."); + " System. That configuration is unsupported and\n" + " will lead to sporadic crashes during transfer of\n" + " large selection data. It will also lead to\n" +- " various problems with keyboard input.\n"); ++ " various problems with keyboard input.\n" ++ "\nInstall emacs-gtk+x11 or emacs-lucid package.\n"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_container_add (GTK_CONTAINER (content_area), label); gtk_widget_show (label); diff --git a/emacs-system-crypto-policies.patch b/emacs-system-crypto-policies.patch index 2f2435c..f9321ce 100644 --- a/emacs-system-crypto-policies.patch +++ b/emacs-system-crypto-policies.patch @@ -1,11 +1,12 @@ --- a/src/gnutls.c 2016-01-24 10:29:58.000000000 +0100 +++ b/src/gnutls.c 2016-02-02 09:32:28.477274274 +0100 -@@ -1557,7 +1557,7 @@ +@@ -1557,8 +1557,8 @@ gnutls_certificate_credentials_t x509_cred = NULL; gnutls_anon_client_credentials_t anon_cred = NULL; Lisp_Object global_init; - char const *priority_string_ptr = "NORMAL"; /* default priority string. */ + char const *priority_string_ptr = "@SYSTEM"; /* default priority string. */ char *c_hostname; + const char *c_pass; /* Placeholders for the property list elements. */ diff --git a/emacs.spec b/emacs.spec index 4beea30..4ad89b9 100644 --- a/emacs.spec +++ b/emacs.spec @@ -8,14 +8,21 @@ Summary: GNU Emacs text editor Name: emacs Epoch: 1 -Version: 29.4 +Version: 30.0.91 Release: %autorelease License: GPL-3.0-or-later AND CC0-1.0 URL: https://www.gnu.org/software/emacs/ +%if %{lua: print(select(3, string.find(rpm.expand('%version'), '%d+%.%d+%.(%d+)')))} >= 90 +Source0: https://alpha.gnu.org/gnu/emacs/pretest/emacs-%{version}.tar.xz +Source1: https://alpha.gnu.org/gnu/emacs/pretest/emacs-%{version}.tar.xz.sig +%else Source0: https://ftp.gnu.org/gnu/emacs/emacs-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/emacs/emacs-%{version}.tar.xz.sig -Source2: https://keys.openpgp.org/vks/v1/by-fingerprint/17E90D521672C04631B1183EE78DAE0F3115E06B -Source3: https://keys.openpgp.org/vks/v1/by-fingerprint/CEA1DE21AB108493CC9C65742E82323B8F4353EE +%endif +Source100: https://keys.openpgp.org/vks/v1/by-fingerprint/17E90D521672C04631B1183EE78DAE0F3115E06B +Source101: https://keys.openpgp.org/vks/v1/by-fingerprint/CEA1DE21AB108493CC9C65742E82323B8F4353EE +Source102: https://keys.openpgp.org/vks/v1/by-fingerprint/12BB9B400EE3F77282864D18272B5C54E015416A + Source4: dotemacs.el Source5: site-start.el Source6: default.el @@ -37,25 +44,15 @@ Patch: emacs-libdir-vs-systemd.patch Patch: emacs-desktop.patch Patch: emacs-pgtk-on-x-error-message.patch -# Skip failing tests (patches taken from Emacs Git) -Patch: 0001-Fix-failing-help-fns-test.patch -Patch: 0001-Fix-flymake-tests-with-GCC-14.patch - -# Fix intermittently failing test (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72073) -Patch: 0001-Fix-wdired-test-unfinished-edit-01-when-temp-dirname.patch - # Fix intermittently failing test (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72120) -Patch: 0001-Fix-intermittent-failure-of-dired-test-bug27243-02.patch Patch: 0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch # Skip intermittently failing tests -Patch: 0002-Test-eshell-test-subcommand-reset-in-pipeline-is-uns.patch Patch: 0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch # Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2276822 # (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63555). If GDK ever # gets any new backends, this patch may need extending. -Patch: 0001-Apply-display-kluge-for-PGTK-too.patch Patch: 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch BuildRequires: alsa-lib-devel @@ -76,7 +73,6 @@ BuildRequires: gnutls-devel BuildRequires: gtk3-devel BuildRequires: gzip BuildRequires: harfbuzz-devel -BuildRequires: jansson-devel BuildRequires: libacl-devel BuildRequires: libappstream-glib BuildRequires: libgccjit-devel @@ -268,7 +264,7 @@ Development header files for Emacs. %prep -cat '%{SOURCE2}' '%{SOURCE3}' > keyring +cat '%{SOURCE100}' '%{SOURCE101}' '%{SOURCE102}' > keyring %{gpgverify} --keyring=keyring --signature='%{SOURCE1}' --data='%{SOURCE0}' rm keyring @@ -320,7 +316,6 @@ cd build-lucid --with-gpm=no \ --with-harfbuzz \ --with-jpeg \ - --with-json \ --with-modules \ --with-native-compilation=aot \ --with-png \ @@ -343,7 +338,6 @@ cd .. # Build binary without X support cd build-nw %configure --program-suffix=-nw \ - --with-json \ --with-modules \ --with-native-compilation=aot \ --with-sqlite3 \ @@ -368,7 +362,6 @@ cd build-gtk+x11 --with-gpm=no \ --with-harfbuzz \ --with-jpeg \ - --with-json \ --with-modules \ --with-native-compilation=aot \ --with-png \ @@ -394,7 +387,6 @@ cd build-pgtk --with-gpm=no \ --with-harfbuzz \ --with-jpeg \ - --with-json \ --with-modules \ --with-native-compilation=aot \ --with-pgtk \ From fe4cba13665a15e2005bbca8f6724609b3877dc7 Mon Sep 17 00:00:00 2001 From: Bhavin Gandhi Date: Sat, 28 Sep 2024 10:50:56 +0530 Subject: [PATCH 060/111] Fix for failing uniquify-tests https://debbugs.gnu.org/cgi/bugreport.cgi?bug=73205 Signed-off-by: Bhavin Gandhi --- ...ify-tests-in-non-version-controlled-.patch | 27 +++++++++++++++++++ emacs.spec | 4 +++ 2 files changed, 31 insertions(+) create mode 100644 0001-Don-t-fail-uniquify-tests-in-non-version-controlled-.patch diff --git a/0001-Don-t-fail-uniquify-tests-in-non-version-controlled-.patch b/0001-Don-t-fail-uniquify-tests-in-non-version-controlled-.patch new file mode 100644 index 0000000..0a83f6b --- /dev/null +++ b/0001-Don-t-fail-uniquify-tests-in-non-version-controlled-.patch @@ -0,0 +1,27 @@ +From ca3932121a893df3c4b08dbe11f2c002da4a421f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= +Date: Fri, 13 Sep 2024 12:13:53 +0200 +Subject: [PATCH] Don't fail uniquify-tests in non-version-controlled source + trees + +* test/lisp/uniquify-tests.el (uniquify-project-transform): +Skip test if there is no project (bug#73205). +--- + test/lisp/uniquify-tests.el | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/lisp/uniquify-tests.el b/test/lisp/uniquify-tests.el +index 4124ce056d3..9b33c9d7d47 100644 +--- a/test/lisp/uniquify-tests.el ++++ b/test/lisp/uniquify-tests.el +@@ -129,6 +129,7 @@ uniquify-trailing-separator-p is ignored" + (require 'project) + (ert-deftest uniquify-project-transform () + "`project-uniquify-dirname-transform' works" ++ (skip-unless (project-current nil source-directory)) + (let ((uniquify-dirname-transform #'project-uniquify-dirname-transform) + (project-vc-name "foo1/bar") + bufs) +-- +2.45.1 + diff --git a/emacs.spec b/emacs.spec index 4ad89b9..2f2cc4b 100644 --- a/emacs.spec +++ b/emacs.spec @@ -55,6 +55,10 @@ Patch: 0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch # gets any new backends, this patch may need extending. Patch: 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch +# Patch for a failing test (from Emacs Git): +# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=73205 +Patch: 0001-Don-t-fail-uniquify-tests-in-non-version-controlled-.patch + BuildRequires: alsa-lib-devel BuildRequires: atk-devel BuildRequires: autoconf From da4bd493ac08de46dd2546f4227216eb66c3a397 Mon Sep 17 00:00:00 2001 From: Bhavin Gandhi Date: Sat, 28 Sep 2024 20:53:20 +0530 Subject: [PATCH 061/111] Elisp info has new image and a text file Signed-off-by: Bhavin Gandhi --- emacs.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/emacs.spec b/emacs.spec index 2f2cc4b..329fae8 100644 --- a/emacs.spec +++ b/emacs.spec @@ -547,6 +547,8 @@ for info_f in %info_files; do done # info.gz is a rename of info.info.gz and thus needs special handling echo "%{_infodir}/info*" >> info-filelist +# elisp.info.gz has additional files +echo "%{_infodir}/elisp_type_hierarchy*" >> info-filelist # Put the lists together after filtering ./usr to /usr sed -i -e "s|\.%{_prefix}|%{_prefix}|" *-files From 6867865075b608e1d6c1d0140f66f995d5ed0128 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 28 Oct 2024 00:22:30 +0000 Subject: [PATCH 062/111] Update to version 30.0.92. --- ...ify-tests-in-non-version-controlled-.patch | 27 ------------------- emacs.spec | 6 +---- 2 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 0001-Don-t-fail-uniquify-tests-in-non-version-controlled-.patch diff --git a/0001-Don-t-fail-uniquify-tests-in-non-version-controlled-.patch b/0001-Don-t-fail-uniquify-tests-in-non-version-controlled-.patch deleted file mode 100644 index 0a83f6b..0000000 --- a/0001-Don-t-fail-uniquify-tests-in-non-version-controlled-.patch +++ /dev/null @@ -1,27 +0,0 @@ -From ca3932121a893df3c4b08dbe11f2c002da4a421f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= -Date: Fri, 13 Sep 2024 12:13:53 +0200 -Subject: [PATCH] Don't fail uniquify-tests in non-version-controlled source - trees - -* test/lisp/uniquify-tests.el (uniquify-project-transform): -Skip test if there is no project (bug#73205). ---- - test/lisp/uniquify-tests.el | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/test/lisp/uniquify-tests.el b/test/lisp/uniquify-tests.el -index 4124ce056d3..9b33c9d7d47 100644 ---- a/test/lisp/uniquify-tests.el -+++ b/test/lisp/uniquify-tests.el -@@ -129,6 +129,7 @@ uniquify-trailing-separator-p is ignored" - (require 'project) - (ert-deftest uniquify-project-transform () - "`project-uniquify-dirname-transform' works" -+ (skip-unless (project-current nil source-directory)) - (let ((uniquify-dirname-transform #'project-uniquify-dirname-transform) - (project-vc-name "foo1/bar") - bufs) --- -2.45.1 - diff --git a/emacs.spec b/emacs.spec index 329fae8..15d5932 100644 --- a/emacs.spec +++ b/emacs.spec @@ -8,7 +8,7 @@ Summary: GNU Emacs text editor Name: emacs Epoch: 1 -Version: 30.0.91 +Version: 30.0.92 Release: %autorelease License: GPL-3.0-or-later AND CC0-1.0 URL: https://www.gnu.org/software/emacs/ @@ -55,10 +55,6 @@ Patch: 0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch # gets any new backends, this patch may need extending. Patch: 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch -# Patch for a failing test (from Emacs Git): -# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=73205 -Patch: 0001-Don-t-fail-uniquify-tests-in-non-version-controlled-.patch - BuildRequires: alsa-lib-devel BuildRequires: atk-devel BuildRequires: autoconf From 98b6dedc7253a80193e50ac262d3006f08380590 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 20 Dec 2024 11:17:44 +0000 Subject: [PATCH 063/111] Update to version 30.0.93. --- emacs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 15d5932..dccd04a 100644 --- a/emacs.spec +++ b/emacs.spec @@ -8,7 +8,7 @@ Summary: GNU Emacs text editor Name: emacs Epoch: 1 -Version: 30.0.92 +Version: 30.0.93 Release: %autorelease License: GPL-3.0-or-later AND CC0-1.0 URL: https://www.gnu.org/software/emacs/ From c3e999a02e9ad792b41632f32681d91a23015aa7 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 24 Feb 2025 20:56:15 +0000 Subject: [PATCH 064/111] Disable GC mark trace buffer for about 5% better GC performance. --- emacs.spec | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/emacs.spec b/emacs.spec index dccd04a..08aba83 100644 --- a/emacs.spec +++ b/emacs.spec @@ -309,7 +309,9 @@ export CFLAGS="-DMAIL_USE_LOCKF %{build_cflags}" %if %{with lucid} # Build Lucid binary cd build-lucid -%configure --program-suffix=-lucid \ +%configure \ + --disable-gc-mark-trace \ + --program-suffix=-lucid \ --with-cairo \ --with-dbus \ --with-gif \ @@ -337,7 +339,9 @@ cd .. %if %{with nw} # Build binary without X support cd build-nw -%configure --program-suffix=-nw \ +%configure \ + --disable-gc-mark-trace \ + --program-suffix=-nw \ --with-modules \ --with-native-compilation=aot \ --with-sqlite3 \ @@ -355,7 +359,9 @@ cd .. %if %{with gtkx11} # Build GTK/X11 binary cd build-gtk+x11 -%configure --program-suffix=-gtk+x11 \ +%configure \ + --disable-gc-mark-trace \ + --program-suffix=-gtk+x11 \ --with-cairo \ --with-dbus \ --with-gif \ @@ -381,7 +387,9 @@ cd .. # Build pure GTK binary cd build-pgtk -%configure --with-cairo \ +%configure \ + --disable-gc-mark-trace \ + --with-cairo \ --with-dbus \ --with-gif \ --with-gpm=no \ From af2a940d2302e9eb2b4baa7d7ac4e95c5eb0093c Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 24 Feb 2025 20:57:55 +0000 Subject: [PATCH 065/111] Update to version 30.1. Fixes #2347206, CVE-2024-53920, CVE-2025-1244. --- .gitignore | 2 ++ emacs.spec | 4 ++-- sources | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 5a24e8f..a859577 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,5 @@ /emacs-30.0.91.tar.xz.sig /php-mode.el /results_emacs/ +/emacs-30.1.tar.xz +/emacs-30.1.tar.xz.sig diff --git a/emacs.spec b/emacs.spec index 08aba83..b9e173c 100644 --- a/emacs.spec +++ b/emacs.spec @@ -8,11 +8,11 @@ Summary: GNU Emacs text editor Name: emacs Epoch: 1 -Version: 30.0.93 +Version: 30.1 Release: %autorelease License: GPL-3.0-or-later AND CC0-1.0 URL: https://www.gnu.org/software/emacs/ -%if %{lua: print(select(3, string.find(rpm.expand('%version'), '%d+%.%d+%.(%d+)')))} >= 90 +%if %{lua: print(select(3, string.find(rpm.expand('%version'), '%d+%.(%d+)')))} == 0 Source0: https://alpha.gnu.org/gnu/emacs/pretest/emacs-%{version}.tar.xz Source1: https://alpha.gnu.org/gnu/emacs/pretest/emacs-%{version}.tar.xz.sig %else diff --git a/sources b/sources index e7ca0a5..11bd85d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (emacs-29.4.tar.xz) = 66b38081cb01d2c46ff7beefb45986cc225b4c922c30712ad0d456c6cae5507176ed99418c8f26948c5375c8afde4e4b2507d23ed997dbb5392d12150a121d80 -SHA512 (emacs-29.4.tar.xz.sig) = 6c20269c260fb7f6d8b9b4582be25179a5adaaa1b9d94e68d55890f7b0b211dfd396c7005694b0154471ab3769f12e5067b8f4ec21720755d9087d89a8c722f6 +SHA512 (emacs-30.1.tar.xz) = 511a6a1d2a170a207913692e1349344b70a0b5202b8d1ae27dc7256e589c77ae9e35da16fc2a098bf9f1b8d0f60233f452ed8d6744b70b907f3484c42f2d7d7f +SHA512 (emacs-30.1.tar.xz.sig) = 59ef724ff765fb76b9b9cfb8bd3853e001e9e6cefa65e2c49822238c11d619f916284f5b118cefff1bcd6c70f4ebcc1e420754cc225002164b56ced3caa954bd From 49d824fe187d8987b79643383bd6d2489f2c8f76 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 25 Feb 2025 16:05:41 +0000 Subject: [PATCH 066/111] Rebuild against tree-sitter-0.25.2-5.fc42 From 729b38fa3fa3c34b7b63f055f35b4602ca415c75 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 25 Feb 2025 17:25:54 +0000 Subject: [PATCH 067/111] Abandon checks There are currently too many intermittent failures to make them useful. --- ...l-sec-tests-as-unstable-when-built-i.patch | 84 ------------------- ...-to-stabalise-dired-test-bug27243-02.patch | 38 --------- emacs.spec | 32 ------- 3 files changed, 154 deletions(-) delete mode 100644 0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch delete mode 100644 0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch diff --git a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch b/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch deleted file mode 100644 index 68c21c8..0000000 --- a/0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch +++ /dev/null @@ -1,84 +0,0 @@ -From bf512d1bad98bcd1dc87da93fd2e7f415be14501 Mon Sep 17 00:00:00 2001 -From: Peter Oliver -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 | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el -index 7abd1bd65a3..2bd52bf3ee0 100644 ---- a/test/lisp/gnus/mml-sec-tests.el -+++ b/test/lisp/gnus/mml-sec-tests.el -@@ -210,6 +210,7 @@ mml-secure-test-key-fixture - - (ert-deftest mml-secure-key-checks () - "Test mml-secure-check-user-id and mml-secure-check-sub-key on sample keys." -+ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable)) - (skip-unless (test-conf)) - (mml-secure-test-fixture - (lambda () -@@ -278,6 +279,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 () -@@ -317,6 +319,7 @@ mml-secure-find-usable-keys-1 - - (ert-deftest mml-secure-find-usable-keys-2 () - "Test different ways to search for keys." -+ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable)) - (skip-unless (test-conf)) - (mml-secure-test-fixture - (lambda () -@@ -369,6 +372,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 () -@@ -380,6 +384,7 @@ mml-secure-select-preferred-keys-1 - - (ert-deftest mml-secure-select-preferred-keys-2 () - "If multiple keys exists for an e-mail address, customization is necessary." -+ :tags (if (getenv "RPM_BUILD_ROOT") '(:unstable)) - (skip-unless (test-conf)) - (mml-secure-test-fixture - (lambda () -@@ -407,6 +412,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 +587,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 +632,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.47.0 - diff --git a/0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch b/0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch deleted file mode 100644 index d7aa8fe..0000000 --- a/0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch +++ /dev/null @@ -1,38 +0,0 @@ -From e0f0549ac6766ab565dbd581098b96792a807727 Mon Sep 17 00:00:00 2001 -From: Peter Oliver -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 - diff --git a/emacs.spec b/emacs.spec index b9e173c..ed0c049 100644 --- a/emacs.spec +++ b/emacs.spec @@ -44,12 +44,6 @@ Patch: emacs-libdir-vs-systemd.patch Patch: emacs-desktop.patch Patch: emacs-pgtk-on-x-error-message.patch -# Fix intermittently failing test (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72120) -Patch: 0004-Try-harder-to-stabalise-dired-test-bug27243-02.patch - -# Skip intermittently failing tests -Patch: 0003-Mark-multiple-mml-sec-tests-as-unstable-when-built-i.patch - # Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2276822 # (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63555). If GDK ever # gets any new backends, this patch may need extending. @@ -619,32 +613,6 @@ export QA_SKIP_BUILD_ROOT=0 %check -# A number of tests that don't work on GNU EMBA are also unstable when -# run in Koji. -export EMACS_EMBA_CI=1 - -cd build-pgtk -%make_build check -cd .. - -%if %{with gtkx11} -cd build-gtk+x11 -%make_build check -cd .. -%endif - -%if %{with lucid} -cd build-lucid -%make_build check -cd .. -%endif - -%if %{with nw} -cd build-nw -%make_build check -cd .. -%endif - appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/*.metainfo.xml desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop From 3acf65e7aa5f9b54b3d25428e114029744f606a7 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 27 Feb 2025 01:26:42 +0000 Subject: [PATCH 068/111] Avoid duplicating native lisp across subpackages. --- emacs.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/emacs.spec b/emacs.spec index ed0c049..4327ea7 100644 --- a/emacs.spec +++ b/emacs.spec @@ -558,7 +558,7 @@ rm %{buildroot}%{_datadir}/icons/hicolor/scalable/mimetypes/emacs-document23.svg # Install native compiled Lisp of all builds (TOPDIR=${PWD} cd %{buildroot} - find ".%{native_lisp}/$(ls -1 build-pgtk/native-lisp)" \ + find ".%{native_lisp}/$(ls $TOPDIR/build-pgtk/native-lisp)" \ \( -type f -name '*eln' -fprintf "$TOPDIR/pgtk-filelist" "%%%%attr(755,-,-) %%p\n" \) \ -o \( -type d -fprintf "$TOPDIR/pgtk-dirlist" "%%%%dir %%p\n" \) ) @@ -568,7 +568,7 @@ echo "%{emacs_libexecdir}/emacs-$(./build-pgtk/src/emacs --fingerprint).pdmp" \ %if %{with gtkx11} (TOPDIR=${PWD} cd %{buildroot} - find ".%{native_lisp}/$(ls -1 build-gtk+x11/native-lisp)" \ + find ".%{native_lisp}/$(ls $TOPDIR/build-gtk+x11/native-lisp)" \ \( -type f -name '*eln' -fprintf "$TOPDIR/gtk+x11-filelist" "%%%%attr(755,-,-) %%p\n" \) \ -o \( -type d -fprintf "$TOPDIR/gtk+x11-dirlist" "%%%%dir %%p\n" \) ) @@ -579,7 +579,7 @@ echo "%{emacs_libexecdir}/emacs-$(./build-gtk+x11/src/emacs --fingerprint).pdmp" %if %{with lucid} (TOPDIR=${PWD} cd %{buildroot} - find ".%{native_lisp}/$(ls -1 build-lucid/native-lisp)" \ + find ".%{native_lisp}/$(ls $TOPDIR/build-lucid/native-lisp)" \ \( -type f -name '*eln' -fprintf "$TOPDIR/lucid-filelist" "%%%%attr(755,-,-) %%p\n" \) \ -o \( -type d -fprintf "$TOPDIR/lucid-dirlist" "%%%%dir %%p\n" \) ) @@ -590,7 +590,7 @@ echo "%{emacs_libexecdir}/emacs-$(./build-lucid/src/emacs --fingerprint).pdmp" \ %if %{with nw} (TOPDIR=${PWD} cd %{buildroot} - find ".%{native_lisp}/$(ls -1 build-nw/native-lisp)" \ + find ".%{native_lisp}/$(ls $TOPDIR/build-nw/native-lisp)" \ \( -type f -name '*eln' -fprintf "$TOPDIR/nw-filelist" "%%%%attr(755,-,-) %%p\n" \) \ -o \( -type d -fprintf "$TOPDIR/nw-dirlist" "%%%%dir %%p\n" \) ) From 72a21b107c6e6a9be3ece8042fac31055a5e8f63 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 27 Feb 2025 12:11:54 +0000 Subject: [PATCH 069/111] Stricter matching of native-compiled lisp files. --- emacs.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/emacs.spec b/emacs.spec index 4327ea7..fb6c091 100644 --- a/emacs.spec +++ b/emacs.spec @@ -603,11 +603,13 @@ sed -i -e "s|\.%{native_lisp}|%{native_lisp}|" *-filelist *-dirlist # remove exec permissions from eln files to prevent the debuginfo extractor from # trying to extract debuginfo from them -find %{buildroot}%{_libdir}/ -name '*eln' -type f | xargs chmod -x +find %{buildroot}%{native_lisp}/ -name '*.eln' -type f -print0 \ + | xargs -0 chmod -x # ensure native files are newer than byte-code files # see: https://bugzilla.redhat.com/show_bug.cgi?id=2157979#c11 -find %{buildroot}%{_libdir}/ -name '*eln' -type f | xargs touch +find %{buildroot}%{native_lisp}/ -name '*.eln' -type f -print0 \ + | xargs -0 touch export QA_SKIP_BUILD_ROOT=0 From 28029c5fc33b4e7f3ce5dbed0a7ddb2e589458a5 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 6 Mar 2025 12:36:05 +0000 Subject: [PATCH 070/111] Drop recommendation of gcc-c++ for newer Tree-sitter versions Tree-sitter 0.24 dropped support for parsers written in C++. --- emacs.spec | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/emacs.spec b/emacs.spec index fb6c091..ad9b9b6 100644 --- a/emacs.spec +++ b/emacs.spec @@ -232,15 +232,11 @@ Provides: emacs-transient = 0.3.7 # version as of the release of emacs 28.1 is obsoleted Obsoletes: emacs-transient < 0.3.0-4 -# https://github.com/tree-sitter/tree-sitter/issues/3296 -Requires: libtree-sitter >= 0.22.5 - -# Ideally, we'd package all tree-sitter parsers as RPMs, but, in the -# meantime, we need the following packages for -# treesit-install-language-grammar to be able to build the parsers for -# us at runtime: -Recommends: ((gcc and gcc-c++) or clang) +# We need the following packages for treesit-install-language-grammar to +# be able to build additional parsers for us at runtime: Recommends: /usr/bin/git +Recommends: gcc +Recommends: (gcc-c++ if libtree-sitter < 0.24.0) Recommends: libtree-sitter-java From 69f6ed99ccb4603a0fad8e2e3acbce2ad29a9bed Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 6 Mar 2025 14:11:40 +0000 Subject: [PATCH 071/111] Automatically generate Recommends for Tree-sitter parsers. --- emacs.spec | 22 ++++++++++++++++++---- emacs_lisp.attr | 5 +++++ emacs_lisp.rec | 30 ++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 emacs_lisp.attr create mode 100755 emacs_lisp.rec diff --git a/emacs.spec b/emacs.spec index ad9b9b6..5b965dd 100644 --- a/emacs.spec +++ b/emacs.spec @@ -28,6 +28,9 @@ Source5: site-start.el Source6: default.el Source9: emacs-desktop.sh +Source10: emacs_lisp.attr +Source11: emacs_lisp.rec + # Avoid trademark issues Patch: 0001-Pong-and-Tetris-are-excluded.patch @@ -238,7 +241,10 @@ Recommends: /usr/bin/git Recommends: gcc Recommends: (gcc-c++ if libtree-sitter < 0.24.0) -Recommends: libtree-sitter-java +%global _local_file_attrs emacs_lisp +%{load:%SOURCE10} +%global __emacs_lisp_recommends \ + %{_builddir}/%{name}-%{version}/build-pgtk/src/emacs -x %SOURCE11 %description common %desc @@ -500,9 +506,14 @@ install -p -m 0644 %SOURCE4 %{buildroot}%{_sysconfdir}/skel/.emacs mkdir -p %{buildroot}/%{pkgconfig} install -p -m 0644 emacs.pc %{buildroot}/%{pkgconfig} -# Install rpm macro definition file -mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d -install -p -m 0644 macros.emacs %{buildroot}%{_rpmconfigdir}/macros.d/ +# Install rpm macros +mkdir -p \ + %{buildroot}%{_fileattrsdir} \ + %{buildroot}%{_rpmconfigdir} \ + %{buildroot}%{_rpmmacrodir} +install -p -m 0644 %SOURCE10 %{buildroot}%{_fileattrsdir} +install -p -m 0755 %SOURCE11 %{buildroot}%{_rpmconfigdir} +install -p -m 0644 macros.emacs %{buildroot}%{_rpmmacrodir} # After everything is installed, remove info dir rm -f %{buildroot}%{_infodir}/dir @@ -714,6 +725,8 @@ fi %files common -f common-filelist -f info-filelist %config(noreplace) %{_sysconfdir}/skel/.emacs +%{_fileattrsdir}/emacs_lisp.attr +%{_rpmconfigdir}/emacs_lisp.rec %{_rpmconfigdir}/macros.d/macros.emacs %license build-pgtk/etc/COPYING %doc build-pgtk/doc/NEWS build-pgtk/BUGS build-pgtk/README @@ -749,6 +762,7 @@ fi %attr(0644,root,root) %config %{site_lisp}/site-start.el %{pkgconfig}/emacs.pc + %files devel %{_includedir}/emacs-module.h diff --git a/emacs_lisp.attr b/emacs_lisp.attr new file mode 100644 index 0000000..bf13cd7 --- /dev/null +++ b/emacs_lisp.attr @@ -0,0 +1,5 @@ +# -*- rpm-spec -*- + +%__emacs_lisp_recommends %{_rpmconfigdir}/emacs_lisp.rec +%__emacs_lisp_path %{_datadir}/emacs/.+\.el(\.gz)?$ +%__emacs_lisp_protocol multifile diff --git a/emacs_lisp.rec b/emacs_lisp.rec new file mode 100755 index 0000000..cddbbf9 --- /dev/null +++ b/emacs_lisp.rec @@ -0,0 +1,30 @@ +#!/usr/bin/emacs -x + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Inspect Emacs Lisp files for usage of Tree-sitter parsers, and +;; generate RPM Recommends for those. + +;;; Code: + +(setq jka-compr-verbose nil) + +(condition-case nil + (while (setq filename (read-from-minibuffer "")) + (when (string-match-p "\\.el\\(\\.gz\\)?$" filename) + (with-temp-buffer + (insert-file-contents filename) + (setq parsers ()) + (while + (search-forward-regexp "(treesit-\\(parser-create\\|ready-p\\) '" + nil t) + (add-to-list 'parsers (thing-at-point 'symbol t))) + (when parsers + (princ (concat ";" filename "\n")) + (dolist (parser parsers) + (princ (concat "tree-sitter(" parser ")" "\n"))))))) + (end-of-file nil)) + +;;; emacs_lisp.rec ends here From 340027a976b5b8e41fb7edef58b0fb00ed0a9862 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 13 Mar 2025 00:49:05 +0000 Subject: [PATCH 072/111] Correct provided emacs-transient version. --- emacs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 5b965dd..cc2c8cb 100644 --- a/emacs.spec +++ b/emacs.spec @@ -230,7 +230,7 @@ Recommends: info Provides: %{name}-el = %{epoch}:%{version}-%{release} Obsoletes: emacs-el < 1:24.3-29 # transient.el is provided by emacs in lisp/transient.el -Provides: emacs-transient = 0.3.7 +Provides: emacs-transient = 0.7.2.2 # the existing emacs-transient package is obsoleted by emacs 28+, last package # version as of the release of emacs 28.1 is obsoleted Obsoletes: emacs-transient < 0.3.0-4 From 8ad003b0a8ab8eacf25f505583604494f71bf5ea Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 13 Mar 2025 12:47:28 +0000 Subject: [PATCH 073/111] Restore emacs-terminal subpackage We can drop this again for Fedora 44. See the discussion at https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/PWONA43D2WRBVDMZV6WFP3I2ML4CXQYN/ for more background. --- emacs.spec | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/emacs.spec b/emacs.spec index cc2c8cb..5f8fc64 100644 --- a/emacs.spec +++ b/emacs.spec @@ -26,6 +26,9 @@ Source102: https://keys.openpgp.org/vks/v1/by-fingerprint/12BB9B400EE3F77282 Source4: dotemacs.el Source5: site-start.el Source6: default.el +# Emacs Terminal Mode, #551949, #617355 +Source7: emacs-terminal.desktop +Source8: emacs-terminal.sh Source9: emacs-desktop.sh Source10: emacs_lisp.attr @@ -252,6 +255,20 @@ This package contains all the common files needed by emacs, emacs-gtk+x11, emacs-lucid, or emacs-nw. + +%package terminal +Summary: A desktop menu item for GNU Emacs terminal. +Requires: (emacs or emacs-gtk+x11 or emacs-lucid) +BuildArch: noarch + +%description terminal +Contains a desktop menu item running GNU Emacs terminal. Install +emacs-terminal if you need a terminal with Malayalam support. + +Please note that emacs-terminal is a temporary package and it will be +removed when another terminal becomes capable of handling Malayalam. + + %package devel Summary: Development header files for Emacs @@ -515,9 +532,16 @@ install -p -m 0644 %SOURCE10 %{buildroot}%{_fileattrsdir} install -p -m 0755 %SOURCE11 %{buildroot}%{_rpmconfigdir} install -p -m 0644 macros.emacs %{buildroot}%{_rpmmacrodir} +# Installing emacs-terminal binary +install -p -m 755 %SOURCE8 %{buildroot}%{_bindir}/emacs-terminal + # After everything is installed, remove info dir rm -f %{buildroot}%{_infodir}/dir +# Install desktop files +desktop-file-install --dir=%{buildroot}%{_datadir}/applications \ + %SOURCE7 + # Install a wrapper to avoid running the Wayland-only build on X11 install -p -m 0755 %SOURCE9 %{buildroot}%{_bindir}/emacs-desktop @@ -762,9 +786,13 @@ fi %attr(0644,root,root) %config %{site_lisp}/site-start.el %{pkgconfig}/emacs.pc +%files terminal +%{_bindir}/emacs-terminal +%{_datadir}/applications/emacs-terminal.desktop %files devel %{_includedir}/emacs-module.h + %changelog %autochangelog From b8ab76acc8aef0be458f73eac3c9e17d935204b7 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 13 Mar 2025 12:50:15 +0000 Subject: [PATCH 074/111] Tidy up Recommends of emacs-common. --- emacs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 5f8fc64..50f5a8c 100644 --- a/emacs.spec +++ b/emacs.spec @@ -227,7 +227,7 @@ Requires: /usr/bin/readlink Requires: %{name}-filesystem Requires: emacsclient Requires: libgccjit -Recommends: (emacs or emacs-gtk+x11 or emacs-lucid or emacs-nw) +Recommends: emacs(bin) Recommends: enchant2 Recommends: info Provides: %{name}-el = %{epoch}:%{version}-%{release} From 45a313a33c6f54a6ce212844f11532a37446e0df Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sun, 16 Mar 2025 23:48:00 +0000 Subject: [PATCH 075/111] Lower alternatives priority of emacs-nw MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It shouldn’t have the same priority as emacs-lucid. --- emacs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 50f5a8c..44b83f3 100644 --- a/emacs.spec +++ b/emacs.spec @@ -695,7 +695,7 @@ if [ $1 = 0 ]; then fi %posttrans nw -/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-nw 70 || : +/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-nw 65 || : # The preun scriptlet of packages before 29.4-5 will remove this symlink # after it has been installed, so we may need to put it back: if [ $1 = 2 -a ! -h %{_bindir}/emacs-nw ]; then From cf0b4080a8d42208902f760508d1943f1ed4ffbf Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sun, 16 Mar 2025 23:58:53 +0000 Subject: [PATCH 076/111] Offer emacs-desktop as the highest priority alternative for emacs Fixes #2326662. --- emacs-desktop.patch | 26 -------------------------- emacs-desktop.sh | 39 +++++++++++++++++++++++++++++++-------- emacs.spec | 11 +++++++++-- 3 files changed, 40 insertions(+), 36 deletions(-) delete mode 100644 emacs-desktop.patch diff --git a/emacs-desktop.patch b/emacs-desktop.patch deleted file mode 100644 index 2453407..0000000 --- a/emacs-desktop.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 90e902854c53c6ab5ef8711af27f42fbc77d9ffe Mon Sep 17 00:00:00 2001 -From: Peter Oliver -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 - diff --git a/emacs-desktop.sh b/emacs-desktop.sh index 30648ae..a69e309 100755 --- a/emacs-desktop.sh +++ b/emacs-desktop.sh @@ -1,16 +1,39 @@ #!/bin/sh # The pure GTK build of emacs is not supported on X11, so try to avoid -# using if there is an alternative. +# using it there if there is another alternative. + +preferred="$(readlink -f /usr/bin/emacs)" 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 + case "$preferred" in + *-pgtk) + for variant in gtk+x11 lucid; do + if type "emacs-$variant" >/dev/null; then + exec "emacs-$variant" "$@" + fi + done + ;; + */emacs-desktop) + # If this wrapper script is itself the preferred alternative, + # select something suitable from the options available. + for variant in gtk+x11 lucid pgtk nw; do + if type "emacs-$variant" >/dev/null; then + exec "emacs-$variant" "$@" + fi + done + exit 2 + ;; + esac +else + case "$preferred" in + */emacs-desktop) + for variant in pgtk gtk+x11 lucid nw; do + if type "emacs-$variant" >/dev/null; then + exec "emacs-$variant" "$@" + fi + done + exit 2 ;; esac fi diff --git a/emacs.spec b/emacs.spec index 44b83f3..016426d 100644 --- a/emacs.spec +++ b/emacs.spec @@ -46,8 +46,8 @@ Patch: emacs-system-crypto-policies.patch # => remove it if we stop using this patch Patch: emacs-libdir-vs-systemd.patch -# Avoid using the pure GTK build on X11 where it is unsupported: -Patch: emacs-desktop.patch +# Hint what to do to avoid using the pure GTK build on X11, where it is +# unsupported: Patch: emacs-pgtk-on-x-error-message.patch # Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2276822 @@ -705,10 +705,16 @@ fi %preun common if [ $1 = 0 ]; then + /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-desktop || : /usr/sbin/alternatives --remove emacs.etags %{_bindir}/etags.emacs || : fi %posttrans common +/usr/sbin/alternatives --install %{_bindir}/emacs \ + emacs \ + %{_bindir}/emacs-desktop \ + 85 \ + || : /usr/sbin/alternatives --install %{_bindir}/etags emacs.etags %{_bindir}/etags.emacs 80 \ --slave %{_mandir}/man1/etags.1.gz emacs.etags.man %{_mandir}/man1/etags.emacs.1.gz || : @@ -754,6 +760,7 @@ fi %{_rpmconfigdir}/macros.d/macros.emacs %license build-pgtk/etc/COPYING %doc build-pgtk/doc/NEWS build-pgtk/BUGS build-pgtk/README +%ghost %{_bindir}/emacs %{_bindir}/ebrowse %{_bindir}/emacs-desktop %{_bindir}/etags.emacs From 1e64061e6c812956f30844f685744ee9de5d740f Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 18 Mar 2025 13:02:33 +0000 Subject: [PATCH 077/111] Ensure desktop icon is found `WM_NAME` is set from the zeroth argument to `exec`. Lie about this so that it matches the value expected from the `emacs.desktop` file. This requires Bash, so use bashisms. --- ...cify-StartupWMClass-in-emacs.desktop.patch | 31 +++++++++++++++++++ emacs-desktop.sh | 10 +++--- emacs.spec | 5 +++ 3 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 0001-Don-t-specify-StartupWMClass-in-emacs.desktop.patch diff --git a/0001-Don-t-specify-StartupWMClass-in-emacs.desktop.patch b/0001-Don-t-specify-StartupWMClass-in-emacs.desktop.patch new file mode 100644 index 0000000..09f2ed7 --- /dev/null +++ b/0001-Don-t-specify-StartupWMClass-in-emacs.desktop.patch @@ -0,0 +1,31 @@ +From 164e45695f9784469ff2f66cafcd6bc927c246be Mon Sep 17 00:00:00 2001 +From: Peter Oliver +Date: Tue, 18 Mar 2025 13:16:15 +0000 +Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20specify=20StartupWMClass=20in?= + =?UTF-8?q?=20emacs.desktop?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +See the explanation at +https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49505#67. In summary, the +value we were providing doesn’t work on Wayland, and the default should +be fine. + +* etc/emacs.desktop: Don’t specify StartupWMClass +--- + etc/emacs.desktop | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/etc/emacs.desktop b/etc/emacs.desktop +index 0d7cac14da5..16ad3c7eb48 100644 +--- a/etc/emacs.desktop ++++ b/etc/emacs.desktop +@@ -9,4 +9,3 @@ Type=Application + Terminal=false + Categories=Development;TextEditor; + StartupNotify=true +-StartupWMClass=Emacs +-- +2.48.1 + diff --git a/emacs-desktop.sh b/emacs-desktop.sh index a69e309..2f60d9d 100755 --- a/emacs-desktop.sh +++ b/emacs-desktop.sh @@ -1,16 +1,16 @@ -#!/bin/sh +#!/usr/bin/bash # The pure GTK build of emacs is not supported on X11, so try to avoid # using it there if there is another alternative. preferred="$(readlink -f /usr/bin/emacs)" -if [ "$XDG_SESSION_TYPE" = 'x11' ]; then +if [[ $XDG_SESSION_TYPE == 'x11' ]]; then case "$preferred" in *-pgtk) for variant in gtk+x11 lucid; do if type "emacs-$variant" >/dev/null; then - exec "emacs-$variant" "$@" + exec -a emacs "emacs-$variant" "$@" fi done ;; @@ -19,7 +19,7 @@ if [ "$XDG_SESSION_TYPE" = 'x11' ]; then # select something suitable from the options available. for variant in gtk+x11 lucid pgtk nw; do if type "emacs-$variant" >/dev/null; then - exec "emacs-$variant" "$@" + exec -a emacs "emacs-$variant" "$@" fi done exit 2 @@ -30,7 +30,7 @@ else */emacs-desktop) for variant in pgtk gtk+x11 lucid nw; do if type "emacs-$variant" >/dev/null; then - exec "emacs-$variant" "$@" + exec -a emacs "emacs-$variant" "$@" fi done exit 2 diff --git a/emacs.spec b/emacs.spec index 016426d..69327ab 100644 --- a/emacs.spec +++ b/emacs.spec @@ -55,6 +55,11 @@ Patch: emacs-pgtk-on-x-error-message.patch # gets any new backends, this patch may need extending. Patch: 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch +# Don't override StartupWMClass. The overriding value doesn't work on +# Wayland, and the default should be fine. +# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49505#67 +Patch: 0001-Don-t-specify-StartupWMClass-in-emacs.desktop.patch + BuildRequires: alsa-lib-devel BuildRequires: atk-devel BuildRequires: autoconf From cb65b0edeb248106d8c6252ce195fa73c3045b19 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 18 Mar 2025 22:27:52 +0000 Subject: [PATCH 078/111] Move emacs-desktop wrapper into emacs package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It’s only required with the `emacs-pgtk` binary. --- emacs.spec | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/emacs.spec b/emacs.spec index 69327ab..1128206 100644 --- a/emacs.spec +++ b/emacs.spec @@ -657,10 +657,12 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop %preun if [ $1 = 0 ]; then + /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-desktop || : /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-pgtk || : fi %posttrans +/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-desktop 85 || : /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-pgtk 80 || : %if %{with lucid} @@ -710,22 +712,17 @@ fi %preun common if [ $1 = 0 ]; then - /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-desktop || : /usr/sbin/alternatives --remove emacs.etags %{_bindir}/etags.emacs || : fi %posttrans common -/usr/sbin/alternatives --install %{_bindir}/emacs \ - emacs \ - %{_bindir}/emacs-desktop \ - 85 \ - || : /usr/sbin/alternatives --install %{_bindir}/etags emacs.etags %{_bindir}/etags.emacs 80 \ --slave %{_mandir}/man1/etags.1.gz emacs.etags.man %{_mandir}/man1/etags.emacs.1.gz || : %files -f pgtk-filelist -f pgtk-dirlist %ghost %{_bindir}/emacs +%{_bindir}/emacs-desktop %{_bindir}/emacs-%{version}-pgtk %{_bindir}/emacs-pgtk %{_datadir}/glib-2.0/schemas/org.gnu.emacs.defaults.gschema.xml @@ -765,9 +762,7 @@ fi %{_rpmconfigdir}/macros.d/macros.emacs %license build-pgtk/etc/COPYING %doc build-pgtk/doc/NEWS build-pgtk/BUGS build-pgtk/README -%ghost %{_bindir}/emacs %{_bindir}/ebrowse -%{_bindir}/emacs-desktop %{_bindir}/etags.emacs %{_bindir}/gctags %{_datadir}/applications/emacs.desktop From c2d5a811c7177edefe3a9ad8896ad83d8afbb3b5 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 18 Mar 2025 22:39:42 +0000 Subject: [PATCH 079/111] Rename emacs subpackage to emacs-pgtk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hopefully, this causes users to be less disappointed when they discover that X11 isn’t supported with the “default” build. --- emacs.spec | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/emacs.spec b/emacs.spec index 1128206..4b7e53d 100644 --- a/emacs.spec +++ b/emacs.spec @@ -129,16 +129,6 @@ BuildRequires: util-linux %global marker ()(64bit) %endif -# Emacs doesn't run without a font, rhbz#732422 -Requires: google-noto-sans-mono-vf-fonts - -Requires(preun): /usr/sbin/alternatives -Requires(posttrans): /usr/sbin/alternatives -Requires: emacs-common = %{epoch}:%{version}-%{release} -Requires: libpixbufloader-xpm.so%{?marker} -Provides: emacs(bin) = %{epoch}:%{version}-%{release} -Supplements: ((libwayland-server and emacs-common) unless emacs-nw) - %define site_lisp %{_datadir}/emacs/site-lisp %define site_start_d %{site_lisp}/site-start.d %define pkgconfig %{_datadir}/pkgconfig @@ -151,16 +141,34 @@ editor. It contains special code editing features, a scripting language the editor. } - %description %desc -This package provides an emacs binary with support for Wayland, using the + + +%package pgtk +Summary: GNU Emacs text editor with GTK toolkit for Wayland + +# Emacs doesn't run without a font, rhbz#732422 +Requires: google-noto-sans-mono-vf-fonts + +Requires(preun): /usr/sbin/alternatives +Requires(posttrans): /usr/sbin/alternatives +Requires: emacs-common = %{epoch}:%{version}-%{release} +Requires: libpixbufloader-xpm.so%{?marker} +Obsoletes: emacs < %{epoch}:30.1-15 +Provides: emacs = %{epoch}:%{version}-%{release} +Provides: emacs(bin) = %{epoch}:%{version}-%{release} +Supplements: ((libwayland-server and emacs-common) unless emacs-nw) + +%description pgtk +%desc +This package provides an emacs-pgtk binary with support for Wayland, using the GTK toolkit. %if %{with gtkx11} %package gtk+x11 -Summary: GNU Emacs text editor with GTK toolkit X support +Summary: GNU Emacs text editor with GTK toolkit for X11 Requires: google-noto-sans-mono-vf-fonts Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives @@ -178,7 +186,7 @@ Window System, using the GTK toolkit. %if %{with lucid} %package lucid -Summary: GNU Emacs text editor with Lucid toolkit X support +Summary: GNU Emacs text editor with Lucid toolkit for X11 Requires: google-noto-sans-mono-vf-fonts Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives @@ -655,13 +663,13 @@ appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/*.metainfo.xm desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop -%preun +%preun pgtk if [ $1 = 0 ]; then /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-desktop || : /usr/sbin/alternatives --remove emacs %{_bindir}/emacs-pgtk || : fi -%posttrans +%posttrans pgtk /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-desktop 85 || : /usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-pgtk 80 || : @@ -720,7 +728,7 @@ fi --slave %{_mandir}/man1/etags.1.gz emacs.etags.man %{_mandir}/man1/etags.emacs.1.gz || : -%files -f pgtk-filelist -f pgtk-dirlist +%files pgtk -f pgtk-filelist -f pgtk-dirlist %ghost %{_bindir}/emacs %{_bindir}/emacs-desktop %{_bindir}/emacs-%{version}-pgtk From 8222fbcb4d66f4611416941827e87ccaae70fee4 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 25 Mar 2025 12:11:07 +0000 Subject: [PATCH 080/111] Drop emacs-terminal subpackage again It now has unversioned requires in all stable Fedora releases, so dropping it will no-longer block upgrades from those releases. --- emacs.spec | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/emacs.spec b/emacs.spec index 4b7e53d..a2f971d 100644 --- a/emacs.spec +++ b/emacs.spec @@ -26,9 +26,6 @@ Source102: https://keys.openpgp.org/vks/v1/by-fingerprint/12BB9B400EE3F77282 Source4: dotemacs.el Source5: site-start.el Source6: default.el -# Emacs Terminal Mode, #551949, #617355 -Source7: emacs-terminal.desktop -Source8: emacs-terminal.sh Source9: emacs-desktop.sh Source10: emacs_lisp.attr @@ -268,20 +265,6 @@ This package contains all the common files needed by emacs, emacs-gtk+x11, emacs-lucid, or emacs-nw. - -%package terminal -Summary: A desktop menu item for GNU Emacs terminal. -Requires: (emacs or emacs-gtk+x11 or emacs-lucid) -BuildArch: noarch - -%description terminal -Contains a desktop menu item running GNU Emacs terminal. Install -emacs-terminal if you need a terminal with Malayalam support. - -Please note that emacs-terminal is a temporary package and it will be -removed when another terminal becomes capable of handling Malayalam. - - %package devel Summary: Development header files for Emacs @@ -545,16 +528,9 @@ install -p -m 0644 %SOURCE10 %{buildroot}%{_fileattrsdir} install -p -m 0755 %SOURCE11 %{buildroot}%{_rpmconfigdir} install -p -m 0644 macros.emacs %{buildroot}%{_rpmmacrodir} -# Installing emacs-terminal binary -install -p -m 755 %SOURCE8 %{buildroot}%{_bindir}/emacs-terminal - # After everything is installed, remove info dir rm -f %{buildroot}%{_infodir}/dir -# Install desktop files -desktop-file-install --dir=%{buildroot}%{_datadir}/applications \ - %SOURCE7 - # Install a wrapper to avoid running the Wayland-only build on X11 install -p -m 0755 %SOURCE9 %{buildroot}%{_bindir}/emacs-desktop @@ -801,13 +777,9 @@ fi %attr(0644,root,root) %config %{site_lisp}/site-start.el %{pkgconfig}/emacs.pc -%files terminal -%{_bindir}/emacs-terminal -%{_datadir}/applications/emacs-terminal.desktop %files devel %{_includedir}/emacs-module.h - %changelog %autochangelog From 507e1bae41b4e38aa60363a9221f0d490c80f977 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 19 Mar 2025 17:34:44 +0000 Subject: [PATCH 081/111] Now there is no emacs subpackage, all emacs(bin) providers can provide it. --- emacs.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/emacs.spec b/emacs.spec index a2f971d..f9d61ab 100644 --- a/emacs.spec +++ b/emacs.spec @@ -171,6 +171,7 @@ Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} Requires: libpixbufloader-xpm.so%{?marker} +Provides: emacs = %{epoch}:%{version}-%{release} Provides: emacs(bin) = %{epoch}:%{version}-%{release} Supplements: ((xorg-x11-server-Xorg and emacs-common) unless emacs-nw) @@ -188,6 +189,7 @@ Requires: google-noto-sans-mono-vf-fonts Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} +Provides: emacs = %{epoch}:%{version}-%{release} Provides: emacs(bin) = %{epoch}:%{version}-%{release} %description lucid @@ -203,6 +205,7 @@ Summary: GNU Emacs text editor with no window system support Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} +Provides: emacs = %{epoch}:%{version}-%{release} Provides: emacs(bin) = %{epoch}:%{version}-%{release} Provides: emacs-nox = %{epoch}:%{version}-%{release} Obsoletes: emacs-nox < 1:30 From e7d0043cec87ffd4eec68cd4e0bf19d9141b38dd Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 19 Mar 2025 01:37:32 +0000 Subject: [PATCH 082/111] Suggest an Emacs build based on Fedora edition. --- emacs.spec | 54 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 12 deletions(-) diff --git a/emacs.spec b/emacs.spec index f9d61ab..a655ad4 100644 --- a/emacs.spec +++ b/emacs.spec @@ -138,6 +138,43 @@ editor. It contains special code editing features, a scripting language the editor. } +Provides: emacs(bin) = %{epoch}:%{version}-%{release} +Requires: (emacs-pgtk = %{epoch}:%{version}-%{release} or emacs-gtk+x11 = %{epoch}:%{version}-%{release} or emacs-lucid = %{epoch}:%{version}-%{release} or emacs-nw = %{epoch}:%{version}-%{release}) + +Suggests: (emacs-nw if fedora-release-cloud) +Suggests: (emacs-nw if fedora-release-container) +Suggests: (emacs-nw if fedora-release-coreos) +Suggests: (emacs-gtk+x11 if fedora-release-i3) +Suggests: (emacs-nw if fedora-release-iot) +Suggests: (emacs-gtk+x11 if fedora-release-matecompiz) +Suggests: (emacs-pgtk if fedora-release-miraclewm) +Suggests: (emacs-pgtk if fedora-release-miraclewm-atomic) +Suggests: (emacs-pgtk if fedora-release-mobility) +Suggests: (emacs-nw if fedora-release-server) +Suggests: (emacs-pgtk if fedora-release-silverblue) +Suggests: (emacs-pgtk if fedora-release-sway) +Suggests: (emacs-pgtk if fedora-release-sway-atomic) +Suggests: (emacs-nw if fedora-release-toolbx) +Suggests: (emacs-pgtk if fedora-release-workstation) +Suggests: (emacs-gtk+x11 if fedora-release-xfce) + +## If you know the best variant for these editions, please fill +## them in. +# Suggests: (emacs- if fedora-release-budgie) +# Suggests: (emacs- if fedora-release-budgie-atomic) +# Suggests: (emacs- if fedora-release-cinnamon) +# Suggests: (emacs- if fedora-release-compneuro) +# Suggests: (emacs- if fedora-release-cosmic) +# Suggests: (emacs- if fedora-release-cosmic-atomic) +# Suggests: (emacs- if fedora-release-designsuite) +# Suggests: (emacs- if fedora-release-kde) +# Suggests: (emacs- if fedora-release-kde-mobile) +# Suggests: (emacs- if fedora-release-kinoite) +# Suggests: (emacs- if fedora-release-kinoite-mobile) +# Suggests: (emacs- if fedora-release-lxqt) +# Suggests: (emacs- if fedora-release-soas) +# Suggests: (emacs- if fedora-release-wsl) + %description %desc @@ -152,10 +189,7 @@ Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} Requires: libpixbufloader-xpm.so%{?marker} -Obsoletes: emacs < %{epoch}:30.1-15 -Provides: emacs = %{epoch}:%{version}-%{release} -Provides: emacs(bin) = %{epoch}:%{version}-%{release} -Supplements: ((libwayland-server and emacs-common) unless emacs-nw) +Supplements: ((libwayland-server and emacs) unless emacs-nw) %description pgtk %desc @@ -171,9 +205,7 @@ Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} Requires: libpixbufloader-xpm.so%{?marker} -Provides: emacs = %{epoch}:%{version}-%{release} -Provides: emacs(bin) = %{epoch}:%{version}-%{release} -Supplements: ((xorg-x11-server-Xorg and emacs-common) unless emacs-nw) +Supplements: ((xorg-x11-server-Xorg and emacs) unless emacs-nw) %description gtk+x11 %desc @@ -189,8 +221,6 @@ Requires: google-noto-sans-mono-vf-fonts Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} -Provides: emacs = %{epoch}:%{version}-%{release} -Provides: emacs(bin) = %{epoch}:%{version}-%{release} %description lucid %desc @@ -205,8 +235,6 @@ Summary: GNU Emacs text editor with no window system support Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: emacs-common = %{epoch}:%{version}-%{release} -Provides: emacs = %{epoch}:%{version}-%{release} -Provides: emacs(bin) = %{epoch}:%{version}-%{release} Provides: emacs-nox = %{epoch}:%{version}-%{release} Obsoletes: emacs-nox < 1:30 @@ -240,7 +268,7 @@ Requires: /usr/bin/readlink Requires: %{name}-filesystem Requires: emacsclient Requires: libgccjit -Recommends: emacs(bin) +Recommends: emacs = %{epoch}:%{version}-%{release} Recommends: enchant2 Recommends: info Provides: %{name}-el = %{epoch}:%{version}-%{release} @@ -707,6 +735,8 @@ fi --slave %{_mandir}/man1/etags.1.gz emacs.etags.man %{_mandir}/man1/etags.emacs.1.gz || : +%files + %files pgtk -f pgtk-filelist -f pgtk-dirlist %ghost %{_bindir}/emacs %{_bindir}/emacs-desktop From c65031ee31dbe44c66af2e17511bffb2fa6038ee Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 8 Apr 2025 14:23:58 +0100 Subject: [PATCH 083/111] Fix compilation errors due to insufficient compiler safety MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes bug #2350949 (‘package-install-from-buffer fails with "Can't read whole string"’). --- ...errors-due-to-insufficient-compiler-.patch | 36 +++++++++++++++++++ emacs.spec | 4 +++ 2 files changed, 40 insertions(+) create mode 100644 0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch diff --git a/0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch b/0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch new file mode 100644 index 0000000..bfdd8cf --- /dev/null +++ b/0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch @@ -0,0 +1,36 @@ +From 6cac92928a99a2cf33aeeeddf295cf981750391c Mon Sep 17 00:00:00 2001 +From: Pip Cet +Date: Mon, 17 Feb 2025 15:21:16 +0000 +Subject: [PATCH] Fix compilation errors due to insufficient compiler safety + (bug#63288) + +The default safety level is 1. Restoring the default safety level to +1 after it was temporarily 0 should reset byte-compile-delete-errors +to nil, its default level. Failing to do that resulted in +miscompilation of code in highly-parallel builds. + +* lisp/emacs-lisp/cl-macs.el (cl--do-proclaim): Change +'byte-compile-delete-errors' to become t only at 'safety' level 0, not +levels 1 or 2. + +(cherry picked from commit 53a5dada413662389a17c551a00d215e51f5049f) +--- + lisp/emacs-lisp/cl-macs.el | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el +index 8caf2f1eac0..2a0a9e5c6de 100644 +--- a/lisp/emacs-lisp/cl-macs.el ++++ b/lisp/emacs-lisp/cl-macs.el +@@ -2670,7 +2670,7 @@ cl--do-proclaim + (let ((speed (assq (nth 1 (assq 'speed (cdr spec))) + '((0 nil) (1 t) (2 t) (3 t)))) + (safety (assq (nth 1 (assq 'safety (cdr spec))) +- '((0 t) (1 t) (2 t) (3 nil))))) ++ '((0 t) (1 nil) (2 nil) (3 nil))))) + (if speed (setq cl--optimize-speed (car speed) + byte-optimize (nth 1 speed))) + (if safety (setq cl--optimize-safety (car safety) +-- +2.49.0 + diff --git a/emacs.spec b/emacs.spec index a655ad4..80ce0f3 100644 --- a/emacs.spec +++ b/emacs.spec @@ -57,6 +57,10 @@ Patch: 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49505#67 Patch: 0001-Don-t-specify-StartupWMClass-in-emacs.desktop.patch +# Ahead-of-time native compilation breaks some lisp without this patch. +# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76523 +Patch: 0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch + BuildRequires: alsa-lib-devel BuildRequires: atk-devel BuildRequires: autoconf From 7b67394177313d608555d8317056764e351bc999 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 14 Apr 2025 12:25:22 +0100 Subject: [PATCH 084/111] Rebuild against tree-sitter-0.25.3-1.fc43 From 2a41db911d3f42822fa45c8c5dea2b1447378bae Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 24 Apr 2025 11:22:39 +0100 Subject: [PATCH 085/111] Emacs 31 compatibility for Tree-sitter Recommends generation. --- emacs_lisp.rec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/emacs_lisp.rec b/emacs_lisp.rec index cddbbf9..5da43fb 100755 --- a/emacs_lisp.rec +++ b/emacs_lisp.rec @@ -13,12 +13,16 @@ (condition-case nil (while (setq filename (read-from-minibuffer "")) - (when (string-match-p "\\.el\\(\\.gz\\)?$" filename) + (when (string-match-p (rx ".el" (optional ".gz") line-end) + filename) (with-temp-buffer (insert-file-contents filename) (setq parsers ()) (while - (search-forward-regexp "(treesit-\\(parser-create\\|ready-p\\) '" + (search-forward-regexp (rx "(" (or "treesit-ensure-installed" + "treesit-parser-create" + "treesit-ready-p") + " '") nil t) (add-to-list 'parsers (thing-at-point 'symbol t))) (when parsers From 25a203f1231a5ea3309923bb425f4d9de5cd56b4 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 12 May 2025 14:03:34 +0100 Subject: [PATCH 086/111] Rebuild against tree-sitter-0.25.4-3.fc43 From a8733e9b93fd121a1d663607162477b041c33c75 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 28 May 2025 13:01:17 +0100 Subject: [PATCH 087/111] Rebuild against tree-sitter-0.25.5-1.fc43 From bedcb624132880b60dc1cf1fd2dfc31b76c6f661 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 13 Jun 2025 15:37:42 +0100 Subject: [PATCH 088/111] Rebuild against tree-sitter-0.25.6-1.fc43 From 14aefc94f9631375db3b6c001dc337dd522a155e Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 16 Jun 2025 00:15:03 +0100 Subject: [PATCH 089/111] Restore compatibility with recent Tree-sitter parsers. --- ...-sitter-grammar-filename-format-bug-.patch | 55 +++++++++++++++++++ emacs.spec | 4 ++ 2 files changed, 59 insertions(+) create mode 100644 0001-Support-new-tree-sitter-grammar-filename-format-bug-.patch diff --git a/0001-Support-new-tree-sitter-grammar-filename-format-bug-.patch b/0001-Support-new-tree-sitter-grammar-filename-format-bug-.patch new file mode 100644 index 0000000..495840b --- /dev/null +++ b/0001-Support-new-tree-sitter-grammar-filename-format-bug-.patch @@ -0,0 +1,55 @@ +From 941158fc133f9722abbca8b89a0a346230b83998 Mon Sep 17 00:00:00 2001 +From: Yuan Fu +Date: Tue, 10 Jun 2025 22:55:58 -0700 +Subject: [PATCH] Support new tree-sitter grammar filename format (bug#78754) + +Previously Emacs only looks for filenames like +libtree-sitter-json.so.0.0. Now Emacs also look for filenames +like libtree-sitter-json.so.15.0. + +* src/treesit.c: +(treesit_load_language_push_for_each_suffix): Add versioned +candidate to candidate list too. +--- + src/treesit.c | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +diff --git a/src/treesit.c b/src/treesit.c +index 3a0e9674f65..45d1bc58b06 100644 +--- a/src/treesit.c ++++ b/src/treesit.c +@@ -603,14 +603,29 @@ treesit_load_language_push_for_each_suffix (Lisp_Object lib_base_name, + Lisp_Object candidate1 = concat2 (lib_base_name, XCAR (suffixes)); + #ifndef WINDOWSNT + /* On Posix hosts, support libraries named with ABI version +- numbers. In the foreseeable future we only need to support +- version 0.0. For more details, see ++ numbers. Originally tree-sitter grammars are always versioned ++ at 0.0, so we first try that. For more details, see + https://lists.gnu.org/archive/html/emacs-devel/2023-04/msg00386.html. */ + Lisp_Object candidate2 = concat2 (candidate1, Vtreesit_str_dot_0); + Lisp_Object candidate3 = concat2 (candidate2, Vtreesit_str_dot_0); + + *path_candidates = Fcons (candidate3, *path_candidates); + *path_candidates = Fcons (candidate2, *path_candidates); ++ ++ /* Since 2025, tree-sitter grammars use their supported ++ TREE_SITTER_LANGUAGE_VERSION as the major version. So we need ++ to try all the version supported by the tree-sitter library ++ too. (See bug#78754) */ ++ for (int version = TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION; ++ version <= TREE_SITTER_LANGUAGE_VERSION; ++ version++) ++ { ++ char ext[16]; // 16 should be enough until the end of universe. ++ snprintf ((char *) &ext, 16, ".%d.0", version); ++ Lisp_Object versioned_candidate = concat2 (candidate1, ++ build_string (ext)); ++ *path_candidates = Fcons (versioned_candidate, *path_candidates); ++ } + #endif + *path_candidates = Fcons (candidate1, *path_candidates); + } +-- +2.49.0 + diff --git a/emacs.spec b/emacs.spec index 80ce0f3..2670ea1 100644 --- a/emacs.spec +++ b/emacs.spec @@ -61,6 +61,10 @@ Patch: 0001-Don-t-specify-StartupWMClass-in-emacs.desktop.patch # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76523 Patch: 0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch +# Restores compatibility with recent Tree-sitter parsers. +# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78754 +Patch: 0001-Support-new-tree-sitter-grammar-filename-format-bug-.patch + BuildRequires: alsa-lib-devel BuildRequires: atk-devel BuildRequires: autoconf From 735ea3cc3cbf567942f8712545d7c24b68da6646 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 16 Jun 2025 00:41:54 +0100 Subject: [PATCH 090/111] Fix pretest version detection. --- emacs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index 2670ea1..227fbce 100644 --- a/emacs.spec +++ b/emacs.spec @@ -12,7 +12,7 @@ Version: 30.1 Release: %autorelease License: GPL-3.0-or-later AND CC0-1.0 URL: https://www.gnu.org/software/emacs/ -%if %{lua: print(select(3, string.find(rpm.expand('%version'), '%d+%.(%d+)')))} == 0 +%if %{lua: print(select(3, string.find(rpm.expand('%version'), '%d+%.%d+%.(%d+)')) or 0)} >= 90 Source0: https://alpha.gnu.org/gnu/emacs/pretest/emacs-%{version}.tar.xz Source1: https://alpha.gnu.org/gnu/emacs/pretest/emacs-%{version}.tar.xz.sig %else From 59744aef6208652ddb3e2d86b5639a92382472fd Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 16 Jun 2025 11:59:55 +0100 Subject: [PATCH 091/111] Package emacsclient should conflict with the last F40 emacs-common. --- emacs.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/emacs.spec b/emacs.spec index 227fbce..441fc92 100644 --- a/emacs.spec +++ b/emacs.spec @@ -255,9 +255,7 @@ support, for running on a terminal only. %package -n emacsclient Summary: Remotely control GNU Emacs - -# This is a moving target whilst Fedora 40 is still receivng updates: -Conflicts: emacs-common < %{epoch}:%{version}-%{release} +Conflicts: emacs-common < 1:29.4-12 %description -n emacsclient %desc From 3936b0f4b541eff55a40a167d2687bd4ccb18ff0 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 18 Jul 2025 12:52:35 +0100 Subject: [PATCH 092/111] Rebuild against tree-sitter-0.25.8-1.fc43 From 442688e43dc4ddcb7ce1108b7311196e6c8d22cc Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Fri, 18 Jul 2025 14:17:18 +0200 Subject: [PATCH 093/111] ignore symlinks in dependency computation Symlinks inside the buildroot (e.g., /builddir/build/BUILD/.../BUILDROOT/...) may point to non-existent paths during build, as their targets are only valid after installation (e.g., /usr/lib64/...). This causes dependency generators to fail when attempting to resolve such symlinks. Since symlinks either: * Point outside the package (and are processed separately), or * Point inside the package (and their targets are processed directly), we now skip symlink resolution entirely during dependency analysis. This avoids build-host path errors while preserving post-install correctness. Signed-off-by: Peter Lemenkov --- emacs_lisp.rec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/emacs_lisp.rec b/emacs_lisp.rec index 5da43fb..588c810 100755 --- a/emacs_lisp.rec +++ b/emacs_lisp.rec @@ -13,8 +13,8 @@ (condition-case nil (while (setq filename (read-from-minibuffer "")) - (when (string-match-p (rx ".el" (optional ".gz") line-end) - filename) + (when (and (string-match-p (rx ".el" (optional ".gz") line-end) + filename) (not (file-symlink-p filename))) (with-temp-buffer (insert-file-contents filename) (setq parsers ()) From 2f9fd6b99a34a1d07657a124536fcae60011d4e4 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sat, 19 Jul 2025 00:05:58 +0100 Subject: [PATCH 094/111] Dependency generator: ensure error messages are sent to stderr only. --- emacs_lisp.rec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/emacs_lisp.rec b/emacs_lisp.rec index 688cf12..1971b6f 100755 --- a/emacs_lisp.rec +++ b/emacs_lisp.rec @@ -9,7 +9,8 @@ ;;; Code: -(setq jka-compr-verbose nil) +(setq backtrace-on-error-noninteractive nil + jka-compr-verbose nil) (condition-case nil (while (setq filename (read-from-minibuffer "")) From 006f58a1387893ea6a76aeb1352280c19e973234 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Sat, 19 Jul 2025 00:13:10 +0100 Subject: [PATCH 095/111] Dependency generator: look for absolute symlinks in $RPM_BUILD_ROOT --- emacs_lisp.rec | 45 +++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/emacs_lisp.rec b/emacs_lisp.rec index 1971b6f..acf02d7 100755 --- a/emacs_lisp.rec +++ b/emacs_lisp.rec @@ -14,23 +14,36 @@ (condition-case nil (while (setq filename (read-from-minibuffer "")) - (when (and (string-match-p (rx ".el" (optional ".gz") line-end) + (when (string-match-p (rx ".el" (optional ".gz") line-end) filename) - (not (file-symlink-p filename))) - (with-temp-buffer - (insert-file-contents filename) - (setq parsers ()) - (while - (search-forward-regexp (rx "(" (or "treesit-ensure-installed" - "treesit-parser-create" - "treesit-ready-p") - " '") - nil t) - (add-to-list 'parsers (thing-at-point 'symbol t))) - (when parsers - (princ (concat ";" filename "\n")) - (dolist (parser parsers) - (princ (concat "tree-sitter(" parser ")" "\n"))))))) + (condition-case err + (let* ((symlink-target (file-symlink-p filename)) + (source-filename + (if (and (stringp symlink-target) + (string-match-p (rx line-start "/") + symlink-target)) + (file-name-concat (getenv "RPM_BUILD_ROOT") + symlink-target) + filename))) + (with-temp-buffer + (insert-file-contents source-filename) + (setq parsers ()) + (while + (search-forward-regexp + (rx "(" (or "treesit-ensure-installed" + "treesit-parser-create" + "treesit-ready-p") + " '") + nil t) + (add-to-list 'parsers (thing-at-point 'symbol t))) + (when parsers + (princ (concat ";" filename "\n")) + (dolist (parser parsers) + (princ (concat "tree-sitter(" parser ")" "\n")))))) + + ;; Missing files are probably caused by "broken" symlinks + ;; (which may actually be fulfilled by some other package). + (file-missing (message "warning: %s" (error-message-string err)))))) (end-of-file nil)) ;;; emacs_lisp.rec ends here From 680f81bce4fdc3de5ef0dbb420b0dc6a24e95c87 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 21 Jul 2025 11:38:31 +0100 Subject: [PATCH 096/111] Suggest emacs-nw for emacs within mock. --- emacs.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/emacs.spec b/emacs.spec index 441fc92..e1c905d 100644 --- a/emacs.spec +++ b/emacs.spec @@ -149,6 +149,7 @@ the editor. Provides: emacs(bin) = %{epoch}:%{version}-%{release} Requires: (emacs-pgtk = %{epoch}:%{version}-%{release} or emacs-gtk+x11 = %{epoch}:%{version}-%{release} or emacs-lucid = %{epoch}:%{version}-%{release} or emacs-nw = %{epoch}:%{version}-%{release}) +Suggests: (emacs-nw if fedora-release-basic) Suggests: (emacs-nw if fedora-release-cloud) Suggests: (emacs-nw if fedora-release-container) Suggests: (emacs-nw if fedora-release-coreos) From 262e998b29cfbea3c8247ceb60ddf3b3e4a9328b Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 22 Jul 2025 13:05:37 +0100 Subject: [PATCH 097/111] Fix typo. --- emacs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index e1c905d..25f1f9a 100644 --- a/emacs.spec +++ b/emacs.spec @@ -149,7 +149,7 @@ the editor. Provides: emacs(bin) = %{epoch}:%{version}-%{release} Requires: (emacs-pgtk = %{epoch}:%{version}-%{release} or emacs-gtk+x11 = %{epoch}:%{version}-%{release} or emacs-lucid = %{epoch}:%{version}-%{release} or emacs-nw = %{epoch}:%{version}-%{release}) -Suggests: (emacs-nw if fedora-release-basic) +Suggests: (emacs-nw if fedora-release-identity-basic) Suggests: (emacs-nw if fedora-release-cloud) Suggests: (emacs-nw if fedora-release-container) Suggests: (emacs-nw if fedora-release-coreos) From b2f275ac7a5889e3a2f66a90443e8a1bc91f13bc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 19:48:10 +0000 Subject: [PATCH 098/111] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From a8890f9765be58c765a5dad80b69cf0e5e939ac1 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 15 Aug 2025 11:12:37 +0100 Subject: [PATCH 099/111] Update to version 30.2, fixing rhbz#2388544 --- .gitignore | 2 + ...errors-due-to-insufficient-compiler-.patch | 36 ------------ ...-sitter-grammar-filename-format-bug-.patch | 55 ------------------- emacs.spec | 10 +--- sources | 4 +- 5 files changed, 5 insertions(+), 102 deletions(-) delete mode 100644 0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch delete mode 100644 0001-Support-new-tree-sitter-grammar-filename-format-bug-.patch diff --git a/.gitignore b/.gitignore index a859577..3aa373c 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,5 @@ /results_emacs/ /emacs-30.1.tar.xz /emacs-30.1.tar.xz.sig +/emacs-30.2.tar.xz +/emacs-30.2.tar.xz.sig diff --git a/0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch b/0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch deleted file mode 100644 index bfdd8cf..0000000 --- a/0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 6cac92928a99a2cf33aeeeddf295cf981750391c Mon Sep 17 00:00:00 2001 -From: Pip Cet -Date: Mon, 17 Feb 2025 15:21:16 +0000 -Subject: [PATCH] Fix compilation errors due to insufficient compiler safety - (bug#63288) - -The default safety level is 1. Restoring the default safety level to -1 after it was temporarily 0 should reset byte-compile-delete-errors -to nil, its default level. Failing to do that resulted in -miscompilation of code in highly-parallel builds. - -* lisp/emacs-lisp/cl-macs.el (cl--do-proclaim): Change -'byte-compile-delete-errors' to become t only at 'safety' level 0, not -levels 1 or 2. - -(cherry picked from commit 53a5dada413662389a17c551a00d215e51f5049f) ---- - lisp/emacs-lisp/cl-macs.el | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el -index 8caf2f1eac0..2a0a9e5c6de 100644 ---- a/lisp/emacs-lisp/cl-macs.el -+++ b/lisp/emacs-lisp/cl-macs.el -@@ -2670,7 +2670,7 @@ cl--do-proclaim - (let ((speed (assq (nth 1 (assq 'speed (cdr spec))) - '((0 nil) (1 t) (2 t) (3 t)))) - (safety (assq (nth 1 (assq 'safety (cdr spec))) -- '((0 t) (1 t) (2 t) (3 nil))))) -+ '((0 t) (1 nil) (2 nil) (3 nil))))) - (if speed (setq cl--optimize-speed (car speed) - byte-optimize (nth 1 speed))) - (if safety (setq cl--optimize-safety (car safety) --- -2.49.0 - diff --git a/0001-Support-new-tree-sitter-grammar-filename-format-bug-.patch b/0001-Support-new-tree-sitter-grammar-filename-format-bug-.patch deleted file mode 100644 index 495840b..0000000 --- a/0001-Support-new-tree-sitter-grammar-filename-format-bug-.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 941158fc133f9722abbca8b89a0a346230b83998 Mon Sep 17 00:00:00 2001 -From: Yuan Fu -Date: Tue, 10 Jun 2025 22:55:58 -0700 -Subject: [PATCH] Support new tree-sitter grammar filename format (bug#78754) - -Previously Emacs only looks for filenames like -libtree-sitter-json.so.0.0. Now Emacs also look for filenames -like libtree-sitter-json.so.15.0. - -* src/treesit.c: -(treesit_load_language_push_for_each_suffix): Add versioned -candidate to candidate list too. ---- - src/treesit.c | 19 +++++++++++++++++-- - 1 file changed, 17 insertions(+), 2 deletions(-) - -diff --git a/src/treesit.c b/src/treesit.c -index 3a0e9674f65..45d1bc58b06 100644 ---- a/src/treesit.c -+++ b/src/treesit.c -@@ -603,14 +603,29 @@ treesit_load_language_push_for_each_suffix (Lisp_Object lib_base_name, - Lisp_Object candidate1 = concat2 (lib_base_name, XCAR (suffixes)); - #ifndef WINDOWSNT - /* On Posix hosts, support libraries named with ABI version -- numbers. In the foreseeable future we only need to support -- version 0.0. For more details, see -+ numbers. Originally tree-sitter grammars are always versioned -+ at 0.0, so we first try that. For more details, see - https://lists.gnu.org/archive/html/emacs-devel/2023-04/msg00386.html. */ - Lisp_Object candidate2 = concat2 (candidate1, Vtreesit_str_dot_0); - Lisp_Object candidate3 = concat2 (candidate2, Vtreesit_str_dot_0); - - *path_candidates = Fcons (candidate3, *path_candidates); - *path_candidates = Fcons (candidate2, *path_candidates); -+ -+ /* Since 2025, tree-sitter grammars use their supported -+ TREE_SITTER_LANGUAGE_VERSION as the major version. So we need -+ to try all the version supported by the tree-sitter library -+ too. (See bug#78754) */ -+ for (int version = TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION; -+ version <= TREE_SITTER_LANGUAGE_VERSION; -+ version++) -+ { -+ char ext[16]; // 16 should be enough until the end of universe. -+ snprintf ((char *) &ext, 16, ".%d.0", version); -+ Lisp_Object versioned_candidate = concat2 (candidate1, -+ build_string (ext)); -+ *path_candidates = Fcons (versioned_candidate, *path_candidates); -+ } - #endif - *path_candidates = Fcons (candidate1, *path_candidates); - } --- -2.49.0 - diff --git a/emacs.spec b/emacs.spec index 25f1f9a..cfc9f9a 100644 --- a/emacs.spec +++ b/emacs.spec @@ -8,7 +8,7 @@ Summary: GNU Emacs text editor Name: emacs Epoch: 1 -Version: 30.1 +Version: 30.2 Release: %autorelease License: GPL-3.0-or-later AND CC0-1.0 URL: https://www.gnu.org/software/emacs/ @@ -57,14 +57,6 @@ Patch: 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49505#67 Patch: 0001-Don-t-specify-StartupWMClass-in-emacs.desktop.patch -# Ahead-of-time native compilation breaks some lisp without this patch. -# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76523 -Patch: 0001-Fix-compilation-errors-due-to-insufficient-compiler-.patch - -# Restores compatibility with recent Tree-sitter parsers. -# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78754 -Patch: 0001-Support-new-tree-sitter-grammar-filename-format-bug-.patch - BuildRequires: alsa-lib-devel BuildRequires: atk-devel BuildRequires: autoconf diff --git a/sources b/sources index 11bd85d..37f14cc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (emacs-30.1.tar.xz) = 511a6a1d2a170a207913692e1349344b70a0b5202b8d1ae27dc7256e589c77ae9e35da16fc2a098bf9f1b8d0f60233f452ed8d6744b70b907f3484c42f2d7d7f -SHA512 (emacs-30.1.tar.xz.sig) = 59ef724ff765fb76b9b9cfb8bd3853e001e9e6cefa65e2c49822238c11d619f916284f5b118cefff1bcd6c70f4ebcc1e420754cc225002164b56ced3caa954bd +SHA512 (emacs-30.2.tar.xz) = 313432d11e95c74f8cd35c5b1da442e6223f5d40f9173c55883c0339ecbfb97a0bedf79177ef8902afd3e33c078a233777bed01f5caffa1e7524f17d58bfc9a2 +SHA512 (emacs-30.2.tar.xz.sig) = ab5b5d0624b37ac662cf9914e8807fc37ee273c107f1a19ca75a527b6b9a85ce35f9436d03d8a988876cce7e7bebcc6c4a1251b0ceb08785b56bf42743f246e1 From 75773e660603e84459a0a2d3cea63de711fe76b1 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 9 Sep 2025 14:39:40 +0100 Subject: [PATCH 100/111] Rebuild against tree-sitter-0.25.9-1.fc44 From 2004733785acf791eec0810e513ba1dbcf700721 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 24 Sep 2025 15:20:36 +0100 Subject: [PATCH 101/111] Rebuild against tree-sitter-0.25.10-1.fc44 From 6156d97ca7ee47e3f44d5bc57ab4eb634e51f5a0 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 14 Oct 2025 14:08:43 +0100 Subject: [PATCH 102/111] Recent vanilla ~/.emacs defaults to lexical binding. --- dotemacs.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotemacs.el b/dotemacs.el index e1bee17..f7ddcf9 100644 --- a/dotemacs.el +++ b/dotemacs.el @@ -1,4 +1,4 @@ -;; .emacs +;;; -*- lexical-binding: t -*- (custom-set-variables ;; uncomment to always end a file with a newline From 3b2d62a20fdf74256caee7f696a8999aca16441e Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 14 Oct 2025 14:12:58 +0100 Subject: [PATCH 103/111] Enable lexical binding in `site-start.el` and `default.el` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Emacs 31 will warn when loading an Elisp file that does not specify whether to use lexical binding. We don’t use dynamic binding in these files, so we may as well switch it on now. While we’re here, keep `checkdoc` happy. --- default.el | 16 +++++++++++----- site-start.el | 11 +++++++++-- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/default.el b/default.el index 7df4cee..7ec900f 100644 --- a/default.el +++ b/default.el @@ -1,7 +1,13 @@ -;;; default.el - loaded after ".emacs" on startup -;;; -;;; Setting `inhibit-default-init' non-nil in "~/.emacs" -;;; prevents loading of this file. Also the "-q" option to emacs -;;; prevents both "~/.emacs" and this file from being loaded at startup. +;;; default.el --- loaded after ".emacs" on startup -*- lexical-binding: t -*- + +;;; Commentary: +;; +;; Setting `inhibit-default-init' non-nil in "~/.emacs" +;; prevents loading of this file. Also the "-q" option to "emacs" +;; prevents both "~/.emacs" and this file from being loaded at startup. + +;;; Code: (setq-default smime-CA-directory "/etc/ssl/certs") + +;;; default.el ends here diff --git a/site-start.el b/site-start.el index efbb75b..87b3b13 100644 --- a/site-start.el +++ b/site-start.el @@ -1,9 +1,16 @@ -;;; loaded before user's ".emacs" file and default.el +;;; site-start.el --- loaded before user's ".emacs" file and default.el -*- lexical-binding: t -*- + +;;; Commentary: +;; +;; Load *.el and *.elc in /usr/share/emacs/site-lisp/site-start.d on startup + +;;; Code: -;; load *.el and *.elc in /usr/share/emacs/site-lisp/site-start.d on startup (mapc 'load (delete-dups (mapcar 'file-name-sans-extension (directory-files "/usr/share/emacs/site-lisp/site-start.d" t "\\.elc?\\'")))) + +;;; site-start.el ends here From 038733a4d2d9e2ee76011fc5409e4f790219a744 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 14 Nov 2025 17:07:45 +0000 Subject: [PATCH 104/111] Own etags and man page (rhbz#2414055). --- emacs.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/emacs.spec b/emacs.spec index cfc9f9a..99c0e02 100644 --- a/emacs.spec +++ b/emacs.spec @@ -779,6 +779,7 @@ fi %license build-pgtk/etc/COPYING %doc build-pgtk/doc/NEWS build-pgtk/BUGS build-pgtk/README %{_bindir}/ebrowse +%ghost %{_bindir}/etags %{_bindir}/etags.emacs %{_bindir}/gctags %{_datadir}/applications/emacs.desktop @@ -791,6 +792,7 @@ fi %{_mandir}/man1/ebrowse.1* %{_mandir}/man1/emacs.1* %{_mandir}/man1/etags.emacs.1* +%ghost %{_mandir}/man1/etags.1* %{_mandir}/man1/gctags.1* %dir %{_datadir}/emacs/%{version} %{_datadir}/emacs/%{version}/etc From 8baaa786dfe29a7b01fa46d040155326fe653170 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 14 Nov 2025 17:18:11 +0000 Subject: [PATCH 105/111] Drop alternatives for etags Since ctags-5.9, there is no-longer any other provider in Fedora, so we can simplify. --- emacs.spec | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/emacs.spec b/emacs.spec index 99c0e02..0d44537 100644 --- a/emacs.spec +++ b/emacs.spec @@ -532,10 +532,9 @@ install -p -m 0644 %SOURCE6 %{buildroot}%{site_lisp} echo "(setq source-directory \"%{_datadir}/emacs/%{version}/\")" \ >> %{buildroot}%{site_lisp}/site-start.el -mv %{buildroot}%{_bindir}/{etags,etags.emacs} mv %{buildroot}%{_mandir}/man1/{ctags.1.gz,gctags.1.gz} -mv %{buildroot}%{_mandir}/man1/{etags.1.gz,etags.emacs.1.gz} mv %{buildroot}%{_bindir}/{ctags,gctags} + # BZ 927996 mv %{buildroot}%{_infodir}/{info.info.gz,info.gz} @@ -725,13 +724,7 @@ fi %endif %preun common -if [ $1 = 0 ]; then - /usr/sbin/alternatives --remove emacs.etags %{_bindir}/etags.emacs || : -fi - -%posttrans common -/usr/sbin/alternatives --install %{_bindir}/etags emacs.etags %{_bindir}/etags.emacs 80 \ - --slave %{_mandir}/man1/etags.1.gz emacs.etags.man %{_mandir}/man1/etags.emacs.1.gz || : +/usr/sbin/alternatives --remove emacs.etags %{_bindir}/etags.emacs || : %files @@ -779,8 +772,7 @@ fi %license build-pgtk/etc/COPYING %doc build-pgtk/doc/NEWS build-pgtk/BUGS build-pgtk/README %{_bindir}/ebrowse -%ghost %{_bindir}/etags -%{_bindir}/etags.emacs +%{_bindir}/etags %{_bindir}/gctags %{_datadir}/applications/emacs.desktop %{_datadir}/applications/emacs-mail.desktop @@ -791,8 +783,7 @@ fi %{_datadir}/icons/hicolor/scalable/mimetypes/emacs-document.svg %{_mandir}/man1/ebrowse.1* %{_mandir}/man1/emacs.1* -%{_mandir}/man1/etags.emacs.1* -%ghost %{_mandir}/man1/etags.1* +%{_mandir}/man1/etags.1* %{_mandir}/man1/gctags.1* %dir %{_datadir}/emacs/%{version} %{_datadir}/emacs/%{version}/etc From 585fcc155adcd1afa2c210c9feb0f709b8394af6 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 21 Nov 2025 14:39:04 +0000 Subject: [PATCH 106/111] Set source-directory via site-start.d dropin. --- emacs.spec | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/emacs.spec b/emacs.spec index 0d44537..e6903e6 100644 --- a/emacs.spec +++ b/emacs.spec @@ -469,6 +469,18 @@ cat > macros.emacs << EOF %%_emacs_bytecompile(W) /usr/bin/emacs -batch --no-init-file --no-site-file --eval '(push nil load-path)' %%{-W:--eval '(setq byte-compile-error-on-warn t)' }-f batch-byte-compile %%* EOF +cat > 10-source-directory.el << 'EOF' +;;; 10-source-directory.el --- Set source-directory -*- lexical-binding: t -*- + +;;; Commentary: +;; +;; This solves rhbz#474958; Function `update-directory-autoloads' now +;; finally works. + +(setq source-directory "%{_datadir}/emacs/%{version}/") + +;;; 10-source-directory.el ends here +EOF %install %if %{with nw} @@ -523,14 +535,10 @@ ln -s emacs-%{version}-nw %{buildroot}%{_bindir}/emacs-nox # Make sure movemail isn't setgid chmod 755 %{buildroot}%{emacs_libexecdir}/movemail -mkdir -p %{buildroot}%{site_lisp} +mkdir -p %{buildroot}%{site_lisp} %{buildroot}%{site_start_d} install -p -m 0644 %SOURCE5 %{buildroot}%{site_lisp}/site-start.el install -p -m 0644 %SOURCE6 %{buildroot}%{site_lisp} - -# This solves bz#474958, "update-directory-autoloads" now finally -# works the path is different each version, so we'll generate it here -echo "(setq source-directory \"%{_datadir}/emacs/%{version}/\")" \ - >> %{buildroot}%{site_lisp}/site-start.el +install -p -m 0644 10-source-directory.el %{buildroot}%{site_start_d}/ mv %{buildroot}%{_mandir}/man1/{ctags.1.gz,gctags.1.gz} mv %{buildroot}%{_bindir}/{ctags,gctags} @@ -538,8 +546,6 @@ mv %{buildroot}%{_bindir}/{ctags,gctags} # BZ 927996 mv %{buildroot}%{_infodir}/{info.info.gz,info.gz} -mkdir -p %{buildroot}%{site_lisp}/site-start.d - # Default initialization file mkdir -p %{buildroot}%{_sysconfdir}/skel install -p -m 0644 %SOURCE4 %{buildroot}%{_sysconfdir}/skel/.emacs @@ -800,6 +806,7 @@ fi %{_userunitdir}/emacs.service %attr(0644,root,root) %config(noreplace) %{site_lisp}/default.el %attr(0644,root,root) %config %{site_lisp}/site-start.el +%{site_start_d}/10-source-directory.el %{pkgconfig}/emacs.pc From 514c0430fbe86afa48c02debdc96f379dc65ad62 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 21 Nov 2025 14:39:52 +0000 Subject: [PATCH 107/111] New RPM macro %_emacs_archsitelispdir for Emacs dynamic modules. --- emacs.spec | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/emacs.spec b/emacs.spec index e6903e6..35937e0 100644 --- a/emacs.spec +++ b/emacs.spec @@ -264,7 +264,7 @@ License: GPL-3.0-or-later AND GFDL-1.3-no-invariants-or-later AND BSD-3-Cl Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: /usr/bin/readlink -Requires: %{name}-filesystem +Requires: %{name}-filesystem >= 1:30.1 Requires: emacsclient Requires: libgccjit Recommends: emacs = %{epoch}:%{version}-%{release} @@ -464,11 +464,25 @@ cat > macros.emacs << EOF %%_emacs_version %{version} %%_emacs_ev %{?epoch:%{epoch}:}%{version} %%_emacs_evr %{?epoch:%{epoch}:}%{version}-%{release} +%%_emacs_archsitelispdir %%{_libdir}/emacs/site-lisp %%_emacs_sitelispdir %{site_lisp} %%_emacs_sitestartdir %{site_start_d} %%_emacs_bytecompile(W) /usr/bin/emacs -batch --no-init-file --no-site-file --eval '(push nil load-path)' %%{-W:--eval '(setq byte-compile-error-on-warn t)' }-f batch-byte-compile %%* EOF +cat > 00-dynamic-module-dir.el << 'EOF' +;;; 00-dynamic-module-dir.el --- Add arch-specifc dir to load-path -*- lexical-binding: t -*- + +;;; Commentary: +;; +;; This directory is for installing Emacs dynamic modules into. See +;; also RPM macro %%_emacs_archsitelispdir. + +(add-to-list 'load-path "%{_libdir}/emacs/site-lisp") + +;;; 00-dynamic-module-dir.el ends here +EOF + cat > 10-source-directory.el << 'EOF' ;;; 10-source-directory.el --- Set source-directory -*- lexical-binding: t -*- @@ -538,6 +552,7 @@ chmod 755 %{buildroot}%{emacs_libexecdir}/movemail mkdir -p %{buildroot}%{site_lisp} %{buildroot}%{site_start_d} install -p -m 0644 %SOURCE5 %{buildroot}%{site_lisp}/site-start.el install -p -m 0644 %SOURCE6 %{buildroot}%{site_lisp} +install -p -m 0644 00-dynamic-module-dir.el %{buildroot}%{site_start_d}/ install -p -m 0644 10-source-directory.el %{buildroot}%{site_start_d}/ mv %{buildroot}%{_mandir}/man1/{ctags.1.gz,gctags.1.gz} @@ -806,6 +821,7 @@ fi %{_userunitdir}/emacs.service %attr(0644,root,root) %config(noreplace) %{site_lisp}/default.el %attr(0644,root,root) %config %{site_lisp}/site-start.el +%{site_start_d}/00-dynamic-module-dir.el %{site_start_d}/10-source-directory.el %{pkgconfig}/emacs.pc From b4c76f9a5356cd0ee5c8089cedb255b25e3897f4 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Tue, 25 Nov 2025 13:17:25 +0000 Subject: [PATCH 108/111] Move ownership of %{_libdir}/emacs to emacs-filesystem package. --- emacs.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/emacs.spec b/emacs.spec index 35937e0..11a717a 100644 --- a/emacs.spec +++ b/emacs.spec @@ -264,7 +264,7 @@ License: GPL-3.0-or-later AND GFDL-1.3-no-invariants-or-later AND BSD-3-Cl Requires(preun): /usr/sbin/alternatives Requires(posttrans): /usr/sbin/alternatives Requires: /usr/bin/readlink -Requires: %{name}-filesystem >= 1:30.1 +Requires: %{name}-filesystem >= 1:30.2 Requires: emacsclient Requires: libgccjit Recommends: emacs = %{epoch}:%{version}-%{release} @@ -809,7 +809,6 @@ fi %dir %{_datadir}/emacs/%{version} %{_datadir}/emacs/%{version}/etc %{_datadir}/emacs/%{version}/site-lisp -%dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/%{version} %dir %{native_lisp} %dir %{_libexecdir}/emacs From 3b048fcb3792a89b3ebff278543ebaa2878a3579 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 10 Dec 2025 12:05:42 +0000 Subject: [PATCH 109/111] Support Tree-sitter version 0.26 and later (rhbz#2420305). --- ...t-Tree-sitter-version-0.26-and-later.patch | 115 ++++++++++++++++++ emacs.spec | 5 + 2 files changed, 120 insertions(+) create mode 100644 0001-Support-Tree-sitter-version-0.26-and-later.patch diff --git a/0001-Support-Tree-sitter-version-0.26-and-later.patch b/0001-Support-Tree-sitter-version-0.26-and-later.patch new file mode 100644 index 0000000..b6def99 --- /dev/null +++ b/0001-Support-Tree-sitter-version-0.26-and-later.patch @@ -0,0 +1,115 @@ +From d587ce8c65a0e22ab0a63ef2873a3dfcfbeba166 Mon Sep 17 00:00:00 2001 +From: Eli Zaretskii +Date: Fri, 17 Oct 2025 14:15:41 +0300 +Subject: [PATCH] Support Tree-sitter version 0.26 and later + +* src/treesit.c (init_treesit_functions) +[TREE_SITTER_LANGUAGE_VERSION >= 15]: Define prototype for, and +load 'ts_language_abi_version' instead of the deprecated (and +removed in tree-sitter 0.26) 'ts_language_version'. +(ts_language_abi_version) [TREE_SITTER_LANGUAGE_VERSION >= 15]: +Define on WINDOWSNT, instead of 'ts_language_version'. +(treesit_language_abi_version): New compatibility function. +(treesit_load_language, Ftreesit_language_abi_version): Use +'treesit_language_abi_version' instead of 'ts_language_version'. +(Bug#79627) +--- + src/treesit.c | 36 ++++++++++++++++++++++++++++++++++-- + 1 file changed, 34 insertions(+), 2 deletions(-) + +diff --git a/src/treesit.c b/src/treesit.c +index bf982de580b..69751b5ea10 100644 +--- a/src/treesit.c ++++ b/src/treesit.c +@@ -35,7 +35,11 @@ Copyright (C) 2021-2025 Free Software Foundation, Inc. + # include "w32common.h" + + /* In alphabetical order. */ ++#if TREE_SITTER_LANGUAGE_VERSION >= 15 ++#undef ts_language_abi_version ++#else + #undef ts_language_version ++#endif + #undef ts_node_child + #undef ts_node_child_by_field_name + #undef ts_node_child_count +@@ -90,7 +94,11 @@ Copyright (C) 2021-2025 Free Software Foundation, Inc. + #undef ts_tree_get_changed_ranges + #undef ts_tree_root_node + ++#if TREE_SITTER_LANGUAGE_VERSION >= 15 ++DEF_DLL_FN (uint32_t, ts_language_abi_version, (const TSLanguage *)); ++#else + DEF_DLL_FN (uint32_t, ts_language_version, (const TSLanguage *)); ++#endif + DEF_DLL_FN (TSNode, ts_node_child, (TSNode, uint32_t)); + DEF_DLL_FN (TSNode, ts_node_child_by_field_name, + (TSNode, const char *, uint32_t)); +@@ -167,7 +175,11 @@ init_treesit_functions (void) + if (!library) + return false; + ++#if TREE_SITTER_LANGUAGE_VERSION >= 15 ++ LOAD_DLL_FN (library, ts_language_abi_version); ++#else + LOAD_DLL_FN (library, ts_language_version); ++#endif + LOAD_DLL_FN (library, ts_node_child); + LOAD_DLL_FN (library, ts_node_child_by_field_name); + LOAD_DLL_FN (library, ts_node_child_count); +@@ -225,7 +237,11 @@ init_treesit_functions (void) + return true; + } + ++#if TREE_SITTER_LANGUAGE_VERSION >= 15 ++#define ts_language_abi_version fn_ts_language_abi_version ++#else + #define ts_language_version fn_ts_language_version ++#endif + #define ts_node_child fn_ts_node_child + #define ts_node_child_by_field_name fn_ts_node_child_by_field_name + #define ts_node_child_count fn_ts_node_child_count +@@ -711,6 +727,22 @@ treesit_load_language_push_for_each_suffix (Lisp_Object lib_base_name, + } + } + ++/* This function is a compatibility shim. Tree-sitter 0.25 introduced ++ ts_language_abi_version as a replacement for ts_language_version, and ++ tree-sitter 0.26 removed ts_language_version. Here we use the fact ++ that 0.25 bumped TREE_SITTER_LANGUAGE_VERSION to 15, to use the new ++ function instead of the old one, when Emacs is compiled against ++ tree-sitter version 0.25 or newer. */ ++static uint32_t ++treesit_language_abi_version (const TSLanguage *ts_lang) ++{ ++#if TREE_SITTER_LANGUAGE_VERSION >= 15 ++ return ts_language_abi_version (ts_lang); ++#else ++ return ts_language_version (ts_lang); ++#endif ++} ++ + /* Load the dynamic library of LANGUAGE_SYMBOL and return the pointer + to the language definition. + +@@ -832,7 +864,7 @@ treesit_load_language (Lisp_Object language_symbol, + build_string ("%s's ABI version is %d, but supported versions are %d-%d"); + Lisp_Object formatted_msg = + CALLN (Fformat_message, fmt, loaded_lib, +- make_fixnum (ts_language_version (lang)), ++ make_fixnum (treesit_language_abi_version (lang)), + make_fixnum (TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION), + make_fixnum (TREE_SITTER_LANGUAGE_VERSION)); + *signal_symbol = Qtreesit_load_language_error; +@@ -914,7 +946,7 @@ DEFUN ("treesit-language-abi-version", Ftreesit_language_abi_version, + TSLanguage *ts_language = lang.lang; + if (ts_language == NULL) + return Qnil; +- uint32_t version = ts_language_version (ts_language); ++ uint32_t version = treesit_language_abi_version (ts_language); + return make_fixnum((ptrdiff_t) version); + } + } +-- +2.52.0 + diff --git a/emacs.spec b/emacs.spec index 11a717a..70f3d6d 100644 --- a/emacs.spec +++ b/emacs.spec @@ -57,6 +57,11 @@ Patch: 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49505#67 Patch: 0001-Don-t-specify-StartupWMClass-in-emacs.desktop.patch +# Don't wait for Emacs 31 before updating to Tree-sitter 0.26. +# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63555 +# https://bugzilla.redhat.com/show_bug.cgi?id=2420305 +Patch: 0001-Support-Tree-sitter-version-0.26-and-later.patch + BuildRequires: alsa-lib-devel BuildRequires: atk-devel BuildRequires: autoconf From 91bcd98e446c016850c32ab9ea66ba1077bd48fb Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 10 Dec 2025 13:03:09 +0000 Subject: [PATCH 110/111] Fix Tree-sitter 0.26 patch for Emacs 30. --- ...t-Tree-sitter-version-0.26-and-later.patch | 31 +++++++------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/0001-Support-Tree-sitter-version-0.26-and-later.patch b/0001-Support-Tree-sitter-version-0.26-and-later.patch index b6def99..936ca2e 100644 --- a/0001-Support-Tree-sitter-version-0.26-and-later.patch +++ b/0001-Support-Tree-sitter-version-0.26-and-later.patch @@ -1,4 +1,4 @@ -From d587ce8c65a0e22ab0a63ef2873a3dfcfbeba166 Mon Sep 17 00:00:00 2001 +From 16f0be6354ea13331859c861fa7d423a0b54bec7 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 17 Oct 2025 14:15:41 +0300 Subject: [PATCH] Support Tree-sitter version 0.26 and later @@ -14,14 +14,14 @@ Define on WINDOWSNT, instead of 'ts_language_version'. 'treesit_language_abi_version' instead of 'ts_language_version'. (Bug#79627) --- - src/treesit.c | 36 ++++++++++++++++++++++++++++++++++-- - 1 file changed, 34 insertions(+), 2 deletions(-) + src/treesit.c | 34 +++++++++++++++++++++++++++++++++- + 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/treesit.c b/src/treesit.c -index bf982de580b..69751b5ea10 100644 +index e2986c186b8..4d6bf9a5dbd 100644 --- a/src/treesit.c +++ b/src/treesit.c -@@ -35,7 +35,11 @@ Copyright (C) 2021-2025 Free Software Foundation, Inc. +@@ -34,7 +34,11 @@ Copyright (C) 2021-2025 Free Software Foundation, Inc. # include "w32common.h" /* In alphabetical order. */ @@ -33,7 +33,7 @@ index bf982de580b..69751b5ea10 100644 #undef ts_node_child #undef ts_node_child_by_field_name #undef ts_node_child_count -@@ -90,7 +94,11 @@ Copyright (C) 2021-2025 Free Software Foundation, Inc. +@@ -89,7 +93,11 @@ Copyright (C) 2021-2025 Free Software Foundation, Inc. #undef ts_tree_get_changed_ranges #undef ts_tree_root_node @@ -45,7 +45,7 @@ index bf982de580b..69751b5ea10 100644 DEF_DLL_FN (TSNode, ts_node_child, (TSNode, uint32_t)); DEF_DLL_FN (TSNode, ts_node_child_by_field_name, (TSNode, const char *, uint32_t)); -@@ -167,7 +175,11 @@ init_treesit_functions (void) +@@ -166,7 +174,11 @@ init_treesit_functions (void) if (!library) return false; @@ -57,7 +57,7 @@ index bf982de580b..69751b5ea10 100644 LOAD_DLL_FN (library, ts_node_child); LOAD_DLL_FN (library, ts_node_child_by_field_name); LOAD_DLL_FN (library, ts_node_child_count); -@@ -225,7 +237,11 @@ init_treesit_functions (void) +@@ -224,7 +236,11 @@ init_treesit_functions (void) return true; } @@ -69,7 +69,7 @@ index bf982de580b..69751b5ea10 100644 #define ts_node_child fn_ts_node_child #define ts_node_child_by_field_name fn_ts_node_child_by_field_name #define ts_node_child_count fn_ts_node_child_count -@@ -711,6 +727,22 @@ treesit_load_language_push_for_each_suffix (Lisp_Object lib_base_name, +@@ -632,6 +648,22 @@ treesit_load_language_push_for_each_suffix (Lisp_Object lib_base_name, } } @@ -92,17 +92,8 @@ index bf982de580b..69751b5ea10 100644 /* Load the dynamic library of LANGUAGE_SYMBOL and return the pointer to the language definition. -@@ -832,7 +864,7 @@ treesit_load_language (Lisp_Object language_symbol, - build_string ("%s's ABI version is %d, but supported versions are %d-%d"); - Lisp_Object formatted_msg = - CALLN (Fformat_message, fmt, loaded_lib, -- make_fixnum (ts_language_version (lang)), -+ make_fixnum (treesit_language_abi_version (lang)), - make_fixnum (TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION), - make_fixnum (TREE_SITTER_LANGUAGE_VERSION)); - *signal_symbol = Qtreesit_load_language_error; -@@ -914,7 +946,7 @@ DEFUN ("treesit-language-abi-version", Ftreesit_language_abi_version, - TSLanguage *ts_language = lang.lang; +@@ -817,7 +849,7 @@ DEFUN ("treesit-language-abi-version", Ftreesit_language_abi_version, + &signal_data); if (ts_language == NULL) return Qnil; - uint32_t version = ts_language_version (ts_language); From 8caa8a9f69e8f0ac55b930f0486c0df496c9b072 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Wed, 10 Dec 2025 15:07:07 +0000 Subject: [PATCH 111/111] =?UTF-8?q?Eliminate=20=E2=80=9CFile=20listed=20tw?= =?UTF-8?q?ice=E2=80=9D=20warning.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emacs.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/emacs.spec b/emacs.spec index 70f3d6d..e10f642 100644 --- a/emacs.spec +++ b/emacs.spec @@ -825,8 +825,6 @@ fi %{_userunitdir}/emacs.service %attr(0644,root,root) %config(noreplace) %{site_lisp}/default.el %attr(0644,root,root) %config %{site_lisp}/site-start.el -%{site_start_d}/00-dynamic-module-dir.el -%{site_start_d}/10-source-directory.el %{pkgconfig}/emacs.pc