diff --git a/README.md b/README.md
index 055a219462e..887ebd1c7a2 100644
--- a/README.md
+++ b/README.md
@@ -33,10 +33,8 @@ For pull-requests, please rebase onto nixpkgs `master`.
* [Manual (NixOS)](https://nixos.org/nixos/manual/)
* [Nix Wiki](https://nixos.org/wiki/)
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
-* [Continuous package builds for 14.12 release](https://hydra.nixos.org/jobset/nixos/release-14.12)
* [Continuous package builds for 15.09 release](https://hydra.nixos.org/jobset/nixos/release-15.09)
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
-* [Tests for 14.12 release](https://hydra.nixos.org/job/nixos/release-14.12/tested#tabs-constituents)
* [Tests for 15.09 release](https://hydra.nixos.org/job/nixos/release-15.09/tested#tabs-constituents)
Communication:
diff --git a/lib/deprecated.nix b/lib/deprecated.nix
index 3646f9e032a..3729197f48b 100644
--- a/lib/deprecated.nix
+++ b/lib/deprecated.nix
@@ -411,7 +411,7 @@ rec {
nixType = x:
if isAttrs x then
if x ? outPath then "derivation"
- else "aattrs"
+ else "attrs"
else if isFunction x then "function"
else if isList x then "list"
else if x == true then "bool"
diff --git a/nixos/doc/manual/installation/obtaining.xml b/nixos/doc/manual/installation/obtaining.xml
index afd6c9543f7..f6e8b218e2b 100644
--- a/nixos/doc/manual/installation/obtaining.xml
+++ b/nixos/doc/manual/installation/obtaining.xml
@@ -39,8 +39,8 @@ running NixOS system through several other means:
Using NixOps, the NixOS-based cloud deployment tool, which
allows you to provision VirtualBox and EC2 NixOS instances from
declarative specifications. Check out the NixOps
- homepage for details.
+ xlink:href="https://nixos.org/nixops">NixOps homepage for
+ details.
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index de9a318fdd2..b1130c2b124 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -235,6 +235,7 @@
kibana = 211;
xtreemfs = 212;
calibre-server = 213;
+ heapster = 214;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 034ea933a7d..6c219575bf0 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -238,6 +238,7 @@
./services/monitoring/dd-agent.nix
./services/monitoring/grafana.nix
./services/monitoring/graphite.nix
+ ./services/monitoring/heapster.nix
./services/monitoring/monit.nix
./services/monitoring/munin.nix
./services/monitoring/nagios.nix
diff --git a/nixos/modules/services/cluster/kubernetes.nix b/nixos/modules/services/cluster/kubernetes.nix
index a06384e2713..42efde36678 100644
--- a/nixos/modules/services/cluster/kubernetes.nix
+++ b/nixos/modules/services/cluster/kubernetes.nix
@@ -512,6 +512,7 @@ in {
wantedBy = [ "multi-user.target" ];
requires = ["kubernetes-setup.service"];
after = [ "network-interfaces.target" "etcd.service" "docker.service" ];
+ path = [ pkgs.gitMinimal pkgs.openssh ];
script = ''
export PATH="/bin:/sbin:/usr/bin:/usr/sbin:$PATH"
exec ${cfg.package}/bin/kubelet \
diff --git a/nixos/modules/services/databases/influxdb.nix b/nixos/modules/services/databases/influxdb.nix
index 08963f7aab7..8d63f14c67b 100644
--- a/nixos/modules/services/databases/influxdb.nix
+++ b/nixos/modules/services/databases/influxdb.nix
@@ -5,43 +5,103 @@ with lib;
let
cfg = config.services.influxdb;
- influxdbConfig = pkgs.writeText "config.toml" ''
- bind-address = "${cfg.bindAddress}"
+ configOptions = recursiveUpdate {
+ meta = {
+ bind-address = ":8088";
+ commit-timeout = "50ms";
+ dir = "${cfg.dataDir}/meta";
+ election-timeout = "1s";
+ heartbeat-timeout = "1s";
+ hostname = "localhost";
+ leader-lease-timeout = "500ms";
+ retention-autocreate = true;
+ };
- [logging]
- level = "info"
- file = "stdout"
+ data = {
+ dir = "${cfg.dataDir}/data";
+ wal-dir = "${cfg.dataDir}/wal";
+ max-wal-size = 104857600;
+ wal-enable-logging = true;
+ wal-flush-interval = "10m";
+ wal-partition-flush-delay = "2s";
+ };
- [admin]
- port = ${toString cfg.adminPort}
- assets = "${pkgs.influxdb}/share/influxdb/admin"
+ cluster = {
+ shard-writer-timeout = "5s";
+ write-timeout = "5s";
+ };
- [api]
- port = ${toString cfg.apiPort}
- ${cfg.apiExtraConfig}
+ retention = {
+ enabled = true;
+ check-interval = "30m";
+ };
- [input_plugins]
- ${cfg.inputPluginsConfig}
+ http = {
+ enabled = true;
+ auth-enabled = false;
+ bind-address = ":8086";
+ https-enabled = false;
+ log-enabled = true;
+ pprof-enabled = false;
+ write-tracing = false;
+ };
- [raft]
- dir = "${cfg.dataDir}/raft"
- ${cfg.raftConfig}
+ monitor = {
+ store-enabled = false;
+ store-database = "_internal";
+ store-interval = "10s";
+ };
- [storage]
- dir = "${cfg.dataDir}/db"
- ${cfg.storageConfig}
+ admin = {
+ enabled = true;
+ bind-address = ":8083";
+ https-enabled = false;
+ };
- [cluster]
- ${cfg.clusterConfig}
+ graphite = [{
+ enabled = false;
+ }];
- [sharding]
- ${cfg.shardingConfig}
+ udp = [{
+ enabled = false;
+ }];
- [wal]
- dir = "${cfg.dataDir}/wal"
- ${cfg.walConfig}
+ collectd = {
+ enabled = false;
+ typesdb = "${pkgs.collectd}/share/collectd/types.db";
+ database = "collectd_db";
+ port = 25826;
+ };
- ${cfg.extraConfig}
+ opentsdb = {
+ enabled = false;
+ };
+
+ continuous_queries = {
+ enabled = true;
+ log-enabled = true;
+ recompute-previous-n = 2;
+ recompute-no-older-than = "10m";
+ compute-runs-per-interval = 10;
+ compute-no-more-than = "2m";
+ };
+
+ hinted-handoff = {
+ enabled = true;
+ dir = "${cfg.dataDir}/hh";
+ max-size = 1073741824;
+ max-age = "168h";
+ retry-rate-limit = 0;
+ retry-interval = "1s";
+ };
+ } cfg.extraConfig;
+
+ configFile = pkgs.runCommand "config.toml" {
+ buildInputs = [ pkgs.remarshal ];
+ } ''
+ remarshal -if json -of toml \
+ < ${pkgs.writeText "config.json" (builtins.toJSON configOptions)} \
+ > $out
'';
in
{
@@ -82,124 +142,10 @@ in
type = types.path;
};
- bindAddress = mkOption {
- default = "127.0.0.1";
- description = "Address where influxdb listens";
- type = types.str;
- };
-
- adminPort = mkOption {
- default = 8083;
- description = "The port where influxdb admin listens";
- type = types.int;
- };
-
- apiPort = mkOption {
- default = 8086;
- description = "The port where influxdb api listens";
- type = types.int;
- };
-
- apiExtraConfig = mkOption {
- default = ''
- read-timeout = "5s"
- '';
- description = "Extra influxdb api configuration";
- example = ''
- ssl-port = 8084
- ssl-cert = /path/to/cert.pem
- read-timeout = "5s"
- '';
- type = types.lines;
- };
-
- inputPluginsConfig = mkOption {
- default = "";
- description = "Configuration of influxdb extra plugins";
- example = ''
- [input_plugins.graphite]
- enabled = true
- port = 2003
- database = "graphite"
- '';
- };
-
- raftConfig = mkOption {
- default = ''
- port = 8090
- '';
- description = "Influxdb raft configuration";
- type = types.lines;
- };
-
- storageConfig = mkOption {
- default = ''
- write-buffer-size = 10000
- '';
- description = "Influxdb raft configuration";
- type = types.lines;
- };
-
- clusterConfig = mkOption {
- default = ''
- protobuf_port = 8099
- protobuf_timeout = "2s"
- protobuf_heartbeat = "200ms"
- protobuf_min_backoff = "1s"
- protobuf_max_backoff = "10s"
-
- write-buffer-size = 10000
- max-response-buffer-size = 100
-
- concurrent-shard-query-limit = 10
- '';
- description = "Influxdb cluster configuration";
- type = types.lines;
- };
-
- leveldbConfig = mkOption {
- default = ''
- max-open-files = 40
- lru-cache-size = "200m"
- max-open-shards = 0
- point-batch-size = 100
- write-batch-size = 5000000
- '';
- description = "Influxdb leveldb configuration";
- type = types.lines;
- };
-
- shardingConfig = mkOption {
- default = ''
- replication-factor = 1
-
- [sharding.short-term]
- duration = "7d"
- split = 1
-
- [sharding.long-term]
- duration = "30d"
- split = 1
- '';
- description = "Influxdb sharding configuration";
- type = types.lines;
- };
-
- walConfig = mkOption {
- default = ''
- flush-after = 1000
- bookmark-after = 1000
- index-after = 1000
- requests-per-logfile = 10000
- '';
- description = "Influxdb write-ahead log configuration";
- type = types.lines;
- };
-
extraConfig = mkOption {
- default = "";
+ default = {};
description = "Extra configuration options for influxdb";
- type = types.string;
+ type = types.attrs;
};
};
@@ -215,7 +161,7 @@ in
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
serviceConfig = {
- ExecStart = ''${cfg.package}/bin/influxdb -config "${influxdbConfig}"'';
+ ExecStart = ''${cfg.package}/bin/influxd -config "${configFile}"'';
User = "${cfg.user}";
Group = "${cfg.group}";
PermissionsStartOnly = true;
@@ -224,11 +170,6 @@ in
mkdir -m 0770 -p ${cfg.dataDir}
if [ "$(id -u)" = 0 ]; then chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}; fi
'';
- postStart = mkBefore ''
- until ${pkgs.curl}/bin/curl -s -o /dev/null 'http://${cfg.bindAddress}:${toString cfg.apiPort}/'; do
- sleep 1;
- done
- '';
};
users.extraUsers = optional (cfg.user == "influxdb") {
diff --git a/nixos/modules/services/monitoring/bosun.nix b/nixos/modules/services/monitoring/bosun.nix
index ebe4741f01b..214a19d9483 100644
--- a/nixos/modules/services/monitoring/bosun.nix
+++ b/nixos/modules/services/monitoring/bosun.nix
@@ -6,9 +6,11 @@ let
cfg = config.services.bosun;
configFile = pkgs.writeText "bosun.conf" ''
- tsdbHost = ${cfg.opentsdbHost}
+ ${optionalString (cfg.opentsdbHost !=null) "tsdbHost = ${cfg.opentsdbHost}"}
+ ${optionalString (cfg.influxHost !=null) "influxHost = ${cfg.influxHost}"}
httpListen = ${cfg.listenAddress}
stateFile = ${cfg.stateFile}
+ ledisDir = ${cfg.ledisDir}
checkFrequency = ${cfg.checkFrequency}
${cfg.extraConfig}
@@ -54,10 +56,20 @@ in {
};
opentsdbHost = mkOption {
- type = types.string;
+ type = types.nullOr types.string;
default = "localhost:4242";
description = ''
Host and port of the OpenTSDB database that stores bosun data.
+ To disable opentsdb you can pass null as parameter.
+ '';
+ };
+
+ influxHost = mkOption {
+ type = types.nullOr types.string;
+ default = null;
+ example = "localhost:8086";
+ description = ''
+ Host and port of the influxdb database.
'';
};
@@ -70,13 +82,21 @@ in {
};
stateFile = mkOption {
- type = types.string;
+ type = types.path;
default = "/var/lib/bosun/bosun.state";
description = ''
Path to bosun's state file.
'';
};
+ ledisDir = mkOption {
+ type = types.path;
+ default = "/var/lib/bosun/ledis_data";
+ description = ''
+ Path to bosun's ledis data dir
+ '';
+ };
+
checkFrequency = mkOption {
type = types.str;
default = "5m";
@@ -103,7 +123,7 @@ in {
};
config = mkIf cfg.enable {
-
+
systemd.services.bosun = {
description = "bosun metrics collector (part of Bosun)";
wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index 5302728eae9..6053990e8d3 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -7,150 +7,37 @@ let
b2s = val: if val then "true" else "false";
- cfgFile = pkgs.writeText "grafana.ini" ''
- app_name = grafana
- app_mode = production
+ envOptions = {
+ PATHS_DATA = cfg.dataDir;
+ PATHS_LOGS = "${cfg.dataDir}/log";
- [server]
- ; protocol (http or https)
- protocol = ${cfg.protocol}
- ; the ip address to bind to, empty will bind to all interfaces
- http_addr = ${cfg.addr}
- ; the http port to use
- http_port = ${toString cfg.port}
- ; The public facing domain name used to access grafana from a browser
- domain = ${cfg.domain}
- ; the full public facing url
- root_url = ${cfg.rootUrl}
- router_logging = false
- ; the path relative to the binary where the static (html/js/css) files are placed
- static_root_path = ${cfg.staticRootPath}
- ; enable gzip
- enable_gzip = false
- ; https certs & key file
- cert_file = ${cfg.certFile}
- cert_key = ${cfg.certKey}
+ SERVER_PROTOCOL = cfg.protocol;
+ SERVER_HTTP_ADDR = cfg.addr;
+ SERVER_HTTP_PORT = cfg.port;
+ SERVER_DOMAIN = cfg.domain;
+ SERVER_ROOT_URL = cfg.rootUrl;
+ SERVER_STATIC_ROOT_PATH = cfg.staticRootPath;
+ SERVER_CERT_FILE = cfg.certFile;
+ SERVER_CERT_KEY = cfg.certKey;
- [analytics]
- # Server reporting, sends usage counters to stats.grafana.org every 24 hours.
- # No ip addresses are being tracked, only simple counters to track
- # running instances, dashboard and error counts. It is very helpful to us.
- # Change this option to false to disable reporting.
- reporting_enabled = true
- ; Google Analytics universal tracking code, only enabled if you specify an id here
- google_analytics_ua_id =
+ DATABASE_TYPE = cfg.database.type;
+ DATABASE_HOST = cfg.database.host;
+ DATABASE_NAME = cfg.database.name;
+ DATABASE_USER = cfg.database.user;
+ DATABASE_PASSWORD = cfg.database.password;
+ DATABASE_PATH = cfg.database.path;
- [database]
- ; Either "mysql", "postgres" or "sqlite3", it's your choice
- type = ${cfg.database.type}
- host = ${cfg.database.host}
- name = ${cfg.database.name}
- user = ${cfg.database.user}
- password = ${cfg.database.password}
- ; For "postgres" only, either "disable", "require" or "verify-full"
- ssl_mode = disable
- ; For "sqlite3" only
- path = ${cfg.database.path}
+ SECURITY_ADMIN_USER = cfg.security.adminUser;
+ SECURITY_ADMIN_PASSWORD = cfg.security.adminPassword;
+ SECURITY_SECRET_KEY = cfg.security.secretKey;
- [session]
- ; Either "memory", "file", "redis", "mysql", default is "memory"
- provider = file
- ; Provider config options
- ; memory: not have any config yet
- ; file: session file path, e.g. `data/sessions`
- ; redis: config like redis server addr, poolSize, password, e.g. `127.0.0.1:6379,100,grafana`
- ; mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1)/database_name`
- provider_config = data/sessions
- ; Session cookie name
- cookie_name = grafana_sess
- ; If you use session in https only, default is false
- cookie_secure = false
- ; Session life time, default is 86400
- session_life_time = 86400
- ; session id hash func, Either "sha1", "sha256" or "md5" default is sha1
- session_id_hashfunc = sha1
- ; Session hash key, default is use random string
- session_id_hashkey =
+ USERS_ALLOW_SIGN_UP = b2s cfg.users.allowSignUp;
+ USERS_ALLOW_ORG_CREATE = b2s cfg.users.allowOrgCreate;
+ USERS_AUTO_ASSIGN_ORG = b2s cfg.users.autoAssignOrg;
+ USERS_AUTO_ASSIGN_ORG_ROLE = cfg.users.autoAssignOrgRole;
- [security]
- ; default admin user, created on startup
- admin_user = ${cfg.security.adminUser}
- ; default admin password, can be changed before first start of grafana, or in profile settings
- admin_password = ${cfg.security.adminPassword}
- ; used for signing
- secret_key = ${cfg.security.secretKey}
- ; Auto-login remember days
- login_remember_days = 7
- cookie_username = grafana_user
- cookie_remember_name = grafana_remember
-
- [users]
- ; disable user signup / registration
- allow_sign_up = ${b2s cfg.users.allowSignUp}
- ; Allow non admin users to create organizations
- allow_org_create = ${b2s cfg.users.allowOrgCreate}
- # Set to true to automatically assign new users to the default organization (id 1)
- auto_assign_org = ${b2s cfg.users.autoAssignOrg}
- ; Default role new users will be automatically assigned (if disabled above is set to true)
- auto_assign_org_role = ${cfg.users.autoAssignOrgRole}
-
- [auth.anonymous]
- ; enable anonymous access
- enabled = ${b2s cfg.auth.anonymous.enable}
- ; specify organization name that should be used for unauthenticated users
- org_name = Main Org.
- ; specify role for unauthenticated users
- org_role = Viewer
-
- [auth.github]
- enabled = false
- client_id = some_id
- client_secret = some_secret
- scopes = user:email
- auth_url = https://github.com/login/oauth/authorize
- token_url = https://github.com/login/oauth/access_token
-
- [auth.google]
- enabled = false
- client_id = some_client_id
- client_secret = some_client_secret
- scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
- auth_url = https://accounts.google.com/o/oauth2/auth
- token_url = https://accounts.google.com/o/oauth2/token
-
- [log]
- root_path = data/log
- ; Either "console", "file", default is "console"
- ; Use comma to separate multiple modes, e.g. "console, file"
- mode = console
- ; Buffer length of channel, keep it as it is if you don't know what it is.
- buffer_len = 10000
- ; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
- level = Info
-
- ; For "console" mode only
- [log.console]
- level =
-
- ; For "file" mode only
- [log.file]
- level =
- ; This enables automated log rotate(switch of following options), default is true
- log_rotate = true
- ; Max line number of single file, default is 1000000
- max_lines = 1000000
- ; Max size shift of single file, default is 28 means 1 << 28, 256MB
- max_lines_shift = 28
- ; Segment log daily, default is true
- daily_rotate = true
- ; Expired days of log file(delete after max days), default is 7
- max_days = 7
-
- [event_publisher]
- enabled = false
- rabbitmq_url = amqp://localhost/
- exchange = grafana_events
- '';
+ AUTH_ANONYMOUS_ENABLE = b2s cfg.auth.anonymous.enable;
+ } // cfg.extraOptions;
in {
options.services.grafana = {
@@ -306,6 +193,16 @@ in {
type = types.bool;
};
};
+
+ extraOptions = mkOption {
+ description = ''
+ Extra configuration options passed as env variables as specified in
+ documentation,
+ but without GF_ prefix
+ '';
+ default = {};
+ type = types.attrsOf types.str;
+ };
};
config = mkIf cfg.enable {
@@ -317,11 +214,15 @@ in {
description = "Grafana Service Daemon";
wantedBy = ["multi-user.target"];
after = ["networking.target"];
+ environment = mapAttrs' (n: v: nameValuePair "GF_${n}" (toString v)) envOptions;
serviceConfig = {
- ExecStart = "${cfg.package}/bin/grafana --config ${cfgFile} web";
+ ExecStart = "${cfg.package}/bin/grafana -homepath ${cfg.dataDir}";
WorkingDirectory = cfg.dataDir;
User = "grafana";
};
+ preStart = ''
+ ln -fs ${cfg.package}/share/grafana/conf ${cfg.dataDir}
+ '';
};
users.extraUsers.grafana = {
@@ -331,7 +232,7 @@ in {
createHome = true;
};
- services.grafana.staticRootPath = mkDefault "${cfg.package.out}/share/go/src/github.com/grafana/grafana/public";
+ services.grafana.staticRootPath = mkDefault "${cfg.package}/share/grafana/public";
};
}
diff --git a/nixos/modules/services/monitoring/heapster.nix b/nixos/modules/services/monitoring/heapster.nix
new file mode 100644
index 00000000000..74b8c9ccd3e
--- /dev/null
+++ b/nixos/modules/services/monitoring/heapster.nix
@@ -0,0 +1,57 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.heapster;
+in {
+ options.services.heapster = {
+ enable = mkOption {
+ description = "Whether to enable heapster monitoring";
+ default = false;
+ type = types.bool;
+ };
+
+ source = mkOption {
+ description = "Heapster metric source";
+ example = "kubernetes:https://kubernetes.default";
+ type = types.string;
+ };
+
+ sink = mkOption {
+ description = "Heapster metic sink";
+ example = "influxdb:http://localhost:8086";
+ type = types.string;
+ };
+
+ extraOpts = mkOption {
+ description = "Heapster extra options";
+ default = "";
+ type = types.string;
+ };
+
+ package = mkOption {
+ description = "Package to use by heapster";
+ default = pkgs.heapster;
+ type = types.package;
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.heapster = {
+ wantedBy = ["multi-user.target"];
+ after = ["cadvisor.service" "kube-apiserver.service"];
+
+ serviceConfig = {
+ ExecStart = "${cfg.package}/bin/heapster --source=${cfg.source} --sink=${cfg.sink} ${cfg.extraOpts}";
+ User = "heapster";
+ };
+ };
+
+ users.extraUsers = singleton {
+ name = "heapster";
+ uid = config.ids.uids.heapster;
+ description = "Heapster user";
+ };
+ };
+}
diff --git a/nixos/modules/services/networking/nix-serve.nix b/nixos/modules/services/networking/nix-serve.nix
index 4f8b9357a82..880a1d361df 100644
--- a/nixos/modules/services/networking/nix-serve.nix
+++ b/nixos/modules/services/networking/nix-serve.nix
@@ -56,7 +56,7 @@ in
serviceConfig = {
ExecStart = "${pkgs.nix-serve}/bin/nix-serve " +
- "--port ${cfg.bindAddress}:${toString cfg.port} ${cfg.extraParams}";
+ "--listen ${cfg.bindAddress}:${toString cfg.port} ${cfg.extraParams}";
User = "nix-serve";
Group = "nogroup";
};
diff --git a/nixos/modules/services/web-servers/apache-httpd/wordpress.nix b/nixos/modules/services/web-servers/apache-httpd/wordpress.nix
index 921f774bcaa..7a0314027a3 100644
--- a/nixos/modules/services/web-servers/apache-httpd/wordpress.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/wordpress.nix
@@ -17,10 +17,10 @@ let
define('DB_HOST', '${config.dbHost}');
define('DB_CHARSET', 'utf8');
$table_prefix = '${config.tablePrefix}';
+ ${config.extraConfig}
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
- ${config.extraConfig}
'';
# .htaccess to support pretty URLs
diff --git a/nixos/modules/tasks/scsi-link-power-management.nix b/nixos/modules/tasks/scsi-link-power-management.nix
index a74023dec21..484c0a0186d 100644
--- a/nixos/modules/tasks/scsi-link-power-management.nix
+++ b/nixos/modules/tasks/scsi-link-power-management.nix
@@ -2,18 +2,19 @@
with lib;
+let cfg = config.powerManagement.scsiLinkPolicy; in
+
{
###### interface
options = {
powerManagement.scsiLinkPolicy = mkOption {
- default = "";
- example = "min_power";
- type = types.str;
+ default = null;
+ type = types.nullOr (types.enum [ "min_power" "max_performance" "medium_power" ]);
description = ''
- Configure the SCSI link power management policy. By default,
- the kernel configures "max_performance".
+ SCSI link power management policy. The kernel default is
+ "max_performance".
'';
};
@@ -22,25 +23,10 @@ with lib;
###### implementation
- config = mkIf (config.powerManagement.scsiLinkPolicy != "") {
-
- jobs."scsi-link-pm" =
- { description = "SCSI Link Power Management Policy";
-
- startOn = "stopped udevtrigger";
-
- task = true;
-
- unitConfig.ConditionPathIsReadWrite = "/sys/class/scsi_host";
-
- script = ''
- shopt -s nullglob
- for x in /sys/class/scsi_host/host*/link_power_management_policy; do
- echo ${config.powerManagement.scsiLinkPolicy} > $x
- done
- '';
- };
-
+ config = mkIf (cfg != null) {
+ services.udev.extraRules = ''
+ SUBSYSTEM=="scsi_host", ACTION=="add", KERNEL=="host*", ATTR{link_power_management_policy}="${cfg}"
+ '';
};
}
diff --git a/pkgs/applications/altcoins/dashpay.nix b/pkgs/applications/altcoins/dashpay.nix
index 68a0926c466..2e9f17017a2 100644
--- a/pkgs/applications/altcoins/dashpay.nix
+++ b/pkgs/applications/altcoins/dashpay.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
'';
homepage = http://dashpay.io;
maintainers = with maintainers; [ AndersonTorres ];
- platforms = with platforms; unix;
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 67ec6b5a419..8b15fea8b86 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -4,12 +4,12 @@
}:
stdenv.mkDerivation rec {
- version = "2.0.5";
+ version = "2.1.1";
name = "audacity-${version}";
src = fetchurl {
- url = "http://audacity.googlecode.com/files/audacity-minsrc-${version}.tar.xz";
- sha256 = "0y9bvc3a3zxsk31yg7bha029mzkjiw5i9m86kbyj7x8ps0fm91z2";
+ url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
+ sha256 = "15c5ff7ac1c0b19b08f4bdcb0f4988743da2f9ed3fab41d6f07600e67cb9ddb6";
};
preConfigure = /* we prefer system-wide libs */ ''
@@ -28,11 +28,11 @@ stdenv.mkDerivation rec {
]; #ToDo: detach sbsms
dontDisableStatic = true;
- doCheck = true;
+ doCheck = false; # Test fails
meta = {
description = "Sound editor with graphical UI";
- homepage = http://audacity.sourceforge.net;
+ homepage = http://audacityteam.org/;
license = stdenv.lib.licenses.gpl2Plus;
platforms = with stdenv.lib.platforms; linux;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
diff --git a/pkgs/applications/audio/cava/default.nix b/pkgs/applications/audio/cava/default.nix
index c1b5aef333b..456a22ee697 100644
--- a/pkgs/applications/audio/cava/default.nix
+++ b/pkgs/applications/audio/cava/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
description = "Console-based Audio Visualizer for Alsa";
homepage = https://github.com/karlstav/cava;
maintainers = with maintainers; [offline];
- platforms = with platforms; linux;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/audio/helm/default.nix b/pkgs/applications/audio/helm/default.nix
new file mode 100644
index 00000000000..7be510a6418
--- /dev/null
+++ b/pkgs/applications/audio/helm/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchgit, xorg, freetype, alsaLib, libjack2
+, lv2, pkgconfig, mesa }:
+
+stdenv.mkDerivation rec {
+ name = "helm-git-2015-09-11";
+
+ src = fetchgit {
+ url = "https://github.com/mtytel/helm.git";
+ rev = "ad798d4a0a2e7db52e1a7451176ff198a393cdb4";
+ sha256 = "0ic4xjikq7s2p53507ykv89844j6sqcd9mh3y59a6wnslr5wq1cw";
+ };
+
+ buildInputs = [
+ xorg.libX11 xorg.libXcomposite xorg.libXcursor xorg.libXext
+ xorg.libXinerama xorg.libXrender xorg.libXrandr
+ freetype alsaLib libjack2 pkgconfig mesa lv2
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/lib/lv2
+ cp -a standalone/builds/linux/build/* $out/bin
+ cp -a builds/linux/LV2/* $out/lib/lv2/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = http://tytel.org/helm;
+ description = "A free, cross-platform, polyphonic synthesizer";
+ longDescription = ''
+ A free, cross-platform, polyphonic synthesizer.
+ Features:
+ 32 voice polyphony
+ Interactive visual interface
+ Powerful modulation system with live visual feedback
+ Dual oscillators with cross modulation and up to 15 oscillators each
+ Unison and Harmony mode for oscillators
+ Oscillator feedback and saturation for waveshaping
+ 12 different waveforms
+ 7 filter types with keytracking
+ 2 monophonic and 1 polyphonic LFO
+ Step sequencer
+ Lots of modulation sources including polyphonic aftertouch
+ Simple arpeggiator
+ Effects: Formant filter, stutter, delay
+ '';
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/audio/keyfinder/default.nix b/pkgs/applications/audio/keyfinder/default.nix
index ffd8d071ab2..7706203104c 100644
--- a/pkgs/applications/audio/keyfinder/default.nix
+++ b/pkgs/applications/audio/keyfinder/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
'';
homepage = http://www.ibrahimshaath.co.uk/keyfinder/;
license = licenses.gpl3Plus;
- platforms = with platforms; linux;
+ platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
};
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index bd1597b02ba..e3dc175b339 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -16,11 +16,11 @@ let
};
in stdenv.mkDerivation rec {
name = "atom-${version}";
- version = "1.1.0";
+ version = "1.2.0";
src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
- sha256 = "1rbwwwryhcasqgn2y1d9hvi3n4dag50dh1fd9hmkx4h9nmm3mbi0";
+ sha256 = "05s3kvsz6pzh4gm22aaps1nccp76skfshdzlqwg0qn0ljz58sdqh";
name = "${name}.deb";
};
diff --git a/pkgs/applications/editors/brackets/default.nix b/pkgs/applications/editors/brackets/default.nix
new file mode 100644
index 00000000000..131675486ba
--- /dev/null
+++ b/pkgs/applications/editors/brackets/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, buildEnv, gtk, glib, gdk_pixbuf, alsaLib, nss, nspr, gconf
+, cups, libgcrypt_1_5, makeWrapper, dbus, udev }:
+let
+ bracketsEnv = buildEnv {
+ name = "env-brackets";
+ paths = [
+ gtk glib gdk_pixbuf stdenv.cc.cc alsaLib nss nspr gconf cups libgcrypt_1_5
+ dbus udev
+ ];
+ };
+in
+stdenv.mkDerivation rec {
+ name = "brackets-${version}";
+ version = "1.5";
+
+ src = fetchurl {
+ url = "https://github.com/adobe/brackets/releases/download/release-${version}/Brackets.Release.${version}.64-bit.deb";
+ sha256 = "1fc8wvh9wbcydd1sw20yfnwlfv7nllb6vrssr6hgn80m7i0zl3db";
+ name = "${name}.deb";
+ };
+
+ phases = [ "installPhase" ];
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out
+ ar p $src data.tar.xz | tar -C $out -xJ
+
+ mv $out/usr/* $out/
+ rmdir $out/usr
+ ln -sf $out/opt/brackets/brackets $out/bin/brackets
+
+ ln -s ${udev}/lib/libudev.so.1 $out/opt/brackets/lib/libudev.so.0
+
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${bracketsEnv}/lib:${bracketsEnv}/lib64" \
+ $out/opt/brackets/Brackets
+
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ $out/opt/brackets/Brackets-node
+
+ patchelf \
+ --set-rpath "${bracketsEnv}/lib:${bracketsEnv}/lib64" \
+ $out/opt/brackets/lib/libcef.so
+
+ wrapProgram $out/opt/brackets/brackets \
+ --prefix LD_LIBRARY_PATH : "${bracketsEnv}/lib:${bracketsEnv}/lib64"
+
+ substituteInPlace $out/opt/brackets/brackets.desktop \
+ --replace "Exec=/opt/brackets/brackets" "Exec=brackets"
+ mkdir -p $out/share/applications
+ ln -s $out/opt/brackets/brackets.desktop $out/share/applications/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An open source code editor for the web, written in JavaScript, HTML and CSS";
+ homepage = http://brackets.io/;
+ license = licenses.mit;
+ maintainers = [ maintainers.matejc ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/editors/emacs-modes/jabber/default.nix b/pkgs/applications/editors/emacs-modes/jabber/default.nix
index 781806bedd6..c0ddbc88cf2 100644
--- a/pkgs/applications/editors/emacs-modes/jabber/default.nix
+++ b/pkgs/applications/editors/emacs-modes/jabber/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
homepage = http://emacs-jabber.sourceforge.net/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ astsmtl ];
- platforms = with platforms; linux;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/editors/geany/default.nix b/pkgs/applications/editors/geany/default.nix
index 5dd839d5651..1b99d44bcc5 100644
--- a/pkgs/applications/editors/geany/default.nix
+++ b/pkgs/applications/editors/geany/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchurl, gtk2, which, pkgconfig, intltool, file }:
let
- version = "1.25";
+ version = "1.26";
in
stdenv.mkDerivation rec {
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.geany.org/${name}.tar.bz2";
- sha256 = "8ee41da28cead8c94d433e616d7ababa81727c63e9196ca6758ade3af14a49ef";
+ sha256 = "e38530e87c577e1e9806be3b40e08fb9ee321eb1abc6361ddacdad89c825f90d";
};
buildInputs = [ gtk2 which pkgconfig intltool file ];
diff --git a/pkgs/applications/editors/idea/default.nix b/pkgs/applications/editors/idea/default.nix
index 25e8dbedd68..73471aecb8b 100644
--- a/pkgs/applications/editors/idea/default.nix
+++ b/pkgs/applications/editors/idea/default.nix
@@ -237,25 +237,25 @@ in
idea-community = buildIdea rec {
name = "idea-community-${version}";
- version = "15.0";
- build = "IC-143.381";
+ version = "15.0.1";
+ build = "IC-143.382";
description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
- sha256 = "0d39ipwji76gkc7w5bcl7a94kdz5cwmcnwmvq1lzm06v43jjq51s";
+ sha256 = "1dbwzj12xkv2xw5nrhr779ac24hag0rb96dlagzyxcvc44xigjps";
};
};
idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}";
- version = "15.0";
- build = "IU-143.381";
+ version = "15.0.1";
+ build = "IU-143.382";
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIU-${version}.tar.gz";
- sha256 = "1hw8hqpzkdlp0ilax6anzjybhmjb40s16jblyplqpah065pc8rja";
+ sha256 = "0bw6qvsvhw0nabv01bgsbnl78vimnz2kb280jzv0ikmhxranyk0z";
};
};
diff --git a/pkgs/applications/editors/vim/macvim.nix b/pkgs/applications/editors/vim/macvim.nix
index d69c1e27c4a..69e9ab35e96 100644
--- a/pkgs/applications/editors/vim/macvim.nix
+++ b/pkgs/applications/editors/vim/macvim.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchurl, ncurses, gettext,
- pkgconfig, cscope, python, ruby, tcl, perl, luajit
+{ stdenv, fetchFromGitHub, ncurses, gettext
+, pkgconfig, cscope, python, ruby, tcl, perl, luajit
}:
stdenv.mkDerivation rec {
name = "macvim-${version}";
- version = "7.4.648";
+ version = "7.4.909";
- src = fetchurl {
- url = "https://github.com/genoma/macvim/archive/g-snapshot-32.tar.gz";
- sha256 = "1wqg5sy7krgqg3sj00gb34avg90ga2kbvv09bsxv2267j7agi0iq";
+ src = fetchFromGitHub {
+ owner = "macvim-dev";
+ repo = "macvim";
+ rev = "75aa7774645adb586ab9010803773bd80e659254";
+ sha256 = "0k04jimbms6zffh8i8fjm2y51q01m5kga2n4djipd3pxij1qy89y";
};
enableParallelBuilding = true;
@@ -54,7 +56,16 @@ stdenv.mkDerivation rec {
makeFlags = ''PREFIX=$(out) CPPFLAGS="-Wno-error"'';
+ # This is unfortunate, but we need to use the same compiler as XCode,
+ # but XCode doesn't provide a way to configure the compiler.
+ #
+ # If you're willing to modify the system files, you can do this:
+ # http://hamelot.co.uk/programming/add-gcc-compiler-to-xcode-6/
+ #
+ # But we don't have that option.
preConfigure = ''
+ CC=/usr/bin/clang
+
DEV_DIR=$(/usr/bin/xcode-select -print-path)/Platforms/MacOSX.platform/Developer
configureFlagsArray+=(
"--with-developer-dir=$DEV_DIR"
diff --git a/pkgs/applications/editors/vim/macvim.patch b/pkgs/applications/editors/vim/macvim.patch
index a42ebd4cc03..e8f34aba537 100644
--- a/pkgs/applications/editors/vim/macvim.patch
+++ b/pkgs/applications/editors/vim/macvim.patch
@@ -1,5 +1,5 @@
diff --git a/src/MacVim/MacVim.xcodeproj/project.pbxproj b/src/MacVim/MacVim.xcodeproj/project.pbxproj
-index 1c5ff47..677a2cc 100644
+index c384bf7..bf1ce96 100644
--- a/src/MacVim/MacVim.xcodeproj/project.pbxproj
+++ b/src/MacVim/MacVim.xcodeproj/project.pbxproj
@@ -437,6 +437,8 @@
@@ -27,44 +27,24 @@ index 1c5ff47..677a2cc 100644
PRODUCT_NAME = MacVim;
VERSIONING_SYSTEM = "apple-generic";
WRAPPER_EXTENSION = app;
-
-diff --git a/src/vimtutor b/src/vimtutor
-index 70d9ec7..b565a1a 100755
---- a/src/vimtutor
-+++ b/src/vimtutor
-@@ -16,7 +16,7 @@ seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
- if test "$1" = "-g"; then
- # Try to use the GUI version of Vim if possible, it will fall back
- # on Vim if Gvim is not installed.
-- seq="gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
-+ seq="mvim gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
- shift
- fi
-
-
+diff --git a/src/Makefile b/src/Makefile
+index 84a93f7..e23196d 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -1306,7 +1306,7 @@ MACVIMGUI_SRC = gui.c gui_beval.c MacVim/gui_macvim.m MacVim/MMBackend.m \
+ MacVim/MacVim.m
+ MACVIMGUI_OBJ = objects/gui.o objects/gui_beval.o objects/pty.o \
+ objects/gui_macvim.o objects/MMBackend.o objects/MacVim.o
+-MACVIMGUI_DEFS = -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
++MACVIMGUI_DEFS = -DMACOS_X_UNIX -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
+ MACVIMGUI_IPATH =
+ MACVIMGUI_LIBS_DIR =
+ MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon
diff --git a/src/auto/configure b/src/auto/configure
-index bc9f074..9b9125e 100755
+index cdc0819..8e2fd16 100755
--- a/src/auto/configure
+++ b/src/auto/configure
-@@ -2252,7 +2252,7 @@ rm -f conftest.val
- as_fn_set_status $ac_retval
-
- } # ac_fn_c_compute_int
--cat >auto/config.log <<_ACEOF
-+cat >config.log <<_ACEOF
- This file contains any messages produced by compilers while
- running configure, to aid debugging if configure makes a mistake.
-
-@@ -2262,7 +2262,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
- $ $0 $@
-
- _ACEOF
--exec 5>>auto/config.log
-+exec 5>>config.log
- {
- cat <<_ASUNAME
- ## --------- ##
-@@ -5377,10 +5377,7 @@ $as_echo "no" >&6; }
+@@ -5383,10 +5383,7 @@ $as_echo "no" >&6; }
fi
if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
@@ -76,7 +56,7 @@ index bc9f074..9b9125e 100755
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
-@@ -5716,23 +5713,6 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; }
+@@ -5731,23 +5728,6 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; }
fi
if test "x$MACOSX" = "xyes"; then
@@ -100,18 +80,21 @@ index bc9f074..9b9125e 100755
PERL_LIBS=`echo "$PERL_LIBS" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
PERL_CFLAGS=`echo "$PERL_CFLAGS" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
fi
-@@ -5926,10 +5906,6 @@ __:
+@@ -5954,13 +5934,6 @@ __:
eof
eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
rm -f -- "${tmp_mkf}"
- if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
- "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
- vi_cv_path_python_plibs="-framework Python"
+- if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
+- vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python"
+- fi
- else
if test "${vi_cv_var_python_version}" = "1.4"; then
vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
else
-@@ -5937,7 +5913,6 @@ eof
+@@ -5979,7 +5952,6 @@ eof
fi
vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_BASEMODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
@@ -119,7 +102,7 @@ index bc9f074..9b9125e 100755
fi
-@@ -6004,13 +5979,6 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -6055,13 +6027,6 @@ rm -f core conftest.err conftest.$ac_objext \
$as_echo "no" >&6; }
fi
@@ -133,7 +116,7 @@ index bc9f074..9b9125e 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compile and link flags for Python are sane" >&5
$as_echo_n "checking if compile and link flags for Python are sane... " >&6; }
cflags_save=$CFLAGS
-@@ -6853,11 +6821,7 @@ $as_echo "$tclver - OK" >&6; };
+@@ -6919,11 +6884,7 @@ $as_echo "$tclver - OK" >&6; };
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of Tcl include" >&5
$as_echo_n "checking for location of Tcl include... " >&6; }
@@ -145,7 +128,7 @@ index bc9f074..9b9125e 100755
TCL_INC=
for try in $tclinc; do
if test -f "$try/tcl.h"; then
-@@ -6875,12 +6839,8 @@ $as_echo "" >&6; }
+@@ -6941,12 +6902,8 @@ $as_echo "" >&6; }
if test -z "$SKIP_TCL"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of tclConfig.sh script" >&5
$as_echo_n "checking for location of tclConfig.sh script... " >&6; }
@@ -158,7 +141,7 @@ index bc9f074..9b9125e 100755
for try in $tclcnf; do
if test -f $try/tclConfig.sh; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $try/tclConfig.sh" >&5
-@@ -7050,10 +7010,6 @@ $as_echo "$rubyhdrdir" >&6; }
+@@ -7120,10 +7077,6 @@ $as_echo "$rubyhdrdir" >&6; }
if test -f "$rubylibdir/$librubya"; then
librubyarg="$librubyarg"
RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
@@ -169,41 +152,8 @@ index bc9f074..9b9125e 100755
fi
if test "X$librubyarg" != "X"; then
-@@ -14061,7 +14017,7 @@ fi
-
- _ACEOF
- cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
--exec 5>>auto/config.log
-+exec 5>>config.log
- {
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-@@ -14653,7 +14609,7 @@ if test "$no_create" != yes; then
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-- exec 5>>auto/config.log
-+ exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-
-diff --git a/src/Makefile b/src/Makefile
-index 1c4d104..fff2015 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -1298,7 +1298,7 @@ MACVIMGUI_SRC = gui.c gui_beval.c MacVim/gui_macvim.m MacVim/MMBackend.m \
- MacVim/MacVim.m
- MACVIMGUI_OBJ = objects/gui.o objects/gui_beval.o objects/pty.o \
- objects/gui_macvim.o objects/MMBackend.o objects/MacVim.o
--MACVIMGUI_DEFS = -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
-+MACVIMGUI_DEFS = -DMACOS_X_UNIX -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
- MACVIMGUI_IPATH =
- MACVIMGUI_LIBS_DIR =
- MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon
-
diff --git a/src/if_python.c b/src/if_python.c
-index b356bf7..b7bfa78 100644
+index 1d87cac..9d28df0 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -55,11 +55,7 @@
@@ -219,4 +169,63 @@ index b356bf7..b7bfa78 100644
#if !defined(PY_VERSION_HEX) || PY_VERSION_HEX < 0x02050000
# undef PY_SSIZE_T_CLEAN
- MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon
+diff --git a/src/if_ruby.c b/src/if_ruby.c
+index 1deb83e..ac23878 100644
+--- a/src/if_ruby.c
++++ b/src/if_ruby.c
+@@ -106,17 +106,9 @@
+ # define rb_check_type rb_check_type_stub
+ #endif
+
+-#ifdef FEAT_GUI_MACVIM
+-# include
+-#else
+-# include
+-#endif
++#include
+ #ifdef RUBY19_OR_LATER
+-# ifdef FEAT_GUI_MACVIM
+-# include
+-# else
+-# include
+-# endif
++# include
+ #endif
+
+ #undef off_t /* ruby defines off_t as _int64, Mingw uses long */
+diff --git a/src/vim.h b/src/vim.h
+index 4c93908..edc6bd7 100644
+--- a/src/vim.h
++++ b/src/vim.h
+@@ -308,18 +308,6 @@
+ # define UNUSED
+ #endif
+
+-/* if we're compiling in C++ (currently only KVim), the system
+- * headers must have the correct prototypes or nothing will build.
+- * conversely, our prototypes might clash due to throw() specifiers and
+- * cause compilation failures even though the headers are correct. For
+- * a concrete example, gcc-3.2 enforces exception specifications, and
+- * glibc-2.2.5 has them in their system headers.
+- */
+-#if !defined(__cplusplus) && defined(UNIX) \
+- && !defined(MACOS_X) /* MACOS_X doesn't yet support osdef.h */
+-# include "auto/osdef.h" /* bring missing declarations in */
+-#endif
+-
+ #ifdef __EMX__
+ # define getcwd _getcwd2
+ # define chdir _chdir2
+diff --git a/src/vimtutor b/src/vimtutor
+index 70d9ec7..b565a1a 100755
+--- a/src/vimtutor
++++ b/src/vimtutor
+@@ -16,7 +16,7 @@ seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
+ if test "$1" = "-g"; then
+ # Try to use the GUI version of Vim if possible, it will fall back
+ # on Vim if Gvim is not installed.
+- seq="gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
++ seq="mvim gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
+ shift
+ fi
+
diff --git a/pkgs/applications/graphics/imv/default.nix b/pkgs/applications/graphics/imv/default.nix
index b5d44eb4cce..462f657f2a7 100644
--- a/pkgs/applications/graphics/imv/default.nix
+++ b/pkgs/applications/graphics/imv/default.nix
@@ -3,7 +3,7 @@
}:
stdenv.mkDerivation rec {
- name = "imv";
+ name = "imv-${version}";
version = "1.0.0";
src = fetchFromGitHub {
diff --git a/pkgs/applications/misc/dmenu2/default.nix b/pkgs/applications/misc/dmenu2/default.nix
index 54aec8606cd..9dca8f983a4 100644
--- a/pkgs/applications/misc/dmenu2/default.nix
+++ b/pkgs/applications/misc/dmenu2/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
homepage = https://bitbucket.org/melek/dmenu2;
license = stdenv.lib.licenses.mit;
maintainers = with maintainers; [ cstrahan ];
- platforms = with platforms; all;
+ platforms = platforms.all;
};
}
diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix
index d81061f3207..061a10c6a9f 100644
--- a/pkgs/applications/misc/eaglemode/default.nix
+++ b/pkgs/applications/misc/eaglemode/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
description = "Zoomable User Interface";
license = licenses.gpl3;
maintainers = with maintainers; [ viric ];
- platforms = with platforms; linux;
+ platforms = platforms.linux;
hydraPlatforms = [];
};
}
diff --git a/pkgs/applications/misc/finalterm/default.nix b/pkgs/applications/misc/finalterm/default.nix
index c8e8bb01e5d..2cb22cd62fc 100644
--- a/pkgs/applications/misc/finalterm/default.nix
+++ b/pkgs/applications/misc/finalterm/default.nix
@@ -58,6 +58,6 @@ stdenv.mkDerivation {
'';
license = licenses.gpl3Plus;
maintainers = with maintainers; [ cstrahan ];
- platforms = with platforms; linux;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/keybase/default.nix b/pkgs/applications/misc/keybase/default.nix
index dea0e9062df..bead4e82571 100644
--- a/pkgs/applications/misc/keybase/default.nix
+++ b/pkgs/applications/misc/keybase/default.nix
@@ -32,6 +32,6 @@ in nodePackages.buildNodePackage rec {
license = licenses.mit;
homepage = https://keybase.io/docs/command_line;
maintainers = with maintainers; [manveru];
- platforms = with platforms; linux;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/st/default.nix b/pkgs/applications/misc/st/default.nix
index 1ef8f697aee..234e8b6ba69 100644
--- a/pkgs/applications/misc/st/default.nix
+++ b/pkgs/applications/misc/st/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
homepage = http://st.suckless.org/;
license = stdenv.lib.licenses.mit;
maintainers = with maintainers; [viric];
- platforms = with platforms; linux;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/terminal-notifier/default.nix b/pkgs/applications/misc/terminal-notifier/default.nix
index 2afebec9ee3..dad05d8adb1 100644
--- a/pkgs/applications/misc/terminal-notifier/default.nix
+++ b/pkgs/applications/misc/terminal-notifier/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
meta = with lib; {
maintainers = with maintainers; [ cstrahan ];
- platforms = with platforms; darwin;
+ platforms = platforms.darwin;
};
}
diff --git a/pkgs/applications/networking/browsers/conkeror/default.nix b/pkgs/applications/networking/browsers/conkeror/default.nix
index 007c49b2733..8ade601d484 100644
--- a/pkgs/applications/networking/browsers/conkeror/default.nix
+++ b/pkgs/applications/networking/browsers/conkeror/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation {
homepage = http://conkeror.org/;
license = with licenses; [ mpl11 gpl2 lgpl21 ];
maintainers = with maintainers; [ astsmtl chaoflow ];
- platforms = with platforms; linux;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 336c727ea15..28d342384d7 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/${version}/${source.arch}/${source.locale}/firefox-${version}.tar.bz2";
- inherit (source) sha1;
+ inherit (source) sha256;
};
phases = "unpackPhase installPhase";
diff --git a/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb b/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb
index b7627e52068..c4e14041288 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb
+++ b/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb
@@ -1,6 +1,4 @@
-# TODO share code with thunderbird-bin/generate_sources.rb
-
-require "open-uri"
+# TODO share code with thunderbird-bin/generate_nix.rb
version = if ARGV.empty?
"latest"
@@ -8,38 +6,58 @@ version = if ARGV.empty?
ARGV[0]
end
-base_path = "http://archive.mozilla.org/pub/firefox/releases"
-
-Source = Struct.new(:hash, :arch, :locale, :filename)
-
-sources = open("#{base_path}/#{version}/SHA1SUMS") do |input|
- input.readlines
-end.select do |line|
- /\/firefox-.*\.tar\.bz2$/ === line && !(/source/ === line)
-end.map do |line|
- hash, name = line.chomp.split(/ +/)
- Source.new(hash, *(name.split("/")))
-end.sort_by do |source|
- [source.locale, source.arch]
-end
-
-real_version = sources[0].filename.match(/firefox-([0-9.]*)\.tar\.bz2/)[1]
+base_path = "archive.mozilla.org/pub/firefox/releases"
arches = ["linux-i686", "linux-x86_64"]
+arches.each do |arch|
+ system("wget", "--recursive", "--continue", "--no-parent", "--reject-regex", ".*\\?.*", "--reject", "xpi", "http://#{base_path}/#{version}/#{arch}/")
+end
+
+locales = Dir.glob("#{base_path}/#{version}/#{arches[0]}/*").map do |path|
+ File.basename(path)
+end.sort
+
+locales.delete("index.html")
+locales.delete("xpi")
+
+# real version number, e.g. "30.0" instead of "latest".
+real_version = Dir.glob("#{base_path}/#{version}/#{arches[0]}/#{locales[0]}/firefox-*")[0].match(/firefox-([0-9.]*)/)[1][0..-2]
+
+locale_arch_path_tuples = locales.flat_map do |locale|
+ arches.map do |arch|
+ path = Dir.glob("#{base_path}/#{version}/#{arch}/#{locale}/firefox-*")[0]
+
+ [locale, arch, path]
+ end
+end
+
+paths = locale_arch_path_tuples.map do |tuple| tuple[2] end
+
+hashes = IO.popen(["sha256sum", "--binary", *paths]) do |input|
+ input.each_line.map do |line|
+ $stderr.puts(line)
+
+ line.match(/^[0-9a-f]*/)[0]
+ end
+end
+
+
puts(<<"EOH")
-# This file is generated from generate_nix.rb. DO NOT EDIT.
+# This file is generated from generate_sources.rb. DO NOT EDIT.
# Execute the following command in a temporary directory to update the file.
#
-# ruby generate_source.rb > source.nix
+# ruby generate_sources.rb > sources.nix
{
version = "#{real_version}";
sources = [
EOH
-sources.each do |source|
- puts(%Q| { locale = "#{source.locale}"; arch = "#{source.arch}"; sha1 = "#{source.hash}"; }|)
+locale_arch_path_tuples.zip(hashes) do |tuple, hash|
+ locale, arch, path = tuple
+
+ puts(%Q| { locale = "#{locale}"; arch = "#{arch}"; sha256 = "#{hash}"; }|)
end
puts(<<'EOF')
diff --git a/pkgs/applications/networking/browsers/firefox-bin/sources.nix b/pkgs/applications/networking/browsers/firefox-bin/sources.nix
index 2008822fddc..acbcd075797 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/sources.nix
@@ -1,188 +1,188 @@
-# This file is generated from generate_nix.rb. DO NOT EDIT.
+# This file is generated from generate_sources.rb. DO NOT EDIT.
# Execute the following command in a temporary directory to update the file.
#
-# ruby generate_source.rb > source.nix
+# ruby generate_sources.rb > sources.nix
{
- version = "41.0.2";
+ version = "42.0";
sources = [
- { locale = "ach"; arch = "linux-i686"; sha1 = "f28f6b40891d3e2626c752e94cb671bcd16cf09c"; }
- { locale = "ach"; arch = "linux-x86_64"; sha1 = "b09ff7642423f0c94cd0acea890618dbb986b30a"; }
- { locale = "af"; arch = "linux-i686"; sha1 = "98f6805e3fad98b1ff0ae260318566b279748927"; }
- { locale = "af"; arch = "linux-x86_64"; sha1 = "1297fe1d68644b30d72f74010b4e93cb705ce084"; }
- { locale = "an"; arch = "linux-i686"; sha1 = "0b9bf558713e7172aa1d6082b2ee706772dd7f50"; }
- { locale = "an"; arch = "linux-x86_64"; sha1 = "e1a041106bb1e823359cc8aba5d6774e5622c065"; }
- { locale = "ar"; arch = "linux-i686"; sha1 = "7dc31eb10e280c847b003167cba3566c7566eb8f"; }
- { locale = "ar"; arch = "linux-x86_64"; sha1 = "2ac37f86880230b589bede4326f3a9fc51dc04a6"; }
- { locale = "as"; arch = "linux-i686"; sha1 = "7157ef7c0cddaf2b5203134dd1a9c59257ba4e7b"; }
- { locale = "as"; arch = "linux-x86_64"; sha1 = "2f8f4e33a321dc1a5f2ccf6c12ab564ef47c1351"; }
- { locale = "ast"; arch = "linux-i686"; sha1 = "517d6cea54258e6f37534b7c59b00633e50264ba"; }
- { locale = "ast"; arch = "linux-x86_64"; sha1 = "de74737e383ef9eb33ba9894bead1249d5bdfa17"; }
- { locale = "az"; arch = "linux-i686"; sha1 = "2cb8468902daf4237ec3a307d89523db08256c17"; }
- { locale = "az"; arch = "linux-x86_64"; sha1 = "26556ef189be09392a6dc2f057ab2eb78f1b86d8"; }
- { locale = "be"; arch = "linux-i686"; sha1 = "c27213ffcd4718d5669dfca004ec3517264d1181"; }
- { locale = "be"; arch = "linux-x86_64"; sha1 = "5c50b0b407268161ebaa1a6a1cdc67b4c66ac387"; }
- { locale = "bg"; arch = "linux-i686"; sha1 = "6d8af51f1278731da288ef3638687a31fbc77335"; }
- { locale = "bg"; arch = "linux-x86_64"; sha1 = "cd697af203a4c82afe06271059ba03ff01d81606"; }
- { locale = "bn-BD"; arch = "linux-i686"; sha1 = "1b24d5641b50a2f22e72429d65a2c3bb266fb534"; }
- { locale = "bn-BD"; arch = "linux-x86_64"; sha1 = "e470a6bc6b82c3145bc074b0a8f3b9bfff9bb219"; }
- { locale = "bn-IN"; arch = "linux-i686"; sha1 = "0b2fe41d3ed5ccd9ceb941bdf72c27919258cd92"; }
- { locale = "bn-IN"; arch = "linux-x86_64"; sha1 = "9c0253add017c3747fc59b89561baa1e348207f6"; }
- { locale = "br"; arch = "linux-i686"; sha1 = "ed0292dda6fc1a42d636a10bb0c45f8918e9dc18"; }
- { locale = "br"; arch = "linux-x86_64"; sha1 = "6f3dfed52c47f940de86a42598f7df81ff33f8ca"; }
- { locale = "bs"; arch = "linux-i686"; sha1 = "9c78bd5b4f5be28557cb0576a0faa43b674ce481"; }
- { locale = "bs"; arch = "linux-x86_64"; sha1 = "a2d41fb95f6c8acf6cc5b1bfd0dec5bce661a2e9"; }
- { locale = "ca"; arch = "linux-i686"; sha1 = "9e0149621e049af657f1533a2ceebeb303eea9ff"; }
- { locale = "ca"; arch = "linux-x86_64"; sha1 = "686bf22667c5c621e2182626edc21cb549253f8e"; }
- { locale = "cs"; arch = "linux-i686"; sha1 = "38d487b5c1193608a3c4f9e83978c34f5c70e668"; }
- { locale = "cs"; arch = "linux-x86_64"; sha1 = "2031026f3989429b87eaba9ceef96b7b59921725"; }
- { locale = "cy"; arch = "linux-i686"; sha1 = "27f44852ca65bb2dd61375d7d52eb4a7b30d5cbe"; }
- { locale = "cy"; arch = "linux-x86_64"; sha1 = "148da60b7247c602082c99ae451e62261602d6c4"; }
- { locale = "da"; arch = "linux-i686"; sha1 = "4bec4af409742393fc91ff74689ede4dc872b0c2"; }
- { locale = "da"; arch = "linux-x86_64"; sha1 = "e7a918306d7195a97933761699b74920b9d6bd2e"; }
- { locale = "de"; arch = "linux-i686"; sha1 = "9295267b1d2e308335166e9ceaeedb7c223c6f5c"; }
- { locale = "de"; arch = "linux-x86_64"; sha1 = "adab84a80a4cd32be09c6a90e47f99b4428024bb"; }
- { locale = "dsb"; arch = "linux-i686"; sha1 = "79687bd933bb08a9c789976913a5ae7d90d4ef15"; }
- { locale = "dsb"; arch = "linux-x86_64"; sha1 = "4c307bc31606a579b007cee13d1e7bf3a14f5286"; }
- { locale = "el"; arch = "linux-i686"; sha1 = "02d0e04554ef168b84143b78180b9280c4ce4410"; }
- { locale = "el"; arch = "linux-x86_64"; sha1 = "8c84668f4a856a5b5bcedc694d261bbeab71dfea"; }
- { locale = "en-GB"; arch = "linux-i686"; sha1 = "c5949c47c761ee65707877a9449cd4f9aff3a76a"; }
- { locale = "en-GB"; arch = "linux-x86_64"; sha1 = "c9a2fb70e37861983d33b5fe0c999e6091671fc1"; }
- { locale = "en-US"; arch = "linux-i686"; sha1 = "c6fc2b42f50ae06c7fd91823ed61d755e0356d9b"; }
- { locale = "en-US"; arch = "linux-x86_64"; sha1 = "68664136ec20e48faa4516d6a7d48081a365d3b2"; }
- { locale = "en-ZA"; arch = "linux-i686"; sha1 = "4393198c2b4849d840b0e9c1e5ccbf20cbc9cf79"; }
- { locale = "en-ZA"; arch = "linux-x86_64"; sha1 = "e533254eb720b64ca76ab3507a422e923048a7b7"; }
- { locale = "eo"; arch = "linux-i686"; sha1 = "b4ebd01b5491c5ba159cf239783e4e5caef04690"; }
- { locale = "eo"; arch = "linux-x86_64"; sha1 = "b25dc3f751e89e517f8cb1850ada4fdfbadf9f4a"; }
- { locale = "es-AR"; arch = "linux-i686"; sha1 = "0839ccab9c807979f56346dc2470a56f5581ae68"; }
- { locale = "es-AR"; arch = "linux-x86_64"; sha1 = "a82c320792f2ea05b29c5bc5ed643035d442fb95"; }
- { locale = "es-CL"; arch = "linux-i686"; sha1 = "9d9d9261fbb51a830a10e83037b22e447ad6c27d"; }
- { locale = "es-CL"; arch = "linux-x86_64"; sha1 = "07dee6c8bc2c980ecb8cd8cbb5a63600cf362f5f"; }
- { locale = "es-ES"; arch = "linux-i686"; sha1 = "b01a5d91bdaade225269d3cf11d2084cfd4761cf"; }
- { locale = "es-ES"; arch = "linux-x86_64"; sha1 = "4bfbf00ea35a78de8b090c08757f670c4627eef2"; }
- { locale = "es-MX"; arch = "linux-i686"; sha1 = "7f23abb538237c2ee92877d8f101f4673ac0f2da"; }
- { locale = "es-MX"; arch = "linux-x86_64"; sha1 = "cc75fba6bf1744d22aa74608bf09671b9d81506e"; }
- { locale = "et"; arch = "linux-i686"; sha1 = "b4805599f84bbde52e46c2d171eca6107cba2aba"; }
- { locale = "et"; arch = "linux-x86_64"; sha1 = "2893a417c825ea340c4ff1002679d0b2fd832903"; }
- { locale = "eu"; arch = "linux-i686"; sha1 = "9f44826b49aa5302e1219f593b53d91ae9b158ab"; }
- { locale = "eu"; arch = "linux-x86_64"; sha1 = "01367745cf5e68adedba8459e837d15d4be6bdb4"; }
- { locale = "fa"; arch = "linux-i686"; sha1 = "776a0d78acc1f4cf4f1f6bfb6dfad251ad3ffd97"; }
- { locale = "fa"; arch = "linux-x86_64"; sha1 = "aaa3ee98401cbe9d1e55284260077117eb80b6c2"; }
- { locale = "ff"; arch = "linux-i686"; sha1 = "1294a53f08e1527b215ced2ac588c1f8c4f64c76"; }
- { locale = "ff"; arch = "linux-x86_64"; sha1 = "ea127b16239a3c7916399f824ea0f06201509271"; }
- { locale = "fi"; arch = "linux-i686"; sha1 = "84075e77d0cf621992620c9b1783da1306a83d95"; }
- { locale = "fi"; arch = "linux-x86_64"; sha1 = "1c944f62ead881b5b48288afefb925db7cfbacde"; }
- { locale = "fr"; arch = "linux-i686"; sha1 = "30eeed505e00b77aad1a31a969db78191e87cf87"; }
- { locale = "fr"; arch = "linux-x86_64"; sha1 = "562f2d0c347dc531c8ac663e9ece59691394b148"; }
- { locale = "fy-NL"; arch = "linux-i686"; sha1 = "8679515a53b1ef3f763c7b569ab326704988ca82"; }
- { locale = "fy-NL"; arch = "linux-x86_64"; sha1 = "d8f3db4850fe58c7d059c368993f066d241b021f"; }
- { locale = "ga-IE"; arch = "linux-i686"; sha1 = "508a198d8b02b25587d40ad246d5bdc1a44988b9"; }
- { locale = "ga-IE"; arch = "linux-x86_64"; sha1 = "1a335d85bb0173b71de3d70c1d147cb905166e92"; }
- { locale = "gd"; arch = "linux-i686"; sha1 = "316a75f2ee606b19eb83c5b8cd57258a8a6dc1dc"; }
- { locale = "gd"; arch = "linux-x86_64"; sha1 = "55504df9a96de3319d2b3610512a6e2a2eed9cb9"; }
- { locale = "gl"; arch = "linux-i686"; sha1 = "06be057d4d5480e239b5e368d16efe72c75196a2"; }
- { locale = "gl"; arch = "linux-x86_64"; sha1 = "9026a4497593920a004cc1aec8ef0353144a56da"; }
- { locale = "gu-IN"; arch = "linux-i686"; sha1 = "1149415676f1e3b9c9280c0579e0daff1da4b729"; }
- { locale = "gu-IN"; arch = "linux-x86_64"; sha1 = "6b0047659dbe79c57949baf759ab17c498208d58"; }
- { locale = "he"; arch = "linux-i686"; sha1 = "118dd35ef57c44057da4808884fbc8f8c8181246"; }
- { locale = "he"; arch = "linux-x86_64"; sha1 = "c37aa77d1ff50384c6482efd67fa2fd3c9a13f9f"; }
- { locale = "hi-IN"; arch = "linux-i686"; sha1 = "d9259311610b6fe978f2e45beda9f2a1b78c6cfa"; }
- { locale = "hi-IN"; arch = "linux-x86_64"; sha1 = "b68136415d53dfb865fe82132457abf5016f4df0"; }
- { locale = "hr"; arch = "linux-i686"; sha1 = "a6a6e98ac3932b5332b423a730806e4ee4bf834f"; }
- { locale = "hr"; arch = "linux-x86_64"; sha1 = "34b8017490d86359fa6530fa5c3b1b5b15975c28"; }
- { locale = "hsb"; arch = "linux-i686"; sha1 = "f8560358636bfd0d705b963b248dcdce34bbdb5d"; }
- { locale = "hsb"; arch = "linux-x86_64"; sha1 = "287aba425ef473b8fe5c0ff0a8d75fafd8448bf2"; }
- { locale = "hu"; arch = "linux-i686"; sha1 = "6cbe1731f7d28f91e4ce86e2d8a9816fc35eb3bd"; }
- { locale = "hu"; arch = "linux-x86_64"; sha1 = "797ef6d8493bf3515ba25096dc8daeea8b9513f4"; }
- { locale = "hy-AM"; arch = "linux-i686"; sha1 = "f2b64ab6b75736d93c8480854dc56563624c2b9d"; }
- { locale = "hy-AM"; arch = "linux-x86_64"; sha1 = "8609dd55931b027665e3763ca13b7e6b9a313ca1"; }
- { locale = "id"; arch = "linux-i686"; sha1 = "698a344f8ecf81f2d1a8526a32e3771e8461e809"; }
- { locale = "id"; arch = "linux-x86_64"; sha1 = "291eb09d08e552231726639c9055d53ca5c2c016"; }
- { locale = "is"; arch = "linux-i686"; sha1 = "fb30ef94ce3f31e65c67f176ed7adb59d91cf81e"; }
- { locale = "is"; arch = "linux-x86_64"; sha1 = "ad932eb32b20745f34f91fdd91dc32bda217b19f"; }
- { locale = "it"; arch = "linux-i686"; sha1 = "eae49df656303ae15411d398f998b21bd0e1657d"; }
- { locale = "it"; arch = "linux-x86_64"; sha1 = "5461ae930d32eb51f2ffdcfc5bc22104454088df"; }
- { locale = "ja"; arch = "linux-i686"; sha1 = "addac275389073eef9d0fbc296738eb3a61d532d"; }
- { locale = "ja"; arch = "linux-x86_64"; sha1 = "6e07be0a7261d18b081241d237acb5c8d3f1b3b1"; }
- { locale = "kk"; arch = "linux-i686"; sha1 = "85e79bf11e71b9163fa44e9bae325d10b8efd761"; }
- { locale = "kk"; arch = "linux-x86_64"; sha1 = "1bab828e561666296b5e81bc191139d0f1609764"; }
- { locale = "km"; arch = "linux-i686"; sha1 = "9651d39d746ceaadef2b7eda2bdb766beb4bf649"; }
- { locale = "km"; arch = "linux-x86_64"; sha1 = "3d5ab65a949d78d8be8fc5ef7da2bbfe4fb76175"; }
- { locale = "kn"; arch = "linux-i686"; sha1 = "ce1ba808ae2433cec57c7f46288cc5b19e127fc6"; }
- { locale = "kn"; arch = "linux-x86_64"; sha1 = "8ab3ac9d4e1fcb034a726c85f4de64e8908a752f"; }
- { locale = "ko"; arch = "linux-i686"; sha1 = "34914da7a6e0f1806f04fcb4327a7debdb90a2ea"; }
- { locale = "ko"; arch = "linux-x86_64"; sha1 = "6084229e0f1b0861ad35ac958e8d788918955f1d"; }
- { locale = "lij"; arch = "linux-i686"; sha1 = "a768cadd13ae282e977b44f18e71d232aeba5f56"; }
- { locale = "lij"; arch = "linux-x86_64"; sha1 = "e47841fd4827a907380fe605643898dd8d88cf99"; }
- { locale = "lt"; arch = "linux-i686"; sha1 = "10e8a3d6833f904d181daf974b6da2792681f824"; }
- { locale = "lt"; arch = "linux-x86_64"; sha1 = "411ce9b9b89722de20310bc32b38edb82454ff58"; }
- { locale = "lv"; arch = "linux-i686"; sha1 = "8d2ec7350ba90242a152024681e0812a6260f064"; }
- { locale = "lv"; arch = "linux-x86_64"; sha1 = "9035394603007edd34946d32230386e4ebf861ce"; }
- { locale = "mai"; arch = "linux-i686"; sha1 = "2df94bc41f93706d671de419481d8c90468b9fb0"; }
- { locale = "mai"; arch = "linux-x86_64"; sha1 = "6f534e605bc96dfde98b699ca8b31d7b542f3342"; }
- { locale = "mk"; arch = "linux-i686"; sha1 = "6d83eec6d7b54dad5c926da0efe7f205442ec7f8"; }
- { locale = "mk"; arch = "linux-x86_64"; sha1 = "7e1c3bddcbeadebcaf1a2c0d30940617662f998d"; }
- { locale = "ml"; arch = "linux-i686"; sha1 = "7b8cfb0adf27ca3cbe70b90b45a15e6ce17ecd6c"; }
- { locale = "ml"; arch = "linux-x86_64"; sha1 = "8dada691c38ea84829e8f097d3a4c8c8f92b5dbb"; }
- { locale = "mr"; arch = "linux-i686"; sha1 = "2f2558df6b06b948e1d80a6721021aff6080e23e"; }
- { locale = "mr"; arch = "linux-x86_64"; sha1 = "6f6fda2c3c4194f4ec309c0ff9585c8f5f764f13"; }
- { locale = "ms"; arch = "linux-i686"; sha1 = "3006ffc5a77760fb42f3e3ec47185f09cdb2bd71"; }
- { locale = "ms"; arch = "linux-x86_64"; sha1 = "a5f6a23ba5ee065186fd6abde7678218013a1904"; }
- { locale = "nb-NO"; arch = "linux-i686"; sha1 = "b4418503c6d4c6eb558f5ecbf752014e4daa9940"; }
- { locale = "nb-NO"; arch = "linux-x86_64"; sha1 = "8551b8464566f57313b394de089545c5e3d30673"; }
- { locale = "nl"; arch = "linux-i686"; sha1 = "e2fb71322600bee83e601309c956c8192dbdf2d7"; }
- { locale = "nl"; arch = "linux-x86_64"; sha1 = "042a29623fca08048dddb2e3ecbde03fd4453d36"; }
- { locale = "nn-NO"; arch = "linux-i686"; sha1 = "f72a166a539df1e45f8d9c5cd5529b2d0d01e813"; }
- { locale = "nn-NO"; arch = "linux-x86_64"; sha1 = "f66d7d7f6218cd0f320ad1061aead0733ccab242"; }
- { locale = "or"; arch = "linux-i686"; sha1 = "81f146d076fc68fd87956001b31a34adac1d1af0"; }
- { locale = "or"; arch = "linux-x86_64"; sha1 = "87d7d7a747f83a26b1f9b501d902e88032af38da"; }
- { locale = "pa-IN"; arch = "linux-i686"; sha1 = "49239260e0abb385e5b3c6ae23c0a809306402e8"; }
- { locale = "pa-IN"; arch = "linux-x86_64"; sha1 = "105fae6a1e1e9a4ae186054c6bcb418ab607d587"; }
- { locale = "pl"; arch = "linux-i686"; sha1 = "4f5d41cbe93f931d3751b7cf229ea0781edf9c7c"; }
- { locale = "pl"; arch = "linux-x86_64"; sha1 = "0cce4925e602d36e9c25a6691b60dc61680c45bb"; }
- { locale = "pt-BR"; arch = "linux-i686"; sha1 = "3b98ed2e3186ef2b6cd418fa45faec6a5acbbdd2"; }
- { locale = "pt-BR"; arch = "linux-x86_64"; sha1 = "ccaab26ba92b44b60a1de4e1d75504e0233cbc76"; }
- { locale = "pt-PT"; arch = "linux-i686"; sha1 = "159941d190c72b219586450acf1214f039d7207b"; }
- { locale = "pt-PT"; arch = "linux-x86_64"; sha1 = "c650d657e97653364926ad1b877d3a186d3d6dca"; }
- { locale = "rm"; arch = "linux-i686"; sha1 = "2b79dbc77bbf971a2856ae80107fabe0aa0e18cb"; }
- { locale = "rm"; arch = "linux-x86_64"; sha1 = "e8584e6791dd50626cd9dcafe45e5536a1eb35fd"; }
- { locale = "ro"; arch = "linux-i686"; sha1 = "8083ae297080f3543751a24ca3f8638a8bbc2a02"; }
- { locale = "ro"; arch = "linux-x86_64"; sha1 = "43967d6adbe01454696de9330f056731048458a9"; }
- { locale = "ru"; arch = "linux-i686"; sha1 = "c939bd0154475d4c3153446b6f6de1d5e17b1215"; }
- { locale = "ru"; arch = "linux-x86_64"; sha1 = "58bc5cb7c33063455ea2ed79da9b9c38d2a8e061"; }
- { locale = "si"; arch = "linux-i686"; sha1 = "4f66548142a828b9331f9588955eeae7ff8b4ffd"; }
- { locale = "si"; arch = "linux-x86_64"; sha1 = "795f8920aafdf38feae90d6cf9013bb4da4d275c"; }
- { locale = "sk"; arch = "linux-i686"; sha1 = "7fc858a8bea682e6c4b0b46dc0036f5b33d569b6"; }
- { locale = "sk"; arch = "linux-x86_64"; sha1 = "15c049314dd8beb396c4f8f169b5c5d522d53d31"; }
- { locale = "sl"; arch = "linux-i686"; sha1 = "2abcb66b66093b4b5a5c502d50b395d3967d5375"; }
- { locale = "sl"; arch = "linux-x86_64"; sha1 = "deda484b890c22c0c15845891eb5ece860ecbca2"; }
- { locale = "son"; arch = "linux-i686"; sha1 = "b031c68c64e77ae2e6332c141f367052afb571ba"; }
- { locale = "son"; arch = "linux-x86_64"; sha1 = "2e6b18cb89b6bb6299caa0dd3c128e170984f394"; }
- { locale = "sq"; arch = "linux-i686"; sha1 = "88295bd36eaa1ec0ba42b1b2eb8af581ef2efe51"; }
- { locale = "sq"; arch = "linux-x86_64"; sha1 = "8e8b4782d6352bfe055482c2d82bc5356bb8059c"; }
- { locale = "sr"; arch = "linux-i686"; sha1 = "399cd05823725f4e5d5514aad3c32716a7b69fb3"; }
- { locale = "sr"; arch = "linux-x86_64"; sha1 = "d78069ed45897c256860cb7a2be74c42906f277c"; }
- { locale = "sv-SE"; arch = "linux-i686"; sha1 = "90b136366b4309258417725c7979e424cd20236e"; }
- { locale = "sv-SE"; arch = "linux-x86_64"; sha1 = "e604010468adfb6d6925c3d6e82b95a6836bd645"; }
- { locale = "ta"; arch = "linux-i686"; sha1 = "d81a2a85e1f01f55d8e65b82d703a89391aff87a"; }
- { locale = "ta"; arch = "linux-x86_64"; sha1 = "dbbd03bf0deae8dd50c264217c38d66eb8f6abb6"; }
- { locale = "te"; arch = "linux-i686"; sha1 = "b9e27b19acdf0c6c97b85361e51d04ef4dfb71ef"; }
- { locale = "te"; arch = "linux-x86_64"; sha1 = "a78bffc96adcedc797cd328c3aeda5cb59ff5154"; }
- { locale = "th"; arch = "linux-i686"; sha1 = "df7728a57a7f46035b5a5b491c34110a1871316c"; }
- { locale = "th"; arch = "linux-x86_64"; sha1 = "8ccd4665a12b5db9ab8457c2363243a1cbcd05ed"; }
- { locale = "tr"; arch = "linux-i686"; sha1 = "49dca58d2925f70c8ec7fd7d28d04475c05acff1"; }
- { locale = "tr"; arch = "linux-x86_64"; sha1 = "ae887516cf189462a38240d62a608f1bd86713fa"; }
- { locale = "uk"; arch = "linux-i686"; sha1 = "fa1d11f740987538c0ca3967b3428a341e2f1c8d"; }
- { locale = "uk"; arch = "linux-x86_64"; sha1 = "f65ae80186d0fa616197ee46968ec94c0dbebc2d"; }
- { locale = "uz"; arch = "linux-i686"; sha1 = "69b24ed58ca2db356bf97c809f91b3551e9f1b20"; }
- { locale = "uz"; arch = "linux-x86_64"; sha1 = "2fb40c9c55f1e0eb83602fa7cb06415846657b67"; }
- { locale = "vi"; arch = "linux-i686"; sha1 = "1817398c00bfff76c09151450cba4e901c0fd93a"; }
- { locale = "vi"; arch = "linux-x86_64"; sha1 = "f754bb817367da0640e6bfbe53129a4221250751"; }
- { locale = "xh"; arch = "linux-i686"; sha1 = "8c3a7a0da6775d06b75d74e763add35eb2b02969"; }
- { locale = "xh"; arch = "linux-x86_64"; sha1 = "724db968c33bfd30540ddb36f8d26e19073aa328"; }
- { locale = "zh-CN"; arch = "linux-i686"; sha1 = "de2b4c514a237f120bb0d9de5039a75b8bb519b0"; }
- { locale = "zh-CN"; arch = "linux-x86_64"; sha1 = "6b6f8caece54a911124b33c3fce9233d760ae46e"; }
- { locale = "zh-TW"; arch = "linux-i686"; sha1 = "aa85f39ee92c62d2d1809cf50e158f04a1bb88ea"; }
- { locale = "zh-TW"; arch = "linux-x86_64"; sha1 = "0f859da4a12559d8b28411b5206b17739ddf869b"; }
+ { locale = "ach"; arch = "linux-i686"; sha256 = "f45ceba774989f09e6adb226f0e189c69092d9eccf67722b1876695d94b6a988"; }
+ { locale = "ach"; arch = "linux-x86_64"; sha256 = "78f64d02e5a1548e0b9b9f9c36f1eb151dbc0212805f09658d61a35c8ef94380"; }
+ { locale = "af"; arch = "linux-i686"; sha256 = "a3cb08c2d3879d46a2fe6b9567664d4c4a996bf10560079936d221e9588c5b76"; }
+ { locale = "af"; arch = "linux-x86_64"; sha256 = "c580f19ac9909d28e5f3d55c3347893e088471a0fc7f4cb2e42fb1481218a1d3"; }
+ { locale = "an"; arch = "linux-i686"; sha256 = "61a4fa6a4c3a8c814d3d81bf51e1780c148e366fe1355e621523f419d5e4c583"; }
+ { locale = "an"; arch = "linux-x86_64"; sha256 = "2bbc6591669258fbc46944577ce6a4a091772b1cb8a4430d88d3f1b911da770c"; }
+ { locale = "ar"; arch = "linux-i686"; sha256 = "1aa9e3e21c3d678135f009f8541999a18ea38ade9ae3d21b8da07a60d22eab91"; }
+ { locale = "ar"; arch = "linux-x86_64"; sha256 = "eef01a5315eab457073ff01a51382a46200e84a6e87a91a3e38ab865b3304430"; }
+ { locale = "as"; arch = "linux-i686"; sha256 = "e3949cd85c439f72e8051ece5c22b18f6802e29311b84c5e88b124ea72ced52f"; }
+ { locale = "as"; arch = "linux-x86_64"; sha256 = "59178756fcd409765ff88324133bccdd0e43d2961a0fa15e2e53f7ed4fea3bac"; }
+ { locale = "ast"; arch = "linux-i686"; sha256 = "88440f3f572421c0a7c2e95f3517289a33de474766185bacc0b93ef09673f1df"; }
+ { locale = "ast"; arch = "linux-x86_64"; sha256 = "ce6fec215b11ecc2e5bd74d2dc47a09de9bcbf3df18e8f270c83967e605985a7"; }
+ { locale = "az"; arch = "linux-i686"; sha256 = "1b0e3ce4799e4cf3bf6129298895e8aa48c38b6b138c5ebfdd694ae8811e51af"; }
+ { locale = "az"; arch = "linux-x86_64"; sha256 = "6e0b73fc25a68d57117259043fd5bbd6dfbc8e32ba4090233303c5bf57d858b4"; }
+ { locale = "be"; arch = "linux-i686"; sha256 = "c50492edb43b2d306c664bb174f89392e68a530eec4fef2aa39335b9d12b0e32"; }
+ { locale = "be"; arch = "linux-x86_64"; sha256 = "2057d21e45538be260d723cf11bb36e32c79d87530fc19852a2f342d825d75cc"; }
+ { locale = "bg"; arch = "linux-i686"; sha256 = "f87522d234e50d50509ead2800a804131b769235006aada0a379e46d290b6cc1"; }
+ { locale = "bg"; arch = "linux-x86_64"; sha256 = "8793acfd7bbcc47e9ee19cfc2cb265a71f7dea5e98222fc541ae66c29bd8c39d"; }
+ { locale = "bn-BD"; arch = "linux-i686"; sha256 = "d55de132e4d6c49053d2c843f91f7410188f62ee3e4bb56ac8b4370f55475274"; }
+ { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "a5798d40795689f2c92cfd8cc3605c4a30e23e39d8db43a8e7415cb9e4c75a55"; }
+ { locale = "bn-IN"; arch = "linux-i686"; sha256 = "28fd24e8e3069de9d1f81aff9e3671a806470e56f17ab0193566c8709eb1c268"; }
+ { locale = "bn-IN"; arch = "linux-x86_64"; sha256 = "dd5b97f1b3acdb2ab1a2f75b4c236ce2b68365840ea6b3703969e57b2eaaf927"; }
+ { locale = "br"; arch = "linux-i686"; sha256 = "5dd3132f6543c7dd5bf062d1222782b4bfd38b3f95088e2881c0b6f4362f1e3d"; }
+ { locale = "br"; arch = "linux-x86_64"; sha256 = "69ff22dc400cbaa75e9799929fd2496e8e2db6c5549d848abf642f58e73ad825"; }
+ { locale = "bs"; arch = "linux-i686"; sha256 = "bfe4feb86124cde6ebd0e2449b5301657f1d62a073e98c888e81307832441b45"; }
+ { locale = "bs"; arch = "linux-x86_64"; sha256 = "878712c2ff34e27181f8477440b2489c8c4c8b1cd2f6a03724ee4b9b5eabd031"; }
+ { locale = "ca"; arch = "linux-i686"; sha256 = "a5fd111a60b81a11b233bc2720ca58a307d883a84cb2212644dc07a0acd8ed88"; }
+ { locale = "ca"; arch = "linux-x86_64"; sha256 = "c8df6e52d22907615c0198a9c061d5836e43427e66964d9235662d1673ec0573"; }
+ { locale = "cs"; arch = "linux-i686"; sha256 = "6f0ad2a1ec219a8aef9c762235fafc8113a06754aaab2c141812f9f062c1a0c4"; }
+ { locale = "cs"; arch = "linux-x86_64"; sha256 = "d4a1c8becbeb05da17ffb6d1ba8625b7286a1591fc5f141202542ce769c29c13"; }
+ { locale = "cy"; arch = "linux-i686"; sha256 = "4bae504ae202fbc75244fd476de80857dc33fe6a7dd3da2555e7efba279a5089"; }
+ { locale = "cy"; arch = "linux-x86_64"; sha256 = "2133795258e00be82219dbd5f288ab76e5b218a4d298224fedcaf02ddc049b07"; }
+ { locale = "da"; arch = "linux-i686"; sha256 = "64fbcfa9c645dd0986b85de286347eb223c81db45e405b2e29df47527edfe55a"; }
+ { locale = "da"; arch = "linux-x86_64"; sha256 = "58af00c544e5a2c9a98cc2cb896db80052ee12e31d4215ae4b08862ac3d3caa3"; }
+ { locale = "de"; arch = "linux-i686"; sha256 = "b8a48b676494ec7c9af8d24678dd1c719871c297887431b9360dea67d9bafb48"; }
+ { locale = "de"; arch = "linux-x86_64"; sha256 = "8d6bc67c1db287c00c8782cb33b03ba0076f1b89064cdd0ddefcb37bffddbc68"; }
+ { locale = "dsb"; arch = "linux-i686"; sha256 = "955968db11698942a86b79a9f5258c4636121e9c3350dfad70eab375f87c08e3"; }
+ { locale = "dsb"; arch = "linux-x86_64"; sha256 = "f34efb2d427e23ea34a1f24cbbe32d6ce384e1e4055a83afc1d336bb31481095"; }
+ { locale = "el"; arch = "linux-i686"; sha256 = "bff3a1efcaed403d2e465b92a88076fc0525534593d977423811c30a4abc757a"; }
+ { locale = "el"; arch = "linux-x86_64"; sha256 = "0d83d214eb61c3d248291141fa6b5e29d72f62a030be39dc4ee7c1781424c421"; }
+ { locale = "en-GB"; arch = "linux-i686"; sha256 = "593041d5b07665134bd61866b706e11f10168df72c9a033034e95fdecaa6f65c"; }
+ { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "eab33978a3cd15ad3ed86efd72eda53e65f6addfd352f1f372d8133fea7edc6b"; }
+ { locale = "en-US"; arch = "linux-i686"; sha256 = "2c44f8ef07896f3e4c4ee555e35ebe5658f2721fdbdee4c70b153387472b781e"; }
+ { locale = "en-US"; arch = "linux-x86_64"; sha256 = "e3077ca9aa246154acad2a264489e7cc68864035873e6c6d54b7fb3f9b832fd7"; }
+ { locale = "en-ZA"; arch = "linux-i686"; sha256 = "8b78e83769d468dd7d5e9964ca99fd745f82341f8a426e7af82671c4515c8e70"; }
+ { locale = "en-ZA"; arch = "linux-x86_64"; sha256 = "631da5975f08807bfa4519c1265d082bb6de8ba6b39bbf6c903e08cf5c85b2a3"; }
+ { locale = "eo"; arch = "linux-i686"; sha256 = "16556716bb0cfcfade4c705bc641317c423dda976f68a1a78bf1b1df08883725"; }
+ { locale = "eo"; arch = "linux-x86_64"; sha256 = "cb21a5ea8cb9ded9eb729864d20a538275b8f29e9b7a10ea9d9dcb2b7a2368b3"; }
+ { locale = "es-AR"; arch = "linux-i686"; sha256 = "3b830fc45a2ad62253d51eb53ae2cf6345bcc2a348e43e5aa19a001506fe3f6e"; }
+ { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "9ede597d11d798c4369b74e74a67564152a793f4d2a655f422176a1e03d0f6f9"; }
+ { locale = "es-CL"; arch = "linux-i686"; sha256 = "1384df5e31f49f8f647e21f1d5d4f3a2229dce389857219745d2e2e325c894b4"; }
+ { locale = "es-CL"; arch = "linux-x86_64"; sha256 = "e1a56a69687e9fe0979602b9256b5f8f3e05596e8af23fc78b0459ad66950158"; }
+ { locale = "es-ES"; arch = "linux-i686"; sha256 = "258a3ded204f66d20370f4ca34d668da38921302ba6844bb6b49525a911ef1f5"; }
+ { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "6563107eaadfad91f29b5d3084068ddf2b2959723f0bf38f8287e9b71dfafe68"; }
+ { locale = "es-MX"; arch = "linux-i686"; sha256 = "00253b3a1c28f55199c74d1cce9fa1aff5cf6a7b3f77385f18836b36c961cbd1"; }
+ { locale = "es-MX"; arch = "linux-x86_64"; sha256 = "897bfc04b17334ac1499a50c0fede1dda4dd9f667801d50a3c7221409158a39a"; }
+ { locale = "et"; arch = "linux-i686"; sha256 = "fb4c11f82c492d02f15817c19d4450049ce8532741d6c2733302e06a77ed768a"; }
+ { locale = "et"; arch = "linux-x86_64"; sha256 = "9e4c22e0e430bab1a85d83f8e77245390ecadc2af9c6fc6d408a1ccb388b5c5c"; }
+ { locale = "eu"; arch = "linux-i686"; sha256 = "4be07916499253dee47572b0fe03318050f601ecd34a2578e3daaa2423ea0223"; }
+ { locale = "eu"; arch = "linux-x86_64"; sha256 = "414366c5de7bd58f620a86d69b3fc618b4f2a41103e073197ed6f6326cb34173"; }
+ { locale = "fa"; arch = "linux-i686"; sha256 = "84dd27e9f3f3736c2364f995b460a401ceccb5df88b9420fc5c4e10bed714ebd"; }
+ { locale = "fa"; arch = "linux-x86_64"; sha256 = "e1e19b3a13e48ae5db809d781ed94a079dfcc23fef7b084e18589863fdda1e16"; }
+ { locale = "ff"; arch = "linux-i686"; sha256 = "7de7ded84b96c8208796336b079294cb163e5a1717e7f0263fdbdf061bbd77a2"; }
+ { locale = "ff"; arch = "linux-x86_64"; sha256 = "0c57b47227db17ec0b5cf05b2c839d01ef09e85e062af145cb063e9b431201a0"; }
+ { locale = "fi"; arch = "linux-i686"; sha256 = "7bd42dd0dc3f3a9328f41f06f5f4409b611d17e1f3c71dc68b4f87aa1a5403ef"; }
+ { locale = "fi"; arch = "linux-x86_64"; sha256 = "32aed7d397353791d0eeb4d64003ddc0206f43308020e4e003877741bbc4246a"; }
+ { locale = "fr"; arch = "linux-i686"; sha256 = "274fb64798147b96c49117444a55b0d27da1ce58c64d0c72a8f4f2445ef8dcfa"; }
+ { locale = "fr"; arch = "linux-x86_64"; sha256 = "17f3af176ce83481678ba5b496a6c576af1ad01a858714cec0c613219ef78105"; }
+ { locale = "fy-NL"; arch = "linux-i686"; sha256 = "ef2a32e783456b8be56cc2fe16c4c9f80e174f5cbea5fcb0ffaa9dccc498c1bc"; }
+ { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "76742465bfb95935e3f5531ef52f0d13021454887f20b5c60d903142e8bf29b7"; }
+ { locale = "ga-IE"; arch = "linux-i686"; sha256 = "e23cd7c54f08fd952c40d88811ac0a8be7c54b8c44e8e948961c063bd833d720"; }
+ { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "5f37a8add1753e41a75a1cd8f1edeeae0da89987939684e4f7ef46e139c0f2b6"; }
+ { locale = "gd"; arch = "linux-i686"; sha256 = "1f65eeaa2e213a9a1bd48e12b978faf21a5cbc4db4e6257edd373c7f08fc63a6"; }
+ { locale = "gd"; arch = "linux-x86_64"; sha256 = "25398b31be953a54107a38ea9476047e0ad6de8083d1330594522d261ef4f5de"; }
+ { locale = "gl"; arch = "linux-i686"; sha256 = "13ec763f279c39b0a0082fde0331cde9cc3d9a3aa5155b8853c7acb92bd18d0b"; }
+ { locale = "gl"; arch = "linux-x86_64"; sha256 = "46208cc319062483f85c5d801bc4822869bce916f78d2dd36670592794a266c3"; }
+ { locale = "gu-IN"; arch = "linux-i686"; sha256 = "fad30f5fdcf5622b80f391bf2e957466e8955f23b91be2022ab5cc550b993d08"; }
+ { locale = "gu-IN"; arch = "linux-x86_64"; sha256 = "4ef6713e394c72b5d9a5d49899ef952a4587a2f1e0b52307b5062d6807de8ba0"; }
+ { locale = "he"; arch = "linux-i686"; sha256 = "211cafe7a39b45ca1cf471b2029f8981a26517114fcad3b40f0c5cd702988ee5"; }
+ { locale = "he"; arch = "linux-x86_64"; sha256 = "ad85f5b69ff0d15f0eb17e81e5976635b3319f583938e0c2dcf59badcea71cc2"; }
+ { locale = "hi-IN"; arch = "linux-i686"; sha256 = "8ec9ccd458b231d873e4272968be09b50d1629280014deacb2a74a754123208e"; }
+ { locale = "hi-IN"; arch = "linux-x86_64"; sha256 = "1c78e8adb1047be3be2bb6bae776d1fb3e32b6bd888877d33abcbd56b858f70b"; }
+ { locale = "hr"; arch = "linux-i686"; sha256 = "64436c22be8c7a873634de4d7677c93427c9307be40a95fa73dc509d32900a20"; }
+ { locale = "hr"; arch = "linux-x86_64"; sha256 = "4485174c761aa49bebc7bbdd5d50ceb2ca70477560406b880181ee4ab5f51b26"; }
+ { locale = "hsb"; arch = "linux-i686"; sha256 = "d5e6eb225d04124a9582e31de8c996512b9816bcaa72c4ef8d373f3cb77536be"; }
+ { locale = "hsb"; arch = "linux-x86_64"; sha256 = "65642995943763d35a9816a02d95d3ad7c26f388a731749c96446308bad0d13d"; }
+ { locale = "hu"; arch = "linux-i686"; sha256 = "2e4a1602fe3dc83f99b60df358e809cfc831d0c173d0fb1a0b5d0bcc8d5fd0be"; }
+ { locale = "hu"; arch = "linux-x86_64"; sha256 = "39592f757f6066e060446cf9ac051cad58ae5e457dea5d28be8e6573a7712b3b"; }
+ { locale = "hy-AM"; arch = "linux-i686"; sha256 = "e11c1f746e472855c99706d597107426e4f411ed6ab8f3066417a4bf788f6db7"; }
+ { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "34fb58fc187a4afafe45f8b9463f725404bfc9fbb8374bbccd95fbe6a6127cfa"; }
+ { locale = "id"; arch = "linux-i686"; sha256 = "33c1870c5be769d051ff52d0512253316357925c4074c9760ffdd7ae5eb38680"; }
+ { locale = "id"; arch = "linux-x86_64"; sha256 = "f10a83c55a7164a88c387cff02d5fbca483901b8bface790fd064dc456637004"; }
+ { locale = "is"; arch = "linux-i686"; sha256 = "312eb8e2613e6723182f1392b0d654488facd31866922241ec7366be3259b42c"; }
+ { locale = "is"; arch = "linux-x86_64"; sha256 = "d850e5c4e18b1f3daeec9508f3d1a19771109a449a8b40106e20154c3128a43a"; }
+ { locale = "it"; arch = "linux-i686"; sha256 = "782d2e791c1c241e068a7041244def8d3983c7d65372b8297f54010ed2723db5"; }
+ { locale = "it"; arch = "linux-x86_64"; sha256 = "dcec427d3c22e7081d4657ea336aa3a2d1b728cc2ae917aadd89f1021fa53e44"; }
+ { locale = "ja"; arch = "linux-i686"; sha256 = "8f36b884b8480a225a68a1f3583408132b58511bd3666a04c21a88d8ab9e1387"; }
+ { locale = "ja"; arch = "linux-x86_64"; sha256 = "2727864ae1ebc4e0186214297d59cc531a06306059ccfd4a59d83a084cef81c0"; }
+ { locale = "kk"; arch = "linux-i686"; sha256 = "50d46466bd31723f3116db503dba0b5d095679233ded63173b8b31740afa8ecc"; }
+ { locale = "kk"; arch = "linux-x86_64"; sha256 = "5ae23bb07acdbfb45e49eb4afdbb6c84a00331f8c5c9824b9756e2e87f927934"; }
+ { locale = "km"; arch = "linux-i686"; sha256 = "13e32146820f31f0c87f38b3cb636a6a25c5bdb2dbf3befc909f459b33c0ac71"; }
+ { locale = "km"; arch = "linux-x86_64"; sha256 = "f81eebb081309200f2cec0cf742ac3aebe06ac09948a05af0961a572bc06b0a1"; }
+ { locale = "kn"; arch = "linux-i686"; sha256 = "8db58576cbd2cb8f8c61d4278dcd0594c92fa707770255f1397272dacfb420c6"; }
+ { locale = "kn"; arch = "linux-x86_64"; sha256 = "3a2002a54057c062ef720894147486c68b60e21c4bc57435b2ab1fe0f03f11e7"; }
+ { locale = "ko"; arch = "linux-i686"; sha256 = "0e0f221ec6917635ea8519473a447ee8a572a439cfd2f5de1e1b4d63cfb1e1a8"; }
+ { locale = "ko"; arch = "linux-x86_64"; sha256 = "ea4dfbad71d63702377b6a1641667b88ffa270cf37f77e223a88ed2ed6385f3f"; }
+ { locale = "lij"; arch = "linux-i686"; sha256 = "92af63912444d8ccc43f4b0fa1ec25ad988db4117dc15e58a31c2b783e2922dd"; }
+ { locale = "lij"; arch = "linux-x86_64"; sha256 = "c93f0e90125fb58b6f9d3281ac580bf46ce7481bbcb5d0162661c7049e7116e8"; }
+ { locale = "lt"; arch = "linux-i686"; sha256 = "ff6a933c13e5d0bcab3e09915c09489d441f191f06a915ac5953334ae2a613bb"; }
+ { locale = "lt"; arch = "linux-x86_64"; sha256 = "d82c44370c3b86230c86933a91e533e51c1ff6c6e515ee6a2b53d7aca105694c"; }
+ { locale = "lv"; arch = "linux-i686"; sha256 = "7595254788ecc0845cd98f9524e20ef0dc2ec01c6efc3e8289b7c930b37fc604"; }
+ { locale = "lv"; arch = "linux-x86_64"; sha256 = "a349ae40d4bd2bc0be0517bcd2f3149796687a1a3bf31527e92d7bae3020e839"; }
+ { locale = "mai"; arch = "linux-i686"; sha256 = "4ef3e22d7bea09ccf7a75759725cd3db5ffec1b486026f3d0afee06293e01c3f"; }
+ { locale = "mai"; arch = "linux-x86_64"; sha256 = "2a6c645773c6ec3230ae66f850d151fd8ccbe4d65e5d3b241948341b003c2fe8"; }
+ { locale = "mk"; arch = "linux-i686"; sha256 = "d50d81cb4eab09166d6636c2964143b5fa7cdf909b5eb2eddb2103679f86ba71"; }
+ { locale = "mk"; arch = "linux-x86_64"; sha256 = "51a4c986a7b85ad140d0fc0e952426d103307013bce72e395873171afa8d0a8f"; }
+ { locale = "ml"; arch = "linux-i686"; sha256 = "57d9e6ec5ddbf3eea9e07d85d5d84998e70a764260d73f38d32fe71a55ac3720"; }
+ { locale = "ml"; arch = "linux-x86_64"; sha256 = "50cf19e1b07ea43dffe37a59fdc969d8e8d46df100c15455e4ac2d4b202a00d7"; }
+ { locale = "mr"; arch = "linux-i686"; sha256 = "98b4d4ac2148e37b741842386333707d8789b2cfacf7ecd7adab3162c43307d8"; }
+ { locale = "mr"; arch = "linux-x86_64"; sha256 = "77e825a071f826c5668475e33a6a06f3fe3e49306e045fbc9a0a76843e66eb7d"; }
+ { locale = "ms"; arch = "linux-i686"; sha256 = "a8c2c8db2ecb76070d54a5cc8cf6c31027a843490a54875e4b66e8e3dd212fa4"; }
+ { locale = "ms"; arch = "linux-x86_64"; sha256 = "54d387432363074ff79a72f6a517b86b7fd76637caa5389a09f7e3ec11965512"; }
+ { locale = "nb-NO"; arch = "linux-i686"; sha256 = "a2f14933978e45ab472a85bf6278879617b61273f3358c67e6180171d6e9ab5c"; }
+ { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "578da776b395c07ccf7525f7f7c2a807daf994807a30f2a0c2bee9d2ea6b977c"; }
+ { locale = "nl"; arch = "linux-i686"; sha256 = "49e079241dcea98a08d27708d918dcc9e530f30368b9b67006f16fc5e24ab29d"; }
+ { locale = "nl"; arch = "linux-x86_64"; sha256 = "b165e97cf3408ef9c7d04f25b7b15924954ed65c78e25c853fb33bd98c751bda"; }
+ { locale = "nn-NO"; arch = "linux-i686"; sha256 = "aad675288be4c1c6e4751b3c32f3e5e569e8348a580e7c2497ab61cbd2fe733b"; }
+ { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "c1128bde1d7030d367cf14833c8a775f1a8790a6a159171cfe55ab369f803b84"; }
+ { locale = "or"; arch = "linux-i686"; sha256 = "28fc9d508d0f86da87060080bea805fc089cb297a82849d7b75fde1d7c35dea8"; }
+ { locale = "or"; arch = "linux-x86_64"; sha256 = "f3879c6bc8b24d4cccbd559b4ee480ee42008187aac403c35a82fa3aa67cf733"; }
+ { locale = "pa-IN"; arch = "linux-i686"; sha256 = "262a496547689093ee22ce31b056cc1727cba9a690ea2fd5729e0694e710e6b5"; }
+ { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "67c9a3db932ee1e890f2b0373b160f7a1db2481263919179f34d24e1bb73869d"; }
+ { locale = "pl"; arch = "linux-i686"; sha256 = "6b561482f0289c085cccd3d331bf7135cec47bf4e56d5a23c86341191e175484"; }
+ { locale = "pl"; arch = "linux-x86_64"; sha256 = "c47b600afa999bc38eaf964def0d8e3e64a6f8dc2ebee14b125885773be37527"; }
+ { locale = "pt-BR"; arch = "linux-i686"; sha256 = "df1f14d353406d367f7c9a3fbec66544ad8ae8f70cd8cf2b8dedcea40f3acd04"; }
+ { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "fe07b106b9783d3b91f31deb55ddf006cbe51e485d6bbf181025edadce7e587f"; }
+ { locale = "pt-PT"; arch = "linux-i686"; sha256 = "6a4e39b78336f07463887a712a3b5a11f9d9f3be4d2e1be36970d17a554b9d39"; }
+ { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "1df70f54c4e59625740635c99a900738f25ae67707536c86511d98253a1b7207"; }
+ { locale = "rm"; arch = "linux-i686"; sha256 = "9e56b6a6831877bf5cf9c3299ab305ec06014044285dc635dc4951403024e1c4"; }
+ { locale = "rm"; arch = "linux-x86_64"; sha256 = "2d89a4dc8590db8a54c7f2d9d126222ce152eff831170b497b657b64df1cbef3"; }
+ { locale = "ro"; arch = "linux-i686"; sha256 = "f7006e2dc8a99c47bafcaae9138f752fd9ee014969ee6db5e440724cf124ce9c"; }
+ { locale = "ro"; arch = "linux-x86_64"; sha256 = "6b42002b7ba893675ab6da994c0e43129ab2cb4bd3ed361c0f2a116167960ace"; }
+ { locale = "ru"; arch = "linux-i686"; sha256 = "b7eef5ad76fdc48894be4b20ccd19d42c966235905c8362b2e262c9da729fac7"; }
+ { locale = "ru"; arch = "linux-x86_64"; sha256 = "efde30e2e473b667b134487c2e16459e72eb41a63c916a660cba847ee9c5ee7b"; }
+ { locale = "si"; arch = "linux-i686"; sha256 = "365eeb713360303af2880362aca5edb62a3370ec0a65eebb1fd72cf11a509543"; }
+ { locale = "si"; arch = "linux-x86_64"; sha256 = "43338a5a36278e07d76316eee4b7e0aa07a99123f1ea124650ea5357288b6daa"; }
+ { locale = "sk"; arch = "linux-i686"; sha256 = "c552413717efe35a1b70d4745c9ed3ecf50eead210225daf1b922d25022026ee"; }
+ { locale = "sk"; arch = "linux-x86_64"; sha256 = "fb92a066a27de4328dd4aa5ae4091513ee021a94167ca7f2174cd1809f311799"; }
+ { locale = "sl"; arch = "linux-i686"; sha256 = "5ede91c27358d812a7fe0f4cfc4516d5802e516c0c4c3ede44f5535dff04ca87"; }
+ { locale = "sl"; arch = "linux-x86_64"; sha256 = "f301a92ea7d165d20c23af0d4004a679f6dc1f7574cd34bd92be4cae7d36eaa6"; }
+ { locale = "son"; arch = "linux-i686"; sha256 = "816ef59d8ab566967c38944df4884a75e1d15f5906bef59c534e80f1f4d31d1b"; }
+ { locale = "son"; arch = "linux-x86_64"; sha256 = "0bf5149fdffd060773b82c575dbc981e420deb0719a8f4fff9a03c6ba571d5db"; }
+ { locale = "sq"; arch = "linux-i686"; sha256 = "3e43a60388d2cceb306d7a70e984ded6dacb0a968b78ed8a4032ac60d7c1cc6c"; }
+ { locale = "sq"; arch = "linux-x86_64"; sha256 = "6c0fa8dcf9359e8aa1244512f1d264b8684191f4bfb062c802f21009862c26e6"; }
+ { locale = "sr"; arch = "linux-i686"; sha256 = "1df63b2753dd55d69d0990f3f34f9574dd34289cb64726da45fcc891b6a83088"; }
+ { locale = "sr"; arch = "linux-x86_64"; sha256 = "01dec866a74a56fe8652e5b75731c7f508637e875c62a84805fcc0e4636c9e67"; }
+ { locale = "sv-SE"; arch = "linux-i686"; sha256 = "6f3f5b62e475ce4128e11f62a556505e00d5b8dfbd374ae747a16d6f161059dd"; }
+ { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "0b3cfbb77d291a7fbb14b61c1bb1936dcec5f66af55c3c0b92e9dd4299c9b897"; }
+ { locale = "ta"; arch = "linux-i686"; sha256 = "357f182c2df19bdd97834bb714f979253bb4a16029d115a12e66bb7c20ff5a1a"; }
+ { locale = "ta"; arch = "linux-x86_64"; sha256 = "013d771a256e84d6faf97c84edd5ed25bd5d700712f9aa4aef54ff257b530c21"; }
+ { locale = "te"; arch = "linux-i686"; sha256 = "59ba28b5c3aefa5455af1f1b549018dda9d544aca4829190af4e361b2eb164f0"; }
+ { locale = "te"; arch = "linux-x86_64"; sha256 = "e181876679ef2c5a289d5697fefde0acc64c936237b907fab7e6d000cbaee5a4"; }
+ { locale = "th"; arch = "linux-i686"; sha256 = "57545f48f6c1ff7a5ba2aa43d61446aca4d9e8f5f6f1bf70cdbb75d72d4b9713"; }
+ { locale = "th"; arch = "linux-x86_64"; sha256 = "e2c70247a333447f100bfb87be9f9f7e6f3398ac22623627b016e046afcd7a26"; }
+ { locale = "tr"; arch = "linux-i686"; sha256 = "f0d6f1053ffc9396657485f58c3bd33ee616a1b474b72a78e0b14960a0818646"; }
+ { locale = "tr"; arch = "linux-x86_64"; sha256 = "101763b31f615b301b1e040df7a0219456446695f9edf75580ce6fbcf061142b"; }
+ { locale = "uk"; arch = "linux-i686"; sha256 = "d0c5854b736bfc7f263f7a515a477e209c90fe7d5ed0ca64dd7d16f3d68a6671"; }
+ { locale = "uk"; arch = "linux-x86_64"; sha256 = "3b78c94708d5b5798e30bbf9956619b694c3484672d0e3f473dbbd8898f3c8c4"; }
+ { locale = "uz"; arch = "linux-i686"; sha256 = "0870ba372c7abfa95bc9da5d5b7f501b3137208d084f25a3ca88a09c8395ec6b"; }
+ { locale = "uz"; arch = "linux-x86_64"; sha256 = "87f6ea282450521a786944d516c26ff8cbe14a2f24df11fa80c343aca5dcbd3f"; }
+ { locale = "vi"; arch = "linux-i686"; sha256 = "088be2a9815914a8637163493636acaae40c0348e1b7f064b1ea5181c114a77e"; }
+ { locale = "vi"; arch = "linux-x86_64"; sha256 = "b68fc3fc98ecba457ffac3e191b1ef6c1512b826a9dd1b9a301858b8051453c2"; }
+ { locale = "xh"; arch = "linux-i686"; sha256 = "83095d26d9a73c3113a98c902f31565a3e358ee1aa4ec37976fb72cbc8470845"; }
+ { locale = "xh"; arch = "linux-x86_64"; sha256 = "642026251591bc1eb1ca1200db1b232981d019d8664cfa216777e12b591606d4"; }
+ { locale = "zh-CN"; arch = "linux-i686"; sha256 = "a3289ad36a1a3b5affc721a7a2b509d9151049e50209f62c92592d7cd17c96d8"; }
+ { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "f53e14f1ce29b172acba3d58b5ca6da3ff03a121aaf224949a88a2fed96aaa9d"; }
+ { locale = "zh-TW"; arch = "linux-i686"; sha256 = "a471944312b7f2a04a0f1df4a897f63c41cd74c0645d890d95bce6d725a2ae2d"; }
+ { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "d0d201cff0b8dcc59224645d4f4ab15fa14fe131a30897242e5692729894abed"; }
];
}
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
new file mode 100644
index 00000000000..b05da9c6700
--- /dev/null
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -0,0 +1,120 @@
+{ stdenv, buildEnv, fetchurl, patchelf, bash
+
+# Linked dynamic libraries.
+, glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr
+, libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite
+, alsaLib, libXdamage, libXtst, libXrandr, expat, cups
+, dbus_libs, gtk, gdk_pixbuf, gcc
+
+# Will crash without.
+, udev
+
+# Loaded at runtime.
+, libexif
+
+# Additional dependencies according to other distros.
+## Ubuntu
+, liberation_ttf, curl, utillinux, xdg_utils, wget
+## Arch Linux.
+, flac, harfbuzz, icu, libpng, libopus, snappy, speechd
+## Gentoo
+, bzip2, libcap
+
+# Which distribution channel to use.
+, channel ? "stable"
+
+# Necessary for USB audio devices.
+, pulseSupport ? true, libpulseaudio ? null
+
+}:
+
+with stdenv.lib;
+
+with (import ../chromium/source/update.nix {
+ inherit (stdenv) system;
+}).getChannel channel;
+
+let
+ dist = if channel == "dev" then "unstable" else channel;
+
+ opusWithCustomModes = libopus.override {
+ withCustomModes = true;
+ };
+
+ env = buildEnv {
+ name = "google-chrome-env";
+ paths = [
+ glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr
+ libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite
+ alsaLib libXdamage libXtst libXrandr expat cups
+ dbus_libs gtk gdk_pixbuf gcc
+ udev
+ libexif
+ liberation_ttf curl utillinux xdg_utils wget
+ flac harfbuzz icu libpng opusWithCustomModes snappy speechd
+ bzip2 libcap
+ ]
+ ++ optional pulseSupport libpulseaudio;
+ };
+in stdenv.mkDerivation rec {
+ inherit version;
+
+ name = "google-chrome-${version}";
+
+ src = fetchurl binary;
+
+ buildInputs = [ env patchelf ];
+
+ unpackPhase = ''
+ ar x $src
+ tar xf data.tar.xz
+ '';
+
+ installPhase = ''
+ exe=$out/bin/google-chrome-${dist}
+ rpath="${env}/lib:${env}/lib64"
+
+ mkdir -p $out/bin $out/share
+
+ cp -a opt/* $out/share
+ cp -a usr/share/* $out/share
+
+ substituteInPlace $out/share/applications/google-chrome.desktop \
+ --replace /usr/bin/google-chrome-${dist} $exe
+ substituteInPlace $out/share/gnome-control-center/default-apps/google-chrome.xml \
+ --replace /opt/google/chrome/google-chrome $exe
+ substituteInPlace $out/share/menu/google-chrome.menu \
+ --replace /opt $out/share \
+ --replace $out/share/google/chrome/google-chrome $exe
+
+ for icon_file in $out/share/google/chrome/product_logo_*[0-9].png; do
+ num_and_suffix="''${icon_file##*logo_}"
+ icon_size="''${num_and_suffix%.*}"
+ logo_output_prefix="$out/share/icons/hicolor"
+ logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
+ mkdir -p "$logo_output_path"
+ mv "$icon_file" "$logo_output_path/google-chrome.png"
+ done
+
+ cat > $exe << EOF
+ #!${bash}/bin/sh
+ export LD_LIBRARY_PATH=$rpath\''${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}
+ export PATH=${env}/bin\''${PATH:+:\$PATH}
+ $out/share/google/chrome/google-chrome "\$@"
+ EOF
+ chmod +x $exe
+
+ for elf in $out/share/google/chrome/{chrome,chrome-sandbox,nacl_helper}; do
+ patchelf --set-rpath $rpath $elf
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf
+ done
+ '';
+
+ meta = {
+ description = "A freeware web browser developed by Google";
+ homepage = "https://www.google.com/chrome/browser/";
+ license = licenses.unfree;
+ maintainers = [ maintainers.msteen ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix
index b8aa17803e9..81a05b36016 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
homepage = http://fribid.se;
license = with licenses; [ gpl2 mpl10 ];
maintainers = [ maintainers.edwtjo ];
- platforms = with platforms; linux;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/networking/cluster/chronos/default.nix b/pkgs/applications/networking/cluster/chronos/default.nix
index 596163336f7..974c085bdc1 100644
--- a/pkgs/applications/networking/cluster/chronos/default.nix
+++ b/pkgs/applications/networking/cluster/chronos/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
license = licenses.asl20;
description = "Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules";
maintainers = with maintainers; [ offline ];
- platforms = with platforms; unix;
+ platforms = platforms.unix;
broken = true; # doesn't build http://hydra.nixos.org/build/25768319
};
}
diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix
index 6f92ca5a6b7..bb7a60f2b27 100644
--- a/pkgs/applications/networking/cluster/mesos/default.nix
+++ b/pkgs/applications/networking/cluster/mesos/default.nix
@@ -137,6 +137,6 @@ in stdenv.mkDerivation rec {
license = licenses.asl20;
description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks";
maintainers = with maintainers; [ cstrahan offline rushmorem ];
- platforms = with platforms; linux;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/networking/feedreaders/rsstail/default.nix b/pkgs/applications/networking/feedreaders/rsstail/default.nix
index 1a36dd8ae20..62054ef0613 100644
--- a/pkgs/applications/networking/feedreaders/rsstail/default.nix
+++ b/pkgs/applications/networking/feedreaders/rsstail/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
'';
homepage = http://www.vanheusden.com/rsstail/;
license = licenses.gpl2Plus;
- platforms = with platforms; linux;
+ platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
};
}
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index b29165fde97..2c3b502e3c3 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -1,7 +1,8 @@
-{ fetchurl, stdenv
+{ fetchurl, stdenv, wrapGAppsHook
, curl, dbus, dbus_glib, enchant, gtk, gnutls, gnupg, gpgme, hicolor_icon_theme
, libarchive, libcanberra, libetpan, libnotify, libsoup, libxml2, networkmanager
, openldap , perl, pkgconfig, poppler, python, shared_mime_info, webkitgtk2
+, glib_networking, gsettings_desktop_schemas
# Build options
# TODO: A flag to build the manual.
@@ -55,8 +56,8 @@ stdenv.mkDerivation {
'';
buildInputs =
- [ curl dbus dbus_glib gtk gnutls hicolor_icon_theme
- libetpan perl pkgconfig python
+ [ curl dbus dbus_glib gtk gnutls gsettings_desktop_schemas hicolor_icon_theme
+ libetpan perl pkgconfig python wrapGAppsHook
]
++ optional enableSpellcheck enchant
++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ]
@@ -91,6 +92,9 @@ stdenv.mkDerivation {
enableParallelBuilding = true;
+ wrapPrefixVariables = [ "GIO_EXTRA_MODULES" ];
+ GIO_EXTRA_MODULES = "${glib_networking}/lib/gio/modules";
+
postInstall = ''
mkdir -p $out/share/applications
cp claws-mail.desktop $out/share/applications
diff --git a/pkgs/applications/networking/remote/x2goclient/default.nix b/pkgs/applications/networking/remote/x2goclient/default.nix
index eaa1c5e318a..fdc27b63e9e 100644
--- a/pkgs/applications/networking/remote/x2goclient/default.nix
+++ b/pkgs/applications/networking/remote/x2goclient/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
description = "Graphical NoMachine NX3 remote desktop client";
homepage = http://x2go.org/;
license = licenses.gpl2;
- platforms = with platforms; linux;
+ platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
};
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 40e3fdef980..65f3f256368 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
name = "wireshark-${variant}-${version}";
src = fetchurl {
- url = "http://www.wireshark.org/download/src/wireshark-${version}.tar.bz2";
+ url = "http://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.bz2";
sha256 = "0b7rc1l1gvzcz7gfa6g7pcn32zrcfiqjx0rxm6cg3q1cwwa1qjn7";
};
diff --git a/pkgs/applications/networking/znc/default.nix b/pkgs/applications/networking/znc/default.nix
index ca4c6d24315..73ab0baca25 100644
--- a/pkgs/applications/networking/znc/default.nix
+++ b/pkgs/applications/networking/znc/default.nix
@@ -7,11 +7,11 @@
with stdenv.lib;
stdenv.mkDerivation rec {
- name = "znc-1.6.1";
+ name = "znc-1.6.2";
src = fetchurl {
url = "http://znc.in/releases/${name}.tar.gz";
- sha256 = "0h61nv5kx9k8prmhsffxhlprf7gjcq8vqhjjmqr6v3glcirkjjds";
+ sha256 = "14q5dyr5zg99hm6j6g1gilcn1zf7dskhxfpz3bnkyhy6q0kpgwgf";
};
buildInputs = [ openssl pkgconfig ]
diff --git a/pkgs/applications/office/gnucash/2.6.nix b/pkgs/applications/office/gnucash/2.6.nix
new file mode 100644
index 00000000000..df6eabbcff0
--- /dev/null
+++ b/pkgs/applications/office/gnucash/2.6.nix
@@ -0,0 +1,100 @@
+{ fetchurl, stdenv, pkgconfig, libxml2, libxslt, perl, perlPackages, gconf, guile
+, intltool, glib, gtk, libofx, aqbanking, gwenhywfar, libgnomecanvas, goffice
+, webkit, glibcLocales, gsettings_desktop_schemas, makeWrapper, dconf, file
+, gettext, swig, slibGuile, enchant, bzip2, isocodes
+}:
+
+/*
+Two cave-ats right now:
+ 1. HTML reports are broken
+ 2. You need to have dconf installed (GNOME3 should have it automatically,
+ otherwise put it in environment.systemPackages), for settings
+*/
+
+stdenv.mkDerivation rec {
+ name = "gnucash-2.6.9";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
+ sha256 = "0iw25l1kv60cg6fd2vg11mcvzmjqnc5p9lp3rjy06ghkjfrn3and";
+ };
+
+ buildInputs = [
+ # general
+ intltool pkgconfig libxml2 libxslt glibcLocales file gettext swig enchant
+ bzip2 isocodes
+ # glib, gtk...
+ glib gtk goffice webkit
+ # gnome...
+ dconf gconf libgnomecanvas gsettings_desktop_schemas
+ # financial
+ libofx aqbanking gwenhywfar
+ # perl
+ perl perlPackages.FinanceQuote perlPackages.DateManip
+ # guile
+ guile slibGuile
+ # build
+ makeWrapper
+ ];
+
+ patchPhase = ''
+ patchShebangs ./src
+ '';
+
+ configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi --enable-ofx --enable-aqbanking";
+
+
+ postInstall = ''
+ # Auto-updaters don't make sense in Nix.
+ rm $out/bin/gnc-fq-update
+
+ #sed -i $out/bin/update-gnucash-gconf \
+ # -e 's|--config-source=[^ ]* --install-schema-file|--makefile-install-rule|'
+
+ for prog in $(echo "$out/bin/"*)
+ do
+ # Don't wrap the gnc-fq-* scripts, since gnucash calls them as
+ # "perl