depot/third_party/nixpkgs/patches/pr120071.patch

177 lines
5.9 KiB
Diff

From c3bd75c75255c993fb1ec61c590a23ac31169744 Mon Sep 17 00:00:00 2001
From: Johan Thomsen <jth@dbc.dk>
Date: Wed, 21 Apr 2021 10:02:36 +0200
Subject: [PATCH 1/2] ceph: 15.2.10 -> 16.2.1
---
pkgs/tools/filesystems/ceph/default.nix | 23 +++++++++++++++++++----
pkgs/top-level/all-packages.nix | 3 ++-
2 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index e923bb6132ecd..d13d4915e1eb3 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -1,5 +1,4 @@
{ lib, stdenv, runCommand, fetchurl
-, fetchpatch
, ensureNewerSourcesHook
, cmake, pkg-config
, which, git
@@ -14,6 +13,15 @@
, libnl, libcap_ng
, rdkafka
, nixosTests
+, cryptsetup
+, sqlite
+, lua
+, icu
+, bzip2
+, doxygen
+, graphviz
+, fmt
+, python3
# Optional Dependencies
, yasm ? null, fcgi ? null, expat ? null
@@ -123,10 +131,10 @@ let
]);
sitePackages = ceph-python-env.python.sitePackages;
- version = "15.2.10";
+ version = "16.2.1";
src = fetchurl {
url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
- sha256 = "1xfijynfb56gydpwh6h4q781xymwxih6nx26idnkcjqih48nsn01";
+ sha256 = "1qqvfhnc94vfrq1ddizf6habjlcp77abry4v18zlq6rnhwr99zrh";
};
in rec {
ceph = stdenv.mkDerivation {
@@ -142,12 +150,18 @@ in rec {
pkg-config which git python3Packages.wrapPython makeWrapper
python3Packages.python # for the toPythonPath function
(ensureNewerSourcesHook { year = "1980"; })
+ python3
+ fmt
+ # for building docs/man-pages presumably
+ doxygen
+ graphviz
];
buildInputs = cryptoLibsMap.${cryptoStr} ++ [
boost ceph-python-env libxml2 optYasm optLibatomic_ops optLibs3
malloc zlib openldap lttng-ust babeltrace gperf gtest cunit
snappy lz4 oathToolkit leveldb libnl libcap_ng rdkafka
+ cryptsetup sqlite lua icu bzip2
] ++ lib.optionals stdenv.isLinux [
linuxHeaders util-linux libuuid udev keyutils optLibaio optLibxfs optZfs
# ceph 14
@@ -171,7 +185,6 @@ in rec {
'';
cmakeFlags = [
- "-DWITH_PYTHON3=ON"
"-DWITH_SYSTEM_ROCKSDB=OFF" # breaks Bluestore
"-DCMAKE_INSTALL_DATADIR=${placeholder "lib"}/lib"
@@ -182,6 +195,8 @@ in rec {
"-DWITH_TESTS=OFF"
# TODO breaks with sandbox, tries to download stuff with npm
"-DWITH_MGR_DASHBOARD_FRONTEND=OFF"
+ # WITH_XFS has been set default ON from Ceph 16, keeping it optional in nixpkgs for now
+ ''-DWITH_XFS=${if optLibxfs != null then "ON" else "OFF"}''
];
postFixup = ''
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 71a063a4393fc..e825afd6691e4 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3313,7 +3313,8 @@ in
libceph = ceph.lib;
inherit (callPackages ../tools/filesystems/ceph {
- boost = boost172.override { enablePython = true; python = python38; };
+ boost = boost17x.override { enablePython = true; python = python3; };
+ lua = lua5_4;
})
ceph
ceph-client;
From 8a6e130c71ed25f4eae8eadd62ef48450ccf8750 Mon Sep 17 00:00:00 2001
From: Johan Thomsen <jth@dbc.dk>
Date: Wed, 21 Apr 2021 16:19:00 +0200
Subject: [PATCH 2/2] nixos/ceph: fix tests
- 512 -> 1024MB vm memory (had sporadic oom-failures with the lower setting)
- set "auth_allow_insecure_global_id_reclaim=false" as described here: https://docs.ceph.com/en/latest/security/CVE-2021-20288/
---
nixos/tests/ceph-multi-node.nix | 3 ++-
nixos/tests/ceph-single-node-bluestore.nix | 3 ++-
nixos/tests/ceph-single-node.nix | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/nixos/tests/ceph-multi-node.nix b/nixos/tests/ceph-multi-node.nix
index 4e6d644f96c8a..33736e27b984d 100644
--- a/nixos/tests/ceph-multi-node.nix
+++ b/nixos/tests/ceph-multi-node.nix
@@ -37,7 +37,7 @@ let
generateHost = { pkgs, cephConfig, networkConfig, ... }: {
virtualisation = {
- memorySize = 512;
+ memorySize = 1024;
emptyDiskImages = [ 20480 ];
vlans = [ 1 ];
};
@@ -120,6 +120,7 @@ let
)
monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
monA.succeed("ceph mon enable-msgr2")
+ monA.succeed("ceph config set mon auth_allow_insecure_global_id_reclaim false")
# Can't check ceph status until a mon is up
monA.succeed("ceph -s | grep 'mon: 1 daemons'")
diff --git a/nixos/tests/ceph-single-node-bluestore.nix b/nixos/tests/ceph-single-node-bluestore.nix
index cc873e8aee576..f706d4d56fcfd 100644
--- a/nixos/tests/ceph-single-node-bluestore.nix
+++ b/nixos/tests/ceph-single-node-bluestore.nix
@@ -34,7 +34,7 @@ let
generateHost = { pkgs, cephConfig, networkConfig, ... }: {
virtualisation = {
- memorySize = 512;
+ memorySize = 1024;
emptyDiskImages = [ 20480 20480 20480 ];
vlans = [ 1 ];
};
@@ -95,6 +95,7 @@ let
)
monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
monA.succeed("ceph mon enable-msgr2")
+ monA.succeed("ceph config set mon auth_allow_insecure_global_id_reclaim false")
# Can't check ceph status until a mon is up
monA.succeed("ceph -s | grep 'mon: 1 daemons'")
diff --git a/nixos/tests/ceph-single-node.nix b/nixos/tests/ceph-single-node.nix
index 19919371a3ca7..d1d56ea6708cc 100644
--- a/nixos/tests/ceph-single-node.nix
+++ b/nixos/tests/ceph-single-node.nix
@@ -34,7 +34,7 @@ let
generateHost = { pkgs, cephConfig, networkConfig, ... }: {
virtualisation = {
- memorySize = 512;
+ memorySize = 1024;
emptyDiskImages = [ 20480 20480 20480 ];
vlans = [ 1 ];
};
@@ -95,6 +95,7 @@ let
)
monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
monA.succeed("ceph mon enable-msgr2")
+ monA.succeed("ceph config set mon auth_allow_insecure_global_id_reclaim false")
# Can't check ceph status until a mon is up
monA.succeed("ceph -s | grep 'mon: 1 daemons'")