Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2021-10-31 06:01:37 +00:00 committed by GitHub
commit bc5e1e9c27
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 552 additions and 110 deletions

View File

@ -387,6 +387,13 @@
<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">

View File

@ -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.<name>.wakeOnLan`.

View File

@ -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

View File

@ -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 <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 ];
}

View File

@ -238,7 +238,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 {};
@ -388,6 +387,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 {};

View File

@ -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")
'';
})

34
nixos/tests/rasdaemon.nix Normal file
View File

@ -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()
'';
})

View File

@ -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;
};

View File

@ -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 = [

View File

@ -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 = ''

View File

@ -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;
};
}

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -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";

View File

@ -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

View File

@ -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";

View File

@ -0,0 +1,26 @@
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;
}

View File

@ -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 = [

View File

@ -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 ];
};
}

View File

@ -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";

View File

@ -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 \

View File

@ -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";
};
propagatedNativeBuildInputs = [ cffi ];

View File

@ -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 ];

View File

@ -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 ];
};
};
}

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -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";

View File

@ -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 ];

View File

@ -21742,6 +21742,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 { };
@ -22382,6 +22384,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 { };

View File

@ -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 { };