Merge staging-next into staging

Changed files
+552 -110
nixos
doc
manual
from_md
release-notes
release-notes
modules
services
hardware
tests
pkgs
applications
graphics
weylus
misc
cherrytree
networking
flexget
instant-messengers
quaternion
seafile-client
radio
dump1090
desktops
pantheon
apps
elementary-videos
desktop
elementary-default-settings
wingpanel-indicators
development
interpreters
clojure
libraries
arrow-cpp
libquotient
opendkim
python-modules
zstandard
tools
devpi-client
os-specific
linux
error-inject
rasdaemon
vm-tools
tools
misc
top-level
+7
nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
···
<link xlink:href="options.html#opt-services.seafile.enable">services.seafile</link>.
</para>
</listitem>
+
<listitem>
+
<para>
+
<link xlink:href="https://github.com/mchehab/rasdaemon">rasdaemon</link>,
+
a hardware error logging daemon. Available as
+
<link linkend="opt-hardware.rasdaemon.enable">hardware.rasdaemon</link>.
+
</para>
+
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-incompatibilities">
+2
nixos/doc/manual/release-notes/rl-2111.section.md
···
- [seafile](https://www.seafile.com/en/home/), an open source file syncing & sharing software. Available as [services.seafile](options.html#opt-services.seafile.enable).
+
- [rasdaemon](https://github.com/mchehab/rasdaemon), a hardware error logging daemon. Available as [hardware.rasdaemon](#opt-hardware.rasdaemon.enable).
+
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
- The `services.wakeonlan` option was removed, and replaced with `networking.interfaces.<name>.wakeOnLan`.
+1
nixos/modules/module-list.nix
···
./services/hardware/pcscd.nix
./services/hardware/pommed.nix
./services/hardware/power-profiles-daemon.nix
+
./services/hardware/rasdaemon.nix
./services/hardware/ratbagd.nix
./services/hardware/sane.nix
./services/hardware/sane_extra_backends/brscan4.nix
+171
nixos/modules/services/hardware/rasdaemon.nix
···
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let
+
+
cfg = config.hardware.rasdaemon;
+
+
in
+
{
+
options.hardware.rasdaemon = {
+
+
enable = mkEnableOption "RAS logging daemon";
+
+
record = mkOption {
+
type = types.bool;
+
default = true;
+
description = "record events via sqlite3, required for ras-mc-ctl";
+
};
+
+
mainboard = mkOption {
+
type = types.lines;
+
default = "";
+
description = "Custom mainboard description, see <citerefentry><refentrytitle>ras-mc-ctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> for more details.";
+
example = ''
+
vendor = ASRock
+
model = B450M Pro4
+
+
# it should default to such values from
+
# /sys/class/dmi/id/board_[vendor|name]
+
# alternatively one can supply a script
+
# that returns the same format as above
+
+
script = <path to script>
+
'';
+
};
+
+
# TODO, accept `rasdaemon.labels = " ";` or `rasdaemon.labels = { dell = " "; asrock = " "; };'
+
+
labels = mkOption {
+
type = types.lines;
+
default = "";
+
description = "Additional memory module label descriptions to be placed in /etc/ras/dimm_labels.d/labels";
+
example = ''
+
# vendor and model may be shown by 'ras-mc-ctl --mainboard'
+
vendor: ASRock
+
product: To Be Filled By O.E.M.
+
model: B450M Pro4
+
# these labels are names for the motherboard slots
+
# the numbers may be shown by `ras-mc-ctl --error-count`
+
# they are mc:csrow:channel
+
DDR4_A1: 0.2.0; DDR4_B1: 0.2.1;
+
DDR4_A2: 0.3.0; DDR4_B2: 0.3.1;
+
'';
+
};
+
+
config = mkOption {
+
type = types.lines;
+
default = "";
+
description = ''
+
rasdaemon configuration, currently only used for CE PFA
+
for details, read rasdaemon.outPath/etc/sysconfig/rasdaemon's comments
+
'';
+
example = ''
+
# defaults from included config
+
PAGE_CE_REFRESH_CYCLE="24h"
+
PAGE_CE_THRESHOLD="50"
+
PAGE_CE_ACTION="soft"
+
'';
+
};
+
+
extraModules = mkOption {
+
type = types.listOf types.str;
+
default = [];
+
description = "extra kernel modules to load";
+
example = [ "i7core_edac" ];
+
};
+
+
testing = mkEnableOption "error injection infrastructure";
+
};
+
+
config = mkIf cfg.enable {
+
+
environment.etc = {
+
"ras/mainboard" = {
+
enable = cfg.mainboard != "";
+
text = cfg.mainboard;
+
};
+
# TODO, handle multiple cfg.labels.brand = " ";
+
"ras/dimm_labels.d/labels" = {
+
enable = cfg.labels != "";
+
text = cfg.labels;
+
};
+
"sysconfig/rasdaemon" = {
+
enable = cfg.config != "";
+
text = cfg.config;
+
};
+
};
+
environment.systemPackages = [ pkgs.rasdaemon ]
+
++ optionals (cfg.testing) (with pkgs.error-inject; [
+
edac-inject
+
mce-inject
+
aer-inject
+
]);
+
+
boot.initrd.kernelModules = cfg.extraModules
+
++ optionals (cfg.testing) [
+
# edac_core and amd64_edac should get loaded automatically
+
# i7core_edac may not be, and may not be required, but should load successfully
+
"edac_core"
+
"amd64_edac"
+
"i7core_edac"
+
"mce-inject"
+
"aer-inject"
+
];
+
+
boot.kernelPatches = optionals (cfg.testing) [{
+
name = "rasdaemon-tests";
+
patch = null;
+
extraConfig = ''
+
EDAC_DEBUG y
+
X86_MCE_INJECT y
+
+
PCIEPORTBUS y
+
PCIEAER y
+
PCIEAER_INJECT y
+
'';
+
}];
+
+
# i tried to set up a group for this
+
# but rasdaemon needs higher permissions?
+
# `rasdaemon: Can't locate a mounted debugfs`
+
+
# most of this taken from src/misc/
+
systemd.services = {
+
rasdaemon = {
+
description = "the RAS logging daemon";
+
documentation = [ "man:rasdaemon(1)" ];
+
wantedBy = [ "multi-user.target" ];
+
after = [ "syslog.target" ];
+
+
serviceConfig = {
+
StateDirectory = optionalString (cfg.record) "rasdaemon";
+
+
ExecStart = "${pkgs.rasdaemon}/bin/rasdaemon --foreground"
+
+ optionalString (cfg.record) " --record";
+
ExecStop = "${pkgs.rasdaemon}/bin/rasdaemon --disable";
+
Restart = "on-abort";
+
+
# src/misc/rasdaemon.service.in shows this:
+
# ExecStartPost = ${pkgs.rasdaemon}/bin/rasdaemon --enable
+
# but that results in unpredictable existence of the database
+
# and everything seems to be enabled without this...
+
};
+
};
+
ras-mc-ctl = mkIf (cfg.labels != "") {
+
description = "register DIMM labels on startup";
+
documentation = [ "man:ras-mc-ctl(8)" ];
+
wantedBy = [ "multi-user.target" ];
+
serviceConfig = {
+
Type = "oneshot";
+
ExecStart = "${pkgs.rasdaemon}/bin/ras-mc-ctl --register-labels";
+
RemainAfterExit = true;
+
};
+
};
+
};
+
};
+
+
meta.maintainers = [ maintainers.evils ];
+
+
}
+1 -1
nixos/tests/all-tests.nix
···
locate = handleTest ./locate.nix {};
login = handleTest ./login.nix {};
loki = handleTest ./loki.nix {};
-
lsd = handleTest ./lsd.nix {};
lxd = handleTest ./lxd.nix {};
lxd-nftables = handleTest ./lxd-nftables.nix {};
#logstash = handleTest ./logstash.nix {};
···
rabbitmq = handleTest ./rabbitmq.nix {};
radarr = handleTest ./radarr.nix {};
radicale = handleTest ./radicale.nix {};
+
rasdaemon = handleTest ./rasdaemon.nix {};
redis = handleTest ./redis.nix {};
redmine = handleTest ./redmine.nix {};
restartByActivationScript = handleTest ./restart-by-activation-script.nix {};
-12
nixos/tests/lsd.nix
···
-
import ./make-test-python.nix ({ pkgs, ... }: {
-
name = "lsd";
-
meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; };
-
-
nodes.lsd = { pkgs, ... }: { environment.systemPackages = [ pkgs.lsd ]; };
-
-
testScript = ''
-
lsd.succeed('echo "abc" > /tmp/foo')
-
assert "4 B /tmp/foo" in lsd.succeed('lsd --classic --blocks "size,name" -l /tmp/foo')
-
assert "lsd ${pkgs.lsd.version}" in lsd.succeed("lsd --version")
-
'';
-
})
+34
nixos/tests/rasdaemon.nix
···
+
import ./make-test-python.nix ({ pkgs, ... } : {
+
name = "rasdaemon";
+
meta = with pkgs.lib.maintainers; {
+
maintainers = [ evils ];
+
};
+
+
machine = { pkgs, ... }: {
+
imports = [ ../modules/profiles/minimal.nix ];
+
hardware.rasdaemon = {
+
enable = true;
+
# should be enabled by default, just making sure
+
record = true;
+
# nonsense label
+
labels = ''
+
vendor: none
+
product: none
+
model: none
+
DIMM_0: 0.0.0;
+
'';
+
};
+
};
+
+
testScript =
+
''
+
start_all()
+
machine.wait_for_unit("multi-user.target")
+
# confirm rasdaemon is running and has a valid database
+
# some disk errors detected in qemu for some reason ¯\_(ツ)_/¯
+
machine.succeed("ras-mc-ctl --errors | tee /dev/stderr | grep -q 'No .* errors.'")
+
# confirm the supplied labels text made it into the system
+
machine.succeed("grep -q 'vendor: none' /etc/ras/dimm_labels.d/labels >&2")
+
machine.shutdown()
+
'';
+
})
+2 -2
pkgs/applications/graphics/weylus/default.nix
···
stdenv.mkDerivation rec {
pname = "weylus";
-
version = "0.11.2";
+
version = "0.11.3";
src = fetchzip {
url = "https://github.com/H-M-H/Weylus/releases/download/v${version}/linux.zip";
-
sha256 = "sha256-coA8qUpUgRjVBF/0LZgimx61fTTpdck/AO6e+r2uNu0=";
+
sha256 = "sha256-1nEdn3KKCMWIzYv4ryqTxtQvR9eln9IX1Z4Y6/vuo7o=";
stripRoot = false;
};
+2 -2
pkgs/applications/misc/cherrytree/default.nix
···
stdenv.mkDerivation rec {
pname = "cherrytree";
-
version = "0.99.41";
+
version = "0.99.42";
src = fetchFromGitHub {
owner = "giuspen";
repo = "cherrytree";
rev = version;
-
sha256 = "sha256-Bhk5xpJiVDSTxP1wAFTL39MgAIOa6Is9NTF1WEh6S1A=";
+
sha256 = "sha256-PKjl9n6J0iNdcA56CZ/nAzvgRNwqRLTHjwi3HQYWIMU=";
};
nativeBuildInputs = [
+2 -2
pkgs/applications/networking/flexget/default.nix
···
python3Packages.buildPythonApplication rec {
pname = "flexget";
-
version = "3.1.148";
+
version = "3.1.149";
# Fetch from GitHub in order to use `requirements.in`
src = fetchFromGitHub {
owner = "flexget";
repo = "flexget";
rev = "v${version}";
-
sha256 = "0gf07qa1wsysvl0mckh2r3a40065rxhgszf4767jkbryz8z174bc";
+
sha256 = "1yrb8cfrc6y7gpfgzn0q6ldx9vk06qp229wjs4q8rccp72p6d6gg";
};
postPatch = ''
+4 -8
pkgs/applications/networking/instant-messengers/quaternion/default.nix
···
, lib
, fetchFromGitHub
, cmake
-
, qtbase
, qtquickcontrols
, qtquickcontrols2
, qtkeychain
···
mkDerivation rec {
pname = "quaternion";
-
version = "0.0.95";
+
version = "0.0.95.1";
src = fetchFromGitHub {
owner = "QMatrixClient";
repo = "Quaternion";
rev = version;
-
sha256 = "sha256-WqhHqo4ySxufulC+TxS2ko2R5hUiORgdNAkp5Awdcw8=";
+
sha256 = "sha256-6FLj/hVY13WO7sMgHCHV57eMJu39cwQHXQX7m0lmv4I=";
};
buildInputs = [
-
qtbase
qtmultimedia
-
qtquickcontrols
qtquickcontrols2
qtkeychain
libquotient
···
'';
meta = with lib; {
-
description =
-
"Cross-platform desktop IM client for the Matrix protocol";
+
description = "Cross-platform desktop IM client for the Matrix protocol";
homepage = "https://matrix.org/docs/projects/client/quaternion.html";
license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
-
inherit (qtbase.meta) platforms;
+
inherit (qtquickcontrols2.meta) platforms;
};
}
+1 -1
pkgs/applications/networking/seafile-client/default.nix
···
description = "Desktop client for Seafile, the Next-generation Open Source Cloud Storage";
license = licenses.asl20;
platforms = platforms.linux;
-
maintainers = with maintainers; [ ];
+
maintainers = with maintainers; [ schmittlauch ];
};
}
+14 -4
pkgs/applications/radio/dump1090/default.nix
···
, libusb1
, ncurses
, rtl-sdr
+
, hackrf
+
, limesuite
}:
stdenv.mkDerivation rec {
pname = "dump1090";
-
version = "5.0";
+
version = "6.1";
src = fetchFromGitHub {
owner = "flightaware";
repo = pname;
rev = "v${version}";
-
sha256 = "1fckfcgypmplzl1lidd04jxiabczlfx9mv21d6rbsfknghsjpn03";
+
sha256 = "sha256-OLXnT5TD6ZBNJUk4qXOMbr+NWdw3j1rv1xkFPZi4Wo8=";
};
nativeBuildInputs = [ pkg-config ];
···
libusb1
ncurses
rtl-sdr
-
];
+
hackrf
+
] ++ lib.optional stdenv.isLinux limesuite;
+
+
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang
+
"-Wno-implicit-function-declaration -Wno-int-conversion";
+
+
buildFlags = [ "dump1090" "view1090" ];
+
+
doCheck = true;
installPhase = ''
runHook preInstall
···
description = "A simple Mode S decoder for RTLSDR devices";
homepage = "https://github.com/flightaware/dump1090";
license = licenses.gpl2Plus;
-
platforms = platforms.linux;
+
platforms = platforms.unix;
maintainers = with maintainers; [ earldouglas ];
};
}
+12 -19
pkgs/desktops/pantheon/apps/elementary-videos/default.nix
···
-
{ lib, stdenv
+
{ lib
+
, stdenv
, fetchFromGitHub
-
, fetchpatch
, nix-update-script
, pantheon
, pkg-config
···
, gtk3
, granite
, libgee
+
, libhandy
, clutter-gst
, clutter-gtk
, gst_all_1
···
stdenv.mkDerivation rec {
pname = "elementary-videos";
-
version = "2.7.3";
+
version = "2.8.0";
repoName = "videos";
···
owner = "elementary";
repo = repoName;
rev = version;
-
sha256 = "04nl9kn33dysvsg0n5qx1z8qgrifkgfwsm7gh1l308v3n8c69lh7";
-
};
-
-
patches = [
-
# Upstream code not respecting our localedir
-
# https://github.com/elementary/videos/pull/233
-
(fetchpatch {
-
url = "https://github.com/elementary/videos/commit/19ba2a9148be09ea521d2e9ac29dede6b9c6fa07.patch";
-
sha256 = "0ffp7ana98846xi7vxrzfg6dbs4yy28x2i4ky85mqs1gj6fjqin5";
-
})
-
];
-
-
passthru = {
-
updateScript = nix-update-script {
-
attrPath = "pantheon.${pname}";
-
};
+
sha256 = "sha256-FFCtQ42LygfjowehwZcISWTfv8PBZTH0X8mPrpiG8Ug=";
};
nativeBuildInputs = [
···
gstreamer
gtk3
libgee
+
libhandy
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
+
+
passthru = {
+
updateScript = nix-update-script {
+
attrPath = "pantheon.${pname}";
+
};
+
};
meta = with lib; {
description = "Video player and library app designed for elementary OS";
+2 -12
pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
···
{ lib
, stdenv
, fetchFromGitHub
-
, fetchpatch
, nix-update-script
, pantheon
, meson
···
stdenv.mkDerivation rec {
pname = "elementary-default-settings";
-
version = "6.0.1";
+
version = "6.0.2";
repoName = "default-settings";
···
owner = "elementary";
repo = repoName;
rev = version;
-
sha256 = "0gqnrm968j4v699yhhiyw5fqjy4zbvvrjci2v1jrlycn09c2yrwf";
+
sha256 = "sha256-qaPj/Qp7RYzHgElFdM8bHV42oiPUbCMTC9Q+MUj4Q6Y=";
};
-
-
patches = [
-
# Update gtk-theme-name and gtk-font-name for Pantheon 6
-
# https://github.com/elementary/default-settings/pull/252
-
(fetchpatch {
-
url = "https://github.com/elementary/default-settings/commit/be24c151492bb9115c75bd1a7abc88714240294a.patch";
-
sha256 = "sha256-EglFiN4CLbL8osfNGLvjD220Al35uBXuRNC9Ud3QYBI=";
-
})
-
];
nativeBuildInputs = [
accountsservice
+19 -22
pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
···
-
{ lib, stdenv
+
{ lib
+
, stdenv
, fetchFromGitHub
-
, fetchpatch
, nix-update-script
, substituteAll
, pantheon
···
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-datetime";
-
version = "2.3.0";
+
version = "2.3.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
-
sha256 = "1mdm0fsnmmyw8c0ik2jmfri3kas9zkz1hskzf8wvbd51vnazfpgw";
+
sha256 = "sha256-/kbwZVzOlC3ATCuXVMdf2RIskoGQKG1evaDYO3yFerg=";
};
-
passthru = {
-
updateScript = nix-update-script {
-
attrPath = "pantheon.${pname}";
-
};
-
};
+
patches = [
+
(substituteAll {
+
src = ./fix-paths.patch;
+
elementary_calendar = elementary-calendar;
+
})
+
# Fix incorrect month shown on re-opening indicator if previously changed month
+
# https://github.com/elementary/wingpanel-indicator-datetime/pull/284
+
./fix-incorrect-month.patch
+
];
nativeBuildInputs = [
libxml2
···
libgdata # required by some dependency transitively
];
-
patches = [
-
(substituteAll {
-
src = ./fix-paths.patch;
-
elementary_calendar = elementary-calendar;
-
})
-
# Upstream code not respecting our localedir
-
# https://github.com/elementary/wingpanel-indicator-datetime/pull/269
-
(fetchpatch {
-
url = "https://github.com/elementary/wingpanel-indicator-datetime/commit/f7befa68a9fd6215297c334a366919d3431cae65.patch";
-
sha256 = "0l997b1pnpjscs886xy28as5yykxamxacvxdv8466zin7zynarfs";
-
})
-
];
-
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
+
+
passthru = {
+
updateScript = nix-update-script {
+
attrPath = "pantheon.${pname}";
+
};
+
};
meta = with lib; {
description = "Date & Time Indicator for Wingpanel";
+26
pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch
···
+
From 401cb05d7181e69ae8edd347644f2518904e9acb Mon Sep 17 00:00:00 2001
+
From: Jeremy Paul Wootten <jeremywootten@gmail.com>
+
Date: Sat, 30 Oct 2021 17:44:12 +0100
+
Subject: [PATCH] Reset position and relative position after rebuilding
+
carousel
+
+
---
+
src/Widgets/calendar/CalendarView.vala | 4 ++++
+
1 file changed, 4 insertions(+)
+
+
diff --git a/src/Widgets/calendar/CalendarView.vala b/src/Widgets/calendar/CalendarView.vala
+
index a41b37a4..f946b91c 100644
+
--- a/src/Widgets/calendar/CalendarView.vala
+
+++ b/src/Widgets/calendar/CalendarView.vala
+
@@ -216,7 +216,11 @@ public class DateTime.Widgets.CalendarView : Gtk.Grid {
+
carousel.add (right_grid);
+
carousel.scroll_to (start_month_grid);
+
label.label = calmodel.month_start.format (_("%OB, %Y"));
+
+
+
+ position = 1;
+
+ rel_postion = 0;
+
}
+
+
+
carousel.no_show_all = false;
+
}
+
+2 -2
pkgs/development/interpreters/clojure/default.nix
···
stdenv.mkDerivation rec {
pname = "clojure";
-
version = "1.10.3.998";
+
version = "1.10.3.1013";
src = fetchurl {
# https://clojure.org/releases/tools
url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-
sha256 = "zvIgswjAGfvaTKRb29KGKETqggjmOToCBzb99/C7chA=";
+
sha256 = "EmIdcQ7ANbDjOBUX/UQwdd1C+JzeCZaC4XaNdW49E/A=";
};
nativeBuildInputs = [
+15 -10
pkgs/development/libraries/arrow-cpp/default.nix
···
{ stdenv, lib, fetchurl, fetchFromGitHub, fixDarwinDylibNames
, autoconf, boost, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4
-
, perl, python3, rapidjson, re2, snappy, thrift, utf8proc, which, xsimd
+
, perl, python3, rapidjson, re2, snappy, thrift, tzdata , utf8proc, which
, zlib, zstd
, enableShared ? !stdenv.hostPlatform.isStatic
}:
···
arrow-testing = fetchFromGitHub {
owner = "apache";
repo = "arrow-testing";
-
rev = "6d98243093c0b36442da94de7010f3eacc2a9909";
-
hash = "sha256-n57Fuz2k6sX1o3vYBmC41eRKGnyt9+YL5r3WTHHRRzw=";
+
rev = "a60b715263d9bbf7e744527fb0c084b693f58043";
+
hash = "sha256-Dz1dCV0m5Y24qzXdVaqrZ7hK3MRSb4GF0PXrjMAsjZU=";
};
parquet-testing = fetchFromGitHub {
owner = "apache";
repo = "parquet-testing";
-
rev = "ddd898958803cb89b7156c6350584d1cda0fe8de";
-
hash = "sha256-gK04mj1Fuhkf82NDMrXplFa+cr/3Ij7I9VnYfinuJlg=";
+
rev = "d4d485956a643c693b5549e1a62d52ca61c170f1";
+
hash = "sha256-GmOAS8gGhzDI0WzORMkWHRRUl/XBwmNen2d3VefZxxc=";
};
in stdenv.mkDerivation rec {
pname = "arrow-cpp";
-
version = "5.0.0";
+
version = "6.0.0";
src = fetchurl {
url =
"mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
-
hash = "sha256-w7QxPspZTCD3Yag2cZchqvB2AAGviWuuw6tkQg/5kQo=";
+
hash = "sha256-adJo+egtPr71la0b3IPUywKyDBgZRqaGMfZkXXwfepA=";
};
sourceRoot = "apache-arrow-${version}/cpp";
···
preConfigure = ''
patchShebangs build-support/
+
substituteInPlace "src/arrow/vendored/datetime/tz.cpp" \
+
--replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
'';
cmakeFlags = [
···
"-DCMAKE_INSTALL_RPATH=@loader_path/../lib" # needed for tools executables
] ++ lib.optional (!stdenv.isx86_64) "-DARROW_USE_SIMD=OFF";
-
ARROW_XSIMD_URL = xsimd.src;
+
ARROW_XSIMD_URL = fetchurl {
+
url = "https://github.com/xtensor-stack/xsimd/archive/aeec9c872c8b475dedd7781336710f2dd2666cb2.tar.gz";
+
sha256 = "09kvl962c6b0wnb7pb2n9dhvkflzwalgq6gwwi8628fgi9n1x10a";
+
};
doInstallCheck = true;
ARROW_TEST_DATA =
···
'';
meta = with lib; {
-
description = "A cross-language development platform for in-memory data";
+
description = "A cross-language development platform for in-memory data";
homepage = "https://arrow.apache.org/";
license = licenses.asl20;
platforms = platforms.unix;
-
maintainers = with maintainers; [ tobim veprbl ];
+
maintainers = with maintainers; [ tobim veprbl cpcloud ];
};
}
+9 -4
pkgs/development/libraries/libquotient/default.nix
···
-
{ mkDerivation, lib, fetchFromGitHub, cmake, qtbase, qtmultimedia }:
+
{ mkDerivation, lib, fetchFromGitHub, cmake, qtmultimedia }:
mkDerivation rec {
pname = "libquotient";
-
version = "0.6.9";
+
version = "0.6.11";
src = fetchFromGitHub {
owner = "quotient-im";
repo = "libQuotient";
rev = version;
-
sha256 = "sha256-1YiS2b4lYknNSB+8LKB/s6AcF0yQVsakrkp6/Sjkczo=";
+
sha256 = "sha256-FPtxeZOfChIPi4e/h/eZkByH1QL3Fn0OJxe0dnMcTRw=";
};
-
buildInputs = [ qtbase qtmultimedia ];
+
buildInputs = [ qtmultimedia ];
nativeBuildInputs = [ cmake ];
+
+
cmakeFlags = [
+
# we need libqtolm for this
+
"-DQuotient_ENABLE_E2EE=OFF"
+
];
meta = with lib; {
description = "A Qt5 library to write cross-platform clients for Matrix";
+3 -3
pkgs/development/libraries/opendkim/default.nix
···
{ lib, stdenv, fetchFromGitHub, pkg-config, libbsd, openssl, libmilter
-
, autoreconfHook, perl, makeWrapper }:
+
, autoreconfHook, perl, makeWrapper, unbound }:
stdenv.mkDerivation rec {
pname = "opendkim";
···
"--with-milter=${libmilter}"
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
-
];
+
] ++ lib.optional stdenv.isDarwin "--with-unbound=${unbound}";
nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper ];
-
buildInputs = [ libbsd openssl libmilter perl ];
+
buildInputs = [ libbsd openssl libmilter perl ] ++ lib.optional stdenv.isDarwin unbound;
postInstall = ''
wrapProgram $out/sbin/opendkim-genkey \
+2 -2
pkgs/development/python-modules/zstandard/default.nix
···
buildPythonPackage rec {
pname = "zstandard";
-
version = "0.15.2";
+
version = "0.16.0";
src = fetchPypi {
inherit pname version;
-
sha256 = "52de08355fd5cfb3ef4533891092bb96229d43c2069703d4aff04fdbedf9c92f";
+
sha256 = "eaae2d3e8fdf8bfe269628385087e4b648beef85bb0c187644e7df4fb0fe9046";
};
propagatedNativeBuildInputs = [ cffi ];
+6
pkgs/development/tools/devpi-client/default.nix
···
sha256 = "24ac6d94108996efad4ff5185dabb1e5120ae238134b8175d6de2ca9e766cd92";
};
+
postPatch = ''
+
# can be removed after 5.2.2, updated upstream
+
substituteInPlace setup.py \
+
--replace "pluggy>=0.6.0,<1.0" "pluggy"
+
'';
+
buildInputs = [ glibcLocales ];
propagatedBuildInputs = [ py devpi-common pluggy setuptools check-manifest pkginfo ];
+68
pkgs/os-specific/linux/error-inject/default.nix
···
+
{ lib, stdenv, fetchgit
+
, bison, flex, rasdaemon
+
}:
+
+
{
+
edac-inject = rasdaemon.inject;
+
+
mce-inject = stdenv.mkDerivation rec {
+
pname = "mce-inject";
+
version = "4cbe46321b4a81365ff3aafafe63967264dbfec5";
+
+
src = fetchgit {
+
url = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git";
+
rev = version;
+
sha256 = "0gjapg2hrlxp8ssrnhvc19i3r1xpcnql7xv0zjgbv09zyha08g6z";
+
};
+
+
nativeBuildInputs = [ bison flex ];
+
+
makeFlags = [ "destdir=${placeholder "out"}" ];
+
+
postInstall = ''
+
mkdir $out/sbin
+
mv $out/usr/sbin/mce-inject $out/sbin/mce-inject
+
+
mkdir $out/test
+
cp test/* $out/test/.
+
'';
+
+
meta = with lib; {
+
description = "MCE error injection tool";
+
license = licenses.gpl2Only;
+
platforms = platforms.linux;
+
maintainers = [ maintainers.evils ];
+
};
+
};
+
+
aer-inject = stdenv.mkDerivation rec {
+
pname = "aer-inject";
+
version = "9bd5e2c7886fca72f139cd8402488a2235957d41";
+
+
src = fetchgit {
+
url = "git://git.kernel.org/pub/scm/linux/kernel/git/gong.chen/aer-inject.git";
+
rev = version;
+
sha256 = "0bh6mzpk2mr4xidkammmkfk21b4dbq793qjg25ryyxd1qv0c6cg4";
+
};
+
+
nativeBuildInputs = [ bison flex ];
+
+
# how is this necessary?
+
makeFlags = [ "DESTDIR=${placeholder "out"}" ];
+
+
postInstall = ''
+
mkdir $out/bin
+
mv $out/usr/local/aer-inject $out/bin/aer-inject
+
+
mkdir -p $out/examples
+
cp examples/* $out/examples/.
+
'';
+
+
meta = with lib; {
+
description = "PCIE AER error injection tool";
+
license = licenses.gpl2Only;
+
platforms = platforms.linux;
+
maintainers = [ maintainers.evils ];
+
};
+
};
+
}
+111
pkgs/os-specific/linux/rasdaemon/default.nix
···
+
{ lib, stdenv, fetchFromGitHub
+
, autoreconfHook
+
, glibcLocales, kmod, coreutils, perl
+
, dmidecode, hwdata, sqlite
+
, nixosTests
+
}:
+
+
stdenv.mkDerivation rec {
+
pname = "rasdaemon";
+
version = "0.6.7";
+
+
src = fetchFromGitHub {
+
owner = "mchehab";
+
repo = "rasdaemon";
+
rev = "v${version}";
+
sha256 = "sha256-vyUDwqDe+HD4mka6smdQuVSM5U9uMv/TrfHkyqVJMIo=";
+
};
+
+
nativeBuildInputs = [ autoreconfHook ];
+
+
buildInputs = [
+
coreutils
+
glibcLocales
+
hwdata
+
kmod
+
sqlite
+
(perl.withPackages (ps: with ps; [ DBI DBDSQLite ]))
+
]
+
++ lib.optionals (!stdenv.isAarch64) [ dmidecode ];
+
+
configureFlags = [
+
"--sysconfdir=/etc"
+
"--localstatedir=/var"
+
"--with-sysconfdefdir=${placeholder "out"}/etc/sysconfig"
+
"--enable-sqlite3"
+
"--enable-aer"
+
"--enable-mce"
+
"--enable-extlog"
+
"--enable-non-standard"
+
"--enable-abrt-report"
+
"--enable-hisi-ns-decode"
+
"--enable-devlink"
+
"--enable-diskerror"
+
"--enable-memory-failure"
+
"--enable-memory-ce-pfa"
+
"--enable-amp-ns-decode"
+
]
+
++ lib.optionals (stdenv.isAarch64) [ "--enable-arm" ];
+
+
# The installation attempts to create the following directories:
+
# /var/lib/rasdaemon
+
# location of the RAS event log generated by rasdaemon -r
+
# /etc/ras/dimm_labels.d
+
# location of the DIMM labels generated by ras-mc-ctl
+
# /etc/sysconfig/rasdaemon
+
# location of rasdaemon config file, currently only used for CE PFA config
+
+
# these are optional (for logging, DIMM label storage and user config)
+
# /var/lib/rasdaemon should be created by the NixOS module
+
# /etc/ras/dimm_labels.d should probably be generated,
+
# from user supplied content, in the NixOS module
+
# /etc/sysconfig/rasdaemon should be generated if there is user supplied content
+
# and default to $out/etc/sysconfig/rasdaemon which should hold the supplied default
+
+
# therefore, stripping these from the generated Makefile
+
# (needed in the config flags because those set where the tools look for these)
+
+
# easy way out, ends up installing /nix/store/...rasdaemon/bin in $out
+
+
postConfigure = ''
+
substituteInPlace Makefile \
+
--replace '"$(DESTDIR)/etc/ras/dimm_labels.d"' '"$(prefix)/etc/ras/dimm_labels.d"'
+
'';
+
+
outputs = [ "out" "dev" "man" "inject" ];
+
+
postInstall = ''
+
install -Dm 0755 contrib/edac-fake-inject $inject/bin/edac-fake-inject
+
install -Dm 0755 contrib/edac-tests $inject/bin/edac-tests
+
'';
+
+
postFixup = ''
+
# Fix dmidecode and modprobe paths
+
substituteInPlace $out/bin/ras-mc-ctl \
+
--replace 'find_prog ("modprobe") or exit (1)' '"${kmod}/bin/modprobe"'
+
''
+
+ lib.optionalString (!stdenv.isAarch64) ''
+
substituteInPlace $out/bin/ras-mc-ctl \
+
--replace 'find_prog ("dmidecode")' '"${dmidecode}/bin/dmidecode"'
+
'';
+
+
passthru.tests = nixosTests.rasdaemon;
+
+
meta = with lib; {
+
description = ''
+
A Reliability, Availability and Serviceability (RAS) logging tool using EDAC kernel tracing events
+
'';
+
longDescription = ''
+
Rasdaemon is a RAS (Reliability, Availability and Serviceability) logging
+
tool. It records memory errors, using the EDAC tracing events. EDAC is a
+
Linux kernel subsystem with handles detection of ECC errors from memory
+
controllers for most chipsets on i386 and x86_64 architectures. EDAC
+
drivers for other architectures like arm also exists.
+
'';
+
homepage = "https://github.com/mchehab/rasdaemon";
+
license = licenses.gpl2Plus;
+
platforms = platforms.linux;
+
changelog = "https://github.com/mchehab/rasdaemon/blob/v${version}/ChangeLog";
+
maintainers = with maintainers; [ evils ];
+
};
+
}
+16
pkgs/os-specific/linux/vm-tools/default.nix
···
+
{ lib, stdenv, linux }:
+
+
stdenv.mkDerivation {
+
pname = "vm-tools";
+
inherit (linux) version src;
+
+
makeFlags = [ "sbindir=${placeholder "out"}/bin" ];
+
+
preConfigure = "cd tools/vm";
+
+
meta = with lib; {
+
inherit (linux.meta) license platforms;
+
description = "Set of virtual memory tools";
+
maintainers = [ maintainers.evils ];
+
};
+
}
+12 -2
pkgs/tools/misc/lsd/default.nix
···
{ lib
-
, nixosTests
, fetchFromGitHub
, rustPlatform
, installShellFiles
···
# Found argument '--test-threads' which wasn't expected, or isn't valid in this context
doCheck = false;
-
passthru.tests = { inherit (nixosTests) lsd; };
+
doInstallCheck = true;
+
installCheckPhase = ''
+
runHook preInstallCheck
+
+
testFile=$(mktemp /tmp/lsd-test.XXXX)
+
echo 'abc' > $testFile
+
$out/bin/lsd --classic --blocks "size,name" -l $testFile | grep "4 B $testFile"
+
$out/bin/lsd --version | grep "${version}"
+
rm $testFile
+
+
runHook postInstallCheck
+
'';
meta = with lib; {
homepage = "https://github.com/Peltoche/lsd";
+2 -2
pkgs/tools/misc/qt5ct/default.nix
···
mkDerivation rec {
pname = "qt5ct";
-
version = "1.3";
+
version = "1.5";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-
sha256 = "sha256-3UQ7FOWQr/dqFuExbVbmiIguMkjEcN9PcbyVJWnzw7w=";
+
sha256 = "sha256-1j0M4W4CQnIH2GUx9wpxxbnIUARN1bLcsihVMfQW5JA=";
};
nativeBuildInputs = [ qmake qttools ];
+4
pkgs/top-level/all-packages.nix
···
ebtables = callPackage ../os-specific/linux/ebtables { };
+
error-inject = callPackages ../os-specific/linux/error-inject { };
+
extrace = callPackage ../os-specific/linux/extrace { };
facetimehd-firmware = callPackage ../os-specific/linux/firmware/facetimehd-firmware { };
···
radeontools = callPackage ../os-specific/linux/radeontools { };
radeontop = callPackage ../os-specific/linux/radeontop { };
+
+
rasdaemon = callPackage ../os-specific/linux/rasdaemon { };
raspberrypifw = callPackage ../os-specific/linux/firmware/raspberrypi {};
raspberrypiWirelessFirmware = callPackage ../os-specific/linux/firmware/raspberrypi-wireless { };
+2
pkgs/top-level/linux-kernels.nix
···
virtualbox = pkgs.virtualboxHardened;
};
+
vm-tools = callPackage ../os-specific/linux/vm-tools { };
+
wireguard = if lib.versionOlder kernel.version "5.6" then callPackage ../os-specific/linux/wireguard { } else null;
x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { };