Merge branch 'staging-next' into staging

This commit is contained in:
Jan Tojnar 2019-09-12 22:49:43 +02:00
commit a441eaa7b1
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
176 changed files with 3834 additions and 3772 deletions

11
.github/CODEOWNERS vendored
View File

@ -130,6 +130,12 @@
/nixos/tests/hardened.nix @joachifm /nixos/tests/hardened.nix @joachifm
/pkgs/os-specific/linux/kernel/hardened-config.nix @joachifm /pkgs/os-specific/linux/kernel/hardened-config.nix @joachifm
# Network Time Daemons
/pkgs/tools/networking/chrony @thoughtpolice
/pkgs/tools/networking/ntp @thoughtpolice
/pkgs/tools/networking/openntpd @thoughtpolice
/nixos/modules/services/networking/ntp @thoughtpolice
# Dhall # Dhall
/pkgs/development/dhall-modules @Gabriel439 @Profpatsch /pkgs/development/dhall-modules @Gabriel439 @Profpatsch
/pkgs/development/interpreters/dhall @Gabriel439 @Profpatsch /pkgs/development/interpreters/dhall @Gabriel439 @Profpatsch
@ -150,3 +156,8 @@
/pkgs/applications/editors/emacs-modes @adisbladis /pkgs/applications/editors/emacs-modes @adisbladis
/pkgs/applications/editors/emacs @adisbladis /pkgs/applications/editors/emacs @adisbladis
/pkgs/top-level/emacs-packages.nix @adisbladis /pkgs/top-level/emacs-packages.nix @adisbladis
# Prometheus exporter modules and tests
/nixos/modules/services/monitoring/prometheus/exporters.nix @WilliButz
/nixos/modules/services/monitoring/prometheus/exporters.xml @WilliButz
/nixos/tests/prometheus-exporters.nix @WilliButz

View File

