Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2022-11-22 06:01:48 +00:00 committed by GitHub
commit ef59504ab1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 722 additions and 284 deletions

View File

@ -278,6 +278,16 @@
<link linkend="opt-services.prometheus.sachet.enable">services.prometheus.sachet</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://evcc.io">EVCC</link> is an EV charge
controller with PV integration. It supports a multitude of
chargers, meters, vehicle APIs and more and ties that together
with a well-tested backend and a lightweight web frontend.
Available as
<link linkend="opt-services.evcc.enable">services.evcc</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/leetronics/infnoise">infnoise</link>,

View File

@ -98,6 +98,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [Sachet](https://github.com/messagebird/sachet/), an SMS alerting tool for the Prometheus Alertmanager. Available as [services.prometheus.sachet](#opt-services.prometheus.sachet.enable).
- [EVCC](https://evcc.io) is an EV charge controller with PV integration. It supports a multitude of chargers, meters, vehicle APIs and more and ties that together with a well-tested backend and a lightweight web frontend. Available as [services.evcc](#opt-services.evcc.enable).
- [infnoise](https://github.com/leetronics/infnoise), a hardware True Random Number Generator dongle.
Available as [services.infnoise](options.html#opt-services.infnoise.enable).

View File

@ -491,6 +491,7 @@
./services/hardware/vdr.nix
./services/home-automation/home-assistant.nix
./services/home-automation/zigbee2mqtt.nix
./services/home-automation/evcc.nix
./services/logging/SystemdJournal2Gelf.nix
./services/logging/awstats.nix
./services/logging/filebeat.nix

View File

@ -0,0 +1,92 @@
{ lib
, pkgs
, config
, ...
}:
with lib;
let
cfg = config.services.evcc;
format = pkgs.formats.yaml {};
configFile = format.generate "evcc.yml" cfg.settings;
package = pkgs.evcc;
in
{
meta.maintainers = with lib.maintainers; [ hexa ];
options.services.evcc = with types; {
enable = mkEnableOption (lib.mdDoc "EVCC, the extensible EV Charge Controller with PV integration");
extraArgs = mkOption {
type = listOf str;
default = [];
description = lib.mdDoc ''
Extra arguments to pass to the evcc executable.
'';
};
settings = mkOption {
type = format.type;
description = lib.mdDoc ''
evcc configuration as a Nix attribute set.
Check for possible options in the sample [evcc.dist.yaml](https://github.com/andig/evcc/blob/${package.version}/evcc.dist.yaml].
'';
};
};
config = mkIf cfg.enable {
systemd.services.evcc = {
after = [
"network-online.target"
"mosquitto.target"
];
wantedBy = [
"multi-user.target"
];
serviceConfig = {
ExecStart = "${package}/bin/evcc --config ${configFile} ${escapeShellArgs cfg.extraArgs}";
CapabilityBoundingSet = [ "" ];
DeviceAllow = [
"char-ttyUSB"
];
DevicePolicy = "closed";
DynamicUser = true;
LockPersonality = true;
MemoryDenyWriteExecute = true;
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_UNIX"
];
RestrictNamespaces = true;
RestrictRealtime = true;
PrivateTmp = true;
PrivateUsers = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups= true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged"
];
UMask = "0077";
User = "evcc";
};
};
};
meta.buildDocsInSandbox = false;
}

View File

@ -14,7 +14,7 @@ let
serviceDirectories = cfg.packages;
};
inherit (lib) mkOption types;
inherit (lib) mkOption mkIf mkMerge types;
in
@ -33,6 +33,18 @@ in
'';
};
implementation = mkOption {
type = types.enum [ "dbus" "broker" ];
default = "dbus";
description = lib.mdDoc ''
The implementation to use for the message bus defined by the D-Bus specification.
Can be either the classic dbus daemon or dbus-broker, which aims to provide high
performance and reliability, while keeping compatibility to the D-Bus
reference implementation.
'';
};
packages = mkOption {
type = types.listOf types.path;
default = [ ];
@ -66,66 +78,114 @@ in
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [
pkgs.dbus
];
config = mkIf cfg.enable (mkMerge [
{
environment.etc."dbus-1".source = configDir;
environment.etc."dbus-1".source = configDir;
users.users.messagebus = {
uid = config.ids.uids.messagebus;
description = "D-Bus system message bus daemon user";
home = homeDir;
group = "messagebus";
};
users.groups.messagebus.gid = config.ids.gids.messagebus;
systemd.packages = [
pkgs.dbus
];
security.wrappers.dbus-daemon-launch-helper = {
source = "${pkgs.dbus}/libexec/dbus-daemon-launch-helper";
owner = "root";
group = "messagebus";
setuid = true;
setgid = false;
permissions = "u+rx,g+rx,o-rx";
};
services.dbus.packages = [
pkgs.dbus
config.system.path
];
systemd.services.dbus = {
# Don't restart dbus-daemon. Bad things tend to happen if we do.
reloadIfChanged = true;
restartTriggers = [
configDir
environment.pathsToLink = [
"/etc/dbus-1"
"/share/dbus-1"
];
environment = {
LD_LIBRARY_PATH = config.system.nssModules.path;
users.users.messagebus = {
uid = config.ids.uids.messagebus;
description = "D-Bus system message bus daemon user";
home = homeDir;
group = "messagebus";
};
};
systemd.user.services.dbus = {
# Don't restart dbus-daemon. Bad things tend to happen if we do.
reloadIfChanged = true;
restartTriggers = [
configDir
users.groups.messagebus.gid = config.ids.gids.messagebus;
# You still need the dbus reference implementation installed to use dbus-broker
systemd.packages = [
pkgs.dbus
];
};
systemd.user.sockets.dbus.wantedBy = [
"sockets.target"
];
services.dbus.packages = [
pkgs.dbus
config.system.path
];
environment.pathsToLink = [
"/etc/dbus-1"
"/share/dbus-1"
];
};
systemd.user.sockets.dbus.wantedBy = [
"sockets.target"
];
}
(mkIf (cfg.implementation == "dbus") {
environment.systemPackages = [
pkgs.dbus
];
security.wrappers.dbus-daemon-launch-helper = {
source = "${pkgs.dbus}/libexec/dbus-daemon-launch-helper";
owner = "root";
group = "messagebus";
setuid = true;
setgid = false;
permissions = "u+rx,g+rx,o-rx";
};
systemd.services.dbus = {
# Don't restart dbus-daemon. Bad things tend to happen if we do.
reloadIfChanged = true;
restartTriggers = [
configDir
];
environment = {
LD_LIBRARY_PATH = config.system.nssModules.path;
};
};
systemd.user.services.dbus = {
# Don't restart dbus-daemon. Bad things tend to happen if we do.
reloadIfChanged = true;
restartTriggers = [
configDir
];
};
})
(mkIf (cfg.implementation == "broker") {
environment.systemPackages = [
pkgs.dbus-broker
];
systemd.packages = [
pkgs.dbus-broker
];
# Just to be sure we don't restart through the unit alias
systemd.services.dbus.reloadIfChanged = true;
systemd.user.services.dbus.reloadIfChanged = true;
# NixOS Systemd Module doesn't respect 'Install'
# https://github.com/NixOS/nixpkgs/issues/108643
systemd.services.dbus-broker = {
aliases = [
"dbus.service"
];
# Don't restart dbus. Bad things tend to happen if we do.
reloadIfChanged = true;
restartTriggers = [
configDir
];
environment = {
LD_LIBRARY_PATH = config.system.nssModules.path;
};
};
systemd.user.services.dbus-broker = {
aliases = [
"dbus.service"
];
# Don't restart dbus. Bad things tend to happen if we do.
reloadIfChanged = true;
restartTriggers = [
configDir
];
};
})
]);
}

View File

@ -198,6 +198,7 @@ in {
etebase-server = handleTest ./etebase-server.nix {};
etesync-dav = handleTest ./etesync-dav.nix {};
extra-python-packages = handleTest ./extra-python-packages.nix {};
evcc = handleTest ./evcc.nix {};
fancontrol = handleTest ./fancontrol.nix {};
fcitx = handleTest ./fcitx {};
fenics = handleTest ./fenics.nix {};

96
nixos/tests/evcc.nix Normal file
View File

@ -0,0 +1,96 @@
import ./make-test-python.nix ({ pkgs, lib, ...} :
{
name = "evcc";
meta.maintainers = with lib.maintainers; [ hexa ];
nodes = {
machine = { config, ... }: {
services.evcc = {
enable = true;
settings = {
network = {
schema = "http";
host = "localhost";
port = 7070;
};
log = "info";
site = {
title = "NixOS Test";
meters = {
grid = "grid";
pv = "pv";
};
};
meters = [ {
type = "custom";
name = "grid";
power = {
source = "script";
cmd = "/bin/sh -c 'echo -4500'";
};
} {
type = "custom";
name = "pv";
power = {
source = "script";
cmd = "/bin/sh -c 'echo 7500'";
};
} ];
chargers = [ {
name = "dummy-charger";
type = "custom";
status = {
source = "script";
cmd = "/bin/sh -c 'echo charger status F'";
};
enabled = {
source = "script";
cmd = "/bin/sh -c 'echo charger enabled state false'";
};
enable = {
source = "script";
cmd = "/bin/sh -c 'echo set charger enabled state true'";
};
maxcurrent = {
source = "script";
cmd = "/bin/sh -c 'echo set charger max current 7200'";
};
} ];
loadpoints = [ {
title = "Dummy";
charger = "dummy-charger";
} ];
};
};
};
};
testScript = ''
start_all()
machine.wait_for_unit("evcc.service")
machine.wait_for_open_port(7070)
with subtest("Check package version propagates into frontend"):
machine.fail(
"curl --fail http://localhost:7070 | grep '0.0.1-alpha'"
)
machine.succeed(
"curl --fail http://localhost:7070 | grep '${pkgs.evcc.version}'"
)
with subtest("Check journal for errors"):
_, output = machine.execute("journalctl -o cat -u evcc.service")
assert "ERROR" not in output
with subtest("Check systemd hardening"):
_, output = machine.execute("systemd-analyze security evcc.service | grep -v ''")
machine.log(output)
'';
})

View File

@ -12,7 +12,6 @@
, pixman
, libpng
, wayland
, wlroots
, dbus
, fcft
}:
@ -43,7 +42,6 @@ stdenv.mkDerivation rec {
pixman
libpng
wayland
wlroots
dbus
fcft
];

View File

@ -441,24 +441,24 @@
"version": "3.19.0"
},
"google": {
"hash": "sha256-qOB4UV53j0Bm0332U1YETzLfyBtGwfXs2hGDAL2BCCk=",
"hash": "sha256-etTMRjQeZoLNpFlKBWa63eowXQC8wDP/O0YdwzbmFK0=",
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/google",
"proxyVendor": true,
"repo": "terraform-provider-google",
"rev": "v4.43.1",
"vendorHash": "sha256-Hzl95NLEZlvTBpCGJYzF5rtHWfYe26TwW0pbtqWmxOo=",
"version": "4.43.1"
"rev": "v4.44.0",
"vendorHash": "sha256-X5wjho+hotqi9aZ5ABv3RY0xJj1HFH7IN/HLPKIxi2c=",
"version": "4.44.0"
},
"google-beta": {
"hash": "sha256-nNz9BgTJ8Aj3QZNpT0XK14s44+thDu4EfLvbEB8OFRc=",
"hash": "sha256-AD2ZtjjlmYZYmBA3csjIDH+4g7DTskaLeuBGjqIKpbU=",
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/google-beta",
"proxyVendor": true,
"repo": "terraform-provider-google-beta",
"rev": "v4.43.1",
"vendorHash": "sha256-Hzl95NLEZlvTBpCGJYzF5rtHWfYe26TwW0pbtqWmxOo=",
"version": "4.43.1"
"rev": "v4.44.0",
"vendorHash": "sha256-X5wjho+hotqi9aZ5ABv3RY0xJj1HFH7IN/HLPKIxi2c=",
"version": "4.44.0"
},
"googleworkspace": {
"hash": "sha256-dedYnsKHizxJZibuvJOMbJoux0W6zgKaK5fxIofKqCY=",
@ -950,13 +950,13 @@
"version": "1.7.0"
},
"rancher2": {
"hash": "sha256-TqztIk0sHevfv+BpNZJUs1XbwrbzJtcqdafGN5fTVaE=",
"hash": "sha256-DInP+DpCBOsBdlg1tiujlmN20WB5VQbeHgOiabEv9Zc=",
"owner": "rancher",
"provider-source-address": "registry.terraform.io/rancher/rancher2",
"repo": "terraform-provider-rancher2",
"rev": "v1.24.2",
"rev": "v1.25.0",
"vendorHash": "sha256-Ntq4wxXPUGbu4+6X1pBsmQsqfJ/jccTiHDJeHVpWe8Y=",
"version": "1.24.2"
"version": "1.25.0"
},
"random": {
"hash": "sha256-oYtvVK0OOHyLUG6amhkvmr6zlbzy0CKoS3DxztoLbdE=",
@ -1112,13 +1112,13 @@
"version": "0.13.5"
},
"tencentcloud": {
"hash": "sha256-HSZP6O9s6KkvaJK3xpy7uT3sjBlhBYEOu5k7VYW8MdU=",
"hash": "sha256-62G9q/MZtVnKO0ALXX9/pgkHDV6Bfdol4tSVdl0kx3I=",
"owner": "tencentcloudstack",
"provider-source-address": "registry.terraform.io/tencentcloudstack/tencentcloud",
"repo": "terraform-provider-tencentcloud",
"rev": "v1.78.12",
"rev": "v1.78.13",
"vendorHash": null,
"version": "1.78.12"
"version": "1.78.13"
},
"tfe": {
"hash": "sha256-ikuLRGm9Z+tt0Zsx7DYKNBrS08rW4DOvVWYpl3wvaeU=",

View File

@ -1,16 +1,31 @@
{ lib, fetchFromGitHub, cmake, extra-cmake-modules, pkg-config
, qtbase, qtimageformats, qtwebengine, qtx11extras, mkDerivation
, libarchive, libXdmcp, libpthreadstubs, xcbutilkeysyms }:
{ lib
, stdenv
, fetchFromGitHub
, cmake
, extra-cmake-modules
, pkg-config
, qtbase
, qtimageformats
, qtwebengine
, qtx11extras ? null # qt5 only
, libarchive
, libXdmcp
, libpthreadstubs
, wrapQtAppsHook
, xcbutilkeysyms
}:
mkDerivation rec {
let
isQt5 = lib.versions.major qtbase.version == "5";
in stdenv.mkDerivation rec {
pname = "zeal";
version = "0.6.999";
version = "0.6.20221022";
src = fetchFromGitHub {
owner = "zealdocs";
repo = "zeal";
rev = "763edca12ccd6c67e51f10891d1ced8b2510904f";
sha256 = "sha256-1/wQXkRWvpRia8UDvvvmzHinPG8q2Tz9Uoeegej9uC8=";
rev = "7ea03e4bb9754020e902a2989f56f4bc42b85c82";
sha256 = "sha256-BozRLlws56i9P7Qtc5qPZWgJR5yhYqnLQsEdsymt5us=";
};
# we only need this if we are using a version that hasn't been released. We
@ -22,13 +37,18 @@ mkDerivation rec {
-e 's@^project.*@project(Zeal VERSION ${version})@'
'';
nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
nativeBuildInputs = [ cmake extra-cmake-modules pkg-config wrapQtAppsHook ];
buildInputs = [
qtbase qtimageformats qtwebengine qtx11extras
libarchive
libXdmcp libpthreadstubs xcbutilkeysyms
];
buildInputs =
[
qtbase
qtimageformats
qtwebengine
libarchive
libXdmcp
libpthreadstubs
xcbutilkeysyms
] ++ lib.optionals isQt5 [ qtx11extras ];
meta = with lib; {
description = "A simple offline API documentation browser";

View File

@ -17,7 +17,9 @@ stdenv.mkDerivation rec {
mv * $out
'';
fixupPhase = ''
# Use preFixup instead of fixupPhase
# because we want the default fixupPhase as well
preFixup = ''
bin_files=$(find $out/bin -type f ! -name common)
for f in $bin_files ; do
wrapProgram $f --set JAVA_HOME ${jre} --prefix PATH : '${ncurses.dev}/bin'

View File

@ -1,64 +0,0 @@
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland-scanner
, libGL, wayland, wayland-protocols, libinput, libxkbcommon, pixman
, libcap, mesa, xorg
, libpng, ffmpeg_4, seatd
, enableXWayland ? true, xwayland ? null
}:
stdenv.mkDerivation rec {
pname = "wlroots";
version = "0.14.1";
src = fetchFromGitHub {
owner = "swaywm";
repo = "wlroots";
rev = version;
sha256 = "1sshp3lvlkl1i670kxhwsb4xzxl8raz6769kqvgmxzcb63ns9ay1";
};
# $out for the library and $examples for the example programs (in examples):
outputs = [ "out" "examples" ];
strictDeps = true;
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
buildInputs = [
libGL wayland wayland-protocols libinput libxkbcommon pixman
xorg.xcbutilwm xorg.libX11 libcap xorg.xcbutilimage xorg.xcbutilerrors mesa
libpng ffmpeg_4 xorg.xcbutilrenderutil seatd
]
++ lib.optional enableXWayland xwayland
;
mesonFlags =
lib.optional (!enableXWayland) "-Dxwayland=disabled"
;
postFixup = ''
# Install ALL example programs to $examples:
# screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
# screenshot output-layout multi-pointer rotation tablet touch pointer
# simple
mkdir -p $examples/bin
cd ./examples
for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do
cp "$binary" "$examples/bin/wlroots-$binary"
done
'';
meta = with lib; {
description = "A modular Wayland compositor library";
longDescription = ''
Pluggable, composable, unopinionated modules for building a Wayland
compositor; or about 50,000 lines of code you were going to write anyway.
'';
inherit (src.meta) homepage;
changelog = "https://github.com/swaywm/wlroots/releases/tag/${version}";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ primeos synthetica ];
};
}

View File

@ -1,69 +0,0 @@
{ lib, stdenv, fetchFromGitLab, meson, ninja, pkg-config, wayland-scanner
, libGL, wayland, wayland-protocols, libinput, libxkbcommon, pixman
,libcap, mesa, xorg
, libpng, ffmpeg_4, seatd, vulkan-loader, glslang
, nixosTests
, enableXWayland ? true, xwayland ? null
}:
stdenv.mkDerivation rec {
pname = "wlroots";
version = "0.15.1";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "wlroots";
repo = "wlroots";
rev = version;
sha256 = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM=";
};
# $out for the library and $examples for the example programs (in examples):
outputs = [ "out" "examples" ];
strictDeps = true;
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ meson ninja pkg-config wayland-scanner glslang ];
buildInputs = [
libGL wayland wayland-protocols libinput libxkbcommon pixman
xorg.xcbutilwm xorg.libX11 libcap xorg.xcbutilimage xorg.xcbutilerrors mesa
libpng ffmpeg_4 xorg.xcbutilrenderutil seatd vulkan-loader
]
++ lib.optional enableXWayland xwayland
;
mesonFlags =
lib.optional (!enableXWayland) "-Dxwayland=disabled"
;
postFixup = ''
# Install ALL example programs to $examples:
# screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
# screenshot output-layout multi-pointer rotation tablet touch pointer
# simple
mkdir -p $examples/bin
cd ./examples
for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do
cp "$binary" "$examples/bin/wlroots-$binary"
done
'';
# Test via TinyWL (the "minimum viable product" Wayland compositor based on wlroots):
passthru.tests.tinywl = nixosTests.tinywl;
meta = with lib; {
description = "A modular Wayland compositor library";
longDescription = ''
Pluggable, composable, unopinionated modules for building a Wayland
compositor; or about 50,000 lines of code you were going to write anyway.
'';
inherit (src.meta) homepage;
changelog = "https://gitlab.freedesktop.org/wlroots/wlroots/-/tags/${version}";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ primeos synthetica ];
};
}

View File

@ -0,0 +1,135 @@
{ lib
, stdenv
, fetchFromGitLab
, meson
, ninja
, pkg-config
, wayland-scanner
, libGL
, wayland
, wayland-protocols
, libinput
, libxkbcommon
, pixman
, libcap
, mesa
, xorg
, libpng
, ffmpeg_4
, hwdata
, seatd
, vulkan-loader
, glslang
, nixosTests
, enableXWayland ? true
, xwayland ? null
}:
let
generic = { version, hash, extraBuildInputs ? [ ], extraNativeBuildInputs ? [ ], extraPatch ? "" }:
stdenv.mkDerivation rec {
pname = "wlroots";
inherit version;
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "wlroots";
repo = "wlroots";
rev = version;
inherit hash;
};
postPatch = extraPatch;
# $out for the library and $examples for the example programs (in examples):
outputs = [ "out" "examples" ];
strictDeps = true;
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ]
++ extraNativeBuildInputs;
buildInputs = [
ffmpeg_4
libGL
libcap
libinput
libpng
libxkbcommon
mesa
pixman
seatd
vulkan-loader
wayland
wayland-protocols
xorg.libX11
xorg.xcbutilerrors
xorg.xcbutilimage
xorg.xcbutilrenderutil
xorg.xcbutilwm
]
++ lib.optional enableXWayland xwayland
++ extraBuildInputs;
mesonFlags =
lib.optional (!enableXWayland) "-Dxwayland=disabled"
;
postFixup = ''
# Install ALL example programs to $examples:
# screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
# screenshot output-layout multi-pointer rotation tablet touch pointer
# simple
mkdir -p $examples/bin
cd ./examples
for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do
cp "$binary" "$examples/bin/wlroots-$binary"
done
'';
# Test via TinyWL (the "minimum viable product" Wayland compositor based on wlroots):
passthru.tests.tinywl = nixosTests.tinywl;
meta = with lib; {
description = "A modular Wayland compositor library";
longDescription = ''
Pluggable, composable, unopinionated modules for building a Wayland
compositor; or about 50,000 lines of code you were going to write anyway.
'';
inherit (src.meta) homepage;
changelog = "https://gitlab.freedesktop.org/wlroots/wlroots/-/tags/${version}";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ primeos synthetica ];
};
};
in
rec {
wlroots_0_14 = generic {
version = "0.14.1";
hash = "sha256-wauk7TCL/V7fxjOZY77KiPbfydIc9gmOiYFOuum4UOs=";
};
wlroots_0_15 = generic {
version = "0.15.1";
hash = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM=";
extraBuildInputs = [ vulkan-loader ];
extraNativeBuildInputs = [ glslang ];
};
wlroots_0_16 = generic {
version = "0.16.0";
hash = "sha256-k7BFx1xvvsdCXNWX0XeZYwv8H/myk4p42i2Y6vjILqM=";
extraBuildInputs = [ vulkan-loader ];
extraNativeBuildInputs = [ glslang ];
extraPatch = ''
substituteInPlace backend/drm/meson.build \
--replace /usr/share/hwdata/ ${hwdata}/share/hwdata/
'';
};
wlroots = wlroots_0_15;
}

