Compare commits

..

17 Commits

Author SHA1 Message Date
nixpkgs-ci[bot]
314856eb73 Merge master into staging-nixos 2026-11-01 06:10:20 +00:00
nixpkgs-ci[bot]
f45f87ad31 Merge master into staging-nixos 2026-11-01 00:19:47 +00:00
Will Fancher
d88a77cd07 nixos/systemd-initrd: add more disk discoverability (#581485) 2026-10-31 18:55:42 +00:00
matthewcroughan
4f5a4f6b95 nixos/systemd-initrd: add DDI tooling and systemd-loop@.service
This allows for more disk discoverability by using the "DDI"
functionality of systemd
2026-10-31 18:24:34 +00:00
matthewcroughan
5958536127 nixos/systemd: add systemd-loop@.service 2026-10-31 18:16:29 +00:00
nixpkgs-ci[bot]
6f5ee22df1 Merge master into staging-nixos 2026-10-31 18:07:08 +00:00
gabby
16c8316a19 nixos/fontconfig: Make Fontconfig package configurable (#580555) 2026-10-31 16:16:00 +00:00
nixpkgs-ci[bot]
17e20319af Merge master into staging-nixos 2026-10-31 12:08:16 +00:00
nixpkgs-ci[bot]
7c24500e5f Merge master into staging-nixos 2026-10-31 06:09:39 +00:00
Sandro
71c3728e60 btrfs-progs: 7.1 -> 7.3 (#579549) 2026-10-31 02:07:46 +00:00
nixpkgs-ci[bot]
bccbc81037 Merge master into staging-nixos 2026-10-31 00:15:33 +00:00
Fabián Heredia Montiel
5586e18a7f libslirp: 4.9.5 -> 4.9.6 (#578803) 2026-10-30 23:20:54 +00:00
nixpkgs-ci[bot]
3ee7fa5291 Merge master into staging-nixos 2026-10-30 20:06:04 +00:00
nixpkgs-ci[bot]
66cf75f595 Merge master into staging-nixos 2026-10-30 18:07:28 +00:00
Victor Engmark
94c56eb596 nixos/fontconfig: Make Fontconfig package configurable
And referrable.
2026-10-29 16:29:23 +01:00
R. Ryantm
215954bfe9 btrfs-progs: 7.1 -> 7.3 2026-10-27 05:36:12 +00:00
R. Ryantm
97f93996c6 libslirp: 4.9.5 -> 4.9.6 2026-10-25 12:37:38 +00:00
27 changed files with 632 additions and 784 deletions

View File

@@ -30,7 +30,6 @@ let
cfg = config.fonts.fontconfig;
fcBool = x: "<bool>" + (lib.boolToString x) + "</bool>";
pkg = pkgs.fontconfig;
# configuration file to read fontconfig cache
# priority 0
@@ -49,7 +48,7 @@ let
inherit fontconfig;
fontDirectories = config.fonts.packages;
};
cache = makeCache pkgs.fontconfig;
cache = makeCache cfg.package;
cache32 = makeCache pkgs.pkgsi686Linux.fontconfig;
in
pkgs.writeText "fc-00-nixos-cache.conf" ''
@@ -209,7 +208,7 @@ let
# Replace default linked config with a different variant
replaceDefaultConfig = defaultConfig: newConfig: ''
rm $dst/${defaultConfig}
ln -s ${pkg.out}/share/fontconfig/conf.avail/${newConfig} \
ln -s ${cfg.package.out}/share/fontconfig/conf.avail/${newConfig} \
$dst/
'';
@@ -224,7 +223,7 @@ let
mkdir -p $dst
# fonts.conf
ln -s ${pkg.out}/etc/fonts/fonts.conf \
ln -s ${cfg.package.out}/etc/fonts/fonts.conf \
$dst/../fonts.conf
# TODO: remove this legacy symlink once people stop using packages built before #95358 was merged
mkdir -p $out/etc/fonts/2.11
@@ -232,7 +231,7 @@ let
$out/etc/fonts/2.11/fonts.conf
# fontconfig default config files
ln -s ${pkg.out}/etc/fonts/conf.d/*.conf \
ln -s ${cfg.package.out}/etc/fonts/conf.d/*.conf \
$dst/
${lib.optionalString (!cfg.antialias) (
@@ -352,6 +351,8 @@ in
'';
};
package = lib.mkPackageOption pkgs "fontconfig" { };
confPackages = lib.mkOption {
internal = true;
type = with lib.types; listOf path;
@@ -627,14 +628,14 @@ in
};
config = lib.mkMerge [
(lib.mkIf cfg.enable {
environment.systemPackages = [ pkgs.fontconfig ];
environment.systemPackages = [ cfg.package ];
environment.etc.fonts.source = "${fontconfigEtc}/etc/fonts/";
security.apparmor.includes."abstractions/fonts" = ''
# fonts.conf
r ${pkg.out}/etc/fonts/fonts.conf,
r ${cfg.package.out}/etc/fonts/fonts.conf,
# fontconfig default config files
r ${pkg.out}/etc/fonts/conf.d/*.conf,
r ${cfg.package.out}/etc/fonts/conf.d/*.conf,
# 00-nixos-cache.conf
r ${cacheConf},
@@ -644,7 +645,7 @@ in
# 50-user.conf
${lib.optionalString cfg.includeUserConf ''
r ${pkg.out}/etc/fonts/conf.d.bak/50-user.conf,
r ${cfg.package.out}/etc/fonts/conf.d.bak/50-user.conf,
''}
# local.conf (indirect priority 51)

View File

@@ -59,11 +59,6 @@ with lib;
KillMode = "process";
Restart = "on-success";
Type = "notify";
User = "toxvpn";
Group = "toxvpn";
# Creates a tun device, which needs CAP_NET_ADMIN.
AmbientCapabilities = [ "CAP_NET_ADMIN" ];
CapabilityBoundingSet = [ "CAP_NET_ADMIN" ];
};
restartIfChanged = false; # Likely to be used for remote admin

View File

@@ -110,7 +110,7 @@ in
metrics = lib.mkEnableOption "Sending usage metrics containing the version of bluemap in use";
};
};
description = "Settings for the core.conf file, [see upstream docs](https://github.com/BlueMap-Minecraft/BlueMap/blob/master/common/src/main/resources/de/bluecolored/bluemap/config/core.conf).";
description = "Settings for the core.conf file, [see upstream docs](https://github.com/BlueMap-Minecraft/BlueMap/blob/master/BlueMapCommon/src/main/resources/de/bluecolored/bluemap/config/core.conf).";
};
webappSettings = mkOption {
@@ -127,7 +127,7 @@ in
webroot = config.services.bluemap.webRoot;
}
'';
description = "Settings for the webapp.conf file, see [upstream docs](https://github.com/BlueMap-Minecraft/BlueMap/blob/master/common/src/main/resources/de/bluecolored/bluemap/config/webapp.conf).";
description = "Settings for the webapp.conf file, see [upstream docs](https://github.com/BlueMap-Minecraft/BlueMap/blob/master/BlueMapCommon/src/main/resources/de/bluecolored/bluemap/config/webapp.conf).";
};
webserverSettings = mkOption {
@@ -147,7 +147,7 @@ in
default = { };
description = ''
Settings for the webserver.conf file, usually not required.
[See upstream docs](https://github.com/BlueMap-Minecraft/BlueMap/blob/master/common/src/main/resources/de/bluecolored/bluemap/config/webserver.conf).
[See upstream docs](https://github.com/BlueMap-Minecraft/BlueMap/blob/master/BlueMapCommon/src/main/resources/de/bluecolored/bluemap/config/webserver.conf).
'';
};
@@ -158,7 +158,7 @@ in
options = {
world = lib.mkOption {
type = lib.types.path;
description = "Path to the world directory.";
description = "Path to world folder containing the dimension to render";
};
};
}
@@ -166,14 +166,12 @@ in
default = {
"overworld" = {
world = "${cfg.defaultWorld}";
dimension = "minecraft:overworld";
ambient-light = 0.1;
cave-detection-ocean-floor = -5;
};
"nether" = {
world = "${cfg.defaultWorld}";
dimension = "minecraft:the_nether";
world = "${cfg.defaultWorld}/DIM-1";
sorting = 100;
sky-color = "#290000";
void-color = "#150000";
@@ -186,8 +184,7 @@ in
};
"end" = {
world = "${cfg.defaultWorld}";
dimension = "minecraft:the_end";
world = "${cfg.defaultWorld}/DIM1";
sorting = 200;
sky-color = "#080010";
void-color = "#080010";
@@ -201,14 +198,12 @@ in
{
"overworld" = {
world = "''${cfg.defaultWorld}";
dimension = "minecraft:overworld";
ambient-light = 0.1;
cave-detection-ocean-floor = -5;
};
"nether" = {
world = "''${cfg.defaultWorld}";
dimension = "minecraft:the_nether";
world = "''${cfg.defaultWorld}/DIM-1";
sorting = 100;
sky-color = "#290000";
void-color = "#150000";
@@ -221,8 +216,7 @@ in
};
"end" = {
world = "''${cfg.defaultWorld}";
dimension = "minecraft:the_end";
world = "''${cfg.defaultWorld}/DIM1";
sorting = 200;
sky-color = "#080010";
void-color = "#080010";
@@ -237,7 +231,7 @@ in
Settings for files in `maps/`.
If you define anything here you must define everything yourself.
See the default for an example with good options for the different world types.
For valid values [consult upstream docs](https://github.com/BlueMap-Minecraft/BlueMap/blob/master/common/src/main/resources/de/bluecolored/bluemap/config/maps/map.conf).
For valid values [consult upstream docs](https://github.com/BlueMap-Minecraft/BlueMap/blob/master/BlueMapCommon/src/main/resources/de/bluecolored/bluemap/config/maps/map.conf).
'';
};
@@ -260,7 +254,7 @@ in
description = ''
Where the rendered map will be stored.
Unless you are doing something advanced you should probably leave this alone and configure webRoot instead.
[See upstream docs](https://github.com/BlueMap-Minecraft/BlueMap/tree/master/common/src/main/resources/de/bluecolored/bluemap/config/storages)
[See upstream docs](https://github.com/BlueMap-Minecraft/BlueMap/tree/master/BlueMapCommon/src/main/resources/de/bluecolored/bluemap/config/storages)
'';
default = {
"file" = {

View File

@@ -89,6 +89,7 @@ let
"systemd-fsck-root.service"
"systemd-growfs@.service"
"systemd-growfs-root.service"
"systemd-loop@.service"
"systemd-remount-fs.service"
"systemd-pstore.service"
"local-fs.target"

View File

@@ -97,6 +97,7 @@ let
"systemd-factory-reset-complete.service"
"factory-reset-now.target"
"systemd-fsck@.service"
"systemd-loop@.service"
"systemd-halt.service"
"systemd-hibernate-resume.service"
"systemd-journald-audit.socket"
@@ -613,6 +614,7 @@ in
"${cfg.package}/lib/systemd/systemd-bsod"
"${cfg.package}/lib/systemd/systemd-sysroot-fstab-check"
"${cfg.package}/lib/systemd/systemd-factory-reset"
"${cfg.package}/bin/systemd-dissect"
# generators
"${cfg.package}/lib/systemd/system-generators/systemd-debug-generator"

View File

@@ -1898,7 +1898,6 @@ in
tmate-ssh-server = runTest ./tmate-ssh-server.nix;
tomcat = runTest ./tomcat.nix;
tor = runTest ./tor.nix;
toxvpn = runTest ./toxvpn.nix;
tpm-ek = handleTest ./tpm-ek { };
tpm2 = import ./tpm2 { inherit runTest; };
traccar = runTest ./traccar.nix;

View File

@@ -1,70 +0,0 @@
{ lib, ... }:
let
mkNode =
localip:
{
pkgs,
config,
...
}:
{
virtualisation.vlans = [ 1 ];
services.toxvpn = {
enable = true;
inherit localip;
};
networking.firewall.allowedUDPPorts = [ config.services.toxvpn.port ];
networking.firewall.allowedTCPPorts = [ 8000 ];
environment.systemPackages = [ pkgs.socat ];
};
in
{
name = "toxvpn";
meta.maintainers = with lib.maintainers; [ h7x4 ];
containers.alice = mkNode "10.0.0.1";
containers.bob = mkNode "10.0.0.2";
testScript =
{ containers, ... }:
let
aliceIp = containers.alice.services.toxvpn.localip;
bobIp = containers.bob.services.toxvpn.localip;
in
''
import re
start_all()
alice.wait_for_unit("toxvpn.service")
bob.wait_for_unit("toxvpn.service")
with subtest("Whitelist each other"):
alice_status = alice.succeed('socat TEXT:"status\\n" UNIX-CONNECT:/run/toxvpn/control')
bob_status = bob.succeed('socat TEXT:"status\\n" UNIX-CONNECT:/run/toxvpn/control')
alice_id_match = re.search(r"my id is ([0-9a-f]+)", alice_status)
bob_id_match = re.search(r"my id is ([0-9a-f]+)", bob_status)
assert alice_id_match
assert bob_id_match
alice.succeed(f'socat TEXT:"whitelist {bob_id_match.group(1)}\\n" UNIX-CONNECT:/run/toxvpn/control')
bob.succeed(f'socat TEXT:"whitelist {alice_id_match.group(1)}\\n" UNIX-CONNECT:/run/toxvpn/control')
with subtest("Connect to each other"):
alice.wait_until_succeeds('socat TEXT:"list\\n" UNIX-CONNECT:/run/toxvpn/control | grep -q bob')
bob.wait_until_succeeds('socat TEXT:"list\\n" UNIX-CONNECT:/run/toxvpn/control | grep -q alice')
alice.succeed("ping -c 1 ${bobIp}")
bob.succeed("ping -c 1 ${aliceIp}")
with subtest("Send messages to each other"):
alice.execute("(socat TCP-LISTEN:8000 OPEN:/tmp/received,creat &) >&2")
bob.execute("(socat TCP-LISTEN:8000 OPEN:/tmp/received,creat &) >&2")
bob.wait_until_succeeds('socat TEXT:"hi\\n" TCP:${aliceIp}:8000')
alice.wait_until_succeeds("grep -q hi /tmp/received")
alice.wait_until_succeeds('socat TEXT:"hi\\n" TCP:${bobIp}:8000')
bob.wait_until_succeeds("grep -q hi /tmp/received")
'';
}

View File

@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation {
preFixup = ''
makeWrapperArgs=(
${lib.optionalString (runtimeDeps != [ ]) "--prefix PATH : ${lib.makeBinPath runtimeDeps}"}
--prefix PATH : "${lib.makeBinPath runtimeDeps}"
)
gappsWrapperArgs+=(
# Thumbnailers

View File

@@ -1,21 +1,21 @@
# Expression generated by update.py; do not edit it by hand!
rec {
pname = "brave-origin";
version = "1.98.63";
version = "1.98.62";
flavor = "origin";
archives = {
aarch64-linux = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-origin_${version}_arm64.deb";
hash = "sha256-8nkMT9jDBJ1H2u6TJ4f2Hq50B8LKMN5q6Dar9TV9n4s=";
hash = "sha256-8H1A2oWUXvQ9Tzc+6PsKbFUBSOFa5+YjZEU8CwCCv9c=";
};
x86_64-linux = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-origin_${version}_amd64.deb";
hash = "sha256-7b2eyO1VmShI/2iJYX+V1OnvFiW9ouWKLSJv9WBNScg=";
hash = "sha256-LiQKzhcdsHPb0OzL960BoAhwn0AcxcP1NYvu/p18Eis=";
};
aarch64-darwin = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/Brave-Origin-arm64.dmg";
hash = "sha256-/7RJV8G2xczV8yHU1nGWv7Y65EOxAdPlhsUSwC/qksg=";
hash = "sha256-gVkaKNx9RIsORdyuu6TizhsNOOOP1pV0Tucd9e0upWY=";
};
};
}

View File

@@ -1,20 +1,20 @@
# Expression generated by update.py; do not edit it by hand!
rec {
pname = "brave";
version = "1.98.63";
version = "1.98.62";
archives = {
aarch64-linux = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_arm64.deb";
hash = "sha256-jQtKAVXCgQ7JwuK3VRWbmieL1R+50Nd2ynrE9C4MwvM=";
hash = "sha256-lXjpjKXD9QEuvAYNhp8OYmT/PW2WpfBO5zfre/ygdiQ=";
};
x86_64-linux = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
hash = "sha256-JCJ81aklnr3FEI2zlMxZmN9aw2NfhPiDinRkp7XN3VU=";
hash = "sha256-+ytsdncm2ytWLXZhmGGLwppZDpj4KZat4qOikVO1VcE=";
};
aarch64-darwin = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/Brave-Browser-arm64.dmg";
hash = "sha256-13XmtzqQIFTu3gj2aeIFDtbDaRJfhLbEsKd0biTBV7k=";
hash = "sha256-b1o57leoZSONZEG5gAzZXXC8yxsaGPRpMjBN2gTIX6w=";
};
};
}

View File

@@ -1,57 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
libva,
libdrm,
linuxHeaders,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "asahi-va-driver";
version = "2.0";
src = fetchFromGitHub {
owner = "AsahiLinux";
repo = "asahi-va-driver";
tag = finalAttrs.version;
hash = "sha256-caIFHEBrgMhxLoXLJCn3JrZPcy3MAox5apXjvy3RxI8=";
};
__structuredAttrs = true;
strictDeps = true;
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
libva
libdrm
linuxHeaders
];
mesonFlags = [
"-Ddriverdir=${placeholder "out"}/lib/dri"
];
meta = {
description = "VA-API (libva) backend driver for V4L2 stateless video decoders.";
longDescription = ''
A fork of the upstream https://xff.cz/git/libva-v4l2_request/. This version focuses on Apple Silicon.
When support is available in the kernel and hardware, this allows hardware decoding of MPEG-2, H.264, HEVC, VP8, VP9 and AV1 through VA-API. AVD has support for all of these apart from VP8 and MPEG-2, though AV-1 is only supported on M3+.
'';
homepage = "https://github.com/AsahiLinux/asahi-va-driver";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
flokli
sempiternal-aurora
];
platforms = lib.platforms.linux;
};
})

View File

@@ -3,18 +3,16 @@
stdenvNoCC,
fetchurl,
makeWrapper,
javaPackages,
jre,
}:
let
jre = javaPackages.compiler.temurin-bin.jre-25;
in
stdenvNoCC.mkDerivation rec {
pname = "bluemap";
version = "5.29";
version = "5.16";
src = fetchurl {
url = "https://github.com/BlueMap-Minecraft/BlueMap/releases/download/v${version}/BlueMap-${version}-cli.jar";
hash = "sha256-6DB2f6Y2S1K5MQ+1mFCOvefuxevoNgqYniQNmRr4mjo=";
hash = "sha256-eUDVYYkDc4l/j2vpGlLnZUYfQOW+ThxEAQBAc+4NJYA=";
};
dontUnpack = true;

View File

@@ -21,11 +21,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "btrfs-progs";
version = "7.1";
version = "7.3";
src = fetchurl {
url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${finalAttrs.version}.tar.xz";
hash = "sha256-0fVcwpcTmMkULqp50gPmPVhqO0uGf5VmZKHWgyLNTjQ=";
hash = "sha256-03tjQD0l/gJXBMdY5qPaCXmuUMMMXwKqeORBDns0bjo=";
};
nativeBuildInputs = [

View File

@@ -7,7 +7,6 @@
desktopName,
passthru,
moduleSrcs,
moduleManifest,
# Package utilities
disableBreakingUpdates,
stageModules,
@@ -17,8 +16,8 @@
withEquicord ? false,
withMoonlight ? false,
# Disabling this would normally break Discord.
# The intended use-case is when SKIP_HOST_UPDATE and SKIP_MODULE_UPDATE are
# enabled via other means, such as a declaratively linked settings.json
# The intended use-case for this is when SKIP_HOST_UPDATE is enabled via other means,
# for example if a settings.json is linked declaratively (e.g., with home-manager).
disableUpdates ? true,
# Package arguments
commandLineArgs ? "",
@@ -107,9 +106,6 @@ stdenv.mkDerivation (finalAttrs: {
extractDistro ${src} "$out/share/${pname}/modules/${name}"
'') moduleSrcs
)}
# The updater creates pending even when module updates are disabled
mkdir -p "$out/share/${pname}/modules/pending"
echo ${lib.escapeShellArg moduleManifest} > "$out/share/${pname}/modules/installed.json"
# wrap executable to $out/bin
mkdir -p $out/bin

View File

@@ -44,8 +44,9 @@ if os.path.exists(settings_path):
else:
settings = {}
# The module directory is pinned in the Nix store and cannot accept updates
required_settings = {"SKIP_HOST_UPDATE": True, "SKIP_MODULE_UPDATE": True}
required_settings = {"SKIP_HOST_UPDATE": True}
if "@skipModuleUpdate@" == "true":
required_settings["SKIP_MODULE_UPDATE"] = True
missing_settings = {
key: value for key, value in required_settings.items() if settings.get(key) != value

View File

@@ -7,7 +7,6 @@
desktopName,
passthru,
moduleSrcs,
moduleManifest,
# Package utilities
disableBreakingUpdates,
stageModules,
@@ -17,8 +16,8 @@
withEquicord ? false,
withMoonlight ? false,
# Disabling this would normally break Discord.
# The intended use-case is when SKIP_HOST_UPDATE and SKIP_MODULE_UPDATE are
# enabled via other means, such as a declaratively linked settings.json
# The intended use-case for this is when SKIP_HOST_UPDATE is enabled via other means,
# for example if a settings.json is linked declaratively (e.g., with home-manager).
disableUpdates ? true,
# Feature flags (Linux exclusive)
withTTS ? true,
@@ -223,10 +222,13 @@ stdenv.mkDerivation (finalAttrs: {
brotli -d < ${src} | tar xf - --strip-components=1 -C $out/opt/${binaryName}/modules/${name}
'') moduleSrcs
)}
echo ${lib.escapeShellArg moduleManifest} > $out/opt/${binaryName}/modules/installed.json
# The updater creates pending even when module updates are disabled
mkdir -p $out/opt/${binaryName}/modules/{pending,discord_krisp/KMS/logs}
mkdir -p $out/opt/${binaryName}/modules/discord_krisp/KMS/logs
# The web client only keeps OpenH264 2.7.0; names must stay the same length
grep -qF libopenh264-2.5.1-linux64.7.so $out/opt/${binaryName}/modules/discord_desktop_core/core.asar
sed -i 's/libopenh264-2\.5\.1-linux64\.7\.so/libopenh264-2.7.0-linux64.8.so/g' \
$out/opt/${binaryName}/modules/discord_desktop_core/core.asar
# Chromium 148 multiplies Plasma's GTK DPI scale by the native Wayland surface
# scale, which makes the UI too large. See #551645

View File

@@ -8,8 +8,8 @@
withEquicord ? false,
withMoonlight ? false,
# Disabling this would normally break Discord.
# The intended use-case is when SKIP_HOST_UPDATE and SKIP_MODULE_UPDATE are
# enabled via other means, such as a declaratively linked settings.json
# The intended use-case for this is when SKIP_HOST_UPDATE is enabled via other means,
# for example if a settings.json is linked declaratively (e.g., with home-manager).
disableUpdates ? true,
# Feature flags (Linux exclusive)
withTTS ? true,
@@ -74,10 +74,6 @@ let
moduleVersions = lib.mapAttrs (_: mod: mod.version) source.modules;
moduleManifest = builtins.toJSON (
lib.mapAttrs (_: mod: { installedVersion = mod; }) moduleVersions
);
configDir =
if isLinux then
"\${DISCORD_USER_DATA_DIR-\${XDG_CONFIG_HOME:-$HOME/.config}}/${lib.toLower binaryName}"
@@ -87,15 +83,18 @@ let
in
"\${DISCORD_USER_DATA_DIR-$HOME/Library/Application Support}/${configDirName}";
# Link the whole directory so Discord's native module boundary check sees
# the same real path for the module root and the modules it contains
# See https://github.com/NixOS/nixpkgs/issues/580512
# Symlink native modules from the nix store into the user config dir
# where Discord's JS moduleUpdater expects them.
stageModules = writeShellScript "discord-stage-modules" ''
store_modules="$1"
modules_dir="${configDir}/${version}/modules"
rm -rf "$modules_dir"
mkdir -p "$(dirname "$modules_dir")"
ln -s "$store_modules" "$modules_dir"
mkdir -p "$modules_dir"
for m in ${lib.concatStringsSep " " (lib.attrNames moduleSrcs)}; do
ln -sn "$store_modules/$m" "$modules_dir/$m"
done
echo '${builtins.toJSON (lib.mapAttrs (_: mod: { installedVersion = mod; }) moduleVersions)}' \
> "$modules_dir/installed.json"
'';
disableBreakingUpdates =
@@ -103,6 +102,7 @@ let
{
pythonInterpreter = python3.interpreter;
configDirName = lib.toLower binaryName;
skipModuleUpdate = lib.boolToString withOpenASAR;
meta.mainProgram = "disable-breaking-updates.py";
}
''
@@ -135,7 +135,6 @@ let
disableBreakingUpdates
stageModules
moduleSrcs
moduleManifest
;
}
);

File diff suppressed because it is too large Load Diff

View File

@@ -7,16 +7,16 @@
buildNpmPackage (finalAttrs: {
pname = "dotenvx";
version = "2.38.2";
version = "2.38.0";
src = fetchFromGitHub {
owner = "dotenvx";
repo = "dotenvx";
tag = "v${finalAttrs.version}";
hash = "sha256-GzRkB2jFV1s43YTqf5KDglsMfu/nrCwZnrTw5xMOnwM=";
hash = "sha256-DhdYEBsBTlxDAOLCFk4FXPh9iUSMCRpA1JJLcWaBL8g=";
};
npmDepsHash = "sha256-X0DyVHfcJCSvaCMW5+bXMiv73muzyHmy9/yUKpAfKP8=";
npmDepsHash = "sha256-toDNCjZEPXyFyHPi3+L1ukEK/1/IR7onmMd+nBUNKl8=";
dontNpmBuild = true;

View File

@@ -46,13 +46,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "far2l";
version = "2.9.1-unstable-2026-10-27";
version = "2.9.1-unstable-2026-10-10";
src = fetchFromGitHub {
owner = "elfmz";
repo = "far2l";
rev = "1bd345fe9708f94e03209bd443c2ca2303b39c25";
hash = "sha256-0898sWltJcgupef3xvazb6e2z9s/XrS8z1XRtdGsXzM=";
rev = "5ec2011794fa0c781e6dde92c84c77b5ae02b25b";
hash = "sha256-nBcZNIRMKWxMaTPVdXF08KpNPCh/VbgmD2Q4e0rGqCw=";
};
nativeBuildInputs = [

View File

@@ -12,13 +12,13 @@
let
pname = "hunk";
version = "0.24.1";
version = "0.24.0";
src = fetchFromGitHub {
owner = "modem-dev";
repo = "hunk";
tag = "v${version}";
hash = "sha256-uYj+01W3f9TE9oKIW/2kVERnJIUsB/r4BcGDbnhkS/Y=";
hash = "sha256-Nb6OB7gD1+vyLbzB3Izjf3nPVcB8Yq1Y6UDhgC1ZyDg=";
};
node_modules = stdenv.mkDerivation {
@@ -58,7 +58,7 @@ let
dontFixup = true;
outputHash = "sha256-W3yciO7CHc7Nu7GPpu4DvokhlEAvg4BDbmjAtF6r7AE=";
outputHash = "sha256-Y0X1FlNcW7n55MSB8mO0BpOLH5Ju4n14ibex9KM9em8=";
outputHashMode = "recursive";
};
in

View File

@@ -23,7 +23,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "librelane";
version = "3.0.17";
version = "3.0.14";
pyproject = true;
__structuredAttrs = true;
@@ -31,7 +31,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "librelane";
repo = "librelane";
tag = finalAttrs.version;
hash = "sha256-/vJzgyBtaBqN2pfTz7gt+a6eXma09one5wZdN30sa3I=";
hash = "sha256-/ZzATYRi9JH6YyFWnI4lLkQ2/e2B0xa7WEI65a/ArJI=";
};
build-system = [

View File

@@ -10,14 +10,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libslirp";
version = "4.9.5";
version = "4.9.6";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "slirp";
repo = "libslirp";
tag = "v${finalAttrs.version}";
hash = "sha256-iWu3/Klsm8e9MH147BJhn9Vqyneq5ROqPvll1cnieL0=";
hash = "sha256-nfR5eQrcpbkmn2tx/8l649NVPOsIFSFSBkW/vw0meCM=";
};
__structuredAttrs = true;

View File

@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "redu";
version = "0.2.16";
version = "0.2.15";
src = fetchFromGitHub {
owner = "drdo";
repo = "redu";
tag = "v${finalAttrs.version}";
hash = "sha256-Cro9vdWq57IRLCwp5q7iWGfThEaBsQ/z9umHlKbFVz8=";
hash = "sha256-ByXQ3tcvXbCUZwZ+e7WJVUUjvhMf0ivJJiswFlLap4I=";
};
cargoHash = "sha256-g1UylYWQL741PxNBjhVg5pSBd8P4QKPujMWAkXbusRo=";
cargoHash = "sha256-JnjXe2CHO9Namp++UI/V6ND2Y0/WQtaVA2EcUyXUnjQ=";
buildInputs = [ restic ];

View File

@@ -15,13 +15,13 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "snx-rs";
version = "6.6.0";
version = "6.5.3";
src = fetchFromGitHub {
owner = "ancwrd1";
repo = "snx-rs";
tag = "v${finalAttrs.version}";
hash = "sha256-E67SjpuwOPfjn9splQmAzjqdFzYoqEtyPasJP8IBi6c=";
hash = "sha256-raEGV/3qK3feAta8YjXxo2LLH3wb2k7FZQSsEX9QbNE=";
};
passthru.updateScript = nix-update-script { };
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
versionCheckHook
];
cargoHash = "sha256-Y7w5P2gePA1iy0AOpYOFPz70YBZYjy7sHEac+e9v+Ek=";
cargoHash = "sha256-7Nb3gflXCu86H8ZF2Qh9KbbWhhFg2iMwdK55UtaP5pM=";
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/snx-rs";

View File

@@ -9,7 +9,6 @@
libcap,
zeromq,
systemdLibs,
nixosTests,
}:
stdenv.mkDerivation {
@@ -48,8 +47,6 @@ stdenv.mkDerivation {
installCheckPhase = "$out/bin/toxvpn -h";
doInstallCheck = true;
passthru.tests.nixos = nixosTests.toxvpn;
meta = {
description = "Powerful tool that allows one to make tunneled point to point connections over Tox";
homepage = "https://github.com/cleverca22/toxvpn";

View File

@@ -1,7 +1,7 @@
{
lib,
buildPythonPackage,
fetchFromGitea,
fetchFromGitHub,
# dependencies
pyserial,
@@ -14,17 +14,16 @@
numpy,
}:
buildPythonPackage (finalAttrs: {
buildPythonPackage {
pname = "misoc";
version = "0.12-unstable-2026-10-02";
version = "0.12-unstable-2025-10-03";
format = "setuptools";
src = fetchFromGitea {
domain = "git.m-labs.hk";
owner = "M-Labs";
src = fetchFromGitHub {
owner = "m-labs";
repo = "misoc";
rev = "8a909c8b638fbec584048d6929d0c577f6be182d";
hash = "sha256-9/yKXGHhd3Ji/zIOlek0B2CrO/W09AuwNuDZOVuLOTI=";
rev = "59043e979f78934f2c2f99ac417c65aa0c7be0b9";
hash = "sha256-dXamAZkLdTC9UeZV6biipsZN4LHO+ZLoXV4LO+L7HTM=";
};
dependencies = [
@@ -39,15 +38,6 @@ buildPythonPackage (finalAttrs: {
numpy
];
disabledTestFiles = [
# Fails duea multiprocessing issue that's probably only relevant in the
# Nix sandbox.
"misoc/test/coaxpress/test_lineparser.py"
];
preCheck = ''
rm ${lib.join " " finalAttrs.disabledTestFiles}
'';
pythonImportsCheck = [ "misoc" ];
meta = {
@@ -56,4 +46,4 @@ buildPythonPackage (finalAttrs: {
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ doronbehar ];
};
})
}