Merge master into staging-next
This commit is contained in:
commit
c073294043
|
@ -513,12 +513,6 @@
|
|||
githubId = 38869148;
|
||||
name = "Alex Eyre";
|
||||
};
|
||||
algorith = {
|
||||
email = "dries_van_daele@telenet.be";
|
||||
github = "DriesVanDaele";
|
||||
githubId = 1141488;
|
||||
name = "Dries Van Daele";
|
||||
};
|
||||
alibabzo = {
|
||||
email = "alistair.bill@gmail.com";
|
||||
github = "alibabzo";
|
||||
|
@ -6536,6 +6530,12 @@
|
|||
githubId = 787421;
|
||||
name = "Kevin Quick";
|
||||
};
|
||||
kradalby = {
|
||||
name = "Kristoffer Dalby";
|
||||
email = "kristoffer@dalby.cc";
|
||||
github = "kradalby";
|
||||
githubId = 98431;
|
||||
};
|
||||
kraem = {
|
||||
email = "me@kraem.xyz";
|
||||
github = "kraem";
|
||||
|
|
|
@ -192,6 +192,15 @@
|
|||
<link xlink:href="options.html#opt-services.rstudio-server.enable">services.rstudio-server</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/juanfont/headscale">headscale</link>,
|
||||
an Open Source implementation of the
|
||||
<link xlink:href="https://tailscale.io">Tailscale</link>
|
||||
Control Server. Available as
|
||||
<link xlink:href="options.html#opt-services.headscale.enable">services.headscale</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section xml:id="sec-release-22.05-incompatibilities">
|
||||
|
|
|
@ -58,6 +58,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- [rstudio-server](https://www.rstudio.com/products/rstudio/#rstudio-server), a browser-based version of the RStudio IDE for the R programming language. Available as [services.rstudio-server](options.html#opt-services.rstudio-server.enable).
|
||||
|
||||
- [headscale](https://github.com/juanfont/headscale), an Open Source implementation of the [Tailscale](https://tailscale.io) Control Server. Available as [services.headscale](options.html#opt-services.headscale.enable)
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
|
||||
|
|
|
@ -11,6 +11,9 @@ in rec {
|
|||
|
||||
mkPathSafeName = lib.replaceChars ["@" ":" "\\" "[" "]"] ["-" "-" "-" "" ""];
|
||||
|
||||
# a type for options that take a unit name
|
||||
unitNameType = types.strMatching "[a-zA-Z0-9@%:_.\\-]+[.](service|socket|device|mount|automount|swap|target|path|timer|scope|slice)";
|
||||
|
||||
makeUnit = name: unit:
|
||||
if unit.enable then
|
||||
pkgs.runCommand "unit-${mkPathSafeName name}"
|
||||
|
|
|
@ -45,7 +45,7 @@ in rec {
|
|||
|
||||
requiredBy = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
Units that require (i.e. depend on and need to go down with)
|
||||
this unit. The discussion under <literal>wantedBy</literal>
|
||||
|
@ -56,7 +56,7 @@ in rec {
|
|||
|
||||
wantedBy = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
Units that want (i.e. depend on) this unit. The standard way
|
||||
to make a unit start by default at boot is to set this option
|
||||
|
@ -73,7 +73,7 @@ in rec {
|
|||
|
||||
aliases = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = "Aliases of that unit.";
|
||||
};
|
||||
|
||||
|
@ -110,7 +110,7 @@ in rec {
|
|||
|
||||
requires = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
Start the specified units when this unit is started, and stop
|
||||
this unit when the specified units are stopped or fail.
|
||||
|
@ -119,7 +119,7 @@ in rec {
|
|||
|
||||
wants = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
Start the specified units when this unit is started.
|
||||
'';
|
||||
|
@ -127,7 +127,7 @@ in rec {
|
|||
|
||||
after = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
If the specified units are started at the same time as
|
||||
this unit, delay this unit until they have started.
|
||||
|
@ -136,7 +136,7 @@ in rec {
|
|||
|
||||
before = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
If the specified units are started at the same time as
|
||||
this unit, delay them until this unit has started.
|
||||
|
@ -145,7 +145,7 @@ in rec {
|
|||
|
||||
bindsTo = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
Like ‘requires’, but in addition, if the specified units
|
||||
unexpectedly disappear, this unit will be stopped as well.
|
||||
|
@ -154,7 +154,7 @@ in rec {
|
|||
|
||||
partOf = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
If the specified units are stopped or restarted, then this
|
||||
unit is stopped or restarted as well.
|
||||
|
@ -163,7 +163,7 @@ in rec {
|
|||
|
||||
conflicts = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
If the specified units are started, then this unit is stopped
|
||||
and vice versa.
|
||||
|
@ -172,7 +172,7 @@ in rec {
|
|||
|
||||
requisite = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
Similar to requires. However if the units listed are not started,
|
||||
they will not be started and the transaction will fail.
|
||||
|
@ -203,7 +203,7 @@ in rec {
|
|||
|
||||
onFailure = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
A list of one or more units that are activated when
|
||||
this unit enters the "failed" state.
|
||||
|
|
|
@ -764,6 +764,7 @@
|
|||
./services/networking/gvpe.nix
|
||||
./services/networking/hans.nix
|
||||
./services/networking/haproxy.nix
|
||||
./services/networking/headscale.nix
|
||||
./services/networking/hostapd.nix
|
||||
./services/networking/htpdate.nix
|
||||
./services/networking/hylafax/default.nix
|
||||
|
|
490
nixos/modules/services/networking/headscale.nix
Normal file
490
nixos/modules/services/networking/headscale.nix
Normal file
|
@ -0,0 +1,490 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.headscale;
|
||||
|
||||
dataDir = "/var/lib/headscale";
|
||||
runDir = "/run/headscale";
|
||||
|
||||
settingsFormat = pkgs.formats.yaml { };
|
||||
configFile = settingsFormat.generate "headscale.yaml" cfg.settings;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.headscale = {
|
||||
enable = mkEnableOption "headscale, Open Source coordination server for Tailscale";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.headscale;
|
||||
defaultText = literalExpression "pkgs.headscale";
|
||||
description = ''
|
||||
Which headscale package to use for the running server.
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
default = "headscale";
|
||||
type = types.str;
|
||||
description = ''
|
||||
User account under which headscale runs.
|
||||
<note><para>
|
||||
If left as the default value this user will automatically be created
|
||||
on system activation, otherwise you are responsible for
|
||||
ensuring the user exists before the headscale service starts.
|
||||
</para></note>
|
||||
'';
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
default = "headscale";
|
||||
type = types.str;
|
||||
description = ''
|
||||
Group under which headscale runs.
|
||||
<note><para>
|
||||
If left as the default value this group will automatically be created
|
||||
on system activation, otherwise you are responsible for
|
||||
ensuring the user exists before the headscale service starts.
|
||||
</para></note>
|
||||
'';
|
||||
};
|
||||
|
||||
serverUrl = mkOption {
|
||||
type = types.str;
|
||||
default = "http://127.0.0.1:8080";
|
||||
description = ''
|
||||
The url clients will connect to.
|
||||
'';
|
||||
example = "https://myheadscale.example.com:443";
|
||||
};
|
||||
|
||||
address = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = ''
|
||||
Listening address of headscale.
|
||||
'';
|
||||
example = "0.0.0.0";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 8080;
|
||||
description = ''
|
||||
Listening port of headscale.
|
||||
'';
|
||||
example = 443;
|
||||
};
|
||||
|
||||
privateKeyFile = mkOption {
|
||||
type = types.path;
|
||||
default = "${dataDir}/private.key";
|
||||
description = ''
|
||||
Path to private key file, generated automatically if it does not exist.
|
||||
'';
|
||||
};
|
||||
|
||||
derp = {
|
||||
urls = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "https://controlplane.tailscale.com/derpmap/default" ];
|
||||
description = ''
|
||||
List of urls containing DERP maps.
|
||||
See <link xlink:href="https://tailscale.com/blog/how-tailscale-works/">How Tailscale works</link> for more information on DERP maps.
|
||||
'';
|
||||
};
|
||||
|
||||
paths = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [ ];
|
||||
description = ''
|
||||
List of file paths containing DERP maps.
|
||||
See <link xlink:href="https://tailscale.com/blog/how-tailscale-works/">How Tailscale works</link> for more information on DERP maps.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
autoUpdate = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to automatically update DERP maps on a set frequency.
|
||||
'';
|
||||
example = false;
|
||||
};
|
||||
|
||||
updateFrequency = mkOption {
|
||||
type = types.str;
|
||||
default = "24h";
|
||||
description = ''
|
||||
Frequency to update DERP maps.
|
||||
'';
|
||||
example = "5m";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
ephemeralNodeInactivityTimeout = mkOption {
|
||||
type = types.str;
|
||||
default = "30m";
|
||||
description = ''
|
||||
Time before an inactive ephemeral node is deleted.
|
||||
'';
|
||||
example = "5m";
|
||||
};
|
||||
|
||||
database = {
|
||||
type = mkOption {
|
||||
type = types.enum [ "sqlite3" "postgres" ];
|
||||
example = "postgres";
|
||||
default = "sqlite3";
|
||||
description = "Database engine to use.";
|
||||
};
|
||||
|
||||
host = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "127.0.0.1";
|
||||
description = "Database host address.";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.nullOr types.port;
|
||||
default = null;
|
||||
example = 3306;
|
||||
description = "Database host port.";
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "headscale";
|
||||
description = "Database name.";
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "headscale";
|
||||
description = "Database user.";
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/keys/headscale-dbpassword";
|
||||
description = ''
|
||||
A file containing the password corresponding to
|
||||
<option>database.user</option>.
|
||||
'';
|
||||
};
|
||||
|
||||
path = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = "${dataDir}/db.sqlite";
|
||||
description = "Path to the sqlite3 database file.";
|
||||
};
|
||||
};
|
||||
|
||||
logLevel = mkOption {
|
||||
type = types.str;
|
||||
default = "info";
|
||||
description = ''
|
||||
headscale log level.
|
||||
'';
|
||||
example = "debug";
|
||||
};
|
||||
|
||||
dns = {
|
||||
nameservers = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "1.1.1.1" ];
|
||||
description = ''
|
||||
List of nameservers to pass to Tailscale clients.
|
||||
'';
|
||||
};
|
||||
|
||||
domains = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
description = ''
|
||||
Search domains to inject to Tailscale clients.
|
||||
'';
|
||||
example = [ "mydomain.internal" ];
|
||||
};
|
||||
|
||||
magicDns = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/).
|
||||
Only works if there is at least a nameserver defined.
|
||||
'';
|
||||
example = false;
|
||||
};
|
||||
|
||||
baseDomain = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Defines the base domain to create the hostnames for MagicDNS.
|
||||
<option>baseDomain</option> must be a FQDNs, without the trailing dot.
|
||||
The FQDN of the hosts will be
|
||||
<literal>hostname.namespace.base_domain</literal> (e.g.
|
||||
<literal>myhost.mynamespace.example.com</literal>).
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
openIdConnect = {
|
||||
issuer = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
URL to OpenID issuer.
|
||||
'';
|
||||
example = "https://openid.example.com";
|
||||
};
|
||||
|
||||
clientId = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
OpenID Connect client ID.
|
||||
'';
|
||||
};
|
||||
|
||||
clientSecretFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to OpenID Connect client secret file.
|
||||
'';
|
||||
};
|
||||
|
||||
domainMap = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = { };
|
||||
description = ''
|
||||
Domain map is used to map incomming users (by their email) to
|
||||
a namespace. The key can be a string, or regex.
|
||||
'';
|
||||
example = {
|
||||
".*" = "default-namespace";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
tls = {
|
||||
letsencrypt = {
|
||||
hostname = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Domain name to request a TLS certificate for.
|
||||
'';
|
||||
};
|
||||
challengeType = mkOption {
|
||||
type = types.enum [ "TLS_ALPN-01" "HTTP-01" ];
|
||||
default = "HTTP-01";
|
||||
description = ''
|
||||
Type of ACME challenge to use, currently supported types:
|
||||
<literal>HTTP-01</literal> or <literal>TLS_ALPN-01</literal>.
|
||||
'';
|
||||
};
|
||||
httpListen = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = ":http";
|
||||
description = ''
|
||||
When HTTP-01 challenge is chosen, letsencrypt must set up a
|
||||
verification endpoint, and it will be listening on:
|
||||
<literal>:http = port 80</literal>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
certFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to already created certificate.
|
||||
'';
|
||||
};
|
||||
keyFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to key for already created certificate.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
aclPolicyFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to a file containg ACL policies.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = settingsFormat.type;
|
||||
default = { };
|
||||
description = ''
|
||||
Overrides to <filename>config.yaml</filename> as a Nix attribute set.
|
||||
This option is ideal for overriding settings not exposed as Nix options.
|
||||
Check the <link xlink:href="https://github.com/juanfont/headscale/blob/main/config-example.yaml">example config</link>
|
||||
for possible options.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
services.headscale.settings = {
|
||||
server_url = mkDefault cfg.serverUrl;
|
||||
listen_addr = mkDefault "${cfg.address}:${toString cfg.port}";
|
||||
|
||||
private_key_path = mkDefault cfg.privateKeyFile;
|
||||
|
||||
derp = {
|
||||
urls = mkDefault cfg.derp.urls;
|
||||
paths = mkDefault cfg.derp.paths;
|
||||
auto_update_enable = mkDefault cfg.derp.autoUpdate;
|
||||
update_frequency = mkDefault cfg.derp.updateFrequency;
|
||||
};
|
||||
|
||||
# Turn off update checks since the origin of our package
|
||||
# is nixpkgs and not Github.
|
||||
disable_check_updates = true;
|
||||
|
||||
ephemeral_node_inactivity_timeout = mkDefault cfg.ephemeralNodeInactivityTimeout;
|
||||
|
||||
db_type = mkDefault cfg.database.type;
|
||||
db_path = mkDefault cfg.database.path;
|
||||
|
||||
log_level = mkDefault cfg.logLevel;
|
||||
|
||||
dns_config = {
|
||||
nameservers = mkDefault cfg.dns.nameservers;
|
||||
domains = mkDefault cfg.dns.domains;
|
||||
magic_dns = mkDefault cfg.dns.magicDns;
|
||||
base_domain = mkDefault cfg.dns.baseDomain;
|
||||
};
|
||||
|
||||
unix_socket = "${runDir}/headscale.sock";
|
||||
|
||||
# OpenID Connect
|
||||
oidc = {
|
||||
issuer = mkDefault cfg.openIdConnect.issuer;
|
||||
client_id = mkDefault cfg.openIdConnect.clientId;
|
||||
domain_map = mkDefault cfg.openIdConnect.domainMap;
|
||||
};
|
||||
|
||||
tls_letsencrypt_cache_dir = "${dataDir}/.cache";
|
||||
|
||||
} // optionalAttrs (cfg.database.host != null) {
|
||||
db_host = mkDefault cfg.database.host;
|
||||
} // optionalAttrs (cfg.database.port != null) {
|
||||
db_port = mkDefault cfg.database.port;
|
||||
} // optionalAttrs (cfg.database.name != null) {
|
||||
db_name = mkDefault cfg.database.name;
|
||||
} // optionalAttrs (cfg.database.user != null) {
|
||||
db_user = mkDefault cfg.database.user;
|
||||
} // optionalAttrs (cfg.tls.letsencrypt.hostname != null) {
|
||||
tls_letsencrypt_hostname = mkDefault cfg.tls.letsencrypt.hostname;
|
||||
} // optionalAttrs (cfg.tls.letsencrypt.challengeType != null) {
|
||||
tls_letsencrypt_challenge_type = mkDefault cfg.tls.letsencrypt.challengeType;
|
||||
} // optionalAttrs (cfg.tls.letsencrypt.httpListen != null) {
|
||||
tls_letsencrypt_listen = mkDefault cfg.tls.letsencrypt.httpListen;
|
||||
} // optionalAttrs (cfg.tls.certFile != null) {
|
||||
tls_cert_path = mkDefault cfg.tls.certFile;
|
||||
} // optionalAttrs (cfg.tls.keyFile != null) {
|
||||
tls_key_path = mkDefault cfg.tls.keyFile;
|
||||
} // optionalAttrs (cfg.aclPolicyFile != null) {
|
||||
acl_policy_path = mkDefault cfg.aclPolicyFile;
|
||||
};
|
||||
|
||||
# Setup the headscale configuration in a known path in /etc to
|
||||
# allow both the Server and the Client use it to find the socket
|
||||
# for communication.
|
||||
environment.etc."headscale/config.yaml".source = configFile;
|
||||
|
||||
users.groups.headscale = mkIf (cfg.group == "headscale") { };
|
||||
|
||||
users.users.headscale = mkIf (cfg.user == "headscale") {
|
||||
description = "headscale user";
|
||||
home = dataDir;
|
||||
group = cfg.group;
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
systemd.services.headscale = {
|
||||
description = "headscale coordination server for Tailscale";
|
||||
after = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartTriggers = [ configFile ];
|
||||
|
||||
script = ''
|
||||
${optionalString (cfg.database.passwordFile != null) ''
|
||||
export HEADSCALE_DB_PASS="$(head -n1 ${escapeShellArg cfg.database.passwordFile})"
|
||||
''}
|
||||
|
||||
export HEADSCALE_OIDC_CLIENT_SECRET="$(head -n1 ${escapeShellArg cfg.openIdConnect.clientSecretFile})"
|
||||
exec ${cfg.package}/bin/headscale serve
|
||||
'';
|
||||
|
||||
serviceConfig =
|
||||
let
|
||||
capabilityBoundingSet = [ "CAP_CHOWN" ] ++ optional (cfg.port < 1024) "CAP_NET_BIND_SERVICE";
|
||||
in
|
||||
{
|
||||
Restart = "always";
|
||||
Type = "simple";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
|
||||
# Hardening options
|
||||
RuntimeDirectory = "headscale";
|
||||
# Allow headscale group access so users can be added and use the CLI.
|
||||
RuntimeDirectoryMode = "0750";
|
||||
|
||||
StateDirectory = "headscale";
|
||||
StateDirectoryMode = "0750";
|
||||
|
||||
ProtectSystem = "strict";
|
||||
ProtectHome = true;
|
||||
PrivateTmp = true;
|
||||
PrivateDevices = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectControlGroups = true;
|
||||
RestrictSUIDSGID = true;
|
||||
PrivateMounts = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectHostname = true;
|
||||
ProtectClock = true;
|
||||
ProtectProc = "invisible";
|
||||
ProcSubset = "pid";
|
||||
RestrictNamespaces = true;
|
||||
RemoveIPC = true;
|
||||
UMask = "0077";
|
||||
|
||||
CapabilityBoundingSet = capabilityBoundingSet;
|
||||
AmbientCapabilities = capabilityBoundingSet;
|
||||
NoNewPrivileges = true;
|
||||
LockPersonality = true;
|
||||
RestrictRealtime = true;
|
||||
SystemCallFilter = [ "@system-service" "~@priviledged" "@chown" ];
|
||||
SystemCallArchitectures = "native";
|
||||
RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with maintainers; [ kradalby ];
|
||||
}
|
|
@ -4,6 +4,8 @@ with lib;
|
|||
let
|
||||
cfg = config.services.miniflux;
|
||||
|
||||
defaultAddress = "localhost:8080";
|
||||
|
||||
dbUser = "miniflux";
|
||||
dbPassword = "miniflux";
|
||||
dbHost = "localhost";
|
||||
|
@ -31,7 +33,7 @@ in
|
|||
{
|
||||
options = {
|
||||
services.miniflux = {
|
||||
enable = mkEnableOption "miniflux";
|
||||
enable = mkEnableOption "miniflux and creates a local postgres database for it";
|
||||
|
||||
config = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
|
@ -45,6 +47,9 @@ in
|
|||
Configuration for Miniflux, refer to
|
||||
<link xlink:href="https://miniflux.app/docs/configuration.html"/>
|
||||
for documentation on the supported values.
|
||||
|
||||
Correct configuration for the database is already provided.
|
||||
By default, listens on ${defaultAddress}.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -64,7 +69,7 @@ in
|
|||
config = mkIf cfg.enable {
|
||||
|
||||
services.miniflux.config = {
|
||||
LISTEN_ADDR = mkDefault "localhost:8080";
|
||||
LISTEN_ADDR = mkDefault defaultAddress;
|
||||
DATABASE_URL = "postgresql://${dbUser}:${dbPassword}@${dbHost}/${dbName}?sslmode=disable";
|
||||
RUN_MIGRATIONS = "1";
|
||||
CREATE_ADMIN = "1";
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ergo";
|
||||
version = "4.0.16.2";
|
||||
version = "4.0.20.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
|
||||
sha256 = "sha256-nAaNT5Rt/oLBA2pSJSinoLKMYJ0VZmuC0zoMYbMSAJQ=";
|
||||
sha256 = "sha256-uKt0TNKcqiXiT5MnsguU5fTdUyFgV7Km5KjrFS/7tws=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
47
pkgs/applications/misc/edgetx/default.nix
Normal file
47
pkgs/applications/misc/edgetx/default.nix
Normal file
|
@ -0,0 +1,47 @@
|
|||
{ lib, mkDerivation, fetchFromGitHub
|
||||
, cmake, gcc-arm-embedded, python3Packages
|
||||
, qtbase, qtmultimedia, qttranslations, SDL, gtest
|
||||
, dfu-util
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "edgetx";
|
||||
version = "2.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EdgeTX";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-TffHFgr3g7v4VnNSSlLITz4cYjHM6wE0aI85W1g4IFA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake gcc-arm-embedded python3Packages.pillow ];
|
||||
|
||||
buildInputs = [ qtbase qtmultimedia qttranslations SDL ];
|
||||
|
||||
postPatch = ''
|
||||
sed -i companion/src/burnconfigdialog.cpp \
|
||||
-e 's|/usr/.*bin/dfu-util|${dfu-util}/bin/dfu-util|'
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
"-DGTEST_ROOT=${gtest.src}/googletest"
|
||||
"-DQT_TRANSLATIONS_DIR=${qttranslations}/translations"
|
||||
"-DDFU_UTIL_PATH=${dfu-util}/bin/dfu-util"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "EdgeTX Companion transmitter support software";
|
||||
longDescription = ''
|
||||
EdgeTX Companion is used for many different tasks like loading EdgeTX
|
||||
firmware to the radio, backing up model settings, editing settings and
|
||||
running radio simulators.
|
||||
'';
|
||||
homepage = "https://edgetx.org/";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
|
||||
maintainers = with maintainers; [ elitak lopsided98 wucke13 ];
|
||||
};
|
||||
|
||||
}
|
|
@ -1,20 +1,36 @@
|
|||
{ lib, stdenv, python3Packages, radicale3 }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, python3
|
||||
, radicale3
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
let
|
||||
python = python3.override {
|
||||
packageOverrides = self: super: {
|
||||
flask_wtf = super.flask_wtf.overridePythonAttrs (old: rec {
|
||||
version = "0.15.1";
|
||||
src = old.src.override {
|
||||
inherit version;
|
||||
sha256 = "ff177185f891302dc253437fe63081e7a46a4e99aca61dfe086fb23e54fff2dc";
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
in python.pkgs.buildPythonApplication rec {
|
||||
pname = "etesync-dav";
|
||||
version = "0.30.8";
|
||||
version = "0.32.1";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
src = python.pkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-HBLQsq3B6TMdcnUt8ukbk3+S0Ed44+gePkpuGZ2AyC4=";
|
||||
sha256 = "a4e2ee83932755d29ac39c1e74005ec289880fd2d4d2164f09fe2464a294d720";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
propagatedBuildInputs = with python.pkgs; [
|
||||
etebase
|
||||
etesync
|
||||
flask
|
||||
flask_wtf
|
||||
radicale3
|
||||
(python.pkgs.toPythonModule (radicale3.override { python3 = python; }))
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
|
|
@ -13,13 +13,13 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "nwg-panel";
|
||||
version = "0.5.4";
|
||||
version = "0.5.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nwg-piotr";
|
||||
repo = "nwg-panel";
|
||||
rev = "v${version}";
|
||||
sha256 = "0vl9vfgpa1byf9vxn03j58h9zcbjd1y83b0kgv97cxm2mhqz12dg";
|
||||
sha256 = "1d3qh42cwayb5d9ymhfs2vrbg5x5x6x73hw77m3xb9y4vyhji85x";
|
||||
};
|
||||
|
||||
# No tests
|
||||
|
|
|
@ -4,6 +4,10 @@
|
|||
, callPackage
|
||||
}:
|
||||
|
||||
let makeurl = { pname, year, version }: "https://download.qoppa.com/${pname}/v${year}/${
|
||||
builtins.replaceStrings [ "pdfstudio" "viewer" "." ] [ "PDFStudio" "Viewer" "_" ] "${pname}_v${version}"
|
||||
}_linux64.deb";
|
||||
in
|
||||
{
|
||||
pdfstudio = callPackage ./common.nix rec {
|
||||
pname = program;
|
||||
|
@ -17,9 +21,7 @@
|
|||
libgccjit #for libstdc++.so.6 and libgomp.so.1
|
||||
];
|
||||
src = fetchurl {
|
||||
url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${
|
||||
builtins.replaceStrings [ "." ] [ "_" ] version
|
||||
}_linux64.deb";
|
||||
url = makeurl { inherit pname year version; };
|
||||
sha256 = "1188ll2qz58rr2slavqxisbz4q3fdzidpasb1p33926z0ym3rk45";
|
||||
};
|
||||
};
|
||||
|
@ -33,9 +35,7 @@
|
|||
PDF Studio Viewer is an easy to use, full-featured PDF editing software. This is the free edition. For the standard/pro edition, see the package pdfstudio.
|
||||
'';
|
||||
src = fetchurl {
|
||||
url = "https://download.qoppa.com/${pname}/v${year}/PDFStudioViewer_v${
|
||||
builtins.replaceStrings [ "." ] [ "_" ] version
|
||||
}_linux64.deb";
|
||||
url = makeurl { inherit pname year version; };
|
||||
sha256 = "128k3fm8m8zdykx4s30g5m2zl7cgmvs4qinf1w525zh84v56agz6";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -5,13 +5,13 @@ buildGoModule rec {
|
|||
/* Do not use "dev" as a version. If you do, Tilt will consider itself
|
||||
running in development environment and try to serve assets from the
|
||||
source tree, which is not there once build completes. */
|
||||
version = "0.23.4";
|
||||
version = "0.23.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tilt-dev";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-SWofXsbkuirPvqgU639W8IQklafLKbThoZUzOzfYwdQ=";
|
||||
sha256 = "sha256-qVybS+gRuTezX89NMWYQVWtUH6wnjB11HImejrzVHAc=";
|
||||
};
|
||||
vendorSha256 = null;
|
||||
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
From ac9387271b2420a71f7d172f44354fc35adac504 Mon Sep 17 00:00:00 2001
|
||||
From: Manuel Nickschas <sputnick@quassel-irc.org>
|
||||
Date: Tue, 7 Jan 2020 18:34:54 +0100
|
||||
Subject: [PATCH] common: Disable enum type stream operators for Qt >= 5.14
|
||||
|
||||
Starting from version 5.14, Qt provides stream operators for enum
|
||||
types, which collide with the ones we ship in types.h. Disable
|
||||
Quassel's stream operators when compiling against Qt 5.14 or later.
|
||||
|
||||
(cherry-picked from 579e559a6322209df7cd51c34801fecff5fe734b)
|
||||
---
|
||||
src/common/types.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/common/types.h b/src/common/types.h
|
||||
index 467d9fb2..c4b9f364 100644
|
||||
--- a/src/common/types.h
|
||||
+++ b/src/common/types.h
|
||||
@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress)
|
||||
typedef QList<MsgId> MsgIdList;
|
||||
typedef QList<BufferId> BufferIdList;
|
||||
|
||||
+#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
|
||||
/**
|
||||
* Catch-all stream serialization operator for enum types.
|
||||
*
|
||||
@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) {
|
||||
value = static_cast<T>(v);
|
||||
return in;
|
||||
}
|
||||
+#endif
|
||||
|
||||
// Exceptions
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
, static ? false # link statically
|
||||
|
||||
, lib, stdenv, fetchFromGitHub, cmake, makeWrapper, dconf
|
||||
, mkDerivation, qtbase, qtscript
|
||||
, mkDerivation, qtbase, boost, zlib, qtscript
|
||||
, phonon, libdbusmenu, qca-qt5
|
||||
|
||||
, withKDE ? true # enable KDE integration
|
||||
|
@ -33,27 +33,21 @@ let
|
|||
|
||||
in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec {
|
||||
pname = "quassel${tag}";
|
||||
version = "0.13.1";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "quassel";
|
||||
repo = "quassel";
|
||||
rev = version;
|
||||
sha256 = "0z8p7iv90yrrjbh31cyxhpr6hsynfmi23rlayn7p2f6ki5az7yc3";
|
||||
sha256 = "sha256-eulhNcyCmy9ryietOhT2yVJeJH+MMZRbTUo2XuTy9qU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# fixes build with Qt 5.14
|
||||
# source: https://github.com/quassel/quassel/pull/518/commits/8a46d983fc99204711cdff1e4c542e272fef45b9
|
||||
./0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
|
||||
];
|
||||
|
||||
# Prevent ``undefined reference to `qt_version_tag''' in SSL check
|
||||
NIX_CFLAGS_COMPILE = "-DQT_NO_VERSION_TAGGING=1";
|
||||
|
||||
nativeBuildInputs = [ cmake makeWrapper ];
|
||||
buildInputs = [ qtbase ]
|
||||
++ lib.optionals buildCore [qtscript qca-qt5]
|
||||
buildInputs = [ qtbase boost zlib ]
|
||||
++ lib.optionals buildCore [qtscript qca-qt5 ]
|
||||
++ lib.optionals buildClient [libdbusmenu phonon]
|
||||
++ lib.optionals (buildClient && withKDE) [
|
||||
extra-cmake-modules kconfigwidgets kcoreaddons
|
||||
|
|
59
pkgs/applications/office/morgen/default.nix
Normal file
59
pkgs/applications/office/morgen/default.nix
Normal file
|
@ -0,0 +1,59 @@
|
|||
{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
|
||||
, nodePackages, alsa-lib, gtk3, libxshmfence, mesa, nss }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "morgen";
|
||||
version = "2.4.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.todesktop.com/210203cqcj00tw1/morgen-${version}.deb";
|
||||
sha256 = "sha256-IWGeb0+IiFNYJ+jQAzGYfQ5FnrbR6HIpynS9jgd5/mY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
dpkg
|
||||
autoPatchelfHook
|
||||
makeWrapper
|
||||
nodePackages.asar
|
||||
];
|
||||
|
||||
buildInputs = [ alsa-lib gtk3 libxshmfence mesa nss ];
|
||||
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
unpackCmd = ''
|
||||
dpkg-deb -x ${src} ./morgen-${pname}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mv usr $out
|
||||
mv opt $out
|
||||
|
||||
asar extract $out/opt/Morgen/resources/app.asar "$TMP/work"
|
||||
# 1. Fixes path for todesktop-runtime-config.json
|
||||
# 2. Fixes startup script
|
||||
substituteInPlace $TMP/work/dist/main.js \
|
||||
--replace "process.resourcesPath,\"todesktop-runtime-config.json" "\"$out/opt/Morgen/resources/todesktop-runtime-config.json" \
|
||||
--replace "Exec=\"+process.execPath+\"" "Exec=$out/bin/morgen"
|
||||
asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" $out/opt/Morgen/resources/app.asar
|
||||
|
||||
substituteInPlace $out/share/applications/morgen.desktop \
|
||||
--replace '/opt/Morgen' $out/bin
|
||||
|
||||
makeWrapper ${electron}/bin/electron $out/bin/morgen \
|
||||
--add-flags $out/opt/Morgen/resources/app.asar
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "All-in-one Calendars, Tasks and Scheduler";
|
||||
homepage = "https://morgen.so/download";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ wolfangaukang ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
|
@ -7,11 +7,11 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "skrooge";
|
||||
version = "2.26.1";
|
||||
version = "2.27.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-66hoA+FDTeMbNAInr9TlTSnwUywJQjTRz87MkdNYn5Q=";
|
||||
sha256 = "sha256-xkl0UyJEDOeYOqqXf3woCDMb8ZyC2c5ChQdDFFERZxE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "zanshin";
|
||||
version = "21.12.0";
|
||||
version = "21.12.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/release-service/${version}/src/zanshin-${version}.tar.xz";
|
||||
sha256 = "sha256-l8W47tS7q747fkSAH3HJdwPsqjMfCyxzl3xJEeAXeh0=";
|
||||
sha256 = "sha256-hYbJwmnD9i/SL5ET2t9YgPxJHJUpAbMZ4a62WljhpHw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
22
pkgs/applications/science/physics/shtns/default.nix
Normal file
22
pkgs/applications/science/physics/shtns/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ lib, stdenv, fetchgit, fftw }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "shtns";
|
||||
version = "3.5.1";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://bitbucket.org/nschaeff/shtns";
|
||||
rev = "v${version}";
|
||||
sha256 = "1ajrplhv7a2dvb3cn3n638281w0bzdcydvvwbg64awbjg622mdpd";
|
||||
};
|
||||
|
||||
buildInputs = [ fftw ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "High performance library for Spherical Harmonic Transform";
|
||||
homepage = "https://nschaeff.bitbucket.io/shtns/";
|
||||
license = licenses.cecill21;
|
||||
maintainers = [ maintainers.bzizou ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -22,9 +22,9 @@ stdenv.mkDerivation {
|
|||
xcbutilwm
|
||||
];
|
||||
|
||||
sourceRoot = let
|
||||
prePatch = let
|
||||
subdir = if stdenv.isDarwin then "osx" else "linux";
|
||||
in "source/${subdir}";
|
||||
in "cd ${subdir}";
|
||||
|
||||
makeFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"commit": "3034b8f1052c41d5b3c571cb2bedb5f62bbede65",
|
||||
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/3034b8f1052c41d5b3c571cb2bedb5f62bbede65.tar.gz",
|
||||
"sha256": "0kqga1mf7vr292jcaqw8qk4s1bjwc2z1wwjih5xwli3hkk584l20",
|
||||
"msg": "Update from Hackage at 2022-01-24T10:21:35Z"
|
||||
"commit": "b233c8c0ee187788a69d929293a953cf89ffc012",
|
||||
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/b233c8c0ee187788a69d929293a953cf89ffc012.tar.gz",
|
||||
"sha256": "00mi9jxjbd9mk2pghj1ks9mjy9i0x50kcgi28iajq0kvxc97c9sp",
|
||||
"msg": "Update from Hackage at 2022-01-27T16:52:24Z"
|
||||
}
|
||||
|
|
|
@ -20,9 +20,10 @@
|
|||
# build-time dependency too.
|
||||
buildTargetLlvmPackages, llvmPackages
|
||||
|
||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||
# library instead of the faster but GPLed integer-gmp library.
|
||||
enableIntegerSimple ? !(lib.meta.availableOn stdenv.hostPlatform gmp), gmp
|
||||
, # If enabled, GHC will be built with the GPL-free but slightly slower native
|
||||
# bignum backend instead of the faster but GPLed gmp backend.
|
||||
enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp)
|
||||
, gmp
|
||||
|
||||
, # If enabled, use -fPIC when compiling static libs.
|
||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||
|
@ -61,7 +62,7 @@
|
|||
disableLargeAddressSpace ? stdenv.targetPlatform.isiOS
|
||||
}:
|
||||
|
||||
assert !enableIntegerSimple -> gmp != null;
|
||||
assert !enableNativeBignum -> gmp != null;
|
||||
|
||||
# Cross cannot currently build the `haddock` program for silly reasons,
|
||||
# see note [HADDOCK_DOCS].
|
||||
|
@ -98,7 +99,7 @@ let
|
|||
''
|
||||
HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
|
||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
||||
BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
|
||||
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
||||
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
||||
CrossCompilePrefix = ${targetPrefix}
|
||||
|
@ -114,7 +115,7 @@ let
|
|||
# Splicer will pull out correct variations
|
||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ lib.optional (!enableIntegerSimple) gmp
|
||||
++ lib.optional (!enableNativeBignum) gmp
|
||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
# TODO(@sternenseemann): is buildTarget LLVM unnecessary?
|
||||
|
@ -152,7 +153,7 @@ let
|
|||
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
|
||||
variantSuffix = lib.concatStrings [
|
||||
(lib.optionalString stdenv.hostPlatform.isMusl "-musl")
|
||||
(lib.optionalString enableIntegerSimple "-integer-simple")
|
||||
(lib.optionalString enableNativeBignum "-native-bignum")
|
||||
];
|
||||
|
||||
in
|
||||
|
@ -251,7 +252,7 @@ stdenv.mkDerivation (rec {
|
|||
"--with-system-libffi"
|
||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
|
||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||
|
|
|
@ -21,9 +21,10 @@
|
|||
# build-time dependency too.
|
||||
buildTargetLlvmPackages, llvmPackages
|
||||
|
||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||
# library instead of the faster but GPLed integer-gmp library.
|
||||
enableIntegerSimple ? !(lib.meta.availableOn stdenv.hostPlatform gmp), gmp
|
||||
, # If enabled, GHC will be built with the GPL-free but slightly slower native
|
||||
# bignum backend instead of the faster but GPLed gmp backend.
|
||||
enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp)
|
||||
, gmp
|
||||
|
||||
, # If enabled, use -fPIC when compiling static libs.
|
||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||
|
@ -62,7 +63,7 @@
|
|||
disableLargeAddressSpace ? stdenv.targetPlatform.isiOS
|
||||
}:
|
||||
|
||||
assert !enableIntegerSimple -> gmp != null;
|
||||
assert !enableNativeBignum -> gmp != null;
|
||||
|
||||
# Cross cannot currently build the `haddock` program for silly reasons,
|
||||
# see note [HADDOCK_DOCS].
|
||||
|
@ -99,7 +100,7 @@ let
|
|||
''
|
||||
HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
|
||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
||||
BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
|
||||
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
||||
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
||||
CrossCompilePrefix = ${targetPrefix}
|
||||
|
@ -115,7 +116,7 @@ let
|
|||
# Splicer will pull out correct variations
|
||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ lib.optional (!enableIntegerSimple) gmp
|
||||
++ lib.optional (!enableNativeBignum) gmp
|
||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
# TODO(@sternenseemann): is buildTarget LLVM unnecessary?
|
||||
|
@ -153,7 +154,7 @@ let
|
|||
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
|
||||
variantSuffix = lib.concatStrings [
|
||||
(lib.optionalString stdenv.hostPlatform.isMusl "-musl")
|
||||
(lib.optionalString enableIntegerSimple "-integer-simple")
|
||||
(lib.optionalString enableNativeBignum "-native-bignum")
|
||||
];
|
||||
|
||||
in
|
||||
|
@ -252,7 +253,7 @@ stdenv.mkDerivation (rec {
|
|||
"--with-system-libffi"
|
||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
|
||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||
|
|
|
@ -201,6 +201,7 @@ broken-packages:
|
|||
- arrow-list
|
||||
- arrowp
|
||||
- arrowp-qq
|
||||
- arrow-utils
|
||||
- ArrowVHDL
|
||||
- artery
|
||||
- artifact
|
||||
|
@ -5379,6 +5380,7 @@ broken-packages:
|
|||
- wavefront-obj
|
||||
- weak-bag
|
||||
- weather-api
|
||||
- web3-polkadot
|
||||
- webapi
|
||||
- webapp
|
||||
- webauthn
|
||||
|
|
|
@ -752,6 +752,7 @@ dont-distribute-packages:
|
|||
- clckwrks-theme-clckwrks
|
||||
- clckwrks-theme-geo-bootstrap
|
||||
- cless
|
||||
- cleveland
|
||||
- click-clack
|
||||
- clifford
|
||||
- clippings
|
||||
|
@ -1771,6 +1772,7 @@ dont-distribute-packages:
|
|||
- indentation-trifecta
|
||||
- indexation
|
||||
- indieweb-algorithms
|
||||
- indigo
|
||||
- infernu
|
||||
- inline-java
|
||||
- inspector-wrecker
|
||||
|
@ -2161,6 +2163,8 @@ dont-distribute-packages:
|
|||
- moo
|
||||
- moo-nad
|
||||
- morley
|
||||
- morley-client
|
||||
- morley-upgradeable
|
||||
- morloc
|
||||
- morpheus-graphql-client_0_18_0
|
||||
- morpheus-graphql_0_18_0
|
||||
|
@ -3221,6 +3225,7 @@ dont-distribute-packages:
|
|||
- web-routes-regular
|
||||
- web-routing
|
||||
- web3
|
||||
- web3-ethereum
|
||||
- webcrank-wai
|
||||
- webdriver-w3c
|
||||
- webserver
|
||||
|
|
832
pkgs/development/haskell-modules/hackage-packages.nix
generated
832
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load diff
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "zef";
|
||||
version = "0.13.4";
|
||||
version = "0.13.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ugexe";
|
||||
repo = "zef";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-zTgXMICuLn612bmL5e6GP5aBQ4uOcSLfce0PCRYGob0=";
|
||||
sha256 = "sha256-Bios3h2bcR6PntFt6JWF7l5u6gjKaljS8HsKfTf+0X8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
|
@ -15,13 +15,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "indilib";
|
||||
version = "1.9.3";
|
||||
version = "1.9.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "indilib";
|
||||
repo = "indi";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Ik62kbOetA2vSMpnwrSiNRNJqOgmqlCB2+KNhpBo9TA=";
|
||||
sha256 = "sha256-U3Q0WUEDRn0zfBIdHXFp5Zcaf+M6HrSFnpeu5aAkjks=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{ cmake
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, sqlite
|
||||
, postgresql
|
||||
, boost
|
||||
|
@ -17,6 +18,14 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-NE0ApbX8HG2VAQ9cg9+kX3kJQ4PR1XvWL9BlT8NphmE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "fix-backend-search-path.patch";
|
||||
url = "https://github.com/SOCI/soci/commit/56c93afc467bdba8ffbe68739eea76059ea62f7a.patch";
|
||||
sha256 = "sha256-nC/39pn3Cv5e65GgIfF3l64/AbCsfZHPUPIWETZFZAY=";
|
||||
})
|
||||
];
|
||||
|
||||
# Do not build static libraries
|
||||
cmakeFlags = [ "-DSOCI_STATIC=OFF" "-DCMAKE_CXX_STANDARD=11" ];
|
||||
|
||||
|
|
|
@ -13,8 +13,11 @@ buildPecl {
|
|||
sha256 = "sha256-Dw1+pYJmZ3U2+rgSOEkx4a6HB8FebSr7YZodOjSipjI=";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
cd ext
|
||||
'';
|
||||
|
||||
buildInputs = [ libmaxminddb ];
|
||||
sourceRoot = "source/ext";
|
||||
|
||||
meta = with lib; {
|
||||
description = "C extension that is a drop-in replacement for MaxMind\\Db\\Reader";
|
||||
|
|
|
@ -19,14 +19,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "plugwise";
|
||||
version = "0.15.4";
|
||||
version = "0.16.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = "python-plugwise";
|
||||
rev = "v${version}";
|
||||
sha256 = "0lp87vn9kh0xqng5mv5j914pgrbnhp54bisq76njijn32mgaw4qq";
|
||||
sha256 = "1zgrq70ihkix39kf08h8xbjxa49800j9l6rn9nbgzwd25d7nlal0";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "subarulink";
|
||||
version = "0.3.16";
|
||||
version = "0.4.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
|||
owner = "G-Two";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-7waY5AOONi+u056JRH9KcoBWSB4AlMw4QcMW0uoCARc=";
|
||||
sha256 = "0mn3am1np653a3mq8rjly482a9x2rp6ss9zx997b6adk5vm3zasc";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "treq";
|
||||
version = "21.5.0";
|
||||
version = "22.1.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "02ea86383fc4b57539c45a965eaa1e9fd28302cdf382d21da8430050c97be9b8";
|
||||
sha256 = "sha256-d1WBYEkZo9echFQBWYoP0HDKvG3oOEBHLY6fpxXy02w=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "types-urllib3";
|
||||
version = "1.26.7";
|
||||
version = "1.26.8";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-z9H7vkuppgXtFIKUAIqsinuLdHJlHRzDV9UHrlli49I=";
|
||||
hash = "sha256-qg3iaJPxOFI9VVK7sCOCbAzH6ldJ2AwWk8V6q3tV9Gk=";
|
||||
};
|
||||
|
||||
# Module doesn't have tests
|
||||
|
|
|
@ -2,15 +2,15 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "konstraint";
|
||||
version = "0.15.1";
|
||||
version = "0.16.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "plexsystems";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-vt8/hYsThBoAxMglF8pjdVphmkbHXsuzaHFJhnGXdU4=";
|
||||
sha256 = "sha256-j1rVkI5hXYtY0jtP+i/yRw1sS3iN3KyVI4gV9fNdj/E=";
|
||||
};
|
||||
vendorSha256 = "sha256-3m+mN90Edb/yMgVmkokRQrDM2EdB7cb2opL0QZJ8L+U=";
|
||||
vendorSha256 = "sha256-oYIUeHMEK55mCkf5cb5ECCU5y6tUZAM258sINrBl9kM=";
|
||||
|
||||
# Exclude go within .github folder
|
||||
excludedPackages = ".github";
|
||||
|
|
|
@ -19,11 +19,11 @@ let
|
|||
|
||||
in buildPythonApplication rec {
|
||||
pname = "pipenv";
|
||||
version = "2021.11.23";
|
||||
version = "2022.1.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1bde859e8bbd1d21d503fd995bc0170048d6da7686ab885f074592c99a16e8f3";
|
||||
sha256 = "f84d7119239b22ab2ac2b8fbc7d619d83cf41135206d72a17c4f151cda529fd0";
|
||||
};
|
||||
|
||||
LC_ALL = "en_US.UTF-8";
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
{ lib, stdenv, fetchurl, python2, wxGTK29, mupen64plus, SDL, libX11, libGLU, libGL
|
||||
, wafHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wxmupen64plus";
|
||||
version = "0.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://bitbucket.org/auria/wxmupen64plus/get/${version}.tar.bz2";
|
||||
sha256 = "1mnxi4k011dd300k35li2p6x4wccwi6im21qz8dkznnz397ps67c";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wafHook ];
|
||||
buildInputs = [ python2 wxGTK29 SDL libX11 libGLU libGL ];
|
||||
|
||||
preConfigure = ''
|
||||
tar xf ${mupen64plus.src}
|
||||
APIDIR=$(eval echo `pwd`/mupen64plus*/source/mupen64plus-core/src/api)
|
||||
export CXXFLAGS="-I${libX11.dev}/include/X11 -DLIBDIR=\\\"${mupen64plus}/lib/\\\""
|
||||
export LDFLAGS="-lwx_gtk2u_adv-2.9"
|
||||
|
||||
wafConfigureFlagsArray+=("--mupenapi=$APIDIR" "--wxconfig=`type -P wx-config`")
|
||||
'';
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-fpermissive";
|
||||
|
||||
meta = {
|
||||
description = "GUI for the Mupen64Plus 2.0 emulator";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
homepage = "https://bitbucket.org/auria/wxmupen64plus/wiki/Home";
|
||||
};
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -796,7 +796,7 @@ self: super: {
|
|||
libiconv
|
||||
];
|
||||
|
||||
cargoSha256 = "sha256-4VXXQjGmGGQXgfzSOvFnQS+iQjidj0FjaNKZ3VzBqw0=";
|
||||
cargoSha256 = "sha256-y4yQ8Zv9bpfOyQrBX/TAuVYHhDsXdj0rh8nHJonxgcU=";
|
||||
};
|
||||
in
|
||||
''
|
||||
|
|
|
@ -203,7 +203,6 @@ github/copilot.vim
|
|||
gleam-lang/gleam.vim
|
||||
glepnir/dashboard-nvim
|
||||
glepnir/galaxyline.nvim
|
||||
glepnir/lspsaga.nvim
|
||||
glepnir/oceanic-material
|
||||
glepnir/zephyr-nvim
|
||||
glts/vim-textobj-comment
|
||||
|
@ -779,6 +778,7 @@ tamago324/compe-zsh
|
|||
tamago324/lir.nvim
|
||||
tami5/compe-conjure
|
||||
tami5/lispdocs.nvim
|
||||
tami5/lspsaga.nvim
|
||||
tami5/sqlite.lua
|
||||
tbastos/vim-lua
|
||||
tbodt/deoplete-tabnine
|
||||
|
|
|
@ -66,6 +66,8 @@ stdenv.mkDerivation rec {
|
|||
./busybox-in-store.patch
|
||||
] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch;
|
||||
|
||||
separateDebugInfo = true;
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
configurePhase = ''
|
||||
|
@ -120,6 +122,8 @@ stdenv.mkDerivation rec {
|
|||
makeFlagsArray+=("CC=${stdenv.cc.targetPrefix}cc -isystem ${musl.dev}/include -B${musl}/lib -L${musl}/lib")
|
||||
'';
|
||||
|
||||
makeFlags = [ "SKIP_STRIP=y" ];
|
||||
|
||||
postInstall = ''
|
||||
sed -e '
|
||||
1 a busybox() { '$out'/bin/busybox "$@"; }\
|
||||
|
|
|
@ -1,17 +1,32 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, numactl, ncurses, check }:
|
||||
{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, numactl, ncurses, check }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "numatop";
|
||||
version = "2.1";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/intel/${pname}/releases/download/v${version}/${pname}-v${version}.tar.xz";
|
||||
sha256 = "1s7psq1xyswj0lpx10zg5lnppav2xy9safkfx3rssrs9c2fp5d76";
|
||||
version = "2.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "numatop";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-GJvTwqgx34ZW10eIJj/xiKe3ZkAfs7GlJImz8jrnjfI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [ numactl ncurses ];
|
||||
checkInputs = [ check ];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/intel/numatop/pull/54.patch";
|
||||
sha256 = "sha256-TbMLv7TT9T8wE4uJ1a/AroyPPwrwL0eX5IBLsh9GTTM=";
|
||||
name = "fix-string-operations.patch";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/intel/numatop/pull/64.patch";
|
||||
sha256 = "sha256-IevbSFJRTS5iQ5apHOVXzF67f3LJaW6j7DySFmVuyiM=";
|
||||
name = "fix-format-strings-mvwprintw.patch";
|
||||
})
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -20,8 +35,8 @@ stdenv.mkDerivation rec {
|
|||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
platforms = [
|
||||
{ kernel.name = "linux"; cpu.family = "x86"; }
|
||||
{ kernel.name = "linux"; cpu.family = "power"; }
|
||||
"i686-linux" "x86_64-linux"
|
||||
"powerpc64-linux" "powerpc64le-linux"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,12 +8,12 @@ let
|
|||
_kernel = kernel;
|
||||
pythonEnv = python3.withPackages (ps: with ps; [ six ]);
|
||||
in stdenv.mkDerivation rec {
|
||||
version = "2.15.1";
|
||||
version = "2.16.2";
|
||||
pname = "openvswitch";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.openvswitch.org/releases/${pname}-${version}.tar.gz";
|
||||
sha256 = "0vgijwycf3wvzv9v811jrfr5rlwmihlxwpf16spl6k9n6zaswysw";
|
||||
sha256 = "sha256-A6xMMpmzjlbAtNTCejKclYsAOgjztUigo8qLmU8tSTQ=";
|
||||
};
|
||||
|
||||
kernel = optional (_kernel != null) _kernel.dev;
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gitlab-pages";
|
||||
version = "1.48.0";
|
||||
version = "1.49.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "gitlab-org";
|
||||
repo = "gitlab-pages";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-oSimHF4qiI2zcMSx51qxs88AcrrewHIbhaRW8s4Ut7Q=";
|
||||
sha256 = "sha256-9orJEt0w0ORHKEOpp40Aubj/pfnNO/A3oHEgWIdk+vM=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-dzYO1yAQSVJmDJvjB5XPRBiYCk+ko1n928CTtUXbHBc=";
|
||||
vendorSha256 = "sha256-/dmEsoeB3UDOBZ/9rbnywRtpXVKaJKGF6xPeWTA4PPE=";
|
||||
subPackages = [ "." ];
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "atheme";
|
||||
version = "7.2.11";
|
||||
version = "7.2.12";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/atheme/atheme.git";
|
||||
rev = "v${version}";
|
||||
sha256 = "15fs48cgzxblh2g4abl5v647ndfx9hg8cih2x67v3y7s9wz68wk2";
|
||||
sha256 = "sha256-KAC1ZPNo4TqfVryKOYYef8cRWRgFmyEdvl1bgvpGNiM=";
|
||||
leaveDotGit = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "klipper";
|
||||
version = "unstable-2021-12-24";
|
||||
version = "unstable-2022-01-09";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "KevinOConnor";
|
||||
repo = "klipper";
|
||||
rev = "247cd753e283e70a9949e76d0ba669d99c0eb144";
|
||||
sha256 = "sha256-65wxhE/XqNK6ly+fxZFLjtImvpJlgU54RStUve40CJA=";
|
||||
rev = "6e6ad7b5201d3452aa605f4ae852c51239c2c7d8";
|
||||
sha256 = "sha256-cflcGweEjB0xj2LhYJzyvqFSQen2vhYXlL7lz/HoGaM=";
|
||||
};
|
||||
|
||||
sourceRoot = "source/klippy";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "radicale";
|
||||
version = "3.1.0";
|
||||
version = "3.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Kozea";
|
||||
repo = "Radicale";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-LtPv+3FQMGC2YP2+1cSPZVUIzrUhteJTl58+JdvGcQg=";
|
||||
hash = "sha256-a1oapCktJPvNO+MTsB9COtxSFB/ZIZvJiuqX+s+lncY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -36,6 +36,6 @@ python3.pkgs.buildPythonApplication rec {
|
|||
homepage = "https://radicale.org/v3.html";
|
||||
description = "CalDAV and CardDAV server";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ dotlambda ];
|
||||
maintainers = with maintainers; [ dotlambda erictapen ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "serviio";
|
||||
version = "2.1";
|
||||
version = "2.2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.serviio.org/releases/${pname}-${version}-linux.tar.gz";
|
||||
sha256 = "0mxpdyhjf4w83q8ssmvpxm95hw4x7lfkh48vvdablccfndh82x2i";
|
||||
sha256 = "sha256-uRRWKMv4f2b1yIE9OnXDIZAmcoqw/8F0z1LOesQBsyQ=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "abcMIDI";
|
||||
version = "2022.01.13";
|
||||
version = "2022.01.28";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
|
||||
hash = "sha256-jXXUdPAmU6JcnqWBnzc9tfjEyLSdYxZZJh4w4iSCD1w=";
|
||||
hash = "sha256-+g5oKUfm6vRuRQfOx0QDueYMabgScL8Mfw5GJcXQztg=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "cloud-sql-proxy";
|
||||
version = "1.27.1";
|
||||
version = "1.28.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GoogleCloudPlatform";
|
||||
repo = "cloudsql-proxy";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-xVPs7D639KY2ryDZpivineH4yZSNXi78FWk2SFKX1sk=";
|
||||
sha256 = "sha256-XA74rZ477Mwf8u0KLkFngfwiJexS10vh++ST6VtkcVg=";
|
||||
};
|
||||
|
||||
subPackages = [ "cmd/cloud_sql_proxy" ];
|
||||
|
||||
vendorSha256 = "sha256-913GJ/rPvDavQQMqDDTe4gBXziPPeQRPpUUG3DAz96g=";
|
||||
vendorSha256 = "sha256-ZXWhADfzvHcEW3IZlPyau5nHEXBJRH8aTvb3zCKl/LE=";
|
||||
|
||||
checkFlags = [ "-short" ];
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "boundary";
|
||||
version = "0.7.1";
|
||||
version = "0.7.3";
|
||||
|
||||
src =
|
||||
let
|
||||
|
@ -14,9 +14,9 @@ stdenv.mkDerivation rec {
|
|||
x86_64-darwin = "darwin_amd64";
|
||||
};
|
||||
sha256 = selectSystem {
|
||||
x86_64-linux = "sha256-5m5ckeX3gVY82q9aQWusnq3o/+UBPJSPDdISL86OfV8=";
|
||||
aarch64-linux = "sha256-+dnQh89kg3JcDL8sucMceCMRFyUjoAIYuZtDM8AUMYw=";
|
||||
x86_64-darwin = "sha256-ZoWW8y048+5Ru3s7lUxLTMxuITFBC9AgwqafyHPDc54=";
|
||||
x86_64-linux = "sha256-9WEvGU4VfJ1781DlvdJhpdzY4djoSRWu6ZzfOpBvKJQ=";
|
||||
aarch64-linux = "sha256-QLjewB1FeYHVehM1U81GzyewWns40IlVEFWgzWP+2Vw=";
|
||||
x86_64-darwin = "sha256-YxPkZnU8EBvRWBMsB0jifS63tJ7LQibgtwTbqosC/fg=";
|
||||
};
|
||||
in
|
||||
fetchzip {
|
||||
|
|
|
@ -4,7 +4,7 @@ with lib;
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "flannel";
|
||||
version = "0.15.1";
|
||||
version = "0.16.1";
|
||||
rev = "v${version}";
|
||||
|
||||
vendorSha256 = null;
|
||||
|
@ -13,7 +13,7 @@ buildGoModule rec {
|
|||
inherit rev;
|
||||
owner = "flannel-io";
|
||||
repo = "flannel";
|
||||
sha256 = "1p4rz4kdiif8i78zgxhw6dd0c1bq159f6l1idvig5apph7zi2bwm";
|
||||
sha256 = "sha256-5NrULpbf3PStzoywLyrfM5qup43idzeHCMRSuNLXR3g=";
|
||||
};
|
||||
|
||||
ldflags = [ "-X github.com/flannel-io/flannel/version.Version=${rev}" ];
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "i2p";
|
||||
version = "1.5.0";
|
||||
version = "1.6.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.i2p2.de/releases/${version}/i2psource_${version}.tar.bz2";
|
||||
sha256 = "sha256-JuX02VsaB2aHD5ezDlfJqOmGkCecO/CRmOMO/6vsxFA=";
|
||||
sha256 = "sha256-cZYGxMtRDeT+dPJLv6U5EacFMYIfwe55op49luqhZzM=";
|
||||
};
|
||||
|
||||
buildInputs = [ jdk ant gettext which ];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "spire";
|
||||
version = "1.1.2";
|
||||
version = "1.2.0";
|
||||
|
||||
outputs = [ "out" "agent" "server" ];
|
||||
|
||||
|
@ -10,10 +10,10 @@ buildGoModule rec {
|
|||
owner = "spiffe";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-MX2kbdLj72S2WBceUW/3ps34Bcsf/VArK8RN4r13wQY=";
|
||||
sha256 = "01ph9jzh18bnidrsbnnxm3gxh0cgfllnjvf7a5haqz51lm6a9pny";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-ZRcXMNKhNY3W5fV9q/V7xsnODoG6KWHrzpWte9hx/Ms=";
|
||||
vendorSha256 = "17d845lwlbk19lsc937c22b1l0ikimhlagknm2i7mn8s8xrs57q8";
|
||||
|
||||
subPackages = [ "cmd/spire-agent" "cmd/spire-server" ];
|
||||
|
||||
|
|
|
@ -1098,6 +1098,7 @@ mapAliases ({
|
|||
winswitch = throw "winswitch has been removed from nixpkgs."; # added 2019-12-10
|
||||
wireshark-gtk = throw "wireshark-gtk is not supported anymore. Use wireshark-qt or wireshark-cli instead."; # added 2019-11-18
|
||||
wireguard = wireguard-tools; # added 2018-05-19
|
||||
wxmupen64plus = throw "wxmupen64plus was removed because the upstream disappeared."; # 2022-01-31
|
||||
morituri = whipper; # added 2018-09-13
|
||||
xbmc-retroarch-advanced-launchers = kodi-retroarch-advanced-launchers; # added 2021-11-19
|
||||
xp-pen-g430 = pentablet-driver; # added 2020-05-03
|
||||
|
|
|
@ -7901,6 +7901,10 @@ with pkgs;
|
|||
|
||||
mole = callPackage ../tools/networking/mole { };
|
||||
|
||||
morgen = callPackage ../applications/office/morgen {
|
||||
electron = electron_15;
|
||||
};
|
||||
|
||||
mosh = callPackage ../tools/networking/mosh { };
|
||||
|
||||
mpage = callPackage ../tools/text/mpage { };
|
||||
|
@ -27477,6 +27481,8 @@ with pkgs;
|
|||
|
||||
mozjpeg = callPackage ../applications/graphics/mozjpeg { };
|
||||
|
||||
edgetx = libsForQt5.callPackage ../applications/misc/edgetx { };
|
||||
|
||||
easytag = callPackage ../applications/audio/easytag { };
|
||||
|
||||
mp3gain = callPackage ../applications/audio/mp3gain { };
|
||||
|
@ -32300,6 +32306,8 @@ with pkgs;
|
|||
|
||||
sherpa = callPackage ../applications/science/physics/sherpa {};
|
||||
|
||||
shtns = callPackage ../applications/science/physics/shtns { };
|
||||
|
||||
xfitter = callPackage ../applications/science/physics/xfitter {};
|
||||
|
||||
xflr5 = libsForQt5.callPackage ../applications/science/physics/xflr5 { };
|
||||
|
@ -34116,8 +34124,6 @@ with pkgs;
|
|||
|
||||
wraith = callPackage ../applications/networking/irc/wraith { };
|
||||
|
||||
wxmupen64plus = callPackage ../misc/emulators/wxmupen64plus { };
|
||||
|
||||
wxsqlite3 = callPackage ../development/libraries/wxsqlite3 {
|
||||
wxGTK = wxGTK30;
|
||||
inherit (darwin.apple_sdk.frameworks) Cocoa;
|
||||
|
|
|
@ -12,10 +12,14 @@ let
|
|||
"ghcjs810"
|
||||
"integer-simple"
|
||||
"native-bignum"
|
||||
"ghc902"
|
||||
"ghc921"
|
||||
"ghcHEAD"
|
||||
];
|
||||
|
||||
nativeBignumIncludes = [
|
||||
"ghc902"
|
||||
"ghc921"
|
||||
"ghcHEAD"
|
||||
];
|
||||
|
||||
|
|
|
@ -729,11 +729,20 @@ let
|
|||
|
||||
Appcpanminus = buildPerlPackage {
|
||||
pname = "App-cpanminus";
|
||||
version = "1.7044";
|
||||
version = "1.7045";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz";
|
||||
sha256 = "9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3";
|
||||
url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7045.tar.gz";
|
||||
sha256 = "1779w07zxlgfk35s24ksr7k9azd5yl8sbb48y1aaph7y4gf4lkmc";
|
||||
};
|
||||
# Use TLS endpoints for downloads and metadata by default
|
||||
preConfigure = ''
|
||||
substituteInPlace bin/cpanm \
|
||||
--replace http://www.cpan.org https://www.cpan.org \
|
||||
--replace http://backpan.perl.org https://backpan.perl.org \
|
||||
--replace http://fastapi.metacpan.org https://fastapi.metacpan.org \
|
||||
--replace http://cpanmetadb.plackperl.org https://cpanmetadb.plackperl.org
|
||||
'';
|
||||
propagatedBuildInputs = [ IOSocketSSL ];
|
||||
meta = {
|
||||
homepage = "https://github.com/miyagawa/cpanminus";
|
||||
description = "Get, unpack, build and install modules from CPAN";
|
||||
|
|
|
@ -398,8 +398,8 @@ let
|
|||
jobs.pkgsMusl.haskell.compiler.ghc921
|
||||
jobs.pkgsMusl.haskell.compiler.ghcHEAD
|
||||
jobs.pkgsMusl.haskell.compiler.integer-simple.ghc8107
|
||||
jobs.pkgsMusl.haskell.compiler.integer-simple.ghc902
|
||||
jobs.pkgsMusl.haskell.compiler.integer-simple.ghc921
|
||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc902
|
||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc921
|
||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghcHEAD
|
||||
];
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue