[packages/emacs] Up to 30.2

arekm arekm at pld-linux.org
Mon Mar 16 00:36:47 CET 2026


commit 076f1b7aa104c857eb5ed362bd712fa6dcc6ec38
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Mar 16 00:36:19 2026 +0100

    Up to 30.2

 bashizm.patch                                |   8 ---
 emacs-file-expand-wildcards-permission.patch |  37 ++++++++++
 emacs-gtk.desktop                            |   6 +-
 emacs.spec                                   | 101 +++++++++++++--------------
 imagemagick7.patch                           |  58 ---------------
 5 files changed, 88 insertions(+), 122 deletions(-)
---
diff --git a/emacs.spec b/emacs.spec
index 6a472a9..8dbacd9 100644
--- a/emacs.spec
+++ b/emacs.spec
@@ -1,14 +1,12 @@
 # TODO:
-# - package cedit lisp files files
-# - package new (non gtk) desktop file?
 # - package ctags/etags in subpackage?
 #
 # Conditional build:
 %bcond_without	athena		# don't build athena version
-%bcond_without	gtk		# don't build GTK+2 version
+%bcond_without	gtk		# don't build GTK+3 version
 %bcond_without	motif		# don't build motif version
 %bcond_without	nox		# don't build nox version
-%bcond_with	bootstrap	# build bootsrtap version
+%bcond_with	bootstrap	# build bootstrap version
 #
 Summary:	The Emacs text editor for the X Window System
 Summary(de.UTF-8):	GNU Emacs
@@ -18,13 +16,13 @@ Summary(pl.UTF-8):	GNU Emacs - edytor tekstu dla systemu X Window
 Summary(pt_BR.UTF-8):	GNU Emacs
 Summary(tr.UTF-8):	GNU Emacs
 Name:		emacs
-%define	ver	26.3
+%define	ver	30.2
 Version:	%{ver}
-Release:	5
+Release:	1
 License:	GPL v3+
 Group:		Applications/Editors/Emacs
 Source0:	ftp://ftp.gnu.org/pub/gnu/emacs/%{name}-%{version}.tar.xz
-# Source0-md5:	0a2e4b965d31a7cb1930eae3b79df793
+# Source0-md5:	0adba4843ac864ba8c3c9b2a7deea176
 Source1:	%{name}-dot%{name}
 Source2:	%{name}-site-start.el
 Source3:	%{name}.png
@@ -34,25 +32,25 @@ Source6:	%{name}-athena.desktop
 Source7:	%{name}-gtk.desktop
 Source8:	%{name}-motif.desktop
 Source9:	%{name}-nox.desktop
-Patch0:		imagemagick7.patch
-Patch1:		bashizm.patch
+Patch0:		%{name}-file-expand-wildcards-permission.patch
 URL:		http://www.gnu.org/software/emacs/
-BuildRequires:	autoconf
-BuildRequires:	automake
-BuildRequires:	ncurses-devel
 BuildRequires:	freetype-devel
-%{?with_gtk:BuildRequires:	gtk+2-devel}
-BuildRequires:	libdnet-devel
+BuildRequires:	giflib-devel
+BuildRequires:	gnutls-devel
+%{?with_gtk:BuildRequires:	gtk+3-devel}
+BuildRequires:	harfbuzz-devel
+BuildRequires:	lcms2-devel
 BuildRequires:	libjpeg-devel
 BuildRequires:	libpng-devel
 BuildRequires:	libtiff-devel
-BuildRequires:	libtool
-BuildRequires:	giflib-devel
-BuildRequires:	ncurses-devel
+BuildRequires:	libwebp-devel
+BuildRequires:	libxml2-devel
 %{?with_motif:BuildRequires:	motif-devel}
+BuildRequires:	ncurses-devel
 BuildRequires:	pkgconfig
 BuildRequires:	rpm-pythonprov
 BuildRequires:	sed >= 4.0
+BuildRequires:	sqlite3-devel
 BuildRequires:	texinfo
 BuildRequires:	xorg-lib-libX11-devel
 %{?with_athena:BuildRequires:	xorg-lib-libXaw-devel}
