mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-08-25 17:55:21 +00:00
Merge master into staging-next
This commit is contained in:
@@ -957,7 +957,6 @@ The following situations are fully or partially exempt:
|
||||
|
||||
If you believe that someone is using automation without appropriate disclosure and review, you can politely ask them if that’s the case and point them to this policy as appropriate.
|
||||
Please assume good faith and remain civil; it’s not always possible to determine, and it is more likely that someone overlooked this policy than deliberately violated it.
|
||||
If you think someone is continuing to break the policy after this, please escalate to the [Nixpkgs core team](https://nixos.org/community/teams/nixpkgs-core/) rather than fighting over it.
|
||||
|
||||
If a contribution is clearly in violation of the policy (e.g. the contributor admits it was not followed, or there are AI tool attributions that do not meet our required format), it can be closed or hidden, preferably after informing the contributor of the policy and giving them a chance to address the violations.
|
||||
Deliberate violations of this policy are considered to break the [Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) clause against “Wasting other people’s time with low quality contributions, including but not limited to LLM and bot spam”.
|
||||
|
||||
@@ -108,6 +108,8 @@
|
||||
|
||||
- [Umbriel](https://docs.noctalia.dev/umbriel/), a Wayland compositor built on wlroots and SceneFX. Available as [programs.umbriel](#opt-programs.umbriel.enable).
|
||||
|
||||
- [Rundeck](https://www.rundeck.com), Self-Service Operations [services.rundeck](#opt-services.rundeck.enable).
|
||||
|
||||
## Backward Incompatibilities {#sec-release-26.11-incompatibilities}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
@@ -207,6 +209,10 @@
|
||||
|
||||
- `chatgpt` has been retargeted to OpenAI's new ChatGPT desktop app, while the previous app has been renamed to `chatgpt-classic`.
|
||||
|
||||
- NetBox was updated to `>= 4.6.8`. Have a look at the breaking changes
|
||||
of the [4.6 release](https://github.com/netbox-community/netbox/releases/tag/v4.6.0),
|
||||
make the required changes to your database, if needed, then upgrade by setting `services.netbox.package = pkgs.netbox_4_6;` in your configuration.
|
||||
|
||||
## Other Notable Changes {#sec-release-26.11-notable-changes}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
@@ -1824,6 +1824,7 @@
|
||||
./services/web-apps/romm.nix
|
||||
./services/web-apps/rss-bridge.nix
|
||||
./services/web-apps/rsshub.nix
|
||||
./services/web-apps/rundeck.nix
|
||||
./services/web-apps/rustical.nix
|
||||
./services/web-apps/rutorrent.nix
|
||||
./services/web-apps/screego.nix
|
||||
|
||||
@@ -434,11 +434,12 @@ in
|
||||
package = lib.mkOption {
|
||||
type = types.package;
|
||||
default =
|
||||
if lib.versionAtLeast config.system.stateVersion "26.05" then pkgs.netbox_4_5 else pkgs.netbox_4_4;
|
||||
if lib.versionAtLeast config.system.stateVersion "26.11" then pkgs.netbox_4_6 else pkgs.netbox_4_5;
|
||||
defaultText = lib.literalExpression ''
|
||||
if lib.versionAtLeast config.system.stateVersion "26.05"
|
||||
then pkgs.netbox_4_5
|
||||
else pkgs.netbox_4_4;
|
||||
if lib.versionAtLeast config.system.stateVersion "26.11" then
|
||||
pkgs.netbox_4_6
|
||||
else
|
||||
pkgs.netbox_4_5;
|
||||
'';
|
||||
description = ''
|
||||
NetBox package to use.
|
||||
|
||||
651
nixos/modules/services/web-apps/rundeck.nix
Normal file
651
nixos/modules/services/web-apps/rundeck.nix
Normal file
@@ -0,0 +1,651 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.rundeck;
|
||||
settingsFormat = pkgs.formats.javaProperties { };
|
||||
effectivePort = if cfg.ssl.enable then cfg.ssl.port else cfg.serverPort;
|
||||
scheme = if cfg.ssl.enable then "https" else "http";
|
||||
|
||||
configFile = settingsFormat.generate "rundeck-config.properties" cfg.settings;
|
||||
frameworkFile = settingsFormat.generate "framework.properties" cfg.frameworkSettings;
|
||||
|
||||
realmFile = pkgs.writeText "realm.properties" ''
|
||||
${cfg.adminUser}:@ADMIN_PASSWORD@,user,admin
|
||||
'';
|
||||
|
||||
replaceSecret =
|
||||
placeholder: file: target:
|
||||
"replace-secret ${
|
||||
lib.escapeShellArgs [
|
||||
placeholder
|
||||
file
|
||||
target
|
||||
]
|
||||
}";
|
||||
|
||||
rundeckStartScript = pkgs.writeShellScript "start-rundeck" ''
|
||||
# Generate SSH
|
||||
if [ ! -f ${cfg.dataDir}/.ssh/id_${cfg.sshKeyType} ]; then
|
||||
umask 0077
|
||||
${lib.getExe' pkgs.openssh "ssh-keygen"} -t ${cfg.sshKeyType} ${
|
||||
lib.optionalString (cfg.sshKeyType == "rsa") "-b 4096"
|
||||
} -N "" -f ${cfg.dataDir}/.ssh/id_${cfg.sshKeyType}
|
||||
chmod 644 ${cfg.dataDir}/.ssh/id_${cfg.sshKeyType}.pub
|
||||
chown ${cfg.user}:${cfg.group} ${cfg.dataDir}/.ssh/id_${cfg.sshKeyType} ${cfg.dataDir}/.ssh/id_${cfg.sshKeyType}.pub
|
||||
fi
|
||||
|
||||
${lib.getExe cfg.package} \
|
||||
--skipinstall \
|
||||
-b ${cfg.dataDir} \
|
||||
-c ${cfg.configDir} \
|
||||
-p ${cfg.dataDir}/projects
|
||||
'';
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.rundeck = {
|
||||
enable = lib.mkEnableOption "Rundeck service";
|
||||
|
||||
package = lib.mkPackageOption pkgs "rundeck" { };
|
||||
|
||||
adminUser = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "admin";
|
||||
description = "Username for the Rundeck admin user";
|
||||
example = "rundeck-admin";
|
||||
};
|
||||
|
||||
adminPasswordFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "Path to a file containing the admin password";
|
||||
example = "/run/secrets/rundeck-admin-password";
|
||||
};
|
||||
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "rundeck";
|
||||
description = "User account under which Rundeck runs";
|
||||
};
|
||||
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "rundeck";
|
||||
description = "Group account under which Rundeck runs";
|
||||
};
|
||||
|
||||
serverHostname = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "localhost";
|
||||
description = "Hostname for the Rundeck server";
|
||||
};
|
||||
|
||||
serverURL = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "${scheme}://${cfg.serverHostname}:${toString effectivePort}";
|
||||
defaultText = lib.literalMD ''
|
||||
`<scheme>://<serverHostname>:<port>`, where scheme is `https` when
|
||||
`ssl.enable` else `http`, and port is `ssl.port` when `ssl.enable`
|
||||
else `serverPort`.
|
||||
'';
|
||||
description = "Complete Grails server URL";
|
||||
example = "https://myhost:4443/rundeck";
|
||||
};
|
||||
|
||||
serverPort = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 4440;
|
||||
description = "Port on which Rundeck will listen";
|
||||
};
|
||||
|
||||
serverUUID = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
description = "UUID for the Rundeck server (automatically generated if not specified)";
|
||||
};
|
||||
|
||||
dataDir = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "/var/lib/rundeck";
|
||||
description = "Directory for Rundeck runtime data (RDECK_BASE)";
|
||||
};
|
||||
|
||||
configDir = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "/etc/rundeck";
|
||||
description = "Directory for Rundeck configuration files";
|
||||
};
|
||||
|
||||
javaOpts = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [
|
||||
"-Xmx1024m"
|
||||
"-Xms256m"
|
||||
"-XX:MaxMetaspaceSize=256m"
|
||||
"-server"
|
||||
];
|
||||
description = "Additional Java options for Rundeck";
|
||||
};
|
||||
|
||||
aclPolicies = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
default = { };
|
||||
description = "ACL policies for Rundeck, where the attribute name is the filename and the value is the policy content";
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
"admin.aclpolicy" = '''
|
||||
description: Admin access for administrators
|
||||
context:
|
||||
project: '.*'
|
||||
for:
|
||||
resource:
|
||||
- allow: '*'
|
||||
job:
|
||||
- allow: '*'
|
||||
node:
|
||||
- allow: '*'
|
||||
by:
|
||||
group: admin
|
||||
---
|
||||
description: Admin access in application scope
|
||||
context:
|
||||
application: 'rundeck'
|
||||
for:
|
||||
resource:
|
||||
- allow: '*'
|
||||
project:
|
||||
- allow: '*'
|
||||
by:
|
||||
group: admin
|
||||
''';
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
sshKeyType = lib.mkOption {
|
||||
type = lib.types.enum [
|
||||
"rsa"
|
||||
"ed25519"
|
||||
];
|
||||
default = "rsa";
|
||||
description = "Type of SSH key to generate (rsa for compatibility, ed25519 for better security)";
|
||||
};
|
||||
|
||||
openFirewall = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether to open the Rundeck port in the firewall";
|
||||
};
|
||||
|
||||
startTimeout = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 180;
|
||||
description = "Timeout in seconds before systemd considers the service startup as failed";
|
||||
example = 120;
|
||||
};
|
||||
|
||||
database = {
|
||||
type = lib.mkOption {
|
||||
type = lib.types.enum [
|
||||
"h2"
|
||||
"postgresql"
|
||||
"mysql"
|
||||
];
|
||||
default = "h2";
|
||||
description = "Database type to use (h2, postgresql, or mysql)";
|
||||
};
|
||||
|
||||
host = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "localhost";
|
||||
description = "Database host";
|
||||
};
|
||||
|
||||
port = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.port;
|
||||
default =
|
||||
if cfg.database.type == "postgresql" then
|
||||
5432
|
||||
else if cfg.database.type == "mysql" then
|
||||
3306
|
||||
else
|
||||
null;
|
||||
defaultText = lib.literalExpression ''
|
||||
if config.services.rundeck.database.type == "postgresql" then
|
||||
5432
|
||||
else if config.services.rundeck.database.type == "mysql" then
|
||||
3306
|
||||
else
|
||||
null
|
||||
'';
|
||||
description = "Database port (defaults: PostgreSQL: 5432, MySQL: 3306)";
|
||||
};
|
||||
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "rundeck";
|
||||
description = "Database name";
|
||||
};
|
||||
|
||||
username = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "rundeck";
|
||||
description = "Database username";
|
||||
};
|
||||
|
||||
passwordFile = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
default = null;
|
||||
description = "Path to a file containing the database password";
|
||||
example = "/run/secrets/rundeck-db-password";
|
||||
};
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
};
|
||||
default = { };
|
||||
description = ''
|
||||
Configuration written to `rundeck-config.properties`.
|
||||
See <https://docs.rundeck.com/docs/administration/configuration/config-file-reference.html>
|
||||
for available options.
|
||||
|
||||
Secrets must not be set here, as this ends up world-readable in the Nix
|
||||
store. Use the dedicated `*File` options instead.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
"rundeck.feature.repository.enabled" = "true";
|
||||
"rundeck.projectsStorageType" = "db";
|
||||
"rundeck.gui.title" = "My Rundeck Instance";
|
||||
"rdeck.security.useHMacRequestTokens" = "true";
|
||||
"rundeck.web.jetty.servlet.MaxFormKeys" = "2000";
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
frameworkSettings = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
};
|
||||
default = { };
|
||||
description = ''
|
||||
Configuration written to `framework.properties`.
|
||||
See <https://docs.rundeck.com/docs/administration/configuration/config-file-reference.html>
|
||||
for available options.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
"framework.ssh.timeout" = "120";
|
||||
"framework.ssh.user" = "deploy";
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
ssl = {
|
||||
enable = lib.mkEnableOption "SSL support";
|
||||
|
||||
port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 4443;
|
||||
description = "Port on which Rundeck will listen for HTTPS when ssl.enable is true";
|
||||
};
|
||||
|
||||
keyStore = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
example = "/etc/rundeck/ssl/keystore";
|
||||
description = "Path to the keystore containing the SSL certificate";
|
||||
};
|
||||
|
||||
keyStorePasswordFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "Path to a file containing the SSL keystore password";
|
||||
example = "/run/secrets/rundeck-keystore-password";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
assertions = [
|
||||
{
|
||||
assertion =
|
||||
cfg.database.type == "h2"
|
||||
|| (cfg.database.host != "" && cfg.database.username != "" && cfg.database.passwordFile != null);
|
||||
message = "When using external database (PostgreSQL/MySQL), host, username, and passwordFile must be provided";
|
||||
}
|
||||
{
|
||||
assertion = cfg.database.type == "h2" || cfg.database.port != null;
|
||||
message = "Database port must be set when using an external database";
|
||||
}
|
||||
];
|
||||
|
||||
services.rundeck.settings = {
|
||||
"server.address" = lib.mkDefault "0.0.0.0";
|
||||
"server.port" = lib.mkDefault (toString cfg.serverPort);
|
||||
"grails.serverURL" = lib.mkDefault cfg.serverURL;
|
||||
"logging.config" = lib.mkDefault "${cfg.configDir}/log4j2.properties";
|
||||
"dataSource.url" = lib.mkDefault (
|
||||
if cfg.database.type == "h2" then
|
||||
"jdbc:h2:file:${cfg.dataDir}/data/rundeckdb;DB_CLOSE_ON_EXIT=FALSE;NON_KEYWORDS=MONTH,HOUR,MINUTE,YEAR,SECONDS"
|
||||
else if cfg.database.type == "postgresql" then
|
||||
"jdbc:postgresql://${cfg.database.host}:${toString cfg.database.port}/${cfg.database.name}"
|
||||
else
|
||||
"jdbc:mysql://${cfg.database.host}:${toString cfg.database.port}/${cfg.database.name}?autoReconnect=true&useSSL=false"
|
||||
);
|
||||
"dataSource.driverClassName" = lib.mkDefault (
|
||||
if cfg.database.type == "h2" then
|
||||
"org.h2.Driver"
|
||||
else if cfg.database.type == "postgresql" then
|
||||
"org.postgresql.Driver"
|
||||
else
|
||||
"org.mariadb.jdbc.Driver"
|
||||
);
|
||||
"dataSource.username" = lib.mkDefault cfg.database.username;
|
||||
}
|
||||
// lib.optionalAttrs (cfg.database.passwordFile != null) {
|
||||
"dataSource.password" = lib.mkDefault "@DB_PASSWORD@";
|
||||
}
|
||||
// lib.optionalAttrs (cfg.database.type == "h2") {
|
||||
"dataSource.dialect" = lib.mkDefault "org.hibernate.dialect.H2Dialect";
|
||||
}
|
||||
// lib.optionalAttrs (cfg.database.type == "mysql") {
|
||||
"dataSource.dialect" = lib.mkDefault "org.hibernate.dialect.MariaDB103Dialect";
|
||||
}
|
||||
// lib.optionalAttrs cfg.ssl.enable {
|
||||
"server.https.port" = lib.mkDefault (toString cfg.ssl.port);
|
||||
"server.ssl.keyStore" = lib.mkDefault (toString cfg.ssl.keyStore);
|
||||
"server.ssl.keyStorePassword" = lib.mkDefault "@KEYSTORE_PASSWORD@";
|
||||
};
|
||||
|
||||
services.rundeck.frameworkSettings = {
|
||||
"framework.server.name" = lib.mkDefault cfg.serverHostname;
|
||||
"framework.server.hostname" = lib.mkDefault cfg.serverHostname;
|
||||
"framework.server.port" = lib.mkDefault (toString effectivePort);
|
||||
"framework.server.url" = lib.mkDefault cfg.serverURL;
|
||||
"framework.ssh.keypath" = lib.mkDefault "${cfg.dataDir}/.ssh/id_${cfg.sshKeyType}";
|
||||
"framework.ssh.user" = lib.mkDefault cfg.user;
|
||||
"framework.ssh.timeout" = lib.mkDefault "60";
|
||||
"rdeck.base" = cfg.dataDir;
|
||||
"framework.projects.dir" = "${cfg.dataDir}/projects";
|
||||
"framework.etc.dir" = toString cfg.configDir;
|
||||
"framework.var.dir" = "${cfg.dataDir}/var";
|
||||
"framework.tmp.dir" = "${cfg.dataDir}/var/tmp";
|
||||
"framework.logs.dir" = "${cfg.dataDir}/var/logs";
|
||||
"framework.libext.dir" = "${cfg.dataDir}/libext";
|
||||
"rundeck.server.uuid" = if cfg.serverUUID != "" then cfg.serverUUID else "@SERVER_UUID@";
|
||||
};
|
||||
|
||||
users.users.${cfg.user} = {
|
||||
isSystemUser = true;
|
||||
group = cfg.group;
|
||||
home = cfg.dataDir;
|
||||
createHome = true;
|
||||
};
|
||||
|
||||
users.groups.${cfg.group} = { };
|
||||
|
||||
systemd.tmpfiles.settings."10-rundeck" = {
|
||||
"${cfg.dataDir}" = {
|
||||
d = {
|
||||
mode = "0750";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"${cfg.dataDir}/etc" = {
|
||||
d = {
|
||||
mode = "0750";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"${cfg.dataDir}/data" = {
|
||||
d = {
|
||||
mode = "0750";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"${cfg.dataDir}/projects" = {
|
||||
d = {
|
||||
mode = "0750";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"${cfg.dataDir}/libext" = {
|
||||
d = {
|
||||
mode = "0750";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"${cfg.dataDir}/var" = {
|
||||
d = {
|
||||
mode = "0750";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"${cfg.dataDir}/var/logs" = {
|
||||
d = {
|
||||
mode = "0750";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"${cfg.dataDir}/var/tmp" = {
|
||||
d = {
|
||||
mode = "0750";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"${cfg.dataDir}/.ssh" = {
|
||||
d = {
|
||||
mode = "0700";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"${cfg.configDir}" = {
|
||||
d = {
|
||||
mode = "0750";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"${cfg.configDir}/ssl" = {
|
||||
d = {
|
||||
mode = "0750";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
"/var/log/rundeck" = {
|
||||
L = {
|
||||
argument = "${cfg.dataDir}/var/logs";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."rundeck/jaas-loginmodule.conf" = {
|
||||
mode = "0640";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
text = ''
|
||||
RDpropertyfilelogin {
|
||||
org.eclipse.jetty.jaas.spi.PropertyFileLoginModule required
|
||||
debug="true"
|
||||
file="/etc/rundeck/realm.properties";
|
||||
};
|
||||
'';
|
||||
};
|
||||
|
||||
environment.etc."rundeck/log4j2.properties" = {
|
||||
mode = "0640";
|
||||
user = cfg.user;
|
||||
group = cfg.group;
|
||||
text = ''
|
||||
status = info
|
||||
name = RundeckPro
|
||||
|
||||
appender.console.type = Console
|
||||
appender.console.name = STDOUT
|
||||
appender.console.layout.type = PatternLayout
|
||||
appender.console.layout.pattern = %d{DEFAULT} %-5p %c{1} - %m%n
|
||||
|
||||
appender.file.type = RollingFile
|
||||
appender.file.name = FILE
|
||||
appender.file.fileName = ${cfg.dataDir}/var/logs/rundeck.log
|
||||
appender.file.filePattern = ${cfg.dataDir}/var/logs/rundeck.%d{yyyy-MM-dd}.log
|
||||
appender.file.layout.type = PatternLayout
|
||||
appender.file.layout.pattern = %d{DEFAULT} [%t] %-5p %c{1} - %m%n
|
||||
appender.file.policies.type = Policies
|
||||
appender.file.policies.time.type = TimeBasedTriggeringPolicy
|
||||
appender.file.policies.time.interval = 1
|
||||
appender.file.policies.time.modulate = true
|
||||
|
||||
rootLogger.level = info
|
||||
rootLogger.appenderRef.stdout.ref = STDOUT
|
||||
rootLogger.appenderRef.file.ref = FILE
|
||||
|
||||
logger.hibernate.name = org.hibernate
|
||||
logger.hibernate.level = ERROR
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.rundeck = {
|
||||
description = "Rundeck Service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [
|
||||
"network.target"
|
||||
]
|
||||
++ lib.optional (cfg.database.type == "mysql") "mysql.service"
|
||||
++ lib.optional (cfg.database.type == "postgresql") "postgresql.service";
|
||||
wants =
|
||||
lib.optional (cfg.database.type == "mysql") "mysql.service"
|
||||
++ lib.optional (cfg.database.type == "postgresql") "postgresql.service";
|
||||
|
||||
environment = {
|
||||
RDECK_BASE = cfg.dataDir;
|
||||
RUNDECK_CONFIG_DIR = cfg.configDir;
|
||||
JAVA_OPTS = lib.concatStringsSep " " cfg.javaOpts;
|
||||
};
|
||||
|
||||
path = [ pkgs.replace-secret ];
|
||||
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart = rundeckStartScript;
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
RuntimeDirectory = "rundeck";
|
||||
RuntimeDirectoryMode = "0750";
|
||||
UMask = "0027";
|
||||
|
||||
LimitNOFILE = 65536;
|
||||
ReadWritePaths = [
|
||||
cfg.dataDir
|
||||
cfg.configDir
|
||||
];
|
||||
RestartSec = "10s";
|
||||
Restart = "always";
|
||||
TimeoutStartSec = "${toString cfg.startTimeout}s";
|
||||
|
||||
CapabilityBoundingSet = [ "CAP_SYS_ADMIN" ];
|
||||
AmbientCapabilities = [ "CAP_SYS_ADMIN" ];
|
||||
|
||||
LimitCORE = 0;
|
||||
LockPersonality = true;
|
||||
MemorySwapMax = 0;
|
||||
MemoryZSwapMax = 0;
|
||||
PrivateDevices = true;
|
||||
PrivateTmp = true;
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "invisible";
|
||||
RemoveIPC = true;
|
||||
RestrictAddressFamilies = [
|
||||
"AF_UNIX"
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
"AF_NETLINK"
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
};
|
||||
|
||||
preStart = ''
|
||||
${lib.optionalString (cfg.serverUUID == "") ''
|
||||
# Generate UUID
|
||||
UUID_FILE="${cfg.dataDir}/.uuid"
|
||||
if [ ! -f "$UUID_FILE" ]; then
|
||||
umask 0137
|
||||
${lib.getExe' pkgs.util-linux "uuidgen"} > "$UUID_FILE"
|
||||
fi
|
||||
''}
|
||||
|
||||
|
||||
install -m 0640 ${configFile} ${cfg.configDir}/rundeck-config.properties
|
||||
install -m 0640 ${frameworkFile} ${cfg.configDir}/framework.properties
|
||||
install -m 0600 ${realmFile} ${cfg.configDir}/realm.properties
|
||||
|
||||
${replaceSecret "@ADMIN_PASSWORD@" cfg.adminPasswordFile "${cfg.configDir}/realm.properties"}
|
||||
|
||||
${lib.optionalString (cfg.database.passwordFile != null) (
|
||||
replaceSecret "@DB_PASSWORD@" cfg.database.passwordFile "${cfg.configDir}/rundeck-config.properties"
|
||||
)}
|
||||
|
||||
${lib.optionalString cfg.ssl.enable (
|
||||
replaceSecret "@KEYSTORE_PASSWORD@" cfg.ssl.keyStorePasswordFile
|
||||
"${cfg.configDir}/rundeck-config.properties"
|
||||
)}
|
||||
|
||||
${lib.optionalString (cfg.serverUUID == "") (
|
||||
replaceSecret "@SERVER_UUID@" "${cfg.dataDir}/.uuid" "${cfg.configDir}/framework.properties"
|
||||
)}
|
||||
|
||||
if [ -f ${cfg.dataDir}/etc/framework.properties ]; then
|
||||
install -m 0640 ${cfg.configDir}/framework.properties ${cfg.dataDir}/etc/framework.properties
|
||||
fi
|
||||
|
||||
${lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (
|
||||
name: content:
|
||||
"install -m 0640 ${pkgs.writeText "rundeck-${name}" content} ${cfg.dataDir}/etc/${name}"
|
||||
) cfg.aclPolicies
|
||||
)}
|
||||
'';
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [
|
||||
(if cfg.ssl.enable then cfg.ssl.port else cfg.serverPort)
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1156,6 +1156,7 @@ in
|
||||
netbox-upgrade = runTest ./web-apps/netbox-upgrade.nix;
|
||||
netbox_4_4 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_4; };
|
||||
netbox_4_5 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_5; };
|
||||
netbox_4_6 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_6; };
|
||||
netdata = runTest ./netdata.nix;
|
||||
netfoil = runTest ./netfoil.nix;
|
||||
netplan = runTest ./netplan.nix;
|
||||
@@ -1553,6 +1554,7 @@ in
|
||||
rsyslogd = handleTest ./rsyslogd.nix { };
|
||||
rtkit = runTest ./rtkit.nix;
|
||||
rtorrent = runTest ./rtorrent.nix;
|
||||
rundeck = runTest ./rundeck.nix;
|
||||
rush = runTest ./rush.nix;
|
||||
rustfs = runTest ./rustfs.nix;
|
||||
rustical = runTest ./web-apps/rustical.nix;
|
||||
|
||||
111
nixos/tests/rundeck.nix
Normal file
111
nixos/tests/rundeck.nix
Normal file
@@ -0,0 +1,111 @@
|
||||
{
|
||||
name = "rundeck";
|
||||
|
||||
nodes = {
|
||||
rundeck =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.etc."rundeck-admin-password" = {
|
||||
text = "testpassword";
|
||||
mode = "0400";
|
||||
user = "rundeck";
|
||||
group = "rundeck";
|
||||
};
|
||||
|
||||
services.rundeck = {
|
||||
enable = true;
|
||||
serverHostname = "rundeck";
|
||||
adminUser = "testadmin";
|
||||
adminPasswordFile = "/etc/rundeck-admin-password";
|
||||
serverPort = 4441;
|
||||
database.type = "h2";
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
curl
|
||||
jq
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
def login_and_verify_api(machine, host, port, user, password, timeout=300):
|
||||
"""Authenticate via Rundeck form login and verify API access."""
|
||||
machine.wait_until_succeeds(
|
||||
f"curl -s -c /tmp/cookies -L"
|
||||
f" -d 'j_username={user}&j_password={password}'"
|
||||
f" http://{host}:{port}/j_security_check -o /dev/null"
|
||||
f" && curl -s -b /tmp/cookies -H 'Accept: application/json'"
|
||||
f" http://{host}:{port}/api/26/system/info"
|
||||
f" | jq -e '.system.rundeck.version'",
|
||||
timeout=timeout,
|
||||
)
|
||||
|
||||
def properties(machine, path):
|
||||
return machine.succeed(f"cat {path}").replace("\\", "").replace(" = ", "=")
|
||||
|
||||
with subtest("Rundeck starts and serves homepage"):
|
||||
rundeck.wait_for_unit("rundeck.service")
|
||||
rundeck.wait_for_open_port(4441)
|
||||
rundeck.wait_until_succeeds(
|
||||
"curl -sL http://rundeck:4441 | grep -qi Rundeck"
|
||||
)
|
||||
|
||||
with subtest("Regression - port is included in generated URLs"):
|
||||
config = properties(rundeck, "/etc/rundeck/rundeck-config.properties")
|
||||
framework = properties(rundeck, "/etc/rundeck/framework.properties")
|
||||
|
||||
assert "grails.serverURL=http://rundeck:4441" in config, config
|
||||
assert "server.port=4441" in config, config
|
||||
assert "framework.server.url=http://rundeck:4441" in framework, framework
|
||||
|
||||
with subtest("Structural settings end up in the generated config"):
|
||||
config = properties(rundeck, "/etc/rundeck/rundeck-config.properties")
|
||||
|
||||
assert "dataSource.driverClassName=org.h2.Driver" in config, config
|
||||
assert "dataSource.dialect=org.hibernate.dialect.H2Dialect" in config, config
|
||||
|
||||
with subtest("Server UUID is generated and substituted"):
|
||||
framework = properties(rundeck, "/etc/rundeck/framework.properties")
|
||||
|
||||
assert "@SERVER_UUID@" not in framework, framework
|
||||
rundeck.succeed(
|
||||
"grep -qE '^rundeck\\.server\\.uuid = [0-9a-f-]{36}$'"
|
||||
" /etc/rundeck/framework.properties"
|
||||
)
|
||||
|
||||
with subtest("Secrets are substituted and not world-readable"):
|
||||
rundeck.succeed(
|
||||
"grep -qxF 'testadmin:testpassword,user,admin'"
|
||||
" /etc/rundeck/realm.properties"
|
||||
)
|
||||
rundeck.fail("grep -q '@ADMIN_PASSWORD@' /etc/rundeck/realm.properties")
|
||||
rundeck.succeed(
|
||||
"[ \"$(stat -c %a /etc/rundeck/realm.properties)\" = 600 ]"
|
||||
)
|
||||
rundeck.succeed(
|
||||
"[ \"$(stat -c %U /etc/rundeck/realm.properties)\" = rundeck ]"
|
||||
)
|
||||
|
||||
with subtest("API authentication via form login"):
|
||||
login_and_verify_api(rundeck, "rundeck", 4441, "testadmin", "testpassword")
|
||||
|
||||
rundeck.succeed(
|
||||
"curl -s -b /tmp/cookies -X POST"
|
||||
" -H 'Accept: application/json'"
|
||||
" -H 'Content-Type: application/json'"
|
||||
" -d '{\"name\":\"test-project\",\"config\":{}}'"
|
||||
" http://rundeck:4441/api/26/projects"
|
||||
" | jq -e '.name == \"test-project\"'"
|
||||
)
|
||||
|
||||
rundeck.succeed(
|
||||
"curl -s -b /tmp/cookies -H 'Accept: application/json'"
|
||||
" http://rundeck:4441/api/26/projects"
|
||||
" | jq -e 'any(.[]; .name == \"test-project\")'"
|
||||
)
|
||||
'';
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, pkgs, ... }:
|
||||
let
|
||||
oldNetbox = "netbox_4_4";
|
||||
newNetbox = "netbox_4_5";
|
||||
oldNetbox = "netbox_4_5";
|
||||
newNetbox = "netbox_4_6";
|
||||
|
||||
apiVersion =
|
||||
version:
|
||||
|
||||
@@ -4591,8 +4591,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "svelte-vscode";
|
||||
publisher = "svelte";
|
||||
version = "110.3.0";
|
||||
hash = "sha256-vVLnjFOpOmfmkwP0Yz7zONrBgpNDFfFZ0TAAicxdZ64=";
|
||||
version = "110.3.1";
|
||||
hash = "sha256-C3lJ7MO6GTJIotBa71vQN/L6A8iWZ9viYNniT6I2DMQ=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://github.com/sveltejs/language-tools/releases";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mednafen-pce-fast";
|
||||
version = "0-unstable-2026-07-31";
|
||||
version = "0-unstable-2026-08-21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "beetle-pce-fast-libretro";
|
||||
rev = "b211204c7026dff6e86e79b00185512e2421fff8";
|
||||
hash = "sha256-NfVgWG76T6cbb44F8Qva7rlwlsuhF8H6WtKjLPNfs7k=";
|
||||
rev = "bebe2b13a840fbfd45cb501f5cd0efe01bdb1735";
|
||||
hash = "sha256-z30s5uYhqBht7ZviljAu5WZlOCTS9sYqWBD2/hbWUbs=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mednafen-supafaust";
|
||||
version = "0-unstable-2026-07-22";
|
||||
version = "0-unstable-2026-08-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "supafaust";
|
||||
rev = "d6187e5337e6c2646d003db3ab1936727ca75301";
|
||||
hash = "sha256-r9sZGTpJo+jiEDZnzSgcwzBerI4BHL2p/WvJQpdW31g=";
|
||||
rev = "642d1d1b6684aa7e306a02a89885f3f5456a5157";
|
||||
hash = "sha256-malpQAapdRY/V4y2Csm36+Bo1WCRcAWnx4C4okC5S4k=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -1400,11 +1400,11 @@
|
||||
"vendorHash": "sha256-kM5itT82W2uy/y5uJkZsMH308LjRMSNKBJC09e5k5+8="
|
||||
},
|
||||
"turbot_turbot": {
|
||||
"hash": "sha256-sJODPeFzU3vaiHbKlGe1dR5Pi7aS56JcmZUe8Yg1BcQ=",
|
||||
"hash": "sha256-Az+eTY+eksfH89DGqTd8RVwD8KDztz6Bctm0Mt7GBN4=",
|
||||
"homepage": "https://registry.terraform.io/providers/turbot/turbot",
|
||||
"owner": "turbot",
|
||||
"repo": "terraform-provider-turbot",
|
||||
"rev": "v1.13.3",
|
||||
"rev": "v1.14.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
|
||||
47
pkgs/by-name/ad/adhammer/package.nix
Normal file
47
pkgs/by-name/ad/adhammer/package.nix
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
openssl,
|
||||
pkg-config,
|
||||
rustPlatform,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "adhammer";
|
||||
version = "1.3.10";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "icedracon";
|
||||
repo = "adhammer";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-QQjiyvj3e5unEsh17UyKck2rs8oKeLO5eodBG7cn1LQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Ebkvxl/JyiZ84ucv7FmOluHTqYd14I3B6z53QNmVQZw=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
rustPlatform.bindgenHook
|
||||
];
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Active Directory security-assessment toolkit";
|
||||
homepage = "https://github.com/icedracon/adhammer";
|
||||
changelog = "https://github.com/icedracon/adhammer/blob/${finalAttrs.src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "adhammer";
|
||||
};
|
||||
})
|
||||
@@ -39,13 +39,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "art";
|
||||
version = "1.26.7";
|
||||
version = "1.26.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "artraweditor";
|
||||
repo = "ART";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-HuXDdrfb3r8B5u4Ifvb3EfbF/b1mMbDAunOIBtEaKtk=";
|
||||
hash = "sha256-kgDmGxdmKK/19vxruTQ0845iaRSWthlkYoeAFVaju2U=";
|
||||
};
|
||||
|
||||
# Fix the build with CMake 4.
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "baidupcs-go";
|
||||
version = "4.0.1";
|
||||
version = "4.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qjfoidnh";
|
||||
repo = "BaiduPCS-Go";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-AvwdAOjuQxdmhg+IJxQ9e9iMXqveLjoF/W7ntZZmES4=";
|
||||
hash = "sha256-o0Oh6zLJT25+smEgWy7E8fTigJ2FLpBXoaZSYCRFvic=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-oOZeBCHpAasi9K77xA+8HxZErGWKwb4OaWzWhHagtQE=";
|
||||
vendorHash = "sha256-3kvB5QxtWuElhDIFFr3Awf5myf6l2Hx0M2k53ltQYeQ=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cfitsio";
|
||||
version = "4.6.4";
|
||||
version = "4.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "HEASARC";
|
||||
repo = "cfitsio";
|
||||
tag = "cfitsio-${finalAttrs.version}";
|
||||
hash = "sha256-8AFPTr8j8f+x1h78IXOV8GHkDPWvI8w8aRxyke3Dras=";
|
||||
hash = "sha256-k05ylMYf+hsYur3BgNAweMeDc89rsBBtie+P7bd+7qg=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "cloudflared";
|
||||
version = "2026.7.3";
|
||||
version = "2026.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloudflare";
|
||||
repo = "cloudflared";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-hIDx9Nd7CKlM0vCKqkVHxBMj4QzvnnsYYMjhzOqcECU=";
|
||||
hash = "sha256-6pepcjGOLbG+lJ/sGCU8tJVW4nVq7/xGkZ7lLz3KHRQ=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
41
pkgs/by-name/co/corrode-scanner/package.nix
Normal file
41
pkgs/by-name/co/corrode-scanner/package.nix
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "corrode-scanner";
|
||||
version = "0.5.1";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ul0gic";
|
||||
repo = "corrode";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-cxmX0UOEI78P9K4glTh7B2b+/Uc5pHY961RamarvZm0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-f+gwucHpQu5IJqll/DmGYkNwu/5a2esl9URpwj7c3Pc=";
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Security scanner for finding exposed credentials, secrets, and vulnerabilities";
|
||||
homepage = "https://github.com/ul0gic/corrode";
|
||||
changelog = "https://github.com/ul0gic/corrode/releases/tag/${finalAttrs.src.tag}";
|
||||
license = with lib.licenses; [
|
||||
asl20
|
||||
mit
|
||||
];
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "corrode-scanner";
|
||||
};
|
||||
})
|
||||
@@ -6,11 +6,11 @@
|
||||
}:
|
||||
appimageTools.wrapType2 rec {
|
||||
pname = "cubelify";
|
||||
version = "1.25.13";
|
||||
version = "1.25.14";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://storage.cubelify.com/overlay/v1/Cubelify%20Overlay-${version}.AppImage";
|
||||
hash = "sha512-1gNMoaEdh5qAySgRl9rjrFPLFpdTt6YxMaYdry4AJpQhNYxv45M1pq7D5HqJ4xgZHQZxfERPo+Wvfzk1rwaWog==";
|
||||
hash = "sha512-R2J1u+XAeOwNe6lzsntXzIU0wk7UEXa4QBncpMnc3qgp/uYzaV+rBbk5+NyL+GBjLEVPkUDoMjoL2K2iCZpdYw==";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "dapr-cli";
|
||||
version = "1.18.1";
|
||||
version = "1.18.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dapr";
|
||||
repo = "cli";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-lMHuXf4v4xcCcvTqVVXwszMjQ/C3P80J1hXh4Py/jls=";
|
||||
hash = "sha256-A21Fk5WzlyMcHG2wpPQVChwkDdcCrDx3zhzl0KZLBS0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-P7zrfUcb/Hxo7QbIQfq9JSf2d7meZShQ++GG8HkEoLE=";
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "decker";
|
||||
version = "1.69";
|
||||
version = "1.70";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JohnEarnest";
|
||||
repo = "Decker";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-N1g+jaINbUZcTazvgfBc3G0QD4fevJMINRGL9Lp27us=";
|
||||
hash = "sha256-QVv5kLwQZojTCUgnGTX2r622YOoYzIDjrWbj8mkFubE=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -10,7 +10,7 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "dracula-theme";
|
||||
version = "4.0.0-unstable-2026-03-01";
|
||||
version = "4.0.0-unstable-2026-05-21";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
@@ -18,8 +18,8 @@ stdenvNoCC.mkDerivation {
|
||||
src = fetchFromGitHub {
|
||||
owner = "dracula";
|
||||
repo = "gtk";
|
||||
rev = "1188c8eabdfc33c42738862b91caf7fab884c767";
|
||||
hash = "sha256-Z3dMgkk5SvpCWjxdm8hd5FBeEvq0uCJuj3zC5boQEdk=";
|
||||
rev = "81d0287950e8093dd8f8c753347763bce8588465";
|
||||
hash = "sha256-gbotOIGG55oqQZZNDkc9s5fPXvJQr+YHqxt5ZWS5bF8=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "etlegacy-assets";
|
||||
version = "2.83.2";
|
||||
version = "2.85.0";
|
||||
|
||||
srcs =
|
||||
let
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
versionCheckHook,
|
||||
}:
|
||||
let
|
||||
version = "2.84.0";
|
||||
version = "2.85.0";
|
||||
fakeGit = writeScriptBin "git" ''
|
||||
if [ "$1" = "describe" ]; then
|
||||
echo "${version}"
|
||||
@@ -49,7 +49,7 @@ stdenv.mkDerivation {
|
||||
owner = "etlegacy";
|
||||
repo = "etlegacy";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-E1eR0OIfXn2QkSGYNu1JFXDIVrkz+pxM7IU0GVkvAFQ=";
|
||||
hash = "sha256-oOgoM5BLBnmrmbdXFGYkVcQLYq8tVpLgnzJXax7g3vI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -20,7 +20,7 @@ let
|
||||
in
|
||||
symlinkJoin {
|
||||
pname = "etlegacy";
|
||||
version = "2.84.0";
|
||||
version = "2.85.0";
|
||||
|
||||
paths = [
|
||||
etlegacy-assets
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "flux9s";
|
||||
version = "1.0.2";
|
||||
version = "1.0.3";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dgunzy";
|
||||
repo = "flux9s";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-4D5gR4d6+typ7W9OYAsETO9q3tnfP0PweuxZSlXWQyI=";
|
||||
hash = "sha256-9xk46wwQUegUJJWOLG3EkeTgHQ4qfhGISqcDUcsdBos=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Z3vhRCvlfzLxYw/fWri0eil6+H+gPHHA8tMxPqSU7ok=";
|
||||
cargoHash = "sha256-VXWg6NrKNFRPwK6A3ttrwUSzLx3BjMDthtRwLX9Zrsg=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
||||
@@ -20,13 +20,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gitify";
|
||||
version = "7.3.3";
|
||||
version = "7.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gitify-app";
|
||||
repo = "gitify";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Kr4+U6UD/cfbAzIZ8GrPgxGmV8ktENxd9o2/x3C4v+c=";
|
||||
hash = "sha256-ogF9YrnSaT31AnoxtvA0jnK5wHhlAvIj3T+TaKZM80U=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
inherit (finalAttrs) pname version src;
|
||||
inherit pnpm;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-Uxta96e9t0jOfsgR82fMuzc1V5KC0t1n2TJ90qv73wg=";
|
||||
hash = "sha256-aG34cZF1xwPM5L/+OXUgOmJwLGcpNU59aobVSmTIvLw=";
|
||||
};
|
||||
|
||||
env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "goshs";
|
||||
version = "2.1.5";
|
||||
version = "2.1.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "goshs-labs";
|
||||
repo = "goshs";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-mVgBY1QhQ+tDQnfangqylNeCbBJTSJaM0y7vZ95BU3Y=";
|
||||
hash = "sha256-0d4iB6Mtann0OZd/KyWnwq7+fCcWEibAzHSYe30Mce0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-LLYgb0DIFx97+ZXOlQc4yVdjjiw7ebXx76hADfWnlkw=";
|
||||
vendorHash = "sha256-E+GZn7Trnz3KqzTsEfavWxP1dhsGPx4PyYYae8wjCb4=";
|
||||
|
||||
patches = [
|
||||
# No upstream fix yet; remove when updating to a release that uses goldmark 1.7.17 or later.
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
{
|
||||
"@esbuild/aix-ppc64@npm:0.28.1": "98a9325bec976ebe1cbbf2441fdbe895b36733919b9df7d62e7b73a1e199810affeac17d172cc5cf61196c9b1ede8073ca5d088ca52b14800b76f49bacc480b3",
|
||||
"@esbuild/android-arm64@npm:0.28.1": "ec3e3c62bc684a09393ca10a0f64b166938f66e4b1972f6db63bf55463bf039736549d9808e50996eb0fedea70744b466aeb816c44e78f2b5d232aeb9929e3ac",
|
||||
"@esbuild/android-arm@npm:0.28.1": "cda56884826ac2aa5dd3be5df9e89834df3b46515cf14099ddfc5bcfc80122d4f8d74b3831a0ac447d87dda73ae90fba49dc4e352b11240c2b055cdca69a0a02",
|
||||
"@esbuild/android-x64@npm:0.28.1": "7f2ba14ba06fd3f2faff467e6fceb2466cd44d1d6039ae1c01f24336a5a1ad0f9c3721000331ded3f250587e4be5e7194d68dd33c55339dc26e1200e13e16d2d",
|
||||
"@esbuild/darwin-arm64@npm:0.28.1": "9798bd013921f8dc5126eb12eba4ddfce9198d11eba6ae844f66d25919d5d26be2aa46b4da8d442ad0e7673e88b2f3d9e505d71692cd030bda9a7b762921c05d",
|
||||
"@esbuild/darwin-x64@npm:0.28.1": "aaddefac25e025e309c71dc5c7074d8c295f44779e41add06dbf65d48b2a6a72b579266748e7f0ab3b2be1ed07be8d541e954f75dda2a2992f36f4c805d91fe1",
|
||||
"@esbuild/freebsd-arm64@npm:0.28.1": "a325b7833f978b62bf25157ea5a951e29b9b0a1db9665ee52498644c9b250977ab6f21c049137d0a271bb0442b3e6d6148c257bace84476196b46570ce837d62",
|
||||
"@esbuild/freebsd-x64@npm:0.28.1": "f092ddacd0bc715f443b62382dd8ba8f85d272f62caa47f603e85b9c5b14fef67c610523006ca88cae19e2829fe41a2a0ae92b7c158ef1038c714552dea57554",
|
||||
"@esbuild/linux-arm64@npm:0.28.1": "bfda225d3101bb3ed5a74f979d50564a17ccf3799ad65fb968c5b15c9ceb9077c105a9bb5763d42f33f1917ac709e5779cd2112e5420188963568e80ac8439f8",
|
||||
"@esbuild/linux-arm@npm:0.28.1": "b440cf89adf6dd1079bcf7d9aa915f70f467002bbb69bda21f4a3d160c9ae93bc6d8eb73b2831c8607fb1527d8ada288d907440e36969cb60000e4df85b7c549",
|
||||
"@esbuild/linux-ia32@npm:0.28.1": "4329d81cf06331e537c8ebb571a9d4ca968811bee7c7cb4f975b8343c9f7649a8b2b9902b0974be0e2224656b1a0d21f3b191304db8cec52d006b80061faf4c2",
|
||||
"@esbuild/linux-loong64@npm:0.28.1": "76b4d0f2cf716576181065e3fd2d6ffa9b0d0c39987e8d3d1b8d1e8aaa2563779cd4f861c881e3e7a9302f2d03d5543b8f726a99603e6aa754c8154772d0f434",
|
||||
"@esbuild/linux-mips64el@npm:0.28.1": "59825a73d04187818c6fb53b22e2915a4c0e6c8fee9017d75dcafbdc66699f2765377faf801495d69952230935557f58360481a7edd78073816270aa8bd0cbee",
|
||||
"@esbuild/linux-ppc64@npm:0.28.1": "3186d54b33d9b4849d6fe4fa2aeed4966a4117f9a27bf2d59f07f3ea651a9724a2eb9aaaf98813aac6dc726710a337bfc2472dd714262894fabf498a369fbd74",
|
||||
"@esbuild/linux-riscv64@npm:0.28.1": "f01572cf6398b466d44bfa68dbc5f56a37b74e645673198f7ba157d215ccba35ea46e220a2526008d5679cef47a4368dd46480d4ba4c7330a491d215fe3f649f",
|
||||
"@esbuild/linux-s390x@npm:0.28.1": "aad20d457c0441d7bf2f6c8dbe74297d4c3a3c90cf709a971a4a19b2c70497bf91ac4a80fa6168ccf6063eb284ea0f41f2293283e8351348369af551ffe6f3cf",
|
||||
"@esbuild/linux-x64@npm:0.28.1": "d361ac73388af397803dc26242265c8f00fce91d9dd587b04d230c686294585c541f43dee706e23f8d56754e3a3da653b00b3f55855182d60deabc024acf19f7",
|
||||
"@esbuild/netbsd-arm64@npm:0.28.1": "73e2d620958bcb61367849046397dee40dbd9bd6d0d4172bb87ef90ad644ed16e48386debd1ef0323648358fc617c0d8fae58be984774a2e8622712c7ab7f04b",
|
||||
"@esbuild/netbsd-x64@npm:0.28.1": "663a35913d3d3a2f566d31ec00477954cc570f386d56a5ffffa1d7bb58bccfbe241780fc429c2e41463cef5d1d422ca02fe174df970932b46d225ff0bd333b65",
|
||||
"@esbuild/openbsd-arm64@npm:0.28.1": "8add19644eca9a23cefc2a109644df802c626cc3460adef6f030ce72d1fcb127a4ff2b14a21cb51bbd68ec5a652f0bd7105c1a0d76a30f44fbf822c010096cd9",
|
||||
"@esbuild/openbsd-x64@npm:0.28.1": "ad12be1ed38cc61410aa6210f88b8aa8dc3e6ee717dce32dba6e7cbaa57414af6e5314e7cdf9baa4affafe2d6a88e230d361a0ddadf76d06070b63bbf0a97cb2",
|
||||
"@esbuild/openharmony-arm64@npm:0.28.1": "5ecd637058887c8458ebc7e95c67adee2397ebd8e5f6c302c17816eeb77963b1feeaff4e3f7823c0d85f0fc10771caa96175e2f0909b00e60ca5d90d22690a15",
|
||||
"@esbuild/sunos-x64@npm:0.28.1": "e3286191315e30471e9cc176281a5d7acf5b877a95ea2868195024548a984e08b0214ea90e504e5bb5c595f9d3da9a5b961b52f79988702036b59233378580c4",
|
||||
"@esbuild/win32-arm64@npm:0.28.1": "55e83fa2b63511bc3d2138ff84091b452936072b5b8e24405a5669f04355263b3f452861c13fc0c01ad80ebeb0df069da0318631386c9d66cda8ccbeca0fa82e",
|
||||
"@esbuild/win32-ia32@npm:0.28.1": "dcd2579f97b8b5217e807d3a069461635ff6c1f13bc6e678fb0e385db4bf569afbbfe9f54ee512f0e120c6cc2689889725b8e2efdb17e3bb1603cffb58a4b6b3",
|
||||
"@esbuild/win32-x64@npm:0.28.1": "1d7e7661663e2b0d814550e461fd06b814b3ac1ffda1e84468da3b7c29a1ad8a6067a8b7dcf6e66e38918b43a440c6302052f1bdb40c48a6d49a82c616e12f2d"
|
||||
"@esbuild/aix-ppc64@npm:0.28.2": "18ffc469b906f4639372614d41def04925cfccf6726818f1afd2d3eb5f062f1cd54500f5ad5d0f47dcbc913a4898745f5faf7deed71e199724610481c8b7d661",
|
||||
"@esbuild/android-arm64@npm:0.28.2": "8b33309c4a4eff21f119098df601dde2d2b124f80e60680140c2f07157ae7d43f03a954563b823d1381edeca73fce8cfba01a22b9451cb15b24ff20a19731a6d",
|
||||
"@esbuild/android-arm@npm:0.28.2": "e36e4134a04a1a753a24174f732b87d8288edc09e566f32d5ed1b03a0d703991c0286f006dd95de1ee29542b57558a47cbfdd9f46f26b5f3620a3ff099c67e00",
|
||||
"@esbuild/android-x64@npm:0.28.2": "ec47bb2fb9e3a3c5b31c82511eb1a1141aa2747bef617977b7f50076bece97a61ae7de8a67b082fc88adb25cb34aa70567497306a19e6f93dc3d593961771683",
|
||||
"@esbuild/darwin-arm64@npm:0.28.2": "1dc2f3613b0394d465db5999ab69ca7d2f5a7454e2d811735e5b34b7da7f1580d74aea6befd4501bef46eb28d68ff09741a500a352e2bd263d03c4962b04da7c",
|
||||
"@esbuild/darwin-x64@npm:0.28.2": "7a83f9fe251dfd96a03d9a88b6b1278350b9f93c23c3cac6085ef70821932c941784794557c8e53343ced33a328e74a1a67f5e108f97f508fe266dfabbea6d5c",
|
||||
"@esbuild/freebsd-arm64@npm:0.28.2": "685a5bb96c8ae53ab47fb829148ae44ca88d7f2414df3c85f0ec6d5f2146a389e96f4e7601fec1395303b7d0e14d8cdc08aaceeb4bf87c6528cb52a001e1ebcb",
|
||||
"@esbuild/freebsd-x64@npm:0.28.2": "4c6515cda584dc87c40bb52403e8bdb64ff4e70988e552bcbbf0ea63db46271639b320c0edbceda6a31acf0160f58f3644aa11a8a61db3a04ca00b77c773fba5",
|
||||
"@esbuild/linux-arm64@npm:0.28.2": "5a27e1ede494c2fdb049f9173d647fe7f987379e20f59014b069dfeed536bf72d0d596552a2c99e8781d9ae99557023f5b7613fba44b50ef1e06d4ea93f47751",
|
||||
"@esbuild/linux-arm@npm:0.28.2": "b129de26545ee3e31934101b24b5d5c574d7da62acd580dfce81676978b5c779d815af7f24f60c1dacadff94d592a5ecee59e74b0c985a43db0bd0d590b5c48c",
|
||||
"@esbuild/linux-ia32@npm:0.28.2": "c8c7ac9bd8e7162b8bac9f49dc695245356eeaca5b8327a8fd30f7ff323f59abad3286cf5fb5e7df00f58cdb2fca90f2f56c92fe03f2d27e43d7e24e602903a7",
|
||||
"@esbuild/linux-loong64@npm:0.28.2": "2ea7ab75e2ba2e47e914eae905e6355a908629aeb15d090e53d4a2f7203eca06eeec60d82d0803e0e5c4c844d5b40b4190cefc3e3098ff2265db2e2f3158b24f",
|
||||
"@esbuild/linux-mips64el@npm:0.28.2": "6977e4ea84b6e8736ce7f3dffd4154c04bc12b581f86655656a9969a08645eeb38836e90f2873baab085449548df0e3a276943d860f31fa65d018133f816b5f5",
|
||||
"@esbuild/linux-ppc64@npm:0.28.2": "4f7215f686c425d0eeab1e8d76156a6640f3a6ea3bdc1c07777012618d1dd44c51f2260dfd83f37c36ba4c6df2053dc11f013806b7ac862d23799180103da8be",
|
||||
"@esbuild/linux-riscv64@npm:0.28.2": "4035119fd362aa46652298da5ad659c33322e24ba6183d0b46bd411ef74689286539c4395f41c8ff994e555e88fd2f77e0ea4e518348d8f6dcd42697bb323c17",
|
||||
"@esbuild/linux-s390x@npm:0.28.2": "cbc618cbd9aacd5648239c5f0625d156cb08e9097e6cb527365aee23504eb4883539268d34b6a40a2c3736146b8ae0b513616bc6f9a18e2312935a5eb373d901",
|
||||
"@esbuild/linux-x64@npm:0.28.2": "87a9da362e944ac296cb9e7082aa8c34357e5274b986d0c2eaa2056b7dde43d93a72d249f93a696059630c81bf3a1a285981419fe25619656bf05466f91c61a4",
|
||||
"@esbuild/netbsd-arm64@npm:0.28.2": "ddda9f430a486bb80e2eabe92642446a759573125fe2444a68e73a4c4da2e7f595d5948009ad4aca06c604ad65840001ee11e5192c626b5494cc14e69485dbe6",
|
||||
"@esbuild/netbsd-x64@npm:0.28.2": "57789330e50f7c37dc0732958e8ce95d99961c4e667bf4513cd0957f0561ca015081926e6e9d8d0730961a4bdaf81516f5aaeee48fc2b74ed053ea2641598714",
|
||||
"@esbuild/openbsd-arm64@npm:0.28.2": "5616d7b13e2a81a65e723553d23404b40c7e323c816bf6ad2176f4f0977dc6f4a329b90b42be6286e80efaa565b4d6f45d081d3f3bbd96e5024c110c321ac7d3",
|
||||
"@esbuild/openbsd-x64@npm:0.28.2": "bc889ffd7784145b09624eea6ab781af08b439d627653668f6cca49101c5108a1b604f2c3fbfcc5278a5e22eba21b30685e9f0f98180265e7b511d27fb7a9b67",
|
||||
"@esbuild/openharmony-arm64@npm:0.28.2": "0b879a2605598deb49cd0161b4e8f7bf3f7860fbda1c429d2f1dd4847e0afa441f40b74ef09131165477c053051682f2cb6b654077b7e8b374f8fc1a309bd5f1",
|
||||
"@esbuild/sunos-x64@npm:0.28.2": "efc7fde222fe2eec0ced86cc10796df6a11268229073b3e6395482dd016b04aac701734ab59f927929e5e26c5316f6acecc152e1ac4dbb0228a0fe70fc8a5dd9",
|
||||
"@esbuild/win32-arm64@npm:0.28.2": "a7d1d272c9ecaf0d7aec021ed2c4f9f31b93e276f482fa917c7fbab1e1c1420e57dcd72db841bc1e5131f7f7d98a0e3d96ee3d05b244b973b1b0c59bfec24af6",
|
||||
"@esbuild/win32-ia32@npm:0.28.2": "462cfb1e452a5ec70b74713758557f504ed62ad2b4318eae690e9c59c02f57dc25dcafee7784b67f9c38c03f52d7db827176a2caa3a7ea94cd5f2023f7540b94",
|
||||
"@esbuild/win32-x64@npm:0.28.2": "c97fb5efdc1f3b861338115db13576bc7135b76528a8e554604ada34d5016eebad951cce7db96620b17c39d55ac29d64211aba25a043c36202379dbc8e41f704"
|
||||
}
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hedgedoc";
|
||||
version = "1.11.1";
|
||||
version = "1.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hedgedoc";
|
||||
repo = "hedgedoc";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Xvz2kU1+DVp+BRa4zHM9e/xHjy41br7gZtBOpoaun0o=";
|
||||
hash = "sha256-QYWDgQuSsMf8xElSK0MpthOMAB6EJXcxfOWcHrR4ODU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
offlineCache = yarn-berry_4.fetchYarnBerryDeps {
|
||||
inherit (finalAttrs) src missingHashes patches;
|
||||
hash = "sha256-SkUWghEBq8WyKuSDyM7OZBVSyXxqKpxIaoFMsaY10A4=";
|
||||
hash = "sha256-2qwTV9GRKnVIhK6dsSfis+JOTfjcdwW0RVdrJZa/uJc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -85,6 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
description = "Realtime collaborative markdown notes on all platforms";
|
||||
license = lib.licenses.agpl3Only;
|
||||
homepage = "https://hedgedoc.org";
|
||||
changelog = "https://github.com/hedgedoc/hedgedoc/releases/tag/${finalAttrs.src.tag}";
|
||||
mainProgram = "hedgedoc";
|
||||
maintainers = with lib.maintainers; [ SuperSandro2000 ];
|
||||
platforms = lib.platforms.linux;
|
||||
|
||||
@@ -31,13 +31,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "homepage-dashboard";
|
||||
version = "1.13.2";
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gethomepage";
|
||||
repo = "homepage";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-d6NNtaThDfVErGx7fFdqLdjx4UZXMN6CZUBpMZFZYhQ=";
|
||||
hash = "sha256-VBrLAfAWFyvuIM54+V0YXUc77WQxRpMQ4kiC/d0BrJ4=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
@@ -48,7 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-jAcAbi++Wbyi07YdPuIhDAeNT4fJVAIxp51boD30x3k=";
|
||||
hash = "sha256-kv468v/5H1alTmFntl05cfgDz9zc2Tg5OMDrEXOUK/o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
49
pkgs/by-name/in/introspectme/package.nix
Normal file
49
pkgs/by-name/in/introspectme/package.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
openssl,
|
||||
pkg-config,
|
||||
rustPlatform,
|
||||
zstd,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "introspectme";
|
||||
version = "0.0.2";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bountyyfi";
|
||||
repo = "IntrospectMe";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-PQSfIbcY3vgJhi2OcG6wqFH6xiWcBylJhr1kWdlr0go=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-UAcIwBrHuU7AbLXoSCwpT7cetioVNboG2rpDMPbnvR8=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
openssl
|
||||
zstd
|
||||
];
|
||||
|
||||
env = {
|
||||
ZSTD_SYS_USE_PKG_CONFIG = true;
|
||||
};
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Tool for introspecting and analyzing GraphQL field suggestion errors";
|
||||
homepage = "https://github.com/bountyyfi/IntrospectMe";
|
||||
changelog = "https://github.com/bountyyfi/IntrospectMe/releases/tag/${finalAttrs.src.tag}";
|
||||
# SOURCE-AVAILABLE LICENSE, Version 0.0.1 - Effective February 15, 2026
|
||||
# https://github.com/bountyyfi/IntrospectMe/blob/main/LICENSE
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "introspectme";
|
||||
};
|
||||
})
|
||||
@@ -7,18 +7,18 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "kanban";
|
||||
version = "0.8.0";
|
||||
version = "0.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fulsomenko";
|
||||
repo = "kanban";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-qvjUeYNJ4ODO5dxAaWuWIIpqmFjE6t3ZeuSvZcp5xaI=";
|
||||
hash = "sha256-HJb52Qskyqzjcjp6SlM81OSL2GtpMEYxuuYWy9yLxYQ=";
|
||||
};
|
||||
|
||||
env.GIT_COMMIT_HASH = finalAttrs.src.rev;
|
||||
|
||||
cargoHash = "sha256-YO1brjDNQxt155VtxIpniAdhEvv22vQlk8CUMz2f9Qs=";
|
||||
cargoHash = "sha256-o+C8TsE/5myoKGhSIWG+OIHliTOM5dQBY1E3a5KFcxs=";
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
# That is handled by the kiro-cli package, which wraps this one in an FHS env.
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kiro-cli-unwrapped";
|
||||
version = "2.18.1";
|
||||
version = "2.19.1";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -25,15 +25,15 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
{
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/kirocli-x86_64-linux.tar.gz";
|
||||
hash = "sha256-AX/jbX3rTdPwOClRqOeVl/dhU3Rf91Ckj0hrQxou3Wc=";
|
||||
hash = "sha256-sSE96keJd5fCA43vnVmc2rfkfaq/nSLopho8JaWbXdA=";
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/kirocli-aarch64-linux.tar.gz";
|
||||
hash = "sha256-jzUKXpNi8aHLzRAA9CH23amGLZbhRnO4sfu8MZPnT6c=";
|
||||
hash = "sha256-AuzdWswVpErj3tlYwjbXegA7bC6wwYtgZwZIeYo2htM=";
|
||||
};
|
||||
aarch64-darwin = fetchurl {
|
||||
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/Kiro%20CLI.dmg";
|
||||
hash = "sha256-B4k+lHfI0pbrxlMZJkh3L9MFcY2kvzqXWDcY4SLEcGE=";
|
||||
hash = "sha256-YA4geK4IcQXnQkWD9f7e2Wx0aaihi5y8gCsogJ4D5DM=";
|
||||
};
|
||||
}
|
||||
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "matrix-synapse-s3-storage-provider";
|
||||
version = "1.6.1";
|
||||
version = "1.7.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matrix-org";
|
||||
repo = "synapse-s3-storage-provider";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-vRDjN9BDp7Rta/F91OVEH8FWyiwxR67PQSqBCs3bDkM=";
|
||||
hash = "sha256-QeSzaxUQdwCiA4Mvc8ZQMFjyRFKcLRb8dQXykI5AFD4=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -139,6 +139,9 @@ py.pkgs.buildPythonApplication rec {
|
||||
description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool";
|
||||
mainProgram = "netbox";
|
||||
license = lib.licenses.asl20;
|
||||
knownVulnerabilities = [
|
||||
"Netbox Version ${version} is EOL; please upgrade by following the current release notes instructions"
|
||||
];
|
||||
maintainers = with lib.maintainers; [
|
||||
minijackson
|
||||
transcaffeine
|
||||
|
||||
13
pkgs/by-name/ne/netbox_4_6/custom-static-root.patch
Normal file
13
pkgs/by-name/ne/netbox_4_6/custom-static-root.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py
|
||||
index f334a73a7..8e8d76f0e 100644
|
||||
--- a/netbox/netbox/settings.py
|
||||
+++ b/netbox/netbox/settings.py
|
||||
@@ -604,7 +604,7 @@ X_FRAME_OPTIONS = 'SAMEORIGIN'
|
||||
|
||||
# Static files (CSS, JavaScript, Images)
|
||||
# STATIC_ROOT is deliberately not a configuration parameter; static files are collected to <NETBOX_ROOT>/static.
|
||||
-STATIC_ROOT = os.path.join(NETBOX_ROOT, 'static')
|
||||
+STATIC_ROOT = getattr(configuration, 'STATIC_ROOT', os.path.join(NETBOX_ROOT, 'static')).rstrip('/')
|
||||
STATIC_URL = f'/{BASE_PATH}static/'
|
||||
STATICFILES_DIRS = (
|
||||
os.path.join(BASE_DIR, 'project-static', 'dist'),
|
||||
149
pkgs/by-name/ne/netbox_4_6/package.nix
Normal file
149
pkgs/by-name/ne/netbox_4_6/package.nix
Normal file
@@ -0,0 +1,149 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
python3,
|
||||
fetchpatch2,
|
||||
plugins ? _ps: [ ],
|
||||
nixosTests,
|
||||
nix-update-script,
|
||||
}:
|
||||
let
|
||||
py = python3.override {
|
||||
self = py;
|
||||
packageOverrides = _final: prev: { django = prev.django_6; };
|
||||
};
|
||||
|
||||
extraBuildInputs = plugins py.pkgs;
|
||||
in
|
||||
py.pkgs.buildPythonApplication (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox";
|
||||
version = "4.6.8";
|
||||
pyproject = false;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netbox-community";
|
||||
repo = "netbox";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-fhEcQBYL5R9Tv9CpAf3Ce1oIzsXCjtH5j+dP9sD6kdg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./custom-static-root.patch
|
||||
# TODO: remove before upgrading to NetBox v4.7
|
||||
(fetchpatch2 {
|
||||
name = "upgrade-django-tables2-v3.0.patch";
|
||||
url = "https://github.com/netbox-community/netbox/commit/d57346d9f0eef8126eafcd5033ea43864faeaf0d.patch";
|
||||
hash = "sha256-6/wdd8wDVT4eqDKMNx8tmoPTDvw8OE7atf9nzg3LZzk=";
|
||||
})
|
||||
];
|
||||
|
||||
dependencies =
|
||||
(
|
||||
with py.pkgs;
|
||||
[
|
||||
colorama
|
||||
django
|
||||
django-cors-headers
|
||||
django-debug-toolbar
|
||||
django-filter
|
||||
django-graphiql-debug-toolbar
|
||||
django-htmx
|
||||
django-mptt
|
||||
django-pglocks
|
||||
django-prometheus
|
||||
django-redis
|
||||
django-rq
|
||||
django-storages
|
||||
django-tables2
|
||||
django-taggit
|
||||
django-timezone-field
|
||||
djangorestframework
|
||||
drf-spectacular
|
||||
drf-spectacular-sidecar
|
||||
feedparser
|
||||
jinja2
|
||||
markdown
|
||||
netaddr
|
||||
nh3
|
||||
pillow
|
||||
psycopg
|
||||
pyyaml
|
||||
requests
|
||||
social-auth-core
|
||||
social-auth-app-django
|
||||
sorl-thumbnail
|
||||
strawberry-graphql
|
||||
strawberry-graphql-django
|
||||
svgwrite
|
||||
tablib
|
||||
|
||||
# Optional dependencies, kept here for backward compatibility
|
||||
|
||||
# for the S3 data source backend
|
||||
boto3
|
||||
# for Git data source backend
|
||||
dulwich
|
||||
# for error reporting
|
||||
sentry-sdk
|
||||
]
|
||||
++ psycopg.optional-dependencies.c
|
||||
++ psycopg.optional-dependencies.pool
|
||||
++ social-auth-core.optional-dependencies.openidconnect
|
||||
)
|
||||
++ extraBuildInputs;
|
||||
|
||||
nativeBuildInputs = with py.pkgs; [
|
||||
mkdocs-material
|
||||
mkdocs-material-extensions
|
||||
mkdocstrings
|
||||
mkdocstrings-python
|
||||
];
|
||||
|
||||
postBuild = ''
|
||||
PYTHONPATH=$PYTHONPATH:netbox/
|
||||
${py.pythonOnBuildForHost.interpreter} -m mkdocs build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/opt/netbox
|
||||
cp -r . $out/opt/netbox
|
||||
chmod +x $out/opt/netbox/netbox/manage.py
|
||||
makeWrapper $out/opt/netbox/netbox/manage.py $out/bin/netbox \
|
||||
--prefix PYTHONPATH : "$PYTHONPATH"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
python = py;
|
||||
# PYTHONPATH of all dependencies used by the package
|
||||
pythonPath = py.pkgs.makePythonPath finalAttrs.passthru.dependencies;
|
||||
inherit (py.pkgs) gunicorn;
|
||||
tests = {
|
||||
netbox = nixosTests.netbox_4_6;
|
||||
inherit (nixosTests) netbox-upgrade;
|
||||
};
|
||||
updateScript = nix-update-script { };
|
||||
plugins = lib.recurseIntoAttrs (
|
||||
lib.makeExtensible (
|
||||
self:
|
||||
lib.packagesFromDirectoryRecursive {
|
||||
inherit (py.pkgs) callPackage;
|
||||
directory = ./plugins;
|
||||
}
|
||||
)
|
||||
);
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/netbox-community/netbox";
|
||||
changelog = "https://github.com/netbox-community/netbox/blob/${finalAttrs.src.tag}/docs/release-notes/version-${lib.versions.majorMinor finalAttrs.version}.md";
|
||||
description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool";
|
||||
mainProgram = "netbox";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
minijackson
|
||||
transcaffeine
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
python,
|
||||
netbox,
|
||||
django,
|
||||
netaddr,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-attachments";
|
||||
version = "11.2.3";
|
||||
pyproject = true;
|
||||
|
||||
disabled = python.pythonVersion != netbox.python.pythonVersion;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Kani999";
|
||||
repo = "netbox-attachments";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-zuRwUKYywiyIm7qvOUmbxYfct+ZR+GmaQ4oxf3gMVY4=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
netbox
|
||||
django
|
||||
netaddr
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "netbox_attachments" ];
|
||||
|
||||
passthru.pluginName = "netbox_attachments";
|
||||
|
||||
meta = {
|
||||
description = "Plugin to manage attachments for any model";
|
||||
homepage = "https://github.com/Kani999/netbox-attachments";
|
||||
changelog = "https://github.com/Kani999/netbox-attachments/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
43
pkgs/by-name/ne/netbox_4_6/plugins/netbox-bgp/package.nix
Normal file
43
pkgs/by-name/ne/netbox_4_6/plugins/netbox-bgp/package.nix
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-bgp";
|
||||
version = "0.19.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netbox-community";
|
||||
repo = "netbox-bgp";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-6LZLsUPC9L9L19KeXJilJvmZYcl6YwqysGO8nFAUmcI=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_bgp" ];
|
||||
|
||||
passthru.pluginName = "netbox_bgp";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin for BGP related objects documentation";
|
||||
homepage = "https://github.com/netbox-community/netbox-bgp";
|
||||
changelog = "https://github.com/netbox-community/netbox-bgp/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
netbox-napalm-plugin,
|
||||
pydriller,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-config-backup";
|
||||
version = "2.2.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "DanSheps";
|
||||
repo = "netbox-config-backup";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-PT7/RCpB7SAinQ8McQV59b9ouqqUSoEqEj0ultL37cs=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
pythonRemoveDeps = [ "uuid" ]; # python builtin
|
||||
|
||||
dependencies = [
|
||||
netbox-napalm-plugin
|
||||
pydriller
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_config_backup" ];
|
||||
|
||||
passthru.pluginName = "netbox_config_backup";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin for configuration backups using napalm";
|
||||
homepage = "https://github.com/DanSheps/netbox-config-backup";
|
||||
changelog = "https://github.com/DanSheps/netbox-config-backup/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-contextmenus";
|
||||
version = "1.4.14";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PieterL75";
|
||||
repo = "netbox_contextmenus";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-YqyxZaHKXhMLDdBTAAKQsCBBSXikxBgcOvXEfa6f+0Y=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
# pythonImportsCheck fails due to improperly configured django app
|
||||
|
||||
passthru.pluginName = "netbox_contextmenus";
|
||||
|
||||
meta = {
|
||||
description = "Netbox plugin to add context buttons to the links, making navigating less clicky";
|
||||
homepage = "https://github.com/PieterL75/netbox_contextmenus/";
|
||||
changelog = "https://github.com/PieterL75/netbox_contextmenus/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
python,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
python-dateutil,
|
||||
drf-yasg,
|
||||
netbox,
|
||||
netaddr,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-contract";
|
||||
version = "2.4.6";
|
||||
pyproject = true;
|
||||
|
||||
disabled = python.pythonVersion != netbox.python.pythonVersion;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mlebreuil";
|
||||
repo = "netbox-contract";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-e8DYjU2UtlWu044e4b5eJWOA/fXDRKLl5AVtaepG0sg=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
python-dateutil
|
||||
drf-yasg
|
||||
];
|
||||
|
||||
# running tests requires initialized django project
|
||||
nativeCheckInputs = [
|
||||
netbox
|
||||
netaddr
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "netbox_contract" ];
|
||||
|
||||
passthru.pluginName = "netbox_contract";
|
||||
|
||||
meta = {
|
||||
description = "Contract plugin for netbox";
|
||||
homepage = "https://github.com/mlebreuil/netbox-contract";
|
||||
changelog = "https://github.com/mlebreuil/netbox-contract/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-custom-objects";
|
||||
version = "0.6.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netboxlabs";
|
||||
repo = "netbox-custom-objects";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-HnA2CJL0EOJctQpsu/G+9fULBIa8rrrYNiT0aaDw/rI=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
dontCheckPythonMetadata = true;
|
||||
pythonImportsCheck = [ "netbox_custom_objects" ];
|
||||
passthru.pluginName = "netbox_custom_objects";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin to create new object types";
|
||||
homepage = "https://github.com/netboxlabs/netbox-custom-objects";
|
||||
changelog = "https://github.com/netboxlabs/netbox-custom-objects/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.netboxLimitedUse;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-data-flows";
|
||||
version = "1.5.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Alef-Burzmali";
|
||||
repo = "netbox-data-flows";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-LrClGEmei1IHK/mv0MkZQnEzbH4afg46W5miMLM9a0g=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_data_flows" ];
|
||||
|
||||
passthru.pluginName = "netbox_data_flows";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin to document data flows between systems and applications";
|
||||
homepage = "https://github.com/Alef-Burzmali/netbox-data-flows";
|
||||
changelog = "https://github.com/Alef-Burzmali/netbox-data-flows/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
40
pkgs/by-name/ne/netbox_4_6/plugins/netbox-dns/package.nix
Normal file
40
pkgs/by-name/ne/netbox_4_6/plugins/netbox-dns/package.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
dnspython,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-plugin-dns";
|
||||
version = "1.5.10";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "peteeckel";
|
||||
repo = "netbox-plugin-dns";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-wxTW/qiwp+1CXUeCDJnllEW2oCTjlFVUot7JfWPooaw=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
dnspython
|
||||
];
|
||||
|
||||
# pythonImportsCheck fails due to improperly configured django app
|
||||
|
||||
passthru.pluginName = "netbox_dns";
|
||||
|
||||
meta = {
|
||||
description = "Netbox plugin for managing DNS data";
|
||||
homepage = "https://github.com/peteeckel/netbox-plugin-dns";
|
||||
changelog = "https://github.com/peteeckel/netbox-plugin-dns/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
drf-extra-fields,
|
||||
python,
|
||||
netbox,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-documents";
|
||||
version = "0.8.5";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jasonyates";
|
||||
repo = "netbox-documents";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-hupJ5gbRj/70oslEosob4gT2y2le5vOrq30t3NWl0nQ=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ drf-extra-fields ];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_documents" ];
|
||||
|
||||
passthru.pluginName = "netbox_documents";
|
||||
|
||||
meta = {
|
||||
description = "Plugin designed to faciliate the storage of site, circuit, device type and device specific documents within NetBox";
|
||||
homepage = "https://github.com/jasonyates/netbox-documents";
|
||||
changelog = "https://github.com/jasonyates/netbox-documents/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
django,
|
||||
netaddr,
|
||||
python,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-floorplan-plugin";
|
||||
version = "0.9.2";
|
||||
pyproject = true;
|
||||
|
||||
disabled = python.pythonVersion != netbox.python.pythonVersion;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netbox-community";
|
||||
repo = "netbox-floorplan-plugin";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-I7cz0IONU+RESCA8C57Yxg5ieheryZ31ed9N9OxSeLA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
netbox
|
||||
django
|
||||
netaddr
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_floorplan" ];
|
||||
|
||||
passthru.pluginName = "netbox_floorplan";
|
||||
|
||||
meta = {
|
||||
description = "Netbox plugin providing floorplan mapping capability for locations and sites";
|
||||
homepage = "https://github.com/netbox-community/netbox-floorplan-plugin";
|
||||
changelog = "https://github.com/netbox-community/netbox-floorplan-plugin/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.lgpl3;
|
||||
maintainers = with lib.maintainers; [ cobalt ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
django,
|
||||
netaddr,
|
||||
numpy,
|
||||
psycopg,
|
||||
requests,
|
||||
|
||||
# tests
|
||||
netbox,
|
||||
python,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-interface-synchronization";
|
||||
version = "4.5.8";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NetTech2001";
|
||||
repo = "netbox-interface-synchronization";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-DZ1xOfHop/rASWbBzVILVqvll94tQM7tRiSXwOo/QQI=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
django
|
||||
netaddr
|
||||
requests
|
||||
numpy
|
||||
psycopg # not specified in pyproject.toml, but required at import time
|
||||
];
|
||||
|
||||
# netbox is required for the pythonImportsCheck; plugin does not provide unit tests
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_interface_synchronization" ];
|
||||
|
||||
passthru.pluginName = "netbox_interface_synchronization";
|
||||
|
||||
meta = {
|
||||
description = "Netbox plugin to compare and synchronize interfaces between devices and device types";
|
||||
homepage = "https://github.com/NetTech2001/netbox-interface-synchronization";
|
||||
changelog = "https://github.com/NetTech2001/netbox-interface-synchronization/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-inventory";
|
||||
version = "2.6.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ArnesSI";
|
||||
repo = "netbox-inventory";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-NTo9WYkjY4BdE3gSkzNKxjHiWVnLQGVZQ5s8e9u3VY0=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_inventory" ];
|
||||
|
||||
passthru.pluginName = "netbox_inventory";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin to manage hardware inventory";
|
||||
homepage = "https://github.com/ArnesSI/netbox-inventory";
|
||||
changelog = "https://github.com/ArnesSI/netbox-inventory/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
django-polymorphic,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-lifecycle";
|
||||
version = "1.1.9";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "DanSheps";
|
||||
repo = "netbox-lifecycle";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-iCBlwhaf6IFdni7FQyRPtRJVwt04w0Jc4R0CeQlIWCY=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_lifecycle" ];
|
||||
|
||||
dependencies = [ django-polymorphic ];
|
||||
|
||||
passthru.pluginName = "netbox_lifecycle";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin for managing Hardware EOL/EOS, and Support Contracts";
|
||||
homepage = "https://github.com/DanSheps/netbox-lifecycle";
|
||||
changelog = "https://github.com/DanSheps/netbox-lifecycle/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
44
pkgs/by-name/ne/netbox_4_6/plugins/netbox-lists/package.nix
Normal file
44
pkgs/by-name/ne/netbox_4_6/plugins/netbox-lists/package.nix
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
hatchling,
|
||||
netbox,
|
||||
python,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-lists";
|
||||
version = "4.0.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "devon-mar";
|
||||
repo = "netbox-lists";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-RRUuvoeB3xfqlZr1v1zpRdmVZK9av52ZsADOh9s4toQ=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_lists" ];
|
||||
|
||||
passthru.pluginName = "netbox_lists";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin to generate IP and prefix lists. Integrates with Ansible, Terraform, Prometheus, Oxidized and more";
|
||||
homepage = "https://github.com/devon-mar/netbox-lists";
|
||||
changelog = "https://github.com/devon-mar/netbox-lists/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
napalm,
|
||||
django,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-napalm-plugin";
|
||||
version = "0.3.5";
|
||||
pyproject = true;
|
||||
|
||||
disabled = python.pythonVersion != netbox.python.pythonVersion;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netbox-community";
|
||||
repo = "netbox-napalm-plugin";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-dtoiA6gvWL6aGBHmHTwqK8L0qRyA83GcUCGAmg9Xo8w=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ napalm ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
netbox
|
||||
django
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "netbox_napalm_plugin" ];
|
||||
|
||||
passthru.pluginName = "netbox_napalm_plugin";
|
||||
|
||||
meta = {
|
||||
description = "Netbox plugin for Napalm integration";
|
||||
homepage = "https://github.com/netbox-community/netbox-napalm-plugin";
|
||||
changelog = "https://github.com/netbox-community/netbox-napalm-plugin/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,55 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
poetry-core,
|
||||
|
||||
# dependencies
|
||||
django,
|
||||
netaddr,
|
||||
netbox,
|
||||
psycopg,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-plugin-prometheus-sd";
|
||||
version = "2.0.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FlxPeters";
|
||||
repo = "netbox-plugin-prometheus-sd";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/TvpRRtyCNPmAuFk+wmcJldDniHEkV1t4Vvwa9Sl5eg=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
dependencies = [
|
||||
django
|
||||
netaddr
|
||||
psycopg # not specified in pyproject.toml, but required at import time
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "netbox_prometheus_sd" ];
|
||||
|
||||
passthru.pluginName = "netbox_prometheus_sd";
|
||||
|
||||
meta = {
|
||||
description = "Netbox plugin to provide Netbox entires to Prometheus HTTP service discovery";
|
||||
homepage = "https://github.com/FlxPeters/netbox-plugin-prometheus-sd";
|
||||
changelog = "https://github.com/FlxPeters/netbox-plugin-prometheus-sd/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ xanderio ];
|
||||
};
|
||||
})
|
||||
66
pkgs/by-name/ne/netbox_4_6/plugins/netbox-qrcode/package.nix
Normal file
66
pkgs/by-name/ne/netbox_4_6/plugins/netbox-qrcode/package.nix
Normal file
@@ -0,0 +1,66 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
pillow,
|
||||
qrcode,
|
||||
psycopg2,
|
||||
|
||||
# nativeCheckInputs
|
||||
django,
|
||||
netaddr,
|
||||
netbox,
|
||||
python,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-qrcode";
|
||||
version = "0.0.21";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netbox-community";
|
||||
repo = "netbox-qrcode";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-A4qjpbfTULzS0UchUN9eX8jZmwoX/ej/18L/YAB8dKA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
qrcode
|
||||
pillow
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
django
|
||||
netaddr
|
||||
netbox
|
||||
psycopg2 # not specified in pyproject.toml, but required at import time
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_qrcode" ];
|
||||
|
||||
passthru.pluginName = "netbox_qrcode";
|
||||
|
||||
meta = {
|
||||
description = "Netbox plugin for generate QR codes for objects: Rack, Device, Cable";
|
||||
homepage = "https://github.com/netbox-community/netbox-qrcode";
|
||||
changelog = "https://github.com/netbox-community/netbox-qrcode/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-reorder-rack";
|
||||
version = "1.1.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netbox-community";
|
||||
repo = "netbox-reorder-rack";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-lWC+Br66POJe3M8L+Pt5D1pWBr9qSpRLn2TcVMXKje4=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
checkInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_reorder_rack" ];
|
||||
|
||||
passthru.pluginName = "netbox_reorder_rack";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin to allow users to reorder devices within a rack using a drag and drop UI";
|
||||
homepage = "https://github.com/netbox-community/netbox-reorder-rack";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ minijackson ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
django-polymorphic,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-routing";
|
||||
version = "0.4.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "DanSheps";
|
||||
repo = "netbox-routing";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-3biANhaAi3uRtaXnAw4i6nWnHkARkkBVqyBHLXIMOdA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_routing" ];
|
||||
|
||||
dependencies = [ django-polymorphic ];
|
||||
|
||||
passthru.pluginName = "netbox_routing";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin for tracking all kinds of routing information";
|
||||
homepage = "https://github.com/DanSheps/netbox-routing";
|
||||
changelog = "https://github.com/DanSheps/netbox-routing/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ benley ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
pycryptodome,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-secrets";
|
||||
version = "3.1.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Onemind-Services-LLC";
|
||||
repo = "netbox-secrets";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-XB4upeu2C2ok0jmLX47tOjrjV4b/WXCpgtlRz9+MgAs=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ pycryptodome ];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_secrets" ];
|
||||
|
||||
passthru.pluginName = "netbox_secrets";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin to enhance secret management with encrypted storage and flexible, user-friendly features";
|
||||
homepage = "https://github.com/Onemind-Services-LLC/netbox-secrets";
|
||||
changelog = "https://github.com/Onemind-Services-LLC/netbox-secrets/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
python,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-security";
|
||||
version = "1.5.10";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "andy-shady-org";
|
||||
repo = "netbox-security";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-DOutzFIF/ey2o9M3sb15rmbGJyzsTXfiwC5Rqks8vxc=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ netbox ];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_security" ];
|
||||
|
||||
passthru.pluginName = "netbox_security";
|
||||
|
||||
meta = {
|
||||
description = "NetBox plugin covering various security and NAT related models";
|
||||
homepage = "https://github.com/andy-shady-org/netbox-security";
|
||||
changelog = "https://github.com/andy-shady-org/netbox-security/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
netbox,
|
||||
django,
|
||||
netaddr,
|
||||
python,
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "netbox-topology-views";
|
||||
version = "4.5.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = python.pythonVersion != netbox.python.pythonVersion;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netbox-community";
|
||||
repo = "netbox-topology-views";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-uKxIu8IPeEwBdRbtQaLWGwLnxvFyJ5FrScsU/ufyTuM=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
netbox
|
||||
django
|
||||
netaddr
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
|
||||
'';
|
||||
|
||||
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
|
||||
pythonImportsCheck = [ "netbox_topology_views" ];
|
||||
|
||||
passthru.pluginName = "netbox_topology_views";
|
||||
|
||||
meta = {
|
||||
description = "Netbox plugin for generate topology views/maps from your devices";
|
||||
homepage = "https://github.com/netbox-community/netbox-topology-views";
|
||||
changelog = "https://github.com/netbox-community/netbox-topology-views/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ felbinger ];
|
||||
};
|
||||
})
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "nuclei-templates";
|
||||
version = "10.4.7";
|
||||
version = "10.4.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "projectdiscovery";
|
||||
repo = "nuclei-templates";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Jaa5q6I8v3BpLaBzjLhNHCUd4wB3RRNfFoUe9BArh9o=";
|
||||
hash = "sha256-9PkgU7k+Xy9Bj7pfKjgrIpHLoso0yV8vqPbScVIYUJ0=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "oauth2-proxy";
|
||||
version = "7.15.3";
|
||||
version = "7.15.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "oauth2-proxy";
|
||||
owner = "oauth2-proxy";
|
||||
sha256 = "sha256-HpWmIOqyE3L0JYAQh+bd30Gr2dDpTGH8DwFJo5XwflY=";
|
||||
sha256 = "sha256-G1luz0CjcAGMCFBzMQMA18mPh02lwQMV4CwSWDCq1gA=";
|
||||
rev = "v${version}";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-o4JWhqLbfHmlIY1XhaupIhYLfXJNguFueH+SpAe9xaw=";
|
||||
vendorHash = "sha256-N8S+l9Jwik3lrsAQGXNVbw6UkfmRoVovRQCWn7/X2mg=";
|
||||
|
||||
# Taken from https://github.com/oauth2-proxy/oauth2-proxy/blob/master/Makefile
|
||||
ldflags = [ "-X github.com/oauth2-proxy/oauth2-proxy/v7/pkg/version.VERSION=v${version}" ];
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "otpclient";
|
||||
version = "5.1.7";
|
||||
version = "5.1.8";
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "paolostivanin";
|
||||
repo = "otpclient";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-UDEsCdkIRAAtGCuXXJdse6HrIl2wiaapKUvcI0GDGWM=";
|
||||
hash = "sha256-8I74ip2ysPa5ll1R1O9kgZEwR2wMW6oAzcE3g1SMwvA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
60
pkgs/by-name/py/pyscan/package.nix
Normal file
60
pkgs/by-name/py/pyscan/package.nix
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
lib,
|
||||
cargo,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
openssl,
|
||||
pkg-config,
|
||||
python3Packages,
|
||||
rustc,
|
||||
rustPlatform,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "pyscan";
|
||||
version = "0.1.4";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ohaswin";
|
||||
repo = "pyscan";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-n1mwOYntWyW7lPKPLgG7PteTRh3mly5vqbKy2R/9xnw=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-QzFUoHfvjd6ZMkKIsGXIVyks2LxdJblIiQccsOoYcJs=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
cargo
|
||||
pkg-config
|
||||
rustPlatform.cargoSetupHook
|
||||
rustPlatform.maturinBuildHook
|
||||
rustc
|
||||
];
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
# Project has no test
|
||||
doCheck = false;
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Python dependency vulnerability scanner";
|
||||
homepage = "https://github.com/ohaswin/pyscan";
|
||||
changelog = "https://github.com/ohaswin/pyscan/blob/${finalAttrs.src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "pyscan";
|
||||
};
|
||||
})
|
||||
@@ -1,82 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchurl,
|
||||
writeShellApplication,
|
||||
cacert,
|
||||
curl,
|
||||
openssl,
|
||||
undmg,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "raycast-beta";
|
||||
version = "0.71.5.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src =
|
||||
{
|
||||
aarch64-darwin = fetchurl {
|
||||
name = "Raycast_Beta.dmg";
|
||||
url = "https://x-r2.raycast-releases.com/Raycast_Beta_0.71.5.0_7520eff523_arm64.dmg";
|
||||
hash = "sha256-KveiWuyeNuMGwDAeyPMqUxMzFTei23NnEOBVL5HKXMk=";
|
||||
};
|
||||
}
|
||||
.${stdenvNoCC.system} or (throw "raycast-beta: ${stdenvNoCC.system} is unsupported.");
|
||||
|
||||
dontPatch = true;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontFixup = true;
|
||||
|
||||
nativeBuildInputs = [ undmg ];
|
||||
|
||||
sourceRoot = "Raycast Beta.app";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p "$out/Applications/Raycast Beta.app"
|
||||
cp -R . "$out/Applications/Raycast Beta.app"
|
||||
mkdir -p "$out/bin"
|
||||
ln -s "$out/Applications/Raycast Beta.app/Contents/MacOS/Raycast Beta" "$out/bin/raycast-beta"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = lib.getExe (writeShellApplication {
|
||||
name = "raycast-beta-update-script";
|
||||
runtimeInputs = [
|
||||
cacert
|
||||
curl
|
||||
openssl
|
||||
];
|
||||
text = ''
|
||||
url=$(curl --silent "https://www.raycast.com/new" | grep -o 'https://x-r2\.raycast-releases\.com/Raycast_Beta_[^"]*_arm64\.dmg' | head -n1)
|
||||
version=$(echo "$url" | sed -E 's|.*/Raycast_Beta_([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)_[^/]+_arm64\.dmg|\1|')
|
||||
hash="sha256-$(curl -sL "$url" | openssl dgst -sha256 -binary | openssl base64)"
|
||||
|
||||
sed -i -E \
|
||||
-e 's|(version = )"[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+";|\1"'"$version"'";|' \
|
||||
-e 's|url = "https://x-r2\.raycast-releases\.com/Raycast_Beta_[^"]*_arm64\.dmg";|url = "'"$url"'";|' \
|
||||
-e 's|(hash = )"sha256-[A-Za-z0-9+/]+=";|\1"'"$hash"'";|' \
|
||||
./pkgs/by-name/ra/raycast-beta/package.nix
|
||||
'';
|
||||
});
|
||||
|
||||
meta = {
|
||||
description = "Control your tools with a few keystrokes - beta release";
|
||||
homepage = "https://raycast.app/new";
|
||||
changelog = "https://www.raycast.com/changelog/macos-beta";
|
||||
license = lib.licenses.unfree;
|
||||
mainProgram = "raycast-beta";
|
||||
maintainers = with lib.maintainers; [
|
||||
_4evy
|
||||
Br1ght0ne
|
||||
];
|
||||
platforms = [ "aarch64-darwin" ];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
})
|
||||
@@ -5,19 +5,21 @@
|
||||
writeShellApplication,
|
||||
cacert,
|
||||
curl,
|
||||
jq,
|
||||
openssl,
|
||||
undmg,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "raycast";
|
||||
version = "1.104.24";
|
||||
version = "2.0.5.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchurl {
|
||||
name = "Raycast.dmg";
|
||||
url = "https://releases.raycast.com/releases/${finalAttrs.version}/download?build=arm";
|
||||
hash = "sha256-kn9bZYSeASKj23NYiWX76OIRXCTonAbUCATyYhPdGgo=";
|
||||
url = "https://x-r2.raycast-releases.com/Raycast_2.0.5.0_7ecbc62a97_arm64.dmg";
|
||||
hash = "sha256-8/EJVGTfTVqN+4U9vT84TLpo137RWnD2YtFTtYK7tH0=";
|
||||
};
|
||||
|
||||
dontPatch = true;
|
||||
@@ -32,8 +34,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/Applications/Raycast.app
|
||||
cp -R . $out/Applications/Raycast.app
|
||||
mkdir -p "$out/Applications/Raycast.app"
|
||||
cp -R . "$out/Applications/Raycast.app"
|
||||
mkdir -p "$out/bin"
|
||||
ln -s "$out/Applications/Raycast.app/Contents/MacOS/Raycast" "$out/bin/raycast"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
@@ -43,19 +47,20 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
runtimeInputs = [
|
||||
cacert
|
||||
curl
|
||||
jq
|
||||
openssl
|
||||
];
|
||||
text = ''
|
||||
url=$(curl --silent "https://releases.raycast.com/releases/latest?build=universal")
|
||||
version=$(echo "$url" | jq -r '.version')
|
||||
|
||||
arm_url="https://releases.raycast.com/releases/$version/download?build=arm"
|
||||
arm_hash="sha256-$(curl -sL "$arm_url" | openssl dgst -sha256 -binary | openssl base64)"
|
||||
download_url="https://x.raycast-releases.com/download?platform=macos&architecture=arm64"
|
||||
url=$(curl --fail --silent --show-error --head --output /dev/null --write-out '%{redirect_url}' "$download_url")
|
||||
filename="''${url##*/}"
|
||||
version="''${filename#Raycast_}"
|
||||
version="''${version%%_*}"
|
||||
hash="sha256-$(curl --fail --silent --show-error --location "$url" | openssl dgst -sha256 -binary | openssl base64)"
|
||||
|
||||
sed -i -E \
|
||||
-e 's|(version = )"[0-9]+\.[0-9]+\.[0-9]+";|\1"'"$version"'";|' \
|
||||
-e '/src = fetchurl/,/};/ s|(hash = )"sha256-[A-Za-z0-9+/]+=";|\1"'"$arm_hash"'";|' \
|
||||
-e 's|(version = )"[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+";|\1"'"$version"'";|' \
|
||||
-e 's|url = "https://x-r2\.raycast-releases\.com/Raycast_[^"]*_arm64\.dmg";|url = "'"$url"'";|' \
|
||||
-e 's|(hash = )"sha256-[A-Za-z0-9+/]+=";|\1"'"$hash"'";|' \
|
||||
./pkgs/by-name/ra/raycast/package.nix
|
||||
'';
|
||||
});
|
||||
@@ -64,6 +69,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
description = "Control your tools with a few keystrokes";
|
||||
homepage = "https://raycast.app/";
|
||||
license = lib.licenses.unfree;
|
||||
mainProgram = "raycast";
|
||||
maintainers = with lib.maintainers; [
|
||||
lovesegfault
|
||||
stepbrobd
|
||||
@@ -75,4 +81,4 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
})
|
||||
}
|
||||
|
||||
@@ -16,18 +16,18 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "spade";
|
||||
version = "0.19.0";
|
||||
version = "0.20.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "spade-lang";
|
||||
repo = "spade";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-HSRttrf4Dsl9iatqVr9YH4MoKPwe9XJWJYqNRchFLY0=";
|
||||
hash = "sha256-POMt+uTSaP+XADFbAwWLxzm6FZiyoMIrDFfTtBMPIgs=";
|
||||
# only needed for vatch, which contains test data
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
cargoHash = "sha256-koMnkwgQtVMvxlslvC5dZAhr3K/66XWyp5UPW7yZtio=";
|
||||
cargoHash = "sha256-j/h9UzcsojELd/bYX6/w54PwuqMViEAOKE9tsmQOhXY=";
|
||||
|
||||
# TODO: somehow respect https://nixos.org/manual/nixpkgs/stable/#var-passthru-updateScript-commit
|
||||
passthru.updateScript = _experimental-update-script-combinators.sequence [
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "squawk";
|
||||
version = "2.62.0";
|
||||
version = "2.63.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sbdchd";
|
||||
repo = "squawk";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-XazgQu5Ot1Vknn+tN9qWLfNlRefoA6yXerjrF0H/Mso=";
|
||||
hash = "sha256-9ZcidQphREqvIw+AiToSCybFNuWic7zFTmOvNI+zpgQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Z8VNk8ZN0e7UOOTNAz0p8bt5a3F9g4IGi7l7t7+rZ/Q=";
|
||||
cargoHash = "sha256-wHf4TDVFkd0vt60BiF0qh56j/kSkryaLfvyAy3XlQt0=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -39,13 +39,13 @@ stdenv.mkDerivation {
|
||||
pname = binName;
|
||||
# versions are specified in `squeezelite.h`
|
||||
# see https://github.com/ralph-irving/squeezelite/issues/29
|
||||
version = "2.0.0.1586";
|
||||
version = "2.0.0.1595";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ralph-irving";
|
||||
repo = "squeezelite";
|
||||
rev = "de709765072a1ef270f63956370c5b25a1ea1159";
|
||||
hash = "sha256-sAjZ0o6sRh8+oFRDlG2YRDS3qzCL6bzybwZkkWPG2Kw=";
|
||||
rev = "c7c4248ddd70e47dbfeba0bf4a8a7ec08d8a995c";
|
||||
hash = "sha256-XCYlD0NliyM+CQCB7SA2LA+XqBvmhgKIW/hVAWVLFCo=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "stash-clipboard";
|
||||
version = "0.4.0";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NotAShelf";
|
||||
repo = "stash";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-L5UfPKzdU8qQIyXSCMglLhv22J7xInxg3NNKCLkxszM=";
|
||||
hash = "sha256-G31RXNllgbC5SqRMVj5L9/hCpsKuK/s4Byq+TT8a7X4=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-iXL3G1H8tNS1oPAoEvvx7qwWUef95NBU3dwlEe+34zw=";
|
||||
cargoHash = "sha256-biKZ2qIAiNuvEuI8cJV2zuRXusuUlkd8MKq/M9J+FJs=";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "swim";
|
||||
version = "0.19.0";
|
||||
version = "0.20.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "spade-lang";
|
||||
repo = "swim";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-5/yIucyErZpY5iN/6r8JNAfsrYPxh+lBHDBD6cnjbHQ=";
|
||||
hash = "sha256-pd/ej6WCS36gHlzkHM+pSyV2e87jIAk/kR8OU+nmrDk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-+znzedDuB7hMzaRtAvLNUC9gG0Q2R8Fn61D64udAyAM=";
|
||||
cargoHash = "sha256-7yQytwWDmb58aQzVb4EJZ1e7212qfaPXUhvO6fzbg/M=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "terser";
|
||||
version = "5.49.2";
|
||||
version = "5.50.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "terser";
|
||||
repo = "terser";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-leC95D+bBI9CvPlenOr/2+3LkL9HgK3iCu3FNxBUaOk=";
|
||||
hash = "sha256-7odcHOVjrj73suP0Uz8kcchvHqQxu0RVY0KwEQ73Tsw=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-wkvMDyWiPtQXaLDkPUCcVTQJXZ30QqPHdQXzMXrtHkY=";
|
||||
npmDepsHash = "sha256-d0J7DPZaxn4ILMJ7rwf2MAVVCL2GI6/GLxkX78smUsU=";
|
||||
|
||||
meta = {
|
||||
description = "JavaScript parser, mangler and compressor toolkit for ES6+";
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "tetro-tui";
|
||||
version = "3.6.1";
|
||||
version = "3.6.2";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Strophox";
|
||||
repo = "tetro-tui";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-i/d+i6E0ClMAAjC6zB9Lt26LYEcjvR01MCzGne2EXNQ=";
|
||||
hash = "sha256-tlZYvk9PrdkuN8m+tu/sPrG88k9L58T/QDk2fLZmM34=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-LTHokF9T7nRvvzfQWSL9igTHmvV+w40Pm4z/i0y7goA=";
|
||||
cargoHash = "sha256-AF5aerbBhBJ8Ommrq27GjSeGE/smTvVdEoXS1XLktRE=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
|
||||
@@ -2300,9 +2300,13 @@
|
||||
};
|
||||
|
||||
regex = {
|
||||
version = "1.0.0";
|
||||
# Note: if you see an attempt to update tree-sitter-regex to version 1.0.0,
|
||||
# check if https://github.com/tree-sitter/tree-sitter-regex/tags is actually
|
||||
# a recent version. After v1.0.0, tree-sitter-regex confusingly released
|
||||
# v0.20.0, v0.21.0, etc.
|
||||
version = "0.25.0";
|
||||
url = "github:tree-sitter/tree-sitter-regex";
|
||||
hash = "sha256-3D+LOWRUamAdbegVfWD5yFcCjBucthPogOL/zWR78PY=";
|
||||
hash = "sha256-bR0K6SR19QuQwDUic+CJ69VQTSGqry5a5IOpPTVJFlo=";
|
||||
meta = {
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "versatiles";
|
||||
version = "4.7.0";
|
||||
version = "4.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "versatiles-org";
|
||||
repo = "versatiles-rs";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-WgC5KO6Uz0FQt4Fh08FhZh1RMfDA32Bq70pfMGoDvxU=";
|
||||
hash = "sha256-WPn96f9wN1p0uDtWzOQVx5fqBwKM1l93dVwNSReBkwc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-HzTpvnuODTl+fTgYFdbkerquWjjrFw440+pJDGzRnFk=";
|
||||
cargoHash = "sha256-WFUIIjb+bXq/Sz7tTI2Z5Fyqrnjac0F3fVNTxCQeUT0=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -29,14 +29,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "wezterm";
|
||||
version = "0-unstable-2026-08-12";
|
||||
version = "0-unstable-2026-08-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wezterm";
|
||||
repo = "wezterm";
|
||||
rev = "fe3006aefcdc4c22924e7bce966b2c430dade4f1";
|
||||
rev = "f93d90350075d3e42566e0557ca36e82ffdcbec1";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-aPMO7QeefsZMbb+w+DJMAFWfJV+usGROKhqEXkwndPE=";
|
||||
hash = "sha256-er8IRmDZ65Axr+9qKDrqba6Qbj9MVdiBEH52xmp2ZHo=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -59,7 +59,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
# https://github.com/wezterm/wezterm/blob/main/nix/flake.nix#L134
|
||||
auditable = false;
|
||||
|
||||
cargoHash = "sha256-4jm0uMj0/6fcLHSvd7y12h1QjQ/VavkmNc5L/ebQez0=";
|
||||
cargoHash = "sha256-R47aufhkCuHDSKSV8A7n3eGz0S3s0/HP2Sw0keaEX5s=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
||||
@@ -13,16 +13,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "wl-screenrec";
|
||||
version = "0.2.0";
|
||||
version = "0.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "russelltg";
|
||||
repo = "wl-screenrec";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-sLuhVeyzFp6sFKGK7Y7DPAPk7IdFAqAtjm56zhrX3fA=";
|
||||
hash = "sha256-x311y/0wRBXvpmVNRh6/TbLgHYvl1y589PNRjW2NCJc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-atfWEAo6tMLEzFtiLlxp8fyVKa1cF/4SZFMYStDYZwU=";
|
||||
cargoHash = "sha256-3/yVWVNLu03PhgJTwyeatSVY3cvGtWhwEwpvPdBGnKs=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
89
pkgs/by-name/xs/xsser/package.nix
Normal file
89
pkgs/by-name/xs/xsser/package.nix
Normal file
@@ -0,0 +1,89 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
geckodriver,
|
||||
curl,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "xsser";
|
||||
version = "1.9";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "epsylon";
|
||||
repo = "xsser";
|
||||
tag = "xsser-v${finalAttrs.version}";
|
||||
hash = "sha256-wq8BGeBxDW/ux1X5seUTb6bGdKUTBgkRVeqkm3sVLPU=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace core/curlcontrol.py \
|
||||
--replace-fail 'open("core/fuzzing/user-agents.txt")' 'open(os.path.join(os.path.dirname(__file__), "fuzzing", "user-agents.txt"))' \
|
||||
--replace-fail 'open("fuzzing/user-agents.txt")' 'open(os.path.join(os.path.dirname(__file__), "fuzzing", "user-agents.txt"))'
|
||||
|
||||
substituteInPlace core/dork.py \
|
||||
--replace-fail 'import urllib.request, urllib.error, urllib.parse, traceback, re, random, time, ssl, base64, warnings' 'import os, urllib.request, urllib.error, urllib.parse, traceback, re, random, time, ssl, base64, warnings' \
|
||||
--replace-fail 'open("core/fuzzing/user-agents.txt")' 'open(os.path.join(os.path.dirname(__file__), "fuzzing", "user-agents.txt"))' \
|
||||
--replace-fail 'open("fuzzing/user-agents.txt")' 'open(os.path.join(os.path.dirname(__file__), "fuzzing", "user-agents.txt"))'
|
||||
|
||||
substituteInPlace core/main.py \
|
||||
--replace-fail 'open("core/fuzzing/user-agents.txt")' 'open(os.path.join(os.path.dirname(__file__), "fuzzing", "user-agents.txt"))' \
|
||||
--replace-fail 'open("fuzzing/user-agents.txt")' 'open(os.path.join(os.path.dirname(__file__), "fuzzing", "user-agents.txt"))' \
|
||||
--replace-fail "open('core/fuzzing/dorks.txt')" "open(os.path.join(os.path.dirname(__file__), 'fuzzing', 'dorks.txt'))" \
|
||||
--replace-fail "os.path.exists('core/fuzzing/dorks.txt')" "os.path.exists(os.path.join(os.path.dirname(__file__), 'fuzzing', 'dorks.txt'))"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 core/fuzzing/user-agents.txt "$out/${python3Packages.python.sitePackages}/core/fuzzing/user-agents.txt"
|
||||
install -Dm644 core/fuzzing/dorks.txt "$out/${python3Packages.python.sitePackages}/core/fuzzing/dorks.txt"
|
||||
'';
|
||||
|
||||
build-system = with python3Packages; [ setuptools ];
|
||||
|
||||
dependencies =
|
||||
with python3Packages;
|
||||
[
|
||||
beautifulsoup4
|
||||
ddgs
|
||||
fpdf2
|
||||
geoip
|
||||
pygobject3
|
||||
pycurl
|
||||
selenium
|
||||
]
|
||||
++ [ geckodriver ];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [ pytestCheckHook ] ++ [ curl ];
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
preFixup = ''
|
||||
makeWrapperArgs+=(--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
geckodriver
|
||||
curl
|
||||
]
|
||||
})
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Automatic framework to detect, exploit and report XSS vulnerabilities in web-based applications";
|
||||
homepage = "https://github.com/epsylon/xsser";
|
||||
changelog = "https://github.com/epsylon/xsser/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "xsser";
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
};
|
||||
})
|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
buildTopkgPackage rec {
|
||||
pname = "jsont";
|
||||
version = "0.2.0";
|
||||
version = "0.3.0";
|
||||
|
||||
minimalOCamlVersion = "4.14.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://erratique.ch/software/jsont/releases/jsont-${version}.tbz";
|
||||
hash = "sha256-dXHl+bLuIrlrQ5Np37+uVuETFBb3j8XeDVEK9izoQFk=";
|
||||
hash = "sha256-Gojblihb+So/0KpQHbIWuE33Ir2a4w5DdY+F3S9+qBk=";
|
||||
};
|
||||
|
||||
buildInputs = lib.optional withCmdliner cmdliner;
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
From 7dcb837f5f953206eead3d28144c3d0e2af85c2c Mon Sep 17 00:00:00 2001
|
||||
From: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
|
||||
Date: Mon, 20 Jul 2026 22:48:38 -0400
|
||||
Subject: [PATCH] Select PKCS#1 padding for XML signatures
|
||||
|
||||
The rsa-sha* XML Signature algorithms require RSASSA-PKCS1-v1_5.
|
||||
Select that padding explicitly instead of relying on the RSA module's
|
||||
signing default, which is PSS in recent releases.
|
||||
|
||||
Require Crypt::OpenSSL::RSA 0.38, the first release whose signing path
|
||||
honors the explicit padding choice.
|
||||
|
||||
Assisted-by: Codex
|
||||
---
|
||||
cpanfile | 2 +-
|
||||
lib/Mojo/XMLSig.pm | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cpanfile b/cpanfile
|
||||
index 6c56caf..149f4a6 100644
|
||||
--- a/cpanfile
|
||||
+++ b/cpanfile
|
||||
@@ -1,5 +1,5 @@
|
||||
requires 'Mojolicious', '7.78'; # tag_to_html
|
||||
-requires 'Crypt::OpenSSL::RSA';
|
||||
+requires 'Crypt::OpenSSL::RSA', '0.38';
|
||||
requires 'Crypt::OpenSSL::X509';
|
||||
requires 'Data::GUID';
|
||||
requires 'Digest::SHA';
|
||||
diff --git a/lib/Mojo/XMLSig.pm b/lib/Mojo/XMLSig.pm
|
||||
index 3ee9db3..2498bbe 100644
|
||||
--- a/lib/Mojo/XMLSig.pm
|
||||
+++ b/lib/Mojo/XMLSig.pm
|
||||
@@ -91,6 +91,7 @@ my $set_algo = sub {
|
||||
unless $key->$isa('Crypt::OpenSSL::RSA');
|
||||
Carp::croak 'Unsupported RSA algorithm'
|
||||
unless my $method = $key->can("use_${algo}_hash");
|
||||
+ $key->use_pkcs1_padding;
|
||||
$key->$method;
|
||||
return $key;
|
||||
};
|
||||
--
|
||||
2.54.0
|
||||
|
||||
@@ -30,7 +30,11 @@ buildPythonPackage rec {
|
||||
owner = "ansible";
|
||||
repo = "ansible-compat";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-QTn1W+XxiK5ZCkUfYJZrI/mk0gFduTWClIH3ztHcerg=";
|
||||
postFetch = ''
|
||||
# export-subst prevents reproducibility
|
||||
rm $out/.git_archival.txt
|
||||
'';
|
||||
hash = "sha256-12t/iLtha5FACVpXFqrz6vIiVmtHPPqdfHogXuAe2F4=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -26,7 +26,7 @@ buildPythonPackage rec {
|
||||
owner = "TheKevJames";
|
||||
repo = "coveralls-python";
|
||||
tag = version;
|
||||
hash = "sha256-c7YV1SAbxmqfVI/wGtfdr+S4T7G2q7tf0FhuyCJaPDg=";
|
||||
hash = "sha256-sr3pR3t21nMZczwugFNAioSry/RxIWAzGdGG070YXGw=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-leaflet";
|
||||
version = "0.33.0";
|
||||
version = "0.34.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "django_leaflet";
|
||||
inherit version;
|
||||
hash = "sha256-tRxx5xee7ZlhSE39V7h70ezjsf977k37f01XAiBrLso=";
|
||||
hash = "sha256-gzbnKnu/8LNjBUmC8CrB16O8srL6S8oyYBTd3q63xRU=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -27,14 +27,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-silk";
|
||||
version = "5.5.1";
|
||||
version = "5.5.2";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jazzband";
|
||||
repo = "django-silk";
|
||||
tag = version;
|
||||
hash = "sha256-Ee0U8PVdyXppqLAbQF3V01VIxn6q94eDp+6GvqbeD5g=";
|
||||
hash = "sha256-1m6HvwN9n35q9p0LUD8ihbbQ5FRRr8KoDvRLed9RIMQ=";
|
||||
};
|
||||
|
||||
# "test_time_taken" tests aren't suitable for reproducible execution, but Django's
|
||||
|
||||
@@ -17,6 +17,7 @@ buildPythonPackage rec {
|
||||
pname = "fabric";
|
||||
version = "3.2.3";
|
||||
pyproject = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fabric";
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "gradient";
|
||||
version = "3.12.1";
|
||||
version = "3.12.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "digitalocean";
|
||||
repo = "gradient-python";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-4BJMUxNryePXIAG92JOX7pTbDN6FQzmYRu1+2bKEwX0=";
|
||||
hash = "sha256-2blzsP8KJfCbqBmoaWgQRCmiR5Dj3ofbd65fJqQpfAI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "iamdata";
|
||||
version = "0.1.202608231";
|
||||
version = "0.1.202608241";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloud-copilot";
|
||||
repo = "iam-data-python";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-R92NYZ1Wco/vMdI31Hw7pUpJ7GDAv13pd0pQIrVTIJ8=";
|
||||
hash = "sha256-IBVOk3VLGpn4xKbmbDPj70qM3H/KuKT9X52e4HVsNtQ=";
|
||||
};
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
stdenv,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
pkg-config,
|
||||
cython,
|
||||
docutils,
|
||||
@@ -23,33 +22,24 @@
|
||||
filetype,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "kivy";
|
||||
version = "2.3.1";
|
||||
version = "2.3.1-unstable-2026-07-11";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kivy";
|
||||
repo = "kivy";
|
||||
tag = version;
|
||||
hash = "sha256-q8BoF/pUTW2GMKBhNsqWDBto5+nASanWifS9AcNRc8Q=";
|
||||
rev = "d8e642fec15894ce338b0c9773c3f58b41b75f09";
|
||||
hash = "sha256-i+4qsCIWOddfkw4fseHyTZRj29cdPX84uaPMORE6Gp4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix compat with newer Cython
|
||||
(fetchpatch {
|
||||
name = "0001-kivy-Remove-old-Python-2-long.patch";
|
||||
url = "https://github.com/kivy/kivy/commit/5a1b27d7d3bdee6cedb55440bfae9c4e66fb3c68.patch";
|
||||
hash = "sha256-GDNYL8dC1Rh4KJ8oPiIjegOJGzRQ1CsgWQeAvx9+Rc8=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail "setuptools~=69.2.0" "setuptools" \
|
||||
--replace-fail "wheel~=0.44.0" "wheel" \
|
||||
--replace-fail "cython>=0.29.1,<=3.0.11" "cython" \
|
||||
--replace-fail "packaging~=24.0" packaging
|
||||
--replace-fail "setuptools~=82.0.0" "setuptools" \
|
||||
--replace-fail "wheel~=0.47.0" "wheel" \
|
||||
--replace-fail "cython>=0.29.1,<=3.2.0" "cython" \
|
||||
--replace-fail "packaging~=26.0" packaging
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace kivy/lib/mtdev.py \
|
||||
@@ -122,10 +112,9 @@ buildPythonPackage rec {
|
||||
pythonImportsCheck = [ "kivy" ];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/kivy/kivy/releases/tag/${src.tag}";
|
||||
description = "Library for rapid development of hardware-accelerated multitouch applications";
|
||||
homepage = "https://github.com/kivy/kivy";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ risson ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "liger-kernel";
|
||||
version = "0.8.1";
|
||||
version = "0.8.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linkedin";
|
||||
repo = "liger-kernel";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-HSNhm/NwzjL3XQcKot/Bg1i3zuPEy6aNkWo2ukLL4VY=";
|
||||
hash = "sha256-cUgVfUe2UxULHiU0OeSJX9KHShRJ5W6fhqmgB+PUD4c=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "linuxpy";
|
||||
version = "0.24.0";
|
||||
version = "0.25.0";
|
||||
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-K0RDTSjUklfoWaSDAmeiWqS1Gx0in5X3nQJa5/Gl0w4=";
|
||||
sha256 = "sha256-eyNCkbq8YXah/iOWJPjhkH/IncX3OXgJNg5Q4FMcd1I=";
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "linuxpy" ];
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "llama-cloud";
|
||||
version = "2.14.0";
|
||||
version = "2.14.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "llama_cloud";
|
||||
inherit (finalAttrs) version;
|
||||
hash = "sha256-oiLNJIZ8BYtp01z490S7WxmuNEQqQXTYKl8FCU4feIo=";
|
||||
hash = "sha256-QtnBF5KtSQlyXM/85Y38jkf12cafUXhFSwn7N0gxh5Q=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -17,14 +17,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "nice-go";
|
||||
version = "1.0.2";
|
||||
version = "1.0.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "IceBotYT";
|
||||
repo = "nice-go";
|
||||
tag = version;
|
||||
hash = "sha256-09Tc2fFXUevQNgJmXyeXy1sBg9Cr9OV/15Feh9tlRug=";
|
||||
hash = "sha256-KrsAs5aMkrhxv6PtFTm+8e0h2hAD/bc4ADam2jT2oAc=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pixel-font-builder";
|
||||
version = "0.0.47";
|
||||
version = "0.0.55";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TakWolf";
|
||||
repo = "pixel-font-builder";
|
||||
tag = version;
|
||||
hash = "sha256-a25JKZy5XaBfpeFwH7YnSTY28hQF8dLa/AGEOXHN94I=";
|
||||
hash = "sha256-WMwmhGspseqTkGUPrMNR16sZBB+n/lvthHX7JTtdlsQ=";
|
||||
};
|
||||
|
||||
build-system = [ uv-build ];
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "python-mpv-jsonipc";
|
||||
version = "1.2.3";
|
||||
version = "1.3.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "iwalton3";
|
||||
repo = "python-mpv-jsonipc";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-drXPu355wXznB9oTF2mmjXoByLs1gzUuBxWT6wUFMTA=";
|
||||
hash = "sha256-i21Pzaidoi2MLb6Le9pA37IRy804MeC0yVV4KONb3mk=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "tencentcloud-sdk-python";
|
||||
version = "3.1.162";
|
||||
version = "3.1.163";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TencentCloud";
|
||||
repo = "tencentcloud-sdk-python";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-ap6wIzL2G+Ogbsf53tKgkkYQNRVsUUymlm+A/B7F3Tc=";
|
||||
hash = "sha256-Y6xQ3UWmpvwZfLerrc2urtA6c0AT1474DI0ZvxGcxzM=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -18,7 +18,7 @@ in
|
||||
buildLinux (
|
||||
args
|
||||
// rec {
|
||||
version = "7.1.9";
|
||||
version = "7.1.10";
|
||||
pname = "linux-zen";
|
||||
modDirVersion = lib.versions.pad 3 "${version}-${suffix}";
|
||||
isZen = true;
|
||||
@@ -27,7 +27,7 @@ buildLinux (
|
||||
owner = "zen-kernel";
|
||||
repo = "zen-kernel";
|
||||
rev = "v${version}-${suffix}";
|
||||
sha256 = "0r1c6qpmcdhqdzx27v1wrk6mzwyvwb0ff98bjhf2f1qk9cjk701q";
|
||||
sha256 = "0c01cnamvl3mdc1rm7pjpcy5s6s9yamfkg413zn7k2xwkjig8b08";
|
||||
};
|
||||
|
||||
# This is based on the following source:
|
||||
|
||||
@@ -17,12 +17,17 @@ let
|
||||
field:
|
||||
with builtins;
|
||||
let
|
||||
matches = match ''^[^#\r\n]*${field}="([a-zA-Z0-9_]+)".*$'' (readFile firmwareConfig);
|
||||
lines = lib.splitString "\n" (readFile firmwareConfig);
|
||||
matchLine = line: match ''${field}="?([a-zA-Z0-9_]+)"?.*'' (lib.trim line);
|
||||
matched = lib.findFirst (line: matchLine line != null) null lines;
|
||||
in
|
||||
if matches != null then head matches else null;
|
||||
if matched != null then head (matchLine matched) else null;
|
||||
matchPlatform = getConfigField "CONFIG_BOARD_DIRECTORY";
|
||||
matchBoard = getConfigField "CONFIG_MCU";
|
||||
matchAvrdudeProtocol = getConfigField "CONFIG_AVRDUDE_PROTOCOL";
|
||||
matchFlashApplicationAddress = getConfigField "CONFIG_FLASH_APPLICATION_ADDRESS";
|
||||
# Only stm32's require -s/--start (flash_stm32f4 in scripts/flash_usb.py)
|
||||
flashStartAddress = if matchPlatform == "stm32" then matchFlashApplicationAddress else null;
|
||||
flashUsbSupportedBoards = [
|
||||
"sam3"
|
||||
"sam4"
|
||||
@@ -69,7 +74,9 @@ writeShellApplication {
|
||||
&& matchPlatform != null
|
||||
then
|
||||
''
|
||||
${klipper}/lib/scripts/flash_usb.py -t ${matchBoard} -d ${flashDevice} ${klipper-firmware}/klipper.bin "$@"
|
||||
${klipper}/lib/scripts/flash_usb.py -t ${matchBoard} -d ${flashDevice}${
|
||||
lib.optionalString (flashStartAddress != null) " -s ${flashStartAddress}"
|
||||
} ${klipper-firmware}/klipper.bin "$@"
|
||||
''
|
||||
else if matchPlatform == "avr" && matchAvrdudeProtocol != null && matchBoard != null then
|
||||
''
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
grafanaPlugin {
|
||||
pname = "grafana-clock-panel";
|
||||
version = "3.2.2";
|
||||
zipHash = "sha256-VjOg6qJXxhDAl8xYWD9ZZSNqSELMoREuyv+LX5xFOgM=";
|
||||
version = "3.2.3";
|
||||
zipHash = "sha256-qNX6LTg+WKjoJIWX7Mc2IRnWVpoZZsiZQzQqR2u1Q10=";
|
||||
meta = {
|
||||
description = "Clock panel for Grafana";
|
||||
license = lib.licenses.mit;
|
||||
|
||||
@@ -793,6 +793,7 @@ mapAliases {
|
||||
expidus = throw "'expidus' has been removed from nixpkgs due to it not being maintained"; # Added 2026-07-28
|
||||
ext4fuse = throw "'ext4fuse' has been removed as it is unmaintained, and depends on the unmaintained fuse2 library"; # added 2026-08-12
|
||||
f3d_egl = warnAlias "'f3d' now build with egl support by default, so `f3d_egl` is deprecated, consider using 'f3d' instead." f3d; # Added 2025-07-18
|
||||
Fabric = fabric; # Added 2026-06-29
|
||||
fabs = throw "'fabs' has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05
|
||||
falcon = throw "'falcon' has been removed as it is unmaintained and depends on pcre, which is deprecated"; # Added 2026-06-16
|
||||
fancontrol-gui = throw "'fancontrol-gui' has been removed due to outdated KF5 dependencies"; # Added 2026-05-01
|
||||
@@ -2142,6 +2143,7 @@ mapAliases {
|
||||
rambox-pro = throw "'rambox-pro' has been renamed to/replaced by 'rambox'"; # Converted to throw 2025-10-27
|
||||
rapidjson-unstable = throw "'rapidjson-unstable' has been renamed to/replaced by 'rapidjson'"; # Converted to throw 2025-10-27
|
||||
rar2fs = throw "'rar2fs' has been removed as it is unmaintained, and depends on the unmaintained fuse2 library"; # Added 2026-05-19
|
||||
raycast-beta = throw "'raycast-beta' has been removed because Raycast 2.0 is out of beta. Use 'raycast' instead."; # Added 2026-08-24
|
||||
react-static = throw "'react-static' has been removed due to lack of maintenance upstream"; # Added 2025-11-04
|
||||
recurseIntoAttrs = warnAlias "'recurseIntoAttrs' has been removed from pkgs, use `lib.recurseIntoAttrs` instead" lib.recurseIntoAttrs; # Added 2025-10-30
|
||||
redict = throw "'redict' has been removed due to lack of nixpkgs maintenance and a slow upstream development pace. Consider using 'valkey'."; # Added 2025-10-16
|
||||
|
||||
@@ -1978,7 +1978,7 @@ with pkgs;
|
||||
|
||||
expect = tcl8Packages.expect_5;
|
||||
|
||||
Fabric = with python3Packages; toPythonApplication fabric;
|
||||
fabric = with python3Packages; toPythonApplication fabric;
|
||||
|
||||
flatpak-builder = callPackage ../development/tools/flatpak-builder {
|
||||
binutils = binutils-unwrapped;
|
||||
@@ -2513,7 +2513,7 @@ with pkgs;
|
||||
ioskeley-mono = recurseIntoAttrs (callPackage ../data/fonts/ioskeley-mono { });
|
||||
|
||||
# Not in aliases because it wouldn't get picked up by callPackage
|
||||
netbox = netbox_4_5;
|
||||
netbox = netbox_4_6;
|
||||
|
||||
netboxPlugins = recurseIntoAttrs netbox.plugins;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user