Merge remote-tracking branch 'origin/master' into staging-next

This commit is contained in:
K900 2025-04-29 21:14:51 +03:00
commit b33f6719ea
68 changed files with 990 additions and 406 deletions

View file

@ -61,6 +61,10 @@
OpenSMTPD 7.6.0 or later. The package has been removed in favor of a set of new OpenSMTPD 7.6.0 or later. The package has been removed in favor of a set of new
`opensmtpd-table-*` packages. `opensmtpd-table-*` packages.
- `postsrsd` upgraded to `>= 2.0.0`, with some different behaviors and
configuration settings. Notably, it now defaults to listening on a socket
rather than a port. See [Migrating from version 1.x](https://github.com/roehling/postsrsd/blob/2.0.10/README.rst#migrating-from-version-1x) and [Postfix Setup](https://github.com/roehling/postsrsd?tab=readme-ov-file#postfix-setup) for details.
- The hand written `perlPackages.SearchXapian` bindings have been dropped in favor of the (mostly compatible) - The hand written `perlPackages.SearchXapian` bindings have been dropped in favor of the (mostly compatible)
`perlPackages.Xapian`. `perlPackages.Xapian`.

View file

@ -2115,6 +2115,12 @@
githubId = 891399; githubId = 891399;
name = "Alessandro Sappia"; name = "Alessandro Sappia";
}; };
asauzeau = {
email = "antoine.sauzeau3@gmail.com";
github = "AntoineSauzeau";
githubId = 72159603;
name = "Antoine Sauzeau";
};
asbachb = { asbachb = {
email = "asbachb-nixpkgs-5c2a@impl.it"; email = "asbachb-nixpkgs-5c2a@impl.it";
matrix = "@asbachb:matrix.org"; matrix = "@asbachb:matrix.org";
@ -24059,6 +24065,13 @@
githubId = 886074; githubId = 886074;
name = "Matthieu Coudron"; name = "Matthieu Coudron";
}; };
tetov = {
email = "anton@tetov.se";
github = "tetov";
githubId = 14882117;
keys = [ { fingerprint = "2B4D 0035 AFF0 F7DA CE5B 29D7 337D DB57 4A88 34DB"; } ];
name = "Anton Tetov";
};
teutat3s = { teutat3s = {
email = "teutates@mailbox.org"; email = "teutates@mailbox.org";
matrix = "@teutat3s:pub.solar"; matrix = "@teutat3s:pub.solar";

View file

@ -232,6 +232,10 @@
- [CookCLI](https://cooklang.org/cli/) Server, a web UI for cooklang recipes. - [CookCLI](https://cooklang.org/cli/) Server, a web UI for cooklang recipes.
- [Prometheus eBPF Exporter](https://github.com/cloudflare/ebpf_exporter),
Prometheus exporter for custom eBPF metrics. Available as
[services.prometheus.exporters.ebpf](#opt-services.prometheus.exporters.ebpf.enable).
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. --> <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Backward Incompatibilities {#sec-release-25.05-incompatibilities} ## Backward Incompatibilities {#sec-release-25.05-incompatibilities}
@ -477,6 +481,8 @@
- [`system.stateVersion`](#opt-system.stateVersion) is now validated and must be in the `"YY.MM"` format, ideally corresponding to a prior NixOS release. - [`system.stateVersion`](#opt-system.stateVersion) is now validated and must be in the `"YY.MM"` format, ideally corresponding to a prior NixOS release.
- [`hardware.xone`](options.html#opt-hardware.xone.enable) will also enable [`hardware.xpad-noone`](options.html#opt-hardware.xpad-noone.enable) to provide Xbox 360 driver by default.
- `services.mysql` now supports easy cluster setup via [`services.mysql.galeraCluster`](#opt-services.mysql.galeraCluster.enable) option. - `services.mysql` now supports easy cluster setup via [`services.mysql.galeraCluster`](#opt-services.mysql.galeraCluster.enable) option.
Example: Example:

View file

@ -21,6 +21,7 @@ in
extraModulePackages = with config.boot.kernelPackages; [ xone ]; extraModulePackages = with config.boot.kernelPackages; [ xone ];
}; };
hardware.firmware = [ pkgs.xow_dongle-firmware ]; hardware.firmware = [ pkgs.xow_dongle-firmware ];
hardware.xpad-noone.enable = lib.mkDefault true;
}; };
meta = { meta = {

View file

@ -7,16 +7,52 @@
let let
cfg = config.services.postsrsd; cfg = config.services.postsrsd;
runtimeDirectoryName = "postsrsd";
runtimeDirectory = "/run/${runtimeDirectoryName}";
# TODO: follow RFC 42, but we need a libconfuse format first:
# https://github.com/NixOS/nixpkgs/issues/401565
# Arrays in `libconfuse` look like this: {"Life", "Universe", "Everything"}
# See https://www.nongnu.org/confuse/tutorial-html/ar01s03.html.
#
# Note: We're using `builtins.toJSON` to escape strings, but JSON strings
# don't have exactly the same semantics as libconfuse strings. For example,
# "${F}" gets treated as an env var reference, see above issue for details.
libconfuseDomains = "{ " + lib.concatMapStringsSep ", " builtins.toJSON cfg.domains + " }";
configFile = pkgs.writeText "postsrsd.conf" ''
secrets-file = "''${CREDENTIALS_DIRECTORY}/secrets-file"
domains = ${libconfuseDomains}
separator = "${cfg.separator}"
socketmap = "unix:${runtimeDirectory}/socket"
# Disable postsrsd's jailing in favor of confinement with systemd.
unprivileged-user = ""
chroot-dir = ""
'';
in in
{ {
imports =
###### interface map
(
name:
lib.mkRemovedOptionModule [ "services" "postsrsd" name ] ''
`postsrsd` was upgraded to `>= 2.0.0`, with some different behaviors and configuration settings:
- NixOS Release Notes: https://nixos.org/manual/nixos/unstable/release-notes#sec-nixpkgs-release-25.05-incompatibilities
- NixOS Options Reference: https://nixos.org/manual/nixos/unstable/options#opt-services.postsrsd.enable
- Migration instructions: https://github.com/roehling/postsrsd/blob/2.0.10/README.rst#migrating-from-version-1x
- Postfix Setup: https://github.com/roehling/postsrsd/blob/2.0.10/README.rst#postfix-setup
''
)
[
"domain"
"forwardPort"
"reversePort"
"timeout"
"excludeDomains"
];
options = { options = {
services.postsrsd = { services.postsrsd = {
enable = lib.mkOption { enable = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
default = false; default = false;
@ -29,9 +65,11 @@ in
description = "Secret keys used for signing and verification"; description = "Secret keys used for signing and verification";
}; };
domain = lib.mkOption { domains = lib.mkOption {
type = lib.types.str; type = lib.types.listOf lib.types.str;
description = "Domain name for rewrite"; description = "Domain names for rewrite";
default = [ config.networking.hostName ];
defaultText = lib.literalExpression "[ config.networking.hostName ]";
}; };
separator = lib.mkOption { separator = lib.mkOption {
@ -44,36 +82,6 @@ in
description = "First separator character in generated addresses"; description = "First separator character in generated addresses";
}; };
# bindAddress = lib.mkOption { # uncomment once 1.5 is released
# type = lib.types.str;
# default = "127.0.0.1";
# description = "Socket listen address";
# };
forwardPort = lib.mkOption {
type = lib.types.int;
default = 10001;
description = "Port for the forward SRS lookup";
};
reversePort = lib.mkOption {
type = lib.types.int;
default = 10002;
description = "Port for the reverse SRS lookup";
};
timeout = lib.mkOption {
type = lib.types.int;
default = 1800;
description = "Timeout for idle client connections in seconds";
};
excludeDomains = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = "Origin domains to exclude from rewriting in addition to primary domain";
};
user = lib.mkOption { user = lib.mkOption {
type = lib.types.str; type = lib.types.str;
default = "postsrsd"; default = "postsrsd";
@ -85,17 +93,10 @@ in
default = "postsrsd"; default = "postsrsd";
description = "Group for the daemon"; description = "Group for the daemon";
}; };
}; };
}; };
###### implementation
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
services.postsrsd.domain = lib.mkDefault config.networking.hostName;
users.users = lib.optionalAttrs (cfg.user == "postsrsd") { users.users = lib.optionalAttrs (cfg.user == "postsrsd") {
postsrsd = { postsrsd = {
group = cfg.group; group = cfg.group;
@ -107,30 +108,42 @@ in
postsrsd.gid = config.ids.gids.postsrsd; postsrsd.gid = config.ids.gids.postsrsd;
}; };
systemd.services.postsrsd = { systemd.services.postsrsd-generate-secrets = {
description = "PostSRSd SRS rewriting server";
after = [ "network.target" ];
before = [ "postfix.service" ];
wantedBy = [ "multi-user.target" ];
path = [ pkgs.coreutils ]; path = [ pkgs.coreutils ];
script = ''
serviceConfig = { if [ -e "${cfg.secretsFile}" ]; then
ExecStart = ''${pkgs.postsrsd}/sbin/postsrsd "-s${cfg.secretsFile}" "-d${cfg.domain}" -a${cfg.separator} -f${toString cfg.forwardPort} -r${toString cfg.reversePort} -t${toString cfg.timeout} "-X${lib.concatStringsSep "," cfg.excludeDomains}"''; echo "Secrets file exists. Nothing to do!"
User = cfg.user; else
Group = cfg.group;
PermissionsStartOnly = true;
};
preStart = ''
if [ ! -e "${cfg.secretsFile}" ]; then
echo "WARNING: secrets file not found, autogenerating!" echo "WARNING: secrets file not found, autogenerating!"
DIR="$(dirname "${cfg.secretsFile}")" DIR="$(dirname "${cfg.secretsFile}")"
install -m 750 -o ${cfg.user} -g ${cfg.group} -d "$DIR" install -m 750 -o ${cfg.user} -g ${cfg.group} -d "$DIR"
install -m 600 -o ${cfg.user} -g ${cfg.group} <(dd if=/dev/random bs=18 count=1 | base64) "${cfg.secretsFile}" install -m 600 -o ${cfg.user} -g ${cfg.group} <(dd if=/dev/random bs=18 count=1 | base64) "${cfg.secretsFile}"
fi fi
''; '';
serviceConfig = {
Type = "oneshot";
};
}; };
systemd.services.postsrsd = {
description = "PostSRSd SRS rewriting server";
after = [
"network.target"
"postsrsd-generate-secrets.service"
];
before = [ "postfix.service" ];
wantedBy = [ "multi-user.target" ];
requires = [ "postsrsd-generate-secrets.service" ];
confinement.enable = true;
serviceConfig = {
ExecStart = "${lib.getExe pkgs.postsrsd} -C ${configFile}";
User = cfg.user;
Group = cfg.group;
PermissionsStartOnly = true;
RuntimeDirectory = runtimeDirectoryName;
LoadCredential = "secrets-file:${cfg.secretsFile}";
};
};
}; };
} }

View file

@ -65,6 +65,7 @@ let
"dnssec" "dnssec"
"domain" "domain"
"dovecot" "dovecot"
"ebpf"
"fastly" "fastly"
"flow" "flow"
"fritz" "fritz"

View file

@ -0,0 +1,49 @@
{
config,
lib,
pkgs,
options,
...
}:
let
cfg = config.services.prometheus.exporters.ebpf;
inherit (lib)
mkOption
types
concatStringsSep
;
in
{
port = 9435;
extraOpts = {
names = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ "timers" ];
description = ''
List of eBPF programs to load
'';
};
};
serviceOpts = {
serviceConfig = {
AmbientCapabilities = [
"CAP_BPF"
"CAP_DAC_READ_SEARCH"
"CAP_PERFMON"
];
CapabilityBoundingSet = [
"CAP_BPF"
"CAP_DAC_READ_SEARCH"
"CAP_PERFMON"
];
ExecStart = ''
${pkgs.prometheus-ebpf-exporter}/bin/ebpf_exporter \
--config.dir=${pkgs.prometheus-ebpf-exporter}/examples \
--config.names=${concatStringsSep "," cfg.names} \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port}
'';
};
};
}

View file

@ -407,6 +407,20 @@ let
''; '';
}; };
ebpf = {
exporterConfig = {
enable = true;
names = [ "timers" ];
};
exporterTest = ''
wait_for_unit("prometheus-ebpf-exporter.service")
wait_for_open_port(9435)
succeed(
"curl -sSf http://localhost:9435/metrics | grep 'ebpf_exporter_enabled_configs{name=\"timers\"} 1'"
)
'';
};
fastly = { fastly = {
exporterConfig = { exporterConfig = {
enable = true; enable = true;

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "imapfilter"; pname = "imapfilter";
version = "2.8.2"; version = "2.8.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lefcha"; owner = "lefcha";
repo = "imapfilter"; repo = "imapfilter";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
sha256 = "sha256-pYnv9slw4bRPfCnhd/tlJC9JEx+3h40nyZ3qUll7p6c="; sha256 = "sha256-9uPcdxZioXfdSuZO/fgtoIbQdWtc2DRr28iTonnG05U=";
}; };
makeFlags = [ makeFlags = [
"SSLCAFILE=/etc/ssl/certs/ca-bundle.crt" "SSLCAFILE=/etc/ssl/certs/ca-bundle.crt"

View file

@ -5,7 +5,9 @@ const path = require('path')
const urlToName = url => { const urlToName = url => {
const isCodeloadGitTarballUrl = url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/') const isCodeloadGitTarballUrl = url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/')
if (url.startsWith('git+') || isCodeloadGitTarballUrl) { if (url.startsWith('file:')) {
return url
} else if (url.startsWith('git+') || isCodeloadGitTarballUrl) {
return path.basename(url) return path.basename(url)
} else { } else {
return url return url

View file

@ -1,9 +1,9 @@
{ {
"owner": "advplyr", "owner": "advplyr",
"repo": "audiobookshelf", "repo": "audiobookshelf",
"rev": "38f05a857ff3cec50bafb594b5d0ab49d6c585ae", "rev": "fd84cd0d7f647705a49f300b9bdb940f9725e1a7",
"hash": "sha256-FFZPhQRqmL6pp5aS6qg1Dhf80PAFE2O9oDJB5kSHL50=", "hash": "sha256-+e8CaJaDuYsj48nF98uLf9dSeXGWEDvNy5myQ9x2Yug=",
"version": "2.20.0", "version": "2.21.0",
"depsHash": "sha256-mB57omyxV338K4LpNMfIThLc2Mz71NqEyFTjWrfAo10=", "depsHash": "sha256-AwY4TrIm5jR7lu/l9RyOzwX4N31Q8x+WKeIbxW4+g8s=",
"clientDepsHash": "sha256-Wnmue1aGWN9rwP3xYp5q+POP85tHY5gbYBQMKXu9H3Q=" "clientDepsHash": "sha256-rQT0l7Gs5xwDaP+5rhX2nUGBk5jaUMo0JR0Emo87ie4="
} }

View file

@ -6,13 +6,13 @@
buildGoModule rec { buildGoModule rec {
pname = "aws-lambda-runtime-interface-emulator"; pname = "aws-lambda-runtime-interface-emulator";
version = "1.23"; version = "1.25";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "aws"; owner = "aws";
repo = "aws-lambda-runtime-interface-emulator"; repo = "aws-lambda-runtime-interface-emulator";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-zbeaWbvWk3duBfdUb70G/O4gO20NSHiwuTUZjtGlM3Q="; sha256 = "sha256-GHoEyTM3vDVmozcKoi5ETG4V10o82HcigmmhIMV0UJg=";
}; };
vendorHash = "sha256-fGoqKDBg+O4uzGmhEIROsBvDS+6zWCzsXe8U6t98bqk="; vendorHash = "sha256-fGoqKDBg+O4uzGmhEIROsBvDS+6zWCzsXe8U6t98bqk=";

View file

@ -7,13 +7,13 @@
buildGoModule (finalAttrs: { buildGoModule (finalAttrs: {
pname = "cliqr"; pname = "cliqr";
version = "0.1.26"; version = "0.1.29";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "paepckehh"; owner = "paepckehh";
repo = "cliqr"; repo = "cliqr";
tag = "v${finalAttrs.version}"; tag = "v${finalAttrs.version}";
hash = "sha256-JM5sWVby8dSFz2YtNXgU9z5fc6EI5nnxmpQN/71kdjI="; hash = "sha256-fhNMiUaCTk4xYGJRMuZCHeYvzGeVwkS7E7LU1L+LuBg=";
}; };
vendorHash = null; vendorHash = null;

View file

@ -19,8 +19,8 @@ let
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "domenkozar"; owner = "domenkozar";
repo = "nix"; repo = "nix";
rev = "090394819020afda8eae69e395b1accba9c0fab2"; rev = "b455edf3505f1bf0172b39a735caef94687d0d9c";
hash = "sha256-eUYh7+PgqLXTt8/9IOxEuW2qyxADECmTic8QNhEwKSw="; hash = "sha256-bYyjarS3qSNqxfgc89IoVz8cAFDkF9yPE63EJr+h50s=";
}; };
doCheck = false; doCheck = false;
doInstallCheck = false; doInstallCheck = false;

View file

@ -45,13 +45,13 @@
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "fastfetch"; pname = "fastfetch";
version = "2.41.0"; version = "2.42.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "fastfetch-cli"; owner = "fastfetch-cli";
repo = "fastfetch"; repo = "fastfetch";
tag = finalAttrs.version; tag = finalAttrs.version;
hash = "sha256-7BTQiUf78CKozZAUdw0Y1U7EO+ZvMDim3N/PPebDMNg="; hash = "sha256-nlhW3ftBOjb2BHz1qjOI4VGiSn1+VAUcaA9n0nPikCU=";
}; };
outputs = [ outputs = [

View file

@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchFromGitHub,
buildGoModule,
writableTmpDirAsHomeHook,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "fleet";
version = "4.67.1";
src = fetchFromGitHub {
owner = "fleetdm";
repo = "fleet";
tag = "fleet-v${finalAttrs.version}";
hash = "sha256-cZ0YTFcyPt7NMZUDZCdlVPTuhwRy7mTp7JCdINqiwOM=";
};
vendorHash = "sha256-gFAotYho18Jn8MaFK6ShoMA1VLXVENcrASvHWZGFOFg=";
subPackages = [
"cmd/fleet"
];
ldflags = [
"-X github.com/fleetdm/fleet/v4/server/version.appName=fleet"
"-X github.com/fleetdm/fleet/v4/server/version.version=${finalAttrs.version}"
];
doCheck = true;
nativeCheckInputs = [
writableTmpDirAsHomeHook
];
doInstallCheck = true;
versionCheckProgramArg = "version";
nativeInstallCheckInputs = [
versionCheckHook
];
meta = {
homepage = "https://github.com/fleetdm/fleet";
changelog = "https://github.com/fleetdm/fleet/releases/tag/fleet-v${finalAttrs.version}";
description = "CLI tool to launch Fleet server";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
asauzeau
];
mainProgram = "fleet";
};
})

View file

@ -1,26 +1,26 @@
{ {
"version": "1.132.1", "version": "1.132.3",
"hash": "sha256-nZ7kG60TTOVB4yGUsRrcHuWwIamsWlJ7zBvJCP9d4zQ=", "hash": "sha256-QwQSqWSQ82R5LrbyerAZflDRM2DS+rpA8E6uzxQbs48=",
"components": { "components": {
"cli": { "cli": {
"npmDepsHash": "sha256-PZOYCJ5FQboy5uVZCqJ4CfxDVSHburP4kxhi01HrKns=", "npmDepsHash": "sha256-7CWJEEr/6+Duc90Qww6rhVLXEtxz3hymLcQIzv3YPg0=",
"version": "2.2.63" "version": "2.2.65"
}, },
"server": { "server": {
"npmDepsHash": "sha256-p46OKwRpk9n15201ImLMlDokezJPXD+GXUWtSHduGfU=", "npmDepsHash": "sha256-CdE8H8+uAlthHhko5Ir+BETqkZoNzpimgHB2gVJbus8=",
"version": "1.132.1" "version": "1.132.3"
}, },
"web": { "web": {
"npmDepsHash": "sha256-HEwmwn1DP+9WnqYSOcR2AoOLU7tTjwi2fN17Vq9cZVE=", "npmDepsHash": "sha256-3UoNfa2P4bVFQSQTSbRacSxh2UbPokDHqveCHt9bnko=",
"version": "1.132.1" "version": "1.132.3"
}, },
"open-api/typescript-sdk": { "open-api/typescript-sdk": {
"npmDepsHash": "sha256-Mdn7pmYJmdizQlVINCme6wv6ocqyrBO6U4F5x2xJonc=", "npmDepsHash": "sha256-Rfds2/c8Q6KfWzyztxLcKS40JKOMh04JzMICsDvqMgs=",
"version": "1.132.1" "version": "1.132.3"
}, },
"geonames": { "geonames": {
"timestamp": "20250424184923", "timestamp": "20250428153140",
"hash": "sha256-f0IMmEEyw0JSm+u3zgcE4dtTfPpAKvhDFhlqA9F8cVg=" "hash": "sha256-RDetKDf/qFRwlB+Jo5ivD6yp1paMWFJeUf1Vft70Kdw="
} }
} }
} }

View file

@ -6,13 +6,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kubelogin"; pname = "kubelogin";
version = "1.32.3"; version = "1.32.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "int128"; owner = "int128";
repo = "kubelogin"; repo = "kubelogin";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-ZmNiFO1YGZC+vxpeliNuXfL8Azy2YmLgKqga/a3/9U8="; hash = "sha256-zdUtLjILildwSOA5CV1SNzVtMj+Tz1KkHB2MH1SZ8wk=";
}; };
subPackages = [ "." ]; subPackages = [ "." ];
@ -22,7 +22,7 @@ buildGoModule rec {
"-X main.version=v${version}" "-X main.version=v${version}"
]; ];
vendorHash = "sha256-b8d06JhapPF8HwP1twgkcSR6RzM9x1G4zW3YBqmM3YM="; vendorHash = "sha256-5NiGgZLSf/STr888JPsZZqaqXUI+g+26OEKRXp7xS4E=";
# test all packages # test all packages
preCheck = '' preCheck = ''

View file

@ -3,6 +3,7 @@
stdenv, stdenv,
cmake, cmake,
fetchFromGitHub, fetchFromGitHub,
fetchpatch,
tbb_2021_11, tbb_2021_11,
useTBB ? true, useTBB ? true,
@ -19,6 +20,21 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-IABVErXWYQFXZcwsFKfQhm3ox7UZUcW5uzVrGwsSp94="; hash = "sha256-IABVErXWYQFXZcwsFKfQhm3ox7UZUcW5uzVrGwsSp94=";
}; };
patches = [
# build(cmake): Use tbb32 pkgconfig package on 32-bit builds (BLAKE3-team/BLAKE3#482)
(fetchpatch {
url = "https://github.com/BLAKE3-team/BLAKE3/commit/dab799623310c8f4be6575002d5c681c09a0e209.patch";
hash = "sha256-npCtM8nOFU8Tcu//IykjMs8aLU12d93+mIfKuxHkuaQ=";
relative = "c";
})
# build(cmake): Relax Clang frontend variant detection (BLAKE3-team/BLAKE3#477)
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/BLAKE3-team/BLAKE3/pull/477.patch";
hash = "sha256-kidCMGd/i9D9HLLTt7l1DbiU71sFTEyr3Vew4XHUHls=";
relative = "c";
})
];
sourceRoot = finalAttrs.src.name + "/c"; sourceRoot = finalAttrs.src.name + "/c";
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View file