@@ -60,6 +58,7 @@ BuildRequires:	xorg-lib-libXext-devel
 BuildRequires:	xorg-lib-libXft-devel
 BuildRequires:	xorg-lib-libXmu-devel
 BuildRequires:	xorg-lib-libXpm-devel
+BuildRequires:	zlib-devel
 Requires:	%{name}-common = %{version}-%{release}
 Requires:	ctags
 Requires:	gnus-pkg-emacs
@@ -271,16 +270,16 @@ The Emacs text editor for X Window System (Athena toolkit version).
 Emacs - edytor tekstu Emacs dla X Window System (wersja Athena).
 
 %package gtk
-Summary:	The Emacs text editor for X Window System (GTK+2 toolkit version)
-Summary(pl.UTF-8):	Emacs - edytor tekstu Emacs dla X Window System (wersja GTK+2)
+Summary:	The Emacs text editor for X Window System (GTK+3 toolkit version)
+Summary(pl.UTF-8):	Emacs - edytor tekstu Emacs dla X Window System (wersja GTK+3)
 Group:		Applications/Editors/Emacs
 Requires:	%{name}-common = %{version}-%{release}
 
 %description gtk
-The Emacs text editor for X Window System (GTK+2 toolkit version).
+The Emacs text editor for X Window System (GTK+3 toolkit version).
 
 %description gtk -l pl.UTF-8
-Emacs - edytor tekstu Emacs dla X Window System (wersja GTK+2).
+Emacs - edytor tekstu Emacs dla X Window System (wersja GTK+3).
 
 %package motif
 Summary:	The Emacs text editor for X Window System (Motif toolkit version)
@@ -371,13 +370,8 @@ exit 1
 
 %setup -q -n %{name}-%{ver}
 %patch -P0 -p1
-%patch -P1 -p1
 
 %build
-cp -f /usr/share/automake/config.* .
-%{__aclocal} -I m4
-%{__autoconf}
-%{__autoheader}
 
 %define bootstrap ""
 %define configuredir ..
@@ -387,7 +381,6 @@ echo "Building emacs athena binary ..."
 rm -rf build-athena
 mkdir build-athena && cd build-athena
 %configure \
-	--with-pop \
 	--with-xpm \
 	--with-jpeg \
 	--with-tiff \
@@ -396,29 +389,28 @@ mkdir build-athena && cd build-athena
 	--with-x-toolkit=athena \
 	%{?with_bootstrap:--without-gpm}
 
-%{__make} -j1 V=1 bootstrap
+%{__make} V=1 bootstrap
 %define	bootstrap athena
 cd ..
 %endif
 
 %if %{with gtk}
-echo "Building emacs GTK+2 binary ..."
+echo "Building emacs GTK+3 binary ..."
 rm -rf build-gtk
 mkdir build-gtk && cd build-gtk
 %configure \
-	--with-pop \
 	--with-xpm \
 	--with-jpeg \
 	--with-tiff \
 	--with-gif \
 	--with-png \
-	--with-x-toolkit=gtk \
+	--with-x-toolkit=gtk3 \
 	%{?with_bootstrap:--without-gpm}
 
 %if "%{bootstrap}" != ""
 %{__make} V=1
 %else
-%{__make} -j1 V=1 bootstrap
+%{__make} V=1 bootstrap
 %define	bootstrap gtk
 %endif
 cd ..
@@ -429,7 +421,6 @@ echo "Building emacs motif binary ..."
 rm -rf build-motif
 mkdir build-motif && cd build-motif
 %configure \
-	--with-pop \
 	--with-xpm \
 	--with-jpeg \
 	--with-tiff \
@@ -441,7 +432,7 @@ mkdir build-motif && cd build-motif
 %if "%{bootstrap}" != ""
 %{__make} V=1
 %else
-%{__make} -j1 V=1 bootstrap
+%{__make} V=1 bootstrap
 %define	bootstrap motif
 %endif
 cd ..
@@ -452,7 +443,6 @@ echo "Building emacs binary without X support ..."
 [ -d build-nox ] && rm -rf build-nox
 mkdir build-nox && cd build-nox
 %configure \
