Bug 2316238
Summary: | emacs-nw package has a lot of package dependencies | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Jeffrey Walton <noloader> |
Component: | emacs | Assignee: | Daiki Ueno <dueno> |
Status: | CLOSED WONTFIX | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | low | Docs Contact: | |
Priority: | unspecified | ||
Version: | 40 | CC: | benson_muite, dan.cermak, dmalcolm, dueno, eliz, fweimer, gordon.messmer, jakub, jlaw, josmyers, jwakely, marcandre.lureau, mavit, mcermak, mpolacek, msebor, msekleta, nickc, nixuser, noloader, phracek, sipoyare |
Target Milestone: | --- | Keywords: | Reopened |
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | emacs-29.4-38.fc41 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2025-01-13 11:13:13 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Jeffrey Walton
2024-10-03 02:43:22 UTC
Some of these dependencies are optional. If you would prefer not to install them, you can do that with: sudo yum install --setopt=install_weak_deps=False emacs-nw The bulk of the remainder is GCC and dependencies, which are required for Emacs' native compilation feature. This improves speed at the expense of space (https://www.gnu.org/software/emacs/manual/html_node/elisp/Native-Compilation.html). We already provide four different Emacs builds, and I don't think it would make sense to double that to provide builds without native compilation. If you really want to save the disk space, and don't mind Emacs warning you that it isn't able to natively compile the code for any Emacs packages that you install, you could run: sudo rpm -e --nodeps gcc sudo yum autoremove Given that this still allows Emacs to run the previously-compiled native code that is included in the Emacs RPMs, perhaps the dependencies of the libgccjit RPM should be altered to make gcc a weak dependency. That would be a decision for the gcc RPM package maintainers. That doesn't make any sense, gcc is a hard dependency of libgccjit, the library doesn't work at all without it. FEDORA-2024-ef83e4516c (emacs-29.4-36.fc41) has been submitted as an update to Fedora 41. https://bodhi.fedoraproject.org/updates/FEDORA-2024-ef83e4516c FEDORA-2024-ef83e4516c has been pushed to the Fedora 41 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-ef83e4516c` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-ef83e4516c See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2024-622c0253f9 has been pushed to the Fedora 41 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-622c0253f9` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-622c0253f9 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. I just stood up another production web server using a Fedora 40 Server. The machine is fully patched, and it faces the internet. I am baffled at the extra stuff being pulled in for emacs-nw. All I want is a simple text editor. I _don't_ want a compiler on this machine. I am not trying to help a bad guy attack this machine. If someone wishes to compile source files through emacs, then they should install a compiler. $ sudo dnf install emacs-nw --setopt=install_weak_deps=False Last metadata expiration check: 0:03:05 ago on Thu 24 Oct 2024 01:48:40 AM EDT. Dependencies resolved. ============================================================================== Package Arch Version Repository Size ============================================================================== Installing: emacs-nw x86_64 1:29.4-9.fc40 updates 31 M Installing dependencies: alsa-lib x86_64 1.2.12-1.fc40 updates 514 k cpp x86_64 14.2.1-3.fc40 updates 12 M emacs-common x86_64 1:29.4-9.fc40 updates 42 M gc x86_64 8.2.2-6.fc40 fedora 110 k gcc x86_64 14.2.1-3.fc40 updates 37 M glibc-devel x86_64 2.39-22.fc40 updates 116 k glibc-headers-x86 noarch 2.39-22.fc40 updates 610 k guile30 x86_64 3.0.7-12.fc40 fedora 8.1 M kernel-headers x86_64 6.11.3-200.fc40 updates 1.6 M libgccjit x86_64 14.2.1-3.fc40 updates 11 M liblockfile x86_64 1.17-8.fc40 fedora 30 k libmpc x86_64 1.3.1-5.fc40 fedora 71 k libtree-sitter x86_64 0.22.5-1.fc40 updates 101 k libxcrypt-devel x86_64 4.4.36-5.fc40 fedora 29 k make x86_64 1:4.4.1-6.fc40 fedora 588 k Transaction Summary ============================================================================== Install 16 Packages Total download size: 145 M Installed size: 507 M (In reply to Jeffrey Walton from comment #6) > I just stood up another production web server using a Fedora 40 Server. The > machine is fully patched, and it faces the internet. > > I am baffled at the extra stuff being pulled in for emacs-nw. All I want is > a simple text editor. I _don't_ want a compiler on this machine. I am not > trying to help a bad guy attack this machine. If someone wishes to compile > source files through emacs, then they should install a compiler. Emacs nowadays uses libgccjit to just-in-time compile elisp and therefore needs gcc. i.e. this has nothing to do with wishing "to compile source files through emacs", it's about using emacs itself. Thanks Dan and Jonathan. I'll raise an issue with the emacs folks. (In reply to Jeffrey Walton from comment #9) > Thanks Dan and Jonathan. > > I'll raise an issue with the emacs folks. Also see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=73982>. It is wrong to raise this issue with the upstream Emacs project, because Emacs allows to configure the build with or without any optional dependency. That includes native-compilation; in fact, native-compilation is OFF by default in Emacs 29, and only Emacs 30 (which was not yet released) will make it ON by default. Evidently, Red Hat decided to provide Emacs 29 packages with native-compilation, for whatever reasons. But whether ON or OFF by default, Emacs can be configured to build without native-compilation and any other optional dependency. So it is the decision of the Red Hat packaging team that caused emacs-nox to include native-compilation, and it's their decision not to provide a similar package without native-compilation. The upstream Emacs project includes build-time options to do both. There's no bug in Emacs here. I responded in this spirit to the bug report submitted to the Emacs bug tracker, see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=73982#8>. It would be possible to provide some kind of “emacs-minimal” package, but someone invested in this use-case would need to step forward to do the work to decide if it should supplement or replace the existing no-window build, decide what features it should include/exclude, and then help maintain it in future. Offering a Copr repository (https://copr.fedorainfracloud.org/) would probably be a good place to start. I'll leave this bug open for now, in case such a person volunteers. (In reply to Peter Oliver from comment #12) > It would be possible to provide some kind of “emacs-minimal” package... > I'll leave this bug open for now, in case such a person volunteers. Thanks Peter. I _think_ the emacs folks should provide a truly minimal option to configure. The last time I checked (circa v24), there was no "minimal" option. Something like this is missing: ./configure --enable-minimal Instead, distros and users have to configure with something like this: ./configure \ --with-xml2 \ --with-zlib \ --without-x \ --without-sound \ --without-xpm \ --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 \ --without-makeinfo \ --without-compress-install Distros and users trying to find a way to minimize the build have been going on since at least 2013; see <https://superuser.com/q/617468>. It doesn't matter whether upstream provides a single option to do that or not. What takes effort is packaging and maintaining an alternative emacs-minimal RPM in the distro. Using a long list of options in the .spec file is not the hard part. Unless somebody is willing to do the hard part, the options used in the spec file are irrelevant. (In reply to Jeffrey Walton from comment #13) > (In reply to Peter Oliver from comment #12) > > It would be possible to provide some kind of “emacs-minimal” package... > > I'll leave this bug open for now, in case such a person volunteers. > > Thanks Peter. > > I _think_ the emacs folks should provide a truly minimal option to > configure. The last time I checked (circa v24), there was no "minimal" > option. Something like this is missing: > > ./configure --enable-minimal It is not missing, it is called "./configure --without-all". May I suggest to invoke "./configure --help" and read what it says? The article https://opensource.com/article/20/3/lightweight-emacs lists a number of lightweight emacs alternatives: µemacs - https://git.kernel.org/pub/scm/editors/uemacs/uemacs.git/tree/ zile - https://www.gnu.org/software/zile/ jove - https://github.com/jonmacs/jove µemacs cannot be packaged. zile is already packaged - https://packages.fedoraproject.org/pkgs/jove/jove/ Jove has been orphaned: https://packages.fedoraproject.org/pkgs/jove/jove/ Am working on bringing it back to Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=2321770 Another Emacs clone, mg (https://github.com/hboetes/mg), is also packaged for Fedora. Personally, I only run a text editor on a server or in a container in emergencies. In usual circumstances, I edit remote files using a local Emacs and its TRAMP feature (https://www.gnu.org/software/emacs/manual/html_node/tramp/index.html). FEDORA-2024-622c0253f9 (emacs-29.4-38.fc41) has been pushed to the Fedora 41 stable repository. If problem still persists, please make note of it in this bug report. I think this can be closed. (I switched to zile. It is too frustrating trying to continue using emacs. The emacs maintainers want it to be too much). |