all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#71729: Emacs 29.4 emergency bugfix release
@ 2024-06-23  0:52 Adam Porter
  2024-06-23  8:39 ` Liliana Marie Prikler
  0 siblings, 1 reply; 5+ messages in thread
From: Adam Porter @ 2024-06-23  0:52 UTC (permalink / raw)
  To: 71729

Hello,

Today an emergency bugfix release was made of Emacs v29.4.  It fixes an 
important security vulnerability.

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.

And despite my best efforts at comparing the emacs.git tags for 29.3 and 
29.4 to look for any relevant changes, and digging through the relevant 
source code, and scanning through the build logs, I can't find a cause 
for this problem.

Is this failure expected?  If so, is it something unique to the Emacs 
packaging, and could it be fixed?  (Before Emacs 28 was released, I was 
able to use a similar "--with-commit" option to build and install what 
was then the emacs-next package to get native-compilation support, 
keeping it updated with Emacs's master branch at the time.  It would be 
helpful if that could still be used by users rather than having to wait 
for an update to the package definition, especially in a case like this.)

Thanks for your work on Emacs in Guix.

--Adam




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#71729: Emacs 29.4 emergency bugfix release
  2024-06-23  0:52 bug#71729: Emacs 29.4 emergency bugfix release Adam Porter
@ 2024-06-23  8:39 ` Liliana Marie Prikler
  2024-06-26 14:20   ` Leo Famulari
  2024-06-27 13:57   ` Adam Porter
  0 siblings, 2 replies; 5+ messages in thread
From: Liliana Marie Prikler @ 2024-06-23  8:39 UTC (permalink / raw)
  To: Adam Porter, 71729-done

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)

> 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.

> And despite my best efforts at comparing the emacs.git tags for 29.3
> and 29.4 to look for any relevant changes, and digging through the
> relevant source code, and scanning through the build logs, I can't
> find a cause for this problem.
> 
> Is this failure expected?  If so, is it something unique to the Emacs
> packaging, and could it be fixed?  (Before Emacs 28 was released, I
> was able to use a similar "--with-commit" option to build and install
> what was then the emacs-next package to get native-compilation
> support, keeping it updated with Emacs's master branch at the time. 
> It would be helpful if that could still be used by users rather than
> having to wait for an update to the package definition, especially in
> a case like this.)
I understand your pain, but I doubt there is a reasonable fix to this.
Perhaps the check should honour tests?, but then you'd disable all the
other tests as well as part of the build.  Maybe a --without-phase
option to the Guix CLI would be better?

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'.

Cheers




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#71729: Emacs 29.4 emergency bugfix release
  2024-06-23  8:39 ` Liliana Marie Prikler
@ 2024-06-26 14:20   ` Leo Famulari
  2024-06-27 13:57   ` Adam Porter
  1 sibling, 0 replies; 5+ messages in thread
From: Leo Famulari @ 2024-06-26 14:20 UTC (permalink / raw)
  To: 71729, liliana.prikler, adam

On Sun, Jun 23, 2024 at 10:39:18AM +0200, Liliana Marie Prikler wrote:
> 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)

I think that only secret security bugs should go to guix-security,
unless the policy has changed. Public issues should go to bug-guix.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#71729: Emacs 29.4 emergency bugfix release
  2024-06-23  8:39 ` Liliana Marie Prikler
  2024-06-26 14:20   ` Leo Famulari
@ 2024-06-27 13:57   ` Adam Porter
  2024-06-27 19:27     ` Liliana Marie Prikler
  1 sibling, 1 reply; 5+ messages in thread
From: Adam Porter @ 2024-06-27 13:57 UTC (permalink / raw)
  To: Liliana Marie Prikler, 71729

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




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#71729: Emacs 29.4 emergency bugfix release
  2024-06-27 13:57   ` Adam Porter
@ 2024-06-27 19:27     ` Liliana Marie Prikler
  0 siblings, 0 replies; 5+ messages in thread
From: Liliana Marie Prikler @ 2024-06-27 19:27 UTC (permalink / raw)
  To: Adam Porter, 71729

Hi Adam,

Am Donnerstag, dem 27.06.2024 um 08:57 -0500 schrieb Adam Porter:
> 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.
You're missing the graft, which apparently does not show up in "guix
show".  

> 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, with emacs you can check (emacs-version).  More generally, this
is a bug – replacements ought to be announced somehow.

> > > 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-Option
> s.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?
The info manual (which you can read locally) has both, as well as the
warning you seek.

> > 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.
But then you'd be shifting the maintenance burden to us Guix.  We
already have enough Emacs variants to keep track of as-is, and adding
yet another orthogonal angle is not going to scale well.  Plus, for
this variant you'd lose all the benefits that Guix provides – I don't
see this as a reasonable thing to ship, to be honest.

Cheers




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-06-27 20:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-23  0:52 bug#71729: Emacs 29.4 emergency bugfix release Adam Porter
2024-06-23  8:39 ` Liliana Marie Prikler
2024-06-26 14:20   ` Leo Famulari
2024-06-27 13:57   ` Adam Porter
2024-06-27 19:27     ` Liliana Marie Prikler

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.