summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-12-02 05:08:08 +0000
committerCoprDistGit <infra@openeuler.org>2024-12-02 05:08:08 +0000
commit7346ce8c248bc4bcdd7ebc21e7ff66f959d83942 (patch)
tree0cac8f682d91e2997e998c47492462f86e19e011
parentd610ee73405747b67cb094b0ec2f011e7a1d6e22 (diff)
automatic import of emacs
-rw-r--r--.gitignore1
-rw-r--r--default.el7
-rw-r--r--dotemacs.el12
-rw-r--r--emacs-deal-taboo-words.patch39
-rw-r--r--emacs-spellchecker.patch23
-rw-r--r--emacs-system-crypto-policies.patch11
-rw-r--r--emacs-terminal.desktop11
-rw-r--r--emacs-terminal.sh3
-rw-r--r--emacs.desktop12
-rw-r--r--emacs.service11
-rw-r--r--emacs.spec498
-rw-r--r--site-start.el9
-rw-r--r--sources1
13 files changed, 638 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..c6e99bf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/emacs-29.4.tar.xz
diff --git a/default.el b/default.el
new file mode 100644
index 0000000..7df4cee
--- /dev/null
+++ b/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/dotemacs.el b/dotemacs.el
new file mode 100644
index 0000000..e1bee17
--- /dev/null
+++ b/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/emacs-deal-taboo-words.patch b/emacs-deal-taboo-words.patch
new file mode 100644
index 0000000..8fb0c82
--- /dev/null
+++ b/emacs-deal-taboo-words.patch
@@ -0,0 +1,39 @@
+From 2b98d49b72e801109de870672bc071361a9b6a1b Mon Sep 17 00:00:00 2001
+From: yeah_wang <wangye70@huawei.com>
+Date: Thu, 8 Apr 2021 16:07:05 +0800
+Subject: [PATCH] emacs-deal-taboo-words
+
+---
+ etc/publicsuffix.txt | 2 --
+ lisp/mail/mail-extr.el | 1 -
+ 2 files changed, 3 deletions(-)
+
+diff --git a/etc/publicsuffix.txt b/etc/publicsuffix.txt
+index 1ede2b9..c38649f 100644
+--- a/etc/publicsuffix.txt
++++ b/etc/publicsuffix.txt
+@@ -6259,9 +6259,7 @@ tel.tr
+ tsk.tr
+ tv.tr
+ web.tr
+-// Used by Northern Cyprus
+ nc.tr
+-// Used by government agencies of Northern Cyprus
+ gov.nc.tr
+
+ // tt : http://www.nic.tt/
+diff --git a/lisp/mail/mail-extr.el b/lisp/mail/mail-extr.el
+index 11918aa..f2d7fae 100644
+--- a/lisp/mail/mail-extr.el
++++ b/lisp/mail/mail-extr.el
+@@ -1932,7 +1932,6 @@ place. It affects how `mail-extract-address-components' works."
+ ("ec" "Ecuador" "The Republic of %s")
+ ("ee" "Estonia")
+ ("eg" "Egypt" "The Arab Republic of %s")
+- ("eh" "Western Sahara")
+ ("er" "Eritrea")
+ ("es" "Spain" "The Kingdom of %s")
+ ("et" "Ethiopia")
+--
+2.23.0
+
diff --git a/emacs-spellchecker.patch b/emacs-spellchecker.patch
new file mode 100644
index 0000000..0e7cbc6
--- /dev/null
+++ b/emacs-spellchecker.patch
@@ -0,0 +1,23 @@
+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/emacs-system-crypto-policies.patch b/emacs-system-crypto-policies.patch
new file mode 100644
index 0000000..2f2435c
--- /dev/null
+++ b/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/emacs-terminal.desktop b/emacs-terminal.desktop
new file mode 100644
index 0000000..3c12470
--- /dev/null
+++ b/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/emacs-terminal.sh b/emacs-terminal.sh
new file mode 100644
index 0000000..bc0592a
--- /dev/null
+++ b/emacs-terminal.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /usr/bin/emacs -Q --eval '(term "/bin/bash")'
diff --git a/emacs.desktop b/emacs.desktop
new file mode 100644
index 0000000..c71b4a8
--- /dev/null
+++ b/emacs.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=Emacs
+GenericName=Text Editor
+Comment=Edit text
+Comment[zh_TW]=編輯文字
+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
+Icon=emacs
+Type=Application
+Terminal=false
+Categories=Utility;TextEditor;X-Red-Hat-Base;
+StartupWMClass=Emacs
diff --git a/emacs.service b/emacs.service
new file mode 100644
index 0000000..d611118
--- /dev/null
+++ b/emacs.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Emacs: the extensible, self-documenting text editor
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/emacs --daemon
+ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
+Restart=always
+
+[Install]
+WantedBy=default.target
diff --git a/emacs.spec b/emacs.spec
new file mode 100644
index 0000000..9762deb
--- /dev/null
+++ b/emacs.spec
@@ -0,0 +1,498 @@
+%global _hardened_build 1
+%bcond_with bootstrap
+
+%if "0%{?product_family}" != "0"
+%bcond_without bootstrap
+%endif
+
+Name: emacs
+Epoch: 1
+Version: 29.4
+Release: 1
+Summary: An extensible GNU text editor
+License: GPL-3.0-or-later AND CC0-1.0
+URL: https://www.gnu.org/software/emacs
+Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
+Source1: site-start.el
+Source2: default.el
+Source3: dotemacs.el
+Source4: emacs-terminal.sh
+Source5: emacs.service
+Source6: emacs.desktop
+Source7: emacs-terminal.desktop
+
+#patch from fedora
+#https://src.fedoraproject.org/rpms/emacs/blob/rawhide/f/emacs-spellchecker.patch
+Patch1001: emacs-spellchecker.patch
+#https://src.fedoraproject.org/rpms/emacs/blob/rawhide/f/emacs-system-crypto-policies.patch
+Patch1002: emacs-system-crypto-policies.patch
+
+Patch9000: emacs-deal-taboo-words.patch
+
+BuildRequires: gcc atk-devel cairo-devel freetype-devel fontconfig-devel dbus-devel giflib-devel
+BuildRequires: glibc-devel zlib-devel gnutls-devel libselinux-devel GConf2-devel alsa-lib-devel
+BuildRequires: libxml2-devel bzip2 cairo texinfo gzip desktop-file-utils libacl-devel libtiff-devel
+BuildRequires: libpng-devel libjpeg-turbo-devel libjpeg-turbo ncurses-devel gpm-devel libX11-devel
+BuildRequires: libXau-devel libXdmcp-devel libXrender-devel libXt-devel libXpm-devel gtk3-devel
+BuildRequires: xorg-x11-proto-devel pkgconfig(webkit2gtk-4.1) librsvg2-devel
+BuildRequires: autoconf harfbuzz-devel jansson-devel systemd-devel gnupg2
+BuildRequires: libotf-devel m17n-lib-devel liblockfile-devel
+
+# For lucid
+BuildRequires: Xaw3d-devel
+
+%ifarch %{ix86}
+BuildRequires: util-linux
+%endif
+
+Requires: desktop-file-utils dejavu-sans-mono-fonts
+Requires: emacs-common = %{epoch}:%{version}-%{release}
+Requires(preun): %{_sbindir}/alternatives
+Requires(posttrans): %{_sbindir}/alternatives
+
+Provides: emacs(bin) = %{epoch}:%{version}-%{release}
+
+%define site_lisp %{_datadir}/emacs/site-lisp
+%define site_start_d %{site_lisp}/site-start.d
+%define bytecompargs -batch --no-init-file --no-site-file -f batch-byte-compile
+%define pkgconfig %{_datadir}/pkgconfig
+%define emacs_libexecdir %{_libexecdir}/emacs/%{version}/%{_host}
+
+%description
+Emacs is the extensible, customizable, self-documenting real-time display editor.
+At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language
+with extensions to support text editing. And it is an entire ecosystem of functionality beyond text editing,
+including a project planner, mail and news reader, debugger interface, calendar, and more.
+
+%package devel
+Summary: Development header files for emacs
+
+%description devel
+Development header files for emacs.
+
+%if !%{with bootstrap}
+%package lucid
+Summary: GNU Emacs text editor with LUCID toolkit X support
+Requires: emacs-common = %{epoch}:%{version}-%{release}
+Requires(preun): %{_sbindir}/alternatives
+Requires(posttrans): %{_sbindir}/alternatives
+Provides: emacs(bin) = %{epoch}:%{version}-%{release}
+
+%description lucid
+This package provides an emacs binary with support for X windows
+using LUCID toolkit.
+%endif
+
+%package nox
+Summary: GNU Emacs text editor without X support
+Requires: emacs-common = %{epoch}:%{version}-%{release}
+Requires(preun): %{_sbindir}/alternatives
+Requires(posttrans): %{_sbindir}/alternatives
+Provides: emacs(bin) = %{epoch}:%{version}-%{release}
+
+%description nox
+This package provides an emacs binary with no X windows support for running
+on a terminal
+
+%package common
+Summary: Emacs common files
+License: GPLv3+ and GFDL and BSD
+Requires: %{name}-filesystem = %{epoch}:%{version}-%{release}
+Requires(preun): /sbin/install-info
+Requires(preun): %{_sbindir}/alternatives
+Requires(posttrans): %{_sbindir}/alternatives
+Requires(post): /sbin/install-info
+Provides: %{name}-el = %{epoch}:%{version}-%{release}
+Obsoletes: emacs-el < 1:24.3-29
+
+%description common
+This package contains all the common files needed by emacs, emacs-lucid
+or emacs-nox.
+
+%package terminal
+Summary: A desktop menu for GNU Emacs terminal.
+Requires: emacs = %{epoch}:%{version}-%{release}
+BuildArch: noarch
+
+%description terminal
+Install emacs-terminal if you need a terminal with Malayalam support.
+
+%package filesystem
+Summary: Emacs filesystem layout
+BuildArch: noarch
+
+%description filesystem
+Emacs filesystem layout
+
+%package_help
+
+%prep
+%autosetup -n %{name}-%{version} -p1
+
+autoconf
+
+egrep -v "tetris.elc|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/pong.el*
+
+%define info_files ada-mode auth autotype bovine calc ccmode cl dbus dired-x ebrowse ede ediff edt efaq-w32 efaq eieio eintr elisp emacs-gnutls emacs-mime emacs epa erc ert eshell eudc eww flymake forms gnus htmlfontify idlwave ido info mairix-el message mh-e newsticker nxml-mode octave-mode org pcl-cvs pgg rcirc reftex remember sasl sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp url vhdl-mode vip viper widget wisent woman
+
+cd info
+fs=( $(ls *.info) )
+is=( %info_files )
+files=$(echo ${fs[*]} | sed 's/\.info//'g | sort | tr -d '\n')
+for i in $(seq 0 $(( ${#fs[*]} - 1 ))); do
+ if test "${fs[$i]}" != "${is[$i]}.info"; then
+ echo Please update %%info_files: ${fs[$i]} != ${is[$i]}.info >&2
+ break
+ fi
+done
+cd ..
+
+%ifarch %{ix86}
+%define setarch setarch %{_arch} -R
+%else
+%define setarch %{nil}
+%endif
+
+ln -s ../../%{name}/%{version}/etc/COPYING doc
+ln -s ../../%{name}/%{version}/etc/NEWS doc
+
+%build
+%ifarch loongarch64
+%_update_config_guess
+%_update_config_sub
+%endif
+export CFLAGS="-DMAIL_USE_LOCKF $RPM_OPT_FLAGS -fPIE"
+
+# Build GTK+ binary
+mkdir build-gtk && cd build-gtk
+ln -s ../configure .
+
+%configure --with-dbus --with-gif --with-jpeg --with-png --with-rsvg \
+ --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3 --with-gpm=no \
+ --with-harfbuzz --with-cairo --with-json \
+ --with-xwidgets --with-modules --without-libotf --without-m17n-flt --without-imagemagick
+%make_build bootstrap
+%{setarch} %make_build
+cd ..
+
+# Build Lucid binary
+%if !%{with bootstrap}
+mkdir build-lucid && cd build-lucid
+ln -s ../configure .
+
+%configure --with-dbus --with-gif --with-jpeg --with-png --with-rsvg \
+ --with-tiff --with-xft --with-xpm --with-x-toolkit=lucid --with-gpm=no \
+ --with-harfbuzz --with-cairo --with-json \
+ --with-modules --without-libotf --without-m17n-flt --without-imagemagick
+%make_build bootstrap
+%{setarch} %make_build
+cd ..
+%endif
+
+# Build binary without X support
+mkdir build-nox && cd build-nox
+ln -s ../configure .
+
+LDFLAGS="-Wl,-z,relro,-z,now -pie"; export LDFLAGS;
+
+%configure --with-x=no --with-modules --with-json
+%{setarch} %make_build
+cd ../
+
+# Generate pkgconfig file
+cat > emacs.pc << EOF
+sitepkglispdir=%{_datadir}/emacs/site-lisp
+sitestartdir=%{site_lisp}/site-start.d
+
+Name: emacs
+Description: GNU Emacs text editor
+Version: %{epoch}:%{version}
+EOF
+
+# Generate 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 %{_datadir}/emacs/site-lisp
+%%_emacs_sitestartdir %{site_lisp}/site-start.d
+%%_emacs_bytecompile /usr/bin/emacs -batch --no-init-file --no-site-file --eval '(progn (setq load-path (cons "." load-path)))' -f batch-byte-compile
+EOF
+
+%install
+cd build-gtk
+%make_install
+cd ..
+
+rm %{buildroot}%{_bindir}/emacs
+touch %{buildroot}%{_bindir}/emacs
+
+rm %{buildroot}%{emacs_libexecdir}/emacs-*.pdmp
+
+gunzip %{buildroot}%{_datadir}/emacs/%{version}/lisp/jka*.el.gz
+
+
+%if !%{with bootstrap}
+install -p -m 0755 build-lucid/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-lucid
+%endif
+
+install -p -m 0755 build-nox/src/emacs %{buildroot}%{_bindir}/emacs-%{version}-nox
+
+chmod 755 %{buildroot}%{emacs_libexecdir}/movemail
+
+# Confirm movemail don't setgid
+mkdir -p %{buildroot}%{site_lisp}
+install -p -m 0644 %SOURCE1 %{buildroot}%{_datadir}/emacs/site-lisp/site-start.el
+install -p -m 0644 %SOURCE2 %{buildroot}%{_datadir}/emacs/site-lisp
+
+echo "(setq source-directory \"%{_datadir}/emacs/%{version}/\")" >> %{buildroot}%{_datadir}/emacs/site-lisp/site-start.el
+
+pushd %{buildroot}%{_bindir}
+mv etags etags.emacs
+mv ctags gctags
+popd
+
+pushd %{buildroot}%{_mandir}/man1
+mv ctags.1 gctags.1
+mv etags.1 etags.emacs.1
+popd
+
+mv %{buildroot}%{_infodir}/info.info %{buildroot}%{_infodir}/info
+
+install -d %{buildroot}%{_datadir}/emacs/site-lisp/site-start.d
+
+install -d %{buildroot}/%{_datadir}/pkgconfig
+install -p -m 0644 emacs.pc %{buildroot}/%{_datadir}/pkgconfig
+
+install -d %{buildroot}%{_rpmconfigdir}/macros.d
+install -p -m 0644 macros.emacs %{buildroot}%{_rpmconfigdir}/macros.d/
+
+install -p -m 755 %SOURCE4 %{buildroot}/%{_bindir}/emacs-terminal
+
+rm -f %{buildroot}%{_infodir}/dir
+
+install -d %{buildroot}%{_userunitdir}
+install -p -m 0644 %SOURCE5 %{buildroot}%{_userunitdir}/emacs.service
+
+# Emacs 26.1 don't installs the upstream unit file to /usr/lib64 on 64bit archs.
+rm -f %{buildroot}/usr/lib64/systemd/user/emacs.service
+
+mkdir -p %{buildroot}%{_datadir}/applications
+desktop-file-install --dir=%{buildroot}%{_datadir}/applications \
+ %SOURCE6
+desktop-file-install --dir=%{buildroot}%{_datadir}/applications \
+ %SOURCE7
+
+# We don't ship the client variants yet
+rm %{buildroot}%{_datadir}/applications/emacsclient.desktop
+rm %{buildroot}%{_datadir}/applications/emacsclient-mail.desktop
+
+rm -f *-filelist {common,el}-*-files
+
+( TOPDIR=${PWD}
+ cd %{buildroot}
+
+ find .%{_datadir}/emacs/%{version}/lisp .%{_datadir}/emacs/%{version}/lisp/leim \
+ .%{_datadir}/emacs/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 \)
+)
+sed -i -e "s|\.%{_prefix}|%{_prefix}|" *-files
+cat common-*-files > common-filelist
+cat el-*-files common-lisp-dir-files > el-filelist
+
+%preun
+%{_sbindir}/alternatives --remove emacs %{_bindir}/emacs-%{version}
+
+%posttrans
+%{_sbindir}/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-%{version} 80
+
+%if !%{with bootstrap}
+%preun lucid
+%{_sbindir}/alternatives --remove emacs %{_bindir}/emacs-%{version}-lucid
+%{_sbindir}/alternatives --remove emacs-lucid %{_bindir}/emacs-%{version}-lucid
+
+%posttrans lucid
+%{_sbindir}/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-%{version}-lucid 70
+%{_sbindir}/alternatives --install %{_bindir}/emacs-lucid emacs-lucid %{_bindir}/emacs-%{version}-lucid 60
+%endif
+
+%preun nox
+%{_sbindir}/alternatives --remove emacs %{_bindir}/emacs-%{version}-nox
+%{_sbindir}/alternatives --remove emacs-nox %{_bindir}/emacs-%{version}-nox
+
+%posttrans nox
+%{_sbindir}/alternatives --install %{_bindir}/emacs emacs %{_bindir}/emacs-%{version}-nox 70
+%{_sbindir}/alternatives --install %{_bindir}/emacs-nox emacs-nox %{_bindir}/emacs-%{version}-nox 60
+
+%post common
+for f in %{info_files}; do
+ /sbin/install-info %{_infodir}/$f.info.gz %{_infodir}/dir 2> /dev/null || :
+done
+
+%preun common
+%{_sbindir}/alternatives --remove emacs.etags %{_bindir}/etags.emacs
+if [ "$1" = 0 ]; then
+ for f in %{info_files}; do
+ /sbin/install-info --delete %{_infodir}/$f.info.gz %{_infodir}/dir 2> /dev/null || :
+ done
+fi
+
+%posttrans common
+%{_sbindir}/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
+%doc doc/NEWS BUGS README
+%license etc/COPYING
+%attr(0755,-,-) %ghost %{_bindir}/emacs
+%{_bindir}/emacs-%{version}
+%{_datadir}/icons/hicolor/*
+%{_datadir}/applications/emacs.desktop
+%{_datadir}/applications/emacs-mail.desktop
+%{_metainfodir}/%{name}.metainfo.xml
+
+%files devel
+%{_includedir}/emacs-module.h
+
+%if !%{with bootstrap}
+%files lucid
+%attr(0755,-,-) %ghost %{_bindir}/emacs
+%attr(0755,-,-) %ghost %{_bindir}/emacs-lucid
+%{_bindir}/emacs-%{version}-lucid
+%endif
+
+%files nox
+%attr(0755,-,-) %ghost %{_bindir}/emacs
+%attr(0755,-,-) %ghost %{_bindir}/emacs-nox
+%{_bindir}/emacs-%{version}-nox
+
+%files common -f common-filelist -f el-filelist
+%doc doc/NEWS BUGS README
+%license etc/COPYING
+%{_rpmconfigdir}/macros.d/macros.emacs
+%attr(0644,root,root) %config(noreplace) %{_datadir}/emacs/site-lisp/default.el
+%attr(0644,root,root) %config %{_datadir}/emacs/site-lisp/site-start.el
+%{_bindir}/gctags
+%{_bindir}/ebrowse
+%{_bindir}/emacsclient
+%{_bindir}/etags.emacs
+%{_libexecdir}/emacs
+%{pkgconfig}/emacs.pc
+%{_userunitdir}/emacs.service
+%dir %{_datadir}/emacs/%{version}
+%{_datadir}/emacs/%{version}/etc
+%{_datadir}/emacs/%{version}/site-lisp
+%{_infodir}/*
+
+%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 help
+%doc doc/NEWS BUGS README
+%{_mandir}/*/*
+
+%changelog
+* Mon Dec 02 2024 Funda Wang <fundawang@yeah.net> - 1:29.4-1
+- update to 29.4
+
+* Tue Jul 02 2024 zhangpan <zhangpan103@h-partners.com> - 1:29.1-3
+- fix CVE-2024-39331
+
+* Mon Apr 01 2024 lingsheng <lingsheng1@h-partners.com> - 1:29.1-2
+- fix CVE-2024-30202 CVE-2024-30203 CVE-2024-30204 CVE-2024-30205
+
+* Tue Jan 23 2024 zhangpan <zhangpan103@h-partners.com> - 1:29.1-1
+- update to 29.1
+
+* Mon Sep 25 2023 leeffo <liweiganga@uniontech.com> - 1:28.2-5
+- fix CVE-2022-48337
+
+* Fri Mar 24 2023 zhangpan <zhangpan103@h-partners.com> - 1:28.2-4
+- fix CVE-2023-28617
+
+* Wed Mar 15 2023 yanglongkang <yanglongkang@h-partners.com> - 1:28.2-3
+- fix CVE-2023-27985 CVE-2023-27986
+
+* Wed Feb 22 2023 zhangpan <zhangpan103@h-partners.com> - 1:28.2-2
+- fix CVE-2022-48337 CVE-2022-48338 CVE-2022-48339
+
+* Thu Feb 02 2023 zhouwenpei <zhouwenpei1@h-partners.com> - 1:28.2-1
+- update to 28.2
+
+* Thu Dec 01 2022 wangkerong <wangkerong@h-partners.com> - 1:27.2-8
+- fix CVE-2022-45939
+
+* Fri Nov 18 2022 Wenlong Zhang<zhangwenlong@loongson.cn> - 1:27.2-7
+- add loongarch support for emacs
+
+* Fri Aug 26 2022 zhujunhao <zhujunhao11@huawei.com> - 1:27.2-6
+- close bootstrap with product_family
+
+* Sat Jun 11 2022 wangkeorng <wangkeorng@huawei.com> - 1:27.2-5
+- delete macro in changelog
+
+* Mon Jan 17 2022 liuyumeng <liuyumeng5@huawei.com> - 1:27.2-4
+- round self-developed patch
+
+* Tue Aug 10 2021 yangcheng <yangcheng87@huawei.com> - 1:27.2-3
+- DESC: Fix the upgrade error caused by the info file in the emacs-help software package being repackaged
+
+* Tue Aug 10 2021 yanan <yanan@huawei.com> - 1:27.2-2
+- DESC: Fix FTBFS with glibc 2.34
+
+* Mon Jul 19 2021 wangkerong <wangkerong@huawei.com> - 1:27.2-1
+- DESC: upgrade to 1:27.2
+
+* Wed Dec 09 2020 chenyanpan <chenyanpan@huawei.com> - 1:27.1-5
+- Type: improvement
+- DESC: use make_build instead of make for building bootstrap
+
+* Wed Dec 16 2020 jinzhimin <jinzhimin2@huawei.com> - 1:27.1-4
+- remove unnecessary patch
+
+* Wed Dec 16 2020 jinzhimin <jinzhimin2@huawei.com> - 1:27.1-3
+- fix emacs run failed
+
+* Wed Sep 23 2020 hanhui <hanhui15@huawei.com> - 1:27.1-2
+- Type:bugfix
+- ID:NA
+- SUG:NA
+- DESC:slove the problem of mercurial compile failed
+
+* Wed Aug 19 2020 xiaoweiwei <xiaoweiwei5@huawei.com> - 1:27.1-1
+- upgrade to 27.1
+
+* Mon May 18 2020 zhangrui <zhangrui182@huawei.com> - 1:26.1-13
+- rebuild for giflib
+
+* Fri Mar 13 2020 songnannan <songnannan2@huawei.com> - 1:26.1-12
+- add secure compile option
+
+* Sat Jan 11 2020 openEuler Buildteam <buildteam@openeuler.org> - 1:26.1-11
+- remove unnecessary source
+
+* Sat Dec 28 2019 openEuler Buildteam <buildteam@openeuler.org> - 1:26.1-10
+- Type:bugfix
+- ID:NA
+- SUG:NA
+- DESC:optimization the spec
+
+* Tue Oct 29 2019 openEuler Buildteam <buildteam@openeuler.org> - 1:26.1-9
+- Type:bugfix
+- Id:NA
+- SUG:NA
+- DESC:change the pakcage list and requires
+
+* Tue Oct 29 2019 yanglijin <yanglijin@huawei.com> - 1:26.1-8
+- emacs can not use
+
+* Fri Sep 20 2019 chenzhenyu <chenzhenyu13@huawei.com> - 1:26.1-7
+- Package init
diff --git a/site-start.el b/site-start.el
new file mode 100644
index 0000000..efbb75b
--- /dev/null
+++ b/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/sources b/sources
new file mode 100644
index 0000000..882c5dd
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+b9cc42f7d8066152535cf267418b8ced emacs-29.4.tar.xz