From 8d8aec8f862c6828e04e48a30f3f34003ea9d7ba Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Tue, 26 Nov 2024 15:55:18 +0300 Subject: [PATCH] import emacs-29.4-4.el10 --- .emacs.metadata | 1 + .gitignore | 1 + ...-obsolete-check-for-b-i486-linuxaout.patch | 62 ++ .../CEA1DE21AB108493CC9C65742E82323B8F4353EE | 337 +++++++++ SOURCES/default.el | 7 + SOURCES/dotemacs.el | 12 + SOURCES/emacs-29.4.tar.xz.sig | 11 + SOURCES/emacs-desktop.patch | 26 + SOURCES/emacs-desktop.sh | 19 + SOURCES/emacs-libdir-vs-systemd.patch | 31 + SOURCES/emacs-pgtk-on-x-error-message.patch | 26 + SOURCES/emacs-spellchecker.patch | 22 + SOURCES/emacs-system-crypto-policies.patch | 11 + SOURCES/emacs-terminal.desktop | 11 + SOURCES/emacs-terminal.sh | 3 + SOURCES/site-start.el | 9 + SPECS/emacs.spec | 676 ++++++++++++++++++ 17 files changed, 1265 insertions(+) create mode 100644 .emacs.metadata create mode 100644 .gitignore create mode 100644 SOURCES/0001-configure-Remove-obsolete-check-for-b-i486-linuxaout.patch create mode 100644 SOURCES/CEA1DE21AB108493CC9C65742E82323B8F4353EE create mode 100644 SOURCES/default.el create mode 100644 SOURCES/dotemacs.el create mode 100644 SOURCES/emacs-29.4.tar.xz.sig create mode 100644 SOURCES/emacs-desktop.patch create mode 100755 SOURCES/emacs-desktop.sh create mode 100644 SOURCES/emacs-libdir-vs-systemd.patch create mode 100644 SOURCES/emacs-pgtk-on-x-error-message.patch create mode 100644 SOURCES/emacs-spellchecker.patch create mode 100644 SOURCES/emacs-system-crypto-policies.patch create mode 100644 SOURCES/emacs-terminal.desktop create mode 100644 SOURCES/emacs-terminal.sh create mode 100644 SOURCES/site-start.el create mode 100644 SPECS/emacs.spec diff --git a/.emacs.metadata b/.emacs.metadata new file mode 100644 index 0000000..d0aaef3 --- /dev/null +++ b/.emacs.metadata @@ -0,0 +1 @@ +10758f7c0425a9fa328d84e060d2d2b25604929c SOURCES/emacs-29.4.tar.xz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b152e11 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/emacs-29.4.tar.xz diff --git a/SOURCES/0001-configure-Remove-obsolete-check-for-b-i486-linuxaout.patch b/SOURCES/0001-configure-Remove-obsolete-check-for-b-i486-linuxaout.patch new file mode 100644 index 0000000..37b1845 --- /dev/null +++ b/SOURCES/0001-configure-Remove-obsolete-check-for-b-i486-linuxaout.patch @@ -0,0 +1,62 @@ +From 123ece3c3313101048d43a5ef2f9bd66c4e97fb7 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 23 Dec 2022 18:49:25 +0100 +Subject: [PATCH] configure: Remove obsolete check for -b i486-linuxaout + +If there are still a.out system arounds, they shouldn't need this +anymore because the toolchain has been fixed. + +* configure.ac (emacs_cv_b_link): Remove obsolete check. + +(cherry picked from commit 6c1413d5ef0d1fea639b0d8c83a0c0065d99359b) +--- + configure.ac | 33 --------------------------------- + 1 file changed, 33 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 5dd182ae6e5..8a20caa8c4e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2695,39 +2695,6 @@ if test "${HAVE_X11}" = "yes"; then + export LD_RUN_PATH + fi + +- if test "${opsys}" = "gnu-linux"; then +- AC_CACHE_CHECK([whether X on GNU/Linux needs -b to link], [emacs_cv_b_link], +- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], +- [[XOpenDisplay ("foo");]])], +- [xgnu_linux_first_failure=no], +- [xgnu_linux_first_failure=yes]) +- if test "${xgnu_linux_first_failure}" = "yes"; then +- OLD_CPPFLAGS="$CPPFLAGS" +- OLD_LIBS="$LIBS" +- CPPFLAGS="$CPPFLAGS -b i486-linuxaout" +- LIBS="$LIBS -b i486-linuxaout" +- AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], +- [[XOpenDisplay ("foo");]])], +- [xgnu_linux_second_failure=no], +- [xgnu_linux_second_failure=yes]) +- if test "${xgnu_linux_second_failure}" = "yes"; then +- # If we get the same failure with -b, there is no use adding -b. +- # So leave it out. This plays safe. +- emacs_cv_b_link=no +- else +- emacs_cv_b_link=yes +- fi +- CPPFLAGS=$OLD_CPPFLAGS +- LIBS=$OLD_LIBS +- else +- emacs_cv_b_link=no +- fi]) +- if test "x$emacs_cv_b_link" = xyes ; then +- LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout" +- C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout" +- fi +- fi +- + # Reportedly, some broken Solaris systems have XKBlib.h but are missing + # header files included from there. + AC_CACHE_CHECK([for Xkb], [emacs_cv_xkb], +-- +2.41.0 + diff --git a/SOURCES/CEA1DE21AB108493CC9C65742E82323B8F4353EE b/SOURCES/CEA1DE21AB108493CC9C65742E82323B8F4353EE new file mode 100644 index 0000000..9007a2c --- /dev/null +++ b/SOURCES/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----- diff --git a/SOURCES/default.el b/SOURCES/default.el new file mode 100644 index 0000000..7df4cee --- /dev/null +++ b/SOURCES/default.el @@ -0,0 +1,7 @@ +;;; 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. + +(setq-default smime-CA-directory "/etc/ssl/certs") diff --git a/SOURCES/dotemacs.el b/SOURCES/dotemacs.el new file mode 100644 index 0000000..e1bee17 --- /dev/null +++ b/SOURCES/dotemacs.el @@ -0,0 +1,12 @@ +;; .emacs + +(custom-set-variables + ;; uncomment to always end a file with a newline + ;'(require-final-newline t) + ;; uncomment to disable loading of "default.el" at startup + ;'(inhibit-default-init t) + ;; default to unified diffs + '(diff-switches "-u")) + +;;; uncomment for CJK utf-8 support for non-Asian users +;; (require 'un-define) diff --git a/SOURCES/emacs-29.4.tar.xz.sig b/SOURCES/emacs-29.4.tar.xz.sig new file mode 100644 index 0000000..aad5b43 --- /dev/null +++ b/SOURCES/emacs-29.4.tar.xz.sig @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- + +iQFLBAABCgA1FiEEuwLkB66eqofJ5yodLU4f6VlXE10FAmZ26AAXHHN0ZWZhbmth +bmdhc0BnbWFpbC5jb20ACgkQLU4f6VlXE12pAwf8C+BIyBYVe3q7ErFAL7O1zK/k +fuL/Nh1g9pKY6JDiNx4INLi4DoFaoj4HzLj356N/m/8xZl0+J1TYOp5gR3TNiYSo +hf8Dxt9V3zEminMzXeQnrH0IMESkktpXmlhCcb5GtapO86KzYrFeZXU95fk8C3+H +7MVDo3QznLnQTUb+OythZ5d5ClN1XVNKrkcu/hdHR51lPYP4NW/zbWdCYvKsSNTD +pkr+484KAT/R2FzoyhUtbiGkJacG0AxHA7uwPqjCFcoaet/6GjkJ9UJTJo7A1VwF +9qBwS2UCLofsZpoutly+43Id+OJBmA6PbGyQayvDCPuxfX9Ok/TjWWLSY0z5wA== +=E1hc +-----END PGP SIGNATURE----- diff --git a/SOURCES/emacs-desktop.patch b/SOURCES/emacs-desktop.patch new file mode 100644 index 0000000..2453407 --- /dev/null +++ b/SOURCES/emacs-desktop.patch @@ -0,0 +1,26 @@ +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/SOURCES/emacs-desktop.sh b/SOURCES/emacs-desktop.sh new file mode 100755 index 0000000..d407ca3 --- /dev/null +++ b/SOURCES/emacs-desktop.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +# The pure GTK build of emacs is not supported on X11, so try to avoid +# using if there is an alternative. + +if [ "$XDG_SESSION_TYPE" = 'x11' ]; then + emacs="$(readlink -f /usr/bin/emacs)" + emacs="${emacs##*/}" + emacs="${emacs%-*.*.*}" + if [ "$emacs" = 'emacs' ]; then + if type emacs-gtk+x11 >/dev/null; then + exec emacs-gtk+x11 "$@" + elif type emacs-lucid >/dev/null; then + exec emacs-lucid "$@" + fi + fi +fi + +exec emacs "$@" diff --git a/SOURCES/emacs-libdir-vs-systemd.patch b/SOURCES/emacs-libdir-vs-systemd.patch new file mode 100644 index 0000000..32f6a83 --- /dev/null +++ b/SOURCES/emacs-libdir-vs-systemd.patch @@ -0,0 +1,31 @@ +From a56539c1d7ef7aa56e575685bdfe1406aebb518d Mon Sep 17 00:00:00 2001 +From: Peter Oliver +Date: Wed, 5 Feb 2020 12:42:04 +0000 +Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20assemble=20systemdunitdir=20fro?= + =?UTF-8?q?m=20`libdir`?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On 64 bit Fedora, `libdir` is `/usr/lib64`, whereas systemd services +live under `/usr/lib/systemd`. +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 2c82c49fba..b2468eb824 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -208,7 +208,7 @@ appdatadir= + # Other options include ~/.config/systemd/user/, + # $XDG_RUNTIME_DIR/systemd/user/ + # It seems the user may end up having to make a manual link... +-systemdunitdir=$(libdir)/systemd/user ++systemdunitdir=$(shell pkg-config --variable=systemduserunitdir systemd) + + # Where the etc/images/icons/hicolor directory is to be installed. + icondir=$(datarootdir)/icons +-- +2.24.1 + diff --git a/SOURCES/emacs-pgtk-on-x-error-message.patch b/SOURCES/emacs-pgtk-on-x-error-message.patch new file mode 100644 index 0000000..cfc7c3d --- /dev/null +++ b/SOURCES/emacs-pgtk-on-x-error-message.patch @@ -0,0 +1,26 @@ +From eaaf4883aee50974eeb03e529a29585f8ddc1d9d Mon Sep 17 00:00:00 2001 +From: Bhavin Gandhi +Date: Wed, 31 May 2023 22:44:54 +0530 +Subject: [PATCH] Add package names to PGTK on X error message + +--- + src/pgtkterm.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/pgtkterm.c b/src/pgtkterm.c +index c00e13550bd..ce51bff5947 100644 +--- a/src/pgtkterm.c ++++ b/src/pgtkterm.c +@@ -6680,7 +6680,8 @@ pgtk_display_x_warning (GdkDisplay *display) + " System. That configuration is unsupported and" + " will lead to sporadic crashes during transfer of" + " large selection data. It will also lead to" +- " various problems with keyboard input."); ++ " various problems with keyboard input." ++ "\nInstall emacs-gtk+x11 or emacs-lucid package."); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_container_add (GTK_CONTAINER (content_area), label); + gtk_widget_show (label); +-- +2.40.1 + diff --git a/SOURCES/emacs-spellchecker.patch b/SOURCES/emacs-spellchecker.patch new file mode 100644 index 0000000..f2eab01 --- /dev/null +++ b/SOURCES/emacs-spellchecker.patch @@ -0,0 +1,22 @@ +diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el +index 0a3a49d868..b6c0975857 100644 +--- a/lisp/textmodes/ispell.el ++++ b/lisp/textmodes/ispell.el +@@ -191,12 +191,12 @@ Must be greater than 1." + :type 'integer) + + (defcustom ispell-program-name +- (or (executable-find "aspell") +- (executable-find "ispell") ++ ;; Enchant is commonly installed as `enchant-2', so use this ++ ;; name and avoid old versions of `enchant'. ++ (or (executable-find "enchant-2") + (executable-find "hunspell") +- ;; Enchant is commonly installed as `enchant-2', so use this +- ;; name and avoid old versions of `enchant'. +- (executable-find "enchant-2") ++ (executable-find "aspell") ++ (executable-find "ispell") + "ispell") + "Program invoked by \\[ispell-word] and \\[ispell-region] commands." + :type 'string diff --git a/SOURCES/emacs-system-crypto-policies.patch b/SOURCES/emacs-system-crypto-policies.patch new file mode 100644 index 0000000..2f2435c --- /dev/null +++ b/SOURCES/emacs-system-crypto-policies.patch @@ -0,0 +1,11 @@ +--- 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 @@ + 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; + + /* Placeholders for the property list elements. */ diff --git a/SOURCES/emacs-terminal.desktop b/SOURCES/emacs-terminal.desktop new file mode 100644 index 0000000..3c12470 --- /dev/null +++ b/SOURCES/emacs-terminal.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Emacs Terminal +GenericName=Emacs Terminal +Comment=Emacs Terminal Mode +Exec=emacs-terminal +Icon=utilities-terminal +Type=Application +Terminal=false +Categories=Application;Utility;X-Red-Hat-Base;GTK;TerminalEmulator; +Encoding=UTF-8 +StartupWMClass=Emacs diff --git a/SOURCES/emacs-terminal.sh b/SOURCES/emacs-terminal.sh new file mode 100644 index 0000000..bc0592a --- /dev/null +++ b/SOURCES/emacs-terminal.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +exec /usr/bin/emacs -Q --eval '(term "/bin/bash")' diff --git a/SOURCES/site-start.el b/SOURCES/site-start.el new file mode 100644 index 0000000..efbb75b --- /dev/null +++ b/SOURCES/site-start.el @@ -0,0 +1,9 @@ +;;; loaded before user's ".emacs" file and default.el + +;; 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?\\'")))) diff --git a/SPECS/emacs.spec b/SPECS/emacs.spec new file mode 100644 index 0000000..3588953 --- /dev/null +++ b/SPECS/emacs.spec @@ -0,0 +1,676 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.6.5) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 4; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +%global _hardened_build 1 + +%bcond gpm %[!(0%{?rhel} >= 10)] +%bcond webkit %[!(0%{?rhel} >= 10)] + +# This file is encoded in UTF-8. -*- coding: utf-8 -*- +Summary: GNU Emacs text editor +Name: emacs +Epoch: 1 +Version: 29.4 +Release: %autorelease +License: GPL-3.0-or-later AND CC0-1.0 +URL: http://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/CEA1DE21AB108493CC9C65742E82323B8F4353EE +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 +# rhbz#713600 +Patch1: emacs-spellchecker.patch +Patch2: 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 +# Avoid using the pure GTK build on X11 where it is unsupported: +Patch4: emacs-desktop.patch +Patch5: 0001-configure-Remove-obsolete-check-for-b-i486-linuxaout.patch +Patch6: emacs-pgtk-on-x-error-message.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: autoconf +BuildRequires: bzip2 +BuildRequires: cairo +BuildRequires: texinfo +BuildRequires: gzip +BuildRequires: desktop-file-utils +BuildRequires: libappstream-glib +BuildRequires: libacl-devel +BuildRequires: harfbuzz-devel +BuildRequires: jansson-devel +BuildRequires: systemd-devel +BuildRequires: libgccjit-devel +BuildRequires: libtree-sitter-devel +BuildRequires: sqlite-devel +BuildRequires: libwebp-devel + +BuildRequires: gtk3-devel +%if %{with webkit} +BuildRequires: webkit2gtk4.1-devel +%endif + +BuildRequires: gnupg2 + +# For lucid +BuildRequires: Xaw3d-devel + +# for Patch3 +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} +Provides: emacs(bin) = %{epoch}:%{version}-%{release} +Supplements: (libwayland-server and emacs-common) + +%define site_lisp %{_datadir}/emacs/site-lisp +%define site_start_d %{site_lisp}/site-start.d +%define pkgconfig %{_datadir}/pkgconfig +%define emacs_libexecdir %{_libexecdir}/emacs/%{version}/%{_host} + +%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. +} + +%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 +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) + +%description gtk+x11 +%desc +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 +Requires(preun): /usr/sbin/alternatives +Requires(posttrans): /usr/sbin/alternatives +Requires: emacs-common = %{epoch}:%{version}-%{release} +Provides: emacs(bin) = %{epoch}:%{version}-%{release} + +%description lucid +%desc +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 +Requires(posttrans): /usr/sbin/alternatives +Requires: emacs-common = %{epoch}:%{version}-%{release} +Provides: emacs(bin) = %{epoch}:%{version}-%{release} +Provides: emacs-nox = %{epoch}:%{version}-%{release} +Obsoletes: emacs-nox < 1:29.1-5 + +%description nw +%desc +This package provides an emacs-nw binary with no graphical display +support, for running on a terminal. + +%package common +Summary: Emacs common files +# The entire source code is GPLv3+ except lib-src/etags.c which is +# also BSD. Manual (info) is GFDL. +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: %{name}-filesystem = %{epoch}:%{version}-%{release} +Requires: libgccjit +Recommends: (emacs or emacs-gtk+x11 or emacs-lucid or emacs-nw) +Recommends: enchant2 +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 +# 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 + +# 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) +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} +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 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 + +%description devel +Development header files for Emacs. + +%prep +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -p1 + +autoconf + +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 + +%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 + +%build +export CFLAGS="-DMAIL_USE_LOCKF %{build_cflags}" +%set_build_flags + +# Build Lucid binary +mkdir build-lucid && cd build-lucid +ln -s ../configure . + +%configure --with-cairo \ + --with-dbus \ + --with-gif \ + --with-gpm=no \ + --with-harfbuzz \ + --with-jpeg \ + --with-json \ + --with-modules \ + --with-native-compilation=no \ + --with-png \ + --with-rsvg \ + --with-sqlite3 \ + --with-tiff \ + --with-tree-sitter \ + --with-webp \ + --with-x-toolkit=lucid \ + --with-xft \ + --with-xinput2 \ + --with-xpm +%{setarch} %make_build bootstrap +%{setarch} %make_build +cd .. + +# Build binary without X support +mkdir build-nw && cd build-nw +ln -s ../configure . + +%configure --with-json \ + --with-modules \ + --with-native-compilation=no \ + --with-sqlite3 \ + --with-tree-sitter \ +%if %{without gpm} + --with-gpm=no \ +%endif + --with-x=no +%{setarch} %make_build bootstrap +%{setarch} %make_build +cd .. + +# Build GTK/X11 binary +mkdir build-gtk+x11 && cd build-gtk+x11 +ln -s ../configure . + +%configure --with-cairo \ + --with-dbus \ + --with-gif \ + --with-gpm=no \ + --with-harfbuzz \ + --with-jpeg \ + --with-json \ + --with-modules \ + --with-native-compilation=no \ + --with-png \ + --with-rsvg \ + --with-sqlite3 \ + --with-tiff \ + --with-tree-sitter \ + --with-webp \ + --with-x-toolkit=gtk3 \ + --with-xinput2 \ + --with-xpm \ + %{?with_webkit:--with-xwidgets} +%{setarch} %make_build bootstrap +%{setarch} %make_build +cd .. + +# Build pure GTK binary +mkdir build-pgtk && cd build-pgtk +ln -s ../configure . + +%configure --with-cairo \ + --with-dbus \ + --with-gif \ + --with-gpm=no \ + --with-harfbuzz \ + --with-jpeg \ + --with-json \ + --with-modules \ + --with-native-compilation=no \ + --with-pgtk \ + --with-png \ + --with-rsvg \ + --with-sqlite3 \ + --with-tiff \ + --with-tree-sitter \ + --with-webp \ + --with-xpm \ + %{?with_webkit:--with-xwidgets} +%{setarch} %make_build bootstrap +%{setarch} %make_build +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} +sitestartdir=%{site_start_d} + +Name: emacs +Description: GNU Emacs text editor +Version: %{epoch}:%{version} +EOF + +# Create macros.emacs RPM macro file +cat > macros.emacs << EOF +%%_emacs_version %{version} +%%_emacs_ev %{?epoch:%{epoch}:}%{version} +%%_emacs_evr %{?epoch:%{epoch}:}%{version}-%{release} +%%_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 + +%install +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 with GTK toolkit +install -p -m 0755 build-gtk+x11/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-gtk+x11 + +# Install the emacs with Lucid toolkit +install -p -m 0755 build-lucid/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-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 + +# Make sure movemail isn't setgid +chmod 755 %{buildroot}%{emacs_libexecdir}/movemail + +mkdir -p %{buildroot}%{site_lisp} +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 + +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} + +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 + +# Install pkgconfig file +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/ + +# 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 + +# Remove duplicate desktop-related files +rm %{buildroot}%{_datadir}/%{name}/%{version}/etc/%{name}.{desktop,service} + +# We don't ship the client variants yet +# https://src.fedoraproject.org/rpms/emacs/pull-request/12 +rm %{buildroot}%{_datadir}/applications/emacsclient.desktop +rm %{buildroot}%{_datadir}/applications/emacsclient-mail.desktop + +# +# Create file lists +# +rm -f *-filelist {common,el}-*-files + +( TOPDIR=${PWD} + cd %{buildroot} + + find .%{_datadir}/emacs/%{version}/lisp .%{site_lisp} \ + \( -type f -name '*.elc' -fprint $TOPDIR/common-lisp-none-elc-files \) -o \( -type d -fprintf $TOPDIR/common-lisp-dir-files "%%%%dir %%p\n" \) -o \( -name '*.el.gz' -fprint $TOPDIR/el-bytecomped-files -o -fprint $TOPDIR/common-not-comped-files \) + +) + +# Sorted list of info files +%define info_files auth autotype bovine calc ccmode cl dbus dired-x ebrowse ede ediff edt efaq eglot eieio eintr elisp emacs-gnutls emacs-mime emacs epa erc ert eshell eudc eww flymake forms gnus htmlfontify idlwave ido mairix-el message mh-e modus-themes newsticker nxml-mode octave-mode org pcl-cvs pgg rcirc reftex remember sasl sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp transient url use-package vhdl-mode vip viper vtable widget wisent woman + +for info_f in %info_files; do + echo "%{_infodir}/${info_f}.info*" >> info-filelist +done +# info.gz is a rename of info.info.gz and thus needs special handling +echo "%{_infodir}/info*" >> info-filelist + +# Put the lists together after filtering ./usr to /usr +sed -i -e "s|\.%{_prefix}|%{_prefix}|" *-files +grep -vhE '%{site_lisp}(|/(default\.el|site-start\.d|site-start\.el))$' {common,el}-*-files > common-filelist + +# Remove old icon +rm %{buildroot}%{_datadir}/icons/hicolor/scalable/mimetypes/emacs-document23.svg + +# Install all 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} + +echo %{emacs_libexecdir}/${pgtk_pdmp} >> pgtk-filelist +echo %{emacs_libexecdir}/${gtkx11_pdmp} >> gtk+x11-filelist +echo %{emacs_libexecdir}/${lucid_pdmp} >> lucid-filelist +echo %{emacs_libexecdir}/${nw_pdmp} >> nw-filelist + +%check +appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/*.metainfo.xml +desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop + +%preun +/usr/sbin/alternatives --remove emacs %{_bindir}/emacs-%{version} || : + +%posttrans +/usr/sbin/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-%{version} 80 || : + +%preun lucid +/usr/sbin/alternatives --remove emacs %{_bindir}/emacs-%{version}-lucid || : +/usr/sbin/alternatives --remove emacs-lucid %{_bindir}/emacs-%{version}-lucid || : + +%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 || : + +%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 || : + +%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 || : + +%preun nw +/usr/sbin/alternatives --remove emacs %{_bindir}/emacs-%{version}-nw || : +/usr/sbin/alternatives --remove emacs-nw %{_bindir}/emacs-%{version}-nw || : + +%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 || : + +%preun common +/usr/sbin/alternatives --remove emacs.etags %{_bindir}/etags.emacs || : + +%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-filelist +%{_bindir}/emacs-%{version} +%attr(0755,-,-) %ghost %{_bindir}/emacs +%{_datadir}/glib-2.0/schemas/org.gnu.emacs.defaults.gschema.xml + +%files gtk+x11 -f gtk+x11-filelist +%{_bindir}/emacs-%{version}-gtk+x11 +%attr(0755,-,-) %ghost %{_bindir}/emacs +%attr(0755,-,-) %ghost %{_bindir}/emacs-gtk+x11 + +%files lucid -f lucid-filelist +%{_bindir}/emacs-%{version}-lucid +%attr(0755,-,-) %ghost %{_bindir}/emacs +%attr(0755,-,-) %ghost %{_bindir}/emacs-lucid + +%files nw -f nw-filelist +%{_bindir}/emacs-%{version}-nox +%{_bindir}/emacs-%{version}-nw +%{_bindir}/emacs-nox +%attr(0755,-,-) %ghost %{_bindir}/emacs +%attr(0755,-,-) %ghost %{_bindir}/emacs-nw + +%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 +%{_datadir}/applications/emacs.desktop +%{_datadir}/applications/emacs-mail.desktop +%{_metainfodir}/%{name}.metainfo.xml +%{_datadir}/icons/hicolor/*/apps/emacs.png +%{_datadir}/icons/hicolor/scalable/apps/emacs.svg +%{_datadir}/icons/hicolor/scalable/apps/emacs.ico +%{_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} +%{_datadir}/emacs/%{version}/etc +%{_datadir}/emacs/%{version}/site-lisp +%dir %{emacs_libexecdir}/ +%{emacs_libexecdir}/movemail +%{emacs_libexecdir}/hexl +%{emacs_libexecdir}/rcs2log +%{_userunitdir}/emacs.service +%attr(0644,root,root) %config(noreplace) %{site_lisp}/default.el +%attr(0644,root,root) %config %{site_lisp}/site-start.el +%{pkgconfig}/emacs.pc + +%files terminal +%{_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 + +%changelog +## START: Generated by rpmautospec +* Thu Aug 22 2024 Jacek Migacz - 1:29.4-4 +- Unset custom linker flags + +* Thu Aug 22 2024 Jacek Migacz - 1:29.4-3 +- Improve the security of the generated code by hardening + +* Wed Aug 21 2024 Jacek Migacz - 1:29.4-2 +- Disable Native-Compilation feature + +* Wed Aug 07 2024 Jacek Migacz - 1:29.4-1 +- Rebase to version 29.4 + +* Tue Aug 06 2024 Frantisek Sumsal - 1:29.2-7 +- Add gating configuration for C10S/RHEL10 + +* Mon Jun 24 2024 Troy Dawson - 1:29.2-6 +- Bump release for June 2024 mass rebuild + +* Mon Apr 29 2024 Pavol Žáčik - 1:29.2-5 +- Remove liblockfile dependency + +* Tue Feb 06 2024 Yaakov Selkowitz - 1:29.2-4 +- Disable gpm on ELN + +* Wed Jan 24 2024 Fedora Release Engineering - 1:29.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Peter Oliver - 1:29.2-2 +- Remember to update sources. + +* Mon Jan 22 2024 Peter Oliver - 1:29.2-1 +- Update to version 29.2 + +* Wed Jan 17 2024 Tim Landscheidt - 1:29.1-16 +- Add -W option to %%_emacs_bytecompile + +* Fri Jan 05 2024 Lukáš Zaoral - 1:29.1-15 +- use correct BuildRequires for SQLite support + +* Sun Nov 19 2023 Peter Oliver - 1:29.1-14 +- Recommend libtree-sitter-java. + +* Tue Nov 07 2023 Yaakov Selkowitz - 1:29.1-13 +- Fix alternatives dependencies + +* Sat Oct 21 2023 Peter Oliver - 1:29.1-12 +- Fix typo. + +* Sat Oct 21 2023 Peter Oliver - 1:29.1-11 +- Fix typo. + +* Sat Oct 21 2023 Peter Oliver - 1:29.1-10 +- RPMAUTOSPEC: unresolvable merge +## END: Generated by rpmautospec