2019-10-18 04:45:45 +02:00
|
|
|
{ stdenv, fetchFromGitHub, autoconf, automake, libtool, perl, flex, bison, curl,
|
|
|
|
pam, popt, libiconv, libuuid, openssl_1_0_2, cyrus_sasl, sqlite, tdb, libxml2 }:
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
pname = "pbis-open";
|
|
|
|
version = "9.1.0";
|
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "BeyondTrust";
|
|
|
|
repo = pname;
|
|
|
|
rev = version;
|
|
|
|
sha256 = "081jm34sf488nwz5wzs55d6rxx3sv566x6p4h1yqcjaw36174m8v";
|
|
|
|
};
|
|
|
|
|
|
|
|
nativeBuildInputs = [
|
|
|
|
autoconf automake libtool perl flex bison
|
|
|
|
];
|
|
|
|
|
|
|
|
# curl must be placed after openssl_1_0_2, because it pulls openssl 1.1 dependency.
|
|
|
|
buildInputs = [
|
|
|
|
pam popt libiconv libuuid openssl_1_0_2 cyrus_sasl
|
|
|
|
curl sqlite popt tdb libxml2 /*libglade2 for gtk*/
|
|
|
|
];
|
|
|
|
|
|
|
|
postPatch = ''
|
|
|
|
patchShebangs .
|
|
|
|
sed -i -e 's/legacy//g' lwupgrade/MakeKitBuild # disable /opt/ symlinks
|
|
|
|
sed -i -e 's/tdb.h//g' samba-interop/MakeKitBuild #include <tdb.h> fails but it won't affect the build
|
|
|
|
'';
|
|
|
|
preConfigure = ''
|
|
|
|
mkdir release
|
|
|
|
cd release
|
|
|
|
if [ $CC = gcc ]; then
|
2019-12-26 16:52:02 +01:00
|
|
|
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error=format-overflow -Wno-error=address-of-packed-member"
|
2019-10-18 04:45:45 +02:00
|
|
|
fi
|
|
|
|
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${stdenv.lib.getDev libxml2}/include/libxml2 -Wno-error=array-bounds -Wno-error=pointer-sign -Wno-error=deprecated-declarations -Wno-error=unused-variable"
|
|
|
|
'';
|
|
|
|
configureScript = ''../configure'';
|
|
|
|
configureFlags = [
|
|
|
|
"CFLAGS=-O"
|
|
|
|
"--docdir=${placeholder "prefix"}/share/doc"
|
|
|
|
"--mandir=${placeholder "prefix"}/share/doc/man"
|
|
|
|
"--datadir=${placeholder "prefix"}/share"
|
|
|
|
"--lw-initdir=${placeholder "prefix"}/etc/init.d"
|
|
|
|
"--selinux=no" # NixOS does not support SELinux
|
|
|
|
"--build-isas=x86_64" # [lwbase] endianness (host/x86_32): [lwbase] ERROR: could not determine endianness
|
|
|
|
"--fail-on-warn=no"
|
|
|
|
# "--debug=yes"
|
|
|
|
]; # ^ See https://github.com/BeyondTrust/pbis-open/issues/124
|
|
|
|
configureFlagsArray = [ "--lw-bundled-libs=linenoise-mob tomlc99 opensoap krb5 cyrus-sasl curl openldap ${ if libuuid == null then "libuuid" else "" }" ];
|
|
|
|
# ^ it depends on old krb5 version 1.9 (issue #228)
|
|
|
|
# linenoise-mod, tomlc99, opensoap is not in nixpkgs.
|
|
|
|
# krb5 must be old one, and cyrus-sasl and openldap have dependency to newer libkrb5 that cause runtime error
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
makeFlags = "SHELL=";
|
|
|
|
hardeningDisable = [ "format" ]; # -Werror=format-security
|
|
|
|
installPhase = ''
|
|
|
|
mkdir $sys
|
|
|
|
mv stage/{lib,var} $sys
|
|
|
|
mv stage$out $out
|
|
|
|
'';
|
|
|
|
outputs = [ "out" "sys" ];
|
|
|
|
|
|
|
|
meta = with stdenv.lib; {
|
|
|
|
description = "BeyondTrust AD Bridge Open simplifies the process of joining non-Microsoft hosts to Active Directory domains";
|
|
|
|
homepage = "https://github.com/BeyondTrust/pbis-open";
|
|
|
|
license = with licenses; [ gpl2 lgpl21 ];
|
|
|
|
platforms = [ "x86_64-linux" ];
|
|
|
|
};
|
|
|
|
}
|