@ -0,0 +1,33 @@
#include "lzf.h"
#include <stdio.h>
#include <string.h>
int main(void) {
const char *test = "liblzf test for nixpkgs, nixpkgs for test liblzf";
const size_t ilen = strlen(test) + 1;
printf("Test string length: %zu\n", ilen);
char compressed[100];
char decompressed[100];
unsigned int clen =
lzf_compress(test, ilen, compressed, sizeof(compressed));
if (!clen)
return 1;
printf("Compressed length: %d\n", clen);
unsigned int dlen =
lzf_decompress(compressed, clen, decompressed, sizeof(decompressed));
if (!dlen)
return 2;
if (strcmp(test, decompressed) != 0) {
printf("Strings don't match!\n");
return 3;
}
printf("Strings match, tests passed!\n");
return 0;
}

View file

@ -0,0 +1,137 @@
{
lib,
stdenv,
fetchDebianPatch,
fetchpatch,
fetchurl,
pkg-config,
testers,
validatePkgConfig,
autoconf,
automake,
libtool,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "liblzf";
version = "3.6";
src = fetchurl {
url = "http://dist.schmorp.de/liblzf/liblzf-${finalAttrs.version}.tar.gz";
hash = "sha256-nF3gH3ucyuQMP2GdJqer7JmGwGw20mDBec7dBLiftGo=";
};
patches = [
(fetchDebianPatch {
inherit (finalAttrs) pname version;
debianRevision = "4";
patch = "0001-Make-sure-that-the-library-is-linked-with-C-symbols.patch";
hash = "sha256-Rgfp/TysRcEJaogOo/Xno+G4HZzj9Loa69DL43Bp1Ok=";
})
(
let
name = "liblzf-3.6-autoconf-20140314.patch";
in
fetchpatch {
inherit name;
url = "https://src.fedoraproject.org/rpms/liblzf/raw/53da654eead51a24ac81a28e1b1c531eb1afab28/f/${name}";
hash = "sha256-rkhI8w0HV3fGiDfHiXBzrnxqGDE/Yo5ntePrsscMiyg=";
}
)
];
nativeBuildInputs = [
autoconf
automake
libtool
pkg-config
validatePkgConfig
];
preConfigure = ''
sh ./bootstrap.sh
'';
postInstall = ''
pushd $out/bin
ln -s lzf unlzf
popd
'';
outputs = [
"out"
"dev"
];
passthru.tests = {
pkgConfigTest = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
version = "${finalAttrs.version}.0";
versionCheck = true;
};
exeTest = testers.runCommand {
name = "${finalAttrs.pname}-exe-test";
buildInputs = [ finalAttrs.finalPackage ];
script = ''
lzf -h 2> /dev/null
echo "LZFLZFLZFLZFLZFLZFLZFLZF" > test.txt
# unlzf writes to filename minus ".lzf"
cp test.txt test.txt.orig
lzf test.txt
unlzf test.txt.lzf
# Compare results
if ! cmp -s test.txt test.txt.orig; then
echo "Executable test failed: files don't match"
exit 1
fi
echo "Decompressed output matches test string (lzf & unlzf)"
touch $out
'';
};
shlibTest = testers.runCommand {
name = "${finalAttrs.pname}-shlib-test";
inherit stdenv; # with CC
nativeBuildInputs = [ pkg-config ];
buildInputs = [
finalAttrs.finalPackage.dev
finalAttrs.finalPackage
];
# tests both the library and pkg-config file
script = ''
$CC -g ${./lib_test.c} -o lib_test \
$(pkg-config --cflags --libs liblzf)
./lib_test >/dev/null
echo "Built and tested file linked against liblzf using pkg-config"
touch $out
'';
};
};
meta = {
changelog =
"http://cvs.schmorp.de/liblzf/Changes?pathrev=rel-"
+ builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version;
description = "Small data compression library";
downloadPage = "http://dist.schmorp.de/liblzf/";
homepage = "http://software.schmorp.de/pkg/liblzf.html";
license = with lib.licenses; [
bsd2
gpl2Plus
];
mainProgram = "lzf";
maintainers = with lib.maintainers; [
tetov
];
platforms = lib.platforms.unix;
pkgConfigModules = [ "liblzf" ];
};
})