View File

@ -1,17 +1,42 @@
{ lib, buildPythonPackage, fetchPypi }:
{ lib
, buildPythonPackage
, fetchPypi
, pythonOlder
, setuptools
, pytestCheckHook
, lxml
}:
buildPythonPackage rec {
pname = "cssselect";
version = "1.1.0";
version = "1.2.0";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
sha256 = "f95f8dedd925fd8f54edb3d2dfb44c190d9d18512377d3c1e2388d16126879bc";
sha256 = "666b19839cfaddb9ce9d36bfe4c969132c647b92fc9088c4e23f786b30f1b3dc";
};
# AttributeError: 'module' object has no attribute 'tests'
doCheck = false;
nativeBuildInputs = [
setuptools
];
checkInputs = [
pytestCheckHook
lxml
];
pythonImportsCheck = [
"cssselect"
];
meta = with lib; {
description = "CSS Selectors for Python";
homepage = "https://cssselect.readthedocs.io/";
changelog = "https://github.com/scrapy/cssselect/v${version}//CHANGES";
license = licenses.bsd3;
maintainers = with maintainers; [ ];
};
}

View File

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "pebble";
version = "5.0.2";
version = "5.0.3";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -16,7 +16,7 @@ buildPythonPackage rec {
src = fetchPypi {
pname = "Pebble";
inherit version;
hash = "sha256-nFjAPq+SDDEodETG/vOdxTuurJ3iIerRBPXJtI6L1Yc=";
hash = "sha256-vc/Z6n4K7biVsgQXfBnm1lQ9mWL040AuurIXUASGPag=";
};
checkInputs = [

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "esbuild";
version = "0.15.14";
version = "0.15.15";
src = fetchFromGitHub {
owner = "evanw";
repo = "esbuild";
rev = "v${version}";
sha256 = "sha256-RcXVynR/dHI0Wn9gTQsYVjxqzAfeiI52Ph+hfpM9RhU=";
sha256 = "sha256-vWpm9tbzLZE+rrEHC6mBH+ajMdhdAk9Fwy5MBFG35ss=";
};
vendorSha256 = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-expand";
version = "1.0.32";
version = "1.0.35";
src = fetchFromGitHub {
owner = "dtolnay";
repo = pname;
rev = version;
sha256 = "sha256-5zWJsc0OKgQMp0PeCuL99RE/Uj5sudXRMITjoKniPqQ=";
sha256 = "sha256-hJb4FLL3+AMNLL05eQc7Mkhp0KEGxmHg8/ETDoZiLV4=";
};
cargoSha256 = "sha256-/euiu7WNFY89QU1BKFfOAn7k93dZpuwbS6u2A6MDsoM=";
cargoSha256 = "sha256-wKVlmO2/ugAb7vUSIGMz0WGnjEVEsm459DV9FaM28Mk=";
buildInputs = lib.optional stdenv.isDarwin libiconv;

View File

@ -0,0 +1,96 @@
{ lib
, buildGoModule
, fetchFromGitHub
, fetchNpmDeps
, cacert
, go
, git
, enumer
, mockgen
, nodejs
, npmHooks
, nix-update-script
, nixosTests
, stdenv
}:
buildGoModule rec {
pname = "evcc";
version = "0.107.1";
src = fetchFromGitHub {
owner = "evcc-io";
repo = pname;
rev = version;
hash = "sha256-Yu7ebZ6WkLpdvmg7H9A1Sveyu9SRuQ+78gFrCZrYhCU=";
};
vendorHash = "sha256-10W1BNHcdP77m7lJ/mc+jQeUigoUid3K0wI4bUm5y+s=";
npmDeps = fetchNpmDeps {
inherit src;
hash = "sha256-+l5LuxJAjrTvOL5XEQ4OIktdupSpn6IqrNX5x4MRmNw=";
};
nativeBuildInputs = [
nodejs
npmHooks.npmConfigHook
];
overrideModAttrs = _: {
nativeBuildInputs = [
enumer
go
git
cacert
mockgen
];
preBuild = ''
make assets
'';
};
tags = [
"release"
];
ldflags = [
"-X github.com/evcc-io/evcc/server.Version=${version}"
"-X github.com/evcc-io/evcc/server.Commit=${src.rev}"
"-s"
"-w"
];
npmInstallFlags = [
"--legacy-peer-deps"
];
preBuild = ''
make ui
'';
doCheck = !stdenv.isDarwin; # tries to bind to local network, doesn't work in darwin sandbox
preCheck = ''
# requires network access
rm meter/template_test.go
'';
passthru = {
tests = {
inherit (nixosTests) evcc;
};
updateScript = nix-update-script {
attrPath = pname;
};
};
meta = with lib; {
description = "EV Charge Controller";
homepage = "https://evcc.io";
changelog = "https://github.com/andig/evcc/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -9,13 +9,13 @@
buildDotnetModule rec {
pname = "jackett";
version = "0.20.2264";
version = "0.20.2271";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "Y1m828STKL4ANuf11oCekvT2ctCRBlT7Blyvvoltdxc=";
sha256 = "Sngvd9OWCB2I0qfYvb7yEGb7HiWuHtc+jU6O5r68mbU=";
};
projectFile = "src/Jackett.Server/Jackett.Server.csproj";

View File

@ -26,14 +26,14 @@
stdenv.mkDerivation rec {
pname = "dwarfs";
version = "0.6.1";
version = "0.6.2";
src = fetchFromGitHub {
owner = "mhx";
repo = "dwarfs";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "sha256-bGJkgcq8JxueRTX08QpJv1A0O5wXbiIgUY7BrY0Ln/M=";
sha256 = "sha256-fA/3AooDndqYiK215cu/zTqCqeccHnwIX2CfJ9sC+Fc=";
};
patches = with lib.versions; [
@ -59,6 +59,10 @@ stdenv.mkDerivation rec {
# may be added under an option in the future
# "-DWITH_LEGACY_FUSE=ON"
"-DWITH_TESTS=ON"
# temporary hack until folly builds work on aarch64,
# see https://github.com/facebook/folly/issues/1880
"-DCMAKE_LIBRARY_ARCHITECTURE=${if stdenv.isx86_64 then "x86_64" else "dummy"}"
];
nativeBuildInputs = [

View File

@ -2,7 +2,7 @@
python3Packages.buildPythonApplication rec {
pname = "broadlink-cli";
version = "0.18.2";
version = "0.18.3";
# the tools are available as part of the source distribution from GH but
# not pypi, so we have to fetch them here.
@ -10,7 +10,7 @@ python3Packages.buildPythonApplication rec {
owner = "mjg59";
repo = "python-broadlink";
rev = "refs/tags/${version}";
sha256 = "sha256-JX+Io5EP1OgtP7T+UQtkfCPWE1rd3MTrCYRhU9C0+0c=";
sha256 = "sha256-8bSlMA5Nb3hqpVMeHlgb8AkKt5JrfEiyKjobxRBdmNM=";
};
format = "other";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "cyberchef";
version = "9.48.0";
version = "9.49.0";
src = fetchzip {
url = "https://github.com/gchq/CyberChef/releases/download/v${version}/CyberChef_v${version}.zip";
sha256 = "sha256-tKNU+gUcuZMjsQes/vpEpn216/0fWCgb0mgvJ8WWoDQ=";
sha256 = "sha256-5cqCPxyH4O4TzAIwRR2oyWMzIl5Hi5YcdOKdpl518zw=";
stripRoot = false;
};

View File

@ -0,0 +1,26 @@
{ lib
, stdenv
, fetchFromGitHub
, buildGoModule
}:
buildGoModule rec {
pname = "enumer";
version = "1.5.7";
src = fetchFromGitHub {
owner = "dmarkham";
repo = "enumer";
rev = "refs/tags/v${version}";
hash = "sha256-2fVWrrWOiCtg7I3Lul2PgQ2u/qDEDioPSB61Tp0rfEo=";
};
vendorSha256 = "sha256-BmFv0ytRnjaB7z7Gb+38Fw2ObagnaFMnMhlejhaGxsk=";
meta = with lib; {
description = "Go tool to auto generate methods for enums";
homepage = "https://github.com/dmarkham/enumer";
license = licenses.bsd2;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -2,18 +2,18 @@
buildGoModule rec {
pname = "godu";
version = "1.3.0";
version = "1.4.1";
src = fetchFromGitHub {
owner = "viktomas";
repo = pname;
rev = "v${version}";
sha256 = "1fp8iq4x0qiswksznnd6qh7c6g5pwglzz6ga11a7vgic0201wsvb";
hash = "sha256-fJeSUAuNELZZ1DcybNsYd2ZX93VYWsLum5tHp68ZVlo=";
};
patches = [ ./go-mod.patch ];
vendorHash = "sha256-8cZCeZ0gqxqbwB0WuEOFmEUNQd3/KcLeN0eLGfWG8BY=";
vendorSha256 = "1zq7b0zn24cbrjssk4g03i90szp1ms7ila4khwcm7hp9n1py245s";
ldflags = [ "-s" "-w" ];
meta = with lib; {
description = "Utility helping to discover large files/folders";

View File

@ -1,33 +0,0 @@
diff --git a/go.mod b/go.mod
index cf8f2fb..e405e03 100644
--- a/go.mod
+++ b/go.mod
@@ -5,5 +5,6 @@ go 1.14
require (
github.com/gdamore/tcell v1.1.1
github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd
+ github.com/mattn/go-isatty v0.0.12 // indirect
github.com/stretchr/testify v1.3.0
)
diff --git a/go.sum b/go.sum
index 23c1232..e25c87e 100644
--- a/go.sum
+++ b/go.sum
@@ -8,6 +8,8 @@ github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd h1:1e+0Z+T4t1mKL5xxv
github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd/go.mod h1:qkLSc0A5EXSP6B04TrN4oQoxqFI7A8XvoXSlJi8cwk8=
github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08 h1:5MnxBC15uMxFv5FY/J/8vzyaBiArCOkMdFT9Jsw78iY=
github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08/go.mod h1:NXg0ArsFk0Y01623LgUqoqcouGDB+PwCCQlrwrG6xJ4=
+github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
+github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -16,6 +18,8 @@ github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg=
+golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
gopkg.in/DATA-DOG/go-sqlmock.v1 v1.3.0 h1:FVCohIoYO7IJoDDVpV2pdq7SgrMH6wHnuTyrdrxJNoY=

View File

@ -0,0 +1,26 @@
{ lib
, buildGoModule
, fetchFromSourcehut
}:
buildGoModule rec {
pname = "mnc";
version = "0.4";
vendorSha256 = "sha256-H0KmGTWyjZOZLIEWophCwRYPeKLxBC050RI7cMXNbPs=";
src = fetchFromSourcehut {
owner = "~anjan";
repo = "mnc";
rev = version;
sha256 = "sha256-S7MBIxuYI+cc8OMQULt7VS7ouPqhq0Jk+rz6E5GyKac=";
};
meta = with lib; {
description = "Opens the user's crontab and echos the time when the next cronjob will be ran";
homepage = "https://git.sr.ht/~anjan/mnc";
license = licenses.unlicense;
platforms = platforms.linux;
maintainers = with maintainers; [ wentam ];
};
}

View File

@ -8,13 +8,13 @@
buildGoModule rec {
pname = "gitleaks";
version = "8.15.0";
version = "8.15.1";
src = fetchFromGitHub {
owner = "zricethezav";
repo = pname;
rev = "v${version}";
sha256 = "sha256-KqShYaUODClKkbLs3jaj55WXy9HyyBzvY5KdNOqEXPE=";
sha256 = "sha256-iIjQytsZDz9H5wT44jBBZCx8NvfAhNBl7pTv3mCkeMY=";
};
vendorSha256 = "sha256-Ev0/CSpwJDmc+Dvu/bFDzsgsq80rWImJWXNAUqYHgoE=";

View File

@ -4,13 +4,13 @@ let
generic = { pname, packageToBuild, description }:
buildGoModule rec {
inherit pname;
version = "1.0.0";
version = "1.0.1";
src = fetchFromGitHub {
owner = "sigstore";
repo = "rekor";
rev = "v${version}";
sha256 = "sha256-yFUpaKfZUgT/KZyZLEeNGnD0SS4iBAQfXRy/Yiuj9g8=";
sha256 = "sha256-WVAIhsbxwwvUyuLQLTcMHx9B5UsJxBvmS9MXYxVNiNs=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;

View File

@ -480,6 +480,8 @@ with pkgs;
efficient-compression-tool = callPackage ../tools/compression/efficient-compression-tool { };
enumer = callPackage ../tools/misc/enumer { };
evans = callPackage ../development/tools/evans { };
expressvpn = callPackage ../applications/networking/expressvpn { };
@ -1394,6 +1396,8 @@ with pkgs;
midi-trigger = callPackage ../applications/audio/midi-trigger { };
mnc = callPackage ../tools/misc/mnc { };
mprocs = callPackage ../tools/misc/mprocs { };
nominatim = callPackage ../servers/nominatim { };
@ -6452,6 +6456,8 @@ with pkgs;
ettercap = callPackage ../applications/networking/sniffers/ettercap { };
evcc = callPackage ../servers/home-automation/evcc { };
eventstat = callPackage ../os-specific/linux/eventstat { };
evillimiter = python3Packages.callPackage ../tools/networking/evillimiter { };
@ -27157,7 +27163,9 @@ with pkgs;
inherit (plasma5Packages) breeze-icons;
};
zeal = libsForQt5.callPackage ../data/documentation/zeal { };
zeal-qt5 = libsForQt5.callPackage ../data/documentation/zeal { };
zeal-qt6 = qt6Packages.callPackage ../data/documentation/zeal { };
zeal = zeal-qt5;
zilla-slab = callPackage ../data/fonts/zilla-slab { };
@ -29391,9 +29399,11 @@ with pkgs;
electron = electron_17;
};
wlroots = wlroots_0_15;
wlroots_0_14 = callPackage ../development/libraries/wlroots/0.14.nix { };
wlroots_0_15 = callPackage ../development/libraries/wlroots/0.15.nix { };
inherit (callPackages ../development/libraries/wlroots {})
wlroots_0_14
wlroots_0_15
wlroots_0_16
wlroots;
sway-unwrapped = callPackage ../applications/window-managers/sway { };
sway = callPackage ../applications/window-managers/sway/wrapper.nix { };