Merge staging-next into staging

Changed files
+536 -56
maintainers
nixos
doc
manual
release-notes
modules
hardware
services
web-servers
tests
pkgs
applications
backup
pika-backup
blockchains
networking
browsers
chromium
lagrange
instant-messengers
slack
window-managers
development
libraries
qt-5
zlib-ng
python-modules
boto3
botocore
sagemaker
tools
heroku
games
empty-epsilon
steam
os-specific
servers
http
envoy
nginx
pomerium
shells
zsh
oh-my-zsh
tools
admin
awscli
audio
abcmidi
networking
oneshot
security
video
play-with-mpv
top-level
+6
maintainers/maintainer-list.nix
···
github = "meutraa";
githubId = 68550871;
};
+
mephistophiles = {
+
email = "mussitantesmortem@gmail.com";
+
name = "Maxim Zhukov";
+
github = "Mephistophiles";
+
githubId = 4850908;
+
};
mfossen = {
email = "msfossen@gmail.com";
github = "mfossen";
+3
nixos/doc/manual/release-notes/rl-2105.xml
···
</para>
</listitem>
<listitem>
+
<para>The default Linux kernel was updated to the 5.10 LTS series, coming from the 5.4 LTS series.</para>
+
</listitem>
+
<listitem>
<para>GNOME desktop environment was upgraded to 3.38, see its <link xlink:href="https://help.gnome.org/misc/release-notes/3.38/">release notes</link>.</para>
</listitem>
<listitem>
+1 -1
nixos/modules/hardware/all-firmware.nix
···
rt5677-firmware
rtl8723bs-firmware
rtl8761b-firmware
-
rtlwifi_new-firmware
+
rtw88-firmware
zd1211fw
alsa-firmware
sof-firmware
+1
nixos/modules/module-list.nix
···
./services/web-servers/nginx/default.nix
./services/web-servers/nginx/gitweb.nix
./services/web-servers/phpfpm/default.nix
+
./services/web-servers/pomerium.nix
./services/web-servers/unit/default.nix
./services/web-servers/shellinabox.nix
./services/web-servers/tomcat.nix
+131
nixos/modules/services/web-servers/pomerium.nix
···
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let
+
format = pkgs.formats.yaml {};
+
in
+
{
+
options.services.pomerium = {
+
enable = mkEnableOption "the Pomerium authenticating reverse proxy";
+
+
configFile = mkOption {
+
type = with types; nullOr path;
+
default = null;
+
description = "Path to Pomerium config YAML. If set, overrides services.pomerium.settings.";
+
};
+
+
useACMEHost = mkOption {
+
type = with types; nullOr str;
+
default = null;
+
description = ''
+
If set, use a NixOS-generated ACME certificate with the specified name.
+
+
Note that this will require you to use a non-HTTP-based challenge, or
+
disable Pomerium's in-built HTTP redirect server by setting
+
http_redirect_addr to null and use a different HTTP server for serving
+
the challenge response.
+
+
If you're using an HTTP-based challenge, you should use the
+
Pomerium-native autocert option instead.
+
'';
+
};
+
+
settings = mkOption {
+
description = ''
+
The contents of Pomerium's config.yaml, in Nix expressions.
+
+
Specifying configFile will override this in its entirety.
+
+
See <link xlink:href="https://pomerium.io/reference/">the Pomerium
+
configuration reference</link> for more information about what to put
+
here.
+
'';
+
default = {};
+
type = format.type;
+
};
+
+
secretsFile = mkOption {
+
type = with types; nullOr path;
+
default = null;
+
description = ''
+
Path to file containing secrets for Pomerium, in systemd
+
EnvironmentFile format. See the systemd.exec(5) man page.
+
'';
+
};
+
};
+
+
config = let
+
cfg = config.services.pomerium;
+
cfgFile = if cfg.configFile != null then cfg.configFile else (format.generate "pomerium.yaml" cfg.settings);
+
in mkIf cfg.enable ({
+
systemd.services.pomerium = {
+
description = "Pomerium authenticating reverse proxy";
+
wants = [ "network.target" ] ++ (optional (cfg.useACMEHost != null) "acme-finished-${cfg.useACMEHost}.target");
+
after = [ "network.target" ] ++ (optional (cfg.useACMEHost != null) "acme-finished-${cfg.useACMEHost}.target");
+
wantedBy = [ "multi-user.target" ];
+
environment = optionalAttrs (cfg.useACMEHost != null) {
+
CERTIFICATE_FILE = "fullchain.pem";
+
CERTIFICATE_KEY_FILE = "key.pem";
+
};
+
startLimitIntervalSec = 60;
+
+
serviceConfig = {
+
DynamicUser = true;
+
StateDirectory = [ "pomerium" ];
+
ExecStart = "${pkgs.pomerium}/bin/pomerium -config ${cfgFile}";
+
+
PrivateUsers = false; # breaks CAP_NET_BIND_SERVICE
+
MemoryDenyWriteExecute = false; # breaks LuaJIT
+
+
NoNewPrivileges = true;
+
PrivateTmp = true;
+
PrivateDevices = true;
+
DevicePolicy = "closed";
+
ProtectSystem = "strict";
+
ProtectHome = true;
+
ProtectControlGroups = true;
+
ProtectKernelModules = true;
+
ProtectKernelTunables = true;
+
ProtectKernelLogs = true;
+
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
+
RestrictNamespaces = true;
+
RestrictRealtime = true;
+
RestrictSUIDSGID = true;
+
LockPersonality = true;
+
SystemCallArchitectures = "native";
+
+
EnvironmentFile = cfg.secretsFile;
+
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
+
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
+
+
WorkingDirectory = mkIf (cfg.useACMEHost != null) "$CREDENTIALS_DIRECTORY";
+
LoadCredential = optionals (cfg.useACMEHost != null) [
+
"fullchain.pem:/var/lib/acme/${cfg.useACMEHost}/fullchain.pem"
+
"key.pem:/var/lib/acme/${cfg.useACMEHost}/key.pem"
+
];
+
};
+
};
+
+
# postRun hooks on cert renew can't be used to restart Nginx since renewal
+
# runs as the unprivileged acme user. sslTargets are added to wantedBy + before
+
# which allows the acme-finished-$cert.target to signify the successful updating
+
# of certs end-to-end.
+
systemd.services.pomerium-config-reload = mkIf (cfg.useACMEHost != null) {
+
# TODO(lukegb): figure out how to make config reloading work with credentials.
+
+
wantedBy = [ "acme-finished-${cfg.useACMEHost}.target" "multi-user.target" ];
+
# Before the finished targets, after the renew services.
+
before = [ "acme-finished-${cfg.useACMEHost}.target" ];
+
after = [ "acme-${cfg.useACMEHost}.service" ];
+
# Block reloading if not all certs exist yet.
+
unitConfig.ConditionPathExists = [ "${certs.${cfg.useACMEHost}.directory}/fullchain.pem" ];
+
serviceConfig = {
+
Type = "oneshot";
+
TimeoutSec = 60;
+
ExecCondition = "/run/current-system/systemd/bin/systemctl -q is-active pomerium.service";
+
ExecStart = "/run/current-system/systemd/bin/systemctl restart pomerium.service";
+
};
+
};
+
});
+
}
+1
nixos/tests/all-tests.nix
···
plikd = handleTest ./plikd.nix {};
plotinus = handleTest ./plotinus.nix {};
podman = handleTestOn ["x86_64-linux"] ./podman.nix {};
+
pomerium = handleTestOn ["x86_64-linux"] ./pomerium.nix {};
postfix = handleTest ./postfix.nix {};
postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
postgis = handleTest ./postgis.nix {};
+102
nixos/tests/pomerium.nix
···
+
import ./make-test-python.nix ({ pkgs, ... }: {
+
name = "pomerium";
+
meta = with pkgs.stdenv.lib.maintainers; {
+
maintainers = [ lukegb ];
+
};
+
+
nodes = let base = myIP: { pkgs, lib, ... }: {
+
virtualisation.vlans = [ 1 ];
+
networking = {
+
dhcpcd.enable = false;
+
firewall.allowedTCPPorts = [ 80 443 ];
+
hosts = {
+
"192.168.1.1" = [ "pomerium" "pom-auth" ];
+
"192.168.1.2" = [ "backend" "dummy-oidc" ];
+
};
+
interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+
{ address = myIP; prefixLength = 24; }
+
];
+
};
+
}; in {
+
pomerium = { pkgs, lib, ... }: {
+
imports = [ (base "192.168.1.1") ];
+
services.pomerium = {
+
enable = true;
+
settings = {
+
address = ":80";
+
insecure_server = true;
+
authenticate_service_url = "http://pom-auth";
+
+
idp_provider = "oidc";
+
idp_scopes = [ "oidc" ];
+
idp_client_id = "dummy";
+
idp_provider_url = "http://dummy-oidc";
+
+
policy = [{
+
from = "https://my.website";
+
to = "http://192.168.1.2";
+
allow_public_unauthenticated_access = true;
+
preserve_host_header = true;
+
} {
+
from = "https://login.required";
+
to = "http://192.168.1.2";
+
allowed_domains = [ "my.domain" ];
+
preserve_host_header = true;
+
}];
+
};
+
secretsFile = pkgs.writeText "pomerium-secrets" ''
+
# 12345678901234567890123456789012 in base64
+
COOKIE_SECRET=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=
+
IDP_CLIENT_SECRET=dummy
+
'';
+
};
+
};
+
backend = { pkgs, lib, ... }: {
+
imports = [ (base "192.168.1.2") ];
+
services.nginx.enable = true;
+
services.nginx.virtualHosts."my.website" = {
+
root = pkgs.runCommand "testdir" {} ''
+
mkdir "$out"
+
echo hello world > "$out/index.html"
+
'';
+
};
+
services.nginx.virtualHosts."dummy-oidc" = {
+
root = pkgs.runCommand "testdir" {} ''
+
mkdir -p "$out/.well-known"
+
cat <<EOF >"$out/.well-known/openid-configuration"
+
{
+
"issuer": "http://dummy-oidc",
+
"authorization_endpoint": "http://dummy-oidc/auth.txt",
+
"token_endpoint": "http://dummy-oidc/token",
+
"jwks_uri": "http://dummy-oidc/jwks.json",
+
"userinfo_endpoint": "http://dummy-oidc/userinfo",
+
"id_token_signing_alg_values_supported": ["RS256"]
+
}
+
EOF
+
echo hello I am login page >"$out/auth.txt"
+
'';
+
};
+
};
+
};
+
+
testScript = { ... }: ''
+
backend.wait_for_unit("nginx")
+
backend.wait_for_open_port(80)
+
+
pomerium.wait_for_unit("pomerium")
+
pomerium.wait_for_open_port(80)
+
+
with subtest("no authentication required"):
+
pomerium.succeed(
+
"curl --resolve my.website:80:127.0.0.1 http://my.website | grep -q 'hello world'"
+
)
+
+
with subtest("login required"):
+
pomerium.succeed(
+
"curl -I --resolve login.required:80:127.0.0.1 http://login.required | grep -q pom-auth"
+
)
+
pomerium.succeed(
+
"curl -L --resolve login.required:80:127.0.0.1 http://login.required | grep -q 'hello I am login page'"
+
)
+
'';
+
})
+3 -3
pkgs/applications/backup/pika-backup/default.nix
···
stdenv.mkDerivation rec {
pname = "pika-backup";
-
version = "0.2.2";
+
version = "0.2.3";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "pika-backup";
rev = "v${version}";
-
sha256 = "16284gv31wdwmb99056962d1gh6xz26ami6synr47nsbbp5l0s6k";
+
sha256 = "sha256-jy22eyuzM2y7vByT3TOlAUuTKtPepkB9iiHQT1YGQ88=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
-
sha256 = "12ymjwpxx3sdna8w5j9fnwwfk8ynk9ziwl0lkpq68y0vyllln5an";
+
sha256 = "1ndcpgw18w3l5f7vv5vw8lxhgd5y1zxfarwnyfx13m7kcv8m3vyj";
};
patches = [
+33
pkgs/applications/blockchains/crypto-org-wallet.nix
···
+
{ lib, fetchurl, makeDesktopItem, appimageTools, imagemagick }:
+
+
let
+
pname = "chain-desktop-wallet";
+
version = "0.1.1";
+
name = "${pname}-${version}";
+
+
src = fetchurl {
+
url = "https://github.com/crypto-com/${pname}/releases/download/v${version}/${name}-x86_64.AppImage";
+
sha256 = "12076hf8dlz0hg1pb2ixwlslrh8gi6s1iawnvhnn6vz4jmjvq356";
+
};
+
+
appimageContents = appimageTools.extractType2 { inherit name src; };
+
in appimageTools.wrapType2 rec {
+
inherit name src;
+
+
extraInstallCommands = ''
+
mv $out/bin/${name} $out/bin/${pname}
+
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
+
${imagemagick}/bin/convert ${appimageContents}/${pname}.png -resize 512x512 ${pname}_512.png
+
install -m 444 -D ${pname}_512.png $out/share/icons/hicolor/512x512/apps/${pname}.png
+
substituteInPlace $out/share/applications/${pname}.desktop \
+
--replace 'Exec=AppRun --no-sandbox %U' "Exec=$out/bin/${pname}"
+
'';
+
+
meta = with lib; {
+
description = "Crypto.org Chain desktop wallet (Beta)";
+
homepage = "https://github.com/crypto-com/chain-desktop-wallet";
+
license = licenses.asl20;
+
maintainers = with maintainers; [ th0rgal ];
+
platforms = [ "x86_64-linux" ];
+
};
+
}
+3 -3
pkgs/applications/networking/browsers/chromium/upstream-info.json
···
{
"stable": {
-
"version": "89.0.4389.90",
-
"sha256": "16i7bgk2jbcqs2p28nk5mlf0k6wah594pcsfm8b154nxbyf0iihi",
-
"sha256bin64": "1hgpx7isp9krarj7jpbhs97ym4i9j9a1srywv9pdfzbhw6cid2pk",
+
"version": "89.0.4389.114",
+
"sha256": "007df9p78bbmk3iyfi8qn57mmn68qqrdhx6z8n2hl8ksd7lspw7j",
+
"sha256bin64": "06wblyvyr93032fbzwm6qpzz4jjm6adziq4i4n6kmfdix2ajif8a",
"deps": {
"gn": {
"version": "2021-01-07",
+2 -2
pkgs/applications/networking/browsers/lagrange/default.nix
···
stdenv.mkDerivation rec {
pname = "lagrange";
-
version = "1.2.2";
+
version = "1.3.0";
src = fetchFromGitHub {
owner = "skyjake";
repo = "lagrange";
rev = "v${version}";
-
sha256 = "sha256-Y+BiXKxlUSZXaLcz75l333ZBkKyII9IyTmKQwjshBkE=";
+
sha256 = "sha256-85KshJEL7ri10mSm/KgcT03WLEwRMMTGczb6mGx66Jw=";
fetchSubmodules = true;
};
+2
pkgs/applications/networking/instant-messengers/slack/default.nix
···
, libuuid
, libxcb
, libxkbcommon
+
, libxshmfence
, mesa
, nspr
, nss
···
xorg.libXi
xorg.libXrandr
xorg.libXrender
+
xorg.libxshmfence
xorg.libXtst
xorg.libxkbfile
] + ":${stdenv.cc.cc.lib}/lib64";
+26
pkgs/applications/window-managers/i3/auto-layout.nix
···
+
{ lib, rustPlatform, fetchFromGitHub }:
+
+
rustPlatform.buildRustPackage rec {
+
pname = "i3-auto-layout";
+
version = "0.2";
+
+
src = fetchFromGitHub {
+
owner = "chmln";
+
repo = pname;
+
rev = "v${version}";
+
sha256 = "0ps08lga6qkgc8cgf5cx2lgwlqcnd2yazphh9xd2fznnzrllfxxz";
+
};
+
+
cargoSha256 = "1ch5mh515rlqmr65x96xcvrx6iaigqgjxc7sbwbznzkc5kmvwhc0";
+
+
# Currently no tests are implemented, so we avoid building the package twice
+
doCheck = false;
+
+
meta = with lib; {
+
description = "Automatic, optimal tiling for i3wm";
+
homepage = "https://github.com/chmln/i3-auto-layout";
+
license = licenses.mit;
+
maintainers = with maintainers; [ mephistophiles ];
+
platforms = platforms.linux;
+
};
+
}
+3 -1
pkgs/development/libraries/qt-5/5.15/default.nix
···
qtvirtualkeyboard = callPackage ../modules/qtvirtualkeyboard.nix {};
qtwayland = callPackage ../modules/qtwayland.nix {};
qtwebchannel = callPackage ../modules/qtwebchannel.nix {};
-
qtwebengine = callPackage ../modules/qtwebengine.nix {};
+
qtwebengine = callPackage ../modules/qtwebengine.nix {
+
inherit (srcs.qtwebengine) version;
+
};
qtwebglplugin = callPackage ../modules/qtwebglplugin.nix {};
qtwebkit = callPackage ../modules/qtwebkit.nix {};
qtwebsockets = callPackage ../modules/qtwebsockets.nix {};
+4
pkgs/development/libraries/qt-5/modules/qtwebengine.nix
···
, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin
, ffmpeg_3 ? null
, lib, stdenv, fetchpatch
+
, version ? null
, qtCompatVersion
}:
···
[Paths]
Prefix = ..
EOF
+
'' + lib.optionalString (lib.versions.majorMinor qtCompatVersion == "5.15") ''
+
# Fix for out-of-sync QtWebEngine and Qt releases (since 5.15.3)
+
sed 's/${lib.head (lib.splitString "-" version)} /${qtCompatVersion} /' -i "$out"/lib/cmake/*/*Config.cmake
'';
meta = with lib; {
+34
pkgs/development/libraries/zlib-ng/default.nix
···
+
{ lib, stdenv, fetchFromGitHub
+
, cmake, pkg-config
+
, withZlibCompat ? false
+
}:
+
+
stdenv.mkDerivation rec {
+
pname = "zlib-ng";
+
version = "2.0.2";
+
+
src = fetchFromGitHub {
+
owner = "zlib-ng";
+
repo = "zlib-ng";
+
rev = version;
+
sha256 = "1cl6asrav2512j7p02zcpibywjljws0m7aazvb3q2r9qiyvyswji";
+
};
+
+
outputs = [ "out" "dev" "bin" ];
+
+
nativeBuildInputs = [ cmake pkg-config ];
+
+
cmakeFlags = [
+
"-DCMAKE_INSTALL_PREFIX=/"
+
"-DBUILD_SHARED_LIBS=ON"
+
"-DINSTALL_UTILS=ON"
+
] ++ lib.optionals withZlibCompat [ "-DZLIB_COMPAT=ON" ];
+
+
meta = with lib; {
+
description = "zlib data compression library for the next generation systems";
+
homepage = "https://github.com/zlib-ng/zlib-ng";
+
license = licenses.zlib;
+
platforms = platforms.all;
+
maintainers = with maintainers; [ izorkin ];
+
};
+
}
+2 -2
pkgs/development/python-modules/boto3/default.nix
···
buildPythonPackage rec {
pname = "boto3";
-
version = "1.17.40"; # N.B: if you change this, change botocore and awscli to a matching version
+
version = "1.17.41"; # N.B: if you change this, change botocore and awscli to a matching version
src = fetchPypi {
inherit pname version;
-
sha256 = "sha256-7pmbRrLGMOUOewUtbf4iQgOjSNg7AOFoylAAmvDydsE=";
+
sha256 = "sha256-2FsOBdfelhabACS3aykr5isB729cqFOlElBjRrgtKrs=";
};
propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
+2 -2
pkgs/development/python-modules/botocore/default.nix
···
buildPythonPackage rec {
pname = "botocore";
-
version = "1.20.40"; # N.B: if you change this, change boto3 and awscli to a matching version
+
version = "1.20.41"; # N.B: if you change this, change boto3 and awscli to a matching version
src = fetchPypi {
inherit pname version;
-
sha256 = "sha256-ajWpl3zb16g52UjdX549JgwZt93nTgqETJcgaITTu6A=";
+
sha256 = "sha256-Y/ZQ/Ja84UHoGUp2HmiQ/qL7puASU676Ma5p8UUBXCE=";
};
propagatedBuildInputs = [
+2
pkgs/development/python-modules/sagemaker/default.nix
···
, protobuf3-to-dict
, smdebug-rulesconfig
, pandas
+
, packaging
}:
buildPythonPackage rec {
···
google-pasta
importlib-metadata
numpy
+
packaging
protobuf
protobuf3-to-dict
smdebug-rulesconfig
+2 -2
pkgs/development/tools/heroku/default.nix
···
stdenv.mkDerivation rec {
pname = "heroku";
-
version = "7.47.11";
+
version = "7.51.0";
src = fetchurl {
url = "https://cli-assets.heroku.com/heroku-v${version}/heroku-v${version}.tar.xz";
-
sha256 = "1inf2radpkd9jndap91cw0wbb2qmi71i287vyydl492372cf3cs2";
+
sha256 = "0wcqk4iy4r57k6fd6l0732yp5mclqfla1lfvx96ay45jnhh7rknx";
};
nativeBuildInputs = [ makeWrapper ];
+14 -12
pkgs/games/empty-epsilon/default.nix
···
let
-
major = "2020";
-
minor = "11";
-
patch = "23";
+
major = "2021";
+
minor = "03";
+
patch.seriousproton = "30";
+
patch.emptyepsilon = "31";
-
version = "${major}.${minor}.${patch}";
+
version.seriousproton = "${major}.${minor}.${patch.seriousproton}";
+
version.emptyepsilon = "${major}.${minor}.${patch.emptyepsilon}";
serious-proton = stdenv.mkDerivation {
pname = "serious-proton";
-
inherit version;
+
version = version.seriousproton;
src = fetchFromGitHub {
owner = "daid";
repo = "SeriousProton";
-
rev = "EE-${version}";
-
sha256 = "sha256-/gwJPlvvOCv5XIsiVgZ8Eb/7vgwG/V+s/soGVCfYrwo=";
+
rev = "EE-${version.seriousproton}";
+
sha256 = "sha256-wxb/CxJ/HKsVngeahjygZFPMMxitkHdVD0EQ3svxgIU=";
};
nativeBuildInputs = [ cmake ];
···
stdenv.mkDerivation {
pname = "empty-epsilon";
-
inherit version;
+
version = version.emptyepsilon;
src = fetchFromGitHub {
owner = "daid";
repo = "EmptyEpsilon";
-
rev = "EE-${version}";
-
sha256 = "sha256-HbF6xThR+ogNHbAcXF03DaBhwVhNEr5BJO7jeeVZH/o=";
+
rev = "EE-${version.emptyepsilon}";
+
sha256 = "sha256-x0XJPMU0prubTb4ti/W/dH5P9abNwbjqkeUhKQpct9o=";
};
nativeBuildInputs = [ cmake ];
···
cmakeFlags = [
"-DSERIOUS_PROTON_DIR=${serious-proton.src}"
-
"-DCPACK_PACKAGE_VERSION=${version}"
+
"-DCPACK_PACKAGE_VERSION=${version.emptyepsilon}"
"-DCPACK_PACKAGE_VERSION_MAJOR=${major}"
"-DCPACK_PACKAGE_VERSION_MINOR=${minor}"
-
"-DCPACK_PACKAGE_VERSION_PATCH=${patch}"
+
"-DCPACK_PACKAGE_VERSION_PATCH=${patch.emptyepsilon}"
];
meta = with lib; {
+1 -1
pkgs/games/steam/fhsenv.nix
···
gst_all_1.gst-plugins-ugly
gst_all_1.gst-plugins-base
libdrm
+
libxkbcommon # paradox launcher
mono
xorg.xkeyboardconfig
xorg.libpciaccess
···
libidn
tbb
wayland
-
libxkbcommon
# Other things from runtime
flac
+6 -6
pkgs/os-specific/linux/kernel/hardened/patches.json
···
},
"5.10": {
"extra": "-hardened1",
-
"name": "linux-hardened-5.10.25-hardened1.patch",
-
"sha256": "0d5fid229769frifr7g20ly553gxdqqvajfwyzqwjpr82jjzxlis",
-
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.25-hardened1/linux-hardened-5.10.25-hardened1.patch"
+
"name": "linux-hardened-5.10.26-hardened1.patch",
+
"sha256": "08f4yks3fjv5zi85zbxa3aqfllb6nbr58hm6kchd83l6rknnix4r",
+
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.26-hardened1/linux-hardened-5.10.26-hardened1.patch"
},
"5.11": {
"extra": "-hardened1",
-
"name": "linux-hardened-5.11.9-hardened1.patch",
-
"sha256": "169jcalr81ckad08vx489h8j6k42s0rzxbpkr6knyrd7rv06ddk0",
-
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.11.9-hardened1/linux-hardened-5.11.9-hardened1.patch"
+
"name": "linux-hardened-5.11.10-hardened1.patch",
+
"sha256": "16083fvl5km751dps7mzjc2fl1qp9jqnyn7lg8jlfxc8w32bbxwv",
+
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.11.10-hardened1/linux-hardened-5.11.10-hardened1.patch"
},
"5.4": {
"extra": "-hardened1",
+2 -2
pkgs/os-specific/linux/kernel/linux-5.11.nix
···
with lib;
buildLinux (args // rec {
-
version = "5.11.9";
+
version = "5.11.10";
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
···
src = fetchurl {
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-
sha256 = "0dcqn6s85sd4zl7rv8ay88p5z12xvy2rma0dx6g6b480rg68sxal";
+
sha256 = "07fw48sy8p17jmm24x3rl99cwxiwhwjrxnmy3g542w9kzawaqwnk";
};
} // (args.argsOverride or {}))
+3 -3
pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
···
, ... } @ args:
let
-
version = "5.10.21-rt34"; # updated by ./update-rt.sh
+
version = "5.10.25-rt35"; # updated by ./update-rt.sh
branch = lib.versions.majorMinor version;
kversion = builtins.elemAt (lib.splitString "-" version) 0;
in buildLinux (args // {
···
src = fetchurl {
url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-
sha256 = "1bz2gmyvpl4vsk0r6fsnh451fzvvfbv63rw8ia75gfv52vzyczwy";
+
sha256 = "1p8s8vp5b6vjmvhj3plm0pr0d9qp5lrwm6l40a4bjr1vk9myf2lk";
};
kernelPatches = let rt-patch = {
name = "rt";
patch = fetchurl {
url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-
sha256 = "12c2qpifcgij7hilhd7xrnqaz04gqf41m93pmlm8cv4nxz58cy36";
+
sha256 = "0kvawcyxg0xzhx73xs9g9s0hr7bs44sy4zvfzvcg2m9hdyafry0k";
};
}; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
+6
pkgs/servers/http/envoy/default.nix
···
, go
, ninja
, python3
+
, nixosTests
}:
let
···
"--cxxopt=-Wno-maybe-uninitialized"
"--cxxopt=-Wno-uninitialized"
];
+
+
passthru.tests = {
+
# No tests for Envoy itself (yet), but it's tested as a core component of Pomerium.
+
inherit (nixosTests) pomerium;
+
};
meta = with lib; {
homepage = "https://envoyproxy.io";
+2 -2
pkgs/servers/http/nginx/mainline.nix
···
{ callPackage, ... }@args:
callPackage ./generic.nix args {
-
version = "1.19.8";
-
sha256 = "01cb6hsaik1sfjihbrldmwrcn54gk4plfy350sl1b4rml6qik29h";
+
version = "1.19.9";
+
sha256 = "0hfqqyfgqa6wqazmb3d434nb3r5p8szfisa0m6nfh9lqdbqdyd9f";
}
+80
pkgs/servers/http/pomerium/default.nix
···
+
{ buildGoModule
+
, fetchFromGitHub
+
, lib
+
, envoy
+
, zip
+
, nixosTests
+
}:
+
+
let
+
inherit (lib) concatStringsSep mapAttrsToList;
+
in
+
buildGoModule rec {
+
pname = "pomerium";
+
version = "0.13.3";
+
src = fetchFromGitHub {
+
owner = "pomerium";
+
repo = "pomerium";
+
rev = "v${version}";
+
hash = "sha256-g0w1aIHvf2rJANvGWHeUxdnyCDsvy/PQ9Kp8nDdT/0w=";
+
};
+
+
vendorSha256 = "sha256-grihU85OcGyf9/KKrv87xZonX5r+Z1oHQTf84Ya61fg=";
+
subPackages = [
+
"cmd/pomerium"
+
"cmd/pomerium-cli"
+
];
+
+
buildFlagsArray = let
+
# Set a variety of useful meta variables for stamping the build with.
+
setVars = {
+
Version = "v${version}";
+
BuildMeta = "nixpkgs";
+
ProjectName = "pomerium";
+
ProjectURL = "github.com/pomerium/pomerium";
+
};
+
varFlags = concatStringsSep " " (mapAttrsToList (name: value: "-X github.com/pomerium/pomerium/internal/version.${name}=${value}") setVars);
+
in [
+
"-ldflags=${varFlags}"
+
];
+
+
nativeBuildInputs = [
+
zip
+
];
+
+
# Pomerium expects to have envoy append to it in a zip.
+
# We use a store-only (-0) zip, so that the Nix scanner can find any store references we had in the envoy binary.
+
postBuild = ''
+
# Append Envoy
+
pushd $NIX_BUILD_TOP
+
mkdir -p envoy
+
cd envoy
+
cp ${envoy}/bin/envoy envoy
+
zip -0 envoy.zip envoy
+
popd
+
+
mv $GOPATH/bin/pomerium $GOPATH/bin/pomerium.old
+
cat $GOPATH/bin/pomerium.old $NIX_BUILD_TOP/envoy/envoy.zip >$GOPATH/bin/pomerium
+
zip --adjust-sfx $GOPATH/bin/pomerium
+
'';
+
+
# We also need to set dontStrip to avoid having the envoy ZIP stripped off the end.
+
dontStrip = true;
+
+
installPhase = ''
+
install -Dm0755 $GOPATH/bin/pomerium $out/bin/pomerium
+
install -Dm0755 $GOPATH/bin/pomerium-cli $out/bin/pomerium-cli
+
'';
+
+
passthru.tests = {
+
inherit (nixosTests) pomerium;
+
};
+
+
meta = with lib; {
+
homepage = "https://pomerium.io";
+
description = "Authenticating reverse proxy";
+
license = licenses.asl20;
+
maintainers = with maintainers; [ lukegb ];
+
platforms = [ "x86_64-linux" ]; # Envoy derivation is x86_64-linux only.
+
};
+
}
+3 -3
pkgs/shells/zsh/oh-my-zsh/default.nix
···
, git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
stdenv.mkDerivation rec {
-
version = "2021-03-28";
+
version = "2021-03-31";
pname = "oh-my-zsh";
-
rev = "69507c9518f7c7889d8f47ec8e67bfda02405817";
+
rev = "2b1d4122796fea12dcaa7545cfca59fb43e6393e";
src = fetchFromGitHub {
inherit rev;
owner = "ohmyzsh";
repo = "ohmyzsh";
-
sha256 = "0p5jjynwnf6yh2n0z46avavy7kb7dlqd145hd1qakig7csaclphd";
+
sha256 = "1c1hcmvfrfwds1zn165vpfh11a19s6kb20bxy2dzpby5cs15g6bc";
};
installPhase = ''
+2 -2
pkgs/tools/admin/awscli/default.nix
···
in
with py.pkgs; buildPythonApplication rec {
pname = "awscli";
-
version = "1.19.40"; # N.B: if you change this, change botocore and boto3 to a matching version too
+
version = "1.19.41"; # N.B: if you change this, change botocore and boto3 to a matching version too
src = fetchPypi {
inherit pname version;
-
sha256 = "sha256-J1IuTA/DrBCDclRA3cjAU71Um4Eygjgo+rMTyvT/my4=";
+
sha256 = "sha256-DKKE2iMn6BHmcohHY6Uv7q9Om8FkbTbsk0CaxueBJHA=";
};
# https://github.com/aws/aws-cli/issues/4837
+2 -2
pkgs/tools/audio/abcmidi/default.nix
···
stdenv.mkDerivation rec {
pname = "abcMIDI";
-
version = "2021.03.27";
+
version = "2021.03.30";
src = fetchzip {
url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-
sha256 = "sha256-dOUdxH1jJUr9MkU6mf0nwbjY5NYUJpHGkjUZWbRSGsw=";
+
sha256 = "sha256-eOQbvs/mtFn7AmvSezO/jRm8+cO5tF7ggcF9DwwfqVc=";
};
meta = with lib; {
+3 -3
pkgs/tools/networking/oneshot/default.nix
···
buildGoModule rec {
pname = "oneshot";
-
version = "1.3.1";
+
version = "1.4.1";
src = fetchFromGitHub {
owner = "raphaelreyna";
repo = "oneshot";
rev = "v${version}";
-
sha256 = "047mncv9abs4xj7bh9lhc3wan37cldjjyrpkis7pvx6zhzml74kf";
+
sha256 = "sha256-UD67xYBb1rvGMSPurte5z2Hcd7+JtXDPbgp3BVBdLuk=";
};
-
vendorSha256 = "1cxr96yrrmz37r542mc5376jll9lqjqm18k8761h9jqfbzmh9rkp";
+
vendorSha256 = "sha256-d+YE618OywSDOWiiULHENFEqzRmFVUFKPuPXnL1JubM=";
doCheck = false;
+3 -3
pkgs/tools/security/prs/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "prs";
-
version = "0.2.6";
+
version = "0.2.7";
src = fetchFromGitLab {
owner = "timvisee";
repo = "prs";
rev = "v${version}";
-
sha256 = "sha256-2fpR9XCcKby+hI7Dzpr2qi1QgOzdgJp0Um57tQmi01A=";
+
sha256 = "sha256-1Jrgf5UW6k0x3q6kQIB6Q7moOhConEnUU9r+21W5Uu8=";
};
-
cargoSha256 = "sha256-0oWNGrJ24gPkPp5PR/pQ1tIYkXztQJFAdPz162V5THY=";
+
cargoSha256 = "sha256-N3pLW/OGeurrl+AlwdfbZ3T7WzEOAuyUMdIR164Xp7k=";
postPatch = ''
# The GPGME backend is recommended
+35
pkgs/tools/video/play-with-mpv/default.nix
···
+
{ lib, python3Packages, fetchFromGitHub, fetchurl, youtube-dl, git }:
+
+
let
+
install_freedesktop = fetchurl {
+
url = "https://github.com/thann/install_freedesktop/tarball/2673e8da4a67bee0ffc52a0ea381a541b4becdd4";
+
sha256 = "0j8d5jdcyqbl5p6sc1ags86v3hr2sghmqqi99d1mvc064g90ckrv";
+
};
+
in
+
python3Packages.buildPythonApplication rec {
+
pname = "play-with-mpv";
+
version = "unstable-2020-05-18";
+
+
src = fetchFromGitHub {
+
owner = "thann";
+
repo = "play-with-mpv";
+
rev = "656448e03fe9de9e8bd21959f2a3b47c4acb8c3e";
+
sha256 = "1qma8b3lnkdhxdjsnrq7n9zgy53q62j4naaqqs07kjxbn72zb4p4";
+
};
+
+
nativeBuildInputs = [ git ];
+
propagatedBuildInputs = [ youtube-dl ];
+
+
postPatch = ''
+
substituteInPlace setup.py --replace \
+
'"https://github.com/thann/install_freedesktop/tarball/master#egg=install_freedesktop-0.2.0"' \
+
'"file://${install_freedesktop}#egg=install_freedesktop-0.2.0"'
+
'';
+
+
meta = with lib; {
+
description = "Chrome extension and python server that allows you to play videos in webpages with MPV instead";
+
homepage = "https://github.com/Thann/play-with-mpv";
+
license = licenses.mit;
+
maintainers = with maintainers; [ dawidsowa ];
+
};
+
}
+11 -1
pkgs/top-level/all-packages.nix
···
pebble = callPackage ../tools/admin/pebble { };
+
play-with-mpv = callPackage ../tools/video/play-with-mpv { };
+
reattach-to-user-namespace = callPackage ../os-specific/darwin/reattach-to-user-namespace {};
skhd = callPackage ../os-specific/darwin/skhd {
···
zlib = callPackage ../development/libraries/zlib { };
+
zlib-ng = callPackage ../development/libraries/zlib-ng { };
+
libdynd = callPackage ../development/libraries/libdynd { };
zlog = callPackage ../development/libraries/zlog { };
···
gperf = gperf_3_0;
pflogsumm = callPackage ../servers/mail/postfix/pflogsumm.nix { };
+
+
pomerium = callPackage ../servers/http/pomerium { };
postgrey = callPackage ../servers/mail/postgrey { };
···
});
# The current default kernel / kernel modules.
-
linuxPackages = linuxPackages_5_4;
+
linuxPackages = linuxPackages_5_10;
linux = linuxPackages.kernel;
# Update this when adding the newest kernel major version!
···
i3 = callPackage ../applications/window-managers/i3 {
xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
+
+
i3-auto-layout = callPackage ../applications/window-managers/i3/auto-layout.nix { };
i3-gaps = callPackage ../applications/window-managers/i3/gaps.nix { };
···
coq2html = callPackage ../applications/science/logic/coq2html { };
cryptoverif = callPackage ../applications/science/logic/cryptoverif { };
+
+
crypto-org-wallet = callPackage ../applications/blockchains/crypto-org-wallet.nix { };
caprice32 = callPackage ../misc/emulators/caprice32 { };