Merge remote-tracking branch 'upstream/master' into staging

This commit is contained in:
John Ericson 2020-03-13 17:39:11 -04:00
commit 84497cabd1
158 changed files with 2909 additions and 2027 deletions

View File

@ -56,6 +56,9 @@ let
# back-compat aliases
platforms = systems.doubles;
# linux kernel configuration
kernel = callLibs ./kernel.nix;
inherit (builtins) add addErrorContext attrNames concatLists
deepSeq elem elemAt filter genericClosure genList getAttr
hasAttr head isAttrs isBool isInt isList isString length

View File

@ -1,12 +1,7 @@
{ lib, version }:
{ 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 :)
@ -18,4 +13,14 @@ with lib;
module = { tristate = "m"; };
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);
};
}

View File

@ -1958,7 +1958,7 @@
drewrisinger = {
email = "drisinger+nixpkgs@gmail.com";
github = "drewrisinger";
gitHubId = 10198051;
githubId = 10198051;
name = "Drew Risinger";
};
dsferruzza = {
@ -3099,7 +3099,7 @@
illiusdope = {
email = "mat@marini.ca";
github = "illiusdope";
gitHubId = 61913481;
githubId = 61913481;
name = "Mat Marini";
};
ilya-fedin = {
@ -4544,6 +4544,12 @@
githubId = 1711539;
name = "matklad";
};
matt-snider = {
email = "matt.snider@protonmail.com";
github = "matt-snider";
githubId = 11810057;
name = "Matt Snider";
};
matthewbauer = {
email = "mjbauer95@gmail.com";
github = "matthewbauer";
@ -4884,7 +4890,7 @@
mmilata = {
email = "martin@martinmilata.cz";
github = "mmilata";
gitHubId = 85857;
githubId = 85857;
name = "Martin Milata";
};
mmlb = {
@ -7253,6 +7259,12 @@
githubId = 844343;
name = "Thiago K. Okada";
};
thmzlt = {
email = "git@thomazleite.com";
github = "thmzlt";
githubId = 7709;
name = "Thomaz Leite";
};
ThomasMader = {
email = "thomas.mader@gmail.com";
github = "ThomasMader";

View File

@ -41,6 +41,12 @@ let
# default to the argument. That way this new default could propagate all
# they way through, but has the last priority behind everything else.
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_);
};
};

View File

@ -175,13 +175,13 @@ in rec {
nodeNames = builtins.attrNames nodes;
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
if lib.length invalidNodeNames > 0 then
throw ''
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.
Please stick to alphanumeric chars and underscores as separation.

View File

@ -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 {
type = types.lines;
default = "";
example = "192.168.0.1 lanlocalhost";
description = ''
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" ];
};
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 =
{ # /etc/services: TCP/UDP port assignments.
services.source = pkgs.iana-etc + "/etc/services";
@ -167,12 +186,8 @@ in
protocols.source = pkgs.iana-etc + "/etc/protocols";
# /etc/hosts: Hostname-to-IP mappings.
hosts.text = let
oneToString = set: ip: ip + " " + concatStringsSep " " set.${ip};
allToString = set: concatMapStringsSep "\n" (oneToString set) (attrNames set);
in ''
${allToString (filterAttrs (_: v: v != []) cfg.hosts)}
${cfg.extraHosts}
hosts.source = pkgs.runCommandNoCC "hosts" {} ''
cat ${escapeShellArgs cfg.hostFiles} > $out
'';
# /etc/host.conf: resolver configuration file

View File

@ -216,6 +216,14 @@ in
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 = {

View File

@ -406,6 +406,7 @@
./services/mail/sympa.nix
./services/mail/nullmailer.nix
./services/misc/airsonic.nix
./services/misc/ankisyncd.nix
./services/misc/apache-kafka.nix
./services/misc/autofs.nix
./services/misc/autorandr.nix

View File

@ -47,7 +47,7 @@ in {
config = mkIf cfg.enable {
security.wrappers.firejail.source = "${lib.getBin pkgs.firejail}/bin/firejail";
environment.systemPackages = [ wrappedBins ];
environment.systemPackages = [ pkgs.firejail ] ++ [ wrappedBins ];
};
meta.maintainers = with maintainers; [ peterhoeg ];

View File

@ -14,18 +14,34 @@ let
base_dir = ${baseDir}
protocols = ${concatStringsSep " " cfg.protocols}
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
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
'')
(
concatStringsSep "\n" (
mapAttrsToList (
protocol: plugins: ''
protocol ${protocol} {
mail_plugins = $mail_plugins ${concatStringsSep " " plugins.enable}
}
''
) 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}
@ -45,55 +61,58 @@ let
}
''
(optionalString cfg.enablePAM ''
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.enablePAM ''
userdb {
driver = passwd
}
}
'')
(optionalString cfg.enableQuota ''
mail_plugins = $mail_plugins quota
service quota-status {
executable = ${dovecotPkg}/libexec/dovecot/quota-status -p postfix
inet_listener {
port = ${cfg.quotaPort}
passdb {
driver = pam
args = ${optionalString cfg.showPAMFailure "failure_show_msg=yes"} dovecot2
}
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}
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%%
}
'')
(
optionalString (cfg.mailboxes != []) ''
protocol imap {
namespace inbox {
inbox=yes
${concatStringsSep "\n" (map mailboxConfig cfg.mailboxes)}
}
}
''
)
(
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
];
@ -107,7 +126,7 @@ let
mailbox "${mailbox.name}" {
auto = ${toString mailbox.auto}
'' + optionalString (mailbox.specialUse != null) ''
special_use = \${toString mailbox.specialUse}
special_use = \${toString mailbox.specialUse}
'' + "}";
mailboxes = { ... }: {
@ -160,7 +179,7 @@ in
protocols = mkOption {
type = types.listOf types.str;
default = [ ];
default = [];
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.";
};
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 {
type = types.nullOr types.path;
default = null;
@ -305,27 +361,33 @@ in
enable = true;
params.dovecot2 = {};
};
services.dovecot2.protocols =
optional cfg.enableImap "imap"
++ optional cfg.enablePop3 "pop3"
++ optional cfg.enableLmtp "lmtp";
services.dovecot2.protocols =
optional cfg.enableImap "imap"
++ optional cfg.enablePop3 "pop3"
++ optional cfg.enableLmtp "lmtp";
services.dovecot2.mailPlugins = mkIf cfg.enableQuota {
globally.enable = [ "quota" ];
perProtocol.imap.enable = [ "imap_quota" ];
};
users.users = {
dovenull =
{ uid = config.ids.uids.dovenull2;
{
uid = config.ids.uids.dovenull2;
description = "Dovecot user for untrusted logins";
group = "dovenull";
};
} // optionalAttrs (cfg.user == "dovecot2") {
dovecot2 =
{ uid = config.ids.uids.dovecot2;
description = "Dovecot user";
group = cfg.group;
};
{
uid = config.ids.uids.dovecot2;
description = "Dovecot user";
group = cfg.group;
};
} // optionalAttrs (cfg.createMailUser && cfg.mailUser != null) {
${cfg.mailUser} =
{ description = "Virtual Mail User"; } //
optionalAttrs (cfg.mailGroup != null)
{ description = "Virtual Mail User"; } // optionalAttrs (cfg.mailGroup != null)
{ group = cfg.mailGroup; };
};
@ -334,7 +396,7 @@ in
} // optionalAttrs (cfg.group == "dovecot2") {
dovecot2.gid = config.ids.gids.dovecot2;
} // optionalAttrs (cfg.createMailUser && cfg.mailGroup != null) {
${cfg.mailGroup} = { };
${cfg.mailGroup} = {};
};
environment.etc."dovecot/modules".source = modulesDir;
@ -363,15 +425,19 @@ in
rm -rf ${stateDir}/sieve
'' + optionalString (cfg.sieveScripts != {}) ''
mkdir -p ${stateDir}/sieve
${concatStringsSep "\n" (mapAttrsToList (to: from: ''
if [ -d '${from}' ]; then
mkdir '${stateDir}/sieve/${to}'
cp -p "${from}/"*.sieve '${stateDir}/sieve/${to}'
else
cp -p '${from}' '${stateDir}/sieve/${to}'
fi
${pkgs.dovecot_pigeonhole}/bin/sievec '${stateDir}/sieve/${to}'
'') cfg.sieveScripts)}
${concatStringsSep "\n" (
mapAttrsToList (
to: from: ''
if [ -d '${from}' ]; then
mkdir '${stateDir}/sieve/${to}'
cp -p "${from}/"*.sieve '${stateDir}/sieve/${to}'
else
cp -p '${from}' '${stateDir}/sieve/${to}'
fi
${pkgs.dovecot_pigeonhole}/bin/sievec '${stateDir}/sieve/${to}'
''
) cfg.sieveScripts
)}
chown -R '${cfg.mailUser}:${cfg.mailGroup}' '${stateDir}/sieve'
'';
};
@ -379,17 +445,21 @@ in
environment.systemPackages = [ dovecotPkg ];
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";
}
{ 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";
}
{ assertion = cfg.showPAMFailure -> cfg.enablePAM;
{
assertion = cfg.showPAMFailure -> cfg.enablePAM;
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";
}
];

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

View File