View file

@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://github.com/ThaUnknown/miru/releases/download/v${version}/mac-Miru-${version}-mac.zip"; url = "https://github.com/ThaUnknown/miru/releases/download/v${version}/mac-Miru-${version}-mac.zip";
hash = "sha256-o/7CTkIVufD5ai99XZFyDUgCIV7r4PbUcqkYcMVZwKE="; hash = "sha256-V4Vo9fuQ0X7Q6CBM7Akh3+MrgQOBgCuC41khFatYWi4=";
}; };
sourceRoot = "."; sourceRoot = ".";

View file

@ -19,7 +19,7 @@ appimageTools.wrapType2 rec {
src = fetchurl { src = fetchurl {
url = "https://github.com/ThaUnknown/miru/releases/download/v${version}/linux-Miru-${version}.AppImage"; url = "https://github.com/ThaUnknown/miru/releases/download/v${version}/linux-Miru-${version}.AppImage";
name = "${pname}-${version}.AppImage"; name = "${pname}-${version}.AppImage";
hash = "sha256-AhaGiZ/Vx9nJmIXrzZ1JMLqjWfQDyoKpzl55NT712Ro="; hash = "sha256-nLPqEI6u5NNQ/kPbXRWPG0pIwutKNK2J8JeTPN6wHlg=";
}; };
extraInstallCommands = extraInstallCommands =

View file

@ -5,7 +5,7 @@
}: }:
let let
pname = "miru"; pname = "miru";
version = "5.5.9"; version = "5.5.10";
meta = { meta = {
description = "Stream anime torrents, real-time with no waiting for downloads"; description = "Stream anime torrents, real-time with no waiting for downloads";
homepage = "https://miru.watch"; homepage = "https://miru.watch";

View file

@ -23,7 +23,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "nextcloud-client"; pname = "nextcloud-client";
version = "3.16.3"; version = "3.16.4";
outputs = [ outputs = [
"out" "out"
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
owner = "nextcloud-releases"; owner = "nextcloud-releases";
repo = "desktop"; repo = "desktop";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-C/IfCNOFsSnpJMVSVhOkfx1F2IhOM8ntgdKjr7MKdkc="; hash = "sha256-8P73YitjuU9SGDBNimqJsvSfGOE9lNCVUNN3f4KXWSY=";
}; };
patches = [ patches = [

View file

@ -9,16 +9,16 @@
buildGoModule rec { buildGoModule rec {
pname = "oras"; pname = "oras";
version = "1.2.2"; version = "1.2.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "oras-project"; owner = "oras-project";
repo = "oras"; repo = "oras";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-iSmoD2HhzVrWQBaZ7HaIjcPmybl4JTVeVVfbn29i91Q="; hash = "sha256-IXIw2prApg5iL3BPbOY4x09KjyhFvKofgfz2L6UXKR8=";
}; };
vendorHash = "sha256-zxcRMrr0mfSiuZpXYe7N0nJrEmiBTgw03+Yp4PYieBY="; vendorHash = "sha256-PLGWPoMCsmdnsKD/FdaRHGO0X9/0Y/8DWV21GsCBR04=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -1,5 +1,6 @@
{ {
lib, lib,
libconfuse,
stdenv, stdenv,
fetchFromGitHub, fetchFromGitHub,
cmake, cmake,
@ -8,18 +9,20 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "postsrsd"; pname = "postsrsd";
version = "1.12"; version = "2.0.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "roehling"; owner = "roehling";
repo = "postsrsd"; repo = "postsrsd";
rev = version; rev = version;
sha256 = "sha256-aSI9TR1wSyMA0SKkbavk+IugRfW4ZEgpzrNiXn0F5ak="; sha256 = "sha256-8uy7a3wUGuLE4+6ZPqbFMdPzm6IZqQSvpZzLYAkBxNg=";
}; };
cmakeFlags = [ cmakeFlags = [
"-DGENERATE_SRS_SECRET=OFF" "-DGENERATE_SRS_SECRET=OFF"
"-DINIT_FLAVOR=systemd" "-DINIT_FLAVOR=systemd"
"-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS"
"-DINSTALL_SYSTEMD_SERVICE=OFF"
]; ];
preConfigure = '' preConfigure = ''
@ -31,6 +34,10 @@ stdenv.mkDerivation rec {
help2man help2man
]; ];
buildInputs = [
libconfuse
];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/roehling/postsrsd"; homepage = "https://github.com/roehling/postsrsd";
description = "Postfix Sender Rewriting Scheme daemon"; description = "Postfix Sender Rewriting Scheme daemon";

View file

@ -0,0 +1,82 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nixosTests,
pkgs,
libbpf,
libelf,
libsystemtap,
libz,
}:
let
version = "2.4.2";
tag = "v${version}";
in
buildGoModule.override
{
stdenv = pkgs.clangStdenv;
}
{
name = "ebpf_exporter";
src = fetchFromGitHub {
inherit tag;
owner = "cloudflare";
repo = "ebpf_exporter";
hash = "sha256-gXzaMx9Z6LzrlDaQnagQIi183uKhJvdYiolYb8P+MIs=";
};
vendorHash = "sha256-GhQvPp8baw2l91OUOg+/lrG27P/D4Uzng8XevJf8Pj4=";
postPatch = ''
substituteInPlace examples/Makefile \
--replace-fail "-Wall -Werror" ""
'';
buildInputs = [
libbpf
libelf
libsystemtap
libz
];
CGO_LDFLAGS = "-l bpf";
hardeningDisable = [ "zerocallusedregs" ];
# Tests fail on trying to access cgroups.
doCheck = false;
ldflags = [
"-s"
"-w"
"-X github.com/prometheus/common/version.Version=${version}"
"-X github.com/prometheus/common/version.Revision=${tag}"
"-X github.com/prometheus/common/version.Branch=unknown"
"-X github.com/prometheus/common/version.BuildUser=nix@nixpkgs"
"-X github.com/prometheus/common/version.BuildDate=unknown"
];
postBuild = ''
BUILD_LIBBPF=0 make examples
'';
postInstall = ''
mkdir -p $out/examples
mv examples/*.o examples/*.yaml $out/examples
'';
passthru.tests = { inherit (nixosTests.prometheus-exporters) ebpf; };
meta = {
description = "Prometheus exporter for custom eBPF metrics";
mainProgram = "ebpf_exporter";
homepage = "https://github.com/cloudflare/ebpf_exporter";
changelog = "https://github.com/cloudflare/ebpf_exporter/releases/tag/v${tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jpds ];
platforms = lib.platforms.linux;
};
}

View file

@ -10,13 +10,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "tail-tray"; pname = "tail-tray";
version = "0.2.20"; version = "0.2.21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "SneWs"; owner = "SneWs";
repo = "tail-tray"; repo = "tail-tray";
tag = "v${version}"; tag = "v${version}";
sha256 = "sha256-vsxWGXpmkznfqFwtuLdG6yGAS/Lhs6NLRuzQ/g/WLu8="; sha256 = "sha256-zdmU4GdEVOT8wUgOxJAGsLQEb35O/RUjc8HcYpwIkiM=";
}; };
nativeBuildInputs = with kdePackages; [ nativeBuildInputs = with kdePackages; [

View file

@ -41,7 +41,7 @@ stdenv.mkDerivation {
# `AS' is set to the binutils assembler, but we need nasm # `AS' is set to the binutils assembler, but we need nasm
unset AS unset AS
'' ''
+ lib.optionalString stdenv.hostPlatform.isAarch '' + lib.optionalString (stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isLoongArch64) ''
export AS=$CC export AS=$CC
''; '';

View file

@ -3,7 +3,6 @@
stdenv, stdenv,
fetchFromGitHub, fetchFromGitHub,
autoreconfHook, autoreconfHook,
pcre,
pkg-config, pkg-config,
protobufc, protobufc,
withCrypto ? true, withCrypto ? true,
@ -36,7 +35,6 @@ stdenv.mkDerivation rec {
buildInputs = buildInputs =
[ [
pcre
protobufc protobufc
] ]
++ lib.optionals withCrypto [ openssl ] ++ lib.optionals withCrypto [ openssl ]

View file

@ -25,13 +25,13 @@ in
backendStdenv.mkDerivation (finalAttrs: { backendStdenv.mkDerivation (finalAttrs: {
pname = "nccl-tests"; pname = "nccl-tests";
version = "2.14.1"; version = "2.15.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "NVIDIA"; owner = "NVIDIA";
repo = "nccl-tests"; repo = "nccl-tests";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-PntD5seMq7s0x4hOO/wBDQdElhKCY6mFrTf073mf7zM="; hash = "sha256-OgffbW9Vx/sm1I1tpaPGdAhIpV4jbB4hJa9UcEAWkdE=";
}; };
postPatch = '' postPatch = ''

View file

@ -34,11 +34,12 @@ stdenv.mkDerivation rec {
url = "https://patch-diff.githubusercontent.com/raw/oneapi-src/oneTBB/pull/899.patch"; url = "https://patch-diff.githubusercontent.com/raw/oneapi-src/oneTBB/pull/899.patch";
hash = "sha256-kU6RRX+sde0NrQMKlNtW3jXav6J4QiVIUmD50asmBPU="; hash = "sha256-kU6RRX+sde0NrQMKlNtW3jXav6J4QiVIUmD50asmBPU=";
}) })
]; # Fix tests on FreeBSD and Windows
(fetchpatch {
cmakeFlags = [ name = "fix-tbb-freebsd-and-windows-tests.patch";
# Skip tests to work around https://github.com/uxlfoundation/oneTBB/issues/1695 url = "https://patch-diff.githubusercontent.com/raw/uxlfoundation/oneTBB/pull/1696.patch";
(lib.cmakeBool "TBB_TEST" (!stdenv.hostPlatform.isWindows)) hash = "sha256-yjX2FkOK8bz29a/XSA7qXgQw9lxzx8VIgEBREW32NN4=";
})
]; ];
# Fix build with modern gcc # Fix build with modern gcc

View file

@ -44,11 +44,12 @@ stdenv.mkDerivation rec {
url = "https://patch-diff.githubusercontent.com/raw/oneapi-src/oneTBB/pull/1193.patch"; url = "https://patch-diff.githubusercontent.com/raw/oneapi-src/oneTBB/pull/1193.patch";
hash = "sha256-ZQbwUmuIZoGVBof8QNR3V8vU385e2X7EvU3+Fbj4+M8="; hash = "sha256-ZQbwUmuIZoGVBof8QNR3V8vU385e2X7EvU3+Fbj4+M8=";
}) })
]; # Fix tests on FreeBSD and Windows
(fetchpatch {
cmakeFlags = [ name = "fix-tbb-freebsd-and-windows-tests.patch";
# Skip tests to work around https://github.com/uxlfoundation/oneTBB/issues/1695 url = "https://patch-diff.githubusercontent.com/raw/uxlfoundation/oneTBB/pull/1696.patch";
(lib.cmakeBool "TBB_TEST" (!stdenv.hostPlatform.isWindows)) hash = "sha256-yjX2FkOK8bz29a/XSA7qXgQw9lxzx8VIgEBREW32NN4=";
})
]; ];
# Fix build with modern gcc # Fix build with modern gcc

View file

@ -12,14 +12,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "django-axes"; pname = "django-axes";
version = "7.0.2"; version = "7.1.0";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jazzband"; owner = "jazzband";
repo = "django-axes"; repo = "django-axes";
tag = version; tag = version;
hash = "sha256-yPHS9CgtAQeokq7ClI1fUcgR5YCjmcHjQHNcfQdTZtc="; hash = "sha256-qSXrPa49JDkcW0bmisYzZy40E3O5i6WfD0t9HXFhgqQ=";
}; };
build-system = [ setuptools-scm ]; build-system = [ setuptools-scm ];

View file

@ -8,7 +8,6 @@
# dependencies # dependencies
chex, chex,
coveralls,
equinox, equinox,
jax, jax,
jaxtyping, jaxtyping,
@ -22,14 +21,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "flowmc"; pname = "flowmc";
version = "0.4.3"; version = "0.4.4";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kazewong"; owner = "kazewong";
repo = "flowMC"; repo = "flowMC";
tag = "flowMC-${version}"; tag = "flowMC-${version}";
hash = "sha256-M0FrIe7q0YI6f+IwQeMsZKahw9wcQd42hf/dmXJp2Fk="; hash = "sha256-hyrsL8agY+bNcRcEmgEtv97cFROgeLFxxtKTfx0HoH8=";
}; };
build-system = [ hatchling ]; build-system = [ hatchling ];

View file

@ -40,6 +40,17 @@ buildPythonPackage rec {
nbval nbval
]; ];
# Tests bind ports
__darwinAllowLocalNetworking = true;
pytestFlagsArray = [
# https://github.com/vidartf/ipydatawidgets/issues/62
"--deselect=ipydatawidgets/tests/test_ndarray_trait.py::test_dtype_coerce"
# https://github.com/vidartf/ipydatawidgets/issues/63
"--deselect=examples/test.ipynb::Cell\\\ 3"
];
meta = { meta = {
description = "Widgets to help facilitate reuse of large datasets across different widgets"; description = "Widgets to help facilitate reuse of large datasets across different widgets";
homepage = "https://github.com/vidartf/ipydatawidgets"; homepage = "https://github.com/vidartf/ipydatawidgets";

View file

@ -1,16 +1,26 @@
{ {
lib, lib,
stdenv,
buildPythonPackage, buildPythonPackage,
fetchFromGitHub, fetchFromGitHub,
# nativeBuildInputs
nodejs, nodejs,
yarn-berry_3, yarn-berry_3,
distutils,
# build-system
hatch-jupyter-builder, hatch-jupyter-builder,
hatchling, hatchling,
jupyter-server,
jupyterlab, jupyterlab,
# dependencies
jupyter-server,
jupyterlab-server, jupyterlab-server,
notebook-shim, notebook-shim,
tornado, tornado,
# tests
pytest-jupyter, pytest-jupyter,
pytestCheckHook, pytestCheckHook,
}: }:
@ -29,13 +39,17 @@ buildPythonPackage rec {
postPatch = '' postPatch = ''
substituteInPlace pyproject.toml \ substituteInPlace pyproject.toml \
--replace "timeout = 300" "" --replace-fail "timeout = 300" ""
''; '';
nativeBuildInputs = [ nativeBuildInputs =
nodejs [
yarn-berry_3.yarnBerryConfigHook nodejs
]; yarn-berry_3.yarnBerryConfigHook
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
distutils
];
missingHashes = ./missing-hashes.json; missingHashes = ./missing-hashes.json;

View file

@ -0,0 +1,44 @@
{
buildPythonPackage,
fetchFromGitHub,
lib,
pylint-plugin-utils,
pytestCheckHook,
setuptools,
}:
buildPythonPackage rec {
pname = "pylint-odoo";
version = "9.3.3";
pyproject = true;
src = fetchFromGitHub {
owner = "OCA";
repo = "pylint-odoo";
tag = "v${version}";
hash = "sha256-HPai1HQlfHJUHLqEYn4U6qdupJLLrynwtfm7Q8IbRps=";
};
pythonRelaxDeps = [
"pylint-plugin-utils"
"pylint"
];
build-system = [ setuptools ];
dependencies = [
pylint-plugin-utils
];
pythonImportsCheck = [ "pylint_odoo" ];
BUILD_README = true; # Enables more tests
nativeCheckInputs = [ pytestCheckHook ];
meta = {
description = "Odoo plugin for Pylint";
homepage = "https://github.com/OCA/pylint-odoo";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ yajo ];
};
}

View file

@ -8,20 +8,22 @@
buildPythonPackage { buildPythonPackage {
pname = "pynvim-pp"; pname = "pynvim-pp";
version = "unstable-2024-07-31"; version = "0-unstable-2025-02-08";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ms-jpq"; owner = "ms-jpq";
repo = "pynvim_pp"; repo = "pynvim_pp";
rev = "6d3c298b7eb9543bce7ab515b0a39f256c1d37ca"; rev = "781f6beda5f5966857792af040d5e2ecff5467e4";
hash = "sha256-W6YaxI/fa2HL6+FIBTTA+7K2Be02iuIfFFVO/hhYnpo="; hash = "sha256-ggZqlaCP9WNECO+eRwi968EvQb8zuHCic6+9Zngsd24=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];
dependencies = [ pynvim ]; dependencies = [ pynvim ];
pythonImportsCheck = [ "pynvim_pp" ];
meta = { meta = {
homepage = "https://github.com/ms-jpq/pynvim_pp"; homepage = "https://github.com/ms-jpq/pynvim_pp";
description = "Dependency to chadtree and coq_nvim plugins"; description = "Dependency to chadtree and coq_nvim plugins";

View file

@ -0,0 +1,67 @@
{
lib,
buildPythonPackage,
fetchPypi,
jupyterlab,
setuptools,
ipywidgets,
ipydatawidgets,
numpy,
traitlets,
}:
buildPythonPackage rec {
pname = "pythreejs";
version = "2.4.2";
pyproject = true;
# github sources need to invoke npm, but no package-lock.json present:
# https://github.com/jupyter-widgets/pythreejs/issues/419
src = fetchPypi {
inherit pname version;
hash = "sha256-pWi/3Ew3l8TCM5FYko7cfc9vpKJnsI487FEh4geLW9Y=";
};
build-system = [
jupyterlab
setuptools
];
# It seems pythonRelaxDeps doesn't work for these
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "jupyterlab~=" "jupyterlab>="
# https://github.com/jupyter-widgets/pythreejs/pull/420
substituteInPlace setupbase.py \
--replace-fail "import pipes" "" \
--replace-fail "pipes.quote" "shlex.quote"
'';
# Don't run npm install, all files are already where they should be present.
# If we would run npm install, npm would detect package-lock.json is an old format,
# and try to fetch more metadata from the registry, which cannot work in the sandbox.
setupPyBuildFlags = [ "--skip-npm" ];
dependencies = [
ipywidgets
ipydatawidgets
numpy
traitlets
];
# There are no tests
doCheck = false;
pythonImportsCheck = [ "pythreejs" ];
meta = {
description = "Interactive 3D graphics for the Jupyter Notebook and JupyterLab, using Three.js and Jupyter Widgets";
homepage = "https://github.com/jupyter-widgets/pythreejs";
changelog = "https://github.com/jupyter-widgets/pythreejs/releases/tag/${version}";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ flokli ];
};
}

View file

@ -0,0 +1,13 @@
diff --git a/setupbase.py b/setupbase.py
index 0ce0ac8..7762e23 100644
--- a/setupbase.py
+++ b/setupbase.py
@@ -659,7 +659,7 @@ def _translate_glob(pat):
translated_parts.append(_translate_glob_part(part))
os_sep_class = '[%s]' % re.escape(SEPARATORS)
res = _join_translated(translated_parts, os_sep_class)
- return '{res}\\Z(?ms)'.format(res=res)
+ return '(?ms){res}\\Z'.format(res=res)
def _join_translated(translated_parts, os_sep_class):

View file

@ -7,17 +7,19 @@
buildPythonPackage { buildPythonPackage {
pname = "std2"; pname = "std2";
version = "0-unstable-2024-09-02"; version = "0-unstable-2025-02-06";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ms-jpq"; owner = "ms-jpq";
repo = "std2"; repo = "std2";
rev = "205d1f52e9b5438ef2b732c77e1144847cafa8d0"; rev = "47fda91f8c8db9d5a8faa6f55d739d74afffc440";
hash = "sha256-WdUefadEk92cGnDI+KbQBpjg+d7KgI6bjlQlyhRRRFA="; hash = "sha256-n+6FxVQjzYhjQMJr+i+D8uSiVjI7HFkegxy5keVjKGs=";
}; };
nativeBuildInputs = [ setuptools ]; build-system = [ setuptools ];
pythonImportsCheck = [ "std2" ];
meta = { meta = {
homepage = "https://github.com/ms-jpq/std2"; homepage = "https://github.com/ms-jpq/std2";

View file

@ -1,44 +1,56 @@
{ {
lib, lib,
stdenv,
buildPythonPackage, buildPythonPackage,
fetchFromGitHub, fetchFromGitHub,
# build-system # build-system
pybind11,
setuptools, setuptools,
torch, setuptools-scm,
# nativeBuildInputs
cmake,
# dependencies # dependencies
cloudpickle, cloudpickle,
importlib-metadata,
numpy, numpy,
orjson, orjson,
packaging, packaging,
torch,
# tests # tests
h5py, h5py,
pytestCheckHook, pytestCheckHook,
stdenv,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "tensordict"; pname = "tensordict";
version = "0.7.2"; version = "0.8.0";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pytorch"; owner = "pytorch";
repo = "tensordict"; repo = "tensordict";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-ZDfRvfyBashU4kIoo8JX/EoCv4tpDOyggOlpdVCudT8="; hash = "sha256-2S0xpsJNDdIGoLbALAIcSEVqYD5Nq2YXs3mWFtSUvsA=";
}; };
build-system = [ build-system = [
pybind11
setuptools setuptools
torch setuptools-scm
]; ];
nativeBuildInputs = [
cmake
];
dontUseCmakeConfigure = true;
dependencies = [ dependencies = [
cloudpickle cloudpickle
importlib-metadata
numpy numpy
orjson orjson
packaging packaging
@ -66,10 +78,15 @@ buildPythonPackage rec {
"test_map_iter_interrupt_early" "test_map_iter_interrupt_early"
]; ];
disabledTestPaths = [ disabledTestPaths =
# torch._dynamo.exc.Unsupported: Graph break due to unsupported builtin None.ReferenceType.__new__. [
"test/test_compile.py" # torch._dynamo.exc.Unsupported: Graph break due to unsupported builtin None.ReferenceType.__new__.
]; "test/test_compile.py"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Hangs forever
"test/test_distributed.py"
];
meta = { meta = {
description = "Pytorch dedicated tensor container"; description = "Pytorch dedicated tensor container";

View file

@ -74,6 +74,9 @@ buildPythonPackage rec {
# Torch not compiled with CUDA enabled # Torch not compiled with CUDA enabled
"test_token_bitmask_operations" "test_token_bitmask_operations"
# AssertionError
"test_json_schema_converter"
]; ];
pythonImportsCheck = [ "xgrammar" ]; pythonImportsCheck = [ "xgrammar" ];

View file

@ -1,12 +0,0 @@
diff --git a/Cargo.toml b/Cargo.toml
index 03f64e53..9e2ddcb6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -15,6 +15,7 @@ serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
# Tauri
tauri = { version = "1.2.4", features = [
+ "updater",
"dialog-save",
"process-relaunch",
"window-close",

View file

@ -1,53 +1,54 @@
{ {
lib, lib,
stdenv,
buildGoModule, buildGoModule,
copyDesktopItems, rustPlatform,
desktopToDarwinBundle,
fetchFromGitHub, fetchFromGitHub,
fetchYarnDeps, fetchYarnDeps,
gtk3,
cargo-tauri,
desktop-file-utils,
installShellFiles, installShellFiles,
jq, jq,
libayatana-appindicator, makeBinaryWrapper,
libsoup_2_4, moreutils,
makeDesktopItem, nodejs,
mkYarnPackage,
openssl,
pkg-config, pkg-config,
rust, yarnConfigHook,
rustPlatform, wrapGAppsHook3,
stdenv,
glib-networking,
libayatana-appindicator,
openssl,
webkitgtk_4_1,
testers, testers,
webkitgtk_4_0,
}: }:
let let
pname = "devpod"; version = "0.6.15";
version = "0.5.20";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "loft-sh"; owner = "loft-sh";
repo = pname; repo = "devpod";
rev = "v${version}"; tag = "v${version}";
sha256 = "sha256-8LbqrOKC1als3Xm6ZuU2AySwT0UWjLN2xh+/CvioYew="; hash = "sha256-fLUJeEwNDyzMYUEYVQL9XGQv/VAxjH4IZ1SJa6jx4Mw=";
}; };
meta = with lib; { meta = {
description = "Codespaces but open-source, client-only and unopinionated: Works with any IDE and lets you use any cloud, kubernetes or just localhost docker"; description = "Codespaces but open-source, client-only and unopinionated: Works with any IDE and lets you use any cloud, kubernetes or just localhost docker";
mainProgram = "devpod"; mainProgram = "devpod";
homepage = "https://devpod.sh"; homepage = "https://devpod.sh";
license = licenses.mpl20; license = lib.licenses.mpl20;
maintainers = with maintainers; [ maxbrunet ]; maintainers = with lib.maintainers; [
maxbrunet
tomasajt
];
}; };
in
rec { devpod = buildGoModule (finalAttrs: {
devpod = buildGoModule { pname = "devpod";
inherit inherit version src meta;
version
src
pname
meta
;
vendorHash = null; vendorHash = null;
@ -69,123 +70,123 @@ rec {
''; '';
passthru.tests.version = testers.testVersion { passthru.tests.version = testers.testVersion {
package = devpod; package = finalAttrs.finalPackage;
command = "devpod version"; command = "devpod version";
version = "v${version}"; version = "v${version}";
}; };
}; });
devpod-desktop = devpod-desktop = rustPlatform.buildRustPackage {
let pname = "devpod-desktop";
frontend-build = mkYarnPackage { inherit version src;
inherit version;
pname = "devpod-frontend";
src = "${src}/desktop"; sourceRoot = "${src.name}/desktop";
offlineCache = fetchYarnDeps { offlineCache = fetchYarnDeps {
yarnLock = "${src}/desktop/yarn.lock"; yarnLock = "${src}/desktop/yarn.lock";
hash = "sha256-vUV4yX+UvEKrP0vHxjGwtW2WyONGqHVmFor+WqWbkCc="; hash = "sha256-0Ov+Ik+th2IiuuqJyiO9t8vTyMqxDa9juEwbwHFaoi4=";
}; };
packageJSON = ./package.json; cargoRoot = "src-tauri";
buildAndTestSubdir = "src-tauri";
buildPhase = '' useFetchCargoVendor = true;
export HOME=$(mktemp -d) cargoHash = "sha256-BwuV5nAQcTAtdfK4+NKEt8Cj7gqnatRwHh/BYJJrIPo=";
yarn --offline run build
cp -r deps/devpod/dist $out patches = [
''; # don't create a .desktop file automatically registered to open the devpod:// URI scheme
# we edit the in-store .desktop file in postInstall to support opening the scheme,
# but users will have to configure the default handler manually
./dont-auto-register-scheme.patch
doDist = false; # disable the button that symlinks the `devpod-cli` binary to ~/.local/bin/devpod
dontInstall = true; # and don't show popup where it prompts you to press the above mentioned button
}; # we'll symlink it manually to $out/bin/devpod in postInstall
./dont-copy-sidecar-out-of-store.patch
rustTargetPlatformSpec = stdenv.hostPlatform.rust.rustcTarget; # otherwise it's going to get stuck in an endless error cycle, quickly increasing the log file size
in ./exit-update-checker-loop.patch
rustPlatform.buildRustPackage { ];
inherit version src;
pname = "devpod-desktop";
sourceRoot = "${src.name}/desktop/src-tauri"; postPatch =
''
ln -s ${lib.getExe devpod} src-tauri/bin/devpod-cli-${stdenv.hostPlatform.rust.rustcTarget}
useFetchCargoVendor = true; # disable upstream updater
cargoHash = "sha256-HD9b7OWilltL5Ymj28zoZwv5TJV3HT3LyCdagMqLH6E="; jq '.plugins.updater.endpoints = [ ] | .bundle.createUpdaterArtifacts = false' src-tauri/tauri.conf.json \
| sponge src-tauri/tauri.conf.json
# Workaround: ''
# The `tauri` dependency features on the `Cargo.toml` file does not match the allowlist defined under `tauri.conf.json`. + lib.optionalString stdenv.hostPlatform.isLinux ''
# Please run `tauri dev` or `tauri build` or add the `updater` feature. substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
# Upstream is not interested in fixing that: https://github.com/loft-sh/devpod/pull/648 --replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
patches = [ ./add-tauri-updater-feature.patch ];
postPatch =
''
ln -s ${devpod}/bin/devpod bin/devpod-cli-${rustTargetPlatformSpec}
cp -r ${frontend-build} frontend-build
substituteInPlace tauri.conf.json --replace '"distDir": "../dist",' '"distDir": "frontend-build",'
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
--replace "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
# Since `cargo build` is used instead of `tauri build`, configs are merged manually.
jq --slurp '.[0] * .[1]' tauri.conf.json tauri-linux.conf.json >tauri.conf.json.merged
mv tauri.conf.json.merged tauri.conf.json
'';
nativeBuildInputs =
[
copyDesktopItems
pkg-config
]
++ lib.optionals stdenv.hostPlatform.isLinux [
jq
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
desktopToDarwinBundle
];
buildInputs =
[
libsoup_2_4
openssl
]
++ lib.optionals stdenv.hostPlatform.isLinux [
gtk3
libayatana-appindicator
webkitgtk_4_0
];
desktopItems = [
(makeDesktopItem {
name = "DevPod";
categories = [ "Development" ];
comment = "Spin up dev environments in any infra";
desktopName = "DevPod";
exec = "DevPod %U";
icon = "DevPod";
terminal = false;
type = "Application";
mimeTypes = [ "x-scheme-handler/devpod" ];
})
];
postInstall = ''
ln -sf ${devpod}/bin/devpod $out/bin/devpod-cli
mv $out/bin/devpod-desktop $out/bin/DevPod
mkdir -p $out/share/icons/hicolor/{256x256@2,128x128,32x32}/apps
cp icons/128x128@2x.png $out/share/icons/hicolor/256x256@2/apps/DevPod.png
cp icons/128x128.png $out/share/icons/hicolor/128x128/apps/DevPod.png
cp icons/32x32.png $out/share/icons/hicolor/32x32/apps/DevPod.png
''; '';
meta = meta // { nativeBuildInputs =
mainProgram = "DevPod"; [
# darwin does not build cargo-tauri.hook
# https://github.com/h4llow3En/mac-notification-sys/issues/28 jq
platforms = lib.platforms.linux; moreutils
}; nodejs
yarnConfigHook
]
++ lib.optionals stdenv.hostPlatform.isLinux [
desktop-file-utils
pkg-config
wrapGAppsHook3
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
makeBinaryWrapper
];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
glib-networking
libayatana-appindicator
openssl
webkitgtk_4_1
];
postInstall =
lib.optionalString stdenv.hostPlatform.isDarwin ''
# replace sidecar binary with symlink
ln -sf ${lib.getExe devpod} "$out/Applications/DevPod.app/Contents/MacOS/devpod-cli"
makeWrapper "$out/Applications/DevPod.app/Contents/MacOS/DevPod Desktop" "$out/bin/DevPod Desktop"
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
# replace sidecar binary with symlink
ln -sf ${lib.getExe devpod} "$out/bin/devpod-cli"
# set up scheme handling
desktop-file-edit "$out/share/applications/DevPod.desktop" \
--set-key="Exec" --set-value="\"DevPod Desktop\" %u" \
--set-key="MimeType" --set-value="x-scheme-handler/devpod"
# whitespace in the icon name causes gtk-update-icon-cache to fail
desktop-file-edit "$out/share/applications/DevPod.desktop" \
--set-key="Icon" --set-value="DevPod-Desktop"
for dir in "$out"/share/icons/hicolor/*/apps; do
mv "$dir/DevPod Desktop.png" "$dir/DevPod-Desktop.png"
done
''
+ ''
# propagate the `devpod` command
ln -s ${lib.getExe devpod} "$out/bin/devpod"
'';
# we only want to wrap the main binary
dontWrapGApps = true;
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
wrapGApp "$out/bin/DevPod Desktop"
'';
meta = meta // {
mainProgram = "DevPod Desktop";
platforms = lib.platforms.linux ++ lib.platforms.darwin;
}; };
};
in
{
inherit devpod devpod-desktop;
} }

