mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-13 21:25:30 +03:00
Merge remote-tracking branch 'origin/master' into staging-next
This commit is contained in:
commit
b33f6719ea
68 changed files with 990 additions and 406 deletions
|
@ -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`.
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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}";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,6 +65,7 @@ let
|
||||||
"dnssec"
|
"dnssec"
|
||||||
"domain"
|
"domain"
|
||||||
"dovecot"
|
"dovecot"
|
||||||
|
"ebpf"
|
||||||
"fastly"
|
"fastly"
|
||||||
"flow"
|
"flow"
|
||||||
"fritz"
|
"fritz"
|
||||||
|
|
|
@ -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}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -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;
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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="
|
||||||
}
|
}
|
||||||
|
|
|
@ -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=";
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
52
pkgs/by-name/fl/fleet/package.nix
Normal file
52
pkgs/by-name/fl/fleet/package.nix
Normal 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";
|
||||||
|
};
|
||||||
|
})
|
|
@ -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="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
33
pkgs/by-name/li/liblzf/lib_test.c
Normal file
33
pkgs/by-name/li/liblzf/lib_test.c
Normal 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;
|
||||||
|
}
|
137
pkgs/by-name/li/liblzf/package.nix
Normal file
137
pkgs/by-name/li/liblzf/package.nix
Normal 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" ];
|
||||||
|
};
|
||||||
|
})
|
|
@ -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 = ".";
|
||||||
|
|
|
@ -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 =
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
|
|
82
pkgs/by-name/pr/prometheus-ebpf-exporter/package.nix
Normal file
82
pkgs/by-name/pr/prometheus-ebpf-exporter/package.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -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; [
|
||||||
|
|
|
@ -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
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -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 ]
|
||||||
|
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
44
pkgs/development/python-modules/pylint-odoo/default.nix
Normal file
44
pkgs/development/python-modules/pylint-odoo/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -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";
|
||||||
|
|
67
pkgs/development/python-modules/pythreejs/default.nix
Normal file
67
pkgs/development/python-modules/pythreejs/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
13
pkgs/development/python-modules/pythreejs/fix-re.error.patch
Normal file
13
pkgs/development/python-modules/pythreejs/fix-re.error.patch
Normal 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):
|
|
@ -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";
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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" ];
|
||||||
|
|
|
@ -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",
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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}>
|
13
pkgs/development/tools/devpod/exit-update-checker-loop.patch
Normal file
13
pkgs/development/tools/devpod/exit-update-checker-loop.patch
Normal 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 {
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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";
|
||||||
};
|
};
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 { };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue