diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index 39988cdd414..00000000000 --- a/doc/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -# You may need to override this. -docbookxsl = $(HOME)/.nix-profile/xml/xsl/docbook -dblatex = dblatex - -XMLLINT = xmllint --catalogs -XSLTPROC = xsltproc --catalogs \ - --param section.autolabel 1 \ - --param section.label.includes.component.label 1 \ - --param html.stylesheet \'style.css\' \ - --param xref.with.number.and.title 1 \ - --param toc.section.depth 3 \ - --param admon.style \'\' \ - --param callout.graphics.extension \'.gif\' - -NEWS_OPTS = \ - --stringparam generate.toc "article nop" \ - --stringparam section.autolabel.max.depth 0 \ - --stringparam header.rule 0 - -all: NEWS.html NEWS.txt manual.html manual.pdf - -NEWS.html: release-notes.xml - $(XSLTPROC) --nonet --xinclude --output $@ $(NEWS_OPTS) \ - $(docbookxsl)/xhtml/docbook.xsl release-notes.xml - -NEWS.txt: release-notes.xml - $(XSLTPROC) --nonet --xinclude quote-literals.xsl release-notes.xml | \ - $(XSLTPROC) --nonet --output $@.tmp.html $(NEWS_OPTS) \ - $(docbookxsl)/xhtml/docbook.xsl - - LANG=en_US w3m -dump $@.tmp.html > $@ - rm $@.tmp.html - -manual.html: *.xml - $(XSLTPROC) --nonet --xinclude --output manual.html \ - $(docbookxsl)/xhtml/docbook.xsl manual.xml - -manual.pdf: *.xml - $(dblatex) \ - -P doc.collab.show=0 \ - -P latex.output.revhistory=0 \ - manual.xml diff --git a/doc/default.nix b/doc/default.nix new file mode 100644 index 00000000000..1e8974d6026 --- /dev/null +++ b/doc/default.nix @@ -0,0 +1,42 @@ +with import ./.. { }; +with lib; + +stdenv.mkDerivation { + name = "nixpkgs-manual"; + + sources = sourceFilesBySuffices ./. [".xml"]; + + buildInputs = [ libxml2 libxslt ]; + + xsltFlags = '' + --param section.autolabel 1 + --param section.label.includes.component.label 1 + --param html.stylesheet 'style.css' + --param xref.with.number.and.title 1 + --param toc.section.depth 3 + --param admon.style ''' + --param callout.graphics.extension '.gif' + ''; + + buildCommand = '' + ln -s $sources/*.xml . # */ + + echo ${nixpkgsVersion} > .version + + xmllint --noout --nonet --xinclude --noxincludenode \ + --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \ + manual.xml + + dst=$out/share/doc/nixpkgs + mkdir -p $dst + xsltproc $xsltFlags --nonet --xinclude \ + --output $dst/manual.html \ + ${docbook5_xsl}/xml/xsl/docbook/xhtml/docbook.xsl \ + ./manual.xml + + cp ${./style.css} $dst/style.css + + mkdir -p $out/nix-support + echo "doc manual $dst manual.html" >> $out/nix-support/hydra-build-products + ''; +} diff --git a/doc/manual.xml b/doc/manual.xml index 145e3e12dd9..01373b4f5b1 100644 --- a/doc/manual.xml +++ b/doc/manual.xml @@ -3,25 +3,9 @@ - Nixpkgs Manual + Nixpkgs Contributors Guide - Draft (Version ) - - - - Eelco - Dolstra - - - LogicBlox - - - - - 2008-2012 - Eelco Dolstra - + Version @@ -33,6 +17,5 @@ - - + diff --git a/doc/meta.xml b/doc/meta.xml index eb644b3b0ee..e91f94d15c2 100644 --- a/doc/meta.xml +++ b/doc/meta.xml @@ -27,7 +27,7 @@ meta = { Meta-attributes are not passed to the builder of the package. Thus, a change to a meta-attribute doesn’t trigger a recompilation of -the package. The value of a meta-attribute must a string. +the package. The value of a meta-attribute must be a string. The meta-attributes of a package can be queried from the command-line using nix-env: @@ -120,12 +120,12 @@ interpretation: license - The license for the package. One from attribute set defined in - - nixpkgs/lib/licenses.nix. - Example: - stdenv.lib.licenses.gpl3. - See details in , + The license for the package. One from the + attribute set defined in + nixpkgs/lib/licenses.nix. Example: + stdenv.lib.licenses.gpl3. For details, see + . diff --git a/lib/licenses.nix b/lib/licenses.nix index 02618f1c6ca..bdcf8a7b8a7 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -62,6 +62,11 @@ rec { fullName = ''BSD 4-clause "Original" or "Old" License''; }; + cc0 = spdx { + shortName = "CC0-1.0"; + fullName = ''Creative Commons Zero v1.0 Universal''; + }; + cc-by-30 = spdx { shortName = "CC-BY-3.0"; fullName = "Creative Commons Attribution 3.0"; @@ -189,6 +194,8 @@ rec { fullName = "Lucent Public License v1.02"; }; + # spdx.org does not (yet) differentiate between the X11 and Expat versions + # for details see http://en.wikipedia.org/wiki/MIT_License#Various_versions mit = spdx { shortName = "MIT"; fullName = "MIT License"; @@ -210,6 +217,11 @@ rec { url = "http://research.microsoft.com/en-us/projects/pex/msr-la.txt"; }; + ncsa = spdx { + shortName = "NCSA"; + fullName = "University of Illinois/NCSA Open Source License"; + }; + ofl = spdx { shortName = "OFL-1.1"; fullName = "SIL Open Font License 1.1"; diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 8c975b486f1..9ff9f7ea27a 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -30,12 +30,15 @@ bodil = "Bodil Stokke "; bosu = "Boris Sukholitko "; calrama = "Moritz Maxeiner "; + campadrenalin = "Philip Horger "; cfouche = "Chaddaï Fouché "; chaoflow = "Florian Friesdorf "; coconnor = "Corey O'Connor "; + copumpkin = "Dan Peebles "; coroa = "Jonas Hörsch "; cstrahan = "Charles Strahan "; DamienCassou = "Damien Cassou "; + doublec = "Chris Double "; ederoyd46 = "Matthew Brown "; edwtjo = "Edward Tjörnhammar "; eelco = "Eelco Dolstra "; @@ -43,7 +46,9 @@ ertes = "Ertugrul Söylemez "; falsifian = "James Cook "; flosse = "Markus Kohlhase "; + funfunctor = "Edward O'Callaghan "; fuuzetsu = "Mateusz Kowalczyk "; + gal_bolle = "Florent Becker "; garbas = "Rok Garbas "; goibhniu = "Cillian de Róiste "; guibert = "David Guibert "; @@ -60,15 +65,18 @@ kkallio = "Karn Kallio "; ktosiek = "Tomasz Kontusz "; lethalman = "Luca Bruno "; + lhvwb = "Nathaniel Baxter "; linquize = "Linquize "; lovek323 = "Jason O'Conal "; ludo = "Ludovic Courtès "; madjar = "Georges Dubus "; + manveru = "Michael Fellinger "; marcweber = "Marc Weber "; matejc = "Matej Cotman "; meisternu = "Matt Miemiec "; modulistic = "Pablo Costa "; mornfall = "Petr Ročkai "; + MP2E = "Cray Elliott "; msackman = "Matthew Sackman "; nathan-gs = "Nathan Bijnens "; notthemessiah = "Brian Cohen "; diff --git a/lib/modules.nix b/lib/modules.nix index bcaadc7fd97..9fe26083cfd 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -277,13 +277,14 @@ rec { fixupOptionType = loc: opt: let options' = opt.options or - (throw "Option `${showOption loc'}' has type optionSet but has no option attribute."); + (throw "Option `${showOption loc'}' has type optionSet but has no option attribute, in ${showFiles opt.declarations}."); coerce = x: if isFunction x then x else { config, ... }: { options = x; }; options = map coerce (flatten options'); f = tp: - if tp.name == "option set" then types.submodule options + if tp.name == "option set" || tp.name == "submodule" then + throw "The option ${showOption loc} uses submodules without a wrapping type, in ${showFiles opt.declarations}." else if tp.name == "attribute set of option sets" then types.attrsOf (types.submodule options) else if tp.name == "list or attribute set of option sets" then types.loaOf (types.submodule options) else if tp.name == "list of option sets" then types.listOf (types.submodule options) diff --git a/lib/sources.nix b/lib/sources.nix index a80e4397d6a..4ed16d65d2b 100644 --- a/lib/sources.nix +++ b/lib/sources.nix @@ -21,12 +21,12 @@ rec { # Get all files ending with the specified suffices from the given - # directory. E.g. `sourceFilesBySuffices ./dir [".xml" ".c"]'. + # directory or its descendants. E.g. `sourceFilesBySuffices ./dir + # [".xml" ".c"]'. sourceFilesBySuffices = path: exts: let filter = name: type: let base = baseNameOf (toString name); - in type != "directory" && lib.any (ext: lib.hasSuffix ext base) exts; + in type == "directory" || lib.any (ext: lib.hasSuffix ext base) exts; in builtins.filterSource filter path; - } diff --git a/lib/strings.nix b/lib/strings.nix index efdc265465f..31b0f56e09b 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -34,6 +34,9 @@ rec { concatStringsSep = separator: list: concatStrings (intersperse separator list); + concatMapStringsSep = sep: f: list: concatStringsSep sep (map f list); + concatImapStringsSep = sep: f: list: concatStringsSep sep (lib.imap f list); + # Construct a Unix-style search path consisting of each `subDir" # directory of the given list of packages. For example, diff --git a/nixos/doc/config-examples/basic.nix b/nixos/doc/config-examples/basic.nix deleted file mode 100644 index da37cfb8c28..00000000000 --- a/nixos/doc/config-examples/basic.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - boot = { - loader.grub.device = "/dev/sda"; - }; - - fileSystems = [ - { mountPoint = "/"; - device = "/dev/sda1"; - } - ]; - - swapDevices = [ - { device = "/dev/sdb1"; } - ]; - - services = { - openssh = { - enable = true; - }; - }; -} diff --git a/nixos/doc/config-examples/closed-install-configuration.nix b/nixos/doc/config-examples/closed-install-configuration.nix deleted file mode 100644 index 0cebacdb0cc..00000000000 --- a/nixos/doc/config-examples/closed-install-configuration.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - boot = { - loader.grub.device = "/dev/sda"; - copyKernels = true; - bootMount = "(hd0,0)"; - }; - - fileSystems = [ - { mountPoint = "/"; - device = "/dev/sda3"; - } - { mountPoint = "/boot"; - device = "/dev/sda1"; - neededForBoot = true; - } - ]; - - swapDevices = [ - { device = "/dev/sda2"; } - ]; - - services = { - sshd = { - enable = true; - }; - }; - - fonts = { - enableFontConfig = false; - }; - -} diff --git a/nixos/doc/config-examples/root-on-lvm.nix b/nixos/doc/config-examples/root-on-lvm.nix deleted file mode 100644 index 2ea1e547921..00000000000 --- a/nixos/doc/config-examples/root-on-lvm.nix +++ /dev/null @@ -1,27 +0,0 @@ -# This configuration has / on a LVM volume. Since Grub -# doesn't know about LVM, a separate /boot is therefore -# needed. -# -# In this example, labels are used for file systems and -# swap devices: "boot" might be /dev/sda1, "root" might be -# /dev/my-volume-group/root, and "swap" might be /dev/sda2. -# In particular there is no specific reference to the fact -# that / is on LVM; that's figured out automatically. - -{ - boot.loader.grub.device = "/dev/sda"; - boot.initrd.kernelModules = ["ata_piix"]; - - fileSystems = [ - { mountPoint = "/"; - label = "root"; - } - { mountPoint = "/boot"; - label = "boot"; - } - ]; - - swapDevices = [ - { label = "swap"; } - ]; -} diff --git a/nixos/doc/config-examples/svn-server.nix b/nixos/doc/config-examples/svn-server.nix deleted file mode 100644 index e727007117b..00000000000 --- a/nixos/doc/config-examples/svn-server.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - boot = { - loader.grub.device = "/dev/sda"; - }; - - fileSystems = [ - { mountPoint = "/"; - device = "/dev/sda1"; - } - ]; - - services = { - - sshd = { - enable = true; - }; - - httpd = { - enable = true; - adminAddr = "admin@example.org"; - - subservices = { - - subversion = { - enable = true; - dataDir = "/data/subversion"; - notificationSender = "svn@example.org"; - }; - - }; - - }; - - }; - -} diff --git a/nixos/doc/config-examples/x86_64-usbstick.nix b/nixos/doc/config-examples/x86_64-usbstick.nix deleted file mode 100644 index 374d3ba3bc7..00000000000 --- a/nixos/doc/config-examples/x86_64-usbstick.nix +++ /dev/null @@ -1,20 +0,0 @@ -# Configuration file used to install NixOS-x86_64 on a USB stick. - -{ - boot = { - loader.grub.device = "/dev/sda"; - initrd = { - kernelModules = ["usb_storage" "ehci_hcd" "ohci_hcd"]; - }; - }; - - fileSystems = [ - { mountPoint = "/"; - label = "nixos-usb"; - } - ]; - - fonts = { - enableFontConfig = false; - }; -} diff --git a/nixos/doc/manual/administration/boot-problems.xml b/nixos/doc/manual/administration/boot-problems.xml new file mode 100644 index 00000000000..be6ff3aac0f --- /dev/null +++ b/nixos/doc/manual/administration/boot-problems.xml @@ -0,0 +1,65 @@ +
+ +Boot Problems + +If NixOS fails to boot, there are a number of kernel command +line parameters that may help you to identify or fix the issue. You +can add these parameters in the GRUB boot menu by pressing “e” to +modify the selected boot entry and editing the line starting with +linux. The following are some useful kernel command +line parameters that are recognised by the NixOS boot scripts or by +systemd: + + + + boot.shell_on_fail + Start a root shell if something goes wrong in + stage 1 of the boot process (the initial ramdisk). This is + disabled by default because there is no authentication for the + root shell. + + + boot.debug1 + Start an interactive shell in stage 1 before + anything useful has been done. That is, no modules have been + loaded and no file systems have been mounted, except for + /proc and + /sys. + + + boot.trace + Print every shell command executed by the stage 1 + and 2 boot scripts. + + + single + Boot into rescue mode (a.k.a. single user mode). + This will cause systemd to start nothing but the unit + rescue.target, which runs + sulogin to prompt for the root password and + start a root login shell. Exiting the shell causes the system to + continue with the normal boot process. + + + systemd.log_level=debug systemd.log_target=console + Make systemd very verbose and send log messages to + the console instead of the journal. + + + + +For more parameters recognised by systemd, see +systemd1. + +If no login prompts or X11 login screens appear (e.g. due to +hanging dependencies), you can press Alt+ArrowUp. If you’re lucky, +this will start rescue mode (described above). (Also note that since +most units have a 90-second timeout before systemd gives up on them, +the agetty login prompts should appear eventually +unless something is very wrong.) + +
\ No newline at end of file diff --git a/nixos/doc/manual/administration/cleaning-store.xml b/nixos/doc/manual/administration/cleaning-store.xml new file mode 100644 index 00000000000..41dc65795b6 --- /dev/null +++ b/nixos/doc/manual/administration/cleaning-store.xml @@ -0,0 +1,62 @@ + + +Cleaning the Nix Store + +Nix has a purely functional model, meaning that packages are +never upgraded in place. Instead new versions of packages end up in a +different location in the Nix store (/nix/store). +You should periodically run Nix’s garbage +collector to remove old, unreferenced packages. This is +easy: + + +$ nix-collect-garbage + + +Alternatively, you can use a systemd unit that does the same in the +background: + + +$ systemctl start nix-gc.service + + +You can tell NixOS in configuration.nix to run +this unit automatically at certain points in time, for instance, every +night at 03:15: + + +nix.gc.automatic = true; +nix.gc.dates = "03:15"; + + + + +The commands above do not remove garbage collector roots, such +as old system configurations. Thus they do not remove the ability to +roll back to previous configurations. The following command deletes +old roots, removing the ability to roll back to them: + +$ nix-collect-garbage -d + +You can also do this for specific profiles, e.g. + +$ nix-env -p /nix/var/nix/profiles/per-user/eelco/profile --delete-generations old + +Note that NixOS system configurations are stored in the profile +/nix/var/nix/profiles/system. + +Another way to reclaim disk space (often as much as 40% of the +size of the Nix store) is to run Nix’s store optimiser, which seeks +out identical files in the store and replaces them with hard links to +a single copy. + +$ nix-store --optimise + +Since this command needs to read the entire Nix store, it can take +quite a while to finish. + + \ No newline at end of file diff --git a/nixos/doc/manual/administration/container-networking.xml b/nixos/doc/manual/administration/container-networking.xml new file mode 100644 index 00000000000..adea3e69840 --- /dev/null +++ b/nixos/doc/manual/administration/container-networking.xml @@ -0,0 +1,50 @@ +
+ + +Container Networking + +When you create a container using nixos-container +create, it gets it own private IPv4 address in the range +10.233.0.0/16. You can get the container’s IPv4 +address as follows: + + +$ nixos-container show-ip foo +10.233.4.2 + +$ ping -c1 10.233.4.2 +64 bytes from 10.233.4.2: icmp_seq=1 ttl=64 time=0.106 ms + + + + +Networking is implemented using a pair of virtual Ethernet +devices. The network interface in the container is called +eth0, while the matching interface in the host is +called ve-container-name +(e.g., ve-foo). The container has its own network +namespace and the CAP_NET_ADMIN capability, so it +can perform arbitrary network configuration such as setting up +firewall rules, without affecting or having access to the host’s +network. + +By default, containers cannot talk to the outside network. If +you want that, you should set up Network Address Translation (NAT) +rules on the host to rewrite container traffic to use your external +IP address. This can be accomplished using the following configuration +on the host: + + +networking.nat.enable = true; +networking.nat.internalInterfaces = ["ve-+"]; +networking.nat.externalInterface = "eth0"; + +where eth0 should be replaced with the desired +external interface. Note that ve-+ is a wildcard +that matches all container interfaces. + +
\ No newline at end of file diff --git a/nixos/doc/manual/administration/containers.xml b/nixos/doc/manual/administration/containers.xml new file mode 100644 index 00000000000..4cd2c8ae556 --- /dev/null +++ b/nixos/doc/manual/administration/containers.xml @@ -0,0 +1,34 @@ + + +Container Management + +NixOS allows you to easily run other NixOS instances as +containers. Containers are a light-weight +approach to virtualisation that runs software in the container at the +same speed as in the host system. NixOS containers share the Nix store +of the host, making container creation very efficient. + +Currently, NixOS containers are not perfectly isolated +from the host system. This means that a user with root access to the +container can do things that affect the host. So you should not give +container root access to untrusted users. + +NixOS containers can be created in two ways: imperatively, using +the command nixos-container, and declaratively, by +specifying them in your configuration.nix. The +declarative approach implies that containers get upgraded along with +your host system when you run nixos-rebuild, which +is often not what you want. By contrast, in the imperative approach, +containers are configured and updated independently from the host +system. + + + + + + + diff --git a/nixos/doc/manual/administration/control-groups.xml b/nixos/doc/manual/administration/control-groups.xml new file mode 100644 index 00000000000..86c684cdfe5 --- /dev/null +++ b/nixos/doc/manual/administration/control-groups.xml @@ -0,0 +1,75 @@ + + +Control Groups + +To keep track of the processes in a running system, systemd uses +control groups (cgroups). A control group is a +set of processes used to allocate resources such as CPU, memory or I/O +bandwidth. There can be multiple control group hierarchies, allowing +each kind of resource to be managed independently. + +The command systemd-cgls lists all control +groups in the systemd hierarchy, which is what +systemd uses to keep track of the processes belonging to each service +or user session: + + +$ systemd-cgls +├─user +│ └─eelco +│ └─c1 +│ ├─ 2567 -:0 +│ ├─ 2682 kdeinit4: kdeinit4 Running... +│ ├─ ... +│ └─10851 sh -c less -R +└─system + ├─httpd.service + │ ├─2444 httpd -f /nix/store/3pyacby5cpr55a03qwbnndizpciwq161-httpd.conf -DNO_DETACH + │ └─... + ├─dhcpcd.service + │ └─2376 dhcpcd --config /nix/store/f8dif8dsi2yaa70n03xir8r653776ka6-dhcpcd.conf + └─ ... + + +Similarly, systemd-cgls cpu shows the cgroups in +the CPU hierarchy, which allows per-cgroup CPU scheduling priorities. +By default, every systemd service gets its own CPU cgroup, while all +user sessions are in the top-level CPU cgroup. This ensures, for +instance, that a thousand run-away processes in the +httpd.service cgroup cannot starve the CPU for one +process in the postgresql.service cgroup. (By +contrast, it they were in the same cgroup, then the PostgreSQL process +would get 1/1001 of the cgroup’s CPU time.) You can limit a service’s +CPU share in configuration.nix: + + +systemd.services.httpd.serviceConfig.CPUShares = 512; + + +By default, every cgroup has 1024 CPU shares, so this will halve the +CPU allocation of the httpd.service cgroup. + +There also is a memory hierarchy that +controls memory allocation limits; by default, all processes are in +the top-level cgroup, so any service or session can exhaust all +available memory. Per-cgroup memory limits can be specified in +configuration.nix; for instance, to limit +httpd.service to 512 MiB of RAM (excluding swap) +and 640 MiB of RAM (including swap): + + +systemd.services.httpd.serviceConfig.MemoryLimit = "512M"; +systemd.services.httpd.serviceConfig.ControlGroupAttribute = [ "memory.memsw.limit_in_bytes 640M" ]; + + + + +The command systemd-cgtop shows a +continuously updated list of all cgroups with their CPU and memory +usage. + + \ No newline at end of file diff --git a/nixos/doc/manual/administration/declarative-containers.xml b/nixos/doc/manual/administration/declarative-containers.xml new file mode 100644 index 00000000000..177ebdd8db1 --- /dev/null +++ b/nixos/doc/manual/administration/declarative-containers.xml @@ -0,0 +1,52 @@ +
+ +Declarative Container Specification + +You can also specify containers and their configuration in the +host’s configuration.nix. For example, the +following specifies that there shall be a container named +database running PostgreSQL: + + +containers.database = + { config = + { config, pkgs, ... }: + { services.postgresql.enable = true; + services.postgresql.package = pkgs.postgresql92; + }; + }; + + +If you run nixos-rebuild switch, the container will +be built and started. If the container was already running, it will be +updated in place, without rebooting. + +By default, declarative containers share the network namespace +of the host, meaning that they can listen on (privileged) +ports. However, they cannot change the network configuration. You can +give a container its own network as follows: + + +containers.database = + { privateNetwork = true; + hostAddress = "192.168.100.10"; + localAddress = "192.168.100.11"; + }; + + +This gives the container a private virtual Ethernet interface with IP +address 192.168.100.11, which is hooked up to a +virtual Ethernet interface on the host with IP address +192.168.100.10. (See the next section for details +on container networking.) + +To disable the container, just remove it from +configuration.nix and run nixos-rebuild +switch. Note that this will not delete the root directory of +the container in /var/lib/containers. + +
\ No newline at end of file diff --git a/nixos/doc/manual/administration/imperative-containers.xml b/nixos/doc/manual/administration/imperative-containers.xml new file mode 100644 index 00000000000..6131d4e04ea --- /dev/null +++ b/nixos/doc/manual/administration/imperative-containers.xml @@ -0,0 +1,124 @@ +
+ +Imperative Container Management + +We’ll cover imperative container management using +nixos-container first. You create a container with +identifier foo as follows: + + +$ nixos-container create foo + + +This creates the container’s root directory in +/var/lib/containers/foo and a small configuration +file in /etc/containers/foo.conf. It also builds +the container’s initial system configuration and stores it in +/nix/var/nix/profiles/per-container/foo/system. You +can modify the initial configuration of the container on the command +line. For instance, to create a container that has +sshd running, with the given public key for +root: + + +$ nixos-container create foo --config 'services.openssh.enable = true; \ + users.extraUsers.root.openssh.authorizedKeys.keys = ["ssh-dss AAAAB3N…"];' + + + + +Creating a container does not start it. To start the container, +run: + + +$ nixos-container start foo + + +This command will return as soon as the container has booted and has +reached multi-user.target. On the host, the +container runs within a systemd unit called +container@container-name.service. +Thus, if something went wrong, you can get status info using +systemctl: + + +$ systemctl status container@foo + + + + +If the container has started succesfully, you can log in as +root using the root-login operation: + + +$ nixos-container root-login foo +[root@foo:~]# + + +Note that only root on the host can do this (since there is no +authentication). You can also get a regular login prompt using the +login operation, which is available to all users on +the host: + + +$ nixos-container login foo +foo login: alice +Password: *** + + +With nixos-container run, you can execute arbitrary +commands in the container: + + +$ nixos-container run foo -- uname -a +Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux + + + + +There are several ways to change the configuration of the +container. First, on the host, you can edit +/var/lib/container/name/etc/nixos/configuration.nix, +and run + + +$ nixos-container update foo + + +This will build and activate the new configuration. You can also +specify a new configuration on the command line: + + +$ nixos-container update foo --config 'services.httpd.enable = true; \ + services.httpd.adminAddr = "foo@example.org";' + +$ curl http://$(nixos-container show-ip foo)/ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">… + + +However, note that this will overwrite the container’s +/etc/nixos/configuration.nix. + +Alternatively, you can change the configuration from within the +container itself by running nixos-rebuild switch +inside the container. Note that the container by default does not have +a copy of the NixOS channel, so you should run nix-channel +--update first. + +Containers can be stopped and started using +nixos-container stop and nixos-container +start, respectively, or by using +systemctl on the container’s service unit. To +destroy a container, including its file system, do + + +$ nixos-container destroy foo + + + + +
\ No newline at end of file diff --git a/nixos/doc/manual/administration/logging.xml b/nixos/doc/manual/administration/logging.xml new file mode 100644 index 00000000000..1d5df7770e2 --- /dev/null +++ b/nixos/doc/manual/administration/logging.xml @@ -0,0 +1,52 @@ + + +Logging + +System-wide logging is provided by systemd’s +journal, which subsumes traditional logging +daemons such as syslogd and klogd. Log entries are kept in binary +files in /var/log/journal/. The command +journalctl allows you to see the contents of the +journal. For example, + + +$ journalctl -b + + +shows all journal entries since the last reboot. (The output of +journalctl is piped into less by +default.) You can use various options and match operators to restrict +output to messages of interest. For instance, to get all messages +from PostgreSQL: + + +$ journalctl -u postgresql.service +-- Logs begin at Mon, 2013-01-07 13:28:01 CET, end at Tue, 2013-01-08 01:09:57 CET. -- +... +Jan 07 15:44:14 hagbard postgres[2681]: [2-1] LOG: database system is shut down +-- Reboot -- +Jan 07 15:45:10 hagbard postgres[2532]: [1-1] LOG: database system was shut down at 2013-01-07 15:44:14 CET +Jan 07 15:45:13 hagbard postgres[2500]: [1-1] LOG: database system is ready to accept connections + + +Or to get all messages since the last reboot that have at least a +“critical” severity level: + + +$ journalctl -b -p crit +Dec 17 21:08:06 mandark sudo[3673]: pam_unix(sudo:auth): auth could not identify password for [alice] +Dec 29 01:30:22 mandark kernel[6131]: [1053513.909444] CPU6: Core temperature above threshold, cpu clock throttled (total events = 1) + + + + +The system journal is readable by root and by users in the +wheel and systemd-journal +groups. All users have a private journal that can be read using +journalctl. + + \ No newline at end of file diff --git a/nixos/doc/manual/administration/maintenance-mode.xml b/nixos/doc/manual/administration/maintenance-mode.xml new file mode 100644 index 00000000000..15c1f902da7 --- /dev/null +++ b/nixos/doc/manual/administration/maintenance-mode.xml @@ -0,0 +1,18 @@ +
+ +Maintenance Mode + +You can enter rescue mode by running: + + +$ systemctl rescue + +This will eventually give you a single-user root shell. Systemd will +stop (almost) all system services. To get out of maintenance mode, +just exit from the rescue shell. + +
\ No newline at end of file diff --git a/nixos/doc/manual/administration/network-problems.xml b/nixos/doc/manual/administration/network-problems.xml new file mode 100644 index 00000000000..5ba1bfd5ac9 --- /dev/null +++ b/nixos/doc/manual/administration/network-problems.xml @@ -0,0 +1,33 @@ +
+ +Network Problems + +Nix uses a so-called binary cache to +optimise building a package from source into downloading it as a +pre-built binary. That is, whenever a command like +nixos-rebuild needs a path in the Nix store, Nix +will try to download that path from the Internet rather than build it +from source. The default binary cache is +http://cache.nixos.org/. If this cache is unreachable, Nix +operations may take a long time due to HTTP connection timeouts. You +can disable the use of the binary cache by adding , e.g. + + +$ nixos-rebuild switch --option use-binary-caches false + + +If you have an alternative binary cache at your disposal, you can use +it instead: + + +$ nixos-rebuild switch --option binary-caches http://my-cache.example.org/ + + + + +
\ No newline at end of file diff --git a/nixos/doc/manual/administration/rebooting.xml b/nixos/doc/manual/administration/rebooting.xml new file mode 100644 index 00000000000..d1db7b141cf --- /dev/null +++ b/nixos/doc/manual/administration/rebooting.xml @@ -0,0 +1,44 @@ + + +Rebooting and Shutting Down + +The system can be shut down (and automatically powered off) by +doing: + + +$ shutdown + + +This is equivalent to running systemctl +poweroff. + +To reboot the system, run + + +$ reboot + + +which is equivalent to systemctl reboot. +Alternatively, you can quickly reboot the system using +kexec, which bypasses the BIOS by directly loading +the new kernel into memory: + + +$ systemctl kexec + + + + +The machine can be suspended to RAM (if supported) using +systemctl suspend, and suspended to disk using +systemctl hibernate. + +These commands can be run by any user who is logged in locally, +i.e. on a virtual console or in X11; otherwise, the user is asked for +authentication. + + \ No newline at end of file diff --git a/nixos/doc/manual/administration/rollback.xml b/nixos/doc/manual/administration/rollback.xml new file mode 100644 index 00000000000..23a3ece7c07 --- /dev/null +++ b/nixos/doc/manual/administration/rollback.xml @@ -0,0 +1,48 @@ +
+ +Rolling Back Configuration Changes + +After running nixos-rebuild to switch to a +new configuration, you may find that the new configuration doesn’t +work very well. In that case, there are several ways to return to a +previous configuration. + +First, the GRUB boot manager allows you to boot into any +previous configuration that hasn’t been garbage-collected. These +configurations can be found under the GRUB submenu “NixOS - All +configurations”. This is especially useful if the new configuration +fails to boot. After the system has booted, you can make the selected +configuration the default for subsequent boots: + + +$ /run/current-system/bin/switch-to-configuration boot + + + +Second, you can switch to the previous configuration in a running +system: + + +$ nixos-rebuild switch --rollback + +This is equivalent to running: + + +$ /nix/var/nix/profiles/system-N-link/bin/switch-to-configuration switch + +where N is the number of the NixOS system +configuration. To get a list of the available configurations, do: + + +$ ls -l /nix/var/nix/profiles/system-*-link +... +lrwxrwxrwx 1 root root 78 Aug 12 13:54 /nix/var/nix/profiles/system-268-link -> /nix/store/202b...-nixos-13.07pre4932_5a676e4-4be1055 + + + + +
\ No newline at end of file diff --git a/nixos/doc/manual/administration/running.xml b/nixos/doc/manual/administration/running.xml new file mode 100644 index 00000000000..9091511ed52 --- /dev/null +++ b/nixos/doc/manual/administration/running.xml @@ -0,0 +1,24 @@ + + +Administration + + +This chapter describes various aspects of managing a running +NixOS system, such as how to use the systemd +service manager. + + + + + + + + + + + + diff --git a/nixos/doc/manual/administration/service-mgmt.xml b/nixos/doc/manual/administration/service-mgmt.xml new file mode 100644 index 00000000000..c0940a42f30 --- /dev/null +++ b/nixos/doc/manual/administration/service-mgmt.xml @@ -0,0 +1,83 @@ + + +Service Management + +In NixOS, all system services are started and monitored using +the systemd program. Systemd is the “init” process of the system +(i.e. PID 1), the parent of all other processes. It manages a set of +so-called “units”, which can be things like system services +(programs), but also mount points, swap files, devices, targets +(groups of units) and more. Units can have complex dependencies; for +instance, one unit can require that another unit must be successfully +started before the first unit can be started. When the system boots, +it starts a unit named default.target; the +dependencies of this unit cause all system services to be started, +file systems to be mounted, swap files to be activated, and so +on. + +The command systemctl is the main way to +interact with systemd. Without any arguments, it +shows the status of active units: + + +$ systemctl +-.mount loaded active mounted / +swapfile.swap loaded active active /swapfile +sshd.service loaded active running SSH Daemon +graphical.target loaded active active Graphical Interface +... + + + + +You can ask for detailed status information about a unit, for +instance, the PostgreSQL database service: + + +$ systemctl status postgresql.service +postgresql.service - PostgreSQL Server + Loaded: loaded (/nix/store/pn3q73mvh75gsrl8w7fdlfk3fq5qm5mw-unit/postgresql.service) + Active: active (running) since Mon, 2013-01-07 15:55:57 CET; 9h ago + Main PID: 2390 (postgres) + CGroup: name=systemd:/system/postgresql.service + ├─2390 postgres + ├─2418 postgres: writer process + ├─2419 postgres: wal writer process + ├─2420 postgres: autovacuum launcher process + ├─2421 postgres: stats collector process + └─2498 postgres: zabbix zabbix [local] idle + +Jan 07 15:55:55 hagbard postgres[2394]: [1-1] LOG: database system was shut down at 2013-01-07 15:55:05 CET +Jan 07 15:55:57 hagbard postgres[2390]: [1-1] LOG: database system is ready to accept connections +Jan 07 15:55:57 hagbard postgres[2420]: [1-1] LOG: autovacuum launcher started +Jan 07 15:55:57 hagbard systemd[1]: Started PostgreSQL Server. + + +Note that this shows the status of the unit (active and running), all +the processes belonging to the service, as well as the most recent log +messages from the service. + + + +Units can be stopped, started or restarted: + + +$ systemctl stop postgresql.service +$ systemctl start postgresql.service +$ systemctl restart postgresql.service + + +These operations are synchronous: they wait until the service has +finished starting or stopping (or has failed). Starting a unit will +cause the dependencies of that unit to be started as well (if +necessary). + + + + diff --git a/nixos/doc/manual/administration/store-corruption.xml b/nixos/doc/manual/administration/store-corruption.xml new file mode 100644 index 00000000000..0160cb45358 --- /dev/null +++ b/nixos/doc/manual/administration/store-corruption.xml @@ -0,0 +1,37 @@ +
+ +Nix Store Corruption + +After a system crash, it’s possible for files in the Nix store +to become corrupted. (For instance, the Ext4 file system has the +tendency to replace un-synced files with zero bytes.) NixOS tries +hard to prevent this from happening: it performs a +sync before switching to a new configuration, and +Nix’s database is fully transactional. If corruption still occurs, +you may be able to fix it automatically. + +If the corruption is in a path in the closure of the NixOS +system configuration, you can fix it by doing + + +$ nixos-rebuild switch --repair + + +This will cause Nix to check every path in the closure, and if its +cryptographic hash differs from the hash recorded in Nix’s database, +the path is rebuilt or redownloaded. + +You can also scan the entire Nix store for corrupt paths: + + +$ nix-store --verify --check-contents --repair + + +Any corrupt paths will be redownloaded if they’re available in a +binary cache; otherwise, they cannot be repaired. + +
\ No newline at end of file diff --git a/nixos/doc/manual/administration/troubleshooting.xml b/nixos/doc/manual/administration/troubleshooting.xml new file mode 100644 index 00000000000..351fb188331 --- /dev/null +++ b/nixos/doc/manual/administration/troubleshooting.xml @@ -0,0 +1,18 @@ + + +Troubleshooting + +This chapter describes solutions to common problems you might +encounter when you manage your NixOS system. + + + + + + + + diff --git a/nixos/doc/manual/administration/user-sessions.xml b/nixos/doc/manual/administration/user-sessions.xml new file mode 100644 index 00000000000..05e2c1a9b29 --- /dev/null +++ b/nixos/doc/manual/administration/user-sessions.xml @@ -0,0 +1,53 @@ + + +User Sessions + +Systemd keeps track of all users who are logged into the system +(e.g. on a virtual console or remotely via SSH). The command +loginctl allows querying and manipulating user +sessions. For instance, to list all user sessions: + + +$ loginctl + SESSION UID USER SEAT + c1 500 eelco seat0 + c3 0 root seat0 + c4 500 alice + + +This shows that two users are logged in locally, while another is +logged in remotely. (“Seats” are essentially the combinations of +displays and input devices attached to the system; usually, there is +only one seat.) To get information about a session: + + +$ loginctl session-status c3 +c3 - root (0) + Since: Tue, 2013-01-08 01:17:56 CET; 4min 42s ago + Leader: 2536 (login) + Seat: seat0; vc3 + TTY: /dev/tty3 + Service: login; type tty; class user + State: online + CGroup: name=systemd:/user/root/c3 + ├─ 2536 /nix/store/10mn4xip9n7y9bxqwnsx7xwx2v2g34xn-shadow-4.1.5.1/bin/login -- + ├─10339 -bash + └─10355 w3m nixos.org + + +This shows that the user is logged in on virtual console 3. It also +lists the processes belonging to this session. Since systemd keeps +track of this, you can terminate a session in a way that ensures that +all the session’s processes are gone: + + +$ loginctl terminate-session c3 + + + + + \ No newline at end of file diff --git a/nixos/doc/manual/configuration.xml b/nixos/doc/manual/configuration.xml deleted file mode 100644 index 64372f3bbf1..00000000000 --- a/nixos/doc/manual/configuration.xml +++ /dev/null @@ -1,1563 +0,0 @@ - - -Configuring NixOS - -This chapter describes how to configure various aspects of a -NixOS machine through the configuration file -/etc/nixos/configuration.nix. As described in -, changes to this file only take -effect after you run nixos-rebuild. - - - - -
Configuration syntax - -
The basics - -The NixOS configuration file -/etc/nixos/configuration.nix is actually a -Nix expression, which is the Nix package -manager’s purely functional language for describing how to build -packages and configurations. This means you have all the expressive -power of that language at your disposal, including the ability to -abstract over common patterns, which is very useful when managing -complex systems. The syntax and semantics of the Nix language are -fully described in the Nix -manual, but here we give a short overview of the most important -constructs useful in NixOS configuration files. - -The NixOS configuration file generally looks like this: - - -{ config, pkgs, ... }: - -{ option definitions -} - - -The first line ({ config, pkgs, ... }:) denotes -that this is actually a function that takes at least the two arguments - config and pkgs. (These are -explained later.) The function returns a set of -option definitions ({ ... }). These definitions have the -form name = -value, where -name is the name of an option and -value is its value. For example, - - -{ config, pkgs, ... }: - -{ services.httpd.enable = true; - services.httpd.adminAddr = "alice@example.org"; - services.httpd.documentRoot = "/webroot"; -} - - -defines a configuration with three option definitions that together -enable the Apache HTTP Server with /webroot as -the document root. - -Sets can be nested, and in fact dots in option names are -shorthand for defining a set containing another set. For instance, - defines a set named -services that contains a set named -httpd, which in turn contains an option definition -named enable with value true. -This means that the example above can also be written as: - - -{ config, pkgs, ... }: - -{ services = { - httpd = { - enable = true; - adminAddr = "alice@example.org"; - documentRoot = "/webroot"; - }; - }; -} - - -which may be more convenient if you have lots of option definitions -that share the same prefix (such as -services.httpd). - -NixOS checks your option definitions for correctness. For -instance, if you try to define an option that doesn’t exist (that is, -doesn’t have a corresponding option declaration), -nixos-rebuild will give an error like: - -The option `services.httpd.enabl' defined in `/etc/nixos/configuration.nix' does not exist. - -Likewise, values in option definitions must have a correct type. For -instance, must be a Boolean -(true or false). Trying to give -it a value of another type, such as a string, will cause an error: - -The option value `services.httpd.enable' in `/etc/nixos/configuration.nix' is not a boolean. - - - - -Options have various types of values. The most important are: - - - - Strings - - Strings are enclosed in double quotes, e.g. - - -networking.hostName = "dexter"; - - - Special characters can be escaped by prefixing them with a - backslash (e.g. \"). - - Multi-line strings can be enclosed in double - single quotes, e.g. - - -networking.extraHosts = - '' - 127.0.0.2 other-localhost - 10.0.0.1 server - ''; - - - The main difference is that preceding whitespace is - automatically stripped from each line, and that characters like - " and \ are not special - (making it more convenient for including things like shell - code). - - - - - Booleans - - These can be true or - false, e.g. - - -networking.firewall.enable = true; -networking.firewall.allowPing = false; - - - - - - - Integers - - For example, - - -boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 60; - - - (Note that here the attribute name - net.ipv4.tcp_keepalive_time is enclosed in - quotes to prevent it from being interpreted as a set named - net containing a set named - ipv4, and so on. This is because it’s not a - NixOS option but the literal name of a Linux kernel - setting.) - - - - - Sets - - Sets were introduced above. They are name/value pairs - enclosed in braces, as in the option definition - - -fileSystems."/boot" = - { device = "/dev/sda1"; - fsType = "ext4"; - options = "rw,data=ordered,relatime"; - }; - - - - - - - Lists - - The important thing to note about lists is that list - elements are separated by whitespace, like this: - - -boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ]; - - - List elements can be any other type, e.g. sets: - - -swapDevices = [ { device = "/dev/disk/by-label/swap"; } ]; - - - - - - - Packages - - Usually, the packages you need are already part of the Nix - Packages collection, which is a set that can be accessed through - the function argument pkgs. Typical uses: - - -environment.systemPackages = - [ pkgs.thunderbird - pkgs.emacs - ]; - -postgresql.package = pkgs.postgresql90; - - - The latter option definition changes the default PostgreSQL - package used by NixOS’s PostgreSQL service to 9.0. For more - information on packages, including how to add new ones, see - . - - - - - - - -
- - -
Abstractions - -If you find yourself repeating yourself over and over, it’s time -to abstract. Take, for instance, this Apache HTTP Server configuration: - - -{ - services.httpd.virtualHosts = - [ { hostName = "example.org"; - documentRoot = "/webroot"; - adminAddr = "alice@example.org"; - enableUserDir = true; - } - { hostName = "example.org"; - documentRoot = "/webroot"; - adminAddr = "alice@example.org"; - enableUserDir = true; - enableSSL = true; - sslServerCert = "/root/ssl-example-org.crt"; - sslServerKey = "/root/ssl-example-org.key"; - } - ]; -} - - -It defines two virtual hosts with nearly identical configuration; the -only difference is that the second one has SSL enabled. To prevent -this duplication, we can use a let: - - -let - exampleOrgCommon = - { hostName = "example.org"; - documentRoot = "/webroot"; - adminAddr = "alice@example.org"; - enableUserDir = true; - }; -in -{ - services.httpd.virtualHosts = - [ exampleOrgCommon - (exampleOrgCommon // { - enableSSL = true; - sslServerCert = "/root/ssl-example-org.crt"; - sslServerKey = "/root/ssl-example-org.key"; - }) - ]; -} - - -The let exampleOrgCommon = -... defines a variable named -exampleOrgCommon. The // -operator merges two attribute sets, so the configuration of the second -virtual host is the set exampleOrgCommon extended -with the SSL options. - -You can write a let wherever an expression is -allowed. Thus, you also could have written: - - -{ - services.httpd.virtualHosts = - let exampleOrgCommon = ...; in - [ exampleOrgCommon - (exampleOrgCommon // { ... }) - ]; -} - - -but not { let exampleOrgCommon = -...; in ...; -} since attributes (as opposed to attribute values) are not -expressions. - -Functions provide another method of -abstraction. For instance, suppose that we want to generate lots of -different virtual hosts, all with identical configuration except for -the host name. This can be done as follows: - - -{ - services.httpd.virtualHosts = - let - makeVirtualHost = name: - { hostName = name; - documentRoot = "/webroot"; - adminAddr = "alice@example.org"; - }; - in - [ (makeVirtualHost "example.org") - (makeVirtualHost "example.com") - (makeVirtualHost "example.gov") - (makeVirtualHost "example.nl") - ]; -} - - -Here, makeVirtualHost is a function that takes a -single argument name and returns the configuration -for a virtual host. That function is then called for several names to -produce the list of virtual host configurations. - -We can further improve on this by using the function -map, which applies another function to every -element in a list: - - -{ - services.httpd.virtualHosts = - let - makeVirtualHost = ...; - in map makeVirtualHost - [ "example.org" "example.com" "example.gov" "example.nl" ]; -} - - -(The function map is called a -higher-order function because it takes another -function as an argument.) - -What if you need more than one argument, for instance, if we -want to use a different documentRoot for each -virtual host? Then we can make makeVirtualHost a -function that takes a set as its argument, like this: - - -{ - services.httpd.virtualHosts = - let - makeVirtualHost = { name, root }: - { hostName = name; - documentRoot = root; - adminAddr = "alice@example.org"; - }; - in map makeVirtualHost - [ { name = "example.org"; root = "/sites/example.org"; } - { name = "example.com"; root = "/sites/example.com"; } - { name = "example.gov"; root = "/sites/example.gov"; } - { name = "example.nl"; root = "/sites/example.nl"; } - ]; -} - - -But in this case (where every root is a subdirectory of -/sites named after the virtual host), it would -have been shorter to define makeVirtualHost as - -makeVirtualHost = name: - { hostName = name; - documentRoot = "/sites/${name}"; - adminAddr = "alice@example.org"; - }; - - -Here, the construct -${...} allows the result -of an expression to be spliced into a string. - -
- - -
Modularity - -The NixOS configuration mechanism is modular. If your -configuration.nix becomes too big, you can split -it into multiple files. Likewise, if you have multiple NixOS -configurations (e.g. for different computers) with some commonality, -you can move the common configuration into a shared file. - -Modules have exactly the same syntax as -configuration.nix. In fact, -configuration.nix is itself a module. You can -use other modules by including them from -configuration.nix, e.g.: - - -{ config, pkgs, ... }: - -{ imports = [ ./vpn.nix ./kde.nix ]; - services.httpd.enable = true; - environment.systemPackages = [ pkgs.emacs ]; - ... -} - - -Here, we include two modules from the same directory, -vpn.nix and kde.nix. The -latter might look like this: - - -{ config, pkgs, ... }: - -{ services.xserver.enable = true; - services.xserver.displayManager.kdm.enable = true; - services.xserver.desktopManager.kde4.enable = true; - environment.systemPackages = [ pkgs.kde4.kscreensaver ]; -} - - -Note that both configuration.nix and -kde.nix define the option -. When multiple modules -define an option, NixOS will try to merge the -definitions. In the case of -, that’s easy: the lists of -packages can simply be concatenated. The value in -configuration.nix is merged last, so for -list-type options, it will appear at the end of the merged list. If -you want it to appear first, you can use mkBefore: - - -boot.kernelModules = mkBefore [ "kvm-intel" ]; - - -This causes the kvm-intel kernel module to be -loaded before any other kernel modules. - -For other types of options, a merge may not be possible. For -instance, if two modules define -, -nixos-rebuild will give an error: - - -The unique option `services.httpd.adminAddr' is defined multiple times, in `/etc/nixos/httpd.nix' and `/etc/nixos/configuration.nix'. - - -When that happens, it’s possible to force one definition take -precedence over the others: - - -services.httpd.adminAddr = pkgs.lib.mkForce "bob@example.org"; - - - - -When using multiple modules, you may need to access -configuration values defined in other modules. This is what the -config function argument is for: it contains the -complete, merged system configuration. That is, -config is the result of combining the -configurations returned by every moduleIf you’re -wondering how it’s possible that the (indirect) -result of a function is passed as an -input to that same function: that’s because Nix -is a “lazy” language — it only computes values when they are needed. -This works as long as no individual configuration value depends on -itself.. For example, here is a module that adds -some packages to only if - is set to -true somewhere else: - - -{ config, pkgs, ... }: - -{ environment.systemPackages = - if config.services.xserver.enable then - [ pkgs.firefox - pkgs.thunderbird - ] - else - [ ]; -} - - - - -With multiple modules, it may not be obvious what the final -value of a configuration option is. The command - allows you to find out: - - -$ nixos-option services.xserver.enable -true - -$ nixos-option boot.kernelModules -[ "tun" "ipv6" "loop" ... ] - - -Interactive exploration of the configuration is possible using -nix-repl, -a read-eval-print loop for Nix expressions. It’s not installed by -default; run nix-env -i nix-repl to get it. A -typical use: - - -$ nix-repl '<nixos>' - -nix-repl> config.networking.hostName -"mandark" - -nix-repl> map (x: x.hostName) config.services.httpd.virtualHosts -[ "example.org" "example.gov" ] - - - - -
- - -
Syntax summary - -Below is a summary of the most important syntactic constructs in -the Nix expression language. It’s not complete. In particular, there -are many other built-in functions. See the Nix -manual for the rest. - - - - - - - - Example - Description - - - - - - Basic values - - - "Hello world" - A string - - - "${pkgs.bash}/bin/sh" - A string containing an expression (expands to "/nix/store/hash-bash-version/bin/sh") - - - true, false - Booleans - - - 123 - An integer - - - ./foo.png - A path (relative to the containing Nix expression) - - - - Compound values - - - { x = 1; y = 2; } - An set with attributes names x and y - - - { foo.bar = 1; } - A nested set, equivalent to { foo = { bar = 1; }; } - - - rec { x = "bla"; y = x + "bar"; } - A recursive set, equivalent to { x = "foo"; y = "foobar"; } - - - [ "foo" "bar" ] - A list with two elements - - - - Operators - - - "foo" + "bar" - String concatenation - - - 1 + 2 - Integer addition - - - "foo" == "f" + "oo" - Equality test (evaluates to true) - - - "foo" != "bar" - Inequality test (evaluates to true) - - - !true - Boolean negation - - - { x = 1; y = 2; }.x - Attribute selection (evaluates to 1) - - - { x = 1; y = 2; }.z or 3 - Attribute selection with default (evaluates to 3) - - - { x = 1; y = 2; } // { z = 3; } - Merge two sets (attributes in the right-hand set taking precedence) - - - - Control structures - - - if 1 + 1 == 2 then "yes!" else "no!" - Conditional expression - - - assert 1 + 1 == 2; "yes!" - Assertion check (evaluates to "yes!") - - - let x = "foo"; y = "bar"; in x + y - Variable definition - - - with pkgs.lib; head [ 1 2 3 ] - Add all attributes from the given set to the scope - (evaluates to 1) - - - - Functions (lambdas) - - - x: x + 1 - A function that expects an integer and returns it increased by 1 - - - (x: x + 1) 100 - A function call (evaluates to 101) - - - let inc = x: x + 1; in inc (inc (inc 100)) - A function bound to a variable and subsequently called by name (evaluates to 103) - - - { x, y }: x + y - A function that expects a set with required attributes - x and y and concatenates - them - - - { x, y ? "bar" }: x + y - A function that expects a set with required attribute - x and optional y, using - "bar" as default value for - y - - - { x, y, ... }: x + y - A function that expects a set with required attributes - x and y and ignores any - other attributes - - - { x, y } @ args: x + y - A function that expects a set with required attributes - x and y, and binds the - whole set to args - - - - Built-in functions - - - import ./foo.nix - Load and return Nix expression in given file - - - map (x: x + x) [ 1 2 3 ] - Apply a function to every element of a list (evaluates to [ 2 4 6 ]) - - - - - - - -
- - -
- - - - -
Package management - -This section describes how to add additional packages to your -system. NixOS has two distinct styles of package management: - - - - Declarative, where you declare - what packages you want in your - configuration.nix. Every time you run - nixos-rebuild, NixOS will ensure that you get a - consistent set of binaries corresponding to your - specification. - - Ad hoc, where you install, - upgrade and uninstall packages via the nix-env - command. This style allows mixing packages from different Nixpkgs - versions. It’s the only choice for non-root - users. - - - - - -The next two sections describe these two styles. - - -
Declarative package management - -With declarative package management, you specify which packages -you want on your system by setting the option -. For instance, adding the -following line to configuration.nix enables the -Mozilla Thunderbird email application: - - -environment.systemPackages = [ pkgs.thunderbird ]; - - -The effect of this specification is that the Thunderbird package from -Nixpkgs will be built or downloaded as part of the system when you run -nixos-rebuild switch. - -You can get a list of the available packages as follows: - -$ nix-env -qaP '*' --description -nixos.pkgs.firefox firefox-23.0 Mozilla Firefox - the browser, reloaded -... - - -The first column in the output is the attribute -name, such as -nixos.pkgs.thunderbird. (The -nixos prefix allows distinguishing between -different channels that you might have.) - -To “uninstall” a package, simply remove it from - and run -nixos-rebuild switch. - - -
Customising packages - -Some packages in Nixpkgs have options to enable or disable -optional functionality or change other aspects of the package. For -instance, the Firefox wrapper package (which provides Firefox with a -set of plugins such as the Adobe Flash player) has an option to enable -the Google Talk plugin. It can be set in -configuration.nix as follows: - - -nixpkgs.config.firefox.enableGoogleTalkPlugin = true; - - - -Unfortunately, Nixpkgs currently lacks a way to query -available configuration options. - -Apart from high-level options, it’s possible to tweak a package -in almost arbitrary ways, such as changing or disabling dependencies -of a package. For instance, the Emacs package in Nixpkgs by default -has a dependency on GTK+ 2. If you want to build it against GTK+ 3, -you can specify that as follows: - - -environment.systemPackages = [ (pkgs.emacs.override { gtk = pkgs.gtk3; }) ]; - - -The function override performs the call to the Nix -function that produces Emacs, with the original arguments amended by -the set of arguments specified by you. So here the function argument -gtk gets the value pkgs.gtk3, -causing Emacs to depend on GTK+ 3. (The parentheses are necessary -because in Nix, function application binds more weakly than list -construction, so without them, -environment.systemPackages would be a list with two -elements.) - -Even greater customisation is possible using the function -overrideDerivation. While the -override mechanism above overrides the arguments of -a package function, overrideDerivation allows -changing the result of the function. This -permits changing any aspect of the package, such as the source code. -For instance, if you want to override the source code of Emacs, you -can say: - - -environment.systemPackages = - [ (pkgs.lib.overrideDerivation pkgs.emacs (attrs: { - name = "emacs-25.0-pre"; - src = /path/to/my/emacs/tree; - })) - ]; - - -Here, overrideDerivation takes the Nix derivation -specified by pkgs.emacs and produces a new -derivation in which the original’s name and -src attribute have been replaced by the given -values. The original attributes are accessible via -attrs. - -The overrides shown above are not global. They do not affect -the original package; other packages in Nixpkgs continue to depend on -the original rather than the customised package. This means that if -another package in your system depends on the original package, you -end up with two instances of the package. If you want to have -everything depend on your customised instance, you can apply a -global override as follows: - - -nixpkgs.config.packageOverrides = pkgs: - { emacs = pkgs.emacs.override { gtk = pkgs.gtk3; }; - }; - - -The effect of this definition is essentially equivalent to modifying -the emacs attribute in the Nixpkgs source tree. -Any package in Nixpkgs that depends on emacs will -be passed your customised instance. (However, the value -pkgs.emacs in -nixpkgs.config.packageOverrides refers to the -original rather than overridden instance, to prevent an infinite -recursion.) - -
- -
Adding custom packages - -It’s possible that a package you need is not available in NixOS. -In that case, you can do two things. First, you can clone the Nixpkgs -repository, add the package to your clone, and (optionally) submit a -patch or pull request to have it accepted into the main Nixpkgs -repository. This is described in detail in the Nixpkgs manual. -In short, you clone Nixpkgs: - - -$ git clone git://github.com/NixOS/nixpkgs.git -$ cd nixpkgs - - -Then you write and test the package as described in the Nixpkgs -manual. Finally, you add it to -environment.systemPackages, e.g. - - -environment.systemPackages = [ pkgs.my-package ]; - - -and you run nixos-rebuild, specifying your own -Nixpkgs tree: - - -$ nixos-rebuild switch -I nixpkgs=/path/to/my/nixpkgs - - - -The second possibility is to add the package outside of the -Nixpkgs tree. For instance, here is how you specify a build of the -GNU Hello -package directly in configuration.nix: - - -environment.systemPackages = - let - my-hello = with pkgs; stdenv.mkDerivation rec { - name = "hello-2.8"; - src = fetchurl { - url = "mirror://gnu/hello/${name}.tar.gz"; - sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"; - }; - }; - in - [ my-hello ]; - - -Of course, you can also move the definition of -my-hello into a separate Nix expression, e.g. - -environment.systemPackages = [ (import ./my-hello.nix) ]; - -where my-hello.nix contains: - -with import <nixpkgs> {}; # bring all of Nixpkgs into scope - -stdenv.mkDerivation rec { - name = "hello-2.8"; - src = fetchurl { - url = "mirror://gnu/hello/${name}.tar.gz"; - sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"; - }; -} - - -This allows testing the package easily: - -$ nix-build my-hello.nix -$ ./result/bin/hello -Hello, world! - - - - -
- -
- - -
Ad hoc package management - -With the command nix-env, you can install and -uninstall packages from the command line. For instance, to install -Mozilla Thunderbird: - - -$ nix-env -iA nixos.pkgs.thunderbird - -If you invoke this as root, the package is installed in the Nix -profile /nix/var/nix/profiles/default and visible -to all users of the system; otherwise, the package ends up in -/nix/var/nix/profiles/per-user/username/profile -and is not visible to other users. The flag -specifies the package by its attribute name; without it, the package -is installed by matching against its package name -(e.g. thunderbird). The latter is slower because -it requires matching against all available Nix packages, and is -ambiguous if there are multiple matching packages. - -Packages come from the NixOS channel. You typically upgrade a -package by updating to the latest version of the NixOS channel: - -$ nix-channel --update nixos - -and then running nix-env -i again. Other packages -in the profile are not affected; this is the -crucial difference with the declarative style of package management, -where running nixos-rebuild switch causes all -packages to be updated to their current versions in the NixOS channel. -You can however upgrade all packages for which there is a newer -version by doing: - -$ nix-env -u '*' - - - -A package can be uninstalled using the -flag: - -$ nix-env -e thunderbird - - - -Finally, you can roll back an undesirable -nix-env action: - -$ nix-env --rollback - - - -nix-env has many more flags. For details, -see the -nix-env1 -manpage or the Nix manual. - -
- - -
- - - - -
User management - -NixOS supports both declarative and imperative styles of user -management. In the declarative style, users are specified in -configuration.nix. For instance, the following -states that a user account named alice shall exist: - - -users.extraUsers.alice = - { createHome = true; - home = "/home/alice"; - description = "Alice Foobar"; - extraGroups = [ "wheel" "networkmanager" ]; - useDefaultShell = true; - openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... alice@foobar" ]; - }; - - -Note that alice is a member of the -wheel and networkmanager groups, -which allows her to use sudo to execute commands as -root and to configure the network, respectively. -Also note the SSH public key that allows remote logins with the -corresponding private key. Users created in this way do not have a -password by default, so they cannot log in via mechanisms that require -a password. However, you can use the passwd program -to set a password, which is retained across invocations of -nixos-rebuild. - -If you set users.mutableUsers to false, then the contents of /etc/passwd -and /etc/group will be congruent to your NixOS configuration. For instance, -if you remove a user from users.extraUsers and run nixos-rebuild, the user -account will cease to exist. Also, imperative commands for managing users -and groups, such as useradd, are no longer available. - -A user ID (uid) is assigned automatically. You can also specify -a uid manually by adding - - - uid = 1000; - - -to the user specification. - -Groups can be specified similarly. The following states that a -group named students shall exist: - - -users.extraGroups.students.gid = 1000; - - -As with users, the group ID (gid) is optional and will be assigned -automatically if it’s missing. - -Currently declarative user management is not perfect: -nixos-rebuild does not know how to realise certain -configuration changes. This includes removing a user or group, and -removing group membership from a user. - -In the imperative style, users and groups are managed by -commands such as useradd, -groupmod and so on. For instance, to create a user -account named alice: - - -$ useradd -m alice - -The flag causes the creation of a home directory -for the new user, which is generally what you want. The user does not -have an initial password and therefore cannot log in. A password can -be set using the passwd utility: - - -$ passwd alice -Enter new UNIX password: *** -Retype new UNIX password: *** - - -A user can be deleted using userdel: - - -$ userdel -r alice - -The flag deletes the user’s home directory. -Accounts can be modified using usermod. Unix -groups can be managed using groupadd, -groupmod and groupdel. - -
- - - - -
File systems - -You can define file systems using the - configuration option. For instance, the -following definition causes NixOS to mount the Ext4 file system on -device /dev/disk/by-label/data onto the mount -point /data: - - -fileSystems."/data" = - { device = "/dev/disk/by-label/data"; - fsType = "ext4"; - }; - - -Mount points are created automatically if they don’t already exist. -For , it’s best to use the topology-independent -device aliases in /dev/disk/by-label and -/dev/disk/by-uuid, as these don’t change if the -topology changes (e.g. if a disk is moved to another IDE -controller). - -You can usually omit the file system type -(), since mount can usually -detect the type and load the necessary kernel module automatically. -However, if the file system is needed at early boot (in the initial -ramdisk) and is not ext2, ext3 -or ext4, then it’s best to specify - to ensure that the kernel module is -available. - -
LUKS-encrypted file systems - -NixOS supports file systems that are encrypted using -LUKS (Linux Unified Key Setup). For example, -here is how you create an encrypted Ext4 file system on the device -/dev/sda2: - - -$ cryptsetup luksFormat /dev/sda2 - -WARNING! -======== -This will overwrite data on /dev/sda2 irrevocably. - -Are you sure? (Type uppercase yes): YES -Enter LUKS passphrase: *** -Verify passphrase: *** - -$ cryptsetup luksOpen /dev/sda2 crypted -Enter passphrase for /dev/sda2: *** - -$ mkfs.ext4 /dev/mapper/crypted - - -To ensure that this file system is automatically mounted at boot time -as /, add the following to -configuration.nix: - - -boot.initrd.luks.devices = [ { device = "/dev/sda2"; name = "crypted"; } ]; -fileSystems."/".device = "/dev/mapper/crypted"; - - - - -
- -
- - - - -
X Window System - -The X Window System (X11) provides the basis of NixOS’ graphical -user interface. It can be enabled as follows: - -services.xserver.enable = true; - -The X server will automatically detect and use the appropriate video -driver from a set of X.org drivers (such as vesa -and intel). You can also specify a driver -manually, e.g. - -services.xserver.videoDrivers = [ "r128" ]; - -to enable X.org’s xf86-video-r128 driver. - -You also need to enable at least one desktop or window manager. -Otherwise, you can only log into a plain undecorated -xterm window. Thus you should pick one or more of -the following lines: - -services.xserver.desktopManager.kde4.enable = true; -services.xserver.desktopManager.xfce.enable = true; -services.xserver.windowManager.xmonad.enable = true; -services.xserver.windowManager.twm.enable = true; -services.xserver.windowManager.icewm.enable = true; - - - -NixOS’s default display manager (the -program that provides a graphical login prompt and manages the X -server) is SLiM. You can select KDE’s kdm instead: - -services.xserver.displayManager.kdm.enable = true; - - - -The X server is started automatically at boot time. If you -don’t want this to happen, you can set: - -services.xserver.autorun = false; - -The X server can then be started manually: - -$ systemctl start display-manager.service - - - - -
NVIDIA graphics cards - -NVIDIA provides a proprietary driver for its graphics cards that -has better 3D performance than the X.org drivers. It is not enabled -by default because it’s not free software. You can enable it as follows: - -services.xserver.videoDrivers = [ "nvidia" ]; - -You may need to reboot after enabling this driver to prevent a clash -with other kernel modules. - -On 64-bit systems, if you want full acceleration for 32-bit -programs such as Wine, you should also set the following: - -services.xserver.driSupport32Bit = true; - - - -
- - -
Touchpads - -Support for Synaptics touchpads (found in many laptops such as -the Dell Latitude series) can be enabled as follows: - -services.xserver.synaptics.enable = true; - -The driver has many options (see ). For -instance, the following enables two-finger scrolling: - -services.xserver.synaptics.twoFingerScroll = true; - - - -
- - -
- - - - -
Networking - -
NetworkManager - -To facilitate network configuration, some desktop environments -use NetworkManager. You can enable NetworkManager by setting: - - -services.networkmanager.enable = true; - - -Some desktop managers (e.g., GNOME) enable NetworkManager -automatically for you. - -All users that should have permission to change network settings -must belong to the networkmanager group. - -services.networkmanager and -services.wireless can not be enabled at the same time: -you can still connect to the wireless networks using -NetworkManager. - -
- -
Secure shell access - -Secure shell (SSH) access to your machine can be enabled by -setting: - - -services.openssh.enable = true; - - -By default, root logins using a password are disallowed. They can be -disabled entirely by setting -services.openssh.permitRootLogin to -"no". - -You can declaratively specify authorised RSA/DSA public keys for -a user as follows: - - - -users.extraUsers.alice.openssh.authorizedKeys.keys = - [ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ]; - - - - -
- - -
IPv4 configuration - -By default, NixOS uses DHCP (specifically, -dhcpcd) to automatically configure network -interfaces. However, you can configure an interface manually as -follows: - - -networking.interfaces.eth0 = { ipAddress = "192.168.1.2"; prefixLength = 24; }; - - -(The network prefix can also be specified using the option -subnetMask, -e.g. "255.255.255.0", but this is deprecated.) -Typically you’ll also want to set a default gateway and set of name -servers: - - -networking.defaultGateway = "192.168.1.1"; -networking.nameservers = [ "8.8.8.8" ]; - - - - -Statically configured interfaces are set up by the systemd -service -interface-name-cfg.service. -The default gateway and name server configuration is performed by -network-setup.service. - -The host name is set using : - - -networking.hostName = "cartman"; - - -The default host name is nixos. Set it to the -empty string ("") to allow the DHCP server to -provide the host name. - -
- - -
IPv6 configuration - -IPv6 is enabled by default. Stateless address autoconfiguration -is used to automatically assign IPv6 addresses to all interfaces. You -can disable IPv6 support globally by setting: - - -networking.enableIPv6 = false; - - - - -
- - -
Firewall - -NixOS has a simple stateful firewall that blocks incoming -connections and other unexpected packets. The firewall applies to -both IPv4 and IPv6 traffic. It is enabled by default. It can be -disabled as follows: - - -networking.firewall.enable = false; - - -If the firewall is enabled, you can open specific TCP ports to the -outside world: - - -networking.firewall.allowedTCPPorts = [ 80 443 ]; - - -Note that TCP port 22 (ssh) is opened automatically if the SSH daemon -is enabled (). UDP -ports can be opened through -. Also of -interest is - - -networking.firewall.allowPing = true; - - -to allow the machine to respond to ping requests. (ICMPv6 pings are -always allowed.) - -
- - -
Wireless networks - -For a desktop installation using NetworkManager (e.g., GNOME), -you just have to make sure the user is in the -networkmanager group and you can skip the rest of this -section on wireless networks. - - -NixOS will start wpa_supplicant for you if you enable this setting: - - -networking.wireless.enable = true; - - -NixOS currently does not generate wpa_supplicant's -configuration file, /etc/wpa_supplicant.conf. You should edit this file -yourself to define wireless networks, WPA keys and so on (see -wpa_supplicant.conf(5)). - - - -If you are using WPA2 the wpa_passphrase tool might be useful -to generate the wpa_supplicant.conf. - - -$ wpa_passphrase ESSID PSK > /etc/wpa_supplicant.conf - -After you have edited the wpa_supplicant.conf, -you need to restart the wpa_supplicant service. - - -$ systemctl restart wpa_supplicant.service - - - -
- - -
Ad-hoc configuration - -You can use to specify -shell commands to be run at the end of -network-setup.service. This is useful for doing -network configuration not covered by the existing NixOS modules. For -instance, to statically configure an IPv6 address: - - -networking.localCommands = - '' - ip -6 addr add 2001:610:685:1::1/64 dev eth0 - ''; - - - - -
- - - - - -
- - - - -
Linux kernel - -You can override the Linux kernel and associated packages using -the option . For instance, this -selects the Linux 3.10 kernel: - -boot.kernelPackages = pkgs.linuxPackages_3_10; - -Note that this not only replaces the kernel, but also packages that -are specific to the kernel version, such as the NVIDIA video drivers. -This ensures that driver packages are consistent with the -kernel. - -The default Linux kernel configuration should be fine for most users. You can see the configuration of your current kernel with the following command: - -cat /proc/config.gz | gunzip - -If you want to change the kernel configuration, you can use the - feature (see ). For instance, to enable -support for the kernel debugger KGDB: - - -nixpkgs.config.packageOverrides = pkgs: - { linux_3_4 = pkgs.linux_3_4.override { - extraConfig = - '' - KGDB y - ''; - }; - }; - - -extraConfig takes a list of Linux kernel -configuration options, one per line. The name of the option should -not include the prefix CONFIG_. The option value -is typically y, n or -m (to build something as a kernel module). - -Kernel modules for hardware devices are generally loaded -automatically by udev. You can force a module to -be loaded via , e.g. - -boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ]; - -If the module is required early during the boot (e.g. to mount the -root file system), you can use -: - -boot.initrd.extraKernelModules = [ "cifs" ]; - -This causes the specified modules and their dependencies to be added -to the initial ramdark. - -Kernel runtime parameters can be set through -, e.g. - -boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120; - -sets the kernel’s TCP keepalive time to 120 seconds. To see the -available parameters, run sysctl -a. - -
- - - - - -
diff --git a/nixos/doc/manual/configuration/abstractions.xml b/nixos/doc/manual/configuration/abstractions.xml new file mode 100644 index 00000000000..cbd54bca62f --- /dev/null +++ b/nixos/doc/manual/configuration/abstractions.xml @@ -0,0 +1,166 @@ +
+ +Abstractions + +If you find yourself repeating yourself over and over, it’s time +to abstract. Take, for instance, this Apache HTTP Server configuration: + + +{ + services.httpd.virtualHosts = + [ { hostName = "example.org"; + documentRoot = "/webroot"; + adminAddr = "alice@example.org"; + enableUserDir = true; + } + { hostName = "example.org"; + documentRoot = "/webroot"; + adminAddr = "alice@example.org"; + enableUserDir = true; + enableSSL = true; + sslServerCert = "/root/ssl-example-org.crt"; + sslServerKey = "/root/ssl-example-org.key"; + } + ]; +} + + +It defines two virtual hosts with nearly identical configuration; the +only difference is that the second one has SSL enabled. To prevent +this duplication, we can use a let: + + +let + exampleOrgCommon = + { hostName = "example.org"; + documentRoot = "/webroot"; + adminAddr = "alice@example.org"; + enableUserDir = true; + }; +in +{ + services.httpd.virtualHosts = + [ exampleOrgCommon + (exampleOrgCommon // { + enableSSL = true; + sslServerCert = "/root/ssl-example-org.crt"; + sslServerKey = "/root/ssl-example-org.key"; + }) + ]; +} + + +The let exampleOrgCommon = +... defines a variable named +exampleOrgCommon. The // +operator merges two attribute sets, so the configuration of the second +virtual host is the set exampleOrgCommon extended +with the SSL options. + +You can write a let wherever an expression is +allowed. Thus, you also could have written: + + +{ + services.httpd.virtualHosts = + let exampleOrgCommon = ...; in + [ exampleOrgCommon + (exampleOrgCommon // { ... }) + ]; +} + + +but not { let exampleOrgCommon = +...; in ...; +} since attributes (as opposed to attribute values) are not +expressions. + +Functions provide another method of +abstraction. For instance, suppose that we want to generate lots of +different virtual hosts, all with identical configuration except for +the host name. This can be done as follows: + + +{ + services.httpd.virtualHosts = + let + makeVirtualHost = name: + { hostName = name; + documentRoot = "/webroot"; + adminAddr = "alice@example.org"; + }; + in + [ (makeVirtualHost "example.org") + (makeVirtualHost "example.com") + (makeVirtualHost "example.gov") + (makeVirtualHost "example.nl") + ]; +} + + +Here, makeVirtualHost is a function that takes a +single argument name and returns the configuration +for a virtual host. That function is then called for several names to +produce the list of virtual host configurations. + +We can further improve on this by using the function +map, which applies another function to every +element in a list: + + +{ + services.httpd.virtualHosts = + let + makeVirtualHost = ...; + in map makeVirtualHost + [ "example.org" "example.com" "example.gov" "example.nl" ]; +} + + +(The function map is called a +higher-order function because it takes another +function as an argument.) + +What if you need more than one argument, for instance, if we +want to use a different documentRoot for each +virtual host? Then we can make makeVirtualHost a +function that takes a set as its argument, like this: + + +{ + services.httpd.virtualHosts = + let + makeVirtualHost = { name, root }: + { hostName = name; + documentRoot = root; + adminAddr = "alice@example.org"; + }; + in map makeVirtualHost + [ { name = "example.org"; root = "/sites/example.org"; } + { name = "example.com"; root = "/sites/example.com"; } + { name = "example.gov"; root = "/sites/example.gov"; } + { name = "example.nl"; root = "/sites/example.nl"; } + ]; +} + + +But in this case (where every root is a subdirectory of +/sites named after the virtual host), it would +have been shorter to define makeVirtualHost as + +makeVirtualHost = name: + { hostName = name; + documentRoot = "/sites/${name}"; + adminAddr = "alice@example.org"; + }; + + +Here, the construct +${...} allows the result +of an expression to be spliced into a string. + +
diff --git a/nixos/doc/manual/configuration/ad-hoc-network-config.xml b/nixos/doc/manual/configuration/ad-hoc-network-config.xml new file mode 100644 index 00000000000..26a572ba1fb --- /dev/null +++ b/nixos/doc/manual/configuration/ad-hoc-network-config.xml @@ -0,0 +1,24 @@ +
+ +Ad-Hoc Configuration + +You can use to specify +shell commands to be run at the end of +network-setup.service. This is useful for doing +network configuration not covered by the existing NixOS modules. For +instance, to statically configure an IPv6 address: + + +networking.localCommands = + '' + ip -6 addr add 2001:610:685:1::1/64 dev eth0 + ''; + + + + +
diff --git a/nixos/doc/manual/configuration/ad-hoc-packages.xml b/nixos/doc/manual/configuration/ad-hoc-packages.xml new file mode 100644 index 00000000000..e237e20c4ff --- /dev/null +++ b/nixos/doc/manual/configuration/ad-hoc-packages.xml @@ -0,0 +1,63 @@ +
+ +Ad-Hoc Package Management + +With the command nix-env, you can install and +uninstall packages from the command line. For instance, to install +Mozilla Thunderbird: + + +$ nix-env -iA nixos.pkgs.thunderbird + +If you invoke this as root, the package is installed in the Nix +profile /nix/var/nix/profiles/default and visible +to all users of the system; otherwise, the package ends up in +/nix/var/nix/profiles/per-user/username/profile +and is not visible to other users. The flag +specifies the package by its attribute name; without it, the package +is installed by matching against its package name +(e.g. thunderbird). The latter is slower because +it requires matching against all available Nix packages, and is +ambiguous if there are multiple matching packages. + +Packages come from the NixOS channel. You typically upgrade a +package by updating to the latest version of the NixOS channel: + +$ nix-channel --update nixos + +and then running nix-env -i again. Other packages +in the profile are not affected; this is the +crucial difference with the declarative style of package management, +where running nixos-rebuild switch causes all +packages to be updated to their current versions in the NixOS channel. +You can however upgrade all packages for which there is a newer +version by doing: + +$ nix-env -u '*' + + + +A package can be uninstalled using the +flag: + +$ nix-env -e thunderbird + + + +Finally, you can roll back an undesirable +nix-env action: + +$ nix-env --rollback + + + +nix-env has many more flags. For details, +see the +nix-env1 +manpage or the Nix manual. + +
diff --git a/nixos/doc/manual/configuration/adding-custom-packages.xml b/nixos/doc/manual/configuration/adding-custom-packages.xml new file mode 100644 index 00000000000..c1789fcbc04 --- /dev/null +++ b/nixos/doc/manual/configuration/adding-custom-packages.xml @@ -0,0 +1,84 @@ +
+ +Adding Custom Packages + +It’s possible that a package you need is not available in NixOS. +In that case, you can do two things. First, you can clone the Nixpkgs +repository, add the package to your clone, and (optionally) submit a +patch or pull request to have it accepted into the main Nixpkgs +repository. This is described in detail in the Nixpkgs manual. +In short, you clone Nixpkgs: + + +$ git clone git://github.com/NixOS/nixpkgs.git +$ cd nixpkgs + + +Then you write and test the package as described in the Nixpkgs +manual. Finally, you add it to +environment.systemPackages, e.g. + + +environment.systemPackages = [ pkgs.my-package ]; + + +and you run nixos-rebuild, specifying your own +Nixpkgs tree: + + +$ nixos-rebuild switch -I nixpkgs=/path/to/my/nixpkgs + + + +The second possibility is to add the package outside of the +Nixpkgs tree. For instance, here is how you specify a build of the +GNU Hello +package directly in configuration.nix: + + +environment.systemPackages = + let + my-hello = with pkgs; stdenv.mkDerivation rec { + name = "hello-2.8"; + src = fetchurl { + url = "mirror://gnu/hello/${name}.tar.gz"; + sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"; + }; + }; + in + [ my-hello ]; + + +Of course, you can also move the definition of +my-hello into a separate Nix expression, e.g. + +environment.systemPackages = [ (import ./my-hello.nix) ]; + +where my-hello.nix contains: + +with import <nixpkgs> {}; # bring all of Nixpkgs into scope + +stdenv.mkDerivation rec { + name = "hello-2.8"; + src = fetchurl { + url = "mirror://gnu/hello/${name}.tar.gz"; + sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"; + }; +} + + +This allows testing the package easily: + +$ nix-build my-hello.nix +$ ./result/bin/hello +Hello, world! + + + + +
diff --git a/nixos/doc/manual/configuration/config-file.xml b/nixos/doc/manual/configuration/config-file.xml new file mode 100644 index 00000000000..2a58ff25941 --- /dev/null +++ b/nixos/doc/manual/configuration/config-file.xml @@ -0,0 +1,213 @@ +
+ +NixOS Configuration File + +The NixOS configuration file generally looks like this: + + +{ config, pkgs, ... }: + +{ option definitions +} + + +The first line ({ config, pkgs, ... }:) denotes +that this is actually a function that takes at least the two arguments + config and pkgs. (These are +explained later.) The function returns a set of +option definitions ({ ... }). These definitions have the +form name = +value, where +name is the name of an option and +value is its value. For example, + + +{ config, pkgs, ... }: + +{ services.httpd.enable = true; + services.httpd.adminAddr = "alice@example.org"; + services.httpd.documentRoot = "/webroot"; +} + + +defines a configuration with three option definitions that together +enable the Apache HTTP Server with /webroot as +the document root. + +Sets can be nested, and in fact dots in option names are +shorthand for defining a set containing another set. For instance, + defines a set named +services that contains a set named +httpd, which in turn contains an option definition +named enable with value true. +This means that the example above can also be written as: + + +{ config, pkgs, ... }: + +{ services = { + httpd = { + enable = true; + adminAddr = "alice@example.org"; + documentRoot = "/webroot"; + }; + }; +} + + +which may be more convenient if you have lots of option definitions +that share the same prefix (such as +services.httpd). + +NixOS checks your option definitions for correctness. For +instance, if you try to define an option that doesn’t exist (that is, +doesn’t have a corresponding option declaration), +nixos-rebuild will give an error like: + +The option `services.httpd.enabl' defined in `/etc/nixos/configuration.nix' does not exist. + +Likewise, values in option definitions must have a correct type. For +instance, must be a Boolean +(true or false). Trying to give +it a value of another type, such as a string, will cause an error: + +The option value `services.httpd.enable' in `/etc/nixos/configuration.nix' is not a boolean. + + + + +Options have various types of values. The most important are: + + + + Strings + + Strings are enclosed in double quotes, e.g. + + +networking.hostName = "dexter"; + + + Special characters can be escaped by prefixing them with a + backslash (e.g. \"). + + Multi-line strings can be enclosed in double + single quotes, e.g. + + +networking.extraHosts = + '' + 127.0.0.2 other-localhost + 10.0.0.1 server + ''; + + + The main difference is that preceding whitespace is + automatically stripped from each line, and that characters like + " and \ are not special + (making it more convenient for including things like shell + code). + + + + + Booleans + + These can be true or + false, e.g. + + +networking.firewall.enable = true; +networking.firewall.allowPing = false; + + + + + + + Integers + + For example, + + +boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 60; + + + (Note that here the attribute name + net.ipv4.tcp_keepalive_time is enclosed in + quotes to prevent it from being interpreted as a set named + net containing a set named + ipv4, and so on. This is because it’s not a + NixOS option but the literal name of a Linux kernel + setting.) + + + + + Sets + + Sets were introduced above. They are name/value pairs + enclosed in braces, as in the option definition + + +fileSystems."/boot" = + { device = "/dev/sda1"; + fsType = "ext4"; + options = "rw,data=ordered,relatime"; + }; + + + + + + + Lists + + The important thing to note about lists is that list + elements are separated by whitespace, like this: + + +boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ]; + + + List elements can be any other type, e.g. sets: + + +swapDevices = [ { device = "/dev/disk/by-label/swap"; } ]; + + + + + + + Packages + + Usually, the packages you need are already part of the Nix + Packages collection, which is a set that can be accessed through + the function argument pkgs. Typical uses: + + +environment.systemPackages = + [ pkgs.thunderbird + pkgs.emacs + ]; + +postgresql.package = pkgs.postgresql90; + + + The latter option definition changes the default PostgreSQL + package used by NixOS’s PostgreSQL service to 9.0. For more + information on packages, including how to add new ones, see + . + + + + + + + +
diff --git a/nixos/doc/manual/configuration/config-syntax.xml b/nixos/doc/manual/configuration/config-syntax.xml new file mode 100644 index 00000000000..87847f8451e --- /dev/null +++ b/nixos/doc/manual/configuration/config-syntax.xml @@ -0,0 +1,27 @@ + + +Configuration Syntax + +The NixOS configuration file +/etc/nixos/configuration.nix is actually a +Nix expression, which is the Nix package +manager’s purely functional language for describing how to build +packages and configurations. This means you have all the expressive +power of that language at your disposal, including the ability to +abstract over common patterns, which is very useful when managing +complex systems. The syntax and semantics of the Nix language are +fully described in the Nix +manual, but here we give a short overview of the most important +constructs useful in NixOS configuration files. + + + + + + + diff --git a/nixos/doc/manual/configuration/configuration.xml b/nixos/doc/manual/configuration/configuration.xml new file mode 100644 index 00000000000..8fde0dc7e61 --- /dev/null +++ b/nixos/doc/manual/configuration/configuration.xml @@ -0,0 +1,32 @@ + + +Configuration + + + +This chapter describes how to configure various aspects of a +NixOS machine through the configuration file +/etc/nixos/configuration.nix. As described in +, changes to this file only take +effect after you run nixos-rebuild. + + + + + + + + + + + + + + + + + diff --git a/nixos/doc/manual/configuration/customizing-packages.xml b/nixos/doc/manual/configuration/customizing-packages.xml new file mode 100644 index 00000000000..6ee7a95dc6f --- /dev/null +++ b/nixos/doc/manual/configuration/customizing-packages.xml @@ -0,0 +1,92 @@ +
+ +Customising Packages + +Some packages in Nixpkgs have options to enable or disable +optional functionality or change other aspects of the package. For +instance, the Firefox wrapper package (which provides Firefox with a +set of plugins such as the Adobe Flash player) has an option to enable +the Google Talk plugin. It can be set in +configuration.nix as follows: + + +nixpkgs.config.firefox.enableGoogleTalkPlugin = true; + + + +Unfortunately, Nixpkgs currently lacks a way to query +available configuration options. + +Apart from high-level options, it’s possible to tweak a package +in almost arbitrary ways, such as changing or disabling dependencies +of a package. For instance, the Emacs package in Nixpkgs by default +has a dependency on GTK+ 2. If you want to build it against GTK+ 3, +you can specify that as follows: + + +environment.systemPackages = [ (pkgs.emacs.override { gtk = pkgs.gtk3; }) ]; + + +The function override performs the call to the Nix +function that produces Emacs, with the original arguments amended by +the set of arguments specified by you. So here the function argument +gtk gets the value pkgs.gtk3, +causing Emacs to depend on GTK+ 3. (The parentheses are necessary +because in Nix, function application binds more weakly than list +construction, so without them, +environment.systemPackages would be a list with two +elements.) + +Even greater customisation is possible using the function +overrideDerivation. While the +override mechanism above overrides the arguments of +a package function, overrideDerivation allows +changing the result of the function. This +permits changing any aspect of the package, such as the source code. +For instance, if you want to override the source code of Emacs, you +can say: + + +environment.systemPackages = + [ (pkgs.lib.overrideDerivation pkgs.emacs (attrs: { + name = "emacs-25.0-pre"; + src = /path/to/my/emacs/tree; + })) + ]; + + +Here, overrideDerivation takes the Nix derivation +specified by pkgs.emacs and produces a new +derivation in which the original’s name and +src attribute have been replaced by the given +values. The original attributes are accessible via +attrs. + +The overrides shown above are not global. They do not affect +the original package; other packages in Nixpkgs continue to depend on +the original rather than the customised package. This means that if +another package in your system depends on the original package, you +end up with two instances of the package. If you want to have +everything depend on your customised instance, you can apply a +global override as follows: + + +nixpkgs.config.packageOverrides = pkgs: + { emacs = pkgs.emacs.override { gtk = pkgs.gtk3; }; + }; + + +The effect of this definition is essentially equivalent to modifying +the emacs attribute in the Nixpkgs source tree. +Any package in Nixpkgs that depends on emacs will +be passed your customised instance. (However, the value +pkgs.emacs in +nixpkgs.config.packageOverrides refers to the +original rather than overridden instance, to prevent an infinite +recursion.) + +
diff --git a/nixos/doc/manual/configuration/declarative-packages.xml b/nixos/doc/manual/configuration/declarative-packages.xml new file mode 100644 index 00000000000..6de38b452e2 --- /dev/null +++ b/nixos/doc/manual/configuration/declarative-packages.xml @@ -0,0 +1,43 @@ +
+ +Declarative Package Management + +With declarative package management, you specify which packages +you want on your system by setting the option +. For instance, adding the +following line to configuration.nix enables the +Mozilla Thunderbird email application: + + +environment.systemPackages = [ pkgs.thunderbird ]; + + +The effect of this specification is that the Thunderbird package from +Nixpkgs will be built or downloaded as part of the system when you run +nixos-rebuild switch. + +You can get a list of the available packages as follows: + +$ nix-env -qaP '*' --description +nixos.pkgs.firefox firefox-23.0 Mozilla Firefox - the browser, reloaded +... + + +The first column in the output is the attribute +name, such as +nixos.pkgs.thunderbird. (The +nixos prefix allows distinguishing between +different channels that you might have.) + +To “uninstall” a package, simply remove it from + and run +nixos-rebuild switch. + + + + +
diff --git a/nixos/doc/manual/configuration/file-systems.xml b/nixos/doc/manual/configuration/file-systems.xml new file mode 100644 index 00000000000..d1b324af3f1 --- /dev/null +++ b/nixos/doc/manual/configuration/file-systems.xml @@ -0,0 +1,40 @@ + + +File Systems + +You can define file systems using the + configuration option. For instance, the +following definition causes NixOS to mount the Ext4 file system on +device /dev/disk/by-label/data onto the mount +point /data: + + +fileSystems."/data" = + { device = "/dev/disk/by-label/data"; + fsType = "ext4"; + }; + + +Mount points are created automatically if they don’t already exist. +For , it’s best to use the topology-independent +device aliases in /dev/disk/by-label and +/dev/disk/by-uuid, as these don’t change if the +topology changes (e.g. if a disk is moved to another IDE +controller). + +You can usually omit the file system type +(), since mount can usually +detect the type and load the necessary kernel module automatically. +However, if the file system is needed at early boot (in the initial +ramdisk) and is not ext2, ext3 +or ext4, then it’s best to specify + to ensure that the kernel module is +available. + + + + diff --git a/nixos/doc/manual/configuration/firewall.xml b/nixos/doc/manual/configuration/firewall.xml new file mode 100644 index 00000000000..87406c28c2f --- /dev/null +++ b/nixos/doc/manual/configuration/firewall.xml @@ -0,0 +1,38 @@ +
+ +Firewall + +NixOS has a simple stateful firewall that blocks incoming +connections and other unexpected packets. The firewall applies to +both IPv4 and IPv6 traffic. It is enabled by default. It can be +disabled as follows: + + +networking.firewall.enable = false; + + +If the firewall is enabled, you can open specific TCP ports to the +outside world: + + +networking.firewall.allowedTCPPorts = [ 80 443 ]; + + +Note that TCP port 22 (ssh) is opened automatically if the SSH daemon +is enabled (). UDP +ports can be opened through +. Also of +interest is + + +networking.firewall.allowPing = true; + + +to allow the machine to respond to ping requests. (ICMPv6 pings are +always allowed.) + +
diff --git a/nixos/doc/manual/configuration/ipv4-config.xml b/nixos/doc/manual/configuration/ipv4-config.xml new file mode 100644 index 00000000000..053501b1736 --- /dev/null +++ b/nixos/doc/manual/configuration/ipv4-config.xml @@ -0,0 +1,44 @@ +
+ +IPv4 Configuration + +By default, NixOS uses DHCP (specifically, +dhcpcd) to automatically configure network +interfaces. However, you can configure an interface manually as +follows: + + +networking.interfaces.eth0.ip4 = [ { address = "192.168.1.2"; prefixLength = 24; } ]; + + +Typically you’ll also want to set a default gateway and set of name +servers: + + +networking.defaultGateway = "192.168.1.1"; +networking.nameservers = [ "8.8.8.8" ]; + + + + +Statically configured interfaces are set up by the systemd +service +interface-name-cfg.service. +The default gateway and name server configuration is performed by +network-setup.service. + +The host name is set using : + + +networking.hostName = "cartman"; + + +The default host name is nixos. Set it to the +empty string ("") to allow the DHCP server to +provide the host name. + +
diff --git a/nixos/doc/manual/configuration/ipv6-config.xml b/nixos/doc/manual/configuration/ipv6-config.xml new file mode 100644 index 00000000000..592bf20e545 --- /dev/null +++ b/nixos/doc/manual/configuration/ipv6-config.xml @@ -0,0 +1,19 @@ +
+ +IPv6 Configuration + +IPv6 is enabled by default. Stateless address autoconfiguration +is used to automatically assign IPv6 addresses to all interfaces. You +can disable IPv6 support globally by setting: + + +networking.enableIPv6 = false; + + + + +
diff --git a/nixos/doc/manual/configuration/linux-kernel.xml b/nixos/doc/manual/configuration/linux-kernel.xml new file mode 100644 index 00000000000..8fe2f5255df --- /dev/null +++ b/nixos/doc/manual/configuration/linux-kernel.xml @@ -0,0 +1,69 @@ + + +Linux Kernel + +You can override the Linux kernel and associated packages using +the option . For instance, this +selects the Linux 3.10 kernel: + +boot.kernelPackages = pkgs.linuxPackages_3_10; + +Note that this not only replaces the kernel, but also packages that +are specific to the kernel version, such as the NVIDIA video drivers. +This ensures that driver packages are consistent with the +kernel. + +The default Linux kernel configuration should be fine for most users. You can see the configuration of your current kernel with the following command: + +cat /proc/config.gz | gunzip + +If you want to change the kernel configuration, you can use the + feature (see ). For instance, to enable +support for the kernel debugger KGDB: + + +nixpkgs.config.packageOverrides = pkgs: + { linux_3_4 = pkgs.linux_3_4.override { + extraConfig = + '' + KGDB y + ''; + }; + }; + + +extraConfig takes a list of Linux kernel +configuration options, one per line. The name of the option should +not include the prefix CONFIG_. The option value +is typically y, n or +m (to build something as a kernel module). + +Kernel modules for hardware devices are generally loaded +automatically by udev. You can force a module to +be loaded via , e.g. + +boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ]; + +If the module is required early during the boot (e.g. to mount the +root file system), you can use +: + +boot.initrd.extraKernelModules = [ "cifs" ]; + +This causes the specified modules and their dependencies to be added +to the initial ramdark. + +Kernel runtime parameters can be set through +, e.g. + +boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120; + +sets the kernel’s TCP keepalive time to 120 seconds. To see the +available parameters, run sysctl -a. + + diff --git a/nixos/doc/manual/configuration/luks-file-systems.xml b/nixos/doc/manual/configuration/luks-file-systems.xml new file mode 100644 index 00000000000..45475dbcd44 --- /dev/null +++ b/nixos/doc/manual/configuration/luks-file-systems.xml @@ -0,0 +1,42 @@ +
+ +LUKS-Encrypted File Systems + +NixOS supports file systems that are encrypted using +LUKS (Linux Unified Key Setup). For example, +here is how you create an encrypted Ext4 file system on the device +/dev/sda2: + + +$ cryptsetup luksFormat /dev/sda2 + +WARNING! +======== +This will overwrite data on /dev/sda2 irrevocably. + +Are you sure? (Type uppercase yes): YES +Enter LUKS passphrase: *** +Verify passphrase: *** + +$ cryptsetup luksOpen /dev/sda2 crypted +Enter passphrase for /dev/sda2: *** + +$ mkfs.ext4 /dev/mapper/crypted + + +To ensure that this file system is automatically mounted at boot time +as /, add the following to +configuration.nix: + + +boot.initrd.luks.devices = [ { device = "/dev/sda2"; name = "crypted"; } ]; +fileSystems."/".device = "/dev/mapper/crypted"; + + + + +
diff --git a/nixos/doc/manual/configuration/modularity.xml b/nixos/doc/manual/configuration/modularity.xml new file mode 100644 index 00000000000..d95091bd162 --- /dev/null +++ b/nixos/doc/manual/configuration/modularity.xml @@ -0,0 +1,143 @@ +
+ +Modularity + +The NixOS configuration mechanism is modular. If your +configuration.nix becomes too big, you can split +it into multiple files. Likewise, if you have multiple NixOS +configurations (e.g. for different computers) with some commonality, +you can move the common configuration into a shared file. + +Modules have exactly the same syntax as +configuration.nix. In fact, +configuration.nix is itself a module. You can +use other modules by including them from +configuration.nix, e.g.: + + +{ config, pkgs, ... }: + +{ imports = [ ./vpn.nix ./kde.nix ]; + services.httpd.enable = true; + environment.systemPackages = [ pkgs.emacs ]; + ... +} + + +Here, we include two modules from the same directory, +vpn.nix and kde.nix. The +latter might look like this: + + +{ config, pkgs, ... }: + +{ services.xserver.enable = true; + services.xserver.displayManager.kdm.enable = true; + services.xserver.desktopManager.kde4.enable = true; + environment.systemPackages = [ pkgs.kde4.kscreensaver ]; +} + + +Note that both configuration.nix and +kde.nix define the option +. When multiple modules +define an option, NixOS will try to merge the +definitions. In the case of +, that’s easy: the lists of +packages can simply be concatenated. The value in +configuration.nix is merged last, so for +list-type options, it will appear at the end of the merged list. If +you want it to appear first, you can use mkBefore: + + +boot.kernelModules = mkBefore [ "kvm-intel" ]; + + +This causes the kvm-intel kernel module to be +loaded before any other kernel modules. + +For other types of options, a merge may not be possible. For +instance, if two modules define +, +nixos-rebuild will give an error: + + +The unique option `services.httpd.adminAddr' is defined multiple times, in `/etc/nixos/httpd.nix' and `/etc/nixos/configuration.nix'. + + +When that happens, it’s possible to force one definition take +precedence over the others: + + +services.httpd.adminAddr = pkgs.lib.mkForce "bob@example.org"; + + + + +When using multiple modules, you may need to access +configuration values defined in other modules. This is what the +config function argument is for: it contains the +complete, merged system configuration. That is, +config is the result of combining the +configurations returned by every moduleIf you’re +wondering how it’s possible that the (indirect) +result of a function is passed as an +input to that same function: that’s because Nix +is a “lazy” language — it only computes values when they are needed. +This works as long as no individual configuration value depends on +itself.. For example, here is a module that adds +some packages to only if + is set to +true somewhere else: + + +{ config, pkgs, ... }: + +{ environment.systemPackages = + if config.services.xserver.enable then + [ pkgs.firefox + pkgs.thunderbird + ] + else + [ ]; +} + + + + +With multiple modules, it may not be obvious what the final +value of a configuration option is. The command + allows you to find out: + + +$ nixos-option services.xserver.enable +true + +$ nixos-option boot.kernelModules +[ "tun" "ipv6" "loop" ... ] + + +Interactive exploration of the configuration is possible using +nix-repl, +a read-eval-print loop for Nix expressions. It’s not installed by +default; run nix-env -i nix-repl to get it. A +typical use: + + +$ nix-repl '<nixos>' + +nix-repl> config.networking.hostName +"mandark" + +nix-repl> map (x: x.hostName) config.services.httpd.virtualHosts +[ "example.org" "example.gov" ] + + + + +
diff --git a/nixos/doc/manual/configuration/network-manager.xml b/nixos/doc/manual/configuration/network-manager.xml new file mode 100644 index 00000000000..e65060021b4 --- /dev/null +++ b/nixos/doc/manual/configuration/network-manager.xml @@ -0,0 +1,27 @@ +
+ +NetworkManager + +To facilitate network configuration, some desktop environments +use NetworkManager. You can enable NetworkManager by setting: + + +services.networkmanager.enable = true; + + +Some desktop managers (e.g., GNOME) enable NetworkManager +automatically for you. + +All users that should have permission to change network settings +must belong to the networkmanager group. + +services.networkmanager and +services.wireless can not be enabled at the same time: +you can still connect to the wireless networks using +NetworkManager. + +
diff --git a/nixos/doc/manual/configuration/networking.xml b/nixos/doc/manual/configuration/networking.xml new file mode 100644 index 00000000000..5f08bc1f127 --- /dev/null +++ b/nixos/doc/manual/configuration/networking.xml @@ -0,0 +1,22 @@ + + +Networking + +This section describes how to configure networking components on +your NixOS machine. + + + + + + + + + + + + diff --git a/nixos/doc/manual/configuration/package-mgmt.xml b/nixos/doc/manual/configuration/package-mgmt.xml new file mode 100644 index 00000000000..73c1722da02 --- /dev/null +++ b/nixos/doc/manual/configuration/package-mgmt.xml @@ -0,0 +1,34 @@ + + +Package Management + +This section describes how to add additional packages to your +system. NixOS has two distinct styles of package management: + + + + Declarative, where you declare + what packages you want in your + configuration.nix. Every time you run + nixos-rebuild, NixOS will ensure that you get a + consistent set of binaries corresponding to your + specification. + + Ad hoc, where you install, + upgrade and uninstall packages via the nix-env + command. This style allows mixing packages from different Nixpkgs + versions. It’s the only choice for non-root + users. + + + + + + + + + diff --git a/nixos/doc/manual/configuration/ssh.xml b/nixos/doc/manual/configuration/ssh.xml new file mode 100644 index 00000000000..7c928baaf89 --- /dev/null +++ b/nixos/doc/manual/configuration/ssh.xml @@ -0,0 +1,32 @@ +
+ +Secure Shell Access + +Secure shell (SSH) access to your machine can be enabled by +setting: + + +services.openssh.enable = true; + + +By default, root logins using a password are disallowed. They can be +disabled entirely by setting +services.openssh.permitRootLogin to +"no". + +You can declaratively specify authorised RSA/DSA public keys for +a user as follows: + + + +users.extraUsers.alice.openssh.authorizedKeys.keys = + [ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ]; + + + + +
diff --git a/nixos/doc/manual/configuration/summary.xml b/nixos/doc/manual/configuration/summary.xml new file mode 100644 index 00000000000..9bb5e35e16b --- /dev/null +++ b/nixos/doc/manual/configuration/summary.xml @@ -0,0 +1,191 @@ +
+ +Syntax Summary + +Below is a summary of the most important syntactic constructs in +the Nix expression language. It’s not complete. In particular, there +are many other built-in functions. See the Nix +manual for the rest. + + + + + + + + Example + Description + + + + + + Basic values + + + "Hello world" + A string + + + "${pkgs.bash}/bin/sh" + A string containing an expression (expands to "/nix/store/hash-bash-version/bin/sh") + + + true, false + Booleans + + + 123 + An integer + + + ./foo.png + A path (relative to the containing Nix expression) + + + + Compound values + + + { x = 1; y = 2; } + An set with attributes names x and y + + + { foo.bar = 1; } + A nested set, equivalent to { foo = { bar = 1; }; } + + + rec { x = "bla"; y = x + "bar"; } + A recursive set, equivalent to { x = "foo"; y = "foobar"; } + + + [ "foo" "bar" ] + A list with two elements + + + + Operators + + + "foo" + "bar" + String concatenation + + + 1 + 2 + Integer addition + + + "foo" == "f" + "oo" + Equality test (evaluates to true) + + + "foo" != "bar" + Inequality test (evaluates to true) + + + !true + Boolean negation + + + { x = 1; y = 2; }.x + Attribute selection (evaluates to 1) + + + { x = 1; y = 2; }.z or 3 + Attribute selection with default (evaluates to 3) + + + { x = 1; y = 2; } // { z = 3; } + Merge two sets (attributes in the right-hand set taking precedence) + + + + Control structures + + + if 1 + 1 == 2 then "yes!" else "no!" + Conditional expression + + + assert 1 + 1 == 2; "yes!" + Assertion check (evaluates to "yes!") + + + let x = "foo"; y = "bar"; in x + y + Variable definition + + + with pkgs.lib; head [ 1 2 3 ] + Add all attributes from the given set to the scope + (evaluates to 1) + + + + Functions (lambdas) + + + x: x + 1 + A function that expects an integer and returns it increased by 1 + + + (x: x + 1) 100 + A function call (evaluates to 101) + + + let inc = x: x + 1; in inc (inc (inc 100)) + A function bound to a variable and subsequently called by name (evaluates to 103) + + + { x, y }: x + y + A function that expects a set with required attributes + x and y and concatenates + them + + + { x, y ? "bar" }: x + y + A function that expects a set with required attribute + x and optional y, using + "bar" as default value for + y + + + { x, y, ... }: x + y + A function that expects a set with required attributes + x and y and ignores any + other attributes + + + { x, y } @ args: x + y + A function that expects a set with required attributes + x and y, and binds the + whole set to args + + + + Built-in functions + + + import ./foo.nix + Load and return Nix expression in given file + + + map (x: x + x) [ 1 2 3 ] + Apply a function to every element of a list (evaluates to [ 2 4 6 ]) + + + + + + + +
diff --git a/nixos/doc/manual/configuration/user-mgmt.xml b/nixos/doc/manual/configuration/user-mgmt.xml new file mode 100644 index 00000000000..40dc687d03b --- /dev/null +++ b/nixos/doc/manual/configuration/user-mgmt.xml @@ -0,0 +1,95 @@ + + +User Management + +NixOS supports both declarative and imperative styles of user +management. In the declarative style, users are specified in +configuration.nix. For instance, the following +states that a user account named alice shall exist: + + +users.extraUsers.alice = + { createHome = true; + home = "/home/alice"; + description = "Alice Foobar"; + extraGroups = [ "wheel" "networkmanager" ]; + useDefaultShell = true; + openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... alice@foobar" ]; + }; + + +Note that alice is a member of the +wheel and networkmanager groups, +which allows her to use sudo to execute commands as +root and to configure the network, respectively. +Also note the SSH public key that allows remote logins with the +corresponding private key. Users created in this way do not have a +password by default, so they cannot log in via mechanisms that require +a password. However, you can use the passwd program +to set a password, which is retained across invocations of +nixos-rebuild. + +If you set users.mutableUsers to false, then the contents of /etc/passwd +and /etc/group will be congruent to your NixOS configuration. For instance, +if you remove a user from users.extraUsers and run nixos-rebuild, the user +account will cease to exist. Also, imperative commands for managing users +and groups, such as useradd, are no longer available. + +A user ID (uid) is assigned automatically. You can also specify +a uid manually by adding + + + uid = 1000; + + +to the user specification. + +Groups can be specified similarly. The following states that a +group named students shall exist: + + +users.extraGroups.students.gid = 1000; + + +As with users, the group ID (gid) is optional and will be assigned +automatically if it’s missing. + +Currently declarative user management is not perfect: +nixos-rebuild does not know how to realise certain +configuration changes. This includes removing a user or group, and +removing group membership from a user. + +In the imperative style, users and groups are managed by +commands such as useradd, +groupmod and so on. For instance, to create a user +account named alice: + + +$ useradd -m alice + +The flag causes the creation of a home directory +for the new user, which is generally what you want. The user does not +have an initial password and therefore cannot log in. A password can +be set using the passwd utility: + + +$ passwd alice +Enter new UNIX password: *** +Retype new UNIX password: *** + + +A user can be deleted using userdel: + + +$ userdel -r alice + +The flag deletes the user’s home directory. +Accounts can be modified using usermod. Unix +groups can be managed using groupadd, +groupmod and groupdel. + + diff --git a/nixos/doc/manual/configuration/wireless.xml b/nixos/doc/manual/configuration/wireless.xml new file mode 100644 index 00000000000..373a9168cc8 --- /dev/null +++ b/nixos/doc/manual/configuration/wireless.xml @@ -0,0 +1,41 @@ +
+ +Wireless Networks + +For a desktop installation using NetworkManager (e.g., GNOME), +you just have to make sure the user is in the +networkmanager group and you can skip the rest of this +section on wireless networks. + + +NixOS will start wpa_supplicant for you if you enable this setting: + + +networking.wireless.enable = true; + + +NixOS currently does not generate wpa_supplicant's +configuration file, /etc/wpa_supplicant.conf. You should edit this file +yourself to define wireless networks, WPA keys and so on (see +wpa_supplicant.conf(5)). + + + +If you are using WPA2 the wpa_passphrase tool might be useful +to generate the wpa_supplicant.conf. + + +$ wpa_passphrase ESSID PSK > /etc/wpa_supplicant.conf + +After you have edited the wpa_supplicant.conf, +you need to restart the wpa_supplicant service. + + +$ systemctl restart wpa_supplicant.service + + +
diff --git a/nixos/doc/manual/configuration/x-windows.xml b/nixos/doc/manual/configuration/x-windows.xml new file mode 100644 index 00000000000..bc58bb1f066 --- /dev/null +++ b/nixos/doc/manual/configuration/x-windows.xml @@ -0,0 +1,94 @@ + + +X Window System + +The X Window System (X11) provides the basis of NixOS’ graphical +user interface. It can be enabled as follows: + +services.xserver.enable = true; + +The X server will automatically detect and use the appropriate video +driver from a set of X.org drivers (such as vesa +and intel). You can also specify a driver +manually, e.g. + +services.xserver.videoDrivers = [ "r128" ]; + +to enable X.org’s xf86-video-r128 driver. + +You also need to enable at least one desktop or window manager. +Otherwise, you can only log into a plain undecorated +xterm window. Thus you should pick one or more of +the following lines: + +services.xserver.desktopManager.kde4.enable = true; +services.xserver.desktopManager.xfce.enable = true; +services.xserver.windowManager.xmonad.enable = true; +services.xserver.windowManager.twm.enable = true; +services.xserver.windowManager.icewm.enable = true; + + + +NixOS’s default display manager (the +program that provides a graphical login prompt and manages the X +server) is SLiM. You can select KDE’s kdm instead: + +services.xserver.displayManager.kdm.enable = true; + + + +The X server is started automatically at boot time. If you +don’t want this to happen, you can set: + +services.xserver.autorun = false; + +The X server can then be started manually: + +$ systemctl start display-manager.service + + + + +NVIDIA Graphics Cards + +NVIDIA provides a proprietary driver for its graphics cards that +has better 3D performance than the X.org drivers. It is not enabled +by default because it’s not free software. You can enable it as follows: + +services.xserver.videoDrivers = [ "nvidia" ]; + +You may need to reboot after enabling this driver to prevent a clash +with other kernel modules. + +On 64-bit systems, if you want full acceleration for 32-bit +programs such as Wine, you should also set the following: + +services.xserver.driSupport32Bit = true; + + + + + + +Touchpads + +Support for Synaptics touchpads (found in many laptops such as +the Dell Latitude series) can be enabled as follows: + +services.xserver.synaptics.enable = true; + +The driver has many options (see ). For +instance, the following enables two-finger scrolling: + +services.xserver.synaptics.twoFingerScroll = true; + + + + + + + diff --git a/nixos/doc/manual/containers.xml b/nixos/doc/manual/containers.xml deleted file mode 100644 index 2530d519521..00000000000 --- a/nixos/doc/manual/containers.xml +++ /dev/null @@ -1,242 +0,0 @@ - - -Containers - -NixOS allows you to easily run other NixOS instances as -containers. Containers are a light-weight -approach to virtualisation that runs software in the container at the -same speed as in the host system. NixOS containers share the Nix store -of the host, making container creation very efficient. - -Currently, NixOS containers are not perfectly isolated -from the host system. This means that a user with root access to the -container can do things that affect the host. So you should not give -container root access to untrusted users. - -NixOS containers can be created in two ways: imperatively, using -the command nixos-container, and declaratively, by -specifying them in your configuration.nix. The -declarative approach implies that containers get upgraded along with -your host system when you run nixos-rebuild, which -is often not what you want. By contrast, in the imperative approach, -containers are configured and updated independently from the host -system. - - -
Imperative container management - -We’ll cover imperative container management using -nixos-container first. You create a container with -identifier foo as follows: - - -$ nixos-container create foo - - -This creates the container’s root directory in -/var/lib/containers/foo and a small configuration -file in /etc/containers/foo.conf. It also builds -the container’s initial system configuration and stores it in -/nix/var/nix/profiles/per-container/foo/system. You -can modify the initial configuration of the container on the command -line. For instance, to create a container that has -sshd running, with the given public key for -root: - - -$ nixos-container create foo --config 'services.openssh.enable = true; \ - users.extraUsers.root.openssh.authorizedKeys.keys = ["ssh-dss AAAAB3N…"];' - - - - -Creating a container does not start it. To start the container, -run: - - -$ nixos-container start foo - - -This command will return as soon as the container has booted and has -reached multi-user.target. On the host, the -container runs within a systemd unit called -container@container-name.service. -Thus, if something went wrong, you can get status info using -systemctl: - - -$ systemctl status container@foo - - - - -If the container has started succesfully, you can log in as -root using the root-login operation: - - -$ nixos-container root-login foo -[root@foo:~]# - - -Note that only root on the host can do this (since there is no -authentication). You can also get a regular login prompt using the -login operation, which is available to all users on -the host: - - -$ nixos-container login foo -foo login: alice -Password: *** - - -With nixos-container run, you can execute arbitrary -commands in the container: - - -$ nixos-container run foo -- uname -a -Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux - - - - -There are several ways to change the configuration of the -container. First, on the host, you can edit -/var/lib/container/name/etc/nixos/configuration.nix, -and run - - -$ nixos-container update foo - - -This will build and activate the new configuration. You can also -specify a new configuration on the command line: - - -$ nixos-container update foo --config 'services.httpd.enable = true; \ - services.httpd.adminAddr = "foo@example.org";' - -$ curl http://$(nixos-container show-ip foo)/ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">… - - -However, note that this will overwrite the container’s -/etc/nixos/configuration.nix. - -Alternatively, you can change the configuration from within the -container itself by running nixos-rebuild switch -inside the container. Note that the container by default does not have -a copy of the NixOS channel, so you should run nix-channel ---update first. - -Containers can be stopped and started using -nixos-container stop and nixos-container -start, respectively, or by using -systemctl on the container’s service unit. To -destroy a container, including its file system, do - - -$ nixos-container destroy foo - - - - -
- - -
Declarative container specification - -You can also specify containers and their configuration in the -host’s configuration.nix. For example, the -following specifies that there shall be a container named -database running PostgreSQL: - - -containers.database = - { config = - { config, pkgs, ... }: - { services.postgresql.enable = true; - services.postgresql.package = pkgs.postgresql92; - }; - }; - - -If you run nixos-rebuild switch, the container will -be built and started. If the container was already running, it will be -updated in place, without rebooting. - -By default, declarative containers share the network namespace -of the host, meaning that they can listen on (privileged) -ports. However, they cannot change the network configuration. You can -give a container its own network as follows: - - -containers.database = - { privateNetwork = true; - hostAddress = "192.168.100.10"; - localAddress = "192.168.100.11"; - }; - - -This gives the container a private virtual Ethernet interface with IP -address 192.168.100.11, which is hooked up to a -virtual Ethernet interface on the host with IP address -192.168.100.10. (See the next section for details -on container networking.) - -To disable the container, just remove it from -configuration.nix and run nixos-rebuild -switch. Note that this will not delete the root directory of -the container in /var/lib/containers. - -
- - -
Networking - -When you create a container using nixos-container -create, it gets it own private IPv4 address in the range -10.233.0.0/16. You can get the container’s IPv4 -address as follows: - - -$ nixos-container show-ip foo -10.233.4.2 - -$ ping -c1 10.233.4.2 -64 bytes from 10.233.4.2: icmp_seq=1 ttl=64 time=0.106 ms - - - - -Networking is implemented using a pair of virtual Ethernet -devices. The network interface in the container is called -eth0, while the matching interface in the host is -called ve-container-name -(e.g., ve-foo). The container has its own network -namespace and the CAP_NET_ADMIN capability, so it -can perform arbitrary network configuration such as setting up -firewall rules, without affecting or having access to the host’s -network. - -By default, containers cannot talk to the outside network. If -you want that, you should set up Network Address Translation (NAT) -rules on the host to rewrite container traffic to use your external -IP address. This can be accomplished using the following configuration -on the host: - - -networking.nat.enable = true; -networking.nat.internalInterfaces = ["ve-+"]; -networking.nat.externalInterface = "eth0"; - -where eth0 should be replaced with the desired -external interface. Note that ve-+ is a wildcard -that matches all container interfaces. - -
- - -
- diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index 55533a05b06..47e01437ccc 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -36,30 +36,29 @@ let -o $out ${./options-to-docbook.xsl} ${optionsXML} ''; + sources = sourceFilesBySuffices ./. [".xml"]; + + copySources = + '' + cp -prd $sources/* . # */ + chmod -R u+w . + cp ${../../modules/services/databases/postgresql.xml} configuration/postgresql.xml + ln -s ${optionsDocBook} options-db.xml + echo "${version}" > version + ''; + in rec { # Generate the NixOS manual. manual = stdenv.mkDerivation { name = "nixos-manual"; - sources = sourceFilesBySuffices ./. [".xml"]; + inherit sources; buildInputs = [ libxml2 libxslt ]; - xsltFlags = '' - --param section.autolabel 1 - --param section.label.includes.component.label 1 - --param html.stylesheet 'style.css' - --param xref.with.number.and.title 1 - --param toc.section.depth 3 - --param admon.style ''' - --param callout.graphics.extension '.gif' - ''; - buildCommand = '' - ln -s $sources/*.xml . # */ - ln -s ${optionsDocBook} options-db.xml - echo "${version}" > version + ${copySources} # Check the validity of the manual sources. xmllint --noout --nonet --xinclude --noxincludenode \ @@ -69,10 +68,20 @@ in rec { # Generate the HTML manual. dst=$out/share/doc/nixos mkdir -p $dst - xsltproc $xsltFlags --nonet --xinclude \ - --output $dst/manual.html \ - ${docbook5_xsl}/xml/xsl/docbook/xhtml/docbook.xsl \ - ./manual.xml + xsltproc \ + --param section.autolabel 1 \ + --param section.label.includes.component.label 1 \ + --stringparam html.stylesheet style.css \ + --param xref.with.number.and.title 1 \ + --param toc.section.depth 3 \ + --stringparam admon.style "" \ + --stringparam callout.graphics.extension .gif \ + --param chunk.section.depth 0 \ + --param chunk.first.sections 1 \ + --param use.id.as.filename 1 \ + --stringparam generate.toc "book toc chapter toc appendix toc" \ + --nonet --xinclude --output $dst/ \ + ${docbook5_xsl}/xml/xsl/docbook/xhtml/chunkfast.xsl ./manual.xml mkdir -p $dst/images/callouts cp ${docbook5_xsl}/xml/xsl/docbook/images/callouts/*.gif $dst/images/callouts/ @@ -90,7 +99,7 @@ in rec { manualPDF = stdenv.mkDerivation { name = "nixos-manual-pdf"; - sources = sourceFilesBySuffices ./. [".xml"]; + inherit sources; buildInputs = [ libxml2 libxslt dblatex tetex ]; @@ -98,9 +107,7 @@ in rec { # TeX needs a writable font cache. export VARTEXFONTS=$TMPDIR/texfonts - ln -s $sources/*.xml . # */ - ln -s ${optionsDocBook} options-db.xml - echo "${version}" > version + ${copySources} dst=$out/share/doc/nixos mkdir -p $dst @@ -117,13 +124,12 @@ in rec { manpages = stdenv.mkDerivation { name = "nixos-manpages"; - sources = sourceFilesBySuffices ./. [".xml"]; + inherit sources; buildInputs = [ libxml2 libxslt ]; buildCommand = '' - ln -s $sources/*.xml . # */ - ln -s ${optionsDocBook} options-db.xml + ${copySources} # Check the validity of the manual sources. xmllint --noout --nonet --xinclude --noxincludenode \ diff --git a/nixos/doc/manual/development.xml b/nixos/doc/manual/development.xml deleted file mode 100644 index 2f0c2a7aa8d..00000000000 --- a/nixos/doc/manual/development.xml +++ /dev/null @@ -1,1119 +0,0 @@ - - -Development - -This chapter describes how you can modify and extend -NixOS. - - - - -
- -Getting the sources - -By default, NixOS’s nixos-rebuild command -uses the NixOS and Nixpkgs sources provided by the -nixos-unstable channel (kept in -/nix/var/nix/profiles/per-user/root/channels/nixos). -To modify NixOS, however, you should check out the latest sources from -Git. This is done using the following command: - - -$ nixos-checkout /my/sources - - -or - - -$ mkdir -p /my/sources -$ cd /my/sources -$ nix-env -i git -$ git clone git://github.com/NixOS/nixpkgs.git - - -This will check out the latest NixOS sources to -/my/sources/nixpkgs/nixos -and the Nixpkgs sources to -/my/sources/nixpkgs. -(The NixOS source tree lives in a subdirectory of the Nixpkgs -repository.) - -It’s often inconvenient to develop directly on the master -branch, since if somebody has just committed (say) a change to GCC, -then the binary cache may not have caught up yet and you’ll have to -rebuild everything from source. So you may want to create a local -branch based on your current NixOS version: - - -$ nixos-version -14.04.273.ea1952b (Baboon) - -$ git checkout -b local ea1952b - - -Or, to base your local branch on the latest version available in the -NixOS channel: - - -$ curl -sI http://nixos.org/channels/nixos-unstable/ | grep Location -Location: http://releases.nixos.org/nixos/unstable/nixos-14.10pre43986.acaf4a6/ - -$ git checkout -b local acaf4a6 - - -You can then use git rebase to sync your local -branch with the upstream branch, and use git -cherry-pick to copy commits from your local branch to the -upstream branch. - -If you want to rebuild your system using your (modified) -sources, you need to tell nixos-rebuild about them -using the flag: - - -$ nixos-rebuild switch -I nixpkgs=/my/sources/nixpkgs - - - - -If you want nix-env to use the expressions in -/my/sources, use nix-env -f -/my/sources/nixpkgs, or change -the default by adding a symlink in -~/.nix-defexpr: - - -$ ln -s /my/sources/nixpkgs ~/.nix-defexpr/nixpkgs - - -You may want to delete the symlink -~/.nix-defexpr/channels_root to prevent root’s -NixOS channel from clashing with your own tree. - - - -
- - - - -
- -Writing NixOS modules - -NixOS has a modular system for declarative configuration. This -system combines multiple modules to produce the -full system configuration. One of the modules that constitute the -configuration is /etc/nixos/configuration.nix. -Most of the others live in the nixos/modules -subdirectory of the Nixpkgs tree. - -Each NixOS module is a file that handles one logical aspect of -the configuration, such as a specific kind of hardware, a service, or -network settings. A module configuration does not have to handle -everything from scratch; it can use the functionality provided by -other modules for its implementation. Thus a module can -declare options that can be used by other -modules, and conversely can define options -provided by other modules in its own implementation. For example, the -module pam.nix -declares the option that allows -other modules (e.g. sshd.nix) -to define PAM services; and it defines the option - (declared by etc.nix) -to cause files to be created in -/etc/pam.d. - -In , we saw the following structure -of NixOS modules: - - -{ config, pkgs, ... }: - -{ option definitions -} - - -This is actually an abbreviated form of module -that only defines options, but does not declare any. The structure of -full NixOS modules is shown in . - -Structure of NixOS modules - -{ config, pkgs, ... }: - -{ - imports = - [ paths of other modules - ]; - - options = { - option declarations - }; - - config = { - option definitions - }; -} - - -The meaning of each part is as follows. - - - - This line makes the current Nix expression a function. The - variable pkgs contains Nixpkgs, while - config contains the full system configuration. - This line can be omitted if there is no reference to - pkgs and config inside the - module. - - - - This list enumerates the paths to other NixOS modules that - should be included in the evaluation of the system configuration. - A default set of modules is defined in the file - modules/module-list.nix. These don't need to - be added in the import list. - - - - The attribute options is a nested set of - option declarations (described below). - - - - The attribute config is a nested set of - option definitions (also described - below). - - - - - - shows a module that handles -the regular update of the “locate” database, an index of all files in -the file system. This module declares two options that can be defined -by other modules (typically the user’s -configuration.nix): - (whether the database should -be updated) and (when the -update should be done). It implements its functionality by defining -two options declared by other modules: - (the set of all systemd services) -and (the list of -commands to be executed periodically by cron). - -NixOS module for the “locate” service - -{ config, lib, pkgs, ... }: - -with lib; - -let locatedb = "/var/cache/locatedb"; in - -{ - options = { - - services.locate = { - - enable = mkOption { - type = types.bool; - default = false; - description = '' - If enabled, NixOS will periodically update the database of - files used by the locate command. - ''; - }; - - period = mkOption { - type = types.str; - default = "15 02 * * *"; - description = '' - This option defines (in the format used by cron) when the - locate database is updated. The default is to update at - 02:15 at night every day. - ''; - }; - - }; - - }; - - config = { - - systemd.services.update-locatedb = - { description = "Update Locate Database"; - path = [ pkgs.su ]; - script = - '' - mkdir -m 0755 -p $(dirname ${locatedb}) - exec updatedb --localuser=nobody --output=${locatedb} --prunepaths='/tmp /var/tmp /media /run' - ''; - }; - - services.cron.systemCronJobs = optional config.services.locate.enable - "${config.services.locate.period} root ${config.systemd.package}/bin/systemctl start update-locatedb.service"; - - }; -} - - -
Option declarations - -An option declaration specifies the name, type and description -of a NixOS configuration option. It is illegal to define an option -that hasn’t been declared in any module. A option declaration -generally looks like this: - - -options = { - name = mkOption { - type = type specification; - default = default value; - example = example value; - description = "Description for use in the NixOS manual."; - }; -}; - - - - -The function mkOption accepts the following arguments. - - - - - type - - The type of the option (see below). It may be omitted, - but that’s not advisable since it may lead to errors that are - hard to diagnose. - - - - - default - - The default value used if no value is defined by any - module. A default is not required; in that case, if the option - value is ever used, an error will be thrown. - - - - - example - - An example value that will be shown in the NixOS manual. - - - - - description - - A textual description of the option, in DocBook format, - that will be included in the NixOS manual. - - - - - - - -Here is a non-exhaustive list of option types: - - - - - types.bool - - A Boolean. - - - - - types.int - - An integer. - - - - - types.str - - A string. - - - - - types.lines - - A string. If there are multiple definitions, they are - concatenated, with newline characters in between. - - - - - types.path - - A path, defined as anything that, when coerced to a - string, starts with a slash. This includes derivations. - - - - - types.listOf t - - A list of elements of type t - (e.g., types.listOf types.str is a list of - strings). Multiple definitions are concatenated together. - - - - - types.attrsOf t - - A set of elements of type t - (e.g., types.attrsOf types.int is a set of - name/value pairs, the values being integers). - - - - - types.nullOr t - - Either the value null or something of - type t. - - - - - -You can also create new types using the function -mkOptionType. See -lib/types.nix in Nixpkgs for details. - -
- - -
Option definitions - -Option definitions are generally straight-forward bindings of values to option names, like - - -config = { - services.httpd.enable = true; -}; - - -However, sometimes you need to wrap an option definition or set of -option definitions in a property to achieve -certain effects: - -Delaying conditionals - -If a set of option definitions is conditional on the value of -another option, you may need to use mkIf. -Consider, for instance: - - -config = if config.services.httpd.enable then { - environment.systemPackages = [ ... ]; - ... -} else {}; - - -This definition will cause Nix to fail with an “infinite recursion” -error. Why? Because the value of - depends on the value -being constructed here. After all, you could also write the clearly -circular and contradictory: - -config = if config.services.httpd.enable then { - services.httpd.enable = false; -} else { - services.httpd.enable = true; -}; - - -The solution is to write: - - -config = mkIf config.services.httpd.enable { - environment.systemPackages = [ ... ]; - ... -}; - - -The special function mkIf causes the evaluation of -the conditional to be “pushed down” into the individual definitions, -as if you had written: - - -config = { - environment.systemPackages = if config.services.httpd.enable then [ ... ] else []; - ... -}; - - - - - - -Setting priorities - -A module can override the definitions of an option in other -modules by setting a priority. All option -definitions that do not have the lowest priority value are discarded. -By default, option definitions have priority 1000. You can specify an -explicit priority by using mkOverride, e.g. - - -services.openssh.enable = mkOverride 10 false; - - -This definition causes all other definitions with priorities above 10 -to be discarded. The function mkForce is -equal to mkOverride 50. - - - -Merging configurations - -In conjunction with mkIf, it is sometimes -useful for a module to return multiple sets of option definitions, to -be merged together as if they were declared in separate modules. This -can be done using mkMerge: - - -config = mkMerge - [ # Unconditional stuff. - { environment.systemPackages = [ ... ]; - } - # Conditional stuff. - (mkIf config.services.bla.enable { - environment.systemPackages = [ ... ]; - }) - ]; - - - - - - -
- - -
Important options - -NixOS has many options, but some are of particular importance to -module writers. - - - - - - - This set defines files in /etc. A - typical use is: - -environment.etc."os-release".text = - '' - NAME=NixOS - ... - ''; - - which causes a file named /etc/os-release - to be created with the given contents. - - - - - - - A set of shell script fragments that must be executed - whenever the configuration is activated (i.e., at boot time, or - after running nixos-rebuild switch). For instance, - -system.activationScripts.media = - '' - mkdir -m 0755 -p /media - ''; - - causes the directory /media to be created. - Activation scripts must be idempotent. They should not start - background processes such as daemons; use - for that. - - - - - - - This is the set of systemd services. Example: - -systemd.services.dhcpcd = - { description = "DHCP Client"; - wantedBy = [ "multi-user.target" ]; - after = [ "systemd-udev-settle.service" ]; - path = [ dhcpcd pkgs.nettools pkgs.openresolv ]; - serviceConfig = - { Type = "forking"; - PIDFile = "/run/dhcpcd.pid"; - ExecStart = "${dhcpcd}/sbin/dhcpcd --config ${dhcpcdConf}"; - Restart = "always"; - }; - }; - - which creates the systemd unit - dhcpcd.service. The option - determined which other units pull this - one in; multi-user.target is the default - target of the system, so dhcpcd.service will - always be started. The option - provides the main - command for the service; it’s also possible to provide pre-start - actions, stop scripts, and so on. - - - - - - - - If your service requires special UIDs or GIDs, you can - define them with these options. See for details. - - - - - -
- - -
- - - - -
- -Building specific parts of NixOS - -With the command nix-build, you can build -specific parts of your NixOS configuration. This is done as follows: - - -$ cd /path/to/nixpkgs/nixos -$ nix-build -A config.option - -where option is a NixOS option with type -“derivation” (i.e. something that can be built). Attributes of -interest include: - - - - - system.build.toplevel - - The top-level option that builds the entire NixOS system. - Everything else in your configuration is indirectly pulled in by - this option. This is what nixos-rebuild - builds and what /run/current-system points - to afterwards. - - A shortcut to build this is: - - -$ nix-build -A system - - - - - - system.build.manual.manual - The NixOS manual. - - - - system.build.etc - A tree of symlinks that form the static parts of - /etc. - - - - system.build.initialRamdisk - system.build.kernel - - The initial ramdisk and kernel of the system. This allows - a quick way to test whether the kernel and the initial ramdisk - boot correctly, by using QEMU’s and - options: - - -$ nix-build -A config.system.build.initialRamdisk -o initrd -$ nix-build -A config.system.build.kernel -o kernel -$ qemu-system-x86_64 -kernel ./kernel/bzImage -initrd ./initrd/initrd -hda /dev/null - - - - - - - - system.build.nixos-rebuild - system.build.nixos-install - system.build.nixos-generate-config - - These build the corresponding NixOS commands. - - - - - systemd.units.unit-name.unit - - This builds the unit with the specified name. Note that - since unit names contain dots - (e.g. httpd.service), you need to put them - between quotes, like this: - - -$ nix-build -A 'config.systemd.units."httpd.service".unit' - - - You can also test individual units, without rebuilding the whole - system, by putting them in - /run/systemd/system: - - -$ cp $(nix-build -A 'config.systemd.units."httpd.service".unit')/httpd.service \ - /run/systemd/system/tmp-httpd.service -$ systemctl daemon-reload -$ systemctl start tmp-httpd.service - - - Note that the unit must not have the same name as any unit in - /etc/systemd/system since those take - precedence over /run/systemd/system. - That’s why the unit is installed as - tmp-httpd.service here. - - - - - - - -
- - - - -
- -Building your own NixOS CD - -Building a NixOS CD is as easy as configuring your own computer. The -idea is to use another module which will replace -your configuration.nix to configure the system that -would be installed on the CD. - -Default CD/DVD configurations are available -inside nixos/modules/installer/cd-dvd. To build them -you have to set NIXOS_CONFIG before -running nix-build to build the ISO. - - -$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-minimal.nix - - - -Before burning your CD/DVD, you can check the content of the image by mounting anywhere like -suggested by the following command: - - -$ mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso - - - -
- - - - -
- -Testing the installer - -Building, burning, and booting from an installation CD is rather -tedious, so here is a quick way to see if the installer works -properly: - - -$ nix-build -A config.system.build.nixos-install -$ mount -t tmpfs none /mnt -$ ./result/bin/nixos-install - -To start a login shell in the new NixOS installation in -/mnt: - - -$ ./result/bin/nixos-install --chroot - - - - -
- - - - - -
- -NixOS tests - -When you add some feature to NixOS, you should write a test for -it. NixOS tests are kept in the directory nixos/tests, -and are executed (using Nix) by a testing framework that automatically -starts one or more virtual machines containing the NixOS system(s) -required for the test. - -Writing tests - -A NixOS test is a Nix expression that has the following structure: - - -import ./make-test.nix { - - # Either the configuration of a single machine: - machine = - { config, pkgs, ... }: - { configuration… - }; - - # Or a set of machines: - nodes = - { machine1 = - { config, pkgs, ... }: { }; - machine2 = - { config, pkgs, ... }: { }; - … - }; - - testScript = - '' - Perl code… - ''; -} - - -The attribute testScript is a bit of Perl code that -executes the test (described below). During the test, it will start -one or more virtual machines, the configuration of which is described -by the attribute machine (if you need only one -machine in your test) or by the attribute nodes (if -you need multiple machines). For instance, login.nix -only needs a single machine to test whether users can log in on the -virtual console, whether device ownership is correctly maintained when -switching between consoles, and so on. On the other hand, nfs.nix, -which tests NFS client and server functionality in the Linux kernel -(including whether locks are maintained across server crashes), -requires three machines: a server and two clients. - -There are a few special NixOS configuration options for test -VMs: - - - - - - - - The memory of the VM in - megabytes. - - - - - The virtual networks to which the VM is - connected. See nat.nix - for an example. - - - - - By default, the Nix store in the VM is not - writable. If you enable this option, a writable union file system - is mounted on top of the Nix store to make it appear - writable. This is necessary for tests that run Nix operations that - modify the store. - - - - -For more options, see the module qemu-vm.nix. - -The test script is a sequence of Perl statements that perform -various actions, such as starting VMs, executing commands in the VMs, -and so on. Each virtual machine is represented as an object stored in -the variable $name, -where name is the identifier of the machine -(which is just machine if you didn’t specify -multiple machines using the nodes attribute). For -instance, the following starts the machine, waits until it has -finished booting, then executes a command and checks that the output -is more-or-less correct: - - -$machine->start; -$machine->waitForUnit("default.target"); -$machine->succeed("uname") =~ /Linux/; - - -The first line is actually unnecessary; machines are implicitly -started when you first execute an action on them (such as -waitForUnit or succeed). If you -have multiple machines, you can speed up the test by starting them in -parallel: - - -startAll; - - - - -The following methods are available on machine objects: - - - - - start - Start the virtual machine. This method is - asynchronous — it does not wait for the machine to finish - booting. - - - - shutdown - Shut down the machine, waiting for the VM to - exit. - - - - crash - Simulate a sudden power failure, by telling the VM - to exit immediately. - - - - block - Simulate unplugging the Ethernet cable that - connects the machine to the other machines. - - - - unblock - Undo the effect of - block. - - - - screenshot - Take a picture of the display of the virtual - machine, in PNG format. The screenshot is linked from the HTML - log. - - - - sendMonitorCommand - Send a command to the QEMU monitor. This is rarely - used, but allows doing stuff such as attaching virtual USB disks - to a running machine. - - - - sendKeys - Simulate pressing keys on the virtual keyboard, - e.g., sendKeys("ctrl-alt-delete"). - - - - sendChars - Simulate typing a sequence of characters on the - virtual keyboard, e.g., sendKeys("foobar\n") - will type the string foobar followed by the - Enter key. - - - - execute - Execute a shell command, returning a list - (status, - stdout). - - - - succeed - Execute a shell command, raising an exception if - the exit status is not zero, otherwise returning the standard - output. - - - - fail - Like succeed, but raising - an exception if the command returns a zero status. - - - - waitUntilSucceeds - Repeat a shell command with 1-second intervals - until it succeeds. - - - - waitUntilFails - Repeat a shell command with 1-second intervals - until it fails. - - - - waitForUnit - Wait until the specified systemd unit has reached - the “active” state. - - - - waitForFile - Wait until the specified file - exists. - - - - waitForOpenPort - Wait until a process is listening on the given TCP - port (on localhost, at least). - - - - waitForClosedPort - Wait until nobody is listening on the given TCP - port. - - - - waitForX - Wait until the X11 server is accepting - connections. - - - - waitForWindow - Wait until an X11 window has appeared whose name - matches the given regular expression, e.g., - waitForWindow(qr/Terminal/). - - - - - - - - - -Running tests - -You can run tests using nix-build. For -example, to run the test login.nix, -you just do: - - -$ nix-build '<nixpkgs/nixos/tests/login.nix>' - - -or, if you don’t want to rely on NIX_PATH: - - -$ cd /my/nixpkgs/nixos/tests -$ nix-build login.nix -… -running the VM test script -machine: QEMU running (pid 8841) -… -6 out of 6 tests succeeded - - -After building/downloading all required dependencies, this will -perform a build that starts a QEMU/KVM virtual machine containing a -NixOS system. The virtual machine mounts the Nix store of the host; -this makes VM creation very fast, as no disk image needs to be -created. Afterwards, you can view a pretty-printed log of the test: - - -$ firefox result/log.html - - - - -It is also possible to run the test environment interactively, -allowing you to experiment with the VMs. For example: - - -$ nix-build login.nix -A driver -$ ./result/bin/nixos-run-vms - - -The script nixos-run-vms starts the virtual -machines defined by test. The root file system of the VMs is created -on the fly and kept across VM restarts in -./hostname.qcow2. - -Finally, the test itself can be run interactively. This is -particularly useful when developing or debugging a test: - - -$ nix-build tests/ -A nfs.driver -$ ./result/bin/nixos-test-driver -starting VDE switch for network 1 -> - - -You can then take any Perl statement, e.g. - - -> startAll -> $machine->succeed("touch /tmp/foo") - - -The function testScript executes the entire test -script and drops you back into the test driver command line upon its -completion. This allows you to inspect the state of the VMs after the -test (e.g. to debug the test script). - - - -
- - -
diff --git a/nixos/doc/manual/development/building-nixos.xml b/nixos/doc/manual/development/building-nixos.xml new file mode 100644 index 00000000000..21c5bfe6a5b --- /dev/null +++ b/nixos/doc/manual/development/building-nixos.xml @@ -0,0 +1,32 @@ + + +Building Your Own NixOS CD + +Building a NixOS CD is as easy as configuring your own computer. The +idea is to use another module which will replace +your configuration.nix to configure the system that +would be installed on the CD. + +Default CD/DVD configurations are available +inside nixos/modules/installer/cd-dvd. To build them +you have to set NIXOS_CONFIG before +running nix-build to build the ISO. + + +$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-minimal.nix + + + +Before burning your CD/DVD, you can check the content of the image by mounting anywhere like +suggested by the following command: + + +$ mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso + + + + \ No newline at end of file diff --git a/nixos/doc/manual/development/building-parts.xml b/nixos/doc/manual/development/building-parts.xml new file mode 100644 index 00000000000..cb8dee039c8 --- /dev/null +++ b/nixos/doc/manual/development/building-parts.xml @@ -0,0 +1,113 @@ + + +Building Specific Parts of NixOS + +With the command nix-build, you can build +specific parts of your NixOS configuration. This is done as follows: + + +$ cd /path/to/nixpkgs/nixos +$ nix-build -A config.option + +where option is a NixOS option with type +“derivation” (i.e. something that can be built). Attributes of +interest include: + + + + + system.build.toplevel + + The top-level option that builds the entire NixOS system. + Everything else in your configuration is indirectly pulled in by + this option. This is what nixos-rebuild + builds and what /run/current-system points + to afterwards. + + A shortcut to build this is: + + +$ nix-build -A system + + + + + + system.build.manual.manual + The NixOS manual. + + + + system.build.etc + A tree of symlinks that form the static parts of + /etc. + + + + system.build.initialRamdisk + system.build.kernel + + The initial ramdisk and kernel of the system. This allows + a quick way to test whether the kernel and the initial ramdisk + boot correctly, by using QEMU’s and + options: + + +$ nix-build -A config.system.build.initialRamdisk -o initrd +$ nix-build -A config.system.build.kernel -o kernel +$ qemu-system-x86_64 -kernel ./kernel/bzImage -initrd ./initrd/initrd -hda /dev/null + + + + + + + + system.build.nixos-rebuild + system.build.nixos-install + system.build.nixos-generate-config + + These build the corresponding NixOS commands. + + + + + systemd.units.unit-name.unit + + This builds the unit with the specified name. Note that + since unit names contain dots + (e.g. httpd.service), you need to put them + between quotes, like this: + + +$ nix-build -A 'config.systemd.units."httpd.service".unit' + + + You can also test individual units, without rebuilding the whole + system, by putting them in + /run/systemd/system: + + +$ cp $(nix-build -A 'config.systemd.units."httpd.service".unit')/httpd.service \ + /run/systemd/system/tmp-httpd.service +$ systemctl daemon-reload +$ systemctl start tmp-httpd.service + + + Note that the unit must not have the same name as any unit in + /etc/systemd/system since those take + precedence over /run/systemd/system. + That’s why the unit is installed as + tmp-httpd.service here. + + + + + + + + \ No newline at end of file diff --git a/nixos/doc/manual/development/development.xml b/nixos/doc/manual/development/development.xml new file mode 100644 index 00000000000..747159c4427 --- /dev/null +++ b/nixos/doc/manual/development/development.xml @@ -0,0 +1,20 @@ + + +Development + + +This chapter describes how you can modify and extend +NixOS. + + + + + + + + + diff --git a/nixos/doc/manual/development/nixos-tests.xml b/nixos/doc/manual/development/nixos-tests.xml new file mode 100644 index 00000000000..a98da993330 --- /dev/null +++ b/nixos/doc/manual/development/nixos-tests.xml @@ -0,0 +1,19 @@ + + +NixOS Tests + +When you add some feature to NixOS, you should write a test for +it. NixOS tests are kept in the directory nixos/tests, +and are executed (using Nix) by a testing framework that automatically +starts one or more virtual machines containing the NixOS system(s) +required for the test. + + + + + \ No newline at end of file diff --git a/nixos/doc/manual/development/option-declarations.xml b/nixos/doc/manual/development/option-declarations.xml new file mode 100644 index 00000000000..6d93dc5c009 --- /dev/null +++ b/nixos/doc/manual/development/option-declarations.xml @@ -0,0 +1,141 @@ +
+ +Option Declarations + +An option declaration specifies the name, type and description +of a NixOS configuration option. It is illegal to define an option +that hasn’t been declared in any module. A option declaration +generally looks like this: + + +options = { + name = mkOption { + type = type specification; + default = default value; + example = example value; + description = "Description for use in the NixOS manual."; + }; +}; + + + + +The function mkOption accepts the following arguments. + + + + + type + + The type of the option (see below). It may be omitted, + but that’s not advisable since it may lead to errors that are + hard to diagnose. + + + + + default + + The default value used if no value is defined by any + module. A default is not required; in that case, if the option + value is ever used, an error will be thrown. + + + + + example + + An example value that will be shown in the NixOS manual. + + + + + description + + A textual description of the option, in DocBook format, + that will be included in the NixOS manual. + + + + + + + +Here is a non-exhaustive list of option types: + + + + + types.bool + + A Boolean. + + + + + types.int + + An integer. + + + + + types.str + + A string. + + + + + types.lines + + A string. If there are multiple definitions, they are + concatenated, with newline characters in between. + + + + + types.path + + A path, defined as anything that, when coerced to a + string, starts with a slash. This includes derivations. + + + + + types.listOf t + + A list of elements of type t + (e.g., types.listOf types.str is a list of + strings). Multiple definitions are concatenated together. + + + + + types.attrsOf t + + A set of elements of type t + (e.g., types.attrsOf types.int is a set of + name/value pairs, the values being integers). + + + + + types.nullOr t + + Either the value null or something of + type t. + + + + + +You can also create new types using the function +mkOptionType. See +lib/types.nix in Nixpkgs for details. + +
\ No newline at end of file diff --git a/nixos/doc/manual/development/option-def.xml b/nixos/doc/manual/development/option-def.xml new file mode 100644 index 00000000000..4e267ecfd1e --- /dev/null +++ b/nixos/doc/manual/development/option-def.xml @@ -0,0 +1,112 @@ +
+ +Option Definitions + +Option definitions are generally straight-forward bindings of values to option names, like + + +config = { + services.httpd.enable = true; +}; + + +However, sometimes you need to wrap an option definition or set of +option definitions in a property to achieve +certain effects: + +Delaying Conditionals + +If a set of option definitions is conditional on the value of +another option, you may need to use mkIf. +Consider, for instance: + + +config = if config.services.httpd.enable then { + environment.systemPackages = [ ... ]; + ... +} else {}; + + +This definition will cause Nix to fail with an “infinite recursion” +error. Why? Because the value of + depends on the value +being constructed here. After all, you could also write the clearly +circular and contradictory: + +config = if config.services.httpd.enable then { + services.httpd.enable = false; +} else { + services.httpd.enable = true; +}; + + +The solution is to write: + + +config = mkIf config.services.httpd.enable { + environment.systemPackages = [ ... ]; + ... +}; + + +The special function mkIf causes the evaluation of +the conditional to be “pushed down” into the individual definitions, +as if you had written: + + +config = { + environment.systemPackages = if config.services.httpd.enable then [ ... ] else []; + ... +}; + + + + + + +Setting Priorities + +A module can override the definitions of an option in other +modules by setting a priority. All option +definitions that do not have the lowest priority value are discarded. +By default, option definitions have priority 1000. You can specify an +explicit priority by using mkOverride, e.g. + + +services.openssh.enable = mkOverride 10 false; + + +This definition causes all other definitions with priorities above 10 +to be discarded. The function mkForce is +equal to mkOverride 50. + + + +Merging Configurations + +In conjunction with mkIf, it is sometimes +useful for a module to return multiple sets of option definitions, to +be merged together as if they were declared in separate modules. This +can be done using mkMerge: + + +config = mkMerge + [ # Unconditional stuff. + { environment.systemPackages = [ ... ]; + } + # Conditional stuff. + (mkIf config.services.bla.enable { + environment.systemPackages = [ ... ]; + }) + ]; + + + + + + +
\ No newline at end of file diff --git a/nixos/doc/manual/development/running-nixos-tests.xml b/nixos/doc/manual/development/running-nixos-tests.xml new file mode 100644 index 00000000000..d9be761eb01 --- /dev/null +++ b/nixos/doc/manual/development/running-nixos-tests.xml @@ -0,0 +1,77 @@ +
+ +Running Tests + +You can run tests using nix-build. For +example, to run the test login.nix, +you just do: + + +$ nix-build '<nixpkgs/nixos/tests/login.nix>' + + +or, if you don’t want to rely on NIX_PATH: + + +$ cd /my/nixpkgs/nixos/tests +$ nix-build login.nix +… +running the VM test script +machine: QEMU running (pid 8841) +… +6 out of 6 tests succeeded + + +After building/downloading all required dependencies, this will +perform a build that starts a QEMU/KVM virtual machine containing a +NixOS system. The virtual machine mounts the Nix store of the host; +this makes VM creation very fast, as no disk image needs to be +created. Afterwards, you can view a pretty-printed log of the test: + + +$ firefox result/log.html + + + + +It is also possible to run the test environment interactively, +allowing you to experiment with the VMs. For example: + + +$ nix-build login.nix -A driver +$ ./result/bin/nixos-run-vms + + +The script nixos-run-vms starts the virtual +machines defined by test. The root file system of the VMs is created +on the fly and kept across VM restarts in +./hostname.qcow2. + +Finally, the test itself can be run interactively. This is +particularly useful when developing or debugging a test: + + +$ nix-build tests/ -A nfs.driver +$ ./result/bin/nixos-test-driver +starting VDE switch for network 1 +> + + +You can then take any Perl statement, e.g. + + +> startAll +> $machine->succeed("touch /tmp/foo") + + +The function testScript executes the entire test +script and drops you back into the test driver command line upon its +completion. This allows you to inspect the state of the VMs after the +test (e.g. to debug the test script). + +
\ No newline at end of file diff --git a/nixos/doc/manual/development/sources.xml b/nixos/doc/manual/development/sources.xml new file mode 100644 index 00000000000..992a07af981 --- /dev/null +++ b/nixos/doc/manual/development/sources.xml @@ -0,0 +1,95 @@ + + +Getting the Sources + +By default, NixOS’s nixos-rebuild command +uses the NixOS and Nixpkgs sources provided by the +nixos-unstable channel (kept in +/nix/var/nix/profiles/per-user/root/channels/nixos). +To modify NixOS, however, you should check out the latest sources from +Git. This is done using the following command: + + +$ nixos-checkout /my/sources + + +or + + +$ mkdir -p /my/sources +$ cd /my/sources +$ nix-env -i git +$ git clone git://github.com/NixOS/nixpkgs.git + + +This will check out the latest NixOS sources to +/my/sources/nixpkgs/nixos +and the Nixpkgs sources to +/my/sources/nixpkgs. +(The NixOS source tree lives in a subdirectory of the Nixpkgs +repository.) + +It’s often inconvenient to develop directly on the master +branch, since if somebody has just committed (say) a change to GCC, +then the binary cache may not have caught up yet and you’ll have to +rebuild everything from source. So you may want to create a local +branch based on your current NixOS version: + + +$ nixos-version +14.04.273.ea1952b (Baboon) + +$ git checkout -b local ea1952b + + +Or, to base your local branch on the latest version available in the +NixOS channel: + + +$ curl -sI http://nixos.org/channels/nixos-unstable/ | grep Location +Location: http://releases.nixos.org/nixos/unstable/nixos-14.10pre43986.acaf4a6/ + +$ git checkout -b local acaf4a6 + + +You can then use git rebase to sync your local +branch with the upstream branch, and use git +cherry-pick to copy commits from your local branch to the +upstream branch. + +If you want to rebuild your system using your (modified) +sources, you need to tell nixos-rebuild about them +using the flag: + + +$ nixos-rebuild switch -I nixpkgs=/my/sources/nixpkgs + + + + +If you want nix-env to use the expressions in +/my/sources, use nix-env -f +/my/sources/nixpkgs, or change +the default by adding a symlink in +~/.nix-defexpr: + + +$ ln -s /my/sources/nixpkgs ~/.nix-defexpr/nixpkgs + + +You may want to delete the symlink +~/.nix-defexpr/channels_root to prevent root’s +NixOS channel from clashing with your own tree. + + + + \ No newline at end of file diff --git a/nixos/doc/manual/development/testing-installer.xml b/nixos/doc/manual/development/testing-installer.xml new file mode 100644 index 00000000000..87e40e32617 --- /dev/null +++ b/nixos/doc/manual/development/testing-installer.xml @@ -0,0 +1,27 @@ + + +Testing the Installer + +Building, burning, and booting from an installation CD is rather +tedious, so here is a quick way to see if the installer works +properly: + + +$ nix-build -A config.system.build.nixos-install +$ mount -t tmpfs none /mnt +$ ./result/bin/nixos-install + +To start a login shell in the new NixOS installation in +/mnt: + + +$ ./result/bin/nixos-install --chroot + + + + + \ No newline at end of file diff --git a/nixos/doc/manual/development/writing-modules.xml b/nixos/doc/manual/development/writing-modules.xml new file mode 100644 index 00000000000..9cf29e5dc57 --- /dev/null +++ b/nixos/doc/manual/development/writing-modules.xml @@ -0,0 +1,175 @@ + + +Writing NixOS Modules + +NixOS has a modular system for declarative configuration. This +system combines multiple modules to produce the +full system configuration. One of the modules that constitute the +configuration is /etc/nixos/configuration.nix. +Most of the others live in the nixos/modules +subdirectory of the Nixpkgs tree. + +Each NixOS module is a file that handles one logical aspect of +the configuration, such as a specific kind of hardware, a service, or +network settings. A module configuration does not have to handle +everything from scratch; it can use the functionality provided by +other modules for its implementation. Thus a module can +declare options that can be used by other +modules, and conversely can define options +provided by other modules in its own implementation. For example, the +module pam.nix +declares the option that allows +other modules (e.g. sshd.nix) +to define PAM services; and it defines the option + (declared by etc.nix) +to cause files to be created in +/etc/pam.d. + +In , we saw the following structure +of NixOS modules: + + +{ config, pkgs, ... }: + +{ option definitions +} + + +This is actually an abbreviated form of module +that only defines options, but does not declare any. The structure of +full NixOS modules is shown in . + +Structure of NixOS Modules + +{ config, pkgs, ... }: + +{ + imports = + [ paths of other modules + ]; + + options = { + option declarations + }; + + config = { + option definitions + }; +} + + +The meaning of each part is as follows. + + + + This line makes the current Nix expression a function. The + variable pkgs contains Nixpkgs, while + config contains the full system configuration. + This line can be omitted if there is no reference to + pkgs and config inside the + module. + + + + This list enumerates the paths to other NixOS modules that + should be included in the evaluation of the system configuration. + A default set of modules is defined in the file + modules/module-list.nix. These don't need to + be added in the import list. + + + + The attribute options is a nested set of + option declarations (described below). + + + + The attribute config is a nested set of + option definitions (also described + below). + + + + + + shows a module that handles +the regular update of the “locate” database, an index of all files in +the file system. This module declares two options that can be defined +by other modules (typically the user’s +configuration.nix): + (whether the database should +be updated) and (when the +update should be done). It implements its functionality by defining +two options declared by other modules: + (the set of all systemd services) +and (the list of +commands to be executed periodically by cron). + +NixOS Module for the “locate” Service + +{ config, lib, pkgs, ... }: + +with lib; + +let locatedb = "/var/cache/locatedb"; in + +{ + options = { + + services.locate = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + If enabled, NixOS will periodically update the database of + files used by the locate command. + ''; + }; + + period = mkOption { + type = types.str; + default = "15 02 * * *"; + description = '' + This option defines (in the format used by cron) when the + locate database is updated. The default is to update at + 02:15 at night every day. + ''; + }; + + }; + + }; + + config = { + + systemd.services.update-locatedb = + { description = "Update Locate Database"; + path = [ pkgs.su ]; + script = + '' + mkdir -m 0755 -p $(dirname ${locatedb}) + exec updatedb --localuser=nobody --output=${locatedb} --prunepaths='/tmp /var/tmp /media /run' + ''; + }; + + services.cron.systemCronJobs = optional config.services.locate.enable + "${config.services.locate.period} root ${config.systemd.package}/bin/systemctl start update-locatedb.service"; + + }; +} + + + + + + \ No newline at end of file diff --git a/nixos/doc/manual/development/writing-nixos-tests.xml b/nixos/doc/manual/development/writing-nixos-tests.xml new file mode 100644 index 00000000000..bbb655eed2a --- /dev/null +++ b/nixos/doc/manual/development/writing-nixos-tests.xml @@ -0,0 +1,251 @@ +
+ +Writing Tests + +A NixOS test is a Nix expression that has the following structure: + + +import ./make-test.nix { + + # Either the configuration of a single machine: + machine = + { config, pkgs, ... }: + { configuration… + }; + + # Or a set of machines: + nodes = + { machine1 = + { config, pkgs, ... }: { }; + machine2 = + { config, pkgs, ... }: { }; + … + }; + + testScript = + '' + Perl code… + ''; +} + + +The attribute testScript is a bit of Perl code that +executes the test (described below). During the test, it will start +one or more virtual machines, the configuration of which is described +by the attribute machine (if you need only one +machine in your test) or by the attribute nodes (if +you need multiple machines). For instance, login.nix +only needs a single machine to test whether users can log in on the +virtual console, whether device ownership is correctly maintained when +switching between consoles, and so on. On the other hand, nfs.nix, +which tests NFS client and server functionality in the Linux kernel +(including whether locks are maintained across server crashes), +requires three machines: a server and two clients. + +There are a few special NixOS configuration options for test +VMs: + + + + + + + + The memory of the VM in + megabytes. + + + + + The virtual networks to which the VM is + connected. See nat.nix + for an example. + + + + + By default, the Nix store in the VM is not + writable. If you enable this option, a writable union file system + is mounted on top of the Nix store to make it appear + writable. This is necessary for tests that run Nix operations that + modify the store. + + + + +For more options, see the module qemu-vm.nix. + +The test script is a sequence of Perl statements that perform +various actions, such as starting VMs, executing commands in the VMs, +and so on. Each virtual machine is represented as an object stored in +the variable $name, +where name is the identifier of the machine +(which is just machine if you didn’t specify +multiple machines using the nodes attribute). For +instance, the following starts the machine, waits until it has +finished booting, then executes a command and checks that the output +is more-or-less correct: + + +$machine->start; +$machine->waitForUnit("default.target"); +$machine->succeed("uname") =~ /Linux/; + + +The first line is actually unnecessary; machines are implicitly +started when you first execute an action on them (such as +waitForUnit or succeed). If you +have multiple machines, you can speed up the test by starting them in +parallel: + + +startAll; + + + + +The following methods are available on machine objects: + + + + + start + Start the virtual machine. This method is + asynchronous — it does not wait for the machine to finish + booting. + + + + shutdown + Shut down the machine, waiting for the VM to + exit. + + + + crash + Simulate a sudden power failure, by telling the VM + to exit immediately. + + + + block + Simulate unplugging the Ethernet cable that + connects the machine to the other machines. + + + + unblock + Undo the effect of + block. + + + + screenshot + Take a picture of the display of the virtual + machine, in PNG format. The screenshot is linked from the HTML + log. + + + + sendMonitorCommand + Send a command to the QEMU monitor. This is rarely + used, but allows doing stuff such as attaching virtual USB disks + to a running machine. + + + + sendKeys + Simulate pressing keys on the virtual keyboard, + e.g., sendKeys("ctrl-alt-delete"). + + + + sendChars + Simulate typing a sequence of characters on the + virtual keyboard, e.g., sendKeys("foobar\n") + will type the string foobar followed by the + Enter key. + + + + execute + Execute a shell command, returning a list + (status, + stdout). + + + + succeed + Execute a shell command, raising an exception if + the exit status is not zero, otherwise returning the standard + output. + + + + fail + Like succeed, but raising + an exception if the command returns a zero status. + + + + waitUntilSucceeds + Repeat a shell command with 1-second intervals + until it succeeds. + + + + waitUntilFails + Repeat a shell command with 1-second intervals + until it fails. + + + + waitForUnit + Wait until the specified systemd unit has reached + the “active” state. + + + + waitForFile + Wait until the specified file + exists. + + + + waitForOpenPort + Wait until a process is listening on the given TCP + port (on localhost, at least). + + + + waitForClosedPort + Wait until nobody is listening on the given TCP + port. + + + + waitForX + Wait until the X11 server is accepting + connections. + + + + waitForWindow + Wait until an X11 window has appeared whose name + matches the given regular expression, e.g., + waitForWindow(qr/Terminal/). + + + + + + +
\ No newline at end of file diff --git a/nixos/doc/manual/installation.xml b/nixos/doc/manual/installation.xml deleted file mode 100644 index 4cbfcc229fa..00000000000 --- a/nixos/doc/manual/installation.xml +++ /dev/null @@ -1,570 +0,0 @@ - - -Installing NixOS - - - - -
- -Obtaining NixOS - -NixOS ISO images can be downloaded from the NixOS -homepage. These can be burned onto a CD. It is also possible -to copy them onto a USB stick and install NixOS from there. For -details, see the NixOS -Wiki. - -As an alternative to installing NixOS yourself, you can get a -running NixOS system through several other means: - - - - Using virtual appliances in Open Virtualization Format (OVF) - that can be imported into VirtualBox. These are available from - the NixOS - homepage. - - - Using AMIs for Amazon’s EC2. To find one for your region - and instance type, please refer to the list - of most recent AMIs. - - - Using NixOps, the NixOS-based cloud deployment tool, which - allows you to provision VirtualBox and EC2 NixOS instances from - declarative specifications. Check out the NixOps - homepage for details. - - - - - -
- - - - -
- -Installation - - - - Boot from the CD. - - The CD contains a basic NixOS installation. (It - also contains Memtest86+, useful if you want to test new hardware.) - When it’s finished booting, it should have detected most of your - hardware and brought up networking (check - ifconfig). Networking is necessary for the - installer, since it will download lots of stuff (such as source - tarballs or Nixpkgs channel binaries). It’s best if you have a DHCP - server on your network. Otherwise configure networking manually - using ifconfig. - - The NixOS manual is available on virtual console 8 - (press Alt+F8 to access). - - Login as root and the empty - password. - - If you downloaded the graphical ISO image, you can - run start display-manager to start KDE. - - The NixOS installer doesn’t do any partitioning or - formatting yet, so you need to that yourself. Use the following - commands: - - - - For partitioning: - fdisk. - - For initialising Ext4 partitions: - mkfs.ext4. It is recommended that you assign a - unique symbolic label to the file system using the option - , since this - makes the file system configuration independent from device - changes. For example: - - -$ mkfs.ext4 -L nixos /dev/sda1 - - - - For creating swap partitions: - mkswap. Again it’s recommended to assign a - label to the swap partition: . - - For creating LVM volumes, the LVM commands, e.g., - - -$ pvcreate /dev/sda1 /dev/sdb1 -$ vgcreate MyVolGroup /dev/sda1 /dev/sdb1 -$ lvcreate --size 2G --name bigdisk MyVolGroup -$ lvcreate --size 1G --name smalldisk MyVolGroup - - - - For creating software RAID devices, use - mdadm. - - - - - - Mount the target file system on which NixOS should - be installed on /mnt, e.g. - - -$ mount /dev/disk/by-label/nixos /mnt - - - - - If your machine has a limited amount of memory, you - may want to activate swap devices now (swapon - device). The installer (or - rather, the build actions that it may spawn) may need quite a bit of - RAM, depending on your configuration. - - - - You now need to create a file - /mnt/etc/nixos/configuration.nix that - specifies the intended configuration of the system. This is - because NixOS has a declarative configuration - model: you create or edit a description of the desired - configuration of your system, and then NixOS takes care of making - it happen. The syntax of the NixOS configuration file is - described in , while a - list of available configuration options appears in . A minimal example is shown in . - - The command nixos-generate-config can - generate an initial configuration file for you: - - -$ nixos-generate-config --root /mnt - - You should then edit - /mnt/etc/nixos/configuration.nix to suit your - needs: - - -$ nano /mnt/etc/nixos/configuration.nix - - - The vim text editor is also available. - - You must set the option - to specify on which disk - the GRUB boot loader is to be installed. Without it, NixOS cannot - boot. - - Another critical option is , - specifying the file systems that need to be mounted by NixOS. - However, you typically don’t need to set it yourself, because - nixos-generate-config sets it automatically in - /mnt/etc/nixos/hardware-configuration.nix - from your currently mounted file systems. (The configuration file - hardware-configuration.nix is included from - configuration.nix and will be overwritten by - future invocations of nixos-generate-config; - thus, you generally should not modify it.) - - Depending on your hardware configuration or type of - file system, you may need to set the option - to include the kernel - modules that are necessary for mounting the root file system, - otherwise the installed system will not be able to boot. (If this - happens, boot from the CD again, mount the target file system on - /mnt, fix - /mnt/etc/nixos/configuration.nix and rerun - nixos-install.) In most cases, - nixos-generate-config will figure out the - required modules. - - Examples of real-world NixOS configuration files can be - found at . - - - - Do the installation: - - -$ nixos-install - - Cross fingers. If this fails due to a temporary problem (such as - a network issue while downloading binaries from the NixOS binary - cache), you can just re-run nixos-install. - Otherwise, fix your configuration.nix and - then re-run nixos-install. - - As the last step, nixos-install will ask - you to set the password for the root user, e.g. - - -setting root password... -Enter new UNIX password: *** -Retype new UNIX password: *** - - - - - - - If everything went well: - - -$ reboot - - - - - - You should now be able to boot into the installed NixOS. - The GRUB boot menu shows a list of available - configurations (initially just one). Every time you - change the NixOS configuration (see ), a new item appears in the menu. - This allows you to easily roll back to another configuration if - something goes wrong. - - You should log in and change the root - password with passwd. - - You’ll probably want to create some user accounts as well, - which can be done with useradd: - - -$ useradd -c 'Eelco Dolstra' -m eelco -$ passwd eelco - - - - You may also want to install some software. For instance, - - -$ nix-env -qa \* - - shows what packages are available, and - - -$ nix-env -i w3m - - install the w3m browser. - - - - - -To summarise, shows a -typical sequence of commands for installing NixOS on an empty hard -drive (here /dev/sda). shows a corresponding configuration Nix expression. - -Commands for installing NixOS on <filename>/dev/sda</filename> - -$ fdisk /dev/sda # (or whatever device you want to install on) -$ mkfs.ext4 -L nixos /dev/sda1 -$ mkswap -L swap /dev/sda2 -$ swapon /dev/sda2 -$ mount /dev/disk/by-label/nixos /mnt -$ nixos-generate-config --root /mnt -$ nano /mnt/etc/nixos/configuration.nix -$ nixos-install -$ reboot - - -NixOS configuration - -{ config, pkgs, ... }: - -{ - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ]; - - boot.loader.grub.device = "/dev/sda"; - - # Note: setting fileSystems is generally not - # necessary, since nixos-generate-config figures them out - # automatically in hardware-configuration.nix. - #fileSystems."/".device = "/dev/disk/by-label/nixos"; - - # Enable the OpenSSH server. - services.sshd.enable = true; -} - - -
- -UEFI Installation - -NixOS can also be installed on UEFI systems. The procedure -is by and large the same as a BIOS installation, with the following -changes: - - - - You should boot the live CD in UEFI mode (consult your - specific hardware's documentation for instructions). You may find - the rEFInd - boot manager useful. - - - Instead of fdisk, you should use - gdisk to partition your disks. You will need to - have a separate partition for /boot with - partition code EF00, and it should be formatted as a - vfat filesystem. - - - You must set to - true. nixos-generate-config - should do this automatically for new configurations when booted in - UEFI mode. - - - After having mounted your installation partition to - /mnt, you must mount the boot partition - to /mnt/boot. - - - You may want to look at the options starting with - and - as well. - - - To see console messages during early boot, add "fbcon" - to your . - - - - -
- -
- -Booting from a USB stick - -For systems without CD drive, the NixOS livecd can be booted from -a usb stick. For non-UEFI installations, -unetbootin -will work. For UEFI installations, you should mount the ISO, copy its contents -verbatim to your drive, then either: - - - - Change the label of the disk partition to the label of the ISO - (visible with the blkid command), or - - - Edit loader/entries/nixos-livecd.conf on the drive - and change the root= field in the options - line to point to your drive (see the documentation on root= - in - the kernel documentation for more details). - - - -
- -
- - - - -
- -Changing the configuration - -The file /etc/nixos/configuration.nix -contains the current configuration of your machine. Whenever you’ve -changed something to that file, you should do - - -$ nixos-rebuild switch - -to build the new configuration, make it the default configuration for -booting, and try to realise the configuration in the running system -(e.g., by restarting system services). - -These commands must be executed as root, so you should -either run them from a root shell or by prefixing them with -sudo -i. - -You can also do - - -$ nixos-rebuild test - -to build the configuration and switch the running system to it, but -without making it the boot default. So if (say) the configuration -locks up your machine, you can just reboot to get back to a working -configuration. - -There is also - - -$ nixos-rebuild boot - -to build the configuration and make it the boot default, but not -switch to it now (so it will only take effect after the next -reboot). - -You can make your configuration show up in a different submenu -of the GRUB 2 boot screen by giving it a different profile -name, e.g. - - -$ nixos-rebuild switch -p test - -which causes the new configuration (and previous ones created using --p test) to show up in the GRUB submenu “NixOS - -Profile 'test'”. This can be useful to separate test configurations -from “stable” configurations. - -Finally, you can do - - -$ nixos-rebuild build - -to build the configuration but nothing more. This is useful to see -whether everything compiles cleanly. - -If you have a machine that supports hardware virtualisation, you -can also test the new configuration in a sandbox by building and -running a QEMU virtual machine that contains the -desired configuration. Just do - - -$ nixos-rebuild build-vm -$ ./result/bin/run-*-vm - - -The VM does not have any data from your host system, so your existing -user accounts and home directories will not be available. You can -forward ports on the host to the guest. For instance, the following -will forward host port 2222 to guest port 22 (SSH): - - -$ QEMU_NET_OPTS="hostfwd=tcp::2222-:22" ./result/bin/run-*-vm - - -allowing you to log in via SSH (assuming you have set the appropriate -passwords or SSH authorized keys): - - -$ ssh -p 2222 localhost - - - - -
- - - - -
- -Upgrading NixOS - -The best way to keep your NixOS installation up to date is to -use one of the NixOS channels. A channel is a -Nix mechanism for distributing Nix expressions and associated -binaries. The NixOS channels are updated automatically from NixOS’s -Git repository after certain tests have passed and all packages have -been built. These channels are: - - - - Stable channels, such as nixos-14.04. - These only get conservative bug fixes and package upgrades. For - instance, a channel update may cause the Linux kernel on your - system to be upgraded from 3.4.66 to 3.4.67 (a minor bug fix), but - not from 3.4.x to - 3.11.x (a major change that has the - potential to break things). Stable channels are generally - maintained until the next stable branch is created. - - - The unstable channel, nixos-unstable. - This corresponds to NixOS’s main development branch, and may thus - see radical changes between channel updates. It’s not recommended - for production systems. - - - -To see what channels are available, go to . (Note that the URIs of the -various channels redirect to a directory that contains the channel’s -latest version and includes ISO images and VirtualBox -appliances.) - -When you first install NixOS, you’re automatically subscribed to -the NixOS channel that corresponds to your installation source. For -instance, if you installed from a 14.04 ISO, you will be subscribed to -the nixos-14.04 channel. To see which NixOS -channel you’re subscribed to, run the following as root: - - -$ nix-channel --list | grep nixos -nixos https://nixos.org/channels/nixos-unstable - - -To switch to a different NixOS channel, do - - -$ nix-channel --add http://nixos.org/channels/channel-name nixos - - -(Be sure to include the nixos parameter at the -end.) For instance, to use the NixOS 14.04 stable channel: - - -$ nix-channel --add http://nixos.org/channels/nixos-14.04 nixos - - -But it you want to live on the bleeding edge: - - -$ nix-channel --add http://nixos.org/channels/nixos-unstable nixos - - - - -You can then upgrade NixOS to the latest version in your chosen -channel by running - - -$ nixos-rebuild switch --upgrade - - -which is equivalent to the more verbose nix-channel --update -nixos; nixos-rebuild switch. - -It is generally safe to switch back and forth between -channels. The only exception is that a newer NixOS may also have a -newer Nix version, which may involve an upgrade of Nix’s database -schema. This cannot be undone easily, so in that case you will not be -able to go back to your original channel. - -
- -
diff --git a/nixos/doc/manual/installation/changing-config.xml b/nixos/doc/manual/installation/changing-config.xml new file mode 100644 index 00000000000..aa31742434e --- /dev/null +++ b/nixos/doc/manual/installation/changing-config.xml @@ -0,0 +1,90 @@ + + +Changing the Configuration + +The file /etc/nixos/configuration.nix +contains the current configuration of your machine. Whenever you’ve +changed something to that file, you should do + + +$ nixos-rebuild switch + +to build the new configuration, make it the default configuration for +booting, and try to realise the configuration in the running system +(e.g., by restarting system services). + +These commands must be executed as root, so you should +either run them from a root shell or by prefixing them with +sudo -i. + +You can also do + + +$ nixos-rebuild test + +to build the configuration and switch the running system to it, but +without making it the boot default. So if (say) the configuration +locks up your machine, you can just reboot to get back to a working +configuration. + +There is also + + +$ nixos-rebuild boot + +to build the configuration and make it the boot default, but not +switch to it now (so it will only take effect after the next +reboot). + +You can make your configuration show up in a different submenu +of the GRUB 2 boot screen by giving it a different profile +name, e.g. + + +$ nixos-rebuild switch -p test + +which causes the new configuration (and previous ones created using +-p test) to show up in the GRUB submenu “NixOS - +Profile 'test'”. This can be useful to separate test configurations +from “stable” configurations. + +Finally, you can do + + +$ nixos-rebuild build + +to build the configuration but nothing more. This is useful to see +whether everything compiles cleanly. + +If you have a machine that supports hardware virtualisation, you +can also test the new configuration in a sandbox by building and +running a QEMU virtual machine that contains the +desired configuration. Just do + + +$ nixos-rebuild build-vm +$ ./result/bin/run-*-vm + + +The VM does not have any data from your host system, so your existing +user accounts and home directories will not be available. You can +forward ports on the host to the guest. For instance, the following +will forward host port 2222 to guest port 22 (SSH): + + +$ QEMU_NET_OPTS="hostfwd=tcp::2222-:22" ./result/bin/run-*-vm + + +allowing you to log in via SSH (assuming you have set the appropriate +passwords or SSH authorized keys): + + +$ ssh -p 2222 localhost + + + + + diff --git a/nixos/doc/manual/installation/installation.xml b/nixos/doc/manual/installation/installation.xml new file mode 100644 index 00000000000..ee61bedc418 --- /dev/null +++ b/nixos/doc/manual/installation/installation.xml @@ -0,0 +1,21 @@ + + +Installation + + + +This section describes how to obtain, install, and configure +NixOS for first-time use. + + + + + + + + + diff --git a/nixos/doc/manual/installation/installing-uefi.xml b/nixos/doc/manual/installation/installing-uefi.xml new file mode 100644 index 00000000000..dbd5606c4a5 --- /dev/null +++ b/nixos/doc/manual/installation/installing-uefi.xml @@ -0,0 +1,51 @@ +
+ +UEFI Installation + +NixOS can also be installed on UEFI systems. The procedure +is by and large the same as a BIOS installation, with the following +changes: + + + + You should boot the live CD in UEFI mode (consult your + specific hardware's documentation for instructions). You may find + the rEFInd + boot manager useful. + + + Instead of fdisk, you should use + gdisk to partition your disks. You will need to + have a separate partition for /boot with + partition code EF00, and it should be formatted as a + vfat filesystem. + + + You must set to + true. nixos-generate-config + should do this automatically for new configurations when booted in + UEFI mode. + + + After having mounted your installation partition to + /mnt, you must mount the boot partition + to /mnt/boot. + + + You may want to look at the options starting with + and + as well. + + + To see console messages during early boot, add "fbcon" + to your . + + + + +
diff --git a/nixos/doc/manual/installation/installing-usb.xml b/nixos/doc/manual/installation/installing-usb.xml new file mode 100644 index 00000000000..97e3d2eaa1c --- /dev/null +++ b/nixos/doc/manual/installation/installing-usb.xml @@ -0,0 +1,30 @@ +
+ +Booting from a USB Drive + +For systems without CD drive, the NixOS livecd can be booted from +a usb stick. For non-UEFI installations, +unetbootin +will work. For UEFI installations, you should mount the ISO, copy its contents +verbatim to your drive, then either: + + + + Change the label of the disk partition to the label of the ISO + (visible with the blkid command), or + + + Edit loader/entries/nixos-livecd.conf on the drive + and change the root= field in the options + line to point to your drive (see the documentation on root= + in + the kernel documentation for more details). + + + + +
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml new file mode 100644 index 00000000000..b140c56fbee --- /dev/null +++ b/nixos/doc/manual/installation/installing.xml @@ -0,0 +1,264 @@ + + +Installing NixOS + + + + Boot from the CD. + + The CD contains a basic NixOS installation. (It + also contains Memtest86+, useful if you want to test new hardware.) + When it’s finished booting, it should have detected most of your + hardware and brought up networking (check + ifconfig). Networking is necessary for the + installer, since it will download lots of stuff (such as source + tarballs or Nixpkgs channel binaries). It’s best if you have a DHCP + server on your network. Otherwise configure networking manually + using ifconfig. + + The NixOS manual is available on virtual console 8 + (press Alt+F8 to access). + + Login as root and the empty + password. + + If you downloaded the graphical ISO image, you can + run start display-manager to start KDE. + + The NixOS installer doesn’t do any partitioning or + formatting yet, so you need to that yourself. Use the following + commands: + + + + For partitioning: + fdisk. + + For initialising Ext4 partitions: + mkfs.ext4. It is recommended that you assign a + unique symbolic label to the file system using the option + , since this + makes the file system configuration independent from device + changes. For example: + + +$ mkfs.ext4 -L nixos /dev/sda1 + + + + For creating swap partitions: + mkswap. Again it’s recommended to assign a + label to the swap partition: . + + For creating LVM volumes, the LVM commands, e.g., + + +$ pvcreate /dev/sda1 /dev/sdb1 +$ vgcreate MyVolGroup /dev/sda1 /dev/sdb1 +$ lvcreate --size 2G --name bigdisk MyVolGroup +$ lvcreate --size 1G --name smalldisk MyVolGroup + + + + For creating software RAID devices, use + mdadm. + + + + + + Mount the target file system on which NixOS should + be installed on /mnt, e.g. + + +$ mount /dev/disk/by-label/nixos /mnt + + + + + If your machine has a limited amount of memory, you + may want to activate swap devices now (swapon + device). The installer (or + rather, the build actions that it may spawn) may need quite a bit of + RAM, depending on your configuration. + + + + You now need to create a file + /mnt/etc/nixos/configuration.nix that + specifies the intended configuration of the system. This is + because NixOS has a declarative configuration + model: you create or edit a description of the desired + configuration of your system, and then NixOS takes care of making + it happen. The syntax of the NixOS configuration file is + described in , while a + list of available configuration options appears in . A minimal example is shown in . + + The command nixos-generate-config can + generate an initial configuration file for you: + + +$ nixos-generate-config --root /mnt + + You should then edit + /mnt/etc/nixos/configuration.nix to suit your + needs: + + +$ nano /mnt/etc/nixos/configuration.nix + + + The vim text editor is also available. + + You must set the option + to specify on which disk + the GRUB boot loader is to be installed. Without it, NixOS cannot + boot. + + Another critical option is , + specifying the file systems that need to be mounted by NixOS. + However, you typically don’t need to set it yourself, because + nixos-generate-config sets it automatically in + /mnt/etc/nixos/hardware-configuration.nix + from your currently mounted file systems. (The configuration file + hardware-configuration.nix is included from + configuration.nix and will be overwritten by + future invocations of nixos-generate-config; + thus, you generally should not modify it.) + + Depending on your hardware configuration or type of + file system, you may need to set the option + to include the kernel + modules that are necessary for mounting the root file system, + otherwise the installed system will not be able to boot. (If this + happens, boot from the CD again, mount the target file system on + /mnt, fix + /mnt/etc/nixos/configuration.nix and rerun + nixos-install.) In most cases, + nixos-generate-config will figure out the + required modules. + + Examples of real-world NixOS configuration files can be + found at . + + + + Do the installation: + + +$ nixos-install + + Cross fingers. If this fails due to a temporary problem (such as + a network issue while downloading binaries from the NixOS binary + cache), you can just re-run nixos-install. + Otherwise, fix your configuration.nix and + then re-run nixos-install. + + As the last step, nixos-install will ask + you to set the password for the root user, e.g. + + +setting root password... +Enter new UNIX password: *** +Retype new UNIX password: *** + + + + + + + If everything went well: + + +$ reboot + + + + + + You should now be able to boot into the installed NixOS. The GRUB boot menu shows a list + of available configurations (initially just one). Every time + you change the NixOS configuration (seeChanging + Configuration ), a new item appears in the menu. This allows you to + easily roll back to another configuration if something goes wrong. + + You should log in and change the root + password with passwd. + + You’ll probably want to create some user accounts as well, + which can be done with useradd: + + +$ useradd -c 'Eelco Dolstra' -m eelco +$ passwd eelco + + + + You may also want to install some software. For instance, + + +$ nix-env -qa \* + + shows what packages are available, and + + +$ nix-env -i w3m + + install the w3m browser. + + + + + +To summarise, shows a +typical sequence of commands for installing NixOS on an empty hard +drive (here /dev/sda). shows a corresponding configuration Nix expression. + +Commands for Installing NixOS on <filename>/dev/sda</filename> + +$ fdisk /dev/sda # (or whatever device you want to install on) +$ mkfs.ext4 -L nixos /dev/sda1 +$ mkswap -L swap /dev/sda2 +$ swapon /dev/sda2 +$ mount /dev/disk/by-label/nixos /mnt +$ nixos-generate-config --root /mnt +$ nano /mnt/etc/nixos/configuration.nix +$ nixos-install +$ reboot + + +NixOS Configuration + +{ config, pkgs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + boot.loader.grub.device = "/dev/sda"; + + # Note: setting fileSystems is generally not + # necessary, since nixos-generate-config figures them out + # automatically in hardware-configuration.nix. + #fileSystems."/".device = "/dev/disk/by-label/nixos"; + + # Enable the OpenSSH server. + services.sshd.enable = true; +} + + + + + + diff --git a/nixos/doc/manual/installation/obtaining.xml b/nixos/doc/manual/installation/obtaining.xml new file mode 100644 index 00000000000..ceeeb5c0ac0 --- /dev/null +++ b/nixos/doc/manual/installation/obtaining.xml @@ -0,0 +1,44 @@ + + +Obtaining NixOS + +NixOS ISO images can be downloaded from the NixOS +homepage. These can be burned onto a CD. It is also possible +to copy them onto a USB stick and install NixOS from there. For +details, see the NixOS +Wiki. + +As an alternative to installing NixOS yourself, you can get a +running NixOS system through several other means: + + + + Using virtual appliances in Open Virtualization Format (OVF) + that can be imported into VirtualBox. These are available from + the NixOS + homepage. + + + Using AMIs for Amazon’s EC2. To find one for your region + and instance type, please refer to the list + of most recent AMIs. + + + Using NixOps, the NixOS-based cloud deployment tool, which + allows you to provision VirtualBox and EC2 NixOS instances from + declarative specifications. Check out the NixOps + homepage for details. + + + + + + diff --git a/nixos/doc/manual/installation/upgrading.xml b/nixos/doc/manual/installation/upgrading.xml new file mode 100644 index 00000000000..ed71a7e23a3 --- /dev/null +++ b/nixos/doc/manual/installation/upgrading.xml @@ -0,0 +1,90 @@ + + +Upgrading NixOS + +The best way to keep your NixOS installation up to date is to +use one of the NixOS channels. A channel is a +Nix mechanism for distributing Nix expressions and associated +binaries. The NixOS channels are updated automatically from NixOS’s +Git repository after certain tests have passed and all packages have +been built. These channels are: + + + + Stable channels, such as nixos-14.04. + These only get conservative bug fixes and package upgrades. For + instance, a channel update may cause the Linux kernel on your + system to be upgraded from 3.4.66 to 3.4.67 (a minor bug fix), but + not from 3.4.x to + 3.11.x (a major change that has the + potential to break things). Stable channels are generally + maintained until the next stable branch is created. + + + The unstable channel, nixos-unstable. + This corresponds to NixOS’s main development branch, and may thus + see radical changes between channel updates. It’s not recommended + for production systems. + + + +To see what channels are available, go to . (Note that the URIs of the +various channels redirect to a directory that contains the channel’s +latest version and includes ISO images and VirtualBox +appliances.) + +When you first install NixOS, you’re automatically subscribed to +the NixOS channel that corresponds to your installation source. For +instance, if you installed from a 14.04 ISO, you will be subscribed to +the nixos-14.04 channel. To see which NixOS +channel you’re subscribed to, run the following as root: + + +$ nix-channel --list | grep nixos +nixos https://nixos.org/channels/nixos-unstable + + +To switch to a different NixOS channel, do + + +$ nix-channel --add http://nixos.org/channels/channel-name nixos + + +(Be sure to include the nixos parameter at the +end.) For instance, to use the NixOS 14.04 stable channel: + + +$ nix-channel --add http://nixos.org/channels/nixos-14.04 nixos + + +But it you want to live on the bleeding edge: + + +$ nix-channel --add http://nixos.org/channels/nixos-unstable nixos + + + + +You can then upgrade NixOS to the latest version in your chosen +channel by running + + +$ nixos-rebuild switch --upgrade + + +which is equivalent to the more verbose nix-channel --update +nixos; nixos-rebuild switch. + +It is generally safe to switch back and forth between +channels. The only exception is that a newer NixOS may also have a +newer Nix version, which may involve an upgrade of Nix’s database +schema. This cannot be undone easily, so in that case you will not be +able to go back to your original channel. + + diff --git a/nixos/doc/manual/manual.xml b/nixos/doc/manual/manual.xml index f51a04cdf25..a3ad76209ac 100644 --- a/nixos/doc/manual/manual.xml +++ b/nixos/doc/manual/manual.xml @@ -1,15 +1,14 @@ - + xmlns:xi="http://www.w3.org/2001/XInclude" + version="5.0" + xml:id="NixOSManual"> + - NixOS Manual Version - - Preface @@ -29,19 +28,14 @@ - - - - + + + - - - - - + - Configuration options + Configuration Options diff --git a/nixos/doc/manual/release-notes/release-notes.xml b/nixos/doc/manual/release-notes/release-notes.xml new file mode 100644 index 00000000000..fb82d5adcef --- /dev/null +++ b/nixos/doc/manual/release-notes/release-notes.xml @@ -0,0 +1,17 @@ + + +Release Notes + + +This section lists the release notes for each stable version of NixOS. + + + + + + + diff --git a/nixos/doc/manual/release-notes/rl-1310.xml b/nixos/doc/manual/release-notes/rl-1310.xml new file mode 100644 index 00000000000..234fb5a643f --- /dev/null +++ b/nixos/doc/manual/release-notes/rl-1310.xml @@ -0,0 +1,11 @@ + + +Release 13.10 (“Aardvark”, 2013/10/31) + +This is the first stable release branch of NixOS. + + \ No newline at end of file diff --git a/nixos/doc/manual/release-notes.xml b/nixos/doc/manual/release-notes/rl-1404.xml similarity index 83% rename from nixos/doc/manual/release-notes.xml rename to nixos/doc/manual/release-notes/rl-1404.xml index 52e88bb4c86..74af1ed1274 100644 --- a/nixos/doc/manual/release-notes.xml +++ b/nixos/doc/manual/release-notes/rl-1404.xml @@ -1,34 +1,8 @@ - - -Release notes - - - -
- -Release 14.10 (“Caterpillar”, 2014/10/??) - -When upgrading from a previous release, please be aware of the -following incompatible changes: - - - - The host side of a container virtual Ethernet pair - is now called ve-container-name - rather than c-container-name. - - - - - -
- - - - -
+ Release 14.04 (“Baboon”, 2014/04/30) @@ -183,16 +157,4 @@ networking.firewall.enable = false; -
- - - -
- -Release 13.10 (“Aardvark”, 2013/10/31) - -This is the first stable release branch of NixOS. - -
- -
+ \ No newline at end of file diff --git a/nixos/doc/manual/release-notes/rl-1410.xml b/nixos/doc/manual/release-notes/rl-1410.xml new file mode 100644 index 00000000000..09da15ce236 --- /dev/null +++ b/nixos/doc/manual/release-notes/rl-1410.xml @@ -0,0 +1,22 @@ + + +Release 14.10 (“Caterpillar”, 2014/10/??) + +When upgrading from a previous release, please be aware of the +following incompatible changes: + + + + The host side of a container virtual Ethernet pair + is now called ve-container-name + rather than c-container-name. + + + + + + \ No newline at end of file diff --git a/nixos/doc/manual/running.xml b/nixos/doc/manual/running.xml deleted file mode 100644 index e1a358df2aa..00000000000 --- a/nixos/doc/manual/running.xml +++ /dev/null @@ -1,369 +0,0 @@ - - -Running NixOS - -This chapter describes various aspects of managing a running -NixOS system, such as how to use the systemd -service manager. - - - - -
Service management - -In NixOS, all system services are started and monitored using -the systemd program. Systemd is the “init” process of the system -(i.e. PID 1), the parent of all other processes. It manages a set of -so-called “units”, which can be things like system services -(programs), but also mount points, swap files, devices, targets -(groups of units) and more. Units can have complex dependencies; for -instance, one unit can require that another unit must be successfully -started before the first unit can be started. When the system boots, -it starts a unit named default.target; the -dependencies of this unit cause all system services to be started, -file systems to be mounted, swap files to be activated, and so -on. - -The command systemctl is the main way to -interact with systemd. Without any arguments, it -shows the status of active units: - - -$ systemctl --.mount loaded active mounted / -swapfile.swap loaded active active /swapfile -sshd.service loaded active running SSH Daemon -graphical.target loaded active active Graphical Interface -... - - - - -You can ask for detailed status information about a unit, for -instance, the PostgreSQL database service: - - -$ systemctl status postgresql.service -postgresql.service - PostgreSQL Server - Loaded: loaded (/nix/store/pn3q73mvh75gsrl8w7fdlfk3fq5qm5mw-unit/postgresql.service) - Active: active (running) since Mon, 2013-01-07 15:55:57 CET; 9h ago - Main PID: 2390 (postgres) - CGroup: name=systemd:/system/postgresql.service - ├─2390 postgres - ├─2418 postgres: writer process - ├─2419 postgres: wal writer process - ├─2420 postgres: autovacuum launcher process - ├─2421 postgres: stats collector process - └─2498 postgres: zabbix zabbix [local] idle - -Jan 07 15:55:55 hagbard postgres[2394]: [1-1] LOG: database system was shut down at 2013-01-07 15:55:05 CET -Jan 07 15:55:57 hagbard postgres[2390]: [1-1] LOG: database system is ready to accept connections -Jan 07 15:55:57 hagbard postgres[2420]: [1-1] LOG: autovacuum launcher started -Jan 07 15:55:57 hagbard systemd[1]: Started PostgreSQL Server. - - -Note that this shows the status of the unit (active and running), all -the processes belonging to the service, as well as the most recent log -messages from the service. - - - -Units can be stopped, started or restarted: - - -$ systemctl stop postgresql.service -$ systemctl start postgresql.service -$ systemctl restart postgresql.service - - -These operations are synchronous: they wait until the service has -finished starting or stopping (or has failed). Starting a unit will -cause the dependencies of that unit to be started as well (if -necessary). - - - -
- - - - -
Rebooting and shutting down - -The system can be shut down (and automatically powered off) by -doing: - - -$ shutdown - - -This is equivalent to running systemctl -poweroff. - -To reboot the system, run - - -$ reboot - - -which is equivalent to systemctl reboot. -Alternatively, you can quickly reboot the system using -kexec, which bypasses the BIOS by directly loading -the new kernel into memory: - - -$ systemctl kexec - - - - -The machine can be suspended to RAM (if supported) using -systemctl suspend, and suspended to disk using -systemctl hibernate. - -These commands can be run by any user who is logged in locally, -i.e. on a virtual console or in X11; otherwise, the user is asked for -authentication. - -
- - - - -
User sessions - -Systemd keeps track of all users who are logged into the system -(e.g. on a virtual console or remotely via SSH). The command -loginctl allows querying and manipulating user -sessions. For instance, to list all user sessions: - - -$ loginctl - SESSION UID USER SEAT - c1 500 eelco seat0 - c3 0 root seat0 - c4 500 alice - - -This shows that two users are logged in locally, while another is -logged in remotely. (“Seats” are essentially the combinations of -displays and input devices attached to the system; usually, there is -only one seat.) To get information about a session: - - -$ loginctl session-status c3 -c3 - root (0) - Since: Tue, 2013-01-08 01:17:56 CET; 4min 42s ago - Leader: 2536 (login) - Seat: seat0; vc3 - TTY: /dev/tty3 - Service: login; type tty; class user - State: online - CGroup: name=systemd:/user/root/c3 - ├─ 2536 /nix/store/10mn4xip9n7y9bxqwnsx7xwx2v2g34xn-shadow-4.1.5.1/bin/login -- - ├─10339 -bash - └─10355 w3m nixos.org - - -This shows that the user is logged in on virtual console 3. It also -lists the processes belonging to this session. Since systemd keeps -track of this, you can terminate a session in a way that ensures that -all the session’s processes are gone: - - -$ loginctl terminate-session c3 - - - - -
- - - - -
Control groups - -To keep track of the processes in a running system, systemd uses -control groups (cgroups). A control group is a -set of processes used to allocate resources such as CPU, memory or I/O -bandwidth. There can be multiple control group hierarchies, allowing -each kind of resource to be managed independently. - -The command systemd-cgls lists all control -groups in the systemd hierarchy, which is what -systemd uses to keep track of the processes belonging to each service -or user session: - - -$ systemd-cgls -├─user -│ └─eelco -│ └─c1 -│ ├─ 2567 -:0 -│ ├─ 2682 kdeinit4: kdeinit4 Running... -│ ├─ ... -│ └─10851 sh -c less -R -└─system - ├─httpd.service - │ ├─2444 httpd -f /nix/store/3pyacby5cpr55a03qwbnndizpciwq161-httpd.conf -DNO_DETACH - │ └─... - ├─dhcpcd.service - │ └─2376 dhcpcd --config /nix/store/f8dif8dsi2yaa70n03xir8r653776ka6-dhcpcd.conf - └─ ... - - -Similarly, systemd-cgls cpu shows the cgroups in -the CPU hierarchy, which allows per-cgroup CPU scheduling priorities. -By default, every systemd service gets its own CPU cgroup, while all -user sessions are in the top-level CPU cgroup. This ensures, for -instance, that a thousand run-away processes in the -httpd.service cgroup cannot starve the CPU for one -process in the postgresql.service cgroup. (By -contrast, it they were in the same cgroup, then the PostgreSQL process -would get 1/1001 of the cgroup’s CPU time.) You can limit a service’s -CPU share in configuration.nix: - - -systemd.services.httpd.serviceConfig.CPUShares = 512; - - -By default, every cgroup has 1024 CPU shares, so this will halve the -CPU allocation of the httpd.service cgroup. - -There also is a memory hierarchy that -controls memory allocation limits; by default, all processes are in -the top-level cgroup, so any service or session can exhaust all -available memory. Per-cgroup memory limits can be specified in -configuration.nix; for instance, to limit -httpd.service to 512 MiB of RAM (excluding swap) -and 640 MiB of RAM (including swap): - - -systemd.services.httpd.serviceConfig.MemoryLimit = "512M"; -systemd.services.httpd.serviceConfig.ControlGroupAttribute = [ "memory.memsw.limit_in_bytes 640M" ]; - - - - -The command systemd-cgtop shows a -continuously updated list of all cgroups with their CPU and memory -usage. - -
- - - - -
Logging - -System-wide logging is provided by systemd’s -journal, which subsumes traditional logging -daemons such as syslogd and klogd. Log entries are kept in binary -files in /var/log/journal/. The command -journalctl allows you to see the contents of the -journal. For example, - - -$ journalctl -b - - -shows all journal entries since the last reboot. (The output of -journalctl is piped into less by -default.) You can use various options and match operators to restrict -output to messages of interest. For instance, to get all messages -from PostgreSQL: - - -$ journalctl -u postgresql.service --- Logs begin at Mon, 2013-01-07 13:28:01 CET, end at Tue, 2013-01-08 01:09:57 CET. -- -... -Jan 07 15:44:14 hagbard postgres[2681]: [2-1] LOG: database system is shut down --- Reboot -- -Jan 07 15:45:10 hagbard postgres[2532]: [1-1] LOG: database system was shut down at 2013-01-07 15:44:14 CET -Jan 07 15:45:13 hagbard postgres[2500]: [1-1] LOG: database system is ready to accept connections - - -Or to get all messages since the last reboot that have at least a -“critical” severity level: - - -$ journalctl -b -p crit -Dec 17 21:08:06 mandark sudo[3673]: pam_unix(sudo:auth): auth could not identify password for [alice] -Dec 29 01:30:22 mandark kernel[6131]: [1053513.909444] CPU6: Core temperature above threshold, cpu clock throttled (total events = 1) - - - - -The system journal is readable by root and by users in the -wheel and systemd-journal -groups. All users have a private journal that can be read using -journalctl. - -
- - - - -
Cleaning up the Nix store - -Nix has a purely functional model, meaning that packages are -never upgraded in place. Instead new versions of packages end up in a -different location in the Nix store (/nix/store). -You should periodically run Nix’s garbage -collector to remove old, unreferenced packages. This is -easy: - - -$ nix-collect-garbage - - -Alternatively, you can use a systemd unit that does the same in the -background: - - -$ systemctl start nix-gc.service - - -You can tell NixOS in configuration.nix to run -this unit automatically at certain points in time, for instance, every -night at 03:15: - - -nix.gc.automatic = true; -nix.gc.dates = "03:15"; - - - - -The commands above do not remove garbage collector roots, such -as old system configurations. Thus they do not remove the ability to -roll back to previous configurations. The following command deletes -old roots, removing the ability to roll back to them: - -$ nix-collect-garbage -d - -You can also do this for specific profiles, e.g. - -$ nix-env -p /nix/var/nix/profiles/per-user/eelco/profile --delete-generations old - -Note that NixOS system configurations are stored in the profile -/nix/var/nix/profiles/system. - -Another way to reclaim disk space (often as much as 40% of the -size of the Nix store) is to run Nix’s store optimiser, which seeks -out identical files in the store and replaces them with hard links to -a single copy. - -$ nix-store --optimise - -Since this command needs to read the entire Nix store, it can take -quite a while to finish. - -
- - -
diff --git a/nixos/doc/manual/style.css b/nixos/doc/manual/style.css index e2204c159e2..3118b37ead1 100644 --- a/nixos/doc/manual/style.css +++ b/nixos/doc/manual/style.css @@ -262,7 +262,6 @@ table.simplelist margin-bottom: 1em; } -div.affiliation -{ - font-style: italic; -} \ No newline at end of file +div.navheader table, div.navfooter table { + box-shadow: none; +} diff --git a/nixos/doc/manual/troubleshooting.xml b/nixos/doc/manual/troubleshooting.xml deleted file mode 100644 index c7d65112b64..00000000000 --- a/nixos/doc/manual/troubleshooting.xml +++ /dev/null @@ -1,199 +0,0 @@ - - -Troubleshooting - - - - -
Boot problems - -If NixOS fails to boot, there are a number of kernel command -line parameters that may help you to identify or fix the issue. You -can add these parameters in the GRUB boot menu by pressing “e” to -modify the selected boot entry and editing the line starting with -linux. The following are some useful kernel command -line parameters that are recognised by the NixOS boot scripts or by -systemd: - - - - boot.shell_on_fail - Start a root shell if something goes wrong in - stage 1 of the boot process (the initial ramdisk). This is - disabled by default because there is no authentication for the - root shell. - - - boot.debug1 - Start an interactive shell in stage 1 before - anything useful has been done. That is, no modules have been - loaded and no file systems have been mounted, except for - /proc and - /sys. - - - boot.trace - Print every shell command executed by the stage 1 - and 2 boot scripts. - - - single - Boot into rescue mode (a.k.a. single user mode). - This will cause systemd to start nothing but the unit - rescue.target, which runs - sulogin to prompt for the root password and - start a root login shell. Exiting the shell causes the system to - continue with the normal boot process. - - - systemd.log_level=debug systemd.log_target=console - Make systemd very verbose and send log messages to - the console instead of the journal. - - - - -For more parameters recognised by systemd, see -systemd1. - -If no login prompts or X11 login screens appear (e.g. due to -hanging dependencies), you can press Alt+ArrowUp. If you’re lucky, -this will start rescue mode (described above). (Also note that since -most units have a 90-second timeout before systemd gives up on them, -the agetty login prompts should appear eventually -unless something is very wrong.) - -
- - - - -
Maintenance mode - -You can enter rescue mode by running: - - -$ systemctl rescue - -This will eventually give you a single-user root shell. Systemd will -stop (almost) all system services. To get out of maintenance mode, -just exit from the rescue shell. - -
- - - - -
Rolling back configuration changes - -After running nixos-rebuild to switch to a -new configuration, you may find that the new configuration doesn’t -work very well. In that case, there are several ways to return to a -previous configuration. - -First, the GRUB boot manager allows you to boot into any -previous configuration that hasn’t been garbage-collected. These -configurations can be found under the GRUB submenu “NixOS - All -configurations”. This is especially useful if the new configuration -fails to boot. After the system has booted, you can make the selected -configuration the default for subsequent boots: - - -$ /run/current-system/bin/switch-to-configuration boot - - - -Second, you can switch to the previous configuration in a running -system: - - -$ nixos-rebuild switch --rollback - -This is equivalent to running: - - -$ /nix/var/nix/profiles/system-N-link/bin/switch-to-configuration switch - -where N is the number of the NixOS system -configuration. To get a list of the available configurations, do: - - -$ ls -l /nix/var/nix/profiles/system-*-link -... -lrwxrwxrwx 1 root root 78 Aug 12 13:54 /nix/var/nix/profiles/system-268-link -> /nix/store/202b...-nixos-13.07pre4932_5a676e4-4be1055 - - - - -
- - - - -
Nix store corruption - -After a system crash, it’s possible for files in the Nix store -to become corrupted. (For instance, the Ext4 file system has the -tendency to replace un-synced files with zero bytes.) NixOS tries -hard to prevent this from happening: it performs a -sync before switching to a new configuration, and -Nix’s database is fully transactional. If corruption still occurs, -you may be able to fix it automatically. - -If the corruption is in a path in the closure of the NixOS -system configuration, you can fix it by doing - - -$ nixos-rebuild switch --repair - - -This will cause Nix to check every path in the closure, and if its -cryptographic hash differs from the hash recorded in Nix’s database, -the path is rebuilt or redownloaded. - -You can also scan the entire Nix store for corrupt paths: - - -$ nix-store --verify --check-contents --repair - - -Any corrupt paths will be redownloaded if they’re available in a -binary cache; otherwise, they cannot be repaired. - -
- - - - -
Nix network issues - -Nix uses a so-called binary cache to -optimise building a package from source into downloading it as a -pre-built binary. That is, whenever a command like -nixos-rebuild needs a path in the Nix store, Nix -will try to download that path from the Internet rather than build it -from source. The default binary cache is -http://cache.nixos.org/. If this cache is unreachable, Nix -operations may take a long time due to HTTP connection timeouts. You -can disable the use of the binary cache by adding , e.g. - - -$ nixos-rebuild switch --option use-binary-caches false - - -If you have an alternative binary cache at your disposal, you can use -it instead: - - -$ nixos-rebuild switch --option binary-caches http://my-cache.example.org/ - - - - -
- - -
diff --git a/nixos/lib/build-vms.nix b/nixos/lib/build-vms.nix index 498c0a37783..50b3b424166 100644 --- a/nixos/lib/build-vms.nix +++ b/nixos/lib/build-vms.nix @@ -48,10 +48,11 @@ rec { let interfacesNumbered = zipTwoLists config.virtualisation.vlans (range 1 255); interfaces = flip map interfacesNumbered ({ first, second }: - nameValuePair "eth${toString second}" - { ipAddress = "192.168.${toString first}.${toString m.second}"; - subnetMask = "255.255.255.0"; - }); + nameValuePair "eth${toString second}" { ip4 = + [ { address = "192.168.${toString first}.${toString m.second}"; + prefixLength = 24; + } ]; + }); in { key = "ip-address"; config = @@ -60,7 +61,7 @@ rec { networking.interfaces = listToAttrs interfaces; networking.primaryIPAddress = - optionalString (interfaces != []) (head interfaces).value.ipAddress; + optionalString (interfaces != []) (head (head interfaces).value.ip4).address; # Put the IP addresses of all VMs in this machine's # /etc/hosts file. If a machine has multiple diff --git a/nixos/lib/make-system-tarball.nix b/nixos/lib/make-system-tarball.nix index 8fed9a34882..3bd891fdbc2 100644 --- a/nixos/lib/make-system-tarball.nix +++ b/nixos/lib/make-system-tarball.nix @@ -15,6 +15,9 @@ # store path whose closure will be copied, and `symlink' is a # symlink to `object' that will be added to the tarball. storeContents ? [] + + # Extra tar arguments +, extraArgs ? "" }: stdenv.mkDerivation { @@ -22,7 +25,7 @@ stdenv.mkDerivation { builder = ./make-system-tarball.sh; buildInputs = [perl xz]; - inherit fileName pathsFromGraph; + inherit fileName pathsFromGraph extraArgs; # !!! should use XML. sources = map (x: x.source) contents; diff --git a/nixos/lib/make-system-tarball.sh b/nixos/lib/make-system-tarball.sh index 096d96ac1c8..2eb668115a6 100644 --- a/nixos/lib/make-system-tarball.sh +++ b/nixos/lib/make-system-tarball.sh @@ -50,7 +50,7 @@ done mkdir -p $out/tarball -tar cvJf $out/tarball/$fileName.tar.xz * +tar cvJf $out/tarball/$fileName.tar.xz * $extraArgs mkdir -p $out/nix-support echo $system > $out/nix-support/system diff --git a/nixos/maintainers/scripts/gce/create-gce.sh b/nixos/maintainers/scripts/gce/create-gce.sh index 8bf36f33c7d..fc476fb6e40 100755 --- a/nixos/maintainers/scripts/gce/create-gce.sh +++ b/nixos/maintainers/scripts/gce/create-gce.sh @@ -1,5 +1,6 @@ #! /bin/sh -e +BUCKET_NAME=${BUCKET_NAME:-nixos} export NIX_PATH=nixpkgs=../../../.. export NIXOS_CONFIG=$(dirname $(readlink -f $0))/../../../modules/virtualisation/google-compute-image.nix export TIMESTAMP=$(date +%Y%m%d%H%M) @@ -8,7 +9,7 @@ nix-build '' \ -A config.system.build.googleComputeImage --argstr system x86_64-linux -o gce --option extra-binary-caches http://hydra.nixos.org -j 10 img=$(echo gce/*.tar.gz) -if ! gsutil ls gs://nixos/$(basename $img); then - gsutil cp $img gs://nixos/$(basename $img) +if ! gsutil ls gs://${BUCKET_NAME}/$(basename $img); then + gsutil cp $img gs://${BUCKET_NAME}/$(basename $img) fi -gcutil addimage $(basename $img .raw.tar.gz | sed 's|\.|-|' | sed 's|_|-|') gs://nixos/$(basename $img) +gcloud compute images create $(basename $img .raw.tar.gz | sed 's|\.|-|' | sed 's|_|-|') --source-uri gs://${BUCKET_NAME}/$(basename $img) diff --git a/nixos/modules/config/fonts/fonts.nix b/nixos/modules/config/fonts/fonts.nix index 49b1e1d42a3..f6060a910a1 100644 --- a/nixos/modules/config/fonts/fonts.nix +++ b/nixos/modules/config/fonts/fonts.nix @@ -11,7 +11,7 @@ with lib; # TODO: find another name for it. fonts = mkOption { type = types.listOf types.path; - example = [ pkgs.dejavu_fonts ]; + example = literalExample "[ pkgs.dejavu_fonts ]"; description = "List of primary font paths."; apply = list: list ++ [ # - the user's current profile diff --git a/nixos/modules/config/gtk-exe-env.nix b/nixos/modules/config/gtk-exe-env.nix new file mode 100644 index 00000000000..b565072e3a7 --- /dev/null +++ b/nixos/modules/config/gtk-exe-env.nix @@ -0,0 +1,41 @@ +{ config, pkgs, lib, ... }: + +{ + imports = [ + ]; + + options = { + gtkPlugins = lib.mkOption { + type = lib.types.listOf lib.types.path; + default = []; + description = '' + Plugin packages for GTK+ such as input methods. + ''; + }; + }; + + config = { + environment.variables = if builtins.length config.gtkPlugins > 0 + then + let + paths = [ pkgs.gtk2 pkgs.gtk3 ] ++ config.gtkPlugins; + env = pkgs.buildEnv { + name = "gtk-exe-env"; + + inherit paths; + + postBuild = lib.concatStringsSep "\n" + (map (d: d.gtkExeEnvPostBuild or "") paths); + + ignoreCollisions = true; + }; + in { + GTK_EXE_PREFIX = builtins.toString env; + GTK_PATH = [ + "${env}/lib/gtk-2.0" + "${env}/lib/gtk-3.0" + ]; + } + else {}; + }; +} diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix index fd1e55f673a..136a5bda745 100644 --- a/nixos/modules/config/networking.nix +++ b/nixos/modules/config/networking.nix @@ -7,6 +7,9 @@ with lib; let cfg = config.networking; + dnsmasqResolve = config.services.dnsmasq.enable && + config.services.dnsmasq.resolveLocalQueries; + hasLocalResolver = config.services.bind.enable || dnsmasqResolve; in @@ -74,9 +77,12 @@ in '' + optionalString cfg.dnsSingleRequest '' # only send one DNS request at a time resolv_conf_options='single-request' - '' + optionalString config.services.bind.enable '' + '' + optionalString hasLocalResolver '' # This hosts runs a full-blown DNS resolver. name_servers='127.0.0.1' + '' + optionalString dnsmasqResolve '' + dnsmasq_conf=/etc/dnsmasq-conf.conf + dnsmasq_resolv=/etc/dnsmasq-resolv.conf ''; }; diff --git a/nixos/modules/config/power-management.nix b/nixos/modules/config/power-management.nix index 17f3ed00b9b..32a7987617a 100644 --- a/nixos/modules/config/power-management.nix +++ b/nixos/modules/config/power-management.nix @@ -35,7 +35,9 @@ in powerUpCommands = mkOption { type = types.lines; default = ""; - example = "${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda"; + example = literalExample '' + "''${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda" + ''; description = '' Commands executed when the machine powers up. That is, @@ -47,7 +49,9 @@ in powerDownCommands = mkOption { type = types.lines; default = ""; - example = "${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda"; + example = literalExample '' + "''${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda" + ''; description = '' Commands executed when the machine powers down. That is, diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix index 96593885e5b..1b84bbaf10c 100644 --- a/nixos/modules/config/pulseaudio.nix +++ b/nixos/modules/config/pulseaudio.nix @@ -81,7 +81,7 @@ in { package = mkOption { type = types.package; default = pulseaudioFull; - example = literalExample "pulseaudioFull"; + example = literalExample "pkgs.pulseaudioFull"; description = '' The PulseAudio derivation to use. This can be used to disable features (such as JACK support, Bluetooth) that are enabled in the diff --git a/nixos/modules/config/qt-plugin-env.nix b/nixos/modules/config/qt-plugin-env.nix new file mode 100644 index 00000000000..c5986560416 --- /dev/null +++ b/nixos/modules/config/qt-plugin-env.nix @@ -0,0 +1,37 @@ +{ config, pkgs, lib, ... }: + +{ + imports = [ + ]; + + options = { + qtPlugins = lib.mkOption { + type = lib.types.listOf lib.types.path; + default = []; + description = '' + Plugin packages for Qt such as input methods. + ''; + }; + }; + + config = { + environment.variables = if builtins.length config.qtPlugins > 0 + then + let + paths = [ pkgs.qt48 ] ++ config.qtPlugins; + env = pkgs.buildEnv { + name = "qt-plugin-env"; + + inherit paths; + + postBuild = lib.concatStringsSep "\n" + (map (d: d.qtPluginEnvPostBuild or "") paths); + + ignoreCollisions = true; + }; + in { + QT_PLUGIN_PATH = [ (builtins.toString env) ]; + } + else {}; + }; +} diff --git a/nixos/modules/config/shells-environment.nix b/nixos/modules/config/shells-environment.nix index cc079cdc585..2559c53ac16 100644 --- a/nixos/modules/config/shells-environment.nix +++ b/nixos/modules/config/shells-environment.nix @@ -122,7 +122,9 @@ in environment.binsh = mkOption { default = "${config.system.build.binsh}/bin/sh"; - example = "\${pkgs.dash}/bin/dash"; + example = literalExample '' + "''${pkgs.dash}/bin/dash" + ''; type = types.path; description = '' The shell executable that is linked system-wide to diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix index 6b4c38172e9..f3e86bfd201 100644 --- a/nixos/modules/config/system-path.nix +++ b/nixos/modules/config/system-path.nix @@ -63,7 +63,7 @@ in systemPackages = mkOption { type = types.listOf types.path; default = []; - example = "[ pkgs.icecat3 pkgs.thunderbird ]"; + example = literalExample "[ pkgs.firefox pkgs.thunderbird ]"; description = '' The set of packages that appear in /run/current-system/sw. These packages are diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix index 7783f13b14b..a55593c2bad 100644 --- a/nixos/modules/config/users-groups.nix +++ b/nixos/modules/config/users-groups.nix @@ -100,6 +100,36 @@ let description = "The path to the user's shell."; }; + subUidRanges = mkOption { + type = types.listOf types.optionSet; + default = []; + example = [ + { startUid = 1000; count = 1; } + { startUid = 100001; count = 65534; } + ]; + options = [ subordinateUidRange ]; + description = '' + Subordinate user ids that user is allowed to use. + They are set into /etc/subuid and are used + by newuidmap for user namespaces. + ''; + }; + + subGidRanges = mkOption { + type = types.listOf types.optionSet; + default = []; + example = [ + { startGid = 100; count = 1; } + { startGid = 1001; count = 999; } + ]; + options = [ subordinateGidRange ]; + description = '' + Subordinate group ids that user is allowed to use. + They are set into /etc/subgid and are used + by newgidmap for user namespaces. + ''; + }; + createHome = mkOption { type = types.bool; default = false; @@ -211,6 +241,36 @@ let }; + subordinateUidRange = { + startUid = mkOption { + type = types.int; + description = '' + Start of the range of subordinate user ids that user is + allowed to use. + ''; + }; + count = mkOption { + type = types.int; + default = 1; + description = ''Count of subordinate user ids''; + }; + }; + + subordinateGidRange = { + startGid = mkOption { + type = types.int; + description = '' + Start of the range of subordinate group ids that user is + allowed to use. + ''; + }; + count = mkOption { + type = types.int; + default = 1; + description = ''Count of subordinate group ids''; + }; + }; + getGroup = gname: let groups = mapAttrsToList (n: g: g) ( @@ -249,22 +309,36 @@ let u.description u.home u.shell ]; + filterNull = a: filter (x: hasAttr a x && getAttr a x != null); + sortOn = a: sort (as1: as2: lessThan (getAttr a as1) (getAttr a as2)); groupFile = pkgs.writeText "group" ( concatStringsSep "\n" (map (g: mkGroupEntry g.name) ( - let f = g: g.gid != null; in - sortOn "gid" (filter f (attrValues cfg.extraGroups)) + sortOn "gid" (filterNull "gid" (attrValues cfg.extraGroups)) )) ); passwdFile = pkgs.writeText "passwd" ( concatStringsSep "\n" (map (u: mkPasswdEntry u.name) ( - let f = u: u.createUser && (u.uid != null); in - sortOn "uid" (filter f (attrValues cfg.extraUsers)) + sortOn "uid" (filterNull "uid" (attrValues cfg.extraUsers)) )) ); + mkSubuidEntry = user: concatStrings ( + map (range: "${user.name}:${toString range.startUid}:${toString range.count}\n") + user.subUidRanges); + + subuidFile = concatStrings (map mkSubuidEntry ( + sortOn "uid" (filterNull "uid" (attrValues cfg.extraUsers)))); + + mkSubgidEntry = user: concatStrings ( + map (range: "${user.name}:${toString range.startGid}:${toString range.count}\n") + user.subGidRanges); + + subgidFile = concatStrings (map mkSubgidEntry ( + sortOn "uid" (filterNull "uid" (attrValues cfg.extraUsers)))); + # If mutableUsers is true, this script adds all users/groups defined in # users.extra{Users,Groups} to /etc/{passwd,group} iff there isn't any # existing user/group with the same name in those files. @@ -504,6 +578,15 @@ in { # for backwards compatibility system.activationScripts.groups = stringAfter [ "users" ] ""; + environment.etc."subuid" = { + text = subuidFile; + mode = "0644"; + }; + environment.etc."subgid" = { + text = subgidFile; + mode = "0644"; + }; + assertions = [ { assertion = !cfg.enforceIdUniqueness || (uidsAreUnique && gidsAreUnique); message = "uids and gids must be unique!"; diff --git a/nixos/modules/config/vpnc.nix b/nixos/modules/config/vpnc.nix new file mode 100644 index 00000000000..68d755232eb --- /dev/null +++ b/nixos/modules/config/vpnc.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.networking.vpnc; + mkServiceDef = name: value: + { + name = "vpnc/${name}.conf"; + value = { text = value; }; + }; + +in +{ + options = { + networking.vpnc = { + services = mkOption { + type = types.attrsOf types.str; + default = {}; + example = { + test = + '' + IPSec gateway 192.168.1.1 + IPSec ID someID + IPSec secret secretKey + Xauth username name + Xauth password pass + ''; + }; + description = + '' + The names of cisco VPNs and their associated definitions + ''; + }; + }; + }; + + config.environment.etc = mapAttrs' mkServiceDef cfg.services; +} + + diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index d43fa220381..623cfdedd26 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -113,11 +113,12 @@ in }; isoImage.contents = mkOption { - example = + example = literalExample '' [ { source = pkgs.memtest86 + "/memtest.bin"; target = "boot/memtest.bin"; } - ]; + ] + ''; description = '' This option lists files to be copied to fixed locations in the generated ISO image. @@ -125,7 +126,7 @@ in }; isoImage.storeContents = mkOption { - example = [pkgs.stdenv]; + example = literalExample "[ pkgs.stdenv ]"; description = '' This option lists additional derivations to be included in the Nix store in the generated ISO image. diff --git a/nixos/modules/installer/cd-dvd/system-tarball.nix b/nixos/modules/installer/cd-dvd/system-tarball.nix index eaecbe1381f..c24fe97fba4 100644 --- a/nixos/modules/installer/cd-dvd/system-tarball.nix +++ b/nixos/modules/installer/cd-dvd/system-tarball.nix @@ -15,11 +15,12 @@ in { options = { tarball.contents = mkOption { - example = + example = literalExample '' [ { source = pkgs.memtest86 + "/memtest.bin"; target = "boot/memtest.bin"; } - ]; + ] + ''; description = '' This option lists files to be copied to fixed locations in the generated ISO image. @@ -27,7 +28,7 @@ in }; tarball.storeContents = mkOption { - example = [pkgs.stdenv]; + example = literalExample "[ pkgs.stdenv ]"; description = '' This option lists additional derivations to be included in the Nix store in the generated ISO image. diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh index a55eda1cb8f..86952486ade 100644 --- a/nixos/modules/installer/tools/nixos-install.sh +++ b/nixos/modules/installer/tools/nixos-install.sh @@ -30,6 +30,9 @@ while [ "$#" -gt 0 ]; do absolute_path=$(readlink -m $given_path) extraBuildFlags+=("$i" "/mnt$absolute_path") ;; + --root) + mountPoint="$1"; shift 1 + ;; --show-trace) extraBuildFlags+=("$i") ;; diff --git a/nixos/modules/misc/crashdump.nix b/nixos/modules/misc/crashdump.nix index d68f38bae2f..773b5ac9da3 100644 --- a/nixos/modules/misc/crashdump.nix +++ b/nixos/modules/misc/crashdump.nix @@ -28,7 +28,7 @@ in # We don't want to evaluate all of linuxPackages for the manual # - some of it might not even evaluate correctly. defaultText = "pkgs.linuxPackages"; - example = "pkgs.linuxPackages_2_6_25"; + example = literalExample "pkgs.linuxPackages_2_6_25"; description = '' This will override the boot.kernelPackages, and will add some kernel configuration parameters for the crash dump to work. diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index 515105d886a..efd8b253cd4 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -144,6 +144,12 @@ siproxd = 134; mlmmj = 135; neo4j = 136; + riemann = 137; + riemanndash = 138; + radvd = 139; + zookeeper = 140; + dnsmasq = 141; + uhub = 142; # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! @@ -261,6 +267,9 @@ tss = 133; siproxd = 134; mlmmj = 135; + riemann = 137; + riemanndash = 138; + uhub = 142; # When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399! diff --git a/nixos/modules/misc/meta.nix b/nixos/modules/misc/meta.nix new file mode 100644 index 00000000000..22622706f2c --- /dev/null +++ b/nixos/modules/misc/meta.nix @@ -0,0 +1,63 @@ +{ config, lib, ... }: + +with lib; + +let + maintainer = mkOptionType { + name = "maintainer"; + check = email: elem email (attrValues lib.maintainers); + merge = loc: defs: listToAttrs (singleton (nameValuePair (last defs).file (last defs).value)); + }; + + listOfMaintainers = types.listOf maintainer // { + # Returns list of + # { "module-file" = [ + # "maintainer1 " + # "maintainer2 " ]; + # } + merge = loc: defs: + zipAttrs + (flatten (imap (n: def: imap (m: def': + maintainer.merge (loc ++ ["[${toString n}-${toString m}]"]) + [{ inherit (def) file; value = def'; }]) def.value) defs)); + }; + + docFile = types.path // { + # Returns tuples of + # { file = "module location"; value = ; } + merge = loc: defs: defs; + }; +in + +{ + options = { + meta = { + + maintainers = mkOption { + type = listOfMaintainers; + internal = true; + default = []; + example = [ lib.maintainers.all ]; + description = '' + List of maintainers of each module. This option should be defined at + most once per module. + ''; + }; + + doc = mkOption { + type = docFile; + internal = true; + example = "./meta.xml"; + description = '' + Documentation prologe for the set of options of each module. This + option should be defined at most once per module. + ''; + }; + + }; + }; + + config = { + meta.maintainers = singleton lib.maintainers.pierron; + }; +} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index feb590ad249..76d1ed8a9d4 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -5,6 +5,7 @@ ./config/fonts/fonts.nix ./config/fonts/ghostscript.nix ./config/gnu.nix + ./config/gtk-exe-env.nix ./config/i18n.nix ./config/krb5.nix ./config/ldap.nix @@ -13,12 +14,14 @@ ./config/nsswitch.nix ./config/power-management.nix ./config/pulseaudio.nix + ./config/qt-plugin-env.nix ./config/shells-environment.nix ./config/swap.nix ./config/sysctl.nix ./config/system-environment.nix ./config/system-path.nix ./config/timezone.nix + ./config/vpnc.nix ./config/unix-odbc-drivers.nix ./config/users-groups.nix ./config/zram.nix @@ -43,6 +46,7 @@ ./misc/ids.nix ./misc/lib.nix ./misc/locate.nix + ./misc/meta.nix ./misc/nixpkgs.nix ./misc/passthru.nix ./misc/version.nix @@ -59,8 +63,10 @@ ./programs/shell.nix ./programs/ssh.nix ./programs/ssmtp.nix + ./programs/uim.nix ./programs/venus.nix ./programs/wvdial.nix + ./programs/freetds.nix ./programs/zsh/zsh.nix ./rename.nix ./security/apparmor.nix @@ -164,12 +170,16 @@ ./services/misc/siproxd.nix ./services/misc/svnserve.nix ./services/misc/synergy.nix + ./services/misc/uhub.nix + ./services/misc/zookeeper.nix ./services/monitoring/apcupsd.nix ./services/monitoring/dd-agent.nix ./services/monitoring/graphite.nix ./services/monitoring/monit.nix ./services/monitoring/munin.nix ./services/monitoring/nagios.nix + ./services/monitoring/riemann.nix + ./services/monitoring/riemann-dash.nix ./services/monitoring/smartd.nix ./services/monitoring/statsd.nix ./services/monitoring/systemhealth.nix @@ -183,6 +193,7 @@ ./services/network-filesystems/rsyncd.nix ./services/network-filesystems/samba.nix ./services/networking/amuled.nix + ./services/networking/atftpd.nix ./services/networking/avahi-daemon.nix ./services/networking/bind.nix ./services/networking/bitlbee.nix @@ -220,6 +231,7 @@ ./services/networking/ntpd.nix ./services/networking/oidentd.nix ./services/networking/openfire.nix + ./services/networking/openntpd.nix ./services/networking/openvpn.nix ./services/networking/polipo.nix ./services/networking/prayer.nix @@ -255,6 +267,7 @@ ./services/search/elasticsearch.nix ./services/search/solr.nix ./services/security/clamav.nix + ./services/security/fail2ban.nix ./services/security/fprot.nix ./services/security/frandom.nix ./services/security/haveged.nix @@ -352,6 +365,7 @@ ./virtualisation/docker.nix ./virtualisation/libvirtd.nix #./virtualisation/nova.nix + ./virtualisation/openvswitch.nix ./virtualisation/virtualbox-guest.nix #./virtualisation/xen-dom0.nix ] diff --git a/nixos/modules/programs/environment.nix b/nixos/modules/programs/environment.nix index 80c3e83fe81..4a510805b01 100644 --- a/nixos/modules/programs/environment.nix +++ b/nixos/modules/programs/environment.nix @@ -52,7 +52,7 @@ in STRIGI_PLUGIN_PATH = [ "${i}/lib/strigi/" ]; QT_PLUGIN_PATH = [ "${i}/lib/qt4/plugins" "${i}/lib/kde4/plugins" ]; QTWEBKIT_PLUGIN_PATH = [ "${i}/lib/mozilla/plugins/" ]; - GTK_PATH = [ "${i}/lib/gtk-2.0" ]; + GTK_PATH = [ "${i}/lib/gtk-2.0" "${i}/lib/gtk-3.0" ]; XDG_CONFIG_DIRS = [ "${i}/etc/xdg" ]; XDG_DATA_DIRS = [ "${i}/share" ]; MOZ_PLUGIN_PATH = [ "${i}/lib/mozilla/plugins" ]; diff --git a/nixos/modules/programs/freetds.nix b/nixos/modules/programs/freetds.nix new file mode 100644 index 00000000000..398fd104363 --- /dev/null +++ b/nixos/modules/programs/freetds.nix @@ -0,0 +1,61 @@ +# Global configuration for freetds environment. + +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.environment.freetds; + +in +{ + ###### interface + + options = { + + environment.freetds = mkOption { + type = types.attrsOf types.str; + default = {}; + example = { + MYDATABASE = + '' + host = 10.0.2.100 + port = 1433 + tds version = 7.2 + ''; + }; + description = + '' + Configure freetds database entries. Each attribute denotes + a section within freetds.conf, and the value (a string) is the config + content for that section. When at least one entry is configured + the global environment variables FREETDSCONF, FREETDS and SYBASE + will be configured to allow the programs that use freetds to find the + library and config. + ''; + + }; + + }; + + ###### implementation + + config = mkIf (length (attrNames cfg) > 0) { + + environment.variables.FREETDSCONF = "/etc/freetds.conf"; + environment.variables.FREETDS = "/etc/freetds.conf"; + environment.variables.SYBASE = "${pkgs.freetds}"; + + environment.etc."freetds.conf" = { text = + (concatStrings (mapAttrsToList (name: value: + '' + [${name}] + ${value} + '' + ) cfg)); + }; + + }; + +} diff --git a/nixos/modules/programs/shadow.nix b/nixos/modules/programs/shadow.nix index 658b08b3d87..5c2ea07c554 100644 --- a/nixos/modules/programs/shadow.nix +++ b/nixos/modules/programs/shadow.nix @@ -83,7 +83,7 @@ in security.pam.services = { chsh = { rootOK = true; }; chfn = { rootOK = true; }; - su = { rootOK = true; forwardXAuth = true; }; + su = { rootOK = true; forwardXAuth = true; logFailures = true; }; passwd = {}; # Note: useradd, groupadd etc. aren't setuid root, so it # doesn't really matter what the PAM config says as long as it @@ -100,7 +100,9 @@ in chgpasswd = { rootOK = true; }; }; - security.setuidPrograms = [ "passwd" "chfn" "su" "newgrp" ]; + security.setuidPrograms = [ "passwd" "chfn" "su" "newgrp" + "newuidmap" "newgidmap" # new in shadow 4.2.x + ]; }; diff --git a/nixos/modules/programs/uim.nix b/nixos/modules/programs/uim.nix new file mode 100644 index 00000000000..237da3415dc --- /dev/null +++ b/nixos/modules/programs/uim.nix @@ -0,0 +1,29 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +let + cfg = config.uim; +in +{ + options = { + uim = { + enable = mkOption { + type = types.bool; + default = false; + example = true; + description = "enable UIM input method"; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.uim ]; + gtkPlugins = [ pkgs.uim ]; + qtPlugins = [ pkgs.uim ]; + environment.variables.GTK_IM_MODULE = "uim"; + environment.variables.QT_IM_MODULE = "uim"; + environment.variables.XMODIFIERS = "@im=uim"; + services.xserver.displayManager.sessionCommands = "uim-xim &"; + }; +} diff --git a/nixos/modules/programs/virtualbox.nix b/nixos/modules/programs/virtualbox.nix index e2dd76219eb..fec1a7b61f3 100644 --- a/nixos/modules/programs/virtualbox.nix +++ b/nixos/modules/programs/virtualbox.nix @@ -44,5 +44,5 @@ let virtualbox = config.boot.kernelPackages.virtualbox; in ''; }; - networking.interfaces.vboxnet0 = { ipAddress = "192.168.56.1"; prefixLength = 24; }; + networking.interfaces.vboxnet0.ip4 = [ { address = "192.168.56.1"; prefixLength = 24; } ]; } diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix index b1b75a0068d..844a9da0eb4 100644 --- a/nixos/modules/security/pam.nix +++ b/nixos/modules/security/pam.nix @@ -126,12 +126,28 @@ let description = "Whether to show the message of the day."; }; + makeHomeDir = mkOption { + default = false; + type = types.bool; + description = '' + Whether to try to create home directories for users + with $HOMEs pointing to nonexistent + locations on session login. + ''; + }; + updateWtmp = mkOption { default = false; type = types.bool; description = "Whether to update /var/log/wtmp."; }; + logFailures = mkOption { + default = false; + type = types.bool; + description = "Whether to log authentication failures in /var/log/faillog."; + }; + text = mkOption { type = types.nullOr types.lines; description = "Contents of the PAM service file."; @@ -159,6 +175,8 @@ let # Authentication management. ${optionalString cfg.rootOK "auth sufficient pam_rootok.so"} + ${optionalString cfg.logFailures + "auth required pam_tally.so"} ${optionalString (config.security.pam.enableSSHAgentAuth && cfg.sshAgentAuth) "auth sufficient ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so file=~/.ssh/authorized_keys:~/.ssh/authorized_keys2:/etc/ssh/authorized_keys.d/%u"} ${optionalString cfg.usbAuth @@ -192,6 +210,8 @@ let "session ${ if config.boot.isContainer then "optional" else "required" } pam_loginuid.so"} + ${optionalString cfg.makeHomeDir + "session required ${pkgs.pam}/lib/security/pam_mkhomedir.so silent skel=/etc/skel umask=0022"} ${optionalString cfg.updateWtmp "session required ${pkgs.pam}/lib/security/pam_lastlog.so silent"} ${optionalString config.users.ldap.enable diff --git a/nixos/modules/security/setuid-wrappers.nix b/nixos/modules/security/setuid-wrappers.nix index 373afffd3fb..22dbdf6a6bf 100644 --- a/nixos/modules/security/setuid-wrappers.nix +++ b/nixos/modules/security/setuid-wrappers.nix @@ -77,7 +77,9 @@ in config = { security.setuidPrograms = - [ "fusermount" "wodim" "cdrdao" "growisofs" ]; + [ "mount.nfs" "mount.nfs4" "mount.cifs" + "fusermount" "umount" + "wodim" "cdrdao" "growisofs" ]; system.activationScripts.setuid = let diff --git a/nixos/modules/services/audio/mopidy.nix b/nixos/modules/services/audio/mopidy.nix index 5b865cf4c1b..a7a7e8ae688 100644 --- a/nixos/modules/services/audio/mopidy.nix +++ b/nixos/modules/services/audio/mopidy.nix @@ -49,7 +49,7 @@ in { extensionPackages = mkOption { default = []; type = types.listOf types.package; - example = [ mopidy-spotify ]; + example = literalExample "[ pkgs.mopidy-spotify ]"; description = '' Mopidy extensions that should be loaded by the service. ''; diff --git a/nixos/modules/services/backup/rsnapshot.nix b/nixos/modules/services/backup/rsnapshot.nix index 48ad7582b7e..091b5cfd4d5 100644 --- a/nixos/modules/services/backup/rsnapshot.nix +++ b/nixos/modules/services/backup/rsnapshot.nix @@ -31,7 +31,7 @@ in cronIntervals = mkOption { default = {}; - example = { "hourly" = "0 * * * *"; "daily" = "50 21 * * *"; }; + example = { hourly = "0 * * * *"; daily = "50 21 * * *"; }; type = types.attrsOf types.string; description = '' Periodicity at which intervals should be run by cron. diff --git a/nixos/modules/services/databases/postgresql.xml b/nixos/modules/services/databases/postgresql.xml new file mode 100644 index 00000000000..e98b431bd60 --- /dev/null +++ b/nixos/modules/services/databases/postgresql.xml @@ -0,0 +1,77 @@ + + +PostgreSQL + + + + +Source: modules/services/databases/postgresql.nix + +Upstream documentation: + + + +PostgreSQL is an advanced, free relational database. + +
Configuring + +To enable PostgreSQL, add the following to your +configuration.nix: + + +services.postgresql.enable = true; +services.postgresql.package = pkgs.postgresql93; + + +Note that you are required to specify the desired version of +PostgreSQL (e.g. pkgs.postgresql93). Since +upgrading your PostgreSQL version requires a database dump and reload +(see below), NixOS cannot provide a default value for + such as the most recent +release of PostgreSQL. + + + +By default, PostgreSQL stores its databases in +/var/db/postgresql. You can override this using +, e.g. + + +services.postgresql.dataDir = "/data/postgresql"; + + + + +
+ + +
Upgrading + +FIXME: document dump/upgrade/load cycle. + +
+ + +
Options + +FIXME: auto-generated list of module options. + +
+ + +
diff --git a/nixos/modules/services/hardware/tcsd.nix b/nixos/modules/services/hardware/tcsd.nix index 26b2c884b8f..d7f6c188feb 100644 --- a/nixos/modules/services/hardware/tcsd.nix +++ b/nixos/modules/services/hardware/tcsd.nix @@ -1,8 +1,8 @@ # tcsd daemon. -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let cfg = config.services.tcsd; diff --git a/nixos/modules/services/logging/syslog-ng.nix b/nixos/modules/services/logging/syslog-ng.nix index 8b892a33bb7..0b3f0cabb00 100644 --- a/nixos/modules/services/logging/syslog-ng.nix +++ b/nixos/modules/services/logging/syslog-ng.nix @@ -49,7 +49,9 @@ in { extraModulePaths = mkOption { type = types.listOf types.str; default = []; - example = [ "${pkgs.syslogng_incubator}/lib/syslog-ng" ]; + example = literalExample '' + [ "''${pkgs.syslogng_incubator}/lib/syslog-ng" ] + ''; description = '' A list of paths that should be included in syslog-ng's --module-path option. They should usually diff --git a/nixos/modules/services/misc/nixos-manual.nix b/nixos/modules/services/misc/nixos-manual.nix index 808c5dcbdc6..c0d7885280a 100644 --- a/nixos/modules/services/misc/nixos-manual.nix +++ b/nixos/modules/services/misc/nixos-manual.nix @@ -28,7 +28,7 @@ let options = eval.options; }; - entry = "${manual.manual}/share/doc/nixos/manual.html"; + entry = "${manual.manual}/share/doc/nixos/index.html"; help = pkgs.writeScriptBin "nixos-help" '' diff --git a/nixos/modules/services/misc/uhub.nix b/nixos/modules/services/misc/uhub.nix new file mode 100644 index 00000000000..15071202b9c --- /dev/null +++ b/nixos/modules/services/misc/uhub.nix @@ -0,0 +1,186 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.uhub; + + uhubPkg = pkgs.uhub.override { tlsSupport = cfg.enableTLS; }; + + pluginConfig = "" + + optionalString cfg.plugins.authSqlite.enable '' + plugin ${uhubPkg.mod_auth_sqlite}/mod_auth_sqlite.so "file=${cfg.plugins.authSqlite.file}" + '' + + optionalString cfg.plugins.logging.enable '' + plugin ${uhubPkg.mod_logging}/mod_logging.so ${if cfg.plugins.logging.syslog then "syslog=true" else "file=${cfg.plugins.logging.file}"} + '' + + optionalString cfg.plugins.welcome.enable '' + plugin ${uhubPkg.mod_welcome}/mod_welcome.so "motd=${pkgs.writeText "motd.txt" cfg.plugins.welcome.motd} rules=${pkgs.writeText "rules.txt" cfg.plugins.welcome.rules}" + '' + + optionalString cfg.plugins.history.enable '' + plugin ${uhubPkg.mod_chat_history}/mod_chat_history.so "history_max=${toString cfg.plugins.history.max} history_default=${toString cfg.plugins.history.default} history_connect=${toString cfg.plugins.history.connect}" + ''; + + uhubConfigFile = pkgs.writeText "uhub.conf" '' + file_acl=${pkgs.writeText "users.conf" cfg.aclConfig} + file_plugins=${pkgs.writeText "plugins.conf" pluginConfig} + server_bind_addr=${cfg.address} + server_port=${toString cfg.port} + ${lib.optionalString cfg.enableTLS "tls_enable=yes"} + ${cfg.hubConfig} + ''; + +in + +{ + options = { + + services.uhub = { + + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable the uhub ADC hub."; + }; + + port = mkOption { + type = types.int; + default = 1511; + description = "TCP port to bind the hub to."; + }; + + address = mkOption { + type = types.string; + default = "any"; + description = "Address to bind the hub to."; + }; + + enableTLS = mkOption { + type = types.bool; + default = false; + description = "Whether to enable TLS support."; + }; + + hubConfig = mkOption { + type = types.lines; + default = ""; + description = "Contents of uhub configuration file."; + }; + + aclConfig = mkOption { + type = types.lines; + default = ""; + description = "Contents of user ACL configuration file."; + }; + + plugins = { + + authSqlite = { + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable the Sqlite authentication database plugin"; + }; + file = mkOption { + type = types.string; + example = "/var/db/uhub-users"; + description = "Path to user database. Use the uhub-passwd utility to create the database and add/remove users."; + }; + }; + + logging = { + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable the logging plugin."; + }; + file = mkOption { + type = types.string; + default = ""; + description = "Path of log file."; + }; + syslog = mkOption { + type = types.bool; + default = false; + description = "If true then the system log is used instead of writing to file."; + }; + }; + + welcome = { + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable the welcome plugin."; + }; + motd = mkOption { + default = ""; + type = types.lines; + description = '' + Welcome message displayed to clients after connecting + and with the !motd command. + ''; + }; + rules = mkOption { + default = ""; + type = types.lines; + description = '' + Rules message, displayed to clients with the !rules command. + ''; + }; + }; + + history = { + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable the history plugin."; + }; + max = mkOption { + type = types.int; + default = 200; + description = "The maximum number of messages to keep in history"; + }; + default = mkOption { + type = types.int; + default = 10; + description = "When !history is provided without arguments, then this default number of messages are returned."; + }; + connect = mkOption { + type = types.int; + default = 5; + description = "The number of chat history messages to send when users connect (0 = do not send any history)."; + }; + }; + + }; + }; + + }; + + config = mkIf cfg.enable { + + users = { + extraUsers = singleton { + name = "uhub"; + uid = config.ids.uids.uhub; + }; + extraGroups = singleton { + name = "uhub"; + gid = config.ids.gids.uhub; + }; + }; + + systemd.services.uhub = { + description = "high performance peer-to-peer hub for the ADC network"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "notify"; + ExecStart = "${uhubPkg}/bin/uhub -c ${uhubConfigFile} -u uhub -g uhub -L"; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + }; + }; + }; + +} \ No newline at end of file diff --git a/nixos/modules/services/misc/zookeeper.nix b/nixos/modules/services/misc/zookeeper.nix new file mode 100755 index 00000000000..47675b8876c --- /dev/null +++ b/nixos/modules/services/misc/zookeeper.nix @@ -0,0 +1,145 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.zookeeper; + + zookeeperConfig = '' + dataDir=${cfg.dataDir} + clientPort=${toString cfg.port} + autopurge.purgeInterval=${toString cfg.purgeInterval} + ${cfg.extraConf} + ${cfg.servers} + ''; + + configDir = pkgs.buildEnv { + name = "zookeeper-conf"; + paths = [ + (pkgs.writeTextDir "zoo.cfg" zookeeperConfig) + (pkgs.writeTextDir "log4j.properties" cfg.logging) + ]; + }; + +in { + + options.services.zookeeper = { + enable = mkOption { + description = "Whether to enable Zookeeper."; + default = false; + type = types.uniq types.bool; + }; + + port = mkOption { + description = "Zookeeper Client port."; + default = 2181; + type = types.int; + }; + + id = mkOption { + description = "Zookeeper ID."; + default = 0; + type = types.int; + }; + + purgeInterval = mkOption { + description = '' + The time interval in hours for which the purge task has to be triggered. Set to a positive integer (1 and above) to enable the auto purging. + ''; + default = 1; + type = types.int; + }; + + extraConf = mkOption { + description = "Extra configuration for Zookeeper."; + type = types.lines; + default = '' + initLimit=5 + syncLimit=2 + tickTime=2000 + ''; + }; + + servers = mkOption { + description = "All Zookeeper Servers."; + default = ""; + type = types.lines; + example = '' + server.0=host0:2888:3888 + server.1=host1:2888:3888 + server.2=host2:2888:3888 + ''; + }; + + logging = mkOption { + description = "Zookeeper logging configuration."; + default = '' + zookeeper.root.logger=INFO, CONSOLE + log4j.rootLogger=INFO, CONSOLE + log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender + log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout + log4j.appender.CONSOLE.layout.ConversionPattern=[myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n + ''; + type = types.lines; + }; + + dataDir = mkOption { + type = types.path; + default = "/var/lib/zookeeper"; + description = '' + Data directory for Zookeeper + ''; + }; + + 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; + example = [ "-Djava.net.preferIPv4Stack=true" "-Dcom.sun.management.jmxremote" "-Dcom.sun.management.jmxremote.local.only=true" ]; + }; + + preferIPv4 = mkOption { + type = types.bool; + default = true; + description = '' + Add the -Djava.net.preferIPv4Stack=true flag to the Zookeeper server. + ''; + }; + + }; + + + config = mkIf cfg.enable { + systemd.services.zookeeper = { + description = "Zookeeper Daemon"; + wantedBy = [ "multi-user.target" ]; + after = [ "network-interfaces.target" ]; + environment = { ZOOCFGDIR = configDir; }; + serviceConfig = { + ExecStart = '' + ${pkgs.jre}/bin/java \ + -cp "${pkgs.zookeeper}/lib/*:${pkgs.zookeeper}/${pkgs.zookeeper.name}.jar:${configDir}" \ + ${toString cfg.extraCmdLineOptions} \ + -Dzookeeper.datadir.autocreate=false \ + ${optionalString cfg.preferIPv4 "-Djava.net.preferIPv4Stack=true"} \ + org.apache.zookeeper.server.quorum.QuorumPeerMain \ + ${configDir}/zoo.cfg + ''; + User = "zookeeper"; + PermissionsStartOnly = true; + }; + preStart = '' + mkdir -m 0700 -p ${cfg.dataDir} + if [ "$(id -u)" = 0 ]; then chown zookeeper ${cfg.dataDir}; fi + echo "${toString cfg.id}" > ${cfg.dataDir}/myid + ''; + }; + + users.extraUsers = singleton { + name = "zookeeper"; + uid = config.ids.uids.zookeeper; + description = "Zookeeper daemon user"; + home = cfg.dataDir; + }; + }; +} diff --git a/nixos/modules/services/monitoring/riemann-dash.nix b/nixos/modules/services/monitoring/riemann-dash.nix new file mode 100644 index 00000000000..148dc046805 --- /dev/null +++ b/nixos/modules/services/monitoring/riemann-dash.nix @@ -0,0 +1,79 @@ +{ config, pkgs, lib, ... }: + +with pkgs; +with lib; + +let + + cfg = config.services.riemann-dash; + + conf = writeText "config.rb" '' + riemann_base = "${cfg.dataDir}" + config.store[:ws_config] = "#{riemann_base}/config/config.json" + ${cfg.config} + ''; + + launcher = writeScriptBin "riemann-dash" '' + #!/bin/sh + exec ${rubyLibs.riemann_dash}/bin/riemann-dash ${conf} + ''; + +in { + + options = { + + services.riemann-dash = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Enable the riemann-dash dashboard daemon. + ''; + }; + config = mkOption { + type = types.lines; + description = '' + Contents added to the end of the riemann-dash configuration file. + ''; + }; + dataDir = mkOption { + type = types.str; + default = "/var/riemann-dash"; + description = '' + Location of the riemann-base dir. The dashboard configuration file is + is stored to this directory. The directory is created automatically on + service start, and owner is set to the riemanndash user. + ''; + }; + }; + + }; + + config = mkIf cfg.enable { + + users.extraGroups.riemanndash.gid = config.ids.gids.riemanndash; + + users.extraUsers.riemanndash = { + description = "riemann-dash daemon user"; + uid = config.ids.uids.riemanndash; + group = "riemanndash"; + }; + + systemd.services.riemann-dash = { + wantedBy = [ "multi-user.target" ]; + wants = [ "riemann.service" ]; + after = [ "riemann.service" ]; + preStart = '' + mkdir -p ${cfg.dataDir}/config + chown -R riemanndash:riemanndash ${cfg.dataDir} + ''; + serviceConfig = { + User = "riemanndash"; + ExecStart = "${launcher}/bin/riemann-dash"; + PermissionsStartOnly = true; + }; + }; + + }; + +} diff --git a/nixos/modules/services/monitoring/riemann.nix b/nixos/modules/services/monitoring/riemann.nix new file mode 100644 index 00000000000..a1935c29a04 --- /dev/null +++ b/nixos/modules/services/monitoring/riemann.nix @@ -0,0 +1,77 @@ +{ config, pkgs, lib, ... }: + +with pkgs; +with lib; + +let + + cfg = config.services.riemann; + + classpath = concatStringsSep ":" ( + cfg.extraClasspathEntries ++ [ "${riemann}/share/java/riemann.jar" ] + ); + + launcher = writeScriptBin "riemann" '' + #!/bin/sh + exec ${openjdk}/bin/java ${concatStringsSep "\n" cfg.extraJavaOpts} \ + -cp ${classpath} \ + riemann.bin ${writeText "riemann.config" cfg.config} + ''; + +in { + + options = { + + services.riemann = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Enable the Riemann network monitoring daemon. + ''; + }; + config = mkOption { + type = types.lines; + description = '' + Contents of the Riemann configuration file. + ''; + }; + extraClasspathEntries = mkOption { + type = with types; listOf str; + default = []; + description = '' + Extra entries added to the Java classpath when running Riemann. + ''; + }; + extraJavaOpts = mkOption { + type = with types; listOf str; + default = []; + description = '' + Extra Java options used when launching Riemann. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + + users.extraGroups.riemann.gid = config.ids.gids.riemann; + + users.extraUsers.riemann = { + description = "riemann daemon user"; + uid = config.ids.uids.riemann; + group = "riemann"; + }; + + systemd.services.riemann = { + wantedBy = [ "multi-user.target" ]; + path = [ inetutils ]; + serviceConfig = { + User = "riemann"; + ExecStart = "${launcher}/bin/riemann"; + }; + }; + + }; + +} diff --git a/nixos/modules/services/monitoring/smartd.nix b/nixos/modules/services/monitoring/smartd.nix index 250035fe447..803bd9e9a65 100644 --- a/nixos/modules/services/monitoring/smartd.nix +++ b/nixos/modules/services/monitoring/smartd.nix @@ -62,7 +62,7 @@ in enable = mkOption { default = false; type = types.bool; - example = "true"; + example = true; description = '' Run smartd from the smartmontools package. Note that e-mail notifications will not be enabled unless you configure the list of diff --git a/nixos/modules/services/network-filesystems/nfsd.nix b/nixos/modules/services/network-filesystems/nfsd.nix index 2217fec3b0f..57d56cd7287 100644 --- a/nixos/modules/services/network-filesystems/nfsd.nix +++ b/nixos/modules/services/network-filesystems/nfsd.nix @@ -56,6 +56,14 @@ in default = false; description = "Whether to create the mount points in the exports file at startup time."; }; + + mountdPort = mkOption { + default = null; + example = 4002; + description = '' + Use fixed port for rpc.mountd, usefull if server is behind firewall. + ''; + }; }; }; @@ -138,7 +146,10 @@ in restartTriggers = [ exports ]; serviceConfig.Type = "forking"; - serviceConfig.ExecStart = "@${pkgs.nfsUtils}/sbin/rpc.mountd rpc.mountd"; + serviceConfig.ExecStart = '' + @${pkgs.nfsUtils}/sbin/rpc.mountd rpc.mountd \ + ${if cfg.mountdPort != null then "-p ${toString cfg.mountdPort}" else ""} + ''; serviceConfig.Restart = "always"; }; diff --git a/nixos/modules/services/networking/atftpd.nix b/nixos/modules/services/networking/atftpd.nix new file mode 100644 index 00000000000..ab9f8650f0f --- /dev/null +++ b/nixos/modules/services/networking/atftpd.nix @@ -0,0 +1,51 @@ +# NixOS module for atftpd TFTP server + +{ config, pkgs, ... }: + +with pkgs.lib; + +let + + cfg = config.services.atftpd; + +in + +{ + + options = { + + services.atftpd = { + + enable = mkOption { + default = false; + type = types.uniq types.bool; + description = '' + Whenever to enable the atftpd TFTP server. + ''; + }; + + root = mkOption { + default = "/var/empty"; + type = types.uniq types.string; + description = '' + Document root directory for the atftpd. + ''; + }; + + }; + + }; + + config = mkIf cfg.enable { + + systemd.services.atftpd = { + description = "atftpd TFTP server"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + # runs as nobody + serviceConfig.ExecStart = "${pkgs.atftp}/sbin/atftpd --daemon --no-fork --bind-address 0.0.0.0 ${cfg.root}"; + }; + + }; + +} diff --git a/nixos/modules/services/networking/cjdns.nix b/nixos/modules/services/networking/cjdns.nix index 9306ffd5a18..0519172db91 100644 --- a/nixos/modules/services/networking/cjdns.nix +++ b/nixos/modules/services/networking/cjdns.nix @@ -1,13 +1,3 @@ -# You may notice the commented out sections in this file, -# it would be great to configure cjdns from nix, but cjdns -# reads its configuration from stdin, including the private -# key and admin password, all nested in a JSON structure. -# -# Until a good method of storing the keys outside the nix -# store and mixing them back into a string is devised -# (without too much shell hackery), a skeleton of the -# configuration building lies commented out. - { config, lib, pkgs, ... }: with lib; @@ -16,41 +6,35 @@ let cfg = config.services.cjdns; - /* - # can't keep keys and passwords in the nix store, - # but don't want to deal with this stdin quagmire. + # would be nice to merge 'cfg' with a //, + # but the json nesting is wacky. + cjdrouteConf = builtins.toJSON ( { + admin = { + bind = cfg.admin.bind; + password = "@CJDNS_ADMIN_PASSWORD@"; + }; + authorizedPasswords = map (p: { password = p; }) cfg.authorizedPasswords; + interfaces = { + ETHInterface = if (cfg.ETHInterface.bind != "") then [ cfg.ETHInterface ] else [ ]; + UDPInterface = if (cfg.UDPInterface.bind != "") then [ cfg.UDPInterface ] else [ ]; + }; - cjdrouteConf = '' { - "admin": {"bind": "${cfg.admin.bind}", "password": "\${CJDNS_ADMIN}" }, - "privateKey": "\${CJDNS_KEY}", + privateKey = "@CJDNS_PRIVATE_KEY@"; - "interfaces": { - '' + resetAfterInactivitySeconds = 100; - + optionalString (cfg.interfaces.udp.bind.address != null) '' - "UDPInterface": [ { - "bind": "${cfg.interfaces.udp.bind.address}:"'' - ${if cfg.interfaces.upd.bind.port != null - then ${toString cfg.interfaces.udp.bind.port} - else ${RANDOM} - fi) - + '' } ]'' + router = { + interface = { type = "TUNInterface"; }; + ipTunnel = { + allowedConnections = []; + outgoingConnections = []; + }; + }; - + (if cfg.interfaces.eth.bind != null then '' - "ETHInterface": [ { - "bind": "${cfg.interfaces.eth.bind}", - "beacon": ${toString cfg.interfaces.eth.beacon} - } ] - '' fi ) - + '' - }, - "router": { "interface": { "type": "TUNInterface" }, }, - "security": [ { "setuser": "nobody" } ] - } - ''; + security = [ { exemptAngel = 1; setuser = "nobody"; } ]; + + }); - cjdrouteConfFile = pkgs.writeText "cjdroute.conf" cjdrouteConf - */ in { @@ -62,146 +46,180 @@ in type = types.bool; default = false; description = '' - Enable this option to start a instance of the - cjdns network encryption and and routing engine. - Configuration will be read from confFile. + Whether to enable the cjdns network encryption + and routing engine. A file at /etc/cjdns.keys will + be created if it does not exist to contain a random + secret key that your IPv6 address will be derived from. ''; }; - confFile = mkOption { - default = "/etc/cjdroute.conf"; - description = '' - Configuration file to pipe to cjdroute. + authorizedPasswords = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ + "snyrfgkqsc98qh1y4s5hbu0j57xw5s0" + "z9md3t4p45mfrjzdjurxn4wuj0d8swv" + "49275fut6tmzu354pq70sr5b95qq0vj" + ]; + description = '' + Any remote cjdns nodes that offer these passwords on + connection will be allowed to route through this node. ''; }; - - /* + admin = { bind = mkOption { + type = types.string; default = "127.0.0.1:11234"; description = '' Bind the administration port to this address and port. ''; }; + }; - passwordFile = mkOption { - example = "/root/cjdns.adminPassword"; + UDPInterface = { + bind = mkOption { + type = types.string; + default = ""; + example = "192.168.1.32:43211"; + description = '' + Address and port to bind UDP tunnels to. + ''; + }; + connectTo = mkOption { + type = types.attrsOf ( types.submodule ( + { options, ... }: + { options = { + # TODO make host an option, and add it to networking.extraHosts + password = mkOption { + type = types.str; + description = "Authorized password to the opposite end of the tunnel."; + }; + publicKey = mkOption { + type = types.str; + description = "Public key at the opposite end of the tunnel."; + }; + }; + } + )); + default = { }; + example = { + "192.168.1.1:27313" = { + password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM"; + publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k"; + }; + }; + description = '' + Credentials for making UDP tunnels. + ''; + }; + }; + + ETHInterface = { + bind = mkOption { + default = ""; + example = "eth0"; description = '' - File containing a password to the administration port. + Bind to this device for native ethernet operation. ''; - }; - }; - - keyFile = mkOption { - type = types.str; - example = "/root/cjdns.key"; - description = '' - Path to a file containing a cjdns private key on a single line. - ''; - }; - - passwordsFile = mkOption { - type = types.str; - default = null; - example = "/root/cjdns.authorizedPasswords"; - description = '' - A file containing a list of json dictionaries with passwords. - For example: - {"password": "s8xf5z7znl4jt05g922n3wpk75wkypk"}, - { "name": "nice guy", - "password": "xhthk1mglz8tpjrbbvdlhyc092rhpx5"}, - {"password": "3qfxyhmrht7uwzq29pmhbdm9w4bnc8w"} - ''; - }; - - interfaces = { - udp = { - bind = { - address = mkOption { - default = "0.0.0.0"; - description = '' - Address to bind UDP tunnels to; disable by setting to null; - ''; - }; - port = mkOption { - type = types.int; - default = null; - description = '' - Port to bind UDP tunnels to. - A port will be choosen at random if this is not set. - This option is required to act as the server end of - a tunnel. - ''; - }; - }; - }; - - eth = { - bind = mkOption { - default = null; - example = "eth0"; - description = '' - Bind to this device and operate with native wire format. - ''; - }; - - beacon = mkOption { - default = 2; - description = '' - Auto-connect to other cjdns nodes on the same network. - Options: - 0 -- Disabled. - - 1 -- Accept beacons, this will cause cjdns to accept incoming - beacon messages and try connecting to the sender. - - 2 -- Accept and send beacons, this will cause cjdns to broadcast - messages on the local network which contain a randomly - generated per-session password, other nodes which have this - set to 1 or 2 will hear the beacon messages and connect - automatically. - ''; - }; - - connectTo = mkOption { - type = types.listOf types.str; - default = []; - description = '' - Credentials for connecting look similar to UDP credientials - except they begin with the mac address, for example: - "01:02:03:04:05:06":{"password":"a","publicKey":"b"} - ''; - }; }; + + beacon = mkOption { + type = types.int; + default = 2; + description = '' + Auto-connect to other cjdns nodes on the same network. + Options: + 0: Disabled. + 1: Accept beacons, this will cause cjdns to accept incoming + beacon messages and try connecting to the sender. + 2: Accept and send beacons, this will cause cjdns to broadcast + messages on the local network which contain a randomly + generated per-session password, other nodes which have this + set to 1 or 2 will hear the beacon messages and connect + automatically. + ''; + }; + + connectTo = mkOption { + type = types.attrsOf ( types.submodule ( + { options, ... }: + { options = { + password = mkOption { + type = types.str; + description = "Authorized password to the opposite end of the tunnel."; + }; + publicKey = mkOption { + type = types.str; + description = "Public key at the opposite end of the tunnel."; + }; + }; + } + )); + default = { }; + example = { + "01:02:03:04:05:06" = { + password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM"; + publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k"; + }; + }; + description = '' + Credentials for connecting look similar to UDP credientials + except they begin with the mac address. + ''; + }; }; - */ + }; + }; config = mkIf config.services.cjdns.enable { boot.kernelModules = [ "tun" ]; - /* - networking.firewall.allowedUDPPorts = mkIf (cfg.udp.bind.port != null) [ - cfg.udp.bind.port - ]; - */ + # networking.firewall.allowedUDPPorts = ... systemd.services.cjdns = { description = "encrypted networking for everybody"; wantedBy = [ "multi-user.target" ]; - wants = [ "network.target" ]; - before = [ "network.target" ]; - path = [ pkgs.cjdns ]; + after = [ "network-interfaces.target" ]; + + script = '' + source /etc/cjdns.keys + echo '${cjdrouteConf}' | sed \ + -e "s/@CJDNS_ADMIN_PASSWORD@/$CJDNS_ADMIN_PASSWORD/g" \ + -e "s/@CJDNS_PRIVATE_KEY@/$CJDNS_PRIVATE_KEY/g" \ + | ${pkgs.cjdns}/sbin/cjdroute + ''; serviceConfig = { Type = "forking"; - ExecStart = '' - ${pkgs.stdenv.shell} -c "${pkgs.cjdns}/sbin/cjdroute < ${cfg.confFile}" - ''; Restart = "on-failure"; }; }; + + system.activationScripts.cjdns = '' + grep -q "CJDNS_PRIVATE_KEY=" /etc/cjdns.keys || \ + echo "CJDNS_PRIVATE_KEY=$(${pkgs.cjdns}/sbin/makekey)" \ + >> /etc/cjdns.keys + + grep -q "CJDNS_ADMIN_PASSWORD=" /etc/cjdns.keys || \ + echo "CJDNS_ADMIN_PASSWORD=$(${pkgs.coreutils}/bin/head -c 96 /dev/urandom | ${pkgs.coreutils}/bin/tr -dc A-Za-z0-9)" \ + >> /etc/cjdns.keys + + chmod 600 /etc/cjdns.keys + ''; + + assertions = [ + { assertion = ( cfg.ETHInterface.bind != "" || cfg.UDPInterface.bind != "" ); + message = "Neither cjdns.ETHInterface.bind nor cjdns.UDPInterface.bind defined."; + } + { assertion = config.networking.enableIPv6; + message = "networking.enableIPv6 must be enabled for CJDNS to work"; + } + ]; + }; -} + +} \ No newline at end of file diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix index 866707c3a91..084ac69e8d5 100644 --- a/nixos/modules/services/networking/dhcpcd.nix +++ b/nixos/modules/services/networking/dhcpcd.nix @@ -6,10 +6,12 @@ let dhcpcd = if !config.boot.isContainer then pkgs.dhcpcd else pkgs.dhcpcd.override { udev = null; }; + cfg = config.networking.dhcpcd; + # Don't start dhcpcd on explicitly configured interfaces or on # interfaces that are part of a bridge, bond or sit device. ignoredInterfaces = - map (i: i.name) (filter (i: i.ipAddress != null) (attrValues config.networking.interfaces)) + map (i: i.name) (filter (i: i.ip4 != [ ] || i.ipAddress != null) (attrValues config.networking.interfaces)) ++ mapAttrsToList (i: _: i) config.networking.sits ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bridges)) ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bonds)) @@ -38,7 +40,10 @@ let # (Xen) and virbr* and vnet* (libvirt). denyinterfaces ${toString ignoredInterfaces} lo peth* vif* tap* tun* virbr* vnet* vboxnet* sit* - ${config.networking.dhcpcd.extraConfig} + # Use the list of allowed interfaces if specified + ${optionalString (cfg.allowInterfaces != null) "allowinterfaces ${toString cfg.allowInterfaces}"} + + ${cfg.extraConfig} ''; # Hook for emitting ip-up/ip-down events. @@ -59,7 +64,7 @@ let # ${config.systemd.package}/bin/systemctl start ip-down.target #fi - ${config.networking.dhcpcd.runHook} + ${cfg.runHook} ''; in @@ -70,6 +75,18 @@ in options = { + networking.dhcpcd.persistent = mkOption { + type = types.bool; + default = false; + description = '' + Whenever to leave interfaces configured on dhcpcd daemon + shutdown. Set to true if you have your root or store mounted + over the network or this machine accepts SSH connections + through DHCP interfaces and clients should be notified when + it shuts down. + ''; + }; + networking.dhcpcd.denyInterfaces = mkOption { type = types.listOf types.str; default = []; @@ -81,6 +98,17 @@ in ''; }; + networking.dhcpcd.allowInterfaces = mkOption { + type = types.nullOr (types.listOf types.str); + default = null; + description = '' + Enable the DHCP client for any interface whose name matches + any of the shell glob patterns in this list. Any interface not + explicitly matched by this pattern will be denied. This pattern only + applies when non-null. + ''; + }; + networking.dhcpcd.extraConfig = mkOption { type = types.lines; default = ""; @@ -123,7 +151,7 @@ in serviceConfig = { Type = "forking"; PIDFile = "/run/dhcpcd.pid"; - ExecStart = "@${dhcpcd}/sbin/dhcpcd dhcpcd --quiet --config ${dhcpcdConf}"; + ExecStart = "@${dhcpcd}/sbin/dhcpcd dhcpcd --quiet ${optionalString cfg.persistent "--persistent"} --config ${dhcpcdConf}"; ExecReload = "${dhcpcd}/sbin/dhcpcd --rebind"; Restart = "always"; }; diff --git a/nixos/modules/services/networking/dnsmasq.nix b/nixos/modules/services/networking/dnsmasq.nix index 8e38b9d017a..d2a8af6ac8b 100644 --- a/nixos/modules/services/networking/dnsmasq.nix +++ b/nixos/modules/services/networking/dnsmasq.nix @@ -6,10 +6,12 @@ let cfg = config.services.dnsmasq; dnsmasq = pkgs.dnsmasq; - serversParam = concatMapStrings (s: "-S ${s} ") cfg.servers; - dnsmasqConf = pkgs.writeText "dnsmasq.conf" '' - ${cfg.extraConfig} + ${optionalString cfg.resolveLocalQueries '' + conf-file=/etc/dnsmasq-conf.conf + resolv-file=/etc/dnsmasq-resolv.conf + ''} + ${cfg.extraConfig} ''; in @@ -29,6 +31,14 @@ in ''; }; + resolveLocalQueries = mkOption { + default = true; + description = '' + Whether dnsmasq should resolve local queries (i.e. add 127.0.0.1 to + /etc/resolv.conf) + ''; + }; + servers = mkOption { default = []; example = [ "8.8.8.8" "8.8.4.4" ]; @@ -37,6 +47,8 @@ in ''; }; + + extraConfig = mkOption { type = types.string; default = ""; @@ -55,16 +67,31 @@ in config = mkIf config.services.dnsmasq.enable { - jobs.dnsmasq = - { description = "dnsmasq daemon"; + environment.systemPackages = [ dnsmasq ] + ++ (if cfg.resolveLocalQueries then [ pkgs.openresolv ] else []); - startOn = "ip-up"; + services.dbus.packages = [ dnsmasq ]; - daemonType = "daemon"; - - exec = "${dnsmasq}/bin/dnsmasq -R ${serversParam} -o -C ${dnsmasqConf}"; + users.extraUsers = singleton + { name = "dnsmasq"; + uid = config.ids.uids.dnsmasq; + description = "Dnsmasq daemon user"; + home = "/var/empty"; }; + systemd.services.dnsmasq = { + description = "dnsmasq daemon"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "dbus"; + BusName = "uk.org.thekelleys.dnsmasq"; + ExecStartPre = "${dnsmasq}/bin/dnsmasq --test"; + ExecStart = "${dnsmasq}/bin/dnsmasq -k --enable-dbus --user=dnsmasq -C ${dnsmasqConf}"; + ExecReload = "${dnsmasq}/bin/kill -HUP $MAINPID"; + }; + }; + }; } diff --git a/nixos/modules/services/networking/ircd-hybrid/default.nix b/nixos/modules/services/networking/ircd-hybrid/default.nix index a3d5b71740f..2c397f94d23 100644 --- a/nixos/modules/services/networking/ircd-hybrid/default.nix +++ b/nixos/modules/services/networking/ircd-hybrid/default.nix @@ -66,7 +66,7 @@ in rsaKey = mkOption { default = null; - example = /root/certificates/irc.key; + example = literalExample "/root/certificates/irc.key"; description = " IRCD server RSA key. "; @@ -74,7 +74,7 @@ in certificate = mkOption { default = null; - example = /root/certificates/irc.pem; + example = literalExample "/root/certificates/irc.pem"; description = " IRCD server SSL certificate. There are some limitations - read manual. "; diff --git a/nixos/modules/services/networking/nsd.nix b/nixos/modules/services/networking/nsd.nix index db8cb122871..cacd52f130f 100644 --- a/nixos/modules/services/networking/nsd.nix +++ b/nixos/modules/services/networking/nsd.nix @@ -456,156 +456,131 @@ in }; - ratelimit = mkOption { - type = types.submodule ( - { options, ... }: - { options = { - - enable = mkOption { - type = types.bool; - default = false; - description = '' - Enable ratelimit capabilities. - ''; - }; - - size = mkOption { - type = types.int; - default = 1000000; - description = '' - Size of the hashtable. More buckets use more memory but lower - the chance of hash hash collisions. - ''; - }; - - ratelimit = mkOption { - type = types.int; - default = 200; - description = '' - Max qps allowed from any query source. - 0 means unlimited. With an verbosity of 2 blocked and - unblocked subnets will be logged. - ''; - }; - - whitelistRatelimit = mkOption { - type = types.int; - default = 2000; - description = '' - Max qps allowed from whitelisted sources. - 0 means unlimited. Set the rrl-whitelist option for specific - queries to apply this limit instead of the default to them. - ''; - }; - - slip = mkOption { - type = types.nullOr types.int; - default = null; - description = '' - Number of packets that get discarded before replying a SLIP response. - 0 disables SLIP responses. 1 will make every response a SLIP response. - ''; - }; - - ipv4PrefixLength = mkOption { - type = types.nullOr types.int; - default = null; - description = '' - IPv4 prefix length. Addresses are grouped by netblock. - ''; - }; - - ipv6PrefixLength = mkOption { - type = types.nullOr types.int; - default = null; - description = '' - IPv6 prefix length. Addresses are grouped by netblock. - ''; - }; - - }; - }); - default = { + ratelimit = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Enable ratelimit capabilities. + ''; + }; + + size = mkOption { + type = types.int; + default = 1000000; + description = '' + Size of the hashtable. More buckets use more memory but lower + the chance of hash hash collisions. + ''; + }; + + ratelimit = mkOption { + type = types.int; + default = 200; + description = '' + Max qps allowed from any query source. + 0 means unlimited. With an verbosity of 2 blocked and + unblocked subnets will be logged. + ''; + }; + + whitelistRatelimit = mkOption { + type = types.int; + default = 2000; + description = '' + Max qps allowed from whitelisted sources. + 0 means unlimited. Set the rrl-whitelist option for specific + queries to apply this limit instead of the default to them. + ''; + }; + + slip = mkOption { + type = types.nullOr types.int; + default = null; + description = '' + Number of packets that get discarded before replying a SLIP response. + 0 disables SLIP responses. 1 will make every response a SLIP response. + ''; + }; + + ipv4PrefixLength = mkOption { + type = types.nullOr types.int; + default = null; + description = '' + IPv4 prefix length. Addresses are grouped by netblock. + ''; + }; + + ipv6PrefixLength = mkOption { + type = types.nullOr types.int; + default = null; + description = '' + IPv6 prefix length. Addresses are grouped by netblock. + ''; }; - example = {}; - description = '' - ''; }; - remoteControl = mkOption { - type = types.submodule ( - { config, options, ... }: - { options = { - - enable = mkOption { - type = types.bool; - default = false; - description = '' - Wheter to enable remote control via nsd-control(8). - ''; - }; - - interfaces = mkOption { - type = types.listOf types.str; - default = [ "127.0.0.1" "::1" ]; - description = '' - Which interfaces NSD should bind to for remote control. - ''; - }; - - port = mkOption { - type = types.int; - default = 8952; - description = '' - Port number for remote control operations (uses TLS over TCP). - ''; - }; - - serverKeyFile = mkOption { - type = types.path; - default = "/etc/nsd/nsd_server.key"; - description = '' - Path to the server private key, which is used by the server - but not by nsd-control. This file is generated by nsd-control-setup. - ''; - }; - - serverCertFile = mkOption { - type = types.path; - default = "/etc/nsd/nsd_server.pem"; - description = '' - Path to the server self signed certificate, which is used by the server - but and by nsd-control. This file is generated by nsd-control-setup. - ''; - }; - - controlKeyFile = mkOption { - type = types.path; - default = "/etc/nsd/nsd_control.key"; - description = '' - Path to the client private key, which is used by nsd-control - but not by the server. This file is generated by nsd-control-setup. - ''; - }; - - controlCertFile = mkOption { - type = types.path; - default = "/etc/nsd/nsd_control.pem"; - description = '' - Path to the client certificate signed with the server certificate. - This file is used by nsd-control and generated by nsd-control-setup. - ''; - }; - - }; - - }); - default = { + remoteControl = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Wheter to enable remote control via nsd-control(8). + ''; + }; + + interfaces = mkOption { + type = types.listOf types.str; + default = [ "127.0.0.1" "::1" ]; + description = '' + Which interfaces NSD should bind to for remote control. + ''; + }; + + port = mkOption { + type = types.int; + default = 8952; + description = '' + Port number for remote control operations (uses TLS over TCP). + ''; + }; + + serverKeyFile = mkOption { + type = types.path; + default = "/etc/nsd/nsd_server.key"; + description = '' + Path to the server private key, which is used by the server + but not by nsd-control. This file is generated by nsd-control-setup. + ''; + }; + + serverCertFile = mkOption { + type = types.path; + default = "/etc/nsd/nsd_server.pem"; + description = '' + Path to the server self signed certificate, which is used by the server + but and by nsd-control. This file is generated by nsd-control-setup. + ''; + }; + + controlKeyFile = mkOption { + type = types.path; + default = "/etc/nsd/nsd_control.key"; + description = '' + Path to the client private key, which is used by nsd-control + but not by the server. This file is generated by nsd-control-setup. + ''; + }; + + controlCertFile = mkOption { + type = types.path; + default = "/etc/nsd/nsd_control.pem"; + description = '' + Path to the client certificate signed with the server certificate. + This file is used by nsd-control and generated by nsd-control-setup. + ''; }; - example = {}; - description = '' - ''; }; diff --git a/nixos/modules/services/networking/openntpd.nix b/nixos/modules/services/networking/openntpd.nix new file mode 100644 index 00000000000..bd8a7a04a2a --- /dev/null +++ b/nixos/modules/services/networking/openntpd.nix @@ -0,0 +1,49 @@ +{ pkgs, lib, config, options, ... }: + +with lib; + +let + cfg = config.services.openntpd; + + package = pkgs.openntpd.override { + privsepUser = "ntp"; + privsepPath = "/var/empty"; + }; + + cfgFile = pkgs.writeText "openntpd.conf" '' + ${concatStringsSep "\n" (map (s: "server ${s}") cfg.servers)} + ''; +in +{ + ###### interface + + options.services.openntpd = { + enable = mkEnableOption "OpenNTP time synchronization server"; + + servers = mkOption { + default = config.services.ntp.servers; + type = types.listOf types.str; + inherit (options.services.ntp.servers) description; + }; + }; + + ###### implementation + + config = mkIf cfg.enable { + services.ntp.enable = mkForce false; + + users.extraUsers = singleton { + name = "ntp"; + uid = config.ids.uids.ntp; + description = "OpenNTP daemon user"; + home = "/var/empty"; + }; + + systemd.services.openntpd = { + description = "OpenNTP Server"; + wantedBy = [ "ip-up.target" ]; + partOf = [ "ip-up.target" ]; + serviceConfig.ExecStart = "${package}/sbin/ntpd -d -f ${cfgFile}"; + }; + }; +} diff --git a/nixos/modules/services/networking/privoxy.nix b/nixos/modules/services/networking/privoxy.nix index 950112b2dab..94beb78ef5a 100644 --- a/nixos/modules/services/networking/privoxy.nix +++ b/nixos/modules/services/networking/privoxy.nix @@ -6,19 +6,18 @@ let inherit (pkgs) privoxy; - stateDir = "/var/spool/privoxy"; - privoxyUser = "privoxy"; - privoxyFlags = "--no-daemon --user ${privoxyUser} ${privoxyCfg}"; + cfg = config.services.privoxy; - privoxyCfg = pkgs.writeText "privoxy.conf" '' - listen-address ${config.services.privoxy.listenAddress} - logdir ${config.services.privoxy.logDir} - confdir ${privoxy}/etc - filterfile default.filter - - ${config.services.privoxy.extraConfig} + confFile = pkgs.writeText "privoxy.conf" '' + user-manual ${privoxy}/share/doc/privoxy/user-manual + confdir ${privoxy}/etc/ + listen-address ${cfg.listenAddress} + enable-edit-actions ${if (cfg.enableEditActions == true) then "1" else "0"} + ${concatMapStrings (f: "actionsfile ${f}\n") cfg.actionsFiles} + ${concatMapStrings (f: "filterfile ${f}\n") cfg.filterFiles} + ${cfg.extraConfig} ''; in @@ -32,27 +31,51 @@ in services.privoxy = { enable = mkOption { + type = types.bool; default = false; description = '' - Whether to run the machine as a HTTP proxy server. + Whether to enable the Privoxy non-caching filtering proxy. ''; }; listenAddress = mkOption { + type = types.str; default = "127.0.0.1:8118"; description = '' Address the proxy server is listening to. ''; }; - logDir = mkOption { - default = "/var/log/privoxy" ; + actionsFiles = mkOption { + type = types.listOf types.str; + example = [ "match-all.action" "default.action" "/etc/privoxy/user.action" ]; + default = [ "match-all.action" "default.action" ]; description = '' - Location for privoxy log files. + List of paths to Privoxy action files. + These paths may either be absolute or relative to the privoxy configuration directory. + ''; + }; + + filterFiles = mkOption { + type = types.listOf types.str; + example = [ "default.filter" "/etc/privoxy/user.filter" ]; + default = [ "default.filter" ]; + description = '' + List of paths to Privoxy filter files. + These paths may either be absolute or relative to the privoxy configuration directory. + ''; + }; + + enableEditActions = mkOption { + type = types.bool; + default = false; + description = '' + Whether or not the web-based actions file editor may be used. ''; }; extraConfig = mkOption { + type = types.lines; default = "" ; description = '' Extra configuration. Contents will be added verbatim to the configuration file. @@ -62,33 +85,22 @@ in }; - ###### implementation - config = mkIf config.services.privoxy.enable { + config = mkIf cfg.enable { - environment.systemPackages = [ privoxy ]; - users.extraUsers = singleton { name = privoxyUser; uid = config.ids.uids.privoxy; description = "Privoxy daemon user"; - home = stateDir; }; - jobs.privoxy = - { name = "privoxy"; - - startOn = "startup"; - - preStart = - '' - mkdir -m 0755 -p ${stateDir} - chown ${privoxyUser} ${stateDir} - ''; - - exec = "${privoxy}/sbin/privoxy ${privoxyFlags}"; - }; + systemd.services.privoxy = { + description = "Filtering web proxy"; + after = [ "network.target" "nss-lookup.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig.ExecStart = "${privoxy}/sbin/privoxy --no-daemon --user ${privoxyUser} ${confFile}"; + }; }; diff --git a/nixos/modules/services/networking/radvd.nix b/nixos/modules/services/networking/radvd.nix index 08762c9c837..0199502163a 100644 --- a/nixos/modules/services/networking/radvd.nix +++ b/nixos/modules/services/networking/radvd.nix @@ -52,24 +52,32 @@ in config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.radvd ]; + users.extraUsers.radvd = + { uid = config.ids.uids.radvd; + description = "Router Advertisement Daemon User"; + }; - jobs.radvd = + systemd.services.radvd = { description = "IPv6 Router Advertisement Daemon"; - startOn = "started network-interfaces"; + wantedBy = [ "multi-user.target" ]; - preStart = - '' - # !!! Radvd only works if IPv6 forwarding is enabled. But - # this should probably be done somewhere else (and not - # necessarily for all interfaces). - echo 1 > /proc/sys/net/ipv6/conf/all/forwarding - ''; + after = [ "network.target" ]; - exec = "${pkgs.radvd}/sbin/radvd -m syslog -s -C ${confFile}"; + path = [ pkgs.radvd ]; - daemonType = "fork"; + preStart = '' + mkdir -m 755 -p /run/radvd + chown radvd /run/radvd + ''; + + serviceConfig = + { ExecStart = "@${pkgs.radvd}/sbin/radvd radvd" + + " -p /run/radvd/radvd.pid -m syslog -u radvd -C ${confFile}"; + Restart = "always"; + Type = "forking"; + PIDFile = "/run/radvd/radvd.pid"; + }; }; }; diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix index e4b29a0b909..379dec2e92c 100644 --- a/nixos/modules/services/networking/ssh/sshd.nix +++ b/nixos/modules/services/networking/ssh/sshd.nix @@ -144,6 +144,36 @@ in ''; }; + listenAddresses = mkOption { + type = types.listOf types.optionSet; + default = []; + example = [ { addr = "192.168.3.1"; port = 22; } { addr = "0.0.0.0"; port = 64022; } ]; + description = '' + List of addresses and ports to listen on (ListenAddress directive + in config). If port is not specified for address sshd will listen + on all ports specified by ports option. + NOTE: this will override default listening on all local addresses and port 22. + NOTE: setting this option won't automatically enable given ports + in firewall configuration. + ''; + options = { + addr = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + Host, IPv4 or IPv6 address to listen to. + ''; + }; + port = mkOption { + type = types.nullOr types.int; + default = null; + description = '' + Port to listen to. + ''; + }; + }; + }; + passwordAuthentication = mkOption { type = types.bool; default = true; @@ -349,6 +379,10 @@ in Port ${toString port} '') cfg.ports} + ${concatMapStrings ({ port, addr }: '' + ListenAddress ${addr}${if port != null then ":" + toString port else ""} + '') cfg.listenAddresses} + ${optionalString cfgc.setXAuthLocation '' XAuthLocation ${pkgs.xorg.xauth}/bin/xauth ''} @@ -383,6 +417,10 @@ in assertion = (data.publicKey == null && data.publicKeyFile != null) || (data.publicKey != null && data.publicKeyFile == null); message = "knownHost ${name} must contain either a publicKey or publicKeyFile"; + }) + ++ flip map cfg.listenAddresses ({ addr, port }: { + assertion = addr != null; + message = "addr must be specified in each listenAddresses entry"; }); }; diff --git a/nixos/modules/services/networking/znc.nix b/nixos/modules/services/networking/znc.nix index 4d53cd0750f..9b26b2b3244 100644 --- a/nixos/modules/services/networking/znc.nix +++ b/nixos/modules/services/networking/znc.nix @@ -25,85 +25,6 @@ let paths = cfg.modulePackages; }; - confOptions = { ... }: { - options = { - modules = mkOption { - type = types.listOf types.string; - default = [ "partyline" "webadmin" "adminlog" "log" ]; - example = [ "partyline" "webadmin" "adminlog" "log" ]; - description = '' - A list of modules to include in the `znc.conf` file. - ''; - }; - - userModules = mkOption { - type = types.listOf types.string; - default = [ ]; - example = [ "fish" "push" ]; - description = '' - A list of user modules to include in the `znc.conf` file. - ''; - }; - - userName = mkOption { - default = defaultUserName; - example = "johntron"; - type = types.string; - description = '' - The user name to use when generating the `znc.conf` file. - This is the user name used by the user logging into the ZNC web admin. - ''; - }; - - nick = mkOption { - default = "znc-user"; - example = "john"; - type = types.string; - description = '' - The IRC nick to use when generating the `znc.conf` file. - ''; - }; - - passBlock = mkOption { - default = defaultPassBlock; - example = "Must be the block generated by the `znc --makepass` command."; - type = types.string; - description = '' - The pass block to use when generating the `znc.conf` file. - This is the password used by the user logging into the ZNC web admin. - This is the block generated by the `znc --makepass` command. - !!! If not specified, please change this after starting the service. !!! - ''; - }; - - port = mkOption { - default = 5000; - example = 5000; - type = types.int; - description = '' - Specifies the port on which to listen. - ''; - }; - - useSSL = mkOption { - default = true; - example = true; - type = types.bool; - description = '' - Indicates whether the ZNC server should use SSL when listening on the specified port. - ''; - }; - - extraZncConf = mkOption { - default = ""; - type = types.lines; - description = '' - Extra config to `znc.conf` file - ''; - }; - }; - }; - # Keep znc.conf in nix store, then symlink or copy into `dataDir`, depending on `mutable`. mkZncConf = confOpts: '' // Also check http://en.znc.in/wiki/Configuration @@ -211,24 +132,97 @@ in ''; }; - confOptions = mkOption { - default = {}; - example = { - modules = [ "log" ]; - userName = "john"; - nick = "johntron"; + /* TODO: add to the documentation of the current module: + + Values to use when creating a `znc.conf` file. + + confOptions = { + modules = [ "log" ]; + userName = "john"; + nick = "johntron"; + }; + */ + confOptions = { + modules = mkOption { + type = types.listOf types.string; + default = [ "partyline" "webadmin" "adminlog" "log" ]; + example = [ "partyline" "webadmin" "adminlog" "log" ]; + description = '' + A list of modules to include in the `znc.conf` file. + ''; + }; + + userModules = mkOption { + type = types.listOf types.string; + default = [ ]; + example = [ "fish" "push" ]; + description = '' + A list of user modules to include in the `znc.conf` file. + ''; + }; + + userName = mkOption { + default = defaultUserName; + example = "johntron"; + type = types.string; + description = '' + The user name to use when generating the `znc.conf` file. + This is the user name used by the user logging into the ZNC web admin. + ''; + }; + + nick = mkOption { + default = "znc-user"; + example = "john"; + type = types.string; + description = '' + The IRC nick to use when generating the `znc.conf` file. + ''; + }; + + passBlock = mkOption { + default = defaultPassBlock; + example = "Must be the block generated by the `znc --makepass` command."; + type = types.string; + description = '' + The pass block to use when generating the `znc.conf` file. + This is the password used by the user logging into the ZNC web admin. + This is the block generated by the `znc --makepass` command. + !!! If not specified, please change this after starting the service. !!! + ''; + }; + + port = mkOption { + default = 5000; + example = 5000; + type = types.int; + description = '' + Specifies the port on which to listen. + ''; + }; + + useSSL = mkOption { + default = true; + example = true; + type = types.bool; + description = '' + Indicates whether the ZNC server should use SSL when listening on the specified port. + ''; + }; + + extraZncConf = mkOption { + default = ""; + type = types.lines; + description = '' + Extra config to `znc.conf` file + ''; }; - type = types.optionSet; - description = '' - Values to use when creating a `znc.conf` file. - ''; - options = confOptions; }; modulePackages = mkOption { type = types.listOf types.package; default = [ ]; - example = [ pkgs.zncModules.fish pkgs.zncModules.push ]; + example = literalExample "[ pkgs.zncModules.fish pkgs.zncModules.push ]"; description = '' A list of global znc module packages to add to znc. ''; @@ -280,20 +274,16 @@ in # If mutable, regenerate conf file every time. ${optionalString (!cfg.mutable) '' - ${pkgs.coreutils}/echo "znc is set to be system-managed. Now deleting old znc.conf file to be regenerated." - ${pkgs.coreutils}/rm -f ${cfg.dataDir}/configs/znc.conf + ${pkgs.coreutils}/bin/echo "znc is set to be system-managed. Now deleting old znc.conf file to be regenerated." + ${pkgs.coreutils}/bin/rm -f ${cfg.dataDir}/configs/znc.conf ''} # Ensure essential files exist. if [[ ! -f ${cfg.dataDir}/configs/znc.conf ]]; then - ${pkgs.coreutils}/bin/echo "No znc.conf file found in ${cfg.dataDir}. Creating one now." - ${if (!cfg.mutable) - then "${pkgs.coreutils}/bin/ln --force -s ${zncConfFile} ${cfg.dataDir}/.znc/configs/znc.conf" - else '' - ${pkgs.coreutils}/bin/cp --no-clobber ${zncConfFile} ${cfg.dataDir}/configs/znc.conf - ${pkgs.coreutils}/bin/chmod u+rw ${cfg.dataDir}/configs/znc.conf - ${pkgs.coreutils}/bin/chown ${cfg.user} ${cfg.dataDir}/configs/znc.conf - ''} + ${pkgs.coreutils}/bin/echo "No znc.conf file found in ${cfg.dataDir}. Creating one now." + ${pkgs.coreutils}/bin/cp --no-clobber ${zncConfFile} ${cfg.dataDir}/configs/znc.conf + ${pkgs.coreutils}/bin/chmod u+rw ${cfg.dataDir}/configs/znc.conf + ${pkgs.coreutils}/bin/chown ${cfg.user} ${cfg.dataDir}/configs/znc.conf fi if [[ ! -f ${cfg.dataDir}/znc.pem ]]; then diff --git a/nixos/modules/services/security/clamav.nix b/nixos/modules/services/security/clamav.nix index 057891a6047..a4d54301fc1 100644 --- a/nixos/modules/services/security/clamav.nix +++ b/nixos/modules/services/security/clamav.nix @@ -71,10 +71,10 @@ in mkdir -m 0755 -p ${stateDir} chown ${clamavUser}:${clamavGroup} ${stateDir} ''; - exec = "${pkgs.clamav}/bin/freshclam --config-file=${pkgs.writeText "freshclam.conf" cfg.updater.config}"; + exec = "${pkgs.clamav}/bin/freshclam --daemon --config-file=${pkgs.writeText "freshclam.conf" cfg.updater.config}"; }; }; }; -} \ No newline at end of file +} diff --git a/nixos/modules/services/ttys/agetty.nix b/nixos/modules/services/ttys/agetty.nix index df21ebbd974..3958be33df2 100644 --- a/nixos/modules/services/ttys/agetty.nix +++ b/nixos/modules/services/ttys/agetty.nix @@ -66,6 +66,13 @@ with lib; restartIfChanged = false; }; + systemd.services."console-getty" = + { serviceConfig.ExecStart = "@${pkgs.utillinux}/sbin/agetty agetty --noclear --login-program ${pkgs.shadow}/bin/login --keep-baud console 115200,38400,9600 $TERM"; + serviceConfig.Restart = "always"; + restartIfChanged = false; + enable = mkDefault config.boot.isContainer; + }; + environment.etc = singleton { # Friendly greeting on the virtual consoles. source = pkgs.writeText "issue" '' diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix index b83cf276ed5..9ac28373dac 100644 --- a/nixos/modules/services/web-servers/apache-httpd/default.nix +++ b/nixos/modules/services/web-servers/apache-httpd/default.nix @@ -423,7 +423,7 @@ in package = mkOption { type = types.package; default = pkgs.apacheHttpd.override { mpm = mainCfg.multiProcessingModule; }; - example = "pkgs.apacheHttpd_2_4"; + example = literalExample "pkgs.apacheHttpd_2_4"; description = '' Overridable attribute of the Apache HTTP Server package to use. ''; diff --git a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix index aa9aec87f0c..bb066aa6c47 100644 --- a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix +++ b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix @@ -133,6 +133,7 @@ in RewriteEngine On RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d + ${concatMapStringsSep "\n" (u: "RewriteCond %{REQUEST_URI} !^${u.urlPath}") serverInfo.vhostConfig.servedDirs} RewriteRule ${if config.enableUploads then "!^/images" else "^.*\$" diff --git a/nixos/modules/services/web-servers/tomcat.nix b/nixos/modules/services/web-servers/tomcat.nix index c2f464014ae..2af249a8e96 100644 --- a/nixos/modules/services/web-servers/tomcat.nix +++ b/nixos/modules/services/web-servers/tomcat.nix @@ -5,7 +5,7 @@ with lib; let cfg = config.services.tomcat; - tomcat = pkgs.tomcat6; + tomcat = pkgs.tomcat7; in { diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index 06bcb6dbb8b..049c96c54e7 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -37,7 +37,7 @@ in { services.xserver.desktopManager.gnome3.sessionPath = mkOption { default = []; - example = "[ pkgs.gnome3.gpaste ]"; + example = literalExample "[ pkgs.gnome3.gpaste ]"; description = "Additional list of packages to be added to the session search path. Useful for gnome shell extensions or gsettings-conditionated autostart."; apply = list: list ++ [ gnome3.gnome_shell ]; @@ -51,7 +51,7 @@ in { environment.gnome3.excludePackages = mkOption { default = []; - example = "[ pkgs.gnome3.totem ]"; + example = literalExample "[ pkgs.gnome3.totem ]"; type = types.listOf types.package; description = "Which packages gnome should exclude from the default environment"; }; diff --git a/nixos/modules/services/x11/desktop-managers/kde4.nix b/nixos/modules/services/x11/desktop-managers/kde4.nix index f74dd7e0444..669ddbd904f 100644 --- a/nixos/modules/services/x11/desktop-managers/kde4.nix +++ b/nixos/modules/services/x11/desktop-managers/kde4.nix @@ -65,7 +65,7 @@ in environment.kdePackages = mkOption { default = []; - example = "[ pkgs.kde4.kdesdk ]"; + example = literalExample "[ pkgs.kde4.kdesdk ]"; type = types.listOf types.package; description = "This option is obsolete. Please use instead."; }; diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index 3bf18bd58c8..6e61576f501 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -251,14 +251,16 @@ in execCmd = mkOption { type = types.str; - example = "${pkgs.slim}/bin/slim"; + example = literalExample '' + "''${pkgs.slim}/bin/slim" + ''; description = "Command to start the display manager."; }; environment = mkOption { type = types.attrsOf types.unspecified; default = {}; - example = { SLIM_CFGFILE = /etc/slim.conf; }; + example = { SLIM_CFGFILE = "/etc/slim.conf"; }; description = "Additional environment variables needed by the display manager."; }; diff --git a/nixos/modules/services/x11/display-managers/slim.nix b/nixos/modules/services/x11/display-managers/slim.nix index 9ee4e0dc7cb..c7fbfa85e33 100644 --- a/nixos/modules/services/x11/display-managers/slim.nix +++ b/nixos/modules/services/x11/display-managers/slim.nix @@ -19,6 +19,7 @@ let reboot_cmd ${config.systemd.package}/sbin/shutdown -r now ${optionalString (cfg.defaultUser != null) ("default_user " + cfg.defaultUser)} ${optionalString cfg.autoLogin "auto_login yes"} + ${cfg.extraConfig} ''; # Unpack the SLiM theme, or use the default. @@ -89,6 +90,15 @@ in ''; }; + extraConfig = mkOption { + type = types.lines; + default = ""; + description = '' + Extra configuration options for SLiM login manager. Do not + add options that can be configured directly. + ''; + }; + }; }; diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 5f3e8003b45..21eaf6bb6b7 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -151,7 +151,7 @@ in modules = mkOption { type = types.listOf types.path; default = []; - example = [ pkgs.xf86_input_wacom ]; + example = literalExample "[ pkgs.xf86_input_wacom ]"; description = "Packages to be added to the module search path of the X server."; }; @@ -201,7 +201,7 @@ in vaapiDrivers = mkOption { type = types.listOf types.path; default = [ ]; - example = "[ pkgs.vaapiIntel pkgs.vaapiVdpau ]"; + example = literalExample "[ pkgs.vaapiIntel pkgs.vaapiVdpau ]"; description = '' Packages providing libva acceleration drivers. ''; diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl index c3aa8518b8b..b4900358a5d 100644 --- a/nixos/modules/system/boot/loader/grub/install-grub.pl +++ b/nixos/modules/system/boot/loader/grub/install-grub.pl @@ -66,7 +66,6 @@ if ($explicitBootRoot ne "") { $bootRoot = $explicitBootRoot; } - # Generate the header. my $conf .= "# Automatically generated. DO NOT EDIT THIS FILE!\n"; diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix index c923cc49c44..70ff1d588a3 100644 --- a/nixos/modules/system/boot/luksroot.nix +++ b/nixos/modules/system/boot/luksroot.nix @@ -342,40 +342,39 @@ in description = "Path where the ramfs used to update the LUKS key will be mounted in stage-1"; }; - storage = mkOption { - type = types.optionSet; - description = "Options related to the storing the salt"; + /* TODO: Add to the documentation of the current module: - options = { - device = mkOption { - default = /dev/sda1; - type = types.path; - description = '' - An unencrypted device that will temporarily be mounted in stage-1. - Must contain the current salt to create the challenge for this LUKS device. - ''; - }; + Options related to the storing the salt. + */ + storage = { + device = mkOption { + default = "/dev/sda1"; + type = types.path; + description = '' + An unencrypted device that will temporarily be mounted in stage-1. + Must contain the current salt to create the challenge for this LUKS device. + ''; + }; - fsType = mkOption { - default = "vfat"; - type = types.string; - description = "The filesystem of the unencrypted device"; - }; + fsType = mkOption { + default = "vfat"; + type = types.string; + description = "The filesystem of the unencrypted device"; + }; - mountPoint = mkOption { - default = "/crypt-storage"; - type = types.string; - description = "Path where the unencrypted device will be mounted in stage-1"; - }; + mountPoint = mkOption { + default = "/crypt-storage"; + type = types.string; + description = "Path where the unencrypted device will be mounted in stage-1"; + }; - path = mkOption { - default = "/crypt-storage/default"; - type = types.string; - description = '' - Absolute path of the salt on the unencrypted device with - that device's root directory as "/". - ''; - }; + path = mkOption { + default = "/crypt-storage/default"; + type = types.string; + description = '' + Absolute path of the salt on the unencrypted device with + that device's root directory as "/". + ''; }; }; }; diff --git a/nixos/modules/system/boot/modprobe.nix b/nixos/modules/system/boot/modprobe.nix index 652eb046f50..eaf8cf1ecd6 100644 --- a/nixos/modules/system/boot/modprobe.nix +++ b/nixos/modules/system/boot/modprobe.nix @@ -77,6 +77,11 @@ with lib; '')} ${config.boot.extraModprobeConfig} ''; + environment.etc."modprobe.d/usb-load-ehci-first.conf".text = + '' + softdep uhci_hcd pre: ehci_hcd + softdep ohci_hcd pre: ehci_hcd + ''; environment.systemPackages = [ config.system.sbin.modprobe pkgs.kmod ]; diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index 1d387805443..426da778f43 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -199,9 +199,6 @@ let { object = pkgs.writeText "mdadm.conf" config.boot.initrd.mdadmConf; symlink = "/etc/mdadm.conf"; } - { object = config.environment.etc."modprobe.d/nixos.conf".source; - symlink = "/etc/modprobe.d/nixos.conf"; - } { object = pkgs.stdenv.mkDerivation { name = "initrd-kmod-blacklist-ubuntu"; builder = pkgs.writeText "builder.sh" '' diff --git a/nixos/modules/tasks/filesystems/nfs.nix b/nixos/modules/tasks/filesystems/nfs.nix index e8c3d8ab56d..c902b9e0790 100644 --- a/nixos/modules/tasks/filesystems/nfs.nix +++ b/nixos/modules/tasks/filesystems/nfs.nix @@ -24,13 +24,37 @@ let Method = nsswitch ''; + cfg = config.services.nfs; + in { + ###### interface + + options = { + + services.nfs = { + statdPort = mkOption { + default = null; + example = 4000; + description = '' + Use fixed port for rpc.statd, usefull if NFS server is behind firewall. + ''; + }; + lockdPort = mkOption { + default = null; + example = 4001; + description = '' + Use fixed port for NFS lock manager kernel module (lockd/nlockmgr), + usefull if NFS server is behind firewall. + ''; + }; + }; + }; ###### implementation - config = mkIf (any (fs: fs == "nfs" || fs == "nfs4") config.boot.supportedFilesystems) { + config = mkIf (any (fs: fs == "nfs" || fs == "nfs4") config.boot.supportedFilesystems) ({ services.rpcbind.enable = true; @@ -60,7 +84,10 @@ in ''; serviceConfig.Type = "forking"; - serviceConfig.ExecStart = "@${pkgs.nfsUtils}/sbin/rpc.statd rpc.statd --no-notify"; + serviceConfig.ExecStart = '' + @${pkgs.nfsUtils}/sbin/rpc.statd rpc.statd --no-notify \ + ${if cfg.statdPort != null then "-p ${toString statdPort}" else ""} + ''; serviceConfig.Restart = "always"; }; @@ -90,5 +117,9 @@ in serviceConfig.Restart = "always"; }; - }; + } // mkIf (cfg.lockdPort != null) { + boot.extraModprobeConfig = '' + options lockd nlm_udpport=${toString cfg.lockdPort} nlm_tcpport=${toString cfg.lockdPort} + ''; + }); } diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index 7dabe70f00c..2adb4bcfaba 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -10,6 +10,26 @@ let hasSits = cfg.sits != { }; hasBonds = cfg.bonds != { }; + addrOpts = v: + assert v == 4 || v == 6; + { + address = mkOption { + type = types.str; + description = '' + IPv${toString v} address of the interface. Leave empty to configure the + interface using DHCP. + ''; + }; + + prefixLength = mkOption { + type = types.addCheck types.int (n: n >= 0 && n <= (if v == 4 then 32 else 128)); + description = '' + Subnet mask of the interface, specified as the number of + bits in the prefix (${if v == 4 then "24" else "64"}). + ''; + }; + }; + interfaceOpts = { name, ... }: { options = { @@ -20,10 +40,36 @@ let description = "Name of the interface."; }; + ip4 = mkOption { + default = [ ]; + example = [ + { address = "10.0.0.1"; prefixLength = 16; } + { address = "192.168.1.1"; prefixLength = 24; } + ]; + type = types.listOf types.optionSet; + options = addrOpts 4; + description = '' + List of IPv4 addresses that will be statically assigned to the interface. + ''; + }; + + ip6 = mkOption { + default = [ ]; + example = [ + { address = "fdfd:b3f0:482::1"; prefixLength = 48; } + { address = "2001:1470:fffd:2098::e006"; prefixLength = 64; } + ]; + type = types.listOf types.optionSet; + options = addrOpts 6; + description = '' + List of IPv6 addresses that will be statically assigned to the interface. + ''; + }; + ipAddress = mkOption { default = null; example = "10.0.0.1"; - type = types.nullOr (types.str); + type = types.nullOr types.str; description = '' IP address of the interface. Leave empty to configure the interface using DHCP. @@ -41,20 +87,16 @@ let }; subnetMask = mkOption { - default = ""; - example = "255.255.255.0"; - type = types.str; + default = null; description = '' - Subnet mask of the interface, specified as a bitmask. - This is deprecated; use - instead. + Defunct, supply the prefix length instead. ''; }; ipv6Address = mkOption { default = null; example = "2001:1470:fffd:2098::e006"; - type = types.nullOr types.string; + type = types.nullOr types.str; description = '' IPv6 address of the interface. Leave empty to configure the interface using NDP. @@ -224,10 +266,10 @@ in networking.interfaces = mkOption { default = {}; example = - { eth0 = { - ipAddress = "131.211.84.78"; - subnetMask = "255.255.255.128"; - }; + { eth0.ip4 = [ { + address = "131.211.84.78"; + prefixLength = 25; + } ]; }; description = '' The configuration for each network interface. If @@ -438,6 +480,12 @@ in config = { + assertions = + flip map interfaces (i: { + assertion = i.subnetMask == null; + message = "The networking.interfaces.${i.name}.subnetMask option is defunct. Use prefixLength instead."; + }); + boot.kernelModules = [ ] ++ optional cfg.enableIPv6 "ipv6" ++ optional hasVirtuals "tun" @@ -534,12 +582,18 @@ in # network device, so it only gets started after the interface # has appeared, and it's stopped when the interface # disappears. - configureInterface = i: nameValuePair "${i.name}-cfg" - (let mask = - if i.prefixLength != null then toString i.prefixLength else - if i.subnetMask != "" then i.subnetMask else "32"; - staticIPv6 = cfg.enableIPv6 && i.ipv6Address != null; + configureInterface = i: + let + ips = i.ip4 ++ optionals cfg.enableIPv6 i.ip6 + ++ optional (i.ipAddress != null) { + address = i.ipAddress; + prefixLength = i.prefixLength; + } ++ optional (cfg.enableIPv6 && i.ipv6Address != null) { + address = i.ipv6Address; + prefixLength = i.ipv6PrefixLength; + }; in + nameValuePair "${i.name}-cfg" { description = "Configuration of ${i.name}"; wantedBy = [ "network-interfaces.target" ]; bindsTo = [ "sys-subsystem-net-devices-${i.name}.device" ]; @@ -562,36 +616,32 @@ in echo "setting MTU to ${toString i.mtu}..." ip link set "${i.name}" mtu "${toString i.mtu}" '' - + optionalString (i.ipAddress != null) + + # Ip Setup + + '' - cur=$(ip -4 -o a show dev "${i.name}" | awk '{print $4}') - # Only do a flush/add if it's necessary. This is + curIps=$(ip -o a show dev "${i.name}" | awk '{print $4}') + # Only do an add if it's necessary. This is # useful when the Nix store is accessed via this # interface (e.g. in a QEMU VM test). - if [ "$cur" != "${i.ipAddress}/${mask}" ]; then - echo "configuring interface..." - ip -4 addr flush dev "${i.name}" - ip -4 addr add "${i.ipAddress}/${mask}" dev "${i.name}" - restart_network_setup=true - else - echo "skipping configuring interface" + '' + + flip concatMapStrings (ips) (ip: + let + address = "${ip.address}/${toString ip.prefixLength}"; + in + '' + echo "checking ip ${address}..." + if ! echo "$curIps" | grep "${address}" >/dev/null 2>&1; then + if out=$(ip addr add "${address}" dev "${i.name}" 2>&1); then + echo "added ip ${address}..." + restart_network_setup=true + elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then + echo "failed to add ${address}" + exit 1 + fi fi - '' - + optionalString (staticIPv6) - '' - # Only do a flush/add if it's necessary. This is - # useful when the Nix store is accessed via this - # interface (e.g. in a QEMU VM test). - if ! ip -6 -o a show dev "${i.name}" | grep "${i.ipv6Address}/${toString i.ipv6prefixLength}"; then - echo "configuring interface..." - ip -6 addr flush dev "${i.name}" - ip -6 addr add "${i.ipv6Address}/${toString i.ipv6prefixLength}" dev "${i.name}" - restart_network_setup=true - else - echo "skipping configuring interface" - fi - '' - + optionalString (i.ipAddress != null || staticIPv6) + '') + + optionalString (ips != [ ]) '' if [ restart_network_setup = true ]; then # Ensure that the default gateway remains set. @@ -608,7 +658,20 @@ in '' echo 1 > /proc/sys/net/ipv6/conf/${i.name}/proxy_ndp ''; - }); + preStop = + '' + echo "releasing configured ip's..." + '' + + flip concatMapStrings (ips) (ip: + let + address = "${ip.address}/${toString ip.prefixLength}"; + in + '' + echo -n "Deleting ${address}..." + ip addr del "${address}" dev "${i.name}" >/dev/null 2>&1 || echo -n " Failed" + echo "" + ''); + }; createTunDevice = i: nameValuePair "${i.name}" { description = "Virtual Network Interface ${i.name}"; diff --git a/nixos/modules/tasks/trackpoint.nix b/nixos/modules/tasks/trackpoint.nix index d1c6f8ac156..5d1bb631b54 100644 --- a/nixos/modules/tasks/trackpoint.nix +++ b/nixos/modules/tasks/trackpoint.nix @@ -36,6 +36,14 @@ with lib; configures 97. ''; }; + + emulateWheel = mkOption { + default = false; + type = types.bool; + description = '' + Enable scrolling while holding the middle mouse button. + ''; + }; }; @@ -44,17 +52,33 @@ with lib; ###### implementation - config = mkIf config.hardware.trackpoint.enable { - - services.udev.extraRules = - '' - ACTION=="add|change", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/speed}="${toString config.hardware.trackpoint.speed}", ATTR{device/sensitivity}="${toString config.hardware.trackpoint.sensitivity}" - ''; - - system.activationScripts.trackpoint = + config = mkMerge [ + (mkIf config.hardware.trackpoint.enable { + services.udev.extraRules = '' - ${config.systemd.package}/bin/udevadm trigger --attr-match=name="TPPS/2 IBM TrackPoint" + ACTION=="add|change", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/speed}="${toString config.hardware.trackpoint.speed}", ATTR{device/sensitivity}="${toString config.hardware.trackpoint.sensitivity}" ''; - }; + system.activationScripts.trackpoint = + '' + ${config.systemd.package}/bin/udevadm trigger --attr-match=name="TPPS/2 IBM TrackPoint" + ''; + }) + + (mkIf config.hardware.trackpoint.emulateWheel { + services.xserver.config = + '' + Section "InputClass" + Identifier "Trackpoint Wheel Emulation" + MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint" + MatchDevicePath "/dev/input/event*" + Option "EmulateWheel" "true" + Option "EmulateWheelButton" "2" + Option "Emulate3Buttons" "false" + Option "XAxisMapping" "6 7" + Option "YAxisMapping" "4 5" + EndSection + ''; + }) + ]; } diff --git a/nixos/modules/virtualisation/container-config.nix b/nixos/modules/virtualisation/container-config.nix index 84e3aa28352..a7e8953827a 100644 --- a/nixos/modules/virtualisation/container-config.nix +++ b/nixos/modules/virtualisation/container-config.nix @@ -18,77 +18,6 @@ with lib; # Shut up warnings about not having a boot loader. system.build.installBootLoader = "${pkgs.coreutils}/bin/true"; - # Provide a root login prompt on /var/lib/root-login.socket that - # doesn't ask for a password. This socket can only be used by root - # on the host. - systemd.sockets.root-login = - { description = "Root Login Socket"; - wantedBy = [ "sockets.target" ]; - socketConfig = - { ListenStream = "/var/lib/root-login.socket"; - SocketMode = "0600"; - Accept = true; - }; - }; - - systemd.services."root-login@" = - { description = "Root Login %i"; - environment.TERM = "linux"; - serviceConfig = - { Type = "simple"; - StandardInput = "socket"; - ExecStart = "${pkgs.socat}/bin/socat -t0 - \"exec:${pkgs.shadow}/bin/login -f root,pty,setsid,setpgid,stderr,ctty\""; - TimeoutStopSec = 1; # FIXME - }; - restartIfChanged = false; - }; - - # Provide a daemon on /var/lib/run-command.socket that reads a - # command from stdin and executes it. - systemd.sockets.run-command = - { description = "Run Command Socket"; - wantedBy = [ "sockets.target" ]; - socketConfig = - { ListenStream = "/var/lib/run-command.socket"; - SocketMode = "0600"; # only root can connect - Accept = true; - }; - }; - - systemd.services."run-command@" = - { description = "Run Command %i"; - environment.TERM = "linux"; - serviceConfig = - { Type = "simple"; - StandardInput = "socket"; - TimeoutStopSec = 1; # FIXME - }; - script = - '' - #! ${pkgs.stdenv.shell} -e - source /etc/bashrc - read c - eval "command=($c)" - exec "''${command[@]}" - ''; - restartIfChanged = false; - }; - - systemd.services.container-startup-done = - { description = "Container Startup Notification"; - wantedBy = [ "multi-user.target" ]; - after = [ "multi-user.target" ]; - script = - '' - if [ -p /var/lib/startup-done ]; then - echo done > /var/lib/startup-done - fi - ''; - serviceConfig.Type = "oneshot"; - serviceConfig.RemainAfterExit = true; - restartIfChanged = false; - }; - systemd.services.systemd-remount-fs.enable = false; }; diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index ca3de4089d2..4e5a7dee5bc 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -10,7 +10,7 @@ let isExecutable = true; src = ./nixos-container.pl; perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl"; - inherit (pkgs) socat; + inherit (pkgs) utillinux; }; # The container's init script, a small wrapper around the regular @@ -254,9 +254,8 @@ in ExecReload = pkgs.writeScript "reload-container" '' #! ${pkgs.stdenv.shell} -e - SYSTEM_PATH=/nix/var/nix/profiles/system - echo $SYSTEM_PATH/bin/switch-to-configuration test | \ - ${pkgs.socat}/bin/socat unix:$root/var/lib/run-command.socket - + ${nixos-container}/bin/nixos-container run "$INSTANCE" -- \ + bash --login -c "/nix/var/nix/profiles/system/bin/switch-to-configuration test" ''; SyslogIdentifier = "container %i"; diff --git a/nixos/modules/virtualisation/docker-image.nix b/nixos/modules/virtualisation/docker-image.nix new file mode 100644 index 00000000000..13b861dc988 --- /dev/null +++ b/nixos/modules/virtualisation/docker-image.nix @@ -0,0 +1,67 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + pkgs2storeContents = l : map (x: { object = x; symlink = "none"; }) l; + +in { + # Create the tarball + system.build.dockerImage = import ../../lib/make-system-tarball.nix { + inherit (pkgs) stdenv perl xz pathsFromGraph; + + contents = []; + extraArgs = "--owner=0"; + storeContents = [ + { object = config.system.build.toplevel + "/init"; + symlink = "/bin/init"; + } + ] ++ (pkgs2storeContents [ pkgs.stdenv ]); + }; + + boot.postBootCommands = + '' + # After booting, register the contents of the Nix store in the Nix + # database. + if [ -f /nix-path-registration ]; then + ${config.nix.package}/bin/nix-store --load-db < /nix-path-registration && + rm /nix-path-registration + fi + + # nixos-rebuild also requires a "system" profile and an + # /etc/NIXOS tag. + touch /etc/NIXOS + ${config.nix.package}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system + + # Set virtualisation to docker + echo "docker" > /run/systemd/container + ''; + + + # docker image config + require = [ + ../installer/cd-dvd/channel.nix + ../profiles/minimal.nix + ../profiles/clone-config.nix + ]; + + boot.isContainer = true; + + # Iptables do not work in docker + networking.firewall.enable = false; + + services.openssh.enable = true; + + # Socket activated ssh presents problem in docker + services.openssh.startWhenNeeded = false; + + # Allow the user to login as root without password + security.initialRootPassword = ""; + + # Some more help text. + services.mingetty.helpLine = + '' + + Log in as "root" with an empty password. + ''; +} diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix index d7d700d8841..318460f4c2c 100644 --- a/nixos/modules/virtualisation/libvirtd.nix +++ b/nixos/modules/virtualisation/libvirtd.nix @@ -7,6 +7,7 @@ with lib; let cfg = config.virtualisation.libvirtd; + vswitch = config.virtualisation.vswitch; configFile = pkgs.writeText "libvirtd.conf" '' unix_sock_group = "libvirtd" unix_sock_rw_perms = "0770" @@ -56,6 +57,20 @@ in ''; }; + virtualisation.libvirtd.onShutdown = + mkOption { + type = types.enum ["shutdown" "suspend" ]; + default = "suspend"; + description = + '' + When shutting down / restarting the host what method should + be used to gracefully halt the guests. Setting to "shutdown" + will cause an ACPI shutdown of each guest. "suspend" will + attempt to save the state of the guests ready to restore on boot. + ''; + }; + + }; @@ -73,12 +88,17 @@ in { description = "Libvirt Virtual Machine Management Daemon"; wantedBy = [ "multi-user.target" ]; - after = [ "systemd-udev-settle.service" ]; + after = [ "systemd-udev-settle.service" ] + ++ optional vswitch.enable "vswitchd.service"; - path = - [ pkgs.bridge_utils pkgs.dmidecode pkgs.dnsmasq + path = [ + pkgs.bridge_utils + pkgs.dmidecode + pkgs.dnsmasq pkgs.ebtables - ] ++ optional cfg.enableKVM pkgs.qemu_kvm; + ] + ++ optional cfg.enableKVM pkgs.qemu_kvm + ++ optional vswitch.enable vswitch.package; preStart = '' @@ -152,7 +172,12 @@ in ${pkgs.libvirt}/etc/rc.d/init.d/libvirt-guests start || true ''; - postStop = "${pkgs.libvirt}/etc/rc.d/init.d/libvirt-guests stop"; + postStop = + '' + export PATH=${pkgs.gettext}/bin:$PATH + export ON_SHUTDOWN=${cfg.onShutdown} + ${pkgs.libvirt}/etc/rc.d/init.d/libvirt-guests stop + ''; serviceConfig.Type = "oneshot"; serviceConfig.RemainAfterExit = true; diff --git a/nixos/modules/virtualisation/nixos-container.pl b/nixos/modules/virtualisation/nixos-container.pl index bf6f16fc6c7..7403a42f0f1 100644 --- a/nixos/modules/virtualisation/nixos-container.pl +++ b/nixos/modules/virtualisation/nixos-container.pl @@ -7,7 +7,7 @@ use File::Slurp; use Fcntl ':flock'; use Getopt::Long qw(:config gnu_getopt); -my $socat = '@socat@/bin/socat'; +my $nsenter = "@utillinux@/bin/nsenter"; # Ensure a consistent umask. umask 0022; @@ -25,7 +25,6 @@ Usage: nixos-container list nixos-container login nixos-container root-login nixos-container run -- args... - nixos-container set-root-password nixos-container show-ip nixos-container show-host-key EOF @@ -186,6 +185,22 @@ sub stopContainer { or die "$0: failed to stop container\n"; } +# Return the PID of the init process of the container. +sub getLeader { + my $s = `machinectl show "$containerName" -p Leader`; + chomp $s; + $s =~ /^Leader=(\d+)$/ or die "unable to get container's main PID\n"; + return int($1); +} + +# Run a command in the container. +sub runInContainer { + my @args = @_; + my $leader = getLeader; + exec($nsenter, "-t", $leader, "-m", "-u", "-i", "-n", "-p", "--", @args); + die "cannot run ‘nsenter’: $!\n"; +} + if ($action eq "destroy") { die "$0: cannot destroy declarative container (remove it from your configuration.nix instead)\n" unless POSIX::access($confFile, &POSIX::W_OK); @@ -235,28 +250,14 @@ elsif ($action eq "login") { } elsif ($action eq "root-login") { - exec($socat, "unix:$root/var/lib/root-login.socket", "-,echo=0,raw"); + runInContainer("su", "root", "-l"); } elsif ($action eq "run") { shift @ARGV; shift @ARGV; - my $pid = open(SOCAT, "|-", $socat, "-t0", "-", "unix:$root/var/lib/run-command.socket") or die "$0: cannot start $socat: $!\n"; - print SOCAT join(' ', map { "'$_'" } @ARGV), "\n"; - flush SOCAT; - waitpid($pid, 0); - close(SOCAT); -} - -elsif ($action eq "set-root-password") { - # FIXME: don't get password from the command line. - my $password = $ARGV[2] or die "$0: no password given\n"; - my $pid = open(SOCAT, "|-", $socat, "-t0", "-", "unix:$root/var/lib/run-command.socket") or die "$0: cannot start $socat: $!\n"; - print SOCAT "passwd\n"; - print SOCAT "$password\n"; - print SOCAT "$password\n"; - flush SOCAT; - waitpid($pid, 0); - close(SOCAT); + # Escape command. + my $s = join(' ', map { s/'/'\\''/g; "'$_'" } @ARGV); + runInContainer("su", "root", "-l", "-c", "exec " . $s); } elsif ($action eq "show-ip") { diff --git a/nixos/modules/virtualisation/openvswitch.nix b/nixos/modules/virtualisation/openvswitch.nix new file mode 100644 index 00000000000..c1579d94657 --- /dev/null +++ b/nixos/modules/virtualisation/openvswitch.nix @@ -0,0 +1,117 @@ +# Systemd services for openvswitch + +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.virtualisation.vswitch; + +in + +{ + + options = { + + virtualisation.vswitch.enable = mkOption { + type = types.bool; + default = false; + description = + '' + Enable Open vSwitch. A configuration + daemon (ovs-server) will be started. + ''; + }; + + + virtualisation.vswitch.package = mkOption { + type = types.package; + default = pkgs.openvswitch; + description = + '' + Open vSwitch package to use. + ''; + }; + + }; + + config = mkIf cfg.enable (let + + # Where the communication sockets live + runDir = "/var/run/openvswitch"; + + # Where the config database live (can't be in nix-store) + stateDir = "/var/db/openvswitch"; + + # The path to the an initialized version of the database + db = pkgs.stdenv.mkDerivation { + name = "vswitch.db"; + unpackPhase = "true"; + buildPhase = "true"; + buildInputs = with pkgs; [ + cfg.package + ]; + installPhase = + '' + ensureDir $out/ + ''; + }; + + in { + + environment.systemPackages = [ cfg.package ]; + + boot.kernelModules = [ "tun" "openvswitch" ]; + + boot.extraModulePackages = [ cfg.package ]; + + systemd.services.ovsdb = { + description = "Open_vSwitch Database Server"; + wantedBy = [ "multi-user.target" ]; + after = [ "systemd-udev-settle.service" ]; + wants = [ "vswitchd.service" ]; + path = [ cfg.package ]; + restartTriggers = [ db cfg.package ]; + # Create the config database + preStart = + '' + mkdir -p ${runDir} + mkdir -p /var/db/openvswitch + chmod +w /var/db/openvswitch + if [[ ! -e /var/db/openvswitch/conf.db ]]; then + ${cfg.package}/bin/ovsdb-tool create \ + "/var/db/openvswitch/conf.db" \ + "${cfg.package}/share/openvswitch/vswitch.ovsschema" + fi + chmod -R +w /var/db/openvswitch + ''; + serviceConfig.ExecStart = + '' + ${cfg.package}/bin/ovsdb-server \ + --remote=punix:${runDir}/db.sock \ + --private-key=db:Open_vSwitch,SSL,private_key \ + --certificate=db:Open_vSwitch,SSL,certificate \ + --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \ + --unixctl=ovsdb.ctl.sock \ + /var/db/openvswitch/conf.db + ''; + serviceConfig.Restart = "always"; + serviceConfig.RestartSec = 3; + postStart = + '' + ${cfg.package}/bin/ovs-vsctl --timeout 3 --retry --no-wait init + ''; + + }; + + systemd.services.vswitchd = { + description = "Open_vSwitch Daemon"; + bindsTo = [ "ovsdb.service" ]; + after = [ "ovsdb.service" ]; + path = [ cfg.package ]; + serviceConfig.ExecStart = ''${cfg.package}/bin/ovs-vswitchd''; + }; + + }); + +} diff --git a/nixos/release.nix b/nixos/release.nix index 0620b46d46a..e2b93640f91 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -228,6 +228,10 @@ in rec { tests.installer.rebuildCD = forAllSystems (system: (import tests/installer.nix { inherit system; }).rebuildCD.test); tests.installer.separateBoot = forAllSystems (system: (import tests/installer.nix { inherit system; }).separateBoot.test); tests.installer.simple = forAllSystems (system: (import tests/installer.nix { inherit system; }).simple.test); + tests.installer.simpleLabels = forAllSystems (system: (import tests/installer.nix { inherit system; }).simpleLabels.test); + tests.installer.simpleProvided = forAllSystems (system: (import tests/installer.nix { inherit system; }).simpleProvided.test); + tests.installer.btrfsSimple = forAllSystems (system: (import tests/installer.nix { inherit system; }).btrfsSimple.test); + #tests.installer.btrfsSubvols = forAllSystems (system: (import tests/installer.nix { inherit system; }).btrfsSubvols.test); tests.influxdb = callTest tests/influxdb.nix {}; tests.ipv6 = callTest tests/ipv6.nix {}; tests.jenkins = callTest tests/jenkins.nix {}; diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix index 002e012f65f..b12a861f723 100644 --- a/nixos/tests/bittorrent.nix +++ b/nixos/tests/bittorrent.nix @@ -16,7 +16,7 @@ let miniupnpdConf = nodes: pkgs.writeText "miniupnpd.conf" '' ext_ifname=eth1 - listening_ip=${nodes.router.config.networking.interfaces.eth2.ipAddress}/24 + listening_ip=${(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ip4).address}/24 allow 1024-65535 192.168.2.0/24 1024-65535 ''; @@ -53,7 +53,7 @@ in { environment.systemPackages = [ pkgs.transmission ]; virtualisation.vlans = [ 2 ]; networking.defaultGateway = - nodes.router.config.networking.interfaces.eth2.ipAddress; + (pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ip4).address; networking.firewall.enable = false; }; @@ -81,7 +81,7 @@ in # Create the torrent. $tracker->succeed("mkdir /tmp/data"); $tracker->succeed("cp ${file} /tmp/data/test.tar.bz2"); - $tracker->succeed("transmission-create /tmp/data/test.tar.bz2 -t http://${nodes.tracker.config.networking.interfaces.eth1.ipAddress}:6969/announce -o /tmp/test.torrent"); + $tracker->succeed("transmission-create /tmp/data/test.tar.bz2 -t http://${(pkgs.lib.head nodes.tracker.config.networking.interfaces.eth1.ip4).address}:6969/announce -o /tmp/test.torrent"); $tracker->succeed("chmod 644 /tmp/test.torrent"); # Start the tracker. !!! use a less crappy tracker diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index d3bbe7a8bd5..6ee52fd63d8 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -98,7 +98,7 @@ let # FIXME: OVMF doesn't boot from virtio http://www.mail-archive.com/edk2-devel@lists.sourceforge.net/msg01501.html iface = if useEFI || grubVersion == 1 then "scsi" else "virtio"; qemuFlags = - (if iso.system == "x86_64-linux" then "-m 512 " else "-m 384 ") + + (if iso.system == "x86_64-linux" then "-m 768 " else "-m 512 ") + (optionalString (iso.system == "x86_64-linux") "-cpu kvm64 ") + (optionalString useEFI ''-L ${efiBios} -hda ''${\(Cwd::abs_path('harddisk'))} ''); hdFlags = optionalString (!useEFI) @@ -394,4 +394,78 @@ in { $machine->shutdown; ''; }; + + # Test using labels to identify volumes in grub + simpleLabels = makeInstallerTest "simpleLabels" { + createPartitions = '' + $machine->succeed( + "sgdisk -Z /dev/vda", + "sgdisk -n 1:0:+1M -n 2:0:+1G -N 3 -t 1:ef02 -t 2:8200 -t 3:8300 -c 3:root /dev/vda", + "mkswap /dev/vda2 -L swap", + "swapon -L swap", + "mkfs.ext4 -L root /dev/vda3", + "mount LABEL=root /mnt", + ); + ''; + grubIdentifier = "label"; + }; + + # Test using the provided disk name within grub + # TODO: Fix udev so the symlinks are unneeded in /dev/disks + simpleProvided = makeInstallerTest "simpleProvided" { + createPartitions = '' + my $UUID = "\$(blkid -s UUID -o value /dev/vda2)"; + $machine->succeed( + "sgdisk -Z /dev/vda", + "sgdisk -n 1:0:+1M -n 2:0:+100M -n 3:0:+1G -N 4 -t 1:ef02 -t 2:8300 -t 3:8200 -t 4:8300 -c 2:boot -c 4:root /dev/vda", + "mkswap /dev/vda3 -L swap", + "swapon -L swap", + "mkfs.ext4 -L boot /dev/vda2", + "mkfs.ext4 -L root /dev/vda4", + ); + $machine->execute("ln -s ../../vda2 /dev/disk/by-uuid/$UUID"); + $machine->execute("ln -s ../../vda4 /dev/disk/by-label/root"); + $machine->succeed( + "mount /dev/disk/by-label/root /mnt", + "mkdir /mnt/boot", + "mount /dev/disk/by-uuid/$UUID /mnt/boot" + ); + ''; + grubIdentifier = "provided"; + }; + + # Simple btrfs grub testing + btrfsSimple = makeInstallerTest "btrfsSimple" { + createPartitions = '' + $machine->succeed( + "sgdisk -Z /dev/vda", + "sgdisk -n 1:0:+1M -n 2:0:+1G -N 3 -t 1:ef02 -t 2:8200 -t 3:8300 -c 3:root /dev/vda", + "mkswap /dev/vda2 -L swap", + "swapon -L swap", + "mkfs.btrfs -L root /dev/vda3", + "mount LABEL=root /mnt", + ); + ''; + }; + + # Test to see if we can detect /boot and /nix on subvolumes + btrfsSubvols = makeInstallerTest "btrfsSubvols" { + createPartitions = '' + $machine->succeed( + "sgdisk -Z /dev/vda", + "sgdisk -n 1:0:+1M -n 2:0:+1G -N 3 -t 1:ef02 -t 2:8200 -t 3:8300 -c 3:root /dev/vda", + "mkswap /dev/vda2 -L swap", + "swapon -L swap", + "mkfs.btrfs -L root /dev/vda3", + "btrfs device scan", + "mount LABEL=root /mnt", + "btrfs subvol create /mnt/boot", + "btrfs subvol create /mnt/nixos", + "umount /mnt", + "mount -o defaults,subvol=nixos LABEL=root /mnt", + "mkdir /mnt/boot", + "mount -o defaults,subvol=boot LABEL=root /mnt/boot", + ); + ''; + }; } diff --git a/nixos/tests/nat.nix b/nixos/tests/nat.nix index 5fdcc0e97ca..87ed974edad 100644 --- a/nixos/tests/nat.nix +++ b/nixos/tests/nat.nix @@ -13,7 +13,7 @@ import ./make-test.nix { { virtualisation.vlans = [ 1 ]; networking.firewall.allowPing = true; networking.defaultGateway = - nodes.router.config.networking.interfaces.eth2.ipAddress; + (pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ip4).address; }; router = diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix index 409a831727b..49b02f46e9b 100644 --- a/pkgs/applications/audio/audacious/default.nix +++ b/pkgs/applications/audio/audacious/default.nix @@ -1,28 +1,29 @@ { stdenv, fetchurl, pkgconfig, glib, gtk3, libmowgli, libmcs , gettext, dbus_glib, libxml2, libmad, xlibs, alsaLib, libogg , libvorbis, libcdio, libcddb, flac, ffmpeg, makeWrapper +, mpg123, neon, faad2 }: let - version = "3.4.3"; + version = "3.5.1"; in stdenv.mkDerivation { name = "audacious-${version}"; src = fetchurl { url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2"; - sha256 = "04lzwdr1lx6ghbfxzygvnbmdl420w6rm453ds5lyb0hlvzs58d0q"; + sha256 = "01wmlvpp540gdjw759wif3byh98h3b3q6f5wawzp0b0ivqd0wf6z"; }; pluginsSrc = fetchurl { url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2"; - sha256 = "00r88q9fs9a0gicdmk2svcans7igcqgacrw303a5bn44is7pmrmy"; + sha256 = "09lyvi15hbn3pvb2izyz2bm4021917mhcdrwxrn3q3sjvx337np6"; }; buildInputs = [ gettext pkgconfig glib gtk3 libmowgli libmcs libxml2 dbus_glib libmad xlibs.libXcomposite libogg libvorbis flac alsaLib libcdio - libcddb ffmpeg makeWrapper + libcddb ffmpeg makeWrapper mpg123 neon faad2 ]; # Here we build bouth audacious and audacious-plugins in one diff --git a/pkgs/applications/audio/beast/default.nix b/pkgs/applications/audio/beast/default.nix index 61b11c05de7..340a83e7963 100644 --- a/pkgs/applications/audio/beast/default.nix +++ b/pkgs/applications/audio/beast/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation { ]; meta = { - description = "BEAST - the Bedevilled Sound Engine"; + description = "A music composition and modular synthesis application"; homepage = http://beast.gtk.org; license = ["GPL-2" "LGPL-2.1"]; }; diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix index 31d5240529f..88931520c42 100644 --- a/pkgs/applications/audio/cantata/default.nix +++ b/pkgs/applications/audio/cantata/default.nix @@ -39,7 +39,7 @@ assert withOnlineServices -> withTaglib; assert withReplaygain -> withTaglib; let - version = "1.3.4"; + version = "1.4.1"; pname = "cantata"; fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF"); fstats = x: map (fstat x); @@ -50,8 +50,8 @@ stdenv.mkDerivation rec { src = fetchurl { inherit name; - url = "https://drive.google.com/uc?export=download&id=0Bzghs6gQWi60WTYtaXk3c1IzNVU"; - sha256 = "0ris41v44nwd68f3zis9n9lyyc089dyhlxp37rrzflanrc6glpwq"; + url = "https://drive.google.com/uc?export=download&id=0Bzghs6gQWi60eXhuZ1Z3bGM2bjQ"; + sha256 = "b0d5a1798efd275d72dffb87bc0f016fc865dbd1384b7c9af039cebdffe0cca3"; }; buildInputs = @@ -69,7 +69,7 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional (withTaglib && !withKDE4 && withDevices) udisks2; unpackPhase = "tar -xvf $src"; - sourceRoot = "cantata-1.3.4"; + sourceRoot = "${name}"; # Qt4 is implicit when KDE is switched off. cmakeFlags = stdenv.lib.flatten [ diff --git a/pkgs/applications/audio/cmus/default.nix b/pkgs/applications/audio/cmus/default.nix index 2ea37e2bd23..4f9c491a3a5 100644 --- a/pkgs/applications/audio/cmus/default.nix +++ b/pkgs/applications/audio/cmus/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { buildInputs = [ ncurses pkgconfig alsaLib flac libmad ffmpeg libvorbis mpc mp4v2 ]; meta = { - description = "cmus is a small, fast and powerful console music player for Linux and *BSD"; + description = "Small, fast and powerful console music player for Linux and *BSD"; homepage = http://cmus.sourceforge.net; license = stdenv.lib.licenses.gpl2; }; diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix index 777c0ddb2e3..e593ddf41e6 100644 --- a/pkgs/applications/audio/guitarix/default.nix +++ b/pkgs/applications/audio/guitarix/default.nix @@ -1,19 +1,19 @@ -{ stdenv, fetchurl, avahi, boost, fftw, gettext, glib, glibmm, gtk -, gtkmm, intltool, jack2, ladspaH, librdf, libsndfile, lv2 -, pkgconfig, python }: +{ stdenv, fetchurl, avahi, boost, eigen, fftw, gettext, glib, glibmm, gtk +, gtkmm, intltool, jack2, ladspaH, librdf, libsndfile, lilv, lv2 +, pkgconfig, python, serd, sord, sratom }: stdenv.mkDerivation rec { name = "guitarix-${version}"; - version = "0.28.3"; + version = "0.30.0"; src = fetchurl { url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.bz2"; - sha256 = "0ks5avylyicqfj9l1wf4gj62i8m6is2jmp0h11h5l2wbg3xiwxjd"; + sha256 = "0fbapd1pcixzlqxgzb2s2q1c64g9z9lf4hz3vy73z55cnpk72vdx"; }; buildInputs = [ - avahi boost fftw gettext glib glibmm gtk gtkmm intltool jack2 - ladspaH librdf libsndfile lv2 pkgconfig python + avahi boost eigen fftw gettext glib glibmm gtk gtkmm intltool jack2 + ladspaH librdf libsndfile lilv lv2 pkgconfig python serd sord sratom ]; configurePhase = "python waf configure --prefix=$out"; diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix index 10f15f5882c..72e546246d5 100644 --- a/pkgs/applications/audio/hydrogen/default.nix +++ b/pkgs/applications/audio/hydrogen/default.nix @@ -1,35 +1,19 @@ -{ stdenv, fetchurl, alsaLib, boost, glib, jack2, ladspaPlugins -, libarchive, liblrdf , libsndfile, pkgconfig, qt4, scons, subversion }: +{ stdenv, fetchurl, alsaLib, boost, cmake, glib, jack2, libarchive +, liblrdf, libsndfile, pkgconfig, qt4 }: stdenv.mkDerivation rec { - version = "0.9.5.1"; + version = "0.9.6"; name = "hydrogen-${version}"; src = fetchurl { - url = "mirror://sourceforge/hydrogen/hydrogen-${version}.tar.gz"; - sha256 = "1fvyp6gfzcqcc90dmaqbm11p272zczz5pfz1z4lj33nfr7z0bqgb"; + url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz"; + sha256 = "1z7j8aq158mp41iv78j0w6fyx98y1y51z592b4x5hkvicabgck5w"; }; buildInputs = [ - alsaLib boost glib jack2 ladspaPlugins libarchive liblrdf - libsndfile pkgconfig qt4 scons subversion + alsaLib boost cmake glib jack2 libarchive liblrdf libsndfile pkgconfig qt4 ]; - patches = [ ./scons-env.patch ]; - - postPatch = '' - sed -e 's#/usr/lib/ladspa#${ladspaPlugins}/lib/ladspa#' -i libs/hydrogen/src/preferences.cpp - sed '/\/usr/d' -i libs/hydrogen/src/preferences.cpp - sed "s#pkg_ver.rstrip().split('.')#pkg_ver.rstrip().split('.')[:3]#" -i Sconstruct - ''; - - # why doesn't scons find librdf? - buildPhase = '' - scons prefix=$out libarchive=1 lrdf=0 install - ''; - - installPhase = ":"; - meta = with stdenv.lib; { description = "Advanced drum machine"; homepage = http://www.hydrogen-music.org; diff --git a/pkgs/applications/audio/hydrogen/scons-env.patch b/pkgs/applications/audio/hydrogen/scons-env.patch deleted file mode 100644 index ebc17f67872..00000000000 --- a/pkgs/applications/audio/hydrogen/scons-env.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- hydrogen-0.9.5/Sconstruct 2011-03-15 13:22:35.000000000 +0100 -+++ hydrogen-0.9.5/Sconstruct 2011-04-17 16:06:54.000000000 +0200 -@@ -178,7 +178,7 @@ - - includes.append( "libs/hydrogen/include" ) - -- env = Environment( options = opts ) -+ env = Environment( options = opts, ENV = os.environ ) - - - #location of qt4.py -@@ -298,7 +298,6 @@ - - for N in glob.glob('./data/i18n/hydrogen.*'): - env.Alias(target="install", source=env.Install(dir= env['DESTDIR'] + env['prefix'] + '/share/hydrogen/data/i18n', source=N)) -- env.Alias(target="install", source=env.Install(dir= env['DESTDIR'] + env['prefix'] + '/share/hydrogen/data', source="./data/img")) - - #add every img in ./data/img to the install list. - os.path.walk("./data/img/",install_images,env) -@@ -379,7 +379,7 @@ - - includes, a , b = get_platform_flags( opts ) - --env = Environment(options = opts, CPPPATH = includes) -+env = Environment(options = opts, ENV = os.environ) - - - Help(opts.GenerateHelpText(env)) diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix index 70ef5bdec5c..bf01fe1a935 100644 --- a/pkgs/applications/audio/jalv/default.nix +++ b/pkgs/applications/audio/jalv/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { name = "jalv-${version}"; - version = "1.4.4"; + version = "1.4.6"; src = fetchurl { url = "http://download.drobilla.net/${name}.tar.bz2"; - sha256 = "1iql1r52rmf87q6jkxhcxa3lpq7idzzg55ma91wphywyvh29q7lf"; + sha256 = "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"; }; buildInputs = [ diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix index dd0649811bb..ee47d607c2b 100644 --- a/pkgs/applications/audio/lmms/default.nix +++ b/pkgs/applications/audio/lmms/default.nix @@ -1,24 +1,22 @@ -{ stdenv, fetchurl, SDL, alsaLib, cmake, fftwSinglePrec, jack2, libogg -, libsamplerate, libsndfile, pkgconfig, pulseaudio, qt4, freetype +{ stdenv, fetchurl, SDL, alsaLib, cmake, fftwSinglePrec, fluidsynth +, fltk13, jack2, libvorbis , libsamplerate, libsndfile, pkgconfig +, pulseaudio, qt4, freetype }: stdenv.mkDerivation rec { name = "lmms-${version}"; - version = "0.4.15"; + version = "1.0.3"; src = fetchurl { - url = "mirror://sourceforge/lmms/${name}.tar.bz2"; - sha256 = "02q2gbsqwk3hf9kvzz58a5bxmlb4cfr2mzy41wdvbxxdm2pcl101"; + url = "https://github.com/LMMS/lmms/archive/v${version}.tar.gz"; + sha256 = "191mfld3gspnxlgwcszp9kls58kdwrplj0rfw4zqsz90zdbsjnx3"; }; buildInputs = [ - SDL alsaLib cmake fftwSinglePrec jack2 libogg libsamplerate - libsndfile pkgconfig pulseaudio qt4 + SDL alsaLib cmake fftwSinglePrec fltk13 fluidsynth jack2 + libsamplerate libsndfile libvorbis pkgconfig pulseaudio qt4 ]; - # work around broken build system of 0.4.* - NIX_CFLAGS_COMPILE = "-I${freetype}/include/freetype2"; - enableParallelBuilding = true; meta = with stdenv.lib; { diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix index e5264f5c3d2..5c6a1d6ac54 100644 --- a/pkgs/applications/audio/moc/default.nix +++ b/pkgs/applications/audio/moc/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { ]; meta = { - description = "MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use."; + description = "An ncurses console audio player designed to be powerful and easy to use"; homepage = http://moc.daper.net/; license = stdenv.lib.licenses.gpl2; }; diff --git a/pkgs/applications/audio/mp3info/default.nix b/pkgs/applications/audio/mp3info/default.nix index 0f33726eaee..ede31ac9beb 100644 --- a/pkgs/applications/audio/mp3info/default.nix +++ b/pkgs/applications/audio/mp3info/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "MP3Info, an MP3 technical info viewer and ID3 1.x tag editor"; + description = "MP3 technical info viewer and ID3 1.x tag editor"; longDescription = '' MP3Info is a little utility used to read and modify the ID3 tags of diff --git a/pkgs/applications/audio/mpc123/default.nix b/pkgs/applications/audio/mpc123/default.nix index cd4343b1beb..ac945bee7f7 100644 --- a/pkgs/applications/audio/mpc123/default.nix +++ b/pkgs/applications/audio/mpc123/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://mpc123.sourceforge.net/; - description = "mpc123, a Musepack (.mpc) audio player"; + description = "A Musepack (.mpc) audio player"; license = stdenv.lib.licenses.gpl2Plus; diff --git a/pkgs/applications/audio/mpg321/default.nix b/pkgs/applications/audio/mpg321/default.nix index e58397350cb..939c9f79e4d 100644 --- a/pkgs/applications/audio/mpg321/default.nix +++ b/pkgs/applications/audio/mpg321/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { buildInputs = [libao libid3tag libmad zlib]; meta = { - description = "mpg321, a command-line MP3 player"; + description = "Command-line MP3 player"; homepage = http://mpg321.sourceforge.net/; license = stdenv.lib.licenses.gpl2; maintainers = [ ]; diff --git a/pkgs/applications/audio/pamixer/default.nix b/pkgs/applications/audio/pamixer/default.nix index acdda1799d0..d273c238177 100644 --- a/pkgs/applications/audio/pamixer/default.nix +++ b/pkgs/applications/audio/pamixer/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "pamixer is like amixer but for pulseaudio."; + description = "Like amixer but for pulseaudio"; longDescription = "Features: - Get the current volume of the default sink, the default source or a selected one by his id - Set the volume for the default sink, the default source or any other device diff --git a/pkgs/applications/audio/petrifoo/default.nix b/pkgs/applications/audio/petrifoo/default.nix index 152ee442761..197a0aa1bbe 100644 --- a/pkgs/applications/audio/petrifoo/default.nix +++ b/pkgs/applications/audio/petrifoo/default.nix @@ -1,14 +1,14 @@ -{ stdenv, fetchgit, alsaLib, cmake, gtk, jack2, libgnomecanvas +{ stdenv, fetchurl, alsaLib, cmake, gtk, jack2, libgnomecanvas , libpthreadstubs, libsamplerate, libsndfile, libtool, libxml2 , pkgconfig }: stdenv.mkDerivation rec { - name = "petri-foo"; + name = "petri-foo-${version}"; + version = "0.1.87"; - src = fetchgit { - url = https://github.com/licnep/Petri-Foo.git; - rev = "eef3b6efebe842d2fa18ed32b881fea4562b84e0"; - sha256 = "a20c3f1a633500a65c099c528c7dc2405daa60738b64d881bb8f2036ae59913c"; + src = fetchurl { + url = "mirror://sourceforge/petri-foo/${name}.tar.bz2"; + sha256 = "0b25iicgn8c42487fdw32ycfrll1pm2zjgy5djvgw6mfcaa4gizh"; }; buildInputs = @@ -16,8 +16,6 @@ stdenv.mkDerivation rec { libsamplerate libsndfile libtool libxml2 pkgconfig ]; - dontUseCmakeBuildDir=true; - meta = with stdenv.lib; { description = "MIDI controllable audio sampler"; longDescription = "a fork of Specimen"; diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix index a9f4b02fa08..a91f25126c1 100644 --- a/pkgs/applications/audio/pianobar/default.nix +++ b/pkgs/applications/audio/pianobar/default.nix @@ -21,6 +21,6 @@ stdenv.mkDerivation rec { description = "A console front-end for Pandora.com"; homepage = "http://6xq.net/projects/pianobar/"; platforms = stdenv.lib.platforms.linux; - license = stdenv.lib.licenses.unfree; + license = stdenv.lib.licenses.mit; # expat version }; } diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix index 07753216d3c..235a81a6a32 100644 --- a/pkgs/applications/audio/picard/default.nix +++ b/pkgs/applications/audio/picard/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, pythonPackages, gettext, pyqt4 -, pkgconfig, libdiscid, libofa, ffmpeg, acoustidFingerprinter +, pkgconfig, libdiscid, libofa, ffmpeg, chromaprint }: pythonPackages.buildPythonPackage rec { @@ -9,14 +9,16 @@ pythonPackages.buildPythonPackage rec { src = fetchurl { url = "http://ftp.musicbrainz.org/pub/musicbrainz/picard/${name}.tar.gz"; - md5 = "d1086687b7f7b0d359a731b1a25e7b66"; + sha256 = "0sbsf8hzxhxcnnjqvsd6mc23lmk7w33nln0f3w72f89mjgs6pxm6"; }; postPatch = let - fpr = "${acoustidFingerprinter}/bin/acoustid-fingerprinter"; + discid = "${libdiscid}/lib/libdiscid.so.0"; + fpr = "${chromaprint}/bin/fpcalc"; in '' - sed -ri -e 's|(TextOption.*"acoustid_fpcalc"[^"]*")[^"]*|\1${fpr}|' \ - picard/ui/options/fingerprinting.py + substituteInPlace picard/disc.py --replace libdiscid.so.0 ${discid} + substituteInPlace picard/const.py \ + --replace "FPCALC_NAMES = [" "FPCALC_NAMES = ['${fpr}'," ''; buildInputs = [ @@ -46,9 +48,11 @@ pythonPackages.buildPythonPackage rec { doCheck = false; - meta = { + meta = with stdenv.lib; { homepage = "http://musicbrainz.org/doc/MusicBrainz_Picard"; description = "The official MusicBrainz tagger"; - license = stdenv.lib.licenses.gpl2; + maintainers = with maintainers; [ emery ]; + license = licenses.gpl2; + platforms = platforms.all; }; } diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index 59b82d155da..47919a7d7f8 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -148,7 +148,7 @@ stdenv.mkDerivation { meta = { homepage = https://www.spotify.com/; - description = "Spotify for Linux allows you to play music from the Spotify music service"; + description = "Play music from the Spotify music service"; license = stdenv.lib.licenses.unfree; maintainers = [ stdenv.lib.maintainers.eelco ]; }; diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix index 91142691055..67edc7f521d 100644 --- a/pkgs/applications/audio/yoshimi/default.nix +++ b/pkgs/applications/audio/yoshimi/default.nix @@ -6,11 +6,11 @@ assert stdenv ? glibc; stdenv.mkDerivation rec { name = "yoshimi-${version}"; - version = "1.2.2"; + version = "1.2.3"; src = fetchurl { url = "mirror://sourceforge/yoshimi/${name}.tar.bz2"; - sha256 = "1w23ral1qrbg9gqx833giqmchx7952f18yaa52aya9shsdlla83c"; + sha256 = "00bp699k8gnilin2rvgj35334s9jrizp82qwlmzzvvfliwcgqlqw"; }; buildInputs = [ diff --git a/pkgs/applications/audio/zynaddsubfx/default.nix b/pkgs/applications/audio/zynaddsubfx/default.nix index a5aa7d5c8d9..3a89b406742 100644 --- a/pkgs/applications/audio/zynaddsubfx/default.nix +++ b/pkgs/applications/audio/zynaddsubfx/default.nix @@ -1,17 +1,17 @@ -{ stdenv, fetchurl, alsaLib, cmake, jack2, fftw, fltk13, minixml -, pkgconfig, zlib +{ stdenv, fetchurl, alsaLib, cmake, jack2, fftw, fltk13, libjpeg +, minixml, pkgconfig, zlib }: stdenv.mkDerivation rec { name = "zynaddsubfx-${version}"; - version = "2.4.3"; + version = "2.4.4"; src = fetchurl { - url = "mirror://sourceforge/zynaddsubfx/ZynAddSubFX-${version}.tar.bz2"; - sha256 = "0kgmwyh4rhyqdfrdzhbzjjk2hzggkp9c4aac6sy3xv6cc1b5jjxq"; + url = "mirror://sourceforge/zynaddsubfx/zynaddsubfx-${version}.tar.xz"; + sha256 = "15byz08p5maf3v8l1zz11xan6s0qcfasjf1b81xc8rffh13x5f53"; }; - buildInputs = [ alsaLib jack2 fftw fltk13 minixml zlib ]; + buildInputs = [ alsaLib jack2 fftw fltk13 libjpeg minixml zlib ]; nativeBuildInputs = [ cmake pkgconfig ]; meta = with stdenv.lib; { diff --git a/pkgs/applications/editors/ed/default.nix b/pkgs/applications/editors/ed/default.nix index d3e9a4c4679..0c764fcf8f8 100644 --- a/pkgs/applications/editors/ed/default.nix +++ b/pkgs/applications/editors/ed/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { }; meta = { - description = "GNU ed, an implementation of the standard Unix editor"; + description = "An implementation of the standard Unix editor"; longDescription = '' GNU ed is a line-oriented text editor. It is used to create, diff --git a/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix b/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix new file mode 100644 index 00000000000..35f9bd3ceb2 --- /dev/null +++ b/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix @@ -0,0 +1,32 @@ +{stdenv, fetchgit, emacs, colorTheme}: + +stdenv.mkDerivation rec { + name = "color-theme-6.5.5"; + + src = fetchgit { + url = https://github.com/sellout/emacs-color-theme-solarized.git; + rev = "6a2c7ca0181585858e6e8054cb99db837e2ef72f"; + sha256 = "3c46a3d66c75ec4456209eeafdb03282148b289b12e8474f6a8962f3894796e8"; + }; + + buildInputs = [ emacs ]; + propagatedUserEnvPkgs = [ colorTheme ]; + + + buildPhase = '' + emacs -L . -L ${colorTheme}/share/emacs/site-lisp --batch -f batch-byte-compile *.el + ''; + + installPhase = '' + mkdir -p $out/share/emacs/site-lisp + install *.el* $out/share/emacs/site-lisp + ''; + + meta = { + description = "Precision colors for machines and people"; + homepage = http://ethanschoonover.com/solarized; + license = stdenv.lib.licenses.mit; + + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/applications/editors/emacs-modes/idris/default.nix b/pkgs/applications/editors/emacs-modes/idris/default.nix index 28375dcb68d..4e9d1cfd77c 100644 --- a/pkgs/applications/editors/emacs-modes/idris/default.nix +++ b/pkgs/applications/editors/emacs-modes/idris/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "idris-mode"; - version = "0.9.13.1"; + version = "0.9.14"; src = fetchurl { url = "https://github.com/idris-hackers/${pname}/archive/${version}.tar.gz"; - sha256 = "0ymjbkwsq7qra691wyldw91xcdgrbx3468vvrha5jj92v7nwb8wx"; + sha256 = "1qlkbf14mcibp6h5r84fp5xdjspyaw1xdmnkmaxbypwjhhjg4s83"; }; buildInputs = [ emacs ]; diff --git a/pkgs/applications/editors/emacs-modes/js2/default.nix b/pkgs/applications/editors/emacs-modes/js2/default.nix index 47e62a281fb..00123bfc8c7 100644 --- a/pkgs/applications/editors/emacs-modes/js2/default.nix +++ b/pkgs/applications/editors/emacs-modes/js2/default.nix @@ -5,7 +5,8 @@ stdenv.mkDerivation { src = fetchgit { url = "git://github.com/mooz/js2-mode.git"; - sha256 = "dbdc07b864a9506a21af445c7fb1c75fbffadaac980ee7bbf752470d8054bd65"; + rev = "b250efaad886dd07b8c69d4573425d095c6652e2"; + sha256 = "30e61e7d364e9175d408bdaf57fda886a4eea22cf5cbd97abb5c307c52b05918"; }; buildInputs = [ emacs ]; diff --git a/pkgs/applications/editors/idea/default.nix b/pkgs/applications/editors/idea/default.nix index 7cb99ae80cc..caa9523af6f 100644 --- a/pkgs/applications/editors/idea/default.nix +++ b/pkgs/applications/editors/idea/default.nix @@ -7,7 +7,7 @@ assert stdenv.isLinux; let buildIdea = - { name, version, build, src, description, license }: + { name, version, build, src, description, longDescription, license }: stdenv.mkDerivation rec { inherit name build src; @@ -58,6 +58,7 @@ let meta = { homepage = http://www.jetbrains.com/idea/; inherit description; + inherit longDescription; inherit license; maintainers = [ stdenv.lib.maintainers.edwtjo ]; platforms = stdenv.lib.platforms.linux; @@ -66,27 +67,39 @@ let in { - idea_community = buildIdea rec { + idea-community = buildIdea rec { name = "idea-community-${version}"; - version = "13.1.3"; - build = "IC-135.909"; - description = "IntelliJ IDEA 13 Community Edition"; + version = "13.1.4b"; + build = "IC-135.1230"; + description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; + longDescription = '' + Lightweight IDE for Java SE, Groovy & Scala development + Powerful environment for building Google Android apps + Integration with JUnit, TestNG, popular SCMs, Ant & Maven + Free, open-source, Apache 2 licensed. + ''; license = stdenv.lib.licenses.asl20; src = fetchurl { url = "http://download-ln.jetbrains.com/idea/ideaIC-${version}.tar.gz"; - sha256 = "62ed937ef68df16eef4d32772b6510835527f95020db1c76643f17ed2c067b51"; + sha256 = "8b4ee25fd2934e06b87230b50e1474183ed4b331c1626a7fee69b96294d9616d"; }; }; - idea_ultimate = buildIdea rec { + idea-ultimate = buildIdea rec { name = "idea-ultimate-${version}"; - version = "13.1.3"; - build = "IU-135.909"; - description = "IntelliJ IDEA 13 Ultimate Edition"; + version = "13.1.4b"; + build = "IU-135.1230"; + description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; + longDescription = '' + Full-featured IDE for JVM-based and polyglot development + Java EE, Spring/Hibernate and other technologies support + Deployment and debugging with most application servers + Duplicate code search, dependency structure matrix, etc. + ''; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "http://download-ln.jetbrains.com/idea/ideaIU-${version}.tar.gz"; - sha256 = "6d99e49a63a197e19381a85535ab424a7832653db8cceb3bca7d53615ec7a53d"; + sha256 = "84660d97c9c3e4e7cfd6c2708f4685dc7322157f1e1c2888feac64df119f0606"; }; }; diff --git a/pkgs/applications/editors/mg/default.nix b/pkgs/applications/editors/mg/default.nix index 058a54c45a7..6901aed774b 100644 --- a/pkgs/applications/editors/mg/default.nix +++ b/pkgs/applications/editors/mg/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://homepage.boetes.org/software/mg/; - description = "mg is Micro GNU/emacs, this is a portable version of the mg maintained by the OpenBSD team"; + description = "Micro GNU/emacs, a portable version of the mg maintained by the OpenBSD team"; license = "public domain"; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/applications/editors/texmacs/default.nix b/pkgs/applications/editors/texmacs/default.nix index ce863312251..a258b634105 100644 --- a/pkgs/applications/editors/texmacs/default.nix +++ b/pkgs/applications/editors/texmacs/default.nix @@ -67,7 +67,7 @@ stdenv.mkDerivation rec { "${xmodmap}/bin:${which}/bin"; meta = { - description = "GNU TeXmacs, a free WYSIWYW editing platform with special features for scientists"; + description = "WYSIWYW editing platform with special features for scientists"; longDescription = '' GNU TeXmacs is a free wysiwyw (what you see is what you want) editing platform with special features for scientists. The software diff --git a/pkgs/applications/editors/wxhexeditor/default.nix b/pkgs/applications/editors/wxhexeditor/default.nix new file mode 100644 index 00000000000..de423987c02 --- /dev/null +++ b/pkgs/applications/editors/wxhexeditor/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, wxGTK, autoconf, automake, libtool, python, gettext, bash }: + +stdenv.mkDerivation rec { + name = "wxHexEditor-${version}"; + version = "v0.22"; + + src = fetchurl { + url = "mirror://sourceforge/wxhexeditor/${name}-src.tar.bz2"; + sha256 = "15ir038g4lyw1q5bsay974hvj0nkg2yd9kccwxz808cd45fp411w"; + }; + + buildInputs = [ wxGTK autoconf automake libtool python gettext ]; + + patchPhase = '' + substituteInPlace Makefile --replace "/usr/local" "$out" + substituteInPlace Makefile --replace "mhash; ./configure" "mhash; ./configure --prefix=$out" + substituteInPlace udis86/autogen.sh --replace "/bin/bash" "${bash}/bin/bash" + ''; + + buildPhase = '' + make OPTFLAGS="-fopenmp" + + ''; + + meta = { + description = "Hex Editor / Disk Editor for Huge Files or Devices"; + longDescription = '' + This is not an ordinary hex editor, but could work as low level disk editor too. + If you have problems with your HDD or partition, you can recover your data from HDD or + from partition via editing sectors in raw hex. + You can edit your partition tables or you could recover files from File System by hand + with help of wxHexEditor. + Or you might want to analyze your big binary files, partitions, devices... If you need + a good reverse engineer tool like a good hex editor, you welcome. + wxHexEditor could edit HDD/SDD disk devices or partitions in raw up to exabyte sizes. + ''; + homepage = "http://www.wxhexeditor.org/"; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/applications/editors/yi/yi-contrib.nix b/pkgs/applications/editors/yi/yi-contrib.nix index 59b6992a369..2678f0a0048 100644 --- a/pkgs/applications/editors/yi/yi-contrib.nix +++ b/pkgs/applications/editors/yi/yi-contrib.nix @@ -13,7 +13,9 @@ cabal.mkDerivation (self: { homepage = "http://haskell.org/haskellwiki/Yi"; description = "Add-ons to Yi, the Haskell-Scriptable Editor"; license = "GPL"; + broken = true; platforms = self.ghc.meta.platforms; + hydraPlatforms = self.stdenv.lib.platforms.none; maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ]; }; }) diff --git a/pkgs/applications/editors/yi/yi.nix b/pkgs/applications/editors/yi/yi.nix index ae5e9a83452..9b9287a50f1 100644 --- a/pkgs/applications/editors/yi/yi.nix +++ b/pkgs/applications/editors/yi/yi.nix @@ -58,6 +58,8 @@ cabal.mkDerivation (self: { description = "The Haskell-Scriptable Editor"; license = self.stdenv.lib.licenses.gpl2; platforms = self.ghc.meta.platforms; + hydraPlatforms = self.stdenv.lib.platforms.none; maintainers = [ self.stdenv.lib.maintainers.fuuzetsu ]; + broken = true; }; }) diff --git a/pkgs/applications/graphics/geeqie/default.nix b/pkgs/applications/graphics/geeqie/default.nix index b170b784aaa..de906e3d844 100644 --- a/pkgs/applications/graphics/geeqie/default.nix +++ b/pkgs/applications/graphics/geeqie/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Geeqie, a lightweight GTK+ based image viewer"; + description = "Lightweight GTK+ based image viewer"; longDescription = '' diff --git a/pkgs/applications/graphics/gimp/2.8.nix b/pkgs/applications/graphics/gimp/2.8.nix index aca4d822c82..bd155c59c6b 100644 --- a/pkgs/applications/graphics/gimp/2.8.nix +++ b/pkgs/applications/graphics/gimp/2.8.nix @@ -4,11 +4,11 @@ , python, pygtk, libart_lgpl, libexif, gettext, xlibs, wrapPython }: stdenv.mkDerivation rec { - name = "gimp-2.8.10"; + name = "gimp-2.8.14"; src = fetchurl { url = "http://download.gimp.org/pub/gimp/v2.8/${name}.tar.bz2"; - sha256 = "1rha8yx0pplfjziqczjrxxp16vsvpmb5ziq3c218s4w9z4cqpzg7"; + sha256 = "d82a958641c9c752d68e35f65840925c08e314cea90222ad845892a40e05b22d"; }; buildInputs = diff --git a/pkgs/applications/graphics/grafx2/default.nix b/pkgs/applications/graphics/grafx2/default.nix index 6b7c9a27694..ee9df683c0a 100644 --- a/pkgs/applications/graphics/grafx2/default.nix +++ b/pkgs/applications/graphics/grafx2/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { installPhase = ''make install prefix="$out"''; meta = { - description = "GrafX2 is a bitmap paint program inspired by the Amiga programs Deluxe Paint and Brilliance."; + description = "Bitmap paint program inspired by the Amiga programs Deluxe Paint and Brilliance"; homepage = http://code.google.co/p/grafx2/; license = stdenv.lib.licenses.gpl2; platforms = [ "x86_64-linux" "i686-linux" ]; diff --git a/pkgs/applications/graphics/jbrout/default.nix b/pkgs/applications/graphics/jbrout/default.nix index 2207e8884f0..496078ffdb2 100644 --- a/pkgs/applications/graphics/jbrout/default.nix +++ b/pkgs/applications/graphics/jbrout/default.nix @@ -33,7 +33,7 @@ buildPythonPackage { buildInputs = [ python pyGtkGlade makeWrapper pyexiv2 lxml pil fbida which ]; meta = { homepage = "http://code.google.com/p/jbrout"; - description = "jBrout is a photo manager"; + description = "Photo manager"; platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/applications/graphics/k3d/default.nix b/pkgs/applications/graphics/k3d/default.nix index 35f3bed866d..6a66685e42b 100644 --- a/pkgs/applications/graphics/k3d/default.nix +++ b/pkgs/applications/graphics/k3d/default.nix @@ -1,7 +1,7 @@ {stdenv, fetchurl , cmake, mesa, zlib, python, expat, libxml2, libsigcxx, libuuid, freetype , libpng, boost, doxygen, cairomm, pkgconfig, imagemagick, libjpeg, libtiff -, gettext, intltool, perl, gtkmm, glibmm, gtkglext +, gettext, intltool, perl, gtkmm, glibmm, gtkglext, pangox_compat, libXmu }: stdenv.mkDerivation rec { @@ -13,11 +13,8 @@ stdenv.mkDerivation rec { }; patches = [ - # debian package source - ./disable_mutable_in_boost_gil.patch ./k3d_gtkmm224.patch - # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-gfx/k3d/files/k3d-0.7.11.0-libpng14.patch - ./k3d-0.7.11.0-libpng14.patch + ./libpng-1.4.patch ]; preConfigure = '' @@ -29,10 +26,12 @@ stdenv.mkDerivation rec { cmake mesa zlib python expat libxml2 libsigcxx libuuid freetype libpng boost doxygen cairomm pkgconfig imagemagick libjpeg libtiff gettext intltool perl - gtkmm glibmm gtkglext + gtkmm glibmm gtkglext pangox_compat libXmu ]; - doCheck = false; + #doCheck = false; + + enableParallelBuilding = true; meta = { description = "A 3D editor with support for procedural editing"; diff --git a/pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch b/pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch deleted file mode 100644 index 1774328c618..00000000000 --- a/pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/k3dsdk/gil/boost/gil/extension/dynamic_image/apply_operation_base.hpp -+++ b/k3dsdk/gil/boost/gil/extension/dynamic_image/apply_operation_base.hpp -@@ -114,7 +114,7 @@ - template - struct reduce_bind1 { - const T2& _t2; -- mutable Op& _op; -+ Op& _op; - - typedef typename Op::result_type result_type; - -@@ -127,7 +127,7 @@ - struct reduce_bind2 { - const Bits1& _bits1; - std::size_t _index1; -- mutable Op& _op; -+ Op& _op; - - typedef typename Op::result_type result_type; - diff --git a/pkgs/applications/graphics/k3d/k3d-0.7.11.0-libpng14.patch b/pkgs/applications/graphics/k3d/libpng-1.4.patch similarity index 75% rename from pkgs/applications/graphics/k3d/k3d-0.7.11.0-libpng14.patch rename to pkgs/applications/graphics/k3d/libpng-1.4.patch index b54168227b4..e67236617af 100644 --- a/pkgs/applications/graphics/k3d/k3d-0.7.11.0-libpng14.patch +++ b/pkgs/applications/graphics/k3d/libpng-1.4.patch @@ -1,54 +1,53 @@ -diff -ur k3d-source-0.7.11.0.orig/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp ---- k3d-source-0.7.11.0.orig/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp 2009-03-19 22:28:53.000000000 +0200 -+++ k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp 2010-05-12 12:21:50.000000000 +0300 +--- k3d-source-0.8.0.1/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp 2010-04-18 13:49:33.000000000 +0800 ++++ k3d-source-0.8.0.1-patched/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp 2010-06-10 21:17:51.555920268 +0800 @@ -148,12 +148,12 @@ - // allocate/initialize the image information data - _info_ptr = png_create_info_struct(_png_ptr); - if (_info_ptr == NULL) { -- png_destroy_read_struct(&_png_ptr,png_infopp_NULL,png_infopp_NULL); -+ png_destroy_read_struct(&_png_ptr,NULL,NULL); - io_error("png_get_file_size: fail to call png_create_info_struct()"); - } - if (setjmp(png_jmpbuf(_png_ptr))) { - //free all of the memory associated with the png_ptr and info_ptr -- png_destroy_read_struct(&_png_ptr, &_info_ptr, png_infopp_NULL); -+ png_destroy_read_struct(&_png_ptr, &_info_ptr, NULL); - io_error("png_get_file_size: fail to call setjmp()"); - } - png_init_io(_png_ptr, get()); + // allocate/initialize the image information data + _info_ptr = png_create_info_struct(_png_ptr); + if (_info_ptr == NULL) { +- png_destroy_read_struct(&_png_ptr,png_infopp_NULL,png_infopp_NULL); ++ png_destroy_read_struct(&_png_ptr,NULL,NULL); + io_error("png_get_file_size: fail to call png_create_info_struct()"); + } + if (setjmp(png_jmpbuf(_png_ptr))) { + //free all of the memory associated with the png_ptr and info_ptr +- png_destroy_read_struct(&_png_ptr, &_info_ptr, png_infopp_NULL); ++ png_destroy_read_struct(&_png_ptr, &_info_ptr, NULL); + io_error("png_get_file_size: fail to call setjmp()"); + } + png_init_io(_png_ptr, get()); @@ -165,7 +165,7 @@ - png_reader(const char* filename) : file_mgr(filename, "rb") { init(); } - - ~png_reader() { -- png_destroy_read_struct(&_png_ptr,&_info_ptr,png_infopp_NULL); -+ png_destroy_read_struct(&_png_ptr,&_info_ptr,NULL); - } - point2 get_dimensions() { - return point2(png_get_image_width(_png_ptr,_info_ptr), + png_reader(const char* filename) : file_mgr(filename, "rb") { init(); } + + ~png_reader() { +- png_destroy_read_struct(&_png_ptr,&_info_ptr,png_infopp_NULL); ++ png_destroy_read_struct(&_png_ptr,&_info_ptr,NULL); + } + point2 get_dimensions() { + return point2(png_get_image_width(_png_ptr,_info_ptr), @@ -177,7 +177,7 @@ - int bit_depth, color_type, interlace_type; - png_get_IHDR(_png_ptr, _info_ptr, - &width, &height,&bit_depth,&color_type,&interlace_type, -- int_p_NULL, int_p_NULL); -+ (int *) NULL, (int *) NULL); - io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height), - "png_read_view: input view size does not match PNG file size"); - + int bit_depth, color_type, interlace_type; + png_get_IHDR(_png_ptr, _info_ptr, + &width, &height,&bit_depth,&color_type,&interlace_type, +- int_p_NULL, int_p_NULL); ++ (int *) NULL, (int *) NULL); + io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height), + "png_read_view: input view size does not match PNG file size"); + @@ -219,7 +219,7 @@ - int bit_depth, color_type, interlace_type; - png_get_IHDR(_png_ptr, _info_ptr, - &width, &height,&bit_depth,&color_type,&interlace_type, -- int_p_NULL, int_p_NULL); -+ (int *) NULL, (int *) NULL); - io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height), - "png_reader_color_convert::apply(): input view size does not match PNG file size"); - switch (color_type) { + int bit_depth, color_type, interlace_type; + png_get_IHDR(_png_ptr, _info_ptr, + &width, &height,&bit_depth,&color_type,&interlace_type, +- int_p_NULL, int_p_NULL); ++ (int *) NULL, (int *) NULL); + io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height), + "png_reader_color_convert::apply(): input view size does not match PNG file size"); + switch (color_type) { @@ -308,7 +308,7 @@ - io_error_if(!_png_ptr,"png_write_initialize: fail to call png_create_write_struct()"); - _info_ptr = png_create_info_struct(_png_ptr); - if (!_info_ptr) { -- png_destroy_write_struct(&_png_ptr,png_infopp_NULL); -+ png_destroy_write_struct(&_png_ptr,NULL); - io_error("png_write_initialize: fail to call png_create_info_struct()"); - } - if (setjmp(png_jmpbuf(_png_ptr))) { + io_error_if(!_png_ptr,"png_write_initialize: fail to call png_create_write_struct()"); + _info_ptr = png_create_info_struct(_png_ptr); + if (!_info_ptr) { +- png_destroy_write_struct(&_png_ptr,png_infopp_NULL); ++ png_destroy_write_struct(&_png_ptr,NULL); + io_error("png_write_initialize: fail to call png_create_info_struct()"); + } + if (setjmp(png_jmpbuf(_png_ptr))) { diff --git a/pkgs/applications/graphics/mcomix/default.nix b/pkgs/applications/graphics/mcomix/default.nix index cc1fe8c3a22..53c564beec7 100644 --- a/pkgs/applications/graphics/mcomix/default.nix +++ b/pkgs/applications/graphics/mcomix/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { namePrefix = ""; - name = "mcomix-0.98"; + name = "mcomix-1.00"; src = fetchurl { url = "mirror://sourceforge/mcomix/${name}.tar.bz2"; - sha256 = "93805b6c8540bd673ac4a6ef6e952f00f8fc10e59a63c7e163324a64db2a6b03"; + sha256 = "1phcdx1agacdadz8bvbibdbps1apz8idi668zmkky5cpl84k2ifq"; }; doCheck = false; @@ -28,7 +28,7 @@ buildPythonPackage rec { ''; homepage = http://mcomix.sourceforge.net/; - license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; }; } diff --git a/pkgs/applications/graphics/ocrad/default.nix b/pkgs/applications/graphics/ocrad/default.nix index 4c20a41061a..201b59ad5e1 100644 --- a/pkgs/applications/graphics/ocrad/default.nix +++ b/pkgs/applications/graphics/ocrad/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU Ocrad, optical character recognition (OCR) program & library"; + description = "Optical character recognition (OCR) program & library"; longDescription = '' GNU Ocrad is an OCR (Optical Character Recognition) program based on diff --git a/pkgs/applications/graphics/processing/default.nix b/pkgs/applications/graphics/processing/default.nix new file mode 100644 index 00000000000..ecce0e260bb --- /dev/null +++ b/pkgs/applications/graphics/processing/default.nix @@ -0,0 +1,39 @@ +{ fetchurl, stdenv, ant, jre, makeWrapper, libXxf86vm, which }: + +stdenv.mkDerivation rec { + name = "processing-${version}"; + version = "2.2.1"; + + src = fetchurl { + url = "https://github.com/processing/processing/archive/processing-0227-${version}.tar.gz"; + sha256 = "1r8q5y0h4gpqap5jwkspc0li6566hzx5chr7hwrdn8mxlzsm50xk"; + }; + + # Stop it trying to download its own version of java + patches = [ ./use-nixpkgs-jre.patch ]; + + buildInputs = [ ant jre makeWrapper libXxf86vm which ]; + + buildPhase = "cd build && ant build"; + + installPhase = '' + mkdir -p $out/${name} + mkdir -p $out/bin + cp -r linux/work/* $out/${name}/ + makeWrapper $out/${name}/processing $out/bin/processing \ + --prefix PATH : "${jre}/bin:${which}/bin" \ + --prefix LD_LIBRARY_PATH : ${libXxf86vm}/lib + makeWrapper $out/${name}/processing-java $out/bin/processing-java \ + --prefix PATH : "${jre}/bin:${which}/bin" \ + --prefix LD_LIBRARY_PATH : ${libXxf86vm}/lib + ln -s ${jre} $out/${name}/java + ''; + + meta = with stdenv.lib; { + description = "A language and IDE for electronic arts"; + homepage = http://processing.org; + license = licenses.gpl2Plus; + maintainers = [ maintainers.goibhniu ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/graphics/processing/use-nixpkgs-jre.patch b/pkgs/applications/graphics/processing/use-nixpkgs-jre.patch new file mode 100644 index 00000000000..8f6a5e2018e --- /dev/null +++ b/pkgs/applications/graphics/processing/use-nixpkgs-jre.patch @@ -0,0 +1,88 @@ +From d1fb63255ff028ecc9cc66d5a6b21b24031b4b4a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= +Date: Tue, 26 Aug 2014 00:07:58 +0200 +Subject: [PATCH] patch + +--- + build/build.xml | 42 +++++++++++++++++++++--------------------- + 1 file changed, 21 insertions(+), 21 deletions(-) + +diff --git a/build/build.xml b/build/build.xml +index 4d0f0b2..c3f5c09 100755 +--- a/build/build.xml ++++ b/build/build.xml +@@ -640,10 +640,11 @@ + value="jre-tools-6u37-linux${sun.arch.data.model}.tgz" /> + --> + ++ + +- ++ + + +- +- +- ++ ++ ++ + + +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ + + +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +-- +2.1.0 + diff --git a/pkgs/applications/graphics/qiv/default.nix b/pkgs/applications/graphics/qiv/default.nix index 86891f2cb93..01b0a1414a7 100644 --- a/pkgs/applications/graphics/qiv/default.nix +++ b/pkgs/applications/graphics/qiv/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation (rec { ''; meta = { - description = "qiv (quick image viewer)"; + description = "Quick image viewer"; homepage = http://spiegl.de/qiv/; inherit version; }; diff --git a/pkgs/applications/graphics/synfigstudio/default.nix b/pkgs/applications/graphics/synfigstudio/default.nix index 034a147b787..ba7a916e3fe 100644 --- a/pkgs/applications/graphics/synfigstudio/default.nix +++ b/pkgs/applications/graphics/synfigstudio/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, boost, cairo, gettext, glibmm, gtk, gtkmm +{ stdenv, fetchurl, boost, cairo, fontsConf, gettext, glibmm, gtk, gtkmm , libsigcxx, libtool, libxmlxx, pango, pkgconfig, imagemagick , intltool }: @@ -42,10 +42,14 @@ stdenv.mkDerivation rec { }; buildInputs = [ - ETL boost cairo gettext glibmm gtk gtkmm imagemagick intltool + ETL boost cairo fontsConf gettext glibmm gtk gtkmm imagemagick intltool intltool libsigcxx libtool libxmlxx pkgconfig synfig ]; + preBuild = '' + export FONTCONFIG_FILE=${fontsConf} + ''; + meta = with stdenv.lib; { description = "A 2D animation program"; homepage = http://www.synfig.org; diff --git a/pkgs/applications/graphics/ufraw/default.nix b/pkgs/applications/graphics/ufraw/default.nix index 783832abd00..dbfda4e5819 100644 --- a/pkgs/applications/graphics/ufraw/default.nix +++ b/pkgs/applications/graphics/ufraw/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://ufraw.sourceforge.net/; - description = "UFRaw, a utility to read and manipulate raw images from digital cameras"; + description = "Utility to read and manipulate raw images from digital cameras"; longDescription = '' The Unidentified Flying Raw (UFRaw) is a utility to read and diff --git a/pkgs/applications/graphics/viewnior/default.nix b/pkgs/applications/graphics/viewnior/default.nix index dd8e01298ff..478553d2c00 100644 --- a/pkgs/applications/graphics/viewnior/default.nix +++ b/pkgs/applications/graphics/viewnior/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Viewnior is a fast and simple image viewer for GNU/Linux"; + description = "Fast and simple image viewer"; longDescription = '' Viewnior is insipred by big projects like Eye of Gnome, because of it's usability and richness,and by GPicView, because of it's lightweight design and diff --git a/pkgs/applications/graphics/xaos/default.nix b/pkgs/applications/graphics/xaos/default.nix index 8387b3486d4..cacefc9bcc1 100644 --- a/pkgs/applications/graphics/xaos/default.nix +++ b/pkgs/applications/graphics/xaos/default.nix @@ -28,7 +28,7 @@ rec { name = "xaos-" + version; meta = { homepage = http://xaos.sourceforge.net/; - description = "XaoS - fractal viewer"; + description = "Fractal viewer"; license = a.stdenv.lib.licenses.gpl2Plus; }; } diff --git a/pkgs/applications/misc/arbtt/default.nix b/pkgs/applications/misc/arbtt/default.nix index 0c3939b5c25..27f6c122374 100644 --- a/pkgs/applications/misc/arbtt/default.nix +++ b/pkgs/applications/misc/arbtt/default.nix @@ -8,8 +8,8 @@ cabal.mkDerivation (self: { pname = "arbtt"; - version = "0.8.1"; - sha256 = "1qzmqjm8pfj59h0hrm28pp6qhzz2am5xq81mirnnchsgg52wrfn0"; + version = "0.8.1.2"; + sha256 = "074vb84vkygxamvq7xnwlpgbch6qkbhyzbakc343230p1ryxf62q"; isLibrary = false; isExecutable = true; buildDepends = [ diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix index 0663937c479..1f86a4164f6 100644 --- a/pkgs/applications/misc/audio/sox/default.nix +++ b/pkgs/applications/misc/audio/sox/default.nix @@ -4,6 +4,8 @@ , enableLame ? false, lame ? null , enableLibmad ? true, libmad ? null , enableLibogg ? true, libogg ? null, libvorbis ? null +, enableFLAC ? true, flac ? null +, enablePNG ? true, libpng ? null }: with stdenv.lib; @@ -21,7 +23,9 @@ stdenv.mkDerivation rec { optional enableLibao libao ++ optional enableLame lame ++ optional enableLibmad libmad ++ - optionals enableLibogg [ libogg libvorbis ]; + optionals enableLibogg [ libogg libvorbis ] ++ + optional enableFLAC flac ++ + optional enablePNG libpng; meta = { description = "Sample Rate Converter for audio"; diff --git a/pkgs/applications/misc/bitcoin/altcoins.nix b/pkgs/applications/misc/bitcoin/altcoins.nix new file mode 100644 index 00000000000..796cedc1ee2 --- /dev/null +++ b/pkgs/applications/misc/bitcoin/altcoins.nix @@ -0,0 +1,130 @@ +{ fetchurl, stdenv, pkgconfig +, openssl, db48, boost, zlib, miniupnpc, qt4, qrencode, glib, protobuf +, utillinux, autogen, autoconf, autobuild, automake, db }: + +with stdenv.lib; + +let + buildAltcoin = makeOverridable ({walletName, gui ? true, ...}@a: + stdenv.mkDerivation ({ + name = "${walletName}${toString (optional (!gui) "d")}-${a.version}"; + buildInputs = [ openssl db48 boost zlib miniupnpc ] + ++ optionals gui [ qt4 qrencode ] ++ a.extraBuildInputs or []; + + configurePhase = optional gui "qmake"; + + preBuild = optional (!gui) "cd src"; + makefile = optional (!gui) "makefile.unix"; + + installPhase = if gui then '' + install -D "${walletName}-qt" "$out/bin/${walletName}-qt" + '' else '' + install -D "${walletName}d" "$out/bin/${walletName}d" + ''; + + passthru.walletName = walletName; + + meta = { + platforms = platforms.unix; + license = license.mit; + maintainers = [ maintainers.offline ]; + }; + } // a) + ); + +in rec { + inherit buildAltcoin; + + litecoin = buildAltcoin rec { + walletName = "litecoin"; + version = "0.8.5.3-rc3"; + + src = fetchurl { + url = "https://github.com/litecoin-project/litecoin/archive/v${version}.tar.gz"; + sha256 = "1z4a7bm3z9kd7n0s38kln31z8shsd32d5d5v3br5p0jlnr5g3lk7"; + }; + + meta = { + description = "Litecoin is a lite version of Bitcoin using scrypt as a proof-of-work algorithm."; + longDescription= '' + Litecoin is a peer-to-peer Internet currency that enables instant payments + to anyone in the world. It is based on the Bitcoin protocol but differs + from Bitcoin in that it can be efficiently mined with consumer-grade hardware. + Litecoin provides faster transaction confirmations (2.5 minutes on average) + and uses a memory-hard, scrypt-based mining proof-of-work algorithm to target + the regular computers and GPUs most people already have. + The Litecoin network is scheduled to produce 84 million currency units. + ''; + homepage = https://litecoin.org/; + }; + }; + litecoind = litecoin.override { gui = false; }; + + namecoin = buildAltcoin rec { + walletName = "namecoin"; + version = "0.3.51.00"; + gui = false; + + src = fetchurl { + url = "https://github.com/namecoin/namecoin/archive/nc${version}.tar.gz"; + sha256 = "0r6zjzichfjzhvpdy501gwy9h3zvlla3kbgb38z1pzaa0ld9siyx"; + }; + + patches = [ ./namecoin_dynamic.patch ]; + + extraBuildInputs = [ glib ]; + + meta = { + description = "Namecoin is a decentralized key/value registration and transfer system based on Bitcoin technology."; + homepage = http://namecoin.info; + }; + }; + + dogecoin = (buildAltcoin rec { + walletName = "dogecoin"; + version = "1.8.0"; + + src = fetchurl { + url = "https://github.com/dogecoin/dogecoin/archive/v${version}.tar.gz"; + sha256 = "8a33958c04213cd621aa3c86910477813af22512f03b47c98995d20d31f3f935"; + }; + + extraBuildInputs = [ autogen autoconf automake pkgconfig db utillinux protobuf ]; + + meta = { + description = "Wow, such coin, much shiba, very rich"; + longDescription = "wow"; + homepage = http://www.dogecoin.com/; + maintainers = [ maintainers.offline maintainers.edwtjo ]; + }; + }).override rec { + patchPhase = '' + sed -i \ + -e 's,BDB_CPPFLAGS=$,BDB_CPPFLAGS="-I${db}/include",g' \ + -e 's,BDB_LIBS=$,BDB_LIBS="-L${db}/lib",g' \ + -e 's,bdbdirlist=$,bdbdirlist="${db}/include",g' \ + src/m4/dogecoin_find_bdb51.m4 + ''; + dogeConfigure = '' + ./autogen.sh \ + && ./configure --prefix=$out \ + --with-incompatible-bdb \ + --with-boost-libdir=${boost}/lib \ + ''; + dogeInstall = '' + install -D "src/dogecoin-cli" "$out/bin/dogecoin-cli" + install -D "src/dogecoind" "$out/bin/dogecoind" + ''; + configurePhase = dogeConfigure + "--with-gui"; + installPhase = dogeInstall + "install -D src/qt/dogecoin-qt $out/bin/dogecoin-qt"; + }; + + dogecoind = dogecoin.override rec { + gui = false; + makefile = "Makefile"; + preBuild = ""; + configurePhase = dogecoin.dogeConfigure + "--without-gui"; + installPhase = dogecoin.dogeInstall; + }; + +} diff --git a/pkgs/applications/misc/bitcoin/default.nix b/pkgs/applications/misc/bitcoin/default.nix index e38d427be8d..2b68c58b12d 100644 --- a/pkgs/applications/misc/bitcoin/default.nix +++ b/pkgs/applications/misc/bitcoin/default.nix @@ -1,19 +1,21 @@ { fetchurl, stdenv, openssl, db48, boost, zlib, miniupnpc, qt4, utillinux -, pkgconfig, protobuf, qrencode }: +, pkgconfig, protobuf, qrencode, gui ? true }: + +with stdenv.lib; stdenv.mkDerivation rec { version = "0.9.2.1"; - name = "bitcoin-${version}"; + name = "bitcoin${toString (optional (!gui) "d")}-${version}"; src = fetchurl { - url = "https://bitcoin.org/bin/${version}/${name}-linux.tar.gz"; + url = "https://bitcoin.org/bin/${version}/bitcoin-${version}-linux.tar.gz"; sha256 = "0060f7d38b98113ab912d4c184000291d7f026eaf77ca5830deec15059678f54"; }; # hexdump from utillinux is required for tests buildInputs = [ - openssl db48 boost zlib miniupnpc qt4 utillinux pkgconfig protobuf qrencode - ]; + openssl db48 boost zlib miniupnpc utillinux pkgconfig protobuf + ] ++ optionals gui [ qt4 qrencode ]; unpackPhase = '' mkdir tmp-extract && (cd tmp-extract && tar xf $src) @@ -34,8 +36,10 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + passthru.walletName = "bitcoin"; + meta = { - description = "Bitcoin is a peer-to-peer currency"; + description = "Peer-to-peer electronic cash system"; longDescription= '' Bitcoin is a free open source peer-to-peer electronic cash system that is completely decentralized, without the need for a central server or trusted @@ -43,7 +47,7 @@ stdenv.mkDerivation rec { with each other, with the help of a P2P network to check for double-spending. ''; homepage = "http://www.bitcoin.org/"; - maintainers = [ stdenv.lib.maintainers.roconnor ]; - license = stdenv.lib.licenses.mit; + maintainers = [ maintainers.roconnor ]; + license = licenses.mit; }; } diff --git a/pkgs/applications/misc/bitcoin/namecoin_dynamic.patch b/pkgs/applications/misc/bitcoin/namecoin_dynamic.patch new file mode 100644 index 00000000000..ef4184ede73 --- /dev/null +++ b/pkgs/applications/misc/bitcoin/namecoin_dynamic.patch @@ -0,0 +1,11 @@ +diff -u -r a/src/makefile.unix b/src/makefile.unix +--- a/src/makefile.unix 2014-01-22 22:07:59.801601964 -0800 ++++ b/src/makefile.unix 2014-01-22 22:08:07.980332839 -0800 +@@ -12,7 +12,6 @@ + + # for boost 1.37, add -mt to the boost libraries + LIBS= \ +- -Wl,-Bstatic \ + -l boost_system \ + -l boost_filesystem \ + -l boost_program_options \ diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix index 190b57e1070..00a5d15a84c 100644 --- a/pkgs/applications/misc/calibre/default.nix +++ b/pkgs/applications/misc/calibre/default.nix @@ -5,11 +5,11 @@ }: stdenv.mkDerivation rec { - name = "calibre-2.0.0"; + name = "calibre-2.1.0"; src = fetchurl { url = "mirror://sourceforge/calibre/${name}.tar.xz"; - sha256 = "1fpn8icfyag2ybj2ywd81sva56ycsin56gyap5m9j5crx63p4c91"; + sha256 = "1znwrmz740m08bihkmdijm193bvav4nm313xsagd5x9mjh2nffg7"; }; inherit python; diff --git a/pkgs/applications/misc/camlistore/default.nix b/pkgs/applications/misc/camlistore/default.nix index 56131425ab4..9adac335c0c 100644 --- a/pkgs/applications/misc/camlistore/default.nix +++ b/pkgs/applications/misc/camlistore/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "Camlistore is a way of storing, syncing, sharing, modelling and backing up content"; + description = "A way of storing, syncing, sharing, modelling and backing up content"; homepage = https://camlistore.org; license = licenses.asl20; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix index b9c8acb0d07..ea9383a6e10 100644 --- a/pkgs/applications/misc/eaglemode/default.nix +++ b/pkgs/applications/misc/eaglemode/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, perl, libX11, libjpeg, libpng, libtiff, pkgconfig, librsvg, glib, gtk, libXext, libXxf86vm, poppler }: -stdenv.mkDerivation { - name = "eaglemode-0.84.0"; +stdenv.mkDerivation rec { + name = "eaglemode-0.85.0"; src = fetchurl { - url = mirror://sourceforge/eaglemode/eaglemode-0.84.0.tar.bz2; - sha256 = "0n20b419j0l7h7jr4s3f3n09ka0ysg9nqs8mcwsrx24rcq7nv0cs"; + url = "mirror://sourceforge/eaglemode/${name}.tar.bz2"; + sha256 = "0mz4rg2k36wvcv55dg0a5znaczpl5h4gwkkb34syj89xk8jlbwsc"; }; buildInputs = [ perl libX11 libjpeg libpng libtiff pkgconfig diff --git a/pkgs/applications/misc/evilvte/default.nix b/pkgs/applications/misc/evilvte/default.nix new file mode 100644 index 00000000000..5921cc308b5 --- /dev/null +++ b/pkgs/applications/misc/evilvte/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchgit, makeWrapper, pkgconfig, + gnome, glib, pango, cairo, gdk_pixbuf, atk, freetype, xlibs, + configH +}: + +stdenv.mkDerivation rec { + name = "evilvte-${version}"; + version = "0.5.2-20140827"; + + src = fetchgit { + url = https://github.com/caleb-/evilvte.git; + rev = "8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a"; + sha256 = "70f1d4234d077121e2223a735d749d1b53f0b84393507b635b8a37c3716e94d3"; + }; + + buildInputs = [ + gnome.vte glib pango gnome.gtk cairo gdk_pixbuf atk freetype xlibs.libX11 + xlibs.xproto xlibs.kbproto xlibs.libXext xlibs.xextproto makeWrapper pkgconfig + ]; + + buildPhase = '' + cat >src/config.h < $out/bin/nb << EOF + #!${bash}/bin/bash + $out/nb "\$@" + EOF + chmod 755 $out/bin/nb + ''; + + meta = { + description = "Small weblog engine written in Bash for the command line"; + homepage = http://nanoblogger.sourceforge.net/; + license = stdenv.lib.licenses.gpl2; + }; +} diff --git a/pkgs/applications/misc/pinfo/default.nix b/pkgs/applications/misc/pinfo/default.nix index d8dba39ccb5..658ff410d37 100644 --- a/pkgs/applications/misc/pinfo/default.nix +++ b/pkgs/applications/misc/pinfo/default.nix @@ -1,12 +1,23 @@ -{stdenv, fetchurl, ncurses, readline}: +{ stdenv, fetchurl, autoreconfHook, gettext, texinfo, ncurses, readline }: stdenv.mkDerivation { - name = "pinfo-0.6.9"; - src = fetchurl { - url = https://alioth.debian.org/frs/download.php/1498/pinfo-0.6.9.tar.bz2; - sha256 = "1rbsz1y7nyz6ax9xfkw5wk6pnrhvwz2xcm0wnfnk4sb2wwq760q3"; - }; - buildInputs = [ncurses readline]; + name = "pinfo-0.6.10"; - configureFlags = "--with-curses=${ncurses} --with-readline=${readline}"; + src = fetchurl { + # homepage needed you to login to download the tarball + url = "http://pkgs.fedoraproject.org/repo/pkgs/pinfo/pinfo-0.6.10.tar.bz2" + + "/fe3d3da50371b1773dfe29bf870dbc5b/pinfo-0.6.10.tar.bz2"; + sha256 = "0p8wyrpz9npjcbx6c973jspm4c3xz4zxx939nngbq49xqah8088j"; + }; + + buildInputs = [ autoreconfHook gettext texinfo ncurses readline ]; + + configureFlags = [ "--with-curses=${ncurses}" "--with-readline=${readline}" ]; + + meta = with stdenv.lib; { + description = "A viewer for info files"; + homepage = https://alioth.debian.org/projects/pinfo/; + license = licenses.gpl2Plus; + }; } + diff --git a/pkgs/applications/misc/posterazor/default.nix b/pkgs/applications/misc/posterazor/default.nix index 0cad2fbd2cd..f55af543f18 100644 --- a/pkgs/applications/misc/posterazor/default.nix +++ b/pkgs/applications/misc/posterazor/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, cmake, unzip, pkgconfig, libXpm, fltk13, freeimage }: stdenv.mkDerivation rec { - name = "posterazor-1.5"; + name = "posterazor-1.5.1"; src = fetchurl { - url = "mirror://sourceforge/posterazor/1.5/PosteRazor-1.5-Source.zip"; - sha256 = "0xy313d2j57s4wy2y3hjapbjr5zfaki0lhkfz6nw2p9gylcmwmjy"; + url = "mirror://sourceforge/posterazor/1.5.1/PosteRazor-1.5.1-Source.zip"; + sha256 = "1dqpdk8zl0smdg4fganp3hxb943q40619qmxjlga9jhjc01s7fq5"; }; buildInputs = [ cmake unzip pkgconfig libXpm fltk13 freeimage ]; @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://posterazor.sourceforge.net/"; - description = "The PosteRazor cuts a raster image into pieces which can afterwards be printed out and assembled to a poster"; + description = "Cuts a raster image into pieces which can afterwards be printed out and assembled to a poster"; maintainers = [ stdenv.lib.maintainers.madjar ]; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/applications/misc/stardict/stardict.nix b/pkgs/applications/misc/stardict/stardict.nix index 1ca8ec045d6..d4c41edde30 100644 --- a/pkgs/applications/misc/stardict/stardict.nix +++ b/pkgs/applications/misc/stardict/stardict.nix @@ -37,8 +37,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "stardict"; - homepage = "A international dictionary supporting fuzzy and glob style matching"; + description = "An international dictionary supporting fuzzy and glob style matching"; license = stdenv.lib.licenses.lgpl3; maintainers = with stdenv.lib.maintainers; [qknight]; }; diff --git a/pkgs/applications/misc/taffybar/default.nix b/pkgs/applications/misc/taffybar/default.nix index 6b282116343..09eb186013f 100644 --- a/pkgs/applications/misc/taffybar/default.nix +++ b/pkgs/applications/misc/taffybar/default.nix @@ -8,8 +8,8 @@ cabal.mkDerivation (self: { pname = "taffybar"; - version = "0.4.0"; - sha256 = "1l6zl5mlpkdsvs3id6ivh4b74p65n6jr17k23y2cdwj2fr9prvr8"; + version = "0.4.1"; + sha256 = "0b4x78sq5x1w0xnc5fk4ixpbkl8cwjfyb4fq8vy21shf4n0fri26"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/applications/misc/tangogps/default.nix b/pkgs/applications/misc/tangogps/default.nix index aa1df2c9d1a..0a2c1c88c23 100644 --- a/pkgs/applications/misc/tangogps/default.nix +++ b/pkgs/applications/misc/tangogps/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "tangoGPS, a user friendly map and GPS user interface"; + description = "User friendly map and GPS user interface"; longDescription = '' tangoGPS is an easy to use, fast and lightweight mapping diff --git a/pkgs/applications/misc/tilda/default.nix b/pkgs/applications/misc/tilda/default.nix new file mode 100644 index 00000000000..50c4184c91e --- /dev/null +++ b/pkgs/applications/misc/tilda/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, pkgconfig +, autoreconfHook, gettext, expat +, confuse, vte, gtk +, makeWrapper +}: + +stdenv.mkDerivation rec { + + name = "tilda-${version}"; + version = "1.1.12"; + + src = fetchurl { + url = "https://github.com/lanoxx/tilda/archive/${name}.tar.gz"; + sha256 = "10kjlcdaylkisb8i0cw4wfssg52mrz2lxr5zmw3q4fpnhh2xlaix"; + }; + + buildInputs = [ pkgconfig autoreconfHook gettext confuse vte gtk makeWrapper ]; + + LD_LIBRARY_PATH = "${expat}/lib"; # ugly hack for xgettext to work during build + + postInstall = '' + wrapProgram "$out/bin/tilda" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + description = "A Gtk based drop down terminal for Linux and Unix"; + homepage = https://github.com/lanoxx/tilda/; + license = licenses.gpl3; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} + diff --git a/pkgs/applications/misc/viking/default.nix b/pkgs/applications/misc/viking/default.nix index 6508b12e1de..9afabe0372d 100644 --- a/pkgs/applications/misc/viking/default.nix +++ b/pkgs/applications/misc/viking/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { doCheck = true; meta = { - description = "Viking, a GPS data editor and analyzer"; + description = "GPS data editor and analyzer"; longDescription = '' Viking is a free/open source program to manage GPS data. You diff --git a/pkgs/applications/misc/wordnet/default.nix b/pkgs/applications/misc/wordnet/default.nix index 7594014d769..6ead69db220 100644 --- a/pkgs/applications/misc/wordnet/default.nix +++ b/pkgs/applications/misc/wordnet/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { ''; meta = { - description = "WordNet, a lexical database for the English language"; + description = "Lexical database for the English language"; longDescription = '' WordNet® is a large lexical database of English. Nouns, verbs, diff --git a/pkgs/applications/misc/xca/default.nix b/pkgs/applications/misc/xca/default.nix index 0bc2170340c..09edb086c9f 100644 --- a/pkgs/applications/misc/xca/default.nix +++ b/pkgs/applications/misc/xca/default.nix @@ -28,5 +28,6 @@ stdenv.mkDerivation rec { homepage = http://xca.sourceforge.net/; platforms = platforms.all; license = licenses.bsd3; + broken = true; }; } diff --git a/pkgs/applications/misc/xfe/default.nix b/pkgs/applications/misc/xfe/default.nix index d09a899b897..e216b19fab5 100644 --- a/pkgs/applications/misc/xfe/default.nix +++ b/pkgs/applications/misc/xfe/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - description = "X File Explorer (Xfe) is an MS-Explorer like file manager for X"; + description = "MS-Explorer like file manager for X"; longDescription = '' X File Explorer (Xfe) is an MS-Explorer like file manager for X. It is based on the popular, but discontinued, X Win Commander, which was developed by Maxim Baranov. diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index b9011c0236f..46dadd280c9 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -10,7 +10,7 @@ , python, pythonPackages, perl, pkgconfig , nspr, udev, krb5 , utillinux, alsaLib -, gcc, bison, gperf +, bison, gperf , glib, gtk, dbus_glib , libXScrnSaver, libXcursor, libXtst, mesa , protobuf, speechd, libXdamage @@ -145,6 +145,8 @@ let ''; gypFlags = mkGypFlags (gypFlagsUseSystemLibs // { + linux_use_bundled_binutils = false; + linux_use_bundled_gold = false; linux_use_gold_binary = false; linux_use_gold_flags = false; proprietary_codecs = false; @@ -161,9 +163,6 @@ let werror = ""; clang = false; - # FIXME: In version 37, omnibox.mojom.js doesn't seem to be generated. - use_mojo = versionOlder source.version "37.0.0.0"; - # Google API keys, see: # http://www.chromium.org/developers/how-tos/api-keys # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution, @@ -192,22 +191,12 @@ let ''; buildPhase = let - CC = "${gcc}/bin/gcc"; - CXX = "${gcc}/bin/g++"; - buildCommand = target: let - # XXX: Only needed for version 36 and older! - targetSuffix = optionalString - (versionOlder source.version "37.0.0.0" && target == "mksnapshot") - (if stdenv.is64bit then ".x64" else ".ia32"); - in '' - CC="${CC}" CC_host="${CC}" \ - CXX="${CXX}" CXX_host="${CXX}" \ - LINK_host="${CXX}" \ - "${ninja}/bin/ninja" -C "${buildPath}" \ - -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES \ - "${target}${targetSuffix}" + buildCommand = target: '' + "${ninja}/bin/ninja" -C "${buildPath}" \ + -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES \ + "${target}" '' + optionalString (target == "mksnapshot" || target == "chrome") '' - paxmark m "${buildPath}/${target}${targetSuffix}" + paxmark m "${buildPath}/${target}" ''; targets = extraAttrs.buildTargets or []; commands = map buildCommand targets; diff --git a/pkgs/applications/networking/browsers/chromium/source/default.nix b/pkgs/applications/networking/browsers/chromium/source/default.nix index d7ccc412fa4..91c6ada5138 100644 --- a/pkgs/applications/networking/browsers/chromium/source/default.nix +++ b/pkgs/applications/networking/browsers/chromium/source/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { prePatch = "patchShebangs ."; - patches = singleton ./sandbox_userns_36.patch; + patches = [ ./sandbox_userns_36.patch ./missing_alg_import.patch ]; postPatch = '' sed -i -r \ diff --git a/pkgs/applications/networking/browsers/chromium/source/missing_alg_import.patch b/pkgs/applications/networking/browsers/chromium/source/missing_alg_import.patch new file mode 100644 index 00000000000..243e3fe7049 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/source/missing_alg_import.patch @@ -0,0 +1,11 @@ +diff -Naur chromium-37.0.2062.94.old/media/cast/logging/encoding_event_subscriber.cc chromium-37.0.2062.94/media/cast/logging/encoding_event_subscriber.cc +--- chromium-37.0.2062.94.old/media/cast/logging/encoding_event_subscriber.cc 2014-08-29 02:05:15.149140733 -0700 ++++ chromium-37.0.2062.94/media/cast/logging/encoding_event_subscriber.cc 2014-08-29 02:06:00.182853590 -0700 +@@ -4,6 +4,7 @@ + + #include "media/cast/logging/encoding_event_subscriber.h" + ++#include + #include + #include + diff --git a/pkgs/applications/networking/browsers/chromium/source/sources.nix b/pkgs/applications/networking/browsers/chromium/source/sources.nix index 4a610827913..27ba9420f43 100644 --- a/pkgs/applications/networking/browsers/chromium/source/sources.nix +++ b/pkgs/applications/networking/browsers/chromium/source/sources.nix @@ -1,21 +1,21 @@ # This file is autogenerated from update.sh in the parent directory. { dev = { - version = "38.0.2107.3"; - sha256 = "0zb1mj3xgvvs5ijix4b52vj9dlymqkipn8srfzvhwl7g4hx5ss3v"; - sha256bin32 = "12lvvmg3bqacb0qw72bwlxm2m57s39mz2810agngdgzv0hd835cv"; - sha256bin64 = "1vw36s8nlvdsl8pjbh4gny00kvcizn1i2lznzqzysicz2rz7ncrh"; + version = "39.0.2138.3"; + sha256 = "0adkzv4ydrg02prcacqx3gk8v0ivvs57qisf220wzzicgpzklm26"; + sha256bin32 = "0rskbr55nhvpmmw6bl90iv2lr0f2chra3r5c92j3ica307y12f2q"; + sha256bin64 = "0gdyyaxiaq50jpwhvai6d67ypgjxqn8kp9fqix6nbwj4fnmdfcjx"; }; beta = { - version = "37.0.2062.58"; - sha256 = "0jck4s6nrizj9wmifsjviin9ifnviihs21fi05wzljyfnbgc4byl"; - sha256bin32 = "1cm1r8bqy66gvdhbrgn9pdc11i72dca96ab5j3m3349p6728jbgk"; - sha256bin64 = "0cpb189pn5jiplldkgy8lfbcwvfik66kjjf6y2i708xa5ggfpwfi"; + version = "38.0.2125.24"; + sha256 = "07v4vk7sc54d2hzgfms0b71cc7z6h85v9d39j110kzk0w1bpk3gy"; + sha256bin32 = "0l26ci7sqi755cm017qmbcqk74rqja5c08cbzf5v4chsa773qn0m"; + sha256bin64 = "1ibx40ijjj8z0smpzh5v6y611c57qm5raldk48h5dd1flqbgz0nr"; }; stable = { - version = "36.0.1985.125"; - sha256 = "08shkm89qzzdlrjg0rg5qiszbk6ziginsicyxqyk353y76jx10hp"; - sha256bin32 = "1ahazz56k127xncgl1lzwsmydbh0vcxq0hzrb9cm9zzdkzqjzg03"; - sha256bin64 = "0qx5316cd8l9g8w389aqi5m3csmr5s8hs7sivlk02mbs0jzi8ppc"; + version = "37.0.2062.94"; + sha256 = "0cz5kivimxcaiml6x5mysarjyfvvanbw02qz2d1y3jvl1dc1jz6j"; + sha256bin32 = "0vszphfz4mnw08yc6bid4g6q2w4f5smvfhlzyb2vvv65ndr64b8k"; + sha256bin64 = "0h4fb7v0b1w9d47iy6fk5g0fpzgczps7nzmknyk7vx68ybi39ssw"; }; } diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix index 969ced923b3..56ba95c661f 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/default.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -37,6 +37,8 @@ , systemd }: +assert stdenv.isLinux; + let version = "31.0"; sources = [ diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix index ad2ea75bd70..e23a6d94ec1 100644 --- a/pkgs/applications/networking/browsers/firefox/default.nix +++ b/pkgs/applications/networking/browsers/firefox/default.nix @@ -94,7 +94,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Mozilla Firefox - the browser, reloaded"; + description = "Web browser"; homepage = http://www.mozilla.com/en-US/firefox/; maintainers = with lib.maintainers; [ eelco wizeman ]; platforms = lib.platforms.linux; diff --git a/pkgs/applications/networking/browsers/icecat-3/default.nix b/pkgs/applications/networking/browsers/icecat-3/default.nix deleted file mode 100644 index ef2c69422b6..00000000000 --- a/pkgs/applications/networking/browsers/icecat-3/default.nix +++ /dev/null @@ -1,119 +0,0 @@ -{ fetchurl, stdenv, pkgconfig, gtk, pango, perl, python, ply, zip, libIDL -, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs, alsaLib -, libnotify, gnome_vfs, libgnomeui -, freetype, fontconfig, wirelesstools ? null, pixman -, application ? "browser" }: - -# Build the WiFi stuff on Linux-based systems. -# FIXME: Disable for now until it can actually be built: -# http://thread.gmane.org/gmane.comp.gnu.gnuzilla/1376 . -#assert stdenv.isLinux -> (wirelesstools != null); - -let version = "3.6.15"; in -stdenv.mkDerivation { - name = "icecat-${version}"; - - src = fetchurl { - url = "mirror://gnu/gnuzilla/${version}/icecat-${version}.tar.xz"; - sha256 = "1px018bd81c81a4hbz0qgf89pkshkbhg4abwq1d26dwy8128cxwg"; - }; - - buildInputs = - [ libgnomeui libnotify gnome_vfs alsaLib - pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2 pixman - python ply dbus dbus_glib pango freetype fontconfig - xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt - ] - ++ (stdenv.lib.optional false /* stdenv.isLinux */ wirelesstools); - - patches = [ - ./skip-gre-registration.patch ./rpath-link.patch - ]; - - configureFlags = - [ "--enable-application=${application}" - "--enable-libxul" - "--disable-javaxpcom" - - "--enable-optimize" - "--disable-debug" - "--enable-strip" - "--with-system-jpeg" - "--with-system-zlib" - "--with-system-bz2" - # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support" - "--enable-system-cairo" - #"--enable-system-sqlite" # <-- this seems to be discouraged - "--disable-crashreporter" - ] - ++ (stdenv.lib.optional true /* (!stdenv.isLinux) */ "--disable-necko-wifi"); - - postInstall = '' - export dontPatchELF=1; - - # Strip some more stuff - strip -S "$out/lib/"*"/"* || true - - # This fixes starting IceCat when there already is a running - # instance. The `icecat' wrapper script actually expects to be - # in the same directory as `run-mozilla.sh', apparently. - libDir=$(cd $out/lib && ls -d icecat-[0-9]*) - test -n "$libDir" - - if [ -f "$out/bin/icecat" ] - then - # Fix references to /bin paths in the IceCat shell script. - substituteInPlace $out/bin/icecat \ - --replace /bin/pwd "$(type -tP pwd)" \ - --replace /bin/ls "$(type -tP ls)" - - cd $out/bin - mv icecat ../lib/$libDir/ - ln -s ../lib/$libDir/icecat . - - # Register extensions etc. - echo "running \`icecat -register'..." - (cd $out/lib/$libDir && LD_LIBRARY_PATH=. ./icecat-bin -register) || false - fi - - if [ -f "$out/lib/$libDir/xpidl" ] - then - # XulRunner's IDL compiler. - echo "linking \`xpidl'..." - ln -s "$out/lib/$libDir/xpidl" "$out/bin" - fi - - # Put the GNU IceCat icon in the right place. - mkdir -p "$out/lib/$libDir/chrome/icons/default" - ln -s ../../../icons/default.xpm "$out/lib/$libDir/chrome/icons/default/" - ''; - - enableParallelBuilding = true; - - meta = { - description = "GNU IceCat, a free web browser based on Mozilla Firefox"; - - longDescription = '' - Gnuzilla is the GNU version of the Mozilla suite, and GNU IceCat - is the GNU version of the Firefox browser. Its main advantage - is an ethical one: it is entirely free software. While the - source code from the Mozilla project is free software, the - binaries that they release include additional non-free software. - Also, they distribute and recommend non-free software as - plug-ins. In addition, GNU IceCat includes some privacy - protection features. - ''; - - homepage = http://www.gnu.org/software/gnuzilla/; - license = [ "GPLv2+" "LGPLv2+" "MPLv1+" ]; - - maintainers = [ ]; - platforms = stdenv.lib.platforms.gnu; - }; - - passthru = { - inherit gtk version; - isFirefox3Like = true; - broken = true; - }; -} diff --git a/pkgs/applications/networking/browsers/icecat-3/rpath-link.patch b/pkgs/applications/networking/browsers/icecat-3/rpath-link.patch deleted file mode 100644 index d50784f13ee..00000000000 --- a/pkgs/applications/networking/browsers/icecat-3/rpath-link.patch +++ /dev/null @@ -1,14 +0,0 @@ -Without this patch, IceCat ends up linking with -`-Wl,-rpath-link=/bin -Wl-,-rpath-link=/lib'. - ---- icecat-3.5/js/src/configure 2009-07-04 18:03:01.000000000 +0200 -+++ icecat-3.5/js/src/configure 2009-07-13 18:34:30.000000000 +0200 -@@ -4775,7 +4775,6 @@ HOST_AR='$(AR)' - HOST_AR_FLAGS='$(AR_FLAGS)' - - MOZ_JS_LIBS='-L$(libdir) -lmozjs' --MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(PREFIX)/lib' - - MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)' - MOZ_XPCOM_OBSOLETE_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom_compat' - diff --git a/pkgs/applications/networking/browsers/icecat-3/skip-gre-registration.patch b/pkgs/applications/networking/browsers/icecat-3/skip-gre-registration.patch deleted file mode 100644 index d1fb4e3f30a..00000000000 --- a/pkgs/applications/networking/browsers/icecat-3/skip-gre-registration.patch +++ /dev/null @@ -1,12 +0,0 @@ -Skip "GRE" registration since that assumes write access to `/etc'. - ---- icecat-3.0.1-g1/xulrunner/installer/Makefile.in 2008-07-27 12:52:16.000000000 +0200 -+++ icecat-3.0.1-g1/xulrunner/installer/Makefile.in 2008-09-08 17:19:17.000000000 +0200 -@@ -71,6 +71,7 @@ $(MOZILLA_VERSION).system.conf: $(topsrc - printf "[%s]\nGRE_PATH=%s\nxulrunner=true\nabi=%s" \ - $(MOZILLA_VERSION) $(installdir) $(TARGET_XPCOM_ABI)> $@ - -+SKIP_GRE_REGISTRATION = yes - ifndef SKIP_GRE_REGISTRATION - # to register xulrunner per-user, override this with $HOME/.gre.d - regdir = /etc/gre.d diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix index d39dfe3582e..55521a13f9c 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix @@ -36,7 +36,7 @@ let # -> http://get.adobe.com/flashplayer/ - version = "11.2.202.394"; + version = "11.2.202.400"; src = if stdenv.system == "x86_64-linux" then @@ -47,7 +47,7 @@ let else rec { inherit version; url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz"; - sha256 = "1w82kmda91xdsrqpkrbcbrzswnbfszy0x9hvf9wf2h14isimdknx"; + sha256 = "043bzjcqxjkjk68kba5nk77m59k6g71h32bypjpnwaigdgbhafyl"; } else if stdenv.system == "i686-linux" then if debug then { @@ -58,7 +58,7 @@ let } else rec { inherit version; url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz"; - sha256 = "0c8wp4qn6k224krihxb08g7727wlklk9bl4h7nqp3cpp85x9hg97"; + sha256 = "1xvfzm926rj0l2mq2kybrvykrv7bjfl3m7p5mvhj1586a3x1gb6h"; } else throw "Flash Player is not supported on this platform"; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix index 8cda5ad5762..229aa4f23ba 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix @@ -1,20 +1,19 @@ { stdenv, fetchurl, pkgconfig, openssl, glib, libX11, gtk2, gettext, intltool }: -let version = "1.0.2"; in stdenv.mkDerivation rec { name = "fribid-${version}"; + version = "1.0.4"; builder = ./builder.sh; src = fetchurl { url = "https://fribid.se/releases/source/${name}.tar.bz2"; - sha256 = "d7cd9adf04fedf50b266a5c14ddb427cbb263d3bc160ee0ade03aca9d5356e5c"; + sha256 = "a679f3a0534d5f05fac10b16b49630a898c0b721cfa24d2c827fa45485476649"; }; buildInputs = [ pkgconfig openssl libX11 gtk2 glib gettext intltool ]; patches = [ ./translation-xgettext-to-intltool.patch ./plugin-linkfix.patch - ./emulated-version.patch ./ipc-lazytrace.patch ]; @@ -22,10 +21,15 @@ stdenv.mkDerivation rec { meta = { description = "A browser plugin to manage Swedish BankID:s"; + longDescription = '' + FriBID is an open source software for the Swedish e-id system + called BankID. FriBID also supports processor architectures and + Linux/BSD distributions that the official software doesn't + support. + ''; homepage = http://fribid.se; license = [ "GPLv2" "MPLv1" ]; maintainers = [ stdenv.lib.maintainers.edwtjo ]; platforms = with stdenv.lib.platforms; linux; }; } - diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix index 5b6b2176d47..105e5904715 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix @@ -8,9 +8,6 @@ stdenv.mkDerivation rec { sha256 = "0zkvqrzibrbljiccvz3rhbmgifxadlrfjylqpz48jnjx9kggynms"; }; - patches = - stdenv.lib.optional (browser ? isFirefox3Like) ./icecat3-idldir.patch; - postConfigure = (if browser ? isFirefox3Like then '' # Cause a rebuild of these file from the IDL file, needed for GNU IceCat 3 diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix index 80b09bcd8a8..201a6b947c1 100644 --- a/pkgs/applications/networking/browsers/opera/default.nix +++ b/pkgs/applications/networking/browsers/opera/default.nix @@ -81,6 +81,6 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.opera.com; - description = "The Opera web browser"; + description = "Web browser"; }; } diff --git a/pkgs/applications/networking/browsers/vimb/default.nix b/pkgs/applications/networking/browsers/vimb/default.nix index 7c5b983f1b4..996bda67323 100644 --- a/pkgs/applications/networking/browsers/vimb/default.nix +++ b/pkgs/applications/networking/browsers/vimb/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { name = "vimb-${version}"; - version = "2.6"; + version = "2.7"; src = fetchurl { url = "https://github.com/fanglingsu/vimb/archive/${version}.tar.gz"; - sha256 = "1g6zm5fk3k52jk3vbbzj7rm0kanykd4zgxrqhlvj3qzj2nsn4a21"; + sha256 = "05i5p9827rgga4h27qy3qh4ps8aynkcr55j681ddhn16ci3dk8zr"; }; # Nixos default ca bundle diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix index 4329308ba04..fe93a072b2c 100644 --- a/pkgs/applications/networking/cluster/mesos/default.nix +++ b/pkgs/applications/networking/cluster/mesos/default.nix @@ -18,7 +18,7 @@ in stdenv.mkDerivation { buildInputs = [ makeWrapper autoconf automake libtool curl sasl jdk maven - python wrapPython boto distutils-cfg + python wrapPython boto distutils-cfg setuptools ]; propagatedBuildInputs = [ diff --git a/pkgs/applications/networking/ids/daq/default.nix b/pkgs/applications/networking/ids/daq/default.nix index 36571809a37..c80d55f9412 100644 --- a/pkgs/applications/networking/ids/daq/default.nix +++ b/pkgs/applications/networking/ids/daq/default.nix @@ -1,12 +1,12 @@ {stdenv, fetchurl, flex, bison, libpcap}: stdenv.mkDerivation rec { - name = "daq-2.0.0"; + name = "daq-2.0.2"; src = fetchurl { name = "${name}.tar.gz"; - url = http://www.snort.org/downloads/2311; - sha256 = "0f0w5jfmx0n2sms4f2mfg984a27r7qh927vkd7fclvx9cbiwibzv"; + url = "http://www.snort.org/downloads/snort/${name}.tar.gz"; + sha256 = "1a39qbm9nc05yr8llawl7mz0ny1fci4acj9c2k1h4klrqikiwpfn"; }; buildInputs = [ flex bison libpcap ]; diff --git a/pkgs/applications/networking/ids/snort/default.nix b/pkgs/applications/networking/ids/snort/default.nix index 858e99c245b..65e46176fcb 100644 --- a/pkgs/applications/networking/ids/snort/default.nix +++ b/pkgs/applications/networking/ids/snort/default.nix @@ -1,18 +1,18 @@ {stdenv, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison}: stdenv.mkDerivation rec { - name = "snort-2.9.4.6"; + name = "snort-2.9.6.2"; src = fetchurl { name = "${name}.tar.gz"; - url = http://www.snort.org/downloads/2320; - sha256 = "1g5kn36l67a5m95h2shqwqbbjb6rgl3sf1bciakal2l4n6857ang"; + url = "http://www.snort.org/downloads/snort/${name}.tar.gz"; + sha256 = "0xsxbd5h701ncnhn9sf7zkmzravlqhn1182whinphfjjw72py7cf"; }; buildInputs = [ libpcap pcre libdnet daq zlib flex bison ]; meta = { - description = "Snort is an open source network intrusion prevention and detection system (IDS/IPS)"; + description = "Network intrusion prevention and detection system (IDS/IPS)"; homepage = http://www.snort.org; license = stdenv.lib.licenses.gpl2; }; diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix index ec614bf4b8c..cf10c1e6fe2 100644 --- a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix +++ b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "BitlBee, an IRC to other chat networks gateway"; + description = "IRC instant messaging gateway"; longDescription = '' BitlBee brings IM (instant messaging) to IRC clients. It's a diff --git a/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix b/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix index 9cf2558ef32..909d6404193 100644 --- a/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix +++ b/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix @@ -41,7 +41,7 @@ rec { name = "carrier-2.5.0"; meta = { - description = "Carrier - PidginIM GUI fork with user-friendly development model"; + description = "PidginIM GUI fork with user-friendly development model"; homepage = http://funpidgin.sf.net; }; } // (if externalPurple2 then { diff --git a/pkgs/applications/networking/instant-messengers/ekiga/default.nix b/pkgs/applications/networking/instant-messengers/ekiga/default.nix index 07730a8c0ee..e46956f3cca 100644 --- a/pkgs/applications/networking/instant-messengers/ekiga/default.nix +++ b/pkgs/applications/networking/instant-messengers/ekiga/default.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "Ekiga SIP client"; + description = "VOIP/Videoconferencing app with full SIP and H.323 support"; maintainers = [ maintainers.raskin ]; platforms = platforms.linux; }; diff --git a/pkgs/applications/networking/instant-messengers/fuze/default.nix b/pkgs/applications/networking/instant-messengers/fuze/default.nix index 9ccada87fe2..41ffb421f8e 100644 --- a/pkgs/applications/networking/instant-messengers/fuze/default.nix +++ b/pkgs/applications/networking/instant-messengers/fuze/default.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation { ''; meta = { - description = "Fuze for Linux"; + description = "Internet and mobile based unified communications solutions (Linux client)"; homepage = http://www.fuzebox.com; license = "unknown"; }; diff --git a/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/pkgs/applications/networking/instant-messengers/hipchat/default.nix index 6da12905f56..cf4c2e22ad6 100644 --- a/pkgs/applications/networking/instant-messengers/hipchat/default.nix +++ b/pkgs/applications/networking/instant-messengers/hipchat/default.nix @@ -94,7 +94,7 @@ stdenv.mkDerivation { ''; meta = { - description = "HipChat Desktop Client"; + description = "Desktop client for HipChat services"; homepage = http://www.hipchat.com; license = stdenv.lib.licenses.unfree; platforms = [ "i686-linux" "x86_64-linux" ]; diff --git a/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/pkgs/applications/networking/instant-messengers/mcabber/default.nix index cae0213c6be..362bf0de977 100644 --- a/pkgs/applications/networking/instant-messengers/mcabber/default.nix +++ b/pkgs/applications/networking/instant-messengers/mcabber/default.nix @@ -1,19 +1,22 @@ {stdenv, fetchurl, openssl, ncurses, pkgconfig, glib, loudmouth}: -stdenv.mkDerivation { - - name = "mcabber-0.10.1"; +stdenv.mkDerivation rec { + name = "mcabber-${version}"; + version = "0.10.3"; src = fetchurl { - url = "http://mcabber.com/files/mcabber-0.10.1.tar.bz2"; + url = "http://mcabber.com/files/mcabber-${version}.tar.bz2"; sha256 = "1248cgci1v2ypb90wfhyipwdyp1wskn3gzh78af5ai1a4w5rrjq0"; }; - meta = { homepage = "http://mcabber.com/"; - description = "Small Jabber console client"; - }; - buildInputs = [openssl ncurses pkgconfig glib loudmouth]; configureFlags = "--with-openssl=${openssl}"; + + meta = with stdenv.lib; { + homepage = http://mcabber.com/; + description = "Small Jabber console client"; + license = licenses.gpl2; + maintainers = with maintainers; [ pSub ]; + }; } diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix index 6e6fd6d0eb6..814a191c457 100644 --- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix +++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix @@ -52,7 +52,7 @@ stdenv.mkDerivation rec { + (lib.optionalString (gnutls != null) " --enable-gnutls=yes --enable-nss=no") ; meta = with stdenv.lib; { - description = "Pidgin IM - XMPP(Jabber), AIM/ICQ, IRC, SIP etc client"; + description = "Multi-protocol instant messaging client"; homepage = http://pidgin.im; license = licenses.gpl2Plus; platforms = platforms.linux; diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix index eb052af1369..d7dc755e9ab 100644 --- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix +++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix @@ -77,6 +77,7 @@ stdenv.mkDerivation rec { description = "The TeamSpeak voice communication tool"; homepage = http://teamspeak.com/; license = "http://www.teamspeak.com/?page=downloads&type=ts3_linux_client_latest"; + maintainers = [ stdenv.lib.maintainers.lhvwb ]; platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/applications/networking/instant-messengers/toxic/default.nix b/pkgs/applications/networking/instant-messengers/toxic/default.nix index b3e1ff74cfa..f7d1a010ed8 100644 --- a/pkgs/applications/networking/instant-messengers/toxic/default.nix +++ b/pkgs/applications/networking/instant-messengers/toxic/default.nix @@ -2,16 +2,13 @@ , libtoxcore, openal, libvpx, freealut, libconfig, pkgconfig }: let - version = "7566aa9d26"; - date = "20140728"; -in -stdenv.mkDerivation rec { - name = "toxic-${date}-${version}"; + version = "0.4.7"; +in stdenv.mkDerivation rec { + name = "toxic-${version}"; src = fetchurl { - url = "https://github.com/Tox/toxic/tarball/${version}"; - name = "${name}.tar.gz"; - sha256 = "13vns0qc0hxhab6rpz0irnzgv42mp3v1nrbwm90iymhf4xkc9nwa"; + url = "https://github.com/Tox/toxic/archive/v${version}.tar.gz"; + sha256 = "0rcrcqzvicz7787fa4b7f68qnwq6wqbyrm8ii850f1w7vnxq9dkq"; }; makeFlags = [ "-Cbuild" "VERSION=${version}" ]; diff --git a/pkgs/applications/networking/instant-messengers/utox/default.nix b/pkgs/applications/networking/instant-messengers/utox/default.nix index 823df5c27a2..b49d5f40a86 100644 --- a/pkgs/applications/networking/instant-messengers/utox/default.nix +++ b/pkgs/applications/networking/instant-messengers/utox/default.nix @@ -8,8 +8,8 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "notsecure"; repo = "uTox"; - rev = "d70f9bfb4ff8a156ec35803da6226b0ac8c47961"; - sha256 = "10cvsg0phv0jsrdl3zkk339c4bzn3xc82q1x90h6gcnrbg4vzmp0"; + rev = "a840b459210694fdf02671567bf33845a11d4c83"; + sha256 = "0jr0xajkv5vkq8gxspnq09k4bzc98fr3hflnz8a3lrwajyhrnpvp"; }; buildInputs = [ pkgconfig libtoxcore dbus libvpx libX11 openal freetype diff --git a/pkgs/applications/networking/jmeter/default.nix b/pkgs/applications/networking/jmeter/default.nix index 2d5e6b66bf0..77aeb64478f 100644 --- a/pkgs/applications/networking/jmeter/default.nix +++ b/pkgs/applications/networking/jmeter/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Apache JMeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance."; + description = "A 100% pure Java desktop application designed to load test functional behavior and measure performance"; longDescription = '' The Apache JMeter desktop application is open source software, a 100% pure Java application designed to load test functional behavior and diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix index 7a1eddfa869..75ccb93ca95 100644 --- a/pkgs/applications/networking/mailreaders/notmuch/default.nix +++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix @@ -70,8 +70,7 @@ stdenv.mkDerivation rec { checkTarget = "test"; meta = { - description = "Notmuch -- The mail indexer"; - longDescription = ""; + description = "Mail indexer"; license = stdenv.lib.licenses.gpl3; maintainers = with stdenv.lib.maintainers; [ chaoflow garbas ]; platforms = stdenv.lib.platforms.gnu; diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix index 15acd5af8df..6add41edf7c 100644 --- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix +++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix @@ -37,6 +37,8 @@ , pango }: +assert stdenv.isLinux; + let version = "31.0"; sources = [ diff --git a/pkgs/applications/networking/mumble/murmur.nix b/pkgs/applications/networking/mumble/murmur.nix index 17254aa2fdd..1c06392f60b 100644 --- a/pkgs/applications/networking/mumble/murmur.nix +++ b/pkgs/applications/networking/mumble/murmur.nix @@ -12,11 +12,11 @@ let in stdenv.mkDerivation rec { name = "murmur-" + version; - version = "1.2.6"; + version = "1.2.8"; src = fetchurl { url = "mirror://sourceforge/mumble/mumble-${version}.tar.gz"; - sha256 = "1zxnbwbd81p7lvscghlpkad8kynh9gbf1nhc092sp64pp37xwv47"; + sha256 = "0ng1xd7i0951kqnd9visf84y2dcwia79a1brjwfvr1wnykgw6bsc"; }; patchPhase = optional iceSupport '' diff --git a/pkgs/applications/networking/newsreaders/slrn/default.nix b/pkgs/applications/networking/newsreaders/slrn/default.nix index c933460af43..fe13c756bd7 100644 --- a/pkgs/applications/networking/newsreaders/slrn/default.nix +++ b/pkgs/applications/networking/newsreaders/slrn/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation { buildInputs = [ slang ncurses ]; meta = { - description = "The slrn (S-Lang read news) newsreader"; + description = "Text-based newsreader"; homepage = http://slrn.sourceforge.net/index.html; license = stdenv.lib.licenses.gpl2; }; diff --git a/pkgs/applications/networking/p2p/gnunet/default.nix b/pkgs/applications/networking/p2p/gnunet/default.nix index 6c28840f7e5..052c5311253 100644 --- a/pkgs/applications/networking/p2p/gnunet/default.nix +++ b/pkgs/applications/networking/p2p/gnunet/default.nix @@ -54,7 +54,7 @@ stdenv.mkDerivation rec { */ meta = { - description = "GNUnet, GNU's decentralized anonymous and censorship-resistant P2P framework"; + description = "GNU's decentralized anonymous and censorship-resistant P2P framework"; longDescription = '' GNUnet is a framework for secure peer-to-peer networking that diff --git a/pkgs/applications/networking/remote/rdesktop/default.nix b/pkgs/applications/networking/remote/rdesktop/default.nix index 9ba9e3aa3fc..7d2b7990d3f 100644 --- a/pkgs/applications/networking/remote/rdesktop/default.nix +++ b/pkgs/applications/networking/remote/rdesktop/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation (rec { pname = "rdesktop"; - version = "1.8.1"; + version = "1.8.2"; name = "${pname}-${version}"; src = fetchurl { url = "mirror://sourceforge/${pname}/${name}.tar.gz"; - sha256 = "0il248cdsxvwjsl4bswf27ld9r1a7d48jf6bycr86kf3i55q7k3n"; + sha256 = "0y0s0qjfsflp4drcn75ykx6as7mn13092bcvlp2ibhilkpa27gzv"; }; buildInputs = [openssl libX11]; @@ -19,6 +19,9 @@ stdenv.mkDerivation (rec { ]; meta = { - description = "rdesktop is an open source client for Windows Terminal Services"; + description = "Open source client for Windows Terminal Services"; + homepage = http://www.rdesktop.org/; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.gpl2; }; }) diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix index 8fb929d53e1..8304f6dc091 100644 --- a/pkgs/applications/networking/remote/remmina/default.nix +++ b/pkgs/applications/networking/remote/remmina/default.nix @@ -44,7 +44,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { license = stdenv.lib.licenses.gpl2; homepage = "http://remmina.sourceforge.net/"; - description = "Remmina is a remote desktop client written in GTK+"; + description = "Remote desktop client written in GTK+"; maintainers = []; platforms = platforms.linux; }; diff --git a/pkgs/applications/networking/sync/backintime/common.nix b/pkgs/applications/networking/sync/backintime/common.nix new file mode 100644 index 00000000000..fa722747e5f --- /dev/null +++ b/pkgs/applications/networking/sync/backintime/common.nix @@ -0,0 +1,46 @@ +{stdenv, fetchurl, makeWrapper, gettext, python2, python2Packages }: + +stdenv.mkDerivation rec { + version = "1.0.36"; + + name = "backintime-common-${version}"; + + src = fetchurl { + url = "https://launchpad.net/backintime/1.0/${version}/+download/backintime-${version}.tar.gz"; + md5 = "28630bc7bd5f663ba8fcfb9ca6a742d8"; + }; + + # because upstream tarball has no top-level directory. + # https://bugs.launchpad.net/backintime/+bug/1359076 + sourceRoot = "."; + + buildInputs = [ makeWrapper gettext python2 python2Packages.dbus ]; + + installFlags = [ "DEST=$(out)" ]; + + preConfigure = "cd common"; + + dontAddPrefix = true; + + preFixup = + '' + substituteInPlace "$out/bin/backintime" \ + --replace "=\"/usr/share" "=\"$prefix/share" + wrapProgram "$out/bin/backintime" \ + --prefix PYTHONPATH : "$PYTHONPATH" \ + --prefix PATH : "$prefix/bin:$PATH" + ''; + + meta = { + homepage = https://launchpad.net/backintime; + description = "Simple backup tool for Linux"; + license = stdenv.lib.licenses.gpl2; + maintainers = [ stdenv.lib.maintainers.DamienCassou ]; + platforms = stdenv.lib.platforms.all; + longDescription = '' + Back In Time is a simple backup tool (on top of rsync) for Linux + inspired from “flyback project” and “TimeVault”. The backup is + done by taking snapshots of a specified set of directories. + ''; + }; +} \ No newline at end of file diff --git a/pkgs/applications/networking/sync/backintime/gnome.nix b/pkgs/applications/networking/sync/backintime/gnome.nix new file mode 100644 index 00000000000..56d0f6c5481 --- /dev/null +++ b/pkgs/applications/networking/sync/backintime/gnome.nix @@ -0,0 +1,37 @@ +{stdenv, fetchurl, makeWrapper, gettext, python2, python2Packages, gnome2, pkgconfig, pygobject, glib, libtool, backintime-common }: + +stdenv.mkDerivation rec { + inherit (backintime-common) version src sourceRoot installFlags meta; + + name = "backintime-gnome-${version}"; + + buildInputs = [ makeWrapper gettext python2 python2Packages.dbus backintime-common python2Packages.pygtk python2Packages.notify gnome2.gnome_python ]; + + preConfigure = "cd gnome"; + configureFlags = [ "--no-check" ]; + + preFixup = + '' + # Make sure all Python files refer to $prefix/share/backintime + # instead of config.get_app_path() which returns the path of the + # 'common' module, not the path of the 'gnome' module. + filelist=$(mktemp) + find "$out/share/backintime/gnome" -name "*.py" -print0 > $filelist + while IFS="" read -r -d "" file <&9; do + substituteInPlace "$file" \ + --replace "glade_file = os.path.join(config.get_app_path()," \ + "glade_file = os.path.join('$prefix/share/backintime'," \ + --replace "glade_file = os.path.join(self.config.get_app_path()," \ + "glade_file = os.path.join('$prefix/share/backintime'," + done 9< "$filelist" + rm "$filelist" + + substituteInPlace "$out/bin/backintime-gnome" \ + --replace "=\"/usr/share" "=\"$prefix/share" + + wrapProgram "$out/bin/backintime-gnome" \ + --prefix PYTHONPATH : "${gnome2.gnome_python}/lib/python2.7/site-packages/gtk-2.0:${backintime-common}/share/backintime/common:$PYTHONPATH" \ + --prefix PATH : "${backintime-common}/bin:$PATH" + ''; + +} diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix index 226b7f6d097..64bf287b44f 100644 --- a/pkgs/applications/networking/syncthing/default.nix +++ b/pkgs/applications/networking/syncthing/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://syncthing.net/; - description = "Syncthing replaces Dropbox and BitTorrent Sync with something open, trustworthy and decentralized"; + description = "Replaces Dropbox and BitTorrent Sync with something open, trustworthy and decentralized"; license = with stdenv.lib.licenses; mit; maintainers = with stdenv.lib.maintainers; [ matejc ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix index 9c255f493d3..8d6de404f98 100644 --- a/pkgs/applications/office/gnucash/default.nix +++ b/pkgs/applications/office/gnucash/default.nix @@ -57,7 +57,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - description = "GnuCash, a personal and small-business financial-accounting application"; + description = "Personal and small-business financial-accounting application"; longDescription = '' GnuCash is personal and small-business financial-accounting software, diff --git a/pkgs/applications/office/homebank/default.nix b/pkgs/applications/office/homebank/default.nix index 007e093378d..0fbd2e39812 100644 --- a/pkgs/applications/office/homebank/default.nix +++ b/pkgs/applications/office/homebank/default.nix @@ -2,7 +2,7 @@ let download_root = "http://homebank.free.fr/public/"; - name = "homebank-4.5.5"; + name = "homebank-4.6.3"; lastrelease = download_root + name + ".tar.gz"; oldrelease = download_root + "old/" + name + ".tar.gz"; in @@ -12,7 +12,7 @@ stdenv.mkDerivation { src = fetchurl { urls = [ lastrelease oldrelease ]; - sha256 = "05k4497qsb6fzr662h9yxz1amsavd287wh0sabrpr9jdbh3jcfkg"; + sha256 = "0j39788xz9m7ic277phffznbl35c1dm1g7dgq83va9nni6vipqzn"; }; buildInputs = [ pkgconfig gtk libofx intltool ]; diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix index 41cf1ebc33d..bf6728abe63 100644 --- a/pkgs/applications/office/libreoffice/default.nix +++ b/pkgs/applications/office/libreoffice/default.nix @@ -24,8 +24,8 @@ let langsSpaces = stdenv.lib.concatStringsSep " " langs; major = "4"; minor = "3"; - patch = "0"; - tweak = "4"; + patch = "1"; + tweak = "2"; subdir = "${major}.${minor}.${patch}"; version = "${subdir}${if tweak == "" then "" else "."}${tweak}"; @@ -79,14 +79,14 @@ let translations = fetchSrc { name = "translations"; - sha256 = "1l445284mih0c7d6v3ps1piy5pbjvisyrjjvlrqizvwxqm7bxpr1"; + sha256 = "0vj1fpr99cb124hag0hijpp3pfbbi0gak56qiikxbwbq7mab6p9h"; }; # TODO: dictionaries help = fetchSrc { name = "help"; - sha256 = "0avsc11d4nmycsxvadr0xcd8z9506sjcc89hgmliqlmhmw48ax7y"; + sha256 = "1q0vzfla764zjz6xcx6r4nc8rikwb3pr2jsraj28hhwr5b26gdfz"; }; }; @@ -96,7 +96,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; - sha256 = "1r605nwjdq20qd96chqic1bjkw7y36wmpg2lzzvv5sz6gw12rzi8"; + sha256 = "0s1j5y1gfyf3r53bbqnzirx17p49i8ah07737nrzik0ggps3lgd5"; }; # Openoffice will open libcups dynamically, so we link it directly @@ -252,7 +252,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - description = "LibreOffice is a comprehensive, professional-quality productivity suite, a variant of openoffice.org"; + description = "Comprehensive, professional-quality productivity suite, a variant of openoffice.org"; homepage = http://libreoffice.org/; license = licenses.lgpl3; maintainers = [ maintainers.viric maintainers.raskin ]; diff --git a/pkgs/applications/office/libreoffice/libreoffice-srcs.nix b/pkgs/applications/office/libreoffice/libreoffice-srcs.nix index 4e7dacfe0a9..6110a54feb5 100644 --- a/pkgs/applications/office/libreoffice/libreoffice-srcs.nix +++ b/pkgs/applications/office/libreoffice/libreoffice-srcs.nix @@ -184,6 +184,11 @@ md5 = "1e9ddfe25ac9577da709d7b2ea36f939"; brief = false; } +{ + name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz"; + md5 = "edc4d741888bc0d38e32dbaa17149596"; + brief = false; +} { name = "libfreehand-0.1.0.tar.bz2"; md5 = "5f029fef73e42a2c2ae4524a7513f97d"; @@ -326,8 +331,8 @@ } { name = "libgltf-0.0.0.tar.bz2"; - md5 = "3d9ea1f2828c46f8ba94b88a87b3326d"; - brief = false; + md5 = "ca5436e916bfe70694adfe2607782786"; + brief = true; subDir = "libgltf/"; } { diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix new file mode 100644 index 00000000000..cca52be1a17 --- /dev/null +++ b/pkgs/applications/office/zim/default.nix @@ -0,0 +1,82 @@ +{ stdenv, lib, fetchurl, buildPythonPackage, pythonPackages, pygtk, pygobject, python }: + +# +# TODO: Declare configuration options for the following optional dependencies: +# - File stores: hg, git, bzr +# - Included plugins depenencies: dot, ditaa, dia, any other? +# - pyxdg: Need to make it work first (see setupPyInstallFlags). +# + +buildPythonPackage rec { + name = "zim-${version}"; + version = "0.60"; + namePrefix = ""; + + src = fetchurl { + url = "http://zim-wiki.org/downloads/zim-0.61.tar.gz"; + sha256 = "0jncxkf83bwra3022jbvjfwhk5w8az0jlwr8nsvm7wa1zfrajhsq"; + }; + + propagatedBuildInputs = [ pythonPackages.sqlite3 pygtk /*pythonPackages.pyxdg*/ pygobject ]; + + preBuild = '' + mkdir -p $tmp/home + export HOME="$tmp/home" + ''; + + setupPyInstallFlags = ["--skip-xdg-cmd"]; + + # + # Exactly identical to buildPythonPackage's version but for the + # `--old-and-unmanagable`, which I removed. This was removed because + # this is a setuptools specific flag and as zim is overriding + # the install step, setuptools could not perform its monkey + # patching trick for the command. Alternate solutions were to + # + # - Remove the custom install step (tested as working but + # also remove the possibility of performing the xdg-cmd + # stuff). + # - Explicitly replace distutils import(s) by their setuptools + # equivalent (untested). + # + # Both solutions were judged unsatisfactory as altering the code + # would be required. + # + # Note that a improved solution would be to expose the use of + # the `--old-and-unmanagable` flag as an option of passed to the + # buildPythonPackage function. + # + # Also note that I stripped all comments. + # + installPhase = '' + runHook preInstall + + mkdir -p "$out/lib/${python.libPrefix}/site-packages" + + export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH" + + ${python}/bin/${python.executable} setup.py install \ + --install-lib=$out/lib/${python.libPrefix}/site-packages \ + --prefix="$out" ${lib.concatStringsSep " " setupPyInstallFlags} + + eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth + if [ -e "$eapth" ]; then + # move colliding easy_install.pth to specifically named one + mv "$eapth" $(dirname "$eapth")/${name}.pth + fi + + rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py* + + runHook postInstall + ''; + + # Testing fails. + doCheck = false; + + meta = { + description = "A desktop wiki"; + homepage = http://zim-wiki.org; + license = stdenv.lib.licenses.gpl2Plus; + }; +} + diff --git a/pkgs/applications/science/astronomy/gravit/default.nix b/pkgs/applications/science/astronomy/gravit/default.nix index 696890f95f1..1be1328da27 100644 --- a/pkgs/applications/science/astronomy/gravit/default.nix +++ b/pkgs/applications/science/astronomy/gravit/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://gravit.slowchop.com"; - description = "A beautiful OpenGL-based gravity simulator"; + description = "Beautiful OpenGL-based gravity simulator"; license = stdenv.lib.licenses.gpl2; longDescription = '' diff --git a/pkgs/applications/science/biology/emboss/default.nix b/pkgs/applications/science/biology/emboss/default.nix index 96181c8ee6c..c9974660da3 100644 --- a/pkgs/applications/science/biology/emboss/default.nix +++ b/pkgs/applications/science/biology/emboss/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { # ''; meta = { - description = "EMBOSS is 'The European Molecular Biology Open Software Suite'"; + description = "The European Molecular Biology Open Software Suite"; longDescription = ''EMBOSS is a free Open Source software analysis package specially developed for the needs of the molecular biology (e.g. EMBnet) user community, including libraries. The software automatically copes with diff --git a/pkgs/applications/science/logic/alt-ergo/default.nix b/pkgs/applications/science/logic/alt-ergo/default.nix index 2a95d0cd65b..62359baf2bc 100644 --- a/pkgs/applications/science/logic/alt-ergo/default.nix +++ b/pkgs/applications/science/logic/alt-ergo/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { [ ocaml findlib ocamlgraph zarith lablgtk gmp ]; meta = { - description = "Alt-Ergo is a high-performance theorem prover and SMT solver"; + description = "High-performance theorem prover and SMT solver"; homepage = "http://alt-ergo.ocamlpro.com/"; license = stdenv.lib.licenses.cecill-c; # LGPL-2 compatible platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/science/logic/coq/HEAD.nix b/pkgs/applications/science/logic/coq/HEAD.nix index 8e6fde6bc24..ed922b3aedb 100644 --- a/pkgs/applications/science/logic/coq/HEAD.nix +++ b/pkgs/applications/science/logic/coq/HEAD.nix @@ -3,7 +3,7 @@ {stdenv, fetchgit, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}: let - version = "8.5pre-8bc01590"; + version = "8.5pre-c70d5b2"; buildIde = lablgtk != null; ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else ""; idePath = if buildIde then '' @@ -16,17 +16,20 @@ stdenv.mkDerivation { src = fetchgit { url = git://scm.gforge.inria.fr/coq/coq.git; - rev = "8bc0159095cb0230a50c55a1611c8b77134a6060"; - sha256 = "1cp4hbk9jw78y03vwz099yvixax161h60hsbyvwiwz2z5czjxzcv"; + rev = "c70d5b27ad5872c74e20b6c997383fb4462a68dc"; + sha256 = "02wks2aivgjcf4h3ss9rn683vyawz8gl8rbysdq7awxh062316l2"; }; buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ]; + patches = [ ./no-codesign.patch ]; + postPatch = '' UNAME=$(type -tp uname) RM=$(type -tp rm) substituteInPlace configure --replace "/bin/uname" "$UNAME" substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM" + substituteInPlace Makefile.build --replace "ifeq (\$(ARCH),Darwin)" "ifeq (\$(ARCH),Darwinx)" ''; preConfigure = '' diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix index 678ec6a4b04..da77a4c5a9a 100644 --- a/pkgs/applications/science/logic/coq/default.nix +++ b/pkgs/applications/science/logic/coq/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation { buildFlags = "revision coq coqide"; meta = { - description = "Coq proof assistant"; + description = "Formal proof management system"; longDescription = '' Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems diff --git a/pkgs/applications/science/logic/coq/no-codesign.patch b/pkgs/applications/science/logic/coq/no-codesign.patch new file mode 100644 index 00000000000..0f917fbf56d --- /dev/null +++ b/pkgs/applications/science/logic/coq/no-codesign.patch @@ -0,0 +1,19 @@ +diff --git a/Makefile.build b/Makefile.build +index 2963a3d..876479c 100644 +--- a/Makefile.build ++++ b/Makefile.build +@@ -101,13 +101,8 @@ BYTEFLAGS=$(CAMLDEBUG) $(USERFLAGS) + OPTFLAGS=$(CAMLDEBUGOPT) $(CAMLTIMEPROF) $(USERFLAGS) + DEPFLAGS= $(LOCALINCLUDES) -I ide -I ide/utils + +-ifeq ($(ARCH),Darwin) +-LINKMETADATA=-ccopt "-sectcreate __TEXT __info_plist config/Info-$(notdir $@).plist" +-CODESIGN=codesign -s - +-else + LINKMETADATA= + CODESIGN=true +-endif + + define bestocaml + $(if $(OPT),\ + diff --git a/pkgs/applications/science/logic/matita/default.nix b/pkgs/applications/science/logic/matita/default.nix index f601f97de62..0f393b419f1 100644 --- a/pkgs/applications/science/logic/matita/default.nix +++ b/pkgs/applications/science/logic/matita/default.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation { meta = { homepage = http://matita.cs.unibo.it/; - description = "Matita is an experimental, interactive theorem prover"; + description = "Experimental, interactive theorem prover"; license = stdenv.lib.licenses.gpl2Plus; maintainers = [ stdenv.lib.maintainers.roconnor ]; }; diff --git a/pkgs/applications/science/logic/prooftree/default.nix b/pkgs/applications/science/logic/prooftree/default.nix index caaf4a94a1e..94b1d590762 100644 --- a/pkgs/applications/science/logic/prooftree/default.nix +++ b/pkgs/applications/science/logic/prooftree/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation (rec { configureFlags = [ "--prefix" "$(out)" ]; meta = { - description = "Prooftree is a program for proof-tree visualization"; + description = "A program for proof-tree visualization"; longDescription = '' Prooftree is a program for proof-tree visualization during interactive proof development in a theorem prover. It is currently being developed diff --git a/pkgs/applications/science/logic/tptp/default.nix b/pkgs/applications/science/logic/tptp/default.nix index ef00b135c27..d4c62858753 100644 --- a/pkgs/applications/science/logic/tptp/default.nix +++ b/pkgs/applications/science/logic/tptp/default.nix @@ -11,14 +11,14 @@ let (builtins.attrNames (builtins.removeAttrs x helperArgNames)); sourceInfo = rec { baseName="TPTP"; - version="6.0.0"; + version="6.1.0"; name="${baseName}-${version}"; urls= [ "http://www.cs.miami.edu/~tptp/TPTP/Distribution/TPTP-v${version}.tgz" "http://www.cs.miami.edu/~tptp/TPTP/Archive/TPTP-v${version}/TPTP-v${version}.tgz" ]; - hash="0jnjkqdz937c7mkxvh9wc3byw5h1k19jss058fbzdxxc2hkwq1af"; + hash="054p0kx9qh619ixslxpb4qcwvcqr4kan154b3a87b546b78k7kv4"; }; in rec { diff --git a/pkgs/applications/science/logic/twelf/default.nix b/pkgs/applications/science/logic/twelf/default.nix index c6c7e4d9c1a..f9680b47579 100644 --- a/pkgs/applications/science/logic/twelf/default.nix +++ b/pkgs/applications/science/logic/twelf/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Twelf logic proof assistant"; + description = "Logic proof assistant"; longDescription = '' Twelf is a language used to specify, implement, and prove properties of deductive systems such as programming languages and logics. Large diff --git a/pkgs/applications/science/math/fricas/default.nix b/pkgs/applications/science/math/fricas/default.nix index 1817c43ed7b..6e187843404 100644 --- a/pkgs/applications/science/math/fricas/default.nix +++ b/pkgs/applications/science/math/fricas/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://fricas.sourceforge.net/; - description = "Fricas CAS"; + description = "An advanced computer algebra system"; license = stdenv.lib.licenses.bsd3; hydraPlatforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix index c4352c46f92..1439d327d6e 100644 --- a/pkgs/applications/science/math/glsurf/default.nix +++ b/pkgs/applications/science/math/glsurf/default.nix @@ -26,6 +26,6 @@ stdenv.mkDerivation { meta = { homepage = http://www.lama.univ-savoie.fr/~raffalli/glsurf; - description = "GlSurf: a program to draw implicit surfaces and curves"; + description = "A program to draw implicit surfaces and curves"; }; } diff --git a/pkgs/applications/science/math/jags/default.nix b/pkgs/applications/science/math/jags/default.nix index a93386149bd..785c2460bb4 100644 --- a/pkgs/applications/science/math/jags/default.nix +++ b/pkgs/applications/science/math/jags/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { buildInputs = [gfortran liblapack blas]; meta = { - description = "JAGS: Just Another Gibbs Sampler"; + description = "Just Another Gibbs Sampler"; license = "GPL2"; homepage = http://www-ice.iarc.fr/~martyn/software/jags/; maintainers = [stdenv.lib.maintainers.andres]; diff --git a/pkgs/applications/science/math/maxima/default.nix b/pkgs/applications/science/math/maxima/default.nix index 096796a859d..3277d94d99b 100644 --- a/pkgs/applications/science/math/maxima/default.nix +++ b/pkgs/applications/science/math/maxima/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation { enableParallelBuilding = true; meta = { - description = "Maxima computer algebra system"; + description = "Computer algebra system"; homepage = "http://maxima.sourceforge.net"; license = stdenv.lib.licenses.gpl2; diff --git a/pkgs/applications/science/math/pari/default.nix b/pkgs/applications/science/math/pari/default.nix index 576a28b054f..e59bb9fe666 100644 --- a/pkgs/applications/science/math/pari/default.nix +++ b/pkgs/applications/science/math/pari/default.nix @@ -1,11 +1,12 @@ { stdenv, fetchurl, gmp, readline }: stdenv.mkDerivation rec { - name = "pari-2.5.5"; + version = "2.7.1"; + name = "pari-${version}"; src = fetchurl { url = "http://pari.math.u-bordeaux.fr/pub/pari/unix/${name}.tar.gz"; - sha256 = "058nw1fhggy7idii4f124ami521lv3izvngs9idfz964aks8cvvn"; + sha256 = "1gj1rddi22hinzwy7r6hljgbi252wwwyd6gapg4hvcn0ycc7jqyc"; }; buildInputs = [gmp readline]; @@ -21,5 +22,9 @@ stdenv.mkDerivation rec { license = "GPLv2+"; maintainers = with stdenv.lib.maintainers; [ertes raskin]; platforms = stdenv.lib.platforms.linux; + + inherit version; + downloadPage = "http://pari.math.u-bordeaux.fr/download.html"; + updateWalker = true; }; } diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix index 7020de0bca8..0898b458593 100644 --- a/pkgs/applications/science/misc/boinc/default.nix +++ b/pkgs/applications/science/misc/boinc/default.nix @@ -3,12 +3,12 @@ mesa, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK, xcbutil, sqlite, gtk, patchelf, libXScrnSaver, libnotify, libX11, libxcb }: stdenv.mkDerivation rec { - name = "boinc-7.2.42"; + name = "boinc-7.4.14"; src = fetchgit { url = "git://boinc.berkeley.edu/boinc-v2.git"; - rev = "dd0d630882547c123ca0f8fda7a62e058d60f6a9"; - sha256 = "1zifpi3mjgaj68fba6kammp3x7z8n2x164zz6fj91xfiapnan56j"; + rev = "fb31ab18f94f3b5141bea03e8537d76c606cd276"; + sha256 = "1465zl8l87fm1ps5f2may6mcc3pp40mpd6wphpxnwwk1lmv48x96"; }; buildInputs = [ libtool automake autoconf m4 pkgconfig curl mesa libXmu libXi diff --git a/pkgs/applications/science/misc/fityk/default.nix b/pkgs/applications/science/misc/fityk/default.nix index db79839ba66..4c93eef2b1c 100644 --- a/pkgs/applications/science/misc/fityk/default.nix +++ b/pkgs/applications/science/misc/fityk/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation { buildInputs = [wxGTK30 boost lua zlib bzip2 xylib readline gnuplot ]; meta = { - description = "Fityk -- curve fitting and peak fitting software"; + description = "Curve fitting and peak fitting software"; license = "GPL2"; homepage = http://fityk.nieto.pl/; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/science/misc/simgrid/default.nix b/pkgs/applications/science/misc/simgrid/default.nix index 29a7caf769b..7656668f056 100644 --- a/pkgs/applications/science/misc/simgrid/default.nix +++ b/pkgs/applications/science/misc/simgrid/default.nix @@ -67,7 +67,7 @@ stdenv.mkDerivation rec { doCheck = false; meta = { - description = "SimGrid, a simulator for distributed applications in heterogeneous environments"; + description = "Simulator for distributed applications in heterogeneous environments"; longDescription = '' SimGrid is a toolkit that provides core functionalities for the diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix index b9abf7b55b4..879690bc91e 100644 --- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix +++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = { homepage = "http://www.gromacs.org"; license = "GPLv2"; - description = "The GROMACS molecular dynamics software package"; + description = "Molecular dynamics software package"; longDescription = '' GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems diff --git a/pkgs/applications/science/spyder/default.nix b/pkgs/applications/science/spyder/default.nix index 1079a153ca1..806d2f546cf 100644 --- a/pkgs/applications/science/spyder/default.nix +++ b/pkgs/applications/science/spyder/default.nix @@ -43,7 +43,7 @@ buildPythonPackage rec { ''; meta = with stdenv.lib; { - description = "Scientific PYthon Development EnviRonment (SPYDER)"; + description = "Scientific python development environment"; longDescription = '' Spyder (previously known as Pydee) is a powerful interactive development environment for the Python language with advanced editing, interactive diff --git a/pkgs/applications/version-management/darcs/default.nix b/pkgs/applications/version-management/darcs/default.nix index d53b38c28c3..ff5c3456e22 100644 --- a/pkgs/applications/version-management/darcs/default.nix +++ b/pkgs/applications/version-management/darcs/default.nix @@ -1,24 +1,24 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! { cabal, curl, extensibleExceptions, filepath, hashedStorage -, haskeline, html, HTTP, mmap, mtl, network, parsec, random -, regexCompat, tar, terminfo, text, utf8String, vector, zlib +, haskeline, html, HTTP, mmap, mtl, network, networkUri, parsec +, random, regexCompat, tar, terminfo, text, utf8String, vector +, zlib }: cabal.mkDerivation (self: { pname = "darcs"; - version = "2.8.4"; - sha256 = "164zclgib9ql4rqykpdhhk2bad0m5v0k0iwzsj0z7nax5nxlvarz"; + version = "2.8.5"; + sha256 = "16g3ayw0wwhkjpprlkzi971ibs4dp152bmaa487512cwb3ni0hq6"; isLibrary = true; isExecutable = true; + doCheck = false; buildDepends = [ extensibleExceptions filepath hashedStorage haskeline html HTTP - mmap mtl network parsec random regexCompat tar terminfo text - utf8String vector zlib + mmap mtl network networkUri parsec random regexCompat tar terminfo + text utf8String vector zlib ]; extraLibraries = [ curl ]; - jailbreak = true; - doCheck = false; postInstall = '' mkdir -p $out/etc/bash_completion.d mv contrib/darcs_completion $out/etc/bash_completion.d/darcs diff --git a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix index 62132271ec9..7224d8c6900 100644 --- a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix @@ -17,8 +17,8 @@ cabal.mkDerivation (self: { pname = "git-annex"; - version = "5.20140817"; - sha256 = "0cly19rd250qiikzszgad2r5xz570kr00vcb8ij6icbm53pw3hxc"; + version = "5.20140831"; + sha256 = "0s2pc8bm3c79dsbafwp2pc5yghzh6vdzs9sj0mfq6rxiv27wrrwq"; isLibrary = false; isExecutable = true; buildDepends = [ diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix index a4d16e46060..877c65afccf 100644 --- a/pkgs/applications/version-management/git-and-tools/git/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git/default.nix @@ -133,7 +133,7 @@ stdenv.mkDerivation { meta = { homepage = http://git-scm.com/; - description = "Git, a popular distributed version control system"; + description = "Distributed version control system"; license = stdenv.lib.licenses.gpl2Plus; longDescription = '' diff --git a/pkgs/applications/version-management/gource/default.nix b/pkgs/applications/version-management/gource/default.nix index 13c55476774..afe0ac71ea4 100644 --- a/pkgs/applications/version-management/gource/default.nix +++ b/pkgs/applications/version-management/gource/default.nix @@ -3,11 +3,12 @@ }: stdenv.mkDerivation rec { - name = "gource-0.40"; + version = "0.42"; + name = "gource-${version}"; src = fetchurl { - url = "http://gource.googlecode.com/files/${name}.tar.gz"; - sha256 = "04nirh07xjslqsph557as4s50nlf91bi6v2l7vmbifmkdf90m2cw"; + url = "https://github.com/acaudwell/Gource/releases/download/${name}/${name}.tar.gz"; + sha256 = "08ab57z44y8b5wxg1193j6hiy50njbpi6dwafjh6nb0apcq8ziz5"; }; buildInputs = [ diff --git a/pkgs/applications/version-management/guitone/default.nix b/pkgs/applications/version-management/guitone/default.nix index a396765e918..135e7c7e1ef 100644 --- a/pkgs/applications/version-management/guitone/default.nix +++ b/pkgs/applications/version-management/guitone/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchmtn, qt4 }: +{ stdenv, fetchurl, fetchmtn, qt4, pkgconfig, graphviz }: let version = "1.0-mtn-head"; in stdenv.mkDerivation rec { @@ -11,12 +11,12 @@ stdenv.mkDerivation rec { src = fetchmtn { dbs = ["mtn://code.monotone.ca/guitone"]; - selector = "2777cdef424c65df93fa1ff181f02ee30d4901ab"; - sha256 = "918d36a83060b84efa0ee0fe0fd058f1c871c91156d91366e2e979c886ff4271"; + selector = "3a728afdbd3943b1d86c2a249b1e2ede7bf64c27"; + sha256 = "01vs8m00phs5pl75mjkpdarynfpkqrg0qf4rsn95czi3q6nxiaq5"; branch = "net.venge.monotone.guitone"; }; - buildInputs = [ qt4 ]; + buildInputs = [ qt4 pkgconfig graphviz ]; prefixKey="PREFIX="; configureScript = "qmake guitone.pro"; diff --git a/pkgs/applications/version-management/rcs/default.nix b/pkgs/applications/version-management/rcs/default.nix index e71d23132ac..823638669b6 100644 --- a/pkgs/applications/version-management/rcs/default.nix +++ b/pkgs/applications/version-management/rcs/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.gnu.org/software/rcs/; - description = "GNU RCS, a revision control system"; + description = "Revision control system"; longDescription = '' The GNU Revision Control System (RCS) manages multiple revisions of files. RCS automates the storing, retrieval, logging, diff --git a/pkgs/applications/video/gnash/default.nix b/pkgs/applications/video/gnash/default.nix index 06122619066..515e2591461 100644 --- a/pkgs/applications/video/gnash/default.nix +++ b/pkgs/applications/video/gnash/default.nix @@ -103,7 +103,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.gnu.org/software/gnash/; - description = "GNU Gnash, a libre SWF (Flash) movie player"; + description = "A libre SWF (Flash) movie player"; longDescription = '' Gnash is a GNU Flash movie player. Flash is an animation file format diff --git a/pkgs/applications/video/key-mon/default.nix b/pkgs/applications/video/key-mon/default.nix index cb00ac81384..57c8ca574b4 100644 --- a/pkgs/applications/video/key-mon/default.nix +++ b/pkgs/applications/video/key-mon/default.nix @@ -3,12 +3,12 @@ buildPythonPackage rec { name = "key-mon-${version}"; - version = "1.16"; + version = "1.17"; namePrefix = ""; src = fetchurl { url = "http://key-mon.googlecode.com/files/${name}.tar.gz"; - sha256 = "1pfki1fyh3q29sj6kq1chhi1h2v9ki6sp09qyww59rjraypvzsis"; + sha256 = "1liz0dxcqmchbnl1xhlxkqm3gh76wz9jxdxn9pa7dy77fnrjkl5q"; }; propagatedBuildInputs = diff --git a/pkgs/applications/video/kino/default.nix b/pkgs/applications/video/kino/default.nix index 16bd57bef34..7dd089537b7 100644 --- a/pkgs/applications/video/kino/default.nix +++ b/pkgs/applications/video/kino/default.nix @@ -85,7 +85,7 @@ stdenv.mkDerivation { meta = { - description = "Kino is a non-linear DV editor for GNU/Linux"; + description = "Non-linear DV editor for GNU/Linux"; homepage = http://www.kinodv.org/; license = stdenv.lib.licenses.gpl2; }; diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix index ed64448c13a..e0ab4582cd8 100644 --- a/pkgs/applications/video/mkvtoolnix/default.nix +++ b/pkgs/applications/video/mkvtoolnix/default.nix @@ -15,14 +15,18 @@ }: stdenv.mkDerivation rec { - name = "mkvtoolnix-6.5.0"; + version = "7.1.0"; + name = "mkvtoolnix-${version}"; src = fetchurl { url = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${name}.tar.xz"; - sha256 = "0a3h878bsjbpb2r7b528xzyqzl8r82yhrniry9bnhmw7rcl53bd8"; + sha256 = "06xqy4f7gi1xj0yqb6y1wmxwvsxfxal2plfsbl33dkwd0srixj06"; }; - buildInputs = [ libmatroska flac libvorbis file boost xdg_utils expat wxGTK zlib ruby gettext pkgconfig curl ]; + buildInputs = [ + libmatroska flac libvorbis file boost xdg_utils + expat wxGTK zlib ruby gettext pkgconfig curl + ]; configureFlags = "--with-boost-libdir=${boost}/lib"; buildPhase = '' @@ -36,5 +40,7 @@ stdenv.mkDerivation rec { meta = { description = "Cross-platform tools for Matroska"; homepage = http://www.bunkus.org/videotools/mkvtoolnix/; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; }; } diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix index 4eec9afdbf3..db1ced49166 100644 --- a/pkgs/applications/video/mpv/default.nix +++ b/pkgs/applications/video/mpv/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, fetchgit, freetype, pkgconfig, freefont_ttf, ffmpeg, libass , lua, perl, libpthreadstubs , lua5_sockets -, python3, docutils, which +, python3, docutils, which, lib , x11Support ? true, libX11 ? null, libXext ? null, mesa ? null, libXxf86vm ? null , xineramaSupport ? true, libXinerama ? null , xvSupport ? true, libXv ? null @@ -20,8 +20,9 @@ # For screenshots , libpngSupport ? true, libpng ? null # for Youtube support -, quviSupport? false, libquvi ? null -, cacaSupport? false, libcaca ? null +, quviSupport ? false, libquvi ? null +, cacaSupport ? false, libcaca ? null +, vaapiSupport ? false, libva ? null }: assert x11Support -> (libX11 != null && libXext != null && mesa != null && libXxf86vm != null); @@ -57,11 +58,11 @@ in stdenv.mkDerivation rec { name = "mpv-${version}"; - version = "0.4.1"; + version = "0.5.0"; src = fetchurl { url = "https://github.com/mpv-player/mpv/archive/v${version}.tar.gz"; - sha256 = "0wqjyzw3kk854zj263k7jyykzfaz1g27z50aqrd26hylg8k135cn"; + sha256 = "17mmc6xm8yir2p379h00q3wy7rplz2s31h6sxswmzbh72xf10g96"; }; buildInputs = with stdenv.lib; @@ -84,6 +85,7 @@ stdenv.mkDerivation rec { ++ optional quviSupport libquvi ++ optional sdl2Support SDL2 ++ optional cacaSupport libcaca + ++ optional vaapiSupport libva ; nativeBuildInputs = [ python3 lua perl ]; @@ -97,7 +99,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; configurePhase = '' - python3 ${waf} configure --prefix=$out + python3 ${waf} configure --prefix=$out ${lib.optionalString vaapiSupport "--enable-vaapi"} patchShebangs TOOLS ''; @@ -124,9 +126,9 @@ stdenv.mkDerivation rec { }; } -# Heavily based on mplayer2 expression +# Many thanks @matejc for this update: 0.5.0 and vaapi (experimental) # TODO: Wayland support -# TODO: investigate libquvi support +# TODO: investigate libquvi problems (related to Youtube support) # TODO: investigate caca support # TODO: investigate lua5_sockets bug diff --git a/pkgs/applications/video/xbmc/default.nix b/pkgs/applications/video/xbmc/default.nix index 3232267fa94..875ed48c102 100644 --- a/pkgs/applications/video/xbmc/default.nix +++ b/pkgs/applications/video/xbmc/default.nix @@ -34,11 +34,11 @@ assert vdpauSupport -> libvdpau != null && ffmpeg.vdpauSupport; assert pulseSupport -> pulseaudio != null; stdenv.mkDerivation rec { - name = "xbmc-13.1"; + name = "xbmc-13.2"; src = fetchurl { - url = "https://github.com/xbmc/xbmc/archive/13.1-Gotham.tar.gz"; - sha256 = "0y56c5csfp8xhk088g47m3bzrri73z868yfx6b04gnrdmr760jrl"; + url = "https://github.com/xbmc/xbmc/archive/13.2-Gotham.tar.gz"; + sha256 = "11g5a3h6kxz1vmnhagfjhg9nqf11wy0wzqqf4h338jh3lgzmvgxc"; }; buildInputs = [ @@ -96,7 +96,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://xbmc.org/; - description = "XBMC Media Center"; + description = "Media center"; license = "GPLv2"; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.iElectric ]; diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix index 4571e979c6c..f4d329221ff 100644 --- a/pkgs/applications/virtualization/docker/default.nix +++ b/pkgs/applications/virtualization/docker/default.nix @@ -3,11 +3,11 @@ btrfsProgs, iptables, bash, e2fsprogs}: stdenv.mkDerivation rec { name = "docker-${version}"; - version = "1.1.2"; + version = "1.2.0"; src = fetchurl { url = "https://github.com/dotcloud/docker/archive/v${version}.tar.gz"; - sha256 = "1pa6k3gx940ap3r96xdry6apzkm0ymqra92b2mrp25b25264cqcy"; + sha256 = "1nk74p9k17bllgw4992ixx7z3w87icp2wabbpbgfyi20k2q9mayp"; }; buildInputs = [ makeWrapper go sqlite lxc iproute bridge_utils devicemapper btrfsProgs iptables e2fsprogs]; @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { buildPhase = '' patchShebangs ./hack export AUTO_GOPATH=1 - export DOCKER_GITCOMMIT="d84a070" + export DOCKER_GITCOMMIT="fa7b24f" ./hack/make.sh dynbinary ''; diff --git a/pkgs/applications/virtualization/nova/default.nix b/pkgs/applications/virtualization/nova/default.nix index c1ef20b7aa0..0023cf44f33 100644 --- a/pkgs/applications/virtualization/nova/default.nix +++ b/pkgs/applications/virtualization/nova/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { pythonPath = with pythonPackages; [ setuptools eventlet greenlet gflags netaddr sqlalchemy carrot routes - paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate + paste_deploy m2crypto ipy twisted sqlalchemy_migrate distutils_extra simplejson readline glance cheetah lockfile httplib2 # !!! should libvirt be a build-time dependency? Note that # libxml2Python is a dependency of libvirt.py. diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix index 9df6967704a..e451ff79a94 100644 --- a/pkgs/applications/virtualization/virt-manager/default.nix +++ b/pkgs/applications/virtualization/virt-manager/default.nix @@ -19,7 +19,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ eventlet greenlet gflags netaddr sqlalchemy carrot routes - paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate + paste_deploy m2crypto ipy twisted sqlalchemy_migrate distutils_extra simplejson readline glance cheetah lockfile httplib2 urlgrabber virtinst pyGtkGlade pythonDBus gnome_python pygobject3 libvirt libxml2Python ipaddr vte diff --git a/pkgs/applications/virtualization/virtinst/default.nix b/pkgs/applications/virtualization/virtinst/default.nix index 8e2da5c3b76..6441bb88423 100644 --- a/pkgs/applications/virtualization/virtinst/default.nix +++ b/pkgs/applications/virtualization/virtinst/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pythonPackages, intltool, libvirt, libxml2Python, curl }: +{ stdenv, fetchurl, pythonPackages, intltool, libxml2Python, curl }: with stdenv.lib; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { pythonPath = with pythonPackages; [ setuptools eventlet greenlet gflags netaddr sqlalchemy carrot routes - paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate + paste_deploy m2crypto ipy twisted sqlalchemy_migrate distutils_extra simplejson readline glance cheetah lockfile httplib2 # !!! should libvirt be a build-time dependency? Note that # libxml2Python is a dependency of libvirt.py. diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index 682e7159ac8..f3e7bea3ca9 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -11,7 +11,7 @@ with stdenv.lib; let - version = "4.3.12"; # changes ./guest-additions as well + version = "4.3.14"; # changes ./guest-additions as well forEachModule = action: '' for mod in \ @@ -31,13 +31,13 @@ let ''; # See https://github.com/NixOS/nixpkgs/issues/672 for details - extpackRevision = "93733"; + extpackRevision = "95030"; extensionPack = requireFile rec { name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack"; # IMPORTANT: Hash must be base16 encoded because it's used as an input to # VBoxExtPackHelperApp! # Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.3.10/SHA256SUMS - sha256 = "f931ce41b2cc9500dc43aba004630cf7bb7050ba737eae38827e91062f072d1f"; + sha256 = "b965c3565e7933bc61019d2992f4da084944cfd9e809fbeaff330f4743d47537"; message = '' In order to use the extension pack, you need to comply with the VirtualBox Personal Use and Evaluation License (PUEL) by downloading the related binaries from: @@ -56,7 +56,7 @@ in stdenv.mkDerivation { src = fetchurl { url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; - sha256 = "db84ddf47d1ecd316ec46417595f0252e3ec2f67e35e1e17320aba87b7c2934f"; + sha256 = "bc893adde4449a2d35d8b4d0b8b247f0f2ac62a434fd8a8f7c54f613a100855a"; }; buildInputs = diff --git a/pkgs/applications/window-managers/ratpoison/default.nix b/pkgs/applications/window-managers/ratpoison/default.nix index 65264c20db3..0eb28464e59 100644 --- a/pkgs/applications/window-managers/ratpoison/default.nix +++ b/pkgs/applications/window-managers/ratpoison/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://www.nongnu.org/ratpoison/"; - description = "Ratpoison, a simple mouse-free tiling window manager"; + description = "Simple mouse-free tiling window manager"; license = stdenv.lib.licenses.gpl2Plus; longDescription = '' diff --git a/pkgs/build-support/fetchbzr/nix-prefetch-bzr b/pkgs/build-support/fetchbzr/nix-prefetch-bzr index 2f46819323f..8143fca7025 100755 --- a/pkgs/build-support/fetchbzr/nix-prefetch-bzr +++ b/pkgs/build-support/fetchbzr/nix-prefetch-bzr @@ -43,11 +43,10 @@ fi # If we don't know the hash or a path with that hash doesn't exist, # download the file and add it to the store. if test -z "$finalPath"; then - tmpPath=/tmp/bzr-checkout-tmp-$$ - tmpFile=$tmpPath/$dstFile - mkdir $tmpPath + tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/bzr-checkout-tmp-XXXXXXXX")" + trap "rm -rf \"$tmpPath\"" EXIT - trap "rm -rf $tmpPath" EXIT + tmpFile="$tmpPath/$dstFile" # Perform the checkout. bzr -Ossl.cert_reqs=none export $revarg --format=dir "$tmpFile" "$url" diff --git a/pkgs/build-support/fetchcvs/nix-prefetch-cvs b/pkgs/build-support/fetchcvs/nix-prefetch-cvs index 29e0d29b52e..f9ed8ffa066 100755 --- a/pkgs/build-support/fetchcvs/nix-prefetch-cvs +++ b/pkgs/build-support/fetchcvs/nix-prefetch-cvs @@ -20,7 +20,7 @@ fi mkTempDir() { - tmpPath=$(mktemp -d -t nix-prefetch-cvs-XXXXXXXX) + tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/nix-prefetch-cvs-XXXXXXXX")" trap removeTempDir EXIT SIGINT SIGQUIT } diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git index b3cd3488735..4f9dd2ac272 100755 --- a/pkgs/build-support/fetchgit/nix-prefetch-git +++ b/pkgs/build-support/fetchgit/nix-prefetch-git @@ -256,11 +256,11 @@ else # download the file and add it to the store. if test -z "$finalPath"; then - tmpPath=/tmp/git-checkout-tmp-$$ - tmpFile=$tmpPath/git-export - mkdir $tmpPath $tmpFile + tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/git-checkout-tmp-XXXXXXXX")" + trap "rm -rf \"$tmpPath\"" EXIT - trap "rm -rf $tmpPath" EXIT + tmpFile="$tmpPath/git-export" + mkdir "$tmpFile" # Perform the checkout. clone_user_rev "$tmpFile" "$url" "$rev" diff --git a/pkgs/build-support/fetchhg/nix-prefetch-hg b/pkgs/build-support/fetchhg/nix-prefetch-hg index 075dbc9c367..a8916176f8a 100755 --- a/pkgs/build-support/fetchhg/nix-prefetch-hg +++ b/pkgs/build-support/fetchhg/nix-prefetch-hg @@ -35,11 +35,10 @@ fi # download the file and add it to the store. if test -z "$finalPath"; then - tmpPath=/tmp/hg-checkout-tmp-$$ - tmpArchive=$tmpPath/hg-archive - mkdir $tmpPath + tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/hg-checkout-tmp-XXXXXXXX")" + trap "rm -rf \"$tmpPath\"" EXIT - trap "rm -rf $tmpPath" EXIT + tmpArchive="$tmpPath/hg-archive" # Perform the checkout. if [[ $url != /* ]]; then diff --git a/pkgs/build-support/fetchsvn/nix-prefetch-svn b/pkgs/build-support/fetchsvn/nix-prefetch-svn index a2ee3ac6052..03b9eb9a03d 100755 --- a/pkgs/build-support/fetchsvn/nix-prefetch-svn +++ b/pkgs/build-support/fetchsvn/nix-prefetch-svn @@ -41,11 +41,10 @@ fi # If we don't know the hash or a path with that hash doesn't exist, # download the file and add it to the store. if test -z "$finalPath"; then - tmpPath=/tmp/svn-checkout-tmp-$$ - tmpFile=$tmpPath/$dstFile - mkdir $tmpPath + tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/svn-checkout-tmp-XXXXXXXX")" + trap "rm -rf \"$tmpPath\"" EXIT - trap "rm -rf $tmpPath" EXIT + tmpFile="$tmpPath/$dstFile" # Perform the checkout. if test "$NIX_PREFETCH_SVN_LEAVE_DOT_SVN" != 1 diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh index 41f2a59246d..dd43068be27 100644 --- a/pkgs/build-support/setup-hooks/make-wrapper.sh +++ b/pkgs/build-support/setup-hooks/make-wrapper.sh @@ -96,7 +96,10 @@ filterExisting() { # Syntax: wrapProgram wrapProgram() { local prog="$1" - local hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped + local progBasename=$(basename $prog) + local hiddenDir="$(dirname $prog)/../wrapped-bin/.$progBasename-wrapped-bin" + mkdir -p $hiddenDir + local hidden="$(cd "$hiddenDir"; pwd)/$progBasename" mv $prog $hidden makeWrapper $hidden $prog "$@" } diff --git a/pkgs/build-support/upstream-updater/update-walker-service-specific.sh b/pkgs/build-support/upstream-updater/update-walker-service-specific.sh index 28c28f69587..b66001073f2 100644 --- a/pkgs/build-support/upstream-updater/update-walker-service-specific.sh +++ b/pkgs/build-support/upstream-updater/update-walker-service-specific.sh @@ -8,6 +8,10 @@ SF_version_dir () { version_link 'http://sourceforge.net/.+/'"$1"'[0-9.]+/$' } +SF_version_tarball () { + version_link '[.]tar[.].*/download$' +} + GH_latest () { prefetch_command_rel ../fetchgit/nix-prefetch-git revision "$("$(dirname "$0")/urls-from-page.sh" "$CURRENT_URL/commits" | grep /commit/ | head -n 1 | xargs basename )" diff --git a/pkgs/build-support/upstream-updater/update-walker.sh b/pkgs/build-support/upstream-updater/update-walker.sh index e11eb722e0e..e60499b60f2 100755 --- a/pkgs/build-support/upstream-updater/update-walker.sh +++ b/pkgs/build-support/upstream-updater/update-walker.sh @@ -280,6 +280,12 @@ do_overwrite_just_version () { set_var_value sha256 $CURRENT_HASH } +minimize_overwrite() { + do_overwrite(){ + do_overwrite_just_version + } +} + process_config () { CONFIG_DIR="$(directory_of "$1")" CONFIG_NAME="$(basename "$1")" @@ -297,9 +303,7 @@ process_config () { exit 1; } [ -z "$(retrieve_meta fullRegenerate)" ] && eval " - do_overwrite(){ - do_overwrite_just_version - } + minimize_overwrite " fi ensure_attribute_name diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix index d4c0b4a6461..2eefa31691e 100644 --- a/pkgs/data/documentation/man-pages/default.nix +++ b/pkgs/data/documentation/man-pages/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - name = "man-pages-3.70"; + name = "man-pages-3.71"; src = fetchurl { url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz"; - sha256 = "1qnhlicshlcz2da9k9czp75cfj7a6y90m0bhik7gzxa3s3b4f43j"; + sha256 = "981038ecffcf6db490c0bc4359f489c318654068a6ba5aa086962ac41b0d2894"; }; preBuild = diff --git a/pkgs/data/fonts/cm-unicode/default.nix b/pkgs/data/fonts/cm-unicode/default.nix index b8f7f7c6d3e..d8f6f7f8351 100644 --- a/pkgs/data/fonts/cm-unicode/default.nix +++ b/pkgs/data/fonts/cm-unicode/default.nix @@ -9,17 +9,16 @@ let buildInputs = map (n: builtins.getAttr n x) (builtins.attrNames (builtins.removeAttrs x helperArgNames)); sourceInfo = rec { - version="0.6.3a"; + version = "0.7.0"; baseName="cm-unicode"; name="${baseName}-${version}"; - url="ftp://canopus.iacp.dvo.ru/pub/Font/cm_unicode/${name}-otf.tar.gz"; - hash="1018gmvh7wl7sm6f3fqd917syd1yy0gz3pxmrc9lkxckcr7wz0zp"; + url="mirror://sourceforge/${baseName}/${baseName}/${version}/${name}-otf.tar.xz"; }; in rec { src = a.fetchurl { url = sourceInfo.url; - sha256 = sourceInfo.hash; + sha256 = "0a0w9qm9g8qz2xh3lr61bj1ymqslqsvk4w2ybc3v2qa89nz7x2jl"; }; inherit (sourceInfo) name version; @@ -34,11 +33,8 @@ rec { ]; platforms = with a.lib.platforms; all; - }; - passthru = { - updateInfo = { - downloadPage = "http://canopus.iacp.dvo.ru/~panov/cm-unicode/download.html"; - }; + downloadPage = "http://sourceforge.net/projects/cm-unicode/files/cm-unicode/"; + inherit version; }; }) x diff --git a/pkgs/data/fonts/cm-unicode/default.upstream b/pkgs/data/fonts/cm-unicode/default.upstream new file mode 100644 index 00000000000..bc24cd919b2 --- /dev/null +++ b/pkgs/data/fonts/cm-unicode/default.upstream @@ -0,0 +1,7 @@ +attribute_name cm_unicode +url http://sourceforge.net/projects/cm-unicode/files/cm-unicode/ +SF_version_dir +version_link '[-]otf[.]tar[.][a-z0-9]+/download$' +SF_redirect +ensure_hash +do_overwrite() { do_overwrite_just_version; } diff --git a/pkgs/data/fonts/comic-neue/default.nix b/pkgs/data/fonts/comic-neue/default.nix new file mode 100644 index 00000000000..91608d17db4 --- /dev/null +++ b/pkgs/data/fonts/comic-neue/default.nix @@ -0,0 +1,33 @@ +{stdenv, fetchurl, unzip}: + +stdenv.mkDerivation rec { + name = "comic-neue-1.1"; + + src = fetchurl { + url = "http://comicneue.com/comic-neue-1.1.zip"; + sha256 = "f9442fc42252db62ea788bd0247ae0e74571678d1dbd3e3edc229389050d6923"; + }; + + buildInputs = [unzip]; + phases = [ "unpackPhase" "installPhase" ]; + sourceRoot = name; + + installPhase = '' + mkdir -p $out/share/fonts/truetype + cp -v *.ttf $out/share/fonts/truetype + ''; + + meta = with stdenv.lib; { + homepage = http://comicneue.com/; + description = "A casual type face: Make your lemonade stand look like a fortune 500 company"; + longDescription = '' + It is inspired by Comic Sans but more regular. The font was + designed by Craig Rozynski. It is available in two variants: + Comic Neue and Comic Neue Angular. The former having round and + the latter angular terminals. Both variants come in Light, + Regular, and Bold weights with Oblique variants. + ''; + license = licenses.cc0; + platforms = platforms.all; + }; +} diff --git a/pkgs/data/fonts/fira/default.nix b/pkgs/data/fonts/fira/default.nix new file mode 100644 index 00000000000..56fa9f51a47 --- /dev/null +++ b/pkgs/data/fonts/fira/default.nix @@ -0,0 +1,36 @@ +{stdenv, fetchurl, unzip }: + +stdenv.mkDerivation rec { + name = "fira-3.111"; + + src = fetchurl { + url = "http://www.carrois.com/wordpress/downloads/fira_3_1/FiraFonts3111.zip"; + sha256 = "3ced3df236b0b0eec1b390885c53ac02f3e3f830e9449414230717334a0b2457"; + }; + + buildInputs = [unzip]; + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir -p $out/share/fonts/opentype + find . -name "*.otf" -exec cp -v {} $out/share/fonts/opentype \; + ''; + + meta = with stdenv.lib; { + homepage = http://www.carrois.com/fira-3-1/; + description = "Sans-serif and monospace font for Firefox OS"; + longDescription = '' + Fira Sans is a sans-serif font designed by Erik Spiekermann, + Ralph du Carrois, Anja Meiners and Botio Nikoltchev of Carrois + Type Design for Mozilla Firefox OS. It is closely related to + Spiekermann's FF Meta typeface. Available in Two, Four, Eight, + Hair, Thin, Ultra Light, Extra Light, Light, Book, Regular, + Medium, Semi Bold, Bold, Extra Bold, Heavy weights with + corresponding italic versions. Fira Mono is a matching + monospace variant of Fira Sans. It is available in regular, and + bold weights. + ''; + license = licenses.ofl; + platforms = platforms.all; + }; +} diff --git a/pkgs/data/fonts/symbola/default.nix b/pkgs/data/fonts/symbola/default.nix index 993a4c4f46d..b324e52d021 100644 --- a/pkgs/data/fonts/symbola/default.nix +++ b/pkgs/data/fonts/symbola/default.nix @@ -1,40 +1,39 @@ -{stdenv, fetchurl}: +{stdenv, fetchurl, unzip }: stdenv.mkDerivation rec { name = "symbola-7.12"; - ttf = fetchurl { - url = "http://users.teilar.gr/~g1951d/Symbola.ttf"; - sha256 = "7acc058bd4e56cc986b2a46420520f59be402c3565c202b5dcebca7f3bfd8b5a"; + src = fetchurl { + url = "http://users.teilar.gr/~g1951d/Symbola.zip"; + sha256 = "19q5wcqk1rz8ps7jvvx1rai6x8ais79z71sm8d36hvsk2vr135al"; }; docs_pdf = fetchurl { url = "http://users.teilar.gr/~g1951d/Symbola.pdf"; - sha256 = "11bb082ba5c2780a6f94a9bcddf4f314a54e2650bb63ce3081d1dc867c5e6843"; - }; - docs_docx = fetchurl { - url = "http://users.teilar.gr/~g1951d/Symbola.docx"; - sha256 = "4f0ab494e1e5a7aac147aa7bb8b8bdba7278aee2da942a35f995feb9051515b9"; + sha256 = "11h2202p1p4np4nv5m8k41wk7431p2m35sjpmbi1ygizakkbla3p"; }; + buildInputs = [ unzip ]; + phases = [ "installPhase" ]; installPhase = '' + unzip ${src} mkdir -p $out/share/fonts/truetype - cp -v "$ttf" $out/share/fonts/truetype/"${ttf.name}" + cp -v Symbola.ttf $out/share/fonts/truetype/ + cp -v Symbola_hint.ttf $out/share/fonts/truetype/ mkdir -p "$out/doc/${name}" + cp -v Symbola.docx "$out/doc/${name}/" + cp -v Symbola.htm "$out/doc/${name}/" cp -v "$docs_pdf" "$out/doc/${name}/${docs_pdf.name}" - cp -v "$docs_docx" "$out/doc/${name}/${docs_docx.name}" ''; meta = { - description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode..."; - + description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode"; # In lieu of a licence: # Fonts in this site are offered free for any use; # they may be installed, embedded, opened, edited, modified, regenerated, posted, packaged and redistributed. - license = "Unicode Fonts for Ancient Scripts"; - + license = stdenv.lib.licenses.free; homepage = http://users.teilar.gr/~g1951d/; }; } diff --git a/pkgs/data/fonts/terminus-font/default.nix b/pkgs/data/fonts/terminus-font/default.nix index 3487a8012dc..fa9eb0ac42d 100644 --- a/pkgs/data/fonts/terminus-font/default.nix +++ b/pkgs/data/fonts/terminus-font/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, perl, bdftopcf, mkfontdir, mkfontscale }: stdenv.mkDerivation rec { - name = "terminus-font-4.38"; + name = "terminus-font-4.39"; src = fetchurl { url = "mirror://sourceforge/project/terminus-font/${name}/${name}.tar.gz"; - sha256 = "1dwpxmg0wiyhp7hh18mvw18gnf0y2jgbn80c4xya7rmb9mm8gx7n"; + sha256 = "1gzmn7zakvy6yrvmswyjfklnsvqrjm0imhq8rjws8rdkhqwkh21i"; }; buildInputs = [ perl bdftopcf mkfontdir mkfontscale ]; diff --git a/pkgs/data/misc/miscfiles/default.nix b/pkgs/data/misc/miscfiles/default.nix index db4d13b890f..a40856e5910 100644 --- a/pkgs/data/misc/miscfiles/default.nix +++ b/pkgs/data/misc/miscfiles/default.nix @@ -1,16 +1,17 @@ {stdenv, fetchurl}: stdenv.mkDerivation rec { - name = "miscfiles-1.4.2"; + name = "miscfiles-1.5"; src = fetchurl { url = "mirror://gnu/miscfiles/${name}.tar.gz"; - sha256 = "1rh10y63asyrqyp5mlmxy7y4kdp6svk2inws3y7mfx8lsrhcm6dn"; + sha256 = "005588vfrwx8ghsdv9p7zczj9lbc9a3r4m5aphcaqv8gif4siaka"; }; - meta = { + meta = with stdenv.lib; { homepage = http://www.gnu.org/software/miscfiles/; - license = stdenv.lib.licenses.gpl2Plus; + license = licenses.gpl2Plus; description = "Collection of files not of crucial importance for sysadmins"; + maintainers = with maintainers; [ pSub ]; }; } diff --git a/pkgs/desktops/e17/enlightenment/default.nix b/pkgs/desktops/e17/enlightenment/default.nix index 1c3edb07ecf..953c90e8003 100644 --- a/pkgs/desktops/e17/enlightenment/default.nix +++ b/pkgs/desktops/e17/enlightenment/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { --disable-illume2 ''; meta = { - description = "Enlightenment, the window manager"; + description = "A window manager"; longDescription = '' The Enlightenment Desktop shell provides an efficient yet breathtaking window manager based on the Enlightenment diff --git a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix index ed794715ff8..41ca17bd5e4 100644 --- a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix +++ b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, python, pkgconfig, libgnome, GConf, pygobject, pygtk, glib, gtk, pythonDBus}: +{ stdenv, fetchurl, python, pkgconfig, libgnome, GConf, pygobject, pygtk, glib, gtk, pythonDBus, gnome_vfs}: with stdenv.lib; @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { cp bonobo/*.{py,defs} $out/share/pygtk/2.0/defs/ ''; - buildInputs = [ python pkgconfig pygobject pygtk glib gtk GConf libgnome pythonDBus ]; + buildInputs = [ python pkgconfig pygobject pygtk glib gtk GConf libgnome pythonDBus gnome_vfs ]; doCheck = false; diff --git a/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix b/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix index b58aa99721e..983e7f416a6 100644 --- a/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix +++ b/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { homepage = https://wiki.gnome.org/Apps/Yelp; - description = "Yelp is the help viewer in Gnome."; + description = "The Gnome help viewer"; maintainers = with maintainers; [ lethalman ]; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix index 7ca35a8255f..401d5cf2f36 100644 --- a/pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix +++ b/pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix @@ -6,11 +6,11 @@ # use packaged gnome3.gnome_icon_theme_symbolic stdenv.mkDerivation rec { - name = "gitg-0.3.2"; + name = "gitg-3.13.91"; src = fetchurl { - url = "mirror://gnome/sources/gitg/0.3/${name}.tar.xz"; - sha256 = "03vc59d1r3326piqdph6qjqnc40chm1lpg52lpf8466ddjs0x8vp"; + url = "mirror://gnome/sources/gitg/3.13/${name}.tar.xz"; + sha256 = "1c2016grvgg5f3l5xkracz85rblsc1a4brzr6vgn6kh2h494rv37"; }; preCheck = '' diff --git a/pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix index 17c3b4fa0a8..82e2b585509 100644 --- a/pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix +++ b/pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix @@ -1,18 +1,20 @@ -{ stdenv, fetchurl, gnome3, libtool, pkgconfig +{ stdenv, fetchurl, gnome3, libtool, pkgconfig, vala , gtk_doc, gobjectIntrospection, libgit2, glib }: stdenv.mkDerivation rec { name = "libgit2-glib-${version}"; - version = "0.0.10"; + version = "0.0.20"; src = fetchurl { url = "https://github.com/GNOME/libgit2-glib/archive/v${version}.tar.gz"; - sha256 = "0zn3k85jw6yks8s5ca8dyh9mwh4if1lni9gz9bd5lqlpa803ixxs"; + sha256 = "1s2hj0ji73ishniqvr6mx90l1ji5jjwwrwhp91i87fxk0d3sry5x"; }; + + cmakeFlags = "-DTHREADSAFE=ON"; configureScript = "sh ./autogen.sh"; - buildInputs = [ gnome3.gnome_common libtool pkgconfig + buildInputs = [ gnome3.gnome_common libtool pkgconfig vala gtk_doc gobjectIntrospection libgit2 glib ]; meta = with stdenv.lib; { diff --git a/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix b/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix index f9fbbbe56c6..8cba366faae 100644 --- a/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix +++ b/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix @@ -5,11 +5,11 @@ , libcanberra_gtk3, bogofilter, gst_all_1, procps, p11_kit }: stdenv.mkDerivation rec { - name = "evolution-3.12.2"; + name = "evolution-3.12.5"; src = fetchurl { url = "mirror://gnome/sources/evolution/3.12/${name}.tar.xz"; - sha256 = "60742334aaf1e3b9f044c2003c44a37be5905b166e24580e9e6e6c5ae1b9f948"; + sha256 = "08y1qiydbbk4fq8rrql9sgbwsny8bwz6f7m5kbbj5zjqvf1baksj"; }; doCheck = true; diff --git a/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix b/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix index 0909a4239db..c65a28c3446 100644 --- a/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix +++ b/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix @@ -4,11 +4,11 @@ , gnome3, librsvg, gdk_pixbuf, file }: stdenv.mkDerivation rec { - name = "gedit-3.12.1"; + name = "gedit-3.12.2"; src = fetchurl { url = "mirror://gnome/sources/gedit/3.12/${name}.tar.xz"; - sha256 = "8e3edc62102934a8be708b0fdf27b86368fa9ede885628283bf8e91b26bbb67f"; + sha256 = "0lxnswqa0ysr57cqh062wp41sd76p6q7y3mnkl7rligd5c8hnikm"; }; propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; diff --git a/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix index d784544a183..c5f9bdb2774 100644 --- a/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix +++ b/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix @@ -4,11 +4,11 @@ , makeWrapper, itstool, gnome3, librsvg, gst_all_1 }: stdenv.mkDerivation rec { - name = "gnome-music-3.12.2"; + name = "gnome-music-3.12.2.1"; src = fetchurl { url = "mirror://gnome/sources/gnome-music/3.12/${name}.tar.xz"; - sha256 = "ec4807018166aabed0263cb3ffce672e1fc1a3e959f48a5ad48b8eb08ddb451a"; + sha256 = "1vwzjv5001pg37qc0sh4ph3srqwg3vgibbdlqpim9w2k70l9j34z"; }; propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; diff --git a/pkgs/desktops/gnome-3/3.12/core/empathy/default.nix b/pkgs/desktops/gnome-3/3.12/core/empathy/default.nix index 7fb341948be..c6ac93b1074 100644 --- a/pkgs/desktops/gnome-3/3.12/core/empathy/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/empathy/default.nix @@ -11,11 +11,11 @@ # TODO: enable more features stdenv.mkDerivation rec { - name = "empathy-3.12.2"; + name = "empathy-3.12.5"; src = fetchurl { url = "mirror://gnome/sources/empathy/3.12/${name}.tar.xz"; - sha256 = "414d0c6b1a30b1afbf35ad04b0b9ff3ada3e06fab797a50a7147cdfe0905e7cd"; + sha256 = "0rhgpiv75aafmdh6r7d4ci59lnxqmmwg9hvsa5b3mk7j2d2pma86"; }; propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard diff --git a/pkgs/desktops/gnome-3/3.12/core/folks/default.nix b/pkgs/desktops/gnome-3/3.12/core/folks/default.nix index 47b958002a3..7e3af8405a4 100644 --- a/pkgs/desktops/gnome-3/3.12/core/folks/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/folks/default.nix @@ -5,11 +5,11 @@ # TODO: enable more folks backends stdenv.mkDerivation rec { - name = "folks-0.9.6"; + name = "folks-0.9.8"; src = fetchurl { url = "mirror://gnome/sources/folks/0.9/${name}.tar.xz"; - sha256 = "a67e055b5a2724a34a80946e2940c4c0ad708cb1f4e0a09407c6b69a5e40267f"; + sha256 = "09cbs3ihcswpi1wg8xbjmkqjbhnxa1idy1fbzmz0gah7l5mxmlfj"; }; propagatedBuildInputs = [ glib gnome3.libgee sqlite ]; diff --git a/pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix index 666032f56a7..19d0c9c10e8 100644 --- a/pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix @@ -3,11 +3,11 @@ , itstool, gnome3, librsvg, gdk_pixbuf }: stdenv.mkDerivation rec { - name = "gnome-calculator-3.12.1"; + name = "gnome-calculator-3.12.3"; src = fetchurl { url = "mirror://gnome/sources/gnome-calculator/3.12/${name}.tar.xz"; - sha256 = "15a75bbe19f6d2280d864f0504f6fc5b1f148fea9738b5548b64b7b8c0c64740"; + sha256 = "0bn3agh3g22iradfpzkc19a2b33b1mbf0ciy1hf2sijrczi24410"; }; NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; diff --git a/pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix index 7377c839d1c..2a237b15c21 100644 --- a/pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, pkgconfig, file, gnome3, itstool, libxml2, intltool }: stdenv.mkDerivation rec { - name = "gnome-user-docs-3.12.1"; + name = "gnome-user-docs-3.12.2"; src = fetchurl { url = "mirror://gnome/sources/gnome-user-docs/3.12/${name}.tar.xz"; - sha256 = "bfd084d72c688d6efb0c34bb572a704cc2ce093c97a33390eaffb5e42158d418"; + sha256 = "1cj45lpa74vkbxyila3d6pn5m1gh51nljp9fjirxmzwi1h6wg7jd"; }; buildInputs = [ pkgconfig gnome3.yelp itstool libxml2 intltool ]; diff --git a/pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix index a8a1c244767..9076d5c5839 100644 --- a/pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix @@ -3,11 +3,11 @@ , gmime, json_glib, avahi, tracker, itstool }: stdenv.mkDerivation rec { - name = "grilo-plugins-0.2.12"; + name = "grilo-plugins-0.2.13"; src = fetchurl { url = "mirror://gnome/sources/grilo-plugins/0.2/${name}.tar.xz"; - sha256 = "15bed8a633c81b251920ab677d455433e641388f605277ca88e549cc89012b48"; + sha256 = "008jwm5ydl0k25p3d2fkcail40fj9y3qknihxb5fg941p8qlhm55"; }; installFlags = [ "GRL_PLUGINS_DIR=$(out)/lib/grilo-0.2" ]; diff --git a/pkgs/desktops/gnome-3/3.12/core/grilo/default.nix b/pkgs/desktops/gnome-3/3.12/core/grilo/default.nix index 6f1bfbbcfe9..9c0e3f9a0bc 100644 --- a/pkgs/desktops/gnome-3/3.12/core/grilo/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/grilo/default.nix @@ -2,11 +2,11 @@ , libxml2, gnome3, gobjectIntrospection, libsoup }: stdenv.mkDerivation rec { - name = "grilo-0.2.10"; + name = "grilo-0.2.11"; src = fetchurl { url = "mirror://gnome/sources/grilo/0.2/${name}.tar.xz"; - sha256 = "559a2470fe541b0090bcfdfac7a33e92dba967727bbab6d0eca70e5636a77b25"; + sha256 = "8a52c37521de80d6caf08a519a708489b9e2b097c2758a0acaab6fbd26d30ea6"; }; configureFlags = [ "--enable-grl-pls" "--enable-grl-net" ]; diff --git a/pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix index 4564b0d21e1..8a89425a696 100644 --- a/pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { name = "gtksourceview-${version}"; - version = "3.12.2"; + version = "3.12.3"; src = fetchurl { url = "mirror://gnome/sources/gtksourceview/3.12/gtksourceview-${version}.tar.xz"; - sha256 = "62a31eee00f633d7959efb7eec44049ebd0345d670265853dcd21c057f3f30ad"; + sha256 = "1xzmw9n9zbkaasl8xi7s5h49wiv5dq4qf8hr2pzjkack3ai5j6gk"; }; buildInputs = [ pkgconfig atk cairo glib gtk3 pango diff --git a/pkgs/desktops/gnome-3/3.12/core/totem/default.nix b/pkgs/desktops/gnome-3/3.12/core/totem/default.nix index 3589299df3e..1322fdcaae3 100644 --- a/pkgs/desktops/gnome-3/3.12/core/totem/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/totem/default.nix @@ -5,11 +5,11 @@ , gnome3, librsvg, gdk_pixbuf, file }: stdenv.mkDerivation rec { - name = "totem-3.12.1"; + name = "totem-3.12.2"; src = fetchurl { url = "mirror://gnome/sources/totem/3.12/${name}.tar.xz"; - sha256 = "dd168cdd4051d01131d47c24fa45bfd08b6ccf45900ac4b64bae47f6f47a35e3"; + sha256 = "1law033wxbs8v3l2fk0p1v8lf9m45dm997yhq0cmqgw10jxxiybn"; }; doCheck = true; diff --git a/pkgs/desktops/gnome-3/3.12/core/tracker/default.nix b/pkgs/desktops/gnome-3/3.12/core/tracker/default.nix index 79155fe9b56..cf84f511416 100644 --- a/pkgs/desktops/gnome-3/3.12/core/tracker/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/tracker/default.nix @@ -8,11 +8,11 @@ , libpng, libexif, libgsf, libuuid, bzip2 }: stdenv.mkDerivation rec { - name = "tracker-1.0.1"; + name = "tracker-1.0.3"; src = fetchurl { url = "mirror://gnome/sources/tracker/1.0/${name}.tar.xz"; - sha256 = "76e7918e62526a8209f9c9226f82abe592a6332826ac7c12e6e405063181e889"; + sha256 = "11pqcldgh07mjn38dlbj6ry5qkfbpf79ln5sqx7q86hhqzh3712h"; }; propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; diff --git a/pkgs/desktops/gnome-3/3.12/core/vte/default.nix b/pkgs/desktops/gnome-3/3.12/core/vte/default.nix index 41597e47fa5..011424820e8 100644 --- a/pkgs/desktops/gnome-3/3.12/core/vte/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/vte/default.nix @@ -3,14 +3,14 @@ stdenv.mkDerivation rec { versionMajor = "0.36"; - versionMinor = "2"; + versionMinor = "3"; moduleName = "vte"; name = "${moduleName}-${versionMajor}.${versionMinor}"; src = fetchurl { url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; - sha256 = "f45eed3aed823068c7563345ea947be0e6ddb3dacd74646e6d7d26a921e04345"; + sha256 = "54e5b07be3c0f7b158302f54ee79d4de1cb002f4259b6642b79b1e0e314a959c"; }; buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib gnome3.gtk3 ncurses ]; diff --git a/pkgs/desktops/gnome-3/3.12/misc/geary/default.nix b/pkgs/desktops/gnome-3/3.12/misc/geary/default.nix index 1eb6c0e3ed2..768e8bdb36e 100644 --- a/pkgs/desktops/gnome-3/3.12/misc/geary/default.nix +++ b/pkgs/desktops/gnome-3/3.12/misc/geary/default.nix @@ -5,11 +5,11 @@ , gnome3, librsvg, gnome_doc_utils, webkitgtk }: stdenv.mkDerivation rec { - name = "geary-0.6.0"; + name = "geary-0.6.2"; src = fetchurl { url = "mirror://gnome/sources/geary/0.6/${name}.tar.xz"; - sha256 = "44ad1dc2c81c50006c751f8e72aa817f07002188da4c29e158060524a1962715"; + sha256 = "0ap40mpj89sx82kcxlhl9gipq34ks2b70yhiv9s8zc5wg0nm7rpg"; }; propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; diff --git a/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix index 7ca35a8255f..401d5cf2f36 100644 --- a/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix +++ b/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix @@ -6,11 +6,11 @@ # use packaged gnome3.gnome_icon_theme_symbolic stdenv.mkDerivation rec { - name = "gitg-0.3.2"; + name = "gitg-3.13.91"; src = fetchurl { - url = "mirror://gnome/sources/gitg/0.3/${name}.tar.xz"; - sha256 = "03vc59d1r3326piqdph6qjqnc40chm1lpg52lpf8466ddjs0x8vp"; + url = "mirror://gnome/sources/gitg/3.13/${name}.tar.xz"; + sha256 = "1c2016grvgg5f3l5xkracz85rblsc1a4brzr6vgn6kh2h494rv37"; }; preCheck = '' diff --git a/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix index 2eccb9a32cf..e424ab3635a 100644 --- a/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix +++ b/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix @@ -4,11 +4,11 @@ , gnome3, librsvg, gdk_pixbuf, file, libnotify }: stdenv.mkDerivation rec { - name = "gnome-tweak-tool-3.10.1"; + name = "gnome-tweak-tool-3.12.0"; src = fetchurl { - url = "mirror://gnome/sources/gnome-tweak-tool/3.10/${name}.tar.xz"; - sha256 = "fb5af9022c0521a925ef9f295e4080212b1b45427cd5f5f3a901667590afa7ec"; + url = "mirror://gnome/sources/gnome-tweak-tool/3.12/${name}.tar.xz"; + sha256 = "f8811d638797ef62500770a8dccc5bc689a427c8396a0dff8cbeddffdebf0e29"; }; doCheck = true; diff --git a/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix index 17c3b4fa0a8..94776c90cf9 100644 --- a/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix +++ b/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix @@ -1,18 +1,18 @@ -{ stdenv, fetchurl, gnome3, libtool, pkgconfig +{ stdenv, fetchurl, gnome3, libtool, pkgconfig, vala , gtk_doc, gobjectIntrospection, libgit2, glib }: stdenv.mkDerivation rec { name = "libgit2-glib-${version}"; - version = "0.0.10"; + version = "0.0.20"; src = fetchurl { url = "https://github.com/GNOME/libgit2-glib/archive/v${version}.tar.gz"; - sha256 = "0zn3k85jw6yks8s5ca8dyh9mwh4if1lni9gz9bd5lqlpa803ixxs"; + sha256 = "1s2hj0ji73ishniqvr6mx90l1ji5jjwwrwhp91i87fxk0d3sry5x"; }; configureScript = "sh ./autogen.sh"; - buildInputs = [ gnome3.gnome_common libtool pkgconfig + buildInputs = [ gnome3.gnome_common libtool pkgconfig vala gtk_doc gobjectIntrospection libgit2 glib ]; meta = with stdenv.lib; { diff --git a/pkgs/development/arduino/ino/default.nix b/pkgs/development/arduino/ino/default.nix index 3e74c143c61..484de02f05d 100644 --- a/pkgs/development/arduino/ino/default.nix +++ b/pkgs/development/arduino/ino/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { # TODO: add avrgcclibc, it must be rebuild with C++ support propagatedBuildInputs = [ arduino_core avrdude minicom pythonPackages.configobj - pythonPackages.jinja2 pythonPackages.pyserial ]; + pythonPackages.jinja2 pythonPackages.pyserial pythonPackages.six ]; patchPhase = '' echo "Patching Arduino distribution path" diff --git a/pkgs/development/compilers/agda/default.nix b/pkgs/development/compilers/agda/default.nix index 6705419add9..db160c652cf 100644 --- a/pkgs/development/compilers/agda/default.nix +++ b/pkgs/development/compilers/agda/default.nix @@ -1,15 +1,16 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, alex, binary, boxes, dataHash, deepseq, emacs, equivalence -, filepath, geniplate, happy, hashable, hashtables, haskeline -, haskellSrcExts, mtl, parallel, QuickCheck, STMonadTrans, strict -, text, time, transformers, unorderedContainers, xhtml, zlib +{ cabal, alex, binary, boxes, cpphs, dataHash, deepseq, emacs +, equivalence, filepath, geniplate, happy, hashable, hashtables +, haskeline, haskellSrcExts, mtl, parallel, QuickCheck +, STMonadTrans, strict, text, time, transformers +, unorderedContainers, xhtml, zlib }: cabal.mkDerivation (self: { pname = "Agda"; - version = "2.4.0.2"; - sha256 = "13c4ipscnlnbv94k93yajrp32mwzikqa8rhc95h8pmqzhjgwyh8b"; + version = "2.4.2"; + sha256 = "0pgwx79y02a08xn5f6lghw7fsc6wilab5q2gdm9r51yi9gm32aw5"; isLibrary = true; isExecutable = true; buildDepends = [ @@ -18,7 +19,8 @@ cabal.mkDerivation (self: { QuickCheck STMonadTrans strict text time transformers unorderedContainers xhtml zlib ]; - buildTools = [ alex emacs happy ]; + buildTools = [ alex cpphs emacs happy ]; + noHaddock = true; postInstall = '' $out/bin/agda -c --no-main $(find $out/share -name Primitive.agda) $out/bin/agda-mode compile diff --git a/pkgs/development/compilers/agda/stdlib.nix b/pkgs/development/compilers/agda/stdlib.nix index 913ae5cd90f..d0ae1394f89 100644 --- a/pkgs/development/compilers/agda/stdlib.nix +++ b/pkgs/development/compilers/agda/stdlib.nix @@ -2,11 +2,11 @@ cabal.mkDerivation (self: rec { pname = "Agda-stdlib"; - version = "0.8"; + version = "0.8.1"; src = fetchurl { url = "https://github.com/agda/agda-stdlib/archive/v${version}.tar.gz"; - sha256 = "03gdcy2gar46qlmd6w91y05cm1x304ig6bda90ryww9qn05kif78"; + sha256 = "0ij4rg4lk0pq01ing285gbmnn23dcf2rhihdcs8bbdpjg52vl4gf"; }; buildDepends = [ filemanip Agda ]; diff --git a/pkgs/development/compilers/ats2/default.nix b/pkgs/development/compilers/ats2/default.nix index 8c71138ab78..b77c7e47667 100644 --- a/pkgs/development/compilers/ats2/default.nix +++ b/pkgs/development/compilers/ats2/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "ats2-${version}"; - version = "0.1.0"; + version = "0.1.2"; src = fetchurl { url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz"; - sha256 = "0i7b9v7xki9j2jjjpydz0gl33af94b4jjmk75b9w20bs003v8vd4"; + sha256 = "1266hl03d4w13qrimq6jsxcmw1mjivl27l3lhf9ddqlz0vy97j6a"; }; buildInputs = [ gmp ]; diff --git a/pkgs/development/compilers/bigloo/default.nix b/pkgs/development/compilers/bigloo/default.nix index 16dfa580a19..8564175d363 100644 --- a/pkgs/development/compilers/bigloo/default.nix +++ b/pkgs/development/compilers/bigloo/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { checkTarget = "test"; meta = { - description = "Bigloo, an efficient Scheme compiler"; + description = "Efficient Scheme compiler"; longDescription = '' Bigloo is a Scheme implementation devoted to one goal: enabling diff --git a/pkgs/development/compilers/emscripten-fastcomp/default.nix b/pkgs/development/compilers/emscripten-fastcomp/default.nix new file mode 100644 index 00000000000..3eb9aef528c --- /dev/null +++ b/pkgs/development/compilers/emscripten-fastcomp/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchgit, python }: + +let + tag = "1.21.0"; +in + +stdenv.mkDerivation rec { + name = "emscripten-fastcomp-${tag}"; + + srcFC = fetchgit { + url = git://github.com/kripken/emscripten-fastcomp; + rev = "refs/tags/${tag}"; + sha256 = "0mcxzg2cfg0s1vfm3bh1ar4xsddb6xkv1dsdbgnpx38lbj1mvfs1"; + }; + + srcFL = fetchgit { + url = git://github.com/kripken/emscripten-fastcomp-clang; + rev = "refs/tags/${tag}"; + sha256 = "0s2jcn36d236cfpryjpgaazjp3cg83d0h78g6kk1j6vdppv3vgnp"; + }; + + buildInputs = [ python ]; + buildCommand = '' + cp -as ${srcFC} $TMPDIR/src + chmod +w $TMPDIR/src/tools + cp -as ${srcFL} $TMPDIR/src/tools/clang + + chmod +w $TMPDIR/src + mkdir $TMPDIR/src/build + cd $TMPDIR/src/build + + ../configure --enable-optimized --disable-assertions --enable-targets=host,js + make + cp -a Release/bin $out + ''; + meta = with stdenv.lib; { + homepage = https://github.com/kripken/emscripten-fastcomp; + description = "emscripten llvm"; + maintainers = with maintainers; [ bosu ]; + license = "University of Illinois/NCSA Open Source License"; + }; +} diff --git a/pkgs/development/compilers/emscripten/default.nix b/pkgs/development/compilers/emscripten/default.nix new file mode 100644 index 00000000000..43f256b58b0 --- /dev/null +++ b/pkgs/development/compilers/emscripten/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchgit, emscriptenfastcomp, python, nodejs, closurecompiler, jre }: + +let + tag = "1.21.0"; +in + +stdenv.mkDerivation rec { + name = "emscripten-${tag}"; + + src = fetchgit { + url = git://github.com/kripken/emscripten; + rev = "refs/tags/${tag}"; + sha256 = "0y17ab4nhd3521b50sv2i2667w0rlcnmlkpkgw5j3fsh8awxgf32"; + }; + + buildCommand = '' + mkdir $out + cp -a $src $out/bin + chmod -R +w $out/bin + grep -rl '^#!/usr.*python' $out/bin | xargs sed -i -s 's@^#!/usr.*python.*@#!${python}/bin/python@' + sed -i -e "s,EM_CONFIG = '~/.emscripten',EM_CONFIG = '$out/config'," $out/bin/tools/shared.py + sed -i -e 's,^.*did not see a source tree above the LLVM.*$, return True,' $out/bin/tools/shared.py + sed -i -e 's,def check_sanity(force=False):,def check_sanity(force=False):\n return,' $out/bin/tools/shared.py + + echo "EMSCRIPTEN_ROOT = '$out/bin'" > $out/config + echo "LLVM_ROOT = '${emscriptenfastcomp}'" >> $out/config + echo "PYTHON = '${python}/bin/python'" >> $out/config + echo "NODE_JS = '${nodejs}/bin/node'" >> $out/config + echo "JS_ENGINES = [NODE_JS]" >> $out/config + echo "COMPILER_ENGINE = NODE_JS" >> $out/config + echo "CLOSURE_COMPILER = '${closurecompiler}/bin/closure-compiler'" >> $out/config + echo "JAVA = '${jre}/bin/java'" >> $out/config + ''; + meta = with stdenv.lib; { + homepage = https://github.com/kripken/emscripten; + description = "An LLVM-to-JavaScript Compiler"; + maintainers = with maintainers; [ bosu ]; + license = with licenses; ncsa; + }; +} diff --git a/pkgs/development/compilers/fpc/2.4.0.nix b/pkgs/development/compilers/fpc/2.4.0.nix deleted file mode 100644 index 30081c9d805..00000000000 --- a/pkgs/development/compilers/fpc/2.4.0.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ stdenv, fetchurl, gawk }: - -let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in - -stdenv.mkDerivation rec { - version = "2.4.0"; - name = "fpc-${version}"; - - src = fetchurl { - url = "http://downloads.sourceforge.net/sourceforge/freepascal/fpcbuild-${version}.tar.gz"; - sha256 = "1m2g2bafjixbwl5b9lna5h7r56y1rcayfnbp8kyjfd1c1ymbxaxk"; - }; - - buildInputs = [ startFPC gawk ]; - - preConfigure = - if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then '' - sed -e "s@'/lib/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas - sed -e "s@'/lib64/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas - '' else ""; - - makeFlags = "NOGDB=1"; - - installFlags = "INSTALL_PREFIX=\${out}"; - - postInstall = '' - for i in $out/lib/fpc/*/ppc*; do - ln -fs $i $out/bin/$(basename $i) - done - mkdir -p $out/lib/fpc/etc/ - $out/lib/fpc/*/samplecfg $out/lib/fpc/${version} $out/lib/fpc/etc/ - ''; - - meta = { - description = "Free Pascal Compiler from a source distribution"; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/development/compilers/fpc/binary-builder.sh b/pkgs/development/compilers/fpc/binary-builder.sh index 8be36dec73e..4308c1ed211 100755 --- a/pkgs/development/compilers/fpc/binary-builder.sh +++ b/pkgs/development/compilers/fpc/binary-builder.sh @@ -1,6 +1,7 @@ source $stdenv/setup tar xf $src +cd */ tarballdir=$(pwd) for i in *.tar; do tar xvf $i; done echo "Deploying binaries.." diff --git a/pkgs/development/compilers/fpc/binary.nix b/pkgs/development/compilers/fpc/binary.nix index 88f0ab91067..57e670750db 100644 --- a/pkgs/development/compilers/fpc/binary.nix +++ b/pkgs/development/compilers/fpc/binary.nix @@ -1,18 +1,18 @@ { stdenv, fetchurl }: stdenv.mkDerivation { - name = "fpc-2.4.0-binary"; + name = "fpc-2.6.0-binary"; src = if stdenv.system == "i686-linux" then fetchurl { - url = "ftp://ftp.chg.ru/pub/lang/pascal/fpc/dist/2.4.0/i386-linux/fpc-2.4.0.i386-linux.tar"; - sha256 = "1zas9kp0b36zxqvb9i4idh2l0nb6qpmgah038l77w6las7ghh0dv"; + url = "http://sourceforge.net/projects/freepascal/files/Linux/2.6.0/fpc-2.6.0.i386-linux.tar"; + sha256 = "08yklvrfxvk59bxsd4rh1i6s3cjn0q06dzjs94h9fbq3n1qd5zdf"; } else if stdenv.system == "x86_64-linux" then fetchurl { - url = "ftp://ftp.chg.ru/pub/lang/pascal/fpc/dist/2.4.0/x86_64-linux/fpc-2.4.0.x86_64-linux.tar"; - sha256 = "111d11g5ra55hjywx64ldwwflpimsy8zryvap68v0309nyd23f0z"; + url = "http://sourceforge.net/projects/freepascal/files/Linux/2.6.0/fpc-2.6.0.x86_64-linux.tar"; + sha256 = "0k9vi75k39y735fng4jc2vppdywp82j4qhzn7x4r6qjkad64d8lx"; } else throw "Not supported on ${stdenv.system}."; diff --git a/pkgs/development/compilers/fpc/default.nix b/pkgs/development/compilers/fpc/default.nix index 6be976783bc..b34b5e8a446 100644 --- a/pkgs/development/compilers/fpc/default.nix +++ b/pkgs/development/compilers/fpc/default.nix @@ -3,12 +3,12 @@ let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in stdenv.mkDerivation rec { - version = "2.6.0"; + version = "2.6.4"; name = "fpc-${version}"; src = fetchurl { url = "mirror://sourceforge/freepascal/fpcbuild-${version}.tar.gz"; - sha256 = "1vxy2y8pm0ribhpdhqlwwz696ncnz4rk2dafbn1mjgipm97qb26p"; + sha256 = "1akdlp4n9ai1gnn4yq236i5rx03rs5sjfgk60myb7nb9lk7kp74d"; }; buildInputs = [ startFPC gawk ]; @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { sed -e "s@'/lib64/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas '' else ""; - makeFlags = "NOGDB=1"; + makeFlags = "NOGDB=1 FPC=${startFPC}/bin/fpc"; installFlags = "INSTALL_PREFIX=\${out}"; @@ -31,9 +31,14 @@ stdenv.mkDerivation rec { $out/lib/fpc/*/samplecfg $out/lib/fpc/${version} $out/lib/fpc/etc/ ''; + passthru = { + bootstrap = startFPC; + }; + meta = { description = "Free Pascal Compiler from a source distribution"; maintainers = [stdenv.lib.maintainers.raskin]; platforms = stdenv.lib.platforms.linux; + inherit version; }; } diff --git a/pkgs/development/compilers/fpc/default.upstream b/pkgs/development/compilers/fpc/default.upstream new file mode 100644 index 00000000000..7c11fb4761e --- /dev/null +++ b/pkgs/development/compilers/fpc/default.upstream @@ -0,0 +1,6 @@ +url http://sourceforge.net/projects/freepascal/files/Source/ +SF_version_dir +version_link 'fpcbuild-[0-9.]+[.]tar[.]gz/download$' +SF_redirect +version '.*-([0-9.]+)[.]tar[.]gz' '\1' +do_overwrite () { do_overwrite_just_version; } diff --git a/pkgs/development/compilers/gambit/default.nix b/pkgs/development/compilers/gambit/default.nix index 265b08c1fbd..3d9f2596c96 100644 --- a/pkgs/development/compilers/gambit/default.nix +++ b/pkgs/development/compilers/gambit/default.nix @@ -18,7 +18,7 @@ rec { phaseNames = ["doConfigure" "doMakeInstall"]; meta = { - description = "Gambit Scheme to C compiler"; + description = "Scheme to C compiler"; maintainers = [ a.lib.maintainers.raskin ]; diff --git a/pkgs/development/compilers/go/1.3.nix b/pkgs/development/compilers/go/1.3.nix index 06decd16190..1dcdd89b5bf 100644 --- a/pkgs/development/compilers/go/1.3.nix +++ b/pkgs/development/compilers/go/1.3.nix @@ -1,5 +1,7 @@ { stdenv, lib, fetchurl, bison, glibc, bash, coreutils, makeWrapper, tzdata, iana_etc }: +assert stdenv.gcc.gcc != null; + let loader386 = "${glibc}/lib/ld-linux.so.2"; loaderAmd64 = "${glibc}/lib/ld-linux-x86-64.so.2"; diff --git a/pkgs/development/compilers/hugs/default.nix b/pkgs/development/compilers/hugs/default.nix index c3f14826c8a..14751799795 100644 --- a/pkgs/development/compilers/hugs/default.nix +++ b/pkgs/development/compilers/hugs/default.nix @@ -47,7 +47,7 @@ composableDerivation.composableDerivation {} { meta = { license = "as-is"; # gentoo is calling it this way.. - description = "The HUGS 98 Haskell interpreter"; + description = "Haskell interpreter"; homepage = http://www.haskell.org/hugs; }; } diff --git a/pkgs/development/compilers/idris/default.nix b/pkgs/development/compilers/idris/default.nix index f0b07f9d0fa..0761f189bc8 100644 --- a/pkgs/development/compilers/idris/default.nix +++ b/pkgs/development/compilers/idris/default.nix @@ -11,8 +11,8 @@ cabal.mkDerivation (self: { pname = "idris"; - version = "0.9.14.1"; - sha256 = "11x4f0hvd51m9rlf9r0i5xsjmc73kjsayny4xyv0wgb88v9v737b"; + version = "0.9.14.2"; + sha256 = "0j64kx357l16z9y9j20i7mvxgqff94bfssbhh1shb13c0pk5lmi6"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/development/compilers/ikarus/default.nix b/pkgs/development/compilers/ikarus/default.nix index 070f29e16f6..e9bf6c8bb5b 100644 --- a/pkgs/development/compilers/ikarus/default.nix +++ b/pkgs/development/compilers/ikarus/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { buildInputs = [ gmp ]; meta = { - description = "Ikarus - a Scheme compiler, aiming at R6RS"; + description = "Scheme compiler, aiming at R6RS"; homepage = http://ikarus-scheme.org/; license = stdenv.lib.licenses.gpl3; }; diff --git a/pkgs/development/compilers/julia/0.3.0.nix b/pkgs/development/compilers/julia/0.3.0.nix index 4eb64aea534..3259fee55bf 100644 --- a/pkgs/development/compilers/julia/0.3.0.nix +++ b/pkgs/development/compilers/julia/0.3.0.nix @@ -3,6 +3,9 @@ , ncurses, libunistring, lighttpd, patchelf, openblas, liblapack , tcl, tk, xproto, libX11, git, mpfr, which } : + +assert stdenv.isLinux; + let realGcc = stdenv.gcc.gcc; in @@ -33,7 +36,7 @@ stdenv.mkDerivation rec { openblas_src = fetchurl { url = "https://github.com/xianyi/OpenBLAS/tarball/${openblas_ver}"; name = "openblas-${openblas_ver}.tar.gz"; - sha256 = "19ffec70f9678f5c159feadc036ca47720681b782910fbaa95aa3867e7e86d8e"; + sha256 = "06i0q4qnd5q5xljzrgvda0gjsczc6l2pl9hw6dn2qjpw38al73za"; }; arpack_src = fetchurl rec { url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/arpack-ng_${arpack_ver}.tar.gz"; @@ -42,7 +45,7 @@ stdenv.mkDerivation rec { lapack_src = fetchurl { url = "http://www.netlib.org/lapack/lapack-${lapack_ver}.tgz"; name = "lapack-${lapack_ver}.tgz"; - sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f"; + sha256 = "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s"; }; lighttpd_src = fetchurl { url = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${lighttpd_ver}.tar.gz"; @@ -73,7 +76,7 @@ stdenv.mkDerivation rec { ]; configurePhase = '' - for i in GMP LLVM PCRE LAPACK OPENBLAS BLAS READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB MPFR; + for i in GMP LLVM PCRE READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB MPFR; do makeFlags="$makeFlags USE_SYSTEM_$i=1 " done @@ -82,12 +85,13 @@ stdenv.mkDerivation rec { cp "$1" "$2/$(basename "$1" | sed -e 's/^[a-z0-9]*-//')" } - for i in "${grisu_src}" "${dsfmt_src}" "${arpack_src}" "${patchelf_src}" "${pcre_src}" "${utf8proc_src}"; do + for i in "${grisu_src}" "${dsfmt_src}" "${arpack_src}" "${patchelf_src}" \ + "${pcre_src}" "${utf8proc_src}" "${lapack_src}" "${openblas_src}"; do copy_kill_hash "$i" deps done ${if realGcc ==null then "" else - ''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz -lgmp -lmpfr"''} + ''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz -lgmp -lmpfr -lblas -lopenblas -L$out/lib"''} export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC " export LDFLAGS="-L${suitesparse}/lib -L$out/lib/julia -Wl,-rpath,$out/lib/julia" @@ -105,6 +109,14 @@ stdenv.mkDerivation rec { export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD/usr/lib:$PWD/usr/lib/julia" patchShebangs . contrib + + export PATH="$PATH:${stdenv.gcc.libc}/sbin" + + # ldconfig doesn't seem to ever work on NixOS; system-wide ldconfig cache + # is probably not what we want anyway on non-NixOS + sed -e "s@/sbin/ldconfig@true@" -i src/ccall.* + + ln -s "${openblas}/lib/libopenblas.so" "$out/lib/libblas.so" ''; preBuild = '' @@ -126,7 +138,9 @@ stdenv.mkDerivation rec { done ''; - enableParallelBuilding = false; + dontStrip = true; + + enableParallelBuilding = true; postInstall = '' rm -f "$out"/lib/julia/sys.{so,dylib,dll} @@ -138,6 +152,6 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.mit; maintainers = [ stdenv.lib.maintainers.raskin ]; platforms = with stdenv.lib.platforms; linux; - broken = true; + broken = false; }; } diff --git a/pkgs/development/compilers/mercury/default.nix b/pkgs/development/compilers/mercury/default.nix index 21af582c594..de9b44a4414 100644 --- a/pkgs/development/compilers/mercury/default.nix +++ b/pkgs/development/compilers/mercury/default.nix @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Mercury is a pure logic programming language."; + description = "A pure logic programming language"; longDescription = '' Mercury is a logic/functional programming language which combines the clarity and expressiveness of declarative programming with advanced diff --git a/pkgs/development/compilers/ocaml/3.10.0.nix b/pkgs/development/compilers/ocaml/3.10.0.nix index 281aa1a9de6..1d68585d93a 100644 --- a/pkgs/development/compilers/ocaml/3.10.0.nix +++ b/pkgs/development/compilers/ocaml/3.10.0.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation (rec { meta = { homepage = http://caml.inria.fr/ocaml; license = "QPL, LGPL2 (library part)"; - desctiption = "Most popular variant of the Caml language"; + description = "Most popular variant of the Caml language"; }; }) diff --git a/pkgs/development/compilers/ocaml/3.11.2.nix b/pkgs/development/compilers/ocaml/3.11.2.nix index 64cf8a9f9f7..195e83e7313 100644 --- a/pkgs/development/compilers/ocaml/3.11.2.nix +++ b/pkgs/development/compilers/ocaml/3.11.2.nix @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://caml.inria.fr/ocaml; license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ]; - description = "Objective Caml, the most popular variant of the Caml language"; + description = "Most popular variant of the Caml language"; longDescription = '' Objective Caml is the most popular variant of the Caml language. diff --git a/pkgs/development/compilers/ocaml/3.12.1.nix b/pkgs/development/compilers/ocaml/3.12.1.nix index f916f5a7923..16c3cb1d787 100644 --- a/pkgs/development/compilers/ocaml/3.12.1.nix +++ b/pkgs/development/compilers/ocaml/3.12.1.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://caml.inria.fr/ocaml; license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ]; - description = "OCaml, the most popular variant of the Caml language"; + description = "Most popular variant of the Caml language"; longDescription = '' diff --git a/pkgs/development/compilers/ocaml/4.00.1.nix b/pkgs/development/compilers/ocaml/4.00.1.nix index 8662db70c26..5b1e69b86b0 100644 --- a/pkgs/development/compilers/ocaml/4.00.1.nix +++ b/pkgs/development/compilers/ocaml/4.00.1.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://caml.inria.fr/ocaml; license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ]; - description = "OCaml, the most popular variant of the Caml language"; + description = "Most popular variant of the Caml language"; longDescription = '' diff --git a/pkgs/development/compilers/ocaml/4.01.0.nix b/pkgs/development/compilers/ocaml/4.01.0.nix index 0f68014fad6..2876bce9caf 100644 --- a/pkgs/development/compilers/ocaml/4.01.0.nix +++ b/pkgs/development/compilers/ocaml/4.01.0.nix @@ -49,7 +49,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://caml.inria.fr/ocaml; license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ]; - description = "OCaml, the most popular variant of the Caml language"; + description = "Most popular variant of the Caml language"; longDescription = '' diff --git a/pkgs/development/compilers/ocaml/ber-metaocaml-003.nix b/pkgs/development/compilers/ocaml/ber-metaocaml-003.nix index 9c5fa3764ba..8b86c805c61 100644 --- a/pkgs/development/compilers/ocaml/ber-metaocaml-003.nix +++ b/pkgs/development/compilers/ocaml/ber-metaocaml-003.nix @@ -58,6 +58,6 @@ stdenv.mkDerivation rec { meta = { homepage = "http://okmij.org/ftp/ML/index.html#ber-metaocaml"; license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ]; - description = "a conservative extension of OCaml with the primitive type of code values, and three basic multi-stage expression forms: Brackets, Escape, and Run"; + description = "A conservative extension of OCaml with the primitive type of code values, and three basic multi-stage expression forms: Brackets, Escape, and Run"; }; } diff --git a/pkgs/development/compilers/qi/default.nix b/pkgs/development/compilers/qi/default.nix index ecb022d942a..5665fc5da6c 100644 --- a/pkgs/development/compilers/qi/default.nix +++ b/pkgs/development/compilers/qi/default.nix @@ -31,6 +31,6 @@ stdenv.mkDerivation rec { builder = writeScript (name + "-builder") (textClosure localDefs [allBuild doForceShare doPropagate]); meta = { - description = "Qi - next generation on top of Common Lisp"; + description = "Functional programming language, built top of Common Lisp"; }; } diff --git a/pkgs/development/compilers/rdmd/default.nix b/pkgs/development/compilers/rdmd/default.nix index 9177ad5e25b..621ace195bb 100644 --- a/pkgs/development/compilers/rdmd/default.nix +++ b/pkgs/development/compilers/rdmd/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { ''; meta = { - description = "rdmd wrapper for D language compiler"; + description = "Wrapper for D language compiler"; homepage = http://dlang.org/rdmd.html; license = lib.licenses.boost; maintainers = with stdenv.lib.maintainers; [ vlstill ]; diff --git a/pkgs/development/compilers/rustc/0.11.nix b/pkgs/development/compilers/rustc/0.11.nix index 1c3b09b0985..a7246e44a73 100644 --- a/pkgs/development/compilers/rustc/0.11.nix +++ b/pkgs/development/compilers/rustc/0.11.nix @@ -1,5 +1,7 @@ {stdenv, fetchurl, which, file, perl, curl, python27, makeWrapper}: +assert stdenv.gcc.gcc != null; + /* Rust's build process has a few quirks : - It requires some patched in llvm that haven't landed upstream, so it diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix index ad33906ae6e..4f512096a42 100644 --- a/pkgs/development/compilers/rustc/head.nix +++ b/pkgs/development/compilers/rustc/head.nix @@ -1,5 +1,7 @@ {stdenv, fetchurl, fetchgit, which, file, perl, curl, python27, makeWrapper}: +assert stdenv.gcc.gcc != null; + /* Rust's build process has a few quirks : - It requires some patched in llvm that haven't landed upstream, so it diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix index d3892d43d15..535f2697fea 100644 --- a/pkgs/development/compilers/sbcl/default.nix +++ b/pkgs/development/compilers/sbcl/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "sbcl-${version}"; - version = "1.2.0"; + version = "1.2.3"; src = fetchurl { url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2"; - sha256 = "13k20sys1v4lvgis8cnbczww6zs93rw176vz07g4jx06418k53x2"; + sha256 = "0lz2a79dlxxyw05s14l6xp35zjsazgbp1dmqygqi0cmd8dc5vj6j"; }; buildInputs = [ ] diff --git a/pkgs/development/compilers/scala/default.nix b/pkgs/development/compilers/scala/default.nix index bd81e4c055d..e299be9144e 100644 --- a/pkgs/development/compilers/scala/default.nix +++ b/pkgs/development/compilers/scala/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Scala is a general purpose programming language"; + description = "General purpose programming language"; longDescription = '' Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix index 1e82e03f16c..bd71ab7b27f 100644 --- a/pkgs/development/compilers/tinycc/default.nix +++ b/pkgs/development/compilers/tinycc/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { checkTarget = "test"; meta = { - description = "TinyCC, a small, fast, and embeddable C compiler and interpreter"; + description = "Small, fast, and embeddable C compiler and interpreter"; longDescription = '' TinyCC (aka TCC) is a small but hyper fast C compiler. Unlike diff --git a/pkgs/development/interpreters/acl2/default.nix b/pkgs/development/interpreters/acl2/default.nix index 6d074ac9f27..568551bb5ba 100644 --- a/pkgs/development/interpreters/acl2/default.nix +++ b/pkgs/development/interpreters/acl2/default.nix @@ -2,7 +2,7 @@ a : let fetchurl = a.fetchurl; - version = a.lib.attrByPath ["version"] "v3-5" a; + version = a.lib.attrByPath ["version"] "v6-5" a; buildInputs = with a; [ sbcl ]; @@ -10,7 +10,7 @@ in rec { src = fetchurl { url = "http://www.cs.utexas.edu/users/moore/acl2/${version}/distrib/acl2.tar.gz"; - sha256 = "0zmh1njpp7n7azcyjlygr0h0k51d18s1jkj0dr1jn2bh7mpysajk"; + sha256 = "19kfclgpdyms016s06pjf3icj3mx9jlcj8vfgpbx2ac4ls0ir36g"; name = "acl2-${version}.tar.gz"; }; diff --git a/pkgs/development/interpreters/erlang/R16.nix b/pkgs/development/interpreters/erlang/R16.nix index 5945cdd8299..23243803e8d 100644 --- a/pkgs/development/interpreters/erlang/R16.nix +++ b/pkgs/development/interpreters/erlang/R16.nix @@ -1,13 +1,15 @@ { stdenv, fetchurl, perl, gnum4, ncurses, openssl , gnused, gawk, makeWrapper +, odbcSupport ? false, unixODBC ? null , wxSupport ? false, mesa ? null, wxGTK ? null, xlibs ? null }: assert wxSupport -> mesa != null && wxGTK != null && xlibs != null; +assert odbcSupport -> unixODBC != null; with stdenv.lib; stdenv.mkDerivation rec { - name = "erlang-" + version; + name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}"; version = "16B03-1"; src = fetchurl { @@ -17,7 +19,8 @@ stdenv.mkDerivation rec { buildInputs = [ perl gnum4 ncurses openssl makeWrapper - ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ]; + ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ] + ++ optional odbcSupport [ unixODBC ]; patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure ''; @@ -26,7 +29,7 @@ stdenv.mkDerivation rec { sed -e s@/bin/pwd@pwd@g -i otp_build ''; - configureFlags= "--with-ssl=${openssl} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}"; + configureFlags= "--with-ssl=${openssl} ${optionalString odbcSupport "--with-odbc=${unixODBC}"} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}"; postInstall = let manpages = fetchurl { diff --git a/pkgs/development/interpreters/erlang/R17.nix b/pkgs/development/interpreters/erlang/R17.nix index 2aba55d3679..83ea79d67f3 100644 --- a/pkgs/development/interpreters/erlang/R17.nix +++ b/pkgs/development/interpreters/erlang/R17.nix @@ -1,13 +1,15 @@ { stdenv, fetchurl, perl, gnum4, ncurses, openssl , gnused, gawk, makeWrapper +, odbcSupport ? false, unixODBC ? null , wxSupport ? false, mesa ? null, wxGTK ? null, xlibs ? null }: assert wxSupport -> mesa != null && wxGTK != null && xlibs != null; +assert odbcSupport -> unixODBC != null; with stdenv.lib; stdenv.mkDerivation rec { - name = "erlang-" + version; + name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}"; version = "17.1"; src = fetchurl { @@ -17,7 +19,8 @@ stdenv.mkDerivation rec { buildInputs = [ perl gnum4 ncurses openssl makeWrapper - ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ]; + ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ] + ++ optional odbcSupport [ unixODBC ]; patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure ''; @@ -26,7 +29,7 @@ stdenv.mkDerivation rec { sed -e s@/bin/pwd@pwd@g -i otp_build ''; - configureFlags= "--with-ssl=${openssl} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}"; + configureFlags= "--with-ssl=${openssl} ${optionalString odbcSupport "--with-odbc=${unixODBC}"} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}"; postInstall = let manpages = fetchurl { diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/default.nix index 6e4051ff46e..2ddad5cde67 100644 --- a/pkgs/development/interpreters/guile/default.nix +++ b/pkgs/development/interpreters/guile/default.nix @@ -65,7 +65,7 @@ meta = { - description = "GNU Guile 2.0, an embeddable Scheme implementation"; + description = "Embeddable Scheme implementation"; homepage = http://www.gnu.org/software/guile/; license = stdenv.lib.licenses.lgpl3Plus; maintainers = with stdenv.lib.maintainers; [ ludo lovek323 ]; diff --git a/pkgs/development/interpreters/maude/default.nix b/pkgs/development/interpreters/maude/default.nix index e112a5ae43d..e14132a8acf 100644 --- a/pkgs/development/interpreters/maude/default.nix +++ b/pkgs/development/interpreters/maude/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://maude.cs.uiuc.edu/"; - description = "Maude -- a high-level specification language"; + description = "High-level specification language"; license = stdenv.lib.licenses.gpl2; longDescription = '' diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix index 1addccb4bf8..eac067da282 100644 --- a/pkgs/development/interpreters/octave/default.nix +++ b/pkgs/development/interpreters/octave/default.nix @@ -1,18 +1,16 @@ -{stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull, -libX11, graphicsmagick, pcre, liblapack, pkgconfig, mesa, fltk, -fftw, fftwSinglePrec, zlib, curl, qrupdate +{ stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull +, libX11, graphicsmagick, pcre, liblapack, pkgconfig, mesa, fltk +, fftw, fftwSinglePrec, zlib, curl, qrupdate , qt ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null , suitesparse ? null, gnuplot ? null, openjdk ? null, python ? null }: -let - version = "3.8.1"; -in stdenv.mkDerivation rec { + version = "3.8.2"; name = "octave-${version}"; src = fetchurl { url = "mirror://gnu/octave/${name}.tar.bz2"; - sha256 = "1gcvzbgyz98mxzy3gjkdbdiirafkl73l9ywml11j412amp92wxnn"; + sha256 = "83bbd701aab04e7e57d0d5b8373dd54719bebb64ce0a850e69bf3d7454f33bae"; }; buildInputs = [ gfortran readline ncurses perl flex texinfo qhull libX11 diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix index ed5feeacf61..c1d02064fe1 100644 --- a/pkgs/development/interpreters/php/5.3.nix +++ b/pkgs/development/interpreters/php/5.3.nix @@ -233,7 +233,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) }; meta = { - description = "The PHP language runtime engine"; + description = "An HTML-embedded scripting language"; homepage = http://www.php.net/; license = "PHP-3"; maintainers = with stdenv.lib.maintainers; [ lovek323 ]; diff --git a/pkgs/development/interpreters/php/5.4.nix b/pkgs/development/interpreters/php/5.4.nix index e5069fc2ae4..e39661b224a 100644 --- a/pkgs/development/interpreters/php/5.4.nix +++ b/pkgs/development/interpreters/php/5.4.nix @@ -253,7 +253,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) }; meta = { - description = "The PHP language runtime engine"; + description = "An HTML-embedded scripting language"; homepage = http://www.php.net/; license = "PHP-3"; }; diff --git a/pkgs/development/interpreters/pypy/2.3/default.nix b/pkgs/development/interpreters/pypy/2.3/default.nix index d67f1c2a821..0b3ca739092 100644 --- a/pkgs/development/interpreters/pypy/2.3/default.nix +++ b/pkgs/development/interpreters/pypy/2.3/default.nix @@ -1,5 +1,6 @@ { stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi -, sqlite, openssl, ncurses, pythonFull, expat }: +, sqlite, openssl, ncurses, pythonFull, expat, tcl, tk, x11, libX11 +, makeWrapper }: assert zlibSupport -> zlib != null; @@ -20,7 +21,7 @@ let sha256 = "0fg4l48c7n59n5j3b1dgcsr927xzylkfny4a6pnk6z0pq2bhvl9z"; }; - buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite ] + buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite tk tcl x11 libX11 makeWrapper ] ++ stdenv.lib.optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++ stdenv.lib.optional zlibSupport zlib; @@ -40,12 +41,20 @@ let substituteInPlace pypy/goal/targetpypystandalone.py \ --replace "/usr/bin/env pypy" "${pythonFull}/bin/python" - # convince pypy to find nix ncurses + # hint pypy to find nix ncurses substituteInPlace pypy/module/_minimal_curses/fficurses.py \ --replace "/usr/include/ncurses/curses.h" "${ncurses}/include/curses.h" \ --replace "ncurses/curses.h" "${ncurses}/include/curses.h" \ --replace "ncurses/term.h" "${ncurses}/include/term.h" \ --replace "libraries=['curses']" "libraries=['ncurses']" + + # tkinter hints + substituteInPlace lib_pypy/_tkinter/tklib.py \ + --replace "'/usr/include/tcl'" "'${tk}/include', '${tcl}/include'" \ + --replace "linklibs=['tcl', 'tk']" "linklibs=['tcl8.5', 'tk8.5']" \ + --replace "libdirs = []" "libdirs = ['${tk}/lib', '${tcl}/lib']" + + sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite}/include'], library_dirs=['${sqlite}/lib']@" lib_pypy/_sqlite3.py ''; setupHook = ./setup-hook.sh; @@ -58,8 +67,8 @@ let # disable shutils because it assumes gid 0 exists # disable socket because it has two actual network tests that fail # disable test_mhlib because it fails for unknown reason - # disable test_multiprocessing due to transient errors # disable sqlite3 due to https://bugs.pypy.org/issue1740 + # disable test_multiprocessing due to transient errors # disable test_os because test_urandom_failure fails ./pypy-c ./pypy/test_all.py --pypy=./pypy-c -k '-test_sqlite -test_socket -test_os -test_shutil -test_mhlib -test_multiprocessing' lib-python ''; @@ -75,19 +84,26 @@ let ln -s $out/pypy-c/include $out/include/${libPrefix} ln -s $out/pypy-c/lib-python/${pythonVersion} $out/lib/${libPrefix} - # TODO: compile python files? + # verify cffi modules + $out/bin/pypy -c "import Tkinter;import sqlite3;import curses" + + # make sure pypy finds sqlite3 library + wrapProgram "$out/bin/pypy" \ + --set LD_LIBRARY_PATH "${LD_LIBRARY_PATH}" \ + --set LIBRARY_PATH "${LIBRARY_PATH}" ''; passthru = { inherit zlibSupport libPrefix; executable = "pypy"; + isPypy = true; }; enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = "http://pypy.org/"; - description = "PyPy is a fast, compliant alternative implementation of the Python language (2.7.3)"; + homepage = http://pypy.org/; + description = "Fast, compliant alternative implementation of the Python language (2.7.3)"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ iElectric ]; diff --git a/pkgs/development/interpreters/python/3.4/default.nix b/pkgs/development/interpreters/python/3.4/default.nix index 3477cedf4b7..312bf247de7 100644 --- a/pkgs/development/interpreters/python/3.4/default.nix +++ b/pkgs/development/interpreters/python/3.4/default.nix @@ -36,6 +36,8 @@ stdenv.mkDerivation { NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s"; + patches = [ ./issue21121-3.patch ]; + preConfigure = '' for i in /usr /sw /opt /pkg; do # improve purity substituteInPlace ./setup.py --replace $i /no-such-path diff --git a/pkgs/development/interpreters/python/3.4/issue21121-3.patch b/pkgs/development/interpreters/python/3.4/issue21121-3.patch new file mode 100644 index 00000000000..506d9ea9b3d --- /dev/null +++ b/pkgs/development/interpreters/python/3.4/issue21121-3.patch @@ -0,0 +1,86 @@ +diff --git a/Makefile.pre.in b/Makefile.pre.in +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -71,12 +71,17 @@ + BASECFLAGS= @BASECFLAGS@ + BASECPPFLAGS= @BASECPPFLAGS@ + CONFIGURE_CFLAGS= @CFLAGS@ ++# CFLAGS_NODIST is used for building the interpreter and stdlib C extensions. ++# Use it when a compiler flag should _not_ be part of the distutils CFLAGS ++# once Python is installed (Issue #21121). ++CONFIGURE_CFLAGS_NODIST=@CFLAGS_NODIST@ + CONFIGURE_CPPFLAGS= @CPPFLAGS@ + CONFIGURE_LDFLAGS= @LDFLAGS@ + # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the + # command line to append to these values without stomping the pre-set + # values. + PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) ++PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) + # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to + # be able to build extension modules using the directories specified in the + # environment variables +@@ -91,7 +96,7 @@ + # Extra C flags added for building the interpreter object files. + CFLAGSFORSHARED=@CFLAGSFORSHARED@ + # C flags used for building the interpreter object files +-PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE ++PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE + + + # Machine-dependent subdirectories +diff --git a/configure b/configure +--- a/configure ++++ b/configure +@@ -662,6 +662,7 @@ + LIBTOOL_CRUFT + OTHER_LIBTOOL_OPT + UNIVERSAL_ARCH_FLAGS ++CFLAGS_NODIST + BASECFLAGS + OPT + ABIFLAGS +@@ -6504,7 +6505,7 @@ + + if test $ac_cv_declaration_after_statement_warning = yes + then +- BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement" ++ CFLAGS_NODIST="$CFLAGS_NODIST -Werror=declaration-after-statement" + fi + + # if using gcc on alpha, use -mieee to get (near) full IEEE 754 +diff --git a/configure.ac b/configure.ac +--- a/configure.ac ++++ b/configure.ac +@@ -1147,6 +1147,7 @@ + fi + + AC_SUBST(BASECFLAGS) ++AC_SUBST(CFLAGS_NODIST) + + # The -arch flags for universal builds on OSX + UNIVERSAL_ARCH_FLAGS= +@@ -1231,7 +1232,7 @@ + + if test $ac_cv_declaration_after_statement_warning = yes + then +- BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement" ++ CFLAGS_NODIST="$CFLAGS_NODIST -Werror=declaration-after-statement" + fi + + # if using gcc on alpha, use -mieee to get (near) full IEEE 754 +diff --git a/setup.py b/setup.py +--- a/setup.py ++++ b/setup.py +@@ -19,6 +19,12 @@ + + cross_compiling = "_PYTHON_HOST_PLATFORM" in os.environ + ++# Add special CFLAGS reserved for building the interpreter and the stdlib ++# modules (Issue #21121). ++cflags = sysconfig.get_config_var('CFLAGS') ++py_cflags_nodist = sysconfig.get_config_var('PY_CFLAGS_NODIST') ++sysconfig.get_config_vars()['CFLAGS'] = cflags + ' ' + py_cflags_nodist ++ + def get_platform(): + # cross build + if "_PYTHON_HOST_PLATFORM" in os.environ: diff --git a/pkgs/development/interpreters/regina/default.nix b/pkgs/development/interpreters/regina/default.nix index d8b3558be4f..992f7281554 100644 --- a/pkgs/development/interpreters/regina/default.nix +++ b/pkgs/development/interpreters/regina/default.nix @@ -12,16 +12,15 @@ let sourceInfo = rec { baseName="Regina-REXX"; pname="regina-rexx"; - version="3.5"; + version = "3.8.2"; name="${baseName}-${version}"; url="mirror://sourceforge/${pname}/${pname}/${version}/${name}.tar.gz"; - hash="0gh0k6lbhfixs44adha7lxirl3a08jabdylzr6m7mh5q5fhzv5f8"; }; in rec { src = a.fetchurl { url = sourceInfo.url; - sha256 = sourceInfo.hash; + sha256 = "06vr6p9pqr5zzsxm1l9iwb2w9z8qkm971c2knh0vf5bbm6znjz35"; }; inherit (sourceInfo) name version; @@ -43,11 +42,8 @@ rec { platforms = with a.lib.platforms; linux; license = a.lib.licenses.lgpl2; - }; - passthru = { - updateInfo = { - downloadPage = "http://sourceforge.net/projects/regina-rexx/files/regina-rexx/"; - }; + downloadPage = "http://sourceforge.net/projects/regina-rexx/files/regina-rexx/"; + inherit version; }; }) x diff --git a/pkgs/development/interpreters/regina/default.upstream b/pkgs/development/interpreters/regina/default.upstream new file mode 100644 index 00000000000..7b3c6905a1c --- /dev/null +++ b/pkgs/development/interpreters/regina/default.upstream @@ -0,0 +1,5 @@ +url http://sourceforge.net/projects/regina-rexx/files/regina-rexx/ +SF_version_dir +SF_version_tarball +SF_redirect +minimize_overwrite diff --git a/pkgs/development/interpreters/ruby/generated.nix b/pkgs/development/interpreters/ruby/generated.nix index 01bbaa390f9..6ec0f4f73e5 100644 --- a/pkgs/development/interpreters/ruby/generated.nix +++ b/pkgs/development/interpreters/ruby/generated.nix @@ -19,7 +19,7 @@ g: # Get dependencies from patched gems bitbucket_backup = g.bitbucket_backup_0_3_1; builder = g.builder_3_2_2; buildr = g.buildr_1_4_19; - bundler = g.bundler_1_7_0; + bundler = g.bundler_1_7_1; childprocess = g.childprocess_0_5_3; chronic = g.chronic_0_10_2; coderay = g.coderay_1_1_0; @@ -102,7 +102,7 @@ g: # Get dependencies from patched gems rspec_expectations = g.rspec_expectations_2_14_5; rspec_mocks = g.rspec_mocks_2_14_6; rubyzip = g.rubyzip_1_1_6; - sass = g.sass_3_4_0; + sass = g.sass_3_4_1; selenium_webdriver = g.selenium_webdriver_2_42_0; servolux = g.servolux_0_10_0; sinatra = g.sinatra_1_4_5; @@ -113,6 +113,7 @@ g: # Get dependencies from patched gems systemu = g.systemu_2_6_4; taskjuggler = g.taskjuggler_3_5_0; term_ansicolor = g.term_ansicolor_1_3_0; + terminal_notifier = g.terminal_notifier_1_6_1; text = g.text_1_3_0; thin = g.thin_1_6_2; thor = g.thor_0_19_1; @@ -134,7 +135,7 @@ g: # Get dependencies from patched gems xapian_ruby = g.xapian_ruby_1_2_17; xml_simple = g.xml_simple_1_1_2; }; - gem_nix_args = [ ''autotest-rails'' ''aws-sdk'' ''bitbucket-backup'' ''buildr'' ''cucumber'' ''fakes3'' ''foreman'' ''gettext'' ''iconv'' ''jsduck'' ''lockfile'' ''mechanize'' ''nix'' ''papertrail-cli'' ''rails'' ''rake'' ''rb-fsevent'' ''remote_syslog'' ''riemann-dash'' ''right_aws'' ''rmail'' ''sass'' ''selenium-webdriver'' ''sinatra-1.3.2'' ''taskjuggler'' ''thin'' ''travis'' ''trollop'' ''uuid'' ''xapian-full'' ''xapian-ruby'' ]; + gem_nix_args = [ ''autotest-rails'' ''aws-sdk'' ''bitbucket-backup'' ''buildr'' ''cucumber'' ''fakes3'' ''foreman'' ''gettext'' ''iconv'' ''jsduck'' ''lockfile'' ''mechanize'' ''nix'' ''papertrail-cli'' ''rails'' ''rake'' ''rb-fsevent'' ''remote_syslog'' ''riemann-dash'' ''right_aws'' ''rmail'' ''sass'' ''selenium-webdriver'' ''sinatra-1.3.2'' ''taskjuggler'' ''terminal-notifier'' ''thin'' ''travis'' ''trollop'' ''uuid'' ''xapian-full'' ''xapian-ruby'' ]; gems = { ZenTest_4_10_1 = { basename = ''ZenTest''; @@ -361,19 +362,19 @@ for those one-off tasks, with a language that's a joy to use. ''; }; name = ''buildr-1.4.19''; - requiredGems = [ g.rake_0_9_2_2 g.builder_3_2_2 g.net_ssh_2_7_0 g.net_sftp_2_1_2 g.rubyzip_0_9_9 g.json_pure_1_8_0 g.hoe_3_7_1 g.rjb_1_4_8 g.atoulme_Antwrap_0_7_4 g.diff_lcs_1_2_4 g.rspec_expectations_2_14_3 g.rspec_mocks_2_14_3 g.rspec_core_2_14_5 g.rspec_2_14_1 g.xml_simple_1_1_2 g.minitar_0_5_4 g.bundler_1_7_0 g.orderedhash_0_0_6 ]; + requiredGems = [ g.rake_0_9_2_2 g.builder_3_2_2 g.net_ssh_2_7_0 g.net_sftp_2_1_2 g.rubyzip_0_9_9 g.json_pure_1_8_0 g.hoe_3_7_1 g.rjb_1_4_8 g.atoulme_Antwrap_0_7_4 g.diff_lcs_1_2_4 g.rspec_expectations_2_14_3 g.rspec_mocks_2_14_3 g.rspec_core_2_14_5 g.rspec_2_14_1 g.xml_simple_1_1_2 g.minitar_0_5_4 g.bundler_1_7_1 g.orderedhash_0_0_6 ]; sha256 = ''07k6z149si7v1h5m1bvdhjcv0nnjwkd2c6a8n1779l8g47ckccj0''; }; - bundler_1_7_0 = { + bundler_1_7_1 = { basename = ''bundler''; meta = { description = ''The best way to manage your application's dependencies''; homepage = ''http://bundler.io''; longDescription = ''Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably''; }; - name = ''bundler-1.7.0''; + name = ''bundler-1.7.1''; requiredGems = [ ]; - sha256 = ''0vcbqmr1h98yfaixjbpdyzz1b90ms8gf86kd3c0q0ydwh9yr7b1j''; + sha256 = ''144yqbmi89gl933rh8dv58bm7ia14s4a098qdi2z0q09ank9n5h2''; }; childprocess_0_5_3 = { basename = ''childprocess''; @@ -1378,7 +1379,7 @@ request helpers feature.''; longDescription = ''Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.''; }; name = ''rails-4.1.5''; - requiredGems = [ g.activesupport_4_1_5 g.actionpack_4_1_5 g.actionview_4_1_5 g.activemodel_4_1_5 g.activerecord_4_1_5 g.actionmailer_4_1_5 g.railties_4_1_5 g.bundler_1_7_0 g.sprockets_rails_2_1_3 ]; + requiredGems = [ g.activesupport_4_1_5 g.actionpack_4_1_5 g.actionview_4_1_5 g.activemodel_4_1_5 g.activerecord_4_1_5 g.actionmailer_4_1_5 g.railties_4_1_5 g.bundler_1_7_1 g.sprockets_rails_2_1_3 ]; sha256 = ''12s3jkvd6bn40apxc3973czgs7s6y36aclbwif6j770v7sjd9qj7''; }; railties_4_1_5 = { @@ -1475,7 +1476,7 @@ Rake has the following features: longDescription = ''HTTP dashboard for the distributed event system Riemann.''; }; name = ''riemann-dash-0.2.9''; - requiredGems = [ g.erubis_2_7_0 g.sinatra_1_4_5 g.sass_3_4_0 g.webrick_1_3_1 g.multi_json_1_3_6 ]; + requiredGems = [ g.erubis_2_7_0 g.sinatra_1_4_5 g.sass_3_4_1 g.webrick_1_3_1 g.multi_json_1_3_6 ]; sha256 = ''0ws5wmjbv8w9lcr3i2mdinj2qm91p6c85k6c067i67cf0p90jxq3''; }; right_aws_3_1_0 = { @@ -1689,7 +1690,7 @@ RKelly[https://github.com/tenderlove/rkelly] JavaScript parser.''; requiredGems = [ ]; sha256 = ''17ha7kmgcnhnxyfp9wgyrd2synp17v9g8j1pknhfd2v9x5g475m9''; }; - sass_3_4_0 = { + sass_3_4_1 = { basename = ''sass''; meta = { description = ''A powerful but elegant CSS compiler that makes CSS fun again.''; @@ -1700,9 +1701,9 @@ RKelly[https://github.com/tenderlove/rkelly] JavaScript parser.''; command line tool or a web-framework plugin. ''; }; - name = ''sass-3.4.0''; + name = ''sass-3.4.1''; requiredGems = [ ]; - sha256 = ''1v2kda9ff69nmz2qcxfmc1w5nxv81nays450nql0mbpy8pvydfr2''; + sha256 = ''0f997m7g6gcd4yaxxrf1nylk2x8ynf7w2l631sby51zfn21rfli4''; }; selenium_webdriver_2_42_0 = { basename = ''selenium_webdriver''; @@ -1836,6 +1837,16 @@ management. requiredGems = [ g.tins_1_3_2 ]; sha256 = ''1a2gw7gmpmx57sdpyhjwl0zn4bqp7jyjz7aslpvvphd075layp4b''; }; + terminal_notifier_1_6_1 = { + basename = ''terminal_notifier''; + meta = { + description = ''Send User Notifications on Mac OS X 10.8 or higher.''; + homepage = ''https://github.com/alloy/terminal-notifier''; + }; + name = ''terminal-notifier-1.6.1''; + requiredGems = [ ]; + sha256 = ''0j14sblviiypzc9vb508ldd78winba4vhnm9nhg3zpq07p3528g7''; + }; text_1_3_0 = { basename = ''text''; meta = { diff --git a/pkgs/development/interpreters/ruby/patches.nix b/pkgs/development/interpreters/ruby/patches.nix index 10cbf1ecfe5..9d694eac1e4 100644 --- a/pkgs/development/interpreters/ruby/patches.nix +++ b/pkgs/development/interpreters/ruby/patches.nix @@ -1,6 +1,6 @@ { fetchurl, writeScript, ruby, ncurses, sqlite, libxml2, libxslt, libffi , zlib, libuuid, gems, jdk, python, stdenv, libiconvOrEmpty, imagemagick -, pkgconfig }: +, pkgconfig, libiconv }: let @@ -80,9 +80,10 @@ in }; nokogiri = { + buildInputs = [ libxml2 ]; buildFlags = [ "--with-xml2-dir=${libxml2} --with-xml2-include=${libxml2}/include/libxml2" - "--with-xslt-dir=${libxslt}" + "--with-xslt-dir=${libxslt} --with-iconv-dir=${libiconv} --use-system-libraries" ]; }; diff --git a/pkgs/development/interpreters/ruby/ruby-2.1.2.nix b/pkgs/development/interpreters/ruby/ruby-2.1.2.nix new file mode 100644 index 00000000000..430bf4f1665 --- /dev/null +++ b/pkgs/development/interpreters/ruby/ruby-2.1.2.nix @@ -0,0 +1,72 @@ +{ stdenv, fetchurl +, zlib, zlibSupport ? true +, openssl, opensslSupport ? true +, gdbm, gdbmSupport ? true +, ncurses, readline, cursesSupport ? false +, groff, docSupport ? false +, libyaml, yamlSupport ? true +}: + +let + op = stdenv.lib.optional; + ops = stdenv.lib.optionals; +in + +stdenv.mkDerivation rec { + name = "ruby-2.1.2"; + src = fetchurl { + url = "http://cache.ruby-lang.org/pub/ruby/2.1/${name}.tar.bz2"; + sha256 = "6948b02570cdfb89a8313675d4aa665405900e27423db408401473f30fc6e901"; + }; + + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + NROFF = "${groff}/bin/nroff"; + + buildInputs = (ops cursesSupport [ ncurses readline ] ) + ++ (op docSupport groff ) + ++ (op zlibSupport zlib) + ++ (op opensslSupport openssl) + ++ (op gdbmSupport gdbm) + ++ (op yamlSupport libyaml) + # Looks like ruby fails to build on darwin without readline even if curses + # support is not enabled, so add readline to the build inputs if curses + # support is disabled (if it's enabled, we already have it) and we're + # running on darwin + ++ (op (!cursesSupport && stdenv.isDarwin) readline); + + enableParallelBuilding = true; + + configureFlags = ["--enable-shared" ] + # on darwin, we have /usr/include/tk.h -- so the configure script detects + # that tk is installed + ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); + + installFlags = stdenv.lib.optionalString docSupport "install-doc"; + # Bundler tries to create this directory + postInstall = '' + # Bundler tries to create this directory + mkdir -pv $out/${passthru.gemPath} + mkdir -p $out/nix-support + cat > $out/nix-support/setup-hook < 'worldBuilder.self' _RunScript + # + # This image can later be started with: + # $ Self -s myimage.snap + # + version = "4.5.0"; + name = "self-${version}"; + + src = fetchgit { + url = "https://github.com/russellallen/self"; + rev = "d16bcaad3c5092dae81ad0b16d503f2a53b8ef86"; + sha256 = "966025b71542e44fc830b951f404f5721ad410ed24f7236fd0cd820ea0fc5731"; + }; + + # gcc 4.6 and above causes crashes on Self startup but gcc 4.4 works. + buildInputs = [ gcc44 ncurses xlibs.libX11 xlibs.libXext makeWrapper cmake ]; + + selfWrapper = ./self; + + installPhase = '' + mkdir -p "$out"/bin + cp ./vm/Self "$out"/bin/Self.wrapped + mkdir -p "$out"/share/self + cp -r ../objects "$out"/share/self/ + makeWrapper $selfWrapper $out/bin/Self \ + --set SELF_ROOT "$out" + ''; + + meta = { + description = "A prototype-based dynamic object-oriented programming language, environment, and virtual machine"; + homepage = "http://selflanguage.org/"; + license = stdenv.lib.licenses.bsd3; + maintainer = [ stdenv.lib.maintainers.doublec ]; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/pkgs/development/interpreters/self/self b/pkgs/development/interpreters/self/self new file mode 100755 index 00000000000..d504682086b --- /dev/null +++ b/pkgs/development/interpreters/self/self @@ -0,0 +1,18 @@ +#! /usr/bin/env bash + +export SELF_HOME="$HOME/.local/share/self" +if [ -n "$XDG_DATA_HOME" ] + then export SELF_HOME="$XDG_DATA_HOME/self" +fi + +if [ ! -d $SELF_HOME ]; then + mkdir -p $SELF_HOME +fi + +if [ ! -d $SELF_HOME/objects ]; then + mkdir -p $SELF_HOME/objects + cp -r $SELF_ROOT/share/self/objects/* $SELF_HOME/objects + chmod -R +w $SELF_HOME/objects +fi + +exec $SELF_ROOT/bin/Self.wrapped "$@" diff --git a/pkgs/development/libraries/CGAL/default.nix b/pkgs/development/libraries/CGAL/default.nix index 12273f84566..4c2739d00ec 100644 --- a/pkgs/development/libraries/CGAL/default.nix +++ b/pkgs/development/libraries/CGAL/default.nix @@ -1,13 +1,13 @@ { stdenv, fetchurl, cmake, boost, gmp, mpfr }: stdenv.mkDerivation rec { - version = "4.3"; + version = "4.4"; name = "cgal-${version}"; src = fetchurl { - url = "https://gforge.inria.fr/frs/download.php/32995/CGAL-${version}.tar.xz"; - sha256 = "015vw57dmy43bf63mg3916cgcsbv9dahwv24bnmiajyanj2mhiyc"; + url = "https://gforge.inria.fr/frs/download.php/33526/CGAL-${version}.tar.xz"; + sha256 = "1s0ylyrx74vgw6vsg6xxk4b07jrxh8pqcmxcbkx46v01nczv3ixj"; }; buildInputs = [ cmake boost gmp mpfr ]; diff --git a/pkgs/development/libraries/SDL2_net/default.nix b/pkgs/development/libraries/SDL2_net/default.nix new file mode 100644 index 00000000000..e41546512e9 --- /dev/null +++ b/pkgs/development/libraries/SDL2_net/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, SDL2 }: + +stdenv.mkDerivation rec { + name = "SDL2_net-2.0.0"; + + src = fetchurl { + url = "http://www.libsdl.org/projects/SDL_net/release/${name}.tar.gz"; + sha256 = "d715be30783cc99e541626da52079e308060b21d4f7b95f0224b1d06c1faacab"; + }; + + propagatedBuildInputs = [SDL2]; + + postInstall = "ln -s $out/include/SDL2/SDL_net.h $out/include/"; + + meta = with stdenv.lib; { + description = "SDL multiplatform networking library"; + homepage = https://www.libsdl.org/projects/SDL_net; + license = licenses.zlib; + maintainers = [ maintainers.MP2E ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/libraries/audio/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix index d1510e34238..9f3307742ec 100644 --- a/pkgs/development/libraries/audio/lilv/default.nix +++ b/pkgs/development/libraries/audio/lilv/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "lilv-${version}"; - version = "0.18.0"; + version = "0.20.0"; src = fetchurl { url = "http://download.drobilla.net/${name}.tar.bz2"; - sha256 = "1k9wfc08ylgbkwbnvh1fx1bdzl3y59xrrx8gv0vk68yzcvcmv6am"; + sha256 = "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2"; }; buildInputs = [ lv2 pkgconfig python serd sord sratom ]; diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix index 25d19d089a5..f03f6b3d371 100644 --- a/pkgs/development/libraries/audio/lv2/default.nix +++ b/pkgs/development/libraries/audio/lv2/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "lv2-${version}"; - version = "1.8.0"; + version = "1.10.0"; src = fetchurl { url = "http://lv2plug.in/spec/${name}.tar.bz2"; - sha256 = "1mxkp7gajh1alw6s358cqwf3qkpr1ld9wfxwswnqrxcd9a7hxjd4"; + sha256 = "1md41x9snrp4mcfyli7lyfpvcfa78nfy6xkdy84kppnl8m5qw378"; }; buildInputs = [ gtk libsndfile pkgconfig python ]; diff --git a/pkgs/development/libraries/audio/sratom/default.nix b/pkgs/development/libraries/audio/sratom/default.nix index ac0b9d233fa..a4ba4c16c87 100644 --- a/pkgs/development/libraries/audio/sratom/default.nix +++ b/pkgs/development/libraries/audio/sratom/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "sratom-${version}"; - version = "0.4.4"; + version = "0.4.6"; src = fetchurl { url = "http://download.drobilla.net/${name}.tar.bz2"; - sha256 = "1q4044md8nmqah8ay5mf4lgdl6x0sfa4cjqyqk9da8nqzvs2j37s"; + sha256 = "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"; }; buildInputs = [ lv2 pkgconfig python serd sord ]; diff --git a/pkgs/development/libraries/audio/suil/default.nix b/pkgs/development/libraries/audio/suil/default.nix index 87e03472659..f5a98750ded 100644 --- a/pkgs/development/libraries/audio/suil/default.nix +++ b/pkgs/development/libraries/audio/suil/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "suil-${version}"; - version = "0.8.0"; + version = "0.8.2"; src = fetchurl { url = "http://download.drobilla.net/${name}.tar.bz2"; - sha256 = "0y5sbgaivb03vmr3jcpzj16wqxa5h744ml4w3ylzglbxs2bqgl7n"; + sha256 = "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"; }; buildInputs = [ gtk lv2 pkgconfig python qt4 serd sord sratom ]; diff --git a/pkgs/development/libraries/axis/builder.sh b/pkgs/development/libraries/axis/builder.sh deleted file mode 100644 index d979eb9d803..00000000000 --- a/pkgs/development/libraries/axis/builder.sh +++ /dev/null @@ -1,5 +0,0 @@ -source $stdenv/setup - -mkdir -p $out -unpackPhase -mv $directory/* $out diff --git a/pkgs/development/libraries/axis/default.nix b/pkgs/development/libraries/axis/default.nix deleted file mode 100644 index 62ae463b5fc..00000000000 --- a/pkgs/development/libraries/axis/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{stdenv, fetchurl}: - -stdenv.mkDerivation { - name = "axis-1.3"; - directory = "axis-1_3"; - builder = ./builder.sh; - src = fetchurl { - url = "http://archive.apache.org/dist/ws/axis/1_3/axis-bin-1_3.tar.gz"; - md5 = "dd8203f08c37872f4fd2bfb45c4bfe04"; - }; - inherit stdenv; - - meta = { - description = "Implementation of the SOAP (Simple Object Access Protocol) submission to W3C"; - }; -} diff --git a/pkgs/development/libraries/boost/1.44.nix b/pkgs/development/libraries/boost/1.44.nix index b188586e84f..c192acd23bd 100644 --- a/pkgs/development/libraries/boost/1.44.nix +++ b/pkgs/development/libraries/boost/1.44.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation { meta = { homepage = "http://boost.org/"; - description = "Boost C++ Library Collection"; + description = "Collection of C++ libraries"; license = "boost-license"; maintainers = [ stdenv.lib.maintainers.simons ]; diff --git a/pkgs/development/libraries/boost/1.49.nix b/pkgs/development/libraries/boost/1.49.nix index fca4249e963..9e61683238f 100644 --- a/pkgs/development/libraries/boost/1.49.nix +++ b/pkgs/development/libraries/boost/1.49.nix @@ -44,7 +44,7 @@ stdenv.mkDerivation { meta = { homepage = "http://boost.org/"; - description = "Boost C++ Library Collection"; + description = "Collection of C++ libraries"; license = "boost-license"; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/development/libraries/boost/1.55.nix b/pkgs/development/libraries/boost/1.55.nix index bf355f7169c..1e9d2134d12 100644 --- a/pkgs/development/libraries/boost/1.55.nix +++ b/pkgs/development/libraries/boost/1.55.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation { meta = { homepage = "http://boost.org/"; - description = "Boost C++ Library Collection"; + description = "Collection of C++ libraries"; license = "boost-license"; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/development/libraries/ccrtp/default.nix b/pkgs/development/libraries/ccrtp/default.nix index 2111e1b4a55..3e75cb45a73 100644 --- a/pkgs/development/libraries/ccrtp/default.nix +++ b/pkgs/development/libraries/ccrtp/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation { doCheck = true; meta = { - description = "GNU ccRTP, an implementation of the IETF real-time transport protocol (RTP)"; + description = "An implementation of the IETF real-time transport protocol (RTP)"; homepage = http://www.gnu.org/software/ccrtp/; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ marcweber ]; diff --git a/pkgs/development/libraries/celt/default.nix b/pkgs/development/libraries/celt/default.nix index 28e51efbc4b..ca25be90504 100644 --- a/pkgs/development/libraries/celt/default.nix +++ b/pkgs/development/libraries/celt/default.nix @@ -29,7 +29,7 @@ rec { phaseNames = ["doConfigure" "doMakeInstall"]; meta = { - description = "CELT - low-delay audio codec"; + description = "Low-delay audio codec"; maintainers = with a.lib.maintainers; [ raskin diff --git a/pkgs/development/libraries/cfitsio/default.nix b/pkgs/development/libraries/cfitsio/default.nix index 06f2deb3a7c..54e5988eda6 100644 --- a/pkgs/development/libraries/cfitsio/default.nix +++ b/pkgs/development/libraries/cfitsio/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { meta = { homepage = http://heasarc.gsfc.nasa.gov/fitsio/; - description = "CFITSIO, a library for reading and writing FITS data files"; + description = "Library for reading and writing FITS data files"; longDescription = '' CFITSIO is a library of C and Fortran subroutines for reading and diff --git a/pkgs/development/libraries/check/default.nix b/pkgs/development/libraries/check/default.nix index 4e75cda0c23..a782ff61e28 100644 --- a/pkgs/development/libraries/check/default.nix +++ b/pkgs/development/libraries/check/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation { doCheck = false; meta = { - description = "Check, a unit testing framework for C"; + description = "Unit testing framework for C"; longDescription = '' Check is a unit testing framework for C. It features a simple diff --git a/pkgs/development/libraries/chipmunk/default.nix b/pkgs/development/libraries/chipmunk/default.nix index d148c4d829a..63c5959960a 100644 --- a/pkgs/development/libraries/chipmunk/default.nix +++ b/pkgs/development/libraries/chipmunk/default.nix @@ -34,6 +34,6 @@ rec { name = "chipmunk-" + version; meta = { - description = "Chipmunk 2D physics engine"; + description = "2D physics engine"; }; } diff --git a/pkgs/development/libraries/chromaprint/default.nix b/pkgs/development/libraries/chromaprint/default.nix index 40d41b633d2..010d2cb7ccc 100644 --- a/pkgs/development/libraries/chromaprint/default.nix +++ b/pkgs/development/libraries/chromaprint/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, fftw, boost }: +{ stdenv, fetchurl, cmake, ffmpeg, boost }: stdenv.mkDerivation rec { name = "chromaprint-${version}"; @@ -9,11 +9,17 @@ stdenv.mkDerivation rec { sha256 = "04nd8xmy4kgnpfffj6hw893f80bwhp43i01zpmrinn3497mdf53b"; }; - buildInputs = [ cmake fftw boost ]; + buildInputs = [ cmake ffmpeg boost ]; - meta = { + cmakeFlags = [ "-DBUILD_EXAMPLES=ON" ]; + + postInstall = "installBin examples/fpcalc"; + + meta = with stdenv.lib; { homepage = "http://acoustid.org/chromaprint"; description = "AcoustID audio fingerprinting library"; - license = stdenv.lib.licenses.lgpl21Plus; + maintainers = with maintainers; [ emery ]; + license = licenses.lgpl21Plus; + platforms = platforms.all; }; } diff --git a/pkgs/development/libraries/cloog/default.nix b/pkgs/development/libraries/cloog/default.nix index da4501285e1..7ea7e597d40 100644 --- a/pkgs/development/libraries/cloog/default.nix +++ b/pkgs/development/libraries/cloog/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "CLooG, the Chunky Loop Generator"; + description = "Library that generates loops for scanning polyhedra"; longDescription = '' CLooG is a free software library to generate code for scanning diff --git a/pkgs/development/libraries/clutter-gst/default.nix b/pkgs/development/libraries/clutter-gst/default.nix index 59c64b0de9f..7cef673dbc6 100644 --- a/pkgs/development/libraries/clutter-gst/default.nix +++ b/pkgs/development/libraries/clutter-gst/default.nix @@ -1,11 +1,11 @@ { fetchurl, stdenv, pkgconfig, clutter, gtk3, glib, cogl }: stdenv.mkDerivation rec { - name = "clutter-gst-2.0.10"; + name = "clutter-gst-2.0.12"; src = fetchurl { url = "mirror://gnome/sources/clutter-gst/2.0/${name}.tar.xz"; - sha256 = "f00cf492a6d4f1036c70d8a0ebd2f0f47586ea9a9b49b1ffda79c9dc7eadca00"; + sha256 = "1dgzpd5l5ld622b8185c3khvvllm5hfvq4q1a1mgzhxhj8v4bwf2"; }; propagatedBuildInputs = [ clutter gtk3 glib cogl ]; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { postBuild = "rm -rf $out/share/gtk-doc"; meta = { - description = "Clutter-GST"; + description = "GStreamer bindings for clutter"; homepage = http://www.clutter-project.org/; diff --git a/pkgs/development/libraries/clutter/default.nix b/pkgs/development/libraries/clutter/default.nix index 027b90d8e11..67de04050af 100644 --- a/pkgs/development/libraries/clutter/default.nix +++ b/pkgs/development/libraries/clutter/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { #doCheck = true; # no tests possible without a display meta = { - description = "Clutter, a library for creating fast, dynamic graphical user interfaces"; + description = "Library for creating fast, dynamic graphical user interfaces"; longDescription = '' Clutter is free software library for creating fast, compelling, diff --git a/pkgs/development/libraries/coprthr/default.nix b/pkgs/development/libraries/coprthr/default.nix index 0e521aa19e8..40be21131d2 100644 --- a/pkgs/development/libraries/coprthr/default.nix +++ b/pkgs/development/libraries/coprthr/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://github.com/browndeer/coprthr/archive/stable-${version}.zip"; - sha256 = "042aykmcxhdpck0j6k5rcp6a0b5i377fv2nz96v1bpfhzxd1mjwg"; + sha256 = "0ilx4v1ydppjnq1i0z5j0x4lmi29z39sappar7c0wqady0b5dpz9"; }; buildInputs = @@ -33,5 +33,6 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.lgpl3; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.thoughtpolice ]; + broken = true; }; } diff --git a/pkgs/development/libraries/eigen/default.nix b/pkgs/development/libraries/eigen/default.nix index 72a140ed371..14308dc0eb0 100644 --- a/pkgs/development/libraries/eigen/default.nix +++ b/pkgs/development/libraries/eigen/default.nix @@ -1,15 +1,15 @@ {stdenv, fetchurl, cmake}: let - v = "3.2.1"; + version = "3.2.2"; in stdenv.mkDerivation { - name = "eigen-${v}"; + name = "eigen-${version}"; src = fetchurl { - url = "http://bitbucket.org/eigen/eigen/get/${v}.tar.bz2"; - name = "eigen-${v}.tar.bz2"; - sha256 = "12ljdirih9n3cf8hy00in285c2ccah7mgalmmr8gc3ldwznz5rk6"; + url = "http://bitbucket.org/eigen/eigen/get/${version}.tar.gz"; + name = "eigen-${version}.tar.gz"; + sha256 = "0pwykjkz5n8wfyg9cjj7smgs54a9zc80m9gi106w43n2m72ni39i"; }; nativeBuildInputs = [ cmake ]; @@ -19,5 +19,6 @@ stdenv.mkDerivation { license = licenses.lgpl3Plus; homepage = http://eigen.tuxfamily.org ; maintainers = with stdenv.lib.maintainers; [ sander urkud raskin ]; + inherit version; }; } diff --git a/pkgs/development/libraries/eigen/default.upstream b/pkgs/development/libraries/eigen/default.upstream new file mode 100644 index 00000000000..c0c05efc466 --- /dev/null +++ b/pkgs/development/libraries/eigen/default.upstream @@ -0,0 +1,4 @@ +url http://eigen.tuxfamily.org/ +ensure_choice +version '.*/([-0-9.]+)[.]tar[.].*' '\1' +do_overwrite() { do_overwrite_just_version; } diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix index d7915a93962..9a49225d172 100644 --- a/pkgs/development/libraries/expat/default.nix +++ b/pkgs/development/libraries/expat/default.nix @@ -8,9 +8,10 @@ stdenv.mkDerivation rec { sha256 = "11pblz61zyxh68s5pdcbhc30ha1b2vfjd83aiwfg4vc15x3hadw2"; }; - meta = { + meta = with stdenv.lib; { homepage = http://www.libexpat.org/; description = "A stream-oriented XML parser library written in C"; - platforms = stdenv.lib.platforms.all; + platforms = platforms.all; + license = licenses.mit; # expat version }; } diff --git a/pkgs/development/libraries/ffmpeg/2.x.nix b/pkgs/development/libraries/ffmpeg/2.x.nix index 19a4099a8b1..8114eb4752d 100644 --- a/pkgs/development/libraries/ffmpeg/2.x.nix +++ b/pkgs/development/libraries/ffmpeg/2.x.nix @@ -5,11 +5,12 @@ }: stdenv.mkDerivation rec { - name = "ffmpeg-2.3.2"; + version = "2.3.3"; + name = "ffmpeg-${version}"; src = fetchurl { url = "http://www.ffmpeg.org/releases/${name}.tar.bz2"; - sha256 = "1lpzqjpklmcjzk327pz070m3qz3s1cwg8v90w6r1sdh8491kbqc4"; + sha256 = "0ik4c06anh49r5b0d3rq9if4zl6ysjsa341655kzw22fl880sk5v"; }; subtitleSupport = config.ffmpeg.subtitle or true; @@ -102,5 +103,6 @@ stdenv.mkDerivation rec { description = "A complete, cross-platform solution to record, convert and stream audio and video"; license = if (fdkAACSupport || faacSupport) then stdenv.lib.licenses.unfree else stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; }; } diff --git a/pkgs/development/libraries/fox/default.nix b/pkgs/development/libraries/fox/default.nix index 63acc14521c..6d7d7a83879 100644 --- a/pkgs/development/libraries/fox/default.nix +++ b/pkgs/development/libraries/fox/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - description = "FOX is a C++ based class library for building Graphical User Interfaces"; + description = "C++ based class library for building Graphical User Interfaces"; longDescription = '' FOX stands for Free Objects for X. It is a C++ based class library for building Graphical User Interfaces. diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix index 4d400a6ea7d..9d62472c27e 100644 --- a/pkgs/development/libraries/gettext/default.nix +++ b/pkgs/development/libraries/gettext/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation (rec { }; meta = { - description = "GNU gettext, a well integrated set of translation tools and documentation"; + description = "Well integrated set of translation tools and documentation"; longDescription = '' Usually, programs are written and documented in English, and use diff --git a/pkgs/development/libraries/git2/default.nix b/pkgs/development/libraries/git2/default.nix index abb782641dd..7cab317380e 100644 --- a/pkgs/development/libraries/git2/default.nix +++ b/pkgs/development/libraries/git2/default.nix @@ -1,13 +1,13 @@ {stdenv, fetchurl, cmake, zlib, python}: stdenv.mkDerivation rec { - version = "0.20.0"; + version = "0.21.1"; name = "libgit2-${version}"; src = fetchurl { name = "${name}.tar.gz"; url = "https://github.com/libgit2/libgit2/tarball/v${version}"; - sha256 = "1iyncz8fqazw683dxjls3lf5pw3f5ma8kachkvjz7dsq57wxllbj"; + sha256 = "0afbvcsryg7bsmbfj23l09b1xngkmqhf043njl8wm44qslrxibkz"; }; cmakeFlags = "-DTHREADSAFE=ON"; diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index f4157cdd8d0..839ba7cfa95 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -7,6 +7,8 @@ with stdenv.lib; +assert stdenv.gcc.gcc != null; + # TODO: # * Add gio-module-fam # Problem: cyclic dependency on gamin @@ -49,7 +51,7 @@ stdenv.mkDerivation rec { sha256 = "1d98mbqjmc34s8095lkw1j1bwvnnkw9581yfvjaikjvfjsaz29qd"; }; - patches = optional stdenv.isDarwin ./darwin-compilation.patch; + patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch; setupHook = ./setup-hook.sh; @@ -105,7 +107,7 @@ stdenv.mkDerivation rec { }; meta = with stdenv.lib; { - description = "GLib, a C library of programming buildings blocks"; + description = "C library of programming buildings blocks"; homepage = http://www.gtk.org/; license = licenses.lgpl2Plus; maintainers = with maintainers; [ lovek323 raskin urkud ]; diff --git a/pkgs/development/libraries/glib/skip-timer-test.patch b/pkgs/development/libraries/glib/skip-timer-test.patch new file mode 100644 index 00000000000..942f3e7864c --- /dev/null +++ b/pkgs/development/libraries/glib/skip-timer-test.patch @@ -0,0 +1,17 @@ +Description: Skip test which performs some unreliable floating point comparisons +Forwarded: https://bugzilla.gnome.org/show_bug.cgi?id=722604 + +Index: b/glib/tests/timer.c +=================================================================== +--- a/glib/tests/timer.c ++++ b/glib/tests/timer.c +@@ -203,7 +203,7 @@ + { + g_test_init (&argc, &argv, NULL); + +- g_test_add_func ("/timer/basic", test_timer_basic); ++/* g_test_add_func ("/timer/basic", test_timer_basic);*/ +- g_test_add_func ("/timer/stop", test_timer_stop); ++/* g_test_add_func ("/timer/stop", test_timer_stop);*/ + g_test_add_func ("/timer/continue", test_timer_continue); + g_test_add_func ("/timer/reset", test_timer_reset); diff --git a/pkgs/development/libraries/glibc/2.19/multi.nix b/pkgs/development/libraries/glibc/2.19/multi.nix new file mode 100644 index 00000000000..ad4a34152b6 --- /dev/null +++ b/pkgs/development/libraries/glibc/2.19/multi.nix @@ -0,0 +1,31 @@ +{ runCommand, glibc, glibc32 +}: + +runCommand "${glibc.name}-multi" + { inherit glibc32; + glibc64 = glibc; + } + '' + mkdir -p $out + ln -s $glibc64/* $out/ + + rm $out/lib $out/lib64 + mkdir -p $out/lib + ln -s $glibc64/lib/* $out/lib + ln -s $glibc32/lib $out/lib/32 + ln -s lib $out/lib64 + + # fixing ldd RLTDLIST + rm $out/bin + cp -rs $glibc64/bin $out + chmod u+w $out/bin + rm $out/bin/ldd + sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-2.19.so $out/lib/32/ld-linux.so.2\"|g" \ + $glibc64/bin/ldd > $out/bin/ldd + chmod 555 $out/bin/ldd + + rm $out/include + cp -rs $glibc32/include $out + chmod -R u+w $out/include + cp -rsf $glibc64/include $out + '' diff --git a/pkgs/development/libraries/glog/default.nix b/pkgs/development/libraries/glog/default.nix index 098643ae70f..d3f74f4043a 100644 --- a/pkgs/development/libraries/glog/default.nix +++ b/pkgs/development/libraries/glog/default.nix @@ -11,6 +11,6 @@ stdenv.mkDerivation rec { meta = { homepage = http://code.google.com/p/google-glog/; license = "BSD"; - description = "The glog library implements application-level logging."; + description = "Library for application-level logging"; }; } diff --git a/pkgs/development/libraries/gmock/default.nix b/pkgs/development/libraries/gmock/default.nix new file mode 100644 index 00000000000..71ac281195b --- /dev/null +++ b/pkgs/development/libraries/gmock/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, unzip, cmake}: + +stdenv.mkDerivation rec { + version = "1.7.0"; + name = "gmock-${version}"; + + src = fetchurl { + url = "https://googlemock.googlecode.com/files/${name}.zip"; + sha256="26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b"; + }; + + buildInputs = [ unzip cmake ]; + + buildPhase = '' + # avoid building gtest + make gmock gmock_main + ''; + + installPhase = '' + mkdir -p $out/lib + cp -v libgmock.a libgmock_main.a $out/lib + cp -v -r ../include $out + cp -v -r ../src $out + ''; + + meta = { + description = "Google mock: Google's framework for writing C++ mock classes"; + homepage = https://code.google.com/p/googlemock/; + license = stdenv.lib.licenses.bsd3; + maintainers = [ stdenv.lib.maintainers.auntie ]; + }; +} diff --git a/pkgs/development/libraries/gmp/4.3.2.nix b/pkgs/development/libraries/gmp/4.3.2.nix index d0559c46795..e9cfda032b1 100644 --- a/pkgs/development/libraries/gmp/4.3.2.nix +++ b/pkgs/development/libraries/gmp/4.3.2.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { doCheck = false; meta = { - description = "GMP, the GNU multiple precision arithmetic library"; + description = "GNU multiple precision arithmetic library"; longDescription = '' GMP is a free library for arbitrary precision arithmetic, operating diff --git a/pkgs/development/libraries/gmp/5.0.5.nix b/pkgs/development/libraries/gmp/5.0.5.nix index c96c830e2f7..5f3690f67a9 100644 --- a/pkgs/development/libraries/gmp/5.0.5.nix +++ b/pkgs/development/libraries/gmp/5.0.5.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { }; meta = { - description = "GMP, the GNU multiple precision arithmetic library"; + description = "GNU multiple precision arithmetic library"; longDescription = '' GMP is a free library for arbitrary precision arithmetic, operating diff --git a/pkgs/development/libraries/gmp/5.1.x.nix b/pkgs/development/libraries/gmp/5.1.x.nix index 9e28334804b..14a6d34d932 100644 --- a/pkgs/development/libraries/gmp/5.1.x.nix +++ b/pkgs/development/libraries/gmp/5.1.x.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation (rec { meta = with stdenv.lib; { homepage = "http://gmplib.org/"; - description = "GMP, the GNU multiple precision arithmetic library"; + description = "GNU multiple precision arithmetic library"; license = licenses.gpl3Plus; longDescription = diff --git a/pkgs/development/libraries/gnutls/3.1.nix b/pkgs/development/libraries/gnutls/3.1.nix index 6aea78a3ac5..44ea0176e38 100644 --- a/pkgs/development/libraries/gnutls/3.1.nix +++ b/pkgs/development/libraries/gnutls/3.1.nix @@ -4,11 +4,11 @@ assert guileBindings -> guile != null; stdenv.mkDerivation rec { - name = "gnutls-3.1.25"; + name = "gnutls-3.1.26"; src = fetchurl { url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/${name}.tar.lz"; - sha256 = "1i1v8pbaw72k0ps09i3lvc1zr9gn34jpliiijbs8k7axrv2w9n5g"; + sha256 = "7947e18fd0c292c0274d810c9bdf674b8faa3566e056ea404a39f335982607a3"; }; # FreeBSD doesn't have , and Gnulib's `alloca' module isn't used. diff --git a/pkgs/development/libraries/gnutls/3.2.nix b/pkgs/development/libraries/gnutls/3.2.nix index cd48e08a39c..5bf933fbc96 100644 --- a/pkgs/development/libraries/gnutls/3.2.nix +++ b/pkgs/development/libraries/gnutls/3.2.nix @@ -4,11 +4,11 @@ assert guileBindings -> guile != null; stdenv.mkDerivation rec { - name = "gnutls-3.2.15"; + name = "gnutls-3.2.17"; src = fetchurl { url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/${name}.tar.lz"; - sha256 = "16c5c4k41mxib8i06npks940p9xllgn1wrackfp8712wdvl5zc4q"; + sha256 = "a332adda1d294fbee859ae46ee0c128d8959c4a5b9c28e7cdbe5c9b56898fc25"; }; patches = diff --git a/pkgs/development/libraries/gss/default.nix b/pkgs/development/libraries/gss/default.nix index 207b8248698..75ae4054592 100644 --- a/pkgs/development/libraries/gss/default.nix +++ b/pkgs/development/libraries/gss/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU GSS Generic Security Service"; + description = "Generic Security Service"; longDescription = '' GSS is an implementation of the Generic Security Service Application diff --git a/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix b/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix index ff26e727e9f..777f4a06313 100644 --- a/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix +++ b/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://gstreamer.freedesktop.org/modules/gnonlin.html"; - description = "http://gstreamer.freedesktop.org/modules/gnonlin.html"; + description = "Gstreamer Non-Linear Multimedia Editing Plugins"; license = stdenv.lib.licenses.gpl2Plus; }; } diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix index f781c624cea..b608f891533 100644 --- a/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix +++ b/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://gstreamer.freedesktop.org; - description = "GStreamer, a library for constructing graphs of media-handling components"; + description = "Library for constructing graphs of media-handling components"; longDescription = '' GStreamer is a library for constructing graphs of media-handling diff --git a/pkgs/development/libraries/gtk+/2.x.nix b/pkgs/development/libraries/gtk+/2.x.nix index 8812ea70c79..ff4d6ca6733 100644 --- a/pkgs/development/libraries/gtk+/2.x.nix +++ b/pkgs/development/libraries/gtk+/2.x.nix @@ -37,6 +37,13 @@ stdenv.mkDerivation rec { postInstall = "rm -rf $out/share/gtk-doc"; + passthru = { + gtkExeEnvPostBuild = '' + rm $out/lib/gtk-2.0/2.10.0/immodules.cache + $out/bin/gtk-query-immodules-2.0 $out/lib/gtk-2.0/2.10.0/immodules/*.so > $out/lib/gtk-2.0/2.10.0/immodules.cache + ''; # workaround for bug of nix-mode for Emacs */ ''; + }; + meta = with stdenv.lib; { description = "A multi-platform toolkit for creating graphical user interfaces"; homepage = http://www.gtk.org/; diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix index 09221502e36..fa350110476 100644 --- a/pkgs/development/libraries/gtk+/3.x.nix +++ b/pkgs/development/libraries/gtk+/3.x.nix @@ -38,6 +38,13 @@ stdenv.mkDerivation rec { postInstall = "rm -rf $out/share/gtk-doc"; + passthru = { + gtkExeEnvPostBuild = '' + rm $out/lib/gtk-3.0/3.0.0/immodules.cache + $out/bin/gtk-query-immodules-3.0 $out/lib/gtk-3.0/3.0.0/immodules/*.so > $out/lib/gtk-3.0/3.0.0/immodules.cache + ''; # workaround for bug of nix-mode for Emacs */ ''; + }; + meta = { description = "A multi-platform toolkit for creating graphical user interfaces"; diff --git a/pkgs/development/libraries/gtkimageview/default.nix b/pkgs/development/libraries/gtkimageview/default.nix index 6905adcd71e..b57c91c4455 100644 --- a/pkgs/development/libraries/gtkimageview/default.nix +++ b/pkgs/development/libraries/gtkimageview/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://trac.bjourne.webfactional.com/; - description = "The GtkImageView image viewer widget for GTK+"; + description = "Image viewer widget for GTK+"; longDescription = '' GtkImageView is a simple image viewer widget for GTK+. Similar to diff --git a/pkgs/development/libraries/gtkmathview/default.nix b/pkgs/development/libraries/gtkmathview/default.nix index 2620d9cc120..8a6914cfcd3 100644 --- a/pkgs/development/libraries/gtkmathview/default.nix +++ b/pkgs/development/libraries/gtkmathview/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { meta = { homepage = http://helm.cs.unibo.it/mml-widget/; - description = "GtkMathView is a C++ rendering engine for MathML documents"; + description = "C++ rendering engine for MathML documents"; license = stdenv.lib.licenses.lgpl3Plus; maintainers = [ stdenv.lib.maintainers.roconnor ]; }; diff --git a/pkgs/development/libraries/gupnp/default.nix b/pkgs/development/libraries/gupnp/default.nix index bae0639a61c..e278980e1e1 100644 --- a/pkgs/development/libraries/gupnp/default.nix +++ b/pkgs/development/libraries/gupnp/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.gupnp.org/; - description = "GUPnP is an implementation of the UPnP specification."; + description = "An implementation of the UPnP specification"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/development/libraries/haskell/Chart-cairo/default.nix b/pkgs/development/libraries/haskell/Chart-cairo/default.nix index d2dea815819..28480a4d27d 100644 --- a/pkgs/development/libraries/haskell/Chart-cairo/default.nix +++ b/pkgs/development/libraries/haskell/Chart-cairo/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "Chart-cairo"; - version = "1.2.4"; - sha256 = "1ggqh3v14mwv9q1pmz3hbx7g1dvibfwl1vzvag92q7432q4pqm2z"; + version = "1.3"; + sha256 = "1d8v4imbb2g30gbxj3xlm1vqc17cnqbiysxp78n3vrxnalr8s98l"; buildDepends = [ cairo Chart colour dataDefaultClass lens mtl operational time ]; diff --git a/pkgs/development/libraries/haskell/Chart-diagrams/default.nix b/pkgs/development/libraries/haskell/Chart-diagrams/default.nix index 002b762fbac..ff4898eb1e7 100644 --- a/pkgs/development/libraries/haskell/Chart-diagrams/default.nix +++ b/pkgs/development/libraries/haskell/Chart-diagrams/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "Chart-diagrams"; - version = "1.2.4"; - sha256 = "099frqvfjqqc7h3zr52saqyg37di0klr0y649afzxd7lj3d67mvw"; + version = "1.3"; + sha256 = "1lfdv2bn942w4b0bjd6aw59wdc2jfk305ym5vm88liy9127b65bp"; buildDepends = [ blazeSvg Chart colour dataDefaultClass diagramsCore diagramsLib diagramsPostscript diagramsSvg lens mtl operational SVGFonts text @@ -20,6 +20,5 @@ cabal.mkDerivation (self: { description = "Diagrams backend for Charts"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - hydraPlatforms = self.stdenv.lib.platforms.none; }; }) diff --git a/pkgs/development/libraries/haskell/Chart-gtk/default.nix b/pkgs/development/libraries/haskell/Chart-gtk/default.nix index 9dbb3c8ae9a..0ce13bd8737 100644 --- a/pkgs/development/libraries/haskell/Chart-gtk/default.nix +++ b/pkgs/development/libraries/haskell/Chart-gtk/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "Chart-gtk"; - version = "1.2.4"; - sha256 = "16dfmkls341cmk13j1z3rw2wxdvxr5rqsv1ff4qjhjak9j7hkqjq"; + version = "1.3"; + sha256 = "1bi7gim31w3xf6jsd2hkwhkhw1i9c4dmxnm3f46336k9rsxn59ph"; buildDepends = [ cairo Chart ChartCairo colour gtk mtl time ]; meta = { homepage = "https://github.com/timbod7/haskell-chart/wiki"; diff --git a/pkgs/development/libraries/haskell/Chart/default.nix b/pkgs/development/libraries/haskell/Chart/default.nix index d5696a562da..557721007ed 100644 --- a/pkgs/development/libraries/haskell/Chart/default.nix +++ b/pkgs/development/libraries/haskell/Chart/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "Chart"; - version = "1.2.4"; - sha256 = "0zizrkxsligvxs5x5r2j0pynf6ncjl4mgyzbh1zfqgnz29frylh7"; + version = "1.3"; + sha256 = "1xvr90x1kmnjfmbap47ffzi3xbawcwz7q6b76v2gbqp4gjlhiyx7"; buildDepends = [ colour dataDefaultClass lens mtl operational time ]; diff --git a/pkgs/development/libraries/haskell/FontyFruity/default.nix b/pkgs/development/libraries/haskell/FontyFruity/default.nix new file mode 100644 index 00000000000..1a613492f43 --- /dev/null +++ b/pkgs/development/libraries/haskell/FontyFruity/default.nix @@ -0,0 +1,16 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, binary, deepseq, filepath, text, vector }: + +cabal.mkDerivation (self: { + pname = "FontyFruity"; + version = "0.3"; + sha256 = "0ivz7hkz5mx8bqqv5av56a8rw4231wyzzg0dhz6465d59iqmjhd4"; + buildDepends = [ binary deepseq filepath text vector ]; + meta = { + description = "A true type file format loader"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ bergey ]; + }; +}) diff --git a/pkgs/development/libraries/haskell/GLUtil/default.nix b/pkgs/development/libraries/haskell/GLUtil/default.nix index ce4b41c93e0..ee99ccc4fee 100644 --- a/pkgs/development/libraries/haskell/GLUtil/default.nix +++ b/pkgs/development/libraries/haskell/GLUtil/default.nix @@ -1,15 +1,16 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, cpphs, JuicyPixels, linear, OpenGL, OpenGLRaw +{ cabal, cpphs, filepath, JuicyPixels, linear, OpenGL, OpenGLRaw , transformers, vector }: cabal.mkDerivation (self: { pname = "GLUtil"; - version = "0.8"; - sha256 = "00r9gmwsb9gx6bcc012rhz0z0hj3my8k1i0yjnaw0jmlqswm45h8"; + version = "0.8.1"; + sha256 = "026w6rsgs0vmjx9fj4x3r93rifdyjygb83spcwmch31a7qng6l7w"; buildDepends = [ - cpphs JuicyPixels linear OpenGL OpenGLRaw transformers vector + cpphs filepath JuicyPixels linear OpenGL OpenGLRaw transformers + vector ]; buildTools = [ cpphs ]; meta = { diff --git a/pkgs/development/libraries/haskell/HTTP/4000.2.17.nix b/pkgs/development/libraries/haskell/HTTP/4000.2.18.nix similarity index 62% rename from pkgs/development/libraries/haskell/HTTP/4000.2.17.nix rename to pkgs/development/libraries/haskell/HTTP/4000.2.18.nix index ce90b9a9426..0a5a16dfadc 100644 --- a/pkgs/development/libraries/haskell/HTTP/4000.2.17.nix +++ b/pkgs/development/libraries/haskell/HTTP/4000.2.18.nix @@ -1,19 +1,19 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! { cabal, caseInsensitive, conduit, conduitExtra, deepseq, httpdShed -, httpTypes, HUnit, mtl, network, parsec, pureMD5, split -, testFramework, testFrameworkHunit, wai, warp +, httpTypes, HUnit, mtl, network, networkUri, parsec, pureMD5 +, split, testFramework, testFrameworkHunit, wai, warp }: cabal.mkDerivation (self: { pname = "HTTP"; - version = "4000.2.17"; - sha256 = "1701mgf1gw00nxd70kkr86yl80qxy63rpqky2g9m2nfr6y4y5b59"; - buildDepends = [ mtl network parsec ]; + version = "4000.2.18"; + sha256 = "1jn0ikbdwhd32qjwpnsmpnmy0dxhmwfhf8851ifxik91fn7j5j4k"; + buildDepends = [ mtl network networkUri parsec ]; testDepends = [ caseInsensitive conduit conduitExtra deepseq httpdShed httpTypes - HUnit mtl network pureMD5 split testFramework testFrameworkHunit - wai warp + HUnit mtl network networkUri pureMD5 split testFramework + testFrameworkHunit wai warp ]; doCheck = false; noHaddock = self.stdenv.lib.versionOlder self.ghc.version "6.11"; diff --git a/pkgs/development/libraries/haskell/IntervalMap/default.nix b/pkgs/development/libraries/haskell/IntervalMap/default.nix index 774cbd8a19e..65b53d91b52 100644 --- a/pkgs/development/libraries/haskell/IntervalMap/default.nix +++ b/pkgs/development/libraries/haskell/IntervalMap/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "IntervalMap"; - version = "0.3.0.3"; - sha256 = "11lxsjq9nw9mmj5ga0x03d8rgcx2s85kzi17d9cm7m28mq4dqdag"; + version = "0.4.0.1"; + sha256 = "0cq0dmmawrss4jjkz3br0lhp37d4k7rd3cinbcyf0bf39dfk6mrf"; buildDepends = [ deepseq ]; testDepends = [ Cabal deepseq QuickCheck ]; meta = { diff --git a/pkgs/development/libraries/haskell/JuicyPixels/default.nix b/pkgs/development/libraries/haskell/JuicyPixels/default.nix index fcd2689c548..2305756f93b 100644 --- a/pkgs/development/libraries/haskell/JuicyPixels/default.nix +++ b/pkgs/development/libraries/haskell/JuicyPixels/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "JuicyPixels"; - version = "3.1.6.1"; - sha256 = "1v560y0l1zpznbpw8zgb2j6zlcwi8i207xgzggzzd3p0v2m8955c"; + version = "3.1.7.1"; + sha256 = "0mhsknqdrhxnm622mgrswvj4kvksh87x18s5ddgk4ylf0s2fjlap"; buildDepends = [ binary deepseq mtl primitive transformers vector zlib ]; diff --git a/pkgs/development/libraries/haskell/MFlow/default.nix b/pkgs/development/libraries/haskell/MFlow/default.nix index a0e4b787ec9..f5e088a4238 100644 --- a/pkgs/development/libraries/haskell/MFlow/default.nix +++ b/pkgs/development/libraries/haskell/MFlow/default.nix @@ -9,8 +9,8 @@ cabal.mkDerivation (self: { pname = "MFlow"; - version = "0.4.5.7"; - sha256 = "0faw082z8yyzf0k1vrgpqa8kvwb2zwmasy1p1vvj3a7lhhnlr20s"; + version = "0.4.5.8"; + sha256 = "1gfv5ky68dyn8gjjg60c5s9x3dl9xn6j9q43w7vaj9sd1q12wk3c"; buildDepends = [ blazeHtml blazeMarkup caseInsensitive clientsession conduit conduitExtra extensibleExceptions httpTypes monadloc mtl parsec diff --git a/pkgs/development/libraries/haskell/MonadRandom/default.nix b/pkgs/development/libraries/haskell/MonadRandom/0.1.13.nix similarity index 89% rename from pkgs/development/libraries/haskell/MonadRandom/default.nix rename to pkgs/development/libraries/haskell/MonadRandom/0.1.13.nix index fb2415fd6fa..0cbd926b1f1 100644 --- a/pkgs/development/libraries/haskell/MonadRandom/default.nix +++ b/pkgs/development/libraries/haskell/MonadRandom/0.1.13.nix @@ -11,5 +11,6 @@ cabal.mkDerivation (self: { description = "Random-number generation monad"; license = "unknown"; platforms = self.ghc.meta.platforms; + hydraPlatforms = self.stdenv.lib.platforms.none; }; }) diff --git a/pkgs/development/libraries/haskell/MonadRandom/0.2.0.1.nix b/pkgs/development/libraries/haskell/MonadRandom/0.2.0.1.nix new file mode 100644 index 00000000000..cc430e22090 --- /dev/null +++ b/pkgs/development/libraries/haskell/MonadRandom/0.2.0.1.nix @@ -0,0 +1,15 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, mtl, random, transformers }: + +cabal.mkDerivation (self: { + pname = "MonadRandom"; + version = "0.2.0.1"; + sha256 = "1689302z053zhcr46w5q3a57kd6z365kkgzxh638gcakzzk3pmwm"; + buildDepends = [ mtl random transformers ]; + meta = { + description = "Random-number generation monad"; + license = "unknown"; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/Rasterific/default.nix b/pkgs/development/libraries/haskell/Rasterific/default.nix new file mode 100644 index 00000000000..c53e9f72858 --- /dev/null +++ b/pkgs/development/libraries/haskell/Rasterific/default.nix @@ -0,0 +1,26 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, binary, criterion, deepseq, dlist, filepath, FontyFruity +, free, JuicyPixels, mtl, QuickCheck, statistics, vector +, vectorAlgorithms +}: + +cabal.mkDerivation (self: { + pname = "Rasterific"; + version = "0.3"; + sha256 = "1chbcfcb5il7fbzivszap60qfwcwrq85kpx9y6qdr2pim39199fa"; + buildDepends = [ + dlist FontyFruity free JuicyPixels mtl vector vectorAlgorithms + ]; + testDepends = [ + binary criterion deepseq filepath FontyFruity JuicyPixels + QuickCheck statistics vector + ]; + doCheck = false; + meta = { + description = "A pure haskell drawing engine"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ bergey ]; + }; +}) diff --git a/pkgs/development/libraries/haskell/Yampa/default.nix b/pkgs/development/libraries/haskell/Yampa/default.nix index a4d1ea666a2..5ae451f8163 100644 --- a/pkgs/development/libraries/haskell/Yampa/default.nix +++ b/pkgs/development/libraries/haskell/Yampa/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "Yampa"; - version = "0.9.5"; - sha256 = "0r6fm2ccls7gbc5s0vbrzrqv6marnzlzc7zr4afkgfk9jsqfmqjh"; + version = "0.9.6"; + sha256 = "0a1m0sb0i3kkxbp10vpqd6iw83ksm4alavrg04arzrv71p3skyg0"; buildDepends = [ random ]; meta = { homepage = "http://www.haskell.org/haskellwiki/Yampa"; diff --git a/pkgs/development/libraries/haskell/auto-update/default.nix b/pkgs/development/libraries/haskell/auto-update/default.nix index b7c314f9ff9..85f15b500ed 100644 --- a/pkgs/development/libraries/haskell/auto-update/default.nix +++ b/pkgs/development/libraries/haskell/auto-update/default.nix @@ -4,9 +4,10 @@ cabal.mkDerivation (self: { pname = "auto-update"; - version = "0.1.1.1"; - sha256 = "0ksclbh3d7p2511ji86ind8f6jrh58mz61mc441kfz51ippkdk59"; + version = "0.1.1.2"; + sha256 = "0901zqky70wyxl17vwz6smhnpsfjnsk0f2xqiyz902vl7apx66c6"; testDepends = [ hspec ]; + doCheck = false; meta = { homepage = "https://github.com/yesodweb/wai"; description = "Efficiently run periodic, on-demand actions"; diff --git a/pkgs/development/libraries/haskell/aws/default.nix b/pkgs/development/libraries/haskell/aws/default.nix index d6e8a5fb5ad..3df47d95618 100644 --- a/pkgs/development/libraries/haskell/aws/default.nix +++ b/pkgs/development/libraries/haskell/aws/default.nix @@ -11,8 +11,8 @@ cabal.mkDerivation (self: { pname = "aws"; - version = "0.10.2"; - sha256 = "15yr06z54wxnl37a94515ajlxrb7z9kii5dd0ssan32izh4nfrl2"; + version = "0.10.3"; + sha256 = "042vx5nhafvgw0crymkw8pyhiawhpxwj03n1k538y2wr181hmz5f"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/development/libraries/haskell/binary-conduit/default.nix b/pkgs/development/libraries/haskell/binary-conduit/default.nix index 37774c1a16a..848004ca6af 100644 --- a/pkgs/development/libraries/haskell/binary-conduit/default.nix +++ b/pkgs/development/libraries/haskell/binary-conduit/default.nix @@ -12,6 +12,7 @@ cabal.mkDerivation (self: { testDepends = [ binary conduit hspec QuickCheck quickcheckAssertions resourcet ]; + jailbreak = true; meta = { homepage = "http://github.com/qnikst/binary-conduit"; description = "data serialization/deserialization conduit library"; diff --git a/pkgs/development/libraries/haskell/c2hs/default.nix b/pkgs/development/libraries/haskell/c2hs/default.nix index 95ead17f01f..eaa91c51a23 100644 --- a/pkgs/development/libraries/haskell/c2hs/default.nix +++ b/pkgs/development/libraries/haskell/c2hs/default.nix @@ -1,18 +1,19 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, filepath, HUnit, languageC, shelly, testFramework -, testFrameworkHunit, text, yaml +{ cabal, dlist, filepath, HUnit, languageC, shelly, testFramework +, testFrameworkHunit, text, transformers, yaml }: cabal.mkDerivation (self: { pname = "c2hs"; - version = "0.17.2"; - sha256 = "1xrk0izdy5akjgmg9k4l9ccmmgv1avwh152pfpc1xm2rrwrg4bxk"; + version = "0.18.1"; + sha256 = "17miqihfidzd1nqdswnd7j0580jlv2pj19wxlx8vb3dc5wga58xd"; isLibrary = false; isExecutable = true; - buildDepends = [ filepath languageC ]; + buildDepends = [ dlist filepath languageC shelly text yaml ]; testDepends = [ - filepath HUnit shelly testFramework testFrameworkHunit text yaml + filepath HUnit shelly testFramework testFrameworkHunit text + transformers ]; jailbreak = true; doCheck = false; diff --git a/pkgs/development/libraries/haskell/cabal-cargs/default.nix b/pkgs/development/libraries/haskell/cabal-cargs/default.nix index 85015f5d4ac..2f2b59b597a 100644 --- a/pkgs/development/libraries/haskell/cabal-cargs/default.nix +++ b/pkgs/development/libraries/haskell/cabal-cargs/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "cabal-cargs"; - version = "0.7"; - sha256 = "1dzmvwmb9sxwdgkzszhk9d5qvq2alnqmprx83dlb17sdi6f9jns1"; + version = "0.7.2"; + sha256 = "03095w08ff3g57qzx9dziv61q9x1rvqyph4lvxkccd1is2g1wywb"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/development/libraries/haskell/cabal-lenses/default.nix b/pkgs/development/libraries/haskell/cabal-lenses/default.nix index ccd23434fe0..8bf0148ba6b 100644 --- a/pkgs/development/libraries/haskell/cabal-lenses/default.nix +++ b/pkgs/development/libraries/haskell/cabal-lenses/default.nix @@ -4,10 +4,9 @@ cabal.mkDerivation (self: { pname = "cabal-lenses"; - version = "0.3"; - sha256 = "13nx9cn81cx9cj7fk07akqvz4qkl49dlgb5wl5wanag6bafa6vhl"; + version = "0.4"; + sha256 = "19ryd1qvsc301kdpk0zvw89aqhvk26ccbrgddm9j5m31mn62jl2d"; buildDepends = [ Cabal lens unorderedContainers ]; - jailbreak = true; meta = { description = "Lenses and traversals for the Cabal library"; license = self.stdenv.lib.licenses.bsd3; diff --git a/pkgs/development/libraries/haskell/cgi/3001.2.0.0.nix b/pkgs/development/libraries/haskell/cgi/3001.2.0.0.nix new file mode 100644 index 00000000000..2bacef96e08 --- /dev/null +++ b/pkgs/development/libraries/haskell/cgi/3001.2.0.0.nix @@ -0,0 +1,18 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, exceptions, mtl, network, networkUri, parsec, xhtml }: + +cabal.mkDerivation (self: { + pname = "cgi"; + version = "3001.2.0.0"; + sha256 = "03az978d5ayv5v4g89h4wajjhcribyf37b8ws8kvsqir3i7h7k8d"; + buildDepends = [ exceptions mtl network networkUri parsec xhtml ]; + meta = { + homepage = "https://github.com/cheecheeo/haskell-cgi"; + description = "A library for writing CGI programs"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + hydraPlatforms = self.stdenv.lib.platforms.none; + broken = true; + }; +}) diff --git a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix index 28e940f3489..286a20f2ba2 100644 --- a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix +++ b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "classy-prelude-conduit"; - version = "0.9.3"; - sha256 = "0wsl3mhczinxl6ij8dpv5001db740z4jq43l2gpzdylv6pmpldzr"; + version = "0.9.4"; + sha256 = "07ggdd3c47bs0pj4hl8vl19k2jlbka73pq7x0m4rsgrrjxc5pr1r"; buildDepends = [ classyPrelude conduit conduitCombinators monadControl resourcet systemFileio transformers void diff --git a/pkgs/development/libraries/haskell/classy-prelude/default.nix b/pkgs/development/libraries/haskell/classy-prelude/default.nix index e45a6f256b9..018a54f42d7 100644 --- a/pkgs/development/libraries/haskell/classy-prelude/default.nix +++ b/pkgs/development/libraries/haskell/classy-prelude/default.nix @@ -1,19 +1,20 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! { cabal, basicPrelude, chunkedData, enclosedExceptions, exceptions -, hashable, hspec, liftedBase, monoTraversable, QuickCheck -, semigroups, stm, systemFilepath, text, time, transformers -, unorderedContainers, vector, vectorInstances +, hashable, hspec, liftedBase, monoTraversable, mtl, primitive +, QuickCheck, semigroups, stm, systemFilepath, text, time +, transformers, unorderedContainers, vector, vectorInstances }: cabal.mkDerivation (self: { pname = "classy-prelude"; - version = "0.9.3"; - sha256 = "06y6zx3mmqjnha5p7y7blzn77bij71kndw2bmi07wz4s4lj9xsiv"; + version = "0.9.4"; + sha256 = "1pxg515dg174minvajaxl3sqpqjm862pgfpf7n2ynw5cqmaxngxa"; buildDepends = [ basicPrelude chunkedData enclosedExceptions exceptions hashable - liftedBase monoTraversable semigroups stm systemFilepath text time - transformers unorderedContainers vector vectorInstances + liftedBase monoTraversable mtl primitive semigroups stm + systemFilepath text time transformers unorderedContainers vector + vectorInstances ]; testDepends = [ hspec QuickCheck transformers unorderedContainers diff --git a/pkgs/development/libraries/haskell/compdata/default.nix b/pkgs/development/libraries/haskell/compdata/default.nix index 2e26d9ac781..ecaec5c4dd0 100644 --- a/pkgs/development/libraries/haskell/compdata/default.nix +++ b/pkgs/development/libraries/haskell/compdata/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "compdata"; - version = "0.8.1.3"; - sha256 = "0rnvw5bdypl6i2k1wnc727a17hapl4hs7n208h16ngk075841gpb"; + version = "0.9"; + sha256 = "1wk9vj834l3fc64fcsrgc9hz5f2z7461hs8lv1ldkfsixx4mxyqc"; buildDepends = [ deepseq derive mtl QuickCheck thExpandSyns transformers treeView ]; diff --git a/pkgs/development/libraries/haskell/diagrams/cairo.nix b/pkgs/development/libraries/haskell/diagrams/cairo.nix index c8763ca0a45..3a695fa8203 100644 --- a/pkgs/development/libraries/haskell/diagrams/cairo.nix +++ b/pkgs/development/libraries/haskell/diagrams/cairo.nix @@ -19,6 +19,6 @@ cabal.mkDerivation (self: { description = "Cairo backend for diagrams drawing EDSL"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.bergey ]; + maintainers = with self.stdenv.lib.maintainers; [ bergey ]; }; }) diff --git a/pkgs/development/libraries/haskell/diagrams/contrib.nix b/pkgs/development/libraries/haskell/diagrams/contrib.nix index 7c9e797e305..f1044870f3a 100644 --- a/pkgs/development/libraries/haskell/diagrams/contrib.nix +++ b/pkgs/development/libraries/haskell/diagrams/contrib.nix @@ -25,6 +25,6 @@ cabal.mkDerivation (self: { description = "Collection of user contributions to diagrams EDSL"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.bergey ]; + maintainers = with self.stdenv.lib.maintainers; [ bergey ]; }; }) diff --git a/pkgs/development/libraries/haskell/diagrams/core.nix b/pkgs/development/libraries/haskell/diagrams/core.nix index c7459972c39..18f362e0c21 100644 --- a/pkgs/development/libraries/haskell/diagrams/core.nix +++ b/pkgs/development/libraries/haskell/diagrams/core.nix @@ -17,6 +17,6 @@ cabal.mkDerivation (self: { description = "Core libraries for diagrams EDSL"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.bergey ]; + maintainers = with self.stdenv.lib.maintainers; [ bergey ]; }; }) diff --git a/pkgs/development/libraries/haskell/diagrams/lib.nix b/pkgs/development/libraries/haskell/diagrams/lib.nix index 75ee478ac3f..b15f05dbf27 100644 --- a/pkgs/development/libraries/haskell/diagrams/lib.nix +++ b/pkgs/development/libraries/haskell/diagrams/lib.nix @@ -21,6 +21,6 @@ cabal.mkDerivation (self: { description = "Embedded domain-specific language for declarative graphics"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.bergey ]; + maintainers = with self.stdenv.lib.maintainers; [ bergey ]; }; }) diff --git a/pkgs/development/libraries/haskell/diagrams/postscript.nix b/pkgs/development/libraries/haskell/diagrams/postscript.nix index c79f637c73f..557aae73db5 100644 --- a/pkgs/development/libraries/haskell/diagrams/postscript.nix +++ b/pkgs/development/libraries/haskell/diagrams/postscript.nix @@ -18,6 +18,6 @@ cabal.mkDerivation (self: { description = "Postscript backend for diagrams drawing EDSL"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.bergey ]; + maintainers = with self.stdenv.lib.maintainers; [ bergey ]; }; }) diff --git a/pkgs/development/libraries/haskell/diagrams/rasterific.nix b/pkgs/development/libraries/haskell/diagrams/rasterific.nix new file mode 100644 index 00000000000..c2e85058a90 --- /dev/null +++ b/pkgs/development/libraries/haskell/diagrams/rasterific.nix @@ -0,0 +1,24 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, dataDefaultClass, diagramsCore, diagramsLib, filepath +, FontyFruity, JuicyPixels, lens, mtl, optparseApplicative +, Rasterific, split, statestack, time +}: + +cabal.mkDerivation (self: { + pname = "diagrams-rasterific"; + version = "0.1.0.1"; + sha256 = "1bgrwnrdhlnbcv5ra80x2nh5yr5bzz81f517zb0ws2y07l072gwm"; + buildDepends = [ + dataDefaultClass diagramsCore diagramsLib filepath FontyFruity + JuicyPixels lens mtl optparseApplicative Rasterific split + statestack time + ]; + meta = { + homepage = "http://projects.haskell.org/diagrams/"; + description = "Rasterific backend for diagrams"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ bergey ]; + }; +}) diff --git a/pkgs/development/libraries/haskell/diagrams/svg.nix b/pkgs/development/libraries/haskell/diagrams/svg.nix index fcd08ffce63..8393d7c6f98 100644 --- a/pkgs/development/libraries/haskell/diagrams/svg.nix +++ b/pkgs/development/libraries/haskell/diagrams/svg.nix @@ -19,6 +19,6 @@ cabal.mkDerivation (self: { description = "SVG backend for diagrams drawing EDSL"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.bergey ]; + maintainers = with self.stdenv.lib.maintainers; [ bergey ]; }; }) diff --git a/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix b/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix index 9bab1ad45db..1958307e869 100644 --- a/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix +++ b/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix @@ -1,3 +1,5 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + { cabal, aeson, digestiveFunctors, HUnit, lens, lensAeson, mtl , safe, scientific, tasty, tastyHunit, text, vector }: @@ -17,6 +19,6 @@ cabal.mkDerivation (self: { description = "Run digestive-functors forms against JSON"; license = self.stdenv.lib.licenses.gpl3; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.ocharles ]; + maintainers = with self.stdenv.lib.maintainers; [ ocharles ]; }; }) diff --git a/pkgs/development/libraries/haskell/directory-layout/default.nix b/pkgs/development/libraries/haskell/directory-layout/default.nix new file mode 100644 index 00000000000..2cc9682dccb --- /dev/null +++ b/pkgs/development/libraries/haskell/directory-layout/default.nix @@ -0,0 +1,25 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, commandQq, doctest, filepath, free, hspec, lens +, semigroups, temporary, text, transformers, unorderedContainers +}: + +cabal.mkDerivation (self: { + pname = "directory-layout"; + version = "0.7.4.1"; + sha256 = "0hj7dfv5i2s1dk0rws2fg84crpxz1kgvrq68f373a6hwkbfhv89b"; + buildDepends = [ + commandQq filepath free hspec lens semigroups text transformers + unorderedContainers + ]; + testDepends = [ + commandQq doctest filepath free hspec lens semigroups temporary + text transformers unorderedContainers + ]; + doCheck = false; + meta = { + description = "Directory layout DSL"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/dns/default.nix b/pkgs/development/libraries/haskell/dns/default.nix index 113e1af46ee..ab74819965a 100644 --- a/pkgs/development/libraries/haskell/dns/default.nix +++ b/pkgs/development/libraries/haskell/dns/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "dns"; - version = "1.4.3"; - sha256 = "15v24f338w71dn3cxrzwyg04hk3vxvrvswbv3nnf2ggjgg46yq3i"; + version = "1.4.4"; + sha256 = "1g910rlahvrhjlg6jl7gpya1y3mqkkpmihfr2jnmmlzykll10dnd"; buildDepends = [ attoparsec binary blazeBuilder conduit conduitExtra iproute mtl network random resourcet @@ -21,5 +21,6 @@ cabal.mkDerivation (self: { description = "DNS library in Haskell"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ]; }; }) diff --git a/pkgs/development/libraries/haskell/doctest/default.nix b/pkgs/development/libraries/haskell/doctest/default.nix index 018fac06670..af3f9e2d525 100644 --- a/pkgs/development/libraries/haskell/doctest/default.nix +++ b/pkgs/development/libraries/haskell/doctest/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "doctest"; - version = "0.9.11"; - sha256 = "04y6y5hixqh8awl37wrss20c2drvx070w7wd6icfx7r0jqds97jr"; + version = "0.9.11.1"; + sha256 = "1gzzzwr7f7281mlbfbk74nxr28l70lwfaws4xjfx2v06xazl99db"; isLibrary = true; isExecutable = true; buildDepends = [ deepseq filepath ghcPaths syb transformers ]; @@ -18,7 +18,7 @@ cabal.mkDerivation (self: { doCheck = false; noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.4"; meta = { - homepage = "https://github.com/sol/doctest-haskell#readme"; + homepage = "https://github.com/sol/doctest#readme"; description = "Test interactive Haskell examples"; license = self.stdenv.lib.licenses.mit; platforms = self.ghc.meta.platforms; diff --git a/pkgs/development/libraries/haskell/either/default.nix b/pkgs/development/libraries/haskell/either/default.nix index 6d55afd41d6..72f3bff14df 100644 --- a/pkgs/development/libraries/haskell/either/default.nix +++ b/pkgs/development/libraries/haskell/either/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "either"; - version = "4.3.0.1"; - sha256 = "1ib6288gxzqfm2y198dzhhq588mlwqxm07pcrj4h66g1mcy54q1f"; + version = "4.3.0.2"; + sha256 = "01n4jkf6py00841cyf3fiwiay736dpbhda8ia2qgm26q4r4h58gd"; buildDepends = [ exceptions free monadControl MonadRandom mtl semigroupoids semigroups transformers transformersBase diff --git a/pkgs/development/libraries/haskell/engine-io/default.nix b/pkgs/development/libraries/haskell/engine-io/default.nix index 82cb1240610..f1f9d06c76a 100644 --- a/pkgs/development/libraries/haskell/engine-io/default.nix +++ b/pkgs/development/libraries/haskell/engine-io/default.nix @@ -7,13 +7,12 @@ cabal.mkDerivation (self: { pname = "engine-io"; - version = "1.1.0"; - sha256 = "0l2jwgzi22ky13k9kmqhn15zyxyg5gr167rkywb458n1si4jr3jh"; + version = "1.1.2"; + sha256 = "1ry6rklrij7x1z8mw31vh41lc0axzj8l0lhmjsmhs554nv50062f"; buildDepends = [ aeson async attoparsec base64Bytestring either monadLoops mwcRandom stm text transformers unorderedContainers vector websockets ]; - jailbreak = true; meta = { homepage = "http://github.com/ocharles/engine.io"; description = "A Haskell implementation of Engine.IO"; diff --git a/pkgs/development/libraries/haskell/equational-reasoning/default.nix b/pkgs/development/libraries/haskell/equational-reasoning/default.nix new file mode 100644 index 00000000000..fa88fbfe2e8 --- /dev/null +++ b/pkgs/development/libraries/haskell/equational-reasoning/default.nix @@ -0,0 +1,16 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, singletons, tagged, void }: + +cabal.mkDerivation (self: { + pname = "equational-reasoning"; + version = "0.2.0.4"; + sha256 = "1f94y6h7qg7rck7rxf6j8sygkh1xmfk0z1lr71inx6s74agjyc9j"; + buildDepends = [ singletons tagged void ]; + meta = { + description = "Proof assistant for Haskell using DataKinds & PolyKinds"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ]; + }; +}) diff --git a/pkgs/development/libraries/haskell/fay/default.nix b/pkgs/development/libraries/haskell/fay/default.nix index edbf19bda62..c00b009c51d 100644 --- a/pkgs/development/libraries/haskell/fay/default.nix +++ b/pkgs/development/libraries/haskell/fay/default.nix @@ -1,24 +1,23 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, aeson, attoparsec, dataDefault, filepath, ghcPaths, groom -, haskellNames, haskellPackages, haskellSrcExts, languageEcmascript -, mtl, optparseApplicative, safe, sourcemap, split, spoon, syb -, tasty, tastyHunit, tastyTh, text, time, transformers, uniplate -, unorderedContainers, utf8String, vector +{ cabal, aeson, dataDefault, filepath, ghcPaths, haskellNames +, haskellPackages, haskellSrcExts, languageEcmascript, mtl +, optparseApplicative, safe, sourcemap, split, spoon, syb, text +, time, transformers, uniplate, unorderedContainers, utf8String +, vector }: cabal.mkDerivation (self: { pname = "fay"; - version = "0.20.1.2"; - sha256 = "1ssii9wkml8jn8kcdq8h6sxrq4gap4asyglakvif2zawl3sqrdji"; + version = "0.20.1.3"; + sha256 = "1r9a1my8wydxx92xg04kacw90s1r4bms84fvs1w52r73knp5kb6r"; isLibrary = true; isExecutable = true; buildDepends = [ - aeson attoparsec dataDefault filepath ghcPaths groom haskellNames - haskellPackages haskellSrcExts languageEcmascript mtl - optparseApplicative safe sourcemap split spoon syb tasty tastyHunit - tastyTh text time transformers uniplate unorderedContainers - utf8String vector + aeson dataDefault filepath ghcPaths haskellNames haskellPackages + haskellSrcExts languageEcmascript mtl optparseApplicative safe + sourcemap split spoon syb text time transformers uniplate + unorderedContainers utf8String vector ]; meta = { homepage = "https://github.com/faylang/fay/wiki"; diff --git a/pkgs/development/libraries/haskell/foldl/default.nix b/pkgs/development/libraries/haskell/foldl/default.nix index 7a942e97dc8..2f04330a315 100644 --- a/pkgs/development/libraries/haskell/foldl/default.nix +++ b/pkgs/development/libraries/haskell/foldl/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "foldl"; - version = "1.0.5"; - sha256 = "08yjzzplg715hzkhwbf8nv2zm7c5wd2kph4zx94iml0cnc6ip048"; + version = "1.0.6"; + sha256 = "1i4pm48x7f8l4gqbb2bgqshx5cx44acr24l75czliq656sqm405i"; buildDepends = [ primitive text transformers vector ]; meta = { description = "Composable, streaming, and efficient left folds"; diff --git a/pkgs/development/libraries/haskell/force-layout/default.nix b/pkgs/development/libraries/haskell/force-layout/default.nix index f0f8ae1399d..09a22c0ac60 100644 --- a/pkgs/development/libraries/haskell/force-layout/default.nix +++ b/pkgs/development/libraries/haskell/force-layout/default.nix @@ -13,6 +13,6 @@ cabal.mkDerivation (self: { description = "Simple force-directed layout"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.bergey ]; + maintainers = with self.stdenv.lib.maintainers; [ bergey ]; }; }) diff --git a/pkgs/development/libraries/haskell/free-game/default.nix b/pkgs/development/libraries/haskell/free-game/default.nix index d2a0f33892f..ee47e6bb3f5 100644 --- a/pkgs/development/libraries/haskell/free-game/default.nix +++ b/pkgs/development/libraries/haskell/free-game/default.nix @@ -21,5 +21,6 @@ cabal.mkDerivation (self: { description = "Create games for free"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ]; }; }) diff --git a/pkgs/development/libraries/haskell/ghc-mod/5.0.1.nix b/pkgs/development/libraries/haskell/ghc-mod/5.0.1.1.nix similarity index 59% rename from pkgs/development/libraries/haskell/ghc-mod/5.0.1.nix rename to pkgs/development/libraries/haskell/ghc-mod/5.0.1.1.nix index ad920721451..3eefe056218 100644 --- a/pkgs/development/libraries/haskell/ghc-mod/5.0.1.nix +++ b/pkgs/development/libraries/haskell/ghc-mod/5.0.1.1.nix @@ -2,14 +2,14 @@ { cabal, Cabal, convertible, deepseq, djinnGhc, doctest, emacs , filepath, ghcPaths, ghcSybUtils, haskellSrcExts, hlint, hspec -, ioChoice, monadControl, monadJournal, mtl, split, syb, text, time -, transformers, transformersBase +, ioChoice, makeWrapper, monadControl, monadJournal, mtl, split +, syb, text, time, transformers, transformersBase }: cabal.mkDerivation (self: { pname = "ghc-mod"; - version = "5.0.1"; - sha256 = "01awsi5rfzq6433shfvvnr69ifxb7h8v90mlknxv3dl34zmrhv19"; + version = "5.0.1.1"; + sha256 = "0qyl1653dj14ap3035kjj7xl8rsmgpwh32bj2lnwrmdm2223m8a3"; isLibrary = true; isExecutable = true; buildDepends = [ @@ -22,7 +22,7 @@ cabal.mkDerivation (self: { ghcSybUtils haskellSrcExts hlint hspec ioChoice monadControl monadJournal mtl split syb text time transformers transformersBase ]; - buildTools = [ emacs ]; + buildTools = [ emacs makeWrapper ]; doCheck = false; configureFlags = "--datasubdir=${self.pname}-${self.version}"; postInstall = '' @@ -32,20 +32,10 @@ cabal.mkDerivation (self: { cd .. ensureDir "$out/share/emacs" mv $pname-$version emacs/site-lisp - mv $out/bin/ghc-mod $out/bin/.ghc-mod-wrapped - cat - > $out/bin/ghc-mod < $out/bin/ghc-modi < rt' '-> return ()' ''; +}) diff --git a/pkgs/development/libraries/haskell/network/2.5.0.0.nix b/pkgs/development/libraries/haskell/network/2.5.0.0.nix index dd4278a0052..59a338a7907 100644 --- a/pkgs/development/libraries/haskell/network/2.5.0.0.nix +++ b/pkgs/development/libraries/haskell/network/2.5.0.0.nix @@ -17,5 +17,6 @@ cabal.mkDerivation (self: { description = "Low-level networking interface"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; + hydraPlatforms = self.stdenv.lib.platforms.none; }; }) diff --git a/pkgs/development/libraries/haskell/network/2.6.0.1.nix b/pkgs/development/libraries/haskell/network/2.6.0.1.nix new file mode 100644 index 00000000000..d5d302fbd8e --- /dev/null +++ b/pkgs/development/libraries/haskell/network/2.6.0.1.nix @@ -0,0 +1,16 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, HUnit, testFramework, testFrameworkHunit }: + +cabal.mkDerivation (self: { + pname = "network"; + version = "2.6.0.1"; + sha256 = "0qfffsdbvrf9gs8wr9ps7iv5h6drz4vb2ja9rprmc7ypswsacxsq"; + testDepends = [ HUnit testFramework testFrameworkHunit ]; + meta = { + homepage = "https://github.com/haskell/network"; + description = "Low-level networking interface"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix b/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix index e567bd82059..76ab2fc41b4 100644 --- a/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix +++ b/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "pandoc-citeproc"; - version = "0.4.0.1"; - sha256 = "1z21mdxa2hrwqdclriyn3s1qqij3ccbkg7hb0acxrk3pzgidcinx"; + version = "0.5"; + sha256 = "00azhpll0xnb9nnkh7c3hbfk0fzmvh5cgdxlgx7jvaglrmsnvzw3"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/development/libraries/haskell/pandoc/default.nix b/pkgs/development/libraries/haskell/pandoc/default.nix index 1b2571563c3..c8ef8ba2271 100644 --- a/pkgs/development/libraries/haskell/pandoc/default.nix +++ b/pkgs/development/libraries/haskell/pandoc/default.nix @@ -4,26 +4,27 @@ , blazeHtml, blazeMarkup, dataDefault, deepseqGenerics, Diff , executablePath, extensibleExceptions, filepath, haddockLibrary , happy, highlightingKate, hslua, HTTP, httpClient, httpClientTls -, httpTypes, HUnit, JuicyPixels, mtl, network, pandocTypes, parsec -, QuickCheck, random, scientific, SHA, syb, tagsoup, temporary -, testFramework, testFrameworkHunit, testFrameworkQuickcheck2 -, texmath, text, time, unorderedContainers, vector, wai, waiExtra -, xml, yaml, zipArchive, zlib +, httpTypes, HUnit, JuicyPixels, mtl, network, networkUri +, pandocTypes, parsec, QuickCheck, random, scientific, SHA, syb +, tagsoup, temporary, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, texmath, text, time +, unorderedContainers, vector, xml, yaml, zipArchive, zlib }: cabal.mkDerivation (self: { pname = "pandoc"; - version = "1.13.0.1"; - sha256 = "0pjyxsr93gv0vrdxlr5i0c56mg6rf21qxf1141cb8l0hl0b416d6"; + version = "1.13.1"; + sha256 = "0vvysa70xp4pskxrvslmddwdsalc479zb8wn6z1vmpvfssvvj6vv"; isLibrary = true; isExecutable = true; buildDepends = [ aeson alex base64Bytestring binary blazeHtml blazeMarkup dataDefault deepseqGenerics extensibleExceptions filepath haddockLibrary happy highlightingKate hslua HTTP httpClient - httpClientTls httpTypes JuicyPixels mtl network pandocTypes parsec - random scientific SHA syb tagsoup temporary texmath text time - unorderedContainers vector wai waiExtra xml yaml zipArchive zlib + httpClientTls httpTypes JuicyPixels mtl network networkUri + pandocTypes parsec random scientific SHA syb tagsoup temporary + texmath text time unorderedContainers vector xml yaml zipArchive + zlib ]; testDepends = [ ansiTerminal Diff executablePath filepath highlightingKate HUnit diff --git a/pkgs/development/libraries/haskell/parsers/0.10.3.nix b/pkgs/development/libraries/haskell/parsers/0.10.3.nix deleted file mode 100644 index 1da7380f252..00000000000 --- a/pkgs/development/libraries/haskell/parsers/0.10.3.nix +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by cabal2nix. Please do NOT edit manually! - -{ cabal, charset, doctest, filepath, parsec, text, transformers -, unorderedContainers -}: - -cabal.mkDerivation (self: { - pname = "parsers"; - version = "0.10.3"; - sha256 = "1s9n59q77h0w1csq7yh945b53847a9hnpvviashgxyi7ahvw7jli"; - buildDepends = [ - charset parsec text transformers unorderedContainers - ]; - testDepends = [ doctest filepath ]; - meta = { - homepage = "http://github.com/ekmett/parsers/"; - description = "Parsing combinators"; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - hydraPlatforms = self.stdenv.lib.platforms.none; - }; -}) diff --git a/pkgs/development/libraries/haskell/parsers/0.12.1.nix b/pkgs/development/libraries/haskell/parsers/default.nix similarity index 100% rename from pkgs/development/libraries/haskell/parsers/0.12.1.nix rename to pkgs/development/libraries/haskell/parsers/default.nix diff --git a/pkgs/development/libraries/haskell/poppler/default.nix b/pkgs/development/libraries/haskell/poppler/default.nix index 327744560ac..28e7e515c2b 100644 --- a/pkgs/development/libraries/haskell/poppler/default.nix +++ b/pkgs/development/libraries/haskell/poppler/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "poppler"; - version = "0.12.3"; - sha256 = "1ny2r1cpsshpg00w6bd0f5mw26xsy99l7dgx2xq8f01zcwdy4nrp"; + version = "0.13"; + sha256 = "1fv0h2ixanzv5vy4l2ln23f9n8ghmgdxzlyx54hh69bwhrcg049s"; buildDepends = [ cairo glib gtk mtl ]; buildTools = [ gtk2hsBuildtools ]; extraLibraries = [ libc ]; @@ -18,7 +18,5 @@ cabal.mkDerivation (self: { license = self.stdenv.lib.licenses.gpl2; platforms = self.ghc.meta.platforms; maintainers = with self.stdenv.lib.maintainers; [ ianwookim ]; - hydraPlatforms = self.stdenv.lib.platforms.none; - broken = true; }; }) diff --git a/pkgs/development/libraries/haskell/postgresql-simple/default.nix b/pkgs/development/libraries/haskell/postgresql-simple/default.nix index a3f471fcb4d..0c4fea2da65 100644 --- a/pkgs/development/libraries/haskell/postgresql-simple/default.nix +++ b/pkgs/development/libraries/haskell/postgresql-simple/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "postgresql-simple"; - version = "0.4.3.0"; - sha256 = "16i1qzshbscnbjb4rxz5hl1iaxjmsc21878prj5pp33zbm53dlcm"; + version = "0.4.4.0"; + sha256 = "1rx0rcafiicdv4qbf68dbsfqwiayrl7205dm0c5bdjlvszv576r7"; buildDepends = [ aeson attoparsec blazeBuilder blazeTextual hashable postgresqlLibpq scientific text time transformers uuid vector diff --git a/pkgs/development/libraries/haskell/present/default.nix b/pkgs/development/libraries/haskell/present/default.nix new file mode 100644 index 00000000000..7c5f3afbd98 --- /dev/null +++ b/pkgs/development/libraries/haskell/present/default.nix @@ -0,0 +1,15 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, aeson, attoLisp, dataDefault, mtl, semigroups, text }: + +cabal.mkDerivation (self: { + pname = "present"; + version = "1.1"; + sha256 = "1hmzq3qi4hz74xr7cnc33kpwki9ziyinvrwazag8hh77d02fl11z"; + buildDepends = [ aeson attoLisp dataDefault mtl semigroups text ]; + meta = { + description = "Make presentations for data types"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/project-template/default.nix b/pkgs/development/libraries/haskell/project-template/default.nix index 9aa8dff59aa..8cb7dfd32ae 100644 --- a/pkgs/development/libraries/haskell/project-template/default.nix +++ b/pkgs/development/libraries/haskell/project-template/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "project-template"; - version = "0.1.4.1"; - sha256 = "1vsx8a4kzdcwbdy47hb2wz32najsa6bqq6jkyal9nbc5ydwb65lb"; + version = "0.1.4.2"; + sha256 = "10n23s6g7fv0l42hsb804z0qqcyxqw32kwzg1f0w3c6gka844akr"; buildDepends = [ base64Bytestring conduit conduitExtra mtl resourcet systemFileio systemFilepath text transformers diff --git a/pkgs/development/libraries/haskell/pwstore-fast/default.nix b/pkgs/development/libraries/haskell/pwstore-fast/default.nix index 08f18e8fe11..a59a9b2d2da 100644 --- a/pkgs/development/libraries/haskell/pwstore-fast/default.nix +++ b/pkgs/development/libraries/haskell/pwstore-fast/default.nix @@ -1,12 +1,14 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, base64Bytestring, binary, cryptohash, random, SHA }: +{ cabal, base64Bytestring, binary, byteable, cryptohash, random }: cabal.mkDerivation (self: { pname = "pwstore-fast"; - version = "2.4.1"; - sha256 = "1k98b1s2ld0jx8fy53k8d8pscp6n0plh51b2lj6ai6w8xj4vknw4"; - buildDepends = [ base64Bytestring binary cryptohash random SHA ]; + version = "2.4.3"; + sha256 = "02dj297s04fxb4ys9nfdw6aap5zrwlryq515gky0c3af6ss2yiz7"; + buildDepends = [ + base64Bytestring binary byteable cryptohash random + ]; meta = { homepage = "https://github.com/PeterScott/pwstore"; description = "Secure password storage"; diff --git a/pkgs/development/libraries/haskell/random/1.0.1.1.nix b/pkgs/development/libraries/haskell/random/1.0.1.1.nix index 5a64573a890..031c251fbb7 100644 --- a/pkgs/development/libraries/haskell/random/1.0.1.1.nix +++ b/pkgs/development/libraries/haskell/random/1.0.1.1.nix @@ -11,5 +11,6 @@ cabal.mkDerivation (self: { description = "random number library"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; + hydraPlatforms = self.stdenv.lib.platforms.none; }; }) diff --git a/pkgs/development/libraries/haskell/random/1.0.1.3.nix b/pkgs/development/libraries/haskell/random/1.0.1.3.nix new file mode 100644 index 00000000000..26763deb10a --- /dev/null +++ b/pkgs/development/libraries/haskell/random/1.0.1.3.nix @@ -0,0 +1,15 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, time }: + +cabal.mkDerivation (self: { + pname = "random"; + version = "1.0.1.3"; + sha256 = "06mbjx05c54iz5skn4biyjy9sqdr1qi6d33an8wya7sndnpakd21"; + buildDepends = [ time ]; + meta = { + description = "random number library"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/recaptcha/default.nix b/pkgs/development/libraries/haskell/recaptcha/default.nix index dd92b7e79de..00fe58be4b1 100644 --- a/pkgs/development/libraries/haskell/recaptcha/default.nix +++ b/pkgs/development/libraries/haskell/recaptcha/default.nix @@ -1,12 +1,12 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, HTTP, network, xhtml }: +{ cabal, HTTP, network, networkUri, xhtml }: cabal.mkDerivation (self: { pname = "recaptcha"; - version = "0.1.0.2"; - sha256 = "04sdfp6bmcd3qkz1iqxijfiqa4qf78m5d16r9gjv90ckqf68kbih"; - buildDepends = [ HTTP network xhtml ]; + version = "0.1.0.3"; + sha256 = "18rqsqzni11nr2cvs7ah9k87w493d92c0gmc0n6fhfq6gay9ia19"; + buildDepends = [ HTTP network networkUri xhtml ]; meta = { homepage = "http://github.com/jgm/recaptcha/tree/master"; description = "Functions for using the reCAPTCHA service in web applications"; diff --git a/pkgs/development/libraries/haskell/rest-core/default.nix b/pkgs/development/libraries/haskell/rest-core/default.nix index 134c39f9f24..53c3ede3ec1 100644 --- a/pkgs/development/libraries/haskell/rest-core/default.nix +++ b/pkgs/development/libraries/haskell/rest-core/default.nix @@ -8,8 +8,8 @@ cabal.mkDerivation (self: { pname = "rest-core"; - version = "0.31.1"; - sha256 = "1cx1zmy1zr43n9nlrbar828izccpkvrvjkrda03ra9fkcjgd6qy6"; + version = "0.32"; + sha256 = "130kz1gsrbamw8gs4vc0fqfjh1gi7i52xxmj4fg1vl2dr77gf6my"; buildDepends = [ aeson aesonUtils either errors fclabels hxt hxtPickleUtils jsonSchema mtl multipart random restStringmap restTypes safe split diff --git a/pkgs/development/libraries/haskell/rest-gen/default.nix b/pkgs/development/libraries/haskell/rest-gen/default.nix index afa2f612c01..012f6db8bf2 100644 --- a/pkgs/development/libraries/haskell/rest-gen/default.nix +++ b/pkgs/development/libraries/haskell/rest-gen/default.nix @@ -9,8 +9,8 @@ cabal.mkDerivation (self: { pname = "rest-gen"; - version = "0.14.2"; - sha256 = "1hmf77hs3pp6lf4glh3lbbwfjr029js185v69bk8ycr1c4ib8nbp"; + version = "0.14.2.1"; + sha256 = "1dvcs25ndmzwdann5yq4567zjirirzskf9v31gkrki0im8mi9x14"; buildDepends = [ aeson blazeHtml Cabal codeBuilder fclabels filepath hashable haskellSrcExts hslogger HStringTemplate hxt jsonSchema restCore diff --git a/pkgs/development/libraries/haskell/rest-happstack/default.nix b/pkgs/development/libraries/haskell/rest-happstack/default.nix index 74c5f2a06cb..4c79bc58c06 100644 --- a/pkgs/development/libraries/haskell/rest-happstack/default.nix +++ b/pkgs/development/libraries/haskell/rest-happstack/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "rest-happstack"; - version = "0.2.10"; - sha256 = "1np8y0v6jnk2lw0aqlzb9dn1vlk8cg75xrhkjmm6qh0z90fy3p6z"; + version = "0.2.10.1"; + sha256 = "0p4km3l8n50flj9cnxvjl34pp3msxz2yq4d91r318di8pacrgnxc"; buildDepends = [ happstackServer mtl restCore restGen utf8String ]; meta = { description = "Rest driver for Happstack"; diff --git a/pkgs/development/libraries/haskell/rest-snap/default.nix b/pkgs/development/libraries/haskell/rest-snap/default.nix index 5305c2d113f..8e9bc69eb01 100644 --- a/pkgs/development/libraries/haskell/rest-snap/default.nix +++ b/pkgs/development/libraries/haskell/rest-snap/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "rest-snap"; - version = "0.1.17.12"; - sha256 = "0hhpscdbph34psfn2h1g0znds0cz7ja9byr6bg7jmj0h86plz8al"; + version = "0.1.17.13"; + sha256 = "13c143dzxhfrshn19ylqfmhnxjirixfif8d1fmzagz1v893narkz"; buildDepends = [ caseInsensitive restCore safe snapCore unorderedContainers uriEncode utf8String diff --git a/pkgs/development/libraries/haskell/rest-types/default.nix b/pkgs/development/libraries/haskell/rest-types/default.nix index 157cab5e979..41b8044b593 100644 --- a/pkgs/development/libraries/haskell/rest-types/default.nix +++ b/pkgs/development/libraries/haskell/rest-types/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "rest-types"; - version = "1.10.1"; - sha256 = "0i4y1s35ybly1nayqj9c2zqwikpxnzjamq24qbhg0lpqr0dpc1rg"; + version = "1.10.2"; + sha256 = "1j8fpv4xdhbf1awy0v9zn9a3sjwl42l6472wczp3wwwcpsi65d9q"; buildDepends = [ aeson genericAeson hxt jsonSchema mtl regular regularXmlpickler restStringmap text uuid diff --git a/pkgs/development/libraries/haskell/rest-wai/default.nix b/pkgs/development/libraries/haskell/rest-wai/default.nix index 7ddb500265b..d23d81da33d 100644 --- a/pkgs/development/libraries/haskell/rest-wai/default.nix +++ b/pkgs/development/libraries/haskell/rest-wai/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "rest-wai"; - version = "0.1.0.2"; - sha256 = "06wnazy0262b2875q4km2xy9zz7l681vlfj3ny1ha9valnqr3q6w"; + version = "0.1.0.3"; + sha256 = "08pprgn9xnd3ipr6clify3snm4ahshlws869mfvziplc4hdcnb59"; buildDepends = [ caseInsensitive httpTypes mimeTypes mtl restCore restTypes text unorderedContainers utf8String wai diff --git a/pkgs/development/libraries/haskell/robots-txt/default.nix b/pkgs/development/libraries/haskell/robots-txt/default.nix index c6534ff0cf4..0ebf6dac301 100644 --- a/pkgs/development/libraries/haskell/robots-txt/default.nix +++ b/pkgs/development/libraries/haskell/robots-txt/default.nix @@ -5,8 +5,8 @@ cabal.mkDerivation (self: { pname = "robots-txt"; - version = "0.4.1.0"; - sha256 = "1q18pgilrwppmd8d7pby3p6qgk47alzmd8izqspk7n4h4agrscn4"; + version = "0.4.1.1"; + sha256 = "16r6j96iay1r6435ym34dp9iggwlfigmzmqq5k5f5ss5bljfc72f"; buildDepends = [ attoparsec time ]; testDepends = [ attoparsec heredoc hspec QuickCheck transformers ]; meta = { diff --git a/pkgs/development/libraries/haskell/saltine/default.nix b/pkgs/development/libraries/haskell/saltine/default.nix new file mode 100644 index 00000000000..acb4066fb2e --- /dev/null +++ b/pkgs/development/libraries/haskell/saltine/default.nix @@ -0,0 +1,22 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, libsodium, profunctors, QuickCheck, testFramework +, testFrameworkQuickcheck2, vector +}: + +cabal.mkDerivation (self: { + pname = "saltine"; + version = "0.0.0.3"; + sha256 = "1xjpjblxlpziyyz74ldaqh04shvy2qi34sc6b3232wpc0kyl5s8y"; + buildDepends = [ profunctors ]; + testDepends = [ + QuickCheck testFramework testFrameworkQuickcheck2 vector + ]; + extraLibraries = [ libsodium ]; + meta = { + description = "Cryptography that's easy to digest (NaCl/libsodium bindings)"; + license = self.stdenv.lib.licenses.mit; + platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ]; + }; +}) diff --git a/pkgs/development/libraries/haskell/scotty/default.nix b/pkgs/development/libraries/haskell/scotty/default.nix index 91876f7e318..4985f09b38e 100644 --- a/pkgs/development/libraries/haskell/scotty/default.nix +++ b/pkgs/development/libraries/haskell/scotty/default.nix @@ -1,21 +1,22 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, aeson, blazeBuilder, caseInsensitive, conduit, dataDefault -, hspec, httpTypes, liftedBase, monadControl, mtl, regexCompat +{ cabal, aeson, blazeBuilder, caseInsensitive, dataDefault, hspec2 +, hspecWai, httpTypes, liftedBase, monadControl, mtl, regexCompat , text, transformers, transformersBase, wai, waiExtra, warp }: cabal.mkDerivation (self: { pname = "scotty"; - version = "0.8.2"; - sha256 = "07vjdj26380inlyi350mdifm7v1dpbc56041vi2czf5zzhx97qb0"; + version = "0.9.0"; + sha256 = "0gx00k5w4cs68bh3ciplkwhzh2412y6wqg0qdsslnnsb41l5kb1d"; buildDepends = [ - aeson blazeBuilder caseInsensitive conduit dataDefault httpTypes + aeson blazeBuilder caseInsensitive dataDefault httpTypes monadControl mtl regexCompat text transformers transformersBase wai waiExtra warp ]; - testDepends = [ hspec httpTypes liftedBase wai waiExtra ]; + testDepends = [ hspec2 hspecWai httpTypes liftedBase text wai ]; jailbreak = true; + doCheck = false; meta = { homepage = "https://github.com/scotty-web/scotty"; description = "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp"; diff --git a/pkgs/development/libraries/haskell/servant-pool/default.nix b/pkgs/development/libraries/haskell/servant-pool/default.nix new file mode 100644 index 00000000000..692d694ed46 --- /dev/null +++ b/pkgs/development/libraries/haskell/servant-pool/default.nix @@ -0,0 +1,16 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, resourcePool, servant, time }: + +cabal.mkDerivation (self: { + pname = "servant-pool"; + version = "0.1"; + sha256 = "0if4lxb0fpdd4lnkz9j7z6vhjbrcc80pvz9jb6sdb9p6sbbgqf69"; + buildDepends = [ resourcePool servant time ]; + meta = { + homepage = "http://github.com/zalora/servant-pool"; + description = "Utility functions for creating servant 'Context's with \"context/connection pooling\" support"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/servant-postgresql/default.nix b/pkgs/development/libraries/haskell/servant-postgresql/default.nix new file mode 100644 index 00000000000..154eefea320 --- /dev/null +++ b/pkgs/development/libraries/haskell/servant-postgresql/default.nix @@ -0,0 +1,18 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, postgresqlSimple, servant, servantPool, servantResponse }: + +cabal.mkDerivation (self: { + pname = "servant-postgresql"; + version = "0.1"; + sha256 = "1svy1v6sl5pq0zs8ms4qf7wn6zar63bqmfiyfqgz84ryli0wxrhj"; + buildDepends = [ + postgresqlSimple servant servantPool servantResponse + ]; + meta = { + homepage = "http://github.com/zalora/servant-postgresql"; + description = "Useful functions and instances for using servant with a PostgreSQL context"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/servant-response/default.nix b/pkgs/development/libraries/haskell/servant-response/default.nix new file mode 100644 index 00000000000..3f7f9c1eee0 --- /dev/null +++ b/pkgs/development/libraries/haskell/servant-response/default.nix @@ -0,0 +1,16 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, aeson, httpTypes, text }: + +cabal.mkDerivation (self: { + pname = "servant-response"; + version = "0.1"; + sha256 = "0vgzi6nm3f1vjbnvhzcr6v2fh75fsl18wsps54ya0mbmfn2v6chy"; + buildDepends = [ aeson httpTypes text ]; + meta = { + homepage = "http://github.com/zalora/servant"; + description = "Machinery to express how servant should turn results of database operations into proper JSON-encodable response types"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/servant-scotty/default.nix b/pkgs/development/libraries/haskell/servant-scotty/default.nix new file mode 100644 index 00000000000..732b2c95cc7 --- /dev/null +++ b/pkgs/development/libraries/haskell/servant-scotty/default.nix @@ -0,0 +1,20 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, aeson, httpTypes, scotty, servant, servantResponse, text +, transformers +}: + +cabal.mkDerivation (self: { + pname = "servant-scotty"; + version = "0.1.1"; + sha256 = "0d3yc7aa2p1izizqnj81iscj9hbgbkpyav1ncmxzkr48svr6h783"; + buildDepends = [ + aeson httpTypes scotty servant servantResponse text transformers + ]; + meta = { + homepage = "http://github.com/zalora/servant"; + description = "Generate a web service for servant 'Resource's using scotty and JSON"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/servant/default.nix b/pkgs/development/libraries/haskell/servant/default.nix new file mode 100644 index 00000000000..38f89764c4c --- /dev/null +++ b/pkgs/development/libraries/haskell/servant/default.nix @@ -0,0 +1,15 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal }: + +cabal.mkDerivation (self: { + pname = "servant"; + version = "0.1"; + sha256 = "1bm5223rjgcm8rb3s2mclmfj2df7j059jjh572a5py0rdqzg3yj0"; + meta = { + homepage = "http://github.com/zalora/servant"; + description = "A library to generate REST-style webservices on top of scotty, handling all the boilerplate for you"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/shelly/default.nix b/pkgs/development/libraries/haskell/shelly/default.nix index 587c42d6033..6deaa209dc8 100644 --- a/pkgs/development/libraries/haskell/shelly/default.nix +++ b/pkgs/development/libraries/haskell/shelly/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "shelly"; - version = "1.5.4.1"; - sha256 = "0h38j6vkdgaddj7xardyywibdj5w0wryqxwwpc62idgzlp7mgpb2"; + version = "1.5.5"; + sha256 = "1865f5z5wm2qf3ccws9jy8ps7n8slkmfgn0l2m9apja3q2jajqb1"; buildDepends = [ async enclosedExceptions exceptions liftedAsync liftedBase monadControl mtl systemFileio systemFilepath text time transformers diff --git a/pkgs/development/libraries/haskell/simple-sendfile/default.nix b/pkgs/development/libraries/haskell/simple-sendfile/default.nix index 3e8381bf34b..fc41353d357 100644 --- a/pkgs/development/libraries/haskell/simple-sendfile/default.nix +++ b/pkgs/development/libraries/haskell/simple-sendfile/default.nix @@ -1,16 +1,14 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, conduit, conduitExtra, hspec, HUnit, network -, networkConduit, resourcet -}: +{ cabal, conduit, conduitExtra, hspec, HUnit, network, resourcet }: cabal.mkDerivation (self: { pname = "simple-sendfile"; - version = "0.2.15"; - sha256 = "1fa20h2zcvxwdb5j5a0nnhl38bry1p5ckya1l7lrxx9r2bvjkyj9"; + version = "0.2.17"; + sha256 = "1xxzw916v5zwn8i5i61z6p1wa2rm95sa6ry9z3yg2b2ybpyagw5g"; buildDepends = [ network resourcet ]; testDepends = [ - conduit conduitExtra hspec HUnit network networkConduit resourcet + conduit conduitExtra hspec HUnit network resourcet ]; doCheck = false; meta = { diff --git a/pkgs/development/libraries/haskell/sized/default.nix b/pkgs/development/libraries/haskell/sized/default.nix new file mode 100644 index 00000000000..ae75ff26e4c --- /dev/null +++ b/pkgs/development/libraries/haskell/sized/default.nix @@ -0,0 +1,18 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, constraints, ListLike, monomorphic, typeNatural, vector }: + +cabal.mkDerivation (self: { + pname = "sized"; + version = "0.1.0.0"; + sha256 = "00n9fb7kk3c6dy4j19d9ikmynllpxc7yd51sign0rhvnasmyrghl"; + buildDepends = [ + constraints ListLike monomorphic typeNatural vector + ]; + meta = { + description = "Sized sequence data-types"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ]; + }; +}) diff --git a/pkgs/development/libraries/haskell/socket-io/default.nix b/pkgs/development/libraries/haskell/socket-io/default.nix index 19d6ff3a667..0a7d4b1c230 100644 --- a/pkgs/development/libraries/haskell/socket-io/default.nix +++ b/pkgs/development/libraries/haskell/socket-io/default.nix @@ -6,14 +6,14 @@ cabal.mkDerivation (self: { pname = "socket-io"; - version = "1.0.1"; - sha256 = "0257c5wf6b9rmprqq5q5d7fih4s2szwv98w16ggl61p8khf5d2qs"; + version = "1.1.0"; + sha256 = "1ffip6jlp3i6pz8gbk8m2ra2q8568mgwgi988yh046w787yf9kpw"; buildDepends = [ aeson attoparsec engineIo mtl stm text transformers unorderedContainers vector ]; - jailbreak = true; meta = { + homepage = "http://github.com/ocharles/engine.io"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; maintainers = with self.stdenv.lib.maintainers; [ ocharles ]; diff --git a/pkgs/development/libraries/haskell/statvfs/default.nix b/pkgs/development/libraries/haskell/statvfs/default.nix index bb1ebb1b9d8..15454aa0c97 100644 --- a/pkgs/development/libraries/haskell/statvfs/default.nix +++ b/pkgs/development/libraries/haskell/statvfs/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "statvfs"; - version = "0.1"; - sha256 = "1v45lx7wr27f5sx7cpfsapx1r6akgf1q3hpip1ibbsbhj65ws2r2"; + version = "0.2"; + sha256 = "16z9fddgvf5sl7zy7p74fng9lkdw5m9i5np3q4s2h8jdi43mwmg1"; meta = { description = "Get unix filesystem statistics with statfs, statvfs"; license = self.stdenv.lib.licenses.bsd3; diff --git a/pkgs/development/libraries/haskell/stylish-haskell/default.nix b/pkgs/development/libraries/haskell/stylish-haskell/default.nix index afa664a68f9..9cc43e142a7 100644 --- a/pkgs/development/libraries/haskell/stylish-haskell/default.nix +++ b/pkgs/development/libraries/haskell/stylish-haskell/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "stylish-haskell"; - version = "0.5.10.1"; - sha256 = "1jd2dbi844cjs012gwr5idk1jmn860ff8hy1r1s6jndsm69awbba"; + version = "0.5.10.2"; + sha256 = "1r1vwn334jdsk6szynzz7w9jpbfqs3zs7wzlpwfigsyyrjy3bn3q"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/development/libraries/haskell/tagged-transformer/default.nix b/pkgs/development/libraries/haskell/tagged-transformer/default.nix new file mode 100644 index 00000000000..34da51018e0 --- /dev/null +++ b/pkgs/development/libraries/haskell/tagged-transformer/default.nix @@ -0,0 +1,21 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, comonad, contravariant, distributive, exceptions, mtl +, reflection, semigroupoids, tagged +}: + +cabal.mkDerivation (self: { + pname = "tagged-transformer"; + version = "0.7.1"; + sha256 = "1qgfx546pj4aqdblb4gddfxp642snn5dx4kxj3sn5q7c9lsgdh8j"; + buildDepends = [ + comonad contravariant distributive exceptions mtl reflection + semigroupoids tagged + ]; + meta = { + homepage = "http://github.com/ekmett/tagged-transformer"; + description = "Provides newtype wrappers for phantom types to avoid unsafely passing dummy arguments"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/tasty-hunit/default.nix b/pkgs/development/libraries/haskell/tasty-hunit/default.nix index c7e5b53548f..067e6081818 100644 --- a/pkgs/development/libraries/haskell/tasty-hunit/default.nix +++ b/pkgs/development/libraries/haskell/tasty-hunit/default.nix @@ -1,13 +1,14 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, HUnit, mtl, tasty }: +{ cabal, tasty }: cabal.mkDerivation (self: { pname = "tasty-hunit"; - version = "0.8.0.1"; - sha256 = "0a84j8yjqp9x59dy5nbb50vnscb7iimgc60s8vz1p5721gqi62r5"; - buildDepends = [ HUnit mtl tasty ]; + version = "0.9"; + sha256 = "1ivp9h34cdrahqy8i0y10fa0mqxa947dpbwvhr46sjja053asjxc"; + buildDepends = [ tasty ]; meta = { + homepage = "http://documentup.com/feuerbach/tasty"; description = "HUnit support for the Tasty test framework"; license = self.stdenv.lib.licenses.mit; platforms = self.ghc.meta.platforms; diff --git a/pkgs/development/libraries/haskell/twitter-conduit/default.nix b/pkgs/development/libraries/haskell/twitter-conduit/default.nix index bf2652fa792..0d576680044 100644 --- a/pkgs/development/libraries/haskell/twitter-conduit/default.nix +++ b/pkgs/development/libraries/haskell/twitter-conduit/default.nix @@ -2,27 +2,27 @@ { cabal, aeson, attoparsec, authenticateOauth, caseInsensitive , conduit, conduitExtra, dataDefault, doctest, filepath, hlint -, hspec, httpClient, httpConduit, httpTypes, lens, monadControl -, monadLogger, network, resourcet, shakespeare, text, time +, hspec, httpClient, httpConduit, httpTypes, lens, lensAeson +, monadControl, monadLogger, networkUri, resourcet, text, time , transformers, transformersBase, twitterTypes }: cabal.mkDerivation (self: { pname = "twitter-conduit"; - version = "0.0.5.5"; - sha256 = "13wk863xjlg8g62yhbq4aar7z77n0awh500l6v41fam99lihzxab"; + version = "0.0.5.6"; + sha256 = "1l6gk4538nqknrj082hkdy2jp4gzyq3y473p8gg4mm2n67417r9m"; isLibrary = true; isExecutable = true; buildDepends = [ aeson attoparsec authenticateOauth conduit conduitExtra dataDefault - httpClient httpConduit httpTypes lens monadLogger resourcet - shakespeare text time transformers twitterTypes + httpClient httpConduit httpTypes lens lensAeson monadLogger + networkUri resourcet text time transformers twitterTypes ]; testDepends = [ aeson attoparsec authenticateOauth caseInsensitive conduit conduitExtra dataDefault doctest filepath hlint hspec httpClient - httpConduit httpTypes lens monadControl monadLogger network - resourcet shakespeare text time transformers transformersBase + httpConduit httpTypes lens lensAeson monadControl monadLogger + networkUri resourcet text time transformers transformersBase twitterTypes ]; meta = { @@ -31,5 +31,7 @@ cabal.mkDerivation (self: { license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; maintainers = with self.stdenv.lib.maintainers; [ ocharles ]; + hydraPlatforms = self.stdenv.lib.platforms.none; + broken = true; }; }) diff --git a/pkgs/development/libraries/haskell/twitter-types/default.nix b/pkgs/development/libraries/haskell/twitter-types/default.nix index 1848211dc3e..4a3df6f1b9f 100644 --- a/pkgs/development/libraries/haskell/twitter-types/default.nix +++ b/pkgs/development/libraries/haskell/twitter-types/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "twitter-types"; - version = "0.4.20140809"; - sha256 = "0f32gjvpzcy5ld2j6mhsvaxaiyzyp5pvqjvmgawaiy78c3kxi8gh"; + version = "0.5.0"; + sha256 = "0nnis96rki60ily7ydq155nawmhz7dn51d1d3hwikb1vz16ji47a"; buildDepends = [ aeson httpTypes text unorderedContainers ]; testDepends = [ aeson attoparsec filepath httpTypes HUnit testFramework diff --git a/pkgs/development/libraries/haskell/type-natural/default.nix b/pkgs/development/libraries/haskell/type-natural/default.nix new file mode 100644 index 00000000000..2e56f8c396b --- /dev/null +++ b/pkgs/development/libraries/haskell/type-natural/default.nix @@ -0,0 +1,20 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, constraints, equationalReasoning, monomorphic, singletons +}: + +cabal.mkDerivation (self: { + pname = "type-natural"; + version = "0.2.3.1"; + sha256 = "0qi5b3d0vkm1b2kda3ifw6g7djx91wj7q36la02yadlvmb4jcp1g"; + buildDepends = [ + constraints equationalReasoning monomorphic singletons + ]; + meta = { + homepage = "https://github.com/konn/type-natural"; + description = "Type-level natural and proofs of their properties"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ]; + }; +}) diff --git a/pkgs/development/libraries/haskell/vcsgui/default.nix b/pkgs/development/libraries/haskell/vcsgui/default.nix index 318f369fc3e..08605391fc2 100644 --- a/pkgs/development/libraries/haskell/vcsgui/default.nix +++ b/pkgs/development/libraries/haskell/vcsgui/default.nix @@ -1,20 +1,18 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, filepath, gtk3, mtl, vcswrapper }: +{ cabal, filepath, gtk3, mtl, text, vcswrapper }: cabal.mkDerivation (self: { pname = "vcsgui"; - version = "0.0.4"; - sha256 = "12hfdhnv3xc2dyqk76lyx5ggiygyap4hm50sd6qmwfjj3f2w6b98"; + version = "0.1.0.0"; + sha256 = "0wxalzil8ypvwp0z754m7g3848963znwwrjysdxp5q33imzbp60z"; isLibrary = true; isExecutable = true; - buildDepends = [ filepath gtk3 mtl vcswrapper ]; + buildDepends = [ filepath gtk3 mtl text vcswrapper ]; meta = { homepage = "https://github.com/forste/haskellVCSGUI"; description = "GUI library for source code management systems"; license = "GPL"; platforms = self.stdenv.lib.platforms.linux; - hydraPlatforms = self.stdenv.lib.platforms.none; - broken = true; }; }) diff --git a/pkgs/development/libraries/haskell/vcswrapper/default.nix b/pkgs/development/libraries/haskell/vcswrapper/default.nix index 75336ef8816..8c2653c66f5 100644 --- a/pkgs/development/libraries/haskell/vcswrapper/default.nix +++ b/pkgs/development/libraries/haskell/vcswrapper/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "vcswrapper"; - version = "0.0.4"; - sha256 = "130pmzxdsqv703k2g197vd5rl60fwkqqv2xck66ygb932wsq3fnk"; + version = "0.1.0"; + sha256 = "058xbfgxsp3g4x4rwbp57dqgr9mwnmj623js39dbmiqkixsda31a"; isLibrary = true; isExecutable = true; buildDepends = [ filepath hxt mtl parsec split text ]; diff --git a/pkgs/development/libraries/haskell/vty/5.1.4.nix b/pkgs/development/libraries/haskell/vty/5.2.1.nix similarity index 92% rename from pkgs/development/libraries/haskell/vty/5.1.4.nix rename to pkgs/development/libraries/haskell/vty/5.2.1.nix index 24d123d67cc..6034807929e 100644 --- a/pkgs/development/libraries/haskell/vty/5.1.4.nix +++ b/pkgs/development/libraries/haskell/vty/5.2.1.nix @@ -9,8 +9,8 @@ cabal.mkDerivation (self: { pname = "vty"; - version = "5.1.4"; - sha256 = "157saacy6lp2ngl0dz9ri4ji1vj191d1239x1xykna8y618r0vqf"; + version = "5.2.1"; + sha256 = "15xg7yznizscvyjlnivakrzk60l0a0pigax7sgnn2ab79rfzcxww"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix index 184adcc03dd..39514c8a3bd 100644 --- a/pkgs/development/libraries/haskell/wai-extra/default.nix +++ b/pkgs/development/libraries/haskell/wai-extra/default.nix @@ -9,8 +9,8 @@ cabal.mkDerivation (self: { pname = "wai-extra"; - version = "3.0.2"; - sha256 = "1xynrcm8i8iyyc4dy7nsziy0g4yc6gqx0h5vs86f85i1j0mrf3xv"; + version = "3.0.2.1"; + sha256 = "02jamvina7m9wjz0hd7gj309d1vcmhgdwyh9y1bfpvq29ngqkkca"; buildDepends = [ ansiTerminal base64Bytestring blazeBuilder caseInsensitive dataDefaultClass deepseq fastLogger httpTypes liftedBase network diff --git a/pkgs/development/libraries/haskell/websockets/default.nix b/pkgs/development/libraries/haskell/websockets/default.nix index c74fad5f1a8..5db1ec41613 100644 --- a/pkgs/development/libraries/haskell/websockets/default.nix +++ b/pkgs/development/libraries/haskell/websockets/default.nix @@ -19,7 +19,6 @@ cabal.mkDerivation (self: { entropy HUnit ioStreams mtl network QuickCheck random SHA testFramework testFrameworkHunit testFrameworkQuickcheck2 text ]; - jailbreak = true; meta = { homepage = "http://jaspervdj.be/websockets"; description = "A sensible and clean way to write WebSocket-capable servers in Haskell"; diff --git a/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix b/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix index 5a3c75f6165..37dc11b1f0f 100644 --- a/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix +++ b/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "wl-pprint-terminfo"; - version = "3.7.1"; - sha256 = "04220hgrjjsz0ir65s6ynrjgdmqlfcw49fb158w7wgxxh69kc7h6"; + version = "3.7.1.1"; + sha256 = "1mjnbkk3cw2v7nda7qxdkl21pmclz6m17sviqp4qf3rc8rgin3zd"; buildDepends = [ nats semigroups terminfo text transformers wlPprintExtras ]; diff --git a/pkgs/development/libraries/haskell/wordexp/default.nix b/pkgs/development/libraries/haskell/wordexp/default.nix new file mode 100644 index 00000000000..7d03b1adea5 --- /dev/null +++ b/pkgs/development/libraries/haskell/wordexp/default.nix @@ -0,0 +1,16 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, c2hs, semigroups }: + +cabal.mkDerivation (self: { + pname = "wordexp"; + version = "0.2.0.0"; + sha256 = "1hfpvzbyyh47ai166xyrhmhvg2shrqcswsfalwa16wab6hcg32ki"; + buildDepends = [ semigroups ]; + buildTools = [ c2hs ]; + meta = { + description = "wordexp(3) wrappers"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/wreq/default.nix b/pkgs/development/libraries/haskell/wreq/default.nix index 9772418173b..d0a3e94fcd2 100644 --- a/pkgs/development/libraries/haskell/wreq/default.nix +++ b/pkgs/development/libraries/haskell/wreq/default.nix @@ -1,23 +1,24 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! { cabal, aeson, attoparsec, doctest, exceptions, filepath -, httpClient, httpClientTls, httpTypes, HUnit, lens, mimeTypes -, temporary, testFramework, testFrameworkHunit, text, time +, httpClient, httpClientTls, httpTypes, HUnit, lens, lensAeson +, mimeTypes, temporary, testFramework, testFrameworkHunit, text +, time }: cabal.mkDerivation (self: { pname = "wreq"; - version = "0.1.0.1"; - sha256 = "05w3b555arsab8a5w73nm9pk3p9r6jipi6cd3ngxv48gdn9wzhvz"; + version = "0.2.0.0"; + sha256 = "0ajrwn4yn6h65v97jfhbb4x3j307gdf34dyjnnhsrmsf7911l44d"; isLibrary = true; isExecutable = true; buildDepends = [ aeson attoparsec exceptions httpClient httpClientTls httpTypes lens - mimeTypes text time + lensAeson mimeTypes text time ]; testDepends = [ - aeson doctest filepath httpClient httpTypes HUnit lens temporary - testFramework testFrameworkHunit text + aeson doctest filepath httpClient httpTypes HUnit lens lensAeson + temporary testFramework testFrameworkHunit text ]; doCheck = false; meta = { diff --git a/pkgs/development/libraries/haskell/xml-html-conduit-lens/default.nix b/pkgs/development/libraries/haskell/xml-html-conduit-lens/default.nix index 3dded2dcb44..7a53fb456f7 100644 --- a/pkgs/development/libraries/haskell/xml-html-conduit-lens/default.nix +++ b/pkgs/development/libraries/haskell/xml-html-conduit-lens/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "xml-html-conduit-lens"; - version = "0.3.2.0"; - sha256 = "150b772wkl2k8xcrcbqj3qhndjkl35qzwqdjbgs9mxp867aihiv0"; + version = "0.3.2.1"; + sha256 = "0iy58nq5b6ixdky2xr4r8xxk3c8wqp1y3jbpsk3dr1qawzjbzp12"; buildDepends = [ htmlConduit lens text xmlConduit ]; testDepends = [ doctest hspec hspecExpectationsLens lens xmlConduit @@ -17,7 +17,5 @@ cabal.mkDerivation (self: { description = "Optics for xml-conduit and html-conduit"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - hydraPlatforms = self.stdenv.lib.platforms.none; - broken = true; }; }) diff --git a/pkgs/development/libraries/haskell/xml-lens/default.nix b/pkgs/development/libraries/haskell/xml-lens/default.nix index fd9609ec25f..f9e60441975 100644 --- a/pkgs/development/libraries/haskell/xml-lens/default.nix +++ b/pkgs/development/libraries/haskell/xml-lens/default.nix @@ -7,6 +7,7 @@ cabal.mkDerivation (self: { version = "0.1.6.1"; sha256 = "093grvlpm19l3g10ka82xpzl2wr0gli71kfkbvk4gvg3194fkw4h"; buildDepends = [ lens text xmlConduit ]; + jailbreak = true; meta = { homepage = "https://github.com/fumieval/xml-lens"; description = "Lenses, traversals, prisms for xml-conduit"; diff --git a/pkgs/development/libraries/haskell/yaml/default.nix b/pkgs/development/libraries/haskell/yaml/default.nix index b5438fabc12..9173baa97ba 100644 --- a/pkgs/development/libraries/haskell/yaml/default.nix +++ b/pkgs/development/libraries/haskell/yaml/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "yaml"; - version = "0.8.8.4"; - sha256 = "1mh5xv66cqvk0r5n6pwcm11m9489y40l69ca417yvymkksmncc7b"; + version = "0.8.9.1"; + sha256 = "129pf4gg3mf2ljag8vxknnqxbrbx53hshzpaggndxjir72303njy"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix b/pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix new file mode 100644 index 00000000000..9f577fc4520 --- /dev/null +++ b/pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix @@ -0,0 +1,22 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, cryptohash, pwstoreFast, text, yesodAuth, yesodCore +, yesodForm, yesodPersistent +}: + +cabal.mkDerivation (self: { + pname = "yesod-auth-hashdb"; + version = "1.3.0.1"; + sha256 = "0q78mw09g6b04zaz54s03222mh59nm604qh8gyw5kka06f93hk4q"; + buildDepends = [ + cryptohash pwstoreFast text yesodAuth yesodCore yesodForm + yesodPersistent + ]; + meta = { + homepage = "http://www.yesodweb.com/"; + description = "Authentication plugin for Yesod"; + license = self.stdenv.lib.licenses.mit; + platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ ianwookim ]; + }; +}) diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix index 90d354a22cf..857b237ba42 100644 --- a/pkgs/development/libraries/haskell/yesod-core/default.nix +++ b/pkgs/development/libraries/haskell/yesod-core/default.nix @@ -13,8 +13,8 @@ cabal.mkDerivation (self: { pname = "yesod-core"; - version = "1.2.19"; - sha256 = "0dlvg8zpr1qyav3svqybsqsrmrl9n8s1kdzxf6zxa3pn582d48il"; + version = "1.2.19.1"; + sha256 = "1021z0jrfbafbdybpj0jkacr9ljyap5cpmfk2911dsz3nz7sy6zg"; buildDepends = [ aeson attoparsecConduit blazeBuilder blazeHtml blazeMarkup caseInsensitive cereal clientsession conduit conduitExtra cookie diff --git a/pkgs/development/libraries/haskell/zeromq4-haskell/default.nix b/pkgs/development/libraries/haskell/zeromq4-haskell/default.nix index 0e2cf67a19f..e4519c47358 100644 --- a/pkgs/development/libraries/haskell/zeromq4-haskell/default.nix +++ b/pkgs/development/libraries/haskell/zeromq4-haskell/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "zeromq4-haskell"; - version = "0.6"; - sha256 = "1n8vvlwnmvi2hlqhkmzsqgpbpxnhdcs8jy3rj1srsg729m2aqc8y"; + version = "0.6.1"; + sha256 = "14ai6sp39qv6kmj33basnvvfqhzbiqxskv3crjwfdaxbijh23mif"; buildDepends = [ async exceptions semigroups transformers ]; testDepends = [ async QuickCheck tasty tastyHunit tastyQuickcheck diff --git a/pkgs/development/libraries/hwloc/default.nix b/pkgs/development/libraries/hwloc/default.nix index 3c5f198cea6..d4d9663441f 100644 --- a/pkgs/development/libraries/hwloc/default.nix +++ b/pkgs/development/libraries/hwloc/default.nix @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { doCheck = !stdenv.isCygwin; meta = { - description = "hwloc, a portable abstraction of hierarchical architectures for high-performance computing"; + description = "Portable abstraction of hierarchical architectures for high-performance computing"; longDescription = '' hwloc provides a portable abstraction (across OS, diff --git a/pkgs/development/libraries/jasper/default.nix b/pkgs/development/libraries/jasper/default.nix index 4046c05f79e..ed51a0a2820 100644 --- a/pkgs/development/libraries/jasper/default.nix +++ b/pkgs/development/libraries/jasper/default.nix @@ -15,6 +15,6 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.ece.uvic.ca/~mdadams/jasper/; - description = "JasPer JPEG2000 Library"; + description = "JPEG2000 Library"; }; } diff --git a/pkgs/development/libraries/java/classpath/default.nix b/pkgs/development/libraries/java/classpath/default.nix index bbfc6ed38cc..eff52cc177b 100644 --- a/pkgs/development/libraries/java/classpath/default.nix +++ b/pkgs/development/libraries/java/classpath/default.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { configureFlags = "--disable-Werror --disable-plugin --with-antlr-jar=${antlr}/lib/antlr.jar"; meta = { - description = "GNU Classpath, essential libraries for Java"; + description = "Essential libraries for Java"; longDescription = '' GNU Classpath, Essential Libraries for Java, is a GNU project to create diff --git a/pkgs/development/libraries/java/rhino/default.nix b/pkgs/development/libraries/java/rhino/default.nix index 42bdba7567c..34aaded7cb4 100644 --- a/pkgs/development/libraries/java/rhino/default.nix +++ b/pkgs/development/libraries/java/rhino/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation { ''; meta = { - description = "Mozilla Rhino: JavaScript for Java"; + description = "An implementation of JavaScript written in Java"; longDescription = '' Rhino is an open-source implementation of JavaScript written diff --git a/pkgs/development/libraries/json-glib/default.nix b/pkgs/development/libraries/json-glib/default.nix index 7a45ca0f227..a50163c601d 100644 --- a/pkgs/development/libraries/json-glib/default.nix +++ b/pkgs/development/libraries/json-glib/default.nix @@ -7,9 +7,9 @@ stdenv.mkDerivation rec { project = "json-glib"; major = "1"; minor = "0"; - patchlevel = "0"; + patchlevel = "2"; extension = "xz"; - sha256 = "dbf558d2da989ab84a27e4e13daa51ceaa97eb959c2c2f80976c9322a8f4cdde"; + sha256 = "887bd192da8f5edc53b490ec51bf3ffebd958a671f5963e4f3af32c22e35660a"; }; configureflags= "--with-introspection" ; diff --git a/pkgs/development/libraries/libaal/default.nix b/pkgs/development/libraries/libaal/default.nix index 596b8e2e84c..36d1ddc7151 100644 --- a/pkgs/development/libraries/libaal/default.nix +++ b/pkgs/development/libraries/libaal/default.nix @@ -1,11 +1,12 @@ -{stdenv, fetchurl}: +{ stdenv, fetchurl }: -stdenv.mkDerivation { - name = "libaal-1.0.5"; +stdenv.mkDerivation rec { + version = "1.0.6"; + name = "libaal-${version}"; src = fetchurl { - url = http://chichkin_i.zelnet.ru/namesys/libaal-1.0.5.tar.gz; - sha256 = "109f464hxwms90mpczc7h7lmrdlcmlglabkzh86h25xrlxxdn6pz"; + url = "mirror://sourceforge/reiser4/${name}.tar.gz"; + sha256 = "176f2sns6iyxv3h9zyirdinjwi05gdak48zqarhib2s38rvm98di"; }; preInstall = '' @@ -15,5 +16,7 @@ stdenv.mkDerivation { meta = { homepage = http://www.namesys.com/; description = "Support library for Reiser4"; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; }; } diff --git a/pkgs/development/libraries/libao/default.nix b/pkgs/development/libraries/libao/default.nix index 401573378ee..44e800b6f1e 100644 --- a/pkgs/development/libraries/libao/default.nix +++ b/pkgs/development/libraries/libao/default.nix @@ -1,14 +1,15 @@ { lib, stdenv, fetchurl, pkgconfig, pulseaudio, alsaLib , usePulseAudio }: -stdenv.mkDerivation { - name = "libao-1.1.0"; +stdenv.mkDerivation rec { + version = "1.2.0"; + name = "libao-${version}"; src = fetchurl { - url = http://downloads.xiph.org/releases/ao/libao-1.1.0.tar.gz; - sha256 = "1m0v2y6bhr4iwsgdkc7b3y0qgpvpv1ifbxsy8n8ahsvjn6wmppi9"; + url = "http://downloads.xiph.org/releases/ao/${name}.tar.gz"; + sha256 = "1bwwv1g9lchaq6qmhvj1pp3hnyqr64ydd4j38x94pmprs4d27b83"; }; - buildInputs = + buildInputs = [ pkgconfig ] ++ lib.optional stdenv.isLinux (if usePulseAudio then [ pulseaudio ] else [ alsaLib ]); @@ -19,6 +20,7 @@ stdenv.mkDerivation { platforms. ''; homepage = http://xiph.org/ao/; - license = stdenv.lib.licenses.gpl2Plus; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; }; } diff --git a/pkgs/development/libraries/libassuan/default.nix b/pkgs/development/libraries/libassuan/default.nix index f5a3d92d3db..90ce4f970e3 100644 --- a/pkgs/development/libraries/libassuan/default.nix +++ b/pkgs/development/libraries/libassuan/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "Libassuan, the IPC library used by GnuPG and related software"; + description = "IPC library used by GnuPG and related software"; longDescription = '' Libassuan is a small library implementing the so-called Assuan diff --git a/pkgs/development/libraries/libcddb/default.nix b/pkgs/development/libraries/libcddb/default.nix index b9823cefd2d..9a284d8988d 100644 --- a/pkgs/development/libraries/libcddb/default.nix +++ b/pkgs/development/libraries/libcddb/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { }; meta = { - description = "Libcddb is a C library to access data on a CDDB server (freedb.org)"; + description = "C library to access data on a CDDB server (freedb.org)"; license = stdenv.lib.licenses.lgpl2Plus; homepage = http://libcddb.sourceforge.net/; }; diff --git a/pkgs/development/libraries/libchamplain/default.nix b/pkgs/development/libraries/libchamplain/default.nix index 51b7f7e181d..9cdf9d411cc 100644 --- a/pkgs/development/libraries/libchamplain/default.nix +++ b/pkgs/development/libraries/libchamplain/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { homepage = http://projects.gnome.org/libchamplain/; license = stdenv.lib.licenses.lgpl2Plus; - description = "libchamplain, a C library providing a ClutterActor to display maps"; + description = "C library providing a ClutterActor to display maps"; longDescription = '' libchamplain is a C library providing a ClutterActor to display diff --git a/pkgs/development/libraries/libchop/default.nix b/pkgs/development/libraries/libchop/default.nix index f0d7fbfbeb6..37af9756724 100644 --- a/pkgs/development/libraries/libchop/default.nix +++ b/pkgs/development/libraries/libchop/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "libchop, tools & library for data backup and distributed storage"; + description = "Tools & library for data backup and distributed storage"; longDescription = '' Libchop is a set of utilities and library for data backup and diff --git a/pkgs/development/libraries/libdaemon/default.nix b/pkgs/development/libraries/libdaemon/default.nix index ba7e3e47ff7..cb8d07fec90 100644 --- a/pkgs/development/libraries/libdaemon/default.nix +++ b/pkgs/development/libraries/libdaemon/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { configureFlags = [ "--disable-lynx" ]; meta = { - description = "libdaemon, a lightweight C library that eases the writing of UNIX daemons"; + description = "Lightweight C library that eases the writing of UNIX daemons"; homepage = http://0pointer.de/lennart/projects/libdaemon/; diff --git a/pkgs/development/libraries/libdiscid/default.nix b/pkgs/development/libraries/libdiscid/default.nix index f9d1fc87870..8c5c8bef351 100644 --- a/pkgs/development/libraries/libdiscid/default.nix +++ b/pkgs/development/libraries/libdiscid/default.nix @@ -1,26 +1,21 @@ { stdenv, fetchurl, cmake, pkgconfig }: stdenv.mkDerivation rec { - name = "libdiscid-0.2.2"; + name = "libdiscid-0.6.1"; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ cmake ]; src = fetchurl { - url = "http://users.musicbrainz.org/~matt/${name}.tar.gz"; - sha256 = "00l4ln9rk0vqf67iccwqrgc9qx1al92i05zylh85kd1zn9d5sjwp"; + url = "http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/${name}.tar.gz"; + sha256 = "1mbd5y9056638cffpfwc6772xwrsk18prv1djsr6jpfim38jpsxc"; }; - # developer forgot to update his version number - # this is propagated to pkg-config - preConfigure = '' - substituteInPlace "CMakeLists.txt" \ - --replace "PROJECT_VERSION 0.1.1" "PROJECT_VERSION 0.2.2" - ''; - - meta = { + meta = with stdenv.lib; { description = "A C library for creating MusicBrainz DiscIDs from audio CDs"; homepage = http://musicbrainz.org/doc/libdiscid; - license = stdenv.lib.licenses.lgpl21; + maintainers = with maintainers; [ emery ]; + license = licenses.lgpl21; + platforms = platforms.all; }; } diff --git a/pkgs/development/libraries/libdnet/default.nix b/pkgs/development/libraries/libdnet/default.nix index 50bdaa1c4c0..acd930ddd01 100644 --- a/pkgs/development/libraries/libdnet/default.nix +++ b/pkgs/development/libraries/libdnet/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { ''; meta = { - description = "libdnet provides a simplified, portable interface to several low-level networking routines"; + description = "Provides a simplified, portable interface to several low-level networking routines"; homepage = http://code.google.com/p/libdnet/; license = "BSD"; # New BSD license maintainers = [stdenv.lib.maintainers.marcweber]; diff --git a/pkgs/development/libraries/libe-book/0.0.nix b/pkgs/development/libraries/libe-book/0.0.nix deleted file mode 100644 index 2dc8de67039..00000000000 --- a/pkgs/development/libraries/libe-book/0.0.nix +++ /dev/null @@ -1,30 +0,0 @@ -{stdenv, fetchurl, gperf, pkgconfig, librevenge, libxml2, boost, icu, cppunit -, libwpd}: -let - s = # Generated upstream information - rec { - baseName="libe-book"; - version="0.0.3"; - name="${baseName}-${version}"; - hash="06xhg319wbqrkj8914npasv5lr7k2904mmy7wa78063mkh31365i"; - url="mirror://sourceforge/project/libebook/libe-book-0.0.3/libe-book-0.0.3.tar.xz"; - sha256="06xhg319wbqrkj8914npasv5lr7k2904mmy7wa78063mkh31365i"; - }; - buildInputs = [ - gperf pkgconfig librevenge libxml2 boost icu cppunit libwpd - ]; -in -stdenv.mkDerivation { - inherit (s) name version; - inherit buildInputs; - src = fetchurl { - inherit (s) url sha256; - }; - meta = { - inherit (s) version; - description = ''Library for import of reflowable e-book formats''; - license = stdenv.lib.licenses.lgpl21Plus ; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/development/libraries/libe-book/0.0.upstream b/pkgs/development/libraries/libe-book/0.0.upstream deleted file mode 100644 index e2994f52691..00000000000 --- a/pkgs/development/libraries/libe-book/0.0.upstream +++ /dev/null @@ -1,4 +0,0 @@ -url http://sourceforge.net/projects/libebook/files/ -SF_version_dir libe-book-0.0. -version_link '[.]tar.xz/download$' -SF_redirect diff --git a/pkgs/development/libraries/libelf/default.nix b/pkgs/development/libraries/libelf/default.nix index d9436456d0d..407b367d6b7 100644 --- a/pkgs/development/libraries/libelf/default.nix +++ b/pkgs/development/libraries/libelf/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation (rec { doCheck = true; meta = { - description = "Libelf, an ELF object file access library"; + description = "ELF object file access library"; homepage = http://www.mr511.de/software/english.html; diff --git a/pkgs/development/libraries/libevent/default.nix b/pkgs/development/libraries/libevent/default.nix index bb854139b79..57cf1738342 100644 --- a/pkgs/development/libraries/libevent/default.nix +++ b/pkgs/development/libraries/libevent/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation { ''; meta = { - description = "libevent, an event notification library"; + description = "Event notification library"; longDescription = '' The libevent API provides a mechanism to execute a callback function diff --git a/pkgs/development/libraries/libewf/default.nix b/pkgs/development/libraries/libewf/default.nix index 7c948aa9824..fad0170ade7 100644 --- a/pkgs/development/libraries/libewf/default.nix +++ b/pkgs/development/libraries/libewf/default.nix @@ -1,10 +1,11 @@ -{ fetchurl, stdenv, zlib, openssl, libuuid, file }: +{ fetchurl, stdenv, zlib, openssl, libuuid, file, fuse }: stdenv.mkDerivation rec { - name = "libewf-20100226"; + version = "20140608"; + name = "libewf-${version}"; src = fetchurl { - url = "mirror://sourceforge/libewf/${name}.tar.gz"; - sha256 = "aedd2a6b3df6525ff535ab95cd569ebb361a4022eb4163390f26257913c2941a"; + url = "https://googledrive.com/host/0B3fBvzttpiiSMTdoaVExWWNsRjg/libewf-20140608.tar.gz"; + sha256 = "0wfsffzxk934hl8cpwr14w8ixnh8d23x0xnnzcspjwi2c7730h6i"; }; preConfigure = ''sed -e 's@/usr/bin/file@file@g' -i configure''; @@ -14,6 +15,8 @@ stdenv.mkDerivation rec { meta = { description = "Library for support of the Expert Witness Compression Format"; homepage = http://sourceforge.net/projects/libewf/; - license = "free"; + license = stdenv.lib.licenses.lgpl3; + maintainers = [ stdenv.lib.maintainers.raskin ] ; + inherit version; }; } diff --git a/pkgs/development/libraries/libewf/default.upstream b/pkgs/development/libraries/libewf/default.upstream new file mode 100644 index 00000000000..a071132463f --- /dev/null +++ b/pkgs/development/libraries/libewf/default.upstream @@ -0,0 +1,7 @@ +url https://code.google.com/p/libewf/ +version_link 'googledrive[.]com' +version_link '[.]tar[.]' +do_overwrite () { + do_overwrite_just_version + set_var_value url "$CURRENT_URL" +} diff --git a/pkgs/development/libraries/libextractor/default.nix b/pkgs/development/libraries/libextractor/default.nix index 6df5ca683f1..18387c904f8 100644 --- a/pkgs/development/libraries/libextractor/default.nix +++ b/pkgs/development/libraries/libextractor/default.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { #postInstall = "make check"; meta = { - description = "GNU libextractor, a simple library for keyword extraction"; + description = "Simple library for keyword extraction"; longDescription = '' GNU libextractor is a library used to extract meta-data from files diff --git a/pkgs/development/libraries/libgcrypt/1.6.nix b/pkgs/development/libraries/libgcrypt/1.6.nix index ced3b723b13..e468c3163d3 100644 --- a/pkgs/development/libraries/libgcrypt/1.6.nix +++ b/pkgs/development/libraries/libgcrypt/1.6.nix @@ -1,11 +1,11 @@ { fetchurl, stdenv, libgpgerror, transfig, ghostscript, texinfo }: stdenv.mkDerivation rec { - name = "libgcrypt-1.6.1"; + name = "libgcrypt-1.6.2"; src = fetchurl { url = "mirror://gnupg/libgcrypt/${name}.tar.bz2"; - sha256 = "0w10vhpj1r5nq7qm6jp21p1v1vhf37701cw8yilygzzqd7mfzhx1"; + sha256 = "de084492a6b38cdb27b67eaf749ceba76bf7029f63a9c0c3c1b05c88c9885c4c"; }; nativeBuildInputs = [ transfig ghostscript texinfo ]; @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { }; meta = { - description = "GNU Libgcrypt, a general-pupose cryptographic library"; + description = "General-pupose cryptographic library"; longDescription = '' GNU Libgcrypt is a general purpose cryptographic library based on diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix index ba3de49ede8..ed267e23c87 100644 --- a/pkgs/development/libraries/libgcrypt/default.nix +++ b/pkgs/development/libraries/libgcrypt/default.nix @@ -1,11 +1,11 @@ { fetchurl, stdenv, libgpgerror }: stdenv.mkDerivation (rec { - name = "libgcrypt-1.5.3"; + name = "libgcrypt-1.5.4"; src = fetchurl { url = "mirror://gnupg/libgcrypt/${name}.tar.bz2"; - sha256 = "1lar8y3lh61zl5flljpz540d78g99h4d5idfwrfw8lm3gm737xdw"; + sha256 = "d5f88d9f41a46953dc250cdb8575129b37ee2208401b7fa338c897f667c7fb33"; }; propagatedBuildInputs = [ libgpgerror ]; @@ -19,7 +19,7 @@ stdenv.mkDerivation (rec { ''; meta = { - description = "GNU Libgcrypt, a general-pupose cryptographic library"; + description = "General-pupose cryptographic library"; longDescription = '' GNU Libgcrypt is a general purpose cryptographic library based on diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix index ca8073fbe30..dc041490f78 100644 --- a/pkgs/development/libraries/libgphoto2/default.nix +++ b/pkgs/development/libraries/libgphoto2/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://sourceforge/gphoto/${name}.tar.bz2"; - sha256 = "1h0bwrbc69yq561pw4fjyclwvk0g6rrj3pw6zrdx33isipi15d2z"; + sha256 = "1w2bfy6619fgrigasgmx3lnill8c99lq7blmy2bpp0qqqqwdb93d"; }; nativeBuildInputs = [ pkgconfig gettext ]; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { MTP, and other vendor specific protocols for controlling and transferring data from digital cameras. ''; - version = "2.5.4"; + version = "2.5.5"; # XXX: the homepage claims LGPL, but several src files are lgpl21Plus license = stdenv.lib.licenses.lgpl21Plus; platforms = with stdenv.lib.platforms; unix; diff --git a/pkgs/development/libraries/libiconv/default.nix b/pkgs/development/libraries/libiconv/default.nix index 7b669cd780a..3bdb85a78eb 100644 --- a/pkgs/development/libraries/libiconv/default.nix +++ b/pkgs/development/libraries/libiconv/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { }; meta = { - description = "GNU libiconv, an iconv(3) implementation"; + description = "An iconv(3) implementation"; longDescription = '' Some programs, like mailers and web browsers, must be able to convert diff --git a/pkgs/development/libraries/libidn/default.nix b/pkgs/development/libraries/libidn/default.nix index 802ee9e3e88..5aea194e39d 100644 --- a/pkgs/development/libraries/libidn/default.nix +++ b/pkgs/development/libraries/libidn/default.nix @@ -1,18 +1,18 @@ { fetchurl, stdenv }: stdenv.mkDerivation rec { - name = "libidn-1.28"; + name = "libidn-1.29"; src = fetchurl { url = "mirror://gnu/libidn/${name}.tar.gz"; - sha256 = "1yxbfdiwr3l91m79sksn6v5mgpl4lfj8i82zgryckas9hjb7ldfx"; + sha256 = "fb82747dbbf9b36f703ed27293317d818d7e851d4f5773dedf3efa4db32a7c7c"; }; doCheck = ! stdenv.isDarwin; meta = { homepage = http://www.gnu.org/software/libidn/; - description = "GNU Libidn library for internationalized domain names"; + description = "Library for internationalized domain names"; longDescription = '' GNU Libidn is a fully documented implementation of the @@ -30,6 +30,7 @@ stdenv.mkDerivation rec { included. ''; + repositories.git = git://git.savannah.gnu.org/libidn.git; license = stdenv.lib.licenses.lgpl2Plus; platforms = stdenv.lib.platforms.all; maintainers = [ ]; diff --git a/pkgs/development/libraries/libksba/default.nix b/pkgs/development/libraries/libksba/default.nix index 5e038ad8572..dbd2516c059 100644 --- a/pkgs/development/libraries/libksba/default.nix +++ b/pkgs/development/libraries/libksba/default.nix @@ -12,6 +12,6 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.gnupg.org; - description = "Libksba is a CMS and X.509 access library under development"; + description = "CMS and X.509 access library under development"; }; } diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix index 959dca47573..39795267a2c 100644 --- a/pkgs/development/libraries/libmicrohttpd/default.nix +++ b/pkgs/development/libraries/libmicrohttpd/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { doCheck = false; meta = { - description = "GNU libmicrohttpd, an embeddable HTTP server library"; + description = "Embeddable HTTP server library"; longDescription = '' GNU libmicrohttpd is a small C library that is supposed to make diff --git a/pkgs/development/libraries/libmpeg2/A00-tags.patch b/pkgs/development/libraries/libmpeg2/A00-tags.patch deleted file mode 100644 index 0b5d7d7da12..00000000000 --- a/pkgs/development/libraries/libmpeg2/A00-tags.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -ru mpeg2dec.orig/libmpeg2/decode.c mpeg2dec/libmpeg2/decode.c ---- mpeg2dec.orig/libmpeg2/decode.c 2008-07-09 12:16:05.000000000 -0700 -+++ mpeg2dec/libmpeg2/decode.c 2009-07-03 16:29:48.000000000 -0700 -@@ -212,7 +212,7 @@ - - mpeg2_state_t mpeg2_parse_header (mpeg2dec_t * mpeg2dec) - { -- static int (* process_header[]) (mpeg2dec_t * mpeg2dec) = { -+ static int (* process_header[]) (mpeg2dec_t *) = { - mpeg2_header_picture, mpeg2_header_extension, mpeg2_header_user_data, - mpeg2_header_sequence, NULL, NULL, NULL, NULL, mpeg2_header_gop - }; -@@ -368,6 +368,14 @@ - - void mpeg2_tag_picture (mpeg2dec_t * mpeg2dec, uint32_t tag, uint32_t tag2) - { -+ if (mpeg2dec->num_tags == 0 && mpeg2dec->state == STATE_PICTURE && mpeg2dec->picture) { -+ // since tags got processed when we entered this state we -+ // have to set them directly or they'll end up on the next frame. -+ mpeg2dec->picture->tag = tag; -+ mpeg2dec->picture->tag2 = tag2; -+ mpeg2dec->picture->flags |= PIC_FLAG_TAGS; -+ return; -+ } - mpeg2dec->tag_previous = mpeg2dec->tag_current; - mpeg2dec->tag2_previous = mpeg2dec->tag2_current; - mpeg2dec->tag_current = tag; diff --git a/pkgs/development/libraries/libmpeg2/default.nix b/pkgs/development/libraries/libmpeg2/default.nix index e651a932efe..c2008700804 100644 --- a/pkgs/development/libraries/libmpeg2/default.nix +++ b/pkgs/development/libraries/libmpeg2/default.nix @@ -1,20 +1,18 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - name = "libmpeg2-0.5.1p4"; - + version = "0.5.1"; + name = "libmpeg2-${version}"; + src = fetchurl { url = "http://libmpeg2.sourceforge.net/files/${name}.tar.gz"; sha256 = "1m3i322n2fwgrvbs1yck7g5md1dbg22bhq5xdqmjpz5m7j4jxqny"; }; - # From Handbrake - Project seems unmaintained - patches = [ - ./A00-tags.patch - ]; - meta = { homepage = http://libmpeg2.sourceforge.net/; description = "A free library for decoding mpeg-2 and mpeg-1 video streams"; + license = stdenv.lib.licenses.gpl2; + maintainer = with stdenv.lib.maintainers; [ fuuzetsu ]; }; } diff --git a/pkgs/development/libraries/libmwaw/0.2.nix b/pkgs/development/libraries/libmwaw/0.2.nix deleted file mode 100644 index d66414b6814..00000000000 --- a/pkgs/development/libraries/libmwaw/0.2.nix +++ /dev/null @@ -1,29 +0,0 @@ -{stdenv, fetchurl, boost, pkgconfig, cppunit, zlib, libwpg, libwpd, librevenge}: -let - s = # Generated upstream information - rec { - baseName="libmwaw"; - version="0.2.1"; - name="${baseName}-${version}"; - hash="1fil1ll84pq0k3g6rcc2xfg1yrigkljp4ay5p2wpwd9qlmfvvvqn"; - url="mirror://sourceforge/project/libmwaw/libmwaw/libmwaw-0.2.1/libmwaw-0.2.1.tar.xz"; - sha256="1fil1ll84pq0k3g6rcc2xfg1yrigkljp4ay5p2wpwd9qlmfvvvqn"; - }; - buildInputs = [ - boost pkgconfig cppunit zlib libwpg libwpd librevenge - ]; -in -stdenv.mkDerivation { - inherit (s) name version; - inherit buildInputs; - src = fetchurl { - inherit (s) url sha256; - }; - meta = { - inherit (s) version; - description = ''Import library for some old mac text documents''; - license = stdenv.lib.licenses.mpl20 ; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/development/libraries/libmwaw/0.2.upstream b/pkgs/development/libraries/libmwaw/0.2.upstream deleted file mode 100644 index 8ce00ecf767..00000000000 --- a/pkgs/development/libraries/libmwaw/0.2.upstream +++ /dev/null @@ -1,4 +0,0 @@ -url http://sourceforge.net/projects/libmwaw/files/libmwaw/ -SF_version_dir libmwaw-0.2. -version_link '[.]tar.xz/download$' -SF_redirect diff --git a/pkgs/development/libraries/libnfc/default.nix b/pkgs/development/libraries/libnfc/default.nix new file mode 100644 index 00000000000..a018ce1f0fa --- /dev/null +++ b/pkgs/development/libraries/libnfc/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, libusb }: + +stdenv.mkDerivation rec { + name = "libnfc-${version}"; + version = "1.7.1"; + + src = fetchurl { + url = "http://dl.bintray.com/nfc-tools/sources/libnfc-1.7.1.tar.bz2"; + sha256 = "0wj0iwwcpmpalyk61aa7yc6i4p9hgdajkrgnlswgk0vnwbc78pll"; + }; + + buildInputs = [ libusb ]; + + meta = with stdenv.lib; { + description = "Open source library libnfc for Near Field Communication"; + license = licenses.gpl3; + homepage = http://code.google.com/p/libnfc/; + maintainers = with maintainers; [offline]; + platforms = with platforms; unix; + }; +} diff --git a/pkgs/development/libraries/libnftnl/default.nix b/pkgs/development/libraries/libnftnl/default.nix new file mode 100644 index 00000000000..cb1e8346742 --- /dev/null +++ b/pkgs/development/libraries/libnftnl/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, libmnl }: + +stdenv.mkDerivation rec { + name = "libnftnl-1.0.2"; + + src = fetchurl { + url = "netfilter.org/projects/libnftnl/files/${name}.tar.bz2"; + sha256 = "1p268cv85l4ipd1p9ipjdrfgba14cblp01apv7wc44zmwfr2gkkq"; + }; + + buildInputs = [ pkgconfig libmnl ]; + + meta = with stdenv.lib; { + description = "a userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem"; + homepage = http://netfilter.org/projects/libnftnl; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ wkennington ]; + }; +} diff --git a/pkgs/development/libraries/libofa/default.nix b/pkgs/development/libraries/libofa/default.nix index 2e2640e8636..6ffef2140ec 100644 --- a/pkgs/development/libraries/libofa/default.nix +++ b/pkgs/development/libraries/libofa/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://code.google.com/musicip-libofa/; - description = "LibOFA - Library Open Fingerprint Architecture"; + description = "Library Open Fingerprint Architecture"; longDescription = '' LibOFA (Library Open Fingerprint Architecture) is an open-source audio fingerprint created and provided by MusicIP''; diff --git a/pkgs/development/libraries/libsigsegv/default.nix b/pkgs/development/libraries/libsigsegv/default.nix index ae6299286a1..b6be8d194c1 100644 --- a/pkgs/development/libraries/libsigsegv/default.nix +++ b/pkgs/development/libraries/libsigsegv/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.gnu.org/software/libsigsegv/; - description = "GNU libsigsegv, a library to handle page faults in user mode"; + description = "Library to handle page faults in user mode"; longDescription = '' GNU libsigsegv is a library for handling page faults in user mode. A diff --git a/pkgs/development/libraries/libspectre/default.nix b/pkgs/development/libraries/libspectre/default.nix index 7d46f9e32ce..0e5f976c122 100644 --- a/pkgs/development/libraries/libspectre/default.nix +++ b/pkgs/development/libraries/libspectre/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://libspectre.freedesktop.org/; - description = "libspectre, a PostScript rendering library"; + description = "PostScript rendering library"; longDescription = '' libspectre is a small library for rendering Postscript diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix index bae22ef220f..5a2508a4506 100644 --- a/pkgs/development/libraries/libtasn1/default.nix +++ b/pkgs/development/libraries/libtasn1/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.gnu.org/software/libtasn1/; - description = "GNU Libtasn1, an ASN.1 library"; + description = "An ASN.1 library"; longDescription = '' Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and some diff --git a/pkgs/development/libraries/libtoxcore/default.nix b/pkgs/development/libraries/libtoxcore/default.nix index 6741838d33b..b5665fe402e 100644 --- a/pkgs/development/libraries/libtoxcore/default.nix +++ b/pkgs/development/libraries/libtoxcore/default.nix @@ -2,8 +2,8 @@ , libvpx, check, libconfig, pkgconfig }: let - version = "e1158be5a6"; - date = "20140728"; + version = "f83fcbb13c0"; + date = "20140811"; in stdenv.mkDerivation rec { name = "tox-core-${date}-${version}"; @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://github.com/irungentoo/toxcore/tarball/${version}"; name = "${name}.tar.gz"; - sha256 = "1rsh1pbwvngsx5slmd6608b1zqs3jvq70bjr9zyziap9vxka3z1v"; + sha256 = "09g74h3qnx9adyxxvzay8m2idbgbln7m4kkm7sg9925mvi5abb1w"; }; NIX_LDFLAGS = "-lgcc_s"; diff --git a/pkgs/development/libraries/libunistring/default.nix b/pkgs/development/libraries/libunistring/default.nix index b578d895c5f..2a87d7a3249 100644 --- a/pkgs/development/libraries/libunistring/default.nix +++ b/pkgs/development/libraries/libunistring/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation (rec { meta = { homepage = http://www.gnu.org/software/libunistring/; - description = "GNU Libunistring, a Unicode string library"; + description = "Unicode string library"; longDescription = '' This library provides functions for manipulating Unicode strings diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix index e2ff06fcd43..a4c8c167b39 100644 --- a/pkgs/development/libraries/libvirt/default.nix +++ b/pkgs/development/libraries/libvirt/default.nix @@ -39,6 +39,7 @@ stdenv.mkDerivation rec { ]; postInstall = '' + sed -i 's/ON_SHUTDOWN=suspend/ON_SHUTDOWN=''${ON_SHUTDOWN:-suspend}/' $out/libexec/libvirt-guests.sh substituteInPlace $out/libexec/libvirt-guests.sh \ --replace "$out/bin" "${gettext}/bin" wrapProgram $out/sbin/libvirtd \ diff --git a/pkgs/development/libraries/libxmi/default.nix b/pkgs/development/libraries/libxmi/default.nix index 85f0dbddb0b..42c427605c4 100644 --- a/pkgs/development/libraries/libxmi/default.nix +++ b/pkgs/development/libraries/libxmi/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation { preConfigure = "cp ${libtool}/share/libtool/config/config.sub ."; meta = { - description = "GNU libxmi, a library for rasterizing 2-D vector graphics"; + description = "Library for rasterizing 2-D vector graphics"; homepage = http://www.gnu.org/software/libxmi/; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.gnu; # arbitrary choice diff --git a/pkgs/development/libraries/lightning/default.nix b/pkgs/development/libraries/lightning/default.nix index 951627c81c2..036d9c61d07 100644 --- a/pkgs/development/libraries/lightning/default.nix +++ b/pkgs/development/libraries/lightning/default.nix @@ -1,11 +1,11 @@ { fetchurl, stdenv, binutils }: stdenv.mkDerivation rec { - name = "lightning-2.0.4"; + name = "lightning-2.0.5"; src = fetchurl { - url = "ftp://ftp.gnu.org/gnu/lightning/${name}.tar.gz"; - sha256 = "1lrckrx51d5hrv66bc99fd4b7g2wwn4vr304hwq3glfzhb8jqcdy"; + url = "mirror://gnu/lightning/${name}.tar.gz"; + sha256 = "0jm9a8ddxc1v9hyzyv4ybg37fjac2yjqv1hkd262wxzqms36mdk5"; }; # Needs libopcodes.so from binutils for 'make check' @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.gnu.org/software/lightning/; - description = "GNU lightning, a run-time code generation library"; + description = "Run-time code generation library"; longDescription = '' GNU lightning is a library that generates assembly language code diff --git a/pkgs/development/libraries/liquidfun/default.nix b/pkgs/development/libraries/liquidfun/default.nix new file mode 100644 index 00000000000..994c013c631 --- /dev/null +++ b/pkgs/development/libraries/liquidfun/default.nix @@ -0,0 +1,48 @@ +{ stdenv, requireFile, cmake, mesa, libX11, libXi }: + +let + sourceInfo = rec { + version="1.1.0"; + name="liquidfun-${version}"; + url="https://github.com/google/liquidfun/releases/download/v${version}/${name}"; + hash="5011a000eacd6202a47317c489e44aa753a833fb562d970e7b8c0da9de01df86"; + }; +in +stdenv.mkDerivation rec { + src = requireFile { + url = sourceInfo.url; + sha256 = sourceInfo.hash; + name = sourceInfo.name + ".tar.gz"; + }; + + inherit (sourceInfo) name version; + buildInputs = [ cmake mesa libX11 libXi ]; + + sourceRoot = "liquidfun/Box2D/"; + + preConfigurePhases = "preConfigure"; + + preConfigure = '' + sed -i Box2D/Common/b2Settings.h -e 's@b2_maxPolygonVertices .*@b2_maxPolygonVertices 15@' + substituteInPlace Box2D/CMakeLists.txt --replace "Common/b2GrowableStack.h" "Common/b2GrowableStack.h Common/b2GrowableBuffer.h" + ''; + + configurePhase = '' + mkdir Build + cd Build; + cmake -DBOX2D_INSTALL=ON -DBOX2D_BUILD_SHARED=ON -DCMAKE_INSTALL_PREFIX=$out .. + ''; + + meta = { + description = "2D physics engine based on Box2D"; + maintainers = with stdenv.lib.maintainers; + [ + qknight + ]; + platforms = with stdenv.lib.platforms; + linux; + license = stdenv.lib.licenses.bsd2; + homepage = https://google.github.io/liquidfun/; + }; +} + diff --git a/pkgs/development/libraries/lirc/default.nix b/pkgs/development/libraries/lirc/default.nix index 75f175a5b2d..88565d5d51b 100644 --- a/pkgs/development/libraries/lirc/default.nix +++ b/pkgs/development/libraries/lirc/default.nix @@ -1,18 +1,30 @@ -{ stdenv, fetchurl, alsaLib }: +{ stdenv, fetchurl, alsaLib, bash, help2man }: stdenv.mkDerivation rec { - name = "lirc-0.9.0"; + name = "lirc-0.9.1"; src = fetchurl { url = "mirror://sourceforge/lirc/${name}.tar.bz2"; - sha256 = "1zx4mcnjwzz6jsi6ln7a3dkgx05nvg1pxxvmjqvd966ldapay8v3"; + sha256 = "0vakq9x10hyj9k7iv35sm5f4dhxvk0miwxvv6kn0bhwkr2mnapj6"; }; - buildInputs = [ alsaLib ]; + preBuild = "patchShebangs ."; + + buildInputs = [ alsaLib help2man ]; configureFlags = [ "--with-driver=devinput" "--sysconfdir=$(out)/etc" "--enable-sandboxed" ]; + + makeFlags = [ "m4dir=$(out)/m4" ]; + + meta = with stdenv.lib; { + description = "Allows to receive and send infrared signals"; + homepage = http://www.lirc.org/; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ pSub ]; + }; } diff --git a/pkgs/development/libraries/lzo/default.nix b/pkgs/development/libraries/lzo/default.nix index 7fa6194cbca..f4bff72fa80 100644 --- a/pkgs/development/libraries/lzo/default.nix +++ b/pkgs/development/libraries/lzo/default.nix @@ -1,11 +1,11 @@ {stdenv, fetchurl}: stdenv.mkDerivation rec { - name = "lzo-2.06"; + name = "lzo-2.08"; src = fetchurl { url = "${meta.homepage}/download/${name}.tar.gz"; - sha256 = "0wryshs446s7cclrbjykyj766znhcpnr7s3cxy33ybfn6vwfcygz"; + sha256 = "0536ad3ksk1r8h2a27d0y4p27lwjarzyndw7sagvxzj6xr6kw6xc"; }; configureFlags = [ "--enable-shared" ]; diff --git a/pkgs/development/libraries/ming/default.nix b/pkgs/development/libraries/ming/default.nix index f9632dca9d2..a470f771561 100644 --- a/pkgs/development/libraries/ming/default.nix +++ b/pkgs/development/libraries/ming/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "Ming, a library for generating Flash `.swf' files"; + description = "Library for generating Flash `.swf' files"; longDescription = '' Ming is a library for generating Macromedia Flash files (.swf), diff --git a/pkgs/development/libraries/movit/default.nix b/pkgs/development/libraries/movit/default.nix index bfd474c88e7..88f18003977 100644 --- a/pkgs/development/libraries/movit/default.nix +++ b/pkgs/development/libraries/movit/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "movit-${version}"; - version = "1.1.1"; + version = "1.1.2"; src = fetchurl { url = "http://movit.sesse.net/${name}.tar.gz"; - sha256 = "1k3qbkxapcplpsx22xh4m4ccp9fhsjfcj3pjzbcnrc51103aklag"; + sha256 = "0jka9l3cx7q09rpz5x6rv6ii8kbgm2vc419gx2rb9rc8sl81hzj1"; }; GTEST_DIR = "${gtest}"; diff --git a/pkgs/development/libraries/mpc/default.nix b/pkgs/development/libraries/mpc/default.nix index 652227d47e8..3d05fa2e040 100644 --- a/pkgs/development/libraries/mpc/default.nix +++ b/pkgs/development/libraries/mpc/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU MPC, a library for multiprecision complex arithmetic with exact rounding"; + description = "Library for multiprecision complex arithmetic with exact rounding"; longDescription = '' GNU MPC is a C library for the arithmetic of complex numbers with diff --git a/pkgs/development/libraries/mpfr/default.nix b/pkgs/development/libraries/mpfr/default.nix index e3fbaececb9..653481aeccd 100644 --- a/pkgs/development/libraries/mpfr/default.nix +++ b/pkgs/development/libraries/mpfr/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.mpfr.org/; - description = "GNU MPFR, a library for multiple-precision floating-point arithmetic"; + description = "Library for multiple-precision floating-point arithmetic"; longDescription = '' The GNU MPFR library is a C library for multiple-precision diff --git a/pkgs/development/libraries/mpich2/default.nix b/pkgs/development/libraries/mpich2/default.nix index 5fba9c56418..b80d549931c 100644 --- a/pkgs/development/libraries/mpich2/default.nix +++ b/pkgs/development/libraries/mpich2/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation { ''; meta = { - description = "MPICH2, an implementation of the Message Passing Interface (MPI) standard"; + description = "Implementation of the Message Passing Interface (MPI) standard"; longDescription = '' MPICH2 is a free high-performance and portable implementation of diff --git a/pkgs/development/libraries/muparser/default.nix b/pkgs/development/libraries/muparser/default.nix index 9d9a524e86d..b68f04f642f 100644 --- a/pkgs/development/libraries/muparser/default.nix +++ b/pkgs/development/libraries/muparser/default.nix @@ -1,11 +1,14 @@ {stdenv, fetchurl, unzip}: -stdenv.mkDerivation { - name = "muparser-2.2.2"; - src = fetchurl { - url = mirror://sourceforge/muparser/muparser_v2_2_2.zip; - sha256 = "0pncvjzzbwcadgpwnq5r7sl9v5r2y9gjgfnlw0mrs9wj206dbhx9"; - }; +stdenv.mkDerivation rec { + name = "muparser-${version}"; + version = "2.2.3"; + url-version = stdenv.lib.replaceChars ["."] ["_"] version; + + src = fetchurl { + url = "mirror://sourceforge/muparser/muparser_v${url-version}.zip"; + sha256 = "00l92k231yb49wijzkspa2l58mapn6vh2dlxnlg0pawjjfv33s6z"; + }; buildInputs = [ unzip ]; diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix index 87953c1158d..631199bf87c 100644 --- a/pkgs/development/libraries/ncurses/default.nix +++ b/pkgs/development/libraries/ncurses/default.nix @@ -70,7 +70,7 @@ stdenv.mkDerivation rec { postFixup = lib.optionalString stdenv.isDarwin "rm $out/lib/*.so"; meta = { - description = "GNU Ncurses, a free software emulation of curses in SVR4 and more"; + description = "Free software emulation of curses in SVR4 and more"; longDescription = '' The Ncurses (new curses) library is a free software emulation of diff --git a/pkgs/development/libraries/nettle/default.nix b/pkgs/development/libraries/nettle/default.nix index 57d3732fa6d..38d197c69ab 100644 --- a/pkgs/development/libraries/nettle/default.nix +++ b/pkgs/development/libraries/nettle/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation (rec { ./cygwin.patch; meta = { - description = "GNU Nettle, a cryptographic library"; + description = "Cryptographic library"; longDescription = '' Nettle is a cryptographic library that is designed to fit diff --git a/pkgs/development/libraries/nix-plugins/default.nix b/pkgs/development/libraries/nix-plugins/default.nix index 3b4f7da94f3..2c208ce86bb 100644 --- a/pkgs/development/libraries/nix-plugins/default.nix +++ b/pkgs/development/libraries/nix-plugins/default.nix @@ -21,5 +21,6 @@ stdenv.mkDerivation { license = stdenv.lib.licenses.mit; maintaners = [ stdenv.lib.maintainers.shlevy ]; platforms = stdenv.lib.platforms.all; + broken = true; }; } diff --git a/pkgs/development/libraries/oniguruma/default.nix b/pkgs/development/libraries/oniguruma/default.nix index 47a51b68d03..08069533713 100644 --- a/pkgs/development/libraries/oniguruma/default.nix +++ b/pkgs/development/libraries/oniguruma/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.geocities.jp/kosako3/oniguruma/; - description = "Oniguruma regular expressions library"; + description = "Regular expressions library"; license = "BSD"; }; } diff --git a/pkgs/development/libraries/opal/default.nix b/pkgs/development/libraries/opal/default.nix index 1f59c0c24a0..c79c3cbe4d6 100644 --- a/pkgs/development/libraries/opal/default.nix +++ b/pkgs/development/libraries/opal/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { patches = [ ./disable-samples-ftbfs.diff ./libav9.patch ./libav10.patch ]; meta = with stdenv.lib; { - description = "OPAL VoIP library"; + description = "VoIP library"; maintainers = [ maintainers.raskin ]; platforms = platforms.linux; }; diff --git a/pkgs/development/libraries/openal/default.nix b/pkgs/development/libraries/openal/default.nix index b5e390eafa8..5a935691ca5 100644 --- a/pkgs/development/libraries/openal/default.nix +++ b/pkgs/development/libraries/openal/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { buildInputs = [ cmake ] ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib; meta = { - description = "OpenAL, a cross-platform 3D audio API"; + description = "Cross-platform 3D audio API"; longDescription = '' OpenAL is a cross-platform 3D audio API appropriate for use with diff --git a/pkgs/development/libraries/opencascade/oce.nix b/pkgs/development/libraries/opencascade/oce.nix index 0da8d2a7404..480664a0d4d 100644 --- a/pkgs/development/libraries/opencascade/oce.nix +++ b/pkgs/development/libraries/opencascade/oce.nix @@ -2,10 +2,10 @@ ftgl, freetype}: stdenv.mkDerivation rec { - name = "opencascade-oce-0.14.1"; + name = "opencascade-oce-0.16"; src = fetchurl { - url = https://github.com/tpaviot/oce/archive/OCE-0.14.1.tar.gz; - sha256 = "0pfc94nmzipm6zmxywxbly1cpfr6wadxasqqkkbdvzg937mrwl5d"; + url = https://github.com/tpaviot/oce/archive/OCE-0.16.tar.gz; + sha256 = "05bmg1cjz827bpq8s0hp96byirm4c3zc9vx26qz76kjsg8ry87w4"; }; buildInputs = [ mesa tcl tk file libXmu libtool qt4 ftgl freetype cmake ]; diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix index c9da441705c..01a4e2e21da 100644 --- a/pkgs/development/libraries/openldap/default.nix +++ b/pkgs/development/libraries/openldap/default.nix @@ -12,14 +12,16 @@ stdenv.mkDerivation rec { configureFlags = [ "--enable-overlays" + "--disable-dependency-tracking" # speeds up one-time build ] ++ stdenv.lib.optional (openssl == null) "--without-tls" ++ stdenv.lib.optional (cyrus_sasl == null) "--without-cyrus-sasl"; dontPatchELF = 1; # !!! - meta = { - homepage = "http://www.openldap.org/"; + meta = with stdenv.lib; { + homepage = http://www.openldap.org/; description = "An open source implementation of the Lightweight Directory Access Protocol"; - maintainers = stdenv.lib.maintainers.mornfall; + maintainers = with maintainers; [ lovek323 mornfall ]; + platforms = platforms.unix; }; } diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix index 678a439fe0a..15160d3afc4 100644 --- a/pkgs/development/libraries/openmpi/default.nix +++ b/pkgs/development/libraries/openmpi/default.nix @@ -1,4 +1,13 @@ -{stdenv, fetchurl, gfortran}: +{stdenv, fetchurl, gfortran + +# Enable the Sun Grid Engine bindings +, enableSGE ? false + +# Pass PATH/LD_LIBRARY_PATH to point to current mpirun by default +, enablePrefix ? false +}: + +with stdenv.lib; stdenv.mkDerivation { name = "openmpi-1.6.5"; @@ -7,6 +16,10 @@ stdenv.mkDerivation { sha256 = "11gws4d3z7934zna2r7m1f80iay2ha17kp42mkh39wjykfwbldzy"; }; buildInputs = [ gfortran ]; + configureFlags = [] + ++ optional enableSGE "--with-sge" + ++ optional enablePrefix "--enable-mpirun-prefix-by-default" + ; meta = { homePage = http://www.open-mpi.org/; description = "Open source MPI-2 implementation"; diff --git a/pkgs/development/libraries/osip/default.nix b/pkgs/development/libraries/osip/default.nix index cfa838f5a37..4db1cb5b524 100644 --- a/pkgs/development/libraries/osip/default.nix +++ b/pkgs/development/libraries/osip/default.nix @@ -1,9 +1,9 @@ {stdenv, fetchurl}: stdenv.mkDerivation rec { - version = "4.0.0"; + version = "4.1.0"; src = fetchurl { url = "mirror://gnu/osip/libosip2-${version}.tar.gz"; - sha256 = "05dhj4s5k4qmhn2amca070xgh1gkcl42n040fhwsn3vm86524bdv"; + sha256 = "014503kqv7z63az6lgxr5fbajlrqylm5c4kgbf8p3a0n6cva0slr"; }; name = "libosip2-${version}"; @@ -13,5 +13,6 @@ stdenv.mkDerivation rec { description = "The GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)"; maintainers = with stdenv.lib.maintainers; [ raskin ]; platforms = stdenv.lib.platforms.linux; + inherit version; }; } diff --git a/pkgs/development/libraries/osip/default.upstream b/pkgs/development/libraries/osip/default.upstream new file mode 100644 index 00000000000..ba0ed2a9b29 --- /dev/null +++ b/pkgs/development/libraries/osip/default.upstream @@ -0,0 +1,3 @@ +url http://ftp.u-tx.net/gnu/osip/ +attribute_name libosip +minimize_overwrite diff --git a/pkgs/development/libraries/pdf2htmlex/default.nix b/pkgs/development/libraries/pdf2htmlex/default.nix deleted file mode 100644 index 597385aa9fa..00000000000 --- a/pkgs/development/libraries/pdf2htmlex/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{stdenv, fetchurl, cmake, poppler, fontforge, unzip, pkgconfig, python}: - -stdenv.mkDerivation rec { - version = "0.8.1"; - name = "pdf2htmlex-${version}"; - - src = fetchurl { - url = "https://github.com/coolwanglu/pdf2htmlEX/archive/v${version}.zip"; - sha256 = "0v8x03vq46ng9s27ryn76lcsjgpxgak6062jnx59lnyz856wvp8a"; - }; - - buildInputs = [ - cmake - unzip - poppler - fontforge - pkgconfig - python - ]; - - meta = with stdenv.lib; { - description = "Convert PDF to HTML without losing text or format. "; - license = licenses.gpl3; - maintainers = [ maintainers.iElectric ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/development/libraries/plib/default.nix b/pkgs/development/libraries/plib/default.nix index 35262f797e9..4ab6fb3ad8b 100644 --- a/pkgs/development/libraries/plib/default.nix +++ b/pkgs/development/libraries/plib/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ]; meta = { - description = "PLIB: A Suite of Portable Game Libraries"; + description = "A suite of portable game libraries"; longDescription = '' PLIB includes sound effects, music, a complete 3D engine, font diff --git a/pkgs/development/libraries/ppl/default.nix b/pkgs/development/libraries/ppl/default.nix index f93eee674ff..9edef767481 100644 --- a/pkgs/development/libraries/ppl/default.nix +++ b/pkgs/development/libraries/ppl/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - description = "PPL: The Parma Polyhedra Library"; + description = "The Parma Polyhedra Library"; longDescription = '' The Parma Polyhedra Library (PPL) provides numerical abstractions diff --git a/pkgs/development/libraries/readline/readline6.3.nix b/pkgs/development/libraries/readline/readline6.3.nix index 9f5c9f7b581..17299e5f10d 100644 --- a/pkgs/development/libraries/readline/readline6.3.nix +++ b/pkgs/development/libraries/readline/readline6.3.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation (rec { ]; meta = { - description = "GNU Readline, a library for interactive line editing"; + description = "Library for interactive line editing"; longDescription = '' The GNU Readline library provides a set of functions for use by diff --git a/pkgs/development/libraries/readline/readline6.nix b/pkgs/development/libraries/readline/readline6.nix index 0559113285c..d72d6566bbc 100644 --- a/pkgs/development/libraries/readline/readline6.nix +++ b/pkgs/development/libraries/readline/readline6.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation (rec { import ./readline-6.2-patches.nix patch); meta = { - description = "GNU Readline, a library for interactive line editing"; + description = "Library for interactive line editing"; longDescription = '' The GNU Readline library provides a set of functions for use by diff --git a/pkgs/development/libraries/science/biology/biolib/default.nix b/pkgs/development/libraries/science/biology/biolib/default.nix index 0461e5ebcf5..7418bdb6dfe 100644 --- a/pkgs/development/libraries/science/biology/biolib/default.nix +++ b/pkgs/development/libraries/science/biology/biolib/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://biolib.open-bio.org/"; - description = "BioLib"; + description = "Shared libraries for the major Bio* languages"; license = stdenv.lib.licenses.gpl2; longDescription = '' BioLib brings together a set of opensource libraries written diff --git a/pkgs/development/libraries/science/math/liblapack/3.5.0.nix b/pkgs/development/libraries/science/math/liblapack/3.5.0.nix index b2167449a2f..0b4badf26e7 100644 --- a/pkgs/development/libraries/science/math/liblapack/3.5.0.nix +++ b/pkgs/development/libraries/science/math/liblapack/3.5.0.nix @@ -38,6 +38,7 @@ stdenv.mkDerivation rec { }; meta = { + inherit version; description = "Linear Algebra PACKage"; homepage = "http://www.netlib.org/lapack/"; license = "revised-BSD"; diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix index f1c99397452..9f4f43311a4 100644 --- a/pkgs/development/libraries/science/math/liblapack/default.nix +++ b/pkgs/development/libraries/science/math/liblapack/default.nix @@ -2,11 +2,12 @@ let atlasMaybeShared = atlas.override { inherit shared; }; usedLibExtension = if shared then ".so" else ".a"; + version = "3.4.1"; in -stdenv.mkDerivation { - name = "liblapack-3.4.1"; +stdenv.mkDerivation rec { + name = "liblapack-${version}"; src = fetchurl { - url = "http://www.netlib.org/lapack/lapack-3.4.1.tgz"; + url = "http://www.netlib.org/lapack/lapack-${version}.tgz"; sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f"; }; @@ -37,6 +38,7 @@ stdenv.mkDerivation { }; meta = { + inherit version; description = "Linear Algebra PACKage"; homepage = "http://www.netlib.org/lapack/"; license = "revised-BSD"; diff --git a/pkgs/development/libraries/science/math/openblas/0.2.10.nix b/pkgs/development/libraries/science/math/openblas/0.2.10.nix new file mode 100644 index 00000000000..ec4422ce895 --- /dev/null +++ b/pkgs/development/libraries/science/math/openblas/0.2.10.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, gfortran, perl, liblapack, config }: + +let local = config.openblas.preferLocalBuild or false; + localTarget = config.openblas.target or ""; +in +stdenv.mkDerivation rec { + version = "0.2.10"; + + name = "openblas-${version}"; + src = fetchurl { + url = "https://github.com/xianyi/OpenBLAS/tarball/v${version}"; + sha256 = "06i0q4qnd5q5xljzrgvda0gjsczc6l2pl9hw6dn2qjpw38al73za"; + name = "openblas-${version}.tar.gz"; + }; + + preBuild = "cp ${liblapack.src} lapack-${liblapack.meta.version}.tgz"; + + buildInputs = [gfortran perl]; + + cpu = builtins.head (stdenv.lib.splitString "-" stdenv.system); + + target = if local then localTarget else + if cpu == "i686" then "P2" else + if cpu == "x86_64" then "CORE2" else + # allow autodetect + ""; + + makeFlags = "${if target != "" then "TARGET=" else ""}${target} FC=gfortran CC=cc PREFIX=\"\$(out)\" INTERFACE64=1"; + + meta = with stdenv.lib; { + description = "Basic Linear Algebra Subprograms"; + license = licenses.bsd3; + homepage = "https://github.com/xianyi/OpenBLAS"; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/science/math/openblas/0.2.2.nix b/pkgs/development/libraries/science/math/openblas/0.2.2.nix new file mode 100644 index 00000000000..c476dac955a --- /dev/null +++ b/pkgs/development/libraries/science/math/openblas/0.2.2.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, gfortran, perl, liblapack, config }: + +let local = config.openblas.preferLocalBuild or false; + localTarget = config.openblas.target or ""; +in +stdenv.mkDerivation rec { + version = "0.2.2"; + + name = "openblas-${version}"; + src = fetchurl { + url = "https://github.com/xianyi/OpenBLAS/tarball/v${version}"; + sha256 = "13kdx3knff5ajnmgn419g0dnh83plin07p7akwamr3v7z5qfrzqr"; + name = "openblas-${version}.tar.gz"; + }; + + preBuild = "cp ${liblapack.src} lapack-${liblapack.meta.version}.tgz"; + + buildInputs = [gfortran perl]; + + cpu = builtins.head (stdenv.lib.splitString "-" stdenv.system); + + target = if local then localTarget else + if cpu == "i686" then "P2" else + if cpu == "x86_64" then "CORE2" else + # allow autodetect + ""; + + makeFlags = "${if target != "" then "TARGET=" else ""}${target} FC=gfortran CC=cc PREFIX=\"\$(out)\""; + + meta = with stdenv.lib; { + description = "Basic Linear Algebra Subprograms"; + license = licenses.bsd3; + homepage = "https://github.com/xianyi/OpenBLAS"; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix index 6ea7333f698..6ca1f4ccada 100644 --- a/pkgs/development/libraries/science/math/openblas/default.nix +++ b/pkgs/development/libraries/science/math/openblas/default.nix @@ -1,37 +1,37 @@ -{ stdenv, fetchurl, gfortran, perl }: +{ stdenv, fetchurl, gfortran, perl, liblapack, config }: +let local = config.openblas.preferLocalBuild or false; + localTarget = config.openblas.target or ""; +in stdenv.mkDerivation rec { - version = "0.2.2"; - lapack_version = "3.4.1"; - lapack_src = fetchurl { - url = "http://www.netlib.org/lapack/lapack-${lapack_version}.tgz"; - sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f"; - }; + version = "0.2.11"; name = "openblas-${version}"; src = fetchurl { url = "https://github.com/xianyi/OpenBLAS/tarball/v${version}"; - sha256 = "13kdx3knff5ajnmgn419g0dnh83plin07p7akwamr3v7z5qfrzqr"; + sha256 = "1va4yhzgj2chcj6kaxgfbzirajp1zgvkic61959aka2xq2c5igms"; name = "openblas-${version}.tar.gz"; }; - preBuild = "cp ${lapack_src} lapack-${lapack_version}.tgz"; + preBuild = "cp ${liblapack.src} lapack-${liblapack.meta.version}.tgz"; buildInputs = [gfortran perl]; cpu = builtins.head (stdenv.lib.splitString "-" stdenv.system); - target = if cpu == "i686" then "P2" else + target = if local then localTarget else + if cpu == "i686" then "P2" else if cpu == "x86_64" then "CORE2" else # allow autodetect ""; - makeFlags = "${if target != "" then "TARGET=" else ""}${target} FC=gfortran CC=cc PREFIX=\"\$(out)\""; + makeFlags = "${if target != "" then "TARGET=" else ""}${target} FC=gfortran CC=cc PREFIX=\"\$(out)\" INTERFACE64=1"; - meta = { + meta = with stdenv.lib; { description = "Basic Linear Algebra Subprograms"; - license = stdenv.lib.licenses.bsd3; + license = licenses.bsd3; homepage = "https://github.com/xianyi/OpenBLAS"; platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ ttuegel ]; }; } diff --git a/pkgs/development/libraries/serd/default.nix b/pkgs/development/libraries/serd/default.nix index 2fd5c9ad493..c0935bd33fd 100644 --- a/pkgs/development/libraries/serd/default.nix +++ b/pkgs/development/libraries/serd/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "serd-${version}"; - version = "0.18.2"; + version = "0.20.0"; src = fetchurl { url = "http://download.drobilla.net/${name}.tar.bz2"; - sha256 = "1hgajhm4iar4n2kh71pv6yr0yhipj28kds9y5mbig8izqc188gcf"; + sha256 = "1gxbzqsm212wmn8qkdd3lbl6wbv7fwmaf9qh2nxa4yxjbr7mylb4"; }; buildInputs = [ pcre pkgconfig python ]; diff --git a/pkgs/development/libraries/serf/default.nix b/pkgs/development/libraries/serf/default.nix index 409b5db0104..873f59dba3a 100644 --- a/pkgs/development/libraries/serf/default.nix +++ b/pkgs/development/libraries/serf/default.nix @@ -1,11 +1,12 @@ { stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, krb5, pkgconfig }: stdenv.mkDerivation rec { - name = "serf-1.3.6"; + version = "1.3.7"; + name = "serf-${version}"; src = fetchurl { url = "http://serf.googlecode.com/svn/src_releases/${name}.tar.bz2"; - sha256 = "1wk3cplazs8jznjc9ylpd63rrk9k2y05xa7zqx7psycr0gmpnqya"; + sha256 = "1bphz616dv1svc50kkm8xbgyszhg3ni2dqbij99sfvjycr7bgk7c"; }; buildInputs = [ apr scons openssl aprutil zlib krb5 pkgconfig ]; @@ -30,5 +31,8 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.asl20 ; maintainers = [stdenv.lib.maintainers.raskin]; hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + inherit version; + downloadPage = "http://serf.googlecode.com/svn/src_releases/"; + updateWalker = true; }; } diff --git a/pkgs/development/libraries/sodium/default.nix b/pkgs/development/libraries/sodium/default.nix index be52725f2c8..266675614ce 100644 --- a/pkgs/development/libraries/sodium/default.nix +++ b/pkgs/development/libraries/sodium/default.nix @@ -3,11 +3,11 @@ let s = # Generated upstream information rec { baseName="sodium"; - version="0.6.1"; + version="0.7.0"; name="${baseName}-${version}"; - hash="151nril3kzkpmy6khvqphk4zk15ri0dqv0isyyhz6n9nsbmzxk04"; - url="http://download.dnscrypt.org/libsodium/releases/libsodium-0.6.1.tar.gz"; - sha256="151nril3kzkpmy6khvqphk4zk15ri0dqv0isyyhz6n9nsbmzxk04"; + hash="0s4iis5h7yh27kamwic3rddyp5ra941bcqcawa37grjvl78zzjjc"; + url="http://download.dnscrypt.org/libsodium/releases/libsodium-0.7.0.tar.gz"; + sha256="0s4iis5h7yh27kamwic3rddyp5ra941bcqcawa37grjvl78zzjjc"; }; buildInputs = [ ]; diff --git a/pkgs/development/libraries/sord/default.nix b/pkgs/development/libraries/sord/default.nix index 8f122cb699a..96a19bf37cc 100644 --- a/pkgs/development/libraries/sord/default.nix +++ b/pkgs/development/libraries/sord/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "sord-${version}"; - version = "0.12.0"; + version = "0.12.2"; src = fetchurl { url = "http://download.drobilla.net/${name}.tar.bz2"; - sha256 = "1f0wz7ynnk72hyr4jfi0lgvj90ld2va1kig8fkw30s8b903alsqj"; + sha256 = "0rq7vafdv4vsxi6xk9zf5shr59w3kppdhqbj78185rz5gp9kh1dx"; }; buildInputs = [ pkgconfig python serd ]; diff --git a/pkgs/development/libraries/spandsp/default.nix b/pkgs/development/libraries/spandsp/default.nix index f88ab48e027..24dc443ca70 100644 --- a/pkgs/development/libraries/spandsp/default.nix +++ b/pkgs/development/libraries/spandsp/default.nix @@ -1,10 +1,10 @@ {stdenv, fetchurl, audiofile, libtiff}: stdenv.mkDerivation rec { - version = "0.0.5"; + version = "0.0.6"; name = "spandsp-${version}"; src=fetchurl { - url = "http://www.soft-switch.org/downloads/spandsp/spandsp-${version}.tgz"; - sha256 = "07f42a237c77b08fa765c3a148c83cdfa267bf24c0ab681d80b90d30dd0b3dbf"; + url = "http://www.soft-switch.org/downloads/spandsp/spandsp-${version}.tar.gz"; + sha256 = "0rclrkyspzk575v8fslzjpgp4y2s4x7xk3r55ycvpi4agv33l1fc"; }; buildInputs = []; propagatedBuildInputs = [audiofile libtiff]; @@ -13,6 +13,9 @@ stdenv.mkDerivation rec { platforms = with stdenv.lib.platforms; linux; maintainers = with stdenv.lib.maintainers; [raskin]; license = with stdenv.lib.licenses; gpl2; + downloadPage = "http://www.soft-switch.org/downloads/spandsp/"; + inherit version; + updateWalker = true; }; } diff --git a/pkgs/development/libraries/spice-protocol/default.nix b/pkgs/development/libraries/spice-protocol/default.nix index 162a832c93a..79fe47ff476 100644 --- a/pkgs/development/libraries/spice-protocol/default.nix +++ b/pkgs/development/libraries/spice-protocol/default.nix @@ -1,19 +1,18 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - name = "spice-protocol-0.12.6"; + name = "spice-protocol-0.12.7"; src = fetchurl { url = "http://www.spice-space.org/download/releases/${name}.tar.bz2"; - sha256 = "16r5x2sppiaa6pzawkrvk5q4hmw7ynmlp2xr38f1vaxj5rh4aiwx"; + sha256 = "1hhn94bw2l76h09sy05a15bs6zalsijnylyqpwcys5hq6rrwpiln"; }; - meta = { + meta = with stdenv.lib; { description = "Protocol headers for the SPICE protocol"; homepage = http://www.spice-space.org; - license = stdenv.lib.licenses.bsd3; - - maintainers = [ stdenv.lib.maintainers.bluescreen303 ]; - platforms = stdenv.lib.platforms.linux; + license = licenses.bsd3; + maintainers = with maintainers; [ bluescreen303 ]; + platforms = platforms.linux; }; } diff --git a/pkgs/development/libraries/spice/default.nix b/pkgs/development/libraries/spice/default.nix index 2af9565e0b4..2353eec7348 100644 --- a/pkgs/development/libraries/spice/default.nix +++ b/pkgs/development/libraries/spice/default.nix @@ -5,11 +5,11 @@ with stdenv.lib; stdenv.mkDerivation rec { - name = "spice-0.12.4"; + name = "spice-0.12.5"; src = fetchurl { url = "http://www.spice-space.org/download/releases/${name}.tar.bz2"; - sha256 = "11xkdz26b39syynxm3iyjsr8q7x0v09zdli9an1ilcrfyiykw1ng"; + sha256 = "10gmqaanfg929aamf11n4si4r3d1g7z9qjdclsl9kjv7iw6s42a2"; }; buildInputs = [ pixman celt alsaLib openssl libjpeg zlib diff --git a/pkgs/development/libraries/szip/default.nix b/pkgs/development/libraries/szip/default.nix index 17f9c973fd0..2ad2ed55d7c 100644 --- a/pkgs/development/libraries/szip/default.nix +++ b/pkgs/development/libraries/szip/default.nix @@ -8,9 +8,7 @@ stdenv.mkDerivation { }; meta = { - description = " - Szip is a compression library that can be used with the hdf5 library. - "; + description = "Compression library that can be used with the hdf5 library"; homepage = http://www.hdfgroup.org/doc_resource/SZIP/; license = stdenv.lib.licenses.unfree; }; diff --git a/pkgs/development/libraries/talloc/default.nix b/pkgs/development/libraries/talloc/default.nix index e04363326d0..15e89d9210a 100644 --- a/pkgs/development/libraries/talloc/default.nix +++ b/pkgs/development/libraries/talloc/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { '' else ""; meta = { - description = "talloc is a hierarchical pool based memory allocator with destructors"; + description = "Hierarchical pool based memory allocator with destructors"; homepage = http://tdb.samba.org/; license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/libraries/tdb/default.nix b/pkgs/development/libraries/tdb/default.nix index d0eb8987ea0..c5331656435 100644 --- a/pkgs/development/libraries/tdb/default.nix +++ b/pkgs/development/libraries/tdb/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { buildInputs = [ libxslt libxml2 docbook_xsl ]; meta = { - description = "TDB, the trivial database"; + description = "The trivial database"; longDescription = '' TDB is a Trivial Database. In concept, it is very much like GDBM, and BSD's DB except that it allows multiple simultaneous writers and diff --git a/pkgs/development/libraries/tecla/default.nix b/pkgs/development/libraries/tecla/default.nix index 6cb20f4e356..f83b34e40d1 100644 --- a/pkgs/development/libraries/tecla/default.nix +++ b/pkgs/development/libraries/tecla/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://www.astro.caltech.edu/~mcs/tecla/"; - description = "Tecla command-line editing library"; + description = "Command-line editing library"; license = "as-is"; hydraPlatforms = stdenv.lib.platforms.linux; diff --git a/pkgs/development/libraries/ucommon/default.nix b/pkgs/development/libraries/ucommon/default.nix index f3ac325b5a1..0e8a95d5ac1 100644 --- a/pkgs/development/libraries/ucommon/default.nix +++ b/pkgs/development/libraries/ucommon/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU uCommon C++, C++ library to facilitate using C++ design patterns"; + description = "C++ library to facilitate using C++ design patterns"; homepage = http://www.gnu.org/software/commoncpp/; license = stdenv.lib.licenses.lgpl3Plus; diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix index d3a2511c90c..4c86de7fb56 100644 --- a/pkgs/development/libraries/v8/default.nix +++ b/pkgs/development/libraries/v8/default.nix @@ -59,7 +59,7 @@ stdenv.mkDerivation rec { '' else null; meta = with stdenv.lib; { - description = "V8 is Google's open source JavaScript engine"; + description = "Google's open source JavaScript engine"; platforms = platforms.linux ++ platforms.darwin; license = licenses.bsd3; }; diff --git a/pkgs/development/libraries/xapian/default.nix b/pkgs/development/libraries/xapian/default.nix index 99837974b1d..d74a85a9162 100644 --- a/pkgs/development/libraries/xapian/default.nix +++ b/pkgs/development/libraries/xapian/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation { buildInputs = [ libuuid zlib ]; meta = { - description = "Xapian Probabilistic Information Retrieval library"; + description = "Search engine library"; homepage = "http://xapian.org"; license = stdenv.lib.licenses.gpl2Plus; maintainers = [ stdenv.lib.maintainers.chaoflow ]; diff --git a/pkgs/development/libraries/xbase/default.nix b/pkgs/development/libraries/xbase/default.nix index 81447276db7..95ba2a05ad9 100644 --- a/pkgs/development/libraries/xbase/default.nix +++ b/pkgs/development/libraries/xbase/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { homepage = http://linux.techass.com/projects/xdb/; - description = "XBase compatible C++ class library formerly known as XDB"; + description = "C++ class library formerly known as XDB"; platforms = stdenv.lib.platforms.all; maintainers = [ stdenv.lib.maintainers.urkud ]; }; diff --git a/pkgs/development/libraries/xylib/default.nix b/pkgs/development/libraries/xylib/default.nix index 8fff5f39338..fe9b6c5c3ca 100644 --- a/pkgs/development/libraries/xylib/default.nix +++ b/pkgs/development/libraries/xylib/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation { buildInputs = [boost zlib bzip2 ]; meta = { - description = "xylib is a portable library for reading files that contain x-y data from powder diffraction, spectroscopy and other experimental methods."; + description = "Portable library for reading files that contain x-y data from powder diffraction, spectroscopy and other experimental methods"; license = "LGPL"; homepage = http://xylib.sourceforge.net/; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/development/libraries/zeitgeist/default.nix b/pkgs/development/libraries/zeitgeist/default.nix index 3ef43baca5e..d0de624890b 100644 --- a/pkgs/development/libraries/zeitgeist/default.nix +++ b/pkgs/development/libraries/zeitgeist/default.nix @@ -3,10 +3,11 @@ , gtk3, json_glib, librdf_raptor2, pythonPackages, dbus_glib }: stdenv.mkDerivation rec { - name = "zeitgeist-0.0.14"; + version = "0.9.15"; + name = "zeitgeist-${version}"; src = fetchurl { - url = "https://github.com/seiflotfy/zeitgeist/archive/v0.9.15.tar.gz"; + url = "https://github.com/seiflotfy/zeitgeist/archive/v${version}.tar.gz"; sha256 = "07pnc7kmjpd0ncm32z6s3ny5p4zl52v9lld0n0f8sp6cw87k12p0"; }; diff --git a/pkgs/development/lisp-modules/asdf/default.nix b/pkgs/development/lisp-modules/asdf/default.nix index 97e1661544b..100577b3a7f 100644 --- a/pkgs/development/lisp-modules/asdf/default.nix +++ b/pkgs/development/lisp-modules/asdf/default.nix @@ -3,11 +3,11 @@ let s = # Generated upstream information rec { baseName="asdf"; - version="3.1.2"; + version="3.1.3"; name="${baseName}-${version}"; - hash="0d427908q4hcspmdhc5ps38dbvz113hy6687l9ypmfl79qfb2qki"; - url="http://common-lisp.net/project/asdf/archives/asdf-3.1.2.tar.gz"; - sha256="0d427908q4hcspmdhc5ps38dbvz113hy6687l9ypmfl79qfb2qki"; + hash="11jgbl2ys98i7lir0z76g0msm89zmz1b91gwkdz0gnxr6gavj6cn"; + url="http://common-lisp.net/project/asdf/archives/asdf-3.1.3.tar.gz"; + sha256="11jgbl2ys98i7lir0z76g0msm89zmz1b91gwkdz0gnxr6gavj6cn"; }; buildInputs = [ texinfo texLive @@ -29,7 +29,6 @@ stdenv.mkDerivation { cp -r ./* "$out"/lib/common-lisp/asdf/ cp -r doc/* "$out"/share/doc/asdf/ ''; - sourceRoot="."; meta = { inherit (s) version; description = ''Standard software-system definition library for Common Lisp''; diff --git a/pkgs/development/mobile/androidenv/androidsdk.nix b/pkgs/development/mobile/androidenv/androidsdk.nix index 3c9327f1c59..60f71517323 100644 --- a/pkgs/development/mobile/androidenv/androidsdk.nix +++ b/pkgs/development/mobile/androidenv/androidsdk.nix @@ -1,5 +1,5 @@ { stdenv, stdenv_32bit, fetchurl, unzip, makeWrapper -, platformTools, buildTools, support, platforms, sysimages, addons +, platformTools, buildTools, support, supportRepository, platforms, sysimages, addons , zlib_32bit , libX11_32bit, libxcb_32bit, libXau_32bit, libXdmcp_32bit, libXext_32bit, mesa_32bit, alsaLib_32bit , libX11, libXext, libXrender, libxcb, libXau, libXdmcp, libXtst, mesa, alsaLib @@ -139,6 +139,15 @@ stdenv.mkDerivation rec { cd .. + # Symlink required extras + + mkdir -p extras/android + cd extras/android + + ln -s ${supportRepository}/m2repository + + cd ../.. + # Symlink required platforms mkdir -p platforms diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix index bc022bd70b4..796f0f862bd 100644 --- a/pkgs/development/mobile/androidenv/default.nix +++ b/pkgs/development/mobile/androidenv/default.nix @@ -16,6 +16,10 @@ rec { inherit (pkgs) stdenv fetchurl unzip; }; + supportRepository = import ./support-repository.nix { + inherit (pkgs) stdenv fetchurl unzip; + }; + platforms = if (pkgs.stdenv.system == "i686-linux" || pkgs.stdenv.system == "x86_64-linux") then import ./platforms-linux.nix { inherit (pkgs) stdenv fetchurl unzip; @@ -39,7 +43,7 @@ rec { inherit (pkgs) freetype fontconfig glib gtk atk mesa file alsaLib jdk; inherit (pkgs.xorg) libX11 libXext libXrender libxcb libXau libXdmcp libXtst; - inherit platformTools buildTools support platforms sysimages addons; + inherit platformTools buildTools support supportRepository platforms sysimages addons; stdenv_32bit = pkgs_i686.stdenv; zlib_32bit = pkgs_i686.zlib; @@ -52,13 +56,49 @@ rec { alsaLib_32bit = pkgs_i686.alsaLib; }; + androidsdk_2_1 = androidsdk { + platformVersions = [ "7" ]; + abiVersions = [ "armeabi-v7a" ]; + useGoogleAPIs = true; + }; + androidsdk_2_2 = androidsdk { platformVersions = [ "8" ]; abiVersions = [ "armeabi-v7a" ]; useGoogleAPIs = true; }; + + androidsdk_2_3_3 = androidsdk { + platformVersions = [ "10" ]; + abiVersions = [ "armeabi-v7a" ]; + useGoogleAPIs = true; + }; + + androidsdk_3_0 = androidsdk { + platformVersions = [ "11" ]; + abiVersions = [ "armeabi-v7a" ]; + useGoogleAPIs = true; + }; + + androidsdk_3_1 = androidsdk { + platformVersions = [ "12" ]; + abiVersions = [ "armeabi-v7a" ]; + useGoogleAPIs = true; + }; + + androidsdk_3_2 = androidsdk { + platformVersions = [ "13" ]; + abiVersions = [ "armeabi-v7a" ]; + useGoogleAPIs = true; + }; androidsdk_4_0 = androidsdk { + platformVersions = [ "14" ]; + abiVersions = [ "armeabi-v7a" ]; + useGoogleAPIs = true; + }; + + androidsdk_4_0_3 = androidsdk { platformVersions = [ "15" ]; abiVersions = [ "armeabi-v7a" ]; useGoogleAPIs = true; @@ -82,6 +122,12 @@ rec { useGoogleAPIs = true; }; + androidsdk_4_4 = androidsdk { + platformVersions = [ "19" ]; + abiVersions = [ "armeabi-v7a" "x86" ]; + useGoogleAPIs = true; + }; + androidndk = import ./androidndk.nix { inherit (pkgs) stdenv fetchurl zlib ncurses; }; diff --git a/pkgs/development/mobile/androidenv/support-repository.nix b/pkgs/development/mobile/androidenv/support-repository.nix new file mode 100644 index 00000000000..66a532328b1 --- /dev/null +++ b/pkgs/development/mobile/androidenv/support-repository.nix @@ -0,0 +1,17 @@ +{stdenv, fetchurl, unzip}: + +stdenv.mkDerivation { + name = "android-support-repository-r5"; + src = fetchurl { + url = http://dl-ssl.google.com/android/repository/android_m2repository_r05.zip; + sha1 = "2ee9723da079ba0d4fe2a185e00ded842de96f13"; + }; + + buildCommand = '' + mkdir -p $out + cd $out + unzip $src + ''; + + buildInputs = [ unzip ]; +} diff --git a/pkgs/development/ocaml-modules/cmdliner/default.nix b/pkgs/development/ocaml-modules/cmdliner/default.nix new file mode 100644 index 00000000000..3a00f0c3888 --- /dev/null +++ b/pkgs/development/ocaml-modules/cmdliner/default.nix @@ -0,0 +1,36 @@ +{stdenv, fetchurl, ocaml, findlib, opam}: + +let + pname = "cmdliner"; + version = "0.9.5"; + ocaml_version = (builtins.parseDrvName ocaml.name).version; +in +stdenv.mkDerivation { + + name = "ocaml-${pname}-${version}"; + + src = fetchurl { + url = "http://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz"; + sha256 = "a0e199c4930450e12edf81604eeceddeeb32d55c43438be689e60df282277a7e"; + }; + + unpackCmd = "tar xjf $src"; + buildInputs = [ ocaml findlib opam ]; + + createFindlibDestdir = true; + + configurePhase = "ocaml pkg/git.ml"; + buildPhase = "ocaml pkg/build.ml native=true native-dynlink=true"; + installPhase = '' + opam-installer --script --prefix=$out ${pname}.install > install.sh + sh install.sh + ln -s $out/lib/${pname} $out/lib/ocaml/${ocaml_version}/site-lib/ + ''; + + meta = with stdenv.lib; { + homepage = http://erratique.ch/software/cmdliner; + description = "An OCaml module for the declarative definition of command line interfaces"; + license = licenses.bsd3; + platforms = ocaml.meta.platforms; + }; +} diff --git a/pkgs/development/ocaml-modules/lambda-term/default.nix b/pkgs/development/ocaml-modules/lambda-term/default.nix new file mode 100644 index 00000000000..b6edadb0b14 --- /dev/null +++ b/pkgs/development/ocaml-modules/lambda-term/default.nix @@ -0,0 +1,41 @@ +{stdenv, fetchurl, libev, ocaml, findlib, ocaml_lwt, ocaml_react, zed}: + +stdenv.mkDerivation rec { + version = "1.6"; + name = "lambda-term-${version}"; + + src = fetchurl { + url = https://github.com/diml/lambda-term/archive/1.6.tar.gz; + sha256 = "1rhfixdgpylxznf6sa9wr31wb4pjzpfn5mxhxqpbchmpl2afwa09"; + }; + + buildInputs = [ libev ocaml findlib ocaml_lwt ocaml_react ]; + + propagatedBuildInputs = [ zed ]; + + createFindlibDestdir = true; + + meta = { description = "Terminal manipulation library for OCaml"; + longDescription = '' + Lambda-term is a cross-platform library for + manipulating the terminal. It provides an abstraction for keys, + mouse events, colors, as well as a set of widgets to write + curses-like applications. + + The main objective of lambda-term is to provide a higher level + functional interface to terminal manipulation than, for example, + ncurses, by providing a native OCaml interface instead of bindings to + a C library. + + Lambda-term integrates with zed to provide text edition facilities in + console applications. + ''; + + homepage = https://github.com/diml/lambda-term; + license = stdenv.lib.licenses.bsd3; + platforms = ocaml.meta.platforms; + maintainers = [ + stdenv.lib.maintainers.gal_bolle + ]; + }; +} diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix index 9ef10906365..061dbb398fe 100644 --- a/pkgs/development/ocaml-modules/lwt/default.nix +++ b/pkgs/development/ocaml-modules/lwt/default.nix @@ -1,21 +1,27 @@ -{stdenv, fetchurl, which, cryptopp, ocaml, findlib, ocaml_react, ocaml_ssl}: +{stdenv, fetchgit, which, cryptopp, ocaml, findlib, ocaml_react, ocaml_ssl, libev, pkgconfig, ncurses, ocaml_oasis, ocaml_text, glib}: let - ocaml_version = (builtins.parseDrvName ocaml.name).version; - version = "2.1.1"; + version = "2.4.5"; in stdenv.mkDerivation { + + name = "ocaml-lwt-${version}"; - src = fetchurl { - url = "http://ocsigen.org/download/lwt-${version}.tar.gz"; - sha256 = "1zjn0sgihryshancn4kna1xslhc8gifliny1qd3a85f72xxxnw0w"; + src = fetchgit { + url = git://github.com/ocsigen/lwt; + rev = "refs/tags/${version}"; + sha256 = "2bbf4f216dd62eeb765a89413f3b2b6d417a9c289ca49d595bb4d7a0545e343e"; }; - buildInputs = [which cryptopp ocaml findlib ocaml_react ocaml_ssl]; + buildInputs = [ocaml_oasis pkgconfig which cryptopp ocaml findlib glib libev ncurses]; - configurePhase = "true"; + propagatedBuildInputs = [ ocaml_react ocaml_ssl ocaml_text ]; + + configureFlags = [ "--enable-all" ]; + + createFindlibDestdir = true; meta = { homepage = http://ocsigen.org/lwt; @@ -23,7 +29,7 @@ stdenv.mkDerivation { license = "LGPL"; platforms = ocaml.meta.platforms; maintainers = [ - stdenv.lib.maintainers.z77z + stdenv.lib.maintainers.z77z stdenv.lib.maintainers.gal_bolle ]; }; } diff --git a/pkgs/development/ocaml-modules/ocaml-text/default.nix b/pkgs/development/ocaml-modules/ocaml-text/default.nix new file mode 100644 index 00000000000..08136dd2b10 --- /dev/null +++ b/pkgs/development/ocaml-modules/ocaml-text/default.nix @@ -0,0 +1,26 @@ +{stdenv, fetchurl, libiconv, ocaml, findlib, ncurses}: + +stdenv.mkDerivation { + name = "ocaml-text-0.6"; + + src = fetchurl { + url = https://forge.ocamlcore.org/frs/download.php/937/ocaml-text-0.6.tar.gz; + sha256 = "0j8gaak0ajnlmn8knvfygqwwzs7awjv5rfn5cbj6qxqbxhjd5m6g"; + }; + + buildInputs = [ocaml findlib libiconv ncurses]; + + configurePhase = "iconv_prefix=${libiconv} ocaml setup.ml -configure"; + + createFindlibDestdir = true; + + + meta = { + homepage = "http://ocaml-text.forge.ocamlcore.org/"; + description = "OCaml-Text is a library for dealing with ``text'', i.e. sequence of unicode characters, in a convenient way. "; + license = "BSD"; + platforms = ocaml.meta.platforms; + maintainers = [ + ]; + }; +} diff --git a/pkgs/development/ocaml-modules/react/default.nix b/pkgs/development/ocaml-modules/react/default.nix index 6b0e694d54a..dfc8dcd1439 100644 --- a/pkgs/development/ocaml-modules/react/default.nix +++ b/pkgs/development/ocaml-modules/react/default.nix @@ -1,11 +1,11 @@ {stdenv, fetchurl, ocaml, findlib, opam}: stdenv.mkDerivation { - name = "ocaml-react-1.0.1"; + name = "ocaml-react-1.1.0"; src = fetchurl { - url = "http://erratique.ch/software/react/releases/react-1.0.1.tbz"; - sha256 = "007c9kzl0i6xvxnqj9jny4hgm28v9a1i079q53vl5hfb5f7h1mda"; + url = http://erratique.ch/software/react/releases/react-1.1.0.tbz; + sha256 = "1gymn8hy7ga0l9qymmb1jcnnkqvy7l2zr87xavzqz0dfi9ci8dm7"; }; unpackCmd = "tar xjf $src"; @@ -15,8 +15,13 @@ stdenv.mkDerivation { configurePhase = "ocaml pkg/git.ml"; buildPhase = "ocaml pkg/build.ml native=true native-dynlink=true"; - installPhase = '' + + installPhase = + let ocamlVersion = (builtins.parseDrvName (ocaml.name)).version; + in + '' opam-installer --script --prefix=$out react.install > install.sh + sed -i s!lib/react!lib/ocaml/${ocamlVersion}/site-lib/react! install.sh sh install.sh ''; @@ -25,6 +30,6 @@ stdenv.mkDerivation { description = "Applicative events and signals for OCaml"; license = licenses.bsd3; platforms = ocaml.meta.platforms; - maintainers = with maintainers; [ z77z vbmithr ]; + maintainers = with maintainers; [ z77z vbmithr gal_bolle]; }; } diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix index 9237db080d6..562d25550da 100644 --- a/pkgs/development/ocaml-modules/yojson/default.nix +++ b/pkgs/development/ocaml-modules/yojson/default.nix @@ -4,16 +4,18 @@ let version = "1.1.8"; webpage = "http://mjambon.com/${pname}.html"; in -stdenv.mkDerivation rec { +stdenv.mkDerivation { - name = "${pname}-${version}"; + name = "ocaml-${pname}-${version}"; src = fetchurl { - url = "http://mjambon.com/releases/${pname}/${name}.tar.gz"; + url = "http://mjambon.com/releases/${pname}/${pname}-${version}.tar.gz"; sha256 = "0ayx17dimnpavdfyq6dk9xv2x1fx69by85vc6vl3nqxjkcv5d2rv"; }; - buildInputs = [ ocaml findlib cppo easy-format biniou ]; + buildInputs = [ ocaml findlib ]; + + propagatedBuildInputs = [ cppo easy-format biniou ]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/zed/default.nix b/pkgs/development/ocaml-modules/zed/default.nix new file mode 100644 index 00000000000..3c2fae472be --- /dev/null +++ b/pkgs/development/ocaml-modules/zed/default.nix @@ -0,0 +1,34 @@ +{stdenv, fetchurl, ocaml, findlib, camomile, ocaml_react}: + +stdenv.mkDerivation rec { + version = "1.3"; + name = "ocaml-zed-${version}"; + + src = fetchurl { + url = https://github.com/diml/zed/archive/1.3.tar.gz; + sha256 = "1fr9xzf5msdnl2wx279aqj051nqbhs6v9aq1mfpv3r1mrqvrrfwj"; + }; + + buildInputs = [ ocaml findlib ocaml_react]; + + propagatedBuildInputs = [ camomile ]; + + createFindlibDestdir = true; + + meta = { + description = "Abstract engine for text edition in OCaml"; + longDescription = '' + Zed is an abstract engine for text edition. It can be used to write text editors, edition widgets, readlines, ... + + Zed uses Camomile to fully support the Unicode specification, and implements an UTF-8 encoded string type with validation, and a rope datastructure to achieve efficient operations on large Unicode buffers. Zed also features a regular expression search on ropes. + + To support efficient text edition capabilities, Zed provides macro recording and cursor management facilities. + ''; + homepage = https://github.com/diml/zed; + license = stdenv.lib.licenses.bsd3; + platforms = ocaml.meta.platforms; + maintainers = [ + stdenv.lib.maintainers.gal_bolle + ]; + }; +} diff --git a/pkgs/development/python-modules/btrees_interger_overflow.patch b/pkgs/development/python-modules/btrees_interger_overflow.patch new file mode 100644 index 00000000000..a05c7bd6b3c --- /dev/null +++ b/pkgs/development/python-modules/btrees_interger_overflow.patch @@ -0,0 +1,146 @@ +From be19c1f32e4d430092c029f17984f0087a2b2087 Mon Sep 17 00:00:00 2001 +From: Jim Fulton +Date: Mon, 19 May 2014 19:52:43 -0400 +Subject: [PATCH 1/2] Fixed: integer overflow on 32-bit machines wasn't + detected correctly under Python 3. + +--- + BTrees/intkeymacros.h | 7 ++++--- + BTrees/intvaluemacros.h | 3 ++- + BTrees/tests/testBTrees.py | 11 +++++++++-- + BTrees/tests/test_IIBTree.py | 2 ++ + CHANGES.rst | 2 ++ + 5 files changed, 19 insertions(+), 6 deletions(-) + +diff --git a/BTrees/intkeymacros.h b/BTrees/intkeymacros.h +index d439aa0..f9244b5 100644 +--- a/BTrees/intkeymacros.h ++++ b/BTrees/intkeymacros.h +@@ -19,9 +19,10 @@ + #define KEY_CHECK INT_CHECK + #define COPY_KEY_TO_OBJECT(O, K) O=INT_FROM_LONG(K) + #define COPY_KEY_FROM_ARG(TARGET, ARG, STATUS) \ +- if (INT_CHECK(ARG)) { \ +- long vcopy = INT_AS_LONG(ARG); \ +- if ((int)vcopy != vcopy) { \ ++ if (INT_CHECK(ARG)) { \ ++ long vcopy = INT_AS_LONG(ARG); \ ++ if (PyErr_Occurred()) { (STATUS)=0; (TARGET)=0; } \ ++ else if ((int)vcopy != vcopy) { \ + PyErr_SetString(PyExc_TypeError, "integer out of range"); \ + (STATUS)=0; (TARGET)=0; \ + } \ +diff --git a/BTrees/intvaluemacros.h b/BTrees/intvaluemacros.h +index b77a5c9..3072eea 100644 +--- a/BTrees/intvaluemacros.h ++++ b/BTrees/intvaluemacros.h +@@ -23,7 +23,8 @@ + #define COPY_VALUE_FROM_ARG(TARGET, ARG, STATUS) \ + if (INT_CHECK(ARG)) { \ + long vcopy = INT_AS_LONG(ARG); \ +- if ((int)vcopy != vcopy) { \ ++ if (PyErr_Occurred()) { (STATUS)=0; (TARGET)=0; } \ ++ else if ((int)vcopy != vcopy) { \ + PyErr_SetString(PyExc_TypeError, "integer out of range"); \ + (STATUS)=0; (TARGET)=0; \ + } \ +diff --git a/BTrees/tests/testBTrees.py b/BTrees/tests/testBTrees.py +index 50f5b43..31d641d 100644 +--- a/BTrees/tests/testBTrees.py ++++ b/BTrees/tests/testBTrees.py +@@ -11,8 +11,11 @@ + # FOR A PARTICULAR PURPOSE + # + ############################################################################## ++import sys + import unittest + ++python3 = sys.version_info >= (3, ) ++ + from BTrees.tests.common import permutations + + +@@ -451,8 +454,12 @@ def test32(self): + # the characteristics change to match the 64 bit version, please + # feel free to change. + big = BTrees.family32.maxint + 1 +- self.assertRaises(TypeError, s.insert, big) +- self.assertRaises(TypeError, s.insert, BTrees.family32.minint - 1) ++ if python3: ++ expected_exception = OverflowError ++ else: ++ expected_exception = TypeError ++ self.assertRaises(expected_exception, s.insert, ++ BTrees.family32.minint - 1) + self.check_pickling(BTrees.family32) + + def test64(self): +diff --git a/BTrees/tests/test_IIBTree.py b/BTrees/tests/test_IIBTree.py +index 72e95b2..fe776b8 100644 +--- a/BTrees/tests/test_IIBTree.py ++++ b/BTrees/tests/test_IIBTree.py +@@ -113,6 +113,8 @@ def trial(i): + i = int(i) + try: + b[i] = 0 ++ except OverflowError: ++ self.assertRaises(OverflowError, b.__setitem__, 0, i) + except TypeError: + self.assertRaises(TypeError, b.__setitem__, 0, i) + else: +diff --git a/CHANGES.rst b/CHANGES.rst +index 4696be3..e3869ff 100644 +--- a/CHANGES.rst ++++ b/CHANGES.rst +@@ -1,6 +1,8 @@ + ``BTrees`` Changelog + ==================== + ++- Fixed: integer overflow on 32-bit machines wasn't detected correctly ++ under Python 3. + + 4.0.9 (unreleased) + ------------------ +-- +2.0.4 + + +From 11a51d2a12bb9904e96349ff86e78e24a0ebe51a Mon Sep 17 00:00:00 2001 +From: Jim Fulton +Date: Wed, 21 May 2014 07:33:06 -0400 +Subject: [PATCH 2/2] added back test mistakedly removed. + +We have to check both TypeError and OverflowError. On Python3 32-bit, +we'll get an OverflowError, otherwise, we get type error. +--- + BTrees/tests/testBTrees.py | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/BTrees/tests/testBTrees.py b/BTrees/tests/testBTrees.py +index 31d641d..d9be43a 100644 +--- a/BTrees/tests/testBTrees.py ++++ b/BTrees/tests/testBTrees.py +@@ -453,13 +453,13 @@ def test32(self): + # this next bit illustrates an, um, "interesting feature". If + # the characteristics change to match the 64 bit version, please + # feel free to change. +- big = BTrees.family32.maxint + 1 +- if python3: +- expected_exception = OverflowError +- else: +- expected_exception = TypeError +- self.assertRaises(expected_exception, s.insert, +- BTrees.family32.minint - 1) ++ try: s.insert(BTrees.family32.maxint + 1) ++ except (TypeError, OverflowError): pass ++ else: self.assert_(False) ++ ++ try: s.insert(BTrees.family32.minint - 1) ++ except (TypeError, OverflowError): pass ++ else: self.assert_(False) + self.check_pickling(BTrees.family32) + + def test64(self): +-- +2.0.4 + diff --git a/pkgs/development/python-modules/ecdsa/default.nix b/pkgs/development/python-modules/ecdsa/default.nix index f668f3c6ac3..a07eceb45aa 100644 --- a/pkgs/development/python-modules/ecdsa/default.nix +++ b/pkgs/development/python-modules/ecdsa/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { meta = { homepage = "http://github.com/warner/python-ecdsa"; - description = "pure-python ECDSA signature/verification"; + description = "Pure-python ECDSA signature/verification"; license = stdenv.lib.licenses.mit; }; -} \ No newline at end of file +} diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix index 75fb974e735..4c9c53aab83 100644 --- a/pkgs/development/python-modules/generic/default.nix +++ b/pkgs/development/python-modules/generic/default.nix @@ -34,7 +34,10 @@ # The difference is that `pythonPath' is not propagated to the user # environment. This is preferrable for programs because it doesn't # pollute the user environment. -, pythonPath ? [] +, pythonPath ? [] + +# used to disable derivation, useful for specific python versions +, disabled ? false , meta ? {} @@ -46,8 +49,9 @@ , ... } @ attrs: + # Keep extra attributes from `attrs`, e.g., `patchPhase', etc. -python.stdenv.mkDerivation (attrs // { +if disabled then throw "${name} not supported for interpreter ${python.executable}" else python.stdenv.mkDerivation (attrs // { inherit doCheck; name = namePrefix + name; diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh index 857f002cace..282aeca9ed1 100644 --- a/pkgs/development/python-modules/generic/wrap.sh +++ b/pkgs/development/python-modules/generic/wrap.sh @@ -26,12 +26,6 @@ wrapPythonProgramsIn() { # dont wrap EGG-INFO scripts since they are called from python if echo "$i" | grep -v EGG-INFO/scripts; then echo "wrapping \`$i'..." - sed -i "$i" -re '1 { - /^#!/!b; :r - /\\$/{N;b r} - /__future__|^ *(#.*)?$/{n;b r} - /^ *[^# ]/i import sys; sys.argv[0] = '"'$(basename "$i")'"' - }' wrapProgram "$i" \ --prefix PYTHONPATH ":" $program_PYTHONPATH \ --prefix PATH ":" $program_PATH diff --git a/pkgs/development/python-modules/numeric/default.nix b/pkgs/development/python-modules/numeric/default.nix index e97b2a5f1a4..0d6d5b0ffed 100644 --- a/pkgs/development/python-modules/numeric/default.nix +++ b/pkgs/development/python-modules/numeric/default.nix @@ -23,7 +23,7 @@ let version = "24.2"; in # FIXME: Run the tests. meta = { - description = "Numeric, a Python module for high-performance, numeric computing"; + description = "A Python module for high-performance, numeric computing"; longDescription = '' Numeric is a Python module for high-performance, numeric @@ -37,4 +37,4 @@ let version = "24.2"; in homepage = http://people.csail.mit.edu/jrennie/python/numeric/; }; - } \ No newline at end of file + } diff --git a/pkgs/development/python-modules/pil/default.nix b/pkgs/development/python-modules/pil/default.nix deleted file mode 100644 index 35a1e913bf7..00000000000 --- a/pkgs/development/python-modules/pil/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ fetchurl, stdenv, python, buildPythonPackage, libjpeg, zlib, freetype }: - -let version = "1.1.7"; in - -buildPythonPackage { - name = "imaging-${version}"; - - src = fetchurl { - url = "http://effbot.org/downloads/Imaging-${version}.tar.gz"; - sha256 = "04aj80jhfbmxqzvmq40zfi4z3cw6vi01m3wkk6diz3lc971cfnw9"; - }; - - buildInputs = [ python libjpeg zlib freetype ]; - - doCheck = true; - - preConfigure = '' - sed -i "setup.py" \ - -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = libinclude("${freetype}")|g ; - s|^JPEG_ROOT =.*$|JPEG_ROOT = libinclude("${libjpeg}")|g ; - s|^ZLIB_ROOT =.*$|ZLIB_ROOT = libinclude("${zlib}")|g ;' - ''; - - checkPhase = "python selftest.py"; - buildPhase = "python setup.py build_ext -i"; - - postInstall = '' - cd "$out"/lib/python*/site-packages - ln -s $PWD PIL - ''; - - meta = { - homepage = http://www.pythonware.com/products/pil/; - description = "The Python Imaging Library (PIL)"; - - longDescription = '' - The Python Imaging Library (PIL) adds image processing - capabilities to your Python interpreter. This library - supports many file formats, and provides powerful image - processing and graphics capabilities. - ''; - - license = "http://www.pythonware.com/products/pil/license.htm"; - }; -} diff --git a/pkgs/development/python-modules/pycrypto/default.nix b/pkgs/development/python-modules/pycrypto/default.nix index c8f0f74c1ff..59bd9affef6 100644 --- a/pkgs/development/python-modules/pycrypto/default.nix +++ b/pkgs/development/python-modules/pycrypto/default.nix @@ -9,10 +9,9 @@ buildPythonPackage rec { sha256 = "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj"; }; - buildInputs = [ gmp ]; - - doCheck = !stdenv.isDarwin; # error: AF_UNIX path too long + buildInputs = stdenv.lib.optional (!python.isPypy or false) gmp; # optional for pypy + doCheck = !(python.isPypy or stdenv.isDarwin); # error: AF_UNIX path too long meta = { homepage = "http://www.pycrypto.org/"; diff --git a/pkgs/development/python-modules/pygtk/default.nix b/pkgs/development/python-modules/pygtk/default.nix index 7d3804d264a..60aa65323d7 100644 --- a/pkgs/development/python-modules/pygtk/default.nix +++ b/pkgs/development/python-modules/pygtk/default.nix @@ -1,8 +1,10 @@ { stdenv, fetchurl, python, pkgconfig, gtk, pygobject, pycairo -, buildPythonPackage, libglade ? null }: +, buildPythonPackage, libglade ? null, isPy3k }: buildPythonPackage rec { name = "pygtk-2.24.0"; + + disabled = isPy3k; src = fetchurl { url = "mirror://gnome/sources/pygtk/2.24/${name}.tar.bz2"; diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix index 1dfaa5cf875..56797d9c702 100644 --- a/pkgs/development/tools/analysis/checkstyle/default.nix +++ b/pkgs/development/tools/analysis/checkstyle/default.nix @@ -1,12 +1,12 @@ -{stdenv, fetchurl, unzip}: +{ stdenv, fetchurl }: -stdenv.mkDerivation { - name = "checkstyle-5.0"; - buildInputs = [unzip] ; +stdenv.mkDerivation rec { + version = "5.7"; + name = "checkstyle-${version}"; src = fetchurl { - url = mirror://sourceforge/checkstyle/checkstyle-5.0.zip ; - sha256 = "0972afcxjniz64hlnc89ddnd1d0mcd5hb1sd7lpw5k52h39683nh"; + url = "mirror://sourceforge/checkstyle/${version}/${name}-bin.tar.gz"; + sha256 = "0kzj507ylynq6p7v097bjzsckkjny5i2fxwxyrlwi5samhi2m06x"; }; installPhase = '' @@ -22,6 +22,6 @@ stdenv.mkDerivation { Conventions, but is highly configurable. ''; homepage = http://checkstyle.sourceforge.net/; + license = stdenv.lib.licenses.lgpl21; }; } - diff --git a/pkgs/development/tools/analysis/lcov/default.nix b/pkgs/development/tools/analysis/lcov/default.nix index 89a17d28a1b..10cdf01103a 100644 --- a/pkgs/development/tools/analysis/lcov/default.nix +++ b/pkgs/development/tools/analysis/lcov/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "LCOV, a code coverage tool that enhances GNU gcov"; + description = "Code coverage tool that enhances GNU gcov"; longDescription = '' LCOV is an extension of GCOV, a GNU tool which provides information diff --git a/pkgs/development/tools/analysis/sparse/default.nix b/pkgs/development/tools/analysis/sparse/default.nix index 6d0e28f0ab2..6898b7eee54 100644 --- a/pkgs/development/tools/analysis/sparse/default.nix +++ b/pkgs/development/tools/analysis/sparse/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "Sparse, a semantic parser for C"; + description = "Semantic parser for C"; homepage = "https://git.kernel.org/cgit/devel/sparse/sparse.git/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix index 5ffc287d114..aaeee026d0a 100644 --- a/pkgs/development/tools/analysis/valgrind/default.nix +++ b/pkgs/development/tools/analysis/valgrind/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.valgrind.org/; - description = "Valgrind, a debugging and profiling tool suite"; + description = "Debugging and profiling tool suite"; longDescription = '' Valgrind is an award-winning instrumentation framework for diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix index b7316fc17c4..a4863d12b5c 100644 --- a/pkgs/development/tools/build-managers/gradle/default.nix +++ b/pkgs/development/tools/build-managers/gradle/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { buildInputs = [ unzip jdk makeWrapper ]; meta = { - description = "Gradle is an enterprise-grade build system"; + description = "Enterprise-grade build system"; longDescription = '' Gradle is a build system which offers you ease, power and freedom. You can choose the balance for yourself. It has powerful multi-project diff --git a/pkgs/development/tools/build-managers/scons/default.nix b/pkgs/development/tools/build-managers/scons/default.nix index 93f7699481c..e173f827664 100644 --- a/pkgs/development/tools/build-managers/scons/default.nix +++ b/pkgs/development/tools/build-managers/scons/default.nix @@ -2,7 +2,7 @@ let name = "scons"; - version = "2.3.2"; + version = "2.3.3"; in stdenv.mkDerivation { @@ -10,7 +10,7 @@ stdenv.mkDerivation { src = fetchurl { url = "mirror://sourceforge/scons/${name}-${version}.tar.gz"; - sha256 = "1m29lhwz7p6k4f8wc8qjpwa89058lzq3vrycgxbfc5cmbq6354zr"; + sha256 = "1qn0gk4k796a6vwsq62w80d6w96r9xh6kz7aa14xb6md2884x9v3"; }; buildInputs = [python makeWrapper]; diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix index 54509178b1a..50f2037b271 100644 --- a/pkgs/development/tools/documentation/doxygen/default.nix +++ b/pkgs/development/tools/documentation/doxygen/default.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation { meta = { license = stdenv.lib.licenses.gpl2Plus; homepage = "http://doxygen.org/"; - description = "Doxygen, a source code documentation generator tool"; + description = "Source code documentation generator tool"; longDescription = '' Doxygen is a documentation system for C++, C, Java, Objective-C, diff --git a/pkgs/development/tools/documentation/haddock/2.14.3.nix b/pkgs/development/tools/documentation/haddock/2.14.3.nix index a16994b1f2e..7ce4782bb60 100644 --- a/pkgs/development/tools/documentation/haddock/2.14.3.nix +++ b/pkgs/development/tools/documentation/haddock/2.14.3.nix @@ -12,7 +12,7 @@ cabal.mkDerivation (self: { isExecutable = true; buildDepends = [ Cabal deepseq filepath ghcPaths xhtml ]; testDepends = [ Cabal deepseq filepath hspec QuickCheck ]; - doCheck = false; + preCheck = "unset GHC_PACKAGE_PATH"; meta = { homepage = "http://www.haskell.org/haddock/"; description = "A documentation-generation tool for Haskell libraries"; diff --git a/pkgs/development/tools/documentation/haddock/2.15.0.nix b/pkgs/development/tools/documentation/haddock/2.15.0.nix new file mode 100644 index 00000000000..3b3d91a1f2f --- /dev/null +++ b/pkgs/development/tools/documentation/haddock/2.15.0.nix @@ -0,0 +1,20 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, Cabal, filepath, haddockApi }: + +cabal.mkDerivation (self: { + pname = "haddock"; + version = "2.15.0"; + sha256 = "1vay0v0a02xj2m40w71vmjadlm6pzv309r1jhr61xv1wnj88i75w"; + isLibrary = false; + isExecutable = true; + buildDepends = [ haddockApi ]; + testDepends = [ Cabal filepath ]; + preCheck = "unset GHC_PACKAGE_PATH"; + meta = { + homepage = "http://www.haskell.org/haddock/"; + description = "A documentation-generation tool for Haskell libraries"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/tools/haskell/cabal-bounds/default.nix b/pkgs/development/tools/haskell/cabal-bounds/default.nix index 213ba6f9d13..368c421221b 100644 --- a/pkgs/development/tools/haskell/cabal-bounds/default.nix +++ b/pkgs/development/tools/haskell/cabal-bounds/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "cabal-bounds"; - version = "0.8.4"; - sha256 = "00vj6ca9liqlqg69d4ziacsxz6x9365sbyc1ag6g18bhibyinsh2"; + version = "0.8.6"; + sha256 = "0q7fpblhxba4np5a9igwmcvmkkvka9f85nccxw0m2lvwbjrs51xq"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix index 978ebde7e29..db7e472934c 100644 --- a/pkgs/development/tools/haskell/cabal2nix/default.nix +++ b/pkgs/development/tools/haskell/cabal2nix/default.nix @@ -1,15 +1,18 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, Cabal, doctest, filepath, hackageDb, HTTP, mtl, regexPosix +{ cabal, Cabal, doctest, filepath, hackageDb, mtl, regexPosix +, transformers }: cabal.mkDerivation (self: { pname = "cabal2nix"; - version = "1.68"; - sha256 = "0w9ayvr3ljfxgi17yaayqvyxflbgf7b5245pc3m011lp3cfnj849"; + version = "1.69"; + sha256 = "0430086lh1h7w8wxc42aqrdjb8i12vz8m0jr1q2c45h3k6brb5r5"; isLibrary = false; isExecutable = true; - buildDepends = [ Cabal filepath hackageDb HTTP mtl regexPosix ]; + buildDepends = [ + Cabal filepath hackageDb mtl regexPosix transformers + ]; testDepends = [ doctest ]; doCheck = self.stdenv.lib.versionOlder "7.6" self.ghc.version; meta = { diff --git a/pkgs/development/tools/haskell/codex/default.nix b/pkgs/development/tools/haskell/codex/default.nix index fac145b14c2..a2f9c119700 100644 --- a/pkgs/development/tools/haskell/codex/default.nix +++ b/pkgs/development/tools/haskell/codex/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "codex"; - version = "0.1.0.3"; - sha256 = "0sbkri6y9f4wws120kbb93sv1z0z75hjw9pw5r3wadmmd0lygsn9"; + version = "0.1.0.4"; + sha256 = "1wnrjmf2iypnmdsmjxbjg7kqn8802yhd9vbdc4vg19pqspir87wz"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/development/tools/haskell/haskell-docs/default.nix b/pkgs/development/tools/haskell/haskell-docs/default.nix index b9cd34c716e..9cc92aafc21 100644 --- a/pkgs/development/tools/haskell/haskell-docs/default.nix +++ b/pkgs/development/tools/haskell/haskell-docs/default.nix @@ -20,5 +20,7 @@ cabal.mkDerivation (self: { description = "A program to find and display the docs and type of a name"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; + hydraPlatforms = self.stdenv.lib.platforms.none; + broken = true; }; }) diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix index 4fe5f01c3d1..92a33602a1f 100644 --- a/pkgs/development/tools/haskell/hlint/default.nix +++ b/pkgs/development/tools/haskell/hlint/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "hlint"; - version = "1.9.3"; - sha256 = "1sdz981yq0amsw9q6hx0aqkd0ayrax5p77s3n3gz4bphpk37n09b"; + version = "1.9.4"; + sha256 = "0vqdkrhzxi99py9zrk01cz3hayfbp757rh1c1sgz00a1gf1pyz8m"; isLibrary = true; isExecutable = true; buildDepends = [ diff --git a/pkgs/development/tools/haskell/timeplot/default.nix b/pkgs/development/tools/haskell/timeplot/default.nix index 4342b877a2e..a07383778ed 100644 --- a/pkgs/development/tools/haskell/timeplot/default.nix +++ b/pkgs/development/tools/haskell/timeplot/default.nix @@ -20,5 +20,7 @@ cabal.mkDerivation (self: { description = "A tool for visualizing time series from log files"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; + hydraPlatforms = self.stdenv.lib.platforms.none; + broken = true; }; }) diff --git a/pkgs/development/tools/java/fastjar/default.nix b/pkgs/development/tools/java/fastjar/default.nix index c8bb94412ca..e5a9ca50ce9 100644 --- a/pkgs/development/tools/java/fastjar/default.nix +++ b/pkgs/development/tools/java/fastjar/default.nix @@ -14,7 +14,7 @@ let version = "0.94"; in doCheck = true; meta = { - description = "FastJar, a fast Java archiver written in C"; + description = "Fast Java archiver written in C"; longDescription = '' Fastjar is a version of Sun's `jar' utility, written entirely in C, and diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix index 8d8fc5d464e..fc48a4aabad 100644 --- a/pkgs/development/tools/misc/binutils/default.nix +++ b/pkgs/development/tools/misc/binutils/default.nix @@ -67,7 +67,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - description = "GNU Binutils, tools for manipulating binaries (linker, assembler, etc.)"; + description = "Tools for manipulating binaries (linker, assembler, etc.)"; longDescription = '' The GNU Binutils are a collection of binary tools. The main diff --git a/pkgs/development/tools/misc/bossa/bin2c.c b/pkgs/development/tools/misc/bossa/bin2c.c new file mode 100644 index 00000000000..f0b915de540 --- /dev/null +++ b/pkgs/development/tools/misc/bossa/bin2c.c @@ -0,0 +1,122 @@ +// bin2c.c +// +// convert a binary file into a C source vector +// +// THE "BEER-WARE LICENSE" (Revision 3.1415): +// sandro AT sigala DOT it wrote this file. As long as you retain this notice you can do +// whatever you want with this stuff. If we meet some day, and you think this stuff is +// worth it, you can buy me a beer in return. Sandro Sigala +// +// syntax: bin2c [-c] [-z] +// +// -c add the "const" keyword to definition +// -z terminate the array with a zero (useful for embedded C strings) +// +// examples: +// bin2c -c myimage.png myimage_png.cpp +// bin2c -z sometext.txt sometext_txt.cpp + +#include +#include +#include +#include + +#ifndef PATH_MAX +#define PATH_MAX 1024 +#endif + +int useconst = 0; +int zeroterminated = 0; + +int myfgetc(FILE *f) +{ + int c = fgetc(f); + if (c == EOF && zeroterminated) + { + zeroterminated = 0; + return 0; + } + return c; +} + +void process(const char *ifname, const char *ofname) +{ + FILE *ifile, *ofile; + ifile = fopen(ifname, "rb"); + if (ifile == NULL) + { + fprintf(stderr, "cannot open %s for reading\n", ifname); + exit(1); + } + ofile = fopen(ofname, "wb"); + if (ofile == NULL) + { + fprintf(stderr, "cannot open %s for writing\n", ofname); + exit(1); + } + char buf[PATH_MAX], *p; + const char *cp; + if ((cp = strrchr(ifname, '/')) != NULL) + { + ++cp; + } else { + if ((cp = strrchr(ifname, '\\')) != NULL) + ++cp; + else + cp = ifname; + } + strcpy(buf, cp); + for (p = buf; *p != '\0'; ++p) + { + if (!isalnum(*p)) + *p = '_'; + } + fprintf(ofile, "static %sunsigned char %s[] = {\n", useconst ? "const " : "", buf); + int c, col = 1; + while ((c = myfgetc(ifile)) != EOF) + { + if (col >= 78 - 6) + { + fputc('\n', ofile); + col = 1; + } + fprintf(ofile, "0x%.2x, ", c); + col += 6; + } + fprintf(ofile, "\n};\n"); + + fclose(ifile); + fclose(ofile); +} + +void usage(void) +{ + fprintf(stderr, "usage: bin2c [-cz] \n"); + exit(1); +} + +int main(int argc, char **argv) +{ + while (argc > 3) + { + if (!strcmp(argv[1], "-c")) + { + useconst = 1; + --argc; + ++argv; + } else if (!strcmp(argv[1], "-z")) + { + zeroterminated = 1; + --argc; + ++argv; + } else { + usage(); + } + } + if (argc != 3) + { + usage(); + } + process(argv[1], argv[2]); + return 0; +} diff --git a/pkgs/development/tools/misc/bossa/default.nix b/pkgs/development/tools/misc/bossa/default.nix new file mode 100644 index 00000000000..f0b6d81e69e --- /dev/null +++ b/pkgs/development/tools/misc/bossa/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchgit, wxGTK, libX11, readline }: + +let + # BOSSA needs a "bin2c" program to embed images. + # Source taken from: + # http://wiki.wxwidgets.org/Embedding_PNG_Images-Bin2c_In_C + bin2c = stdenv.mkDerivation { + name = "bossa-bin2c"; + src = ./bin2c.c; + unpackPhase = "true"; + buildPhase = ''cc $src -o bin2c''; + installPhase = ''mkdir -p $out/bin; cp bin2c $out/bin/''; + }; + +in +stdenv.mkDerivation rec { + name = "bossa"; + + src = fetchgit { + url = https://github.com/shumatech/BOSSA; + rev = "0f0a41cb1c3a65e909c5c744d8ae664e896a08ac"; /* arduino branch */ + sha256 = "01y8r45fw02rps9q995mv82bxrm6p0mysv4wir5glpagrhnyw7md"; + }; + + nativeBuildInputs = [ bin2c ]; + buildInputs = [ wxGTK libX11 readline ]; + + # Explicitly specify targets so they don't get stripped. + makeFlags = [ "bin/bossac" "bin/bossash" "bin/bossa" ]; + + installPhase = '' + mkdir -p $out/bin + cp bin/bossa{c,sh,} $out/bin/ + ''; + + meta = with stdenv.lib; { + description = "A flash programming utility for Atmel's SAM family of flash-based ARM microcontrollers"; + longDescription = '' + BOSSA is a flash programming utility for Atmel's SAM family of + flash-based ARM microcontrollers. The motivation behind BOSSA is + to create a simple, easy-to-use, open source utility to replace + Atmel's SAM-BA software. BOSSA is an acronym for Basic Open + Source SAM-BA Application to reflect that goal. + ''; + homepage = http://www.shumatech.com/web/products/bossa; + license = licenses.bsd3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/tools/misc/cflow/default.nix b/pkgs/development/tools/misc/cflow/default.nix index 53bc8ed78c8..b1322d461ee 100644 --- a/pkgs/development/tools/misc/cflow/default.nix +++ b/pkgs/development/tools/misc/cflow/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU cflow, a tool to analyze the control flow of C programs"; + description = "Tool to analyze the control flow of C programs"; longDescription = '' GNU cflow analyzes a collection of C source files and prints a diff --git a/pkgs/development/tools/misc/cl-launch/default.nix b/pkgs/development/tools/misc/cl-launch/default.nix index d66ca9868f5..085af9df3a3 100644 --- a/pkgs/development/tools/misc/cl-launch/default.nix +++ b/pkgs/development/tools/misc/cl-launch/default.nix @@ -3,11 +3,11 @@ let s = # Generated upstream information rec { baseName="cl-launch"; - version="4.0.5"; + version="4.1"; name="${baseName}-${version}"; - hash="00i11pkwsb9r9cjzxjmj0dsp369i0gpz04f447xss9a9v192dhlj"; - url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.0.5.tar.gz"; - sha256="00i11pkwsb9r9cjzxjmj0dsp369i0gpz04f447xss9a9v192dhlj"; + hash="0fmxa8013sgxmbfmh1wqffywg72zynzlw5yyrdvy9qpx1my36pwb"; + url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.1.tar.gz"; + sha256="0fmxa8013sgxmbfmh1wqffywg72zynzlw5yyrdvy9qpx1my36pwb"; }; buildInputs = [ ]; diff --git a/pkgs/development/tools/misc/coccinelle/default.nix b/pkgs/development/tools/misc/coccinelle/default.nix index 0bf5bbce692..51f5ed6091f 100644 --- a/pkgs/development/tools/misc/coccinelle/default.nix +++ b/pkgs/development/tools/misc/coccinelle/default.nix @@ -37,7 +37,7 @@ in stdenv.mkDerivation { configureFlags = "--enable-release"; meta = { - description = "Coccinelle, a program to apply C code semantic patches"; + description = "Program to apply semantic patches to C code"; longDescription = '' Coccinelle is a program matching and transformation engine which diff --git a/pkgs/development/tools/misc/complexity/default.nix b/pkgs/development/tools/misc/complexity/default.nix index 9f1eca0fa13..a7ae4d17ab1 100644 --- a/pkgs/development/tools/misc/complexity/default.nix +++ b/pkgs/development/tools/misc/complexity/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "GNU Complexity, C code complexity measurement tool"; + description = "C code complexity measurement tool"; longDescription = '' GNU Complexity is a tool designed for analyzing the complexity of C diff --git a/pkgs/development/tools/misc/cppi/default.nix b/pkgs/development/tools/misc/cppi/default.nix index 500129c7c9d..2942408de80 100644 --- a/pkgs/development/tools/misc/cppi/default.nix +++ b/pkgs/development/tools/misc/cppi/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://savannah.gnu.org/projects/cppi/; - description = "GNU cppi, a cpp directive indenter"; + description = "A C preprocessor directive indenter"; longDescription = '' GNU cppi indents C preprocessor directives to reflect their nesting diff --git a/pkgs/development/tools/misc/cscope/default.nix b/pkgs/development/tools/misc/cscope/default.nix index 3a83b1ba325..223f1968274 100644 --- a/pkgs/development/tools/misc/cscope/default.nix +++ b/pkgs/development/tools/misc/cscope/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { }; meta = { - description = "Cscope, a developer's tool for browsing source code"; + description = "A developer's tool for browsing source code"; longDescription = '' Cscope is a developer's tool for browsing source code. It has diff --git a/pkgs/development/tools/misc/ctags/default.nix b/pkgs/development/tools/misc/ctags/default.nix index 80def733cf8..bf13a5daa66 100644 --- a/pkgs/development/tools/misc/ctags/default.nix +++ b/pkgs/development/tools/misc/ctags/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://ctags.sourceforge.net/"; - description = "Exuberant Ctags, a tool for fast source code browsing"; + description = "A tool for fast source code browsing (exuberant ctags)"; license = stdenv.lib.licenses.gpl2Plus; longDescription = '' diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix index 2b5ced78063..5ee0f64a4e4 100644 --- a/pkgs/development/tools/misc/gdb/default.nix +++ b/pkgs/development/tools/misc/gdb/default.nix @@ -68,7 +68,7 @@ stdenv.mkDerivation rec { doCheck = false; meta = with stdenv.lib; { - description = "GDB, the GNU Project debugger"; + description = "The GNU Project debugger"; longDescription = '' GDB, the GNU Project debugger, allows you to see what is going diff --git a/pkgs/development/tools/misc/gengetopt/default.nix b/pkgs/development/tools/misc/gengetopt/default.nix index 9926dd6cd33..19e934f884f 100644 --- a/pkgs/development/tools/misc/gengetopt/default.nix +++ b/pkgs/development/tools/misc/gengetopt/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU Gengetopt, a command-line option parser generator"; + description = "Command-line option parser generator"; longDescription = '' GNU Gengetopt program generates a C function that uses getopt_long diff --git a/pkgs/development/tools/misc/global/default.nix b/pkgs/development/tools/misc/global/default.nix index d6abf8d10bd..b366feb304a 100644 --- a/pkgs/development/tools/misc/global/default.nix +++ b/pkgs/development/tools/misc/global/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "GNU GLOBAL source code tag system"; + description = "Source code tag system"; longDescription = '' GNU GLOBAL is a source code tagging system that works the same way diff --git a/pkgs/development/tools/misc/gperf/default.nix b/pkgs/development/tools/misc/gperf/default.nix index e25998e5420..f0fd081ec5f 100644 --- a/pkgs/development/tools/misc/gperf/default.nix +++ b/pkgs/development/tools/misc/gperf/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { }; meta = { - description = "GNU gperf, a perfect hash function generator"; + description = "Perfect hash function generator"; longDescription = '' GNU gperf is a perfect hash function generator. For a given diff --git a/pkgs/development/tools/misc/help2man/default.nix b/pkgs/development/tools/misc/help2man/default.nix index 23bd35c8739..c8cff116282 100644 --- a/pkgs/development/tools/misc/help2man/default.nix +++ b/pkgs/development/tools/misc/help2man/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, perl, gettext, LocaleGettext, makeWrapper }: stdenv.mkDerivation rec { - name = "help2man-1.44.1"; + name = "help2man-1.46.1"; src = fetchurl { url = "mirror://gnu/help2man/${name}.tar.xz"; - sha256 = "1yyyfw9zrfdvslnv91bnhyqmazwx243wmkc9wdaz888rfx36ipi2"; + sha256 = "0iqwb3qirl7rp1wwpbh01q89qxvi4h3bc73wi03av6hl4sh05z9x"; }; buildInputs = [ makeWrapper perl gettext LocaleGettext ]; @@ -18,8 +18,8 @@ stdenv.mkDerivation rec { ''; - meta = { - description = "GNU help2man generates man pages from `--help' output"; + meta = with stdenv.lib; { + description = "Generate man pages from `--help' output"; longDescription = '' help2man produces simple manual pages from the ‘--help’ and @@ -28,8 +28,8 @@ stdenv.mkDerivation rec { homepage = http://www.gnu.org/software/help2man/; - license = stdenv.lib.licenses.gpl3Plus; - platforms = stdenv.lib.platforms.gnu; # arbitrary choice - maintainers = [ stdenv.lib.maintainers.ludo ]; + license = licenses.gpl3Plus; + platforms = platforms.gnu; # arbitrary choice + maintainers = with maintainers; [ ludo pSub ]; }; } diff --git a/pkgs/development/tools/misc/inotify-tools/default.nix b/pkgs/development/tools/misc/inotify-tools/default.nix index 3402c2060e7..4c1cd5bd7bd 100644 --- a/pkgs/development/tools/misc/inotify-tools/default.nix +++ b/pkgs/development/tools/misc/inotify-tools/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-${version}.tar.gz"; - sha256 = "0icl4bx041axd5dvhg89kilfkysjj86hjakc7bk8n49cxjn4cha6"; + sha256 = "0by9frv1k59f76cx08sn06sk6lmdxsfb6zr0rshzhyrxi6lcqar2"; }; meta = with stdenv.lib; { diff --git a/pkgs/development/tools/misc/libtool/default.nix b/pkgs/development/tools/misc/libtool/default.nix index 5eee9ead5d6..262d8aad23b 100644 --- a/pkgs/development/tools/misc/libtool/default.nix +++ b/pkgs/development/tools/misc/libtool/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { dontPatchShebangs = true; meta = { - description = "GNU Libtool, a generic library support script"; + description = "Generic library support script"; longDescription = '' GNU libtool is a generic library support script. Libtool hides diff --git a/pkgs/development/tools/misc/nixbang/default.nix b/pkgs/development/tools/misc/nixbang/default.nix new file mode 100644 index 00000000000..762e6f2c4db --- /dev/null +++ b/pkgs/development/tools/misc/nixbang/default.nix @@ -0,0 +1,20 @@ +{ lib, pythonPackages, fetchgit }: + +let version = "0.1.1"; in +pythonPackages.buildPythonPackage { + name = "nixbang-${version}"; + namePrefix = ""; + + src = fetchgit { + url = "git://github.com/madjar/nixbang.git"; + rev = "refs/tags/${version}"; + sha256 = "1n8jq32r2lzk3g0d95ksfq7vdqciz34jabribrr4hcnz4nlijshf"; + }; + + meta = { + homepage = https://github.com/madjar/nixbang; + description = "A special shebang to run scripts in a nix-shell"; + maintainers = [ lib.maintainers.madjar ]; + platforms = lib.platforms.all; + }; +} diff --git a/pkgs/development/tools/misc/sloccount/default.nix b/pkgs/development/tools/misc/sloccount/default.nix index 455305be749..1aa9a2c058d 100644 --- a/pkgs/development/tools/misc/sloccount/default.nix +++ b/pkgs/development/tools/misc/sloccount/default.nix @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "SLOCCount, a set of tools for counting physical Source Lines of Code (SLOC)"; + description = "Set of tools for counting physical Source Lines of Code (SLOC)"; longDescription = '' This is the home page of "SLOCCount", a set of tools for diff --git a/pkgs/development/tools/misc/swig/default.nix b/pkgs/development/tools/misc/swig/default.nix index 09978b5ad65..66d6b65453e 100644 --- a/pkgs/development/tools/misc/swig/default.nix +++ b/pkgs/development/tools/misc/swig/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { configureFlags = stdenv.lib.optionalString stdenv.isDarwin "--disable-ccache"; meta = { - description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages"; + description = "Interface compiler that connects C/C++ code to higher-level languages"; longDescription = '' SWIG is an interface compiler that connects programs written in C and diff --git a/pkgs/development/tools/misc/texinfo/4.13a.nix b/pkgs/development/tools/misc/texinfo/4.13a.nix index 5131d381412..a3155230514 100644 --- a/pkgs/development/tools/misc/texinfo/4.13a.nix +++ b/pkgs/development/tools/misc/texinfo/4.13a.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { #doCheck = true; meta = { - description = "GNU Texinfo, the GNU documentation system"; + description = "The GNU documentation system"; longDescription = '' Texinfo is the official documentation format of the GNU project. diff --git a/pkgs/development/tools/misc/texinfo/5.2.nix b/pkgs/development/tools/misc/texinfo/5.2.nix index 804e7a2527f..62e1ff62d1e 100644 --- a/pkgs/development/tools/misc/texinfo/5.2.nix +++ b/pkgs/development/tools/misc/texinfo/5.2.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://www.gnu.org/software/texinfo/"; - description = "GNU Texinfo, the GNU documentation system"; + description = "The GNU documentation system"; license = stdenv.lib.licenses.gpl3Plus; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix index c0882439f5c..970c07f3546 100644 --- a/pkgs/development/tools/ocaml/merlin/default.nix +++ b/pkgs/development/tools/ocaml/merlin/default.nix @@ -1,14 +1,14 @@ -{stdenv, fetchurl, ocaml, findlib, easy-format, biniou, yojson, menhir}: +{stdenv, fetchurl, ocaml, findlib, yojson, menhir}: stdenv.mkDerivation { - name = "merlin-1.6"; + name = "merlin-1.7.1"; src = fetchurl { - url = "https://github.com/the-lambda-church/merlin/archive/v1.6.tar.gz"; - sha256 = "0wq75hgffaszazrhkl0nfjxgx8bvazi2sjannd8q64hvax8hxzcy"; + url = https://github.com/the-lambda-church/merlin/archive/v1.7.1.tar.gz; + sha256 = "c3b60c7b3fddaa2860e0d8ac0d4fed2ed60e319875734c7ac1a93df524c67aff"; }; - buildInputs = [ ocaml findlib biniou yojson menhir easy-format ]; + buildInputs = [ ocaml findlib yojson menhir ]; prefixKey = "--prefix "; diff --git a/pkgs/development/tools/ocaml/omake/default.nix b/pkgs/development/tools/ocaml/omake/default.nix index 22e0d71af4d..300cbbc0a0c 100644 --- a/pkgs/development/tools/ocaml/omake/default.nix +++ b/pkgs/development/tools/ocaml/omake/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation { # buildFlags = "world.opt"; meta = { - description = "Omake build system"; + description = "A build system designed for scalability and portability"; homepage = "${webpage}"; license = "GPL"; }; diff --git a/pkgs/development/tools/ocaml/utop/default.nix b/pkgs/development/tools/ocaml/utop/default.nix new file mode 100644 index 00000000000..1b99c4d4d43 --- /dev/null +++ b/pkgs/development/tools/ocaml/utop/default.nix @@ -0,0 +1,46 @@ +{stdenv, fetchurl, ocaml, findlib, lambdaTerm, ocaml_lwt, makeWrapper, + ocaml_react, camomile, zed +}: + +stdenv.mkDerivation rec { + version = "1.14"; + name = "utop-${version}"; + + src = fetchurl { + url = https://github.com/diml/utop/archive/1.14.tar.gz; + sha256 = "17dqinvdrpba2fjs7sl6gxs47rrx6j8a5bbjhc7flp6bdls898zk"; + }; + + buildInputs = [ ocaml findlib makeWrapper]; + + propagatedBuildInputs = [ lambdaTerm ocaml_lwt ]; + + createFindlibDestdir = true; + + buildPhase = '' + make + make doc + ''; + + postFixup = + let ocamlVersion = (builtins.parseDrvName (ocaml.name)).version; + in + '' + wrapProgram "$out"/bin/utop --set CAML_LD_LIBRARY_PATH "${ocaml_lwt}"/lib/ocaml/${ocamlVersion}/site-lib/lwt/:"${lambdaTerm}"/lib/ocaml/${ocamlVersion}/site-lib/lambda-term/:'$CAML_LD_LIBRARY_PATH' --set OCAMLPATH "${ocaml_lwt}"/lib/ocaml/${ocamlVersion}/site-lib:${ocaml_react}/lib/ocaml/${ocamlVersion}/site-lib:${camomile}/lib/ocaml/${ocamlVersion}/site-lib:${zed}/lib/ocaml/${ocamlVersion}/site-lib:${lambdaTerm}/lib/ocaml/${ocamlVersion}/site-lib:"$out"/lib/ocaml/${ocamlVersion}/site-lib:'$OCAMLPATH' + ''; + + meta = { + description = "Universal toplevel for OCaml"; + longDescription = '' + utop is an improved toplevel for OCaml. It can run in a terminal or in Emacs. It supports line edition, history, real-time and context sensitive completion, colors, and more. + + It integrates with the tuareg mode in Emacs. + ''; + homepage = https://github.com/diml/utop; + license = stdenv.lib.licenses.bsd3; + platforms = ocaml.meta.platforms; + maintainers = [ + stdenv.lib.maintainers.gal_bolle + ]; + }; +} diff --git a/pkgs/development/tools/parsing/bison/2.x.nix b/pkgs/development/tools/parsing/bison/2.x.nix index 5bf5d7c2e8c..f89e7bca5a7 100644 --- a/pkgs/development/tools/parsing/bison/2.x.nix +++ b/pkgs/development/tools/parsing/bison/2.x.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://www.gnu.org/software/bison/"; - description = "GNU Bison, a Yacc-compatible parser generator"; + description = "Yacc-compatible parser generator"; license = stdenv.lib.licenses.gpl3Plus; longDescription = '' diff --git a/pkgs/development/tools/parsing/bison/3.x.nix b/pkgs/development/tools/parsing/bison/3.x.nix index 5947f85343c..49602a23201 100644 --- a/pkgs/development/tools/parsing/bison/3.x.nix +++ b/pkgs/development/tools/parsing/bison/3.x.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://www.gnu.org/software/bison/"; - description = "GNU Bison, a Yacc-compatible parser generator"; + description = "Yacc-compatible parser generator"; license = stdenv.lib.licenses.gpl3Plus; longDescription = '' diff --git a/pkgs/development/tools/parsing/byacc/default.nix b/pkgs/development/tools/parsing/byacc/default.nix index ec302611053..8842c8723b1 100644 --- a/pkgs/development/tools/parsing/byacc/default.nix +++ b/pkgs/development/tools/parsing/byacc/default.nix @@ -4,15 +4,10 @@ stdenv.mkDerivation { name = "byacc-1.9"; src = fetchurl { - url = http://www.isc.org/sources/devel/tools/byacc-1.9.tar.gz; - sha256 = "d61a15ac4ac007c188d0c0e99365f016f8d327755f43032b58e400754846f736"; + url = ftp://invisible-island.net/byacc/byacc-20140715.tgz; + sha256 = "1rbzx5ipkvih9rjfdfv6310wcr6mxjbdlsh9zcv5aaz6yxxxil7c"; }; - preConfigure = - ''mkdir -p $out/bin - sed -i "s@^DEST.*\$@DEST = $out/bin/yacc@" Makefile - ''; - meta = { description = "Berkeley YACC"; homepage = http://dickey.his.com/byacc/byacc.html; diff --git a/pkgs/development/tools/profiling/oprofile/default.nix b/pkgs/development/tools/profiling/oprofile/default.nix index e301fe8431a..6c7b2a4d9ae 100644 --- a/pkgs/development/tools/profiling/oprofile/default.nix +++ b/pkgs/development/tools/profiling/oprofile/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "OProfile, a system-wide profiler for Linux"; + description = "System-wide profiler for Linux"; longDescription = '' OProfile is a system-wide profiler for Linux systems, capable of profiling all running code at low overhead. It consists of a diff --git a/pkgs/development/tools/profiling/sysprof/default.nix b/pkgs/development/tools/profiling/sysprof/default.nix index 457a5d1dcaa..826ca93aa7d 100644 --- a/pkgs/development/tools/profiling/sysprof/default.nix +++ b/pkgs/development/tools/profiling/sysprof/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://sysprof.com/; - description = "Sysprof, a system-wide profiler for Linux"; + description = "System-wide profiler for Linux"; license = stdenv.lib.licenses.gpl2Plus; longDescription = '' diff --git a/pkgs/development/tools/slimerjs/default.nix b/pkgs/development/tools/slimerjs/default.nix index 9741b0930d2..23b7d9e692c 100644 --- a/pkgs/development/tools/slimerjs/default.nix +++ b/pkgs/development/tools/slimerjs/default.nix @@ -3,11 +3,11 @@ let s = # Generated upstream information rec { baseName="slimerjs"; - version="0.9.1"; + version="0.9.2"; name="${baseName}-${version}"; - hash="1ss69z2794mv40nfa5bfjd8h78jzcjq5xm63hzay1iyvp5rjbl7k"; - url="http://download.slimerjs.org/v0.9/0.9.1/slimerjs-0.9.1.zip"; - sha256="1ss69z2794mv40nfa5bfjd8h78jzcjq5xm63hzay1iyvp5rjbl7k"; + hash="0817f3aq0gn04q4hq43xk4av02d86s2001lg5s5p38phd2jvh703"; + url="http://download.slimerjs.org/releases/0.9.2/slimerjs-0.9.2.zip"; + sha256="0817f3aq0gn04q4hq43xk4av02d86s2001lg5s5p38phd2jvh703"; }; buildInputs = [ unzip zip diff --git a/pkgs/development/tools/sqsh/default.nix b/pkgs/development/tools/sqsh/default.nix index a0f7922b1aa..15a6985b8bf 100644 --- a/pkgs/development/tools/sqsh/default.nix +++ b/pkgs/development/tools/sqsh/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { ]; meta = { - description = "SQSH is command line tool for querying Sybase/MSSQL databases"; + description = "Command line tool for querying Sybase/MSSQL databases"; longDescription = '' Sqsh (pronounced skwish) is short for SQshelL (pronounced s-q-shell), diff --git a/pkgs/games/adom/default.nix b/pkgs/games/adom/default.nix index e83f50df1b7..ef5aba96d09 100644 --- a/pkgs/games/adom/default.nix +++ b/pkgs/games/adom/default.nix @@ -1,6 +1,8 @@ { stdenv, patchelf, zlib, libmad, libpng12, libcaca, mesa, alsaLib, pulseaudio , xlibs, plowshare }: +assert stdenv.isLinux; + let inherit (xlibs) libXext libX11; diff --git a/pkgs/games/banner/default.nix b/pkgs/games/banner/default.nix index b4e61b6d1d1..b443a76b9a7 100644 --- a/pkgs/games/banner/default.nix +++ b/pkgs/games/banner/default.nix @@ -36,7 +36,7 @@ mkDerivation "banner-1.3.2" "0dc0ac0667b2e884a7f5ad3e467af68cd0fd5917f8c9aa19188 meta = { homepage = "http://shh.thathost.com/pub-unix/"; - description = "print large banners to ASCII terminals"; + description = "Print large banners to ASCII terminals"; license = stdenv.lib.licenses.gpl2; longDescription = '' diff --git a/pkgs/games/chessdb/default.nix b/pkgs/games/chessdb/default.nix index 381e35632a6..224eb6f594a 100644 --- a/pkgs/games/chessdb/default.nix +++ b/pkgs/games/chessdb/default.nix @@ -24,6 +24,6 @@ stdenv.mkDerivation { meta = { homepage = http://chessdb.sourceforge.net/; - description = "ChessDB is a free chess database"; + description = "A free chess database"; }; } diff --git a/pkgs/games/construo/default.nix b/pkgs/games/construo/default.nix index 57d055ed3d3..f94b489908e 100644 --- a/pkgs/games/construo/default.nix +++ b/pkgs/games/construo/default.nix @@ -24,6 +24,6 @@ stdenv.mkDerivation rec { builder = writeScript (name + "-builder") (textClosure localDefs ["preConfigure" "doConfigure" "doMakeInstall" "doForceShare" "doPropagate"]); meta = { - description = "Construo masses and springs simulation"; + description = "Masses and springs simulation game"; }; } diff --git a/pkgs/games/crafty/default.nix b/pkgs/games/crafty/default.nix index 0e2796df22d..351e25388e1 100644 --- a/pkgs/games/crafty/default.nix +++ b/pkgs/games/crafty/default.nix @@ -659,7 +659,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.craftychess.com/; - description = "Crafty is a free, open-source computer chess program developed by Dr. Robert M. Hyatt"; + description = "Chess program developed by Dr. Robert M. Hyatt"; license = stdenv.lib.licenses.unfree; platforms = stdenv.lib.platforms.unix; maintainers = [ stdenv.lib.maintainers.jwiegley ]; diff --git a/pkgs/games/eboard/default.nix b/pkgs/games/eboard/default.nix index 1decee4264a..8dd06fa6a28 100644 --- a/pkgs/games/eboard/default.nix +++ b/pkgs/games/eboard/default.nix @@ -14,6 +14,6 @@ stdenv.mkDerivation { meta = { homepage = http://www.bergo.eng.br/eboard/; - description = "eboard is a chess interface for Unix-like systems"; + description = "Chess interface for Unix-like systems"; }; } diff --git a/pkgs/games/extremetuxracer/default.nix b/pkgs/games/extremetuxracer/default.nix index e35eb3266c2..af80467c960 100644 --- a/pkgs/games/extremetuxracer/default.nix +++ b/pkgs/games/extremetuxracer/default.nix @@ -1,34 +1,38 @@ -a : -let - fetchurl = a.fetchurl; +{ stdenv, fetchurl, mesa, libX11, xproto, tcl, freeglut +, SDL, SDL_mixer, SDL_image, libXi, inputproto +, libXmu, libXext, xextproto, libXt, libSM, libICE +, libpng, pkgconfig, gettext, intltool +}: - version = a.lib.attrByPath ["version"] "0.5beta" a; - buildInputs = with a; [ +stdenv.mkDerivation rec { + version = "0.6.0"; + name = "extremetuxracer-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/extremetuxracer/etr-${version}.tar.xz"; + sha256 = "0fl9pwkywqnsmgr6plfj9zb05xrdnl5xb2hcmbjk7ap9l4cjfca4"; + }; + + buildInputs = [ mesa libX11 xproto tcl freeglut - SDL SDL_mixer libXi inputproto + SDL SDL_mixer SDL_image libXi inputproto libXmu libXext xextproto libXt libSM libICE libpng pkgconfig gettext intltool ]; -in -rec { - src = fetchurl { - url = "mirror://sourceforge/extremetuxracer/extremetuxracer-${version}.tar.gz"; - sha256 = "04d99fsfna5mc9apjxsiyw0zgnswy33kwmm1s9d03ihw6rba2zxs"; - }; - inherit buildInputs; - configureFlags = [ - "--with-tcl=${a.tcl}/lib" - ]; + configureFlags = [ "--with-tcl=${tcl}/lib" ]; - /* doConfigure should be removed if not needed */ - phaseNames = ["doConfigure" "doMakeInstall"]; + preConfigure = '' + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL}/include/SDL" + ''; - name = "extremetuxracer-" + version; meta = { description = "High speed arctic racing game based on Tux Racer"; longDescription = '' ExtremeTuxRacer - Tux lies on his belly and accelerates down ice slopes. ''; + license = stdenv.lib.licenses.gpl2Plus; + homepage = http://sourceforge.net/projects/extremetuxracer/; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; }; } diff --git a/pkgs/games/gemrb/default.nix b/pkgs/games/gemrb/default.nix index 31e8ae05d00..dc89e405e24 100644 --- a/pkgs/games/gemrb/default.nix +++ b/pkgs/games/gemrb/default.nix @@ -3,14 +3,15 @@ assert stdenv.gcc.libc != null; stdenv.mkDerivation rec { - name = "gemrb-0.8.0.1"; + name = "gemrb-0.8.1"; src = fetchurl { url = "mirror://sourceforge/gemrb/${name}.tar.gz"; - sha256 = "0v9iypls4iawnfkc91hcdnmc4vyg3ix7v7lmw3knv73q145v0ksd"; + sha256 = "1g68pc0x4azy6zm5y7813g0qky96q796si9v3vafiy7sa8ph49kl"; }; buildInputs = [ cmake python openal SDL zlib libpng libvorbis ]; + # TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl reqs) optional # Necessary to find libdl. CMAKE_LIBRARY_PATH = "${stdenv.gcc.libc}/lib"; @@ -18,8 +19,19 @@ stdenv.mkDerivation rec { # Can't have -werror because of the Vorbis header files. cmakeFlags = "-DDISABLE_WERROR=ON -DCMAKE_VERBOSE_MAKEFILE=ON"; - meta = { + # upstream prefers some symbols to remain + dontStrip = true; + + meta = with stdenv.lib; { description = "A reimplementation of the Infinity Engine, used by games such as Baldur's Gate"; - homepage = http://gemrb.sourceforge.net/; + longDescription = '' + GemRB (Game engine made with pre-Rendered Background) is a portable open-source implementation of + Bioware's Infinity Engine. It was written to support pseudo-3D role playing games based on the + Dungeons & Dragons ruleset (Baldur's Gate and Icewind Dale series, Planescape: Torment). + ''; + homepage = http://gemrb.org/; + license = licenses.gpl2; + platforms = stdenv.lib.platforms.all; + hydraPlatforms = []; }; } diff --git a/pkgs/games/hawkthorne/default.nix b/pkgs/games/hawkthorne/default.nix new file mode 100644 index 00000000000..4a99ec44764 --- /dev/null +++ b/pkgs/games/hawkthorne/default.nix @@ -0,0 +1,38 @@ +{ fetchgit, stdenv, love, curl, zip }: + +stdenv.mkDerivation rec { + version = "0.9.1"; + name = "hawkthorne-${version}"; + + src = fetchgit { + url = "https://github.com/hawkthorne/hawkthorne-journey.git"; + rev = "e48b5eef0058f63bb8ee746bc00b47b3e03f0854"; + sha256 = "0rvcpv8fsi450xs2cglv4w6m5iqbhsr2n09pcvhh0krhg7xay538"; + }; + + buildInputs = [ + love curl zip + ]; + + patches = [ + ./makefile.patch + ]; + + enableParallelBuilding = true; + + meta = { + description = "Journey to the Center of Hawkthorne - A fan-made retro-style game based on the show Community"; + longDescription = '' + Journey to the Center of Hawkthorne is an open source game written in Love2D. + It's based on the show Community, starring Jim Rash and Joel McHale as + the primary will-they-or-won't-they relationship. + + This game has been entirely developed by fans of the show, who were inspired + to bring to life the video game used to determine the winner of Pierce + Hawthorne's inheritance. + ''; + homepage = "http://www.reddit.com/r/hawkthorne"; + license = stdenv.lib.licenses.mit; + maintainers = with stdenv.lib.maintainers; [ campadrenalin ]; + }; +} diff --git a/pkgs/games/hawkthorne/makefile.patch b/pkgs/games/hawkthorne/makefile.patch new file mode 100644 index 00000000000..16a79683149 --- /dev/null +++ b/pkgs/games/hawkthorne/makefile.patch @@ -0,0 +1,33 @@ +diff --git a/Makefile b/Makefile +index 55eb817..f3406aa 100644 +--- a/Makefile ++++ b/Makefile +@@ -18,10 +18,14 @@ endif + + tilemaps := $(patsubst %.tmx,%.lua,$(wildcard src/maps/*.tmx)) + +-maps: $(tilemaps) +- + love: build/hawkthorne.love + ++shebang: build/hawkthorne.love ++ cat <(echo '#!/usr/bin/env love') build/hawkthorne.love > build/hawkthorne ++ chmod +x build/hawkthorne ++ ++maps: $(tilemaps) ++ + build/hawkthorne.love: $(tilemaps) src/* + mkdir -p build + cd src && zip --symlinks -q -r ../build/hawkthorne.love . -x ".*" \ +@@ -30,6 +34,12 @@ build/hawkthorne.love: $(tilemaps) src/* + run: $(tilemaps) $(LOVE) + $(LOVE) src + ++check: test ++ ++install: shebang ++ mkdir -p $(out)/bin ++ cp build/hawkthorne $(out)/bin ++ + src/maps/%.lua: src/maps/%.tmx bin/tmx2lua + bin/tmx2lua $< diff --git a/pkgs/games/openspades/default.nix b/pkgs/games/openspades/default.nix index 7f11fc82903..df987b3f856 100644 --- a/pkgs/games/openspades/default.nix +++ b/pkgs/games/openspades/default.nix @@ -19,6 +19,18 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DOPENSPADES_INSTALL_BINARY=bin" ]; + enableParallelBuilding = true; + + devPack = fetchurl { + url = "http://yvt.jp/files/programs/osppaks/DevPaks27.zip"; + sha256 = "05y7wldg70v5ys41fm0c8kipyspn524z4pglwr3p8h0gfz9n52v6"; + }; + + preBuild = '' + cp $devPack Resources/DevPaks27.zip + unzip -u -o Resources/DevPaks27.zip -d Resources/DevPak + ''; + # OpenAL is loaded dynamicly postInstall = if withOpenal then '' @@ -28,7 +40,7 @@ stdenv.mkDerivation rec { else null; meta = with stdenv.lib; { - description = "OpenSpades is a compatible client of Ace of Spades 0.75"; + description = "A compatible client of Ace of Spades 0.75"; homepage = "https://github.com/yvt/openspades/"; license = licenses.gpl3; platforms = platforms.linux; diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix index 1b6b7f26a41..ff96622cb59 100644 --- a/pkgs/games/openttd/default.nix +++ b/pkgs/games/openttd/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = ''OpenTTD is an open source clone of the Microprose game "Transport Tycoon Deluxe"''; + description = ''Open source clone of the Microprose game "Transport Tycoon Deluxe"''; longDescription = '' OpenTTD is a transportation economics simulator. In single player mode, players control a transportation business, and use rail, road, sea, and air diff --git a/pkgs/games/opentyrian/default.nix b/pkgs/games/opentyrian/default.nix index cfae6a4bb3e..c435bbe5887 100644 --- a/pkgs/games/opentyrian/default.nix +++ b/pkgs/games/opentyrian/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { "; meta = { - description = ''OpenTyrian is an open source port of the game "Tyrian".''; + description = ''Open source port of the game "Tyrian"''; homepage = https://opentyrian.googlecode.com/; # This does not account of Tyrian data. # license = stdenv.lib.licenses.gpl2; diff --git a/pkgs/games/quake3/game/default.nix b/pkgs/games/quake3/game/default.nix index 6a05ab7f2bd..596ba595d81 100644 --- a/pkgs/games/quake3/game/default.nix +++ b/pkgs/games/quake3/game/default.nix @@ -32,5 +32,7 @@ stdenv.mkDerivation { installTargets=copyfiles installFlags="COPYDIR=$out" ''; + + meta.broken = true; } diff --git a/pkgs/games/super-tux-kart/default.nix b/pkgs/games/super-tux-kart/default.nix index 29d3b4e4557..db42572de5e 100644 --- a/pkgs/games/super-tux-kart/default.nix +++ b/pkgs/games/super-tux-kart/default.nix @@ -1,18 +1,19 @@ { fetchurl, cmake, stdenv, plib, SDL, openal, freealut, mesa , libvorbis, libogg, gettext, libXxf86vm, curl, pkgconfig -, fribidi, autoconf, automake, libtool }: +, fribidi, autoconf, automake, libtool, bluez }: stdenv.mkDerivation rec { - name = "supertuxkart-0.8"; + version = "0.8.1"; + name = "supertuxkart-${version}"; src = fetchurl { url = "mirror://sourceforge/supertuxkart/${name}-src.tar.bz2"; - sha256 = "12sbml4wxg2x2wgnnkxfisj96a9gcsaj3fj27kdk8yj524ikv7xr"; + sha256 = "1mpqmi62a2kl6n58mw11fj0dr5xiwmjkqnfmd2z7ghdhc6p02lrk"; }; buildInputs = [ plib SDL openal freealut mesa libvorbis libogg gettext - libXxf86vm curl pkgconfig fribidi autoconf automake libtool cmake + libXxf86vm curl pkgconfig fribidi autoconf automake libtool cmake bluez ]; enableParallelBuilding = true; @@ -27,15 +28,13 @@ stdenv.mkDerivation rec { meta = { description = "SuperTuxKart is a Free 3D kart racing game"; - longDescription = '' SuperTuxKart is a Free 3D kart racing game, with many tracks, characters and items for you to try, similar in spirit to Mario Kart. ''; - homepage = http://supertuxkart.sourceforge.net/; - license = stdenv.lib.licenses.gpl2Plus; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; }; } diff --git a/pkgs/games/tcl2048/builder.sh b/pkgs/games/tcl2048/builder.sh new file mode 100644 index 00000000000..b34441cdc99 --- /dev/null +++ b/pkgs/games/tcl2048/builder.sh @@ -0,0 +1,5 @@ +source $stdenv/setup + +mkdir -p $out/bin +cp $src $out/bin/2048 +chmod +x $out/bin/2048 diff --git a/pkgs/games/tcl2048/default.nix b/pkgs/games/tcl2048/default.nix new file mode 100644 index 00000000000..01ffd27d5bb --- /dev/null +++ b/pkgs/games/tcl2048/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, tcl, tcllib }: + +stdenv.mkDerivation { + name = "tcl2048-0.2.6"; + + src = fetchurl { + url = https://raw.githubusercontent.com/dbohdan/2048-tcl/v0.2.6/2048.tcl; + sha256 = "481eac7cccc37d1122c3069da6186f584906bd27b86b8d4ae1a2d7e355c1b6b2"; + }; + + builder = ./builder.sh; + + meta = { + homepage = https://github.com/dbohdan/2048-tcl; + description = "The game of 2048 implemented in Tcl."; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/games/teeworlds/default.nix b/pkgs/games/teeworlds/default.nix index c685f11c4c1..5276ec4cc34 100644 --- a/pkgs/games/teeworlds/default.nix +++ b/pkgs/games/teeworlds/default.nix @@ -51,7 +51,7 @@ EOF ''; meta = { - description = "Teeworlds, a retro multiplayer shooter game"; + description = "Retro multiplayer shooter game"; longDescription = '' Teeworlds is a free online multiplayer game, available for all diff --git a/pkgs/games/xskat/default.nix b/pkgs/games/xskat/default.nix new file mode 100644 index 00000000000..bd41531d923 --- /dev/null +++ b/pkgs/games/xskat/default.nix @@ -0,0 +1,38 @@ +{stdenv, fetchurl, libX11, imake, gccmakedep}: + + +let + s = # Generated upstream information + rec { + baseName="xskat"; + version="4.0"; + name="${baseName}-${version}"; + + url="http://www.xskat.de/xskat-4.0.tar.gz"; + hash="8ba52797ccbd131dce69b96288f525b0d55dee5de4008733f7a5a51deb831c10"; + sha256="8ba52797ccbd131dce69b96288f525b0d55dee5de4008733f7a5a51deb831c10"; + }; + buildInputs = [ libX11 imake gccmakedep ]; +in + +stdenv.mkDerivation { + inherit (s) name version; + inherit buildInputs; + src = fetchurl { + inherit (s) url sha256; + }; + preInstall = '' + sed -i Makefile \ + -e "s|.* BINDIR .*| BINDIR = $out/bin|" \ + -e "s|.* MANPATH .*| MANPATH = $out/man|" + ''; + installTargets = "install install.man"; + meta = { + inherit (s) version; + description = ''Famous german card game''; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.free; + longDescription = ''Play the german card game Skat against the AI or over IRC.''; + homepage = http://www.xskat.de/; + }; +} diff --git a/pkgs/misc/emulators/dolphin-emu/default.nix b/pkgs/misc/emulators/dolphin-emu/default.nix new file mode 100644 index 00000000000..bf03e1e52aa --- /dev/null +++ b/pkgs/misc/emulators/dolphin-emu/default.nix @@ -0,0 +1,33 @@ +{ stdenv, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib +, gettext, libpthreadstubs, libXrandr, libXext, readline +, openal, libXdmcp, portaudio, SDL, wxGTK30, fetchurl +, pulseaudio ? null }: + +stdenv.mkDerivation rec { + name = "dolphin-emu-4.0.2"; + src = fetchurl { + url = https://github.com/dolphin-emu/dolphin/archive/4.0.2.tar.gz; + sha256 = "0a8ikcxdify9d7lqz8fn2axk2hq4q1nvbcsi1b8vb9z0mdrhzw89"; + }; + + cmakeFlags = '' + -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include + -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include + -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0 + -DCMAKE_BUILD_TYPE=Release + -DENABLE_LTO=True + ''; + + enableParallelBuilding = true; + + buildInputs = [ stdenv pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib + gettext libpthreadstubs libXrandr libXext readline openal + libXdmcp portaudio SDL wxGTK30 pulseaudio ]; + + meta = { + homepage = http://dolphin-emu.org/; + description = "Gamecube/Wii/Triforce emulator for x86_64 and ARM"; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ MP2E ]; + }; +} diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix new file mode 100644 index 00000000000..4823d41d1ac --- /dev/null +++ b/pkgs/misc/emulators/dolphin-emu/master.nix @@ -0,0 +1,34 @@ +{ stdenv, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib +, gettext, git, libpthreadstubs, libXrandr, libXext, readline +, openal, libXdmcp, portaudio, SDL, wxGTK30, fetchgit +, pulseaudio ? null }: + +stdenv.mkDerivation rec { + name = "dolphin-emu-20140902"; + src = fetchgit { + url = git://github.com/dolphin-emu/dolphin.git; + rev = "cc6db8cf26c1508ae382912bc25e64aaf12e0543"; + sha256 = "17pc4kk1v0p1llc12ifih02j2klfjz29qh8nhz5lapb0a1wr6lb3"; + }; + + cmakeFlags = '' + -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include + -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include + -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0 + -DCMAKE_BUILD_TYPE=Release + -DENABLE_LTO=True + ''; + + enableParallelBuilding = true; + + buildInputs = [ stdenv pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib + gettext libpthreadstubs libXrandr libXext readline openal + git libXdmcp portaudio SDL wxGTK30 pulseaudio ]; + + meta = { + homepage = http://dolphin-emu.org/; + description = "Gamecube/Wii/Triforce emulator for x86_64 and ARM"; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ MP2E ]; + }; +} diff --git a/pkgs/misc/emulators/emulationstation/default.nix b/pkgs/misc/emulators/emulationstation/default.nix new file mode 100644 index 00000000000..5767786e814 --- /dev/null +++ b/pkgs/misc/emulators/emulationstation/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, pkgconfig, cmake, boost, eigen, freeimage, freetype +, mesa, SDL, dejavu_fonts }: + +stdenv.mkDerivation rec { + name = "emulationstation-${version}"; + version = "1.0.2"; + src = fetchurl { + url = "https://github.com/Aloshi/EmulationStation/archive/v${version}.tar.gz"; + sha256 = "809d67aaa727809c1426fb543e36bb788ca6a3404f8c46dd1917088b57ab5f50"; + }; + + buildInputs = [ pkgconfig cmake boost eigen freeimage freetype mesa SDL ]; + + prePatch = '' + sed -i \ + -e 's,/usr\(.*\)/ttf-dejavu\(.*\),${dejavu_fonts}\1\2,' src/Font.cpp + ''; + + buildPhase = "cmake . && make"; + installPhase = '' + mkdir -p $out/bin + mv ../emulationstation $out/bin/. + ''; + + meta = { + description = "A flexible emulator front-end supporting keyboardless navigation and custom system themes"; + homepage = "http://emulationstation.org"; + maintainers = [ stdenv.lib.maintainers.edwtjo ]; + license = stdenv.lib.licenses.mit; + }; +} \ No newline at end of file diff --git a/pkgs/misc/emulators/higan/builder.sh b/pkgs/misc/emulators/higan/builder.sh new file mode 100644 index 00000000000..144c23d39de --- /dev/null +++ b/pkgs/misc/emulators/higan/builder.sh @@ -0,0 +1,20 @@ + +source $stdenv/setup + +unpackPhase +cd $sourceName +make phoenix=gtk profile=accuracy -C ananke +make phoenix=gtk profile=accuracy + +install -dm 755 $out/share/applications $out/share/pixmaps $out/share/higan/Video\ Shaders $out/bin $out/lib + +install -m 644 data/higan.desktop $out/share/applications/ +install -m 644 data/higan.png $out/share/pixmaps/ +cp -dr --no-preserve=ownership profile/* data/cheats.bml $out/share/higan/ +cp -dr --no-preserve=ownership shaders/*.shader $out/share/higan/Video\ Shaders/ + +install -m 755 out/higan $out/bin/higan +install -m 644 ananke/libananke.so $out/lib/libananke.so.1 +(cd $out/lib && ln -s libananke.so.1 libananke.so) +oldRPath=$(patchelf --print-rpath $out/bin/higan) +patchelf --set-rpath $oldRPath:$out/lib $out/bin/higan diff --git a/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix new file mode 100644 index 00000000000..aceb55b1396 --- /dev/null +++ b/pkgs/misc/emulators/higan/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchurl +, pkgconfig +, libX11, libXv +, udev +, mesa, gtk, SDL +, libao, openal, pulseaudio +}: + +stdenv.mkDerivation rec { + + name = "higan-${version}"; + version = "094"; + sourceName = "higan_v${version}-source"; + + src = fetchurl { + url = "http://byuu.org/files/${sourceName}.tar.xz"; + sha256 = "06qm271pzf3qf2labfw2lx6k0xcd89jndmn0jzmnc40cspwrs52y"; + curlOpts = "--user-agent 'Mozilla/5.0'"; # the good old user-agent trick... + }; + + buildInputs = with stdenv.lib; + [ pkgconfig libX11 libXv udev mesa gtk SDL libao openal pulseaudio ]; + + builder = ./builder.sh; + + meta = { + description = "An open-source, cycle-accurate Nintendo multi-system emulator"; + longDescription = '' + Higan (formerly bsnes) is a Nintendo multi-system emulator. + It currently supports the following systems: + Famicom; Super Famicom; + Game Boy; Game Boy Color; Game Boy Advance + higan also supports the following subsystems: + Super Game Boy; BS-X Satellaview; Sufami Turbo + ''; + homepage = http://byuu.org/higan/; + license = stdenv.lib.licenses.gpl3Plus; + maintainers = [ stdenv.lib.maintainers.AndersonTorres ]; + platforms = stdenv.lib.platforms.linux; + }; +} + +# +# TODO: +# - options to choose profiles (accuracy, balanced, performance) +# and different GUIs (gtk2, qt4) +# - fix the BML and BIOS paths - maybe a custom patch to Higan project? +# diff --git a/pkgs/misc/emulators/ppsspp/default.nix b/pkgs/misc/emulators/ppsspp/default.nix index ced8e1344da..4c49e1e3af2 100644 --- a/pkgs/misc/emulators/ppsspp/default.nix +++ b/pkgs/misc/emulators/ppsspp/default.nix @@ -3,15 +3,15 @@ }: let - version = "0.9.9"; + version = "0.9.9.1"; fstat = x: fn: "-D" + fn + "=" + (if x then "ON" else "OFF"); in stdenv.mkDerivation { name = "PPSSPP-${version}"; src = fetchgit { url = "https://github.com/hrydgard/ppsspp.git"; - sha256 = "1m7awac87wrwys22qwbr0589im1ilm0dv30wp945xg30793rivvj"; - rev = "b421e29391b34d997b2c99ce2bdc74a0df5bb472"; + sha256 = "0fdbda0b4dfbecacd01850f1767e980281fed4cc34a21df26ab3259242d8c352"; + rev = "bf709790c4fed9cd211f755acaa650ace0f7555a"; fetchSubmodules = true; }; @@ -19,7 +19,7 @@ in stdenv.mkDerivation { ++ (if withGamepads then [ SDL ] else [ ]); configurePhase = "cd Qt && qmake PPSSPPQt.pro"; - installPhase = "mkdir -p $out/bin && cp PPSSPPQt $out/bin"; + installPhase = "mkdir -p $out/bin && cp ppsspp $out/bin"; meta = with stdenv.lib; { homepage = "http://www.ppsspp.org/"; diff --git a/pkgs/misc/emulators/stella/default.nix b/pkgs/misc/emulators/stella/default.nix new file mode 100644 index 00000000000..3f10d7afb6e --- /dev/null +++ b/pkgs/misc/emulators/stella/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl +, pkgconfig, SDL2 +}: + +stdenv.mkDerivation rec { + + name = "stella-${version}"; + version = "4.0"; + + src = fetchurl { + url = "http://downloads.sourceforge.net/project/stella/stella/${version}/${name}-src.tar.gz"; + sha256 = "1j96sj2qflq3agb7fvb08ih3pxy8nsvlkwj40q3n00q9k884ad5w"; + }; + + buildInputs = with stdenv.lib; + [ pkgconfig SDL2 ]; + + meta = with stdenv.lib; { + description = "An open-source Atari 2600 VCS emulator"; + longDescription = '' + Stella is a multi-platform Atari 2600 VCS emulator released under + the GNU General Public License (GPL). Stella was originally + developed for Linux by Bradford W. Mott, and is currently + maintained by Stephen Anthony. + As of its 3.5 release, Stella is officialy donationware. + ''; + homepage = http://stella.sourceforge.net/; + license = licenses.gpl2; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/misc/emulators/wine/unstable.nix b/pkgs/misc/emulators/wine/unstable.nix index cd5c5a8b479..a7d52f2bca4 100644 --- a/pkgs/misc/emulators/wine/unstable.nix +++ b/pkgs/misc/emulators/wine/unstable.nix @@ -7,12 +7,12 @@ assert stdenv.isLinux; assert stdenv.gcc.gcc != null; let - version = "1.7.23"; + version = "1.7.25"; name = "wine-${version}"; src = fetchurl { url = "mirror://sourceforge/wine/${name}.tar.bz2"; - sha256 = "012ww1yifayakw9n2m23sx83dc3i2xiq3bn5n9iprppdhwxpp76v"; + sha256 = "0h7mijxv5nhn0nn5knr8arq9bl7chi3diaa668yyhjbxwn15xqzm"; }; gecko = fetchurl { diff --git a/pkgs/misc/emulators/wine/unstable.upstream b/pkgs/misc/emulators/wine/unstable.upstream index e3616df7680..fa78360c76a 100644 --- a/pkgs/misc/emulators/wine/unstable.upstream +++ b/pkgs/misc/emulators/wine/unstable.upstream @@ -1,5 +1,5 @@ url http://sourceforge.net/projects/wine/files/Source/ -attribute_name wine_unstable +attribute_name wineUnstable version_link '[.]tar[.][^./]+/download$' SF_redirect do_overwrite () { diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix index 275b93e01b8..b8c879d598b 100644 --- a/pkgs/misc/ghostscript/default.nix +++ b/pkgs/misc/ghostscript/default.nix @@ -12,7 +12,7 @@ assert cupsSupport -> cups != null; let meta_common = { homepage = "http://www.gnu.org/software/ghostscript/"; - description = "GNU Ghostscript, a PostScript interpreter"; + description = "PostScript interpreter (GNU version)"; longDescription = '' Ghostscript is the name of a set of tools that provides (i) an @@ -48,7 +48,7 @@ let }; meta = meta_common // { homepage = "http://www.ghostscript.com/"; - description = "GPL Ghostscript, a PostScript interpreter"; + description = "PostScript interpreter (mainline version)"; }; preConfigure = '' diff --git a/pkgs/misc/my-env/loadenv.sh b/pkgs/misc/my-env/loadenv.sh index 1aab4ac0208..2a990e8685c 100644 --- a/pkgs/misc/my-env/loadenv.sh +++ b/pkgs/misc/my-env/loadenv.sh @@ -2,6 +2,8 @@ OLDPATH="$PATH" OLDTZ="$TZ" +OLD_http_proxy="$http_proxy" +OLD_ftp_proxy="$http_proxy" source @myenvpath@ PATH="$PATH:$OLDPATH" @@ -10,6 +12,8 @@ export NIX_MYENV_NAME="@name@" export buildInputs export NIX_STRIP_DEBUG=0 export TZ="$OLDTZ" +export http_proxy="$OLD_http_proxy" +export ftp_proxy="$OLD_ftp_proxy" if test $# -gt 0; then exec "$@" diff --git a/pkgs/misc/screensavers/xscreensaver/default.nix b/pkgs/misc/screensavers/xscreensaver/default.nix index 04791749810..40fad768b16 100644 --- a/pkgs/misc/screensavers/xscreensaver/default.nix +++ b/pkgs/misc/screensavers/xscreensaver/default.nix @@ -41,5 +41,8 @@ stdenv.mkDerivation rec { description = "A set of screensavers"; maintainers = with stdenv.lib.maintainers; [ raskin urkud ]; platforms = with stdenv.lib.platforms; allBut cygwin; + inherit version; + downloadPage = "http://www.jwz.org/xscreensaver/download.html"; + updateWalker = true; }; } diff --git a/pkgs/misc/xosd/default.nix b/pkgs/misc/xosd/default.nix index d6b73ed16fe..54538be84b4 100644 --- a/pkgs/misc/xosd/default.nix +++ b/pkgs/misc/xosd/default.nix @@ -14,6 +14,6 @@ stdenv.mkDerivation rec { buildInputs = [ libX11 libXext libXt xextproto xproto ]; meta = { - description = "XOSD displays text on your screen"; + description = "Displays text on your screen"; }; } diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix index 92b97ffb592..52e5d95346e 100644 --- a/pkgs/os-specific/linux/conky/default.nix +++ b/pkgs/os-specific/linux/conky/default.nix @@ -67,7 +67,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://conky.sourceforge.net/; - description = "Conky is an advanced, highly configurable system monitor based on torsmo"; + description = "Advanced, highly configurable system monitor based on torsmo"; maintainers = [ stdenv.lib.maintainers.guibert ]; license = stdenv.lib.licenses.gpl3Plus; }; diff --git a/pkgs/os-specific/linux/conspy/default.nix b/pkgs/os-specific/linux/conspy/default.nix index d252d9ce162..78d403a3afc 100644 --- a/pkgs/os-specific/linux/conspy/default.nix +++ b/pkgs/os-specific/linux/conspy/default.nix @@ -3,11 +3,11 @@ let s = # Generated upstream information rec { baseName="conspy"; - version="1.9"; + version="1.10"; name="${baseName}-${version}"; - hash="1ndwdx8x5lnjl6cddy1d8g8m7ndxyj3wrs100w2bp9gnvbxbb8vv"; - url="http://ace-host.stuart.id.au/russell/files/conspy/conspy-1.9.tar.gz"; - sha256="1ndwdx8x5lnjl6cddy1d8g8m7ndxyj3wrs100w2bp9gnvbxbb8vv"; + hash="1vnph4xa1qp4sr52jc9zldmbdpkr6z5j7hk2vgyhfn7m1vc5g0qw"; + url="mirror://sourceforge/project/conspy/conspy-1.10-1/conspy-1.10.tar.gz"; + sha256="1vnph4xa1qp4sr52jc9zldmbdpkr6z5j7hk2vgyhfn7m1vc5g0qw"; }; buildInputs = [ autoconf automake ncurses diff --git a/pkgs/os-specific/linux/conspy/default.upstream b/pkgs/os-specific/linux/conspy/default.upstream index db0c0fd9680..3eeacf34694 100644 --- a/pkgs/os-specific/linux/conspy/default.upstream +++ b/pkgs/os-specific/linux/conspy/default.upstream @@ -1 +1,5 @@ -url http://ace-host.stuart.id.au/russell/files/conspy/ +url http://sourceforge.net/projects/conspy/files/ +version_link 'conspy-[-0-9.]+/$' +version_link '[-0-9.]+[.]tar[.][a-z0-9]+/download$' +SF_redirect +version '.*-([-0-9.]+)[.]tar[.].*' '\1' diff --git a/pkgs/os-specific/linux/dmraid/default.nix b/pkgs/os-specific/linux/dmraid/default.nix index 35efa8533ab..ec4621e6957 100644 --- a/pkgs/os-specific/linux/dmraid/default.nix +++ b/pkgs/os-specific/linux/dmraid/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, devicemapper }: stdenv.mkDerivation rec { - name = "dmraid-1.0.0.rc15"; + name = "dmraid-1.0.0.rc16"; src = fetchurl { url = "http://people.redhat.com/~heinzm/sw/dmraid/src/old/${name}.tar.bz2"; - sha256 = "01bcaq0sc329ghgj7f182xws7jgjpdc41bvris8fsiprnxc7511h"; + sha256 = "0m92971gyqp61darxbiri6a48jz3wq3gkp8r2k39320z0i6w8jgq"; }; preConfigure = "cd */"; diff --git a/pkgs/os-specific/linux/ffado/default.nix b/pkgs/os-specific/linux/ffado/default.nix index e024a608a0b..70c13be9ab4 100644 --- a/pkgs/os-specific/linux/ffado/default.nix +++ b/pkgs/os-specific/linux/ffado/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { name = "libffado-${version}"; - version = "2.1.0"; + version = "2.2.1"; src = fetchurl { url = "http://www.ffado.org/files/${name}.tgz"; - sha256 = "11cxmy31c19720j2171l735rpg7l8i41icsgqscfd2vkbscfmh6y"; + sha256 = "1ximic90l0av91njb123ra2zp6mg23yg5iz8xa5371cqrn79nacz"; }; buildInputs = @@ -19,6 +19,17 @@ stdenv.mkDerivation rec { patches = [ ./enable-mixer-and-dbus.patch ]; + # SConstruct checks cpuinfo and an objdump of /bin/mount to determine the appropriate arch + # Let's just skip this and tell it which to build + postPatch = if stdenv.isi686 then '' + sed '/def is_userspace_32bit(cpuinfo):/a\ + return True' -i SConstruct + '' + else '' + sed '/def is_userspace_32bit(cpuinfo):/a\ + return False' -i SConstruct + ''; + # TODO fix ffado-diag, it doesn't seem to use PYPKGDIR buildPhase = '' export PYLIBSUFFIX=lib/${python.libPrefix}/site-packages diff --git a/pkgs/os-specific/linux/firejail/default.nix b/pkgs/os-specific/linux/firejail/default.nix index c1fa2c26205..d7f3d293c48 100644 --- a/pkgs/os-specific/linux/firejail/default.nix +++ b/pkgs/os-specific/linux/firejail/default.nix @@ -3,11 +3,11 @@ let s = # Generated upstream information rec { baseName="firejail"; - version="0.9.8.1"; + version="0.9.10"; name="${baseName}-${version}"; - hash="0wjanz42k301zdwv06ylnzqrabxy424j0k9dh4i4aqhvihvxr83x"; - url="mirror://sourceforge/project/firejail/firejail/firejail-0.9.8.1.tar.bz2"; - sha256="0wjanz42k301zdwv06ylnzqrabxy424j0k9dh4i4aqhvihvxr83x"; + hash="0pjzs77r86nnhddpfm39f0a4lrzahq0cwi8d2wsg35gxvb19w1jg"; + url="mirror://sourceforge/project/firejail/firejail/firejail-0.9.10.tar.bz2"; + sha256="0pjzs77r86nnhddpfm39f0a4lrzahq0cwi8d2wsg35gxvb19w1jg"; }; buildInputs = [ ]; diff --git a/pkgs/os-specific/linux/kernel/3.17-buildfix.patch b/pkgs/os-specific/linux/kernel/3.17-buildfix.patch new file mode 100644 index 00000000000..234f0ac749f --- /dev/null +++ b/pkgs/os-specific/linux/kernel/3.17-buildfix.patch @@ -0,0 +1,62 @@ +From Shea Levy <> +Subject [PATCH 1/1] usb: gadget: Remove use of PWD in Makefiles +Date Thu, 28 Aug 2014 01:30:46 -0400 + +Using PWD breaks out-of-tree builds in certain circumstances [1], and +other kernel Makefiles use relative paths just fine. + +[1]: https://bugzilla.kernel.org/show_bug.cgi?id=83251 + +Signed-off-by: Shea Levy +--- + drivers/usb/gadget/Makefile | 2 +- + drivers/usb/gadget/function/Makefile | 4 ++-- + drivers/usb/gadget/legacy/Makefile | 6 +++--- + 3 files changed, 6 insertions(+), 6 deletions(-) +diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile +index a186afe..9add915 100644 +--- a/drivers/usb/gadget/Makefile ++++ b/drivers/usb/gadget/Makefile +@@ -3,7 +3,7 @@ + # + subdir-ccflags-$(CONFIG_USB_GADGET_DEBUG) := -DDEBUG + subdir-ccflags-$(CONFIG_USB_GADGET_VERBOSE) += -DVERBOSE_DEBUG +-ccflags-y += -I$(PWD)/drivers/usb/gadget/udc ++ccflags-y += -Idrivers/usb/gadget/udc + + obj-$(CONFIG_USB_LIBCOMPOSITE) += libcomposite.o + libcomposite-y := usbstring.o config.o epautoconf.o +diff --git a/drivers/usb/gadget/function/Makefile b/drivers/usb/gadget/function/Makefile +index 6d91f21..83ae106 100644 +--- a/drivers/usb/gadget/function/Makefile ++++ b/drivers/usb/gadget/function/Makefile +@@ -2,8 +2,8 @@ + # USB peripheral controller drivers + # + +-ccflags-y := -I$(PWD)/drivers/usb/gadget/ +-ccflags-y += -I$(PWD)/drivers/usb/gadget/udc/ ++ccflags-y := -Idrivers/usb/gadget/ ++ccflags-y += -Idrivers/usb/gadget/udc/ + + # USB Functions + usb_f_acm-y := f_acm.o +diff --git a/drivers/usb/gadget/legacy/Makefile b/drivers/usb/gadget/legacy/Makefile +index a11aad5..edba2d1 100644 +--- a/drivers/usb/gadget/legacy/Makefile ++++ b/drivers/usb/gadget/legacy/Makefile +@@ -2,9 +2,9 @@ + # USB gadget drivers + # + +-ccflags-y := -I$(PWD)/drivers/usb/gadget/ +-ccflags-y += -I$(PWD)/drivers/usb/gadget/udc/ +-ccflags-y += -I$(PWD)/drivers/usb/gadget/function/ ++ccflags-y := -Idrivers/usb/gadget/ ++ccflags-y += -Idrivers/usb/gadget/udc/ ++ccflags-y += -Idrivers/usb/gadget/function/ + + g_zero-y := zero.o + g_audio-y := audio.o +-- +2.1.0 \ No newline at end of file diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 7a6ba94eb9f..d5c754eebc7 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -337,6 +337,8 @@ with stdenv.lib; ZSMALLOC y ''} ZRAM m + + ${optionalString (versionAtLeast version "3.17") "NFC? n"} ${kernelPlatform.kernelExtraConfig or ""} ${extraConfig} diff --git a/pkgs/os-specific/linux/kernel/linux-3.12.nix b/pkgs/os-specific/linux/kernel/linux-3.12.nix index 291e43a98e5..c67c531667a 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.12.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.12.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, ... } @ args: import ./generic.nix (args // rec { - version = "3.12.26"; + version = "3.12.27"; extraMeta.branch = "3.12"; src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "1gp6brk2ix30g8dznd5yv1fq7yx82295va6cn7lwv6jj9w287s6c"; + sha256 = "0c8psz9k6k413b48dphclqs6wkh9wiwf5nslykg27afdqd6v4ycc"; }; features.iwlwifi = true; diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix index f44f3d32792..ebbdd79ba16 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing.nix @@ -1,16 +1,17 @@ { stdenv, fetchurl, ... } @ args: import ./generic.nix (args // rec { - # Reason to add: RTL8192EE - version = "3.16-rc3"; - modDirVersion = "3.16.0-rc3"; - extraMeta.branch = "3.16"; + version = "3.17-rc2"; + modDirVersion = "3.17.0-rc2"; + extraMeta.branch = "3.17"; src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/testing/linux-${version}.tar.xz"; - sha256 = "17jgv1hnx2im68f8721x11yfg8mpas7lsxg0j00qxv2fc6km2glm"; + sha256 = "094r4kqp7bj1wcdfsgdmv73law4zb7d0sd8lw82v3rz944mlm9y3"; }; + kernelPatches = args.kernelPatches ++ [ { name = "3.17-buildfix.patch"; patch = ./3.17-buildfix.patch; } ]; + features.iwlwifi = true; features.efiBootStub = true; features.needsCifsUtils = true; diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index cfe006fbe4b..c91b8ddfb44 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -60,17 +60,17 @@ rec { }; grsecurity_stable = grsecPatch - { kversion = "3.14.10"; - revision = "201407012152"; + { kversion = "3.14.17"; + revision = "201408260041"; branch = "stable"; - sha256 = "1119044lzkr9wpr1gpl1g0bz67c2xpdd9bkddllij7ja24jv8sx1"; + sha256 = "1brcfxbdd5f29vci3bj2dk3878z24ncrjw268j4i1n8ms65jqda0"; }; grsecurity_unstable = grsecPatch - { kversion = "3.15.3"; - revision = "201407012153"; + { kversion = "3.15.10"; + revision = "201408212335"; branch = "test"; - sha256 = "0bccayakprc77530crxfr9v2hbs6hlcf290pj1ywlh1p861ljgbm"; + sha256 = "0ynnci7jms5a1acn8cpdw4w2j4jz5xai1da5w1l5r65909kwmx0k"; }; grsec_fix_path = diff --git a/pkgs/os-specific/linux/libaio/default.nix b/pkgs/os-specific/linux/libaio/default.nix index bf30530e9ad..b3df129912e 100644 --- a/pkgs/os-specific/linux/libaio/default.nix +++ b/pkgs/os-specific/linux/libaio/default.nix @@ -1,12 +1,12 @@ -{ stdenv, fetchgit }: +{ stdenv, fetchurl }: stdenv.mkDerivation rec { - name = "libaio-0.3.109"; + version = "0.3.110"; + name = "libaio-${version}"; - src = fetchgit { - url = https://git.fedorahosted.org/git/libaio.git; - rev = "refs/tags/${name}"; - sha256 = "1wbziq0hqvnbckpxrz1cgr8dlw3mifs4xpy3qhnagbrrsmrq2rhi"; + src = fetchurl { + url = "https://fedorahosted.org/releases/l/i/libaio/${name}.tar.gz"; + sha256 = "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0"; }; makeFlags = "prefix=$(out)"; @@ -15,5 +15,7 @@ stdenv.mkDerivation rec { description = "Library for asynchronous I/O in Linux"; homepage = http://lse.sourceforge.net/io/aio.html; platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.lgpl21; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; }; } diff --git a/pkgs/os-specific/linux/lttng-modules/default.nix b/pkgs/os-specific/linux/lttng-modules/default.nix index 8e20bf1e3d3..4794cd8f96c 100644 --- a/pkgs/os-specific/linux/lttng-modules/default.nix +++ b/pkgs/os-specific/linux/lttng-modules/default.nix @@ -26,6 +26,7 @@ stdenv.mkDerivation rec { # TODO license = with licenses; [ lgpl21 gpl2 mit ]; platforms = platforms.linux; maintainers = [ maintainers.bjornfor ]; + broken = true; }; } diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix index 9e2b0c90079..ee6165bfc9a 100644 --- a/pkgs/os-specific/linux/lvm2/default.nix +++ b/pkgs/os-specific/linux/lvm2/default.nix @@ -1,19 +1,21 @@ -{ stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils }: +{ stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils, enable_dmeventd ? false }: let - v = "2.02.106"; + version = "2.02.110"; in stdenv.mkDerivation { - name = "lvm2-${v}"; + name = "lvm2-${version}"; src = fetchurl { - url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${v}.tgz"; - sha256 = "0nr833bl0q4zq52drjxmmpf7bs6kqxwa5kahwwxm9411khkxz0vc"; + url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${version}.tgz"; + sha256 = "04fdzvv5431d1i4p701zkm9kc50087q56k7l2l5l5f3i9ah1mb9x"; }; configureFlags = - "--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib"; + "--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib --enable-cmdlib" + + (stdenv.lib.optionalString enable_dmeventd " --enable-dmeventd") + ; buildInputs = [ pkgconfig udev ]; @@ -54,5 +56,8 @@ stdenv.mkDerivation { homepage = http://sourceware.org/lvm2/; descriptions = "Tools to support Logical Volume Management (LVM) on Linux"; platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [raskin]; + inherit version; + downloadPage = "ftp://sources.redhat.com/pub/lvm2/"; }; } diff --git a/pkgs/os-specific/linux/lvm2/default.upstream b/pkgs/os-specific/linux/lvm2/default.upstream new file mode 100644 index 00000000000..1e5aaf5ab5c --- /dev/null +++ b/pkgs/os-specific/linux/lvm2/default.upstream @@ -0,0 +1,4 @@ +url ftp://sources.redhat.com/pub/lvm2/ +version_link '[.]tgz$' +version '.*[^0-9.][^.]*[.]([0-9.]+)[.].*' '\1' +do_overwrite () { do_overwrite_just_version; } diff --git a/pkgs/os-specific/linux/nftables/default.nix b/pkgs/os-specific/linux/nftables/default.nix new file mode 100644 index 00000000000..e8dd56ab9e2 --- /dev/null +++ b/pkgs/os-specific/linux/nftables/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, docbook2x, docbook_xml_dtd_45 +, flex, bison, libmnl, libnftnl, gmp, readline }: + +stdenv.mkDerivation rec { + name = "nftables-0.3"; + + src = fetchurl { + url = "http://netfilter.org/projects/nftables/files/${name}.tar.bz2"; + sha256 = "0bww48hc424svxfx3fpqxmbmp0n42ahs1f28f5f6g29d8i2jcdsd"; + }; + + configureFlags = [ + "CONFIG_MAN=y" + "DB2MAN=docbook2man" + ]; + + XML_CATALOG_FILES = "${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml"; + + buildInputs = [ docbook2x flex bison libmnl libnftnl gmp readline ]; + + meta = with stdenv.lib; { + description = "the project that aims to replace the existing {ip,ip6,arp,eb}tables framework"; + homepage = http://netfilter.org/projects/nftables; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ wkennington ]; + }; +} diff --git a/pkgs/os-specific/linux/openvswitch/default.nix b/pkgs/os-specific/linux/openvswitch/default.nix new file mode 100644 index 00000000000..2e25c0383b7 --- /dev/null +++ b/pkgs/os-specific/linux/openvswitch/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchurl, openssl, python27, iproute, perl, kernel ? null}: +let + + version = "2.1.2"; + + skipKernelMod = kernel == null; + +in +stdenv.mkDerivation { + version = "2.1.2"; + name = "openvswitch-${version}"; + src = fetchurl { + url = "http://openvswitch.org/releases/openvswitch-2.1.2.tar.gz"; + sha256 = "16q7faqrj2pfchhn0x5s9ggi5ckcg9n62f6bnqaih064aaq2jm47"; + }; + kernel = if skipKernelMod then null else kernel.dev; + buildInputs = [ + openssl + python27 + perl + ]; + configureFlags = [ + "--localstatedir=/var" + "--sharedstatedir=/var" + "--sbindir=$(out)/bin" + ] ++ (if skipKernelMod then [] else ["--with-linux"]); + # Leave /var out of this! + installFlags = [ + "LOGDIR=$(TMPDIR)/dummy" + "RUNDIR=$(TMPDIR)/dummy" + "PKIDIR=$(TMPDIR)/dummy" + ]; + meta = { + platforms = stdenv.lib.platforms.linux; + description = "A multilayer virtual switch"; + longDescription = + '' + Open vSwitch is a production quality, multilayer virtual switch + licensed under the open source Apache 2.0 license. It is + designed to enable massive network automation through + programmatic extension, while still supporting standard + management interfaces and protocols (e.g. NetFlow, sFlow, SPAN, + RSPAN, CLI, LACP, 802.1ag). In addition, it is designed to + support distribution across multiple physical servers similar + to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V. + ''; + homepage = "http://openvswitch.org/"; + licence = "Apache 2.0"; + }; +} diff --git a/pkgs/os-specific/linux/s6-linux-utils/default.nix b/pkgs/os-specific/linux/s6-linux-utils/default.nix new file mode 100644 index 00000000000..0f0967079df --- /dev/null +++ b/pkgs/os-specific/linux/s6-linux-utils/default.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchurl, skalibs }: + +let + + version = "1.0.3.1"; + +in stdenv.mkDerivation rec { + + name = "s6-linux-utils-${version}"; + + src = fetchurl { + url = "http://www.skarnet.org/software/s6-linux-utils/${name}.tar.gz"; + sha256 = "1s17g03z5hfpiz32g001g5wyamyvn9l36fr2csk3k7r0jkqfnl0d"; + }; + + buildInputs = [ skalibs ]; + + sourceRoot = "admin/${name}"; + + configurePhase = '' + pushd conf-compile + + printf "$out/bin" > conf-install-command + printf "$out/include" > conf-install-include + printf "$out/lib" > conf-install-library + printf "$out/lib" > conf-install-library.so + + # let nix builder strip things, cross-platform + truncate --size 0 conf-stripbins + truncate --size 0 conf-striplibs + + printf "${skalibs}/sysdeps" > import + printf "%s" "${skalibs}/include" > path-include + printf "%s" "${skalibs}/lib" > path-library + + rm -f flag-slashpackage + touch flag-allstatic + + popd + ''; + + preBuild = '' + patchShebangs src/sys + ''; + + meta = { + homepage = http://www.skarnet.org/software/s6-linux-utils/; + description = "A set of minimalistic Linux-specific system utilities."; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.isc; + }; + +} diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix index b52801cacff..f928dc8e657 100644 --- a/pkgs/os-specific/linux/shadow/default.nix +++ b/pkgs/os-specific/linux/shadow/default.nix @@ -15,11 +15,11 @@ let in stdenv.mkDerivation rec { - name = "shadow-4.1.5.1"; + name = "shadow-4.2.1"; src = fetchurl { - url = "http://pkg-shadow.alioth.debian.org/releases/${name}.tar.bz2"; - sha256 = "1yvqx57vzih0jdy3grir8vfbkxp0cl0myql37bnmi2yn90vk6cma"; + url = "http://pkg-shadow.alioth.debian.org/releases/${name}.tar.xz"; + sha256 = "0h9x1zdbq0pqmygmc1x459jraiqw4gqz8849v268crk78z8r621v"; }; buildInputs = stdenv.lib.optional (pam != null && stdenv.isLinux) pam; diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix index d5e2ed3ff94..80677a52a32 100644 --- a/pkgs/os-specific/linux/sysdig/default.nix +++ b/pkgs/os-specific/linux/sysdig/default.nix @@ -3,14 +3,14 @@ let inherit (stdenv.lib) optional optionalString; s = rec { baseName="sysdig"; - version="0.1.87"; + version = "0.1.88"; name="${baseName}-${version}"; url="https://github.com/draios/sysdig/archive/${version}.tar.gz"; - sha256="0xfildaj8kzbngpza47zqm363i6q87m97a18qlmdisrxmz11s32b"; + sha256 = "1a4ij3qpk1h7xnyhic6p21jp46p9lpnagfl46ky46snflld4bz96"; }; buildInputs = [ cmake zlib luajit - ] ++ optional (kernel != null) kernel; + ]; in stdenv.mkDerivation { inherit (s) name version; @@ -30,6 +30,10 @@ stdenv.mkDerivation { ''; postInstall = optionalString (kernel != null) '' make install_driver + kernel_dev=${kernel.dev} + kernel_dev=''${kernel_dev#/nix/store/} + kernel_dev=''${kernel_dev%%-linux*dev*} + sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko ''; meta = with stdenv.lib; { diff --git a/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/pkgs/os-specific/linux/xf86-input-wacom/default.nix index d4786037b5a..962aca77753 100644 --- a/pkgs/os-specific/linux/xf86-input-wacom/default.nix +++ b/pkgs/os-specific/linux/xf86-input-wacom/default.nix @@ -3,11 +3,11 @@ , ncurses, pkgconfig, randrproto, xorgserver, xproto, udev, libXinerama, pixman }: stdenv.mkDerivation rec { - name = "xf86-input-wacom-0.25.0"; + name = "xf86-input-wacom-0.25.99.1"; src = fetchurl { url = "mirror://sourceforge/linuxwacom/${name}.tar.bz2"; - sha256 = "06kwcxmgja0xwc5glzwmxm237bsv9fk52k2d6ffq4naqfzn2k31k"; + sha256 = "0vjl4m1w6j5j9yr2kw6f66n723ghq5jwxivbdjmacjw6r3ml4l9r"; }; buildInputs = [ inputproto libX11 libXext libXi libXrandr libXrender diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix index 09b091b323c..b5f9195abbd 100644 --- a/pkgs/servers/amqp/rabbitmq-server/default.nix +++ b/pkgs/servers/amqp/rabbitmq-server/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { name = "rabbitmq-server-${version}"; - version = "3.3.4"; + version = "3.3.5"; src = fetchurl { url = "http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/${name}.tar.gz"; - sha256 = "13nnsn34b44mz8w4b69bcpxmq4daqnxzd0lppg0f138pcssha43l"; + sha256 = "1hkhkpv2f0nzvw09zfrqg89mphdpn4nwvzrlqnhqf82bd2pzhsvs"; }; buildInputs = diff --git a/pkgs/servers/dico/default.nix b/pkgs/servers/dico/default.nix index ca4980f5a6c..f345fe71a34 100644 --- a/pkgs/servers/dico/default.nix +++ b/pkgs/servers/dico/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "GNU Dico, a flexible dictionary server and client implementing RFC 2229"; + description = "Flexible dictionary server and client implementing RFC 2229"; homepage = http://www.gnu.org/software/dico/; license = "GPLv3+"; maintainers = with maintainers; [ lovek323 ]; diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix index 921d8e907f1..50e71a74546 100644 --- a/pkgs/servers/dns/bind/default.nix +++ b/pkgs/servers/dns/bind/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://www.isc.org/software/bind"; - description = "ISC BIND: a domain name server"; + description = "Domain name server"; license = stdenv.lib.licenses.isc; maintainers = with stdenv.lib.maintainers; [viric simons]; diff --git a/pkgs/servers/felix/default.nix b/pkgs/servers/felix/default.nix index aa40365e8de..c1114232ea8 100644 --- a/pkgs/servers/felix/default.nix +++ b/pkgs/servers/felix/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation { cp -av * $out ''; meta = { - description = "Apache Felix OSGi gateway"; + description = "An OSGi gateway"; homepage = http://felix.apache.org; license = "ASF"; maintainers = [ stdenv.lib.maintainers.sander ]; diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix index 365af29595c..3e778317169 100644 --- a/pkgs/servers/firebird/default.nix +++ b/pkgs/servers/firebird/default.nix @@ -79,7 +79,7 @@ stdenv.mkDerivation rec { installPhase = ''cp -r gen/firebird $out''; meta = { - description = "firebird database engine"; + description = "SQL relational database management system"; homepage = http://www.firebirdnews.org; license = ["IDPL" "Interbase-1.0"]; maintainers = [stdenv.lib.maintainers.marcweber]; diff --git a/pkgs/servers/http/couchdb/default.nix b/pkgs/servers/http/couchdb/default.nix index 35d4ebbf89f..0b5244a5974 100644 --- a/pkgs/servers/http/couchdb/default.nix +++ b/pkgs/servers/http/couchdb/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Apache CouchDB is a database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API"; + description = "A database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API"; homepage = "http://couchdb.apache.org"; license = stdenv.lib.licenses.asl20; maintainers = with stdenv.lib.maintainers; [ viric garbas ]; diff --git a/pkgs/servers/http/jboss/default.nix b/pkgs/servers/http/jboss/default.nix index d5768da4c82..86d37189887 100644 --- a/pkgs/servers/http/jboss/default.nix +++ b/pkgs/servers/http/jboss/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { meta = { homepage = "http://www.jboss.org/"; - description = "JBoss, Open Source J2EE application server"; + description = "Open Source J2EE application server"; license = "GPL/LGPL"; maintainers = [ lib.maintainers.sander ]; }; diff --git a/pkgs/servers/http/tomcat/6.0.nix b/pkgs/servers/http/tomcat/6.0.nix index ee0049ce08f..19f20cc8823 100644 --- a/pkgs/servers/http/tomcat/6.0.nix +++ b/pkgs/servers/http/tomcat/6.0.nix @@ -1,23 +1,6 @@ -{ stdenv, fetchurl }: - -let version = "6.0.39"; in - -stdenv.mkDerivation rec { - name = "apache-tomcat-${version}"; - - src = fetchurl { - url = "mirror://apache/tomcat/tomcat-6/v${version}/bin/${name}.tar.gz"; +import ./recent.nix + { + versionMajor = "6"; + versionMinor = "0.39"; sha256 = "19qix6affhc252n03smjf482drg3nxd27shni1gvhphgj3zfmgfy"; - }; - - installPhase = - '' - mkdir $out - mv * $out - ''; - - meta = { - homepage = http://tomcat.apache.org/; - description = "An implementation of the Java Servlet and JavaServer Pages technologies"; - }; -} + } diff --git a/pkgs/servers/http/tomcat/7.0.nix b/pkgs/servers/http/tomcat/7.0.nix new file mode 100644 index 00000000000..87bc57eb2b6 --- /dev/null +++ b/pkgs/servers/http/tomcat/7.0.nix @@ -0,0 +1,6 @@ +import ./recent.nix + { + versionMajor = "7"; + versionMinor = "0.55"; + sha256 = "c20934fda63bc7311e2d8e067d67f886890c8be72280425c5f6f8fdd7a376c15"; + } diff --git a/pkgs/servers/http/tomcat/8.0.nix b/pkgs/servers/http/tomcat/8.0.nix new file mode 100644 index 00000000000..63b8d2bbc94 --- /dev/null +++ b/pkgs/servers/http/tomcat/8.0.nix @@ -0,0 +1,6 @@ +import ./recent.nix + { + versionMajor = "8"; + versionMinor = "0.9"; + sha256 = "5ea3c8260088ee4fd223a532a4b0c23a10e549c34705e2f190279a1a7f1f83d9"; + } diff --git a/pkgs/servers/http/tomcat/recent.nix b/pkgs/servers/http/tomcat/recent.nix new file mode 100644 index 00000000000..0d11ba7a104 --- /dev/null +++ b/pkgs/servers/http/tomcat/recent.nix @@ -0,0 +1,24 @@ +{ versionMajor, versionMinor, sha256 }: +{ stdenv, fetchurl }: + +let version = "${versionMajor}.${versionMinor}"; in + +stdenv.mkDerivation rec { + name = "apache-tomcat-${version}"; + + src = fetchurl { + url = "mirror://apache/tomcat/tomcat-${versionMajor}/v${version}/bin/${name}.tar.gz"; + inherit sha256; + }; + + installPhase = + '' + mkdir $out + mv * $out + ''; + + meta = { + homepage = http://tomcat.apache.org/; + description = "An implementation of the Java Servlet and JavaServer Pages technologies"; + }; +} diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix index 245c838607f..0ce58e64015 100644 --- a/pkgs/servers/monitoring/munin/default.nix +++ b/pkgs/servers/monitoring/munin/default.nix @@ -105,7 +105,7 @@ stdenv.mkDerivation rec { *.jar) continue;; esac wrapProgram "$file" \ - --set PERL5LIB "$out/lib/perl5/site_perl:${with perlPackages; stdenv.lib.makePerlPath [ + --set PERL5LIB "$out/lib/perl5/site_perl:${rrdtool}/lib/perl:${with perlPackages; stdenv.lib.makePerlPath [ Log4Perl IOSocketInet6 Socket6 URI DBFile DateManip HTMLTemplate FileCopyRecursive FCGI NetSNMP NetServer ListMoreUtils TimeHiRes DBDPg LWPUserAgent diff --git a/pkgs/servers/nosql/influxdb/default.nix b/pkgs/servers/nosql/influxdb/default.nix index 77852b6d2ed..6c6fb213cb8 100644 --- a/pkgs/servers/nosql/influxdb/default.nix +++ b/pkgs/servers/nosql/influxdb/default.nix @@ -1,5 +1,7 @@ { stdenv, fetchurl, makeWrapper }: +assert stdenv.isLinux; + stdenv.mkDerivation rec { name = "influxdb-${version}"; version = "0.7.0"; diff --git a/pkgs/servers/nosql/mongodb/default.nix b/pkgs/servers/nosql/mongodb/default.nix index aa9da965d17..40c255d5921 100644 --- a/pkgs/servers/nosql/mongodb/default.nix +++ b/pkgs/servers/nosql/mongodb/default.nix @@ -1,24 +1,25 @@ { stdenv, fetchurl, scons, boost, gperftools, pcre, snappy }: -let version = "2.6.0"; +with stdenv.lib; + +let version = "2.6.4"; system-libraries = [ - "tcmalloc" "pcre" "boost" "snappy" # "v8" -- mongo still bundles 3.12 and does not work with 3.15+ # "stemmer" -- not nice to package yet (no versioning, no makefile, no shared libs) # "yaml" -- it seems nixpkgs' yamlcpp (0.5.1) is problematic for mongo - ]; - system-lib-args = stdenv.lib.concatStringsSep " " - (map (lib: "--use-system-${lib}") system-libraries); + ] ++ optionals (!stdenv.isDarwin) [ "tcmalloc" ]; + system-lib-args = concatStringsSep " " + (map (lib: "--use-system-${lib}") system-libraries); in stdenv.mkDerivation rec { name = "mongodb-${version}"; src = fetchurl { url = "http://downloads.mongodb.org/src/mongodb-src-r${version}.tar.gz"; - sha256 = "066kppjdmdpadjr09ildla3aw42anzsc9pa55iwp3wa4rgqd2i33"; + sha256 = "1h4rrgcb95234ryjma3fjg50qsm1bnxjx5ib0c3p9nzmc2ji2m07"; }; nativeBuildInputs = [ scons boost gperftools pcre snappy ]; @@ -40,9 +41,9 @@ in stdenv.mkDerivation rec { meta = { description = "a scalable, high-performance, open source NoSQL database"; homepage = http://www.mongodb.org; - license = stdenv.lib.licenses.agpl3; + license = licenses.agpl3; - maintainers = [ stdenv.lib.maintainers.bluescreen303 ]; - platforms = stdenv.lib.platforms.linux; + maintainers = with maintainers; [ bluescreen303 offline ]; + platforms = platforms.unix; }; } diff --git a/pkgs/servers/pies/default.nix b/pkgs/servers/pies/default.nix index 958578138bc..56c7da5caed 100644 --- a/pkgs/servers/pies/default.nix +++ b/pkgs/servers/pies/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU Pies, a program invocation and execution supervisor"; + description = "A program invocation and execution supervisor"; longDescription = '' The name Pies (pronounced "p-yes") stands for Program Invocation and diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix index 2c6f6c10493..a918007b47c 100644 --- a/pkgs/servers/pulseaudio/default.nix +++ b/pkgs/servers/pulseaudio/default.nix @@ -64,7 +64,7 @@ stdenv.mkDerivation rec { installFlags = "sysconfdir=$(out)/etc pulseconfdir=$(out)/etc/pulse"; meta = with stdenv.lib; { - description = "PulseAudio, a sound server for POSIX and Win32 systems"; + description = "Sound server for POSIX and Win32 systems"; homepage = http://www.pulseaudio.org/; # Note: Practically, the server is under the GPL due to the # dependency on `libsamplerate'. See `LICENSE' for details. diff --git a/pkgs/servers/shishi/default.nix b/pkgs/servers/shishi/default.nix index 2e0a4e84f6c..a41915e5be8 100644 --- a/pkgs/servers/shishi/default.nix +++ b/pkgs/servers/shishi/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU Shishi, free implementation of the Kerberos 5 network security system"; + description = "An implementation of the Kerberos 5 network security system"; homepage = http://www.gnu.org/software/shishi/; license = stdenv.lib.licenses.gpl3Plus; maintainers = with stdenv.lib.maintainers; [ bjg lovek323 ]; diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix index bb0c0bc8da8..0efdd542fa4 100644 --- a/pkgs/servers/sql/mariadb/default.nix +++ b/pkgs/servers/sql/mariadb/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, ncurses, openssl, bison, boost, libxml2, libaio, judy, libevent, groff }: +{ stdenv, fetchurl, cmake, ncurses, openssl, bison, boost, libxml2, libaio, judy, libevent, groff, perl, fixDarwinDylibNames }: stdenv.mkDerivation rec { name = "mariadb-${version}"; @@ -9,12 +9,25 @@ stdenv.mkDerivation rec { sha256 = "039wz89vs03a27anpshj5xaqknm7cqi7mrypvwingqkq26ns0mhs"; }; - buildInputs = [ cmake ncurses openssl bison boost libxml2 libaio judy libevent groff ]; + buildInputs = [ cmake ncurses openssl bison boost libxml2 judy libevent groff ] + ++ stdenv.lib.optional (!stdenv.isDarwin) libaio + ++ stdenv.lib.optionals stdenv.isDarwin [ perl fixDarwinDylibNames ]; + + patches = stdenv.lib.optional stdenv.isDarwin ./my_context_asm.patch; cmakeFlags = [ "-DWITH_READLINE=yes" "-DWITH_EMBEDDED_SERVER=yes" "-DINSTALL_SCRIPTDIR=bin" ]; enableParallelBuilding = true; + prePatch = '' + substituteInPlace cmake/libutils.cmake \ + --replace /usr/bin/libtool libtool + ''; + postInstall = '' + substituteInPlace $out/bin/mysql_install_db \ + --replace basedir=\"\" basedir=\"$out\" + ''; + passthru.mysqlVersion = "5.5"; meta = { diff --git a/pkgs/servers/sql/mariadb/my_context_asm.patch b/pkgs/servers/sql/mariadb/my_context_asm.patch new file mode 100644 index 00000000000..3a747ed1b03 --- /dev/null +++ b/pkgs/servers/sql/mariadb/my_context_asm.patch @@ -0,0 +1,18 @@ +--- a/mysys/my_context.c ++++ b/mysys/my_context.c +@@ -206,15 +206,6 @@ my_context_spawn(struct my_context *c, void (*f)(void *), void *d) + ( + "movq %%rsp, (%[save])\n\t" + "movq %[stack], %%rsp\n\t" +-#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 4 && !defined(__INTEL_COMPILER) +- /* +- This emits a DWARF DW_CFA_undefined directive to make the return address +- undefined. This indicates that this is the top of the stack frame, and +- helps tools that use DWARF stack unwinding to obtain stack traces. +- (I use numeric constant to avoid a dependency on libdwarf includes). +- */ +- ".cfi_escape 0x07, 16\n\t" +-#endif + "movq %%rbp, 8(%[save])\n\t" + "movq %%rbx, 16(%[save])\n\t" + "movq %%r12, 24(%[save])\n\t" diff --git a/pkgs/servers/uhub/default.nix b/pkgs/servers/uhub/default.nix new file mode 100644 index 00000000000..a6e0d474d89 --- /dev/null +++ b/pkgs/servers/uhub/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, cmake, openssl, sqlite, pkgconfig, systemd +, tlsSupport ? false }: + +assert tlsSupport -> openssl != null; + +let version = "0.4.1"; in +stdenv.mkDerivation { + name = "uhub-${version}"; + + src = fetchurl { + url = "http://www.extatic.org/downloads/uhub/uhub-${version}-src.tar.bz2"; + sha256 = "1q0n74fb0h5w0k9fhfkznxb4r46qyfb8g2ss3wflivx4l0m1f9x2"; + }; + + buildInputs = [ cmake sqlite pkgconfig systemd ] ++ stdenv.lib.optional tlsSupport openssl; + + outputs = [ "out" + "mod_example" + "mod_welcome" + "mod_logging" + "mod_auth_simple" + "mod_auth_sqlite" + "mod_chat_history" + "mod_chat_only" + "mod_topic" + "mod_no_guest_downloads" + ]; + + patches = [ ./plugin-dir.patch ./systemd.patch ]; + + cmakeFlags = '' + -DSYSTEMD_SUPPORT=ON + ${if tlsSupport then "-DSSL_SUPPORT=ON" else "-DSSL_SUPPORT=OFF"} + ''; + + meta = with stdenv.lib; { + description = "High performance peer-to-peer hub for the ADC network"; + homepage = https://www.uhub.org/; + license = licenses.gpl3; + maintainers = [ maintainers.emery ]; + platforms = platforms.unix; + }; +} \ No newline at end of file diff --git a/pkgs/servers/uhub/plugin-dir.patch b/pkgs/servers/uhub/plugin-dir.patch new file mode 100644 index 00000000000..95ebfd6706f --- /dev/null +++ b/pkgs/servers/uhub/plugin-dir.patch @@ -0,0 +1,23 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 40e996e..d3b7e6d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -185,10 +185,16 @@ else() + # add_definitions(-DDEBUG) + endif() + ++set( PLUGINS mod_example mod_welcome mod_logging mod_auth_simple mod_auth_sqlite mod_chat_history mod_chat_only mod_topic mod_no_guest_downloads ) ++ + if (UNIX) + install( TARGETS uhub RUNTIME DESTINATION bin ) +- install( TARGETS mod_example mod_welcome mod_logging mod_auth_simple mod_auth_sqlite mod_chat_history mod_chat_only mod_topic mod_no_guest_downloads DESTINATION /usr/lib/uhub/ OPTIONAL ) +- install( FILES ${CMAKE_SOURCE_DIR}/doc/uhub.conf ${CMAKE_SOURCE_DIR}/doc/plugins.conf ${CMAKE_SOURCE_DIR}/doc/rules.txt ${CMAKE_SOURCE_DIR}/doc/motd.txt DESTINATION /etc/uhub OPTIONAL ) ++ ++ foreach( PLUGIN ${PLUGINS} ) ++ install( TARGETS ${PLUGIN} DESTINATION $ENV{${PLUGIN}} OPTIONAL ) ++ endforeach( PLUGIN ) ++ ++ install( FILES ${CMAKE_SOURCE_DIR}/doc/uhub.conf ${CMAKE_SOURCE_DIR}/doc/plugins.conf ${CMAKE_SOURCE_DIR}/doc/rules.txt ${CMAKE_SOURCE_DIR}/doc/motd.txt DESTINATION doc/ OPTIONAL ) + + if (SQLITE_SUPPORT) + install( TARGETS uhub-passwd RUNTIME DESTINATION bin ) diff --git a/pkgs/servers/uhub/systemd.patch b/pkgs/servers/uhub/systemd.patch new file mode 100644 index 00000000000..05e7571d18d --- /dev/null +++ b/pkgs/servers/uhub/systemd.patch @@ -0,0 +1,164 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 40e996e..fc4fb01 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -19,6 +19,7 @@ option(LINK_SUPPORT "Allow hub linking" OFF) + option(SSL_SUPPORT "Enable SSL support" ON) + option(USE_OPENSSL "Use OpenSSL's SSL support" ON ) + option(SQLITE_SUPPORT "Enable SQLite support" ON) ++option(SYSTEMD_SUPPORT "Enable systemd notify and journal logging" OFF) + option(ADC_STRESS "Enable the stress tester client" OFF) + + find_package(Git) +@@ -34,6 +35,12 @@ if (SSL_SUPPORT) + endif() + endif() + ++if (SYSTEMD_SUPPORT) ++ INCLUDE(FindPkgConfig) ++ pkg_search_module(SD_DAEMON REQUIRED libsystemd-daemon) ++ pkg_search_module(SD_JOURNAL REQUIRED libsystemd-journal) ++endif() ++ + if (MSVC) + add_definitions(-D_CRT_SECURE_NO_WARNINGS) + endif() +@@ -175,6 +182,18 @@ if(SSL_SUPPORT) + endif() + endif() + ++if (SYSTEMD_SUPPORT) ++ target_link_libraries(uhub ${SD_DAEMON_LIBRARIES}) ++ target_link_libraries(uhub ${SD_JOURNAL_LIBRARIES}) ++ target_link_libraries(test ${SD_DAEMON_LIBRARIES}) ++ target_link_libraries(test ${SD_JOURNAL_LIBRARIES}) ++ target_link_libraries(uhub-passwd ${SD_JOURNAL_LIBRARIES}) ++ target_link_libraries(uhub-admin ${SD_JOURNAL_LIBRARIES}) ++ include_directories(${SD_DAEMON_INCLUDE_DIRS}) ++ include_directories(${SD_JOURNAL_INCLUDE_DIRS}) ++ add_definitions(-DSYSTEMD) ++endif() ++ + configure_file ("${PROJECT_SOURCE_DIR}/version.h.in" "${PROJECT_SOURCE_DIR}/version.h") + + mark_as_advanced(FORCE CMAKE_BUILD_TYPE) +diff --git a/src/core/main.c b/src/core/main.c +index bb78672..ac2d2a8 100644 +--- a/src/core/main.c ++++ b/src/core/main.c +@@ -19,6 +19,10 @@ + + #include "uhub.h" + ++#ifdef SYSTEMD ++#include ++#endif ++ + static int arg_verbose = 5; + static int arg_fork = 0; + static int arg_check_config = 0; +@@ -145,7 +149,16 @@ int main_loop() + } + #if !defined(WIN32) + setup_signal_handlers(hub); +-#endif ++#ifdef SYSTEMD ++ /* Notify the service manager that this daemon has ++ * been successfully initalized and shall enter the ++ * main loop. ++ */ ++ sd_notifyf(0, "READY=1\n" ++ "MAINPID=%lu", (unsigned long) getpid()); ++#endif /* SYSTEMD */ ++ ++#endif /* ! WIN32 */ + } + + hub_set_variables(hub, &acl); +@@ -216,13 +229,17 @@ void print_usage(char* program) + " -q Quiet mode - no output\n" + " -f Fork to background\n" + " -l Log messages to given file (default: stderr)\n" +- " -L Log messages to syslog\n" + " -c Specify configuration file (default: " SERVER_CONFIG ")\n" + " -C Check configuration and return\n" + " -s Show configuration parameters\n" + " -S Show configuration parameters, but ignore defaults\n" + " -h This message\n" + #ifndef WIN32 ++#ifdef SYSTEMD ++ " -L Log messages to journal\n" ++#else ++ " -L Log messages to syslog\n" ++#endif + " -u Run as given user\n" + " -g Run with given group permissions\n" + " -p Store pid in file (process id)\n" +diff --git a/src/util/log.c b/src/util/log.c +index 42badb3..2d97528 100644 +--- a/src/util/log.c ++++ b/src/util/log.c +@@ -21,7 +21,15 @@ + #include + + #ifndef WIN32 ++ ++#ifdef SYSTEMD ++#define SD_JOURNAL_SUPPRESS_LOCATION ++#include ++ ++#else + #include ++#endif ++ + static int use_syslog = 0; + #endif + +@@ -83,7 +91,9 @@ void hub_log_initialize(const char* file, int syslog) + if (syslog) + { + use_syslog = 1; ++ #ifndef SYSTEMD + openlog("uhub", LOG_PID, LOG_USER); ++ #endif + } + #endif + +@@ -132,7 +142,9 @@ void hub_log_shutdown() + if (use_syslog) + { + use_syslog = 0; ++ #ifndef SYSTEMD + closelog(); ++ #endif + } + #endif + } +@@ -212,7 +224,12 @@ void hub_log(int log_verbosity, const char *format, ...) + case log_fatal: level = LOG_CRIT; break; + case log_error: level = LOG_ERR; break; + case log_warning: level = LOG_WARNING; break; +- case log_user: level = LOG_INFO | LOG_AUTH; break; ++ #ifdef SYSTEMD ++ case log_user: level = LOG_INFO; break; ++ ++ #else ++ case log_user: level = LOG_INFO | LOG_AUTH; break; ++ #endif + case log_info: level = LOG_INFO; break; + case log_debug: level = LOG_DEBUG; break; + +@@ -224,8 +241,13 @@ void hub_log(int log_verbosity, const char *format, ...) + if (level == 0) + return; + ++ #ifdef SYSTEMD ++ sd_journal_print(level, "%s", logmsg); ++ ++ #else + level |= (LOG_USER | LOG_DAEMON); + syslog(level, "%s", logmsg); ++ #endif + } + #endif + diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 6945d6559fb..c4dfa983f55 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -1644,6 +1644,16 @@ let buildInputs = [pkgconfig fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ]; }) // {inherit fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ;}; + xf86videoqxl = (mkDerivation "xf86videoqxl" { + name = "xf86-video-qxl-0.1.2"; + builder = ./builder.sh; + src = fetchurl { + url = mirror://xorg/individual/driver/xf86-video-qxl-0.1.2.tar.bz2; + sha256 = "09sjpkg7klzzg9sagmqpsw911501vqk9wdd4nr0jkqqanvkx39s3"; + }; + buildInputs = [pkgconfig fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xf86dgaproto xorgserver xproto ]; + }) // {inherit fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;}; + xf86videor128 = (mkDerivation "xf86videor128" { name = "xf86-video-r128-6.9.2"; builder = ./builder.sh; diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index a81b1a4ac22..93afa06a7f2 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -205,6 +205,10 @@ in buildInputs = attrs.buildInputs ++ [ args.mesa_drivers ]; # for libxatracker }; + xf86videoqxl = attrs: attrs // { + buildInputs = attrs.buildInputs ++ [ args.spice_protocol ]; + }; + xdriinfo = attrs: attrs // { buildInputs = attrs.buildInputs ++ [args.mesa]; }; diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list index 417d12ddadc..93acd927f3b 100644 --- a/pkgs/servers/x11/xorg/tarballs-7.7.list +++ b/pkgs/servers/x11/xorg/tarballs-7.7.list @@ -138,6 +138,7 @@ mirror://xorg/individual/driver/xf86-video-intel-2.21.15.tar.bz2 mirror://xorg/individual/driver/xf86-video-mach64-6.9.4.tar.bz2 mirror://xorg/individual/driver/xf86-video-mga-1.6.3.tar.bz2 mirror://xorg/individual/driver/xf86-video-modesetting-0.9.0.tar.bz2 +mirror://xorg/individual/driver/xf86-video-qxl-0.1.2.tar.bz2 mirror://xorg/individual/driver/xf86-video-neomagic-1.2.8.tar.bz2 mirror://xorg/X11R7.7/src/everything/xf86-video-newport-0.2.4.tar.bz2 mirror://xorg/individual/driver/xf86-video-nv-2.1.20.tar.bz2 diff --git a/pkgs/servers/zookeeper/default.nix b/pkgs/servers/zookeeper/default.nix new file mode 100755 index 00000000000..307993a958a --- /dev/null +++ b/pkgs/servers/zookeeper/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, jre, makeWrapper, bash }: + +stdenv.mkDerivation rec { + name = "zookeeper-3.4.6"; + + src = fetchurl { + url = "mirror://apache/zookeeper/${name}/${name}.tar.gz"; + sha256 = "01b3938547cd620dc4c93efe07c0360411f4a66962a70500b163b59014046994"; + }; + + buildInputs = [ makeWrapper jre ]; + + phases = ["unpackPhase" "installPhase"]; + + installPhase = '' + mkdir -p $out + cp -R conf docs lib ${name}.jar $out + mkdir -p $out/bin + cp -R bin/{zkCli,zkCleanup,zkEnv}.sh $out/bin + for i in $out/bin/{zkCli,zkCleanup}.sh; do + wrapProgram $i \ + --set JAVA_HOME "${jre}" \ + --prefix PATH : "${bash}/bin" + done + chmod -x $out/bin/zkEnv.sh + ''; + + meta = with stdenv.lib; { + homepage = "http://zookeeper.apache.org"; + description = "Apache Zookeeper"; + license = licenses.asl20; + maintainers = [ maintainers.nathan-gs ]; + platforms = platforms.unix; + }; + +} diff --git a/pkgs/shells/ipython/default.nix b/pkgs/shells/ipython/default.nix index cb0cc95c4ce..990eb174baf 100644 --- a/pkgs/shells/ipython/default.nix +++ b/pkgs/shells/ipython/default.nix @@ -13,12 +13,12 @@ assert qtconsoleSupport == true -> pyqt4 != null; assert pylabQtSupport == true -> pyqt4 != null && sip != null; buildPythonPackage rec { - name = "ipython-2.0.0"; + name = "ipython-2.2.0"; namePrefix = ""; src = fetchurl { url = "http://pypi.python.org/packages/source/i/ipython/${name}.tar.gz"; - sha256 = "0fl9sznx83y2ck8wh5zr8avzjm5hz6r0xz38ij2fil3gin7w10sf"; + sha256 = "1qk44lmir24gnwb3gxh0mqcghc8ln1i5ygxpalh06bx0ajx7gjmp"; }; propagatedBuildInputs = [ diff --git a/pkgs/shells/rush/default.nix b/pkgs/shells/rush/default.nix index e9d0c61ee08..3232caf5848 100644 --- a/pkgs/shells/rush/default.nix +++ b/pkgs/shells/rush/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU Rush, Restricted User Shell"; + description = "Restricted User Shell"; longDescription = '' GNU Rush is a Restricted User Shell, designed for sites diff --git a/pkgs/tools/X11/hsetroot/default.nix b/pkgs/tools/X11/hsetroot/default.nix index d91f4bfdf65..e226f1f93c4 100644 --- a/pkgs/tools/X11/hsetroot/default.nix +++ b/pkgs/tools/X11/hsetroot/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation { buildInputs = [ imlib2 libX11 libXext ]; meta = { - description = "hsetroot allows you to compose wallpapers ('root pixmaps') for X"; + description = "Allows you to compose wallpapers ('root pixmaps') for X"; homepage = http://thegraveyard.org/hsetroot.html; license = stdenv.lib.licenses.gpl2Plus; }; diff --git a/pkgs/tools/X11/obconf/default.nix b/pkgs/tools/X11/obconf/default.nix index 589b684e69b..e1a2e0dd496 100644 --- a/pkgs/tools/X11/obconf/default.nix +++ b/pkgs/tools/X11/obconf/default.nix @@ -22,5 +22,6 @@ stdenv.mkDerivation rec { description = "GUI configuration tool for openbox"; homepage = "http://openbox.org/wiki/ObConf"; license = stdenv.lib.licenses.gpl2; + maintainers = [ stdenv.lib.maintainers.lhvwb ]; }; } diff --git a/pkgs/tools/X11/wmctrl/default.nix b/pkgs/tools/X11/wmctrl/default.nix index 3f691b8ecd4..2e23e7bd4de 100644 --- a/pkgs/tools/X11/wmctrl/default.nix +++ b/pkgs/tools/X11/wmctrl/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://tomas.styblo.name/wmctrl/; - description = "wmctrl is a UNIX/Linux command line tool to interact with an EWMH/NetWM compatible X Window Manager"; + description = "Command line tool to interact with an EWMH/NetWM compatible X Window Manager"; license = stdenv.lib.licenses.gpl2; platforms = with stdenv.lib.platforms; all; }; diff --git a/pkgs/tools/X11/xinput_calibrator/default.nix b/pkgs/tools/X11/xinput_calibrator/default.nix new file mode 100644 index 00000000000..8f21f6558ff --- /dev/null +++ b/pkgs/tools/X11/xinput_calibrator/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, libXi, inputproto, autoconf, automake, libtool, m4, x11, pkgconfig }: + +stdenv.mkDerivation rec { + version = "0.7.5"; + name = "xinput_calibrator"; + src = fetchurl { + url = "https://github.com/tias/${name}/archive/v${version}.tar.gz"; + sha256 = "d8edbf84523d60f52311d086a1e3ad0f3536f448360063dd8029bf6290aa65e9"; + }; + + preConfigure = "./autogen.sh --with-gui=X11"; + + buildInputs = [ inputproto libXi autoconf automake libtool m4 x11 pkgconfig ]; + + meta = { + homepage = https://github.com/tias/xinput_calibrator; + description = "A generic touchscreen calibration program for X.Org"; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.flosse ]; + }; +} diff --git a/pkgs/tools/X11/xnee/default.nix b/pkgs/tools/X11/xnee/default.nix index 0e92021b62c..43fa105e680 100644 --- a/pkgs/tools/X11/xnee/default.nix +++ b/pkgs/tools/X11/xnee/default.nix @@ -2,11 +2,12 @@ , gtk, libXi, inputproto, pkgconfig, recordproto, texinfo }: stdenv.mkDerivation rec { - name = "xnee-3.12"; + version = "3.19"; + name = "xnee-${version}"; src = fetchurl { url = "mirror://gnu/xnee/${name}.tar.gz"; - sha256 = "10vxn0in0l2jir6x90grx5jc64x63l3b0f8liladdbplc8za8zmw"; + sha256 = "04n2lac0vgpv8zsn7nmb50hf3qb56pmj90dmwnivg09gyrf1x92j"; }; patchPhase = @@ -34,7 +35,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU Xnee, an X11 event recording and replay tool"; + description = "X11 event recording and replay tool"; longDescription = '' Xnee is a suite of programs that can record, replay and distribute @@ -48,7 +49,7 @@ stdenv.mkDerivation rec { homepage = http://www.gnu.org/software/xnee/; - maintainers = [ ]; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; platforms = stdenv.lib.platforms.gnu; # arbitrary choice }; } diff --git a/pkgs/tools/X11/xtrace/default.nix b/pkgs/tools/X11/xtrace/default.nix index efc0647f5db..c3c9c70fe92 100644 --- a/pkgs/tools/X11/xtrace/default.nix +++ b/pkgs/tools/X11/xtrace/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = { homepage = http://xtrace.alioth.debian.org/; - description = "xtrace, a tool to trace X11 protocol connections"; + description = "Tool to trace X11 protocol connections"; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [viric]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/tools/admin/tightvnc/default.nix b/pkgs/tools/admin/tightvnc/default.nix index acb8708ec14..407242cf2d9 100644 --- a/pkgs/tools/admin/tightvnc/default.nix +++ b/pkgs/tools/admin/tightvnc/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { meta = { license = stdenv.lib.licenses.gpl2Plus; homepage = "http://vnc-tight.sourceforge.net/"; - description = "TightVNC is an improved version of VNC"; + description = "Improved version of VNC"; longDescription = '' TightVNC is an improved version of VNC, the great free diff --git a/pkgs/tools/archivers/sharutils/default.nix b/pkgs/tools/archivers/sharutils/default.nix index afd734fbae0..f19564e4ad9 100644 --- a/pkgs/tools/archivers/sharutils/default.nix +++ b/pkgs/tools/archivers/sharutils/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { }; meta = { - description = "GNU Sharutils, tools for remote synchronization and `shell archives'"; + description = "Tools for remote synchronization and `shell archives'"; longDescription = '' GNU shar makes so-called shell archives out of many files, preparing diff --git a/pkgs/tools/audio/pnmixer/default.nix b/pkgs/tools/audio/pnmixer/default.nix new file mode 100644 index 00000000000..d7964c0961c --- /dev/null +++ b/pkgs/tools/audio/pnmixer/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchgit, alsaLib, pkgconfig, gtk3, glibc, autoconf, automake, libnotify, libX11, gettext }: + +stdenv.mkDerivation rec { + name = "pnmixer"; + + src = fetchgit { + url = "git://github.com/nicklan/pnmixer.git"; + rev = "1e09a075c0c63d8b161b13ea92528a798bdb464a"; + sha256 = "15k689xycpc6pvq9vgg9ak92b9sg09dh4yrh83kjcaws63alrzl5"; + }; + + buildInputs = [ + alsaLib pkgconfig gtk3 glibc autoconf automake libnotify libX11 gettext + ]; + + preConfigure = '' + ./autogen.sh + ''; + + # work around a problem related to gtk3 updates + NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; + + meta = with stdenv.lib; { + description = "ALSA mixer for the system tray"; + license = licenses.gpl3; + maintainers = with maintainers; [ campadrenalin ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix index 45d6cb83739..0f8c46e2dc3 100644 --- a/pkgs/tools/backup/duplicity/default.nix +++ b/pkgs/tools/backup/duplicity/default.nix @@ -1,14 +1,15 @@ -{ stdenv, fetchurl, python, librsync, ncftp, gnupg, boto, makeWrapper, lockfile }: +{ stdenv, fetchurl, python, librsync, ncftp, gnupg, boto, makeWrapper +, lockfile, setuptools }: let - version = "0.6.23"; + version = "0.6.24"; in stdenv.mkDerivation { name = "duplicity-${version}"; src = fetchurl { url = "http://code.launchpad.net/duplicity/0.6-series/${version}/+download/duplicity-${version}.tar.gz"; - sha256 = "0q0ckkmyq9z7xfbb1jajflmbzjwxpcjkkiab43rxrplm0ghz25vs"; + sha256 = "0l14nrhbgkyjgvh339bbhnm6hrdwrjadphq1jmpi0mcgcdbdfh8x"; }; installPhase = '' @@ -20,7 +21,7 @@ stdenv.mkDerivation { --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${boto}):$(toPythonPath ${lockfile})" \ ''; - buildInputs = [ python librsync makeWrapper ]; + buildInputs = [ python librsync makeWrapper setuptools ]; meta = { description = "Encrypted bandwidth-efficient backup using the rsync algorithm"; diff --git a/pkgs/tools/backup/partclone/default.nix b/pkgs/tools/backup/partclone/default.nix index b446b06f987..fe2b9e00aaa 100644 --- a/pkgs/tools/backup/partclone/default.nix +++ b/pkgs/tools/backup/partclone/default.nix @@ -17,7 +17,13 @@ stdenv.mkDerivation { installPhase = ''make INSTPREFIX=$out install''; meta = { - description = "Partclone provides utilities to save and restore used blocks on a partition and is designed for higher compatibility of the file system by using existing libraries, e.g. e2fslibs is used to read and write the ext2 partition"; + description = "Utilities to save and restore used blocks on a partition"; + longDescription = '' + Partclone provides utilities to save and restore used blocks on a + partition and is designed for higher compatibility of the file system by + using existing libraries, e.g. e2fslibs is used to read and write the + ext2 partition. + ''; homepage = http://partclone.org; license = stdenv.lib.licenses.gpl2; maintainers = [stdenv.lib.maintainers.marcweber]; diff --git a/pkgs/tools/cd-dvd/xorriso/default.nix b/pkgs/tools/cd-dvd/xorriso/default.nix index 88cca66efb1..218ea9a1e7f 100644 --- a/pkgs/tools/cd-dvd/xorriso/default.nix +++ b/pkgs/tools/cd-dvd/xorriso/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional stdenv.isLinux acl; meta = { - description = "GNU xorriso, an ISO 9660 Rock Ridge file system manipulator"; + description = "ISO 9660 Rock Ridge file system manipulator"; longDescription = '' GNU xorriso copies file objects from POSIX compliant filesystems diff --git a/pkgs/tools/compression/gzip/default.nix b/pkgs/tools/compression/gzip/default.nix index b7bf9c59f49..cc304d9aa1e 100644 --- a/pkgs/tools/compression/gzip/default.nix +++ b/pkgs/tools/compression/gzip/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.gnu.org/software/gzip/; - description = "Gzip, the GNU zip compression program"; + description = "GNU zip compression program"; longDescription = ''gzip (GNU zip) is a popular data compression program written by diff --git a/pkgs/tools/compression/rzip/default.nix b/pkgs/tools/compression/rzip/default.nix index ca8d356abb3..4460ae6edf3 100644 --- a/pkgs/tools/compression/rzip/default.nix +++ b/pkgs/tools/compression/rzip/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation { meta = { homepage = http://rzip.samba.org/; - description = "The RZIP compression program"; + description = "Compression program"; license = stdenv.lib.licenses.gpl2Plus; }; } diff --git a/pkgs/tools/compression/xar/default.nix b/pkgs/tools/compression/xar/default.nix new file mode 100644 index 00000000000..0bb4a1fb2ae --- /dev/null +++ b/pkgs/tools/compression/xar/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, libxml2, openssl, zlib, bzip2 }: + +stdenv.mkDerivation rec { + version = "1.5.2"; + name = "xar-${version}"; + + src = fetchurl { + url = "https://xar.googlecode.com/files/${name}.tar.gz"; + sha256 = "1rp3va6akzlh35yqrapfqnbxaxa0zi8wyr93swbapprwh215cpac"; + }; + + buildInputs = [ libxml2 openssl zlib bzip2 ]; + + meta = { + homepage = https://code.google.com/p/xar/; + description = "Extensible Archiver"; + + longDescription = + '' The XAR project aims to provide an easily extensible archive format. + Important design decisions include an easily extensible XML table of + contents for random access to archived files, storing the toc at the + beginning of the archive to allow for efficient handling of streamed + archives, the ability to handle files of arbitrarily large sizes, the + ability to choose independent encodings for individual files in the + archive, the ability to store checksums for individual files in both + compressed and uncompressed form, and the ability to query the table + of content's rich meta-data. + ''; + + license = stdenv.lib.licenses.bsd3; + maintainers = with stdenv.lib.maintainers; [ copumpkin ]; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/tools/filesystems/btrfsprogs/default.nix b/pkgs/tools/filesystems/btrfsprogs/default.nix index 66152f9589b..02f214ad430 100644 --- a/pkgs/tools/filesystems/btrfsprogs/default.nix +++ b/pkgs/tools/filesystems/btrfsprogs/default.nix @@ -1,14 +1,14 @@ { stdenv, fetchurl, attr, acl, zlib, libuuid, e2fsprogs, lzo , asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt }: -let version = "3.14.2"; in +let version = "3.16"; in stdenv.mkDerivation rec { name = "btrfs-progs-${version}"; src = fetchurl { url = "mirror://kernel/linux/kernel/people/mason/btrfs-progs/btrfs-progs-v${version}.tar.xz"; - sha256 = "14vpj6f2v076v9zabgrz8l4dp6n1ar2mvk3lvii51ykvi35d1qbh"; + sha256 = "0phbrgipl04q8cdj9nnshik7b6p2bg51jxb3l1gvfc04dkgm2xls"; }; buildInputs = [ @@ -21,10 +21,11 @@ stdenv.mkDerivation rec { makeFlags = "prefix=$(out)"; - meta = { + meta = with stdenv.lib; { description = "Utilities for the btrfs filesystem"; homepage = https://btrfs.wiki.kernel.org/; - maintainers = [ stdenv.lib.maintainers.raskin ]; - platforms = stdenv.lib.platforms.linux; + license = licenses.gpl2; + maintainers = with maintainers; [ raskin wkennington ]; + platforms = platforms.linux; }; } diff --git a/pkgs/tools/filesystems/chunkfs/default.nix b/pkgs/tools/filesystems/chunkfs/default.nix index d91525e348f..f8c6942bad0 100644 --- a/pkgs/tools/filesystems/chunkfs/default.nix +++ b/pkgs/tools/filesystems/chunkfs/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "(Un)ChunkFS is a pair of FUSE filesystems for viewing chunksync-style directory trees as a block device and vice versa."; + description = "FUSE filesystems for viewing chunksync-style directory trees as a block device and vice versa"; homepage = "http://chunkfs.florz.de/"; license = stdenv.lib.licenses.gpl2; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/tools/filesystems/encfs/default.nix b/pkgs/tools/filesystems/encfs/default.nix index 9ebab38984b..ea96001a421 100644 --- a/pkgs/tools/filesystems/encfs/default.nix +++ b/pkgs/tools/filesystems/encfs/default.nix @@ -14,6 +14,6 @@ stdenv.mkDerivation { meta = { homepage = http://www.arg0.net/encfs; - description = "EncFS provides an encrypted filesystem in user-space via FUSE"; + description = "Provides an encrypted filesystem in user-space via FUSE"; }; } diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix index 0b666f38942..6b9631bfccf 100644 --- a/pkgs/tools/filesystems/mtools/default.nix +++ b/pkgs/tools/filesystems/mtools/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.gnu.org/software/mtools/; - description = "GNU mtools, utilities to access MS-DOS disks"; + description = "Utilities to access MS-DOS disks"; platforms = stdenv.lib.platforms.gnu; # arbitrary choice maintainers = [ ]; }; diff --git a/pkgs/tools/filesystems/smbnetfs/default.nix b/pkgs/tools/filesystems/smbnetfs/default.nix index 616f61e6c84..e9d9b27d751 100644 --- a/pkgs/tools/filesystems/smbnetfs/default.nix +++ b/pkgs/tools/filesystems/smbnetfs/default.nix @@ -12,17 +12,16 @@ let sourceInfo = rec { baseName="smbnetfs"; dirBaseName="SMBNetFS"; - version="0.5.3a"; + version = "0.5.3b"; name="${baseName}-${version}"; project="${baseName}"; url="mirror://sourceforge/project/${project}/${baseName}/${dirBaseName}-${version}/${name}.tar.bz2"; - hash="0fzlw11y2vkxmjzz3qcypqlvz074v6a3pl4pyffbniqal64qgrsw"; }; in rec { src = a.fetchurl { url = sourceInfo.url; - sha256 = sourceInfo.hash; + sha256 = "1j9b30kh4ymv4nr8c1qc7hfg6pscgyj75ib16pqa0zljjk1klx18"; }; inherit (sourceInfo) name version; @@ -40,11 +39,9 @@ rec { platforms = with a.lib.platforms; linux; license = a.lib.licenses.gpl2; - }; - passthru = { - updateInfo = { - downloadPage = "http://sourceforge.net/projects/smbnetfs/files/smbnetfs"; - }; + downloadPage = "http://sourceforge.net/projects/smbnetfs/files/smbnetfs"; + updateWalker = true; + inherit version; }; }) x diff --git a/pkgs/tools/filesystems/smbnetfs/default.upstream b/pkgs/tools/filesystems/smbnetfs/default.upstream new file mode 100644 index 00000000000..9e2ba2bd59b --- /dev/null +++ b/pkgs/tools/filesystems/smbnetfs/default.upstream @@ -0,0 +1,6 @@ +url http://sourceforge.net/projects/smbnetfs/files/smbnetfs/ +version_link '[-][0-9.]+[a-z]*/$' +version_link '[.]tar[.][a-z0-9]+/download$' +SF_redirect +version '.*[-]([0-9.]+[a-z]*)[.]tar[.].*' '\1' +do_overwrite () { do_overwrite_just_version; } diff --git a/pkgs/tools/filesystems/svnfs/default.nix b/pkgs/tools/filesystems/svnfs/default.nix index b6a296e6bc7..fba066d0f4c 100644 --- a/pkgs/tools/filesystems/svnfs/default.nix +++ b/pkgs/tools/filesystems/svnfs/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { NIX_LDFLAGS="-lsvn_client-1"; meta = { - description = "SvnFs is a filesystem written using FUSE for accessing Subversion repositories"; + description = "FUSE filesystem for accessing Subversion repositories"; homepage = http://www.jmadden.eu/index.php/svnfs/; license = stdenv.lib.licenses.gpl2; maintainers = [stdenv.lib.maintainers.marcweber]; diff --git a/pkgs/tools/filesystems/wdfs/default.nix b/pkgs/tools/filesystems/wdfs/default.nix index 68d978a2a55..a28d5394fc1 100644 --- a/pkgs/tools/filesystems/wdfs/default.nix +++ b/pkgs/tools/filesystems/wdfs/default.nix @@ -10,6 +10,6 @@ stdenv.mkDerivation rec buildInputs = [fuse glib neon pkgconfig]; meta = { homepage = "http://noedler.de/projekte/wdfs/"; - description = "wdfs a user-space filesystem that allows to mount a webdav share"; + description = "User-space filesystem that allows to mount a webdav share"; }; } diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix index 24dbae08fab..c9078a0cb8b 100644 --- a/pkgs/tools/filesystems/yandex-disk/default.nix +++ b/pkgs/tools/filesystems/yandex-disk/default.nix @@ -1,4 +1,7 @@ { stdenv, fetchurl, writeText, zlib, rpm, cpio, patchelf, which }: + +assert stdenv.isLinux; + let p = if stdenv.is64bit then { arch = "x86_64"; diff --git a/pkgs/tools/graphics/barcode/default.nix b/pkgs/tools/graphics/barcode/default.nix index 60dc5a285da..23a2e6dd78f 100644 --- a/pkgs/tools/graphics/barcode/default.nix +++ b/pkgs/tools/graphics/barcode/default.nix @@ -9,17 +9,16 @@ let buildInputs = map (n: builtins.getAttr n x) (builtins.attrNames (builtins.removeAttrs x helperArgNames)); sourceInfo = rec { - version="0.99"; + version = "0.99"; baseName="barcode"; name="${baseName}-${version}"; - url="mirror://gnu/${baseName}/${name}.tar.gz"; - hash="0r2b2lwg7a9i9ic5spkbnavy1ynrppmrldv46vsl44l1xgriq0vw"; + url="mirror://gnu/${baseName}/${name}.tar.xz"; }; in rec { src = a.fetchurl { url = sourceInfo.url; - sha256 = sourceInfo.hash; + sha256 = "1indapql5fjz0bysyc88cmc54y8phqrbi7c76p71fgjp45jcyzp8"; }; inherit (sourceInfo) name version; @@ -35,11 +34,9 @@ rec { raskin ]; platforms = with a.lib.platforms; allBut darwin; - }; - passthru = { - updateInfo = { - downloadPage = "ftp://ftp.gnu.org/gnu/barcode/"; - }; + downloadPage = "http://ftp.gnu.org/gnu/barcode/"; + updateWalker = true; + inherit version; }; }) x diff --git a/pkgs/tools/graphics/cuneiform/default.nix b/pkgs/tools/graphics/cuneiform/default.nix index 2638594903a..0e94571503c 100644 --- a/pkgs/tools/graphics/cuneiform/default.nix +++ b/pkgs/tools/graphics/cuneiform/default.nix @@ -37,6 +37,6 @@ rec { name = "cuneiform-" + version; meta = { inherit version; - description = "Cuneiform OCR"; + description = "Multi-language OCR system"; }; } diff --git a/pkgs/tools/graphics/graphviz/2.32.nix b/pkgs/tools/graphics/graphviz/2.32.nix new file mode 100644 index 00000000000..0a86a892417 --- /dev/null +++ b/pkgs/tools/graphics/graphviz/2.32.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat, libXaw +, yacc, libtool, fontconfig, pango, gd, xlibs, gts, gettext, cairo +}: + +stdenv.mkDerivation rec { + version = "2.32.0"; + name = "graphviz-${version}"; + + src = fetchurl { + url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz"; + sha256 = "0ym7lw3xnkcgbk32vfmm3329xymca60gzn90rq6dv8887qqv4lyq"; + }; + + buildInputs = + [ pkgconfig libpng libjpeg expat libXaw yacc libtool fontconfig + pango gd gts + ] ++ stdenv.lib.optionals (xlibs != null) [ xlibs.xlibs xlibs.libXrender ] + ++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") gettext; + + CPPFLAGS = stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "-I${cairo}/include/cairo"; + + configureFlags = + [ "--with-pngincludedir=${libpng}/include" + "--with-pnglibdir=${libpng}/lib" + "--with-jpegincludedir=${libjpeg}/include" + "--with-jpeglibdir=${libjpeg}/lib" + "--with-expatincludedir=${expat}/include" + "--with-expatlibdir=${expat}/lib" + "--with-cgraph=no" + "--with-sparse=no" + ] + ++ stdenv.lib.optional (xlibs == null) "--without-x"; + + preBuild = '' + sed -e 's@am__append_5 *=.*@am_append_5 =@' -i lib/gvc/Makefile + ''; + + # "command -v" is POSIX, "which" is not + postInstall = '' + sed -i 's|`which lefty`|"'$out'/bin/lefty"|' $out/bin/dotty + sed -i 's|which|command -v|' $out/bin/vimdot + ''; + + meta = { + homepage = "http://www.graphviz.org/"; + description = "Open source graph visualization software"; + + longDescription = '' + Graphviz is open source graph visualization software. Graph + visualization is a way of representing structural information as + diagrams of abstract graphs and networks. It has important + applications in networking, bioinformatics, software engineering, + database and web design, machine learning, and in visual + interfaces for other technical domains. + ''; + + hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ simons bjornfor raskin ]; + inherit version; + }; +} diff --git a/pkgs/tools/graphics/graphviz/default.nix b/pkgs/tools/graphics/graphviz/default.nix index 27883ca6037..e9a552e3300 100644 --- a/pkgs/tools/graphics/graphviz/default.nix +++ b/pkgs/tools/graphics/graphviz/default.nix @@ -3,11 +3,12 @@ }: stdenv.mkDerivation rec { - name = "graphviz-2.36.0"; + version = "2.38.0"; + name = "graphviz-${version}"; src = fetchurl { url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz"; - sha256 = "0qb30z5sxlbjni732ndad3j4x7l36vsxpxn4fmf5fn7ivvc6dz9p"; + sha256 = "17l5czpvv5ilmg17frg0w4qwf89jzh2aglm9fgx0l0aakn6j7al1"; }; buildInputs = @@ -52,6 +53,9 @@ stdenv.mkDerivation rec { ''; hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; - maintainers = with stdenv.lib.maintainers; [ simons bjornfor ]; + maintainers = with stdenv.lib.maintainers; [ simons bjornfor raskin ]; + downloadPage = "http://www.graphviz.org/pub/graphviz/ARCHIVE/"; + inherit version; + updateWalker = true; }; } diff --git a/pkgs/tools/graphics/plotutils/default.nix b/pkgs/tools/graphics/plotutils/default.nix index ae0c4d19731..0f67de3c3ea 100644 --- a/pkgs/tools/graphics/plotutils/default.nix +++ b/pkgs/tools/graphics/plotutils/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU Plotutils, a powerful C/C++ library for exporting 2D vector graphics"; + description = "Powerful C/C++ library for exporting 2D vector graphics"; longDescription = '' The GNU plotutils package contains software for both programmers and diff --git a/pkgs/tools/inputmethods/anthy/default.nix b/pkgs/tools/inputmethods/anthy/default.nix new file mode 100644 index 00000000000..34ffa1568b9 --- /dev/null +++ b/pkgs/tools/inputmethods/anthy/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "anthy-9100h"; + + meta = with stdenv.lib; { + description = "Hiragana text to Kana Kanji mixed text Japanese input method"; + homepace = http://sourceforge.jp/projects/anthy/; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ iyzsong ]; + }; + + src = fetchurl { + url = "http://dl.sourceforge.jp/anthy/37536/anthy-9100h.tar.gz"; + sha256 = "0ism4zibcsa5nl77wwi12vdsfjys3waxcphn1p5s7d0qy1sz0mnj"; + }; +} diff --git a/pkgs/tools/inputmethods/uim/default.nix b/pkgs/tools/inputmethods/uim/default.nix new file mode 100644 index 00000000000..b8ee95fae92 --- /dev/null +++ b/pkgs/tools/inputmethods/uim/default.nix @@ -0,0 +1,44 @@ +{stdenv, fetchurl, intltool, pkgconfig, qt4, gtk2, gtk3, kdelibs, cmake, ... }: + +stdenv.mkDerivation rec { + version = "1.8.6"; + name = "uim-${version}"; + + buildInputs = [ + intltool + pkgconfig + qt4 + gtk2 + gtk3 + kdelibs + cmake + ]; + + patches = [ ./immodules_cache.patch ]; + + configureFlags = [ + "--with-gtk2" + "--with-gtk3" + "--enable-kde4-applet" + "--enable-notify=knotify4" + "--enable-pref" + "--with-qt4" + "--with-qt4-immodule" + "--with-skk" + "--with-x" + ]; + + dontUseCmakeConfigure = true; + + src = fetchurl { + url = "http://uim.googlecode.com/files/uim-${version}.tar.bz2"; + sha1 = "43b9dbdead6797880e6cfc9c032ecb2d37d42777"; + }; + + meta = { + homepage = "http://code.google.com/p/uim/"; + description = "A multilingual input method framework"; + license = stdenv.lib.licenses.bsd3; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/tools/inputmethods/uim/immodules_cache.patch b/pkgs/tools/inputmethods/uim/immodules_cache.patch new file mode 100644 index 00000000000..c2d08b661e3 --- /dev/null +++ b/pkgs/tools/inputmethods/uim/immodules_cache.patch @@ -0,0 +1,231 @@ +diff -ru -x '*~' uim-1.8.6.orig/gtk2/immodule/Makefile.am uim-1.8.6/gtk2/immodule/Makefile.am +--- uim-1.8.6.orig/gtk2/immodule/Makefile.am 2013-06-30 13:26:09.000000000 +0900 ++++ uim-1.8.6/gtk2/immodule/Makefile.am 2014-07-13 21:51:26.538400004 +0900 +@@ -1,5 +1,5 @@ + uim_gtk_im_module_path = $(libdir)/gtk-2.0 +-uim_gtk_im_module_file = $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules ++uim_gtk_im_module_file = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules.cache + + moduledir = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules + +@@ -38,48 +38,12 @@ + + install-data-hook: gtk-rc-get-immodule-file + if test -z $(DESTDIR); then \ +- if test $(libdir) = $(GTK_LIBDIR); then \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \ +- echo "*** \"`$(GTK_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \ +- else \ +- echo "********************** Warning ***********************"; \ +- echo " $(QUERY_COMMAND) not found"; \ +- echo " Please make sure to update"; \ +- echo " \"`$(GTK_RC_GET_IMMODULE_FILE)`\""; \ +- echo " manually."; \ +- echo "******************************************************"; \ +- fi \ +- else \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- $(mkinstalldirs) $(sysconfdir)/gtk-2.0; \ +- GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ +- echo "******************************************************"; \ +- echo " You need to set"; \ +- echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \ +- echo " environment variable to use this module."; \ +- echo "******************************************************"; \ +- else \ +- echo "********************** Warning ***********************"; \ +- echo " $(QUERY_COMMAND) not found"; \ +- echo " Please make sure to update"; \ +- echo " \"$(uim_gtk_im_module_file)\""; \ +- echo " manually, and set"; \ +- echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \ +- echo " environment variable to use this module."; \ +- echo "******************************************************"; \ +- fi \ +- fi \ ++ $(mkinstalldirs) $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@; \ ++ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ + fi + uninstall-hook: + if test -z $(DESTDIR); then \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- if test $(libdir) = $(GTK_LIBDIR); then \ +- $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \ +- else \ +- GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ +- fi \ +- fi \ ++ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ + fi + else + install-data-hook: +diff -ru -x '*~' uim-1.8.6.orig/gtk2/immodule/Makefile.in uim-1.8.6/gtk2/immodule/Makefile.in +--- uim-1.8.6.orig/gtk2/immodule/Makefile.in 2013-06-30 13:27:08.000000000 +0900 ++++ uim-1.8.6/gtk2/immodule/Makefile.in 2014-07-13 22:12:27.947595507 +0900 +@@ -434,7 +434,7 @@ + top_srcdir = @top_srcdir@ + uim_pixmapsdir = @uim_pixmapsdir@ + uim_gtk_im_module_path = $(libdir)/gtk-2.0 +-uim_gtk_im_module_file = $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules ++uim_gtk_im_module_file = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules.cache + moduledir = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules + @GTK2_TRUE@im_uim_la = im-uim.la + @GTK2_TRUE@im_uim_la_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) +@@ -875,48 +875,12 @@ + + @GTK2_TRUE@install-data-hook: gtk-rc-get-immodule-file + @GTK2_TRUE@ if test -z $(DESTDIR); then \ +-@GTK2_TRUE@ if test $(libdir) = $(GTK_LIBDIR); then \ +-@GTK2_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK2_TRUE@ $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \ +-@GTK2_TRUE@ echo "*** \"`$(GTK_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \ +-@GTK2_TRUE@ else \ +-@GTK2_TRUE@ echo "********************** Warning ***********************"; \ +-@GTK2_TRUE@ echo " $(QUERY_COMMAND) not found"; \ +-@GTK2_TRUE@ echo " Please make sure to update"; \ +-@GTK2_TRUE@ echo " \"`$(GTK_RC_GET_IMMODULE_FILE)`\""; \ +-@GTK2_TRUE@ echo " manually."; \ +-@GTK2_TRUE@ echo "******************************************************"; \ +-@GTK2_TRUE@ fi \ +-@GTK2_TRUE@ else \ +-@GTK2_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK2_TRUE@ $(mkinstalldirs) $(sysconfdir)/gtk-2.0; \ +-@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ +-@GTK2_TRUE@ echo "******************************************************"; \ +-@GTK2_TRUE@ echo " You need to set"; \ +-@GTK2_TRUE@ echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \ +-@GTK2_TRUE@ echo " environment variable to use this module."; \ +-@GTK2_TRUE@ echo "******************************************************"; \ +-@GTK2_TRUE@ else \ +-@GTK2_TRUE@ echo "********************** Warning ***********************"; \ +-@GTK2_TRUE@ echo " $(QUERY_COMMAND) not found"; \ +-@GTK2_TRUE@ echo " Please make sure to update"; \ +-@GTK2_TRUE@ echo " \"$(uim_gtk_im_module_file)\""; \ +-@GTK2_TRUE@ echo " manually, and set"; \ +-@GTK2_TRUE@ echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \ +-@GTK2_TRUE@ echo " environment variable to use this module."; \ +-@GTK2_TRUE@ echo "******************************************************"; \ +-@GTK2_TRUE@ fi \ +-@GTK2_TRUE@ fi \ ++@GTK2_TRUE@ $(mkinstalldirs) $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@; \ ++@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ + @GTK2_TRUE@ fi + @GTK2_TRUE@uninstall-hook: + @GTK2_TRUE@ if test -z $(DESTDIR); then \ +-@GTK2_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK2_TRUE@ if test $(libdir) = $(GTK_LIBDIR); then \ +-@GTK2_TRUE@ $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \ +-@GTK2_TRUE@ else \ +-@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ +-@GTK2_TRUE@ fi \ +-@GTK2_TRUE@ fi \ ++@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ + @GTK2_TRUE@ fi + @GTK2_FALSE@install-data-hook: + +diff -ru -x '*~' uim-1.8.6.orig/gtk3/immodule/Makefile.am uim-1.8.6/gtk3/immodule/Makefile.am +--- uim-1.8.6.orig/gtk3/immodule/Makefile.am 2013-06-30 13:26:20.000000000 +0900 ++++ uim-1.8.6/gtk3/immodule/Makefile.am 2014-07-13 21:55:38.114246503 +0900 +@@ -45,42 +45,11 @@ + + install-data-hook: gtk3-rc-get-immodule-file + if test -z $(DESTDIR); then \ +- if test $(libdir) = $(GTK3_LIBDIR); then \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- $(QUERY_COMMAND) --update-cache; \ +- echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \ +- else \ +- echo "********************** Warning ***********************"; \ +- echo " $(QUERY_COMMAND) not found"; \ +- echo " Please make sure to update"; \ +- echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \ +- echo " manually."; \ +- echo "******************************************************"; \ +- fi \ +- else \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \ +- else \ +- echo "********************** Warning ***********************"; \ +- echo " $(QUERY_COMMAND) not found"; \ +- echo " Please make sure to update"; \ +- echo " immodules.cache"; \ +- echo " manually, and set"; \ +- echo " GTK_IM_MODULE_FILE=PATH_TO/immodule.cache"; \ +- echo " environment variable to use this module."; \ +- echo "******************************************************"; \ +- fi \ +- fi \ ++ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \ + fi + uninstall-hook: + if test -z $(DESTDIR); then \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- if test $(libdir) = $(GTK3_LIBDIR); then \ +- $(QUERY_COMMAND) --update-cache; \ +- else \ +- GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \ +- fi \ +- fi \ ++ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \ + fi + else + install-data-hook: +diff -ru -x '*~' uim-1.8.6.orig/gtk3/immodule/Makefile.in uim-1.8.6/gtk3/immodule/Makefile.in +--- uim-1.8.6.orig/gtk3/immodule/Makefile.in 2013-06-30 13:27:08.000000000 +0900 ++++ uim-1.8.6/gtk3/immodule/Makefile.in 2014-07-13 21:56:11.531225832 +0900 +@@ -893,42 +893,11 @@ + + @GTK3_TRUE@install-data-hook: gtk3-rc-get-immodule-file + @GTK3_TRUE@ if test -z $(DESTDIR); then \ +-@GTK3_TRUE@ if test $(libdir) = $(GTK3_LIBDIR); then \ +-@GTK3_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK3_TRUE@ $(QUERY_COMMAND) --update-cache; \ +-@GTK3_TRUE@ echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \ +-@GTK3_TRUE@ else \ +-@GTK3_TRUE@ echo "********************** Warning ***********************"; \ +-@GTK3_TRUE@ echo " $(QUERY_COMMAND) not found"; \ +-@GTK3_TRUE@ echo " Please make sure to update"; \ +-@GTK3_TRUE@ echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \ +-@GTK3_TRUE@ echo " manually."; \ +-@GTK3_TRUE@ echo "******************************************************"; \ +-@GTK3_TRUE@ fi \ +-@GTK3_TRUE@ else \ +-@GTK3_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \ +-@GTK3_TRUE@ else \ +-@GTK3_TRUE@ echo "********************** Warning ***********************"; \ +-@GTK3_TRUE@ echo " $(QUERY_COMMAND) not found"; \ +-@GTK3_TRUE@ echo " Please make sure to update"; \ +-@GTK3_TRUE@ echo " immodules.cache"; \ +-@GTK3_TRUE@ echo " manually, and set"; \ +-@GTK3_TRUE@ echo " GTK_IM_MODULE_FILE=PATH_TO/immodule.cache"; \ +-@GTK3_TRUE@ echo " environment variable to use this module."; \ +-@GTK3_TRUE@ echo "******************************************************"; \ +-@GTK3_TRUE@ fi \ +-@GTK3_TRUE@ fi \ ++@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \ + @GTK3_TRUE@ fi + @GTK3_TRUE@uninstall-hook: + @GTK3_TRUE@ if test -z $(DESTDIR); then \ +-@GTK3_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK3_TRUE@ if test $(libdir) = $(GTK3_LIBDIR); then \ +-@GTK3_TRUE@ $(QUERY_COMMAND) --update-cache; \ +-@GTK3_TRUE@ else \ +-@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \ +-@GTK3_TRUE@ fi \ +-@GTK3_TRUE@ fi \ ++@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \ + @GTK3_TRUE@ fi + @GTK3_FALSE@install-data-hook: + +diff -ru -x '*~' uim-1.8.6.orig/qt4/immodule/quiminputcontextplugin.pro.in uim-1.8.6/qt4/immodule/quiminputcontextplugin.pro.in +--- uim-1.8.6.orig/qt4/immodule/quiminputcontextplugin.pro.in 2013-06-30 13:26:20.000000000 +0900 ++++ uim-1.8.6/qt4/immodule/quiminputcontextplugin.pro.in 2014-03-09 11:31:19.388085048 +0900 +@@ -35,4 +35,4 @@ + + TARGET = uiminputcontextplugin + +-target.path += @DESTDIR@$$[QT_INSTALL_PLUGINS]/inputmethods ++target.path += @DESTDIR@@exec_prefix@/lib/qt4/plugins/inputmethods diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix index dfe5476f813..8d7ba0c70c8 100644 --- a/pkgs/tools/misc/cloc/default.nix +++ b/pkgs/tools/misc/cloc/default.nix @@ -1,30 +1,25 @@ { stdenv, fetchurl, perl, AlgorithmDiff, RegexpCommon }: stdenv.mkDerivation rec { - + name = "cloc-${version}"; - version = "1.58"; + version = "1.62"; src = fetchurl { url = "mirror://sourceforge/cloc/cloc-${version}.tar.gz"; - sha256 = "1k92jldy4m717lh1xd6yachx3l2hhpx76qhj1ipnx12hsxw1zc8w"; + sha256 = "1cxc663dccd0sc2m0aj5lxdbnbzrys6rh9n8q122h74bfvsiw4f4"; }; buildInputs = [ perl AlgorithmDiff RegexpCommon ]; - unpackPhase = '' - mkdir ${name} - tar xf $src -C ${name} - cd ${name} - ''; - makeFlags = [ "prefix=" "DESTDIR=$(out)" "INSTALL=install" ]; meta = { description = "A program that counts lines of source code"; homepage = http://cloc.sourceforge.net; license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; }; } diff --git a/pkgs/tools/misc/cpuminer-multi/default.nix b/pkgs/tools/misc/cpuminer-multi/default.nix new file mode 100644 index 00000000000..c61e0ff00b3 --- /dev/null +++ b/pkgs/tools/misc/cpuminer-multi/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchgit, curl, jansson, autoconf, automake, openssl +, aesni ? true }: + +let + rev = "4230012da5d1cc491976c6f5e45da36db6d9f576"; + date = "20140619"; +in +stdenv.mkDerivation rec { + name = "cpuminer-multi-${date}-${stdenv.lib.strings.substring 0 7 rev}"; + + src = fetchgit { + inherit rev; + url = https://github.com/wolf9466/cpuminer-multi.git; + sha256 = "c19a5dd1bfdbbaec3729f61248e858a5d8701424fffe67fdabf8179ced9c110b"; + }; + + buildInputs = [ autoconf automake curl jansson openssl ]; + + preConfigure = '' + ./autogen.sh + ''; + + configureFlags = if aesni then [ "--disable-aes-ni" ] else [ ]; + + meta = with stdenv.lib; { + description = "Multi-algo CPUMiner"; + homepage = https://github.com/wolf9466/cpuminer-multi; + license = licenses.gpl2; + maintainers = [ maintainers.emery ]; + }; +} \ No newline at end of file diff --git a/pkgs/tools/misc/flashrom/default.nix b/pkgs/tools/misc/flashrom/default.nix new file mode 100644 index 00000000000..c4e74359b15 --- /dev/null +++ b/pkgs/tools/misc/flashrom/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, libftdi, pciutils }: + +let version = "0.9.7"; in +stdenv.mkDerivation rec { + name = "flashrom-${version}"; + + src = fetchurl { + url = "http://download.flashrom.org/releases/${name}.tar.bz2"; + sha256 = "5a55212d00791981a9a1cb0cdca9d9e58bea6d399864251e7b410b4d3d6137e9"; + }; + + buildInputs = [ pkgconfig libftdi pciutils ]; + + makeFlags = ["PREFIX=$out"]; + + meta = { + homepage = "http://www.flashrom.org"; + description = "Utility for reading, writing, erasing and verifying flash ROM chips"; + license = "GPLv2"; + maintainers = [ stdenv.lib.maintainers.funfunctor ]; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix index 56e18227d66..0f8f82acaed 100644 --- a/pkgs/tools/misc/goaccess/default.nix +++ b/pkgs/tools/misc/goaccess/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { ]; meta = { - description = "GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems."; + description = "Real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems"; homepage = http://goaccess.prosoftcorp.com; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix index a7d03d1335f..5cdc468c2a5 100644 --- a/pkgs/tools/misc/hdf5/default.nix +++ b/pkgs/tools/misc/hdf5/default.nix @@ -3,6 +3,8 @@ , fetchurl , zlib ? null , szip ? null +, mpi ? null +, enableShared ? true }: stdenv.mkDerivation rec { version = "1.8.13"; @@ -12,11 +14,23 @@ stdenv.mkDerivation rec { sha256 = "1h9qdl321gzm3ihdhlijbl9sh9qcdrw94j7izg64yfqhxj7b7xl2"; }; + passthru = { + mpiSupport = (mpi != null); + inherit mpi; + }; + buildInputs = [] ++ stdenv.lib.optional (zlib != null) zlib ++ stdenv.lib.optional (szip != null) szip; - configureFlags = if szip != null then "--with-szlib=${szip}" else ""; + propagatedBuildInputs = [] + ++ stdenv.lib.optional (mpi != null) mpi; + + configureFlags = " + ${if szip != null then "--with-szlib=${szip}" else ""} + ${if mpi != null then "--enable-parallel" else ""} + ${if enableShared then "--enable-shared" else ""} + "; patches = [./bin-mv.patch]; diff --git a/pkgs/tools/misc/idutils/default.nix b/pkgs/tools/misc/idutils/default.nix index 2b2f3aeaca3..503beefa15a 100644 --- a/pkgs/tools/misc/idutils/default.nix +++ b/pkgs/tools/misc/idutils/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { patches = [ ./nix-mapping.patch ]; meta = { - description = "GNU Idutils, a text searching utility"; + description = "Text searching utility"; longDescription = '' An "ID database" is a binary file containing a list of file diff --git a/pkgs/tools/misc/ised/default.nix b/pkgs/tools/misc/ised/default.nix index 02cb65b1060..96acc6c8ab9 100644 --- a/pkgs/tools/misc/ised/default.nix +++ b/pkgs/tools/misc/ised/default.nix @@ -10,16 +10,15 @@ let (builtins.attrNames (builtins.removeAttrs x helperArgNames)); sourceInfo = rec { baseName="ised"; - version="2.5.0"; + version = "2.6.0"; name="${baseName}-${version}"; url="mirror://sourceforge/project/ised/${name}.tar.bz2"; - hash="1avfb4ivq6iz50rraci0pcxl0w94899sz6icdqc0l4954y4zs8qd"; }; in rec { src = a.fetchurl { url = sourceInfo.url; - sha256 = sourceInfo.hash; + sha256 = "0rf9brqkrad8f3czpfc1bxq9ybv3nxci9276wdxas033c82cqkjs"; }; inherit (sourceInfo) name version; @@ -37,11 +36,7 @@ rec { platforms = with a.lib.platforms; linux; license = a.lib.licenses.gpl3Plus; - }; - passthru = { - updateInfo = { - downloadPage = "ised.sf.net"; - }; + inherit version; }; }) x diff --git a/pkgs/tools/misc/ised/default.upstream b/pkgs/tools/misc/ised/default.upstream new file mode 100644 index 00000000000..6539bf477e5 --- /dev/null +++ b/pkgs/tools/misc/ised/default.upstream @@ -0,0 +1,4 @@ +url http://ised.sourceforge.net/web_nav.html +SF_version_tarball +SF_redirect +minimize_overwrite diff --git a/pkgs/tools/misc/lbdb/default.nix b/pkgs/tools/misc/lbdb/default.nix index 20830bad6bf..6d03b09c588 100644 --- a/pkgs/tools/misc/lbdb/default.nix +++ b/pkgs/tools/misc/lbdb/default.nix @@ -17,6 +17,6 @@ stdenv.mkDerivation { homepage = "http://www.spinnaker.de/lbdb/"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.all; - description = "The Little Brother's Database (lbdb)"; + description = "The Little Brother's Database"; }; } diff --git a/pkgs/tools/misc/ldapvi/default.nix b/pkgs/tools/misc/ldapvi/default.nix index 28d9b4863d4..6dba834e8be 100644 --- a/pkgs/tools/misc/ldapvi/default.nix +++ b/pkgs/tools/misc/ldapvi/default.nix @@ -21,7 +21,11 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "ldapvi is an interactive LDAP client for Unix terminals. Using it, you can update LDAP entries with a text editor"; + description = "Interactive LDAP client for Unix terminals"; + longDescription = '' + ldapvi is an interactive LDAP client for Unix terminals. Using it, you + can update LDAP entries with a text editor. + ''; homepage = http://www.lichteblau.com/ldapvi/; license = licenses.gpl2; maintainers = with maintainers; [ iElectric ]; diff --git a/pkgs/tools/misc/logstash-forwarder/default.nix b/pkgs/tools/misc/logstash-forwarder/default.nix index 52180c75c98..961dbc08335 100644 --- a/pkgs/tools/misc/logstash-forwarder/default.nix +++ b/pkgs/tools/misc/logstash-forwarder/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, go }: +{ stdenv, fetchgit, go_1_1 }: stdenv.mkDerivation { name = "logstash-forwarder-20140410"; src = fetchgit { @@ -6,7 +6,7 @@ stdenv.mkDerivation { rev = "ec504792108ab6536b45bcf6dff6d26a6b56fef3"; sha256 = "309545ceaec171bee997cad260bef1433e041b9f3bfe617d475bcf79924f943d"; }; - buildInputs = [ go ]; + buildInputs = [ go_1_1 ]; installPhase = '' mkdir -p $out/bin cp build/bin/logstash-forwarder $out/bin @@ -15,5 +15,6 @@ stdenv.mkDerivation { meta = { license = stdenv.lib.licenses.asl20; homepage = https://github.com/elasticsearch/logstash-forwarder; + platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/tools/misc/minicom/default.nix b/pkgs/tools/misc/minicom/default.nix index 8ede3aa918b..d731e856790 100644 --- a/pkgs/tools/misc/minicom/default.nix +++ b/pkgs/tools/misc/minicom/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Minicom, a modem control and terminal emulation program"; + description = "Modem control and terminal emulation program"; homepage = http://alioth.debian.org/projects/minicom/; longDescription = diff --git a/pkgs/tools/misc/most/default.nix b/pkgs/tools/misc/most/default.nix index b7f7842680f..b97d8f0b719 100644 --- a/pkgs/tools/misc/most/default.nix +++ b/pkgs/tools/misc/most/default.nix @@ -20,7 +20,8 @@ stdenv.mkDerivation { buildInputs = [ slang ncurses ]; meta = { - description = '' + description = "A terminal pager similar to 'more' and 'less'"; + longDescription = '' MOST is a powerful paging program for Unix, VMS, MSDOS, and win32 systems. Unlike other well-known paging programs most supports multiple windows and can scroll left and right. Why settle for less? diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix index df360bb9804..727657ca6e8 100644 --- a/pkgs/tools/misc/parallel/default.nix +++ b/pkgs/tools/misc/parallel/default.nix @@ -1,11 +1,11 @@ { fetchurl, stdenv, perl }: stdenv.mkDerivation rec { - name = "parallel-20140222"; + name = "parallel-20140822"; src = fetchurl { url = "mirror://gnu/parallel/${name}.tar.bz2"; - sha256 = "0zb3hg92br6a53jn0pzfl16ffc1hfw81jk7nzw5spkshsdrcqx3y"; + sha256 = "8a146a59bc71218921d561f2c801b85e06fe3a21571083b58e6e0966dd397fd4"; }; patchPhase = @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU Parallel, a shell tool for executing jobs in parallel"; + description = "Shell tool for executing jobs in parallel"; longDescription = '' GNU Parallel is a shell tool for executing jobs in parallel. A job diff --git a/pkgs/tools/misc/parted/default.nix b/pkgs/tools/misc/parted/default.nix index 108d4d5e040..01b9f391a44 100644 --- a/pkgs/tools/misc/parted/default.nix +++ b/pkgs/tools/misc/parted/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { "export PATH=\"${utillinux}/sbin:$PATH\""; meta = { - description = "GNU Parted, a tool to create, destroy, resize, check, and copy partitions"; + description = "Create, destroy, resize, check, and copy partitions"; longDescription = '' GNU Parted is an industrial-strength package for creating, destroying, diff --git a/pkgs/tools/misc/pg_top/default.nix b/pkgs/tools/misc/pg_top/default.nix index 392fcbcc8ff..0d379cd11d4 100644 --- a/pkgs/tools/misc/pg_top/default.nix +++ b/pkgs/tools/misc/pg_top/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation { buildInputs = [ncurses postgresql]; meta = { - description = "pg_top is 'top' for PostgreSQL"; + description = "A 'top' like tool for PostgreSQL"; longDescription = '' pg_top allows you to: diff --git a/pkgs/tools/misc/recutils/default.nix b/pkgs/tools/misc/recutils/default.nix index f2f5f37ebe4..4d6829e99a4 100644 --- a/pkgs/tools/misc/recutils/default.nix +++ b/pkgs/tools/misc/recutils/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { buildInputs = [ curl emacs ] ++ (stdenv.lib.optionals doCheck [ check bc ]); meta = { - description = "GNU Recutils, tools and libraries to access human-editable, text-based databases"; + description = "Tools and libraries to access human-editable, text-based databases"; longDescription = '' GNU Recutils is a set of tools and libraries to access diff --git a/pkgs/tools/misc/rrdtool/default.nix b/pkgs/tools/misc/rrdtool/default.nix index aa14087dfc8..29d98284ccf 100644 --- a/pkgs/tools/misc/rrdtool/default.nix +++ b/pkgs/tools/misc/rrdtool/default.nix @@ -7,6 +7,11 @@ stdenv.mkDerivation { sha256 = "07fgn0y4yj7p2vh6a37q273hf98gkfw2sdam5r1ldn1k0m1ayrqj"; }; buildInputs = [ gettext perl pkgconfig libxml2 pango cairo ]; + + postInstall = '' + # for munin support + mv $out/lib/perl/5*/*/*.pm $out/lib/perl/5*/ + ''; meta = { homepage = http://oss.oetiker.ch/rrdtool/; diff --git a/pkgs/tools/misc/s6-portable-utils/default.nix b/pkgs/tools/misc/s6-portable-utils/default.nix new file mode 100644 index 00000000000..f8e7dfaddc9 --- /dev/null +++ b/pkgs/tools/misc/s6-portable-utils/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchurl, skalibs }: + +let + + version = "1.0.3.2"; + +in stdenv.mkDerivation rec { + + name = "s6-portable-utils-${version}"; + + src = fetchurl { + url = "http://www.skarnet.org/software/s6-portable-utils/${name}.tar.gz"; + sha256 = "040nmls7qbgw8yn502lym4kgqh5zxr2ks734bqajpi2ricnasvhl"; + }; + + buildInputs = [ skalibs ]; + + sourceRoot = "admin/${name}"; + + configurePhase = '' + pushd conf-compile + + printf "$out/bin" > conf-install-command + printf "$out/libexec" > conf-install-libexec + + # let nix builder strip things, cross-platform + truncate --size 0 conf-stripbins + truncate --size 0 conf-striplibs + + printf "${skalibs}/sysdeps" > import + printf "%s" "${skalibs}/include" > path-include + printf "%s" "${skalibs}/lib" > path-library + + rm -f flag-slashpackage + touch flag-allstatic + + popd + ''; + + preBuild = '' + patchShebangs src/sys + ''; + + preInstall = '' + mkdir -p "$out/libexec" + ''; + + meta = { + homepage = http://www.skarnet.org/software/s6-portable-utils/; + description = "A set of tiny general Unix utilities optimized for simplicity and small size."; + platforms = stdenv.lib.platforms.all; + license = stdenv.lib.licenses.isc; + }; + +} diff --git a/pkgs/tools/misc/time/default.nix b/pkgs/tools/misc/time/default.nix index 3a35e9a9f1c..737ba244fe8 100644 --- a/pkgs/tools/misc/time/default.nix +++ b/pkgs/tools/misc/time/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation { patches = [ ./max-resident.patch ]; meta = { - description = "GNU Time, a tool that runs programs and summarizes the system resources they use"; + description = "Tool that runs programs and summarizes the system resources they use"; longDescription = '' The `time' command runs another program, then displays diff --git a/pkgs/tools/misc/tmpwatch/default.nix b/pkgs/tools/misc/tmpwatch/default.nix index c19d58b9816..760f56726fa 100644 --- a/pkgs/tools/misc/tmpwatch/default.nix +++ b/pkgs/tools/misc/tmpwatch/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { homepage = https://fedorahosted.org/tmpwatch/; - description = "The tmpwatch utility recursively searches through specified directories and removes files which have not been accessed in a specified period of time."; + description = "Recursively searches through specified directories and removes files which have not been accessed in a specified period of time"; license = licenses.gpl2; maintainers = with maintainers; [ vlstill ]; platforms = platforms.unix; diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix index 4acbabb50f9..32f681dabeb 100644 --- a/pkgs/tools/misc/tmux/default.nix +++ b/pkgs/tools/misc/tmux/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://tmux.sourceforge.net/; - description = "tmux is a terminal multiplexer"; + description = "Terminal multiplexer"; longDescription = '' tmux is intended to be a modern, BSD-licensed alternative to programs such as GNU screen. Major features include: diff --git a/pkgs/tools/misc/xdaliclock/default.nix b/pkgs/tools/misc/xdaliclock/default.nix index 79c6a743bce..df1a7eedeff 100644 --- a/pkgs/tools/misc/xdaliclock/default.nix +++ b/pkgs/tools/misc/xdaliclock/default.nix @@ -12,17 +12,16 @@ let (builtins.attrNames (builtins.removeAttrs x helperArgNames)); sourceInfo = rec { baseName="xdaliclock"; - version="2.40"; + version = "2.41"; name="${baseName}-${version}"; project="${baseName}"; url="http://www.jwz.org/${project}/${name}.tar.gz"; - hash="03i8vwi9vz3gr938wr4miiymwv283mg11wgfaf2jhl6aqbmz4id7"; }; in rec { src = a.fetchurl { url = sourceInfo.url; - sha256 = sourceInfo.hash; + sha256 = "1crkjvza692irkqm9vwgn58m8ps93n0rxigm6pasgl5dnx3p6d1d"; }; inherit (sourceInfo) name version; @@ -46,10 +45,8 @@ rec { platforms = with a.lib.platforms; linux ++ freebsd; license = "free"; #TODO BSD on Gentoo, looks like MIT - }; - passthru = { - updateInfo = { - downloadPage = "http://www.jwz.org/xdaliclock/"; - }; + downloadPage = "http://www.jwz.org/xdaliclock/"; + inherit version; + updateWalker = true; }; }) x diff --git a/pkgs/tools/misc/yad/default.nix b/pkgs/tools/misc/yad/default.nix index fcdf5095d70..d884d48f521 100644 --- a/pkgs/tools/misc/yad/default.nix +++ b/pkgs/tools/misc/yad/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://code.google.com/p/yad/"; - description = "Yad (yet another dialog) is a GUI dialog tool for shell scripts"; + description = "GUI dialog tool for shell scripts"; longDescription = '' Yad (yet another dialog) is a GUI dialog tool for shell scripts. It is a fork of Zenity with many improvements, such as custom buttons, additional diff --git a/pkgs/tools/networking/atftp/default.nix b/pkgs/tools/networking/atftp/default.nix index 225c3c04f7a..b6bdfc7fabc 100644 --- a/pkgs/tools/networking/atftp/default.nix +++ b/pkgs/tools/networking/atftp/default.nix @@ -1,59 +1,34 @@ -x@{builderDefsPackage - , readline, tcp_wrappers, pcre, runCommand - , ...}: -builderDefsPackage -(a : -let - helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ - []; - - buildInputs = map (n: builtins.getAttr n x) - (builtins.attrNames (builtins.removeAttrs x helperArgNames)); - sourceInfo = rec { - baseName="atftp"; - version="0.7"; - name="${baseName}-${version}"; - url="mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg.orig.tar.gz"; - hash="0nd5dl14d6z5abgcbxcn41rfn3syza6s57bbgh4aq3r9cxdmz08q"; - }; +{ lib, stdenv, fetchurl, readline, tcp_wrappers, pcre, makeWrapper }: +assert stdenv.isLinux; +assert stdenv.gcc.gcc != null; +let +version = "0.7"; +debianPatch = fetchurl { +url = "mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg-11.diff.gz"; +sha256 = "07g4qbmp0lnscg2dkj6nsj657jaghibvfysdm1cdxcn215n3zwqd"; +}; in -rec { - src = a.fetchurl { - url = sourceInfo.url; - sha256 = sourceInfo.hash; - }; - - inherit (sourceInfo) name version; - inherit buildInputs; - - /* doConfigure should be removed if not needed */ - phaseNames = ["doPatch" "doConfigure" "doMakeInstall"]; - - debianPatchGz = a.fetchurl { - url = ftp://ftp.ru.debian.org/pub/debian/pool/main/a/atftp/atftp_0.7.dfsg-11.diff.gz; - sha256 = "07g4qbmp0lnscg2dkj6nsj657jaghibvfysdm1cdxcn215n3zwqd"; - }; - - debianPatch = a.runCommand "atftp-0.7.dfsg-11" {} '' - gunzip < "${debianPatchGz}" > "$out" - ''; - - patches = [debianPatch]; - - meta = { - description = "Advanced tftp tools"; - maintainers = with a.lib.maintainers; - [ - raskin - ]; - platforms = with a.lib.platforms; - linux; - license = a.lib.licenses.gpl2Plus; - }; - passthru = { - updateInfo = { - downloadPage = "http://packages.debian.org/source/sid/atftp"; - }; - }; -}) x - +stdenv.mkDerivation { +name = "atftp"; +inherit version; +src = fetchurl { +url = "mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg.orig.tar.gz"; +sha256 = "0nd5dl14d6z5abgcbxcn41rfn3syza6s57bbgh4aq3r9cxdmz08q"; +}; +buildInputs = [ readline tcp_wrappers pcre makeWrapper ]; +patches = [ debianPatch ]; +postInstall = '' +wrapProgram $out/sbin/atftpd --prefix LD_LIBRARY_PATH : ${stdenv.gcc.gcc}/lib${if stdenv.system == "x86_64-linux" then "64" else ""} +''; +meta = { +description = "Advanced tftp tools"; +maintainers = lib.maintainers.raskin; +platforms = lib.platforms.linux; +license = lib.licenses.gpl2Plus; +passthru = { +updateInfo = { +downloadPage = "http://packages.debian.org/source/wheezy/atftp"; +}; +}; +}; +} diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix index 48e21f4507e..be107dfa81e 100644 --- a/pkgs/tools/networking/cjdns/default.nix +++ b/pkgs/tools/networking/cjdns/default.nix @@ -1,21 +1,27 @@ { stdenv, fetchgit, nodejs, which, python27 }: let - date = "20140303"; - rev = "f11ce1fd4795b0173ac0ef18c8a6f752aa824adb"; + date = "20140829"; + rev = "9595d67f9edd759054c5bd3aaee0968ff55e361a"; in stdenv.mkDerivation { name = "cjdns-${date}-${stdenv.lib.strings.substring 0 7 rev}"; src = fetchgit { - url = "git://github.com/cjdelisle/cjdns.git"; + url = "https://github.com/cjdelisle/cjdns.git"; inherit rev; - sha256 = "1bxhf9f1v0slf9mz3ll6jf45mkwvwxlf3yqxx9k23kjyr1nsc8s8"; + sha256 = "519c549c42ae26c5359ae13a4548c44b51e36db403964b4d9f78c19b749dfb83"; }; buildInputs = [ which python27 nodejs]; - builder = ./builder.sh; + patches = [ ./makekey.patch ]; + + buildPhase = "bash do"; + installPhase = '' + mkdir -p $out/sbin + cp cjdroute makekey $out/sbin + ''; meta = { homepage = https://github.com/cjdelisle/cjdns; diff --git a/pkgs/tools/networking/cjdns/makekey.patch b/pkgs/tools/networking/cjdns/makekey.patch new file mode 100644 index 00000000000..fcce5e3e728 --- /dev/null +++ b/pkgs/tools/networking/cjdns/makekey.patch @@ -0,0 +1,64 @@ +diff --git a/contrib/c/makekey.c b/contrib/c/makekey.c +new file mode 100644 +index 0000000..c7184e5 +--- /dev/null ++++ b/contrib/c/makekey.c +@@ -0,0 +1,46 @@ ++/* vim: set expandtab ts=4 sw=4: */ ++/* ++ * You may redistribute this program and/or modify it under the terms of ++ * the GNU General Public License as published by the Free Software Foundation, ++ * either version 3 of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ */ ++#include "crypto/random/Random.h" ++#include "memory/MallocAllocator.h" ++#include "crypto/AddressCalc.h" ++#include "util/AddrTools.h" ++#include "util/Hex.h" ++ ++#include "crypto_scalarmult_curve25519.h" ++ ++#include ++ ++int main(int argc, char** argv) ++{ ++ struct Allocator* alloc = MallocAllocator_new(1<<22); ++ struct Random* rand = Random_new(alloc, NULL, NULL); ++ ++ uint8_t privateKey[32]; ++ uint8_t publicKey[32]; ++ uint8_t ip[16]; ++ uint8_t hexPrivateKey[65]; ++ ++ for (;;) { ++ Random_bytes(rand, privateKey, 32); ++ crypto_scalarmult_curve25519_base(publicKey, privateKey); ++ if (AddressCalc_addressForPublicKey(ip, publicKey)) { ++ Hex_encode(hexPrivateKey, 65, privateKey, 32); ++ printf(hexPrivateKey); ++ return 0; ++ } ++ } ++ return 0; ++} ++ +diff --git a/node_build/make.js b/node_build/make.js +index 5e51645..11465e3 100644 +--- a/node_build/make.js ++++ b/node_build/make.js +@@ -339,6 +339,7 @@ Builder.configure({ + builder.buildExecutable('contrib/c/privatetopublic.c'); + builder.buildExecutable('contrib/c/sybilsim.c'); + builder.buildExecutable('contrib/c/makekeys.c'); ++ builder.buildExecutable('contrib/c/makekey.c'); + + builder.buildExecutable('crypto/random/randombytes.c'); + diff --git a/pkgs/tools/networking/cntlm/default.nix b/pkgs/tools/networking/cntlm/default.nix index cd3ae12a11b..f890bdddb69 100644 --- a/pkgs/tools/networking/cntlm/default.nix +++ b/pkgs/tools/networking/cntlm/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { ''; meta = { - description = "Cntlm is an NTLM/NTLMv2 authenticating HTTP proxy"; + description = "NTLM/NTLMv2 authenticating HTTP proxy"; homepage = http://cntlm.sourceforge.net/; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.qknight ]; diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index c99af220a56..7d955b44950 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -49,7 +49,7 @@ stdenv.mkDerivation { ''; meta = { - description = "The ConnMan project provides a daemon for managing internet connections"; + description = "Provides a daemon for managing internet connections"; homepage = "https://connman.net/"; maintainers = [ stdenv.lib.maintainers.matejc ]; # tested only on linux, might work on others also diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix index cec4057a284..3cfc902711e 100644 --- a/pkgs/tools/networking/dnsmasq/default.nix +++ b/pkgs/tools/networking/dnsmasq/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ pkgconfig, dbus_libs, nettle, stdenv, fetchurl }: stdenv.mkDerivation rec { name = "dnsmasq-2.71"; @@ -8,13 +8,35 @@ stdenv.mkDerivation rec { sha256 = "1fpzpzja7qr8b4kfdhh4i4sijp62c634yf0xvq2n4p7d5xbzn6a9"; }; + # Can't rely on make flags because of space in one of the parameters + buildPhase = '' + make COPTS="-DHAVE_DNSSEC -DHAVE_DBUS" + ''; + + # make flags used for installation only makeFlags = "DESTDIR= BINDIR=$(out)/bin MANDIR=$(out)/man LOCALEDIR=$(out)/share/locale"; - meta = { + postInstall = '' + install -Dm644 dbus/dnsmasq.conf $out/etc/dbus-1/system.d/dnsmasq.conf + install -Dm644 trust-anchors.conf $out/share/dnsmasq/trust-anchors.conf + + mkdir -p $out/share/dbus-1/system-services + cat < $out/share/dbus-1/system-services/uk.org.thekelleys.dnsmasq.service + [D-BUS Service] + Name=uk.org.thekelleys.dnsmasq + Exec=$out/sbin/dnsmasq -k -1 + User=root + SystemdService=dnsmasq.service + END + ''; + + buildInputs = [ pkgconfig dbus_libs nettle ]; + + meta = with stdenv.lib; { description = "An integrated DNS, DHCP and TFTP server for small networks"; homepage = http://www.thekelleys.org.uk/dnsmasq/doc.html; - license = "GPL"; - platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; - maintainers = [ stdenv.lib.maintainers.eelco ]; + license = licenses.gpl2; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [ eelco ]; }; } diff --git a/pkgs/tools/networking/flvstreamer/default.nix b/pkgs/tools/networking/flvstreamer/default.nix index f9322129612..ab8e14fddd0 100644 --- a/pkgs/tools/networking/flvstreamer/default.nix +++ b/pkgs/tools/networking/flvstreamer/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "flvstreamer is an command-line RTMP client"; + description = "Command-line RTMP client"; longDescription = '' flvstreamer is an open source command-line RTMP client intended to diff --git a/pkgs/tools/networking/getmail/default.nix b/pkgs/tools/networking/getmail/default.nix index 6d9666506b8..8c9103790b9 100644 --- a/pkgs/tools/networking/getmail/default.nix +++ b/pkgs/tools/networking/getmail/default.nix @@ -1,12 +1,13 @@ { stdenv, fetchurl, buildPythonPackage }: buildPythonPackage rec { - name = "getmail-4.43.0"; + version = "4.46.0"; + name = "getmail-${version}"; namePrefix = ""; src = fetchurl { url = "http://pyropus.ca/software/getmail/old-versions/${name}.tar.gz"; - sha256 = "0abcj4d2jp9y56c85kq7265d8wcij91w9lpzib9q6j9lcs4la8hy"; + sha256 = "15rqmm25pq6ll8aaqh8h6pfdkpqs7y6yismb3h3w1bz8j292c8zl"; }; doCheck = false; @@ -15,5 +16,9 @@ buildPythonPackage rec { description = "A program for retrieving mail"; maintainers = [ stdenv.lib.maintainers.raskin stdenv.lib.maintainers.iElectric ]; platforms = stdenv.lib.platforms.linux; + + homepage = "http://pyropus.ca/software/getmail/"; + inherit version; + updateWalker = true; }; } diff --git a/pkgs/tools/networking/host/default.nix b/pkgs/tools/networking/host/default.nix index c74dbe52829..54cb8b21aaf 100644 --- a/pkgs/tools/networking/host/default.nix +++ b/pkgs/tools/networking/host/default.nix @@ -18,7 +18,7 @@ let version = "20000331"; in installTargets = "install man"; meta = { - description = "`host', a DNS resolution utility"; + description = "DNS resolution utility"; license = "BSD-style"; }; } diff --git a/pkgs/tools/networking/inetutils/default.nix b/pkgs/tools/networking/inetutils/default.nix index 20ee6da8a30..a6a921f6f58 100644 --- a/pkgs/tools/networking/inetutils/default.nix +++ b/pkgs/tools/networking/inetutils/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "GNU Inetutils, a collection of common network programs"; + description = "Collection of common network programs"; longDescription = '' The GNU network utilities suite provides the diff --git a/pkgs/tools/networking/jnettop/default.nix b/pkgs/tools/networking/jnettop/default.nix index 49753d189d6..cfeaf47fdf2 100644 --- a/pkgs/tools/networking/jnettop/default.nix +++ b/pkgs/tools/networking/jnettop/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { preConfigure = '' autoconf ''; meta = { - description = "Jnettop, a network traffic visualizer"; + description = "Network traffic visualizer"; longDescription = '' Jnettop is a traffic visualiser, which captures traffic going diff --git a/pkgs/tools/networking/lsh/default.nix b/pkgs/tools/networking/lsh/default.nix index 6be4119469e..c86dba91f5e 100644 --- a/pkgs/tools/networking/lsh/default.nix +++ b/pkgs/tools/networking/lsh/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { buildInputs = [ gperf guile gmp zlib liboop readline gnum4 pam ]; meta = { - description = "GNU lsh, a GPL'd implementation of the SSH protocol"; + description = "GPL'd implementation of the SSH protocol"; longDescription = '' lsh is a free implementation (in the GNU sense) of the ssh diff --git a/pkgs/tools/networking/mailutils/default.nix b/pkgs/tools/networking/mailutils/default.nix index 4c1001310ae..0ee49032704 100755 --- a/pkgs/tools/networking/mailutils/default.nix +++ b/pkgs/tools/networking/mailutils/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { doCheck = false; meta = { - description = "GNU Mailutils is a rich and powerful protocol-independent mail framework"; + description = "Rich and powerful protocol-independent mail framework"; longDescription = '' GNU Mailutils is a rich and powerful protocol-independent mail diff --git a/pkgs/tools/networking/minidlna/default.nix b/pkgs/tools/networking/minidlna/default.nix index 02013d8ede6..9db42f09d81 100644 --- a/pkgs/tools/networking/minidlna/default.nix +++ b/pkgs/tools/networking/minidlna/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { buildInputs = [ ffmpeg flac libvorbis libogg libid3tag libexif libjpeg sqlite ]; meta = { - description = "MiniDLNA Media Server"; + description = "Media server software"; longDescription = '' MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully compliant with DLNA/UPnP-AV clients. diff --git a/pkgs/tools/networking/netboot/default.nix b/pkgs/tools/networking/netboot/default.nix index ec49770d269..dbf393094c8 100644 --- a/pkgs/tools/networking/netboot/default.nix +++ b/pkgs/tools/networking/netboot/default.nix @@ -1,47 +1,18 @@ -x@{builderDefsPackage - , fetchurl, yacc, bison, ...}: -builderDefsPackage -(a : -let - helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ - []; +{ stdenv, fetchurl, yacc, lzo, db4 }: - buildInputs = map (n: builtins.getAttr n x) - (builtins.attrNames (builtins.removeAttrs x helperArgNames)); - sourceInfo = rec { - version="0.10.2"; - baseName="netboot"; - name="${baseName}-${version}"; - url="mirror://sourceforge/netboot/${name}.tar.gz"; - hash="09w09bvwgb0xzn8hjz5rhi3aibysdadbg693ahn8rylnqfq4hwg0"; - }; -in -rec { - src = a.fetchurl { - url = sourceInfo.url; - sha256 = sourceInfo.hash; +stdenv.mkDerivation rec { + name = "netboot-0.10.2"; + src = fetchurl { + url = "mirror://sourceforge/netboot/${name}.tar.gz"; + sha256 = "09w09bvwgb0xzn8hjz5rhi3aibysdadbg693ahn8rylnqfq4hwg0"; }; + + buildInputs = [ yacc lzo db4 ]; - inherit (sourceInfo) name version; - inherit buildInputs; - - /* doConfigure should be removed if not needed */ - phaseNames = ["doUnpack" "doConfigure" "doMakeInstall"]; - - meta = { + meta = with stdenv.lib; { description = "Mini PXE server"; - maintainers = with a.lib.maintainers; - [ - raskin - ]; - platforms = with a.lib.platforms; - linux; + maintainers = [ maintainers.raskin ]; + platforms = ["x86_64-linux"]; license = "free-noncopyleft"; }; - passthru = { - updateInfo = { - downloadPage = "https://github.com/ITikhonov/netboot"; - }; - }; -}) x - +} \ No newline at end of file diff --git a/pkgs/tools/networking/ntopng/default.nix b/pkgs/tools/networking/ntopng/default.nix index 3c33da1b661..52554209d59 100644 --- a/pkgs/tools/networking/ntopng/default.nix +++ b/pkgs/tools/networking/ntopng/default.nix @@ -1,16 +1,36 @@ { stdenv, fetchurl, libpcap, gnutls, libgcrypt, libxml2, glib, geoip, sqlite -, which +, which, autoreconfHook, subversion, pkgconfig, groff }: # ntopng includes LuaJIT, mongoose, rrdtool and zeromq in its third-party/ # directory. stdenv.mkDerivation rec { - name = "ntopng-1.1_6932"; + name = "ntopng-1.2.0_r8116"; + + geoLiteCity = fetchurl { + url = "http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz"; + sha256 = "1rv5yx5xgz04ymicx9pilidm19wh01ql2klwjcdakv558ndxdzd5"; + }; + + geoLiteCityV6 = fetchurl { + url = "http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz"; + sha256 = "0j974qpi92wwnibq46h16vxpcz7yy8bbqc4k8kmby1yx994k33v4"; + }; + + geoIPASNum = fetchurl { + url = "http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz"; + sha256 = "1msnbls66npq001nmf1wmkrh6vyacgi8g5phfm1c34cz7vqnh683"; + }; + + geoIPASNumV6 = fetchurl { + url = "http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNumv6.dat.gz"; + sha256 = "126syia75mkxs6xfinfp70xcfq6a3rgfmh673pzzkwxya393lbdn"; + }; src = fetchurl { url = "mirror://sourceforge/project/ntop/ntopng/${name}.tgz"; - sha256 = "0cdbmrsjp3bb7xzci0vfnnkmbyxwxbf47l4kbnk4ydd7xwhwdnzr"; + sha256 = "0y7xc0l77k2qi2qalwfqiw2z361hdypirfv4k5gi652pb20jc9j6"; }; patches = [ @@ -18,19 +38,13 @@ stdenv.mkDerivation rec { ./0002-Remove-requirement-to-have-writeable-callback-dir.patch ]; - buildInputs = [ libpcap gnutls libgcrypt libxml2 glib geoip sqlite which ]; + buildInputs = [ libpcap gnutls libgcrypt libxml2 glib geoip sqlite which autoreconfHook subversion pkgconfig groff ]; + + preConfigure = '' + find . -name Makefile.in | xargs sed -i "s|/bin/rm|rm|" + ''; preBuild = '' - sed -e "s|^SHELL=.*|SHELL=${stdenv.shell}|" \ - -e "s|/usr/local|$out|g" \ - -e "s|/bin/rm|rm|g" \ - -i Makefile - - sed -e "s|^SHELL=.*|SHELL=${stdenv.shell}|" \ - -e "s|/usr/local|$out|g" \ - -e "s|/opt/local|/non-existing-dir|g" \ - -i configure - sed -e "s|/usr/local|$out|g" \ -i Ntop.cpp @@ -40,6 +54,11 @@ stdenv.mkDerivation rec { -e "s|\(#define CONST_DEFAULT_CALLBACKS_DIR\).*|\1 \"$out/share/ntopng/scripts/callbacks\"|g" \ -e "s|\(#define CONST_DEFAULT_INSTALL_DIR\).*|\1 \"$out/share/ntopng\"|g" \ -i ntop_defines.h + + gunzip -c $geoLiteCity > httpdocs/geoip/GeoLiteCity.dat + gunzip -c $geoLiteCityV6 > httpdocs/geoip/GeoLiteCityv6.dat + gunzip -c $geoIPASNum > httpdocs/geoip/GeoIPASNum.dat + gunzip -c $geoIPASNumV6 > httpdocs/geoip/GeoIPASNumv6.dat ''; meta = with stdenv.lib; { diff --git a/pkgs/tools/networking/openntpd/default.nix b/pkgs/tools/networking/openntpd/default.nix new file mode 100644 index 00000000000..c90582a7547 --- /dev/null +++ b/pkgs/tools/networking/openntpd/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchgit, openssl +, privsepPath ? "/var/empty" +, privsepUser ? "ntp" +}: + +stdenv.mkDerivation rec { + name = "openntpd-${version}"; + version = "20080406p-10"; + + src = fetchgit { + url = "git://git.debian.org/collab-maint/openntpd.git"; + rev = "refs/tags/debian/${version}"; + sha256 = "0gd6j4sw4x4adlz0jzbp6lblx5vlnk6l1034hzbj2xd95k8hjhh8"; + }; + + postPatch = '' + sed -i -e '/^install:/,/^$/{/@if.*PRIVSEP_PATH/,/^$/d}' Makefile.in + ''; + + configureFlags = [ + "--with-privsep-path=${privsepPath}" + "--with-privsep-user=${privsepUser}" + ]; + + buildInputs = [ openssl ]; + + meta = { + homepage = "http://www.openntpd.org/"; + license = stdenv.lib.licenses.bsd3; + description = "OpenBSD NTP daemon (Debian port)"; + }; +} diff --git a/pkgs/tools/networking/radvd/default.nix b/pkgs/tools/networking/radvd/default.nix index 14d0d99119d..e74106ec67f 100644 --- a/pkgs/tools/networking/radvd/default.nix +++ b/pkgs/tools/networking/radvd/default.nix @@ -1,16 +1,20 @@ -{ stdenv, fetchurl, bison, flex }: +{ stdenv, fetchurl, pkgconfig, libdaemon, bison, flex, check }: stdenv.mkDerivation rec { - name = "radvd-1.8.1"; + name = "radvd-2.5"; src = fetchurl { - url = "http://www.litech.org/radvd/dist/${name}.tar.gz"; - sha256 = "1sg3halppbz3vwr88lbcdv7mndzwl4nkqnrafkyf2a248wwz2cbc"; + url = "http://www.litech.org/radvd/dist/${name}.tar.xz"; + sha256 = "0hsa647l236q9rhrwjb44xqmjfz4fxzcixlbf2chk4lzh8lzwjp0"; }; - buildInputs = [ bison flex ]; + buildInputs = [ pkgconfig libdaemon bison flex check ]; - meta.homepage = http://www.litech.org/radvd/; - meta.description = "IPv6 Router Advertisement Daemon"; - meta.platforms = stdenv.lib.platforms.linux; + meta = with stdenv.lib; { + homepage = http://www.litech.org/radvd/; + description = "IPv6 Router Advertisement Daemon"; + platforms = platforms.linux; + license = licenses.bsdOriginal; + maintainers = with maintainers; [ wkennington ]; + }; } diff --git a/pkgs/tools/networking/s6-dns/default.nix b/pkgs/tools/networking/s6-dns/default.nix new file mode 100644 index 00000000000..3165434de3d --- /dev/null +++ b/pkgs/tools/networking/s6-dns/default.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchurl, skalibs }: + +let + + version = "0.1.0.0"; + +in stdenv.mkDerivation rec { + + name = "s6-dns-${version}"; + + src = fetchurl { + url = "http://www.skarnet.org/software/s6-dns/${name}.tar.gz"; + sha256 = "1r82l5fnz2rrwm5wq2sldqp74lk9fifr0d8hyq98xdyh24hish68"; + }; + + buildInputs = [ skalibs ]; + + sourceRoot = "web/${name}"; + + configurePhase = '' + pushd conf-compile + + printf "$out/bin" > conf-install-command + printf "$out/include" > conf-install-include + printf "$out/lib" > conf-install-library + printf "$out/lib" > conf-install-library.so + + # let nix builder strip things, cross-platform + truncate --size 0 conf-stripbins + truncate --size 0 conf-striplibs + + printf "${skalibs}/sysdeps" > import + printf "%s" "${skalibs}/include" > path-include + printf "%s" "${skalibs}/lib" > path-library + + rm -f flag-slashpackage + touch flag-allstatic + + popd + ''; + + preBuild = '' + patchShebangs src/sys + ''; + + meta = { + homepage = http://www.skarnet.org/software/s6-dns/; + description = "A suite of DNS client programs and libraries for Unix systems."; + platforms = stdenv.lib.platforms.all; + license = stdenv.lib.licenses.isc; + }; + +} diff --git a/pkgs/tools/networking/s6-networking/default.nix b/pkgs/tools/networking/s6-networking/default.nix new file mode 100644 index 00000000000..3d5e3e04811 --- /dev/null +++ b/pkgs/tools/networking/s6-networking/default.nix @@ -0,0 +1,63 @@ +{ stdenv +, execline +, fetchurl +, s6Dns +, skalibs +}: + +let + + version = "0.1.0.0"; + +in stdenv.mkDerivation rec { + + name = "s6-networking-${version}"; + + src = fetchurl { + url = "http://www.skarnet.org/software/s6-networking/${name}.tar.gz"; + sha256 = "1np9m2j1i2450mbcjvpbb56kv3wc2fbyvmv2a039q61j2lk6vjz7"; + }; + + buildInputs = [ skalibs s6Dns execline ]; + + sourceRoot = "net/${name}"; + + configurePhase = '' + pushd conf-compile + + printf "$out/bin" > conf-install-command + printf "$out/include" > conf-install-include + printf "$out/lib" > conf-install-library + printf "$out/lib" > conf-install-library.so + + # let nix builder strip things, cross-platform + truncate --size 0 conf-stripbins + truncate --size 0 conf-striplibs + + printf "${skalibs}/sysdeps" > import + + rm -f path-include + rm -f path-library + for dep in "${execline}" "${s6Dns}" "${skalibs}"; do + printf "%s\n" "$dep/include" >> path-include + printf "%s\n" "$dep/lib" >> path-library + done + + rm -f flag-slashpackage + touch flag-allstatic + + popd + ''; + + preBuild = '' + patchShebangs src/sys + ''; + + meta = { + homepage = http://www.skarnet.org/software/s6-networking/; + description = "A suite of small networking utilities for Unix systems."; + platforms = stdenv.lib.platforms.all; + license = stdenv.lib.licenses.isc; + }; + +} diff --git a/pkgs/tools/networking/spiped/default.nix b/pkgs/tools/networking/spiped/default.nix index ac2736ffb19..f854b92b87e 100644 --- a/pkgs/tools/networking/spiped/default.nix +++ b/pkgs/tools/networking/spiped/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "spiped-${version}"; - version = "1.3.1"; + version = "1.4.0"; src = fetchurl { url = "http://www.tarsnap.com/spiped/${name}.tgz"; - sha256 = "1viglk61v1v2ga1n31r0h8rvib5gy2h02lhhbbnqh2s6ps1sjn4a"; + sha256 = "0pyg1llnqgfx7n7mi3dq4ra9xg3vkxlf01z5jzn7ncq5d6ii7ynq"; }; buildInputs = [ openssl ]; diff --git a/pkgs/tools/networking/tcpdump/default.nix b/pkgs/tools/networking/tcpdump/default.nix index 2e27c2b2dc3..ed295e95a38 100644 --- a/pkgs/tools/networking/tcpdump/default.nix +++ b/pkgs/tools/networking/tcpdump/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { }; meta = { - description = "tcpdump, a famous network sniffer"; + description = "Network sniffer"; homepage = http://www.tcpdump.org/; license = "BSD-style"; maintainers = stdenv.lib.maintainers.mornfall; diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix new file mode 100644 index 00000000000..4843f07c8f2 --- /dev/null +++ b/pkgs/tools/networking/urlwatch/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, python3Packages }: + +python3Packages.buildPythonPackage rec { + name = "urlwatch-1.16"; + + src = fetchurl { + url = "http://thp.io/2008/urlwatch/${name}.tar.gz"; + sha256 = "0yf1m909awfm06z7xwn20qxbbgslb1vjwwb6rygp6bn7sq022f1f"; + }; + + patchPhase = '' + ./convert-to-python3.sh + ''; + + meta = { + description = "A tool for monitoring webpages for updates"; + homepage = https://thp.io/2008/urlwatch/; + license = stdenv.lib.licenses.bsd3; + maintainers = [ stdenv.lib.maintainers.tv ]; + }; +} diff --git a/pkgs/tools/networking/wavemon/default.nix b/pkgs/tools/networking/wavemon/default.nix index e9c102817e1..b5927fd2478 100644 --- a/pkgs/tools/networking/wavemon/default.nix +++ b/pkgs/tools/networking/wavemon/default.nix @@ -11,16 +11,15 @@ let (builtins.attrNames (builtins.removeAttrs x helperArgNames)); sourceInfo = rec { baseName="wavemon"; - version="0.7.5"; + version = "0.7.6"; name="${baseName}-${version}"; url="http://eden-feed.erg.abdn.ac.uk/wavemon/stable-releases/${name}.tar.bz2"; - hash="0b1fx00aar2fsw49a10w5bpiyjpz8h8f4nrlwb1acfw36yi1pfkd"; }; in rec { src = a.fetchurl { url = sourceInfo.url; - sha256 = sourceInfo.hash; + sha256 = "18cwlzgmwzy7z9dfr6lwd8kmkv0pqiihizm4gi0kkm52bzz6836y"; }; inherit (sourceInfo) name version; @@ -38,11 +37,9 @@ rec { platforms = with a.lib.platforms; linux; license = a.lib.licenses.gpl2Plus; - }; - passthru = { - updateInfo = { - downloadPage = "http://eden-feed.erg.abdn.ac.uk/wavemon/"; - }; + downloadPage = "http://eden-feed.erg.abdn.ac.uk/wavemon/"; + inherit version; + updateWalker = true; }; }) x diff --git a/pkgs/tools/networking/wget/default.nix b/pkgs/tools/networking/wget/default.nix index 6ff5439c4bc..27d7fe2572a 100644 --- a/pkgs/tools/networking/wget/default.nix +++ b/pkgs/tools/networking/wget/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { doCheck = (perl != null); meta = { - description = "GNU Wget, a tool for retrieving files using HTTP, HTTPS, and FTP"; + description = "Tool for retrieving files using HTTP, HTTPS, and FTP"; longDescription = '' GNU Wget is a free software package for retrieving files using HTTP, diff --git a/pkgs/tools/package-management/disnix/default.nix b/pkgs/tools/package-management/disnix/default.nix index 61e998fd545..b6b88aef022 100644 --- a/pkgs/tools/package-management/disnix/default.nix +++ b/pkgs/tools/package-management/disnix/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, pkgconfig, dbus_glib, libxml2, libxslt, getopt, nixUnstable, dysnomia, libintlOrEmpty, libiconvOrEmpty }: stdenv.mkDerivation { - name = "disnix-0.3pre174e883b7b09da822494876d2f297736f33707a7"; + name = "disnix-0.3pre24d959b3b37ce285971810245643a7f18cb85fcc"; src = fetchurl { - url = http://hydra.nixos.org/build/11773951/download/4/disnix-0.3pre174e883b7b09da822494876d2f297736f33707a7.tar.gz; - sha256 = "19hdh2mrlyiq1g3z6lnnqqvripmfcdnm18jpm4anp5iarhnwh3y4"; + url = http://hydra.nixos.org/build/13612993/download/4/disnix-0.3pre24d959b3b37ce285971810245643a7f18cb85fcc.tar.gz; + sha256 = "0ml8g6h7x79mvv84il9vb9b88kqak9m3yzavmar66i3dvyqr1dwb"; }; buildInputs = [ pkgconfig dbus_glib libxml2 libxslt getopt nixUnstable libintlOrEmpty libiconvOrEmpty dysnomia ]; diff --git a/pkgs/tools/package-management/disnix/disnixos/default.nix b/pkgs/tools/package-management/disnix/disnixos/default.nix index 65ae91f6e18..0190a5fd679 100644 --- a/pkgs/tools/package-management/disnix/disnixos/default.nix +++ b/pkgs/tools/package-management/disnix/disnixos/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, disnix, socat, pkgconfig, getopt }: stdenv.mkDerivation { - name = "disnixos-0.2prebb320d396f93d7062c28d6a54105d8e8196b9d99"; + name = "disnixos-0.2prec3310e2d8975c45e4ffacec940049fb781739b8d"; src = fetchurl { - url = http://hydra.nixos.org/build/9877039/download/3/disnixos-0.2preb10c56eeb1be3046645eea90c779e2d64045581f.tar.gz; - sha256 = "1pkpf6vp9q3jjp212lghbs1km8iqh4rm9xa5jm0dqb5ya25f0jf2"; + url = http://hydra.nixos.org/build/13617499/download/3/disnixos-0.2prec3310e2d8975c45e4ffacec940049fb781739b8d.tar.gz; + sha256 = "1kcpzzwy9jc1zz700whnp6sc77yp3wxzr935f07jy55ddkl8mdi5"; }; buildInputs = [ socat pkgconfig disnix getopt ]; diff --git a/pkgs/tools/package-management/disnix/dysnomia/default.nix b/pkgs/tools/package-management/disnix/dysnomia/default.nix index a1914224dbd..574bf8f9ab3 100644 --- a/pkgs/tools/package-management/disnix/dysnomia/default.nix +++ b/pkgs/tools/package-management/disnix/dysnomia/default.nix @@ -19,10 +19,10 @@ assert enableEjabberdDump -> ejabberd != null; assert enableMongoDatabase -> mongodb != null; stdenv.mkDerivation { - name = "dysnomia-0.3pre09cc08f5ffc737d988923bb7329a7ec711badd82"; + name = "dysnomia-0.3precf347cbd508f488f115f8961371a3cecf03fd530"; src = fetchurl { - url = http://hydra.nixos.org/build/11407191/download/1/dysnomia-0.3pre09cc08f5ffc737d988923bb7329a7ec711badd82.tar.gz; - sha256 = "1i7yb299bq1z7cy4sk83m5faahj8inh73xn5bi6jcv492zv3kgwz"; + url = http://hydra.nixos.org/build/13281061/download/1/dysnomia-0.3precf347cbd508f488f115f8961371a3cecf03fd530.tar.gz; + sha256 = "0xiqpz2c3dh4pbdprvrd7plvq3ipngqbjkwpmbhw1nw90x5rpa2d"; }; preConfigure = if enableEjabberdDump then "export PATH=$PATH:${ejabberd}/sbin" else ""; diff --git a/pkgs/tools/package-management/koji/default.nix b/pkgs/tools/package-management/koji/default.nix new file mode 100644 index 00000000000..7f03ed1625e --- /dev/null +++ b/pkgs/tools/package-management/koji/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pythonPackages, python }: + +stdenv.mkDerivation rec { + name = "koji-1.8"; + + src = fetchurl { + url = "https://fedorahosted.org/released/koji/koji-1.8.0.tar.bz2"; + sha256 = "10dph209h4jgajb5jmbjhqy4z4hd22i7s2d93vm3ikdf01i8iwf1"; + }; + + propagatedBuildInputs = [ pythonPackages.pycurl python ]; + + makeFlags = "DESTDIR=$(out)"; + + postInstall = '' + cp -R $out/nix/store/*/* $out/ + rm -rf $out/nix + ''; + + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; +} diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index b2e86935b50..6631214f39a 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -66,7 +66,14 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - description = "The Nix Deployment System"; + description = "Powerful package manager that makes package management reliable and reproducible"; + longDescription = '' + Nix is a powerful package manager for Linux and other Unix systems that + makes package management reliable and reproducible. It provides atomic + upgrades and rollbacks, side-by-side installation of multiple versions of + a package, multi-user package management and easy setup of build + environments. + ''; homepage = http://nixos.org/; license = stdenv.lib.licenses.lgpl2Plus; maintainers = [ stdenv.lib.maintainers.eelco ]; diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix index fc43f01b344..f5c4a4e9b4e 100644 --- a/pkgs/tools/security/clamav/default.nix +++ b/pkgs/tools/security/clamav/default.nix @@ -1,19 +1,23 @@ -{ stdenv, fetchurl, zlib, bzip2, libiconv }: +{ stdenv, fetchurl, zlib, bzip2, libiconv, libxml2, openssl, ncurses, curl }: stdenv.mkDerivation rec { name = "clamav-${version}"; - version = "0.98.1"; + version = "0.98.4"; src = fetchurl { url = "mirror://sourceforge/clamav/clamav-${version}.tar.gz"; - sha256 = "1p13n8g3b88cxwxj07if9z1d2cav1ib94v6cq4r4bpacfd6yix9m"; + sha256 = "071yzamalj3rf7kl2jvc35ipnk1imdkq5ylbb8whyxfgmd3nf06k"; }; - buildInputs = [ zlib bzip2 libiconv ]; + buildInputs = [ zlib bzip2 libiconv libxml2 openssl ncurses curl ]; configureFlags = [ "--with-zlib=${zlib}" "--with-libbz2-prefix=${bzip2}" "--with-iconv-dir=${libiconv}" + "--with-xml=${libxml2}" + "--with-openssl=${openssl}" + "--with-libncurses-prefix=${ncurses}" + "--with-libcurl=${curl}" "--disable-clamav" ]; meta = with stdenv.lib; { diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix index 9b8d33b6b69..64e2be90d30 100644 --- a/pkgs/tools/security/gnupg/default.nix +++ b/pkgs/tools/security/gnupg/default.nix @@ -13,11 +13,11 @@ assert useUsb -> (libusb != null); assert useCurl -> (curl != null); stdenv.mkDerivation rec { - name = "gnupg-2.0.24"; + name = "gnupg-2.0.26"; src = fetchurl { url = "mirror://gnupg/gnupg/${name}.tar.bz2"; - sha256 = "0ch2hbindk832cy7ca00a7whw84ndm0nhqrl24a5fw4ldkca2x6r"; + sha256 = "1q5qcl5panrvcvpwvz6nl9gayl5a6vwvfhgdcxqpmbl2qc6y6n3p"; }; buildInputs diff --git a/pkgs/tools/security/mfcuk/default.nix b/pkgs/tools/security/mfcuk/default.nix new file mode 100644 index 00000000000..9d92482f68f --- /dev/null +++ b/pkgs/tools/security/mfcuk/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, libnfc }: + +stdenv.mkDerivation rec { + name = "mfcuk-${version}"; + version = "0.3.8"; + + src = fetchurl { + url = "http://mfcuk.googlecode.com/files/mfcuk-0.3.8.tar.gz"; + sha256 = "0m9sy61rsbw63xk05jrrmnyc3xda0c3m1s8pg3sf8ijbbdv9axcp"; + }; + + buildInputs = [ pkgconfig libnfc ]; + + meta = with stdenv.lib; { + description = "MiFare Classic Universal toolKit"; + license = licenses.gpl2; + homepage = http://code.google.com/p/mfcuk/; + maintainers = with maintainers; [ offline ]; + platforms = with platforms; unix; + }; +} diff --git a/pkgs/tools/security/scrypt/default.nix b/pkgs/tools/security/scrypt/default.nix index fe2a19491d9..668a7605115 100644 --- a/pkgs/tools/security/scrypt/default.nix +++ b/pkgs/tools/security/scrypt/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { buildInputs = [ openssl ]; meta = { - description = "The scrypt encryption utility"; + description = "Encryption utility"; homepage = https://www.tarsnap.com/scrypt.html; license = stdenv.lib.licenses.bsd2; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/tools/security/steghide/default.nix b/pkgs/tools/security/steghide/default.nix index bc87c091a58..03e8c727022 100644 --- a/pkgs/tools/security/steghide/default.nix +++ b/pkgs/tools/security/steghide/default.nix @@ -7,7 +7,7 @@ meta = with stdenv.lib; { homepage = http://steghide.sourceforge.net/; - description = "Steghide is a steganography program that is able to hide data in various kinds of image- and audio-files."; + description = "Steganography program that is able to hide data in various kinds of image- and audio-files"; license = licenses.gpl2; }; diff --git a/pkgs/tools/security/tboot/default.nix b/pkgs/tools/security/tboot/default.nix index 1c9967edc47..854f67f2aee 100644 --- a/pkgs/tools/security/tboot/default.nix +++ b/pkgs/tools/security/tboot/default.nix @@ -21,9 +21,7 @@ stdenv.mkDerivation rec { installFlags = "DESTDIR=$(out)"; meta = with stdenv.lib; { - description = ''Trusted Boot (tboot) is an open source, pre-kernel/VMM module that uses - Intel(R) Trusted Execution Technology (Intel(R) TXT) to perform a measured - and verified launch of an OS kernel/VMM.''; + description = "A pre-kernel/VMM module that uses Intel(R) TXT to perform a measured and verified launch of an OS kernel/VMM"; homepage = http://sourceforge.net/projects/tboot/; license = licenses.bsd3; maintainers = [ maintainers.ak ]; diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix index d71bbd891f9..3318d0c1102 100644 --- a/pkgs/tools/security/tor/default.nix +++ b/pkgs/tools/security/tor/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.torproject.org/; repositories.git = https://git.torproject.org/git/tor; - description = "Tor, an anonymous network router to improve privacy on the Internet"; + description = "Anonymous network router to improve privacy on the Internet"; longDescription='' Tor protects you by bouncing your communications around a distributed diff --git a/pkgs/tools/security/tpm-tools/default.nix b/pkgs/tools/security/tpm-tools/default.nix index 95b3b6b51f7..6e7ff75a6a4 100644 --- a/pkgs/tools/security/tpm-tools/default.nix +++ b/pkgs/tools/security/tpm-tools/default.nix @@ -14,9 +14,12 @@ stdenv.mkDerivation rec { buildInputs = [ trousers openssl ]; meta = with stdenv.lib; { - description = ''tpm-tools is an open-source package designed to enable user and application - enablement of Trusted Computing using a Trusted Platform Module (TPM), - similar to a smart card environment.''; + description = "Management tools for TPM hardware"; + longDescription = '' + tpm-tools is an open-source package designed to enable user and + application enablement of Trusted Computing using a Trusted Platform + Module (TPM), similar to a smart card environment. + ''; homepage = http://sourceforge.net/projects/trousers/files/tpm-tools/; license = licenses.cpl10; maintainers = [ maintainers.ak ]; diff --git a/pkgs/tools/security/trousers/default.nix b/pkgs/tools/security/trousers/default.nix index 4c2af359b96..fe797291f9e 100644 --- a/pkgs/tools/security/trousers/default.nix +++ b/pkgs/tools/security/trousers/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = "-lgcc_s"; meta = with stdenv.lib; { - description = "TrouSerS is an CPL (Common Public License) licensed Trusted Computing Software Stack."; + description = "Trusted computing software stack"; homepage = http://trousers.sourceforge.net/; license = licenses.cpl10; maintainers = [ maintainers.ak ]; diff --git a/pkgs/tools/system/cron/default.nix b/pkgs/tools/system/cron/default.nix index 6132abc0879..0cf29a67b9d 100644 --- a/pkgs/tools/system/cron/default.nix +++ b/pkgs/tools/system/cron/default.nix @@ -22,6 +22,6 @@ stdenv.mkDerivation { preInstall = "mkdir -p $out/bin $out/sbin $out/share/man/man1 $out/share/man/man5 $out/share/man/man8"; meta = { - description = "Vixie Cron, a daemon for running commands at specific times"; + description = "Daemon for running commands at specific times (Vixie Cron)"; }; } diff --git a/pkgs/tools/system/dd_rescue/default.nix b/pkgs/tools/system/dd_rescue/default.nix index 9c7f0413421..7b3e62a1bc0 100644 --- a/pkgs/tools/system/dd_rescue/default.nix +++ b/pkgs/tools/system/dd_rescue/default.nix @@ -1,10 +1,11 @@ { stdenv, fetchurl, autoconf }: stdenv.mkDerivation rec { - name = "dd_rescue-1.42.1"; + version = "1.46"; + name = "dd_rescue-${version}"; src = fetchurl { - sha256 = "0g2d292m1cnp8syy19hh5jvly3zy7lcvcj563wgjnf20ppm2diaq"; + sha256 = "1fhs4jl5pkyn4aq75fxczrgnsj2m0kz9hfa7dhxy93vp7xcba2cy"; url="http://www.garloff.de/kurt/linux/ddrescue/${name}.tar.gz"; }; @@ -33,5 +34,8 @@ stdenv.mkDerivation rec { description = "A tool to copy data from a damaged block device"; maintainers = with maintainers; [ raskin iElectric ]; platforms = with platforms; linux; + downloadPage = "http://www.garloff.de/kurt/linux/ddrescue/"; + inherit version; + updateWalker = true; }; } diff --git a/pkgs/tools/system/di/default.nix b/pkgs/tools/system/di/default.nix new file mode 100644 index 00000000000..dc15ce13bcc --- /dev/null +++ b/pkgs/tools/system/di/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "di-4.35"; + + src = fetchurl { + url = "http://gentoo.com/di/${name}.tar.gz"; + sha256 = "1lkiggvdm6wi14xy8845w6mqqr50j2q7g0i2rdcs7qw5gb7gmprc"; + }; + + makeFlags = "INSTALL_DIR=$(out)"; + + meta = with stdenv.lib; { + description = "A disk information utility, displaying everything (and more) that your 'df' command does"; + homepage = http://www.gentoo.com/di/; + license = licenses.zlib; + maintainers = with maintainers; [ manveru ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/tools/system/freeipmi/default.nix b/pkgs/tools/system/freeipmi/default.nix index 21a67dba305..8f94b21a771 100644 --- a/pkgs/tools/system/freeipmi/default.nix +++ b/pkgs/tools/system/freeipmi/default.nix @@ -1,11 +1,12 @@ { fetchurl, stdenv, libgcrypt, readline }: stdenv.mkDerivation rec { - name = "freeipmi-1.3.4"; + version = "1.4.5"; + name = "freeipmi-${version}"; src = fetchurl { url = "mirror://gnu/freeipmi/${name}.tar.gz"; - sha256 = "0gadf3yj019y3rvgf34pxk502p0p6nrhy6nwldvvir5rknndxh63"; + sha256 = "033zakrk3kvi4y41kslicr90b3yb2kj052cl6nbja7ybn70y9nkz"; }; buildInputs = [ libgcrypt readline ]; @@ -13,7 +14,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU FreeIPMI, an implementation of the Intelligent Platform Management Interface"; + description = "Implementation of the Intelligent Platform Management Interface"; longDescription = '' GNU FreeIPMI provides in-band and out-of-band IPMI software based on @@ -30,10 +31,14 @@ stdenv.mkDerivation rec { ''; homepage = http://www.gnu.org/software/freeipmi/; + downloadPage = "http://www.gnu.org/software/freeipmi/download.html"; license = stdenv.lib.licenses.gpl3Plus; maintainers = with stdenv.lib.maintainers; [ raskin ]; platforms = stdenv.lib.platforms.gnu; # arbitrary choice + + updateWalker = true; + inherit version; }; } diff --git a/pkgs/tools/system/hardlink/default.nix b/pkgs/tools/system/hardlink/default.nix index 982aac3c990..6ae92b685cc 100644 --- a/pkgs/tools/system/hardlink/default.nix +++ b/pkgs/tools/system/hardlink/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = { homepage = "http://pkgs.fedoraproject.org/cgit/hardlink.git/"; - description = "consolidate duplicate files via hardlinks"; + description = "Consolidate duplicate files via hardlinks"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/tools/system/ioping/default.nix b/pkgs/tools/system/ioping/default.nix index 52d32b4e838..588da0624ce 100644 --- a/pkgs/tools/system/ioping/default.nix +++ b/pkgs/tools/system/ioping/default.nix @@ -10,16 +10,15 @@ let (builtins.attrNames (builtins.removeAttrs x helperArgNames)); sourceInfo = rec { baseName="ioping"; - version="0.7"; + version = "0.8"; name="${baseName}-${version}"; url="http://ioping.googlecode.com/files/${name}.tar.gz"; - hash="1c0k9gsq7rr9fqh6znn3i196l84zsm44nq3pl1b7grsnnbp2hki3"; }; in rec { src = a.fetchurl { url = sourceInfo.url; - sha256 = sourceInfo.hash; + sha256 = "0j7yal61nby1lkg9wnr6lxfljbd7wl3n0z8khqwvc9lf57bxngz2"; }; inherit (sourceInfo) name version; @@ -40,11 +39,8 @@ rec { platforms = with a.lib.platforms; linux; license = a.lib.licenses.gpl3Plus; - }; - passthru = { - updateInfo = { - downloadPage = "http://code.google.com/p/ioping/downloads/list"; - }; + downloadPage = "http://code.google.com/p/ioping/downloads/list"; + inherit version; }; }) x diff --git a/pkgs/tools/system/ioping/default.upstream b/pkgs/tools/system/ioping/default.upstream new file mode 100644 index 00000000000..e51cb487852 --- /dev/null +++ b/pkgs/tools/system/ioping/default.upstream @@ -0,0 +1,5 @@ +url http://code.google.com/p/ioping/downloads/list +version_link '[.]tar[.][a-z0-9]+$' +process 'code[.]google[.]com//' '' + +do_overwrite() { do_overwrite_just_version; } diff --git a/pkgs/tools/system/ipmiutil/default.nix b/pkgs/tools/system/ipmiutil/default.nix index c5f33c32359..6590b1ad209 100644 --- a/pkgs/tools/system/ipmiutil/default.nix +++ b/pkgs/tools/system/ipmiutil/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { baseName = "ipmiutil"; - version = "2.9.3"; + version = "2.7.3"; name = "${baseName}-${version}"; src = fetchurl { url = "mirror://sourceforge/project/${baseName}/${name}.tar.gz"; - sha256 = "1dwyxp4jn5wxzyahd0x839kj1q7z6xin1wybpx9na4xsgscj6v27"; + sha256 = "0z6ykz5db4ws7hpi25waf9vznwsh0vp819h5s7s8r054vxslrfpq"; }; buildInputs = [ openssl ]; @@ -26,11 +26,7 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; license = licenses.bsd3; - }; - - passthru = { - updateInfo = { - downloadPage = "http://sourceforge.net/projects/ipmiutil/files/ipmiutil/"; - }; + downloadPage = "http://sourceforge.net/projects/ipmiutil/files/ipmiutil/"; + inherit version; }; } diff --git a/pkgs/tools/system/ipmiutil/default.upstream b/pkgs/tools/system/ipmiutil/default.upstream new file mode 100644 index 00000000000..18dc096a36b --- /dev/null +++ b/pkgs/tools/system/ipmiutil/default.upstream @@ -0,0 +1,4 @@ +url http://sourceforge.net/projects/ipmiutil/files/ipmiutil/ +SF_version_tarball +SF_redirect +minimize_overwrite diff --git a/pkgs/tools/system/mcron/default.nix b/pkgs/tools/system/mcron/default.nix index 4bf95895996..842529c573f 100644 --- a/pkgs/tools/system/mcron/default.nix +++ b/pkgs/tools/system/mcron/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU mcron, a flexible implementation of `cron' in Guile"; + description = "Flexible implementation of `cron' in Guile"; longDescription = '' The GNU package mcron (Mellor's cron) is a 100% compatible diff --git a/pkgs/tools/system/sleuthkit/default.nix b/pkgs/tools/system/sleuthkit/default.nix index 0148e3c699e..016e2ccda37 100644 --- a/pkgs/tools/system/sleuthkit/default.nix +++ b/pkgs/tools/system/sleuthkit/default.nix @@ -1,11 +1,12 @@ { stdenv, fetchurl, libewf, afflib, openssl, zlib }: stdenv.mkDerivation rec { - name = "sleuthkit-3.2.2"; + version = "4.1.3"; + name = "sleuthkit-${version}"; src = fetchurl { url = "mirror://sourceforge/sleuthkit/${name}.tar.gz"; - sha256 = "02hik5xvbgh1dpisvc3wlhhq1aprnlsk0spbw6h5khpbq9wqnmgj"; + sha256 = "09q3ky4rpv18jasf5gc2hlivzadzl70jy4nnk23db1483aix5yb7"; }; enableParallelBuilding = true; @@ -20,5 +21,6 @@ stdenv.mkDerivation rec { maintainers = [ stdenv.lib.maintainers.raskin ]; platforms = stdenv.lib.platforms.linux; license = "IBM Public License"; + inherit version; }; } diff --git a/pkgs/tools/system/sleuthkit/default.upstream b/pkgs/tools/system/sleuthkit/default.upstream new file mode 100644 index 00000000000..f8ffe9352ed --- /dev/null +++ b/pkgs/tools/system/sleuthkit/default.upstream @@ -0,0 +1,5 @@ +url http://sourceforge.net/projects/sleuthkit/files/sleuthkit/ +SF_version_dir +SF_version_tarball +SF_redirect +minimize_overwrite diff --git a/pkgs/tools/text/enscript/default.nix b/pkgs/tools/text/enscript/default.nix index fe11ec59246..797f5b8b692 100644 --- a/pkgs/tools/text/enscript/default.nix +++ b/pkgs/tools/text/enscript/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = { - description = "GNU Enscript, a converter from ASCII to PostScript, HTML, or RTF"; + description = "Converter from ASCII to PostScript, HTML, or RTF"; longDescription = '' GNU Enscript converts ASCII files to PostScript, HTML, or RTF and diff --git a/pkgs/tools/text/mpage/default.nix b/pkgs/tools/text/mpage/default.nix index 5b95c37c732..c147b3ea301 100644 --- a/pkgs/tools/text/mpage/default.nix +++ b/pkgs/tools/text/mpage/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Mpage, many-to-one page printing utility"; + description = "Many-to-one page printing utility"; longDescription = '' Mpage reads plain text files or PostScript documents and prints diff --git a/pkgs/tools/text/namazu/default.nix b/pkgs/tools/text/namazu/default.nix index fba52b69fba..72caa7ba5cb 100644 --- a/pkgs/tools/text/namazu/default.nix +++ b/pkgs/tools/text/namazu/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { doCheck = !stdenv.isLinux; meta = { - description = "Namazu, a full-text search engine"; + description = "Full-text search engine"; longDescription = '' Namazu is a full-text search engine intended for easy use. Not diff --git a/pkgs/tools/text/wdiff/default.nix b/pkgs/tools/text/wdiff/default.nix index e6fc3510cd4..c07caad15a3 100644 --- a/pkgs/tools/text/wdiff/default.nix +++ b/pkgs/tools/text/wdiff/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.gnu.org/software/wdiff/; - description = "GNU wdiff, comparing files on a word by word basis"; + description = "Comparing files on a word by word basis"; license = stdenv.lib.licenses.gpl3Plus; maintainers = [ stdenv.lib.maintainers.eelco ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/tools/text/wgetpaste/default.nix b/pkgs/tools/text/wgetpaste/default.nix index 7635e042499..3c0af0157a5 100644 --- a/pkgs/tools/text/wgetpaste/default.nix +++ b/pkgs/tools/text/wgetpaste/default.nix @@ -1,28 +1,29 @@ -{stdenv, fetchurl, wget, bash, coreutils}: - stdenv.mkDerivation rec { - version = "2.23"; - name = "wgetpaste-${version}"; - src = fetchurl { - url = "http://wgetpaste.zlin.dk/${name}.tar.bz2"; - sha256 = "1xam745f5pmqi16br72a866117hnmcfwjyvsw1jhg3npbdnm9x6n"; - }; - # currently zsh-autocompletion support is not installed +{ stdenv, fetchurl, wget, bash, coreutils }: - prePatch = '' - substituteInPlace wgetpaste --replace "/usr/bin/env bash" "${bash}/bin/bash" - substituteInPlace wgetpaste --replace "LC_ALL=C wget" "LC_ALL=C ${wget}/bin/wget" - ''; +stdenv.mkDerivation rec { + version = "2.25"; + name = "wgetpaste-${version}"; + src = fetchurl { + url = "http://wgetpaste.zlin.dk/${name}.tar.bz2"; + sha256 = "1x209j85mryp3hxmv1gfsbvw03k306k5fa65ky0zxx07cs70fzka"; + }; + # currently zsh-autocompletion support is not installed - installPhase = '' - mkdir -p $out/bin; - cp wgetpaste $out/bin; - ''; + prePatch = '' + substituteInPlace wgetpaste --replace "/usr/bin/env bash" "${bash}/bin/bash" + substituteInPlace wgetpaste --replace "LC_ALL=C wget" "LC_ALL=C ${wget}/bin/wget" + ''; - meta = { - description = "Command-line interface to various pastebins"; - homepage = http://wgetpaste.zlin.dk/; - license = "publicDomain"; - maintainers = with stdenv.lib.maintainers; [qknight]; - platforms = stdenv.lib.platforms.all; - }; - } + installPhase = '' + mkdir -p $out/bin; + cp wgetpaste $out/bin; + ''; + + meta = { + description = "Command-line interface to various pastebins"; + homepage = http://wgetpaste.zlin.dk/; + license = "publicDomain"; + maintainers = with stdenv.lib.maintainers; [ qknight iElectric ]; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/tools/typesetting/docbook2x/default.nix b/pkgs/tools/typesetting/docbook2x/default.nix index 78dac0c6aa4..b31c64e6936 100644 --- a/pkgs/tools/typesetting/docbook2x/default.nix +++ b/pkgs/tools/typesetting/docbook2x/default.nix @@ -46,13 +46,14 @@ stdenv.mkDerivation rec { "${gnused}/bin" ''; - meta = { + meta = with stdenv.lib; { longDescription = '' docbook2X is a software package that converts DocBook documents into the traditional Unix man page format and the GNU Texinfo format. ''; - license = stdenv.lib.licenses.mit; + license = licenses.mit; homepage = http://docbook2x.sourceforge.net/; + platforms = platforms.all; }; } diff --git a/pkgs/tools/typesetting/lout/default.nix b/pkgs/tools/typesetting/lout/default.nix index c0fc4336297..a2ebfa0a9fd 100644 --- a/pkgs/tools/typesetting/lout/default.nix +++ b/pkgs/tools/typesetting/lout/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { builder = ./builder.sh; meta = { - description = "Lout, a document layout system similar in style to LaTeX"; + description = "Document layout system similar in style to LaTeX"; longDescription = '' The Lout document formatting system is now reads a high-level diff --git a/pkgs/tools/typesetting/rubber/default.nix b/pkgs/tools/typesetting/rubber/default.nix index 8344735606c..32545abaff2 100644 --- a/pkgs/tools/typesetting/rubber/default.nix +++ b/pkgs/tools/typesetting/rubber/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { patchPhase = "substituteInPlace configure --replace which \"type -P\""; meta = { - description = "Rubber, a wrapper for LaTeX and friends"; + description = "Wrapper for LaTeX and friends"; longDescription = '' Rubber is a program whose purpose is to handle all tasks related diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix index c2840fd843f..beb6a7f3a68 100644 --- a/pkgs/tools/typesetting/tex/texlive/default.nix +++ b/pkgs/tools/typesetting/tex/texlive/default.nix @@ -5,16 +5,16 @@ rec { sha256 = "0nh8hfayyf60nm4z8zyclrbc3792c62azgsvrwxnl28iq223200s"; }; - texmfVersion = "2014.20140717"; + texmfVersion = "2014.20140821"; texmfSrc = fetchurl { url = "mirror://debian/pool/main/t/texlive-base/texlive-base_${texmfVersion}.orig.tar.xz"; - sha256 = "08vhl6x742r8fl0gags2r6yspz8ynvz26vdjrqb4vyz5h7h3rzc9"; + sha256 = "02qkzlhb381sybs970fgpc94nhx4jm0l3j5pv8z48l11415lvm9b"; }; - langTexmfVersion = "2014.20140717"; + langTexmfVersion = "2014.20140821"; langTexmfSrc = fetchurl { url = "mirror://debian/pool/main/t/texlive-lang/texlive-lang_${langTexmfVersion}.orig.tar.xz"; - sha256 = "1x9aa3v2cg4lcb58lwksnfdsgrhi0sg968pjqsbndmbxhr1msbp7"; + sha256 = "075avhhhhzw5pbd19q659rn23rws15b5hv7nv0grd93vn3vfwdcy"; }; passthru = { inherit texmfSrc langTexmfSrc; }; diff --git a/pkgs/tools/typesetting/tex/texlive/extra.nix b/pkgs/tools/typesetting/tex/texlive/extra.nix index 4644ee3e50e..f47fedd927d 100644 --- a/pkgs/tools/typesetting/tex/texlive/extra.nix +++ b/pkgs/tools/typesetting/tex/texlive/extra.nix @@ -1,11 +1,11 @@ args: with args; rec { name = "texlive-extra-2014"; - version = "2014.20140717"; + version = "2014.20140821"; src = fetchurl { url = "mirror://debian/pool/main/t/texlive-extra/texlive-extra_${version}.orig.tar.xz"; - sha256 = "1khxqdq9gagm6z8kbpjbraysfzibfjs2cgbrhjpncbd24sxpw13q"; + sha256 = "1y3w8bgp85s90ng2y5dw9chrrvvdf7ibb6ynss8kycvgc0y4m6b3"; }; buildInputs = [texLive xz]; diff --git a/pkgs/tools/typesetting/xmlto/default.nix b/pkgs/tools/typesetting/xmlto/default.nix index 1b0602063e9..a1eee51b34d 100644 --- a/pkgs/tools/typesetting/xmlto/default.nix +++ b/pkgs/tools/typesetting/xmlto/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "xmlto, a front-end to an XSL toolchain"; + description = "Front-end to an XSL toolchain"; longDescription = '' xmlto is a front-end to an XSL toolchain. It chooses an diff --git a/pkgs/tools/video/dvgrab/default.nix b/pkgs/tools/video/dvgrab/default.nix index faaea6aaffc..73986b5be05 100644 --- a/pkgs/tools/video/dvgrab/default.nix +++ b/pkgs/tools/video/dvgrab/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { ]; meta = { - description = "dvgrab, receive and store audio & video over IEEE1394"; + description = "Receive and store audio & video over IEEE1394"; longDescription = '' dvgrab receives audio and video data from a digital camcorder via an diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a4f275e3c6e..05c9d695bc2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -528,7 +528,7 @@ let pkgs_i686 = pkgsi686Linux; }; - inherit (androidenv) androidsdk_4_1; + inherit (androidenv) androidsdk_4_4 androidndk; aria2 = callPackage ../tools/networking/aria2 { }; aria = aria2; @@ -793,6 +793,8 @@ let cpuminer = callPackage ../tools/misc/cpuminer { }; + cpuminer-multi = callPackage ../tools/misc/cpuminer-multi { }; + cuetools = callPackage ../tools/cd-dvd/cuetools { }; unifdef = callPackage ../development/tools/misc/unifdef { }; @@ -801,6 +803,8 @@ let usb_modeswitch = callPackage ../development/tools/misc/usb-modeswitch { }; + anthy = callPackage ../tools/inputmethods/anthy { }; + biosdevname = callPackage ../tools/networking/biosdevname { }; clamav = callPackage ../tools/security/clamav { }; @@ -899,6 +903,8 @@ let dhcpcd = callPackage ../tools/networking/dhcpcd { }; + di = callPackage ../tools/system/di { }; + diffstat = callPackage ../tools/text/diffstat { }; diffutils = callPackage ../tools/text/diffutils { }; @@ -927,6 +933,9 @@ let dotnetfx40 = callPackage ../development/libraries/dotnetfx40 { }; + dolphinEmu = callPackage ../misc/emulators/dolphin-emu { }; + dolphinEmuMaster = callPackage ../misc/emulators/dolphin-emu/master.nix { }; + dropbear = callPackage ../tools/networking/dropbear { }; dtach = callPackage ../tools/misc/dtach { }; @@ -961,6 +970,10 @@ let edk2 = callPackage ../development/compilers/edk2 { }; + emscripten = callPackage ../development/compilers/emscripten { }; + + emscriptenfastcomp = callPackage ../development/compilers/emscripten-fastcomp { }; + efibootmgr = callPackage ../tools/system/efibootmgr { }; efivar = callPackage ../tools/system/efivar { }; @@ -1041,6 +1054,8 @@ let platformTools = androidenv.platformTools; }; + flashrom = callPackage ../tools/misc/flashrom { }; + flpsed = callPackage ../applications/editors/flpsed { }; flvstreamer = callPackage ../tools/networking/flvstreamer { }; @@ -1198,9 +1213,15 @@ let /* Readded by Michael Raskin. There are programs in the wild * that do want 2.0 but not 2.22. Please give a day's notice for - * objections before removal. + * objections before removal. The feature is integer coordinates */ graphviz_2_0 = callPackage ../tools/graphics/graphviz/2.0.nix { }; + + /* Readded by Michael Raskin. There are programs in the wild + * that do want 2.32 but not 2.0 or 2.36. Please give a day's notice for + * objections before removal. The feature is libgraph. + */ + graphviz_2_32 = callPackage ../tools/graphics/graphviz/2.32.nix { }; grive = callPackage ../tools/filesystems/grive { json_c = json-c-0-11; # won't configure with 0.12; others are vulnerable @@ -1225,6 +1246,7 @@ let gt5 = callPackage ../tools/system/gt5 { }; gtest = callPackage ../development/libraries/gtest {}; + gmock = callPackage ../development/libraries/gmock {}; gtkdatabox = callPackage ../development/libraries/gtkdatabox {}; @@ -1266,6 +1288,8 @@ let haveged = callPackage ../tools/security/haveged { }; + hawkthorne = callPackage ../games/hawkthorne { love = love_0_9; }; + hardlink = callPackage ../tools/system/hardlink { }; hashcat = callPackage ../tools/security/hashcat { }; @@ -1276,6 +1300,12 @@ let hdf5 = callPackage ../tools/misc/hdf5 { szip = null; + mpi = null; + }; + + hdf5-mpi = hdf5.override { + szip = null; + mpi = pkgs.openmpi; }; heimdall = callPackage ../tools/misc/heimdall { }; @@ -1510,6 +1540,8 @@ let megatools = callPackage ../tools/networking/megatools { }; + mfcuk = callPackage ../tools/security/mfcuk { }; + minecraft = callPackage ../games/minecraft { }; minecraft-server = callPackage ../games/minecraft-server { }; @@ -1643,6 +1675,8 @@ let pa_applet = callPackage ../tools/audio/pa-applet { }; + pnmixer = callPackage ../tools/audio/pnmixer { }; + nifskope = callPackage ../tools/graphics/nifskope { }; nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {}; @@ -1722,6 +1756,8 @@ let openjade = callPackage ../tools/text/sgml/openjade { }; + openntpd = callPackage ../tools/networking/openntpd { }; + openobex = callPackage ../tools/bluetooth/openobex { }; openopc = callPackage ../tools/misc/openopc { @@ -1756,6 +1792,8 @@ let openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { }; + openvswitch = callPackage ../os-specific/linux/openvswitch { }; + optipng = callPackage ../tools/graphics/optipng { libpng = libpng12; }; @@ -2027,6 +2065,14 @@ let ruby = ruby18; }; + s6Dns = callPackage ../tools/networking/s6-dns { }; + + s6LinuxUtils = callPackage ../os-specific/linux/s6-linux-utils { }; + + s6Networking = callPackage ../tools/networking/s6-networking { }; + + s6PortableUtils = callPackage ../tools/misc/s6-portable-utils { }; + sablotron = callPackage ../tools/text/xml/sablotron { }; safecopy = callPackage ../tools/system/safecopy { }; @@ -2187,6 +2233,8 @@ let tboot = callPackage ../tools/security/tboot { }; + tcl2048 = callPackage ../games/tcl2048 { }; + tcpdump = callPackage ../tools/networking/tcpdump { }; tcpflow = callPackage ../tools/networking/tcpflow { }; @@ -2371,6 +2419,12 @@ let ttmkfdir = callPackage ../tools/misc/ttmkfdir { }; + uim = callPackage ../tools/inputmethods/uim { + inherit (pkgs.kde4) kdelibs; + }; + + uhub = callPackage ../servers/uhub { }; + unclutter = callPackage ../tools/misc/unclutter { }; unbound = callPackage ../tools/networking/unbound { }; @@ -2379,6 +2433,8 @@ let unrar = callPackage ../tools/archivers/unrar { }; + xar = callPackage ../tools/compression/xar { }; + xarchive = callPackage ../tools/archivers/xarchive { }; xarchiver = callPackage ../tools/archivers/xarchiver { }; @@ -2395,6 +2451,8 @@ let uptimed = callPackage ../tools/system/uptimed { }; + urlwatch = callPackage ../tools/networking/urlwatch { }; + varnish = callPackage ../servers/varnish { }; varnish2 = callPackage ../servers/varnish/2.1.nix { }; @@ -2652,7 +2710,6 @@ let adobe_flex_sdk = callPackage ../development/compilers/adobe-flex-sdk { }; fpc = callPackage ../development/compilers/fpc { }; - fpc_2_4_0 = callPackage ../development/compilers/fpc/2.4.0.nix { }; gambit = callPackage ../development/compilers/gambit { }; @@ -3100,10 +3157,12 @@ let juliaGit = callPackage ../development/compilers/julia/git-20131013.nix { liblapack = liblapack.override {shared = true;}; llvm = llvm_33; + openblas = openblas_0_2_2; }; julia021 = callPackage ../development/compilers/julia/0.2.1.nix { liblapack = liblapack.override {shared = true;}; llvm = llvm_33; + openblas = openblas_0_2_2; }; julia030 = let liblapack = liblapack_3_5_0.override {shared = true;}; @@ -3113,8 +3172,9 @@ let inherit liblapack; }; llvm = llvm_34; + openblas = openblas_0_2_10; }; - julia = julia021; + julia = julia030; lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) { inherit makeWrapper gtk glib pango atk gdk_pixbuf; @@ -3226,6 +3286,8 @@ let ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { }; + cmdliner = callPackage ../development/ocaml-modules/cmdliner { }; + cppo = callPackage ../development/tools/ocaml/cppo { }; cryptokit = callPackage ../development/ocaml-modules/cryptokit { }; @@ -3258,6 +3320,8 @@ let gtkmathview = callPackage ../development/libraries/gtkmathview { }; }; + lambdaTerm = callPackage ../development/ocaml-modules/lambda-term { }; + menhir = callPackage ../development/ocaml-modules/menhir { }; merlin = callPackage ../development/tools/ocaml/merlin { }; @@ -3302,6 +3366,8 @@ let ocaml_ssl = callPackage ../development/ocaml-modules/ssl { }; + ocaml_text = callPackage ../development/ocaml-modules/ocaml-text { }; + ounit = callPackage ../development/ocaml-modules/ounit { }; ulex = callPackage ../development/ocaml-modules/ulex { }; @@ -3327,6 +3393,8 @@ let opam_1_1 = callPackage ../development/tools/ocaml/opam/1.1.nix { }; opam = opam_1_1; + utop = callPackage ../development/tools/ocaml/utop { }; + sawja = callPackage ../development/ocaml-modules/sawja { }; uucd = callPackage ../development/ocaml-modules/uucd { }; @@ -3337,6 +3405,9 @@ let yojson = callPackage ../development/ocaml-modules/yojson { }; zarith = callPackage ../development/ocaml-modules/zarith { }; + + zed = callPackage ../development/ocaml-modules/zed { }; + }; ocamlPackages = recurseIntoAttrs ocamlPackages_4_01_0; @@ -3481,8 +3552,11 @@ let erlangR14 = callPackage ../development/interpreters/erlang/R14.nix { }; erlangR15 = callPackage ../development/interpreters/erlang/R15.nix { }; erlangR16 = callPackage ../development/interpreters/erlang/R16.nix { }; + erlangR16_odbc = callPackage ../development/interpreters/erlang/R16.nix { odbcSupport = true; }; erlangR17 = callPackage ../development/interpreters/erlang/R17.nix { }; + erlangR17_odbc = callPackage ../development/interpreters/erlang/R17.nix { odbcSupport = true; }; erlang = erlangR17; + erlang_odbc = erlangR17_odbc; rebar = callPackage ../development/tools/build-managers/rebar { }; @@ -3674,6 +3748,7 @@ let ruby18 = callPackage ../development/interpreters/ruby/ruby-18.nix { }; ruby19 = callPackage ../development/interpreters/ruby/ruby-19.nix { }; ruby2 = lowPrio (callPackage ../development/interpreters/ruby/ruby-2.0.nix { }); + ruby21 = callPackage ../development/interpreters/ruby/ruby-2.1.2.nix { }; ruby = ruby19; @@ -3694,6 +3769,8 @@ let scheme48 = callPackage ../development/interpreters/scheme48 { }; + self = callPackage_i686 ../development/interpreters/self { }; + spark = callPackage ../applications/networking/cluster/spark { }; spidermonkey = callPackage ../development/interpreters/spidermonkey { }; @@ -3847,6 +3924,10 @@ let bison3 = callPackage ../development/tools/parsing/bison/3.x.nix { }; bison = bison3; + bossa = callPackage ../development/tools/misc/bossa { + wxGTK = wxGTK30; + }; + buildbot = callPackage ../development/tools/build-managers/buildbot { inherit (pythonPackages) twisted jinja2 sqlalchemy sqlalchemy_migrate; dateutil = pythonPackages.dateutil_1_5; @@ -4087,6 +4168,10 @@ let ninja = callPackage ../development/tools/build-managers/ninja { }; + nixbang = callPackage ../development/tools/misc/nixbang { + pythonPackages = python3Packages; + }; + node_webkit = callPackage ../development/tools/node-webkit { gconf = pkgs.gnome.GConf; }; @@ -4323,8 +4408,6 @@ let audiofile = callPackage ../development/libraries/audiofile { }; - axis = callPackage ../development/libraries/axis { }; - babl_0_0_22 = callPackage ../development/libraries/babl/0_0_22.nix { }; babl = callPackage ../development/libraries/babl { }; @@ -4515,11 +4598,7 @@ let expat = callPackage ../development/libraries/expat { }; - extremetuxracer = builderDefsPackage (import ../games/extremetuxracer) { - inherit mesa tcl freeglut SDL SDL_mixer pkgconfig - gettext intltool; - inherit (xlibs) libX11 xproto libXi inputproto - libXmu libXext xextproto libXt libSM libICE; + extremetuxracer = callPackage ../games/extremetuxracer { libpng = libpng12; }; @@ -4708,36 +4787,10 @@ let glibcInfo = callPackage ../development/libraries/glibc/2.19/info.nix { }; - glibc_multi = - runCommand "${glibc.name}-multi" - { glibc64 = glibc; - glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc; - } - '' - mkdir -p $out - ln -s $glibc64/* $out/ - - rm $out/lib $out/lib64 - mkdir -p $out/lib - ln -s $glibc64/lib/* $out/lib - ln -s $glibc32/lib $out/lib/32 - ln -s lib $out/lib64 - - # fixing ldd RLTDLIST - rm $out/bin - cp -rs $glibc64/bin $out - chmod u+w $out/bin - rm $out/bin/ldd - sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-2.19.so $out/lib/32/ld-linux.so.2\"|g" \ - $glibc64/bin/ldd > $out/bin/ldd - chmod 555 $out/bin/ldd - - rm $out/include - cp -rs $glibc32/include $out - chmod -R u+w $out/include - cp -rsf $glibc64/include $out - '' # */ - ; + glibc_multi = callPackage ../development/libraries/glibc/2.19/multi.nix { + inherit glibc; + glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc; + }; glm = callPackage ../development/libraries/glm { }; @@ -5214,7 +5267,6 @@ let liblscp = callPackage ../development/libraries/liblscp { }; libe-book = callPackage ../development/libraries/libe-book {}; - libe-book_00 = callPackage ../development/libraries/libe-book/0.0.nix {}; libev = builderDefsPackage ../development/libraries/libev { }; @@ -5305,6 +5357,8 @@ let libnatspec = callPackage ../development/libraries/libnatspec { }; + libnfc = callPackage ../development/libraries/libnfc { }; + libnfsidmap = callPackage ../development/libraries/libnfsidmap { }; libnice = callPackage ../development/libraries/libnice { }; @@ -5429,7 +5483,6 @@ let libmusicbrainz = libmusicbrainz3; libmwaw = callPackage ../development/libraries/libmwaw { }; - libmwaw_02 = callPackage ../development/libraries/libmwaw/0.2.nix { }; libmx = callPackage ../development/libraries/libmx { }; @@ -5441,6 +5494,8 @@ let libnfnetlink = callPackage ../development/libraries/libnfnetlink { }; + libnftnl = callPackage ../development/libraries/libnftnl { }; + libnih = callPackage ../development/libraries/libnih { }; libnova = callPackage ../development/libraries/libnova { }; @@ -5683,6 +5738,8 @@ let lirc = callPackage ../development/libraries/lirc { }; + liquidfun = callPackage ../development/libraries/liquidfun { }; + liquidwar = builderDefsPackage ../games/liquidwar { inherit (xlibs) xproto libX11 libXrender; inherit gmp mesa libjpeg @@ -5884,7 +5941,11 @@ let openexr = callPackage ../development/libraries/openexr { }; - openldap = callPackage ../development/libraries/openldap { }; + openldap = callPackage ../development/libraries/openldap { + stdenv = if stdenv.isDarwin + then clangStdenv + else stdenv; + }; openlierox = callPackage ../games/openlierox { }; @@ -5937,8 +5998,6 @@ let pdf2xml = callPackage ../development/libraries/pdf2xml {} ; - pdf2htmlex = callPackage ../development/libraries/pdf2htmlex {} ; - phonon = callPackage ../development/libraries/phonon { }; phonon_backend_gstreamer = callPackage ../development/libraries/phonon-backend-gstreamer { }; @@ -6178,6 +6237,8 @@ let SDL2_mixer = callPackage ../development/libraries/SDL2_mixer { }; + SDL2_net = callPackage ../development/libraries/SDL2_net { }; + SDL2_gfx = callPackage ../development/libraries/SDL2_gfx { }; serd = callPackage ../development/libraries/serd {}; @@ -7053,6 +7114,10 @@ let tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { }; + tomcat7 = callPackage ../servers/http/tomcat/7.0.nix { }; + + tomcat8 = callPackage ../servers/http/tomcat/8.0.nix { }; + tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { }; axis2 = callPackage ../servers/http/tomcat/axis2 { }; @@ -7071,12 +7136,14 @@ let xinetd = callPackage ../servers/xinetd { }; + zookeeper = callPackage ../servers/zookeeper { }; + xquartz = callPackage ../servers/x11/xquartz { }; quartz-wm = callPackage ../servers/x11/quartz-wm { stdenv = clangStdenv; }; xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix { inherit clangStdenv fetchurl fetchgit fetchpatch stdenv pkgconfig intltool freetype fontconfig - libxslt expat libpng zlib perl mesa_drivers + libxslt expat libpng zlib perl mesa_drivers spice_protocol dbus libuuid openssl gperf m4 autoconf automake libtool xmlto asciidoc flex bison python mtdev pixman; mesa = mesa_noglu; @@ -7224,7 +7291,9 @@ let inherit (xlibs) xproto; }; - dmraid = callPackage ../os-specific/linux/dmraid { }; + dmraid = callPackage ../os-specific/linux/dmraid { + devicemapper = devicemapper.override {enable_dmeventd = true;}; + }; drbd = callPackage ../os-specific/linux/drbd { }; @@ -7372,12 +7441,6 @@ let kernelPatches = []; }; - linux_3_2_xen = lowPrio (linux_3_2.override { - extraConfig = '' - XEN_DOM0 y - ''; - }); - linux_3_4 = makeOverridable (import ../os-specific/linux/kernel/linux-3.4.nix) { inherit fetchurl stdenv perl buildLinux; kernelPatches = lib.optionals ((platform.kernelArch or null) == "mips") @@ -7575,7 +7638,6 @@ let # Build the kernel modules for the some of the kernels. linuxPackages_3_2 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2 linuxPackages_3_2); - linuxPackages_3_2_xen = linuxPackagesFor pkgs.linux_3_2_xen linuxPackages_3_2_xen; linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 linuxPackages_3_4); linuxPackages_3_6_rpi = linuxPackagesFor pkgs.linux_3_6_rpi linuxPackages_3_6_rpi; linuxPackages_3_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_10 linuxPackages_3_10); @@ -7672,6 +7734,8 @@ let libpng = libpng15; }; + nftables = callPackage ../os-specific/linux/nftables { }; + numactl = callPackage ../os-specific/linux/numactl { }; gocode = callPackage ../development/tools/gocode { }; @@ -7981,6 +8045,8 @@ let cantarell_fonts = callPackage ../data/fonts/cantarell-fonts { }; + comic-neue = callPackage ../data/fonts/comic-neue { }; + corefonts = callPackage ../data/fonts/corefonts { }; wrapFonts = paths : ((import ../data/fonts/fontWrap) { @@ -8024,6 +8090,8 @@ let eb-garamond = callPackage ../data/fonts/eb-garamond { }; + fira = callPackage ../data/fonts/fira { }; + freefont_ttf = callPackage ../data/fonts/freefont-ttf { }; freepats = callPackage ../data/misc/freepats { }; @@ -8237,6 +8305,12 @@ let inherit (gnome3) baobab; + backintime-common = callPackage ../applications/networking/sync/backintime/common.nix { }; + + backintime-gnome = callPackage ../applications/networking/sync/backintime/gnome.nix { }; + + backintime = backintime-gnome; + bar = callPackage ../applications/window-managers/bar { }; baresip = callPackage ../applications/networking/instant-messengers/baresip { @@ -8258,7 +8332,12 @@ let bibletime = callPackage ../applications/misc/bibletime { }; - bitcoin = callPackage ../applications/misc/bitcoin { }; + bitcoin = callPackage ../applications/misc/bitcoin {}; + bitcoind = callPackage ../applications/misc/bitcoin { gui = false; }; + + altcoins = recurseIntoAttrs ( + callPackage ../applications/misc/bitcoin/altcoins.nix {} + ); bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { gnutls = gnutls; @@ -8315,20 +8394,16 @@ let chatzilla = callPackage ../applications/networking/irc/chatzilla { }; - chromium = lowPrio (callPackage ../applications/networking/browsers/chromium { + chromium = callPackage ../applications/networking/browsers/chromium { channel = "stable"; pulseSupport = config.pulseaudio or true; enablePepperFlash = config.chromium.enablePepperFlash or false; enablePepperPDF = config.chromium.enablePepperPDF or false; - }); + }; chromiumBeta = lowPrio (chromium.override { channel = "beta"; }); - chromiumBetaWrapper = lowPrio (wrapChromium chromiumBeta); chromiumDev = lowPrio (chromium.override { channel = "dev"; }); - chromiumDevWrapper = lowPrio (wrapChromium chromiumDev); - - chromiumWrapper = wrapChromium chromium; cinelerra = callPackage ../applications/video/cinelerra { }; @@ -8383,7 +8458,7 @@ let d4x = callPackage ../applications/misc/d4x { }; - darcs = with haskellPackages_ghc763; callPackage ../applications/version-management/darcs { + darcs = with haskellPackages_ghc783; callPackage ../applications/version-management/darcs { cabal = cabal.override { extension = self : super : { isLibrary = false; @@ -8497,6 +8572,8 @@ let colorTheme = callPackage ../applications/editors/emacs-modes/color-theme { }; + colorThemeSolarized = callPackage ../applications/editors/emacs-modes/color-theme-solarized { }; + cryptol = callPackage ../applications/editors/emacs-modes/cryptol { }; cua = callPackage ../applications/editors/emacs-modes/cua { }; @@ -8629,6 +8706,10 @@ let inherit (gnome) gnomedocutils libgnome libglade libgnomeui scrollkeeper; }; + evilvte = callPackage ../applications/misc/evilvte { + configH = config.evilvte.config or ""; + }; + evopedia = callPackage ../applications/misc/evopedia { }; keepassx = callPackage ../applications/misc/keepassx { }; @@ -8947,7 +9028,9 @@ let gpsd = callPackage ../servers/gpsd { }; - guitone = callPackage ../applications/version-management/guitone { }; + guitone = callPackage ../applications/version-management/guitone { + graphviz = graphviz_2_32; + }; gv = callPackage ../applications/misc/gv { }; @@ -8986,26 +9069,6 @@ let i810switch = callPackage ../os-specific/linux/i810switch { }; - icecat3 = lowPrio (callPackage ../applications/networking/browsers/icecat-3 { - inherit (gnome) libIDL libgnomeui gnome_vfs; - inherit (xlibs) pixman; - inherit (pythonPackages) ply; - }); - - icecatXulrunner3 = lowPrio (callPackage ../applications/networking/browsers/icecat-3 { - application = "xulrunner"; - inherit (gnome) libIDL libgnomeui gnome_vfs; - inherit (xlibs) pixman; - inherit (pythonPackages) ply; - }); - - icecat3Xul = - (symlinkJoin "icecat-with-xulrunner-${icecat3.version}" - [ icecat3 icecatXulrunner3 ]) - // { inherit (icecat3) gtk isFirefox3Like meta; }; - - icecat3Wrapper = wrapFirefox { browser = icecat3Xul; browserName = "icecat"; desktopName = "IceCat"; }; - icewm = callPackage ../applications/window-managers/icewm { }; id3v2 = callPackage ../applications/audio/id3v2 { }; @@ -9104,6 +9167,8 @@ let inherit (gnome) libglade; }; + koji = callPackage ../tools/package-management/koji { }; + lame = callPackage ../applications/audio/lame { }; larswm = callPackage ../applications/window-managers/larswm { }; @@ -9189,6 +9254,11 @@ let handbrake = callPackage ../applications/video/handbrake { }; + lilyterm = callPackage ../applications/misc/lilyterm { + inherit (gnome) vte; + gtk = gtk2; + }; + lynx = callPackage ../applications/networking/browsers/lynx { }; lyx = callPackage ../applications/misc/lyx { }; @@ -9325,9 +9395,10 @@ let mpv = callPackage ../applications/video/mpv { lua = lua5_1; - bs2bSupport = true; - quviSupport = true; - cacaSupport = true; + bs2bSupport = config.mpv.bs2bSupport or true; + quviSupport = config.mpv.quviSupport or false; + cacaSupport = config.mpv.cacaSupport or true; + vaapiSupport = config.mpv.vaapiSupport or false; }; mrxvt = callPackage ../applications/misc/mrxvt { }; @@ -9353,6 +9424,9 @@ let mutt = callPackage ../applications/networking/mailreaders/mutt { }; + namecoin = callPackage ../applications/misc/namecoin { }; + namecoinqt = callPackage ../applications/misc/namecoin/qt.nix { }; + pcmanfm = callPackage ../applications/misc/pcmanfm { }; ruby_gpgme = callPackage ../development/libraries/ruby_gpgme { @@ -9371,8 +9445,11 @@ let cursesSupport = true; }; - inherit gettext highline iconv locale lockfile rmail_sup - text trollop unicode xapian_ruby which; + inherit gettext highline iconv locale lockfile + text trollop xapian_ruby which; + + rmail_sup = ""; # missing + unicode = ""; # See https://github.com/NixOS/nixpkgs/issues/1804 and # https://github.com/NixOS/nixpkgs/issues/2146 @@ -9381,15 +9458,16 @@ let dontPatchShebangs = 1; } ); - - chronic = chronic_0_9_1; + chronic = chronic; gpgme = ruby_gpgme; - mime_types = mime_types_1_25; + mime_types = mime_types; ncursesw_sup = ruby_ncursesw_sup; - rake = rubyLibs.rake_10_1_0; + rake = rake; }; - synfigstudio = callPackage ../applications/graphics/synfigstudio { }; + synfigstudio = callPackage ../applications/graphics/synfigstudio { + fontsConf = makeFontsConf { fontDirectories = [ freefont_ttf ]; }; + }; sxhkd = callPackage ../applications/window-managers/sxhkd { }; @@ -9411,6 +9489,8 @@ let nano = callPackage ../applications/editors/nano { }; + nanoblogger = callPackage ../applications/misc/nanoblogger { }; + navipowm = callPackage ../applications/misc/navipowm { }; navit = callPackage ../applications/misc/navit { }; @@ -9545,6 +9625,8 @@ let qiv = callPackage ../applications/graphics/qiv { }; + processing = callPackage ../applications/graphics/processing { inherit (xorg) libXxf86vm; }; + # perhaps there are better apps for this task? It's how I had configured my preivous system. # And I don't want to rewrite all rules procmail = callPackage ../applications/misc/procmail { }; @@ -9678,6 +9760,8 @@ let conf = config.st.conf or null; }; + stella = callPackage ../misc/emulators/stella { }; + linuxstopmotion = callPackage ../applications/video/linuxstopmotion { }; sweethome3d = recurseIntoAttrs ( (callPackage ../applications/misc/sweethome3d { }) @@ -9850,6 +9934,11 @@ let tig = gitAndTools.tig; + tilda = callPackage ../applications/misc/tilda { + vte = gnome3.vte; + gtk = gtk3; + }; + timidity = callPackage ../tools/misc/timidity { }; tint2 = callPackage ../applications/misc/tint2 { }; @@ -10038,13 +10127,6 @@ let wordnet = callPackage ../applications/misc/wordnet { }; - wrapChromium = browser: wrapFirefox { - inherit browser; - browserName = browser.packageName; - desktopName = "Chromium"; - icon = "${browser}/share/icons/hicolor/48x48/apps/${browser.packageName}.png"; - }; - wrapFirefox = { browser, browserName ? "firefox", desktopName ? "Firefox", nameSuffix ? "" , icon ? "${browser}/lib/${browser.name}/browser/icons/mozicon128.png" }: @@ -10073,6 +10155,8 @@ let gtk_modules = [ libcanberra ]; }; + wxhexeditor = callPackage ../applications/editors/wxhexeditor { }; + x11vnc = callPackage ../tools/X11/x11vnc { }; x2vnc = callPackage ../tools/X11/x2vnc { }; @@ -10176,10 +10260,7 @@ let xmp = callPackage ../applications/audio/xmp { }; - xnee = callPackage ../tools/X11/xnee { - # Work around "missing separator" error. - stdenv = overrideInStdenv stdenv [ gnumake381 ]; - }; + xnee = callPackage ../tools/X11/xnee { }; xvidcap = callPackage ../applications/video/xvidcap { inherit (gnome) scrollkeeper libglade; @@ -10218,6 +10299,10 @@ let zgrviewer = callPackage ../applications/graphics/zgrviewer {}; + zim = callPackage ../applications/office/zim { + pygtk = pyGtkGlade; + }; + zotero = callPackage ../applications/office/zotero { xulrunner = xulrunner_30; }; @@ -10565,6 +10650,8 @@ let xonotic = callPackage ../games/xonotic { }; + xskat = callPackage ../games/xskat { }; + xsokoban = builderDefsPackage (import ../games/xsokoban) { inherit (xlibs) libX11 xproto libXpm libXt; }; @@ -10888,7 +10975,16 @@ let liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { }; - openblas = callPackage ../development/libraries/science/math/openblas { }; + # julia is pinned to specific versions of openblas, so keep old versions + # until they aren't needed. The un-versioned attribute may continue to track + # upstream development. + openblas = callPackage ../development/libraries/science/math/openblas { + liblapack = liblapack_3_5_0; + }; + openblas_0_2_10 = callPackage ../development/libraries/science/math/openblas/0.2.10.nix { + liblapack = liblapack_3_5_0; + }; + openblas_0_2_2 = callPackage ../development/libraries/science/math/openblas/0.2.2.nix { }; mathematica = callPackage ../applications/science/math/mathematica { }; @@ -11160,6 +11256,8 @@ let ekiga = newScope pkgs.gnome ../applications/networking/instant-messengers/ekiga { }; + emulationstation = callPackage ../misc/emulators/emulationstation { }; + electricsheep = callPackage ../misc/screensavers/electricsheep { }; fakenes = callPackage ../misc/emulators/fakenes { }; @@ -11478,6 +11576,10 @@ let xboxdrv = callPackage ../misc/drivers/xboxdrv { }; + xinput_calibrator = callPackage ../tools/X11/xinput_calibrator { + inherit (xlibs) libXi inputproto; + }; + xosd = callPackage ../misc/xosd { }; xsane = callPackage ../applications/graphics/sane/xsane.nix { @@ -11526,6 +11628,8 @@ let snes9x-gtk = callPackage ../misc/emulators/snes9x-gtk { }; + higan = callPackage ../misc/emulators/higan { }; + misc = import ../misc/misc.nix { inherit pkgs stdenv; }; bullet = callPackage ../development/libraries/bullet {}; diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 20f695a0d23..9a064212a40 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -23,6 +23,7 @@ ghc783Prefs = self : super : ghcHEADPrefs self super // { cabalInstall_1_20_0_3 = super.cabalInstall_1_20_0_3.override { Cabal = self.Cabal_1_20_0_2; }; codex = super.codex.override { hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_20_0_2; }; }; + MonadRandom = self.MonadRandom_0_1_13; # requires transformers >= 0.4.x mtl = self.mtl_2_1_2; }; @@ -58,10 +59,15 @@ ghc742Prefs = self : super : ghc763Prefs self super // { aeson = self.aeson_0_7_0_4.override { blazeBuilder = self.blazeBuilder; }; + cabalInstall_0_14_0 = super.cabalInstall_0_14_0.override { + HTTP = self.HTTP.override { network = self.network_2_3_0_13; }; + network = self.network_2_3_0_13; + }; extensibleExceptions = null; # core package in ghc <= 7.4.x hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; haddock = self.haddock_2_11_0; haskeline = super.haskeline.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; + random = self.random_1_0_1_1; # requires base >= 4.6.x shelly = self.shelly_0_15_4_1; }; @@ -95,6 +101,7 @@ logict = super.logict.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; monadPar = self.monadPar_0_1_0_3; nats = null; # none of our versions compile + networkUri = super.networkUri.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; parallel = self.parallel_3_2_0_3; primitive = self.primitive_0_5_0_1; reflection = super.reflection.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; @@ -118,6 +125,7 @@ happy = super.happy.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; hashable = super.hashable.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; hashtables = super.hashtables.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; + hsyslog = super.hsyslog.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; HTTP = super.HTTP.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; HUnit = super.HUnit.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; network = super.network_2_2_1_7.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index d09f8119d8d..15f6ed71007 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -391,7 +391,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cgi_3001_1_7_4 = callPackage ../development/libraries/haskell/cgi/3001.1.7.4.nix {}; cgi_3001_1_7_5 = callPackage ../development/libraries/haskell/cgi/3001.1.7.5.nix {}; cgi_3001_1_8_5 = callPackage ../development/libraries/haskell/cgi/3001.1.8.5.nix {}; - cgi = self.cgi_3001_1_8_5; + cgi_3001_2_0_0 = callPackage ../development/libraries/haskell/cgi/3001.2.0.0.nix {}; + cgi = self.cgi_3001_2_0_0; cgrep = callPackage ../development/libraries/haskell/cgrep {}; @@ -642,6 +643,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in diagramsContrib = callPackage ../development/libraries/haskell/diagrams/contrib.nix {}; diagramsLib = callPackage ../development/libraries/haskell/diagrams/lib.nix {}; diagramsPostscript = callPackage ../development/libraries/haskell/diagrams/postscript.nix {}; + diagramsRasterific = callPackage ../development/libraries/haskell/diagrams/rasterific.nix {}; diagramsSvg = callPackage ../development/libraries/haskell/diagrams/svg.nix {}; Diff = callPackage ../development/libraries/haskell/Diff {}; @@ -668,6 +670,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in directSqlite = callPackage ../development/libraries/haskell/direct-sqlite {}; + directoryLayout = callPackage ../development/libraries/haskell/directory-layout {}; + directoryTree = callPackage ../development/libraries/haskell/directory-tree {}; distributedStatic = callPackage ../development/libraries/haskell/distributed-static {}; @@ -751,6 +755,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in entropy = callPackage ../development/libraries/haskell/entropy {}; + equationalReasoning = callPackage ../development/libraries/haskell/equational-reasoning {}; + equivalence_0_2_3 = callPackage ../development/libraries/haskell/equivalence/0.2.3.nix {}; equivalence_0_2_5 = callPackage ../development/libraries/haskell/equivalence/0.2.5.nix {}; equivalence = self.equivalence_0_2_5; @@ -769,7 +775,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in eventList = callPackage ../development/libraries/haskell/event-list {}; - exPool = callPackage ../development/libraries/haskell/ex-pool { }; + exPool = callPackage ../development/libraries/haskell/ex-pool {}; exceptionMtl = callPackage ../development/libraries/haskell/exception-mtl {}; @@ -851,6 +857,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in folds = callPackage ../development/libraries/haskell/folds {}; + FontyFruity = callPackage ../development/libraries/haskell/FontyFruity {}; + forceLayout = callPackage ../development/libraries/haskell/force-layout {}; formatting = callPackage ../development/libraries/haskell/formatting {}; @@ -897,14 +905,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; - ghcMod_4_1_6 = callPackage ../development/libraries/haskell/ghc-mod/4.1.6.nix { - inherit (pkgs) emacs; - }; - - ghcMod_5_0_1 = callPackage ../development/libraries/haskell/ghc-mod/5.0.1.nix { - inherit (pkgs) emacs; - }; - + ghcMod_4_1_6 = callPackage ../development/libraries/haskell/ghc-mod/4.1.6.nix { inherit (pkgs) emacs; }; + ghcMod_5_0_1_1 = callPackage ../development/libraries/haskell/ghc-mod/5.0.1.1.nix { inherit (pkgs) emacs; }; ghcMod = self.ghcMod_4_1_6; ghcMtl = callPackage ../development/libraries/haskell/ghc-mtl {}; @@ -1127,8 +1129,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in HTTP_4000_2_3 = callPackage ../development/libraries/haskell/HTTP/4000.2.3.nix {}; HTTP_4000_2_5 = callPackage ../development/libraries/haskell/HTTP/4000.2.5.nix {}; HTTP_4000_2_8 = callPackage ../development/libraries/haskell/HTTP/4000.2.8.nix {}; - HTTP_4000_2_17 = callPackage ../development/libraries/haskell/HTTP/4000.2.17.nix {}; - HTTP = self.HTTP_4000_2_17; + HTTP_4000_2_18 = callPackage ../development/libraries/haskell/HTTP/4000.2.18.nix {}; + HTTP = self.HTTP_4000_2_18; httpAttoparsec = callPackage ../development/libraries/haskell/http-attoparsec {}; @@ -1386,6 +1388,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ivor = callPackage ../development/libraries/haskell/ivor {}; + ivory = callPackage ../development/libraries/haskell/ivory {}; + ixdopp = callPackage ../development/libraries/haskell/ixdopp { preprocessorTools = self.preprocessorTools_0_1_3; }; @@ -1508,14 +1512,14 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in llvmConfig = pkgs.llvm_33; llvmGeneralPure = self.llvmGeneralPure_3_3_8_2; }; - llvmGeneral_3_4_2_2 = callPackage ../development/libraries/haskell/llvm-general/3.4.2.2.nix { + llvmGeneral_3_4_4_0 = callPackage ../development/libraries/haskell/llvm-general/3.4.4.0.nix { llvmConfig = pkgs.llvm; }; - llvmGeneral = self.llvmGeneral_3_4_2_2; + llvmGeneral = self.llvmGeneral_3_4_4_0; - llvmGeneralPure_3_3_8_2 = callPackage ../development/libraries/haskell/llvm-general-pure/3.3.8.2.nix { }; - llvmGeneralPure_3_4_2_2 = callPackage ../development/libraries/haskell/llvm-general-pure/3.4.2.2.nix {}; - llvmGeneralPure = self.llvmGeneralPure_3_4_2_2; + llvmGeneralPure_3_3_8_2 = callPackage ../development/libraries/haskell/llvm-general-pure/3.3.8.2.nix {}; + llvmGeneralPure_3_4_4_0 = callPackage ../development/libraries/haskell/llvm-general-pure/3.4.4.0.nix {}; + llvmGeneralPure = self.llvmGeneralPure_3_4_4_0; lrucache = callPackage ../development/libraries/haskell/lrucache {}; @@ -1539,6 +1543,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in machines = callPackage ../development/libraries/haskell/machines {}; + markdown = callPackage ../development/libraries/haskell/markdown {}; + markdownUnlit = callPackage ../development/libraries/haskell/markdown-unlit {}; mathFunctions = callPackage ../development/libraries/haskell/math-functions {}; @@ -1553,6 +1559,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in MaybeT = callPackage ../development/libraries/haskell/MaybeT {}; + meep = callPackage ../development/libraries/haskell/meep {}; + MemoTrie = callPackage ../development/libraries/haskell/MemoTrie {}; mersenneRandomPure64 = callPackage ../development/libraries/haskell/mersenne-random-pure64 {}; @@ -1621,7 +1629,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in MonadPrompt = callPackage ../development/libraries/haskell/MonadPrompt {}; - MonadRandom = callPackage ../development/libraries/haskell/MonadRandom {}; + MonadRandom_0_1_13 = callPackage ../development/libraries/haskell/MonadRandom/0.1.13.nix {}; + MonadRandom_0_2_0_1 = callPackage ../development/libraries/haskell/MonadRandom/0.2.0.1.nix {}; + MonadRandom = self.MonadRandom_0_2_0_1; monadStm = callPackage ../development/libraries/haskell/monad-stm {}; @@ -1637,6 +1647,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in mongoDB = callPackage ../development/libraries/haskell/mongoDB {}; + monomorphic = callPackage ../development/libraries/haskell/monomorphic {}; + monoTraversable = callPackage ../development/libraries/haskell/mono-traversable {}; mmorph = callPackage ../development/libraries/haskell/mmorph {}; @@ -1707,13 +1719,16 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in network_2_3_1_0 = callPackage ../development/libraries/haskell/network/2.3.1.0.nix {}; network_2_4_1_2 = callPackage ../development/libraries/haskell/network/2.4.1.2.nix {}; network_2_5_0_0 = callPackage ../development/libraries/haskell/network/2.5.0.0.nix {}; - network = self.network_2_5_0_0; + network_2_6_0_1 = callPackage ../development/libraries/haskell/network/2.6.0.1.nix {}; + network = self.network_2_5_0_0; # the latest version break HTTP on all platforms networkCarbon = callPackage ../development/libraries/haskell/network-carbon {}; networkConduit = callPackage ../development/libraries/haskell/network-conduit {}; networkConduitTls = callPackage ../development/libraries/haskell/network-conduit-tls {}; + networkFancy = callPackage ../development/libraries/haskell/network-fancy {}; + networkInfo = callPackage ../development/libraries/haskell/network-info {}; networkMetrics = callPackage ../development/libraries/haskell/network-metrics {}; @@ -1722,7 +1737,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in networkProtocolXmpp = callPackage ../development/libraries/haskell/network-protocol-xmpp {}; - networkSimple = callPackage ../development/libraries/haskell/network-simple { }; + networkSimple = callPackage ../development/libraries/haskell/network-simple {}; networkTransport = callPackage ../development/libraries/haskell/network-transport {}; @@ -1814,9 +1829,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in parsec_3_1_5 = callPackage ../development/libraries/haskell/parsec/3.1.5.nix {}; parsec = self.parsec_3_1_5; - parsers_0_10_3 = callPackage ../development/libraries/haskell/parsers/0.10.3.nix {}; - parsers_0_12_1 = callPackage ../development/libraries/haskell/parsers/0.12.1.nix {}; - parsers = self.parsers_0_12_1; + parsers = callPackage ../development/libraries/haskell/parsers {}; parsimony = callPackage ../development/libraries/haskell/parsimony {}; @@ -1926,6 +1939,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in presburger = callPackage ../development/libraries/haskell/presburger {}; + present = callPackage ../development/libraries/haskell/present {}; + prettyclass = callPackage ../development/libraries/haskell/prettyclass {}; prettyShow = callPackage ../development/libraries/haskell/pretty-show {}; @@ -1996,7 +2011,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in RangedSets = callPackage ../development/libraries/haskell/Ranged-sets {}; random_1_0_1_1 = callPackage ../development/libraries/haskell/random/1.0.1.1.nix {}; - random = self.random_1_0_1_1; + random_1_0_1_3 = callPackage ../development/libraries/haskell/random/1.0.1.3.nix {}; + random = self.random_1_0_1_3; randomFu = callPackage ../development/libraries/haskell/random-fu {}; @@ -2008,6 +2024,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ranges = callPackage ../development/libraries/haskell/ranges {}; + Rasterific = callPackage ../development/libraries/haskell/Rasterific {}; + reserve = callPackage ../development/libraries/haskell/reserve {}; rvar = callPackage ../development/libraries/haskell/rvar {}; @@ -2116,6 +2134,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in RSA = callPackage ../development/libraries/haskell/RSA {}; + saltine = callPackage ../development/libraries/haskell/saltine {}; + sampleFrame = callPackage ../development/libraries/haskell/sample-frame {}; safe = callPackage ../development/libraries/haskell/safe {}; @@ -2146,6 +2166,16 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in semigroupoidExtras = callPackage ../development/libraries/haskell/semigroupoid-extras {}; + servant = callPackage ../development/libraries/haskell/servant {}; + + servantPool = callPackage ../development/libraries/haskell/servant-pool {}; + + servantPostgresql = callPackage ../development/libraries/haskell/servant-postgresql {}; + + servantResponse = callPackage ../development/libraries/haskell/servant-response {}; + + servantScotty = callPackage ../development/libraries/haskell/servant-scotty {}; + setenv = callPackage ../development/libraries/haskell/setenv {}; setlocale = callPackage ../development/libraries/haskell/setlocale {}; @@ -2169,6 +2199,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in silently = callPackage ../development/libraries/haskell/silently {}; + sized = callPackage ../development/libraries/haskell/sized {}; + sizedTypes = callPackage ../development/libraries/haskell/sized-types {}; skein = callPackage ../development/libraries/haskell/skein {}; @@ -2377,6 +2409,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in tagged = callPackage ../development/libraries/haskell/tagged {}; + taggedTransformer = callPackage ../development/libraries/haskell/tagged-transformer {}; + taggy = callPackage ../development/libraries/haskell/taggy {}; taggyLens = callPackage ../development/libraries/haskell/taggy-lens {}; @@ -2548,6 +2582,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in typeEquality = callPackage ../development/libraries/haskell/type-equality {}; + typeNatural = callPackage ../development/libraries/haskell/type-natural {}; + typeLevelNaturalNumber = callPackage ../development/libraries/haskell/type-level-natural-number {}; tz = callPackage ../development/libraries/haskell/tz { @@ -2655,8 +2691,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in void = callPackage ../development/libraries/haskell/void {}; vty_4_7_5 = callPackage ../development/libraries/haskell/vty/4.7.5.nix {}; - vty_5_1_4 = callPackage ../development/libraries/haskell/vty/5.1.4.nix {}; - vty = self.vty_5_1_4; + vty_5_2_1 = callPackage ../development/libraries/haskell/vty/5.2.1.nix {}; + vty = self.vty_5_2_1; vtyUi = callPackage ../development/libraries/haskell/vty-ui { vty = self.vty_4_7_5; @@ -2719,6 +2755,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in word8 = callPackage ../development/libraries/haskell/word8 {}; + wordexp = callPackage ../development/libraries/haskell/wordexp {}; + Workflow = callPackage ../development/libraries/haskell/Workflow {}; wreq = callPackage ../development/libraries/haskell/wreq {}; @@ -2799,6 +2837,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in yesodAuth = callPackage ../development/libraries/haskell/yesod-auth {}; + yesodAuthHashdb = callPackage ../development/libraries/haskell/yesod-auth-hashdb {}; + yesodBin = callPackage ../development/libraries/haskell/yesod-bin {}; yesodCore = callPackage ../development/libraries/haskell/yesod-core {}; @@ -2888,7 +2928,10 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in haddock_2_13_2 = callPackage ../development/tools/documentation/haddock/2.13.2.nix {}; haddock_2_14_2 = callPackage ../development/tools/documentation/haddock/2.14.2.nix {}; haddock_2_14_3 = callPackage ../development/tools/documentation/haddock/2.14.3.nix {}; - haddock = self.haddock_2_14_3; + haddock_2_15_0 = callPackage ../development/tools/documentation/haddock/2.15.0.nix {}; + haddock = self.haddock_2_15_0; + + haddockApi = callPackage ../development/libraries/haskell/haddock-api {}; haddockLibrary = callPackage ../development/libraries/haskell/haddock-library {}; @@ -2935,7 +2978,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in pointful = callPackage ../development/tools/haskell/pointful {}; - ShellCheck = callPackage ../development/tools/misc/ShellCheck { }; + ShellCheck = callPackage ../development/tools/misc/ShellCheck {}; SourceGraph = callPackage ../development/tools/haskell/SourceGraph {}; diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix index 9856586a183..356368d137d 100644 --- a/pkgs/top-level/make-tarball.nix +++ b/pkgs/top-level/make-tarball.nix @@ -14,14 +14,7 @@ releaseTools.sourceTarball rec { version = builtins.readFile ../../.version; versionSuffix = "pre${toString nixpkgs.revCount}.${nixpkgs.shortRev}"; - buildInputs = [ - lzma - libxml2 # Needed for the release notes. - libxslt - w3m - nix # Needed to check whether the expressions are valid. - tetex dblatex - ]; + buildInputs = [ nix ]; configurePhase = '' eval "$preConfigure" @@ -32,13 +25,6 @@ releaseTools.sourceTarball rec { dontBuild = false; - buildPhase = '' - echo "building docs..." - export VARTEXFONTS=$TMPDIR/texfonts - make -C doc docbookxsl=${docbook5_xsl}/xml/xsl/docbook - ln -s doc/NEWS.txt NEWS - ''; - doCheck = true; checkPhase = '' @@ -87,19 +73,6 @@ releaseTools.sourceTarball rec { cp -prd . ../$releaseName echo nixpkgs > ../$releaseName/channel-name (cd .. && tar cfa $out/tarballs/$releaseName.tar.xz $releaseName) || false - - mkdir -p $out/release-notes - cp doc/NEWS.html $out/release-notes/index.html - cp doc/style.css $out/release-notes/ - echo "doc release-notes $out/release-notes" >> $out/nix-support/hydra-build-products - - mkdir -p $out/manual - cp doc/manual.html $out/manual/index.html - cp doc/style.css $out/manual/ - echo "doc manual $out/manual" >> $out/nix-support/hydra-build-products - - cp doc/manual.pdf $out/manual.pdf - echo "doc-pdf manual $out/manual.pdf" >> $out/nix-support/hydra-build-products ''; meta = { diff --git a/pkgs/top-level/node-packages.json b/pkgs/top-level/node-packages.json index fec7884eb25..1ebb9f290b7 100644 --- a/pkgs/top-level/node-packages.json +++ b/pkgs/top-level/node-packages.json @@ -83,6 +83,7 @@ , "grunt-contrib-uglify" , "grunt-karma" , "grunt-sed" +, "gulp" , "karma" , "karma-mocha" , "karma-coverage" @@ -123,4 +124,5 @@ , "sinon" , "shelljs" , "typescript" +, "git-run" ] diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 8895d4d093b..67accf016cc 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -480,6 +480,7 @@ let self = _self // overrides; _self = with self; { sha256 = "14s75bsm5irisp8wkbwl3ycw160srr1rks7x9jcbvcxh79wr6gbh"; }; propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ]; + doCheck = false; # randomly fails }; CacheFastMmap = buildPerlPackage rec { @@ -4246,6 +4247,7 @@ let self = _self // overrides; _self = with self; { url = mirror://cpan/authors/id/C/CF/CFRANKS/HTML-Widget-1.11.tar.gz; sha256 = "02w21rd30cza094m5xs9clzw8ayigbhg2ddzl6jycp4jam0dyhmy"; }; + doCheck = false; propagatedBuildInputs = [ TestNoWarnings ClassAccessor ClassAccessorChained ClassDataAccessor ModulePluggableFast HTMLTree @@ -5698,8 +5700,8 @@ let self = _self // overrides; _self = with self; { url = mirror://cpan/authors/id/H/HA/HAARG/Moo-1.006000.tar.gz; sha256 = "0gjh6dyz825cwjibq2wlpx14drjqx4pxxh931p4x3jd2617hax17"; }; - buildInputs = [ TestFatal ImportInto ]; - propagatedBuildInputs = [ ClassMethodModifiers DevelGlobalDestruction ModuleRuntime RoleTiny strictures ]; + buildInputs = [ TestFatal ]; + propagatedBuildInputs = [ ClassMethodModifiers DevelGlobalDestruction ImportInto ModuleRuntime RoleTiny strictures ]; meta = { description = "Minimalist Object Orientation (with Moose compatiblity)"; license = "perl5"; @@ -6467,7 +6469,7 @@ let self = _self // overrides; _self = with self; { }; }; - NetAMQP = buildPerlPackage { + NetAMQP = buildPerlModule { name = "Net-AMQP-0.06"; src = fetchurl { url = mirror://cpan/authors/id/C/CH/CHIPS/Net-AMQP-0.06.tar.gz; @@ -6481,13 +6483,6 @@ let self = _self // overrides; _self = with self; { maintainers = with maintainers; [ ocharles ]; platforms = stdenv.lib.platforms.unix; }; - preConfigure = - '' - substituteInPlace META.json \ - '"Module::Build" : "0.40"' '"Module::Build" : "0.39"' - substituteInPlace META.yml \ - 'Module::Build: 0.40' 'Module::Build: 0.39' - ''; }; NetCoverArtArchive = buildPerlPackage { @@ -8168,6 +8163,7 @@ let self = _self // overrides; _self = with self; { CatalystPluginSession CatalystPluginAuthentication CatalystAuthenticationStoreDBIxClass CatalystPluginAuthorizationRoles + CatalystPluginSessionStateCookie CatalystPluginAuthorizationACL CatalystPluginHTMLWidget CatalystPluginSessionStoreFastMmap diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index 1225021ad37..700547450ec 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -39,6 +39,12 @@ let self = with self; { sha256 = "1gcsh9iar5qa1yzpjki9bb5rivcb6yjp45lmjmp98wlyf83vmy2y"; }; + zendopcache = buildPecl { + name = "zendopcache-7.0.3"; + + sha256 = "0qpfbkfy4wlnsfq4vc4q5wvaia83l89ky33s08gqrcfp3p1adn88"; + }; + zmq = buildPecl { name = "zmq-1.1.2"; diff --git a/pkgs/top-level/python-packages-generated.nix b/pkgs/top-level/python-packages-generated.nix index e76cf4988d0..247d18680d9 100644 --- a/pkgs/top-level/python-packages-generated.nix +++ b/pkgs/top-level/python-packages-generated.nix @@ -2666,7 +2666,7 @@ in md5 = "09dcec70f623a9ef774f1aef75690995"; }; doCheck = false; - buildInputs = [ ]; + buildInputs = [ pkgs.postgresql ]; propagatedBuildInputs = [ ]; installCommand = ''easy_install --always-unzip --prefix="$out" .''; meta = { @@ -5242,6 +5242,7 @@ in doCheck = true; buildInputs = [ self."nose-1.3.3" self."unittest2-0.5.1" self."pyquery-1.2.8" self."WSGIProxy2-0.4.1" self."PasteDeploy-1.5.2" self."mock-1.0.1" self."coverage-3.7.1" pkgs.unzip ]; propagatedBuildInputs = [ self."beautifulsoup4-4.3.2" self."six-1.6.1" self."waitress-0.8.9" self."WebOb-1.4" ]; + preConfigure = ''substituteInPlace setup.py --replace "nose<1.3.0" "nose"''; installCommand = ''easy_install --always-unzip --prefix="$out" .''; meta = { description = '' diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3ed195612de..3af1950f9b1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7,6 +7,7 @@ let isPy33 = python.majorVersion == "3.3"; isPy34 = python.majorVersion == "3.4"; isPyPy = python.executable == "pypy"; + isPy3k = strings.substring 0 1 python.majorVersion == "3"; # Unique python version identifier pythonName = @@ -27,7 +28,7 @@ pythonPackages = modules // import ./python-packages-generated.nix { # Python packages for all python versions rec { - inherit python isPy26 isPy27 isPy33 isPy34 isPyPy pythonName; + inherit python isPy26 isPy27 isPy33 isPy34 isPyPy isPy3k pythonName; inherit (pkgs) fetchurl fetchsvn fetchgit stdenv unzip; # helpers @@ -111,11 +112,6 @@ rec { # version of nixpart. nixpart0 = nixpart; - pil = import ../development/python-modules/pil { - inherit (pkgs) fetchurl stdenv libjpeg zlib freetype; - inherit python buildPythonPackage; - }; - pitz = import ../applications/misc/pitz { inherit (pkgs) stdenv fetchurl; inherit buildPythonPackage tempita jinja2 pyyaml clepy mock nose decorator docutils; @@ -143,7 +139,7 @@ rec { pygtk = import ../development/python-modules/pygtk { inherit (pkgs) fetchurl stdenv pkgconfig gtk; - inherit python buildPythonPackage pygobject pycairo; + inherit python buildPythonPackage pygobject pycairo isPy3k; }; # XXX: how can we get an override here? @@ -153,7 +149,7 @@ rec { pyGtkGlade = import ../development/python-modules/pygtk { inherit (pkgs) fetchurl stdenv pkgconfig gtk; inherit (pkgs.gnome) libglade; - inherit python buildPythonPackage pygobject pycairo; + inherit python buildPythonPackage pygobject pycairo isPy3k; }; pyqt4 = import ../development/python-modules/pyqt/4.x.nix { @@ -259,9 +255,8 @@ rec { propagatedBuildInputs = [ pythonPackages.notmuch - pythonPackages.subprocess32 pythonPackages.chardet - ]; + ] ++ optional (!isPy3k) pythonPackages.subprocess32; doCheck = false; @@ -283,15 +278,15 @@ rec { alembic = buildPythonPackage rec { - name = "alembic-0.6.0"; + name = "alembic-0.6.6"; src = fetchurl { url = "https://pypi.python.org/packages/source/a/alembic/${name}.tar.gz"; - md5 = "084fe81b48ebae43b0f6031af68a03d6"; + md5 = "71e4a8f6849e1527abfc4ea33d51f37c"; }; - buildInputs = [ nose ]; - propagatedBuildInputs = [ Mako sqlalchemy ]; + buildInputs = [ nose mock ]; + propagatedBuildInputs = [ Mako sqlalchemy9 ]; meta = { homepage = http://bitbucket.org/zzzeek/alembic; @@ -389,11 +384,12 @@ rec { anyjson = buildPythonPackage rec { - name = "anyjson-0.3.1"; + name = "anyjson-0.3.3"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/a/anyjson/${name}.tar.gz"; - md5 = "2b53b5d53fc40af4da7268d3c3e35a50"; + md5 = "2ea28d6ec311aeeebaf993cb3008b27c"; }; buildInputs = [ pythonPackages.nose ]; @@ -443,6 +439,24 @@ rec { }; + apscheduler = buildPythonPackage rec { + name = "APScheduler-2.1.2"; + + propagatedBuildInputs = with pythonPackages; [ futures tzlocal six pytest mock]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/A/APScheduler/APScheduler-2.1.2.tar.gz"; + md5 = "6862959d460c16ef325d63e1fc3a6684"; + }; + + meta = with pkgs.stdenv.lib; { + description = "Advanced Python Scheduler (APScheduler) is a Python library that lets you schedule your Python code to be executed"; + homepage = http://pypi.python.org/pypi/APScheduler/; + license = licenses.mit; + }; + }; + + area53 = buildPythonPackage (rec { name = "area53-b2c9cdcabd"; @@ -459,9 +473,27 @@ rec { }); + arrow = buildPythonPackage rec { + name = "arrow-${version}"; + version = "0.4.4"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/a/arrow/${name}.tar.gz"; + sha256 = "1sdr4gyjgvz86yr0ll0i11mgy8l1slndr7f0ngam87rpy78gp052"; + }; + + doCheck = false; + + meta = { + description = "Twitter API library"; + license = "apache"; + maintainers = [ maintainers.thoughtpolice ]; + }; + }; async = buildPythonPackage rec { name = "async-0.6.1"; + disabled = isPy3k; meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; buildInputs = [ pkgs.zlib ]; @@ -512,11 +544,11 @@ rec { }); autopep8 = buildPythonPackage (rec { - name = "autopep8-1.0"; + name = "autopep8-1.0.3"; src = fetchurl { url = "https://pypi.python.org/packages/source/a/autopep8/${name}.tar.gz"; - md5 = "41782e66efcbaf9d761bb45a2d2929bb"; + md5 = "7c16d385cf9ad7c1d7fbcfcea2588a56"; }; propagatedBuildInputs = [ pep8 ]; @@ -537,6 +569,8 @@ rec { avro = buildPythonPackage (rec { name = "avro-1.7.6"; + disabled = isPy3k; + src = fetchurl { url = "https://pypi.python.org/packages/source/a/avro/${name}.tar.gz"; md5 = "7f4893205e5ad69ac86f6b44efb7df72"; @@ -551,6 +585,8 @@ rec { avro3k = pkgs.lowPrio (buildPythonPackage (rec { name = "avro3k-1.7.7-SNAPSHOT"; + disabled = (!isPy3k); + src = fetchurl { url = "https://pypi.python.org/packages/source/a/avro3k/${name}.tar.gz"; sha256 = "15ahl0irwwj558s964abdxg4vp6iwlabri7klsm2am6q5r0ngsky"; @@ -597,6 +633,7 @@ rec { beautifulsoup = buildPythonPackage (rec { name = "beautifulsoup-3.2.1"; + disabled = isPy3k; src = fetchurl { url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz"; @@ -636,6 +673,8 @@ rec { beaker = buildPythonPackage rec { name = "Beaker-1.6.4"; + disabled = isPy3k; + src = fetchurl { url = "http://pypi.python.org/packages/source/B/Beaker/${name}.tar.gz"; md5 = "c2e102870ed4c53104dec48ceadf8e9d"; @@ -672,7 +711,8 @@ rec { }; buildInputs = [ pkgs.btrfsProgs ]; - propagatedBuildInputs = with pkgs; [ contextlib2 sqlalchemy8 pyxdg pycparser cffi alembic ]; + propagatedBuildInputs = with pkgs; [ contextlib2 sqlalchemy9 pyxdg pycparser alembic ] + ++ optionals (!isPyPy) [ cffi ]; meta = { description = "Deduplication for Btrfs"; @@ -714,9 +754,9 @@ rec { modules.sqlite3 modules.readline ]; - + buildInputs = with pythonPackages; [ mock pyechonest six responses nose ]; - + # 10 tests are failing doCheck = false; @@ -727,12 +767,12 @@ rec { maintainers = [ stdenv.lib.maintainers.iElectric ]; }; }; - + responses = pythonPackages.buildPythonPackage rec { name = "responses-0.2.2"; propagatedBuildInputs = with pythonPackages; [ requests mock six pytest flake8 ]; - + doCheck = false; src = fetchurl { @@ -741,7 +781,7 @@ rec { }; }; - + rarfile = pythonPackages.buildPythonPackage rec { name = "rarfile-2.6"; @@ -757,7 +797,7 @@ rec { homepage = https://github.com/markokr/rarfile; }; }; - + pyechonest = pythonPackages.buildPythonPackage rec { name = "pyechonest-8.0.2"; @@ -879,33 +919,6 @@ rec { }; - # euca2ools (and maybe Nova) needs boto 1.9, 2.0 doesn't work. - boto_1_9 = buildPythonPackage (rec { - name = "boto-1.9b"; - - src = fetchurl { - url = "http://boto.googlecode.com/files/${name}.tar.gz"; - sha1 = "00a033b0a593c3ca82927867950f73d88b831155"; - }; - - patches = [ ../development/python-modules/boto-1.9-python-2.7.patch ]; - - meta = { - homepage = http://code.google.com/p/boto/; - - license = "bsd"; - - description = "Python interface to Amazon Web Services"; - - longDescription = '' - The boto module is an integrated interface to current and - future infrastructural services offered by Amazon Web - Services. This includes S3, SQS, EC2, among others. - ''; - }; - }); - - boto = buildPythonPackage rec { name = "boto-${version}"; version = "2.32.0"; @@ -1003,9 +1016,12 @@ rec { maintainers = [ stdenv.lib.maintainers.garbas ]; }; }; + zc_buildout171 = buildPythonPackage rec { name = "zc.buildout-1.7.1"; + disabled = isPy3k; + src = fetchurl { url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz"; md5 = "8834a21586bf2be53dc412002241a996"; @@ -1018,9 +1034,12 @@ rec { maintainers = [ stdenv.lib.maintainers.garbas ]; }; }; + zc_buildout152 = buildPythonPackage rec { name = "zc.buildout-1.5.2"; + disabled = isPy3k; + src = fetchurl { url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz"; md5 = "87f7b3f8d13926c806242fd5f6fe36f7"; @@ -1102,6 +1121,7 @@ rec { cheetah = buildPythonPackage rec { version = "2.4.4"; name = "cheetah-${version}"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/C/Cheetah/Cheetah-${version}.tar.gz"; @@ -1169,6 +1189,7 @@ rec { clientform = buildPythonPackage (rec { name = "clientform-0.2.10"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/C/ClientForm/ClientForm-0.2.10.tar.gz"; @@ -1284,7 +1305,7 @@ rec { }; buildInputs = [ unittest2 ]; - propagatedBuildInputs = [ colander sqlalchemy8 ]; + propagatedBuildInputs = [ colander sqlalchemy9 ]; # string: argument name cannot be overridden via info kwarg. doCheck = false; @@ -1298,11 +1319,11 @@ rec { configobj = buildPythonPackage (rec { - name = "configobj-4.7.2"; + name = "configobj-5.0.6"; src = fetchurl { url = "http://pypi.python.org/packages/source/c/configobj/${name}.tar.gz"; - md5 = "201dbaa732a9049c839f9bb6c27fc7b5"; + md5 = "e472a3a1c2a67bb0ec9b5d54c13a47d6"; }; # error: invalid command 'test' @@ -1474,7 +1495,7 @@ rec { md5 = "c5df008669d17dd6eeb5e2042d5e136f"; }; - buildInputs = [ cffi pycparser mock pytest py ]; + buildInputs = [ pycparser mock pytest py ] ++ optionals (!isPyPy) [ cffi ]; meta = { maintainers = [ stdenv.lib.maintainers.iElectric ]; @@ -1489,7 +1510,7 @@ rec { md5 = "d329f5cb2053fd31dafc02e2c9ef0299"; }; - buildInputs = [ pkgs.libffi pycparser ]; + propagatedBuildInputs = [ pkgs.libffi pycparser ]; meta = { maintainers = [ stdenv.lib.maintainers.iElectric ]; @@ -1618,6 +1639,7 @@ rec { darcsver = buildPythonPackage (rec { name = "darcsver-1.7.4"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/d/darcsver/${name}.tar.gz"; @@ -1724,6 +1746,36 @@ rec { }; }; + deform2 = buildPythonPackage rec { + name = "deform-2.0a2"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/d/deform/${name}.tar.gz"; + sha256 = "1gfaf1d8zp0mp4h229srlffxdp86w1nni9g4aqsshxysr23x591z"; + }; + + buildInputs = [] ++ optional isPy26 unittest2; + + propagatedBuildInputs = + [ pythonPackages.beautifulsoup4 + pythonPackages.peppercorn + pythonPackages.colander + pythonPackages.translationstring + pythonPackages.chameleon + pythonPackages.zope_deprecation + pythonPackages.coverage + pythonPackages.nose + ]; + + meta = { + maintainers = [ + stdenv.lib.maintainers.garbas + stdenv.lib.maintainers.iElectric + ]; + platforms = stdenv.lib.platforms.all; + }; + }; + deform_bootstrap = buildPythonPackage rec { name = "deform_bootstrap-0.2.9"; @@ -1783,6 +1835,27 @@ rec { }; }; + docker = buildPythonPackage rec { + name = "docker-py-0.4.0"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/d/docker-py/${name}.tar.gz"; + md5 = "21ab8fd729105487e6423b654d6c0860"; + }; + + propagatedBuildInputs = [ six requests ]; + + # Version conflict + doCheck = false; + + meta = { + description = "An API client for docker written in Python"; + homepage = https://github.com/docker/docker-py; + license = licenses.asl20; + }; + }; + + dogpile_cache = buildPythonPackage rec { name = "dogpile.cache-0.5.4"; @@ -1821,6 +1894,7 @@ rec { dpkt = buildPythonPackage rec { name = "dpkt-1.8"; + disabled = isPy3k; src = fetchurl { url = "https://dpkt.googlecode.com/files/${name}.tar.gz"; @@ -1884,12 +1958,13 @@ rec { evdev = buildPythonPackage rec { - version = "0.3.2"; + version = "0.4.5"; name = "evdev-${version}"; + disabled = isPy34; # see http://bugs.python.org/issue21121 src = fetchurl { url = "https://pypi.python.org/packages/source/e/evdev/${name}.tar.gz"; - sha256 = "07gmynz764sln2sq18aafx13yawkv5nkqrkk06rj71sq71fsr9h9"; + sha256 = "0w8ib3ab4mpfc1rvd335l8xkd41qbh3iyb0vfiiapgcfvqk74aq7"; }; buildInputs = [ pkgs.linuxHeaders ]; @@ -1909,12 +1984,12 @@ rec { eyeD3 = buildPythonPackage rec { - version = "0.7.2"; + version = "0.7.4"; name = "eyeD3-${version}"; src = fetchurl { - url = http://eyed3.nicfit.net/releases/eyeD3-0.7.2.tgz; - sha256 = "1r0vxdflrj83s8jc5f2qg4p00k37pskn3djym0w73bvq167vkxar"; + url = "http://eyed3.nicfit.net/releases/${name}.tgz"; + sha256 = "001hzgqqnf2ig432mq78jsxidpky2rl2ilm28xwjp32vzphycf51"; }; buildInputs = [ paver ]; @@ -1950,14 +2025,34 @@ rec { md5 = "be885ccd9612966bb81839670d2da099"; }; + doCheck = !isPy3k; # failures.. + meta = { description = "rapid multi-Python deployment"; license = stdenv.lib.licenses.gpl2; }; }; + facebook-sdk = buildPythonPackage rec { + name = "facebook-sdk-0.4.0"; + + disabled = isPy3k; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/f/facebook-sdk/facebook-sdk-0.4.0.tar.gz"; + md5 = "ac9f38e197e54b8ba9f3a61988cc33b7"; + }; + + meta = with pkgs.stdenv.lib; { + description = "Client library that supports the Facebook Graph API and the official Facebook JavaScript SDK."; + homepage = https://github.com/pythonforfacebook/facebook-sdk; + license = licenses.asl20 ; + }; + }; + faker = buildPythonPackage rec { name = "faker-0.0.4"; + disabled = isPy3k; src = fetchurl { url = https://pypi.python.org/packages/source/F/Faker/Faker-0.0.4.tar.gz; sha256 = "09q5jna3j8di0gw5yjx0dvlndkrk2x9vvqzwyfsvg3nlp8h38js1"; @@ -1988,11 +2083,13 @@ rec { }; fabric = buildPythonPackage rec { - name = "fabric-1.6.1"; + name = "fabric-${version}"; + version = "1.9.1"; src = fetchurl { - url = https://pypi.python.org/packages/source/F/Fabric/Fabric-1.6.1.tar.gz; - sha256 = "058psbhqbfm3n214wkyfpgm069yqmdqw1hql9bac1yv9pza3bzx1"; + url = "https://pypi.python.org/packages/source/F/Fabric/Fabric-${version}.tar.gz"; + sha256 = "103mzf0l15kyvw5nmf7bsdrqg6y3wpyxmkyl2h9lk7jxb5gdc9s1"; }; + disabled = isPy3k; propagatedBuildInputs = [ paramiko pycrypto ]; buildInputs = [ fudge nose ]; }; @@ -2094,6 +2191,7 @@ rec { googlecl = buildPythonPackage rec { version = "0.9.14"; name = "googlecl-${version}"; + disabled = isPy3k; src = fetchurl { url = "https://googlecl.googlecode.com/files/${name}.tar.gz"; @@ -2113,20 +2211,35 @@ rec { gtimelog = buildPythonPackage rec { name = "gtimelog-${version}"; - version = "0.8.1"; + version = "0.9.1"; + + disabled = isPy26; src = fetchurl { url = "https://github.com/gtimelog/gtimelog/archive/${version}.tar.gz"; - sha256 = "0nwpfv284b26q97mfpagqkqb4n2ilw46cx777qsyi3plnywk1xa0"; + sha256 = "0qk8fv8cszzqpdi3wl9vvkym1jil502ycn6sic4jrxckw5s9jsfj"; }; - propagatedBuildInputs = [ pygtk ]; + preBuild = '' + export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive + export LC_ALL="en_US.UTF-8" + ''; + + # TODO: AppIndicator + propagatedBuildInputs = [ pkgs.gobjectIntrospection pygobject3 pkgs.makeWrapper pkgs.gtk3 ]; checkPhase = '' - patchShebangs ./runtests + substituteInPlace runtests --replace "/usr/bin/env python" "${python}/bin/${python.executable}" ./runtests ''; + preFixup = '' + wrapProgram $out/bin/gtimelog \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --prefix LD_LIBRARY_PATH ":" "${pkgs.gtk3}/lib" \ + + ''; + meta = with stdenv.lib; { description = "A small Gtk+ app for keeping track of your time. It's main goal is to be as unintrusive as possible"; homepage = http://mg.pov.lt/gtimelog/; @@ -2150,24 +2263,6 @@ rec { }; }; - # TODO: this shouldn't use a buildPythonPackage - koji = buildPythonPackage (rec { - name = "koji-1.8"; - meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; - - src = fetchurl { - url = "https://fedorahosted.org/released/koji/koji-1.8.0.tar.bz2"; - sha256 = "10dph209h4jgajb5jmbjhqy4z4hd22i7s2d93vm3ikdf01i8iwf1"; - }; - - configurePhase = ":"; - buildPhase = ":"; - installPhase = "make install DESTDIR=$out/ && cp -R $out/nix/store/*/* $out/ && rm -rf $out/nix"; - doCheck = false; - propagatedBuildInputs = [ pythonPackages.pycurl ]; - - }); - logilab_astng = buildPythonPackage rec { name = "logilab-astng-0.24.3"; @@ -2269,13 +2364,18 @@ rec { pyramid = buildPythonPackage rec { - name = "pyramid-1.5"; + name = "pyramid-1.5.1"; src = fetchurl { url = "http://pypi.python.org/packages/source/p/pyramid/${name}.tar.gz"; - md5 = "8747658dcbab709a9c491e43d3b0d58b"; + md5 = "8a1ab3b773d8e22437828f7df22852c1"; }; + preCheck = '' + # test is failing, see https://github.com/Pylons/pyramid/issues/1405 + rm pyramid/tests/test_response.py + ''; + buildInputs = [ docutils virtualenv @@ -2323,11 +2423,11 @@ rec { pyramid_chameleon = buildPythonPackage rec { - name = "pyramid_chameleon-0.1"; + name = "pyramid_chameleon-0.3"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/p/pyramid_chameleon/${name}.tar.gz"; - md5 = "39b1327a9890f382200bbfde943833d7"; + md5 = "5bb5938356dfd13fce06e095f132e137"; }; propagatedBuildInputs = [ @@ -2450,11 +2550,11 @@ rec { radicale = buildPythonPackage rec { name = "radicale-${version}"; namePrefix = ""; - version = "0.9b1"; + version = "0.9"; src = fetchurl { url = "http://pypi.python.org/packages/source/R/Radicale/Radicale-${version}.tar.gz"; - sha256 = "3a8451909de849f173f577ddec0a085f19040dbb6aa13d5256208a0f8e11d88d"; + sha256 = "77bf813fd26f0d359c1a7b7bcce9b842b4503c5516989a4a0a4f648e299e41f7"; }; propagatedBuildInputs = with pythonPackages; [ @@ -2467,6 +2567,7 @@ rec { meta = { homepage = "http://www.radicale.org/"; + description = "CalDAV CardDAV server"; longDescription = '' The Radicale Project is a complete CalDAV (calendar) and CardDAV (contact) server solution. Calendars and address books are available for @@ -2498,14 +2599,14 @@ rec { hypatia = buildPythonPackage rec { - name = "hypatia-0.1a6"; + name = "hypatia-0.3"; src = fetchurl { url = "http://pypi.python.org/packages/source/h/hypatia/${name}.tar.gz"; - md5 = "3a67683c578754cd8f23317db6d28ffd"; + md5 = "d74c6dda31ff459a39fa5da9e98f2425"; }; - buildInputs = [ zope_interface zodb3 ]; + buildInputs = [ zope_interface zodb ]; meta = { maintainers = [ stdenv.lib.maintainers.iElectric ]; @@ -2546,15 +2647,18 @@ rec { pyramid_zodbconn = buildPythonPackage rec { - name = "pyramid_zodbconn-0.4"; + name = "pyramid_zodbconn-0.7"; src = fetchurl { url = "http://pypi.python.org/packages/source/p/pyramid_zodbconn/${name}.tar.gz"; - md5 = "22e88cc82cafbbe00274e7378434e5fe"; + md5 = "3c7746a227fbcda3e138ab8bfab7700b"; }; + # should be fixed in next release + doCheck = false; + buildInputs = [ pyramid mock ]; - propagatedBuildInputs = [ zodb3 zodburi ]; + propagatedBuildInputs = [ zodb zodburi ]; meta = { maintainers = [ stdenv.lib.maintainers.iElectric ]; @@ -2617,30 +2721,56 @@ rec { zodburi = buildPythonPackage rec { - name = "zodburi-2.0b1"; + name = "zodburi-2.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zodburi/${name}.tar.gz"; - md5 = "52cc13c32ffe4ee7b5f5abc79f70f3c2"; + md5 = "7876893829c2f784506c80d49f861b67"; }; - buildInputs = [ zodb3 mock ]; + buildInputs = [ zodb mock ZEO ]; meta = { maintainers = [ stdenv.lib.maintainers.iElectric ]; }; }; + ZEO = pythonPackages.buildPythonPackage rec { + name = "ZEO-4.0.0"; + + propagatedBuildInputs = [ random2 zodb six transaction persistent zc_lockfile zconfig zdaemon zope_interface ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/Z/ZEO/${name}.tar.gz"; + md5 = "494d8320549185097ba4a6b6b76017d6"; + }; + + meta = with stdenv.lib; { + homepage = https://pypi.python.org/pypi/ZEO; + }; + }; + + random2 = pythonPackages.buildPythonPackage rec { + name = "random2-1.0.1"; + + doCheck = !isPyPy; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/r/random2/${name}.zip"; + md5 = "48a0a86fe00e447212d0095de8cf3e21"; + }; + }; + substanced = buildPythonPackage rec { # no release yet - rev = "bd8822be62f0f356e4e44d5c614fe14d3fa08f45"; + rev = "089818bc61c3dc5eca023254e37a280b041ea8cc"; name = "substanced-${rev}"; src = fetchgit { inherit rev; url = "https://github.com/Pylons/substanced.git"; - sha256 = "eded6468563328af37a07aeb88ef81ed78ccaff2ab687cac34ad2b36e19abcb4"; + sha256 = "17s7sdvydw9a9d2d36c70lq962ryny3dv9nzdxqpfvwiry9iy3jx"; }; buildInputs = [ mock ]; @@ -2648,11 +2778,10 @@ rec { propagatedBuildInputs = [ pyramid pytz - zodb3 + zodb venusian colander - deform - deform_bootstrap + deform2 python_magic pyyaml cryptacular @@ -2663,6 +2792,8 @@ rec { statsd pyramid_zodbconn pyramid_mailer + pyramid_chameleon + ZEO ]; meta = with stdenv.lib; { @@ -2730,7 +2861,16 @@ rec { }; }; + zope_tales = buildPythonPackage rec { + name = "zope.tales-4.0.2"; + propagatedBuildInputs = [ zope_interface six zope_testrunner ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/z/zope.tales/${name}.zip"; + md5 = "902b03a5f9774f6e2decf3f06d18a09d"; + }; + }; zope_deprecation = buildPythonPackage rec { @@ -2811,11 +2951,11 @@ rec { }; deluge = buildPythonPackage rec { - name = "deluge-1.3.6"; + name = "deluge-1.3.7"; src = fetchurl { - url = "http://download.deluge-torrent.org/source/${name}.tar.gz"; - md5 = "33557678bf2f320de670ddaefaea009d"; + url = "http://download.deluge-torrent.org/source/${name}.tar.bz2"; + sha256 = "07m5lgkqymlh0810bk2f5l0k83n51xb3gszj11sr509jgbnxjnmm"; }; propagatedBuildInputs = with pkgs; [ @@ -2876,11 +3016,11 @@ rec { django_1_6 = buildPythonPackage rec { name = "Django-${version}"; - version = "1.6.3"; + version = "1.6.6"; src = fetchurl { url = "http://www.djangoproject.com/m/releases/1.6/${name}.tar.gz"; - sha256 = "1wdqb2x0w0c10annbyz7rrrgrv9mpa9f8pz8006lf2csix33r7bd"; + sha256 = "143yp984n8a2bs1dflxjp1s7skmji0cwkw05s9ikbfikwmabsv2k"; }; # error: invalid command 'test' @@ -2894,11 +3034,11 @@ rec { django_1_5 = buildPythonPackage rec { name = "Django-${version}"; - version = "1.5.6"; + version = "1.5.9"; src = fetchurl { url = "http://www.djangoproject.com/m/releases/1.5/${name}.tar.gz"; - sha256 = "1bxzz71sfvh0zgdzv4x3wdr4ffzd5cfnvq7iq2g1i282sacwnzwv"; + sha256 = "1lm0pa6m9f4cd6pv239lqj32z1snf8xjbvlbh8bqihs6a1f51kj7"; }; # error: invalid command 'test' @@ -2912,11 +3052,11 @@ rec { django_1_4 = buildPythonPackage rec { name = "Django-${version}"; - version = "1.4.11"; + version = "1.4.14"; src = fetchurl { url = "http://www.djangoproject.com/m/releases/1.4/${name}.tar.gz"; - sha256 = "00f2jlls3fhddrg7q4sjkwj6dmclh28n0vqm1m7kzcq5fjrxh6a8"; + sha256 = "173ci9ml2vs1z2x51wahssfn8mrmhd02varmg9kibm8z460svvc1"; }; # error: invalid command 'test' @@ -2948,13 +3088,14 @@ rec { django_evolution = buildPythonPackage rec { name = "django_evolution-0.6.9"; + disabled = isPy3k; src = fetchurl { - url = "http://pypi.python.org/packages/source/d/django_evolution/${name}.tar.gz"; + url = "http://downloads.reviewboard.org/releases/django-evolution/${name}.tar.gz"; md5 = "c0d7d10bc41898c88b14d434c48766ff"; }; - propagatedBuildInputs = [ django_1_3 ]; + propagatedBuildInputs = [ django_1_5 ]; meta = { description = "A database schema evolution tool for the Django web framework"; @@ -3002,6 +3143,7 @@ rec { dulwich = buildPythonPackage rec { name = "dulwich-0.8.7"; + disabled = isPy3k || isPyPy; src = fetchurl { url = "http://samba.org/~jelmer/dulwich/${name}.tar.gz"; @@ -3128,12 +3270,15 @@ rec { enum = buildPythonPackage rec { name = "enum-0.4.4"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/e/enum/${name}.tar.gz"; md5 = "ce75c7c3c86741175a84456cc5bd531e"; }; + doCheck = !isPyPy; + buildInputs = [ ]; propagatedBuildInputs = [ ]; @@ -3172,16 +3317,16 @@ rec { eventlet = buildPythonPackage rec { - name = "eventlet-0.9.16"; + name = "eventlet-0.15.1"; src = fetchurl { url = "http://pypi.python.org/packages/source/e/eventlet/${name}.tar.gz"; - md5 = "4728e3bd7f72763c1e5dccac0296f8ea"; + md5 = "7155780824bb6344651a573838416f21"; }; buildInputs = [ nose httplib2 ]; - propagatedBuildInputs = [ greenlet ]; + propagatedBuildInputs = optionals (!isPyPy) [ greenlet ]; PYTHON_EGG_CACHE = "`pwd`/.egg-cache"; @@ -3253,6 +3398,7 @@ rec { flexget = buildPythonPackage rec { name = "FlexGet-1.2.161"; + disabled = isPy3k; src = fetchurl { url = "https://pypi.python.org/packages/source/F/FlexGet/${name}.tar.gz"; @@ -3301,16 +3447,20 @@ rec { }); jsonschema = buildPythonPackage (rec { - version = "2.0.0"; + version = "2.4.0"; name = "jsonschema-${version}"; src = fetchurl { url = "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-${version}.tar.gz"; - md5 = "1793d97a668760ef540fadd342aa08e5"; + md5 = "661f85c3d23094afbb9ac3c0673840bf"; }; buildInputs = [ nose mock ]; + patchPhase = '' + substituteInPlace jsonschema/tests/test_jsonschema_test_suite.py --replace "python" "${python}/bin/${python.executable}" + ''; + checkPhase = '' nosetests ''; @@ -3325,6 +3475,7 @@ rec { flup = buildPythonPackage (rec { name = "flup-1.0.2"; + disabled = isPy3k; src = fetchurl { url = "http://www.saddi.com/software/flup/dist/${name}.tar.gz"; @@ -3368,11 +3519,11 @@ rec { }); fs = buildPythonPackage rec { - name = "fs-0.4.0"; + name = "fs-0.5.0"; src = fetchurl { - url = "https://pyfilesystem.googlecode.com/files/fs-0.4.0.tar.gz"; - sha256 = "1fk7ilwd01qgj4anw9k1vjp0amxswzzxbp6bk4nncp7210cxp3vz"; + url = "https://pypi.python.org/packages/source/f/fs/${name}.tar.gz"; + sha256 = "144f4yn2nvnxh2vrnmiabpwx3s637np0d1j1w95zym790d66shir"; }; meta = with stdenv.lib; { @@ -3391,6 +3542,7 @@ rec { baseName = "fuse"; version = "0.2.1"; name = "${baseName}-${version}"; + disabled = isPy3k; src = fetchurl { url = "mirror://sourceforge/fuse/fuse-python-${version}.tar.gz"; @@ -3405,6 +3557,23 @@ rec { }; }); + futures = buildPythonPackage rec { + name = "futures-2.1.6"; + + propagatedBuildInputs = with pythonPackages; [ ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/f/futures/futures-2.1.6.tar.gz"; + md5 = "cfab9ac3cd55d6c7ddd0546a9f22f453"; + }; + + meta = with pkgs.stdenv.lib; { + description = "Backport of the concurrent.futures package from Python 3.2"; + homepage = http://code.google.com/p/pythonfutures; + license = licenses.bsd2; + }; + }; + gcovr = buildPythonPackage rec { name = "gcovr-2.4"; @@ -3447,15 +3616,16 @@ rec { }; gevent = buildPythonPackage rec { - name = "gevent-0.13.8"; + name = "gevent-1.0.1"; + disabled = isPy3k || isPyPy; # see https://github.com/surfly/gevent/issues/248 src = fetchurl { url = "https://pypi.python.org/packages/source/g/gevent/${name}.tar.gz"; - sha256 = "0plmxnb53qbxxf6macq84dvclsiyrpv3xrm32q4qqh6f01ix5f2l"; + sha256 = "0hyzfb0gcx9pm5c2igan8y57hqy2wixrwvdjwsaivxsqs0ay49s6"; }; - buildInputs = [ pkgs.libevent ]; - propagatedBuildInputs = [ greenlet ]; + buildInputs = [ pkgs.libev ]; + propagatedBuildInputs = optionals (!isPyPy) [ greenlet ]; meta = with stdenv.lib; { description = "Coroutine-based networking library"; @@ -3574,12 +3744,15 @@ rec { goobook = buildPythonPackage rec { name = "goobook-1.5"; + disabled = isPy3k; src = fetchurl { url = "https://pypi.python.org/packages/source/g/goobook/${name}.tar.gz"; sha256 = "05vpriy391l5i05ckl5ja5bswqyvl3rwrbmks9pi46w1813j7p5z"; }; + buildInputs = [ six ]; + preConfigure = '' sed -i '/distribute/d' setup.py ''; @@ -3615,6 +3788,7 @@ rec { google_apputils = buildPythonPackage rec { name = "google-apputils-0.4.0"; + disabled = isPy3k; src = fetchurl { url = http://pypi.python.org/packages/source/g/google-apputils/google-apputils-0.4.0.tar.gz; @@ -3630,11 +3804,11 @@ rec { }; greenlet = buildPythonPackage rec { - name = "greenlet-0.3.1"; + name = "greenlet-0.4.3"; src = fetchurl { - url = "http://pypi.python.org/packages/source/g/greenlet/${name}.tar.gz"; - md5 = "8d75d7f3f659e915e286e1b0fa0e1c4d"; + url = "http://pypi.python.org/packages/source/g/greenlet/${name}.zip"; + md5 = "a5e467a5876c415cd357c1ab9027e06c"; }; meta = { @@ -3682,13 +3856,20 @@ rec { }; hcs_utils = buildPythonPackage rec { - name = "hcs_utils-1.3"; + name = "hcs_utils-1.5"; src = fetchurl { - url = "https://pypi.python.org/packages/source/h/hcs_utils/hcs_utils-1.3.tar.gz"; - sha256 = "0mcjfc0ssil86i74dg323z7mikkw1xazqyr92347x1y33zyffgxh"; + url = "https://pypi.python.org/packages/source/h/hcs_utils/${name}.tar.gz"; + sha256 = "1d2za9crkgzildx610w3zif2i8phcqhh6n8nzg3yvy2mg0s18mkl"; }; + preBuild = '' + export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive + export LC_ALL="en_US.UTF-8" + ''; + + buildInputs = [ six ]; + meta = with stdenv.lib; { description = "Library collecting some useful snippets"; homepage = https://pypi.python.org/pypi/hcs_utils/1.3; @@ -3761,6 +3942,7 @@ rec { http_signature = buildPythonPackage (rec { name = "http_signature-0.1.4"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/h/http_signature/${name}.tar.gz"; @@ -3795,11 +3977,11 @@ rec { }; httplib2 = buildPythonPackage rec { - name = "httplib2-0.9"; + name = "httplib2-0.8"; src = fetchurl { url = "https://pypi.python.org/packages/source/h/httplib2/${name}.tar.gz"; - sha256 = "1asi5wpncnc6ki3bz33mhb9xh2lrkb24y4qng8bmqnczdmm8rsir"; + sha256 = "174w6rz4na1sdlfz37h95l0pkfm9igf9nqmhbd8aqh3sm7d9zrff"; }; meta = { @@ -3813,6 +3995,7 @@ rec { httpretty = buildPythonPackage rec { name = "httpretty-${version}"; version = "0.8.3"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/h/httpretty/${name}.tar.gz"; @@ -3852,14 +4035,16 @@ rec { }) else null; iptools = buildPythonPackage rec { - version = "0.4.0"; + version = "0.6.1"; name = "iptools-${version}"; src = fetchurl { url = "http://pypi.python.org/packages/source/i/iptools/iptools-${version}.tar.gz"; - md5 = "de60e5fab861f29dbf5f4446f8576532"; + md5 = "aed4045638fd40c16f8d9bb04606f700"; }; + buildInputs = [ nose ]; + meta = { description = "Utilities for manipulating IP addresses including a class that can be used to include CIDR network blocks in Django's INTERNAL_IPS setting."; homepage = http://pypi.python.org/pypi/iptools; @@ -3886,10 +4071,12 @@ rec { }; - ipaddr = buildPythonPackage { + ipaddr = buildPythonPackage rec { name = "ipaddr-2.1.10"; + disabled = isPy3k; + src = fetchurl { - url = "http://ipaddr-py.googlecode.com/files/ipaddr-2.1.10.tar.gz"; + url = "http://pypi.python.org/packages/source/i/ipaddr/${name}.tar.gz"; sha256 = "18ycwkfk3ypb1yd09wg20r7j7zq2a73d7j6j10qpgra7a7abzhyj"; }; @@ -3996,6 +4183,9 @@ rec { sha256 = "1flccphpyrb8y8dra2fq2s2v3fg615d77kjjmzl0gmiidabkkdqf"; }; + buildInputs = + [ fs gdata python_keyczar mock pyasn1 pycrypto pytest six ]; + meta = with stdenv.lib; { description = "Store and access your passwords safely"; homepage = "https://pypi.python.org/pypi/keyring"; @@ -4003,13 +4193,12 @@ rec { maintainers = with maintainers; [ lovek323 ]; platforms = platforms.unix; }; - - buildInputs = - [ fs gdata python_keyczar mock pyasn1 pycrypto pytest ]; }; kitchen = buildPythonPackage (rec { name = "kitchen-1.1.1"; + disabled = isPy3k; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; src = fetchurl { @@ -4148,11 +4337,11 @@ rec { python_magic = buildPythonPackage rec { - name = "python-magic-0.4.3"; + name = "python-magic-0.4.6"; src = fetchurl { url = "http://pypi.python.org/packages/source/p/python-magic/${name}.tar.gz"; - md5 = "eec9e2b1bcaf43308b7dacb3f2ecd8c1"; + md5 = "07e7a0fea78dd81ed609414c3484df58"; }; propagatedBuildInputs = [ pkgs.file ]; @@ -4161,6 +4350,8 @@ rec { substituteInPlace magic.py --replace "ctypes.CDLL(dll)" "ctypes.CDLL('${pkgs.file}/lib/libmagic.so')" ''; + doCheck = false; + # TODO: tests are failing #checkPhase = '' # ${python}/bin/${python.executable} ./test.py @@ -4249,11 +4440,11 @@ rec { manuel = buildPythonPackage rec { name = "manuel-${version}"; - version = "1.6.1"; + version = "1.8.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/m/manuel/${name}.tar.gz"; - sha256 = "1h35ys31zkjd9jssqn9lzwmw8s17ikr4jn2xp5zby1v771ibbbqr"; + sha256 = "1diyj6a8bvz2cdf9m0g2bbx9z2yjjnn3ylbg1zinpcjj6vldfx59"; }; propagatedBuildInputs = [ six zope_testing ]; @@ -4296,7 +4487,7 @@ rec { propagatedBuildInputs = [ dateutil nose numpy pyparsing tornado pkgs.freetype pkgs.libpng pkgs.pkgconfig - pygtk ]; + ]; meta = with stdenv.lib; { description = "python plotting library, making publication quality plots"; @@ -4328,6 +4519,7 @@ rec { mechanize = buildPythonPackage (rec { name = "mechanize-0.1.11"; + disabled = isPy3k; src = fetchurl { url = "http://wwwsearch.sourceforge.net/mechanize/src/${name}.tar.gz"; @@ -4363,13 +4555,15 @@ rec { }; }; - memcached = buildPythonPackage rec { - name = "memcached-1.48"; + name = "memcached-1.51"; - src = fetchurl { - url = "ftp://ftp.tummy.com/pub/python-memcached/old-releases/python-memcached-1.48.tar.gz"; - sha256 = "1i0h05z9j0zl65rgvw86p4f54pigkxynhzppn4qxby8rjlnwdfv6"; + src = if isPy3k then fetchurl { + url = "https://pypi.python.org/packages/source/p/python3-memcached/python3-${name}.tar.gz"; + sha256 = "0na8b369q8fivh3y0nvzbvhh3lgvxiyyv9xp93cnkvwfsr8mkgkw"; + } else fetchurl { + url = "http://ftp.tummy.com/pub/python-memcached/old-releases/python-${name}.tar.gz"; + sha256 = "124s98m6hvxj6x90d7aynsjfz878zli771q96ns767r2mbqn7192"; }; meta = { @@ -4415,6 +4609,35 @@ rec { }; }; + rainbowstream = buildPythonPackage rec { + name = "rainbowstream-${version}"; + version = "0.9.5"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/r/rainbowstream/${name}.tar.gz"; + sha256 = "0v79xiihgsfjipxkzzi92l8y1f8vxxachpv71gyzyhxdsl2zfj57"; + }; + + doCheck = false; + + preBuild = '' + export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive + export LC_ALL="en_US.UTF-8" + ''; + + buildInputs = [ + pkgs.libjpeg pkgs.freetype pkgs.zlib + pillow twitter pyfiglet requests arrow dateutil modules.readline + ]; + + meta = { + description = "Streaming command-line twitter client"; + homepage = "http://www.rainbowstream.org/"; + license = licenses.mit; + maintainers = [ maintainers.thoughtpolice ]; + }; + }; + mitmproxy = buildPythonPackage rec { baseName = "mitmproxy"; name = "${baseName}-${meta.version}"; @@ -4464,8 +4687,10 @@ rec { }; }); - moinmoin = let ver="1.9.7"; in buildPythonPackage (rec { + moinmoin = buildPythonPackage (rec { name = "moinmoin-${ver}"; + disabled = isPy3k; + ver = "1.9.7"; src = fetchurl { url = "http://static.moinmo.in/files/moin-${ver}.tar.gz"; @@ -4521,6 +4746,23 @@ rec { }; + mpd = buildPythonPackage rec { + name = "python-mpd-0.3.0"; + + disabled = isPy3k; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/p/python-mpd/python-mpd-0.3.0.tar.gz"; + md5 = "5b3849b131e2fb12f251434597d65635"; + }; + + meta = with pkgs.stdenv.lib; { + description = "An MPD (Music Player Daemon) client library written in pure Python."; + homepage = http://jatreuman.indefero.net/p/python-mpd/; + license = licenses.gpl3; + }; + }; + mrbob = buildPythonPackage rec { name = "mrbob-${version}"; version = "0.1.1"; @@ -4547,11 +4789,11 @@ rec { munkres = buildPythonPackage rec { - name = "munkres-1.0.5.4"; + name = "munkres-1.0.6"; src = fetchurl { url = "http://pypi.python.org/packages/source/m/munkres/${name}.tar.gz"; - md5 = "cb9d114fb523428bab4742e88bc83696"; + md5 = "d7ba3b8c5001578ae229a2d5a655872f"; }; # error: invalid command 'test' @@ -4574,6 +4816,11 @@ rec { md5 = "9e17a181af72d04a291c9a960bc73d44"; }; + preCheck = '' + export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive + export LC_ALL="en_US.UTF-8" + ''; + meta = { homepage = http://alastair/python-musicbrainz-ngs; description = "Python bindings for musicbrainz NGS webservice"; @@ -4590,7 +4837,7 @@ rec { url = "http://pypi.python.org/packages/source/m/mutagen/${name}.tar.gz"; sha256 = "12f70aaf5ggdzll76bhhkn64b27xy9s1acx417dbsaqnnbis8s76"; }; - + # one unicode test fails doCheck = false; @@ -4604,6 +4851,7 @@ rec { muttils = buildPythonPackage (rec { name = "muttils-1.3"; + disabled = isPy3k; src = fetchurl { url = http://www.blacktrash.org/hg/muttils/archive/8bb26094df06.tar.bz2; @@ -4624,6 +4872,8 @@ rec { MySQL_python = buildPythonPackage { name = "MySQL-python-1.2.3"; + disabled = isPy3k; + # plenty of failing tests doCheck = false; @@ -4664,6 +4914,7 @@ rec { namebench = buildPythonPackage (rec { name = "namebench-1.0.5"; + disabled = isPy3k; src = fetchurl { url = "http://namebench.googlecode.com/files/${name}.tgz"; @@ -4732,12 +4983,12 @@ rec { }; netifaces = buildPythonPackage rec { - version = "0.8"; + version = "0.10.4"; name = "netifaces-${version}"; src = fetchurl { - url = "http://alastairs-place.net/projects/netifaces/${name}.tar.gz"; - sha256 = "1v5i39kx4yz1pwgjfbzi63w55l2z318zgmi9f77ybmmkil1i39sk"; + url = "http://pypi.python.org/packages/source/n/netifaces/${name}.tar.gz"; + sha256 = "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln"; }; meta = { @@ -4749,6 +5000,7 @@ rec { netlib = buildPythonPackage rec { baseName = "netlib"; name = "${baseName}-${meta.version}"; + disabled = (!isPy27); src = fetchurl { url = "https://github.com/cortesi/netlib/archive/v${meta.version}.tar.gz"; @@ -4866,18 +5118,6 @@ rec { doCheck = false; }); - nose2Cov = if isPy26 then null else (buildPythonPackage rec { - name = "nose2-cov-1.0a4"; - src = fetchurl { - url = "http://pypi.python.org/packages/source/n/nose2-cov/nose2-cov-1.0a4.tar.gz"; - md5 = "6442f03e2ea732b0e38eb5b00fbe0b31"; - }; - meta = { - description = "nose2 plugin for coverage reporting, including subprocesses and multiprocessing"; - }; - propagatedBuildInputs = [ covCore nose2 ]; - }); - nosejs = buildPythonPackage { name = "nosejs-0.9.4"; src = fetchurl { @@ -4889,6 +5129,7 @@ rec { nose-cprof = buildPythonPackage rec { name = "nose-cprof-0.1-0"; + disabled = isPy3k; src = fetchurl { url = "https://pypi.python.org/packages/source/n/nose-cprof/${name}.tar.gz"; @@ -5070,6 +5311,7 @@ rec { oauth2 = buildPythonPackage (rec { name = "oauth2-1.5.211"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/o/oauth2/oauth2-1.5.211.tar.gz"; @@ -5205,6 +5447,7 @@ rec { osc = buildPythonPackage (rec { name = "osc-0.133+git"; + disabled = isPy3k; src = fetchgit { url = git://gitorious.org/opensuse/osc.git; @@ -5212,7 +5455,7 @@ rec { sha256 = "a39ce0e321e40e9758bf7b9128d316c71b35b80eabc84f13df492083bb6f1cc6"; }; - buildPhase = "python setup.py build"; + buildPhase = "${python}/bin/${python.executable} setup.py build"; doCheck = false; postInstall = "ln -s $out/bin/osc-wrapper.py $out/bin/osc"; @@ -5244,16 +5487,19 @@ rec { }; paramiko = buildPythonPackage rec { - name = "paramiko-1.12.1"; + name = "paramiko-1.14.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/p/paramiko/${name}.tar.gz"; - md5 = "ae4544dc0a1419b141342af89fcf0dd9"; + md5 = "e26324fd398af68ad506fe98853835c3"; }; propagatedBuildInputs = [ pycrypto ecdsa ]; - checkPhase = "python test.py"; + # tests failures since 1.14.0 release.. + doCheck = false; + + checkPhase = "${python}/bin/${python.executable} test.py"; meta = { homepage = "https://github.com/paramiko/paramiko/"; @@ -5273,6 +5519,7 @@ rec { paste = buildPythonPackage rec { name = "paste-1.7.5.1"; + disabled = isPy3k; src = fetchurl { url = http://pypi.python.org/packages/source/P/Paste/Paste-1.7.5.1.tar.gz; @@ -5291,12 +5538,12 @@ rec { paste_deploy = buildPythonPackage rec { - version = "1.5.0"; + version = "1.5.2"; name = "paste-deploy-${version}"; src = fetchurl { url = "http://pypi.python.org/packages/source/P/PasteDeploy/PasteDeploy-${version}.tar.gz"; - md5 = "f1a068a0b680493b6eaff3dd7690690f"; + md5 = "352b7205c78c8de4987578d19431af3b"; }; buildInputs = [ nose ]; @@ -5401,11 +5648,11 @@ rec { pg8000 = buildPythonPackage rec { - name = "pg8000-1.09"; + name = "pg8000-1.9.14"; src = fetchurl { - url = "http://pg8000.googlecode.com/files/${name}.zip"; - sha256 = "0kdc4rg47k1qkq22inghd50xlxjdkfcilym8mxff8wy4h091xykw"; + url = "http://pypi.python.org/packages/source/p/pg8000/${name}.tar.gz"; + sha256 = "1vandvfaf1m3a1fbc7nbm6syfqr9bazhzsnmai0jpjkbmb349izs"; }; propagatedBuildInputs = [ pytz ]; @@ -5432,6 +5679,7 @@ rec { pika = buildPythonPackage { name = "pika-0.9.12"; + disabled = isPy3k; src = fetchurl { url = https://pypi.python.org/packages/source/p/pika/pika-0.9.12.tar.gz; md5 = "7174fc7cc5570314fa3cfaa729106482"; @@ -5441,6 +5689,49 @@ rec { propagatedBuildInputs = [ unittest2 ]; }; + pil = buildPythonPackage rec { + name = "PIL-${version}"; + version = "1.1.7"; + + src = fetchurl { + url = "http://effbot.org/downloads/Imaging-${version}.tar.gz"; + sha256 = "04aj80jhfbmxqzvmq40zfi4z3cw6vi01m3wkk6diz3lc971cfnw9"; + }; + + buildInputs = [ python pkgs.libjpeg pkgs.zlib pkgs.freetype ]; + + disabled = isPy3k; + + doCheck = true; + + preConfigure = '' + sed -i "setup.py" \ + -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = libinclude("${pkgs.freetype}")|g ; + s|^JPEG_ROOT =.*$|JPEG_ROOT = libinclude("${pkgs.libjpeg}")|g ; + s|^ZLIB_ROOT =.*$|ZLIB_ROOT = libinclude("${pkgs.zlib}")|g ;' + ''; + + checkPhase = "${python}/bin/${python.executable} selftest.py"; + buildPhase = "${python}/bin/${python.executable} setup.py build_ext -i"; + + postInstall = '' + cd "$out"/lib/python*/site-packages + ln -s $PWD PIL + ''; + + meta = { + homepage = http://www.pythonware.com/products/pil/; + description = "The Python Imaging Library (PIL)"; + longDescription = '' + The Python Imaging Library (PIL) adds image processing + capabilities to your Python interpreter. This library + supports many file formats, and provides powerful image + processing and graphics capabilities. + ''; + license = "http://www.pythonware.com/products/pil/license.htm"; + }; + }; + pillow = buildPythonPackage rec { name = "Pillow-2.3.0"; @@ -5496,11 +5787,11 @@ rec { polib = buildPythonPackage rec { name = "polib-${version}"; - version = "1.0.1"; + version = "1.0.4"; src = fetchurl { url = "http://bitbucket.org/izi/polib/downloads/${name}.tar.gz"; - sha256 = "1sr2bb3g7rl7gr6156j5qv71kg06q1x01r1lbps9ksnyz37djn2q"; + sha256 = "16klwlswfbgmkzrra80fgzhic9447pk3mnr75r2fkz72bkvpcclb"; }; # error: invalid command 'test' @@ -5563,6 +5854,11 @@ rec { sha1 = "ad346a18d92c1d95f2295397c7a8a4f489e48851"; }; + preCheck = '' + export LANG="en_US.UTF-8" + export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive + ''; + meta = { description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format"; homepage = http://code.google.com/p/prettytable/; @@ -5573,9 +5869,10 @@ rec { protobuf = buildPythonPackage rec { inherit (pkgs.protobuf) name src; - propagatedBuildInputs = [ pkgs.protobuf setuptools ]; + propagatedBuildInputs = [ pkgs.protobuf google_apputils ]; sourceRoot = "${name}/python"; + meta = { description = "Protocol Buffers are Google's data interchange format."; homepage = http://code.google.com/p/protobuf/; @@ -5602,14 +5899,14 @@ rec { psycopg2 = buildPythonPackage rec { - name = "psycopg2-2.5.2"; + name = "psycopg2-2.5.3"; # error: invalid command 'test' doCheck = false; src = fetchurl { url = "https://pypi.python.org/packages/source/p/psycopg2/${name}.tar.gz"; - sha256 = "0bmxlmi9k995n6pz16awjaap0y02y1v2d31jbxhkqv510f3jsf2h"; + sha256 = "02h33barxigsczpympnwa0yvw9hgdv8d63bxm5x251ri26xz6b9s"; }; propagatedBuildInputs = [ pkgs.postgresql ]; @@ -5693,18 +5990,24 @@ rec { pygit2 = buildPythonPackage rec { - name = "pygit2-0.20.0"; + name = "pygit2-0.21.2"; src = fetchurl { url = "https://pypi.python.org/packages/source/p/pygit2/${name}.tar.gz"; - sha256 = "04132q7bn8k7q7ky7nj3bkza8r9xkzkdpfv462b6rgjsd1x6h340"; + sha256 = "0lya4v91d4y5fwrb55n8m8avgmz0l81jml2spvx6r7j1czcx3zic"; }; preConfigure = ( if stdenv.isDarwin then '' export DYLD_LIBRARY_PATH="${pkgs.libgit2}/lib" '' else "" ); - propagatedBuildInputs = [ pkgs.libgit2 ]; + propagatedBuildInputs = [ pkgs.libgit2 ] ++ optionals (!isPyPy) [ cffi ]; + + preCheck = '' + # disable tests that require networking + rm test/test_repository.py + rm test/test_credentials.py + ''; meta = { homepage = https://pypi.python.org/pypi/pygit2; @@ -5789,6 +6092,7 @@ rec { pycryptopp = buildPythonPackage (rec { name = "pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958"; + disabled = isPy3k || isPyPy; # see https://bitbucket.org/pypy/pypy/issue/1190/ src = fetchurl { url = "http://pypi.python.org/packages/source/p/pycryptopp/${name}.tar.gz"; @@ -5815,20 +6119,21 @@ rec { pycurl = buildPythonPackage (rec { - name = "pycurl-7.19.0"; + name = "pycurl-7.19.5"; src = fetchurl { url = "http://pycurl.sourceforge.net/download/${name}.tar.gz"; - sha256 = "0hh6icdbp7svcq0p57zf520ifzhn7jw64x07k99j7h57qpy2sy7b"; + sha256 = "0hqsap82zklhi5fxhc69kxrwzb0g9566f7sdpz7f9gyxkmyam839"; }; - buildInputs = [ pkgs.curl ]; + propagatedBuildInputs = [ pkgs.curl pkgs.openssl ]; # error: invalid command 'test' doCheck = false; preConfigure = '' substituteInPlace setup.py --replace '--static-libs' '--libs' + export PYCURL_SSL_LIBRARY=openssl ''; meta = { @@ -5841,6 +6146,7 @@ rec { pycurl2 = buildPythonPackage (rec { name = "pycurl2-7.20.0"; + disabled = isPy3k; src = fetchgit { url = "https://github.com/Lispython/pycurl.git"; @@ -5863,6 +6169,7 @@ rec { pydot = buildPythonPackage rec { name = "pydot-1.0.2"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/p/pydot/${name}.tar.gz"; @@ -5893,6 +6200,24 @@ rec { }; }; + pyfiglet = buildPythonPackage rec { + name = "pyfiglet-${version}"; + version = "0.7.1"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/p/pyfiglet/${name}.tar.gz"; + sha256 = "14lgwg47gnnad7sfkmmwhknwysbfmr74c9b2a6d9wgjmydycc6ka"; + }; + + doCheck = false; + + meta = { + description = "FIGlet in pure Python"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.thoughtpolice ]; + }; + }; + pyflakes = buildPythonPackage rec { name = "pyflakes-0.8.1"; @@ -5903,6 +6228,8 @@ rec { buildInputs = [ unittest2 ]; + doCheck = !isPyPy; + meta = { homepage = "https://launchpad.net/pyflakes"; description = "A simple program which checks Python source files for errors."; @@ -6121,6 +6448,7 @@ rec { pyro3 = buildPythonPackage (rec { name = "Pyro-3.16"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/P/Pyro/${name}.tar.gz"; @@ -6246,6 +6574,7 @@ rec { ldap = buildPythonPackage rec { name = "ldap-2.4.15"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/p/python-ldap/python-${name}.tar.gz"; @@ -6370,6 +6699,7 @@ rec { pyreport = buildPythonPackage (rec { name = "pyreport-0.3.4c"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/p/pyreport/${name}.tar.gz"; @@ -6421,6 +6751,7 @@ rec { pysqlite = buildPythonPackage (rec { name = "pysqlite-2.6.3"; + disabled = isPy3k; src = fetchurl { url = "https://pypi.python.org/packages/source/p/pysqlite/${name}.tar.gz"; @@ -6645,11 +6976,11 @@ rec { reportlab = let freetype = overrideDerivation pkgs.freetype (args: { configureFlags = "--enable-static --enable-shared"; }); in buildPythonPackage rec { - name = "reportlab-2.5"; + name = "reportlab-3.1.8"; src = fetchurl { url = "http://pypi.python.org/packages/source/r/reportlab/${name}.tar.gz"; - md5 = "cdf8b87a6cf1501de1b0a8d341a217d3"; + md5 = "820a9fda647078503597b85cdba7ed7f"; }; buildInputs = [freetype]; @@ -6711,6 +7042,21 @@ rec { }; + quantities = buildPythonPackage rec { + name = "quantities-0.10.1"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/q/quantities/quantities-0.10.1.tar.gz"; + md5 = "e924e21c0a5ddc9ebcdacbbe511b8ec7"; + }; + + meta = with pkgs.stdenv.lib; { + description = "Quantities is designed to handle arithmetic and"; + homepage = http://packages.python.org/quantities; + license = licenses.bsd2; + }; + }; + qutip = buildPythonPackage rec { name = "qutip-2.2.0"; @@ -6720,7 +7066,7 @@ rec { }; propagatedBuildInputs = [ numpy scipy matplotlib pkgs.pyqt4 - pkgs.cython ]; + cython ]; buildInputs = with pkgs; [ gcc qt4 blas ] ++ [ nose ]; @@ -6785,34 +7131,51 @@ rec { }; propagatedBuildInputs = - [ recaptcha_client pytz memcached dateutil_1_5 paramiko flup pygments - djblets django_1_3 django_evolution pycrypto modules.sqlite3 + [ django_1_3 recaptcha_client pytz memcached dateutil_1_5 paramiko flup pygments + djblets django_evolution pycrypto modules.sqlite3 pysvn pil psycopg2 ]; }; rdflib = buildPythonPackage (rec { - name = "rdflib-3.0.0"; + name = "rdflib-4.1.2"; src = fetchurl { - url = "http://www.rdflib.net/${name}.tar.gz"; - sha256 = "1c7ipk5vwqnln83rmai5jzyxkjdajdzbk5cgy1z83nyr5hbkgkqr"; + url = "https://pypi.python.org/packages/source/r/rdflib/${name}.tar.gz"; + sha256 = "0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w"; }; # error: invalid command 'test' doCheck = false; + propagatedBuildInputs = [ isodate ]; + meta = { description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information."; homepage = http://www.rdflib.net/; }; }); + isodate = buildPythonPackage rec { + name = "isodate-0.5.0"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/i/isodate/${name}.tar.gz"; + md5 = "9a267e9327feb3d021cae26002ba6e0e"; + }; + + meta = with stdenv.lib; { + description = "ISO 8601 date/time parser"; + homepage = http://cheeseshop.python.org/pypi/isodate; + }; + }; + robotframework = buildPythonPackage rec { version = "2.8.5"; name = "robotframework-${version}"; + disabled = isPy3k; src = fetchurl { url = "https://pypi.python.org/packages/source/r/robotframework/${name}.tar.gz"; @@ -6880,6 +7243,7 @@ rec { robotframework-ride = buildPythonPackage rec { version = "1.2.3"; name = "robotframework-ride-${version}"; + disabled = isPy3k; src = fetchurl { url = "https://robotframework-ride.googlecode.com/files/${name}.tar.gz"; @@ -6909,12 +7273,14 @@ rec { rope = buildPythonPackage rec { - version = "0.9.4"; + version = "0.10.2"; name = "rope-${version}"; + disabled = isPy3k; + src = fetchurl { url = "http://pypi.python.org/packages/source/r/rope/${name}.tar.gz"; - sha256 = "1fm6ahff50b10mlnc0ar4x1fv9sxmcp1g651myyqy7c50hk39h1d"; + sha256 = "0rdlvp8h74qs49wz1hx6qy8mgp2ddwlfs7z13h9139ynq04a3z7z"; }; meta = with stdenv.lib; { @@ -6994,7 +7360,7 @@ rec { # buildPhase = "python setup.py build"; # doCheck = false; - propagatedBuildInputs = [ pycurl koji GitPython pkgs.git + propagatedBuildInputs = [ pycurl pkgs.koji GitPython pkgs.git pkgs.rpm pkgs.pyopenssl ]; }); @@ -7222,11 +7588,11 @@ rec { }); sigal = buildPythonPackage rec { - name = "sigal-0.5.0"; + name = "sigal-0.7.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/s/sigal/${name}.tar.gz"; - md5 = "93c93725674c0702583a638f5a09c9e4"; + md5 = "d2386706ac8543378aebde1ea4edeba4"; }; propagatedBuildInputs = [ jinja2 markdown pillow pilkit clint argh pytest ]; @@ -7304,6 +7670,7 @@ rec { pydns = buildPythonPackage rec { name = "pydns-2.3.6"; + disabled = isPy3k; src = fetchurl { url = "https://pypi.python.org/packages/source/p/pydns/${name}.tar.gz"; @@ -7312,18 +7679,21 @@ rec { doCheck = false; - meta = with stdenv.lib; { - }; }; sympy = buildPythonPackage rec { - name = "sympy-0.7.3"; + name = "sympy-0.7.4"; src = fetchurl { url = "https://github.com/sympy/sympy/releases/download/${name}/${name}.tar.gz"; - sha256 = "081g9gs2d1d41ipn8zr034d98cnrxvc4zsmihqmfwzirwzpcii5x"; + sha256 = "0h1b9mx0snyyybj1x1ga69qssgjzkkgx2rw6nddjhyz1fknf8ywh"; }; + preCheck = '' + export LANG="en_US.UTF-8" + export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive + ''; + meta = with stdenv.lib; { description = "A Python library for symbolic mathematics"; homepage = http://www.sympy.org/; @@ -7428,6 +7798,28 @@ rec { }; }; + semantic = buildPythonPackage rec { + name = "semantic-1.0.3"; + + disabled = isPy3k; + + propagatedBuildInputs = [ quantities numpy ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/s/semantic/semantic-1.0.3.tar.gz"; + md5 = "78a150190e3e7d0f6f357b4c828e5f0d"; + }; + + # strange setuptools error (can not import semantic.test) + doCheck = false; + + meta = with pkgs.stdenv.lib; { + description = "Common Natural Language Processing Tasks for Python"; + homepage = https://github.com/crm416/semantic; + license = licenses.mit; + }; + }; + sexpdata = buildPythonPackage rec { name = "sexpdata-0.0.2"; src = fetchurl { @@ -7481,6 +7873,7 @@ rec { skype4py = buildPythonPackage (rec { name = "Skype4Py-1.0.32.0"; + disabled = isPy3k; src = fetchurl { url = mirror://sourceforge/skype4py/Skype4Py-1.0.32.0.tar.gz; @@ -7546,11 +7939,13 @@ rec { }; supervisor = buildPythonPackage rec { - name = "supervisor-3.0"; + name = "supervisor-3.1.1"; + + disabled = isPy3k; src = fetchurl { url = "https://pypi.python.org/packages/source/s/supervisor/${name}.tar.gz"; - md5 = "94ff3cf09618c36889425a8e002cd51a"; + md5 = "8c9714feaa63902f03871317e3ebf62e"; }; buildInputs = [ mock ]; @@ -7567,6 +7962,7 @@ rec { subprocess32 = buildPythonPackage rec { name = "subprocess32-3.2.6"; + disabled = isPy3k; src = fetchurl { url = "https://pypi.python.org/packages/source/s/subprocess32/${name}.tar.gz"; @@ -7642,6 +8038,7 @@ rec { sqlalchemy = pkgs.lib.overrideDerivation sqlalchemy9 (args: rec { name = "SQLAlchemy-0.7.10"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz"; sha256 = "0rhxgr85xdhjn467qfs0dkyj8x46zxcv6ad3dfx3w14xbkb3kakp"; @@ -7651,23 +8048,28 @@ rec { # waiting for 0.7.11 release ../development/python-modules/sqlalchemy-0.7.10-test-failures.patch ]; + preConfigure = optionalString isPy3k '' + python3 sa2to3.py --no-diffs -w lib test examples + ''; }); - sqlalchemy8 = pkgs.lib.overrideDerivation sqlalchemy9 (args: rec { - name = "SQLAlchemy-0.8.5"; + name = "SQLAlchemy-0.8.7"; src = fetchurl { url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz"; - md5 = "ecf0738eaf1229bae27ad2be0f9978a8"; + md5 = "4f3377306309e46739696721b1785335"; }; + preConfigure = optionalString isPy3k '' + python3 sa2to3.py --no-diffs -w lib test examples + ''; }); sqlalchemy9 = buildPythonPackage rec { - name = "SQLAlchemy-0.9.3"; + name = "SQLAlchemy-0.9.4"; src = fetchurl { url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz"; - md5 = "a27989b9d4b3f14ea0b1600aa45559c4"; + md5 = "c008ea5e2565ec1418ee8461393a99b1"; }; buildInputs = [ nose mock ]; @@ -7741,9 +8143,10 @@ rec { }; - statd = buildPythonPackage rec { + python_statsd = buildPythonPackage rec { name = "python-statsd-${version}"; version = "1.6.0"; + disabled = isPy3k; # next release will be py3k compatible src = fetchurl { url = "https://pypi.python.org/packages/source/p/python-statsd/${name}.tar.gz"; @@ -7762,6 +8165,7 @@ rec { stompclient = buildPythonPackage (rec { name = "stompclient-0.3.2"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/s/stompclient/${name}.tar.gz"; @@ -7803,6 +8207,11 @@ rec { name = "sure-${version}"; version = "1.2.7"; + preBuild = '' + export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive + export LC_ALL="en_US.UTF-8" + ''; + # Not picking up from PyPI because it doesn't contain tests. src = fetchgit { url = "git://github.com/gabrielfalcao/sure.git"; @@ -7810,6 +8219,8 @@ rec { sha256 = "02vffcdgr6vbj80lhl925w7zqy6cqnfvs088i0rbkjs5lxc511b3"; }; + + buildInputs = [ nose ]; propagatedBuildInputs = [ six mock ]; @@ -7860,6 +8271,7 @@ rec { tarsnapper = buildPythonPackage rec { name = "tarsnapper-0.2.1"; + disabled = isPy3k; src = fetchgit { url = https://github.com/miracle2k/tarsnapper.git; @@ -7879,6 +8291,7 @@ rec { taskcoach = buildPythonPackage rec { name = "TaskCoach-1.3.22"; + disabled = isPy3k; src = fetchurl { url = "mirror://sourceforge/taskcoach/${name}.tar.gz"; @@ -7906,14 +8319,16 @@ rec { }; tempita = buildPythonPackage rec { - version = "0.4"; + version = "0.5.2"; name = "tempita-${version}"; src = fetchurl { url = "http://pypi.python.org/packages/source/T/Tempita/Tempita-${version}.tar.gz"; - md5 = "0abe015a72e748d0c6284679a497426c"; + md5 = "4c2f17bb9d481821c41b6fbee904cea1"; }; + disabled = isPy3k; + buildInputs = [ nose ]; meta = { @@ -8005,11 +8420,11 @@ rec { tox = buildPythonPackage rec { name = "tox-1.7.2"; - + propagatedBuildInputs = [ py virtualenv ]; doCheck = false; - + src = fetchurl { url = "https://pypi.python.org/packages/source/t/tox/${name}.tar.gz"; md5 = "0d9b3acb1a9252659d753b0ae6b9b264"; @@ -8018,6 +8433,7 @@ rec { smmap = buildPythonPackage rec { name = "smmap-0.8.2"; + disabled = isPy3k; # next release will have py3k support meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; src = fetchurl { @@ -8028,6 +8444,7 @@ rec { trac = buildPythonPackage { name = "trac-1.0.1"; + disabled = isPy3k; src = fetchurl { url = http://ftp.edgewall.com/pub/trac/Trac-1.0.1.tar.gz; @@ -8051,11 +8468,11 @@ rec { transaction = buildPythonPackage rec { name = "transaction-${version}"; - version = "1.4.0"; + version = "1.4.3"; src = fetchurl { url = "http://pypi.python.org/packages/source/t/transaction/${name}.tar.gz"; - md5 = "b7c2ff135939f605a8c54e1c13cd5d66"; + md5 = "b4ca5983c9e3a0808ff5ff7648092c76"; }; propagatedBuildInputs = [ zope_interface ]; @@ -8131,6 +8548,7 @@ rec { tweepy = buildPythonPackage (rec { name = "tweepy-2.3.0"; + disabled = isPy3k; src = fetchurl { url = "http://pypi.python.org/packages/source/t/tweepy/${name}.tar.gz"; @@ -8146,9 +8564,28 @@ rec { }; }); + twitter = buildPythonPackage rec { + name = "twitter-${version}"; + version = "1.14.3"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/t/twitter/${name}.tar.gz"; + sha256 = "1nhhjajbq0jik43q2makpnz094qcziq9p8rj35jxamybd0hwwzs9"; + }; + + doCheck = false; + + meta = { + description = "Twitter API library"; + license = licenses.mit; + maintainers = [ maintainers.thoughtpolice ]; + }; + }; + twisted = buildPythonPackage rec { # NOTE: When updating please check if new versions still cause issues # to packages like carbon (http://stackoverflow.com/questions/19894708/cant-start-carbon-12-04-python-error-importerror-cannot-import-name-daem) + disabled = isPy3k; name = "Twisted-11.1.0"; src = fetchurl { @@ -8180,6 +8617,25 @@ rec { }; }; + tzlocal = buildPythonPackage rec { + name = "tzlocal-1.1.1"; + + propagatedBuildInputs = with pythonPackages; [ pytz ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/t/tzlocal/tzlocal-1.1.1.zip"; + md5 = "56c2a04501b98f2a1188d003fd6d3dba"; + }; + + # test fail (timezone test fail) + doCheck = false; + + meta = with pkgs.stdenv.lib; { + description = "Tzinfo object for the local timezone."; + homepage = https://github.com/regebro/tzlocal; + license = licenses.cddl; + }; + }; unittest2 = buildPythonPackage rec { version = "0.5.1"; @@ -8208,6 +8664,7 @@ rec { urlgrabber = buildPythonPackage rec { name = "urlgrabber-3.9.1"; + disabled = isPy3k; src = fetchurl { url = "http://urlgrabber.baseurl.org/download/${name}.tar.gz"; @@ -8250,6 +8707,7 @@ rec { pyuv = buildPythonPackage rec { name = "pyuv-0.11.5"; + disabled = isPyPy; # see https://github.com/saghul/pyuv/issues/49 src = fetchurl { url = "https://github.com/saghul/pyuv/archive/${name}.tar.gz"; @@ -8458,14 +8916,18 @@ rec { webtest = buildPythonPackage rec { - version = "2.0.11"; + version = "2.0.15"; name = "webtest-${version}"; src = fetchurl { url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.zip"; - md5 = "e51da21da8815cef07f543d8688effea"; + md5 = "49314bdba23f4d0bd807facb2a6d3f90"; }; + preConfigure = '' + substituteInPlace setup.py --replace "nose<1.3.0" "nose" + ''; + # XXX: skipping two tests fails in python2.6 doCheck = ! isPy26; @@ -8667,15 +9129,18 @@ rec { zdaemon = buildPythonPackage rec { name = "zdaemon-${version}"; - version = "3.0.5"; + version = "4.0.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zdaemon/${name}.tar.gz"; - md5 = "975f770544bb4352c5cf32fec22e63c9"; + md5 = "4056e2ea35855695ed15389d9c168b92"; }; propagatedBuildInputs = [ zconfig ]; + # too many deps.. + doCheck = false; + meta = { description = "A daemon process control library and tools for Unix-based systems"; homepage = http://pypi.python.org/pypi/zdaemon; @@ -8714,17 +9179,16 @@ rec { }; }); - zodb3 = buildPythonPackage rec { name = "zodb3-${version}"; - version = "3.10.5"; + version = "3.11.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/Z/ZODB3/ZODB3-${version}.tar.gz"; - md5 = "6f180c6897a1820948fee2a6290503cd"; + md5 = "21975c1609296e7834e8cf4025af3039"; }; - propagatedBuildInputs = [ manuel transaction zc_lockfile zconfig zdaemon zope_interface zope_event ]; + propagatedBuildInputs = [ manuel transaction zc_lockfile zconfig zdaemon zope_interface zope_event BTrees persistent ZEO ]; meta = { description = "An object-oriented database for Python"; @@ -8734,6 +9198,83 @@ rec { }; }; + zodb = buildPythonPackage rec { + name = "zodb-${version}"; + version = "4.0.1"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/Z/ZODB/ZODB-${version}.tar.gz"; + md5 = "092d787524b095164231742c96b32f50"; + }; + + propagatedBuildInputs = [ manuel transaction zc_lockfile zconfig zdaemon zope_interface persistent BTrees ] + ++ optionals isPy3k [ zodbpickle ]; + + preCheck = if isPy3k then '' + # test failure on py3.4 + rm src/ZODB/tests/testDB.py + '' else ""; + + meta = { + description = "An object-oriented database for Python"; + homepage = http://pypi.python.org/pypi/ZODB; + license = "ZPL"; + maintainers = [ stdenv.lib.maintainers.goibhniu ]; + }; + }; + + zodbpickle = pythonPackages.buildPythonPackage rec { + name = "zodbpickle-0.5.2"; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/z/zodbpickle/${name}.tar.gz"; + md5 = "d401bd89f99ec8d56c22493e6f8c0443"; + }; + + # fails.. + doCheck = false; + + meta = with stdenv.lib; { + homepage = http://pypi.python.org/pypi/zodbpickle; + }; + }; + + + BTrees = pythonPackages.buildPythonPackage rec { + name = "BTrees-4.0.8"; + + patches = [ ./../development/python-modules/btrees_interger_overflow.patch ]; + + propagatedBuildInputs = [ persistent zope_interface transaction ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/B/BTrees/${name}.tar.gz"; + md5 = "7f5df4cf8dd50fb0c584c0929a406c92"; + }; + + meta = with stdenv.lib; { + description = "scalable persistent components"; + homepage = http://packages.python.org/BTrees; + }; + }; + + + persistent = pythonPackages.buildPythonPackage rec { + name = "persistent-4.0.8"; + + propagatedBuildInputs = [ zope_interface ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/p/persistent/${name}.tar.gz"; + md5 = "2942f1ca7764b1bef8d48fa0d9a236b7"; + }; + + meta = with stdenv.lib; { + description = "automatic persistence for Python objects"; + homepage = http://www.zope.org/Products/ZODB; + }; + }; + zope_broken = buildPythonPackage rec { name = "zope.broken-3.6.0"; @@ -8752,11 +9293,11 @@ rec { zope_browser = buildPythonPackage rec { - name = "zope.browser-1.3"; + name = "zope.browser-2.0.2"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zope.browser/${name}.zip"; - md5 = "4ff0ddbf64c45bfcc3189e35f4214ded"; + sha256 = "0f9r5rn9lzgi4hvkhgb6vgw8kpz9sv16jsfb9ws4am8gbqcgv2iy"; }; propagatedBuildInputs = [ zope_interface ]; @@ -8766,13 +9307,31 @@ rec { }; }; + zope_browserresource = buildPythonPackage rec { + name = "zope.browserresource-4.0.1"; - zope_component = buildPythonPackage rec { - name = "zope.component-4.0.2"; + propagatedBuildInputs = [ + zope_component zope_configuration zope_contenttype zope_i18n + zope_interface zope_location zope_publisher zope_schema zope_traversing + ]; + + # all tests fail + doCheck = false; src = fetchurl { - url = "http://pypi.python.org/packages/source/z/zope.component/zope.component-4.0.2.tar.gz"; - md5 = "8c2fd4414ca23cbbe014dcaf911acebc"; + url = "https://pypi.python.org/packages/source/z/zope.browserresource/zope.browserresource-4.0.1.zip"; + md5 = "81bbe92c1f04725561470f89d73222c5"; + }; + }; + + + + zope_component = buildPythonPackage rec { + name = "zope.component-4.2.1"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/z/zope.component/zope.component-4.2.1.tar.gz"; + sha256 = "1gzbr0j6c2h0cqnpi2cjss38wrz1bcwx8xahl3vykgz5laid15l6"; }; propagatedBuildInputs = [ @@ -8790,11 +9349,11 @@ rec { zope_configuration = buildPythonPackage rec { - name = "zope.configuration-4.0.2"; + name = "zope.configuration-4.0.3"; src = fetchurl { - url = "http://pypi.python.org/packages/source/z/zope.configuration/zope.configuration-4.0.2.tar.gz"; - md5 = "40b3c7ad0b748ede532d8cfe2544e44e"; + url = "http://pypi.python.org/packages/source/z/zope.configuration/zope.configuration-4.0.3.tar.gz"; + sha256 = "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n"; }; propagatedBuildInputs = [ zope_i18nmessageid zope_schema ]; @@ -8806,13 +9365,16 @@ rec { zope_container = buildPythonPackage rec { - name = "zope.container-3.11.2"; + name = "zope.container-4.0.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zope.container/${name}.tar.gz"; - md5 = "fc66d85a17b8ffb701091c9328983dcc"; + md5 = "b24d2303ece65a2d9ce23a5bd074c335"; }; + # a test is failing + doCheck = false; + propagatedBuildInputs = [ zodb3 zope_broken zope_dottedname zope_publisher zope_filerepresentation zope_lifecycleevent zope_size @@ -8826,11 +9388,11 @@ rec { zope_contenttype = buildPythonPackage rec { - name = "zope.contenttype-3.5.5"; + name = "zope.contenttype-4.0.1"; src = fetchurl { - url = "http://pypi.python.org/packages/source/z/zope.contenttype/${name}.zip"; - md5 = "c6ac80e6887de4108a383f349fbdf332"; + url = "http://pypi.python.org/packages/source/z/zope.contenttype/${name}.tar.gz"; + md5 = "171be44753e86742da8c81b3ad008ce0"; }; meta = { @@ -8854,11 +9416,11 @@ rec { zope_event = buildPythonPackage rec { name = "zope.event-${version}"; - version = "4.0.2"; + version = "4.0.3"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zope.event/${name}.tar.gz"; - md5 = "e08dd299d428d77a1cfcbfe841b81872"; + sha256 = "1w858k9kmgzfj36h65kp27m9slrmykvi5cjq6c119xqnaz5gdzgm"; }; meta = { @@ -8907,11 +9469,11 @@ rec { zope_i18n = buildPythonPackage rec { - name = "zope.i18n-3.7.4"; + name = "zope.i18n-3.8.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zope.i18n/${name}.tar.gz"; - md5 = "a6fe9d9ad53dd7e94e87cd58fb67d3b7"; + sha256 = "045nnimmshibcq71yym2d8yrs6wzzhxq5gl7wxjnkpyjm5y0hfkm"; }; propagatedBuildInputs = [ pytz zope_component ]; @@ -8923,11 +9485,11 @@ rec { zope_i18nmessageid = buildPythonPackage rec { - name = "zope.i18nmessageid-4.0.2"; + name = "zope.i18nmessageid-4.0.3"; src = fetchurl { - url = "http://pypi.python.org/packages/source/z/zope.i18nmessageid/zope.i18nmessageid-4.0.2.tar.gz"; - md5 = "c4550f7a0b4a736186e6e0fa3b2471f7"; + url = "http://pypi.python.org/packages/source/z/zope.i18nmessageid/zope.i18nmessageid-4.0.3.tar.gz"; + sha256 = "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml"; }; meta = { @@ -8937,11 +9499,11 @@ rec { zope_lifecycleevent = buildPythonPackage rec { - name = "zope.lifecycleevent-3.6.2"; + name = "zope.lifecycleevent-3.7.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zope.lifecycleevent/${name}.tar.gz"; - md5 = "3ba978f3ba7c0805c81c2c79ea3edb33"; + sha256 = "0s5brphqzzz89cykg61gy7zcmz0ryq1jj2va7gh2n1b3cccllp95"; }; propagatedBuildInputs = [ zope_event zope_component ]; @@ -8953,11 +9515,11 @@ rec { zope_location = buildPythonPackage rec { - name = "zope.location-4.0.0"; + name = "zope.location-4.0.3"; src = fetchurl { - url = "http://pypi.python.org/packages/source/z/zope.location/zope.location-4.0.0.tar.gz"; - md5 = "cd0e10d5923c95e352bcde505cc11324"; + url = "http://pypi.python.org/packages/source/z/zope.location/zope.location-4.0.3.tar.gz"; + sha256 = "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74"; }; propagatedBuildInputs = [ zope_proxy ]; @@ -8976,11 +9538,11 @@ rec { zope_proxy = buildPythonPackage rec { - name = "zope.proxy-4.1.1"; + name = "zope.proxy-4.1.4"; src = fetchurl { - url = "http://pypi.python.org/packages/source/z/zope.proxy/zope.proxy-4.1.1.tar.gz"; - md5 = "c36691f0abee7573f4ddcc378603cefd"; + url = "http://pypi.python.org/packages/source/z/zope.proxy/${name}.tar.gz"; + md5 = "3bcaf8b8512a99649ecf2f158c11d05b"; }; propagatedBuildInputs = [ zope_interface ]; @@ -9010,11 +9572,11 @@ rec { zope_schema = buildPythonPackage rec { - name = "zope.schema-4.2.2"; + name = "zope.schema-4.4.1"; src = fetchurl { - url = "http://pypi.python.org/packages/source/z/zope.schema/zope.schema-4.2.2.tar.gz"; - md5 = "e7e581af8193551831560a736a53cf58"; + url = "http://pypi.python.org/packages/source/z/zope.schema/${name}.tar.gz"; + sha256 = "0wpwfggd736ai8bbrwbsnqf522sh5j57d1zxq8m8p6i5nwml0q02"; }; propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ] ++ optional isPy26 ordereddict; @@ -9026,30 +9588,30 @@ rec { zope_security = buildPythonPackage rec { - name = "zope.security-3.7.4"; + name = "zope.security-4.0.1"; src = fetchurl { - url = "http://pypi.python.org/packages/source/z/zope.security/zope.security-3.7.4.tar.gz"; - md5 = "072ab8d11adc083eace11262da08630c"; + url = "http://pypi.python.org/packages/source/z/zope.security/${name}.tar.gz"; + md5 = "27d1f2873a0ee9c1f485f7b8f22d8e1c"; }; propagatedBuildInputs = [ zope_component zope_configuration zope_i18nmessageid zope_schema - zope_proxy + zope_proxy zope_testrunner ]; meta = { - maintainers = [ stdenv.lib.maintainers.goibhniu ]; + maintainers = [ stdenv.lib.maintainers.goibhniu ]; }; }; zope_size = buildPythonPackage rec { - name = "zope.size-3.4.1"; + name = "zope.size-3.5.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zope.size/${name}.tar.gz"; - md5 = "55d9084dfd9dcbdb5ad2191ceb5ed03d"; + sha256 = "006xfkhvmypwd3ww9gbba4zly7n9w30bpp1h74d53la7l7fiqk2f"; }; propagatedBuildInputs = [ zope_i18nmessageid zope_interface ]; @@ -9068,8 +9630,8 @@ rec { md5 = "8b317b41244fc2e67f2f286890ba59a0"; }; - buildInputs = [ sqlalchemy zope_testing zope_interface setuptools ]; - propagatedBuildInputs = [ sqlalchemy transaction ]; + buildInputs = [ zope_testing zope_interface ]; + propagatedBuildInputs = [ sqlalchemy9 transaction ]; meta = { maintainers = [ @@ -9083,13 +9645,15 @@ rec { zope_testing = buildPythonPackage rec { name = "zope.testing-${version}"; - version = "4.1.2"; + version = "4.1.3"; src = fetchurl { - url = "http://pypi.python.org/packages/source/z/zope.testing/${name}.zip"; - md5 = "01c30c342c6a18002a762bd5d320a6e9"; + url = "http://pypi.python.org/packages/source/z/zope.testing/${name}.tar.gz"; + md5 = "6c73c5b668a67fdc116a25b884058ed9"; }; + doCheck = !(python.isPypy or false); + propagatedBuildInputs = [ zope_interface zope_exceptions zope_location ]; meta = { @@ -9103,11 +9667,11 @@ rec { zope_testrunner = buildPythonPackage rec { name = "zope.testrunner-${version}"; - version = "4.4.1"; + version = "4.4.3"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zope.testrunner/${name}.zip"; - md5 = "1d689abad000419891494b30dd7d8190"; + sha256 = "1dwk35kg0bmj2lzp4fd2bgp6dv64q5sda09bf0y8j63y53vqbsw8"; }; propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ] ++ optional (!python.is_py3k or false) subunit; @@ -9125,14 +9689,17 @@ rec { zope_traversing = buildPythonPackage rec { - name = "zope.traversing-3.13.2"; + name = "zope.traversing-4.0.0"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zope.traversing/${name}.zip"; - md5 = "eaad8fc7bbef126f9f8616b074ec00aa"; + md5 = "5cc40c552f953939f7c597ebbedd586f"; }; - propagatedBuildInputs = [ zope_location zope_security zope_publisher ]; + propagatedBuildInputs = [ zope_location zope_security zope_publisher transaction zope_tales ]; + + # circular dependency on zope_browserresource + doCheck = false; meta = { maintainers = [ stdenv.lib.maintainers.goibhniu ]; @@ -9141,11 +9708,11 @@ rec { zope_interface = buildPythonPackage rec { - name = "zope.interface-4.0.3"; + name = "zope.interface-4.1.1"; src = fetchurl { url = "http://pypi.python.org/packages/source/z/zope.interface/${name}.tar.gz"; - md5 = "1ddd308f2c83703accd1696158c300eb"; + md5 = "edcd5f719c5eb2e18894c4d06e29b6c6"; }; propagatedBuildInputs = [ zope_event ]; @@ -9180,6 +9747,7 @@ rec { cliapp = buildPythonPackage rec { name = "cliapp-${version}"; version = "1.20140719"; + disabled = isPy3k; src = fetchurl rec { url = "http://code.liw.fi/debian/pool/main/p/python-cliapp/python-cliapp_${version}.orig.tar.gz"; @@ -9235,6 +9803,8 @@ rec { version = "0.1.3"; name = "tarman-${version}"; + disabled = isPy3k; + src = fetchurl { url = "https://pypi.python.org/packages/source/t/tarman/tarman-${version}.zip"; sha256 = "0ri6gj883k042xaxa2d5ymmhbw2bfcxdzhh4bz7700ibxwxxj62h"; @@ -9251,6 +9821,7 @@ rec { libarchive = buildPythonPackage rec { version = "3.1.2-1"; name = "libarchive-${version}"; + disabled = isPy3k; src = fetchurl { url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz"; @@ -9335,6 +9906,7 @@ rec { ttystatus = buildPythonPackage rec { name = "ttystatus-${version}"; version = "0.23"; + disabled = isPy3k; src = fetchurl rec { url = "http://code.liw.fi/debian/pool/main/p/python-ttystatus/python-ttystatus_${version}.orig.tar.gz"; @@ -9520,6 +10092,7 @@ rec { versiontools = buildPythonPackage rec { name = "versiontools-1.9.1"; + doCheck = (!isPy3k); src = fetchurl { url = "https://pypi.python.org/packages/source/v/versiontools/${name}.tar.gz"; @@ -9668,15 +10241,19 @@ rec { IMAPClient = buildPythonPackage rec { name = "IMAPClient-${version}"; - version = "0.9.2"; + version = "0.11"; + disabled = isPy34; src = fetchurl { url = "http://freshfoo.com/projects/IMAPClient/${name}.tar.gz"; - sha256 = "10alpj7074djs048xjc4j7ggd1nrqdqpy0fzl7fj9hddp0rbchs9"; + sha256 = "1w54h8gz25qf6ggazzp6xf7kvsyiadsjfkkk17gm0p6pmzvvccbn"; }; + buildInputs = [ mock ]; + preConfigure = '' sed -i '/distribute_setup/d' setup.py + substituteInPlace setup.py --replace "mock==0.8.0" "mock" ''; meta = { diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix index c447587e36e..cfb14429a76 100644 --- a/pkgs/top-level/release-small.nix +++ b/pkgs/top-level/release-small.nix @@ -74,7 +74,6 @@ with import ./release-lib.nix { inherit supportedSystems; }; hello = all; host = linux; iana_etc = linux; - icecat3Xul = linux; icewm = linux; idutils = all; ifplugd = linux; diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index ff66756aa8b..07c3126e5ab 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -22,11 +22,14 @@ let jobs = { tarball = import ./make-tarball.nix { inherit nixpkgs officialRelease; }; + manual = import ../../doc; + unstable = pkgs.releaseTools.aggregate { name = "nixpkgs-${jobs.tarball.version}"; meta.description = "Release-critical builds for the Nixpkgs unstable channel"; constituents = [ jobs.tarball + jobs.manual jobs.stdenv.x86_64-linux jobs.stdenv.i686-linux jobs.stdenv.x86_64-darwin @@ -157,7 +160,6 @@ let htmlTidy = all; hugin = linux; iana_etc = linux; - icecat3Xul = linux; icewm = linux; idutils = all; ifplugd = linux; @@ -438,6 +440,14 @@ let xfwm4 = linux; }; + linuxPackages_testing = { }; + linuxPackages_grsec_stable_desktop = { }; + linuxPackages_grsec_stable_server = { }; + linuxPackages_grsec_stable_server_xen = { }; + linuxPackages_grsec_testing_desktop = { }; + linuxPackages_grsec_testing_server = { }; + linuxPackages_grsec_testing_server_xen = { }; + } )); in jobs