Subject: [FR] Provide official install scripts without requiring root, e.g., by making a static build possible
From: Rudi C <[email-masked]>
To: [email-masked]
Date: Fri, 29 Mar 2024 16:12:34 +0330
List-Id: <debbugs-submit.debbugs.gnu.org>

I've been struggling to install Emacs on university servers where I don't
have root access, and it's been a frustrating experience. It seems like
such a trivial issue to prevent people from using Emacs, especially when
Vim is usually pre-installed on most servers.

After searching the web, I've discovered that there are challenges in
building Emacs in a static way. (E.g.,
https://unix.stackexchange.com/questions/472989/how-to-build-instance-of-emacs-to-run-on-an-x86-64-system-different-from-the-one)
It would be fantastic if Emacs could be modified to allow for static,
portable builds for common Linux architectures. Imagine being able to
install Emacs using a simple command like `curl -sS
https://gnu.com/emacs-install-portable.sh | bash`, which would
automatically detect the correct build, download it, and install it. While
it might be possible to build Emacs without root access on each server from
scratch, it's a difficult and time-consuming process. Unfortunately, there
isn't a reliable official script like `gnu.com/emacs-install-no-root.sh` to
streamline this process. I've tried using Linuxbrew to build Emacs from
source without root, and while it sometimes (50%) works, it's very slow. As
brew is primarily developed for macOS, not Linux, the bugs are not fixed.
(See, e.g., https://github.com/d12frosted/homebrew-emacs-plus/issues/603)

To address these issues, I have three suggestions, listed in order of
preference:

1. Provide portable builds of Emacs, along with a script that automatically
installs the correct build without requiring root access.
2. Offer semi-portable builds of Emacs that only require building a handful
of libraries on the host. This should be handled by an official install
script, allowing users to simply run `curl ... | bash`.
3. Create an official install script that builds Emacs from source,
thoroughly tested on popular distributions like Ubuntu (including different
versions, not just the latest). This should still be as straightforward as
running `curl ... | bash`, even if it takes some time to complete.

I consider myself a persistent and patient person, and I've explored
various options, including `nix-env`, `guix`, and more. However, I've
reached my wit's end; installing Emacs is simply too complicated. While I
HAVE installed emacs on many servers and I use it remotely almost every
day, on servers that I use less often, I often resort to vim or editing
files locally and using Git to sync my changes back to the server. I'm
aware of Tramp, but it's buggy and slow on my setup, and I don't have the
time to debug it or fix the extensions that are causing issues. Similarly,
sshfs is unreliable on my unstable connections. All I want is a way to
easily install Emacs on a server without root access, without having to
manually inspect the installation process or engage in a debugging session.
Is a one-liner installer too much to ask for in 2024?!

PS: Please use reply-to-all.