Merge remote-tracking branch 'upstream/master' into staging
This commit is contained in:
commit
84497cabd1
@ -56,6 +56,9 @@ let
|
|||||||
# back-compat aliases
|
# back-compat aliases
|
||||||
platforms = systems.doubles;
|
platforms = systems.doubles;
|
||||||
|
|
||||||
|
# linux kernel configuration
|
||||||
|
kernel = callLibs ./kernel.nix;
|
||||||
|
|
||||||
inherit (builtins) add addErrorContext attrNames concatLists
|
inherit (builtins) add addErrorContext attrNames concatLists
|
||||||
deepSeq elem elemAt filter genericClosure genList getAttr
|
deepSeq elem elemAt filter genericClosure genList getAttr
|
||||||
hasAttr head isAttrs isBool isInt isList isString length
|
hasAttr head isAttrs isBool isInt isList isString length
|
||||||
|
@ -1,12 +1,7 @@
|
|||||||
{ lib, version }:
|
{ lib }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
{
|
{
|
||||||
# Common patterns/legacy
|
|
||||||
whenAtLeast = ver: mkIf (versionAtLeast version ver);
|
|
||||||
whenOlder = ver: mkIf (versionOlder version ver);
|
|
||||||
# range is (inclusive, exclusive)
|
|
||||||
whenBetween = verLow: verHigh: mkIf (versionAtLeast version verLow && versionOlder version verHigh);
|
|
||||||
|
|
||||||
|
|
||||||
# Keeping these around in case we decide to change this horrible implementation :)
|
# Keeping these around in case we decide to change this horrible implementation :)
|
||||||
@ -18,4 +13,14 @@ with lib;
|
|||||||
module = { tristate = "m"; };
|
module = { tristate = "m"; };
|
||||||
freeform = x: { freeform = x; };
|
freeform = x: { freeform = x; };
|
||||||
|
|
||||||
|
/*
|
||||||
|
Common patterns/legacy used in common-config/hardened-config.nix
|
||||||
|
*/
|
||||||
|
whenHelpers = version: {
|
||||||
|
whenAtLeast = ver: mkIf (versionAtLeast version ver);
|
||||||
|
whenOlder = ver: mkIf (versionOlder version ver);
|
||||||
|
# range is (inclusive, exclusive)
|
||||||
|
whenBetween = verLow: verHigh: mkIf (versionAtLeast version verLow && versionOlder version verHigh);
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1958,7 +1958,7 @@
|
|||||||
drewrisinger = {
|
drewrisinger = {
|
||||||
email = "drisinger+nixpkgs@gmail.com";
|
email = "drisinger+nixpkgs@gmail.com";
|
||||||
github = "drewrisinger";
|
github = "drewrisinger";
|
||||||
gitHubId = 10198051;
|
githubId = 10198051;
|
||||||
name = "Drew Risinger";
|
name = "Drew Risinger";
|
||||||
};
|
};
|
||||||
dsferruzza = {
|
dsferruzza = {
|
||||||
@ -3099,7 +3099,7 @@
|
|||||||
illiusdope = {
|
illiusdope = {
|
||||||
email = "mat@marini.ca";
|
email = "mat@marini.ca";
|
||||||
github = "illiusdope";
|
github = "illiusdope";
|
||||||
gitHubId = 61913481;
|
githubId = 61913481;
|
||||||
name = "Mat Marini";
|
name = "Mat Marini";
|
||||||
};
|
};
|
||||||
ilya-fedin = {
|
ilya-fedin = {
|
||||||
@ -4544,6 +4544,12 @@
|
|||||||
githubId = 1711539;
|
githubId = 1711539;
|
||||||
name = "matklad";
|
name = "matklad";
|
||||||
};
|
};
|
||||||
|
matt-snider = {
|
||||||
|
email = "matt.snider@protonmail.com";
|
||||||
|
github = "matt-snider";
|
||||||
|
githubId = 11810057;
|
||||||
|
name = "Matt Snider";
|
||||||
|
};
|
||||||
matthewbauer = {
|
matthewbauer = {
|
||||||
email = "mjbauer95@gmail.com";
|
email = "mjbauer95@gmail.com";
|
||||||
github = "matthewbauer";
|
github = "matthewbauer";
|
||||||
@ -4884,7 +4890,7 @@
|
|||||||
mmilata = {
|
mmilata = {
|
||||||
email = "martin@martinmilata.cz";
|
email = "martin@martinmilata.cz";
|
||||||
github = "mmilata";
|
github = "mmilata";
|
||||||
gitHubId = 85857;
|
githubId = 85857;
|
||||||
name = "Martin Milata";
|
name = "Martin Milata";
|
||||||
};
|
};
|
||||||
mmlb = {
|
mmlb = {
|
||||||
@ -7253,6 +7259,12 @@
|
|||||||
githubId = 844343;
|
githubId = 844343;
|
||||||
name = "Thiago K. Okada";
|
name = "Thiago K. Okada";
|
||||||
};
|
};
|
||||||
|
thmzlt = {
|
||||||
|
email = "git@thomazleite.com";
|
||||||
|
github = "thmzlt";
|
||||||
|
githubId = 7709;
|
||||||
|
name = "Thomaz Leite";
|
||||||
|
};
|
||||||
ThomasMader = {
|
ThomasMader = {
|
||||||
email = "thomas.mader@gmail.com";
|
email = "thomas.mader@gmail.com";
|
||||||
github = "ThomasMader";
|
github = "ThomasMader";
|
||||||
|
@ -41,6 +41,12 @@ let
|
|||||||
# default to the argument. That way this new default could propagate all
|
# default to the argument. That way this new default could propagate all
|
||||||
# they way through, but has the last priority behind everything else.
|
# they way through, but has the last priority behind everything else.
|
||||||
nixpkgs.system = lib.mkDefault system;
|
nixpkgs.system = lib.mkDefault system;
|
||||||
|
|
||||||
|
# Stash the value of the `system` argument. When using `nesting.children`
|
||||||
|
# we want to have the same default value behavior (immediately above)
|
||||||
|
# without any interference from the user's configuration.
|
||||||
|
nixpkgs.initialSystem = system;
|
||||||
|
|
||||||
_module.args.pkgs = lib.mkIf (pkgs_ != null) (lib.mkForce pkgs_);
|
_module.args.pkgs = lib.mkIf (pkgs_ != null) (lib.mkForce pkgs_);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -175,13 +175,13 @@ in rec {
|
|||||||
|
|
||||||
nodeNames = builtins.attrNames nodes;
|
nodeNames = builtins.attrNames nodes;
|
||||||
invalidNodeNames = lib.filter
|
invalidNodeNames = lib.filter
|
||||||
(node: builtins.match "^[A-z_][A-z0-9_]+$" node == null) nodeNames;
|
(node: builtins.match "^[A-z_]([A-z0-9_]+)?$" node == null) nodeNames;
|
||||||
|
|
||||||
in
|
in
|
||||||
if lib.length invalidNodeNames > 0 then
|
if lib.length invalidNodeNames > 0 then
|
||||||
throw ''
|
throw ''
|
||||||
Cannot create machines out of (${lib.concatStringsSep ", " invalidNodeNames})!
|
Cannot create machines out of (${lib.concatStringsSep ", " invalidNodeNames})!
|
||||||
All machines are referenced as perl variables in the testing framework which will break the
|
All machines are referenced as python variables in the testing framework which will break the
|
||||||
script when special characters are used.
|
script when special characters are used.
|
||||||
|
|
||||||
Please stick to alphanumeric chars and underscores as separation.
|
Please stick to alphanumeric chars and underscores as separation.
|
||||||
|
@ -35,12 +35,22 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.hostFiles = lib.mkOption {
|
||||||
|
type = types.listOf types.path;
|
||||||
|
defaultText = lib.literalExample "Hosts from `networking.hosts` and `networking.extraHosts`";
|
||||||
|
example = lib.literalExample ''[ "''${pkgs.my-blocklist-package}/share/my-blocklist/hosts" ]'';
|
||||||
|
description = ''
|
||||||
|
Files that should be concatenated together to form <filename>/etc/hosts</filename>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
networking.extraHosts = lib.mkOption {
|
networking.extraHosts = lib.mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
example = "192.168.0.1 lanlocalhost";
|
example = "192.168.0.1 lanlocalhost";
|
||||||
description = ''
|
description = ''
|
||||||
Additional verbatim entries to be appended to <filename>/etc/hosts</filename>.
|
Additional verbatim entries to be appended to <filename>/etc/hosts</filename>.
|
||||||
|
For adding hosts from derivation results, use <option>networking.hostFiles</option> instead.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -159,6 +169,15 @@ in
|
|||||||
"::1" = [ "localhost" ];
|
"::1" = [ "localhost" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.hostFiles = let
|
||||||
|
stringHosts =
|
||||||
|
let
|
||||||
|
oneToString = set: ip: ip + " " + concatStringsSep " " set.${ip} + "\n";
|
||||||
|
allToString = set: concatMapStrings (oneToString set) (attrNames set);
|
||||||
|
in pkgs.writeText "string-hosts" (allToString (filterAttrs (_: v: v != []) cfg.hosts));
|
||||||
|
extraHosts = pkgs.writeText "extra-hosts" cfg.extraHosts;
|
||||||
|
in mkBefore [ stringHosts extraHosts ];
|
||||||
|
|
||||||
environment.etc =
|
environment.etc =
|
||||||
{ # /etc/services: TCP/UDP port assignments.
|
{ # /etc/services: TCP/UDP port assignments.
|
||||||
services.source = pkgs.iana-etc + "/etc/services";
|
services.source = pkgs.iana-etc + "/etc/services";
|
||||||
@ -167,12 +186,8 @@ in
|
|||||||
protocols.source = pkgs.iana-etc + "/etc/protocols";
|
protocols.source = pkgs.iana-etc + "/etc/protocols";
|
||||||
|
|
||||||
# /etc/hosts: Hostname-to-IP mappings.
|
# /etc/hosts: Hostname-to-IP mappings.
|
||||||
hosts.text = let
|
hosts.source = pkgs.runCommandNoCC "hosts" {} ''
|
||||||
oneToString = set: ip: ip + " " + concatStringsSep " " set.${ip};
|
cat ${escapeShellArgs cfg.hostFiles} > $out
|
||||||
allToString = set: concatMapStringsSep "\n" (oneToString set) (attrNames set);
|
|
||||||
in ''
|
|
||||||
${allToString (filterAttrs (_: v: v != []) cfg.hosts)}
|
|
||||||
${cfg.extraHosts}
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# /etc/host.conf: resolver configuration file
|
# /etc/host.conf: resolver configuration file
|
||||||
|
@ -216,6 +216,14 @@ in
|
|||||||
Ignored when <code>nixpkgs.pkgs</code> is set.
|
Ignored when <code>nixpkgs.pkgs</code> is set.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
initialSystem = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
internal = true;
|
||||||
|
description = ''
|
||||||
|
Preserved value of <literal>system</literal> passed to <literal>eval-config.nix</literal>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
@ -406,6 +406,7 @@
|
|||||||
./services/mail/sympa.nix
|
./services/mail/sympa.nix
|
||||||
./services/mail/nullmailer.nix
|
./services/mail/nullmailer.nix
|
||||||
./services/misc/airsonic.nix
|
./services/misc/airsonic.nix
|
||||||
|
./services/misc/ankisyncd.nix
|
||||||
./services/misc/apache-kafka.nix
|
./services/misc/apache-kafka.nix
|
||||||
./services/misc/autofs.nix
|
./services/misc/autofs.nix
|
||||||
./services/misc/autorandr.nix
|
./services/misc/autorandr.nix
|
||||||
|
@ -47,7 +47,7 @@ in {
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
security.wrappers.firejail.source = "${lib.getBin pkgs.firejail}/bin/firejail";
|
security.wrappers.firejail.source = "${lib.getBin pkgs.firejail}/bin/firejail";
|
||||||
|
|
||||||
environment.systemPackages = [ wrappedBins ];
|
environment.systemPackages = [ pkgs.firejail ] ++ [ wrappedBins ];
|
||||||
};
|
};
|
||||||
|
|
||||||
meta.maintainers = with maintainers; [ peterhoeg ];
|
meta.maintainers = with maintainers; [ peterhoeg ];
|
||||||
|
@ -14,18 +14,34 @@ let
|
|||||||
base_dir = ${baseDir}
|
base_dir = ${baseDir}
|
||||||
protocols = ${concatStringsSep " " cfg.protocols}
|
protocols = ${concatStringsSep " " cfg.protocols}
|
||||||
sendmail_path = /run/wrappers/bin/sendmail
|
sendmail_path = /run/wrappers/bin/sendmail
|
||||||
|
# defining mail_plugins must be done before the first protocol {} filter because of https://doc.dovecot.org/configuration_manual/config_file/config_file_syntax/#variable-expansion
|
||||||
|
mail_plugins = $mail_plugins ${concatStringsSep " " cfg.mailPlugins.globally.enable}
|
||||||
''
|
''
|
||||||
|
|
||||||
(if cfg.sslServerCert == null then ''
|
(
|
||||||
ssl = no
|
concatStringsSep "\n" (
|
||||||
disable_plaintext_auth = no
|
mapAttrsToList (
|
||||||
'' else ''
|
protocol: plugins: ''
|
||||||
ssl_cert = <${cfg.sslServerCert}
|
protocol ${protocol} {
|
||||||
ssl_key = <${cfg.sslServerKey}
|
mail_plugins = $mail_plugins ${concatStringsSep " " plugins.enable}
|
||||||
${optionalString (cfg.sslCACert != null) ("ssl_ca = <" + cfg.sslCACert)}
|
}
|
||||||
ssl_dh = <${config.security.dhparams.params.dovecot2.path}
|
''
|
||||||
disable_plaintext_auth = yes
|
) cfg.mailPlugins.perProtocol
|
||||||
'')
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(
|
||||||
|
if cfg.sslServerCert == null then ''
|
||||||
|
ssl = no
|
||||||
|
disable_plaintext_auth = no
|
||||||
|
'' else ''
|
||||||
|
ssl_cert = <${cfg.sslServerCert}
|
||||||
|
ssl_key = <${cfg.sslServerKey}
|
||||||
|
${optionalString (cfg.sslCACert != null) ("ssl_ca = <" + cfg.sslCACert)}
|
||||||
|
ssl_dh = <${config.security.dhparams.params.dovecot2.path}
|
||||||
|
disable_plaintext_auth = yes
|
||||||
|
''
|
||||||
|
)
|
||||||
|
|
||||||
''
|
''
|
||||||
default_internal_user = ${cfg.user}
|
default_internal_user = ${cfg.user}
|
||||||
@ -45,55 +61,58 @@ let
|
|||||||
}
|
}
|
||||||
''
|
''
|
||||||
|
|
||||||
(optionalString cfg.enablePAM ''
|
(
|
||||||
userdb {
|
optionalString cfg.enablePAM ''
|
||||||
driver = passwd
|
userdb {
|
||||||
}
|
driver = passwd
|
||||||
|
|
||||||
passdb {
|
|
||||||
driver = pam
|
|
||||||
args = ${optionalString cfg.showPAMFailure "failure_show_msg=yes"} dovecot2
|
|
||||||
}
|
|
||||||
'')
|
|
||||||
|
|
||||||
(optionalString (cfg.sieveScripts != {}) ''
|
|
||||||
plugin {
|
|
||||||
${concatStringsSep "\n" (mapAttrsToList (to: from: "sieve_${to} = ${stateDir}/sieve/${to}") cfg.sieveScripts)}
|
|
||||||
}
|
|
||||||
'')
|
|
||||||
|
|
||||||
(optionalString (cfg.mailboxes != []) ''
|
|
||||||
protocol imap {
|
|
||||||
namespace inbox {
|
|
||||||
inbox=yes
|
|
||||||
${concatStringsSep "\n" (map mailboxConfig cfg.mailboxes)}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
'')
|
|
||||||
|
|
||||||
(optionalString cfg.enableQuota ''
|
passdb {
|
||||||
mail_plugins = $mail_plugins quota
|
driver = pam
|
||||||
service quota-status {
|
args = ${optionalString cfg.showPAMFailure "failure_show_msg=yes"} dovecot2
|
||||||
executable = ${dovecotPkg}/libexec/dovecot/quota-status -p postfix
|
|
||||||
inet_listener {
|
|
||||||
port = ${cfg.quotaPort}
|
|
||||||
}
|
}
|
||||||
client_limit = 1
|
''
|
||||||
}
|
)
|
||||||
|
|
||||||
protocol imap {
|
(
|
||||||
mail_plugins = $mail_plugins imap_quota
|
optionalString (cfg.sieveScripts != {}) ''
|
||||||
}
|
plugin {
|
||||||
|
${concatStringsSep "\n" (mapAttrsToList (to: from: "sieve_${to} = ${stateDir}/sieve/${to}") cfg.sieveScripts)}
|
||||||
|
}
|
||||||
|
''
|
||||||
|
)
|
||||||
|
|
||||||
plugin {
|
(
|
||||||
quota_rule = *:storage=${cfg.quotaGlobalPerUser}
|
optionalString (cfg.mailboxes != []) ''
|
||||||
quota = maildir:User quota # per virtual mail user quota # BUG/FIXME broken, we couldn't get this working
|
protocol imap {
|
||||||
quota_status_success = DUNNO
|
namespace inbox {
|
||||||
quota_status_nouser = DUNNO
|
inbox=yes
|
||||||
quota_status_overquota = "552 5.2.2 Mailbox is full"
|
${concatStringsSep "\n" (map mailboxConfig cfg.mailboxes)}
|
||||||
quota_grace = 10%%
|
}
|
||||||
}
|
}
|
||||||
'')
|
''
|
||||||
|
)
|
||||||
|
|
||||||
|
(
|
||||||
|
optionalString cfg.enableQuota ''
|
||||||
|
service quota-status {
|
||||||
|
executable = ${dovecotPkg}/libexec/dovecot/quota-status -p postfix
|
||||||
|
inet_listener {
|
||||||
|
port = ${cfg.quotaPort}
|
||||||
|
}
|
||||||
|
client_limit = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
plugin {
|
||||||
|
quota_rule = *:storage=${cfg.quotaGlobalPerUser}
|
||||||
|
quota = maildir:User quota # per virtual mail user quota # BUG/FIXME broken, we couldn't get this working
|
||||||
|
quota_status_success = DUNNO
|
||||||
|
quota_status_nouser = DUNNO
|
||||||
|
quota_status_overquota = "552 5.2.2 Mailbox is full"
|
||||||
|
quota_grace = 10%%
|
||||||
|
}
|
||||||
|
''
|
||||||
|
)
|
||||||
|
|
||||||
cfg.extraConfig
|
cfg.extraConfig
|
||||||
];
|
];
|
||||||
@ -107,7 +126,7 @@ let
|
|||||||
mailbox "${mailbox.name}" {
|
mailbox "${mailbox.name}" {
|
||||||
auto = ${toString mailbox.auto}
|
auto = ${toString mailbox.auto}
|
||||||
'' + optionalString (mailbox.specialUse != null) ''
|
'' + optionalString (mailbox.specialUse != null) ''
|
||||||
special_use = \${toString mailbox.specialUse}
|
special_use = \${toString mailbox.specialUse}
|
||||||
'' + "}";
|
'' + "}";
|
||||||
|
|
||||||
mailboxes = { ... }: {
|
mailboxes = { ... }: {
|
||||||
@ -160,7 +179,7 @@ in
|
|||||||
|
|
||||||
protocols = mkOption {
|
protocols = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [];
|
||||||
description = "Additional listeners to start when Dovecot is enabled.";
|
description = "Additional listeners to start when Dovecot is enabled.";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -183,6 +202,43 @@ in
|
|||||||
description = "Additional entries to put verbatim into Dovecot's config file.";
|
description = "Additional entries to put verbatim into Dovecot's config file.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mailPlugins =
|
||||||
|
let
|
||||||
|
plugins = hint: types.submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [];
|
||||||
|
description = "mail plugins to enable as a list of strings to append to the ${hint} <literal>$mail_plugins</literal> configuration variable";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
mkOption {
|
||||||
|
type = with types; submodule {
|
||||||
|
options = {
|
||||||
|
globally = mkOption {
|
||||||
|
description = "Additional entries to add to the mail_plugins variable for all protocols";
|
||||||
|
type = plugins "top-level";
|
||||||
|
example = { enable = [ "virtual" ]; };
|
||||||
|
default = { enable = []; };
|
||||||
|
};
|
||||||
|
perProtocol = mkOption {
|
||||||
|
description = "Additional entries to add to the mail_plugins variable, per protocol";
|
||||||
|
type = attrsOf (plugins "corresponding per-protocol");
|
||||||
|
default = {};
|
||||||
|
example = { imap = [ "imap_acl" ]; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
description = "Additional entries to add to the mail_plugins variable, globally and per protocol";
|
||||||
|
example = {
|
||||||
|
globally.enable = [ "acl" ];
|
||||||
|
perProtocol.imap.enable = [ "imap_acl" ];
|
||||||
|
};
|
||||||
|
default = { globally.enable = []; perProtocol = {}; };
|
||||||
|
};
|
||||||
|
|
||||||
configFile = mkOption {
|
configFile = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = null;
|
default = null;
|
||||||
@ -305,27 +361,33 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
params.dovecot2 = {};
|
params.dovecot2 = {};
|
||||||
};
|
};
|
||||||
services.dovecot2.protocols =
|
services.dovecot2.protocols =
|
||||||
optional cfg.enableImap "imap"
|
optional cfg.enableImap "imap"
|
||||||
++ optional cfg.enablePop3 "pop3"
|
++ optional cfg.enablePop3 "pop3"
|
||||||
++ optional cfg.enableLmtp "lmtp";
|
++ optional cfg.enableLmtp "lmtp";
|
||||||
|
|
||||||
|
services.dovecot2.mailPlugins = mkIf cfg.enableQuota {
|
||||||
|
globally.enable = [ "quota" ];
|
||||||
|
perProtocol.imap.enable = [ "imap_quota" ];
|
||||||
|
};
|
||||||
|
|
||||||
users.users = {
|
users.users = {
|
||||||
dovenull =
|
dovenull =
|
||||||
{ uid = config.ids.uids.dovenull2;
|
{
|
||||||
|
uid = config.ids.uids.dovenull2;
|
||||||
description = "Dovecot user for untrusted logins";
|
description = "Dovecot user for untrusted logins";
|
||||||
group = "dovenull";
|
group = "dovenull";
|
||||||
};
|
};
|
||||||
} // optionalAttrs (cfg.user == "dovecot2") {
|
} // optionalAttrs (cfg.user == "dovecot2") {
|
||||||
dovecot2 =
|
dovecot2 =
|
||||||
{ uid = config.ids.uids.dovecot2;
|
{
|
||||||
description = "Dovecot user";
|
uid = config.ids.uids.dovecot2;
|
||||||
group = cfg.group;
|
description = "Dovecot user";
|
||||||
};
|
group = cfg.group;
|
||||||
|
};
|
||||||
} // optionalAttrs (cfg.createMailUser && cfg.mailUser != null) {
|
} // optionalAttrs (cfg.createMailUser && cfg.mailUser != null) {
|
||||||
${cfg.mailUser} =
|
${cfg.mailUser} =
|
||||||
{ description = "Virtual Mail User"; } //
|
{ description = "Virtual Mail User"; } // optionalAttrs (cfg.mailGroup != null)
|
||||||
optionalAttrs (cfg.mailGroup != null)
|
|
||||||
{ group = cfg.mailGroup; };
|
{ group = cfg.mailGroup; };
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -334,7 +396,7 @@ in
|
|||||||
} // optionalAttrs (cfg.group == "dovecot2") {
|
} // optionalAttrs (cfg.group == "dovecot2") {
|
||||||
dovecot2.gid = config.ids.gids.dovecot2;
|
dovecot2.gid = config.ids.gids.dovecot2;
|
||||||
} // optionalAttrs (cfg.createMailUser && cfg.mailGroup != null) {
|
} // optionalAttrs (cfg.createMailUser && cfg.mailGroup != null) {
|
||||||
${cfg.mailGroup} = { };
|
${cfg.mailGroup} = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc."dovecot/modules".source = modulesDir;
|
environment.etc."dovecot/modules".source = modulesDir;
|
||||||
@ -363,15 +425,19 @@ in
|
|||||||
rm -rf ${stateDir}/sieve
|
rm -rf ${stateDir}/sieve
|
||||||
'' + optionalString (cfg.sieveScripts != {}) ''
|
'' + optionalString (cfg.sieveScripts != {}) ''
|
||||||
mkdir -p ${stateDir}/sieve
|
mkdir -p ${stateDir}/sieve
|
||||||
${concatStringsSep "\n" (mapAttrsToList (to: from: ''
|
${concatStringsSep "\n" (
|
||||||
if [ -d '${from}' ]; then
|
mapAttrsToList (
|
||||||
mkdir '${stateDir}/sieve/${to}'
|
to: from: ''
|
||||||
cp -p "${from}/"*.sieve '${stateDir}/sieve/${to}'
|
if [ -d '${from}' ]; then
|
||||||
else
|
mkdir '${stateDir}/sieve/${to}'
|
||||||
cp -p '${from}' '${stateDir}/sieve/${to}'
|
cp -p "${from}/"*.sieve '${stateDir}/sieve/${to}'
|
||||||
fi
|
else
|
||||||
${pkgs.dovecot_pigeonhole}/bin/sievec '${stateDir}/sieve/${to}'
|
cp -p '${from}' '${stateDir}/sieve/${to}'
|
||||||
'') cfg.sieveScripts)}
|
fi
|
||||||
|
${pkgs.dovecot_pigeonhole}/bin/sievec '${stateDir}/sieve/${to}'
|
||||||
|
''
|
||||||
|
) cfg.sieveScripts
|
||||||
|
)}
|
||||||
chown -R '${cfg.mailUser}:${cfg.mailGroup}' '${stateDir}/sieve'
|
chown -R '${cfg.mailUser}:${cfg.mailGroup}' '${stateDir}/sieve'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -379,17 +445,21 @@ in
|
|||||||
environment.systemPackages = [ dovecotPkg ];
|
environment.systemPackages = [ dovecotPkg ];
|
||||||
|
|
||||||
assertions = [
|
assertions = [
|
||||||
{ assertion = intersectLists cfg.protocols [ "pop3" "imap" ] != [];
|
{
|
||||||
|
assertion = intersectLists cfg.protocols [ "pop3" "imap" ] != [];
|
||||||
message = "dovecot needs at least one of the IMAP or POP3 listeners enabled";
|
message = "dovecot needs at least one of the IMAP or POP3 listeners enabled";
|
||||||
}
|
}
|
||||||
{ assertion = (cfg.sslServerCert == null) == (cfg.sslServerKey == null)
|
{
|
||||||
&& (cfg.sslCACert != null -> !(cfg.sslServerCert == null || cfg.sslServerKey == null));
|
assertion = (cfg.sslServerCert == null) == (cfg.sslServerKey == null)
|
||||||
|
&& (cfg.sslCACert != null -> !(cfg.sslServerCert == null || cfg.sslServerKey == null));
|
||||||
message = "dovecot needs both sslServerCert and sslServerKey defined for working crypto";
|
message = "dovecot needs both sslServerCert and sslServerKey defined for working crypto";
|
||||||
}
|
}
|
||||||
{ assertion = cfg.showPAMFailure -> cfg.enablePAM;
|
{
|
||||||
|
assertion = cfg.showPAMFailure -> cfg.enablePAM;
|
||||||
message = "dovecot is configured with showPAMFailure while enablePAM is disabled";
|
message = "dovecot is configured with showPAMFailure while enablePAM is disabled";
|
||||||
}
|
}
|
||||||
{ assertion = cfg.sieveScripts != {} -> (cfg.mailUser != null && cfg.mailGroup != null);
|
{
|
||||||
|
assertion = cfg.sieveScripts != {} -> (cfg.mailUser != null && cfg.mailGroup != null);
|
||||||
message = "dovecot requires mailUser and mailGroup to be set when sieveScripts is set";
|
message = "dovecot requires mailUser and mailGroup to be set when sieveScripts is set";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
79
nixos/modules/services/misc/ankisyncd.nix
Normal file
79
nixos/modules/services/misc/ankisyncd.nix
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.ankisyncd;
|
||||||
|
|
||||||
|
name = "ankisyncd";
|
||||||
|
|
||||||
|
stateDir = "/var/lib/${name}";
|
||||||
|
|
||||||
|
authDbPath = "${stateDir}/auth.db";
|
||||||
|
|
||||||
|
sessionDbPath = "${stateDir}/session.db";
|
||||||
|
|
||||||
|
configFile = pkgs.writeText "ankisyncd.conf" (lib.generators.toINI {} {
|
||||||
|
sync_app = {
|
||||||
|
host = cfg.host;
|
||||||
|
port = cfg.port;
|
||||||
|
data_root = stateDir;
|
||||||
|
auth_db_path = authDbPath;
|
||||||
|
session_db_path = sessionDbPath;
|
||||||
|
|
||||||
|
base_url = "/sync/";
|
||||||
|
base_media_url = "/msync/";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.services.ankisyncd = {
|
||||||
|
enable = mkEnableOption "ankisyncd";
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.ankisyncd;
|
||||||
|
defaultText = literalExample "pkgs.ankisyncd";
|
||||||
|
description = "The package to use for the ankisyncd command.";
|
||||||
|
};
|
||||||
|
|
||||||
|
host = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "localhost";
|
||||||
|
description = "ankisyncd host";
|
||||||
|
};
|
||||||
|
|
||||||
|
port = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 27701;
|
||||||
|
description = "ankisyncd port";
|
||||||
|
};
|
||||||
|
|
||||||
|
openFirewall = mkOption {
|
||||||
|
default = false;
|
||||||
|
type = types.bool;
|
||||||
|
description = "Whether to open the firewall for the specified port.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
|
||||||
|
|
||||||
|
environment.etc."ankisyncd/ankisyncd.conf".source = configFile;
|
||||||
|
|
||||||
|
systemd.services.ankisyncd = {
|
||||||
|
description = "ankisyncd - Anki sync server";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
path = [ cfg.package ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
DynamicUser = true;
|
||||||
|
StateDirectory = name;
|
||||||
|
ExecStart = "${cfg.package}/bin/ankisyncd";
|
||||||
|
Restart = "always";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -29,17 +29,13 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Additional /etc/hosts entries for peers with an associated hostname
|
# Additional /etc/hosts entries for peers with an associated hostname
|
||||||
cjdnsExtraHosts = import (pkgs.runCommand "cjdns-hosts" {}
|
cjdnsExtraHosts = pkgs.runCommandNoCC "cjdns-hosts" {} ''
|
||||||
# Generate a builder that produces an output usable as a Nix string value
|
exec >$out
|
||||||
''
|
${concatStringsSep "\n" (mapAttrsToList (k: v:
|
||||||
exec >$out
|
optionalString (v.hostname != "")
|
||||||
echo \'\'
|
"echo $(${pkgs.cjdns}/bin/publictoip6 ${v.publicKey}) ${v.hostname}")
|
||||||
${concatStringsSep "\n" (mapAttrsToList (k: v:
|
(cfg.ETHInterface.connectTo // cfg.UDPInterface.connectTo))}
|
||||||
optionalString (v.hostname != "")
|
'';
|
||||||
"echo $(${pkgs.cjdns}/bin/publictoip6 ${v.publicKey}) ${v.hostname}")
|
|
||||||
(cfg.ETHInterface.connectTo // cfg.UDPInterface.connectTo))}
|
|
||||||
echo \'\'
|
|
||||||
'');
|
|
||||||
|
|
||||||
parseModules = x:
|
parseModules = x:
|
||||||
x // { connectTo = mapAttrs (name: value: { inherit (value) password publicKey; }) x.connectTo; };
|
x // { connectTo = mapAttrs (name: value: { inherit (value) password publicKey; }) x.connectTo; };
|
||||||
@ -144,13 +140,15 @@ in
|
|||||||
connectTo = mkOption {
|
connectTo = mkOption {
|
||||||
type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
|
type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
|
||||||
default = { };
|
default = { };
|
||||||
example = {
|
example = literalExample ''
|
||||||
"192.168.1.1:27313" = {
|
{
|
||||||
hostname = "homer.hype";
|
"192.168.1.1:27313" = {
|
||||||
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
|
hostname = "homer.hype";
|
||||||
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
|
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
|
||||||
};
|
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
'';
|
||||||
description = ''
|
description = ''
|
||||||
Credentials for making UDP tunnels.
|
Credentials for making UDP tunnels.
|
||||||
'';
|
'';
|
||||||
@ -189,13 +187,15 @@ in
|
|||||||
connectTo = mkOption {
|
connectTo = mkOption {
|
||||||
type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
|
type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
|
||||||
default = { };
|
default = { };
|
||||||
example = {
|
example = literalExample ''
|
||||||
"01:02:03:04:05:06" = {
|
{
|
||||||
hostname = "homer.hype";
|
"01:02:03:04:05:06" = {
|
||||||
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
|
hostname = "homer.hype";
|
||||||
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
|
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
|
||||||
};
|
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
'';
|
||||||
description = ''
|
description = ''
|
||||||
Credentials for connecting look similar to UDP credientials
|
Credentials for connecting look similar to UDP credientials
|
||||||
except they begin with the mac address.
|
except they begin with the mac address.
|
||||||
@ -278,7 +278,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.extraHosts = mkIf cfg.addExtraHosts cjdnsExtraHosts;
|
networking.hostFiles = mkIf cfg.addExtraHosts [ cjdnsExtraHosts ];
|
||||||
|
|
||||||
assertions = [
|
assertions = [
|
||||||
{ assertion = ( cfg.ETHInterface.bind != "" || cfg.UDPInterface.bind != "" || cfg.confFile != null );
|
{ assertion = ( cfg.ETHInterface.bind != "" || cfg.UDPInterface.bind != "" || cfg.confFile != null );
|
||||||
|
@ -23,6 +23,8 @@ let
|
|||||||
restrict -6 ::1
|
restrict -6 ::1
|
||||||
|
|
||||||
${toString (map (server: "server " + server + " iburst\n") cfg.servers)}
|
${toString (map (server: "server " + server + " iburst\n") cfg.servers)}
|
||||||
|
|
||||||
|
${cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
ntpFlags = "-c ${configFile} -u ${ntpUser}:nogroup ${toString cfg.extraFlags}";
|
ntpFlags = "-c ${configFile} -u ${ntpUser}:nogroup ${toString cfg.extraFlags}";
|
||||||
@ -81,6 +83,17 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
example = ''
|
||||||
|
fudge 127.127.1.0 stratum 10
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Additional text appended to <filename>ntp.conf</filename>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
extraFlags = mkOption {
|
extraFlags = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
description = "Extra flags passed to the ntpd command.";
|
description = "Extra flags passed to the ntpd command.";
|
||||||
|
@ -15,6 +15,7 @@ let
|
|||||||
map (childConfig:
|
map (childConfig:
|
||||||
(import ../../../lib/eval-config.nix {
|
(import ../../../lib/eval-config.nix {
|
||||||
inherit baseModules;
|
inherit baseModules;
|
||||||
|
system = config.nixpkgs.initialSystem;
|
||||||
modules =
|
modules =
|
||||||
(optionals inheritParent modules)
|
(optionals inheritParent modules)
|
||||||
++ [ ./no-clone.nix ]
|
++ [ ./no-clone.nix ]
|
||||||
|
@ -118,12 +118,17 @@ in
|
|||||||
fs' = utils.escapeSystemdPath fs;
|
fs' = utils.escapeSystemdPath fs;
|
||||||
in nameValuePair "btrfs-scrub-${fs'}" {
|
in nameValuePair "btrfs-scrub-${fs'}" {
|
||||||
description = "btrfs scrub on ${fs}";
|
description = "btrfs scrub on ${fs}";
|
||||||
|
# scrub prevents suspend2ram or proper shutdown
|
||||||
|
conflicts = [ "shutdown.target" "sleep.target" ];
|
||||||
|
before = [ "shutdown.target" "sleep.target" ];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
# simple and not oneshot, otherwise ExecStop is not used
|
||||||
|
Type = "simple";
|
||||||
Nice = 19;
|
Nice = 19;
|
||||||
IOSchedulingClass = "idle";
|
IOSchedulingClass = "idle";
|
||||||
ExecStart = "${pkgs.btrfs-progs}/bin/btrfs scrub start -B ${fs}";
|
ExecStart = "${pkgs.btrfs-progs}/bin/btrfs scrub start -B ${fs}";
|
||||||
|
ExecStop = "${pkgs.btrfs-progs}/bin/btrfs scrub cancel ${fs}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in listToAttrs (map scrubService cfgScrub.fileSystems);
|
in listToAttrs (map scrubService cfgScrub.fileSystems);
|
||||||
|
@ -29,10 +29,10 @@ import ./make-test-python.nix {
|
|||||||
)
|
)
|
||||||
clone.succeed("cowsay hey")
|
clone.succeed("cowsay hey")
|
||||||
clone.succeed("hello")
|
clone.succeed("hello")
|
||||||
|
|
||||||
children.wait_for_unit("default.target")
|
children.wait_for_unit("default.target")
|
||||||
children.succeed("cowsay hey")
|
children.succeed("cowsay hey")
|
||||||
children.fail("hello")
|
children.fail("hello")
|
||||||
|
|
||||||
with subtest("Nested children do not inherit from parent"):
|
with subtest("Nested children do not inherit from parent"):
|
||||||
children.succeed(
|
children.succeed(
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "spotify-tui";
|
pname = "spotify-tui";
|
||||||
version = "0.15.0";
|
version = "0.16.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Rigellute";
|
owner = "Rigellute";
|
||||||
repo = "spotify-tui";
|
repo = "spotify-tui";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "19mnnpsidwr5y6igs478gfp7rq76378f66nzfhj4mraqd2jc4nzj";
|
sha256 = "0fmj25zjg12v0kyanic343lrdhxkh290v88qiz6ac47g8bdy3c83";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "1zhv3sla92z7pjdnf0r4x85n7z9spi70vgy4kw72rdc5v9bmj7q8";
|
cargoSha256 = "1n8aacy0hapjm10hmgqm07rb5c0ngmzr1s116pspsl7cdszza6xi";
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ] ++ stdenv.lib.optionals stdenv.isLinux [ python3 ];
|
nativeBuildInputs = [ pkgconfig ] ++ stdenv.lib.optionals stdenv.isLinux [ python3 ];
|
||||||
buildInputs = [ openssl ]
|
buildInputs = [ openssl ]
|
||||||
|
@ -250,12 +250,12 @@ in
|
|||||||
|
|
||||||
clion = buildClion rec {
|
clion = buildClion rec {
|
||||||
name = "clion-${version}";
|
name = "clion-${version}";
|
||||||
version = "2019.3.3"; /* updated by script */
|
version = "2019.3.4"; /* updated by script */
|
||||||
description = "C/C++ IDE. New. Intelligent. Cross-platform";
|
description = "C/C++ IDE. New. Intelligent. Cross-platform";
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
|
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
|
||||||
sha256 = "1dvnb6mb8xgrgqzqxm2zirwm77w4pci6ibwsdh6wqpnzpqksh4iw"; /* updated by script */
|
sha256 = "0whd379ck79vhz14yh5g6vpl4cvgw4z9ag4mwgizmd8kbcfnvdxd"; /* updated by script */
|
||||||
};
|
};
|
||||||
wmClass = "jetbrains-clion";
|
wmClass = "jetbrains-clion";
|
||||||
update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
|
update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
|
||||||
@ -263,12 +263,12 @@ in
|
|||||||
|
|
||||||
datagrip = buildDataGrip rec {
|
datagrip = buildDataGrip rec {
|
||||||
name = "datagrip-${version}";
|
name = "datagrip-${version}";
|
||||||
version = "2019.3.2"; /* updated by script */
|
version = "2019.3.3"; /* updated by script */
|
||||||
description = "Your Swiss Army Knife for Databases and SQL";
|
description = "Your Swiss Army Knife for Databases and SQL";
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
|
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
|
||||||
sha256 = "1aypzs5q9zgggxbpaxfd8r5ds0ck31lb00csn62npndqxa3bj7z5"; /* updated by script */
|
sha256 = "0zbyiw60gqcqi5bbazmsbs4qzmmxx1q034hs36k1dryf2y02jyih"; /* updated by script */
|
||||||
};
|
};
|
||||||
wmClass = "jetbrains-datagrip";
|
wmClass = "jetbrains-datagrip";
|
||||||
update-channel = "DataGrip RELEASE";
|
update-channel = "DataGrip RELEASE";
|
||||||
@ -276,12 +276,12 @@ in
|
|||||||
|
|
||||||
goland = buildGoland rec {
|
goland = buildGoland rec {
|
||||||
name = "goland-${version}";
|
name = "goland-${version}";
|
||||||
version = "2019.3.2"; /* updated by script */
|
version = "2019.3.3"; /* updated by script */
|
||||||
description = "Up and Coming Go IDE";
|
description = "Up and Coming Go IDE";
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.jetbrains.com/go/${name}.tar.gz";
|
url = "https://download.jetbrains.com/go/${name}.tar.gz";
|
||||||
sha256 = "0namvc8dfm562dgvs4mrv1c6lyi4j8yxw402fkw55l0xqv3ff0a9"; /* updated by script */
|
sha256 = "091ym7vyb0hxzz6a1jfb88x0lj499vjd04bq8swmw14m1akmk3lf"; /* updated by script */
|
||||||
};
|
};
|
||||||
wmClass = "jetbrains-goland";
|
wmClass = "jetbrains-goland";
|
||||||
update-channel = "GoLand RELEASE";
|
update-channel = "GoLand RELEASE";
|
||||||
@ -315,12 +315,12 @@ in
|
|||||||
|
|
||||||
phpstorm = buildPhpStorm rec {
|
phpstorm = buildPhpStorm rec {
|
||||||
name = "phpstorm-${version}";
|
name = "phpstorm-${version}";
|
||||||
version = "2019.3.2"; /* updated by script */
|
version = "2019.3.3"; /* updated by script */
|
||||||
description = "Professional IDE for Web and PHP developers";
|
description = "Professional IDE for Web and PHP developers";
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
|
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
|
||||||
sha256 = "02qnkcri49chbbpx2f338cfs5w2kg1l7zfn6fa7qrla82zpjsqlm"; /* updated by script */
|
sha256 = "03ag1a40l1k8sqlywcs7kjn02c65xm3l9riyimg4hx23yi17w18h"; /* updated by script */
|
||||||
};
|
};
|
||||||
wmClass = "jetbrains-phpstorm";
|
wmClass = "jetbrains-phpstorm";
|
||||||
update-channel = "PhpStorm RELEASE";
|
update-channel = "PhpStorm RELEASE";
|
||||||
@ -354,12 +354,12 @@ in
|
|||||||
|
|
||||||
rider = buildRider rec {
|
rider = buildRider rec {
|
||||||
name = "rider-${version}";
|
name = "rider-${version}";
|
||||||
version = "2019.3.1"; /* updated by script */
|
version = "2019.3.4"; /* updated by script */
|
||||||
description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
|
description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
|
url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
|
||||||
sha256 = "0cs8fc3h6d2m84ppiqjy0f3xklpc5gf0i6c4bzv04y8ngh0cwgl2"; /* updated by script */
|
sha256 = "17axv0v31dpmjcaij5qpqqm071mwhmf1ahy0y0h96limq8cw9872"; /* updated by script */
|
||||||
};
|
};
|
||||||
wmClass = "jetbrains-rider";
|
wmClass = "jetbrains-rider";
|
||||||
update-channel = "Rider RELEASE";
|
update-channel = "Rider RELEASE";
|
||||||
@ -367,12 +367,12 @@ in
|
|||||||
|
|
||||||
ruby-mine = buildRubyMine rec {
|
ruby-mine = buildRubyMine rec {
|
||||||
name = "ruby-mine-${version}";
|
name = "ruby-mine-${version}";
|
||||||
version = "2019.3.2"; /* updated by script */
|
version = "2019.3.3"; /* updated by script */
|
||||||
description = "The Most Intelligent Ruby and Rails IDE";
|
description = "The Most Intelligent Ruby and Rails IDE";
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
|
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
|
||||||
sha256 = "0mwzhvrhvsyb8r7sjcigv9jazim1zyipb3ym4xsd2gyl3ans2vm9"; /* updated by script */
|
sha256 = "0lkzb3rifr7r23vijcz7rqcxjpykx7dkghiq5prk1zz83hzi4b2j"; /* updated by script */
|
||||||
};
|
};
|
||||||
wmClass = "jetbrains-rubymine";
|
wmClass = "jetbrains-rubymine";
|
||||||
update-channel = "RubyMine RELEASE";
|
update-channel = "RubyMine RELEASE";
|
||||||
@ -380,12 +380,12 @@ in
|
|||||||
|
|
||||||
webstorm = buildWebStorm rec {
|
webstorm = buildWebStorm rec {
|
||||||
name = "webstorm-${version}";
|
name = "webstorm-${version}";
|
||||||
version = "2019.3.2"; /* updated by script */
|
version = "2019.3.3"; /* updated by script */
|
||||||
description = "Professional IDE for Web and JavaScript development";
|
description = "Professional IDE for Web and JavaScript development";
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
|
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
|
||||||
sha256 = "0mbfkwjqg2d1mkka0vajx41nv4f07y1w7chk6ii7sylaj7ypzi13"; /* updated by script */
|
sha256 = "1b7hwqpk96g4il5rbxb8cpqsizgc9k5kb8vkvkcc9xh7qqz02i85"; /* updated by script */
|
||||||
};
|
};
|
||||||
wmClass = "jetbrains-webstorm";
|
wmClass = "jetbrains-webstorm";
|
||||||
update-channel = "WebStorm RELEASE";
|
update-channel = "WebStorm RELEASE";
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "texstudio";
|
pname = "texstudio";
|
||||||
version = "2.12.20";
|
version = "2.12.22";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "${pname}-org";
|
owner = "${pname}-org";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0hywx2knqdrslzmm4if476ryf4ma0aw5j8kdp6lyrz2jx7az2gqa";
|
sha256 = "037jvsfln8wav17qj9anxz2a7p51v7ky85wmhdj2hgwp40al651g";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
|
nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
|
||||||
@ -27,6 +27,6 @@ mkDerivation rec {
|
|||||||
homepage = http://texstudio.sourceforge.net;
|
homepage = http://texstudio.sourceforge.net;
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
maintainers = with maintainers; [ cfouche ];
|
maintainers = with maintainers; [ ajs124 cfouche ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ in
|
|||||||
else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
|
else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
|
||||||
++ [ libsecret libXScrnSaver ];
|
++ [ libsecret libXScrnSaver ];
|
||||||
|
|
||||||
runtimeDependencies = [ systemd.lib fontconfig.lib ];
|
runtimeDependencies = lib.optional (stdenv.isLinux) [ systemd.lib fontconfig.lib ];
|
||||||
|
|
||||||
nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
|
nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
|
||||||
|
|
||||||
|
@ -122,7 +122,8 @@ stdenv.mkDerivation rec {
|
|||||||
# --python-expr is used to workaround https://developer.blender.org/T74304
|
# --python-expr is used to workaround https://developer.blender.org/T74304
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
wrapProgram $blenderExecutable \
|
wrapProgram $blenderExecutable \
|
||||||
--add-flags '--python-expr "import sys; sys.path.append(\"${python3Packages.numpy}/${python.sitePackages}\")"'
|
--prefix PYTHONPATH : ${python3Packages.numpy}/${python.sitePackages} \
|
||||||
|
--add-flags '--python-use-system-env'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Set RUNPATH so that libcuda and libnvrtc in /run/opengl-driver(-32)/lib can be
|
# Set RUNPATH so that libcuda and libnvrtc in /run/opengl-driver(-32)/lib can be
|
||||||
|
@ -2,18 +2,18 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "cheat";
|
pname = "cheat";
|
||||||
version = "3.0.3";
|
version = "3.0.7";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "chrisallenlane";
|
owner = "chrisallenlane";
|
||||||
repo = "cheat";
|
repo = "cheat";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "19w1admdcgld9vlc4fsyc5d9bi6rmwhr2x2ji43za2vjlk34hnnx";
|
sha256 = "0i5j85ciimk14kndb81qxny1ksr57sr9xdvjn7x1ibc7h6pikjn5";
|
||||||
};
|
};
|
||||||
|
|
||||||
subPackages = [ "cmd/cheat" ];
|
subPackages = [ "cmd/cheat" ];
|
||||||
|
|
||||||
modSha256 = "189cqnfl403f4lk7g9v68mwk93ciglqli639dk4x9091lvn5gq5q";
|
modSha256 = "1v9hvxygwvqma2j5yz7r95g34xpwb0n29hm39i89vgmvl3hy67s0";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Create and view interactive cheatsheets on the command-line";
|
description = "Create and view interactive cheatsheets on the command-line";
|
||||||
|
@ -68,11 +68,6 @@ stdenv.mkDerivation rec {
|
|||||||
(if i3Support || i3GapsSupport then makeWrapper else null)
|
(if i3Support || i3GapsSupport then makeWrapper else null)
|
||||||
];
|
];
|
||||||
|
|
||||||
postConfigure = ''
|
|
||||||
substituteInPlace generated-sources/settings.hpp \
|
|
||||||
--replace "${stdenv.cc}" "${stdenv.cc.name}"
|
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = if (i3Support || i3GapsSupport) then ''
|
postInstall = if (i3Support || i3GapsSupport) then ''
|
||||||
wrapProgram $out/bin/polybar \
|
wrapProgram $out/bin/polybar \
|
||||||
--prefix PATH : "${if i3Support then i3 else i3-gaps}/bin"
|
--prefix PATH : "${if i3Support then i3 else i3-gaps}/bin"
|
||||||
|
@ -16,10 +16,10 @@ let
|
|||||||
|
|
||||||
pname = "simplenote";
|
pname = "simplenote";
|
||||||
|
|
||||||
version = "1.14.0";
|
version = "1.15.0";
|
||||||
|
|
||||||
sha256 = {
|
sha256 = {
|
||||||
x86_64-linux = "1l61xf1i80fd8ymmnrb3plqn70jsxd8wyg0n6f69bz3k8s5g8cxi";
|
x86_64-linux = "08h3g2rw75k63ssd62c6jrb2dy9sz85y5jpfj5np64dvw70a1811";
|
||||||
}.${system} or throwSystem;
|
}.${system} or throwSystem;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -11,8 +11,18 @@ pythonPackages.buildPythonApplication rec {
|
|||||||
sha256 = "0f14s4qx3q5pr5vn460c34b5mbz2xs62d8ljs3kic8gmdn8x2knm";
|
sha256 = "0f14s4qx3q5pr5vn460c34b5mbz2xs62d8ljs3kic8gmdn8x2knm";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "man" ];
|
||||||
|
|
||||||
propagatedBuildInputs = with pythonPackages; [ urwid beautifulsoup4 lxml ];
|
propagatedBuildInputs = with pythonPackages; [ urwid beautifulsoup4 lxml ];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p $man/share/man/man{1,5}
|
||||||
|
cp wikicurses.1 $man/share/man/man1/
|
||||||
|
cp wikicurses.conf.5 $man/share/man/man5/
|
||||||
|
'';
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A simple curses interface for MediaWiki sites such as Wikipedia";
|
description = "A simple curses interface for MediaWiki sites such as Wikipedia";
|
||||||
homepage = https://github.com/ids1024/wikicurses/;
|
homepage = https://github.com/ids1024/wikicurses/;
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "zola";
|
pname = "zola";
|
||||||
version = "0.10.0";
|
version = "0.10.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "getzola";
|
owner = "getzola";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "112aqv21gy1fbly5v2x3ph32pr82d1mwh0q57yfaaqygz2madypb";
|
sha256 = "07zg4ia983rgvgvmw4xbi347lr4rxlf1xv8rw72cflc74kyia67n";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "0hqa60bx8pxhgad7x6r4zbwddrkcspnnp53bl94zbf3j47p10ggz";
|
cargoSha256 = "13lnl01h8k8xv2ls1kjskfnyjmmk8iyk2mvbk01p2wmhp5m876md";
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
buildInputs = [ openssl ]
|
buildInputs = [ openssl ]
|
||||||
|
@ -45,11 +45,11 @@ let
|
|||||||
|
|
||||||
flash = stdenv.mkDerivation rec {
|
flash = stdenv.mkDerivation rec {
|
||||||
pname = "flashplayer-ppapi";
|
pname = "flashplayer-ppapi";
|
||||||
version = "32.0.0.330";
|
version = "32.0.0.344";
|
||||||
|
|
||||||
src = fetchzip {
|
src = fetchzip {
|
||||||
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
|
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
|
||||||
sha256 = "08gpx0fq0r1sz5smfdgv4fkfwq1hdijv4dw432d6jdz8lq09y1nk";
|
sha256 = "05ijlgsby9zxx0qs6f3vav1z0p6xr1cg6idl4akxvfmsl6hn6hkq";
|
||||||
stripRoot = false;
|
stripRoot = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "flashplayer";
|
pname = "flashplayer";
|
||||||
version = "32.0.0.330";
|
version = "32.0.0.344";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url =
|
url =
|
||||||
@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 =
|
sha256 =
|
||||||
if debug then
|
if debug then
|
||||||
if arch == "x86_64" then
|
if arch == "x86_64" then
|
||||||
"1k7h1p6g1vf96v31j1n8638jdxacap0729n0dnmh6l0h5q518k1b"
|
"1kkwijxlcs1rlqxr1vj51h95fwwrp5m0c9lngqpncgmmhh8v9dyr"
|
||||||
else
|
else
|
||||||
"0gabgllx79s6rhv0zivfj6z79rcsdrzrdm94xdr19c11dsbqxd6b"
|
"0r47s19fw7gsph73rd5jb2zfsjwz7mjawm6c49rir9rsa0zxrsks"
|
||||||
else
|
else
|
||||||
if arch == "x86_64" then
|
if arch == "x86_64" then
|
||||||
"1pf3k1x8c2kbkc9pf9y5n4jilp3g41v8v0q5ng77sbnl92s35zsj"
|
"1ki3i7zw0q48xf01xjfm1mpizc5flk768p9hqxpg881r4h65dh6b"
|
||||||
else
|
else
|
||||||
"1xibm6ffm09c553g100cgb6grnk21dfq8m81yy0jskph157vg962";
|
"1v527i60sljwyvv4l1kg9ml05skjgm3naynlswd35hsz258jnxl4";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ unzip ];
|
nativeBuildInputs = [ unzip ];
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "flashplayer-standalone";
|
pname = "flashplayer-standalone";
|
||||||
version = "32.0.0.330";
|
version = "32.0.0.344";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url =
|
url =
|
||||||
@ -60,9 +60,9 @@ stdenv.mkDerivation {
|
|||||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz";
|
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz";
|
||||||
sha256 =
|
sha256 =
|
||||||
if debug then
|
if debug then
|
||||||
"0wrkg2in4c0bnbifm06m4rdggzs8zbaxwrh6z3mpbf4p3bl6xg84"
|
"1ymsk07xmnanyv86r58ar1l4wgjarlq0fc111ajc76pp8dsxnfx8"
|
||||||
else
|
else
|
||||||
"08qxa3zanlgmn8sn7crz242adx10jqymd4gzf1m0zlczw20ar09c";
|
"0wiwpn4a0jxslw4ahalq74rksn82y0aqa3lrjr9qs7kdcak74vky";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ unzip ];
|
nativeBuildInputs = [ unzip ];
|
||||||
|
@ -2,21 +2,21 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "atlantis";
|
pname = "atlantis";
|
||||||
version = "0.10.1";
|
version = "0.11.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "runatlantis";
|
owner = "runatlantis";
|
||||||
repo = "atlantis";
|
repo = "atlantis";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "08k2dgz6rph68647ah1rdp7hqa5h1ar4gdy7vdjy5kn7gz21gmri";
|
sha256 = "1ylk6n13ln6yaq4nc4n7fm00wfiyqi2x33sca5avzsvd1b387kk6";
|
||||||
};
|
};
|
||||||
|
|
||||||
modSha256 = "1i4s3xcq2qc3zy00wk2l77935ilm6n5k1msilmdnj0061ia4860y";
|
modSha256 = "1bhplk3p780llpj9l0fwcyli74879968d6j582mvjwvf2winbqzq";
|
||||||
|
|
||||||
subPackages = [ "." ];
|
subPackages = [ "." ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/runatlantis/atlantis;
|
homepage = "https://github.com/runatlantis/atlantis";
|
||||||
description = "Terraform Pull Request Automation";
|
description = "Terraform Pull Request Automation";
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "helm";
|
pname = "helm";
|
||||||
version = "3.1.1";
|
version = "3.1.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "helm";
|
owner = "helm";
|
||||||
repo = "helm";
|
repo = "helm";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "16hbwmgq14g28r9s0ipnpiqlppyh57yrcqcspmj05vrf9jsg5vwj";
|
sha256 = "0pg5cwgyfb4isy2fn233kj3bdn0i8qqp90yzix0khs5maalpnrk1";
|
||||||
};
|
};
|
||||||
modSha256 = "0618zzi4x37ahsrazsr82anghhfva8yaryzb3p5d737p3ixbiyv8";
|
modSha256 = "0618zzi4x37ahsrazsr82anghhfva8yaryzb3p5d737p3ixbiyv8";
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
|
|||||||
homepage = https://mesosphere.github.io/marathon;
|
homepage = https://mesosphere.github.io/marathon;
|
||||||
description = "Cluster-wide init and control system for services in cgroups or Docker containers";
|
description = "Cluster-wide init and control system for services in cgroups or Docker containers";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [ kamilchm kevincox pradeepchhetri ];
|
maintainers = with maintainers; [ kamilchm pradeepchhetri ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -256,7 +256,7 @@ in stdenv.mkDerivation rec {
|
|||||||
homepage = "http://mesos.apache.org";
|
homepage = "http://mesos.apache.org";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks";
|
description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks";
|
||||||
maintainers = with maintainers; [ cstrahan kevincox offline ];
|
maintainers = with maintainers; [ cstrahan offline ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,23 @@
|
|||||||
{stdenv, fetchurl, cmake, flex, bison, openssl, libpcap, zlib, file, curl
|
{stdenv, fetchurl, cmake, flex, bison, openssl, libpcap, zlib, file, curl
|
||||||
, libmaxminddb, gperftools, python, swig, rocksdb }:
|
, libmaxminddb, gperftools, python, swig, rocksdb }:
|
||||||
|
let
|
||||||
|
preConfigure = (import ./script.nix);
|
||||||
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "zeek";
|
pname = "zeek";
|
||||||
version = "3.0.1";
|
version = "3.0.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.zeek.org/downloads/zeek-${version}.tar.gz";
|
url = "https://old.zeek.org/downloads/zeek-${version}.tar.gz";
|
||||||
sha256 = "1lhik212wrbi092qizc08f3i0b9pj318sxwm0abc5jc3v3pz7x3r";
|
sha256 = "0xlw5v83qbgy23wdcddmvan2pid28mw745g4fc1z5r18kp67i8a2";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake flex bison file ];
|
nativeBuildInputs = [ cmake flex bison file ];
|
||||||
buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig rocksdb ];
|
buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig rocksdb ];
|
||||||
|
|
||||||
|
#see issue https://github.com/zeek/zeek/issues/804 to modify hardlinking duplicate files.
|
||||||
|
inherit preConfigure;
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
|
62
pkgs/applications/networking/ids/zeek/script.nix
Normal file
62
pkgs/applications/networking/ids/zeek/script.nix
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
''
|
||||||
|
sed -i "1i##! test dpd" $PWD/scripts/base/frameworks/dpd/__load__.zeek
|
||||||
|
sed -i "1i##! test x509" $PWD/scripts/base/files/x509/__load__.zeek
|
||||||
|
sed -i "1i##! test files-extract" $PWD/scripts/base/files/extract/__load__.zeek
|
||||||
|
sed -i "1i##! test files-hash" $PWD/scripts/base/files/hash/__load__.zeek
|
||||||
|
sed -i "1i##! test files-pe" $PWD/scripts/base/files/pe/__load__.zeek
|
||||||
|
sed -i "1i##! test analyzer" $PWD/scripts/base/frameworks/analyzer/__load__.zeek
|
||||||
|
sed -i "1i##! test cluster" $PWD/scripts/base/frameworks/cluster/__load__.zeek
|
||||||
|
sed -i "1i##! test config" $PWD/scripts/base/frameworks/config/__load__.zeek
|
||||||
|
sed -i "1i##! test contro" $PWD/scripts/base/frameworks/control/__load__.zeek
|
||||||
|
sed -i "1i##! test files" $PWD/scripts/base/frameworks/files/__load__.zeek
|
||||||
|
sed -i "1i##! test files-magic" $PWD/scripts/base/frameworks/files/magic/__load__.zeek
|
||||||
|
sed -i "1i##! test input" $PWD/scripts/base/frameworks/input/__load__.zeek
|
||||||
|
sed -i "1i##! test intel" $PWD/scripts/base/frameworks/intel/__load__.zeek
|
||||||
|
sed -i "1i##! test logging" $PWD/scripts/base/frameworks/logging/__load__.zeek
|
||||||
|
sed -i "1i##! test logging-postprocessors" $PWD/scripts/base/frameworks/logging/postprocessors/__load__.zeek
|
||||||
|
sed -i "1i##! test netcontrol" $PWD/scripts/base/frameworks/netcontrol/__load__.zeek
|
||||||
|
sed -i "1i##! test netcontrol-plugins" $PWD/scripts/base/frameworks/netcontrol/plugins/__load__.zeek
|
||||||
|
sed -i "1i##! test notice" $PWD/scripts/base/frameworks/notice/__load__.zeek
|
||||||
|
sed -i "1i##! test openflow" $PWD/scripts/base/frameworks/openflow/__load__.zeek
|
||||||
|
sed -i "1i##! test openflow-plugins" $PWD/scripts/base/frameworks/openflow/plugins/__load__.zeek
|
||||||
|
sed -i "1i##! test packet-filter" $PWD/scripts/base/frameworks/packet-filter/__load__.zeek
|
||||||
|
sed -i "1i##! test reporter" $PWD/scripts/base/frameworks/reporter/__load__.zeek
|
||||||
|
sed -i "1i##! test signatures" $PWD/scripts/base/frameworks/signatures/__load__.zeek
|
||||||
|
sed -i "1i##! test software" $PWD/scripts/base/frameworks/software/__load__.zeek
|
||||||
|
sed -i "1i##! test sumstats" $PWD/scripts/base/frameworks/sumstats/__load__.zeek
|
||||||
|
sed -i "1i##! test sumstats-plugins" $PWD/scripts/base/frameworks/sumstats/plugins/__load__.zeek
|
||||||
|
sed -i "1i##! test conn" $PWD/scripts/base/protocols/conn/__load__.zeek
|
||||||
|
sed -i "1i##! test dce-rpc" $PWD/scripts/base/protocols/dce-rpc/__load__.zeek
|
||||||
|
sed -i "1i##! test dhcp" $PWD/scripts/base/protocols/dhcp/__load__.zeek
|
||||||
|
sed -i "1i##! test dnp3" $PWD/scripts/base/protocols/dnp3/__load__.zeek
|
||||||
|
sed -i "1i##! test dns" $PWD/scripts/base/protocols/dns/__load__.zeek
|
||||||
|
sed -i "1i##! test ftp" $PWD/scripts/base/protocols/ftp/__load__.zeek
|
||||||
|
sed -i "1i##! test http" $PWD/scripts/base/protocols/http/__load__.zeek
|
||||||
|
sed -i "1i##! test imap" $PWD/scripts/base/protocols/imap/__load__.zeek
|
||||||
|
sed -i "1i##! test irc" $PWD/scripts/base/protocols/irc/__load__.zeek
|
||||||
|
sed -i "1i##! test krb" $PWD/scripts/base/protocols/krb/__load__.zeek
|
||||||
|
sed -i "1i##! test modbus" $PWD/scripts/base/protocols/modbus/__load__.zeek
|
||||||
|
sed -i "1i##! test mqtt" $PWD/scripts/base/protocols/mqtt/__load__.zeek
|
||||||
|
sed -i "1i##! test mysql" $PWD/scripts/base/protocols/mysql/__load__.zeek
|
||||||
|
sed -i "1i##! test ntlm" $PWD/scripts/base/protocols/ntlm/__load__.zeek
|
||||||
|
sed -i "1i##! test ntp" $PWD/scripts/base/protocols/ntp/__load__.zeek
|
||||||
|
sed -i "1i##! test pop3" $PWD/scripts/base/protocols/pop3/__load__.zeek
|
||||||
|
sed -i "1i##! test radius" $PWD/scripts/base/protocols/radius/__load__.zeek
|
||||||
|
sed -i "1i##! test rdp" $PWD/scripts/base/protocols/rdp/__load__.zeek
|
||||||
|
sed -i "1i##! test rfb" $PWD/scripts/base/protocols/rfb/__load__.zeek
|
||||||
|
sed -i "1i##! test sip" $PWD/scripts/base/protocols/sip/__load__.zeek
|
||||||
|
sed -i "1i##! test smb" $PWD/scripts/base/protocols/smb/__load__.zeek
|
||||||
|
sed -i "1i##! test smtp" $PWD/scripts/base/protocols/smtp/__load__.zeek
|
||||||
|
sed -i "1i##! test snmp" $PWD/scripts/base/protocols/snmp/__load__.zeek
|
||||||
|
sed -i "1i##! test socks" $PWD/scripts/base/protocols/socks/__load__.zeek
|
||||||
|
sed -i "1i##! test ssh" $PWD/scripts/base/protocols/ssh/__load__.zeek
|
||||||
|
sed -i "1i##! test ssl" $PWD/scripts/base/protocols/ssl/__load__.zeek
|
||||||
|
sed -i "1i##! test syslog" $PWD/scripts/base/protocols/syslog/__load__.zeek
|
||||||
|
sed -i "1i##! test xmpp" $PWD/scripts/base/protocols/xmpp/__load__.zeek
|
||||||
|
sed -i "1i##! test unified2" $PWD/scripts/policy/files/unified2/__load__.zeek
|
||||||
|
sed -i "1i##! test intel-seen" $PWD/scripts/policy/frameworks/intel/seen/__load__.zeek
|
||||||
|
sed -i "1i##! test notice" $PWD/scripts/policy/frameworks/notice/__load__.zeek
|
||||||
|
sed -i "1i##! test barnyard2" $PWD/scripts/policy/integration/barnyard2/__load__.zeek
|
||||||
|
sed -i "1i##! test collective-intel" $PWD/scripts/policy/integration/collective-intel/__load__.zeek
|
||||||
|
sed -i "1i##! test detect-traceroute" $PWD/scripts/policy/misc/detect-traceroute/__load__.zeek
|
||||||
|
''
|
@ -1,4 +1,4 @@
|
|||||||
{ lib, stdenv, buildPythonApplication, fetchPypi, pythonOlder,
|
{ lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder,
|
||||||
attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
|
attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
|
||||||
prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
|
prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
|
||||||
|
|
||||||
@ -9,13 +9,16 @@
|
|||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
pname = "pantalaimon";
|
pname = "pantalaimon";
|
||||||
version = "0.4";
|
version = "0.5.1";
|
||||||
|
|
||||||
disabled = pythonOlder "3.6";
|
disabled = pythonOlder "3.6";
|
||||||
|
|
||||||
src = fetchPypi {
|
# pypi tarball miss tests
|
||||||
inherit pname version;
|
src = fetchFromGitHub {
|
||||||
sha256 = "1canj9w72wh1rcw6fivrvaahpxy13gb6gh1k8nss6bgixalvnq9m";
|
owner = "matrix-org";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = "18jihvqlfk8lx97hxcr36zdkp2sffg2l8mkg5lflylwcgwy1dx0y";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
@ -2,17 +2,21 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "ipfs";
|
pname = "ipfs";
|
||||||
version = "0.4.22";
|
version = "0.4.23";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ipfs";
|
owner = "ipfs";
|
||||||
repo = "go-ipfs";
|
repo = "go-ipfs";
|
||||||
inherit rev;
|
inherit rev;
|
||||||
sha256 = "1drwkam2m1qdny51l7ja9vd33jffy8w0z0wbp28ajx4glp0kyra2";
|
sha256 = "19m1bhqf1jghdv2ngdnjdk1kvjcxbkgm1ccdkmkabv4ii43h8jwm";
|
||||||
};
|
};
|
||||||
|
|
||||||
modSha256 = "0jbzkifn88myk2vpd390clyl835978vpcfz912y8cnl26s6q677n";
|
postPatch = ''
|
||||||
|
rm -rf test/dependencies
|
||||||
|
'';
|
||||||
|
|
||||||
|
modSha256 = "12m4ind1s8zaa6kssblc28z2cafy20w2jp80kzif39hg5ar9bijm";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A global, versioned, peer-to-peer filesystem";
|
description = "A global, versioned, peer-to-peer filesystem";
|
||||||
|
@ -107,6 +107,6 @@ stdenv.mkDerivation rec {
|
|||||||
homepage = "https://www.claws-mail.org/";
|
homepage = "https://www.claws-mail.org/";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ fpletz globin ];
|
maintainers = with maintainers; [ fpletz globin orivej ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
121
pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix
Normal file
121
pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
{ config, fetchgit, stdenv, wrapGAppsHook, autoreconfHook, bison, flex
|
||||||
|
, curl, dbus, dbus-glib, enchant, gtk3, gnutls, gnupg, gpgme
|
||||||
|
, libarchive, libcanberra-gtk3, libetpan, libnotify, libsoup, libxml2, networkmanager
|
||||||
|
, openldap, perl, pkgconfig, poppler, python, shared-mime-info, webkitgtk
|
||||||
|
, glib-networking, gsettings-desktop-schemas, libSM, libytnef, libical
|
||||||
|
# Build options
|
||||||
|
# TODO: A flag to build the manual.
|
||||||
|
# TODO: Plugins that complain about their missing dependencies, even when
|
||||||
|
# provided:
|
||||||
|
# gdata requires libgdata
|
||||||
|
# geolocation requires libchamplain
|
||||||
|
, enableLdap ? false
|
||||||
|
, enableNetworkManager ? config.networking.networkmanager.enable or false
|
||||||
|
, enablePgp ? true
|
||||||
|
, enablePluginArchive ? false
|
||||||
|
, enablePluginFancy ? true
|
||||||
|
, enablePluginNotificationDialogs ? true
|
||||||
|
, enablePluginNotificationSounds ? true
|
||||||
|
, enablePluginPdf ? false
|
||||||
|
, enablePluginPython ? false
|
||||||
|
, enablePluginRavatar ? false
|
||||||
|
, enablePluginRssyl ? false
|
||||||
|
, enablePluginSmime ? false
|
||||||
|
, enablePluginSpamassassin ? false
|
||||||
|
, enablePluginSpamReport ? false
|
||||||
|
, enablePluginVcalendar ? false
|
||||||
|
, enableSpellcheck ? false
|
||||||
|
}:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "claws-mail-gtk3";
|
||||||
|
version = "3.17.5";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "git://git.claws-mail.org/claws.git";
|
||||||
|
rev = "c1e1902323c2b5dfe82144328b7933dc857ef343"; # this commit is "for release 3.17.5"
|
||||||
|
sha256 = "0cqzlzcms6alvsdsbcc06bsdi1h349b16qngn2z1p8fz16x6s6cy";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
patches = [ ./mime.patch ];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
# autotools check tries to dlopen libpython as a requirement for the python plugin
|
||||||
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python}/lib
|
||||||
|
# generate version without .git
|
||||||
|
[ -e version ] || echo "echo ${version}" > version
|
||||||
|
'';
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace src/procmime.c \
|
||||||
|
--subst-var-by MIMEROOTDIR ${shared-mime-info}/share
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [ autoreconfHook bison flex pkgconfig wrapGAppsHook python.pkgs.wrapPython ];
|
||||||
|
propagatedBuildInputs = with python.pkgs; [ python ] ++ optionals enablePluginPython [ pygtk pygobject2 ];
|
||||||
|
|
||||||
|
buildInputs =
|
||||||
|
[ curl dbus dbus-glib gtk3 gnutls gsettings-desktop-schemas
|
||||||
|
libetpan perl glib-networking libSM libytnef
|
||||||
|
]
|
||||||
|
++ optional enableSpellcheck enchant
|
||||||
|
++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ]
|
||||||
|
++ optional enablePluginArchive libarchive
|
||||||
|
++ optional enablePluginNotificationSounds libcanberra-gtk3
|
||||||
|
++ optional enablePluginNotificationDialogs libnotify
|
||||||
|
++ optional enablePluginFancy libsoup
|
||||||
|
++ optional enablePluginRssyl libxml2
|
||||||
|
++ optional enableNetworkManager networkmanager
|
||||||
|
++ optional enableLdap openldap
|
||||||
|
++ optional enablePluginPdf poppler
|
||||||
|
++ optional enablePluginFancy webkitgtk
|
||||||
|
++ optional enablePluginVcalendar libical;
|
||||||
|
|
||||||
|
configureFlags =
|
||||||
|
optional (!enableLdap) "--disable-ldap"
|
||||||
|
++ optional (!enableNetworkManager) "--disable-networkmanager"
|
||||||
|
++ optionals (!enablePgp) [
|
||||||
|
"--disable-pgpcore-plugin"
|
||||||
|
"--disable-pgpinline-plugin"
|
||||||
|
"--disable-pgpmime-plugin"
|
||||||
|
]
|
||||||
|
++ optional (!enablePluginArchive) "--disable-archive-plugin"
|
||||||
|
++ optional (!enablePluginFancy) "--disable-fancy-plugin"
|
||||||
|
++ optional (!enablePluginPdf) "--disable-pdf_viewer-plugin"
|
||||||
|
++ optional (!enablePluginPython) "--disable-python-plugin"
|
||||||
|
++ optional (!enablePluginRavatar) "--disable-libravatar-plugin"
|
||||||
|
++ optional (!enablePluginRssyl) "--disable-rssyl-plugin"
|
||||||
|
++ optional (!enablePluginSmime) "--disable-smime-plugin"
|
||||||
|
++ optional (!enablePluginSpamassassin) "--disable-spamassassin-plugin"
|
||||||
|
++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin"
|
||||||
|
++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
|
||||||
|
++ optional (!enableSpellcheck) "--disable-enchant";
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
pythonPath = with python.pkgs; [ pygobject2 pygtk ];
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
buildPythonPath "$out $pythonPath"
|
||||||
|
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share" --prefix PYTHONPATH : "$program_PYTHONPATH")
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p $out/share/applications
|
||||||
|
cp claws-mail.desktop $out/share/applications
|
||||||
|
'';
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = [ "-Wno-deprecated-declarations" ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "The user-friendly, lightweight, and fast email client";
|
||||||
|
homepage = "https://www.claws-mail.org/";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ fpletz globin orivej ];
|
||||||
|
};
|
||||||
|
}
|
@ -4,14 +4,14 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "20191207";
|
version = "20200313";
|
||||||
pname = "neomutt";
|
pname = "neomutt";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "neomutt";
|
owner = "neomutt";
|
||||||
repo = "neomutt";
|
repo = "neomutt";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "147yjpqnsbfy01fhsflxlixk0985r91a6bjmqq3cwmf7gka3sihm";
|
sha256 = "1k4k07l6h5krc3fx928qvdq3ssw9fxn95aj7k885xlckd2i1lnb5";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
|
|||||||
description = "A small but very powerful text-based mail client";
|
description = "A small but very powerful text-based mail client";
|
||||||
homepage = http://www.neomutt.org;
|
homepage = http://www.neomutt.org;
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = with maintainers; [ cstrahan erikryb jfrankenau vrthra ];
|
maintainers = with maintainers; [ cstrahan erikryb jfrankenau vrthra ma27 ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,6 @@ let
|
|||||||
version = source.version;
|
version = source.version;
|
||||||
|
|
||||||
patches = (source.patches or [])
|
patches = (source.patches or [])
|
||||||
++ optional jackSupport ./mumble-jack-support.patch
|
|
||||||
++ [ ./fix-rnnoise-argument.patch ];
|
++ [ ./fix-rnnoise-argument.patch ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig python qt5.qmake ]
|
nativeBuildInputs = [ pkgconfig python qt5.qmake ]
|
||||||
|
@ -1,457 +0,0 @@
|
|||||||
The patch was created by Filipe Coelho (falkTX) of the KXStudio
|
|
||||||
project. http://kxstudio.sourceforge.net
|
|
||||||
|
|
||||||
diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/JackAudio.cpp mumble-1.2.2/src/mumble/JackAudio.cpp
|
|
||||||
--- mumble-1.2.2.orig/src/mumble/JackAudio.cpp 1970-01-01 01:00:00.000000000 +0100
|
|
||||||
+++ mumble-1.2.2/src/mumble/JackAudio.cpp 2011-01-26 06:02:00.000000000 +0000
|
|
||||||
@@ -0,0 +1,314 @@
|
|
||||||
+/* Copyright (C) 2011, Benjamin Jemlich <pcgod@users.sourceforge.net>
|
|
||||||
+ Copyright (C) 2011, Filipe Coelho <falktx@gmail.com>
|
|
||||||
+
|
|
||||||
+ All rights reserved.
|
|
||||||
+
|
|
||||||
+ Redistribution and use in source and binary forms, with or without
|
|
||||||
+ modification, are permitted provided that the following conditions
|
|
||||||
+ are met:
|
|
||||||
+
|
|
||||||
+ - Redistributions of source code must retain the above copyright notice,
|
|
||||||
+ this list of conditions and the following disclaimer.
|
|
||||||
+ - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
+ this list of conditions and the following disclaimer in the documentation
|
|
||||||
+ and/or other materials provided with the distribution.
|
|
||||||
+ - Neither the name of the Mumble Developers nor the names of its
|
|
||||||
+ contributors may be used to endorse or promote products derived from this
|
|
||||||
+ software without specific prior written permission.
|
|
||||||
+
|
|
||||||
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
|
|
||||||
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
+*/
|
|
||||||
+
|
|
||||||
+#include "JackAudio.h"
|
|
||||||
+#include "User.h"
|
|
||||||
+#include "Global.h"
|
|
||||||
+#include "MainWindow.h"
|
|
||||||
+#include "Timer.h"
|
|
||||||
+
|
|
||||||
+#include <cstring>
|
|
||||||
+
|
|
||||||
+static JackAudioSystem *jasys = NULL;
|
|
||||||
+
|
|
||||||
+class JackAudioInputRegistrar : public AudioInputRegistrar {
|
|
||||||
+ public:
|
|
||||||
+ JackAudioInputRegistrar();
|
|
||||||
+ virtual AudioInput *create();
|
|
||||||
+ virtual const QList<audioDevice> getDeviceChoices();
|
|
||||||
+ virtual void setDeviceChoice(const QVariant &, Settings &);
|
|
||||||
+ virtual bool canEcho(const QString &) const;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+class JackAudioOutputRegistrar : public AudioOutputRegistrar {
|
|
||||||
+ public:
|
|
||||||
+ JackAudioOutputRegistrar();
|
|
||||||
+ virtual AudioOutput *create();
|
|
||||||
+ virtual const QList<audioDevice> getDeviceChoices();
|
|
||||||
+ virtual void setDeviceChoice(const QVariant &, Settings &);
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+class JackAudioInit : public DeferInit {
|
|
||||||
+ public:
|
|
||||||
+ JackAudioInputRegistrar *airJackAudio;
|
|
||||||
+ JackAudioOutputRegistrar *aorJackAudio;
|
|
||||||
+ void initialize() {
|
|
||||||
+ jasys = new JackAudioSystem();
|
|
||||||
+ jasys->init_jack();
|
|
||||||
+ jasys->qmWait.lock();
|
|
||||||
+ jasys->qwcWait.wait(&jasys->qmWait, 1000);
|
|
||||||
+ jasys->qmWait.unlock();
|
|
||||||
+ if (jasys->bJackIsGood) {
|
|
||||||
+ airJackAudio = new JackAudioInputRegistrar();
|
|
||||||
+ aorJackAudio = new JackAudioOutputRegistrar();
|
|
||||||
+ } else {
|
|
||||||
+ airJackAudio = NULL;
|
|
||||||
+ aorJackAudio = NULL;
|
|
||||||
+ delete jasys;
|
|
||||||
+ jasys = NULL;
|
|
||||||
+ }
|
|
||||||
+ };
|
|
||||||
+ void destroy() {
|
|
||||||
+ if (airJackAudio)
|
|
||||||
+ delete airJackAudio;
|
|
||||||
+ if (aorJackAudio)
|
|
||||||
+ delete aorJackAudio;
|
|
||||||
+ if (jasys) {
|
|
||||||
+ jasys->close_jack();
|
|
||||||
+ delete jasys;
|
|
||||||
+ jasys = NULL;
|
|
||||||
+ }
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static JackAudioInit jackinit; //unused
|
|
||||||
+
|
|
||||||
+JackAudioSystem::JackAudioSystem() {
|
|
||||||
+ bJackIsGood = false;
|
|
||||||
+ iSampleRate = 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+JackAudioSystem::~JackAudioSystem() {
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void JackAudioSystem::init_jack()
|
|
||||||
+{
|
|
||||||
+ client = jack_client_open("mumble", JackNullOption, 0);
|
|
||||||
+
|
|
||||||
+ if (client) {
|
|
||||||
+ in_port = jack_port_register(client, "input", JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0);
|
|
||||||
+ out_port = jack_port_register(client, "output", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0);
|
|
||||||
+ jack_set_process_callback(client, process_callback, this);
|
|
||||||
+ jack_set_sample_rate_callback(client, srate_callback, this);
|
|
||||||
+ jack_on_shutdown(client, shutdown_callback, this);
|
|
||||||
+
|
|
||||||
+ iSampleRate = jack_get_sample_rate(client);
|
|
||||||
+
|
|
||||||
+ if (jack_activate(client) || in_port == NULL || out_port == NULL) {
|
|
||||||
+ client = NULL;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ int port_flags;
|
|
||||||
+ unsigned i = -1;
|
|
||||||
+ const char** ports = jack_get_ports(client, 0, 0, JackPortIsPhysical);
|
|
||||||
+
|
|
||||||
+ if (ports) {
|
|
||||||
+ while (ports[++i])
|
|
||||||
+ {
|
|
||||||
+ jack_port_t* port = jack_port_by_name(client, ports[i]);
|
|
||||||
+ port_flags = jack_port_flags(port);
|
|
||||||
+
|
|
||||||
+ if (port_flags & (JackPortIsPhysical|JackPortIsOutput) && strstr(jack_port_type(port), "audio")) {
|
|
||||||
+ jack_connect(client, ports[i], jack_port_name(in_port));
|
|
||||||
+ }
|
|
||||||
+ if (port_flags & (JackPortIsPhysical|JackPortIsInput) && strstr(jack_port_type(port), "audio")) {
|
|
||||||
+ jack_connect(client, jack_port_name(out_port), ports[i]);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ jack_free(ports);
|
|
||||||
+
|
|
||||||
+ // If we made it this far, then everything is okay
|
|
||||||
+ qhInput.insert(QString(), tr("Hardware Ports"));
|
|
||||||
+ qhOutput.insert(QString(), tr("Hardware Ports"));
|
|
||||||
+ bJackIsGood = true;
|
|
||||||
+
|
|
||||||
+ } else {
|
|
||||||
+ bJackIsGood = false;
|
|
||||||
+ client = NULL;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void JackAudioSystem::close_jack()
|
|
||||||
+{
|
|
||||||
+ if (client) {
|
|
||||||
+ jack_deactivate(client);
|
|
||||||
+ jack_client_close(client);
|
|
||||||
+ client = NULL;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int JackAudioSystem::process_callback(jack_nframes_t nframes, void *arg)
|
|
||||||
+{
|
|
||||||
+ JackAudioSystem *jas = (JackAudioSystem*)arg;
|
|
||||||
+
|
|
||||||
+ if (jas && jas->bJackIsGood) {
|
|
||||||
+ AudioInputPtr ai = g.ai;
|
|
||||||
+ AudioOutputPtr ao = g.ao;
|
|
||||||
+ JackAudioInput *jai = (JackAudioInput*)(ai.get());
|
|
||||||
+ JackAudioOutput *jao = (JackAudioOutput*)(ao.get());
|
|
||||||
+
|
|
||||||
+ if (jai && jai->bRunning && jai->iMicChannels > 0 && !jai->isFinished()) {
|
|
||||||
+ void* input = jack_port_get_buffer(jas->in_port, nframes);
|
|
||||||
+ if ((float*)input != 0)
|
|
||||||
+ jai->addMic(input, nframes);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (jao && jao->bRunning && jao->iChannels > 0 && !jao->isFinished()) {
|
|
||||||
+ jack_default_audio_sample_t* output = (jack_default_audio_sample_t*)jack_port_get_buffer(jas->out_port, nframes);
|
|
||||||
+ memset(output, 0, sizeof(jack_default_audio_sample_t)*nframes); //TEST
|
|
||||||
+ jao->mix(output, nframes);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int JackAudioSystem::srate_callback(jack_nframes_t frames, void *arg)
|
|
||||||
+{
|
|
||||||
+ JackAudioSystem *jas = (JackAudioSystem*)arg;
|
|
||||||
+ jas->iSampleRate = frames;
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void JackAudioSystem::shutdown_callback(void *arg)
|
|
||||||
+{
|
|
||||||
+ JackAudioSystem *jas = (JackAudioSystem*)arg;
|
|
||||||
+ jas->bJackIsGood = false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+JackAudioInputRegistrar::JackAudioInputRegistrar() : AudioInputRegistrar(QLatin1String("JACK"), 10) {
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+AudioInput *JackAudioInputRegistrar::create() {
|
|
||||||
+ return new JackAudioInput();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+const QList<audioDevice> JackAudioInputRegistrar::getDeviceChoices() {
|
|
||||||
+ QList<audioDevice> qlReturn;
|
|
||||||
+
|
|
||||||
+ QStringList qlInputDevs = jasys->qhInput.keys();
|
|
||||||
+ qSort(qlInputDevs);
|
|
||||||
+
|
|
||||||
+ foreach(const QString &dev, qlInputDevs) {
|
|
||||||
+ qlReturn << audioDevice(jasys->qhInput.value(dev), dev);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return qlReturn;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void JackAudioInputRegistrar::setDeviceChoice(const QVariant &choice, Settings &s) {
|
|
||||||
+ Q_UNUSED(choice);
|
|
||||||
+ Q_UNUSED(s);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+bool JackAudioInputRegistrar::canEcho(const QString &osys) const {
|
|
||||||
+ Q_UNUSED(osys);
|
|
||||||
+ return false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+JackAudioOutputRegistrar::JackAudioOutputRegistrar() : AudioOutputRegistrar(QLatin1String("JACK"), 10) {
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+AudioOutput *JackAudioOutputRegistrar::create() {
|
|
||||||
+ return new JackAudioOutput();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+const QList<audioDevice> JackAudioOutputRegistrar::getDeviceChoices() {
|
|
||||||
+ QList<audioDevice> qlReturn;
|
|
||||||
+
|
|
||||||
+ QStringList qlOutputDevs = jasys->qhOutput.keys();
|
|
||||||
+ qSort(qlOutputDevs);
|
|
||||||
+
|
|
||||||
+ foreach(const QString &dev, qlOutputDevs) {
|
|
||||||
+ qlReturn << audioDevice(jasys->qhOutput.value(dev), dev);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return qlReturn;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void JackAudioOutputRegistrar::setDeviceChoice(const QVariant &choice, Settings &s) {
|
|
||||||
+ Q_UNUSED(choice);
|
|
||||||
+ Q_UNUSED(s);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+JackAudioInput::JackAudioInput() {
|
|
||||||
+ bRunning = true;
|
|
||||||
+ iMicChannels = 0;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+JackAudioInput::~JackAudioInput() {
|
|
||||||
+ bRunning = false;
|
|
||||||
+ iMicChannels = 0;
|
|
||||||
+ qmMutex.lock();
|
|
||||||
+ qwcWait.wakeAll();
|
|
||||||
+ qmMutex.unlock();
|
|
||||||
+ wait();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void JackAudioInput::run() {
|
|
||||||
+ if (jasys && jasys->bJackIsGood) {
|
|
||||||
+ iMicFreq = jasys->iSampleRate;
|
|
||||||
+ iMicChannels = 1;
|
|
||||||
+ eMicFormat = SampleFloat;
|
|
||||||
+ initializeMixer();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ qmMutex.lock();
|
|
||||||
+ while (bRunning)
|
|
||||||
+ qwcWait.wait(&qmMutex);
|
|
||||||
+ qmMutex.unlock();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+JackAudioOutput::JackAudioOutput() {
|
|
||||||
+ bRunning = true;
|
|
||||||
+ iChannels = 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+JackAudioOutput::~JackAudioOutput() {
|
|
||||||
+ bRunning = false;
|
|
||||||
+ iChannels = 0;
|
|
||||||
+ qmMutex.lock();
|
|
||||||
+ qwcWait.wakeAll();
|
|
||||||
+ qmMutex.unlock();
|
|
||||||
+ wait();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void JackAudioOutput::run() {
|
|
||||||
+ if (jasys && jasys->bJackIsGood) {
|
|
||||||
+ unsigned int chanmasks[32];
|
|
||||||
+
|
|
||||||
+ chanmasks[0] = SPEAKER_FRONT_LEFT;
|
|
||||||
+ chanmasks[1] = SPEAKER_FRONT_RIGHT;
|
|
||||||
+
|
|
||||||
+ eSampleFormat = SampleFloat;
|
|
||||||
+ iMixerFreq = jasys->iSampleRate;
|
|
||||||
+ iChannels = 1;
|
|
||||||
+ initializeMixer(chanmasks);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ qmMutex.lock();
|
|
||||||
+ while (bRunning)
|
|
||||||
+ qwcWait.wait(&qmMutex);
|
|
||||||
+ qmMutex.unlock();
|
|
||||||
+}
|
|
||||||
diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/JackAudio.h mumble-1.2.2/src/mumble/JackAudio.h
|
|
||||||
--- mumble-1.2.2.orig/src/mumble/JackAudio.h 1970-01-01 01:00:00.000000000 +0100
|
|
||||||
+++ mumble-1.2.2/src/mumble/JackAudio.h 2011-01-26 06:03:58.000000000 +0000
|
|
||||||
@@ -0,0 +1,97 @@
|
|
||||||
+/* Copyright (C) 2011, Benjamin Jemlich <pcgod@users.sourceforge.net>
|
|
||||||
+ Copyright (C) 2011, Filipe Coelho <falktx@gmail.com>
|
|
||||||
+
|
|
||||||
+ All rights reserved.
|
|
||||||
+
|
|
||||||
+ Redistribution and use in source and binary forms, with or without
|
|
||||||
+ modification, are permitted provided that the following conditions
|
|
||||||
+ are met:
|
|
||||||
+
|
|
||||||
+ - Redistributions of source code must retain the above copyright notice,
|
|
||||||
+ this list of conditions and the following disclaimer.
|
|
||||||
+ - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
+ this list of conditions and the following disclaimer in the documentation
|
|
||||||
+ and/or other materials provided with the distribution.
|
|
||||||
+ - Neither the name of the Mumble Developers nor the names of its
|
|
||||||
+ contributors may be used to endorse or promote products derived from this
|
|
||||||
+ software without specific prior written permission.
|
|
||||||
+
|
|
||||||
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
|
|
||||||
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
+*/
|
|
||||||
+
|
|
||||||
+#ifndef _JACKAUDIO_H
|
|
||||||
+#define _JACKAUDIO_H
|
|
||||||
+
|
|
||||||
+#include "AudioInput.h"
|
|
||||||
+#include "AudioOutput.h"
|
|
||||||
+#include <jack/jack.h>
|
|
||||||
+
|
|
||||||
+class JackAudioOutput;
|
|
||||||
+class JackAudioInput;
|
|
||||||
+
|
|
||||||
+class JackAudioSystem : public QObject {
|
|
||||||
+ private:
|
|
||||||
+ Q_OBJECT
|
|
||||||
+ Q_DISABLE_COPY(JackAudioSystem)
|
|
||||||
+ protected:
|
|
||||||
+ jack_client_t* client;
|
|
||||||
+ jack_port_t* in_port;
|
|
||||||
+ jack_port_t* out_port;
|
|
||||||
+
|
|
||||||
+ static int process_callback(jack_nframes_t nframes, void *arg);
|
|
||||||
+ static int srate_callback(jack_nframes_t frames, void *arg);
|
|
||||||
+ static void shutdown_callback(void *arg);
|
|
||||||
+ public:
|
|
||||||
+ QHash<QString, QString> qhInput;
|
|
||||||
+ QHash<QString, QString> qhOutput;
|
|
||||||
+ bool bJackIsGood;
|
|
||||||
+ int iSampleRate;
|
|
||||||
+ QMutex qmWait;
|
|
||||||
+ QWaitCondition qwcWait;
|
|
||||||
+
|
|
||||||
+ void init_jack();
|
|
||||||
+ void close_jack();
|
|
||||||
+
|
|
||||||
+ JackAudioSystem();
|
|
||||||
+ ~JackAudioSystem();
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+class JackAudioInput : public AudioInput {
|
|
||||||
+ friend class JackAudioSystem;
|
|
||||||
+ private:
|
|
||||||
+ Q_OBJECT
|
|
||||||
+ Q_DISABLE_COPY(JackAudioInput)
|
|
||||||
+ protected:
|
|
||||||
+ QMutex qmMutex;
|
|
||||||
+ QWaitCondition qwcWait;
|
|
||||||
+ public:
|
|
||||||
+ JackAudioInput();
|
|
||||||
+ ~JackAudioInput();
|
|
||||||
+ void run();
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+class JackAudioOutput : public AudioOutput {
|
|
||||||
+ friend class JackAudioSystem;
|
|
||||||
+ private:
|
|
||||||
+ Q_OBJECT
|
|
||||||
+ Q_DISABLE_COPY(JackAudioOutput)
|
|
||||||
+ protected:
|
|
||||||
+ QMutex qmMutex;
|
|
||||||
+ QWaitCondition qwcWait;
|
|
||||||
+ public:
|
|
||||||
+ JackAudioOutput();
|
|
||||||
+ ~JackAudioOutput();
|
|
||||||
+ void run();
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/mumble.pro mumble-1.2.2/src/mumble/mumble.pro
|
|
||||||
--- mumble-1.2.2.orig/src/mumble/mumble.pro 2010-02-09 16:34:51.000000000 +0000
|
|
||||||
+++ mumble-1.2.2/src/mumble/mumble.pro 2011-01-26 01:45:55.000000000 +0000
|
|
||||||
@@ -93,11 +93,17 @@
|
|
||||||
unix {
|
|
||||||
HAVE_PULSEAUDIO=$$system(pkg-config --modversion --silence-errors libpulse)
|
|
||||||
HAVE_PORTAUDIO=$$system(pkg-config --modversion --silence-errors portaudio-2.0)
|
|
||||||
+ HAVE_JACKAUDIO=$$system(pkg-config --modversion --silence-errors jack)
|
|
||||||
|
|
||||||
!isEmpty(HAVE_PORTAUDIO):!CONFIG(no-portaudio) {
|
|
||||||
CONFIG *= portaudio
|
|
||||||
}
|
|
||||||
|
|
||||||
+ !isEmpty(HAVE_JACKAUDIO):!CONFIG(no-jackaudio) {
|
|
||||||
+ CONFIG -= portaudio
|
|
||||||
+ CONFIG *= jackaudio
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
!isEmpty(HAVE_PULSEAUDIO):!CONFIG(no-pulseaudio) {
|
|
||||||
CONFIG -= portaudio
|
|
||||||
CONFIG *= pulseaudio
|
|
||||||
@@ -110,6 +116,13 @@
|
|
||||||
QMAKE_CXXFLAGS_DEBUG *= -I../../speex/include -I../../speexbuild
|
|
||||||
}
|
|
||||||
|
|
||||||
+ jackaudio {
|
|
||||||
+ DEFINES *= USE_JACKAUDIO
|
|
||||||
+ PKGCONFIG *= jack
|
|
||||||
+ HEADERS *= JackAudio.h
|
|
||||||
+ SOURCES *= JackAudio.cpp
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
CONFIG *= link_pkgconfig
|
|
||||||
|
|
||||||
PKGCONFIG *= openssl sndfile
|
|
@ -1,6 +1,8 @@
|
|||||||
{stdenv, fetchFromGitHub, ocaml, lablgtk, fontschumachermisc, xset, makeWrapper, ncurses
|
{stdenv, fetchFromGitHub, ocamlPackages, fontschumachermisc, xset, makeWrapper, ncurses
|
||||||
, enableX11 ? true}:
|
, enableX11 ? true}:
|
||||||
|
|
||||||
|
let inherit (ocamlPackages) ocaml lablgtk; in
|
||||||
|
|
||||||
stdenv.mkDerivation (rec {
|
stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
pname = "unison";
|
pname = "unison";
|
||||||
|
@ -3,14 +3,15 @@
|
|||||||
, isPy3k, isPyPy
|
, isPy3k, isPyPy
|
||||||
|
|
||||||
, pyenchant, simplebayes, pillow, pycountry, whoosh, termcolor
|
, pyenchant, simplebayes, pillow, pycountry, whoosh, termcolor
|
||||||
, python-Levenshtein, pyinsane2, pygobject3, pyocr, natsort
|
, python-Levenshtein, pygobject3, pyocr, natsort, libinsane
|
||||||
|
, distro
|
||||||
|
|
||||||
, pkgs
|
, pkgs
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "paperwork-backend";
|
pname = "paperwork-backend";
|
||||||
version = "1.2.4";
|
version = "1.3.1";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
domain = "gitlab.gnome.org";
|
domain = "gitlab.gnome.org";
|
||||||
@ -18,7 +19,7 @@ buildPythonPackage rec {
|
|||||||
group = "World";
|
group = "World";
|
||||||
owner = "OpenPaperwork";
|
owner = "OpenPaperwork";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0wjjiw99aswmppnhzq3jir0p5p78r3m8hjinhdirkgm6h7skq5p4";
|
sha256 = "1219yz8z4r1yn6miq8zc2z1m1lnhf3dmkhwfw23n05bg842nvg65";
|
||||||
};
|
};
|
||||||
|
|
||||||
sourceRoot = "source/paperwork-backend";
|
sourceRoot = "source/paperwork-backend";
|
||||||
@ -34,14 +35,14 @@ buildPythonPackage rec {
|
|||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
pyenchant simplebayes pillow pycountry whoosh termcolor
|
pyenchant simplebayes pillow pycountry whoosh termcolor
|
||||||
python-Levenshtein pyinsane2 pygobject3 pyocr natsort
|
python-Levenshtein libinsane pygobject3 pyocr natsort
|
||||||
pkgs.poppler_gi pkgs.gtk3
|
pkgs.poppler_gi pkgs.gtk3 distro
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Backend part of Paperwork (Python API, no UI)";
|
description = "Backend part of Paperwork (Python API, no UI)";
|
||||||
homepage = https://openpaper.work/;
|
homepage = https://openpaper.work/;
|
||||||
license = lib.licenses.gpl3Plus;
|
license = lib.licenses.gpl3Plus;
|
||||||
maintainers = [ lib.maintainers.aszlig ];
|
maintainers = with lib.maintainers; [ aszlig symphorien ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,15 @@
|
|||||||
{ lib, python3Packages, gtk3, cairo
|
{ lib
|
||||||
, aspellDicts, buildEnv
|
, python3Packages
|
||||||
, gnome3, librsvg
|
, gtk3
|
||||||
, xvfb_run, dbus, libnotify
|
, cairo
|
||||||
|
, aspellDicts
|
||||||
|
, buildEnv
|
||||||
|
, gnome3
|
||||||
|
, librsvg
|
||||||
|
, xvfb_run
|
||||||
|
, dbus
|
||||||
|
, libnotify
|
||||||
|
, wrapGAppsHook
|
||||||
}:
|
}:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
@ -46,9 +54,23 @@ python3Packages.buildPythonApplication rec {
|
|||||||
paths = lib.collect lib.isDerivation aspellDicts;
|
paths = lib.collect lib.isDerivation aspellDicts;
|
||||||
}}/lib/aspell";
|
}}/lib/aspell";
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
# paperwork-shell needs to be re-wrapped with access to paperwork
|
||||||
|
cp ${python3Packages.paperwork-backend}/bin/.paperwork-shell-wrapped $out/bin/paperwork-shell
|
||||||
|
# install desktop files and icons
|
||||||
|
XDG_DATA_HOME=$out/share $out/bin/paperwork-shell install
|
||||||
|
'';
|
||||||
|
|
||||||
checkInputs = [ xvfb_run dbus.daemon ] ++ (with python3Packages; [ paperwork-backend ]);
|
checkInputs = [ xvfb_run dbus.daemon ] ++ (with python3Packages; [ paperwork-backend ]);
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
wrapGAppsHook
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gnome3.adwaita-icon-theme libnotify librsvg
|
gnome3.adwaita-icon-theme
|
||||||
|
libnotify
|
||||||
|
librsvg
|
||||||
];
|
];
|
||||||
|
|
||||||
# A few parts of chkdeps need to have a display and a dbus session, so we not
|
# A few parts of chkdeps need to have a display and a dbus session, so we not
|
||||||
@ -61,21 +83,20 @@ python3Packages.buildPythonApplication rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
propagatedBuildInputs = with python3Packages; [
|
||||||
paperwork-backend pypillowfight gtk3 cairo pyxdg dateutil setuptools pandas
|
paperwork-backend
|
||||||
];
|
pypillowfight
|
||||||
|
gtk3
|
||||||
makeWrapperArgs = [
|
cairo
|
||||||
"--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\""
|
pyxdg
|
||||||
"--set GDK_PIXBUF_MODULE_FILE \"$GDK_PIXBUF_MODULE_FILE\""
|
dateutil
|
||||||
"--prefix XDG_DATA_DIRS : \"$out/share\""
|
setuptools
|
||||||
"--suffix XDG_DATA_DIRS : \"$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\""
|
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A personal document manager for scanned documents";
|
description = "A personal document manager for scanned documents";
|
||||||
homepage = https://openpaper.work/;
|
homepage = https://openpaper.work/;
|
||||||
license = lib.licenses.gpl3Plus;
|
license = lib.licenses.gpl3Plus;
|
||||||
maintainers = [ lib.maintainers.aszlig ];
|
maintainers = with lib.maintainers; [ aszlig symphorien ];
|
||||||
platforms = lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ let
|
|||||||
maintainers = with maintainers; [ emmanuelrosa dtzWill kampka ];
|
maintainers = with maintainers; [ emmanuelrosa dtzWill kampka ];
|
||||||
};
|
};
|
||||||
|
|
||||||
version = "0.39.4";
|
version = "0.40.5";
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
@ -30,14 +30,14 @@ in {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
|
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
|
||||||
sha256 = "18wrnm13k0gg6aljpf6k7c5zia81zzkqc0sa1pgz0yzczydsfaa9";
|
sha256 = "02hmfgv8viy1hn2ix4b0gdzbcj7piddsmjdnb0b5hpwahqrikiyi";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Fetch from source repo, no longer included in release.
|
# Fetch from source repo, no longer included in release.
|
||||||
# (they did special-case icon.png but we want the scalable svg)
|
# (they did special-case icon.png but we want the scalable svg)
|
||||||
# Use the version here to ensure we get any changes.
|
# Use the version here to ensure we get any changes.
|
||||||
trilium_svg = fetchurl {
|
trilium_svg = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/src/public/images/trilium.svg";
|
url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/images/trilium.svg";
|
||||||
sha256 = "1rgj7pza20yndfp8n12k93jyprym02hqah36fkk2b3if3kcmwnfg";
|
sha256 = "1rgj7pza20yndfp8n12k93jyprym02hqah36fkk2b3if3kcmwnfg";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ in {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
|
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
|
||||||
sha256 = "06svdp25031p665pvlxdz10malvhxpczzrg90hpr1zymm6v8van3";
|
sha256 = "00b7qx2h26qrdhw2a7y0irhbr442yynnzpm1pz55hi33zpckbrc7";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0lmvsnb4xw4hmz6zs0z5ilsah5hjz29g1s0050n59fllskqr3b8k";
|
sha256 = "0lmvsnb4xw4hmz6zs0z5ilsah5hjz29g1s0050n59fllskqr3b8k";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig cmake ];
|
||||||
buildInputs = [ cmake libusb1 ];
|
buildInputs = [ libusb1 ];
|
||||||
|
|
||||||
# TODO: get these fixes upstream:
|
# TODO: get these fixes upstream:
|
||||||
# * Building with -DINSTALL_UDEV_RULES=ON tries to install udev rules to
|
# * Building with -DINSTALL_UDEV_RULES=ON tries to install udev rules to
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "verilator";
|
pname = "verilator";
|
||||||
version = "4.028";
|
version = "4.030";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
|
url = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
|
||||||
sha256 = "1rl92jnayhc1j47gjxdz2zf1by9vzlawbyw9mf1d7d2y22dqak1l";
|
sha256 = "07ldkf7xkr31n1dmx82bmzam8bvc1vsp32k76vd7yzn7r853qyky";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "geogebra";
|
pname = "geogebra";
|
||||||
version = "5-0-573-0";
|
version = "5-0-574-0";
|
||||||
|
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
|
|||||||
"https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
|
"https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
|
||||||
"http://web.archive.org/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
|
"http://web.archive.org/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
|
||||||
];
|
];
|
||||||
sha256 = "0lj0k49sjsjqs716n74xbq6a4gids5903f5s6fhqyahrwyldhzrj";
|
sha256 = "0jbci4spqkf33yb079lsnsc684y4mdf1p8lm9r0037av8jlsrgrc";
|
||||||
};
|
};
|
||||||
|
|
||||||
srcIcon = fetchurl {
|
srcIcon = fetchurl {
|
||||||
|
@ -1,24 +1,27 @@
|
|||||||
{ stdenv, fetchurl, cmake, gfortran, openblas, openmpi, python3 }:
|
{ stdenv, fetchurl, cmake, gfortran, openblas, openmpi, petsc, python3 }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "getdp";
|
name = "getdp-${version}";
|
||||||
version = "3.0.4";
|
version = "3.3.0";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://getdp.info/src/getdp-${version}-source.tgz";
|
url = "http://getdp.info/src/getdp-${version}-source.tgz";
|
||||||
sha256 = "0v3hg03lzw4hz28hm45hpv0gyydqz0wav7xvb5n0v0jrm47mrspv";
|
sha256 = "1pfviy2bw8z5y6c15czvlvyjjg9pvpgrj9fr54xfi2gmvs7zkgpf";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake gfortran ];
|
||||||
buildInputs = [ gfortran openblas openmpi python3 ];
|
buildInputs = [ openblas openmpi petsc python3 ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A General Environment for the Treatment of Discrete Problems";
|
description = "A General Environment for the Treatment of Discrete Problems";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
GetDP is a free finite element solver using mixed elements to discretize de Rham-type complexes in one, two and three dimensions.
|
GetDP is a free finite element solver using mixed elements to discretize
|
||||||
The main feature of GetDP is the closeness between the input data defining discrete problems (written by the user in ASCII data files) and the symbolic mathematical expressions of these problems.
|
de Rham-type complexes in one, two and three dimensions. The main
|
||||||
|
feature of GetDP is the closeness between the input data defining
|
||||||
|
discrete problems (written by the user in ASCII data files) and the
|
||||||
|
symbolic mathematical expressions of these problems.
|
||||||
'';
|
'';
|
||||||
homepage = http://getdp.info/;
|
homepage = "http://getdp.info/";
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = with maintainers; [ wucke13 ];
|
maintainers = with maintainers; [ wucke13 ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
|
, fetchpatch
|
||||||
, gmp
|
, gmp
|
||||||
, readline
|
, readline
|
||||||
, libX11
|
, libX11
|
||||||
@ -19,6 +20,15 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1jd65h2psrmba2dx7rkf5qidf9ka0cwbsg20pd18k45ggr30l467";
|
sha256 = "1jd65h2psrmba2dx7rkf5qidf9ka0cwbsg20pd18k45ggr30l467";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# https://trac.sagemath.org/ticket/29313#comment:1
|
||||||
|
(fetchpatch {
|
||||||
|
name = "backport-bug-fix.patch";
|
||||||
|
url = "https://git.archlinux.org/svntogit/community.git/plain/repos/community-x86_64/c7a1d35f.patch?h=packages/pari&id=27893d227290dc3821d68aa25877d9765c204dad";
|
||||||
|
sha256 = "0vm0fwyzj66cr32imip6srksd47s2s2sjl1rb26ph8gpfi3nalii";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gmp
|
gmp
|
||||||
readline
|
readline
|
||||||
|
@ -130,6 +130,13 @@ stdenv.mkDerivation rec {
|
|||||||
url = "https://git.sagemath.org/sage.git/patch/?h=c6d0308db15efd611211d26cfcbefbd180fc0831";
|
url = "https://git.sagemath.org/sage.git/patch/?h=c6d0308db15efd611211d26cfcbefbd180fc0831";
|
||||||
sha256 = "0nwai2jr22h49km4hx3kwafs3mzsc5kwsv7mqwjf6ibwfx2bbgyq";
|
sha256 = "0nwai2jr22h49km4hx3kwafs3mzsc5kwsv7mqwjf6ibwfx2bbgyq";
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# https://trac.sagemath.org/ticket/29313 (patch from ArchLinux)
|
||||||
|
(fetchpatch {
|
||||||
|
name = "pari-2.11.3.patch";
|
||||||
|
url = "https://aur.archlinux.org/cgit/aur.git/plain/sagemath-pari-2.11.3.patch?h=sagemath-git&id=02e1d58bd1cd70935d69a4990469d18be6bd2c43";
|
||||||
|
sha256 = "0z07444zvijyw96d11q7j81pvg7ysd6ycf1bbbjr6za9y74hv7d2";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
|
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "git-standup";
|
pname = "git-standup";
|
||||||
version = "2.3.1";
|
version = "2.3.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "kamranahmedse";
|
owner = "kamranahmedse";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0wx9ypyxhpjbrasl6264jmj9fjrpg3gn93dg00cakabz3r7yxxq3";
|
sha256 = "1xnn0jjha56v7l2vj45zzxncl6m5x2hq6nkffgc1bcikhp1pidn7";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
@ -2,13 +2,15 @@
|
|||||||
|
|
||||||
libgit2.overrideAttrs (oldAttrs: {
|
libgit2.overrideAttrs (oldAttrs: {
|
||||||
cmakeFlags = oldAttrs.cmakeFlags ++ [
|
cmakeFlags = oldAttrs.cmakeFlags ++ [
|
||||||
"-DUSE_BUNDLED_ZLIB=ON"
|
|
||||||
"-DUSE_ICONV=OFF"
|
|
||||||
"-DBUILD_CLAR=OFF"
|
"-DBUILD_CLAR=OFF"
|
||||||
"-DUSE_SSH=OFF"
|
|
||||||
"-DUSE_HTTPS=OFF"
|
|
||||||
"-DBUILD_SHARED_LIBS=OFF"
|
"-DBUILD_SHARED_LIBS=OFF"
|
||||||
"-DUSE_EXT_HTTP_PARSER=OFF"
|
"-DREGEX_BACKEND=builtin"
|
||||||
|
"-DUSE_BUNDLED_ZLIB=ON"
|
||||||
|
"-DUSE_HTTPS=OFF"
|
||||||
|
"-DUSE_HTTP_PARSER=builtin" # overwritten from libgit2
|
||||||
|
"-DUSE_ICONV=OFF"
|
||||||
|
"-DUSE_SSH=OFF"
|
||||||
|
"-DZERO_NSEC=ON"
|
||||||
];
|
];
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "romkatv";
|
owner = "romkatv";
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
pname = "hub";
|
pname = "hub";
|
||||||
version = "2.14.1";
|
version = "2.14.2";
|
||||||
|
|
||||||
goPackagePath = "github.com/github/hub";
|
goPackagePath = "github.com/github/hub";
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ buildGoPackage rec {
|
|||||||
owner = "github";
|
owner = "github";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0b179sp8z2blzh4a0c2pjbbiya68x2i4cnmcci58r8k0mwrx6mw1";
|
sha256 = "1qjab3dpia1jdlszz3xxix76lqrm4zbmqzd9ymld7h06awzsg2vh";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ groff utillinux ];
|
nativeBuildInputs = [ groff utillinux ];
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"version": "12.8.5",
|
"version": "12.8.6",
|
||||||
"repo_hash": "1y5606p793w1js39420jcd2bj42cripczgrdxgg2cq0r2kq8axk8",
|
"repo_hash": "0plcigppmg6ckmq8myj3m9adshdvqj7czx8fms71bsa9zx060wib",
|
||||||
"owner": "gitlab-org",
|
"owner": "gitlab-org",
|
||||||
"repo": "gitlab",
|
"repo": "gitlab",
|
||||||
"rev": "v12.8.5-ee",
|
"rev": "v12.8.6-ee",
|
||||||
"passthru": {
|
"passthru": {
|
||||||
"GITALY_SERVER_VERSION": "12.8.5",
|
"GITALY_SERVER_VERSION": "12.8.6",
|
||||||
"GITLAB_PAGES_VERSION": "1.16.0",
|
"GITLAB_PAGES_VERSION": "1.16.0",
|
||||||
"GITLAB_SHELL_VERSION": "11.0.0",
|
"GITLAB_SHELL_VERSION": "11.0.0",
|
||||||
"GITLAB_WORKHORSE_VERSION": "8.21.0"
|
"GITLAB_WORKHORSE_VERSION": "8.21.0"
|
||||||
|
@ -28,14 +28,14 @@ let
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
in buildGoPackage rec {
|
in buildGoPackage rec {
|
||||||
version = "12.8.5";
|
version = "12.8.6";
|
||||||
pname = "gitaly";
|
pname = "gitaly";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
owner = "gitlab-org";
|
owner = "gitlab-org";
|
||||||
repo = "gitaly";
|
repo = "gitaly";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "19pwffncihhywfac7ybry38vyj3pmdz66g5nqrvwn4xxw7ypvd24";
|
sha256 = "1rf9qmyjllkwkyi7la1dzyjh0z9sw21zdzihd7v9ngwqssfk5zfk";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Fix a check which assumes that hook files are writeable by their
|
# Fix a check which assumes that hook files are writeable by their
|
||||||
|
@ -175,6 +175,8 @@ def update_gitaly():
|
|||||||
f.write(repo.get_file(fn, f"v{gitaly_server_version}"))
|
f.write(repo.get_file(fn, f"v{gitaly_server_version}"))
|
||||||
|
|
||||||
subprocess.check_output(['bundix'], cwd=gitaly_dir)
|
subprocess.check_output(['bundix'], cwd=gitaly_dir)
|
||||||
|
|
||||||
|
os.environ['GOROOT'] = ""
|
||||||
subprocess.check_output(['vgo2nix'], cwd=gitaly_dir)
|
subprocess.check_output(['vgo2nix'], cwd=gitaly_dir)
|
||||||
|
|
||||||
for fn in ['go.mod', 'go.sum']:
|
for fn in ['go.mod', 'go.sum']:
|
||||||
@ -197,6 +199,7 @@ def update_gitlab_shell():
|
|||||||
with open(gitlab_shell_dir / fn, 'w') as f:
|
with open(gitlab_shell_dir / fn, 'w') as f:
|
||||||
f.write(repo.get_file(fn, f"v{gitlab_shell_version}"))
|
f.write(repo.get_file(fn, f"v{gitlab_shell_version}"))
|
||||||
|
|
||||||
|
os.environ['GOROOT'] = ""
|
||||||
subprocess.check_output(['vgo2nix'], cwd=gitlab_shell_dir)
|
subprocess.check_output(['vgo2nix'], cwd=gitlab_shell_dir)
|
||||||
|
|
||||||
for fn in ['go.mod', 'go.sum']:
|
for fn in ['go.mod', 'go.sum']:
|
||||||
@ -217,6 +220,7 @@ def update_gitlab_workhorse():
|
|||||||
with open(gitlab_workhorse_dir / fn, 'w') as f:
|
with open(gitlab_workhorse_dir / fn, 'w') as f:
|
||||||
f.write(repo.get_file(fn, f"v{gitlab_workhorse_version}"))
|
f.write(repo.get_file(fn, f"v{gitlab_workhorse_version}"))
|
||||||
|
|
||||||
|
os.environ['GOROOT'] = ""
|
||||||
subprocess.check_output(['vgo2nix'], cwd=gitlab_workhorse_dir)
|
subprocess.check_output(['vgo2nix'], cwd=gitlab_workhorse_dir)
|
||||||
|
|
||||||
for fn in ['go.mod', 'go.sum']:
|
for fn in ['go.mod', 'go.sum']:
|
||||||
|
@ -206,9 +206,9 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
docker_19_03 = makeOverridable dockerGen {
|
docker_19_03 = makeOverridable dockerGen {
|
||||||
version = "19.03.7";
|
version = "19.03.8";
|
||||||
rev = "7141c199a2edb2a90b778175f836f9dd2a22c95a";
|
rev = "afacb8b7f0d8d4f9d2a8e8736e9c993e672b41f3";
|
||||||
sha256 = "1h1hrp6cw3ah2gaq2vfdd1d9vh7gyf7rs6bdxwpxk9ixc19fxsm4";
|
sha256 = "15iq16rlnkw78lvapcfpbnsnxhdjbvfvgzg3xzxhpdg1dmq40b6j";
|
||||||
runcRev = "dc9208a3303feef5b3839f4323d9beb36df0a9dd"; # v1.0.0-rc10
|
runcRev = "dc9208a3303feef5b3839f4323d9beb36df0a9dd"; # v1.0.0-rc10
|
||||||
runcSha256 = "0pi3rvj585997m4z9ljkxz2z9yxf9p2jr0pmqbqrc7bc95f5hagk";
|
runcSha256 = "0pi3rvj585997m4z9ljkxz2z9yxf9p2jr0pmqbqrc7bc95f5hagk";
|
||||||
containerdRev = "7ad184331fa3e55e52b890ea95e65ba581ae3429"; # v1.2.13
|
containerdRev = "7ad184331fa3e55e52b890ea95e65ba581ae3429"; # v1.2.13
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.12.c";
|
version = "2.12.c.1";
|
||||||
pname = "i3lock-color";
|
pname = "i3lock-color";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "PandorasFox";
|
owner = "PandorasFox";
|
||||||
repo = "i3lock-color";
|
repo = "i3lock-color";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "08fhnchf187b73h52xgzb86g6byzxz085zs9galsvl687g5zxk34";
|
sha256 = "1q09cfgkikqbrkk1kljg8dsgbs5nacixhdqaww18h94hmlnbbssc";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||||
@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
|
|||||||
- clock: time/date with configurable format
|
- clock: time/date with configurable format
|
||||||
- keyboard-layout
|
- keyboard-layout
|
||||||
'';
|
'';
|
||||||
homepage = https://github.com/PandorasFox/i3lock-color;
|
homepage = "https://github.com/PandorasFox/i3lock-color";
|
||||||
maintainers = with maintainers; [ malyn ];
|
maintainers = with maintainers; [ malyn ];
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{stdenv, fetchzip}:
|
{stdenv, fetchzip}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "3.3";
|
version = "3.5";
|
||||||
in fetchzip {
|
in fetchzip {
|
||||||
name = "jost-${version}";
|
name = "jost-${version}";
|
||||||
url = "https://github.com/indestructible-type/Jost/releases/download/${version}/Jost.zip";
|
url = "https://github.com/indestructible-type/Jost/releases/download/${version}/Jost.zip";
|
||||||
@ -11,7 +11,7 @@ in fetchzip {
|
|||||||
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
|
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
|
||||||
'';
|
'';
|
||||||
|
|
||||||
sha256="00nrhs3aif2hc4yhjhbn9ywmydl2w0g0hv5m5is8gv7wx8yi2j9z";
|
sha256="0l78vhmbsyfmrva5wc76pskhxqryyg8q5xddpj9g5wqsddy525dq";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/indestructible-type/Jost;
|
homepage = https://github.com/indestructible-type/Jost;
|
||||||
|
@ -245,6 +245,12 @@ stdenv.mkDerivation ({
|
|||||||
|
|
||||||
inherit (stdenv) is64bit;
|
inherit (stdenv) is64bit;
|
||||||
|
|
||||||
|
# In this particular combination it stopped creating lib output at all.
|
||||||
|
# TODO: perhaps find a better fix? (ideally understand what's going on)
|
||||||
|
postFixup = if crossStageStatic && targetPlatform.isMusl && targetPlatform.is32bit
|
||||||
|
then ''mkdir "$lib"''
|
||||||
|
else null;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://gcc.gnu.org/;
|
homepage = https://gcc.gnu.org/;
|
||||||
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||||
|
@ -10,11 +10,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "sbcl";
|
pname = "sbcl";
|
||||||
version = "2.0.1";
|
version = "2.0.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
|
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
|
||||||
sha256 = "1s2nrq26czl7f8jpa9qjpmdqbzvldvf4c7c1z1c438v4f85xcl44";
|
sha256 = "07pyzdjnhcpqwvr3rrk4i18maqdywbq1qj93fnpx1h4b7dp08r28";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [texinfo];
|
buildInputs = [texinfo];
|
||||||
|
@ -81,12 +81,12 @@ self: super: {
|
|||||||
|
|
||||||
# The Hackage tarball is purposefully broken, because it's not intended to be, like, useful.
|
# The Hackage tarball is purposefully broken, because it's not intended to be, like, useful.
|
||||||
# https://git-annex.branchable.com/bugs/bash_completion_file_is_missing_in_the_6.20160527_tarball_on_hackage/
|
# https://git-annex.branchable.com/bugs/bash_completion_file_is_missing_in_the_6.20160527_tarball_on_hackage/
|
||||||
git-annex = (overrideSrc (appendPatch super.git-annex ./patches/git-annex-fix-build-with-ghc-8.8.x.patch) {
|
git-annex = (overrideSrc super.git-annex {
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchgit {
|
||||||
name = "git-annex-${super.git-annex.version}-src";
|
name = "git-annex-${super.git-annex.version}-src";
|
||||||
url = "git://git-annex.branchable.com/";
|
url = "git://git-annex.branchable.com/";
|
||||||
rev = "refs/tags/" + super.git-annex.version;
|
rev = "refs/tags/" + super.git-annex.version;
|
||||||
sha256 = "0pl0yip7zp4i78cj9jqkmm33wqaaaxjq3ggnfmv95y79yijd6yh4";
|
sha256 = "0y2qcjahi705c6nnypqpa5w3bzyzk4kqvbwfnpiaxzk5vna589gg";
|
||||||
};
|
};
|
||||||
}).override {
|
}).override {
|
||||||
dbus = if pkgs.stdenv.isLinux then self.dbus else null;
|
dbus = if pkgs.stdenv.isLinux then self.dbus else null;
|
||||||
@ -376,6 +376,7 @@ self: super: {
|
|||||||
Rlang-QQ = dontCheck super.Rlang-QQ;
|
Rlang-QQ = dontCheck super.Rlang-QQ;
|
||||||
safecopy = dontCheck super.safecopy;
|
safecopy = dontCheck super.safecopy;
|
||||||
sai-shape-syb = dontCheck super.sai-shape-syb;
|
sai-shape-syb = dontCheck super.sai-shape-syb;
|
||||||
|
saltine = dontCheck super.saltine; # https://github.com/tel/saltine/pull/56
|
||||||
scp-streams = dontCheck super.scp-streams;
|
scp-streams = dontCheck super.scp-streams;
|
||||||
sdl2 = dontCheck super.sdl2; # the test suite needs an x server
|
sdl2 = dontCheck super.sdl2; # the test suite needs an x server
|
||||||
sdl2-ttf = dontCheck super.sdl2-ttf; # as of version 0.2.1, the test suite requires user intervention
|
sdl2-ttf = dontCheck super.sdl2-ttf; # as of version 0.2.1, the test suite requires user intervention
|
||||||
@ -1219,7 +1220,13 @@ self: super: {
|
|||||||
temporary-resourcet = doJailbreak super.temporary-resourcet;
|
temporary-resourcet = doJailbreak super.temporary-resourcet;
|
||||||
|
|
||||||
# Requires dhall >= 1.23.0
|
# Requires dhall >= 1.23.0
|
||||||
ats-pkg = super.ats-pkg.override { dhall = self.dhall_1_29_0; };
|
ats-pkg = dontCheck (super.ats-pkg.override { dhall = self.dhall_1_29_0; });
|
||||||
|
|
||||||
|
# fake a home dir and capture generated man page
|
||||||
|
ats-format = overrideCabal super.ats-format (old : {
|
||||||
|
preConfigure = "export HOME=$PWD";
|
||||||
|
postBuild = "mv .local/share $out";
|
||||||
|
});
|
||||||
|
|
||||||
# Test suite doesn't work with current QuickCheck
|
# Test suite doesn't work with current QuickCheck
|
||||||
# https://github.com/pruvisto/heap/issues/11
|
# https://github.com/pruvisto/heap/issues/11
|
||||||
@ -1467,4 +1474,26 @@ self: super: {
|
|||||||
# haskell-ci-0.8 needs cabal-install-parsers ==0.1, but we have 0.2.
|
# haskell-ci-0.8 needs cabal-install-parsers ==0.1, but we have 0.2.
|
||||||
haskell-ci = doJailbreak super.haskell-ci;
|
haskell-ci = doJailbreak super.haskell-ci;
|
||||||
|
|
||||||
|
persistent-mysql = dontCheck super.persistent-mysql;
|
||||||
|
|
||||||
|
# Fix EdisonAPI and EdisonCore for GHC 8.8:
|
||||||
|
# https://github.com/robdockins/edison/pull/16
|
||||||
|
EdisonAPI = appendPatch super.EdisonAPI (pkgs.fetchpatch {
|
||||||
|
url = "https://github.com/robdockins/edison/pull/16/commits/8da6c0f7d8666766e2f0693425c347c0adb492dc.patch";
|
||||||
|
postFetch = ''
|
||||||
|
${pkgs.patchutils}/bin/filterdiff --include='a/edison-api/*' --strip=1 "$out" > "$tmpfile"
|
||||||
|
mv "$tmpfile" "$out"
|
||||||
|
'';
|
||||||
|
sha256 = "0yi5pz039lcm4pl9xnl6krqxyqq5rgb5b6m09w0sfy06x0n4x213";
|
||||||
|
});
|
||||||
|
|
||||||
|
EdisonCore = appendPatch super.EdisonCore (pkgs.fetchpatch {
|
||||||
|
url = "https://github.com/robdockins/edison/pull/16/commits/8da6c0f7d8666766e2f0693425c347c0adb492dc.patch";
|
||||||
|
postFetch = ''
|
||||||
|
${pkgs.patchutils}/bin/filterdiff --include='a/edison-core/*' --strip=1 "$out" > "$tmpfile"
|
||||||
|
mv "$tmpfile" "$out"
|
||||||
|
'';
|
||||||
|
sha256 = "097wqn8hxsr50b9mhndg5pjim5jma2ym4ylpibakmmb5m98n17zp";
|
||||||
|
});
|
||||||
|
|
||||||
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
|
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# pkgs/development/haskell-modules/configuration-hackage2nix.yaml
|
# pkgs/development/haskell-modules/configuration-hackage2nix.yaml
|
||||||
|
|
||||||
compiler: ghc-8.8.2
|
compiler: ghc-8.8.3
|
||||||
|
|
||||||
core-packages:
|
core-packages:
|
||||||
- array-0.5.4.0
|
- array-0.5.4.0
|
||||||
@ -10,23 +10,23 @@ core-packages:
|
|||||||
- Cabal-3.0.1.0
|
- Cabal-3.0.1.0
|
||||||
- containers-0.6.2.1
|
- containers-0.6.2.1
|
||||||
- deepseq-1.4.4.0
|
- deepseq-1.4.4.0
|
||||||
- directory-1.3.4.0
|
- directory-1.3.6.0
|
||||||
- filepath-1.4.2.1
|
- filepath-1.4.2.1
|
||||||
- ghc-8.8.2
|
- ghc-8.8.3
|
||||||
- ghc-boot-8.8.2
|
- ghc-boot-8.8.3
|
||||||
- ghc-boot-th-8.8.2
|
- ghc-boot-th-8.8.3
|
||||||
- ghc-compact-0.1.0.0
|
- ghc-compact-0.1.0.0
|
||||||
- ghc-heap-8.8.2
|
- ghc-heap-8.8.3
|
||||||
- ghc-prim-0.5.3
|
- ghc-prim-0.5.3
|
||||||
- ghci-8.8.2
|
- ghci-8.8.3
|
||||||
- haskeline-0.7.5.0
|
- haskeline-0.7.5.0
|
||||||
- hpc-0.6.0.3
|
- hpc-0.6.0.3
|
||||||
- integer-gmp-1.0.2.0
|
- integer-gmp-1.0.2.0
|
||||||
- libiserv-8.8.2
|
- libiserv-8.8.3
|
||||||
- mtl-2.2.2
|
- mtl-2.2.2
|
||||||
- parsec-3.1.14.0
|
- parsec-3.1.14.0
|
||||||
- pretty-1.1.3.6
|
- pretty-1.1.3.6
|
||||||
- process-1.6.7.0
|
- process-1.6.8.0
|
||||||
- rts-1.0
|
- rts-1.0
|
||||||
- stm-2.5.0.0
|
- stm-2.5.0.0
|
||||||
- template-haskell-2.15.0.0
|
- template-haskell-2.15.0.0
|
||||||
@ -76,7 +76,7 @@ default-package-overrides:
|
|||||||
# gi-gdkx11-4.x requires gtk-4.x, which is still under development and
|
# gi-gdkx11-4.x requires gtk-4.x, which is still under development and
|
||||||
# not yet available in Nixpkgs
|
# not yet available in Nixpkgs
|
||||||
- gi-gdkx11 < 4
|
- gi-gdkx11 < 4
|
||||||
# LTS Haskell 15.2
|
# LTS Haskell 15.3
|
||||||
- abstract-deque ==0.3
|
- abstract-deque ==0.3
|
||||||
- abstract-par ==0.3.3
|
- abstract-par ==0.3.3
|
||||||
- AC-Angle ==1.0
|
- AC-Angle ==1.0
|
||||||
@ -361,7 +361,7 @@ default-package-overrides:
|
|||||||
- bytes ==0.17
|
- bytes ==0.17
|
||||||
- byteset ==0.1.1.0
|
- byteset ==0.1.1.0
|
||||||
- byteslice ==0.2.2.0
|
- byteslice ==0.2.2.0
|
||||||
- bytesmith ==0.3.5.0
|
- bytesmith ==0.3.6.0
|
||||||
- bytestring-builder ==0.10.8.2.0
|
- bytestring-builder ==0.10.8.2.0
|
||||||
- bytestring-conversion ==0.3.1
|
- bytestring-conversion ==0.3.1
|
||||||
- bytestring-lexing ==0.5.0.2
|
- bytestring-lexing ==0.5.0.2
|
||||||
@ -407,7 +407,7 @@ default-package-overrides:
|
|||||||
- Chart-diagrams ==1.9.3
|
- Chart-diagrams ==1.9.3
|
||||||
- chaselev-deque ==0.5.0.5
|
- chaselev-deque ==0.5.0.5
|
||||||
- ChasingBottoms ==1.3.1.7
|
- ChasingBottoms ==1.3.1.7
|
||||||
- checkers ==0.5.2
|
- checkers ==0.5.4
|
||||||
- checksum ==0.0
|
- checksum ==0.0
|
||||||
- chimera ==0.3.0.0
|
- chimera ==0.3.0.0
|
||||||
- choice ==0.2.2
|
- choice ==0.2.2
|
||||||
@ -444,7 +444,7 @@ default-package-overrides:
|
|||||||
- co-log ==0.4.0.0
|
- co-log ==0.4.0.0
|
||||||
- co-log-core ==0.2.1.0
|
- co-log-core ==0.2.1.0
|
||||||
- co-log-polysemy ==0.0.1.1
|
- co-log-polysemy ==0.0.1.1
|
||||||
- Color ==0.1.3.1
|
- Color ==0.1.4
|
||||||
- colorful-monoids ==0.2.1.2
|
- colorful-monoids ==0.2.1.2
|
||||||
- colorize-haskell ==1.0.1
|
- colorize-haskell ==1.0.1
|
||||||
- colour ==2.3.5
|
- colour ==2.3.5
|
||||||
@ -577,7 +577,7 @@ default-package-overrides:
|
|||||||
- data-tree-print ==0.1.0.2
|
- data-tree-print ==0.1.0.2
|
||||||
- dataurl ==0.1.0.0
|
- dataurl ==0.1.0.0
|
||||||
- DAV ==1.3.4
|
- DAV ==1.3.4
|
||||||
- dbus ==1.2.11
|
- dbus ==1.2.12
|
||||||
- debian-build ==0.10.2.0
|
- debian-build ==0.10.2.0
|
||||||
- debug-trace-var ==0.2.0
|
- debug-trace-var ==0.2.0
|
||||||
- dec ==0.0.3
|
- dec ==0.0.3
|
||||||
@ -707,7 +707,7 @@ default-package-overrides:
|
|||||||
- extended-reals ==0.2.3.0
|
- extended-reals ==0.2.3.0
|
||||||
- extensible-effects ==5.0.0.1
|
- extensible-effects ==5.0.0.1
|
||||||
- extensible-exceptions ==0.1.1.4
|
- extensible-exceptions ==0.1.1.4
|
||||||
- extra ==1.6.20
|
- extra ==1.6.21
|
||||||
- extractable-singleton ==0.0.1
|
- extractable-singleton ==0.0.1
|
||||||
- extrapolate ==0.4.1
|
- extrapolate ==0.4.1
|
||||||
- fail ==4.9.0.0
|
- fail ==4.9.0.0
|
||||||
@ -785,12 +785,12 @@ default-package-overrides:
|
|||||||
- funcmp ==1.9
|
- funcmp ==1.9
|
||||||
- function-builder ==0.3.0.1
|
- function-builder ==0.3.0.1
|
||||||
- functor-classes-compat ==1
|
- functor-classes-compat ==1
|
||||||
- fused-effects ==1.0.0.1
|
- fused-effects ==1.0.2.0
|
||||||
- fusion-plugin ==0.1.1
|
- fusion-plugin ==0.1.1
|
||||||
- fusion-plugin-types ==0.1.0
|
- fusion-plugin-types ==0.1.0
|
||||||
- fuzzcheck ==0.1.1
|
- fuzzcheck ==0.1.1
|
||||||
- fuzzy ==0.1.0.0
|
- fuzzy ==0.1.0.0
|
||||||
- fuzzy-dates ==0.1.1.1
|
- fuzzy-dates ==0.1.1.2
|
||||||
- fuzzyset ==0.2.0
|
- fuzzyset ==0.2.0
|
||||||
- fuzzy-time ==0.1.0.0
|
- fuzzy-time ==0.1.0.0
|
||||||
- gauge ==0.2.5
|
- gauge ==0.2.5
|
||||||
@ -868,9 +868,9 @@ default-package-overrides:
|
|||||||
- gi-pango ==1.0.22
|
- gi-pango ==1.0.22
|
||||||
- giphy-api ==0.7.0.0
|
- giphy-api ==0.7.0.0
|
||||||
- githash ==0.1.3.3
|
- githash ==0.1.3.3
|
||||||
- github-rest ==1.0.1
|
- github-rest ==1.0.2
|
||||||
- github-types ==0.2.1
|
- github-types ==0.2.1
|
||||||
- gitlab-haskell ==0.1.5
|
- gitlab-haskell ==0.1.7
|
||||||
- gitrev ==1.3.1
|
- gitrev ==1.3.1
|
||||||
- gi-xlib ==2.0.8
|
- gi-xlib ==2.0.8
|
||||||
- gl ==0.9
|
- gl ==0.9
|
||||||
@ -1059,8 +1059,8 @@ default-package-overrides:
|
|||||||
- hunit-dejafu ==2.0.0.1
|
- hunit-dejafu ==2.0.0.1
|
||||||
- hvect ==0.4.0.0
|
- hvect ==0.4.0.0
|
||||||
- hvega ==0.5.0.0
|
- hvega ==0.5.0.0
|
||||||
- hw-balancedparens ==0.3.0.4
|
- hw-balancedparens ==0.3.0.5
|
||||||
- hw-bits ==0.7.1.0
|
- hw-bits ==0.7.1.2
|
||||||
- hw-conduit ==0.2.0.6
|
- hw-conduit ==0.2.0.6
|
||||||
- hw-conduit-merges ==0.2.0.0
|
- hw-conduit-merges ==0.2.0.0
|
||||||
- hw-diagnostics ==0.0.0.7
|
- hw-diagnostics ==0.0.0.7
|
||||||
@ -1287,7 +1287,7 @@ default-package-overrides:
|
|||||||
- markdown-unlit ==0.5.0
|
- markdown-unlit ==0.5.0
|
||||||
- markov-chain ==0.0.3.4
|
- markov-chain ==0.0.3.4
|
||||||
- massiv ==0.4.5.0
|
- massiv ==0.4.5.0
|
||||||
- massiv-io ==0.2.0.0
|
- massiv-io ==0.2.1.0
|
||||||
- massiv-test ==0.1.2
|
- massiv-test ==0.1.2
|
||||||
- mathexpr ==0.3.0.0
|
- mathexpr ==0.3.0.0
|
||||||
- math-functions ==0.3.3.0
|
- math-functions ==0.3.3.0
|
||||||
@ -1331,9 +1331,9 @@ default-package-overrides:
|
|||||||
- mime-types ==0.1.0.9
|
- mime-types ==0.1.0.9
|
||||||
- mini-egison ==0.1.6
|
- mini-egison ==0.1.6
|
||||||
- minimal-configuration ==0.1.4
|
- minimal-configuration ==0.1.4
|
||||||
- minimorph ==0.2.1.0
|
- minimorph ==0.2.2.0
|
||||||
- minio-hs ==1.5.2
|
- minio-hs ==1.5.2
|
||||||
- miniutter ==0.5.0.0
|
- miniutter ==0.5.1.0
|
||||||
- mintty ==0.1.2
|
- mintty ==0.1.2
|
||||||
- miso ==1.4.0.0
|
- miso ==1.4.0.0
|
||||||
- missing-foreign ==0.1.1
|
- missing-foreign ==0.1.1
|
||||||
@ -1356,7 +1356,7 @@ default-package-overrides:
|
|||||||
- monad-extras ==0.6.0
|
- monad-extras ==0.6.0
|
||||||
- monadic-arrays ==0.2.2
|
- monadic-arrays ==0.2.2
|
||||||
- monad-journal ==0.8.1
|
- monad-journal ==0.8.1
|
||||||
- monad-logger ==0.3.31
|
- monad-logger ==0.3.32
|
||||||
- monad-logger-json ==0.1.0.0
|
- monad-logger-json ==0.1.0.0
|
||||||
- monad-logger-prefix ==0.1.11
|
- monad-logger-prefix ==0.1.11
|
||||||
- monad-loops ==0.4.3
|
- monad-loops ==0.4.3
|
||||||
@ -1551,7 +1551,7 @@ default-package-overrides:
|
|||||||
- persistent-sqlite ==2.10.6.2
|
- persistent-sqlite ==2.10.6.2
|
||||||
- persistent-template ==2.8.2.3
|
- persistent-template ==2.8.2.3
|
||||||
- persistent-test ==2.0.3.1
|
- persistent-test ==2.0.3.1
|
||||||
- persistent-typed-db ==0.1.0.0
|
- persistent-typed-db ==0.1.0.1
|
||||||
- pg-harness-client ==0.6.0
|
- pg-harness-client ==0.6.0
|
||||||
- pgp-wordlist ==0.1.0.3
|
- pgp-wordlist ==0.1.0.3
|
||||||
- pg-transact ==0.3.1.1
|
- pg-transact ==0.3.1.1
|
||||||
@ -1739,7 +1739,7 @@ default-package-overrides:
|
|||||||
- rerebase ==1.4.1
|
- rerebase ==1.4.1
|
||||||
- resolv ==0.1.1.3
|
- resolv ==0.1.1.3
|
||||||
- resource-pool ==0.2.3.2
|
- resource-pool ==0.2.3.2
|
||||||
- resourcet ==1.2.2
|
- resourcet ==1.2.3
|
||||||
- result ==0.2.6.0
|
- result ==0.2.6.0
|
||||||
- rethinkdb-client-driver ==0.0.25
|
- rethinkdb-client-driver ==0.0.25
|
||||||
- retry ==0.8.1.0
|
- retry ==0.8.1.0
|
||||||
@ -1747,7 +1747,7 @@ default-package-overrides:
|
|||||||
- rfc1751 ==0.1.2
|
- rfc1751 ==0.1.2
|
||||||
- rfc5051 ==0.1.0.4
|
- rfc5051 ==0.1.0.4
|
||||||
- rigel-viz ==0.2.0.0
|
- rigel-viz ==0.2.0.0
|
||||||
- rio ==0.1.14.0
|
- rio ==0.1.14.1
|
||||||
- rio-orphans ==0.1.1.0
|
- rio-orphans ==0.1.1.0
|
||||||
- rio-prettyprint ==0.1.0.0
|
- rio-prettyprint ==0.1.0.0
|
||||||
- roc-id ==0.1.0.0
|
- roc-id ==0.1.0.0
|
||||||
@ -1792,7 +1792,7 @@ default-package-overrides:
|
|||||||
- sdl2-gfx ==0.2
|
- sdl2-gfx ==0.2
|
||||||
- sdl2-image ==2.0.0
|
- sdl2-image ==2.0.0
|
||||||
- sdl2-mixer ==1.1.0
|
- sdl2-mixer ==1.1.0
|
||||||
- sdl2-ttf ==2.1.0
|
- sdl2-ttf ==2.1.1
|
||||||
- search-algorithms ==0.3.1
|
- search-algorithms ==0.3.1
|
||||||
- secp256k1-haskell ==0.1.8
|
- secp256k1-haskell ==0.1.8
|
||||||
- securemem ==0.1.10
|
- securemem ==0.1.10
|
||||||
@ -2178,7 +2178,7 @@ default-package-overrides:
|
|||||||
- unix-bytestring ==0.3.7.3
|
- unix-bytestring ==0.3.7.3
|
||||||
- unix-compat ==0.5.2
|
- unix-compat ==0.5.2
|
||||||
- unix-time ==0.4.7
|
- unix-time ==0.4.7
|
||||||
- unliftio ==0.2.12
|
- unliftio ==0.2.12.1
|
||||||
- unliftio-core ==0.1.2.0
|
- unliftio-core ==0.1.2.0
|
||||||
- unliftio-pool ==0.2.1.0
|
- unliftio-pool ==0.2.1.0
|
||||||
- unlit ==0.4.0.0
|
- unlit ==0.4.0.0
|
||||||
@ -2239,7 +2239,7 @@ default-package-overrides:
|
|||||||
- wai-app-static ==3.1.7.1
|
- wai-app-static ==3.1.7.1
|
||||||
- wai-conduit ==3.0.0.4
|
- wai-conduit ==3.0.0.4
|
||||||
- wai-cors ==0.2.7
|
- wai-cors ==0.2.7
|
||||||
- wai-enforce-https ==0.0.1
|
- wai-enforce-https ==0.0.2
|
||||||
- wai-eventsource ==3.0.0
|
- wai-eventsource ==3.0.0
|
||||||
- wai-extra ==3.0.29.1
|
- wai-extra ==3.0.29.1
|
||||||
- wai-handler-launch ==3.0.3.1
|
- wai-handler-launch ==3.0.3.1
|
||||||
@ -2324,7 +2324,7 @@ default-package-overrides:
|
|||||||
- yesod-auth ==1.6.9
|
- yesod-auth ==1.6.9
|
||||||
- yesod-auth-hashdb ==1.7.1.2
|
- yesod-auth-hashdb ==1.7.1.2
|
||||||
- yesod-bin ==1.6.0.4
|
- yesod-bin ==1.6.0.4
|
||||||
- yesod-core ==1.6.17.2
|
- yesod-core ==1.6.17.3
|
||||||
- yesod-form ==1.6.7
|
- yesod-form ==1.6.7
|
||||||
- yesod-gitrev ==0.2.1
|
- yesod-gitrev ==0.2.1
|
||||||
- yesod-newsfeed ==1.7.0.0
|
- yesod-newsfeed ==1.7.0.0
|
||||||
@ -2344,7 +2344,7 @@ default-package-overrides:
|
|||||||
- zeromq4-haskell ==0.8.0
|
- zeromq4-haskell ==0.8.0
|
||||||
- zeromq4-patterns ==0.3.1.0
|
- zeromq4-patterns ==0.3.1.0
|
||||||
- zim-parser ==0.2.1.0
|
- zim-parser ==0.2.1.0
|
||||||
- zip ==1.3.1
|
- zip ==1.3.2
|
||||||
- zip-archive ==0.4.1
|
- zip-archive ==0.4.1
|
||||||
- zippers ==0.3
|
- zippers ==0.3
|
||||||
- zip-stream ==0.2.0.1
|
- zip-stream ==0.2.0.1
|
||||||
@ -2847,6 +2847,7 @@ broken-packages:
|
|||||||
- arbor-monad-metric
|
- arbor-monad-metric
|
||||||
- arbor-monad-metric-datadog
|
- arbor-monad-metric-datadog
|
||||||
- arbtt
|
- arbtt
|
||||||
|
- archive-tar-bytestring
|
||||||
- archiver
|
- archiver
|
||||||
- archlinux
|
- archlinux
|
||||||
- archlinux-web
|
- archlinux-web
|
||||||
@ -2920,8 +2921,6 @@ broken-packages:
|
|||||||
- atomic-primops-vector
|
- atomic-primops-vector
|
||||||
- atomo
|
- atomo
|
||||||
- atp-haskell
|
- atp-haskell
|
||||||
- ats-format
|
|
||||||
- ats-pkg
|
|
||||||
- ats-setup
|
- ats-setup
|
||||||
- ats-storable
|
- ats-storable
|
||||||
- attempt
|
- attempt
|
||||||
@ -3179,6 +3178,8 @@ broken-packages:
|
|||||||
- bitcoin-rpc
|
- bitcoin-rpc
|
||||||
- bitcoin-script
|
- bitcoin-script
|
||||||
- bitcoin-tx
|
- bitcoin-tx
|
||||||
|
- bitcoind-regtest
|
||||||
|
- bitcoind-rpc
|
||||||
- Bitly
|
- Bitly
|
||||||
- bitly-cli
|
- bitly-cli
|
||||||
- bitmaps
|
- bitmaps
|
||||||
@ -3427,6 +3428,7 @@ broken-packages:
|
|||||||
- carte
|
- carte
|
||||||
- cartel
|
- cartel
|
||||||
- Cartesian
|
- Cartesian
|
||||||
|
- cas-store
|
||||||
- casa-abbreviations-and-acronyms
|
- casa-abbreviations-and-acronyms
|
||||||
- casadi-bindings
|
- casadi-bindings
|
||||||
- casadi-bindings-control
|
- casadi-bindings-control
|
||||||
@ -4383,8 +4385,6 @@ broken-packages:
|
|||||||
- edentv
|
- edentv
|
||||||
- edge
|
- edge
|
||||||
- edges
|
- edges
|
||||||
- EdisonAPI
|
|
||||||
- EdisonCore
|
|
||||||
- edit
|
- edit
|
||||||
- edit-lenses
|
- edit-lenses
|
||||||
- editable
|
- editable
|
||||||
@ -8156,7 +8156,6 @@ broken-packages:
|
|||||||
- persistent-map
|
- persistent-map
|
||||||
- persistent-migration
|
- persistent-migration
|
||||||
- persistent-mongoDB
|
- persistent-mongoDB
|
||||||
- persistent-mysql
|
|
||||||
- persistent-mysql-haskell
|
- persistent-mysql-haskell
|
||||||
- persistent-protobuf
|
- persistent-protobuf
|
||||||
- persistent-ratelimit
|
- persistent-ratelimit
|
||||||
@ -8979,7 +8978,6 @@ broken-packages:
|
|||||||
- sajson
|
- sajson
|
||||||
- salak-toml
|
- salak-toml
|
||||||
- Salsa
|
- Salsa
|
||||||
- saltine
|
|
||||||
- saltine-quickcheck
|
- saltine-quickcheck
|
||||||
- salvia
|
- salvia
|
||||||
- salvia-demo
|
- salvia-demo
|
||||||
@ -9377,7 +9375,6 @@ broken-packages:
|
|||||||
- smuggler
|
- smuggler
|
||||||
- snake
|
- snake
|
||||||
- snake-game
|
- snake-game
|
||||||
- snap
|
|
||||||
- snap-accept
|
- snap-accept
|
||||||
- snap-auth-cli
|
- snap-auth-cli
|
||||||
- snap-blaze-clay
|
- snap-blaze-clay
|
||||||
@ -10962,5 +10959,3 @@ broken-packages:
|
|||||||
- ztar
|
- ztar
|
||||||
- zuramaru
|
- zuramaru
|
||||||
- Zwaluw
|
- Zwaluw
|
||||||
- zxcvbn-dvorak
|
|
||||||
- zxcvbn-hs
|
|
||||||
|
1779
pkgs/development/haskell-modules/hackage-packages.nix
generated
1779
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load Diff
@ -124,7 +124,7 @@ let
|
|||||||
sha256Arg = if sha256 == null then "--sha256=" else ''--sha256="${sha256}"'';
|
sha256Arg = if sha256 == null then "--sha256=" else ''--sha256="${sha256}"'';
|
||||||
in buildPackages.stdenv.mkDerivation {
|
in buildPackages.stdenv.mkDerivation {
|
||||||
name = "cabal2nix-${name}";
|
name = "cabal2nix-${name}";
|
||||||
nativeBuildInputs = [ buildPackages.cabal2nix ];
|
nativeBuildInputs = [ buildPackages.cabal2nix-unwrapped ];
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
allowSubstitutes = false;
|
allowSubstitutes = false;
|
||||||
phases = ["installPhase"];
|
phases = ["installPhase"];
|
||||||
|
@ -1,125 +0,0 @@
|
|||||||
From f8d8959e43abd88c5e977079f0948e45cf4c0b0c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Simons <simons@cryp.to>
|
|
||||||
Date: Fri, 28 Feb 2020 11:56:48 +0100
|
|
||||||
Subject: [PATCH] Fix build with ghc-8.8.x.
|
|
||||||
|
|
||||||
The 'fail' method has been moved to the 'MonadFail' class. I made the changes
|
|
||||||
so that the code still compiles with previous versions of 'base' that don't
|
|
||||||
have the new MonadFail class exported by Prelude yet.
|
|
||||||
---
|
|
||||||
CmdLine/GitAnnex/Options.hs | 5 +++--
|
|
||||||
Command/Expire.hs | 5 +++--
|
|
||||||
Command/Init.hs | 7 ++++---
|
|
||||||
Utility/HumanTime.hs | 5 +++--
|
|
||||||
4 files changed, 13 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/CmdLine/GitAnnex/Options.hs b/CmdLine/GitAnnex/Options.hs
|
|
||||||
index 030c83dd5..a9a36d76f 100644
|
|
||||||
--- a/CmdLine/GitAnnex/Options.hs
|
|
||||||
+++ b/CmdLine/GitAnnex/Options.hs
|
|
||||||
@@ -9,6 +9,7 @@
|
|
||||||
|
|
||||||
module CmdLine.GitAnnex.Options where
|
|
||||||
|
|
||||||
+import Control.Monad.Fail as Fail ( MonadFail(..) )
|
|
||||||
import Options.Applicative
|
|
||||||
import qualified Data.Map as M
|
|
||||||
|
|
||||||
@@ -215,8 +216,8 @@ parseAllOption = flag' WantAllKeys
|
|
||||||
<> help "operate on all versions of all files"
|
|
||||||
)
|
|
||||||
|
|
||||||
-parseKey :: Monad m => String -> m Key
|
|
||||||
-parseKey = maybe (fail "invalid key") return . deserializeKey
|
|
||||||
+parseKey :: MonadFail m => String -> m Key
|
|
||||||
+parseKey = maybe (Fail.fail "invalid key") return . deserializeKey
|
|
||||||
|
|
||||||
-- Options to match properties of annexed files.
|
|
||||||
annexedMatchingOptions :: [GlobalOption]
|
|
||||||
diff --git a/Command/Expire.hs b/Command/Expire.hs
|
|
||||||
index 83c38e569..37dc33883 100644
|
|
||||||
--- a/Command/Expire.hs
|
|
||||||
+++ b/Command/Expire.hs
|
|
||||||
@@ -17,6 +17,7 @@ import Annex.VectorClock
|
|
||||||
import qualified Remote
|
|
||||||
import Utility.HumanTime
|
|
||||||
|
|
||||||
+import Control.Monad.Fail as Fail ( MonadFail(..) )
|
|
||||||
import Data.Time.Clock.POSIX
|
|
||||||
import qualified Data.Map as M
|
|
||||||
|
|
||||||
@@ -105,9 +106,9 @@ parseExpire ps = do
|
|
||||||
Nothing -> giveup $ "bad expire time: " ++ s
|
|
||||||
Just d -> Just (now - durationToPOSIXTime d)
|
|
||||||
|
|
||||||
-parseActivity :: Monad m => String -> m Activity
|
|
||||||
+parseActivity :: MonadFail m => String -> m Activity
|
|
||||||
parseActivity s = case readish s of
|
|
||||||
- Nothing -> fail $ "Unknown activity. Choose from: " ++
|
|
||||||
+ Nothing -> Fail.fail $ "Unknown activity. Choose from: " ++
|
|
||||||
unwords (map show [minBound..maxBound :: Activity])
|
|
||||||
Just v -> return v
|
|
||||||
|
|
||||||
diff --git a/Command/Init.hs b/Command/Init.hs
|
|
||||||
index db6cb14fb..879a1110f 100644
|
|
||||||
--- a/Command/Init.hs
|
|
||||||
+++ b/Command/Init.hs
|
|
||||||
@@ -13,6 +13,7 @@ import Annex.Version
|
|
||||||
import Types.RepoVersion
|
|
||||||
import qualified Annex.SpecialRemote
|
|
||||||
|
|
||||||
+import Control.Monad.Fail as Fail ( MonadFail(..) )
|
|
||||||
import qualified Data.Map as M
|
|
||||||
|
|
||||||
cmd :: Command
|
|
||||||
@@ -33,14 +34,14 @@ optParser desc = InitOptions
|
|
||||||
<> help "Override default annex.version"
|
|
||||||
))
|
|
||||||
|
|
||||||
-parseRepoVersion :: Monad m => String -> m RepoVersion
|
|
||||||
+parseRepoVersion :: MonadFail m => String -> m RepoVersion
|
|
||||||
parseRepoVersion s = case RepoVersion <$> readish s of
|
|
||||||
- Nothing -> fail $ "version parse error"
|
|
||||||
+ Nothing -> Fail.fail $ "version parse error"
|
|
||||||
Just v
|
|
||||||
| v `elem` supportedVersions -> return v
|
|
||||||
| otherwise -> case M.lookup v autoUpgradeableVersions of
|
|
||||||
Just v' -> return v'
|
|
||||||
- Nothing -> fail $ s ++ " is not a currently supported repository version"
|
|
||||||
+ Nothing -> Fail.fail $ s ++ " is not a currently supported repository version"
|
|
||||||
|
|
||||||
seek :: InitOptions -> CommandSeek
|
|
||||||
seek = commandAction . start
|
|
||||||
diff --git a/Utility/HumanTime.hs b/Utility/HumanTime.hs
|
|
||||||
index 01fbeacfb..d2e70f332 100644
|
|
||||||
--- a/Utility/HumanTime.hs
|
|
||||||
+++ b/Utility/HumanTime.hs
|
|
||||||
@@ -19,6 +19,7 @@ module Utility.HumanTime (
|
|
||||||
import Utility.PartialPrelude
|
|
||||||
import Utility.QuickCheck
|
|
||||||
|
|
||||||
+import Control.Monad.Fail as Fail ( MonadFail(..) )
|
|
||||||
import qualified Data.Map as M
|
|
||||||
import Data.Time.Clock
|
|
||||||
import Data.Time.Clock.POSIX (POSIXTime)
|
|
||||||
@@ -44,7 +45,7 @@ daysToDuration :: Integer -> Duration
|
|
||||||
daysToDuration i = Duration $ i * dsecs
|
|
||||||
|
|
||||||
{- Parses a human-input time duration, of the form "5h", "1m", "5h1m", etc -}
|
|
||||||
-parseDuration :: Monad m => String -> m Duration
|
|
||||||
+parseDuration :: MonadFail m => String -> m Duration
|
|
||||||
parseDuration = maybe parsefail (return . Duration) . go 0
|
|
||||||
where
|
|
||||||
go n [] = return n
|
|
||||||
@@ -55,7 +56,7 @@ parseDuration = maybe parsefail (return . Duration) . go 0
|
|
||||||
u <- M.lookup c unitmap
|
|
||||||
go (n + num * u) rest
|
|
||||||
_ -> return $ n + num
|
|
||||||
- parsefail = fail "duration parse error; expected eg \"5m\" or \"1h5m\""
|
|
||||||
+ parsefail = Fail.fail "duration parse error; expected eg \"5m\" or \"1h5m\""
|
|
||||||
|
|
||||||
fromDuration :: Duration -> String
|
|
||||||
fromDuration Duration { durationSeconds = d }
|
|
||||||
--
|
|
||||||
2.25.1
|
|
||||||
|
|
@ -8,17 +8,17 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "wasmer";
|
pname = "wasmer";
|
||||||
version = "0.13.0";
|
version = "0.16.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "wasmerio";
|
owner = "wasmerio";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1k9zd2vhrbvxlpkh21m39alk5lfhd3xa25k0awis27plfpv8fqcq";
|
sha256 = "124zq772kz9a7n3qpxgmp4awqj41l8mhhwc0y3r77i1q02i1sy7z";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "101y3zcnbl0w0zv2k0bhqk5d0xj8m2h6ww9r366j9b1y54cqj4b7";
|
cargoSha256 = "1qqysvcviimpm2zhzsbn8vhy91rxzaknh9hv75y38xd5ggnnh9m6";
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
|
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
{ stdenv, callPackage, fetchurl, ... } @ args:
|
|
||||||
|
|
||||||
callPackage ./generic.nix (args // {
|
|
||||||
version = "1.62.0";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://sourceforge/boost/boost_1_62_0.tar.bz2";
|
|
||||||
# long-form SHA256 from www.boost.org
|
|
||||||
sha256 = "36c96b0f6155c98404091d8ceb48319a28279ca0333fba1ad8611eb90afb2ca0";
|
|
||||||
};
|
|
||||||
|
|
||||||
})
|
|
@ -1,12 +0,0 @@
|
|||||||
{ stdenv, callPackage, fetchurl, ... } @ args:
|
|
||||||
|
|
||||||
callPackage ./generic.nix (args // {
|
|
||||||
version = "1.63.0";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://sourceforge/boost/boost_1_63_0.tar.bz2";
|
|
||||||
# SHA256 from http://www.boost.org/users/history/version_1_63_0.html
|
|
||||||
sha256 = "beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0";
|
|
||||||
};
|
|
||||||
|
|
||||||
})
|
|
@ -1,12 +0,0 @@
|
|||||||
{ stdenv, callPackage, fetchurl, ... } @ args:
|
|
||||||
|
|
||||||
callPackage ./generic.nix (args // {
|
|
||||||
version = "1.64.0";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://sourceforge/boost/boost_1_64_0.tar.bz2";
|
|
||||||
# SHA256 from http://www.boost.org/users/history/version_1_64_0.html
|
|
||||||
sha256 = "7bcc5caace97baa948931d712ea5f37038dbb1c5d89b43ad4def4ed7cb683332";
|
|
||||||
};
|
|
||||||
|
|
||||||
})
|
|
@ -5,13 +5,13 @@ with stdenv.lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "dqlite";
|
pname = "dqlite";
|
||||||
version = "1.0.0";
|
version = "1.4.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "canonical";
|
owner = "canonical";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0670c1c84lcf5vl3h6mlff00fz2fnm766bzlk526sjjzysx3zjya";
|
sha256 = "19snm6cicxagcw9ys2jmjf6fchzs6pwm7h4jmyr0pn6zks2yjf1i";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook file pkgconfig ];
|
nativeBuildInputs = [ autoreconfHook file pkgconfig ];
|
||||||
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
homepage = https://github.com/CanonicalLtd/dqlite/;
|
homepage = https://github.com/CanonicalLtd/dqlite/;
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [ joko ];
|
maintainers = with maintainers; [ joko wucke13 ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "howard-hinnant-date-unstable";
|
pname = "howard-hinnant-date-unstable";
|
||||||
version = "2020-01-24";
|
version = "2020-03-09";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "HowardHinnant";
|
owner = "HowardHinnant";
|
||||||
repo = "date";
|
repo = "date";
|
||||||
rev = "9a0ee2542848ab8625984fc8cdbfb9b5414c0082";
|
rev = "4c1968b8f038483037cadfdbad3215ce21d934bb";
|
||||||
sha256 = "0yxsn0hj22n61bjywysxqgfv7hj5xvsl6isma95fl8xrimpny083";
|
sha256 = "0dywrf18v1znfnz0gdxgi2ydax466zq34gc1vvg2k7vq17a30wq3";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
47
pkgs/development/libraries/libinsane/default.nix
Normal file
47
pkgs/development/libraries/libinsane/default.nix
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
, fetchFromGitLab
|
||||||
|
, pkg-config
|
||||||
|
, glib
|
||||||
|
, docbook_xsl
|
||||||
|
, sane-backends
|
||||||
|
, gobject-introspection
|
||||||
|
, vala
|
||||||
|
, gtk-doc
|
||||||
|
, valgrind
|
||||||
|
, doxygen
|
||||||
|
, cunit
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "libinsane";
|
||||||
|
version = "1.0.3";
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" "devdoc" ];
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
domain = "gitlab.gnome.org";
|
||||||
|
repo = "libinsane";
|
||||||
|
group = "World";
|
||||||
|
owner = "OpenPaperwork";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1x2pl4ahqjc6ql97v7fnyna0qrnw3bxmqg3lyi5biyajfhg9nvql";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ meson pkg-config ninja doxygen gtk-doc docbook_xsl gobject-introspection vala ];
|
||||||
|
|
||||||
|
buildInputs = [ sane-backends glib ];
|
||||||
|
|
||||||
|
checkInputs = [ cunit valgrind ];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Crossplatform access to image scanners (paper eaters only)";
|
||||||
|
homepage = "https://openpaper.work/en/projects/";
|
||||||
|
license = lib.licenses.lgpl3Plus;
|
||||||
|
maintainers = [ lib.maintainers.symphorien ];
|
||||||
|
};
|
||||||
|
}
|
@ -2,21 +2,22 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ndi";
|
pname = "ndi";
|
||||||
version = "4";
|
fullVersion = "4.1.6";
|
||||||
|
version = builtins.head (builtins.splitVersion fullVersion);
|
||||||
|
|
||||||
src = requireFile rec {
|
src = requireFile rec {
|
||||||
name = "InstallNDISDK_v${version}_Linux.tar.gz";
|
name = "InstallNDISDK_v${version}_Linux.tar.gz";
|
||||||
sha256 = "1hac5npyg8nifs9ipj34pkn0zjyx8774x3i3h8znhmijx2j2982p";
|
sha256 = "0hki805j3hlci6w5ca2cajm5q0y9yihgvpsykkn8dzx8chw4pmsk";
|
||||||
message = ''
|
message = ''
|
||||||
In order to use the NDI SDK, you need to comply with NewTek's license and
|
In order to use NDI SDK version ${fullVersion}, you need to comply with
|
||||||
download the Linux version ${version} tarball from:
|
NewTek's license and download the appropriate Linux tarball from:
|
||||||
|
|
||||||
${meta.homepage}
|
${meta.homepage}
|
||||||
|
|
||||||
Once you have downloaded the file, please use the following command and
|
Once you have downloaded the file, please use the following command and
|
||||||
re-run the installation:
|
re-run the installation:
|
||||||
|
|
||||||
nix-prefetch-url file://\$PWD/${name}
|
\$ nix-prefetch-url file://\$PWD/${name}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,5 +23,15 @@ callPackage ./generic.nix (args // rec {
|
|||||||
name = "CVE-2019-12973-2.patch";
|
name = "CVE-2019-12973-2.patch";
|
||||||
sha256 = "1jkkfw13l7nx4hxdhc7z17f4vfgqcaf09zpl235kypbxx1ygc7vq";
|
sha256 = "1jkkfw13l7nx4hxdhc7z17f4vfgqcaf09zpl235kypbxx1ygc7vq";
|
||||||
})
|
})
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/uclouvain/openjpeg/commit/024b8407392cb0b82b04b58ed256094ed5799e04.patch";
|
||||||
|
name = "CVE-2020-6851.patch";
|
||||||
|
sha256 = "1lfwlzqxb69cwzjp8v9lijz4c2qhf3b8m6sq1khipqlgrb3l58xw";
|
||||||
|
})
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/uclouvain/openjpeg/commit/05f9b91e60debda0e83977e5e63b2e66486f7074.patch";
|
||||||
|
name = "CVE-2020-8112.patch";
|
||||||
|
sha256 = "16kykc8wbq9kx9w9kkf3i7snak82m184qrl9bpxvkjl7h0n9aw49";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "raft-canonical";
|
pname = "raft-canonical";
|
||||||
version = "0.9.6";
|
version = "0.9.17";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "canonical";
|
owner = "canonical";
|
||||||
repo = "raft";
|
repo = "raft";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "083il7b5kw3pc7m5p9xjpb9dlvfarc51sni92mkgm9ckc32x9vpp";
|
sha256 = "0q444wd6wz85g4zjkdsrf8z7chkjq9rxzq8l6fh37mgf7c23hv09";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook file pkgconfig ];
|
nativeBuildInputs = [ autoreconfHook file pkgconfig ];
|
||||||
@ -18,12 +18,14 @@ stdenv.mkDerivation rec {
|
|||||||
substituteInPlace configure --replace /usr/bin/ " "
|
substituteInPlace configure --replace /usr/bin/ " "
|
||||||
'';
|
'';
|
||||||
|
|
||||||
doCheck = false;
|
# test fails
|
||||||
# Due to
|
#
|
||||||
#io_uv_recv/success/first [ ERROR ]
|
#append/finalizeSegment [ ERROR ]
|
||||||
#Error: test/lib/dir.c:97: No such file or directory
|
#Error: test/integration/test_uv_append.c:264: assertion failed: test_dir_has_file(f->dir, "0000000000000001-0000000000000004") is not true
|
||||||
#Error: child killed by signal 6 (Aborted)
|
#Error: child killed by signal 6 (Aborted)
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
outputs = [ "dev" "out" ];
|
outputs = [ "dev" "out" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
@ -39,6 +41,6 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
homepage = "https://github.com/canonical/raft";
|
homepage = "https://github.com/canonical/raft";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = [ maintainers.wucke13 ];
|
maintainers = with maintainers; [ wucke13 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,12 @@
|
|||||||
{ stdenv
|
{ stdenv , fetchurl , blas , gfortran , liblapack , python }:
|
||||||
, fetchurl
|
|
||||||
, blas
|
|
||||||
, gfortran
|
|
||||||
, liblapack
|
|
||||||
, python }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "petsc";
|
pname = "petsc";
|
||||||
version = "3.8.4";
|
version = "3.12.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-${version}.tar.gz";
|
url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-${version}.tar.gz";
|
||||||
sha256 = "1iy49gagxncx09d88kxnwkj876p35683mpfk33x37165si6xqy4z";
|
sha256 = "1hw4f12v2xwrs37gjh83dbixhg0yxandqx7s7k5vlfx91l9l3aan";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ blas gfortran.cc.lib liblapack python ];
|
nativeBuildInputs = [ blas gfortran.cc.lib liblapack python ];
|
||||||
@ -26,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||||||
configureFlagsArray=(
|
configureFlagsArray=(
|
||||||
$configureFlagsArray
|
$configureFlagsArray
|
||||||
"--CC=$CC"
|
"--CC=$CC"
|
||||||
"--with-cxx=0"
|
"--with-cxx=g++"
|
||||||
"--with-fc=0"
|
"--with-fc=0"
|
||||||
"--with-mpi=0"
|
"--with-mpi=0"
|
||||||
"--with-blas-lib=[${blas}/lib/libblas.a,${gfortran.cc.lib}/lib/libgfortran.a]"
|
"--with-blas-lib=[${blas}/lib/libblas.a,${gfortran.cc.lib}/lib/libgfortran.a]"
|
||||||
@ -34,17 +29,14 @@ stdenv.mkDerivation rec {
|
|||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
meta = with stdenv.lib; {
|
||||||
rm $out/bin/petscmpiexec
|
description = ''
|
||||||
rm $out/bin/popup
|
Library of linear algebra algorithms for solving partial differential
|
||||||
rm $out/bin/uncrustify.cfg
|
equations
|
||||||
rm -rf $out/bin/win32fe
|
'';
|
||||||
'';
|
homepage = "https://www.mcs.anl.gov/petsc/index.html";
|
||||||
|
license = licenses.bsd2;
|
||||||
meta = {
|
maintainers = with maintainers; [ wucke13 ];
|
||||||
description = "Library of linear algebra algorithms for solving partial differential equations";
|
platforms = platforms.all;
|
||||||
homepage = https://www.mcs.anl.gov/petsc/index.html;
|
|
||||||
platforms = stdenv.lib.platforms.all;
|
|
||||||
license = stdenv.lib.licenses.bsd2;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
{ fetchurl, stdenv, flex }:
|
{ fetchurl, stdenv, flex }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "7.1";
|
version = "7.2";
|
||||||
pname = "wcslib";
|
pname = "wcslib";
|
||||||
|
|
||||||
buildInputs = [ flex ];
|
buildInputs = [ flex ];
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
|
url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
|
||||||
sha256 ="05ji2v4la8h6azprb8x2zh6wrswxsq8cqw9zml0layc4nfg79fzh";
|
sha256 ="0fbf6ypq7ag9dmjn65ja5vbfxswb6511bja8rbna25wmhns9x5b3";
|
||||||
};
|
};
|
||||||
|
|
||||||
prePatch = ''
|
prePatch = ''
|
||||||
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "World Coordinate System Library for Astronomy";
|
description = "World Coordinate System Library for Astronomy";
|
||||||
homepage = https://www.atnf.csiro.au/people/mcalabre/WCS/;
|
homepage = "https://www.atnf.csiro.au/people/mcalabre/WCS/";
|
||||||
|
|
||||||
longDescription = ''Library for world coordinate systems for
|
longDescription = ''Library for world coordinate systems for
|
||||||
spherical geometries and their conversion to image coordinate
|
spherical geometries and their conversion to image coordinate
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
{ lib, fetchurl, buildDunePackage }:
|
{ lib, fetchurl, ocaml, buildDunePackage }:
|
||||||
|
|
||||||
|
if lib.versionAtLeast ocaml.version "4.08"
|
||||||
|
then throw "earley is not available for OCaml ${ocaml.version}"
|
||||||
|
else
|
||||||
|
|
||||||
buildDunePackage rec {
|
buildDunePackage rec {
|
||||||
version = "2.0.0";
|
version = "2.0.0";
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
{ lib, fetchurl, buildDunePackage, angstrom, angstrom-lwt-unix,
|
{ lib, fetchurl, ocaml, buildDunePackage, angstrom, angstrom-lwt-unix,
|
||||||
batteries, cmdliner, lwt_ppx, ocaml_lwt, ppx_deriving_yojson,
|
batteries, cmdliner, lwt_ppx, ocaml_lwt, ppx_deriving_yojson,
|
||||||
ppx_tools_versioned, yojson }:
|
ppx_tools_versioned, yojson }:
|
||||||
|
|
||||||
|
if lib.versionAtLeast ocaml.version "4.08"
|
||||||
|
then throw "earlybird is not available for OCaml ${ocaml.version}"
|
||||||
|
else
|
||||||
|
|
||||||
buildDunePackage rec {
|
buildDunePackage rec {
|
||||||
pname = "earlybird";
|
pname = "earlybird";
|
||||||
version = "0.1.5";
|
version = "0.1.5";
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{ stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, ppx_tools, yojson }:
|
{ stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, ppx_tools, yojson }:
|
||||||
|
|
||||||
if stdenv.lib.versionOlder ocaml.version "4.03"
|
if stdenv.lib.versionOlder ocaml.version "4.03"
|
||||||
|
|| stdenv.lib.versionAtLeast ocaml.version "4.08"
|
||||||
then throw "ocf not supported for ocaml ${ocaml.version}"
|
then throw "ocf not supported for ocaml ${ocaml.version}"
|
||||||
else
|
else
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -2,19 +2,19 @@
|
|||||||
|
|
||||||
buildDunePackage rec {
|
buildDunePackage rec {
|
||||||
pname = "ppx_tools_versioned";
|
pname = "ppx_tools_versioned";
|
||||||
version = "5.2.3";
|
version = "5.3.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ocaml-ppx";
|
owner = "ocaml-ppx";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1hcmpnw26zf70a71r3d2c2c0mn8q084gdn1r36ynng6fv9hq6j0y";
|
sha256 = "0c735w9mq49dmvkdw9ahfwh0icsk2sbhnfwmdhpibj86phfm17yj";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ ocaml-migrate-parsetree ];
|
propagatedBuildInputs = [ ocaml-migrate-parsetree ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = https://github.com/let-def/ppx_tools_versioned;
|
homepage = "https://github.com/let-def/ppx_tools_versioned";
|
||||||
description = "Tools for authors of syntactic tools (such as ppx rewriters)";
|
description = "Tools for authors of syntactic tools (such as ppx rewriters)";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
maintainers = [ maintainers.volth ];
|
maintainers = [ maintainers.volth ];
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
{ stdenv
|
{ lib
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fetchurl
|
, fetchurl
|
||||||
|
, buildDunePackage
|
||||||
, ocaml
|
, ocaml
|
||||||
, dune
|
|
||||||
, findlib
|
|
||||||
, gen
|
, gen
|
||||||
, ppx_tools_versioned
|
, ppx_tools_versioned
|
||||||
, ocaml-migrate-parsetree
|
, ocaml-migrate-parsetree
|
||||||
, uchar
|
, uchar
|
||||||
}:
|
}:
|
||||||
|
|
||||||
if stdenv.lib.versionOlder ocaml.version "4.02.3"
|
if lib.versionOlder ocaml.version "4.02.3"
|
||||||
then throw "sedlex is not available for OCaml ${ocaml.version}"
|
then throw "sedlex is not available for OCaml ${ocaml.version}"
|
||||||
else
|
else
|
||||||
|
|
||||||
@ -28,8 +27,8 @@ let
|
|||||||
sha256 = "0gsb1jpj3mnqbjgbavi4l95gl6g4agq58j82km22fdfg63j3w3fk";
|
sha256 = "0gsb1jpj3mnqbjgbavi4l95gl6g4agq58j82km22fdfg63j3w3fk";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
buildDunePackage rec {
|
||||||
name = "ocaml${ocaml.version}-sedlex-${version}";
|
pname = "sedlex";
|
||||||
version = "2.1";
|
version = "2.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
@ -39,7 +38,7 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26";
|
sha256 = "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ ocaml findlib dune ppx_tools_versioned ocaml-migrate-parsetree ];
|
buildInputs = [ ppx_tools_versioned ocaml-migrate-parsetree ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ gen uchar ];
|
propagatedBuildInputs = [ gen uchar ];
|
||||||
|
|
||||||
@ -49,21 +48,14 @@ stdenv.mkDerivation rec {
|
|||||||
ln -s ${PropList} src/generator/data/PropList.txt
|
ln -s ${PropList} src/generator/data/PropList.txt
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildFlags = [ "build" ];
|
doCheck = true;
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
make INSTALL_ARGS="--prefix=$out --libdir=$OCAMLFIND_DESTDIR" install
|
|
||||||
'';
|
|
||||||
|
|
||||||
createFindlibDestdir = true;
|
|
||||||
|
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://github.com/ocaml-community/sedlex;
|
homepage = https://github.com/ocaml-community/sedlex;
|
||||||
description = "An OCaml lexer generator for Unicode";
|
description = "An OCaml lexer generator for Unicode";
|
||||||
license = stdenv.lib.licenses.mit;
|
license = lib.licenses.mit;
|
||||||
inherit (ocaml.meta) platforms;
|
maintainers = [ lib.maintainers.marsam ];
|
||||||
maintainers = [ stdenv.lib.maintainers.marsam ];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild }:
|
{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild }:
|
||||||
|
|
||||||
if !stdenv.lib.versionAtLeast ocaml.version "4.02"
|
if !stdenv.lib.versionAtLeast ocaml.version "4.02"
|
||||||
|
|| stdenv.lib.versionAtLeast ocaml.version "4.08"
|
||||||
then throw "wasm is not available for OCaml ${ocaml.version}"
|
then throw "wasm is not available for OCaml ${ocaml.version}"
|
||||||
else
|
else
|
||||||
|
|
||||||
|
52
pkgs/development/python-modules/bravado-core/default.nix
Normal file
52
pkgs/development/python-modules/bravado-core/default.nix
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
{ lib, buildPythonPackage, fetchFromGitHub, python-dateutil, jsonref, jsonschema,
|
||||||
|
pyyaml, simplejson, six, pytz, msgpack, swagger-spec-validator, rfc3987,
|
||||||
|
strict-rfc3339, webcolors, mypy-extensions, jsonpointer, idna, pytest, mock,
|
||||||
|
pytest-benchmark, isPy27, enum34 }:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "bravado-core";
|
||||||
|
version = "5.16.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Yelp";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0r9gk5vkjbc407fjydms3ik3hnzajq54znyz58d8rm6pvqcvjjpl";
|
||||||
|
};
|
||||||
|
|
||||||
|
checkInputs = [
|
||||||
|
mypy-extensions
|
||||||
|
pytest
|
||||||
|
mock
|
||||||
|
pytest-benchmark
|
||||||
|
];
|
||||||
|
|
||||||
|
checkPhase = ''pytest --benchmark-skip'';
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
python-dateutil
|
||||||
|
jsonref
|
||||||
|
jsonschema
|
||||||
|
pyyaml
|
||||||
|
simplejson
|
||||||
|
six
|
||||||
|
pytz
|
||||||
|
msgpack
|
||||||
|
swagger-spec-validator
|
||||||
|
|
||||||
|
# the following 3 packages are included when jsonschema (3.2) is installed
|
||||||
|
# as jsonschema[format], which reflects what happens in setup.py
|
||||||
|
rfc3987
|
||||||
|
strict-rfc3339
|
||||||
|
webcolors
|
||||||
|
jsonpointer
|
||||||
|
idna
|
||||||
|
] ++ lib.optionals isPy27 [ enum34 ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Library for adding Swagger support to clients and servers";
|
||||||
|
homepage = "https://github.com/Yelp/bravado-core";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ vanschelven ];
|
||||||
|
};
|
||||||
|
}
|
23
pkgs/development/python-modules/convertdate/default.nix
Normal file
23
pkgs/development/python-modules/convertdate/default.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{ stdenv, buildPythonPackage, fetchFromGitHub, pymeeus, pytz }:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "convertdate";
|
||||||
|
version = "2.2.0";
|
||||||
|
|
||||||
|
# Tests are not available in the PyPI tarball so use GitHub instead.
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "fitnr";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "04j8k7a9qndmawy3m345py74y18hw7lb6gc0qp0mr8d68x99xjq0";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ pymeeus pytz ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "https://github.com/fitnr/convertdate";
|
||||||
|
description = "Utils for converting between date formats and calculating holidays";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ jluttine ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, buildPythonPackage
|
, buildPythonPackage
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, fetchurl
|
||||||
, uvicorn
|
, uvicorn
|
||||||
, starlette
|
, starlette
|
||||||
, pydantic
|
, pydantic
|
||||||
@ -10,11 +11,12 @@
|
|||||||
, pyjwt
|
, pyjwt
|
||||||
, passlib
|
, passlib
|
||||||
, aiosqlite
|
, aiosqlite
|
||||||
|
, peewee
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "fastapi";
|
pname = "fastapi";
|
||||||
version = "0.45.0";
|
version = "0.49.0";
|
||||||
format = "flit";
|
format = "flit";
|
||||||
disabled = !isPy3k;
|
disabled = !isPy3k;
|
||||||
|
|
||||||
@ -22,7 +24,7 @@ buildPythonPackage rec {
|
|||||||
owner = "tiangolo";
|
owner = "tiangolo";
|
||||||
repo = "fastapi";
|
repo = "fastapi";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1qwh382ny6qa3zi64micdq4j7dc64zv4rfd8g91j0digd4rhs6i1";
|
sha256 = "1dw5f2xvn0fqqsy29ypba8v3444cy7dvc7gkpmnhshky0rmfni3n";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
@ -37,16 +39,9 @@ buildPythonPackage rec {
|
|||||||
pyjwt
|
pyjwt
|
||||||
passlib
|
passlib
|
||||||
aiosqlite
|
aiosqlite
|
||||||
|
peewee
|
||||||
];
|
];
|
||||||
|
|
||||||
# starlette pinning kept in place due to 0.12.9 being a hard
|
|
||||||
# dependency luckily fastapi is currently the only dependent on
|
|
||||||
# starlette. Please remove pinning when possible
|
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace pyproject.toml \
|
|
||||||
--replace "pydantic >=0.32.2,<=0.32.2" "pydantic"
|
|
||||||
'';
|
|
||||||
|
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
pytest --ignore=tests/test_default_response_class.py
|
pytest --ignore=tests/test_default_response_class.py
|
||||||
'';
|
'';
|
||||||
|
@ -6,20 +6,23 @@
|
|||||||
, astropy
|
, astropy
|
||||||
, scipy
|
, scipy
|
||||||
, pandas
|
, pandas
|
||||||
|
, codecov
|
||||||
, pytest
|
, pytest
|
||||||
, pytestcov
|
, pytestcov
|
||||||
, pytestrunner
|
, pytestrunner
|
||||||
, coveralls
|
, coveralls
|
||||||
|
, twine
|
||||||
|
, check-manifest
|
||||||
, lib
|
, lib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "hickle";
|
pname = "hickle";
|
||||||
version = "3.4.5";
|
version = "3.4.6";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "1d1qj3yl7635lgkqacz9r8fyhv71396l748ww4wy05ibpignjm2x";
|
sha256 = "026r6yg3amsi8k8plzsbw5rnifym6sc17y011daqyvcpb7mfs94b";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
@ -28,7 +31,9 @@ buildPythonPackage rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
propagatedBuildInputs = [ h5py numpy dill ];
|
propagatedBuildInputs = [ h5py numpy dill ];
|
||||||
checkInputs = [ pytest pytestcov pytestrunner coveralls scipy pandas astropy ];
|
checkInputs = [
|
||||||
|
pytest pytestcov pytestrunner coveralls scipy pandas astropy twine check-manifest codecov
|
||||||
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Serialize Python data to HDF5";
|
description = "Serialize Python data to HDF5";
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
{ stdenv, buildPythonPackage, fetchPypi , six, dateutil }:
|
{ stdenv, buildPythonPackage, fetchPypi, six, dateutil, convertdate }:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "holidays";
|
pname = "holidays";
|
||||||
version = "0.9.12";
|
version = "0.10.1";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "3182c4a6fef8d01a829468362ace9c3bba7645873610535fef53454dbb4ea092";
|
sha256 = "1dx39krafb6cdnd7h5vgwmw4y075s6k3d31a6vhwvqhmdig3294h";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ six dateutil ];
|
propagatedBuildInputs = [ six dateutil convertdate ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/dr-prodigy/python-holidays;
|
homepage = "https://github.com/dr-prodigy/python-holidays";
|
||||||
description = "Generate and work with holidays in Python";
|
description = "Generate and work with holidays in Python";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ jluttine ];
|
maintainers = with maintainers; [ jluttine ];
|
||||||
|
@ -1,24 +1,37 @@
|
|||||||
{ stdenv, buildPythonPackage, fetchFromGitHub
|
{ stdenv, buildPythonPackage, fetchFromGitHub
|
||||||
, enum-compat
|
, enum-compat
|
||||||
, xorgserver, pytest, i3, python
|
, xorgserver, pytest, pytest-xvfb, pytest-asyncio, i3, python, xlib, xdpyinfo
|
||||||
|
, makeFontsConf, coreutils
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "i3ipc";
|
pname = "i3ipc";
|
||||||
version = "1.6.0";
|
version = "2.1.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "acrisci";
|
owner = "acrisci";
|
||||||
repo = "i3ipc-python";
|
repo = "i3ipc-python";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0sb525wvwcnikjaqzha94xr97r1gjys30csmaj17swlxgyczxvq5";
|
sha256 = "10zpbiw1gcndn439g1vxcdkxllwp02qcmaal4w7hi2rzgaw1xkdk";
|
||||||
};
|
};
|
||||||
|
propagatedBuildInputs = [ enum-compat xlib ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ enum-compat ];
|
fontsConf = makeFontsConf {
|
||||||
|
fontDirectories = [ ];
|
||||||
|
};
|
||||||
|
FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
|
||||||
|
checkInputs = [ pytest xdpyinfo pytest-asyncio pytest-xvfb xorgserver i3 ];
|
||||||
|
|
||||||
checkInputs = [ xorgserver pytest i3 ];
|
postPatch = ''
|
||||||
|
substituteInPlace test/i3.config \
|
||||||
|
--replace /bin/true ${coreutils}/bin/true
|
||||||
|
'';
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
py.test --ignore=test/aio/test_shutdown_event.py \
|
||||||
|
--ignore=test/test_shutdown_event.py
|
||||||
|
'';
|
||||||
|
|
||||||
checkPhase = ''${python.interpreter} run-tests.py'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "An improved Python library to control i3wm and sway";
|
description = "An improved Python library to control i3wm and sway";
|
||||||
|
@ -8,12 +8,12 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "jupyterlab";
|
pname = "jupyterlab";
|
||||||
version = "1.2.6";
|
version = "2.0.0";
|
||||||
disabled = pythonOlder "3.5";
|
disabled = pythonOlder "3.5";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "0mc3nrj7fc5q2ajr09m261j386jsp8qjljg8anghlh8czc9ln4s2";
|
sha256 = "17p8rpihid0103fyjndk2yvg18n3ypn3hxay92ckcv10vsbiys5b";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ jupyterlab_server notebook ];
|
propagatedBuildInputs = [ jupyterlab_server notebook ];
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "klaus";
|
pname = "klaus";
|
||||||
version = "1.5.1";
|
version = "1.5.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jonashaag";
|
owner = "jonashaag";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1432m3ki2g4ma10pfv310q1w4da46b0y2jklb8ajbz8a09ms6mfx";
|
sha256 = "12b96jgiv9y7zmkqqj3dh0fbbm3ps8gbqk925qrhh56zqjl66kx2";
|
||||||
};
|
};
|
||||||
|
|
||||||
prePatch = ''
|
prePatch = ''
|
||||||
|
@ -20,13 +20,13 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "nio";
|
pname = "nio";
|
||||||
version = "0.7.1";
|
version = "0.8.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "poljar";
|
owner = "poljar";
|
||||||
repo = "matrix-nio";
|
repo = "matrix-nio";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "05cggfhsfa0irvzc7x3fndv6n0zszxxhmlv89r5rkrl5wvrhbb2h";
|
sha256 = "151c59a913y6kx99g7g3mhpgbgavwic1mh21nfrr9x0rm98ilay9";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -15,11 +15,11 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pyicloud";
|
pname = "pyicloud";
|
||||||
version = "0.9.2";
|
version = "0.9.4";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "1jjkzf7vwms6pymnmdr893830vrymxnq455xnqp21wqhjjiy2amd";
|
sha256 = "0r171wnq2g5bw7gd59vh6flm0104ix1a6s2vhdrf8s74hipw57si";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
{ stdenv
|
|
||||||
, buildPythonPackage
|
|
||||||
, fetchPypi
|
|
||||||
, nose
|
|
||||||
, pillow
|
|
||||||
, pkgs
|
|
||||||
}:
|
|
||||||
|
|
||||||
buildPythonPackage rec {
|
|
||||||
pname = "pyinsane2";
|
|
||||||
version = "2.0.13";
|
|
||||||
|
|
||||||
src = fetchPypi {
|
|
||||||
inherit pname version;
|
|
||||||
sha256 = "0d519531d552e4512776225eb400a6a4a9bfc83a08918ec7fea19cb2fa7ec4ee";
|
|
||||||
};
|
|
||||||
|
|
||||||
# This is needed by setup.py regardless of whether tests are enabled.
|
|
||||||
buildInputs = [ nose ];
|
|
||||||
propagatedBuildInputs = [ pillow ];
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
# pyinsane2 forks itself, so we need to re-inject the PYTHONPATH.
|
|
||||||
sed -i -e '/os.putenv.*PYINSANE_DAEMON/ {
|
|
||||||
a \ os.putenv("PYTHONPATH", ":".join(sys.path))
|
|
||||||
}' pyinsane2/sane/abstract_proc.py
|
|
||||||
|
|
||||||
sed -i -e 's,"libsane.so.1","${pkgs.sane-backends}/lib/libsane.so",' \
|
|
||||||
pyinsane2/sane/rawapi.py
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Tests require a scanner to be physically connected, so let's just do a
|
|
||||||
# quick check whether initialization works.
|
|
||||||
checkPhase = ''
|
|
||||||
python -c 'import pyinsane2; pyinsane2.init()'
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
homepage = "https://github.com/jflesch/pyinsane";
|
|
||||||
description = "Access and use image scanners";
|
|
||||||
license = licenses.gpl3Plus;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
24
pkgs/development/python-modules/pymeeus/default.nix
Normal file
24
pkgs/development/python-modules/pymeeus/default.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{ stdenv, buildPythonPackage, fetchPypi, pytest }:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "PyMeeus";
|
||||||
|
version = "0.3.7";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "0qjnk9sc65i4by2x4zm6w941a4i31fmhgwbkpbqkk87rwq4h4hsn";
|
||||||
|
};
|
||||||
|
|
||||||
|
checkInputs = [ pytest ];
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
pytest .
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "https://github.com/architest/pymeeus";
|
||||||
|
description = "Library of astronomical algorithms";
|
||||||
|
license = licenses.lgpl3;
|
||||||
|
maintainers = with maintainers; [ jluttine ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,10 +1,10 @@
|
|||||||
{ lib, fetchFromGitLab, buildPythonPackage, pillow, six
|
{ lib, fetchFromGitLab, buildPythonPackage, pillow, setuptools_scm,
|
||||||
, tesseract, cuneiform, isPy3k, substituteAll, pytest, tox
|
setuptools-scm-git-archive , tesseract, cuneiform, isPy3k, substituteAll,
|
||||||
}:
|
pytest, tox }:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pyocr";
|
pname = "pyocr";
|
||||||
version = "0.5.3";
|
version = "0.7.2";
|
||||||
disabled = !isPy3k;
|
disabled = !isPy3k;
|
||||||
|
|
||||||
# Don't fetch from PYPI because it doesn't contain tests.
|
# Don't fetch from PYPI because it doesn't contain tests.
|
||||||
@ -14,7 +14,7 @@ buildPythonPackage rec {
|
|||||||
owner = "OpenPaperwork";
|
owner = "OpenPaperwork";
|
||||||
repo = "pyocr";
|
repo = "pyocr";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1nihf0qmbpg3yj3yp11jp6hp5z5dqf39nz6j9lqbvgi1nqbs7x15";
|
sha256 = "09ab86bmizpv94w3mdvdqkjyyvk1vafw3jqhkiw5xx7p180xn3il";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ (substituteAll {
|
patches = [ (substituteAll {
|
||||||
@ -23,38 +23,8 @@ buildPythonPackage rec {
|
|||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
buildInputs = [ setuptools_scm setuptools-scm-git-archive ];
|
||||||
echo 'version = "${version}"' > src/pyocr/_version.py
|
propagatedBuildInputs = [ pillow ];
|
||||||
|
|
||||||
# Disable specific tests that are probably failing because of this issue:
|
|
||||||
# https://github.com/jflesch/pyocr/issues/52
|
|
||||||
for test in $disabledTests; do
|
|
||||||
file="''${test%%:*}"
|
|
||||||
fun="''${test#*:}"
|
|
||||||
echo "import pytest" >> "tests/tests_$file.py"
|
|
||||||
echo "$fun = pytest.mark.skip($fun)" >> "tests/tests_$file.py"
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
disabledTests = [
|
|
||||||
"cuneiform:TestTxt.test_basic"
|
|
||||||
"cuneiform:TestTxt.test_european"
|
|
||||||
"cuneiform:TestTxt.test_french"
|
|
||||||
"cuneiform:TestWordBox.test_basic"
|
|
||||||
"cuneiform:TestWordBox.test_european"
|
|
||||||
"cuneiform:TestWordBox.test_french"
|
|
||||||
"libtesseract:TestBasicDoc.test_basic"
|
|
||||||
"libtesseract:TestDigitLineBox.test_digits"
|
|
||||||
"libtesseract:TestLineBox.test_japanese"
|
|
||||||
"libtesseract:TestTxt.test_japanese"
|
|
||||||
"libtesseract:TestWordBox.test_japanese"
|
|
||||||
"libtesseract:TestTxt.test_multi"
|
|
||||||
"tesseract:TestTxt.test_multi"
|
|
||||||
"tesseract:TestDigitLineBox.test_digits"
|
|
||||||
"tesseract:TestTxt.test_japanese"
|
|
||||||
];
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ pillow six ];
|
|
||||||
checkInputs = [ pytest tox ];
|
checkInputs = [ pytest tox ];
|
||||||
checkPhase = "pytest";
|
checkPhase = "pytest";
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Index: current/src/pyocr/cuneiform.py
|
diff --git a/src/pyocr/cuneiform.py b/src/pyocr/cuneiform.py
|
||||||
===================================================================
|
index 2e5b717..35647e2 100644
|
||||||
--- current.orig/src/pyocr/cuneiform.py
|
--- a/src/pyocr/cuneiform.py
|
||||||
+++ current/src/pyocr/cuneiform.py
|
+++ b/src/pyocr/cuneiform.py
|
||||||
@@ -27,13 +27,9 @@ from . import error
|
@@ -25,13 +25,9 @@ from . import builders
|
||||||
from . import util
|
from .error import CuneiformError
|
||||||
|
|
||||||
|
|
||||||
-# CHANGE THIS IF CUNEIFORM IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
|
-# CHANGE THIS IF CUNEIFORM IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
|
||||||
@ -18,25 +18,34 @@ Index: current/src/pyocr/cuneiform.py
|
|||||||
|
|
||||||
LANGUAGES_LINE_PREFIX = "Supported languages: "
|
LANGUAGES_LINE_PREFIX = "Supported languages: "
|
||||||
LANGUAGES_SPLIT_RE = re.compile("[^a-z]")
|
LANGUAGES_SPLIT_RE = re.compile("[^a-z]")
|
||||||
Index: current/src/pyocr/libtesseract/tesseract_raw.py
|
diff --git a/src/pyocr/libtesseract/tesseract_raw.py b/src/pyocr/libtesseract/tesseract_raw.py
|
||||||
===================================================================
|
index a068e73..9ebea5c 100644
|
||||||
--- current.orig/src/pyocr/libtesseract/tesseract_raw.py
|
--- a/src/pyocr/libtesseract/tesseract_raw.py
|
||||||
+++ current/src/pyocr/libtesseract/tesseract_raw.py
|
+++ b/src/pyocr/libtesseract/tesseract_raw.py
|
||||||
@@ -1,52 +1,13 @@
|
@@ -2,7 +2,6 @@ import ctypes
|
||||||
import ctypes
|
import locale
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
-import sys
|
-import sys
|
||||||
|
|
||||||
from ..error import TesseractError
|
from ..error import TesseractError
|
||||||
|
|
||||||
|
@@ -10,48 +9,16 @@ from ..error import TesseractError
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
-TESSDATA_PREFIX = os.getenv('TESSDATA_PREFIX', None)
|
TESSDATA_PREFIX = os.getenv('TESSDATA_PREFIX', None)
|
||||||
-libnames = []
|
-libnames = []
|
||||||
|
+if TESSDATA_PREFIX is None:
|
||||||
|
+ TESSDATA_PREFIX = '@tesseract@/share/tessdata'
|
||||||
|
+ os.environ['TESSDATA_PREFIX'] = TESSDATA_PREFIX
|
||||||
|
+
|
||||||
|
+
|
||||||
|
# 70 is the minimum credible dpi for tesseract and force it to compute an
|
||||||
|
# estimate of the image dpi
|
||||||
|
DPI_DEFAULT = 70
|
||||||
|
|
||||||
-
|
-
|
||||||
-if getattr(sys, 'frozen', False):
|
-if getattr(sys, 'frozen', False): # pragma: no cover
|
||||||
- # Pyinstaller integration
|
- # Pyinstaller integration
|
||||||
- libnames += [os.path.join(sys._MEIPASS, "libtesseract-4.dll")]
|
- libnames += [os.path.join(sys._MEIPASS, "libtesseract-4.dll")]
|
||||||
- libnames += [os.path.join(sys._MEIPASS, "libtesseract-3.dll")]
|
- libnames += [os.path.join(sys._MEIPASS, "libtesseract-3.dll")]
|
||||||
@ -51,7 +60,7 @@ Index: current/src/pyocr/libtesseract/tesseract_raw.py
|
|||||||
- TESSDATA_PREFIX = tessdata
|
- TESSDATA_PREFIX = tessdata
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-if sys.platform[:3] == "win":
|
-if sys.platform[:3] == "win": # pragma: no cover
|
||||||
- libnames += [
|
- libnames += [
|
||||||
- # Jflesch> Don't they have the equivalent of LD_LIBRARY_PATH on
|
- # Jflesch> Don't they have the equivalent of LD_LIBRARY_PATH on
|
||||||
- # Windows ?
|
- # Windows ?
|
||||||
@ -76,15 +85,16 @@ Index: current/src/pyocr/libtesseract/tesseract_raw.py
|
|||||||
|
|
||||||
g_libtesseract = None
|
g_libtesseract = None
|
||||||
|
|
||||||
@@ -346,12 +307,11 @@ def init(lang=None):
|
@@ -364,12 +331,12 @@ def init(lang=None):
|
||||||
try:
|
try:
|
||||||
if lang:
|
if lang:
|
||||||
lang = lang.encode("utf-8")
|
lang = lang.encode("utf-8")
|
||||||
- prefix = None
|
- prefix = None
|
||||||
- if TESSDATA_PREFIX:
|
- if TESSDATA_PREFIX: # pragma: no cover
|
||||||
- prefix = TESSDATA_PREFIX.encode("utf-8")
|
- prefix = TESSDATA_PREFIX.encode("utf-8")
|
||||||
+ prefix = os.getenv('TESSDATA_PREFIX', '@tesseract@/share/tessdata')
|
+
|
||||||
+ os.environ['TESSDATA_PREFIX'] = prefix
|
+ prefix = TESSDATA_PREFIX
|
||||||
|
+
|
||||||
g_libtesseract.TessBaseAPIInit3(
|
g_libtesseract.TessBaseAPIInit3(
|
||||||
ctypes.c_void_p(handle),
|
ctypes.c_void_p(handle),
|
||||||
- ctypes.c_char_p(prefix),
|
- ctypes.c_char_p(prefix),
|
||||||
@ -92,11 +102,11 @@ Index: current/src/pyocr/libtesseract/tesseract_raw.py
|
|||||||
ctypes.c_char_p(lang)
|
ctypes.c_char_p(lang)
|
||||||
)
|
)
|
||||||
g_libtesseract.TessBaseAPISetVariable(
|
g_libtesseract.TessBaseAPISetVariable(
|
||||||
Index: current/src/pyocr/tesseract.py
|
diff --git a/src/pyocr/tesseract.py b/src/pyocr/tesseract.py
|
||||||
===================================================================
|
index 7c30852..44e8446 100644
|
||||||
--- current.orig/src/pyocr/tesseract.py
|
--- a/src/pyocr/tesseract.py
|
||||||
+++ current/src/pyocr/tesseract.py
|
+++ b/src/pyocr/tesseract.py
|
||||||
@@ -31,8 +31,7 @@ from .builders import DigitBuilder # ba
|
@@ -28,8 +28,7 @@ from .builders import DigitBuilder # backward compatibility
|
||||||
from .error import TesseractError # backward compatibility
|
from .error import TesseractError # backward compatibility
|
||||||
from .util import digits_only
|
from .util import digits_only
|
||||||
|
|
||||||
@ -106,3 +116,233 @@ Index: current/src/pyocr/tesseract.py
|
|||||||
|
|
||||||
TESSDATA_EXTENSION = ".traineddata"
|
TESSDATA_EXTENSION = ".traineddata"
|
||||||
|
|
||||||
|
diff --git a/tests/tests_cuneiform.py b/tests/tests_cuneiform.py
|
||||||
|
index 45b7f6a..95f55c6 100644
|
||||||
|
--- a/tests/tests_cuneiform.py
|
||||||
|
+++ b/tests/tests_cuneiform.py
|
||||||
|
@@ -21,7 +21,7 @@ class TestCuneiform(BaseTest):
|
||||||
|
# XXX is it useful?
|
||||||
|
which.return_value = True
|
||||||
|
self.assertTrue(cuneiform.is_available())
|
||||||
|
- which.assert_called_once_with("cuneiform")
|
||||||
|
+ which.assert_called_once_with("@cuneiform@/bin/cuneiform")
|
||||||
|
|
||||||
|
@patch("subprocess.Popen")
|
||||||
|
def test_version(self, popen):
|
||||||
|
@@ -54,7 +54,7 @@ class TestCuneiform(BaseTest):
|
||||||
|
self.assertIn("eng", langs)
|
||||||
|
self.assertIn("fra", langs)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["cuneiform", "-l"],
|
||||||
|
+ ["@cuneiform@/bin/cuneiform", "-l"],
|
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.STDOUT
|
||||||
|
)
|
||||||
|
|
||||||
|
@@ -109,7 +109,7 @@ class TestCuneiformTxt(BaseTest):
|
||||||
|
output = cuneiform.image_to_string(self.image)
|
||||||
|
self.assertEqual(output, self._get_file_content("text").strip())
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
|
||||||
|
+ ["@cuneiform@/bin/cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
|
||||||
|
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.STDOUT
|
||||||
|
)
|
||||||
|
@@ -125,7 +125,7 @@ class TestCuneiformTxt(BaseTest):
|
||||||
|
builder=self.builder)
|
||||||
|
self.assertEqual(output, self._get_file_content("text").strip())
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["cuneiform", "-l", "fra", "-f", "text", "-o", self.tmp_filename,
|
||||||
|
+ ["@cuneiform@/bin/cuneiform", "-l", "fra", "-f", "text", "-o", self.tmp_filename,
|
||||||
|
"-"],
|
||||||
|
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.STDOUT
|
||||||
|
@@ -142,7 +142,7 @@ class TestCuneiformTxt(BaseTest):
|
||||||
|
builder=self.builder)
|
||||||
|
self.assertEqual(output, self._get_file_content("text").strip())
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
|
||||||
|
+ ["@cuneiform@/bin/cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
|
||||||
|
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.STDOUT
|
||||||
|
)
|
||||||
|
@@ -173,7 +173,7 @@ class TestCuneiformTxt(BaseTest):
|
||||||
|
output = cuneiform.image_to_string(image, builder=self.builder)
|
||||||
|
self.assertEqual(output, self._get_file_content("text").strip())
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
|
||||||
|
+ ["@cuneiform@/bin/cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
|
||||||
|
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.STDOUT
|
||||||
|
)
|
||||||
|
@@ -227,7 +227,7 @@ class TestCuneiformWordBox(BaseTest):
|
||||||
|
output = cuneiform.image_to_string(self.image,
|
||||||
|
builder=self.builder)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
|
||||||
|
+ ["@cuneiform@/bin/cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
|
||||||
|
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.STDOUT
|
||||||
|
)
|
||||||
|
@@ -280,7 +280,7 @@ class TestCuneiformLineBox(BaseTest):
|
||||||
|
output = cuneiform.image_to_string(self.image,
|
||||||
|
builder=self.builder)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
|
||||||
|
+ ["@cuneiform@/bin/cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
|
||||||
|
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.STDOUT
|
||||||
|
)
|
||||||
|
diff --git a/tests/tests_libtesseract.py b/tests/tests_libtesseract.py
|
||||||
|
index ad7fdc9..57e7a60 100644
|
||||||
|
--- a/tests/tests_libtesseract.py
|
||||||
|
+++ b/tests/tests_libtesseract.py
|
||||||
|
@@ -165,7 +165,8 @@ class TestLibTesseractRaw(BaseTest):
|
||||||
|
args = libtess.TessBaseAPIInit3.call_args[0]
|
||||||
|
self.assertEqual(len(args), 3)
|
||||||
|
self.assertEqual(args[0].value, self.handle)
|
||||||
|
- self.assertEqual(args[1].value, None)
|
||||||
|
+ # we hardcode tesseract data, so we don't get None
|
||||||
|
+ #self.assertEqual(args[1].value, None)
|
||||||
|
self.assertEqual(args[2].value, lang.encode() if lang else None)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
@@ -201,7 +202,8 @@ class TestLibTesseractRaw(BaseTest):
|
||||||
|
args = libtess.TessBaseAPIInit3.call_args[0]
|
||||||
|
self.assertEqual(len(args), 3)
|
||||||
|
self.assertEqual(args[0].value, self.handle)
|
||||||
|
- self.assertEqual(args[1].value, None)
|
||||||
|
+ # we hardcode tesseract data, so we don't get None
|
||||||
|
+ #self.assertEqual(args[1].value, None)
|
||||||
|
self.assertEqual(args[2].value, lang.encode() if lang else None)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
diff --git a/tests/tests_tesseract.py b/tests/tests_tesseract.py
|
||||||
|
index 1a55567..a24d96f 100644
|
||||||
|
--- a/tests/tests_tesseract.py
|
||||||
|
+++ b/tests/tests_tesseract.py
|
||||||
|
@@ -36,7 +36,7 @@ class TestTesseract(BaseTest):
|
||||||
|
def test_available(self, which):
|
||||||
|
which.return_value = True
|
||||||
|
self.assertTrue(tesseract.is_available())
|
||||||
|
- which.assert_called_once_with("tesseract")
|
||||||
|
+ which.assert_called_once_with("@tesseract@/bin/tesseract")
|
||||||
|
|
||||||
|
@patch("subprocess.Popen")
|
||||||
|
def test_version_error(self, popen):
|
||||||
|
@@ -156,7 +156,7 @@ class TestTesseract(BaseTest):
|
||||||
|
for lang in ("eng", "fra", "jpn", "osd"):
|
||||||
|
self.assertIn(lang, langs)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "--list-langs"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "--list-langs"],
|
||||||
|
startupinfo=None, creationflags=0,
|
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.STDOUT
|
||||||
|
)
|
||||||
|
@@ -171,7 +171,7 @@ class TestTesseract(BaseTest):
|
||||||
|
self.assertEqual(te.exception.status, 1)
|
||||||
|
self.assertEqual("unable to get languages", te.exception.message)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "--list-langs"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "--list-langs"],
|
||||||
|
startupinfo=None, creationflags=0,
|
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.STDOUT
|
||||||
|
)
|
||||||
|
@@ -248,7 +248,7 @@ class TestTesseract(BaseTest):
|
||||||
|
self.assertEqual(status, 0)
|
||||||
|
self.assertEqual(error, message)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "input.bmp", "output"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input.bmp", "output"],
|
||||||
|
cwd=tmpdir,
|
||||||
|
startupinfo=None,
|
||||||
|
creationflags=0,
|
||||||
|
@@ -271,7 +271,7 @@ class TestTesseract(BaseTest):
|
||||||
|
self.assertEqual(status, 0)
|
||||||
|
self.assertEqual(error, message)
|
||||||
|
popen.assert_called_with(
|
||||||
|
- ["tesseract", "input2.bmp", "output2", "-l", "fra", "--psm", "3"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input2.bmp", "output2", "-l", "fra", "--psm", "3"],
|
||||||
|
cwd=tmpdir,
|
||||||
|
startupinfo=None,
|
||||||
|
creationflags=0,
|
||||||
|
@@ -302,7 +302,7 @@ class TestTesseract(BaseTest):
|
||||||
|
self.assertEqual(result["angle"], 90)
|
||||||
|
self.assertEqual(result["confidence"], 9.30)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "input.bmp", "stdout", "--psm", "0"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input.bmp", "stdout", "--psm", "0"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
shell=False,
|
||||||
|
startupinfo=None,
|
||||||
|
@@ -338,7 +338,7 @@ class TestTesseract(BaseTest):
|
||||||
|
self.assertEqual(result["angle"], 90)
|
||||||
|
self.assertEqual(result["confidence"], 9.30)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "input.bmp", "stdout", "--psm", "0"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input.bmp", "stdout", "--psm", "0"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
shell=False,
|
||||||
|
startupinfo=None,
|
||||||
|
@@ -371,7 +371,7 @@ class TestTesseract(BaseTest):
|
||||||
|
self.assertEqual(result["angle"], 90)
|
||||||
|
self.assertEqual(result["confidence"], 9.30)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "input.bmp", "stdout",
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input.bmp", "stdout",
|
||||||
|
"--psm", "0", "-l", "osd"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
shell=False,
|
||||||
|
@@ -399,7 +399,7 @@ class TestTesseract(BaseTest):
|
||||||
|
with self.assertRaises(tesseract.TesseractError) as te:
|
||||||
|
tesseract.detect_orientation(self.image)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "input.bmp", "stdout", "--psm", "0"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input.bmp", "stdout", "--psm", "0"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
shell=False,
|
||||||
|
startupinfo=None,
|
||||||
|
@@ -433,7 +433,7 @@ class TestTesseract(BaseTest):
|
||||||
|
with self.assertRaises(tesseract.TesseractError) as te:
|
||||||
|
tesseract.detect_orientation(self.image)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "input.bmp", "stdout", "--psm", "0"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input.bmp", "stdout", "--psm", "0"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
shell=False,
|
||||||
|
startupinfo=None,
|
||||||
|
@@ -467,7 +467,7 @@ class TestTesseract(BaseTest):
|
||||||
|
self.assertEqual(result["angle"], 90)
|
||||||
|
self.assertEqual(result["confidence"], 9.30)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "input.bmp", "stdout", "-psm", "0"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input.bmp", "stdout", "-psm", "0"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
shell=False,
|
||||||
|
startupinfo=None,
|
||||||
|
@@ -500,7 +500,7 @@ class TestTesseract(BaseTest):
|
||||||
|
self.assertEqual(result["angle"], 90)
|
||||||
|
self.assertEqual(result["confidence"], 9.30)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "input.bmp", "stdout", "-psm", "0", "-l", "fra"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input.bmp", "stdout", "-psm", "0", "-l", "fra"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
shell=False,
|
||||||
|
startupinfo=None,
|
||||||
|
@@ -527,7 +527,7 @@ class TestTesseract(BaseTest):
|
||||||
|
with self.assertRaises(tesseract.TesseractError) as te:
|
||||||
|
tesseract.detect_orientation(self.image)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "input.bmp", "stdout", "-psm", "0"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input.bmp", "stdout", "-psm", "0"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
shell=False,
|
||||||
|
startupinfo=None,
|
||||||
|
@@ -561,7 +561,7 @@ class TestTesseract(BaseTest):
|
||||||
|
with self.assertRaises(tesseract.TesseractError) as te:
|
||||||
|
tesseract.detect_orientation(self.image)
|
||||||
|
popen.assert_called_once_with(
|
||||||
|
- ["tesseract", "input.bmp", "stdout", "-psm", "0"],
|
||||||
|
+ ["@tesseract@/bin/tesseract", "input.bmp", "stdout", "-psm", "0"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
shell=False,
|
||||||
|
startupinfo=None,
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user