{ buildPackages, lib, openssl, stdenv, tcl, zlib, sources ? import ../npins, }: let version = lib.removeSuffix "\n" (builtins.readFile ../VERSION); in stdenv.mkDerivation { pname = "copland-fossil"; version = "${version}-copland"; src = lib.cleanSourceWith { name = "copland-fossil-source"; src = ../.; filter = path: type: let name = baseNameOf (toString path); in lib.cleanSourceFilter path type && !(builtins.elem name [ ".agents" ".build" ".codex" ".copland-preview" ".fslckout" ".references" ".repository" "jimsh0" "nix" "node_modules" "npins" "playwright-report" "result" "test-output" ]); }; nativeBuildInputs = [ tcl ]; buildInputs = [ openssl zlib ]; configurePhase = '' runHook preConfigure mkdir build cd build CC_FOR_BUILD=${buildPackages.stdenv.cc}/bin/cc \ ../configure --disable-fusefs --json \ ${lib.optionalString stdenv.hostPlatform.isStatic "--static"} \ --prefix="$out" runHook postConfigure ''; buildPhase = '' runHook preBuild make -j''${NIX_BUILD_CORES:-1} fossil runHook postBuild ''; doCheck = true; checkPhase = '' runHook preCheck make test TESTFLAGS='org.test wiki.test' runHook postCheck ''; installPhase = '' runHook preInstall install -Dm755 fossil "$out/bin/fossil" install -Dm644 ../fossil.1 "$out/share/man/man1/fossil.1" testRoot="$(mktemp -d)" export HOME="$testRoot/home" export USER=builder export LOGNAME=builder mkdir -p "$HOME" "$out/bin/fossil" help test-org-render >/dev/null "$out/bin/fossil" test-org-render \ ../tools/copland/tests/fixtures/org/all.org | grep -q 'class="org-document"' "$out/bin/fossil" test-builtin-get skins/copland/css.txt \ | grep -q -- '--page-bg:' "$out/bin/fossil" init "$testRoot/fresh.fossil" >/dev/null printf 'GET /style.css HTTP/1.0\r\nHost: localhost\r\n\r\n' \ | "$out/bin/fossil" test-http "$testRoot/fresh.fossil" \ | grep -q -- '--page-bg:' rm -r "$testRoot" runHook postInstall ''; meta = { description = "Copland's Fossil fork with native Org and the built-in Copland skin"; homepage = "https://fossil-scm.org/"; license = lib.licenses.bsd2; mainProgram = "fossil"; platforms = lib.platforms.unix; }; }