Merge master into staging-next
This commit is contained in:
commit
e4e8cd182e
30 changed files with 552 additions and 110 deletions
|
@ -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">
|
||||
|
|
|
@ -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`.
|
||||
|
|
|
@ -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
|
||||
|
|
171
nixos/modules/services/hardware/rasdaemon.nix
Normal file
171
nixos/modules/services/hardware/rasdaemon.nix
Normal 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 ];
|
||||
|
||||
}
|
|
@ -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 {};
|
||||
|
|
|
@ -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
34
nixos/tests/rasdaemon.nix
Normal 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()
|
||||
'';
|
||||
})
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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 = [
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
68
pkgs/os-specific/linux/error-inject/default.nix
Normal file
68
pkgs/os-specific/linux/error-inject/default.nix
Normal 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 ];
|
||||
};
|
||||
};
|
||||
}
|
111
pkgs/os-specific/linux/rasdaemon/default.nix
Normal file
111
pkgs/os-specific/linux/rasdaemon/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
16
pkgs/os-specific/linux/vm-tools/default.nix
Normal file
16
pkgs/os-specific/linux/vm-tools/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 { };
|
||||
|
||||
|
|
|
@ -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 { };
|
||||
|
|
Loading…
Reference in a new issue