View file

@ -0,0 +1,13 @@
diff --git a/src-tauri/src/custom_protocol.rs b/src-tauri/src/custom_protocol.rs
index b6ed6e7..5434337 100644
--- a/src-tauri/src/custom_protocol.rs
+++ b/src-tauri/src/custom_protocol.rs
@@ -162,7 +162,7 @@ impl CustomProtocol {
pub fn setup(&self, app: AppHandle) {
let app_handle = app.clone();
- let result = tauri_plugin_deep_link::register(APP_URL_SCHEME, move |url_scheme| {
+ let result = tauri_plugin_deep_link::listen(move |url_scheme| {
tauri::async_runtime::block_on(async {
info!("App opened with URL: {:?}", url_scheme.to_string());

View file

@ -0,0 +1,25 @@
diff --git a/src/client/client.ts b/src/client/client.ts
index 3e1747e..a842534 100644
--- a/src/client/client.ts
+++ b/src/client/client.ts
@@ -250,6 +250,7 @@ class Client {
}
public async isCLIInstalled(): Promise<Result<boolean>> {
+ return Return.Value(true);
try {
// we're in a flatpak, we need to check in other paths.
if (import.meta.env.TAURI_IS_FLATPAK === "true") {
diff --git a/src/components/useInstallCLI.tsx b/src/components/useInstallCLI.tsx
index ba3be79..ad25f3f 100644
--- a/src/components/useInstallCLI.tsx
+++ b/src/components/useInstallCLI.tsx
@@ -77,7 +77,7 @@ export function useInstallCLI() {
variant="outline"
isLoading={isLoading}
onClick={() => addBinaryToPath({})}
- isDisabled={status === "success"}>
+ isDisabled={true}>
Add CLI to Path
</Button>
<AlertDialog isOpen={isOpen} onClose={onClose} leastDestructiveRef={cancelRef}>

View file

@ -0,0 +1,13 @@
diff --git a/src-tauri/src/updates.rs b/src-tauri/src/updates.rs
index 51b8c41..9cc954d 100644
--- a/src-tauri/src/updates.rs
+++ b/src-tauri/src/updates.rs
@@ -176,7 +176,7 @@ impl<'a> UpdateHelper<'a> {
if updater.is_err() {
error!("Failed to get updater");
- continue;
+ return;
}
info!("Attempting to check update");
if let Ok(update) = updater.unwrap().check().await {

View file

@ -1,66 +0,0 @@
{
"name": "devpod",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"tauri": "tauri",
"desktop:dev": "tauri dev --config src-tauri/tauri-dev.conf.json",
"desktop:dev:debug": "export DEBUG=true; yarn desktop:dev",
"desktop:build:dev": "DEBUG=true tauri build --config src-tauri/tauri-dev.conf.json",
"desktop:build:debug": "tauri build --debug",
"desktop:build": "tauri build --features enable-updater",
"format:check": "prettier --check .",
"format:fix": "prettier --write .",
"types:check": "tsc -p ./tsconfig.json --noEmit"
},
"dependencies": {
"@chakra-ui/icons": "2.1.1",
"@chakra-ui/react": "2.8.1",
"@emotion/react": "11.11.1",
"@emotion/styled": "11.11.0",
"@headlessui/react": "1.7.17",
"@tanstack/react-query": "4.36.1",
"@tanstack/react-query-devtools": "4.36.1",
"@tanstack/react-table": "8.10.7",
"@tauri-apps/api": "1.5.3",
"dayjs": "1.11.10",
"framer-motion": "10.16.9",
"markdown-to-jsx": "7.3.2",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-hook-form": "7.48.2",
"react-icons": "4.12.0",
"react-router": "6.20.0",
"react-router-dom": "6.20.0",
"tauri-plugin-store-api": "https://github.com/tauri-apps/tauri-plugin-store#v1",
"uuid": "9.0.1",
"xterm": "5.3.0",
"xterm-addon-fit": "0.7.0"
},
"devDependencies": {
"@tanstack/eslint-plugin-query": "4.36.1",
"@tauri-apps/cli": "1.5.11",
"@types/node": "18.15.3",
"@types/react": "18.2.28",
"@types/react-dom": "18.2.13",
"@types/uuid": "9.0.5",
"@typescript-eslint/eslint-plugin": "5.59.11",
"@typescript-eslint/parser": "5.59.11",
"@vitejs/plugin-react": "4.1.0",
"eslint": "8.44.0",
"eslint-config-prettier": "8.8.0",
"eslint-config-react-app": "7.0.1",
"eslint-plugin-react": "7.34.1",
"eslint-plugin-react-hooks": "4.6.0",
"prettier": "3.0.3",
"typescript": "5.0.4",
"vite": "4.4.9"
},
"resolutions": {
"lodash": "4.17.21"
}
}

View file

@ -9,17 +9,17 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "tokei"; pname = "tokei";
version = "12.1.2"; version = "13.0.0-alpha.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "XAMPPRocky"; owner = "XAMPPRocky";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-jqDsxUAMD/MCCI0hamkGuCYa8rEXNZIR8S+84S8FbgI="; sha256 = "sha256-jCI9VM3y76RI65E5UGuAPuPkDRTMyi+ydx64JWHcGfE=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-hCFFqvnbm0MXDvC5ea7Uo3xQdMO2e4tU7dEAvZxTM3s="; cargoHash = "sha256-LzlyrKaRjUo6JnVLQnHidtI4OWa+GrhAc4D8RkL+nmQ=";
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
libiconv libiconv

View file

@ -16,16 +16,16 @@ let
variants = { variants = {
# ./update-zen.py zen # ./update-zen.py zen
zen = { zen = {
version = "6.14.3"; # zen version = "6.14.4"; # zen
suffix = "zen1"; # zen suffix = "zen1"; # zen
sha256 = "17r4gmxbgs0aizlp35pdq515ag50zc3q20fxapbya4yp5qs6ncz0"; # zen sha256 = "186rrmsi5y1nwhrd0f1bxjmkr5bhlagr0ih6pfdp5ks25is721ca"; # zen
isLqx = false; isLqx = false;
}; };
# ./update-zen.py lqx # ./update-zen.py lqx
lqx = { lqx = {
version = "6.14.3"; # lqx version = "6.14.4"; # lqx
suffix = "lqx1"; # lqx suffix = "lqx1"; # lqx
sha256 = "1xqhjvi7a6gbsm3zq3gwc5hl8xw17afqx1b1db0p1cp5c9xn3vxa"; # lqx sha256 = "1j255qi5r2y2n3dks50b2kna2qdm43skggjrgi362yjhb11psvw6"; # lqx
isLqx = true; isLqx = true;
}; };
}; };

View file

@ -6,18 +6,18 @@
buildNpmPackage rec { buildNpmPackage rec {
pname = "universal-remote-card"; pname = "universal-remote-card";
version = "4.4.0"; version = "4.4.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Nerwyn"; owner = "Nerwyn";
repo = "android-tv-card"; repo = "android-tv-card";
rev = version; rev = version;
hash = "sha256-YbzPnKiVPjkVAsJwpKIbjFRa9tqJidYN3AeyKskddA4="; hash = "sha256-LhA4yDodTyeKxSr3BAYea/gohrHdsQIb2+MVixOBjC8=";
}; };
patches = [ ./dont-call-git.patch ]; patches = [ ./dont-call-git.patch ];
npmDepsHash = "sha256-RC2j3Zf3t75Xi4RbUgRVittEosbfJxcBBg6Tm8cy7L8="; npmDepsHash = "sha256-/0bxOC9e8+mfWAyj/yPXVGS4OAdFNU5H3x8z9aS0LBA=";
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall

View file

@ -13,11 +13,11 @@
callPackage ../nginx/generic.nix args rec { callPackage ../nginx/generic.nix args rec {
pname = "openresty"; pname = "openresty";
nginxVersion = "1.27.1"; nginxVersion = "1.27.1";
version = "${nginxVersion}.1"; version = "${nginxVersion}.2";
src = fetchurl { src = fetchurl {
url = "https://openresty.org/download/openresty-${version}.tar.gz"; url = "https://openresty.org/download/openresty-${version}.tar.gz";
sha256 = "sha256-ebBx4nvcFD1fQB0Nv1BN5EIAcNhnU4xe3CVG0DUf1cA="; sha256 = "sha256-dPB29+NksqmabF+btTHCdhDHiYWr6Va0QrGSoilfdUg=";
}; };
# generic.nix applies fixPatch on top of every patch defined there. # generic.nix applies fixPatch on top of every patch defined there.

View file

@ -367,7 +367,6 @@ let
}; };
in in
self: { self: {
mariadb_105 = throw "'mariadb_105' has been removed because it reached its End of Life. Consider upgrading to 'mariadb_106'.";
# see https://mariadb.org/about/#maintenance-policy for EOLs # see https://mariadb.org/about/#maintenance-policy for EOLs
mariadb_106 = self.callPackage generic { mariadb_106 = self.callPackage generic {
# Supported until 2026-07-06 # Supported until 2026-07-06

View file

@ -43,6 +43,7 @@ let
x86_64-linux.target = "x86_64"; x86_64-linux.target = "x86_64";
armv7l-linux.target = "arm"; armv7l-linux.target = "arm";
aarch64-linux.target = "aarch64"; aarch64-linux.target = "aarch64";
loongarch64-linux.target = "loongarch64";
riscv32-linux.target = "riscv32"; riscv32-linux.target = "riscv32";
riscv64-linux.target = "riscv64"; riscv64-linux.target = "riscv64";
}; };
@ -54,6 +55,7 @@ let
x86_64-linux.target = "x86_64"; x86_64-linux.target = "x86_64";
armv7l-linux.target = "arm"; armv7l-linux.target = "arm";
aarch64-linux.target = "arm64"; aarch64-linux.target = "arm64";
loongarch64-linux.target = "loongarch64";
riscv32-linux.target = "riscv32"; riscv32-linux.target = "riscv32";
riscv64-linux.target = "riscv64"; riscv64-linux.target = "riscv64";
}; };

View file

@ -1,26 +1,28 @@
{ {
lib, lib,
buildPythonPackage,
dnspython,
fetchFromGitHub, fetchFromGitHub,
fqdn, python3,
idna,
natsort,
pytestCheckHook,
python-dateutil,
python,
pythonOlder,
pyyaml,
runCommand, runCommand,
setuptools,
}:
buildPythonPackage rec { # passthru
octodns,
}:
let
# Export `python` with `octodns` as a module for `octodns-providers`.
python = python3.override {
self = python;
packageOverrides = final: prev: {
octodns = final.toPythonModule octodns;
};
};
python3Packages = python.pkgs;
in
python3Packages.buildPythonApplication rec {
pname = "octodns"; pname = "octodns";
version = "1.10.0"; version = "1.10.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = python.pythonOlder "3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "octodns"; owner = "octodns";
@ -29,11 +31,11 @@ buildPythonPackage rec {
hash = "sha256-L3c4lYt/fgMctJFArc1XlR+hvpz10kcBcYYXajnNQr0="; hash = "sha256-L3c4lYt/fgMctJFArc1XlR+hvpz10kcBcYYXajnNQr0=";
}; };
build-system = [ build-system = with python3Packages; [
setuptools setuptools
]; ];
dependencies = [ dependencies = with python3Packages; [
dnspython dnspython
fqdn fqdn
idna idna
@ -42,21 +44,30 @@ buildPythonPackage rec {
pyyaml pyyaml
]; ];
nativeCheckInputs = [ nativeCheckInputs = with python3Packages; [
pytestCheckHook pytestCheckHook
]; ];
pythonImportsCheck = [ "octodns" ]; pythonImportsCheck = [ "octodns" ];
passthru.withProviders = passthru = {
ps: providers = lib.recurseIntoAttrs (
let lib.packagesFromDirectoryRecursive {
pyEnv = python.withPackages ps; inherit (python3Packages) callPackage;
in directory = ./providers;
runCommand "octodns-with-providers" { } '' }
mkdir -p $out/bin );
ln -st $out/bin ${pyEnv}/bin/octodns-*
''; withProviders =
ps:
let
pyEnv = python.withPackages ps;
in
runCommand "octodns-with-providers" { } ''
mkdir -p $out/bin
ln -st $out/bin ${pyEnv}/bin/octodns-*
'';
};
meta = with lib; { meta = with lib; {
description = "Tools for managing DNS across multiple providers"; description = "Tools for managing DNS across multiple providers";

View file

@ -1105,6 +1105,7 @@ mapAliases {
MACS2 = macs2; # Added 2023-06-12 MACS2 = macs2; # Added 2023-06-12
mailctl = throw "mailctl has been renamed to oama"; # Added 2024-08-19 mailctl = throw "mailctl has been renamed to oama"; # Added 2024-08-19
mailman-rss = throw "The mailman-rss package was dropped since it was unmaintained."; # Added 2024-06-21 mailman-rss = throw "The mailman-rss package was dropped since it was unmaintained."; # Added 2024-06-21
mariadb_105 = throw "'mariadb_105' has been removed because it reached its End of Life. Consider upgrading to 'mariadb_106'."; # Added 2025-04-26
mariadb_110 = throw "mariadb_110 has been removed from nixpkgs, please switch to another version like mariadb_114"; # Added 2024-08-15 mariadb_110 = throw "mariadb_110 has been removed from nixpkgs, please switch to another version like mariadb_114"; # Added 2024-08-15
mariadb-client = hiPrio mariadb.client; # added 2019.07.28 mariadb-client = hiPrio mariadb.client; # added 2019.07.28
maligned = throw "maligned was deprecated upstream in favor of x/tools/go/analysis/passes/fieldalignment"; # Added 20204-08-24 maligned = throw "maligned was deprecated upstream in favor of x/tools/go/analysis/passes/fieldalignment"; # Added 20204-08-24

View file

@ -419,17 +419,9 @@ with pkgs;
deviceTree = callPackage ../os-specific/linux/device-tree { }; deviceTree = callPackage ../os-specific/linux/device-tree { };
octodns = python3Packages.callPackage ../tools/networking/octodns { }; octodns = callPackage ../tools/networking/octodns { };
octodns-providers = recurseIntoAttrs { octodns-providers = octodns.providers;
bind = python3Packages.callPackage ../tools/networking/octodns/providers/bind { };
gandi = python3Packages.callPackage ../tools/networking/octodns/providers/gandi { };
hetzner = python3Packages.callPackage ../tools/networking/octodns/providers/hetzner { };
powerdns = python3Packages.callPackage ../tools/networking/octodns/providers/powerdns { };
cloudflare = python3Packages.callPackage ../tools/networking/octodns/providers/cloudflare { };
ddns = python3Packages.callPackage ../tools/networking/octodns/providers/ddns { };
transip = python3Packages.callPackage ../tools/networking/octodns/providers/transip { };
};
oletools = with python3.pkgs; toPythonApplication oletools; oletools = with python3.pkgs; toPythonApplication oletools;
@ -11233,7 +11225,6 @@ with pkgs;
mariadb-connector-c_3_3 = callPackage ../servers/sql/mariadb/connector-c/3_3.nix { }; mariadb-connector-c_3_3 = callPackage ../servers/sql/mariadb/connector-c/3_3.nix { };
inherit (import ../servers/sql/mariadb pkgs) inherit (import ../servers/sql/mariadb pkgs)
mariadb_105
mariadb_106 mariadb_106
mariadb_1011 mariadb_1011
mariadb_114 mariadb_114

View file

@ -12599,6 +12599,8 @@ self: super: with self; {
pylint-flask = callPackage ../development/python-modules/pylint-flask { }; pylint-flask = callPackage ../development/python-modules/pylint-flask { };
pylint-odoo = callPackage ../development/python-modules/pylint-odoo { };
pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { }; pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
pylint-venv = callPackage ../development/python-modules/pylint-venv { }; pylint-venv = callPackage ../development/python-modules/pylint-venv { };
@ -14325,6 +14327,8 @@ self: super: with self; {
pythran = callPackage ../development/python-modules/pythran { inherit (pkgs.llvmPackages) openmp; }; pythran = callPackage ../development/python-modules/pythran { inherit (pkgs.llvmPackages) openmp; };
pythreejs = callPackage ../development/python-modules/pythreejs { };
pytibber = callPackage ../development/python-modules/pytibber { }; pytibber = callPackage ../development/python-modules/pytibber { };
pytikz-allefeld = callPackage ../development/python-modules/pytikz-allefeld { }; pytikz-allefeld = callPackage ../development/python-modules/pytikz-allefeld { };