41 pythonInputs = with python3.pkgs; [
66 stdenv.mkDerivation rec {
71 url = "https://releases.pagure.org/freeipa/freeipa-${version}.tar.gz";
72 sha256 = "sha256-SPZ+QgssDKG1Hz1oqtVdg864qtcvncuOlzTWjN4+loM=";
76 python3.pkgs.wrapPython
113 patchShebangs makeapi makeaci install/ui/util
115 substituteInPlace ipaplatform/setup.py \
116 --replace 'ipaplatform.debian' 'ipaplatform.nixos'
118 substituteInPlace ipasetup.py.in \
119 --replace 'int(v)' 'int(v.replace("post", ""))'
121 substituteInPlace client/ipa-join.c \
122 --replace /usr/sbin/ipa-getkeytab $out/bin/ipa-getkeytab
124 cp -r ipaplatform/{fedora,nixos}
125 substitute ${pathsPy} ipaplatform/nixos/paths.py \
127 --subst-var-by bind ${bind.dnsutils} \
128 --subst-var-by curl ${curl} \
129 --subst-var-by kerberos ${kerberos}
132 NIX_CFLAGS_COMPILE = "-I${_389-ds-base}/include/dirsrv";
133 pythonPath = pythonInputs;
135 # Building and installing the server fails with silent Rhino errors, skipping
136 # for now. Need a newer Rhino version.
137 #buildFlags = [ "client" "server" ]
140 "--with-systemdsystemunitdir=$out/lib/systemd/system"
141 "--with-ipaplatform=nixos"
148 echo 'ipa-client-install is not available on NixOS. Please see security.ipa, instead.'
150 " > $out/sbin/ipa-client-install
155 rm -rf $out/etc/ipa $out/var/lib/ipa-client/sysrestore
159 description = "Identity, Policy and Audit system";
161 IPA is an integrated solution to provide centrally managed Identity (users,
162 hosts, services), Authentication (SSO, 2FA), and Authorization
163 (host access control, SELinux user roles, services). The solution provides
164 features for further integration with Linux based clients (SUDO, automount)
165 and integration with Active Directory based infrastructures (Trusts).
167 homepage = "https://www.freeipa.org/";
168 license = licenses.gpl3Plus;
169 maintainers = [ maintainers.s1341 ];
170 platforms = platforms.linux;