Subject: Re: [bug#49868] [PATCH 0/2] guix: dune-build-system: Add a profile parameter.

From: Julien Lepiller <[email-masked]>
Date: Wed, 8 Sep 2021 00:03:21 +0200

Le Tue, 07 Sep 2021 18:11:24 +0000,
pukkamustard <[email-masked]> a écrit :

> Julien Lepiller <[email-masked]> writes:
> 
> > Unfortunately, this is breaking our ocaml4.07-* packages, because
> > the --release flag doesn't exist in the version we use for
> > ocaml4.07-dune.  
> 
> Whoops. Seems like the --release flag was only added in dune 2.5.0
> (https://github.com/ocaml/dune/blob/main/CHANGES.md#250-09042020;
> ocaml4.07-dune is at 1.11.3).
> 
> > I think the easiest would be to add a flag #:release? and set it to
> > #f in package-with-ocaml4.07.  
> 
> That would work. But I think it would be better if we built everything
> in release mode.
> 
> Unfortunately the way to do that with old dune is by expclity with '-p
> PACKAGE1,PACKAGE2'. That means we need to rename the #:package
> argument to #:packages, allow it to take a list and add explicit
> packages to all OCaml4.07 packages.
> 
> Another way would be to write-out the flags for which -p and --release
> are short-hand for. Unfortunately this is different in dune 2.9.0 and
> 1.11.3 (taken from the --help):
> 
> 2.9.0:
> --8<---------------cut here---------------start------------->8---
> --root . --ignore-promoted-rules --no-config --profile release
>   --always-show-command-line --promote-install-files --default-target
>   @install
> --8<---------------cut here---------------end--------------->8---
> 
> 1.11.3:
> --8<---------------cut here---------------start------------->8---
> --root . --ignore-promoted-rules --no-config ----profile release
> --8<---------------cut here---------------end--------------->8---

I suppose these additional flags are not available in dune 1.11?

> 
> Can we check the version of dune in dune-build-system and either use
> --release or the set of 1.11.3 flags?
> 
> I just tried doing this in (guix build dune-build-system). Didn't work
> as I couldn't use (guix package). After reading up, I guess this needs
> to be done in (guix build-system dune) and lowered down as an
> argument - maybe as 'dune-release-flags'? Would that be ok?

Yeah, that sounds good. Another solution would be to get rid of
ocaml4.07, but that's our future bootstrap path (as this is the only
bootstrapped version currently), so we will need it anyway...