diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index 73ff5a09b264..6e6f9c3d3b43 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -387,6 +387,13 @@
services.seafile.
+
+
+ rasdaemon,
+ a hardware error logging daemon. Available as
+ hardware.rasdaemon.
+
+
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index f2a4388e8a41..acc0dd70c772 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -118,6 +118,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [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..wakeOnLan`.
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 00d0103e6b79..0dbdda68d3c0 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -420,6 +420,7 @@
./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
diff --git a/nixos/modules/services/hardware/rasdaemon.nix b/nixos/modules/services/hardware/rasdaemon.nix
new file mode 100644
index 000000000000..b1efe0f18c88
--- /dev/null
+++ b/nixos/modules/services/hardware/rasdaemon.nix
@@ -0,0 +1,171 @@
+{ 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 ras-mc-ctl8 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 =
+ '';
+ };
+
+ # 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 ];
+
+}
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index b559d0af5cc5..8790fed807c8 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -237,7 +237,6 @@ in
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 {};
@@ -387,6 +386,7 @@ in
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 {};
diff --git a/nixos/tests/lsd.nix b/nixos/tests/lsd.nix
deleted file mode 100644
index c643f2f0b7b7..000000000000
--- a/nixos/tests/lsd.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-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")
- '';
-})
diff --git a/nixos/tests/rasdaemon.nix b/nixos/tests/rasdaemon.nix
new file mode 100644
index 000000000000..e4bd8d96a8d5
--- /dev/null
+++ b/nixos/tests/rasdaemon.nix
@@ -0,0 +1,34 @@
+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()
+ '';
+})
diff --git a/pkgs/applications/graphics/weylus/default.nix b/pkgs/applications/graphics/weylus/default.nix
index 54b86c09341e..d3eef3400739 100644
--- a/pkgs/applications/graphics/weylus/default.nix
+++ b/pkgs/applications/graphics/weylus/default.nix
@@ -14,11 +14,11 @@
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;
};
diff --git a/pkgs/applications/misc/cherrytree/default.nix b/pkgs/applications/misc/cherrytree/default.nix
index d4fc82b91393..61150d56fbbd 100644
--- a/pkgs/applications/misc/cherrytree/default.nix
+++ b/pkgs/applications/misc/cherrytree/default.nix
@@ -19,13 +19,13 @@
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 = [
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index cb2abecf8287..22fd08e3f4a8 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -2,14 +2,14 @@
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 = ''
diff --git a/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
index 359c0fa7aac5..268a077e7c5b 100644
--- a/pkgs/applications/networking/instant-messengers/quaternion/default.nix
+++ b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
@@ -3,7 +3,6 @@
, lib
, fetchFromGitHub
, cmake
-, qtbase
, qtquickcontrols
, qtquickcontrols2
, qtkeychain
@@ -15,19 +14,17 @@
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
@@ -47,11 +44,10 @@ mkDerivation rec {
'';
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;
};
}
diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix
index 2783373ef322..b0975c56b059 100644
--- a/pkgs/applications/networking/seafile-client/default.nix
+++ b/pkgs/applications/networking/seafile-client/default.nix
@@ -29,6 +29,6 @@ mkDerivation rec {
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 ];
};
}
diff --git a/pkgs/applications/radio/dump1090/default.nix b/pkgs/applications/radio/dump1090/default.nix
index 927fa32bd55b..00e5e0089cf8 100644
--- a/pkgs/applications/radio/dump1090/default.nix
+++ b/pkgs/applications/radio/dump1090/default.nix
@@ -5,17 +5,19 @@
, 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 ];
@@ -25,7 +27,15 @@ stdenv.mkDerivation rec {
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
@@ -41,7 +51,7 @@ stdenv.mkDerivation rec {
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 ];
};
}
diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index 9bb7939217cb..a87ac48c7f30 100644
--- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, pantheon
, pkg-config
@@ -12,6 +12,7 @@
, gtk3
, granite
, libgee
+, libhandy
, clutter-gst
, clutter-gtk
, gst_all_1
@@ -21,7 +22,7 @@
stdenv.mkDerivation rec {
pname = "elementary-videos";
- version = "2.7.3";
+ version = "2.8.0";
repoName = "videos";
@@ -29,22 +30,7 @@ stdenv.mkDerivation rec {
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 = [
@@ -70,6 +56,7 @@ stdenv.mkDerivation rec {
gstreamer
gtk3
libgee
+ libhandy
];
postPatch = ''
@@ -77,6 +64,12 @@ stdenv.mkDerivation rec {
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";
homepage = "https://github.com/elementary/videos";
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index a3dd5a694373..c5ccba962e44 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -1,7 +1,6 @@
{ lib
, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, pantheon
, meson
@@ -17,7 +16,7 @@
stdenv.mkDerivation rec {
pname = "elementary-default-settings";
- version = "6.0.1";
+ version = "6.0.2";
repoName = "default-settings";
@@ -25,18 +24,9 @@ stdenv.mkDerivation rec {
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
dbus
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index ad030277463c..8226ed5b0b3c 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
, substituteAll
, pantheon
@@ -24,20 +24,24 @@
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
@@ -60,24 +64,17 @@ stdenv.mkDerivation rec {
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";
homepage = "https://github.com/elementary/wingpanel-indicator-datetime";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch
new file mode 100644
index 000000000000..7e0dc09b16c2
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch
@@ -0,0 +1,26 @@
+From 401cb05d7181e69ae8edd347644f2518904e9acb Mon Sep 17 00:00:00 2001
+From: Jeremy Paul Wootten
+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;
+ }
+
diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index 4a6a82e1aa21..2a44ca4161c3 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -2,12 +2,12 @@
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 = [
diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix
index 7f3896f41be5..fe06a64bcf56 100644
--- a/pkgs/development/libraries/arrow-cpp/default.nix
+++ b/pkgs/development/libraries/arrow-cpp/default.nix
@@ -1,6 +1,6 @@
{ 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
}:
@@ -9,25 +9,25 @@ let
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";
@@ -81,6 +81,8 @@ in stdenv.mkDerivation rec {
preConfigure = ''
patchShebangs build-support/
+ substituteInPlace "src/arrow/vendored/datetime/tz.cpp" \
+ --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
'';
cmakeFlags = [
@@ -117,7 +119,10 @@ in stdenv.mkDerivation rec {
"-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 =
@@ -148,10 +153,10 @@ in stdenv.mkDerivation rec {
'';
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 ];
};
}
diff --git a/pkgs/development/libraries/libquotient/default.nix b/pkgs/development/libraries/libquotient/default.nix
index b64e9de9ceed..eea7eeb88fc7 100644
--- a/pkgs/development/libraries/libquotient/default.nix
+++ b/pkgs/development/libraries/libquotient/default.nix
@@ -1,20 +1,25 @@
-{ 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";
homepage = "https://matrix.org/docs/projects/sdk/quotient";
diff --git a/pkgs/development/libraries/opendkim/default.nix b/pkgs/development/libraries/opendkim/default.nix
index b3d18748f74b..22c5fca76a48 100644
--- a/pkgs/development/libraries/opendkim/default.nix
+++ b/pkgs/development/libraries/opendkim/default.nix
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, libbsd, openssl, libmilter
-, autoreconfHook, perl, makeWrapper }:
+, autoreconfHook, perl, makeWrapper, unbound }:
stdenv.mkDerivation rec {
pname = "opendkim";
@@ -16,11 +16,11 @@ stdenv.mkDerivation rec {
"--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 \
diff --git a/pkgs/development/python-modules/zstandard/default.nix b/pkgs/development/python-modules/zstandard/default.nix
index 724a5d9d6794..5f8909577171 100755
--- a/pkgs/development/python-modules/zstandard/default.nix
+++ b/pkgs/development/python-modules/zstandard/default.nix
@@ -7,11 +7,11 @@
buildPythonPackage rec {
pname = "zstandard";
- version = "0.15.2";
+ version = "0.16.0";
src = fetchPypi {
inherit pname version;
- sha256 = "52de08355fd5cfb3ef4533891092bb96229d43c2069703d4aff04fdbedf9c92f";
+ sha256 = "eaae2d3e8fdf8bfe269628385087e4b648beef85bb0c187644e7df4fb0fe9046";
};
propagatedBuildInputs = [ cffi ];
diff --git a/pkgs/development/tools/devpi-client/default.nix b/pkgs/development/tools/devpi-client/default.nix
index 5ac113fda3e0..dcc3f38b995e 100644
--- a/pkgs/development/tools/devpi-client/default.nix
+++ b/pkgs/development/tools/devpi-client/default.nix
@@ -32,6 +32,12 @@ buildPythonApplication rec {
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 ];
diff --git a/pkgs/os-specific/linux/error-inject/default.nix b/pkgs/os-specific/linux/error-inject/default.nix
new file mode 100644
index 000000000000..87a40580deb7
--- /dev/null
+++ b/pkgs/os-specific/linux/error-inject/default.nix
@@ -0,0 +1,68 @@
+{ 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 ];
+ };
+ };
+}
diff --git a/pkgs/os-specific/linux/rasdaemon/default.nix b/pkgs/os-specific/linux/rasdaemon/default.nix
new file mode 100644
index 000000000000..22ca59bff536
--- /dev/null
+++ b/pkgs/os-specific/linux/rasdaemon/default.nix
@@ -0,0 +1,111 @@
+{ 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 ];
+ };
+}
diff --git a/pkgs/os-specific/linux/vm-tools/default.nix b/pkgs/os-specific/linux/vm-tools/default.nix
new file mode 100644
index 000000000000..c5981bfc2713
--- /dev/null
+++ b/pkgs/os-specific/linux/vm-tools/default.nix
@@ -0,0 +1,16 @@
+{ 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 ];
+ };
+}
diff --git a/pkgs/tools/misc/lsd/default.nix b/pkgs/tools/misc/lsd/default.nix
index 54b3b443d0a4..c0d1c278bfdd 100644
--- a/pkgs/tools/misc/lsd/default.nix
+++ b/pkgs/tools/misc/lsd/default.nix
@@ -1,5 +1,4 @@
{ lib
-, nixosTests
, fetchFromGitHub
, rustPlatform
, installShellFiles
@@ -26,7 +25,18 @@ rustPlatform.buildRustPackage rec {
# 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";
diff --git a/pkgs/tools/misc/qt5ct/default.nix b/pkgs/tools/misc/qt5ct/default.nix
index 133a1a87d661..bbb8f96f5fb6 100644
--- a/pkgs/tools/misc/qt5ct/default.nix
+++ b/pkgs/tools/misc/qt5ct/default.nix
@@ -4,11 +4,11 @@ let inherit (lib) getDev; in
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 ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8ed82217a4a2..fe6a6ab5f6b3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -21752,6 +21752,8 @@ with pkgs;
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 { };
@@ -22387,6 +22389,8 @@ with pkgs;
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 { };
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 4220d57aee1d..c5bda0b37142 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -432,6 +432,8 @@ in {
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 { };