Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-04-15 18:04:44 +00:00
committed by GitHub
49 changed files with 10249 additions and 162 deletions
-1
View File
@@ -398,7 +398,6 @@ with lib.maintainers;
leona
osnyx
ma27
laalsaas
];
scope = "Team for Flying Circus employees who collectively maintain packages.";
shortName = "Flying Circus employees";
+5 -2
View File
@@ -10,14 +10,17 @@ let
in
{
options = {
programs.iotop.enable = lib.mkEnableOption "iotop + setcap wrapper";
programs.iotop = {
enable = lib.mkEnableOption "iotop + setcap wrapper";
package = lib.mkPackageOption pkgs "iotop" { example = "iotop-c"; };
};
};
config = lib.mkIf cfg.enable {
security.wrappers.iotop = {
owner = "root";
group = "root";
capabilities = "cap_net_admin+p";
source = "${pkgs.iotop}/bin/iotop";
source = lib.getExe cfg.package;
};
};
}
+23 -3
View File
@@ -12,7 +12,6 @@ let
mkEnableOption
mkOption
mkIf
literalMD
mkPackageOption
;
settingsFormat = pkgs.formats.ini { };
@@ -26,6 +25,18 @@ in
default = [ "cockpit" ];
};
allowed-origins = lib.mkOption {
type = types.listOf types.str;
default = [ ];
description = ''
List of allowed origins.
Maps to the WebService.Origins setting and allows merging from multiple modules.
'';
};
settings = lib.mkOption {
type = settingsFormat.type;
@@ -62,14 +73,16 @@ in
# generate cockpit settings
environment.etc."cockpit/cockpit.conf".source = settingsFormat.generate "cockpit.conf" cfg.settings;
security.pam.services.cockpit = { };
security.pam.services.cockpit = {
startSession = true;
};
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
systemd.packages = [ cfg.package ];
systemd.sockets.cockpit.wantedBy = [ "multi-user.target" ];
systemd.sockets.cockpit.listenStreams = [
""
"" # workaround so it doesn't listen on both ports caused by the runtime merging
(toString cfg.port)
];
@@ -80,6 +93,13 @@ in
"L+ /run/cockpit/motd - - - - inactive.motd"
"d /etc/cockpit/ws-certs.d 0600 root root 0"
];
services.cockpit.allowed-origins = [
"https://localhost:${toString config.services.cockpit.port}"
];
services.cockpit.settings.WebService.Origins =
builtins.concatStringsSep " " config.services.cockpit.allowed-origins;
};
meta.maintainers = pkgs.cockpit.meta.maintainers;
+7 -6
View File
@@ -578,21 +578,22 @@ in
};
networking.fqdn = mkOption {
readOnly = true;
type = types.str;
default =
if (cfg.hostName != "" && cfg.domain != null) then
"${cfg.hostName}.${cfg.domain}"
else
throw ''
The FQDN is required but cannot be determined. Please make sure that
both networking.hostName and networking.domain are set properly.
The FQDN is required but cannot be determined from `networking.hostName`
and `networking.domain`. Please ensure these options are set properly or
set `networking.fqdn` directly.
'';
defaultText = literalExpression ''"''${networking.hostName}.''${networking.domain}"'';
description = ''
The fully qualified domain name (FQDN) of this host. It is the result
of combining `networking.hostName` and `networking.domain.` Using this
option will result in an evaluation error if the hostname is empty or
The fully qualified domain name (FQDN) of this host. By default, it is
the result of combining `networking.hostName` and `networking.domain.`
Using this option will result in an evaluation error if the hostname is empty or
no domain is specified.
Modules that accept a mere `networking.hostName` but prefer a fully qualified
+1 -1
View File
@@ -368,7 +368,7 @@ in
crabfit = handleTest ./crabfit.nix { };
cri-o = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./cri-o.nix { };
cryptpad = runTest ./cryptpad.nix;
cups-pdf = handleTest ./cups-pdf.nix { };
cups-pdf = runTest ./cups-pdf.nix;
curl-impersonate = handleTest ./curl-impersonate.nix { };
custom-ca = handleTest ./custom-ca.nix { };
croc = handleTest ./croc.nix { };
+8 -6
View File
@@ -23,11 +23,9 @@ import ./make-test-python.nix (
enable = true;
port = 7890;
openFirewall = true;
settings = {
WebService = {
Origins = "https://server:7890";
};
};
allowed-origins = [
"https://server:${toString config.services.cockpit.port}"
];
};
};
client =
@@ -123,10 +121,14 @@ import ./make-test-python.nix (
assert "Web console is running in limited access mode" in driver.page_source
log("Clicking the sudo button")
for button in driver.find_elements(By.TAG_NAME, "button"):
if 'admin' in button.text:
button.click()
driver.switch_to.default_content()
driver.find_element(By.CSS_SELECTOR, 'button.ct-locked').click()
log("Checking that /nonexistent is not a thing")
assert '/nonexistent' not in driver.page_source
assert len(driver.find_elements(By.CSS_SELECTOR, '#machine-reconnect')) == 0
driver.close()
'';
+40 -42
View File
@@ -1,47 +1,45 @@
import ./make-test-python.nix (
{ lib, pkgs, ... }:
{
name = "cups-pdf";
{ hostPkgs, lib, ... }:
{
name = "cups-pdf";
nodes.machine =
{ pkgs, ... }:
{
imports = [ ./common/user-account.nix ];
environment.systemPackages = [ pkgs.poppler-utils ];
fonts.packages = [ pkgs.dejavu_fonts ]; # yields more OCR-able pdf
services.printing.cups-pdf.enable = true;
services.printing.cups-pdf.instances = {
opt = { };
noopt.installPrinter = false;
};
hardware.printers.ensurePrinters = [
{
name = "noopt";
model = "CUPS-PDF_noopt.ppd";
deviceUri = "cups-pdf:/noopt";
}
];
nodes.machine =
{ pkgs, ... }:
{
imports = [ ./common/user-account.nix ];
environment.systemPackages = [ pkgs.poppler-utils ];
fonts.packages = [ pkgs.dejavu_fonts ]; # yields more OCR-able pdf
services.printing.cups-pdf.enable = true;
services.printing.cups-pdf.instances = {
opt = { };
noopt.installPrinter = false;
};
hardware.printers.ensurePrinters = [
{
name = "noopt";
model = "CUPS-PDF_noopt.ppd";
deviceUri = "cups-pdf:/noopt";
}
];
};
# we cannot check the files with pdftotext, due to
# https://github.com/alexivkin/CUPS-PDF-to-PDF/issues/7
# we need `imagemagickBig` as it has ghostscript support
# we cannot check the files with pdftotext, due to
# https://github.com/alexivkin/CUPS-PDF-to-PDF/issues/7
# we need `imagemagickBig` as it has ghostscript support
testScript = ''
from subprocess import run
machine.wait_for_unit("multi-user.target")
for name in ("opt", "noopt"):
text = f"test text {name}".upper()
machine.wait_until_succeeds(f"lpstat -v {name}")
machine.succeed(f"su - alice -c 'echo -e \"\n {text}\" | lp -d {name}'")
# wait until the pdf files are completely produced and readable by alice
machine.wait_until_succeeds(f"su - alice -c 'pdfinfo /var/spool/cups-pdf-{name}/users/alice/*.pdf'")
machine.succeed(f"cp /var/spool/cups-pdf-{name}/users/alice/*.pdf /tmp/{name}.pdf")
machine.copy_from_vm(f"/tmp/{name}.pdf", "")
run(f"${pkgs.imagemagickBig}/bin/convert -density 300 $out/{name}.pdf $out/{name}.jpeg", shell=True, check=True)
assert text.encode() in run(f"${lib.getExe pkgs.tesseract} $out/{name}.jpeg stdout", shell=True, check=True, capture_output=True).stdout
'';
testScript = ''
from subprocess import run
machine.wait_for_unit("multi-user.target")
for name in ("opt", "noopt"):
text = f"test text {name}".upper()
machine.wait_until_succeeds(f"lpstat -v {name}")
machine.succeed(f"su - alice -c 'echo -e \"\n {text}\" | lp -d {name}'")
# wait until the pdf files are completely produced and readable by alice
machine.wait_until_succeeds(f"su - alice -c 'pdfinfo /var/spool/cups-pdf-{name}/users/alice/*.pdf'")
machine.succeed(f"cp /var/spool/cups-pdf-{name}/users/alice/*.pdf /tmp/{name}.pdf")
machine.copy_from_vm(f"/tmp/{name}.pdf", "")
run(f"${lib.getExe hostPkgs.imagemagickBig} -density 300 $out/{name}.pdf $out/{name}.jpeg", shell=True, check=True)
assert text.encode() in run(f"${lib.getExe hostPkgs.tesseract} $out/{name}.jpeg stdout", shell=True, check=True, capture_output=True).stdout
'';
meta.maintainers = [ lib.maintainers.yarny ];
}
)
meta.maintainers = [ lib.maintainers.yarny ];
}
+1 -1
View File
@@ -249,7 +249,7 @@ in
with subtest("Setup Git and SSH for Alice"):
gitlab.succeed("git config --global user.name Alice")
gitlab.succeed("git config --global user.email alice@nixos.invalid")
gitlab.succeed("mkdir -m 700 /root/.ssh")
gitlab.succeed("mkdir -p -m 700 /root/.ssh")
gitlab.succeed("cat ${snakeOilPrivateKey} > /root/.ssh/id_ecdsa")
gitlab.succeed("chmod 600 /root/.ssh/id_ecdsa")
gitlab.succeed(
@@ -14,6 +14,7 @@
db48,
sqlite,
qrencode,
libsystemtap,
qtbase ? null,
qttools ? null,
python3,
@@ -60,6 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
zeromq
zlib
]
++ lib.optionals (stdenv.hostPlatform.isLinux) [ libsystemtap ]
++ lib.optionals withWallet [ sqlite ]
# building with db48 (for legacy descriptor wallet support) is broken on Darwin
++ lib.optionals (withWallet && !stdenv.hostPlatform.isDarwin) [ db48 ]
@@ -93,6 +95,10 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags =
[
(lib.cmakeBool "BUILD_BENCH" false)
(lib.cmakeBool "WITH_ZMQ" true)
# building with db48 (for legacy wallet support) is broken on Darwin
(lib.cmakeBool "WITH_BDB" (withWallet && !stdenv.hostPlatform.isDarwin))
(lib.cmakeBool "WITH_USDT" (stdenv.hostPlatform.isLinux))
]
++ lib.optionals (!finalAttrs.doCheck) [
(lib.cmakeBool "BUILD_TESTS" false)
@@ -9,12 +9,12 @@
libuv,
}:
let
version = "1.6.1";
version = "1.6.3";
src = fetchFromGitHub {
owner = "mistricky";
repo = "codesnap.nvim";
tag = "v${version}";
hash = "sha256-OmSgrTYDtNb2plMyzjVvxGrfXB/lGKDpUQhpRqKfAMA=";
hash = "sha256-VHH1jQczzNFiH+5YflhU9vVCkEUoKciV/Z/n9DEZwiY=";
};
codesnap-lib = rustPlatform.buildRustPackage {
pname = "codesnap-lib";
@@ -5500,6 +5500,23 @@ let
};
};
woberg.godot-dotnet-tools = buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "woberg";
name = "godot-dotnet-tools";
version = "0.5.1";
hash = "sha256-qZdQiW1RvzUR5+5QlVdMPBY82IOPUPs3GNOl6bOhnWM=";
};
meta = {
description = "VSCode extension for Godot 4 Mono supporting C# language";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=woberg.godot-dotnet-tools";
homepage = "https://github.com/williamoberg/godot-dotnet-tools";
license = lib.licenses.mit;
# For instructions on configuring this extension see:
# https://wiki.nixos.org/wiki/Godot-Mono
};
};
xadillax.viml = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "viml";
@@ -26,11 +26,11 @@ let
hash =
{
x86_64-linux = "sha256-yK7ORsRAWMJ8yrWROS/jSKdyCyuJ2Y+gIdZlqto+/Xo=";
x86_64-darwin = "sha256-d+8vt5grnLwD/cIIGgb2ogpgZrZLZs+2bqfBrRzLfJw=";
aarch64-linux = "sha256-D93Eh5TPRgd9OxJ4pWsOryS5mOz2amQOHOnO+K99hAg=";
aarch64-darwin = "sha256-xKBWAb23jUi8pI7mZpHOP2eF3PZFh0MWj+BM+alKF18=";
armv7l-linux = "sha256-EqJNi/qMM08voA/Ltle3/28zbgIz/Ae42IE5oXLxcKU=";
x86_64-linux = "sha256-80tLW2fzZg5DsvQJoMGSfwsL5myrv1gRq9YjPNJicJw=";
x86_64-darwin = "sha256-kADaLEaa+VHJlcYCuUOudDskgB4sEUDNQhKBjAEE5O0=";
aarch64-linux = "sha256-vDceHu5UiJCVrSKQ8CgbEIiKqzBEz16/BqPSKyiGwZs=";
aarch64-darwin = "sha256-zY+dHurXWqY23yq6ucXPtJZxX0t30KvF5C3eq/BBMkE=";
armv7l-linux = "sha256-3l+Xap9iDwXcj7AH3tJrvkbEbF4gaE5pPHrDgB+zZIk=";
}
.${system} or throwSystem;
@@ -41,7 +41,7 @@ callPackage ./generic.nix rec {
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.99.02289";
version = "1.99.22418";
pname = "vscodium";
executableName = "codium";
@@ -38,14 +38,14 @@
}:
stdenv.mkDerivation (finalAttrs: {
version = "1.7.3";
version = "1.7.5";
pname = "syncthingtray";
src = fetchFromGitHub {
owner = "Martchus";
repo = "syncthingtray";
rev = "v${finalAttrs.version}";
hash = "sha256-XmbdLaJzGjgbB4klu8soAV1m2/LjhbWbAczl/mNTMG4=";
hash = "sha256-/1X+wbVwLu0+SOMaVDJejBA+Z3szgs8IDtAZ9Yj7hXs=";
};
buildInputs =
@@ -139,6 +139,7 @@ python3.pkgs.buildPythonApplication rec {
maintainers = with lib.maintainers; [
raskin
abbradar
hlad
];
downloadPage = "http://gajim.org/download/";
platforms = lib.platforms.linux;
@@ -1,15 +1,15 @@
{
"version": "17.10.1",
"repo_hash": "1bxkfn49dih3i3z6z1l5xx5hrvrxwwr1ag66aw4vmncw4vyxl2wj",
"version": "17.10.4",
"repo_hash": "1ppfg904q1ikl21k21iyzknpd7l51zxpi144416myr5m1a6a3kza",
"yarn_hash": "0fw84hf9qswajmjhds59fn6l6xmyha6vja13dvb5slfw9cmbq9pi",
"owner": "gitlab-org",
"repo": "gitlab",
"rev": "v17.10.1-ee",
"rev": "v17.10.4-ee",
"passthru": {
"GITALY_SERVER_VERSION": "17.10.1",
"GITLAB_PAGES_VERSION": "17.10.1",
"GITALY_SERVER_VERSION": "17.10.4",
"GITLAB_PAGES_VERSION": "17.10.4",
"GITLAB_SHELL_VERSION": "14.41.0",
"GITLAB_ELASTICSEARCH_INDEXER_VERSION": "5.4.0",
"GITLAB_WORKHORSE_VERSION": "17.10.1"
"GITLAB_WORKHORSE_VERSION": "17.10.4"
}
}
@@ -10,7 +10,7 @@ in
buildGoModule rec {
pname = "gitlab-workhorse";
version = "17.10.1";
version = "17.10.4";
# nixpkgs-update: no auto update
src = fetchFromGitLab {
@@ -22,7 +22,7 @@ buildGoModule rec {
sourceRoot = "${src.name}/workhorse";
vendorHash = "sha256-b8HLad4oK5x7uzlr1SQAZt20+OhB3iswhpIQnk4VF/o=";
vendorHash = "sha256-rPTFHQ7b3l9wPURu50sur+PsxKYI4xiRs5uHNab9YUg=";
buildInputs = [ git ];
ldflags = [ "-X main.Version=${version}" ];
doCheck = false;
@@ -216,7 +216,10 @@ def update_rubyenv():
# Undo our gemset.nix patches so that bundix runs through
subprocess.check_output(
["sed", "-i", "-e", "1d", "-e", "s:\\${src}/::g", "gemset.nix"], cwd=rubyenv_dir
["sed", "-i", "-e", "s|\\${src}/||g", "gemset.nix"], cwd=rubyenv_dir
)
subprocess.check_output(
["sed", "-i", "-e", "s|^src:[[:space:]]||g", "gemset.nix"], cwd=rubyenv_dir
)
subprocess.check_output(["bundle", "lock"], cwd=rubyenv_dir)
@@ -227,7 +230,7 @@ def update_rubyenv():
"sed",
"-i",
"-e",
"1i\\src:",
"1c\\src: {",
"-e",
's:path = \\(vendor/[^;]*\\);:path = "${src}/\\1";:g',
"-e",
+1 -1
View File
@@ -6,7 +6,7 @@
echo "exporting $url (rev $rev) into $out"
$SHELL $fetcher --builder --url "$url" --out "$out" --rev "$rev" \
$SHELL $fetcher --builder --url "$url" --out "$out" --rev "$rev" --name "$name" \
${leaveDotGit:+--leave-dotGit} \
${fetchLFS:+--fetch-lfs} \
${deepClone:+--deepClone} \
+10 -2
View File
@@ -47,6 +47,7 @@ Options:
--url url Any url understood by 'git clone'.
--rev ref Any sha1 or references (such as refs/heads/master)
--hash h Expected hash.
--name n Symbolic store path name to use for the result (default: based on URL)
--branch-name Branch name to check out into
--sparse-checkout Only fetch and checkout part of the repository.
--non-cone-mode Use non-cone mode for sparse checkouts.
@@ -75,6 +76,7 @@ for arg; do
--url) argfun=set_url;;
--rev) argfun=set_rev;;
--hash) argfun=set_hashType;;
--name) argfun=set_symbolicName;;
--branch-name) argfun=set_branchName;;
--deepClone) deepClone=true;;
--sparse-checkout) argfun=set_sparseCheckout;;
@@ -424,6 +426,12 @@ if test -z "$branchName"; then
branchName=fetchgit
fi
if [ -v symbolicName ]; then
storePathName="$symbolicName"
else
storePathName="$(url_to_name "$url" "$rev")"
fi
tmpHomePath="$(mktemp -d "${TMPDIR:-/tmp}/nix-prefetch-git-tmp-home-XXXXXXXXXX")"
exit_handlers+=(remove_tmpHomePath)
ln -s "${NETRC:-$HOME/.netrc}" "$tmpHomePath/.netrc"
@@ -443,7 +451,7 @@ else
# If the hash was given, a file with that hash may already be in the
# store.
if test -n "$expHash"; then
finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" "$(url_to_name "$url" "$rev")")
finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" "$storePathName")
if ! nix-store --check-validity "$finalPath" 2> /dev/null; then
finalPath=
fi
@@ -458,7 +466,7 @@ else
tmpPath="$(realpath "$(mktemp -d --tmpdir git-checkout-tmp-XXXXXXXX)")"
exit_handlers+=(remove_tmpPath)
tmpFile="$tmpPath/$(url_to_name "$url" "$rev")"
tmpFile="$tmpPath/$storePathName"
mkdir -p "$tmpFile"
# Perform the checkout.
+18 -9
View File
@@ -2,33 +2,42 @@
lib,
fetchFromGitHub,
buildGoModule,
versionCheckHook,
nix-update-script,
}:
buildGoModule rec {
buildGoModule (finalAttrs: {
pname = "ahoy";
version = "2.2.0";
version = "2.4.0";
src = fetchFromGitHub {
owner = "ahoy-cli";
repo = "ahoy";
tag = "v${version}";
hash = "sha256-xwjfY9HudxVz3xEEyRPtWysbojtan56ABBL3KgG0J/8=";
tag = "v${finalAttrs.version}";
hash = "sha256-wYsPutdO9ZkXQu4mrFV56mrJTeSFF/3oRaHO0ia7DHk=";
};
sourceRoot = "${finalAttrs.src.name}/v2";
# vendor folder exists
vendorHash = null;
passthru = {
updateScript = nix-update-script { };
};
ldflags = [ "-X main.version=${finalAttrs.version}" ];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = {
description = "Create self-documenting cli programs from YAML files";
homepage = "https://github.com/ahoy-cli/ahoy";
changelog = "https://github.com/ahoy-cli/ahoy/releases/tag/v${version}";
changelog = "https://github.com/ahoy-cli/ahoy/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ genga898 ];
mainProgram = "ahoy";
};
}
})
+2 -2
View File
@@ -35,11 +35,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "calibre";
version = "8.1.1";
version = "8.2.100";
src = fetchurl {
url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
hash = "sha256-lz+QlrajIjA2uvo6Iomejk9Y+djDjUNPAd5BZT3Dz5Y=";
hash = "sha256-lUHnaorIUwoac1YgYimxF8KTJOPSUiJg5BKC+hFy0lc=";
};
patches = [
+22 -2
View File
@@ -14,7 +14,9 @@
git,
glib,
glib-networking,
gnused,
gnutls,
iproute2,
json-glib,
krb5,
libssh,
@@ -33,6 +35,7 @@
systemd,
udev,
xmlto,
which,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -63,6 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
python3Packages.setuptools
systemd
xmlto
which
];
buildInputs = [
@@ -93,6 +97,9 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace src/common/cockpitconf.c \
--replace-fail 'const char *cockpit_config_dirs[] = { PACKAGE_SYSCONF_DIR' 'const char *cockpit_config_dirs[] = { "/etc"'
substituteInPlace src/**/*.c \
--replace '"/bin/sh"' "\"$(which sh)\""
# instruct users with problems to create a nixpkgs issue instead of nagging upstream directly
substituteInPlace configure.ac \
--replace-fail 'devel@lists.cockpit-project.org' 'https://github.com/NixOS/nixpkgs/issues/new?assignees=&labels=0.kind%3A+bug&template=bug_report.md&title=cockpit%25'
@@ -165,8 +172,21 @@ stdenv.mkDerivation (finalAttrs: {
} \
--run 'cd $(mktemp -d)'
wrapProgram $out/bin/cockpit-bridge \
--prefix PYTHONPATH : $out/${python3Packages.python.sitePackages}
for binary in $out/bin/cockpit-bridge $out/libexec/cockpit-askpass; do
chmod +x $binary
wrapProgram $binary \
--prefix PYTHONPATH : $out/${python3Packages.python.sitePackages}
done
patchShebangs $out/share/cockpit/issue/update-issue
wrapProgram $out/share/cockpit/issue/update-issue \
--prefix PATH : ${
lib.makeBinPath [
iproute2
gnused
]
}
substituteInPlace $out/${python3Packages.python.sitePackages}/cockpit/_vendor/systemd_ctypes/libsystemd.py \
--replace-warn libsystemd.so.0 ${systemd}/lib/libsystemd.so.0
+5 -4
View File
@@ -21,7 +21,8 @@ stdenv.mkDerivation {
buildInputs = [ cups ];
postPatch = ''
sed -r 's|(gscall, size, ")cp |\1${coreutils}/bin/cp |' cups-pdf.c -i
substituteInPlace cups-pdf.c \
--replace-fail '"cp ' '"${lib.getExe' coreutils "cp"} '
'';
# gcc command line is taken from original cups-pdf's README file
@@ -44,11 +45,11 @@ stdenv.mkDerivation {
passthru.tests.vmtest = nixosTests.cups-pdf;
meta = with lib; {
meta = {
description = "CUPS backend that turns print jobs into searchable PDF files";
homepage = "https://github.com/alexivkin/CUPS-PDF-to-PDF";
license = licenses.gpl2Only;
maintainers = [ maintainers.yarny ];
license = lib.licenses.gpl2Only;
maintainers = [ lib.maintainers.yarny ];
longDescription = ''
cups-pdf is a CUPS backend that generates a PDF file for each print job and puts this file
into a folder on the local machine such that the print job's owner can access the file.
+2 -2
View File
@@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "dsda-doom";
version = "0.28.3";
version = "0.29.0";
src = fetchFromGitHub {
owner = "kraflab";
repo = "dsda-doom";
rev = "v${version}";
hash = "sha256-66o/k5DvyKxwa0sZPCfSycVRxEhrRhUJXJVz2p817OE=";
hash = "sha256-mcg3GAQ90Qg7d1+/ci/XlTTF2q0tB6j+pp+Fb1Mpcao=";
};
sourceRoot = "${src.name}/prboom2";
+2 -2
View File
@@ -7,13 +7,13 @@
buildGoModule rec {
pname = "fabric-ai";
version = "1.4.167";
version = "1.4.171";
src = fetchFromGitHub {
owner = "danielmiessler";
repo = "fabric";
tag = "v${version}";
hash = "sha256-M6YL111YQahrFLaZt+b3EooziCTDpZnO5hGBj1XBVxY=";
hash = "sha256-NHsgsK7h+PeunGKAgkIOmINPJugkx7nuNvAU4jwsrAI=";
};
vendorHash = "sha256-ax0ZLvLfbmpzO93xRqonHJz1zHs6u0+Mu0WegR1eW60=";
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule rec {
pname = "gh";
version = "2.69.0";
version = "2.70.0";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
tag = "v${version}";
hash = "sha256-T5H84RH5uBXXNCiyd27ZjDu4g5UBK4yUjZWQAFp3cH0=";
hash = "sha256-FMv/W7Q9IZw0Pxj37Y/npLXHiF9s2tKqbNc9pmKrhcQ=";
};
vendorHash = "sha256-BJK8XzCdbbyzj1rEJtnE6hKOy7Q9xSrkicBPzxz9gkw=";
vendorHash = "sha256-q0JkYiOiAUDrdEzcrclnzU9WrxGTJxNn9nkihPvAqXo=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -7,7 +7,7 @@
}:
let
version = "17.10.1";
version = "17.10.4";
package_version = "v${lib.versions.major version}";
gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
@@ -21,7 +21,7 @@ let
owner = "gitlab-org";
repo = "gitaly";
rev = "v${version}";
hash = "sha256-uyXxNuHQUlXCNQcrEIoaJXpatfM5fcIk5MCNYt8QW9A=";
hash = "sha256-NUTo5JVolc4WUinyCn4BKDqJPn3KWXOnBs6MRj7178o=";
};
vendorHash = "sha256-umtSuLQiohSarzZDU7tHEYI6t8B7MlkaDu8//fnr1Ms=";
+2 -2
View File
@@ -6,14 +6,14 @@
buildGoModule rec {
pname = "gitlab-pages";
version = "17.10.1";
version = "17.10.4";
# nixpkgs-update: no auto update
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitlab-pages";
rev = "v${version}";
hash = "sha256-B/v0jj5hoNmF9cygvi9eLQ4pLuZ1+wIyNnJN2uCAXdE=";
hash = "sha256-kvmM8cWAAlDT+FJBVUiZD9h/qT6iAaz+gOncvyCsvtY=";
};
vendorHash = "sha256-o2DgP2YP2aejtuQ4NC90kysvwDy0XvSb4CW5oE2x2qQ=";
@@ -29,11 +29,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gnome-network-displays";
version = "0.94.0";
version = "0.96.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-network-displays/${lib.versions.majorMinor finalAttrs.version}/gnome-network-displays-${finalAttrs.version}.tar.xz";
sha256 = "sha256-FzNaA2Our7gb8FgEmYjRtphGVcQt3pw+wQNyLHtKI4M=";
sha256 = "sha256-PB5EsTJHEO3l+4uxBZjYX5c0ySPiaM3CSHYFY97qpJc=";
};
nativeBuildInputs = [
+13 -3
View File
@@ -4,16 +4,17 @@
fetchFromGitHub,
lazygit,
testers,
nix-update-script,
}:
buildGoModule rec {
pname = "lazygit";
version = "0.48.0";
version = "0.49.0";
src = fetchFromGitHub {
owner = "jesseduffield";
repo = pname;
tag = "v${version}";
hash = "sha256-L3OcCkoSJZ6skzcjP2E3BrQ39cXyxcuHGthj8RHIGeQ=";
hash = "sha256-hNEznDz+DHalKgmz1fXFivf9T1YJ/jfwcD4baTUO4Cw=";
};
vendorHash = null;
@@ -24,7 +25,16 @@ buildGoModule rec {
"-X main.buildSource=nix"
];
passthru.tests.version = testers.testVersion { package = lazygit; };
passthru = {
tests.version = testers.testVersion { package = lazygit; };
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^v([0-9.]+)$"
];
};
};
meta = {
description = "Simple terminal UI for git commands";
+3 -3
View File
@@ -24,14 +24,14 @@
let
pname = "libvmi";
version = "0.14.0-unstable-2025-02-27";
version = "0.14.0-unstable-2025-04-09";
libVersion = "0.0.15";
src = fetchFromGitHub {
owner = "libvmi";
repo = "libvmi";
rev = "f02aeb751fd27bd4ae753dcd5904a4ef3232821e";
hash = "sha256-h5kevP8B1iKJBZMaEaxkrAIgnUy7yOCnN3G3oYf/eNo=";
rev = "872ccc6efac607b83b603fef691c3641656fed34";
hash = "sha256-8rqcDU4y86Uq6I7LOOMhMYWLEt7TxvzHilddUoutMOw=";
};
in
+2 -2
View File
@@ -7,14 +7,14 @@
python3Packages.buildPythonApplication rec {
pname = "phase-cli";
version = "1.19.0";
version = "1.19.1";
pyproject = true;
src = fetchFromGitHub {
owner = "phasehq";
repo = "cli";
tag = "v${version}";
hash = "sha256-E5vSF8/DLUH2zfGwbQ3XqELTSP4XR3cqfcMM8hMaOf4=";
hash = "sha256-2FVnOQ6A7PopqE9KRlZP1QhGP6Ia5kGPDvguOI45aPI=";
};
build-system = with python3Packages; [
+3 -3
View File
@@ -14,17 +14,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "pixi";
version = "0.44.0";
version = "0.45.0";
src = fetchFromGitHub {
owner = "prefix-dev";
repo = "pixi";
tag = "v${finalAttrs.version}";
hash = "sha256-IHI4T2QKCvnyn6RgtJ9ZIF6mcUXUAguk05kfWURO+ds=";
hash = "sha256-nOSwGR0V6dOaF5pCmYch6EJN87XCs0atSaWshH6Pwqs=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-TB3gOeYPLIyUWPhyAGM9rhFOZXWEUHn6mXoyL9D8hxc=";
cargoHash = "sha256-vSyo7j+HCWUgXxPAxOGiOGQQwVhHOWJhGyM92KDIeC4=";
nativeBuildInputs = [
pkg-config
+88
View File
@@ -0,0 +1,88 @@
{
lib,
fetchFromGitHub,
rustPlatform,
cargo-tauri,
nodejs,
npmHooks,
fetchNpmDeps,
pkg-config,
wrapGAppsHook3,
openssl,
libsoup_2_4,
webkitgtk_4_1,
glib-networking,
libappindicator,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rclone-ui";
version = "1.0.4";
src = fetchFromGitHub {
owner = "rclone-ui";
repo = "rclone-ui";
tag = "v${finalAttrs.version}";
hash = "sha256-KTi/vCHiZVRAmQAiVXSWHCTTv1NnsvM5UZg8cpuFbRQ=";
};
npmDeps = fetchNpmDeps {
name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps";
inherit (finalAttrs) src;
forceGitDeps = true;
hash = "sha256-18QkqqYS1kGY701FbFBHLvr5WBkJzxFgR9VMnydeelY=";
};
cargoRoot = "src-tauri";
buildAndTestSubdir = finalAttrs.cargoRoot;
useFetchCargoVendor = true;
cargoHash = "sha256-o21of2eS2KZtg1U1E6RwdaA8jGhEVzg7HkgOv1k5wxI=";
# Disable tauri bundle updater, can be removed when #389107 is merged
patches = [ ./remove_updater.patch ];
postPatch = ''
substituteInPlace src-tauri/Cargo.toml \
--replace-fail 'name = "app"' 'name = "${finalAttrs.pname}"'
'';
nativeBuildInputs = [
npmHooks.npmConfigHook
nodejs
cargo-tauri.hook
pkg-config
wrapGAppsHook3
];
buildInputs = [
openssl
libsoup_2_4
webkitgtk_4_1
glib-networking
libappindicator
];
dontWrapGApps = true;
postInstall = ''
wrapProgram $out/bin/rclone-ui \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libappindicator ]}
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Cross-platform desktop GUI for rclone & S3";
homepage = "https://github.com/rclone-ui/rclone-ui";
changelog = "https://github.com/rclone-ui/rclone-ui/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ genga898 ];
mainProgram = "rclone-ui";
};
})
@@ -0,0 +1,32 @@
diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs
index 001faa3..2d7ae0c 100644
--- a/src-tauri/src/lib.rs
+++ b/src-tauri/src/lib.rs
@@ -82,7 +82,6 @@ pub fn run() {
let _guard = minidump::init(&client);
let mut app = tauri::Builder::default()
- .plugin(tauri_plugin_updater::Builder::new().build())
.plugin(tauri_plugin_os::init())
.plugin(tauri_plugin_notification::init())
.plugin(tauri_plugin_process::init())
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index 4f9df22..58d6c06 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -86,14 +86,9 @@
"installMode": "both"
},
"signCommand": "trusted-signing-cli %1 -e https://eus.codesigning.azure.net -a sign-1 -c Sign1"
- },
- "createUpdaterArtifacts": true
+ }
},
"plugins": {
- "updater": {
- "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDIyNDFENEZGNjFDNTBGOEYKUldTUEQ4VmgvOVJCSWhVZmw0enhmcW1kWFk3TS9mMzBDRjVEZWdxKzQ5ZmRhTlYvT2gvdFNMbE8K",
- "endpoints": ["https://github.com/FTCHD/rclone-ui/releases/latest/download/latest.json"]
- },
"fs": {
"requireLiteralLeadingDot": false
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,19 @@
diff --git a/frontend/postcss.config.cjs b/frontend/postcss.config.cjs
index b315cbc..06e5627 100644
--- a/frontend/postcss.config.cjs
+++ b/frontend/postcss.config.cjs
@@ -1,4 +1,3 @@
-const importUrl = require('postcss-import-url');
const postcssPresetEnv = require('postcss-preset-env');
const tailwindCSS = require('tailwindcss');
const tailwindCSSNesting = require('tailwindcss/nesting');
@@ -12,9 +11,6 @@ module.exports = {
},
}),
- importUrl({
- modernBrowser: true,
- }),
tailwindCSSNesting(),
tailwindCSS(),
],
@@ -0,0 +1,93 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
nodejs,
pnpm_8,
wails,
wrapGAppsHook3,
glib-networking,
}:
buildGoModule rec {
pname = "satisfactorymodmanager";
version = "3.0.3";
src = fetchFromGitHub {
owner = "satisfactorymodding";
repo = "SatisfactoryModManager";
tag = "v${version}";
hash = "sha256-ndvrgSRblm7pVwnGvxpwtGVMEGp+mqpC4kE87lmt36M=";
};
patches = [
# disable postcss-import-url
./dont-vendor-remote-fonts.patch
# populates the lib/generated directory
./add-generated-files.patch
];
postPatch = ''
# don't generate i18n and graphql code
substituteInPlace frontend/package.json \
--replace-fail '"postinstall":' '"_postinstall":'
'';
nativeBuildInputs = [
nodejs
pnpm_8.configHook
wails
wrapGAppsHook3
];
buildInputs = [
glib-networking
];
# we use env because buildGoModule doesn't forward all normal attrs
# this is pretty hacky
env = {
pnpmDeps = pnpm_8.fetchDeps {
inherit pname version src;
sourceRoot = "${src.name}/frontend";
hash = "sha256-OP+3zsNlvqLFwvm2cnBd2bj2Kc3EghQZE3hpotoqqrQ=";
};
pnpmRoot = "frontend";
};
# running this caches some additional dependencies for the FOD
overrideModAttrs = {
preBuild = ''
wails build
'';
};
proxyVendor = true;
vendorHash = "sha256-3nsJPuwL2Zw/yuHvd8rMSpj9DBBpYUaR19z9TSV/7jg=";
buildPhase = ''
runHook preBuild
wails build
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm755 build/bin/SatisfactoryModManager -t "$out/bin"
runHook postInstall
'';
meta = {
broken = stdenv.hostPlatform.isDarwin;
description = "Mod manager and modloader for Satisfactory";
homepage = "https://github.com/satisfactorymodding/SatisfactoryModManager";
license = lib.licenses.gpl3Only;
mainProgram = "SatisfactoryModManager";
maintainers = with lib.maintainers; [ tomasajt ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
}
+3 -3
View File
@@ -16,17 +16,17 @@
maven.buildMavenPackage rec {
pname = "sonarlint-ls";
version = "3.18.0.75982";
version = "3.20.0.76057";
src = fetchFromGitHub {
owner = "SonarSource";
repo = "sonarlint-language-server";
rev = version;
hash = "sha256-/SpooLAJutBJ/FakSUyXMtPLy3TaPxCU8KEMnnzgdBs=";
hash = "sha256-O02KxAIOKhHBkxjLSsc2Pw7VkR0IsyA/kpCu4f1urTE=";
};
mvnJdk = jdk17;
mvnHash = "sha256-IMM3xXWTnYzD3415tMjuwiQD2NMGM2XkuxdMYpsaqfA=";
mvnHash = "sha256-yFzT0v7u23b/r8Pe+wuSXlwc4rN5DJ9ezmtlcWVMj7k=";
# Disables failing tests which either need network access or are flaky.
mvnParameters = lib.escapeShellArgs [
+10 -2
View File
@@ -5,17 +5,25 @@
stdenv,
testers,
yarn,
berryVersion ? 4,
}:
let
version_4 = "4.8.1";
version_3 = "3.8.7";
hash_4 = "sha256-JRQVUO5KsaGMmoC99cloW+hbFjgaFLNT3tqA29TVu34=";
hash_3 = "sha256-vRrk+Fs/7dZha3h7yI5NpMfd1xezesnigpFgTRCACZo=";
in
stdenv.mkDerivation (finalAttrs: {
pname = "yarn-berry";
version = "4.8.1";
version = if berryVersion == 4 then version_4 else version_3;
src = fetchFromGitHub {
owner = "yarnpkg";
repo = "berry";
tag = "@yarnpkg/cli/${finalAttrs.version}";
hash = "sha256-JRQVUO5KsaGMmoC99cloW+hbFjgaFLNT3tqA29TVu34=";
hash = if berryVersion == 4 then hash_4 else hash_3;
};
buildInputs = [
+3 -1
View File
@@ -17,5 +17,7 @@ EOF
)
version=$(jq -r "[.data.repository.tag.nodes[].name | select(contains(\"-\")|not)] | max_by(split(\".\") | map(tonumber))" <<< "$payload")
version3=$(jq -r "[.data.repository.tag.nodes[].name | select(contains(\"-\")|not)] | map(select(. < \"4.0.0\")) | sort | last" <<< "$payload")
update-source-version yarn-berry "$version"
update-source-version yarn-berry4 "$version" --version-key="version_4"
update-source-version yarn-berry3 "$version3" --version-key="version_3"
@@ -441,8 +441,8 @@ in
};
ruby_3_4 = generic {
version = rubyVersion "3" "4" "2" "";
hash = "sha256-QTKKwh8r/dfeazVl708N11QzVNN+lvFXoVUqa9DrNks=";
version = rubyVersion "3" "4" "3" "";
hash = "sha256-VaTNHcvlyifPZeiak1pILCuyKEgyk5JmVRwOxotDf0Y=";
cargoHash = "sha256-5Tp8Kth0yO89/LIcU8K01z6DdZRr8MAA0DPKqDEjIt0=";
};
}
+14 -4
View File
@@ -4,6 +4,7 @@
cmake,
enet,
fetchFromGitHub,
fixDarwinDylibNames,
flac,
freetype,
gtk3,
@@ -49,10 +50,14 @@ stdenv.mkDerivation rec {
sha256 = "sha256-agE3K+6VhhG/LO52fiesCsOq1fNYVRhdW7aKdPCbTOo=";
};
nativeBuildInputs = [
cmake
pkg-config
];
nativeBuildInputs =
[
cmake
pkg-config
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
fixDarwinDylibNames
];
buildInputs =
[
@@ -100,6 +105,11 @@ stdenv.mkDerivation rec {
cmakeFlags = [ "-DCMAKE_SKIP_RPATH=ON" ];
outputs = [
"out"
"dev"
];
meta = with lib; {
description = "Game programming library";
homepage = "https://liballeg.org/";
@@ -29,6 +29,11 @@ buildPythonPackage rec {
nativeBuildInputs = [ poetry-core ];
postPatch = ''
substituteInPlace bbox/metrics.py \
--replace-warn round_ round
'';
propagatedBuildInputs = [
pyquaternion
numpy
@@ -46,12 +51,14 @@ buildPythonPackage rec {
"test_multi_jaccard_index_2d_performance"
];
pythonRelaxDeps = [ "numpy" ];
pythonImportsCheck = [ "bbox" ];
meta = with lib; {
meta = {
description = "Python library for 2D/3D bounding boxes";
homepage = "https://github.com/varunagrawal/bbox";
license = licenses.mit;
maintainers = with maintainers; [ lucasew ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ lucasew ];
};
}
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "netbox-documents";
version = "0.7.1";
version = "0.7.2";
pyproject = true;
src = fetchFromGitHub {
owner = "jasonyates";
repo = "netbox-documents";
tag = "v${version}";
hash = "sha256-DfkY/VX2hQR0JZ08IiwWxgZ1owyuX4ytB6bmEyzlx0c=";
hash = "sha256-AJuWzZSVsodShLIfdlhLN8ycnC28DULcINCD3av35jI=";
};
build-system = [ setuptools ];
@@ -17,14 +17,14 @@
buildPythonPackage rec {
pname = "recurring-ical-events";
version = "3.6.0";
version = "3.6.1";
pyproject = true;
src = fetchFromGitHub {
owner = "niccokunzmann";
repo = "python-recurring-ical-events";
tag = "v${version}";
hash = "sha256-wfp/ubFZv54z2d44hvG56xcCjGedYqW/zeNvaoPPJYE=";
hash = "sha256-DrrWRzMauKDnX7iyD/Q6BnLSLawekxc1f5HxjQH/Lds=";
};
postPatch = ''
@@ -2,15 +2,15 @@ GEM
remote: https://rubygems.org/
specs:
arr-pm (0.0.12)
backports (3.24.1)
backports (3.25.1)
cabin (0.9.0)
clamp (1.0.1)
dotenv (2.8.1)
fpm (1.15.1)
clamp (1.3.2)
dotenv (3.1.7)
fpm (1.16.0)
arr-pm (~> 0.0.11)
backports (>= 2.6.2)
cabin (>= 0.6.0)
clamp (~> 1.0.0)
clamp (>= 1.0.0)
pleaserun (~> 0.0.29)
rexml
stud
@@ -23,7 +23,7 @@ GEM
insist
mustache (= 0.99.8)
stud
rexml (3.2.6)
rexml (3.4.1)
stud (0.0.23)
PLATFORMS
@@ -33,4 +33,4 @@ DEPENDENCIES
fpm
BUNDLED WITH
2.5.3
2.6.2
+10 -10
View File
@@ -14,10 +14,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1f3zcy0q88rw3clk0r7bai7sp4r253lndf0qmdgczq1ykbm219w3";
sha256 = "1n2awv56zgizrzvjn2snv98dpnwx78pfs090y4ycdfadnjfvr7s3";
type = "gem";
};
version = "3.24.1";
version = "3.25.1";
};
cabin = {
groups = [ "default" ];
@@ -34,20 +34,20 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0jb6l4scp69xifhicb5sffdixqkw8wgkk9k2q57kh2y36x1px9az";
sha256 = "08m0syh06bhx8dqn560ivjg96l5cs5s3l9jh2szsnlcdcyl9jsjg";
type = "gem";
};
version = "1.0.1";
version = "1.3.2";
};
dotenv = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1n0pi8x8ql5h1mijvm8lgn6bhq4xjb5a500p5r1krq4s6j9lg565";
sha256 = "1wrw6fm0s38cd6h55w79bkvjhcj2zfkargjpws4kilkmhr3xyw66";
type = "gem";
};
version = "2.8.1";
version = "3.1.7";
};
fpm = {
dependencies = [
@@ -63,10 +63,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1grd0lb0mw1jvw6l8zqgh49m9gg2jxn98rifq2spzacwm11g7yqz";
sha256 = "1pxmglms9cz11dn72zz31hq2s2ndjkhj3qzjiqxrvpzv7ihzxsnr";
type = "gem";
};
version = "1.15.1";
version = "1.16.0";
};
insist = {
groups = [ "default" ];
@@ -111,10 +111,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
sha256 = "1jmbf6lf7pcyacpb939xjjpn1f84c3nw83dy3p1lwjx0l2ljfif7";
type = "gem";
};
version = "3.2.6";
version = "3.4.1";
};
stud = {
groups = [ "default" ];
+3
View File
@@ -5699,6 +5699,9 @@ with pkgs;
yapf = with python3Packages; toPythonApplication yapf;
yarn-berry_4 = yarn-berry.override { berryVersion = 4; };
yarn-berry_3 = yarn-berry.override { berryVersion = 3; };
yarn2nix-moretea = callPackage ../development/tools/yarn2nix-moretea {
pkgs = pkgs.__splicedPackages;
};