Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6be6c33
arangodb_3_9: init at 3.9.3
jsoo1 Oct 5, 2022
d58d66e
arangodb: 3.4.8 -> 3.9.3
jsoo1 Oct 5, 2022
db418cf
arangodb/default.nix: format with nixpkgs-fmt
jsoo1 Oct 5, 2022
45dd4a1
arangodb_3_x: remove unsupported versions
jsoo1 Oct 5, 2022
e1df4f5
arangodb: use gcc 10 (supported version)
jsoo1 Oct 5, 2022
0da384e
arangodb: remove enableParallelBuilding
jsoo1 Oct 6, 2022
a6ffb2d
arangodb: drop boost patch
jsoo1 Oct 6, 2022
6c75f96
arangodb: 3.9.3 -> 3.10.0
jsoo1 Oct 6, 2022
86e1247
arangodb: note removal of old versions in rl-2211 notes
jsoo1 Oct 6, 2022
c3bfecd
arangodb: disable "maintainer mode"
jsoo1 Oct 6, 2022
cd06546
aliases.nix: add `throws` for arangodb_3_{3,4,5}
jsoo1 Oct 8, 2022
9f1e7c2
arangodb: annotate gcc10Stdenv reasoning
jsoo1 Oct 12, 2022
704d2dc
arangodb: stdenvGcc10->stdenv since gcc 11+ is suggested
jsoo1 Oct 25, 2022
b671f4f
arangodb: remove unused cmake flags
jsoo1 Oct 27, 2022
56eecda
arangodb: stdenv->gcc10Stdenv to compile
jsoo1 Oct 27, 2022
2f6e24b
arangodb: additional cmake flags for releases
jsoo1 Oct 27, 2022
10fda11
arangodb: avoid reading /proc/cpuinfo during build
jsoo1 Oct 27, 2022
6cb592a
arangodb: capitalize cmake flag
jsoo1 Oct 27, 2022
1e17110
arangodb: annotate reasoning for gcc 11->10 downgrade
jsoo1 Oct 27, 2022
b594ac0
arangodb: parameterize target architecture
jsoo1 Oct 27, 2022
f5bab1e
arangodb: no warning when defaulting target arch
jsoo1 Oct 30, 2022
ad424ad
arangodb: parameterize whether to enable asm optimizations
jsoo1 Oct 30, 2022
8e36431
arangodb: remove aarch64 support
jsoo1 Oct 31, 2022
f258503
arangodb: document new parameters and aarch64-linux drop
jsoo1 Oct 31, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
Original file line number Diff line number Diff line change
Expand Up @@ -746,6 +746,28 @@
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
<literal>arangodb</literal> 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
<literal>arangodb</literal> is now built for the
<literal>haswell</literal> architecture. If you wish to build
for a different architecture, you may override the
<literal>targetArchitecture</literal> argument with a value
from
<link xlink:href="https://github.com/arangodb/arangodb/blob/207ec6937e41a46e10aea34953879341f0606841/cmake/OptimizeForArchitecture.cmake#L594">this
list supported upstream</link>. Some architecture specific
optimizations are also conditionally enabled. You may alter
this behavior by overriding the
<literal>asmOptimizations</literal> parameter. You may also
add additional architecture support by adding more
<literal>-DHAS_XYZ</literal> flags to
<literal>cmakeFlags</literal> via
<literal>overrideAttrs</literal>.
</para>
</listitem>
<listitem>
<para>
The <literal>meta.mainProgram</literal> attribute of packages
Expand Down
2 changes: 2 additions & 0 deletions nixos/doc/manual/release-notes/rl-2211.section.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,8 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
* `systemd.network.networks.<name>.dhcpV6Config` no longer accepts the `ForceDHCPv6PDOtherInformation=` setting. Please use the `WithoutRA=` and `UseDelegatedPrefix=` settings in your `systemd.network.networks.<name>.dhcpV6Config` and the `DHCPv6Client=` setting in your `systemd.network.networks.<name>.ipv6AcceptRAConfig` to control when the DHCPv6 client is started and how the delegated prefixes are handled by the DHCPv6 client.
* `systemd.network.networks.<name>.networkConfig` no longer accepts the `IPv6Token=` setting. Use the `Token=` setting in your `systemd.network.networks.<name>.ipv6AcceptRAConfig` instead. The `systemd.network.networks.<name>.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.
Expand Down
125 changes: 69 additions & 56 deletions pkgs/servers/nosql/arangodb/default.nix
Original file line number Diff line number Diff line change
@@ -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";
src = fetchFromGitHub {
repo = "arangodb";
owner = "arangodb";
rev = "v${version}";
sha256 = "0vjdiarfnvpfl4hnqgr7jigxgq3b3zhx88n8liv1zqa1nlvykfrb";
fetchSubmodules = true;
};

postPatch = ''
sed -ie 's!/bin/echo!echo!' 3rdParty/V8/v*/gypfiles/*.gypi
nativeBuildInputs = [ cmake git perl python3 which ];

# 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();" ""
buildInputs = [ openssl zlib snappy lzo ];

${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})
''}
'';
# 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";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should really be a multiline string.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! #200210


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"}"
];
postPatch = ''
sed -ie 's!/bin/echo!echo!' 3rdParty/V8/gypfiles/*.gypi

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 ];
};
};
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";
# 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 ];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
maintainers = [ maintainers.flosse maintainers.jsoo1 ];
maintainers = with maintainers; [ flosse jsoo1 ];

};
}
3 changes: 3 additions & 0 deletions pkgs/top-level/aliases.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 1 addition & 4 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2088,10 +2088,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; };
Expand Down