Package Details: emacs-git 29.0.50.151057-1

Git Clone URL: https://aur.archlinux.org/emacs-git.git (read-only, click to copy)
Package Base: emacs-git
Description: GNU Emacs. Development master branch.
Upstream URL: http://www.gnu.org/software/emacs/
Keywords: development editor IDE text
Licenses: GPL3
Conflicts: emacs, emacs-27-git, emacs-nox, emacs-seq, emacs26-git
Provides: emacs, emacs-27-git, emacs-nox, emacs-seq, emacs26-git
Replaces: emacs, emacs-27-git, emacs-nox, emacs-seq, emacs26-git
Submitter: vorbote
Maintainer: vorbote
Last Packager: vorbote
Votes: 91
Popularity: 0.93
First Submitted: 2014-01-05 02:05
Last Updated: 2021-10-21 19:04

Required by (423)

Sources (1)

Pinned Comments

vorbote commented on 2017-06-30 19:14

This new PKGBUILD is a work in progress. If you find PACKAGING bugs, please let me know ASAP.

Upstream bugs are reported upstream. Write to bug-emacs-devel@gnu.org and report it there, or, better yet, use the debbugs client included. You will find instructions at https://debbugs.gnu.org/. Good luck!

Latest Comments

1 2 3 4 5 6 ... Next › Last »

zhenya1007 commented on 2021-10-05 23:13

If set CLI="YES" (am I the only user of that option?! :P), it sets $pkgname to emacs-git-nox, derives emacs-git-nox.install as the name of the $install file, and fails when it discovers that said $install file doesn't exist.

My suggestion is to hard-code emacs-git.install as the name of the $install file, to wit:

@@ -75,7 +75,7 @@ replaces=('emacs' 'emacs26-git' 'emacs-27-git' 'emacs-seq' 'emacs-nox')
 # If Savannah fails for reasons, use Github's mirror
 source=("emacs-git::git://github.com/emacs-mirror/emacs.git")
 options=(!strip)
-install="$pkgname".install
+install='emacs-git.install'
 b2sums=('SKIP')

pancho commented on 2021-10-01 10:46

Hi, folks.

I've forked¹ this repo to track the just-created emacs-28² release branch.

Also, I've enabled JIT and AOT, as well as parallel compilation.

Thanks, and happy hacking!

¹: https://aur.archlinux.org/packages/emacs28-git/

²: https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg02290.html

vorbote commented on 2021-06-15 00:55

A quick hack, not a proper solution as it would require some new functions and code reshuffling to have a proper cache, be it in a system-wide location in /var/cache or the user home directory, under .emacs, and a way to incrementally update already compiled files if the runtime version or the lisp file version changes.

nowayman commented on 2021-06-14 21:22

Solving that upstream bug will be very difficult and I'll wait for an upstream solution

Apparently it was trivial to work around.

https://github.com/emacs-mirror/emacs/commit/663fb3b774887d3d15a6791c3f35af56daa3c676

Rebuilt from current master and everything appears to be working as expected.

Thanks for the reply and maintaining this script.

vorbote commented on 2021-06-13 14:03

@nowayman, but of course it will. There's one thing I've learned in some 30 years plus of using and being the administrator of Unix and Unix-like multi-user servers and individual workstations: Never f*k with system directories.

Solving that upstream bug will be very difficult and I'll wait for an upstream solution. In the meantime my suggestions and be advised I don't recommend nor endorse you use them, I'll throw my experience behind a big no:

  • Install emacs with its own group and read-write permissions to the group. Add users to that group so that they can happily JIT compile system elisp files.

  • Install emacs with suid root giving users the chance to JIT compile on demand system elisp files and f*k up anything they would like to edit and save.

There are two reasonable solutions:

  • Precompile ALL system elip files, the option is already given in the PKGBUILD (AOT). Takes a long time but it is worth it.

  • Use sudo.

nowayman commented on 2021-06-13 13:35

PKGBUILD Commit dca21d8 (Change behavior of changing directory ownership during packaging) breaks JIT native compilation on my system. Emacs installs fine, but when any packages along /usr/share/emacs/28.0.50/lisp/* are loaded, the JIT compilation kicks in and throws a file-error due to directory permissions.

Compiling /usr/share/emacs/28.0.50/lisp/emacs-lisp/backtrace.el...
/usr/share/emacs/28.0.50/lisp/emacs-lisp/backtrace.el: Error: File error Creating file with prefix

This error message is incomplete, but that's a separate upstream issue. You can get the full error by manually attempting to compile any of those files from a shell prompt. e.g.

$ emacs -batch -l comp -f batch-native-compile
/usr/share/emacs/28.0.50/lisp/progmodes/etags.el

Which will throw:

Debugger entered--Lisp error: (file-error
"/usr/share/emacs/28.0.50/lisp/progmodes/etags.el" "Creating file with prefix"
"Permission denied" "/usr/share/emacs/28.0.50/lisp/progmodes/etags.elc")
 signal(file-error ("/usr/share/emacs/28.0.50/lisp/progmodes/etags.el"
 "Creating   file with prefix" "Permission denied"
 "/usr/share/emacs/28.0.50/lisp/progmodes/etags.elc"))
 comp--native-compile("/usr/share/emacs/28.0.50/lisp/progmodes/etags.el")
 batch-native-compile()
 command-line-1(("-l" "comp" "-f" "batch-native-compile"
 "/usr/share/emacs/28.0.50/lisp/progmodes/etags.el"))
 command-line()
 normal-top-level()

EDIT:

Looks like Eli may consider this an upstream bug altogether. Upstream bug report:

https://lists.gnu.org/archive/html/bug-gnu-emacs/2021-06/msg00654.html

ykelvis commented on 2021-06-05 15:28

hi there, i think systemd should be add to makedepends. without it, group games wont be created, which causes chown root:games to fail when building the package in a clean chroot.

vorbote commented on 2021-06-03 01:21

Your argument is a false dilemma and it stinks of appeal to ignorance.

If you don't like the ability to customize it to your needs, write and maintain your own version. As easy as that.

cobaltspace commented on 2021-06-03 00:57

My point was that enabling/disabling lto is a setting inside makepkg.conf, so it shouldn't be set inside a package, unless a package needs to explicitly disable it, similar to packages using -j1 because -jN isn't supported. lto can be enabled in makepkg.conf, so it doesn't need to be in the PKGBUILD.

vorbote commented on 2021-06-02 13:32

@cobaltspace lto is not enabled in the new makepkg.conf file. Unless you did in the past and forgot about it, the only plausible explanation for your alternate reality assertion. :-)

Compare your local file to this one:

https://github.com/archlinux/svntogit-packages/blob/packages/pacman/trunk/makepkg.conf