diff --git a/flake.lock b/flake.lock --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1672308958, - "narHash": "sha256-zLvAJ+XTI7gIlUqlrKj8j4+POZXDB6kUOnV0yBvSIMc=", + "lastModified": 1757967192, + "narHash": "sha256-/aA9A/OBmnuOMgwfzdsXRusqzUpd8rQnQY8jtrHK+To=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d879125d61a0be8ecb2afddaca8f2b0530db0260", + "rev": "0d7c15863b251a7a50265e57c1dca1a7add2e291", "type": "github" }, "original": { @@ -34,11 +34,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1704161960, - "narHash": "sha256-QGua89Pmq+FBAro8NriTuoO/wNaUtugt29/qqA8zeeM=", + "lastModified": 1757967192, + "narHash": "sha256-/aA9A/OBmnuOMgwfzdsXRusqzUpd8rQnQY8jtrHK+To=", "owner": "nixos", "repo": "nixpkgs", - "rev": "63143ac2c9186be6d9da6035fa22620018c85932", + "rev": "0d7c15863b251a7a50265e57c1dca1a7add2e291", "type": "github" }, "original": { @@ -56,13 +56,31 @@ "utils": "utils" } }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix --- a/flake.nix +++ b/flake.nix @@ -5,7 +5,6 @@ utils.url = "github:numtide/flake-utils"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixpkgs-grpc-web.url = "github:NixOS/nixpkgs/9957cd48326fe8dbd52fdc50dd2502307f188b0d"; - # Do not update, used for EOL versions of mariaDB and arcanist+php8.0 nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; }; @@ -31,12 +30,17 @@ in import nixpkgs-unstable { inherit system; - config.allowUnfree = true; + config = { + allowUnfree = true; + permittedInsecurePackages = [ + "olm-3.2.16" + ]; + }; overlays = overlays ++ [ # Re-introduce older packages that were removed in latest nixpkgs (_: _: { emscripten = oldNixpkgs.emscripten; # Changed signficantly - php80 = oldNixpkgs.php80; # Used for arcanist + php81 = oldNixpkgs.php81; # Used for arcanist }) ]; }; diff --git a/nix/arcanist-php81-fix.patch b/nix/arcanist-php81-fix.patch new file mode 100644 --- /dev/null +++ b/nix/arcanist-php81-fix.patch @@ -0,0 +1,25 @@ +From 2e2d707ef044a464e9be3e1061edae7eeeaa89f3 Mon Sep 17 00:00:00 2001 +From: Ashoat Tevosyan +Date: Tue, 16 Sep 2025 14:52:03 -0400 +Subject: [PATCH] PHP 8.1: fix strlen(null) deprecation + +--- + src/toolset/workflow/ArcanistShellCompleteWorkflow.php | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/toolset/workflow/ArcanistShellCompleteWorkflow.php b/src/toolset/workflow/ArcanistShellCompleteWorkflow.php +index 9c2fcf9a..df44bf43 100644 +--- a/src/toolset/workflow/ArcanistShellCompleteWorkflow.php ++++ b/src/toolset/workflow/ArcanistShellCompleteWorkflow.php +@@ -92,7 +92,7 @@ EOTEXT + $argv = $this->getArgument('argv'); + + $is_generate = $this->getArgument('generate'); +- $is_shell = (bool)strlen($this->getArgument('shell')); ++ $is_shell = (bool)strlen($this->getArgument('shell') ?? ''); + $is_current = $this->getArgument('current'); + + if ($argv) { +-- +2.51.0 + diff --git a/nix/arcanist.nix b/nix/arcanist.nix --- a/nix/arcanist.nix +++ b/nix/arcanist.nix @@ -4,24 +4,26 @@ , fetchFromGitHub , installShellFiles , makeWrapper -, php80 +, php81 , python3 , which }: stdenv.mkDerivation { pname = "arcanist"; - version = "20220517"; + version = "20230530"; src = fetchFromGitHub { owner = "phacility"; repo = "arcanist"; - rev = "85c953ebe4a6fef332158fd757d97c5a58682d3a"; - sha256 = "0x847fw74mzrbhzpgc4iqgvs6dsf4svwfa707dsbxi78fn2lxbl7"; + rev = "e50d1bc4eabac9c37e3220e9f3fb8e37ae20b957"; + sha256 = "13hng5xjn4whg1ichgk36lspmmmd9fdsv8a8mj5hq05fl2qx3qdv"; }; + patches = [ ./arcanist-php81-fix.patch ]; + # These need to be in PATH during the build - nativeBuildInputs = [ php80 python3 installShellFiles makeWrapper ]; + nativeBuildInputs = [ php81 python3 installShellFiles makeWrapper ]; # Since we are exporting a script, we do not need to do an actual "build" doBuild = false; @@ -42,8 +44,8 @@ # See https://github.com/NixOS/nixpkgs/issues/93609 for related issue. cat << WRAPPER > $out/bin/arc #!$shell -e - export PATH=${lib.makeBinPath [ python3 php80 which]}''${PATH:+':'}\$PATH - exec ${php80}/bin/php $out/libexec/arcanist/bin/arc "\$@" + export PATH=${lib.makeBinPath [ python3 php81 which]}''${PATH:+':'}\$PATH + exec ${php81}/bin/php $out/libexec/arcanist/bin/arc "\$@" WRAPPER chmod +x $out/bin/arc diff --git a/nix/dev-shell.nix b/nix/dev-shell.nix --- a/nix/dev-shell.nix +++ b/nix/dev-shell.nix @@ -18,6 +18,7 @@ , emscripten , folly , fmt +, git , glog , grpc , jq @@ -53,6 +54,7 @@ # programs which are meant to be executed should go here nativeBuildInputs = [ # generic development or tools + git arcanist awscli2 jq @@ -111,14 +113,9 @@ olm # needed for CryptoTools sqlite # needed for sqlite database openssl # needed for grpc - ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ - CoreFoundation - CoreServices - Security - # required until https://github.com/seanmonstar/reqwest/issues/2006 is resolved - SystemConfiguration + ] ++ lib.optionals stdenv.isDarwin [ libiconv # identity service - ]); + ]; JAVA_HOME = openjdk11.passthru.home;