python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / openldap / default.nix
blob5db0a7c8bfa9477288c4ec7a5cc0c05ab2516164
1 { lib
2 , stdenv
3 , fetchurl
4 , fetchpatch
6 # dependencies
7 , cyrus_sasl
8 , db
9 , groff
10 , libsodium
11 , libtool
12 , openssl
13 , systemdMinimal
14 , libxcrypt
17 stdenv.mkDerivation rec {
18   pname = "openldap";
19   version = "2.6.3";
21   src = fetchurl {
22     url = "https://www.openldap.org/software/download/OpenLDAP/openldap-release/${pname}-${version}.tgz";
23     hash = "sha256-0qKh1x3z13OWscFq11AuZ030RuBgcrDlpOlBw9BsDUY=";
24   };
26   # TODO: separate "out" and "bin"
27   outputs = [
28     "out"
29     "dev"
30     "man"
31     "devdoc"
32   ];
34   enableParallelBuilding = true;
36   nativeBuildInputs = [
37     groff
38   ];
40   buildInputs = [
41     cyrus_sasl
42     db
43     libsodium
44     libtool
45     openssl
46   ] ++ lib.optionals (stdenv.isLinux) [
47     libxcrypt # causes linking issues on *-darwin
48     systemdMinimal
49   ];
51   preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
52     MACOSX_DEPLOYMENT_TARGET=10.16
53   '';
55   configureFlags = [
56     "--enable-argon2"
57     "--enable-crypt"
58     "--enable-modules"
59     "--enable-overlays"
60   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
61     "--with-yielding_select=yes"
62     "ac_cv_func_memcmp_working=yes"
63   ] ++ lib.optional stdenv.isFreeBSD "--with-pic";
65   NIX_CFLAGS_COMPILE = [ "-DLDAPI_SOCK=\"/run/openldap/ldapi\"" ];
67   makeFlags= [
68     "CC=${stdenv.cc.targetPrefix}cc"
69     "STRIP="  # Disable install stripping as it breaks cross-compiling. We strip binaries anyway in fixupPhase.
70     "STRIP_OPTS="
71     "prefix=${placeholder "out"}"
72     "sysconfdir=/etc"
73     "systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
74     # contrib modules require these
75     "moduledir=${placeholder "out"}/lib/modules"
76     "mandir=${placeholder "out"}/share/man"
77   ];
79   extraContribModules = [
80     # https://git.openldap.org/openldap/openldap/-/tree/master/contrib/slapd-modules
81     "passwd/sha2"
82     "passwd/pbkdf2"
83     "passwd/totp"
84   ];
86   postBuild = ''
87     for module in $extraContribModules; do
88       make $makeFlags CC=$CC -C contrib/slapd-modules/$module
89     done
90   '';
92   preCheck = ''
93     substituteInPlace tests/scripts/all \
94       --replace "/bin/rm" "rm"
95     # fails saying "SASL(-1): generic failure: internal error: failed to init cipher 'rc4'"
96     rm tests/scripts/test076-authid-rewrite
97   '';
99   doCheck = true;
101   # The directory is empty and serve no purpose.
102   preFixup = ''
103     rm -r $out/var
104   '';
106   installFlags = [
107     "prefix=${placeholder "out"}"
108     "sysconfdir=${placeholder "out"}/etc"
109     "moduledir=${placeholder "out"}/lib/modules"
110     "INSTALL=install"
111   ];
113   postInstall = ''
114     for module in $extraContribModules; do
115       make $installFlags install -C contrib/slapd-modules/$module
116     done
117     chmod +x "$out"/lib/*.{so,dylib}
118   '';
120   meta = with lib; {
121     homepage = "https://www.openldap.org/";
122     description = "An open source implementation of the Lightweight Directory Access Protocol";
123     license = licenses.openldap;
124     maintainers = with maintainers; [ ajs124 das_j hexa ];
125     platforms = platforms.unix;
126   };