-	--with-pop \
 	--without-xpm \
 	--without-jpeg \
 	--without-tiff \
@@ -464,7 +454,7 @@ mkdir build-nox && cd build-nox
 %if "%{bootstrap}" != ""
 %{__make} V=1
 %else
-%{__make} -j1 V=1 bootstrap
+%{__make} V=1 bootstrap
 %define	bootstrap nox
 %endif
 cd ..
@@ -516,9 +506,13 @@ install %{SOURCE9} $RPM_BUILD_ROOT%{_desktopdir}
 [ -d build-nox ] && install build-nox/etc/DOC* $RPM_BUILD_ROOT%{_datadir}/emacs/%{ver}/etc
 
 rm -f $RPM_BUILD_ROOT%{_infodir}/dir
-rm $RPM_BUILD_ROOT%{_infodir}/info.info*
 # ERC is in separate spec
 rm -fr $RPM_BUILD_ROOT%{_datadir}/emacs/%{ver}/lisp/erc
+# remove upstream desktop files, we use our own variant-specific ones
+rm -f $RPM_BUILD_ROOT%{_desktopdir}/emacs.desktop
+rm -f $RPM_BUILD_ROOT%{_desktopdir}/emacsclient.desktop
+rm -f $RPM_BUILD_ROOT%{_desktopdir}/emacs-mail.desktop
+rm -f $RPM_BUILD_ROOT%{_desktopdir}/emacsclient-mail.desktop
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -555,6 +549,7 @@ fi
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/emacs
 %attr(755,root,root) %{_bindir}/emacs-%{ver}
+%attr(755,root,root) %{_bindir}/emacs-%{default_emacs}
 %{_desktopdir}/emacs-%{default_emacs}.desktop
 %{_pixmapsdir}/*
 %{_iconsdir}/hicolor/16x16/apps/emacs*.png
@@ -562,26 +557,34 @@ fi
 %{_iconsdir}/hicolor/32x32/apps/emacs*.png
 %{_iconsdir}/hicolor/48x48/apps/emacs*.png
 %{_iconsdir}/hicolor/128x128/apps/emacs*.png
+%{_iconsdir}/hicolor/scalable/apps/emacs*.ico
 %{_iconsdir}/hicolor/scalable/apps/emacs*.svg
 %{_iconsdir}/hicolor/scalable/mimetypes/emacs*.svg
+%{_datadir}/metainfo/emacs.metainfo.xml
 
 %files common
 %defattr(644,root,root,755)
 %config(noreplace) /etc/skel/.emacs
 %attr(755,root,root) %{_bindir}/ebrowse
 %attr(755,root,root) %{_bindir}/emacsclient
+%attr(755,root,root) %{_bindir}/ctags
+%attr(755,root,root) %{_bindir}/etags
+%{_includedir}/emacs-module.h
+%{_mandir}/man1/ctags.1*
 %{_mandir}/man1/ebrowse*
 %{_mandir}/man1/emacs*
+%{_mandir}/man1/etags*
 %{_infodir}/*
+%{_libdir}/systemd/user/emacs.service
 
 %dir %{_libexecdir}/emacs
 %dir %{_libexecdir}/emacs/%{ver}
 %dir %{_libexecdir}/emacs/%{ver}/*
 
-%attr(755,root,mail) %{_libexecdir}/emacs/%{ver}/*-linux*/hexl
+%attr(755,root,root) %{_libexecdir}/emacs/%{ver}/*-linux*/hexl
 %attr(2755,root,mail) %{_libexecdir}/emacs/%{ver}/*-linux*/movemail
-%attr(755,root,mail) %{_libexecdir}/emacs/%{ver}/*-linux*/profile
-%attr(755,root,mail) %{_libexecdir}/emacs/%{ver}/*-linux*/rcs2log
+%attr(755,root,root) %{_libexecdir}/emacs/%{ver}/*-linux*/rcs2log
+%{_libexecdir}/emacs/%{ver}/*-linux*/emacs-*.pdmp
 
 %dir %{_datadir}/emacs
 %dir %{_datadir}/emacs/%{ver}
