On Wed, Mar 05, 2025 at 02:51:42AM +0200, Adrian Bunk wrote:
> On Thu, Feb 20, 2025 at 11:23:20AM +0200, Faidon Liambotis wrote:
> >...
> > The API issue has been fixed upstream in a backwards-compatible way:
> > https://github.com/NixOS/nix/commit/edbfe863ce4ae4b89e554f29807e62674055f251
> > Note that 2.25.4+dfsg-1 in experimental already includes this code.
> >...
> 
> It does not seem to (likely due to 2.25.4 < 2.26):
> https://buildd.debian.org/status/logs.php?pkg=nix&ver=2.25.4%2Bdfsg-1%2Bb1

The commit above is indeed from 2.26, but it's been backported to 2.25.x
and is part of the 2.25.4 upstream release:
https://github.com/NixOS/nix/commit/bead70acc207e065606f1989697d1b13722d02ae
In turn, the code in question is part of 2.25.4+dfsg-1.

(Jordan, both of these commits can be cherry-picked and apply cleanly to
2.24.9 as well.)

So that leaves the question of why 2.25.4+dfsg-1 is FTBFS. I looked a
little bit into it:

The (tiny really) changes in the commit above are behind an #if
HAVE_LOWDOWN_1_4 guard, with HAVE_LOWDOWN_1_4 in turn being defined by
meson. No equivalent code is present in configure.ac however, and the
Debian package is seemingly using autoconf rather than meson. So
HAVE_LOWDOWN_1_4 is never defined in the Debian build process.

If upstream generally provides better support for meson, it may be a
good idea to switch to it regardless. Alternatively, you could patch
configure.ac to define HAVE_LOWDOWN_1_4 like meson does (which would be
an upstreamable patch), define it in debian/rules with
-DHAVE_LOWDOWN_1_4, or patch the code locally to remove the #ifs.

I'm not familiar with neither nix nor the Debian package of nix, just
offering a few suggestions as I see it, in case they are helpful.

Regards,
Faidon

Reply via email to