about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/yder/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/yder/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/yder/default.nix54
1 files changed, 54 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/yder/default.nix b/nixpkgs/pkgs/development/libraries/yder/default.nix
new file mode 100644
index 000000000000..ffa326ccc538
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/yder/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchFromGitHub, cmake, orcania, systemd, check, subunit
+, withSystemd ? stdenv.isLinux
+}:
+assert withSystemd -> systemd != null;
+stdenv.mkDerivation rec {
+  pname = "yder";
+  version = "1.4.6";
+
+  src = fetchFromGitHub {
+    owner = "babelouest";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0j46v93vn130gjcr704rkdiibbk3ampzsqb6xdcrn4x115gwyf5i";
+  };
+
+  patches = [
+    # We set CMAKE_INSTALL_LIBDIR to the absolute path in $out, so
+    # prefix and exec_prefix cannot be $out, too
+    ./fix-pkgconfig.patch
+
+    # - ORCANIA_LIBRARIES must be set before target_link_libraries is called
+    # - librt is not available, nor needed on Darwin
+    # - The test binary is not linked against all necessary libraries
+    # - Test for journald logging is not systemd specific and fails on darwin
+    # - If the working directory is different from the build directory, the
+    #   dynamic linker can't find libyder
+    # - Return correct error code from y_init_logs when journald is disabled
+    ./fix-darwin.patch
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ orcania ] ++ lib.optional withSystemd systemd;
+
+  checkInputs = [ check subunit ];
+
+  cmakeFlags = [
+    "-DBUILD_YDER_TESTING=on"
+  ] ++ lib.optional (!withSystemd) "-DWITH_JOURNALD=off";
+
+  doCheck = true;
+
+  preCheck = ''
+    export LD_LIBRARY_PATH="$(pwd):$LD_LIBRARY_PATH"
+  '';
+
+  meta = with lib; {
+    description = "Logging library for C applications";
+    homepage = "https://github.com/babelouest/yder";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ johnazoidberg ];
+    platforms = platforms.all;
+  };
+}