@@ -615,56 +618,48 @@ fi
 %dir %{_datadir}/emacs/%{ver}/lisp/term
 %dir %{_datadir}/emacs/%{ver}/lisp/textmodes
 %dir %{_datadir}/emacs/%{ver}/lisp/url
+%dir %{_datadir}/emacs/%{ver}/lisp/use-package
 %dir %{_datadir}/emacs/%{ver}/lisp/vc
 
 %{_datadir}/emacs/site-lisp
 %{_datadir}/emacs/%{ver}/etc
+%{_datadir}/emacs/%{ver}/lisp/COPYING
 %{_datadir}/emacs/%{ver}/lisp/*.el
 %{_datadir}/emacs/%{ver}/lisp/*.elc
 %{_datadir}/emacs/%{ver}/lisp/README
-%{_datadir}/emacs/%{ver}/lisp/calc/*.el
 %{_datadir}/emacs/%{ver}/lisp/calc/*.elc
-%{_datadir}/emacs/%{ver}/lisp/calendar/*.el
 %{_datadir}/emacs/%{ver}/lisp/calendar/*.elc
-%{_datadir}/emacs/%{ver}/lisp/emacs-lisp/*.el
 %{_datadir}/emacs/%{ver}/lisp/emacs-lisp/*.elc
 %{_datadir}/emacs/%{ver}/lisp/emulation/*.elc
 %{_datadir}/emacs/%{ver}/lisp/eshell/*.elc
-%{_datadir}/emacs/%{ver}/lisp/eshell/esh-groups.el
 %{_datadir}/emacs/%{ver}/lisp/international/*.el
 %{_datadir}/emacs/%{ver}/lisp/international/*.elc
 %{_datadir}/emacs/%{ver}/lisp/language/*.elc
 %{_datadir}/emacs/%{ver}/lisp/cedet/*.elc
-%{_datadir}/emacs/%{ver}/lisp/cedet/ede/*.el
 %{_datadir}/emacs/%{ver}/lisp/cedet/ede/*.elc
-%{_datadir}/emacs/%{ver}/lisp/cedet/semantic/*.el
 %{_datadir}/emacs/%{ver}/lisp/cedet/semantic/*.elc
 %{_datadir}/emacs/%{ver}/lisp/cedet/semantic/analyze/*.elc
 %{_datadir}/emacs/%{ver}/lisp/cedet/semantic/bovine/*.elc
 %{_datadir}/emacs/%{ver}/lisp/cedet/semantic/decorate/*.elc
 %{_datadir}/emacs/%{ver}/lisp/cedet/semantic/symref/*.elc
 %{_datadir}/emacs/%{ver}/lisp/cedet/semantic/wisent/*.elc
-%{_datadir}/emacs/%{ver}/lisp/cedet/srecode/*.el
 %{_datadir}/emacs/%{ver}/lisp/cedet/srecode/*.elc
 %{_datadir}/emacs/%{ver}/lisp/image/*.elc
 %{_datadir}/emacs/%{ver}/lisp/mail/blessmail.el
-%{_datadir}/emacs/%{ver}/lisp/mail/rmail-loaddefs.el
 %{_datadir}/emacs/%{ver}/lisp/mail/*.elc
-%{_datadir}/emacs/%{ver}/lisp/mh-e/*.el
 %{_datadir}/emacs/%{ver}/lisp/mh-e/*.elc
-%{_datadir}/emacs/%{ver}/lisp/net/*.el
 %{_datadir}/emacs/%{ver}/lisp/net/*.elc
 %{_datadir}/emacs/%{ver}/lisp/nxml/*.elc
 %{_datadir}/emacs/%{ver}/lisp/obsolete/messcompat.el
 %{_datadir}/emacs/%{ver}/lisp/obsolete/*.elc
-%{_datadir}/emacs/%{ver}/lisp/org/*.el
+%{_datadir}/emacs/%{ver}/lisp/org/org-version.el
 %{_datadir}/emacs/%{ver}/lisp/org/*.elc
 %{_datadir}/emacs/%{ver}/lisp/play/*.elc
 %{_datadir}/emacs/%{ver}/lisp/progmodes/*.elc
 %{_datadir}/emacs/%{ver}/lisp/term/*.elc
-%{_datadir}/emacs/%{ver}/lisp/textmodes/reftex-loaddefs.el
 %{_datadir}/emacs/%{ver}/lisp/textmodes/*.elc
 %{_datadir}/emacs/%{ver}/lisp/url/*.elc
+%{_datadir}/emacs/%{ver}/lisp/use-package/*.elc
 %{_datadir}/emacs/%{ver}/lisp/vc/*.elc
 
 %{_datadir}/emacs/%{ver}/site-lisp/subdirs.el
@@ -702,6 +697,7 @@ fi
 %{_datadir}/emacs/%{ver}/lisp/term/*.el.gz
 %{_datadir}/emacs/%{ver}/lisp/textmodes/*.el.gz
 %{_datadir}/emacs/%{ver}/lisp/url/*.el.gz
+%{_datadir}/emacs/%{ver}/lisp/use-package/*.el.gz
 %{_datadir}/emacs/%{ver}/lisp/vc/*.el.gz
 
 %files leim
@@ -750,7 +746,6 @@ fi
 %defattr(644,root,root,755)
 %dir %{_datadir}/emacs/%{ver}/lisp/gnus
 %{_datadir}/emacs/%{ver}/lisp/gnus/*.*
-%{_datadir}/emacs/%{ver}/lisp/gnus/.dir-locals.el
 %exclude %{_datadir}/emacs/%{ver}/lisp/gnus/*.el.gz
 
 %files gnus-el
diff --git a/bashizm.patch b/bashizm.patch
deleted file mode 100644
index ed1edf0..0000000
--- a/bashizm.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- emacs-25.1/build-aux/make-info-dir.orig	2016-06-29 11:49:16.000000000 +0200
-+++ emacs-25.1/build-aux/make-info-dir	2016-12-25 17:58:48.556470701 +0100
-@@ -1,4 +1,4 @@
--#!/bin/sh
-+#!/bin/bash
- 
- ### make-info-dir - create info/dir, for systems without install-info
- 
diff --git a/emacs-file-expand-wildcards-permission.patch b/emacs-file-expand-wildcards-permission.patch
new file mode 100644
index 0000000..33185d8
--- /dev/null
+++ b/emacs-file-expand-wildcards-permission.patch
@@ -0,0 +1,37 @@
+--- emacs-30.2/lisp/files.el.orig	2026-03-15 23:51:55.659022276 +0100
++++ emacs-30.2/lisp/files.el	2026-03-15 23:57:21.716561779 +0100
+@@ -7808,19 +7808,21 @@
+               (push (or dir nondir) contents)
+ 	    (let ((this-dir-contents
+ 		   ;; Filter out "." and ".."
+-		   (delq nil
+-                         (mapcar (lambda (name)
+-                                   (unless (string-match "\\`\\.\\.?\\'"
+-                                                         (file-name-nondirectory
+-                                                          name))
+-                                     name))
+-			         (directory-files
+-                                  (or dir ".") full
+-                                  (if regexp
+-                                      ;; We're matching each file name
+-                                      ;; element separately.
+-                                      (concat "\\`" nondir "\\'")
+-				   (wildcard-to-regexp nondir)))))))
++		   (condition-case nil
++		       (delq nil
++			     (mapcar (lambda (name)
++				       (unless (string-match "\\`\\.\\.?\\'"
++							    (file-name-nondirectory
++							     name))
++					 name))
++				     (directory-files
++				      (or dir ".") full
++				      (if regexp
++					  ;; We're matching each file name
++					  ;; element separately.
++					  (concat "\\`" nondir "\\'")
++					(wildcard-to-regexp nondir)))))
++		     (permission-denied nil))))
+ 	      (setq contents
+ 		    (nconc
+ 		     (if (and dir (not full))
diff --git a/emacs-gtk.desktop b/emacs-gtk.desktop
index c47e229..0db0430 100644
--- a/emacs-gtk.desktop
+++ b/emacs-gtk.desktop
@@ -1,8 +1,8 @@
 [Desktop Entry]
-Name=Emacs GTK2
+Name=Emacs GTK3
 Name[ko]=이맥스
-Comment=Emacs text editor - GTK2 version
-Comment[pl]=Edytor tekstu Emacs - wersja GTK2
+Comment=Emacs text editor - GTK3 version
+Comment[pl]=Edytor tekstu Emacs - wersja GTK3
 TryExec=emacs-gtk
 Exec=emacs-gtk
 Icon=emacs
diff --git a/imagemagick7.patch b/imagemagick7.patch
deleted file mode 100644
index 1fbaf22..0000000
--- a/imagemagick7.patch
+++ /dev/null
@@ -1,58 +0,0 @@
---- emacs-25.1/configure.ac~	2016-07-25 09:08:36.000000000 +0200
-+++ emacs-25.1/configure.ac	2016-12-25 13:00:06.594562908 +0100
-@@ -2524,7 +2524,7 @@ if test "${HAVE_X11}" = "yes" || test "$
-     ## 6.3.5 is the earliest version known to work; see Bug#17339.
-     ## 6.8.2 makes Emacs crash; see Bug#13867.
-     ## 7 and later have not been ported to; See Bug#25967.
--    IMAGEMAGICK_MODULE="Wand >= 6.3.5 Wand != 6.8.2 Wand < 7"
-+    IMAGEMAGICK_MODULE="MagicWand >= 6.3.5 Wand != 6.8.2"
-     EMACS_CHECK_MODULES([IMAGEMAGICK], [$IMAGEMAGICK_MODULE])
- 
-     if test $HAVE_IMAGEMAGICK = yes; then
---- emacs-24.3/src/image.c~	2016-12-25 12:47:48.000000000 +0100
-+++ emacs-24.3/src/image.c	2016-12-25 12:52:35.931084598 +0100
-@@ -7618,14 +7618,14 @@
- /* The GIF library also defines DrawRectangle, but its never used in Emacs.
-    Therefore rename the function so it doesn't collide with ImageMagick.  */
- #define DrawRectangle DrawRectangleGif
--#include <wand/MagickWand.h>
-+#include <MagickWand/MagickWand.h>
- 
- /* ImageMagick 6.5.3 through 6.6.5 hid PixelGetMagickColor for some reason.
-    Emacs seems to work fine with the hidden version, so unhide it.  */
--#include <magick/version.h>
-+#include <MagickCore/version.h>
- #if 0x653 <= MagickLibVersion && MagickLibVersion <= 0x665
- extern WandExport void PixelGetMagickColor (const PixelWand *,
--					    MagickPixelPacket *);
-+					    PixelInfo *);
- #endif
- 
- /* Log ImageMagick error message.
-@@ -8402,7 +8402,7 @@
-       PixelWand **source, **dest;
-       size_t source_width, source_height;
-       ssize_t source_left, source_top;
--      MagickPixelPacket pixel;
-+      PixelInfo pixel;
-       DisposeType dispose;
-       ptrdiff_t lines = 0;
- 
-@@ -8467,7 +8467,7 @@
- 	      if (dispose == BackgroundDispose || PixelGetAlpha (source[x]))
- 		{
- 		  PixelGetMagickColor (source[x], &pixel);
--		  PixelSetMagickColor (dest[x + source_left], &pixel);
-+		  PixelSetPixelColor (dest[x + source_left], &pixel);
- 		}
- 	    }
- 	  PixelSyncIterator (dest_iterator);
-@@ -8512,7 +8512,7 @@
-   MagickWand *image_wand;
-   PixelIterator *iterator;
-   PixelWand **pixels, *bg_wand = NULL;
--  MagickPixelPacket  pixel;
-+  PixelInfo  pixel;
-   Lisp_Object image;
-   Lisp_Object value;
-   Lisp_Object crop;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/emacs.git/commitdiff/076f1b7aa104c857eb5ed362bd712fa6dcc6ec38



More information about the pld-cvs-commit mailing list