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 107e5cde107b..90d1d190689d 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 @@ -812,6 +812,28 @@ + + + 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. 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 diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md index bccbfe33374d..7dac0c682ca8 100644 --- a/nixos/doc/manual/release-notes/rl-2211.section.md +++ b/nixos/doc/manual/release-notes/rl-2211.section.md @@ -255,6 +255,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. 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"`. - The `paperless` module now defaults `PAPERLESS_TIME_ZONE` to your configured system timezone. diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index d9f1892beca9..afb84fe70e32 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -1,68 +1,81 @@ -{ stdenv, lib, fetchFromGitHub, openssl, zlib, cmake, python2, perl, snappy, lzo, which, catch2, catch }: +{ + # 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 +, openssl +, zlib +, cmake +, python3 +, perl +, snappy +, lzo +, which +, targetArchitecture ? null +, asmOptimizations ? gcc10Stdenv.targetPlatform.isx86 +}: let - common = { version, sha256 }: stdenv.mkDerivation { - pname = "arangodb"; - inherit version; + defaultTargetArchitecture = + if gcc10Stdenv.targetPlatform.isx86 + then "haswell" + else "core"; - src = fetchFromGitHub { - repo = "arangodb"; - owner = "arangodb"; - rev = "v${version}"; - inherit sha256; - }; + targetArch = + if isNull targetArchitecture + then defaultTargetArchitecture + else targetArchitecture; +in - nativeBuildInputs = [ cmake python2 perl which ]; - buildInputs = [ openssl zlib snappy lzo ]; +gcc10Stdenv.mkDerivation rec { + pname = "arangodb"; + version = "3.10.0"; - # 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 = '' - 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 = [ - # 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"}" - ]; - - 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 ]; - }; + src = fetchFromGitHub { + repo = "arangodb"; + owner = "arangodb"; + rev = "v${version}"; + sha256 = "0vjdiarfnvpfl4hnqgr7jigxgq3b3zhx88n8liv1zqa1nlvykfrb"; + fetchSubmodules = true; }; -in { - arangodb_3_3 = common { - version = "3.3.24"; - sha256 = "18175789j4y586qvpcsaqxmw7d6vc3s29qm1fja5c7wzimx6ilyp"; - }; - arangodb_3_4 = common { - version = "3.4.8"; - sha256 = "0vm94lf1i1vvs04vy68bkkv9q43rsaf1y3kfs6s3jcrs3ay0h0jn"; - }; - arangodb_3_5 = common { - version = "3.5.1"; - sha256 = "1jw3j7vaq3xgkxiqg0bafn4b2169jq7f3y0l7mrpnrpijn77rkrv"; + + nativeBuildInputs = [ cmake git 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();" "" + ''; + + cmakeFlags = [ + "-DUSE_MAINTAINER_MODE=OFF" + "-DUSE_GOOGLE_TESTS=OFF" + "-DCMAKE_BUILD_TYPE=RelWithDebInfo" + + # 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; { + 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 = [ "x86_64-linux" ]; + maintainers = [ maintainers.flosse maintainers.jsoo1 ]; }; } diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 0783e9bba8da..17fc7aab8cb7 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 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 60997a7ee6ba..d88cfee6842d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2098,10 +2098,7 @@ 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; + 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; };