Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-12-22 08:22:23 +00:00
committed by GitHub
140 changed files with 2635 additions and 5724 deletions
+2
View File
@@ -28,6 +28,7 @@
- any-glob-to-any-file:
- .github/actions/*
- .github/workflows/*
- .github/labeler*.yml
- ci/**/*.*
- maintainers/github-teams.json
- base-branch: ['master']
@@ -38,6 +39,7 @@
- any-glob-to-any-file:
- .github/actions/*
- .github/workflows/*
- .github/labeler*.yml
- ci/**/*.*
- maintainers/github-teams.json
- base-branch: ['master']
+2
View File
@@ -24,6 +24,8 @@
- `iroh` has been removed and split up into `iroh-dns-server` and `iroh-relay`.
- `python3Packages.gradio` has been updated to version 6. See upstream's migration guide at https://www.gradio.app/main/guides/gradio-6-migration-guide.
- All Log4Shell vulnerability scanners were removed, as they were all unmaintained upstream and are no longer relevant given that the vulnerability has been fixed upstream for several years.
- `asio` (standalone version of `boost::asio`) has been updated from 1.24.0 to 1.36.0. Some breaking changes were introduced between these
+8 -1
View File
@@ -1599,6 +1599,13 @@
githubId = 754494;
name = "Anders Asheim Hennum";
};
anderscs = {
email = "anders@sorby.xyz";
github = "anderssorby";
githubId = 6331075;
matrix = "@anders:sorby.xyz";
name = "Anders C. Sørby";
};
andershus = {
email = "anders.husebo@eviny.no";
github = "andershus";
@@ -10198,7 +10205,7 @@
};
HarisDotParis = {
name = "Haris";
email = "nix.dev@haris.paris";
email = "git@haris.paris";
matrix = "@haris:haris.paris";
github = "HarisDotParis";
githubId = 67912527;
-6
View File
@@ -908,12 +908,6 @@ with lib.maintainers;
shortName = "Serokell employees";
};
sphinx = {
members = [ ];
scope = "Maintain Sphinx related packages.";
shortName = "Sphinx";
};
stdenv = {
enableFeatureFreezePing = true;
github = "stdenv";
@@ -36,6 +36,8 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- `services.crabfit` was removed because its upstream packages are unmaintained and insecure.
- `services.kubernetes.addons.dns.coredns` has been renamed to `services.kubernetes.addons.dns.corednsImage` and now expects a
package instead of attrs. Now, by default, nixpkgs.coredns in conjunction with dockerTools.buildImage is used, instead
of pulling the upstream container image from Docker Hub. If you want the old behavior, you can set:
-1
View File
@@ -1589,7 +1589,6 @@
./services/web-apps/commafeed.nix
./services/web-apps/convos.nix
./services/web-apps/cook-cli.nix
./services/web-apps/crabfit.nix
./services/web-apps/cryptpad.nix
./services/web-apps/dashy.nix
./services/web-apps/davis.nix
+3 -4
View File
@@ -7,7 +7,6 @@
let
inherit (lib.options) mkEnableOption mkPackageOption;
inherit (lib.modules) mkIf;
inherit (lib.meta) getExe;
cfg = config.programs.television;
in
@@ -26,13 +25,13 @@ in
programs = {
zsh.interactiveShellInit = mkIf cfg.enableZshIntegration ''
eval "$(${getExe cfg.package} init zsh)"
source ${cfg.package}/share/television/completion.zsh
'';
bash.interactiveShellInit = mkIf cfg.enableBashIntegration ''
eval "$(${getExe cfg.package} init bash)"
source ${cfg.package}/share/television/completion.bash
'';
fish.interactiveShellInit = mkIf cfg.enableFishIntegration ''
${getExe cfg.package} init fish | source
source ${cfg.package}/share/television/completion.fish
'';
};
+3
View File
@@ -151,6 +151,9 @@ in
"services"
"couchpotato"
] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "crabfit" ]
"The corresponding packages were removed from nixpkgs because they are unmaintained upstream and insecure."
)
(mkRemovedOptionModule [ "services" "crowd" ]
"Atlassian software has been removed, as support for the Atlassian Server products ended in February 2024 and there was insufficient interest in maintaining the Atlassian Data Center replacements"
)
@@ -45,7 +45,6 @@ let
xauth_cmd = lib.optionalString xcfg.enable "${pkgs.xorg.xauth}/bin/xauth";
x_cmd = lib.optionalString xcfg.enable xserverWrapper;
setup_cmd = dmcfg.sessionData.wrapper;
session_log = ".local/state/ly-session.log";
};
finalConfig = defaultConfig // cfg.settings;
-173
View File
@@ -1,173 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
inherit (lib)
literalExpression
mkEnableOption
mkIf
mkOption
mkPackageOption
;
inherit (lib.types)
attrsOf
package
port
str
;
cfg = config.services.crabfit;
in
{
options.services.crabfit = {
enable = mkEnableOption "Crab Fit, a meeting scheduler based on peoples' availability";
frontend = {
package = mkPackageOption pkgs "crabfit-frontend" { };
finalDrv = mkOption {
readOnly = true;
type = package;
default = cfg.frontend.package.override {
api_url = "https://${cfg.api.host}";
frontend_url = cfg.frontend.host;
};
defaultText = literalExpression ''
cfg.package.override {
api_url = "https://''${cfg.api.host}";
frontend_url = cfg.frontend.host;
};
'';
description = ''
The patched frontend, using the correct urls for the API and frontend.
'';
};
environment = mkOption {
type = attrsOf str;
default = { };
description = ''
Environment variables for the crabfit frontend.
'';
};
host = mkOption {
type = str;
description = ''
The hostname of the frontend.
'';
};
port = mkOption {
type = port;
default = 3001;
description = ''
The internal listening port of the frontend.
'';
};
};
api = {
package = mkPackageOption pkgs "crabfit-api" { };
environment = mkOption {
type = attrsOf str;
default = { };
description = ''
Environment variables for the crabfit API.
'';
};
host = mkOption {
type = str;
description = ''
The hostname of the API.
'';
};
port = mkOption {
type = port;
default = 3000;
description = ''
The internal listening port of the API.
'';
};
};
};
config = mkIf cfg.enable {
systemd.services = {
crabfit-api = {
description = "The API for Crab Fit.";
wantedBy = [ "multi-user.target" ];
after = [ "postgresql.target" ];
serviceConfig = {
# TODO: harden
ExecStart = lib.getExe cfg.api.package;
User = "crabfit";
};
environment = {
API_LISTEN = "127.0.0.1:${builtins.toString cfg.api.port}";
DATABASE_URL = "postgres:///crabfit?host=/run/postgresql";
FRONTEND_URL = "https://${cfg.frontend.host}";
}
// cfg.api.environment;
};
crabfit-frontend = {
description = "The frontend for Crab Fit.";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
# TODO: harden
CacheDirectory = "crabfit";
DynamicUser = true;
ExecStart = "${lib.getExe pkgs.nodejs} standalone/server.js";
WorkingDirectory = cfg.frontend.finalDrv;
};
environment = {
NEXT_PUBLIC_API_URL = "https://${cfg.api.host}";
PORT = builtins.toString cfg.frontend.port;
}
// cfg.frontend.environment;
};
};
users = {
groups.crabfit = { };
users.crabfit = {
group = "crabfit";
isSystemUser = true;
};
};
services = {
postgresql = {
enable = true;
ensureDatabases = [ "crabfit" ];
ensureUsers = [
{
name = "crabfit";
ensureDBOwnership = true;
}
];
};
};
};
}
@@ -135,10 +135,10 @@ in
];
LoadCredential = [
(lib.optionalString (cfg.passwordFile != null) "PHOTOPRISM_ADMIN_PASSWORD_FILE=${cfg.passwordFile}")
(lib.optionalString (cfg.passwordFile != null) "PHOTOPRISM_ADMIN_PASSWORD_FILE:${cfg.passwordFile}")
(lib.optionalString (
cfg.databasePasswordFile != null
) "PHOTOPRISM_DATABASE_PASSWORD=${cfg.databasePasswordFile}")
) "PHOTOPRISM_DATABASE_PASSWORD:${cfg.databasePasswordFile}")
];
LockPersonality = true;
-1
View File
@@ -433,7 +433,6 @@ in
};
coturn = runTest ./coturn.nix;
couchdb = runTest ./couchdb.nix;
crabfit = runTest ./crabfit.nix;
cri-o = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./cri-o.nix;
croc = runTest ./croc.nix;
cross-seed = runTest ./cross-seed.nix;
-31
View File
@@ -1,31 +0,0 @@
{ lib, pkgs, ... }:
{
name = "crabfit";
meta.maintainers = [ ];
nodes = {
machine =
{ pkgs, ... }:
{
services.crabfit = {
enable = true;
frontend.host = "http://127.0.0.1:3001";
api.host = "127.0.0.1:3000";
};
};
};
# TODO: Add a reverse proxy and a dns entry for testing
testScript = ''
machine.wait_for_unit("crabfit-api")
machine.wait_for_unit("crabfit-frontend")
machine.wait_for_open_port(3000)
machine.wait_for_open_port(3001)
machine.succeed("curl -f http://localhost:3001/")
'';
}
+3 -2
View File
@@ -44,14 +44,14 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "guitarix";
version = "0.46.0";
version = "0.47.0";
src = fetchFromGitHub {
owner = "brummer10";
repo = "guitarix";
rev = "V${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-AftC6fQEDzG/3C/83YbK/++bRgP7vPD0E2X6KEWpowc=";
hash = "sha256-YQqcpdehfC9UE1OowC1/YUw2eWgbLWMbAJ3V5tVmtiU=";
};
sourceRoot = "${finalAttrs.src.name}/trunk";
@@ -135,6 +135,7 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
lord-valen
anderscs
];
platforms = lib.platforms.linux;
};
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-augment";
publisher = "augment";
version = "0.654.2";
hash = "sha256-Cfap8JB0krj1DpF6hoQamnbugdvjybWtO85vuxB7lcw=";
version = "0.654.3";
hash = "sha256-Vfa+U3BhnfbwKN7cgKGTk+8mO+c7HI3cPZ3Vyna7bb0=";
};
meta = {
@@ -3596,8 +3596,8 @@ let
mktplcRef = {
name = "dark-molokai-theme";
publisher = "nonylene";
version = "1.0.8";
hash = "sha256-GQNv3QWzb0xSnaR8GOnAOZF/wOg0LaWHN3goIYq7JmI=";
version = "1.0.10";
hash = "sha256-YBYlcf6TUPEQvmhL7mYfN59itKQvtWt9003/Bup15eg=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/nonylene.dark-molokai-theme/changelog";
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "google";
name = "colab";
version = "0.1.3";
hash = "sha256-aK2Bfis9eTyNTaFldnjV9P0TK/G0gRBFRp9QvlajS5Y=";
version = "0.1.4";
hash = "sha256-15n8e7KHMHU16oScivd6aY8v5vnzlH+4ME9Z6qt3AHw=";
};
meta = {
@@ -200,13 +200,13 @@
"vendorHash": "sha256-LGxG7KEv11ppc6ptOsEY78y+iW0DcQpAhyGcXjhuTR0="
},
"cloudflare_cloudflare": {
"hash": "sha256-+sp9u9Xl5MvAWjy5efA4CgL94yprCcBP8yYEPcVifgQ=",
"hash": "sha256-QBGgXdwmF6S2hmFGHPCBA+v8VBiOxX1T199ws0AKVhk=",
"homepage": "https://registry.terraform.io/providers/cloudflare/cloudflare",
"owner": "cloudflare",
"repo": "terraform-provider-cloudflare",
"rev": "v5.14.0",
"rev": "v5.15.0",
"spdx": "Apache-2.0",
"vendorHash": "sha256-4OHJyp3Tdf/RpXFMJb91a/ygsb54pNzMtMi5Ye2RqOA="
"vendorHash": "sha256-qr0qKfOPiujY4QeD6yy3Rp1iIs8Ac72afRKaTZDGe3w="
},
"cloudfoundry-community_cloudfoundry": {
"hash": "sha256-1nYncJLVU/f9WD6Quh9IieIXgixPzbPk4zbtI1zmf9g=",
@@ -1499,11 +1499,11 @@
"vendorHash": "sha256-Z4DfoG4ApXbPNXZs9YvBWQj1bH7moLNI6P+nKDHt/Jc="
},
"yandex-cloud_yandex": {
"hash": "sha256-aa9lnDzlM+bhavGp1QjG9dNNYq8XbHuUOe+O0EO37LA=",
"hash": "sha256-9mI2bGSiSuTzGBXHzpGjU6I3Vh04aEkCMkfNk6rQbTc=",
"homepage": "https://registry.terraform.io/providers/yandex-cloud/yandex",
"owner": "yandex-cloud",
"repo": "terraform-provider-yandex",
"rev": "v0.175.0",
"rev": "v0.177.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-wwZiY8WXGdpOCT+4EcnSQeemDMzKZcMFZQK8SSAUkkA="
}
@@ -8,13 +8,13 @@
buildLua {
pname = "mpv-playlistmanager";
version = "0-unstable-2025-09-03";
version = "0-unstable-2025-12-17";
src = fetchFromGitHub {
owner = "jonniek";
repo = "mpv-playlistmanager";
rev = "b11621e1dc4afd24b41b887aff0748146176c4c1";
hash = "sha256-0+ISjWb8aGdRjsFOPURBZzTmJ4X8ayzYfnxYICDmizA=";
rev = "75caa611c9dab164e74a04a62abfbf508e51d71e";
hash = "sha256-wSyxcR+qIWozbDjrZT+B6SgFaigSWofExdsZ2fF7/uY=";
};
passthru.updateScript = unstableGitUpdater { };
@@ -231,6 +231,14 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://salsa.debian.org/pkg-virtualbox-team/virtualbox/-/raw/8028d88e6876ca5977de13c58b54e243229efe98/debian/patches/16-no-update.patch";
hash = "sha256-AGtFsRjwd8Yw296eqX3NC2TUptAhpFTRaOMutiheQ6Y=";
})
# NAT network shouldn't fully saturate one CPU
# https://github.com/VirtualBox/virtualbox/issues/356
(fetchpatch {
name = "vbox-nat-cpu.patch";
url = "https://github.com/VirtualBox/virtualbox/commit/efa378dadd192af8fbce331e9ec66fb36d65ad3d.diff";
hash = "sha256-7u3kSszv77leZdMs911TzAchU5mBqmNpgvuZDQaY9To=";
hunks = [ "2-" ];
})
]
++ [ ./extra_symbols.patch ]
# When hardening is enabled, we cannot use wrapQtApp to ensure that VirtualBoxVM sees
@@ -114,6 +114,7 @@ stdenv.mkDerivation (finalAttrs: {
tag = finalAttrs.version;
hash = "sha256-EC8o5FIP/eXa+0LZt0C8EWHzKVAniv9SIXkZdbibcxg=";
fetchSubmodules = true;
fetchTags = true;
deepClone = true;
postFetch = ''
cd $out
@@ -8,11 +8,11 @@
stdenv.mkDerivation {
pname = "android-backup-extractor";
version = "0-unstable-2025-01-15";
version = "0-unstable-2025-10-27";
src = fetchurl {
url = "https://github.com/nelenkov/android-backup-extractor/releases/download/latest/abe-62310d4.jar";
hash = "sha256-KY85I8OJCH7z6U6y9UbelFb3rvBVCid+AjJcucNGLdA=";
url = "https://github.com/nelenkov/android-backup-extractor/releases/download/latest/abe-540a57d.jar";
hash = "sha256-7RAJLOZJ8/TXN7boS0w1t4r/wHu/RwN3/N6HGmTMfhM=";
};
dontUnpack = true;
@@ -7,7 +7,7 @@
}:
python3Packages.buildPythonApplication rec {
pname = "ansible-navigator";
version = "25.11.0";
version = "25.12.0";
pyproject = true;
disabled = python3Packages.pythonOlder "3.10";
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
src = fetchPypi {
inherit version;
pname = "ansible_navigator";
hash = "sha256-PPSEEEUCX58/c3Iz1NMqCtfvOI5YBPTSoigTw/Ur4Zg=";
hash = "sha256-i6yw282NWUaCZBtAYi3rQsLk+GGyp8QHyqBi7nwwIlo=";
};
build-system = with python3Packages; [
+4 -4
View File
@@ -15,10 +15,10 @@
let
source = {
version = "2.31.0";
hash = "sha256-MxaHbsjewiNU4Zh6HjUO8DPWKi6+05Hl7QmiaOlSzCU=";
npmDepsHash = "sha256-uUdo6QEm7K652VsDrLDJ4Rd6jW3ZjLPN6pq5KqK2OvY=";
clientNpmDepsHash = "sha256-a0eZN/zUoJkJiGHSDqO5lmo9LAN6i8p40sd3rhUD0s0=";
version = "2.32.0";
hash = "sha256-tLADYpeDv5p1U8K6o36ZeUdKxC5en9T44+AP4AnYFCw=";
npmDepsHash = "sha256-P5YHoaM0ZpeRz/lFa6zSlJxerpFEDlUepmIq/9fNbVE=";
clientNpmDepsHash = "sha256-QM2bQDhPtimQjApxtV6SELJW2219Hj8wUieb8gfcTi0=";
};
src = fetchFromGitHub {
+3 -3
View File
@@ -10,17 +10,17 @@
}:
buildGoModule rec {
pname = "aws-vault";
version = "7.8.4";
version = "7.8.5";
src = fetchFromGitHub {
owner = "ByteNess";
repo = "aws-vault";
rev = "v${version}";
hash = "sha256-I2FjIiPRDsOSRD/ufcmv1DRlMNMhL9QMR8CpnpjGDM8=";
hash = "sha256-tJqqJl+X5LpVJXB6QGqNkjZxTSo44IK/IY/yVk2DLjQ=";
};
proxyVendor = true;
vendorHash = "sha256-MPVssudvDjGlIgVw3ddHjQ2sJAOWy5p51hK26aVooWY=";
vendorHash = "sha256-tuOrD2NjcjmjosI1bW2F7xEwGLNOMDNxFpEfODF9FHs=";
nativeBuildInputs = [
installShellFiles
-40
View File
@@ -1,40 +0,0 @@
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
pname = "breads-ad";
version = "1.2.4-unstable-2024-05-27";
pyproject = true;
src = fetchFromGitHub {
owner = "oppsec";
repo = "breads";
rev = "bdfc8b5f0357a34847767505ddc98734ca3b491f";
hash = "sha256-U1q15D59N55qBf4NVOpe5RpQjlE1ye2TNNIZf2IZV3U=";
};
pythonRelaxDeps = [ "ldap3" ];
build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
impacket
ldap3
rich
];
# Project has no tests
doCheck = false;
meta = {
description = "Tool to evaluate Active Directory Security";
homepage = "https://github.com/oppsec/breads";
changelog = "https://github.com/oppsec/breads/blob/${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "breads-ad";
};
}
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "@anthropic-ai/claude-code",
"version": "2.0.74",
"version": "2.0.75",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@anthropic-ai/claude-code",
"version": "2.0.74",
"version": "2.0.75",
"license": "SEE LICENSE IN README.md",
"bin": {
"claude": "cli.js"
+3 -3
View File
@@ -11,14 +11,14 @@
}:
buildNpmPackage (finalAttrs: {
pname = "claude-code";
version = "2.0.74";
version = "2.0.75";
src = fetchzip {
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz";
hash = "sha256-J3m1KUO8Bkzwh3fLI96LoWw6VsSwoETcSq2IufeRW9E=";
hash = "sha256-3BdinltHR29yYz+celc46MoZO8qAyLnRkJYhL2b7MFU=";
};
npmDepsHash = "sha256-kwJDSBAepJ1IVLzf4sydTZpvr6pERD9d7kr+KYC5Y/o=";
npmDepsHash = "sha256-mgIWUIUDryDbgmS7MBGmGMtYD46oxYPPybsnvwQVZFA=";
postPatch = ''
cp ${./package-lock.json} package-lock.json
+5 -5
View File
@@ -11,16 +11,16 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "clouddrive2";
version = "0.9.16";
version = "0.9.17";
src = fetchurl {
url = "https://github.com/cloud-fs/cloud-fs.github.io/releases/download/v${finalAttrs.version}/clouddrive-2-${os}-${arch}-${finalAttrs.version}.tgz";
hash =
{
x86_64-linux = "sha256-CNB0nUMWpCFy/44meHZ9q4wqaQOK3KgV4cwlZeku+o4=";
aarch64-linux = "sha256-OOpLh0VPycfEcmaYLlayirgQohZQx1f6LBJgRZRaLTk=";
x86_64-darwin = "sha256-ijdUxs9cc9M4WRn0T8oWrThO/irD4ZT5d5TRlgrddzs=";
aarch64-darwin = "sha256-/xu6Q7TteqwEvMKc5VMYfz7wQAUjBc8qH3SCP+YbugY=";
x86_64-linux = "sha256-AAGgtofApbyW/4TiqmC5tAPsiBIz1G2nYkbcvoKMO6k=";
aarch64-linux = "sha256-r0Bx0sf4chVBbxZsg3AoaF+CmTjFniIFb3Fa4BNpk4E=";
x86_64-darwin = "sha256-MtmYWGmv7+LimuWBlXdtBy1utkaDrjCjMrqtxlLSb/o=";
aarch64-darwin = "sha256-/tfkjWXpzE8cxx665KHR4T+VAbymd0loEGLNK206Yag=";
}
.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
};
+2 -2
View File
@@ -45,13 +45,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cockpit";
version = "352";
version = "353.1";
src = fetchFromGitHub {
owner = "cockpit-project";
repo = "cockpit";
tag = finalAttrs.version;
hash = "sha256-8FtC5fr/FPjHnb7RpVi4kz0RS6nvp7aD++ILo0LRZxo=";
hash = "sha256-uJBrBsNCYkdq+13UGJ6nPr55HPD4R0BTugWCKrycaIY=";
fetchSubmodules = true;
};
+3 -3
View File
@@ -14,18 +14,18 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "codex";
version = "0.76.0";
version = "0.77.0";
src = fetchFromGitHub {
owner = "openai";
repo = "codex";
tag = "rust-v${finalAttrs.version}";
hash = "sha256-a6jpYIcfTubSncK1Bxx04X30gkb0J7wi7W6JBXbBBcA=";
hash = "sha256-05zjzCrVhPLvrqx9UA2dPOjP8mQFUTWBCrmq/iaR3hg=";
};
sourceRoot = "${finalAttrs.src.name}/codex-rs";
cargoHash = "sha256-fg8OdKKGZ5QjJ/U/7cAFUWNBBa9GbR6OSbYcKeBLP1A=";
cargoHash = "sha256-bxy8YaUxsud3Gg09ebJyo0WNFvt76dcQTQ50B+xSbJU=";
nativeBuildInputs = [
installShellFiles
+2 -2
View File
@@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "commix";
version = "4.0";
version = "4.1";
pyproject = true;
src = fetchFromGitHub {
owner = "commixproject";
repo = "commix";
tag = "v${version}";
hash = "sha256-AikhXMacsJ7AZyKWcmu+ngs9KeiwQE60cpM2CV8ej1Y=";
hash = "sha256-X2AJIE/Uk6w5bcgCELfmy9+Nzoma96yBva9Aj+sKE3k=";
};
postPatch = ''
File diff suppressed because it is too large Load Diff
-74
View File
@@ -1,74 +0,0 @@
{
lib,
nixosTests,
rustPlatform,
fetchFromGitHub,
fetchpatch,
pkg-config,
protobuf,
openssl,
sqlite,
adaptor ? "sql",
}:
rustPlatform.buildRustPackage rec {
pname = "crabfit-api";
version = "0-unstable-2023-08-02";
src = fetchFromGitHub {
owner = "GRA0007";
repo = "crab.fit";
rev = "628f9eefc300bf1ed3d6cc3323332c2ed9b8a350";
hash = "sha256-jy8BrJSHukRenPbZHw4nPx3cSi7E2GSg//WOXDh90mY=";
};
sourceRoot = "${src.name}/api";
patches = [
(fetchpatch {
name = "01-listening-address.patch";
url = "https://github.com/GRA0007/crab.fit/commit/a1ac6da0f5e9d10df6bef8d735bc9ecaa9088d14.patch";
relative = "api";
hash = "sha256-7bmBndS3ow9P9EKmoQrQWcTpS4B3qAnSpeTUF6ox+BM=";
})
];
# FIXME: Remove this after https://github.com/GRA0007/crab.fit/pull/341 is merged,
# or upstream bumps their locked version of 0.3 time to 0.3.36 or later
postPatch = ''
cp ${./Cargo.lock} Cargo.lock
'';
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"google-cloud-0.2.1" = "sha256-3/sUeAXnpxO6kzx5+R7ukvMCEM001VoEPP6HmaRihHE=";
};
};
nativeBuildInputs = [
pkg-config
protobuf
];
buildInputs = [
openssl
sqlite
];
buildFeatures = [ "${adaptor}-adaptor" ];
PROTOC = "${protobuf}/bin/protoc";
passthru.tests = {
inherit (nixosTests) crabfit;
};
meta = {
description = "Enter your availability to find a time that works for everyone";
homepage = "https://github.com/GRA0007/crab.fit";
license = lib.licenses.gpl3;
maintainers = [ ];
mainProgram = "crabfit-api";
};
}
@@ -1,20 +0,0 @@
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index d4c1466..76c9931 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,5 +1,5 @@
import { Metadata } from 'next'
-import { Karla } from 'next/font/google'
+import localFont from 'next/font/local'
import { Analytics } from '@vercel/analytics/react'
import Egg from '/src/components/Egg/Egg'
@@ -10,7 +10,7 @@ import { useTranslation } from '/src/i18n/server'
import './global.css'
-const karla = Karla({ subsets: ['latin'] })
+const karla = localFont({ src: './fonts/karla.ttf' })
export const metadata: Metadata = {
metadataBase: new URL('https://crab.fit'),
@@ -1,236 +0,0 @@
diff --git a/public/robots.txt b/public/robots.txt
index 7fb2544..6e921ba 100644
--- a/public/robots.txt
+++ b/public/robots.txt
@@ -15,4 +15,4 @@ Allow: /*.ico$
Allow: /*.svg$
Disallow: *
-Sitemap: https://crab.fit/sitemap.xml
+Sitemap: https://@FRONTEND_URL@/sitemap.xml
diff --git a/public/sitemap.xml b/public/sitemap.xml
index 072442a..32f0e75 100644
--- a/public/sitemap.xml
+++ b/public/sitemap.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
- <loc>https://crab.fit/</loc>
+ <loc>https://@FRONTEND_URL@/</loc>
<priority>1.0</priority>
</url>
<url>
- <loc>https://crab.fit/how-to</loc>
+ <loc>https://@FRONTEND_URL@/how-to</loc>
<priority>0.4</priority>
</url>
<url>
- <loc>https://crab.fit/privacy</loc>
+ <loc>https://@FRONTEND_URL@/privacy</loc>
<priority>0.2</priority>
</url>
</urlset>
diff --git a/src/app/[id]/page.tsx b/src/app/[id]/page.tsx
index a3af022..7d2494d 100644
--- a/src/app/[id]/page.tsx
+++ b/src/app/[id]/page.tsx
@@ -49,10 +49,10 @@ const Page = async ({ params }: PageProps) => {
>{t('common:created', { date: relativeTimeFormat(Temporal.Instant.fromEpochSeconds(event.created_at), i18n.language) })}</span>
<Copyable className={styles.info}>
- {`https://crab.fit/${event.id}`}
+ {`https://@FRONTEND_URL@/${event.id}`}
</Copyable>
<p className={makeClass(styles.info, styles.noPrint)}>
- <Trans i18nKey="event:nav.shareinfo" t={t} i18n={i18n}>_<a href={`mailto:?subject=${encodeURIComponent(t('event:nav.email_subject', { event_name: event.name }))}&body=${encodeURIComponent(`${t('event:nav.email_body')} https://crab.fit/${event.id}`)}`}>_</a>_</Trans>
+ <Trans i18nKey="event:nav.shareinfo" t={t} i18n={i18n}>_<a href={`mailto:?subject=${encodeURIComponent(t('event:nav.email_subject', { event_name: event.name }))}&body=${encodeURIComponent(`${t('event:nav.email_body')} https://@FRONTEND_URL@/${event.id}`)}`}>_</a>_</Trans>
</p>
</Content>
</Suspense>
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index d4c1466..3d37088 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -13,7 +13,7 @@ import './global.css'
const karla = Karla({ subsets: ['latin'] })
export const metadata: Metadata = {
- metadataBase: new URL('https://crab.fit'),
+ metadataBase: new URL('https://@FRONTEND_URL@'),
title: {
absolute: 'Crab Fit',
template: '%s - Crab Fit',
diff --git a/src/components/CreateForm/components/EventInfo/EventInfo.tsx b/src/components/CreateForm/components/EventInfo/EventInfo.tsx
index 4376001..c404233 100644
--- a/src/components/CreateForm/components/EventInfo/EventInfo.tsx
+++ b/src/components/CreateForm/components/EventInfo/EventInfo.tsx
@@ -16,10 +16,10 @@ const EventInfo = ({ event }: EventInfoProps) => {
return <div className={styles.wrapper}>
<h2>{event.name}</h2>
<Copyable className={styles.info}>
- {`https://crab.fit/${event.id}`}
+ {`https://@FRONTEND_URL@/${event.id}`}
</Copyable>
<p className={styles.info}>
- <Trans i18nKey="event:nav.shareinfo_alt" t={t} i18n={i18n}>_<a href={`mailto:?subject=${encodeURIComponent(t('nav.email_subject', { event_name: event.name }))}&body=${encodeURIComponent(`${t('nav.email_body')} https://crab.fit/${event.id}`)}`} target="_blank">_</a>_</Trans>
+ <Trans i18nKey="event:nav.shareinfo_alt" t={t} i18n={i18n}>_<a href={`mailto:?subject=${encodeURIComponent(t('nav.email_subject', { event_name: event.name }))}&body=${encodeURIComponent(`${t('nav.email_body')} https://@FRONTEND_URL@/${event.id}`)}`} target="_blank">_</a>_</Trans>
</p>
</div>
}
diff --git a/src/i18n/locales/de/help.json b/src/i18n/locales/de/help.json
index 0dbe707..564a83d 100644
--- a/src/i18n/locales/de/help.json
+++ b/src/i18n/locales/de/help.json
@@ -6,7 +6,7 @@
"s1": "Schritt 1",
- "p3": "Benutze das Formular auf <1>crab.fit</1>, um einen neuen Termin zu erfassen. Du brauchst nur einen groben Zeitrahmen für den Termin anzugeben, aber noch nicht deine Verfügbarkeit",
+ "p3": "Benutze das Formular auf <1>@FRONTEND_URL@</1>, um einen neuen Termin zu erfassen. Du brauchst nur einen groben Zeitrahmen für den Termin anzugeben, aber noch nicht deine Verfügbarkeit",
"p4": "Beispiel: \"Jennys Geburtstags-Lunch\". Jenny will den Lunch in derselben Woche haben wie ihren Geburtstag, den 15. April, aber sie weiss, dass nicht alle ihre Freunde am 15. frei sind. Sie will ihn auch nicht am Wochenende",
"p5": "Jenny weiss auch, dass der Lunch zwischen 11 und 5 Uhr stattfinden muss.",
diff --git a/src/i18n/locales/en-GB/help.json b/src/i18n/locales/en-GB/help.json
index 4d0f1c7..02f985f 100644
--- a/src/i18n/locales/en-GB/help.json
+++ b/src/i18n/locales/en-GB/help.json
@@ -6,7 +6,7 @@
"s1": "Step 1",
- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
+ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
"p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
"p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
diff --git a/src/i18n/locales/en/help.json b/src/i18n/locales/en/help.json
index 4d0f1c7..02f985f 100644
--- a/src/i18n/locales/en/help.json
+++ b/src/i18n/locales/en/help.json
@@ -6,7 +6,7 @@
"s1": "Step 1",
- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
+ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
"p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
"p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
diff --git a/src/i18n/locales/es/help.json b/src/i18n/locales/es/help.json
index 1bcd264..ccf4c85 100644
--- a/src/i18n/locales/es/help.json
+++ b/src/i18n/locales/es/help.json
@@ -6,7 +6,7 @@
"s1": "Paso 1",
- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
+ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
"p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
"p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
diff --git a/src/i18n/locales/fr/help.json b/src/i18n/locales/fr/help.json
index 24603e1..395787f 100644
--- a/src/i18n/locales/fr/help.json
+++ b/src/i18n/locales/fr/help.json
@@ -6,7 +6,7 @@
"s1": "Étape 1",
- "p3": "Utilisez le formulaire sur <1>crab.fit</1> pour créer un nouvel événement. Vous devez seulement indiquer la période approximative de votre événement ici, et non vos disponibilités.",
+ "p3": "Utilisez le formulaire sur <1>@FRONTEND_URL@</1> pour créer un nouvel événement. Vous devez seulement indiquer la période approximative de votre événement ici, et non vos disponibilités.",
"p4": "Par exemple, nous allons utiliser « Fête d'anniversaire de Jenny ». Jenny souhaite que sa fête d'anniversaire ait lieu la même semaine que son anniversaire, le 15 avril, mais elle sait que tous·tes ses ami·e·es ne sont pas disponibles le 15. Elle ne veut pas non plus le faire le week-end.",
"p5": "Jenny sait également que, comme il s'agit d'un déjeuner, elle ne peut pas commencer avant 11 heures ni se terminer après 17 heures.",
diff --git a/src/i18n/locales/hi/help.json b/src/i18n/locales/hi/help.json
index 4d0f1c7..02f985f 100644
--- a/src/i18n/locales/hi/help.json
+++ b/src/i18n/locales/hi/help.json
@@ -6,7 +6,7 @@
"s1": "Step 1",
- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
+ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
"p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
"p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
diff --git a/src/i18n/locales/id/help.json b/src/i18n/locales/id/help.json
index 4d0f1c7..02f985f 100644
--- a/src/i18n/locales/id/help.json
+++ b/src/i18n/locales/id/help.json
@@ -6,7 +6,7 @@
"s1": "Step 1",
- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
+ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
"p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
"p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
diff --git a/src/i18n/locales/it/help.json b/src/i18n/locales/it/help.json
index 1df32db..7cf6673 100644
--- a/src/i18n/locales/it/help.json
+++ b/src/i18n/locales/it/help.json
@@ -6,7 +6,7 @@
"s1": "Passo 1",
- "p3": "Usa il modulo su <1>crab.fit</1> per creare un nuovo evento. Devi solo impostare il periodo di tempo indicativo per l'evento qui, non la tua disponibilità.",
+ "p3": "Usa il modulo su <1>@FRONTEND_URL@</1> per creare un nuovo evento. Devi solo impostare il periodo di tempo indicativo per l'evento qui, non la tua disponibilità.",
"p4": "Per esempio, possiamo usare \"Il pranzo di compleanno di Jenny\". Jenny vuole che il suo pranzo di compleanno sia nella stessa settimana del suo compleanno, il 15 di Aprile, ma sa che non tutti i suoi amici saranno disponibili il 15. Lei non vuole neanche organizzarlo nel fine settimana.",
"p5": "Jenny sa anche che, essendo un pranzo, non può iniziare prima delle 11 o continuare oltre le 15.",
diff --git a/src/i18n/locales/ko/help.json b/src/i18n/locales/ko/help.json
index 2f7a221..2bbd04d 100644
--- a/src/i18n/locales/ko/help.json
+++ b/src/i18n/locales/ko/help.json
@@ -6,7 +6,7 @@
"s1": "1 단계",
- "p3": "<1>crab.fit</1>의 양식을 사용하여 새 이벤트를 만드세요. 여기서 이벤트가 발생하는 대략적인 기간 만 입력하면됩니다.",
+ "p3": "<1>@FRONTEND_URL@</1>의 양식을 사용하여 새 이벤트를 만드세요. 여기서 이벤트가 발생하는 대략적인 기간 만 입력하면됩니다.",
"p4": "예를 들어 \"Jenny의 생일 점심을\" 사용합니다. Jenny는 4 월 15 일 생일과 같은 주에 생일 점심 식사를하기를 원하지만 모든 친구가 15 일에 참석할 수있는 것은 아니라는 것을 알고 있습니다. 그녀는 또한 주말에하고 싶지 않습니다.",
"p5": "Jenny는 점심 행사이기 때문에 오전 11시 이전에 시작하거나 오후 5시 이후에 갈 수 없다는 것도 알고 있습니다.",
diff --git a/src/i18n/locales/pt-BR/help.json b/src/i18n/locales/pt-BR/help.json
index fd5ef7d..e9433fd 100644
--- a/src/i18n/locales/pt-BR/help.json
+++ b/src/i18n/locales/pt-BR/help.json
@@ -6,7 +6,7 @@
"s1": "Passo 1",
- "p3": "Preenche os dados em <1>crab.fit</1> para criar seu evento. Escolhe um peíodo de tempo aproximado no qual o evento deve occorer, i.e. as possíveis datas e horários. Sua disponibilidade pessoal será num outro passo.",
+ "p3": "Preenche os dados em <1>@FRONTEND_URL@</1> para criar seu evento. Escolhe um peíodo de tempo aproximado no qual o evento deve occorer, i.e. as possíveis datas e horários. Sua disponibilidade pessoal será num outro passo.",
"p4": "Por exemplo \"Almoço de aniversário da Marina\". Ela quer convidar os amigos na mesma semana do seu aniversário no dia 15 de abril. Ela sabe que nem todo mundo tem tempo no dia 15 e tambêm não quer fazer no fim de semana.",
"p5": "Marina quer que seja no horário do almoço, então não deve começar antes das 11 da manhã e nem terminar depois das 5 da tarde.",
diff --git a/src/i18n/locales/pt-PT/help.json b/src/i18n/locales/pt-PT/help.json
index 5141873..a25c608 100644
--- a/src/i18n/locales/pt-PT/help.json
+++ b/src/i18n/locales/pt-PT/help.json
@@ -6,7 +6,7 @@
"s1": "Passo 1",
- "p3": "Usa o formulário em <1>crab.fit</1>para criares um evento novo. Aqui só precisas de inserir aproximadamente o período durante o qual o teu evento vai acontecer.",
+ "p3": "Usa o formulário em <1>@FRONTEND_URL@</1>para criares um evento novo. Aqui só precisas de inserir aproximadamente o período durante o qual o teu evento vai acontecer.",
"p4": "Por exemplo, vamos criar o \"Almoço de Aniversário da Jenny\". A Jenny quer que o almoço seja na mesma semana que o seu aniversário, a 15 de abril. No entanto, ela sabe que nem todos os seus amigos estarão disponíveis no dia 15. Ela também não quer que o almoço seja no fim de semana.",
"p5": "A Jenny também sabe que, como é um almoço, não pode começar antes das 11 da manhã nem terminar depois das 5 da tarde.",
diff --git a/src/i18n/locales/ru/help.json b/src/i18n/locales/ru/help.json
index 4d0f1c7..02f985f 100644
--- a/src/i18n/locales/ru/help.json
+++ b/src/i18n/locales/ru/help.json
@@ -6,7 +6,7 @@
"s1": "Step 1",
- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
+ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
"p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
"p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
@@ -1,120 +0,0 @@
{
lib,
nixosTests,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
fetchpatch,
nodejs,
yarn,
fixup-yarn-lock,
google-fonts,
api_url ? "http://127.0.0.1:3000",
frontend_url ? "crab.fit",
}:
stdenv.mkDerivation (finalAttrs: {
pname = "crabfit-frontend";
version = "0-unstable-2023-08-02";
src = fetchFromGitHub {
owner = "GRA0007";
repo = "crab.fit";
rev = "628f9eefc300bf1ed3d6cc3323332c2ed9b8a350";
hash = "sha256-jy8BrJSHukRenPbZHw4nPx3cSi7E2GSg//WOXDh90mY=";
};
sourceRoot = "${finalAttrs.src.name}/frontend";
patches = [
./01-localfont.patch
(fetchpatch {
name = "02-standalone-app.patch";
url = "https://github.com/GRA0007/crab.fit/commit/6dfd69cd59784932d195370eb3c5c87589609c9f.patch";
relative = "frontend";
hash = "sha256-XV7ia+flcUU6sLHdrMjkPV7kWymfxII7bpoeb/LkMQE=";
})
./03-frontend-url.patch
];
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/frontend/yarn.lock";
hash = "sha256-jkyQygwHdLlEZ1tlSQOh72nANp2F29rZbTXvKQStvGc=";
};
nativeBuildInputs = [
nodejs
yarn
fixup-yarn-lock
];
postPatch = ''
substituteInPlace \
public/robots.txt \
public/sitemap.xml \
src/app/\[id\]/page.tsx \
src/app/layout.tsx \
src/components/CreateForm/components/EventInfo/EventInfo.tsx \
src/i18n/locales/de/help.json \
src/i18n/locales/en-GB/help.json \
src/i18n/locales/en/help.json \
src/i18n/locales/es/help.json \
src/i18n/locales/fr/help.json \
src/i18n/locales/hi/help.json \
src/i18n/locales/id/help.json \
src/i18n/locales/it/help.json \
src/i18n/locales/ko/help.json \
src/i18n/locales/pt-BR/help.json \
src/i18n/locales/pt-PT/help.json \
src/i18n/locales/ru/help.json \
--replace-fail "@FRONTEND_URL@" "${frontend_url}"
'';
configurePhase = ''
runHook preConfigure
export HOME="$PWD"
echo 'NEXT_PUBLIC_API_URL="${api_url}"' > .env.local
fixup-yarn-lock yarn.lock
yarn config --offline set yarn-offline-mirror ${finalAttrs.offlineCache}
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules
mkdir -p src/app/fonts
cp "${
google-fonts.override { fonts = [ "Karla" ]; }
}/share/fonts/truetype/Karla[wght].ttf" src/app/fonts/karla.ttf
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
NODE_ENV=production yarn build
runHook postBuild
'';
installPhase = ''
mkdir $out
cp -R .next/* $out
cp -R public $out/standalone/
cp -R .next/static $out/standalone/.next
ln -s /var/cache/crabfit $out/standalone/.next/cache
'';
passthru.tests = {
inherit (nixosTests) crabfit;
};
meta = {
description = "Enter your availability to find a time that works for everyone";
homepage = "https://github.com/GRA0007/crab.fit";
license = lib.licenses.gpl3;
maintainers = [ ];
};
})
+2 -2
View File
@@ -2,10 +2,10 @@
buildDotnetGlobalTool {
pname = "csharpier";
version = "1.2.1";
version = "1.2.3";
executables = "csharpier";
nugetHash = "sha256-JJS/jlUM2GRYKPzsIbAnRM8Jhr8/Mr6Nlmjtq9TMBuc=";
nugetHash = "sha256-mUpciGlqLVkQW+V1KEe1/p99cy4+NYCG8PGYSynNhbs=";
meta = {
description = "Opinionated code formatter for C#";
+3 -3
View File
@@ -8,17 +8,17 @@
php.buildComposerProject2 (finalAttrs: {
pname = "drupal";
version = "11.2.10";
version = "11.3.1";
src = fetchFromGitLab {
domain = "git.drupalcode.org";
owner = "project";
repo = "drupal";
tag = finalAttrs.version;
hash = "sha256-qGJmlVC+4fzLjySD95Kq4rDTzohwbmb9mN7YJo/eoK8=";
hash = "sha256-dVCDIKqLbYHlVwv5wveXG0oHc2g3Zl6J6LG1/e8IIZw=";
};
vendorHash = "sha256-UluxvOoks8U11HVM5ufm7ESMWwZE1oaaLfOy4czoTWY=";
vendorHash = "sha256-cGSOsASv3UlzSXDP2KgrlzBIMWLB25j9LFkJZsEbTTQ=";
composerNoPlugins = false;
passthru = {
+1547
View File
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,32 @@
diff --git a/Duplicati/UnitTest/Issue6504.cs b/Duplicati/UnitTest/Issue6504.cs
index 1234567..abcdefg 100644
--- a/Duplicati/UnitTest/Issue6504.cs
+++ b/Duplicati/UnitTest/Issue6504.cs
@@ -93,7 +93,7 @@ namespace Duplicati.UnitTest;
// Force the error by making sure the duplicate blocks are from both dblock files
- using (var db = SQLiteLoader.LoadConnection(DBFILE))
+ using (var db = SQLiteLoader.LoadConnection(DBFILE, 0))
using (var cmd = db.CreateCommand())
{
cmd.CommandText = @"SELECT BlockId,VolumeID FROM DuplicateBlock";
@@ -110,14 +110,14 @@ namespace Duplicati.UnitTest;
var otherVolumeId = blocks.First(x => x.VolumeID != duplicateVolumeId && x.ID != blockToChange.BlockId).VolumeID;
cmd.CommandText = "UPDATE DuplicateBlock SET VolumeID=@VolumeID WHERE BlockID=@BlockID";
- cmd.Parameters.AddWithValue("@VolumeID", otherVolumeId);
- cmd.Parameters.AddWithValue("@BlockID", blockToChange.BlockId);
+ ((System.Data.SQLite.SQLiteParameterCollection)cmd.Parameters).AddWithValue("@VolumeID", otherVolumeId);
+ ((System.Data.SQLite.SQLiteParameterCollection)cmd.Parameters).AddWithValue("@BlockID", blockToChange.BlockId);
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.CommandText = "UPDATE Block SET VolumeID=@VolumeID WHERE ID=@BlockID";
- cmd.Parameters.AddWithValue("@VolumeID", duplicateVolumeId);
- cmd.Parameters.AddWithValue("@BlockID", blockToChange.BlockId);
+ ((System.Data.SQLite.SQLiteParameterCollection)cmd.Parameters).AddWithValue("@VolumeID", duplicateVolumeId);
+ ((System.Data.SQLite.SQLiteParameterCollection)cmd.Parameters).AddWithValue("@BlockID", blockToChange.BlockId);
cmd.ExecuteNonQuery();
}
}
+72 -52
View File
@@ -1,73 +1,93 @@
{
lib,
stdenv,
fetchzip,
buildDotnetModule,
fetchFromGitHub,
autoPatchelfHook,
gcc-unwrapped,
zlib,
lttng-ust_2_12,
dotnetCorePackages,
icu,
openssl,
makeBinaryWrapper,
krb5,
}:
let
_supportedPlatforms = {
"armv7l-linux" = "linux-arm7";
"x86_64-linux" = "linux-x64";
"aarch64-linux" = "linux-arm64";
};
_platform = _supportedPlatforms."${stdenv.hostPlatform.system}";
# nix --extra-experimental-features nix-command hash convert --to sri "sha256:`nix-prefetch-url --unpack https://updates.duplicati.com/stable/duplicati-2.1.0.5_stable_2025-03-04-linux-arm64-cli.zip`"
_fileHashForSystem = {
"armv7l-linux" = "sha256-FQQ07M0rwvxNkHPW6iK5WBTKgFrZ4LOP4vgINfmtq4k=";
"x86_64-linux" = "sha256-1QspF/A3hOtqd8bVbSqClJIHUN9gBrd18J5qvZJLkQE=";
"aarch64-linux" = "sha256-mSNInaCkNf1MBZK2M42SjJnYRtB5SyGMvSGSn5oH1Cs=";
};
in
stdenv.mkDerivation (finalAttrs: {
# TODO build duplicati from source https://github.com/duplicati/duplicati/blob/master/.github/workflows/build-packages.yml
buildDotnetModule rec {
pname = "duplicati";
version = "2.1.0.5";
version = "2.2.0.1";
channel = "stable";
buildDate = "2025-03-04";
buildDate = "2025-11-09";
src = fetchzip {
url =
with finalAttrs;
"https://updates.duplicati.com/stable/duplicati-${version}_${channel}_${buildDate}-${_platform}-cli.zip";
hash = _fileHashForSystem."${stdenv.hostPlatform.system}";
src = fetchFromGitHub {
owner = "duplicati";
repo = "duplicati";
tag = "v${version}_${channel}_${buildDate}";
hash = "sha256-fARK2nAqE9aN2PQSC62yIcYr3e/kBT3BVTBxLwMqk24=";
stripRoot = true;
};
nativeBuildInputs = [
autoPatchelfHook
makeBinaryWrapper
];
patches = [ ./fix-unit-tests.patch ];
nugetDeps = ./deps.json;
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
enableParallelBuilding = false;
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
buildInputs = [
gcc-unwrapped
zlib
lttng-ust_2_12
icu
openssl
krb5
];
installPhase = ''
runHook preInstall
autoPatchelfIgnoreMissingDeps = lib.optionals (!stdenv.hostPlatform.isMusl) [
"libc.musl-x86_64.so.1"
"libc.musl-aarch64.so.1"
"libc.musl-armv7.so.1"
];
mkdir -p $out/{bin,share}
cp -r * "$out/share/"
for file in $out/share/duplicati-*; do
makeBinaryWrapper "$file" "$out/bin/$(basename $file)" \
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
icu
openssl
]
}
done
executables = [
"Duplicati.Agent"
"Duplicati.CommandLine"
"Duplicati.CommandLine.AutoUpdater"
"Duplicati.CommandLine.BackendTester"
"Duplicati.CommandLine.BackendTool"
"Duplicati.CommandLine.DatabaseTool"
"Duplicati.CommandLine.RecoveryTool"
"Duplicati.CommandLine.SecretTool"
"Duplicati.CommandLine.ServerUtil"
"Duplicati.CommandLine.SharpAESCrypt"
"Duplicati.CommandLine.Snapshots"
"Duplicati.CommandLine.SourceTool"
"Duplicati.CommandLine.SyncTool"
"Duplicati.GUI.TrayIcon"
"Duplicati.Server"
"Duplicati.Service"
];
runHook postInstall
postFixup = ''
mv $out/bin/Duplicati.Agent $out/bin/duplicati-agent
mv $out/bin/Duplicati.GUI.TrayIcon $out/bin/duplicati
mv $out/bin/Duplicati.Server $out/bin/duplicati-server
cp $out/bin/duplicati-server $out/lib/duplicati/duplicati-server
mv $out/bin/Duplicati.Service $out/bin/duplicati-service
mv $out/bin/Duplicati.CommandLine $out/bin/duplicati-cli
mv $out/bin/Duplicati.CommandLine.SyncTool $out/bin/duplicati-sync-tool
mv $out/bin/Duplicati.CommandLine.SourceTool $out/bin/duplicati-source-tool
mv $out/bin/Duplicati.CommandLine.DatabaseTool $out/bin/duplicati-database-tool
mv $out/bin/Duplicati.CommandLine.SharpAESCrypt $out/bin/duplicati-aescrypt
mv $out/bin/Duplicati.CommandLine.AutoUpdater $out/bin/duplicati-autoupdater
mv $out/bin/Duplicati.CommandLine.BackendTester $out/bin/duplicati-backend-tester
mv $out/bin/Duplicati.CommandLine.BackendTool $out/bin/duplicati-backend-tool
mv $out/bin/Duplicati.CommandLine.RecoveryTool $out/bin/duplicati-recovery-tool
mv $out/bin/Duplicati.CommandLine.SecretTool $out/bin/duplicati-secret-tool
mv $out/bin/Duplicati.CommandLine.ServerUtil $out/bin/duplicati-server-util
mv $out/bin/Duplicati.CommandLine.Snapshots $out/bin/duplicati-snapshots
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Free backup client that securely stores encrypted, incremental, compressed backups on cloud storage services and remote file servers";
homepage = "https://www.duplicati.com/";
@@ -75,8 +95,8 @@ stdenv.mkDerivation (finalAttrs: {
maintainers = with lib.maintainers; [
nyanloutre
bot-wxt1221
puiyq
];
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
platforms = builtins.attrNames _supportedPlatforms;
# platforms inherited from dotnet-sdk.
};
})
}
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq nix-prefetch-github
set -euo pipefail
OWNNER="duplicati"
REPO="duplicati"
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
TARGET="$SCRIPT_DIR/package.nix"
TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/$OWNNER/$REPO/tags" |
jq -r '.[].name' |
grep -E '^v[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+_stable_' |
sort -Vr |
head -n1)
VERSION=$(echo "$TAG" | cut -d_ -f1 | sed 's/^v//')
CHANNEL=$(echo "$TAG" | cut -d_ -f2)
DATE=$(echo "$TAG" | cut -d_ -f3)
HASH=$(nix-prefetch-github $OWNNER $REPO --rev "$TAG" |
jq -r '.hash')
sed -i \
-e "/version = \"/c\ version = \"$VERSION\";" \
-e "/channel = \"/c\ channel = \"$CHANNEL\";" \
-e "/buildDate = \"/c\ buildDate = \"$DATE\";" \
-e "/hash = \"/c\ hash = \"$HASH\";" \
"$TARGET"
. "$(nix-build . -A duplicati.fetch-deps --no-out-link)"
+2 -2
View File
@@ -12,11 +12,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "eigenwallet";
version = "3.5.1";
version = "3.6.1";
src = fetchurl {
url = "https://github.com/eigenwallet/core/releases/download/${finalAttrs.version}/eigenwallet_${finalAttrs.version}_amd64.deb";
hash = "sha256-+0eZWEqVkJW54ADTC2Ay6cGHqcqRBpxOYJkN5Unil0A=";
hash = "sha256-L0JNKbirnZSVNNhEzSpwq5JstfpSGSo5E83zmxoOuXU=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "extra-container";
version = "0.13";
version = "0.14";
src = fetchFromGitHub {
owner = "erikarvstedt";
repo = "extra-container";
rev = version;
hash = "sha256-vgh3TqfkFdnPxREBedw4MQehIDc3N8YyxBOB45n+AvU=";
hash = "sha256-XGp4HHH6D6ZKiO5RnMzqYJYnZB538EnEflvlTsOKpvo=";
};
buildCommand = ''
@@ -8,13 +8,13 @@
}:
stdenv.mkDerivation rec {
pname = "faustPhysicalModeling";
version = "2.79.3";
version = "2.83.1";
src = fetchFromGitHub {
owner = "grame-cncm";
repo = "faust";
rev = version;
sha256 = "sha256-j5ADlKZriwLARpEJ/4xgvyAhF5ld9Hl2gXZS3NPJJj8=";
sha256 = "sha256-c1I5ha9QvnC7jKdycAhW/iAzUcEA7NopXAquIS001Y8=";
};
nativeBuildInputs = [
@@ -0,0 +1,13 @@
diff --git a/src/filesystem.rs b/src/filesystem.rs
index 28c2a01..cfc8fcb 100644
--- a/src/filesystem.rs
+++ b/src/filesystem.rs
@@ -44,7 +44,7 @@ wrap2!(copy, fs, u64);
macro_rules! make_error_message {
($path:ident) => {
- |err| Error::new(format!("{}: {}", $path.display(), err));
+ |err| Error::new(format!("{}: {}", $path.display(), err))
};
}
+4
View File
@@ -18,6 +18,10 @@ rustPlatform.buildRustPackage rec {
sha256 = "0f242n8w88rikg1srimdifadhggrb2r1z0g65id60ahb4bjm8a0x";
};
patches = [
./0002-trailing-semicolon-in-macro.patch
];
cargoPatches = [
(fetchpatch {
url = "https://github.com/Svetlitski/fcp/commit/1988f88be54a507b804b037cb3887fecf11bb571.patch";
-60
View File
@@ -1,60 +0,0 @@
{
lib,
stdenv,
fetchzip,
fpc,
lang ? "en",
}:
assert lib.assertOneOf "lang" lang [
"cn"
"de"
"en"
"fr"
"tr"
];
stdenv.mkDerivation rec {
pname = "gavrasm";
version = "5.4";
flatVersion = lib.strings.replaceStrings [ "." ] [ "" ] version;
src = fetchzip {
url = "http://www.avr-asm-tutorial.net/gavrasm/v${flatVersion}/gavrasm_sources_lin_${flatVersion}.zip";
sha256 = "sha256-uTalb8Wzn2RAoUKZx9RZFCX+V9HUEtUnJ4eSltFumh0=";
stripRoot = false;
};
nativeBuildInputs = [ fpc ];
configurePhase = ''
runHook preConfigure
cp gavrlang_${lang}.pas gavrlang.pas
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
fpc gavrasm.pas
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp gavrasm $out/bin
mkdir -p $out/doc
cp instr.asm $out/doc
cp ReadMe.Txt $out/doc
cp LiesMich.Txt $out/doc
runHook postInstall
'';
meta = {
homepage = "http://www.avr-asm-tutorial.net/gavrasm/";
description = "AVR Assembler for ATMEL AVR-Processors";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ mafo ];
platforms = lib.platforms.linux;
};
}
+7 -2
View File
@@ -8,6 +8,7 @@
clang_20,
libsecret,
ripgrep,
nodejs,
nix-update-script,
}:
@@ -59,14 +60,18 @@ buildNpmPackage (finalAttrs: {
--replace-fail "settings.merged.general?.disableUpdateNag" "(settings.merged.general?.disableUpdateNag ?? true)"
'';
# Prevent npmDeps from getting into the closure
disallowedReferences = [ finalAttrs.npmDeps ];
# Prevent npmDeps and python from getting into the closure
disallowedReferences = [
finalAttrs.npmDeps
nodejs.python
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share/gemini-cli}
npm prune --omit=dev
rm node_modules/shell-quote/print.py # remove python demo to prevent python from getting into the closure
cp -r node_modules $out/share/gemini-cli/
rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli
+2 -2
View File
@@ -10,14 +10,14 @@
python3Packages.buildPythonApplication rec {
pname = "github-backup";
version = "0.57.0";
version = "0.58.0";
pyproject = true;
src = fetchFromGitHub {
owner = "josegonzalez";
repo = "python-github-backup";
tag = version;
hash = "sha256-ISJBa+fyj+ko8dW4x1yIo7tlWT8Jlylbo4lzq23whOg=";
hash = "sha256-i1o8GX3xxWft04sLspq9Oy2a46ldJeFqs5OgEjTti4E=";
};
build-system = with python3Packages; [
+2 -2
View File
@@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gpxsee";
version = "15.6";
version = "15.7";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
tag = finalAttrs.version;
hash = "sha256-3g9NIk6l6ilvrJAg3OvQrlVAuX+hjm1Snw6Qs/fpy00=";
hash = "sha256-RaKffCdC3H6+qtj7BZiyhl5ublY3LEEwekfCwKuUMPg=";
};
buildInputs = [
+2 -2
View File
@@ -13,10 +13,10 @@
stdenv.mkDerivation rec {
pname = "homebank";
version = "5.9.5";
version = "5.9.6";
src = fetchurl {
url = "https://www.gethomebank.org/public/sources/homebank-${version}.tar.gz";
hash = "sha256-/2yLD22kERM+KbhI6R9I/biN5ArQLLogqIQJMKPn7UM=";
hash = "sha256-8DIL/gTysY/e1DcuuJ5qY6vXUBY4uUWNoSzUaCQ+t3o=";
};
nativeBuildInputs = [
@@ -0,0 +1,17 @@
diff --git a/mkdocs.yml b/mkdocs.yml
index 2f7f387..7ddfcf2 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -53,11 +53,6 @@ markdown_extensions:
- pymdownx.inlinehilite
- pymdownx.snippets
- attr_list
- - pymdownx.emoji:
- emoji_index: !!python/name:material.extensions.emoji.twemoji
- emoji_generator: !!python/name:material.extensions.emoji.to_svg
plugins:
- search
- - git-revision-date-localized
- - social
\ No newline at end of file
@@ -0,0 +1,56 @@
{
lib,
fetchFromGitHub,
stdenvNoCC,
python3Packages,
}:
let
inherit (python3Packages) mkdocs mkdocs-material;
in
stdenvNoCC.mkDerivation {
pname = "internalallthethings";
version = "0-unstable-2025-11-27";
src = fetchFromGitHub {
owner = "swisskyrepo";
repo = "InternalAllTheThings";
rev = "9a97b9d16e5f9834b4ef2276b6cd1b98a0748b6e";
hash = "sha256-NaQeRmO1JtKYZyTAhKXovDi7pZ9Zbu7Yi4iHORCU67A=";
};
patches = [ ./mkdocs.patch ];
nativeBuildInputs = [
mkdocs
mkdocs-material
];
outputs = [
"out"
"doc"
];
buildPhase = ''
mkdocs build
'';
installPhase = ''
runHook preInstall
mkdir -p $doc/share/internalallthethings
cp -r site/* $doc/share/internalallthethings
mkdir -p $out/share/internalallthethings
rm -r mkdocs.yml site
cp -r * $out/share/internalallthethings
runHook postInstall
'';
meta = {
homepage = "https://github.com/swisskyrepo/InternalAllTheThings";
description = "Active Directory and Internal Pentest Cheatsheets";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ felbinger ];
platforms = mkdocs.meta.platforms;
sourceProvenance = with lib.sourceTypes; [ fromSource ];
};
}
+4 -4
View File
@@ -18,19 +18,19 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "kanri";
version = "0.8.1";
version = "0.8.2";
src = fetchFromGitHub {
owner = "kanriapp";
repo = "kanri";
tag = "app-v${finalAttrs.version}";
hash = "sha256-pP+q9AD2WATFYWHFitcrebN8y6iGCyXqmQYXCs9Ytf0=";
hash = "sha256-HPwCU08cOkQre7ce9IxTbhwf3vi80VTpuLCoIT6b424=";
};
cargoHash = "sha256-JLv4YC40VcRMQVgJnunLkFIEfLKUTEDBgNMV6NmMAzA=";
cargoHash = "sha256-efzchVrdjcfwLtRd87S4bK6Kqrfcdwthw1F0s557u/Y=";
yarnOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-z0RLQ6n3hdsaBy3BiIOpuvpPBq3ST02r7lfsGfJypb8=";
hash = "sha256-PBhn0VTt+6rf7YTuoVf3L4a6+AoXuad4E20dWiGVOOE=";
};
nativeBuildInputs = [
+11 -11
View File
@@ -3,23 +3,23 @@
{
"kicad" = {
kicadVersion = {
version = "9.0.5";
version = "9.0.6";
src = {
rev = "3e59813c21b4d0a00c08978e86b5f2189ec27864";
sha256 = "0wmnkiyqv32c5nz4nvz94dld3rk5ir49nh71cycig6clvjvy11r5";
rev = "878335d000462f1498adc4267854bb594a21bd36";
sha256 = "0mfnlx0dlpk3jz1b8pard6b7ax1ycyv069k4vg89ph2bia1a9d98";
};
};
libVersion = {
version = "9.0.5";
version = "9.0.6";
libSources = {
symbols.rev = "884133df0afba238567e2be6c31e7d3b4a9d90be";
symbols.sha256 = "0msgq8p3zlfc3glqr1h8n0a1agk4hjdqxqdiny5b4d0hgiy6hhmx";
templates.rev = "204b42307fc78cf0b3ebec4e19eba9d710e392f4";
symbols.rev = "e92aabf81dc1af151fa452a33679dcb42b93fcbd";
symbols.sha256 = "03k3y86mgc10ir5l1gdzc0r7w1gg7iavb1zl31kgfh9hnfmgv06w";
templates.rev = "710c895e2f3be0ec366139bf33c9ca711c990630";
templates.sha256 = "0zs29zn8qjgxv0w1vyr8yxmj02m8752zagn4vcraqgik46dwg2id";
footprints.rev = "873e3e9dbad8371d664e57261efa516d42328161";
footprints.sha256 = "179y7xmz7mwsfsv4dcw2dx689xfzqk8y38d21s69yiaalyxflhh1";
packages3d.rev = "c25dce5aadce68076ac035edb0c792608f5f597c";
packages3d.sha256 = "1y7yhynrr87q80gcb8qlkyrdccz1sllsxqymrnghhxbfk4wbwwn8";
footprints.rev = "0836ca140b415055e373de97c466961088d8972a";
footprints.sha256 = "0jzkrmzkxv3kqqmkpq5dpp3shy9ajfg1b1yzhk4ddzvy8l05qym4";
packages3d.rev = "1e24671163ce0f44bf57b46445c7e7be1a95977d";
packages3d.sha256 = "04hw6b4hyl2plfgynin3dv7siqml4341264wz2wngddszq8z32ki";
};
};
};
+33 -3
View File
@@ -6,7 +6,9 @@
fetchFromGitHub,
replaceVars,
copyDesktopItems,
makeWrapper,
makeDesktopItem,
electron_37,
commandLineArgs ? "",
@@ -26,6 +28,28 @@ buildNpmPackage rec {
hash = "sha256-g4QVpymzoRKIq70aRLXGFmUmIpSiXIZThrp8fumBKTQ=";
};
desktopItems = [
(makeDesktopItem {
categories = [
"Utility"
"AudioVideo"
"Audio"
"Player"
"Music"
];
desktopName = "LX Music Desktop";
exec = "lx-music-desktop";
genericName = "Music Player";
icon = "lx-music-desktop";
mimeTypes = [ "x-scheme-handler/lxmusic" ];
name = "lx-music-desktop";
startupNotify = false;
startupWMClass = "lx-music-desktop";
terminal = false;
type = "Application";
})
];
patches = [
# set electron version and dist dir
# disable before-pack: it would copy prebuilt libraries
@@ -36,6 +60,7 @@ buildNpmPackage rec {
nativeBuildInputs = [
makeWrapper
copyDesktopItems
];
npmDepsHash = "sha256-t6I8ch36Yh6N+qZy4/yr/gSyJ3qdyMWss5LbsagEFMQ=";
@@ -75,14 +100,19 @@ buildNpmPackage rec {
cp -r build/*-unpacked/{locales,resources{,.pak}} "$out/opt/lx-music-desktop"
rm "$out/opt/lx-music-desktop/resources/app-update.yml"
for size in 16 32 48 64 128 256 512; do
install -D -m 444 resources/icons/"$size"x"$size".png \
$out/share/icons/hicolor/"$size"x"$size"/apps/lx-music-desktop.png
done
runHook postInstall
'';
postFixup = ''
makeWrapper ${lib.getExe electron} $out/bin/lx-music-desktop \
--add-flags $out/opt/lx-music-desktop/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--add-flags ${lib.escapeShellArg commandLineArgs}
--add-flags $out/opt/lx-music-desktop/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--add-flags ${lib.escapeShellArg commandLineArgs}
'';
meta = {
@@ -7,16 +7,16 @@
maven.buildMavenPackage rec {
pname = "mariadb-connector-java";
version = "3.5.6";
version = "3.5.7";
src = fetchFromGitHub {
owner = "mariadb-corporation";
repo = "mariadb-connector-j";
tag = version;
hash = "sha256-vBrXK8g+eAxD85iIEtJhTZ4sdohcdjhtzojS+JScLos=";
hash = "sha256-ScdrBSJKbVyD/omPrxiZvuaa5uOo2d3SqX/ozalMWHk=";
};
mvnHash = "sha256-q61OyBg84Zaf9prM6J3lUVsJXEnmoptcq2EuNs+faDc=";
mvnHash = "sha256-pQYLMsxNVdby4WkO/dznIqqeu2dTtiBjrpJ/A3MuJ5Y=";
doCheck = false; # Requires networking
+27 -7
View File
@@ -2,6 +2,7 @@
lib,
stdenvNoCC,
fetchurl,
installShellFiles,
libarchive,
p7zip,
testers,
@@ -10,14 +11,30 @@
stdenvNoCC.mkDerivation rec {
pname = "mas";
version = "2.2.2";
version = "4.1.0";
src = fetchurl {
url = "https://github.com/mas-cli/mas/releases/download/v${version}/mas-${version}.pkg";
hash = "sha256-v+tiD5ZMVFzeShyuOt8Ss3yw6p8VjopHaMimOQznL6o=";
};
src =
let
sources =
{
x86_64-darwin = {
arch = "x86_64";
hash = "sha256-9GkAV2gitqtZ7Ew/QVXDj3tDTbh5uwBxPtYdLSnucZE=";
};
aarch64-darwin = {
arch = "arm64";
hash = "sha256-8zaZOPOCyLHOFmHhviJXIy5SB5trqQM/MFHhB9ygilQ=";
};
}
.${stdenvNoCC.hostPlatform.system};
in
fetchurl {
url = "https://github.com/mas-cli/mas/releases/download/v${version}/mas-${version}-${sources.arch}.pkg";
inherit (sources) hash;
};
nativeBuildInputs = [
installShellFiles
libarchive
p7zip
];
@@ -36,8 +53,11 @@ stdenvNoCC.mkDerivation rec {
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp mas $out/bin
install -Dm755 usr/local/opt/mas/bin/mas $out/bin/mas
installManPage usr/local/opt/mas/share/man/man1/mas.1
installShellCompletion --bash usr/local/opt/mas/etc/bash_completion.d/mas
installShellCompletion --fish usr/local/opt/mas/share/fish/vendor_completions.d/mas.fish
runHook postInstall
'';
@@ -0,0 +1,91 @@
From a0f57159572c81c8ae6f9c9440e5cd74315b8570 Mon Sep 17 00:00:00 2001
From: Jason Volk <jason@zemos.net>
Date: Sun, 21 Dec 2025 22:04:07 +0000
Subject: [PATCH] fix: validate event fields for invites over federation.
---
src/api/server_server.rs | 61 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/src/api/server_server.rs b/src/api/server_server.rs
index adc764ff..d29f6031 100644
--- a/src/api/server_server.rs
+++ b/src/api/server_server.rs
@@ -2132,6 +2132,44 @@ pub async fn create_invite_route(
CanonicalJsonValue::String(event_id.to_string()),
);
+ let event_room_id: OwnedRoomId = serde_json::from_value(
+ signed_event
+ .get("room_id")
+ .ok_or(Error::BadRequest(
+ ErrorKind::InvalidParam,
+ "Event had no room_id field.",
+ ))?
+ .clone()
+ .into(),
+ )
+ .map_err(|_| Error::BadRequest(ErrorKind::InvalidParam, "room_id is not a room id."))?;
+
+ if room_id != event_room_id {
+ return Err(Error::BadRequest(
+ ErrorKind::InvalidParam,
+ "room_id parameter does not match event.",
+ ));
+ }
+
+ let event_type: StateEventType = serde_json::from_value(
+ signed_event
+ .get("type")
+ .ok_or(Error::BadRequest(
+ ErrorKind::InvalidParam,
+ "Event had no type field.",
+ ))?
+ .clone()
+ .into(),
+ )
+ .map_err(|_| Error::BadRequest(ErrorKind::InvalidParam, "type is not an event type."))?;
+
+ if event_type != StateEventType::RoomMember {
+ return Err(Error::BadRequest(
+ ErrorKind::InvalidParam,
+ "Invite event was not m.room.member type.",
+ ));
+ }
+
let sender: OwnedUserId = serde_json::from_value(
signed_event
.get("sender")
@@ -2144,6 +2182,29 @@ pub async fn create_invite_route(
)
.map_err(|_| Error::BadRequest(ErrorKind::InvalidParam, "sender is not a user id."))?;
+ if sender.server_name() != sender_servername {
+ return Err(Error::BadRequest(
+ ErrorKind::InvalidParam,
+ "Invite sender must match the origin server.",
+ ));
+ }
+
+ let event_content: RoomMemberEventContent = serde_json::from_value(
+ signed_event
+ .get("content")
+ .ok_or_else(|| Error::BadRequest(ErrorKind::InvalidParam, "Missing event content."))?
+ .clone()
+ .into(),
+ )
+ .map_err(|_| Error::BadRequest(ErrorKind::InvalidParam, "Invalid event content."))?;
+
+ if event_content.membership != MembershipState::Invite {
+ return Err(Error::BadRequest(
+ ErrorKind::InvalidParam,
+ "Membership of invite event must be invite.",
+ ));
+ }
+
let invited_user: Box<_> = serde_json::from_value(
signed_event
.get("state_key")
--
GitLab
@@ -21,6 +21,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
hash = "sha256-rJyuR8Ie/JiNKNjQL21+Q1PWliEAm+lwGraGeDxEHyY=";
};
patches = [
# https://gitlab.com/famedly/conduit/-/merge_requests/784
./fix_validate_event_fields_for_invites_over_federation.patch
];
cargoHash = "sha256-4ZA+3f8Kt+1JAm9KXnMRxAF+X9z8HSJoJe6Ny63SlnA=";
# Conduit enables rusqlite's bundled feature by default, but we'd rather use our copy of SQLite.
@@ -0,0 +1,51 @@
diff --git a/src/api/server/invite.rs b/src/api/server/invite.rs
index 78a65fe8..d284fedd 100644
--- a/src/api/server/invite.rs
+++ b/src/api/server/invite.rs
@@ -61,6 +61,46 @@ pub(crate) async fn create_invite_route(
let mut signed_event = utils::to_canonical_object(&body.event)
.map_err(|_| err!(Request(InvalidParam("Invite event is invalid."))))?;
+ // Ensure this is a membership event
+ if signed_event
+ .get("type")
+ .expect("event must have a type")
+ .as_str()
+ .expect("type must be a string")
+ != "m.room.member"
+ {
+ return Err!(Request(BadJson(
+ "Not allowed to send non-membership event to invite endpoint."
+ )));
+ }
+
+ let content: RoomMemberEventContent = serde_json::from_value(
+ signed_event
+ .get("content")
+ .ok_or_else(|| err!(Request(BadJson("Event missing content property"))))?
+ .clone()
+ .into(),
+ )
+ .map_err(|e| err!(Request(BadJson(warn!("Event content is empty or invalid: {e}")))))?;
+
+ // Ensure this is an invite membership event
+ if content.membership != MembershipState::Invite {
+ return Err!(Request(BadJson(
+ "Not allowed to send a non-invite membership event to invite endpoint."
+ )));
+ }
+
+ // Ensure the sending user isn't a lying bozo
+ let sender_server = signed_event
+ .get("sender")
+ .try_into()
+ .map(UserId::server_name)
+ .map_err(|e| err!(Request(InvalidParam("Invalid sender property: {e}"))))?;
+ if sender_server != body.origin() {
+ return Err!(Request(Forbidden("Sender's server does not match the origin server.",)));
+ }
+
+ // Ensure the target user belongs to this server
let recipient_user: OwnedUserId = signed_event
.get("state_key")
.try_into()
@@ -87,6 +87,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
hash = "sha256-UHlKAYgIkVtZJV+H2Xl7HssV03Q3XNxluMfLRY2e+Do=";
};
# https://forgejo.ellis.link/continuwuation/continuwuity/commit/b2bead67ac8bc45de9a612578f295e5b7fc6c2b5
# https://forgejo.ellis.link/continuwuation/continuwuity/commit/7fa4fa98628593c1a963f5aa8dbc3657d604b047
# this patch is probably unneeded with the next release
patches = [ ./continuwuity-exploit-fix.diff ];
cargoHash = "sha256-imfpl+72zlqeEREdTGFG3bsMdPTXe/sb1uGvMC6BGT0=";
nativeBuildInputs = [
+3 -3
View File
@@ -88,16 +88,16 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "matrix-tuwunel";
version = "1.4.7";
version = "1.4.8";
src = fetchFromGitHub {
owner = "matrix-construct";
repo = "tuwunel";
tag = "v${finalAttrs.version}";
hash = "sha256-TaMPGxVRV7MpTIdIWylKeiZa22s8EgNGSiiXNUWonfc=";
hash = "sha256-NKq5bEn40nHIewmaVPQ2aFJEZ4jkmnXDAZ/lL3rD8iQ=";
};
cargoHash = "sha256-ZfC6Rqd3Or23TEoGuKu1pB+USv7rlOEzRYBisoK2Pcc=";
cargoHash = "sha256-7BC8I3urT9/fArVm9Ji5U0jzAqovUE914jgZz8ejiUk=";
nativeBuildInputs = [
pkg-config
+2 -2
View File
@@ -6,12 +6,12 @@
}:
stdenv.mkDerivation (finalAttrs: {
version = "11.89";
version = "11.90";
pname = "monkeys-audio";
src = fetchzip {
url = "https://monkeysaudio.com/files/MAC_${builtins.concatStringsSep "" (lib.strings.splitString "." finalAttrs.version)}_SDK.zip";
hash = "sha256-oXMQUnmFepcaC2UjC7f2Ojd1gHc4dL5ZFnhtVdThIV8=";
hash = "sha256-S1vByCnpZPX/lfaLCPY0Cj2YXRHVtT/FzXuxebQVdRo=";
stripRoot = false;
};
@@ -1,27 +0,0 @@
diff --git a/backend/open_webui/retrieval/utils.py b/backend/open_webui/retrieval/utils.py
index da570330b..6ea16e249 100644
--- a/backend/open_webui/retrieval/utils.py
+++ b/backend/open_webui/retrieval/utils.py
@@ -10,7 +10,7 @@ import re
from urllib.parse import quote
from huggingface_hub import snapshot_download
-from langchain.retrievers import ContextualCompressionRetriever, EnsembleRetriever
+from langchain_classic.retrievers import ContextualCompressionRetriever, EnsembleRetriever
from langchain_community.retrievers import BM25Retriever
from langchain_core.documents import Document
diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py
index f8147372f..363bb4706 100644
--- a/backend/open_webui/routers/retrieval.py
+++ b/backend/open_webui/routers/retrieval.py
@@ -28,8 +28,7 @@ from pydantic import BaseModel
import tiktoken
-from langchain.text_splitter import RecursiveCharacterTextSplitter, TokenTextSplitter
-from langchain_text_splitters import MarkdownHeaderTextSplitter
+from langchain_text_splitters import MarkdownHeaderTextSplitter, RecursiveCharacterTextSplitter, TokenTextSplitter
from langchain_core.documents import Document
from open_webui.models.files import FileModel, Files
+5 -5
View File
@@ -9,13 +9,13 @@
}:
let
pname = "open-webui";
version = "0.6.41";
version = "0.6.43";
src = fetchFromGitHub {
owner = "open-webui";
repo = "open-webui";
tag = "v${version}";
hash = "sha256-/RpLiTz8WiI2fTJuLcksbB0pa5HOR13ci4G2LjdZu7Y=";
hash = "sha256-gkCG2SIYCF89IFi6neslvZNFyoC6PrMM2Vda/a3mc0k=";
};
frontend = buildNpmPackage rec {
@@ -32,7 +32,7 @@ let
url = "https://github.com/pyodide/pyodide/releases/download/${pyodideVersion}/pyodide-${pyodideVersion}.tar.bz2";
};
npmDepsHash = "sha256-n31+P5QU0XsuyNvipUU2A9f7CE3jKQa8ZAfwFuS3SXg=";
npmDepsHash = "sha256-bw0f6jlA09s7Ptd8+q8RHRFZgnyE+ecsfY30XdKlyRM=";
# See https://github.com/open-webui/open-webui/issues/15880
npmFlags = [
@@ -75,8 +75,6 @@ python3Packages.buildPythonApplication rec {
build-system = with python3Packages; [ hatchling ];
patches = [ ./langchain-v1.patch ];
# Not force-including the frontend build directory as frontend is managed by the `frontend` derivation above.
postPatch = ''
substituteInPlace pyproject.toml \
@@ -133,6 +131,7 @@ python3Packages.buildPythonApplication rec {
langchain
langchain-classic
langchain-community
langchain-text-splitters
langdetect
ldap3
loguru
@@ -173,6 +172,7 @@ python3Packages.buildPythonApplication rec {
pypdf
python-dotenv
python-jose
python-mimeparse
python-multipart
python-pptx
python-socketio
+2 -2
View File
@@ -13,12 +13,12 @@
}:
let
pname = "opencode";
version = "1.0.180";
version = "1.0.184";
src = fetchFromGitHub {
owner = "sst";
repo = "opencode";
tag = "v${version}";
hash = "sha256-Jwniz/mxMrzR6FL5fL3JRG1mkMP57wxpdtPBpSFxNfY=";
hash = "sha256-qEVFORKMoaLTsBbs2D9aLaD1W4vbQppJ6fB+bHWLcgM=";
};
node_modules = stdenvNoCC.mkDerivation {
+3 -3
View File
@@ -22,13 +22,13 @@ assert lib.assertOneOf "romID" romID roms;
stdenv.mkDerivation (finalAttrs: {
pname = "perfect_dark";
version = "0-unstable-2025-12-07";
version = "0-unstable-2025-12-20";
src = fetchFromGitHub {
owner = "fgsfdsfgs";
repo = "perfect_dark";
rev = "a6374b016ded42dd28fee886cac0d647f807b2a5";
hash = "sha256-+wkWBgGtVd9ipRu8xI3FTpjsptHapoTXkVJgUlCgUq8=";
rev = "2550ce72f4d211d493e3b9057046b16547073fe1";
hash = "sha256-iRzrVTe2dXdO/ZVvcNKbWpe+z3sH2l6AReiig5i9WOQ=";
postFetch = ''
pushd $out
+11
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch2,
supportCompressedPackets ? true,
zlib,
bzip2,
@@ -18,6 +19,16 @@ stdenv.mkDerivation rec {
sha256 = "sha256-JKedgHCTDnvLyLR3nGl4XFAaxXDU1TgHrxPMlRFwtBo=";
};
patches = [
# Fix for GCC 15. Remove on next package update.
# https://github.com/kazu-yamamoto/pgpdump/pull/45
(fetchpatch2 {
name = "fix-c23-compatibility.patch";
url = "https://github.com/kazu-yamamoto/pgpdump/commit/541442dc04259bde680b46742522177be40cc065.patch?full_index=1";
hash = "sha256-ye+B8hy0etGcwCG9pD0jCnrg+U5VpFkERad61CexW9Y=";
})
];
buildInputs = lib.optionals supportCompressedPackets [
zlib
bzip2
+7 -3
View File
@@ -84,10 +84,14 @@ stdenv.mkDerivation (finalAttrs: {
# install frontend
ln -s ${frontend}/assets/* ${assets_path}
rm ${assets_path}/models
mkdir -p ${assets_path}/models
ln -s ${frontend}/assets/models/* ${assets_path}/models/
# install tensorflow models
ln -s ${nasnet}/nasnet ${assets_path}
ln -s ${nsfw}/nsfw ${assets_path}
ln -s ${facenet}/facenet ${assets_path}
ln -s ${nasnet}/nasnet ${assets_path}/models/
ln -s ${nsfw}/nsfw ${assets_path}/models/
ln -s ${facenet}/facenet ${assets_path}/models/
runHook postInstall
'';
+40
View File
@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "pxa-mkbootimg";
version = "2022.11.09";
src = fetchFromGitHub {
owner = "osm0sis";
repo = "pxa-mkbootimg";
rev = finalAttrs.version;
hash = "sha256-CZxtTPUlbUNsYTdNK0UYhlU45rYy4ToODE00MGlOPb0=";
};
strictDeps = true;
env.NIX_CFLAGS_COMPILE = toString (
lib.optional stdenv.cc.isGNU [
# Required with newer GCC
"-Wno-error=stringop-overflow"
]
);
# Upstream has an install target, but doesn't install all required binaries
installPhase = ''
runHook preInstall
install -Dm555 -t $out/bin {pxa-mkbootimg,pxa-unpackbootimg,pxa1088-dtbtool,pxa1908-dtbtool}
runHook postInstall
'';
meta = {
homepage = "https://github.com/osm0sis/pxa-mkbootimg";
description = "Boot image tool variants for the Marvell PXA1088 and PXA1908 boards";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ ungeskriptet ];
mainProgram = "pxa-mkbootimg";
};
})
+2 -2
View File
@@ -13,7 +13,7 @@ let
src = fetchFromGitHub {
owner = "perseas";
repo = "pgdbconn";
rev = "v${version}";
tag = "v${version}";
sha256 = "09r4idk5kmqi3yig7ip61r6js8blnmac5n4q32cdcbp1rcwzdn6z";
};
@@ -36,7 +36,7 @@ python3Packages.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "perseas";
repo = "Pyrseas";
rev = version;
tag = "v${version}";
sha256 = "sha256-+MxnxvbLMxK1Ak+qKpKe3GHbzzC+XHO0eR7rl4ON9H4=";
};
-27
View File
@@ -1,27 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "qes";
version = "0.0.2";
src = fetchFromGitHub {
owner = "koekeishiya";
repo = "qes";
rev = "ddedf008f0c38b134501ad9f328447b671423d34"; # no tag
sha256 = "1w9ppid7jg6f4q7pq40lhm0whg7xmnxcmf3pb9xqfkq2zj2f7dxv";
};
makeFlags = [ "BUILD_PATH=$(out)/bin" ];
meta = {
description = "Quartz Event Synthesizer";
homepage = "https://github.com/koekeishiya/qes";
platforms = lib.platforms.darwin;
maintainers = with lib.maintainers; [ lnl7 ];
license = lib.licenses.mit;
};
}
+8 -4
View File
@@ -10,16 +10,20 @@
buildGoModule rec {
pname = "readeck";
version = "0.21.3";
version = "0.21.5";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "readeck";
repo = "readeck";
tag = version;
hash = "sha256-d4FLyD2uOngUANc7fai8j0wZSY1ISS18JEBDxCqXdQw=";
hash = "sha256-9M9Bgl1CJ35x/Onlk5xUNCFkZKW40efF6qMOM+2/HR0=";
};
postPatch = ''
sed -i -e '/^go /s/1.25.5/1.25.4/' go.mod
'';
nativeBuildInputs = [
nodejs
npmHooks.npmConfigHook
@@ -62,10 +66,10 @@ buildGoModule rec {
npmDeps = fetchNpmDeps {
src = "${src}/web";
hash = "sha256-XT+4IR1xVXiDY4wx2smt0pcNUx6UFoXYq+zxvbGsQ8A=";
hash = "sha256-znUKRaUdx6GXD2YL6hs0iveaAAHQ8H9n4NHZFi331+g=";
};
vendorHash = "sha256-IWRlruj+zYixCRgbaf7QYBeCGwzf0qRY8OFa4s/PzME=";
vendorHash = "sha256-2MB7v5oG/LcEKtgbFNxPXSI8TljpbqYUrI7pvu7m+e8=";
meta = {
description = "Web application that lets you save the readable content of web pages you want to keep forever";
+48
View File
@@ -0,0 +1,48 @@
{
lib,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "resterm";
version = "0.12.0";
src = fetchFromGitHub {
owner = "unkn0wn-root";
repo = "resterm";
tag = "v${finalAttrs.version}";
sha256 = "sha256-fqCJXWmmvgGpdJ+mAP2rizQUX3gQdN6rYW5dqkvWFns=";
};
vendorHash = "sha256-Kj60MkxqRYORANalbJnjgtHMDgxOUOeaF1opqcYnVww=";
subPackages = [ "cmd/resterm" ];
ldflags = [
"-s"
"-w"
"-X main.version=${finalAttrs.version}"
"-X main.commit=${finalAttrs.version}"
"-X main.date=1970-01-01_00:00:00_UTC"
];
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = {
description = "Terminal-based REST client";
homepage = "https://github.com/unkn0wn-root/resterm";
mainProgram = "resterm";
license = lib.licenses.asl20;
platforms = with lib.platforms; linux ++ darwin ++ windows;
maintainers = with lib.maintainers; [ lonerOrz ];
};
})
+2 -2
View File
@@ -17,11 +17,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "rovium";
version = "0.9.0";
version = "0.10.0";
src = fetchurl {
url = "https://github.com/rovium/rovium-beta/releases/download/v${finalAttrs.version}/rovium-${finalAttrs.version}-amd64.deb";
hash = "sha256-hGnjspZq1DXwBFQk89SbsQkm/o/5ecyh6IjJSdLu5Ys=";
hash = "sha256-kLSRYyUv1ideiqjqS4VTTTa64zL4jBMm1JMQvtBER10=";
};
strictDeps = true;
+1
View File
@@ -124,6 +124,7 @@ stdenv.mkDerivation (finalAttrs: {
tag = finalAttrs.version;
hash = "sha256-TEP2YNKUuAnvLg+aDOkMmYfPQIjUXWYOhprfqsr8EgQ=";
fetchSubmodules = true;
fetchTags = true;
deepClone = true;
postFetch = ''
cd $out
@@ -3,17 +3,29 @@
appimageTools,
fetchurl,
gitUpdater,
stdenv,
}:
let
pname = "simplex-chat-desktop";
version = "6.4.8";
src = fetchurl {
url = "https://github.com/simplex-chat/simplex-chat/releases/download/v${version}/simplex-desktop-x86_64.AppImage";
hash = "sha256-2XyA4UZ9EMzFnFNFFek1ka2MURBFFKyMolGMYZPD5Zw=";
sources = {
"aarch64-linux" = fetchurl {
url = "https://github.com/simplex-chat/simplex-chat/releases/download/v${version}/simplex-desktop-aarch64.AppImage";
hash = "sha256-CvHwYKbieRYbBKUCoKAa11rTy5Opdfb7FKS4poantKs=";
};
"x86_64-linux" = fetchurl {
url = "https://github.com/simplex-chat/simplex-chat/releases/download/v${version}/simplex-desktop-x86_64.AppImage";
hash = "sha256-2XyA4UZ9EMzFnFNFFek1ka2MURBFFKyMolGMYZPD5Zw=";
};
};
inherit (stdenv.hostPlatform) system;
throwSystem = throw "simplex-chat-desktop: Unsupported system: ${system}";
src = sources.${system} or throwSystem;
appimageContents = appimageTools.extract {
inherit pname version src;
};
@@ -46,6 +58,9 @@ appimageTools.wrapType2 {
changelog = "https://github.com/simplex-chat/simplex-chat/releases/tag/v${version}";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ terryg ];
platforms = [ "x86_64-linux" ];
platforms = [
"aarch64-linux"
"x86_64-linux"
];
};
}
+7 -3
View File
@@ -11,7 +11,7 @@
buildGoModule rec {
pname = "steampipe";
version = "2.3.2";
version = "2.3.4";
env.CGO_ENABLED = 0;
@@ -19,10 +19,10 @@ buildGoModule rec {
owner = "turbot";
repo = "steampipe";
tag = "v${version}";
hash = "sha256-RAMCbajhXzJDeDuNy0rE6jJDkw3NOw0dC4jLafkNmJc=";
hash = "sha256-6p3GbPQ60DK4V565ipZq3OZDB6Tu/5tynhka8EQQUf4=";
};
vendorHash = "sha256-1o7ANCyz19WSIkYYoA0DpYzkY2qBXHHSfAGrAG2+k88=";
vendorHash = "sha256-A4STD+EaUoYNgLwvD8B6IySE+wu+OsTydTukEnvWKjw=";
proxyVendor = true;
postPatch = ''
@@ -53,6 +53,10 @@ buildGoModule rec {
skippedTests = [
# panic: could not create backups directory: mkdir /var/empty/.steampipe: operation not permitted
"TestTrimBackups"
# Requires network access
"TestVersionCheckerBodyReadFailure"
"TestVersionCheckerNetworkFailures"
"TestVersionCheckerTimeout"
];
in
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
+2 -2
View File
@@ -11,12 +11,12 @@
python3Packages.buildPythonApplication rec {
pname = "streamlink";
version = "8.0.0";
version = "8.1.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-+2JSuHyx1NFN/Fvx9K3RAB6HAWsVC3SV4i6Xrq4mRlU=";
hash = "sha256-rNKXIZoMuq/+TikikFVLnEVAj6n25NwSEdHM0fSkQDk=";
};
patches = [
+3 -3
View File
@@ -17,13 +17,13 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "surfer";
version = "0.4.0";
version = "0.5.0";
src = fetchFromGitLab {
owner = "surfer-project";
repo = "surfer";
rev = "v${finalAttrs.version}";
hash = "sha256-rNJIe6FlAQI2B3lsRYHKMIGgJ1Q5EFX7kWgml+sXxtc=";
hash = "sha256-2ikeG4K1CpyHgAZZfPzEFRXRoEh2PnOIf+8OREO6xug=";
fetchSubmodules = true;
};
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
libXi
];
cargoHash = "sha256-Q4SyuBNR7FnBe3h1rUo48Sxk2COdQbECiXXrGpwXhPk=";
cargoHash = "sha256-E+9u7t6bLzORL2HiG4iT5pT4nGftyOgO2/eXHuQK4pQ=";
# Avoid the network attempt from skia. See: https://github.com/cargo2nix/cargo2nix/issues/318
doCheck = false;
+10 -25
View File
@@ -5,6 +5,7 @@
fetchFromGitHub,
callPackage,
installShellFiles,
writableTmpDirAsHomeHook,
nix-update-script,
testers,
targetPackages,
@@ -33,41 +34,25 @@ let
strictDeps = true;
nativeBuildInputs = [
installShellFiles
writableTmpDirAsHomeHook
];
# TODO(@getchoo): Investigate selectively disabling some tests, or fixing them
# https://github.com/NixOS/nixpkgs/pull/423662#issuecomment-3156362941
doCheck = false;
postPatch = ''
# Remove keybinding overrides from shell completion scripts
# Users should configure their own keybindings
# Bash: Remove bind commands
sed -i '/^# Bind the functions to key combinations/,$d' \
television/utils/shell/completion.bash
# Fish: Remove bind commands for both modes
sed -i '/^for mode in default insert/,$d' \
television/utils/shell/completion.fish
# Nushell: Remove keybinding configuration
sed -i '/^# Bind custom keybindings/,$d' \
television/utils/shell/completion.nu
# Zsh: Remove zle and bindkey commands
sed -i '/^zle -N tv-smart-autocomplete/,$d' \
television/utils/shell/completion.zsh
'';
postInstall = ''
installManPage target/${stdenv.hostPlatform.rust.cargoShortTarget}/assets/tv.1
# These are actually shell integrations with keybindings
install -Dm644 television/utils/shell/completion.* -t $out/share/television/
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd tv \
television/utils/shell/completion.bash \
television/utils/shell/completion.fish \
television/utils/shell/completion.nu \
television/utils/shell/completion.zsh
--bash <($out/bin/tv init bash) \
--fish <($out/bin/tv init fish) \
--zsh <($out/bin/tv init zsh) \
--nushell <($out/bin/tv init nu)
'';
passthru = {
-35
View File
@@ -1,35 +0,0 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "tf2pulumi";
version = "0.12.0";
src = fetchFromGitHub {
owner = "pulumi";
repo = "tf2pulumi";
rev = "v${version}";
sha256 = "sha256-i6nK1AEnQY47ro6tNDBExdcb9WvltY/21FVrVaiSTvo=";
};
vendorHash = "sha256-x7GAkbvhML2VUQ9/zitrTBBiy9lISb3iTx6yn5WbEig=";
ldflags = [
"-s"
"-w"
"-X=github.com/pulumi/tf2pulumi/version.Version=${src.rev}"
];
subPackages = [ "." ];
meta = {
description = "Convert Terraform projects to Pulumi TypeScript programs";
mainProgram = "tf2pulumi";
homepage = "https://www.pulumi.com/tf2pulumi/";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ mausch ];
};
}
+1 -1
View File
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${version}.tar.gz";
hash = "sha256-i1IsxT+pjkKbJjHwnMcyb12nxe21mwvnoRGHMabMETY=";
hash = "sha256-LkiL/8W9MKpmJxtK+s5JvqhOza0BLap1SsaDvbLYR0c=";
};
nativeBuildInputs = [
+1 -1
View File
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "libgbm";
owner = "Mesa";
repo = "waffle";
rev = "v${version}";
sha256 = "sha256-Y7GRYLqSO572qA1eZ3jS8QlZ1X9xKpDtScaySTuPK/U=";
+1 -1
View File
@@ -23,7 +23,7 @@
}:
llvmPackages.stdenv.mkDerivation (finalAttrs: {
pname = "waypipe";
version = "0.10.6";
version = "0.11.0";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
+3 -3
View File
@@ -20,13 +20,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "web-archives";
version = "0.5.0";
version = "0.5.1";
src = fetchFromGitHub {
owner = "birros";
repo = "web-archives";
rev = "v${finalAttrs.version}";
hash = "sha256-EYHChI+4tpjRp4KveHTB+5BSLtw0YLp5z2JJmA0xTlM=";
tag = "v${finalAttrs.version}";
hash = "sha256-aP42WiSmpkAw7FtxUftIsHKDztt60xKcL8Zq2iTSRn8=";
};
web-archive-darkreader = fetchurl {
+1 -2
View File
@@ -138,7 +138,6 @@ else
libjpeg
libtool
libxkbcommon
nss
nspr
udev
gtk3
@@ -170,7 +169,7 @@ else
rm -rf usr/share/{fonts,locale}
rm -f usr/bin/misc
rm -rf opt/kingsoft/wps-office/{desktops,INSTALL}
rm -f opt/kingsoft/wps-office/office6/lib{peony-wpsprint-menu-plugin,bz2,jpeg,stdc++,gcc_s,odbc*,nss*,dbus-1}.so*
rm -f opt/kingsoft/wps-office/office6/lib{peony-wpsprint-menu-plugin,bz2,jpeg,stdc++,gcc_s,odbc*,dbus-1}.so*
'';
installPhase = ''
@@ -13,13 +13,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "xdg-desktop-portal-termfilechooser";
version = "1.2.1";
version = "1.3.0";
src = fetchFromGitHub {
owner = "hunkyburrito";
repo = "xdg-desktop-portal-termfilechooser";
tag = "v${finalAttrs.version}";
hash = "sha256-IlPNNuQaGVW5QXcyA8cWiFJxwgXmviQoisDUWX9QP2s=";
hash = "sha256-7fbQ0iraT3UQFgpb9Jlfo0myS72IiH5+vyU7dAzldfM=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "xmake";
version = "3.0.4";
version = "3.0.5";
src = fetchFromGitHub {
owner = "xmake-io";
repo = "xmake";
tag = "v${finalAttrs.version}";
hash = "sha256-0Hh7XqKAt0yrg1GejEZmKpY3c8EvK7Z2eBS8GNaxYlg=";
hash = "sha256-rmChbjWRFL2vchifupLBraalMHYze035xjLNLCYzwm8=";
fetchSubmodules = true;
};
+13 -2
View File
@@ -1,5 +1,6 @@
{
lib,
stdenv,
fetchFromGitHub,
python3Packages,
testers,
@@ -8,14 +9,14 @@
python3Packages.buildPythonApplication rec {
pname = "zabbix-cli";
version = "3.5.3";
version = "3.6.2";
pyproject = true;
src = fetchFromGitHub {
owner = "unioslo";
repo = "zabbix-cli";
tag = version;
hash = "sha256-Fk3o0+cNCX/ixqNd9oldY6JJ+wQWlMjBAEwuAWCLURQ=";
hash = "sha256-Y4IR/le+7X3MYmrVnZMr+Gu59LkCB5UfMJ2s9ovSjLM=";
};
build-system = with python3Packages; [
@@ -33,6 +34,7 @@ python3Packages.buildPythonApplication rec {
pydantic
requests
rich
shellingham
strenum
tomli
tomli-w
@@ -59,6 +61,15 @@ python3Packages.buildPythonApplication rec {
disabledTests = [
# Disable failing test with Click >= v8.2.0
"test_patch_get_click_type"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Requires network access
"test_authenticator_login_with_any"
"test_client_auth_method"
"test_client_logout"
# PermissionError: [Errno 1] Operation not permitted: 'ps'
"test_is_headless_map"
"test_is_headless_set_false"
];
pythonImportsCheck = [ "zabbix_cli" ];
+3 -3
View File
@@ -5,16 +5,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "zeekstd";
version = "0.4.2";
version = "0.4.3";
src = fetchFromGitHub {
owner = "rorosen";
repo = "zeekstd";
tag = "v${finalAttrs.version}-cli";
hash = "sha256-aht+QUprnSdBxJajBPgzqWzzOpkyrtzvJ98nqYKDCdc=";
hash = "sha256-E8xOcc3gDCRSZUrnrAPOJGnx0YSK/1FxZZOgusESpeE=";
};
cargoHash = "sha256-GEWCR4EaNQkB9mYxcWjlqSt75ko68RIU/10M4+zB+to=";
cargoHash = "sha256-0wqRDhopbSfILABEpjuTLfOuwIH+5jzTVl9av7+7098=";
meta = {
description = "CLI tool that works with the zstd seekable format";
@@ -2808,12 +2808,12 @@ with haskellLib;
doJailbreak
# 2022-12-02: Hackage release lags behind actual releases: https://github.com/PostgREST/postgrest/issues/2275
(overrideSrc rec {
version = "14.1";
version = "14.2";
src = pkgs.fetchFromGitHub {
owner = "PostgREST";
repo = "postgrest";
rev = "v${version}";
hash = "sha256-VGmo0Y8Q86euPlu3AhMmcmy3rintNy6s9efpUaliBWY=";
hash = "sha256-wvE3foz2miOzA3hZ1Ar5XR0FUvP5EqAk010dXp8hiz0=";
};
})
];
+13 -10
View File
@@ -218,16 +218,19 @@ stdenv.mkDerivation {
++ lib.optional (
lib.versionAtLeast version "1.81" && lib.versionOlder version "1.88" && stdenv.cc.isClang
) ./fix-clang-target.patch
++ lib.optional (lib.versionAtLeast version "1.86" && lib.versionOlder version "1.87") [
# Backport fix for NumPy 2 support.
(fetchpatch {
name = "boost-numpy-2-compatibility.patch";
url = "https://github.com/boostorg/python/commit/0474de0f6cc9c6e7230aeb7164af2f7e4ccf74bf.patch";
stripLen = 1;
extraPrefix = "libs/python/";
hash = "sha256-0IHK55JSujYcwEVOuLkwOa/iPEkdAKQlwVWR42p/X2U=";
})
]
++
lib.optional (lib.versionAtLeast version "1.86" && lib.versionOlder version "1.87")
# Backport fix for NumPy 2 support.
(
fetchpatch {
name = "boost-numpy-2-compatibility.patch";
url = "https://github.com/boostorg/python/commit/0474de0f6cc9c6e7230aeb7164af2f7e4ccf74bf.patch";
stripLen = 1;
extraPrefix = "libs/python/";
hash = "sha256-0IHK55JSujYcwEVOuLkwOa/iPEkdAKQlwVWR42p/X2U=";
}
)
++ lib.optionals (version == "1.87.0") [
# Fix operator<< for shared_ptr and intrusive_ptr
# https://github.com/boostorg/smart_ptr/issues/115
@@ -29,6 +29,5 @@ buildPythonPackage rec {
homepage = "https://github.com/sphinx-doc/alabaster";
description = "Light, configurable Sphinx theme";
license = lib.licenses.bsd3;
teams = [ lib.teams.sphinx ];
};
}
@@ -20,12 +20,12 @@
buildPythonPackage rec {
pname = "alembic";
version = "1.16.4";
version = "1.17.2";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-76tq2g3Q+uLJIGCADgv1wdwmrxWhDgL7S6v/FktHJeI=";
hash = "sha256-u+l1FwXF4PFId/AtRsU9EIheN349kO2oEKAW+bqhno4=";
};
build-system = [ setuptools ];
@@ -358,13 +358,13 @@
buildPythonPackage rec {
pname = "boto3-stubs";
version = "1.42.12";
version = "1.42.14";
pyproject = true;
src = fetchPypi {
pname = "boto3_stubs";
inherit version;
hash = "sha256-GKmpcP2diGdVjwkWCPLZlE1vVRQ9I8sReF8cFD2RqlQ=";
hash = "sha256-sGxL55NIVz+gP8f75L2C67x+HifPIIyPWre/y3X1XAU=";
};
build-system = [ setuptools ];
@@ -9,13 +9,13 @@
buildPythonPackage rec {
pname = "botocore-stubs";
version = "1.42.12";
version = "1.42.14";
pyproject = true;
src = fetchPypi {
pname = "botocore_stubs";
inherit version;
hash = "sha256-DqrIhSRBeU8UvbgjsLDcHHIgzwJOUGAx1eDSxIVeJ38=";
hash = "sha256-Y1GS+1EOWbb0aEPJiTApuP04e3CJ7HL3AAYzFqZ7uxQ=";
};
nativeBuildInputs = [ setuptools ];

Some files were not shown because too many files have changed in this diff Show More