···236237### Staging branch {#submitting-changes-staging-branch}
238239-The `staging` branch is a development branch where mass-rebuilds go. It should only see non-breaking mass-rebuild commits. That means it is not to be used for testing, and changes must have been well tested already. If the branch is already in a broken state, please refrain from adding extra new breakages.
240241### Staging-next branch {#submitting-changes-staging-next-branch}
242
···236237### Staging branch {#submitting-changes-staging-branch}
238239+The `staging` branch is a development branch where mass-rebuilds go. Mass rebuilds are commits that cause rebuilds for many packages, like more than 500 (or perhaps, if it's 'light' packages, 1000). It should only see non-breaking mass-rebuild commits. That means it is not to be used for testing, and changes must have been well tested already. If the branch is already in a broken state, please refrain from adding extra new breakages.
240241### Staging-next branch {#submitting-changes-staging-next-branch}
242
···679 </listitem>
680 <listitem>
681 <para>
000000000000682 <literal>openssh</literal> has been update to 8.9p1, changing
683 the FIDO security key middleware interface.
684 </para>
···679 </listitem>
680 <listitem>
681 <para>
682+ <literal>openldap</literal> (and therefore the slapd LDAP
683+ server) were updated to version 2.6.2. The project introduced
684+ backwards-incompatible changes, namely the removal of the bdb,
685+ hdb, ndb, and shell backends in slapd. Therefore before
686+ updating, dump your database <literal>slapcat -n 1</literal>
687+ in LDIF format, and reimport it after updating your
688+ <literal>services.openldap.settings</literal>, which
689+ represents your <literal>cn=config</literal>.
690+ </para>
691+ </listitem>
692+ <listitem>
693+ <para>
694 <literal>openssh</literal> has been update to 8.9p1, changing
695 the FIDO security key middleware interface.
696 </para>
+2
nixos/doc/manual/release-notes/rl-2205.section.md
···240241- In the ncdns module, the default value of `services.ncdns.address` has been changed to the IPv6 loopback address (`::1`).
24200243- `openssh` has been update to 8.9p1, changing the FIDO security key middleware interface.
244245- `git` no longer hardcodes the path to openssh' ssh binary to reduce the amount of rebuilds. If you are using git with ssh remotes and do not have a ssh binary in your enviroment consider adding `openssh` to it or switching to `gitFull`.
···240241- In the ncdns module, the default value of `services.ncdns.address` has been changed to the IPv6 loopback address (`::1`).
242243+- `openldap` (and therefore the slapd LDAP server) were updated to version 2.6.2. The project introduced backwards-incompatible changes, namely the removal of the bdb, hdb, ndb, and shell backends in slapd. Therefore before updating, dump your database `slapcat -n 1` in LDIF format, and reimport it after updating your `services.openldap.settings`, which represents your `cn=config`.
244+245- `openssh` has been update to 8.9p1, changing the FIDO security key middleware interface.
246247- `git` no longer hardcodes the path to openssh' ssh binary to reduce the amount of rebuilds. If you are using git with ssh remotes and do not have a ssh binary in your enviroment consider adding `openssh` to it or switching to `gitFull`.
···23stdenv.mkDerivation rec {
4 pname = "lean";
5- version = "3.42.0";
67 src = fetchFromGitHub {
8 owner = "leanprover-community";
···11 # from. this is then used to check whether an olean file should be
12 # rebuilt. don't use a tag as rev because this will get replaced into
13 # src/githash.h.in in preConfigure.
14- rev = "b35d4695da88139a9168f2ad7acf0782e66dc4f0";
15- sha256 = "02rpigw6lnyjw8ccrlp2mcvswawkhl5y6kqa3zq76qp1fdjqjrbp";
16 };
1718 nativeBuildInputs = [ cmake ];
···23stdenv.mkDerivation rec {
4 pname = "lean";
5+ version = "3.43.0";
67 src = fetchFromGitHub {
8 owner = "leanprover-community";
···11 # from. this is then used to check whether an olean file should be
12 # rebuilt. don't use a tag as rev because this will get replaced into
13 # src/githash.h.in in preConfigure.
14+ rev = "bfce34363b0efe86e93e3fe75de76ab3740c772d";
15+ sha256 = "100mb003zkgrv1wd2agbk41aipk3j78k8zcjbj7pv9ixh02c7ss8";
16 };
1718 nativeBuildInputs = [ cmake ];
···9 version ? package.version,
10 }: runCommand "${package.name}-test-version" { nativeBuildInputs = [ package ]; meta.timeout = 60; } ''
11 if output=$(${command} 2>&1); then
12+ if grep -Fw "${version}" - <<< "$output"; then
13+ touch $out
14+ else
15+ echo "Version string '${version}' not found!" >&2
16+ echo "The output was:" >&2
17+ echo "$output" >&2
18+ exit 1
19+ fi
20 else
21+ echo -n ${lib.escapeShellArg command} >&2
22+ echo " returned a non-zero exit code." >&2
23+ echo "$output" >&2
24+ exit 1
25 fi
26 '';
27
+13-3
pkgs/development/compilers/go/1.17.nix
···18, buildPackages
19, pkgsBuildTarget
20, callPackage
021}:
0002223let
24 go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
···50 # We need a target compiler which is still runnable at build time,
51 # to handle the cross-building case where build != host == target
52 targetCC = pkgsBuildTarget.targetPackages.stdenv.cc;
0053in
5455stdenv.mkDerivation rec {
···70 propagatedBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ];
7172 depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
00007374 hardeningDisable = [ "all" ];
75···194 # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
195 # to be different from CC/CXX
196 CC_FOR_TARGET =
197- if (stdenv.buildPlatform != stdenv.targetPlatform) then
198 "${targetCC}/bin/${targetCC.targetPrefix}cc"
199 else
200 null;
201 CXX_FOR_TARGET =
202- if (stdenv.buildPlatform != stdenv.targetPlatform) then
203 "${targetCC}/bin/${targetCC.targetPrefix}c++"
204 else
205 null;
···223224 export PATH=$(pwd)/bin:$PATH
225226- ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
227 # Independent from host/target, CC should produce code for the building system.
228 # We only set it when cross-compiling.
229 export CC=${buildPackages.stdenv.cc}/bin/cc
···18, buildPackages
19, pkgsBuildTarget
20, callPackage
21+, threadsCross ? null # for MinGW
22}:
23+24+# threadsCross is just for MinGW
25+assert threadsCross != null -> stdenv.targetPlatform.isWindows;
2627let
28 go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
···54 # We need a target compiler which is still runnable at build time,
55 # to handle the cross-building case where build != host == target
56 targetCC = pkgsBuildTarget.targetPackages.stdenv.cc;
57+58+ isCross = stdenv.buildPlatform != stdenv.targetPlatform;
59in
6061stdenv.mkDerivation rec {
···76 propagatedBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ];
7778 depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
79+80+ depsBuildTarget = lib.optional isCross targetCC;
81+82+ depsTargetTarget = lib.optional (threadsCross != null) threadsCross;
8384 hardeningDisable = [ "all" ];
85···204 # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
205 # to be different from CC/CXX
206 CC_FOR_TARGET =
207+ if isCross then
208 "${targetCC}/bin/${targetCC.targetPrefix}cc"
209 else
210 null;
211 CXX_FOR_TARGET =
212+ if isCross then
213 "${targetCC}/bin/${targetCC.targetPrefix}c++"
214 else
215 null;
···233234 export PATH=$(pwd)/bin:$PATH
235236+ ${lib.optionalString isCross ''
237 # Independent from host/target, CC should produce code for the building system.
238 # We only set it when cross-compiling.
239 export CC=${buildPackages.stdenv.cc}/bin/cc
+13-3
pkgs/development/compilers/go/1.18.nix
···18, buildPackages
19, pkgsBuildTarget
20, callPackage
021}:
0002223let
24 go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
···50 # We need a target compiler which is still runnable at build time,
51 # to handle the cross-building case where build != host == target
52 targetCC = pkgsBuildTarget.targetPackages.stdenv.cc;
0053in
5455stdenv.mkDerivation rec {
···70 propagatedBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ];
7172 depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
00007374 hardeningDisable = [ "all" ];
75···188 # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
189 # to be different from CC/CXX
190 CC_FOR_TARGET =
191- if (stdenv.buildPlatform != stdenv.targetPlatform) then
192 "${targetCC}/bin/${targetCC.targetPrefix}cc"
193 else
194 null;
195 CXX_FOR_TARGET =
196- if (stdenv.buildPlatform != stdenv.targetPlatform) then
197 "${targetCC}/bin/${targetCC.targetPrefix}c++"
198 else
199 null;
···217218 export PATH=$(pwd)/bin:$PATH
219220- ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
221 # Independent from host/target, CC should produce code for the building system.
222 # We only set it when cross-compiling.
223 export CC=${buildPackages.stdenv.cc}/bin/cc
···18, buildPackages
19, pkgsBuildTarget
20, callPackage
21+, threadsCross ? null # for MinGW
22}:
23+24+# threadsCross is just for MinGW
25+assert threadsCross != null -> stdenv.targetPlatform.isWindows;
2627let
28 go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
···54 # We need a target compiler which is still runnable at build time,
55 # to handle the cross-building case where build != host == target
56 targetCC = pkgsBuildTarget.targetPackages.stdenv.cc;
57+58+ isCross = stdenv.buildPlatform != stdenv.targetPlatform;
59in
6061stdenv.mkDerivation rec {
···76 propagatedBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ];
7778 depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
79+80+ depsBuildTarget = lib.optional isCross targetCC;
81+82+ depsTargetTarget = lib.optional (threadsCross != null) threadsCross;
8384 hardeningDisable = [ "all" ];
85···198 # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
199 # to be different from CC/CXX
200 CC_FOR_TARGET =
201+ if isCross then
202 "${targetCC}/bin/${targetCC.targetPrefix}cc"
203 else
204 null;
205 CXX_FOR_TARGET =
206+ if isCross then
207 "${targetCC}/bin/${targetCC.targetPrefix}c++"
208 else
209 null;
···227228 export PATH=$(pwd)/bin:$PATH
229230+ ${lib.optionalString isCross ''
231 # Independent from host/target, CC should produce code for the building system.
232 # We only set it when cross-compiling.
233 export CC=${buildPackages.stdenv.cc}/bin/cc
+71-51
pkgs/development/libraries/openldap/default.nix
···1-{ lib, stdenv, fetchurl, openssl, db, groff, libtool, libsodium
2-, withCyrusSasl ? true
0003, cyrus_sasl
0000004}:
56stdenv.mkDerivation rec {
7 pname = "openldap";
8- version = "2.4.58";
910 src = fetchurl {
11 url = "https://www.openldap.org/software/download/OpenLDAP/openldap-release/${pname}-${version}.tgz";
12- sha256 = "sha256-V7WSVL4V0L9qmrPVFMHAV3ewISMpFTMTSofJRGj49Hs=";
13 };
1415 # TODO: separate "out" and "bin"
16- outputs = [ "out" "dev" "man" "devdoc" ];
000001718 enableParallelBuilding = true;
1920- nativeBuildInputs = [ groff ];
002122- buildInputs = [ openssl cyrus_sasl db libsodium libtool ];
23-24- # Disable install stripping as it breaks cross-compiling.
25- # We strip binaries anyway in fixupPhase.
26- makeFlags= [
27- "STRIP="
28- "prefix=$(out)"
29- "moduledir=$(out)/lib/modules"
30- "CC=${stdenv.cc.targetPrefix}cc"
31 ];
3233 preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
···35 '';
3637 configureFlags = [
38- "--enable-overlays"
39- "--disable-dependency-tracking" # speeds up one-time build
40- "--enable-modules"
41- "--sysconfdir=/etc"
42- "--localstatedir=/var"
43 "--enable-crypt"
0044 ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
45 "--with-yielding_select=yes"
46 "ac_cv_func_memcmp_working=yes"
47- ] ++ lib.optional (!withCyrusSasl) "--without-cyrus-sasl"
48- ++ lib.optional stdenv.isFreeBSD "--with-pic";
000000000000000004950 postBuild = ''
51- make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/sha2
52- make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/pbkdf2
53- make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/argon2
54 '';
5556- doCheck = false; # needs a running LDAP server
0005758- installFlags = [
59- "sysconfdir=$(out)/etc"
60- "localstatedir=$(out)/var"
61- "moduledir=$(out)/lib/modules"
62- # The argon2 module hardcodes /usr/bin/install as the path for the
63- # `install` binary, which is overridden here.
64- "INSTALL=install"
65- ];
6667- # 1. Libraries left in the build location confuse `patchelf --shrink-rpath`
68- # Delete these to let patchelf discover the right path instead.
69- # FIXME: that one can be removed when https://github.com/NixOS/patchelf/pull/98
70- # is in Nixpkgs patchelf.
71- # 2. Fixup broken libtool for openssl and cyrus_sasl (if it is not disabled)
72 preFixup = ''
73 rm -r $out/var
74- rm -r libraries/*/.libs
75- rm -r contrib/slapd-modules/passwd/*/.libs
76- for f in $out/lib/libldap.la $out/lib/libldap_r.la; do
77- substituteInPlace "$f" --replace '-lssl' '-L${lib.getLib openssl}/lib -lssl'
78- '' + lib.optionalString withCyrusSasl ''
79- substituteInPlace "$f" --replace '-lsasl2' '-L${cyrus_sasl.out}/lib -lsasl2'
80- '' + ''
81- done
82 '';
8300000084 postInstall = ''
85- make $installFlags install -C contrib/slapd-modules/passwd/sha2
86- make $installFlags install -C contrib/slapd-modules/passwd/pbkdf2
87- make $installFlags install-lib -C contrib/slapd-modules/passwd/argon2
88 chmod +x "$out"/lib/*.{so,dylib}
89 '';
90···92 homepage = "https://www.openldap.org/";
93 description = "An open source implementation of the Lightweight Directory Access Protocol";
94 license = licenses.openldap;
95- maintainers = with maintainers; [ lovek323 ];
96 platforms = platforms.unix;
97 };
98}