Merge branch 'master' into staging

This includes a fix for a bad merge.
This commit is contained in:
Vladimír Čunát 2017-04-14 19:22:02 +02:00
commit f7a4f146c9
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
154 changed files with 3859 additions and 1990 deletions

View File

@ -1,3 +1,8 @@
/* Library of low-level helper functions for nix expressions.
*
* Please implement (mostly) exhaustive unit tests
* for new functions in `./tests.nix'.
*/
let let
# trivial, often used functions # trivial, often used functions

View File

@ -357,6 +357,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
fullName = "Lucent Public License v1.02"; fullName = "Lucent Public License v1.02";
}; };
miros = {
fullname = "MirOS License";
url = https://opensource.org/licenses/MirOS;
};
# spdx.org does not (yet) differentiate between the X11 and Expat versions # spdx.org does not (yet) differentiate between the X11 and Expat versions
# for details see http://en.wikipedia.org/wiki/MIT_License#Various_versions # for details see http://en.wikipedia.org/wiki/MIT_License#Various_versions
mit = spdx { mit = spdx {

View File

@ -277,4 +277,14 @@ runTests {
expected = [ "2001" "db8" "0" "0042" "" "8a2e" "370" "" ]; expected = [ "2001" "db8" "0" "0042" "" "8a2e" "370" "" ];
}; };
testComposeExtensions = {
expr = let obj = makeExtensible (self: { foo = self.bar; });
f = self: super: { bar = false; baz = true; };
g = self: super: { bar = super.baz or false; };
f_o_g = composeExtensions f g;
composed = obj.extend f_o_g;
in composed.foo;
expected = true;
};
} }

View File

