Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2021-10-23 00:06:50 +00:00 committed by GitHub
commit 559056b7ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
140 changed files with 3069 additions and 1403 deletions

View file

@ -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.

View file

@ -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">

View file

@ -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}

View file

@ -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}"
} \

View file

@ -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 ];
};

View file

@ -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;

View file

@ -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 ];
}

View file

@ -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";

View file

@ -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 ];

View file

@ -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")
'';
})

View file

@ -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;

View file

@ -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()
'';
})

View file

@ -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 ];

View 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;
};
}

View file

@ -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;

View file

@ -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"
}
}
},

View file

@ -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

View file

@ -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 ];

View file

@ -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

View file

@ -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 {

View file

@ -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 = []

View file

@ -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]

View file

@ -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 = [

View file

@ -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 = [

View file

@ -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
'' + ''

View file

@ -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 = [

View 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 ];
};
}

View file

@ -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 {};

View file

@ -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' )

View 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 ];
};
}

View 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;
};
}

View file

@ -12,6 +12,7 @@
, kirigami2
, kitemmodels
, kpublictransport
, qqc2-desktop-style
, qtquickcontrols2
}:
@ -32,6 +33,7 @@ mkDerivation rec {
kirigami2
kitemmodels
kpublictransport
qqc2-desktop-style
qtquickcontrols2
];

View 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 ];
};
}

View file

@ -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
];

View file

@ -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";
};
};
}

View 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;
};
}

View 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 ];
};
}

View file

@ -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;
};

View 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 ];
};
}

View file

@ -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 ];

View file

@ -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 ];

View file

@ -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;
})

View file

@ -119,6 +119,6 @@ stdenv.mkDerivation rec {
platforms = platforms.all;
maintainers = with maintainers; teams.sage.members;
maintainers = with maintainers; [ jbedo ] ++ teams.sage.members;
};
}

View file

@ -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";
};
}

View file

@ -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 = ''

View file

@ -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 ];
};
}

View file

@ -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;
};
}

View file

@ -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 ];

View file

@ -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";
};
}

View file

@ -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

View file

@ -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;
};

View file

@ -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;

View file

@ -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" "' \

View file

@ -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)" ];

View file

@ -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 = {

View file

@ -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"

View file

@ -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";

View file

@ -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;

View 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
'';
};
}

View 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;
};
}

View 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 ];
};
}

View file

@ -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 = [

View file

@ -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 ];

View file

@ -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

View file

@ -8,7 +8,7 @@
buildDunePackage {
pname = "carton-git";
inherit (carton) version src useDune2 minimumOCamlVersion postPatch;
inherit (carton) version src useDune2 postPatch;
propagatedBuildInputs = [
carton

View file

@ -10,7 +10,7 @@
buildDunePackage {
pname = "carton-lwt";
inherit (carton) version src useDune2 minimumOCamlVersion postPatch;
inherit (carton) version src useDune2 postPatch;
propagatedBuildInputs = [
carton

View file

@ -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 = [

View file

@ -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

View file

@ -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 ];
};
}

View file

@ -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 ];
};
}

View file

@ -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 = [

View file

@ -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 ];
};
}

View file

@ -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";

View 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 ];
};
}

View file

@ -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 ];
};
}

View file

@ -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";

View file

@ -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

View file

@ -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 ];
};
}

View file

@ -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";

View file

@ -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 ];
};
}

View file

@ -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;
};
}

View 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;
};
}

View file

@ -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 = [

View file

@ -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

View file

@ -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 = [

View 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 ];
};
}

View file

@ -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 = ''

View file

@ -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 = [

View file

@ -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

View file

@ -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)

View file

@ -6,7 +6,6 @@ let
stdenv = pkgs.stdenv;
rubyVersions = with pkgs; [
ruby_2_6
ruby_2_7
];

View 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;
};
}

View file

@ -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;
};

View file

@ -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

View file

@ -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"
'';

View file

@ -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;
};
}

View file

@ -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}",

View file

@ -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"
}
}
}

View file

@ -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