Subject: [bug#28399] [PATCH 1/2] services: mysql: Fix missing modules on activation.

From: Christopher Baines <[email-masked]>
Date: Tue, 12 Sep 2017 19:48:25 +0100

On Mon, 11 Sep 2017 09:50:46 +0200
[email-masked] (Ludovic Courtès) wrote:

> Hi Chris,
> 
> Christopher Baines <[email-masked]> skribis:
> 
> > Some systems using the MySQL service would fail to boot, giving the
> > error:
> >
> >   ERROR: no code for module (ice-9 popen)
> >
> > * gnu/services/databases.scm (%mysql-activation): Wrap the gexp
> > using with-imported-modules, to ensure that the required modules
> > are available.  
> 
> [...]
> 
> > +    (with-imported-modules '((ice-9 popen)
> > +                             (guix build utils))  
> 
> The effect of this would be to import (ice-9 popen) from the host
> Guile in the build side.  Thus someone running Guile 2.2.2 on the
> host would get a slightly different file from someone running Guile
> 2.0.14, and so on, which hinders reproducibility.

That makes sense.

> The ‘use-modules’ form should be enough.  Does the test you sent
> reproduce the original problem?

It does for me. If you just revert the commit adding in the
with-imported-modules bit, running the mysql system test then fails:

ERROR: In procedure scm-error:
ERROR: no code for module (ice-9 popen)