Merge master into staging-next
This commit is contained in:
@@ -9670,6 +9670,12 @@
|
||||
name = "Greaka";
|
||||
keys = [ { fingerprint = "6275 FB5C C9AC 9D85 FF9E 44C5 EE92 A5CD C367 118C"; } ];
|
||||
};
|
||||
greatnatedev = {
|
||||
email = "Nate@pelmel.net";
|
||||
github = "GreatNateDev";
|
||||
githubId = 99703235;
|
||||
name = "Nate";
|
||||
};
|
||||
greg = {
|
||||
email = "greg.hellings@gmail.com";
|
||||
github = "greg-hellings";
|
||||
@@ -11637,7 +11643,7 @@
|
||||
name = "jasonxue";
|
||||
keys = [
|
||||
{
|
||||
fingerprint = "D6D8 A0A8 6FAC 3D8E D85C 523D F7BA 32A3 FCB0 260A";
|
||||
fingerprint = "DB16 A6C9 B0A9 B000 44F2 B074 E480 A836 F6DD 2441";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
@@ -25,12 +25,19 @@ let
|
||||
package = cfg.package.override { inherit (cfg) stateDir; };
|
||||
|
||||
cfg = config.services.dolibarr;
|
||||
vhostCfg = lib.optionalAttrs (cfg.nginx != null) config.services.nginx.virtualHosts."${cfg.domain}";
|
||||
|
||||
forcedTLS =
|
||||
if cfg.h2o != null then
|
||||
cfg.h2o.tls != null && cfg.h2o.tls.policy == "force"
|
||||
else if cfg.nginx != null then
|
||||
cfg.nginx.forceSSL
|
||||
else
|
||||
false;
|
||||
|
||||
mkConfigFile =
|
||||
filename: settings:
|
||||
let
|
||||
# hack in special logic for secrets so we read them from a separate file avoiding the nix store
|
||||
# hack in special logic for secrets so we read them from a separate file avoiding the Nix store
|
||||
secretKeys = [
|
||||
"force_install_databasepass"
|
||||
"dolibarr_main_db_pass"
|
||||
@@ -55,6 +62,34 @@ let
|
||||
${concatStringsSep "\n" (mapAttrsToList (k: v: "\$${k} = ${toStr k v};") settings)}
|
||||
'';
|
||||
|
||||
dbUnit =
|
||||
{
|
||||
"mysql" = "mysql.service";
|
||||
"postgresql" = "postgresql.target";
|
||||
}
|
||||
.${cfg.database.type};
|
||||
|
||||
dbPort =
|
||||
if cfg.database.createLocally then
|
||||
{
|
||||
"mysql" = config.services.mysql.settings.mysqld.port;
|
||||
"postgresql" = config.services.postgresql.settings.port;
|
||||
}
|
||||
.${cfg.database.type}
|
||||
else
|
||||
cfg.database.port;
|
||||
|
||||
# exclusivity asserted in `assertions`
|
||||
webServerService =
|
||||
if cfg.h2o != null then
|
||||
"h2o.service"
|
||||
else if cfg.nginx != null then
|
||||
"nginx.service"
|
||||
else
|
||||
null;
|
||||
|
||||
socketOwner = if cfg.h2o != null then config.services.h2o.user else cfg.user;
|
||||
|
||||
# see https://github.com/Dolibarr/dolibarr/blob/develop/htdocs/install/install.forced.sample.php for all possible values
|
||||
install = {
|
||||
force_install_noedit = 2;
|
||||
@@ -62,13 +97,18 @@ let
|
||||
force_install_nophpinfo = true;
|
||||
force_install_lockinstall = "444";
|
||||
force_install_distrib = "nixos";
|
||||
force_install_type = "mysqli";
|
||||
force_install_type =
|
||||
{
|
||||
"mysql" = "mysqli";
|
||||
"postgresql" = "pgsql";
|
||||
}
|
||||
.${cfg.database.type};
|
||||
force_install_dbserver = cfg.database.host;
|
||||
force_install_port = toString cfg.database.port;
|
||||
force_install_port = toString dbPort;
|
||||
force_install_database = cfg.database.name;
|
||||
force_install_databaselogin = cfg.database.user;
|
||||
|
||||
force_install_mainforcehttps = vhostCfg.forceSSL or false;
|
||||
force_install_mainforcehttps = forcedTLS;
|
||||
force_install_createuser = false;
|
||||
force_install_dolibarrlogin = null;
|
||||
}
|
||||
@@ -128,6 +168,15 @@ in
|
||||
};
|
||||
|
||||
database = {
|
||||
type = mkOption {
|
||||
type = types.enum [
|
||||
"mysql"
|
||||
"postgresql"
|
||||
];
|
||||
example = "postgresql";
|
||||
default = "mysql";
|
||||
description = "Database engine to use.";
|
||||
};
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
@@ -173,6 +222,29 @@ in
|
||||
description = "Dolibarr settings, see <https://github.com/Dolibarr/dolibarr/blob/develop/htdocs/conf/conf.php.example> for details.";
|
||||
};
|
||||
|
||||
h2o = mkOption {
|
||||
type = types.nullOr (
|
||||
types.submodule (import ../web-servers/h2o/vhost-options.nix { inherit config lib; })
|
||||
);
|
||||
default = null;
|
||||
example =
|
||||
lib.literalExpression # nix
|
||||
''
|
||||
{
|
||||
acme.enable = true;
|
||||
tls.policy = "force";
|
||||
compress = "ON";
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
With this option, you can customize an H2O virtual host which already
|
||||
has sensible defaults for Dolibarr. Set to `{ }` if you do not need any
|
||||
customization to the virtual host. If enabled, then by default, the
|
||||
{option}`serverName` is `''${domain}`, If this is set to `null` (the
|
||||
default), no H2O `hosts` will be configured.
|
||||
'';
|
||||
};
|
||||
|
||||
nginx = mkOption {
|
||||
type = types.nullOr (
|
||||
types.submodule (
|
||||
@@ -228,152 +300,240 @@ in
|
||||
};
|
||||
|
||||
# implementation
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
{
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
assertions = [
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.database.createLocally -> cfg.database.user == cfg.user;
|
||||
message = "services.dolibarr.database.user must match services.dolibarr.user if the database is to be automatically provisioned";
|
||||
}
|
||||
(
|
||||
let
|
||||
webServers = [
|
||||
"h2o"
|
||||
"nginx"
|
||||
];
|
||||
checkConfigs = lib.concatMapStringsSep ", " (ws: "services.dolibarr.${ws}") webServers;
|
||||
in
|
||||
{
|
||||
assertion = cfg.database.createLocally -> cfg.database.user == cfg.user;
|
||||
message = "services.dolibarr.database.user must match services.dolibarr.user if the database is to be automatically provisioned";
|
||||
assertion = builtins.length (lib.lists.filter (ws: cfg.${ws} != null) webServers) <= 1;
|
||||
message = ''
|
||||
At most 1 web server virtual host configuration should be enabled
|
||||
for Dolibarr at a time. Check ${checkConfigs}.
|
||||
'';
|
||||
}
|
||||
)
|
||||
];
|
||||
|
||||
services.dolibarr.settings = {
|
||||
dolibarr_main_url_root = "https://${cfg.domain}";
|
||||
dolibarr_main_document_root = "${package}/htdocs";
|
||||
dolibarr_main_url_root_alt = "/custom";
|
||||
dolibarr_main_data_root = "${cfg.stateDir}/documents";
|
||||
|
||||
dolibarr_main_db_host = cfg.database.host;
|
||||
dolibarr_main_db_port = toString dbPort;
|
||||
dolibarr_main_db_name = cfg.database.name;
|
||||
dolibarr_main_db_prefix = "llx_";
|
||||
dolibarr_main_db_user = cfg.database.user;
|
||||
dolibarr_main_db_pass = mkIf (cfg.database.passwordFile != null) ''
|
||||
file_get_contents("${cfg.database.passwordFile}")
|
||||
'';
|
||||
dolibarr_main_db_type =
|
||||
{
|
||||
"mysql" = "mysqli";
|
||||
"postgresql" = "pgsql";
|
||||
}
|
||||
.${cfg.database.type};
|
||||
dolibarr_main_db_character_set = mkDefault "utf8";
|
||||
dolibarr_main_db_collation = mkDefault "utf8_unicode_ci";
|
||||
|
||||
# Authentication settings
|
||||
dolibarr_main_authentication = mkDefault "dolibarr";
|
||||
|
||||
# Security settings
|
||||
dolibarr_main_prod = true;
|
||||
dolibarr_main_force_https = forcedTLS;
|
||||
dolibarr_main_restrict_os_commands =
|
||||
{
|
||||
"mysql" = "${pkgs.mariadb}/bin/mysqldump, ${pkgs.mariadb}/bin/mysql";
|
||||
"postgresql" =
|
||||
let
|
||||
pkg = config.services.postgresql.package;
|
||||
in
|
||||
"${pkg}/bin/pg_dump, ${pkg}/bin/psql";
|
||||
}
|
||||
.${cfg.database.type};
|
||||
dolibarr_nocsrfcheck = false;
|
||||
dolibarr_main_instance_unique_id = ''
|
||||
file_get_contents("${cfg.stateDir}/dolibarr_main_instance_unique_id")
|
||||
'';
|
||||
dolibarr_mailing_limit_sendbyweb = false;
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '${cfg.stateDir}' 0750 ${cfg.user} ${cfg.group}"
|
||||
"d '${cfg.stateDir}/documents' 0750 ${cfg.user} ${cfg.group}"
|
||||
"f '${cfg.stateDir}/conf.php' 0660 ${cfg.user} ${cfg.group}"
|
||||
"L '${cfg.stateDir}/install.forced.php' - ${cfg.user} ${cfg.group} - ${mkConfigFile "install.forced.php" install}"
|
||||
];
|
||||
|
||||
services.mysql = mkIf (cfg.database.createLocally && cfg.database.type == "mysql") {
|
||||
enable = mkDefault true;
|
||||
package = mkDefault pkgs.mariadb;
|
||||
ensureDatabases = [ cfg.database.name ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = cfg.database.user;
|
||||
ensurePermissions = {
|
||||
"${cfg.database.name}.*" = "ALL PRIVILEGES";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.dolibarr.settings = {
|
||||
dolibarr_main_url_root = "https://${cfg.domain}";
|
||||
dolibarr_main_document_root = "${package}/htdocs";
|
||||
dolibarr_main_url_root_alt = "/custom";
|
||||
dolibarr_main_data_root = "${cfg.stateDir}/documents";
|
||||
|
||||
dolibarr_main_db_host = cfg.database.host;
|
||||
dolibarr_main_db_port = toString cfg.database.port;
|
||||
dolibarr_main_db_name = cfg.database.name;
|
||||
dolibarr_main_db_prefix = "llx_";
|
||||
dolibarr_main_db_user = cfg.database.user;
|
||||
dolibarr_main_db_pass = mkIf (cfg.database.passwordFile != null) ''
|
||||
file_get_contents("${cfg.database.passwordFile}")
|
||||
'';
|
||||
dolibarr_main_db_type = "mysqli";
|
||||
dolibarr_main_db_character_set = mkDefault "utf8";
|
||||
dolibarr_main_db_collation = mkDefault "utf8_unicode_ci";
|
||||
|
||||
# Authentication settings
|
||||
dolibarr_main_authentication = mkDefault "dolibarr";
|
||||
|
||||
# Security settings
|
||||
dolibarr_main_prod = true;
|
||||
dolibarr_main_force_https = vhostCfg.forceSSL or false;
|
||||
dolibarr_main_restrict_os_commands = "${pkgs.mariadb}/bin/mysqldump, ${pkgs.mariadb}/bin/mysql";
|
||||
dolibarr_nocsrfcheck = false;
|
||||
dolibarr_main_instance_unique_id = ''
|
||||
file_get_contents("${cfg.stateDir}/dolibarr_main_instance_unique_id")
|
||||
'';
|
||||
dolibarr_mailing_limit_sendbyweb = false;
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '${cfg.stateDir}' 0750 ${cfg.user} ${cfg.group}"
|
||||
"d '${cfg.stateDir}/documents' 0750 ${cfg.user} ${cfg.group}"
|
||||
"f '${cfg.stateDir}/conf.php' 0660 ${cfg.user} ${cfg.group}"
|
||||
"L '${cfg.stateDir}/install.forced.php' - ${cfg.user} ${cfg.group} - ${mkConfigFile "install.forced.php" install}"
|
||||
];
|
||||
|
||||
services.mysql = mkIf cfg.database.createLocally {
|
||||
enable = mkDefault true;
|
||||
package = mkDefault pkgs.mariadb;
|
||||
ensureDatabases = [ cfg.database.name ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = cfg.database.user;
|
||||
ensurePermissions = {
|
||||
"${cfg.database.name}.*" = "ALL PRIVILEGES";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.nginx.enable = mkIf (cfg.nginx != null) true;
|
||||
services.nginx.virtualHosts."${cfg.domain}" = mkIf (cfg.nginx != null) (
|
||||
lib.mkMerge [
|
||||
cfg.nginx
|
||||
{
|
||||
root = lib.mkForce "${package}/htdocs";
|
||||
locations."/".index = "index.php";
|
||||
locations."~ [^/]\\.php(/|$)" = {
|
||||
extraConfig = ''
|
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||
fastcgi_pass unix:${config.services.phpfpm.pools.dolibarr.socket};
|
||||
'';
|
||||
};
|
||||
}
|
||||
]
|
||||
);
|
||||
|
||||
systemd.services."phpfpm-dolibarr".after = mkIf cfg.database.createLocally [ "mysql.service" ];
|
||||
services.phpfpm.pools.dolibarr = {
|
||||
inherit (cfg) user group;
|
||||
phpPackage = pkgs.php83.buildEnv {
|
||||
extensions = { enabled, all }: enabled ++ [ all.calendar ];
|
||||
# recommended by dolibarr web application
|
||||
extraConfig = ''
|
||||
session.use_strict_mode = 1
|
||||
session.cookie_samesite = "Lax"
|
||||
; open_basedir = "${package}/htdocs, ${cfg.stateDir}"
|
||||
allow_url_fopen = 0
|
||||
disable_functions = "pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wifcontinued, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_get_handler, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority, pcntl_async_signals"
|
||||
'';
|
||||
};
|
||||
|
||||
settings = {
|
||||
"listen.mode" = "0660";
|
||||
"listen.owner" = cfg.user;
|
||||
"listen.group" = cfg.group;
|
||||
services.postgresql = mkIf (cfg.database.createLocally && cfg.database.type == "postgresql") {
|
||||
enable = mkDefault true;
|
||||
ensureDatabases = [ cfg.database.name ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = cfg.database.user;
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
// cfg.poolConfig;
|
||||
];
|
||||
authentication = ''
|
||||
host ${cfg.database.name} ${cfg.database.user} localhost trust
|
||||
'';
|
||||
};
|
||||
|
||||
services.h2o = mkIf (cfg.h2o != null) {
|
||||
enable = true;
|
||||
hosts."${cfg.domain}" = mkMerge [
|
||||
{
|
||||
settings = {
|
||||
paths = {
|
||||
"/" = {
|
||||
"file.dir" = "${package}/htdocs";
|
||||
"file.index" = [
|
||||
"index.php"
|
||||
"index.html"
|
||||
];
|
||||
redirect = {
|
||||
url = "/index.php/";
|
||||
internal = "YES";
|
||||
status = 307;
|
||||
};
|
||||
};
|
||||
};
|
||||
"file.custom-handler" = {
|
||||
extension = [ ".php" ];
|
||||
"fastcgi.document_root" = "${package}/htdocs";
|
||||
"fastcgi.connect" = {
|
||||
port = config.services.phpfpm.pools.dolibarr.socket;
|
||||
type = "unix";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
cfg.h2o
|
||||
];
|
||||
};
|
||||
|
||||
services.nginx.enable = mkIf (cfg.nginx != null) true;
|
||||
services.nginx.virtualHosts."${cfg.domain}" = mkIf (cfg.nginx != null) (
|
||||
lib.mkMerge [
|
||||
cfg.nginx
|
||||
{
|
||||
root = lib.mkForce "${package}/htdocs";
|
||||
locations."/".index = "index.php";
|
||||
locations."~ [^/]\\.php(/|$)" = {
|
||||
extraConfig = ''
|
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||
fastcgi_pass unix:${config.services.phpfpm.pools.dolibarr.socket};
|
||||
'';
|
||||
};
|
||||
}
|
||||
]
|
||||
);
|
||||
|
||||
systemd.services."phpfpm-dolibarr" = {
|
||||
wantedBy = lib.optional (webServerService != null) webServerService;
|
||||
before = lib.optional (webServerService != null) webServerService;
|
||||
after = lib.optional cfg.database.createLocally dbUnit;
|
||||
requires = lib.optional cfg.database.createLocally dbUnit;
|
||||
};
|
||||
|
||||
services.phpfpm.pools.dolibarr = {
|
||||
inherit (cfg) user group;
|
||||
phpPackage = pkgs.php83.buildEnv {
|
||||
extensions = { enabled, all }: enabled ++ [ all.calendar ];
|
||||
# recommended by Dolibarr web application
|
||||
extraConfig = ''
|
||||
session.use_strict_mode = 1
|
||||
session.cookie_samesite = "Lax"
|
||||
; open_basedir = "${package}/htdocs, ${cfg.stateDir}"
|
||||
allow_url_fopen = 0
|
||||
disable_functions = "pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wifcontinued, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_get_handler, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority, pcntl_async_signals"
|
||||
'';
|
||||
};
|
||||
|
||||
# there are several challenges with dolibarr and NixOS which we can address here
|
||||
# - the dolibarr installer cannot be entirely automated, though it can partially be by including a file called install.forced.php
|
||||
# - the dolibarr installer requires write access to its config file during installation, though not afterwards
|
||||
# - the dolibarr config file generally holds secrets generated by the installer, though the config file is a php file so we can read and write these secrets from an external file
|
||||
systemd.services.dolibarr-config = {
|
||||
description = "dolibarr configuration file management via NixOS";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
settings = {
|
||||
"listen.mode" = "0660";
|
||||
"listen.owner" = socketOwner;
|
||||
"listen.group" = cfg.group;
|
||||
}
|
||||
// cfg.poolConfig;
|
||||
};
|
||||
|
||||
script =
|
||||
let
|
||||
php = lib.getExe config.services.phpfpm.pools.dolibarr.phpPackage;
|
||||
in
|
||||
''
|
||||
# extract the 'main instance unique id' secret that the dolibarr installer generated for us, store it in a file for use by our own NixOS generated configuration file
|
||||
${php} -r "include '${cfg.stateDir}/conf.php'; file_put_contents('${cfg.stateDir}/dolibarr_main_instance_unique_id', \$dolibarr_main_instance_unique_id);"
|
||||
# There are several challenges with Dolibarr and NixOS which we can address here
|
||||
# - the Dolibarr installer cannot be entirely automated, though it can partially be by including a file called install.forced.php
|
||||
# - the Dolibarr installer requires write access to its config file during installation, though not afterwards
|
||||
# - the Dolibarr config file generally holds secrets generated by the installer, though the config file is a PHP file so we can read and write these secrets from an external file
|
||||
systemd.services.dolibarr-config = {
|
||||
description = "dolibarr configuration file management via NixOS";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = lib.optional cfg.database.createLocally dbUnit;
|
||||
|
||||
# replace configuration file generated by installer with the NixOS generated configuration file
|
||||
install -m 440 ${mkConfigFile "conf.php" cfg.settings} '${cfg.stateDir}/conf.php'
|
||||
'';
|
||||
script =
|
||||
let
|
||||
php = lib.getExe config.services.phpfpm.pools.dolibarr.phpPackage;
|
||||
in
|
||||
''
|
||||
# extract the 'main instance unique id' secret that the dolibarr installer generated for us, store it in a file for use by our own NixOS generated configuration file
|
||||
${php} -r "include '${cfg.stateDir}/conf.php'; file_put_contents('${cfg.stateDir}/dolibarr_main_instance_unique_id', \$dolibarr_main_instance_unique_id);"
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
RemainAfterExit = "yes";
|
||||
};
|
||||
# replace configuration file generated by installer with the NixOS generated configuration file
|
||||
install -m 440 ${mkConfigFile "conf.php" cfg.settings} '${cfg.stateDir}/conf.php'
|
||||
'';
|
||||
|
||||
unitConfig = {
|
||||
ConditionFileNotEmpty = "${cfg.stateDir}/conf.php";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
RemainAfterExit = "yes";
|
||||
};
|
||||
|
||||
unitConfig = {
|
||||
ConditionFileNotEmpty = "${cfg.stateDir}/conf.php";
|
||||
};
|
||||
};
|
||||
|
||||
users = {
|
||||
users = {
|
||||
dolibarr = mkIf (cfg.user == "dolibarr") {
|
||||
isSystemUser = true;
|
||||
group = cfg.group;
|
||||
};
|
||||
}
|
||||
// lib.optionalAttrs (cfg.h2o != null) {
|
||||
"${config.services.h2o.user}".extraGroups = [ cfg.group ];
|
||||
}
|
||||
// lib.optionalAttrs (cfg.nginx != null) {
|
||||
"${config.services.nginx.user}".extraGroups = [ cfg.group ];
|
||||
};
|
||||
|
||||
users.users.dolibarr = mkIf (cfg.user == "dolibarr") {
|
||||
isSystemUser = true;
|
||||
group = cfg.group;
|
||||
};
|
||||
|
||||
users.groups = optionalAttrs (cfg.group == "dolibarr") {
|
||||
groups = optionalAttrs (cfg.group == "dolibarr") {
|
||||
dolibarr = { };
|
||||
};
|
||||
}
|
||||
(mkIf (cfg.nginx != null) {
|
||||
users.users."${config.services.nginx.group}".extraGroups = mkIf (cfg.nginx != null) [ cfg.group ];
|
||||
})
|
||||
]);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
+74
-48
@@ -3,58 +3,84 @@
|
||||
name = "dolibarr";
|
||||
meta.maintainers = [ ];
|
||||
|
||||
nodes.machine =
|
||||
{ ... }:
|
||||
{
|
||||
services.dolibarr = {
|
||||
enable = true;
|
||||
domain = "localhost";
|
||||
nginx = {
|
||||
forceSSL = false;
|
||||
enableACME = false;
|
||||
nodes = {
|
||||
nginx_mysql =
|
||||
{ ... }:
|
||||
{
|
||||
services.dolibarr = {
|
||||
enable = true;
|
||||
domain = "localhost";
|
||||
nginx = {
|
||||
forceSSL = false;
|
||||
enableACME = false;
|
||||
};
|
||||
database.type = "mysql";
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
};
|
||||
h2o_postgresql =
|
||||
{ ... }:
|
||||
{
|
||||
services.dolibarr = {
|
||||
enable = true;
|
||||
domain = "localhost";
|
||||
h2o = {
|
||||
acme.enable = false;
|
||||
};
|
||||
database.type = "postgresql";
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
};
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
from html.parser import HTMLParser
|
||||
start_all()
|
||||
testScript = # python
|
||||
''
|
||||
from html.parser import HTMLParser
|
||||
start_all()
|
||||
|
||||
csrf_token = None
|
||||
class TokenParser(HTMLParser):
|
||||
def handle_starttag(self, tag, attrs):
|
||||
attrs = dict(attrs) # attrs is an assoc list originally
|
||||
if tag == 'input' and attrs.get('name') == 'token':
|
||||
csrf_token = attrs.get('value')
|
||||
print(f'[+] Caught CSRF token: {csrf_token}')
|
||||
def handle_endtag(self, tag): pass
|
||||
def handle_data(self, data): pass
|
||||
csrf_token = None
|
||||
class TokenParser(HTMLParser):
|
||||
def handle_starttag(self, tag, attrs):
|
||||
attrs = dict(attrs) # attrs is an assoc list originally
|
||||
if tag == 'input' and attrs.get('name') == 'token':
|
||||
csrf_token = attrs.get('value')
|
||||
print(f'[+] Caught CSRF token: {csrf_token}')
|
||||
def handle_endtag(self, tag): pass
|
||||
def handle_data(self, data): pass
|
||||
|
||||
machine.wait_for_unit("phpfpm-dolibarr.service")
|
||||
machine.wait_for_unit("nginx.service")
|
||||
machine.wait_for_open_port(80)
|
||||
# Sanity checks on URLs.
|
||||
# machine.succeed("curl -fL http://localhost/index.php")
|
||||
# machine.succeed("curl -fL http://localhost/")
|
||||
# Perform installation.
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/check.php -F selectlang=auto')
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/fileconf.php -F selectlang=auto')
|
||||
# First time is to write the configuration file correctly.
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/step1.php -F "testpost=ok" -F "action=set" -F "selectlang=auto"')
|
||||
# Now, we have a proper conf.php in $stateDir.
|
||||
assert 'nixos' in machine.succeed("cat /var/lib/dolibarr/conf.php")
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/step2.php --data "testpost=ok&action=set&dolibarr_main_db_character_set=utf8&dolibarr_main_db_collation=utf8_unicode_ci&selectlang=auto"')
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/step4.php --data "testpost=ok&action=set&selectlang=auto"')
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/step5.php --data "testpost=ok&action=set&login=root&pass=hunter2&pass_verif=hunter2&selectlang=auto"')
|
||||
# Now, we have installed the machine, let's verify we still have the right configuration.
|
||||
assert 'nixos' in machine.succeed("cat /var/lib/dolibarr/conf.php")
|
||||
# We do not want any redirect now as we have installed the machine.
|
||||
machine.succeed('curl -f -X GET http://localhost')
|
||||
# Test authentication to the webservice.
|
||||
parser = TokenParser()
|
||||
parser.feed(machine.succeed('curl -f -X GET http://localhost/index.php?mainmenu=login&username=root'))
|
||||
machine.succeed(f'curl -f -X POST http://localhost/index.php?mainmenu=login&token={csrf_token}&username=root&password=hunter2')
|
||||
'';
|
||||
# wait for app
|
||||
for machine in (nginx_mysql, h2o_postgresql):
|
||||
machine.wait_for_unit("phpfpm-dolibarr.service")
|
||||
|
||||
# wait for web servers
|
||||
nginx_mysql.wait_for_unit("nginx.service")
|
||||
nginx_mysql.wait_for_open_port(80)
|
||||
h2o_postgresql.wait_for_unit("h2o.service")
|
||||
h2o_postgresql.wait_for_open_port(80)
|
||||
|
||||
for machine in (nginx_mysql, h2o_postgresql):
|
||||
# Sanity checks on URLs.
|
||||
machine.succeed("curl -fL http://localhost/index.php")
|
||||
machine.succeed("curl -fL http://localhost/")
|
||||
# Perform installation.
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/check.php -F selectlang=auto')
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/fileconf.php -F selectlang=auto')
|
||||
# First time is to write the configuration file correctly.
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/step1.php -F "testpost=ok" -F "action=set" -F "selectlang=auto"')
|
||||
# Now, we have a proper conf.php in $stateDir.
|
||||
assert 'nixos' in machine.succeed("cat /var/lib/dolibarr/conf.php")
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/step2.php --data "testpost=ok&action=set&dolibarr_main_db_character_set=utf8&dolibarr_main_db_collation=utf8_unicode_ci&selectlang=auto"')
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/step4.php --data "testpost=ok&action=set&selectlang=auto"')
|
||||
machine.succeed('curl -fL -X POST http://localhost/install/step5.php --data "testpost=ok&action=set&login=root&pass=hunter2&pass_verif=hunter2&selectlang=auto"')
|
||||
# Now, we have installed the machine, let's verify we still have the right configuration.
|
||||
assert 'nixos' in machine.succeed("cat /var/lib/dolibarr/conf.php")
|
||||
# We do not want any redirect now as we have installed the machine.
|
||||
machine.succeed('curl -f -X GET http://localhost')
|
||||
# Test authentication to the webservice.
|
||||
parser = TokenParser()
|
||||
parser.feed(machine.succeed('curl -f -X GET http://localhost/index.php?mainmenu=login&username=root'))
|
||||
machine.succeed(f'curl -f -X POST http://localhost/index.php?mainmenu=login&token={csrf_token}&username=root&password=hunter2')
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -216,10 +216,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
substituteInPlace src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp \
|
||||
--replace-fail \"libGL.so.1\" \"${libGL.out}/lib/libGL.so.1\"
|
||||
|
||||
# this works in conjunction with fix-graphics-driver-loading.patch
|
||||
substituteInPlace src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp \
|
||||
--replace-fail \"VBoxDxVk\" \"$out/libexec/virtualbox/VBoxDxVk.so\"
|
||||
|
||||
export USER=nix
|
||||
set +x
|
||||
'';
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "bibiman";
|
||||
version = "0.13.1";
|
||||
version = "0.15.0";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "lukeflo";
|
||||
repo = "bibiman";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-MdUabJQ5x3/n7dfbIjAqK9hDQ+lLNOtXknY4fTSW67Q=";
|
||||
hash = "sha256-GAPlfHeo/g2QaRW3v9LatqYajJ2gE1ssK77yJPhOKuo=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-FARk/BCssI35aS4yxUnfGoV6C3i4/a/LQcEMIKD29Ac=";
|
||||
cargoHash = "sha256-aQ9h+L232dxZRPOQ+6b+vI3v/QdBR4//3HV8K9vwWV8=";
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
|
||||
@@ -3,35 +3,34 @@
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
llvmPackages,
|
||||
cmake,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "bsc";
|
||||
version = "3.3.6";
|
||||
version = "3.3.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "IlyaGrebnov";
|
||||
repo = "libbsc";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-iUFKTDSAg2/57TPvR0nlmfVN2Z6O9kZKIg+BQQKvr/o=";
|
||||
hash = "sha256-3dFwmThnDzbXB6m/rDfbSz4DZAlIsm4gUOT7YwexpKA=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
buildInputs = lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp;
|
||||
|
||||
postPatch = lib.optional (!stdenv.hostPlatform.isx86) ''
|
||||
substituteInPlace makefile \
|
||||
--replace-fail "-mavx2" ""
|
||||
|
||||
substituteInPlace makefile.cuda \
|
||||
--replace-fail "-mavx2" ""
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail "check_c_compiler_flag(-march=native COMPILER_SUPPORTS_MARCH_NATIVE_C)" "" \
|
||||
--replace-fail "check_cxx_compiler_flag(-march=native COMPILER_SUPPORTS_MARCH_NATIVE_CXX)" ""
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"CC=$(CXX)"
|
||||
"PREFIX=${placeholder "out"}"
|
||||
];
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "High performance block-sorting data compression library";
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cdncheck";
|
||||
version = "1.2.4";
|
||||
version = "1.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "projectdiscovery";
|
||||
repo = "cdncheck";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-O4tw/Uc2EuZerAVD8l2n5HejqWZUcCPHuU757r+uRmY=";
|
||||
hash = "sha256-Ty+W5uiFkr8MBhWUweHsFQnIZ8R+oJoCcvQabHFdu7U=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-6GxqDWRnvvj4OM2hqkwWFDvhOm+2VQvoGHivuOtTyCg=";
|
||||
vendorHash = "sha256-YjkO3QTQZlCfbKm/uYNVwnyQ/1Tde77YB2m7CqKsRtM=";
|
||||
|
||||
subPackages = [ "cmd/cdncheck/" ];
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "chisel";
|
||||
version = "1.10.1";
|
||||
version = "1.11.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jpillora";
|
||||
repo = "chisel";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-b3r4D/P7D3kfIyMd1s/ntciY04qMrvSTru9+HjAOrnA=";
|
||||
hash = "sha256-JrDRcp0gImG/5b/BC0KWM2IqJrS2mzO+ZX6kbTtQYlM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-+11Pd/QCxoLLkeazmU9/vnPBaB2MZXmx4cEZRDnyRcQ=";
|
||||
vendorHash = "sha256-2H+YHqYE1xm+7qDG3jfFpwS9FbYkbwJ6uso2At2BZcU=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
@@ -35,8 +35,8 @@ buildGoModule rec {
|
||||
used to provide a secure endpoint into your network.
|
||||
'';
|
||||
homepage = "https://github.com/jpillora/chisel";
|
||||
changelog = "https://github.com/jpillora/chisel/releases/tag/v${version}";
|
||||
license = with lib.licenses; [ mit ];
|
||||
changelog = "https://github.com/jpillora/chisel/releases/tag/${src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
lib,
|
||||
crystal_1_17,
|
||||
fetchFromGitHub,
|
||||
versionCheckHook,
|
||||
...
|
||||
}:
|
||||
crystal_1_17.buildCrystalPackage rec {
|
||||
pname = "coverage-reporter";
|
||||
version = "0.6.17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coverallsapp";
|
||||
repo = "coverage-reporter";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-wbxPjNAUubbL9TJnyqR7aYkMmADkIuD2PF00xI2wa84=";
|
||||
};
|
||||
|
||||
shardsFile = ./shards.nix;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm755 bin/coveralls $out/bin/coveralls
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/coverallsapp/coverage-reporter/releases/tag/${src.tag}";
|
||||
description = "Self-contained, universal coverage uploader binary";
|
||||
homepage = "https://github.com/coverallsapp/coverage-reporter";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ quadradical ];
|
||||
mainProgram = "coveralls";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"ameba" = {
|
||||
url = "https://github.com/crystal-ameba/ameba.git";
|
||||
rev = "7174e81a13f3cb3b3d317e236616149b4360de18";
|
||||
sha256 = "1ivrwnnid7gn1aq78vymxxgyjmrmlw5i59gmwxbz8g0ph4nbrd4p";
|
||||
};
|
||||
"crystal-kcov" = {
|
||||
url = "https://github.com/vici37/crystal-kcov.git";
|
||||
rev = "7e49fe22d7d47040c9de77eb77a6daa76ce0655d";
|
||||
sha256 = "1x9yayzh2jz6gs8hvrlyhywmln8mkhhcm6v9x2i3i7cznjl86la6";
|
||||
};
|
||||
"db" = {
|
||||
url = "https://github.com/crystal-lang/crystal-db.git";
|
||||
rev = "v0.12.0";
|
||||
sha256 = "1in8w2dz7nlhqgc9l6b3pi6f944m29nhbg3p5j40qzvsrr8lqaj7";
|
||||
};
|
||||
"spectator" = {
|
||||
url = "https://gitlab.com/arctic-fox/spectator.git";
|
||||
rev = "v0.12.0";
|
||||
sha256 = "1fi8zmcdfyr16pz8dvs39b93zgiirgsyrrp3ysdrlf9mjah0nss8";
|
||||
};
|
||||
"sqlite3" = {
|
||||
url = "https://github.com/crystal-lang/crystal-sqlite3.git";
|
||||
rev = "v0.20.0";
|
||||
sha256 = "0mqy6rc26i0sf2fdllbbzdhbd1d35npmpqqjz0b1n1vrzrm6fg05";
|
||||
};
|
||||
"webmock" = {
|
||||
url = "https://github.com/manastech/webmock.cr.git";
|
||||
rev = "v0.14.0";
|
||||
sha256 = "1h008sx33xq0hha2lxd5dsh2wr7rzlv4nifgr4k5knpw5ahq1f88";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "cruise";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NucleoFusion";
|
||||
repo = "cruise";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-0xIugbLlKlMODbMvsFzQXjKNNGY61tF4P/0loPlfs6o=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Zx1rZl5ljlsBNV1eQKPtQ+SgJV9l5rS8hwBe8nX9dYQ=";
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "TUI for managing Docker containers, images, volumes, networks, and more";
|
||||
homepage = "https://github.com/NucleoFusion/cruise";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ greatnatedev ];
|
||||
mainProgram = "cruise";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -30,14 +30,14 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "debian-devscripts";
|
||||
version = "2.25.15+deb13u1";
|
||||
version = "2.25.19";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "salsa.debian.org";
|
||||
owner = "debian";
|
||||
repo = "devscripts";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-szyVLpeIQozPXwBgL4nIYog4znUzweIt8q7nczo5q+g=";
|
||||
hash = "sha256-xRWWdM2l1F1Z7U+ThxWvH5wL2ZY+sR8+Jx6h/7mo9dQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -136,7 +136,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
ln -s pts-subscribe $out/bin/pts-unsubscribe
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [
|
||||
"--version-regex"
|
||||
"^v([0-9.]+)$"
|
||||
];
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Debian package maintenance scripts";
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "dupe-krill";
|
||||
version = "1.4.9";
|
||||
version = "1.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kornelski";
|
||||
repo = "dupe-krill";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ze9OQHNtujzn2rY24bmFUkz5AYsjoMrwqm4jyQoF53Y=";
|
||||
hash = "sha256-Udj5Uc1P/c/wiF42m/qPrTtSvMpNsXjqP0LR08zslNI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-OMXxMWMQIYXe41sxM+KQRMRicH61dIXUe51zdXn8ZYM=";
|
||||
cargoHash = "sha256-iNkuhohlqjbcn/R6tCkI5rvSbyZw4Ynac27Lb8tycp8=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fast file deduplicator";
|
||||
|
||||
@@ -18,19 +18,19 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# the Equicord repository. Dates as tags (and automatic releases) were the compromise
|
||||
# we came to with upstream. Please do not change the version schema (e.g., to semver)
|
||||
# unless upstream changes the tag schema from dates.
|
||||
version = "2025-10-05";
|
||||
version = "2025-10-12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Equicord";
|
||||
repo = "Equicord";
|
||||
tag = "${finalAttrs.version}";
|
||||
hash = "sha256-29akM1A7wFI+uZJ2r6K+2djYoZ6zI/rcYROU++x4j8k=";
|
||||
hash = "sha256-SH8zRLBmglsSFAg0kNmab2BV+Hx2ZCl/wd3KptUWezY=";
|
||||
};
|
||||
|
||||
pnpmDeps = pnpm_10.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-SsvkIgIXKYBgiHOMt9+IX8pXSYvXr8ESgHJm0mzBWlU=";
|
||||
hash = "sha256-gl/4+AN3+YOl3uCYholPU8jo0IayazlY987fwhtHCuk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "feroxbuster";
|
||||
version = "2.12.0";
|
||||
version = "2.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "epi052";
|
||||
repo = "feroxbuster";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-uVRZp9r3888k//UsNUr7NKQcmFe2/RLmlIt/RgZ3Ips=";
|
||||
hash = "sha256-4YjZhBG+4Oo8mfEslNCNl0KFiqWsoreo9cPGYUoDJlk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-W6sNc8RVItOGHIw3vmtZlJayqrzvmuET2B2AIl7LAL4=";
|
||||
cargoHash = "sha256-D5wiNzB83AWAy2N2ykzu6PNJPZ2PT/qtLPeiQzT2OxE=";
|
||||
|
||||
OPENSSL_NO_VENDOR = true;
|
||||
|
||||
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
|
||||
meta = with lib; {
|
||||
description = "Recursive content discovery tool";
|
||||
homepage = "https://github.com/epi052/feroxbuster";
|
||||
changelog = "https://github.com/epi052/feroxbuster/releases/tag/v${src.tag}";
|
||||
changelog = "https://github.com/epi052/feroxbuster/releases/tag/${src.tag}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
platforms = platforms.unix;
|
||||
|
||||
@@ -27,14 +27,14 @@ let
|
||||
in
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
pname = "gdtoolkit";
|
||||
version = "4.3.4";
|
||||
version = "4.5.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Scony";
|
||||
repo = "godot-gdscript-toolkit";
|
||||
tag = version;
|
||||
hash = "sha256-D67iwGGF3CrdAi/XKGVkusZlFCsMPIKdVpKDwcVQMrI=";
|
||||
hash = "sha256-Jam7Txm+Fq5zEkJZMmbWW5Ok4ThsPyi6NIeawQot0RE=";
|
||||
};
|
||||
|
||||
disabled = python.pythonOlder "3.7";
|
||||
|
||||
@@ -4,36 +4,41 @@
|
||||
lib,
|
||||
rustPlatform,
|
||||
testers,
|
||||
mold,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
let
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "gfold";
|
||||
version = "2025.7.0";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit pname version;
|
||||
version = "2025.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nickgerace";
|
||||
repo = "gfold";
|
||||
rev = version;
|
||||
hash = "sha256-EWQ17aEOEZnYEe3WJpyNuC+r4tv8DP1fYFH6fII2p+8=";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-sPvhZaDGInXH2PT8fg28m7wyDZiIE4fFScNO8WIjV9s=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-3hzcYPD/w2vbsSuuHNAD2Oyqw0B0PIdERGgCAvAiQpk=";
|
||||
cargoHash = "sha256-pbIE8QXY8lYsDGdmGVsOPesVTaHRjDBSd7ihQhN2XrI=";
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = gfold;
|
||||
command = "gfold --version";
|
||||
inherit version;
|
||||
nativeBuildInputs = [ mold ];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
|
||||
tests.version = testers.testVersion {
|
||||
package = gfold;
|
||||
command = "gfold --version";
|
||||
inherit (finalAttrs) version;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "CLI tool to help keep track of your Git repositories, written in Rust";
|
||||
homepage = "https://github.com/nickgerace/gfold";
|
||||
license = licenses.asl20;
|
||||
maintainers = [ maintainers.sigmanificient ];
|
||||
platforms = platforms.unix;
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ sigmanificient ];
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "gfold";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -7,15 +7,15 @@
|
||||
}:
|
||||
|
||||
let
|
||||
timestamp = "202507311558";
|
||||
timestamp = "202510022025";
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "jdt-language-server";
|
||||
version = "1.49.0";
|
||||
version = "1.51.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.eclipse.org/jdtls/milestones/${finalAttrs.version}/jdt-language-server-${finalAttrs.version}-${timestamp}.tar.gz";
|
||||
hash = "sha256-o/n7WSH1Jz0Pj+Q2WzY/utG9wuhpkdsxSbLXbxJlvNc=";
|
||||
hash = "sha256-ilk3IReIG/W9wCIPIlRHKEa4gTfAWPNEsAp9QUJ3RaE=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
@@ -60,7 +60,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
description = "Java language server";
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
|
||||
license = lib.licenses.epl20;
|
||||
maintainers = with lib.maintainers; [ matt-snider ];
|
||||
maintainers = with lib.maintainers; [
|
||||
matt-snider
|
||||
wenjinnn
|
||||
];
|
||||
platforms = lib.platforms.all;
|
||||
mainProgram = "jdtls";
|
||||
};
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ktx-tools";
|
||||
version = "4.4.1";
|
||||
version = "4.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "KhronosGroup";
|
||||
repo = "KTX-Software";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dAb1ze2YpgQYu+fNONWLCG8/ckj0SeedxIUNmlSh5J0=";
|
||||
hash = "sha256-yBRLKa0h64vDBvaessh2FwP16d8+jvW6udbyZvOMzTQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "leo-editor";
|
||||
version = "6.8.6.1";
|
||||
version = "6.8.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leo-editor";
|
||||
repo = "leo-editor";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-3ojiIjsGJpPgVSUi0QhIddqwsDxfRWxhxAQ5YmzwZiQ=";
|
||||
hash = "sha256-GbbSPZQEPufRcF2aLjr9vEVLZlUIgAEP1QkaNILwJV4=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
let
|
||||
pname = "mindustry";
|
||||
version = "151.1";
|
||||
version = "152.2";
|
||||
buildVersion = makeBuildVersion version;
|
||||
|
||||
jdk = jdk17;
|
||||
@@ -48,14 +48,14 @@ let
|
||||
owner = "Anuken";
|
||||
repo = "Mindustry";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-/WBO66Ii/1IuL3VaQNCTrcK43VWS8FVLYPxxtJMYKus=";
|
||||
hash = "sha256-DRH6Gd/NOXvTZAMu3qcpEk6Ii1l7NMPLd8+RLUyt7yE=";
|
||||
};
|
||||
Arc = fetchFromGitHub {
|
||||
name = "Arc-source";
|
||||
owner = "Anuken";
|
||||
repo = "Arc";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-jI9bvo8MEEe1guM8YuQmGOi/wP5eFH88dvsin7sAPY0=";
|
||||
hash = "sha256-TfDgzApR9LlnVVUOgIZu5pSLzbGlqrsXqzUN88lYN8s=";
|
||||
};
|
||||
soloud = fetchFromGitHub {
|
||||
owner = "Anuken";
|
||||
|
||||
@@ -7,16 +7,19 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "natscli";
|
||||
version = "0.2.2";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nats-io";
|
||||
repo = "natscli";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-5iGU23HsaMuRDcy3qeCJZE3p2ikaIlLnuWyGfCAlMYQ=";
|
||||
hash = "sha256-GaP1qC90agVJa7t8aAyB+t++URxbQzkrCJ+KAVFqoBA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-8JtMcEI3UMMuTa9jmkTspjKtseIb2XUcbNuWlrkAVfg=";
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-8Kva9aMWzGctpq51jVOz6umVTNB9NaGHIGoKmw7gl3I=";
|
||||
|
||||
subPackages = [ "nats" ];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
@@ -33,13 +36,12 @@ buildGoModule rec {
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
versionCheckProgram = "${placeholder "out"}/bin/nats";
|
||||
|
||||
meta = {
|
||||
description = "NATS Command Line Interface";
|
||||
homepage = "https://github.com/nats-io/natscli";
|
||||
changelog = "https://github.com/nats-io/natscli/releases/tag/v${version}";
|
||||
changelog = "https://github.com/nats-io/natscli/releases/tag/${src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "nats";
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "quickshell";
|
||||
version = "0.2.0";
|
||||
version = "0.2.1";
|
||||
|
||||
# github mirror: https://github.com/quickshell-mirror/quickshell
|
||||
src = fetchFromGitea {
|
||||
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "quickshell";
|
||||
repo = "quickshell";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-vqkSDvh7hWhPvNjMjEDV4KbSCv2jyl2Arh73ZXe274k=";
|
||||
hash = "sha256-e++Ogy91Sv7gGLMdAqZaBzbH/UmPWZ4GAt7VDCA66aU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "skippy-xd";
|
||||
version = "2025.09.07";
|
||||
version = "2025.10.05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "felixfung";
|
||||
repo = "skippy-xd";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-PxVU0atl5OLINFTM1n3REVA/M9iozkHOW9kPgTU/+qI=";
|
||||
hash = "sha256-WrB633mhZwoP+54mjSE+3gSU/VsdBZVITfD0dkYaoa8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
let
|
||||
inherit (python3Packages)
|
||||
buildPythonApplication
|
||||
isPy3k
|
||||
dbus-python
|
||||
pygobject3
|
||||
mpd2
|
||||
@@ -31,11 +30,9 @@ buildPythonApplication rec {
|
||||
owner = "multani";
|
||||
repo = "sonata";
|
||||
tag = "v${version}";
|
||||
sha256 = "sha256-80F2dVaRawnI0E+GzaxRUudaLWWHGUjICCEbXHVGy+E=";
|
||||
hash = "sha256-80F2dVaRawnI0E+GzaxRUudaLWWHGUjICCEbXHVGy+E=";
|
||||
};
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
gobject-introspection
|
||||
@@ -93,7 +90,9 @@ buildPythonApplication rec {
|
||||
- Available in 24 languages
|
||||
'';
|
||||
homepage = "https://www.nongnu.org/sonata/";
|
||||
license = lib.licenses.gpl3;
|
||||
changelog = "https://github.com/multani/sonata/blob/${src.tag}/CHANGELOG";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "typstyle";
|
||||
version = "0.13.17";
|
||||
version = "0.13.18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "typstyle-rs";
|
||||
repo = "typstyle";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-JsRMs6ARiXs/S/ybkzNo4giR3BvGbOm8X/UH08kvznU=";
|
||||
hash = "sha256-sQZbk4XlhpFR4FUgD7Z0EoZVUMQaJQ2baTWbOp4I3QA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-G7X5FoWHEWFoLqfHmbuSylG7/xp4aXrSugnGc20oZcE=";
|
||||
cargoHash = "sha256-anA7jJEK/Wr6trpc/6x2kExt8j9J3fxxgpWusQbbPaM=";
|
||||
|
||||
# Disabling tests requiring network access
|
||||
checkFlags = [
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "yq-go";
|
||||
version = "4.47.2";
|
||||
version = "4.48.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mikefarah";
|
||||
repo = "yq";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-hN2ps2JeEfTIbAWr0pSfz/qJa1plwIIbe7s3xT0m4hA=";
|
||||
hash = "sha256-cY+z4im2pB2ehV8AXNUHzzTjPvopd7KX8aRE8oYIgE0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Yy0ty7jIu5HMp59r987gZApcrb38JvcXfuEqCur1AwY=";
|
||||
vendorHash = "sha256-p+7dD3NVXg3XZowIgDaGs1MSaxXY5OPLmnw44p4m4A4=";
|
||||
|
||||
nativeBuildInputs = lib.optionalAttrs (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
|
||||
installShellFiles
|
||||
|
||||
@@ -20,13 +20,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-indicator-sound";
|
||||
version = "8.0.1";
|
||||
version = "8.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "wingpanel-indicator-sound";
|
||||
rev = version;
|
||||
sha256 = "sha256-oWgq8rgdK81QsN/LhVUk6YgKYG4pFjVfu00t974n+i8=";
|
||||
tag = version;
|
||||
hash = "sha256-a2yl6HKNLo3660OPEp/9AtwpPerLGYD/k8fl+R5ct/g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qtpbfimageplugin";
|
||||
version = "5.0";
|
||||
version = "5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tumic0";
|
||||
repo = "QtPBFImagePlugin";
|
||||
tag = version;
|
||||
hash = "sha256-ruaYJ3onc1banwgpZ0Gh7n8fZ9t7DQ6D6gshXH2IXfc=";
|
||||
hash = "sha256-3Tfh92ozitvL9EiGJy8Q20C8zDx5eNNJFa7KDXDuS6Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiohomekit";
|
||||
version = "3.2.19";
|
||||
version = "3.2.20";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.10";
|
||||
@@ -31,7 +31,7 @@ buildPythonPackage rec {
|
||||
owner = "Jc2k";
|
||||
repo = "aiohomekit";
|
||||
tag = version;
|
||||
hash = "sha256-ML7j5OBbQyF+2Q1WHBwJfnRUnG8kf+cog1nMRp6fOSE=";
|
||||
hash = "sha256-iVLW7oaYJ2imVs0aMUpGbiCyE86JOaHZJr86ZGRkfLM=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
@@ -351,7 +351,6 @@
|
||||
mypy-boto3-workspaces,
|
||||
mypy-boto3-workspaces-web,
|
||||
mypy-boto3-xray,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
types-s3transfer,
|
||||
typing-extensions,
|
||||
@@ -359,15 +358,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "boto3-stubs";
|
||||
version = "1.40.49";
|
||||
version = "1.40.50";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "boto3_stubs";
|
||||
inherit version;
|
||||
hash = "sha256-ibamRZP51BuARy1iSBSMQe7FaRcukXUxI4KDjqfwkJI=";
|
||||
hash = "sha256-KYKK38uGKbXihUaOuJYQ8fxx+WStCRPeMEmgqdXeC+E=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -7,22 +7,19 @@
|
||||
poetry-core,
|
||||
pytest-cov-stub,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
sensor-state-data,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "kegtron-ble";
|
||||
version = "0.4.0";
|
||||
version = "1.0.2";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Bluetooth-Devices";
|
||||
repo = "kegtron-ble";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-O5I5shW8nL2RAQptS2Bp/GI/4L6o0xXXmwYvRq0MM8o=";
|
||||
hash = "sha256-aPWf+EHr6Et4OHJ8ZN9M1NxKhaf7piEQilzAsBO3d5E=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
@@ -43,7 +40,7 @@ buildPythonPackage rec {
|
||||
meta = with lib; {
|
||||
description = "Library for Kegtron BLE devices";
|
||||
homepage = "https://github.com/Bluetooth-Devices/kegtron-ble";
|
||||
changelog = "https://github.com/Bluetooth-Devices/kegtron-ble/blob/v${version}/CHANGELOG.md";
|
||||
changelog = "https://github.com/Bluetooth-Devices/kegtron-ble/blob/${src.tag}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
requests,
|
||||
amazon-ion,
|
||||
python-dateutil,
|
||||
pytestCheckHook,
|
||||
pytest-mock,
|
||||
requests-mock,
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
@@ -25,14 +28,10 @@ buildPythonPackage rec {
|
||||
setuptools
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
# Required for building the library (https://github.com/kestra-io/libs/blob/v0.20.0/python/setup.py#L20)
|
||||
# The path resolve to CWD, so README.md isn't picked in the parent folder
|
||||
ln -s ../README.md README.md
|
||||
'';
|
||||
|
||||
dependencies = [
|
||||
requests
|
||||
amazon-ion
|
||||
python-dateutil
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
@@ -42,6 +41,7 @@ buildPythonPackage rec {
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
requests-mock
|
||||
pytest-mock
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -36,12 +36,12 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mocket";
|
||||
version = "3.13.11";
|
||||
version = "3.14.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-kdG2Md90YknRA265u+JjHuiKw/6h1NcdwYOLXy8UF1o=";
|
||||
hash = "sha256-68bjR5lf1sKxShM4p3Fm7ff8HvmTk2Fdz53CwfHI9Q8=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
setuptools-git,
|
||||
click,
|
||||
jinja2,
|
||||
lxml,
|
||||
tabulate,
|
||||
ruamel-yaml,
|
||||
pytestCheckHook,
|
||||
mock,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pycobertura";
|
||||
version = "4.1.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aconrad";
|
||||
repo = "pycobertura";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-OzOxoF3OmgtzWuNNyecyxFRcPq8gAPQZ2XAdrkJjnhk=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# Remove build-system requirements as we handle them through Nix
|
||||
sed -i '/\[build-system\]/,/build-backend/d' pyproject.toml
|
||||
'';
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-git
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
click
|
||||
jinja2
|
||||
lxml
|
||||
tabulate
|
||||
ruamel-yaml
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
mock
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# Tests require git and a git repository
|
||||
"test_filesystem_git_integration"
|
||||
"test_filesystem_git_integration__not_found"
|
||||
"test_filesystem_git_has_file_integration"
|
||||
"test_filesystem_git_has_file_integration__not_found"
|
||||
"test_filesystem_factory"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pycobertura" ];
|
||||
|
||||
meta = {
|
||||
description = "Cobertura coverage parser that can diff reports and show coverage progress";
|
||||
homepage = "https://github.com/aconrad/pycobertura";
|
||||
changelog = "https://github.com/aconrad/pycobertura/blob/${version}/CHANGES.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ lovesegfault ];
|
||||
mainProgram = "pycobertura";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
poetry-core,
|
||||
aioresponses,
|
||||
azure-core,
|
||||
azure-identity,
|
||||
isodate,
|
||||
msrest,
|
||||
responses,
|
||||
pytestCheckHook,
|
||||
pytest-asyncio,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pydo";
|
||||
version = "0.17.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "digitalocean";
|
||||
repo = "pydo";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Tge8geMR0aP/tUmsrGWdCUvA5tu6Y7KgZv4r5iRtRz8=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
dependencies = [
|
||||
aioresponses
|
||||
azure-core
|
||||
azure-identity
|
||||
isodate
|
||||
msrest
|
||||
responses
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pydo" ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
pytest-asyncio
|
||||
];
|
||||
|
||||
# integration tests require hitting the live api with a
|
||||
# digital ocean token
|
||||
disabledTestPaths = [
|
||||
"tests/integration/"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Official DigitalOcean Client based on the DO OpenAPIv3 specification";
|
||||
homepage = "https://github.com/digitalocean/pydo";
|
||||
changelog = "https://github.com/digitalocean/pydo/releases/tag/v${version}";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [ ethancedwards8 ];
|
||||
};
|
||||
}
|
||||
@@ -8,34 +8,21 @@
|
||||
setuptools,
|
||||
pytestCheckHook,
|
||||
cython,
|
||||
fetchpatch2,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pydy";
|
||||
version = "0.7.1";
|
||||
version = "0.8.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-aaRinJMGR8v/OVkeSp1hA4+QLOrmDWq50wvA6b/suvk=";
|
||||
hash = "sha256-G3iqMzy/W3ctz/c4T3LqYyTTMVbly1GMkmMLi96mzMc=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
patches = [
|
||||
# Migrate tests to pytest
|
||||
(fetchpatch2 {
|
||||
url = "https://github.com/pydy/pydy/commit/e679638fecf80def25f5ed20f01c49c5d931e4d8.patch?full_index=1";
|
||||
hash = "sha256-wJmYkyc5Yh0152OyNL5ZbZJxmpX7C65Hqrms4gm3zt0=";
|
||||
excludes = [
|
||||
".github/workflows/oldest.yml"
|
||||
".github/workflows/tests.yml"
|
||||
"bin/test"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
numpy
|
||||
scipy
|
||||
@@ -49,6 +36,8 @@ buildPythonPackage rec {
|
||||
|
||||
pythonImportsCheck = [ "pydy" ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Python tool kit for multi-body dynamics";
|
||||
homepage = "http://pydy.org";
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage {
|
||||
pname = "pyfunctional";
|
||||
version = "1.4.3";
|
||||
version = "1.5.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
|
||||
let
|
||||
pname = "ray";
|
||||
version = "2.49.2";
|
||||
version = "2.50.0";
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
inherit pname version;
|
||||
@@ -78,35 +78,28 @@ buildPythonPackage rec {
|
||||
platforms = {
|
||||
aarch64-darwin = "macosx_12_0_arm64";
|
||||
aarch64-linux = "manylinux2014_aarch64";
|
||||
x86_64-darwin = "macosx_12_0_x86_64";
|
||||
x86_64-linux = "manylinux2014_x86_64";
|
||||
};
|
||||
# ./pkgs/development/python-modules/ray/prefetch.sh
|
||||
# Results are in ./ray-hashes.nix
|
||||
hashes = {
|
||||
x86_64-linux = {
|
||||
cp310 = "sha256-dFZodq979OSOpLmzt1s02wU9EGTMTUsWcNxM549olK8=";
|
||||
cp311 = "sha256-VAd93jOMX/ujSaSrYbcjUqPDvmnqW08bQ22Y1AsxJ2M=";
|
||||
cp312 = "sha256-LsqqUfWIzN2ithVjqL44Q79l36qoOiQFiKMH9Ou4JHE=";
|
||||
cp313 = "sha256-t9ghTP+G3wRP7HJ+7qvMw7/JsCcdKNYbqSwJ8NEn0B0=";
|
||||
cp310 = "sha256-yDG/+6D28N+iW2XFuAACLHI0y+wbmKjt4X+XzIJfcA0=";
|
||||
cp311 = "sha256-A7Zfzo7eJuKlI2XyCWfAmzo16dfSuFZkXcxoBDWkfkM=";
|
||||
cp312 = "sha256-IUoAZIlBnHhnFcsqgbPFLIjgjqMpX0i6l6tpuIjY+Bg=";
|
||||
cp313 = "sha256-g40spgZcElW2xw8dIEHKC2qzq6uQgzA7ZdezE4wCLeI=";
|
||||
};
|
||||
aarch64-linux = {
|
||||
cp310 = "sha256-6uB7P+1F9bBBqL+Xlc0m+tJGS+USbv1EfkSEkFoptnc=";
|
||||
cp311 = "sha256-6tqd2JzNpkOjxsLLpwFrWYmEMtEm4Qs4/tUtdBZTZPQ=";
|
||||
cp312 = "sha256-3Q2NhkHRQvr+bYPofTwZvVY30h40YI0/9prXHqPi9GI=";
|
||||
cp313 = "sha256-tMeGlojFGOkC97Yojt7CNlq00opGQpHm0KcEDH0Btfc=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
cp310 = "sha256-PkQb8qzX82jPRRMnUgZsXDuD2IzV+Fdi5wN3S7pPK20=";
|
||||
cp311 = "sha256-ns6VehOYX3u/QHf0/wIEMU1+malB+V3/Kha0U9U3bcM=";
|
||||
cp312 = "sha256-Z4TgduRBgiLvjuO2qL/rhn2Hl4A7Jbz8zjvzvFQUvvE=";
|
||||
cp313 = "sha256-svTw/tk2+vaI6H/9zJNWwDRRPAAlmi8ahYnjRfz728A=";
|
||||
cp310 = "sha256-AGKn+lY/QkZlsc3sD+6ccHCNqAfsxZFsSZJaIUOIl9A=";
|
||||
cp311 = "sha256-sTkjnzAUDpgve8X7HMJpSKCnbJgOujce/d4/sEXQp+Q=";
|
||||
cp312 = "sha256-z94CocsRRIF1ir/kC0uMMa/hmRUIhzciUUZiVnVpEcs=";
|
||||
cp313 = "sha256-E1xwySvTwwUEQckFV26HG4edykhmSSGMRSQaPsRXI5k=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
cp310 = "sha256-CL7EZ1drwDDYvQY4AE4bjgdViJKTSREpiKS9SShoTow=";
|
||||
cp311 = "sha256-T7n5v2L9XJLSLaIM0qrLSt4fsjAzdl+pJ08KDFC8QvY=";
|
||||
cp312 = "sha256-1tYS3lxjQbd2/HXt7uW2mLtK9+6Eov8wVSsyqebkp3I=";
|
||||
cp313 = "sha256-Li/iD6kFYuc2MNqf95MtPtZQfnMpHE2b31ZlN66d7d8=";
|
||||
cp310 = "sha256-sWTWr0IMejioMj+P83iLjFfO9GebNIg1ShI3GqwBh04=";
|
||||
cp311 = "sha256-YZsua4gNWvEm3x382qJzFO3UPSxtYxXgHR4xGDmr/+Q=";
|
||||
cp312 = "sha256-5oOYG1H/U0wJpIs6W2X8YYht49qKroc4I5WR2rK2fOU=";
|
||||
cp313 = "sha256-w9qWaV4/Y70O7K1tMOx89tAwmoc44xrCcJV4ErzBzYs=";
|
||||
};
|
||||
};
|
||||
in
|
||||
@@ -233,7 +226,6 @@ buildPythonPackage rec {
|
||||
platforms = [
|
||||
"aarch64-darwin"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"x86_64-linux"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -19,7 +19,7 @@ prefetch() {
|
||||
echo
|
||||
}
|
||||
|
||||
for system in "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"; do
|
||||
for system in "x86_64-linux" "aarch64-linux" "aarch64-darwin"; do
|
||||
echo "${system} = {" >>$outfile
|
||||
for python_version in "310" "311" "312" "313"; do
|
||||
prefetch "$python_version" "$system"
|
||||
|
||||
@@ -1,362 +1,362 @@
|
||||
{
|
||||
"attica": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/attica-6.18.0.tar.xz",
|
||||
"hash": "sha256-6ysr4zzINRLHevJVn8r3/FitGRq7gs9AsXsunoQA4zY="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/attica-6.19.0.tar.xz",
|
||||
"hash": "sha256-MIE++1d/dbh+7E8CMAqQbl85qN0sfnSIlYp//qqu4ag="
|
||||
},
|
||||
"baloo": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/baloo-6.18.0.tar.xz",
|
||||
"hash": "sha256-aAsB7Xx4m37w7o8U+v+vLovfh6VqJusqb5WkcuVjCQM="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/baloo-6.19.0.tar.xz",
|
||||
"hash": "sha256-rz1dhdTtIpY1ZPpsxVV9SJ8Xy6MNWDCLuoxMk9ToRog="
|
||||
},
|
||||
"bluez-qt": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/bluez-qt-6.18.0.tar.xz",
|
||||
"hash": "sha256-k0CEkHWnqj/p8h4tK4OJYsCuhO36FqS0zxf0AiMFzrM="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/bluez-qt-6.19.0.tar.xz",
|
||||
"hash": "sha256-JC2gUwckI/4jpnaz1NCvC29bBWYDPC9KqhT94farC6Q="
|
||||
},
|
||||
"breeze-icons": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/breeze-icons-6.18.0.tar.xz",
|
||||
"hash": "sha256-R5bE7mBZp3etjZVKRYToH99QR6lKeYj8N0BSxCe8C2A="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/breeze-icons-6.19.0.tar.xz",
|
||||
"hash": "sha256-LKyjXEgnH9xkGzKBKemUSK4f2rxEcmKpLkgFMh0iqkw="
|
||||
},
|
||||
"extra-cmake-modules": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/extra-cmake-modules-6.18.0.tar.xz",
|
||||
"hash": "sha256-stIiLP5azlAsYL2Kd6ebwCMPSM7oMmXIncwmGLlg4pM="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/extra-cmake-modules-6.19.0.tar.xz",
|
||||
"hash": "sha256-pPDB2BgfQ+mvS5tEaWx3dgtbydrlvbkh8JC85mTpyoQ="
|
||||
},
|
||||
"frameworkintegration": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/frameworkintegration-6.18.0.tar.xz",
|
||||
"hash": "sha256-zFM2+O0Z2gYfdm1IVNdunNQkrECCy0TftOfPE2rqtFQ="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/frameworkintegration-6.19.0.tar.xz",
|
||||
"hash": "sha256-+2vBKzQrZoEb1SgSRI2KZ+H+bg038cZsVBaIUhR+WaQ="
|
||||
},
|
||||
"kapidox": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kapidox-6.18.0.tar.xz",
|
||||
"hash": "sha256-2184y3MtbUutE0jiz3iS6MepAYurAMha3WMVB/S4Z38="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kapidox-6.19.0.tar.xz",
|
||||
"hash": "sha256-fQ6FrtCRz4xyWuT7llxAOolEOiaeU56jySskd/hSjFM="
|
||||
},
|
||||
"karchive": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/karchive-6.18.0.tar.xz",
|
||||
"hash": "sha256-+iT3A6p5nk/1ucwuSmKHRZEuv8yfDGu22SEG/54C4m8="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/karchive-6.19.0.tar.xz",
|
||||
"hash": "sha256-lEMy2ALQ4SjOvQh//VC3JtEANHlzwgN8YFHHLVRRKp4="
|
||||
},
|
||||
"kauth": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kauth-6.18.0.tar.xz",
|
||||
"hash": "sha256-jG/uaUguej389+rMqctqGR7F0bCeClOeH31ddtCEA+k="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kauth-6.19.0.tar.xz",
|
||||
"hash": "sha256-+GNjrrf5IjpCm2NW+qh9L9sazeTCdQs3mUMEtck3GqU="
|
||||
},
|
||||
"kbookmarks": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kbookmarks-6.18.0.tar.xz",
|
||||
"hash": "sha256-QahF/9nv+42ULQTXb8OliwvyPT/TauuiHImrnrD8T4U="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kbookmarks-6.19.0.tar.xz",
|
||||
"hash": "sha256-ej1/2/5Md4exoZQey/omH9RPp71NgnVnLg0iwqNQQ5A="
|
||||
},
|
||||
"kcalendarcore": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kcalendarcore-6.18.0.tar.xz",
|
||||
"hash": "sha256-TSMwrzXVbFnuafCPOEW6vumJbQABK8z7sUO9xXG8WOc="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kcalendarcore-6.19.0.tar.xz",
|
||||
"hash": "sha256-nmVjbDLNS8jL9mDE3YGwcyGX729ZP2ugr4pheIcItvw="
|
||||
},
|
||||
"kcmutils": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kcmutils-6.18.0.tar.xz",
|
||||
"hash": "sha256-YRTB7I63NzRhmpnklW3ORJgorzNsLNkdGb/rA+IhUo8="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kcmutils-6.19.0.tar.xz",
|
||||
"hash": "sha256-N2CkbM8ZbMUNDQsA1Ecb7HRo8Ta+V6GQNYvD5Dekj1M="
|
||||
},
|
||||
"kcodecs": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kcodecs-6.18.0.tar.xz",
|
||||
"hash": "sha256-JH7amt5QJpkGLHuqynu5NpGjCPICwWWVRlKHXr53dCY="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kcodecs-6.19.0.tar.xz",
|
||||
"hash": "sha256-OmHCaLy8Tzr0FuLPbTCokaxwNUyXV1ifup7g6ulkrtE="
|
||||
},
|
||||
"kcolorscheme": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kcolorscheme-6.18.0.tar.xz",
|
||||
"hash": "sha256-FOmedMxjZkCsjXBfKHjXLQN5//Zx51wPE4MCSJiY1lE="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kcolorscheme-6.19.0.tar.xz",
|
||||
"hash": "sha256-wnjPCG1Emdzr06oOYZBxZXjcBuyAxj2V3msMQEV2U/A="
|
||||
},
|
||||
"kcompletion": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kcompletion-6.18.0.tar.xz",
|
||||
"hash": "sha256-bQaIH/Ls5MKd9cPL43AMteNCUGRoamZ+hPBvKlcyocU="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kcompletion-6.19.0.tar.xz",
|
||||
"hash": "sha256-i3HW6Is446rNJZGAW/KtnBK3vwLX+b3kDYr4apBu3UA="
|
||||
},
|
||||
"kconfig": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kconfig-6.18.0.tar.xz",
|
||||
"hash": "sha256-UXy/Z0ffkonW/Ohgpz1J5ZNUaFM0rkaOzVPxBn2dYYs="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kconfig-6.19.0.tar.xz",
|
||||
"hash": "sha256-1P++zQaQgHEiN0kn8Zbra2XzdT8ipqFhCeBKp+mLMus="
|
||||
},
|
||||
"kconfigwidgets": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kconfigwidgets-6.18.0.tar.xz",
|
||||
"hash": "sha256-qlp75ieKGXM/d+akNfhMPnGSayjxrDdmMTd4iQ1kCBM="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kconfigwidgets-6.19.0.tar.xz",
|
||||
"hash": "sha256-HXhbaDB8BUphM7jk5GK1afAux624qv4blfSVMbmof3w="
|
||||
},
|
||||
"kcontacts": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kcontacts-6.18.0.tar.xz",
|
||||
"hash": "sha256-pTLEfDwsgYKyrp54P/UhMRiWJRwqHdvjZLNJH5TBALY="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kcontacts-6.19.0.tar.xz",
|
||||
"hash": "sha256-ydAy89mIBQ40SbAJ2WHxN/+dgcwSj2O67KzLKnGPWUk="
|
||||
},
|
||||
"kcoreaddons": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kcoreaddons-6.18.0.tar.xz",
|
||||
"hash": "sha256-4dA8/H1FmH7DHzEQT0cygSmA4AOL6rIiYz2hEI629C8="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kcoreaddons-6.19.0.tar.xz",
|
||||
"hash": "sha256-flMza5BpC3C3GvI6sGlkx1yd6+o8182gl40yulhuk5o="
|
||||
},
|
||||
"kcrash": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kcrash-6.18.0.tar.xz",
|
||||
"hash": "sha256-pmKTghsVH1dfz7WYSFeHSeJIxbqi8mKshnJdD2SzJOA="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kcrash-6.19.0.tar.xz",
|
||||
"hash": "sha256-f+sBC3WgfFElsvNq2Jie7NtqXUHeFCxVLXHhzsQxYt0="
|
||||
},
|
||||
"kdav": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kdav-6.18.0.tar.xz",
|
||||
"hash": "sha256-w/BI18qfCUZHu2h/HqIYugC/OrOwej0au8KdrWd8VSY="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kdav-6.19.0.tar.xz",
|
||||
"hash": "sha256-d1O5qH2bWpn/wKjFnpjb1mrK3lcp1a4vCm0/vmbqCpI="
|
||||
},
|
||||
"kdbusaddons": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kdbusaddons-6.18.0.tar.xz",
|
||||
"hash": "sha256-3Olc0Ubhi0AMTfMeqMm7uo+RnjKaUtwaGWNRhKyF5Jo="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kdbusaddons-6.19.0.tar.xz",
|
||||
"hash": "sha256-BfSupUzov55i69SHkems66XLxarxlaMs4kl/rCtkqg0="
|
||||
},
|
||||
"kdeclarative": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kdeclarative-6.18.0.tar.xz",
|
||||
"hash": "sha256-3EKnTGQoHmeY0HzZ7VMm9vPYIkfy4p58qYVaNss6Hmw="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kdeclarative-6.19.0.tar.xz",
|
||||
"hash": "sha256-DHGpoI9EeyD6Br6DbQWbLNR5HpcuJ52ZRk4t0Nv/epA="
|
||||
},
|
||||
"kded": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kded-6.18.0.tar.xz",
|
||||
"hash": "sha256-yQ4+5r+ZHzIKxCiywSavv+ETCnTu5nJAWBBYgwcuWII="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kded-6.19.0.tar.xz",
|
||||
"hash": "sha256-nFoEInv2PzbIeLfmklR2yMgFrL21Q7imwUw13kagvAI="
|
||||
},
|
||||
"kdesu": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kdesu-6.18.0.tar.xz",
|
||||
"hash": "sha256-MgOwRxE88IvKOYHt5lfkW0F6fNDyh5u0+ekBrU5ZRhY="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kdesu-6.19.0.tar.xz",
|
||||
"hash": "sha256-Avku35BqOXsFVU/0vWcc1/WsbCzvVnMlQaLCfMA9IJ8="
|
||||
},
|
||||
"kdnssd": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kdnssd-6.18.0.tar.xz",
|
||||
"hash": "sha256-xI8ogdlmTA7hK3CRxWy7HpWafpYM8tUsbIfm/KrxPH8="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kdnssd-6.19.0.tar.xz",
|
||||
"hash": "sha256-mk6eZTxmcLRoFRbOrePSZk1Xf15vAXPXu5u+XdAJwnE="
|
||||
},
|
||||
"kdoctools": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kdoctools-6.18.0.tar.xz",
|
||||
"hash": "sha256-5z3bLfsbBh4C03hh71jC1Y2vGBfhzlQ3N/96vyhLyYQ="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kdoctools-6.19.0.tar.xz",
|
||||
"hash": "sha256-wgSLKXkkdUD5uiL9fG83LOhpaZw6PoGpevL6L3M8dLw="
|
||||
},
|
||||
"kfilemetadata": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kfilemetadata-6.18.0.tar.xz",
|
||||
"hash": "sha256-BcSwlViFtG/tbcI5mHYP2uWVmalgFZ7ET3eddJigiDQ="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kfilemetadata-6.19.0.tar.xz",
|
||||
"hash": "sha256-XUZSJYJqBmByNPKaZESIMWftKpIccRXCLjCDQyEVQcE="
|
||||
},
|
||||
"kglobalaccel": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kglobalaccel-6.18.0.tar.xz",
|
||||
"hash": "sha256-y5p7DukzZWIHlY+ylb8U+/vIKNXZaPYB/SitaHf9tDg="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kglobalaccel-6.19.0.tar.xz",
|
||||
"hash": "sha256-G751AmWDGXZ8BIA56NrCvRe8EgQi2OWO9vIrpjhArkk="
|
||||
},
|
||||
"kguiaddons": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kguiaddons-6.18.0.tar.xz",
|
||||
"hash": "sha256-LiuHKALRsnsYVRL/qYlZBueqNDjL8TeEbM/4IWu+xGY="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kguiaddons-6.19.0.tar.xz",
|
||||
"hash": "sha256-rENBbFunkMiYzTuAbGur5FtB33LsxlpDKMwaUyyooeY="
|
||||
},
|
||||
"kholidays": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kholidays-6.18.0.tar.xz",
|
||||
"hash": "sha256-SdyJLZjuSTppbdcw9aDhYktGyn10aih38FcAer6fIVE="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kholidays-6.19.0.tar.xz",
|
||||
"hash": "sha256-eHYRbcAi/nIilDBc1Y3eU/0hvNZkGIrSas7tY+Vd3IY="
|
||||
},
|
||||
"ki18n": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/ki18n-6.18.0.tar.xz",
|
||||
"hash": "sha256-0Mv780J8A2jaoj+faLPLWwOtN7aCBZFJGz6ooKKL6mE="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/ki18n-6.19.0.tar.xz",
|
||||
"hash": "sha256-YI/yY0zRlzaoCRx1DHGyPbCzP9gegvufxLzOdnEihKY="
|
||||
},
|
||||
"kiconthemes": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kiconthemes-6.18.0.tar.xz",
|
||||
"hash": "sha256-uXFGCUn6/Jjnrik/NWNcL9YQGm/Eay9PzmS7IUQOzgQ="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kiconthemes-6.19.0.tar.xz",
|
||||
"hash": "sha256-sLZzcbphh0l2qE/v5ZLnhvx/+5xUVDkUq8IKMiQb4uk="
|
||||
},
|
||||
"kidletime": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kidletime-6.18.0.tar.xz",
|
||||
"hash": "sha256-RK/IhUOyPFGetfVefFEgzNbU6y6qpb7iTj+15KaV2rc="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kidletime-6.19.0.tar.xz",
|
||||
"hash": "sha256-34LDhv743JjqWXb/7x2hFTnBkU0ht3POYvRTO1rRb2U="
|
||||
},
|
||||
"kimageformats": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kimageformats-6.18.0.tar.xz",
|
||||
"hash": "sha256-nTc+9TYqqNcVQc7CiVQVyVypFGJtyw3WsM7vSR3LrkY="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kimageformats-6.19.0.tar.xz",
|
||||
"hash": "sha256-/IJTJqprjBMhlH/1I9PQBu70xl/eQPN5xpANBpZ/rhw="
|
||||
},
|
||||
"kio": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kio-6.18.0.tar.xz",
|
||||
"hash": "sha256-qXrOwUB+HwDKdOY5ZOdgiCjUQxv+CuvpAQwpa7Y4e9o="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kio-6.19.0.tar.xz",
|
||||
"hash": "sha256-Bt5M5ckarJGhJ8UL2cqtb73vJsbIYWTtKKVGqOTPBWc="
|
||||
},
|
||||
"kirigami": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kirigami-6.18.0.tar.xz",
|
||||
"hash": "sha256-4FdL9fUwp82Y4DQkmGgfQ3S+/xCOdCYgY7EF4cl3+GY="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kirigami-6.19.0.tar.xz",
|
||||
"hash": "sha256-jGaF3eVfABzGIbOMYUhtDp4u9/sdUCyl3QSREiKep8w="
|
||||
},
|
||||
"kitemmodels": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kitemmodels-6.18.0.tar.xz",
|
||||
"hash": "sha256-iHZTsVca0K/UuDatJFGkKwdlfQ7t4aJijpxpECziPeE="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kitemmodels-6.19.0.tar.xz",
|
||||
"hash": "sha256-ludKExANAmasMb/RUnkBY38r9Na8fUakl+bckpG9uY4="
|
||||
},
|
||||
"kitemviews": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kitemviews-6.18.0.tar.xz",
|
||||
"hash": "sha256-90wD4uw2cjjsOVsfJDiHiZnCvj4ptBtr1KPM0ERA4po="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kitemviews-6.19.0.tar.xz",
|
||||
"hash": "sha256-1YZVEu7jOZfpe3ZqysyzIja5Pg+BoaeRIGXMfAKz8lI="
|
||||
},
|
||||
"kjobwidgets": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kjobwidgets-6.18.0.tar.xz",
|
||||
"hash": "sha256-5zn/JUxPo0wN4Aqi2d7uE4E12ZzQtG712yU8GMArzpg="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kjobwidgets-6.19.0.tar.xz",
|
||||
"hash": "sha256-29STbQiZDNdnSWkiqhDor5iu7rofkjOpNwFWTgMurHU="
|
||||
},
|
||||
"knewstuff": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/knewstuff-6.18.0.tar.xz",
|
||||
"hash": "sha256-fnIXNav34vb4wPQjJPiFvK0RFMMXrHm/q8cF+4AY26U="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/knewstuff-6.19.0.tar.xz",
|
||||
"hash": "sha256-cJD7gvBPpjS6mK0VDIgSPIDBF9Wu2FWWM9gx4chZGv8="
|
||||
},
|
||||
"knotifications": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/knotifications-6.18.0.tar.xz",
|
||||
"hash": "sha256-WTywDJ4EAYR3uhRgMfbUb0B5xjfGpGYwVmcS2EK586g="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/knotifications-6.19.0.tar.xz",
|
||||
"hash": "sha256-hvJkXyvENEDxGQmb8lqlMp6EV3YahV5L1fCKX3gJsrY="
|
||||
},
|
||||
"knotifyconfig": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/knotifyconfig-6.18.0.tar.xz",
|
||||
"hash": "sha256-moF/tOGDO+AUNwutxr2/Rk8aoE4FQBb8O8r9BToZrag="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/knotifyconfig-6.19.0.tar.xz",
|
||||
"hash": "sha256-zRkzumhjATnNG/RW8IWzPgw1T9Dx8OTEaCKwnrXFwx8="
|
||||
},
|
||||
"kpackage": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kpackage-6.18.0.tar.xz",
|
||||
"hash": "sha256-G8LkO/IjncIOg2twh3Yx4QMFf7FKlGcpDHb6Rf8Chw4="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kpackage-6.19.0.tar.xz",
|
||||
"hash": "sha256-muRBkwlV5eu8o2JDvzJmOLe628dMVvickGwIHAS3AJ0="
|
||||
},
|
||||
"kparts": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kparts-6.18.0.tar.xz",
|
||||
"hash": "sha256-hG5SLmr/KiGQZKUum67v37y+px2tsYELnFjLnEGCFgQ="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kparts-6.19.0.tar.xz",
|
||||
"hash": "sha256-zdw7ak/Ao/QfpXkZl8nd9MqYhVg5vkZevl0MPO/jUNg="
|
||||
},
|
||||
"kpeople": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kpeople-6.18.0.tar.xz",
|
||||
"hash": "sha256-Cbop7+thLu9OVIFPH5Hi0HyJQubPLCMXbZ8wbWhUTSs="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kpeople-6.19.0.tar.xz",
|
||||
"hash": "sha256-VA/GQ5l8ShxNB+bDxbsrxeEfWtYQLglX+UNCKqki9zE="
|
||||
},
|
||||
"kplotting": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kplotting-6.18.0.tar.xz",
|
||||
"hash": "sha256-yf25n9HHX1iOLxXvhDM/6t8yeoeMJDJOREk9A+WT68k="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kplotting-6.19.0.tar.xz",
|
||||
"hash": "sha256-UgM0fVQ5oz0cLDMcWuIfvDKUBKp8AWkrLBxIuVCNgpI="
|
||||
},
|
||||
"kpty": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kpty-6.18.0.tar.xz",
|
||||
"hash": "sha256-P4AGOPzA2+oIEJMKHy3s+muJS7AHMv+GRhgsff0qx20="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kpty-6.19.0.tar.xz",
|
||||
"hash": "sha256-eFRMFs7Mfbz/0DNb+UXuyBAxFXhuEVgjVIGsFS9LtAw="
|
||||
},
|
||||
"kquickcharts": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kquickcharts-6.18.0.tar.xz",
|
||||
"hash": "sha256-lB6tN40C4FgbcGY5x89HQzmBj2zUjZGGRngvcbx/dMs="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kquickcharts-6.19.0.tar.xz",
|
||||
"hash": "sha256-UPBHDpYflfq3XLSuiIvdQjm0YvGH1yWkdu8boM5q9DU="
|
||||
},
|
||||
"krunner": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/krunner-6.18.0.tar.xz",
|
||||
"hash": "sha256-aaILTlVNh2PvSlKXjkYFa1mO+47FhKx75b8GyjGNtRw="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/krunner-6.19.0.tar.xz",
|
||||
"hash": "sha256-1ZyhpxQlKb3KKPU53Hs3hPl1vmizbGnQw+aDWWbsMqs="
|
||||
},
|
||||
"kservice": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kservice-6.18.0.tar.xz",
|
||||
"hash": "sha256-0IrKdNzFTaKd0re8QE7Z5uxoisx3g5tLj7w3K16jULg="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kservice-6.19.0.tar.xz",
|
||||
"hash": "sha256-gV4IST5ruQ+C6Scmr/eL3PE1ipQpcvx1ES6Zy4QJYb0="
|
||||
},
|
||||
"kstatusnotifieritem": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kstatusnotifieritem-6.18.0.tar.xz",
|
||||
"hash": "sha256-14qiDhhY9wBHjuzttJcUFg1eBLSg0Xe8pDVaoaD31zA="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kstatusnotifieritem-6.19.0.tar.xz",
|
||||
"hash": "sha256-XkDLPu6a1WldUEx5BHUiNgHoVpz+X7w3F0gNovNVaUk="
|
||||
},
|
||||
"ksvg": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/ksvg-6.18.0.tar.xz",
|
||||
"hash": "sha256-DqsrpTKQa2Eq/uL7+oAqiNf0Vw1MMilyy23r0yAHXBA="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/ksvg-6.19.0.tar.xz",
|
||||
"hash": "sha256-kqLLxGBKPqhtm4rZIa3/k2RhVgF7yPpcdZWO8yS16e8="
|
||||
},
|
||||
"ktexteditor": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/ktexteditor-6.18.0.tar.xz",
|
||||
"hash": "sha256-T4q7BDagxspQH3vjkZdXVssH+OQD06/n7C8C0Sv3tRY="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/ktexteditor-6.19.0.tar.xz",
|
||||
"hash": "sha256-8jgpEP4y6Sv9B9706PU9WNhXJRlKJEEj2TirDEKoB/E="
|
||||
},
|
||||
"ktexttemplate": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/ktexttemplate-6.18.0.tar.xz",
|
||||
"hash": "sha256-y7ZQXDWo7cDm/vt9JP3oJ17v3Jc1QHKXrOAqfEDzfgY="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/ktexttemplate-6.19.0.tar.xz",
|
||||
"hash": "sha256-QIc1OsION2o9zi70m8YviFbrO3kzcH+vYrsxsXnBHIM="
|
||||
},
|
||||
"ktextwidgets": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/ktextwidgets-6.18.0.tar.xz",
|
||||
"hash": "sha256-mvsTaAbouVw0IR4drmbkzxTXqsKrJE1SZMqsToI9jt8="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/ktextwidgets-6.19.0.tar.xz",
|
||||
"hash": "sha256-2fpJ7pXPAzIdKy2JvWlSc0Mjt1otmDuXcC0UvOSAnxY="
|
||||
},
|
||||
"kunitconversion": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kunitconversion-6.18.0.tar.xz",
|
||||
"hash": "sha256-I6Sl2ZRmb52ypaPCUQOPLvHZeEEZUJJXAvt5BgztMcg="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kunitconversion-6.19.0.tar.xz",
|
||||
"hash": "sha256-1PDjnidZbGVQ8/xy+2ew1JZqz9fXAqARoPykILb5s5M="
|
||||
},
|
||||
"kuserfeedback": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kuserfeedback-6.18.0.tar.xz",
|
||||
"hash": "sha256-tiOrUaW2krGzhdlAy0wArgENzdjCotbiMVn/gVuPHlI="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kuserfeedback-6.19.0.tar.xz",
|
||||
"hash": "sha256-Z2jnP9IaKQ+Si41XFPYjHKXfinLfYl9DrI96trtxH58="
|
||||
},
|
||||
"kwallet": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kwallet-6.18.0.tar.xz",
|
||||
"hash": "sha256-yGMOGygLmu5E8zZzAvzjgTcKYRVX8ZQZCLkobjiR0WM="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kwallet-6.19.0.tar.xz",
|
||||
"hash": "sha256-HeSj9gsMFw2NnQR27Y4M/fN/ZxG/TlB6j37EJo6txK0="
|
||||
},
|
||||
"kwidgetsaddons": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kwidgetsaddons-6.18.0.tar.xz",
|
||||
"hash": "sha256-DC+wB0T/2ey3Ux7lp5wdtLQGdT8lBWUSLzrdk88gCvs="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kwidgetsaddons-6.19.0.tar.xz",
|
||||
"hash": "sha256-YiqW9pf4O4zw4qvocLNkivzhAVDL6/tGyzdpt3pphno="
|
||||
},
|
||||
"kwindowsystem": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kwindowsystem-6.18.0.tar.xz",
|
||||
"hash": "sha256-oKBGA5oRuuus2W2DbldluYFCb2DSzqn/mpm6jb5WF44="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kwindowsystem-6.19.0.tar.xz",
|
||||
"hash": "sha256-fvhwzGw3/JjkZVwmfNoGmygllkBSTRCI1ENDUIJ+Wdo="
|
||||
},
|
||||
"kxmlgui": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/kxmlgui-6.18.0.tar.xz",
|
||||
"hash": "sha256-bV4kDINWaEGawDZmb6TJnjR5eVxpiBAHY/gQyog1xAE="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/kxmlgui-6.19.0.tar.xz",
|
||||
"hash": "sha256-KcKdxxwWaK7xjc0KjIZXOfXcwuL1zqZr7HXSQIB/2e4="
|
||||
},
|
||||
"modemmanager-qt": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/modemmanager-qt-6.18.0.tar.xz",
|
||||
"hash": "sha256-yMDBxtbIFe+hG44xu7P16AFHidfgur+hV0KAvmeR0BM="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/modemmanager-qt-6.19.0.tar.xz",
|
||||
"hash": "sha256-NnFIx/fE7Ikjyvy6StDcUAQ0yV25Y3VXBKJSHMbC8NA="
|
||||
},
|
||||
"networkmanager-qt": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/networkmanager-qt-6.18.0.tar.xz",
|
||||
"hash": "sha256-SSg2p0oDukP6z1LoJ0KPiI8T1uK7g3SBmGlwcoCgMQw="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/networkmanager-qt-6.19.0.tar.xz",
|
||||
"hash": "sha256-g7oQYAgNwZPGKDdCHhy3llAKuzkxtQWugnXEQGdK/8Q="
|
||||
},
|
||||
"prison": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/prison-6.18.0.tar.xz",
|
||||
"hash": "sha256-OKTxVLObTS5LhtFvhIRgOdJ71wyybs1Ii1kfYS3UFB4="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/prison-6.19.0.tar.xz",
|
||||
"hash": "sha256-v9Yj+V4AryXsSZZmeQEMQR74eYt8GjHCWEhMMQZ9U1Y="
|
||||
},
|
||||
"purpose": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/purpose-6.18.0.tar.xz",
|
||||
"hash": "sha256-pCjk9JVlgkCJngLxW3qSMOPDMGlyO0Phc0wh+hojuCU="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/purpose-6.19.0.tar.xz",
|
||||
"hash": "sha256-eZ/z5phyQA0vpuXiyR/tZu1r0NepFj78AE7uC/bQk6I="
|
||||
},
|
||||
"qqc2-desktop-style": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/qqc2-desktop-style-6.18.0.tar.xz",
|
||||
"hash": "sha256-kaYOD++ilKM38lGcd/8kBbhu/5nz6g6Pw+NCZe9GcPI="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/qqc2-desktop-style-6.19.0.tar.xz",
|
||||
"hash": "sha256-aPm5P26LD7okTwItg2fvRzVCK+dG5nUnZKs4h+BfhTU="
|
||||
},
|
||||
"solid": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/solid-6.18.0.tar.xz",
|
||||
"hash": "sha256-d2jB2n7jSp43z7a1tyfmkMgBNMpCS1Ji5APkjM+BLd8="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/solid-6.19.0.tar.xz",
|
||||
"hash": "sha256-OsmpiyAe7eGuB4KxoyCidVdnK+jTxcgbukRnUXk8o8s="
|
||||
},
|
||||
"sonnet": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/sonnet-6.18.0.tar.xz",
|
||||
"hash": "sha256-LZTJV6PF8iMmU614KykeK5We6m3Kg8wJyuYhvJg0qyU="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/sonnet-6.19.0.tar.xz",
|
||||
"hash": "sha256-SxAqNZxdoXloYtvCT7OVwSIIR/BYT6epdOwRjWRKz6A="
|
||||
},
|
||||
"syndication": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/syndication-6.18.0.tar.xz",
|
||||
"hash": "sha256-oC92+KlCKF+KZCM/sJ9k0o9R7vnpb0td19E9TIOTO5Q="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/syndication-6.19.0.tar.xz",
|
||||
"hash": "sha256-FhEQdE1bx7mw+GBo2FAY2mEpyMB6pHScmhi963XBcWY="
|
||||
},
|
||||
"syntax-highlighting": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/syntax-highlighting-6.18.0.tar.xz",
|
||||
"hash": "sha256-i+gFciGpgsjR/kL5VFT6yWEOtRl1ImxmUmiSk80zW/0="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/syntax-highlighting-6.19.0.tar.xz",
|
||||
"hash": "sha256-E6cuibrgr5NqLVSwJHPpbepWDv/EsD/UPWnkWCwdvRk="
|
||||
},
|
||||
"threadweaver": {
|
||||
"version": "6.18.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.18/threadweaver-6.18.0.tar.xz",
|
||||
"hash": "sha256-puf0yQubkwTvZ6D/+t13ZVdXxl977gDDWziu/IaeMng="
|
||||
"version": "6.19.0",
|
||||
"url": "mirror://kde/stable/frameworks/6.19/threadweaver-6.19.0.tar.xz",
|
||||
"hash": "sha256-2NTQtuYrBnqM5P7Xrv7tAu1DpD+X8IXbO67fkhAHDaE="
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kzones";
|
||||
version = "0.9";
|
||||
version = "0.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gerritdevriese";
|
||||
repo = "kzones";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-xqTQiL+7T6p+Y86eC5InAk6waYoM82iFoLflkN6/dG8=";
|
||||
hash = "sha256-RhdSzDF7F4CL1zGP8OPd1ywgyE2CMIzMqaMv1M+RMlA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6812,6 +6812,8 @@ with pkgs;
|
||||
|
||||
premake = premake4;
|
||||
|
||||
pycobertura = with python3Packages; toPythonApplication pycobertura;
|
||||
|
||||
pycritty = with python3Packages; toPythonApplication pycritty;
|
||||
|
||||
qtcreator = qt6Packages.callPackage ../development/tools/qtcreator {
|
||||
|
||||
@@ -12766,6 +12766,8 @@ self: super: with self; {
|
||||
|
||||
pycmus = callPackage ../development/python-modules/pycmus { };
|
||||
|
||||
pycobertura = callPackage ../development/python-modules/pycobertura { };
|
||||
|
||||
pycocotools = callPackage ../development/python-modules/pycocotools { };
|
||||
|
||||
pycodestyle = callPackage ../development/python-modules/pycodestyle { };
|
||||
@@ -12912,6 +12914,8 @@ self: super: with self; {
|
||||
|
||||
pydmd = callPackage ../development/python-modules/pydmd { };
|
||||
|
||||
pydo = callPackage ../development/python-modules/pydo { };
|
||||
|
||||
pydocstyle = callPackage ../development/python-modules/pydocstyle { };
|
||||
|
||||
pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
|
||||
|
||||
Reference in New Issue
Block a user