Merge master into haskell-updates
This commit is contained in:
commit
559056b7ce
140 changed files with 3069 additions and 1403 deletions
|
@ -8,7 +8,7 @@ In the Nixpkgs tree, Ruby packages can be found throughout, depending on what th
|
|||
|
||||
There are two main approaches for using Ruby with gems. One is to use a specifically locked `Gemfile` for an application that has very strict dependencies. The other is to depend on the common gems, which we'll explain further down, and rely on them being updated regularly.
|
||||
|
||||
The interpreters have common attributes, namely `gems`, and `withPackages`. So you can refer to `ruby.gems.nokogiri`, or `ruby_2_6.gems.nokogiri` to get the Nokogiri gem already compiled and ready to use.
|
||||
The interpreters have common attributes, namely `gems`, and `withPackages`. So you can refer to `ruby.gems.nokogiri`, or `ruby_2_7.gems.nokogiri` to get the Nokogiri gem already compiled and ready to use.
|
||||
|
||||
Since not all gems have executables like `nokogiri`, it's usually more convenient to use the `withPackages` function like this: `ruby.withPackages (p: with p; [ nokogiri ])`. This will also make sure that the Ruby in your environment will be able to find the gem and it can be used in your Ruby code (for example via `ruby` or `irb` executables) via `require "nokogiri"` as usual.
|
||||
|
||||
|
|
|
@ -1138,6 +1138,14 @@ Superuser created successfully.
|
|||
<literal>coursier</literal>, you can create a shell alias.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>services.mosquitto</literal> module has been
|
||||
rewritten to support multiple listeners and per-listener
|
||||
configuration. Module configurations from previous releases
|
||||
will no longer work and must be updated.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section xml:id="sec-release-21.11-notable-changes">
|
||||
|
|
|
@ -351,6 +351,9 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- The `coursier` package's binary was renamed from `coursier` to `cs`. Completions which haven't worked for a while should now work with the renamed binary. To keep using `coursier`, you can create a shell alias.
|
||||
|
||||
- The `services.mosquitto` module has been rewritten to support multiple listeners and per-listener configuration.
|
||||
Module configurations from previous releases will no longer work and must be updated.
|
||||
|
||||
## Other Notable Changes {#sec-release-21.11-notable-changes}
|
||||
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ in
|
|||
{ console.keyMap = with config.services.xserver;
|
||||
mkIf cfg.useXkbConfig
|
||||
(pkgs.runCommand "xkb-console-keymap" { preferLocalBuild = true; } ''
|
||||
'${pkgs.ckbcomp}/bin/ckbcomp' \
|
||||
'${pkgs.buildPackages.ckbcomp}/bin/ckbcomp' \
|
||||
${optionalString (config.environment.sessionVariables ? XKB_CONFIG_ROOT)
|
||||
"-I${config.environment.sessionVariables.XKB_CONFIG_ROOT}"
|
||||
} \
|
||||
|
|
|
@ -4,7 +4,9 @@
|
|||
|
||||
with lib;
|
||||
|
||||
{
|
||||
let cfg = config.programs.file-roller;
|
||||
|
||||
in {
|
||||
|
||||
# Added 2019-08-09
|
||||
imports = [
|
||||
|
@ -21,6 +23,13 @@ with lib;
|
|||
|
||||
enable = mkEnableOption "File Roller, an archive manager for GNOME";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.gnome.file-roller;
|
||||
defaultText = literalExpression "pkgs.gnome.file-roller";
|
||||
description = "File Roller derivation to use.";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -28,11 +37,11 @@ with lib;
|
|||
|
||||
###### implementation
|
||||
|
||||
config = mkIf config.programs.file-roller.enable {
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = [ pkgs.gnome.file-roller ];
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
services.dbus.packages = [ pkgs.gnome.file-roller ];
|
||||
services.dbus.packages = [ cfg.package ];
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -42,12 +42,16 @@ let
|
|||
${cfg.postInit}
|
||||
fi
|
||||
'' + ''
|
||||
borg create $extraArgs \
|
||||
--compression ${cfg.compression} \
|
||||
--exclude-from ${mkExcludeFile cfg} \
|
||||
$extraCreateArgs \
|
||||
"::$archiveName$archiveSuffix" \
|
||||
${escapeShellArgs cfg.paths}
|
||||
(
|
||||
set -o pipefail
|
||||
${optionalString (cfg.dumpCommand != null) ''${escapeShellArg cfg.dumpCommand} | \''}
|
||||
borg create $extraArgs \
|
||||
--compression ${cfg.compression} \
|
||||
--exclude-from ${mkExcludeFile cfg} \
|
||||
$extraCreateArgs \
|
||||
"::$archiveName$archiveSuffix" \
|
||||
${if cfg.paths == null then "-" else escapeShellArgs cfg.paths}
|
||||
)
|
||||
'' + optionalString cfg.appendFailedSuffix ''
|
||||
borg rename $extraArgs \
|
||||
"::$archiveName$archiveSuffix" "$archiveName"
|
||||
|
@ -182,6 +186,14 @@ let
|
|||
+ " without at least one public key";
|
||||
};
|
||||
|
||||
mkSourceAssertions = name: cfg: {
|
||||
assertion = count isNull [ cfg.dumpCommand cfg.paths ] == 1;
|
||||
message = ''
|
||||
Exactly one of borgbackup.jobs.${name}.paths or borgbackup.jobs.${name}.dumpCommand
|
||||
must be set.
|
||||
'';
|
||||
};
|
||||
|
||||
mkRemovableDeviceAssertions = name: cfg: {
|
||||
assertion = !(isLocalPath cfg.repo) -> !cfg.removableDevice;
|
||||
message = ''
|
||||
|
@ -240,11 +252,25 @@ in {
|
|||
options = {
|
||||
|
||||
paths = mkOption {
|
||||
type = with types; coercedTo str lib.singleton (listOf str);
|
||||
description = "Path(s) to back up.";
|
||||
type = with types; nullOr (coercedTo str lib.singleton (listOf str));
|
||||
default = null;
|
||||
description = ''
|
||||
Path(s) to back up.
|
||||
Mutually exclusive with <option>dumpCommand</option>.
|
||||
'';
|
||||
example = "/home/user";
|
||||
};
|
||||
|
||||
dumpCommand = mkOption {
|
||||
type = with types; nullOr path;
|
||||
default = null;
|
||||
description = ''
|
||||
Backup the stdout of this program instead of filesystem paths.
|
||||
Mutually exclusive with <option>paths</option>.
|
||||
'';
|
||||
example = "/path/to/createZFSsend.sh";
|
||||
};
|
||||
|
||||
repo = mkOption {
|
||||
type = types.str;
|
||||
description = "Remote or local repository to back up to.";
|
||||
|
@ -657,6 +683,7 @@ in {
|
|||
assertions =
|
||||
mapAttrsToList mkPassAssertion jobs
|
||||
++ mapAttrsToList mkKeysAssertion repos
|
||||
++ mapAttrsToList mkSourceAssertions jobs
|
||||
++ mapAttrsToList mkRemovableDeviceAssertions jobs;
|
||||
|
||||
system.activationScripts = mapAttrs' mkActivationScript jobs;
|
||||
|
|
|
@ -5,35 +5,529 @@ with lib;
|
|||
let
|
||||
cfg = config.services.mosquitto;
|
||||
|
||||
listenerConf = optionalString cfg.ssl.enable ''
|
||||
listener ${toString cfg.ssl.port} ${cfg.ssl.host}
|
||||
cafile ${cfg.ssl.cafile}
|
||||
certfile ${cfg.ssl.certfile}
|
||||
keyfile ${cfg.ssl.keyfile}
|
||||
'';
|
||||
# note that mosquitto config parsing is very simplistic as of may 2021.
|
||||
# often times they'll e.g. strtok() a line, check the first two tokens, and ignore the rest.
|
||||
# there's no escaping available either, so we have to prevent any being necessary.
|
||||
str = types.strMatching "[^\r\n]*" // {
|
||||
description = "single-line string";
|
||||
};
|
||||
path = types.addCheck types.path (p: str.check "${p}");
|
||||
configKey = types.strMatching "[^\r\n\t ]+";
|
||||
optionType = with types; oneOf [ str path bool int ] // {
|
||||
description = "string, path, bool, or integer";
|
||||
};
|
||||
optionToString = v:
|
||||
if isBool v then boolToString v
|
||||
else if path.check v then "${v}"
|
||||
else toString v;
|
||||
|
||||
passwordConf = optionalString cfg.checkPasswords ''
|
||||
password_file ${cfg.dataDir}/passwd
|
||||
'';
|
||||
assertKeysValid = prefix: valid: config:
|
||||
mapAttrsToList
|
||||
(n: _: {
|
||||
assertion = valid ? ${n};
|
||||
message = "Invalid config key ${prefix}.${n}.";
|
||||
})
|
||||
config;
|
||||
|
||||
mosquittoConf = pkgs.writeText "mosquitto.conf" ''
|
||||
acl_file ${aclFile}
|
||||
persistence true
|
||||
allow_anonymous ${boolToString cfg.allowAnonymous}
|
||||
listener ${toString cfg.port} ${cfg.host}
|
||||
${passwordConf}
|
||||
${listenerConf}
|
||||
${cfg.extraConf}
|
||||
'';
|
||||
formatFreeform = { prefix ? "" }: mapAttrsToList (n: v: "${prefix}${n} ${optionToString v}");
|
||||
|
||||
userAcl = (concatStringsSep "\n\n" (mapAttrsToList (n: c:
|
||||
"user ${n}\n" + (concatStringsSep "\n" c.acl)) cfg.users
|
||||
));
|
||||
userOptions = with types; submodule {
|
||||
options = {
|
||||
password = mkOption {
|
||||
type = uniq (nullOr str);
|
||||
default = null;
|
||||
description = ''
|
||||
Specifies the (clear text) password for the MQTT User.
|
||||
'';
|
||||
};
|
||||
|
||||
aclFile = pkgs.writeText "mosquitto.acl" ''
|
||||
${cfg.aclExtraConf}
|
||||
${userAcl}
|
||||
'';
|
||||
passwordFile = mkOption {
|
||||
type = uniq (nullOr types.path);
|
||||
example = "/path/to/file";
|
||||
default = null;
|
||||
description = ''
|
||||
Specifies the path to a file containing the
|
||||
clear text password for the MQTT user.
|
||||
'';
|
||||
};
|
||||
|
||||
hashedPassword = mkOption {
|
||||
type = uniq (nullOr str);
|
||||
default = null;
|
||||
description = ''
|
||||
Specifies the hashed password for the MQTT User.
|
||||
To generate hashed password install <literal>mosquitto</literal>
|
||||
package and use <literal>mosquitto_passwd</literal>.
|
||||
'';
|
||||
};
|
||||
|
||||
hashedPasswordFile = mkOption {
|
||||
type = uniq (nullOr types.path);
|
||||
example = "/path/to/file";
|
||||
default = null;
|
||||
description = ''
|
||||
Specifies the path to a file containing the
|
||||
hashed password for the MQTT user.
|
||||
To generate hashed password install <literal>mosquitto</literal>
|
||||
package and use <literal>mosquitto_passwd</literal>.
|
||||
'';
|
||||
};
|
||||
|
||||
acl = mkOption {
|
||||
type = listOf str;
|
||||
example = [ "read A/B" "readwrite A/#" ];
|
||||
default = [];
|
||||
description = ''
|
||||
Control client access to topics on the broker.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
userAsserts = prefix: users:
|
||||
mapAttrsToList
|
||||
(n: _: {
|
||||
assertion = builtins.match "[^:\r\n]+" n != null;
|
||||
message = "Invalid user name ${n} in ${prefix}";
|
||||
})
|
||||
users
|
||||
++ mapAttrsToList
|
||||
(n: u: {
|
||||
assertion = count (s: s != null) [
|
||||
u.password u.passwordFile u.hashedPassword u.hashedPasswordFile
|
||||
] <= 1;
|
||||
message = "Cannot set more than one password option for user ${n} in ${prefix}";
|
||||
}) users;
|
||||
|
||||
makePasswordFile = users: path:
|
||||
let
|
||||
makeLines = store: file:
|
||||
mapAttrsToList
|
||||
(n: u: "addLine ${escapeShellArg n} ${escapeShellArg u.${store}}")
|
||||
(filterAttrs (_: u: u.${store} != null) users)
|
||||
++ mapAttrsToList
|
||||
(n: u: "addFile ${escapeShellArg n} ${escapeShellArg "${u.${file}}"}")
|
||||
(filterAttrs (_: u: u.${file} != null) users);
|
||||
plainLines = makeLines "password" "passwordFile";
|
||||
hashedLines = makeLines "hashedPassword" "hashedPasswordFile";
|
||||
in
|
||||
pkgs.writeScript "make-mosquitto-passwd"
|
||||
(''
|
||||
#! ${pkgs.runtimeShell}
|
||||
|
||||
set -eu
|
||||
|
||||
file=${escapeShellArg path}
|
||||
|
||||
rm -f "$file"
|
||||
touch "$file"
|
||||
|
||||
addLine() {
|
||||
echo "$1:$2" >> "$file"
|
||||
}
|
||||
addFile() {
|
||||
if [ $(wc -l <"$2") -gt 1 ]; then
|
||||
echo "invalid mosquitto password file $2" >&2
|
||||
return 1
|
||||
fi
|
||||
echo "$1:$(cat "$2")" >> "$file"
|
||||
}
|
||||
''
|
||||
+ concatStringsSep "\n"
|
||||
(plainLines
|
||||
++ optional (plainLines != []) ''
|
||||
${pkgs.mosquitto}/bin/mosquitto_passwd -U "$file"
|
||||
''
|
||||
++ hashedLines));
|
||||
|
||||
makeACLFile = idx: users: supplement:
|
||||
pkgs.writeText "mosquitto-acl-${toString idx}.conf"
|
||||
(concatStringsSep
|
||||
"\n"
|
||||
(flatten [
|
||||
supplement
|
||||
(mapAttrsToList
|
||||
(n: u: [ "user ${n}" ] ++ map (t: "topic ${t}") u.acl)
|
||||
users)
|
||||
]));
|
||||
|
||||
authPluginOptions = with types; submodule {
|
||||
options = {
|
||||
plugin = mkOption {
|
||||
type = path;
|
||||
description = ''
|
||||
Plugin path to load, should be a <literal>.so</literal> file.
|
||||
'';
|
||||
};
|
||||
|
||||
denySpecialChars = mkOption {
|
||||
type = bool;
|
||||
description = ''
|
||||
Automatically disallow all clients using <literal>#</literal>
|
||||
or <literal>+</literal> in their name/id.
|
||||
'';
|
||||
default = true;
|
||||
};
|
||||
|
||||
options = mkOption {
|
||||
type = attrsOf optionType;
|
||||
description = ''
|
||||
Options for the auth plugin. Each key turns into a <literal>auth_opt_*</literal>
|
||||
line in the config.
|
||||
'';
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
authAsserts = prefix: auth:
|
||||
mapAttrsToList
|
||||
(n: _: {
|
||||
assertion = configKey.check n;
|
||||
message = "Invalid auth plugin key ${prefix}.${n}";
|
||||
})
|
||||
auth;
|
||||
|
||||
formatAuthPlugin = plugin:
|
||||
[
|
||||
"auth_plugin ${plugin.plugin}"
|
||||
"auth_plugin_deny_special_chars ${optionToString plugin.denySpecialChars}"
|
||||
]
|
||||
++ formatFreeform { prefix = "auth_opt_"; } plugin.options;
|
||||
|
||||
freeformListenerKeys = {
|
||||
allow_anonymous = 1;
|
||||
allow_zero_length_clientid = 1;
|
||||
auto_id_prefix = 1;
|
||||
cafile = 1;
|
||||
capath = 1;
|
||||
certfile = 1;
|
||||
ciphers = 1;
|
||||
"ciphers_tls1.3" = 1;
|
||||
crlfile = 1;
|
||||
dhparamfile = 1;
|
||||
http_dir = 1;
|
||||
keyfile = 1;
|
||||
max_connections = 1;
|
||||
max_qos = 1;
|
||||
max_topic_alias = 1;
|
||||
mount_point = 1;
|
||||
protocol = 1;
|
||||
psk_file = 1;
|
||||
psk_hint = 1;
|
||||
require_certificate = 1;
|
||||
socket_domain = 1;
|
||||
tls_engine = 1;
|
||||
tls_engine_kpass_sha1 = 1;
|
||||
tls_keyform = 1;
|
||||
tls_version = 1;
|
||||
use_identity_as_username = 1;
|
||||
use_subject_as_username = 1;
|
||||
use_username_as_clientid = 1;
|
||||
};
|
||||
|
||||
listenerOptions = with types; submodule {
|
||||
options = {
|
||||
port = mkOption {
|
||||
type = port;
|
||||
description = ''
|
||||
Port to listen on. Must be set to 0 to listen on a unix domain socket.
|
||||
'';
|
||||
default = 1883;
|
||||
};
|
||||
|
||||
address = mkOption {
|
||||
type = nullOr str;
|
||||
description = ''
|
||||
Address to listen on. Listen on <literal>0.0.0.0</literal>/<literal>::</literal>
|
||||
when unset.
|
||||
'';
|
||||
default = null;
|
||||
};
|
||||
|
||||
authPlugins = mkOption {
|
||||
type = listOf authPluginOptions;
|
||||
description = ''
|
||||
Authentication plugin to attach to this listener.
|
||||
Refer to the <link xlink:href="https://mosquitto.org/man/mosquitto-conf-5.html">
|
||||
mosquitto.conf documentation</link> for details on authentication plugins.
|
||||
'';
|
||||
default = [];
|
||||
};
|
||||
|
||||
users = mkOption {
|
||||
type = attrsOf userOptions;
|
||||
example = { john = { password = "123456"; acl = [ "topic readwrite john/#" ]; }; };
|
||||
description = ''
|
||||
A set of users and their passwords and ACLs.
|
||||
'';
|
||||
default = {};
|
||||
};
|
||||
|
||||
acl = mkOption {
|
||||
type = listOf str;
|
||||
description = ''
|
||||
Additional ACL items to prepend to the generated ACL file.
|
||||
'';
|
||||
default = [];
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = submodule {
|
||||
freeformType = attrsOf optionType;
|
||||
};
|
||||
description = ''
|
||||
Additional settings for this listener.
|
||||
'';
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
listenerAsserts = prefix: listener:
|
||||
assertKeysValid prefix freeformListenerKeys listener.settings
|
||||
++ userAsserts prefix listener.users
|
||||
++ imap0
|
||||
(i: v: authAsserts "${prefix}.authPlugins.${toString i}" v)
|
||||
listener.authPlugins;
|
||||
|
||||
formatListener = idx: listener:
|
||||
[
|
||||
"listener ${toString listener.port} ${toString listener.address}"
|
||||
"password_file ${cfg.dataDir}/passwd-${toString idx}"
|
||||
"acl_file ${makeACLFile idx listener.users listener.acl}"
|
||||
]
|
||||
++ formatFreeform {} listener.settings
|
||||
++ concatMap formatAuthPlugin listener.authPlugins;
|
||||
|
||||
freeformBridgeKeys = {
|
||||
bridge_alpn = 1;
|
||||
bridge_attempt_unsubscribe = 1;
|
||||
bridge_bind_address = 1;
|
||||
bridge_cafile = 1;
|
||||
bridge_capath = 1;
|
||||
bridge_certfile = 1;
|
||||
bridge_identity = 1;
|
||||
bridge_insecure = 1;
|
||||
bridge_keyfile = 1;
|
||||
bridge_max_packet_size = 1;
|
||||
bridge_outgoing_retain = 1;
|
||||
bridge_protocol_version = 1;
|
||||
bridge_psk = 1;
|
||||
bridge_require_ocsp = 1;
|
||||
bridge_tls_version = 1;
|
||||
cleansession = 1;
|
||||
idle_timeout = 1;
|
||||
keepalive_interval = 1;
|
||||
local_cleansession = 1;
|
||||
local_clientid = 1;
|
||||
local_password = 1;
|
||||
local_username = 1;
|
||||
notification_topic = 1;
|
||||
notifications = 1;
|
||||
notifications_local_only = 1;
|
||||
remote_clientid = 1;
|
||||
remote_password = 1;
|
||||
remote_username = 1;
|
||||
restart_timeout = 1;
|
||||
round_robin = 1;
|
||||
start_type = 1;
|
||||
threshold = 1;
|
||||
try_private = 1;
|
||||
};
|
||||
|
||||
bridgeOptions = with types; submodule {
|
||||
options = {
|
||||
addresses = mkOption {
|
||||
type = listOf (submodule {
|
||||
options = {
|
||||
address = mkOption {
|
||||
type = str;
|
||||
description = ''
|
||||
Address of the remote MQTT broker.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = port;
|
||||
description = ''
|
||||
Port of the remote MQTT broker.
|
||||
'';
|
||||
default = 1883;
|
||||
};
|
||||
};
|
||||
});
|
||||
default = [];
|
||||
description = ''
|
||||
Remote endpoints for the bridge.
|
||||
'';
|
||||
};
|
||||
|
||||
topics = mkOption {
|
||||
type = listOf str;
|
||||
description = ''
|
||||
Topic patterns to be shared between the two brokers.
|
||||
Refer to the <link xlink:href="https://mosquitto.org/man/mosquitto-conf-5.html">
|
||||
mosquitto.conf documentation</link> for details on the format.
|
||||
'';
|
||||
default = [];
|
||||
example = [ "# both 2 local/topic/ remote/topic/" ];
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = submodule {
|
||||
freeformType = attrsOf optionType;
|
||||
};
|
||||
description = ''
|
||||
Additional settings for this bridge.
|
||||
'';
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
bridgeAsserts = prefix: bridge:
|
||||
assertKeysValid prefix freeformBridgeKeys bridge.settings
|
||||
++ [ {
|
||||
assertion = length bridge.addresses > 0;
|
||||
message = "Bridge ${prefix} needs remote broker addresses";
|
||||
} ];
|
||||
|
||||
formatBridge = name: bridge:
|
||||
[
|
||||
"connection ${name}"
|
||||
"addresses ${concatMapStringsSep " " (a: "${a.address}:${toString a.port}") bridge.addresses}"
|
||||
]
|
||||
++ map (t: "topic ${t}") bridge.topics
|
||||
++ formatFreeform {} bridge.settings;
|
||||
|
||||
freeformGlobalKeys = {
|
||||
allow_duplicate_messages = 1;
|
||||
autosave_interval = 1;
|
||||
autosave_on_changes = 1;
|
||||
check_retain_source = 1;
|
||||
connection_messages = 1;
|
||||
log_facility = 1;
|
||||
log_timestamp = 1;
|
||||
log_timestamp_format = 1;
|
||||
max_inflight_bytes = 1;
|
||||
max_inflight_messages = 1;
|
||||
max_keepalive = 1;
|
||||
max_packet_size = 1;
|
||||
max_queued_bytes = 1;
|
||||
max_queued_messages = 1;
|
||||
memory_limit = 1;
|
||||
message_size_limit = 1;
|
||||
persistence_file = 1;
|
||||
persistence_location = 1;
|
||||
persistent_client_expiration = 1;
|
||||
pid_file = 1;
|
||||
queue_qos0_messages = 1;
|
||||
retain_available = 1;
|
||||
set_tcp_nodelay = 1;
|
||||
sys_interval = 1;
|
||||
upgrade_outgoing_qos = 1;
|
||||
websockets_headers_size = 1;
|
||||
websockets_log_level = 1;
|
||||
};
|
||||
|
||||
globalOptions = with types; {
|
||||
enable = mkEnableOption "the MQTT Mosquitto broker";
|
||||
|
||||
bridges = mkOption {
|
||||
type = attrsOf bridgeOptions;
|
||||
default = {};
|
||||
description = ''
|
||||
Bridges to build to other MQTT brokers.
|
||||
'';
|
||||
};
|
||||
|
||||
listeners = mkOption {
|
||||
type = listOf listenerOptions;
|
||||
default = {};
|
||||
description = ''
|
||||
Listeners to configure on this broker.
|
||||
'';
|
||||
};
|
||||
|
||||
includeDirs = mkOption {
|
||||
type = listOf path;
|
||||
description = ''
|
||||
Directories to be scanned for further config files to include.
|
||||
Directories will processed in the order given,
|
||||
<literal>*.conf</literal> files in the directory will be
|
||||
read in case-sensistive alphabetical order.
|
||||
'';
|
||||
default = [];
|
||||
};
|
||||
|
||||
logDest = mkOption {
|
||||
type = listOf (either path (enum [ "stdout" "stderr" "syslog" "topic" "dlt" ]));
|
||||
description = ''
|
||||
Destinations to send log messages to.
|
||||
'';
|
||||
default = [ "stderr" ];
|
||||
};
|
||||
|
||||
logType = mkOption {
|
||||
type = listOf (enum [ "debug" "error" "warning" "notice" "information"
|
||||
"subscribe" "unsubscribe" "websockets" "none" "all" ]);
|
||||
description = ''
|
||||
Types of messages to log.
|
||||
'';
|
||||
default = [];
|
||||
};
|
||||
|
||||
persistence = mkOption {
|
||||
type = bool;
|
||||
description = ''
|
||||
Enable persistent storage of subscriptions and messages.
|
||||
'';
|
||||
default = true;
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
default = "/var/lib/mosquitto";
|
||||
type = types.path;
|
||||
description = ''
|
||||
The data directory.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = submodule {
|
||||
freeformType = attrsOf optionType;
|
||||
};
|
||||
description = ''
|
||||
Global configuration options for the mosquitto broker.
|
||||
'';
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
|
||||
globalAsserts = prefix: cfg:
|
||||
flatten [
|
||||
(assertKeysValid prefix freeformGlobalKeys cfg.settings)
|
||||
(imap0 (n: l: listenerAsserts "${prefix}.listener.${toString n}" l) cfg.listeners)
|
||||
(mapAttrsToList (n: b: bridgeAsserts "${prefix}.bridge.${n}" b) cfg.bridges)
|
||||
];
|
||||
|
||||
formatGlobal = cfg:
|
||||
[
|
||||
"per_listener_settings true"
|
||||
"persistence ${optionToString cfg.persistence}"
|
||||
]
|
||||
++ map
|
||||
(d: if path.check d then "log_dest file ${d}" else "log_dest ${d}")
|
||||
cfg.logDest
|
||||
++ map (t: "log_type ${t}") cfg.logType
|
||||
++ formatFreeform {} cfg.settings
|
||||
++ concatLists (imap0 formatListener cfg.listeners)
|
||||
++ concatLists (mapAttrsToList formatBridge cfg.bridges)
|
||||
++ map (d: "include_dir ${d}") cfg.includeDirs;
|
||||
|
||||
configFile = pkgs.writeText "mosquitto.conf"
|
||||
(concatStringsSep "\n" (formatGlobal cfg));
|
||||
|
||||
in
|
||||
|
||||
|
@ -41,179 +535,13 @@ in
|
|||
|
||||
###### Interface
|
||||
|
||||
options = {
|
||||
services.mosquitto = {
|
||||
enable = mkEnableOption "the MQTT Mosquitto broker";
|
||||
|
||||
host = mkOption {
|
||||
default = "127.0.0.1";
|
||||
example = "0.0.0.0";
|
||||
type = types.str;
|
||||
description = ''
|
||||
Host to listen on without SSL.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
default = 1883;
|
||||
type = types.int;
|
||||
description = ''
|
||||
Port on which to listen without SSL.
|
||||
'';
|
||||
};
|
||||
|
||||
ssl = {
|
||||
enable = mkEnableOption "SSL listener";
|
||||
|
||||
cafile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = "Path to PEM encoded CA certificates.";
|
||||
};
|
||||
|
||||
certfile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = "Path to PEM encoded server certificate.";
|
||||
};
|
||||
|
||||
keyfile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = "Path to PEM encoded server key.";
|
||||
};
|
||||
|
||||
host = mkOption {
|
||||
default = "0.0.0.0";
|
||||
example = "localhost";
|
||||
type = types.str;
|
||||
description = ''
|
||||
Host to listen on with SSL.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
default = 8883;
|
||||
type = types.int;
|
||||
description = ''
|
||||
Port on which to listen with SSL.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
default = "/var/lib/mosquitto";
|
||||
type = types.path;
|
||||
description = ''
|
||||
The data directory.
|
||||
'';
|
||||
};
|
||||
|
||||
users = mkOption {
|
||||
type = types.attrsOf (types.submodule {
|
||||
options = {
|
||||
password = mkOption {
|
||||
type = with types; uniq (nullOr str);
|
||||
default = null;
|
||||
description = ''
|
||||
Specifies the (clear text) password for the MQTT User.
|
||||
'';
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = with types; uniq (nullOr str);
|
||||
example = "/path/to/file";
|
||||
default = null;
|
||||
description = ''
|
||||
Specifies the path to a file containing the
|
||||
clear text password for the MQTT user.
|
||||
'';
|
||||
};
|
||||
|
||||
hashedPassword = mkOption {
|
||||
type = with types; uniq (nullOr str);
|
||||
default = null;
|
||||
description = ''
|
||||
Specifies the hashed password for the MQTT User.
|
||||
To generate hashed password install <literal>mosquitto</literal>
|
||||
package and use <literal>mosquitto_passwd</literal>.
|
||||
'';
|
||||
};
|
||||
|
||||
hashedPasswordFile = mkOption {
|
||||
type = with types; uniq (nullOr str);
|
||||
example = "/path/to/file";
|
||||
default = null;
|
||||
description = ''
|
||||
Specifies the path to a file containing the
|
||||
hashed password for the MQTT user.
|
||||
To generate hashed password install <literal>mosquitto</literal>
|
||||
package and use <literal>mosquitto_passwd</literal>.
|
||||
'';
|
||||
};
|
||||
|
||||
acl = mkOption {
|
||||
type = types.listOf types.str;
|
||||
example = [ "topic read A/B" "topic A/#" ];
|
||||
description = ''
|
||||
Control client access to topics on the broker.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
example = { john = { password = "123456"; acl = [ "topic readwrite john/#" ]; }; };
|
||||
description = ''
|
||||
A set of users and their passwords and ACLs.
|
||||
'';
|
||||
};
|
||||
|
||||
allowAnonymous = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Allow clients to connect without authentication.
|
||||
'';
|
||||
};
|
||||
|
||||
checkPasswords = mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Refuse connection when clients provide incorrect passwords.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConf = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = ''
|
||||
Extra config to append to `mosquitto.conf` file.
|
||||
'';
|
||||
};
|
||||
|
||||
aclExtraConf = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = ''
|
||||
Extra config to prepend to the ACL file.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
options.services.mosquitto = globalOptions;
|
||||
|
||||
###### Implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
assertions = mapAttrsToList (name: cfg: {
|
||||
assertion = length (filter (s: s != null) (with cfg; [
|
||||
password passwordFile hashedPassword hashedPasswordFile
|
||||
])) <= 1;
|
||||
message = "Cannot set more than one password option";
|
||||
}) cfg.users;
|
||||
assertions = globalAsserts "services.mosquitto" cfg;
|
||||
|
||||
systemd.services.mosquitto = {
|
||||
description = "Mosquitto MQTT Broker Daemon";
|
||||
|
@ -227,7 +555,7 @@ in
|
|||
RuntimeDirectory = "mosquitto";
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
Restart = "on-failure";
|
||||
ExecStart = "${pkgs.mosquitto}/bin/mosquitto -c ${mosquittoConf}";
|
||||
ExecStart = "${pkgs.mosquitto}/bin/mosquitto -c ${configFile}";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
|
||||
# Hardening
|
||||
|
@ -252,12 +580,34 @@ in
|
|||
ReadWritePaths = [
|
||||
cfg.dataDir
|
||||
"/tmp" # mosquitto_passwd creates files in /tmp before moving them
|
||||
];
|
||||
ReadOnlyPaths = with cfg.ssl; lib.optionals (enable) [
|
||||
certfile
|
||||
keyfile
|
||||
cafile
|
||||
];
|
||||
] ++ filter path.check cfg.logDest;
|
||||
ReadOnlyPaths =
|
||||
map (p: "${p}")
|
||||
(cfg.includeDirs
|
||||
++ filter
|
||||
(v: v != null)
|
||||
(flatten [
|
||||
(map
|
||||
(l: [
|
||||
(l.settings.psk_file or null)
|
||||
(l.settings.http_dir or null)
|
||||
(l.settings.cafile or null)
|
||||
(l.settings.capath or null)
|
||||
(l.settings.certfile or null)
|
||||
(l.settings.crlfile or null)
|
||||
(l.settings.dhparamfile or null)
|
||||
(l.settings.keyfile or null)
|
||||
])
|
||||
cfg.listeners)
|
||||
(mapAttrsToList
|
||||
(_: b: [
|
||||
(b.settings.bridge_cafile or null)
|
||||
(b.settings.bridge_capath or null)
|
||||
(b.settings.bridge_certfile or null)
|
||||
(b.settings.bridge_keyfile or null)
|
||||
])
|
||||
cfg.bridges)
|
||||
]));
|
||||
RemoveIPC = true;
|
||||
RestrictAddressFamilies = [
|
||||
"AF_UNIX" # for sd_notify() call
|
||||
|
@ -275,20 +625,12 @@ in
|
|||
];
|
||||
UMask = "0077";
|
||||
};
|
||||
preStart = ''
|
||||
rm -f ${cfg.dataDir}/passwd
|
||||
touch ${cfg.dataDir}/passwd
|
||||
'' + concatStringsSep "\n" (
|
||||
mapAttrsToList (n: c:
|
||||
if c.hashedPasswordFile != null then
|
||||
"echo '${n}:'$(cat '${c.hashedPasswordFile}') >> ${cfg.dataDir}/passwd"
|
||||
else if c.passwordFile != null then
|
||||
"${pkgs.mosquitto}/bin/mosquitto_passwd -b ${cfg.dataDir}/passwd ${n} $(cat '${c.passwordFile}')"
|
||||
else if c.hashedPassword != null then
|
||||
"echo '${n}:${c.hashedPassword}' >> ${cfg.dataDir}/passwd"
|
||||
else optionalString (c.password != null)
|
||||
"${pkgs.mosquitto}/bin/mosquitto_passwd -b ${cfg.dataDir}/passwd ${n} '${c.password}'"
|
||||
) cfg.users);
|
||||
preStart =
|
||||
concatStringsSep
|
||||
"\n"
|
||||
(imap0
|
||||
(idx: listener: makePasswordFile listener.users "${cfg.dataDir}/passwd-${toString idx}")
|
||||
cfg.listeners);
|
||||
};
|
||||
|
||||
users.users.mosquitto = {
|
||||
|
@ -302,4 +644,6 @@ in
|
|||
users.groups.mosquitto.gid = config.ids.gids.mosquitto;
|
||||
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ pennae ];
|
||||
}
|
||||
|
|
|
@ -221,6 +221,7 @@ in
|
|||
programs.evince.enable = mkDefault true;
|
||||
programs.evince.package = pkgs.pantheon.evince;
|
||||
programs.file-roller.enable = mkDefault true;
|
||||
programs.file-roller.package = pkgs.pantheon.file-roller;
|
||||
|
||||
# Settings from elementary-default-settings
|
||||
environment.sessionVariables.GTK_CSD = "1";
|
||||
|
|
|
@ -1,15 +1,18 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
xcfg = config.services.xserver;
|
||||
cfg = xcfg.desktopManager.plasma5;
|
||||
|
||||
libsForQt5 = pkgs.plasma5Packages;
|
||||
inherit (libsForQt5) kdeGear kdeFrameworks plasma5;
|
||||
inherit (pkgs) writeText;
|
||||
inherit (lib)
|
||||
getBin optionalString
|
||||
mkRemovedOptionModule mkRenamedOptionModule
|
||||
mkDefault mkIf mkMerge mkOption types;
|
||||
|
||||
ini = pkgs.formats.ini { };
|
||||
|
||||
pulseaudio = config.hardware.pulseaudio;
|
||||
pactl = "${getBin pulseaudio.package}/bin/pactl";
|
||||
|
@ -33,23 +36,25 @@ let
|
|||
gtk-button-images=1
|
||||
'';
|
||||
|
||||
gtk3_settings = writeText "settings.ini" ''
|
||||
[Settings]
|
||||
gtk-font-name=Sans Serif Regular 10
|
||||
gtk-theme-name=Breeze
|
||||
gtk-icon-theme-name=breeze
|
||||
gtk-fallback-icon-theme=hicolor
|
||||
gtk-cursor-theme-name=breeze_cursors
|
||||
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||
gtk-menu-images=1
|
||||
gtk-button-images=1
|
||||
'';
|
||||
gtk3_settings = ini.generate "settings.ini" {
|
||||
Settings = {
|
||||
gtk-font-name = "Sans Serif Regular 10";
|
||||
gtk-theme-name = "Breeze";
|
||||
gtk-icon-theme-name = "breeze";
|
||||
gtk-fallback-icon-theme = "hicolor";
|
||||
gtk-cursor-theme-name = "breeze_cursors";
|
||||
gtk-toolbar-style = "GTK_TOOLBAR_ICONS";
|
||||
gtk-menu-images = 1;
|
||||
gtk-button-images = 1;
|
||||
};
|
||||
};
|
||||
|
||||
kcminputrc = writeText "kcminputrc" ''
|
||||
[Mouse]
|
||||
cursorTheme=breeze_cursors
|
||||
cursorSize=0
|
||||
'';
|
||||
kcminputrc = ini.generate "kcminputrc" {
|
||||
Mouse = {
|
||||
cursorTheme = "breeze_cursors";
|
||||
cursorSize = 0;
|
||||
};
|
||||
};
|
||||
|
||||
activationScript = ''
|
||||
${set_XDG_CONFIG_HOME}
|
||||
|
@ -87,13 +92,13 @@ let
|
|||
'';
|
||||
|
||||
set_XDG_CONFIG_HOME = ''
|
||||
# Set the default XDG_CONFIG_HOME if it is unset.
|
||||
# Per the XDG Base Directory Specification:
|
||||
# https://specifications.freedesktop.org/basedir-spec/latest
|
||||
# 1. Never export this variable! If it is unset, then child processes are
|
||||
# expected to set the default themselves.
|
||||
# 2. Contaminate / if $HOME is unset; do not check if $HOME is set.
|
||||
XDG_CONFIG_HOME=''${XDG_CONFIG_HOME:-$HOME/.config}
|
||||
# Set the default XDG_CONFIG_HOME if it is unset.
|
||||
# Per the XDG Base Directory Specification:
|
||||
# https://specifications.freedesktop.org/basedir-spec/latest
|
||||
# 1. Never export this variable! If it is unset, then child processes are
|
||||
# expected to set the default themselves.
|
||||
# 2. Contaminate / if $HOME is unset; do not check if $HOME is set.
|
||||
XDG_CONFIG_HOME=''${XDG_CONFIG_HOME:-$HOME/.config}
|
||||
'';
|
||||
|
||||
startplasma =
|
||||
|
@ -116,20 +121,17 @@ let
|
|||
if ! [ -f "$kdeglobals" ]
|
||||
then
|
||||
kcminputrc="''${XDG_CONFIG_HOME}/kcminputrc"
|
||||
if ! [ -f "$kcminputrc" ]
|
||||
then
|
||||
if ! [ -f "$kcminputrc" ]; then
|
||||
cat ${kcminputrc} >"$kcminputrc"
|
||||
fi
|
||||
|
||||
gtkrc2="$HOME/.gtkrc-2.0"
|
||||
if ! [ -f "$gtkrc2" ]
|
||||
then
|
||||
if ! [ -f "$gtkrc2" ]; then
|
||||
cat ${gtkrc2} >"$gtkrc2"
|
||||
fi
|
||||
|
||||
gtk3_settings="''${XDG_CONFIG_HOME}/gtk-3.0/settings.ini"
|
||||
if ! [ -f "$gtk3_settings" ]
|
||||
then
|
||||
if ! [ -f "$gtk3_settings" ]; then
|
||||
mkdir -p "$(dirname "$gtk3_settings")"
|
||||
cat ${gtk3_settings} >"$gtk3_settings"
|
||||
fi
|
||||
|
@ -140,42 +142,44 @@ let
|
|||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
|
||||
services.xserver.desktopManager.plasma5 = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable the Plasma 5 (KDE 5) desktop environment.";
|
||||
};
|
||||
|
||||
phononBackend = mkOption {
|
||||
type = types.enum [ "gstreamer" "vlc" ];
|
||||
default = "gstreamer";
|
||||
example = "vlc";
|
||||
description = "Phonon audio backend to install.";
|
||||
};
|
||||
|
||||
supportDDC = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Support setting monitor brightness via DDC.
|
||||
</para>
|
||||
<para>
|
||||
This is not needed for controlling brightness of the internal monitor
|
||||
of a laptop and as it is considered experimental by upstream, it is
|
||||
disabled by default.
|
||||
'';
|
||||
};
|
||||
|
||||
useQtScaling = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable HiDPI scaling in Qt.";
|
||||
};
|
||||
options.services.xserver.desktopManager.plasma5 = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable the Plasma 5 (KDE 5) desktop environment.";
|
||||
};
|
||||
|
||||
phononBackend = mkOption {
|
||||
type = types.enum [ "gstreamer" "vlc" ];
|
||||
default = "gstreamer";
|
||||
example = "vlc";
|
||||
description = "Phonon audio backend to install.";
|
||||
};
|
||||
|
||||
supportDDC = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Support setting monitor brightness via DDC.
|
||||
</para>
|
||||
<para>
|
||||
This is not needed for controlling brightness of the internal monitor
|
||||
of a laptop and as it is considered experimental by upstream, it is
|
||||
disabled by default.
|
||||
'';
|
||||
};
|
||||
|
||||
useQtScaling = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable HiDPI scaling in Qt.";
|
||||
};
|
||||
|
||||
runUsingSystemd = mkOption {
|
||||
description = "Use systemd to manage the Plasma session";
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
|
@ -187,32 +191,37 @@ in
|
|||
(mkIf cfg.enable {
|
||||
|
||||
# Seed our configuration into nixos-generate-config
|
||||
system.nixos-generate-config.desktopConfiguration = [''
|
||||
# Enable the Plasma 5 Desktop Environment.
|
||||
services.xserver.displayManager.sddm.enable = true;
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
''];
|
||||
system.nixos-generate-config.desktopConfiguration = [
|
||||
''
|
||||
# Enable the Plasma 5 Desktop Environment.
|
||||
services.xserver.displayManager.sddm.enable = true;
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
''
|
||||
];
|
||||
|
||||
services.xserver.displayManager.sessionPackages = [ pkgs.libsForQt5.plasma5.plasma-workspace ];
|
||||
|
||||
security.wrappers = {
|
||||
kcheckpass =
|
||||
{ setuid = true;
|
||||
{
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${lib.getBin libsForQt5.kscreenlocker}/libexec/kcheckpass";
|
||||
source = "${getBin libsForQt5.kscreenlocker}/libexec/kcheckpass";
|
||||
};
|
||||
start_kdeinit =
|
||||
{ setuid = true;
|
||||
{
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${lib.getBin libsForQt5.kinit}/libexec/kf5/start_kdeinit";
|
||||
source = "${getBin libsForQt5.kinit}/libexec/kf5/start_kdeinit";
|
||||
};
|
||||
kwin_wayland =
|
||||
{ owner = "root";
|
||||
{
|
||||
owner = "root";
|
||||
group = "root";
|
||||
capabilities = "cap_sys_nice+ep";
|
||||
source = "${lib.getBin plasma5.kwin}/bin/kwin_wayland";
|
||||
source = "${getBin plasma5.kwin}/bin/kwin_wayland";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -247,7 +256,7 @@ in
|
|||
kidletime
|
||||
kimageformats
|
||||
kinit
|
||||
kirigami2 # In system profile for SDDM theme. TODO: wrapper.
|
||||
kirigami2 # In system profile for SDDM theme. TODO: wrapper.
|
||||
kio
|
||||
kjobwidgets
|
||||
knewstuff
|
||||
|
@ -314,7 +323,8 @@ in
|
|||
breeze-icons
|
||||
pkgs.hicolor-icon-theme
|
||||
|
||||
kde-gtk-config breeze-gtk
|
||||
kde-gtk-config
|
||||
breeze-gtk
|
||||
|
||||
qtvirtualkeyboard
|
||||
|
||||
|
@ -336,6 +346,7 @@ in
|
|||
++ lib.optional config.services.pipewire.pulse.enable plasma-pa
|
||||
++ lib.optional config.powerManagement.enable powerdevil
|
||||
++ lib.optional config.services.colord.enable pkgs.colord-kde
|
||||
++ lib.optional config.services.hardware.bolt.enable pkgs.plasma-thunderbolt
|
||||
++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ]
|
||||
++ lib.optional config.services.xserver.wacom.enable pkgs.wacomtablet;
|
||||
|
||||
|
@ -385,6 +396,27 @@ in
|
|||
security.pam.services.lightdm.enableKwallet = true;
|
||||
security.pam.services.sddm.enableKwallet = true;
|
||||
|
||||
systemd.user.services = {
|
||||
plasma-early-setup = mkIf cfg.runUsingSystemd {
|
||||
description = "Early Plasma setup";
|
||||
wantedBy = [ "graphical-session-pre.target" ];
|
||||
serviceConfig.Type = "oneshot";
|
||||
script = activationScript;
|
||||
};
|
||||
|
||||
plasma-run-with-systemd = {
|
||||
description = "Run KDE Plasma via systemd";
|
||||
wantedBy = [ "basic.target" ];
|
||||
serviceConfig.Type = "oneshot";
|
||||
script = ''
|
||||
${set_XDG_CONFIG_HOME}
|
||||
|
||||
${kdeFrameworks.kconfig}/bin/kwriteconfig5 \
|
||||
--file startkderc --group General --key systemdBoot ${lib.boolToString cfg.runUsingSystemd}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ plasma5.xdg-desktop-portal-kde ];
|
||||
|
||||
|
|
|
@ -81,6 +81,24 @@ in {
|
|||
environment.BORG_RSH = "ssh -oStrictHostKeyChecking=no -i /root/id_ed25519.appendOnly";
|
||||
};
|
||||
|
||||
commandSuccess = {
|
||||
dumpCommand = pkgs.writeScript "commandSuccess" ''
|
||||
echo -n test
|
||||
'';
|
||||
repo = remoteRepo;
|
||||
encryption.mode = "none";
|
||||
startAt = [ ];
|
||||
environment.BORG_RSH = "ssh -oStrictHostKeyChecking=no -i /root/id_ed25519";
|
||||
};
|
||||
|
||||
commandFail = {
|
||||
dumpCommand = "${pkgs.coreutils}/bin/false";
|
||||
repo = remoteRepo;
|
||||
encryption.mode = "none";
|
||||
startAt = [ ];
|
||||
environment.BORG_RSH = "ssh -oStrictHostKeyChecking=no -i /root/id_ed25519";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -171,5 +189,20 @@ in {
|
|||
client.fail("{} list borg\@server:wrong".format(borg))
|
||||
|
||||
# TODO: Make sure that data is not actually deleted
|
||||
|
||||
with subtest("commandSuccess"):
|
||||
server.wait_for_unit("sshd.service")
|
||||
client.wait_for_unit("network.target")
|
||||
client.systemctl("start --wait borgbackup-job-commandSuccess")
|
||||
client.fail("systemctl is-failed borgbackup-job-commandSuccess")
|
||||
id = client.succeed("borg-job-commandSuccess list | tail -n1 | cut -d' ' -f1").strip()
|
||||
client.succeed(f"borg-job-commandSuccess extract ::{id} stdin")
|
||||
assert "test" == client.succeed("cat stdin")
|
||||
|
||||
with subtest("commandFail"):
|
||||
server.wait_for_unit("sshd.service")
|
||||
client.wait_for_unit("network.target")
|
||||
client.systemctl("start --wait borgbackup-job-commandFail")
|
||||
client.succeed("systemctl is-failed borgbackup-job-commandFail")
|
||||
'';
|
||||
})
|
||||
|
|
|
@ -12,13 +12,14 @@ in {
|
|||
environment.systemPackages = with pkgs; [ mosquitto ];
|
||||
services.mosquitto = {
|
||||
enable = true;
|
||||
checkPasswords = true;
|
||||
users = {
|
||||
"${mqttUsername}" = {
|
||||
acl = [ "topic readwrite #" ];
|
||||
password = mqttPassword;
|
||||
listeners = [ {
|
||||
users = {
|
||||
"${mqttUsername}" = {
|
||||
acl = [ "readwrite #" ];
|
||||
password = mqttPassword;
|
||||
};
|
||||
};
|
||||
};
|
||||
} ];
|
||||
};
|
||||
services.home-assistant = {
|
||||
inherit configDir;
|
||||
|
|
|
@ -2,13 +2,59 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
|
|||
|
||||
let
|
||||
port = 1888;
|
||||
username = "mqtt";
|
||||
tlsPort = 1889;
|
||||
password = "VERY_secret";
|
||||
hashedPassword = "$7$101$/WJc4Mp+I+uYE9sR$o7z9rD1EYXHPwEP5GqQj6A7k4W1yVbePlb8TqNcuOLV9WNCiDgwHOB0JHC1WCtdkssqTBduBNUnUGd6kmZvDSw==";
|
||||
topic = "test/foo";
|
||||
|
||||
snakeOil = pkgs.runCommand "snakeoil-certs" {
|
||||
buildInputs = [ pkgs.gnutls.bin ];
|
||||
caTemplate = pkgs.writeText "snakeoil-ca.template" ''
|
||||
cn = server
|
||||
expiration_days = -1
|
||||
cert_signing_key
|
||||
ca
|
||||
'';
|
||||
certTemplate = pkgs.writeText "snakeoil-cert.template" ''
|
||||
cn = server
|
||||
expiration_days = -1
|
||||
tls_www_server
|
||||
encryption_key
|
||||
signing_key
|
||||
'';
|
||||
userCertTemplate = pkgs.writeText "snakeoil-user-cert.template" ''
|
||||
organization = snakeoil
|
||||
cn = client1
|
||||
expiration_days = -1
|
||||
tls_www_client
|
||||
encryption_key
|
||||
signing_key
|
||||
'';
|
||||
} ''
|
||||
mkdir "$out"
|
||||
|
||||
certtool -p --bits 2048 --outfile "$out/ca.key"
|
||||
certtool -s --template "$caTemplate" --load-privkey "$out/ca.key" \
|
||||
--outfile "$out/ca.crt"
|
||||
certtool -p --bits 2048 --outfile "$out/server.key"
|
||||
certtool -c --template "$certTemplate" \
|
||||
--load-ca-privkey "$out/ca.key" \
|
||||
--load-ca-certificate "$out/ca.crt" \
|
||||
--load-privkey "$out/server.key" \
|
||||
--outfile "$out/server.crt"
|
||||
|
||||
certtool -p --bits 2048 --outfile "$out/client1.key"
|
||||
certtool -c --template "$userCertTemplate" \
|
||||
--load-privkey "$out/client1.key" \
|
||||
--load-ca-privkey "$out/ca.key" \
|
||||
--load-ca-certificate "$out/ca.crt" \
|
||||
--outfile "$out/client1.crt"
|
||||
'';
|
||||
|
||||
in {
|
||||
name = "mosquitto";
|
||||
meta = with pkgs.lib; {
|
||||
maintainers = with maintainers; [ peterhoeg ];
|
||||
maintainers = with maintainers; [ pennae peterhoeg ];
|
||||
};
|
||||
|
||||
nodes = let
|
||||
|
@ -17,77 +63,131 @@ in {
|
|||
};
|
||||
in {
|
||||
server = { pkgs, ... }: {
|
||||
networking.firewall.allowedTCPPorts = [ port ];
|
||||
networking.firewall.allowedTCPPorts = [ port tlsPort ];
|
||||
services.mosquitto = {
|
||||
inherit port;
|
||||
enable = true;
|
||||
host = "0.0.0.0";
|
||||
checkPasswords = true;
|
||||
users.${username} = {
|
||||
inherit password;
|
||||
acl = [
|
||||
"topic readwrite ${topic}"
|
||||
];
|
||||
settings = {
|
||||
sys_interval = 1;
|
||||
};
|
||||
};
|
||||
listeners = [
|
||||
{
|
||||
inherit port;
|
||||
users = {
|
||||
password_store = {
|
||||
inherit password;
|
||||
};
|
||||
password_file = {
|
||||
passwordFile = pkgs.writeText "mqtt-password" password;
|
||||
};
|
||||
hashed_store = {
|
||||
inherit hashedPassword;
|
||||
};
|
||||
hashed_file = {
|
||||
hashedPasswordFile = pkgs.writeText "mqtt-hashed-password" hashedPassword;
|
||||
};
|
||||
|
||||
# disable private /tmp for this test
|
||||
systemd.services.mosquitto.serviceConfig.PrivateTmp = lib.mkForce false;
|
||||
reader = {
|
||||
inherit password;
|
||||
acl = [
|
||||
"read ${topic}"
|
||||
"read $SYS/#" # so we always have something to read
|
||||
];
|
||||
};
|
||||
writer = {
|
||||
inherit password;
|
||||
acl = [ "write ${topic}" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
port = tlsPort;
|
||||
users.client1 = {
|
||||
acl = [ "read $SYS/#" ];
|
||||
};
|
||||
settings = {
|
||||
cafile = "${snakeOil}/ca.crt";
|
||||
certfile = "${snakeOil}/server.crt";
|
||||
keyfile = "${snakeOil}/server.key";
|
||||
require_certificate = true;
|
||||
use_identity_as_username = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
client1 = client;
|
||||
client2 = client;
|
||||
};
|
||||
|
||||
testScript = let
|
||||
file = "/tmp/msg";
|
||||
in ''
|
||||
def mosquitto_cmd(binary):
|
||||
testScript = ''
|
||||
def mosquitto_cmd(binary, user, topic, port):
|
||||
return (
|
||||
"${pkgs.mosquitto}/bin/mosquitto_{} "
|
||||
"mosquitto_{} "
|
||||
"-V mqttv311 "
|
||||
"-h server "
|
||||
"-p ${toString port} "
|
||||
"-u ${username} "
|
||||
"-p {} "
|
||||
"-u {} "
|
||||
"-P '${password}' "
|
||||
"-t ${topic}"
|
||||
).format(binary)
|
||||
"-t '{}'"
|
||||
).format(binary, port, user, topic)
|
||||
|
||||
|
||||
def publish(args):
|
||||
return "{} {}".format(mosquitto_cmd("pub"), args)
|
||||
def publish(args, user, topic="${topic}", port=${toString port}):
|
||||
return "{} {}".format(mosquitto_cmd("pub", user, topic, port), args)
|
||||
|
||||
|
||||
def subscribe(args):
|
||||
return "({} -C 1 {} | tee ${file} &)".format(mosquitto_cmd("sub"), args)
|
||||
def subscribe(args, user, topic="${topic}", port=${toString port}):
|
||||
return "{} -C 1 {}".format(mosquitto_cmd("sub", user, topic, port), args)
|
||||
|
||||
def parallel(*fns):
|
||||
from threading import Thread
|
||||
threads = [ Thread(target=fn) for fn in fns ]
|
||||
for t in threads: t.start()
|
||||
for t in threads: t.join()
|
||||
|
||||
|
||||
start_all()
|
||||
server.wait_for_unit("mosquitto.service")
|
||||
|
||||
for machine in server, client1, client2:
|
||||
machine.fail("test -f ${file}")
|
||||
def check_passwords():
|
||||
client1.succeed(publish("-m test", "password_store"))
|
||||
client1.succeed(publish("-m test", "password_file"))
|
||||
client1.succeed(publish("-m test", "hashed_store"))
|
||||
client1.succeed(publish("-m test", "hashed_file"))
|
||||
|
||||
# QoS = 0, so only one subscribers should get it
|
||||
server.execute(subscribe("-q 0"))
|
||||
check_passwords()
|
||||
|
||||
# we need to give the subscribers some time to connect
|
||||
client2.execute("sleep 5")
|
||||
client2.succeed(publish("-m FOO -q 0"))
|
||||
def check_acl():
|
||||
client1.succeed(subscribe("", "reader", topic="$SYS/#"))
|
||||
client1.fail(subscribe("-W 5", "writer", topic="$SYS/#"))
|
||||
|
||||
server.wait_until_succeeds("grep -q FOO ${file}")
|
||||
server.execute("rm ${file}")
|
||||
parallel(
|
||||
lambda: client1.succeed(subscribe("-i 3688cdd7-aa07-42a4-be22-cb9352917e40", "reader")),
|
||||
lambda: [
|
||||
server.wait_for_console_text("3688cdd7-aa07-42a4-be22-cb9352917e40"),
|
||||
client2.succeed(publish("-m test", "writer"))
|
||||
])
|
||||
|
||||
# QoS = 1, so both subscribers should get it
|
||||
server.execute(subscribe("-q 1"))
|
||||
client1.execute(subscribe("-q 1"))
|
||||
parallel(
|
||||
lambda: client1.fail(subscribe("-W 5 -i 24ff16a2-ae33-4a51-9098-1b417153c712", "reader")),
|
||||
lambda: [
|
||||
server.wait_for_console_text("24ff16a2-ae33-4a51-9098-1b417153c712"),
|
||||
client2.succeed(publish("-m test", "reader"))
|
||||
])
|
||||
|
||||
# we need to give the subscribers some time to connect
|
||||
client2.execute("sleep 5")
|
||||
client2.succeed(publish("-m BAR -q 1"))
|
||||
check_acl()
|
||||
|
||||
for machine in server, client1:
|
||||
machine.wait_until_succeeds("grep -q BAR ${file}")
|
||||
machine.execute("rm ${file}")
|
||||
def check_tls():
|
||||
client1.succeed(
|
||||
subscribe(
|
||||
"--cafile ${snakeOil}/ca.crt "
|
||||
"--cert ${snakeOil}/client1.crt "
|
||||
"--key ${snakeOil}/client1.key",
|
||||
topic="$SYS/#",
|
||||
port=${toString tlsPort},
|
||||
user="no_such_user"))
|
||||
|
||||
check_tls()
|
||||
'';
|
||||
})
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "polkadot";
|
||||
version = "0.9.11";
|
||||
version = "0.9.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "paritytech";
|
||||
repo = "polkadot";
|
||||
rev = "v${version}";
|
||||
sha256 = "17a0g4sijc1p9fy5xh8krs3y1hc75s17ak0hfhpi231gs4fl20pd";
|
||||
sha256 = "1d1ppj8djqm97k18cbdvbgv9a5vhvxdgjiqair0bmxc44hwapl65";
|
||||
};
|
||||
|
||||
cargoSha256 = "07yzdchpzs2g1f8fzhaj11yybd2d8lv9ib859z7122anxzdr0028";
|
||||
cargoSha256 = "09kcacz836sm1zsi08mmf4ca5vbqc0lwwaam9p4vi0v4kd45axx9";
|
||||
|
||||
nativeBuildInputs = [ clang ];
|
||||
|
||||
|
|
76
pkgs/applications/graphics/ciano/default.nix
Normal file
76
pkgs/applications/graphics/ciano/default.nix
Normal file
|
@ -0,0 +1,76 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, desktop-file-utils
|
||||
, ffmpeg
|
||||
, gobject-introspection
|
||||
, granite
|
||||
, gtk
|
||||
, imagemagick
|
||||
, libgee
|
||||
, libhandy
|
||||
, libsecret
|
||||
, libsoup
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python
|
||||
, vala
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ciano";
|
||||
version = "0.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "robertsanseries";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-nubm6vBWwsHrrmvFAL/cIzYPxg9B1EhnpC79IJMNuFY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
ffmpeg
|
||||
imagemagick
|
||||
granite
|
||||
gtk
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
postFixup = let
|
||||
binPath = lib.makeBinPath [
|
||||
ffmpeg
|
||||
imagemagick
|
||||
];
|
||||
in
|
||||
''
|
||||
wrapProgram $out/bin/com.github.robertsanseries.ciano \
|
||||
--prefix PATH : ${binPath} "''${gappsWrapperArgs[@]}"
|
||||
ln -s $out/bin/com.github.robertsanseries.ciano $out/bin/ciano
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/robertsanseries/ciano";
|
||||
description = "A multimedia file converter focused on simplicity";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -26,11 +26,11 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "blender";
|
||||
version = "2.93.2";
|
||||
version = "2.93.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-nG1Kk6UtiCwsQBDz7VELcMRVEovS49QiO3haIpvSfu4=";
|
||||
sha256 = "1fsw8w80h8k5w4zmy659bjlzqyn5i198hi1kbpzfrdn8psxg2bfj";
|
||||
};
|
||||
|
||||
patches = lib.optional stdenv.isDarwin ./darwin.patch;
|
||||
|
|
|
@ -31,15 +31,15 @@
|
|||
}
|
||||
},
|
||||
"dev": {
|
||||
"version": "96.0.4664.18",
|
||||
"sha256": "0z7hplfl9mlbn07svcavzcb2gqn1hchwhhlpz0qykf6kd441kxpf",
|
||||
"sha256bin64": "0y09aginw5qg7apm9wvxny7y8nxhsq7gnxp1jmghfjhv5xq7pdn9",
|
||||
"version": "97.0.4676.0",
|
||||
"sha256": "1cf660h7n1d4ds63747zfc4wmwxm348grcv40zg614cpjm4q68b5",
|
||||
"sha256bin64": "116a4d47s3sx1pq8hhqybdsjxcv8657xaldrlix2z7jh94ip2nwh",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2021-09-24",
|
||||
"version": "2021-10-08",
|
||||
"url": "https://gn.googlesource.com/gn",
|
||||
"rev": "0153d369bbccc908f4da4993b1ba82728055926a",
|
||||
"sha256": "0y4414h8jqsbz5af6pn91c0vkfp4s281s85g992xfyl785c5zbsi"
|
||||
"rev": "693f9fb87e4febdd4299db9f73d8d2c958e63148",
|
||||
"sha256": "1qfjj2mdpflry4f9fkagvb76zwfibys4nqz9lddy1zh5nnbd9mff"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -31,12 +31,12 @@ let
|
|||
|
||||
in mkDerivationWith python3Packages.buildPythonApplication rec {
|
||||
pname = "qutebrowser";
|
||||
version = "2.3.1";
|
||||
version = "2.4.0";
|
||||
|
||||
# the release tarballs are different from the git checkout!
|
||||
src = fetchurl {
|
||||
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "05n64mw9lzzxpxr7lhakbkm9ir3x8p0rwk6vbbg01aqg5iaanyj0";
|
||||
sha256 = "8s2auxTrq/ljBXOy+4RHvhkod3h9xOOWThtV9yqFkuw=";
|
||||
};
|
||||
|
||||
# Needs tox
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "flink";
|
||||
version = "1.13.2";
|
||||
version = "1.14.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/flink/${pname}-${version}/${pname}-${version}-bin-scala_2.11.tgz";
|
||||
sha256 = "sha256-GPiHV19Z2Htt75hCXK2nCeQMIBQFEEUxXlBembenFL0=";
|
||||
sha256 = "149b9ae774022acc0109dced893ca2d73430627a612be17ff12de8734464aff8";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
|
@ -62,6 +62,7 @@ let
|
|||
|
||||
pkg = interpreter.pkgs.nixops.withPlugins(ps: [
|
||||
ps.nixops-encrypted-links
|
||||
ps.nixops-hercules-ci
|
||||
ps.nixops-virtd
|
||||
ps.nixops-aws
|
||||
ps.nixops-gcp
|
||||
|
|
|
@ -41,6 +41,16 @@ self: super: {
|
|||
}
|
||||
);
|
||||
|
||||
nixops-hercules-ci = super.nixops-hercules-ci.overridePythonAttrs (
|
||||
_: {
|
||||
src = pkgs.fetchgit {
|
||||
url = "https://github.com/hercules-ci/nixops-hercules-ci.git";
|
||||
rev = "e601d5baffd003fd5f22deeaea0cb96444b054dc";
|
||||
sha256 = "0rcpv5hc6l9ia8lq8ivwa80b2pwssmdz8an25lhr4i2472mpx1p0";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
nixops-virtd = super.nixops-virtd.overridePythonAttrs (
|
||||
_: {
|
||||
src = pkgs.fetchgit {
|
||||
|
|
162
pkgs/applications/networking/cluster/nixops/poetry.lock
generated
162
pkgs/applications/networking/cluster/nixops/poetry.lock
generated
|
@ -38,14 +38,14 @@ python-versions = "*"
|
|||
|
||||
[[package]]
|
||||
name = "boto3"
|
||||
version = "1.18.60"
|
||||
version = "1.18.64"
|
||||
description = "The AWS SDK for Python"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">= 3.6"
|
||||
|
||||
[package.dependencies]
|
||||
botocore = ">=1.21.60,<1.22.0"
|
||||
botocore = ">=1.21.64,<1.22.0"
|
||||
jmespath = ">=0.7.1,<1.0.0"
|
||||
s3transfer = ">=0.5.0,<0.6.0"
|
||||
|
||||
|
@ -54,7 +54,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
|
|||
|
||||
[[package]]
|
||||
name = "botocore"
|
||||
version = "1.21.60"
|
||||
version = "1.21.64"
|
||||
description = "Low-level, data-driven core of boto 3."
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -66,7 +66,7 @@ python-dateutil = ">=2.1,<3.0.0"
|
|||
urllib3 = ">=1.25.4,<1.27"
|
||||
|
||||
[package.extras]
|
||||
crt = ["awscrt (==0.11.24)"]
|
||||
crt = ["awscrt (==0.12.5)"]
|
||||
|
||||
[[package]]
|
||||
name = "certifi"
|
||||
|
@ -78,7 +78,7 @@ python-versions = "*"
|
|||
|
||||
[[package]]
|
||||
name = "cffi"
|
||||
version = "1.14.6"
|
||||
version = "1.15.0"
|
||||
description = "Foreign Function Interface for Python calling C code."
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -135,7 +135,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
|||
|
||||
[[package]]
|
||||
name = "idna"
|
||||
version = "3.2"
|
||||
version = "3.3"
|
||||
description = "Internationalized Domain Names in Applications (IDNA)"
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -269,6 +269,24 @@ url = "https://github.com/nix-community/nixops-gce.git"
|
|||
reference = "master"
|
||||
resolved_reference = "712453027486e62e087b9c91e4a8a171eebb6ddd"
|
||||
|
||||
[[package]]
|
||||
name = "nixops-hercules-ci"
|
||||
version = "0.1.0"
|
||||
description = ""
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "^3.8"
|
||||
develop = false
|
||||
|
||||
[package.dependencies]
|
||||
nixops = {git = "https://github.com/NixOS/nixops.git", branch = "master"}
|
||||
|
||||
[package.source]
|
||||
type = "git"
|
||||
url = "https://github.com/hercules-ci/nixops-hercules-ci.git"
|
||||
reference = "master"
|
||||
resolved_reference = "e601d5baffd003fd5f22deeaea0cb96444b054dc"
|
||||
|
||||
[[package]]
|
||||
name = "nixops-virtd"
|
||||
version = "1.0"
|
||||
|
@ -583,7 +601,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
|
|||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = "^3.8"
|
||||
content-hash = "bd064837654a0d4a4691b3df01338b92c95a449ff400a9cd49fee843ab13ee92"
|
||||
content-hash = "8a294b2745b271983bac54258b4f3a2ab3b2e5b218440329fa7eea482c63774f"
|
||||
|
||||
[metadata.files]
|
||||
alabaster = [
|
||||
|
@ -603,63 +621,68 @@ boto = [
|
|||
{file = "boto-2.49.0.tar.gz", hash = "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a"},
|
||||
]
|
||||
boto3 = [
|
||||
{file = "boto3-1.18.60-py3-none-any.whl", hash = "sha256:8f3face72d2ac6ad36bd7724410548891ce338b350e6f98574890a7b1d425d78"},
|
||||
{file = "boto3-1.18.60.tar.gz", hash = "sha256:45709a04ec5fb67ce5a8eaade3eb0ab24d6eb08d9a9ca6bdb2153047896197fc"},
|
||||
{file = "boto3-1.18.64-py3-none-any.whl", hash = "sha256:b4d6299dd16a3042b7750cde00fe38d57fd59d3ce242308ba8488618ca931694"},
|
||||
{file = "boto3-1.18.64.tar.gz", hash = "sha256:9223b433b0d3b74f2b9574fb3c384048998343ccd6b608044318a7f9b904f661"},
|
||||
]
|
||||
botocore = [
|
||||
{file = "botocore-1.21.60-py3-none-any.whl", hash = "sha256:890a5835ac00415ff78f1c7118a774aae83c0c70742284b68abd1176f9d05761"},
|
||||
{file = "botocore-1.21.60.tar.gz", hash = "sha256:3e746ca75fb7539ba3f001169264fa54dfaded2477ffc8bd979ce1e1df200620"},
|
||||
{file = "botocore-1.21.64-py3-none-any.whl", hash = "sha256:d57287377e4c7c7d7bf6c5fa39e02994de1d99fced9492a58a00e5a54bae1cca"},
|
||||
{file = "botocore-1.21.64.tar.gz", hash = "sha256:0a30dca4dad7d43fd856e671ace95f9afc4726caa1e22f0ae11b654fc76e0c7d"},
|
||||
]
|
||||
certifi = [
|
||||
{file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
|
||||
{file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
|
||||
]
|
||||
cffi = [
|
||||
{file = "cffi-1.14.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c"},
|
||||
{file = "cffi-1.14.6-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99"},
|
||||
{file = "cffi-1.14.6-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819"},
|
||||
{file = "cffi-1.14.6-cp27-cp27m-win32.whl", hash = "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20"},
|
||||
{file = "cffi-1.14.6-cp27-cp27m-win_amd64.whl", hash = "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224"},
|
||||
{file = "cffi-1.14.6-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7"},
|
||||
{file = "cffi-1.14.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33"},
|
||||
{file = "cffi-1.14.6-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534"},
|
||||
{file = "cffi-1.14.6-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a"},
|
||||
{file = "cffi-1.14.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5"},
|
||||
{file = "cffi-1.14.6-cp35-cp35m-win32.whl", hash = "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca"},
|
||||
{file = "cffi-1.14.6-cp35-cp35m-win_amd64.whl", hash = "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218"},
|
||||
{file = "cffi-1.14.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f"},
|
||||
{file = "cffi-1.14.6-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872"},
|
||||
{file = "cffi-1.14.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195"},
|
||||
{file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d"},
|
||||
{file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b"},
|
||||
{file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb"},
|
||||
{file = "cffi-1.14.6-cp36-cp36m-win32.whl", hash = "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a"},
|
||||
{file = "cffi-1.14.6-cp36-cp36m-win_amd64.whl", hash = "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e"},
|
||||
{file = "cffi-1.14.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5"},
|
||||
{file = "cffi-1.14.6-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf"},
|
||||
{file = "cffi-1.14.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69"},
|
||||
{file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56"},
|
||||
{file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c"},
|
||||
{file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762"},
|
||||
{file = "cffi-1.14.6-cp37-cp37m-win32.whl", hash = "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771"},
|
||||
{file = "cffi-1.14.6-cp37-cp37m-win_amd64.whl", hash = "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a"},
|
||||
{file = "cffi-1.14.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0"},
|
||||
{file = "cffi-1.14.6-cp38-cp38-manylinux1_i686.whl", hash = "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e"},
|
||||
{file = "cffi-1.14.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346"},
|
||||
{file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc"},
|
||||
{file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd"},
|
||||
{file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc"},
|
||||
{file = "cffi-1.14.6-cp38-cp38-win32.whl", hash = "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548"},
|
||||
{file = "cffi-1.14.6-cp38-cp38-win_amd64.whl", hash = "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156"},
|
||||
{file = "cffi-1.14.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d"},
|
||||
{file = "cffi-1.14.6-cp39-cp39-manylinux1_i686.whl", hash = "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e"},
|
||||
{file = "cffi-1.14.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c"},
|
||||
{file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202"},
|
||||
{file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f"},
|
||||
{file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87"},
|
||||
{file = "cffi-1.14.6-cp39-cp39-win32.whl", hash = "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728"},
|
||||
{file = "cffi-1.14.6-cp39-cp39-win_amd64.whl", hash = "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2"},
|
||||
{file = "cffi-1.14.6.tar.gz", hash = "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"},
|
||||
{file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"},
|
||||
{file = "cffi-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0"},
|
||||
{file = "cffi-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14"},
|
||||
{file = "cffi-1.15.0-cp27-cp27m-win32.whl", hash = "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474"},
|
||||
{file = "cffi-1.15.0-cp27-cp27m-win_amd64.whl", hash = "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6"},
|
||||
{file = "cffi-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27"},
|
||||
{file = "cffi-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023"},
|
||||
{file = "cffi-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2"},
|
||||
{file = "cffi-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e"},
|
||||
{file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7"},
|
||||
{file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3"},
|
||||
{file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c"},
|
||||
{file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962"},
|
||||
{file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382"},
|
||||
{file = "cffi-1.15.0-cp310-cp310-win32.whl", hash = "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55"},
|
||||
{file = "cffi-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0"},
|
||||
{file = "cffi-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e"},
|
||||
{file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39"},
|
||||
{file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc"},
|
||||
{file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032"},
|
||||
{file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8"},
|
||||
{file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605"},
|
||||
{file = "cffi-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e"},
|
||||
{file = "cffi-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc"},
|
||||
{file = "cffi-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636"},
|
||||
{file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4"},
|
||||
{file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997"},
|
||||
{file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b"},
|
||||
{file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2"},
|
||||
{file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7"},
|
||||
{file = "cffi-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66"},
|
||||
{file = "cffi-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029"},
|
||||
{file = "cffi-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880"},
|
||||
{file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20"},
|
||||
{file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024"},
|
||||
{file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e"},
|
||||
{file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728"},
|
||||
{file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6"},
|
||||
{file = "cffi-1.15.0-cp38-cp38-win32.whl", hash = "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c"},
|
||||
{file = "cffi-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443"},
|
||||
{file = "cffi-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a"},
|
||||
{file = "cffi-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37"},
|
||||
{file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a"},
|
||||
{file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e"},
|
||||
{file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"},
|
||||
{file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df"},
|
||||
{file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8"},
|
||||
{file = "cffi-1.15.0-cp39-cp39-win32.whl", hash = "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a"},
|
||||
{file = "cffi-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139"},
|
||||
{file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"},
|
||||
]
|
||||
charset-normalizer = [
|
||||
{file = "charset-normalizer-2.0.7.tar.gz", hash = "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0"},
|
||||
|
@ -676,8 +699,6 @@ cryptography = [
|
|||
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34dae04a0dce5730d8eb7894eab617d8a70d0c97da76b905de9efb7128ad7085"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:9965c46c674ba8cc572bc09a03f4c649292ee73e1b683adb1ce81e82e9a6a0fb"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3c4129fc3fdc0fa8e40861b5ac0c673315b3c902bbdc05fc176764815b43dd1d"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:695104a9223a7239d155d7627ad912953b540929ef97ae0c34c7b8bf30857e89"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-win32.whl", hash = "sha256:21ca464b3a4b8d8e86ba0ee5045e103a1fcfac3b39319727bc0fc58c09c6aff7"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-win_amd64.whl", hash = "sha256:3520667fda779eb788ea00080124875be18f2d8f0848ec00733c0ec3bb8219fc"},
|
||||
{file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d2a6e5ef66503da51d2110edf6c403dc6b494cc0082f85db12f54e9c5d4c3ec5"},
|
||||
|
@ -695,8 +716,8 @@ docutils = [
|
|||
{file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
|
||||
]
|
||||
idna = [
|
||||
{file = "idna-3.2-py3-none-any.whl", hash = "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a"},
|
||||
{file = "idna-3.2.tar.gz", hash = "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"},
|
||||
{file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
|
||||
{file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
|
||||
]
|
||||
imagesize = [
|
||||
{file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
|
||||
|
@ -714,22 +735,12 @@ libvirt-python = [
|
|||
{file = "libvirt-python-7.8.0.tar.gz", hash = "sha256:9d07416d66805bf1a17f34491b3ced2ac6c42b6a012ddf9177e0e3ae1b103fd5"},
|
||||
]
|
||||
markupsafe = [
|
||||
{file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"},
|
||||
{file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"},
|
||||
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
|
||||
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
|
||||
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
|
||||
{file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
|
||||
{file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
|
||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
|
||||
{file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
|
||||
|
@ -738,21 +749,14 @@ markupsafe = [
|
|||
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"},
|
||||
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"},
|
||||
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"},
|
||||
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
|
||||
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
|
||||
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
|
||||
{file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
|
||||
{file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
|
||||
{file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
|
||||
{file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
|
||||
|
@ -762,9 +766,6 @@ markupsafe = [
|
|||
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"},
|
||||
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"},
|
||||
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"},
|
||||
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
|
||||
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
|
||||
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
|
||||
{file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
|
||||
{file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
|
||||
{file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
|
||||
|
@ -773,6 +774,7 @@ nixops = []
|
|||
nixops-aws = []
|
||||
nixops-encrypted-links = []
|
||||
nixops-gcp = []
|
||||
nixops-hercules-ci = []
|
||||
nixops-virtd = []
|
||||
nixopsvbox = []
|
||||
nixos-modules-contrib = []
|
||||
|
|
|
@ -11,6 +11,7 @@ nixops-aws = {git = "https://github.com/NixOS/nixops-aws.git"}
|
|||
nixops-gcp = {git = "https://github.com/nix-community/nixops-gce.git"}
|
||||
nixopsvbox = {git = "https://github.com/nix-community/nixops-vbox.git"}
|
||||
nixops-encrypted-links = {git = "https://github.com/nix-community/nixops-encrypted-links.git"}
|
||||
nixops-hercules-ci = {git = "https://github.com/hercules-ci/nixops-hercules-ci.git"}
|
||||
nixops-virtd = {git = "https://github.com/nix-community/nixops-libvirtd.git"}
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
|
|
|
@ -17,14 +17,14 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "bubblemail";
|
||||
version = "1.3";
|
||||
version = "1.4";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "framagit.org";
|
||||
owner = "razer";
|
||||
repo = "bubblemail";
|
||||
rev = "v${version}";
|
||||
sha256 = "FEIdEoZBlM28F5kSMoln7KACwetb8hp+qix1P+DIE8k=";
|
||||
sha256 = "sha256-MPl4pXvdhwCFWTepn/Mxp8ZMs+HCzXC59qdKZp3mHdw=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20211015";
|
||||
version = "20211022";
|
||||
pname = "neomutt";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "neomutt";
|
||||
repo = "neomutt";
|
||||
rev = version;
|
||||
sha256 = "sha256-ObYeh9Q/WZ1N60pxR2LoDNCU8rP4tQt/oIxnqALqMhs=";
|
||||
sha256 = "sha256-gPMbl+g9tU7YmT3uJoJozCdDBb/4eFyVyvHdREK1Ss0=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
, makeWrapper
|
||||
, ncurses
|
||||
, gnugrep
|
||||
, fetchpatch
|
||||
, copyDesktopItems
|
||||
, makeDesktopItem
|
||||
, enableX11 ? true
|
||||
|
@ -15,29 +14,19 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "unison";
|
||||
version = "2.51.3";
|
||||
version = "2.51.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bcpierce00";
|
||||
repo = "unison";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-42hmdMwOYSWGiDCmhuqtpCWtvtyD2l+kA/bhHD/Qh5Y=";
|
||||
sha256 = "sha256-jcfq4X+r98bQqbQ3gRqJyryLdt1Y/2CLawqqIiUaQOo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
++ lib.optional enableX11 copyDesktopItems;
|
||||
buildInputs = [ ocamlPackages.ocaml ncurses ];
|
||||
|
||||
patches = [
|
||||
# Patch to fix build with ocaml 4.12. Remove in 2.51.4
|
||||
# https://github.com/bcpierce00/unison/pull/481
|
||||
(fetchpatch {
|
||||
name = "fix-compile-with-ocaml-4.12.patch";
|
||||
url = "https://github.com/bcpierce00/unison/commit/14b885316e0a4b41cb80fe3daef7950f88be5c8f.patch?full_index=1";
|
||||
sha256 = "0j1rma1cwdsfql19zvzhfj2ys5c4lbhjcp6jrnck04xnckxxiy3d";
|
||||
})
|
||||
];
|
||||
|
||||
preBuild = lib.optionalString enableX11 ''
|
||||
sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${ocamlPackages.lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" src/Makefile.OCaml
|
||||
'' + ''
|
||||
|
|
|
@ -16,21 +16,29 @@
|
|||
, qtquickcontrols2
|
||||
, qtwebengine
|
||||
, rustPlatform
|
||||
, srcs
|
||||
|
||||
# These must be updated in tandem with package updates.
|
||||
, cargoShaForVersion ? "21.08"
|
||||
, cargoSha256 ? "1pbvw9hdzn3i97mahdy9y6jnjsmwmjs3lxfz7q6r9r10i8swbkak"
|
||||
}:
|
||||
|
||||
# Guard against incomplete updates.
|
||||
# Values are provided as callPackage inputs to enable easier overrides through overlays.
|
||||
if cargoShaForVersion != srcs.angelfish.version
|
||||
then builtins.throw ''
|
||||
angelfish package update is incomplete.
|
||||
Hash for cargo dependencies is declared for version ${cargoShaForVersion}, but we're building ${srcs.angelfish.version}.
|
||||
Update the cargoSha256 and cargoShaForVersion for angelfish.
|
||||
'' else
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "angelfish";
|
||||
version = "21.08";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/plasma-mobile/${version}/angelfish-${version}.tar.xz";
|
||||
sha256 = "1gzvlha159bw767mj8lisn89592j4j4dazzfws3v4anddjh60xnh";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
sha256 = "1pbvw9hdzn3i97mahdy9y6jnjsmwmjs3lxfz7q6r9r10i8swbkak";
|
||||
src = srcs.angelfish.src;
|
||||
name = "${pname}-${srcs.angelfish.version}";
|
||||
sha256 = cargoSha256;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
61
pkgs/applications/plasma-mobile/audiotube.nix
Normal file
61
pkgs/applications/plasma-mobile/audiotube.nix
Normal file
|
@ -0,0 +1,61 @@
|
|||
{ lib
|
||||
, mkDerivation
|
||||
, fetchpatch
|
||||
|
||||
, extra-cmake-modules
|
||||
|
||||
, kcoreaddons
|
||||
, kcrash
|
||||
, ki18n
|
||||
, kirigami2
|
||||
, qtmultimedia
|
||||
, qtquickcontrols2
|
||||
, python3Packages
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "audiotube";
|
||||
|
||||
patches = [
|
||||
# Fix compatibility with ytmusicapi 0.19.1
|
||||
(fetchpatch {
|
||||
url = "https://invent.kde.org/plasma-mobile/audiotube/-/commit/734caa02805988200f923b88d1590b3f7dac8ac2.patch";
|
||||
sha256 = "0zq4f0w84dv0630bpvmqkfmhxbvibr2fxhzy6d2mnf098028gzyd";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
python3Packages.wrapPython
|
||||
python3Packages.pybind11
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
kcoreaddons
|
||||
kcrash
|
||||
ki18n
|
||||
kirigami2
|
||||
qtmultimedia
|
||||
qtquickcontrols2
|
||||
python3Packages.youtube-dl
|
||||
python3Packages.ytmusicapi
|
||||
];
|
||||
|
||||
pythonPath = [
|
||||
python3Packages.youtube-dl
|
||||
python3Packages.ytmusicapi
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
buildPythonPath "$pythonPath"
|
||||
qtWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH")
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Client for YouTube Music";
|
||||
homepage = "https://invent.kde.org/plasma-mobile/audiotube";
|
||||
# https://invent.kde.org/plasma-mobile/audiotube/-/tree/c503d0607a3386112beaa9cf990ab85fe33ef115/LICENSES
|
||||
license = with licenses; [ bsd2 cc0 gpl2Only gpl3Only ];
|
||||
maintainers = with maintainers; [ samueldr ];
|
||||
};
|
||||
}
|
|
@ -62,12 +62,17 @@ let
|
|||
};
|
||||
in {
|
||||
alligator = callPackage ./alligator.nix {};
|
||||
angelfish = callPackage ./angelfish.nix { inherit srcs; };
|
||||
audiotube = callPackage ./audiotube.nix {};
|
||||
calindori = callPackage ./calindori.nix {};
|
||||
kalk = callPackage ./kalk.nix {};
|
||||
kasts = callPackage ./kasts.nix {};
|
||||
kclock = callPackage ./kclock.nix {};
|
||||
keysmith = callPackage ./keysmith.nix {};
|
||||
koko = callPackage ./koko.nix {};
|
||||
krecorder = callPackage ./krecorder.nix {};
|
||||
ktrip = callPackage ./ktrip.nix {};
|
||||
kweather = callPackage ./kweather.nix {};
|
||||
plasma-dialer = callPackage ./plasma-dialer.nix {};
|
||||
plasma-phonebook = callPackage ./plasma-phonebook.nix {};
|
||||
spacebar = callPackage ./spacebar.nix {};
|
||||
|
|
|
@ -1 +1 @@
|
|||
WGET_ARGS=( http://download.kde.org/stable/plasma-mobile/21.05 -A '*.tar.xz' )
|
||||
WGET_ARGS=( https://download.kde.org/stable/plasma-mobile/21.08/ -A '*.tar.xz' )
|
||||
|
|
57
pkgs/applications/plasma-mobile/kasts.nix
Normal file
57
pkgs/applications/plasma-mobile/kasts.nix
Normal file
|
@ -0,0 +1,57 @@
|
|||
{ lib
|
||||
, mkDerivation
|
||||
|
||||
, cmake
|
||||
, extra-cmake-modules
|
||||
, wrapGAppsHook
|
||||
|
||||
, gst_all_1
|
||||
, kconfig
|
||||
, kcoreaddons
|
||||
, ki18n
|
||||
, kirigami2
|
||||
, qtmultimedia
|
||||
, qtquickcontrols2
|
||||
, syndication
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad;
|
||||
in
|
||||
mkDerivation rec {
|
||||
pname = "kasts";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gst-plugins-bad
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gstreamer
|
||||
|
||||
kconfig
|
||||
kcoreaddons
|
||||
ki18n
|
||||
kirigami2
|
||||
qtquickcontrols2
|
||||
qtmultimedia
|
||||
syndication
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
dontWrapGApps = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Mobile podcast application";
|
||||
homepage = "https://apps.kde.org/kasts/";
|
||||
# https://invent.kde.org/plasma-mobile/kasts/-/tree/master/LICENSES
|
||||
license = with licenses; [ bsd2 cc-by-sa-40 cc0 gpl2Only gpl2Plus gpl3Only gpl3Plus lgpl3Plus ];
|
||||
maintainers = with maintainers; [ samueldr ];
|
||||
};
|
||||
}
|
39
pkgs/applications/plasma-mobile/keysmith.nix
Normal file
39
pkgs/applications/plasma-mobile/keysmith.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{ lib
|
||||
, mkDerivation
|
||||
|
||||
, cmake
|
||||
, extra-cmake-modules
|
||||
|
||||
, kdbusaddons
|
||||
, ki18n
|
||||
, kirigami2
|
||||
, kwindowsystem
|
||||
, libsodium
|
||||
, qtquickcontrols2
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "keysmith";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
kdbusaddons
|
||||
ki18n
|
||||
kirigami2
|
||||
kwindowsystem
|
||||
libsodium
|
||||
qtquickcontrols2
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "OTP client for Plasma Mobile and Desktop";
|
||||
license = licenses.gpl3;
|
||||
homepage = "https://github.com/KDE/keysmith";
|
||||
maintainers = with maintainers; [ samueldr shamilton ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -12,6 +12,7 @@
|
|||
, kirigami2
|
||||
, kitemmodels
|
||||
, kpublictransport
|
||||
, qqc2-desktop-style
|
||||
, qtquickcontrols2
|
||||
}:
|
||||
|
||||
|
@ -32,6 +33,7 @@ mkDerivation rec {
|
|||
kirigami2
|
||||
kitemmodels
|
||||
kpublictransport
|
||||
qqc2-desktop-style
|
||||
qtquickcontrols2
|
||||
];
|
||||
|
||||
|
|
44
pkgs/applications/plasma-mobile/kweather.nix
Normal file
44
pkgs/applications/plasma-mobile/kweather.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{ lib
|
||||
, mkDerivation
|
||||
|
||||
, cmake
|
||||
, extra-cmake-modules
|
||||
|
||||
, kconfig
|
||||
, ki18n
|
||||
, kirigami2
|
||||
, knotifications
|
||||
, kquickcharts
|
||||
, kweathercore
|
||||
, plasma-framework
|
||||
, qtcharts
|
||||
, qtquickcontrols2
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "kweather";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
kconfig
|
||||
ki18n
|
||||
kirigami2
|
||||
knotifications
|
||||
kquickcharts
|
||||
kweathercore
|
||||
plasma-framework
|
||||
qtcharts
|
||||
qtquickcontrols2
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Weather application for Plasma Mobile";
|
||||
homepage = "https://invent.kde.org/plasma-mobile/kweather";
|
||||
license = with licenses; [ gpl2Plus cc-by-40 ];
|
||||
maintainers = with maintainers; [ samueldr ];
|
||||
};
|
||||
}
|
|
@ -9,7 +9,9 @@
|
|||
, kirigami2
|
||||
, knotifications
|
||||
, kpeople
|
||||
, libphonenumber
|
||||
, libqofono
|
||||
, protobuf
|
||||
, telepathy
|
||||
}:
|
||||
|
||||
|
@ -27,7 +29,9 @@ mkDerivation rec {
|
|||
kirigami2
|
||||
knotifications
|
||||
kpeople
|
||||
libphonenumber
|
||||
libqofono
|
||||
protobuf # Needed by libphonenumber
|
||||
telepathy
|
||||
];
|
||||
|
||||
|
|
|
@ -1,118 +1,158 @@
|
|||
# DO NOT EDIT! This file is generated automatically.
|
||||
# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/plasma-mobile/
|
||||
# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/plasma-mobile
|
||||
{ fetchurl, mirror }:
|
||||
|
||||
{
|
||||
alligator = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/alligator-21.05.tar.xz";
|
||||
sha256 = "04zgxfx2zmn1p2ap08i5sfsnrly3smip4ylr07ghkhkiyjzbv9w6";
|
||||
name = "alligator-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/alligator-21.08.tar.xz";
|
||||
sha256 = "1dhwfwd1v5wmx3sldpygb79kz87j13wd0arhlkm94z1whsixan0q";
|
||||
name = "alligator-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
angelfish = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/angelfish-21.05.tar.xz";
|
||||
sha256 = "11jd5dwy0xa7kh5z5rc29xy3wfn20hm31908zjax4x83qqjrm075";
|
||||
name = "angelfish-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/angelfish-21.08.tar.xz";
|
||||
sha256 = "1gzvlha159bw767mj8lisn89592j4j4dazzfws3v4anddjh60xnh";
|
||||
name = "angelfish-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
audiotube = {
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/audiotube-21.08.tar.xz";
|
||||
sha256 = "14h4xna9v70lmp7cfpvdnz0f5a4gwgj0q3byccmawm38xsv15v8c";
|
||||
name = "audiotube-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
calindori = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/calindori-21.05.tar.xz";
|
||||
sha256 = "110f9ri9r1nb6q1ybhkfxljl4q5gqxikh9z0xkzjjbxjjqfscqcj";
|
||||
name = "calindori-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/calindori-21.08.tar.xz";
|
||||
sha256 = "08s16a8skh02n8ygqwryxpzczj5aqr5k58aijaz2gzx45m7ym31b";
|
||||
name = "calindori-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
kalk = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/kalk-21.05.tar.xz";
|
||||
sha256 = "04n65hx0j9rx6b3jq69zgypi8qjd4ig3rfw7d44c3q7dgh4k451l";
|
||||
name = "kalk-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/kalk-21.08.tar.xz";
|
||||
sha256 = "0xzrahpz47yajalsfmpzmavxjwmr4bgljwyz2dhxdg40ryjxdy23";
|
||||
name = "kalk-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
kasts = {
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/kasts-21.08.tar.xz";
|
||||
sha256 = "10v6icxwv46nihzbdi0n2w71bsg7l166z7jf9rb7vf2mjh1gqavn";
|
||||
name = "kasts-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
kclock = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/kclock-21.05.tar.xz";
|
||||
sha256 = "0pa5hvax0y80l8yrqczh9mcknfm3z0vdq3xc35cxdiz1vc6fwqmd";
|
||||
name = "kclock-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/kclock-21.08.tar.xz";
|
||||
sha256 = "1zq0fxlwd7l3b6dgfqsmv1x4wvhmrjz5r0a38hbd7j7pzgyix47d";
|
||||
name = "kclock-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
keysmith = {
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/keysmith-21.08.tar.xz";
|
||||
sha256 = "0fa8inli7cwmb75af0mr2cflng0r6k3pd6ckih6ph7szqbpg2x90";
|
||||
name = "keysmith-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
koko = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/koko-21.05.tar.xz";
|
||||
sha256 = "00hnzkl8dvf15psrcfh96b8wfb3pbggd2f7xnadzcb87sbaml035";
|
||||
name = "koko-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/koko-21.08.tar.xz";
|
||||
sha256 = "1sqlcl871m6dlrnkkhqa3xfwix01d74d7jf94r1a3p32hqljv76p";
|
||||
name = "koko-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
kongress = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/kongress-21.05.tar.xz";
|
||||
sha256 = "0qxgpi04ra9crc6drgbdm9arjbvcx52pprjr1dj8acch07f6i2gs";
|
||||
name = "kongress-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/kongress-21.08.tar.xz";
|
||||
sha256 = "099ds4bv4ngx21f28hxcvc17wd2nk786kydwf2h5n3mdd2mgz3ka";
|
||||
name = "kongress-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
krecorder = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/krecorder-21.05.tar.xz";
|
||||
sha256 = "0ydaidxx2616bixihyaagvyym1r5s9rjkgg04vq9k4608d4vnn5c";
|
||||
name = "krecorder-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/krecorder-21.08.tar.xz";
|
||||
sha256 = "1381x889h37saf6k875iqhwz5vbixrp7650smxp31r56ycrqq26i";
|
||||
name = "krecorder-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
ktrip = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/ktrip-21.05.tar.xz";
|
||||
sha256 = "0hxgnncyc2ir6i9p6s9fy1r4mhxgm643pxvp8lj3j5y0c5wk2kp9";
|
||||
name = "ktrip-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/ktrip-21.08.tar.xz";
|
||||
sha256 = "0ipxi3pqd7mznq3qjf9j9w3wyck85lxnr81ay6b3ricfb08ry68x";
|
||||
name = "ktrip-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
kweather = {
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/kweather-21.08.tar.xz";
|
||||
sha256 = "0b1zjwsakwsnh6827zjhypvb04c78gwwygr7k1cy2x3finrp5if5";
|
||||
name = "kweather-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-dialer = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/plasma-dialer-21.05.tar.xz";
|
||||
sha256 = "0kwkjn7ry6snc86qi1j7kcq5qa6rbyk5i7v6gqf7a7wywkk9n045";
|
||||
name = "plasma-dialer-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/plasma-dialer-21.08.tar.xz";
|
||||
sha256 = "14vgjg0nihhm446cfrrld1l43r50dlah5xs2ypdnm68618bdc7p1";
|
||||
name = "plasma-dialer-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-phonebook = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/plasma-phonebook-21.05.tar.xz";
|
||||
sha256 = "0aqqi3gvcsh4zg41zf8y0c626lwrabjchhr8pxj4n9la7y0wdvca";
|
||||
name = "plasma-phonebook-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/plasma-phonebook-21.08.tar.xz";
|
||||
sha256 = "09gr5mkwhayx6k6bhm29bmcvdlqqw8jj7gydh5fz40g9z98c84km";
|
||||
name = "plasma-phonebook-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-settings = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/plasma-settings-21.05.tar.xz";
|
||||
sha256 = "16bhx0i8gvi9ina4jxzx02xyzypyjic9646lahxvzvzmd9hn9ipi";
|
||||
name = "plasma-settings-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/plasma-settings-21.08.tar.xz";
|
||||
sha256 = "005v1gyrzl9b0k875p2wipja3l8l4awp8nl2d1jx7c28lqaspz2j";
|
||||
name = "plasma-settings-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
qmlkonsole = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/qmlkonsole-21.05.tar.xz";
|
||||
sha256 = "1ga48n09zlgvf5vvk2m26ak3ih5gjf361xxnyfprimmd7yj23han";
|
||||
name = "qmlkonsole-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/qmlkonsole-21.08.tar.xz";
|
||||
sha256 = "1p3ysf6sgiji86400523hm67rvw3znj3a7k6g6s83dxynxdh2faq";
|
||||
name = "qmlkonsole-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
spacebar = {
|
||||
version = "21.05";
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.05/spacebar-21.05.tar.xz";
|
||||
sha256 = "16lvi5yzmvk6gb5m7csk44y2jbkk7psn1lkljmj1938p2475b94c";
|
||||
name = "spacebar-21.05.tar.xz";
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/spacebar-21.08.tar.xz";
|
||||
sha256 = "1cg36iys4x7p97ywilnp2lzz1ry5a1m7jz38yh2yiw6m8wvzfqff";
|
||||
name = "spacebar-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
tokodon = {
|
||||
version = "21.08";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma-mobile/21.08/tokodon-21.08.tar.xz";
|
||||
sha256 = "0j9zfcdss1872hv8xxrmy0jjmcz3y5kdz8gdrd6qmig5scrzjvnf";
|
||||
name = "tokodon-21.08.tar.xz";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
25
pkgs/applications/radio/airspyhf/default.nix
Normal file
25
pkgs/applications/radio/airspyhf/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libusb1 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "airspyhf";
|
||||
version = "1.6.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "airspy";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-RKTMEDPeKcerJZtXTn8eAShxDcZUMgeQg/+7pEpMyVg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
||||
buildInputs = [ libusb1 ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "User mode driver for Airspy HF+";
|
||||
homepage = "https://github.com/airspy/airspyhf";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ sikmir ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
49
pkgs/applications/radio/freedv/default.nix
Normal file
49
pkgs/applications/radio/freedv/default.nix
Normal file
|
@ -0,0 +1,49 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, codec2
|
||||
, libsamplerate
|
||||
, libsndfile
|
||||
, lpcnetfreedv
|
||||
, portaudio
|
||||
, speexdsp
|
||||
, hamlib
|
||||
, wxGTK31-gtk3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "freedv";
|
||||
version = "1.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "drowe67";
|
||||
repo = "freedv-gui";
|
||||
rev = "v${version}";
|
||||
sha256 = "1dzhf944vgla9a5ilcgwivhzgdbfaknqnwbpb071a0rz8rajnv0q";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [
|
||||
codec2
|
||||
libsamplerate
|
||||
libsndfile
|
||||
lpcnetfreedv
|
||||
portaudio
|
||||
speexdsp
|
||||
hamlib
|
||||
wxGTK31-gtk3
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DUSE_INTERNAL_CODEC2:BOOL=FALSE"
|
||||
"-DUSE_STATIC_DEPS:BOOL=FALSE"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://freedv.org/";
|
||||
description = "Digital voice for HF radio";
|
||||
license = licenses.lgpl21;
|
||||
maintainers = with maintainers; [ mvs ];
|
||||
};
|
||||
}
|
|
@ -33,13 +33,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "sdrangel";
|
||||
version = "6.16.3";
|
||||
version = "6.17.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "f4exb";
|
||||
repo = "sdrangel";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-qgFnl9IliKRI4TptpXyK9JHzpLEUQ7NZLIfc0AROCvA=";
|
||||
sha256 = "sha256-VWHFrgJVyI3CtLXUiG3/4/cRTD8jSdunbrro34yLKvs=";
|
||||
fetchSubmodules = false;
|
||||
};
|
||||
|
||||
|
|
107
pkgs/applications/radio/sdrpp/default.nix
Normal file
107
pkgs/applications/radio/sdrpp/default.nix
Normal file
|
@ -0,0 +1,107 @@
|
|||
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config
|
||||
, libX11, glfw, glew, fftwFloat, volk
|
||||
# Sources
|
||||
, airspy_source ? true, airspy
|
||||
, airspyhf_source ? true, airspyhf
|
||||
, bladerf_source ? false, libbladeRF
|
||||
, file_source ? true
|
||||
, hackrf_source ? true, hackrf
|
||||
, limesdr_source ? false, limesuite
|
||||
, sddc_source ? false
|
||||
, rtl_sdr_source ? true, librtlsdr, libusb1
|
||||
, rtl_tcp_source ? true
|
||||
, sdrplay_source ? false, sdrplay
|
||||
, soapy_source ? true, soapysdr
|
||||
, spyserver_source ? true
|
||||
, plutosdr_source ? true, libiio, libad9361
|
||||
# Sinks
|
||||
, audio_sink ? true, rtaudio
|
||||
, portaudio_sink ? false, portaudio
|
||||
, network_sink ? true
|
||||
# Decoders
|
||||
, falcon9_decoder ? false
|
||||
, m17_decoder ? false, codec2
|
||||
, meteor_demodulator ? true
|
||||
, radio ? true
|
||||
, weather_sat_decoder ? true
|
||||
# Misc
|
||||
, discord_presence ? true
|
||||
, frequency_manager ? true
|
||||
, recorder ? true
|
||||
, rigctl_server ? true
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sdrpp";
|
||||
version = "1.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AlexandreRouma";
|
||||
repo = "SDRPlusPlus";
|
||||
rev = version;
|
||||
hash = "sha256-g9tpWvVRMXRhPfgvOeJhX6IMouF9+tLUr9wo5r35i/c=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "/usr" $out
|
||||
substituteInPlace decoder_modules/m17_decoder/src/m17dsp.h \
|
||||
--replace "codec2.h" "codec2/codec2.h"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
||||
buildInputs = [ glfw glew fftwFloat volk ]
|
||||
++ lib.optional stdenv.isLinux libX11
|
||||
++ lib.optional airspy_source airspy
|
||||
++ lib.optional airspyhf_source airspyhf
|
||||
++ lib.optional bladerf_source libbladeRF
|
||||
++ lib.optional hackrf_source hackrf
|
||||
++ lib.optional limesdr_source limesuite
|
||||
++ lib.optionals rtl_sdr_source [ librtlsdr libusb1 ]
|
||||
++ lib.optional sdrplay_source sdrplay
|
||||
++ lib.optional soapy_source soapysdr
|
||||
++ lib.optionals plutosdr_source [ libiio libad9361 ]
|
||||
++ lib.optional audio_sink rtaudio
|
||||
++ lib.optional portaudio_sink portaudio
|
||||
++ lib.optional m17_decoder codec2;
|
||||
|
||||
cmakeFlags = lib.mapAttrsToList (k: v: "-D${k}=${if v then "ON" else "OFF"}") {
|
||||
OPT_BUILD_AIRSPY_SOURCE = airspy_source;
|
||||
OPT_BUILD_AIRSPYHF_SOURCE = airspyhf_source;
|
||||
OPT_BUILD_BLADERF_SOURCE = bladerf_source;
|
||||
OPT_BUILD_FILE_SOURCE = file_source;
|
||||
OPT_BUILD_HACKRF_SOURCE = hackrf_source;
|
||||
OPT_BUILD_LIMESDR_SOURCE = limesdr_source;
|
||||
OPT_BUILD_SDDC_SOURCE = sddc_source;
|
||||
OPT_BUILD_RTL_SDR_SOURCE = rtl_sdr_source;
|
||||
OPT_BUILD_RTL_TCP_SOURCE = rtl_tcp_source;
|
||||
OPT_BUILD_SDRPLAY_SOURCE = sdrplay_source;
|
||||
OPT_BUILD_SOAPY_SOURCE = soapy_source;
|
||||
OPT_BUILD_SPYSERVER_SOURCE = spyserver_source;
|
||||
OPT_BUILD_PLUTOSDR_SOURCE = plutosdr_source;
|
||||
OPT_BUILD_AUDIO_SINK = audio_sink;
|
||||
OPT_BUILD_PORTAUDIO_SINK = portaudio_sink;
|
||||
OPT_BUILD_NETWORK_SINK = network_sink;
|
||||
OPT_BUILD_NEW_PORTAUDIO_SINK = portaudio_sink;
|
||||
OPT_BUILD_FALCON9_DECODER = falcon9_decoder;
|
||||
OPT_BUILD_M17_DECODER = m17_decoder;
|
||||
OPT_BUILD_METEOR_DEMODULATOR = meteor_demodulator;
|
||||
OPT_BUILD_RADIO = radio;
|
||||
OPT_BUILD_WEATHER_SAT_DECODER = weather_sat_decoder;
|
||||
OPT_BUILD_DISCORD_PRESENCE = discord_presence;
|
||||
OPT_BUILD_FREQUENCY_MANAGER = frequency_manager;
|
||||
OPT_BUILD_RECORDER = recorder;
|
||||
OPT_BUILD_RIGCTL_SERVER = rigctl_server;
|
||||
};
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-fpermissive";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Cross-Platform SDR Software";
|
||||
homepage = "https://github.com/AlexandreRouma/SDRPlusPlus";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ sikmir ];
|
||||
};
|
||||
}
|
|
@ -1,12 +1,14 @@
|
|||
{ lib, stdenv, fetchurl, unzip, zlib, python3, parallel }:
|
||||
{ lib, stdenv, fetchFromGitLab, unzip, zlib, python3, parallel }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "last";
|
||||
version = "1179";
|
||||
version = "1256";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://last.cbrc.jp/last-${version}.zip";
|
||||
sha256 = "sha256-949oiE7ZNkCOJuOK/huPkCN0c4TlVaTskkBe0joc0HU=";
|
||||
src = fetchFromGitLab {
|
||||
owner = "mcfrith";
|
||||
repo = "last";
|
||||
rev = version;
|
||||
sha256 = "sha256-lOsU0X4K6jYcbkTzwQV+KAerQh9odE4zCLtSgZrYH6s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "picard-tools";
|
||||
version = "2.26.2";
|
||||
version = "2.26.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
|
||||
sha256 = "sha256-mfqxaZpzX9BIoFl1okN3TxzJnoepsoMR1KqHLQY5BHQ=";
|
||||
sha256 = "sha256-H7VgD75tmAEd01Pj1o6BNT0QaXhd1pUIpAFmKM6OUlo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "1.6.0";
|
||||
version = "1.6.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tamarin-prover";
|
||||
repo = "tamarin-prover";
|
||||
rev = version;
|
||||
sha256 = "1pl3kz7gyw9g6s4x5j90z4snd10vq6296g3ajlr8d4n53p3c9i3w";
|
||||
sha256 = "sha256:0cz1v7k4d0im749ag632nc34n91b51b0pq4z05rzw1p59a5lza92";
|
||||
};
|
||||
|
||||
# tamarin has its own dependencies, but they're kept inside the repo,
|
||||
|
@ -85,15 +85,11 @@ mkDerivation (common "tamarin-prover" src // {
|
|||
|
||||
executableHaskellDepends = (with haskellPackages; [
|
||||
binary-instances binary-orphans blaze-html conduit file-embed
|
||||
gitrev http-types lifted-base monad-control monad-unlift
|
||||
gitrev http-types lifted-base monad-control
|
||||
resourcet shakespeare threads wai warp yesod-core yesod-static
|
||||
]) ++ [ tamarin-prover-utils
|
||||
tamarin-prover-sapic
|
||||
tamarin-prover-term
|
||||
tamarin-prover-theory
|
||||
];
|
||||
|
||||
# tamarin-prover 1.6 is incompatible with maude 3.1.
|
||||
hydraPlatforms = lib.platforms.none;
|
||||
broken = true;
|
||||
})
|
||||
|
|
|
@ -119,6 +119,6 @@ stdenv.mkDerivation rec {
|
|||
|
||||
platforms = platforms.all;
|
||||
|
||||
maintainers = with maintainers; teams.sage.members;
|
||||
maintainers = with maintainers; [ jbedo ] ++ teams.sage.members;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, withOpenCL ? true
|
||||
, ocl-icd
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "lucky-commit";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "not-an-aardvark";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0vs668i1yglfcqs94jhwdk90v0lja2w5kr5gakz082wykilms0zg";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-MvopLKhovwXaEmRgXnAzJeuhPgqnMjt0EtKUGSWFpaY=";
|
||||
|
||||
buildInputs = lib.optional withOpenCL [ ocl-icd ];
|
||||
|
||||
cargoBuildFlags = lib.optional (!withOpenCL) "--no-default-features";
|
||||
|
||||
# disable tests that require gpu
|
||||
cargoTestFlags = [ "--no-default-features" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Change the start of your git commit hashes to whatever you want";
|
||||
homepage = "https://github.com/not-an-aardvark/lucky-commit";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ figsoda ];
|
||||
mainProgram = "lucky_commit";
|
||||
};
|
||||
}
|
|
@ -16,12 +16,12 @@ with lib;
|
|||
|
||||
buildGoPackage rec {
|
||||
pname = "gitea";
|
||||
version = "1.15.4";
|
||||
version = "1.15.5";
|
||||
|
||||
# not fetching directly from the git repo, because that lacks several vendor files for the web UI
|
||||
src = fetchurl {
|
||||
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
|
||||
sha256 = "sha256-UsaTA6bI5pr3vbvO3jFn8A8qVRi385fbiJQD09Ut/X0=";
|
||||
sha256 = "sha256-W+czWzo4keTLRPDLcTeYl3JSccwfq+P6k4ELADO9FVM=";
|
||||
};
|
||||
|
||||
unpackPhase = ''
|
||||
|
|
|
@ -1,22 +1,31 @@
|
|||
{ lib, stdenv, rustPlatform, cmake, fetchFromGitHub, pkg-config, openssl
|
||||
, libiconv, Security, SystemConfiguration }:
|
||||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, pkg-config
|
||||
, stdenv
|
||||
, libiconv
|
||||
, Security
|
||||
, SystemConfiguration
|
||||
, openssl
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "gitoxide";
|
||||
version = "0.8.4";
|
||||
version = "0.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Byron";
|
||||
repo = "gitoxide";
|
||||
rev = "v${version}";
|
||||
sha256 = "WH8YiW1X7TkURjncm0OefxrZhnhGHaGLwxRNxe17g/0=";
|
||||
sha256 = "sha256-c29gmmkIOyS+HNq2kv53yq+sdEDmQbSmcvVGcd55/hk=";
|
||||
};
|
||||
|
||||
cargoSha256 = "eTPJMYl9m81o4PJKfpDs61KmehSvKnY+bgybEodOhAM=";
|
||||
cargoSha256 = "sha256-oc7XpiOZj4bfqdwrEHj/CzNtWzYWFkgMJOySJNgxAGQ=";
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
buildInputs = if stdenv.isDarwin
|
||||
then [ libiconv Security SystemConfiguration]
|
||||
then [ libiconv Security SystemConfiguration ]
|
||||
else [ openssl ];
|
||||
|
||||
# Needed to get openssl-sys to use pkg-config.
|
||||
|
@ -25,7 +34,8 @@ rustPlatform.buildRustPackage rec {
|
|||
meta = with lib; {
|
||||
description = "A command-line application for interacting with git repositories";
|
||||
homepage = "https://github.com/Byron/gitoxide";
|
||||
changelog = "https://github.com/Byron/gitoxide/blob/v${version}/CHANGELOG.md";
|
||||
license = with licenses; [ mit /* or */ asl20 ];
|
||||
maintainers = [ maintainers.syberant ];
|
||||
maintainers = with maintainers; [ syberant ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,30 @@
|
|||
{ lib, stdenv, fetchurl, glib, gtk3, meson, ninja, pkg-config, gnome, gettext, itstool, libxml2, libarchive
|
||||
, file, json-glib, python3, wrapGAppsHook, desktop-file-utils, libnotify, nautilus, glibcLocales
|
||||
, unzip, cpio }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, desktop-file-utils
|
||||
, gettext
|
||||
, glibcLocales
|
||||
, itstool
|
||||
, libxml2
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, cpio
|
||||
, file
|
||||
, glib
|
||||
, gnome
|
||||
, gtk3
|
||||
, json-glib
|
||||
, libarchive
|
||||
, libnotify
|
||||
, nautilus
|
||||
, pantheon
|
||||
, unzip
|
||||
, withPantheon ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "file-roller";
|
||||
|
@ -11,11 +35,43 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a";
|
||||
};
|
||||
|
||||
patches = lib.optionals withPantheon [
|
||||
# Make this respect dark mode settings from Pantheon
|
||||
# https://github.com/elementary/fileroller/
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/elementary/fileroller/f183eac36c68c9c9441e72294d4e305cf5fe36ed/fr-application-prefers-color-scheme.patch";
|
||||
sha256 = "sha256-d/sqf4Oen9UrzYqru7Ck15o/6g6WfxRDH/iAGFXgYAA=";
|
||||
})
|
||||
];
|
||||
|
||||
LANG = "en_US.UTF-8"; # postinstall.py
|
||||
|
||||
nativeBuildInputs = [ meson ninja gettext itstool pkg-config libxml2 python3 wrapGAppsHook glibcLocales desktop-file-utils ];
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gettext
|
||||
glibcLocales
|
||||
itstool
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [ glib gtk3 json-glib libarchive file gnome.adwaita-icon-theme libnotify nautilus cpio ];
|
||||
buildInputs = [
|
||||
cpio
|
||||
file
|
||||
glib
|
||||
gnome.adwaita-icon-theme
|
||||
gtk3
|
||||
json-glib
|
||||
libarchive
|
||||
libnotify
|
||||
nautilus
|
||||
] ++ lib.optionals withPantheon [
|
||||
pantheon.granite
|
||||
];
|
||||
|
||||
PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
|
||||
|
||||
|
@ -44,6 +100,6 @@ stdenv.mkDerivation rec {
|
|||
description = "Archive manager for the GNOME desktop environment";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members;
|
||||
maintainers = teams.gnome.members ++ teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-shell-extension-night-theme-switcher";
|
||||
version = "50";
|
||||
version = "53";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "rmnvgr";
|
||||
repo = "nightthemeswitcher-gnome-shell-extension";
|
||||
rev = "v${version}";
|
||||
sha256 = "0rs08kr3wizs1vpkmm6pbcvnn7rz47yrq7vnb1s8d58yda9a850d";
|
||||
rev = version;
|
||||
sha256 = "0dgnh1aj0y89jzfkpj8zs4gdbmyc1v8lbki2q30gld17ljv4l6lh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{ lib, stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop, gnome }:
|
||||
{ lib, stdenv, substituteAll, fetchFromGitHub, fetchpatch, glib, glib-networking, libgtop, gnome }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-shell-extension-system-monitor";
|
||||
version = "unstable-2021-06-19";
|
||||
version = "unstable-2021-09-07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "paradoxxxzero";
|
||||
repo = "gnome-shell-system-monitor-applet";
|
||||
rev = "bece7be22352b81d3d81e64e18a385812851b8de";
|
||||
sha256 = "08nnsg7z3cqk25hfgy4wm02hd2wpz13kig498kn4mf5f1q4hslmx";
|
||||
rev = "133f9f32bca5d159515d709bbdee81bf497ebdc5";
|
||||
sha256 = "1vz1s1x22xmmzaayrzv5jyzlmxslhfaybbnv959szvfp4mdrhch9";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -24,6 +24,11 @@ stdenv.mkDerivation rec {
|
|||
gtop_path = "${libgtop}/lib/girepository-1.0";
|
||||
glib_net_path = "${glib-networking}/lib/girepository-1.0";
|
||||
})
|
||||
# Support GNOME 41
|
||||
(fetchpatch {
|
||||
url = "https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet/pull/718/commits/f4ebc29afa707326b977230329e634db169f55b1.patch";
|
||||
sha256 = "0ndnla41mvrww6ldf9d55ar1ibyj8ak5pp1dkjg75jii9slgzjqb";
|
||||
})
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
|
@ -47,7 +52,7 @@ stdenv.mkDerivation rec {
|
|||
meta = with lib; {
|
||||
description = "Display system informations in gnome shell status bar";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ tiramiseb ];
|
||||
maintainers = with maintainers; [ andersk ];
|
||||
homepage = "https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -73,6 +73,8 @@ lib.makeScope pkgs.newScope (self: with self; {
|
|||
|
||||
evince = pkgs.evince.override { withPantheon = true; };
|
||||
|
||||
file-roller = pkgs.gnome.file-roller.override { withPantheon = true; };
|
||||
|
||||
sideload = callPackage ./apps/sideload { };
|
||||
|
||||
#### DESKTOP
|
||||
|
|
|
@ -241,8 +241,8 @@ rec {
|
|||
};
|
||||
|
||||
crystal_1_2 = generic {
|
||||
version = "1.2.0";
|
||||
sha256 = "sha256-38mmsolzmCnv+MFUMc+AEiklDLBHIr/jqXMLzc0nVq4=";
|
||||
version = "1.2.1";
|
||||
sha256 = "sha256-jyNmY3n+u8WoVqHY8B5H9Vr9Ix3RogCtm8irkXZ3aek=";
|
||||
binary = crystal_1_1;
|
||||
};
|
||||
|
||||
|
|
|
@ -6,16 +6,16 @@
|
|||
|
||||
coq.ocamlPackages.buildDunePackage rec {
|
||||
pname = "ligo";
|
||||
version = "0.26.0";
|
||||
version = "0.27.0";
|
||||
src = fetchFromGitLab {
|
||||
owner = "ligolang";
|
||||
repo = "ligo";
|
||||
rev = "d48098c6724bc0a62170c2f9ff73c792c71c8452";
|
||||
sha256 = "sha256-uu5985llYsi/9ExKZetk48FqU0sJQB1EirdT/pUw0DA=";
|
||||
rev = version;
|
||||
sha256 = "sha256-OUrjMlAWxTPs56ltMt0I/XR9GScD6upXU2arT99u8hk=";
|
||||
};
|
||||
|
||||
# The build picks this up for ligo --version
|
||||
LIGO_VERSION=version;
|
||||
LIGO_VERSION = version;
|
||||
|
||||
useDune2 = true;
|
||||
|
||||
|
|
|
@ -252,6 +252,7 @@ stdenv.mkDerivation {
|
|||
# LLVM toolchain patches.
|
||||
patch -p1 -d llvm-project/clang -i ${./patches/0005-clang-toolchain-dir.patch}
|
||||
patch -p1 -d llvm-project/clang -i ${./patches/0006-clang-purity.patch}
|
||||
patch -p1 -d llvm-project/compiler-rt -i ${../llvm/common/compiler-rt/libsanitizer-no-cyclades-11.patch}
|
||||
substituteInPlace llvm-project/clang/lib/Driver/ToolChains/Linux.cpp \
|
||||
--replace 'SysRoot + "/lib' '"${glibc}/lib" "' \
|
||||
--replace 'SysRoot + "/usr/lib' '"${glibc}/lib" "' \
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
{ lib, stdenv, fetchurl }:
|
||||
{ lib, stdenv, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kona";
|
||||
version = "3.21";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/kevinlawler/kona/archive/Win.${version}-64.tar.gz";
|
||||
sha256 = "0c1yf3idqkfq593xgqb25r2ykmfmp83zzh3q7kb8095a069gvri3";
|
||||
version = "20201009";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kevinlawler";
|
||||
repo = "kona";
|
||||
rev = "Win64-${version}";
|
||||
sha256 = "0v252zds61y01cf29hxznz1zc1724vxmzy059k9jiri4r73k679v";
|
||||
};
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
|
|
@ -26,7 +26,6 @@ let
|
|||
generic = { version, sha256 }: let
|
||||
ver = version;
|
||||
tag = ver.gitTag;
|
||||
atLeast27 = lib.versionAtLeast ver.majMin "2.7";
|
||||
atLeast30 = lib.versionAtLeast ver.majMin "3.0";
|
||||
baseruby = self.override {
|
||||
useRailsExpress = false;
|
||||
|
@ -105,7 +104,7 @@ let
|
|||
inherit patchSet useRailsExpress ops fetchpatch;
|
||||
patchLevel = ver.patchLevel;
|
||||
}).${ver.majMinTiny}
|
||||
++ op atLeast27 ./do-not-regenerate-revision.h.patch
|
||||
++ [ ./do-not-regenerate-revision.h.patch ]
|
||||
++ op (atLeast30 && useRailsExpress) ./do-not-update-gems-baseruby.patch
|
||||
# Ruby prior to 3.0 has a bug the installer (tools/rbinstall.rb) but
|
||||
# the resulting error was swallowed. Newer rubygems no longer swallows
|
||||
|
@ -252,14 +251,6 @@ let
|
|||
) args; in self;
|
||||
|
||||
in {
|
||||
ruby_2_6 = generic {
|
||||
version = rubyVersion "2" "6" "8" "";
|
||||
sha256 = {
|
||||
src = "0vfam28ifl6h2wxi6p70j0hm3f1pvsp432hf75m5j25wfy2vf1qq";
|
||||
git = "0rc3n6sk8632r0libpv8jwslc7852hgk64rvbdrspc9razjwx21c";
|
||||
};
|
||||
};
|
||||
|
||||
ruby_2_7 = generic {
|
||||
version = rubyVersion "2" "7" "4" "";
|
||||
sha256 = {
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
{ patchSet, useRailsExpress, ops, patchLevel, fetchpatch }:
|
||||
|
||||
{
|
||||
"2.6.8" = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.6/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
|
||||
"${patchSet}/patches/ruby/2.6/head/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.6/head/railsexpress/03-more-detailed-stacktrace.patch"
|
||||
];
|
||||
"2.7.4" = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.7/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
|
||||
"${patchSet}/patches/ruby/2.7/head/railsexpress/02-improve-gc-stats.patch"
|
||||
|
|
|
@ -2,17 +2,22 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "codec2";
|
||||
version = "1.0.0";
|
||||
version = "1.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "drowe67";
|
||||
repo = "codec2";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-R4H6gwmc8nPgRfhNms7n7jMCHhkzX7i/zfGT4CYSsY8=";
|
||||
sha256 = "05xjsb67dzwncl2rnhg6fqih8krf38b7vmvzlsb7y9g6d1b085wg";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
# Swap keyword order to satisfy SWIG parser
|
||||
postFixup = ''
|
||||
sed -r -i 's/(\<_Complex)(\s+)(float|double)/\3\2\1/' $out/include/$pname/freedv_api.h
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Speech codec designed for communications quality speech at low data rates";
|
||||
homepage = "http://www.rowetel.com/blog/?page_id=452";
|
||||
|
|
|
@ -5,19 +5,19 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "duckdb";
|
||||
version = "0.2.9";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cwida";
|
||||
repo = "duckdb";
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ID65xpNSDyi19OcOs9Gdf5xpK++UVWclp8pVggIWQNU=";
|
||||
sha256 = "sha256-SvihG6PdHQ+03JAXdkuzvGug4lw0ngcxYigS7R7yK9g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/cwida/duckdb";
|
||||
homepage = "https://github.com/duckdb/duckdb";
|
||||
description = "Embeddable SQL OLAP Database Management System";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
|
|
35
pkgs/development/libraries/kweathercore/default.nix
Normal file
35
pkgs/development/libraries/kweathercore/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ mkDerivation
|
||||
, lib
|
||||
, fetchFromGitLab
|
||||
, extra-cmake-modules
|
||||
, ki18n
|
||||
, qtlocation
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "kweathercore";
|
||||
version = "0.5";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "invent.kde.org";
|
||||
owner = "libraries";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "08ipabskhsbspkzzdlpwl89r070q8d0vc9500ma6d5i9fnpmkz6d";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ki18n
|
||||
qtlocation
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ extra-cmake-modules ];
|
||||
|
||||
meta = with lib; {
|
||||
license = [ licenses.cc0 ];
|
||||
maintainers = [ maintainers.samueldr ];
|
||||
description = ''
|
||||
Library to facilitate retrieval of weather information including forecasts and alerts
|
||||
'';
|
||||
};
|
||||
}
|
25
pkgs/development/libraries/libad9361/default.nix
Normal file
25
pkgs/development/libraries/libad9361/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchFromGitHub, cmake, libiio }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libad9361";
|
||||
version = "0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "analogdevicesinc";
|
||||
repo = "libad9361-iio";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dYoFWRnREvlOC514ZpmmvoS37DmIkVqfq7JPpTXqXd8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
buildInputs = [ libiio ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "IIO AD9361 library for filter design and handling, multi-chip sync, etc";
|
||||
homepage = "http://analogdevicesinc.github.io/libad9361-iio/";
|
||||
license = licenses.lgpl21Plus;
|
||||
maintainers = with maintainers; [ sikmir ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
34
pkgs/development/libraries/lpcnetfreedv/default.nix
Normal file
34
pkgs/development/libraries/lpcnetfreedv/default.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchurl, cmake, codec2 }:
|
||||
|
||||
let
|
||||
dataVersion = "191005_v1.0";
|
||||
data = fetchurl {
|
||||
url = "http://rowetel.com/downloads/deep/lpcnet_${dataVersion}.tgz";
|
||||
sha256 = "1j1695hm2pg6ri611f9kr3spm4yxvpikws55z9zxizai8y94152h";
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "lpcnetfreedv";
|
||||
version = "unstable-2021-06-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "drowe67";
|
||||
repo = "LPCNet";
|
||||
rev = "0dc5935bbf49ff3ba3c9654cc2f802838ebbaead";
|
||||
sha256 = "0r6488z40fkar11ync8achpg5l6qz7y7cbh7cs3b3w4fsxn58q9i";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ codec2 ];
|
||||
|
||||
postPatch = ''
|
||||
mkdir build
|
||||
ln -s ${data} build/lpcnet_${dataVersion}.tgz
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://freedv.org/";
|
||||
description = "Experimental Neural Net speech coding for FreeDV";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ mvs ];
|
||||
};
|
||||
}
|
|
@ -9,11 +9,11 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "pulseaudio-qt";
|
||||
version = "1.2.0";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/${pname}/${pname}-${lib.versions.majorMinor version}.tar.xz";
|
||||
sha256 = "1i0ql68kxv9jxs24rsd3s7jhjid3f2fq56fj4wbp16zb4wd14099";
|
||||
sha256 = "1i4yb0v1mmhih8c2i61hybg6q60qys3pc5wbjb7a0vwl1mihgsxw";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -4,11 +4,11 @@ let
|
|||
archiveVersion = import ./archive-version.nix lib;
|
||||
mkTool = { pname, makeTarget, description, homepage }: stdenv.mkDerivation rec {
|
||||
inherit pname;
|
||||
version = "3.35.5";
|
||||
version = "3.36.0";
|
||||
|
||||
src = assert version == sqlite.version; fetchurl {
|
||||
url = "https://sqlite.org/2021/sqlite-src-${archiveVersion version}.zip";
|
||||
sha256 = "049vdpk50sba786345ibmlxnkzk5zp4xj859658ancswb6jyrgpl";
|
||||
sha256 = "092khwfm0m0i80sjb4fc5569jj0kilm6pa867w0akcv6h38bk8r5";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
|
||||
buildDunePackage rec {
|
||||
pname = "carton";
|
||||
version = "0.4.2";
|
||||
version = "0.4.3";
|
||||
|
||||
useDune2 = true;
|
||||
minimumOCamlVersion = "4.08";
|
||||
minimalOCamlVersion = "4.08";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/mirage/ocaml-git/releases/download/${pname}-v${version}/${pname}-${pname}-v${version}.tbz";
|
||||
sha256 = "a0a03b2f7bb7dafe070bc6a74583b6d6da714d2c636dd4d5a6443c9f299ceacc";
|
||||
sha256 = "sha256:0qz9ds5761wx4m7ly3av843b6dii7lmjpx2nnyijv8rm8aw95jgr";
|
||||
};
|
||||
|
||||
# remove changelogs for mimic and the git* packages
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
buildDunePackage {
|
||||
pname = "carton-git";
|
||||
|
||||
inherit (carton) version src useDune2 minimumOCamlVersion postPatch;
|
||||
inherit (carton) version src useDune2 postPatch;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
carton
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
buildDunePackage {
|
||||
pname = "carton-lwt";
|
||||
|
||||
inherit (carton) version src useDune2 minimumOCamlVersion postPatch;
|
||||
inherit (carton) version src useDune2 postPatch;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
carton
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "adb-shell";
|
||||
version = "0.4.1";
|
||||
version = "0.4.2";
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
||||
|
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
|||
owner = "JeffLIrion";
|
||||
repo = "adb_shell";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-E7sX+N6d5Otwp1AbdPCnQJ2YT/k89+6kMJDLt8U2Dsg=";
|
||||
sha256 = "sha256-8tclSjmLlTAIeq6t7YPGtJwvSwtlzQ7sRAQatcQRzeY=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -1,23 +1,15 @@
|
|||
{ lib, buildPythonPackage, fetchPypi, fetchpatch
|
||||
{ lib, buildPythonPackage, fetchPypi
|
||||
, pygments, dominate, beautifulsoup4, docutils, sphinx }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "alectryon";
|
||||
owner = "cpitclaudel";
|
||||
version = "1.3.1";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256:0mca25jv917myb4n91ccpl5fz058aiqsn8cniflwfw5pp6lqnfg7";
|
||||
sha256 = "00cxzfifvgcf3d3s8lsj1yxcwyf3a1964p86fj7b42q8pa0b4r3i";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/cpitclaudel/alectryon/commit/c779def3fa268e703d4e0ff8ae0b2981e194b269.patch";
|
||||
sha256 = "0xsz56ibq8xj7gg530pfm1jmxbxw4r6v8xvzj5k1wdry83srqi65";
|
||||
})
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pygments
|
||||
dominate
|
||||
|
|
|
@ -1,18 +1,37 @@
|
|||
{ lib, buildPythonPackage, fetchPypi }:
|
||||
{ buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, pip
|
||||
, setuptools
|
||||
, wheel
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zc.buildout";
|
||||
version = "2.13.4";
|
||||
pname = "zc-buildout";
|
||||
version = "3.0.0b2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "b978b2f9317b317ee4191f78fcc4f05b1ac41bdaaae47f0956f14c8285feef63";
|
||||
src = fetchFromGitHub {
|
||||
owner = "buildout";
|
||||
repo = "buildout";
|
||||
rev = version;
|
||||
sha256 = "01sj09xx5kmkzynhq1xd8ahn6xqybfi8lrqjqr5lr45aaxjk2pid";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
setuptools
|
||||
pip
|
||||
wheel
|
||||
];
|
||||
|
||||
doCheck = false; # Missing package & BLOCKED on "zc.recipe.egg"
|
||||
|
||||
pythonImportsCheck = [ "zc.buildout" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.buildout.org";
|
||||
description = "A software build and configuration system";
|
||||
downloadPage = "https://github.com/buildout/buildout";
|
||||
homepage = "https://www.buildout.org";
|
||||
license = licenses.zpl21;
|
||||
maintainers = with maintainers; [ ];
|
||||
maintainers = with maintainers; [ superherointj ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, nbsmoke
|
||||
, param
|
||||
, pyct
|
||||
, nbsmoke
|
||||
, flake8
|
||||
, pytest
|
||||
, pytest-mpl
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
|
@ -24,25 +23,29 @@ buildPythonPackage rec {
|
|||
];
|
||||
|
||||
checkInputs = [
|
||||
pytest
|
||||
flake8
|
||||
pytest-mpl
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
preCheck = ''
|
||||
export HOME=$(mktemp -d)
|
||||
mkdir -p $HOME/.config/matplotlib
|
||||
echo "backend: ps" > $HOME/.config/matplotlib/matplotlibrc
|
||||
ln -s $HOME/.config/matplotlib $HOME/.matplotlib
|
||||
|
||||
# requires other backends to be available
|
||||
pytest colorcet -k 'not matplotlib_default_colormap_plot'
|
||||
'';
|
||||
|
||||
disabledTests = [
|
||||
"matplotlib_default_colormap_plot"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"colorcet"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Collection of perceptually uniform colormaps";
|
||||
homepage = "https://colorcet.pyviz.org";
|
||||
license = licenses.cc-by-40;
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
maintainers = with maintainers; [ costrouc ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -16,13 +16,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "faraday-plugins";
|
||||
version = "1.5.4";
|
||||
version = "1.5.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "infobyte";
|
||||
repo = "faraday_plugins";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-TKT++56pc1+nZXkqMgIq5DFgF9H1+Q5Fuj4KidCdRh0=";
|
||||
sha256 = "sha256-dnd6q/L3yh/9XkrWC4ETccSO6zr31wBsuumDvwemKyA=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -1,18 +1,10 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, bokeh
|
||||
, buildPythonPackage
|
||||
, colorcet
|
||||
, fetchPypi
|
||||
, holoviews
|
||||
, pandas
|
||||
, pytest
|
||||
, parameterized
|
||||
, nbsmoke
|
||||
, flake8
|
||||
, coveralls
|
||||
, xarray
|
||||
, networkx
|
||||
, streamz
|
||||
, colorcet
|
||||
, pythonImportsCheckHook
|
||||
}:
|
||||
|
||||
|
@ -29,7 +21,6 @@ buildPythonPackage rec {
|
|||
pythonImportsCheckHook
|
||||
];
|
||||
|
||||
checkInputs = [ pytest parameterized nbsmoke flake8 coveralls xarray networkx streamz ];
|
||||
propagatedBuildInputs = [
|
||||
bokeh
|
||||
colorcet
|
||||
|
@ -37,11 +28,7 @@ buildPythonPackage rec {
|
|||
pandas
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export HOME=$(mktemp -d)
|
||||
'';
|
||||
|
||||
# many tests require a network connection
|
||||
# Many tests require a network connection
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
|
@ -52,6 +39,6 @@ buildPythonPackage rec {
|
|||
description = "A high-level plotting API for the PyData ecosystem built on HoloViews";
|
||||
homepage = "https://hvplot.pyviz.org";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
maintainers = with maintainers; [ costrouc ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,67 +1,71 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, appdirs
|
||||
, bokeh
|
||||
, buildPythonPackage
|
||||
, dask
|
||||
, entrypoints
|
||||
, fetchFromGitHub
|
||||
, fsspec
|
||||
, holoviews
|
||||
, hvplot
|
||||
, fsspec
|
||||
, intake-parquet
|
||||
, jinja2
|
||||
, msgpack
|
||||
, msgpack-numpy
|
||||
, numpy
|
||||
, pandas
|
||||
, panel
|
||||
, intake-parquet
|
||||
, pyarrow
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, python-snappy
|
||||
, pythonOlder
|
||||
, pyyaml
|
||||
, requests
|
||||
, ruamel_yaml
|
||||
, six
|
||||
, tornado
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "intake";
|
||||
version = "0.6.3";
|
||||
version = "0.6.4";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "f64543353f30d9440b953984f78b7a0954e5756d70c64243609d307ba488014f";
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "194cdd6lx92zcpkn3wgm490kxvw0c58ziix8hcihsr5ayfr1wdsl";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
appdirs
|
||||
bokeh
|
||||
dask
|
||||
entrypoints
|
||||
fsspec
|
||||
holoviews
|
||||
hvplot
|
||||
jinja2
|
||||
msgpack-numpy
|
||||
msgpack
|
||||
msgpack-numpy
|
||||
numpy
|
||||
pandas
|
||||
panel
|
||||
pyarrow
|
||||
python-snappy
|
||||
pyyaml
|
||||
requests
|
||||
ruamel_yaml
|
||||
six
|
||||
tornado
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
fsspec
|
||||
intake-parquet
|
||||
pyarrow
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Is in setup_requires but not used in setup.py...
|
||||
substituteInPlace setup.py --replace "'pytest-runner'" ""
|
||||
substituteInPlace setup.py \
|
||||
--replace "'pytest-runner'" ""
|
||||
'';
|
||||
|
||||
# test_discover requires driver_with_entrypoints-0.1.dist-info, which is not included in tarball
|
||||
|
@ -72,7 +76,7 @@ buildPythonPackage rec {
|
|||
'';
|
||||
|
||||
disabledTests = [
|
||||
# disable tests which touch network and are broken
|
||||
# Disable tests which touch network and are broken
|
||||
"test_discover"
|
||||
"test_filtered_compressed_cache"
|
||||
"test_get_dir"
|
||||
|
@ -82,6 +86,10 @@ buildPythonPackage rec {
|
|||
"test_remote_arr"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"intake"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Data load and catalog system";
|
||||
homepage = "https://github.com/ContinuumIO/intake";
|
||||
|
|
40
pkgs/development/python-modules/jaeger-client/default.nix
Normal file
40
pkgs/development/python-modules/jaeger-client/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ buildPythonPackage
|
||||
, fetchPypi
|
||||
, lib
|
||||
, opentracing
|
||||
, threadloop
|
||||
, thrift
|
||||
, tornado
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "jaeger-client";
|
||||
version = "4.6.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "3bc27ad77e035efd0899f377a15f180467fec44b2afbf5be0660cc888a2a4ac3";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
threadloop
|
||||
thrift
|
||||
tornado
|
||||
opentracing
|
||||
];
|
||||
|
||||
# FIXME: Missing dependencies: tchannel, opentracing_instrumentation
|
||||
# opentracing_instrumentation: Requires "tornado" lower than 6. Current is 6.1.
|
||||
# https://github.com/uber-common/opentracing-python-instrumentation/pull/115
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "jaeger_client" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Jaeger bindings for Python OpenTracing API";
|
||||
downloadPage = "https://pypi.org/project/jaeger-client/";
|
||||
homepage = "https://github.com/jaegertracing/jaeger-client-python";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ superherointj ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
{ lib, buildPythonPackage, fetchPypi
|
||||
, jupyter-packaging
|
||||
, jupyter_server
|
||||
, pytest-tornasync
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "jupyter-server-mathjax";
|
||||
version = "0.2.3";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "jupyter_server_mathjax";
|
||||
sha256 = "564e8d1272019c6771208f577b5f9f2b3afb02b9e2bff3b34c042cef8ed84451";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
jupyter-packaging
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
jupyter_server
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytest-tornasync
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "jupyter_server_mathjax" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "MathJax resources as a Jupyter Server Extension";
|
||||
homepage = "http://jupyter.org";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ jonringer ];
|
||||
};
|
||||
}
|
|
@ -8,23 +8,27 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "mypy-boto3-s3";
|
||||
version = "1.19.0";
|
||||
version = "1.19.1";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-VCQmtpoemK91+tkPE6HrdFt3wPYrlPcR0CVn7uo2vp0=";
|
||||
sha256 = "sha256-Ov3JVCYa+3VU26VYtPYcqwSUMdDowSk8GWGt4PX/DKk=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
boto3
|
||||
] ++ lib.optionals (pythonOlder "3.8") [
|
||||
] ++ lib.optionals (pythonOlder "3.9") [
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
# Project has no tests
|
||||
doCheck = false;
|
||||
pythonImportsCheck = [ "mypy_boto3_s3" ];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"mypy_boto3_s3"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Type annotations for boto3";
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
, tornado
|
||||
, requests
|
||||
, GitPython
|
||||
, jupyter-server-mathjax
|
||||
, notebook
|
||||
, jinja2
|
||||
}:
|
||||
|
@ -59,6 +60,7 @@ buildPythonPackage rec {
|
|||
py
|
||||
setuptools
|
||||
six
|
||||
jupyter-server-mathjax
|
||||
nbformat
|
||||
colorama
|
||||
pygments
|
||||
|
|
|
@ -1,28 +1,38 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, flake8
|
||||
, nose
|
||||
, fetchFromGitHub
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "param";
|
||||
version = "1.11.1";
|
||||
version = "1.12.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "b9857df01495bd55ddafb214fd1ed017d20699ce42ec2a0fd190d99caa03099f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "holoviz";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "02zmd4bwyn8b4q1l9jgddc70ii1i7bmynacanl1cvbr6la4v9b2c";
|
||||
};
|
||||
|
||||
checkInputs = [ flake8 nose ];
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
# tests not included with pypi release
|
||||
doCheck = false;
|
||||
postPatch = ''
|
||||
# Version is not set properly
|
||||
substituteInPlace setup.py \
|
||||
--replace 'version=get_setup_version("param"),' 'version="${version}",'
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [
|
||||
"param"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Declarative Python programming using Parameters";
|
||||
homepage = "https://github.com/pyviz/param";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
maintainers = with maintainers; [ costrouc ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,25 +1,28 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, fetchFromGitHub
|
||||
, pytestCheckHook
|
||||
, poetry-core
|
||||
, urllib3
|
||||
, requests
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "py-synologydsm-api";
|
||||
version = "1.0.2";
|
||||
version = "1.0.4";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "synologydsm-api";
|
||||
inherit version;
|
||||
sha256 = "42ea453ef5734dd5b8163e3d18ef309658f0298411720e6b834bededd28c5d53";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mib1185";
|
||||
repo = "synologydsm-api";
|
||||
rev = "v${version}";
|
||||
sha256 = "1f9fbcp6dbh1c7q1cpppwggnw4m89w14cjdgl64f1bzv72rggpn1";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
propagatedBuildInputs = [ urllib3 requests ];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"synology_dsm"
|
||||
];
|
||||
pythonImportsCheck = [ "synology_dsm" ];
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python API for Synology DSM";
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
, fetchPypi
|
||||
, isPy27
|
||||
, param
|
||||
, pytestCheckHook
|
||||
, pyyaml
|
||||
, requests
|
||||
, pytest
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
|
@ -17,22 +17,26 @@ buildPythonPackage rec {
|
|||
sha256 = "23d7525b5a1567535c093aea4b9c33809415aa5f018dd77f6eb738b1226df6f7";
|
||||
};
|
||||
|
||||
doCheck = !isPy27;
|
||||
checkInputs = [ pytest ];
|
||||
propagatedBuildInputs = [
|
||||
param
|
||||
pyyaml
|
||||
requests
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
pytest
|
||||
'';
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
doCheck = !isPy27;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"pyct"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Cli for python common tasks for users";
|
||||
description = "ClI for Python common tasks for users";
|
||||
homepage = "https://github.com/pyviz/pyct";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
maintainers = with maintainers; [ costrouc ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, isPy3k
|
||||
, future
|
||||
, pytestCheckHook
|
||||
, mock
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pysmart-smartx";
|
||||
version = "0.3.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "smartxworks";
|
||||
repo = "pySMART";
|
||||
rev = "v${version}";
|
||||
sha256 = "1irl4nlgz3ds3aikraa9928gzn6hz8chfh7jnpmq2q7d2vqbdrjs";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ future ];
|
||||
|
||||
# tests require contextlib.nested
|
||||
doCheck = !isPy3k;
|
||||
|
||||
checkInputs = [ pytestCheckHook mock ];
|
||||
|
||||
pythonImportsCheck = [ "pySMART" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "It's a fork of pySMART with lots of bug fix and enhances";
|
||||
homepage = "https://github.com/smartxworks/pySMART";
|
||||
maintainers = with maintainers; [ rhoriguchi ];
|
||||
license = licenses.gpl2Only;
|
||||
};
|
||||
}
|
37
pkgs/development/python-modules/pysmart/default.nix
Normal file
37
pkgs/development/python-modules/pysmart/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, smartmontools
|
||||
, humanfriendly
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pysmart";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "truenas";
|
||||
repo = "py-SMART";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-e46ALiYg0Db/gOzqLmVc1vi9ObhfxzqwfQk9/9pz+r0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pySMART/utils.py \
|
||||
--replace "which('smartctl')" '"${smartmontools}/bin/smartctl"'
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [ humanfriendly ];
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
|
||||
pythonImportsCheck = [ "pySMART" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Wrapper for smartctl (smartmontools)";
|
||||
homepage = "https://github.com/truenas/py-SMART";
|
||||
maintainers = with maintainers; [ nyanloutre ];
|
||||
license = licenses.lgpl21Only;
|
||||
};
|
||||
}
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pywizlight";
|
||||
version = "0.4.8";
|
||||
version = "0.4.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sbidy";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0zagdb90bxmf06fzpljhqgsgzg36zc1yhdibacfrx8bmnx3l657h";
|
||||
sha256 = "sha256-XO9KmsC3DXgVcGWr5ss3m2wB8rVboWyQUWBidynhkP8=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "rzpipe";
|
||||
version = "0.1.1";
|
||||
version = "0.1.2";
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "13z88c4zjy10a1sc98ba25sz200v6w2wprbq4iknm4sy2fmrsydh";
|
||||
sha256 = "sha256-va56xSWDIVtZ88QUzPfk8cCr28+5nZCNcSJMiVj3SZU=";
|
||||
};
|
||||
|
||||
# No native rz_core library
|
||||
|
|
|
@ -12,11 +12,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "schema-salad";
|
||||
version = "8.1.20210721123742";
|
||||
version = "8.2.20210918131710";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1549555b9b5656cfc690716f04fb76b9fa002feb278638c446522f030632b450";
|
||||
sha256 = "464180407f49a3533cd5a5bc7db9254769bc77595ea00562bbe4a50493f7f445";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
30
pkgs/development/python-modules/threadloop/default.nix
Normal file
30
pkgs/development/python-modules/threadloop/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
|||
{ buildPythonPackage
|
||||
, fetchPypi
|
||||
, lib
|
||||
, tornado
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "threadloop";
|
||||
version = "1.0.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "8b180aac31013de13c2ad5c834819771992d350267bddb854613ae77ef571944";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
tornado
|
||||
];
|
||||
|
||||
doCheck = false; # ImportError: cannot import name 'ThreadLoop' from 'threadloop'
|
||||
|
||||
pythonImportsCheck = [ "threadloop" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A library to run tornado coroutines from synchronous Python";
|
||||
homepage = "https://github.com/GoodPete/threadloop";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ superherointj ];
|
||||
};
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, python
|
||||
, zc_buildout
|
||||
, zc-buildout
|
||||
, zope_testrunner
|
||||
}:
|
||||
|
||||
|
@ -16,7 +16,7 @@ buildPythonPackage rec {
|
|||
sha256 = "b45bd22ae01ed60933694fb5abede1ff71fe8ffa79b37082b2fcf38a2f0dec9d";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ zc_buildout ];
|
||||
propagatedBuildInputs = [ zc-buildout ];
|
||||
checkInputs = [ zope_testrunner ];
|
||||
doCheck = !python.pkgs.isPy27;
|
||||
checkPhase = ''
|
||||
|
|
|
@ -12,12 +12,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "zarr";
|
||||
version = "2.10.0";
|
||||
version = "2.10.1";
|
||||
disabled = isPy27;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "8ca8e505cadb4f7f97aab4e4193bb302b6338bf54593c98fe7581bf574ed864c";
|
||||
sha256 = "29e90114f037d433752b3cf951e4a3cb6c6f67b6501a273439b4be4a824e4caf";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -158,6 +158,38 @@ let
|
|||
in
|
||||
builtins.listToAttrs nameValuePairs;
|
||||
|
||||
# Overrides package definition requiring a home directory to install or to
|
||||
# run tests.
|
||||
# For example,
|
||||
#
|
||||
# overrideRequireHome [
|
||||
# "foo"
|
||||
# ] old
|
||||
#
|
||||
# results in
|
||||
#
|
||||
# {
|
||||
# foo = old.foo.overrideAttrs (oldAttrs: {
|
||||
# preInstall = ''
|
||||
# ${oldAttrs.preInstall or ""}
|
||||
# export HOME=$(mktemp -d)
|
||||
# '';
|
||||
# });
|
||||
# }
|
||||
overrideRequireHome = packageNames: old:
|
||||
let
|
||||
nameValuePairs = map (name: {
|
||||
inherit name;
|
||||
value = (builtins.getAttr name old).overrideAttrs (oldAttrs: {
|
||||
preInstall = ''
|
||||
${oldAttrs.preInstall or ""}
|
||||
export HOME=$(mktemp -d)
|
||||
'';
|
||||
});
|
||||
}) packageNames;
|
||||
in
|
||||
builtins.listToAttrs nameValuePairs;
|
||||
|
||||
# Overrides package definition to skip check.
|
||||
# For example,
|
||||
#
|
||||
|
@ -211,13 +243,14 @@ let
|
|||
defaultOverrides = old: new:
|
||||
let old0 = old; in
|
||||
let
|
||||
old1 = old0 // (overrideRequireX packagesRequireingX old0);
|
||||
old2 = old1 // (overrideSkipCheck packagesToSkipCheck old1);
|
||||
old3 = old2 // (overrideRDepends packagesWithRDepends old2);
|
||||
old4 = old3 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old3);
|
||||
old5 = old4 // (overrideBuildInputs packagesWithBuildInputs old4);
|
||||
old6 = old5 // (overrideBroken brokenPackages old5);
|
||||
old = old6;
|
||||
old1 = old0 // (overrideRequireX packagesRequiringX old0);
|
||||
old2 = old1 // (overrideRequireHome packagesRequiringHome old1);
|
||||
old3 = old2 // (overrideSkipCheck packagesToSkipCheck old2);
|
||||
old4 = old3 // (overrideRDepends packagesWithRDepends old3);
|
||||
old5 = old4 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old4);
|
||||
old6 = old5 // (overrideBuildInputs packagesWithBuildInputs old5);
|
||||
old7 = old6 // (overrideBroken brokenPackages old6);
|
||||
old = old7;
|
||||
in old // (otherOverrides old new);
|
||||
|
||||
# Recursive override pattern.
|
||||
|
@ -243,14 +276,14 @@ let
|
|||
adimpro = [ pkgs.imagemagick ];
|
||||
animation = [ pkgs.which ];
|
||||
audio = [ pkgs.portaudio ];
|
||||
BayesSAE = [ pkgs.gsl_1 ];
|
||||
BayesVarSel = [ pkgs.gsl_1 ];
|
||||
BayesSAE = [ pkgs.gsl ];
|
||||
BayesVarSel = [ pkgs.gsl ];
|
||||
BayesXsrc = with pkgs; [ readline.dev ncurses ];
|
||||
bigGP = [ pkgs.mpi ];
|
||||
bio3d = [ pkgs.zlib ];
|
||||
BiocCheck = [ pkgs.which ];
|
||||
Biostrings = [ pkgs.zlib ];
|
||||
bnpmr = [ pkgs.gsl_1 ];
|
||||
bnpmr = [ pkgs.gsl ];
|
||||
cairoDevice = [ pkgs.gtk2.dev ];
|
||||
Cairo = with pkgs; [ libtiff libjpeg cairo.dev x11 fontconfig.lib ];
|
||||
Cardinal = [ pkgs.which ];
|
||||
|
@ -259,37 +292,39 @@ let
|
|||
curl = [ pkgs.curl.dev ];
|
||||
data_table = [ pkgs.zlib.dev ] ++ lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
|
||||
devEMF = with pkgs; [ xorg.libXft.dev x11 ];
|
||||
diversitree = with pkgs; [ gsl_1 fftw ];
|
||||
diversitree = with pkgs; [ gsl fftw ];
|
||||
exactextractr = [ pkgs.geos ];
|
||||
EMCluster = [ pkgs.lapack ];
|
||||
fftw = [ pkgs.fftw.dev ];
|
||||
fftwtools = with pkgs; [ fftw.dev pkg-config ];
|
||||
Formula = [ pkgs.gmp ];
|
||||
gdtools = with pkgs; [ cairo.dev fontconfig.lib freetype.dev ];
|
||||
ggiraph = with pkgs; [ pkgs.libpng.dev ];
|
||||
git2r = with pkgs; [ zlib.dev openssl.dev libssh2.dev libgit2 pkg-config ];
|
||||
GLAD = [ pkgs.gsl_1 ];
|
||||
GLAD = [ pkgs.gsl ];
|
||||
glpkAPI = with pkgs; [ gmp glpk ];
|
||||
gmp = [ pkgs.gmp.dev ];
|
||||
graphscan = [ pkgs.gsl_1 ];
|
||||
gsl = [ pkgs.gsl_1 ];
|
||||
graphscan = [ pkgs.gsl ];
|
||||
gsl = [ pkgs.gsl ];
|
||||
gert = [ pkgs.libgit2 ];
|
||||
haven = with pkgs; [ libiconv zlib.dev ];
|
||||
h5vc = [ pkgs.zlib.dev ];
|
||||
HiCseg = [ pkgs.gsl_1 ];
|
||||
HiCseg = [ pkgs.gsl ];
|
||||
imager = [ pkgs.x11 ];
|
||||
iBMQ = [ pkgs.gsl_1 ];
|
||||
iBMQ = [ pkgs.gsl ];
|
||||
igraph = with pkgs; [ gmp libxml2.dev ];
|
||||
JavaGD = [ pkgs.jdk ];
|
||||
jpeg = [ pkgs.libjpeg.dev ];
|
||||
jqr = [ pkgs.jq.dev ];
|
||||
KFKSDS = [ pkgs.gsl_1 ];
|
||||
KFKSDS = [ pkgs.gsl ];
|
||||
kza = [ pkgs.fftw.dev ];
|
||||
lpsymphony = with pkgs; [ pkg-config gfortran gettext ];
|
||||
lwgeom = with pkgs; [ proj geos gdal ];
|
||||
magick = [ pkgs.imagemagick.dev ];
|
||||
ModelMetrics = lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
|
||||
mvabund = [ pkgs.gsl_1 ];
|
||||
mvabund = [ pkgs.gsl ];
|
||||
mwaved = [ pkgs.fftw.dev ];
|
||||
mzR = with pkgs; [ zlib boost159.dev netcdf ];
|
||||
ncdf4 = [ pkgs.netcdf ];
|
||||
nloptr = with pkgs; [ nlopt pkg-config ];
|
||||
n1qn1 = [ pkgs.gfortran ];
|
||||
|
@ -311,8 +346,8 @@ let
|
|||
readxl = [ pkgs.libiconv ];
|
||||
rcdd = [ pkgs.gmp.dev ];
|
||||
RcppCNPy = [ pkgs.zlib.dev ];
|
||||
RcppGSL = [ pkgs.gsl_1 ];
|
||||
RcppZiggurat = [ pkgs.gsl_1 ];
|
||||
RcppGSL = [ pkgs.gsl ];
|
||||
RcppZiggurat = [ pkgs.gsl ];
|
||||
reprex = [ pkgs.which ];
|
||||
rgdal = with pkgs; [ proj.dev gdal ];
|
||||
rgeos = [ pkgs.geos ];
|
||||
|
@ -324,7 +359,7 @@ let
|
|||
Rhtslib = with pkgs; [ zlib.dev automake autoconf bzip2.dev xz.dev curl.dev ];
|
||||
rjags = [ pkgs.jags ];
|
||||
rJava = with pkgs; [ zlib bzip2.dev icu xz.dev pcre.dev jdk libzip ];
|
||||
Rlibeemd = [ pkgs.gsl_1 ];
|
||||
Rlibeemd = [ pkgs.gsl ];
|
||||
rmatio = [ pkgs.zlib.dev ];
|
||||
Rmpfr = with pkgs; [ gmp mpfr.dev ];
|
||||
Rmpi = [ pkgs.mpi ];
|
||||
|
@ -352,12 +387,12 @@ let
|
|||
sf = with pkgs; [ gdal proj geos ];
|
||||
terra = with pkgs; [ gdal proj geos ];
|
||||
showtext = with pkgs; [ zlib libpng icu freetype.dev ];
|
||||
simplexreg = [ pkgs.gsl_1 ];
|
||||
simplexreg = [ pkgs.gsl ];
|
||||
spate = [ pkgs.fftw.dev ];
|
||||
ssanv = [ pkgs.proj ];
|
||||
stsm = [ pkgs.gsl_1 ];
|
||||
stsm = [ pkgs.gsl ];
|
||||
stringi = [ pkgs.icu.dev ];
|
||||
survSNP = [ pkgs.gsl_1 ];
|
||||
survSNP = [ pkgs.gsl ];
|
||||
svglite = [ pkgs.libpng.dev ];
|
||||
sysfonts = with pkgs; [ zlib libpng freetype.dev ];
|
||||
systemfonts = with pkgs; [ fontconfig.dev freetype.dev ];
|
||||
|
@ -365,7 +400,7 @@ let
|
|||
tesseract = with pkgs; [ tesseract leptonica ];
|
||||
tiff = [ pkgs.libtiff.dev ];
|
||||
tkrplot = with pkgs; [ xorg.libX11 tk.dev ];
|
||||
topicmodels = [ pkgs.gsl_1 ];
|
||||
topicmodels = [ pkgs.gsl ];
|
||||
udunits2 = with pkgs; [ udunits expat ];
|
||||
units = [ pkgs.udunits ];
|
||||
V8 = [ pkgs.v8 ];
|
||||
|
@ -444,7 +479,6 @@ let
|
|||
tikzDevice = with pkgs; [ which texlive.combined.scheme-medium ];
|
||||
gridGraphics = [ pkgs.which ];
|
||||
adimpro = with pkgs; [ which xorg.xdpyinfo ];
|
||||
mzR = [ pkgs.netcdf ];
|
||||
cluster = [ pkgs.libiconv ];
|
||||
KernSmooth = [ pkgs.libiconv ];
|
||||
nlme = [ pkgs.libiconv ];
|
||||
|
@ -478,9 +512,12 @@ let
|
|||
Rbowtie = with pkgs; [ zlib.dev ];
|
||||
gaston = with pkgs; [ zlib.dev ];
|
||||
csaw = with pkgs; [ zlib.dev curl ];
|
||||
DirichletMultinomial = with pkgs; [ gsl ];
|
||||
DiffBind = with pkgs; [ zlib.dev ];
|
||||
CNEr = with pkgs; [ zlib ];
|
||||
};
|
||||
|
||||
packagesRequireingX = [
|
||||
packagesRequiringX = [
|
||||
"accrual"
|
||||
"ade4TkGUI"
|
||||
"analogue"
|
||||
|
@ -670,6 +707,27 @@ let
|
|||
"x12GUI"
|
||||
];
|
||||
|
||||
packagesRequiringHome = [
|
||||
"aroma_affymetrix"
|
||||
"aroma_cn"
|
||||
"aroma_core"
|
||||
"csodata"
|
||||
"DiceView"
|
||||
"MSnID"
|
||||
"OmnipathR"
|
||||
"precommit"
|
||||
"PSCBS"
|
||||
"repmis"
|
||||
"R_cache"
|
||||
"R_filesets"
|
||||
"RKorAPClient"
|
||||
"R_rsp"
|
||||
"scholar"
|
||||
"stepR"
|
||||
"styler"
|
||||
"TreeTools"
|
||||
];
|
||||
|
||||
packagesToSkipCheck = [
|
||||
"Rmpi" # tries to run MPI processes
|
||||
"pbdMPI" # tries to run MPI processes
|
||||
|
@ -678,6 +736,11 @@ let
|
|||
|
||||
# Packages which cannot be installed due to lack of dependencies or other reasons.
|
||||
brokenPackages = [
|
||||
"av"
|
||||
"rgl"
|
||||
"NetLogoR"
|
||||
"proj4"
|
||||
"x13binary"
|
||||
];
|
||||
|
||||
otherOverrides = old: new: {
|
||||
|
@ -821,10 +884,6 @@ let
|
|||
PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
|
||||
});
|
||||
|
||||
EMCluster = old.EMCluster.overrideDerivation (attrs: {
|
||||
patches = [ ./patches/EMCluster.patch ];
|
||||
});
|
||||
|
||||
spMC = old.spMC.overrideDerivation (attrs: {
|
||||
patches = [ ./patches/spMC.patch ];
|
||||
});
|
||||
|
@ -972,12 +1031,6 @@ let
|
|||
'';
|
||||
});
|
||||
|
||||
R_cache = old.R_cache.overrideDerivation (attrs: {
|
||||
preConfigure = ''
|
||||
export R_CACHE_ROOTPATH=$TMP
|
||||
'';
|
||||
});
|
||||
|
||||
lpsymphony = old.lpsymphony.overrideDerivation (attrs: {
|
||||
preConfigure = ''
|
||||
patchShebangs configure
|
||||
|
@ -992,12 +1045,37 @@ let
|
|||
buildInputs = [ libsodium.dev ] ++ attrs.buildInputs;
|
||||
});
|
||||
|
||||
keyring = old.keyring.overrideDerivation (attrs: {
|
||||
preConfigure = ''
|
||||
patchShebangs configure
|
||||
'';
|
||||
});
|
||||
|
||||
Rhtslib = old.Rhtslib.overrideDerivation (attrs: {
|
||||
preConfigure = ''
|
||||
substituteInPlace R/zzz.R --replace "-lcurl" "-L${pkgs.curl.out}/lib -lcurl"
|
||||
'';
|
||||
});
|
||||
|
||||
MatchIt = old.MatchIt.overrideDerivation (attrs: {
|
||||
patches = [ (pkgs.fetchpatch {
|
||||
url = "https://github.com/kosukeimai/MatchIt/commit/8c15a1afa16b74eb04a45e7e46f8aca64ed89bcb.patch";
|
||||
sha256 = "sha256-3UI60n49xuX6LniHpTLOUSsHCEAQ7f1FMBVH0jNlW60=";
|
||||
}) ];
|
||||
});
|
||||
|
||||
h2o = old.h2o.overrideDerivation (attrs: {
|
||||
preConfigure = ''
|
||||
# prevent download of jar file during install and postpone to first use
|
||||
sed -i '/downloadJar()/d' R/zzz.R
|
||||
|
||||
# during runtime the package directory is not writable as it's in the
|
||||
# nix store, so store the jar in the user's cache directory instead
|
||||
substituteInPlace R/connection.R --replace \
|
||||
'dest_file <- file.path(dest_folder, "h2o.jar")' \
|
||||
'dest_file <- file.path("~/.cache/", "h2o.jar")'
|
||||
'';
|
||||
});
|
||||
};
|
||||
in
|
||||
self
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
diff -ru -x '*~' EMCluster_orig/src/Makevars EMCluster/src/Makevars
|
||||
--- EMCluster_orig/src/Makevars 2013-07-05 02:43:25.000000000 +0900
|
||||
+++ EMCluster/src/Makevars 2014-10-25 18:10:19.190992120 +0900
|
||||
@@ -1 +1 @@
|
||||
-PKG_LIBS = $(FLIBS) $(BLAS_LIBS) $(LAPACK_LIBS)
|
||||
+PKG_LIBS = $(FLIBS) $(LAPACK_LIBS) $(BLAS_LIBS)
|
|
@ -6,7 +6,6 @@ let
|
|||
stdenv = pkgs.stdenv;
|
||||
|
||||
rubyVersions = with pkgs; [
|
||||
ruby_2_6
|
||||
ruby_2_7
|
||||
];
|
||||
|
||||
|
|
44
pkgs/development/tools/analysis/rr/zen_workaround.nix
Normal file
44
pkgs/development/tools/analysis/rr/zen_workaround.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{ stdenv, lib, fetchzip, kernel }:
|
||||
|
||||
/* The python script shouldn't be needed for users of this kernel module.
|
||||
https://github.com/rr-debugger/rr/blob/master/scripts/zen_workaround.py
|
||||
The module itself is called "zen_workaround" (a bit generic unfortunatelly).
|
||||
*/
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rr-zen_workaround";
|
||||
version = "2020-09-22";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://gist.github.com/glandium/01d54cefdb70561b5f6675e08f2990f2/archive/2f430f0c136a69b0886281d0c76708997d8878af.zip";
|
||||
sha256 = "1mbmbyymgl75wparv3rgnyxnc44rd6n935jziz9anl9apy031ryi";
|
||||
};
|
||||
|
||||
hardeningDisable = [ "pic" ];
|
||||
nativeBuildInputs = kernel.moduleBuildDependencies;
|
||||
|
||||
makeFlags = [
|
||||
"-C${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
||||
];
|
||||
postConfigure = ''
|
||||
makeFlags="$makeFlags M=$(pwd)"
|
||||
'';
|
||||
buildFlags = "modules";
|
||||
|
||||
installPhase = let
|
||||
modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel"; #TODO: longer path?
|
||||
in ''
|
||||
runHook preInstall
|
||||
mkdir -p "${modDestDir}"
|
||||
cp *.ko "${modDestDir}/"
|
||||
find ${modDestDir} -name '*.ko' -exec xz -f '{}' \;
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Kernel module supporting the rr debugger on (some) AMD Zen-based CPUs";
|
||||
homepage = "https://github.com/rr-debugger/rr/wiki/Zen#kernel-module";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vcunat ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
buildGoPackage rec {
|
||||
pname = "delve";
|
||||
version = "1.7.1";
|
||||
version = "1.7.2";
|
||||
|
||||
goPackagePath = "github.com/go-delve/delve";
|
||||
excludedPackages = "\\(_fixtures\\|scripts\\|service/test\\)";
|
||||
|
@ -11,7 +11,7 @@ buildGoPackage rec {
|
|||
owner = "go-delve";
|
||||
repo = "delve";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-dnmV7LZjq86AwLWXfWBGm1pmFM0uipv1FwR6EhV8CZQ=";
|
||||
sha256 = "sha256-Mye8Gh73yQ1fhjVpEOKBQGjdOzgMUqzdNiBjRRTteTg=";
|
||||
};
|
||||
|
||||
subPackages = [ "cmd/dlv" ];
|
||||
|
@ -22,12 +22,16 @@ buildGoPackage rec {
|
|||
# fortify source breaks build since delve compiles with -O0
|
||||
wrapProgram $out/bin/dlv \
|
||||
--prefix disableHardening " " fortify
|
||||
|
||||
# add symlink for vscode golang extension
|
||||
# https://github.com/golang/vscode-go/blob/master/docs/debugging.md#manually-installing-dlv-dap
|
||||
ln $out/bin/dlv $out/bin/dlv-dap
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "debugger for the Go programming language";
|
||||
homepage = "https://github.com/derekparker/delve";
|
||||
maintainers = with maintainers; [ vdemeester ];
|
||||
maintainers = with maintainers; [ SuperSandro2000 vdemeester ];
|
||||
license = licenses.mit;
|
||||
platforms = [ "x86_64-linux" ] ++ platforms.darwin;
|
||||
};
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
, godef ? null
|
||||
, gotools ? null
|
||||
, nodePackages ? null
|
||||
, rustracerd ? null
|
||||
, fixDarwinDylibNames, Cocoa ? null
|
||||
}:
|
||||
|
||||
|
@ -74,10 +73,6 @@ stdenv.mkDerivation {
|
|||
'' + lib.optionalString (nodePackages != null) ''
|
||||
TARGET=$out/lib/ycmd/third_party/tsserver
|
||||
ln -sf ${nodePackages.typescript} $TARGET
|
||||
'' + lib.optionalString (rustracerd != null) ''
|
||||
TARGET=$out/lib/ycmd/third_party/racerd/target/release
|
||||
mkdir -p $TARGET
|
||||
ln -sf ${rustracerd}/bin/racerd $TARGET
|
||||
'';
|
||||
|
||||
# fixup the argv[0] and replace __file__ with the corresponding path so
|
||||
|
|
|
@ -20,12 +20,12 @@ in
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "qtcreator";
|
||||
version = "4.14.0";
|
||||
version = "5.0.2";
|
||||
baseVersion = builtins.concatStringsSep "." (lib.take 2 (builtins.splitVersion version));
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.qt-project.org/official_releases/${pname}/${baseVersion}/${version}/qt-creator-opensource-src-${version}.tar.xz";
|
||||
sha256 = "07i045mzwbfhwj2jlijhz9xs6ay03qs5dgcw2kzlcr79a69i0h6j";
|
||||
sha256 = "1bf07150226da46237f26f5eaa9f090ce81ed79b9bc75e0dfa6328043e360103";
|
||||
};
|
||||
|
||||
buildInputs = [ qtbase qtscript qtquickcontrols qtdeclarative elfutils.dev ] ++
|
||||
|
@ -75,6 +75,8 @@ mkDerivation rec {
|
|||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/applications
|
||||
cp share/applications/org.qt-project.qtcreator.desktop $out/share/applications
|
||||
substituteInPlace $out/share/applications/org.qt-project.qtcreator.desktop \
|
||||
--replace "Exec=qtcreator" "Exec=$out/bin/qtcreator"
|
||||
'';
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchpatch, rustPlatform, makeWrapper, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "racerd";
|
||||
version = "unstable-2019-09-02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jwilm";
|
||||
repo = "racerd";
|
||||
rev = "e3d380b9a1d3f3b67286d60465746bc89fea9098";
|
||||
sha256 = "13jqdvjk4savcl03mrn2vzgdsd7vxv2racqbyavrxp2cm9h6cjln";
|
||||
};
|
||||
|
||||
cargoPatches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/jwilm/racerd/commit/856f3656e160cd2909c5166e962f422c901720ee.patch";
|
||||
sha256 = "1qq2k4bnwjz5qgn7s8yxd090smwn2wvdm8dd1rrlgpln0a5vxkpb";
|
||||
})
|
||||
];
|
||||
|
||||
cargoSha256 = "08zn65c5ivhn2qs02aiixyqwhywrw8kfvs0kgzxdzsipic47n2qq";
|
||||
|
||||
# a nightly compiler is required unless we use this cheat code.
|
||||
RUSTC_BOOTSTRAP=1;
|
||||
|
||||
doCheck = false;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = lib.optional stdenv.isDarwin Security;
|
||||
|
||||
RUST_SRC_PATH = rustPlatform.rustcSrc;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -p $releaseDir/racerd $out/bin/
|
||||
wrapProgram $out/bin/racerd --set-default RUST_SRC_PATH "$RUST_SRC_PATH"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
broken = true;
|
||||
description = "JSON/HTTP Server based on racer for adding Rust support to editors and IDEs";
|
||||
homepage = "https://github.com/jwilm/racerd";
|
||||
license = licenses.asl20;
|
||||
};
|
||||
}
|
|
@ -89,7 +89,9 @@ def generate_our_versions(factorio_versions: FactorioVersionsJSON) -> OurVersion
|
|||
for system in SYSTEMS:
|
||||
for release_type in RELEASE_TYPES:
|
||||
for release_channel in RELEASE_CHANNELS:
|
||||
version = factorio_versions[release_channel.name][release_type.name]
|
||||
version = factorio_versions[release_channel.name].get(release_type.name)
|
||||
if version == None:
|
||||
continue
|
||||
this_release = {
|
||||
"name": f"factorio_{release_type.name}_{system.tar_name}-{version}.tar.xz",
|
||||
"url": f"https://factorio.com/get-download/{version}/{release_type.name}/{system.url_name}",
|
||||
|
|
|
@ -2,56 +2,48 @@
|
|||
"x86_64-linux": {
|
||||
"alpha": {
|
||||
"experimental": {
|
||||
"name": "factorio_alpha_x64-1.1.39.tar.xz",
|
||||
"name": "factorio_alpha_x64-1.1.42.tar.xz",
|
||||
"needsAuth": true,
|
||||
"sha256": "1wyvk0niyppg7h9ayfsiy6x309bjwsbgf62nah13aps89jk8n1pc",
|
||||
"sha256": "08h2pxzsk7sigjqnqm1jxya3i9i5g2mgl378gmbp2jcy2mnn4dvm",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.39/alpha/linux64",
|
||||
"version": "1.1.39"
|
||||
"url": "https://factorio.com/get-download/1.1.42/alpha/linux64",
|
||||
"version": "1.1.42"
|
||||
},
|
||||
"stable": {
|
||||
"name": "factorio_alpha_x64-1.1.38.tar.xz",
|
||||
"name": "factorio_alpha_x64-1.1.42.tar.xz",
|
||||
"needsAuth": true,
|
||||
"sha256": "0cjhfyz4j06yn08n239ajjjpgykh39hzifhmd0ygr5szw9gdc851",
|
||||
"sha256": "08h2pxzsk7sigjqnqm1jxya3i9i5g2mgl378gmbp2jcy2mnn4dvm",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.38/alpha/linux64",
|
||||
"version": "1.1.38"
|
||||
"url": "https://factorio.com/get-download/1.1.42/alpha/linux64",
|
||||
"version": "1.1.42"
|
||||
}
|
||||
},
|
||||
"demo": {
|
||||
"experimental": {
|
||||
"name": "factorio_demo_x64-1.1.37.tar.xz",
|
||||
"needsAuth": false,
|
||||
"sha256": "06qwx9wd3990d3256y9y5qsxa0936076jgwhinmrlvjp9lxwl4ly",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.37/demo/linux64",
|
||||
"version": "1.1.37"
|
||||
},
|
||||
"stable": {
|
||||
"name": "factorio_demo_x64-1.1.38.tar.xz",
|
||||
"name": "factorio_demo_x64-1.1.42.tar.xz",
|
||||
"needsAuth": false,
|
||||
"sha256": "0y53w01dyfmavw1yxbjqjiirmvw32bnf9bqz0isnd72dvkg0kziv",
|
||||
"sha256": "155m1ijdbc7szhpdw8f8g82ysd7av9zb6llqq4z96nn834px9m2d",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.38/demo/linux64",
|
||||
"version": "1.1.38"
|
||||
"url": "https://factorio.com/get-download/1.1.42/demo/linux64",
|
||||
"version": "1.1.42"
|
||||
}
|
||||
},
|
||||
"headless": {
|
||||
"experimental": {
|
||||
"name": "factorio_headless_x64-1.1.39.tar.xz",
|
||||
"name": "factorio_headless_x64-1.1.42.tar.xz",
|
||||
"needsAuth": false,
|
||||
"sha256": "06figqmyd5bgwhpppziag4hs7x3ixr7wd8186cza3ly57bibha2m",
|
||||
"sha256": "1l217fcjcwfi0g5dilsi703cl0wyxsqdqn422hwdbp2ql839k422",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.39/headless/linux64",
|
||||
"version": "1.1.39"
|
||||
"url": "https://factorio.com/get-download/1.1.42/headless/linux64",
|
||||
"version": "1.1.42"
|
||||
},
|
||||
"stable": {
|
||||
"name": "factorio_headless_x64-1.1.38.tar.xz",
|
||||
"name": "factorio_headless_x64-1.1.42.tar.xz",
|
||||
"needsAuth": false,
|
||||
"sha256": "1c929pa9ifz0cvmx9k5yd267hjd5p7fdbln0czl3dq1vlskk1w71",
|
||||
"sha256": "1l217fcjcwfi0g5dilsi703cl0wyxsqdqn422hwdbp2ql839k422",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.38/headless/linux64",
|
||||
"version": "1.1.38"
|
||||
"url": "https://factorio.com/get-download/1.1.42/headless/linux64",
|
||||
"version": "1.1.42"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -94,6 +94,7 @@ mapAliases (with prev; {
|
|||
neosnippet = neosnippet-vim;
|
||||
The_NERD_Commenter = nerdcommenter;
|
||||
The_NERD_tree = nerdtree;
|
||||
onedark-nvim = onedarkpro-nvim; # added 2021-10-22
|
||||
open-browser = open-browser-vim;
|
||||
pathogen = vim-pathogen;
|
||||
polyglot = vim-polyglot;
|
||||
|
|
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue