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 {
type = types.uniq types.bool;
type = types.bool;
internal = true;
default = check;
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 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:
if defs == [] then abort "This case should never happen."
else if length defs != 1 then
throw "The unique option `${showOption loc}' is defined multiple times, in ${showFiles (getFiles defs)}."
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);
getFiles = map (x: x.file);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -40,7 +40,7 @@
"ohci1394" "sbp2"
# 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
"usbhid" "hid_apple" "hid_logitech_dj" "hid_lenovo_tpkbd" "hid_roccat"

View File

@ -4,7 +4,7 @@
{ 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.postDeviceCommands =

View File

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

View File

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

View File

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

View File

@ -182,7 +182,7 @@ in {
port = mkOption {
default = 9102;
type = types.uniq types.int;
type = types.int;
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.
'';
@ -237,7 +237,7 @@ in {
port = mkOption {
default = 9103;
type = types.uniq types.int;
type = types.int;
description = ''
Specifies port number on which the Storage daemon listens for Director connections. The default is 9103.
'';
@ -302,7 +302,7 @@ in {
port = mkOption {
default = 9101;
type = types.uniq types.int;
type = types.int;
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.
'';

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -27,7 +27,7 @@ in {
enable = mkOption {
description = "Whether to enable Zookeeper.";
default = false;
type = types.uniq types.bool;
type = types.bool;
};
port = mkOption {
@ -94,7 +94,7 @@ in {
extraCmdLineOptions = mkOption {
description = "Extra command line options for the Zookeeper launcher.";
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" ];
};

View File

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

View File

@ -23,6 +23,7 @@ let
# proxy_password: password
# tags: mytag0, mytag1
${optionalString (cfg.tags != null ) "tags: ${concatStringsSep "," cfg.tags }"}
# collect_ec2_tags: no
# recent_point_threshold: 30
@ -80,6 +81,13 @@ in {
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 {
description = "The hostname to show in the Datadog dashboard (optional)";
default = null;

View File

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

View File

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

View File

@ -32,7 +32,7 @@ let
shutdownOrder = mkOption {
default = 0;
type = types.uniq types.int;
type = types.int;
description = ''
When you have multiple UPSes on your system, you usually need to
turn them off in a certain order. upsdrvctl shuts down all the
@ -63,7 +63,7 @@ let
directives = mkOption {
default = [];
type = types.listOf types.string;
type = types.listOf types.str;
description = ''
List of configuration directives for this UPS.
'';
@ -151,7 +151,7 @@ in
maxStartDelay = mkOption {
default = 45;
type = types.uniq types.int;
type = types.int;
description = ''
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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -31,7 +31,7 @@ with lib;
services.notbit = {
enable = mkOption {
type = types.uniq types.bool;
type = types.bool;
default = false;
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.
@ -39,13 +39,13 @@ with lib;
};
port = mkOption {
type = types.uniq types.int;
type = types.int;
default = 8444;
description = "The port which the daemon listens for other bitmessage clients";
};
nice = mkOption {
type = types.uniq types.int;
type = types.int;
default = 10;
description = "Set the nice level for the notbit daemon";
};
@ -65,19 +65,19 @@ with lib;
};
specifiedPeersOnly = mkOption {
type = types.uniq types.bool;
type = types.bool;
default = false;
description = "If true, notbit will only connect to peers specified by the peers option.";
};
allowPrivateAddresses = mkOption {
type = types.uniq types.bool;
type = types.bool;
default = false;
description = "If true, notbit will allow connections to to RFC 1918 addresses.";
};
noBootstrap = mkOption {
type = types.uniq types.bool;
type = types.bool;
default = false;
description = "If true, notbit will not bootstrap an initial peerlist from bitmessage.org servers";
};

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -122,7 +122,7 @@ in
enable = mkOption {
default = false;
type = types.uniq types.bool;
type = types.bool;
description = ''
Enable the lighttpd web server.
'';
@ -130,7 +130,7 @@ in
port = mkOption {
default = 80;
type = types.uniq types.int;
type = types.int;
description = ''
TCP port number for lighttpd to bind to.
'';
@ -146,7 +146,7 @@ in
mod_userdir = mkOption {
default = false;
type = types.uniq types.bool;
type = types.bool;
description = ''
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.
@ -168,7 +168,7 @@ in
mod_status = mkOption {
default = false;
type = types.uniq types.bool;
type = types.bool;
description = ''
Show server status overview at /server-status, statistics at
/server-statistics and list of loaded modules at /server-config.

View File

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

View File

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

View File

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

View File

@ -13,7 +13,7 @@ in {
services.unclutter.arguments = mkOption {
description = "Arguments to pass to unclutter command";
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 $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
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";
print STDERR "installing the GRUB $grubVersion boot loader on $dev...\n";
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";
} 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";
}
}

View File

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

View File

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

View File

@ -42,13 +42,13 @@ in rec {
requiredBy = mkOption {
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.";
};
wantedBy = mkOption {
default = [];
type = types.listOf types.string;
type = types.listOf types.str;
description = "Units that want (i.e. depend on) this unit.";
};

View File

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

View File

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

View File

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

View File

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

View File

@ -62,7 +62,7 @@ let
extraDisks=""
${flip concatMapStrings cfg.emptyDiskImages (size: ''
${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))
'')}
@ -76,14 +76,14 @@ let
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
-virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \
${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 \
${if cfg.useEFIBoot then ''
-pflash $TMPDIR/bios.bin \
'' 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 \
-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" \
@ -207,7 +207,7 @@ in
virtualisation.bootDevice =
mkOption {
type = types.str;
default = "/dev/vda";
example = "/dev/vda";
description =
''
The disk to be used for the root filesystem.
@ -318,6 +318,17 @@ in
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 =
@ -393,6 +404,12 @@ in
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.qemu.options = [ "-vga std" "-usbdevice tablet" ];

View File

@ -175,7 +175,10 @@ let
# installer. This ensures the target disk (/dev/vda) is
# the same during and after installation.
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;

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

View File

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

View File

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

View File

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

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, pkgs, pythonPackages }:
pythonPackages.buildPythonPackage rec {
version = "0.4.0";
version = "0.5.0";
name = "khal-${version}";
src = fetchurl {
url = "https://github.com/geier/khal/archive/v${version}.tar.gz";
sha256 = "0d32miq55cly4q3raxkw3xpq4d5y3hvzaqvy066nv35bdlpafxi1";
sha256 = "1rjs5s8ky4n628rs6l5ggaj2abb4kq2avvxmimjjgxz3zh9xlz6s";
};
propagatedBuildInputs = with pythonPackages; [
@ -22,13 +22,13 @@ pythonPackages.buildPythonPackage rec {
requests_toolbelt
tzlocal
urwid
python.modules.sqlite3
];
meta = {
meta = with stdenv.lib; {
homepage = http://lostpackets.de/khal/;
description = "CLI calendar application";
license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
license = licenses.mit;
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 = [
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.net/pub/ImageMagick/
ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/
];
# CPAN mirrors.

View File

@ -1,59 +1,31 @@
x@{builderDefsPackage
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
{ stdenv, fetchzip }:
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
url="http://www.i18nguy.com/unicode/andagii.zip";
name="andagii";
version="1.0.2";
hash="0cknb8vin15akz4ahpyayrpqyaygp9dgrx6qw7zs7d6iv9v59ds1";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
stdenv.mkDerivation rec {
name = "andagii-${version}";
version = "1.0.2";
src = fetchzip {
url = http://www.i18nguy.com/unicode/andagii.zip;
sha256 = "0a0c43y1fd5ksj50axhng7p00kgga0i15p136g68p35wj7kh5g2k";
stripRoot = false;
curlOpts = "--user-agent 'Mozilla/5.0'";
sha256 = sourceInfo.hash;
};
name = "${sourceInfo.name}-${sourceInfo.version}";
inherit buildInputs;
phases = [ "unpackPhase" "installPhase" ];
/* doConfigure should be removed if not needed */
phaseNames = ["doUnpack" "doInstall"];
installPhase = ''
mkdir -p $out/share/fonts/truetype
cp -v ANDAGII_.TTF $out/share/fonts/truetype/andagii.ttf
'';
doUnpack = a.fullDepEntry ''
unzip "${src}"
'' ["addInputs"];
doInstall = a.fullDepEntry (''
mkdir -p "$out"/share/fonts/ttf/
cp ANDAGII_.TTF "$out"/share/fonts/ttf/andagii.ttf
'') ["defEnsureDir" "minInit"];
meta = {
# 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.
meta = with stdenv.lib; {
homepage = http://www.i18nguy.com/unicode/unicode-font.HTML;
description = "Unicode Plane 1 Osmanya script font";
maintainers = with a.lib.maintainers;
[
raskin
];
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.
maintainers = with maintainers; [ raskin rycee ];
license = "unknown";
platforms = platforms.all;
};
passthru = {
updateInfo = {
downloadPage = "http://www.i18nguy.com/unicode/unicode-font.html";
};
};
}) x
}

View File

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

View File

@ -1,40 +1,28 @@
x@{builderDefsPackage
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
{ stdenv, fetchurl }:
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
version = "0.7.0";
baseName="cm-unicode";
name="${baseName}-${version}";
url="mirror://sourceforge/${baseName}/${baseName}/${version}/${name}-otf.tar.xz";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
stdenv.mkDerivation rec {
name = "cm-unicode-${version}";
version = "0.7.0";
src = fetchurl {
url = "mirror://sourceforge/cm-unicode/cm-unicode/${version}/${name}-otf.tar.xz";
sha256 = "0a0w9qm9g8qz2xh3lr61bj1ymqslqsvk4w2ybc3v2qa89nz7x2jl";
};
inherit (sourceInfo) name version;
inherit buildInputs;
phases = [ "unpackPhase" "installPhase" ];
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 = {
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
all;
downloadPage = "http://sourceforge.net/projects/cm-unicode/files/cm-unicode/";
inherit version;
meta = with stdenv.lib; {
homepage = http://canopus.iacp.dvo.ru/~panov/cm-unicode/;
description = "Computer Modern Unicode fonts";
maintainers = with maintainers; [ raskin rycee ];
license = licenses.ofl;
platforms = platforms.all;
};
}) x
}

View File

@ -1,50 +1,28 @@
x@{builderDefsPackage
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
{ stdenv, fetchzip }:
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
version="0.016";
name="EBGaramond";
url="https://bitbucket.org/georgd/eb-garamond/downloads/${name}-${version}.zip";
hash="0y630khn5zh70al3mm84fs767ac94ffyz1w70zzhrhambx07pdx0";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
stdenv.mkDerivation rec {
name = "eb-garamond-${version}";
version = "0.016";
src = fetchzip {
url = "https://bitbucket.org/georgd/eb-garamond/downloads/EBGaramond-${version}.zip";
sha256 = "0j40bg1di39q7zis64il67xchldyznrl8wij9il10c4wr8nl4r9z";
};
name = "eb-garamond-${sourceInfo.version}";
inherit buildInputs;
phases = [ "unpackPhase" "installPhase" ];
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.
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;
meta = with stdenv.lib; {
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
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
{ stdenv, fetchzip }:
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
version="1.504";
baseName="GentiumPlus";
name="${baseName}-${version}";
url="http://scripts.sil.org/cms/scripts/render_download.php?&format=file&media_id=${name}.zip&filename=${name}";
hash="04kslaqbscpfrc6igkifcv1nkrclrm35hqpapjhw9102wpq12fpr";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
name = "${sourceInfo.name}.zip";
stdenv.mkDerivation rec {
name = "gentium-${version}";
version = "1.504";
src = fetchzip {
name = "${name}.zip";
url = "http://scripts.sil.org/cms/scripts/render_download.php?format=file&media_id=GentiumPlus-${version}.zip&filename=${name}.zip";
sha256 = "1xdx80dfal0b8rkrp1janybx2hki7algnvkx4hyghgikpjcjkdh7";
};
inherit (sourceInfo) name version;
inherit buildInputs;
phases = [ "unpackPhase" "installPhase" ];
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 = {
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
all;
meta = with stdenv.lib; {
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";
maintainers = with maintainers; [ raskin rycee ];
license = licenses.ofl;
platforms = platforms.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
, fontforge
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
{ stdenv, fetchurl }:
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
name="inconsolata";
url="http://www.levien.com/type/myfonts/Inconsolata.sfd";
hash="1cd29c8396adb18bfeddb1abf5bdb98b677649bb9b09f126d1335b123a4cfddb";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
stdenv.mkDerivation rec {
name = "inconsolata-${version}";
version = "1.010";
src = fetchurl {
url = "http://www.levien.com/type/myfonts/Inconsolata.otf";
sha256 = "06js6znbcf7swn8y3b8ki416bz96ay7d3yvddqnvi88lqhbfcq8m";
};
inherit (sourceInfo) name;
inherit buildInputs;
phases = [ "installPhase" ];
/* doConfigure should be removed if not needed */
phaseNames = ["copySrc" "generateFontsFromSFD" "installFonts"];
copySrc = a.fullDepEntry (''
cp ${src} inconsolata.sfd
'') ["minInit"];
installPhase = ''
mkdir -p $out/share/fonts/opentype
cp -v $src $out/share/fonts/opentype/inconsolata.otf
'';
generateFontsFromSFD = a.generateFontsFromSFD // {deps=["addInputs"];};
meta = {
meta = with stdenv.lib; {
homepage = http://www.levien.com/type/myfonts/inconsolata.html;
description = "A monospace font for both screen and print";
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
all;
maintainers = with maintainers; [ raskin rycee ];
license = licenses.ofl;
platforms = platforms.all;
};
passthru = {
updateInfo = {
downloadPage = "http://www.levien.com/type/myfonts/inconsolata.html";
};
};
}) x
}

View File

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

View File

@ -1,50 +1,29 @@
x@{builderDefsPackage
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
{ stdenv, fetchzip }:
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
version="2.0";
baseName="theano";
name="${baseName}-${version}";
url="http://www.thessalonica.org.ru/downloads/${name}.otf.zip";
hash="1xiykqbbiawvfk33639awmgdn25b8s2k7vpwncl17bzlk887b4z6";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
stdenv.mkDerivation rec {
name = "theano-${version}";
version = "2.0";
src = fetchzip {
stripRoot = false;
url = "https://github.com/akryukov/theano/releases/download/v${version}/theano-${version}.otf.zip";
sha256 = "1z3c63rcp4vfjyfv8xwc3br10ydwjyac3ipbl09y01s7qhfz02gp";
};
inherit (sourceInfo) name version;
inherit buildInputs;
phases = [ "unpackPhase" "installPhase" ];
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 ''
unzip ${src}
'' ["addInputs"];
meta = {
description = "An old-style font";
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
all;
meta = with stdenv.lib; {
homepage = https://github.com/akryukov/theano;
description = "An old-style font designed from historic samples";
maintainers = with maintainers; [ raskin rycee ];
license = licenses.ofl;
platforms = 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
# builds will start failing every month or so, until the hashes are updated.
version = "2015-06-03";
version = "2015-06-15";
in
stdenv.mkDerivation {
name = "geolite-legacy-${version}";
@ -22,7 +22,7 @@ stdenv.mkDerivation {
srcGeoLiteCityv6 = fetchDB "GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz"
"0xjzg76vdsayxyy1yyw64w781vad4c9nbhw61slh2qmazdr360g9";
srcGeoIPASNum = fetchDB "asnum/GeoIPASNum.dat.gz"
"0zccfd1wsny3n1f3wgkb071pp6z01nmk0p6nngha0gwnywchvbx4";
"18kxswr0b5klimfpj1zhxipvyvrljvcywic4jc1ggcr44lf4hj9w";
srcGeoIPASNumv6 = fetchDB "asnum/GeoIPASNumv6.dat.gz"
"0asnmmirridiy57zm0kccb7g8h7ndliswfv3yfk7zm7dk98njnxs";

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl }:
let version = "2015d"; in
let version = "2015e"; in
stdenv.mkDerivation rec {
name = "tzdata-${version}";
@ -8,11 +8,11 @@ stdenv.mkDerivation rec {
srcs =
[ (fetchurl {
url = "http://www.iana.org/time-zones/repository/releases/tzdata${version}.tar.gz";
sha256 = "0cfmjvr753b3wjnr1njv268xcs31yl9pifkxx58y42bz4w4517wb";
sha256 = "0vxs6j1i429vxz4a1lbwjz81k236lxdggqvrlix2ga5xib9vbjgz";
})
(fetchurl {
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; [
pkgs.desktop_file_utils pkgs.ibus
pkgs.shared_mime_info # for update-mime-database
@ -16,7 +28,7 @@ rec {
gnome-shell-extensions gnome-system-log gnome-system-monitor
gnome_terminal gnome-user-docs bijiben evolution file-roller gedit
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;
@ -139,6 +151,8 @@ rec {
gtksourceview = callPackage ./core/gtksourceview { };
gtk-vnc = callPackage ./core/gtk-vnc { };
gucharmap = callPackage ./core/gucharmap { };
gvfs = pkgs.gvfs.override { gnome = gnome3; gnomeSupport = true; };
@ -257,7 +271,7 @@ rec {
seahorse = callPackage ./apps/seahorse { };
pomodoro = callPackage ./apps/pomodoro { };
vinagre = callPackage ./apps/vinagre { };
#### Dev http://ftp.gnome.org/pub/GNOME/devtools/
@ -267,6 +281,8 @@ rec {
#### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/
california = callPackage ./misc/california { };
geary = callPackage ./misc/geary {
webkitgtk = webkitgtk24x;
};
@ -293,4 +309,9 @@ rec {
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";
ghcjsBoot = fetchgit {
url = git://github.com/ghcjs/ghcjs-boot.git;
rev = "5c3ca2db12bd3e92d3eeaead8bcb6b347174a30f"; # 7.10 branch
sha256 = "0rpfb73bd0maccg3bjf51l23byy0h2i47wph99wblmkdp8ywxkpf";
rev = "d3581514d0a5073f8220a2f5baafe6866faa35a0"; # 7.10 branch
sha256 = "1p13ifidpi7y1mjq5qv9229isfnsiklizci7i55sf83mp6wqdyvr";
fetchSubmodules = true;
};
shims = fetchgit {
url = git://github.com/ghcjs/shims.git;
rev = "6ada4bf1a084d1b80b993303d35ed863d219b031"; # master branch
sha256 = "0dhfnjj3rxdbb2m1pbnjc2yp4xcgsfdrsinljgdmg0hpqkafp4vc";
rev = "9b196ff5ff13a24997011009b37c980c5534e24f"; # master branch
sha256 = "1zsfxka692fr3zb710il7g1sj64xwaxmasimciylb4wx84h7c30w";
};
in mkDerivation (rec {
pname = "ghcjs";
inherit version;
src = fetchgit {
url = git://github.com/ghcjs/ghcjs.git;
rev = "15b7a34ddc11075a335e097f6109ad57ca03edab"; # master branch
sha256 = "0h6jdwd7lh3rkfsqpq3s6iavqkz1a88grzcxrcqj4rjilzdw288q";
rev = "c1b6239b0289371dc6b8d17dfd845c14bd4dc490"; # master branch
sha256 = "0ncbk7m1l7cpdgmabm14d7f97fw3vy0hmpj4vs4kkwhhfjf6kp8s";
};
isLibrary = true;
isExecutable = true;
@ -103,7 +103,7 @@ in mkDerivation (rec {
# Make the patches be relative their corresponding package's directory.
# 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"
sed -i -e 's@ \(a\|b\)/boot/[^/]\+@ \1@g' $patch
done

View File

@ -2,13 +2,17 @@
let wrappedGhc = ghcWithPackages (hpkgs: with hpkgs; [shuffle hashable mtl network uhc-util uulib] );
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}";
src = fetchgit {
url = "https://github.com/UU-ComputerScience/uhc.git";
rev = "c4955d01089485cdcfec785fe2bbcdf2253bee4b";
sha256 = "1n2bfbzni2hwv90z3mgn0x3l3jwc7sy8ryk81p5mlvlis1wzxnq3";
rev = "b80098e07d12900f098ea964b1d2b3f38e5c9900";
sha256 = "14qg1fd9pgbczcmn5ggkd9674qadx1izmz8363ps7c207dg94f9x";
};
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-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
serversession-backend-redis = dontCheck super.serversession-backend-redis;
# https://github.com/NICTA/digit/issues/3
digit = dontCheck super.digit;
@ -873,4 +874,11 @@ self: super: {
# Doesn't work with recent versions of mtl.
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 {
inherit (self) llvmPackages;
haskellPackages = 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}"; });
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