mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-24 07:53:19 +00:00
15c8945497
This disables a flaky tests which sometimes fails (most likely due to some race condition). It's also disabled for Debian since 2.5.13: https://launchpad.net/debian/+source/openldap/2.5.13+dfsg-3 For reference, the failure looks like this: >>>>> 00:13:52 Starting test063-delta-multiprovider for mdb... running defines.sh Initializing server configurations... Starting server 1 on TCP/IP port 9011... Using ldapsearch to check that server 1 is running... Using ldapadd for context on server 1... Starting server 2 on TCP/IP port 9012... Using ldapsearch to check that server 2 is running... Starting server 3 on TCP/IP port 9013... Using ldapsearch to check that server 3 is running... Starting server 4 on TCP/IP port 9014... Using ldapsearch to check that server 4 is running... Using ldapadd to populate server 1... Waiting 7 seconds for syncrepl to receive changes... Using ldapsearch to read all the entries from server 1... Using ldapsearch to read all the entries from server 2... Using ldapsearch to read all the entries from server 3... Using ldapsearch to read all the entries from server 4... Comparing retrieved entries from server 1 and server 2... Comparing retrieved entries from server 1 and server 3... Comparing retrieved entries from server 1 and server 4... test failed - server 1 and server 4 databases differ >>>>> 00:14:25 Failed test063-delta-multiprovider for mdb after 33 seconds (exit 1) make[2]: *** [Makefile:320: mdb-yes] Error 1 make[2]: Leaving directory '/build/openldap-2.6.4/tests' make[1]: *** [Makefile:287: test] Error 2 make[1]: Leaving directory '/build/openldap-2.6.4/tests' make: *** [Makefile:298: test] Error 2 error: builder for '/nix/store/ypmpgzfjc992x24h8ga7xvbmk24qbfml-openldap-2.6.4.drv' failed with exit code 2;
137 lines
3.1 KiB
Nix
137 lines
3.1 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchurl
|
|
|
|
# dependencies
|
|
, cyrus_sasl
|
|
, groff
|
|
, libsodium
|
|
, libtool
|
|
, openssl
|
|
, systemdMinimal
|
|
, libxcrypt
|
|
|
|
# passthru
|
|
, nixosTests
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "openldap";
|
|
version = "2.6.5";
|
|
|
|
src = fetchurl {
|
|
url = "https://www.openldap.org/software/download/OpenLDAP/openldap-release/${pname}-${version}.tgz";
|
|
hash = "sha256-Lieo1PTCr4/oQLVzJxwgqhY+JJh/l2UhRkQpD1vrONk=";
|
|
};
|
|
|
|
# TODO: separate "out" and "bin"
|
|
outputs = [
|
|
"out"
|
|
"dev"
|
|
"man"
|
|
"devdoc"
|
|
];
|
|
|
|
__darwinAllowLocalNetworking = true;
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
nativeBuildInputs = [
|
|
groff
|
|
];
|
|
|
|
buildInputs = [
|
|
(cyrus_sasl.override {
|
|
inherit openssl;
|
|
})
|
|
libsodium
|
|
libtool
|
|
openssl
|
|
] ++ lib.optionals (stdenv.isLinux) [
|
|
libxcrypt # causes linking issues on *-darwin
|
|
systemdMinimal
|
|
];
|
|
|
|
preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
|
|
MACOSX_DEPLOYMENT_TARGET=10.16
|
|
'';
|
|
|
|
configureFlags = [
|
|
"--enable-argon2"
|
|
"--enable-crypt"
|
|
"--enable-modules"
|
|
"--enable-overlays"
|
|
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
|
"--with-yielding_select=yes"
|
|
"ac_cv_func_memcmp_working=yes"
|
|
] ++ lib.optional stdenv.isFreeBSD "--with-pic";
|
|
|
|
env.NIX_CFLAGS_COMPILE = toString [ "-DLDAPI_SOCK=\"/run/openldap/ldapi\"" ];
|
|
|
|
makeFlags= [
|
|
"CC=${stdenv.cc.targetPrefix}cc"
|
|
"STRIP=" # Disable install stripping as it breaks cross-compiling. We strip binaries anyway in fixupPhase.
|
|
"STRIP_OPTS="
|
|
"prefix=${placeholder "out"}"
|
|
"sysconfdir=/etc"
|
|
"systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
|
|
# contrib modules require these
|
|
"moduledir=${placeholder "out"}/lib/modules"
|
|
"mandir=${placeholder "out"}/share/man"
|
|
];
|
|
|
|
extraContribModules = [
|
|
# https://git.openldap.org/openldap/openldap/-/tree/master/contrib/slapd-modules
|
|
"passwd/sha2"
|
|
"passwd/pbkdf2"
|
|
"passwd/totp"
|
|
];
|
|
|
|
postBuild = ''
|
|
for module in $extraContribModules; do
|
|
make $makeFlags CC=$CC -C contrib/slapd-modules/$module
|
|
done
|
|
'';
|
|
|
|
preCheck = ''
|
|
substituteInPlace tests/scripts/all \
|
|
--replace "/bin/rm" "rm"
|
|
|
|
# skip flaky tests
|
|
rm -f tests/scripts/test063-delta-multiprovider
|
|
'';
|
|
|
|
doCheck = true;
|
|
|
|
# The directory is empty and serve no purpose.
|
|
preFixup = ''
|
|
rm -r $out/var
|
|
'';
|
|
|
|
installFlags = [
|
|
"prefix=${placeholder "out"}"
|
|
"sysconfdir=${placeholder "out"}/etc"
|
|
"moduledir=${placeholder "out"}/lib/modules"
|
|
"INSTALL=install"
|
|
];
|
|
|
|
postInstall = ''
|
|
for module in $extraContribModules; do
|
|
make $installFlags install -C contrib/slapd-modules/$module
|
|
done
|
|
chmod +x "$out"/lib/*.{so,dylib}
|
|
'';
|
|
|
|
passthru.tests = {
|
|
inherit (nixosTests) openldap;
|
|
};
|
|
|
|
meta = with lib; {
|
|
homepage = "https://www.openldap.org/";
|
|
description = "An open source implementation of the Lightweight Directory Access Protocol";
|
|
license = licenses.openldap;
|
|
maintainers = with maintainers; [ ajs124 das_j hexa ];
|
|
platforms = platforms.unix;
|
|
};
|
|
}
|