Hi Liliana,

On 6/23/24 03:39, Liliana Marie Prikler wrote:
Am Samstag, dem 22.06.2024 um 19:52 -0500 schrieb Adam Porter:
Hello,

Today an emergency bugfix release was made of Emacs v29.4.  It fixes
an important security vulnerability.
Note: Security bugs should go to guix-security instead.  But thanks for
pointing out the new Emacs release, I've pushed an update. (Thus
marking this done)

Thanks.

If I may ask here, as it seems relevant and might help other users in the future:

A few minutes ago I ran "guix pull", but after it finished, "guix show emacs" still shows:

  name: emacs
  version: 29.3

Am I missing something? e.g. the equivalents in Debian, like "apt show emacs" or "apt policy emacs", show both installed and available versions.

So as a user, how am I to know whether I'm using the latest version of a package? I also tried "guix upgrade -n" (which updates substitute lists from the network, which can significantly delay its finishing for a simple check like this), and it shows:

  The following packages would be upgraded:
   emacs             (dependencies or package changed)

But maybe that's affected by the workaround I'm using (see below).

FWIW, I had hoped that I could install it by running:

    guix install --with-version=emacs=29.4 emacs

But that fails the validate-comp-integrity phase, showing that all of
its tests fail, with every function being loaded in byte-compiled
form instead of native-compiled.

Ah, yes, that is not something you can do with --with-version, as it
disregards our patches and everything.

Ah, I wish I had known that. FWIW, looking at <https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html>, I can't even find "--with-version" documented at all. But besides that, none of them seem to explain that such options may discard parts of the package definition, such as patches (if any of those other options do--is it only "--with-version" that does?). Does a documentation bug need to be filed about this?

As for how to work around this, you can do a more elaborate package
definition:

   (package
     (inherit emacs)
     (version NEW_VERSION)
     (source (origin (inherit (package-source emacs))
                     (uri NEW_URI))))

This should automatically apply our patches.  Or, you can locally run
`guix refresh -u emacs'.

Thanks for the pointer. I defined a package called "emacs-jit" (and a corresponding "emacs-minimal-jit") that comments out the JIT-disabling patches, so that I can still JIT-compile packages installed through Emacs, and it seems to be working fine.

Would you be willing to accept some kind of package definition like that being added to Guix, as an alternative to the main "emacs" package? (I won't quibble over the name.) I think that there are a significant number of users who would like to use Guix to keep Emacs up-to-date without sacrificing the ability to native-compile packages installed from within Emacs. It would be nice to have this in Guix so that I wouldn't have to manually update the package definition according to upstream changes.

Thanks,
Adam



Reply via email to