stdenv.mkDerivation rec { pname = "vulkan-tools"; <del> version = "1.2.189.1"; </del> <ins> version = "1.2.198.0"; </ins> # It's not strictly necessary to have matching versions here, however # since we're using the SDK version we may as well be consistent with


owner = "KhronosGroup"; repo = "Vulkan-Tools"; rev = "sdk-${version}"; <del> sha256 = "0izmzyj6gb51d71vbdjcgd9qw34aidvbmz0mg4bkc13n48w8s9vj"; </del> <ins> sha256 = "sha256-oNJm9Gi41aA5krkpkQI0EYdIlMcQpdodv9yqXhnNURA="; </ins> }); nativeBuildInputs = [ cmake ];


, autoPatchelfHook , alsa-lib , cups <ins> , libpulseaudio </ins> , libX11 , libXScrnSaver , libXtst


version = "8.0.0"; src = fetchurl { <del> url = "https://web.archive.org/web/20211130172544/https://tetr.io/about/desktop/builds/TETR.IO%20Setup.deb"; </del> <ins> url = "https://web.archive.org/web/20211228025517if_/https://tetr.io/about/desktop/builds/TETR.IO%20Setup.deb"; </ins> name = "tetrio-desktop.deb"; sha256 = "1nlblfhrph4cw8rpic9icrs78mzrxyskl7ggyy2i8bk9i07i21xf"; };


