Merge master into staging-next
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
<a href="https://opencollective.com/nixos"><img src="https://opencollective.com/nixos/tiers/supporter/badge.svg?label=supporters&color=brightgreen" alt="Open Collective supporters" /></a>
|
||||
</p>
|
||||
|
||||
[Nixpkgs](https://github.com/nixos/nixpkgs) is a collection of over 120,000 software packages that can be installed with the [Nix](https://nixos.org/nix/) package manager.
|
||||
[Nixpkgs](https://github.com/nixos/nixpkgs) is a collection of over 140,000 software packages that can be installed with the [Nix](https://nixos.org/nix/) package manager.
|
||||
It also implements [NixOS](https://nixos.org/nixos/), a purely-functional Linux distribution.
|
||||
|
||||
# Manuals
|
||||
|
||||
@@ -445,6 +445,7 @@ nixos/tests/forgejo.nix @adamcstephens @bendlas @christoph-heiss @
|
||||
/doc/languages-frameworks/javascript.section.md @winterqt
|
||||
/pkgs/development/tools/pnpm @Scrumplex @gepbird
|
||||
/pkgs/build-support/node/fetch-pnpm-deps @Scrumplex @gepbird
|
||||
/pkgs/test/pnpm @Scrumplex @gepbird
|
||||
|
||||
# OCaml
|
||||
/pkgs/build-support/ocaml @ulrikstrid
|
||||
|
||||
@@ -1882,7 +1882,10 @@
|
||||
github = "ap-1";
|
||||
githubId = 67872951;
|
||||
name = "Anish Pallati";
|
||||
keys = [ { fingerprint = "2A0A 16F5 E026 BE3B A47F B7A6 841A FB68 9A5B ACCB"; } ];
|
||||
keys = [
|
||||
{ fingerprint = "2A0A 16F5 E026 BE3B A47F B7A6 841A FB68 9A5B ACCB"; }
|
||||
{ fingerprint = "B89E A3F3 16A7 411C B5B2 8A14 B1CA 8321 35A8 C503"; }
|
||||
];
|
||||
};
|
||||
ankhers = {
|
||||
email = "me@ankhers.dev";
|
||||
@@ -18306,13 +18309,6 @@
|
||||
githubId = 52108954;
|
||||
name = "Matias Zwinger";
|
||||
};
|
||||
mkf = {
|
||||
email = "m@mikf.pl";
|
||||
github = "mkf";
|
||||
githubId = 7753506;
|
||||
name = "Michał Krzysztof Feiler";
|
||||
keys = [ { fingerprint = "1E36 9940 CC7E 01C4 CFE8 F20A E35C 2D7C 2C6A C724"; } ];
|
||||
};
|
||||
mkg = {
|
||||
email = "mkg@vt.edu";
|
||||
github = "mkgvt";
|
||||
|
||||
@@ -887,6 +887,7 @@
|
||||
./services/misc/ihaskell.nix
|
||||
./services/misc/iio-niri.nix
|
||||
./services/misc/input-remapper.nix
|
||||
./services/misc/inventree.nix
|
||||
./services/misc/invidious-router.nix
|
||||
./services/misc/irkerd.nix
|
||||
./services/misc/jackett.nix
|
||||
|
||||
@@ -0,0 +1,411 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.inventree;
|
||||
pkg = cfg.package;
|
||||
|
||||
mysqlLocal = cfg.database.createLocally && cfg.database.dbtype == "mysql";
|
||||
pgsqlLocal = cfg.database.createLocally && cfg.database.dbtype == "postgresql";
|
||||
|
||||
manage = pkgs.writeShellScriptBin "inventree-manage" ''
|
||||
set -a
|
||||
${lib.toShellVars cfg.settings}
|
||||
${lib.optionalString (
|
||||
cfg.database.passwordFile != null
|
||||
) ''INVENTREE_DB_PASSWORD="$(<${lib.escapeShellArg cfg.database.passwordFile})"''}
|
||||
set +a
|
||||
|
||||
pushd ${lib.escapeShellArg cfg.dataDir}
|
||||
expectedUser=${lib.escapeShellArg cfg.user}
|
||||
sudo=()
|
||||
if [[ "$USER" != "$expectedUser" ]]; then
|
||||
${
|
||||
if config.security.sudo.enable then
|
||||
''sudo+=(${config.security.wrapperDir}/sudo -u "$expectedUser" -E)''
|
||||
else
|
||||
''printf 'Aborting, inventree-manage must be run as user %s\n!' "$expectedUser" >&2; exit 2''
|
||||
}
|
||||
fi
|
||||
exec "''${sudo[@]}" ${cfg.package}/bin/inventree "$@"
|
||||
'';
|
||||
|
||||
in
|
||||
{
|
||||
meta.buildDocsInSandbox = false;
|
||||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
kurogeek
|
||||
];
|
||||
|
||||
options.services.inventree = {
|
||||
enable = lib.mkEnableOption "inventree";
|
||||
|
||||
dataDir = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/var/lib/inventree";
|
||||
description = "Inventree's data storage path. Will be `/var/lib/inventree` by default.";
|
||||
};
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
description = "Which package to use for the InvenTree instance.";
|
||||
default = pkgs.inventree;
|
||||
defaultText = lib.literalExpression "pkgs.inventree";
|
||||
};
|
||||
|
||||
adminPasswordFile = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
default = null;
|
||||
example = "/run/keys/inventree-password";
|
||||
description = "Path to a file containing admin password";
|
||||
};
|
||||
|
||||
secretKeyFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "${cfg.dataDir}/secret_key.txt";
|
||||
defaultText = lib.literalExpression ''"''${cfg.dataDir}/secret_key.txt"'';
|
||||
example = "/run/keys/inventree-secret-key";
|
||||
description = ''
|
||||
Path to a file containing the secret key
|
||||
'';
|
||||
};
|
||||
|
||||
database = {
|
||||
dbtype = lib.mkOption {
|
||||
type = lib.types.nullOr (
|
||||
lib.types.enum [
|
||||
"postgresql"
|
||||
"mysql"
|
||||
]
|
||||
);
|
||||
default = "postgresql";
|
||||
description = "Database type.";
|
||||
};
|
||||
dbhost = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
example = "localhost";
|
||||
description = "Database host or socket path.";
|
||||
};
|
||||
dbport = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.port;
|
||||
default = null;
|
||||
example = 5432;
|
||||
description = "Database host port.";
|
||||
};
|
||||
dbname = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "inventree";
|
||||
description = "Database name.";
|
||||
};
|
||||
dbuser = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "inventree";
|
||||
description = "Database username.";
|
||||
};
|
||||
passwordFile = lib.mkOption {
|
||||
type = with lib.types; nullOr path;
|
||||
default = null;
|
||||
example = "/run/keys/inventree-dbpassword";
|
||||
description = ''
|
||||
A file containing the password corresponding to
|
||||
<option>database.dbuser</option>.
|
||||
'';
|
||||
};
|
||||
createLocally = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Create the database and database user locally.";
|
||||
};
|
||||
};
|
||||
|
||||
domain = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "localhost";
|
||||
example = "inventree.example.com";
|
||||
description = ''
|
||||
The INVENTREE_SITE_URL option defines the base URL for the
|
||||
InvenTree server. This is a critical setting, and it is required
|
||||
for correct operation of the server. If not specified, the
|
||||
server will attempt to determine the site URL automatically -
|
||||
but this may not always be correct!
|
||||
|
||||
The site URL is the URL that users will use to access the
|
||||
InvenTree server. For example, if the server is accessible at
|
||||
`https://inventree.example.com`, the site URL should be set to
|
||||
`https://inventree.example.com`. Note that this is not
|
||||
necessarily the same as the internal URL that the server is
|
||||
running on - the internal URL will depend entirely on your
|
||||
server configuration and may be obscured by a reverse proxy or
|
||||
other such setup.
|
||||
'';
|
||||
};
|
||||
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "inventree";
|
||||
description = "User under which InvenTree runs.";
|
||||
};
|
||||
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "inventree";
|
||||
description = "Group under which InvenTree runs.";
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type =
|
||||
with lib.types;
|
||||
attrsOf (
|
||||
nullOr (oneOf [
|
||||
path
|
||||
str
|
||||
])
|
||||
);
|
||||
default = { };
|
||||
description = ''
|
||||
InvenTree config options.
|
||||
|
||||
See [the documentation](https://docs.inventree.org/en/stable/start/config/) for available options.
|
||||
'';
|
||||
example = {
|
||||
INVENTREE_CACHE_ENABLED = true;
|
||||
INVENTREE_CACHE_HOST = "localhost";
|
||||
|
||||
INVENTREE_EMAIL_HOST = "smtp.example.com";
|
||||
INVENTREE_EMAIL_PORT = 25;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable (
|
||||
lib.mkMerge [
|
||||
{
|
||||
services.inventree.settings = {
|
||||
INVENTREE_DB_ENGINE = cfg.database.dbtype;
|
||||
INVENTREE_DB_NAME = cfg.database.dbname;
|
||||
INVENTREE_DB_HOST = cfg.database.dbhost;
|
||||
INVENTREE_DB_USER = cfg.database.dbuser;
|
||||
INVENTREE_DB_PORT = if cfg.database.dbport != null then toString cfg.database.dbport else null;
|
||||
|
||||
INVENTREE_CONFIG_FILE = lib.mkDefault "${cfg.dataDir}/config/config.yaml";
|
||||
INVENTREE_OIDC_PRIVATE_KEY_FILE = lib.mkDefault "${cfg.dataDir}/config/oidc_private_key.txt";
|
||||
INVENTREE_STATIC_ROOT = lib.mkDefault "${cfg.package}/lib/inventree/static";
|
||||
INVENTREE_MEDIA_ROOT = lib.mkDefault "${cfg.dataDir}/data/media";
|
||||
INVENTREE_BACKUP_DIR = lib.mkDefault "${cfg.dataDir}/data/backups";
|
||||
INVENTREE_SITE_URL = lib.mkDefault "http://${cfg.domain}";
|
||||
INVENTREE_PLUGIN_FILE = lib.mkDefault "${cfg.dataDir}/data/plugins/plugins.txt";
|
||||
INVENTREE_PLUGIN_DIR = lib.mkDefault "${cfg.dataDir}/data/plugins";
|
||||
INVENTREE_ADMIN_USER = lib.mkDefault "admin";
|
||||
INVENTREE_ADMIN_EMAIL = lib.mkDefault "admin@${cfg.domain}";
|
||||
INVENTREE_ADMIN_PASSWORD_FILE = lib.mkDefault cfg.adminPasswordFile;
|
||||
INVENTREE_SECRET_KEY_FILE = lib.mkDefault cfg.secretKeyFile;
|
||||
INVENTREE_AUTO_UPDATE = lib.mkDefault "false";
|
||||
};
|
||||
environment.systemPackages = [ manage ];
|
||||
systemd.tmpfiles.rules = (
|
||||
map (dir: "d ${dir} 0755 inventree inventree") [
|
||||
"${cfg.dataDir}"
|
||||
"${cfg.dataDir}/config"
|
||||
"${cfg.dataDir}/data"
|
||||
"${cfg.dataDir}/data/media"
|
||||
"${cfg.dataDir}/data/backups"
|
||||
"${cfg.dataDir}/data/plugins"
|
||||
]
|
||||
);
|
||||
|
||||
services.postgresql = lib.mkIf pgsqlLocal {
|
||||
enable = true;
|
||||
ensureDatabases = [ cfg.database.dbname ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = cfg.database.dbuser;
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.mysql = lib.mkIf mysqlLocal {
|
||||
enable = true;
|
||||
package = lib.mkDefault pkgs.mariadb;
|
||||
ensureDatabases = [ cfg.database.dbname ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = cfg.database.dbuser;
|
||||
ensurePermissions = {
|
||||
"${cfg.database.dbname}.*" = "ALL PRIVILEGES";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.nginx.enable = true;
|
||||
services.nginx.virtualHosts.${cfg.domain} = {
|
||||
locations =
|
||||
let
|
||||
unixPath = config.systemd.sockets.inventree-server.socketConfig.ListenStream;
|
||||
in
|
||||
{
|
||||
"/" = {
|
||||
extraConfig = ''
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-By $server_addr:$server_port;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header CLIENT_IP $remote_addr;
|
||||
|
||||
proxy_pass_request_headers on;
|
||||
|
||||
proxy_redirect off;
|
||||
|
||||
client_max_body_size 100M;
|
||||
|
||||
proxy_buffering off;
|
||||
proxy_request_buffering off;
|
||||
'';
|
||||
proxyPass = "http://unix:${unixPath}";
|
||||
};
|
||||
"/auth" = {
|
||||
extraConfig = ''
|
||||
internal;
|
||||
proxy_pass_request_body off;
|
||||
proxy_set_header Content-Length "";
|
||||
proxy_set_header X-Original-URI $request_uri;
|
||||
'';
|
||||
proxyPass = "http://unix:${unixPath}:/auth/";
|
||||
};
|
||||
"/static/" = {
|
||||
alias = "${cfg.settings.INVENTREE_STATIC_ROOT}/";
|
||||
extraConfig = ''
|
||||
autoindex on;
|
||||
|
||||
# Caching settings
|
||||
expires 30d;
|
||||
add_header Pragma public;
|
||||
add_header Cache-Control "public";
|
||||
'';
|
||||
};
|
||||
"/media/" = {
|
||||
alias = "${cfg.settings.INVENTREE_MEDIA_ROOT}/";
|
||||
extraConfig = ''
|
||||
auth_request /auth;
|
||||
add_header Content-disposition "attachment";
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.inventree-setup = {
|
||||
description = "Inventree setup";
|
||||
wantedBy = [ "inventree.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
after = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target";
|
||||
requires = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target";
|
||||
before = [
|
||||
"inventree-server.service"
|
||||
"inventree-qcluster.service"
|
||||
];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
RemainAfterExit = true;
|
||||
PrivateTmp = true;
|
||||
}
|
||||
// lib.optionalAttrs (cfg.database.passwordFile != null) {
|
||||
LoadCredential = "db_password:${cfg.database.passwordFile}";
|
||||
};
|
||||
environment = cfg.settings;
|
||||
script = ''
|
||||
set -euo pipefail
|
||||
umask u=rwx,g=,o=
|
||||
|
||||
${
|
||||
lib.optionalString (cfg.database.passwordFile != null) ''
|
||||
INVENTREE_DB_PASSWORD=$(<"$CREDENTIALS_DIRECTORY/db_password")
|
||||
''
|
||||
} \
|
||||
exec ${pkg}/bin/inventree migrate
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.inventree-server = {
|
||||
description = "Inventree Gunicorn service";
|
||||
requiredBy = [ "inventree.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
environment = cfg.settings;
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
StateDirectory = "inventree";
|
||||
PrivateTmp = true;
|
||||
}
|
||||
// lib.optionalAttrs (cfg.database.passwordFile != null) {
|
||||
LoadCredential = "db_password:${cfg.database.passwordFile}";
|
||||
};
|
||||
script = ''
|
||||
${
|
||||
lib.optionalString (cfg.database.passwordFile != null) ''
|
||||
INVENTREE_DB_PASSWORD=$(<"$CREDENTIALS_DIRECTORY/db_password")
|
||||
''
|
||||
} \
|
||||
exec ${pkg}/bin/gunicorn InvenTree.wsgi
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.sockets.inventree-server = {
|
||||
wantedBy = [ "sockets.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
socketConfig.ListenStream = "/run/inventree/gunicorn.socket";
|
||||
};
|
||||
|
||||
systemd.services.inventree-qcluster = {
|
||||
description = "InvenTree qcluster server";
|
||||
requiredBy = [ "inventree.target" ];
|
||||
wantedBy = [ "inventree.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
environment = cfg.settings;
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
StateDirectory = "inventree";
|
||||
PrivateTmp = true;
|
||||
}
|
||||
// lib.optionalAttrs (cfg.database.passwordFile != null) {
|
||||
LoadCredential = "db_password:${cfg.database.passwordFile}";
|
||||
};
|
||||
script = ''
|
||||
${
|
||||
lib.optionalString (cfg.database.passwordFile != null) ''
|
||||
INVENTREE_DB_PASSWORD=$(<"$CREDENTIALS_DIRECTORY/db_password")
|
||||
''
|
||||
} \
|
||||
exec ${pkg}/bin/inventree qcluster
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.targets.inventree = {
|
||||
description = "Target for all InvenTree services";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
};
|
||||
|
||||
users = lib.optionalAttrs (cfg.user == cfg.user) {
|
||||
users.${cfg.user} = {
|
||||
group = cfg.group;
|
||||
isSystemUser = true;
|
||||
home = cfg.dataDir;
|
||||
};
|
||||
groups.${cfg.group}.members = [ cfg.user ];
|
||||
};
|
||||
}
|
||||
]
|
||||
);
|
||||
}
|
||||
@@ -123,7 +123,8 @@ let
|
||||
# set up imperative config file
|
||||
"+${pkgs.coreutils}/bin/touch /etc/wpa_supplicant/imperative.conf"
|
||||
"+${pkgs.coreutils}/bin/chmod 664 /etc/wpa_supplicant/imperative.conf"
|
||||
"+${pkgs.coreutils}/bin/chown -R wpa_supplicant:wpa_supplicant /etc/wpa_supplicant"
|
||||
"+${pkgs.coreutils}/bin/chown wpa_supplicant:wpa_supplicant /etc/wpa_supplicant"
|
||||
"+${pkgs.coreutils}/bin/chown wpa_supplicant:wpa_supplicant /etc/wpa_supplicant/imperative.conf"
|
||||
]
|
||||
++ lib.optionals cfg.userControlled [
|
||||
# set up client sockets directory
|
||||
|
||||
@@ -8,9 +8,18 @@ let
|
||||
preSwitchCheckScript = lib.concatLines (
|
||||
lib.mapAttrsToList (name: text: ''
|
||||
# pre-switch check ${name}
|
||||
if ! (
|
||||
#
|
||||
# Run with errexit in a subshell that is not part of an `if`/`||`
|
||||
# condition, so that `set -e` is actually honoured inside the
|
||||
# check body.
|
||||
set +e
|
||||
(
|
||||
set -e
|
||||
${text}
|
||||
) >&2 ; then
|
||||
) >&2
|
||||
_rc=$?
|
||||
set -e
|
||||
if [ "$_rc" -ne 0 ]; then
|
||||
echo "Pre-switch check '${name}' failed" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -802,6 +802,7 @@ in
|
||||
installer = handleTest ./installer.nix { systemdStage1 = false; };
|
||||
installer-systemd-stage-1 = handleTest ./installer.nix { systemdStage1 = true; };
|
||||
intune = runTest ./intune.nix;
|
||||
inventree = runTest ./inventree.nix;
|
||||
invidious = runTest ./invidious.nix;
|
||||
invoiceplane = runTest ./invoiceplane.nix;
|
||||
iodine = runTest ./iodine.nix;
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
services.caddy = {
|
||||
package = pkgs.caddy.withPlugins {
|
||||
plugins = [ "github.com/caddyserver/replace-response@v0.0.0-20250618171559-80962887e4c6" ];
|
||||
hash = "sha256-kKWXpxEAn23yud8tcgw7FFOaxLjoodZ/cuM1239TRoY=";
|
||||
hash = "sha256-0N/bQAM5yT6g9UAteWsfxofGcelmU/NDTroS2oL43Gs=";
|
||||
};
|
||||
configFile = pkgs.writeText "Caddyfile" ''
|
||||
{
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "inventree";
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
kurogeek
|
||||
];
|
||||
|
||||
nodes = {
|
||||
psqlTest = {
|
||||
services.inventree = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
mysqlTest = {
|
||||
services.inventree = {
|
||||
enable = true;
|
||||
database.dbtype = "mysql";
|
||||
};
|
||||
};
|
||||
};
|
||||
testScript = ''
|
||||
start_all()
|
||||
psqlTest.wait_for_unit("inventree.target")
|
||||
psqlTest.wait_for_unit("inventree-server.service")
|
||||
psqlTest.wait_for_open_unix_socket("/run/inventree/gunicorn.socket")
|
||||
psqlTest.wait_until_succeeds("curl -sf http://localhost/web")
|
||||
|
||||
mysqlTest.wait_for_unit("inventree.target")
|
||||
mysqlTest.wait_for_unit("inventree-server.service")
|
||||
mysqlTest.wait_for_open_unix_socket("/run/inventree/gunicorn.socket")
|
||||
mysqlTest.wait_until_succeeds("curl -sf http://localhost/web")
|
||||
'';
|
||||
}
|
||||
@@ -788,6 +788,11 @@ in
|
||||
echo this will fail
|
||||
false
|
||||
'';
|
||||
specialisation.failingMidCheck.configuration.system.preSwitchChecks.failsInTheMiddle = ''
|
||||
echo before
|
||||
nonexistent-command
|
||||
echo after
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
@@ -888,6 +893,11 @@ in
|
||||
machine.succeed("${stderrRunner} ${otherSystem}/bin/switch-to-configuration check")
|
||||
out = switch_to_specialisation("${otherSystem}", "failingCheck", action="check", fail=True)
|
||||
assert_contains(out, "this will fail")
|
||||
# errexit must be honoured inside the check body
|
||||
out = switch_to_specialisation("${otherSystem}", "failingMidCheck", action="check", fail=True)
|
||||
assert_contains(out, "before")
|
||||
assert_contains(out, "Pre-switch check 'failsInTheMiddle' failed")
|
||||
assert_lacks(out, "after")
|
||||
|
||||
with subtest("switch inhibitors"):
|
||||
# Start without any inhibitors
|
||||
|
||||
@@ -21,9 +21,9 @@ let
|
||||
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.4.7/android-studio-panda4-patch1-linux.tar.gz";
|
||||
};
|
||||
betaVersion = {
|
||||
version = "2026.1.1.6"; # "Android Studio Quail 1 | 2026.1.1 RC 1"
|
||||
sha256Hash = "sha256-b6PVgBTTjIgm6BI171RL7T6GJD9ApnTWGOTqvt703PQ=";
|
||||
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.1.6/android-studio-quail1-rc1-linux.tar.gz";
|
||||
version = "2026.1.1.7"; # "Android Studio Quail 1 | 2026.1.1 RC 2"
|
||||
sha256Hash = "sha256-TB9hPynvVq1axv6oAw8un6WHVHakZPvEBjfPCs+Dwj0=";
|
||||
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.1.7/android-studio-quail1-rc2-linux.tar.gz";
|
||||
};
|
||||
latestVersion = {
|
||||
version = "2026.1.2.4"; # "Android Studio Quail 2 | 2026.1.2 Canary 4"
|
||||
|
||||
@@ -92,7 +92,6 @@ vimUtils.buildVimPlugin {
|
||||
"avante.providers.azure"
|
||||
"avante.providers.copilot"
|
||||
"avante.providers.gemini"
|
||||
"avante.providers.ollama"
|
||||
"avante.providers.vertex"
|
||||
"avante.providers.vertex_claude"
|
||||
];
|
||||
|
||||
@@ -144,8 +144,6 @@ let
|
||||
grammarPlugins = lib.mapAttrs (_: grammarToPlugin) parsersWithMeta;
|
||||
in
|
||||
{
|
||||
nvimSkipModules = [ "nvim-treesitter._meta.parsers" ];
|
||||
|
||||
passthru = super.nvim-treesitter.passthru or { } // {
|
||||
inherit
|
||||
buildQueries
|
||||
|
||||
@@ -229,14 +229,6 @@ assertNoAdditions {
|
||||
];
|
||||
};
|
||||
|
||||
artio-nvim = super.artio-nvim.overrideAttrs {
|
||||
# Requires extui enabled
|
||||
nvimSkipModules = [
|
||||
"artio.view"
|
||||
"artio.picker"
|
||||
];
|
||||
};
|
||||
|
||||
astrocore = super.astrocore.overrideAttrs {
|
||||
dependencies = [ self.lazy-nvim ];
|
||||
};
|
||||
@@ -305,9 +297,6 @@ assertNoAdditions {
|
||||
"bamboo.colors"
|
||||
"bamboo.terminal"
|
||||
"bamboo.highlights"
|
||||
"bamboo-light"
|
||||
"bamboo-vulgaris"
|
||||
"bamboo-multiplex"
|
||||
"barbecue.theme.bamboo"
|
||||
];
|
||||
meta = old.meta // {
|
||||
@@ -350,15 +339,6 @@ assertNoAdditions {
|
||||
|
||||
base46 = super.base46.overrideAttrs (old: {
|
||||
dependencies = [ self.nvchad-ui ];
|
||||
# Requires global config setup
|
||||
nvimSkipModules = [
|
||||
"nvchad.configs.cmp"
|
||||
"nvchad.configs.gitsigns"
|
||||
"nvchad.configs.luasnip"
|
||||
"nvchad.configs.mason"
|
||||
"nvchad.configs.nvimtree"
|
||||
"nvchad.configs.telescope"
|
||||
];
|
||||
meta = old.meta // {
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
@@ -411,12 +391,6 @@ assertNoAdditions {
|
||||
|
||||
blink-cmp-npm-nvim = super.blink-cmp-npm-nvim.overrideAttrs {
|
||||
nvimSkipModules = [
|
||||
# Test files
|
||||
"blink-cmp-npm.utils.compute_meta_spec"
|
||||
"blink-cmp-npm.utils.generate_doc_spec"
|
||||
"blink-cmp-npm.utils.ignore_version_spec"
|
||||
"blink-cmp-npm.utils.is_cursor_in_dependencies_node_spec"
|
||||
"blink-cmp-npm.utils.semantic_sort_spec"
|
||||
"minit"
|
||||
];
|
||||
};
|
||||
@@ -483,8 +457,6 @@ assertNoAdditions {
|
||||
catppuccin-nvim = super.catppuccin-nvim.overrideAttrs {
|
||||
nvimSkipModules = [
|
||||
"catppuccin.groups.integrations.noice"
|
||||
"catppuccin.groups.integrations.feline"
|
||||
"catppuccin.lib.vim.init"
|
||||
|
||||
# TODO(@mrcjkb): re-enable when https://github.com/catppuccin/nvim/pull/995
|
||||
# has been merged and released.
|
||||
@@ -709,13 +681,6 @@ assertNoAdditions {
|
||||
|
||||
cmp-dictionary = super.cmp-dictionary.overrideAttrs {
|
||||
checkInputs = [ self.nvim-cmp ];
|
||||
nvimSkipModules = [
|
||||
# Test files
|
||||
"cmp_dictionary.dict.external_spec"
|
||||
"cmp_dictionary.dict.trie_spec"
|
||||
"cmp_dictionary.lib.trie_spec"
|
||||
"cmp_dictionary.lib.unknown_spec"
|
||||
];
|
||||
};
|
||||
|
||||
cmp-digraphs = super.cmp-digraphs.overrideAttrs {
|
||||
@@ -947,12 +912,6 @@ assertNoAdditions {
|
||||
];
|
||||
dependencies = [ self.plenary-nvim ];
|
||||
nvimSkipModules = [
|
||||
# Requires setup call
|
||||
"codecompanion.actions.static"
|
||||
"codecompanion.actions.init"
|
||||
# Address in use error from fzf-lua on darwin
|
||||
# https://github.com/NixOS/nixpkgs/issues/431458
|
||||
"codecompanion.providers.actions.fzf_lua"
|
||||
# Test
|
||||
"minimal"
|
||||
];
|
||||
@@ -1033,13 +992,6 @@ assertNoAdditions {
|
||||
conjure = super.conjure.overrideAttrs {
|
||||
dependencies = [ self.plenary-nvim ];
|
||||
nvimSkipModules = [
|
||||
# Test mismatch of directory because of nix generated path
|
||||
"conjure-spec.client.clojure.nrepl.server_spec"
|
||||
"conjure-spec.client.common-lisp.swank_spec"
|
||||
"conjure-spec.client.fennel.nfnl_spec"
|
||||
"conjure-spec.client.guile.socket_spec"
|
||||
"conjure-spec.client.scheme.stdio_spec"
|
||||
"conjure-spec.process_spec"
|
||||
# No parser for fennel
|
||||
"conjure.client.fennel.def-str-util"
|
||||
];
|
||||
@@ -1206,8 +1158,6 @@ assertNoAdditions {
|
||||
|
||||
darkearth-nvim = super.darkearth-nvim.overrideAttrs {
|
||||
dependencies = [ self.lush-nvim ];
|
||||
# Lua module used to build theme
|
||||
nvimSkipModules = [ "shipwright_build" ];
|
||||
};
|
||||
|
||||
ddc-filter-matcher_head = super.ddc-filter-matcher_head.overrideAttrs {
|
||||
@@ -1363,12 +1313,6 @@ assertNoAdditions {
|
||||
dependencies = [ self.image-nvim ];
|
||||
};
|
||||
|
||||
diffs-nvim = super.diffs-nvim.overrideAttrs {
|
||||
nvimSkipModules = [
|
||||
"minimal_init"
|
||||
];
|
||||
};
|
||||
|
||||
diffview-nvim = super.diffview-nvim.overrideAttrs (old: {
|
||||
dependencies = [ self.plenary-nvim ];
|
||||
|
||||
@@ -1571,17 +1515,6 @@ assertNoAdditions {
|
||||
];
|
||||
};
|
||||
|
||||
fyler-nvim = super.fyler-nvim.overrideAttrs {
|
||||
nvimSkipModules = [
|
||||
# Requires setup call
|
||||
"fyler.views.explorer.init"
|
||||
"fyler.views.explorer.actions"
|
||||
"fyler.views.explorer.ui"
|
||||
"fyler.explorer.ui"
|
||||
"fyler.explorer"
|
||||
];
|
||||
};
|
||||
|
||||
fzf-checkout-vim = super.fzf-checkout-vim.overrideAttrs {
|
||||
# The plugin has a makefile which tries to run tests in a docker container.
|
||||
# This prevents it.
|
||||
@@ -1611,7 +1544,6 @@ assertNoAdditions {
|
||||
fzf-lua = super.fzf-lua.overrideAttrs {
|
||||
runtimeDeps = [ fzf ];
|
||||
nvimSkipModules = [
|
||||
"fzf-lua.shell_helper"
|
||||
"fzf-lua.spawn"
|
||||
"fzf-lua.rpc"
|
||||
"fzf-lua.types"
|
||||
@@ -1696,16 +1628,8 @@ assertNoAdditions {
|
||||
"go.ai.init"
|
||||
"go.comment"
|
||||
"go.format"
|
||||
"go.ginkgo"
|
||||
"go.gotest"
|
||||
"go.gotests"
|
||||
"go.inlay"
|
||||
"go.project"
|
||||
"go.snips"
|
||||
"go.tags"
|
||||
"go.ts.go"
|
||||
"go.ts.nodes"
|
||||
"snips.go"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -1807,10 +1731,6 @@ assertNoAdditions {
|
||||
|
||||
harpoon2 = super.harpoon2.overrideAttrs {
|
||||
dependencies = [ self.plenary-nvim ];
|
||||
nvimSkipModules = [
|
||||
# Access harpoon data file
|
||||
"harpoon.scratch.toggle"
|
||||
];
|
||||
};
|
||||
|
||||
haskell-scope-highlighting-nvim = super.haskell-scope-highlighting-nvim.overrideAttrs {
|
||||
@@ -1832,10 +1752,6 @@ assertNoAdditions {
|
||||
];
|
||||
};
|
||||
|
||||
helpview-nvim = super.helpview-nvim.overrideAttrs {
|
||||
nvimSkipModules = [ "definitions.__vimdoc" ];
|
||||
};
|
||||
|
||||
hex-nvim = super.hex-nvim.overrideAttrs {
|
||||
runtimeDeps = [ xxd ];
|
||||
};
|
||||
@@ -1871,12 +1787,6 @@ assertNoAdditions {
|
||||
doCheck = false;
|
||||
};
|
||||
|
||||
hover-nvim = super.hover-nvim.overrideAttrs {
|
||||
# Single provider issue with reading from config
|
||||
# /lua/hover/providers/fold_preview.lua:27: attempt to index local 'config' (a nil value)
|
||||
nvimSkipModules = "hover.providers.fold_preview";
|
||||
};
|
||||
|
||||
html5-vim = super.html5-vim.overrideAttrs (old: {
|
||||
meta = old.meta // {
|
||||
# README contains the MIT license text.
|
||||
@@ -2055,14 +1965,6 @@ assertNoAdditions {
|
||||
];
|
||||
};
|
||||
|
||||
kanagawa-paper-nvim = super.kanagawa-paper-nvim.overrideAttrs {
|
||||
nvimSkipModules = [
|
||||
# skipping wezterm theme switcher since it relies on a wezterm module
|
||||
# that does not seem to be available, tried to build setting wezterm-nvim as a dep
|
||||
"wezterm.theme_switcher"
|
||||
];
|
||||
};
|
||||
|
||||
kulala-nvim = super.kulala-nvim.overrideAttrs (
|
||||
old:
|
||||
let
|
||||
@@ -2143,7 +2045,6 @@ assertNoAdditions {
|
||||
"lazyvim.plugins.extras.ai.copilot-native"
|
||||
"lazyvim.plugins.extras.ai.sidekick"
|
||||
"lazyvim.plugins.extras.ai.tabnine"
|
||||
"lazyvim.plugins.extras.coding.blink"
|
||||
"lazyvim.plugins.extras.coding.luasnip"
|
||||
"lazyvim.plugins.extras.coding.neogen"
|
||||
"lazyvim.plugins.extras.editor.fzf"
|
||||
@@ -2152,10 +2053,6 @@ assertNoAdditions {
|
||||
"lazyvim.plugins.extras.formatting.prettier"
|
||||
"lazyvim.plugins.extras.lang.dotnet"
|
||||
"lazyvim.plugins.extras.lang.markdown"
|
||||
"lazyvim.plugins.extras.lang.omnisharp"
|
||||
"lazyvim.plugins.extras.lang.python"
|
||||
"lazyvim.plugins.extras.lang.svelte"
|
||||
"lazyvim.plugins.extras.lang.typescript"
|
||||
"lazyvim.plugins.extras.lang.typescript.init"
|
||||
"lazyvim.plugins.extras.lang.typescript.vtsls"
|
||||
"lazyvim.plugins.init"
|
||||
@@ -2331,12 +2228,6 @@ assertNoAdditions {
|
||||
telescope-nvim
|
||||
plenary-nvim
|
||||
];
|
||||
nvimSkipModules = [
|
||||
# Attempt to connect to sqlitedb
|
||||
"lispdocs.db"
|
||||
"lispdocs.finder"
|
||||
"lispdocs"
|
||||
];
|
||||
};
|
||||
|
||||
litee-calltree-nvim = super.litee-calltree-nvim.overrideAttrs (old: {
|
||||
@@ -2374,26 +2265,11 @@ assertNoAdditions {
|
||||
telescope-nvim
|
||||
];
|
||||
|
||||
nvimSkipModules = [
|
||||
# Ignore livepreview._spec as it fails nvimRequireCheck.
|
||||
# This file runs tests on require which unfortunately fails as it attempts to require the base plugin. See https://github.com/brianhuster/live-preview.nvim/blob/5890c4f7cb81a432fd5f3b960167757f1b4d4702/lua/livepreview/_spec.lua#L25
|
||||
"livepreview._spec"
|
||||
];
|
||||
meta = old.meta // {
|
||||
license = lib.licenses.gpl3Only;
|
||||
};
|
||||
});
|
||||
|
||||
live-share-nvim = super.live-share-nvim.overrideAttrs (old: {
|
||||
nvimSkipModules = (old.nvimSkipModules or [ ]) ++ [
|
||||
# These modules unconditionally load OpenSSL via LuaJIT FFI and abort in
|
||||
# the headless require check on Darwin.
|
||||
"live-share.host"
|
||||
"live-share.guest"
|
||||
"live-share.collab.crypto"
|
||||
];
|
||||
});
|
||||
|
||||
lsp-format-modifications-nvim = super.lsp-format-modifications-nvim.overrideAttrs {
|
||||
dependencies = [ self.plenary-nvim ];
|
||||
};
|
||||
@@ -2626,7 +2502,6 @@ assertNoAdditions {
|
||||
"minuet.backends.claude"
|
||||
"minuet.backends.codestral"
|
||||
"minuet.backends.gemini"
|
||||
"minuet.backends.huggingface"
|
||||
"minuet.backends.openai"
|
||||
"minuet.backends.openai_compatible"
|
||||
"minuet.backends.openai_fim_compatible"
|
||||
@@ -2770,8 +2645,6 @@ assertNoAdditions {
|
||||
# E5108: Error executing lua ...vim-2024-06-13/lua/diffview/api/views/diff/diff_view.lua:13: attempt to index global 'DiffviewGlobal' (a nil value)
|
||||
# Requires diffview-nvim's plugin script to be sourced.
|
||||
"neogit.integrations.diffview"
|
||||
"neogit.popups.diff.actions"
|
||||
"neogit.popups.diff.init"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -2931,18 +2804,6 @@ assertNoAdditions {
|
||||
plenary-nvim
|
||||
nvim-treesitter-parsers.cpp
|
||||
];
|
||||
nvimSkipModules = [
|
||||
# lua/plenary/path.lua:511: FileNotFoundError from mkdir because of stdpath parent path missing
|
||||
"neotest-gtest.executables.global_registry"
|
||||
"neotest-gtest.executables.init"
|
||||
"neotest-gtest.executables.registry"
|
||||
"neotest-gtest.executables.ui"
|
||||
"neotest-gtest"
|
||||
"neotest-gtest.neotest_adapter"
|
||||
"neotest-gtest.report"
|
||||
"neotest-gtest.storage"
|
||||
"neotest-gtest.utils"
|
||||
];
|
||||
};
|
||||
|
||||
neotest-haskell = super.neotest-haskell.overrideAttrs {
|
||||
@@ -3190,7 +3051,6 @@ assertNoAdditions {
|
||||
# Requires global config setup
|
||||
"nvchad.configs.cmp"
|
||||
"nvchad.configs.gitsigns"
|
||||
"nvchad.configs.luasnip"
|
||||
"nvchad.configs.mason"
|
||||
"nvchad.configs.nvimtree"
|
||||
"nvchad.configs.telescope"
|
||||
@@ -3201,7 +3061,6 @@ assertNoAdditions {
|
||||
dependencies = [ self.nvzone-volt ];
|
||||
nvimSkipModules = [
|
||||
# Requires global config setup
|
||||
"nvchad.tabufline.modules"
|
||||
"nvchad.term.init"
|
||||
"nvchad.themes.init"
|
||||
"nvchad.themes.mappings"
|
||||
@@ -3328,17 +3187,6 @@ assertNoAdditions {
|
||||
doInstallCheck = true;
|
||||
};
|
||||
|
||||
nvim-highlight-colors = super.nvim-highlight-colors.overrideAttrs {
|
||||
# Test module
|
||||
nvimSkipModules = [
|
||||
"nvim-highlight-colors.utils_spec"
|
||||
"nvim-highlight-colors.buffer_utils_spec"
|
||||
"nvim-highlight-colors.color.converters_spec"
|
||||
"nvim-highlight-colors.color.patterns_spec"
|
||||
"nvim-highlight-colors.color.utils_spec"
|
||||
];
|
||||
};
|
||||
|
||||
nvim-highlite = super.nvim-highlite.overrideAttrs (old: {
|
||||
meta = old.meta // {
|
||||
license = lib.licenses.gpl3Plus;
|
||||
@@ -3540,12 +3388,6 @@ assertNoAdditions {
|
||||
nvim-treesitter-parsers.typescript
|
||||
nvim-treesitter-parsers.zig
|
||||
];
|
||||
nvimSkipModules = [
|
||||
# Broken runners
|
||||
"nvim-test.runners.zig"
|
||||
"nvim-test.runners.hspec"
|
||||
"nvim-test.runners.stack"
|
||||
];
|
||||
};
|
||||
|
||||
nvim-tinygit = super.nvim-tinygit.overrideAttrs {
|
||||
@@ -3557,35 +3399,6 @@ assertNoAdditions {
|
||||
};
|
||||
|
||||
nvim-tree-lua = super.nvim-tree-lua.overrideAttrs (old: {
|
||||
nvimSkipModules = [
|
||||
# Meta can't be required
|
||||
"nvim-tree._meta.api"
|
||||
"nvim-tree._meta.api_decorator"
|
||||
"nvim-tree._meta.api.decorator_example"
|
||||
"nvim-tree._meta.classes"
|
||||
"nvim-tree._meta.config.filters"
|
||||
"nvim-tree._meta.config.actions"
|
||||
"nvim-tree._meta.config.git"
|
||||
"nvim-tree._meta.config.renderer"
|
||||
"nvim-tree._meta.config.experimental"
|
||||
"nvim-tree._meta.config.tab"
|
||||
"nvim-tree._meta.config.modified"
|
||||
"nvim-tree._meta.config.help"
|
||||
"nvim-tree._meta.config.notify"
|
||||
"nvim-tree._meta.config.sort"
|
||||
"nvim-tree._meta.config.view"
|
||||
"nvim-tree._meta.config.update_focused_file"
|
||||
"nvim-tree._meta.config.diagnostics"
|
||||
"nvim-tree._meta.config.log"
|
||||
"nvim-tree._meta.config.system_open"
|
||||
"nvim-tree._meta.config.ui"
|
||||
"nvim-tree._meta.config.hijack_directories"
|
||||
"nvim-tree._meta.config.trash"
|
||||
"nvim-tree._meta.config.filesystem_watchers"
|
||||
"nvim-tree._meta.config.live_filter"
|
||||
"nvim-tree._meta.config.bookmarks"
|
||||
"nvim-tree._meta.config"
|
||||
];
|
||||
meta = old.meta // {
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
@@ -3595,11 +3408,6 @@ assertNoAdditions {
|
||||
callPackage ./nvim-treesitter/overrides.nix { } self super
|
||||
);
|
||||
|
||||
nvim-treesitter-context = super.nvim-treesitter-context.overrideAttrs {
|
||||
# Meant for CI installing parsers
|
||||
nvimSkipModules = [ "install_parsers" ];
|
||||
};
|
||||
|
||||
# TODO: raise warning at 26.05; drop at 26.11
|
||||
nvim-treesitter-legacy =
|
||||
let
|
||||
@@ -3815,7 +3623,6 @@ assertNoAdditions {
|
||||
# FIXME: can't find plugin root dir
|
||||
nvimSkipModules = [
|
||||
"openscad"
|
||||
"openscad.snippets.openscad"
|
||||
"openscad.utilities"
|
||||
];
|
||||
};
|
||||
@@ -3837,13 +3644,6 @@ assertNoAdditions {
|
||||
|
||||
otter-nvim = super.otter-nvim.overrideAttrs {
|
||||
dependencies = [ self.nvim-lspconfig ];
|
||||
nvimSkipModules = [
|
||||
# requires config setup
|
||||
"otter.keeper"
|
||||
"otter.lsp.handlers"
|
||||
"otter.lsp.init"
|
||||
"otter.diagnostics"
|
||||
];
|
||||
};
|
||||
|
||||
outline-nvim = super.outline-nvim.overrideAttrs {
|
||||
@@ -3920,21 +3720,6 @@ assertNoAdditions {
|
||||
checkInputs = with self; [
|
||||
fzf-lua
|
||||
];
|
||||
nvimSkipModules = [
|
||||
# Address in use error from fzf-lua on darwin
|
||||
# https://github.com/NixOS/nixpkgs/issues/431458
|
||||
"perfanno.fzf_lua"
|
||||
];
|
||||
};
|
||||
|
||||
persisted-nvim = super.persisted-nvim.overrideAttrs {
|
||||
nvimSkipModules = [
|
||||
# /lua/persisted/init.lua:44: attempt to index upvalue 'config' (a nil value)
|
||||
# https://github.com/olimorris/persisted.nvim/issues/146
|
||||
"persisted"
|
||||
"persisted.config"
|
||||
"persisted.utils"
|
||||
];
|
||||
};
|
||||
|
||||
persistent-breakpoints-nvim = super.persistent-breakpoints-nvim.overrideAttrs {
|
||||
@@ -4027,16 +3812,6 @@ assertNoAdditions {
|
||||
|
||||
qmk-nvim = super.qmk-nvim.overrideAttrs {
|
||||
dependencies = [ self.plenary-nvim ];
|
||||
nvimSkipModules = [
|
||||
# Test assertions
|
||||
"qmk.config.init_spec"
|
||||
"qmk.format.keymap_spec"
|
||||
"qmk.format.qmk_spec"
|
||||
"qmk.format.zmk_spec"
|
||||
"qmk.parse.qmk.init_spec"
|
||||
"qmk.parse.zmk.init_spec"
|
||||
"qmk_spec"
|
||||
];
|
||||
};
|
||||
|
||||
quarto-nvim = super.quarto-nvim.overrideAttrs (old: {
|
||||
@@ -4048,9 +3823,6 @@ assertNoAdditions {
|
||||
nvim-lspconfig
|
||||
otter-nvim
|
||||
];
|
||||
nvimSkipModules = [
|
||||
"quarto.runner.init"
|
||||
];
|
||||
meta = old.meta // {
|
||||
# LICENSE says GPL-2.0-or-later.
|
||||
license = lib.licenses.gpl2Plus;
|
||||
@@ -4271,7 +4043,6 @@ assertNoAdditions {
|
||||
smart-splits-nvim = super.smart-splits-nvim.overrideAttrs {
|
||||
nvimSkipModules = [
|
||||
"vimdoc-gen"
|
||||
"vimdocrc"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -4285,37 +4056,6 @@ assertNoAdditions {
|
||||
# Optional trouble integration
|
||||
checkInputs = [ self.trouble-nvim ];
|
||||
nvimSkipModules = [
|
||||
# Requires setup call first
|
||||
# attempt to index global 'Snacks' (a nil value)
|
||||
"snacks.dashboard"
|
||||
"snacks.debug"
|
||||
"snacks.dim"
|
||||
"snacks.explorer.init"
|
||||
"snacks.gh.actions"
|
||||
"snacks.gh.buf"
|
||||
"snacks.gh.init"
|
||||
"snacks.gh.render"
|
||||
"snacks.gh.render.init"
|
||||
"snacks.git"
|
||||
"snacks.image.convert"
|
||||
"snacks.image.image"
|
||||
"snacks.image.init"
|
||||
"snacks.image.placement"
|
||||
"snacks.indent"
|
||||
"snacks.input"
|
||||
"snacks.lazygit"
|
||||
"snacks.notifier"
|
||||
"snacks.picker.actions"
|
||||
"snacks.picker.config.highlights"
|
||||
"snacks.picker.core.list"
|
||||
"snacks.picker.source.gh"
|
||||
"snacks.picker.util.diff"
|
||||
"snacks.scratch"
|
||||
"snacks.scroll"
|
||||
"snacks.terminal"
|
||||
"snacks.win"
|
||||
"snacks.words"
|
||||
"snacks.zen"
|
||||
# TODO: Plugin requires libsqlite available, create a test for it
|
||||
"snacks.picker.util.db"
|
||||
];
|
||||
@@ -4330,9 +4070,6 @@ assertNoAdditions {
|
||||
"snap.consumer.fzy.score"
|
||||
# circular import
|
||||
"snap.producer.create"
|
||||
# https://github.com/camspiers/snap/pull/97
|
||||
"snap.preview.help"
|
||||
"snap.producer.vim.help"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -4377,8 +4114,6 @@ assertNoAdditions {
|
||||
nvimSkipModules = [
|
||||
# Require "sql.utils" ?
|
||||
"sqlite.tbl.cache"
|
||||
# attempt to write to read only database
|
||||
"sqlite.examples.bookmarks"
|
||||
];
|
||||
}
|
||||
);
|
||||
@@ -4772,8 +4507,6 @@ assertNoAdditions {
|
||||
nvimSkipModules = [
|
||||
# Meta file
|
||||
"tokyonight.docs"
|
||||
# Optional integration
|
||||
"tokyonight.extra.fzf"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -5539,11 +5272,6 @@ assertNoAdditions {
|
||||
};
|
||||
});
|
||||
|
||||
vim-matchup = super.vim-matchup.overrideAttrs {
|
||||
# Optional treesitter integration
|
||||
nvimSkipModules = "treesitter-matchup.third-party.query";
|
||||
};
|
||||
|
||||
vim-mediawiki-editor = super.vim-mediawiki-editor.overrideAttrs {
|
||||
passthru.python3Dependencies = [ python3.pkgs.mwclient ];
|
||||
};
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
lib,
|
||||
vscode-utils,
|
||||
vscode-extension-update-script,
|
||||
stdenv,
|
||||
autoPatchelfHook,
|
||||
}:
|
||||
|
||||
vscode-utils.buildVscodeMarketplaceExtension {
|
||||
@@ -35,6 +37,10 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
// sources.${stdenvNoCC.hostPlatform.system}
|
||||
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
|
||||
|
||||
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
passthru.updateScript = vscode-extension-update-script { };
|
||||
|
||||
meta = {
|
||||
@@ -48,6 +54,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
];
|
||||
maintainers = [ ];
|
||||
maintainers = with lib.maintainers; [ sandarukasa ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -73,13 +73,13 @@
|
||||
"vendorHash": "sha256-FHBpTYSmVivoqz+Eaa/r5y1f/saIx4l6mjOtZhxZVRw="
|
||||
},
|
||||
"auth0_auth0": {
|
||||
"hash": "sha256-XCptfoE1VI+Vn8Mls86KOYo1XwLEemi4NXzm5MhsNF4=",
|
||||
"hash": "sha256-v0EPS8sVHZRDkc8zJtVGL6pDFbHhxyW3D+iLYe0kSVI=",
|
||||
"homepage": "https://registry.terraform.io/providers/auth0/auth0",
|
||||
"owner": "auth0",
|
||||
"repo": "terraform-provider-auth0",
|
||||
"rev": "v1.47.0",
|
||||
"rev": "v1.48.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-U9pfdnh7jAJvdUcKzV5qD3ex5vprhN2k+f+jqLyKJqM="
|
||||
"vendorHash": "sha256-xf2c6wjpBxEmWm2t3/fFvekGfi2XbruV/kWeBLcTN4g="
|
||||
},
|
||||
"aviatrixsystems_aviatrix": {
|
||||
"hash": "sha256-46djOfAj/5kfeoKLQHbeKefzdGbmlBATR+uN/IaAn8I=",
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
{
|
||||
"version": "1.3.18-stable",
|
||||
"version": "1.3.19-stable",
|
||||
"sources": {
|
||||
"aarch64-darwin": {
|
||||
"url": "https://acli.atlassian.com/darwin/1.3.18-stable/acli_1.3.18-stable_darwin_arm64.tar.gz",
|
||||
"sha256": "9e4890e441e2762adbb6bd94451fdea554177806a6044469ece7b14e603d2040"
|
||||
"url": "https://acli.atlassian.com/darwin/1.3.19-stable/acli_1.3.19-stable_darwin_arm64.tar.gz",
|
||||
"sha256": "c5f1b1f6db63972d126a2f8ac9aca9a199739c7b51ac9e352e8ae3ed2b27131c"
|
||||
},
|
||||
"aarch64-linux": {
|
||||
"url": "https://acli.atlassian.com/linux/1.3.18-stable/acli_1.3.18-stable_linux_arm64.tar.gz",
|
||||
"sha256": "ac71711da43649854689ad0f74e44f18b0da3fd0ee776ceb4307ae7eb1e5da85"
|
||||
"url": "https://acli.atlassian.com/linux/1.3.19-stable/acli_1.3.19-stable_linux_arm64.tar.gz",
|
||||
"sha256": "72972e74fa9036c5b40175570234a2e79559776c06a3aa29f632a39c7d3674da"
|
||||
},
|
||||
"x86_64-darwin": {
|
||||
"url": "https://acli.atlassian.com/darwin/1.3.18-stable/acli_1.3.18-stable_darwin_amd64.tar.gz",
|
||||
"sha256": "4078846601b2e222ecbbc6b314a1c58ca6c41c18d1b118833814c942be00befe"
|
||||
"url": "https://acli.atlassian.com/darwin/1.3.19-stable/acli_1.3.19-stable_darwin_amd64.tar.gz",
|
||||
"sha256": "394096ecd5a6082cbbbc8b2f3e1f1fbe694cdb340e25a4014eeb78461b869beb"
|
||||
},
|
||||
"x86_64-linux": {
|
||||
"url": "https://acli.atlassian.com/linux/1.3.18-stable/acli_1.3.18-stable_linux_amd64.tar.gz",
|
||||
"sha256": "4ad4badc481ac1eff452f531c405a20422eb57513cc898d2a1f8ea945d6c24f6"
|
||||
"url": "https://acli.atlassian.com/linux/1.3.19-stable/acli_1.3.19-stable_linux_amd64.tar.gz",
|
||||
"sha256": "f29fa8b7f01710053c2f4e07723501ebfe448672b669d32d83e961686d383a6d"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,6 @@ buildGoModule (finalAttrs: {
|
||||
license = with lib.licenses; [ mit ];
|
||||
maintainers = with lib.maintainers; [ daru-san ];
|
||||
mainProgram = "adbtuifm";
|
||||
platforms = lib.platforms.linux;
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -9,15 +9,15 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "adguardhome";
|
||||
version = "0.107.76";
|
||||
version = "0.107.77";
|
||||
src = fetchFromGitHub {
|
||||
owner = "AdguardTeam";
|
||||
repo = "AdGuardHome";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-CF1Ieu7oCnzvXwoHzX5126gQGcgXL+giMtUciKBZ2ZU=";
|
||||
hash = "sha256-CwM8Zi5FXNwb+5gdESoP31Ja1O6PrnOgFfJaT8Yc890=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-tHabP5I7PZtDkVucF95StRyXGEsfbuc6Z3AhQZ/g2f8=";
|
||||
vendorHash = "sha256-D91mHBG78LOG1O5oVlaA3T8HWIISPeKMB06VpWuxxqo=";
|
||||
|
||||
dashboard = buildNpmPackage {
|
||||
inherit (finalAttrs) src version;
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "agkozak-zsh-prompt";
|
||||
version = "3.11.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "agkozak";
|
||||
repo = "agkozak-zsh-prompt";
|
||||
tag = "v${version}";
|
||||
sha256 = "sha256-C9lyOm2+RVLOUSO5Vz013uTobnN+SBE1Jm8GuJZ7T7U=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-C9lyOm2+RVLOUSO5Vz013uTobnN+SBE1Jm8GuJZ7T7U=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
@@ -33,4 +33,4 @@ stdenvNoCC.mkDerivation rec {
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [ ambroisie ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -27,7 +27,7 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "amp-cli";
|
||||
version = "0.0.1779772576-g751b94";
|
||||
version = "0.0.1780564400-g2007df";
|
||||
|
||||
src = finalAttrs.passthru.sources.${stdenvNoCC.hostPlatform.system};
|
||||
|
||||
@@ -78,10 +78,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
url = "https://static.ampcode.com/cli/${finalAttrs.version}/amp-${platform}.gz";
|
||||
hash =
|
||||
{
|
||||
x86_64-linux = "sha256-y3o+GOeyH8daz+CdPNs6nWYJ3Ss+x/KtQ6FaIvBviCc=";
|
||||
aarch64-linux = "sha256-FviFU+T1pTmQLFliV/xl/ihdoSx8EnxM7QW8l7igVYI=";
|
||||
x86_64-darwin = "sha256-9fJ/p6v/TLxIs2TIwwT+c3yio16tpoEYWR+B60sKFcU=";
|
||||
aarch64-darwin = "sha256-EDksMRB1odiv6+t7ZH+76dnjq7t+5i0UQ6m2h8qt0y4=";
|
||||
x86_64-linux = "sha256-7hUa1Qs1pNH2+31rrc9T99eDQ9Vq+CSwxROISyPqogY=";
|
||||
aarch64-linux = "sha256-ThT2J1YBoZM5+YanRbL40GyxYQtK/xyDqac8fv0gfZs=";
|
||||
x86_64-darwin = "sha256-VnuMqXVzqge5jgduxB+woYLVZkFtu92MEsEsrh4tJgE=";
|
||||
aarch64-darwin = "sha256-gYAI+eQitglQTBtuilHkHKd8rsYsJ7s2QKoFQR85l6o=";
|
||||
}
|
||||
.${system'};
|
||||
}
|
||||
|
||||
@@ -3,33 +3,39 @@
|
||||
fetchurl,
|
||||
appimageTools,
|
||||
makeWrapper,
|
||||
asar,
|
||||
writeShellApplication,
|
||||
curl,
|
||||
common-updater-scripts,
|
||||
}:
|
||||
let
|
||||
pname = "beeper";
|
||||
version = "4.2.808";
|
||||
version = "4.2.892";
|
||||
src = fetchurl {
|
||||
url = "https://beeper-desktop.download.beeper.com/builds/Beeper-${version}-x86_64.AppImage";
|
||||
hash = "sha256-ql5WkKVgQiKIHkNKd805xFezsvoW+8dqXx6MzfsxceM=";
|
||||
hash = "sha256-kTX0VrfJb7UnQ6JVfRIgjLlIsDgzDVgTnx7twlYMf9k=";
|
||||
};
|
||||
appimageContents = appimageTools.extract {
|
||||
inherit pname version src;
|
||||
|
||||
postExtract = ''
|
||||
appRoot="$out/resources/app"
|
||||
${lib.getExe asar} extract "$out/resources/app.asar" "$appRoot"
|
||||
rm "$out/resources/app.asar"
|
||||
|
||||
# disable creating a desktop file and icon in the home folder during runtime
|
||||
linuxConfigFilename=$out/resources/app/build/main/linux-*.mjs
|
||||
linuxConfigFilename=$appRoot/build/main/linux-*.mjs
|
||||
echo "export function registerLinuxConfig() {}" > $linuxConfigFilename
|
||||
|
||||
# disable auto update
|
||||
sed -i 's/auto_update_disabled:[^,}]*/auto_update_disabled:true/g' $out/resources/app/build/main/main-entry-*.mjs
|
||||
sed -i 's/c=d??{},p=c.hw_acceleration??!0/c={...(d??{}),auto_update_disabled:true},p=c.hw_acceleration??!0/g' $appRoot/build/main/index-*.mjs
|
||||
|
||||
# prevent updates
|
||||
sed -i -E 's/executeDownload\([^)]+\)\{/executeDownload(){return;/g' $out/resources/app/build/main/main-entry-*.mjs
|
||||
sed -i -E 's/executeDownload\([^)]+\)\{/executeDownload(){return;/g' $appRoot/build/main/main-entry-*.mjs
|
||||
|
||||
# hide version status element on about page otherwise an error message is shown
|
||||
sed -i '$ a\.subview-prefs-about > div:nth-child(2) {display: none;}' $appRoot/build-browser/*.css
|
||||
|
||||
# hide version status element on about page otherwise a error message is shown
|
||||
sed -i '$ a\.subview-prefs-about > div:nth-child(2) {display: none;}' $out/resources/app/build/renderer/*.css
|
||||
'';
|
||||
};
|
||||
in
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "bleachbit";
|
||||
version = "5.0.2";
|
||||
version = "6.0.0";
|
||||
|
||||
pyproject = false;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/bleachbit/bleachbit-${finalAttrs.version}.tar.bz2";
|
||||
sha256 = "sha256-q3iRdrqsR7U+O2LUaf5qDv4DVNsTOcnf9Po+pewzwMs=";
|
||||
sha256 = "sha256-ixQQirPj2zPEt6wBtFGlok60BsQlHJy8yp1QMonWX/c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -11,12 +11,12 @@
|
||||
versionCheckHook,
|
||||
}:
|
||||
let
|
||||
version = "2.11.3";
|
||||
version = "2.11.4";
|
||||
dist = fetchFromGitHub {
|
||||
owner = "caddyserver";
|
||||
repo = "dist";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-D1qI7TDJpSvtgpo1FsPZk6mpqRvRharFZ8soI7Mn3RE=";
|
||||
hash = "sha256-oRQfQH1GKjAjVMj+dZo1f1+HOaOdJIyEfod0iGLYcc8=";
|
||||
};
|
||||
in
|
||||
buildGoModule (finalAttrs: {
|
||||
@@ -27,10 +27,10 @@ buildGoModule (finalAttrs: {
|
||||
owner = "caddyserver";
|
||||
repo = "caddy";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-7Hgmo7ldDtbwl/acEY/4RNhSGnK/NNcXn+eIm1I8HKg=";
|
||||
hash = "sha256-wzk8KRZfDCbbjRlBwkoKAoMjOhV4xF3yuXUueqtl1xM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-QiZZxYsYFUneZ52TfFKQWJ42lmBofvUTZrHmDBuN2O4=";
|
||||
vendorHash = "sha256-2GwSM7EKN9GwN6kte7CekpXIJ0vzHhhsnrs3TC6vTW4=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{ python3Packages }: with python3Packages; toPythonApplication capa
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-deny";
|
||||
version = "0.19.7";
|
||||
version = "0.19.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EmbarkStudios";
|
||||
repo = "cargo-deny";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-hdC8SagsZzdJ4FbBBPOt6/iAq3pHtNcS4xuYccJX56Y=";
|
||||
hash = "sha256-pcF/SYtlydu09ZXQ5/1Wm2gwttFBulEt27SCEY1+kNU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-2f+RWVTiz0ZBdBKBQfYTojssEHlyVl1mMhfHeulOgXE=";
|
||||
cargoHash = "sha256-I2BHVcpULObHtsqBxzTvEPevZa/CkhlC/gj0ldofDwA=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication (finalAttrs: {
|
||||
pname = "circup";
|
||||
version = "3.0.3";
|
||||
version = "3.0.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "adafruit";
|
||||
repo = "circup";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-ycQdeAw/7R+yNn+2IMHprNI9JTml/uT6tEPk5R2Bl38=";
|
||||
hash = "sha256-sv+ixo5S9JRuVu8JkKt29Kpn1ioRIwGW4Ss/A77YiFU=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [ "semver" ];
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "codebook";
|
||||
version = "0.3.40";
|
||||
version = "0.3.41";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "blopker";
|
||||
repo = "codebook";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-+tjUqo5NO1cVMW2x7eKBw8PpPVvCtURCX/+pHKWT9Z4=";
|
||||
hash = "sha256-QmvkN0e4iwf3gwi/wMnGXlbr9CpG9JvWEuAjlFm50Sk=";
|
||||
};
|
||||
|
||||
buildAndTestSubdir = "crates/codebook-lsp";
|
||||
cargoHash = "sha256-IQdKVZLdXO9zQYDliPbvS7LrVT0h4zOKghJO/E5Zvus=";
|
||||
cargoHash = "sha256-vh4ObFy3pq6e3+DQhYiWNTeaITm+ci/r4CwfAvO3JqU=";
|
||||
|
||||
env = {
|
||||
CARGO_PROFILE_RELEASE_LTO = "fat";
|
||||
|
||||
@@ -40,10 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
meta = {
|
||||
description = "Lightweight and efficient window manager for X11";
|
||||
homepage = "https://github.com/leahneukirchen/cwm";
|
||||
maintainers = with lib.maintainers; [
|
||||
_0x4A6F
|
||||
mkf
|
||||
];
|
||||
maintainers = with lib.maintainers; [ _0x4A6F ];
|
||||
license = lib.licenses.isc;
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "cwm";
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "esptool";
|
||||
version = "5.2.0";
|
||||
version = "5.3.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "espressif";
|
||||
repo = "esptool";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-jXH1T/ey61eFcev4cuLQEVynO+/+BIqRndz+GutR/GU=";
|
||||
hash = "sha256-NRfXLf8u35/9RD1QxEuV06K3h030qXj5GM+QjvLC6FM=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "exploitdb";
|
||||
version = "2026-05-27";
|
||||
version = "2026-06-02";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "exploit-database";
|
||||
repo = "exploitdb";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-nLn9QpHEF5TCMP0wKBSemQV9VA/viwYzjNlsGSpQf4Q=";
|
||||
hash = "sha256-vqdK4/AuBpanZooM/PHQLZzOfR0z44BGq1vmyiFwV/I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication (finalAttrs: {
|
||||
pname = "gallia";
|
||||
version = "2.0.2";
|
||||
version = "2.1.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Fraunhofer-AISEC";
|
||||
repo = "gallia";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-2jiD2ZZGinfTT+35TYl3+okWkkTrY1IdfSYbjC+/cvs=";
|
||||
hash = "sha256-vM19d5alD9xhFgR4are0pDhJyNiUY320nJmjEF2BvxM=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -35,6 +35,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
|
||||
platformdirs
|
||||
pydantic
|
||||
tabulate
|
||||
wcwidth
|
||||
zstandard
|
||||
];
|
||||
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gcx";
|
||||
version = "0.2.16";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "grafana";
|
||||
repo = "gcx";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-IQbtTEhHttJ/i8VOf6g+bulIzjltZDC6+VPjI+YdZjs=";
|
||||
hash = "sha256-6ZKlNLtP3dwPAIXGnupIk0wuXs+qMy2d2OreKfKJlxM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-DJmInygabXTK6mnDlugjAAz86HEBpfCm1HQOIsg3Q/Y=";
|
||||
vendorHash = "sha256-FzhQfooCApBsnNH/cZYFfy3m4cDSBVX9ueaWfhTgx1k=";
|
||||
|
||||
subPackages = [ "cmd/gcx" ];
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ggml";
|
||||
version = "0.13.0";
|
||||
version = "0.13.1";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ggml-org";
|
||||
repo = "ggml";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-yUd/9uk9utNqkM2V/IIkcNuEojBJQwAOEEUbBPDsNCE=";
|
||||
hash = "sha256-OZjuLdQI312UTn4LLW13C7xMqrM0L/2pVl7cAOlbS6M=";
|
||||
};
|
||||
|
||||
# The cmake package does not handle absolute CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_INCLUDEDIR
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.21.0";
|
||||
version = "0.22.1";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "gir";
|
||||
@@ -15,10 +15,10 @@ rustPlatform.buildRustPackage {
|
||||
owner = "gtk-rs";
|
||||
repo = "gir";
|
||||
rev = version;
|
||||
sha256 = "sha256-fjfTB621DwnCRXTsoGxISk+4XblMbjX5dzY+M8uDZ80=";
|
||||
sha256 = "sha256-bR6tOKHJk6tG/Q41F4ZaqCo/LjCigRXpFQn1o+AlTbM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-wT09qXGx4+oJ9MhZqpG9jZ1yMYT/JJ2bJ6z1CT7wqUQ=";
|
||||
cargoHash = "sha256-5FXw78dQJRkBVCn4hhU7+0kZ4pIYDsMAHwH5WrVwxuI=";
|
||||
|
||||
postPatch = ''
|
||||
rm build.rs
|
||||
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage {
|
||||
description = "Tool to generate rust bindings and user API for glib-based libraries";
|
||||
homepage = "https://github.com/gtk-rs/gir/";
|
||||
license = with lib.licenses; [ mit ];
|
||||
maintainers = with lib.maintainers; [ anish ];
|
||||
mainProgram = "gir";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "git-wt";
|
||||
version = "0.28.0";
|
||||
version = "0.29.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "k1LoW";
|
||||
repo = "git-wt";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-JXPJlPAsbXXXN86ZB7PQNv31QZMiAn5DaYfHlnGWknc=";
|
||||
hash = "sha256-1u0GDC1Sc4Xy4URuM6TnR/ENsdIWa94Ixu3mL6WrmFg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-KYE9v+aSWprovDXXhWWmftLQCrH7QtjUYjnGK5m9s9Y=";
|
||||
vendorHash = "sha256-ppbY3ZJo2L/FbWlOiywqk6W4kVDQKkwf5VjRHucb78A=";
|
||||
|
||||
nativeCheckInputs = [ git ];
|
||||
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "goshs";
|
||||
version = "2.0.9";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "patrickhener";
|
||||
repo = "goshs";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-NAq3fBjhiGIP9zA/s6wYaQ0nDju6hZu/g2RPIIEO41g=";
|
||||
hash = "sha256-pS/Dx3C2c8Rpr2ugcxrElFice6Eildt28zdIfrL/5yk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-nVg+ALvvZYG+9JFiNGaT/EQO8IdZK3EO8UQoAp29KNQ=";
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "grype";
|
||||
version = "0.112.0";
|
||||
version = "0.113.0";
|
||||
|
||||
# required for tests
|
||||
__darwinAllowLocalNetworking = true;
|
||||
@@ -21,7 +21,7 @@ buildGoModule (finalAttrs: {
|
||||
owner = "anchore";
|
||||
repo = "grype";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-8gCJ+hCClpYbDOTierJJfH5JP1imuQ3ZV2xDoeE0TtM=";
|
||||
hash = "sha256-wNInrYI7cxn/WsPLZp01rEzQm4gUG0xUgvSLlv27WUM=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
@@ -36,7 +36,7 @@ buildGoModule (finalAttrs: {
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-VDhKMg+3rovhpSFgDUqeLOrf56jtT9c0e090FvY87Yo=";
|
||||
vendorHash = "sha256-VZutEOKZK0aYiS5e9WWXCBOw7epr3xfYJo0xrpSecdk=";
|
||||
|
||||
patches = [
|
||||
# several test golden files have unstable paths based on the platform
|
||||
@@ -82,6 +82,13 @@ buildGoModule (finalAttrs: {
|
||||
|
||||
# patch utility script
|
||||
patchShebangs grype/db/v5/distribution/testdata/tls/generate-x509-cert-pair.sh
|
||||
|
||||
# test build fingerprinting expects a git repository
|
||||
git init
|
||||
git config user.email "test@example.com"
|
||||
git config user.name "Test User"
|
||||
git add .
|
||||
git commit -m "initial commit"
|
||||
'';
|
||||
|
||||
checkFlags =
|
||||
|
||||
@@ -1,148 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
autoPatchelfHook,
|
||||
copyDesktopItems,
|
||||
nodejs,
|
||||
pkg-config,
|
||||
pnpm_10,
|
||||
fetchPnpmDeps,
|
||||
pnpmConfigHook,
|
||||
wails,
|
||||
webkitgtk_4_1,
|
||||
makeDesktopItem,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "gui-for-clash";
|
||||
version = "1.21.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GUI-for-Cores";
|
||||
repo = "GUI.for.Clash";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-eIJYtXa0JdP7hLvBRnWyh0KkdMWvOd2GRXPaqCvP8yE=";
|
||||
};
|
||||
|
||||
metaCommon = {
|
||||
homepage = "https://github.com/GUI-for-Cores/GUI.for.Clash";
|
||||
hydraPlatforms = [ ]; # https://gui-for-cores.github.io/guide/#note
|
||||
license = with lib.licenses; [ gpl3Plus ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
|
||||
frontend = stdenv.mkDerivation (finalAttrs: {
|
||||
inherit pname version src;
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/frontend";
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
pnpmConfigHook
|
||||
pnpm_10
|
||||
];
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs)
|
||||
pname
|
||||
version
|
||||
src
|
||||
sourceRoot
|
||||
;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-gr6XIhLKWSOJ4LWiliOvMoA9QbPiohrCPmvObz49/pw=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
pnpm run build-only
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
cp -r dist $out
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = metaCommon // {
|
||||
description = "GUI program developed by vue3";
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
});
|
||||
in
|
||||
buildGoModule {
|
||||
inherit pname version src;
|
||||
|
||||
patches = [ ./xdg-path-and-restart-patch.patch ];
|
||||
|
||||
vendorHash = "sha256-EeIxt0BzSaZh1F38btUXN9kAvj12nlqEerVgWVGkiuk=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
copyDesktopItems
|
||||
pkg-config
|
||||
wails
|
||||
];
|
||||
|
||||
buildInputs = [ webkitgtk_4_1 ];
|
||||
|
||||
preBuild = ''
|
||||
cp -r ${frontend} frontend/dist
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
wails build -m -s -trimpath -skipbindings -devtools -tags webkit2_41 -o GUI.for.Clash
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "gui-for-clash";
|
||||
exec = "GUI.for.Clash";
|
||||
icon = "gui-for-clash";
|
||||
genericName = "GUI.for.Clash";
|
||||
desktopName = "GUI.for.Clash";
|
||||
categories = [ "Network" ];
|
||||
keywords = [ "Proxy" ];
|
||||
})
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm 0755 build/bin/GUI.for.Clash $out/bin/GUI.for.Clash
|
||||
install -Dm 0644 build/appicon.png $out/share/icons/hicolor/256x256/apps/gui-for-clash.png
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit frontend;
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [
|
||||
"--version-regex"
|
||||
"^v([0-9.]+)$"
|
||||
"--subpackage"
|
||||
"frontend"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
meta = metaCommon // {
|
||||
description = "Clash GUI program developed by vue3 + wails";
|
||||
mainProgram = "GUI.for.Clash";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
--- a/bridge/bridge.go
|
||||
+++ b/bridge/bridge.go
|
||||
@@ -93,7 +93,10 @@
|
||||
|
||||
func (a *App) RestartApp() FlagResult {
|
||||
log.Printf("RestartApp")
|
||||
- exePath := Env.BasePath + "/" + Env.AppName
|
||||
+ exePath, err := os.Executable()
|
||||
+ if err != nil {
|
||||
+ exePath = filepath.Join(Env.BasePath, Env.AppName)
|
||||
+ }
|
||||
|
||||
cmd := exec.Command(exePath)
|
||||
SetCmdWindowHidden(cmd)
|
||||
@@ -21,13 +21,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "halloy";
|
||||
version = "2026.7";
|
||||
version = "2026.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "squidowl";
|
||||
repo = "halloy";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-kmz5m8k0vdqnK2NZTmPxYJ5GqB1O4aRaVjPyNZTWnrQ=";
|
||||
hash = "sha256-AFDx4gmYWUMcvpJi+/2xd0s4gAygwss2XrmCFsd6uKs=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-hrYWF5WNhLqKMFJJlir7tumxNZqgGm+gK+RI1iDPatM=";
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{ python3Packages }: with python3Packages; toPythonApplication ida-hcli
|
||||
@@ -49,6 +49,6 @@ stdenv.mkDerivation rec {
|
||||
changelog = "https://github.com/juzzlin/Heimer/blob/${version}/CHANGELOG";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.linux;
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-nestopia";
|
||||
version = "0-unstable-2026-03-03";
|
||||
version = "0-unstable-2026-05-31";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "highscore-emu";
|
||||
repo = "nestopia";
|
||||
rev = "0ef62709df9ff3af8729c9d7dc257d8fbc2cd48c";
|
||||
hash = "sha256-DRA1l5wV/jZhbFni5ZXD6agObt+XZYrPIbgkzSgUGEo=";
|
||||
rev = "ef344470ab045b3ab94c91b287ecc647df0e60f7";
|
||||
hash = "sha256-70aaHudrB72k87jOtIt+mJ27cUOqcrYIJ9PFT57xPdw=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/highscore";
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-prosystem";
|
||||
version = "0-unstable-2025-12-27";
|
||||
version = "0-unstable-2026-05-16";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "highscore-emu";
|
||||
repo = "prosystem";
|
||||
rev = "44d86957d9377fdc1650c8cdaafbf7e2e2671827";
|
||||
hash = "sha256-vxgh819XwI6rjoI7WwUEPx0PVpb58+MIOhCINQKom0Q=";
|
||||
rev = "c371e250cc01b8be99955671b93d4e3769535e05";
|
||||
hash = "sha256-XTOOfcJo5/T6JtirG0wH7LTdjBoNzdaxNKqFkhc9RO8=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/highscore";
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-stella";
|
||||
version = "0-unstable-2026-04-02";
|
||||
version = "0-unstable-2026-06-01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "highscore-emu";
|
||||
repo = "stella";
|
||||
rev = "d4e5a1f26fd62766e2ff9eb070f59efa89d68ed6";
|
||||
hash = "sha256-/TbINGmvsDFxTwdaewg1Hv/fDQMk4ELz6j1TDLaffUQ=";
|
||||
rev = "f1572c44150d1e772e4d1f4e6ff4284ac8609905";
|
||||
hash = "sha256-ly5jkz6LewoZXon2z77EdPnnGqnp4cbTQQuJsRffuxg=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/src/os/highscore";
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
buildGoModule,
|
||||
fetchFromSourcehut,
|
||||
scdoc,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
@@ -18,6 +19,14 @@ buildGoModule (finalAttrs: {
|
||||
|
||||
vendorHash = "sha256-7N+Zn7tzEG3dGeqNWmY98XUUKV7Y6g8wFZcQP9wea/8=";
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
versionCheckProgramArg = "version";
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
scdoc
|
||||
];
|
||||
@@ -25,8 +34,8 @@ buildGoModule (finalAttrs: {
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
ldflags = [
|
||||
# Recommended in 0.8.0 release notes https://git.sr.ht/~xenrox/hut/refs/v0.8.0
|
||||
"-X main.version=v${finalAttrs.version}"
|
||||
# Recommended in 0.7.0 release notes https://git.sr.ht/~xenrox/hut/refs/v0.7.0
|
||||
"-X main.version=${finalAttrs.version}"
|
||||
];
|
||||
|
||||
postBuild = ''
|
||||
|
||||
@@ -6,6 +6,11 @@ import "encoding/json"
|
||||
import "fmt"
|
||||
|
||||
type Config struct {
|
||||
// Whether to enable filtering of private/link-local addresses from peer
|
||||
// discovery. When enabled, the node will not attempt to connect to RFC1918,
|
||||
// link-local, or loopback addresses advertised by other peers.
|
||||
FilterPrivateAddresses bool `json:"filterPrivateAddresses,omitempty"`
|
||||
|
||||
// List of addresses to listen on for libp2p traffic.
|
||||
ListenAddresses []string `json:"listenAddresses,omitempty"`
|
||||
|
||||
@@ -135,6 +140,9 @@ func (j *Config) UnmarshalJSON(value []byte) error {
|
||||
if err := json.Unmarshal(value, &plain); err != nil {
|
||||
return err
|
||||
}
|
||||
if v, ok := raw["filterPrivateAddresses"]; !ok || v == nil {
|
||||
plain.FilterPrivateAddresses = false
|
||||
}
|
||||
if v, ok := raw["listenAddresses"]; !ok || v == nil {
|
||||
plain.ListenAddresses = []string{
|
||||
"/ip4/0.0.0.0/tcp/8001",
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "hyprspace";
|
||||
version = "0.13.1";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hyprspace";
|
||||
repo = "hyprspace";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-AsOgnnYZRoB/t2XwrTMD8XIHoy/bl6bqUvIT5e02uNo=";
|
||||
hash = "sha256-d8sCs81Va/RQL8k+6GIMp9z0C0AmWEhvZSijRKyVBC0=";
|
||||
};
|
||||
|
||||
env.CGO_ENABLED = "0";
|
||||
|
||||
vendorHash = "sha256-m7asItMMFm/lHNl4nemvuMU0mn69kTrC1XK4rUCOor4=";
|
||||
vendorHash = "sha256-O604bzvz6QjDdM9hK4gya3vOjlki4ZaohY363mi3Of4=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "lacy";
|
||||
version = "0.7.0";
|
||||
version = "0.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "timothebot";
|
||||
repo = "lacy";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-YX/iXlQ3uhmxNr4fpPtxIPhFwXGUJZF8rYe9mU+9Hos=";
|
||||
hash = "sha256-yPq9iW/Qm28frvpCByE5sM8+VBtM1k/GBeHVAhb6XOc=";
|
||||
};
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
cargoHash = "sha256-3K8g/AGpSXFUhgEBg/AzUYsH3vOvsRzAYnrOAZNVS4g=";
|
||||
cargoHash = "sha256-EPoVN3S+vQ1hwxWHUbYy1XSpEkswLDbl29lXV8IVCxA=";
|
||||
|
||||
meta = {
|
||||
description = "Fast magical cd alternative for lacy terminal navigators";
|
||||
|
||||
@@ -3,21 +3,28 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
autoreconfHook,
|
||||
testers,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lha";
|
||||
version = "1.14i-unstable-2024-11-27";
|
||||
version = "1.14i-unstable-2026-01-01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jca02266";
|
||||
repo = "lha";
|
||||
rev = "26b71be85a762098bdeb95f4533045c7dad86f31";
|
||||
hash = "sha256-jiYTBqDXvxTdrvHYaK+1eo4xIpl+B9ZljhBBYD0BGzQ=";
|
||||
rev = "86094cb56aba34de45668f39f74fcfb61e9d7fb6";
|
||||
hash = "sha256-ckzcCvt5v6rBcp9n8XXzgS2XkURbO8bsqTURGLRzpAU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = finalAttrs.finalPackage;
|
||||
command = "lha --help";
|
||||
version = "1.14i";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Archiver and compressor using the LZSS and Huffman encoding compression algorithms";
|
||||
homepage = "https://github.com/jca02266/lha";
|
||||
@@ -33,4 +40,4 @@ stdenv.mkDerivation {
|
||||
license = lib.licenses.unfree;
|
||||
mainProgram = "lha";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
buildInputs = [ hdf5 ];
|
||||
buildInputs = [ (hdf5.override { apiVersion = "v110"; }) ];
|
||||
|
||||
checkPhase = "make test";
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "metacubexd";
|
||||
version = "1.245.1";
|
||||
version = "1.249.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MetaCubeX";
|
||||
repo = "metacubexd";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-h+WaeDAdJ2ucIrtiQ3Sef7UjhG6LLwa/CUCnNJgo6lE=";
|
||||
hash = "sha256-JfCvQZHf/+H3iD/MNDmu/MBxrbdv0iNaSh4LyAL52Pc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
inherit (finalAttrs) pname version src;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-FRTjHQvy4zoeh4BBhpUv6wEnlYL1bRqGKbbT6IlK5Gg=";
|
||||
hash = "sha256-RcpRYowlEzvnPkEG8hsTvvb9RntfMzgk6+PFBRXIepI=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "noriskclient-launcher-unwrapped";
|
||||
version = "0.6.21";
|
||||
version = "0.6.22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NoRiskClient";
|
||||
repo = "noriskclient-launcher";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-RiKFSKHnyeiIcSaOltr4qv0pEBX5wctfztZ+8yrHjnE=";
|
||||
hash = "sha256-X6oc6DTwIseNvWHhHoHv1Ur2zoaaGCdxYVe4+5+zjvA=";
|
||||
};
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
@@ -45,7 +45,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
--replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-FiM1FuWeGmfZlnKiIImGOsJnKt3qsLqvY6oRUvOSBWM=";
|
||||
cargoHash = "sha256-dwGJKLO+3i5FUgv+Huu1ZD/hFg/KdyWofApwkIDFD1I=";
|
||||
|
||||
cargoRoot = "src-tauri";
|
||||
buildAndTestSubdir = finalAttrs.cargoRoot;
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
}:
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "pferd";
|
||||
version = "3.9.0";
|
||||
version = "3.9.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Garmelon";
|
||||
repo = "PFERD";
|
||||
tag = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-bJU7LytxWTb/CRODniDySXRrVyli9FI/yxQqEs/Ar2k=";
|
||||
sha256 = "sha256-q1IyuANj47M3KR8qQXASf3WOpFgjNGD/gFZn1l6grTk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3Packages; [
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
picom.overrideAttrs (previousAttrs: {
|
||||
pname = "picom-pijulius";
|
||||
version = "8.2-unstable-2026-02-08";
|
||||
version = "8.2-unstable-2026-06-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pijulius";
|
||||
repo = "picom";
|
||||
rev = "6a97dddc348a753ecf8e34d68a5e43541186b1ee";
|
||||
hash = "sha256-AaZ4xddlLjq3SoS0KrDA6AOHSB6sz4DWFzBMgXZ5LXE=";
|
||||
rev = "8f83eb54a690b1c52f1e4dbeb5ab5a42d66cc167";
|
||||
hash = "sha256-CpQ8x/HrNx4IR+Qj+aBEQeKNRKNvXUPaUyNyj6ljBFg=";
|
||||
};
|
||||
|
||||
dontVersionCheck = true;
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
symlinkJoin,
|
||||
udev,
|
||||
vulkan-loader,
|
||||
wrapGAppsHook3,
|
||||
xrandr,
|
||||
|
||||
additionalLibs ? [ ],
|
||||
@@ -61,7 +62,10 @@ symlinkJoin {
|
||||
|
||||
paths = [ prismlauncher' ];
|
||||
|
||||
nativeBuildInputs = [ kdePackages.wrapQtAppsHook ];
|
||||
nativeBuildInputs = [
|
||||
kdePackages.wrapQtAppsHook
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
kdePackages.qtbase
|
||||
@@ -71,6 +75,10 @@ symlinkJoin {
|
||||
++ lib.optional stdenv.hostPlatform.isLinux kdePackages.qtwayland;
|
||||
|
||||
postBuild = ''
|
||||
# Required for org.gtk.Settings.FileChooser
|
||||
gappsWrapperArgsHook
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
|
||||
wrapQtAppsHook
|
||||
'';
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "bird-exporter";
|
||||
version = "1.4.5";
|
||||
version = "1.5.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -15,10 +15,10 @@ buildGoModule (finalAttrs: {
|
||||
owner = "czerwonk";
|
||||
repo = "bird_exporter";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-uR3/2ktVxzEZOy57eFopLFsAuiw03e9WZn2QC4/GNVc=";
|
||||
hash = "sha256-rSZFSIg17t1gcWYVHLEW54dSnqx889TC0R4UAZoBHMQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-seTykqpdYQiWp8CoTAJ62rzxDaLFqjWe8y5YMu8Ypm8=";
|
||||
vendorHash = "sha256-anmrvgKfcuzky3tnniVvqdJs8SuJcJJStusVY3q9ago=";
|
||||
|
||||
passthru.tests = { inherit (nixosTests.prometheus-exporters) bird; };
|
||||
|
||||
|
||||
@@ -30,11 +30,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qtractor";
|
||||
version = "1.5.12";
|
||||
version = "1.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/qtractor/qtractor-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-9UO7LsKa+w/q33Of9F/e5Y9z67fzWPlvLygqSK7mp4M=";
|
||||
hash = "sha256-0iMVdWljRWwypzYTQ+tk+y6QC68uYgIdBf+IujGlt5Q=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "rime-wanxiang";
|
||||
version = "15.9.12";
|
||||
version = "15.12.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "amzxyz";
|
||||
repo = "rime_wanxiang";
|
||||
tag = "v" + finalAttrs.version;
|
||||
hash = "sha256-qg6QyI2RHKkCfjj41IXfL2cIXt82NR9oh52A/V0O67g=";
|
||||
hash = "sha256-2mT8n1FOACavkT83b95il1k8P2c8uJx9DBw+ZPGtY7A=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -0,0 +1,218 @@
|
||||
From 28f4fb2781058fdc271986e91e0996fcce3aaaef Mon Sep 17 00:00:00 2001
|
||||
From: Markus Theil <markus.theil@secunet.com>
|
||||
Date: Thu, 19 Feb 2026 15:15:51 +0100
|
||||
Subject: [PATCH] linux: fix console handling
|
||||
|
||||
Since using glibc 2.42 struct termio was no longer exposed
|
||||
from glibc.
|
||||
|
||||
An earlier fix was to provide the definition of struct termio
|
||||
if not given in glibc. But it mixed up the ioctls for struct
|
||||
termios with an internal struct termio.
|
||||
|
||||
This commit fixes this by providing definitions from kernel
|
||||
headers instead of glibc and translating between all relevant
|
||||
ioctl sets necessary to use screen, minicom or stty with different
|
||||
glibc versions.
|
||||
|
||||
Signed-off-by: Markus Theil <markus.theil@secunet.com>
|
||||
---
|
||||
src/rshim.c | 4 ++
|
||||
src/rshim.h | 7 +++-
|
||||
src/rshim_fuse.c | 98 +++++++++++++++++++++++++++++++++++++-----------
|
||||
3 files changed, 86 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/src/rshim.c b/src/rshim.c
|
||||
index 78018f5d..d3004508 100644
|
||||
--- a/src/rshim.c
|
||||
+++ b/src/rshim.c
|
||||
@@ -191,7 +191,11 @@ const char *magic_to_str(uint64_t magic)
|
||||
|
||||
/* Terminal characteristics for newly created consoles. */
|
||||
#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
|
||||
+#ifdef __linux__
|
||||
+static struct termios2 init_console_termios = {
|
||||
+#else
|
||||
static struct termios init_console_termios = {
|
||||
+#endif
|
||||
.c_iflag = INLCR | ICRNL,
|
||||
.c_oflag = OPOST | ONLCR,
|
||||
.c_cflag = B115200 | HUPCL | CLOCAL | CREAD | CS8,
|
||||
diff --git a/src/rshim.h b/src/rshim.h
|
||||
index 412e709d..e58b9181 100644
|
||||
--- a/src/rshim.h
|
||||
+++ b/src/rshim.h
|
||||
@@ -16,7 +16,9 @@
|
||||
#include <fcntl.h>
|
||||
#ifdef __linux__
|
||||
#include <linux/virtio_ids.h>
|
||||
+#include <asm/termios.h>
|
||||
#else
|
||||
+#include <termios.h>
|
||||
#define VIRTIO_ID_NET 1
|
||||
#define VIRTIO_ID_CONSOLE 3
|
||||
#endif
|
||||
@@ -26,7 +28,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/mount.h>
|
||||
-#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
@@ -408,7 +409,11 @@ struct rshim_backend {
|
||||
pthread_cond_t ctrl_wait_cond;
|
||||
|
||||
/* Current termios settings for the console. */
|
||||
+#ifdef __linux__
|
||||
+ struct termios2 cons_termios;
|
||||
+#else
|
||||
struct termios cons_termios;
|
||||
+#endif
|
||||
|
||||
/* Pending boot & fifo request for the worker. */
|
||||
uint8_t *boot_work_buf;
|
||||
diff --git a/src/rshim_fuse.c b/src/rshim_fuse.c
|
||||
index ac423657..ebd214a6 100644
|
||||
--- a/src/rshim_fuse.c
|
||||
+++ b/src/rshim_fuse.c
|
||||
@@ -26,27 +26,9 @@
|
||||
#include <fuse/cuse_lowlevel.h>
|
||||
#include <fuse/fuse_opt.h>
|
||||
#endif
|
||||
+#include <asm/termios.h>
|
||||
#include <features.h>
|
||||
#include <unistd.h>
|
||||
-/*
|
||||
- * glibc 2.42+ no longer pulls in struct termio; provide a minimal definition so
|
||||
- * we can keep using the legacy layout expected by existing userspace tools.
|
||||
- */
|
||||
-#if !__GLIBC_PREREQ(2, 42) // if glibc is before 2.42
|
||||
-#include <termio.h>
|
||||
-#else
|
||||
-#ifndef NCC
|
||||
-#define NCC 8
|
||||
-#endif
|
||||
-struct termio {
|
||||
- unsigned short c_iflag;
|
||||
- unsigned short c_oflag;
|
||||
- unsigned short c_cflag;
|
||||
- unsigned short c_lflag;
|
||||
- unsigned char c_line;
|
||||
- unsigned char c_cc[NCC];
|
||||
-};
|
||||
-#endif
|
||||
#elif defined(__FreeBSD__)
|
||||
#include <termios.h>
|
||||
#include <sys/stat.h>
|
||||
@@ -398,6 +380,13 @@ static void rshim_fuse_console_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
size_t in_bufsz, size_t out_bufsz)
|
||||
{
|
||||
rshim_backend_t *bd = fuse_req_userdata(req);
|
||||
+ /* dummy data, needed for stty to work */
|
||||
+ static const struct winsize ws = {
|
||||
+ .ws_row = 24,
|
||||
+ .ws_col = 80,
|
||||
+ .ws_xpixel = 0,
|
||||
+ .ws_ypixel = 0,
|
||||
+ };
|
||||
|
||||
if (!bd) {
|
||||
fuse_reply_err(req, ENODEV);
|
||||
@@ -407,21 +396,71 @@ static void rshim_fuse_console_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
pthread_mutex_lock(&bd->mutex);
|
||||
|
||||
switch (cmd) {
|
||||
- case TCGETS:
|
||||
+ /* ------ */
|
||||
+ /* TERMIO */
|
||||
+ /* -------*/
|
||||
+ case TCGETA:
|
||||
if (!out_bufsz) {
|
||||
struct iovec iov = { arg, sizeof(struct termio) };
|
||||
|
||||
fuse_reply_ioctl_retry(req, NULL, 0, &iov, 1);
|
||||
} else {
|
||||
- fuse_reply_ioctl(req, 0, &bd->cons_termios, sizeof(struct termio));
|
||||
+ struct termio cons_termio = {
|
||||
+ .c_iflag = bd->cons_termios.c_iflag & 0xffff,
|
||||
+ .c_oflag = bd->cons_termios.c_oflag & 0xffff,
|
||||
+ .c_cflag = bd->cons_termios.c_cflag & 0xffff,
|
||||
+ .c_lflag = bd->cons_termios.c_lflag & 0xffff,
|
||||
+ .c_line = bd->cons_termios.c_line,
|
||||
+ };
|
||||
+
|
||||
+ memcpy(&cons_termio.c_cc, &bd->cons_termios.c_cc, sizeof(cons_termio.c_cc));
|
||||
+ fuse_reply_ioctl(req, 0, &bd->cons_termios, sizeof(bd->cons_termios));
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ case TCSETA:
|
||||
+ case TCSETAW:
|
||||
+ case TCSETAF:
|
||||
+ if (!in_bufsz) {
|
||||
+ struct iovec iov = { arg, sizeof(struct termio)};
|
||||
+
|
||||
+ fuse_reply_ioctl_retry(req, &iov, 1, NULL, 0);
|
||||
+ } else {
|
||||
+ struct termio cons_termio = { 0 };
|
||||
+
|
||||
+ memcpy(&cons_termio, in_buf, sizeof(struct termio));
|
||||
+ bd->cons_termios.c_iflag = cons_termio.c_iflag;
|
||||
+ bd->cons_termios.c_oflag = cons_termio.c_oflag;
|
||||
+ bd->cons_termios.c_cflag = cons_termio.c_cflag;
|
||||
+ bd->cons_termios.c_lflag = cons_termio.c_lflag;
|
||||
+ memset(&bd->cons_termios.c_cc, 0, sizeof(bd->cons_termios.c_cc));
|
||||
+ memcpy(&bd->cons_termios.c_cc, &cons_termio.c_cc, sizeof(cons_termio.c_cc));
|
||||
+ fuse_reply_ioctl(req, 0, NULL, 0);
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ /* ---------------- */
|
||||
+ /* TERMIOS/TERMIOS2 */
|
||||
+ /* ---------------- */
|
||||
+ case TCGETS:
|
||||
+ case TCGETS2:
|
||||
+ if (!out_bufsz) {
|
||||
+ struct iovec iov = { arg, sizeof(bd->cons_termios) };
|
||||
+
|
||||
+ fuse_reply_ioctl_retry(req, NULL, 0, &iov, 1);
|
||||
+ } else {
|
||||
+ fuse_reply_ioctl(req, 0, &bd->cons_termios, sizeof(bd->cons_termios));
|
||||
}
|
||||
break;
|
||||
|
||||
case TCSETS:
|
||||
+ case TCSETS2:
|
||||
case TCSETSW:
|
||||
+ case TCSETSW2:
|
||||
case TCSETSF:
|
||||
+ case TCSETSF2:
|
||||
if (!in_bufsz) {
|
||||
- struct iovec iov = {arg, sizeof(bd->cons_termios)};
|
||||
+ struct iovec iov = { arg, sizeof(bd->cons_termios)};
|
||||
|
||||
fuse_reply_ioctl_retry(req, &iov, 1, NULL, 0);
|
||||
} else {
|
||||
@@ -430,6 +469,21 @@ static void rshim_fuse_console_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
}
|
||||
break;
|
||||
|
||||
+ /* ---------- */
|
||||
+ /* BSD IOCTLs */
|
||||
+ /* ---------- */
|
||||
+ case TIOCGWINSZ:
|
||||
+ if (out_bufsz == 0) {
|
||||
+ struct iovec iov = { arg, sizeof(struct winsize) };
|
||||
+ fuse_reply_ioctl_retry(req, NULL, 0, &iov, 1);
|
||||
+ } else {
|
||||
+ fuse_reply_ioctl(req, 0, &ws, sizeof(ws));
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ /* ------- */
|
||||
+ /* Default */
|
||||
+ /* ------- */
|
||||
default:
|
||||
fuse_reply_err(req, ENOSYS);
|
||||
break;
|
||||
@@ -0,0 +1,28 @@
|
||||
From 8f739318029105415da01bf8723d2f89d3188860 Mon Sep 17 00:00:00 2001
|
||||
From: Markus Theil <theil.markus@gmail.com>
|
||||
Date: Mon, 1 Jun 2026 10:45:47 +0200
|
||||
Subject: [PATCH] configure: fix fuse cflags override for fuse 3
|
||||
|
||||
Signed-off-by: Markus Theil <theil.markus@gmail.com>
|
||||
---
|
||||
configure.ac | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 72fa487..6a934d7 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -85,7 +85,12 @@ AS_IF([test "x$build_fuse" = "xyes"], [
|
||||
if test $backend = freebsd; then
|
||||
AC_CHECK_LIB(cuse, cuse_dev_create)
|
||||
else
|
||||
- PKG_CHECK_MODULES(fuse, fuse, [], PKG_CHECK_MODULES(fuse, fuse3, [use_fuse3=yes], [AC_MSG_ERROR([Can't find fuse])]))
|
||||
+ PKG_CHECK_EXISTS([fuse], [
|
||||
+ PKG_CHECK_MODULES(fuse, fuse)
|
||||
+ ], [PKG_CHECK_EXISTS([fuse3], [
|
||||
+ PKG_CHECK_MODULES(fuse, fuse3)
|
||||
+ use_fuse3=yes
|
||||
+ ], [AC_MSG_ERROR([Can't find fuse])])])
|
||||
fi
|
||||
if test "x$use_fuse3" = "xyes"; then
|
||||
AC_SUBST(CPPFLAGS, "$CPPFLAGS -DFUSE_USE_VERSION=30")
|
||||
@@ -4,8 +4,7 @@
|
||||
bashNonInteractive,
|
||||
coreutils,
|
||||
fetchFromGitHub,
|
||||
fetchpatch2,
|
||||
fuse,
|
||||
fuse3,
|
||||
gawk,
|
||||
gnugrep,
|
||||
gnused,
|
||||
@@ -13,6 +12,7 @@
|
||||
libusb1,
|
||||
makeBinaryWrapper,
|
||||
pciutils,
|
||||
perl,
|
||||
pkg-config,
|
||||
procps,
|
||||
pv,
|
||||
@@ -25,13 +25,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rshim-user-space";
|
||||
version = "2.6.6";
|
||||
version = "2.7.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Mellanox";
|
||||
repo = "rshim-user-space";
|
||||
rev = "rshim-${finalAttrs.version}";
|
||||
hash = "sha256-OdrJnOm0QegQ2ex1hFSWPfwYuBnXpGeMJ2YfvNyIwTU=";
|
||||
hash = "sha256-2Hu5ysjh38dBaGeZirke+qMb6jw+6sTh8qd4LPei5ms=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -42,14 +42,27 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
++ lib.optionals withBfbInstall [ makeBinaryWrapper ];
|
||||
|
||||
buildInputs = [
|
||||
fuse
|
||||
fuse3
|
||||
libusb1
|
||||
pciutils
|
||||
systemd
|
||||
];
|
||||
|
||||
patches = [
|
||||
# https://github.com/Mellanox/rshim-user-space/pull/391
|
||||
# Avoid nested PKG_CHECK_MODULES which leaks help text into ./configure
|
||||
# as bare shell, producing "fuse_CFLAGS: command not found" noise.
|
||||
./fix-fuse-3-support.patch
|
||||
# https://github.com/Mellanox/rshim-user-space/pull/363
|
||||
# Fix console handling under glibc >= 2.42 where struct termio was removed.
|
||||
./fix-console-handling.patch
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
patchShebangs scripts/bfb-install
|
||||
patchShebangs scripts/bf-reg
|
||||
substituteInPlace scripts/bfb-install \
|
||||
--replace-fail 'bf-reg' "${placeholder "out"}/bin/bf-reg"
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
@@ -62,6 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
''
|
||||
+ lib.optionalString withBfbInstall ''
|
||||
cp -a scripts/bfb-install "$out"/bin/
|
||||
cp -a scripts/bf-reg "$out"/bin/
|
||||
'';
|
||||
|
||||
postFixup = lib.optionalString withBfbInstall ''
|
||||
@@ -74,6 +88,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
gnugrep
|
||||
gnused
|
||||
pciutils
|
||||
perl
|
||||
procps
|
||||
pv
|
||||
systemd
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "sigil";
|
||||
version = "2.7.0";
|
||||
version = "2.7.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "Sigil";
|
||||
owner = "Sigil-Ebook";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-cKnWAVLScPZYNAFOiXaoHSXMl3YNOh6zmEryILaOR4w=";
|
||||
hash = "sha256-GbOTXyxj8HxEE833jUADzKbWpkzXHwjyoj9haIWB9Xk=";
|
||||
};
|
||||
|
||||
pythonPath = with python3Packages; [
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication (finalAttrs: {
|
||||
pname = "theharvester";
|
||||
version = "4.11.0";
|
||||
version = "4.11.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "laramies";
|
||||
repo = "theharvester";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-BA3YDnd4Wdzwe32dVuazEA9gcFthTBa7ao6jjata5/I=";
|
||||
hash = "sha256-/tXRqlM4m46R+iy5Dfmwn0ulJbgmpYTTRHRzyoUKa9A=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
ncurses,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "torrent7z";
|
||||
version = "1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BubblesInTheTub";
|
||||
repo = "torrent7z";
|
||||
rev = finalAttrs.version;
|
||||
sha256 = "Y2tr0+z9uij4Ifi6FfWRN24BwcDXUZKVLkLtKUiVjU4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "fix-gcc10-compilation.patch"; # Fix compilation on GCC 10. This patch is included on the latest commit
|
||||
url = "https://github.com/paulyc/torrent7z/commit/5958f42a364c430b3ed4ac68911bbbea1f967fc4.patch";
|
||||
sha256 = "vJOv1sG9XwTvvxQiWew0H5ALoUb9wIAouzTsTvKHuPI=";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [ ncurses ];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
postPatch = ''
|
||||
# Remove non-free RAR source code
|
||||
# (see DOC/License.txt, https://fedoraproject.org/wiki/Licensing:Unrar)
|
||||
rm -r linux_src/p7zip_4.65/CPP/7zip/Compress/Rar*
|
||||
find . -name makefile'*' -exec sed -i '/Rar/d' {} +
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
mkdir linux_src/p7zip_4.65/bin
|
||||
cd linux_src/p7zip_4.65/CPP/7zip/Bundles/Alone
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ../../../../bin/t7z $out/bin
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/BubblesInTheTub/torrent7z";
|
||||
description = "Fork of torrent7z, viz a derivative of 7zip that produces invariant .7z archives for torrenting";
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ cirno-999 ];
|
||||
mainProgram = "t7z";
|
||||
# RAR code is under non-free UnRAR license, but we remove it
|
||||
license = lib.licenses.gpl3Only;
|
||||
};
|
||||
})
|
||||
@@ -12,7 +12,7 @@
|
||||
nix-update-script,
|
||||
}:
|
||||
let
|
||||
version = "4.19.15";
|
||||
version = "4.20.10";
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "unciv";
|
||||
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
|
||||
hash = "sha256-RlKoiSxW0MPPFTDq72k6CvYTHIEZ0hR8/PhW0j8ERs8=";
|
||||
hash = "sha256-amAdOVNENwx7E62qBHUnHLC7a6nUMLdzcyxEPnRSsI0=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
@@ -2,29 +2,30 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildGoModule,
|
||||
writableTmpDirAsHomeHook,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "vi-mongo";
|
||||
version = "0.1.30";
|
||||
version = "0.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kopecmaciej";
|
||||
repo = "vi-mongo";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-gNOKWgGRuWUNqBAu5gWx/HFiNfx+HOdi5tYVyXP3dcI=";
|
||||
hash = "sha256-0TMrQ1dbAP7HOjrVVcnoHPchf7e14Qzcl5lAD0rHTDs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-QoYjNzWWNrEDS4Xq1NF77iqX5WTNxnVV1UJiYq2slhw=";
|
||||
vendorHash = "sha256-CuFoH6crS6BOsSj2hNGw7loi4RixHbyJGySfxglUUmg=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X=github.com/kopecmaciej/vi-mongo/cmd.version=${finalAttrs.version}"
|
||||
"-X=github.com/kopecmaciej/vi-mongo/internal/build.Version=${finalAttrs.version}"
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ writableTmpDirAsHomeHook ];
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication (finalAttrs: {
|
||||
pname = "vunnel";
|
||||
version = "0.58.0";
|
||||
version = "0.60.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "anchore";
|
||||
repo = "vunnel";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-9rxQ96PVbU5GCSpp3BDW1p/1jBnZzkmPkwblERv9CCc=";
|
||||
hash = "sha256-CnWD021r5I9xH1YRp5RO520hq8eIHPJcPomq/UiJ9gA=";
|
||||
leaveDotGit = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
cmake,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wasm3";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wasm3";
|
||||
repo = "wasm3";
|
||||
rev = "v${version}";
|
||||
sha256 = "07zzmk776j8ydyxhrnnjiscbhhmz182a62r6aix6kfk5kq2cwia2";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_WASI=simple"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm755 wasm3 -t $out/bin
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/wasm3/wasm3";
|
||||
description = "Fastest WebAssembly interpreter, and the most universal runtime";
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [ malbarbo ];
|
||||
license = lib.licenses.mit;
|
||||
knownVulnerabilities = [
|
||||
# wasm3 expects all wasm code to be pre-validated, any users
|
||||
# should be aware that running unvalidated wasm will potentially
|
||||
# lead to RCE until upstream have added a builtin validator
|
||||
"CVE-2022-39974"
|
||||
"CVE-2022-34529"
|
||||
"CVE-2022-28990"
|
||||
"CVE-2022-28966"
|
||||
"CVE-2021-45947"
|
||||
"CVE-2021-45946"
|
||||
"CVE-2021-45929"
|
||||
"CVE-2021-38592"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -10,13 +10,13 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "waves";
|
||||
version = "0.1.44";
|
||||
version = "0.1.45";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "llehouerou";
|
||||
repo = "waves";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-uyTstoF3rhqMmhG5hwyyq1fGBa6mJjw3/NEjTIMYxi4=";
|
||||
hash = "sha256-dIewVRPw4ZR9bG+z0v1Vim1Mhi+Buoy0pMzF5THNccU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-lps0OdY8KoILJh/roY78iC+bYHPeENioQoIsL6v/N0A=";
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
Prototype the K&R handler so the probe still compiles under -std=gnu23
|
||||
(selected by autoconf 2.73). Upstream removed the probe in 8dd271fdec52,
|
||||
which does not apply against 5.9 with the PCRE backports.
|
||||
|
||||
https://github.com/NixOS/nixpkgs/issues/513543
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2334,8 +2334,7 @@ if test x$signals_style = xPOSIX_SIGNALS; then
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
int child=0;
|
||||
-void handler(sig)
|
||||
- int sig;
|
||||
+void handler(int sig)
|
||||
{if(sig==SIGCHLD) child=1;}
|
||||
int main() {
|
||||
struct sigaction act;
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
fetchpatch,
|
||||
autoreconfHook,
|
||||
yodl,
|
||||
perl,
|
||||
@@ -18,7 +17,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "zsh";
|
||||
version = "5.9";
|
||||
version = "5.9.1";
|
||||
outputs = [
|
||||
"out"
|
||||
"doc"
|
||||
@@ -28,52 +27,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/zsh/zsh-${finalAttrs.version}.tar.xz";
|
||||
sha256 = "sha256-m40ezt1bXoH78ZGOh2dSp92UjgXBoNuhCrhjhC1FrNU=";
|
||||
sha256 = "sha256-XSC+wD+YHcTpoJ7CRedBU4j/ZB95xcXEFrUELljYKA0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# fix location of timezone data for TZ= completion
|
||||
./tz_completion.patch
|
||||
# Fixes configure misdetection when using clang 16, resulting in broken subshells on Darwin.
|
||||
# This patch can be dropped with the next release of zsh.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/zsh-users/zsh/commit/ab4d62eb975a4c4c51dd35822665050e2ddc6918.patch";
|
||||
hash = "sha256-nXB4w7qqjZJC7/+CDxnNy6wu9qNwmS3ezjj/xK7JfeU=";
|
||||
excludes = [ "ChangeLog" ];
|
||||
})
|
||||
# Fixes compatibility with texinfo 7.1. This patch can be dropped with the next release of zsh.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/zsh-users/zsh/commit/ecd3f9c9506c7720dc6c0833dc5d5eb00e4459c4.patch";
|
||||
hash = "sha256-oA8GC8LmuqNKGuPqGfiQVhL5nWb7ArLWGUI6wjpsIW8=";
|
||||
excludes = [ "ChangeLog" ];
|
||||
})
|
||||
# PCRE 2.x support
|
||||
(fetchpatch {
|
||||
url = "https://github.com/zsh-users/zsh/commit/1b421e4978440234fb73117c8505dad1ccc68d46.patch";
|
||||
hash = "sha256-jqTXnz56L3X21e3kXtzrT1jKEq+K7ittFjL7GdHVq94=";
|
||||
excludes = [ "ChangeLog" ];
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/zsh-users/zsh/commit/b62e911341c8ec7446378b477c47da4256053dc0.patch";
|
||||
hash = "sha256-MfyiLucaSNNfdCLutgv/kL/oi/EVoxZVUd1KjGzN9XI=";
|
||||
excludes = [ "ChangeLog" ];
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/zsh-users/zsh/commit/10bdbd8b5b0b43445aff23dcd412f25cf6aa328a.patch";
|
||||
hash = "sha256-bl1PG9Zk1wK+2mfbCBhD3OEpP8HQboqEO8sLFqX8DmA=";
|
||||
excludes = [ "ChangeLog" ];
|
||||
})
|
||||
# autoconf 2.73 picks -std=gnu23, breaking the K&R sigsuspend probe and
|
||||
# causing $(...) hangs. Drop with the next zsh release.
|
||||
./fix-sigsuspend-probe-c23.patch
|
||||
]
|
||||
++ lib.optionals stdenv.cc.isGNU [
|
||||
# Fixes compilation with gcc >= 14.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/zsh-users/zsh/commit/4c89849c98172c951a9def3690e8647dae76308f.patch";
|
||||
hash = "sha256-l5IHQuIXo0N6ynLlZoQA7wJd/C7KrW3G7nMzfjQINkw=";
|
||||
excludes = [ "ChangeLog" ];
|
||||
})
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "gnome-shell-extension-pop-shell";
|
||||
version = "1.2.0-unstable-2025-10-01";
|
||||
version = "1.2.0-unstable-2026-03-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pop-os";
|
||||
repo = "shell";
|
||||
rev = "3cb093b8e6a36c48dd5e84533dc874ea74cd8a9e";
|
||||
hash = "sha256-FNNc3RY+x6y4bRU9BCUcQdzkG6iM8kKeRGkziQrTUM0=";
|
||||
rev = "7898b65c20735057faf0797f8ed056704ca55f0d";
|
||||
hash = "sha256-MmHoOxymo0QSRbRcSbFiv82+QWAwIwXwg/wyGQGVYiI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
stdenv,
|
||||
lib,
|
||||
writeText,
|
||||
makeWrapper,
|
||||
makeBinaryWrapper,
|
||||
factor-lang,
|
||||
factor-no-gui,
|
||||
librsvg,
|
||||
@@ -83,7 +83,7 @@ in
|
||||
wrapped-factor
|
||||
;
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
makeBinaryWrapper
|
||||
(lib.hiPrio finalAttrs.wrapped-factor)
|
||||
]
|
||||
++ attrs.nativeBuildInputs or [ ];
|
||||
|
||||
@@ -1089,10 +1089,6 @@ in
|
||||
# TODO: figure out darwin failure
|
||||
doCheck = lua.luaversion == "5.1" && stdenv.hostPlatform.isLinux;
|
||||
|
||||
nvimSkipModules = [
|
||||
"bootstrap" # tries to install luarocks from network
|
||||
];
|
||||
|
||||
bustedFlags = [
|
||||
"--run=offline"
|
||||
];
|
||||
|
||||
@@ -358,13 +358,13 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "boto3-stubs";
|
||||
version = "1.43.21";
|
||||
version = "1.43.22";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "boto3_stubs";
|
||||
inherit (finalAttrs) version;
|
||||
hash = "sha256-PRmr3e6APfH3tDC2f2T80Llloe7reupzpzakya8ZqBw=";
|
||||
hash = "sha256-eDiZ0br4cPabtd0o3rgBiqkUOM9sQHaRzFl6f2dTu6w=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
colorama,
|
||||
deptry,
|
||||
dncil,
|
||||
dnfile,
|
||||
fetchFromGitHub,
|
||||
humanize,
|
||||
ida-netnode,
|
||||
ida-settings,
|
||||
jschema-to-python,
|
||||
msgspec,
|
||||
mypy-protobuf,
|
||||
mypy,
|
||||
networkx,
|
||||
pefile,
|
||||
protobuf,
|
||||
psutil,
|
||||
pydantic,
|
||||
pyelftools,
|
||||
pyghidra,
|
||||
pygithub,
|
||||
pytest-instafail,
|
||||
pytest-sugar,
|
||||
pytestCheckHook,
|
||||
python-flirt,
|
||||
pyyaml,
|
||||
requests,
|
||||
rich,
|
||||
ruamel-yaml,
|
||||
sarif-om,
|
||||
setuptools-scm,
|
||||
setuptools,
|
||||
stix2,
|
||||
types-colorama,
|
||||
types-protobuf,
|
||||
types-psutil,
|
||||
types-pyyaml,
|
||||
types-requests,
|
||||
viv-utils,
|
||||
vivisect,
|
||||
writableTmpDirAsHomeHook,
|
||||
xmltodict,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "capa";
|
||||
version = "9.4.0";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mandiant";
|
||||
repo = "capa";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-h9ML+TJe9NprBEy4W7XKahmUTM0d4vY0zIFs6MxYzZ8=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
colorama
|
||||
dncil
|
||||
dnfile
|
||||
humanize
|
||||
ida-netnode
|
||||
ida-settings
|
||||
msgspec
|
||||
networkx
|
||||
pefile
|
||||
protobuf
|
||||
pydantic
|
||||
pyelftools
|
||||
python-flirt
|
||||
pyyaml
|
||||
rich
|
||||
ruamel-yaml
|
||||
viv-utils
|
||||
vivisect
|
||||
xmltodict
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
ghidra = [ pyghidra ];
|
||||
scripts = [
|
||||
jschema-to-python
|
||||
psutil
|
||||
requests
|
||||
sarif-om
|
||||
stix2
|
||||
];
|
||||
};
|
||||
|
||||
nativeCheckInputs = [
|
||||
pygithub
|
||||
pytestCheckHook
|
||||
pytest-instafail
|
||||
pytest-sugar
|
||||
types-colorama
|
||||
types-protobuf
|
||||
types-psutil
|
||||
types-pyyaml
|
||||
types-requests
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "capa" ];
|
||||
|
||||
disabledTests = [
|
||||
# AssertionError
|
||||
"test_is_dev_environment"
|
||||
"test_rule_cache_dev_environment"
|
||||
"test_scripts"
|
||||
"test_binexport_scripts"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Tool to identify capabilities in executable files";
|
||||
homepage = "https://github.com/mandiant/capa";
|
||||
changelog = "https://github.com/mandiant/capa/blob/${finalAttrs.src.tag}/CHANGELOG.md";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "capa";
|
||||
};
|
||||
})
|
||||
@@ -1,22 +1,24 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
curl-cffi,
|
||||
fetchFromGitHub,
|
||||
garth,
|
||||
pdm-backend,
|
||||
requests,
|
||||
ua-generator,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "garminconnect";
|
||||
version = "0.2.40";
|
||||
version = "0.3.5";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cyberjunky";
|
||||
repo = "python-garminconnect";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-EAmKrOmnJFn+vTfmAprd5onqW/uyOe/shSB1u0HVrIE=";
|
||||
hash = "sha256-ncQuZq9W94SGoxoLHhyuEW8qMOPqvCCTIi+56k7vOG8=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [ "garth" ];
|
||||
@@ -24,8 +26,10 @@ buildPythonPackage (finalAttrs: {
|
||||
build-system = [ pdm-backend ];
|
||||
|
||||
dependencies = [
|
||||
curl-cffi
|
||||
garth
|
||||
requests
|
||||
ua-generator
|
||||
];
|
||||
|
||||
# Tests require a token
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "gehomesdk";
|
||||
version = "2026.5.1";
|
||||
version = "2026.5.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit (finalAttrs) pname version;
|
||||
hash = "sha256-Q5YvefLDLvZAicBMaD6M7sASIfXllpf1kVlwWEd59zg=";
|
||||
hash = "sha256-zKYe7vIXSFbtTqaCLEAHQvuDRGGXqorqfFqVVpBWuJs=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "google-cloud-shell";
|
||||
version = "1.15.0";
|
||||
version = "1.16.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "google_cloud_shell";
|
||||
inherit (finalAttrs) version;
|
||||
hash = "sha256-FSnxSR937S5mUz7uxACWB3NRD5bFNaxTKiTWCzt/VAg=";
|
||||
hash = "sha256-e0RMNqR4jxA+hwlNM2Lyspsh9WKfQRWndZ1oZJMRZoI=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "holidays";
|
||||
version = "0.97";
|
||||
version = "0.98";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vacanza";
|
||||
repo = "python-holidays";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-d543A/A/W4PqWZSwHPRwv7V65EEpzPfugrwlWhHd/mI=";
|
||||
hash = "sha256-miXThSQLiWrw0IfJC5ozJQJmQnNuf1szpNVKBG86LZA=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
graphviz,
|
||||
idapro,
|
||||
nix-update-script,
|
||||
packaging,
|
||||
pytest-cov-stub,
|
||||
pytestCheckHook,
|
||||
setuptools,
|
||||
typing-extensions,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "ida-domain";
|
||||
version = "0.5.0";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "HexRaysSA";
|
||||
repo = "ida-domain";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-oa3VQgWDEr4tPQ166EugfS7QrW1DlRb/hwypwKP+Xv4=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
idapro
|
||||
packaging
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
graphviz
|
||||
pytest-cov-stub
|
||||
pytestCheckHook
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
# Requires IDE to be installed
|
||||
doCheck = false;
|
||||
|
||||
# pythonImportsCheck = [ "ida_domain" ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Python interface for IDA Pro reverse engineering platform";
|
||||
homepage = "https://github.com/HexRaysSA/ida-domain";
|
||||
changelog = "https://github.com/HexRaysSA/ida-domain/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
click,
|
||||
fetchFromGitHub,
|
||||
httpx,
|
||||
idapro,
|
||||
nix-update-script,
|
||||
packaging,
|
||||
pexpect,
|
||||
pip,
|
||||
platformdirs,
|
||||
pydantic,
|
||||
pytest-asyncio,
|
||||
pytest-httpx,
|
||||
pytest-mock,
|
||||
pytestCheckHook,
|
||||
questionary,
|
||||
rich-click,
|
||||
rich,
|
||||
semantic-version,
|
||||
setuptools,
|
||||
tenacity,
|
||||
tomli,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "ida-hcli";
|
||||
version = "0.18.1";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "HexRaysSA";
|
||||
repo = "ida-hcli";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-p7nmibfasnkfvCDHp+luh3VYq7oZ843TfudN1Ce8mLY=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
click
|
||||
httpx
|
||||
idapro
|
||||
packaging
|
||||
pip
|
||||
platformdirs
|
||||
pydantic
|
||||
questionary
|
||||
rich
|
||||
rich-click
|
||||
semantic-version
|
||||
tenacity
|
||||
tomli
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pexpect
|
||||
pytest-asyncio
|
||||
pytest-httpx
|
||||
pytest-mock
|
||||
pytestCheckHook
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "hcli" ];
|
||||
|
||||
disabledTestPaths = [
|
||||
# Tests require IDA to be installed and configured
|
||||
"tests/integration/"
|
||||
"tests/lib/test_ida_python.py"
|
||||
"tests/lib/test_ida.py"
|
||||
"tests/lib/test_plugin_bundle_install.py"
|
||||
"tests/lib/test_plugin_collisions.py"
|
||||
"tests/lib/test_plugin_install.py"
|
||||
"tests/lib/test_plugin_records.py"
|
||||
"tests/lib/test_plugin_settings.py"
|
||||
];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "CLI for IDA plugin management and configuration";
|
||||
homepage = "https://github.com/HexRaysSA/ida-hcli";
|
||||
changelog = "https://github.com/HexRaysSA/ida-hcli/blob/${finalAttrs.src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "hcli";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
setuptools,
|
||||
six,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "ida-netnode";
|
||||
version = "3.0.0";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "williballenthin";
|
||||
repo = "ida-netnode";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-hXApNeeDYHX41zuYDpSNqSXdM/c8DoVXuB6NMqYf7iU=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ six ];
|
||||
|
||||
# Module has no test and requires IDA to be installed
|
||||
doCheck = false;
|
||||
|
||||
# pythonImportsCheck = [ "netnode"];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Humane API for storing and accessing persistent data in IDA Pro databases";
|
||||
homepage = "https://github.com/williballenthin/ida-netnode";
|
||||
changelog = "https://github.com/williballenthin/ida-netnode/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
uv-build,
|
||||
ida-hcli,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "ida-settings";
|
||||
version = "3.4.1";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "williballenthin";
|
||||
repo = "ida-settings";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-YPkJ/yn7ZmEYZJART6oFLO7zIqzgPl2XCq5RfXasFV0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail "uv_build>=0.8.6,<0.9.0" "uv_build"
|
||||
'';
|
||||
|
||||
build-system = [ uv-build ];
|
||||
|
||||
dependencies = [ ida-hcli ];
|
||||
|
||||
pythonImportsCheck = [ "ida_settings" ];
|
||||
|
||||
# Module has no tests
|
||||
doCheck = false;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Fetch and set configuration values for IDA Plugins";
|
||||
homepage = "https://github.com/williballenthin/ida-settings";
|
||||
changelog = "https://github.com/williballenthin/ida-settings/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
nix-update-script,
|
||||
setuptools,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "idapro";
|
||||
version = "0.0.9";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit (finalAttrs) pname version;
|
||||
hash = "sha256-igQ6ic5QdTPlAuj2WBpPtYut4l6PpgSVRbeexjZ5LjU=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeBuildInputs = [ writableTmpDirAsHomeHook ];
|
||||
|
||||
# Module has no tests
|
||||
doCheck = false;
|
||||
|
||||
# Requires IDE to be installed
|
||||
# pythonImportsCheck = [ "idapro" ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "IDA Library Python module";
|
||||
homepage = "https://pypi.org/project/idapro";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
})
|
||||
@@ -14,19 +14,19 @@
|
||||
gitUpdater,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "microsoft-kiota-http";
|
||||
version = "1.10.1";
|
||||
version = "1.10.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microsoft";
|
||||
repo = "kiota-python";
|
||||
tag = "microsoft-kiota-http-v${version}";
|
||||
hash = "sha256-KBCjVNZDPMh0wxWm8UVLsrfl2AYp3rKMjAT5c8F7+64=";
|
||||
tag = "microsoft-kiota-http-v${finalAttrs.version}";
|
||||
hash = "sha256-rj0NpuXvqS5rB6TrD3FyuMWb7Dl8/SIBcW/Lzj4cY6I=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/packages/http/httpx/";
|
||||
sourceRoot = "${finalAttrs.src.name}/packages/http/httpx/";
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
@@ -54,8 +54,8 @@ buildPythonPackage rec {
|
||||
meta = {
|
||||
description = "HTTP request adapter implementation for Kiota clients for Python";
|
||||
homepage = "https://github.com/microsoft/kiota-python/tree/main/packages/http/httpx";
|
||||
changelog = "https://github.com/microsoft/kiota-python/releases/tag/${src.tag}";
|
||||
changelog = "https://github.com/microsoft/kiota-python/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "microsoft-kiota-serialization-form";
|
||||
version = "1.9.8";
|
||||
version = "1.10.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microsoft";
|
||||
repo = "kiota-python";
|
||||
tag = "microsoft-kiota-serialization-form-v${version}";
|
||||
hash = "sha256-05/I06p3zBc/Kb7H8dMEbUxFr0dOXSSBuIyEGZ4twhA=";
|
||||
hash = "sha256-rj0NpuXvqS5rB6TrD3FyuMWb7Dl8/SIBcW/Lzj4cY6I=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/packages/serialization/form/";
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "mitogen";
|
||||
version = "0.3.48";
|
||||
version = "0.3.49";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mitogen-hq";
|
||||
repo = "mitogen";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-RptIeE2XvVOzeYaRGiggesfZGJ+flkcFSDz1l23JxdE=";
|
||||
hash = "sha256-gOb4W9EO5YRNoTJlsTTNybJF9FvDDTNdYFrGjyFbXzY=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -179,8 +179,8 @@ in
|
||||
"sha256-7xusmV+Ub1MkH3mGGYNQFlI1pfg9v69OzN2FUN3+DzY=";
|
||||
|
||||
mypy-boto3-ce =
|
||||
buildMypyBoto3Package "ce" "1.43.0"
|
||||
"sha256-RsvQvkie+k0OMjgs30ZlwiRygo0LhZk0V7vMAXU6gQ8=";
|
||||
buildMypyBoto3Package "ce" "1.43.22"
|
||||
"sha256-1CgG2p0ddlGj4jttaV9ejP+DA7cRtAE56rJwMNPCgYw=";
|
||||
|
||||
mypy-boto3-chime =
|
||||
buildMypyBoto3Package "chime" "1.43.0"
|
||||
@@ -327,16 +327,16 @@ in
|
||||
"sha256-sXIPfVu+Ss+UHCZ7W1qof+rbEb266dqrSU3V6/j5PzY=";
|
||||
|
||||
mypy-boto3-compute-optimizer =
|
||||
buildMypyBoto3Package "compute-optimizer" "1.43.0"
|
||||
"sha256-6fPO+EuWQP7JbsVfMzpCr502G0ewx/pvubEqEnhhln0=";
|
||||
buildMypyBoto3Package "compute-optimizer" "1.43.22"
|
||||
"sha256-TYrnhgzhH6+o+cTpBBpiEO6MPkz4xbLOqiOJf/IAvto=";
|
||||
|
||||
mypy-boto3-config =
|
||||
buildMypyBoto3Package "config" "1.43.0"
|
||||
"sha256-kPG0jzeHlRm8dNKCrxJY2Jw/N06PL+C/34gB9qhz2BY=";
|
||||
|
||||
mypy-boto3-connect =
|
||||
buildMypyBoto3Package "connect" "1.43.10"
|
||||
"sha256-SuUSGDyoWoz8Ddr1+LTuVQ350HFrW4pXe7zR4Ye5aiw=";
|
||||
buildMypyBoto3Package "connect" "1.43.22"
|
||||
"sha256-XGey9ie/uGSXFaB5NfoQXeQ+LQUnqKPUOtMpq2y7aZk=";
|
||||
|
||||
mypy-boto3-connect-contact-lens =
|
||||
buildMypyBoto3Package "connect-contact-lens" "1.43.0"
|
||||
@@ -622,8 +622,8 @@ in
|
||||
"sha256-9P8m5QYikdsimepaivrYcb/tP1iThyPZWFMkyo24+bo=";
|
||||
|
||||
mypy-boto3-inspector2 =
|
||||
buildMypyBoto3Package "inspector2" "1.43.0"
|
||||
"sha256-ddF5Z3B3NMKoM1RUWFQzUQTnBL75IwlVevM/R2bO9OI=";
|
||||
buildMypyBoto3Package "inspector2" "1.43.22"
|
||||
"sha256-iA/ajBvGRV+L3/PZoauWDrkd/FVvtOv49O88xtlQBk4=";
|
||||
|
||||
mypy-boto3-internetmonitor =
|
||||
buildMypyBoto3Package "internetmonitor" "1.43.0"
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
itsdangerous,
|
||||
jinja2,
|
||||
libsass,
|
||||
lxml-html-clean,
|
||||
lxml,
|
||||
markdown2,
|
||||
matplotlib,
|
||||
orjson,
|
||||
@@ -26,12 +28,14 @@
|
||||
pytest-asyncio,
|
||||
pytest-selenium,
|
||||
pytestCheckHook,
|
||||
python-dotenv,
|
||||
python-multipart,
|
||||
python-socketio,
|
||||
pywebview,
|
||||
redis,
|
||||
requests,
|
||||
setuptools,
|
||||
tinycss2,
|
||||
typing-extensions,
|
||||
urllib3,
|
||||
uvicorn,
|
||||
@@ -43,18 +47,21 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "nicegui";
|
||||
version = "3.8.0";
|
||||
version = "3.12.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zauberzeug";
|
||||
repo = "nicegui";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-YSt4BoJZZwncPewk46VNHq0RR5sUpW0j055ryPYAdn4=";
|
||||
hash = "sha256-pm8jUDdpRvPDVwHXHGwuqPogpE/HMS19uJ5beWch7TE=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"idna"
|
||||
"lxml"
|
||||
"orjson"
|
||||
"python-multipart"
|
||||
"requests"
|
||||
];
|
||||
|
||||
@@ -74,12 +81,16 @@ buildPythonPackage (finalAttrs: {
|
||||
ifaddr
|
||||
itsdangerous
|
||||
jinja2
|
||||
lxml
|
||||
lxml-html-clean
|
||||
markdown2
|
||||
orjson
|
||||
pygments
|
||||
python-dotenv
|
||||
python-multipart
|
||||
python-socketio
|
||||
requests
|
||||
tinycss2
|
||||
typing-extensions
|
||||
urllib3
|
||||
uvicorn
|
||||
|
||||
@@ -43,7 +43,7 @@ buildPythonPackage (finalAttrs: {
|
||||
owner = "scipp";
|
||||
repo = "plopp";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-UYEbJtWSTwF4z8Ga+IsCk+yQVT5xMvEENqT+hrbxPEc=";
|
||||
hash = "sha256-8rwF40aeJMyIcmMsSyea42B6poXHxHQlPIlw0ROeyzY=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
libiconv,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "python-flirt";
|
||||
version = "0.9.10";
|
||||
pyproject = true;
|
||||
@@ -15,7 +15,7 @@ buildPythonPackage rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "williballenthin";
|
||||
repo = "lancelot";
|
||||
rev = "v${version}";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-fZZTEBkpCE5L4efcNGzAuxCWgOSqc2r77F5U6kpMU6M=";
|
||||
};
|
||||
|
||||
@@ -47,4 +47,4 @@ buildPythonPackage rec {
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools-scm,
|
||||
requests,
|
||||
pydantic,
|
||||
aiohttp,
|
||||
inflection,
|
||||
fluent-logger,
|
||||
toml,
|
||||
click,
|
||||
semver,
|
||||
tiktoken,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "steamship";
|
||||
version = "2.17.34";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-U9SA2Dvepl9BjrvhH+8bVBNjby8IWu5UE+/oor7YWzI=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [ "requests" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
requests
|
||||
pydantic
|
||||
aiohttp
|
||||
inflection
|
||||
fluent-logger
|
||||
toml
|
||||
click
|
||||
semver
|
||||
tiktoken
|
||||
];
|
||||
|
||||
# almost all tests require "steamship api key"
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "steamship" ];
|
||||
|
||||
meta = {
|
||||
description = "Fastest way to add language AI to your product";
|
||||
homepage = "https://www.steamship.com/";
|
||||
changelog = "https://github.com/steamship-core/python-client/releases/tag/${version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ natsukium ];
|
||||
# https://github.com/steamship-core/python-client/issues/503
|
||||
broken = lib.versionAtLeast pydantic.version "2";
|
||||
};
|
||||
}
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "tencentcloud-sdk-python";
|
||||
version = "3.1.107";
|
||||
version = "3.1.109";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TencentCloud";
|
||||
repo = "tencentcloud-sdk-python";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-6hXJx3VSXQlUs6h4gYP+Yqy6uoMKplKX1CfiwFIbZ70=";
|
||||
hash = "sha256-UG4ZPNrqjSy9IQEPZa7hqN63TnrsJy/GDr9A3CP5ah4=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
certifi,
|
||||
charset-normalizer,
|
||||
fetchFromGitHub,
|
||||
idna,
|
||||
nix-update-script,
|
||||
pytestCheckHook,
|
||||
setuptools,
|
||||
urllib3,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "ua-generator";
|
||||
version = "2.1.1";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "iamdual";
|
||||
repo = "ua-generator";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-3NWVJciaaCx+YtZ+oFCMFLXfEE9A2CoErFfSi5Hf0hM=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
certifi
|
||||
charset-normalizer
|
||||
idna
|
||||
urllib3
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
pythonImportsCheck = [ "ua_generator" ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Random user-agent generator";
|
||||
homepage = "https://github.com/iamdual/ua-generator";
|
||||
changelog = "https://github.com/iamdual/ua-generator/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
})
|
||||
@@ -18,14 +18,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "xiaomi-ble";
|
||||
version = "1.12.2";
|
||||
version = "1.12.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Bluetooth-Devices";
|
||||
repo = "xiaomi-ble";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-iixyZm/PjWBsaxNCZZa5TJA4eNVVhr42OV4MHHzWt7g=";
|
||||
hash = "sha256-FjLrwEfhHVypF8XH7yvFjmG5oZL7VI/DOWPLbNZ50ng=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
@@ -22,12 +22,12 @@ let
|
||||
hash = "sha256-hAL2daH0zJ1PJ7v6s1wtSi4dfrATHfA9rQlhnoZnTQw=";
|
||||
};
|
||||
"10" = {
|
||||
version = "10.33.4";
|
||||
hash = "sha256-jnDdxmSbGLw9iVzzqQjAKR6kw4A5rYcixH4Bja8enPw=";
|
||||
version = "10.34.0";
|
||||
hash = "sha256-WOFDJYhx31FYm2UcBiBdq+xIdmpdu6PCWZm2m1C+WY4=";
|
||||
};
|
||||
"11" = {
|
||||
version = "11.4.0";
|
||||
hash = "sha256-50EGpaDrJWn0WDUEQg6tX8HCY+QXoyFsqxy+DM3LTq4=";
|
||||
version = "11.5.1";
|
||||
hash = "sha256-3npcG+2DAYBRg6h5l/4XIM1crvtXvoOFNaS/xKFZaVk=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user