Unverified Commit 871a887b authored by John Ericson's avatar John Ericson Committed by GitHub
Browse files

tdb, talloc, tevent, ldb: fix `pkgsLLVM` build (take 2) (#384637)

parents 981199be 23b4e3fa
Loading
Loading
Loading
Loading
+43 −27
Original line number Diff line number Diff line
{ lib, stdenv
, fetchurl
, python3
, pkg-config
, readline
, tdb
, talloc
, tevent
, popt
, libxslt
, docbook-xsl-nons
, docbook_xml_dtd_42
, cmocka
, wafHook
, buildPackages
, libxcrypt
, testers
{
  lib,
  stdenv,
  fetchurl,
  python3,
  pkg-config,
  readline,
  tdb,
  talloc,
  tevent,
  popt,
  libxslt,
  docbook-xsl-nons,
  docbook_xml_dtd_42,
  cmocka,
  wafHook,
  buildPackages,
  libxcrypt,
  testers,
}:

stdenv.mkDerivation (finalAttrs: {
@@ -26,7 +28,10 @@ stdenv.mkDerivation (finalAttrs: {
    hash = "sha256-0VWIQALHnbscPYZC+LEBPy5SCzru/W6WQSrexbjWy8A=";
  };

  outputs = [ "out" "dev" ];
  outputs = [
    "out"
    "dev"
  ];

  nativeBuildInputs = [
    pkg-config
@@ -59,11 +64,13 @@ stdenv.mkDerivation (finalAttrs: {

  wafPath = "buildtools/bin/waf";

  wafConfigureFlags = [
  wafConfigureFlags =
    [
      "--bundled-libraries=NONE"
      "--builtin-libraries=replace"
      "--without-ldb-lmdb"
  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
    ]
    ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
      "--cross-compile"
      "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
    ];
@@ -73,7 +80,16 @@ stdenv.mkDerivation (finalAttrs: {
  # module, which works correctly in all cases.
  PYTHON_CONFIG = "/invalid";

  stripDebugList = [ "bin" "lib" "modules" ];
  # https://reviews.llvm.org/D135402
  NIX_LDFLAGS = lib.optional (
    stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17"
  ) "--undefined-version";

  stripDebugList = [
    "bin"
    "lib"
    "modules"
  ];

  passthru.tests.pkg-config = testers.hasPkgConfigModules {
    package = finalAttrs.finalPackage;
+5 −0
Original line number Diff line number Diff line
@@ -67,6 +67,11 @@ stdenv.mkDerivation rec {
  # module, which works correctly in all cases.
  PYTHON_CONFIG = "/invalid";

  # https://reviews.llvm.org/D135402
  NIX_LDFLAGS = lib.optional (
    stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17"
  ) "--undefined-version";

  # this must not be exported before the ConfigurePhase otherwise waf whines
  preBuild = lib.optionalString stdenv.hostPlatform.isMusl ''
    export NIX_CFLAGS_LINK="-no-pie -shared";
+32 −21
Original line number Diff line number Diff line
{ lib, stdenv
, fetchurl
, pkg-config
, wafHook
, buildPackages
, python3
, readline
, libxslt
, libxcrypt
, docbook-xsl-nons
, docbook_xml_dtd_45
{
  lib,
  stdenv,
  fetchurl,
  pkg-config,
  wafHook,
  buildPackages,
  python3,
  readline,
  libxslt,
  libxcrypt,
  docbook-xsl-nons,
  docbook_xml_dtd_45,
}:

stdenv.mkDerivation rec {
@@ -44,23 +46,32 @@ stdenv.mkDerivation rec {

  wafPath = "buildtools/bin/waf";

  wafConfigureFlags = [
  wafConfigureFlags =
    [
      "--bundled-libraries=NONE"
      "--builtin-libraries=replace"
  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
    ]
    ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
      "--cross-compile"
      "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
    ];

  postFixup = if stdenv.hostPlatform.isDarwin
    then ''install_name_tool -id $out/lib/libtdb.dylib $out/lib/libtdb.dylib''
    else null;
  postFixup =
    if stdenv.hostPlatform.isDarwin then
      ''install_name_tool -id $out/lib/libtdb.dylib $out/lib/libtdb.dylib''
    else
      null;

  # python-config from build Python gives incorrect values when cross-compiling.
  # If python-config is not found, the build falls back to using the sysconfig
  # module, which works correctly in all cases.
  PYTHON_CONFIG = "/invalid";

  # https://reviews.llvm.org/D135402
  NIX_LDFLAGS = lib.optional (
    stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17"
  ) "--undefined-version";

  meta = with lib; {
    description = "Trivial database";
    longDescription = ''
+5 −0
Original line number Diff line number Diff line
@@ -67,6 +67,11 @@ stdenv.mkDerivation rec {
  # module, which works correctly in all cases.
  PYTHON_CONFIG = "/invalid";

  # https://reviews.llvm.org/D135402
  NIX_LDFLAGS = lib.optional (
    stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17"
  ) "--undefined-version";

  meta = with lib; {
    description = "Event system based on the talloc memory management library";
    homepage = "https://tevent.samba.org/";