Subject: bug#73982: GCC Dependency?

From: Eli Zaretskii <[email-masked]>
Date: Thu, 24 Oct 2024 11:12:09 +0300

tags 73982 notabug
thanks

> From: Jeffrey Walton <[email-masked]>
> Date: Thu, 24 Oct 2024 03:42:01 -0400
> 
> I wanted to install emacs-nw, a/k/a emacs-nox, on a production Fedora
> server to edit configuration files. I had to install Zile instead
> because of all of Emac's dependencies, which now seems to include
> compilers. Also see Red Hat Bug #2316238,
> <https://bugzilla.redhat.com/show_bug.cgi?id=2316238>.

According to the above Red Hat bug report, this has nothing to do with
the upstream Emacs project (us).  It's how Red Hat decided to package
Emacs, evidently to avoid having too many different Emacs packages.

> I think the dev team made a bad architectural decision when it decided
> to allow the cornucopia of dependencies to grow, which now appears to
> include compilers.

That is incorrect.  The Emacs build procedure includes the options to
build Emacs without native-compilation (which is what requires
libgccjit and GCC).  Moreover, in Emacs 29 (which is what you seem to
have installed) native-compilation is by default _disabled_; we
decided to enable it by default only in Emacs 30 (which was not yet
released).  And even if it's turned on by default, one can disable
that when building Emacs.

I guess Red Hat decided not to provide a package without
native-compilation, for whatever reasons.  (They also seem to provide
Git, Perl, and Enchant, which are not Emacs dependencies at all.)  But
that's not our decision, it's theirs.

> I think it would be wise to remove the requirement of a compiler for a
> simple text editor. The team needs to provide a simple text editor (in
> addition to the other bloated offerings).

We do allow to configure Emacs without many optional features.  In
fact, almost _every_ dependency in Emacs can be disabled when Emacs is
configured for building.

So please take this back with the Red Hat packaging team: it's their
decision which Emacs configurations to provide for downloading.  Or
maybe just build your own Emacs, in which case you will be the one to
decide which options to include and which not to include.

I see no bug in Emacs here, as we allow to build Emacs with as many or
as few dependencies as the user wants, and we don't tell distros how
to package their binary distributions.