Co-authored-by: Mikhail Klementev <blame@dumpstack.io> Co-authored-by: Cabia Rangris <me@cab404.ru>
2.9 KiB
Release 22.11 (“Raccoon”, 2022.11/??)
Support is planned until the end of June 2023, handing over to 23.05.
Highlights
In addition to numerous new and upgraded packages, this release has the following highlights:
-
During cross-compilation, tests are now executed if the test suite can be executed by the build platform. This is the case when doing “native” cross-compilation where the build and host platforms are largely the same, but the nixpkgs' cross compilation infrastructure is used, e.g.
pkgsStatic
andpkgsLLVM
. Another possibility is that the build platform is a superset of the host platform, e.g. when cross-compiling fromx86_64-unknown-linux
toi686-unknown-linux
. The predicate gating test suite execution is the newly addedcanExecute
predicate: You can e.g. check ifstdenv.buildPlatform
can execute binaries built forstdenv.hostPlatform
(i.e. produced bystdenv.cc
) by evaluatingstdenv.buildPlatform.canExecute stdenv.hostPlatform
. -
PHP now defaults to PHP 8.1, updated from 8.0.
New Services
- appvm, Nix based app VMs. Available as virtualisation.appvm.
Backward Incompatibilities
-
The
isCompatible
predicate checking CPU compatibility is no longer exposed by the platform sets generated usinglib.systems.elaborate
. In most cases you will want to use the newcanExecute
predicate instead which also considers the kernel / syscall interface. It is briefly described in the release's highlights section.lib.systems.parse.isCompatible
still exists, but has changed semantically: Architectures with differing endianness modes are no longer considered compatible. -
The
isPowerPC
predicate, found onplatform
attrsets (hostPlatform
,buildPlatform
,targetPlatform
, etc) has been removed in order to reduce confusion. The predicate was was defined such that it matches only the 32-bit big-endian members of the POWER/PowerPC family, despite having a name which would imply a broader set of systems. If you were using this predicate, you can replacefoo.isPowerPC
with(with foo; isPower && is32bit && isBigEndian)
.
Other Notable Changes
- Please remove this line when you add the first item since docbook requires the section to be non-empty