outman/emacs

Project ID: 13075

Description

backport emacs-nox-27.2 rpm package for CentOS 7 and CentOS 8 x86_64

Installation Instructions

HOWTO

Install emacs-nox-27.2 from Fedora Copr repo on CentOS7 or CentOS8 x86_64 :

# CentOS7 URL=https://copr.fedorainfracloud.org/coprs/outman/emacs/repo/epel-7/outman-emacs-epel-7.repo # CentOS8 URL=https://copr.fedorainfracloud.org/coprs/outman/emacs/repo/epel-8/outman-emacs-epel-8.repo curl -# -m 8 -L $URL -o /etc/yum.repos.d/emacs.repo yum update emacs-nox

download built rpms to build a local repo :

# NOTE: you can copy URL from every succeed build repo URL=https://copr-be.cloud.fedoraproject.org/results/outman/emacs/epel-7-x86_64/01056724-emacs/ wget -r -p -np -c -R *.src.rpm -R emacs-devel* -R emacs-lucid* -A *.rpm -e robots=off -nH --cut-dirs=4 $URL

After download the build rpm, then you can build repo meta file by createrepo command:

# mv 01056724-emacs/ emacs # cd emacs # createrepo . Spawning worker 0 with 2 pkgs Spawning worker 1 with 1 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete # find . . ./emacs-common-26.3-1.el7.x86_64.rpm ./emacs-nox-26.3-1.el7.x86_64.rpm ./emacs-filesystem-26.3-1.el7.noarch.rpm ./repodata ./repodata/8b1ae4913d6f0ef925597f69394b4e86b25ab5e3d501fe6cdd53dae91052504c-other.sqlite.bz2 ./repodata/95be70712080f30d1320cf996979ac5b1fca2d52e93ddc526a33f2f35f628765-other.xml.gz ./repodata/62f199c6e7c3f6833f60902f18598467461952bcda426b200ba6cf853a74a094-filelists.sqlite.bz2 ./repodata/11312c46aaaff458dc7c577881e4e82bceb739749a37b6cadf1389e18d863e67-filelists.xml.gz ./repodata/059d2f6b7c35513e169eaab778ba6a08a5f8dde2064a59cad05a1b92ff24a941-primary.sqlite.bz2 ./repodata/d09956267754162bcc96f308713c7bf12e05351f12e17777ce23ce932dc92074-primary.xml.gz ./repodata/repomd.xml

NOTICE

NOTE: This project only built a new version emacs-nox package for CentOS 7 x86_64 server.

emacs GUI version disabled a lot of features for removing no need dependencies and saving rpmbuild time :

%configure --without-cairo --without-sound --without-selinux \ --without-jpeg --without-tiff --without-gif --without-png --without-rsvg \ --without-imagemagick --without-xft --without-libotf --without-m17n-flt \ --without-xaw3d --without-toolkit-scroll-bars --without-gpm --without-dbus \ --without-gconf --without-gsettings

and removed some no need files in emacs-common package :

# slim 'emacs-common' rpm packge echo "__CLEAN:" rm -frv %{buildroot}%{_datadir}/emacs/%{version}/etc/{refcards,images,tutorials} \ %{buildroot}%{_datadir}/emacs/%{version}/etc/[ACEFGHJLNMOPRTW]* \ %{buildroot}%{_datadir}/emacs/%{version}/etc/D[EI]* \ %{buildroot}%{_datadir}/emacs/%{version}/etc/{*.ps,*.txt,*gz} rm -fv %{buildroot}%{_datadir}/emacs/%{version}/lisp/leim/quail/[!P]* \ %{buildroot}%{_datadir}/emacs/%{version}/lisp/leim/quail/*b5* \ %{buildroot}%{_datadir}/emacs/%{version}/lisp/leim/quail/Pu* \ %{buildroot}%{_datadir}/emacs/%{version}/lisp/leim/ja-dic/* \ %{buildroot}%{_datadir}/emacs/%{version}/lisp/play/* find %{buildroot}%{_datadir}/emacs/%{version}/lisp/language/ -type f -not -regex '.*/\(eng\|chin\).*' -delete find %{buildroot} -name "*.pdf" -delete

You can download the src.rpm and edit the SPEC file to rebuild emacs rpm for your own need.

src.rpm

create src.rpm file on CentOS 8:

# yum install -y rpm-build rpmdevtools # spectool -l ~/rpmbuild/SPECS/emacs.spec Source0: https://ftp.gnu.org/gnu/emacs/emacs-27.1.tar.xz Source1: https://ftp.gnu.org/gnu/emacs/emacs-27.1.tar.xz.sig Source10: https://src.fedoraproject.org/rpms/emacs/raw/rawhide/f/emacs.appdata.xml Source2: https://src.fedoraproject.org/rpms/emacs/blob/rawhide/f/gpgkey-D405AA2C862C54F17EEE6BE0E8BCD7866AFCF978.gpg Source3: https://src.fedoraproject.org/rpms/emacs/raw/rawhide/f/emacs.desktop Source4: https://src.fedoraproject.org/rpms/emacs/raw/rawhide/f/dotemacs.el Source5: https://src.fedoraproject.org/rpms/emacs/raw/rawhide/f/site-start.el Source6: https://src.fedoraproject.org/rpms/emacs/raw/rawhide/f/default.el Source9: https://src.fedoraproject.org/rpms/emacs/raw/rawhide/f/emacs.service Patch1: https://src.fedoraproject.org/rpms/emacs/raw/rawhide/f/emacs-spellchecker.patch Patch2: https://src.fedoraproject.org/rpms/emacs/raw/rawhide/f/emacs-system-crypto-policies.patch # spectool -g ~/rpmbuild/SPECS/emacs.spec # rpmbuild -bs /root/rpmbuild/SPECS/emacs.spec warning: Macro expanded in comment on line 116: %{_sbindir}/alternatives warning: Macro expanded in comment on line 117: %{_sbindir}/alternatives warning: Macro expanded in comment on line 118: %{epoch}:%{version}-%{release} warning: Macro expanded in comment on line 119: %{epoch}:%{version}-%{release} warning: Macro expanded in comment on line 168: %{epoch}:%{version}-%{release} warning: Macro expanded in comment on line 477: %{_bindir}/emacs-%{version}-lucid warning: Macro expanded in comment on line 478: %{_bindir}/emacs-%{version}-lucid.pdmp warning: Macro expanded in comment on line 479: %{_bindir}/emacs warning: Macro expanded in comment on line 480: %{_bindir}/emacs-lucid warning: Macro expanded in comment on line 509: %{_bindir}/emacs-terminal warning: Macro expanded in comment on line 510: %{_datadir}/applications/emacs-terminal.desktop Wrote: /root/rpmbuild/SRPMS/emacs-27.1-4.el8.src.rpm

reference

Feodra 26 emacs.spec SPEC file :

https://src.fedoraproject.org/rpms/emacs/blob/rawhide/f/emacs.spec

Gentoo emacs-26.1.ebuild file :

https://gitweb.gentoo.org/repo/gentoo.git/tree/app-editors/emacs/emacs-26.1.ebuild

emacs-25.3-3.fc26.src.rpm source package :

https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/e/emacs-26.1-6.fc29.src.rpm

build time :

real 21m19.424s user 19m4.015s sys 1m47.912s

Active Releases

The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).

Release Architectures Repo Download
EPEL 7 x86_64 [modified] (366)* EPEL 7 (646 downloads)
EPEL 8 x86_64 [modified] (173)* EPEL 8 (200 downloads)

* Total number of downloaded packages.