Merge branch 'master.upstream' into staging.upstream

This commit is contained in:
William A. Kennington III 2015-06-17 11:57:40 -07:00
commit 8e19ac8d7c
139 changed files with 2778 additions and 1524 deletions

68
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,68 @@
# How to contribute
## Opening issues
* Make sure you have a [GitHub account](https://github.com/signup/free)
* Submit a ticket for your issue, assuming one does not already exist.
* Clearly describe the issue including steps to reproduce when it is a bug.
## Making patches
* Read [Manual (How to write packages for Nix)](https://nixos.org/nixpkgs/manual/)
* Fork the repository on GitHub.
* Create a branch for your future fix.
* You can make branch from a commit of your local `nixos-version`. That will help you to avoid additional local compilations. Because you will recieve some packages from cache server.
* For example: `nixos-version` returns `15.05.git.0998212 (Dingo)`. So you can do:
```bash
git checkout 0998212
git checkout -b 'fix/pkg-name-update'
```
* Please avoid working directly on the `master` branch.
* Make commits of logical units.
* If you removed pkgs, made some major changes etc., write about them in `nixos/doc/manual/release-notes/rl-unstable.xml`.
* Check for unnecessary whitespace with `git diff --check` before committing.
* Format the commit in a following way:
```
(pkg-name | service-name): (update from -> to | init at version | refactor | etc)
Additional information.
```
* Examples:
* `foo-pkg: init at 2.0.1`
* `bar-pkg: update 3.0 -> 3.1.1`
* `lala-service: add bazBaz option`
* `tata-service: refactor config generation`
* Test your changes. If you work with
* nixpkgs
* update pkg ->
* `nix-env -i pkg-name -f <path to your local nixpkgs folder>`
* add pkg ->
* Make sure it's in `pkgs/top-level/all-packages.nix`
* `nix-env -i pkg-name -f <path to your local nixpkgs folder>`
* _If you don't want to install pkg in you profile_.
* `nix-build -A pkg-attribute-name <path to your local nixpkgs folder>/default.nix` and check results in the folder `result`. It will appear in the same directory where you did `nix-build`.
* If you did `nix-env -i pkg-name` you can do `nix-env -e pkg-name` to uninstall it from your system.
* nixos and it's modules
* You can add new module to you `nixos-configuration file` (usually it's `/etc/nixos/configuration.nix`.
And do `sudo nixos-rebuild test -I nixpkgs=<path to your local nixpkgs folder> --fast`
* If you have commits `pkg-name: oh, forgot to insert whitespace`: squash commits in this case. Use `git rebase -i`.
* Rebase you branch against current `master`.
## Submitting changes
* Push your changes to your fork of nixpkgs.
* Create pull request.
* Write the title in format `(pkg-name | service): improvement`
* If you update the pkg, write versions `from -> to`
* Write in comment if you have tested your patch. Do not rely much on `TravisCL`.
* If you make an improvement, write why is it good.
* Notify maintainers of the package. For example add to the message: `cc @jagajaga @domenkozar`
## Hotfixing pull requests
* Make the appropriate changes in you branch.
* Don't create additional commits.
* `git rebase`
* `git push --force` to your branch.

View File

@ -43,7 +43,7 @@ rec {
}; };
_module.check = mkOption { _module.check = mkOption {
type = types.uniq types.bool; type = types.bool;
internal = true; internal = true;
default = check; default = check;
description = "Whether to check whether all option definitions have matching declarations."; description = "Whether to check whether all option definitions have matching declarations.";

View File

@ -59,26 +59,21 @@ rec {
else if all isInt list && all (x: x == head list) list then head list else if all isInt list && all (x: x == head list) list then head list
else throw "Cannot merge definitions of `${showOption loc}' given in ${showFiles (getFiles defs)}."; else throw "Cannot merge definitions of `${showOption loc}' given in ${showFiles (getFiles defs)}.";
/* Obsolete, will remove soon. Specify an option type or apply
function instead. */
mergeTypedOption = typeName: predicate: merge: loc: list:
let list' = map (x: x.value) list; in
if all predicate list then merge list'
else throw "Expected a ${typeName}.";
mergeEnableOption = mergeTypedOption "boolean"
(x: true == x || false == x) (fold lib.or false);
mergeListOption = mergeTypedOption "list" isList concatLists;
mergeStringOption = mergeTypedOption "string" isString lib.concatStrings;
mergeOneOption = loc: defs: mergeOneOption = loc: defs:
if defs == [] then abort "This case should never happen." if defs == [] then abort "This case should never happen."
else if length defs != 1 then else if length defs != 1 then
throw "The unique option `${showOption loc}' is defined multiple times, in ${showFiles (getFiles defs)}." throw "The unique option `${showOption loc}' is defined multiple times, in ${showFiles (getFiles defs)}."
else (head defs).value; else (head defs).value;
/* "Merge" option definitions by checking that they all have the same value. */
mergeEqualOption = loc: defs:
if defs == [] then abort "This case should never happen."
else fold (def: val:
if def.value != val then
throw "The option `${showOption loc}' has conflicting definitions, in ${showFiles (getFiles defs)}."
else
val) (head defs).value defs;
getValues = map (x: x.value); getValues = map (x: x.value);
getFiles = map (x: x.file); getFiles = map (x: x.file);

View File

@ -54,7 +54,7 @@ rec {
bool = mkOptionType { bool = mkOptionType {
name = "boolean"; name = "boolean";
check = isBool; check = isBool;
merge = loc: fold (x: y: x.value || y) false; merge = mergeEqualOption;
}; };
int = mkOptionType { int = mkOptionType {

View File

@ -63,7 +63,7 @@ in
description = '' description = ''
A list of profiles used to setup the global environment. A list of profiles used to setup the global environment.
''; '';
type = types.listOf types.string; type = types.listOf types.str;
}; };
environment.profileRelativeEnvVars = mkOption { environment.profileRelativeEnvVars = mkOption {

View File

@ -26,7 +26,7 @@ in
hardware.bumblebee.group = mkOption { hardware.bumblebee.group = mkOption {
default = "wheel"; default = "wheel";
example = "video"; example = "video";
type = types.uniq types.str; type = types.str;
description = ''Group for bumblebee socket''; description = ''Group for bumblebee socket'';
}; };
hardware.bumblebee.connectDisplay = mkOption { hardware.bumblebee.connectDisplay = mkOption {

View File

@ -21,7 +21,7 @@ with lib;
warnings = mkOption { warnings = mkOption {
internal = true; internal = true;
default = []; default = [];
type = types.listOf types.string; type = types.listOf types.str;
example = [ "The `foo' service is deprecated and will go away soon!" ]; example = [ "The `foo' service is deprecated and will go away soon!" ];
description = '' description = ''
This option allows modules to show warnings to users during This option allows modules to show warnings to users during

View File

@ -59,7 +59,7 @@ in
}; };
nixpkgs.system = mkOption { nixpkgs.system = mkOption {
type = types.uniq types.str; type = types.str;
example = "i686-linux"; example = "i686-linux";
description = '' description = ''
Specifies the Nix platform type for which NixOS should be built. Specifies the Nix platform type for which NixOS should be built.

View File

@ -40,7 +40,7 @@
"ohci1394" "sbp2" "ohci1394" "sbp2"
# Virtio (QEMU, KVM etc.) support. # Virtio (QEMU, KVM etc.) support.
"virtio_net" "virtio_pci" "virtio_blk" "virtio_balloon" "virtio_console" "virtio_net" "virtio_pci" "virtio_blk" "virtio_scsi" "virtio_balloon" "virtio_console"
# Keyboards # Keyboards
"usbhid" "hid_apple" "hid_logitech_dj" "hid_lenovo_tpkbd" "hid_roccat" "usbhid" "hid_apple" "hid_logitech_dj" "hid_lenovo_tpkbd" "hid_roccat"

View File

@ -4,7 +4,7 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
boot.initrd.availableKernelModules = [ "virtio_net" "virtio_pci" "virtio_blk" "9p" "9pnet_virtio" ]; boot.initrd.availableKernelModules = [ "virtio_net" "virtio_pci" "virtio_blk" "virtio_scsi" "9p" "9pnet_virtio" ];
boot.initrd.kernelModules = [ "virtio_balloon" "virtio_console" "virtio_rng" ]; boot.initrd.kernelModules = [ "virtio_balloon" "virtio_console" "virtio_rng" ];
boot.initrd.postDeviceCommands = boot.initrd.postDeviceCommands =

View File

@ -27,7 +27,7 @@ in
programs.ssh = { programs.ssh = {
askPassword = mkOption { askPassword = mkOption {
type = types.string; type = types.str;
default = "${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass"; default = "${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass";
description = ''Program used by SSH to ask for passwords.''; description = ''Program used by SSH to ask for passwords.'';
}; };
@ -77,7 +77,7 @@ in
}; };
agentTimeout = mkOption { agentTimeout = mkOption {
type = types.nullOr types.string; type = types.nullOr types.str;
default = null; default = null;
example = "1h"; example = "1h";
description = '' description = ''

View File

@ -33,7 +33,7 @@ in
}; };
security.pki.certificates = mkOption { security.pki.certificates = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = []; default = [];
example = singleton '' example = singleton ''
NixOS.org NixOS.org

View File

@ -95,7 +95,7 @@ in {
port = mkOption { port = mkOption {
default = 35000; default = 35000;
type = types.uniq types.int; type = types.int;
description = '' description = ''
Port for Almir web server to listen on. Port for Almir web server to listen on.
''; '';

View File

@ -182,7 +182,7 @@ in {
port = mkOption { port = mkOption {
default = 9102; default = 9102;
type = types.uniq types.int; type = types.int;
description = '' description = ''
This specifies the port number on which the Client listens for Director connections. It must agree with the FDPort specified in the Client resource of the Director's configuration file. The default is 9102. This specifies the port number on which the Client listens for Director connections. It must agree with the FDPort specified in the Client resource of the Director's configuration file. The default is 9102.
''; '';
@ -237,7 +237,7 @@ in {
port = mkOption { port = mkOption {
default = 9103; default = 9103;
type = types.uniq types.int; type = types.int;
description = '' description = ''
Specifies port number on which the Storage daemon listens for Director connections. The default is 9103. Specifies port number on which the Storage daemon listens for Director connections. The default is 9103.
''; '';
@ -302,7 +302,7 @@ in {
port = mkOption { port = mkOption {
default = 9101; default = 9101;
type = types.uniq types.int; type = types.int;
description = '' description = ''
Specify the port (a positive integer) on which the Director daemon will listen for Bacula Console connections. This same port number must be specified in the Director resource of the Console configuration file. The default is 9101, so normally this directive need not be specified. This directive should not be used if you specify DirAddresses (N.B plural) directive. Specify the port (a positive integer) on which the Director daemon will listen for Bacula Console connections. This same port number must be specified in the Director resource of the Console configuration file. The default is 9101, so normally this directive need not be specified. This directive should not be used if you specify DirAddresses (N.B plural) directive.
''; '';

View File

@ -50,7 +50,7 @@ in {
port = mkOption { port = mkOption {
default = 8080; default = 8080;
type = types.uniq types.int; type = types.int;
description = '' description = ''
Specifies port number on which the jenkins HTTP interface listens. The default is 8080. Specifies port number on which the jenkins HTTP interface listens. The default is 8080.
''; '';

View File

@ -55,7 +55,7 @@ in
enable = mkOption { enable = mkOption {
default = false; default = false;
description = "Whether to enable the influxdb server"; description = "Whether to enable the influxdb server";
type = types.uniq types.bool; type = types.bool;
}; };
package = mkOption { package = mkOption {

View File

@ -43,7 +43,7 @@ in {
enable = mkOption { enable = mkOption {
description = "Whether to enable neo4j."; description = "Whether to enable neo4j.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
package = mkOption { package = mkOption {

View File

@ -192,7 +192,7 @@ in
extraGroups = mkOption { extraGroups = mkOption {
default = []; default = [];
type = types.listOf types.string; type = types.listOf types.str;
example = [ "postdrop" "mongodb" ]; example = [ "postdrop" "mongodb" ];
description = '' description = ''
Extra groups for the logcheck user, for example to be able to use sendmail, Extra groups for the logcheck user, for example to be able to use sendmail,

View File

@ -66,7 +66,7 @@ in
}; };
extraParams = mkOption { extraParams = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = [ ]; default = [ ];
example = [ "-m 0" ]; example = [ "-m 0" ];
description = '' description = ''

View File

@ -83,7 +83,7 @@ in
}; };
extraParams = mkOption { extraParams = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = [ ]; default = [ ];
example = [ "-m 0" ]; example = [ "-m 0" ];
description = '' description = ''

View File

@ -24,7 +24,7 @@ in {
}; };
extraServerArgs = mkOption { extraServerArgs = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = []; default = [];
example = [ "-v" "-P mta" ]; example = [ "-v" "-P mta" ];
description = '' description = ''

View File

@ -33,7 +33,7 @@ in {
enable = mkOption { enable = mkOption {
description = "Whether to enable Apache Kafka."; description = "Whether to enable Apache Kafka.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
brokerId = mkOption { brokerId = mkOption {
@ -108,7 +108,7 @@ in {
"-Djava.awt.headless=true" "-Djava.awt.headless=true"
"-Djava.net.preferIPv4Stack=true" "-Djava.net.preferIPv4Stack=true"
]; ];
type = types.listOf types.string; type = types.listOf types.str;
example = [ example = [
"-Djava.net.preferIPv4Stack=true" "-Djava.net.preferIPv4Stack=true"
"-Dcom.sun.management.jmxremote" "-Dcom.sun.management.jmxremote"

View File

@ -54,7 +54,7 @@ in
}; };
port = mkOption { port = mkOption {
type = types.uniq types.int; type = types.int;
default = 2947; default = 2947;
description = '' description = ''
The port where to listen for TCP connections. The port where to listen for TCP connections.
@ -62,7 +62,7 @@ in
}; };
debugLevel = mkOption { debugLevel = mkOption {
type = types.uniq types.int; type = types.int;
default = 0; default = 0;
description = '' description = ''
The debugging level. The debugging level.

View File

@ -13,7 +13,7 @@ in {
enable = mkOption { enable = mkOption {
description = "Whether to enable the Mesos Master."; description = "Whether to enable the Mesos Master.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
port = mkOption { port = mkOption {
@ -45,7 +45,7 @@ in {
See https://mesos.apache.org/documentation/latest/configuration/ See https://mesos.apache.org/documentation/latest/configuration/
''; '';
default = [ "" ]; default = [ "" ];
type = types.listOf types.string; type = types.listOf types.str;
example = [ "--credentials=VALUE" ]; example = [ "--credentials=VALUE" ];
}; };

View File

@ -21,7 +21,7 @@ in {
enable = mkOption { enable = mkOption {
description = "Whether to enable the Mesos Slave."; description = "Whether to enable the Mesos Slave.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
ip = mkOption { ip = mkOption {
@ -70,7 +70,7 @@ in {
See https://mesos.apache.org/documentation/latest/configuration/ See https://mesos.apache.org/documentation/latest/configuration/
''; '';
default = [ "" ]; default = [ "" ];
type = types.listOf types.string; type = types.listOf types.str;
example = [ "--gc_delay=3days" ]; example = [ "--gc_delay=3days" ];
}; };

View File

@ -27,7 +27,7 @@ in {
enable = mkOption { enable = mkOption {
description = "Whether to enable Zookeeper."; description = "Whether to enable Zookeeper.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
port = mkOption { port = mkOption {
@ -94,7 +94,7 @@ in {
extraCmdLineOptions = mkOption { extraCmdLineOptions = mkOption {
description = "Extra command line options for the Zookeeper launcher."; description = "Extra command line options for the Zookeeper launcher.";
default = [ "-Dcom.sun.management.jmxremote" "-Dcom.sun.management.jmxremote.local.only=true" ]; default = [ "-Dcom.sun.management.jmxremote" "-Dcom.sun.management.jmxremote.local.only=true" ];
type = types.listOf types.string; type = types.listOf types.str;
example = [ "-Djava.net.preferIPv4Stack=true" "-Dcom.sun.management.jmxremote" "-Dcom.sun.management.jmxremote.local.only=true" ]; example = [ "-Djava.net.preferIPv4Stack=true" "-Dcom.sun.management.jmxremote" "-Dcom.sun.management.jmxremote.local.only=true" ];
}; };

View File

@ -74,7 +74,7 @@ in
enable = mkOption { enable = mkOption {
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
description = '' description = ''
Whether to enable the APC UPS daemon. apcupsd monitors your UPS and Whether to enable the APC UPS daemon. apcupsd monitors your UPS and
permits orderly shutdown of your computer in the event of a power permits orderly shutdown of your computer in the event of a power

View File

@ -23,6 +23,7 @@ let
# proxy_password: password # proxy_password: password
# tags: mytag0, mytag1 # tags: mytag0, mytag1
${optionalString (cfg.tags != null ) "tags: ${concatStringsSep "," cfg.tags }"}
# collect_ec2_tags: no # collect_ec2_tags: no
# recent_point_threshold: 30 # recent_point_threshold: 30
@ -80,6 +81,13 @@ in {
type = types.str; type = types.str;
}; };
tags = mkOption {
description = "The tags to mark this Datadog agent";
example = [ "test" "service" ];
default = null;
type = types.nullOr (types.listOf types.str);
};
hostname = mkOption { hostname = mkOption {
description = "The hostname to show in the Datadog dashboard (optional)"; description = "The hostname to show in the Datadog dashboard (optional)";
default = null; default = null;

View File

@ -67,7 +67,7 @@ in {
enable = mkOption { enable = mkOption {
description = "Whether to enable graphite web frontend."; description = "Whether to enable graphite web frontend.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
host = mkOption { host = mkOption {
@ -95,7 +95,7 @@ in {
<link xlink:href="http://graphite-api.readthedocs.org/en/latest/"/> <link xlink:href="http://graphite-api.readthedocs.org/en/latest/"/>
''; '';
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
finders = mkOption { finders = mkOption {
@ -177,7 +177,7 @@ in {
enableCache = mkOption { enableCache = mkOption {
description = "Whether to enable carbon cache, the graphite storage daemon."; description = "Whether to enable carbon cache, the graphite storage daemon.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
storageAggregation = mkOption { storageAggregation = mkOption {
@ -234,7 +234,7 @@ in {
enableRelay = mkOption { enableRelay = mkOption {
description = "Whether to enable carbon relay, the carbon replication and sharding service."; description = "Whether to enable carbon relay, the carbon replication and sharding service.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
relayRules = mkOption { relayRules = mkOption {
@ -251,7 +251,7 @@ in {
enableAggregator = mkOption { enableAggregator = mkOption {
description = "Whether to enable carbon agregator, the carbon buffering service."; description = "Whether to enable carbon agregator, the carbon buffering service.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
aggregationRules = mkOption { aggregationRules = mkOption {
@ -269,7 +269,7 @@ in {
enable = mkOption { enable = mkOption {
description = "Whether to enable seyren service."; description = "Whether to enable seyren service.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
port = mkOption { port = mkOption {
@ -319,7 +319,7 @@ in {
<link xlink:href="https://github.com/seatgeek/graphite-pager"/> <link xlink:href="https://github.com/seatgeek/graphite-pager"/>
''; '';
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
redisUrl = mkOption { redisUrl = mkOption {

View File

@ -37,7 +37,7 @@ in
enable = mkOption { enable = mkOption {
description = "Whether to enable statsd stats aggregation service"; description = "Whether to enable statsd stats aggregation service";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
host = mkOption { host = mkOption {
@ -49,7 +49,7 @@ in
port = mkOption { port = mkOption {
description = "Port that stats listens for messages on over UDP"; description = "Port that stats listens for messages on over UDP";
default = 8125; default = 8125;
type = types.uniq types.int; type = types.int;
}; };
mgmt_address = mkOption { mgmt_address = mkOption {
@ -61,7 +61,7 @@ in
mgmt_port = mkOption { mgmt_port = mkOption {
description = "Port to run the management TCP interface on"; description = "Port to run the management TCP interface on";
default = 8126; default = 8126;
type = types.uniq types.int; type = types.int;
}; };
backends = mkOption { backends = mkOption {

View File

@ -32,7 +32,7 @@ let
shutdownOrder = mkOption { shutdownOrder = mkOption {
default = 0; default = 0;
type = types.uniq types.int; type = types.int;
description = '' description = ''
When you have multiple UPSes on your system, you usually need to When you have multiple UPSes on your system, you usually need to
turn them off in a certain order. upsdrvctl shuts down all the turn them off in a certain order. upsdrvctl shuts down all the
@ -63,7 +63,7 @@ let
directives = mkOption { directives = mkOption {
default = []; default = [];
type = types.listOf types.string; type = types.listOf types.str;
description = '' description = ''
List of configuration directives for this UPS. List of configuration directives for this UPS.
''; '';
@ -151,7 +151,7 @@ in
maxStartDelay = mkOption { maxStartDelay = mkOption {
default = 45; default = 45;
type = types.uniq types.int; type = types.int;
description = '' description = ''
This can be set as a global variable above your first UPS This can be set as a global variable above your first UPS
definition and it can also be set in a UPS section. This value definition and it can also be set in a UPS section. This value

View File

@ -137,7 +137,7 @@ in
nsswins = mkOption { nsswins = mkOption {
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
description = '' description = ''
Whether to enable the WINS NSS (Name Service Switch) plug-in. Whether to enable the WINS NSS (Name Service Switch) plug-in.
Enabling it allows applications to resolve WINS/NetBIOS names (a.k.a. Enabling it allows applications to resolve WINS/NetBIOS names (a.k.a.

View File

@ -18,7 +18,7 @@ in
enable = mkOption { enable = mkOption {
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
description = '' description = ''
Whenever to enable the atftpd TFTP server. Whenever to enable the atftpd TFTP server.
''; '';
@ -26,7 +26,7 @@ in
root = mkOption { root = mkOption {
default = "/var/empty"; default = "/var/empty";
type = types.uniq types.string; type = types.str;
description = '' description = ''
Document root directory for the atftpd. Document root directory for the atftpd.
''; '';

View File

@ -45,7 +45,7 @@ in
}; };
servers = mkOption { servers = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = []; default = [];
example = [ "8.8.8.8" "8.8.4.4" ]; example = [ "8.8.8.8" "8.8.4.4" ];
description = '' description = ''

View File

@ -287,7 +287,7 @@ in
}; };
networking.firewall.trustedInterfaces = mkOption { networking.firewall.trustedInterfaces = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
description = description =
'' ''
Traffic coming in from these interfaces will be accepted Traffic coming in from these interfaces will be accepted
@ -379,7 +379,7 @@ in
networking.firewall.connectionTrackingModules = mkOption { networking.firewall.connectionTrackingModules = mkOption {
default = [ "ftp" ]; default = [ "ftp" ];
example = [ "ftp" "irc" "sane" "sip" "tftp" "amanda" "h323" "netbios_sn" "pptp" "snmp" ]; example = [ "ftp" "irc" "sane" "sip" "tftp" "amanda" "h323" "netbios_sn" "pptp" "snmp" ];
type = types.listOf types.string; type = types.listOf types.str;
description = description =
'' ''
List of connection-tracking helpers that are auto-loaded. List of connection-tracking helpers that are auto-loaded.

View File

@ -20,13 +20,13 @@ in
services.freenet = { services.freenet = {
enable = mkOption { enable = mkOption {
type = types.uniq types.bool; type = types.bool;
default = false; default = false;
description = "Enable the Freenet daemon"; description = "Enable the Freenet daemon";
}; };
nice = mkOption { nice = mkOption {
type = types.uniq types.int; type = types.int;
default = 10; default = 10;
description = "Set the nice level for the Freenet daemon"; description = "Set the nice level for the Freenet daemon";
}; };

View File

@ -20,13 +20,13 @@ in
services.iodined = { services.iodined = {
enable = mkOption { enable = mkOption {
type = types.uniq types.bool; type = types.bool;
default = false; default = false;
description = "Enable iodine, ip over dns daemon"; description = "Enable iodine, ip over dns daemon";
}; };
client = mkOption { client = mkOption {
type = types.uniq types.bool; type = types.bool;
default = false; default = false;
description = "Start iodine in client mode"; description = "Start iodine in client mode";
}; };

View File

@ -16,12 +16,12 @@ rec {
services.kippo = { services.kippo = {
enable = mkOption { enable = mkOption {
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
description = ''Enable the kippo honeypot ssh server.''; description = ''Enable the kippo honeypot ssh server.'';
}; };
port = mkOption { port = mkOption {
default = 2222; default = 2222;
type = types.uniq types.int; type = types.int;
description = ''TCP port number for kippo to bind to.''; description = ''TCP port number for kippo to bind to.'';
}; };
hostname = mkOption { hostname = mkOption {

View File

@ -30,7 +30,7 @@ in
}; };
services.minidlna.mediaDirs = mkOption { services.minidlna.mediaDirs = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = []; default = [];
example = [ "/data/media" "V,/home/alice/video" ]; example = [ "/data/media" "V,/home/alice/video" ];
description = description =

View File

@ -118,7 +118,7 @@ in {
}; };
appendNameservers = mkOption { appendNameservers = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = []; default = [];
description = '' description = ''
A list of name servers that should be appended A list of name servers that should be appended
@ -127,7 +127,7 @@ in {
}; };
insertNameservers = mkOption { insertNameservers = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = []; default = [];
description = '' description = ''
A list of name servers that should be inserted before A list of name servers that should be inserted before

View File

@ -31,7 +31,7 @@ with lib;
services.notbit = { services.notbit = {
enable = mkOption { enable = mkOption {
type = types.uniq types.bool; type = types.bool;
default = false; default = false;
description = '' description = ''
Enables the notbit daemon and provides a sendmail binary named `notbit-system-sendmail` for sending mail over the system instance of notbit. Users must be in the notbit group in order to send mail over the system notbit instance. Currently mail recipt is not supported. Enables the notbit daemon and provides a sendmail binary named `notbit-system-sendmail` for sending mail over the system instance of notbit. Users must be in the notbit group in order to send mail over the system notbit instance. Currently mail recipt is not supported.
@ -39,13 +39,13 @@ with lib;
}; };
port = mkOption { port = mkOption {
type = types.uniq types.int; type = types.int;
default = 8444; default = 8444;
description = "The port which the daemon listens for other bitmessage clients"; description = "The port which the daemon listens for other bitmessage clients";
}; };
nice = mkOption { nice = mkOption {
type = types.uniq types.int; type = types.int;
default = 10; default = 10;
description = "Set the nice level for the notbit daemon"; description = "Set the nice level for the notbit daemon";
}; };
@ -65,19 +65,19 @@ with lib;
}; };
specifiedPeersOnly = mkOption { specifiedPeersOnly = mkOption {
type = types.uniq types.bool; type = types.bool;
default = false; default = false;
description = "If true, notbit will only connect to peers specified by the peers option."; description = "If true, notbit will only connect to peers specified by the peers option.";
}; };
allowPrivateAddresses = mkOption { allowPrivateAddresses = mkOption {
type = types.uniq types.bool; type = types.bool;
default = false; default = false;
description = "If true, notbit will allow connections to to RFC 1918 addresses."; description = "If true, notbit will allow connections to to RFC 1918 addresses.";
}; };
noBootstrap = mkOption { noBootstrap = mkOption {
type = types.uniq types.bool; type = types.bool;
default = false; default = false;
description = "If true, notbit will not bootstrap an initial peerlist from bitmessage.org servers"; description = "If true, notbit will not bootstrap an initial peerlist from bitmessage.org servers";
}; };

View File

@ -57,7 +57,7 @@ in
http-port = mkOption { http-port = mkOption {
default = 3000; default = 3000;
type = types.uniq types.int; type = types.int;
description = '' description = ''
Sets the HTTP port of the embedded web server. Sets the HTTP port of the embedded web server.
''; '';

View File

@ -42,7 +42,7 @@ in
}; };
allowedClients = mkOption { allowedClients = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = [ "127.0.0.1" "::1" ]; default = [ "127.0.0.1" "::1" ];
example = [ "127.0.0.1" "::1" "134.157.168.0/24" "2001:660:116::/48" ]; example = [ "127.0.0.1" "::1" "134.157.168.0/24" "2001:660:116::/48" ];
description = '' description = ''

View File

@ -234,7 +234,7 @@ in
]; ];
options = { options = {
hostNames = mkOption { hostNames = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = []; default = [];
description = '' description = ''
A list of host names and/or IP numbers used for accessing A list of host names and/or IP numbers used for accessing

View File

@ -25,7 +25,7 @@ in
options = { options = {
services.unifi.enable = mkOption { services.unifi.enable = mkOption {
type = types.uniq types.bool; type = types.bool;
default = false; default = false;
description = '' description = ''
Whether or not to enable the unifi controller service. Whether or not to enable the unifi controller service.

View File

@ -43,7 +43,7 @@ in
}; };
interfaces = mkOption { interfaces = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = []; default = [];
example = [ "wlan0" "wlan1" ]; example = [ "wlan0" "wlan1" ];
description = '' description = ''

View File

@ -144,7 +144,7 @@ in
*/ */
confOptions = { confOptions = {
modules = mkOption { modules = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = [ "partyline" "webadmin" "adminlog" "log" ]; default = [ "partyline" "webadmin" "adminlog" "log" ];
example = [ "partyline" "webadmin" "adminlog" "log" ]; example = [ "partyline" "webadmin" "adminlog" "log" ];
description = '' description = ''
@ -153,7 +153,7 @@ in
}; };
userModules = mkOption { userModules = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = [ ]; default = [ ];
example = [ "fish" "push" ]; example = [ "fish" "push" ];
description = '' description = ''

View File

@ -13,7 +13,7 @@ in {
enable = mkOption { enable = mkOption {
description = "Whether to enable graphite web frontend."; description = "Whether to enable graphite web frontend.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
httpPort = mkOption { httpPort = mkOption {

View File

@ -12,7 +12,7 @@ in {
options.services.marathon = { options.services.marathon = {
enable = mkOption { enable = mkOption {
type = types.uniq types.bool; type = types.bool;
default = false; default = false;
description = '' description = ''
Whether to enable the marathon mesos framework. Whether to enable the marathon mesos framework.

View File

@ -34,7 +34,7 @@ in {
enable = mkOption { enable = mkOption {
description = "Whether to enable elasticsearch."; description = "Whether to enable elasticsearch.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
host = mkOption { host = mkOption {
@ -102,7 +102,7 @@ in {
extraCmdLineOptions = mkOption { extraCmdLineOptions = mkOption {
description = "Extra command line options for the elasticsearch launcher."; description = "Extra command line options for the elasticsearch launcher.";
default = []; default = [];
type = types.listOf types.string; type = types.listOf types.str;
example = [ "-Djava.net.preferIPv4Stack=true" ]; example = [ "-Djava.net.preferIPv4Stack=true" ];
}; };

View File

@ -20,7 +20,7 @@ in {
enable = mkOption { enable = mkOption {
description = "Whether to enable peerflix service."; description = "Whether to enable peerflix service.";
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
}; };
stateDir = mkOption { stateDir = mkOption {

View File

@ -27,7 +27,7 @@ in
options = { options = {
services.transmission = { services.transmission = {
enable = mkOption { enable = mkOption {
type = types.uniq types.bool; type = types.bool;
default = false; default = false;
description = '' description = ''
Whether or not to enable the headless Transmission BitTorrent daemon. Whether or not to enable the headless Transmission BitTorrent daemon.
@ -66,7 +66,7 @@ in
}; };
port = mkOption { port = mkOption {
type = types.uniq types.int; type = types.int;
default = 9091; default = 9091;
description = "TCP port number to run the RPC/web interface."; description = "TCP port number to run the RPC/web interface.";
}; };

View File

@ -15,7 +15,7 @@ in
enable = mkOption { enable = mkOption {
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
description = '' description = ''
If true, enable cgit (fast web interface for git repositories) as a If true, enable cgit (fast web interface for git repositories) as a
sub-service in lighttpd. cgit will be accessible at sub-service in lighttpd. cgit will be accessible at

View File

@ -122,7 +122,7 @@ in
enable = mkOption { enable = mkOption {
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
description = '' description = ''
Enable the lighttpd web server. Enable the lighttpd web server.
''; '';
@ -130,7 +130,7 @@ in
port = mkOption { port = mkOption {
default = 80; default = 80;
type = types.uniq types.int; type = types.int;
description = '' description = ''
TCP port number for lighttpd to bind to. TCP port number for lighttpd to bind to.
''; '';
@ -146,7 +146,7 @@ in
mod_userdir = mkOption { mod_userdir = mkOption {
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
description = '' description = ''
If true, requests in the form /~user/page.html are rewritten to take If true, requests in the form /~user/page.html are rewritten to take
the file public_html/page.html from the home directory of the user. the file public_html/page.html from the home directory of the user.
@ -168,7 +168,7 @@ in
mod_status = mkOption { mod_status = mkOption {
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
description = '' description = ''
Show server status overview at /server-status, statistics at Show server status overview at /server-status, statistics at
/server-statistics and list of loaded modules at /server-config. /server-statistics and list of loaded modules at /server-config.

View File

@ -17,7 +17,7 @@ in
enable = mkOption { enable = mkOption {
default = false; default = false;
type = types.uniq types.bool; type = types.bool;
description = '' description = ''
If true, enable gitweb in lighttpd. Access it at http://yourserver/gitweb If true, enable gitweb in lighttpd. Access it at http://yourserver/gitweb
''; '';

View File

@ -165,6 +165,7 @@ let
Type=XSession Type=XSession
TryExec=${cfg.displayManager.session.script} TryExec=${cfg.displayManager.session.script}
Exec=${cfg.displayManager.session.script} '${n}' Exec=${cfg.displayManager.session.script} '${n}'
X-GDM-BypassXsession=true
Name=${n} Name=${n}
Comment= Comment=
EODESKTOP EODESKTOP

View File

@ -14,24 +14,24 @@ in {
services.redshift.latitude = mkOption { services.redshift.latitude = mkOption {
description = "Your current latitude"; description = "Your current latitude";
type = types.uniq types.string; type = types.str;
}; };
services.redshift.longitude = mkOption { services.redshift.longitude = mkOption {
description = "Your current longitude"; description = "Your current longitude";
type = types.uniq types.string; type = types.str;
}; };
services.redshift.temperature = { services.redshift.temperature = {
day = mkOption { day = mkOption {
description = "Colour temperature to use during day time"; description = "Colour temperature to use during day time";
default = 5500; default = 5500;
type = types.uniq types.int; type = types.int;
}; };
night = mkOption { night = mkOption {
description = "Colour temperature to use during night time"; description = "Colour temperature to use during night time";
default = 3700; default = 3700;
type = types.uniq types.int; type = types.int;
}; };
}; };
@ -39,12 +39,12 @@ in {
day = mkOption { day = mkOption {
description = "Screen brightness to apply during the day (between 0.1 and 1.0)"; description = "Screen brightness to apply during the day (between 0.1 and 1.0)";
default = "1"; default = "1";
type = types.uniq types.string; type = types.str;
}; };
night = mkOption { night = mkOption {
description = "Screen brightness to apply during the night (between 0.1 and 1.0)"; description = "Screen brightness to apply during the night (between 0.1 and 1.0)";
default = "1"; default = "1";
type = types.uniq types.string; type = types.str;
}; };
}; };
}; };

View File

@ -13,7 +13,7 @@ in {
services.unclutter.arguments = mkOption { services.unclutter.arguments = mkOption {
description = "Arguments to pass to unclutter command"; description = "Arguments to pass to unclutter command";
default = "-idle 1"; default = "-idle 1";
type = types.uniq types.string; type = types.str;
}; };
}; };

View File

@ -502,6 +502,14 @@ my $efiDiffer = ($efiTarget eq \$prevGrubState->efi);
my $efiMountPointDiffer = ($efiSysMountPoint eq \$prevGrubState->efiMountPoint); my $efiMountPointDiffer = ($efiSysMountPoint eq \$prevGrubState->efiMountPoint);
my $requireNewInstall = $devicesDiffer || $versionDiffer || $efiDiffer || $efiMountPointDiffer || (($ENV{'NIXOS_INSTALL_GRUB'} // "") eq "1"); my $requireNewInstall = $devicesDiffer || $versionDiffer || $efiDiffer || $efiMountPointDiffer || (($ENV{'NIXOS_INSTALL_GRUB'} // "") eq "1");
# install a symlink so that grub can detect the boot drive when set
# as the root directory
if (! -l "$bootPath/boot") {
if (-e "$bootPath/boot") {
unlink "$bootPath/boot";
}
symlink ".", "$bootPath/boot";
}
# install non-EFI GRUB # install non-EFI GRUB
if (($requireNewInstall != 0) && ($efiTarget eq "no" || $efiTarget eq "both")) { if (($requireNewInstall != 0) && ($efiTarget eq "no" || $efiTarget eq "both")) {
@ -509,10 +517,10 @@ if (($requireNewInstall != 0) && ($efiTarget eq "no" || $efiTarget eq "both")) {
next if $dev eq "nodev"; next if $dev eq "nodev";
print STDERR "installing the GRUB $grubVersion boot loader on $dev...\n"; print STDERR "installing the GRUB $grubVersion boot loader on $dev...\n";
if ($grubTarget eq "") { if ($grubTarget eq "") {
system("$grub/sbin/grub-install", "--recheck", "--boot-directory=$bootPath", Cwd::abs_path($dev)) == 0 system("$grub/sbin/grub-install", "--recheck", "--root-directory=$bootPath", Cwd::abs_path($dev)) == 0
or die "$0: installation of GRUB on $dev failed\n"; or die "$0: installation of GRUB on $dev failed\n";
} else { } else {
system("$grub/sbin/grub-install", "--recheck", "--boot-directory=$bootPath", "--target=$grubTarget", Cwd::abs_path($dev)) == 0 system("$grub/sbin/grub-install", "--recheck", "--root-directory=$bootPath", "--target=$grubTarget", Cwd::abs_path($dev)) == 0
or die "$0: installation of GRUB on $dev failed\n"; or die "$0: installation of GRUB on $dev failed\n";
} }
} }

View File

@ -211,7 +211,7 @@ in
}; };
boot.initrd.luks.cryptoModules = mkOption { boot.initrd.luks.cryptoModules = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = default =
[ "aes" "aes_generic" "blowfish" "twofish" [ "aes" "aes_generic" "blowfish" "twofish"
"serpent" "cbc" "xts" "lrw" "sha1" "sha256" "sha512" "serpent" "cbc" "xts" "lrw" "sha1" "sha256" "sha512"

View File

@ -358,7 +358,7 @@ in
boot.initrd.supportedFilesystems = mkOption { boot.initrd.supportedFilesystems = mkOption {
default = [ ]; default = [ ];
example = [ "btrfs" ]; example = [ "btrfs" ];
type = types.listOf types.string; type = types.listOf types.str;
description = "Names of supported filesystem types in the initial ramdisk."; description = "Names of supported filesystem types in the initial ramdisk.";
}; };

View File

@ -42,13 +42,13 @@ in rec {
requiredBy = mkOption { requiredBy = mkOption {
default = []; default = [];
type = types.listOf types.string; type = types.listOf types.str;
description = "Units that require (i.e. depend on and need to go down with) this unit."; description = "Units that require (i.e. depend on and need to go down with) this unit.";
}; };
wantedBy = mkOption { wantedBy = mkOption {
default = []; default = [];
type = types.listOf types.string; type = types.listOf types.str;
description = "Units that want (i.e. depend on) this unit."; description = "Units that want (i.e. depend on) this unit.";
}; };

View File

@ -491,7 +491,7 @@ in
services.journald.rateLimitBurst = mkOption { services.journald.rateLimitBurst = mkOption {
default = 100; default = 100;
type = types.uniq types.int; type = types.int;
description = '' description = ''
Configures the rate limiting burst limit (number of messages per Configures the rate limiting burst limit (number of messages per
interval) that is applied to all messages generated on the system. interval) that is applied to all messages generated on the system.

View File

@ -121,7 +121,7 @@ in
boot.supportedFilesystems = mkOption { boot.supportedFilesystems = mkOption {
default = [ ]; default = [ ];
example = [ "btrfs" ]; example = [ "btrfs" ];
type = types.listOf types.string; type = types.listOf types.str;
description = "Names of supported filesystem types."; description = "Names of supported filesystem types.";
}; };

View File

@ -22,7 +22,7 @@ in
# FIXME: still needed? # FIXME: still needed?
boot.extraTTYs = mkOption { boot.extraTTYs = mkOption {
default = []; default = [];
type = types.listOf types.string; type = types.listOf types.str;
example = ["tty8" "tty9"]; example = ["tty8" "tty9"];
description = '' description = ''
Tty (virtual console) devices, in addition to the consoles on Tty (virtual console) devices, in addition to the consoles on

View File

@ -392,7 +392,7 @@ in
interfaces = mkOption { interfaces = mkOption {
example = [ "eth0" "eth1" ]; example = [ "eth0" "eth1" ];
type = types.listOf types.string; type = types.listOf types.str;
description = description =
"The physical network interfaces connected by the bridge."; "The physical network interfaces connected by the bridge.";
}; };

View File

@ -62,7 +62,7 @@ let
extraDisks="" extraDisks=""
${flip concatMapStrings cfg.emptyDiskImages (size: '' ${flip concatMapStrings cfg.emptyDiskImages (size: ''
${pkgs.qemu_kvm}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M" ${pkgs.qemu_kvm}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M"
extraDisks="$extraDisks -drive index=$idx,file=$(pwd)/empty$idx.qcow2,if=virtio,werror=report" extraDisks="$extraDisks -drive index=$idx,file=$(pwd)/empty$idx.qcow2,if=${cfg.qemu.diskInterface},werror=report"
idx=$((idx + 1)) idx=$((idx + 1))
'')} '')}
@ -76,14 +76,14 @@ let
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \ -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
-virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \ -virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \
${if cfg.useBootLoader then '' ${if cfg.useBootLoader then ''
-drive index=0,id=drive1,file=$NIX_DISK_IMAGE,if=virtio,cache=writeback,werror=report \ -drive index=0,id=drive1,file=$NIX_DISK_IMAGE,if=${cfg.qemu.diskInterface},cache=writeback,werror=report \
-drive index=1,id=drive2,file=$TMPDIR/disk.img,media=disk \ -drive index=1,id=drive2,file=$TMPDIR/disk.img,media=disk \
${if cfg.useEFIBoot then '' ${if cfg.useEFIBoot then ''
-pflash $TMPDIR/bios.bin \ -pflash $TMPDIR/bios.bin \
'' else '' '' else ''
''} ''}
'' else '' '' else ''
-drive index=0,id=drive1,file=$NIX_DISK_IMAGE,if=virtio,cache=writeback,werror=report \ -drive index=0,id=drive1,file=$NIX_DISK_IMAGE,if=${cfg.qemu.diskInterface},cache=writeback,werror=report \
-kernel ${config.system.build.toplevel}/kernel \ -kernel ${config.system.build.toplevel}/kernel \
-initrd ${config.system.build.toplevel}/initrd \ -initrd ${config.system.build.toplevel}/initrd \
-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo} ${kernelConsole} $QEMU_KERNEL_PARAMS" \ -append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo} ${kernelConsole} $QEMU_KERNEL_PARAMS" \
@ -207,7 +207,7 @@ in
virtualisation.bootDevice = virtualisation.bootDevice =
mkOption { mkOption {
type = types.str; type = types.str;
default = "/dev/vda"; example = "/dev/vda";
description = description =
'' ''
The disk to be used for the root filesystem. The disk to be used for the root filesystem.
@ -318,6 +318,17 @@ in
to keep the default runtime behaviour. to keep the default runtime behaviour.
''; '';
}; };
diskInterface =
mkOption {
default = "virtio";
example = "scsi";
type = types.str;
description = ''
The interface used for the virtual hard disks
(<literal>virtio</literal> or <literal>scsi</literal>).
'';
};
}; };
virtualisation.useBootLoader = virtualisation.useBootLoader =
@ -393,6 +404,12 @@ in
fi fi
''; '';
boot.initrd.availableKernelModules =
optional (cfg.qemu.diskInterface == "scsi") "sym53c8xx";
virtualisation.bootDevice =
mkDefault (if cfg.qemu.diskInterface == "scsi" then "/dev/sda" else "/dev/vda");
virtualisation.pathsInNixDB = [ config.system.build.toplevel ]; virtualisation.pathsInNixDB = [ config.system.build.toplevel ];
virtualisation.qemu.options = [ "-vga std" "-usbdevice tablet" ]; virtualisation.qemu.options = [ "-vga std" "-usbdevice tablet" ];

View File

@ -175,7 +175,10 @@ let
# installer. This ensures the target disk (/dev/vda) is # installer. This ensures the target disk (/dev/vda) is
# the same during and after installation. # the same during and after installation.
virtualisation.emptyDiskImages = [ 512 ]; virtualisation.emptyDiskImages = [ 512 ];
virtualisation.bootDevice = "/dev/vdb"; virtualisation.bootDevice =
if grubVersion == 1 then "/dev/sdb" else "/dev/vdb";
virtualisation.qemu.diskInterface =
if grubVersion == 1 then "scsi" else "virtio";
hardware.enableAllFirmware = mkForce false; hardware.enableAllFirmware = mkForce false;

View File

@ -0,0 +1,43 @@
{ stdenv, fetchFromGitHub, fftw, libsndfile, qt5 }:
let version = "1.0.1"; in
stdenv.mkDerivation {
name = "dfasma-${version}";
src = fetchFromGitHub {
sha256 = "16m6jnr49j525xxqiwmwni07rcdg92p0dcznd5bmzz34xsm0cbiz";
rev = "v${version}";
repo = "dfasma";
owner = "gillesdegottex";
};
meta = with stdenv.lib; {
inherit version;
description = "Analyse and compare audio files in time and frequency";
longDescription = ''
DFasma is free open-source software to compare audio files by time and
frequency. The comparison is first visual, using wavforms and spectra. It
is also possible to listen to time-frequency segments in order to allow
perceptual comparison. It is basically dedicated to analysis. Even though
there are basic functionalities to align the signals in time and
amplitude, this software does not aim to be an audio editor.
'';
homepage = http://gillesdegottex.github.io/dfasma/;
license = licenses.gpl3Plus;
platforms = with platforms; linux;
maintainers = with maintainers; [ nckx ];
};
buildInputs = [ fftw libsndfile qt5.base qt5.multimedia ];
configurePhase = ''
qmake DESTDIR=$out/bin dfasma.pro
'';
enableParallelBuilding = true;
postInstall = ''
install -Dm644 distrib/dfasma.desktop $out/share/applications/dfasma.desktop
install -Dm644 icons/dfasma.png $out/share/pixmaps/dfasma.png
'';
}

View File

@ -1,26 +1,30 @@
{ stdenv, fetchurl, alsaLib, cmake, fftw, freeglut, jack2, libXmu, qt4 }: { stdenv, fetchFromGitHub, alsaLib, cmake, fftw
, freeglut, jack2, libXmu, qt4 }:
stdenv.mkDerivation rec { let version = "1.0.0"; in
version = "0.99.5"; stdenv.mkDerivation {
name = "fmit-${version}"; name = "fmit-${version}";
src = fetchurl { src = fetchFromGitHub {
url = "http://download.gna.org/fmit/${name}-Source.tar.bz2"; sha256 = "13y9csv34flz7065kg69h99hd7d9zskq12inmkf34l4qjyk7c185";
sha256 = "1rc84gi27jmq2smhk0y0p2xyypmsz878vi053iqns21k848g1491"; rev = "v${version}";
repo = "fmit";
owner = "gillesdegottex";
}; };
# Also update longDescription when adding/removing sound libraries buildInputs = [ alsaLib fftw freeglut jack2 libXmu qt4 ];
buildInputs = [ alsaLib cmake fftw freeglut jack2 libXmu qt4 ]; nativeBuildInputs = [ cmake ];
enableParallelBuilding = true; enableParallelBuilding = true;
meta = with stdenv.lib; { meta = with stdenv.lib; {
inherit version;
description = "Free Musical Instrument Tuner"; description = "Free Musical Instrument Tuner";
longDescription = '' longDescription = ''
Software for tuning musical instruments. Uses Qt as GUI library and FMIT is a graphical utility for tuning your musical instruments, with
ALSA or JACK as sound input library. error and volume history and advanced features.
''; '';
homepage = http://home.gna.org/fmit/index.html; homepage = http://gillesdegottex.github.io/fmit/;
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = with platforms; linux; platforms = with platforms; linux;
maintainers = with maintainers; [ nckx ]; maintainers = with maintainers; [ nckx ];

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl, alsaLib }: {stdenv, fetchurl, alsaLib }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "mpg123-1.19.0"; name = "mpg123-1.22.2";
src = fetchurl { src = fetchurl {
url = mirror://sourceforge/mpg123/mpg123-1.19.0.tar.bz2; url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
sha256 = "06xhd68mj9yp0r6l771aq0d7xgnl402a3wm2mvhxmd3w3ph29446"; sha256 = "0i1phi6fdjas37y00h3j8rb0b8ngr9az6hy5ff5bl53ify3j87kd";
}; };
buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib; buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
@ -16,8 +16,9 @@ stdenv.mkDerivation {
}; };
meta = { meta = {
description = "Command-line MP3 player"; description = "Fast console MPEG Audio Player and decoder library";
homepage = http://mpg123.sourceforge.net/; homepage = http://mpg123.org;
license = "LGPL"; license = stdenv.lib.licenses.lgpl21;
maintainers = [ stdenv.lib.maintainers.ftrvxmtrx ];
}; };
} }

View File

@ -6,7 +6,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "https://github.com/hvesalai/scala-mode2/archive/c154f1623f4696d26e1c88d19170e67bf6825837.zip"; url = "https://github.com/hvesalai/scala-mode2/archive/c154f1623f4696d26e1c88d19170e67bf6825837.zip";
sha256 = "0fyxdpwz55n4c87v4ijqlbv6w1rybg5qrgsc40f6bs6sd747scy5"; sha256 = "0im2ajb1iagjldh52j8wz4yby68rs3h7shrdf1pqy5ds7s4fa8cc";
}; };
buildInputs = [ unzip emacs ]; buildInputs = [ unzip emacs ];

View File

@ -2,11 +2,11 @@
buildPythonPackage rec { buildPythonPackage rec {
name = "electrum-${version}"; name = "electrum-${version}";
version = "2.0.4"; version = "2.3.2";
src = fetchurl { src = fetchurl {
url = "https://download.electrum.org/Electrum-${version}.tar.gz"; url = "https://download.electrum.org/Electrum-${version}.tar.gz";
sha256 = "0q9vrrzy2iypfg2zvs3glzvqyq65dnwn1ijljvfqfwrkpvpp0zxp"; sha256 = "0idqm77d5rbwpw14wqg4ysvbjyqjw7zlqfcdxniy74i2qwz163bi";
}; };
propagatedBuildInputs = with pythonPackages; [ propagatedBuildInputs = with pythonPackages; [

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, pkgs, pythonPackages }: { stdenv, fetchurl, pkgs, pythonPackages }:
pythonPackages.buildPythonPackage rec { pythonPackages.buildPythonPackage rec {
version = "0.4.0"; version = "0.5.0";
name = "khal-${version}"; name = "khal-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/geier/khal/archive/v${version}.tar.gz"; url = "https://github.com/geier/khal/archive/v${version}.tar.gz";
sha256 = "0d32miq55cly4q3raxkw3xpq4d5y3hvzaqvy066nv35bdlpafxi1"; sha256 = "1rjs5s8ky4n628rs6l5ggaj2abb4kq2avvxmimjjgxz3zh9xlz6s";
}; };
propagatedBuildInputs = with pythonPackages; [ propagatedBuildInputs = with pythonPackages; [
@ -22,13 +22,13 @@ pythonPackages.buildPythonPackage rec {
requests_toolbelt requests_toolbelt
tzlocal tzlocal
urwid urwid
python.modules.sqlite3
]; ];
meta = { meta = with stdenv.lib; {
homepage = http://lostpackets.de/khal/; homepage = http://lostpackets.de/khal/;
description = "CLI calendar application"; description = "CLI calendar application";
license = stdenv.lib.licenses.mit; license = licenses.mit;
maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ]; maintainers = with maintainers; [ matthiasbeyer jgeerds ];
}; };
} }

View File

@ -0,0 +1,23 @@
{ stdenv, fetchurl, pkgconfig, gtk, libxml2, gettext, libical, libnotify
, libarchive, gtkspell, webkitgtk2, libgringotts }:
stdenv.mkDerivation rec {
name = "osmo-${version}";
version = "0.2.12";
src = fetchurl {
url = "mirror://sourceforge/osmo-pim/${name}.tar.gz";
sha256 = "0y3bpsi18v3dxb3vsy0dr7cgf692g4p62l84hj9l2bpr2hbabgck";
};
buildInputs = [ pkgconfig gtk libxml2 gettext libical libnotify libarchive
gtkspell webkitgtk2 libgringotts ];
meta = with stdenv.lib; {
description = "A handy personal organizer";
homepage = http://clayo.org/osmo/;
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ pSub ];
};
}

View File

@ -151,10 +151,9 @@ rec {
# ImageMagick mirrors, see http://www.imagemagick.org/script/download.php. # ImageMagick mirrors, see http://www.imagemagick.org/script/download.php.
imagemagick = [ imagemagick = [
ftp://ftp.nluug.nl/pub/ImageMagick/ http://www.imagemagick.org/download/
ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/ # also contains older versions removed from most mirrors
ftp://ftp.imagemagick.org/pub/ImageMagick/ ftp://ftp.imagemagick.org/pub/ImageMagick/
ftp://ftp.imagemagick.net/pub/ImageMagick/
ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/
]; ];
# CPAN mirrors. # CPAN mirrors.

View File

@ -1,59 +1,31 @@
x@{builderDefsPackage { stdenv, fetchzip }:
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x) stdenv.mkDerivation rec {
(builtins.attrNames (builtins.removeAttrs x helperArgNames)); name = "andagii-${version}";
sourceInfo = rec { version = "1.0.2";
url="http://www.i18nguy.com/unicode/andagii.zip";
name="andagii"; src = fetchzip {
version="1.0.2"; url = http://www.i18nguy.com/unicode/andagii.zip;
hash="0cknb8vin15akz4ahpyayrpqyaygp9dgrx6qw7zs7d6iv9v59ds1"; sha256 = "0a0c43y1fd5ksj50axhng7p00kgga0i15p136g68p35wj7kh5g2k";
}; stripRoot = false;
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
curlOpts = "--user-agent 'Mozilla/5.0'"; curlOpts = "--user-agent 'Mozilla/5.0'";
sha256 = sourceInfo.hash;
}; };
name = "${sourceInfo.name}-${sourceInfo.version}"; phases = [ "unpackPhase" "installPhase" ];
inherit buildInputs;
/* doConfigure should be removed if not needed */ installPhase = ''
phaseNames = ["doUnpack" "doInstall"]; mkdir -p $out/share/fonts/truetype
cp -v ANDAGII_.TTF $out/share/fonts/truetype/andagii.ttf
'';
doUnpack = a.fullDepEntry '' # There are multiple claims that the font is GPL, so I include the
unzip "${src}" # package; but I cannot find the original source, so use it on your
'' ["addInputs"]; # own risk Debian claims it is GPL - good enough for me.
meta = with stdenv.lib; {
doInstall = a.fullDepEntry ('' homepage = http://www.i18nguy.com/unicode/unicode-font.HTML;
mkdir -p "$out"/share/fonts/ttf/
cp ANDAGII_.TTF "$out"/share/fonts/ttf/andagii.ttf
'') ["defEnsureDir" "minInit"];
meta = {
description = "Unicode Plane 1 Osmanya script font"; description = "Unicode Plane 1 Osmanya script font";
maintainers = with a.lib.maintainers; maintainers = with maintainers; [ raskin rycee ];
[ license = "unknown";
raskin platforms = platforms.all;
];
hydraPlatforms = [];
# There are multiple claims that the font is GPL,
# so I include the package; but I cannot find the
# original source, so use it on your own risk
# Debian claims it is GPL - good enough for me.
}; };
passthru = { }
updateInfo = {
downloadPage = "http://www.i18nguy.com/unicode/unicode-font.html";
};
};
}) x

View File

@ -1,50 +1,36 @@
x@{builderDefsPackage { stdenv, fetchurl, unzip }:
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x) stdenv.mkDerivation rec {
(builtins.attrNames (builtins.removeAttrs x helperArgNames)); name = "anonymousPro-${version}";
sourceInfo = rec { version = "1.002";
version = "1.002";
name="anonymousPro"; src = fetchurl {
url="http://www.ms-studio.com/FontSales/AnonymousPro-${version}.zip"; url = "http://www.marksimonson.com/assets/content/fonts/AnonymousPro-${version}.zip";
sha256 = "1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6"; sha256 = "1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6";
}; };
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.sha256;
};
name = "${sourceInfo.name}-${sourceInfo.version}"; nativeBuildInputs = [ unzip ];
inherit buildInputs; phases = [ "unpackPhase" "installPhase" ];
phaseNames = ["doUnpack" "installFonts"]; installPhase = ''
mkdir -p $out/share/fonts/truetype
mkdir -p $out/share/doc/${name}
find . -name "*.ttf" -exec cp -v {} $out/share/fonts/truetype \;
find . -name "*.txt" -exec cp -v {} $out/share/doc/${name} \;
'';
doUnpack = a.fullDepEntry ('' meta = with stdenv.lib; {
unzip ${src} homepage = http://www.marksimonson.com/fonts/view/anonymous-pro;
cd AnonymousPro*/
'') ["addInputs"];
meta = {
description = "TrueType font set intended for source code"; description = "TrueType font set intended for source code";
maintainers = with a.lib.maintainers; longDescription = ''
[ Anonymous Pro (2009) is a family of four fixed-width fonts
raskin designed with coding in mind. Anonymous Pro features an
]; international, Unicode-based character set, with support for
platforms = with a.lib.platforms; most Western and Central European Latin-based languages, plus
all; Greek and Cyrillic. It is designed by Mark Simonson.
license = with a.lib.licenses; ofl; '';
hydraPlatforms = []; maintainers = with maintainers; [ raskin rycee ];
homepage = "http://www.marksimonson.com/fonts/view/anonymous-pro"; license = licenses.ofl;
downloadPage = "http://www.ms-studio.com/FontSales/anonymouspro.html"; platforms = platforms.all;
inherit (sourceInfo) version;
}; };
}) x }

View File

@ -1,40 +1,28 @@
x@{builderDefsPackage { stdenv, fetchurl }:
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x) stdenv.mkDerivation rec {
(builtins.attrNames (builtins.removeAttrs x helperArgNames)); name = "cm-unicode-${version}";
sourceInfo = rec { version = "0.7.0";
version = "0.7.0";
baseName="cm-unicode"; src = fetchurl {
name="${baseName}-${version}"; url = "mirror://sourceforge/cm-unicode/cm-unicode/${version}/${name}-otf.tar.xz";
url="mirror://sourceforge/${baseName}/${baseName}/${version}/${name}-otf.tar.xz";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = "0a0w9qm9g8qz2xh3lr61bj1ymqslqsvk4w2ybc3v2qa89nz7x2jl"; sha256 = "0a0w9qm9g8qz2xh3lr61bj1ymqslqsvk4w2ybc3v2qa89nz7x2jl";
}; };
inherit (sourceInfo) name version; phases = [ "unpackPhase" "installPhase" ];
inherit buildInputs;
phaseNames = ["doUnpack" "installFonts"]; installPhase = ''
mkdir -p $out/share/fonts/opentype
mkdir -p $out/share/doc/${name}
cp -v *.otf $out/share/fonts/opentype/
cp -v README FontLog.txt $out/share/doc/${name}
'';
meta = { meta = with stdenv.lib; {
maintainers = with a.lib.maintainers; homepage = http://canopus.iacp.dvo.ru/~panov/cm-unicode/;
[ description = "Computer Modern Unicode fonts";
raskin maintainers = with maintainers; [ raskin rycee ];
]; license = licenses.ofl;
platforms = with a.lib.platforms; platforms = platforms.all;
all;
downloadPage = "http://sourceforge.net/projects/cm-unicode/files/cm-unicode/";
inherit version;
}; };
}) x }

View File

@ -1,50 +1,28 @@
x@{builderDefsPackage { stdenv, fetchzip }:
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x) stdenv.mkDerivation rec {
(builtins.attrNames (builtins.removeAttrs x helperArgNames)); name = "eb-garamond-${version}";
sourceInfo = rec { version = "0.016";
version="0.016";
name="EBGaramond"; src = fetchzip {
url="https://bitbucket.org/georgd/eb-garamond/downloads/${name}-${version}.zip"; url = "https://bitbucket.org/georgd/eb-garamond/downloads/EBGaramond-${version}.zip";
hash="0y630khn5zh70al3mm84fs767ac94ffyz1w70zzhrhambx07pdx0"; sha256 = "0j40bg1di39q7zis64il67xchldyznrl8wij9il10c4wr8nl4r9z";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
}; };
name = "eb-garamond-${sourceInfo.version}"; phases = [ "unpackPhase" "installPhase" ];
inherit buildInputs;
phaseNames = ["doUnpack" "installFonts"]; installPhase = ''
mkdir -p $out/share/fonts/opentype
mkdir -p $out/share/doc/${name}
cp -v "otf/"*.otf $out/share/fonts/opentype/
cp -v Changes README.markdown README.xelualatex $out/share/doc/${name}
'';
# This will clean up if/when 8263996 lands. meta = with stdenv.lib; {
doUnpack = a.fullDepEntry (''
unzip ${src}
cd ${sourceInfo.name}*
mv {ttf,otf}/* .
'') ["addInputs"];
meta = with a.lib; {
description = "Digitization of the Garamond shown on the Egenolff-Berner specimen";
maintainers = with maintainers; [ relrod ];
platforms = platforms.all;
license = licenses.ofl;
homepage = http://www.georgduffner.at/ebgaramond/; homepage = http://www.georgduffner.at/ebgaramond/;
description = "Digitization of the Garamond shown on the Egenolff-Berner specimen";
maintainers = with maintainers; [ relrod rycee ];
license = licenses.ofl;
platforms = platforms.all;
}; };
passthru = { }
updateInfo = {
downloadPage = "https://github.com/georgd/EB-Garamond/releases";
};
};
}) x

View File

@ -1,46 +1,29 @@
x@{builderDefsPackage { stdenv, fetchzip }:
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x) stdenv.mkDerivation rec {
(builtins.attrNames (builtins.removeAttrs x helperArgNames)); name = "gentium-${version}";
sourceInfo = rec { version = "1.504";
version="1.504";
baseName="GentiumPlus"; src = fetchzip {
name="${baseName}-${version}"; name = "${name}.zip";
url="http://scripts.sil.org/cms/scripts/render_download.php?&format=file&media_id=${name}.zip&filename=${name}"; url = "http://scripts.sil.org/cms/scripts/render_download.php?format=file&media_id=GentiumPlus-${version}.zip&filename=${name}.zip";
hash="04kslaqbscpfrc6igkifcv1nkrclrm35hqpapjhw9102wpq12fpr"; sha256 = "1xdx80dfal0b8rkrp1janybx2hki7algnvkx4hyghgikpjcjkdh7";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
name = "${sourceInfo.name}.zip";
}; };
inherit (sourceInfo) name version; phases = [ "unpackPhase" "installPhase" ];
inherit buildInputs;
phaseNames = ["addInputs" "doUnpack" "installFonts"]; installPhase = ''
mkdir -p $out/share/fonts/truetype
mkdir -p $out/share/doc/${name}
cp -v *.ttf $out/share/fonts/truetype/
cp -v FONTLOG.txt GENTIUM-FAQ.txt README.txt $out/share/doc/${name}
'';
meta = { meta = with stdenv.lib; {
maintainers = with a.lib.maintainers; homepage = "http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=Gentium";
[ description = "A high-quality typeface family for Latin, Cyrillic, and Greek";
raskin maintainers = with maintainers; [ raskin rycee ];
]; license = licenses.ofl;
platforms = with a.lib.platforms; platforms = platforms.all;
all;
}; };
passthru = { }
updateInfo = {
downloadPage = "http://scripts.sil.org/cms/scripts/page.php?item_id=Gentium_download";
};
};
}) x

View File

@ -1,51 +1,26 @@
x@{builderDefsPackage { stdenv, fetchurl }:
, fontforge
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x) stdenv.mkDerivation rec {
(builtins.attrNames (builtins.removeAttrs x helperArgNames)); name = "inconsolata-${version}";
sourceInfo = rec { version = "1.010";
name="inconsolata";
url="http://www.levien.com/type/myfonts/Inconsolata.sfd"; src = fetchurl {
hash="1cd29c8396adb18bfeddb1abf5bdb98b677649bb9b09f126d1335b123a4cfddb"; url = "http://www.levien.com/type/myfonts/Inconsolata.otf";
}; sha256 = "06js6znbcf7swn8y3b8ki416bz96ay7d3yvddqnvi88lqhbfcq8m";
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
}; };
inherit (sourceInfo) name; phases = [ "installPhase" ];
inherit buildInputs;
/* doConfigure should be removed if not needed */ installPhase = ''
phaseNames = ["copySrc" "generateFontsFromSFD" "installFonts"]; mkdir -p $out/share/fonts/opentype
cp -v $src $out/share/fonts/opentype/inconsolata.otf
copySrc = a.fullDepEntry ('' '';
cp ${src} inconsolata.sfd
'') ["minInit"];
generateFontsFromSFD = a.generateFontsFromSFD // {deps=["addInputs"];}; meta = with stdenv.lib; {
homepage = http://www.levien.com/type/myfonts/inconsolata.html;
meta = {
description = "A monospace font for both screen and print"; description = "A monospace font for both screen and print";
maintainers = with a.lib.maintainers; maintainers = with maintainers; [ raskin rycee ];
[ license = licenses.ofl;
raskin platforms = platforms.all;
];
platforms = with a.lib.platforms;
all;
}; };
passthru = { }
updateInfo = {
downloadPage = "http://www.levien.com/type/myfonts/inconsolata.html";
};
};
}) x

View File

@ -1,50 +1,29 @@
x@{builderDefsPackage { stdenv, fetchzip }:
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x) stdenv.mkDerivation rec {
(builtins.attrNames (builtins.removeAttrs x helperArgNames)); name = "oldstandard-${version}";
sourceInfo = rec { version = "2.2";
version="2.2";
baseName="oldstandard"; src = fetchzip {
name="${baseName}-${version}"; stripRoot = false;
url="http://www.thessalonica.org.ru/downloads/${name}.otf.zip"; url = "https://github.com/akryukov/oldstand/releases/download/v${version}/${name}.otf.zip";
hash="0xhbksrh9mv1cs6dl2mc8l6sypialy9wirkjr54nf7s9bcynv1h6"; sha256 = "1hl78jw5szdjq9dhbcv2ln75wpp2lzcxrnfc36z35v5wk4l7jc3h";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
}; };
inherit (sourceInfo) name version; phases = [ "unpackPhase" "installPhase" ];
inherit buildInputs;
phaseNames = ["doUnpack" "installFonts"]; installPhase = ''
mkdir -p $out/share/fonts/opentype
mkdir -p $out/share/doc/${name}
cp -v *.otf $out/share/fonts/opentype/
cp -v FONTLOG.txt $out/share/doc/${name}
'';
doUnpack = a.fullDepEntry '' meta = with stdenv.lib; {
unzip ${src} homepage = https://github.com/akryukov/oldstand;
'' ["addInputs"]; description = "An attempt to revive a specific type of Modern style of serif typefaces";
maintainers = with maintainers; [ raskin rycee ];
meta = { license = licenses.ofl;
description = "An old-style font"; platforms = platforms.all;
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
all;
}; };
passthru = { }
updateInfo = {
downloadPage = "http://www.thessalonica.org.ru/ru/fonts-download.html";
};
};
}) x

View File

@ -1,50 +1,29 @@
x@{builderDefsPackage { stdenv, fetchzip }:
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x) stdenv.mkDerivation rec {
(builtins.attrNames (builtins.removeAttrs x helperArgNames)); name = "theano-${version}";
sourceInfo = rec { version = "2.0";
version="2.0";
baseName="theano"; src = fetchzip {
name="${baseName}-${version}"; stripRoot = false;
url="http://www.thessalonica.org.ru/downloads/${name}.otf.zip"; url = "https://github.com/akryukov/theano/releases/download/v${version}/theano-${version}.otf.zip";
hash="1xiykqbbiawvfk33639awmgdn25b8s2k7vpwncl17bzlk887b4z6"; sha256 = "1z3c63rcp4vfjyfv8xwc3br10ydwjyac3ipbl09y01s7qhfz02gp";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
}; };
inherit (sourceInfo) name version; phases = [ "unpackPhase" "installPhase" ];
inherit buildInputs;
phaseNames = ["doUnpack" "installFonts"]; installPhase = ''
mkdir -p $out/share/fonts/opentype
mkdir -p $out/share/doc/${name}
find . -name "*.otf" -exec cp -v {} $out/share/fonts/opentype \;
find . -name "*.txt" -exec cp -v {} $out/share/doc/${name} \;
'';
doUnpack = a.fullDepEntry '' meta = with stdenv.lib; {
unzip ${src} homepage = https://github.com/akryukov/theano;
'' ["addInputs"]; description = "An old-style font designed from historic samples";
maintainers = with maintainers; [ raskin rycee ];
meta = { license = licenses.ofl;
description = "An old-style font"; platforms = platforms.all;
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
all;
}; };
passthru = { }
updateInfo = {
downloadPage = "http://www.thessalonica.org.ru/ru/fonts-download.html";
};
};
}) x

View File

@ -8,7 +8,7 @@ let
# Annoyingly, these files are updated without a change in URL. This means that # Annoyingly, these files are updated without a change in URL. This means that
# builds will start failing every month or so, until the hashes are updated. # builds will start failing every month or so, until the hashes are updated.
version = "2015-06-03"; version = "2015-06-15";
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "geolite-legacy-${version}"; name = "geolite-legacy-${version}";
@ -22,7 +22,7 @@ stdenv.mkDerivation {
srcGeoLiteCityv6 = fetchDB "GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz" srcGeoLiteCityv6 = fetchDB "GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz"
"0xjzg76vdsayxyy1yyw64w781vad4c9nbhw61slh2qmazdr360g9"; "0xjzg76vdsayxyy1yyw64w781vad4c9nbhw61slh2qmazdr360g9";
srcGeoIPASNum = fetchDB "asnum/GeoIPASNum.dat.gz" srcGeoIPASNum = fetchDB "asnum/GeoIPASNum.dat.gz"
"0zccfd1wsny3n1f3wgkb071pp6z01nmk0p6nngha0gwnywchvbx4"; "18kxswr0b5klimfpj1zhxipvyvrljvcywic4jc1ggcr44lf4hj9w";
srcGeoIPASNumv6 = fetchDB "asnum/GeoIPASNumv6.dat.gz" srcGeoIPASNumv6 = fetchDB "asnum/GeoIPASNumv6.dat.gz"
"0asnmmirridiy57zm0kccb7g8h7ndliswfv3yfk7zm7dk98njnxs"; "0asnmmirridiy57zm0kccb7g8h7ndliswfv3yfk7zm7dk98njnxs";

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl }: { stdenv, fetchurl }:
let version = "2015d"; in let version = "2015e"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tzdata-${version}"; name = "tzdata-${version}";
@ -8,11 +8,11 @@ stdenv.mkDerivation rec {
srcs = srcs =
[ (fetchurl { [ (fetchurl {
url = "http://www.iana.org/time-zones/repository/releases/tzdata${version}.tar.gz"; url = "http://www.iana.org/time-zones/repository/releases/tzdata${version}.tar.gz";
sha256 = "0cfmjvr753b3wjnr1njv268xcs31yl9pifkxx58y42bz4w4517wb"; sha256 = "0vxs6j1i429vxz4a1lbwjz81k236lxdggqvrlix2ga5xib9vbjgz";
}) })
(fetchurl { (fetchurl {
url = "http://www.iana.org/time-zones/repository/releases/tzcode${version}.tar.gz"; url = "http://www.iana.org/time-zones/repository/releases/tzcode${version}.tar.gz";
sha256 = "0a3i65b6lracfx18s8j69k0x30x8aq9gx7qm040sybn4qm7ga6i2"; sha256 = "185db6789kygcpcl48y1dh6m4fkgqcwqjwx7f3s5dys7b2sig8mm";
}) })
]; ];

View File

@ -0,0 +1,29 @@
{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, vte, libxml2, gtk-vnc, intltool
, libsecret, itstool, makeWrapper, librsvg }:
stdenv.mkDerivation rec {
name = "vinagre-${version}";
majVersion = gnome3.version;
version = "${majVersion}.1";
src = fetchurl {
url = "mirror://gnome/sources/vinagre/${majVersion}/${name}.tar.xz";
sha256 = "0gs8sqd4r6jlgxn1b7ggyfcisig50z79p0rmigpzwpjjx1bh0z6p";
};
buildInputs = [ pkgconfig gtk3 vte libxml2 gtk-vnc intltool libsecret
itstool makeWrapper gnome3.defaultIconTheme librsvg ];
preFixup = ''
wrapProgram "$out/bin/vinagre" \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share"
'';
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Vinagre;
description = "Remote desktop viewer for GNOME";
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
};
}

View File

@ -0,0 +1,30 @@
{ stdenv, fetchurl, gdk_pixbuf, pkgconfig, gtk3, cyrus_sasl
, gnutls, gobjectIntrospection, vala, intltool, libgcrypt }:
stdenv.mkDerivation rec {
versionMajor = "0.5";
versionMinor = "4";
moduleName = "gtk-vnc";
name = "${moduleName}-${versionMajor}.${versionMinor}";
src = fetchurl {
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
sha256 = "1rwwdh7lb16xdmy76ca6mpqfc3zfl3a4bkcr0qb6hs6ffrxak2j8";
};
buildInputs = [ pkgconfig gtk3 gdk_pixbuf gnutls cyrus_sasl
gobjectIntrospection vala intltool libgcrypt ];
configureFlags = [ "--with-gtk=3.0" ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Projects/gtk-vnc;
description = "A VNC viewer widget for GTK+";
license = licenses.lgpl2;
maintainers = with maintainers; [ lethalman ];
platforms = platforms.linux;
};
}

View File

@ -1,6 +1,18 @@
{ callPackage, pkgs, self }: { pkgs }:
let
pkgsFun = overrides:
let
self = self_ // overrides;
self_ = with self; {
overridePackages = f:
let newself = pkgsFun (f newself self);
in newself;
callPackage = pkgs.newScope self;
rec {
corePackages = with gnome3; [ corePackages = with gnome3; [
pkgs.desktop_file_utils pkgs.ibus pkgs.desktop_file_utils pkgs.ibus
pkgs.shared_mime_info # for update-mime-database pkgs.shared_mime_info # for update-mime-database
@ -16,7 +28,7 @@ rec {
gnome-shell-extensions gnome-system-log gnome-system-monitor gnome-shell-extensions gnome-system-log gnome-system-monitor
gnome_terminal gnome-user-docs bijiben evolution file-roller gedit gnome_terminal gnome-user-docs bijiben evolution file-roller gedit
gnome-clocks gnome-music gnome-tweak-tool gnome-photos gnome-clocks gnome-music gnome-tweak-tool gnome-photos
nautilus-sendto dconf-editor nautilus-sendto dconf-editor vinagre
]; ];
inherit (pkgs) libsoup glib gtk2 webkitgtk24x gtk3 gtkmm3 libcanberra; inherit (pkgs) libsoup glib gtk2 webkitgtk24x gtk3 gtkmm3 libcanberra;
@ -139,6 +151,8 @@ rec {
gtksourceview = callPackage ./core/gtksourceview { }; gtksourceview = callPackage ./core/gtksourceview { };
gtk-vnc = callPackage ./core/gtk-vnc { };
gucharmap = callPackage ./core/gucharmap { }; gucharmap = callPackage ./core/gucharmap { };
gvfs = pkgs.gvfs.override { gnome = gnome3; gnomeSupport = true; }; gvfs = pkgs.gvfs.override { gnome = gnome3; gnomeSupport = true; };
@ -257,7 +271,7 @@ rec {
seahorse = callPackage ./apps/seahorse { }; seahorse = callPackage ./apps/seahorse { };
pomodoro = callPackage ./apps/pomodoro { }; vinagre = callPackage ./apps/vinagre { };
#### Dev http://ftp.gnome.org/pub/GNOME/devtools/ #### Dev http://ftp.gnome.org/pub/GNOME/devtools/
@ -267,6 +281,8 @@ rec {
#### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/ #### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/
california = callPackage ./misc/california { };
geary = callPackage ./misc/geary { geary = callPackage ./misc/geary {
webkitgtk = webkitgtk24x; webkitgtk = webkitgtk24x;
}; };
@ -293,4 +309,9 @@ rec {
gtkhtml = callPackage ./misc/gtkhtml { }; gtkhtml = callPackage ./misc/gtkhtml { };
} pomodoro = callPackage ./misc/pomodoro { };
};
in self; # pkgsFun
in pkgsFun {}

View File

@ -0,0 +1,39 @@
diff --git a/configure.ac b/configure.ac
index 8a94642..1ca6426 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,7 +27,7 @@ AC_SUBST(LDFLAGS)
GLIB_REQUIRED=2.38.0
GTK_REQUIRED=3.12.2
GEE_REQUIRED=0.10.5
-ECAL_REQUIRED=3.8.5
+ECAL_REQUIRED=3.13.90
LIBSOUP_REQUIRED=2.44
GDATA_REQUIRED=0.14.0
GOA_REQUIRED=3.8.3
diff --git a/src/backing/eds/backing-eds-calendar-source.vala b/src/backing/eds/backing-eds-calendar-source.vala
index ee6a572..5009b5d 100644
--- a/src/backing/eds/backing-eds-calendar-source.vala
+++ b/src/backing/eds/backing-eds-calendar-source.vala
@@ -256,7 +256,7 @@ internal class EdsCalendarSource : CalendarSource {
// Invoked by EdsStore prior to making it available outside of unit
internal async void open_async(Cancellable? cancellable) throws Error {
- client = (E.CalClient) yield E.CalClient.connect(eds_source, E.CalClientSourceType.EVENTS,
+ client = (E.CalClient) yield E.CalClient.connect(eds_source, E.CalClientSourceType.EVENTS, 1,
cancellable);
client.bind_property("readonly", this, PROP_READONLY, BindingFlags.SYNC_CREATE);
diff --git a/vapi/libecal-1.2.vapi b/vapi/libecal-1.2.vapi
index 6ead3ec..46fd711 100644
--- a/vapi/libecal-1.2.vapi
+++ b/vapi/libecal-1.2.vapi
@@ -23,7 +23,7 @@ namespace E {
public bool check_save_schedules ();
public static bool check_timezones (iCal.icalcomponent comp, GLib.List comps, GLib.Callback tzlookup, void* ecalclient, GLib.Cancellable cancellable) throws GLib.Error;
[CCode (finish_name = "e_cal_client_connect_finish")]
- public static async unowned E.Client connect (E.Source source, E.CalClientSourceType source_type, GLib.Cancellable cancellable) throws GLib.Error;
+ public static async unowned E.Client connect (E.Source source, E.CalClientSourceType source_type, uint32 wait_for_connected_seconds, GLib.Cancellable cancellable) throws GLib.Error;
public static unowned E.Client connect_sync (E.Source source, E.CalClientSourceType source_type, GLib.Cancellable cancellable) throws GLib.Error;
[CCode (finish_name = "e_cal_client_create_object_finish")]
public async void create_object (iCal.icalcomponent icalcomp, GLib.Cancellable? cancellable, out string out_uid) throws GLib.Error;

View File

@ -0,0 +1,39 @@
{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala, makeWrapper
, gnome3, glib, libsoup, libgdata, sqlite, itstool, xdg_utils }:
let
majorVersion = "0.4";
in
stdenv.mkDerivation rec {
name = "california-${majorVersion}.0";
src = fetchurl {
url = "mirror://gnome/sources/california/${majorVersion}/${name}.tar.xz";
sha256 = "1dky2kllv469k8966ilnf4xrr7z35pq8mdvs7kwziy59cdikapxj";
};
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
buildInputs = [ makeWrapper intltool pkgconfig vala glib gtk3 gnome3.libgee
libsoup libgdata gnome3.gnome_online_accounts gnome3.evolution_data_server
sqlite itstool xdg_utils gnome3.gsettings_desktop_schemas ];
preFixup = ''
wrapProgram "$out/bin/california" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.defaultIconTheme}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH:${gnome3.gsettings_desktop_schemas}/share"
'';
enableParallelBuilding = true;
# Apply fedoras patch to build with evolution-data-server >3.13
patches = [ ./0002-Build-with-evolution-data-server-3.13.90.patch ];
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/California;
description = "Calendar application for GNOME 3";
maintainers = with maintainers; [ pSub ];
license = licenses.lgpl21;
platforms = platforms.linux;
};
}

View File

@ -41,22 +41,22 @@ let
version = "0.1.0"; version = "0.1.0";
ghcjsBoot = fetchgit { ghcjsBoot = fetchgit {
url = git://github.com/ghcjs/ghcjs-boot.git; url = git://github.com/ghcjs/ghcjs-boot.git;
rev = "5c3ca2db12bd3e92d3eeaead8bcb6b347174a30f"; # 7.10 branch rev = "d3581514d0a5073f8220a2f5baafe6866faa35a0"; # 7.10 branch
sha256 = "0rpfb73bd0maccg3bjf51l23byy0h2i47wph99wblmkdp8ywxkpf"; sha256 = "1p13ifidpi7y1mjq5qv9229isfnsiklizci7i55sf83mp6wqdyvr";
fetchSubmodules = true; fetchSubmodules = true;
}; };
shims = fetchgit { shims = fetchgit {
url = git://github.com/ghcjs/shims.git; url = git://github.com/ghcjs/shims.git;
rev = "6ada4bf1a084d1b80b993303d35ed863d219b031"; # master branch rev = "9b196ff5ff13a24997011009b37c980c5534e24f"; # master branch
sha256 = "0dhfnjj3rxdbb2m1pbnjc2yp4xcgsfdrsinljgdmg0hpqkafp4vc"; sha256 = "1zsfxka692fr3zb710il7g1sj64xwaxmasimciylb4wx84h7c30w";
}; };
in mkDerivation (rec { in mkDerivation (rec {
pname = "ghcjs"; pname = "ghcjs";
inherit version; inherit version;
src = fetchgit { src = fetchgit {
url = git://github.com/ghcjs/ghcjs.git; url = git://github.com/ghcjs/ghcjs.git;
rev = "15b7a34ddc11075a335e097f6109ad57ca03edab"; # master branch rev = "c1b6239b0289371dc6b8d17dfd845c14bd4dc490"; # master branch
sha256 = "0h6jdwd7lh3rkfsqpq3s6iavqkz1a88grzcxrcqj4rjilzdw288q"; sha256 = "0ncbk7m1l7cpdgmabm14d7f97fw3vy0hmpj4vs4kkwhhfjf6kp8s";
}; };
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
@ -103,7 +103,7 @@ in mkDerivation (rec {
# Make the patches be relative their corresponding package's directory. # Make the patches be relative their corresponding package's directory.
# See: https://github.com/ghcjs/ghcjs-boot/pull/12 # See: https://github.com/ghcjs/ghcjs-boot/pull/12
for patch in $topDir/ghcjs-boot/patches/*.patch; do for patch in "$topDir/ghcjs-boot/patches/"*.patch; do
echo "fixing patch: $patch" echo "fixing patch: $patch"
sed -i -e 's@ \(a\|b\)/boot/[^/]\+@ \1@g' $patch sed -i -e 's@ \(a\|b\)/boot/[^/]\+@ \1@g' $patch
done done

View File

@ -2,13 +2,17 @@
let wrappedGhc = ghcWithPackages (hpkgs: with hpkgs; [shuffle hashable mtl network uhc-util uulib] ); let wrappedGhc = ghcWithPackages (hpkgs: with hpkgs; [shuffle hashable mtl network uhc-util uulib] );
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
version = "1.1.9.1"; # Important:
# The commits "Fixate/tag v..." are the released versions.
# Ignore the "bumped version to ...." commits, they do not
# correspond to releases.
version = "1.1.9.1.20150611";
name = "uhc-${version}"; name = "uhc-${version}";
src = fetchgit { src = fetchgit {
url = "https://github.com/UU-ComputerScience/uhc.git"; url = "https://github.com/UU-ComputerScience/uhc.git";
rev = "c4955d01089485cdcfec785fe2bbcdf2253bee4b"; rev = "b80098e07d12900f098ea964b1d2b3f38e5c9900";
sha256 = "1n2bfbzni2hwv90z3mgn0x3l3jwc7sy8ryk81p5mlvlis1wzxnq3"; sha256 = "14qg1fd9pgbczcmn5ggkd9674qadx1izmz8363ps7c207dg94f9x";
}; };
postUnpack = "sourceRoot=\${sourceRoot}/EHC"; postUnpack = "sourceRoot=\${sourceRoot}/EHC";

View File

@ -334,6 +334,7 @@ self: super: {
wreq = dontCheck super.wreq; # http://hydra.cryp.to/build/501895/nixlog/1/raw wreq = dontCheck super.wreq; # http://hydra.cryp.to/build/501895/nixlog/1/raw
wreq-sb = dontCheck super.wreq-sb; # http://hydra.cryp.to/build/783948/log/raw wreq-sb = dontCheck super.wreq-sb; # http://hydra.cryp.to/build/783948/log/raw
wuss = dontCheck super.wuss; # http://hydra.cryp.to/build/875964/nixlog/2/raw wuss = dontCheck super.wuss; # http://hydra.cryp.to/build/875964/nixlog/2/raw
serversession-backend-redis = dontCheck super.serversession-backend-redis;
# https://github.com/NICTA/digit/issues/3 # https://github.com/NICTA/digit/issues/3
digit = dontCheck super.digit; digit = dontCheck super.digit;
@ -873,4 +874,11 @@ self: super: {
# Doesn't work with recent versions of mtl. # Doesn't work with recent versions of mtl.
cron-compat = markBroken super.cron-compat; cron-compat = markBroken super.cron-compat;
# https://github.com/yesodweb/serversession/issues/1
serversession = dontCheck super.serversession;
# https://github.com/singpolyma/wai-session/issues/8
wai-session = markBroken super.wai-session;
serversession-frontend-wai = dontDistribute super.serversession-frontend-wai;
} }

View File

@ -56,6 +56,7 @@ let
ghcWithPackages = pkgs: callPackage ./with-packages-wrapper.nix { ghcWithPackages = pkgs: callPackage ./with-packages-wrapper.nix {
inherit (self) llvmPackages; inherit (self) llvmPackages;
haskellPackages = self;
packages = pkgs self; packages = pkgs self;
}; };

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
#! @shell@
COMMAND=$1
shift
HOOGLE_DOC_PATH=@out@/share/hoogle/doc exec @hoogle@/bin/hoogle \
"$COMMAND" -d @out@/share/hoogle "$@"

View File

@ -0,0 +1,107 @@
# Install not only the Hoogle library and executable, but also a local Hoogle
# database which provides "Source" links to all specified 'packages' -- or the
# current Haskell Platform if no custom package set is provided.
#
# It is intended to be used in config.nix similarly to:
#
# { packageOverrides = pkgs: rec {
#
# haskellPackages =
# let callPackage = pkgs.lib.callPackageWith haskellPackages;
# in pkgs.recurseIntoAttrs (pkgs.haskellPackages.override {
# extension = self: super: {
# hoogleLocal = pkgs.haskellPackages.hoogleLocal.override {
# packages = with pkgs.haskellPackages; [
# mmorph
# monadControl
# ];
# };
# };
# });
# }}
#
# This will build mmorph and monadControl, and have the hoogle installation
# refer to their documentation via symlink so they are not garbage collected.
{ stdenv, hoogle, rehoo
, ghc, packages ? [ ghc.ghc ]
}:
let
inherit (stdenv.lib) optional;
wrapper = ./hoogle-local-wrapper.sh;
in
stdenv.mkDerivation {
name = "hoogle-local-0.1";
buildInputs = [hoogle rehoo];
phases = [ "installPhase" ];
docPackages = packages;
installPhase = ''
if [ -z "$docPackages" ]; then
echo "ERROR: The packages attribute has not been set"
exit 1
fi
mkdir -p $out/share/hoogle/doc
export HOOGLE_DOC_PATH=$out/share/hoogle/doc
cd $out/share/hoogle
function import_dbs() {
find $1 -name '*.txt' | while read f; do
newname=$(basename "$f" | tr '[:upper:]' '[:lower:]')
if [[ -f $f && ! -f ./$newname ]]; then
cp -p $f ./$newname
hoogle convert -d "$(dirname $f)" "./$newname"
fi
done
}
for i in $docPackages; do
findInputs $i docPackages propagated-native-build-inputs
findInputs $i docPackages propagated-build-inputs
done
for i in $docPackages; do
if [[ ! $i == $out ]]; then
for docdir in $i/share/doc/*-ghc-*/* $i/share/doc/*; do
if [[ -d $docdir ]]; then
import_dbs $docdir
ln -sf $docdir $out/share/hoogle/doc
fi
done
fi
done
import_dbs ${ghc}/share/doc/ghc*/html/libraries
ln -sf ${ghc}/share/doc/ghc*/html/libraries/* $out/share/hoogle/doc
chmod 644 *.hoo *.txt
rehoo -j4 -c64 .
rm -fr downloads *.dep *.txt
mv default.hoo x || exit 0
rm -f *.hoo
mv x default.hoo || exit 1
if [ ! -f default.hoo ]; then
echo "Unable to build the default Hoogle database"
exit 1
fi
mkdir -p $out/bin
substitute ${wrapper} $out/bin/hoogle \
--subst-var out --subst-var-by shell ${stdenv.shell} \
--subst-var-by hoogle ${hoogle}
chmod +x $out/bin/hoogle
'';
meta = {
description = "A local Hoogle database";
platforms = ghc.meta.platforms;
hydraPlatforms = with stdenv.lib.platforms; none;
maintainers = with stdenv.lib.maintainers; [ ttuegel ];
};
}

View File

@ -79,4 +79,10 @@ rec {
triggerRebuild = drv: i: overrideCabal drv (drv: { postUnpack = ": trigger rebuild ${toString i}"; }); triggerRebuild = drv: i: overrideCabal drv (drv: { postUnpack = ": trigger rebuild ${toString i}"; });
withHoogle = haskellEnv: with haskellEnv.haskellPackages;
import ./hoogle.nix {
inherit (pkgs) stdenv;
inherit hoogle rehoo ghc;
packages = haskellEnv.paths;
};
} }

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