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.
Search Criteria
Package Details: emacs-git 30.0.50.169253-1
Package Actions
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 |
Provides: | emacs |
Submitter: | toropisco |
Maintainer: | toropisco |
Last Packager: | toropisco |
Votes: | 107 |
Popularity: | 1.93 |
First Submitted: | 2014-01-05 02:05 (UTC) |
Last Updated: | 2023-10-14 18:36 (UTC) |
Dependencies (23)
- cairo (cairo-gitAUR)
- giflib (giflib-gitAUR)
- gnutls (gnutls-gitAUR)
- gtk3 (gtk3-no_deadkeys_underlineAUR, gtk3-classicAUR, gtk3-classic-xfceAUR, gtk3-patched-filechooser-icon-viewAUR)
- harfbuzz (harfbuzz-gitAUR)
- jansson (jansson-gitAUR)
- libgccjit (libgccjit-gitAUR, libgccjit-snapshotAUR)
- libjpeg-turbo (mozjpeg-gitAUR, libjpeg-turbo-gitAUR, mozjpegAUR)
- libotf
- libpng (libpng-gitAUR, libpng-apngAUR)
- libsm
- libtiff (libtiff-gitAUR, libtiff-lercAUR)
- libwebp (libwebp-gitAUR)
- libxcb (libxcb-gitAUR)
- libxi (libxi-gitAUR)
- libxml2 (libxml2-gitAUR, libxml2-2.9AUR)
- libxpm (libxpm-gitAUR)
- sqlite3 (sqlite)
- tree-sitter (tree-sitter-gitAUR)
- xcb-util
- Show 3 more dependencies...
Required by (313)
- anthy-unicode (requires emacs) (make)
- anthy-unicode-git (requires emacs) (make)
- astroid-git (requires emacs) (optional)
- auctex (requires emacs)
- auctex-git (requires emacs)
- auto-complete-nxml-git (requires emacs)
- auto-complete-nxml-git (requires emacs) (make)
- bbdb (requires emacs)
- bigloo-devel (requires emacs) (make)
- bigloo-devel (requires emacs) (optional)
- carp (requires emacs) (make)
- cask (requires emacs)
- cask-git (requires emacs)
- cmake-git (requires emacs) (make)
- csvedepli (requires emacs) (make)
- dictionary (requires emacs)
- distel (requires emacs)
- dmscripts-git (requires emacs) (optional)
- eldev-git (requires emacs)
- eless (requires emacs)
- elfeed (requires emacs)
- emacs-a (requires emacs)
- emacs-ag (requires emacs)
- emacs-ag-git (requires emacs)
- emacs-android-git (requires emacs)
- emacs-annalist (requires emacs)
- emacs-annot-git (requires emacs)
- emacs-anzu (requires emacs)
- emacs-anzu-git (requires emacs)
- emacs-apache-mode (requires emacs)
- emacs-arch-xlicense-git (requires emacs)
- emacs-arduino-mode-git (requires emacs)
- emacs-async-git (requires emacs)
- emacs-ats-mode (requires emacs)
- emacs-auto-complete (requires emacs)
- emacs-auto-complete-clang-git (requires emacs)
- emacs-avy (requires emacs)
- emacs-avy-git (requires emacs)
- emacs-bash-completion (requires emacs)
- emacs-bookmarkplus (requires emacs)
- emacs-bui (requires emacs)
- emacs-calfw-git (requires emacs)
- emacs-chess-git (requires emacs)
- emacs-chinese-word-segmentation-git (requires emacs)
- emacs-cider (requires emacs)
- emacs-cider-git (requires emacs)
- emacs-clojure-mode (requires emacs)
- emacs-clojure-mode-git (requires emacs)
- emacs-cmake-ide-git (requires emacs)
- emacs-color-theme (requires emacs)
- emacs-color-theme (requires emacs) (make)
- emacs-color-theme-xoria256 (requires emacs)
- emacs-company-lsp (requires emacs)
- emacs-company-lsp-git (requires emacs)
- emacs-company-mode (requires emacs)
- emacs-company-mode-git (requires emacs)
- emacs-crdt (requires emacs)
- emacs-ctable (requires emacs)
- emacs-ctags-update (requires emacs)
- emacs-d-mode (requires emacs) (make)
- emacs-dash (requires emacs)
- emacs-dash (requires emacs) (make)
- emacs-dash-git (requires emacs)
- emacs-deferred (requires emacs)
- emacs-dracula-theme-git (requires emacs) (optional)
- emacs-ediprolog (requires emacs)
- emacs-editorconfig-git (requires emacs)
- emacs-elpy (requires emacs)
- emacs-elpy-git (requires emacs)
- emacs-else-git (requires emacs)
- emacs-emacsql (requires emacs)
- emacs-emacsql-sqlite3 (requires emacs)
- emacs-emmet-mode-git (requires emacs)
- emacs-epc (requires emacs)
- emacs-epl (requires emacs)
- emacs-ess (requires emacs)
- emacs-ess-git (requires emacs)
- emacs-eterm-256color (requires emacs) (make)
- emacs-evil (requires emacs)
- emacs-evil-collection-git (requires emacs)
- emacs-evil-git (requires emacs)
- emacs-evil-org-git (requires emacs)
- emacs-execline-mode-git (requires emacs)
- emacs-f (requires emacs)
- emacs-f-git (requires emacs)
- emacs-find-file-in-project (requires emacs)
- emacs-find-recursive (requires emacs)
- emacs-flycheck-clojure (requires emacs)
- emacs-flycheck-git (requires emacs)
- emacs-flycheck-pos-tip (requires emacs)
- emacs-flycheck-pos-tip-git (requires emacs)
- emacs-flycheck-pycheckers (requires emacs)
- emacs-fuzzy (requires emacs)
- emacs-general.el-git (requires emacs)
- emacs-ghub (requires emacs)
- emacs-git-timemachine (requires emacs)
- emacs-git-wip-git (requires emacs)
- emacs-gitolite-mode (requires emacs)
- emacs-gnuplot-mode-git (requires emacs) (make)
- emacs-goby (requires emacs)
- emacs-goby-git (requires emacs)
- emacs-graphql-git (requires emacs)
- emacs-groovy-mode-git (requires emacs)
- emacs-guess-style-git (requires emacs)
- emacs-guess-style-git (requires emacs) (make)
- emacs-haskell-mode-git (requires emacs) (make)
- emacs-haxe (requires emacs)
- emacs-hcl-mode-git (requires emacs)
- emacs-helm (requires emacs)
- emacs-helm-git (requires emacs)
- emacs-helm-ls-git (requires emacs) (make)
- emacs-hexrgb (requires emacs)
- emacs-highlight-indentation (requires emacs)
- emacs-hydra (requires emacs)
- emacs-hydra-git (requires emacs)
- emacs-identica-mode (requires emacs)
- emacs-idris-mode-git (requires emacs)
- emacs-iedit (requires emacs)
- emacs-j-mode-git (requires emacs)
- emacs-jabber-git (requires emacs)
- emacs-jedi (requires emacs)
- emacs-js2-mode (requires emacs)
- emacs-js2-mode-git (requires emacs)
- emacs-julia-mode (requires emacs)
- emacs-langtool (requires emacs)
- emacs-libegit2-git (requires emacs)
- emacs-libegit2-wbundled-git (requires emacs)
- emacs-libvterm-git (requires emacs)
- emacs-lll-mode-git (requires emacs)
- emacs-llvm-mode (requires emacs)
- emacs-lsp-mode-git (requires emacs)
- emacs-lsp-ui (requires emacs)
- emacs-lsp-ui-git (requires emacs)
- emacs-lyqi-mode-git (requires emacs)
- emacs-magit (requires emacs)
- emacs-magit-git (requires emacs)
- emacs-magit-popup (requires emacs)
- emacs-make-regexp (requires emacs)
- emacs-make-regexp (requires emacs) (make)
- emacs-maplev (requires emacs)
- emacs-markdown-mode (requires emacs)
- emacs-markdown-mode-git (requires emacs)
- emacs-markdown-preview-mode (requires emacs)
- emacs-meson-mode-git (requires emacs)
- emacs-mew (requires emacs)
- emacs-mew-git (requires emacs)
- emacs-mmm-mode-git (requires emacs)
- emacs-monky-git (requires emacs)
- emacs-moonscript-mode (requires emacs)
- emacs-mozc (requires emacs)
- emacs-mozc-ut-full (requires emacs)
- emacs-mozc-ut-full (requires emacs) (make)
- emacs-mozc-with-jp-dict (requires emacs)
- emacs-multiple-cursors (requires emacs)
- emacs-named-daemon (requires emacs)
- emacs-newlisp-mode-git (requires emacs)
- emacs-nyan-mode (requires emacs)
- emacs-onedark-theme-git (requires emacs)
- emacs-openrc (requires emacs)
- emacs-org-bullets-git (requires emacs)
- emacs-org-mode (requires emacs)
- emacs-org-roam (requires emacs)
- emacs-oz-mode (requires emacs)
- emacs-paredit (requires emacs) (make)
- emacs-parseclj (requires emacs)
- emacs-pdf-tools-git (requires emacs)
- emacs-pelican-mode-git (requires emacs)
- emacs-pg (requires emacs)
- emacs-pkg-info (requires emacs)
- emacs-pkgbuild-mode (requires emacs)
- emacs-pkgbuild-mode-git (requires emacs)
- emacs-popup-el (requires emacs)
- emacs-popup-el (requires emacs) (make)
- emacs-pos-tip (requires emacs)
- emacs-pos-tip-git (requires emacs)
- emacs-posframe (requires emacs)
- emacs-processing-mode-git (requires emacs)
- emacs-projectile (requires emacs)
- emacs-projectile-git (requires emacs)
- emacs-prop-menu-git (requires emacs)
- emacs-psgml (requires emacs)
- emacs-psvn (requires emacs)
- emacs-pure-mode (requires emacs)
- emacs-pyim (requires emacs)
- emacs-pyim-basedict (requires emacs)
- emacs-python-environment (requires emacs)
- emacs-pyvenv (requires emacs)
- emacs-queue (requires emacs)
- emacs-rich-minority (requires emacs)
- emacs-riece (requires emacs)
- emacs-rnc-mode-git (requires emacs)
- emacs-rtf-mode (requires emacs)
- emacs-rust-mode (requires emacs)
- emacs-s (requires emacs)
- emacs-s-git (requires emacs)
- emacs-scala-mode-git (requires emacs)
- emacs-screencast-mode-git (requires emacs)
- emacs-seq (requires emacs)
- emacs-sesman (requires emacs)
- emacs-sly-git (requires emacs)
- emacs-smart-mode-line (requires emacs)
- emacs-smex (requires emacs)
- emacs-sml-mode (requires emacs)
- emacs-solidity-mode-git (requires emacs)
- emacs-spacemacs-funcs (requires emacs)
- emacs-speechd-el-git (requires emacs)
- emacs-spinner (requires emacs)
- emacs-swiper (requires emacs)
- emacs-swiper-git (requires emacs)
- emacs-symbols-mode-git (requires emacs)
- emacs-tablist (requires emacs)
- emacs-tablist-git (requires emacs)
- emacs-terraform-mode-git (requires emacs)
- emacs-textile-mode (requires emacs)
- emacs-treepy-git (requires emacs)
- emacs-undo-tree (requires emacs)
- emacs-use-package (requires emacs)
- emacs-vala-mode (requires emacs)
- emacs-vlf-git (requires emacs)
- emacs-w3m-git (requires emacs)
- emacs-web-server (requires emacs)
- emacs-websocket (requires emacs)
- emacs-which-key (requires emacs)
- emacs-whitespace-mode (requires emacs)
- emacs-with-editor (requires emacs)
- emacs-with-editor-git (requires emacs)
- emacs-xclip (requires emacs) (make)
- emacs-xelb-git (requires emacs)
- emacs-xr (requires emacs)
- emacs-xterm-color (requires emacs) (make)
- emacs-yaml-mode (requires emacs)
- emacs-yasnippet (requires emacs)
- emacs-yasnippet-git (requires emacs)
- emacs-yasnippet-snippets (requires emacs)
- emacs-yasnippet-snippets-git (requires emacs)
- emacs-youtube-dl (requires emacs)
- emacs-zenburn-theme (requires emacs)
- emacsclient-desktop-git (requires emacs)
- emacspeak (requires emacs)
- emms (requires emacs)
- emms-git (requires emacs)
- fcitx5-mozc-ut-full (requires emacs) (make)
- ff-git (requires emacs) (optional)
- flycheck (requires emacs)
- flycheck (requires emacs) (make)
- fronde (requires emacs)
- gnuplot-nogui (requires emacs) (make)
- gtypist-single-space (requires emacs) (make)
- guix-git (requires emacs) (optional)
- helm-system-packages-git (requires emacs)
- htmlize-git (requires emacs)
- ibus-mozc-ut-full (requires emacs) (make)
- irony-mode (requires emacs)
- lean-bin (requires emacs) (optional)
- lean-git (requires emacs) (optional)
- lean2-git (requires emacs) (optional)
- macaulay2 (requires emacs) (make)
- maint (requires emacs) (optional)
- mcu8051ide (requires emacs) (optional)
- migemo-git (requires emacs)
- mozart2 (requires emacs)
- mozart2-bin (requires emacs)
- mozart2-git (requires emacs) (make)
- mozart2-git (requires emacs) (optional)
- mozc-ut-full-common (requires emacs) (make)
- mu (requires emacs) (make)
- mu (requires emacs) (optional)
- mu-git (requires emacs) (optional)
- ninja-kitware (requires emacs) (optional)
- nord-emacs (requires emacs)
- notmuch-emacs-git (requires emacs) (make)
- notmuch-emacs-git (requires emacs) (optional)
- notmuch-mutt-git (requires emacs) (make)
- notmuch-python-git (requires emacs) (make)
- notmuch-ruby-git (requires emacs) (make)
- notmuch-runtime-git (requires emacs) (make)
- notmuch-vim-git (requires emacs) (make)
- ocaml-typerex (requires emacs)
- org-cli-tangle (requires emacs)
- org-protocol-emacsclient (requires emacs) (optional)
- orgmk-git (requires emacs)
- orgtbl-query (requires emacs) (optional)
- pacjson (requires emacs) (make)
- proofgeneral (requires emacs)
- proofgeneral-git (requires emacs)
- pvs (requires emacs)
- pymacs (requires emacs)
- pymacs-git (requires emacs)
- quack (requires emacs)
- quack (requires emacs) (make)
- regexy (requires emacs) (make)
- ros-melodic-rosemacs (requires emacs)
- ros-noetic-rosemacs (requires emacs)
- ros-noetic-slime-wrapper (requires emacs)
- sawfish-git (requires emacs) (make)
- sawfish-git (requires emacs) (optional)
- shpp-git (requires emacs) (make)
- slime (requires emacs)
- slime-git (requires emacs)
- sph-scheme-mode-git (requires emacs)
- stumpwm-git (requires emacs) (optional)
- sunrise-commander (requires emacs)
- supercollider-git (requires emacs) (make)
- supercollider-git (requires emacs) (optional)
- supercollider-headless-git (requires emacs) (make)
- supercollider-headless-git (requires emacs) (optional)
- supercollider-portaudio (requires emacs) (make)
- supercollider-portaudio (requires emacs) (optional)
- synct-git (requires emacs) (optional)
- tramp (requires emacs) (make)
- translate-shell-git (requires emacs) (optional)
- uim-git (requires emacs) (optional)
- unison-git (requires emacs) (make)
Sources (2)
Latest Comments
« First ‹ Previous 1 .. 6 7 8 9 10 11 12 13 14 15 16 .. 39 Next › Last »
toropisco commented on 2021-06-15 00:55 (UTC)
nowayman commented on 2021-06-14 21:22 (UTC)
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.
toropisco commented on 2021-06-13 14:03 (UTC) (edited on 2021-06-13 20:05 (UTC) by toropisco)
@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 (UTC) (edited on 2021-06-13 13:41 (UTC) by nowayman)
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 (UTC)
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.
toropisco commented on 2021-06-03 01:21 (UTC)
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 (UTC)
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.
toropisco commented on 2021-06-02 13:32 (UTC)
@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
cobaltspace commented on 2021-06-02 04:24 (UTC)
Now that setting lto is part of makepkg.conf
, maybe the setting should be removed from this pkgbuild.
Pinned Comments
toropisco commented on 2017-06-30 19:14 (UTC) (edited on 2022-05-15 13:26 (UTC) by toropisco)
This PKGBUILD is a work in progress. If you find PACKAGING bugs, please let me know ASAP.
Upstream bugs are to be reported upstream. Check out the emacs-devel archives to confirm if this is an already known bug. In fact... Why are you not subscribed to
emacs-devel
?. Also check theemacs-bug-tracker
archives.Reporting bugs: Write to the Emacs Bug Tracker and report it there. Or, better yet, use the
debbugs
client included with the text editor. You will find instructions at https://debbugs.gnu.org/. Good luck!If you confirm it is a packaging bug, you are welcome to report it here.
Yaourt and other automated tools users BEWARE! This PKGBUILD is written with hand updating in mind and I won't fix bugs arising from such use. Besides, cloning the same repository time and time again from a non-profit such as the GNU Project/FSF gives out a very low image of you.