@ -29,17 +29,13 @@ let
};
# Additional /etc/hosts entries for peers with an associated hostname
cjdnsExtraHosts = import (pkgs.runCommand "cjdns-hosts" {}
# Generate a builder that produces an output usable as a Nix string value
''
exec >$out
echo \'\'
${concatStringsSep "\n" (mapAttrsToList (k: v:
optionalString (v.hostname != "")
"echo $(${pkgs.cjdns}/bin/publictoip6 ${v.publicKey}) ${v.hostname}")
(cfg.ETHInterface.connectTo // cfg.UDPInterface.connectTo))}
echo \'\'
'');
cjdnsExtraHosts = pkgs.runCommandNoCC "cjdns-hosts" {} ''
exec >$out
${concatStringsSep "\n" (mapAttrsToList (k: v:
optionalString (v.hostname != "")
"echo $(${pkgs.cjdns}/bin/publictoip6 ${v.publicKey}) ${v.hostname}")
(cfg.ETHInterface.connectTo // cfg.UDPInterface.connectTo))}
'';
parseModules = x:
x // { connectTo = mapAttrs (name: value: { inherit (value) password publicKey; }) x.connectTo; };
@ -144,13 +140,15 @@ in
connectTo = mkOption {
type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
default = { };
example = {
"192.168.1.1:27313" = {
hostname = "homer.hype";
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
};
};
example = literalExample ''
{
"192.168.1.1:27313" = {
hostname = "homer.hype";
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
};
}
'';
description = ''
Credentials for making UDP tunnels.
'';
@ -189,13 +187,15 @@ in
connectTo = mkOption {
type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
default = { };
example = {
"01:02:03:04:05:06" = {
hostname = "homer.hype";
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
};
};
example = literalExample ''
{
"01:02:03:04:05:06" = {
hostname = "homer.hype";
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
};
}
'';
description = ''
Credentials for connecting look similar to UDP credientials
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 = [
{ assertion = ( cfg.ETHInterface.bind != "" || cfg.UDPInterface.bind != "" || cfg.confFile != null );

View File

@ -23,6 +23,8 @@ let
restrict -6 ::1
${toString (map (server: "server " + server + " iburst\n") cfg.servers)}
${cfg.extraConfig}
'';
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 {
type = types.listOf types.str;
description = "Extra flags passed to the ntpd command.";

View File

@ -15,6 +15,7 @@ let
map (childConfig:
(import ../../../lib/eval-config.nix {
inherit baseModules;
system = config.nixpkgs.initialSystem;
modules =
(optionals inheritParent modules)
++ [ ./no-clone.nix ]

View File

@ -118,12 +118,17 @@ in
fs' = utils.escapeSystemdPath fs;
in nameValuePair "btrfs-scrub-${fs'}" {
description = "btrfs scrub on ${fs}";
# scrub prevents suspend2ram or proper shutdown
conflicts = [ "shutdown.target" "sleep.target" ];
before = [ "shutdown.target" "sleep.target" ];
serviceConfig = {
Type = "oneshot";
# simple and not oneshot, otherwise ExecStop is not used
Type = "simple";
Nice = 19;
IOSchedulingClass = "idle";
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);

View File

@ -29,10 +29,10 @@ import ./make-test-python.nix {
)
clone.succeed("cowsay hey")
clone.succeed("hello")
children.wait_for_unit("default.target")
children.succeed("cowsay hey")
children.fail("hello")
children.wait_for_unit("default.target")
children.succeed("cowsay hey")
children.fail("hello")
with subtest("Nested children do not inherit from parent"):
children.succeed(

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "spotify-tui";
version = "0.15.0";
version = "0.16.0";
src = fetchFromGitHub {
owner = "Rigellute";
repo = "spotify-tui";
rev = "v${version}";
sha256 = "19mnnpsidwr5y6igs478gfp7rq76378f66nzfhj4mraqd2jc4nzj";
sha256 = "0fmj25zjg12v0kyanic343lrdhxkh290v88qiz6ac47g8bdy3c83";
};
cargoSha256 = "1zhv3sla92z7pjdnf0r4x85n7z9spi70vgy4kw72rdc5v9bmj7q8";
cargoSha256 = "1n8aacy0hapjm10hmgqm07rb5c0ngmzr1s116pspsl7cdszza6xi";
nativeBuildInputs = [ pkgconfig ] ++ stdenv.lib.optionals stdenv.isLinux [ python3 ];
buildInputs = [ openssl ]

View File

@ -250,12 +250,12 @@ in
clion = buildClion rec {
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";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
sha256 = "1dvnb6mb8xgrgqzqxm2zirwm77w4pci6ibwsdh6wqpnzpqksh4iw"; /* updated by script */
sha256 = "0whd379ck79vhz14yh5g6vpl4cvgw4z9ag4mwgizmd8kbcfnvdxd"; /* updated by script */
};
wmClass = "jetbrains-clion";
update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@ -263,12 +263,12 @@ in
datagrip = buildDataGrip rec {
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";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
sha256 = "1aypzs5q9zgggxbpaxfd8r5ds0ck31lb00csn62npndqxa3bj7z5"; /* updated by script */
sha256 = "0zbyiw60gqcqi5bbazmsbs4qzmmxx1q034hs36k1dryf2y02jyih"; /* updated by script */
};
wmClass = "jetbrains-datagrip";
update-channel = "DataGrip RELEASE";
@ -276,12 +276,12 @@ in
goland = buildGoland rec {
name = "goland-${version}";
version = "2019.3.2"; /* updated by script */
version = "2019.3.3"; /* updated by script */
description = "Up and Coming Go IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/go/${name}.tar.gz";
sha256 = "0namvc8dfm562dgvs4mrv1c6lyi4j8yxw402fkw55l0xqv3ff0a9"; /* updated by script */
sha256 = "091ym7vyb0hxzz6a1jfb88x0lj499vjd04bq8swmw14m1akmk3lf"; /* updated by script */
};
wmClass = "jetbrains-goland";
update-channel = "GoLand RELEASE";
@ -315,12 +315,12 @@ in
phpstorm = buildPhpStorm rec {
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";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "02qnkcri49chbbpx2f338cfs5w2kg1l7zfn6fa7qrla82zpjsqlm"; /* updated by script */
sha256 = "03ag1a40l1k8sqlywcs7kjn02c65xm3l9riyimg4hx23yi17w18h"; /* updated by script */
};
wmClass = "jetbrains-phpstorm";
update-channel = "PhpStorm RELEASE";
@ -354,12 +354,12 @@ in
rider = buildRider rec {
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";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
sha256 = "0cs8fc3h6d2m84ppiqjy0f3xklpc5gf0i6c4bzv04y8ngh0cwgl2"; /* updated by script */
sha256 = "17axv0v31dpmjcaij5qpqqm071mwhmf1ahy0y0h96limq8cw9872"; /* updated by script */
};
wmClass = "jetbrains-rider";
update-channel = "Rider RELEASE";
@ -367,12 +367,12 @@ in
ruby-mine = buildRubyMine rec {
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";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "0mwzhvrhvsyb8r7sjcigv9jazim1zyipb3ym4xsd2gyl3ans2vm9"; /* updated by script */
sha256 = "0lkzb3rifr7r23vijcz7rqcxjpykx7dkghiq5prk1zz83hzi4b2j"; /* updated by script */
};
wmClass = "jetbrains-rubymine";
update-channel = "RubyMine RELEASE";
@ -380,12 +380,12 @@ in
webstorm = buildWebStorm rec {
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";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
sha256 = "0mbfkwjqg2d1mkka0vajx41nv4f07y1w7chk6ii7sylaj7ypzi13"; /* updated by script */
sha256 = "1b7hwqpk96g4il5rbxb8cpqsizgc9k5kb8vkvkcc9xh7qqz02i85"; /* updated by script */
};
wmClass = "jetbrains-webstorm";
update-channel = "WebStorm RELEASE";

View File

@ -3,13 +3,13 @@
mkDerivation rec {
pname = "texstudio";
version = "2.12.20";
version = "2.12.22";
src = fetchFromGitHub {
owner = "${pname}-org";
repo = pname;
rev = version;
sha256 = "0hywx2knqdrslzmm4if476ryf4ma0aw5j8kdp6lyrz2jx7az2gqa";
sha256 = "037jvsfln8wav17qj9anxz2a7p51v7ky85wmhdj2hgwp40al651g";
};
nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
@ -27,6 +27,6 @@ mkDerivation rec {
homepage = http://texstudio.sourceforge.net;
license = licenses.gpl2Plus;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ cfouche ];
maintainers = with maintainers; [ ajs124 cfouche ];
};
}

View File

@ -62,7 +62,7 @@ in
else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
++ [ libsecret libXScrnSaver ];
runtimeDependencies = [ systemd.lib fontconfig.lib ];
runtimeDependencies = lib.optional (stdenv.isLinux) [ systemd.lib fontconfig.lib ];
nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;

View File

@ -122,7 +122,8 @@ stdenv.mkDerivation rec {
# --python-expr is used to workaround https://developer.blender.org/T74304
postInstall = ''
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

View File

@ -2,18 +2,18 @@
buildGoModule rec {
pname = "cheat";
version = "3.0.3";
version = "3.0.7";
src = fetchFromGitHub {
owner = "chrisallenlane";
repo = "cheat";
rev = version;
sha256 = "19w1admdcgld9vlc4fsyc5d9bi6rmwhr2x2ji43za2vjlk34hnnx";
sha256 = "0i5j85ciimk14kndb81qxny1ksr57sr9xdvjn7x1ibc7h6pikjn5";
};
subPackages = [ "cmd/cheat" ];
modSha256 = "189cqnfl403f4lk7g9v68mwk93ciglqli639dk4x9091lvn5gq5q";
modSha256 = "1v9hvxygwvqma2j5yz7r95g34xpwb0n29hm39i89vgmvl3hy67s0";
meta = with stdenv.lib; {
description = "Create and view interactive cheatsheets on the command-line";

View File

@ -68,11 +68,6 @@ stdenv.mkDerivation rec {
(if i3Support || i3GapsSupport then makeWrapper else null)
];
postConfigure = ''
substituteInPlace generated-sources/settings.hpp \
--replace "${stdenv.cc}" "${stdenv.cc.name}"
'';
postInstall = if (i3Support || i3GapsSupport) then ''
wrapProgram $out/bin/polybar \
--prefix PATH : "${if i3Support then i3 else i3-gaps}/bin"

View File

@ -16,10 +16,10 @@ let
pname = "simplenote";
version = "1.14.0";
version = "1.15.0";
sha256 = {
x86_64-linux = "1l61xf1i80fd8ymmnrb3plqn70jsxd8wyg0n6f69bz3k8s5g8cxi";
x86_64-linux = "08h3g2rw75k63ssd62c6jrb2dy9sz85y5jpfj5np64dvw70a1811";
}.${system} or throwSystem;
meta = with stdenv.lib; {

View File

@ -11,8 +11,18 @@ pythonPackages.buildPythonApplication rec {
sha256 = "0f14s4qx3q5pr5vn460c34b5mbz2xs62d8ljs3kic8gmdn8x2knm";
};
outputs = [ "out" "man" ];
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 = {
description = "A simple curses interface for MediaWiki sites such as Wikipedia";
homepage = https://github.com/ids1024/wikicurses/;

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "zola";
version = "0.10.0";
version = "0.10.1";
src = fetchFromGitHub {
owner = "getzola";
repo = pname;
rev = "v${version}";
sha256 = "112aqv21gy1fbly5v2x3ph32pr82d1mwh0q57yfaaqygz2madypb";
sha256 = "07zg4ia983rgvgvmw4xbi347lr4rxlf1xv8rw72cflc74kyia67n";
};
cargoSha256 = "0hqa60bx8pxhgad7x6r4zbwddrkcspnnp53bl94zbf3j47p10ggz";
cargoSha256 = "13lnl01h8k8xv2ls1kjskfnyjmmk8iyk2mvbk01p2wmhp5m876md";
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ openssl ]

View File

@ -45,11 +45,11 @@ let
flash = stdenv.mkDerivation rec {
pname = "flashplayer-ppapi";
version = "32.0.0.330";
version = "32.0.0.344";
src = fetchzip {
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
sha256 = "08gpx0fq0r1sz5smfdgv4fkfwq1hdijv4dw432d6jdz8lq09y1nk";
sha256 = "05ijlgsby9zxx0qs6f3vav1z0p6xr1cg6idl4akxvfmsl6hn6hkq";
stripRoot = false;
};

View File

@ -74,7 +74,7 @@ let
in
stdenv.mkDerivation rec {
pname = "flashplayer";
version = "32.0.0.330";
version = "32.0.0.344";
src = fetchurl {
url =
@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
sha256 =
if debug then
if arch == "x86_64" then
"1k7h1p6g1vf96v31j1n8638jdxacap0729n0dnmh6l0h5q518k1b"
"1kkwijxlcs1rlqxr1vj51h95fwwrp5m0c9lngqpncgmmhh8v9dyr"
else
"0gabgllx79s6rhv0zivfj6z79rcsdrzrdm94xdr19c11dsbqxd6b"
"0r47s19fw7gsph73rd5jb2zfsjwz7mjawm6c49rir9rsa0zxrsks"
else
if arch == "x86_64" then
"1pf3k1x8c2kbkc9pf9y5n4jilp3g41v8v0q5ng77sbnl92s35zsj"
"1ki3i7zw0q48xf01xjfm1mpizc5flk768p9hqxpg881r4h65dh6b"
else
"1xibm6ffm09c553g100cgb6grnk21dfq8m81yy0jskph157vg962";
"1v527i60sljwyvv4l1kg9ml05skjgm3naynlswd35hsz258jnxl4";
};
nativeBuildInputs = [ unzip ];

View File

@ -50,7 +50,7 @@
stdenv.mkDerivation {
pname = "flashplayer-standalone";
version = "32.0.0.330";
version = "32.0.0.344";
src = fetchurl {
url =
@ -60,9 +60,9 @@ stdenv.mkDerivation {
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz";
sha256 =
if debug then
"0wrkg2in4c0bnbifm06m4rdggzs8zbaxwrh6z3mpbf4p3bl6xg84"
"1ymsk07xmnanyv86r58ar1l4wgjarlq0fc111ajc76pp8dsxnfx8"
else
"08qxa3zanlgmn8sn7crz242adx10jqymd4gzf1m0zlczw20ar09c";
"0wiwpn4a0jxslw4ahalq74rksn82y0aqa3lrjr9qs7kdcak74vky";
};
nativeBuildInputs = [ unzip ];

View File

@ -2,21 +2,21 @@
buildGoModule rec {
pname = "atlantis";
version = "0.10.1";
version = "0.11.1";
src = fetchFromGitHub {
owner = "runatlantis";
repo = "atlantis";
rev = "v${version}";
sha256 = "08k2dgz6rph68647ah1rdp7hqa5h1ar4gdy7vdjy5kn7gz21gmri";
sha256 = "1ylk6n13ln6yaq4nc4n7fm00wfiyqi2x33sca5avzsvd1b387kk6";
};
modSha256 = "1i4s3xcq2qc3zy00wk2l77935ilm6n5k1msilmdnj0061ia4860y";
modSha256 = "1bhplk3p780llpj9l0fwcyli74879968d6j582mvjwvf2winbqzq";
subPackages = [ "." ];
meta = with stdenv.lib; {
homepage = https://github.com/runatlantis/atlantis;
homepage = "https://github.com/runatlantis/atlantis";
description = "Terraform Pull Request Automation";
platforms = platforms.all;
license = licenses.asl20;

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "helm";
version = "3.1.1";
version = "3.1.2";
src = fetchFromGitHub {
owner = "helm";
repo = "helm";
rev = "v${version}";
sha256 = "16hbwmgq14g28r9s0ipnpiqlppyh57yrcqcspmj05vrf9jsg5vwj";
sha256 = "0pg5cwgyfb4isy2fn233kj3bdn0i8qqp90yzix0khs5maalpnrk1";
};
modSha256 = "0618zzi4x37ahsrazsr82anghhfva8yaryzb3p5d737p3ixbiyv8";

View File

@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
homepage = https://mesosphere.github.io/marathon;
description = "Cluster-wide init and control system for services in cgroups or Docker containers";
license = licenses.asl20;
maintainers = with maintainers; [ kamilchm kevincox pradeepchhetri ];
maintainers = with maintainers; [ kamilchm pradeepchhetri ];
platforms = platforms.linux;
};
}

View File

@ -256,7 +256,7 @@ in stdenv.mkDerivation rec {
homepage = "http://mesos.apache.org";
license = licenses.asl20;
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;
};
}

View File

@ -1,18 +1,23 @@
{stdenv, fetchurl, cmake, flex, bison, openssl, libpcap, zlib, file, curl
, libmaxminddb, gperftools, python, swig, rocksdb }:
let
preConfigure = (import ./script.nix);
in
stdenv.mkDerivation rec {
pname = "zeek";
version = "3.0.1";
version = "3.0.3";
src = fetchurl {
url = "https://www.zeek.org/downloads/zeek-${version}.tar.gz";
sha256 = "1lhik212wrbi092qizc08f3i0b9pj318sxwm0abc5jc3v3pz7x3r";
url = "https://old.zeek.org/downloads/zeek-${version}.tar.gz";
sha256 = "0xlw5v83qbgy23wdcddmvan2pid28mw745g4fc1z5r18kp67i8a2";
};
nativeBuildInputs = [ cmake flex bison file ];
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;
cmakeFlags = [

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

View File

@ -1,4 +1,4 @@
{ lib, stdenv, buildPythonApplication, fetchPypi, pythonOlder,
{ lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder,
attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
@ -9,13 +9,16 @@
buildPythonApplication rec {
pname = "pantalaimon";
version = "0.4";
version = "0.5.1";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "1canj9w72wh1rcw6fivrvaahpxy13gb6gh1k8nss6bgixalvnq9m";
# pypi tarball miss tests
src = fetchFromGitHub {
owner = "matrix-org";
repo = pname;
rev = version;
sha256 = "18jihvqlfk8lx97hxcr36zdkp2sffg2l8mkg5lflylwcgwy1dx0y";
};
propagatedBuildInputs = [

View File

@ -2,17 +2,21 @@
buildGoModule rec {
pname = "ipfs";
version = "0.4.22";
version = "0.4.23";
rev = "v${version}";
src = fetchFromGitHub {
owner = "ipfs";
repo = "go-ipfs";
inherit rev;
sha256 = "1drwkam2m1qdny51l7ja9vd33jffy8w0z0wbp28ajx4glp0kyra2";
sha256 = "19m1bhqf1jghdv2ngdnjdk1kvjcxbkgm1ccdkmkabv4ii43h8jwm";
};
modSha256 = "0jbzkifn88myk2vpd390clyl835978vpcfz912y8cnl26s6q677n";
postPatch = ''
rm -rf test/dependencies
'';
modSha256 = "12m4ind1s8zaa6kssblc28z2cafy20w2jp80kzif39hg5ar9bijm";
meta = with stdenv.lib; {
description = "A global, versioned, peer-to-peer filesystem";

View File

@ -107,6 +107,6 @@ stdenv.mkDerivation rec {
homepage = "https://www.claws-mail.org/";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ fpletz globin ];
maintainers = with maintainers; [ fpletz globin orivej ];
};
}

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

View File

@ -4,14 +4,14 @@
}:
stdenv.mkDerivation rec {
version = "20191207";
version = "20200313";
pname = "neomutt";
src = fetchFromGitHub {
owner = "neomutt";
repo = "neomutt";
rev = version;
sha256 = "147yjpqnsbfy01fhsflxlixk0985r91a6bjmqq3cwmf7gka3sihm";
sha256 = "1k4k07l6h5krc3fx928qvdq3ssw9fxn95aj7k885xlckd2i1lnb5";
};
buildInputs = [
@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
description = "A small but very powerful text-based mail client";
homepage = http://www.neomutt.org;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ cstrahan erikryb jfrankenau vrthra ];
maintainers = with maintainers; [ cstrahan erikryb jfrankenau vrthra ma27 ];
platforms = platforms.unix;
};
}

View File

@ -20,7 +20,6 @@ let
version = source.version;
patches = (source.patches or [])
++ optional jackSupport ./mumble-jack-support.patch
++ [ ./fix-rnnoise-argument.patch ];
nativeBuildInputs = [ pkgconfig python qt5.qmake ]

View File

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

View File

@ -1,6 +1,8 @@
{stdenv, fetchFromGitHub, ocaml, lablgtk, fontschumachermisc, xset, makeWrapper, ncurses
{stdenv, fetchFromGitHub, ocamlPackages, fontschumachermisc, xset, makeWrapper, ncurses
, enableX11 ? true}:
let inherit (ocamlPackages) ocaml lablgtk; in
stdenv.mkDerivation (rec {
pname = "unison";

View File

@ -3,14 +3,15 @@
, isPy3k, isPyPy
, pyenchant, simplebayes, pillow, pycountry, whoosh, termcolor
, python-Levenshtein, pyinsane2, pygobject3, pyocr, natsort
, python-Levenshtein, pygobject3, pyocr, natsort, libinsane
, distro
, pkgs
}:
buildPythonPackage rec {
pname = "paperwork-backend";
version = "1.2.4";
version = "1.3.1";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
@ -18,7 +19,7 @@ buildPythonPackage rec {
group = "World";
owner = "OpenPaperwork";
rev = version;
sha256 = "0wjjiw99aswmppnhzq3jir0p5p78r3m8hjinhdirkgm6h7skq5p4";
sha256 = "1219yz8z4r1yn6miq8zc2z1m1lnhf3dmkhwfw23n05bg842nvg65";
};
sourceRoot = "source/paperwork-backend";
@ -34,14 +35,14 @@ buildPythonPackage rec {
propagatedBuildInputs = [
pyenchant simplebayes pillow pycountry whoosh termcolor
python-Levenshtein pyinsane2 pygobject3 pyocr natsort
pkgs.poppler_gi pkgs.gtk3
python-Levenshtein libinsane pygobject3 pyocr natsort
pkgs.poppler_gi pkgs.gtk3 distro
];
meta = {
description = "Backend part of Paperwork (Python API, no UI)";
homepage = https://openpaper.work/;
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.aszlig ];
maintainers = with lib.maintainers; [ aszlig symphorien ];
};
}

View File

@ -1,7 +1,15 @@
{ lib, python3Packages, gtk3, cairo
, aspellDicts, buildEnv
, gnome3, librsvg
, xvfb_run, dbus, libnotify
{ lib
, python3Packages
, gtk3
, cairo
, aspellDicts
, buildEnv
, gnome3
, librsvg
, xvfb_run
, dbus
, libnotify
, wrapGAppsHook
}:
python3Packages.buildPythonApplication rec {
@ -46,9 +54,23 @@ python3Packages.buildPythonApplication rec {
paths = lib.collect lib.isDerivation aspellDicts;
}}/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 ]);
nativeBuildInputs = [
wrapGAppsHook
];
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
@ -61,21 +83,20 @@ python3Packages.buildPythonApplication rec {
'';
propagatedBuildInputs = with python3Packages; [
paperwork-backend pypillowfight gtk3 cairo pyxdg dateutil setuptools pandas
];
makeWrapperArgs = [
"--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\""
"--set GDK_PIXBUF_MODULE_FILE \"$GDK_PIXBUF_MODULE_FILE\""
"--prefix XDG_DATA_DIRS : \"$out/share\""
"--suffix XDG_DATA_DIRS : \"$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\""
paperwork-backend
pypillowfight
gtk3
cairo
pyxdg
dateutil
setuptools
];
meta = {
description = "A personal document manager for scanned documents";
homepage = https://openpaper.work/;
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.aszlig ];
maintainers = with lib.maintainers; [ aszlig symphorien ];
platforms = lib.platforms.linux;
};
}

View File

@ -19,7 +19,7 @@ let
maintainers = with maintainers; [ emmanuelrosa dtzWill kampka ];
};
version = "0.39.4";
version = "0.40.5";
in {
@ -30,14 +30,14 @@ in {
src = fetchurl {
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.
# (they did special-case icon.png but we want the scalable svg)
# Use the version here to ensure we get any changes.
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";
};
@ -78,7 +78,7 @@ in {
src = fetchurl {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
sha256 = "06svdp25031p665pvlxdz10malvhxpczzrg90hpr1zymm6v8van3";
sha256 = "00b7qx2h26qrdhw2a7y0irhbr442yynnzpm1pz55hi33zpckbrc7";
};
nativeBuildInputs = [

View File

@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
sha256 = "0lmvsnb4xw4hmz6zs0z5ilsah5hjz29g1s0050n59fllskqr3b8k";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ cmake libusb1 ];
nativeBuildInputs = [ pkgconfig cmake ];
buildInputs = [ libusb1 ];
# TODO: get these fixes upstream:
# * Building with -DINSTALL_UDEV_RULES=ON tries to install udev rules to

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "verilator";
version = "4.028";
version = "4.030";
src = fetchurl {
url = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
sha256 = "1rl92jnayhc1j47gjxdz2zf1by9vzlawbyw9mf1d7d2y22dqak1l";
sha256 = "07ldkf7xkr31n1dmx82bmzam8bvc1vsp32k76vd7yzn7r853qyky";
};
enableParallelBuilding = true;

View File

@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
pname = "geogebra";
version = "5-0-573-0";
version = "5-0-574-0";
preferLocalBuild = true;
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
"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 {

View File

@ -1,24 +1,27 @@
{ stdenv, fetchurl, cmake, gfortran, openblas, openmpi, python3 }:
{ stdenv, fetchurl, cmake, gfortran, openblas, openmpi, petsc, python3 }:
stdenv.mkDerivation rec {
pname = "getdp";
version = "3.0.4";
name = "getdp-${version}";
version = "3.3.0";
src = fetchurl {
url = "http://getdp.info/src/getdp-${version}-source.tgz";
sha256 = "0v3hg03lzw4hz28hm45hpv0gyydqz0wav7xvb5n0v0jrm47mrspv";
sha256 = "1pfviy2bw8z5y6c15czvlvyjjg9pvpgrj9fr54xfi2gmvs7zkgpf";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ gfortran openblas openmpi python3 ];
nativeBuildInputs = [ cmake gfortran ];
buildInputs = [ openblas openmpi petsc python3 ];
meta = with stdenv.lib; {
description = "A General Environment for the Treatment of Discrete Problems";
longDescription = ''
GetDP is a free finite element solver using mixed elements to discretize 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.
GetDP is a free finite element solver using mixed elements to discretize
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/;
license = stdenv.lib.licenses.gpl2Plus;
homepage = "http://getdp.info/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ wucke13 ];
platforms = platforms.linux;
};

View File

@ -1,5 +1,6 @@
{ stdenv
, fetchurl
, fetchpatch
, gmp
, readline
, libX11
@ -19,6 +20,15 @@ stdenv.mkDerivation rec {
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 = [
gmp
readline

View File

@ -130,6 +130,13 @@ stdenv.mkDerivation rec {
url = "https://git.sagemath.org/sage.git/patch/?h=c6d0308db15efd611211d26cfcbefbd180fc0831";
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;

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "git-standup";
version = "2.3.1";
version = "2.3.2";
src = fetchFromGitHub {
owner = "kamranahmedse";
repo = pname;
rev = version;
sha256 = "0wx9ypyxhpjbrasl6264jmj9fjrpg3gn93dg00cakabz3r7yxxq3";
sha256 = "1xnn0jjha56v7l2vj45zzxncl6m5x2hq6nkffgc1bcikhp1pidn7";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -2,13 +2,15 @@
libgit2.overrideAttrs (oldAttrs: {
cmakeFlags = oldAttrs.cmakeFlags ++ [
"-DUSE_BUNDLED_ZLIB=ON"
"-DUSE_ICONV=OFF"
"-DBUILD_CLAR=OFF"
"-DUSE_SSH=OFF"
"-DUSE_HTTPS=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 {
owner = "romkatv";

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "hub";
version = "2.14.1";
version = "2.14.2";
goPackagePath = "github.com/github/hub";
@ -13,7 +13,7 @@ buildGoPackage rec {
owner = "github";
repo = pname;
rev = "v${version}";
sha256 = "0b179sp8z2blzh4a0c2pjbbiya68x2i4cnmcci58r8k0mwrx6mw1";
sha256 = "1qjab3dpia1jdlszz3xxix76lqrm4zbmqzd9ymld7h06awzsg2vh";
};
nativeBuildInputs = [ groff utillinux ];

View File

@ -1,11 +1,11 @@
{
"version": "12.8.5",
"repo_hash": "1y5606p793w1js39420jcd2bj42cripczgrdxgg2cq0r2kq8axk8",
"version": "12.8.6",
"repo_hash": "0plcigppmg6ckmq8myj3m9adshdvqj7czx8fms71bsa9zx060wib",
"owner": "gitlab-org",
"repo": "gitlab",
"rev": "v12.8.5-ee",
"rev": "v12.8.6-ee",
"passthru": {
"GITALY_SERVER_VERSION": "12.8.5",
"GITALY_SERVER_VERSION": "12.8.6",
"GITLAB_PAGES_VERSION": "1.16.0",
"GITLAB_SHELL_VERSION": "11.0.0",
"GITLAB_WORKHORSE_VERSION": "8.21.0"

View File

@ -28,14 +28,14 @@ let
};
});
in buildGoPackage rec {
version = "12.8.5";
version = "12.8.6";
pname = "gitaly";
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitaly";
rev = "v${version}";
sha256 = "19pwffncihhywfac7ybry38vyj3pmdz66g5nqrvwn4xxw7ypvd24";
sha256 = "1rf9qmyjllkwkyi7la1dzyjh0z9sw21zdzihd7v9ngwqssfk5zfk";
};
# Fix a check which assumes that hook files are writeable by their

View File

@ -175,6 +175,8 @@ def update_gitaly():
f.write(repo.get_file(fn, f"v{gitaly_server_version}"))
subprocess.check_output(['bundix'], cwd=gitaly_dir)
os.environ['GOROOT'] = ""
subprocess.check_output(['vgo2nix'], cwd=gitaly_dir)
for fn in ['go.mod', 'go.sum']:
@ -197,6 +199,7 @@ def update_gitlab_shell():
with open(gitlab_shell_dir / fn, 'w') as f:
f.write(repo.get_file(fn, f"v{gitlab_shell_version}"))
os.environ['GOROOT'] = ""
subprocess.check_output(['vgo2nix'], cwd=gitlab_shell_dir)
for fn in ['go.mod', 'go.sum']:
@ -217,6 +220,7 @@ def update_gitlab_workhorse():
with open(gitlab_workhorse_dir / fn, 'w') as f:
f.write(repo.get_file(fn, f"v{gitlab_workhorse_version}"))
os.environ['GOROOT'] = ""
subprocess.check_output(['vgo2nix'], cwd=gitlab_workhorse_dir)
for fn in ['go.mod', 'go.sum']:

View File

@ -206,9 +206,9 @@ rec {
};
docker_19_03 = makeOverridable dockerGen {
version = "19.03.7";
rev = "7141c199a2edb2a90b778175f836f9dd2a22c95a";
sha256 = "1h1hrp6cw3ah2gaq2vfdd1d9vh7gyf7rs6bdxwpxk9ixc19fxsm4";
version = "19.03.8";
rev = "afacb8b7f0d8d4f9d2a8e8736e9c993e672b41f3";
sha256 = "15iq16rlnkw78lvapcfpbnsnxhdjbvfvgzg3xzxhpdg1dmq40b6j";
runcRev = "dc9208a3303feef5b3839f4323d9beb36df0a9dd"; # v1.0.0-rc10
runcSha256 = "0pi3rvj585997m4z9ljkxz2z9yxf9p2jr0pmqbqrc7bc95f5hagk";
containerdRev = "7ad184331fa3e55e52b890ea95e65ba581ae3429"; # v1.2.13

View File

@ -4,14 +4,14 @@
}:
stdenv.mkDerivation rec {
version = "2.12.c";
version = "2.12.c.1";
pname = "i3lock-color";
src = fetchFromGitHub {
owner = "PandorasFox";
repo = "i3lock-color";
rev = version;
sha256 = "08fhnchf187b73h52xgzb86g6byzxz085zs9galsvl687g5zxk34";
sha256 = "1q09cfgkikqbrkk1kljg8dsgbs5nacixhdqaww18h94hmlnbbssc";
};
nativeBuildInputs = [ autoreconfHook pkgconfig ];
@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
- clock: time/date with configurable format
- keyboard-layout
'';
homepage = https://github.com/PandorasFox/i3lock-color;
homepage = "https://github.com/PandorasFox/i3lock-color";
maintainers = with maintainers; [ malyn ];
license = licenses.bsd3;

View File

@ -1,7 +1,7 @@
{stdenv, fetchzip}:
let
version = "3.3";
version = "3.5";
in fetchzip {
name = "jost-${version}";
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
'';
sha256="00nrhs3aif2hc4yhjhbn9ywmydl2w0g0hv5m5is8gv7wx8yi2j9z";
sha256="0l78vhmbsyfmrva5wc76pskhxqryyg8q5xddpj9g5wqsddy525dq";
meta = with stdenv.lib; {
homepage = https://github.com/indestructible-type/Jost;

View File

@ -245,6 +245,12 @@ stdenv.mkDerivation ({
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 = {
homepage = https://gcc.gnu.org/;
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+

View File

@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "sbcl";
version = "2.0.1";
version = "2.0.2";
src = fetchurl {
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
sha256 = "1s2nrq26czl7f8jpa9qjpmdqbzvldvf4c7c1z1c438v4f85xcl44";
sha256 = "07pyzdjnhcpqwvr3rrk4i18maqdywbq1qj93fnpx1h4b7dp08r28";
};
buildInputs = [texinfo];

View File

@ -81,12 +81,12 @@ self: super: {
# 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/
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 {
name = "git-annex-${super.git-annex.version}-src";
url = "git://git-annex.branchable.com/";
rev = "refs/tags/" + super.git-annex.version;
sha256 = "0pl0yip7zp4i78cj9jqkmm33wqaaaxjq3ggnfmv95y79yijd6yh4";
sha256 = "0y2qcjahi705c6nnypqpa5w3bzyzk4kqvbwfnpiaxzk5vna589gg";
};
}).override {
dbus = if pkgs.stdenv.isLinux then self.dbus else null;
@ -376,6 +376,7 @@ self: super: {
Rlang-QQ = dontCheck super.Rlang-QQ;
safecopy = dontCheck super.safecopy;
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;
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
@ -1219,7 +1220,13 @@ self: super: {
temporary-resourcet = doJailbreak super.temporary-resourcet;
# 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
# 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 = 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

View File

@ -1,6 +1,6 @@
# pkgs/development/haskell-modules/configuration-hackage2nix.yaml
compiler: ghc-8.8.2
compiler: ghc-8.8.3
core-packages:
- array-0.5.4.0
@ -10,23 +10,23 @@ core-packages:
- Cabal-3.0.1.0
- containers-0.6.2.1
- deepseq-1.4.4.0
- directory-1.3.4.0
- directory-1.3.6.0
- filepath-1.4.2.1
- ghc-8.8.2
- ghc-boot-8.8.2
- ghc-boot-th-8.8.2
- ghc-8.8.3
- ghc-boot-8.8.3
- ghc-boot-th-8.8.3
- ghc-compact-0.1.0.0
- ghc-heap-8.8.2
- ghc-heap-8.8.3
- ghc-prim-0.5.3
- ghci-8.8.2
- ghci-8.8.3
- haskeline-0.7.5.0
- hpc-0.6.0.3
- integer-gmp-1.0.2.0
- libiserv-8.8.2
- libiserv-8.8.3
- mtl-2.2.2
- parsec-3.1.14.0
- pretty-1.1.3.6
- process-1.6.7.0
- process-1.6.8.0
- rts-1.0
- stm-2.5.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
# not yet available in Nixpkgs
- gi-gdkx11 < 4
# LTS Haskell 15.2
# LTS Haskell 15.3
- abstract-deque ==0.3
- abstract-par ==0.3.3
- AC-Angle ==1.0
@ -361,7 +361,7 @@ default-package-overrides:
- bytes ==0.17
- byteset ==0.1.1.0
- byteslice ==0.2.2.0
- bytesmith ==0.3.5.0
- bytesmith ==0.3.6.0
- bytestring-builder ==0.10.8.2.0
- bytestring-conversion ==0.3.1
- bytestring-lexing ==0.5.0.2
@ -407,7 +407,7 @@ default-package-overrides:
- Chart-diagrams ==1.9.3
- chaselev-deque ==0.5.0.5
- ChasingBottoms ==1.3.1.7
- checkers ==0.5.2
- checkers ==0.5.4
- checksum ==0.0
- chimera ==0.3.0.0
- choice ==0.2.2
@ -444,7 +444,7 @@ default-package-overrides:
- co-log ==0.4.0.0
- co-log-core ==0.2.1.0
- co-log-polysemy ==0.0.1.1
- Color ==0.1.3.1
- Color ==0.1.4
- colorful-monoids ==0.2.1.2
- colorize-haskell ==1.0.1
- colour ==2.3.5
@ -577,7 +577,7 @@ default-package-overrides:
- data-tree-print ==0.1.0.2
- dataurl ==0.1.0.0
- DAV ==1.3.4
- dbus ==1.2.11
- dbus ==1.2.12
- debian-build ==0.10.2.0
- debug-trace-var ==0.2.0
- dec ==0.0.3
@ -707,7 +707,7 @@ default-package-overrides:
- extended-reals ==0.2.3.0
- extensible-effects ==5.0.0.1
- extensible-exceptions ==0.1.1.4
- extra ==1.6.20
- extra ==1.6.21
- extractable-singleton ==0.0.1
- extrapolate ==0.4.1
- fail ==4.9.0.0
@ -785,12 +785,12 @@ default-package-overrides:
- funcmp ==1.9
- function-builder ==0.3.0.1
- functor-classes-compat ==1
- fused-effects ==1.0.0.1
- fused-effects ==1.0.2.0
- fusion-plugin ==0.1.1
- fusion-plugin-types ==0.1.0
- fuzzcheck ==0.1.1
- fuzzy ==0.1.0.0
- fuzzy-dates ==0.1.1.1
- fuzzy-dates ==0.1.1.2
- fuzzyset ==0.2.0
- fuzzy-time ==0.1.0.0
- gauge ==0.2.5
@ -868,9 +868,9 @@ default-package-overrides:
- gi-pango ==1.0.22
- giphy-api ==0.7.0.0
- githash ==0.1.3.3
- github-rest ==1.0.1
- github-rest ==1.0.2
- github-types ==0.2.1
- gitlab-haskell ==0.1.5
- gitlab-haskell ==0.1.7
- gitrev ==1.3.1
- gi-xlib ==2.0.8
- gl ==0.9
@ -1059,8 +1059,8 @@ default-package-overrides:
- hunit-dejafu ==2.0.0.1
- hvect ==0.4.0.0
- hvega ==0.5.0.0
- hw-balancedparens ==0.3.0.4
- hw-bits ==0.7.1.0
- hw-balancedparens ==0.3.0.5
- hw-bits ==0.7.1.2
- hw-conduit ==0.2.0.6
- hw-conduit-merges ==0.2.0.0
- hw-diagnostics ==0.0.0.7
@ -1287,7 +1287,7 @@ default-package-overrides:
- markdown-unlit ==0.5.0
- markov-chain ==0.0.3.4
- massiv ==0.4.5.0
- massiv-io ==0.2.0.0
- massiv-io ==0.2.1.0
- massiv-test ==0.1.2
- mathexpr ==0.3.0.0
- math-functions ==0.3.3.0
@ -1331,9 +1331,9 @@ default-package-overrides:
- mime-types ==0.1.0.9
- mini-egison ==0.1.6
- minimal-configuration ==0.1.4
- minimorph ==0.2.1.0
- minimorph ==0.2.2.0
- minio-hs ==1.5.2
- miniutter ==0.5.0.0
- miniutter ==0.5.1.0
- mintty ==0.1.2
- miso ==1.4.0.0
- missing-foreign ==0.1.1
@ -1356,7 +1356,7 @@ default-package-overrides:
- monad-extras ==0.6.0
- monadic-arrays ==0.2.2
- monad-journal ==0.8.1
- monad-logger ==0.3.31
- monad-logger ==0.3.32
- monad-logger-json ==0.1.0.0
- monad-logger-prefix ==0.1.11
- monad-loops ==0.4.3
@ -1551,7 +1551,7 @@ default-package-overrides:
- persistent-sqlite ==2.10.6.2
- persistent-template ==2.8.2.3
- 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
- pgp-wordlist ==0.1.0.3
- pg-transact ==0.3.1.1
@ -1739,7 +1739,7 @@ default-package-overrides:
- rerebase ==1.4.1
- resolv ==0.1.1.3
- resource-pool ==0.2.3.2
- resourcet ==1.2.2
- resourcet ==1.2.3
- result ==0.2.6.0
- rethinkdb-client-driver ==0.0.25
- retry ==0.8.1.0
@ -1747,7 +1747,7 @@ default-package-overrides:
- rfc1751 ==0.1.2
- rfc5051 ==0.1.0.4
- rigel-viz ==0.2.0.0
- rio ==0.1.14.0
- rio ==0.1.14.1
- rio-orphans ==0.1.1.0
- rio-prettyprint ==0.1.0.0
- roc-id ==0.1.0.0
@ -1792,7 +1792,7 @@ default-package-overrides:
- sdl2-gfx ==0.2
- sdl2-image ==2.0.0
- sdl2-mixer ==1.1.0
- sdl2-ttf ==2.1.0
- sdl2-ttf ==2.1.1
- search-algorithms ==0.3.1
- secp256k1-haskell ==0.1.8
- securemem ==0.1.10
@ -2178,7 +2178,7 @@ default-package-overrides:
- unix-bytestring ==0.3.7.3
- unix-compat ==0.5.2
- unix-time ==0.4.7
- unliftio ==0.2.12
- unliftio ==0.2.12.1
- unliftio-core ==0.1.2.0
- unliftio-pool ==0.2.1.0
- unlit ==0.4.0.0
@ -2239,7 +2239,7 @@ default-package-overrides:
- wai-app-static ==3.1.7.1
- wai-conduit ==3.0.0.4
- wai-cors ==0.2.7
- wai-enforce-https ==0.0.1
- wai-enforce-https ==0.0.2
- wai-eventsource ==3.0.0
- wai-extra ==3.0.29.1
- wai-handler-launch ==3.0.3.1
@ -2324,7 +2324,7 @@ default-package-overrides:
- yesod-auth ==1.6.9
- yesod-auth-hashdb ==1.7.1.2
- yesod-bin ==1.6.0.4
- yesod-core ==1.6.17.2
- yesod-core ==1.6.17.3
- yesod-form ==1.6.7
- yesod-gitrev ==0.2.1
- yesod-newsfeed ==1.7.0.0
@ -2344,7 +2344,7 @@ default-package-overrides:
- zeromq4-haskell ==0.8.0
- zeromq4-patterns ==0.3.1.0
- zim-parser ==0.2.1.0
- zip ==1.3.1
- zip ==1.3.2
- zip-archive ==0.4.1
- zippers ==0.3
- zip-stream ==0.2.0.1
@ -2847,6 +2847,7 @@ broken-packages:
- arbor-monad-metric
- arbor-monad-metric-datadog
- arbtt
- archive-tar-bytestring
- archiver
- archlinux
- archlinux-web
@ -2920,8 +2921,6 @@ broken-packages:
- atomic-primops-vector
- atomo
- atp-haskell
- ats-format
- ats-pkg
- ats-setup
- ats-storable
- attempt
@ -3179,6 +3178,8 @@ broken-packages:
- bitcoin-rpc
- bitcoin-script
- bitcoin-tx
- bitcoind-regtest
- bitcoind-rpc
- Bitly
- bitly-cli
- bitmaps
@ -3427,6 +3428,7 @@ broken-packages:
- carte
- cartel
- Cartesian
- cas-store
- casa-abbreviations-and-acronyms
- casadi-bindings
- casadi-bindings-control
@ -4383,8 +4385,6 @@ broken-packages:
- edentv
- edge
- edges
- EdisonAPI
- EdisonCore
- edit
- edit-lenses
- editable
@ -8156,7 +8156,6 @@ broken-packages:
- persistent-map
- persistent-migration
- persistent-mongoDB
- persistent-mysql
- persistent-mysql-haskell
- persistent-protobuf
- persistent-ratelimit
@ -8979,7 +8978,6 @@ broken-packages:
- sajson
- salak-toml
- Salsa
- saltine
- saltine-quickcheck
- salvia
- salvia-demo
@ -9377,7 +9375,6 @@ broken-packages:
- smuggler
- snake
- snake-game
- snap
- snap-accept
- snap-auth-cli
- snap-blaze-clay
@ -10962,5 +10959,3 @@ broken-packages:
- ztar
- zuramaru
- Zwaluw
- zxcvbn-dvorak
- zxcvbn-hs

File diff suppressed because it is too large Load Diff

View File

@ -124,7 +124,7 @@ let
sha256Arg = if sha256 == null then "--sha256=" else ''--sha256="${sha256}"'';
in buildPackages.stdenv.mkDerivation {
name = "cabal2nix-${name}";
nativeBuildInputs = [ buildPackages.cabal2nix ];
nativeBuildInputs = [ buildPackages.cabal2nix-unwrapped ];
preferLocalBuild = true;
allowSubstitutes = false;
phases = ["installPhase"];

View File

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

View File

@ -8,17 +8,17 @@
rustPlatform.buildRustPackage rec {
pname = "wasmer";
version = "0.13.0";
version = "0.16.2";
src = fetchFromGitHub {
owner = "wasmerio";
repo = pname;
rev = version;
sha256 = "1k9zd2vhrbvxlpkh21m39alk5lfhd3xa25k0awis27plfpv8fqcq";
sha256 = "124zq772kz9a7n3qpxgmp4awqj41l8mhhwc0y3r77i1q02i1sy7z";
fetchSubmodules = true;
};
cargoSha256 = "101y3zcnbl0w0zv2k0bhqk5d0xj8m2h6ww9r366j9b1y54cqj4b7";
cargoSha256 = "1qqysvcviimpm2zhzsbn8vhy91rxzaknh9hv75y38xd5ggnnh9m6";
nativeBuildInputs = [ cmake pkg-config ];

View File

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

View File

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

View File

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

View File

@ -5,13 +5,13 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "dqlite";
version = "1.0.0";
version = "1.4.0";
src = fetchFromGitHub {
owner = "canonical";
repo = pname;
rev = "v${version}";
sha256 = "0670c1c84lcf5vl3h6mlff00fz2fnm766bzlk526sjjzysx3zjya";
sha256 = "19snm6cicxagcw9ys2jmjf6fchzs6pwm7h4jmyr0pn6zks2yjf1i";
};
nativeBuildInputs = [ autoreconfHook file pkgconfig ];
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
'';
homepage = https://github.com/CanonicalLtd/dqlite/;
license = licenses.asl20;
maintainers = with maintainers; [ joko ];
maintainers = with maintainers; [ joko wucke13 ];
platforms = platforms.unix;
};
}

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "howard-hinnant-date-unstable";
version = "2020-01-24";
version = "2020-03-09";
src = fetchFromGitHub {
owner = "HowardHinnant";
repo = "date";
rev = "9a0ee2542848ab8625984fc8cdbfb9b5414c0082";
sha256 = "0yxsn0hj22n61bjywysxqgfv7hj5xvsl6isma95fl8xrimpny083";
rev = "4c1968b8f038483037cadfdbad3215ce21d934bb";
sha256 = "0dywrf18v1znfnz0gdxgi2ydax466zq34gc1vvg2k7vq17a30wq3";
};
patches = [

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

View File

@ -2,21 +2,22 @@
stdenv.mkDerivation rec {
pname = "ndi";
version = "4";
fullVersion = "4.1.6";
version = builtins.head (builtins.splitVersion fullVersion);
src = requireFile rec {
name = "InstallNDISDK_v${version}_Linux.tar.gz";
sha256 = "1hac5npyg8nifs9ipj34pkn0zjyx8774x3i3h8znhmijx2j2982p";
sha256 = "0hki805j3hlci6w5ca2cajm5q0y9yihgvpsykkn8dzx8chw4pmsk";
message = ''
In order to use the NDI SDK, you need to comply with NewTek's license and
download the Linux version ${version} tarball from:
In order to use NDI SDK version ${fullVersion}, you need to comply with
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
re-run the installation:
nix-prefetch-url file://\$PWD/${name}
\$ nix-prefetch-url file://\$PWD/${name}
'';
};

View File

@ -23,5 +23,15 @@ callPackage ./generic.nix (args // rec {
name = "CVE-2019-12973-2.patch";
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";
})
];
})

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "raft-canonical";
version = "0.9.6";
version = "0.9.17";
src = fetchFromGitHub {
owner = "canonical";
repo = "raft";
rev = "v${version}";
sha256 = "083il7b5kw3pc7m5p9xjpb9dlvfarc51sni92mkgm9ckc32x9vpp";
sha256 = "0q444wd6wz85g4zjkdsrf8z7chkjq9rxzq8l6fh37mgf7c23hv09";
};
nativeBuildInputs = [ autoreconfHook file pkgconfig ];
@ -18,12 +18,14 @@ stdenv.mkDerivation rec {
substituteInPlace configure --replace /usr/bin/ " "
'';
doCheck = false;
# Due to
#io_uv_recv/success/first [ ERROR ]
#Error: test/lib/dir.c:97: No such file or directory
# test fails
#
#append/finalizeSegment [ ERROR ]
#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)
doCheck = false;
outputs = [ "dev" "out" ];
meta = with stdenv.lib; {
@ -39,6 +41,6 @@ stdenv.mkDerivation rec {
'';
homepage = "https://github.com/canonical/raft";
license = licenses.asl20;
maintainers = [ maintainers.wucke13 ];
maintainers = with maintainers; [ wucke13 ];
};
}

View File

@ -1,17 +1,12 @@
{ stdenv
, fetchurl
, blas
, gfortran
, liblapack
, python }:
{ stdenv , fetchurl , blas , gfortran , liblapack , python }:
stdenv.mkDerivation rec {
pname = "petsc";
version = "3.8.4";
version = "3.12.4";
src = fetchurl {
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 ];
@ -26,7 +21,7 @@ stdenv.mkDerivation rec {
configureFlagsArray=(
$configureFlagsArray
"--CC=$CC"
"--with-cxx=0"
"--with-cxx=g++"
"--with-fc=0"
"--with-mpi=0"
"--with-blas-lib=[${blas}/lib/libblas.a,${gfortran.cc.lib}/lib/libgfortran.a]"
@ -34,17 +29,14 @@ stdenv.mkDerivation rec {
)
'';
postInstall = ''
rm $out/bin/petscmpiexec
rm $out/bin/popup
rm $out/bin/uncrustify.cfg
rm -rf $out/bin/win32fe
'';
meta = {
description = "Library of linear algebra algorithms for solving partial differential equations";
homepage = https://www.mcs.anl.gov/petsc/index.html;
platforms = stdenv.lib.platforms.all;
license = stdenv.lib.licenses.bsd2;
meta = with stdenv.lib; {
description = ''
Library of linear algebra algorithms for solving partial differential
equations
'';
homepage = "https://www.mcs.anl.gov/petsc/index.html";
license = licenses.bsd2;
maintainers = with maintainers; [ wucke13 ];
platforms = platforms.all;
};
}

View File

@ -1,14 +1,14 @@
{ fetchurl, stdenv, flex }:
stdenv.mkDerivation rec {
version = "7.1";
version = "7.2";
pname = "wcslib";
buildInputs = [ flex ];
src = fetchurl {
url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
sha256 ="05ji2v4la8h6azprb8x2zh6wrswxsq8cqw9zml0layc4nfg79fzh";
sha256 ="0fbf6ypq7ag9dmjn65ja5vbfxswb6511bja8rbna25wmhns9x5b3";
};
prePatch = ''
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
meta = {
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
spherical geometries and their conversion to image coordinate

View File

@ -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 {
version = "2.0.0";

View File

@ -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,
ppx_tools_versioned, yojson }:
if lib.versionAtLeast ocaml.version "4.08"
then throw "earlybird is not available for OCaml ${ocaml.version}"
else
buildDunePackage rec {
pname = "earlybird";
version = "0.1.5";

View File

@ -1,6 +1,7 @@
{ stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, ppx_tools, yojson }:
if stdenv.lib.versionOlder ocaml.version "4.03"
|| stdenv.lib.versionAtLeast ocaml.version "4.08"
then throw "ocf not supported for ocaml ${ocaml.version}"
else
stdenv.mkDerivation rec {

View File

@ -2,19 +2,19 @@
buildDunePackage rec {
pname = "ppx_tools_versioned";
version = "5.2.3";
version = "5.3.0";
src = fetchFromGitHub {
owner = "ocaml-ppx";
repo = pname;
rev = version;
sha256 = "1hcmpnw26zf70a71r3d2c2c0mn8q084gdn1r36ynng6fv9hq6j0y";
sha256 = "0c735w9mq49dmvkdw9ahfwh0icsk2sbhnfwmdhpibj86phfm17yj";
};
propagatedBuildInputs = [ ocaml-migrate-parsetree ];
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)";
license = licenses.gpl2;
maintainers = [ maintainers.volth ];

View File

@ -1,16 +1,15 @@
{ stdenv
{ lib
, fetchFromGitHub
, fetchurl
, buildDunePackage
, ocaml
, dune
, findlib
, gen
, ppx_tools_versioned
, ocaml-migrate-parsetree
, 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}"
else
@ -28,8 +27,8 @@ let
sha256 = "0gsb1jpj3mnqbjgbavi4l95gl6g4agq58j82km22fdfg63j3w3fk";
};
in
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-sedlex-${version}";
buildDunePackage rec {
pname = "sedlex";
version = "2.1";
src = fetchFromGitHub {
@ -39,7 +38,7 @@ stdenv.mkDerivation rec {
sha256 = "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26";
};
buildInputs = [ ocaml findlib dune ppx_tools_versioned ocaml-migrate-parsetree ];
buildInputs = [ ppx_tools_versioned ocaml-migrate-parsetree ];
propagatedBuildInputs = [ gen uchar ];
@ -49,21 +48,14 @@ stdenv.mkDerivation rec {
ln -s ${PropList} src/generator/data/PropList.txt
'';
buildFlags = [ "build" ];
installPhase = ''
make INSTALL_ARGS="--prefix=$out --libdir=$OCAMLFIND_DESTDIR" install
'';
createFindlibDestdir = true;
doCheck = true;
dontStrip = true;
meta = {
homepage = https://github.com/ocaml-community/sedlex;
description = "An OCaml lexer generator for Unicode";
license = stdenv.lib.licenses.mit;
inherit (ocaml.meta) platforms;
maintainers = [ stdenv.lib.maintainers.marsam ];
license = lib.licenses.mit;
maintainers = [ lib.maintainers.marsam ];
};
}

View File

@ -1,6 +1,7 @@
{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild }:
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}"
else

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

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

View File

@ -1,6 +1,7 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, fetchurl
, uvicorn
, starlette
, pydantic
@ -10,11 +11,12 @@
, pyjwt
, passlib
, aiosqlite
, peewee
}:
buildPythonPackage rec {
pname = "fastapi";
version = "0.45.0";
version = "0.49.0";
format = "flit";
disabled = !isPy3k;
@ -22,7 +24,7 @@ buildPythonPackage rec {
owner = "tiangolo";
repo = "fastapi";
rev = version;
sha256 = "1qwh382ny6qa3zi64micdq4j7dc64zv4rfd8g91j0digd4rhs6i1";
sha256 = "1dw5f2xvn0fqqsy29ypba8v3444cy7dvc7gkpmnhshky0rmfni3n";
};
propagatedBuildInputs = [
@ -37,16 +39,9 @@ buildPythonPackage rec {
pyjwt
passlib
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 = ''
pytest --ignore=tests/test_default_response_class.py
'';

View File

@ -6,20 +6,23 @@
, astropy
, scipy
, pandas
, codecov
, pytest
, pytestcov
, pytestrunner
, coveralls
, twine
, check-manifest
, lib
}:
buildPythonPackage rec {
pname = "hickle";
version = "3.4.5";
version = "3.4.6";
src = fetchPypi {
inherit pname version;
sha256 = "1d1qj3yl7635lgkqacz9r8fyhv71396l748ww4wy05ibpignjm2x";
sha256 = "026r6yg3amsi8k8plzsbw5rnifym6sc17y011daqyvcpb7mfs94b";
};
postPatch = ''
@ -28,7 +31,9 @@ buildPythonPackage rec {
'';
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 = {
description = "Serialize Python data to HDF5";

View File

@ -1,18 +1,18 @@
{ stdenv, buildPythonPackage, fetchPypi , six, dateutil }:
{ stdenv, buildPythonPackage, fetchPypi, six, dateutil, convertdate }:
buildPythonPackage rec {
pname = "holidays";
version = "0.9.12";
version = "0.10.1";
src = fetchPypi {
inherit pname version;
sha256 = "3182c4a6fef8d01a829468362ace9c3bba7645873610535fef53454dbb4ea092";
sha256 = "1dx39krafb6cdnd7h5vgwmw4y075s6k3d31a6vhwvqhmdig3294h";
};
propagatedBuildInputs = [ six dateutil ];
propagatedBuildInputs = [ six dateutil convertdate ];
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";
license = licenses.mit;
maintainers = with maintainers; [ jluttine ];

View File

@ -1,24 +1,37 @@
{ stdenv, buildPythonPackage, fetchFromGitHub
, enum-compat
, xorgserver, pytest, i3, python
, xorgserver, pytest, pytest-xvfb, pytest-asyncio, i3, python, xlib, xdpyinfo
, makeFontsConf, coreutils
}:
buildPythonPackage rec {
pname = "i3ipc";
version = "1.6.0";
version = "2.1.1";
src = fetchFromGitHub {
owner = "acrisci";
repo = "i3ipc-python";
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; {
description = "An improved Python library to control i3wm and sway";

View File

@ -8,12 +8,12 @@
buildPythonPackage rec {
pname = "jupyterlab";
version = "1.2.6";
version = "2.0.0";
disabled = pythonOlder "3.5";
src = fetchPypi {
inherit pname version;
sha256 = "0mc3nrj7fc5q2ajr09m261j386jsp8qjljg8anghlh8czc9ln4s2";
sha256 = "17p8rpihid0103fyjndk2yvg18n3ypn3hxay92ckcv10vsbiys5b";
};
propagatedBuildInputs = [ jupyterlab_server notebook ];

View File

@ -2,13 +2,13 @@
buildPythonPackage rec {
pname = "klaus";
version = "1.5.1";
version = "1.5.2";
src = fetchFromGitHub {
owner = "jonashaag";
repo = pname;
rev = version;
sha256 = "1432m3ki2g4ma10pfv310q1w4da46b0y2jklb8ajbz8a09ms6mfx";
sha256 = "12b96jgiv9y7zmkqqj3dh0fbbm3ps8gbqk925qrhh56zqjl66kx2";
};
prePatch = ''

View File

@ -20,13 +20,13 @@
buildPythonPackage rec {
pname = "nio";
version = "0.7.1";
version = "0.8.0";
src = fetchFromGitHub {
owner = "poljar";
repo = "matrix-nio";
rev = version;
sha256 = "05cggfhsfa0irvzc7x3fndv6n0zszxxhmlv89r5rkrl5wvrhbb2h";
sha256 = "151c59a913y6kx99g7g3mhpgbgavwic1mh21nfrr9x0rm98ilay9";
};
nativeBuildInputs = [

View File

@ -15,11 +15,11 @@
buildPythonPackage rec {
pname = "pyicloud";
version = "0.9.2";
version = "0.9.4";
src = fetchPypi {
inherit pname version;
sha256 = "1jjkzf7vwms6pymnmdr893830vrymxnq455xnqp21wqhjjiy2amd";
sha256 = "0r171wnq2g5bw7gd59vh6flm0104ix1a6s2vhdrf8s74hipw57si";
};
propagatedBuildInputs = [

View File

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

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

View File

@ -1,10 +1,10 @@
{ lib, fetchFromGitLab, buildPythonPackage, pillow, six
, tesseract, cuneiform, isPy3k, substituteAll, pytest, tox
}:
{ lib, fetchFromGitLab, buildPythonPackage, pillow, setuptools_scm,
setuptools-scm-git-archive , tesseract, cuneiform, isPy3k, substituteAll,
pytest, tox }:
buildPythonPackage rec {
pname = "pyocr";
version = "0.5.3";
version = "0.7.2";
disabled = !isPy3k;
# Don't fetch from PYPI because it doesn't contain tests.
@ -14,7 +14,7 @@ buildPythonPackage rec {
owner = "OpenPaperwork";
repo = "pyocr";
rev = version;
sha256 = "1nihf0qmbpg3yj3yp11jp6hp5z5dqf39nz6j9lqbvgi1nqbs7x15";
sha256 = "09ab86bmizpv94w3mdvdqkjyyvk1vafw3jqhkiw5xx7p180xn3il";
};
patches = [ (substituteAll {
@ -23,38 +23,8 @@ buildPythonPackage rec {
})
];
postPatch = ''
echo 'version = "${version}"' > src/pyocr/_version.py
# 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 ];
buildInputs = [ setuptools_scm setuptools-scm-git-archive ];
propagatedBuildInputs = [ pillow ];
checkInputs = [ pytest tox ];
checkPhase = "pytest";

View File

@ -1,9 +1,9 @@
Index: current/src/pyocr/cuneiform.py
===================================================================
--- current.orig/src/pyocr/cuneiform.py
+++ current/src/pyocr/cuneiform.py
@@ -27,13 +27,9 @@ from . import error
from . import util
diff --git a/src/pyocr/cuneiform.py b/src/pyocr/cuneiform.py
index 2e5b717..35647e2 100644
--- a/src/pyocr/cuneiform.py
+++ b/src/pyocr/cuneiform.py
@@ -25,13 +25,9 @@ from . import builders
from .error import CuneiformError
-# 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_SPLIT_RE = re.compile("[^a-z]")
Index: current/src/pyocr/libtesseract/tesseract_raw.py
===================================================================
--- current.orig/src/pyocr/libtesseract/tesseract_raw.py
+++ current/src/pyocr/libtesseract/tesseract_raw.py
@@ -1,52 +1,13 @@
import ctypes
diff --git a/src/pyocr/libtesseract/tesseract_raw.py b/src/pyocr/libtesseract/tesseract_raw.py
index a068e73..9ebea5c 100644
--- a/src/pyocr/libtesseract/tesseract_raw.py
+++ b/src/pyocr/libtesseract/tesseract_raw.py
@@ -2,7 +2,6 @@ import ctypes
import locale
import logging
import os
-import sys
from ..error import TesseractError
@@ -10,48 +9,16 @@ from ..error import TesseractError
logger = logging.getLogger(__name__)
-TESSDATA_PREFIX = os.getenv('TESSDATA_PREFIX', None)
TESSDATA_PREFIX = os.getenv('TESSDATA_PREFIX', None)
-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
- libnames += [os.path.join(sys._MEIPASS, "libtesseract-4.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
-
-
-if sys.platform[:3] == "win":
-if sys.platform[:3] == "win": # pragma: no cover
- libnames += [
- # Jflesch> Don't they have the equivalent of LD_LIBRARY_PATH on
- # Windows ?
@ -76,15 +85,16 @@ Index: current/src/pyocr/libtesseract/tesseract_raw.py
g_libtesseract = None
@@ -346,12 +307,11 @@ def init(lang=None):
@@ -364,12 +331,12 @@ def init(lang=None):
try:
if lang:
lang = lang.encode("utf-8")
- prefix = None
- if TESSDATA_PREFIX:
- if TESSDATA_PREFIX: # pragma: no cover
- 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(
ctypes.c_void_p(handle),
- ctypes.c_char_p(prefix),
@ -92,11 +102,11 @@ Index: current/src/pyocr/libtesseract/tesseract_raw.py
ctypes.c_char_p(lang)
)
g_libtesseract.TessBaseAPISetVariable(
Index: current/src/pyocr/tesseract.py
===================================================================
--- current.orig/src/pyocr/tesseract.py
+++ current/src/pyocr/tesseract.py
@@ -31,8 +31,7 @@ from .builders import DigitBuilder # ba
diff --git a/src/pyocr/tesseract.py b/src/pyocr/tesseract.py
index 7c30852..44e8446 100644
--- a/src/pyocr/tesseract.py
+++ b/src/pyocr/tesseract.py
@@ -28,8 +28,7 @@ from .builders import DigitBuilder # backward compatibility
from .error import TesseractError # backward compatibility
from .util import digits_only
@ -106,3 +116,233 @@ Index: current/src/pyocr/tesseract.py
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