@ -30,6 +30,11 @@ rec {
/* boolean and */ /* boolean and */
and = x: y: x && y; and = x: y: x && y;
/* Convert a boolean to a string.
Note that toString on a bool returns "1" and "".
*/
boolToString = b: if b then "true" else "false";
/* Merge two attribute sets shallowly, right side trumps left /* Merge two attribute sets shallowly, right side trumps left
Example: Example:
@ -80,6 +85,15 @@ rec {
# argument, but it's nice this way if several uses of `extends` are cascaded. # argument, but it's nice this way if several uses of `extends` are cascaded.
extends = f: rattrs: self: let super = rattrs self; in super // f self super; extends = f: rattrs: self: let super = rattrs self; in super // f self super;
# Compose two extending functions of the type expected by 'extends'
# into one where changes made in the first are available in the
# 'super' of the second
composeExtensions =
f: g: self: super:
let fApplied = f self super;
super' = super // fApplied;
in fApplied // g self super';
# Create an overridable, recursive attribute set. For example: # Create an overridable, recursive attribute set. For example:
# #
# nix-repl> obj = makeExtensible (self: { }) # nix-repl> obj = makeExtensible (self: { })

View File

@ -35,6 +35,8 @@ following incompatible changes:</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
Top-level <literal>idea</literal> package collection was renamed.
All JetBrains IDEs are now at <literal>jetbrains</literal>.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>

View File

@ -1,15 +1,23 @@
#! /bin/sh -e #!/usr/bin/env nix-shell
#! nix-shell -i bash -p google-cloud-sdk
BUCKET_NAME=${BUCKET_NAME:-nixos-images} set -euo pipefail
export NIX_PATH=nixpkgs=../../../..
export NIXOS_CONFIG=$(dirname $(readlink -f $0))/../../../modules/virtualisation/google-compute-image.nix BUCKET_NAME="${BUCKET_NAME:-nixos-images}"
export TIMESTAMP=$(date +%Y%m%d%H%M) TIMESTAMP="$(date +%Y%m%d%H%M)"
export TIMESTAMP
nix-build '<nixpkgs/nixos>' \ nix-build '<nixpkgs/nixos>' \
-A config.system.build.googleComputeImage --argstr system x86_64-linux -o gce --option extra-binary-caches http://hydra.nixos.org -j 10 -A config.system.build.googleComputeImage \
--arg configuration "{ imports = [ <nixpkgs/nixos/modules/virtualisation/google-compute-image.nix> ]; }" \
--argstr system x86_64-linux \
-o gce \
-j 10
img=$(echo gce/*.tar.gz) img_path=$(echo gce/*.tar.gz)
if ! gsutil ls gs://${BUCKET_NAME}/$(basename $img); then img_name=$(basename "$img_path")
gsutil cp $img gs://${BUCKET_NAME}/$(basename $img) img_id=$(echo "$img_name" | sed 's|.raw.tar.gz$||;s|\.|-|g;s|_|-|g')
if ! gsutil ls "gs://${BUCKET_NAME}/$img_name"; then
gsutil cp "$img_path" "gs://${BUCKET_NAME}/$img_name"
fi fi
gcloud compute images create $(basename $img .raw.tar.gz | sed 's|\.|-|' | sed 's|_|-|') --source-uri gs://${BUCKET_NAME}/$(basename $img) gcloud compute images create "$img_id" --source-uri "gs://${BUCKET_NAME}/$img_name"

View File

@ -5,7 +5,7 @@ with lib;
let let
cfg = config.fonts.fontconfig; cfg = config.fonts.fontconfig;
fcBool = x: "<bool>" + (if x then "true" else "false") + "</bool>"; fcBool = x: "<bool>" + (boolToString x) + "</bool>";
# back-supported fontconfig version and package # back-supported fontconfig version and package
# version is used for font cache generation # version is used for font cache generation

View File

@ -20,7 +20,7 @@ with lib;
let cfg = config.fonts.fontconfig; let cfg = config.fonts.fontconfig;
fcBool = x: "<bool>" + (if x then "true" else "false") + "</bool>"; fcBool = x: "<bool>" + (boolToString x) + "</bool>";
# back-supported fontconfig version and package # back-supported fontconfig version and package
# version is used for font cache generation # version is used for font cache generation

View File

@ -19,6 +19,12 @@ let
''; '';
}; };
domain = mkOption {
type = types.nullOr types.str;
default = null;
description = "Domain to fetch certificate for (defaults to the entry name)";
};
email = mkOption { email = mkOption {
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
@ -157,9 +163,10 @@ in
servicesLists = mapAttrsToList certToServices cfg.certs; servicesLists = mapAttrsToList certToServices cfg.certs;
certToServices = cert: data: certToServices = cert: data:
let let
domain = if data.domain != null then data.domain else cert;
cpath = "${cfg.directory}/${cert}"; cpath = "${cfg.directory}/${cert}";
rights = if data.allowKeysForGroup then "750" else "700"; rights = if data.allowKeysForGroup then "750" else "700";
cmdline = [ "-v" "-d" cert "--default_root" data.webroot "--valid_min" cfg.validMin ] cmdline = [ "-v" "-d" domain "--default_root" data.webroot "--valid_min" cfg.validMin ]
++ optionals (data.email != null) [ "--email" data.email ] ++ optionals (data.email != null) [ "--email" data.email ]
++ concatMap (p: [ "-f" p ]) data.plugins ++ concatMap (p: [ "-f" p ]) data.plugins
++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains); ++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains);

View File

@ -612,8 +612,8 @@ in {
--require-kubeconfig \ --require-kubeconfig \
--address=${cfg.kubelet.address} \ --address=${cfg.kubelet.address} \
--port=${toString cfg.kubelet.port} \ --port=${toString cfg.kubelet.port} \
--register-node=${if cfg.kubelet.registerNode then "true" else "false"} \ --register-node=${boolToString cfg.kubelet.registerNode} \
--register-schedulable=${if cfg.kubelet.registerSchedulable then "true" else "false"} \ --register-schedulable=${boolToString cfg.kubelet.registerSchedulable} \
${optionalString (cfg.kubelet.tlsCertFile != null) ${optionalString (cfg.kubelet.tlsCertFile != null)
"--tls-cert-file=${cfg.kubelet.tlsCertFile}"} \ "--tls-cert-file=${cfg.kubelet.tlsCertFile}"} \
${optionalString (cfg.kubelet.tlsKeyFile != null) ${optionalString (cfg.kubelet.tlsKeyFile != null)
@ -621,7 +621,7 @@ in {
--healthz-bind-address=${cfg.kubelet.healthz.bind} \ --healthz-bind-address=${cfg.kubelet.healthz.bind} \
--healthz-port=${toString cfg.kubelet.healthz.port} \ --healthz-port=${toString cfg.kubelet.healthz.port} \
--hostname-override=${cfg.kubelet.hostname} \ --hostname-override=${cfg.kubelet.hostname} \
--allow-privileged=${if cfg.kubelet.allowPrivileged then "true" else "false"} \ --allow-privileged=${boolToString cfg.kubelet.allowPrivileged} \
--root-dir=${cfg.dataDir} \ --root-dir=${cfg.dataDir} \
--cadvisor_port=${toString cfg.kubelet.cadvisorPort} \ --cadvisor_port=${toString cfg.kubelet.cadvisorPort} \
${optionalString (cfg.kubelet.clusterDns != "") ${optionalString (cfg.kubelet.clusterDns != "")
@ -670,14 +670,14 @@ in {
--bind-address=0.0.0.0 \ --bind-address=0.0.0.0 \
${optionalString (cfg.apiserver.advertiseAddress != null) ${optionalString (cfg.apiserver.advertiseAddress != null)
"--advertise-address=${cfg.apiserver.advertiseAddress}"} \ "--advertise-address=${cfg.apiserver.advertiseAddress}"} \
--allow-privileged=${if cfg.apiserver.allowPrivileged then "true" else "false"} \ --allow-privileged=${boolToString cfg.apiserver.allowPrivileged}\
${optionalString (cfg.apiserver.tlsCertFile != null) ${optionalString (cfg.apiserver.tlsCertFile != null)
"--tls-cert-file=${cfg.apiserver.tlsCertFile}"} \ "--tls-cert-file=${cfg.apiserver.tlsCertFile}"} \
${optionalString (cfg.apiserver.tlsKeyFile != null) ${optionalString (cfg.apiserver.tlsKeyFile != null)
"--tls-private-key-file=${cfg.apiserver.tlsKeyFile}"} \ "--tls-private-key-file=${cfg.apiserver.tlsKeyFile}"} \
${optionalString (cfg.apiserver.tokenAuth != null) ${optionalString (cfg.apiserver.tokenAuth != null)
"--token-auth-file=${cfg.apiserver.tokenAuth}"} \ "--token-auth-file=${cfg.apiserver.tokenAuth}"} \
--kubelet-https=${if cfg.apiserver.kubeletHttps then "true" else "false"} \ --kubelet-https=${boolToString cfg.apiserver.kubeletHttps} \
${optionalString (cfg.apiserver.kubeletClientCaFile != null) ${optionalString (cfg.apiserver.kubeletClientCaFile != null)
"--kubelet-certificate-authority=${cfg.apiserver.kubeletClientCaFile}"} \ "--kubelet-certificate-authority=${cfg.apiserver.kubeletClientCaFile}"} \
${optionalString (cfg.apiserver.kubeletClientCertFile != null) ${optionalString (cfg.apiserver.kubeletClientCertFile != null)
@ -719,7 +719,7 @@ in {
ExecStart = ''${cfg.package}/bin/kube-scheduler \ ExecStart = ''${cfg.package}/bin/kube-scheduler \
--address=${cfg.scheduler.address} \ --address=${cfg.scheduler.address} \
--port=${toString cfg.scheduler.port} \ --port=${toString cfg.scheduler.port} \
--leader-elect=${if cfg.scheduler.leaderElect then "true" else "false"} \ --leader-elect=${boolToString cfg.scheduler.leaderElect} \
--kubeconfig=${kubeconfig} \ --kubeconfig=${kubeconfig} \
${optionalString cfg.verbose "--v=6"} \ ${optionalString cfg.verbose "--v=6"} \
${optionalString cfg.verbose "--log-flush-frequency=1s"} \ ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
@ -744,7 +744,7 @@ in {
--address=${cfg.controllerManager.address} \ --address=${cfg.controllerManager.address} \
--port=${toString cfg.controllerManager.port} \ --port=${toString cfg.controllerManager.port} \
--kubeconfig=${kubeconfig} \ --kubeconfig=${kubeconfig} \
--leader-elect=${if cfg.controllerManager.leaderElect then "true" else "false"} \ --leader-elect=${boolToString cfg.controllerManager.leaderElect} \
${if (cfg.controllerManager.serviceAccountKeyFile!=null) ${if (cfg.controllerManager.serviceAccountKeyFile!=null)
then "--service-account-private-key-file=${cfg.controllerManager.serviceAccountKeyFile}" then "--service-account-private-key-file=${cfg.controllerManager.serviceAccountKeyFile}"
else "--service-account-private-key-file=/var/run/kubernetes/apiserver.key"} \ else "--service-account-private-key-file=/var/run/kubernetes/apiserver.key"} \

View File

@ -328,7 +328,7 @@ in
IN_SYSTEMD = "1"; # to get log severity levels IN_SYSTEMD = "1"; # to get log severity levels
}; };
serviceConfig = serviceConfig =
{ ExecStart = "@${cfg.package}/bin/hydra-queue-runner hydra-queue-runner -v --option build-use-substitutes ${if cfg.useSubstitutes then "true" else "false"}"; { ExecStart = "@${cfg.package}/bin/hydra-queue-runner hydra-queue-runner -v --option build-use-substitutes ${boolToString cfg.useSubstitutes}";
ExecStopPost = "${cfg.package}/bin/hydra-queue-runner --unlock"; ExecStopPost = "${cfg.package}/bin/hydra-queue-runner --unlock";
User = "hydra-queue-runner"; User = "hydra-queue-runner";
Restart = "always"; Restart = "always";

View File

@ -21,8 +21,8 @@ let
cassandraConf = '' cassandraConf = ''
cluster_name: ${cfg.clusterName} cluster_name: ${cfg.clusterName}
num_tokens: 256 num_tokens: 256
auto_bootstrap: ${if cfg.autoBootstrap then "true" else "false"} auto_bootstrap: ${boolToString cfg.autoBootstrap}
hinted_handoff_enabled: ${if cfg.hintedHandOff then "true" else "false"} hinted_handoff_enabled: ${boolToString cfg.hintedHandOff}
hinted_handoff_throttle_in_kb: ${builtins.toString cfg.hintedHandOffThrottle} hinted_handoff_throttle_in_kb: ${builtins.toString cfg.hintedHandOffThrottle}
max_hints_delivery_threads: 2 max_hints_delivery_threads: 2
max_hint_window_in_ms: 10800000 # 3 hours max_hint_window_in_ms: 10800000 # 3 hours
@ -62,7 +62,7 @@ let
rpc_keepalive: true rpc_keepalive: true
rpc_server_type: sync rpc_server_type: sync
thrift_framed_transport_size_in_mb: 15 thrift_framed_transport_size_in_mb: 15
incremental_backups: ${if cfg.incrementalBackups then "true" else "false"} incremental_backups: ${boolToString cfg.incrementalBackups}
snapshot_before_compaction: false snapshot_before_compaction: false
auto_snapshot: true auto_snapshot: true
column_index_size_in_kb: 64 column_index_size_in_kb: 64
@ -89,7 +89,7 @@ let
truststore: ${cfg.trustStorePath} truststore: ${cfg.trustStorePath}
truststore_password: ${cfg.trustStorePassword} truststore_password: ${cfg.trustStorePassword}
client_encryption_options: client_encryption_options:
enabled: ${if cfg.clientEncryption then "true" else "false"} enabled: ${boolToString cfg.clientEncryption}
keystore: ${cfg.keyStorePath} keystore: ${cfg.keyStorePath}
keystore_password: ${cfg.keyStorePassword} keystore_password: ${cfg.keyStorePassword}
internode_compression: all internode_compression: all

View File

@ -4,8 +4,6 @@ with lib;
let let
b2s = x: if x then "true" else "false";
cfg = config.services.mongodb; cfg = config.services.mongodb;
mongodb = cfg.package; mongodb = cfg.package;

View File

@ -4,16 +4,15 @@ with lib;
let let
cfg = config.services.graylog; cfg = config.services.graylog;
configBool = b: if b then "true" else "false";
confFile = pkgs.writeText "graylog.conf" '' confFile = pkgs.writeText "graylog.conf" ''
is_master = ${configBool cfg.isMaster} is_master = ${boolToString cfg.isMaster}
node_id_file = ${cfg.nodeIdFile} node_id_file = ${cfg.nodeIdFile}
password_secret = ${cfg.passwordSecret} password_secret = ${cfg.passwordSecret}
root_username = ${cfg.rootUsername} root_username = ${cfg.rootUsername}
root_password_sha2 = ${cfg.rootPasswordSha2} root_password_sha2 = ${cfg.rootPasswordSha2}
elasticsearch_cluster_name = ${cfg.elasticsearchClusterName} elasticsearch_cluster_name = ${cfg.elasticsearchClusterName}
elasticsearch_discovery_zen_ping_multicast_enabled = ${configBool cfg.elasticsearchDiscoveryZenPingMulticastEnabled} elasticsearch_discovery_zen_ping_multicast_enabled = ${boolToString cfg.elasticsearchDiscoveryZenPingMulticastEnabled}
elasticsearch_discovery_zen_ping_unicast_hosts = ${cfg.elasticsearchDiscoveryZenPingUnicastHosts} elasticsearch_discovery_zen_ping_unicast_hosts = ${cfg.elasticsearchDiscoveryZenPingUnicastHosts}
message_journal_dir = ${cfg.messageJournalDir} message_journal_dir = ${cfg.messageJournalDir}
mongodb_uri = ${cfg.mongodbUri} mongodb_uri = ${cfg.mongodbUri}

View File

@ -6,7 +6,7 @@ let
cfg = config.services.cgminer; cfg = config.services.cgminer;
convType = with builtins; convType = with builtins;
v: if isBool v then (if v then "true" else "false") else toString v; v: if isBool v then boolToString v else toString v;
mergedHwConfig = mergedHwConfig =
mapAttrsToList (n: v: ''"${n}": "${(concatStringsSep "," (map convType v))}"'') mapAttrsToList (n: v: ''"${n}": "${(concatStringsSep "," (map convType v))}"'')
(foldAttrs (n: a: [n] ++ a) [] cfg.hardware); (foldAttrs (n: a: [n] ++ a) [] cfg.hardware);

View File

@ -12,7 +12,7 @@ let
nodes = [ ${concatMapStringsSep "," (s: ''"${s}"'') cfg.nodes}, ] nodes = [ ${concatMapStringsSep "," (s: ''"${s}"'') cfg.nodes}, ]
prefix = "${cfg.prefix}" prefix = "${cfg.prefix}"
log-level = "${cfg.logLevel}" log-level = "${cfg.logLevel}"
watch = ${if cfg.watch then "true" else "false"} watch = ${boolToString cfg.watch}
''; '';
in { in {

View File

@ -5,9 +5,8 @@ with lib;
let let
cfg = config.services.matrix-synapse; cfg = config.services.matrix-synapse;
logConfigFile = pkgs.writeText "log_config.yaml" cfg.logConfig; logConfigFile = pkgs.writeText "log_config.yaml" cfg.logConfig;
mkResource = r: ''{names: ${builtins.toJSON r.names}, compress: ${fromBool r.compress}}''; mkResource = r: ''{names: ${builtins.toJSON r.names}, compress: ${boolToString r.compress}}'';
mkListener = l: ''{port: ${toString l.port}, bind_address: "${l.bind_address}", type: ${l.type}, tls: ${fromBool l.tls}, x_forwarded: ${fromBool l.x_forwarded}, resources: [${concatStringsSep "," (map mkResource l.resources)}]}''; mkListener = l: ''{port: ${toString l.port}, bind_address: "${l.bind_address}", type: ${l.type}, tls: ${boolToString l.tls}, x_forwarded: ${boolToString l.x_forwarded}, resources: [${concatStringsSep "," (map mkResource l.resources)}]}'';
fromBool = x: if x then "true" else "false";
configFile = pkgs.writeText "homeserver.yaml" '' configFile = pkgs.writeText "homeserver.yaml" ''
${optionalString (cfg.tls_certificate_path != null) '' ${optionalString (cfg.tls_certificate_path != null) ''
tls_certificate_path: "${cfg.tls_certificate_path}" tls_certificate_path: "${cfg.tls_certificate_path}"
@ -18,7 +17,7 @@ tls_private_key_path: "${cfg.tls_private_key_path}"
${optionalString (cfg.tls_dh_params_path != null) '' ${optionalString (cfg.tls_dh_params_path != null) ''
tls_dh_params_path: "${cfg.tls_dh_params_path}" tls_dh_params_path: "${cfg.tls_dh_params_path}"
''} ''}
no_tls: ${fromBool cfg.no_tls} no_tls: ${boolToString cfg.no_tls}
${optionalString (cfg.bind_port != null) '' ${optionalString (cfg.bind_port != null) ''
bind_port: ${toString cfg.bind_port} bind_port: ${toString cfg.bind_port}
''} ''}
@ -30,7 +29,7 @@ bind_host: "${cfg.bind_host}"
''} ''}
server_name: "${cfg.server_name}" server_name: "${cfg.server_name}"
pid_file: "/var/run/matrix-synapse.pid" pid_file: "/var/run/matrix-synapse.pid"
web_client: ${fromBool cfg.web_client} web_client: ${boolToString cfg.web_client}
${optionalString (cfg.public_baseurl != null) '' ${optionalString (cfg.public_baseurl != null) ''
public_baseurl: "${cfg.public_baseurl}" public_baseurl: "${cfg.public_baseurl}"
''} ''}
@ -58,8 +57,8 @@ media_store_path: "/var/lib/matrix-synapse/media"
uploads_path: "/var/lib/matrix-synapse/uploads" uploads_path: "/var/lib/matrix-synapse/uploads"
max_upload_size: "${cfg.max_upload_size}" max_upload_size: "${cfg.max_upload_size}"
max_image_pixels: "${cfg.max_image_pixels}" max_image_pixels: "${cfg.max_image_pixels}"
dynamic_thumbnails: ${fromBool cfg.dynamic_thumbnails} dynamic_thumbnails: ${boolToString cfg.dynamic_thumbnails}
url_preview_enabled: ${fromBool cfg.url_preview_enabled} url_preview_enabled: ${boolToString cfg.url_preview_enabled}
${optionalString (cfg.url_preview_enabled == true) '' ${optionalString (cfg.url_preview_enabled == true) ''
url_preview_ip_range_blacklist: ${builtins.toJSON cfg.url_preview_ip_range_blacklist} url_preview_ip_range_blacklist: ${builtins.toJSON cfg.url_preview_ip_range_blacklist}
url_preview_ip_range_whitelist: ${builtins.toJSON cfg.url_preview_ip_range_whitelist} url_preview_ip_range_whitelist: ${builtins.toJSON cfg.url_preview_ip_range_whitelist}
@ -67,10 +66,10 @@ url_preview_url_blacklist: ${builtins.toJSON cfg.url_preview_url_blacklist}
''} ''}
recaptcha_private_key: "${cfg.recaptcha_private_key}" recaptcha_private_key: "${cfg.recaptcha_private_key}"
recaptcha_public_key: "${cfg.recaptcha_public_key}" recaptcha_public_key: "${cfg.recaptcha_public_key}"
enable_registration_captcha: ${fromBool cfg.enable_registration_captcha} enable_registration_captcha: ${boolToString cfg.enable_registration_captcha}
turn_uris: ${builtins.toJSON cfg.turn_uris} turn_uris: ${builtins.toJSON cfg.turn_uris}
turn_shared_secret: "${cfg.turn_shared_secret}" turn_shared_secret: "${cfg.turn_shared_secret}"
enable_registration: ${fromBool cfg.enable_registration} enable_registration: ${boolToString cfg.enable_registration}
${optionalString (cfg.registration_shared_secret != null) '' ${optionalString (cfg.registration_shared_secret != null) ''
registration_shared_secret: "${cfg.registration_shared_secret}" registration_shared_secret: "${cfg.registration_shared_secret}"
''} ''}
@ -78,15 +77,15 @@ recaptcha_siteverify_api: "https://www.google.com/recaptcha/api/siteverify"
turn_user_lifetime: "${cfg.turn_user_lifetime}" turn_user_lifetime: "${cfg.turn_user_lifetime}"
user_creation_max_duration: ${cfg.user_creation_max_duration} user_creation_max_duration: ${cfg.user_creation_max_duration}
bcrypt_rounds: ${cfg.bcrypt_rounds} bcrypt_rounds: ${cfg.bcrypt_rounds}
allow_guest_access: ${fromBool cfg.allow_guest_access} allow_guest_access: ${boolToString cfg.allow_guest_access}
trusted_third_party_id_servers: ${builtins.toJSON cfg.trusted_third_party_id_servers} trusted_third_party_id_servers: ${builtins.toJSON cfg.trusted_third_party_id_servers}
room_invite_state_types: ${builtins.toJSON cfg.room_invite_state_types} room_invite_state_types: ${builtins.toJSON cfg.room_invite_state_types}
${optionalString (cfg.macaroon_secret_key != null) '' ${optionalString (cfg.macaroon_secret_key != null) ''
macaroon_secret_key: "${cfg.macaroon_secret_key}" macaroon_secret_key: "${cfg.macaroon_secret_key}"
''} ''}
expire_access_token: ${fromBool cfg.expire_access_token} expire_access_token: ${boolToString cfg.expire_access_token}
enable_metrics: ${fromBool cfg.enable_metrics} enable_metrics: ${boolToString cfg.enable_metrics}
report_stats: ${fromBool cfg.report_stats} report_stats: ${boolToString cfg.report_stats}
signing_key_path: "/var/lib/matrix-synapse/homeserver.signing.key" signing_key_path: "/var/lib/matrix-synapse/homeserver.signing.key"
key_refresh_interval: "${cfg.key_refresh_interval}" key_refresh_interval: "${cfg.key_refresh_interval}"
perspectives: perspectives:

View File

@ -41,12 +41,12 @@ let
build-users-group = nixbld build-users-group = nixbld
build-max-jobs = ${toString (cfg.maxJobs)} build-max-jobs = ${toString (cfg.maxJobs)}
build-cores = ${toString (cfg.buildCores)} build-cores = ${toString (cfg.buildCores)}
build-use-sandbox = ${if (builtins.isBool cfg.useSandbox) then (if cfg.useSandbox then "true" else "false") else cfg.useSandbox} build-use-sandbox = ${if (builtins.isBool cfg.useSandbox) then boolToString cfg.useSandbox else cfg.useSandbox}
build-sandbox-paths = ${toString cfg.sandboxPaths} /bin/sh=${sh} $(echo $extraPaths) build-sandbox-paths = ${toString cfg.sandboxPaths} /bin/sh=${sh} $(echo $extraPaths)
binary-caches = ${toString cfg.binaryCaches} binary-caches = ${toString cfg.binaryCaches}
trusted-binary-caches = ${toString cfg.trustedBinaryCaches} trusted-binary-caches = ${toString cfg.trustedBinaryCaches}
binary-cache-public-keys = ${toString cfg.binaryCachePublicKeys} binary-cache-public-keys = ${toString cfg.binaryCachePublicKeys}
auto-optimise-store = ${if cfg.autoOptimiseStore then "true" else "false"} auto-optimise-store = ${boolToString cfg.autoOptimiseStore}
${optionalString cfg.requireSignedBinaryCaches '' ${optionalString cfg.requireSignedBinaryCaches ''
signed-binary-caches = * signed-binary-caches = *
''} ''}

View File

@ -128,7 +128,7 @@ let
certBits = cfg.pki.auto.bits; certBits = cfg.pki.auto.bits;
clientExpiration = cfg.pki.auto.expiration.client; clientExpiration = cfg.pki.auto.expiration.client;
crlExpiration = cfg.pki.auto.expiration.crl; crlExpiration = cfg.pki.auto.expiration.crl;
isAutoConfig = if needToCreateCA then "True" else "False"; isAutoConfig = boolToString needToCreateCA;
}}" > "$out/main.py" }}" > "$out/main.py"
cat > "$out/setup.py" <<EOF cat > "$out/setup.py" <<EOF
from setuptools import setup from setuptools import setup

View File

@ -8,7 +8,7 @@ let
conf = pkgs.writeText "collectd.conf" '' conf = pkgs.writeText "collectd.conf" ''
BaseDir "${cfg.dataDir}" BaseDir "${cfg.dataDir}"
PIDFile "${cfg.pidFile}" PIDFile "${cfg.pidFile}"
AutoLoadPlugin ${if cfg.autoLoadPlugin then "true" else "false"} AutoLoadPlugin ${boolToString cfg.autoLoadPlugin}
Hostname "${config.networking.hostName}" Hostname "${config.networking.hostName}"
LoadPlugin syslog LoadPlugin syslog

View File

@ -5,8 +5,6 @@ with lib;
let let
cfg = config.services.grafana; cfg = config.services.grafana;
b2s = val: if val then "true" else "false";
envOptions = { envOptions = {
PATHS_DATA = cfg.dataDir; PATHS_DATA = cfg.dataDir;
PATHS_PLUGINS = "${cfg.dataDir}/plugins"; PATHS_PLUGINS = "${cfg.dataDir}/plugins";
@ -32,16 +30,16 @@ let
SECURITY_ADMIN_PASSWORD = cfg.security.adminPassword; SECURITY_ADMIN_PASSWORD = cfg.security.adminPassword;
SECURITY_SECRET_KEY = cfg.security.secretKey; SECURITY_SECRET_KEY = cfg.security.secretKey;
USERS_ALLOW_SIGN_UP = b2s cfg.users.allowSignUp; USERS_ALLOW_SIGN_UP = boolToString cfg.users.allowSignUp;
USERS_ALLOW_ORG_CREATE = b2s cfg.users.allowOrgCreate; USERS_ALLOW_ORG_CREATE = boolToString cfg.users.allowOrgCreate;
USERS_AUTO_ASSIGN_ORG = b2s cfg.users.autoAssignOrg; USERS_AUTO_ASSIGN_ORG = boolToString cfg.users.autoAssignOrg;
USERS_AUTO_ASSIGN_ORG_ROLE = cfg.users.autoAssignOrgRole; USERS_AUTO_ASSIGN_ORG_ROLE = cfg.users.autoAssignOrgRole;
AUTH_ANONYMOUS_ENABLED = b2s cfg.auth.anonymous.enable; AUTH_ANONYMOUS_ENABLED = boolToString cfg.auth.anonymous.enable;
AUTH_ANONYMOUS_ORG_NAME = cfg.auth.anonymous.org_name; AUTH_ANONYMOUS_ORG_NAME = cfg.auth.anonymous.org_name;
AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role; AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role;
ANALYTICS_REPORTING_ENABLED = b2s cfg.analytics.reporting.enable; ANALYTICS_REPORTING_ENABLED = boolToString cfg.analytics.reporting.enable;
} // cfg.extraOptions; } // cfg.extraOptions;
in { in {

View File

@ -9,7 +9,7 @@ let
extmapFile = pkgs.writeText "extmap.conf" cfg.extmap; extmapFile = pkgs.writeText "extmap.conf" cfg.extmap;
afpToString = x: if builtins.typeOf x == "bool" afpToString = x: if builtins.typeOf x == "bool"
then (if x then "true" else "false") then boolToString x
else toString x; else toString x;
volumeConfig = name: volumeConfig = name:

View File

@ -5,7 +5,7 @@ with lib;
let let
smbToString = x: if builtins.typeOf x == "bool" smbToString = x: if builtins.typeOf x == "bool"
then (if x then "true" else "false") then boolToString x
else toString x; else toString x;
cfg = config.services.samba; cfg = config.services.samba;

View File

@ -290,14 +290,14 @@ in
shares.total = ${toString settings.client.shares.total} shares.total = ${toString settings.client.shares.total}
[storage] [storage]
enabled = ${if settings.storage.enable then "true" else "false"} enabled = ${boolToString settings.storage.enable}
reserved_space = ${settings.storage.reservedSpace} reserved_space = ${settings.storage.reservedSpace}
[helper] [helper]
enabled = ${if settings.helper.enable then "true" else "false"} enabled = ${boolToString settings.helper.enable}
[sftpd] [sftpd]
enabled = ${if settings.sftpd.enable then "true" else "false"} enabled = ${boolToString settings.sftpd.enable}
${optionalString (settings.sftpd.port != null) ${optionalString (settings.sftpd.port != null)
"port = ${toString settings.sftpd.port}"} "port = ${toString settings.sftpd.port}"}
${optionalString (settings.sftpd.hostPublicKeyFile != null) ${optionalString (settings.sftpd.hostPublicKeyFile != null)

View File

@ -5,7 +5,6 @@ with lib;
let let
cfg = config.services.aiccu; cfg = config.services.aiccu;
showBool = b: if b then "true" else "false";
notNull = a: ! isNull a; notNull = a: ! isNull a;
configFile = pkgs.writeText "aiccu.conf" '' configFile = pkgs.writeText "aiccu.conf" ''
${if notNull cfg.username then "username " + cfg.username else ""} ${if notNull cfg.username then "username " + cfg.username else ""}
@ -13,16 +12,16 @@ let
protocol ${cfg.protocol} protocol ${cfg.protocol}
server ${cfg.server} server ${cfg.server}
ipv6_interface ${cfg.interfaceName} ipv6_interface ${cfg.interfaceName}
verbose ${showBool cfg.verbose} verbose ${boolToString cfg.verbose}
daemonize true daemonize true
automatic ${showBool cfg.automatic} automatic ${boolToString cfg.automatic}
requiretls ${showBool cfg.requireTLS} requiretls ${boolToString cfg.requireTLS}
pidfile ${cfg.pidFile} pidfile ${cfg.pidFile}
defaultroute ${showBool cfg.defaultRoute} defaultroute ${boolToString cfg.defaultRoute}
${if notNull cfg.setupScript then cfg.setupScript else ""} ${if notNull cfg.setupScript then cfg.setupScript else ""}
makebeats ${showBool cfg.makeHeartBeats} makebeats ${boolToString cfg.makeHeartBeats}
noconfigure ${showBool cfg.noConfigure} noconfigure ${boolToString cfg.noConfigure}
behindnat ${showBool cfg.behindNAT} behindnat ${boolToString cfg.behindNAT}
${if cfg.localIPv4Override then "local_ipv4_override" else ""} ${if cfg.localIPv4Override then "local_ipv4_override" else ""}
''; '';

View File

@ -9,7 +9,6 @@ let
listenAddr = cfg.httpListenAddr + ":" + (toString cfg.httpListenPort); listenAddr = cfg.httpListenAddr + ":" + (toString cfg.httpListenPort);
boolStr = x: if x then "true" else "false";
optionalEmptyStr = b: v: optionalString (b != "") v; optionalEmptyStr = b: v: optionalString (b != "") v;
webUIConfig = optionalString cfg.enableWebUI webUIConfig = optionalString cfg.enableWebUI
@ -31,7 +30,7 @@ let
sharedFoldersRecord = sharedFoldersRecord =
concatStringsSep "," (map (entry: concatStringsSep "," (map (entry:
let helper = attr: v: let helper = attr: v:
if (entry ? attr) then boolStr entry.attr else boolStr v; if (entry ? attr) then boolToString entry.attr else boolToString v;
in in
'' ''
{ {
@ -65,11 +64,11 @@ let
"listening_port": ${toString cfg.listeningPort}, "listening_port": ${toString cfg.listeningPort},
"use_gui": false, "use_gui": false,
"check_for_updates": ${boolStr cfg.checkForUpdates}, "check_for_updates": ${boolToString cfg.checkForUpdates},
"use_upnp": ${boolStr cfg.useUpnp}, "use_upnp": ${boolToString cfg.useUpnp},
"download_limit": ${toString cfg.downloadLimit}, "download_limit": ${toString cfg.downloadLimit},
"upload_limit": ${toString cfg.uploadLimit}, "upload_limit": ${toString cfg.uploadLimit},
"lan_encrypt_data": ${boolStr cfg.encryptLAN}, "lan_encrypt_data": ${boolToString cfg.encryptLAN},
${webUIConfig} ${webUIConfig}
${sharedFoldersConfig} ${sharedFoldersConfig}

View File

@ -19,7 +19,7 @@ let
[syncserver] [syncserver]
public_url = ${cfg.publicUrl} public_url = ${cfg.publicUrl}
${optionalString (cfg.sqlUri != "") "sqluri = ${cfg.sqlUri}"} ${optionalString (cfg.sqlUri != "") "sqluri = ${cfg.sqlUri}"}
allow_new_users = ${if cfg.allowNewUsers then "true" else "false"} allow_new_users = ${boolToString cfg.allowNewUsers}
[browserid] [browserid]
backend = tokenserver.verifiers.LocalVerifier backend = tokenserver.verifiers.LocalVerifier

View File

@ -10,8 +10,6 @@ let
extip = "EXTIP=\$(${pkgs.curl.bin}/bin/curl -sLf \"http://jsonip.com\" | ${pkgs.gawk}/bin/awk -F'\"' '{print $4}')"; extip = "EXTIP=\$(${pkgs.curl.bin}/bin/curl -sLf \"http://jsonip.com\" | ${pkgs.gawk}/bin/awk -F'\"' '{print $4}')";
toYesNo = b: if b then "true" else "false";
mkEndpointOpt = name: addr: port: { mkEndpointOpt = name: addr: port: {
enable = mkEnableOption name; enable = mkEnableOption name;
name = mkOption { name = mkOption {
@ -76,10 +74,10 @@ let
i2pdConf = pkgs.writeText "i2pd.conf" i2pdConf = pkgs.writeText "i2pd.conf"
'' ''
ipv4 = ${toYesNo cfg.enableIPv4} ipv4 = ${boolToString cfg.enableIPv4}
ipv6 = ${toYesNo cfg.enableIPv6} ipv6 = ${boolToString cfg.enableIPv6}
notransit = ${toYesNo cfg.notransit} notransit = ${boolToString cfg.notransit}
floodfill = ${toYesNo cfg.floodfill} floodfill = ${boolToString cfg.floodfill}
netid = ${toString cfg.netid} netid = ${toString cfg.netid}
${if isNull cfg.bandwidth then "" else "bandwidth = ${toString cfg.bandwidth}" } ${if isNull cfg.bandwidth then "" else "bandwidth = ${toString cfg.bandwidth}" }
${if isNull cfg.port then "" else "port = ${toString cfg.port}"} ${if isNull cfg.port then "" else "port = ${toString cfg.port}"}
@ -88,14 +86,14 @@ let
transittunnels = ${toString cfg.limits.transittunnels} transittunnels = ${toString cfg.limits.transittunnels}
[upnp] [upnp]
enabled = ${toYesNo cfg.upnp.enable} enabled = ${boolToString cfg.upnp.enable}
name = ${cfg.upnp.name} name = ${cfg.upnp.name}
[precomputation] [precomputation]
elgamal = ${toYesNo cfg.precomputation.elgamal} elgamal = ${boolToString cfg.precomputation.elgamal}
[reseed] [reseed]
verify = ${toYesNo cfg.reseed.verify} verify = ${boolToString cfg.reseed.verify}
file = ${cfg.reseed.file} file = ${cfg.reseed.file}
urls = ${builtins.concatStringsSep "," cfg.reseed.urls} urls = ${builtins.concatStringsSep "," cfg.reseed.urls}
@ -107,11 +105,11 @@ let
(proto: let portStr = toString proto.port; in (proto: let portStr = toString proto.port; in
'' ''
[${proto.name}] [${proto.name}]
enabled = ${toYesNo proto.enable} enabled = ${boolToString proto.enable}
address = ${proto.address} address = ${proto.address}
port = ${toString proto.port} port = ${toString proto.port}
${if proto ? keys then "keys = ${proto.keys}" else ""} ${if proto ? keys then "keys = ${proto.keys}" else ""}
${if proto ? auth then "auth = ${toYesNo proto.auth}" else ""} ${if proto ? auth then "auth = ${boolToString proto.auth}" else ""}
${if proto ? user then "user = ${proto.user}" else ""} ${if proto ? user then "user = ${proto.user}" else ""}
${if proto ? pass then "pass = ${proto.pass}" else ""} ${if proto ? pass then "pass = ${proto.pass}" else ""}
${if proto ? outproxy then "outproxy = ${proto.outproxy}" else ""} ${if proto ? outproxy then "outproxy = ${proto.outproxy}" else ""}

View File

@ -12,7 +12,7 @@ let
substFiles = [ "=>/conf" ./ircd.conf ]; substFiles = [ "=>/conf" ./ircd.conf ];
inherit (pkgs) ircdHybrid coreutils su iproute gnugrep procps; inherit (pkgs) ircdHybrid coreutils su iproute gnugrep procps;
ipv6Enabled = if config.networking.enableIPv6 then "true" else "false"; ipv6Enabled = boolToString config.networking.enableIPv6;
inherit (cfg) serverName sid description adminEmail inherit (cfg) serverName sid description adminEmail
extraPort; extraPort;

View File

@ -16,7 +16,7 @@ let
pid_file /run/mosquitto/pid pid_file /run/mosquitto/pid
acl_file ${aclFile} acl_file ${aclFile}
persistence true persistence true
allow_anonymous ${if cfg.allowAnonymous then "true" else "false"} allow_anonymous ${boolToString cfg.allowAnonymous}
bind_address ${cfg.host} bind_address ${cfg.host}
port ${toString cfg.port} port ${toString cfg.port}
${listenerConf} ${listenerConf}

View File

@ -26,17 +26,17 @@ let
textmessagelength=${toString cfg.textMsgLength} textmessagelength=${toString cfg.textMsgLength}
imagemessagelength=${toString cfg.imgMsgLength} imagemessagelength=${toString cfg.imgMsgLength}
allowhtml=${if cfg.allowHtml then "true" else "false"} allowhtml=${boolToString cfg.allowHtml}
logdays=${toString cfg.logDays} logdays=${toString cfg.logDays}
bonjour=${if cfg.bonjour then "true" else "false"} bonjour=${boolToString cfg.bonjour}
sendversion=${if cfg.sendVersion then "true" else "false"} sendversion=${boolToString cfg.sendVersion}
${if cfg.registerName == "" then "" else "registerName="+cfg.registerName} ${if cfg.registerName == "" then "" else "registerName="+cfg.registerName}
${if cfg.registerPassword == "" then "" else "registerPassword="+cfg.registerPassword} ${if cfg.registerPassword == "" then "" else "registerPassword="+cfg.registerPassword}
${if cfg.registerUrl == "" then "" else "registerUrl="+cfg.registerUrl} ${if cfg.registerUrl == "" then "" else "registerUrl="+cfg.registerUrl}
${if cfg.registerHostname == "" then "" else "registerHostname="+cfg.registerHostname} ${if cfg.registerHostname == "" then "" else "registerHostname="+cfg.registerHostname}
certrequired=${if cfg.clientCertRequired then "true" else "false"} certrequired=${boolToString cfg.clientCertRequired}
${if cfg.sslCert == "" then "" else "sslCert="+cfg.sslCert} ${if cfg.sslCert == "" then "" else "sslCert="+cfg.sslCert}
${if cfg.sslKey == "" then "" else "sslKey="+cfg.sslKey} ${if cfg.sslKey == "" then "" else "sslKey="+cfg.sslKey}
${if cfg.sslCa == "" then "" else "sslCA="+cfg.sslCa} ${if cfg.sslCa == "" then "" else "sslCA="+cfg.sslCa}

View File

@ -241,6 +241,7 @@ in {
users.extraUsers = [{ users.extraUsers = [{
name = "nm-openvpn"; name = "nm-openvpn";
uid = config.ids.uids.nm-openvpn; uid = config.ids.uids.nm-openvpn;
extraGroups = [ "networkmanager" ];
}]; }];
systemd.packages = cfg.packages; systemd.packages = cfg.packages;

View File

@ -219,7 +219,7 @@ in
data_path = "/var/lib/prosody" data_path = "/var/lib/prosody"
allow_registration = ${ if cfg.allowRegistration then "true" else "false" }; allow_registration = ${boolToString cfg.allowRegistration};
${ optionalString cfg.modules.console "console_enabled = true;" } ${ optionalString cfg.modules.console "console_enabled = true;" }
@ -244,7 +244,7 @@ in
${ lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: '' ${ lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: ''
VirtualHost "${v.domain}" VirtualHost "${v.domain}"
enabled = ${if v.enabled then "true" else "false"}; enabled = ${boolToString v.enabled};
${ optionalString (v.ssl != null) (createSSLOptsStr v.ssl) } ${ optionalString (v.ssl != null) (createSSLOptsStr v.ssl) }
${ v.extraConfig } ${ v.extraConfig }
'') cfg.virtualHosts) } '') cfg.virtualHosts) }

View File

@ -288,8 +288,11 @@ in
}; };
systemd.services.smokeping = { systemd.services.smokeping = {
wantedBy = [ "multi-user.target"]; wantedBy = [ "multi-user.target"];
serviceConfig.User = cfg.user; serviceConfig = {
serviceConfig.PermissionsStartOnly = true; User = cfg.user;
PermissionsStartOnly = true;
Restart = "on-failure";
};
preStart = '' preStart = ''
mkdir -m 0755 -p ${smokepingHome}/cache ${smokepingHome}/data mkdir -m 0755 -p ${smokepingHome}/cache ${smokepingHome}/data
rm -f ${smokepingHome}/cropper rm -f ${smokepingHome}/cropper

View File

@ -316,8 +316,6 @@ in
UsePAM yes UsePAM yes
UsePrivilegeSeparation sandbox
AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"} AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}
${concatMapStrings (port: '' ${concatMapStrings (port: ''
Port ${toString port} Port ${toString port}

View File

@ -5,7 +5,7 @@ with lib;
let let
cfg = config.services.sslh; cfg = config.services.sslh;
configFile = pkgs.writeText "sslh.conf" '' configFile = pkgs.writeText "sslh.conf" ''
verbose: ${if cfg.verbose then "true" else "false"}; verbose: ${boolToString cfg.verbose};
foreground: true; foreground: true;
inetd: false; inetd: false;
numeric: false; numeric: false;

View File

@ -35,7 +35,7 @@ let
Port = ${toString confOpts.port} Port = ${toString confOpts.port}
IPv4 = true IPv4 = true
IPv6 = true IPv6 = true
SSL = ${if confOpts.useSSL then "true" else "false"} SSL = ${boolToString confOpts.useSSL}
</Listener> </Listener>
<User ${confOpts.userName}> <User ${confOpts.userName}>

View File

@ -143,10 +143,12 @@ in
}; };
preStart = '' preStart = ''
${pkgs.coreutils}/bin/mkdir -m 0770 -p /var/spool/fcron install \
${pkgs.coreutils}/bin/chown -R fcron:fcron /var/spool/fcron --mode 0770 \
--owner fcron \
--group fcron \
--directory /var/spool/fcron
# load system crontab file # load system crontab file
set -x
#${pkgs.fcron}/bin/fcrontab -u systab ${pkgs.writeText "systab" cfg.systab} #${pkgs.fcron}/bin/fcrontab -u systab ${pkgs.writeText "systab" cfg.systab}
''; '';

View File

@ -10,9 +10,6 @@ let
# repeatedArgs (arg: "--arg=${arg}") args # repeatedArgs (arg: "--arg=${arg}") args
repeatedArgs = concatMapStringsSep " "; repeatedArgs = concatMapStringsSep " ";
# 'toString' doesn't quite do what we want for bools.
fromBool = x: if x then "true" else "false";
# oauth2_proxy provides many options that are only relevant if you are using # oauth2_proxy provides many options that are only relevant if you are using
# a certain provider. This set maps from provider name to a function that # a certain provider. This set maps from provider name to a function that
# takes the configuration and returns a string that can be inserted into the # takes the configuration and returns a string that can be inserted into the
@ -49,24 +46,24 @@ let
--client-secret='${cfg.clientSecret}' \ --client-secret='${cfg.clientSecret}' \
${optionalString (!isNull cfg.cookie.domain) "--cookie-domain='${cfg.cookie.domain}'"} \ ${optionalString (!isNull cfg.cookie.domain) "--cookie-domain='${cfg.cookie.domain}'"} \
--cookie-expire='${cfg.cookie.expire}' \ --cookie-expire='${cfg.cookie.expire}' \
--cookie-httponly=${fromBool cfg.cookie.httpOnly} \ --cookie-httponly=${boolToString cfg.cookie.httpOnly} \
--cookie-name='${cfg.cookie.name}' \ --cookie-name='${cfg.cookie.name}' \
--cookie-secret='${cfg.cookie.secret}' \ --cookie-secret='${cfg.cookie.secret}' \
--cookie-secure=${fromBool cfg.cookie.secure} \ --cookie-secure=${boolToString cfg.cookie.secure} \
${optionalString (!isNull cfg.cookie.refresh) "--cookie-refresh='${cfg.cookie.refresh}'"} \ ${optionalString (!isNull cfg.cookie.refresh) "--cookie-refresh='${cfg.cookie.refresh}'"} \
${optionalString (!isNull cfg.customTemplatesDir) "--custom-templates-dir='${cfg.customTemplatesDir}'"} \ ${optionalString (!isNull cfg.customTemplatesDir) "--custom-templates-dir='${cfg.customTemplatesDir}'"} \
${repeatedArgs (x: "--email-domain='${x}'") cfg.email.domains} \ ${repeatedArgs (x: "--email-domain='${x}'") cfg.email.domains} \
--http-address='${cfg.httpAddress}' \ --http-address='${cfg.httpAddress}' \
${optionalString (!isNull cfg.htpasswd.file) "--htpasswd-file='${cfg.htpasswd.file}' --display-htpasswd-form=${fromBool cfg.htpasswd.displayForm}"} \ ${optionalString (!isNull cfg.htpasswd.file) "--htpasswd-file='${cfg.htpasswd.file}' --display-htpasswd-form=${boolToString cfg.htpasswd.displayForm}"} \
${optionalString (!isNull cfg.loginURL) "--login-url='${cfg.loginURL}'"} \ ${optionalString (!isNull cfg.loginURL) "--login-url='${cfg.loginURL}'"} \
--pass-access-token=${fromBool cfg.passAccessToken} \ --pass-access-token=${boolToString cfg.passAccessToken} \
--pass-basic-auth=${fromBool cfg.passBasicAuth} \ --pass-basic-auth=${boolToString cfg.passBasicAuth} \
--pass-host-header=${fromBool cfg.passHostHeader} \ --pass-host-header=${boolToString cfg.passHostHeader} \
--proxy-prefix='${cfg.proxyPrefix}' \ --proxy-prefix='${cfg.proxyPrefix}' \
${optionalString (!isNull cfg.profileURL) "--profile-url='${cfg.profileURL}'"} \ ${optionalString (!isNull cfg.profileURL) "--profile-url='${cfg.profileURL}'"} \
${optionalString (!isNull cfg.redeemURL) "--redeem-url='${cfg.redeemURL}'"} \ ${optionalString (!isNull cfg.redeemURL) "--redeem-url='${cfg.redeemURL}'"} \
${optionalString (!isNull cfg.redirectURL) "--redirect-url='${cfg.redirectURL}'"} \ ${optionalString (!isNull cfg.redirectURL) "--redirect-url='${cfg.redirectURL}'"} \
--request-logging=${fromBool cfg.requestLogging} \ --request-logging=${boolToString cfg.requestLogging} \
${optionalString (!isNull cfg.scope) "--scope='${cfg.scope}'"} \ ${optionalString (!isNull cfg.scope) "--scope='${cfg.scope}'"} \
${repeatedArgs (x: "--skip-auth-regex='${x}'") cfg.skipAuthRegexes} \ ${repeatedArgs (x: "--skip-auth-regex='${x}'") cfg.skipAuthRegexes} \
${optionalString (!isNull cfg.signatureKey) "--signature-key='${cfg.signatureKey}'"} \ ${optionalString (!isNull cfg.signatureKey) "--signature-key='${cfg.signatureKey}'"} \

View File

@ -15,8 +15,7 @@ let
# Strings must be quoted, ints and bools must not (for settings.json). # Strings must be quoted, ints and bools must not (for settings.json).
toOption = x: toOption = x:
if x == true then "true" if isBool x then boolToString x
else if x == false then "false"
else if isInt x then toString x else if isInt x then toString x
else toString ''"${x}"''; else toString ''"${x}"'';

View File

@ -137,7 +137,7 @@ in
sed -e 's,port="8095",port="${toString cfg.listenPort}" address="${cfg.listenAddress}",' \ sed -e 's,port="8095",port="${toString cfg.listenPort}" address="${cfg.listenAddress}",' \
'' + (lib.optionalString cfg.proxy.enable '' '' + (lib.optionalString cfg.proxy.enable ''
-e 's,compression="on",compression="off" protocol="HTTP/1.1" proxyName="${cfg.proxy.name}" proxyPort="${toString cfg.proxy.port}" scheme="${cfg.proxy.scheme}" secure="${if cfg.proxy.secure then "true" else "false"}",' \ -e 's,compression="on",compression="off" protocol="HTTP/1.1" proxyName="${cfg.proxy.name}" proxyPort="${toString cfg.proxy.port}" scheme="${cfg.proxy.scheme}" secure="${boolToString cfg.proxy.secure}",' \
'') + '' '') + ''
${pkg}/apache-tomcat/conf/server.xml.dist > ${cfg.home}/server.xml ${pkg}/apache-tomcat/conf/server.xml.dist > ${cfg.home}/server.xml
''; '';

View File

@ -12,11 +12,11 @@ let
port: ${toString cfg.quasselCorePort}, // quasselcore port port: ${toString cfg.quasselCorePort}, // quasselcore port
initialBacklogLimit: ${toString cfg.initialBacklogLimit}, // Amount of backlogs to fetch per buffer on connection initialBacklogLimit: ${toString cfg.initialBacklogLimit}, // Amount of backlogs to fetch per buffer on connection
backlogLimit: ${toString cfg.backlogLimit}, // Amount of backlogs to fetch per buffer after first retrieval backlogLimit: ${toString cfg.backlogLimit}, // Amount of backlogs to fetch per buffer after first retrieval
securecore: ${if cfg.secureCore then "true" else "false"}, // Connect to the core using SSL securecore: ${boolToString cfg.secureCore}, // Connect to the core using SSL
theme: '${cfg.theme}' // Default UI theme theme: '${cfg.theme}' // Default UI theme
}, },
themes: ['default', 'darksolarized'], // Available themes themes: ['default', 'darksolarized'], // Available themes
forcedefault: ${if cfg.forceHostAndPort then "true" else "false"}, // Will force default host and port to be used, and will hide the corresponding fields in the UI forcedefault: ${boolToString cfg.forceHostAndPort}, // Will force default host and port to be used, and will hide the corresponding fields in the UI
prefixpath: '${cfg.prefixPath}' // Configure this if you use a reverse proxy prefixpath: '${cfg.prefixPath}' // Configure this if you use a reverse proxy
}; };
''; '';

View File

@ -6,8 +6,6 @@ let
configVersion = 26; configVersion = 26;
boolToString = b: if b then "true" else "false";
cacheDir = "cache"; cacheDir = "cache";
lockDir = "lock"; lockDir = "lock";
feedIconsDir = "feed-icons"; feedIconsDir = "feed-icons";

View File

@ -60,7 +60,8 @@ in
"/gitweb/" => "${pkgs.git}/share/gitweb/gitweb.cgi" "/gitweb/" => "${pkgs.git}/share/gitweb/gitweb.cgi"
) )
setenv.add-environment = ( setenv.add-environment = (
"GITWEB_CONFIG" => "${gitwebConfigFile}" "GITWEB_CONFIG" => "${gitwebConfigFile}",
"HOME" => "${cfg.projectroot}"
) )
} }
''; '';

View File

@ -59,7 +59,7 @@ let
[Autologin] [Autologin]
User=${cfg.autoLogin.user} User=${cfg.autoLogin.user}
Session=${defaultSessionName}.desktop Session=${defaultSessionName}.desktop
Relogin=${if cfg.autoLogin.relogin then "true" else "false"} Relogin=${boolToString cfg.autoLogin.relogin}
''} ''}
${cfg.extraConfig} ${cfg.extraConfig}

View File

@ -74,7 +74,7 @@ in {
MatchIsTouchpad "on" MatchIsTouchpad "on"
Identifier "Touchpads" Identifier "Touchpads"
Driver "mtrack" Driver "mtrack"
Option "IgnorePalm" "${if cfg.ignorePalm then "true" else "false"}" Option "IgnorePalm" "${boolToString cfg.ignorePalm}"
Option "ClickFinger1" "${builtins.elemAt cfg.buttonsMap 0}" Option "ClickFinger1" "${builtins.elemAt cfg.buttonsMap 0}"
Option "ClickFinger2" "${builtins.elemAt cfg.buttonsMap 1}" Option "ClickFinger2" "${builtins.elemAt cfg.buttonsMap 1}"
Option "ClickFinger3" "${builtins.elemAt cfg.buttonsMap 2}" Option "ClickFinger3" "${builtins.elemAt cfg.buttonsMap 2}"

View File

@ -10,7 +10,7 @@ rec {
makeUnit = name: unit: makeUnit = name: unit:
let let
pathSafeName = lib.replaceChars ["@" ":" "\\"] ["-" "-" "-"] name; pathSafeName = lib.replaceChars ["@" ":" "\\" "[" "]"] ["-" "-" "-" "" ""] name;
in in
if unit.enable then if unit.enable then
pkgs.runCommand "unit-${pathSafeName}" pkgs.runCommand "unit-${pathSafeName}"

View File

@ -22,6 +22,9 @@ rec {
freicoin = callPackage ./freicoin.nix { boost = pkgs.boost155; }; freicoin = callPackage ./freicoin.nix { boost = pkgs.boost155; };
go-ethereum = callPackage ./go-ethereum.nix { }; go-ethereum = callPackage ./go-ethereum.nix { };
hivemind = callPackage ./hivemind.nix { withGui = true; };
hivemindd = callPackage ./hivemind.nix { withGui = false; };
litecoin = callPackage ./litecoin.nix { withGui = true; }; litecoin = callPackage ./litecoin.nix { withGui = true; };
litecoind = callPackage ./litecoin.nix { withGui = false; }; litecoind = callPackage ./litecoin.nix { withGui = false; };

View File

@ -4,16 +4,16 @@ with rustPlatform;
buildRustPackage rec { buildRustPackage rec {
name = "ethabi-${version}"; name = "ethabi-${version}";
version = "0.2.1"; version = "1.0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ethcore"; owner = "paritytech";
repo = "ethabi"; repo = "ethabi";
rev = "fbed04984cab0db8767e01054ee16271b8e36281"; rev = "18ddc983d77b2a97e6c322abcc23bec59940d65f";
sha256 = "1zgyyg1i5wmz8l1405yg5jmq4ddq530sl7018pkkc7l6cjj3bbhd"; sha256 = "1rg7ydvnhlg8w6blilm3cv6v4q51x1hgrbkln2ikhpdq0vakp5fd";
}; };
depsSha256 = "0srxv0wbhvyflc967lkpd2mx5nk7asx2cbxa0qxvas16wy6vxz52"; depsSha256 = "1n4rxipna307r4xppb2iaads7kpa3yjv99fimvpn8l0f999ir2rz";
meta = { meta = {
description = "Ethereum function call encoding (ABI) utility"; description = "Ethereum function call encoding (ABI) utility";

View File

@ -0,0 +1,39 @@
{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent
, withGui }:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "hivemind" + (toString (optional (!withGui) "d")) + "-" + version;
version = "unstable";
src = fetchFromGitHub {
owner = "bitcoin-hivemind";
repo = "hivemind";
rev = "147973cfe76867410578d91d6f0a8df105cab4e0";
sha256 = "1ndqqma1b0sh2gn7cl8d9fg44q0g2g42jr2y0nifkjgfjn3c7l5h";
};
nativeBuildInputs = [ pkgconfig autoreconfHook ];
buildInputs = [ openssl db48 boost zlib
miniupnpc protobuf libevent]
++ optionals stdenv.isLinux [ utillinux ]
++ optionals withGui [ qt4 qrencode ];
configureFlags = [ "--with-boost-libdir=${boost.out}/lib"
"--with-incompatible-bdb"
] ++ optionals withGui [ "--with-gui=qt4" ];
meta = {
description = "Peer-to-Peer oracle protocol";
longDescription= ''
Hivemind is a Peer-to-Peer Oracle Protocol which absorbs accurate data
into a blockchain so that Bitcoin-users can speculate in Prediction
Markets.
'';
homepage = "https://bitcoinhivemind.com";
maintainers = with maintainers; [ canndrew ];
license = licenses.mit;
platforms = platforms.unix;
};
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "atom-${version}"; name = "atom-${version}";
version = "1.15.0"; version = "1.16.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb"; url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "0w790b9m94m28bx7n94pg2zjxrcjf13228lsb0pl8kyfsk2k2glx"; sha256 = "10qzhfz34i7x7z5fv5a73a6aiwxvanyn0v825a6yz9qfc2mg4shd";
name = "${name}.deb"; name = "${name}.deb";
}; };

View File

@ -820,10 +820,10 @@
gnorb = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: gnorb = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "gnorb"; pname = "gnorb";
version = "1.2.1"; version = "1.2.3";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/gnorb-1.2.1.tar"; url = "https://elpa.gnu.org/packages/gnorb-1.2.3.tar";
sha256 = "0mip0czvpdl26xz9wamii5azj9bacjhdg0jgkrxyv17vqqlbag9x"; sha256 = "1bqm08i2aam4v4gfzyxfmic0rg0ka7cns38khwj42vhwgv045xc7";
}; };
packageRequires = [ cl-lib ]; packageRequires = [ cl-lib ];
meta = { meta = {
@ -940,10 +940,10 @@
}) {}; }) {};
ivy = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { ivy = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "ivy"; pname = "ivy";
version = "0.8.0"; version = "0.9.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/ivy-0.8.0.tar"; url = "https://elpa.gnu.org/packages/ivy-0.9.0.tar";
sha256 = "1c1impdk1p082v6nb9lms4n258z6ngz8ra90cshprs0ingrk705p"; sha256 = "1p5gfy16xik613ib30mv4yac004z4lpsybmraln1badyd6n3b07s";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {

File diff suppressed because it is too large Load Diff

View File

@ -63,6 +63,10 @@ with stdenv; lib.makeOverridable mkDerivation rec {
makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${execName}" \ makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${execName}" \
--prefix PATH : "$out/libexec/${name}:${stdenv.lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \ --prefix PATH : "$out/libexec/${name}:${stdenv.lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
# Some internals want libstdc++.so.6
stdenv.cc.cc.lib
]}" \
--set JDK_HOME "$jdk" \ --set JDK_HOME "$jdk" \
--set ${hiName}_JDK "$jdk" \ --set ${hiName}_JDK "$jdk" \
--set ANDROID_JAVA_HOME "$jdk" \ --set ANDROID_JAVA_HOME "$jdk" \

View File

@ -1,4 +1,4 @@
{ stdenv, callPackage, fetchurl, makeDesktopItem, makeWrapper, patchelf { lib, stdenv, callPackage, fetchurl, makeDesktopItem, makeWrapper, patchelf
, coreutils, gnugrep, which, git, python, unzip, p7zip , coreutils, gnugrep, which, git, python, unzip, p7zip
, androidsdk, jdk , androidsdk, jdk
}: }:
@ -6,10 +6,12 @@
assert stdenv.isLinux; assert stdenv.isLinux;
let let
mkIdeaProduct = callPackage ./common.nix { }; mkJetBrainsProduct = callPackage ./common.nix { };
# Sorted alphabetically
buildClion = { name, version, src, license, description, wmClass }: buildClion = { name, version, src, license, description, wmClass }:
(mkIdeaProduct rec { (mkJetBrainsProduct rec {
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "CLion"; product = "CLion";
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -24,8 +26,43 @@ let
}; };
}); });
buildDataGrip = { name, version, src, license, description, wmClass }:
(mkJetBrainsProduct {
inherit name version src wmClass jdk;
product = "DataGrip";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/datagrip/";
inherit description license;
longDescription = ''
DataGrip is a new IDE from JetBrains built for database admins.
It allows you to quickly migrate and refactor relational databases,
construct efficient, statically checked SQL queries and much more.
'';
maintainers = with maintainers; [ loskutov ];
platforms = platforms.linux;
};
});
buildGogland = { name, version, src, license, description, wmClass }:
(mkJetBrainsProduct {
inherit name version src wmClass jdk;
product = "Gogland";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/go/";
inherit description license;
longDescription = ''
Gogland is the codename for a new commercial IDE by JetBrains
aimed at providing an ergonomic environment for Go development.
The new IDE extends the IntelliJ platform with the coding assistance
and tool integrations specific for the Go language
'';
maintainers = [ maintainers.miltador ];
platforms = platforms.linux;
};
});
buildIdea = { name, version, src, license, description, wmClass }: buildIdea = { name, version, src, license, description, wmClass }:
(mkIdeaProduct rec { (mkJetBrainsProduct rec {
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "IDEA"; product = "IDEA";
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -41,21 +78,8 @@ let
}; };
}); });
buildRubyMine = { name, version, src, license, description, wmClass }:
(mkIdeaProduct rec {
inherit name version src wmClass jdk;
product = "RubyMine";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/ruby/";
inherit description license;
longDescription = description;
maintainers = with maintainers; [ edwtjo ];
platforms = platforms.linux;
};
});
buildPhpStorm = { name, version, src, license, description, wmClass }: buildPhpStorm = { name, version, src, license, description, wmClass }:
(mkIdeaProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "PhpStorm"; product = "PhpStorm";
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -71,25 +95,8 @@ let
}; };
}); });
buildWebStorm = { name, version, src, license, description, wmClass }:
(mkIdeaProduct {
inherit name version src wmClass jdk;
product = "WebStorm";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/webstorm/";
inherit description license;
longDescription = ''
WebStorm provides an editor for HTML, JavaScript (incl. Node.js),
and CSS with on-the-fly code analysis, error prevention and
automated refactorings for JavaScript code.
'';
maintainers = with maintainers; [ abaldeau ];
platforms = platforms.linux;
};
});
buildPycharm = { name, version, src, license, description, wmClass }: buildPycharm = { name, version, src, license, description, wmClass }:
(mkIdeaProduct rec { (mkJetBrainsProduct rec {
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "PyCharm"; product = "PyCharm";
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -115,47 +122,101 @@ let
propagatedUserEnvPkgs = [ python ]; propagatedUserEnvPkgs = [ python ];
}; };
buildDataGrip = { name, version, src, license, description, wmClass }: buildRider = { name, version, src, license, description, wmClass }:
(mkIdeaProduct { lib.overrideDerivation (mkJetBrainsProduct rec {
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "DataGrip"; product = "Rider";
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/datagrip/"; homepage = "https://www.jetbrains.com/rider/";
inherit description license; inherit description license;
longDescription = '' longDescription = ''
DataGrip is a new IDE from JetBrains built for database admins. JetBrains Rider is a new .NET IDE based on the IntelliJ
It allows you to quickly migrate and refactor relational databases, platform and ReSharper. Rider supports .NET Core,
construct efficient, statically checked SQL queries and much more. .NET Framework and Mono based projects. This lets you
develop a wide array of applications including .NET desktop
apps, services and libraries, Unity games, ASP.NET and
ASP.NET Core web applications.
''; '';
maintainers = with maintainers; [ loskutov ]; maintainers = [ maintainers.miltador ];
platforms = platforms.linux;
};
}) (attrs: {
patchPhase = attrs.patchPhase + ''
# Patch built-in mono for ReSharperHost to start successfully
interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
patchelf --set-interpreter "$interpreter" lib/ReSharperHost/linux-x64/mono/bin/mono-sgen
'';
});
buildRubyMine = { name, version, src, license, description, wmClass }:
(mkJetBrainsProduct rec {
inherit name version src wmClass jdk;
product = "RubyMine";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/ruby/";
inherit description license;
longDescription = description;
maintainers = with maintainers; [ edwtjo ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
}); });
buildWebStorm = { name, version, src, license, description, wmClass }:
(mkJetBrainsProduct {
inherit name version src wmClass jdk;
product = "WebStorm";
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/webstorm/";
inherit description license;
longDescription = ''
WebStorm provides an editor for HTML, JavaScript (incl. Node.js),
and CSS with on-the-fly code analysis, error prevention and
automated refactorings for JavaScript code.
'';
maintainers = with maintainers; [ abaldeau ];
platforms = platforms.linux;
};
});
in in
{ {
# Sorted alphabetically
clion = buildClion rec { clion = buildClion rec {
name = "clion-${version}"; name = "clion-${version}";
version = "2016.3.3"; version = "2017.1";
description = "C/C++ IDE. New. Intelligent. Cross-platform"; description = "C/C++ IDE. New. Intelligent. Cross-platform";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz"; url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
sha256 = "1zziyg0y51lfybflq83qwd94wcypkv4gh0cdkwfybbk4yidpnz05"; sha256 = "00fc023ca56f2781864cddc7bd5c2897d837d1db17dd8f987abe046ed4df3ca5";
}; };
wmClass = "jetbrains-clion"; wmClass = "jetbrains-clion";
}; };
clion1 = buildClion rec { datagrip = buildDataGrip rec {
name = "clion-${version}"; name = "datagrip-${version}";
version = "1.2.5"; version = "2017.1";
description = "C/C++ IDE. New. Intelligent. Cross-platform"; description = "Your Swiss Army Knife for Databases and SQL";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/cpp/${name}.tar.gz"; url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
sha256 = "0ll1rcnnbd1if6x5rp3qw35lvp5zdzmvyg9n1lha89i34xiw36jp"; sha256 = "91ee6a1e43d75a45ae51829835e457da85262410d89e617324d0239ba5625dfa";
}; };
wmClass = "jetbrains-clion"; wmClass = "jetbrains-datagrip";
};
gogland = buildGogland rec {
name = "gogland-${version}";
version = "171.3780.106";
description = "Up and Coming Go IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/go/${name}.tar.gz";
sha256 = "cbe84d07fdec6425d8ac63b0ecd5e04148299c1c0c6d05751523aaaa9360110b";
};
wmClass = "jetbrains-gogland";
}; };
idea14-community = buildIdea rec { idea14-community = buildIdea rec {
@ -218,40 +279,28 @@ in
wmClass = "jetbrains-idea"; wmClass = "jetbrains-idea";
}; };
ruby-mine = buildRubyMine rec { phpstorm = buildPhpStorm rec {
name = "ruby-mine-${version}"; name = "phpstorm-${version}";
version = "2016.3.2"; version = "2017.1";
description = "The Most Intelligent Ruby and Rails IDE"; description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "1fqlrvhlk09z8nx68qv4nqs5n8ldia3lixsl6r04gsfyl1a69sb6"; sha256 = "1ynffm5x8fqq2r71rr9rbvdifbwbvbhqb2x1hkyy4az38gxal1bm";
}; };
wmClass = "jetbrains-rubymine"; wmClass = "jetbrains-phpstorm";
}; };
ruby-mine7 = buildRubyMine rec { phpstorm10 = buildPhpStorm rec {
name = "ruby-mine-${version}"; name = "phpstorm-${version}";
version = "7.1.5"; version = "10.0.4";
description = "The Most Intelligent Ruby and Rails IDE"; description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "04fcxj1xlap9mxmwf051s926p2darlj5kwl4lms2gy5d8b2lhd5l"; sha256 = "0fi042zvjpg5pn2mnhj3bbrdkl1b9vmhpf2l6ca4nr0rhjjv7dsm";
}; };
wmClass = "jetbrains-rubymine"; wmClass = "jetbrains-phpstorm";
};
ruby-mine8 = buildRubyMine rec {
name = "ruby-mine-${version}";
version = "8.0.4";
description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "0hipxib7377232w1jbf8h98bmh0djkllsrq3lq0w3fdxqglma43a";
};
wmClass = "jetbrains-rubymine";
}; };
pycharm-community = buildPycharm rec { pycharm-community = buildPycharm rec {
@ -278,28 +327,52 @@ in
wmClass = "jetbrains-pycharm"; wmClass = "jetbrains-pycharm";
}; };
phpstorm = buildPhpStorm rec { rider = buildRider rec {
name = "phpstorm-${version}"; name = "rider-${version}";
version = "2017.1"; version = "171.3655.1246";
description = "Professional IDE for Web and PHP developers"; description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/resharper/riderRS-${version}.tar.gz";
sha256 = "1ynffm5x8fqq2r71rr9rbvdifbwbvbhqb2x1hkyy4az38gxal1bm"; sha256 = "90f9f8f1919e0f1dad42387f1a308483448323b089c13c409f3dd4d52992266b";
}; };
wmClass = "jetbrains-phpstorm"; wmClass = "jetbrains-rider";
}; };
phpstorm10 = buildPhpStorm rec { ruby-mine = buildRubyMine rec {
name = "phpstorm-${version}"; name = "ruby-mine-${version}";
version = "10.0.4"; version = "2017.1";
description = "Professional IDE for Web and PHP developers"; description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "0fi042zvjpg5pn2mnhj3bbrdkl1b9vmhpf2l6ca4nr0rhjjv7dsm"; sha256 = "6c27f43ddc385ffba2cb2f011b80ab46d9b128d0fccf3b4ea43272fe36401a3a";
}; };
wmClass = "jetbrains-phpstorm"; wmClass = "jetbrains-rubymine";
};
ruby-mine7 = buildRubyMine rec {
name = "ruby-mine-${version}";
version = "7.1.5";
description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "04fcxj1xlap9mxmwf051s926p2darlj5kwl4lms2gy5d8b2lhd5l";
};
wmClass = "jetbrains-rubymine";
};
ruby-mine8 = buildRubyMine rec {
name = "ruby-mine-${version}";
version = "8.0.4";
description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "0hipxib7377232w1jbf8h98bmh0djkllsrq3lq0w3fdxqglma43a";
};
wmClass = "jetbrains-rubymine";
}; };
webstorm = buildWebStorm rec { webstorm = buildWebStorm rec {
@ -337,16 +410,4 @@ in
}; };
wmClass = "jetbrains-webstorm"; wmClass = "jetbrains-webstorm";
}; };
datagrip = buildDataGrip rec {
name = "datagrip-${version}";
version = "2016.3.2";
description = "Your Swiss Army Knife for Databases and SQL";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
sha256 = "19njb6i7nl6szql7cy99jmig59b304c6im3988p1dd8dj2j6csv3";
};
wmClass = "jetbrains-datagrip";
};
} }

View File

@ -3,25 +3,20 @@
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "kakoune-nightly-${version}"; name = "kakoune-unstable-${version}";
version = "2017-02-09"; version = "2017-04-12";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "kakoune"; repo = "kakoune";
owner = "mawww"; owner = "mawww";
rev = "9ba1665e58ee84b6596d89e6ef75f7c32e7c6c14"; rev = "7482d117cc85523e840dff595134dcb9cdc62207";
sha256 = "1l25mzq64a481qlsyh25rzp5rzajrkx4dq29677z85lnjqn30wbi"; sha256 = "08j611y192n9vln9i94ldlvz3k0sg79dkmfc0b1vczrmaxhpgpfh";
}; };
buildInputs = [ ncurses boost asciidoc docbook_xsl libxslt ]; buildInputs = [ ncurses boost asciidoc docbook_xsl libxslt ];
buildPhase = '' postPatch = ''
sed -ie 's#--no-xmllint#--no-xmllint --xsltproc-opts="--nonet"#g' src/Makefile
substituteInPlace src/Makefile --replace "boost_regex-mt" "boost_regex"
export PREFIX=$out export PREFIX=$out
(cd src && make ) cd src
''; sed -ie 's#--no-xmllint#--no-xmllint --xsltproc-opts="--nonet"#g' Makefile
installPhase = ''
(cd src && make install)
''; '';
meta = { meta = {

View File

@ -20,11 +20,11 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "nano-${version}"; name = "nano-${version}";
version = "2.8.0"; version = "2.8.1";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/nano/${name}.tar.xz"; url = "mirror://gnu/nano/${name}.tar.xz";
sha256 = "1hjxr0kgq3q1fcns9y4lj0dbhjf33j3pa2wayrb3p3c8v3sbrh8m"; sha256 = "02vdnv30ms2s53ch5j4ldch5sxwjsg3098zkvwrwhi9k6yxshdg9";
}; };
nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext; nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
@ -36,15 +36,6 @@ in stdenv.mkDerivation rec {
--sysconfdir=/etc --sysconfdir=/etc
${optionalString (!enableNls) "--disable-nls"} ${optionalString (!enableNls) "--disable-nls"}
${optionalString enableTiny "--enable-tiny"} ${optionalString enableTiny "--enable-tiny"}
''
# Unclear why (perhaps an impurity?) but for some reason it decides that REG_ENHANCED is available
# during configure but then can't find it at build time.
+ optionalString stdenv.isDarwin ''
nano_cv_flag_reg_extended=REG_EXTENDED
'';
postPatch = optionalString stdenv.isDarwin ''
substituteInPlace src/text.c --replace "__time_t" "time_t"
''; '';
postInstall = '' postInstall = ''

View File

@ -0,0 +1,22 @@
diff --git a/bushnell.cc b/bushnell.cc
index 8fa844d..40707c4 100644
--- a/bushnell.cc
+++ b/bushnell.cc
@@ -135,7 +135,7 @@ bushnell_get_icon_from_name(QString name)
name = "Waypoint";
}
- for (t = bushnell_icons; t->icon > 0; t++) {
+ for (t = bushnell_icons; t->icon != 0; t++) {
if (0 == name.compare(t->icon, Qt::CaseInsensitive)) {
return t->symbol;
}
@@ -147,7 +147,7 @@ static const char*
bushnell_get_name_from_symbol(signed int s)
{
icon_mapping_t* t;
- for (t = bushnell_icons; t->icon > 0; t++) {
+ for (t = bushnell_icons; t->icon != 0; t++) {
if (s == t->symbol) {
return t->icon;
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, fetchpatch, zlib, qt4, which }: { lib, stdenv, fetchurl, fetchpatch, zlib, qt4, which, IOKit }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gpsbabel-${version}"; name = "gpsbabel-${version}";
@ -12,13 +12,15 @@ stdenv.mkDerivation rec {
}; };
patches = [ patches = [
./clang-4.patch
(fetchpatch { (fetchpatch {
url = https://sources.debian.net/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip; url = https://sources.debian.net/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip;
sha256 = "03fpsmlx1wc48d1j405zkzp8j64hcp0z72islf4mk1immql3ibcr"; sha256 = "03fpsmlx1wc48d1j405zkzp8j64hcp0z72islf4mk1immql3ibcr";
}) })
]; ];
buildInputs = [ zlib qt4 which ]; buildInputs = [ zlib qt4 which ]
++ lib.optionals stdenv.isDarwin [ IOKit ];
/* FIXME: Building the documentation, with "make doc", requires this: /* FIXME: Building the documentation, with "make doc", requires this:
@ -40,11 +42,11 @@ stdenv.mkDerivation rec {
patchShebangs testo patchShebangs testo
substituteInPlace testo \ substituteInPlace testo \
--replace "-x /usr/bin/hexdump" "" --replace "-x /usr/bin/hexdump" ""
'' + ( ''
# The raymarine and gtm tests fail on i686 despite -ffloat-store. # The raymarine and gtm tests fail on i686 despite -ffloat-store.
if stdenv.isi686 then "rm -v testo.d/raymarine.test testo.d/gtm.test;" + lib.optionalString stdenv.isi686 "rm -v testo.d/raymarine.test testo.d/gtm.test;"
else "" # The gtm, kml and tomtom asc tests fail on darwin, see PR #23572.
); + lib.optionalString stdenv.isDarwin "rm -v testo.d/gtm.test testo.d/kml.test testo.d/tomtom_asc.test";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Convert, upload and download data from GPS and Map programs"; description = "Convert, upload and download data from GPS and Map programs";

View File

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
name = "hugo-${version}"; name = "hugo-${version}";
version = "0.18.1"; version = "0.20";
goPackagePath = "github.com/spf13/hugo"; goPackagePath = "github.com/spf13/hugo";
@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "spf13"; owner = "spf13";
repo = "hugo"; repo = "hugo";
rev = "v${version}"; rev = "v${version}";
sha256 = "1nmabcrq96b339in2yr2zwcd41nadr4bha3rlpyaxlzbyyhz2f81"; sha256 = "1dzvwldhf73ycmazq9xnridj7p3m3q6qv47rvk3vgj0xj6c107ij";
}; };
goDeps = ./deps.nix; goDeps = ./deps.nix;

View File

@ -1,173 +1,38 @@
[ [
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "d9157a9621b69ad1d8d77a1933590c416593f24f";
sha256 = "1asdbp7rj1j1m1aar1a022wpcwbml6zih6cpbxaw7b2m8v8is931";
};
}
{
goPackagePath = "gopkg.in/yaml.v2";
fetch = {
type = "git";
url = "https://gopkg.in/yaml.v2";
rev = "a83829b6f1293c91addabc89d0571c246397bbf4";
sha256 = "1m4dsmk90sbi17571h6pld44zxz7jc4lrnl4f27dpd1l8g5xvjhh";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6";
sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa";
};
}
{
goPackagePath = "github.com/gorilla/websocket";
fetch = {
type = "git";
url = "https://github.com/gorilla/websocket";
rev = "a622679ebd7a3b813862379232f645f8e690e43f";
sha256 = "1nc9jbcmgya1i6dmf6sbcqsnxi9hbjg6dz1z0k7zmc6xdwlq0y4q";
};
}
{
goPackagePath = "github.com/inconshreveable/mousetrap";
fetch = {
type = "git";
url = "https://github.com/inconshreveable/mousetrap";
rev = "9dbb96d2c3a964935b0870b5abaea13c98b483aa";
sha256 = "1f9g8vm18qv1rcb745a4iahql9vfrz0jni9mnzriab2wy1pfdl5b";
};
}
{
goPackagePath = "github.com/kardianos/osext";
fetch = {
type = "git";
url = "https://github.com/kardianos/osext";
rev = "29ae4ffbc9a6fe9fb2bc5029050ce6996ea1d3bc";
sha256 = "1mawalaz84i16njkz6f9fd5jxhcbxkbsjnav3cmqq2dncv2hyv8a";
};
}
{
goPackagePath = "github.com/hashicorp/hcl";
fetch = {
type = "git";
url = "https://github.com/hashicorp/hcl";
rev = "54864211433d45cb780682431585b3e573b49e4a";
sha256 = "07l2dydzjpdgm2d4a72hkmincn455j3nrafg6hs3c23bkvizj950";
};
}
{
goPackagePath = "github.com/hashicorp/go-multierror";
fetch = {
type = "git";
url = "https://github.com/hashicorp/go-multierror";
rev = "56912fb08d85084aa318edcf2bba735b97cf35c5";
sha256 = "0s01cqdab2f7fxkkjjk2wqx05a1shnwlvfn45h2pi3i4gapvcn0r";
};
}
{ {
goPackagePath = "github.com/BurntSushi/toml"; goPackagePath = "github.com/BurntSushi/toml";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/BurntSushi/toml"; url = "https://github.com/BurntSushi/toml";
rev = "056c9bc7be7190eaa7715723883caffa5f8fa3e4"; rev = "99064174e013895bbd9b025c31100bd1d9b590ca";
sha256 = "0gkgkw04ndr5y7hrdy0r4v2drs5srwfcw2bs1gyas066hwl84xyw"; sha256 = "058qrar8rvw3wb0ci1mf1axnqq2729cvv9zmdr4ms2nn9s97yiz9";
}; };
} }
{ {
goPackagePath = "github.com/mitchellh/mapstructure"; goPackagePath = "github.com/PuerkitoBio/purell";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/mitchellh/mapstructure"; url = "https://github.com/PuerkitoBio/purell";
rev = "281073eb9eb092240d33ef253c404f1cca550309"; rev = "0bcb03f4b4d0a9428594752bd2a3b9aa0a9d4bd4";
sha256 = "1zjx9fv29639sp1fn84rxs830z7gp7bs38yd5y1hl5adb8s5x1mh"; sha256 = "0vsxyn1fbm7g873b8kf3hcsgqgncb5nmfq3zfsc35a9yhzarka91";
}; };
} }
{ {
goPackagePath = "golang.org/x/text"; goPackagePath = "github.com/PuerkitoBio/urlesc";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://go.googlesource.com/text"; url = "https://github.com/PuerkitoBio/urlesc";
rev = "5eb8d4684c4796dd36c74f6452f2c0fa6c79597e"; rev = "5bd2802263f21d8788851d5305584c82a5c75d7e";
sha256 = "1cjwm2pv42dbfqc6ylr7jmma902zg4gng5aarqrbjf1k2nf2vs14"; sha256 = "15y5r3asvm7196m3nza5xvdvlc2k11p6lfs6hi917hl7r9vgi6mp";
}; };
} }
{ {
goPackagePath = "github.com/shurcooL/sanitized_anchor_name"; goPackagePath = "github.com/bep/gitmap";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/shurcooL/sanitized_anchor_name"; url = "https://github.com/bep/gitmap";
rev = "10ef21a441db47d8b13ebcc5fd2310f636973c77"; rev = "dcb907b39a0690430d435eb8f63cd8811961231f";
sha256 = "1cnbzcf47cn796rcjpph1s64qrabhkv5dn9sbynsy7m9zdwr5f01"; sha256 = "0bw4spyiidrvd8rls9g57mwxykfmv57qi9mcnjadbqrpv92br856";
};
}
{
goPackagePath = "github.com/russross/blackfriday";
fetch = {
type = "git";
url = "https://github.com/russross/blackfriday";
rev = "d18b67ae0afd61dae240896eae1785f00709aa31";
sha256 = "1l78hz8k1ixry5fjw29834jz1q5ysjcpf6kx2ggjj1s6xh0bfzvf";
};
}
{
goPackagePath = "github.com/yosssi/ace";
fetch = {
type = "git";
url = "https://github.com/yosssi/ace";
rev = "71afeb714739f9d5f7e1849bcd4a0a5938e1a70d";
sha256 = "15k7ji8m3nqbwhnsvp82j4qa45sgvwv2giliw2xkdwi2g7mfrn8k";
};
}
{
goPackagePath = "github.com/spf13/viper";
fetch = {
type = "git";
url = "https://github.com/spf13/viper";
rev = "ec4eb2fa8549869ae7a2accd4fcc83d1c0555c15";
sha256 = "018niqyrg09andj3g08jalflq2ypz9bp7qb1mbk50kfly29lkih7";
};
}
{
goPackagePath = "github.com/spf13/pflag";
fetch = {
type = "git";
url = "https://github.com/spf13/pflag";
rev = "b83537d79690b75cac5e021b036ae16792bf0f20";
sha256 = "19blhq00rnynv11nnvixisx4h1429rp5bik13k661ixw0421qqyx";
};
}
{
goPackagePath = "github.com/spf13/jwalterweatherman";
fetch = {
type = "git";
url = "https://github.com/spf13/jwalterweatherman";
rev = "33c24e77fb80341fe7130ee7c594256ff08ccc46";
sha256 = "1knvzspqzc2bh58q16zggzc8gcabjp5gr7zk4k7nx5ij4092cg0z";
};
}
{
goPackagePath = "github.com/fsnotify/fsnotify";
fetch = {
type = "git";
url = "https://github.com/fsnotify/fsnotify";
rev = "30411dbcefb7a1da7e84f75530ad3abe4011b4f8";
sha256 = "0kbpvyi6p9942k0vmcw5z13mja47f7hq7nqd332pn2zydss6kddm";
};
}
{
goPackagePath = "github.com/magiconair/properties";
fetch = {
type = "git";
url = "https://github.com/magiconair/properties";
rev = "c265cfa48dda6474e208715ca93e987829f572f8";
sha256 = "1ab9ywwsrdq5mvrcwl7m3276y1q4dfwinbv88vgpqwcqai9wkpp3";
}; };
} }
{ {
@ -180,39 +45,21 @@
}; };
} }
{ {
goPackagePath = "github.com/eknkc/amber"; goPackagePath = "github.com/chaseadamsio/goorgeous";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/eknkc/amber"; url = "https://github.com/chaseadamsio/goorgeous";
rev = "91774f050c1453128146169b626489e60108ec03"; rev = "42b0ec184e93fc9fd2c0402f099a4939aba68407";
sha256 = "1rb8bm35h8a77q4py6r3818cpwh7kpq1kh2ib2rb4i5s7z75ciis"; sha256 = "00mlv64q34d0vdq7p88hlsck4lsnk2pnxghx1jzy99r7wvs34am3";
}; };
} }
{ {
goPackagePath = "github.com/spf13/afero"; goPackagePath = "github.com/cpuguy83/go-md2man";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/spf13/afero"; url = "https://github.com/cpuguy83/go-md2man";
rev = "1a8ecf8b9da1fb5306e149e83128fc447957d2a8"; rev = "a65d4d2de4d5f7c74868dfa9b202a3c8be315aaa";
sha256 = "1nrg0gmqnl4h6zjmi4mdhrwnl3l34nzxpq2hsr3nizfvrx5gqbzw"; sha256 = "1rm3zjrmfpzy0l3qp02xmd5pqzl77pdql9pbxhl0k1qw2vfzrjv6";
};
}
{
goPackagePath = "github.com/spf13/cast";
fetch = {
type = "git";
url = "https://github.com/spf13/cast";
rev = "27b586b42e29bec072fe7379259cc719e1289da6";
sha256 = "1y73pfxdvm1bfpghwsfxj8gl4miv6fpzi9azxcknp6rcjn1gmq0x";
};
}
{
goPackagePath = "github.com/spf13/cobra";
fetch = {
type = "git";
url = "https://github.com/spf13/cobra";
rev = "bc81c21bd0d8be5ba2d6630a505d79d4467566e7";
sha256 = "1sp8gl25cjx0yibh6q1i8d5rbxpwaal3z8vz372wfmbz002say8r";
}; };
} }
{ {
@ -225,57 +72,66 @@
}; };
} }
{ {
goPackagePath = "github.com/spf13/fsync"; goPackagePath = "github.com/eknkc/amber";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/spf13/fsync"; url = "https://github.com/eknkc/amber";
rev = "cb2da332d00cbc04e4f3f677520dc3e7cc11874b"; rev = "9be5e8aae85904f63d505e0c00e5e0881d44ef4d";
sha256 = "03ib2xj80cbz77hx2baanyi50qr40akrybg49fzdvdm3lv9x100z"; sha256 = "1hmsqxwajgpmg1svzjqxf4n81qy7qs6m39cjv69jkhz9lpwc305j";
}; };
} }
{ {
goPackagePath = "github.com/cpuguy83/go-md2man"; goPackagePath = "github.com/fortytw2/leaktest";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/cpuguy83/go-md2man"; url = "https://github.com/fortytw2/leaktest";
rev = "2724a9c9051aa62e9cca11304e7dd518e9e41599"; rev = "0db74e8cd5adacfcc982838c6e185789e4b44e14";
sha256 = "1j2bigs7ixy20cdqd246nxr417md2qcyvkfk3x94992cr88d0vyj"; sha256 = "11s04f1pliqw185ai1dbpqn5rahc3yzv2fp5zdanjvql4168499m";
}; };
} }
{ {
goPackagePath = "github.com/miekg/mmark"; goPackagePath = "github.com/fsnotify/fsnotify";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/miekg/mmark"; url = "https://github.com/fsnotify/fsnotify";
rev = "adb5c3e2e9f3e7da9bd25291edda8e66c0045a2a"; rev = "4da3e2cfbabc9f751898f250b49f2439785783a1";
sha256 = "0fycz17fj37fh95lfshdrfwrgkzi3hl1kgnily0cxc9zwfbap3qa"; sha256 = "1y2l9jaf99j6gidcfdgq3hifxyiwv4f7awpll80p170ixdbqxvl3";
}; };
} }
{ {
goPackagePath = "github.com/spf13/nitro"; goPackagePath = "github.com/gorilla/websocket";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/spf13/nitro"; url = "https://github.com/gorilla/websocket";
rev = "24d7ef30a12da0bdc5e2eb370a79c659ddccf0e8"; rev = "adf16b31781325cbd41085c5be901d95b4d1f33d";
sha256 = "143sbpx0jdgf8f8ayv51x6l4jg6cnv6nps6n60qxhx4vd90s6mib"; sha256 = "0f93k3igbqqwsl734lxnkbfajc4lcyzg4szg15vb26qn939b5ccx";
}; };
} }
{ {
goPackagePath = "github.com/PuerkitoBio/purell"; goPackagePath = "github.com/hashicorp/hcl";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/PuerkitoBio/purell"; url = "https://github.com/hashicorp/hcl";
rev = "1d5d1cfad45d42ec5f81fa8ef23de09cebc6dcc3"; rev = "80e628d796135357b3d2e33a985c666b9f35eee1";
sha256 = "12k82576ka21c6572yy2v81kxpjrgf9mffjlz469g3vs0g3nkwlb"; sha256 = "0l85a7ir60hycb3mqsxmrz18f1kax03k55afsahr8xf46pjp5pyb";
}; };
} }
{ {
goPackagePath = "github.com/pkg/sftp"; goPackagePath = "github.com/inconshreveable/mousetrap";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/pkg/sftp"; url = "https://github.com/inconshreveable/mousetrap";
rev = "d4c18e7ffdc496a38de67dde6e29b2f364afc472"; rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
sha256 = "0cnl83k317gxskayfj3xwr4bl0vcbjvlwi3q0vjwvircynb6xscj"; sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
};
}
{
goPackagePath = "github.com/kardianos/osext";
fetch = {
type = "git";
url = "https://github.com/kardianos/osext";
rev = "9b883c5eb462dd5cb1b0a7a104fe86bc6b9bd391";
sha256 = "0cyhbgsxwdfnwy57pdfivvjfy951gxbg9qlsjbwm6vs3gfws07mr";
}; };
} }
{ {
@ -292,26 +148,35 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/kyokomi/emoji"; url = "https://github.com/kyokomi/emoji";
rev = "17c5e7085c9d59630aa578df67f4469481fbe7a9"; rev = "7e06b236c489543f53868841f188a294e3383eab";
sha256 = "0qs4mi7z1lghiyiw7s2bz5y959wj9ifmhyqh39xwqk69d690jwlp"; sha256 = "1q2j0k5a8qqka1syc9zwmf1cvm6k628kf2g1nmghp2kdr7q1xmyb";
}; };
} }
{ {
goPackagePath = "github.com/pkg/errors"; goPackagePath = "github.com/magiconair/properties";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/pkg/errors"; url = "https://github.com/magiconair/properties";
rev = "494e70f7620561491c2ca11e185bbef4b70060da"; rev = "9c47895dc1ce54302908ab8a43385d1f5df2c11c";
sha256 = "0a0961ixl67vryhnzyzhai357c9n9a7v3vpkpqrh32spn033gjd9"; sha256 = "0497bacr3gc7352gcwb07wyw7vb9m04xfd82mw0hpnzzw3kfnav3";
}; };
} }
{ {
goPackagePath = "github.com/PuerkitoBio/urlesc"; goPackagePath = "github.com/miekg/mmark";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/PuerkitoBio/urlesc"; url = "https://github.com/miekg/mmark";
rev = "5fa9ff0392746aeae1c4b37fcc42c65afa7a9587"; rev = "2d4f1dd6f87cad351b9323bbaa6f6c586f0c4bee";
sha256 = "0dppkmfs0hb5vcqli191x9yss5vvlx29qxjcywhdfirc89rn0sni"; sha256 = "1ak54nvmryx73g16q6qaac9x0klhbxxmk1j6zlnfvvibnkj2pa90";
};
}
{
goPackagePath = "github.com/mitchellh/mapstructure";
fetch = {
type = "git";
url = "https://github.com/mitchellh/mapstructure";
rev = "bfdb1a85537d60bc7e954e600c250219ea497417";
sha256 = "141kkh801jyp1r6hba14krydqg1iivp13j12is70j0g05z9fbji8";
}; };
} }
{ {
@ -319,17 +184,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/nicksnyder/go-i18n"; url = "https://github.com/nicksnyder/go-i18n";
rev = "e6c90c3ceece7f43060f843b495c3c9c031f5575"; rev = "4df9b06c0c1ffd8538a3cfa9d888f8f52985b302";
sha256 = "1i1hqvq05lk12wnrhayca66pvfbyjnj7dm0lr0hn5qhb2i8k84kd"; sha256 = "1cbbvq9l822p7vrscvaah3zybsj5yxcsq9fgvgsg062njbb0x41f";
};
}
{
goPackagePath = "github.com/pelletier/go-toml";
fetch = {
type = "git";
url = "https://github.com/pelletier/go-toml";
rev = "45932ad32dfdd20826f5671da37a5f3ce9f26a8d";
sha256 = "1rs25xqlpz2j9gqii144qnkvhsgzhwgy9ild7yvxhnbs2mybgix7";
}; };
} }
{ {
@ -337,17 +193,188 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/pelletier/go-buffruneio"; url = "https://github.com/pelletier/go-buffruneio";
rev = "df1e16fde7fc330a0ca68167c23bf7ed6ac31d6d"; rev = "c37440a7cf42ac63b919c752ca73a85067e05992";
sha256 = "0jwn2g4jfdb3wvpqisd8h055099pwx6c5i3bb4zxk5l9vybg1c5f"; sha256 = "0l83p1gg6g5mmhmxjisrhfimhbm71lwn1r2w7d6siwwqm9q08sd2";
}; };
} }
{ {
goPackagePath = "github.com/bep/gitmap"; goPackagePath = "github.com/pelletier/go-toml";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/bep/gitmap"; url = "https://github.com/pelletier/go-toml";
rev = "a1a71abe12823e27ae7507189fe2e914ba9626ac"; rev = "fee7787d3f811af92276f5ff10107092e95b7a1d";
sha256 = "0qfhb72y6wbypaqv6dkl42syifnhps3qcy1karpd6ziw4pxak18g"; sha256 = "0srx5hr35f9qzn5dnqqa0msyjknwn7vcq0jmlkvfxgaq0ygd6s3r";
};
}
{
goPackagePath = "github.com/pkg/errors";
fetch = {
type = "git";
url = "https://github.com/pkg/errors";
rev = "248dadf4e9068a0b3e79f02ed0a610d935de5302";
sha256 = "03l80r0i9bxl0vz363w62k4a8apzglgbrz6viwym3044sxkl1qks";
};
}
{
goPackagePath = "github.com/pkg/sftp";
fetch = {
type = "git";
url = "https://github.com/pkg/sftp";
rev = "4d0e916071f68db74f8a73926335f809396d6b42";
sha256 = "0l4n4ld0lx53s0hgz5rhk8gn7kr51adsr0cs6wlqm296xlcfp52h";
};
}
{
goPackagePath = "github.com/russross/blackfriday";
fetch = {
type = "git";
url = "https://github.com/russross/blackfriday";
rev = "5f33e7b7878355cd2b7e6b8eefc48a5472c69f70";
sha256 = "0d7faqxrxvh8hwc1r8gbasgmr8x5blxvzciwspir2yafjfbqy87k";
};
}
{
goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
fetch = {
type = "git";
url = "https://github.com/shurcooL/sanitized_anchor_name";
rev = "1dba4b3954bc059efc3991ec364f9f9a35f597d2";
sha256 = "0pwap8lp79pldd95a1qi3xhlsa17m8zddpgc5jzvk6d1cjpsm6qg";
};
}
{
goPackagePath = "github.com/spf13/afero";
fetch = {
type = "git";
url = "https://github.com/spf13/afero";
rev = "9be650865eab0c12963d8753212f4f9c66cdcf12";
sha256 = "12dhh6d07304lsjv7c4p95hkip0hnshqhwivdw39pbypgg0p8y34";
};
}
{
goPackagePath = "github.com/spf13/cast";
fetch = {
type = "git";
url = "https://github.com/spf13/cast";
rev = "ce135a4ebeee6cfe9a26c93ee0d37825f26113c7";
sha256 = "1a2ahiyynn1kdjznqvzjfm5g5bc098gfw857bw9qikhdljvsnjiy";
};
}
{
goPackagePath = "github.com/spf13/cobra";
fetch = {
type = "git";
url = "https://github.com/spf13/cobra";
rev = "7be4beda01ec05d0b93d80b3facd2b6f44080d94";
sha256 = "0jd2ya8kn763z16c3q5jl1x6raw2f3xq3vbaf4ppiy70zqzscmyg";
};
}
{
goPackagePath = "github.com/spf13/fsync";
fetch = {
type = "git";
url = "https://github.com/spf13/fsync";
rev = "12a01e648f05a938100a26858d2d59a120307a18";
sha256 = "1vvbgxbbsc4mvi1axgqgn9pzjz1p495dsmwpc7mr8qxh8f6s0nhv";
};
}
{
goPackagePath = "github.com/spf13/jwalterweatherman";
fetch = {
type = "git";
url = "https://github.com/spf13/jwalterweatherman";
rev = "fa7ca7e836cf3a8bb4ebf799f472c12d7e903d66";
sha256 = "0404b7bzx7cq1b2bgdb3gs7gjzm4vvg1hl2y9mcm4m6vz56vbcz8";
};
}
{
goPackagePath = "github.com/spf13/nitro";
fetch = {
type = "git";
url = "https://github.com/spf13/nitro";
rev = "24d7ef30a12da0bdc5e2eb370a79c659ddccf0e8";
sha256 = "143sbpx0jdgf8f8ayv51x6l4jg6cnv6nps6n60qxhx4vd90s6mib";
};
}
{
goPackagePath = "github.com/spf13/pflag";
fetch = {
type = "git";
url = "https://github.com/spf13/pflag";
rev = "9ff6c6923cfffbcd502984b8e0c80539a94968b7";
sha256 = "0mfrxzyl8x7araa126lh8l3sihbbgfbzgkrg3v3cx7y4n3wrsqvn";
};
}
{
goPackagePath = "github.com/spf13/viper";
fetch = {
type = "git";
url = "https://github.com/spf13/viper";
rev = "7538d73b4eb9511d85a9f1dfef202eeb8ac260f4";
sha256 = "0i4q715bjp018zw1b52zgx79j4s7s8l26dyrw8cslshibkx0frnl";
};
}
{
goPackagePath = "github.com/stretchr/testify";
fetch = {
type = "git";
url = "https://github.com/stretchr/testify";
rev = "4d4bfba8f1d1027c4fdbe371823030df51419987";
sha256 = "1d3yz1d2s88byjzmn60jbi1m9s552f7ghzbzik97fbph37i8yjhp";
};
}
{
goPackagePath = "github.com/yosssi/ace";
fetch = {
type = "git";
url = "https://github.com/yosssi/ace";
rev = "ea038f4770b6746c3f8f84f14fa60d9fe1205b56";
sha256 = "1kbvbc56grrpnl65grygd23gyn3nkkhxdg8awhzkjmd0cvki8w1f";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "453249f01cfeb54c3d549ddb75ff152ca243f9d8";
sha256 = "0akybbzgi3v507a39bgnkk79rfhj8gflr7538g5a0177z5i9ygwa";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "906cda9512f77671ab44f8c8563b13a8e707b230";
sha256 = "0aa33n5a2zzrm2pnjyc3xkdmf8hq2qpafgdp8v6fxfb0swqjl2n3";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "075e574b89e4c2d22f2286a7e2b919519c6f3547";
sha256 = "1p38siwqcbd592lphaqpigl7scshkfy67k6jcwscbcsl6akw51km";
};
}
{
goPackagePath = "golang.org/x/text";
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
rev = "0ad425fe45e885577bef05dc1c50f72e33188b16";
sha256 = "1jz0i8iagfd703flx5z006kisjixpm8iy4hiwywgbh31wypsxxyl";
};
}
{
goPackagePath = "gopkg.in/yaml.v2";
fetch = {
type = "git";
url = "https://gopkg.in/yaml.v2";
rev = "a3f3340b5840cee44f372bddb5880fcbc419b46a";
sha256 = "1djb53a8ikwgkfpf8namgf4d8pq1mq6q9q2c7q0z8x4dxf3whxj7";
}; };
} }
] ]

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "josm-${version}"; name = "josm-${version}";
version = "11639"; version = "11826";
src = fetchurl { src = fetchurl {
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar"; url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
sha256 = "1xq074jfk58gh5xmm8s9sjbcbnl34dpx7wsgq9n60phciya90sfb"; sha256 = "0x59n6klkxkaqcqgbkscdynyp0grfxdil2fxmg710yp8vkzg0zk2";
}; };
phases = [ "installPhase" ]; phases = [ "installPhase" ];

View File

@ -1,26 +1,33 @@
{ stdenv, lib, cmake, plasma-framework, fetchFromGitHub }: { stdenv, lib, cmake, xorg, plasma-framework, fetchFromGitHub, kdeWrapper }:
let version = "0.5.98"; in let version = "0.6.0";
stdenv.mkDerivation { unwrapped = stdenv.mkDerivation {
name = "latte-dock-${version}"; name = "latte-dock-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "psifidotos"; owner = "psifidotos";
repo = "Latte-Dock"; repo = "Latte-Dock";
rev = version; rev = "v${version}";
sha256 = "0z02ipbbv0dmcxs2g3dq5h62klhijni1i4ikq903hjg0j2cqg5xh"; sha256 = "1967hx4lavy96vvik8d5m2c6ycd2mlf9cmhrv40zr0784ni0ikyv";
}; };
buildInputs = [ plasma-framework ]; buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp ];
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
meta = with stdenv.lib; { enableParallelBuilding = true;
description = "Dock-style app launcher based on Plasma frameworks";
homepage = https://github.com/psifidotos/Latte-Dock; meta = with stdenv.lib; {
license = licenses.gpl2; description = "Dock-style app launcher based on Plasma frameworks";
platforms = platforms.unix; homepage = https://github.com/psifidotos/Latte-Dock;
maintainers = [ maintainers.benley ]; license = licenses.gpl2;
}; platforms = platforms.unix;
maintainers = [ maintainers.benley ];
};
};
in kdeWrapper {
inherit unwrapped;
targets = [ "bin/latte-dock" ];
} }

View File

@ -94,12 +94,12 @@ let
flash = stdenv.mkDerivation rec { flash = stdenv.mkDerivation rec {
name = "flashplayer-ppapi-${version}"; name = "flashplayer-ppapi-${version}";
version = "25.0.0.127"; version = "25.0.0.148";
src = fetchzip { src = fetchzip {
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/" url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/"
+ "${version}/flash_player_ppapi_linux.x86_64.tar.gz"; + "${version}/flash_player_ppapi_linux.x86_64.tar.gz";
sha256 = "1gf0ncclkk3h4vj9kkhbqj1nnnm54gwm5mdcs4p4pl8i339scs14"; sha256 = "1888n0mbzhbvi95kq19fzw310p7nr9h3g5d3nyzq5fnvj0lcfxsf";
stripRoot = false; stripRoot = false;
}; };

View File

@ -82,6 +82,7 @@ stdenv.mkDerivation {
libPath = stdenv.lib.makeLibraryPath libPath = stdenv.lib.makeLibraryPath
[ stdenv.cc.cc [ stdenv.cc.cc
alsaLib alsaLib
alsaLib.dev
atk atk
cairo cairo
curl curl

View File

@ -60,7 +60,7 @@
let let
arch = arch =
if stdenv.system == "x86_64-linux" then if stdenv.system == "x86_64-linux" then
"x86_64" "x86_64"
else if stdenv.system == "i686-linux" then else if stdenv.system == "i686-linux" then
"i386" "i386"
@ -73,7 +73,7 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "flashplayer-${version}"; name = "flashplayer-${version}";
version = "25.0.0.127"; version = "25.0.0.148";
src = fetchurl { src = fetchurl {
url = url =
@ -84,14 +84,14 @@ stdenv.mkDerivation rec {
sha256 = sha256 =
if debug then if debug then
if arch == "x86_64" then if arch == "x86_64" then
"0d37rwbqszl593pggph8pm8jwn05fppys7q8vk1jrk9jaz262iva" "1jxxnbd357ndw8b64lw4pwkg9j0shy0ns7xw0f36awimq7bclr8d"
else else
"0lhngdx1q51kfpw3a961h9p9n1fnspk9pmg21i069hvd0h143arx" "1k0zyy4mz307r7ph4pnmyqaa0fdw2f52apala6dbrys0wdl05yfg"
else else
if arch == "x86_64" then if arch == "x86_64" then
"1yasj9xzmb6ly9209b1hmrqrzxrr1bafsfjszsr3yf994hql6nzn" "0n77a2z0928vd4bjgx69igzxvn8l9wrfh79j6knygdpnsbr3pybj"
else else
"02vs12cm6fpl2fif1lij9y15m89wk6aizc8sbjiw6w59wixn3p9d"; "1cb1h37av4icfhl4vjngsa3nfcrcdvzliwxdg22rshimlkfgr7vx";
}; };
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];

View File

@ -49,15 +49,13 @@
let let
arch = arch =
if stdenv.system == "x86_64-linux" then if stdenv.system == "x86_64-linux" then
"x86_64" "x86_64"
else if stdenv.system == "i686-linux" then
"i386"
else throw "Flash Player is not supported on this platform"; else throw "Flash Player is not supported on this platform";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "flashplayer-standalone-${version}"; name = "flashplayer-standalone-${version}";
version = "25.0.0.127"; version = "25.0.0.148";
src = fetchurl { src = fetchurl {
url = url =
@ -67,9 +65,9 @@ stdenv.mkDerivation rec {
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/25/flash_player_sa_linux.x86_64.tar.gz"; "https://fpdownload.macromedia.com/pub/flashplayer/updaters/25/flash_player_sa_linux.x86_64.tar.gz";
sha256 = sha256 =
if debug then if debug then
"07a8x1n997lmkxj74bkygh60shwzxzcvfxpz07pxj1nmvakmin51" "1pkzpip8d3m92kyzap00xxq40yilgmaqnc47nak3i7gnbic8fa2r"
else else
"0rzxfcvjjwbd1m6pyby8km4g5834zy5d5sih7xq3czds9x0a2jp2"; "0xxsbxnkf9xnljy6sn61jqx9xd1w0lm5mbw4ca7xk5rkc84ik91z";
}; };
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];

View File

@ -49,20 +49,9 @@ in {
sha256 = "0ibgpcpvz0bmn3cw60nzsabsrxrbmmym1hv7fx6zmjxiwd68w5gb"; sha256 = "0ibgpcpvz0bmn3cw60nzsabsrxrbmmym1hv7fx6zmjxiwd68w5gb";
}; };
terraform_0_9_2 = generic { terraform_0_9_3 = generic {
version = "0.9.2"; version = "0.9.3";
sha256 = "1yj5x1d10028fm3v3gjyjdn128ps0as345hr50y8x3vn86n70lxl"; sha256 = "00z72lwv0cprz1jjy0cr8dicl00zwc1zwsxzjssqnq0187sswkxw";
patches = [
(fetchpatch {
url = "https://github.com/hashicorp/terraform/pull/13237.patch";
sha256 = "03c2nq12gvqqp12znvl3lmiviwsqksx4nrplv09fns2kz2gyfnbm";
})
(fetchpatch {
url = "https://github.com/hashicorp/terraform/pull/13248.patch";
sha256 = "0awj8gaic0j7a69is95f2rll3yip4n6avai1jh20b1x7dybdrp5m";
})
];
postPatch = '' postPatch = ''
rm builtin/providers/dns/data_dns_cname_record_set_test.go rm builtin/providers/dns/data_dns_cname_record_set_test.go

View File

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
name = "terragrunt-${version}"; name = "terragrunt-${version}";
version = "0.11.0"; version = "0.11.1";
goPackagePath = "github.com/gruntwork-io/terragrunt"; goPackagePath = "github.com/gruntwork-io/terragrunt";
@ -10,7 +10,7 @@ buildGoPackage rec {
rev = "v${version}"; rev = "v${version}";
owner = "gruntwork-io"; owner = "gruntwork-io";
repo = "terragrunt"; repo = "terragrunt";
sha256 = "0i0ds6llkzrn6a0qq53d2pbb6ghc47lnd004zqfbgn3kwiajx73b"; sha256 = "061ix4m64i8bvjpqm6hn83nnkvqrp5y0hh5gzmxiik2nz3by1rx5";
}; };
goDeps = ./deps.nix; goDeps = ./deps.nix;

View File

@ -1,12 +1,12 @@
# This file was generated by go2nix. # This file was generated by https://github.com/kamilchm/go2nix v1.2.0
[ [
{ {
goPackagePath = "github.com/aws/aws-sdk-go"; goPackagePath = "github.com/aws/aws-sdk-go";
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/aws/aws-sdk-go"; url = "https://github.com/aws/aws-sdk-go";
rev = "78568b07950e5e7948496878fe99b9436add41d4"; rev = "c790b8046767d9c773ad83c327ab988312f85a94";
sha256 = "0qi3q9qx8k055i2hlc6n8agl7nw1hzcw7aqqykla6z0hjv2hq0c3"; sha256 = "0bhk7j088r8hhf05l70gpfnprxk7vzgb1fql9brk065hw2xnplsr";
}; };
} }
{ {
@ -32,8 +32,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/hashicorp/go-getter"; url = "https://github.com/hashicorp/go-getter";
rev = "c3d66e76678dce180a7b452653472f949aedfbcd"; rev = "e48f67b534e614bf7fbd978fd0020f61a17b7527";
sha256 = "0ykpkiszcwp3hnvnnyl95zdrsziwrzr989ynyvbfkgpnkqfdhfy7"; sha256 = "0dlmirfi0pfbwylcjf2mggzav5r7bzdy19m3by6dgarn6izx6g7i";
}; };
} }
{ {
@ -77,8 +77,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/mitchellh/mapstructure"; url = "https://github.com/mitchellh/mapstructure";
rev = "db1efb556f84b25a0a13a04aad883943538ad2e0"; rev = "53818660ed4955e899c0bcafa97299a388bd7c8e";
sha256 = "1pl1rwc9q3kz0banwi493cyhmn5mlc4mb97sx68jkdz6pck7fy0h"; sha256 = "10gdkk8gcjv0lg15ajy68dwgvfkjhawk08ccs9x9ym1adp6l2ycs";
}; };
} }
{ {
@ -95,8 +95,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/urfave/cli"; url = "https://github.com/urfave/cli";
rev = "9e5b04886c4bfee2ceba1465b8121057355c4e53"; rev = "8ba6f23b6e36d03666a14bd9421f5e3efcb59aca";
sha256 = "18jx6ypc1w02ha37rsx6hhmdwqmnybajd6l54qm07bdb850ip9db"; sha256 = "01s53ny3p0fdx64rnwcnmjj4xpc5adihnh6islsfq5z1ph2phhnj";
}; };
} }
] ]

View File

@ -1,25 +1,27 @@
{ fetchurl, stdenv, jre, glib, libXtst, gtk2, makeWrapper }: { fetchurl, stdenv, jre, glib, libXtst, gtk2, makeWrapper }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "davmail-4.7.2"; name = "davmail-4.8.0";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/davmail/4.7.1/davmail-linux-x86_64-4.7.1-2416.tgz"; url = "mirror://sourceforge/davmail/4.8.0/davmail-linux-x86_64-4.8.0-2479.tgz";
sha256 = "196jr44kksb197biz984z664llf9z3d8rlnjm2iqcmgkjhx1mgy3"; sha256 = "0e650c4a060d64fd2b270ddb00baa906aac617865d5e60c9f526a281cdb27b62";
}; };
buildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
meta = {
description = "A Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers";
maintainers = [ stdenv.lib.maintainers.hinton ];
platforms = stdenv.lib.platforms.all;
homepage = "http://davmail.sourceforce.net/";
license = stdenv.lib.licenses.gpl2;
};
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/share/davmail
cp ./* $out/bin/ -R cp -R ./* $out/share/davmail
wrapProgram $out/bin/davmail.sh --prefix PATH : ${jre}/bin --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ glib gtk2 libXtst ]} makeWrapper $out/share/davmail/davmail.sh $out/bin/davmail \
''; --prefix PATH : ${jre}/bin \
--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ glib gtk2 libXtst ]}
'';
meta = with stdenv.lib; {
homepage = http://davmail.sourceforce.net/;
description = "A Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers";
maintainers = [ maintainers.hinton ];
platforms = platforms.all;
license = licenses.gpl2;
};
} }

View File

@ -0,0 +1,55 @@
{ stdenv, fetchgit, qtbase, qtquickcontrols, qmakeHook, makeQtWrapper, makeDesktopItem }:
let
rev = "f3f3056d770d7fb4a21c610cee7936ee900569f5";
in stdenv.mkDerivation rec {
name = "tensor-git-${stdenv.lib.strings.substring 0 8 rev}";
src = fetchgit {
url = "https://github.com/davidar/tensor.git";
fetchSubmodules = true;
inherit rev;
sha256 = "19in8c7a2hxsx2c4lj540w5c3pn1882645m21l91mcriynqr67k9";
};
parallelBuilding = true;
buildInputs = [ qtbase qtquickcontrols ];
nativeBuildInputs = [ qmakeHook makeQtWrapper ];
desktopItem = makeDesktopItem {
name = "tensor";
exec = "@bin@";
icon = "tensor.png";
comment = meta.description;
desktopName = "Tensor Matrix Client";
genericName = meta.description;
categories = "Chat;Utility";
mimeType = "text/xml";
};
installPhase = ''
runHook preInstall
install -Dm755 tensor $out/bin/tensor
install -Dm644 client/logo.png \
$out/share/icons/hicolor/512x512/apps/tensor.png
install -Dm644 ${desktopItem}/share/applications/tensor.desktop \
$out/share/applications/tensor.desktop
wrapQtProgram $out/bin/tensor
substituteInPlace $out/share/applications/tensor.desktop \
--subst-var-by bin $out/bin/tensor
runHook postInstall
'';
meta = with stdenv.lib; {
homepage = https://matrix.org/docs/projects/client/tensor.html;
description = "Cross-platform Qt5/QML-based Matrix client";
license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
};
}

View File

@ -20,11 +20,11 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mutt-${version}"; name = "mutt-${version}";
version = "1.8.0"; version = "1.8.1";
src = fetchurl { src = fetchurl {
url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz"; url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz";
sha256 = "1axdcylyv0p194y6lj1jx127g5yc74zqzzxdc014cjw02bd1x125"; sha256 = "1b8dggq5x1b77a9i9250b3jhv2iddfzhr9rix1yfzckdms65mr8b";
}; };
patchPhase = optionalString (openssl != null) '' patchPhase = optionalString (openssl != null) ''

View File

@ -7,6 +7,7 @@
, autoconf213, which, m4 , autoconf213, which, m4
, writeScript, xidel, common-updater-scripts, coreutils, gnused, gnugrep, curl , writeScript, xidel, common-updater-scripts, coreutils, gnused, gnugrep, curl
, enableGTK3 ? false, gtk3, wrapGAppsHook , enableGTK3 ? false, gtk3, wrapGAppsHook
, enableCalendar ? true
, debugBuild ? false , debugBuild ? false
, # If you want the resulting program to call itself "Thunderbird" instead , # If you want the resulting program to call itself "Thunderbird" instead
# of "Earlybird" or whatever, enable this option. However, those # of "Earlybird" or whatever, enable this option. However, those
@ -77,6 +78,7 @@ stdenv.mkDerivation rec {
"--disable-gconf" "--disable-gconf"
"--enable-default-toolkit=cairo-gtk${if enableGTK3 then "3" else "2"}" "--enable-default-toolkit=cairo-gtk${if enableGTK3 then "3" else "2"}"
] ]
++ lib.optional enableCalendar "--enable-calendar"
++ (if debugBuild then [ "--enable-debug" "--enable-profiling"] ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"]
else [ "--disable-debug" "--enable-release" else [ "--disable-debug" "--enable-release"
"--disable-debug-symbols" "--disable-debug-symbols"

View File

@ -9,7 +9,7 @@ let
mkLdPath = ps: lib.makeLibraryPath (with ps; [ qt4 dbus alsaLib ]); mkLdPath = ps: lib.makeLibraryPath (with ps; [ qt4 dbus alsaLib ]);
deps = ps: (with ps; [ dbus alsaLib fontconfig freetype libpng12 libjpeg ]) ++ (with ps.xlibs; [ libX11 libXext libXdamage libXrandr libXrender libXfixes libSM libXtst ]); deps = ps: (with ps; [ dbus zlib alsaLib fontconfig freetype libpng12 libjpeg ]) ++ (with ps.xlibs; [ libX11 libXext libXdamage libXrandr libXrender libXfixes libSM libXtst libXinerama]);
tvldpath32 = lib.makeLibraryPath (with pkgsi686Linux; [ qt4 "$out/share/teamviewer/tv_bin/wine" ] ++ deps pkgsi686Linux); tvldpath32 = lib.makeLibraryPath (with pkgsi686Linux; [ qt4 "$out/share/teamviewer/tv_bin/wine" ] ++ deps pkgsi686Linux);
tvldpath64 = lib.makeLibraryPath (deps pkgs); tvldpath64 = lib.makeLibraryPath (deps pkgs);
in in
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
rm -R \ rm -R \
$out/share/teamviewer/logfiles \ $out/share/teamviewer/logfiles \
$out/share/teamviewer/config \ $out/share/teamviewer/config \
$out/share/teamviewer/tv_bin/{xdg-utils,RTlib} \ $out/share/teamviewer/tv_bin/xdg-utils \
$out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,libdepend,tv-delayed-start.sh} $out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,libdepend,tv-delayed-start.sh}
ln -s $out/share/teamviewer/tv_bin/script/teamviewer $out/bin ln -s $out/share/teamviewer/tv_bin/script/teamviewer $out/bin
@ -57,13 +57,13 @@ stdenv.mkDerivation rec {
sed -i "s,/opt/teamviewer,$out/share/teamviewer,g" desktop/com.teamviewer.*.desktop sed -i "s,/opt/teamviewer,$out/share/teamviewer,g" desktop/com.teamviewer.*.desktop
for i in teamviewer-config teamviewerd TeamViewer_Desktop TVGuiDelegate TVGuiSlave.32 wine/bin/*; do for i in teamviewer-config teamviewerd TeamViewer_Desktop TVGuiDelegate TVGuiSlave.32 wine/bin/* RTlib/libQtCore.so.4; do
echo "patching $i" echo "patching $i"
patchelf --set-interpreter $(cat ${ld32}) --set-rpath ${tvldpath32} $i || true patchelf --set-interpreter $(cat ${ld32}) --set-rpath $out/share/teamviewer/tv_bin/RTlib:${tvldpath32} $i || true
done done
for i in resources/*.so wine/drive_c/TeamViewer/tvwine.dll.so wine/lib/*.so* wine/lib/wine/*.so; do for i in resources/*.so wine/drive_c/TeamViewer/tvwine.dll.so wine/lib/*.so* wine/lib/wine/*.so RTlib/*.so* ; do
echo "patching $i" echo "patching $i"
patchelf --set-rpath ${tvldpath32} $i || true patchelf --set-rpath $out/share/teamviewer/tv_bin/RTlib:${tvldpath32} $i || true
done done
${if stdenv.system == "x86_64-linux" then '' ${if stdenv.system == "x86_64-linux" then ''
patchelf --set-interpreter $(cat ${ld64}) --set-rpath ${tvldpath64} TVGuiSlave.64 patchelf --set-interpreter $(cat ${ld64}) --set-rpath ${tvldpath64} TVGuiSlave.64
@ -81,6 +81,6 @@ stdenv.mkDerivation rec {
license = licenses.unfree; license = licenses.unfree;
description = "Desktop sharing application, providing remote support and online meetings"; description = "Desktop sharing application, providing remote support and online meetings";
platforms = [ "i686-linux" "x86_64-linux" ]; platforms = [ "i686-linux" "x86_64-linux" ];
maintainers = with maintainers; [ jagajaga ]; maintainers = with maintainers; [ jagajaga dasuxullebt ];
}; };
} }

View File

@ -0,0 +1,41 @@
{ stdenv, fetchurl, cmake, gcc, zlib }:
stdenv.mkDerivation rec {
name = "diamond-0.8.36";
src = fetchurl {
url = "https://github.com/bbuchfink/diamond/archive/v0.8.36.tar.gz";
sha256 = "092smzzjcg51n3x4h84k52ijpz9m40ri838j9k2i463ribc3c8rh";
};
patches = [
./diamond-0.8.36-no-warning.patch
];
nativeBuildInputs = [ cmake ];
buildInputs = [ zlib ];
meta = with stdenv.lib; {
description = "Accelerated BLAST compatible local sequence aligner";
longDescription = ''
A sequence aligner for protein and translated DNA
searches and functions as a drop-in replacement for the NCBI BLAST
software tools. It is suitable for protein-protein search as well as
DNA-protein search on short reads and longer sequences including contigs
and assemblies, providing a speedup of BLAST ranging up to x20,000.
DIAMOND is developed by Benjamin Buchfink. Feel free to contact him for support (Email Twitter).
If you use DIAMOND in published research, please cite
B. Buchfink, Xie C., D. Huson,
"Fast and sensitive protein alignment using DIAMOND",
Nature Methods 12, 59-60 (2015).
'';
homepage = https://github.com/bbuchfink/diamond;
license = {
fullName = "University of Tuebingen, Benjamin Buchfink";
url = https://raw.githubusercontent.com/bbuchfink/diamond/master/src/COPYING;
};
maintainers = [ maintainers.metabar ];
};
}

View File

@ -0,0 +1,20 @@
diff -u -r diamond-0.8.36/src/dp/scalar_traceback.h diamond-0.8.36-patched/src/dp/scalar_traceback.h
--- diamond-0.8.36/src/dp/scalar_traceback.h 2017-02-06 16:32:05.000000000 +0100
+++ diamond-0.8.36-patched/src/dp/scalar_traceback.h 2017-02-23 15:13:24.000000000 +0100
@@ -19,6 +19,7 @@
#ifndef SCALAR_TRACEBACK_H_
#define SCALAR_TRACEBACK_H_
+#include <cmath>
#include <exception>
#include "../basic/score_matrix.h"
@@ -31,7 +32,7 @@
template<>
inline bool almost_equal<float>(float x, float y)
{
- return abs(x - y) < 0.001f;
+ return std::abs(x - y) < 0.001f;
}
template<typename _score>

View File

@ -43,6 +43,15 @@ let
url = "https://github.com/xbmc/FFmpeg/archive/3.1.6-${rel}.tar.gz"; url = "https://github.com/xbmc/FFmpeg/archive/3.1.6-${rel}.tar.gz";
sha256 = "14jicb26s20nr3qmfpazszpc892yjwjn81zbsb8szy3a5xs19y81"; sha256 = "14jicb26s20nr3qmfpazszpc892yjwjn81zbsb8szy3a5xs19y81";
}; };
# Usage of kodi fork of libdvdnav and libdvdread is necessary for functional dvd playback:
libdvdnav_src = fetchurl {
url = "https://github.com/xbmc/libdvdnav/archive/981488f.tar.gz";
sha256 = "312b3d15bc448d24e92f4b2e7248409525eccc4e75776026d805478e51c5ef3d";
};
libdvdread_src = fetchurl {
url = "https://github.com/xbmc/libdvdread/archive/17d99db.tar.gz";
sha256 = "e7179b2054163652596a56301c9f025515cb08c6d6310b42b897c3ad11c0199b";
};
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "kodi-${version}"; name = "kodi-${version}";
version = "17.1"; version = "17.1";
@ -92,8 +101,8 @@ in stdenv.mkDerivation rec {
--replace "/bin/bash" "${bash}/bin/bash -ex" --replace "/bin/bash" "${bash}/bin/bash -ex"
cp ${ffmpeg_3_1_6} tools/depends/target/ffmpeg/ffmpeg-3.1.6-${rel}.tar.gz cp ${ffmpeg_3_1_6} tools/depends/target/ffmpeg/ffmpeg-3.1.6-${rel}.tar.gz
ln -s ${libdvdcss.src} tools/depends/target/libdvdcss/libdvdcss-master.tar.gz ln -s ${libdvdcss.src} tools/depends/target/libdvdcss/libdvdcss-master.tar.gz
ln -s ${libdvdnav.src} tools/depends/target/libdvdnav/libdvdnav-master.tar.gz cp ${libdvdnav_src} tools/depends/target/libdvdnav/libdvdnav-master.tar.gz
ln -s ${libdvdread.src} tools/depends/target/libdvdread/libdvdread-master.tar.gz cp ${libdvdread_src} tools/depends/target/libdvdread/libdvdread-master.tar.gz
''; '';
preConfigure = '' preConfigure = ''

View File

@ -1,17 +1,21 @@
{ stdenv, fetchFromGitHub, pkgconfig, gdk_pixbuf, gtk2, libXmu }: { stdenv, fetchFromGitHub, pkgconfig, gdk_pixbuf, gtk2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "trayer-1.1.6"; name = "trayer-1.1.7";
buildInputs = [ pkgconfig gdk_pixbuf gtk2 libXmu ]; buildInputs = [ pkgconfig gdk_pixbuf gtk2 ];
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "sargon"; owner = "sargon";
repo = "trayer-srg"; repo = "trayer-srg";
rev = name; rev = name;
sha256 = "0mmya7a1qh3zyqgvcx5fz2lvr9n0ilr490l1j3z4myahi4snk2mg"; sha256 = "06lpgralggh5546qgvpilzxh4anshli2za41x68x2zbaizyqb09a";
}; };
preConfigure = ''
patchShebangs configure
'';
makeFlags = [ "PREFIX=$(out)" ]; makeFlags = [ "PREFIX=$(out)" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -52,11 +52,12 @@ let
export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive' export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive'
export LD_LIBRARY_PATH='/run/opengl-driver/lib:/run/opengl-driver-32/lib:/usr/lib:/usr/lib32' export LD_LIBRARY_PATH='/run/opengl-driver/lib:/run/opengl-driver-32/lib:/usr/lib:/usr/lib32'
export PATH='/run/wrappers/bin:/usr/bin:/usr/sbin' export PATH='/run/wrappers/bin:/usr/bin:/usr/sbin'
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
# Force compilers to look in default search paths # Force compilers and other tools to look in default search paths
export NIX_CFLAGS_COMPILE='-idirafter /usr/include' export NIX_CFLAGS_COMPILE='-idirafter /usr/include'
export NIX_LDFLAGS_BEFORE='-L/usr/lib -L/usr/lib32' export NIX_LDFLAGS_BEFORE='-L/usr/lib -L/usr/lib32'
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export ACLOCAL_PATH=/usr/share/aclocal
${profile} ${profile}
''; '';

View File

@ -0,0 +1,36 @@
{ stdenv, fetchurl, mkfontdir, mkfontscale }:
stdenv.mkDerivation rec {
name = "envypn-font-1.7.1";
src = fetchurl {
url = "https://ywstd.fr/files/p/envypn-font/envypn-font-1.7.1.tar.gz";
sha256 = "bda67b6bc6d5d871a4d46565d4126729dfb8a0de9611dae6c68132a7b7db1270";
};
buildInputs = [ mkfontdir mkfontscale ];
unpackPhase = ''
tar -xzf $src --strip-components=1
'';
installPhase = ''
# install the pcf fonts (for xorg applications)
fontDir="$out/share/fonts/envypn"
mkdir -p "$fontDir"
mv *.pcf.gz "$fontDir"
cd "$fontDir"
mkfontdir
mkfontscale
'';
meta = with stdenv.lib; {
description = ''
Readable bitmap font inspired by Envy Code R
'';
homepage = "http://ywstd.fr/p/pj/#envypn";
license = licenses.miros;
platforms = platforms.linux;
};
}

View File

@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
patches = [ ./nix_share_path.patch ]; patches = [ ./nix_share_path.patch ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
platforms = platforms.linux; platforms = with platforms; linux ++ darwin;
maintainers = gnome3.maintainers; maintainers = gnome3.maintainers;
}; };
} }

View File

@ -0,0 +1,13 @@
diff --git a/vpn/openvpn/openvpnadvancedwidget.cpp b/vpn/openvpn/openvpnadvancedwidget.cpp
index 2f11ba1d..310f11b4 100644
--- a/vpn/openvpn/openvpnadvancedwidget.cpp
+++ b/vpn/openvpn/openvpnadvancedwidget.cpp
@@ -75,7 +75,7 @@ OpenVpnAdvancedWidget::OpenVpnAdvancedWidget(const NetworkManager::VpnSetting::P
connect(m_ui->cmbProxyType, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &OpenVpnAdvancedWidget::proxyTypeChanged);
// start openVPN process and get its cipher list
- const QString openVpnBinary = QStandardPaths::findExecutable("openvpn", QStringList() << "/sbin" << "/usr/sbin");
+ const QString openVpnBinary = "@openvpn@/bin/openvpn";
const QStringList ciphersArgs(QLatin1String("--show-ciphers"));
const QStringList versionArgs(QLatin1String("--version"));

View File

@ -4,7 +4,7 @@
, knotifications, kservice, kwallet, kwidgetsaddons, kwindowsystem , knotifications, kservice, kwallet, kwidgetsaddons, kwindowsystem
, kxmlgui, mobile_broadband_provider_info , kxmlgui, mobile_broadband_provider_info
, modemmanager-qt, networkmanager-qt, openconnect, plasma-framework , modemmanager-qt, networkmanager-qt, openconnect, plasma-framework
, qca-qt5, qtdeclarative, solid , qca-qt5, qtdeclarative, solid, openvpn
}: }:
plasmaPackage { plasmaPackage {
@ -14,6 +14,10 @@ plasmaPackage {
src = ./0001-mobile-broadband-provider-info-path.patch; src = ./0001-mobile-broadband-provider-info-path.patch;
inherit mobile_broadband_provider_info; inherit mobile_broadband_provider_info;
}) })
(substituteAll {
src = ./0002-openvpn-binary-path.patch;
inherit openvpn;
})
]; ];
nativeBuildInputs = [ extra-cmake-modules kdoctools ]; nativeBuildInputs = [ extra-cmake-modules kdoctools ];
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -23,4 +27,5 @@ plasmaPackage {
mobile_broadband_provider_info modemmanager-qt networkmanager-qt openconnect mobile_broadband_provider_info modemmanager-qt networkmanager-qt openconnect
qca-qt5 solid qca-qt5 solid
]; ];
enableParallelBuilding = true;
} }

View File

@ -60,7 +60,7 @@ assert langGo -> langCC;
with stdenv.lib; with stdenv.lib;
with builtins; with builtins;
let version = "7-20161211"; let version = "7-20170409";
# Whether building a cross-compiler for GNU/Hurd. # Whether building a cross-compiler for GNU/Hurd.
crossGNU = cross != null && cross.config == "i586-pc-gnu"; crossGNU = cross != null && cross.config == "i586-pc-gnu";
@ -217,7 +217,7 @@ stdenv.mkDerivation ({
src = fetchurl { src = fetchurl {
url = "mirror://gcc/snapshots/${version}/gcc-${version}.tar.bz2"; url = "mirror://gcc/snapshots/${version}/gcc-${version}.tar.bz2";
sha256 = "114rrrm5d5cawmr3161d2wgjlzkb9l1imj1p7fnypwz7y85l1661"; sha256 = "19197rw1xrpkb8h10lfgn6zj7yj52x95hdmr0x5lg8i4v3i23b67";
}; };
inherit patches; inherit patches;

View File

@ -8,13 +8,13 @@ stdenv.mkDerivation rec {
isHaLVM = true; isHaLVM = true;
isGhcjs = false; isGhcjs = false;
src = fetchgit { src = fetchgit {
rev = "6aa72c9b047fd8ddff857c994a5a895461fc3925"; rev = "65fad65966eb7e60f234453a35aeb564a09d2595";
url = "https://github.com/GaloisInc/HaLVM"; url = "https://github.com/GaloisInc/HaLVM";
sha256 = "05cg4w6fw5ajmpmh8g2msprnygmr4isb3pphqhlddfqwyvqhl167"; sha256 = "09633h38w0z20cz0wcfp9z5kzv8v1zwcv0wqvgq3c8svqbrxp28k";
}; };
prePatch = '' prePatch = ''
sed -i '312 d' Makefile sed -i '305 d' Makefile
sed -i '316,446 d' Makefile # Removes RPM packaging sed -i '309,439 d' Makefile # Removes RPM packaging
sed -i '20 d' src/scripts/halvm-cabal.in sed -i '20 d' src/scripts/halvm-cabal.in
sed -ie 's|ld |${binutils}/bin/ld |g' src/scripts/ldkernel.in sed -ie 's|ld |${binutils}/bin/ld |g' src/scripts/ldkernel.in
''; '';

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, ghc, pkgconfig, glibcLocales, coreutils, gnugrep, gnused { stdenv, fetchurl, ghc, pkgconfig, glibcLocales, coreutils, gnugrep, gnused
, jailbreak-cabal, hscolour, cpphs, nodejs , jailbreak-cabal, hscolour, cpphs, nodejs, lib
}: let isCross = (ghc.cross or null) != null; in }: let isCross = (ghc.cross or null) != null; in
{ pname { pname
@ -53,7 +53,7 @@
, shellHook ? "" , shellHook ? ""
, coreSetup ? false # Use only core packages to build Setup.hs. , coreSetup ? false # Use only core packages to build Setup.hs.
, useCpphs ? false , useCpphs ? false
, hardeningDisable ? [] , hardeningDisable ? lib.optional (ghc.isHaLVM or false) "all"
} @ args: } @ args:
assert editedCabalFile != null -> revision != null; assert editedCabalFile != null -> revision != null;

View File

@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
echo "<settings><mirrors>\ echo "<settings><mirrors>\
<mirror><id>tmpm2</id><url>file://$out/m2</url><mirrorOf>*</mirrorOf></mirror></mirrors>\ <mirror><id>tmpm2</id><url>file://$out/m2</url><mirrorOf>*</mirrorOf></mirror></mirrors>\
<localRepository>$out/m2/</localRepository></settings>" >> $out/m2/settings.xml <localRepository>$out/m2/</localRepository></settings>" >> $out/m2/settings.xml
${maven}/bin/mvn ${optionalString (quiet) "-q"} clean package -Dmaven.test.skip=${if skipTests then "true" else "false"} -Danimal.sniffer.skip=true -gs $out/m2/settings.xml ${maven}/bin/mvn ${optionalString (quiet) "-q"} clean package -Dmaven.test.skip=${boolToString skipTests} -Danimal.sniffer.skip=true -gs $out/m2/settings.xml
cp ./target/*.jar $out/m2/${m2Path} cp ./target/*.jar $out/m2/${m2Path}
cp -v ./target/*.jar $out/target/ cp -v ./target/*.jar $out/target/
''; '';

View File

@ -0,0 +1,21 @@
{ stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation {
name = "NSPlist-713decf";
src = fetchFromGitHub {
owner = "matthewbauer";
repo = "NSPlist";
rev = "713decf06c1ef6c39a707bc99eb45ac9925f2b8a";
sha256 = "0v4yfiwfd08hmh2ydgy6pnmlzjbd96k78dsla9pfd56ka89aw74r";
};
buildInputs = [ cmake ];
meta = with stdenv.lib; {
maintainers = with maintainers; [ matthewbauer ];
description = "Parses .plist files";
license = licenses.mit;
platforms = platforms.unix;
};
}

View File

@ -0,0 +1,22 @@
{ stdenv, fetchFromGitHub, cmake, boost, NSPlist, pugixml }:
stdenv.mkDerivation {
name = "PlistCpp-11615d";
src = fetchFromGitHub {
owner = "matthewbauer";
repo = "PlistCpp";
rev = "11615deab3369356a182dabbf5bae30574967264";
sha256 = "10jn6bvm9vn6492zix2pd724v5h4lccmkqg3lxfw8r0qg3av0yzv";
};
buildInputs = [ cmake boost NSPlist pugixml ];
meta = with stdenv.lib; {
maintainers = with maintainers; [ matthewbauer ];
description = "CPP bindings for Plist";
license = licenses.mit;
platforms = platforms.unix;
};
}

View File

@ -57,15 +57,16 @@ diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
index 838d343..ca7fc0d 100644 index 838d343..ca7fc0d 100644
--- a/giscanner/shlibs.py --- a/giscanner/shlibs.py
+++ b/giscanner/shlibs.py +++ b/giscanner/shlibs.py
@@ -53,10 +53,24 @@ def _resolve_libtool(options, binary, libraries): @@ -53,10 +53,27 @@ def _resolve_libtool(options, binary, libraries):
# Match absolute paths on OS X to conform to how libraries are usually # Match absolute paths on OS X to conform to how libraries are usually
# referenced on OS X systems. # referenced on OS X systems.
def _ldd_library_pattern(library_name): def _ldd_library_pattern(library_name):
+ nix_store_dir = re.escape('@nixStoreDir@'.rstrip('/')) + nix_store_dir = re.escape('@nixStoreDir@'.rstrip('/'))
pattern = "(?<![A-Za-z0-9_-])(lib*%s[^A-Za-z0-9_-][^\s\(\)]*)" pattern = "(?<![A-Za-z0-9_-])(lib*%s[^A-Za-z0-9_-][^\s\(\)]*)"
- if platform.system() == 'Darwin': if platform.system() == 'Darwin':
- pattern = "([^\s]*lib*%s[^A-Za-z0-9_-][^\s\(\)]*)" pattern = "([^\s]*lib*%s[^A-Za-z0-9_-][^\s\(\)]*)"
- return re.compile(pattern % re.escape(library_name)) - return re.compile(pattern % re.escape(library_name))
+ return re.compile(pattern % re.escape(library_name))
+ pattern = r''' + pattern = r'''
+ ( + (
+ (?: + (?:
@ -85,7 +86,7 @@ index 838d343..ca7fc0d 100644
# This is a what we do for non-la files. We assume that we are on an # This is a what we do for non-la files. We assume that we are on an
@@ -115,7 +129,11 @@ def _resolve_non_libtool(options, binary, libraries): @@ -115,7 +132,11 @@ def _resolve_non_libtool(options, binary, libraries):
m = pattern.search(line) m = pattern.search(line)
if m: if m:
del patterns[library] del patterns[library]

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkgconfig, glib, gtk_doc, gtk }: { stdenv, lib, fetchFromGitHub, autoreconfHook, pkgconfig, glib, gtk_doc, gtk, gobjectIntrospection }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gtk-mac-integration-2.0.8"; name = "gtk-mac-integration-2.0.8";
@ -10,8 +10,9 @@ stdenv.mkDerivation rec {
sha256 = "1fbhnvj0rqc3089ypvgnpkp6ad2rr37v5qk38008dgamb9h7f3qs"; sha256 = "1fbhnvj0rqc3089ypvgnpkp6ad2rr37v5qk38008dgamb9h7f3qs";
}; };
nativeBuildInputs = [ autoreconfHook pkgconfig gtk_doc ]; nativeBuildInputs = [ autoreconfHook pkgconfig gtk_doc gobjectIntrospection ];
buildInputs = [ glib gtk ]; buildInputs = [ glib ];
propagatedBuildInputs = [ gtk ];
preAutoreconf = '' preAutoreconf = ''
gtkdocize gtkdocize

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libressl-${version}"; name = "libressl-${version}";
version = "2.5.1"; version = "2.5.3";
src = fetchurl { src = fetchurl {
url = "mirror://openbsd/LibreSSL/${name}.tar.gz"; url = "mirror://openbsd/LibreSSL/${name}.tar.gz";
sha256 = "1kc709scgd76vk7fld4jnb4wb5lxdv1cj8zsgyjb33xp4jlf06pp"; sha256 = "0c4awq45cl757fv7f7f75i5i0ibc6v7ns13n7xvfak7chv2lrqql";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
NIX_CFLAGS = "-D__STDC_CONSTANT_MACROS=1"; NIX_CFLAGS_COMPILE = "-D__STDC_CONSTANT_MACROS=1";
patches = [ ./disable-samples-ftbfs.diff ./libav9.patch ./libav10.patch ]; patches = [ ./disable-samples-ftbfs.diff ./libav9.patch ./libav10.patch ];

View File

@ -18,9 +18,6 @@ stdenv.mkDerivation rec {
sed -ire '/PUGIXML_HAS_LONG_LONG/ s/^\/\///' src/pugiconfig.hpp sed -ire '/PUGIXML_HAS_LONG_LONG/ s/^\/\///' src/pugiconfig.hpp
''; '';
patches = []
++ stdenv.lib.optionals stdenv.isDarwin [ ./no-long-long.patch ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Light-weight, simple and fast XML parser for C++ with XPath support"; description = "Light-weight, simple and fast XML parser for C++ with XPath support";
homepage = http://pugixml.org/; homepage = http://pugixml.org/;

View File

@ -1,19 +0,0 @@
Get rid of long-long feature. This breaks on AppleClang compilers.
---
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 40a7ab0..c84f0f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,9 +26,9 @@ else()
endif()
# Enable C++11 long long for compilers that are capable of it
-if(NOT ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} STRLESS 3.1)
- target_compile_features(pugixml PUBLIC cxx_long_long_type)
-endif()
+# if(NOT ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} STRLESS 3.1)
+# target_compile_features(pugixml PUBLIC cxx_long_long_type)
+# endif()
set_target_properties(pugixml PROPERTIES VERSION 1.7 SOVERSION 1)

View File

@ -33,8 +33,6 @@ stdenv.mkDerivation rec {
"LAPACK=" "LAPACK="
]; ];
NIX_CFLAGS = "-fPIC";
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://faculty.cse.tamu.edu/davis/suitesparse.html; homepage = http://faculty.cse.tamu.edu/davis/suitesparse.html;
description = "A suite of sparse matrix algorithms"; description = "A suite of sparse matrix algorithms";

View File

@ -55,7 +55,7 @@ stdenv.mkDerivation {
"LAPACK=" "LAPACK="
]; ];
NIX_CFLAGS = stdenv.lib.optionalString stdenv.isDarwin " -DNTIMER"; NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin " -DNTIMER";
postInstall = '' postInstall = ''
# Build and install shared library # Build and install shared library

View File

@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig libusb ]; buildInputs = [ pkgconfig libusb ];
propagatedBuildInputs = [ libusb ]; propagatedBuildInputs = [ libusb ];
outputs = [ "out" "dev" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "USB traffic redirection protocol"; description = "USB traffic redirection protocol";
homepage = http://spice-space.org/page/UsbRedir; homepage = http://spice-space.org/page/UsbRedir;

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