···11+---
22+title: Introduction
33+author: Frederik Rietdijk
44+date: 2015-11-25
55+---
66+77+# Introduction
88+99+The Nix Packages collection (Nixpkgs) is a set of over 30,000 packages for the
1010+[Nix package manager](http://nixos.org/nix/), released under a [permissive MIT/X11 license](https://github.com/NixOS/nixpkgs/blob/master/COPYING).
1111+Packages are available for several architectures, and can be used with the Nix package manager
1212+on most GNU/Linux distributions as well as NixOS.
1313+1414+This manual describes how to write packages for the Nix Packages collection
1515+(Nixpkgs). Thus it’s for packagers and developers who want to add packages to
1616+Nixpkgs. If you like to learn more about the Nix package manager and the Nix
1717+expression language, then you are kindly referred to the [Nix manual](http://nixos.org/nix/manual/).
1818+1919+## Overview of Nixpkgs
2020+2121+Nix expressions describe how to build packages from source and are collected in
2222+the [nixpkgs repository](https://github.com/NixOS/nixpkgs). Also included in the
2323+collection are Nix expressions for [NixOS modules](http://nixos.org/nixos/manual/index.html#sec-writing-modules). With
2424+these expressions the Nix package manager can build binary packages.
2525+2626+Packages, including the Nix packages collection, are distributed through
2727+[channels](http://nixos.org/nix/manual/#sec-channels). The collection is
2828+distributed for users of Nix on non-NixOS distributions through the channel
2929+`nixpkgs`. Users of NixOS generally use one of the `nixos-*` channels, e.g.
3030+`nixos-15.09`, which includes all packages and modules for the stable NixOS
3131+15.09. The channels of the stable NixOS releases are generally only given
3232+security updates. More up to date packages and modules are available via the
3333+`nixos-unstable` channel.
3434+3535+Both `nixos-unstable` and `nixpkgs` follow the `master` branch of the Nixpkgs
3636+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
3737+soon as all tests for that channel pass, e.g. [this table](http://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents)
3838+shows the status of tests for the `nixpkgs` channel.
3939+4040+The tests are conducted by a cluster called [Hydra](http://nixos.org/hydra/),
4141+which also builds binary packages from the Nix expressions in Nixpkgs. As soon
4242+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
4343+already been built, are available via [Hydra's binary cache](https://hydra.nixos.org).
4444+4545+The current Nix expressions of the channels are available in the
4646+[`nixpkgs-channels`](https://github.com/NixOS/nixpkgs-channels) repository,
4747+which has branches corresponding to the available channels. There is also the
4848+Nixpkgs Monitor which keeps track of updates and security vulnerabilities.
-21
doc/introduction.xml
···11-<chapter xmlns="http://docbook.org/ns/docbook"
22- xmlns:xlink="http://www.w3.org/1999/xlink"
33- xml:id="chap-introduction">
44-55-<title>Introduction</title>
66-77-<para>This manual tells you how to write packages for the Nix Packages
88-collection (Nixpkgs). Thus it’s for packagers and developers who want
99-to add packages to Nixpkgs. End users are kindly referred to the
1010-<link xlink:href="http://hydra.nixos.org/job/nix/trunk/tarball/latest/download-by-type/doc/manual">Nix
1111-manual</link>.</para>
1212-1313-<para>This manual does not describe the syntax and semantics of the
1414-Nix expression language, which are given in the Nix manual in the
1515-<link
1616-xlink:href="http://hydra.nixos.org/job/nix/trunk/tarball/latest/download-by-type/doc/manual/#chap-writing-nix-expressions">chapter
1717-on writing Nix expressions</link>. It only describes the facilities
1818-provided by Nixpkgs to make writing packages easier, such as the
1919-standard build environment (<literal>stdenv</literal>).</para>
2020-2121-</chapter>
···11+{ stdenv, fetchurl, automoc4, cmake, perl, pkgconfig
22+, gettext, kdelibs, libXtst, libfakekey, makeWrapper, qca2, qjson
33+}:
44+55+stdenv.mkDerivation rec {
66+ name = "kdeconnect-${version}";
77+ version = "0.7.3";
88+99+ src = fetchurl {
1010+ url = "http://download.kde.org/unstable/kdeconnect/${version}/src/kdeconnect-kde-${version}.tar.xz";
1111+ sha256 = "1vrr047bq5skxvibv5pb9ch9dxh005zmar017jzbyb9hilxr8kg4";
1212+ };
1313+1414+ buildInputs = [ gettext kdelibs libXtst libfakekey makeWrapper qca2 qjson ];
1515+1616+ nativeBuildInputs = [ automoc4 cmake perl pkgconfig ];
1717+1818+ meta = with stdenv.lib; {
1919+ description = "A tool to connect and sync your devices with KDE";
2020+ longDescription = ''
2121+ The corresponding Android app, "KDE Connect", is available in
2222+ F-Droid and Google play and has the following features:
2323+2424+ - Share files and URLs to KDE from any app
2525+ - Clipboard share: copy from or to your desktop
2626+ - Notifications sync (4.3+): Read your Android notifications from KDE
2727+ - Multimedia remote control: Use your phone as a remote control
2828+ - WiFi connection: no usb wire or bluetooth needed
2929+ - RSA Encryption: your information is safe
3030+ '';
3131+ license = licenses.gpl2;
3232+ homepage = https://projects.kde.org/projects/playground/base/kdeconnect-kde;
3333+ platforms = platforms.linux;
3434+ maintainers = [ maintainers.goibhniu ];
3535+ };
3636+}
+43-23
pkgs/applications/misc/kdeconnect/default.nix
···11-{ stdenv, fetchurl, automoc4, cmake, perl, pkgconfig
22-, gettext, kdelibs, libXtst, libfakekey, makeWrapper, qca2, qjson
11+{ stdenv
22+, lib
33+, fetchurl
44+, extra-cmake-modules
55+, makeQtWrapper
66+, qtquick1
77+, kcmutils
88+, kconfigwidgets
99+, kdbusaddons
1010+, kiconthemes
1111+, ki18n
1212+, knotifications
1313+, qca-qt5
1414+, libfakekey
1515+, libXtst
316}:
417518stdenv.mkDerivation rec {
619 name = "kdeconnect-${version}";
77- version = "0.7.3";
2020+ version = "0.9g";
821922 src = fetchurl {
1010- url = "http://download.kde.org/unstable/kdeconnect/${version}/src/kdeconnect-kde-${version}.tar.xz";
1111- sha256 = "1vrr047bq5skxvibv5pb9ch9dxh005zmar017jzbyb9hilxr8kg4";
2323+ url = http://download.kde.org/unstable/kdeconnect/0.9/src/kdeconnect-kde-0.9g.tar.xz;
2424+ sha256 = "4033754057bbc993b1d4350959afbe1d17a4f1e56dd60c6df6abca5a321ee1b8";
1225 };
13261414- buildInputs = [ gettext kdelibs libXtst libfakekey makeWrapper qca2 qjson ];
2727+ buildInputs = [
2828+ kcmutils
2929+ kconfigwidgets
3030+ kdbusaddons
3131+ qca-qt5
3232+ qtquick1
3333+ ki18n
3434+ kiconthemes
3535+ knotifications
3636+ libfakekey
3737+ libXtst
3838+ ];
15391616- nativeBuildInputs = [ automoc4 cmake perl pkgconfig ];
4040+ nativeBuildInputs = [
4141+ extra-cmake-modules
4242+ makeQtWrapper
4343+ ];
17441818- meta = with stdenv.lib; {
1919- description = "A tool to connect and sync your devices with KDE";
2020- longDescription = ''
2121- The corresponding Android app, "KDE Connect", is available in
2222- F-Droid and Google play and has the following features:
4545+ postInstall = ''
4646+ wrapQtProgram "$out/bin/kdeconnect-cli"
4747+ '';
23482424- - Share files and URLs to KDE from any app
2525- - Clipboard share: copy from or to your desktop
2626- - Notifications sync (4.3+): Read your Android notifications from KDE
2727- - Multimedia remote control: Use your phone as a remote control
2828- - WiFi connection: no usb wire or bluetooth needed
2929- - RSA Encryption: your information is safe
3030- '';
3131- license = licenses.gpl2;
3232- homepage = https://projects.kde.org/projects/playground/base/kdeconnect-kde;
3333- platforms = platforms.linux;
3434- maintainers = [ maintainers.goibhniu ];
4949+ meta = {
5050+ description = "KDE Connect provides several features to integrate your phone and your computer";
5151+ license = with lib.licenses; [ gpl2 ];
5252+ maintainers = with lib.maintainers; [ fridh ];
5353+ homepage = https://community.kde.org/KDEConnect;
3554 };
5555+3656}
···11+{ stdenv
22+, fetchurl
33+, pkgconfig
44+, ncurses
55+, mpi ? null
66+}:
77+88+stdenv.mkDerivation rec {
99+ name = "neuron-7.4";
1010+ buildInputs = [ stdenv pkgconfig ncurses mpi ];
1111+1212+ src = fetchurl {
1313+ url = "http://www.neuron.yale.edu/ftp/neuron/versions/v7.4/nrn-7.4.tar.gz";
1414+ sha256 = "1rid8cmv5mca0vqkgwahm0prkwkbdvchgw2bdwvx4adkn8bbl0ql";
1515+ };
1616+1717+1818+ enableParallelBuilding = true;
1919+2020+ configureFlags = [ "--without-x"
2121+ "${if mpi != null then "--with-mpi" else "--without-mpi"}" ];
2222+2323+ meta = with stdenv.lib; {
2424+ description = "Simulation environment for empirically-based simulations of neurons and networks of neurons";
2525+2626+ longDescription = "NEURON is a simulation environment for developing and exercising models of
2727+ neurons and networks of neurons. It is particularly well-suited to problems where
2828+ cable properties of cells play an important role, possibly including extracellular
2929+ potential close to the membrane), and where cell membrane properties are complex,
3030+ involving many ion-specific channels, ion accumulation, and second messengers";
3131+3232+ license = licenses.bsd3;
3333+ homepage = http://www.neuron.yale.edu/neuron;
3434+ maintainers = [ maintainers.adev ];
3535+ platforms = platforms.all;
3636+ };
3737+}
3838+
···2020 sha256 = "061bgjm6rv0l9804vmm4jvr023l52qvmy9qq4zjv4lgqhlljvhz3";
2121 };
22222323+ patches = [ ./disable-ca-install.patch ];
2424+2325 # Zlib and OpenSSL must be propagated because `libcurl.la' contains
2426 # "-lz -lssl", which aren't necessary direct build inputs of
2527 # applications that use Curl.
···11+--- a/lib/Makefile.in
22++++ b/lib/Makefile.in
33+@@ -106,10 +106,7 @@ else
44+ endif
55+66+ install-data-hook:
77+- @if test -n "@CURL_CA_BUNDLE@"; then \
88+- $(mkinstalldirs) `dirname $(DESTDIR)@CURL_CA_BUNDLE@`; \
99+- @INSTALL_DATA@ $(srcdir)/ca-bundle.crt $(DESTDIR)@CURL_CA_BUNDLE@; \
1010+- fi
1111++ echo "install-data-hook disabled"
1212+1313+ # this hook is mainly for non-unix systems to build even if configure
1414+ # isn't run