@ -354,7 +354,7 @@ rec {
=> { a = ["x" "y"]; b = ["z"] } => { a = ["x" "y"]; b = ["z"] }
*/ */
zipAttrsWith = f: sets: zipAttrsWithNames (concatMap attrNames sets) f sets; zipAttrsWith = f: sets: zipAttrsWithNames (concatMap attrNames sets) f sets;
/* Like `zipAttrsWith' with `(name: values: value)' as the function. /* Like `zipAttrsWith' with `(name: values: values)' as the function.
Example: Example:
zipAttrs [{a = "x";} {a = "y"; b = "z";}] zipAttrs [{a = "x";} {a = "y"; b = "z";}]

View File

@ -2602,6 +2602,15 @@
email = "t@larkery.com"; email = "t@larkery.com";
name = "Tom Hinton"; name = "Tom Hinton";
}; };
hkjn = {
email = "me@hkjn.me";
name = "Henrik Jonsson";
github = "hkjn";
keys = [{
longkeyid = "rsa4096/0x03EFBF839A5FDC15";
fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15";
}];
};
hlolli = { hlolli = {
email = "hlolli@gmail.com"; email = "hlolli@gmail.com";
github = "hlolli"; github = "hlolli";

View File

@ -392,7 +392,11 @@
<filename>hardware-configuration.nix</filename> is included from <filename>hardware-configuration.nix</filename> is included from
<filename>configuration.nix</filename> and will be overwritten by future <filename>configuration.nix</filename> and will be overwritten by future
invocations of <command>nixos-generate-config</command>; thus, you invocations of <command>nixos-generate-config</command>; thus, you
generally should not modify it.) generally should not modify it.) Additionally, you may want to look at
<link xlink:href="https://github.com/NixOS/nixos-hardware">Hardware
configuration for known-hardware</link> at this point or after
installation.
</para> </para>
<note> <note>
<para> <para>

View File

@ -567,7 +567,6 @@
./services/networking/bird.nix ./services/networking/bird.nix
./services/networking/bitlbee.nix ./services/networking/bitlbee.nix
./services/networking/charybdis.nix ./services/networking/charybdis.nix
./services/networking/chrony.nix
./services/networking/cjdns.nix ./services/networking/cjdns.nix
./services/networking/cntlm.nix ./services/networking/cntlm.nix
./services/networking/connman.nix ./services/networking/connman.nix
@ -650,14 +649,15 @@
./services/networking/nntp-proxy.nix ./services/networking/nntp-proxy.nix
./services/networking/nsd.nix ./services/networking/nsd.nix
./services/networking/ntopng.nix ./services/networking/ntopng.nix
./services/networking/ntpd.nix ./services/networking/ntp/chrony.nix
./services/networking/ntp/ntpd.nix
./services/networking/ntp/openntpd.nix
./services/networking/nullidentdmod.nix ./services/networking/nullidentdmod.nix
./services/networking/nylon.nix ./services/networking/nylon.nix
./services/networking/ocserv.nix ./services/networking/ocserv.nix
./services/networking/ofono.nix ./services/networking/ofono.nix
./services/networking/oidentd.nix ./services/networking/oidentd.nix
./services/networking/openfire.nix ./services/networking/openfire.nix
./services/networking/openntpd.nix
./services/networking/openvpn.nix ./services/networking/openvpn.nix
./services/networking/ostinato.nix ./services/networking/ostinato.nix
./services/networking/owamp.nix ./services/networking/owamp.nix

View File

@ -4,6 +4,7 @@ with lib;
let let
cfg = config.programs.mtr; cfg = config.programs.mtr;
in { in {
options = { options = {
programs.mtr = { programs.mtr = {
@ -15,13 +16,22 @@ in {
setcap wrapper for it. setcap wrapper for it.
''; '';
}; };
package = mkOption {
type = types.package;
default = pkgs.mtr;
description = ''
The package to use.
'';
};
}; };
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ mtr ]; environment.systemPackages = with pkgs; [ cfg.package ];
security.wrappers.mtr-packet = { security.wrappers.mtr-packet = {
source = "${pkgs.mtr}/bin/mtr-packet"; source = "${cfg.package}/bin/mtr-packet";
capabilities = "cap_net_raw+p"; capabilities = "cap_net_raw+p";
}; };
}; };

View File

@ -6,16 +6,35 @@ let
cfg = config.services.mailman; cfg = config.services.mailman;
pythonEnv = pkgs.python3.withPackages (ps: [ps.mailman]); mailmanPyEnv = pkgs.python3.withPackages (ps: with ps; [mailman mailman-hyperkitty]);
mailmanExe = with pkgs; stdenv.mkDerivation { mailmanExe = with pkgs; stdenv.mkDerivation {
name = "mailman-" + python3Packages.mailman.version; name = "mailman-" + python3Packages.mailman.version;
buildInputs = [makeWrapper];
unpackPhase = ":"; unpackPhase = ":";
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
sed >"$out/bin/mailman" <"${pythonEnv}/bin/mailman" \ makeWrapper ${mailmanPyEnv}/bin/mailman $out/bin/mailman \
-e "2 iexport MAILMAN_CONFIG_FILE=/etc/mailman.cfg" --set MAILMAN_CONFIG_FILE /etc/mailman.cfg
chmod +x $out/bin/mailman '';
};
mailmanWeb = pkgs.python3Packages.mailman-web.override {
serverEMail = cfg.siteOwner;
archiverKey = cfg.hyperkittyApiKey;
allowedHosts = cfg.webHosts;
};
mailmanWebPyEnv = pkgs.python3.withPackages (x: with x; [mailman-web]);
mailmanWebExe = with pkgs; stdenv.mkDerivation {
inherit (mailmanWeb) name;
buildInputs = [makeWrapper];
unpackPhase = ":";
installPhase = ''
mkdir -p $out/bin
makeWrapper ${mailmanWebPyEnv}/bin/django-admin $out/bin/mailman-web \
--set DJANGO_SETTINGS_MODULE settings
''; '';
}; };
@ -28,11 +47,30 @@ let
bin_dir: ${pkgs.python3Packages.mailman}/bin bin_dir: ${pkgs.python3Packages.mailman}/bin
var_dir: /var/lib/mailman var_dir: /var/lib/mailman
queue_dir: $var_dir/queue queue_dir: $var_dir/queue
template_dir: $var_dir/templates
log_dir: $var_dir/log log_dir: $var_dir/log
lock_dir: $var_dir/lock lock_dir: $var_dir/lock
etc_dir: /etc etc_dir: /etc
ext_dir: $etc_dir/mailman.d ext_dir: $etc_dir/mailman.d
pid_file: /run/mailman/master.pid pid_file: /run/mailman/master.pid
'' + optionalString (cfg.hyperkittyApiKey != null) ''
[archiver.hyperkitty]
class: mailman_hyperkitty.Archiver
enable: yes
configuration: ${pkgs.writeText "mailman-hyperkitty.cfg" mailmanHyperkittyCfg}
'';
mailmanHyperkittyCfg = ''
[general]
# This is your HyperKitty installation, preferably on the localhost. This
# address will be used by Mailman to forward incoming emails to HyperKitty
# for archiving. It does not need to be publicly available, in fact it's
# better if it is not.
base_url: ${cfg.hyperkittyBaseUrl}
# Shared API key, must be the identical to the value in HyperKitty's
# settings.
api_key: ${cfg.hyperkittyApiKey}
''; '';
in { in {
@ -51,7 +89,7 @@ in {
siteOwner = mkOption { siteOwner = mkOption {
type = types.str; type = types.str;
default = "postmaster"; default = "postmaster@example.org";
description = '' description = ''
Certain messages that must be delivered to a human, but which can't Certain messages that must be delivered to a human, but which can't
be delivered to a list owner (e.g. a bounce from a list owner), will be delivered to a list owner (e.g. a bounce from a list owner), will
@ -59,6 +97,48 @@ in {
''; '';
}; };
webRoot = mkOption {
type = types.path;
default = "${mailmanWeb}/${pkgs.python3.sitePackages}";
defaultText = "pkgs.python3Packages.mailman-web";
description = ''
The web root for the Hyperkity + Postorius apps provided by Mailman.
This variable can be set, of course, but it mainly exists so that site
admins can refer to it in their own hand-written httpd configuration files.
'';
};
webHosts = mkOption {
type = types.listOf types.str;
default = [];
description = ''
The list of hostnames and/or IP addresses from which the Mailman Web
UI will accept requests. By default, "localhost" and "127.0.0.1" are
enabled. All additional names under which your web server accepts
requests for the UI must be listed here or incoming requests will be
rejected.
'';
};
hyperkittyBaseUrl = mkOption {
type = types.str;
default = "http://localhost/hyperkitty/";
description = ''
Where can Mailman connect to Hyperkitty's internal API, preferably on
localhost?
'';
};
hyperkittyApiKey = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The shared secret used to authenticate Mailman's internal
communication with Hyperkitty. Must be set to enable support for the
Hyperkitty archiver. Note that this secret is going to be visible to
all local users in the Nix store.
'';
};
}; };
}; };
@ -71,25 +151,22 @@ in {
{ assertion = cfg.enable -> config.services.postfix.enable; { assertion = cfg.enable -> config.services.postfix.enable;
message = "Mailman requires Postfix"; message = "Mailman requires Postfix";
} }
{ assertion = config.services.postfix.recipientDelimiter == "+";
message = "Postfix's recipientDelimiter must be set to '+'.";
}
]; ];
users.users.mailman = { description = "GNU Mailman"; isSystemUser = true; }; users.users.mailman = { description = "GNU Mailman"; isSystemUser = true; };
environment = { environment = {
systemPackages = [ mailmanExe ]; systemPackages = [ mailmanExe mailmanWebExe pkgs.sassc ];
etc."mailman.cfg".text = mailmanCfg; etc."mailman.cfg".text = mailmanCfg;
}; };
services.postfix = { services.postfix = {
relayDomains = [ "hash:/var/lib/mailman/data/postfix_domains" ]; relayDomains = [ "hash:/var/lib/mailman/data/postfix_domains" ];
recipientDelimiter = "+"; # bake recipient addresses in mail envelopes via VERP
config = { config = {
transport_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ]; transport_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
local_recipient_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ]; local_recipient_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
# Mailman uses recipient delimiters, so we don't need special handling. owner_request_special = "no"; # Mailman handles -owner addresses on its own
owner_request_special = "no";
}; };
}; };
@ -109,6 +186,112 @@ in {
}; };
}; };
systemd.services.mailman-web = {
description = "Init Postorius DB";
before = [ "httpd.service" ];
requiredBy = [ "httpd.service" ];
script = ''
${mailmanWebExe}/bin/mailman-web migrate
rm -rf static
${mailmanWebExe}/bin/mailman-web collectstatic
${mailmanWebExe}/bin/mailman-web compress
'';
serviceConfig = {
User = config.services.httpd.user;
Type = "oneshot";
StateDirectory = "mailman-web";
StateDirectoryMode = "0700";
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.mailman-daily = {
description = "Trigger daily Mailman events";
startAt = "daily";
serviceConfig = {
ExecStart = "${mailmanExe}/bin/mailman digests --send";
User = "mailman";
};
};
systemd.services.hyperkitty = {
enable = cfg.hyperkittyApiKey != null;
description = "GNU Hyperkitty QCluster Process";
after = [ "network.target" ];
wantedBy = [ "mailman.service" "multi-user.target" ];
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web qcluster";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-minutely = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger minutely Hyperkitty events";
startAt = "minutely";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs minutely";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-quarter-hourly = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger quarter-hourly Hyperkitty events";
startAt = "*:00/15";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs quarter_hourly";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-hourly = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger hourly Hyperkitty events";
startAt = "hourly";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs hourly";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-daily = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger daily Hyperkitty events";
startAt = "daily";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs daily";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-weekly = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger weekly Hyperkitty events";
startAt = "weekly";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs weekly";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-yearly = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger yearly Hyperkitty events";
startAt = "yearly";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs yearly";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
}; };
} }

View File

@ -34,6 +34,7 @@ let
"node" "node"
"postfix" "postfix"
"postgres" "postgres"
"rspamd"
"snmp" "snmp"
"surfboard" "surfboard"
"tor" "tor"
@ -193,6 +194,8 @@ in
services.prometheus.exporters.minio.minioAddress = mkDefault "http://localhost:9000"; services.prometheus.exporters.minio.minioAddress = mkDefault "http://localhost:9000";
services.prometheus.exporters.minio.minioAccessKey = mkDefault config.services.minio.accessKey; services.prometheus.exporters.minio.minioAccessKey = mkDefault config.services.minio.accessKey;
services.prometheus.exporters.minio.minioAccessSecret = mkDefault config.services.minio.secretKey; services.prometheus.exporters.minio.minioAccessSecret = mkDefault config.services.minio.secretKey;
})] ++ [(mkIf config.services.rspamd.enable {
services.prometheus.exporters.rspamd.url = mkDefault "http://localhost:11334/stat";
})] ++ (mapAttrsToList (name: conf: })] ++ (mapAttrsToList (name: conf:
mkExporterConf { mkExporterConf {
inherit name; inherit name;

View File

@ -0,0 +1,92 @@
{ config, lib, pkgs, options }:
with lib;
let
cfg = config.services.prometheus.exporters.rspamd;
prettyJSON = conf:
pkgs.runCommand "rspamd-exporter-config.yml" { } ''
echo '${builtins.toJSON conf}' | ${pkgs.buildPackages.jq}/bin/jq '.' > $out
'';
generateConfig = extraLabels: (map (path: {
name = "rspamd_${replaceStrings [ "." " " ] [ "_" "_" ] path}";
path = "$.${path}";
labels = extraLabels;
}) [
"actions.'add header'"
"actions.'no action'"
"actions.'rewrite subject'"
"actions.'soft reject'"
"actions.greylist"
"actions.reject"
"bytes_allocated"
"chunks_allocated"
"chunks_freed"
"chunks_oversized"
"connections"
"control_connections"
"ham_count"
"learned"
"pools_allocated"
"pools_freed"
"read_only"
"scanned"
"shared_chunks_allocated"
"spam_count"
"total_learns"
]) ++ [{
name = "rspamd_statfiles";
type = "object";
path = "$.statfiles[*]";
labels = recursiveUpdate {
symbol = "$.symbol";
type = "$.type";
} extraLabels;
values = {
revision = "$.revision";
size = "$.size";
total = "$.total";
used = "$.used";
languages = "$.languages";
users = "$.users";
};
}];
in
{
port = 7980;
extraOpts = {
listenAddress = {}; # not used
url = mkOption {
type = types.str;
description = ''
URL to the rspamd metrics endpoint.
Defaults to http://localhost:11334/stat when
<option>services.rspamd.enable</option> is true.
'';
};
extraLabels = mkOption {
type = types.attrsOf types.str;
default = {
host = config.networking.hostName;
};
defaultText = "{ host = config.networking.hostName; }";
example = literalExample ''
{
host = config.networking.hostName;
custom_label = "some_value";
}
'';
description = "Set of labels added to each metric.";
};
};
serviceOpts.serviceConfig.ExecStart = ''
${pkgs.prometheus-json-exporter}/bin/prometheus-json-exporter \
--port ${toString cfg.port} \
${cfg.url} ${prettyJSON (generateConfig cfg.extraLabels)} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
}

View File

@ -9,11 +9,11 @@ let
keyFile = "${stateDir}/chrony.keys"; keyFile = "${stateDir}/chrony.keys";
configFile = pkgs.writeText "chrony.conf" '' configFile = pkgs.writeText "chrony.conf" ''
${concatMapStringsSep "\n" (server: "server " + server) cfg.servers} ${concatMapStringsSep "\n" (server: "server " + server + " iburst") cfg.servers}
${optionalString ${optionalString
(cfg.initstepslew.enabled && (cfg.servers != [])) (cfg.initstepslew.enabled && (cfg.servers != []))
"initstepslew ${toString cfg.initstepslew.threshold} ${concatStringsSep " " cfg.initstepslew.servers}" "initstepslew ${toString cfg.initstepslew.threshold} ${concatStringsSep " " cfg.servers}"
} }
driftfile ${stateDir}/chrony.drift driftfile ${stateDir}/chrony.drift
@ -24,7 +24,7 @@ let
${cfg.extraConfig} ${cfg.extraConfig}
''; '';
chronyFlags = "-m -u chrony -f ${configFile} ${toString cfg.extraFlags}"; chronyFlags = "-n -m -u chrony -f ${configFile} ${toString cfg.extraFlags}";
in in
{ {
options = { options = {
@ -48,7 +48,6 @@ in
default = { default = {
enabled = true; enabled = true;
threshold = 1000; # by default, same threshold as 'ntpd -g' (1000s) threshold = 1000; # by default, same threshold as 'ntpd -g' (1000s)
servers = cfg.servers;
}; };
description = '' description = ''
Allow chronyd to make a rapid measurement of the system clock error at Allow chronyd to make a rapid measurement of the system clock error at
@ -76,6 +75,8 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
meta.maintainers = with lib.maintainers; [ thoughtpolice ];
environment.systemPackages = [ pkgs.chrony ]; environment.systemPackages = [ pkgs.chrony ];
users.groups = singleton users.groups = singleton
@ -115,7 +116,7 @@ in
unitConfig.ConditionCapability = "CAP_SYS_TIME"; unitConfig.ConditionCapability = "CAP_SYS_TIME";
serviceConfig = serviceConfig =
{ Type = "forking"; { Type = "simple";
ExecStart = "${pkgs.chrony}/bin/chronyd ${chronyFlags}"; ExecStart = "${pkgs.chrony}/bin/chronyd ${chronyFlags}";
ProtectHome = "yes"; ProtectHome = "yes";

View File

@ -96,6 +96,7 @@ in
###### implementation ###### implementation
config = mkIf config.services.ntp.enable { config = mkIf config.services.ntp.enable {
meta.maintainers = with lib.maintainers; [ thoughtpolice ];
# Make tools such as ntpq available in the system path. # Make tools such as ntpq available in the system path.
environment.systemPackages = [ pkgs.ntp ]; environment.systemPackages = [ pkgs.ntp ];

View File

@ -52,6 +52,7 @@ in
###### implementation ###### implementation
config = mkIf cfg.enable { config = mkIf cfg.enable {
meta.maintainers = with lib.maintainers; [ thoughtpolice ];
services.timesyncd.enable = mkForce false; services.timesyncd.enable = mkForce false;
# Add ntpctl to the environment for status checking # Add ntpctl to the environment for status checking

View File

@ -216,7 +216,6 @@ in
index index.html index.php; index index.html index.php;
gzip on; gzip on;
gzip_disable "msie6";
gzip_comp_level 6; gzip_comp_level 6;
gzip_min_length 1100; gzip_min_length 1100;

View File

@ -179,7 +179,7 @@ in
'' + optionalString (cfg.database.type == "oracle") '' '' + optionalString (cfg.database.type == "oracle") ''
extension=${pkgs.phpPackages.oci8}/lib/php/extensions/oci8.so extension=${pkgs.phpPackages.oci8}/lib/php/extensions/oci8.so
''; '';
phpEnv.ZABBIX_CONFIG = zabbixConfig; phpEnv.ZABBIX_CONFIG = "${zabbixConfig}";
settings = { settings = {
"listen.owner" = config.services.httpd.user; "listen.owner" = config.services.httpd.user;
"listen.group" = config.services.httpd.group; "listen.group" = config.services.httpd.group;
@ -197,7 +197,7 @@ in
<Directory "${cfg.package}/share/zabbix"> <Directory "${cfg.package}/share/zabbix">
<FilesMatch "\.php$"> <FilesMatch "\.php$">
<If "-f %{REQUEST_FILENAME}"> <If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:${fpm.listen}|fcgi://localhost/" SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/"
</If> </If>
</FilesMatch> </FilesMatch>
AllowOverride all AllowOverride all

View File

@ -94,7 +94,6 @@ let
${optionalString (cfg.recommendedGzipSettings) '' ${optionalString (cfg.recommendedGzipSettings) ''
gzip on; gzip on;
gzip_disable "msie6";
gzip_proxied any; gzip_proxied any;
gzip_comp_level 5; gzip_comp_level 5;
gzip_types gzip_types

View File

@ -240,6 +240,8 @@ in
services.avahi.enable = mkDefault true; services.avahi.enable = mkDefault true;
xdg.portal.extraPortals = [ pkgs.gnome3.gnome-shell ];
services.geoclue2.enable = mkDefault true; services.geoclue2.enable = mkDefault true;
services.geoclue2.enableDemoAgent = false; # GNOME has its own geoclue agent services.geoclue2.enableDemoAgent = false; # GNOME has its own geoclue agent

View File

@ -30,6 +30,7 @@ import ./make-test.nix ({ pkgs, ...} :
enable = true; enable = true;
user = "alice"; user = "alice";
}; };
hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
virtualisation.memorySize = 1024; virtualisation.memorySize = 1024;
environment.systemPackages = [ sddm_theme ]; environment.systemPackages = [ sddm_theme ];
}; };

View File

@ -297,6 +297,22 @@ let
''; '';
}; };
rspamd = {
exporterConfig = {
enable = true;
};
metricProvider = {
services.rspamd.enable = true;
};
exporterTest = ''
waitForUnit("rspamd.service");
waitForUnit("prometheus-rspamd-exporter.service");
waitForOpenPort(11334);
waitForOpenPort(7980);
waitUntilSucceeds("curl -sSf localhost:7980/metrics | grep -q 'rspamd_scanned{host=\"rspamd\"} 0'");
'';
};
snmp = { snmp = {
exporterConfig = { exporterConfig = {
enable = true; enable = true;

View File

@ -17,6 +17,10 @@ import ./make-test.nix ({ pkgs, ...} : {
services.xserver.desktopManager.xfce.enable = true; services.xserver.desktopManager.xfce.enable = true;
environment.systemPackages = [ pkgs.xorg.xmessage ]; environment.systemPackages = [ pkgs.xorg.xmessage ];
hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
virtualisation.memorySize = 1024;
}; };
testScript = testScript =

View File

@ -12,6 +12,10 @@ import ./make-test.nix ({ pkgs, ...} : {
services.xserver.displayManager.auto.user = "alice"; services.xserver.displayManager.auto.user = "alice";
services.xserver.desktopManager.xfce4-14.enable = true; services.xserver.desktopManager.xfce4-14.enable = true;
hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
virtualisation.memorySize = 1024;
}; };
testScript = testScript =

View File

@ -14,9 +14,9 @@ let
}; };
betaVersion = stableVersion; betaVersion = stableVersion;
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "3.6.0.10"; # "Android Studio 3.6 Canary 10" version = "3.6.0.11"; # "Android Studio 3.6 Canary 11"
build = "192.5842447"; build = "192.5863777";
sha256Hash = "0qyvqm0ihp6czx77skia87qnz87wrsp1a6la04dr4b0xln2c8m5b"; sha256Hash = "1wz4vcdj4225vffsq0ji4zgg9qaqlfd21x7c6nczhqvydbyrjzg8";
}; };
in { in {
# Attributes are named by their corresponding release channels # Attributes are named by their corresponding release channels

View File

@ -4,6 +4,7 @@
, llvmPackages , llvmPackages
}: }:
with stdenv.lib;
let let
verMajor = "1"; verMajor = "1";
verMinor = "2"; verMinor = "2";
@ -47,7 +48,13 @@ stdenv.mkDerivation rec {
sha256 = "19x000m3jwnkqgi6ic81lkzyjvvxcfacw2j0vcfcaknvvagzhyhb"; sha256 = "19x000m3jwnkqgi6ic81lkzyjvvxcfacw2j0vcfcaknvvagzhyhb";
}; };
hunspellDictionaries = with stdenv.lib; filter isDerivation (unique (attrValues hunspellDicts)); hunspellDictionaries = filter isDerivation (unique (attrValues hunspellDicts));
# These dicts contain identically-named dict files, so we only keep the
# -large versions in case of clashes
largeDicts = filter (d: hasInfix "-large-wordlist" d) hunspellDictionaries;
otherDicts = filter (d: !(hasAttr "dictFileName" d &&
elem d.dictFileName (map (d: d.dictFileName) largeDicts))) hunspellDictionaries;
dictionaries = largeDicts ++ otherDicts;
mathJaxSrc = fetchurl { mathJaxSrc = fetchurl {
url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip; url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip;
@ -77,7 +84,7 @@ stdenv.mkDerivation rec {
mv gwt-${gwtVer} $GWT_LIB_DIR/gwt/${gwtVer} mv gwt-${gwtVer} $GWT_LIB_DIR/gwt/${gwtVer}
mkdir dependencies/common/dictionaries mkdir dependencies/common/dictionaries
for dict in ${builtins.concatStringsSep " " hunspellDictionaries}; do for dict in ${builtins.concatStringsSep " " dictionaries}; do
for i in "$dict/share/hunspell/"*; do for i in "$dict/share/hunspell/"*; do
ln -sv $i dependencies/common/dictionaries/ ln -sv $i dependencies/common/dictionaries/
done done

View File

@ -5,7 +5,7 @@
incidenceeditor, kcalcore, kcalutils, kconfig, kdbusaddons, kdeclarative, incidenceeditor, kcalcore, kcalutils, kconfig, kdbusaddons, kdeclarative,
kdepim-apps-libs, kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar, kdepim-apps-libs, kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
libksieve, mailcommon, mailimporter, messagelib, poppler, prison, kpkpass, libksieve, mailcommon, mailimporter, messagelib, poppler, prison, kpkpass,
kitinerary kitinerary, kontactinterface
}: }:
mkDerivation { mkDerivation {
@ -20,6 +20,6 @@ mkDerivation {
incidenceeditor kcalcore kcalutils kconfig kdbusaddons kdeclarative incidenceeditor kcalcore kcalutils kconfig kdbusaddons kdeclarative
kdepim-apps-libs kholidays ki18n kmime ktexteditor ktnef libgravatar kdepim-apps-libs kholidays ki18n kmime ktexteditor ktnef libgravatar
libksieve mailcommon mailimporter messagelib poppler prison kpkpass libksieve mailcommon mailimporter messagelib poppler prison kpkpass
kitinerary kitinerary kontactinterface
]; ];
} }

View File

@ -5,7 +5,7 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "electrum-ltc"; pname = "electrum-ltc";
version = "3.1.3.1"; version = "3.3.8.1";
src = fetchurl { src = fetchurl {
url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz"; url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz";

View File

@ -1,24 +1,24 @@
{ stdenv, requireFile, unzip, rlwrap, bash }: { stdenv, requireFile, unzip, rlwrap, bash, zlib }:
assert (stdenv.hostPlatform.system == "i686-linux"); assert (stdenv.hostPlatform.system == "i686-linux");
let let
libPath = stdenv.lib.makeLibraryPath libPath = stdenv.lib.makeLibraryPath
[ stdenv.cc.libc stdenv.cc.cc ]; [ stdenv.cc.libc stdenv.cc.cc zlib ];
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "kdbplus"; pname = "kdbplus";
version = "3.3"; version = "3.6";
src = requireFile { src = requireFile rec {
message = '' message = ''
Nix can't download kdb+ for you automatically. Go to Nix can't download kdb+ for you automatically. Go to
http://kx.com and download the free, 32-bit version for http://kx.com and download the free, 32-bit version for
Linux. Then run "nix-prefetch-url file://\$PWD/linux.zip" in Linux. Then run "nix-prefetch-url file://\$PWD/${name}" in
the directory where you saved it. Note you need version 3.3. the directory where you saved it. Note you need version ${version}.
''; '';
name = "linux.zip"; name = "linuxx86.zip";
sha256 = "5fd0837599e24f0f437a8314510888a86ab0787684120a8fcf592299800aa940"; sha256 = "0w6znd9warcqx28vf648n0vgmxyyy9kvsfpsfw37d1kp5finap4p";
}; };
dontStrip = true; dontStrip = true;

View File

@ -104,6 +104,9 @@ in buildFHSUserEnv {
# WINE # WINE
cups lcms2 mpg123 cairo unixODBC samba4 sane-backends openldap cups lcms2 mpg123 cairo unixODBC samba4 sane-backends openldap
ocl-icd utillinux ocl-icd utillinux
# Winetricks
fribidi
] ++ xorgDeps pkgs; ] ++ xorgDeps pkgs;
extraInstallCommands = '' extraInstallCommands = ''

View File

@ -1,8 +1,8 @@
{ fetchurl, stdenv, pkgconfig, python, file, bc, fetchpatch { fetchurl, lib, mkDerivation, pkgconfig, python, file, bc, fetchpatch
, qtbase, qtsvg, hunspell, makeWrapper #, mythes, boost , qtbase, qtsvg, hunspell, makeWrapper #, mythes, boost
}: }:
stdenv.mkDerivation rec { mkDerivation rec {
version = "2.3.0"; version = "2.3.0";
pname = "lyx"; pname = "lyx";
@ -30,10 +30,9 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
# python is run during runtime to do various tasks # python is run during runtime to do various tasks
postFixup = '' qtWrapperArgs = [
wrapProgram "$out/bin/lyx" \ " --prefix PATH : ${python}/bin"
--prefix PATH : '${python}/bin' ];
'';
patches = [ patches = [
(fetchpatch { (fetchpatch {
@ -42,7 +41,7 @@ stdenv.mkDerivation rec {
}) })
]; ];
meta = with stdenv.lib; { meta = with lib; {
description = "WYSIWYM frontend for LaTeX, DocBook"; description = "WYSIWYM frontend for LaTeX, DocBook";
homepage = http://www.lyx.org; homepage = http://www.lyx.org;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;

View File

@ -1,15 +1,15 @@
{ stdenv, fetchFromGitHub, pkgconfig, cmake, libeb, lzo, qtbase { mkDerivation, lib, fetchFromGitHub, pkgconfig, cmake, libeb, lzo
, qtmultimedia, qttools, qtwebengine }: , qtbase, qtmultimedia, qttools, qtwebengine }:
stdenv.mkDerivation { mkDerivation {
pname = "qolibri"; pname = "qolibri";
version = "2018-11-14"; version = "2019-07-22";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ludios"; owner = "ludios";
repo = "qolibri"; repo = "qolibri";
rev = "133a1c33e74d931ad54407f70d84a0016d96981f"; rev = "b58f9838d39300cba444eba725a369181c5d746b";
sha256 = "16ifix0q8ww4l3xflgxr9j81c0lzlnkjr8fj961x3nxz7288pdg2"; sha256 = "0kcc6dvbcmq9y7hk8mp23pydiaqz6f0clg64d1f2y04ppphmah42";
}; };
nativeBuildInputs = [ pkgconfig cmake ]; nativeBuildInputs = [ pkgconfig cmake ];
@ -19,7 +19,7 @@ stdenv.mkDerivation {
enableParallelBuilding = true; enableParallelBuilding = true;
meta = with stdenv.lib; { meta = with lib; {
homepage = https://github.com/ludios/qolibri; homepage = https://github.com/ludios/qolibri;
description = "EPWING reader for viewing Japanese dictionaries"; description = "EPWING reader for viewing Japanese dictionaries";
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -1,7 +1,7 @@
{ fetchurl, stdenv, makeWrapper, pkgconfig, intltool, gettext, gtk2, expat, curl { fetchurl, stdenv, makeWrapper, pkgconfig, intltool, gettext, gtk2, expat, curl
, gpsd, bc, file, gnome-doc-utils, libexif, libxml2, libxslt, scrollkeeper , gpsd, bc, file, gnome-doc-utils, libexif, libxml2, libxslt, scrollkeeper
, docbook_xml_dtd_412, gexiv2, sqlite, gpsbabel, expect, hicolor-icon-theme , docbook_xml_dtd_412, gexiv2, sqlite, gpsbabel, expect, hicolor-icon-theme
, geoclue2, liboauth }: , geoclue2, liboauth, nettle }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "viking"; pname = "viking";
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2 sqlite hicolor-icon-theme libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2 sqlite hicolor-icon-theme
geoclue2 liboauth geoclue2 liboauth nettle
]; ];
configureFlags = [ "--disable-scrollkeeper --disable-mapnik" ]; configureFlags = [ "--disable-scrollkeeper --disable-mapnik" ];

View File

@ -1,22 +1,30 @@
{stdenv, fetchurl, wxGTK, chmlib}: { stdenv, fetchFromGitHub, autoreconfHook, wxGTK30, chmlib }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "xchm-1.23"; pname = "xchm";
src = fetchurl { version = "1.30";
url = mirror://sourceforge/xchm/xchm-1.23.tar.gz;
sha256 = "0qn0fyxcrn30ndq2asx31k0qkx3grbm16fb1y580wd2gjmh5r3wg"; src = fetchFromGitHub {
owner = "rzvncj";
repo = "xCHM";
rev = version;
sha256 = "1sjvh06m8jbb28k6y3knas3nkh1dfvff4mlwjs33x12ilhddhr8v";
}; };
buildInputs = [wxGTK chmlib];
postConfigure = '' nativeBuildInputs = [ autoreconfHook ];
export NIX_LDFLAGS="$NIX_LDFLAGS $(${wxGTK}/lib/wx/config/* --libs | sed -e s@-pthread@@)" buildInputs = [ wxGTK30 chmlib ];
echo $NIX_LDFLAGS
configureFlags = [ "--with-wx-prefix=${wxGTK30}" ];
preConfigure = ''
export LDFLAGS="$LDFLAGS $(${wxGTK30}/bin/wx-config --libs | sed -e s@-pthread@@) -lwx_gtk2u_aui-3.0"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A viewer for Microsoft HTML Help files"; description = "A viewer for Microsoft HTML Help files";
homepage = http://xchm.sourceforge.net; homepage = "https://github.com/rzvncj/xCHM";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ sikmir ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -100,11 +100,11 @@ let
flash = stdenv.mkDerivation rec { flash = stdenv.mkDerivation rec {
pname = "flashplayer-ppapi"; pname = "flashplayer-ppapi";
version = "32.0.0.238"; version = "32.0.0.255";
src = fetchzip { src = fetchzip {
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
sha256 = "0jqx68lfqjpy6wbxdi0giclvh9mc9rha92hqdj1nx42v95k3gc65"; sha256 = "1rqb54kqxq66vvqk5yrr3rsy3wcj9r9wnkngk27c7jayzm6bwgvv";
stripRoot = false; stripRoot = false;
}; };

View File

@ -74,7 +74,7 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "flashplayer"; pname = "flashplayer";
version = "32.0.0.238"; version = "32.0.0.255";
src = fetchurl { src = fetchurl {
url = url =
@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
sha256 = sha256 =
if debug then if debug then
if arch == "x86_64" then if arch == "x86_64" then
"1f5i64nzkvxy20vi7kldaamwp6pi2zgmjiw061cgqrwf7hj45wkg" "1hd5z8qmki36k2wdwgg3v4sj32g8590r5563gdrjrk7bmrqfjnji"
else else
"09jvxqp83hpk89ak8flq14s3s3nhy3ary91jc6k47v325axh1cl9" "0y13bxdgkxaqsyab09skiqj8dfjw76n2lr7p525ba8lbfbc8xj52"
else else
if arch == "x86_64" then if arch == "x86_64" then
"05gvssjdz43pvgivdngrf8qr5b30p45hr2sr97cyl6b87581qw9s" "0qkslkaiw3c9xk1rjcl4x9d0fi6i91k7g01mf0gq28wgzcyz4cw7"
else else
"06l7zhgh5rfxxw46b500zdgcqsk2h7kivng5b0b74s3vy7f0g270"; "0qblmaa3nq1g7825yhvz98pvd1591q3q7bsrhv5bbhdbmb9c1qd5";
}; };
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];
@ -141,7 +141,7 @@ stdenv.mkDerivation rec {
description = "Adobe Flash Player browser plugin"; description = "Adobe Flash Player browser plugin";
homepage = http://www.adobe.com/products/flashplayer/; homepage = http://www.adobe.com/products/flashplayer/;
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
maintainers = []; maintainers = with stdenv.lib.maintainers; [ taku0 ];
platforms = [ "x86_64-linux" "i686-linux" ]; platforms = [ "x86_64-linux" "i686-linux" ];
}; };
} }

View File

@ -50,7 +50,7 @@
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "flashplayer-standalone"; pname = "flashplayer-standalone";
version = "32.0.0.238"; version = "32.0.0.255";
src = fetchurl { src = fetchurl {
url = url =
@ -60,9 +60,9 @@ stdenv.mkDerivation {
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz"; "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz";
sha256 = sha256 =
if debug then if debug then
"1vhfjpwsmg96irfvz81ldzn2m4qcjnql5psg4cifjay423yxabvy" "1igc23mljmw1bw6fwx3rwpz7kxiy8n5znkng20w3yin2zh8qw8sy"
else else
"0am95xi2jasvxj5b2i12wzpvl3bvxli537k1i04698cg0na6x0y0"; "0rfvgx1g0s8wswwpmfjx6p59yh1cxya3x3bczbissrq4rcb1v315";
}; };
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];

View File

@ -47,7 +47,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python3Packages; [
pyyaml pyqt5 pyqtwebengine jinja2 pygments pyyaml pyqt5 pyqtwebengine jinja2 pygments
pypeg2 cssutils pyopengl attrs pypeg2 cssutils pyopengl attrs setuptools
# scripts and userscripts libs # scripts and userscripts libs
tldextract beautifulsoup4 tldextract beautifulsoup4
pyreadability pykeepass stem pyreadability pykeepass stem

View File

@ -89,7 +89,7 @@ let
fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ]; fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
# Upstream source # Upstream source
version = "8.5.4"; version = "8.5.5";
lang = "en-US"; lang = "en-US";
@ -99,7 +99,7 @@ let
"https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux64-${version}_${lang}.tar.xz" "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
"https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz" "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
]; ];
sha256 = "0nnzynk3nlnd847c8jjghs9anmr5a2hv7nk1qxigigxqa5vqy96z"; sha256 = "00r5k9bbfpv3s6shxqypl13psr1zz51xiyz3vmm4flhr2qa4ycsz";
}; };
i686-linux = fetchurl { i686-linux = fetchurl {
@ -107,7 +107,7 @@ let
"https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz" "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
"https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux32-${version}_${lang}.tar.xz" "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
]; ];
sha256 = "1b34skl3hwvpy0r4l5ykgnnwhbz7cvly2gi9ib4h7lijjfafiys1"; sha256 = "1nxvw5kiggfr4n5an436ass84cvwjviaa894kfm72yf2ls149f29";
}; };
}; };
in in

View File

@ -2,7 +2,7 @@
let let
stableVersion = "2.1.21"; stableVersion = "2.1.21";
previewVersion = "2.2.0rc4"; previewVersion = "2.2.0rc5";
addVersion = args: addVersion = args:
let version = if args.stable then stableVersion else previewVersion; let version = if args.stable then stableVersion else previewVersion;
branch = if args.stable then "stable" else "preview"; branch = if args.stable then "stable" else "preview";
@ -18,7 +18,7 @@ in {
}; };
guiPreview = mkGui { guiPreview = mkGui {
stable = false; stable = false;
sha256Hash = "14fzjaanaxya97wrya2lybxz6qv72fk4ws8i92zvjz4jkvjdk9n3"; sha256Hash = "0x4sp6yjnvzpk8cxdqlf51njckmvvkijdb7rvcb4hvqq1ab6gb2x";
}; };
serverStable = mkServer { serverStable = mkServer {
@ -27,6 +27,6 @@ in {
}; };
serverPreview = mkServer { serverPreview = mkServer {
stable = false; stable = false;
sha256Hash = "03s2kq5f8whk14rhprg9yp3918641b1cwj6djcbjw8xpz0n3w022"; sha256Hash = "0inj6fac0683s1sxaba3ljia90cfach0y42xylzgzza36wpyqpqg";
}; };
} }

View File

@ -8,7 +8,7 @@ with lib;
mkDerivation rec { mkDerivation rec {
pname = "telegram-desktop"; pname = "telegram-desktop";
version = "1.8.4"; version = "1.8.8";
# Note: Due to our strong dependency on the Arch patches it's probably best # Note: Due to our strong dependency on the Arch patches it's probably best
# to also wait for the Arch update (especially if the patches don't apply). # to also wait for the Arch update (especially if the patches don't apply).
@ -17,7 +17,7 @@ mkDerivation rec {
owner = "telegramdesktop"; owner = "telegramdesktop";
repo = "tdesktop"; repo = "tdesktop";
rev = "v${version}"; rev = "v${version}";
sha256 = "1q6y05kb6jjarb690qq28fqkv6kfkxdmfx0va1qi7aqxlhd5rvyl"; sha256 = "1aj1pnzc6bz8jbdrfwdj2r54jhw9z7b5fd1095r007zmlnzs51lv";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -25,8 +25,8 @@ mkDerivation rec {
archPatches = fetchsvn { archPatches = fetchsvn {
url = "svn://svn.archlinux.org/community/telegram-desktop/trunk"; url = "svn://svn.archlinux.org/community/telegram-desktop/trunk";
# svn log svn://svn.archlinux.org/community/telegram-desktop/trunk # svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
rev = "498563"; rev = "509240";
sha256 = "0g2y6impygqhfiqnyxc1ivxwl8j82q9qcnkqcjn6mwj3cisyxwnl"; sha256 = "1sf4mspbsqsnjzp9ys9l0asrx1bhj273d163i2bv1zhl4mmgpl3k";
}; };
privateHeadersPatch = fetchpatch { privateHeadersPatch = fetchpatch {
url = "https://github.com/telegramdesktop/tdesktop/commit/b9d3ba621eb8af638af46c6b3cfd7a8330bf0dd5.patch"; url = "https://github.com/telegramdesktop/tdesktop/commit/b9d3ba621eb8af638af46c6b3cfd7a8330bf0dd5.patch";

View File

@ -14,11 +14,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
let let
inherit (stdenv.lib) concatStringsSep makeBinPath optional; inherit (stdenv.lib) concatStringsSep makeBinPath optional;
version = "3.0.287250.0828"; version = "3.0.291715.0908";
srcs = { srcs = {
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz"; url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
sha256 = "0k4h43wydbcyx7b7gwxkmvbph8qc6kjpcypd7vwz8rph1l7kl1y1"; sha256 = "1f2fcwf0p86bxcnfdhij6hvgizd7n7gjcccwzdm2jv0dbqskad2f";
}; };
}; };

View File

@ -1,4 +0,0 @@
---
gem:
https://rubygems.org/downloads/mini_portile-0.6.0.gem: 09kcn4g63xrdirgwxgjikqg976rr723bkc9bxfr29pk22cj3wavn
https://rubygems.org/downloads/gpgme-2.0.7.gem: 1p84zhiri2ihcld7py9mwc2kg5xs5da8fk11zhndrhmw05yvf5mr

View File

@ -1,9 +0,0 @@
source "https://rubygems.org"
gem 'rake'
gem 'sup'
gem 'gpgme'
# Sup tries to `xapian-ruby` in its extconf instead of listing it as a
# dependency.
gem 'xapian-ruby', "~> 1.2.22"

View File

@ -1,41 +0,0 @@
GEM
remote: https://rubygems.org/
specs:
chronic (0.9.1)
gpgme (2.0.18)
mini_portile2 (~> 2.3)
highline (2.0.2)
locale (2.1.2)
lockfile (2.1.3)
mime-types (3.2.2)
mime-types-data (~> 3.2015)
mime-types-data (3.2019.0331)
mini_portile2 (2.4.0)
ncursesw (1.4.10)
rake (12.3.2)
rmail-sup (1.0.1)
sup (0.22.1)
chronic (~> 0.9.1)
highline
locale (~> 2.0)
lockfile
mime-types (> 2.0)
ncursesw (~> 1.4.0)
rmail-sup (~> 1.0.1)
trollop (>= 1.12)
unicode (~> 0.4.4)
trollop (2.9.9)
unicode (0.4.4.4)
xapian-ruby (1.2.22)
PLATFORMS
ruby
DEPENDENCIES
gpgme
rake
sup
xapian-ruby (~> 1.2.22)
BUNDLED WITH
1.17.2

View File

@ -1,28 +0,0 @@
{ lib, bundlerApp, bundlerUpdateScript }:
bundlerApp {
pname = "sup";
gemdir = ./.;
exes = [
"sup"
"sup-add"
"sup-config"
"sup-dump"
"sup-import-dump"
"sup-psych-ify-config-files"
"sup-recover-sources"
"sup-sync"
"sup-sync-back-maildir"
"sup-tweak-labels"
];
passthru.updateScript = bundlerUpdateScript "sup";
meta = with lib; {
description = "A curses threads-with-tags style email client";
homepage = http://sup-heliotrope.github.io;
license = licenses.gpl2;
maintainers = with maintainers; [ cstrahan lovek323 manveru nicknovitski ];
platforms = platforms.unix;
};
}

View File

@ -1,155 +0,0 @@
{
chronic = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0kspaxpfy7yvyk1lvpx31w852qfj8wb9z04mcj5bzi70ljb9awqk";
type = "gem";
};
version = "0.9.1";
};
gpgme = {
dependencies = ["mini_portile2"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "12fqirxr964mc8jwsfl5nif6q4wcckrmj7w4c9ci4xg9xy2b9v6m";
type = "gem";
};
version = "2.0.18";
};
highline = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1g0zpalfj8wvca86hcnirir5py2zyqrhkgdgv9f87fxkjaw815wr";
type = "gem";
};
version = "2.0.2";
};
locale = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
type = "gem";
};
version = "2.1.2";
};
lockfile = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0dij3ijywylvfgrpi2i0k17f6w0wjhnjjw0k9030f54z56cz7jrr";
type = "gem";
};
version = "2.1.3";
};
mime-types = {
dependencies = ["mime-types-data"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
type = "gem";
};
version = "3.2.2";
};
mime-types-data = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1m00pg19cm47n1qlcxgl91ajh2yq0fszvn1vy8fy0s1jkrp9fw4a";
type = "gem";
};
version = "3.2019.0331";
};
mini_portile2 = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
type = "gem";
};
version = "2.4.0";
};
ncursesw = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1nc14wls1yiigz593vw7580hb99lf4n485axapiz6sqpg1jnlhcr";
type = "gem";
};
version = "1.4.10";
};
rake = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
type = "gem";
};
version = "12.3.2";
};
rmail-sup = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1xswk101s560lxqaax3plqh8vjx7jjspnggdwb3q80m358f92q9g";
type = "gem";
};
version = "1.0.1";
};
sup = {
dependencies = ["chronic" "highline" "locale" "lockfile" "mime-types" "ncursesw" "rmail-sup" "trollop" "unicode"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "17s2sxismf46zdhgr6g2v53fw9f3sp1ijx7xdw3wx8qpcsgazcgi";
type = "gem";
};
version = "0.22.1";
};
trollop = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "074h7lns72kg1dl5gvz5apl3xz1i0axbnbc01pf2kbw4q0lkpnp4";
type = "gem";
};
version = "2.9.9";
};
unicode = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1v8kxmq9i85agjpl7pnl72688901xhs8wxhmj6lpy16a8xz3nzxk";
type = "gem";
};
version = "0.4.4.4";
};
xapian-ruby = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1xbarnxmhy6r0rxpspn4wk85j183w6b18nah73djcs06b3gfas15";
type = "gem";
};
version = "1.2.22";
};
}

View File

@ -19,7 +19,7 @@ pythonPackages.buildPythonPackage rec {
propagatedBuildInputs = with pythonPackages; [ propagatedBuildInputs = with pythonPackages; [
pyGtkGlade twisted Mako chardet pyxdg pyopenssl service-identity pyGtkGlade twisted Mako chardet pyxdg pyopenssl service-identity
libtorrentRasterbar.dev libtorrentRasterbar.python libtorrentRasterbar.dev libtorrentRasterbar.python setuptools
]; ];
nativeBuildInputs = [ intltool ]; nativeBuildInputs = [ intltool ];

View File

@ -7,11 +7,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ktorrent"; pname = "ktorrent";
version = "${libktorrent.mainVersion}.0"; version = "${libktorrent.mainVersion}";
src = fetchurl { src = fetchurl {
url = "mirror://kde/stable/ktorrent/${libktorrent.mainVersion}/${pname}-${version}.tar.xz"; url = "mirror://kde/stable/ktorrent/${libktorrent.mainVersion}/${pname}-${version}.tar.xz";
sha256 = "18w6qh09k84qpzaxxb76a4g59k4mx5wk897vqp1wwv80g0pqhmrw"; sha256 = "0kwd0npxfg4mdh7f3xadd2zjlqalpb1jxk61505qpcgcssijf534";
}; };
nativeBuildInputs = [ cmake kdoctools extra-cmake-modules ]; nativeBuildInputs = [ cmake kdoctools extra-cmake-modules ];
@ -22,24 +22,6 @@ stdenv.mkDerivation rec {
libktorrent taglib libgcrypt kplotting libktorrent taglib libgcrypt kplotting
]; ];
patches = [
# Fix build with CMake 3.11
(fetchpatch {
url = "https://cgit.kde.org/ktorrent.git/patch/?id=672c5076de7e3a526d9bdbb484a69e9386bc49f8";
sha256 = "1cn4rnbhadrsxqx50fawpd747azskavbjraygr6s11rh1wbfrxid";
})
# Fix build against Qt 5.11
(fetchpatch {
url = "https://cgit.kde.org/ktorrent.git/patch/?id=7876857d204188016a135a25938d9f8530fba4e8";
sha256 = "1wnmfzkhf6y7fd0z2djwphs6i9lsg7fcrj8fqmbyi0j57dvl9gxl";
})
(fetchpatch {
url = "https://cgit.kde.org/ktorrent.git/patch/?id=36d112e56e56541d439326a267eb906da8b3ee60";
sha256 = "1d41pqniljhwqs6awa644s6ks0zwm9sr0hpfygc63wyxnpcrsw2y";
})
];
enableParallelBuilding = true; enableParallelBuilding = true;
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -130,7 +130,7 @@ stdenv.mkDerivation {
''; '';
dontStrip = true; dontStrip = true;
dontPatchElf = true; dontPatchELF = true;
updateScript = import ./update.nix { inherit writeScript runtimeShell; }; updateScript = import ./update.nix { inherit writeScript runtimeShell; };

View File

@ -1,11 +1,9 @@
{ stdenv, buildGoPackage, fetchFromGitHub }: { stdenv, buildGoModule, fetchFromGitHub, fetchpatch }:
buildGoPackage rec { buildGoModule rec {
pname = "ghq"; pname = "ghq";
version = "0.12.6"; version = "0.12.6";
goPackagePath = "github.com/motemen/ghq";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "motemen"; owner = "motemen";
repo = "ghq"; repo = "ghq";
@ -13,7 +11,7 @@ buildGoPackage rec {
sha256 = "14rm7fvphr7r9x0ys10vhzjwhfhhscgr574n1i1z4lzw551lrnp4"; sha256 = "14rm7fvphr7r9x0ys10vhzjwhfhhscgr574n1i1z4lzw551lrnp4";
}; };
goDeps = ./deps.nix; modSha256 = "1y2v8ir7kc2avgri06nagfyaxqr3xrg4g5pxl9rwzq9dyzm6ci5z";
buildFlagsArray = '' buildFlagsArray = ''
-ldflags= -ldflags=
@ -21,9 +19,17 @@ buildGoPackage rec {
''; '';
postInstall = '' postInstall = ''
install -m 444 -D ${src}/zsh/_ghq $bin/share/zsh/site-functions/_ghq install -m 444 -D ${src}/zsh/_ghq $out/share/zsh/site-functions/_ghq
''; '';
patches = [
(fetchpatch {
# remove once the commit lands in a release.
url = "https://github.com/motemen/ghq/commit/38ac89e60e60182b5870108f9753c9fe8d00e4a6.patch";
sha256 = "1z8yvzmka3sh44my6jnwc39p8zs7mczxgvwc9z0pkqk4vgvaj8gj";
})
];
meta = { meta = {
description = "Remote repository management made easy"; description = "Remote repository management made easy";
homepage = https://github.com/motemen/ghq; homepage = https://github.com/motemen/ghq;

View File

@ -1,138 +0,0 @@
# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
[
{
goPackagePath = "github.com/Songmu/gitconfig";
fetch = {
type = "git";
url = "https://github.com/Songmu/gitconfig";
rev = "v0.0.2";
sha256 = "0w1xd1mzxzwh755l6lgpn6psjp959kvx89l39zhc8lag9jh7rc44";
};
}
{
goPackagePath = "github.com/daviddengcn/go-colortext";
fetch = {
type = "git";
url = "https://github.com/daviddengcn/go-colortext";
rev = "186a3d44e920";
sha256 = "18piv4zzcb8abbc7fllz9p6rd4zhsy1gc6iygym381caggmmgxgk";
};
}
{
goPackagePath = "github.com/golangplus/bytes";
fetch = {
type = "git";
url = "https://github.com/golangplus/bytes";
rev = "45c989fe5450";
sha256 = "1fpwg1idakpbvkmk8j8yyhv9g7mhr9c922kvff6kj4br4k05zyzr";
};
}
{
goPackagePath = "github.com/golangplus/fmt";
fetch = {
type = "git";
url = "https://github.com/golangplus/fmt";
rev = "2a5d6d7d2995";
sha256 = "1242q05qnawhv0klzy1pbq63q8jxkms5hc7421992hzq2m40k5yn";
};
}
{
goPackagePath = "github.com/golangplus/testing";
fetch = {
type = "git";
url = "https://github.com/golangplus/testing";
rev = "af21d9c3145e";
sha256 = "1g83sjvcavqbh92vyirc48mrqd18yfci08zya0hrgk840cr94czc";
};
}
{
goPackagePath = "github.com/motemen/go-colorine";
fetch = {
type = "git";
url = "https://github.com/motemen/go-colorine";
rev = "45d19169413a";
sha256 = "1mdy6q0926s1frj027nlzlvm2qssmkpjis7ic3l2smajkzh07118";
};
}
{
goPackagePath = "github.com/urfave/cli";
fetch = {
type = "git";
url = "https://github.com/urfave/cli";
rev = "v1.20.0";
sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "c2843e01d9a2";
sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "3ec191127204";
sha256 = "0zzhbkw3065dp1jscp7q8dxw3mkwj95ixnrr8j7c47skis0m11i3";
};
}
{
goPackagePath = "golang.org/x/sync";
fetch = {
type = "git";
url = "https://go.googlesource.com/sync";
rev = "112230192c58";
sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "d0b11bdaac8a";
sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
};
}
{
goPackagePath = "golang.org/x/text";
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
rev = "v0.3.0";
sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
};
}
{
goPackagePath = "golang.org/x/xerrors";
fetch = {
type = "git";
url = "https://go.googlesource.com/xerrors";
rev = "3ee3066db522";
sha256 = "12xyaa116bq9zy25fwk7zzi83v8aab9lm91pqg0c3jrfkjdbr255";
};
}
{
goPackagePath = "gopkg.in/check.v1";
fetch = {
type = "git";
url = "https://gopkg.in/check.v1";
rev = "20d25e280405";
sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
};
}
{
goPackagePath = "gopkg.in/yaml.v2";
fetch = {
type = "git";
url = "https://gopkg.in/yaml.v2";
rev = "v2.2.2";
sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
};
}
]

View File

@ -1,8 +1,8 @@
{ stdenv, fetchbzr, python3, rtmpdump, makeWrapper }: { mkDerivation, lib, fetchbzr, python3, rtmpdump }:
let let
pythonEnv = python3.withPackages (ps: with ps; [ pyqt5 sip ]); pythonEnv = python3.withPackages (ps: with ps; [ pyqt5_with_qtmultimedia ]);
in stdenv.mkDerivation { in mkDerivation {
name = "qarte-4.6.0"; name = "qarte-4.6.0";
src = fetchbzr { src = fetchbzr {
url = http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-4; url = http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-4;
@ -10,28 +10,33 @@ in stdenv.mkDerivation {
sha256 = "0v4zpj8w67ydvnmanxbl8pwvn0cfv70c0mlw36a1r4n0rvgxffcn"; sha256 = "0v4zpj8w67ydvnmanxbl8pwvn0cfv70c0mlw36a1r4n0rvgxffcn";
}; };
buildInputs = [ makeWrapper pythonEnv ]; buildInputs = [ pythonEnv ];
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out/bin mkdir -p $out/bin
mv qarte $out/bin/ mv qarte $out/bin/
substituteInPlace $out/bin/qarte \ substituteInPlace $out/bin/qarte \
--replace '/usr/share' "$out/share" --replace '/usr/share' "$out/share"
wrapProgram $out/bin/qarte \
--prefix PATH : "${rtmpdump}/bin"
mkdir -p $out/share/man/man1/ mkdir -p $out/share/man/man1/
mv qarte.1 $out/share/man/man1/ mv qarte.1 $out/share/man/man1/
mkdir -p $out/share/qarte mkdir -p $out/share/qarte
mv * $out/share/qarte/ mv * $out/share/qarte/
runHook postInstall
'';
postFixup = ''
wrapQtApp $out/bin/qarte \
--prefix PATH : ${rtmpdump}/bin
''; '';
meta = { meta = {
homepage = https://launchpad.net/qarte; homepage = https://launchpad.net/qarte;
description = "A recorder for Arte TV Guide and Arte Concert"; description = "A recorder for Arte TV Guide and Arte Concert";
license = stdenv.lib.licenses.gpl3; license = lib.licenses.gpl3;
maintainers = with stdenv.lib.maintainers; [ vbgl ]; maintainers = with lib.maintainers; [ vbgl ];
platforms = stdenv.lib.platforms.linux; platforms = lib.platforms.linux;
}; };
} }

View File

@ -0,0 +1,31 @@
{ stdenv, lib, fetchFromGitHub, autoreconfHook, go-md2man, pkgconfig
, libcap, libseccomp, python3, systemd, yajl }:
stdenv.mkDerivation rec {
pname = "crun";
version = "0.8";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = version;
sha256 = "1anvlgw373031w0pp0b28l10yrnyhbj192n60bbbjahw487dk2fi";
fetchSubmodules = true;
};
nativeBuildInputs = [ autoreconfHook go-md2man pkgconfig python3 ];
buildInputs = [ libcap libseccomp systemd yajl ];
enableParallelBuilding = true;
# the tests require additional permissions
doCheck = false;
meta = with lib; {
description = "A fast and lightweight fully featured OCI runtime and C library for running containers";
license = licenses.gpl3;
platforms = platforms.linux;
inherit (src.meta) homepage;
};
}

View File

@ -1,13 +1,13 @@
{ lib, stdenv, echo_build_heading, noisily, makeDeps }: { lib, stdenv, echo_build_heading, noisily, makeDeps }:
{ crateName, { crateName,
dependencies, dependencies,
crateFeatures, libName, release, libPath, crateFeatures, crateRenames, libName, release, libPath,
crateType, metadata, crateBin, hasCrateBin, crateType, metadata, crateBin, hasCrateBin,
extraRustcOpts, verbose, colors }: extraRustcOpts, verbose, colors }:
let let
deps = makeDeps dependencies; deps = makeDeps dependencies crateRenames;
rustcOpts = rustcOpts =
lib.lists.foldl' (opts: opt: opts + " " + opt) lib.lists.foldl' (opts: opt: opts + " " + opt)
(if release then "-C opt-level=3" else "-C debuginfo=2") (if release then "-C opt-level=3" else "-C debuginfo=2")

View File

@ -9,6 +9,7 @@
, crateHomepage , crateHomepage
, crateFeatures , crateFeatures
, crateName , crateName
, crateRenames
, crateVersion , crateVersion
, extraLinkFlags , extraLinkFlags
, extraRustcOpts , extraRustcOpts
@ -24,7 +25,7 @@ let version_ = lib.splitString "-" crateVersion;
rustcOpts = lib.lists.foldl' (opts: opt: opts + " " + opt) rustcOpts = lib.lists.foldl' (opts: opt: opts + " " + opt)
(if release then "-C opt-level=3" else "-C debuginfo=2") (if release then "-C opt-level=3" else "-C debuginfo=2")
(["-C codegen-units=$NIX_BUILD_CORES"] ++ extraRustcOpts); (["-C codegen-units=$NIX_BUILD_CORES"] ++ extraRustcOpts);
buildDeps = makeDeps buildDependencies; buildDeps = makeDeps buildDependencies crateRenames;
authors = lib.concatStringsSep ":" crateAuthors; authors = lib.concatStringsSep ":" crateAuthors;
optLevel = if release then 3 else 0; optLevel = if release then 3 else 0;
completeDepsDir = lib.concatStringsSep " " completeDeps; completeDepsDir = lib.concatStringsSep " " completeDeps;

View File

@ -13,13 +13,18 @@ let
then "macos" then "macos"
else stdenv.hostPlatform.parsed.kernel.name; else stdenv.hostPlatform.parsed.kernel.name;
makeDeps = dependencies: makeDeps = dependencies: crateRenames:
(lib.concatMapStringsSep " " (dep: (lib.concatMapStringsSep " " (dep:
let extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName; in let
(if lib.lists.any (x: x == "lib") dep.crateType then extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName;
" --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib" name = if builtins.hasAttr dep.crateName crateRenames then
lib.strings.replaceStrings ["-"] ["_"] crateRenames.${dep.crateName}
else
extern;
in (if lib.lists.any (x: x == "lib") dep.crateType then
" --extern ${name}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib"
else else
" --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}") " --extern ${name}=${dep.out}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}")
) dependencies); ) dependencies);
echo_build_heading = colors: '' echo_build_heading = colors: ''
@ -60,7 +65,7 @@ let
in in
crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides, crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides,
dependencies, buildDependencies, dependencies, buildDependencies, crateRenames,
extraRustcOpts, extraRustcOpts,
preUnpack, postUnpack, prePatch, patches, postPatch, preUnpack, postUnpack, prePatch, patches, postPatch,
preConfigure, postConfigure, preBuild, postBuild, preInstall, postInstall }: preConfigure, postConfigure, preBuild, postBuild, preInstall, postInstall }:
@ -70,7 +75,7 @@ let crate = crate_ // (lib.attrByPath [ crate_.crateName ] (attr: {}) crateOverr
buildDependencies_ = buildDependencies; buildDependencies_ = buildDependencies;
processedAttrs = [ processedAttrs = [
"src" "buildInputs" "crateBin" "crateLib" "libName" "libPath" "src" "buildInputs" "crateBin" "crateLib" "libName" "libPath"
"buildDependencies" "dependencies" "features" "buildDependencies" "dependencies" "features" "crateRenames"
"crateName" "version" "build" "authors" "colors" "edition" "crateName" "version" "build" "authors" "colors" "edition"
]; ];
extraDerivationAttrs = lib.filterAttrs (n: v: ! lib.elem n processedAttrs) crate; extraDerivationAttrs = lib.filterAttrs (n: v: ! lib.elem n processedAttrs) crate;
@ -143,13 +148,13 @@ stdenv.mkDerivation (rec {
configurePhase = configureCrate { configurePhase = configureCrate {
inherit crateName buildDependencies completeDeps completeBuildDeps crateDescription inherit crateName buildDependencies completeDeps completeBuildDeps crateDescription
crateFeatures libName build workspace_member release libPath crateVersion crateFeatures crateRenames libName build workspace_member release libPath crateVersion
extraLinkFlags extraRustcOpts extraLinkFlags extraRustcOpts
crateAuthors crateHomepage verbose colors target_os; crateAuthors crateHomepage verbose colors target_os;
}; };
buildPhase = buildCrate { buildPhase = buildCrate {
inherit crateName dependencies inherit crateName dependencies
crateFeatures libName release libPath crateType crateFeatures crateRenames libName release libPath crateType
metadata crateBin hasCrateBin verbose colors metadata crateBin hasCrateBin verbose colors
extraRustcOpts; extraRustcOpts;
}; };
@ -177,4 +182,5 @@ stdenv.mkDerivation (rec {
postInstall = crate_.postInstall or ""; postInstall = crate_.postInstall or "";
dependencies = crate_.dependencies or []; dependencies = crate_.dependencies or [];
buildDependencies = crate_.buildDependencies or []; buildDependencies = crate_.buildDependencies or [];
crateRenames = crate_.crateRenames or {};
} }

View File

@ -22,6 +22,13 @@ let
} }
''; '';
mkBinExtern = name: extern: mkFile name ''
extern crate ${extern};
fn main() {
assert_eq!(${extern}::test(), 23);
}
'';
mkLib = name: mkFile name "pub fn test() -> i32 { return 23; }"; mkLib = name: mkFile name "pub fn test() -> i32 { return 23; }";
mkTest = crateArgs: let mkTest = crateArgs: let
@ -34,12 +41,7 @@ let
libTestBinary = if !isLib then null else mkCrate { libTestBinary = if !isLib then null else mkCrate {
crateName = "run-test-${crateName}"; crateName = "run-test-${crateName}";
dependencies = [ crate ]; dependencies = [ crate ];
src = mkFile "src/main.rs" '' src = mkBinExtern "src/main.rs" libName;
extern crate ${libName};
fn main() {
assert_eq!(${libName}::test(), 23);
}
'';
}; };
in runCommand "run-buildRustCrate-${crateName}-test" { in runCommand "run-buildRustCrate-${crateName}-test" {
@ -71,6 +73,18 @@ let
}; };
crateBinNoPath3 = { crateBin = [{ name = "my-binary5"; }]; src = mkBin "src/bin/main.rs"; }; crateBinNoPath3 = { crateBin = [{ name = "my-binary5"; }]; src = mkBin "src/bin/main.rs"; };
crateBinNoPath4 = { crateBin = [{ name = "my-binary6"; }]; src = mkBin "src/main.rs";}; crateBinNoPath4 = { crateBin = [{ name = "my-binary6"; }]; src = mkBin "src/main.rs";};
crateBinRename1 = {
crateBin = [{ name = "my-binary-rename1"; }];
src = mkBinExtern "src/main.rs" "foo_renamed";
dependencies = [ (mkCrate { crateName = "foo"; src = mkLib "src/lib.rs"; }) ];
crateRenames = { "foo" = "foo_renamed"; };
};
crateBinRename2 = {
crateBin = [{ name = "my-binary-rename2"; }];
src = mkBinExtern "src/main.rs" "foo_renamed";
dependencies = [ (mkCrate { crateName = "foo"; libName = "foolib"; src = mkLib "src/lib.rs"; }) ];
crateRenames = { "foo" = "foo_renamed"; };
};
}; };
brotliCrates = (callPackage ./brotli-crates.nix {}); brotliCrates = (callPackage ./brotli-crates.nix {});
in lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases // { in lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases // {

View File

@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }: { stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
pname = "matcha"; pname = "matcha";
version = "2019-06-22"; version = "2019-07";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vinceliuice"; owner = "vinceliuice";
repo = "matcha"; repo = pname;
rev = "f42df7a3219d7fbacb7be1b2e0e416d74339865e"; rev = "v${version}";
sha256 = "1x954rmxv14xndn4ybhbr4pmzccnwqp462bpvzd2hak5wsqs4wxc"; sha256 = "1jv7qq4lsjpz40wchrqlzc8w4ggrmwjavy4ipzz11jal99skpv7i";
}; };
buildInputs = [ gdk-pixbuf librsvg ]; buildInputs = [ gdk-pixbuf librsvg ];

View File

@ -0,0 +1,44 @@
{ lib, mkDerivation, fetchFromGitHub
, kcoreaddons, kwindowsystem, plasma-framework, systemsettings }:
mkDerivation rec {
pname = "kwin-tiling";
version = "2.2";
src = fetchFromGitHub {
owner = "kwin-scripts";
repo = "kwin-tiling";
rev = "v${version}";
sha256 = "1sx64xv7g9yh3j26zxxrbndv79xam9jq0vs00fczgfv2n0m7j7bl";
};
# This is technically not needed, but we might as well clean up
postPatch = ''
rm release.sh
'';
buildInputs = [
kcoreaddons kwindowsystem plasma-framework systemsettings
];
dontBuild = true;
# 1. --global still installs to $HOME/.local/share so we use --packageroot
# 2. plasmapkg2 doesn't copy metadata.desktop into place, so we do that manually
installPhase = ''
runHook preInstall
plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts
install -Dm644 ${src}/metadata.desktop $out/share/kservices5/kwin-script-tiling.desktop
runHook postInstalll
'';
meta = with lib; {
description = "Tiling script for kwin";
license = licenses.gpl2;
maintainers = with maintainers; [ peterhoeg ];
inherit (src.meta) homepage;
inherit (kwindowsystem.meta) platforms;
};
}

View File

@ -8,6 +8,8 @@
, libiconv ? null, ncurses , libiconv ? null, ncurses
, enableDwarf ? !stdenv.isDarwin, elfutils # for DWARF support
, useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform) , useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform)
, # LLVM is conceptually a run-time-only depedendency, but for , # LLVM is conceptually a run-time-only depedendency, but for
# non-x86, we need LLVM to bootstrap later stages, so it becomes a # non-x86, we need LLVM to bootstrap later stages, so it becomes a
@ -69,7 +71,8 @@ let
# Splicer will pull out correct variations # Splicer will pull out correct variations
libDeps = platform: [ ncurses ] libDeps = platform: [ ncurses ]
++ stdenv.lib.optional (!enableIntegerSimple) gmp ++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (platform.libc != "glibc") libiconv; ++ stdenv.lib.optional (platform.libc != "glibc") libiconv
++ stdenv.lib.optional enableDwarf elfutils;
toolsForTarget = [ toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc pkgsBuildTarget.targetPackages.stdenv.cc
@ -203,6 +206,8 @@ stdenv.mkDerivation (rec {
] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [ ] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [
# fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ # fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
"--disable-large-address-space" "--disable-large-address-space"
] ++ stdenv.lib.optional enableDwarf [
"--enable-dwarf-unwind"
]; ];
# Dont add -liconv to LDFLAGS automatically so that GHC will add it itself. # Dont add -liconv to LDFLAGS automatically so that GHC will add it itself.

View File

@ -7,6 +7,8 @@
, libiconv ? null, ncurses , libiconv ? null, ncurses
, enableDwarf ? !stdenv.isDarwin, elfutils # for DWARF support
, useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform) , useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform)
, # LLVM is conceptually a run-time-only depedendency, but for , # LLVM is conceptually a run-time-only depedendency, but for
# non-x86, we need LLVM to bootstrap later stages, so it becomes a # non-x86, we need LLVM to bootstrap later stages, so it becomes a
@ -71,7 +73,8 @@ let
# Splicer will pull out correct variations # Splicer will pull out correct variations
libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ] libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
++ stdenv.lib.optional (!enableIntegerSimple) gmp ++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
++ stdenv.lib.optional enableDwarf elfutils;
toolsForTarget = [ toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc pkgsBuildTarget.targetPackages.stdenv.cc
@ -180,6 +183,8 @@ stdenv.mkDerivation (rec {
] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [ ] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [
# fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ # fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
"--disable-large-address-space" "--disable-large-address-space"
] ++ stdenv.lib.optional enableDwarf [
"--enable-dwarf-unwind"
]; ];
# Make sure we never relax`$PATH` and hooks support for compatability. # Make sure we never relax`$PATH` and hooks support for compatability.

View File

@ -7,6 +7,8 @@
, libiconv ? null, ncurses , libiconv ? null, ncurses
, enableDwarf ? !stdenv.isDarwin, elfutils # for DWARF support
, # GHC can be built with system libffi or a bundled one. , # GHC can be built with system libffi or a bundled one.
libffi ? null libffi ? null
@ -76,7 +78,8 @@ let
libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ] libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
++ [libffi] ++ [libffi]
++ stdenv.lib.optional (!enableIntegerSimple) gmp ++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
++ stdenv.lib.optional enableDwarf elfutils;
toolsForTarget = [ toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc pkgsBuildTarget.targetPackages.stdenv.cc
@ -179,6 +182,8 @@ stdenv.mkDerivation (rec {
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [ ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
"--disable-large-address-space" "--disable-large-address-space"
] ++ stdenv.lib.optional enableDwarf [
"--enable-dwarf-unwind"
]; ];
# Make sure we never relax`$PATH` and hooks support for compatability. # Make sure we never relax`$PATH` and hooks support for compatability.

View File

@ -7,6 +7,8 @@
, libiconv ? null, ncurses , libiconv ? null, ncurses
, enableDwarf ? !stdenv.isDarwin, elfutils # for DWARF support
, # GHC can be built with system libffi or a bundled one. , # GHC can be built with system libffi or a bundled one.
libffi ? null libffi ? null
@ -76,7 +78,8 @@ let
libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ] libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
++ [libffi] ++ [libffi]
++ stdenv.lib.optional (!enableIntegerSimple) gmp ++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
++ stdenv.lib.optional enableDwarf elfutils;
toolsForTarget = [ toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc pkgsBuildTarget.targetPackages.stdenv.cc
@ -179,6 +182,8 @@ stdenv.mkDerivation (rec {
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [ ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
"--disable-large-address-space" "--disable-large-address-space"
] ++ stdenv.lib.optional enableDwarf [
"--enable-dwarf-unwind"
]; ];
# Make sure we never relax`$PATH` and hooks support for compatability. # Make sure we never relax`$PATH` and hooks support for compatability.

View File

@ -7,6 +7,8 @@
, libiconv ? null, ncurses , libiconv ? null, ncurses
, enableDwarf ? !stdenv.isDarwin, elfutils # for DWARF support
, # GHC can be built with system libffi or a bundled one. , # GHC can be built with system libffi or a bundled one.
libffi ? null libffi ? null
@ -76,7 +78,8 @@ let
libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ] libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
++ [libffi] ++ [libffi]
++ stdenv.lib.optional (!enableIntegerSimple) gmp ++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
++ stdenv.lib.optional enableDwarf elfutils;
toolsForTarget = [ toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc pkgsBuildTarget.targetPackages.stdenv.cc
@ -164,6 +167,8 @@ stdenv.mkDerivation (rec {
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [ ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
"--disable-large-address-space" "--disable-large-address-space"
] ++ stdenv.lib.optional enableDwarf [
"--enable-dwarf-unwind"
]; ];
# Make sure we never relax`$PATH` and hooks support for compatability. # Make sure we never relax`$PATH` and hooks support for compatability.

View File

@ -7,6 +7,8 @@
, libiconv ? null, ncurses , libiconv ? null, ncurses
, enableDwarf ? !stdenv.isDarwin, elfutils # for DWARF support
, useLLVM ? !stdenv.targetPlatform.isx86 , useLLVM ? !stdenv.targetPlatform.isx86
, # LLVM is conceptually a run-time-only depedendency, but for , # LLVM is conceptually a run-time-only depedendency, but for
# non-x86, we need LLVM to bootstrap later stages, so it becomes a # non-x86, we need LLVM to bootstrap later stages, so it becomes a
@ -73,7 +75,8 @@ let
# Splicer will pull out correct variations # Splicer will pull out correct variations
libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ] libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
++ stdenv.lib.optional (!enableIntegerSimple) gmp ++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
++ stdenv.lib.optional enableDwarf elfutils;
toolsForTarget = [ toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc pkgsBuildTarget.targetPackages.stdenv.cc
@ -176,6 +179,8 @@ stdenv.mkDerivation (rec {
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [ ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
"--disable-large-address-space" "--disable-large-address-space"
] ++ stdenv.lib.optional enableDwarf [
"--enable-dwarf-unwind"
]; ];
# Make sure we never relax`$PATH` and hooks support for compatability. # Make sure we never relax`$PATH` and hooks support for compatability.

View File

@ -1,232 +0,0 @@
{ stdenv, fetchurl, tzdata, iana-etc, runCommand
, perl, which, pkgconfig, patch, procps, pcre, cacert, Security, Foundation
, mailcap, runtimeShell
, buildPackages, pkgsTargetTarget
}:
let
inherit (stdenv.lib) optionals optionalString;
goBootstrap = runCommand "go-bootstrap" {} ''
mkdir $out
cp -rf ${buildPackages.go_bootstrap}/* $out/
chmod -R u+w $out
find $out -name "*.c" -delete
cp -rf $out/bin/* $out/share/go/bin/
'';
goarch = platform: {
i686 = "386";
x86_64 = "amd64";
aarch64 = "arm64";
arm = "arm";
armv5tel = "arm";
armv6l = "arm";
armv7l = "arm";
}.${platform.parsed.cpu.name} or (throw "Unsupported system");
in
stdenv.mkDerivation rec {
pname = "go";
version = "1.11.13";
src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz";
sha256 = "0xj0pbviikdf8g0sfz5hwxf7hwz8b8g5akqnrvyclhgnsdghjcjh";
};
# perl is used for testing go vet
nativeBuildInputs = [ perl which pkgconfig patch procps ];
buildInputs = [ cacert pcre ]
++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
propagatedBuildInputs = optionals stdenv.isDarwin [ Security Foundation ];
hardeningDisable = [ "all" ];
prePatch = ''
patchShebangs ./ # replace /bin/bash
# This source produces shell script at run time,
# and thus it is not corrected by patchShebangs.
substituteInPlace misc/cgo/testcarchive/carchive_test.go \
--replace '#!/usr/bin/env bash' '#!${runtimeShell}'
# Patch the mimetype database location which is missing on NixOS.
substituteInPlace src/mime/type_unix.go \
--replace '/etc/mime.types' '${mailcap}/etc/mime.types'
# Disabling the 'os/http/net' tests (they want files not available in
# chroot builds)
rm src/net/{listen,parse}_test.go
rm src/syscall/exec_linux_test.go
# !!! substituteInPlace does not seems to be effective.
# The os test wants to read files in an existing path. Just don't let it be /usr/bin.
sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
# Disable the unix socket test
sed -i '/TestShutdownUnix/areturn' src/net/net_test.go
# Disable the hostname test
sed -i '/TestHostname/areturn' src/os/os_test.go
# ParseInLocation fails the test
sed -i '/TestParseInSydney/areturn' src/time/format_test.go
# Remove the api check as it never worked
sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
# Remove the coverage test as we have removed this utility
sed -i '/TestCoverageWithCgo/areturn' src/cmd/go/go_test.go
# Remove the timezone naming test
sed -i '/TestLoadFixed/areturn' src/time/time_test.go
# Remove disable setgid test
sed -i '/TestRespectSetgidDir/areturn' src/cmd/go/internal/work/build_test.go
# Remove cert tests that conflict with NixOS's cert resolution
sed -i '/TestEnvVars/areturn' src/crypto/x509/root_unix_test.go
# TestWritevError hangs sometimes
sed -i '/TestWritevError/areturn' src/net/writev_test.go
# TestVariousDeadlines fails sometimes
sed -i '/TestVariousDeadlines/areturn' src/net/timeout_test.go
sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
# Disable cgo lookup tests not works, they depend on resolver
rm src/net/cgo_unix_test.go
'' + optionalString stdenv.isLinux ''
sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
'' + optionalString stdenv.isAarch32 ''
echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
'' + optionalString stdenv.isDarwin ''
substituteInPlace src/race.bash --replace \
"sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
sed -i '/TestChdirAndGetwd/areturn' src/os/os_test.go
sed -i '/TestCredentialNoSetGroups/areturn' src/os/exec/exec_posix_test.go
sed -i '/TestRead0/areturn' src/os/os_test.go
sed -i '/TestSystemRoots/areturn' src/crypto/x509/root_darwin_test.go
sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/areturn' src/cmd/go/go_test.go
sed -i '/TestBuildDashIInstallsDependencies/areturn' src/cmd/go/go_test.go
sed -i '/TestDisasmExtld/areturn' src/cmd/objdump/objdump_test.go
sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
'';
patches = [
./remove-tools-1.11.patch
./ssl-cert-file-1.12.1.patch
./remove-test-pie.patch
./creds-test.patch
./go-1.9-skip-flaky-19608.patch
./go-1.9-skip-flaky-20072.patch
./remove-fhs-test-references.patch
./skip-external-network-tests.patch
./skip-nohup-tests.patch
# breaks under load: https://github.com/golang/go/issues/25628
./skip-test-extra-files-on-386.patch
];
GOOS = stdenv.targetPlatform.parsed.kernel.name;
GOARCH = goarch stdenv.targetPlatform;
# GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
# Go will nevertheless build a for host system that we will copy over in
# the install phase.
GOHOSTOS = stdenv.buildPlatform.parsed.kernel.name;
GOHOSTARCH = goarch stdenv.buildPlatform;
# {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
# to be different from CC/CXX
CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
"${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc"
else
null;
CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
"${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++"
else
null;
GOARM = toString (stdenv.lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
GO386 = 387; # from Arch: don't assume sse2 on i686
CGO_ENABLED = 1;
# Hopefully avoids test timeouts on Hydra
GO_TEST_TIMEOUT_SCALE = 3;
# Indicate that we are running on build infrastructure
# Some tests assume things like home directories and users exists
GO_BUILDER_NAME = "nix";
GOROOT_BOOTSTRAP="${goBootstrap}/share/go";
postConfigure = ''
export GOCACHE=$TMPDIR/go-cache
# this is compiled into the binary
export GOROOT_FINAL=$out/share/go
export PATH=$(pwd)/bin:$PATH
# Independent from host/target, CC should produce code for the building system.
export CC=${buildPackages.stdenv.cc}/bin/cc
ulimit -a
'';
postBuild = ''
(cd src && ./make.bash)
'';
doCheck = stdenv.hostPlatform == stdenv.targetPlatform && !stdenv.isDarwin;
checkPhase = ''
runHook preCheck
(cd src && ./run.bash --no-rebuild)
runHook postCheck
'';
preInstall = ''
rm -r pkg/{bootstrap,obj}
# Contains the wrong perl shebang when cross compiling,
# since it is not used for anything we can deleted as well.
rm src/regexp/syntax/make_perl_groups.pl
'' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
mv bin/*_*/* bin
rmdir bin/*_*
${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
''}
'' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
rm -rf bin/*_*
${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
''}
'' else "");
installPhase = ''
runHook preInstall
mkdir -p $GOROOT_FINAL
cp -a bin pkg src lib misc api doc $GOROOT_FINAL
ln -s $GOROOT_FINAL/bin $out/bin
runHook postInstall
'';
setupHook = ./setup-hook.sh;
disallowedReferences = [ goBootstrap ];
meta = with stdenv.lib; {
branch = "1.11";
homepage = http://golang.org/;
description = "The Go Programming language";
license = licenses.bsd3;
maintainers = with maintainers; [ cstrahan orivej velovix mic92 rvolosatovs ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@ -1,5 +1,5 @@
{ stdenv, lib, fetchurl, bash, cpio, pkgconfig, file, which, unzip, zip, cups, freetype { stdenv, lib, fetchurl, pkgconfig, lndir, bash, cpio, file, which, unzip, zip
, alsaLib, cacert, perl, liberation_ttf, fontconfig, zlib , cups, freetype, alsaLib, cacert, perl, liberation_ttf, fontconfig, zlib
, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor, libXrandr , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor, libXrandr
, libjpeg, giflib , libjpeg, giflib
, openjdk8-bootstrap , openjdk8-bootstrap
@ -85,7 +85,7 @@ let
outputs = [ "out" "jre" ]; outputs = [ "out" "jre" ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig lndir ];
buildInputs = [ buildInputs = [
cpio file which unzip zip perl openjdk8-bootstrap zlib cups freetype alsaLib cpio file which unzip zip perl openjdk8-bootstrap zlib cups freetype alsaLib
libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst
@ -190,7 +190,8 @@ let
# Move the JRE to a separate output # Move the JRE to a separate output
mkdir -p $jre/lib/openjdk mkdir -p $jre/lib/openjdk
mv $out/lib/openjdk/jre $jre/lib/openjdk/jre mv $out/lib/openjdk/jre $jre/lib/openjdk/jre
ln -s $jre/lib/openjdk/jre $out/lib/openjdk/jre mkdir $out/lib/openjdk/jre
lndir $jre/lib/openjdk/jre $out/lib/openjdk/jre
# Setup fallback fonts # Setup fallback fonts
${lib.optionalString (!headless) '' ${lib.optionalString (!headless) ''

View File

@ -43,7 +43,7 @@ core-packages:
- ghcjs-base-0 - ghcjs-base-0
default-package-overrides: default-package-overrides:
# LTS Haskell 14.4 # LTS Haskell 14.5
- abstract-deque ==0.3 - abstract-deque ==0.3
- abstract-deque-tests ==0.3 - abstract-deque-tests ==0.3
- abstract-par ==0.3.3 - abstract-par ==0.3.3
@ -64,7 +64,7 @@ default-package-overrides:
- aeson-extra ==0.4.1.2 - aeson-extra ==0.4.1.2
- aeson-generic-compat ==0.0.1.3 - aeson-generic-compat ==0.0.1.3
- aeson-iproute ==0.2 - aeson-iproute ==0.2
- aeson-picker ==0.1.0.4 - aeson-picker ==0.1.0.5
- aeson-pretty ==0.8.7 - aeson-pretty ==0.8.7
- aeson-qq ==0.8.2 - aeson-qq ==0.8.2
- aeson-utils ==0.3.0.2 - aeson-utils ==0.3.0.2
@ -121,7 +121,7 @@ default-package-overrides:
- atom-basic ==0.2.5 - atom-basic ==0.2.5
- atomic-primops ==0.8.3 - atomic-primops ==0.8.3
- atomic-write ==0.2.0.6 - atomic-write ==0.2.0.6
- attoparsec ==0.13.2.2 - attoparsec ==0.13.2.3
- attoparsec-base64 ==0.0.0 - attoparsec-base64 ==0.0.0
- attoparsec-binary ==0.2 - attoparsec-binary ==0.2
- attoparsec-expr ==0.1.1.2 - attoparsec-expr ==0.1.1.2
@ -275,8 +275,8 @@ default-package-overrides:
- cased ==0.1.0.0 - cased ==0.1.0.0
- case-insensitive ==1.2.0.11 - case-insensitive ==1.2.0.11
- cases ==0.1.3.2 - cases ==0.1.3.2
- casing ==0.1.4.0 - casing ==0.1.4.1
- cassava ==0.5.1.0 - cassava ==0.5.2.0
- cassava-conduit ==0.5.1 - cassava-conduit ==0.5.1
- cassava-megaparsec ==2.0.0 - cassava-megaparsec ==2.0.0
- cassava-records ==0.1.0.4 - cassava-records ==0.1.0.4
@ -304,7 +304,7 @@ default-package-overrides:
- cheapskate-highlight ==0.1.0.0 - cheapskate-highlight ==0.1.0.0
- cheapskate-lucid ==0.1.0.0 - cheapskate-lucid ==0.1.0.0
- check-email ==1.0.2 - check-email ==1.0.2
- checkers ==0.5.0 - checkers ==0.5.2
- checksum ==0.0 - checksum ==0.0
- chimera ==0.2.0.0 - chimera ==0.2.0.0
- choice ==0.2.2 - choice ==0.2.2
@ -383,7 +383,7 @@ default-package-overrides:
- configurator ==0.3.0.0 - configurator ==0.3.0.0
- configurator-export ==0.1.0.1 - configurator-export ==0.1.0.1
- configurator-pg ==0.1.0.3 - configurator-pg ==0.1.0.3
- connection ==0.3.0 - connection ==0.3.1
- connection-pool ==0.2.2 - connection-pool ==0.2.2
- console-style ==0.0.2.1 - console-style ==0.0.2.1
- constraint ==0.1.3.0 - constraint ==0.1.3.0
@ -412,7 +412,7 @@ default-package-overrides:
- crackNum ==2.3 - crackNum ==2.3
- crc32c ==0.0.0 - crc32c ==0.0.0
- credential-store ==0.1.2 - credential-store ==0.1.2
- criterion ==1.5.5.0 - criterion ==1.5.6.0
- criterion-measurement ==0.1.2.0 - criterion-measurement ==0.1.2.0
- cron ==0.6.1 - cron ==0.6.1
- crypto-api ==0.13.3 - crypto-api ==0.13.3
@ -538,7 +538,7 @@ default-package-overrides:
- disk-free-space ==0.1.0.1 - disk-free-space ==0.1.0.1
- distributed-closure ==0.4.1.1 - distributed-closure ==0.4.1.1
- distribution-opensuse ==1.1.1 - distribution-opensuse ==1.1.1
- distributive ==0.6 - distributive ==0.6.1
- dl-fedora ==0.5 - dl-fedora ==0.5
- dlist ==0.8.0.7 - dlist ==0.8.0.7
- dlist-instances ==0.1.1.1 - dlist-instances ==0.1.1.1
@ -596,10 +596,10 @@ default-package-overrides:
- elm-street ==0.0.1 - elm-street ==0.0.1
- emacs-module ==0.1.1 - emacs-module ==0.1.1
- email-validate ==2.3.2.11 - email-validate ==2.3.2.11
- emd ==0.1.4.0 - emd ==0.1.5.1
- enclosed-exceptions ==1.0.3 - enclosed-exceptions ==1.0.3
- ENIG ==0.0.1.0 - ENIG ==0.0.1.0
- entropy ==0.4.1.4 - entropy ==0.4.1.5
- enummapset ==0.6.0.2 - enummapset ==0.6.0.2
- enumset ==0.0.5 - enumset ==0.0.5
- enum-subset-generate ==0.1.0.0 - enum-subset-generate ==0.1.0.0
@ -648,7 +648,7 @@ default-package-overrides:
- farmhash ==0.1.0.5 - farmhash ==0.1.0.5
- fast-builder ==0.1.1.0 - fast-builder ==0.1.1.0
- fast-digits ==0.2.1.0 - fast-digits ==0.2.1.0
- fast-logger ==2.4.16 - fast-logger ==2.4.17
- fast-math ==1.0.2 - fast-math ==1.0.2
- fb ==2.0.0 - fb ==2.0.0
- fclabels ==2.0.3.3 - fclabels ==2.0.3.3
@ -708,7 +708,7 @@ default-package-overrides:
- forma ==1.1.2 - forma ==1.1.2
- format-numbers ==0.1.0.0 - format-numbers ==0.1.0.0
- formatting ==6.3.7 - formatting ==6.3.7
- foundation ==0.0.24 - foundation ==0.0.25
- free ==5.1.2 - free ==5.1.2
- freenect ==1.2.1 - freenect ==1.2.1
- freer-simple ==1.2.1.0 - freer-simple ==1.2.1.0
@ -724,12 +724,12 @@ default-package-overrides:
- function-builder ==0.3.0.1 - function-builder ==0.3.0.1
- functor-classes-compat ==1 - functor-classes-compat ==1
- functor-combinators ==0.1.1.1 - functor-combinators ==0.1.1.1
- fused-effects ==0.5.0.0 - fused-effects ==0.5.0.1
- fuzzcheck ==0.1.1 - fuzzcheck ==0.1.1
- fuzzy-dates ==0.1.1.1 - fuzzy-dates ==0.1.1.1
- fuzzyset ==0.1.1 - fuzzyset ==0.1.1
- galois-field ==0.3.0 - galois-field ==0.3.0
- gauge ==0.2.4 - gauge ==0.2.5
- gc ==0.0.3 - gc ==0.0.3
- gd ==3000.7.3 - gd ==3000.7.3
- gdp ==0.0.0.2 - gdp ==0.0.0.2
@ -764,7 +764,7 @@ default-package-overrides:
- genvalidity-uuid ==0.1.0.2 - genvalidity-uuid ==0.1.0.2
- genvalidity-vector ==0.3.0.0 - genvalidity-vector ==0.3.0.0
- geojson ==4.0.1 - geojson ==4.0.1
- getopt-generics ==0.13.0.3 - getopt-generics ==0.13.0.4
- ghc-compact ==0.1.0.0 - ghc-compact ==0.1.0.0
- ghc-core ==0.5.6 - ghc-core ==0.5.6
- ghc-exactprint ==0.6.1 - ghc-exactprint ==0.6.1
@ -796,7 +796,7 @@ default-package-overrides:
- ginger ==0.9.1.0 - ginger ==0.9.1.0
- gingersnap ==0.3.1.0 - gingersnap ==0.3.1.0
- gi-pango ==1.0.22 - gi-pango ==1.0.22
- githash ==0.1.3.1 - githash ==0.1.3.2
- github-release ==1.2.4 - github-release ==1.2.4
- github-types ==0.2.1 - github-types ==0.2.1
- github-webhooks ==0.10.1 - github-webhooks ==0.10.1
@ -845,14 +845,14 @@ default-package-overrides:
- hackage-db ==2.0.1 - hackage-db ==2.0.1
- hackage-security ==0.5.3.0 - hackage-security ==0.5.3.0
- haddock-library ==1.7.0 - haddock-library ==1.7.0
- hadolint ==1.17.1 - hadolint ==1.17.2
- half ==0.3 - half ==0.3
- hamilton ==0.1.0.3 - hamilton ==0.1.0.3
- hamtsolo ==1.0.3 - hamtsolo ==1.0.3
- HandsomeSoup ==0.4.2 - HandsomeSoup ==0.4.2
- hapistrano ==0.3.9.3 - hapistrano ==0.3.9.3
- happy ==1.19.11 - happy ==1.19.12
- hasbolt ==0.1.3.4 - hasbolt ==0.1.3.5
- hashable ==1.2.7.0 - hashable ==1.2.7.0
- hashable-time ==0.2.0.2 - hashable-time ==0.2.0.2
- hashids ==1.0.2.4 - hashids ==1.0.2.4
@ -863,14 +863,14 @@ default-package-overrides:
- haskell-gi-base ==0.23.0 - haskell-gi-base ==0.23.0
- haskell-gi-overloading ==1.0 - haskell-gi-overloading ==1.0
- haskell-lexer ==1.0.2 - haskell-lexer ==1.0.2
- haskell-lsp ==0.15.0.0 - haskell-lsp ==0.15.0.1
- haskell-lsp-types ==0.15.0.0 - haskell-lsp-types ==0.15.0.1
- haskell-names ==0.9.6 - haskell-names ==0.9.6
- haskell-spacegoo ==0.2.0.1 - haskell-spacegoo ==0.2.0.1
- haskell-src ==1.0.3.0 - haskell-src ==1.0.3.0
- haskell-src-exts ==1.21.0 - haskell-src-exts ==1.21.1
- haskell-src-exts-util ==0.2.5 - haskell-src-exts-util ==0.2.5
- haskell-src-meta ==0.8.2 - haskell-src-meta ==0.8.3
- haskey-btree ==0.3.0.1 - haskey-btree ==0.3.0.1
- haskintex ==0.8.0.0 - haskintex ==0.8.0.0
- haskoin-core ==0.9.0 - haskoin-core ==0.9.0
@ -893,7 +893,7 @@ default-package-overrides:
- hedgehog ==1.0 - hedgehog ==1.0
- hedgehog-corpus ==0.1.0 - hedgehog-corpus ==0.1.0
- hedgehog-fn ==1.0 - hedgehog-fn ==1.0
- hedis ==0.12.7 - hedis ==0.12.8
- hedn ==0.2.0.1 - hedn ==0.2.0.1
- here ==1.2.13 - here ==1.2.13
- heredoc ==0.2.0.0 - heredoc ==0.2.0.0
@ -1094,7 +1094,7 @@ default-package-overrides:
- inline-r ==0.10.2 - inline-r ==0.10.2
- inliterate ==0.1.0 - inliterate ==0.1.0
- insert-ordered-containers ==0.2.2 - insert-ordered-containers ==0.2.2
- inspection-testing ==0.4.2.1 - inspection-testing ==0.4.2.2
- instance-control ==0.1.2.0 - instance-control ==0.1.2.0
- int-cast ==0.2.0.0 - int-cast ==0.2.0.0
- integer-logarithms ==1.0.3 - integer-logarithms ==1.0.3
@ -1164,7 +1164,7 @@ default-package-overrides:
- kdt ==0.2.4 - kdt ==0.2.4
- keycode ==0.2.2 - keycode ==0.2.2
- keys ==3.12.2 - keys ==3.12.2
- kind-apply ==0.3.1.0 - kind-apply ==0.3.2.0
- kind-generics ==0.3.0.0 - kind-generics ==0.3.0.0
- kind-generics-th ==0.1.1.0 - kind-generics-th ==0.1.1.0
- kleene ==0.1 - kleene ==0.1
@ -1276,11 +1276,11 @@ default-package-overrides:
- markdown ==0.1.17.4 - markdown ==0.1.17.4
- markdown-unlit ==0.5.0 - markdown-unlit ==0.5.0
- markov-chain ==0.0.3.4 - markov-chain ==0.0.3.4
- massiv ==0.4.0.0 - massiv ==0.4.1.0
- massiv-io ==0.1.6.0 - massiv-io ==0.1.6.0
- massiv-test ==0.1.0 - massiv-test ==0.1.0
- mathexpr ==0.3.0.0 - mathexpr ==0.3.0.0
- math-functions ==0.3.1.0 - math-functions ==0.3.2.0
- matplotlib ==0.7.4 - matplotlib ==0.7.4
- matrices ==0.5.0 - matrices ==0.5.0
- matrix ==0.3.6.1 - matrix ==0.3.6.1
@ -1329,6 +1329,7 @@ default-package-overrides:
- missing-foreign ==0.1.1 - missing-foreign ==0.1.1
- MissingH ==1.4.1.0 - MissingH ==1.4.1.0
- mixed-types-num ==0.4.0.1 - mixed-types-num ==0.4.0.1
- mixpanel-client ==0.2.1
- mltool ==0.2.0.1 - mltool ==0.2.0.1
- mmap ==0.5.9 - mmap ==0.5.9
- mmark ==0.0.7.1 - mmark ==0.0.7.1
@ -1376,7 +1377,7 @@ default-package-overrides:
- mono-traversable-keys ==0.1.0 - mono-traversable-keys ==0.1.0
- more-containers ==0.2.1.2 - more-containers ==0.2.1.2
- mountpoints ==1.0.2 - mountpoints ==1.0.2
- mpi-hs ==0.5.1.2 - mpi-hs ==0.5.3.0
- msgpack ==1.0.1.0 - msgpack ==1.0.1.0
- msgpack-aeson ==0.1.0.0 - msgpack-aeson ==0.1.0.0
- mtl ==2.2.2 - mtl ==2.2.2
@ -1469,7 +1470,7 @@ default-package-overrides:
- oblivious-transfer ==0.1.0 - oblivious-transfer ==0.1.0
- odbc ==0.2.2 - odbc ==0.2.2
- oeis ==0.3.9 - oeis ==0.3.9
- oeis2 ==1.0.2 - oeis2 ==1.0.3
- ofx ==0.4.2.0 - ofx ==0.4.2.0
- old-locale ==1.0.0.7 - old-locale ==1.0.0.7
- old-time ==1.1.0.3 - old-time ==1.1.0.3
@ -1590,7 +1591,7 @@ default-package-overrides:
- pipes-network-tls ==0.3 - pipes-network-tls ==0.3
- pipes-parse ==3.0.8 - pipes-parse ==3.0.8
- pipes-random ==1.0.0.5 - pipes-random ==1.0.0.5
- pipes-safe ==2.3.1 - pipes-safe ==2.3.2
- pipes-wai ==3.2.0 - pipes-wai ==3.2.0
- pkcs10 ==0.2.0.0 - pkcs10 ==0.2.0.0
- placeholders ==0.1 - placeholders ==0.1
@ -1605,7 +1606,7 @@ default-package-overrides:
- polynomials-bernstein ==1.1.2 - polynomials-bernstein ==1.1.2
- polyparse ==1.12.1 - polyparse ==1.12.1
- polysemy ==1.0.0.0 - polysemy ==1.0.0.0
- polysemy-plugin ==0.2.2.0 - polysemy-plugin ==0.2.3.0
- polysemy-zoo ==0.5.0.1 - polysemy-zoo ==0.5.0.1
- pooled-io ==0.0.2.2 - pooled-io ==0.0.2.2
- port-utils ==0.2.1.0 - port-utils ==0.2.1.0
@ -1676,9 +1677,10 @@ default-package-overrides:
- psqueues ==0.2.7.2 - psqueues ==0.2.7.2
- pureMD5 ==2.1.3 - pureMD5 ==2.1.3
- purescript-bridge ==0.13.0.0 - purescript-bridge ==0.13.0.0
- pure-zlib ==0.6.4 - pure-zlib ==0.6.6
- pushbullet-types ==0.4.1.0 - pushbullet-types ==0.4.1.0
- pusher-http-haskell ==1.5.1.9 - pusher-http-haskell ==1.5.1.9
- PyF ==0.8.1.0
- qchas ==1.1.0.1 - qchas ==1.1.0.1
- qm-interpolated-string ==0.3.0.0 - qm-interpolated-string ==0.3.0.0
- qnap-decrypt ==0.3.5 - qnap-decrypt ==0.3.5
@ -1720,7 +1722,7 @@ default-package-overrides:
- ratel ==1.0.8 - ratel ==1.0.8
- ratel-wai ==1.1.0 - ratel-wai ==1.1.0
- rattle ==0.1 - rattle ==0.1
- rattletrap ==9.0.1 - rattletrap ==9.0.2
- rawfilepath ==0.2.4 - rawfilepath ==0.2.4
- rawstring-qm ==0.2.3.0 - rawstring-qm ==0.2.3.0
- raw-strings-qq ==1.1 - raw-strings-qq ==1.1
@ -1731,7 +1733,7 @@ default-package-overrides:
- read-editor ==0.1.0.2 - read-editor ==0.1.0.2
- read-env-var ==1.0.0.0 - read-env-var ==1.0.0.0
- reanimate ==0.1.5.0 - reanimate ==0.1.5.0
- reanimate-svg ==0.9.0.1 - reanimate-svg ==0.9.1.0
- rebase ==1.3.1.1 - rebase ==1.3.1.1
- record-dot-preprocessor ==0.2 - record-dot-preprocessor ==0.2
- record-hasfield ==1.0 - record-hasfield ==1.0
@ -1827,7 +1829,7 @@ default-package-overrides:
- scanner ==0.3 - scanner ==0.3
- scheduler ==1.4.2 - scheduler ==1.4.2
- scientific ==0.3.6.2 - scientific ==0.3.6.2
- scotty ==0.11.4 - scotty ==0.11.5
- scrypt ==0.5.0 - scrypt ==0.5.0
- sdl2 ==2.5.0.0 - sdl2 ==2.5.0.0
- sdl2-gfx ==0.2 - sdl2-gfx ==0.2
@ -1873,13 +1875,12 @@ default-package-overrides:
- servant-http-streams ==0.16 - servant-http-streams ==0.16
- servant-js ==0.9.4 - servant-js ==0.9.4
- servant-JuicyPixels ==0.3.0.4 - servant-JuicyPixels ==0.3.0.4
- servant-kotlin ==0.1.1.8 - servant-kotlin ==0.1.1.9
- servant-lucid ==0.9 - servant-lucid ==0.9
- servant-machines ==0.15 - servant-machines ==0.15
- servant-mock ==0.8.5 - servant-mock ==0.8.5
- servant-multipart ==0.11.4 - servant-multipart ==0.11.4
- servant-pipes ==0.15 - servant-pipes ==0.15
- servant-rawm ==0.3.1.0
- servant-ruby ==0.9.0.0 - servant-ruby ==0.9.0.0
- servant-server ==0.16.2 - servant-server ==0.16.2
- servant-static-th ==0.2.2.0 - servant-static-th ==0.2.2.0
@ -1901,7 +1902,7 @@ default-package-overrides:
- sexpr-parser ==0.1.1.2 - sexpr-parser ==0.1.1.2
- SHA ==1.6.4.4 - SHA ==1.6.4.4
- shake-language-c ==0.12.0 - shake-language-c ==0.12.0
- shakespeare ==2.0.20 - shakespeare ==2.0.21
- shared-memory ==0.2.0.0 - shared-memory ==0.2.0.0
- shell-conduit ==4.7.0 - shell-conduit ==4.7.0
- shell-escape ==0.2.0 - shell-escape ==0.2.0
@ -2117,7 +2118,7 @@ default-package-overrides:
- text-region ==0.3.1.0 - text-region ==0.3.1.0
- text-short ==0.1.3 - text-short ==0.1.3
- text-show ==3.8.2 - text-show ==3.8.2
- text-show-instances ==3.8.1 - text-show-instances ==3.8.2
- text-zipper ==0.10.1 - text-zipper ==0.10.1
- tfp ==1.0.1.1 - tfp ==1.0.1.1
- tf-random ==0.5 - tf-random ==0.5
@ -2130,7 +2131,7 @@ default-package-overrides:
- th-lift ==0.8.0.1 - th-lift ==0.8.0.1
- th-lift-instances ==0.1.14 - th-lift-instances ==0.1.14
- th-nowq ==0.1.0.3 - th-nowq ==0.1.0.3
- th-orphans ==0.13.7 - th-orphans ==0.13.8
- th-printf ==0.6.0 - th-printf ==0.6.0
- thread-hierarchy ==0.3.0.1 - thread-hierarchy ==0.3.0.1
- thread-local-storage ==0.2 - thread-local-storage ==0.2
@ -2306,9 +2307,9 @@ default-package-overrides:
- vector-split ==1.0.0.2 - vector-split ==1.0.0.2
- vector-th-unbox ==0.2.1.6 - vector-th-unbox ==0.2.1.6
- verbosity ==0.3.0.0 - verbosity ==0.3.0.0
- versions ==3.5.1 - versions ==3.5.1.1
- ViennaRNAParser ==1.3.3 - ViennaRNAParser ==1.3.3
- viewprof ==0.0.0.28 - viewprof ==0.0.0.29
- vinyl ==0.11.0 - vinyl ==0.11.0
- vivid ==0.4.2.3 - vivid ==0.4.2.3
- vivid-osc ==0.5.0.0 - vivid-osc ==0.5.0.0
@ -2363,7 +2364,7 @@ default-package-overrides:
- windns ==0.1.0.1 - windns ==0.1.0.1
- winery ==1.1.2 - winery ==1.1.2
- wire-streams ==0.1.1.0 - wire-streams ==0.1.1.0
- witherable ==0.3.2 - witherable ==0.3.3
- with-location ==0.1.0 - with-location ==0.1.0
- witness ==0.4 - witness ==0.4
- wizards ==1.0.3 - wizards ==1.0.3
@ -2406,7 +2407,7 @@ default-package-overrides:
- xml-conduit-parse ==0.3.1.2 - xml-conduit-parse ==0.3.1.2
- xml-conduit-writer ==0.1.1.2 - xml-conduit-writer ==0.1.1.2
- xmlgen ==0.6.2.2 - xmlgen ==0.6.2.2
- xml-hamlet ==0.5.0 - xml-hamlet ==0.5.0.1
- xml-html-qq ==0.1.0.1 - xml-html-qq ==0.1.0.1
- xml-indexed-cursor ==0.1.1.0 - xml-indexed-cursor ==0.1.1.0
- xml-isogen ==0.3.0 - xml-isogen ==0.3.0
@ -2430,7 +2431,7 @@ default-package-overrides:
- yesod-auth-hashdb ==1.7.1.1 - yesod-auth-hashdb ==1.7.1.1
- yesod-auth-oauth2 ==0.6.1.2 - yesod-auth-oauth2 ==0.6.1.2
- yesod-bin ==1.6.0.3 - yesod-bin ==1.6.0.3
- yesod-core ==1.6.16 - yesod-core ==1.6.16.1
- yesod-csp ==0.2.5.0 - yesod-csp ==0.2.5.0
- yesod-eventsource ==1.6.0 - yesod-eventsource ==1.6.0
- yesod-fb ==0.5.0 - yesod-fb ==0.5.0
@ -5826,6 +5827,7 @@ broken-packages:
- hiccup - hiccup
- hichi - hichi
- hid-examples - hid-examples
- hie-core
- hieraclus - hieraclus
- hierarchical-clustering - hierarchical-clustering
- hierarchical-clustering-diagrams - hierarchical-clustering-diagrams
@ -8773,6 +8775,7 @@ broken-packages:
- seqloc - seqloc
- seqloc-datafiles - seqloc-datafiles
- sequence-formats - sequence-formats
- sequenceTools
- sequent-core - sequent-core
- sequor - sequor
- serialize-instances - serialize-instances

View File

@ -44,7 +44,7 @@ in
); );
tensorflow-proto = super.tensorflow-proto.override { tensorflow-proto = super.tensorflow-proto.override {
inherit proto-lens proto-lens-protoc proto-lens-protobuf-types; inherit proto-lens proto-lens-protobuf-types;
}; };
tensorflow = super.tensorflow.override { tensorflow = super.tensorflow.override {
inherit mainland-pretty proto-lens; inherit mainland-pretty proto-lens;

File diff suppressed because it is too large Load Diff

View File

@ -5,9 +5,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "love-0.8.0"; pname = "love";
version = "0.8.0";
src = fetchurl { src = fetchurl {
url = "https://bitbucket.org/rude/love/downloads/${name}-linux-src.tar.gz"; url = "https://bitbucket.org/rude/love/downloads/${pname}-${version}-linux-src.tar.gz";
sha256 = "1k4fcsa8zzi04ja179bmj24hvqcbm3icfvrvrzyz2gw9qwfclrwi"; sha256 = "1k4fcsa8zzi04ja179bmj24hvqcbm3icfvrvrzyz2gw9qwfclrwi";
}; };
@ -36,13 +38,14 @@ stdenv.mkDerivation rec {
} || true } || true
''; '';
NIX_CFLAGS_COMPILE = '' NIX_CFLAGS_COMPILE = [
-I${SDL.dev}/include/SDL "-I${SDL.dev}/include/SDL"
-I${freetype.dev}include/freetype2 "-I${freetype.dev}include/freetype2"
''; "-DGL_GLEXT_PROTOTYPES" # https://community.khronos.org/t/glgenbuffers-was-not-declared-in-this-scope/59283/2
];
meta = { meta = {
homepage = http://love2d.org; homepage = "http://love2d.org";
description = "A Lua-based 2D game engine/scripting language"; description = "A Lua-based 2D game engine/scripting language";
license = stdenv.lib.licenses.zlib; license = stdenv.lib.licenses.zlib;

View File

@ -88,8 +88,9 @@ in rec {
}; };
} ./setuptools-check-hook.sh) {}; } ./setuptools-check-hook.sh) {};
wheelUnpackHook = callPackage ({ }: wheelUnpackHook = callPackage ({ wheel }:
makeSetupHook { makeSetupHook {
name = "wheel-unpack-hook.sh"; name = "wheel-unpack-hook.sh";
deps = [ wheel ];
} ./wheel-unpack-hook.sh) {}; } ./wheel-unpack-hook.sh) {};
} }

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, autoconf, automake, libtool, libjack2, alsaLib, rtmidi }: { stdenv, fetchFromGitHub, autoconf, automake, libtool, libjack2, alsaLib, pulseaudio, rtmidi }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "5.1.0"; version = "5.1.0";
@ -13,18 +13,18 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
buildInputs = [ autoconf automake libtool libjack2 alsaLib rtmidi ]; buildInputs = [ autoconf automake libtool libjack2 alsaLib pulseaudio rtmidi ];
preConfigure = '' preConfigure = ''
./autogen.sh --no-configure ./autogen.sh --no-configure
./configure ./configure
''; '';
meta = { meta = with stdenv.lib; {
description = "A set of C++ classes that provide a cross platform API for realtime audio input/output"; description = "A set of C++ classes that provide a cross platform API for realtime audio input/output";
homepage = http://www.music.mcgill.ca/~gary/rtaudio/; homepage = http://www.music.mcgill.ca/~gary/rtaudio/;
license = stdenv.lib.licenses.mit; license = licenses.mit;
maintainers = [ stdenv.lib.maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = with stdenv.lib.platforms; linux ++ darwin; platforms = platforms.unix;
}; };
} }

View File

@ -3,11 +3,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "getdns"; pname = "getdns";
version = "1.5.1"; version = "1.5.2";
versionRewrite = builtins.splitVersion version;
src = fetchurl { src = fetchurl {
url = "https://getdnsapi.net/releases/${pname}-1-5-1/${pname}-${version}.tar.gz"; url = "https://getdnsapi.net/releases/${pname}-${builtins.concatStringsSep "-" versionRewrite}/${pname}-${version}.tar.gz";
sha256 = "5686e61100599c309ce03535f9899a5a3d94a82cc08d10718e2cd73ad3dc28af"; sha256 = "1h4l0sbkpiahpx2pd5lby10yi22mdxgx5xf1y80r77pa46iac9hq";
}; };
nativeBuildInputs = [ libtool m4 autoreconfHook automake file ]; nativeBuildInputs = [ libtool m4 autoreconfHook automake file ];

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig, gst-plugins-base, bzip2, libva, wayland { stdenv, fetchurl, meson, ninja, pkgconfig, gst-plugins-base, bzip2, libva, wayland
, libdrm, udev, xorg, libGLU_combined, gstreamer, gst-plugins-bad, nasm , libdrm, udev, xorg, libGLU_combined, gstreamer, gst-plugins-bad, nasm
, libvpx, python , libvpx, python, fetchpatch
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -12,6 +12,15 @@ stdenv.mkDerivation rec {
sha256 = "07qpynamiz0lniqajcaijh3n7ixs4lfk9a5mfk50sng0dricwzsf"; sha256 = "07qpynamiz0lniqajcaijh3n7ixs4lfk9a5mfk50sng0dricwzsf";
}; };
patches = [
# See: https://mail.gnome.org/archives/distributor-list/2019-September/msg00000.html
# Note that the patch has now been actually accepted upstream.
(fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/commit/a90daabb84f983d2fa05ff3159f7ad59aa648b55.patch";
sha256 = "0p2qygq6b5h6nxjdfnlzbsyih43hjq5c94ag8sbyyb8pmnids9rb";
})
];
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja pkgconfig bzip2 ]; nativeBuildInputs = [ meson ninja pkgconfig bzip2 ];
@ -28,8 +37,6 @@ stdenv.mkDerivation rec {
''; '';
mesonFlags = [ mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
]; ];

View File

@ -0,0 +1,23 @@
{ stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "libipt";
version = "2.0.1";
src = fetchFromGitHub {
owner = "intel";
repo = "libipt";
rev = "v${version}";
sha256 = "19y1lk5z1rf8xmr08m8zrpjkgr5as83b96xyaxwn67m2wz58mpmh";
};
nativeBuildInputs = [ cmake ];
meta = with stdenv.lib; {
description = "Intel Processor Trace decoder library";
homepage = https://github.com/intel/libipt;
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [ orivej ];
};
}

View File

@ -4,14 +4,15 @@
}: }:
let let
mainVersion = "5.1"; mainVersion = "5.1.2";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "libktorrent-2.1"; pname = "libktorrent";
version = "2.1.1";
src = fetchurl { src = fetchurl {
url = "mirror://kde/stable/ktorrent/${mainVersion}/${name}.tar.xz"; url = "mirror://kde/stable/ktorrent/${mainVersion}/${pname}-${version}.tar.xz";
sha256 = "0vz2dwc4xd80q56g6r5bx5wqdl9fxcibxmw2irahqhbkxk7drvry"; sha256 = "0051zh8bb4p9wmcfn5ql987brhsaiw9880xdck7b5dm1a05mri2w";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View File

@ -16,7 +16,7 @@ top-level attribute to `top-level/all-packages.nix`.
{ {
newScope, newScope,
stdenv, fetchurl, fetchFromGitHub, makeSetupHook, makeWrapper, stdenv, fetchurl, fetchFromGitHub, fetchpatch, makeSetupHook, makeWrapper,
bison, cups ? null, harfbuzz, libGL, perl, bison, cups ? null, harfbuzz, libGL, perl,
gstreamer, gst-plugins-base, gtk3, dconf, gstreamer, gst-plugins-base, gtk3, dconf,
llvmPackages_5, llvmPackages_5,
@ -55,7 +55,15 @@ let
./qtbase-fixguicmake.patch ./qtbase-fixguicmake.patch
]; ];
qtdeclarative = [ ./qtdeclarative.patch ]; qtdeclarative = [ ./qtdeclarative.patch ];
qtscript = [ ./qtscript.patch ]; qtscript = [
./qtscript.patch
# needed due to changes in gcc 8.3, see https://bugreports.qt.io/browse/QTBUG-74196
# fixed in qtscript 5.12.2
(fetchpatch {
url = "https://github.com/qt/qtscript/commit/97ec1d1882a83c23c91f0f7daea48e05858d8c32.diff";
sha256 = "0khrapq13xzvxckzc9l7gqyjwibyd98vyqy6gmyhvsbm2kq8n6wi";
})
];
qtserialport = [ ./qtserialport.patch ]; qtserialport = [ ./qtserialport.patch ];
qttools = [ ./qttools.patch ]; qttools = [ ./qttools.patch ];
qtwebengine = [ qtwebengine = [

View File

@ -42,7 +42,15 @@ let
./qtbase-openssl_1_1.patch ./qtbase-openssl_1_1.patch
]; ];
qtdeclarative = [ ./qtdeclarative.patch ]; qtdeclarative = [ ./qtdeclarative.patch ];
qtscript = [ ./qtscript.patch ]; qtscript = [
./qtscript.patch
# needed due to changes in gcc 8.3, see https://bugreports.qt.io/browse/QTBUG-74196
# fixed in qtscript 5.12.2
(fetchpatch {
url = "https://github.com/qt/qtscript/commit/97ec1d1882a83c23c91f0f7daea48e05858d8c32.diff";
sha256 = "0khrapq13xzvxckzc9l7gqyjwibyd98vyqy6gmyhvsbm2kq8n6wi";
})
];
qtserialport = [ ./qtserialport.patch ]; qtserialport = [ ./qtserialport.patch ];
qttools = [ ./qttools.patch ]; qttools = [ ./qttools.patch ];
qtwebengine = [ ./qtwebengine-no-build-skip.patch ] qtwebengine = [ ./qtwebengine-no-build-skip.patch ]

View File

@ -51,8 +51,12 @@ qtModule {
''; '';
NIX_CFLAGS_COMPILE = NIX_CFLAGS_COMPILE =
# with gcc7 this warning blows the log over Hydra's limit [
[ "-Wno-expansion-to-defined" ] # with gcc7 this warning blows the log over Hydra's limit
"-Wno-expansion-to-defined"
# with gcc8, -Wclass-memaccess became part of -Wall and this too exceeds the logging limit
"-Wno-class-memaccess"
]
# with clang this warning blows the log over Hydra's limit # with clang this warning blows the log over Hydra's limit
++ optional stdenv.isDarwin "-Wno-inconsistent-missing-override" ++ optional stdenv.isDarwin "-Wno-inconsistent-missing-override"
++ optionals flashplayerFix ++ optionals flashplayerFix

View File

@ -73,6 +73,11 @@ stdenv.mkDerivation rec {
chmod u+w -R . chmod u+w -R .
''; '';
postPatch = stdenv.lib.optionalString stdenv.isAarch64 ''
substituteInPlace build/toolchain/linux/BUILD.gn \
--replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
'';
gnFlags = [ gnFlags = [
"use_custom_libcxx=false" "use_custom_libcxx=false"
"is_clang=${if stdenv.cc.isClang then "true" else "false"}" "is_clang=${if stdenv.cc.isClang then "true" else "false"}"
@ -104,6 +109,17 @@ stdenv.mkDerivation rec {
install -D d8 $out/bin/d8 install -D d8 $out/bin/d8
install -D obj/libv8_monolith.a $out/lib/libv8.a install -D obj/libv8_monolith.a $out/lib/libv8.a
cp -r ../../include $out cp -r ../../include $out
mkdir -p $out/lib/pkgconfig
cat > $out/lib/pkgconfig/v8.pc << EOF
Name: v8
Description: V8 JavaScript Engine
Version: ${version}
Libs: -L$out/lib -lv8 -pthread
Cflags: -I$out/include
Libs: -L$out/lib -lpulse
Cflags: -I$out/include
EOF
''; '';
meta = with lib; { meta = with lib; {

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, cmake, boost, pkgconfig, doxygen, qt48Full, libharu { stdenv, fetchFromGitHub, cmake, boost, pkgconfig, doxygen, qt48Full, libharu
, pango, fcgi, firebird, libmysqlclient, postgresql, graphicsmagick, glew, openssl , pango, fcgi, firebird, libmysqlclient, postgresql, graphicsmagick, glew, openssl
, pcre , pcre, harfbuzz
}: }:
let let
@ -31,6 +31,7 @@ let
"-DWT_CPP_11_MODE=-std=c++11" "-DWT_CPP_11_MODE=-std=c++11"
"-DGM_PREFIX=${graphicsmagick}" "-DGM_PREFIX=${graphicsmagick}"
"-DMYSQL_PREFIX=${libmysqlclient}" "-DMYSQL_PREFIX=${libmysqlclient}"
"-DHARFBUZZ_INCLUDE_DIR=${harfbuzz.dev}/include"
"--no-warn-unused-cli" "--no-warn-unused-cli"
]; ];
@ -44,12 +45,12 @@ let
}; };
in { in {
wt3 = generic { wt3 = generic {
version = "3.4.0"; version = "3.4.1";
sha256 = "0y0b2h9jf5cg1gdh48dj32pj5nsvipab1cgygncxf98c46ikhysg"; sha256 = "1bsx7hmy6g2x9p3vl5xw9lv1xk891pnvs93a87s15g257gznkjmj";
}; };
wt4 = generic { wt4 = generic {
version = "4.1.0"; version = "4.1.1";
sha256 = "1a9nl5gs8m8pssf2l3z6kbl2rc9fw5ad7lfslw5yr3gzi0zqn05x"; sha256 = "1f1imx5kbpqlysrqx5h75hf2f8pkq972rz42x0pl6cxbnsyzngid";
}; };
} }

View File

@ -37,7 +37,5 @@ let
}; };
}; };
in { in {
# xapian-ruby needs 1.2.22 as of 2017-05-06
xapian_1_2_22 = generic "1.2.22" "0zsji22n0s7cdnbgj0kpil05a6bgm5cfv0mvx12d8ydg7z58g6r6";
xapian_1_4 = generic "1.4.12" "0z5c1y9vp519h2x2igjq39v6j615nppry0wasd0xn4hphgd3d2jg"; xapian_1_4 = generic "1.4.12" "0z5c1y9vp519h2x2igjq39v6j615nppry0wasd0xn4hphgd3d2jg";
} }

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, mcpp, bzip2, expat, openssl, db5 { stdenv, lib, fetchFromGitHub, fetchpatch, mcpp, bzip2, expat, openssl, db5
, darwin, libiconv, Security , darwin, libiconv, Security
, cpp11 ? false , cpp11 ? false
}: }:
@ -26,6 +26,16 @@ stdenv.mkDerivation rec {
--replace xcrun "" --replace xcrun ""
''; '';
patches = [
# Fixes compilation issues with GCC 8 using one of the patches
# provided in https://github.com/zeroc-ice/ice/issues/82
( fetchpatch {
url = "https://github.com/zeroc-ice/ice/commit/a6a4981616b669432ff7b588179d6e93694d9e3f.patch";
sha256 = "17j5r7gsa3izrm7zln4mrp7l16h532gvmpas0kzglybicbiz7d56";
stripLen = 1;
})
];
preBuild = '' preBuild = ''
makeFlagsArray+=( makeFlagsArray+=(
"prefix=$out" "prefix=$out"

View File

@ -7,13 +7,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "rappel"; pname = "rappel";
version = "unstable-2019-07-08"; version = "unstable-2019-09-09";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "yrp604"; owner = "yrp604";
repo = "rappel"; repo = "rappel";
rev = "95a776f850cf6a7c21923a2100b605408ef038de"; rev = "31a06762d34880ff2ed7176ca71bd8a6b91b10d5";
sha256 = "0fmd15xa6hswh3x48av4g1sf6rncbiinbj7gbw1ffvqsbcfnsgcr"; sha256 = "0wj3hypqfrjra8mwmn32hs5qs6ic81cq3gn1v0b2fba6vkqcsqfy";
}; };
buildInputs = [ libedit ]; buildInputs = [ libedit ];

View File

@ -6,6 +6,10 @@
which, makeWrapper, writeText which, makeWrapper, writeText
}: }:
if stdenv.lib.versionAtLeast core_kernel.version "0.12"
then throw "BAP needs core_kernel-0.11 (hence OCaml 4.06)"
else
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-bap-${version}"; name = "ocaml${ocaml.version}-bap-${version}";
version = "1.6.0"; version = "1.6.0";

View File

@ -1,22 +1,22 @@
{ lib, fetchFromGitHub, buildDunePackage { lib, fetchFromGitHub, buildDunePackage
, core, lwt ? ocaml_lwt, ocaml_lwt, ocamlgraph, rresult, tyxml , base64, bos, core, lwt_react, ocamlgraph, rresult, tyxml
}: }:
buildDunePackage rec { buildDunePackage rec {
pname = "bistro"; pname = "bistro";
version = "0.4.0"; version = "0.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pveber"; owner = "pveber";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0bxnggm4nkyl2iqwj4f5afw8lj5miq2rqsc9qfrlmg4g4rr3zh1c"; sha256 = "114gq48cpj2mvycypa9lfyqqb26wa2gkdfwkcqhnx7m6sdwv9a38";
}; };
buildInputs = [ lwt ocamlgraph rresult tyxml ]; buildInputs = [ base64 bos lwt_react ocamlgraph rresult tyxml ];
propagatedBuildInputs = [ core ]; propagatedBuildInputs = [ core ];
minimumOCamlVersion = "4.04"; minimumOCamlVersion = "4.07";
meta = { meta = {
inherit (src.meta) homepage; inherit (src.meta) homepage;

View File

@ -0,0 +1,466 @@
{ janePackage
, ctypes
, num
, octavius
, ppxlib
, re
, openssl
}:
rec {
ocaml-compiler-libs = janePackage {
pname = "ocaml-compiler-libs";
hash = "0g9y1ljjsj1nw0lz460ivb6qmz9vhcmfl8krlmqfrni6pc7b0r6f";
meta.description = "OCaml compiler libraries repackaged";
};
sexplib0 = janePackage {
pname = "sexplib0";
hash = "13xdd0pvypxqn0ldwdgikmlinrp3yfh8ixknv1xrpxbx3np4qp0g";
meta.description = "Library containing the definition of S-expressions and some base converters";
};
base = janePackage {
pname = "base";
version = "0.12.2";
hash = "0gl89zpgsf3n30nb6v5cns27g2bfg4rf3s2427gqvwbkr5gcf7ri";
meta.description = "Full standard library replacement for OCaml";
propagatedBuildInputs = [ sexplib0 ];
};
stdio = janePackage {
pname = "stdio";
hash = "1pn8jjcb79n6crpw7dkp68s4lz2mw103lwmfslil66f05jsxhjhg";
meta.description = "Standard IO library for OCaml";
propagatedBuildInputs = [ base ];
};
ppx_sexp_conv = janePackage {
pname = "ppx_sexp_conv";
hash = "0idzp1kzds0gnilschzs9ydi54if8y5xpn6ajn710vkipq26qcld";
meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
propagatedBuildInputs = [ ppxlib ];
};
ppx_here = janePackage {
pname = "ppx_here";
hash = "07qbchwif1i9ii8z7v1bib57d3mjv0b27i8iixw78i83wnsycmdx";
meta.description = "Expands [%here] into its location";
propagatedBuildInputs = [ ppxlib ];
};
ppx_compare = janePackage {
pname = "ppx_compare";
hash = "0n1ax4k2smhps9hc2v58lc06a0fgimwvbi1aj4x78vwh5j492bys";
meta.description = "Generation of comparison functions from types";
propagatedBuildInputs = [ ppxlib ];
};
ppx_assert = janePackage {
pname = "ppx_assert";
hash = "0as6mzr6ki2a9d4k6132p9dskn0qssla1s7j5rkzp75bfikd0ip8";
meta.description = "Assert-like extension nodes that raise useful errors on failure";
propagatedBuildInputs = [ ppx_compare ppx_here ppx_sexp_conv ];
};
ppx_inline_test = janePackage {
pname = "ppx_inline_test";
hash = "0nyz411zim94pzbxm2l2v2l9jishcxwvxhh142792g2s18r4vn50";
meta.description = "Syntax extension for writing in-line tests in ocaml code";
propagatedBuildInputs = [ ppxlib ];
};
ppx_custom_printf = janePackage {
pname = "ppx_custom_printf";
version = "0.12.1";
hash = "0q7591agvd3qy9ihhbyk4db48r0ng7yxspfj8afxxiawl7k5bas6";
meta.description = "Printf-style format-strings for user-defined string conversion";
propagatedBuildInputs = [ ppx_sexp_conv ];
};
fieldslib = janePackage {
pname = "fieldslib";
hash = "0dlgr7cimqmjlcymk3bdcyzqzvdy12q5lqa844nqix0k2ymhyphf";
meta.description = "Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
propagatedBuildInputs = [ base ];
};
ppx_fields_conv = janePackage {
pname = "ppx_fields_conv";
hash = "0flrdyxdfcqcmdrbipxdjq0s3djdgs7z5pvjdycsvs6czbixz70v";
meta.description = "Generation of accessor and iteration functions for ocaml records";
propagatedBuildInputs = [ fieldslib ppxlib ];
};
variantslib = janePackage {
pname = "variantslib";
hash = "1cclb5magk63gyqmkci8abhs05g2pyhyr60a2c1bvmig0faqcnsf";
meta.description = "Part of Jane Street's Core library";
propagatedBuildInputs = [ base ];
};
ppx_variants_conv = janePackage {
pname = "ppx_variants_conv";
hash = "05j9bgra8xq6fcp12ch3z9vjrk139p2wrcjjcs4h52n5hhc8vzbz";
meta.description = "Generation of accessor and iteration functions for ocaml variant types";
propagatedBuildInputs = [ variantslib ppxlib ];
};
ppx_expect = janePackage {
pname = "ppx_expect";
hash = "1wawsbjfkri4sw52n8xqrzihxc3xfpdicv3ahz83a1rsn4lb8j5q";
meta.description = "Cram like framework for OCaml";
propagatedBuildInputs = [ ppx_assert ppx_custom_printf ppx_fields_conv ppx_inline_test ppx_variants_conv re ];
};
ppx_enumerate = janePackage {
pname = "ppx_enumerate";
hash = "08zfpq6bdm5lh7xj9k72iz9f2ihv3aznl3nypw3x78vz1chj8dqa";
meta.description = "Generate a list containing all values of a finite type";
propagatedBuildInputs = [ ppxlib ];
};
ppx_hash = janePackage {
pname = "ppx_hash";
hash = "1dfsfvhiyp1mnf24mr93svpdn432kla0y7x631lssacxxp2sadbg";
meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
};
ppx_js_style = janePackage {
pname = "ppx_js_style";
hash = "1lz931m3qdv3yzqy6dnb8fq1d99r61w0n7cwf3b9fl9rhk0pggwh";
meta.description = "Code style checker for Jane Street Packages";
propagatedBuildInputs = [ octavius ppxlib ];
};
ppx_base = janePackage {
pname = "ppx_base";
hash = "0vd96rp2l084iamkwmvizzhl9625cagjb6gzzbir06czii5mlq2p";
meta.description = "Base set of ppx rewriters";
propagatedBuildInputs = [ ppx_enumerate ppx_hash ppx_js_style ];
};
ppx_bench = janePackage {
pname = "ppx_bench";
hash = "1ib81irawxzq091bmpi50z0kmpx6z2drg14k2xcgmwbb1d4063xn";
meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
propagatedBuildInputs = [ ppx_inline_test ];
};
ppx_sexp_message = janePackage {
pname = "ppx_sexp_message";
hash = "0yskd6v48jc6wa0nhg685kylh1n9qb6b7d1wglr9wnhl9sw990mc";
meta.description = "A ppx rewriter for easy construction of s-expressions";
propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
};
splittable_random = janePackage {
pname = "splittable_random";
hash = "1wpyz7807cgj8b50gdx4rw6f1zsznp4ni5lzjbnqdwa66na6ynr4";
meta.description = "PRNG that can be split into independent streams";
propagatedBuildInputs = [ base ppx_assert ppx_bench ppx_sexp_message ];
};
ppx_let = janePackage {
pname = "ppx_let";
hash = "146dmyzkbmafa3giz69gpxccvdihg19cvk4xsg8krbbmlkvdda22";
meta.description = "Monadic let-bindings";
propagatedBuildInputs = [ ppxlib ];
};
base_quickcheck = janePackage {
pname = "base_quickcheck";
hash = "1la6qgq1zwmfyq1hqy6i337w435ym5yqgx2ygk86qip6nws0s6r3";
meta.description = "Randomized testing framework, designed for compatibility with Base";
propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let splittable_random ];
};
ppx_stable = janePackage {
pname = "ppx_stable";
hash = "15zvf66wlkvz0yd4bkvndkpq74dj20jv1qkljp9n52hh7d0f9ykh";
meta.description = "Stable types conversions generator";
propagatedBuildInputs = [ ppxlib ];
};
bin_prot = janePackage {
pname = "bin_prot";
hash = "0hh6s7g9s004z35hsr8z6nw5phlcvcd6g2q3bj4f0s1s0anlsswm";
meta.description = "A binary protocol generator";
propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_variants_conv ];
};
ppx_bin_prot = janePackage {
pname = "ppx_bin_prot";
version = "0.12.1";
hash = "1j0kjgmv58dmg3x5dj5zrfbm920rwq21lvkkaqq493y76cd0x8xg";
meta.description = "Generation of bin_prot readers and writers from types";
propagatedBuildInputs = [ bin_prot ppx_here ];
};
ppx_fail = janePackage {
pname = "ppx_fail";
hash = "0krsv6z9gi0ifxmw5ss6gwn108qhywyhbs41an10x9d5zpgf4l1n";
meta.description = "Add location to calls to failwiths";
propagatedBuildInputs = [ ppx_here ];
};
jst-config = janePackage {
pname = "jst-config";
hash = "0yxcz13vda1mdh9ah7qqxwfxpcqang5sgdssd8721rszbwqqaw93";
meta.description = "Compile-time configuration for Jane Street libraries";
buildInputs = [ ppx_assert ];
};
ppx_optcomp = janePackage {
pname = "ppx_optcomp";
hash = "0bdbx01kz0174g1szdhv3mcfqxqqf2frxq7hk13xaf6fsz04kwmj";
meta.description = "Optional compilation for OCaml";
propagatedBuildInputs = [ ppxlib ];
};
jane-street-headers = janePackage {
pname = "jane-street-headers";
hash = "0qa4llf812rjqa8nb63snmy8d8ny91p3anwhb50afb7vjaby8m34";
meta.description = "Jane Street C header files";
};
time_now = janePackage {
pname = "time_now";
hash = "169mgsb3rja4j1j9nj5xa7bbkd21p9kfpskqz0wjf9x2fpxqsniq";
meta.description = "Reports the current time";
buildInputs = [ jst-config ppx_optcomp ];
propagatedBuildInputs = [ jane-street-headers base ppx_base ];
};
ppx_module_timer = janePackage {
pname = "ppx_module_timer";
hash = "0yziakm7f4c894na76k1z4bp7azy82xc33mh36fj761w1j9zy3wm";
meta.description = "Ppx rewriter that records top-level module startup times";
propagatedBuildInputs = [ time_now ];
};
ppx_optional = janePackage {
pname = "ppx_optional";
hash = "07i0iipbd5xw2bc604qkwlcxmhncfpm3xmrr6svyj2ij86pyssh8";
meta.description = "Pattern matching on flat options";
propagatedBuildInputs = [ ppxlib ];
};
ppx_pipebang = janePackage {
pname = "ppx_pipebang";
hash = "1p4pdpl8h2bblbhpn5nk17ri4rxpz0aih0gffg3cl1186irkj0xj";
meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
propagatedBuildInputs = [ ppxlib ];
};
ppx_sexp_value = janePackage {
pname = "ppx_sexp_value";
hash = "1mg81834a6dx1x7x9zb9wc58438cabjjw08yhkx6i386hxfy891p";
meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
};
typerep = janePackage {
pname = "typerep";
hash = "1psl6gsk06a62szh60y5sc1s92xpmrl1wpw3rhha09v884b7arbc";
meta.description = "Typerep is a library for runtime types";
propagatedBuildInputs = [ base ];
};
ppx_typerep_conv = janePackage {
pname = "ppx_typerep_conv";
hash = "09vik6qma1id44k8nz87y48l9wbjhqhap1ar1hpfdfkjai1hrzzq";
meta.description = "Generation of runtime types from type declarations";
propagatedBuildInputs = [ ppxlib typerep ];
};
ppx_jane = janePackage {
pname = "ppx_jane";
hash = "1a2602isqzsh640q20qbmarx0sc316mlsqc3i25ysv2kdyhh0kyw";
meta.description = "Standard Jane Street ppx rewriters";
propagatedBuildInputs = [ base_quickcheck ppx_bench ppx_bin_prot ppx_expect ppx_fail ppx_module_timer ppx_optcomp ppx_optional ppx_pipebang ppx_sexp_value ppx_stable ppx_typerep_conv ];
};
base_bigstring = janePackage {
pname = "base_bigstring";
hash = "0rbgyg511847fbnxad40prz2dyp4da6sffzyzl88j18cxqxbh1by";
meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
propagatedBuildInputs = [ ppx_jane ];
};
parsexp = janePackage {
pname = "parsexp";
hash = "1974i9s2c2n03iffxrm6ncwbd2gg6j6avz5jsxfd35scc2zxcd4l";
meta.description = "S-expression parsing library";
propagatedBuildInputs = [ base sexplib0 ];
};
sexplib = janePackage {
pname = "sexplib";
hash = "0780klc5nnv0ij6aklzra517cfnfkjdlp8ylwjrqwr8dl9rvxza2";
meta.description = "Library for serializing OCaml values to and from S-expressions";
propagatedBuildInputs = [ num parsexp ];
};
core_kernel = janePackage {
pname = "core_kernel";
version = "0.12.2";
hash = "0c85bjvadrb4pmjcg0gjk3bkkgka62r90pjm690mjvcbbv5zjxzj";
meta.description = "System-independent part of Core";
buildInputs = [ jst-config ];
propagatedBuildInputs = [ base_bigstring sexplib ];
};
spawn = janePackage {
pname = "spawn";
version = "0.13.0";
hash = "1w003k1kw1lmyiqlk58gkxx8rac7dchiqlz6ah7aj7bh49b36ppf";
meta.description = "Spawning sub-processes";
buildInputs = [ ppx_expect ];
};
core = janePackage {
pname = "core";
version = "0.12.3";
hash = "1vmjqiafkg45hqfvahx6jnlaww1q4a4215k8znbgprf0qn3zymnj";
meta.description = "System-independent part of Core";
buildInputs = [ jst-config ];
propagatedBuildInputs = [ core_kernel spawn ];
};
async_kernel = janePackage {
pname = "async_kernel";
hash = "1d9illx7vvpblj1i2r9y0f2yff2fbhy3rp4hhvamq1n9n3lvxmh2";
meta.description = "Monadic concurrency library";
propagatedBuildInputs = [ core_kernel ];
};
protocol_version_header = janePackage {
pname = "protocol_version_header";
hash = "14vqhx3r84rlfhcjq52gxdqksckiaswlck9s47g7y2z1lsc17v7r";
meta.description = "Protocol versioning";
propagatedBuildInputs = [ core_kernel ];
};
async_rpc_kernel = janePackage {
pname = "async_rpc_kernel";
hash = "1znhqbzx4fp58i7dbcgyv5rx7difbhb5d8cbqzv96yqvbn67lsjk";
meta.description = "Platform-independent core of Async RPC library";
propagatedBuildInputs = [ async_kernel protocol_version_header ];
};
async_unix = janePackage {
pname = "async_unix";
hash = "09h10rdyykbm88n6r9nb5a22mlb6vcxa04q6hvrcr0kys6qhhqmb";
meta.description = "Monadic concurrency library";
propagatedBuildInputs = [ async_kernel core ];
};
async_extra = janePackage {
pname = "async_extra";
hash = "10j4mwlyqvf67yrp5dwd857llqjinpnnykmlzw2gpmks9azxk6mh";
meta.description = "Monadic concurrency library";
propagatedBuildInputs = [ async_rpc_kernel async_unix ];
};
textutils = janePackage {
pname = "textutils";
hash = "0302awqihf3abib9mvzvn4g8m364hm6jxry1r3kc01hzybhy9acq";
meta.description = "Text output utilities";
propagatedBuildInputs = [ core ];
};
async = janePackage {
pname = "async";
hash = "0pk7z3h2gi21nfchvmjz2wx516bynf9vgwf84zf5qhvlvqqsmyrx";
meta.description = "Monadic concurrency library";
propagatedBuildInputs = [ async_extra textutils ];
};
async_ssl = janePackage {
pname = "async_ssl";
hash = "02ard8x5q5c42d9jdqmyzfx624yjq8cxxmvq3zb82hf6p8cc57ml";
meta.description = "An Async-pipe-based interface with OpenSSL";
propagatedBuildInputs = [ async ctypes openssl ];
};
async_find = janePackage {
pname = "async_find";
hash = "0qsz9f15s5rlk6za10s810v6nlkdxg2g9p1827lcpa7nhjcpi673";
meta.description = "Directory traversal with Async";
propagatedBuildInputs = [ async ];
};
re2 = janePackage {
pname = "re2";
hash = "1sw32lb0y501y971ij7287796lvfhs0nfgla895r74ymfks2rcjb";
meta.description = "OCaml bindings for RE2, Google's regular expression library";
propagatedBuildInputs = [ core_kernel ];
};
shell = janePackage {
pname = "shell";
hash = "158857rdr6qgglc5iksg0l54jgf51b5lmsw7nlazpxwdwc9fcn5n";
meta.description = "Yet another implementation of fork&exec and related functionality";
buildInputs = [ jst-config ];
propagatedBuildInputs = [ re2 textutils ];
};
async_shell = janePackage {
pname = "async_shell";
hash = "0cxln9hkc3cy522la9yi9p23qjwl69kqmadsq4lnjh5bxdad06sv";
meta.description = "Shell helpers for Async";
propagatedBuildInputs = [ async shell ];
};
core_bench = janePackage {
pname = "core_bench";
hash = "00hyzbbj19dkcw0vhfnc8w0ca3zkjriwwvl00ssa0a2g9mygijdm";
meta.description = "Benchmarking library";
propagatedBuildInputs = [ textutils ];
};
core_extended = janePackage {
pname = "core_extended";
hash = "1gwx66235irpf5krb1r25a3c7w52qhmass8hp7rdv89il9jn49w4";
meta.description = "Extra components that are not as closely vetted or as stable as Core";
propagatedBuildInputs = [ core ];
};
### Packages at version 0.11, with dependencies at version 0.12
configurator = janePackage {
pname = "configurator";
version = "0.11.0";
hash = "0h686630cscav7pil8c3w0gbh6rj4b41dvbnwmicmlkc746q5bfk";
propagatedBuildInputs = [ stdio ];
meta.description = "Helper library for gathering system configuration";
};
ppx_core = janePackage {
pname = "ppx_core";
version = "0.11.0";
hash = "11hgm9mxig4cm3c827f6dns9mjv3pf8g6skf10x0gw9xnp1dmzmx";
propagatedBuildInputs = [ ppxlib ];
meta.description = "Deprecated (see ppxlib)";
};
ppx_driver = janePackage {
pname = "ppx_driver";
version = "0.11.0";
hash = "00kfx6js2kxk57k4v7hiqvwk7h35whgjihnxf75m82rnaf4yzvfi";
propagatedBuildInputs = [ ppxlib ];
meta.description = "Deprecated (see ppxlib)";
};
ppx_type_conv = janePackage {
pname = "ppx_type_conv";
version = "0.11.0";
hash = "04dbrglqqhkas25cpjz8xhjcbpk141c35qggzw66bn69izczfmaf";
propagatedBuildInputs = [ ppxlib ];
meta.description = "Deprecated (see ppxlib)";
};
}

View File

@ -0,0 +1,19 @@
{ lib, fetchFromGitHub, buildDunePackage, defaultVersion ? "0.12.0" }:
{ pname, version ? defaultVersion, hash, ...}@args:
buildDunePackage (args // {
inherit version;
minimumOCamlVersion = "4.07";
src = fetchFromGitHub {
owner = "janestreet";
repo = pname;
rev = "v${version}";
sha256 = hash;
};
meta.license = lib.licenses.mit;
meta.homepage = "https://github.com/janestreet/${pname}";
})

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, fetchpatch, ocaml, findlib, ocamlbuild, topkg { stdenv, fetchurl, fetchpatch, ocaml, findlib, ocamlbuild, topkg
, cpuid, ocb-stubblr, sexplib , cpuid, ocb-stubblr, sexplib
, cstruct, zarith, ppx_sexp_conv , cstruct, zarith, ppx_sexp_conv, ppx_deriving
, cstruct-lwt ? null , cstruct-lwt ? null
}: }:
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
]; ];
buildInputs = [ ocaml findlib ocamlbuild topkg cpuid ocb-stubblr ]; buildInputs = [ ocaml findlib ocamlbuild topkg cpuid ocb-stubblr ];
propagatedBuildInputs = [ cstruct ppx_sexp_conv sexplib zarith ] ++ optional withLwt cstruct-lwt; propagatedBuildInputs = [ cstruct ppx_deriving ppx_sexp_conv sexplib zarith ] ++ optional withLwt cstruct-lwt;
buildPhase = "${topkg.buildPhase} --with-lwt ${boolToString withLwt}"; buildPhase = "${topkg.buildPhase} --with-lwt ${boolToString withLwt}";
inherit (topkg) installPhase; inherit (topkg) installPhase;

View File

@ -0,0 +1,27 @@
{ stdenv, fetchFromGitHub, buildDunePackage, alcotest, cmdliner, rresult, result, xmlm, yojson }:
buildDunePackage rec {
pname = "rpclib";
version = "5.9.0";
minimumOCamlVersion = "4.04";
src = fetchFromGitHub {
owner = "mirage";
repo = "ocaml-rpc";
rev = "v${version}";
sha256 = "1swnnmmnkn53mxqpckdnd1j8bz0wksqznjbv0zamspxyqybmancq";
};
buildInputs = [ alcotest cmdliner yojson ];
propagatedBuildInputs = [ rresult result xmlm ];
doCheck = true;
meta = with stdenv.lib; {
homepage = "https://github.com/mirage/ocaml-rpc";
description = "Light library to deal with RPCs in OCaml";
license = licenses.isc;
maintainers = [ maintainers.vyorkin ];
};
}

View File

@ -0,0 +1,33 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, aiohttp
, flake8
, jinja2
, pytestCheckHook
, pytest-aiohttp
, pyyaml
}:
buildPythonPackage rec {
pname = "aiohttp-swagger";
version = "1.0.5";
src = fetchFromGitHub {
owner = "cr0hn";
repo = pname;
rev = "5a59e86f8c5672d2cc97dd35dc730c2f809d95ce"; # corresponds to 1.0.5 on PyPi, no tag on GitHub
sha256 = "1vpfk5b3f7s9qzr2q48g776f39xzqppjwm57scfzqqmbldkk5nv7";
};
propagatedBuildInputs = [ aiohttp jinja2 pyyaml ];
checkInputs = [ flake8 pytestCheckHook pytest-aiohttp ];
meta = with lib; {
description = "Swagger API Documentation builder for aiohttp";
homepage = https://github.com/cr0hn/aiohttp-swagger;
license = licenses.mit;
maintainers = with maintainers; [ elohmeier ];
};
}

View File

@ -1,5 +1,5 @@
{ stdenv, buildPythonPackage, fetchPypi { stdenv, buildPythonPackage, fetchPypi
, pytest, pytestcov, mock, coverage , pytest, pytestcov, mock, coverage, setuptools
, Mako, sqlalchemy, python-editor, dateutil , Mako, sqlalchemy, python-editor, dateutil
}: }:
@ -13,7 +13,7 @@ buildPythonPackage rec {
}; };
buildInputs = [ pytest pytestcov mock coverage ]; buildInputs = [ pytest pytestcov mock coverage ];
propagatedBuildInputs = [ Mako sqlalchemy python-editor dateutil ]; propagatedBuildInputs = [ Mako sqlalchemy python-editor dateutil setuptools ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://bitbucket.org/zzzeek/alembic; homepage = https://bitbucket.org/zzzeek/alembic;

View File

@ -1,5 +1,20 @@
{ stdenv, buildPythonPackage, fetchPypi, six, wcwidth, pytest, mock { stdenv, buildPythonPackage, fetchPypi, fetchpatch, six
, glibcLocales }: , wcwidth, pytest, mock, glibcLocales
}:
let
fixTestSuiteFailure_1 = fetchpatch {
url = https://github.com/jquast/blessed/pull/108/commits/76a54d39b0f58bfc71af04ee143459eefb0e1e7b.patch;
sha256 = "1higmv4c03ly7ywac1d7s71f3hrl531vj16nsfl9xh6zh9c47qcg";
};
fixTestSuiteFailure_2 = fetchpatch {
url = https://github.com/jquast/blessed/pull/108/commits/aa94e01aed745715e667601fb674844b257cfcc9.patch;
sha256 = "1frygr6sc1vakdfx1hf6jj0dbwibiqz8hw9maf1b605cbslc9nay";
};
in
buildPythonPackage rec { buildPythonPackage rec {
pname = "blessed"; pname = "blessed";
@ -10,6 +25,8 @@ buildPythonPackage rec {
sha256 = "777b0b6b5ce51f3832e498c22bc6a093b6b5f99148c7cbf866d26e2dec51ef21"; sha256 = "777b0b6b5ce51f3832e498c22bc6a093b6b5f99148c7cbf866d26e2dec51ef21";
}; };
patches = [ fixTestSuiteFailure_1 fixTestSuiteFailure_2 ];
checkInputs = [ pytest mock glibcLocales ]; checkInputs = [ pytest mock glibcLocales ];
checkPhase = '' checkPhase = ''

View File

@ -12,6 +12,8 @@ buildPythonPackage rec {
sha256 = "1811b55wdfg4kbsjcgh1kc938g118jpvif97ilgrmbls25dfpvvw"; sha256 = "1811b55wdfg4kbsjcgh1kc938g118jpvif97ilgrmbls25dfpvvw";
}; };
dontConfigure = true;
checkInputs = [ pytest ]; checkInputs = [ pytest ];
checkPhase = '' checkPhase = ''

View File

@ -0,0 +1,28 @@
{ stdenv, lib, buildPythonPackage, fetchFromGitHub, isPy36, flake8, click, pyyaml, six, pytestCheckHook, pytestcov }:
buildPythonPackage rec {
pname = "clickclick";
version = "1.2.2";
src = fetchFromGitHub {
owner = "hjacobs";
repo = "python-clickclick";
rev = version;
sha256 = "1rij9ws9nhsmagiy1vclzliiqfkxi006rf65qvrw1k3sm2s8p5g0";
};
checkInputs = [ pytestCheckHook pytestcov ];
propagatedBuildInputs = [ flake8 click pyyaml six ];
disabledTests = lib.optionals isPy36 [
"test_cli"
"test_choice_default"
];
meta = with stdenv.lib; {
description = "Click command line utilities";
homepage = https://github.com/hjacobs/python-clickclick/;
license = licenses.asl20;
maintainers = with maintainers; [ elohmeier ];
};
}

View File

@ -0,0 +1,94 @@
{ buildPythonPackage
, fetchFromGitHub
, isPy3k
, glibcLocales
, lib
, pythonOlder
, aiohttp
, aiohttp-swagger
, aiohttp-jinja2
, clickclick
, decorator
, flake8
, flask
, gevent
, inflection
, jsonschema
, mock
, openapi-spec-validator
, pathlib
, pytest
, pytest-aiohttp
, pytestcov
, pyyaml
, requests
, six
, swagger-ui-bundle
, testfixtures
, typing
, ujson
}:
buildPythonPackage rec {
pname = "connexion";
version = "2.3.0";
# we're fetching from GitHub because tests weren't distributed on PyPi
src = fetchFromGitHub {
owner = "zalando";
repo = pname;
rev = version;
sha256 = "1xdm3misxwgrl87ms0vvn0h4rjwzlmmi7kcra2ahs40iaraf33ln";
};
checkInputs = [
decorator
mock
pytest
pytestcov
testfixtures
flask
swagger-ui-bundle
]
++ lib.optionals isPy3k [ aiohttp aiohttp-jinja2 aiohttp-swagger ujson pytest-aiohttp ]
++ lib.optional (pythonOlder "3.7") glibcLocales
;
propagatedBuildInputs = [
clickclick
jsonschema
pyyaml
requests
six
inflection
openapi-spec-validator
swagger-ui-bundle
flask
]
++ lib.optional (pythonOlder "3.4") pathlib
++ lib.optional (pythonOlder "3.6") typing
++ lib.optionals isPy3k [ aiohttp aiohttp-jinja2 aiohttp-swagger ujson ]
;
preConfigure = lib.optional (pythonOlder "3.7") ''
export LANG=en_US.UTF-8
'';
postPatch = ''
substituteInPlace setup.py --replace "'aiohttp>=2.3.10,<3.5.2'" "'aiohttp>=2.3.10'"
'';
checkPhase = if isPy3k then ''
pytest -k "not test_app_get_root_path and \
not test_verify_oauth_scopes_remote and \
not test_verify_oauth_scopes_local and \
not test_run_with_aiohttp_not_installed"''
else "pytest --ignore=tests/aiohttp";
meta = with lib; {
description = "Swagger/OpenAPI First framework on top of Flask";
homepage = https://github.com/zalando/connexion/;
license = licenses.asl20;
maintainers = with maintainers; [ elohmeier ];
};
}

View File

@ -1,23 +1,31 @@
{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder { lib, buildPythonPackage, fetchFromGitHub, pythonOlder
, six, typing , six, typing, pygments
, django, shortuuid, python-dateutil, pytest , django, shortuuid, python-dateutil, pytest
, pytest-django, pytestcov, mock, vobject , pytest-django, pytestcov, mock, vobject
, werkzeug, glibcLocales , werkzeug, glibcLocales, factory_boy
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "django-extensions"; pname = "django-extensions";
version = "2.1.4"; version = "2.1.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1bp0ybarkrj66qx2gn9954vsjqq2ya1w4bppfhr763mkis8qnb4f"; sha256 = "08vggm6wrn5cbf8brfprif0rjrkqz06wddsw0ir1skkk8q2sp1b2";
}; };
postPatch = '' postPatch = ''
substituteInPlace setup.py --replace "'tox'," "" substituteInPlace setup.py --replace "'tox'," ""
# not yet pytest 5 compatible?
rm tests/management/commands/test_set_fake_emails.py
rm tests/management/commands/test_set_fake_passwords.py
rm tests/management/commands/test_validate_templates.py
# pip should not be used during tests...
rm tests/management/commands/test_pipchecker.py
''; '';
propagatedBuildInputs = [ six ] ++ lib.optional (pythonOlder "3.5") typing; propagatedBuildInputs = [ six ] ++ lib.optional (pythonOlder "3.5") typing;
@ -25,7 +33,7 @@ buildPythonPackage rec {
checkInputs = [ checkInputs = [
django shortuuid python-dateutil pytest django shortuuid python-dateutil pytest
pytest-django pytestcov mock vobject pytest-django pytestcov mock vobject
werkzeug glibcLocales werkzeug glibcLocales factory_boy pygments
]; ];
LC_ALL = "en_US.UTF-8"; LC_ALL = "en_US.UTF-8";

View File

@ -1,5 +1,5 @@
{ lib, buildPythonPackage, fetchPypi { lib, buildPythonPackage, fetchPypi
, setuptools_scm, django, dateutil, whoosh, pysolr , setuptools, setuptools_scm, django, dateutil, whoosh, pysolr
, coverage, mock, nose, geopy, requests }: , coverage, mock, nose, geopy, requests }:
buildPythonPackage rec { buildPythonPackage rec {
@ -12,7 +12,7 @@ buildPythonPackage rec {
}; };
checkInputs = [ pysolr whoosh dateutil geopy coverage nose mock coverage requests ]; checkInputs = [ pysolr whoosh dateutil geopy coverage nose mock coverage requests ];
propagatedBuildInputs = [ django ]; propagatedBuildInputs = [ django setuptools ];
nativeBuildInputs = [ setuptools_scm ]; nativeBuildInputs = [ setuptools_scm ];
postPatch = '' postPatch = ''

View File

@ -21,11 +21,6 @@ buildPythonPackage rec {
}) })
]; ];
# patch only $out/bin to avoid problems with starter templates (see #3134)
postFixup = ''
wrapPythonProgramsIn $out/bin "$out $pythonPath"
'';
propagatedBuildInputs = [ pytz ]; propagatedBuildInputs = [ pytz ];
# too complicated to setup # too complicated to setup

View File

@ -15,11 +15,6 @@ buildPythonPackage rec {
# too complicated to setup # too complicated to setup
doCheck = false; doCheck = false;
# patch only $out/bin to avoid problems with starter templates (see #3134)
postFixup = ''
wrapPythonProgramsIn $out/bin "$out $pythonPath"
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A high-level Python Web framework"; description = "A high-level Python Web framework";
homepage = https://www.djangoproject.com/; homepage = https://www.djangoproject.com/;

View File

@ -24,11 +24,6 @@ buildPythonPackage rec {
}) })
]; ];
# patch only $out/bin to avoid problems with starter templates (see #3134)
postFixup = ''
wrapPythonProgramsIn $out/bin "$out $pythonPath"
'';
propagatedBuildInputs = [ pytz ]; propagatedBuildInputs = [ pytz ];
# too complicated to setup # too complicated to setup

View File

@ -1,18 +1,18 @@
{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, six, hypothesis, mock { stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, six, hypothesis, mock
, python-Levenshtein, pytest }: , python-Levenshtein, pytest, termcolor, isPy27, enum34 }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "fire"; pname = "fire";
version = "0.1.3"; version = "0.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "google"; owner = "google";
repo = "python-fire"; repo = "python-fire";
rev = "v${version}"; rev = "v${version}";
sha256 = "0kdcmzr3sgzjsw5fmvdylgrn8akqjbs433jbgqzp498njl9cc6qx"; sha256 = "1r6cmihafd7mb6j3mvgk251my6ckb0sqqj1l2ny2azklv175b38a";
}; };
propagatedBuildInputs = [ six ]; propagatedBuildInputs = [ six termcolor ] ++ stdenv.lib.optional isPy27 enum34;
checkInputs = [ hypothesis mock python-Levenshtein pytest ]; checkInputs = [ hypothesis mock python-Levenshtein pytest ];
@ -20,14 +20,6 @@ buildPythonPackage rec {
py.test py.test
''; '';
patches = [
# Add Python 3.7 support. Remove with the next release
(fetchpatch {
url = "https://github.com/google/python-fire/commit/668007ae41391f5964870b4597e41493a936a11e.patch";
sha256 = "0rf7yzv9qx66zfmdggfz478z37fi4rwx4hlh3dk1065sx5rfksi0";
})
];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A library for automatically generating command line interfaces"; description = "A library for automatically generating command line interfaces";
longDescription = '' longDescription = ''

Some files were not shown because too many files have changed in this diff Show More