libPath = lib.makeLibraryPath [ alsa-lib cups <ins> libpulseaudio </ins> libX11 libXScrnSaver libXtst


postPatch = '' sed -i setup.py -e "/pip>=/c'pip'," substituteInPlace setup.py  <del> --replace 'typing==3.6.4' 'typing' </del> <ins> --replace "typing==3.6.4" "typing"  --replace "attrs>=19.3.0,<21.3.0" "attrs" </ins> ''; disabledTestPaths = [


, aioredis , async_generator , buildPythonPackage <del> , fetchPypi </del> <ins> , fetchFromGitHub , fetchpatch </ins> , hypothesis , lupa , pytest-asyncio


version = "1.7.0"; format = "setuptools"; <del> disabled = pythonOlder "3.5"; </del> <ins> disabled = pythonOlder "3.7"; </ins> <del> src = fetchPypi { inherit pname version; sha256 = "sha256-yb0S5DAzbL0+GJ+uDpHrmZl7k+dtv91u1n+jUtxoTHE="; </del> <ins> src = fetchFromGitHub { owner = "jamesls"; repo = pname; rev = version; hash = "sha256-P6PUg9SY0Qshlvj+iV1xdrzVLJ9JXUV4cGHUynKO3m0="; </ins> }; propagatedBuildInputs = [


pytestCheckHook ]; <ins> patches = [ # Support for redis <= 4.1.0, https://github.com/jamesls/fakeredis/pull/324 (fetchpatch { name = "support-redis-4.1.0.patch"; url = "https://github.com/jamesls/fakeredis/commit/8ef8dc6dacc9baf571d66a25ffbf0fadd7c70f78.patch"; sha256 = "sha256-4DrF/5WEWQWlJZtAi4qobMDyRAAcO/weHIaK9waN00k="; }) ]; </ins> disabledTestPaths = [ # AttributeError: 'AsyncGenerator' object has no attribute XXXX "test/test_aioredis2.py"


<ins> { lib, fetchFromGitHub, python3Packages }: python3Packages.buildPythonPackage rec { pname = "open-fprintd"; version = "0.6"; src = fetchFromGitHub { owner = "uunicorn"; repo = pname; rev = version; sha256 = "sha256-uVFuwtsmR/9epoqot3lJ/5v5OuJjuRjL7FJF7oXNDzU="; }; propagatedBuildInputs = with python3Packages; [ dbus-python pygobject3 ]; checkInputs = with python3Packages; [ dbus-python ]; postInstall = '' install -D -m 644 debian/open-fprintd.service  $out/lib/systemd/system/open-fprintd.service install -D -m 644 debian/open-fprintd-resume.service  $out/lib/systemd/system/open-fprintd-resume.service install -D -m 644 debian/open-fprintd-suspend.service  $out/lib/systemd/system/open-fprintd-suspend.service substituteInPlace $out/lib/systemd/system/open-fprintd.service  --replace /usr/lib/open-fprintd "$out/lib/open-fprintd" substituteInPlace $out/lib/systemd/system/open-fprintd-resume.service  --replace /usr/lib/open-fprintd "$out/lib/open-fprintd" substituteInPlace $out/lib/systemd/system/open-fprintd-suspend.service  --replace /usr/lib/open-fprintd "$out/lib/open-fprintd" ''; postFixup = '' wrapPythonProgramsIn "$out/lib/open-fprintd" "$out $pythonPath" ''; meta = with lib; { description = "Fprintd replacement which allows you to have your own backend as a standalone service"; homepage = "https://github.com/uunicorn/open-fprintd"; license = licenses.gpl2Only; platforms = platforms.linux; }; } </ins>


, libXt, qt, readline , useSCEL ? false, emacs }: <del> let optional = stdenv.lib.optional; in stdenv.mkDerivation rec { </del> <ins> let optional = stdenv.lib.optional; ljack2 = libjack2.override { gcc = gcc; }; in stdenv.mkDerivation rec { </ins> name = "supercollider-3.6.6"; meta = {


cmakeFlags = '' -DSC_WII=OFF <del> -DSC_EL=${if useSCEL then "ON" else "OFF"} </del> <ins> -DSC_EL=${if useSCEL then "ON" else "OFF"} </ins> ''; nativeBuildInputs = [ cmake pkgconfig ]; <del> buildInputs = [ gcc libjack2 libsndfile fftw curl libXt qt readline ] </del> <ins> buildInputs = [ gcc ljack2 libsndfile fftw curl libXt qt readline ] </ins> ++ optional useSCEL emacs; }


{ stdenv, fetchFromGitHub, pkgconfig, python, makeWrapper <del> , bash, libsamplerate, libsndfile, readline </del> <ins> , bash, libsamplerate, libsndfile, readline, gcc </ins> # Optional Dependencies , dbus ? null, pythonDBus ? null, libffado ? null, alsaLib ? null


}; nativeBuildInputs = [ pkgconfig python makeWrapper ]; <del> buildInputs = [ </del> <ins> buildInputs = [ gcc </ins> python libsamplerate libsndfile readline


let jre' = jre_minimal.override { <del> modules = [ "java.base" "java.desktop" ]; </del> <ins> modules = [ "java.base" "java.desktop" "java.logging" ]; </ins> }; importVariant = f: import (./. + "/src-${variant}/${f}");


{ lib, stdenv, fetchurl, cmake, bison, pkg-config , boost, libedit, libevent, lz4, ncurses, openssl, protobuf, readline, zlib, perl , cctools, CoreServices, developer_cmds <del> , libtirpc, rpcsvc-proto </del> <ins> , libtirpc, rpcsvc-proto, nixosTests </ins> }: # Note: zlib is not required; MySQL can use an internal zlib.


let self = stdenv.mkDerivation rec { pname = "mysql"; <del> version = "5.7.27"; </del> <ins> version = "5.7.37"; </ins> src = fetchurl { url = "mirror://mysql/MySQL-5.7/${pname}-${version}.tar.gz"; <del> sha256 = "1fhv16zr46pxm1j8vb8x8mh3nwzglg01arz8gnazbmjqldr5idpq"; </del> <ins> sha256 = "sha256-qZqaqGNdJWbat2Sy3la+0XMDZdNg4guyf1Y5LOVOGL0="; </ins> }; preConfigure = lib.optionalString stdenv.isDarwin ''


connector-c = self; server = self; mysqlVersion = "5.7"; <ins> tests = nixosTests.mysql; </ins> }; meta = with lib; {


homepage = "https://www.jool.mx/"; description = "Fairly compliant SIIT and Stateful NAT64 for Linux - kernel modules"; platforms = platforms.linux; <ins> license = licenses.gpl2Only; </ins> maintainers = with maintainers; [ fpletz ]; }; }


{ fetchFromGitHub }: rec { <del> version = "4.1.6"; </del> <ins> version = "4.1.7"; </ins> src = fetchFromGitHub { owner = "NICMx"; repo = "Jool"; rev = "v${version}"; <del> sha256 = "09avkiazpfxzrgr3av58jbina5x9jqvqhjkn39475pfhfhrlv9fv"; </del> <ins> sha256 = "08z23mi6xkr6zzp0hzh1cppvl2y0177s0lnpxqbpy8jiii5fxw8f"; </ins> }; }


source = json.generate "v4l2-monitor.conf" configs.v4l2-monitor; }; <ins> environment.etc."pipewire/media-session.d/with-audio" = mkIf config.services.pipewire.audio.enable { text = ""; }; </ins> environment.etc."pipewire/media-session.d/with-alsa" = mkIf config.services.pipewire.alsa.enable { text = "";


}; }; <ins> audio = { enable = lib.mkOption { type = lib.types.bool; # this is for backwards compatibility default = cfg.alsa.enable || cfg.jack.enable || cfg.pulse.enable; defaultText = lib.literalExpression "config.services.pipewire.alsa.enable || config.services.pipewire.jack.enable || config.services.pipewire.pulse.enable"; description = "Whether to use PipeWire as the primary sound server"; }; }; </ins> alsa = { enable = mkEnableOption "ALSA support"; support32Bit = mkEnableOption "32-bit ALSA support on 64-bit systems";


config = mkIf cfg.enable { assertions = [ { <del> assertion = cfg.pulse.enable -> !config.hardware.pulseaudio.enable; message = "PipeWire based PulseAudio server emulation replaces PulseAudio. This option requires `hardware.pulseaudio.enable` to be set to false"; </del> <ins> assertion = cfg.audio.enable -> !config.hardware.pulseaudio.enable; message = "Using PipeWire as the sound server conflicts with PulseAudio. This option requires `hardware.pulseaudio.enable` to be set to false"; </ins> } { assertion = cfg.jack.enable -> !config.services.jack.jackd.enable; message = "PipeWire based JACK emulation doesn't use the JACK service. This option requires `services.jack.jackd.enable` to be set to false"; } <ins> { # JACK intentionally not checked, as PW-on-JACK setups are a thing that some people may want assertion = (cfg.alsa.enable || cfg.pulse.enable) -> cfg.audio.enable; message = "Using PipeWire's ALSA/PulseAudio compatibility layers requires running PipeWire as the sound server. Set `services.pipewire.audio.enable` to true."; } </ins> ]; environment.systemPackages = [ cfg.package ]


{ config, lib, pkgs, ... }: let <del> cfg = config.services.pipewire.wireplumber; </del> <ins> pwCfg = config.services.pipewire; cfg = pwCfg.wireplumber; pwUsedForAudio = pwCfg.audio.enable; </ins> in { meta.maintainers = [ lib.maintainers.k900 ];


]; environment.systemPackages = [ cfg.package ]; <ins> environment.etc."wireplumber/main.lua.d/80-nixos.lua" = lib.mkIf (!pwUsedForAudio) { text = '' # Pipewire is not used for audio, so prevent it from grabbing audio devices alsa_monitor.enable = function() end ''; }; </ins> systemd.packages = [ cfg.package ]; systemd.services.wireplumber.enable = config.services.pipewire.systemWide;


description = "Text-based addressbook program designed to use with mutt mail client"; license = lib.licenses.gpl2; maintainers = [ lib.maintainers.edwtjo ]; <del> platforms = with lib.platforms; linux; </del> <ins> platforms = with lib.platforms; unix; </ins> }; }


in py.pkgs.buildPythonApplication rec { pname = "salt"; <del> version = "3004"; </del> <ins> version = "3004.1"; </ins> src = py.pkgs.fetchPypi { inherit pname version; <del> sha256 = "PVNWG8huAU3KLsPcmBB5vgTVXqBHiQyr3iXlsQv6WxM="; </del> <ins> hash = "sha256-fzRKJDJkik8HjapazMaNzf/hCVzqE+wh5QQTVg8Ewpg="; </ins> }; propagatedBuildInputs = with py.pkgs; [


}: python3.pkgs.buildPythonApplication rec { pname = "salt"; <del> version = "3003.3"; </del> <ins> version = "3003.4"; </ins> src = python3.pkgs.fetchPypi { inherit pname version; <del> sha256 = "pvnIyLXiYA6oYgtKZzcd4XYRvrT42X5LubCzCKN+0eI="; </del> <ins> sha256 = "53uAjlG0HX5Jae4VWIrAT9DbmzPfonEPVEGNfrOHJM0="; </ins> }; propagatedBuildInputs = with python3.pkgs; [


rustPlatform.buildRustPackage rec { pname = "lapce"; <del> version = "0.0.10"; </del> <ins> version = "0.0.12"; </ins> src = fetchFromGitHub { owner = "lapce"; repo = pname; rev = "v${version}"; <del> sha256 = "tOVFm4DFQurFU4DtpPwxXQLbTGCZnrV1FfYKtvkRxRE="; </del> <ins> sha256 = "sha256-ZFQjQ5+G0b0Fgg3+du/drt+62rC/TCNR5MIdJXAkTrE="; </ins> }; <del> cargoPatches = [ ./fix-version.patch ]; cargoSha256 = "BwB3KgmI5XnZ5uHv6f+kGKBzpyxPWcoKvF7qw90eorI="; </del> <ins> cargoSha256 = "sha256-sMTootPsenaWzLLFImo6HWC1pcm2uFupPhVWsUJp1Ak="; </ins> nativeBuildInputs = [ cmake


<del> diff --git a/Cargo.lock b/Cargo.lock index bc9a0f8..45a74ad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2165,7 +2165,7 @@ dependencies = [ [[package]] name = "lapce" -version = "0.0.9" +version = "0.0.10" dependencies = [ "lapce-core", "lapce-proxy", @@ -2173,7 +2173,7 @@ dependencies = [ [[package]] name = "lapce-core" -version = "0.0.9" +version = "0.0.10" dependencies = [ "Inflector", "alacritty_terminal 0.15.0", @@ -2233,7 +2233,7 @@ dependencies = [ [[package]] name = "lapce-proxy" -version = "0.0.9" +version = "0.0.10" dependencies = [ "alacritty_terminal 0.16.0-rc2", "anyhow", </del>


--replace 'ARFLAGS="-o"' 'ARFLAGS="-r"' ''; <ins> patches = [ ./fix-configure-issue-cross.patch ]; </ins> outputs = [ "out" "dev" ] ++ lib.optional splitStaticOutput "static"; setOutputFlags = false;


<ins> From 05796d3d8d5546cf1b4dfe2cd72ab746afae505d Mon Sep 17 00:00:00 2001 From: Mark Adler <madler@alumni.caltech.edu> Date: Mon, 28 Mar 2022 18:34:10 -0700 Subject: [PATCH] Fix configure issue that discarded provided CC definition. --- configure | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure b/configure index 52ff4a04e..3fa3e8618 100755 --- a/configure +++ b/configure @@ -174,7 +174,10 @@ if test -z "$CC"; then else cc=${CROSS_PREFIX}cc fi +else +  cc=${CC} fi + cflags=${CFLAGS-"-O3"} # to force the asm version use: CFLAGS="-O3 -DASMV" ./configure case "$cc" in </ins>


}: mkDerivation rec { pname = "jl"; <del> version = "0.0.5"; src = fetchFromGitHub { owner = "chrisdone"; repo = "jl"; rev = "v${version}"; sha256 = "1hlnwsl4cj0l4x8dxwda2fcnk789cwlphl9gv9cfrivl43mgkgar"; }; patches = [ # MonadFail compatibility patch. Should be removed with the next release (fetchpatch { url = "https://github.com/chrisdone/jl/commit/6d40308811cbc22a96b47ebe69ec308b4e9fd356.patch"; sha256 = "1pg92ffkg8kim5r8rz8js6fjqyjisg1266sf7p9jyxjgsskwpa4g"; }) ]; </del> <ins> version = "0.1.0"; sha256 = "15vvn3swjpc5qmdng1fcd8m9nif4qnjmpmxc9hdw5cswzl055lkj"; </ins> isLibrary = true; isExecutable = true; libraryHaskellDepends = [


description = "Functional sed for JSON"; maintainers = with lib.maintainers; [ fgaz ]; homepage = "https://github.com/chrisdone/jl"; <del> # jl needs to be updated to work with aeson-2.0. # As far as I can tell, there is unfortunately no where to report issues upstream # for us to be able to track when upstream adds aeson-2.0 support. hydraPlatforms = lib.platforms.none; broken = true; </del> }


}); in { <del> subversion_1_10 = common { version = "1.10.8"; sha256 = "sha256-CnO6MSe1ov/7j+4rcCmE8qgI3nEKjbKLfdQBDYvlDlo="; }; </del> subversion = common { version = "1.14.2"; sha256 = "sha256-yRMOjQt1copm8OcDj8dwUuZxgw14W1YWqtU7SBDTzCg=";


stanchion = throw "Stanchion was part of riak-cs which is not maintained anymore"; # added 2020-10-14 steam-run-native = steam-run; # added 2022-02-21 stumpwm-git = throw "stumpwm-git has been broken for a long time and lispPackages.stumpwm follows Quicklisp that is close to git version"; # Added 2021-05-09 <ins> subversion_1_10 = throw "subversion_1_10 has been removed as it has reached its end of life"; # Added 2022-04-26 </ins> subversion19 = throw "subversion19 has been removed as it has reached its end of life"; # Added 2021-03-31 sudolikeaboss = throw "sudolikeaboss is no longer maintained by upstream"; # Added 2022-04-16 sundials_3 = throw "sundials_3 was removed in 2020-02. outdated and no longer needed";


sublime-merge-dev; inherit (callPackages ../applications/version-management/subversion { sasl = cyrus_sasl; }) <del> subversion_1_10 subversion; </del> <ins> subversion; </ins> subversionClient = subversion.override { bdbSupport = false;


{ stdenv , buildPythonPackage , fetchFromGitHub <ins> , fetchpatch </ins> , python , bootstrapped-pip , lib


patches = [ ./tag-date.patch ./setuptools-distutils-C++.patch <ins> # Use sysconfigdata to find headers. Fixes cross-compilation of extension modules. # https://github.com/pypa/distutils/pull/145 (fetchpatch { url = "https://github.com/pypa/distutils/commit/aed7294b7b0c228cc0666a8b04f2959bf310ab57.patch"; hash = "sha256-/9+TKv0nllBfnj48zcXLrOgyBj52dBIVbrpnIaQ4O84="; stripLen = 2; extraPrefix = "setuptools/_distutils/"; }) </ins> ]; buildPhase = ''


sha256 = "sha256-1KnYHz9ntKbgfLeoDcsQrV6RdvzDB2LHCoFYCmS4sLY="; }; <ins> patches = [ # https://savannah.gnu.org/bugs/?func=detailitem&item_id=62436 ./patches/bug62436.patch ]; </ins> buildInputs = [ readline ncurses


<ins> # HG changeset patch # User John Donoghue <john.donoghue@ieee.org> # Date 1652358904 14400 #      Thu May 12 08:35:04 2022 -0400 # Branch stable # Node ID 8c940cfcce257369677c09154da2aab2c56eaa79 # Parent  63710f3bd9811c2d206ac9e7b4f47cf06c47e153 * scripts/pkg/private/build.m: check configure and Makefile exist before trying to unlink them (Bug #62436) diff -r 63710f3bd981 -r 8c940cfcce25 scripts/pkg/private/build.m --- a/scripts/pkg/private/build.m	Wed May 11 09:44:55 2022 -0700 +++ b/scripts/pkg/private/build.m	Thu May 12 08:35:04 2022 -0400 @@ -77,8 +77,12 @@ else arch_abi = getarch (); configure_make (desc, build_root, verbose); -      unlink (fullfile (build_root, "src", "configure")); -      unlink (fullfile (build_root, "src", "Makefile")); +      if exist (fullfile (build_root, "src", "configure"), "file") +        unlink (fullfile (build_root, "src", "configure")); +      endif +      if exist (fullfile (build_root, "src", "Makefile"), "file") +        unlink (fullfile (build_root, "src", "Makefile")); +      endif endif tar_name = [desc.name "-" desc.version "-" arch_abi ".tar"]; tar_path = fullfile (builddir, tar_name); </ins>


githubId = 1550265; name = "Dominic Steinitz"; }; <ins> ifurther = { email = "55025025+ifurther@users.noreply.github.com"; github = "ifurther"; githubId = 55025025; name = "Feather Lin"; }; </ins> igsha = { email = "igor.sharonov@gmail.com"; github = "igsha";


<ins> { buildPythonPackage , cython , fetchPypi , jdk , lib , six }: buildPythonPackage rec { pname = "pyjnius"; version = "1.4.1"; src = fetchPypi { inherit pname version; sha256 = "8bc1a1b06fb11df8dd8b8d56f5ecceab614d4ba70cf559c64ae2f146423d53ce"; }; propagatedBuildInputs = [ six ]; nativeBuildInputs = [ jdk cython ]; pythonImportsCheck = [ "jnius" ]; meta = with lib; { description = "A Python module to access Java classes as Python classes using the Java Native Interface (JNI)"; homepage = "https://github.com/kivy/pyjnius"; license = licenses.mit; maintainers = with maintainers; [ ifurther ]; }; } </ins>


{ lib <ins> , stdenv </ins> , python3 , installShellFiles }:


pip virtualenv virtualenv-clone <ins> ] ++ lib.optionals stdenv.hostPlatform.isAndroid [ pyjnius </ins> ]; pythonEnv = python3.withPackages runtimeDeps;


pyjks = callPackage ../development/python-modules/pyjks { }; <ins> pyjnius = callPackage ../development/python-modules/pyjnius { }; </ins> pyjsparser = callPackage ../development/python-modules/pyjsparser { }; pyjwkest = callPackage ../development/python-modules/pyjwkest { };


inherit (packages) version; format = "wheel"; <del> disabled = pythonAtLeast "3.10"; </del> <ins> # See https://github.com/tensorflow/tensorflow/issues/55581#issuecomment-1101890383 disabled = pythonAtLeast "3.10" && !cudaSupport; </ins> src = let pyVerNoDot = lib.strings.stringAsChars (x: if x == "." then "" else x) python.pythonVersion;


( cd unpacked/tensorflow* # Adjust dependency requirements: <del> # - Relax gast version requirement that doesn't match what we have packaged </del> <ins> # - Relax tensorflow-estimator version requirement that doesn't match what we have packaged </ins> # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now. sed -i *.dist-info/METADATA  <del> -e "s/Requires-Dist: gast.*/Requires-Dist: gast/"  </del> <ins> -e "s/Requires-Dist: tf-estimator-nightly.*/Requires-Dist: tensorflow-estimator/"  </ins> -e "/Requires-Dist: libclang/d"  -e "/Requires-Dist: keras/d"  -e "/Requires-Dist: tensorflow-io-gcs-filesystem/d"


pythonImportsCheck = [ "tensorflow" <del> "tensorflow.keras" </del> "tensorflow.python" "tensorflow.python.framework" ];


{ <del> version = "2.7.0"; </del> <ins> version = "2.8.0"; </ins> linux_py_37_cpu = { <del> url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl"; sha256 = "1irw4ri1fbxbj251cnjbr12gxsyj2k30asxjfxjpxhc9b0cchhx0"; </del> <ins> url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp37-cp37m-manylinux2010_x86_64.whl"; sha256 = "1nza8i0nvqgrcwj2yy74a3wgpgf52svf0yrz9xd6l18gsifkmkx0"; </ins> }; linux_py_38_cpu = { <del> url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp38-cp38-manylinux2010_x86_64.whl"; sha256 = "11a1rimr998lvvjdg03rqr8h2h7x6bbd4gyv74biwgaxmjczvjdj"; </del> <ins> url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp38-cp38-manylinux2010_x86_64.whl"; sha256 = "1li2gllznd5w3hh2w9ibh5lkvvssnwh5vhk7i873dxjjdl1w8sqy"; </ins> }; linux_py_39_cpu = { <del> url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp39-cp39-manylinux2010_x86_64.whl"; sha256 = "0x1zzmgq7hl2k98p8870h0yhaik39nc1ckvxirjx8simpj8ghsbp"; </del> <ins> url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp39-cp39-manylinux2010_x86_64.whl"; sha256 = "03swmyak1hb0k6b2fi9a8g76fi57jz30ym015a576iwp42pqcgkq"; }; linux_py_310_cpu = { url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp310-cp310-manylinux2010_x86_64.whl"; sha256 = ""; </ins> }; linux_py_37_gpu = { <del> url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl"; sha256 = "1x5yyxzkly9gdyhcfq4x7w7sqqxh6cw5qnfwbvzj5349xwrm63wi"; </del> <ins> url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp37-cp37m-manylinux2010_x86_64.whl"; sha256 = "06q3vjrlqfkqa5r18hla3d8ms1sqa897g7fpnqizgh4k8skhm9fq"; </ins> }; linux_py_38_gpu = { <del> url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp38-cp38-manylinux2010_x86_64.whl"; sha256 = "0prxa8yc6lbq62vnh8cw6dhcrnkdjih62kbg6pbw4gmgcbf6v6fg"; </del> <ins> url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp38-cp38-manylinux2010_x86_64.whl"; sha256 = "0099aa5g19zi74n6bamhmmcgp096m41fhr61swkwnh92myz1ylgb"; </ins> }; linux_py_39_gpu = { <del> url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp39-cp39-manylinux2010_x86_64.whl"; sha256 = "0jjv8vm20d0airml68bxhassp4yg09rcz2a39aa511cz8mavj0l6"; </del> <ins> url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp39-cp39-manylinux2010_x86_64.whl"; sha256 = "0zw20yvlqga7znr13pa10qxww42mj64209syiicgvhs74ji1zdca"; }; linux_py_310_gpu = { url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp310-cp310-manylinux2010_x86_64.whl"; sha256 = "06kwjlhzl46jhjcg836crys2aw39x0g8s1s9qfscm1kbwzbww1hq"; </ins> }; mac_py_37_cpu = { <del> url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp37-cp37m-macosx_10_11_x86_64.whl"; sha256 = "1gr95ck0h4wzhdacjfhkzxdw4zglm85fc54swqhyzzv1f5n9vw8j"; </del> <ins> url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp37-cp37m-macosx_10_14_x86_64.whl"; sha256 = "1z5w6wx3h45fz0ji9kn2m2kf963bqbvmqc7cyjv4ixymd0rp4jps"; </ins> }; mac_py_38_cpu = { <del> url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp38-cp38-macosx_10_11_x86_64.whl"; sha256 = "1h3qlvlrwyvxynh5flvyqk7grbvyqc21ljqhlvds436hpn2kqrgb"; </del> <ins> url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp38-cp38-macosx_10_14_x86_64.whl"; sha256 = "1h5v8flhc5zb038ld0av7638cyqqkrib379lrlzvf8dw7q8ry3yx"; </ins> }; mac_py_39_cpu = { <del> url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp39-cp39-macosx_10_11_x86_64.whl"; sha256 = "0pyj1p2yik6ysdqn8n6cz1nqni0s9xx51ifmvdx4dl3hrzp86jz2"; </del> <ins> url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp39-cp39-macosx_10_14_x86_64.whl"; sha256 = "0qsmlrf8h2gxkimniyrz9bniaqpdsd92pficmsrq30k8rkz2bwjj"; }; mac_py_310_cpu = { url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp310-cp310-macosx_10_14_x86_64.whl"; sha256 = "0lnwbvil6c6ai10lcaj9ay9pya207s9g204273msjalm1hpbmhvq"; </ins> }; }


#!/usr/bin/env bash <del> version="2.7.0" </del> <ins> version="2.8.0" </ins> bucket="https://storage.googleapis.com/tensorflow"


"linux_py_37_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl" "linux_py_38_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp38-cp38-manylinux2010_x86_64.whl" "linux_py_39_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp39-cp39-manylinux2010_x86_64.whl" <ins> "linux_py_310_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp310-cp310-manylinux2010_x86_64.whl" </ins> "linux_py_37_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl" "linux_py_38_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp38-cp38-manylinux2010_x86_64.whl" "linux_py_39_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp39-cp39-manylinux2010_x86_64.whl" <del> "mac_py_37_cpu $bucket/mac/cpu/tensorflow-${version}-cp37-cp37m-macosx_10_11_x86_64.whl" "mac_py_38_cpu $bucket/mac/cpu/tensorflow-${version}-cp38-cp38-macosx_10_11_x86_64.whl" "mac_py_39_cpu $bucket/mac/cpu/tensorflow-${version}-cp39-cp39-macosx_10_11_x86_64.whl" </del> <ins> "linux_py_310_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp310-cp310-manylinux2010_x86_64.whl" "mac_py_37_cpu $bucket/mac/cpu/tensorflow-${version}-cp37-cp37m-macosx_10_14_x86_64.whl" "mac_py_38_cpu $bucket/mac/cpu/tensorflow-${version}-cp38-cp38-macosx_10_14_x86_64.whl" "mac_py_39_cpu $bucket/mac/cpu/tensorflow-${version}-cp39-cp39-macosx_10_14_x86_64.whl" "mac_py_310_cpu $bucket/mac/cpu/tensorflow-${version}-cp310-cp310-macosx_10_14_x86_64.whl" </ins> ) hashfile=binary-hashes.nix


google-guest-oslogin = callPackage ../tools/virtualization/google-guest-oslogin { }; <del> google-cloud-cpp = callPackage ../development/libraries/google-cloud-cpp { }; </del> <ins> google-cloud-cpp = callPackage ../development/libraries/google-cloud-cpp { abseil-cpp = abseil-cpp.override { cxxStandard = "14"; }; }; </ins> google-java-format = callPackage ../development/tools/google-java-format { };


# external apps shipped with linux-mint hexchat gnome-calculator <ins> gnome-screenshot </ins> ] config.environment.cinnamon.excludePackages; }) ];


python3.pkgs.buildPythonApplication rec { pname = "sticky"; <del> version = "1.11"; </del> <ins> version = "1.12"; </ins> format = "other"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; <del> hash = "sha256-PXJpNKzF9goQvfh3lUUfOaZFessFNrWtg8nMDxPxRMo="; </del> <ins> hash = "sha256-kAO8Qz4bTn3+YeIXAvPZ1SpKgn+g+rBgi9+TaqL1vOY="; </ins> }; postPatch = ''


, cjs , clutter , fetchFromGitHub <ins> , fetchpatch </ins> , gdk-pixbuf <ins> , gettext </ins> , libgnomekbd , glib , gobject-introspection


stdenv.mkDerivation rec { pname = "cinnamon-common"; <del> version = "5.4.9"; </del> <ins> version = "5.4.10"; </ins> src = fetchFromGitHub { owner = "linuxmint"; repo = "cinnamon"; rev = version; <del> hash = "sha256-nM87NO/dwOd+hN5/3zX7XUjyKvXh4uDhLcGFcKE9ccA="; </del> <ins> hash = "sha256-yNjFP32+0LXqHfJUxm1A+CTuwny5/IxxT08689f7VlE="; </ins> }; patches = [ ./use-sane-install-dir.patch ./libdir.patch <ins> # Re-add libsoup 2.4 as dependency - needed by some applets. # Can be removed on next update. (fetchpatch { url = "https://github.com/linuxmint/cinnamon/commit/76224fe409d074f8a44c70e4fd5e1289f92800b9.patch"; sha256 = "sha256-nDt4kkK1kVstxbij63XxTJ2L/TM9Q1P6feok3xlPQOM="; }) # keybindings.js: Use bindings.get(). # Can be removed on next update. # https://github.com/linuxmint/cinnamon/issues/11055 (fetchpatch { url = "https://github.com/linuxmint/cinnamon/commit/7724e4146baf8431bc1fb55dce60984e77adef5a.patch"; sha256 = "sha256-idGtkBa13nmoEprtmAr6OssO16wJwBd16r2ZbbhrYDQ="; }) </ins> ]; buildInputs = [


gsound gtk3 json-glib <del> libsoup </del> <ins> libsoup # referenced in js/ui/environment.js </ins> libstartup_notification libXtst libXdamage


sed "s| cinnamon-session| ${cinnamon-session}/bin/cinnamon-session|g" -i ./files/usr/bin/cinnamon-session-cinnamon  -i ./files/usr/bin/cinnamon-session-cinnamon2d sed "s|/usr/bin|$out/bin|g" -i ./files/usr/share/xsessions/cinnamon.desktop ./files/usr/share/xsessions/cinnamon2d.desktop <ins> sed "s|msgfmt|${gettext}/bin/msgfmt|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/Spices.py </ins> patchShebangs src/data-to-c.pl '';


stdenv.mkDerivation rec { pname = "nemo"; <del> version = "5.4.2"; </del> <ins> version = "5.4.3"; </ins> # TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)


owner = "linuxmint"; repo = pname; rev = version; <del> sha256 = "sha256-Xn9CgGe7j2APaJRLvx58z2w+sN7ZeDScQz53ZBBnsQs="; </del> <ins> sha256 = "sha256-f3rO0lpOcwpSpIpKrslf6/6nqFbbGTwnKbHpWO+Uf+Q="; </ins> }; outputs = [ "out" "dev" ];


stdenv.mkDerivation rec { pname = "xreader"; <del> version = "3.4.3"; </del> <ins> version = "3.4.4"; </ins> src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; <del> sha256 = "sha256-GkJo/wc5StyeQv0pv5XK0Qy3o8EGpfPYY8gOMq0Afgs="; </del> <ins> sha256 = "sha256-uYnQE1GjkUxYlvXSJNmvr6q4OdvAWgv8HqTXk0KkRQM="; </ins> }; nativeBuildInputs = [


in majorIs == "9" || majorIs == "10" || majorIs == "11"; let <del> version = "2.5.4"; </del> <ins> version = "2.6.2"; </ins> # We define a specific set of CUDA compute capabilities here, # because CUDA 11 does not support compute capability 3.0. Also,


inherit version; src = fetchurl { url = "https://icl.cs.utk.edu/projectsfiles/magma/downloads/magma-${version}.tar.gz"; <del> sha256 = "0rrvd21hczxlm8awc9z54fj7iqpjmsb518fy32s6ghz0g90znd3p"; </del> <ins> hash = "sha256-dbVU2rAJA+LRC5cskT5Q5/iMvGLzrkMrWghsfk7aCnE="; </ins> name = "magma-${version}.tar.gz"; };


enableParallelBuilding=true; buildFlags = [ "magma" "magma_sparse" ]; <del> # MAGMA's default CMake setup does not care about installation. So we copy files directly. installPhase = '' mkdir -p $out mkdir -p $out/include mkdir -p $out/lib mkdir -p $out/lib/pkgconfig cp -a ../include/*.h $out/include #cp -a sparse-iter/include/*.h $out/include cp -a lib/*.so $out/lib cat ../lib/pkgconfig/magma.pc.in                   |  sed -e s:@INSTALL_PREFIX@:"$out":          |  sed -e s:@CFLAGS@:"-I$out/include":    |  sed -e s:@LIBS@:"-L$out/lib -lmagma -lmagma_sparse": |  sed -e s:@MAGMA_REQUIRED@::                        > $out/lib/pkgconfig/magma.pc ''; </del> meta = with lib; { description = "Matrix Algebra on GPU and Multicore Architectures"; license = licenses.bsd3;


# current configuration. atomicSymlink $etc, $static or die; <ins> # Returns 1 if the argument points to the files in /etc/static.  That # means either argument is a symlink to a file in /etc/static or a # directory with all children being static. sub isStatic { my $path = shift; if (-l $path) { my $target = readlink $path; return substr($target, 0, length "/etc/static/") eq "/etc/static/"; } if (-d $path) { opendir DIR, "$path" or return 0; my @names = readdir DIR or die; closedir DIR; foreach my $name (@names) { next if $name eq "." || $name eq ".."; unless (isStatic("$path/$name")) { return 0; } } return 1; } return 0; } </ins> # Remove dangling symlinks that point to /etc/static.  These are # configuration files that existed in a previous configuration but not


my $target = "/etc/$fn"; File::Path::make_path(dirname $target); $created{$fn} = 1; <ins> # Rename doesn't work if target is directory. if (-l $_ && -d $target) { if (isStatic $target) { rmtree $target or warn; } else { warn "$target directory contains user files. Symlinking may fail."; } } </ins> if (-e "$_.mode") { my $mode = read_file("$_.mode"); chomp $mode; if ($mode eq "direct-symlink") {


, cmake , extra-cmake-modules , ffmpeg-full <del> , kcodecs </del> , kconfig , kcoreaddons , kfilemetadata , ki18n , kiconthemes , kio <del> , kio-extras </del> , kirigami2 , kxmlgui <ins> , kdoctools </ins> , mpv , pkg-config <ins> , wrapQtAppsHook </ins> , qqc2-desktop-style , qtbase , qtquickcontrols2 <del> , qtwayland , youtube-dl </del> <ins> , yt-dlp </ins> }: mkDerivation rec { pname = "haruna"; <del> version = "0.7.3"; </del> <ins> version = "0.8.0"; </ins> src = fetchFromGitLab { owner = "multimedia"; repo = "haruna"; rev = "v${version}"; <del> sha256 = "sha256-pFrmTaRvsqxJw34VULzfjx2k56kJgkB96nJtai2D1wY="; </del> <ins> sha256 = "sha256-Lom9iQUKH3lQHrVK4dJzo+FG79xSCg0b4gY/KAevL6I="; </ins> domain = "invent.kde.org"; }; buildInputs = [ breeze-icons breeze-qt5 <ins> qqc2-desktop-style yt-dlp </ins> ffmpeg-full <del> kcodecs </del> kconfig kcoreaddons kfilemetadata ki18n kiconthemes kio <del> kio-extras </del> kirigami2 kxmlgui <ins> kdoctools </ins> mpv <del> qqc2-desktop-style </del> qtbase qtquickcontrols2 <del> qtwayland youtube-dl </del> ]; nativeBuildInputs = [ cmake extra-cmake-modules pkg-config <ins> wrapQtAppsHook </ins> ]; meta = with lib; { <del> homepage = "https://github.com/g-fb/haruna"; </del> <ins> homepage = "https://invent.kde.org/multimedia/haruna"; </ins> description = "Open source video player built with Qt/QML and libmpv"; <del> license = with licenses; [ bsd3 cc-by-40 gpl3Plus wtfpl ]; </del> <ins> license = with licenses; [ bsd3 cc-by-40 cc-by-sa-40 cc0 gpl2Plus gpl3Plus wtfpl ]; </ins> maintainers = with maintainers; [ jojosch ]; }; }


stdenv.mkDerivation rec { pname = "xow"; <del> version = "0.5"; </del> <ins> version = "unstable-2022-04-24"; </ins> src = fetchFromGitHub { owner = "medusalix"; repo = "xow"; <del> rev = "v${version}"; sha256 = "071r2kx44k1sc49cad3i607xg618mf34ki1ykr5lnfx9y6qyz075"; </del> <ins> rev = "d335d6024f8380f52767a7de67727d9b2f867871"; sha256 = "0q5nr21p4dlx2a99hiivwz6qj9anrqqsdhiz6xi375yqkxis4251"; </ins> }; firmware = fetchurl {


makeFlags = [ "BUILD=RELEASE" <del> "VERSION=${version}" </del> <ins> "VERSION=${version}-${src.rev}" </ins> "BINDIR=${placeholder "out"}/bin" "UDEVDIR=${placeholder "out"}/lib/udev/rules.d" "MODLDIR=${placeholder "out"}/lib/modules-load.d"


{ lib , stdenv <del> , fetchgit </del> <ins> , fetchFromGitHub </ins> , cmake , pkg-config , libusb1


stdenv.mkDerivation rec { pname = "rtl-sdr"; <del> version = "0.6.0"; </del> <ins> version = "0.8.0"; </ins> <del> src = fetchgit { url = "git://git.osmocom.org/rtl-sdr.git"; rev = "refs/tags/${version}"; sha256 = "0lmvsnb4xw4hmz6zs0z5ilsah5hjz29g1s0050n59fllskqr3b8k"; </del> <ins> src = fetchFromGitHub { owner = "librtlsdr"; repo = "librtlsdr"; rev = "v${version}"; sha256 = "1fgxlkgmdchbrf0nn98ivjr6css5hak3608nr4xrf2qzf7xy2kdk"; </ins> }; postPatch = ''


buildInputs = [ libusb1 ]; <del> cmakeFlags = lib.optional stdenv.isLinux "-DINSTALL_UDEV_RULES=ON"; </del> <ins> cmakeFlags = lib.optional stdenv.isLinux [ "-DINSTALL_UDEV_RULES=ON" "-DWITH_RPC=ON" ]; </ins> meta = with lib; { description = "Turns your Realtek RTL2832 based DVB dongle into a SDR receiver";


# # I've chosen to import Alpine Linux, because its image is turbo-tiny and, # generally, sufficient for our tests. <del> alpine-meta = pkgs.fetchurl { </del> <ins> alpine-meta-x86 = pkgs.fetchurl { </ins> url = "https://tarballs.nixos.org/alpine/3.12/lxd.tar.xz"; hash = "sha256-1tcKaO9lOkvqfmG/7FMbfAEToAuFy2YMewS8ysBKuLA="; }; <ins> alpine-meta-for = arch: pkgs.stdenv.mkDerivation { name = "alpine-meta-${arch}"; version = "3.12"; unpackPhase = "true"; buildPhase = '' runHook preBuild </ins> <del> alpine-rootfs = pkgs.fetchurl { url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz"; hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA="; </del> <ins> tar xvf ${alpine-meta-x86} sed -i 's/architecture: .*/architecture: ${arch}/' metadata.yaml runHook postBuild ''; installPhase = '' runHook preInstall tar czRf $out * runHook postInstall ''; </ins> }; <ins> alpine-meta = { x86_64-linux = alpine-meta-x86; aarch64-linux = alpine-meta-for "aarch64"; }.${pkgs.system} or (throw "Unsupported system: ${pkgs.system}"); alpine-rootfs = { x86_64-linux = pkgs.fetchurl { url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz"; hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA="; }; aarch64-linux = pkgs.fetchurl { url = "https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/aarch64/alpine-minirootfs-3.15.4-aarch64.tar.gz"; hash = "sha256-9kBz8Jwmo8XepJhTMt5zilCaHHpflnUH7y9+0To39Us="; }; }.${pkgs.system} or (throw "Unsupported system: ${pkgs.system}"); </ins> lxd-config = pkgs.writeText "config.yaml" '' storage_pools: - name: default


]; configureFlags = [ <ins> "--disable-werror" </ins> "--enable-jtag_vpi" "--enable-usb_blaster_libftdi" (lib.enableFeature (! stdenv.isDarwin) "amtjtagaccel")


}; config = mkIf cfg.enable { <del> networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ]; </del> <ins> assertions = [ { assertion = cfg.openFirewall -> !isNull cfg.config; message = "openFirewall can only be used with a declarative config"; } ]; networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.config.http.server_port ]; </ins> systemd.services.home-assistant = { description = "Home Assistant";


<del> { lib, stdenv </del> <ins> { lib , stdenv </ins> , fetchFromGitHub , cmake , qttools


export LC_ALL="en_US.UTF-8" export QT_QPA_PLATFORM=offscreen export QT_PLUGIN_PATH="${qtbase.bin}/${qtbase.qtPluginPrefix}" <del> # testcli and testgui are flaky - skip them both make test ARGS+="-E 'testcli|testgui' --output-on-failure" </del> <ins> # testcli, testgui and testkdbx4 are flaky - skip them all # testautotype on darwin throws "QWidget: Cannot create a QWidget without QApplication" make test ARGS+="-E 'testcli|testgui${lib.optionalString stdenv.isDarwin "|testautotype|testkdbx4"}' --output-on-failure" </ins> runHook postCheck '';


dontWrapGApps = true; preFixup = '' qtWrapperArgs+=("''${gappsWrapperArgs[@]}") <ins> '' + lib.optionalString stdenv.isDarwin '' wrapQtApp "$out/Applications/KeePassXC.app/Contents/MacOS/KeePassXC" </ins> ''; buildInputs = [


license = licenses.gpl2Plus; maintainers = with maintainers; [ jonafato turion srapenne ]; platforms = platforms.linux ++ platforms.darwin; <del> broken = stdenv.isDarwin;  # see to https://github.com/NixOS/nixpkgs/issues/172165 </del> }; }


TermSizeAny TermReadKey Test2Harness <del> TestMore </del> TestPostgreSQL TextDiff TextTable


, buildPythonPackage , fetchPypi , pythonOlder <del> , pythonAtLeast </del> , pythonRelaxDepsHook , writeText , asttokens


, sphinx_rtd_theme , pytest-runner , setuptools-scm <ins> , git </ins> }: let


in buildPythonPackage rec { pname = "vyper"; <del> version = "0.3.1"; </del> <ins> version = "0.3.3"; </ins> format = "setuptools"; <del> disabled = pythonOlder "3.7" || pythonAtLeast "3.10"; </del> <ins> disabled = pythonOlder "3.7"; </ins> src = fetchPypi { inherit pname version; <del> sha256 = "sha256-fXug5v3zstz19uexMWokHBVsfcl2ZCdIOIXKeLVyh/Q="; </del> <ins> sha256 = "sha256-BAnNj27B1HAb9VVDA69bFGbQjeOpl0g5EB2juajqBAw="; </ins> }; nativeBuildInputs = [ <ins> # Git is used in setup.py to compute version information during building # ever since https://github.com/vyperlang/vyper/pull/2816 git </ins> pythonRelaxDepsHook pytest-runner setuptools-scm


let pname = "zammad"; <del> version = "5.1.0"; </del> <ins> version = "5.1.1"; </ins> src = applyPatches {


platforms = []; source = { remotes = ["https://rubygems.org"]; <del> sha256 = "04vxmjr200akcil9fqxc9ghbb9q0lyrh2q03xxncycd5vln910fi"; </del> <ins> sha256 = "1pfk942d6qwhw151hxaz7n4knk6whyxqvvywdx2cdw9yhykyaqzq"; </ins> type = "gem"; }; <del> version = "6.2.0"; </del> <ins> version = "6.2.1"; </ins> }; factory_bot_rails = { dependencies = ["factory_bot" "railties"];


platforms = []; source = { remotes = ["https://rubygems.org"]; <del> sha256 = "1p6b3q411h2mw4dsvhjrp1hh66hha5cm69fqg85vn2lizz71n6xz"; </del> <ins> sha256 = "1g43ii497cwdqhfnaxfl500bq5yfc5hfv5df1lvf6wcjnd708ihd"; </ins> type = "gem"; }; <del> version = "1.13.3"; </del> <ins> version = "1.13.4"; </ins> }; nori = { groups = ["default"];


platforms = []; source = { remotes = ["https://rubygems.org"]; <del> sha256 = "19mf9f5zx23cjjn0p77wz1igzpfr22mxhljgavffl8fwqq74v4ih"; </del> <ins> sha256 = "01ldw5ba6xfn2k97n75n52qs4f0fy8xmn58c4247xf476nfvg035"; </ins> type = "gem"; }; <del> version = "3.2.5"; </del> <ins> version = "3.2.6"; </ins> }; power_assert = { groups = ["default" "development" "test"];


platforms = []; source = { remotes = ["https://rubygems.org"]; <del> sha256 = "1xvkz9xrd1cqnlm0qac1iwwxzndx3cc17zrjncpa4lzjfwbxhsnm"; </del> <ins> sha256 = "0df9bknc2dllk8v9fhgidzbvbryaxa8fgifrk40cdz9csjsphbky"; </ins> type = "gem"; }; <del> version = "4.3.11"; </del> <ins> version = "4.3.12"; </ins> }; pundit = { dependencies = ["activesupport"];


}; version = "2.2.3"; }; <ins> rack-attack = { dependencies = ["rack"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; sha256 = "1rc6simyql7ax5zzp667x6krl0xxxh3asc1av6gcn8j6cyl86wsx"; type = "gem"; }; version = "6.6.0"; }; </ins> rack-livereload = { dependencies = ["rack"]; groups = ["development" "test"];


platforms = []; source = { remotes = ["https://rubygems.org"]; <del> sha256 = "134zg0dzd7216lyczkhv01v27ikkmipjihcy2bzi0qv72p1i923i"; </del> <ins> sha256 = "1wybcipkfawg4pragmayiig03xc084x3hbwywsh1dr9x9pa8f9hj"; </ins> type = "gem"; }; <del> version = "1.1.5"; </del> <ins> version = "1.1.6"; </ins> }; slack-notifier = { groups = ["default"];


"stylelint-prettier": "^2.0.0" }, "name": "Zammad", <del> "version": "5.1.0" </del> <ins> "version": "5.1.1" </ins> }


{ "owner": "zammad", "repo": "zammad", <del> "rev": "eefae45c2ad6e6a96b8df631d2f50f290ecbd27d", "sha256": "EjowvM//+UsAfEH9/0jgLkiD7EWH34M1NQ9U2DotBqc=", </del> <ins> "rev": "d71bd90ef964426230664cdfbaa2572325bfed4f", "sha256": "yzDTkjnRBl71REtSKRblkanJWhj7gp/+exhWjxGCFWw=", </ins> "fetchSubmodules": true }


<ins> { stdenv , lib , wrapQtAppsHook , qtbase , qttools , fio , cmake , kauth , extra-cmake-modules , fetchFromGitHub }: stdenv.mkDerivation rec { name = "kdiskmark"; version = "2.3.0"; src = fetchFromGitHub { owner = "jonmagon"; repo = "kdiskmark"; rev = version; sha256 = "sha256-9ufRxEbqwcRs+m/YW8D3+1USCJNZEaOUZRec7gvgmtA="; }; nativeBuildInputs = [ cmake wrapQtAppsHook ]; buildInputs = [ qtbase qttools extra-cmake-modules kauth ]; postInstall = '' # so that kdiskmark can be used as unpriviledged user even on non-kde # (where kauth is not in environment.systemPackages) ln -s ${kauth}/share/dbus-1/system.d/org.kde.kf5auth.conf $out/share/dbus-1/system.d/00-kdiskmark-needs-org.kde.kf5auth.conf ''; qtWrapperArgs = [ "--prefix" "PATH" ":" (lib.makeBinPath [ fio ]) ]; meta = with lib; { description = "HDD and SSD benchmark tool with a friendly graphical user interface"; longDescription = '' If kdiskmark is not run as root it can rely on polkit to get the necessary privileges. In this case you must install it with `environment.systemPackages` on NixOS, nix-env will not work. ''; homepage = "https://github.com/JonMagon/KDiskMark"; maintainers = [ maintainers.symphorien ]; license = licenses.gpl3Only; platforms = platforms.linux; }; } </ins>


buildGoModule = buildGo118Module; }; <ins> kdiskmark = libsForQt5.callPackage ../tools/filesystems/kdiskmark { }; </ins> keepalived = callPackage ../tools/networking/keepalived { }; kexec-tools = callPackage ../os-specific/linux/kexec-tools { };


packages = [ (with dotnetCorePackages; combinePackages [ sdk_3_1 <del> sdk_5_0 </del> <ins> sdk_6_0 </ins> ]) ]; } ``` <del> This will produce a dotnet installation that has the dotnet 3.1, 3.0, and 2.1 sdk. The first sdk listed will have it's cli utility present in the resulting environment. Example info output: </del> <ins> This will produce a dotnet installation that has the dotnet 3.1 6.0 sdk. The first sdk listed will have it's cli utility present in the resulting environment. Example info output: </ins> ```ShellSession $ dotnet --info


projectReferences = [ referencedProject ]; # `referencedProject` must contain `nupkg` in the folder structure. dotnet-sdk = dotnetCorePackages.sdk_3_1; <del> dotnet-runtime = dotnetCorePackages.net_5_0; </del> <ins> dotnet-runtime = dotnetCorePackages.net_6_0; </ins> executables = [ "foo" ]; # This wraps "$out/lib/$pname/foo" to `$out/bin/foo`. executables = []; # Don't install any executables.


<literal>freetype</literal> and others. </para> </listitem> <ins> <listitem> <para> .NET 5.0 was removed due to being end-of-life, use a newer, supported .NET version - https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core </para> </listitem> </ins> </itemizedlist> </section> <section xml:id="sec-release-23.05-notable-changes">


- Deprecated `xlibsWrapper` transitional package has been removed in favour of direct use of its constitutents: `xorg.libX11`, `freetype` and others. <ins> - .NET 5.0 was removed due to being end-of-life, use a newer, supported .NET version - https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core </ins> ## Other Notable Changes {#sec-release-23.05-notable-changes} <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->


## Files in versions/ are generated automatically by update.sh ## dotnet_3_1 = import ./versions/3.1.nix (buildAttrs // { icu = icu70; }); <del> dotnet_5_0 = import ./versions/5.0.nix (buildAttrs // { inherit icu; }); </del> dotnet_6_0 = import ./versions/6.0.nix (buildAttrs // { inherit icu; }); dotnet_7_0 = import ./versions/7.0.nix (buildAttrs // { inherit icu; }); in


combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) {}; # EOL <del> sdk_2_1 = throw "Dotnet SDK 2.1 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)"; sdk_2_2 = throw "Dotnet SDK 2.2 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)"; sdk_3_0 = throw "Dotnet SDK 3.0 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)"; } // dotnet_3_1 // dotnet_5_0 // dotnet_6_0 // dotnet_7_0 </del> <ins> sdk_2_1 = throw "Dotnet SDK 2.1 is EOL, please use 6.0 (LTS) or 7.0 (Current)"; sdk_2_2 = throw "Dotnet SDK 2.2 is EOL, please use 6.0 (LTS) or 7.0 (Current)"; sdk_3_0 = throw "Dotnet SDK 3.0 is EOL, please use 6.0 (LTS) or 7.0 (Current)"; sdk_5_0 = throw "Dotnet SDK 5.0 is EOL, please use 6.0 (LTS) or 7.0 (Current)"; } // dotnet_3_1 // dotnet_6_0 // dotnet_7_0 </ins>


<del> { buildAspNetCore, buildNetRuntime, buildNetSdk, icu }: # v5.0 (eol) { aspnetcore_5_0 = buildAspNetCore { inherit icu; version = "5.0.17"; srcs = { x86_64-linux = { url     = "https://download.visualstudio.microsoft.com/download/pr/a2b96f83-e22a-4fa6-a10e-709b3effac9a/0d6ade6c0ceebc8ef7dbf2b1a6d86f17/aspnetcore-runtime-5.0.17-linux-x64.tar.gz"; sha512  = "d8e87804e9e86273c6512785bd5a6f0e834ff3f4bbebc11c4fcdf16ab4fdfabd0d981a756955267c1aa9bbeec596de3728ce9b2e6415d2d80daef0d999a5df6d"; }; aarch64-linux = { url     = "https://download.visualstudio.microsoft.com/download/pr/6eb8aee2-cbea-4c4f-9bb9-ea6229ec229b/d6c438e5071c359ad995134f0a33e731/aspnetcore-runtime-5.0.17-linux-arm64.tar.gz"; sha512  = "ac1a9d89f1b730dfdca9c2e48373ef21f8f9316014eefbe6b11516f8195d3b3efc4e482883774b74ea2ff1cb77174a2cb471bd1157ab5b7d71621e3026c38e9b"; }; x86_64-darwin = { url     = "https://download.visualstudio.microsoft.com/download/pr/25e4817f-6fd0-46dc-be0d-d819445bac5c/a8fa228c872df683741c8a79745f8fb3/aspnetcore-runtime-5.0.17-osx-x64.tar.gz"; sha512  = "bb0c43c723090fa2d8a0255e6fc8c004ebe7baf2d5d56e22ad2e6336a67fe415333d451e459c8857c0ccb5819d998232c9617bf45f222559d4b8891b0af41f20"; }; }; }; runtime_5_0 = buildNetRuntime { inherit icu; version = "5.0.17"; srcs = { x86_64-linux = { url     = "https://download.visualstudio.microsoft.com/download/pr/e77438f6-865f-45e0-9a52-3e4b04aa609f/024a880ed4bfbfd3b9f222fec0b6aaff/dotnet-runtime-5.0.17-linux-x64.tar.gz"; sha512  = "a9c4784930a977abbc42aff1337dda06ec588c1ec4769a59f9fcab4d5df4fc9efe65f8e61e5433db078f67a94ea2dfe870c32c482a50d4c16283ffacacff4261"; }; aarch64-linux = { url     = "https://download.visualstudio.microsoft.com/download/pr/6690730f-cf10-40f1-9d4d-4c0d002f22d0/e117133858f190c169873200b8d7b9d7/dotnet-runtime-5.0.17-linux-arm64.tar.gz"; sha512  = "99cb11871924d3abedcc9c8079c54bc0c550203c7cbe4e349ed70d4355f40e4620b68d90b797e6461d898c06bed6953580e2cd4ad01483e5de107ca5a3409610"; }; x86_64-darwin = { url     = "https://download.visualstudio.microsoft.com/download/pr/39326cf0-dc7f-42a3-9f7a-fe30c75c7a7f/33cbce552148e13d47120fe4502f5b5e/dotnet-runtime-5.0.17-osx-x64.tar.gz"; sha512  = "31add512418640f98bc9511509db2049a2674c7725169d26be89218a02ac7972e03e5d6be5a3d45a0dfa764e6eade503a8f4957b7b198ec6ad412e423d95f1b9"; }; }; }; sdk_5_0 = buildNetSdk { inherit icu; version = "5.0.408"; srcs = { x86_64-linux = { url     = "https://download.visualstudio.microsoft.com/download/pr/904da7d0-ff02-49db-bd6b-5ea615cbdfc5/966690e36643662dcc65e3ca2423041e/dotnet-sdk-5.0.408-linux-x64.tar.gz"; sha512  = "abbf22c420df2d8398d1616efa3d31e1b8f96130697746c45ad68668676d12e65ec3b4dd75f28a5dc7607da58b6e369693c0e658def15ce2431303c28e99db55"; }; aarch64-linux = { url     = "https://download.visualstudio.microsoft.com/download/pr/d4b71fac-a2fd-4516-ac58-100fb09d796a/e79d6c2a8040b59bf49c0d167ae70a7b/dotnet-sdk-5.0.408-linux-arm64.tar.gz"; sha512  = "50f23d7aca91051d8b7c37f1a76b1eb51e6fe73e017d98558d757a6b9699e4237d401ce81515c1601b8c21eb62fee4e0b4f0bbed8967eefa3ceba75fc242f01b"; }; x86_64-darwin = { url     = "https://download.visualstudio.microsoft.com/download/pr/4aeecc7c-7ffa-418f-9362-cf5eb3ed0396/055d5e6064a9fdecd7d906f5f262373d/dotnet-sdk-5.0.408-osx-x64.tar.gz"; sha512  = "3fdd4deac2809b00c0f669d5488000ac1b9a47dee6ab7b31167d7cec4759a10ee347fd4f52090a40684e5ecc1e1f57eb99c558e561edfd1436a2f77fc1c1a0b2"; }; }; packages = { fetchNuGet }: [ (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "5.0.17"; sha256 = "0mfawgcc23r44a1r7ynafxwga6jzn0f0z5ys03qssrvlcdsb376x"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "5.0.17"; sha256 = "183xgqzlwd5lhacxdwcjl8vcq7r7xypv0hddps9k32mmmwf83d8h"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "5.0.17"; sha256 = "0i5pp1smjkyhiyhcbkyc3cxz0sx9204bfml8wsdy7bxznbh2gkmw"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "5.0.17"; sha256 = "1fmd9jq2nzy63hjh4sa6zl636wpgwr3r8ahzln5w14m9k87lfdbk"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.17"; sha256 = "066fwdlssbv556zd9w1x87x1j8j4kafj9rxyy0692bssdb4gcyc8"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.17"; sha256 = "1qvvqf8mmzzc7a7fhx324dprnbxhknr3qxspb2xhsn3yyg44xn2d"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "5.0.17"; sha256 = "1gzf2gv4z9bn1cr1kpqpf1jf7m0p0wd1pxq5ndylq6bw353yglk1"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "5.0.17"; sha256 = "1lml70ln9bfjrfjf3jbxfzd5kgd4cp4h7v052md5ja364g7lalsy"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "5.0.17"; sha256 = "0j90fri15c05lw96xybgvqkysfm7g8grhkrg25g75vhi6ni2ricj"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "5.0.17"; sha256 = "1bdb887xvgxsmphys83zp9skn848p1r8viclc8p29w1rby4wi19i"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "5.0.17"; sha256 = "0y90p765sj54clf2bwrka99w73g8b9550b4qvyilqggzydl1c1hk"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "5.0.17"; sha256 = "07v7vyqm556xr1ypkazfp6gh6drgf20zkwbhkpja8bwdcr6lphbb"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "5.0.17"; sha256 = "0sbzlzhazh31s63hw9553hk9j56fxssncmfgidiyh0dg73aacrsp"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "5.0.17"; sha256 = "1qxphvlr882rvmj71y2imnf6r3hh4ln2n138qjyv1z129dp2g4y1"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "5.0.17"; sha256 = "1lc2jhr4ikffi5ylyf8f6ya6k0hdj0wp1l0017grrwd4m5ajj4vv"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.17"; sha256 = "02g5w41ivrw3n6cy3l3ixhcl8bw1fsv4bzs2m34k9h5fqmliaf3c"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "5.0.17"; sha256 = "07rfkxpf6rp8x0lybl8hx40mk09w5gjrr9djkjcp8lvjgzidnxq9"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "5.0.17"; sha256 = "1i7wka56n3akr96jrkj37jx98bwxfzhpx5705930v50izligd08x"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "5.0.17"; sha256 = "15f1kqlpp1d05dhg3dfya32vvzbpj6c7gxds947f10jb0hqlnhdj"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "5.0.17"; sha256 = "1j1334zxv815ksdnllnbwwsbwnimjlpknjmqy1riy2zpswxlfkz6"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "5.0.17"; sha256 = "0mmgd6nacx4fzf0w02ch0qxa43vrv6wfspykxsy2bkpvrnvr8xr9"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "5.0.17"; sha256 = "16whaq82pj6fqa0vam3a0va9ly843aa1z12hza040vn6252kk9fq"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "5.0.17"; sha256 = "1zavnwqvn2f7lhb880wgv02anrvqsh6l34w72knwd31irggph08l"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "5.0.17"; sha256 = "173r2srcbad2prrw3l914scmdks3mghxgszvlwypdjnv0f2szgvv"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.17"; sha256 = "0jgcfs3jc98jfyaaamssznckbpnaygplk8pjsp6dswpansz5bnnq"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.17"; sha256 = "1ph5kx18syinp8bpzw80bgq3njl65gwzws727xcmxnysgm7snmjp"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "5.0.17"; sha256 = "0m4jhn70parwnl18fql0sk9sf14y8cf08xw6x2cm5bfhnc9jvjny"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "5.0.17"; sha256 = "1af20jkv73767b4fy18s2dvjncaca1ny0csyr7wbhvqfs59y3n1x"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "5.0.17"; sha256 = "0llhsi03wyp2yjqy0snywqgwjgam91i4nsf5lc9kaxkk5h6vj1a0"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "5.0.17"; sha256 = "0xvprbjwd3fymddvavsy7wk5q2hp45hdi10qz4rdbmns23vqkzmf"; }) (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "0vhvxpba3i9ffp4gp56l3rnlhq9yg07n3dv5qi89zb90vgyqjh1p"; }) (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "074c9byxwmndfdavxn103220f5gklaaxc9wj7zpb5v3yr3ads30f"; }) (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "03jkkpsy2zjfp722fa2fcnpk2g6jzy0bn9vip5c39k78y5pz29x6"; }) (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "1ih6c104skp9q17i2dnsma45l6nv5c62vv2i1988dcjw2v0sl98m"; }) (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "0gwsxd1l0n32xnw0lyjixj2634iyygdb8pd7chydsr3qk8njxnpk"; }) (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "0x5dhn1jkwqnd0cki1vi97rhyfac6w79hvh9dxvnkn2k04sbps8q"; }) (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "1ipx3qn78z6gi415c4fa9wgy8k75aifbml6ys1c9ghl6yxbv0fd0"; }) (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "1wgbx648yndl0hh8vx6sflfwjyr5pfhi7vj7v19l6vxnrr1096w7"; }) (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "17jc8jc2dk1g8996jpq3k0g6c5inijivxkbz0grxrgr5jbyiv19y"; }) (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "0ydn40qn6cs6f20byvmc9j008s6csxjbh6jh5w4q995vipcmcpcj"; }) (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "0bw08wlf96vcyix850y8jips1glrz2cbj647af4d7gggw8p3wwzw"; }) (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0xsqyw848scwcz09pgc719776q712xabx4xv47srzij34p2pq7np"; }) (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "00b0vipypjai4l8icr74kjhglxx2xlc3nw3vyiwisg52l9zyby66"; }) (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "1cdgd4p5zr1mzz9hlb5mj946zfa1vn9wya5y2bhqn9y4ak831wzp"; }) (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "17v8m4fxm4q40z49a2h4lw9dawg6pwfv4s2dskzc23ggcjgr6dp1"; }) (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "1fbqi92prqmvxx0rx7vhl10l665jmmhb2ng5jndimggydb0ckpqh"; }) (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "1rijxkzzk65xs9z2ygs13h0rhw1cli5vwshmvs1gfnwhhn8ic0gx"; }) (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "02mxvpm2zs5jvawigvxlnrw6si4zwj6qlcas99m9xdmm8yqq22cm"; }) (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "0c1lcl3yy88vdfw12c7h0ww596qfjd5f8l2mn7mlqs6i3f864bkg"; }) (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0w0wg9ah7vngvpyds67l6qhizpkdf2r6m6cqyyvv3s5dw5l8rxin"; }) (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "17yy7605vkfz0f4h58005gdfg6fnjxlcnq0vg0hrxsgbdqmd7p1i"; }) (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "0av25fgkdl7zvn44wp8gqx2xl2mdlv1f9cgxzp7xk5yq8f7ynxpq"; }) (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "1smhmdfq0jlv1gq18hdaj0y9yzkvqzmki19c0b3j5b76yxxxpbwz"; }) (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0n0cdb9zpdb4h4v6r265pqmqg8c94ydywvna6jp1c6qhqlr0qk39"; }) (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "1s2n2sx29c8rx549zizj8yrddjl98a7vwvxw56y0jvvbwphr9gz4"; }) (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "19m66yvv0hnmyrmx2l4drbls0fcib75fxq2csdx6p8gd54bnrsh3"; }) (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "0bcnlsxcrvhybcjbb9879njx0c4z76y7djx4643g1rpjnkcrj9ww"; }) (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "1bf95h2f0dmpmv7z7961zia5vaqvmjq3wkf6iil9jxv4z674624w"; }) (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "02q593q09mwwh23m86048vc7b7an7pqch5nd86d4hxzkamnpnpsa"; }) (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "16vzxywfj88gjcwfnmcb6b50ld8dp46i4pqiwwcy7yz15xgdhbm2"; }) (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "1ix5lg2j5ihdfp9j3jdxc042g4syjzc4bafid465j52h6znsm6wm"; }) (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0w30v8r26cg427n5glm9nz6r10baalkqq5icqqxkq71hmh8fsjqb"; }) (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "168iq4hdp6bhdpgqa1mir1bygmh2ggwkys1r82d6kpl2lzbxjy28"; }) (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "18jpw2wbrb1b941729lb7hiq4yfq2z53pcxwz4mpgawnr58y0562"; }) (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "0ig464fcsj2jr0p02f6slifwf1m0408g95npm0vccf5ww1nbgkpi"; }) (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0qj5avmjrvabxzimprg4m54k3p6zkwrhbpv0byc8c9gbi47s323j"; }) (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "05ghz164lpff7n8mrxs7jm2h8n3clsg4w953zrag3k5ry9j36m9c"; }) (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "0azgs542mbg69jlc81529i2z5m728w8sc2i9m5dx15hvxqqqcjiz"; }) (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "12n1kcgcv5z8hkvjqfk0n705kcipbai4sgcwiimi52xpaf34xw8m"; }) (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "0b1s2m0a7xcdzfz22x6k7v5hkca90azdjk6pw7wwdnvszwq26nxp"; }) (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "5.0.17"; sha256 = "1sjpq07swgj0isdgyh6p2yb254qb9781lv44xfhj6nz7mx2yhdh1"; }) (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "5.0.17"; sha256 = "1gnzrqdp26d7pwwz29gm4qb09n2zsb767qkhbwkifcsyxlwi6m0f"; }) (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "5.0.17"; sha256 = "089jww13gaf7x7yd9d3qkyx9iq8abcp3r147hd9nblh561c9bzbg"; }) (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "5.0.17"; sha256 = "1nycl1rayk0fhaakpj6q9rfp2lv3dpl7pziavmd9kcfryz952ff5"; }) ]; }; } </del>


dotnet-sdk_7 = dotnetCorePackages.sdk_7_0; dotnet-runtime_3 = dotnetCorePackages.runtime_3_1; <del> dotnet-runtime_5 = dotnetCorePackages.runtime_5_0; </del> dotnet-runtime_6 = dotnetCorePackages.runtime_6_0; dotnet-runtime_7 = dotnetCorePackages.runtime_7_0; dotnet-aspnetcore_3 = dotnetCorePackages.aspnetcore_3_1; <del> dotnet-aspnetcore_5 = dotnetCorePackages.aspnetcore_5_0; </del> dotnet-aspnetcore_6 = dotnetCorePackages.aspnetcore_6_0; dotnet-aspnetcore_7 = dotnetCorePackages.aspnetcore_7_0;


sqlite webkitgtk gst_all_1.gstreamer <ins> gst_all_1.gst-libav </ins> gst_all_1.gst-plugins-base <ins> gst_all_1.gst-plugins-good </ins> libgee libgudev gexiv2


githubId = 20391; name = "Nahum Shalman"; }; <ins> nsnelson = { email = "noah.snelson@protonmail.com"; github = "peeley"; githubId = 30942198; name = "Noah Snelson"; }; </ins> nthorne = { email = "notrupertthorne@gmail.com"; github = "nthorne";


<ins> { stdenv, lib, fetchFromGitHub, qmake, qtbase, wrapQtAppsHook }: stdenv.mkDerivation { pname = "selectdefaultapplication"; version = "unstable-2021-08-12"; src = fetchFromGitHub { owner = "sandsmark"; repo = "selectdefaultapplication"; rev = "c752df6ba8caceeef54bcf6527f1bccc2ca8202a"; sha256 = "C/70xpt6RoQNIlAjSJhOCyheolK4Xp6RiSZmeqMP4fw="; }; nativeBuildInputs = [ qmake wrapQtAppsHook ]; buildInputs = [ qtbase ]; installPhase = '' runHook preInstall mkdir -p $out/bin cp selectdefaultapplication $out/bin install -Dm644 -t "$out/share/applications" selectdefaultapplication.desktop install -Dm644 -t "$out/share/icons/hicolor/48x48/apps" selectdefaultapplication.png runHook postInstall ''; meta = with lib; { description = "A very simple application that lets you define default applications on Linux in a sane way"; homepage = "https://github.com/sandsmark/selectdefaultapplication"; maintainers = with maintainers; [ nsnelson ]; license = licenses.gpl2; platforms = platforms.linux; }; } </ins>


seexpr = callPackage ../development/compilers/seexpr { }; <ins> selectdefaultapplication = libsForQt5.callPackage ../applications/misc/selectdefaultapplication { }; </ins> semgrep = python3.pkgs.callPackage ../tools/security/semgrep { }; semgrep-core = callPackage ../tools/security/semgrep/semgrep-core.nix { };


wantedBy = [ "sysinit.target" ]; aliases = [ "dbus-org.freedesktop.timesync1.service" ]; restartTriggers = [ config.environment.etc."systemd/timesyncd.conf".source ]; <ins> # systemd-timesyncd disables DNSSEC validation in the nss-resolve module by setting SYSTEMD_NSS_RESOLVE_VALIDATE to 0 in the unit file. # This is required in order to solve the chicken-and-egg problem when DNSSEC validation needs the correct time to work, but to set the # correct time, we need to connect to an NTP server, which usually requires resolving its hostname. # In order for nss-resolve to be able to read this environment variable we patch systemd-timesyncd to disable NSCD and use NSS modules directly. # This means that systemd-timesyncd needs to have NSS modules path in LD_LIBRARY_PATH. When systemd-resolved is disabled we still need to set # NSS module path so that systemd-timesyncd keeps using other NSS modules that are configured in the system. environment.LD_LIBRARY_PATH = config.system.nssModules.path; </ins> preStart = ( # Ensure that we have some stored time to prevent


systemd-shutdown = handleTest ./systemd-shutdown.nix {}; systemd-sysupdate = runTest ./systemd-sysupdate.nix; systemd-timesyncd = handleTest ./systemd-timesyncd.nix {}; <ins> systemd-timesyncd-nscd-dnssec = handleTest ./systemd-timesyncd-nscd-dnssec.nix {}; </ins> systemd-user-tmpfiles-rules = handleTest ./systemd-user-tmpfiles-rules.nix {}; systemd-misc = handleTest ./systemd-misc.nix {}; systemd-userdbd = handleTest ./systemd-userdbd.nix {};


<ins> # This test verifies that systemd-timesyncd can resolve the NTP server hostname when DNSSEC validation # fails even though it is enforced in the systemd-resolved settings. It is required in order to solve # the chicken-and-egg problem when DNSSEC validation needs the correct time to work, but to set the # correct time, we need to connect to an NTP server, which usually requires resolving its hostname. # # This test does the following: # - Sets up a DNS server (tinydns) listening on the eth1 ip addess, serving .ntp and fake.ntp records. # - Configures that DNS server as a resolver and enables DNSSEC in systemd-resolved settings. # - Configures systemd-timesyncd to use fake.ntp hostname as an NTP server. # - Performs a regular DNS lookup, to ensure it fails due to broken DNSSEC. # - Waits until systemd-timesyncd resolves fake.ntp by checking its debug output. #   Here, we don't expect systemd-timesyncd to connect and synchronize time because there is no NTP #   server running. For this test to succeed, we only need to ensure that systemd-timesyncd #   resolves the IP address of the fake.ntp host. import ./make-test-python.nix ({ pkgs, ... }: let ntpHostname = "fake.ntp"; ntpIP = "192.0.2.1"; in { name = "systemd-timesyncd"; nodes.machine = { pkgs, lib, config, ... }: let eth1IP = (lib.head config.networking.interfaces.eth1.ipv4.addresses).address; in { # Setup a local DNS server for the NTP domain on the eth1 IP address services.tinydns = { enable = true; ip = eth1IP; data = '' .ntp:${eth1IP} +.${ntpHostname}:${ntpIP} ''; }; # Enable systemd-resolved with DNSSEC and use the local DNS as a name server services.resolved.enable = true; services.resolved.dnssec = "true"; networking.nameservers = [ eth1IP ]; # Configure systemd-timesyncd to use our NTP hostname services.timesyncd.enable = lib.mkForce true; services.timesyncd.servers = [ ntpHostname ]; services.timesyncd.extraConfig = '' FallbackNTP=${ntpHostname} ''; # The debug output is necessary to determine whether systemd-timesyncd successfully resolves our NTP hostname or not systemd.services.systemd-timesyncd.environment.SYSTEMD_LOG_LEVEL = "debug"; }; testScript = '' machine.wait_for_unit("tinydns.service") machine.wait_for_unit("systemd-timesyncd.service") machine.fail("resolvectl query ${ntpHostname}") machine.wait_until_succeeds("journalctl -u systemd-timesyncd.service --grep='Resolved address ${ntpIP}:123 for ${ntpHostname}'") ''; }) </ins>


<ins> From 7a27556920fe1feefd17096841c8f3ca1294a1b3 Mon Sep 17 00:00:00 2001 From: Yuri Nesterov <yuriy.nesterov@unikie.com> Date: Wed, 21 Jun 2023 17:17:38 +0300 Subject: [PATCH] timesyncd: disable NSCD when DNSSEC validation is disabled Systemd-timesyncd sets SYSTEMD_NSS_RESOLVE_VALIDATE=0 in the unit file to disable DNSSEC validation but it doesn't work when NSCD is used in the system. This patch disabes NSCD in systemd-timesyncd when SYSTEMD_NSS_RESOLVE_VALIDATE is set to 0 so that it uses NSS libraries directly. --- src/timesync/timesyncd.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/timesync/timesyncd.c b/src/timesync/timesyncd.c index 1d8ebecc91..2b0ae361ff 100644 --- a/src/timesync/timesyncd.c +++ b/src/timesync/timesyncd.c @@ -21,6 +21,11 @@ #include "timesyncd-conf.h" #include "timesyncd-manager.h" #include "user-util.h" +#include "env-util.h" + +struct traced_file; +extern void __nss_disable_nscd(void (*)(size_t, struct traced_file *)); +static void register_traced_file(size_t dbidx, struct traced_file *finfo) {} static int advance_tstamp(int fd, const struct stat *st) { assert_se(fd >= 0); @@ -198,6 +203,12 @@ static int run(int argc, char *argv[]) { if (r < 0) return log_error_errno(r, "Failed to parse fallback server strings: %m"); +        r = getenv_bool_secure("SYSTEMD_NSS_RESOLVE_VALIDATE"); +        if (r == 0) { +                log_info("Disabling NSCD because DNSSEC validation is turned off"); +                __nss_disable_nscd(register_traced_file); +        } + log_debug("systemd-timesyncd running as pid " PID_FMT, getpid_cached()); notify_message = notify_start("READY=1n" -- 2.34.1 </ins>


./0017-core-don-t-taint-on-unmerged-usr.patch ./0018-tpm2_context_init-fix-driver-name-checking.patch ./0019-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch <ins> ./0020-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch </ins> ] ++ lib.optional stdenv.hostPlatform.isMusl ( let oe-core = fetchzip {


, extra-cmake-modules , cpp-utilities , qtutilities <ins> , qtforkawesome , boost </ins> , cmake , kio , plasma-framework


}: mkDerivation rec { <del> version = "1.1.3"; </del> <ins> version = "1.1.20"; </ins> pname = "syncthingtray"; src = fetchFromGitHub { owner = "Martchus"; repo = "syncthingtray"; rev = "v${version}"; <del> sha256 = "sha256-ovit2XSkxSjcbpqQUv8IzMqfsfItbtXLbx0/Vy0+J0Y="; </del> <ins> sha256 = "sha256-T0ddAROwVSh+IKGZZNDMC7YB2IfQZal2pAQ5ArirtjI="; </ins> }; <del> buildInputs = [ qtbase cpp-utilities qtutilities ] </del> <ins> buildInputs = [ qtbase cpp-utilities qtutilities boost qtforkawesome ] </ins> ++ lib.optionals webviewSupport [ qtwebengine ] ++ lib.optionals jsSupport [ qtdeclarative ] ++ lib.optionals kioPluginSupport [ kio ]


<ins> { stdenv , lib , fetchFromGitHub , cpp-utilities , qtutilities , qttools , qtbase , cmake , perl }: let fork_awesome_release = fetchFromGitHub { owner = "ForkAwesome"; repo = "Fork-Awesome"; rev = "1.2.0"; sha256 = "sha256-zG6/0dWjU7/y/oDZuSEv+54Mchng64LVyV8bluskYzc="; }; in stdenv.mkDerivation rec { pname = "qtforkawesome"; version = "0.0.4"; src = fetchFromGitHub { owner = "Martchus"; repo = pname; rev = "v${version}"; sha256 = "sha256-J3F+ikz6gQqV+JsOX8EpMOWoTmI6UK5KndFALUo4oiU="; }; buildInputs = [ qtbase cpp-utilities qtutilities ]; nativeBuildInputs = [ cmake qttools perl perl.pkgs.YAML ]; cmakeFlags = [ "-DFORK_AWESOME_FONT_FILE=${fork_awesome_release}/fonts/forkawesome-webfont.woff2" "-DFORK_AWESOME_ICON_DEFINITIONS=${fork_awesome_release}/src/icons/icons.yml" ]; dontWrapQtApps = true; meta = with lib; { homepage = "https://github.com/Martchus/qtforkawesome"; description = "Library that bundles ForkAwesome for use within Qt applications"; license = licenses.gpl2Plus; maintainers = with maintainers; [ doronbehar ]; platforms   = platforms.linux; }; } </ins>


qtfeedback = callPackage ../development/libraries/qtfeedback { }; <ins> qtforkawesome = callPackage ../development/libraries/qtforkawesome { }; </ins> qtutilities = callPackage ../development/libraries/qtutilities { }; qtinstaller = callPackage ../development/libraries/qtinstaller { };


attrsToText = attrs: concatStringsSep "n" ( mapAttrsToList (n: v: ''${n}=${escapeIfNeccessary (toString v)}'') attrs <del> ); </del> <ins> ) + "n"; </ins> osReleaseContents = { NAME = "NixOS";


let # having the full version string here makes it easier to update <del> modDirVersion = "5.18.0-zen1"; </del> <ins> modDirVersion = "5.18.1-zen1"; </ins> parts = lib.splitString "-" modDirVersion; version = lib.elemAt parts 0; suffix = lib.elemAt parts 1;


owner = "zen-kernel"; repo = "zen-kernel"; inherit rev; <del> sha256 = "sha256-A0QrY1REbRODnHtmyNqVaiLhDgYCECevfHZCxtoQ9kU="; </del> <ins> sha256 = "sha256-LCLfLE85NifuskYl2dxLOJEsUNHLegF8ecYyU4xOCtY="; </ins> }; structuredExtraConfig = with lib.kernel; { ZEN_INTERACTIVE = yes; <ins> # TODO: Remove once #175433 reaches master # https://nixpk.gs/pr-tracker.html?pr=175433 WERROR = no; </ins> }; extraMeta = {


function gitea_setup { cp -f ${configFile} ${runConfig} <del> if [ ! -e ${secretKey} ]; then </del> <ins> if [ ! -s ${secretKey} ]; then </ins> ${gitea}/bin/gitea generate secret SECRET_KEY > ${secretKey} fi # Migrate LFS_JWT_SECRET filename <del> if [[ -e ${oldLfsJwtSecret} && ! -e ${lfsJwtSecret} ]]; then </del> <ins> if [[ -s ${oldLfsJwtSecret} && ! -s ${lfsJwtSecret} ]]; then </ins> mv ${oldLfsJwtSecret} ${lfsJwtSecret} fi <del> if [ ! -e ${oauth2JwtSecret} ]; then </del> <ins> if [ ! -s ${oauth2JwtSecret} ]; then </ins> ${gitea}/bin/gitea generate secret JWT_SECRET > ${oauth2JwtSecret} fi <del> if [ ! -e ${lfsJwtSecret} ]; then </del> <ins> if [ ! -s ${lfsJwtSecret} ]; then </ins> ${gitea}/bin/gitea generate secret LFS_JWT_SECRET > ${lfsJwtSecret} fi <del> if [ ! -e ${internalToken} ]; then </del> <ins> if [ ! -s ${internalToken} ]; then </ins> ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken} fi


] ++ lib.optional config.security.rtkit.enable "rtkit"; description = "Pipewire system service user"; isSystemUser = true; <ins> home = "/var/lib/pipewire"; createHome = true; </ins> }; groups.pipewire.gid = config.ids.gids.pipewire; };


cp -r $unpacked/sbin/* $out/bin/ cp -r $unpacked/lib/libconf $out/lib/vmware/ <ins> rm $out/lib/vmware/libconf/etc/fonts/fonts.conf </ins> cp -r $unpacked/lib/bin $out/lib/vmware/ cp -r $unpacked/lib/lib $out/lib/vmware/ cp -r $unpacked/lib/scripts $out/lib/vmware/


./linux-5.6.patch # source: https://gist.github.com/joanbm/5c640ac074d27fd1d82c74a5b67a1290 ./linux-5.9.patch <del> # source: https://github.com/archlinux/svntogit-community/blob/5ec5b248976f84fcd7e3d7fae49ee91289912d12/trunk/012-linux517.patch </del> <ins> # source: https://github.com/archlinux/svntogit-community/blob/33b4bd2b9e30679b03f5d7aa2741911d914dcf94/trunk/012-linux517.patch </ins> ./linux-5.17.patch <ins> # source: https://github.com/archlinux/svntogit-community/blob/2e1fd240f9ce06f500feeaa3e4a9675e65e6b967/trunk/013-linux518.patch ./linux-5.18.patch ./pedantic-fix.patch </ins> ./null-pointer-fix.patch ./gcc.patch ];


<del> diff -u -r a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c --- a/src/wl/sys/wl_linux.c	2022-03-23 00:35:42.930416350 +0000 +++ b/src/wl/sys/wl_linux.c	2022-03-23 00:40:12.903771013 +0000 @@ -2980,7 +2980,11 @@ </del> <ins> From 31b7849092c43805c7fbaf7518b99874aa1b310c Mon Sep 17 00:00:00 2001 From: Joan Bruguera <joanbrugueram@gmail.com> Date: Wed, 12 Jan 2022 20:49:20 +0100 Subject: [PATCH] Tentative fix for broadcom-wl 6.30.223.271 driver for Linux 5.17-rc1 Set netdev->dev_addr through dev_addr_mod + PDE_DATA fix Since Linux 5.17 netdev->dev_addr is const and must be changed through dev_addr_mod, otherwise a warning is logged in dmesg and bad things may happen. NB: The #if is not wrong, dev_addr_mod is defined since Linux 5.15-rc1 Plus a trivial fix for PDE_DATA. Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-28 on Arch Linux. See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=adeef3e32146a8d2a73c399dc6f5d76a449131b1 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=359745d78351c6f5442435f81549f0207ece28aa --- src/wl/sys/wl_linux.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c index e491df7..e4614fb 100644 --- a/src/wl/sys/wl_linux.c +++ b/src/wl/sys/wl_linux.c @@ -93,6 +93,10 @@ struct iw_statistics *wl_get_wireless_stats(struct net_device *dev); #include <wlc_wowl.h> +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0)) +#define PDE_DATA pde_data +#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) static void wl_timer(struct timer_list *tl); #else @@ -490,6 +494,12 @@ wl_if_setup(struct net_device *dev) #endif } +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0) +static inline void eth_hw_addr_set(struct net_device *dev, const void *addr) { +	memcpy(dev->dev_addr, addr, ETHER_ADDR_LEN); +} +#endif + static wl_info_t * wl_attach(uint16 vendor, uint16 device, ulong regs, uint bustype, void *btparam, uint irq, uchar* bar1_addr, uint32 bar1_size) @@ -634,7 +644,7 @@ wl_attach(uint16 vendor, uint16 device, ulong regs, WL_ERROR(("wl%d: Error setting MAC ADDRESSn", unit)); } #endif -	bcopy(&wl->pub->cur_etheraddr, dev->dev_addr, ETHER_ADDR_LEN); +	eth_hw_addr_set(dev, wl->pub->cur_etheraddr.octet); online_cpus = 1; @@ -1835,7 +1845,7 @@ wl_set_mac_address(struct net_device *dev, void *addr) WL_LOCK(wl); -	bcopy(sa->sa_data, dev->dev_addr, ETHER_ADDR_LEN); +	eth_hw_addr_set(dev, sa->sa_data); err = wlc_iovar_op(wl->wlc, "cur_etheraddr", NULL, 0, sa->sa_data, ETHER_ADDR_LEN, IOV_SET, (WL_DEV_IF(dev))->wlcif); WL_UNLOCK(wl); @@ -3010,7 +3020,7 @@ _wl_add_monitor_if(wl_task_t *task) </ins> else dev->type = ARPHRD_IEEE80211_RADIOTAP; <del> +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0) bcopy(wl->dev->dev_addr, dev->dev_addr, ETHER_ADDR_LEN); +#else +	eth_hw_addr_set(wl->dev, dev->dev_addr); +#endif </del> <ins> -	bcopy(wl->dev->dev_addr, dev->dev_addr, ETHER_ADDR_LEN); +	eth_hw_addr_set(dev, wl->dev->dev_addr); </ins> #if defined(WL_USE_NETDEV_OPS) dev->netdev_ops = &wl_netdev_monitor_ops; <del> @@ -3261,7 +3265,11 @@ static ssize_t wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *offp) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0) wl_info_t * wl = PDE_DATA(file_inode(filp)); +#else +	wl_info_t * wl = pde_data(file_inode(filp)); +#endif #endif int bcmerror, len; int to_user = 0; @@ -3318,7 +3326,11 @@ static ssize_t wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *offp) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0) wl_info_t * wl = PDE_DATA(file_inode(filp)); +#else +	wl_info_t * wl = pde_data(file_inode(filp)); +#endif #endif int from_user = 0; int bcmerror; </del> <ins> -- 2.35.1 </ins>


<ins> diff -u -r a/src/shared/linux_osl.c b/src/shared/linux_osl.c --- a/src/shared/linux_osl.c	2022-05-24 20:51:15.662604980 +0000 +++ b/src/shared/linux_osl.c	2022-05-24 21:13:38.264472425 +0000 @@ -599,6 +599,8 @@ va = kmalloc(size, GFP_ATOMIC | __GFP_ZERO); if (va) *pap = (ulong)__virt_to_phys(va); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) +	va = dma_alloc_coherent(&((struct pci_dev *)osh->pdev)->dev, size, (dma_addr_t*)pap, GFP_ATOMIC); #else va = pci_alloc_consistent(osh->pdev, size, (dma_addr_t*)pap); #endif @@ -612,6 +614,8 @@ #ifdef __ARM_ARCH_7A__ kfree(va); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) +	dma_free_coherent(&((struct pci_dev *)osh->pdev)->dev, size, va, (dma_addr_t)pa); #else pci_free_consistent(osh->pdev, size, va, (dma_addr_t)pa); #endif @@ -623,7 +627,11 @@ int dir; ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC))); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) +	dir = (direction == DMA_TX)? DMA_TO_DEVICE: DMA_FROM_DEVICE; +#else dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE; +#endif #if defined(__ARM_ARCH_7A__) && defined(BCMDMASGLISTOSL) if (dmah != NULL) { @@ -641,7 +649,11 @@ ASSERT(totsegs + nsegs <= MAX_DMA_SEGS); sg->page_link = 0; sg_set_buf(sg, PKTDATA(osh, skb), PKTLEN(osh, skb)); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) +				dma_map_single(&((struct pci_dev *)osh->pdev)->dev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir); +#else pci_map_single(osh->pdev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir); +#endif } totsegs += nsegs; totlen += PKTLEN(osh, skb); @@ -656,7 +668,11 @@ } #endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) +	return (dma_map_single(&((struct pci_dev *)osh->pdev)->dev, va, size, dir)); +#else return (pci_map_single(osh->pdev, va, size, dir)); +#endif } void BCMFASTPATH @@ -665,8 +681,13 @@ int dir; ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC))); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) +	dir = (direction == DMA_TX)? DMA_TO_DEVICE: DMA_FROM_DEVICE; +	dma_unmap_single(&((struct pci_dev *)osh->pdev)->dev, (uint32)pa, size, dir); +#else dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE; pci_unmap_single(osh->pdev, (uint32)pa, size, dir); +#endif } #if defined(BCMDBG_ASSERT) </ins>


<ins> diff --git a/src/shared/linux_osl.c b/shared/linux_osl.c index 711b771..5a2636a 100644 --- a/src/shared/linux_osl.c +++ b/src/shared/linux_osl.c @@ -1105,7 +1105,7 @@ osl_os_get_image_block(char *buf, int len, void *image) if (!image) return 0; -	rdlen = kernel_read(fp, fp->f_pos, buf, len); +	rdlen = kernel_read(fp, (void *)fp->f_pos, (size_t)len, (loff_t *)buf); if (rdlen > 0) fp->f_pos += rdlen; diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/wl/sys/wl_cfg80211_hybrid.c index 41c16d8..d39d9de 100644 --- a/src/wl/sys/wl_cfg80211_hybrid.c +++ b/src/wl/sys/wl_cfg80211_hybrid.c @@ -790,6 +790,7 @@ wl_set_auth_type(struct net_device *dev, struct cfg80211_connect_params *sme) break; case NL80211_AUTHTYPE_NETWORK_EAP: WL_DBG(("network eapn")); +		break; default: val = 2; WL_ERR(("invalid auth type (%d)n", sme->auth_type)); @@ -2347,21 +2348,20 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, const wl_event_msg_t *e, void *data) { struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); +	s32 err = 0; #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) struct cfg80211_bss *bss; struct wlc_ssid *ssid; +	struct cfg80211_roam_info roam_info; ssid = &wl->profile->ssid; bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid, ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); -	struct cfg80211_roam_info roam_info = { -		.bss = bss, -		.req_ie = conn_info->req_ie, -		.req_ie_len = conn_info->req_ie_len, -		.resp_ie = conn_info->resp_ie, -		.resp_ie_len = conn_info->resp_ie_len, -	}; +	roam_info.bss = bss; +	roam_info.req_ie = conn_info->req_ie; +	roam_info.req_ie_len = conn_info->req_ie_len; +	roam_info.resp_ie = conn_info->resp_ie; +	roam_info.resp_ie_len = conn_info->resp_ie_len; #endif -	s32 err = 0; wl_get_assoc_ies(wl); memcpy(wl->profile->bssid, &e->addr, ETHER_ADDR_LEN); diff --git a/src/wl/sys/wl_iw.h b/wl/sys/wl_iw.h index 3ab084f..471d11f 100644 --- a/src/wl/sys/wl_iw.h +++ b/src/wl/sys/wl_iw.h @@ -70,7 +70,6 @@ struct cntry_locales_custom { #define	WL_IW_RSSI_EXCELLENT	-57 #define	WL_IW_RSSI_INVALID	 0 #define MAX_WX_STRING 80 -#define isprint(c) bcm_isprint(c) #define WL_IW_SET_ACTIVE_SCAN	(SIOCIWFIRSTPRIV+1) #define WL_IW_GET_RSSI			(SIOCIWFIRSTPRIV+3) #define WL_IW_SET_PASSIVE_SCAN	(SIOCIWFIRSTPRIV+5) diff --git a/src/wl/sys/wl_linux.c b/wl/sys/wl_linux.c index d13fb98..97ae2a6 100644 --- a/src/wl/sys/wl_linux.c +++ b/src/wl/sys/wl_linux.c @@ -797,14 +797,15 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) pci_read_config_dword(pdev, 0x40, &val); if ((val & 0x0000ff00) != 0) pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); -		bar1_size = pci_resource_len(pdev, 2); -		#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) -		bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2), -			bar1_size); -		#else -		bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2), -			bar1_size); -		#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */ + +	bar1_size = pci_resource_len(pdev, 2); +	#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) +	bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2), +		bar1_size); +	#else +	bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2), +		bar1_size); +	#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */ wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev, pdev->irq, bar1_addr, bar1_size); </ins>


url = "https://hg.mozilla.org/releases/mozilla-esr102/raw-rev/1fa20fb474f5d149cc32d98df169dee5e6e6861b"; sha256 = "sha256-eCisKjNxy9SLr9KoEE2UB26BflUknnR7PIvnpezsZeA="; }) <ins> ] ++ lib.optionals (lib.versionAtLeast version "91" && stdenv.hostPlatform.system == "i686-linux") [ # Fixes i686 build, https://bugzilla.mozilla.org/show_bug.cgi?id=1729459 ./fix-float-i686.patch </ins> ]; nativeBuildInputs = [


<ins> diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h index 51d79f9c2ec59..fafd7d6fc1e0d 100644 --- a/modules/fdlibm/src/math_private.h +++ b/modules/fdlibm/src/math_private.h @@ -30,5 +30,9 @@ * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t */ +#if defined __FLT_EVAL_METHOD__ && (__FLT_EVAL_METHOD__ == 2) +typedef long double      __double_t; +#else typedef double      __double_t; +#endif typedef __double_t  double_t; /* </ins>  No newline at end of file


{ lib , python3 , openssl <ins> , fetchpatch </ins> # Many Salt modules require various Python modules to be installed, # passing them in this array enables Salt to find them. , extraInputs ? []


patches = [ ./fix-libcrypto-loading.patch <ins> (fetchpatch { url = "https://github.com/saltstack/salt/commit/6ec8b90e402ff3fa8f27c7da70ece898592416bc.patch"; hash = "sha256-OQCJeG12cp2EZ0BErp6yqsqhv023923rVFDHAFUfF6c="; }) </ins> ]; postPatch = ''


inherit (darwin.apple_sdk.frameworks) Security; }; <del> tig = callPackage ../applications/version-management/git-and-tools/tig { }; </del> <ins> tig = callPackage ../applications/version-management/git-and-tools/tig { readline = readline81; }; </ins> tilemaker = callPackage ../applications/misc/tilemaker { };


fi done <del> if test -n $deepClone; then leaveDotGit=true fi </del> if test -z "$url"; then usage fi


isQtStyle = cfg.platformTheme == "gtk2" && !(builtins.elem cfg.style ["adwaita" "adwaita-dark"]); isQt5ct = cfg.platformTheme == "qt5ct"; isLxqt = cfg.platformTheme == "lxqt"; <ins> isKde = cfg.platformTheme == "kde"; </ins> packages = if isQGnome then [ pkgs.qgnomeplatform pkgs.adwaita-qt ] else if isQtStyle then [ pkgs.libsForQt5.qtstyleplugins ] else if isQt5ct then [ pkgs.libsForQt5.qt5ct ] else if isLxqt then [ pkgs.lxqt.lxqt-qtplugin pkgs.lxqt.lxqt-config ] <ins> else if isKde then [ pkgs.libsForQt5.plasma-integration pkgs.libsForQt5.systemsettings ] </ins> else throw "`qt5.platformTheme` ${cfg.platformTheme} and `qt5.style` ${cfg.style} are not compatible."; in


"gnome" "lxqt" "qt5ct" <ins> "kde" </ins> ]; example = "gnome"; relatedPackages = [


["libsForQt5" "qtstyleplugins"] ["libsForQt5" "qt5ct"] ["lxqt" "lxqt-qtplugin"] <ins> ["libsForQt5" "plasma-integration"] </ins> ]; description = '' Selects the platform theme to use for Qt5 applications.</para>


application. </para></listitem> </varlistentry> <ins> <varlistentry> <term><literal>kde</literal></term> <listitem><para>Use Qt settings from Plasma.</para></listitem> </varlistentry> </ins> </variablelist> ''; };


environment.variables.QT_QPA_PLATFORMTHEME = cfg.platformTheme; <del> environment.variables.QT_STYLE_OVERRIDE = mkIf (! (isQt5ct || isLxqt)) cfg.style; </del> <ins> environment.variables.QT_STYLE_OVERRIDE = mkIf (! (isQt5ct || isLxqt || isKde)) cfg.style; </ins> environment.systemPackages = packages;


stdenv.mkDerivation rec { pname = "mullvad-vpn"; <del> version = "2022.1"; </del> <ins> version = "2022.2"; </ins> src = fetchurl { url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb"; <del> sha256 = "0s12y9j75k59kqkcvfflb1v5p3ny7xgc1m5bd635lvql1bv46c3i"; </del> <ins> sha256 = "sha256-h/c4aPH6E2TzbXGROpLJgF9uHYcjvKiW5upIobpJM9o="; </ins> }; nativeBuildInputs = [


, openvpn-mullvad , shadowsocks-rust }: <del> let # result of running address_cache as of 02 Mar 2022 bootstrap-address-cache = writeText "api-ip-address.txt" '' 193.138.218.78:443 193.138.218.71:444 185.65.134.66:444 185.65.135.117:444 217.138.254.130:444 91.90.44.10:444 ''; in </del> rustPlatform.buildRustPackage rec { pname = "mullvad"; <del> version = "2022.1"; </del> <ins> version = "2022.2"; </ins> src = fetchFromGitHub { owner = "mullvad"; repo = "mullvadvpn-app"; rev = version; <del> hash = "sha256-bLwuM3Qy2iStbXIvDEWp31vuiihSQThOej297XKo5Xc="; </del> <ins> hash = "sha256-ZtQKzbFrkacrfPIkMz/UOfIwQBXQUoVVlFla//jmMwY="; </ins> }; <del> cargoHash = "sha256-CBbm8cJHTjyvvzCFQfKmsE5d9N7azEm8nI6KeWLVaa8="; </del> <ins> cargoHash = "sha256-J6h3KY1RDCnAc/tQHNGEyOlVQoQNhRqjWbmimPitydQ="; </ins> nativeBuildInputs = [ pkg-config


postFixup = # Place all binaries in the 'mullvad-' namespace, even though these # specific binaries aren't used in the lifetime of the program. <del> # `address_cache` is used to generate the `api-ip-address.txt` file, which # contains list of Mullvad API servers -- though we provide a "backup" of # the output of this command, it could change at any time, so we want # users to be able to regenerate the list at any time. (The daemon will # refuse to start without this file.) </del> '' <del> for bin in address_cache relay_list translations-converter; do </del> <ins> for bin in relay_list translations-converter; do </ins> mv "$out/bin/$bin" "$out/bin/mullvad-$bin" done '' + <del> # Put distributed assets in-place -- specifically, the # bootstrap-address-cache is necessary; otherwise, the user will have to run # the `address_cache` binary and move the contents into place at # `/var/cache/mullvad-vpn/api-ip-address.txt` manually. '' mkdir -p $out/share/mullvad ln -s ${bootstrap-address-cache} $out/share/mullvad/api-ip-address.txt '' + </del> # Files necessary for OpenVPN tunnels to work. '' <ins> mkdir -p $out/share/mullvad </ins> cp dist-assets/ca.crt $out/share/mullvad ln -s ${openvpn-mullvad}/bin/openvpn $out/share/mullvad ln -s ${shadowsocks-rust}/bin/sslocal $out/share/mullvad


<del> { lib, stdenv, fetchurl, cctools, fixDarwinDylibNames }: </del> <ins> { lib , stdenv , fetchurl , cctools , fixDarwinDylibNames , autoSignDarwinBinariesHook }: </ins> stdenv.mkDerivation rec { pname = "lp_solve"; version = "5.5.2.11";


nativeBuildInputs = lib.optionals stdenv.isDarwin [ cctools fixDarwinDylibNames <ins> ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook </ins> ]; dontConfigure = true; <del> buildPhase = let ccc = if stdenv.isDarwin then "ccc.osx" else "ccc"; in '' runHook preBuild </del> <ins> buildPhase = let ccc = if stdenv.isDarwin then "ccc.osx" else "ccc"; in '' runHook preBuild </ins> <del> (cd lpsolve55 && bash -x -e ${ccc}) (cd lp_solve  && bash -x -e ${ccc}) </del> <ins> (cd lpsolve55 && bash -x -e ${ccc}) (cd lp_solve  && bash -x -e ${ccc}) </ins> <del> runHook postBuild ''; </del> <ins> runHook postBuild ''; </ins> installPhase = '' runHook preInstall


meta = with lib; { description = "A Mixed Integer Linear Programming (MILP) solver"; <del> homepage    = "http://lpsolve.sourceforge.net"; license     = licenses.gpl2Plus; </del> <ins> homepage = "http://lpsolve.sourceforge.net"; license = licenses.gpl2Plus; </ins> maintainers = with maintainers; [ smironov ]; <del> platforms   = platforms.unix; </del> <ins> platforms = platforms.unix; </ins> }; }


}; lp_solve = callPackage ../applications/science/math/lp_solve { <del> inherit (darwin) cctools; </del> <ins> inherit (darwin) cctools autoSignDarwinBinariesHook; </ins> }; fabric-installer = callPackage ../tools/games/minecraft/fabric-installer { };


unstable = fetchurl rec { # NOTE: Don't forget to change the SHA256 for staging as well. <del> version = "7.10"; </del> <ins> version = "7.12"; </ins> url = "https://dl.winehq.org/wine/source/7.x/wine-${version}.tar.xz"; <del> sha256 = "sha256-P+skzYWYwQ9q9xHnSsK10kQrtNO4wHj506JTroc2SA0="; </del> <ins> sha256 = "sha256-gJzsE3FmNubq/Uw9pzEkVqhE0xYCClV4YRvNuiEGnGg="; </ins> inherit (stable) gecko32 gecko64 patches; mono = fetchurl rec {


staging = fetchFromGitHub rec { # https://github.com/wine-staging/wine-staging/releases inherit (unstable) version; <del> sha256 = "sha256-5Pt98pla6t+B3FjB80hOWJUO64jY1EmOPQ0hEkFBWxY="; </del> <ins> sha256 = "sha256-A7IcBm3LzXzFu/NT+kbf2InTTuBzyQju/uMxSnIfsls="; </ins> owner = "wine-staging"; repo = "wine-staging"; rev = "v${version}";


stdenv.mkDerivation rec { pname = "vkd3d"; <del> version = "1.3"; </del> <ins> version = "1.4"; </ins> src = fetchurl { url = "https://dl.winehq.org/vkd3d/source/vkd3d-${version}.tar.xz"; <del> sha256 = "134b347806d34a4d2b39ea29ff1c2b38443793803a3adc50800855bb929fb8b2"; </del> <ins> sha256 = "sha256-yLqF9gSCyHPAVs9tuw6veRvIq30W1ipH83uYQbapCr0="; </ins> }; nativeBuildInputs = [ flex bison ];


{ lib , node_webkit , pkgs <del> , runCommand </del> <ins> , copyDesktopItems , makeDesktopItem </ins> , stdenv , writeShellScript <ins> , wrapGAppsHook </ins> }: let


${node_webkit}/bin/nw ${onlykey}/lib/node_modules/${onlykey.packageName}/build ''; in <del> runCommand "${onlykey.packageName}-${onlykey.version}" { } '' mkdir -p $out/bin ln -s ${script} $out/bin/onlykey '' </del> <ins> stdenv.mkDerivation { pname = "${onlykey.packageName}"; inherit (onlykey) version; dontUnpack = true; nativeBuildInputs = [ wrapGAppsHook copyDesktopItems ]; desktopItems = [ (makeDesktopItem { name = onlykey.packageName; exec = script; icon = "${onlykey}/lib/node_modules/${onlykey.packageName}/resources/onlykey_logo_128.png"; desktopName = onlykey.packageName; genericName = onlykey.packageName; }) ]; installPhase = '' runHook preInstall mkdir -p $out/bin ln -s ${script} $out/bin/onlykey runHook postInstall ''; } </ins>


githubId = 12958979; name = "Mika Naylor"; }; <ins> autrimpo = { email = "michal@koutensky.net"; github = "autrimpo"; githubId = 5968483; name = "Michal Koutenský"; }; </ins> autumnal = { name = "Sven Friedrich"; email = "sven@autumnal.de";


- [networkd-dispatcher](https://gitlab.com/craftyguy/networkd-dispatcher), a dispatcher service for systemd-networkd connection status changes. Available as [services.networkd-dispatcher](#opt-services.networkd-dispatcher.enable). <ins> - [gonic](https://github.com/sentriz/gonic), a Subsonic music streaming server. Available as [services.gonic](#opt-services.gonic.enable). </ins> - [mmsd](https://gitlab.com/kop316/mmsd), a lower level daemon that transmits and recieves MMSes. Available as [services.mmsd](#opt-services.mmsd.enable). - [QDMR](https://dm3mat.darc.de/qdmr/), a GUI application and command line tool for programming DMR radios [programs.qdmr](#opt-programs.qdmr.enable)


./services/audio/alsa.nix ./services/audio/botamusique.nix ./services/audio/gmediarender.nix <ins> ./services/audio/gonic.nix </ins> ./services/audio/hqplayerd.nix ./services/audio/icecast.nix ./services/audio/jack.nix


<ins> { config, lib, pkgs, ... }: with lib; let cfg = config.services.gonic; settingsFormat = pkgs.formats.keyValue { mkKeyValue = lib.generators.mkKeyValueDefault { } " "; listsAsDuplicateKeys = true; }; in { options = { services.gonic = { enable = mkEnableOption (lib.mdDoc "Gonic music server"); settings = mkOption rec { type = settingsFormat.type; apply = recursiveUpdate default; default = { listen-addr = "127.0.0.1:4747"; cache-path = "/var/cache/gonic"; tls-cert = null; tls-key = null; }; example = { music-path = [ "/mnt/music" ]; podcast-path = "/mnt/podcasts"; }; description = lib.mdDoc '' Configuration for Gonic, see <https://github.com/sentriz/gonic#configuration-options> for supported values. ''; }; }; }; config = mkIf cfg.enable { systemd.services.gonic = { description = "Gonic Media Server"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = let # these values are null by default but should not appear in the final config filteredSettings = filterAttrs (n: v: !((n == "tls-cert" || n == "tls-key") && v == null)) cfg.settings; in "${pkgs.gonic}/bin/gonic -config-path ${settingsFormat.generate "gonic" filteredSettings}"; DynamicUser = true; StateDirectory = "gonic"; CacheDirectory = "gonic"; WorkingDirectory = "/var/lib/gonic"; RuntimeDirectory = "gonic"; RootDirectory = "/run/gonic"; ReadWritePaths = ""; BindReadOnlyPaths = [ # gonic can access scrobbling services "-/etc/ssl/certs/ca-certificates.crt" builtins.storeDir cfg.settings.podcast-path ] ++ cfg.settings.music-path ++ lib.optional (cfg.settings.tls-cert != null) cfg.settings.tls-cert ++ lib.optional (cfg.settings.tls-key != null) cfg.settings.tls-key; CapabilityBoundingSet = ""; RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ]; RestrictNamespaces = true; PrivateDevices = true; PrivateUsers = true; ProtectClock = true; ProtectControlGroups = true; ProtectHome = true; ProtectKernelLogs = true; ProtectKernelModules = true; ProtectKernelTunables = true; SystemCallArchitectures = "native"; SystemCallFilter = [ "@system-service" "~@privileged" ]; RestrictRealtime = true; LockPersonality = true; MemoryDenyWriteExecute = true; UMask = "0066"; ProtectHostname = true; }; }; }; meta.maintainers = [ maintainers.autrimpo ]; } </ins>


gocd-agent = handleTest ./gocd-agent.nix {}; gocd-server = handleTest ./gocd-server.nix {}; gollum = handleTest ./gollum.nix {}; <ins> gonic = handleTest ./gonic.nix {}; </ins> google-oslogin = handleTest ./google-oslogin {}; gotify-server = handleTest ./gotify-server.nix {}; grafana = handleTest ./grafana {};


<ins> import ./make-test-python.nix ({ pkgs, ... }: { name = "gonic"; nodes.machine = { ... }: { services.gonic = { enable = true; settings = { music-path = [ "/tmp" ]; podcast-path = "/tmp"; }; }; }; testScript = '' machine.wait_for_unit("gonic") machine.wait_for_open_port(4747) ''; }) </ins>


{ lib, stdenv, buildGoModule, fetchFromGitHub <ins> , nixosTests </ins> , pkg-config, taglib, zlib # Disable on-the-fly transcoding,


'"${lib.getBin mpv}/bin/mpv"' ''; <ins> passthru = { tests.gonic = nixosTests.gonic; }; </ins> meta = { homepage = "https://github.com/sentriz/gonic"; description = "Music streaming server / subsonic server API implementation";


binutils = binutils; }; <del> dive = callPackage ../development/tools/dive { }; </del> <ins> dive = callPackage ../development/tools/dive { buildGoModule = buildGo117Module; }; </ins> doclifter = callPackage ../development/tools/misc/doclifter { };


kubeaudit = callPackage ../tools/security/kubeaudit { }; <del> kubectx = callPackage ../development/tools/kubectx { }; </del> <ins> kubectx = callPackage ../development/tools/kubectx { buildGoModule = buildGo117Module; }; </ins> kube-linter = callPackage ../development/tools/kube-linter { };


sha256 = "sha256-kPjS+otVZ8aJmDDd7ywD88J5YLEayiIvoXqnrGE8KJA="; }; <ins> # https://github.com/svaarala/duktape/issues/2464 LDFLAGS = [ "-lm" ]; </ins> nativeBuildInputs = [ validatePkgConfig ]; <del> postPatch = '' substituteInPlace Makefile.sharedlibrary  --replace 'gcc' '${stdenv.cc.targetPrefix}cc'  --replace 'g++' '${stdenv.cc.targetPrefix}c++' substituteInPlace Makefile.cmdline  --replace 'gcc' '${stdenv.cc.targetPrefix}cc'  --replace 'g++' '${stdenv.cc.targetPrefix}c++' ''; </del> buildPhase = '' make -f Makefile.sharedlibrary make -f Makefile.cmdline ''; installPhase = '' install -d $out/bin install -m755 duk $out/bin/


make -f Makefile.sharedlibrary install INSTALL_PREFIX=$out substituteAll ${./duktape.pc.in} $out/lib/pkgconfig/duktape.pc ''; enableParallelBuilding = true; meta = with lib; {