From 6be6c336ba49417f3ea99af4e5b947066c085335 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 5 Oct 2022 14:52:58 -0700 Subject: [PATCH 01/24] arangodb_3_9: init at 3.9.3 --- pkgs/servers/nosql/arangodb/default.nix | 33 +++++++++++++++++++------ 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index d9f1892beca9..ee94d8f32ee3 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -1,7 +1,7 @@ -{ stdenv, lib, fetchFromGitHub, openssl, zlib, cmake, python2, perl, snappy, lzo, which, catch2, catch }: +{ stdenv, lib, fetchFromGitHub, openssl, zlib, cmake, python2, python3, perl, snappy, lzo, which, catch2, catch }: let - common = { version, sha256 }: stdenv.mkDerivation { + common = { stdenv, version, sha256 }: stdenv.mkDerivation { pname = "arangodb"; inherit version; @@ -12,7 +12,13 @@ let inherit sha256; }; - nativeBuildInputs = [ cmake python2 perl which ]; + nativeBuildInputs = [ + cmake + perl + (if lib.versionAtLeast version "3.9" then python3 else python2) + which + ]; + buildInputs = [ openssl zlib snappy lzo ]; # prevent failing with "cmake-3.13.4/nix-support/setup-hook: line 10: ./3rdParty/rocksdb/RocksDBConfig.cmake.in: No such file or directory" @@ -21,7 +27,9 @@ let preConfigure = lib.optionalString (lib.versionAtLeast version "3.5") "patchShebangs utils"; postPatch = '' - sed -ie 's!/bin/echo!echo!' 3rdParty/V8/v*/gypfiles/*.gypi + ${if lib.versionAtLeast version "3.9" + then "sed -ie 's!/bin/echo!echo!' 3rdParty/V8/gypfiles/*.gypi" + else "sed -ie 's!/bin/echo!echo!' 3rdParty/V8/v*/gypfiles/*.gypi"} # with nixpkgs, it has no sense to check for a version update substituteInPlace js/client/client.js --replace "require('@arangodb').checkAvailableVersions();" "" @@ -37,32 +45,41 @@ let ''; cmakeFlags = [ - # do not set GCC's -march=xxx based on builder's /proc/cpuinfo - "-DUSE_OPTIMIZE_FOR_ARCHITECTURE=OFF" # also avoid using builder's /proc/cpuinfo "-DHAVE_SSE42=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" "-DASM_OPTIMIZATIONS=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" - ]; + ] + # do not set GCC's -march=xxx based on builder's /proc/cpuinfo + # (removed in cc860c333c7f0c1aed9a2179e3e8b926d92b6df4) + ++ lib.optional (!lib.versionAtLeast version "3.9") "-DUSE_OPTIMIZE_FOR_ARCHITECTURE=OFF"; meta = with lib; { homepage = "https://www.arangodb.com"; description = "A native multi-model database with flexible data models for documents, graphs, and key-values"; license = licenses.asl20; platforms = platforms.linux; - maintainers = [ maintainers.flosse ]; + maintainers = [ maintainers.flosse maintainers.jsoo1 ]; }; }; in { arangodb_3_3 = common { + stdenv = gcc8Stdenv; version = "3.3.24"; sha256 = "18175789j4y586qvpcsaqxmw7d6vc3s29qm1fja5c7wzimx6ilyp"; }; arangodb_3_4 = common { + stdenv = gcc8Stdenv; version = "3.4.8"; sha256 = "0vm94lf1i1vvs04vy68bkkv9q43rsaf1y3kfs6s3jcrs3ay0h0jn"; }; arangodb_3_5 = common { + inherit stdenv; version = "3.5.1"; sha256 = "1jw3j7vaq3xgkxiqg0bafn4b2169jq7f3y0l7mrpnrpijn77rkrv"; }; + arangodb_3_9 = common { + inherit stdenv; + version = "3.9.3"; + sha256 = "078bs8m045ym0ka0n3n1wvzr8gri09bcs574kdzy8z3rrngvp82m"; + }; } From d58d66e466d1f8b37d239bbc65f908c15c4e3820 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 5 Oct 2022 14:53:17 -0700 Subject: [PATCH 02/24] arangodb: 3.4.8 -> 3.9.3 --- pkgs/top-level/all-packages.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e378702ab94f..09711e173603 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2088,10 +2088,9 @@ with pkgs; arandr = callPackage ../tools/X11/arandr { }; - inherit (callPackages ../servers/nosql/arangodb { - stdenv = gcc8Stdenv; - }) arangodb_3_3 arangodb_3_4 arangodb_3_5; - arangodb = arangodb_3_4; + inherit (callPackages ../servers/nosql/arangodb { }) + arangodb_3_3 arangodb_3_4 arangodb_3_5 arangodb_3_9; + arangodb = arangodb_3_9; # arcanist currently crashes with some workflows on php8.1, use 8.0 arcanist = callPackage ../development/tools/misc/arcanist { php = php80; }; From db418cf3d1f11921fdf58568aece49803ad498a4 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 5 Oct 2022 10:04:04 -0700 Subject: [PATCH 03/24] arangodb/default.nix: format with nixpkgs-fmt --- pkgs/servers/nosql/arangodb/default.nix | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index ee94d8f32ee3..2a294a912c17 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -1,4 +1,19 @@ -{ stdenv, lib, fetchFromGitHub, openssl, zlib, cmake, python2, python3, perl, snappy, lzo, which, catch2, catch }: +{ stdenv +, gcc8Stdenv +, lib +, fetchFromGitHub +, openssl +, zlib +, cmake +, python2 +, python3 +, perl +, snappy +, lzo +, which +, catch +, catch2 +}: let common = { stdenv, version, sha256 }: stdenv.mkDerivation { @@ -22,9 +37,9 @@ let buildInputs = [ openssl zlib snappy lzo ]; # prevent failing with "cmake-3.13.4/nix-support/setup-hook: line 10: ./3rdParty/rocksdb/RocksDBConfig.cmake.in: No such file or directory" - dontFixCmake = lib.versionAtLeast version "3.5"; + dontFixCmake = lib.versionAtLeast version "3.5"; NIX_CFLAGS_COMPILE = lib.optionalString (lib.versionAtLeast version "3.5") "-Wno-error"; - preConfigure = lib.optionalString (lib.versionAtLeast version "3.5") "patchShebangs utils"; + preConfigure = lib.optionalString (lib.versionAtLeast version "3.5") "patchShebangs utils"; postPatch = '' ${if lib.versionAtLeast version "3.9" @@ -61,7 +76,8 @@ let maintainers = [ maintainers.flosse maintainers.jsoo1 ]; }; }; -in { +in +{ arangodb_3_3 = common { stdenv = gcc8Stdenv; version = "3.3.24"; From 45dd4a163346fbb927063a8050e84e2bad0da716 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 5 Oct 2022 15:05:42 -0700 Subject: [PATCH 04/24] arangodb_3_x: remove unsupported versions 3.{3,4,5} all reached EOL --- pkgs/servers/nosql/arangodb/default.nix | 126 ++++++++---------------- pkgs/top-level/all-packages.nix | 4 +- 2 files changed, 43 insertions(+), 87 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 2a294a912c17..3aae740c236e 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -1,101 +1,59 @@ { stdenv -, gcc8Stdenv , lib , fetchFromGitHub , openssl , zlib , cmake -, python2 , python3 , perl , snappy , lzo , which -, catch -, catch2 }: -let - common = { stdenv, version, sha256 }: stdenv.mkDerivation { - pname = "arangodb"; - inherit version; +stdenv.mkDerivation rec { + pname = "arangodb"; + version = "3.9.3"; - src = fetchFromGitHub { - repo = "arangodb"; - owner = "arangodb"; - rev = "v${version}"; - inherit sha256; - }; - - nativeBuildInputs = [ - cmake - perl - (if lib.versionAtLeast version "3.9" then python3 else python2) - which - ]; - - buildInputs = [ openssl zlib snappy lzo ]; - - # prevent failing with "cmake-3.13.4/nix-support/setup-hook: line 10: ./3rdParty/rocksdb/RocksDBConfig.cmake.in: No such file or directory" - dontFixCmake = lib.versionAtLeast version "3.5"; - NIX_CFLAGS_COMPILE = lib.optionalString (lib.versionAtLeast version "3.5") "-Wno-error"; - preConfigure = lib.optionalString (lib.versionAtLeast version "3.5") "patchShebangs utils"; - - postPatch = '' - ${if lib.versionAtLeast version "3.9" - then "sed -ie 's!/bin/echo!echo!' 3rdParty/V8/gypfiles/*.gypi" - else "sed -ie 's!/bin/echo!echo!' 3rdParty/V8/v*/gypfiles/*.gypi"} - - # with nixpkgs, it has no sense to check for a version update - substituteInPlace js/client/client.js --replace "require('@arangodb').checkAvailableVersions();" "" - substituteInPlace js/server/server.js --replace "require('@arangodb').checkAvailableVersions();" "" - - ${if (lib.versionOlder version "3.4") then '' - cp ${catch}/include/catch/catch.hpp 3rdParty/catch/catch.hpp - '' else if (lib.versionOlder version "3.5") then '' - cp ${catch2}/include/catch2/catch.hpp 3rdParty/catch/catch.hpp - '' else '' - (cd 3rdParty/boost/1.69.0 && patch -p1 < ${../../../development/libraries/boost/pthread-stack-min-fix.patch}) - ''} - ''; - - cmakeFlags = [ - # also avoid using builder's /proc/cpuinfo - "-DHAVE_SSE42=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" - "-DASM_OPTIMIZATIONS=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" - ] - # do not set GCC's -march=xxx based on builder's /proc/cpuinfo - # (removed in cc860c333c7f0c1aed9a2179e3e8b926d92b6df4) - ++ lib.optional (!lib.versionAtLeast version "3.9") "-DUSE_OPTIMIZE_FOR_ARCHITECTURE=OFF"; - - meta = with lib; { - homepage = "https://www.arangodb.com"; - description = "A native multi-model database with flexible data models for documents, graphs, and key-values"; - license = licenses.asl20; - platforms = platforms.linux; - maintainers = [ maintainers.flosse maintainers.jsoo1 ]; - }; - }; -in -{ - arangodb_3_3 = common { - stdenv = gcc8Stdenv; - version = "3.3.24"; - sha256 = "18175789j4y586qvpcsaqxmw7d6vc3s29qm1fja5c7wzimx6ilyp"; - }; - arangodb_3_4 = common { - stdenv = gcc8Stdenv; - version = "3.4.8"; - sha256 = "0vm94lf1i1vvs04vy68bkkv9q43rsaf1y3kfs6s3jcrs3ay0h0jn"; - }; - arangodb_3_5 = common { - inherit stdenv; - version = "3.5.1"; - sha256 = "1jw3j7vaq3xgkxiqg0bafn4b2169jq7f3y0l7mrpnrpijn77rkrv"; - }; - arangodb_3_9 = common { - inherit stdenv; - version = "3.9.3"; + src = fetchFromGitHub { + repo = "arangodb"; + owner = "arangodb"; + rev = "v${version}"; sha256 = "078bs8m045ym0ka0n3n1wvzr8gri09bcs574kdzy8z3rrngvp82m"; }; + + nativeBuildInputs = [ cmake perl python3 which ]; + + buildInputs = [ openssl zlib snappy lzo ]; + + # prevent failing with "cmake-3.13.4/nix-support/setup-hook: line 10: ./3rdParty/rocksdb/RocksDBConfig.cmake.in: No such file or directory" + dontFixCmake = true; + NIX_CFLAGS_COMPILE = "-Wno-error"; + preConfigure = "patchShebangs utils"; + + postPatch = '' + sed -ie 's!/bin/echo!echo!' 3rdParty/V8/gypfiles/*.gypi + + # with nixpkgs, it has no sense to check for a version update + substituteInPlace js/client/client.js --replace "require('@arangodb').checkAvailableVersions();" "" + substituteInPlace js/server/server.js --replace "require('@arangodb').checkAvailableVersions();" "" + + (cd 3rdParty/boost/1.69.0 && patch -p1 < ${../../../development/libraries/boost/pthread-stack-min-fix.patch}) + ''; + + cmakeFlags = [ + # avoid using builder's /proc/cpuinfo + "-DHAVE_SSE42=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" + "-DASM_OPTIMIZATIONS=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" + ]; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://www.arangodb.com"; + description = "A native multi-model database with flexible data models for documents, graphs, and key-values"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = [ maintainers.flosse maintainers.jsoo1 ]; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 09711e173603..6ca1d18a20ad 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2088,9 +2088,7 @@ with pkgs; arandr = callPackage ../tools/X11/arandr { }; - inherit (callPackages ../servers/nosql/arangodb { }) - arangodb_3_3 arangodb_3_4 arangodb_3_5 arangodb_3_9; - arangodb = arangodb_3_9; + arangodb = callPackage ../servers/nosql/arangodb { }; # arcanist currently crashes with some workflows on php8.1, use 8.0 arcanist = callPackage ../development/tools/misc/arcanist { php = php80; }; From e1df4f5f210a08e4e1df3a43765d993cfb331fe2 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 5 Oct 2022 16:17:20 -0700 Subject: [PATCH 05/24] arangodb: use gcc 10 (supported version) --- pkgs/servers/nosql/arangodb/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 3aae740c236e..4b253624a238 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ gcc10Stdenv , lib , fetchFromGitHub , openssl @@ -11,7 +11,7 @@ , which }: -stdenv.mkDerivation rec { +gcc10Stdenv.mkDerivation rec { pname = "arangodb"; version = "3.9.3"; @@ -43,8 +43,8 @@ stdenv.mkDerivation rec { cmakeFlags = [ # avoid using builder's /proc/cpuinfo - "-DHAVE_SSE42=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" - "-DASM_OPTIMIZATIONS=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" + "-DHAVE_SSE42=${if gcc10Stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" + "-DASM_OPTIMIZATIONS=${if gcc10Stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" ]; enableParallelBuilding = true; From 0da384e7aca3697b7049aaa00b751d8c8c055da9 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 5 Oct 2022 17:00:37 -0700 Subject: [PATCH 06/24] arangodb: remove enableParallelBuilding It is unused. --- pkgs/servers/nosql/arangodb/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 4b253624a238..3d8aed017ed3 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -47,8 +47,6 @@ gcc10Stdenv.mkDerivation rec { "-DASM_OPTIMIZATIONS=${if gcc10Stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" ]; - enableParallelBuilding = true; - meta = with lib; { homepage = "https://www.arangodb.com"; description = "A native multi-model database with flexible data models for documents, graphs, and key-values"; From a6ffb2d9cb46dbb2f051767b3baa765cf5eeb8d2 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 5 Oct 2022 17:10:29 -0700 Subject: [PATCH 07/24] arangodb: drop boost patch It fails to apply --- pkgs/servers/nosql/arangodb/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 3d8aed017ed3..d59af74897e2 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -37,8 +37,6 @@ gcc10Stdenv.mkDerivation rec { # with nixpkgs, it has no sense to check for a version update substituteInPlace js/client/client.js --replace "require('@arangodb').checkAvailableVersions();" "" substituteInPlace js/server/server.js --replace "require('@arangodb').checkAvailableVersions();" "" - - (cd 3rdParty/boost/1.69.0 && patch -p1 < ${../../../development/libraries/boost/pthread-stack-min-fix.patch}) ''; cmakeFlags = [ From 6c75f9621db94bee9ccebbe72102f8c6ad8d0a36 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 5 Oct 2022 17:51:15 -0700 Subject: [PATCH 08/24] arangodb: 3.9.3 -> 3.10.0 --- pkgs/servers/nosql/arangodb/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index d59af74897e2..303a2fddd21d 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -1,4 +1,5 @@ { gcc10Stdenv +, git , lib , fetchFromGitHub , openssl @@ -13,16 +14,17 @@ gcc10Stdenv.mkDerivation rec { pname = "arangodb"; - version = "3.9.3"; + version = "3.10.0"; src = fetchFromGitHub { repo = "arangodb"; owner = "arangodb"; rev = "v${version}"; - sha256 = "078bs8m045ym0ka0n3n1wvzr8gri09bcs574kdzy8z3rrngvp82m"; + sha256 = "0vjdiarfnvpfl4hnqgr7jigxgq3b3zhx88n8liv1zqa1nlvykfrb"; + fetchSubmodules = true; }; - nativeBuildInputs = [ cmake perl python3 which ]; + nativeBuildInputs = [ cmake git perl python3 which ]; buildInputs = [ openssl zlib snappy lzo ]; From 86e1247a47faf84a87c308050d6455db60c9f735 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 5 Oct 2022 17:59:15 -0700 Subject: [PATCH 09/24] arangodb: note removal of old versions in rl-2211 notes --- nixos/doc/manual/from_md/release-notes/rl-2211.section.xml | 7 +++++++ nixos/doc/manual/release-notes/rl-2211.section.md | 2 ++ 2 files changed, 9 insertions(+) diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml index 1eff64df933b..ac8d59e76267 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml @@ -746,6 +746,13 @@ + + + arangodb versions 3.3, 3.4, and 3.5 have + been removed because they are at EOL upstream. The default is + now 3.10.0. + + The meta.mainProgram attribute of packages diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md index a71a1c23c037..3b13c7b8c486 100644 --- a/nixos/doc/manual/release-notes/rl-2211.section.md +++ b/nixos/doc/manual/release-notes/rl-2211.section.md @@ -236,6 +236,8 @@ Available as [services.patroni](options.html#opt-services.patroni.enable). * `systemd.network.networks..dhcpV6Config` no longer accepts the `ForceDHCPv6PDOtherInformation=` setting. Please use the `WithoutRA=` and `UseDelegatedPrefix=` settings in your `systemd.network.networks..dhcpV6Config` and the `DHCPv6Client=` setting in your `systemd.network.networks..ipv6AcceptRAConfig` to control when the DHCPv6 client is started and how the delegated prefixes are handled by the DHCPv6 client. * `systemd.network.networks..networkConfig` no longer accepts the `IPv6Token=` setting. Use the `Token=` setting in your `systemd.network.networks..ipv6AcceptRAConfig` instead. The `systemd.network.networks..ipv6Prefixes.*.ipv6PrefixConfig` now also accepts the `Token=` setting. +- `arangodb` versions 3.3, 3.4, and 3.5 have been removed because they are at EOL upstream. The default is now 3.10.0. + - The `meta.mainProgram` attribute of packages in `wineWowPackages` now defaults to `"wine64"`. - The `paperless` module now defaults `PAPERLESS_TIME_ZONE` to your configured system timezone. From c3bfecd161463fca58c8f7beb14eabd5d833c158 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 5 Oct 2022 21:35:05 -0700 Subject: [PATCH 10/24] arangodb: disable "maintainer mode" --- pkgs/servers/nosql/arangodb/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 303a2fddd21d..a56da1932a3e 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -42,6 +42,9 @@ gcc10Stdenv.mkDerivation rec { ''; cmakeFlags = [ + # disable "maintainer mode" + "-DUSE_MAINTAINER_MODE=OFF" + # avoid using builder's /proc/cpuinfo "-DHAVE_SSE42=${if gcc10Stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" "-DASM_OPTIMIZATIONS=${if gcc10Stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" From cd06546e4e8ce307f60ef67e77d72da6029783c8 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sat, 8 Oct 2022 06:56:47 -0700 Subject: [PATCH 11/24] aliases.nix: add `throws` for arangodb_3_{3,4,5} Which were EOL long ago. --- pkgs/top-level/aliases.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index ac16901e15bd..85caeb4659b8 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -83,6 +83,9 @@ mapAliases ({ antimicro = throw "antimicro has been removed as it was broken, see antimicrox instead"; # Added 2020-08-06 antimicroX = antimicrox; # Added 2021-10-31 apple-music-electron = throw "'apple-music-electron' is end of life and has been removed, you can use 'cider' instead"; # Added 2022-10-02 + arangodb_3_3 = throw "arangodb_3_3 went end of life and has been removed"; # Added 2022-10-08 + arangodb_3_4 = throw "arangodb_3_4 went end of life and has been removed"; # Added 2022-10-08 + arangodb_3_5 = throw "arangodb_3_5 went end of life and has been removed"; # Added 2022-10-08 ardour_5 = throw "ardour_5 has been removed. see https://github.com/NixOS/nixpkgs/issues/139549"; # Added 2021-09-28 arduino_core = throw "'arduino_core' has been renamed to/replaced by 'arduino-core'"; # Converted to throw 2022-02-22 arora = throw "arora has been removed"; # Added 2020-09-09 From 9f1e7c2f69eccffbbeb0acdc13d84e8c844e0025 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 12 Oct 2022 13:42:51 -0700 Subject: [PATCH 12/24] arangodb: annotate gcc10Stdenv reasoning Co-authored-by: Robert Scott --- pkgs/servers/nosql/arangodb/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index a56da1932a3e..b4c5cda19594 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -12,6 +12,8 @@ , which }: +# Arango 3.10.0 officially only supports gcc11+, but seems to compile +# with 10 gcc10Stdenv.mkDerivation rec { pname = "arangodb"; version = "3.10.0"; From 704d2dccb95cb63d8f36f7a97b4e7fd975762691 Mon Sep 17 00:00:00 2001 From: John Soo Date: Tue, 25 Oct 2022 12:02:23 -0700 Subject: [PATCH 13/24] arangodb: stdenvGcc10->stdenv since gcc 11+ is suggested --- pkgs/servers/nosql/arangodb/default.nix | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index b4c5cda19594..e4b67f51fe54 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -1,4 +1,4 @@ -{ gcc10Stdenv +{ stdenv , git , lib , fetchFromGitHub @@ -12,9 +12,7 @@ , which }: -# Arango 3.10.0 officially only supports gcc11+, but seems to compile -# with 10 -gcc10Stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "arangodb"; version = "3.10.0"; @@ -48,8 +46,8 @@ gcc10Stdenv.mkDerivation rec { "-DUSE_MAINTAINER_MODE=OFF" # avoid using builder's /proc/cpuinfo - "-DHAVE_SSE42=${if gcc10Stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" - "-DASM_OPTIMIZATIONS=${if gcc10Stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" + "-DHAVE_SSE42=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" + "-DASM_OPTIMIZATIONS=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" ]; meta = with lib; { From b671f4f09f32918ee830e0e4a721bf19fc1c9db7 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 26 Oct 2022 17:25:23 -0700 Subject: [PATCH 14/24] arangodb: remove unused cmake flags USE_OPTIMIZE_FOR_ARCHITECTURE was removed without commit in a prior commit. This is because it was removed upstream: https://github.com/arangodb/arangodb/commit/cc860c333c7f0c1aed9a2179e3e8b926d92b6df4 This is unfortunate - now /proc/cpuinfo is read unconditionally for feature detection. Some other means of feature detection will have to be found. --- pkgs/servers/nosql/arangodb/default.nix | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index e4b67f51fe54..bd0d56eff979 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -41,14 +41,7 @@ stdenv.mkDerivation rec { substituteInPlace js/server/server.js --replace "require('@arangodb').checkAvailableVersions();" "" ''; - cmakeFlags = [ - # disable "maintainer mode" - "-DUSE_MAINTAINER_MODE=OFF" - - # avoid using builder's /proc/cpuinfo - "-DHAVE_SSE42=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" - "-DASM_OPTIMIZATIONS=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}" - ]; + cmakeFlags = [ "-DUSE_MAINTAINER_MODE=OFF" ]; meta = with lib; { homepage = "https://www.arangodb.com"; From 56eecdae11307e6440709d74001246ff54638dcb Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 26 Oct 2022 17:40:29 -0700 Subject: [PATCH 15/24] arangodb: stdenv->gcc10Stdenv to compile It seems that gcc11 - though reportedly supported - introduced some constraint that arangodb fails to compile with. --- pkgs/servers/nosql/arangodb/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index bd0d56eff979..b83d837721a8 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ gcc10Stdenv , git , lib , fetchFromGitHub @@ -12,7 +12,7 @@ , which }: -stdenv.mkDerivation rec { +gcc10Stdenv.mkDerivation rec { pname = "arangodb"; version = "3.10.0"; From 2f6e24b810aebf1ab37935f76e6aff6f45b771dd Mon Sep 17 00:00:00 2001 From: John Soo Date: Thu, 27 Oct 2022 10:57:45 -0700 Subject: [PATCH 16/24] arangodb: additional cmake flags for releases From https://www.arangodb.com/docs/stable/installation-compiling-debian.html --- pkgs/servers/nosql/arangodb/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index b83d837721a8..789f6d391f7e 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -41,7 +41,11 @@ gcc10Stdenv.mkDerivation rec { substituteInPlace js/server/server.js --replace "require('@arangodb').checkAvailableVersions();" "" ''; - cmakeFlags = [ "-DUSE_MAINTAINER_MODE=OFF" ]; + cmakeFlags = [ + "-DUSE_MAINTAINER_MODE=OFF" + "-DUSE_GOOGLE_TESTS=off" + "-DCMAKE_BUILD_TYPE=RelWithDebInfo" + ]; meta = with lib; { homepage = "https://www.arangodb.com"; From 10fda118ee23265d8bc55a81d7d8c650929b1ec9 Mon Sep 17 00:00:00 2001 From: John Soo Date: Thu, 27 Oct 2022 10:59:58 -0700 Subject: [PATCH 17/24] arangodb: avoid reading /proc/cpuinfo during build Avoid non-deterministic builds of ArangoDB proper. Note that this provides 0 guarantees about the vendored libraries doing anything similar. --- pkgs/servers/nosql/arangodb/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 789f6d391f7e..e6555d31e095 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -45,6 +45,9 @@ gcc10Stdenv.mkDerivation rec { "-DUSE_MAINTAINER_MODE=OFF" "-DUSE_GOOGLE_TESTS=off" "-DCMAKE_BUILD_TYPE=RelWithDebInfo" + + # avoid reading /proc/cpuinfo for feature detection + "-DTARGET_ARCHITECTURE=generic" ]; meta = with lib; { From 6cb592a4f271adc43fb417310487b07d562f2f41 Mon Sep 17 00:00:00 2001 From: John Soo Date: Thu, 27 Oct 2022 11:38:37 -0700 Subject: [PATCH 18/24] arangodb: capitalize cmake flag --- pkgs/servers/nosql/arangodb/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index e6555d31e095..8f1f7bd7acb3 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -43,7 +43,7 @@ gcc10Stdenv.mkDerivation rec { cmakeFlags = [ "-DUSE_MAINTAINER_MODE=OFF" - "-DUSE_GOOGLE_TESTS=off" + "-DUSE_GOOGLE_TESTS=OFF" "-DCMAKE_BUILD_TYPE=RelWithDebInfo" # avoid reading /proc/cpuinfo for feature detection From 1e1711061ec2e9e7ac58505a15a71c11644e4860 Mon Sep 17 00:00:00 2001 From: John Soo Date: Thu, 27 Oct 2022 12:34:53 -0700 Subject: [PATCH 19/24] arangodb: annotate reasoning for gcc 11->10 downgrade --- pkgs/servers/nosql/arangodb/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 8f1f7bd7acb3..7f1c6eb9e4c3 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -1,4 +1,8 @@ -{ gcc10Stdenv +{ + # gcc 11.2 suggested on 3.10.0. + # gcc 11.3.0 unsupported yet, investigate gcc support when upgrading + # See https://github.com/arangodb/arangodb/issues/17454 + gcc10Stdenv , git , lib , fetchFromGitHub From b594ac0d726e58f1d9c4353fbee7af70de646dc5 Mon Sep 17 00:00:00 2001 From: John Soo Date: Thu, 27 Oct 2022 12:38:56 -0700 Subject: [PATCH 20/24] arangodb: parameterize target architecture If -DTARGET_ARCHITECTURE is supplied arango's cmake configuration will not use /proc/cpuinfo for feature detection. However, `generic` and `none` options both fail when building the vendored v8. This workaround provides some defaults, but warns if no override is provided. --- pkgs/servers/nosql/arangodb/default.nix | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 7f1c6eb9e4c3..7db4c434cdf0 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -14,10 +14,30 @@ , snappy , lzo , which +, targetArchitecture ? null }: -gcc10Stdenv.mkDerivation rec { +let pname = "arangodb"; + + default_arch = + if gcc10Stdenv.isx86_64 + then "haswell" + else if gcc10Stdenv.isAarch64 + then "zen" + else "none"; + + target_arch = + if isNull targetArchitecture + then + lib.warn + "${pname} target architecture not specified, choosing ${default_arch}" + default_arch + else targetArchitecture; +in + +gcc10Stdenv.mkDerivation rec { + inherit pname; version = "3.10.0"; src = fetchFromGitHub { @@ -51,7 +71,7 @@ gcc10Stdenv.mkDerivation rec { "-DCMAKE_BUILD_TYPE=RelWithDebInfo" # avoid reading /proc/cpuinfo for feature detection - "-DTARGET_ARCHITECTURE=generic" + "-DTARGET_ARCHITECTURE=${target_arch}" ]; meta = with lib; { From f5bab1e08332366b4c80c5ab5f7d7f5e7d1a8d3e Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 30 Oct 2022 10:16:05 -0700 Subject: [PATCH 21/24] arangodb: no warning when defaulting target arch --- pkgs/servers/nosql/arangodb/default.nix | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 7db4c434cdf0..c4498087da36 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -18,26 +18,19 @@ }: let - pname = "arangodb"; - - default_arch = - if gcc10Stdenv.isx86_64 + defaultTargetArchitecture = + if gcc10Stdenv.targetPlatform.isx86 then "haswell" - else if gcc10Stdenv.isAarch64 - then "zen" - else "none"; + else "core"; - target_arch = + targetArch = if isNull targetArchitecture - then - lib.warn - "${pname} target architecture not specified, choosing ${default_arch}" - default_arch + then defaultTargetArchitecture else targetArchitecture; in gcc10Stdenv.mkDerivation rec { - inherit pname; + pname = "arangodb"; version = "3.10.0"; src = fetchFromGitHub { @@ -71,7 +64,7 @@ gcc10Stdenv.mkDerivation rec { "-DCMAKE_BUILD_TYPE=RelWithDebInfo" # avoid reading /proc/cpuinfo for feature detection - "-DTARGET_ARCHITECTURE=${target_arch}" + "-DTARGET_ARCHITECTURE=${targetArch}" ]; meta = with lib; { From ad424ad8007e7fecba3adfedfdc4f760c9d6951f Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 30 Oct 2022 10:16:38 -0700 Subject: [PATCH 22/24] arangodb: parameterize whether to enable asm optimizations As far as I can tell, this can cause compile failures when building the vendored abseil_cpp if choosing a target arch that does not support sse. This might be possible to determine programmatically, but it is more flexible to let the user decide. --- pkgs/servers/nosql/arangodb/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index c4498087da36..684f1b7a52ce 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -15,6 +15,7 @@ , lzo , which , targetArchitecture ? null +, asmOptimizations ? gcc10Stdenv.targetPlatform.isx86 }: let @@ -65,6 +66,9 @@ gcc10Stdenv.mkDerivation rec { # avoid reading /proc/cpuinfo for feature detection "-DTARGET_ARCHITECTURE=${targetArch}" + ] ++ lib.optionals asmOptimizations [ + "-DASM_OPTIMIZATIONS=ON" + "-DHAVE_SSE42=${if gcc10Stdenv.targetPlatform.sse4_2Support then "ON" else "OFF"}" ]; meta = with lib; { From 8e3643168858aa0d503ee2a4d39fb40eb582e503 Mon Sep 17 00:00:00 2001 From: John Soo Date: Mon, 31 Oct 2022 09:44:36 -0700 Subject: [PATCH 23/24] arangodb: remove aarch64 support For which no reliable default target architecture is provided upstream. --- pkgs/servers/nosql/arangodb/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 684f1b7a52ce..afb84fe70e32 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -75,7 +75,7 @@ gcc10Stdenv.mkDerivation rec { homepage = "https://www.arangodb.com"; description = "A native multi-model database with flexible data models for documents, graphs, and key-values"; license = licenses.asl20; - platforms = platforms.linux; + platforms = [ "x86_64-linux" ]; maintainers = [ maintainers.flosse maintainers.jsoo1 ]; }; } From f2585031bf963706bd33dad0aaa5f58280567533 Mon Sep 17 00:00:00 2001 From: John Soo Date: Mon, 31 Oct 2022 09:53:44 -0700 Subject: [PATCH 24/24] arangodb: document new parameters and aarch64-linux drop --- .../from_md/release-notes/rl-2211.section.xml | 17 ++++++++++++++++- .../doc/manual/release-notes/rl-2211.section.md | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml index ac8d59e76267..7d7e58c8e086 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml @@ -750,7 +750,22 @@ arangodb versions 3.3, 3.4, and 3.5 have been removed because they are at EOL upstream. The default is - now 3.10.0. + now 3.10.0. Support for aarch64-linux has been removed since + the target cannot be built reproducibly. By default + arangodb is now built for the + haswell architecture. If you wish to build + for a different architecture, you may override the + targetArchitecture argument with a value + from + this + list supported upstream. Some architecture specific + optimizations are also conditionally enabled. You may alter + this behavior by overriding the + asmOptimizations parameter. You may also + add additional architecture support by adding more + -DHAS_XYZ flags to + cmakeFlags via + overrideAttrs. diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md index 3b13c7b8c486..33a91741c75b 100644 --- a/nixos/doc/manual/release-notes/rl-2211.section.md +++ b/nixos/doc/manual/release-notes/rl-2211.section.md @@ -236,7 +236,7 @@ Available as [services.patroni](options.html#opt-services.patroni.enable). * `systemd.network.networks..dhcpV6Config` no longer accepts the `ForceDHCPv6PDOtherInformation=` setting. Please use the `WithoutRA=` and `UseDelegatedPrefix=` settings in your `systemd.network.networks..dhcpV6Config` and the `DHCPv6Client=` setting in your `systemd.network.networks..ipv6AcceptRAConfig` to control when the DHCPv6 client is started and how the delegated prefixes are handled by the DHCPv6 client. * `systemd.network.networks..networkConfig` no longer accepts the `IPv6Token=` setting. Use the `Token=` setting in your `systemd.network.networks..ipv6AcceptRAConfig` instead. The `systemd.network.networks..ipv6Prefixes.*.ipv6PrefixConfig` now also accepts the `Token=` setting. -- `arangodb` versions 3.3, 3.4, and 3.5 have been removed because they are at EOL upstream. The default is now 3.10.0. +- `arangodb` versions 3.3, 3.4, and 3.5 have been removed because they are at EOL upstream. The default is now 3.10.0. Support for aarch64-linux has been removed since the target cannot be built reproducibly. By default `arangodb` is now built for the `haswell` architecture. If you wish to build for a different architecture, you may override the `targetArchitecture` argument with a value from [this list supported upstream](https://github.com/arangodb/arangodb/blob/207ec6937e41a46e10aea34953879341f0606841/cmake/OptimizeForArchitecture.cmake#L594). Some architecture specific optimizations are also conditionally enabled. You may alter this behavior by overriding the `asmOptimizations` parameter. You may also add additional architecture support by adding more `-DHAS_XYZ` flags to `cmakeFlags` via `overrideAttrs`. - The `meta.mainProgram` attribute of packages in `wineWowPackages` now defaults to `"wine64"`.