Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 cmake, 6 ninja, 7 pkg-config, 8 validatePkgConfig, 9 openssl, 10 sqlcipher, 11 boost, 12 curl, 13 glib, 14 libsecret, 15 libmaddy-markdown, 16 testers, 17 nix-update-script, 18}: 19 20stdenv.mkDerivation (finalAttrs: { 21 pname = "libnick"; 22 version = "2025.6.1"; 23 24 src = fetchFromGitHub { 25 owner = "NickvisionApps"; 26 repo = "libnick"; 27 tag = finalAttrs.version; 28 hash = "sha256-Ir2Jke1zK4pKldQJHaT0Ju0ubz7H6nx16hDNl6u48Ck="; 29 }; 30 31 nativeBuildInputs = [ 32 cmake 33 ninja 34 ] 35 ++ lib.optionals stdenv.hostPlatform.isUnix [ 36 pkg-config 37 validatePkgConfig 38 ]; 39 40 buildInputs = [ 41 boost 42 libmaddy-markdown 43 ] 44 ++ lib.optionals stdenv.hostPlatform.isUnix [ 45 glib 46 openssl 47 ] 48 ++ lib.optional stdenv.hostPlatform.isWindows sqlcipher; 49 50 propagatedBuildInputs = [ 51 curl 52 libsecret 53 ]; 54 55 cmakeFlags = [ 56 (lib.cmakeBool "BUILD_TESTING" finalAttrs.finalPackage.doCheck) 57 (lib.cmakeFeature "USE_LIBSECRET" "true") 58 ]; 59 60 postPatch = '' 61 substituteInPlace cmake/libnick.pc.in \ 62 --replace-fail 'libdir=''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@' \ 63 'libdir=@CMAKE_INSTALL_FULL_LIBDIR@' \ 64 --replace-fail 'includedir=''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@' \ 65 'includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@' 66 ''; 67 68 passthru = { 69 tests.pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; 70 updateScript = nix-update-script { }; 71 }; 72 73 meta = { 74 description = "Cross-platform development base for native Nickvision applications"; 75 homepage = "https://github.com/NickvisionApps/libnick"; 76 license = lib.licenses.gpl3Plus; 77 maintainers = [ lib.maintainers.normalcea ]; 78 platforms = lib.platforms.unix ++ lib.platforms.windows; 79 pkgConfigModules = [ "libnick" ]; 80 }; 81})