···1+---
2+title: Introduction
3+author: Frederik Rietdijk
4+date: 2015-11-25
5+---
6+7+# Introduction
8+9+The Nix Packages collection (Nixpkgs) is a set of over 30,000 packages for the
10+[Nix package manager](http://nixos.org/nix/), released under a [permissive MIT/X11 license](https://github.com/NixOS/nixpkgs/blob/master/COPYING).
11+Packages are available for several architectures, and can be used with the Nix package manager
12+on most GNU/Linux distributions as well as NixOS.
13+14+This manual describes how to write packages for the Nix Packages collection
15+(Nixpkgs). Thus it’s for packagers and developers who want to add packages to
16+Nixpkgs. If you like to learn more about the Nix package manager and the Nix
17+expression language, then you are kindly referred to the [Nix manual](http://nixos.org/nix/manual/).
18+19+## Overview of Nixpkgs
20+21+Nix expressions describe how to build packages from source and are collected in
22+the [nixpkgs repository](https://github.com/NixOS/nixpkgs). Also included in the
23+collection are Nix expressions for [NixOS modules](http://nixos.org/nixos/manual/index.html#sec-writing-modules). With
24+these expressions the Nix package manager can build binary packages.
25+26+Packages, including the Nix packages collection, are distributed through
27+[channels](http://nixos.org/nix/manual/#sec-channels). The collection is
28+distributed for users of Nix on non-NixOS distributions through the channel
29+`nixpkgs`. Users of NixOS generally use one of the `nixos-*` channels, e.g.
30+`nixos-15.09`, which includes all packages and modules for the stable NixOS
31+15.09. The channels of the stable NixOS releases are generally only given
32+security updates. More up to date packages and modules are available via the
33+`nixos-unstable` channel.
34+35+Both `nixos-unstable` and `nixpkgs` follow the `master` branch of the Nixpkgs
36+repository, although both do lag the `master` branch by generally [a couple of days](http://howoldis.herokuapp.com/). Updates to a channel are distributed as
37+soon as all tests for that channel pass, e.g. [this table](http://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents)
38+shows the status of tests for the `nixpkgs` channel.
39+40+The tests are conducted by a cluster called [Hydra](http://nixos.org/hydra/),
41+which also builds binary packages from the Nix expressions in Nixpkgs. As soon
42+as a channel is updated, the binaries are made available via a [binary cache](https://cache.nixos.org). Until the channel updates, binaries that have
43+already been built, are available via [Hydra's binary cache](https://hydra.nixos.org).
44+45+The current Nix expressions of the channels are available in the
46+[`nixpkgs-channels`](https://github.com/NixOS/nixpkgs-channels) repository,
47+which has branches corresponding to the available channels. There is also the
48+Nixpkgs Monitor which keeps track of updates and security vulnerabilities.
-21
doc/introduction.xml
···1-<chapter xmlns="http://docbook.org/ns/docbook"
2- xmlns:xlink="http://www.w3.org/1999/xlink"
3- xml:id="chap-introduction">
4-5-<title>Introduction</title>
6-7-<para>This manual tells you how to write packages for the Nix Packages
8-collection (Nixpkgs). Thus it’s for packagers and developers who want
9-to add packages to Nixpkgs. End users are kindly referred to the
10-<link xlink:href="http://hydra.nixos.org/job/nix/trunk/tarball/latest/download-by-type/doc/manual">Nix
11-manual</link>.</para>
12-13-<para>This manual does not describe the syntax and semantics of the
14-Nix expression language, which are given in the Nix manual in the
15-<link
16-xlink:href="http://hydra.nixos.org/job/nix/trunk/tarball/latest/download-by-type/doc/manual/#chap-writing-nix-expressions">chapter
17-on writing Nix expressions</link>. It only describes the facilities
18-provided by Nixpkgs to make writing packages easier, such as the
19-standard build environment (<literal>stdenv</literal>).</para>
20-21-</chapter>
···1+{ stdenv, fetchurl, automoc4, cmake, perl, pkgconfig
2+, gettext, kdelibs, libXtst, libfakekey, makeWrapper, qca2, qjson
3+}:
4+5+stdenv.mkDerivation rec {
6+ name = "kdeconnect-${version}";
7+ version = "0.7.3";
8+9+ src = fetchurl {
10+ url = "http://download.kde.org/unstable/kdeconnect/${version}/src/kdeconnect-kde-${version}.tar.xz";
11+ sha256 = "1vrr047bq5skxvibv5pb9ch9dxh005zmar017jzbyb9hilxr8kg4";
12+ };
13+14+ buildInputs = [ gettext kdelibs libXtst libfakekey makeWrapper qca2 qjson ];
15+16+ nativeBuildInputs = [ automoc4 cmake perl pkgconfig ];
17+18+ meta = with stdenv.lib; {
19+ description = "A tool to connect and sync your devices with KDE";
20+ longDescription = ''
21+ The corresponding Android app, "KDE Connect", is available in
22+ F-Droid and Google play and has the following features:
23+24+ - Share files and URLs to KDE from any app
25+ - Clipboard share: copy from or to your desktop
26+ - Notifications sync (4.3+): Read your Android notifications from KDE
27+ - Multimedia remote control: Use your phone as a remote control
28+ - WiFi connection: no usb wire or bluetooth needed
29+ - RSA Encryption: your information is safe
30+ '';
31+ license = licenses.gpl2;
32+ homepage = https://projects.kde.org/projects/playground/base/kdeconnect-kde;
33+ platforms = platforms.linux;
34+ maintainers = [ maintainers.goibhniu ];
35+ };
36+}
+43-23
pkgs/applications/misc/kdeconnect/default.nix
···1-{ stdenv, fetchurl, automoc4, cmake, perl, pkgconfig
2-, gettext, kdelibs, libXtst, libfakekey, makeWrapper, qca2, qjson
00000000000003}:
45stdenv.mkDerivation rec {
6 name = "kdeconnect-${version}";
7- version = "0.7.3";
89 src = fetchurl {
10- url = "http://download.kde.org/unstable/kdeconnect/${version}/src/kdeconnect-kde-${version}.tar.xz";
11- sha256 = "1vrr047bq5skxvibv5pb9ch9dxh005zmar017jzbyb9hilxr8kg4";
12 };
1314- buildInputs = [ gettext kdelibs libXtst libfakekey makeWrapper qca2 qjson ];
000000000001516- nativeBuildInputs = [ automoc4 cmake perl pkgconfig ];
0001718- meta = with stdenv.lib; {
19- description = "A tool to connect and sync your devices with KDE";
20- longDescription = ''
21- The corresponding Android app, "KDE Connect", is available in
22- F-Droid and Google play and has the following features:
2324- - Share files and URLs to KDE from any app
25- - Clipboard share: copy from or to your desktop
26- - Notifications sync (4.3+): Read your Android notifications from KDE
27- - Multimedia remote control: Use your phone as a remote control
28- - WiFi connection: no usb wire or bluetooth needed
29- - RSA Encryption: your information is safe
30- '';
31- license = licenses.gpl2;
32- homepage = https://projects.kde.org/projects/playground/base/kdeconnect-kde;
33- platforms = platforms.linux;
34- maintainers = [ maintainers.goibhniu ];
35 };
036}
···1+{ stdenv
2+, fetchurl
3+, pkgconfig
4+, ncurses
5+, mpi ? null
6+}:
7+8+stdenv.mkDerivation rec {
9+ name = "neuron-7.4";
10+ buildInputs = [ stdenv pkgconfig ncurses mpi ];
11+12+ src = fetchurl {
13+ url = "http://www.neuron.yale.edu/ftp/neuron/versions/v7.4/nrn-7.4.tar.gz";
14+ sha256 = "1rid8cmv5mca0vqkgwahm0prkwkbdvchgw2bdwvx4adkn8bbl0ql";
15+ };
16+17+18+ enableParallelBuilding = true;
19+20+ configureFlags = [ "--without-x"
21+ "${if mpi != null then "--with-mpi" else "--without-mpi"}" ];
22+23+ meta = with stdenv.lib; {
24+ description = "Simulation environment for empirically-based simulations of neurons and networks of neurons";
25+26+ longDescription = "NEURON is a simulation environment for developing and exercising models of
27+ neurons and networks of neurons. It is particularly well-suited to problems where
28+ cable properties of cells play an important role, possibly including extracellular
29+ potential close to the membrane), and where cell membrane properties are complex,
30+ involving many ion-specific channels, ion accumulation, and second messengers";
31+32+ license = licenses.bsd3;
33+ homepage = http://www.neuron.yale.edu/neuron;
34+ maintainers = [ maintainers.adev ];
35+ platforms = platforms.all;
36+ };
37+}
38+
···20 sha256 = "061bgjm6rv0l9804vmm4jvr023l52qvmy9qq4zjv4lgqhlljvhz3";
21 };
220023 # Zlib and OpenSSL must be propagated because `libcurl.la' contains
24 # "-lz -lssl", which aren't necessary direct build inputs of
25 # applications that use Curl.
···20 sha256 = "061bgjm6rv0l9804vmm4jvr023l52qvmy9qq4zjv4lgqhlljvhz3";
21 };
2223+ patches = [ ./disable-ca-install.patch ];
24+25 # Zlib and OpenSSL must be propagated because `libcurl.la' contains
26 # "-lz -lssl", which aren't necessary direct build inputs of
27 # applications that use Curl.
···1+--- a/lib/Makefile.in
2++++ b/lib/Makefile.in
3+@@ -106,10 +106,7 @@ else
4+ endif
5+6+ install-data-hook:
7+- @if test -n "@CURL_CA_BUNDLE@"; then \
8+- $(mkinstalldirs) `dirname $(DESTDIR)@CURL_CA_BUNDLE@`; \
9+- @INSTALL_DATA@ $(srcdir)/ca-bundle.crt $(DESTDIR)@CURL_CA_BUNDLE@; \
10+- fi
11++ echo "install-data-hook disabled"
12+13+ # this hook is mainly for non-unix systems to build even if configure
14+ # isn't run