Merge staging-next into staging

Changed files
+231 -37
nixos
modules
hardware
services
networking
pkgs
applications
audio
ncmpcpp
networking
browsers
chromium
build-support
setup-hooks
development
arduino
arduino-core
games
anki
os-specific
linux
firmware
rtl8761b-firmware
kernel
tools
misc
fbcat
toybox
networking
libreswan
top-level
+1
nixos/modules/hardware/all-firmware.nix
···
rtl8192su-firmware
rt5677-firmware
rtl8723bs-firmware
+
rtl8761b-firmware
rtlwifi_new-firmware
zd1211fw
alsa-firmware
+2
nixos/modules/services/networking/kresd.nix
···
CacheDirectory = "knot-resolver";
CacheDirectoryMode = "0770";
};
+
# We don't mind running stop phase from wrong version. It seems less racy.
+
systemd.services."kresd@".stopIfChanged = false;
# Try cleaning up the previously default location of cache file.
# Note that /var/cache/* should always be safe to remove.
+5 -4
pkgs/applications/audio/ncmpcpp/default.nix
···
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "ncmpcpp";
-
version = "0.8.2";
+
version = "0.9.1";
src = fetchurl {
-
url = "https://ncmpcpp.rybczak.net/stable/${pname}-${version}.tar.bz2";
-
sha256 = "0m0mjb049sl62vx13h9waavysa30mk0rphacksnvf94n13la62v5";
+
url = "https://rybczak.net/ncmpcpp/stable/${pname}-${version}.tar.bz2";
+
sha256 = "0x35nd4v31sma8fliqdbn1nxpjyi8hv472318sfb3xbmr4wlm0fb";
};
configureFlags = [ "BOOST_LIB_SUFFIX=" ]
···
meta = {
description = "A featureful ncurses based MPD client inspired by ncmpc";
-
homepage = "https://ncmpcpp.rybczak.net/";
+
homepage = "https://rybczak.net/ncmpcpp/";
+
changelog = "https://github.com/ncmpcpp/ncmpcpp/blob/${version}/CHANGELOG.md";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ jfrankenau koral lovek323 ];
platforms = platforms.all;
+2 -2
pkgs/applications/networking/browsers/chromium/common.nix
···
, bison, gperf
, glib, gtk3, dbus-glib
, glibc
-
, libXScrnSaver, libXcursor, libXtst, libGLU, libGL
+
, libXScrnSaver, libXcursor, libXtst, libxshmfence, libGLU, libGL
, protobuf, speechd, libXdamage, cups
, ffmpeg, libxslt, libxml2, at-spi2-core
, jre8
···
util-linux alsaLib
bison gperf kerberos
glib gtk3 dbus-glib
-
libXScrnSaver libXcursor libXtst libGLU libGL
+
libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL
pciutils protobuf speechd libXdamage at-spi2-core
jre
pipewire_0_2
+15 -5
pkgs/build-support/setup-hooks/auto-patchelf.sh
···
+
#!/usr/bin/env bash
+
declare -a autoPatchelfLibs
declare -Ag autoPatchelfFailedDeps
···
patchelf "$@" || (echo "Command failed: patchelf $*" && exit 1)
}
+
# shellcheck disable=SC2154
+
# (targetOffset is referenced but not assigned.)
addEnvHooks "$targetOffset" gatherLibraries
isExecutable() {
···
interpreter="$(< "$NIX_CC/nix-support/dynamic-linker")"
if isExecutable "$toPatch"; then
runPatchelf --set-interpreter "$interpreter" "$toPatch"
+
# shellcheck disable=SC2154
+
# (runtimeDependencies is referenced but not assigned.)
if [ -n "$runtimeDependencies" ]; then
for dep in $runtimeDependencies; do
rpath="$rpath${rpath:+:}$dep/lib"
···
# clear the RPATH first.
runPatchelf --remove-rpath "$toPatch"
+
# If the file is not a dynamic executable, ldd/sed will fail,
+
# in which case we return, since there is nothing left to do.
local missing
missing="$(
ldd "$toPatch" 2> /dev/null | \
sed -n -e 's/^[\t ]*\([^ ]\+\) => not found.*/\1/p'
-
)"
+
)" || return 0
# This ensures that we get the output of all missing dependencies instead
# of failing at the first one, because it's more useful when working on a
···
esac
done
-
for file in \
-
$(find "$@" "${findOpts[@]}" \! -type d \
-
\( -name '*.so' -o -name '*.so.*' \))
-
do addToDepCache "$file"; done
+
while IFS= read -r -d '' file; do
+
addToDepCache "$file"
+
done < <(find "$@" "${findOpts[@]}" \! -type d \
+
\( -name '*.so' -o -name '*.so.*' \) -print0)
}
autoPatchelf() {
···
echo "autoPatchelfHook could not satisfy dependency $failedDep wanted by ${autoPatchelfFailedDeps[$failedDep]}"
depsMissing=1
done
+
# shellcheck disable=SC2154
+
# (autoPatchelfIgnoreMissingDeps is referenced but not assigned.)
if [[ $depsMissing == 1 && -z "$autoPatchelfIgnoreMissingDeps" ]]; then
echo "Add the missing dependencies to the build inputs or set autoPatchelfIgnoreMissingDeps=true"
exit 1
+18 -16
pkgs/development/arduino/arduino-core/default.nix
···
, ncurses
, readline
, withGui ? false
-
, gtk2 ? null
+
, gtk3 ? null
+
, wrapGAppsHook
, withTeensyduino ? false
/* Packages needed for Teensyduino */
, upx
···
, udev
}:
-
assert withGui -> gtk2 != null;
+
assert withGui -> gtk3 != null && wrapGAppsHook != null;
assert withTeensyduino -> withGui;
let
externalDownloads = import ./downloads.nix {
···
gcc.cc.lib
gdk-pixbuf
glib
-
gtk2
+
gtk3
libpng12
libusb-compat-0_1
pango
···
+ stdenv.lib.optionalString (!withGui) "-core";
in
stdenv.mkDerivation rec {
-
version = "1.8.12";
+
version = "1.8.13";
name = "${flavor}-${version}";
src = fetchFromGitHub {
owner = "arduino";
repo = "Arduino";
rev = version;
-
sha256 = "0lxkyvsh55biz2q20ba4qabraind5cpxznl41zfq027vl22j6kd2";
+
sha256 = "0qg3qyj1b7wbaw2rsfly7nf3115h26nskl4ggrn6plhx272ni84p";
};
-
teensyduino_version = "151";
+
teensyduino_version = "153";
teensyduino_src = fetchurl {
url = "https://www.pjrc.com/teensy/td_${teensyduino_version}/TeensyduinoInstall.${teensy_architecture}";
sha256 = {
-
linux64 = "0q8mw9bm2vb5vwa98gwcs6ad164i98hc1qqh2qw029yhwm599pn0";
-
linux32 = "1rq6sx0048ab200jy0cz5vznwxi99avidngj42rjnh7kcfas5c4m";
-
linuxarm = "19j55bq36040rpdpfxcqimda76rkbx137q15bs8nvxj13wrbl4ip";
-
linuxaarch64 = "09k78dycn1vcpcx37c1dak8bgjv8gs34l89n9r9s0c3rqmv3pg4x";
+
linux64 = "02qgsj4h4zrjxkcclx7clsqbqd699kg0dq1xxa9hbj3vfnddjv1f";
+
linux32 = "14xaff8xj176ih8ifdvxsly5xgjjm82dqbn7lqq81a43i0svjjyn";
+
linuxarm = "0xpg9axa6dqyhccm9cpvsv2al7rgwy4gv2l8b2kffvn974dl5759";
+
linuxaarch64 = "1lyn4zy4l5mml3c19fw6i2pk1ypnq6mgjmxmzk9d54wpf6n3j5dk";
}.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
};
# Used because teensyduino requires jars be a specific size
arduino_dist_src = fetchurl {
-
url = "http://downloads.arduino.cc/arduino-${version}-${teensy_architecture}.tar.xz";
+
url = "https://downloads.arduino.cc/arduino-${version}-${teensy_architecture}.tar.xz";
sha256 =
{
-
linux64 = "128f34kkxz7ab6ir5mqyr8d1mgxig8f9jygwxy44pdnq2rk6gmh9";
-
linux32 = "11n85lwsn1w4ysfacyw08v85s3f3zvl8j8ac7rld19yxgjslvisi";
-
linuxarm = "1k8yjivaydm6y16mplrjyblgx7l0wjzm3mjxh5saxrjq7drswmxx";
-
linuxaarch64 = "04v2nhyjhahml6nmz23bfb63c0an4a7zxgcgxqqq442i8vd304wa";
+
linux64 = "1bdlk51dqiyg5pw23hs8rfv8nrjqy0jqfl89h1466ahahpnd080v";
+
linux32 = "0mgsw9wpwv1pgs2jslzflh7zf4ggqjgcd55hmdzrj0dvgkyw4cr2";
+
linuxarm = "08n4lpak3i7yfyi0085j4nq14gb2n7zx85wl9drp8gaavxnfbp5f";
+
linuxaarch64 = "0m4nhykzknm2hdpz1fhr2hbpncry53kvzs9y5lgj7rx3sy6ygbh7";
}.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
};
+
nativeBuildInputs = [ wrapGAppsHook ];
buildInputs = [
jdk
ant
···
# This will be patched into `arduino` wrapper script
# Java loads gtk dynamically, so we need to provide it using LD_LIBRARY_PATH
-
dynamicLibraryPath = lib.makeLibraryPath [ gtk2 ];
+
dynamicLibraryPath = lib.makeLibraryPath [ gtk3 ];
javaPath = lib.makeBinPath [ jdk ];
# Everything else will be patched into rpath
+9 -9
pkgs/development/arduino/arduino-core/downloads.nix
···
url = "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.10/WiFi101-Updater-ArduinoIDE-Plugin-0.10.10.zip";
sha256 = "0bs5qdglsfc2q5c48m6wdjpzhz4ya4askh1g8364dp6p7jmg6w0d";
};
-
"build/avr-1.8.2.tar.bz2" = fetchurl {
-
url = "https://downloads.arduino.cc/cores/avr-1.8.2.tar.bz2";
-
sha256 = "06zl8fwphknd0qdx87fcr1003gid1yqsazaj674mm9widqfd84v2";
+
"build/avr-1.8.3.tar.bz2" = fetchurl {
+
url = "https://downloads.arduino.cc/cores/avr-1.8.3.tar.bz2";
+
sha256 = "051wnc0nmsmxvvs4c79zvjag33yx5il2pz2j7qyjsxkp4jc9p2ny";
};
}
// optionalAttrs (system == "x86_64-linux") {
-
"build/arduino-builder-linux64-1.5.2.tar.bz2" = fetchurl {
-
url = "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.5.2.tar.bz2";
-
sha256 = "0wypr9a2cbv9r0ignsr13raw09i3vfc5zvkjxp2xwb7mv35y77z3";
+
"build/arduino-builder-linux64-1.5.4.tar.bz2" = fetchurl {
+
url = "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.5.4.tar.bz2";
+
sha256 = "1cgvwlvxzzpjaj4njz1mrsif27l26dwkz9c7gbhdj0lvlk3xsa7s";
};
-
"build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
-
url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2";
-
sha256 = "1yq6a811dabrkcgzfi3jsys41r19qsna46kglkjbcy0rza7yvzry";
+
"build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
+
url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2";
+
sha256 = "07nrzv7gsq7bi7ichlw3xsdvgzk0lvv56b73ksn3089ajpv3g35x";
};
"build/linux/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2";
+64
pkgs/games/anki/bin.nix
···
+
{ fetchurl, stdenv, lib, buildFHSUserEnv, appimageTools, writeShellScript, anki, undmg }:
+
+
let
+
pname = "anki-bin";
+
# Update hashes for both Linux and Darwin!
+
version = "2.1.36";
+
+
unpacked = stdenv.mkDerivation {
+
inherit pname version;
+
+
src = fetchurl {
+
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux.tar.bz2";
+
sha256 = "01xcjnfs5pfh7v0nkffw2wpl19l6pj9k3kxrcawv3cm42asy0mfz";
+
};
+
+
installPhase = ''
+
runHook preInstall
+
+
xdg-mime () {
+
echo Stubbed!
+
}
+
export -f xdg-mime
+
+
PREFIX=$out bash install.sh
+
+
runHook postInstall
+
'';
+
};
+
+
meta = with lib; {
+
inherit (anki.meta) license homepage description longDescription;
+
platforms = [ "x86_64-linux" "x86_64-darwin" ];
+
maintainers = with maintainers; [ atemu ];
+
};
+
in
+
+
if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // {
+
name = "anki";
+
+
runScript = writeShellScript "anki-wrapper.sh" ''
+
# Wayland support is broken, disable via ENV variable
+
export QT_QPA_PLATFORM=xcb
+
exec ${unpacked}/bin/anki
+
'';
+
+
inherit meta;
+
}) else stdenv.mkDerivation {
+
inherit pname version;
+
+
src = fetchurl {
+
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac.dmg";
+
sha256 = "1i6iidm5h8r9g801mvqxi2av03qdw3lr28056fv5ixnb5dq2wqim";
+
};
+
+
nativeBuildInputs = [ undmg ];
+
sourceRoot = ".";
+
+
installPhase = ''
+
mkdir -p $out/Applications/
+
cp -a Anki.app $out/Applications/
+
'';
+
+
inherit meta;
+
}
+29
pkgs/os-specific/linux/firmware/rtl8761b-firmware/default.nix
···
+
{ stdenv, fetchFromGitHub }:
+
+
stdenv.mkDerivation {
+
name = "rtl8761b-firmware";
+
+
src = fetchFromGitHub {
+
owner = "Realtek-OpenSource";
+
repo = "android_hardware_realtek";
+
rev = "rtk1395";
+
sha256 = "sha256-vd9sZP7PGY+cmnqVty3sZibg01w8+UNinv8X85B+dzc=";
+
};
+
+
installPhase = ''
+
install -D -pm644 \
+
bt/rtkbt/Firmware/BT/rtl8761b_fw \
+
$out/lib/firmware/rtl_bt/rtl8761b_fw.bin
+
+
install -D -pm644 \
+
bt/rtkbt/Firmware/BT/rtl8761b_config \
+
$out/lib/firmware/rtl_bt/rtl8761b_config.bin
+
'';
+
+
meta = with stdenv.lib; {
+
description = "Firmware for Realtek RTL8761b";
+
license = licenses.unfreeRedistributableFirmware;
+
maintainers = with maintainers; [ edibopp ];
+
platforms = with platforms; linux;
+
};
+
}
+7
pkgs/os-specific/linux/kernel/patches.nix
···
};
};
+
# Adapted for Linux 5.4 from:
+
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=04896832c94aae4842100cafb8d3a73e1bed3a45
+
rtl8761b_support =
+
{ name = "rtl8761b-support";
+
patch = ./rtl8761b-support.patch;
+
};
+
export_kernel_fpu_functions = {
"4.14" = {
name = "export_kernel_fpu_functions";
+33
pkgs/os-specific/linux/kernel/rtl8761b-support.patch
···
+
diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
+
index 67f4bc21e7c5..3a9afc905f24 100644
+
--- a/drivers/bluetooth/btrtl.c
+
+++ b/drivers/bluetooth/btrtl.c
+
@@ -130,12 +130,19 @@ static const struct id_table ic_id_table[] = {
+
.cfg_name = "rtl_bt/rtl8821c_config" },
+
+
/* 8761A */
+
- { IC_MATCH_FL_LMPSUBV, RTL_ROM_LMP_8761A, 0x0,
+
+ { IC_INFO(RTL_ROM_LMP_8761A, 0xa),
+
.config_needed = false,
+
.has_rom_version = true,
+
.fw_name = "rtl_bt/rtl8761a_fw.bin",
+
.cfg_name = "rtl_bt/rtl8761a_config" },
+
+
+ /* 8761B */
+
+ { IC_INFO(RTL_ROM_LMP_8761A, 0xb),
+
+ .config_needed = false,
+
+ .has_rom_version = true,
+
+ .fw_name = "rtl_bt/rtl8761b_fw.bin",
+
+ .cfg_name = "rtl_bt/rtl8761b_config" },
+
+
+
/* 8822C with USB interface */
+
{ IC_INFO(RTL_ROM_LMP_8822B, 0xc),
+
.config_needed = false,
+
@@ -251,6 +258,7 @@ static int rtlbt_parse_firmware(struct hci_dev *hdev,
+
{ RTL_ROM_LMP_8723B, 9 }, /* 8723D */
+
{ RTL_ROM_LMP_8821A, 10 }, /* 8821C */
+
{ RTL_ROM_LMP_8822B, 13 }, /* 8822C */
+
+ { RTL_ROM_LMP_8761A, 14 }, /* 8761B */
+
};
+
+
min_size = sizeof(struct rtl_epatch_header) + sizeof(extension_sig) + 3;
+33
pkgs/tools/misc/fbcat/default.nix
···
+
{ stdenv, fetchFromGitHub } :
+
+
stdenv.mkDerivation rec {
+
pname = "fbcat";
+
version = "0.5.1";
+
+
src = fetchFromGitHub {
+
owner = "jwilk";
+
repo = pname;
+
rev = version;
+
sha256 = "08y79br4a4cgkjnslw0hw57441ybsapaw7wjdbak19mv9lnl5ll9";
+
};
+
+
# hardcoded because makefile target "install" depends on libxslt dependencies from network
+
# that are just too hard to monkeypatch here
+
# so this is the simple fix.
+
installPhase = ''
+
mkdir -p $out
+
install -d $out/bin
+
install -m755 fbcat $out/bin/
+
install -m755 fbgrab $out/bin/
+
install -d $out/share/man/man1
+
'';
+
+
meta = with stdenv.lib; {
+
homepage = "http://jwilk.net/software/fbcat";
+
description = "Framebuffer screenshot tool";
+
license = licenses.gpl2Plus;
+
maintainers = [ maintainers.matthiasbeyer ];
+
platforms = platforms.linux;
+
};
+
}
+
+2
pkgs/tools/misc/toybox/default.nix
···
{
stdenv, lib, fetchFromGitHub, which,
+
buildPackages,
enableStatic ? false,
enableMinimal ? false,
extraConfig ? ""
···
sha256 = "0cgbmv6qk1haj709hjx5q4sl7wgh91i459gzs1203adwc7rvk6jv";
};
+
depsBuildBuild = [ buildPackages.stdenv.cc ]; # needed for cross
buildInputs = lib.optionals enableStatic [ stdenv.cc.libc stdenv.cc.libc.static ];
postPatch = "patchShebangs .";
+5 -1
pkgs/tools/networking/libreswan/default.nix
···
"-Wno-error=format-truncation"
"-Wno-error=pointer-compare"
"-Wno-error=stringop-truncation"
+
# The following flag allows libreswan v3.32 to work with NSS 3.22, see
+
# https://github.com/libreswan/libreswan/issues/334.
+
# This flag should not be needed for libreswan v3.33 (which is not yet released).
+
"-DNSS_PKCS11_2_0_COMPAT=1"
];
nativeBuildInputs = [ makeWrapper pkgconfig ];
···
meta = with stdenv.lib; {
homepage = "https://libreswan.org";
description = "A free software implementation of the VPN protocol based on IPSec and the Internet Key Exchange";
-
platforms = platforms.linux ++ platforms.darwin ++ platforms.freebsd;
+
platforms = platforms.linux ++ platforms.freebsd;
license = licenses.gpl2;
maintainers = [ maintainers.afranchuk ];
};
+6
pkgs/top-level/all-packages.nix
···
feedgnuplot = callPackage ../tools/graphics/feedgnuplot { };
+
fbcat = callPackage ../tools/misc/fbcat { };
+
fbv = callPackage ../tools/graphics/fbv { };
fbvnc = callPackage ../tools/admin/fbvnc {};
···
kernelPatches = [
kernelPatches.bridge_stp_helper
kernelPatches.request_key_helper
+
kernelPatches.rtl8761b_support
kernelPatches.export_kernel_fpu_functions."5.3"
···
rtl8192su-firmware = callPackage ../os-specific/linux/firmware/rtl8192su-firmware { };
rtl8723bs-firmware = callPackage ../os-specific/linux/firmware/rtl8723bs-firmware { };
+
+
rtl8761b-firmware = callPackage ../os-specific/linux/firmware/rtl8761b-firmware { };
rtlwifi_new-firmware = callPackage ../os-specific/linux/firmware/rtlwifi_new-firmware { };
···
anki = python3Packages.callPackage ../games/anki {
inherit (darwin.apple_sdk.frameworks) CoreAudio;
+
anki-bin = callPackage ../games/anki/bin.nix { buildFHSUserEnv = buildFHSUserEnvBubblewrap; };
armagetronad = callPackage ../games/armagetronad { };