Merge staging into staging-next

This commit is contained in:
Frederik Rietdijk 2018-09-02 12:12:00 +02:00
commit 68a6c04783
225 changed files with 18608 additions and 9161 deletions

View file

@ -30,7 +30,7 @@
<section xml:id="sec-cross-packaging"> <section xml:id="sec-cross-packaging">
<title>Packaging in a cross-friendly manner</title> <title>Packaging in a cross-friendly manner</title>
<section> <section xml:id="sec-cross-platform-parameters">
<title>Platform parameters</title> <title>Platform parameters</title>
<para> <para>
@ -219,7 +219,7 @@
</variablelist> </variablelist>
</section> </section>
<section> <section xml:id="sec-cross-specifying-dependencies">
<title>Specifying Dependencies</title> <title>Specifying Dependencies</title>
<para> <para>
@ -304,7 +304,7 @@
</note> </note>
</section> </section>
<section> <section xml:id="sec-cross-cookbook">
<title>Cross packaging cookbook</title> <title>Cross packaging cookbook</title>
<para> <para>
@ -317,7 +317,7 @@
</para> </para>
<qandaset> <qandaset>
<qandaentry> <qandaentry xml:id="cross-qa-build-c-program-in-build-environment">
<question> <question>
<para> <para>
What if my package's build system needs to build a C program to be run What if my package's build system needs to build a C program to be run
@ -331,7 +331,7 @@
</para> </para>
</answer> </answer>
</qandaentry> </qandaentry>
<qandaentry> <qandaentry xml:id="cross-qa-fails-to-find-ar">
<question> <question>
<para> <para>
My package fails to find <command>ar</command>. My package fails to find <command>ar</command>.
@ -347,7 +347,7 @@
</para> </para>
</answer> </answer>
</qandaentry> </qandaentry>
<qandaentry> <qandaentry xml:id="cross-testsuite-runs-host-code">
<question> <question>
<para> <para>
My package's testsuite needs to run host platform code. My package's testsuite needs to run host platform code.

View file

@ -8,7 +8,7 @@
under attribute <varname>texlive</varname>. under attribute <varname>texlive</varname>.
</para> </para>
<section> <section xml:id="sec-language-texlive-users-guide">
<title>User's guide</title> <title>User's guide</title>
<itemizedlist> <itemizedlist>
@ -68,7 +68,7 @@ nix-repl> texlive.collection-&lt;TAB>
</itemizedlist> </itemizedlist>
</section> </section>
<section> <section xml:id="sec-language-texlive-known-problems">
<title>Known problems</title> <title>Known problems</title>
<itemizedlist> <itemizedlist>

View file

@ -6,7 +6,7 @@
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-multiple-output"> xml:id="chap-multiple-output">
<title>Multiple-output packages</title> <title>Multiple-output packages</title>
<section> <section xml:id="sec-multiple-outputs-introduction">
<title>Introduction</title> <title>Introduction</title>
<para> <para>
@ -38,7 +38,7 @@
</para> </para>
</note> </note>
</section> </section>
<section> <section xml:id="sec-multiple-outputs-installing">
<title>Installing a split package</title> <title>Installing a split package</title>
<para> <para>
@ -84,7 +84,7 @@
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section> <section xml:id="sec-multiple-outputs-using-split-packages">
<title>Using a split package</title> <title>Using a split package</title>
<para> <para>
@ -102,7 +102,7 @@
also added. (See <xref linkend="multiple-output-file-type-groups" />.) also added. (See <xref linkend="multiple-output-file-type-groups" />.)
</para> </para>
</section> </section>
<section> <section xml:id="sec-multiple-outputs-">
<title>Writing a split derivation</title> <title>Writing a split derivation</title>
<para> <para>
@ -283,7 +283,7 @@
</variablelist> </variablelist>
</section> </section>
<section> <section xml:id="sec-multiple-outputs-caveats">
<title>Common caveats</title> <title>Common caveats</title>
<itemizedlist> <itemizedlist>

View file

@ -181,7 +181,7 @@ $ cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \
</section> </section>
<!--============================================================--> <!--============================================================-->
<!-- <!--
<section> <section xml:id="sec-package-notes-gnome">
<title>Gnome</title> <title>Gnome</title>
<para>* Expression is auto-generated</para> <para>* Expression is auto-generated</para>
<para>* How to update</para> <para>* How to update</para>
@ -189,7 +189,7 @@ $ cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \
--> -->
<!--============================================================--> <!--============================================================-->
<!-- <!--
<section> <section xml:id="sec-package-notes-gcc">
<title>GCC</title> <title>GCC</title>
<para></para> <para></para>
</section> </section>

View file

@ -2,7 +2,7 @@
<article xmlns="http://docbook.org/ns/docbook" <article xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"> xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Nixpkgs Release Notes</title> <title>Nixpkgs Release Notes</title>
<section> <section xml:id="release-notes-0.14">
<title>Release 0.14 (June 4, 2012)</title> <title>Release 0.14 (June 4, 2012)</title>
<para> <para>
@ -17,7 +17,7 @@
packages by numerous contributors. For details, see the commit logs. packages by numerous contributors. For details, see the commit logs.
</para> </para>
</section> </section>
<section> <section xml:id="release-notes-0.13">
<title>Release 0.13 (February 5, 2010)</title> <title>Release 0.13 (February 5, 2010)</title>
<para> <para>
@ -51,7 +51,7 @@
</itemizedlist> </itemizedlist>
</para> </para>
</section> </section>
<section> <section xml:id="release-notes-0.12">
<title>Release 0.12 (April 24, 2009)</title> <title>Release 0.12 (April 24, 2009)</title>
<para> <para>
@ -145,7 +145,7 @@
<literal>nix-dev</literal> mailing list. <literal>nix-dev</literal> mailing list.
</para> </para>
</section> </section>
<section> <section xml:id="release-notes-0.11">
<title>Release 0.11 (September 11, 2007)</title> <title>Release 0.11 (September 11, 2007)</title>
<para> <para>
@ -344,7 +344,7 @@ export NIX_MIRRORS_sourceforge=http://osdn.dl.sourceforge.net/sourceforge/</prog
Bravenboer, Michael Raskin, Wouter den Breejen and Yury G. Kudryashov. Bravenboer, Michael Raskin, Wouter den Breejen and Yury G. Kudryashov.
</para> </para>
</section> </section>
<section> <section xml:id="release-notes-0.10">
<title>Release 0.10 (October 12, 2006)</title> <title>Release 0.10 (October 12, 2006)</title>
<note> <note>
@ -547,7 +547,7 @@ stdenv.mkDerivation {
Bravenboer, Merijn de Jonge, Rob Vermaas and Roy van den Broek. Bravenboer, Merijn de Jonge, Rob Vermaas and Roy van den Broek.
</para> </para>
</section> </section>
<section> <section xml:id="release-notes-0.9">
<title>Release 0.9 (January 31, 2006)</title> <title>Release 0.9 (January 31, 2006)</title>
<para> <para>
@ -676,7 +676,7 @@ stdenv.mkDerivation {
Martin Bravenboer, Rob Vermaas and Roy van den Broek. Martin Bravenboer, Rob Vermaas and Roy van den Broek.
</para> </para>
</section> </section>
<section> <section xml:id="release-notes-0.8">
<title>Release 0.8 (April 11, 2005)</title> <title>Release 0.8 (April 11, 2005)</title>
<para> <para>
@ -700,7 +700,7 @@ stdenv.mkDerivation {
</itemizedlist> </itemizedlist>
</para> </para>
</section> </section>
<section> <section xml:id="release-notes-0.7">
<title>Release 0.7 (March 14, 2005)</title> <title>Release 0.7 (March 14, 2005)</title>
<itemizedlist> <itemizedlist>

View file

@ -56,7 +56,7 @@
meant as examples. Their usage is optional and the reviewer is free to adapt meant as examples. Their usage is optional and the reviewer is free to adapt
them to their liking. them to their liking.
</para> </para>
<section> <section xml:id="reviewing-contributions-package-updates">
<title>Package updates</title> <title>Package updates</title>
<para> <para>
@ -208,7 +208,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<example> <example xml:id="reviewing-contributions-sample-package-update">
<title>Sample template for a package update review</title> <title>Sample template for a package update review</title>
<screen> <screen>
##### Reviewed points ##### Reviewed points
@ -226,7 +226,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
</screen> </screen>
</example> </example>
</section> </section>
<section> <section xml:id="reviewing-contributions-new-packages">
<title>New packages</title> <title>New packages</title>
<para> <para>
@ -320,7 +320,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<example> <example xml:id="reviewing-contributions-sample-new-package">
<title>Sample template for a new package review</title> <title>Sample template for a new package review</title>
<screen> <screen>
##### Reviewed points ##### Reviewed points
@ -346,7 +346,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
</screen> </screen>
</example> </example>
</section> </section>
<section> <section xml:id="reviewing-contributions-module-updates">
<title>Module updates</title> <title>Module updates</title>
<para> <para>
@ -443,7 +443,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<example> <example xml:id="reviewing-contributions-sample-module-update">
<title>Sample template for a module update review</title> <title>Sample template for a module update review</title>
<screen> <screen>
##### Reviewed points ##### Reviewed points
@ -464,7 +464,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
</screen> </screen>
</example> </example>
</section> </section>
<section> <section xml:id="reviewing-contributions-new-modules">
<title>New modules</title> <title>New modules</title>
<para> <para>
@ -542,7 +542,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<example> <example xml:id="reviewing-contributions-sample-new-module">
<title>Sample template for a new module review</title> <title>Sample template for a new module review</title>
<screen> <screen>
##### Reviewed points ##### Reviewed points
@ -564,7 +564,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
</screen> </screen>
</example> </example>
</section> </section>
<section> <section xml:id="reviewing-contributions-other-submissions">
<title>Other submissions</title> <title>Other submissions</title>
<para> <para>
@ -585,7 +585,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
pull requests fitting this category. pull requests fitting this category.
</para> </para>
</section> </section>
<section> <section xml:id="reviewing-contributions--merging-pull-requests">
<title>Merging pull-requests</title> <title>Merging pull-requests</title>
<para> <para>

View file

@ -212,7 +212,7 @@ genericBuild
platforms relative to the new derivation's, and whether they are propagated. platforms relative to the new derivation's, and whether they are propagated.
The platform distinctions are motivated by cross compilation; see The platform distinctions are motivated by cross compilation; see
<xref linkend="chap-cross"/> for exactly what each platform means. <xref linkend="chap-cross"/> for exactly what each platform means.
<footnote> <footnote xml:id="footnote-stdenv-ignored-build-platform">
<para> <para>
The build platform is ignored because it is a mere implementation detail The build platform is ignored because it is a mere implementation detail
of the package satisfying the dependency: As a general programming of the package satisfying the dependency: As a general programming
@ -233,7 +233,7 @@ genericBuild
out only for dependencies whose host platform matches the new derivation's out only for dependencies whose host platform matches the new derivation's
build platformi.e. which run on the platform where the new derivation build platformi.e. which run on the platform where the new derivation
will be built. will be built.
<footnote> <footnote xml:id="footnote-stdenv-native-dependencies-in-path">
<para> <para>
Currently, that means for native builds all dependencies are put on the Currently, that means for native builds all dependencies are put on the
<envar>PATH</envar>. But in the future that may not be the case for sake <envar>PATH</envar>. But in the future that may not be the case for sake
@ -280,7 +280,7 @@ genericBuild
<link xlink:href="https://en.wikipedia.org/wiki/Natural_deduction">Natural <link xlink:href="https://en.wikipedia.org/wiki/Natural_deduction">Natural
Deduction</link> using the inference rules. This probably seems a bit Deduction</link> using the inference rules. This probably seems a bit
obtuse, but so is the bash code that actually implements it! obtuse, but so is the bash code that actually implements it!
<footnote> <footnote xml:id="footnote-stdenv-find-inputs-location">
<para> <para>
The <function>findInputs</function> function, currently residing in The <function>findInputs</function> function, currently residing in
<filename>pkgs/stdenv/generic/setup.sh</filename>, implements the <filename>pkgs/stdenv/generic/setup.sh</filename>, implements the
@ -1112,7 +1112,7 @@ passthru = {
By default, the configure phase applies some special hackery to all By default, the configure phase applies some special hackery to all
files called <filename>ltmain.sh</filename> before running the configure files called <filename>ltmain.sh</filename> before running the configure
script in order to improve the purity of Libtool-based packages script in order to improve the purity of Libtool-based packages
<footnote> <footnote xml:id="footnote-stdenv-sys-lib-search-path">
<para> <para>
It clears the It clears the
<varname>sys_lib_<replaceable>*</replaceable>search_path</varname> <varname>sys_lib_<replaceable>*</replaceable>search_path</varname>
@ -1151,7 +1151,7 @@ passthru = {
or a subset to control exactly which platform flags are passed. or a subset to control exactly which platform flags are passed.
Compilers and other tools should use this to also pass the target Compilers and other tools should use this to also pass the target
platform, for example. platform, for example.
<footnote> <footnote xml:id="footnote-stdenv-build-time-guessing-impurity">
<para> <para>
Eventually these will be passed when in native builds too, to improve Eventually these will be passed when in native builds too, to improve
determinism: build-time guessing, as is done today, is a risk of determinism: build-time guessing, as is done today, is a risk of
@ -1732,7 +1732,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
Controls whether the installCheck phase is executed. By default it is Controls whether the installCheck phase is executed. By default it is
skipped, but if <varname>doInstallCheck</varname> is set to true, the skipped, but if <varname>doInstallCheck</varname> is set to true, the
installCheck phase is usually executed. Thus you should set installCheck phase is usually executed. Thus you should set
<programlisting>doInstallCheck = true;</programlisting> <programlisting>doInstallCheck = true;</programlisting>
in the derivation to enable install checks. The exception is cross in the derivation to enable install checks. The exception is cross
compilation. Cross compiled builds never run tests, no matter how compilation. Cross compiled builds never run tests, no matter how
<varname>doInstallCheck</varname> is set, as the newly-built program <varname>doInstallCheck</varname> is set, as the newly-built program
@ -2213,7 +2213,7 @@ addEnvHooks "$hostOffset" myBashFunction
<command>clang</command> is to be used. Secondly, this helps packages <command>clang</command> is to be used. Secondly, this helps packages
not get confused when cross-compiling, in which case multiple Bintools not get confused when cross-compiling, in which case multiple Bintools
Wrappers may simultaneously be in use. Wrappers may simultaneously be in use.
<footnote> <footnote xml:id="footnote-stdenv-per-platform-wrapper">
<para> <para>
Each wrapper targets a single platform, so if binaries for multiple Each wrapper targets a single platform, so if binaries for multiple
platforms are needed, the underlying binaries must be wrapped multiple platforms are needed, the underlying binaries must be wrapped multiple

View file

@ -2,7 +2,7 @@
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-submitting-changes"> xml:id="chap-submitting-changes">
<title>Submitting changes</title> <title>Submitting changes</title>
<section> <section xml:id="submitting-changes-making-patches">
<title>Making patches</title> <title>Making patches</title>
<itemizedlist> <itemizedlist>
@ -205,7 +205,7 @@ Additional information.
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section> <section xml:id="submitting-changes-submitting-changes">
<title>Submitting changes</title> <title>Submitting changes</title>
<itemizedlist> <itemizedlist>
@ -253,7 +253,7 @@ Additional information.
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section> <section xml:id="submitting-changes-pull-request-template">
<title>Pull Request Template</title> <title>Pull Request Template</title>
<para> <para>
@ -269,7 +269,7 @@ Additional information.
below: below:
</para> </para>
<section> <section xml:id="submitting-changes-tested-with-sandbox">
<title>Tested using sandboxing</title> <title>Tested using sandboxing</title>
<para> <para>
@ -322,7 +322,7 @@ Additional information.
</para> </para>
</section> </section>
<section> <section xml:id="submitting-changes-platform-diversity">
<title>Built on platform(s)</title> <title>Built on platform(s)</title>
<para> <para>
@ -334,7 +334,7 @@ Additional information.
</para> </para>
</section> </section>
<section> <section xml:id="submitting-changes-nixos-tests">
<title>Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)</title> <title>Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)</title>
<para> <para>
@ -350,7 +350,7 @@ Additional information.
</para> </para>
</section> </section>
<section> <section xml:id="submitting-changes-tested-compilation">
<title>Tested compilation of all pkgs that depend on this change using <command>nox-review</command></title> <title>Tested compilation of all pkgs that depend on this change using <command>nox-review</command></title>
<para> <para>
@ -373,7 +373,7 @@ Additional information.
</para> </para>
</section> </section>
<section> <section xml:id="submitting-changes-tested-execution">
<title>Tested execution of all binary files (usually in <filename>./result/bin/</filename>)</title> <title>Tested execution of all binary files (usually in <filename>./result/bin/</filename>)</title>
<para> <para>
@ -387,8 +387,8 @@ Additional information.
</para> </para>
</section> </section>
<section> <section xml:id="submitting-changes-contribution-standards">
<title>Meets nixpkgs contribution standards</title> <title>Meets Nixpkgs contribution standards</title>
<para> <para>
The last checkbox is fits The last checkbox is fits
@ -402,7 +402,7 @@ Additional information.
</para> </para>
</section> </section>
</section> </section>
<section> <section xml:id="submitting-changes-hotfixing-pull-requests">
<title>Hotfixing pull requests</title> <title>Hotfixing pull requests</title>
<itemizedlist> <itemizedlist>
@ -430,7 +430,7 @@ Additional information.
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section> <section xml:id="submitting-changes-commit-policy">
<title>Commit policy</title> <title>Commit policy</title>
<itemizedlist> <itemizedlist>
@ -456,7 +456,7 @@ Additional information.
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<section> <section xml:id="submitting-changes-master-branch">
<title>Master branch</title> <title>Master branch</title>
<itemizedlist> <itemizedlist>
@ -468,7 +468,7 @@ Additional information.
</itemizedlist> </itemizedlist>
</section> </section>
<section> <section xml:id="submitting-changes-staging-branch">
<title>Staging branch</title> <title>Staging branch</title>
<itemizedlist> <itemizedlist>
@ -493,7 +493,7 @@ Additional information.
</itemizedlist> </itemizedlist>
</section> </section>
<section> <section xml:id="submitting-changes-stable-release-branches">
<title>Stable release branches</title> <title>Stable release branches</title>
<itemizedlist> <itemizedlist>

View file

@ -1570,6 +1570,11 @@
github = "grburst"; github = "grburst";
name = "Julius Elias"; name = "Julius Elias";
}; };
greydot = {
email = "lanablack@amok.cc";
github = "greydot";
name = "Lana Black";
};
gridaphobe = { gridaphobe = {
email = "eric@seidel.io"; email = "eric@seidel.io";
github = "gridaphobe"; github = "gridaphobe";

View file

@ -11,7 +11,7 @@ manual-combined.xml: generated *.xml
.PHONY: format .PHONY: format
format: format:
find . -iname '*.xml' -type f -print0 | xargs -0 -I{} -n1 \ find ../../ -iname '*.xml' -type f -print0 | xargs -0 -I{} -n1 \
xmlformat --config-file "../xmlformat.conf" -i {} xmlformat --config-file "../xmlformat.conf" -i {}
.PHONY: fix-misc-xml .PHONY: fix-misc-xml

View file

@ -66,14 +66,15 @@ nixpkgs.config.packageOverrides = pkgs:
sets the kernels TCP keepalive time to 120 seconds. To see the available sets the kernels TCP keepalive time to 120 seconds. To see the available
parameters, run <command>sysctl -a</command>. parameters, run <command>sysctl -a</command>.
</para> </para>
<section> <section xml:id="sec-linux-config-customizing">
<title>Customize your kernel</title> <title>Customize your kernel</title>
<para> <para>
The first step before compiling the kernel is to generate an appropriate The first step before compiling the kernel is to generate an appropriate
<literal>.config</literal> configuration. Either you pass your own config via <literal>.config</literal> configuration. Either you pass your own config
the <literal>configfile</literal> setting of <literal>linuxManualConfig</literal>: via the <literal>configfile</literal> setting of
<screen><![CDATA[ <literal>linuxManualConfig</literal>:
<screen><![CDATA[
custom-kernel = super.linuxManualConfig { custom-kernel = super.linuxManualConfig {
inherit (super) stdenv hostPlatform; inherit (super) stdenv hostPlatform;
inherit (linux_4_9) src; inherit (linux_4_9) src;
@ -117,7 +118,7 @@ You can edit the config with this snippet (by default <command>make menuconfig</
]]></screen> ]]></screen>
</para> </para>
</section> </section>
<section> <section xml:id="sec-linux-config-developing-modules">
<title>Developing kernel modules</title> <title>Developing kernel modules</title>
<para> <para>

View file

@ -74,7 +74,7 @@ The unique option `services.httpd.adminAddr' is defined multiple times, in `/etc
argument is for: it contains the complete, merged system configuration. That argument is for: it contains the complete, merged system configuration. That
is, <varname>config</varname> is the result of combining the configurations is, <varname>config</varname> is the result of combining the configurations
returned by every module returned by every module
<footnote> <footnote xml:id="footnote-nix-is-lazy">
<para> <para>
If youre wondering how its possible that the (indirect) If youre wondering how its possible that the (indirect)
<emphasis>result</emphasis> of a function is passed as an <emphasis>result</emphasis> of a function is passed as an

View file

@ -20,7 +20,7 @@
NixOS module system. NixOS module system.
</para> </para>
<section> <section xml:id="sec-assertions-warnings">
<title>Warnings</title> <title>Warnings</title>
<para> <para>
@ -44,7 +44,7 @@
</programlisting> </programlisting>
</section> </section>
<section> <section xml:id="sec-assertions-assertions">
<title>Assertions</title> <title>Assertions</title>
<para> <para>

View file

@ -11,7 +11,7 @@
value definitions. value definitions.
</para> </para>
<section> <section xml:id="sec-option-types-basic">
<title>Basic Types</title> <title>Basic Types</title>
<para> <para>
@ -196,7 +196,7 @@
</variablelist> </variablelist>
</section> </section>
<section> <section xml:id="sec-option-types-value">
<title>Value Types</title> <title>Value Types</title>
<para> <para>
@ -257,7 +257,7 @@
</variablelist> </variablelist>
</section> </section>
<section> <section xml:id="sec-option-types-composed">
<title>Composed Types</title> <title>Composed Types</title>
<para> <para>
@ -483,7 +483,7 @@ config.mod.two = { foo = 2; bar = "two"; };</screen>
</example> </example>
</section> </section>
<section> <section xml:id="sec-option-types-extending">
<title>Extending types</title> <title>Extending types</title>
<para> <para>
@ -543,14 +543,14 @@ nixThings = mkOption {
</variablelist> </variablelist>
</section> </section>
<section> <section xml:id="sec-option-types-custom">
<title>Custom Types</title> <title>Custom Types</title>
<para> <para>
Custom types can be created with the <literal>mkOptionType</literal> Custom types can be created with the <literal>mkOptionType</literal>
function. As type creation includes some more complex topics such as function. As type creation includes some more complex topics such as
submodule handling, it is recommended to get familiar with submodule handling, it is recommended to get familiar with
<filename <filename
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/lib/types.nix">types.nix</filename> xlink:href="https://github.com/NixOS/nixpkgs/blob/master/lib/types.nix">types.nix</filename>
code before creating a new type. code before creating a new type.
</para> </para>

View file

@ -10,7 +10,7 @@
sources and presenting it in an accessible style would be a worthy sources and presenting it in an accessible style would be a worthy
contribution to the project. contribution to the project.
</para> </para>
<section> <section xml:id="sec-writing-docs-building-the-manual">
<title>Building the Manual</title> <title>Building the Manual</title>
<para> <para>
@ -42,7 +42,7 @@
<filename>./result/share/doc/nixos/index.html</filename>. <filename>./result/share/doc/nixos/index.html</filename>.
</para> </para>
</section> </section>
<section> <section xml:id="sec-writing-docs-editing-docbook-xml">
<title>Editing DocBook XML</title> <title>Editing DocBook XML</title>
<para> <para>
@ -76,7 +76,7 @@
Issue</link> and someone will handle the conversion to XML for you. Issue</link> and someone will handle the conversion to XML for you.
</para> </para>
</section> </section>
<section> <section xml:id="sec-writing-docs-creating-a-topic">
<title>Creating a Topic</title> <title>Creating a Topic</title>
<para> <para>
@ -128,7 +128,7 @@
</itemizedlist> </itemizedlist>
</para> </para>
</section> </section>
<section> <section xml:id="sec-writing-docs-adding-a-topic">
<title>Adding a Topic to the Book</title> <title>Adding a Topic to the Book</title>
<para> <para>

View file

@ -0,0 +1,47 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-installing-behind-proxy">
<title>Installing behind a proxy</title>
<para>
To install NixOS behind a proxy, do the following before running
<literal>nixos-install</literal>.
</para>
<orderedlist numeration="arabic">
<listitem>
<para>
Update proxy configuration in
<literal>/mnt/etc/nixos/configuration.nix</literal> to keep the
internet accessible after reboot.
</para>
<programlisting>
networking.proxy.default = &quot;http://user:password@proxy:port/&quot;;
networking.proxy.noProxy = &quot;127.0.0.1,localhost,internal.domain&quot;;
</programlisting>
</listitem>
<listitem>
<para>
Setup the proxy environment variables in the shell where you are
running <literal>nixos-install</literal>.
</para>
<programlisting>
# proxy_url=&quot;http://user:password@proxy:port/&quot;
# export http_proxy=&quot;$proxy_url&quot;
# export HTTP_PROXY=&quot;$proxy_url&quot;
# export https_proxy=&quot;$proxy_url&quot;
# export HTTPS_PROXY=&quot;$proxy_url&quot;
</programlisting>
</listitem>
</orderedlist>
<note>
<para>
If you are switching networks with different proxy configurations, use the
<literal>nesting.clone</literal> option in
<literal>configuration.nix</literal> to switch proxies at runtime.
Refer to <xref linkend="ch-options" /> for more information.
</para>
</note>
</section>

View file

@ -443,4 +443,5 @@ $ nix-env -i w3m</screen>
<xi:include href="installing-pxe.xml" /> <xi:include href="installing-pxe.xml" />
<xi:include href="installing-virtualbox-guest.xml" /> <xi:include href="installing-virtualbox-guest.xml" />
<xi:include href="installing-from-other-distro.xml" /> <xi:include href="installing-from-other-distro.xml" />
<xi:include href="installing-behind-a-proxy.xml" />
</chapter> </chapter>

View file

@ -109,7 +109,7 @@ nixos https://nixos.org/channels/nixos-unstable
so in that case you will not be able to go back to your original channel. so in that case you will not be able to go back to your original channel.
</para> </para>
</warning> </warning>
<section> <section xml:id="sec-upgrading-automatic">
<title>Automatic Upgrades</title> <title>Automatic Upgrades</title>
<para> <para>

View file

@ -8,7 +8,7 @@
<subtitle>Version <xi:include href="./generated/version" parse="text" /> <subtitle>Version <xi:include href="./generated/version" parse="text" />
</subtitle> </subtitle>
</info> </info>
<preface> <preface xml:id="preface">
<title>Preface</title> <title>Preface</title>
<para> <para>
This manual describes how to install, use and extend NixOS, a Linux This manual describes how to install, use and extend NixOS, a Linux

View file

@ -15,7 +15,7 @@
<xsl:template match="/expr/list"> <xsl:template match="/expr/list">
<appendix> <appendix xml:id="appendix-configuration-options">
<title>Configuration Options</title> <title>Configuration Options</title>
<variablelist xml:id="configuration-variable-list"> <variablelist xml:id="configuration-variable-list">
<xsl:for-each select="attrs"> <xsl:for-each select="attrs">

View file

@ -91,7 +91,7 @@ $ nix-instantiate -E '(import &lt;nixpkgsunstable&gt; {}).gitFull'
<para> <para>
When enabled the <literal>iproute2</literal> will copy the files expected When enabled the <literal>iproute2</literal> will copy the files expected
by ip route (e.g., <filename>rt_tables</filename>) in by ip route (e.g., <filename>rt_tables</filename>) in
<filename>/run/iproute2</filename>. This allows to write aliases for <filename>/etc/iproute2</filename>. This allows to write aliases for
routing tables for instance. routing tables for instance.
</para> </para>
</listitem> </listitem>
@ -521,6 +521,13 @@ inherit (pkgs.nixos {
all user units for each authenticated user. all user units for each authenticated user.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The default display manager is now LightDM.
To use SLiM set <literal>services.xserver.displayManager.slim.enable</literal>
to <literal>true</literal>.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>

View file

@ -4,20 +4,29 @@ with lib;
let let
cfg = config.networking.iproute2; cfg = config.networking.iproute2;
confDir = "/run/iproute2";
in in
{ {
options.networking.iproute2.enable = mkEnableOption "copy IP route configuration files"; options.networking.iproute2 = {
enable = mkEnableOption "copy IP route configuration files";
config = mkMerge [ rttablesExtraConfig = mkOption {
({ nixpkgs.config.iproute2.confDir = confDir; }) type = types.lines;
default = "";
(mkIf cfg.enable { description = ''
system.activationScripts.iproute2 = '' Verbatim lines to add to /etc/iproute2/rt_tables
cp -R ${pkgs.iproute}/etc/iproute2 ${confDir}
chmod -R 664 ${confDir}
chmod +x ${confDir}
''; '';
}) };
]; };
config = mkIf cfg.enable {
environment.etc."iproute2/bpf_pinning" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/bpf_pinning"; };
environment.etc."iproute2/ematch_map" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/ematch_map"; };
environment.etc."iproute2/group" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/group"; };
environment.etc."iproute2/nl_protos" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/nl_protos"; };
environment.etc."iproute2/rt_dsfield" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/rt_dsfield"; };
environment.etc."iproute2/rt_protos" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/rt_protos"; };
environment.etc."iproute2/rt_realms" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/rt_realms"; };
environment.etc."iproute2/rt_scopes" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/rt_scopes"; };
environment.etc."iproute2/rt_tables" = { mode = "0644"; text = (fileContents "${pkgs.iproute}/etc/iproute2/rt_tables")
+ (optionalString (cfg.rttablesExtraConfig != "") "\n\n${cfg.rttablesExtraConfig}"); };
};
} }

View file

@ -13,7 +13,7 @@ let
pkgs.attr pkgs.attr
pkgs.bashInteractive # bash with ncurses support pkgs.bashInteractive # bash with ncurses support
pkgs.bzip2 pkgs.bzip2
pkgs.coreutils pkgs.coreutils-full
pkgs.cpio pkgs.cpio
pkgs.curl pkgs.curl
pkgs.diffutils pkgs.diffutils

View file

@ -23,7 +23,7 @@
bridge.</para></listitem> bridge.</para></listitem>
</itemizedlist> </itemizedlist>
<section><title>IBus</title> <section xml:id="module-services-input-methods-ibus"><title>IBus</title>
<para>IBus is an Intelligent Input Bus. It provides full featured and user <para>IBus is an Intelligent Input Bus. It provides full featured and user
friendly input method user interface.</para> friendly input method user interface.</para>
@ -82,7 +82,7 @@ ibus.engines = with pkgs.ibus-engines; [ table table-others ];
</simplesect> </simplesect>
</section> </section>
<section><title>Fcitx</title> <section xml:id="module-services-input-methods-fcitx"><title>Fcitx</title>
<para>Fcitx is an input method framework with extension support. It has three <para>Fcitx is an input method framework with extension support. It has three
built-in Input Method Engine, Pinyin, QuWei and Table-based input built-in Input Method Engine, Pinyin, QuWei and Table-based input
@ -122,7 +122,7 @@ i18n.inputMethod = {
</itemizedlist> </itemizedlist>
</section> </section>
<section><title>Nabi</title> <section xml:id="module-services-input-methods-nabi"><title>Nabi</title>
<para>Nabi is an easy to use Korean X input method. It allows you to enter <para>Nabi is an easy to use Korean X input method. It allows you to enter
phonetic Korean characters (hangul) and pictographic Korean characters phonetic Korean characters (hangul) and pictographic Korean characters
@ -136,7 +136,7 @@ i18n.inputMethod = {
</programlisting> </programlisting>
</section> </section>
<section><title>Uim</title> <section xml:id="module-services-input-methods-uim"><title>Uim</title>
<para>Uim (short for "universal input method") is a multilingual input method <para>Uim (short for "universal input method") is a multilingual input method
framework. Applications can use it through so-called bridges.</para> framework. Applications can use it through so-called bridges.</para>

View file

@ -233,7 +233,7 @@ let
" "
# Make our own efi program, we can't rely on "grub-install" since it seems to # Make our own efi program, we can't rely on "grub-install" since it seems to
# probe for devices, even with --skip-fs-probe. # probe for devices, even with --skip-fs-probe.
${pkgs.grub2_efi}/bin/grub-mkimage -o $out/EFI/boot/bootx64.efi -p /EFI/boot -O x86_64-efi \ ${pkgs.grub2_efi}/bin/grub-mkimage -o $out/EFI/boot/${if targetArch == "x64" then "bootx64" else "bootx32"}.efi -p /EFI/boot -O ${if targetArch == "x64" then "x86_64" else "i386"}-efi \
$MODULES $MODULES
cp ${pkgs.grub2_efi}/share/grub/unicode.pf2 $out/EFI/boot/ cp ${pkgs.grub2_efi}/share/grub/unicode.pf2 $out/EFI/boot/

View file

@ -574,6 +574,10 @@ $bootLoaderConfig
# networking.hostName = "nixos"; # Define your hostname. # networking.hostName = "nixos"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password\@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties. # Select internationalisation properties.
# i18n = { # i18n = {
# consoleFont = "Lat2-Terminus16"; # consoleFont = "Lat2-Terminus16";

View file

@ -10,7 +10,7 @@
to manage your <link xlink:href="https://www.zsh.org/">ZSH</link> configuration to manage your <link xlink:href="https://www.zsh.org/">ZSH</link> configuration
including completion scripts for several CLI tools or custom prompt themes.</para> including completion scripts for several CLI tools or custom prompt themes.</para>
<section><title>Basic usage</title> <section xml:id="module-programs-oh-my-zsh-usage"><title>Basic usage</title>
<para>The module uses the <literal>oh-my-zsh</literal> package with all available features. The <para>The module uses the <literal>oh-my-zsh</literal> package with all available features. The
initial setup using Nix expressions is fairly similar to the configuration format initial setup using Nix expressions is fairly similar to the configuration format
of <literal>oh-my-zsh</literal>. of <literal>oh-my-zsh</literal>.
@ -32,7 +32,7 @@ For a detailed explanation of these arguments please refer to the
configuration and writes it into your <literal>/etc/zshrc</literal>. configuration and writes it into your <literal>/etc/zshrc</literal>.
</para></section> </para></section>
<section><title>Custom additions</title> <section xml:id="module-programs-oh-my-zsh-additions"><title>Custom additions</title>
<para>Sometimes third-party or custom scripts such as a modified theme may be needed. <para>Sometimes third-party or custom scripts such as a modified theme may be needed.
<literal>oh-my-zsh</literal> provides the <literal>oh-my-zsh</literal> provides the
@ -48,7 +48,7 @@ environment variable for this which points to a directory with additional script
</programlisting> </programlisting>
</para></section> </para></section>
<section><title>Custom environments</title> <section xml:id="module-programs-oh-my-zsh-environments"><title>Custom environments</title>
<para>There are several extensions for <literal>oh-my-zsh</literal> packaged in <literal>nixpkgs</literal>. <para>There are several extensions for <literal>oh-my-zsh</literal> packaged in <literal>nixpkgs</literal>.
One of them is <link xlink:href="https://github.com/spwhitt/nix-zsh-completions">nix-zsh-completions</link> One of them is <link xlink:href="https://github.com/spwhitt/nix-zsh-completions">nix-zsh-completions</link>
@ -77,7 +77,7 @@ as it requires an immutable store path while <literal>custom</literal> shall rem
will be thrown if both <literal>custom</literal> and <literal>customPkgs</literal> are set.</emphasis> will be thrown if both <literal>custom</literal> and <literal>customPkgs</literal> are set.</emphasis>
</para></section> </para></section>
<section><title>Package your own customizations</title> <section xml:id="module-programs-oh-my-zsh-packaging-customizations"><title>Package your own customizations</title>
<para>If third-party customizations (e.g. new themes) are supposed to be added to <literal>oh-my-zsh</literal> <para>If third-party customizations (e.g. new themes) are supposed to be added to <literal>oh-my-zsh</literal>
there are several pitfalls to keep in mind:</para> there are several pitfalls to keep in mind:</para>

View file

@ -11,7 +11,7 @@ retrieval and renewal using the ACME protocol. This is currently only
implemented by and for Let's Encrypt. The alternative ACME client implemented by and for Let's Encrypt. The alternative ACME client
<literal>simp_le</literal> is used under the hood.</para> <literal>simp_le</literal> is used under the hood.</para>
<section><title>Prerequisites</title> <section xml:id="module-security-acme-prerequisites"><title>Prerequisites</title>
<para>You need to have a running HTTP server for verification. The server must <para>You need to have a running HTTP server for verification. The server must
have a webroot defined that can serve have a webroot defined that can serve
@ -41,7 +41,7 @@ http {
</section> </section>
<section><title>Configuring</title> <section xml:id="module-security-acme-configuring"><title>Configuring</title>
<para>To enable ACME certificate retrieval &amp; renewal for a certificate for <para>To enable ACME certificate retrieval &amp; renewal for a certificate for
<literal>foo.example.com</literal>, add the following in your <literal>foo.example.com</literal>, add the following in your
@ -66,7 +66,7 @@ options for the <link linkend="opt-security.acme.certs">security.acme</link> mod
</section> </section>
<section><title>Using ACME certificates in Nginx</title> <section xml:id="module-security-acme-nginx"><title>Using ACME certificates in Nginx</title>
<para>NixOS supports fetching ACME certificates for you by setting <para>NixOS supports fetching ACME certificates for you by setting
<literal><link linkend="opt-services.nginx.virtualHosts._name_.enableACME">enableACME</link> = true;</literal> in a virtualHost config. We <literal><link linkend="opt-services.nginx.virtualHosts._name_.enableACME">enableACME</link> = true;</literal> in a virtualHost config. We
first create self-signed placeholder certificates in place of the first create self-signed placeholder certificates in place of the

View file

@ -17,7 +17,7 @@
<para>FoundationDB (or "FDB") is an open source, distributed, transactional <para>FoundationDB (or "FDB") is an open source, distributed, transactional
key-value store.</para> key-value store.</para>
<section><title>Configuring and basic setup</title> <section xml:id="module-services-foundationdb-configuring"><title>Configuring and basic setup</title>
<para>To enable FoundationDB, add the following to your <para>To enable FoundationDB, add the following to your
<filename>configuration.nix</filename>: <filename>configuration.nix</filename>:
@ -133,7 +133,7 @@ corresponding <option>services.foundationdb.logDir</option> as well.</para>
</section> </section>
<section><title>Scaling processes and backup agents</title> <section xml:id="module-services-foundationdb-scaling"><title>Scaling processes and backup agents</title>
<para>Scaling the number of server processes is quite easy; simply specify <para>Scaling the number of server processes is quite easy; simply specify
<option>services.foundationdb.serverProcesses</option> to be the number of <option>services.foundationdb.serverProcesses</option> to be the number of
@ -151,7 +151,7 @@ available backup processes.</para>
</section> </section>
<section><title>Clustering</title> <section xml:id="module-services-foundationdb-clustering"><title>Clustering</title>
<para>FoundationDB on NixOS works similarly to other Linux systems, so this <para>FoundationDB on NixOS works similarly to other Linux systems, so this
section will be brief. Please refer to the full FoundationDB documentation for section will be brief. Please refer to the full FoundationDB documentation for
@ -221,7 +221,7 @@ informing all client processes to do the same.</para>
</section> </section>
<section><title>Client connectivity</title> <section xml:id="module-services-foundationdb-connectivity"><title>Client connectivity</title>
<para>By default, all clients must use the current <para>By default, all clients must use the current
<command>fdb.cluster</command> file to access a given FoundationDB cluster. <command>fdb.cluster</command> file to access a given FoundationDB cluster.
@ -232,7 +232,7 @@ to a new node in order to connect, if it is not part of the cluster.</para>
</section> </section>
<section><title>Client authorization and TLS</title> <section xml:id="module-services-foundationdb-authorization"><title>Client authorization and TLS</title>
<para>By default, any user who can connect to a FoundationDB process with the <para>By default, any user who can connect to a FoundationDB process with the
correct cluster configuration can access anything. FoundationDB uses a correct cluster configuration can access anything. FoundationDB uses a
@ -270,7 +270,7 @@ on.</para>
</section> </section>
<section><title>Backups and Disaster Recovery</title> <section xml:id="module-services-foundationdb-disaster-recovery"><title>Backups and Disaster Recovery</title>
<para>The usual rules for doing FoundationDB backups apply on NixOS as written <para>The usual rules for doing FoundationDB backups apply on NixOS as written
in the FoundationDB manual. However, one important difference is the security in the FoundationDB manual. However, one important difference is the security
@ -316,7 +316,7 @@ $ sudo -u foundationdb fdbbackup status -t default
</section> </section>
<section><title>Known limitations</title> <section xml:id="module-services-foundationdb-limitations"><title>Known limitations</title>
<para>The FoundationDB setup for NixOS should currently be considered beta. <para>The FoundationDB setup for NixOS should currently be considered beta.
FoundationDB is not new software, but the NixOS compilation and integration has FoundationDB is not new software, but the NixOS compilation and integration has
@ -333,7 +333,7 @@ only undergone fairly basic testing of all the available functionality.</para>
</section> </section>
<section><title>Options</title> <section xml:id="module-services-foundationdb-options"><title>Options</title>
<para>NixOS's FoundationDB module allows you to configure all of the most <para>NixOS's FoundationDB module allows you to configure all of the most
relevant configuration options for <command>fdbmonitor</command>, matching it relevant configuration options for <command>fdbmonitor</command>, matching it
@ -343,7 +343,7 @@ also read the FoundationDB documentation as well.</para>
</section> </section>
<section><title>Full documentation</title> <section xml:id="module-services-foundationdb-full-docs"><title>Full documentation</title>
<para>FoundationDB is a complex piece of software, and requires careful <para>FoundationDB is a complex piece of software, and requires careful
administration to properly use. Full documentation for administration can be administration to properly use. Full documentation for administration can be

View file

@ -17,7 +17,7 @@
<para>PostgreSQL is an advanced, free relational database.<!-- MORE --></para> <para>PostgreSQL is an advanced, free relational database.<!-- MORE --></para>
<section><title>Configuring</title> <section xml:id="module-services-postgres-configuring"><title>Configuring</title>
<para>To enable PostgreSQL, add the following to your <para>To enable PostgreSQL, add the following to your
<filename>configuration.nix</filename>: <filename>configuration.nix</filename>:
@ -60,14 +60,14 @@ alice=>
</section> </section>
<section><title>Upgrading</title> <section xml:id="module-services-postgres-upgrading"><title>Upgrading</title>
<para>FIXME: document dump/upgrade/load cycle.</para> <para>FIXME: document dump/upgrade/load cycle.</para>
</section> </section>
<section><title>Options</title> <section xml:id="module-services-postgres-options"><title>Options</title>
<para>A complete list of options for the PostgreSQL module may be found <link linkend="opt-services.postgresql.enable">here</link>.</para> <para>A complete list of options for the PostgreSQL module may be found <link linkend="opt-services.postgresql.enable">here</link>.</para>

View file

@ -39,7 +39,7 @@
starting the Emacs daemon. starting the Emacs daemon.
</para> </para>
<section> <section xml:id="module-services-emacs-installing">
<title>Installing <application>Emacs</application></title> <title>Installing <application>Emacs</application></title>
<para> <para>
@ -49,7 +49,7 @@
can be enabled. can be enabled.
</para> </para>
<section> <section xml:id="module-services-emacs-releases">
<title>The Different Releases of Emacs</title> <title>The Different Releases of Emacs</title>
<para> <para>
@ -100,7 +100,7 @@
</para> </para>
</section> </section>
<section> <section xml:id="module-services-emacs-adding-packages">
<title>Adding Packages to Emacs</title> <title>Adding Packages to Emacs</title>
<para> <para>
Emacs includes an entire ecosystem of functionality beyond Emacs includes an entire ecosystem of functionality beyond
@ -339,7 +339,7 @@ https://nixos.org/nixpkgs/manual/#sec-modify-via-packageOverrides
</para> </para>
</section> </section>
<section> <section xml:id="module-services-emacs-advanced">
<title>Advanced Emacs Configuration</title> <title>Advanced Emacs Configuration</title>
<para> <para>
@ -380,7 +380,7 @@ in [...]
</section> </section>
</section> </section>
<section> <section xml:id="module-services-emacs-running">
<title>Running Emacs as a Service</title> <title>Running Emacs as a Service</title>
<para> <para>
<productname>NixOS</productname> provides an optional <productname>NixOS</productname> provides an optional
@ -396,7 +396,7 @@ in [...]
<filename>modules/services/editors/emacs.nix</filename> <filename>modules/services/editors/emacs.nix</filename>
</para> </para>
<section> <section xml:id="module-services-emacs-enabling">
<title>Enabling the Service</title> <title>Enabling the Service</title>
<para> <para>
@ -438,7 +438,7 @@ $ systemctl --user start emacs.service # to start the Emacs daemon
</section> </section>
<section> <section xml:id="module-services-emacs-starting-client">
<title>Starting the client</title> <title>Starting the client</title>
<para> <para>
Ensure that the emacs server is enabled, either by customizing Ensure that the emacs server is enabled, either by customizing
@ -457,7 +457,7 @@ emacsclient --create-frame --tty # opens a new frame on the current terminal
</para> </para>
</section> </section>
<section> <section xml:id="module-services-emacs-editor-variable">
<title>Configuring the <varname>EDITOR</varname> variable</title> <title>Configuring the <varname>EDITOR</varname> variable</title>
<!--<title><command>emacsclient</command> as the Default Editor</title>--> <!--<title><command>emacsclient</command> as the Default Editor</title>-->
@ -487,7 +487,7 @@ emacsclient --create-frame --tty # opens a new frame on the current terminal
</para> </para>
</section> </section>
<section> <section xml:id="module-services-emacs-per-user">
<title>Per-User Enabling of the Service</title> <title>Per-User Enabling of the Service</title>
<para> <para>
@ -515,7 +515,7 @@ emacsclient --create-frame --tty # opens a new frame on the current terminal
</section> </section>
</section> </section>
<section> <section xml:id="module-services-emacs-configuring">
<title>Configuring Emacs</title> <title>Configuring Emacs</title>
<para> <para>
@ -548,7 +548,7 @@ emacsclient --create-frame --tty # opens a new frame on the current terminal
server-switch-hook, server-done-hook? server-switch-hook, server-done-hook?
--> -->
<section> <section xml:id="module-services-emacs-major-mode">
<title>A Major Mode for Nix Expressions</title> <title>A Major Mode for Nix Expressions</title>
<para> <para>
@ -558,7 +558,7 @@ emacsclient --create-frame --tty # opens a new frame on the current terminal
</para> </para>
</section> </section>
<section> <section xml:id="module-services-emacs-man-pages">
<title>Accessing man pages</title> <title>Accessing man pages</title>
<para> <para>
You can use <function>woman</function> to get completion of all You can use <function>woman</function> to get completion of all

View file

@ -8,7 +8,7 @@
<para>Gitlab is a feature-rich git hosting service.</para> <para>Gitlab is a feature-rich git hosting service.</para>
<section><title>Prerequisites</title> <section xml:id="module-services-gitlab-prerequisites"><title>Prerequisites</title>
<para>The gitlab service exposes only an Unix socket at <para>The gitlab service exposes only an Unix socket at
<literal>/run/gitlab/gitlab-workhorse.socket</literal>. You need to configure a <literal>/run/gitlab/gitlab-workhorse.socket</literal>. You need to configure a
@ -35,7 +35,7 @@ webserver to proxy HTTP requests to the socket.</para>
</section> </section>
<section><title>Configuring</title> <section xml:id="module-services-gitlab-configuring"><title>Configuring</title>
<para>Gitlab depends on both PostgreSQL and Redis and will automatically enable <para>Gitlab depends on both PostgreSQL and Redis and will automatically enable
both services. In the case of PostgreSQL, a database and a role will be created. both services. In the case of PostgreSQL, a database and a role will be created.
@ -119,7 +119,7 @@ options for the <link linkend="opt-services.gitlab.enable">services.gitlab</link
</section> </section>
<section><title>Maintenance</title> <section xml:id="module-services-gitlab-maintenance"><title>Maintenance</title>
<para>You can run Gitlab's rake tasks with <literal>gitlab-rake</literal> <para>You can run Gitlab's rake tasks with <literal>gitlab-rake</literal>
which will be available on the system when gitlab is enabled. You will which will be available on the system when gitlab is enabled. You will

View file

@ -16,7 +16,7 @@
<link xlink:href="https://taskwarrior.org/docs/#taskd"/> <link xlink:href="https://taskwarrior.org/docs/#taskd"/>
</para> </para>
<section> <section xml:id="module-services-taskserver-configuration">
<title>Configuration</title> <title>Configuration</title>
<para> <para>
@ -48,7 +48,7 @@
</para> </para>
</section> </section>
<section> <section xml:id="module-services-taskserver-nixos-taskserver-tool">
<title>The nixos-taskserver tool</title> <title>The nixos-taskserver tool</title>
<para> <para>
@ -78,7 +78,7 @@
<option>--help</option> switch. <option>--help</option> switch.
</para> </para>
</section> </section>
<section> <section xml:id="module-services-taskserver-declarative-ca-management">
<title>Declarative/automatic CA management</title> <title>Declarative/automatic CA management</title>
<para> <para>
@ -131,7 +131,7 @@ $ ssh server nixos-taskserver user export my-company alice | sh
<command>task sync</command> after that stage. <command>task sync</command> after that stage.
</para> </para>
</section> </section>
<section> <section xml:id="module-services-taskserver-manual-ca-management">
<title>Manual CA management</title> <title>Manual CA management</title>
<para> <para>

View file

@ -8,7 +8,7 @@
<para>Prometheus exporters provide metrics for the <link xlink:href="https://prometheus.io">prometheus monitoring system</link>.</para> <para>Prometheus exporters provide metrics for the <link xlink:href="https://prometheus.io">prometheus monitoring system</link>.</para>
<section><title>Configuration</title> <section xml:id="module-services-prometheus-exporters-configuration"><title>Configuration</title>
<para>One of the most common exporters is the <link xlink:href="https://github.com/prometheus/node_exporter">node exporter</link>, it provides hardware and OS metrics from the host it's running on. The exporter could be configured as follows: <para>One of the most common exporters is the <link xlink:href="https://github.com/prometheus/node_exporter">node exporter</link>, it provides hardware and OS metrics from the host it's running on. The exporter could be configured as follows:
<programlisting> <programlisting>
services.promtheus.exporters.node = { services.promtheus.exporters.node = {
@ -33,7 +33,7 @@ For more information about configuration see <literal>man configuration.nix</lit
search through the <link xlink:href="https://nixos.org/nixos/options.html#prometheus.exporters">available options</link>. search through the <link xlink:href="https://nixos.org/nixos/options.html#prometheus.exporters">available options</link>.
</para> </para>
</section> </section>
<section><title>Adding a new exporter</title> <section xml:id="module-services-prometheus-exporters-new-exporter"><title>Adding a new exporter</title>
<para>To add a new exporter, it has to be packaged first (see <literal>nixpkgs/pkgs/servers/monitoring/prometheus/</literal> for examples), then a module can be added. The postfix exporter is used in this example:</para> <para>To add a new exporter, it has to be packaged first (see <literal>nixpkgs/pkgs/servers/monitoring/prometheus/</literal> for examples), then a module can be added. The postfix exporter is used in this example:</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>

View file

@ -44,6 +44,7 @@ let
systemd.services.${variant} = { systemd.services.${variant} = {
description = "BIRD Internet Routing Daemon (${descr})"; description = "BIRD Internet Routing Daemon (${descr})";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
reloadIfChanged = true;
serviceConfig = { serviceConfig = {
Type = "forking"; Type = "forking";
Restart = "on-failure"; Restart = "on-failure";

View file

@ -14,7 +14,7 @@
upstream is trustworthy). upstream is trustworthy).
</para> </para>
<sect1><title>Basic configuration</title> <sect1 xml:id="sec-dnscrypt-proxy-configuration"><title>Basic configuration</title>
<para> <para>
To enable the client proxy, set To enable the client proxy, set
@ -31,7 +31,7 @@
</sect1> </sect1>
<sect1><title>As a forwarder for another DNS client</title> <sect1 xml:id="sec-dnscrypt-proxy-forwarder"><title>As a forwarder for another DNS client</title>
<para> <para>
To run the DNSCrypt proxy client as a forwarder for another To run the DNSCrypt proxy client as a forwarder for another
@ -42,7 +42,7 @@
</programlisting> </programlisting>
</para> </para>
<sect2><title>dnsmasq</title> <sect2 xml:id="sec-dnscrypt-proxy-forwarder-dsnmasq"><title>dnsmasq</title>
<para> <para>
<programlisting> <programlisting>
{ {
@ -53,7 +53,7 @@
</para> </para>
</sect2> </sect2>
<sect2><title>unbound</title> <sect2 xml:id="sec-dnscrypt-proxy-forwarder-unbound"><title>unbound</title>
<para> <para>
<programlisting> <programlisting>
{ {

View file

@ -289,7 +289,7 @@ in {
source = mkOption { source = mkOption {
type = types.path; type = types.path;
description = '' description = ''
A script. Path to the hook script.
''; '';
}; };
@ -297,12 +297,28 @@ in {
type = types.enum (attrNames dispatcherTypesSubdirMap); type = types.enum (attrNames dispatcherTypesSubdirMap);
default = "basic"; default = "basic";
description = '' description = ''
Dispatcher hook type. Only basic hooks are currently available. Dispatcher hook type. Look up the hooks described at
<link xlink:href="https://developer.gnome.org/NetworkManager/stable/NetworkManager.html">https://developer.gnome.org/NetworkManager/stable/NetworkManager.html</link>
and choose the type depending on the output folder.
You should then filter the event type (e.g., "up"/"down") from within your script.
''; '';
}; };
}; };
}); });
default = []; default = [];
example = literalExample ''
[ {
source = pkgs.writeText "upHook" '''
if [ "$2" != "up" ]; then
logger "exit: event $2 != up"
fi
# coreutils and iproute are in PATH too
logger "Device $DEVICE_IFACE coming up"
''';
type = "basic";
} ]'';
description = '' description = ''
A list of scripts which will be executed in response to network events. A list of scripts which will be executed in response to network events.
''; '';
@ -418,6 +434,7 @@ in {
++ lib.imap1 (i: s: { ++ lib.imap1 (i: s: {
inherit (s) source; inherit (s) source;
target = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}"; target = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
mode = "0544";
}) cfg.dispatcherScripts }) cfg.dispatcherScripts
++ optional (dynamicHostsEnabled) ++ optional (dynamicHostsEnabled)
{ target = "NetworkManager/dnsmasq.d/dyndns.conf"; { target = "NetworkManager/dnsmasq.d/dyndns.conf";
@ -475,6 +492,14 @@ in {
}; };
}; };
systemd.services."NetworkManager-dispatcher" = {
wantedBy = [ "network.target" ];
restartTriggers = [ configFile ];
# useful binaries for user-specified hooks
path = [ pkgs.iproute pkgs.utillinux pkgs.coreutils ];
};
# Turn off NixOS' network management # Turn off NixOS' network management
networking = { networking = {
useDHCP = false; useDHCP = false;

View file

@ -142,6 +142,7 @@ in
${getLib pkgs.attr}/lib/libattr*.so* mr, ${getLib pkgs.attr}/lib/libattr*.so* mr,
${getLib pkgs.lz4}/lib/liblz4*.so* mr, ${getLib pkgs.lz4}/lib/liblz4*.so* mr,
${getLib pkgs.libkrb5}/lib/lib*.so* mr, ${getLib pkgs.libkrb5}/lib/lib*.so* mr,
${getLib pkgs.keyutils}/lib/libkeyutils*.so* mr,
@{PROC}/sys/kernel/random/uuid r, @{PROC}/sys/kernel/random/uuid r,
@{PROC}/sys/vm/overcommit_memory r, @{PROC}/sys/vm/overcommit_memory r,

View file

@ -15,7 +15,7 @@
</para> </para>
<section> <section xml:id="module-services-matomo-database-setup">
<title>Database Setup</title> <title>Database Setup</title>
<para> <para>
@ -51,7 +51,7 @@
</section> </section>
<section> <section xml:id="module-services-matomo-backups">
<title>Backup</title> <title>Backup</title>
<para> <para>
You only need to take backups of your MySQL database and the You only need to take backups of your MySQL database and the
@ -62,7 +62,7 @@
</section> </section>
<section> <section xml:id="module-services-matomo-issues">
<title>Issues</title> <title>Issues</title>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
@ -83,7 +83,7 @@
</section> </section>
<section> <section xml:id="module-services-matomo-other-web-servers">
<title>Using other Web Servers than nginx</title> <title>Using other Web Servers than nginx</title>
<para> <para>

View file

@ -130,7 +130,7 @@ with lib;
}; };
sslTrustedCertificate = mkOption { sslTrustedCertificate = mkOption {
type = types.path; type = types.nullOr types.path;
default = null; default = null;
example = "/var/root.cert"; example = "/var/root.cert";
description = "Path to root SSL certificate for stapling and client certificates."; description = "Path to root SSL certificate for stapling and client certificates.";

View file

@ -33,10 +33,10 @@ let
chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
[org.gnome.desktop.background] [org.gnome.desktop.background]
picture-uri='${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/artwork/gnome/Gnome_Dark.png' picture-uri='${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png'
[org.gnome.desktop.screensaver] [org.gnome.desktop.screensaver]
picture-uri='${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/artwork/gnome/Gnome_Dark.png' picture-uri='${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom}/share/artwork/gnome/nix-wallpaper-simple-dark-gray_bottom.png'
${cfg.extraGSettingsOverrides} ${cfg.extraGSettingsOverrides}
EOF EOF
@ -132,6 +132,7 @@ in {
fonts.fonts = [ pkgs.dejavu_fonts pkgs.cantarell-fonts ]; fonts.fonts = [ pkgs.dejavu_fonts pkgs.cantarell-fonts ];
services.xserver.displayManager.gdm.enable = mkDefault true;
services.xserver.displayManager.extraSessionFilePackages = [ pkgs.gnome3.gnome-session ]; services.xserver.displayManager.extraSessionFilePackages = [ pkgs.gnome3.gnome-session ];
services.xserver.displayManager.sessionCommands = '' services.xserver.displayManager.sessionCommands = ''
@ -161,6 +162,8 @@ in {
# TODO: Create nautilus-with-extensions package # TODO: Create nautilus-with-extensions package
environment.variables.NAUTILUS_EXTENSION_DIR = "${config.system.path}/lib/nautilus/extensions-3.0"; environment.variables.NAUTILUS_EXTENSION_DIR = "${config.system.path}/lib/nautilus/extensions-3.0";
services.xserver.updateDbusEnvironment = true;
environment.variables.GIO_EXTRA_MODULES = [ "${lib.getLib pkgs.gnome3.dconf}/lib/gio/modules" environment.variables.GIO_EXTRA_MODULES = [ "${lib.getLib pkgs.gnome3.dconf}/lib/gio/modules"
"${pkgs.gnome3.glib-networking.out}/lib/gio/modules" "${pkgs.gnome3.glib-networking.out}/lib/gio/modules"
"${pkgs.gnome3.gvfs}/lib/gio/modules" ]; "${pkgs.gnome3.gvfs}/lib/gio/modules" ];

View file

@ -41,12 +41,28 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.xserver.displayManager.slim = { services.xserver.displayManager.lightdm = {
enable = true; enable = true;
autoLogin = true; autoLogin = {
defaultUser = cfg.user; enable = true;
user = cfg.user;
};
}; };
# lightdm by default doesn't allow auto login for root, which is
# required by some nixos tests. Override it here.
security.pam.services.lightdm-autologin.text = lib.mkForce ''
auth requisite pam_nologin.so
auth required pam_succeed_if.so quiet
auth required pam_permit.so
account include lightdm
password include lightdm
session include lightdm
'';
}; };
} }

View file

@ -27,6 +27,15 @@ let
Xft.hintstyle: hintslight Xft.hintstyle: hintslight
''; '';
mkCases = session:
concatStrings (
mapAttrsToList (name: starts: ''
(${name})
${concatMapStringsSep "\n " (n: n.start) starts}
;;
'') (lib.groupBy (n: n.name) session)
);
# file provided by services.xserver.displayManager.session.wrapper # file provided by services.xserver.displayManager.session.wrapper
xsessionWrapper = pkgs.writeScript "xsession-wrapper" xsessionWrapper = pkgs.writeScript "xsession-wrapper"
'' ''
@ -139,21 +148,13 @@ let
# Start the window manager. # Start the window manager.
case "$windowManager" in case "$windowManager" in
${concatMapStrings (s: '' ${mkCases wm}
(${s.name})
${s.start}
;;
'') wm}
(*) echo "$0: Window manager '$windowManager' not found.";; (*) echo "$0: Window manager '$windowManager' not found.";;
esac esac
# Start the desktop manager. # Start the desktop manager.
case "$desktopManager" in case "$desktopManager" in
${concatMapStrings (s: '' ${mkCases dm}
(${s.name})
${s.start}
;;
'') dm}
(*) echo "$0: Desktop manager '$desktopManager' not found.";; (*) echo "$0: Desktop manager '$desktopManager' not found.";;
esac esac

View file

@ -87,7 +87,7 @@ in
} }
]; ];
services.xserver.displayManager.slim.enable = false; services.xserver.displayManager.lightdm.enable = false;
users.users.gdm = users.users.gdm =
{ name = "gdm"; { name = "gdm";

View file

@ -115,7 +115,7 @@ in
background = mkOption { background = mkOption {
type = types.str; type = types.str;
default = "${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/artwork/gnome/Gnome_Dark.png"; default = "${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom}/share/artwork/gnome/nix-wallpaper-simple-dark-gray_bottom.png";
description = '' description = ''
The background image or color to use. The background image or color to use.
''; '';
@ -191,8 +191,6 @@ in
} }
]; ];
services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.job = { services.xserver.displayManager.job = {
logToFile = true; logToFile = true;

View file

@ -206,8 +206,6 @@ in
} }
]; ];
services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.job = { services.xserver.displayManager.job = {
logToFile = true; logToFile = true;

View file

@ -49,7 +49,7 @@ in
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
default = config.services.xserver.enable; default = false;
description = '' description = ''
Whether to enable SLiM as the display manager. Whether to enable SLiM as the display manager.
''; '';

View file

@ -205,7 +205,7 @@ in {
}) })
]; ];
services.udev.packages = [ pkgs.libinput ]; services.udev.packages = [ pkgs.libinput.out ];
services.xserver.config = services.xserver.config =
'' ''

View file

@ -535,6 +535,15 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.xserver.displayManager.lightdm.enable =
let dmconf = cfg.displayManager;
default = !( dmconf.auto.enable
|| dmconf.gdm.enable
|| dmconf.sddm.enable
|| dmconf.slim.enable
|| dmconf.xpra.enable );
in mkIf (default) true;
hardware.opengl.enable = mkDefault true; hardware.opengl.enable = mkDefault true;
services.xserver.videoDrivers = mkIf (cfg.videoDriver != null) [ cfg.videoDriver ]; services.xserver.videoDrivers = mkIf (cfg.videoDriver != null) [ cfg.videoDriver ];

View file

@ -162,6 +162,13 @@ in
description = '' description = ''
Additional configurations to build based on the current Additional configurations to build based on the current
configuration which then has a lower priority. configuration which then has a lower priority.
To switch to a cloned configuration (e.g. <literal>child-1</literal>)
at runtime, run
<programlisting>
# sudo /run/current-system/fine-tune/child-1/bin/switch-to-configuration test
</programlisting>
''; '';
}; };

View file

@ -38,6 +38,8 @@ let
in in
pkgs.writeText "grub-config.xml" (builtins.toXML pkgs.writeText "grub-config.xml" (builtins.toXML
{ splashImage = f cfg.splashImage; { splashImage = f cfg.splashImage;
splashMode = f cfg.splashMode;
backgroundColor = f cfg.backgroundColor;
grub = f grub; grub = f grub;
grubTarget = f (grub.grubTarget or ""); grubTarget = f (grub.grubTarget or "");
shell = "${pkgs.runtimeShell}"; shell = "${pkgs.runtimeShell}";
@ -80,6 +82,8 @@ let
"--output" "$out" "--output" "$out"
] ++ (optional (cfg.fontSize!=null) "--size ${toString cfg.fontSize}"))) ] ++ (optional (cfg.fontSize!=null) "--size ${toString cfg.fontSize}")))
); );
defaultSplash = "${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bootloader}/share/artwork/gnome/nix-wallpaper-simple-dark-gray_bootloader.png";
in in
{ {
@ -328,6 +332,31 @@ in
''; '';
}; };
backgroundColor = mkOption {
type = types.nullOr types.string;
example = "#7EBAE4";
default = null;
description = ''
Background color to be used for GRUB to fill the areas the image isn't filling.
<note><para>
This options has no effect for GRUB 1.
</para></note>
'';
};
splashMode = mkOption {
type = types.enum [ "normal" "stretch" ];
default = "stretch";
description = ''
Whether to stretch the image or show the image in the top-left corner unstretched.
<note><para>
This options has no effect for GRUB 1.
</para></note>
'';
};
font = mkOption { font = mkOption {
type = types.nullOr types.path; type = types.nullOr types.path;
default = "${realGrub}/share/grub/unicode.pf2"; default = "${realGrub}/share/grub/unicode.pf2";
@ -531,9 +560,14 @@ in
sha256 = "14kqdx2lfqvh40h6fjjzqgff1mwk74dmbjvmqphi6azzra7z8d59"; sha256 = "14kqdx2lfqvh40h6fjjzqgff1mwk74dmbjvmqphi6azzra7z8d59";
} }
# GRUB 1.97 doesn't support gzipped XPMs. # GRUB 1.97 doesn't support gzipped XPMs.
else "${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/artwork/gnome/Gnome_Dark.png"); else defaultSplash);
} }
(mkIf (cfg.splashImage == defaultSplash) {
boot.loader.grub.backgroundColor = mkDefault "#2F302F";
boot.loader.grub.splashMode = mkDefault "normal";
})
(mkIf cfg.enable { (mkIf cfg.enable {
boot.loader.grub.devices = optional (cfg.device != "") cfg.device; boot.loader.grub.devices = optional (cfg.device != "") cfg.device;

View file

@ -51,6 +51,8 @@ my $extraEntries = get("extraEntries");
my $extraEntriesBeforeNixOS = get("extraEntriesBeforeNixOS") eq "true"; my $extraEntriesBeforeNixOS = get("extraEntriesBeforeNixOS") eq "true";
my $extraInitrd = get("extraInitrd"); my $extraInitrd = get("extraInitrd");
my $splashImage = get("splashImage"); my $splashImage = get("splashImage");
my $splashMode = get("splashMode");
my $backgroundColor = get("backgroundColor");
my $configurationLimit = int(get("configurationLimit")); my $configurationLimit = int(get("configurationLimit"));
my $copyKernels = get("copyKernels") eq "true"; my $copyKernels = get("copyKernels") eq "true";
my $timeout = int(get("timeout")); my $timeout = int(get("timeout"));
@ -307,10 +309,15 @@ else {
if ($suffix eq ".jpg") { if ($suffix eq ".jpg") {
$suffix = ".jpeg"; $suffix = ".jpeg";
} }
if ($backgroundColor) {
$conf .= "
background_color '$backgroundColor'
";
}
copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath\n"; copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath\n";
$conf .= " $conf .= "
insmod " . substr($suffix, 1) . " insmod " . substr($suffix, 1) . "
if background_image " . $grubBoot->path . "/background$suffix; then if background_image --mode '$splashMode' " . $grubBoot->path . "/background$suffix; then
set color_normal=white/black set color_normal=white/black
set color_highlight=black/white set color_highlight=black/white
else else

View file

@ -263,6 +263,13 @@ checkFS() {
return 0 return 0
fi fi
# Device might be already mounted manually
# e.g. NBD-device or the host filesystem of the file which contains encrypted root fs
if mount | grep -q "^$device on "; then
echo "skip checking already mounted $device"
return 0
fi
# Optionally, skip fsck on journaling filesystems. This option is # Optionally, skip fsck on journaling filesystems. This option is
# a hack - it's mostly because e2fsck on ext3 takes much longer to # a hack - it's mostly because e2fsck on ext3 takes much longer to
# recover the journal than the ext3 implementation in the kernel # recover the journal than the ext3 implementation in the kernel

View file

@ -473,7 +473,12 @@ let
# Remove Dead Interfaces # Remove Dead Interfaces
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}" ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
ip link add link "${v.interface}" name "${n}" type vlan id "${toString v.id}" ip link add link "${v.interface}" name "${n}" type vlan id "${toString v.id}"
ip link set "${n}" up
# We try to bring up the logical VLAN interface. If the master
# interface the logical interface is dependent upon is not up yet we will
# fail to immediately bring up the logical interface. The resulting logical
# interface will brought up later when the master interface is up.
ip link set "${n}" up || true
''; '';
postStop = '' postStop = ''
ip link delete "${n}" || true ip link delete "${n}" || true

View file

@ -249,7 +249,7 @@ in rec {
tests.beegfs = callTest tests/beegfs.nix {}; tests.beegfs = callTest tests/beegfs.nix {};
tests.bittorrent = callTest tests/bittorrent.nix {}; tests.bittorrent = callTest tests/bittorrent.nix {};
tests.bind = callTest tests/bind.nix {}; tests.bind = callTest tests/bind.nix {};
tests.blivet = callTest tests/blivet.nix {}; #tests.blivet = callTest tests/blivet.nix {}; # broken since 2017-07024
tests.boot = callSubTests tests/boot.nix {}; tests.boot = callSubTests tests/boot.nix {};
tests.boot-stage1 = callTest tests/boot-stage1.nix {}; tests.boot-stage1 = callTest tests/boot-stage1.nix {};
tests.borgbackup = callTest tests/borgbackup.nix {}; tests.borgbackup = callTest tests/borgbackup.nix {};
@ -422,6 +422,7 @@ in rec {
tests.yabar = callTest tests/yabar.nix {}; tests.yabar = callTest tests/yabar.nix {};
tests.zookeeper = callTest tests/zookeeper.nix {}; tests.zookeeper = callTest tests/zookeeper.nix {};
tests.morty = callTest tests/morty.nix { }; tests.morty = callTest tests/morty.nix { };
tests.bcachefs = callTest tests/bcachefs.nix { };
/* Build a bunch of typical closures so that Hydra can keep track of /* Build a bunch of typical closures so that Hydra can keep track of
the evolution of closure sizes. */ the evolution of closure sizes. */

38
nixos/tests/bcachefs.nix Normal file
View file

@ -0,0 +1,38 @@
import ./make-test.nix ({ pkgs, ... }: {
name = "bcachefs";
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ chiiruno ];
machine = { pkgs, ... }: {
virtualisation.emptyDiskImages = [ 4096 ];
networking.hostId = "deadbeef";
boot.supportedFilesystems = [ "bcachefs" ];
environment.systemPackages = with pkgs; [ parted ];
};
testScript = ''
$machine->succeed("modprobe bcachefs");
$machine->succeed("bcachefs version");
$machine->succeed("ls /dev");
$machine->succeed(
"mkdir /tmp/mnt",
"udevadm settle",
"parted --script /dev/vdb mklabel msdos",
"parted --script /dev/vdb -- mkpart primary 1024M -1s",
"udevadm settle",
# Due to #32279, we cannot use encryption for this test yet
# "echo password | bcachefs format --encrypted /dev/vdb1",
# "echo password | bcachefs unlock /dev/vdb1",
"bcachefs format /dev/vdb1",
"mount -t bcachefs /dev/vdb1 /tmp/mnt",
"udevadm settle",
"bcachefs fs usage /tmp/mnt",
"umount /tmp/mnt",
"udevadm settle"
);
'';
})

View file

@ -10,6 +10,8 @@ import ./make-test.nix ({ pkgs, ... }:
machine = { pkgs, ... }: { machine = { pkgs, ... }: {
imports = [ ./common/x11.nix ]; imports = [ ./common/x11.nix ];
services.xserver.desktopManager.gnome3.enable = true; # TODO: figure out minimal environment where the tests work services.xserver.desktopManager.gnome3.enable = true; # TODO: figure out minimal environment where the tests work
# common/x11.nix enables the auto display manager (lightdm)
services.xserver.displayManager.gdm.enable = false;
environment.gnome3.excludePackages = pkgs.gnome3.optionalPackages; environment.gnome3.excludePackages = pkgs.gnome3.optionalPackages;
services.flatpak.enable = true; services.flatpak.enable = true;
environment.systemPackages = with pkgs; [ gnupg gnome-desktop-testing ostree python2 ]; environment.systemPackages = with pkgs; [ gnupg gnome-desktop-testing ostree python2 ];

View file

@ -11,7 +11,6 @@ import ./make-test.nix ({ pkgs, ...} : {
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.gdm = { services.xserver.displayManager.gdm = {
enable = true; enable = true;
autoLogin = { autoLogin = {

View file

@ -11,6 +11,7 @@ import ./make-test.nix ({ pkgs, ...} : {
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = false;
services.xserver.displayManager.lightdm.enable = true; services.xserver.displayManager.lightdm.enable = true;
services.xserver.displayManager.lightdm.autoLogin.enable = true; services.xserver.displayManager.lightdm.autoLogin.enable = true;
services.xserver.displayManager.lightdm.autoLogin.user = "alice"; services.xserver.displayManager.lightdm.autoLogin.user = "alice";

View file

@ -233,13 +233,16 @@ let
[ sudo [ sudo
libxml2.bin libxml2.bin
libxslt.bin libxslt.bin
desktop-file-utils
docbook5 docbook5
docbook_xsl_ns docbook_xsl_ns
unionfs-fuse unionfs-fuse
ntp ntp
nixos-artwork.wallpapers.gnome-dark nixos-artwork.wallpapers.simple-dark-gray-bottom
perlPackages.XMLLibXML perlPackages.XMLLibXML
perlPackages.ListCompare perlPackages.ListCompare
shared-mime-info
texinfo
xorg.lndir xorg.lndir
# add curl so that rather than seeing the test attempt to download # add curl so that rather than seeing the test attempt to download

View file

@ -17,10 +17,11 @@ buildRustPackage rec {
cargoBuildFlags = ["--features cli"]; cargoBuildFlags = ["--features cli"];
meta = { meta = with stdenv.lib; {
description = "Ethereum function call encoding (ABI) utility"; description = "Ethereum function call encoding (ABI) utility";
homepage = https://github.com/ethcore/ethabi/; homepage = https://github.com/ethcore/ethabi/;
maintainers = [stdenv.lib.maintainers.dbrock]; maintainers = [ maintainers.dbrock ];
license = licenses.gpl3;
inherit version; inherit version;
}; };
} }

View file

@ -15,10 +15,11 @@ buildRustPackage rec {
cargoSha256 = "14x8pbjgkz0g724lnvd9mi2alqd6fipjljw6xsraf9gqwijn1kn0"; cargoSha256 = "14x8pbjgkz0g724lnvd9mi2alqd6fipjljw6xsraf9gqwijn1kn0";
meta = { meta = with stdenv.lib; {
description = "Directly run Ethereum bytecode"; description = "Directly run Ethereum bytecode";
homepage = https://github.com/dapphub/ethrun/; homepage = https://github.com/dapphub/ethrun/;
maintainers = [stdenv.lib.maintainers.dbrock]; maintainers = [ maintainers.dbrock ];
license = licenses.gpl3;
broken = true; # mark temporary as broken broken = true; # mark temporary as broken
inherit version; inherit version;
}; };

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
phones. With dfu-util you are able to download firmware to your device or phones. With dfu-util you are able to download firmware to your device or
upload firmware from it. upload firmware from it.
''; '';
homepage = http://dfu-util.gnumonks.org/; homepage = http://dfu-util.sourceforge.net;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = [ ]; maintainers = [ ];

View file

@ -29,10 +29,10 @@ stdenv.mkDerivation rec {
sed 's,-ludev,-L${systemd.lib}/lib -ludev,' -i $out/lib/libusb-1.0.la sed 's,-ludev,-L${systemd.lib}/lib -ludev,' -i $out/lib/libusb-1.0.la
''; '';
meta = { meta = with stdenv.lib; {
homepage = http://www.libusb.info; homepage = http://www.libusb.info;
description = "User-space USB library"; description = "User-space USB library";
platforms = stdenv.lib.platforms.unix; platforms = platforms.unix;
maintainers = [ ]; license = licenses.lgpl21;
}; };
} }

View file

@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
TAL-Filter-2 TAL-NoiseMaker TAL-Reverb TAL-Reverb-2 TAL-Reverb-3 TAL-Filter-2 TAL-NoiseMaker TAL-Reverb TAL-Reverb-2 TAL-Reverb-3
TAL-Vocoder-2 TheFunction ThePilgrim Vex Wolpertinger TAL-Vocoder-2 TheFunction ThePilgrim Vex Wolpertinger
''; '';
license = with licenses; [ gpl2 gpl3 gpl2Plus lgpl3 mit ];
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
}; };

View file

@ -56,7 +56,7 @@ in stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
postInstall = '' postInstall = ''
${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas glib-compile-schemas "$out"/share/glib-2.0/schemas
''; '';
patches = [ ./0001-Remove-post-install-script-that-hardcodes-paths.patch ]; patches = [ ./0001-Remove-post-install-script-that-hardcodes-paths.patch ];

View file

@ -9,11 +9,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "kid3-${version}"; name = "kid3-${version}";
version = "3.6.1"; version = "3.6.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/project/kid3/kid3/${version}/${name}.tar.gz"; url = "mirror://sourceforge/project/kid3/kid3/${version}/${name}.tar.gz";
sha256 = "1bbnd6jgahdiqmsbw6c3x4h517m50db592fnq1w0v4k5aaav4i26"; sha256 = "19yq39fqj19g98cxd4cdgv0f935ckfw0c43cxaxbf27x5f5dj0yz";
}; };
buildInputs = with stdenv.lib; buildInputs = with stdenv.lib;

View file

@ -1,4 +1,4 @@
{ fetchurl, pythonPackages }: { lib, fetchurl, pythonPackages }:
pythonPackages.buildPythonApplication rec { pythonPackages.buildPythonApplication rec {
pname = "lastfmsubmitd"; pname = "lastfmsubmitd";
@ -15,6 +15,7 @@ pythonPackages.buildPythonApplication rec {
meta = { meta = {
homepage = https://www.red-bean.com/decklin/lastfmsubmitd/; homepage = https://www.red-bean.com/decklin/lastfmsubmitd/;
license = lib.licenses.mit;
description = "An last.fm audio scrobbler and daemon"; description = "An last.fm audio scrobbler and daemon";
}; };
} }

View file

@ -1,4 +1,5 @@
{ stdenv, fetchFromGitHub, chromaprint, fetchpatch, fftw, flac, faad2, mp4v2 { stdenv, fetchFromGitHub, makeWrapper, chromaprint, fetchpatch
, fftw, flac, faad2, glibcLocales, mp4v2
, libid3tag, libmad, libopus, libshout, libsndfile, libusb1, libvorbis , libid3tag, libmad, libopus, libshout, libsndfile, libusb1, libvorbis
, pkgconfig, portaudio, portmidi, protobuf, qt4, rubberband, scons, sqlite , pkgconfig, portaudio, portmidi, protobuf, qt4, rubberband, scons, sqlite
, taglib, upower, vampSDK , taglib, upower, vampSDK
@ -15,8 +16,10 @@ stdenv.mkDerivation rec {
sha256 = "1fm8lkbnxka4haidf6yr8mb3r6vaxmc97hhrp8pcx0fvq2mnzvy2"; sha256 = "1fm8lkbnxka4haidf6yr8mb3r6vaxmc97hhrp8pcx0fvq2mnzvy2";
}; };
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ buildInputs = [
chromaprint fftw flac faad2 mp4v2 libid3tag libmad libopus libshout libsndfile chromaprint fftw flac faad2 glibcLocales mp4v2 libid3tag libmad libopus libshout libsndfile
libusb1 libvorbis pkgconfig portaudio portmidi protobuf qt4 libusb1 libvorbis pkgconfig portaudio portmidi protobuf qt4
rubberband scons sqlite taglib upower vampSDK rubberband scons sqlite taglib upower vampSDK
]; ];
@ -42,6 +45,11 @@ stdenv.mkDerivation rec {
runHook postInstall runHook postInstall
''; '';
fixupPhase = ''
wrapProgram $out/bin/mixxx \
--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive;
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://mixxx.org; homepage = https://mixxx.org;
description = "Digital DJ mixing software"; description = "Digital DJ mixing software";

View file

@ -1,16 +1,16 @@
{ fetchurl, stdenv, pkgconfig, libao, json_c, libgcrypt, libav, curl }: { fetchurl, stdenv, pkgconfig, libao, json_c, libgcrypt, ffmpeg, curl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "pianobar-2016.06.02"; name = "pianobar-2018.06.22";
src = fetchurl { src = fetchurl {
url = "http://6xq.net/projects/pianobar/${name}.tar.bz2"; url = "http://6xq.net/projects/pianobar/${name}.tar.bz2";
sha256 = "0n9544bfsdp04xqcjm4nhfvp357dx0c3gpys0rjkq09nzv8b1vy6"; sha256 = "1hnlif62vsxgh8j9mcibxwj4gybpgqc11ba729kflpvvi9qmfqwl";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ buildInputs = [
libao json_c libgcrypt libav curl libao json_c libgcrypt ffmpeg curl
]; ];
makeFlags="PREFIX=$(out)"; makeFlags="PREFIX=$(out)";

View file

@ -43,13 +43,13 @@ let
]; ];
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "pulseeffects-${version}"; name = "pulseeffects-${version}";
version = "4.3.3"; version = "4.3.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wwmm"; owner = "wwmm";
repo = "pulseeffects"; repo = "pulseeffects";
rev = "v${version}"; rev = "v${version}";
sha256 = "1krfxvwqimfcsv7f2l722ivzz0qdf5h0pmb702mg65qb160zn065"; sha256 = "0gyyqxfmmp6hbwc10i48sxrgdxansm3vsbwgc6rh89clxwcnfiml";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "WYSIWYG PostScript annotator"; description = "WYSIWYG PostScript annotator";
homepage = http://http://flpsed.org/flpsed.html; homepage = http://flpsed.org/flpsed.html;
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.mesaPlatforms; platforms = platforms.mesaPlatforms;
maintainers = with maintainers; [ fuuzetsu ]; maintainers = with maintainers; [ fuuzetsu ];

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl { stdenv, fetchurl, fetchpatch, gdal, cmake, qt4, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
, qwt, fcgi, python2Packages, libspatialindex, libspatialite, qscintilla, postgresql, makeWrapper , qwt, fcgi, python2Packages, libspatialindex, libspatialite, qscintilla, postgresql, makeWrapper
, qjson, qca2, txt2tags, openssl, darwin, pkgconfig , qjson, qca2, txt2tags, openssl, darwin, pkgconfig
, withGrass ? true, grass, IOKit, ApplicationServices , withGrass ? true, grass, IOKit, ApplicationServices
@ -37,6 +37,14 @@ stdenv.mkDerivation rec {
sha256 = "00b3a2hfn3i7bdx7x96vz2nj0976vpkhid4ss7n8c33fdvw3k82a"; sha256 = "00b3a2hfn3i7bdx7x96vz2nj0976vpkhid4ss7n8c33fdvw3k82a";
}; };
patches = [
# https://github.com/qgis/QGIS/pull/7765
(fetchpatch {
url = "https://github.com/qgis/QGIS/commit/6b61ef361a77f057dc29eb07463007bd9012b253.patch";
sha256 = "1xibcahm18n7nxff1xvwwzjf505hvhiw5dk12is7aclv49h0rdf7";
})
];
# CMAKE_FIND_FRAMEWORK=never stops the installer choosing system # CMAKE_FIND_FRAMEWORK=never stops the installer choosing system
# installed frameworks # installed frameworks
# QGIS_MACAPP_BUNDLE=0 stops the installer copying the Qt binaries into the # QGIS_MACAPP_BUNDLE=0 stops the installer copying the Qt binaries into the

View file

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "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/; homepage = http://pulkomandy.tk/projects/GrafX2;
license = stdenv.lib.licenses.gpl2; license = stdenv.lib.licenses.gpl2;
platforms = [ "x86_64-linux" "i686-linux" ]; platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = [ stdenv.lib.maintainers.zoomulator ]; maintainers = [ stdenv.lib.maintainers.zoomulator ];

View file

@ -39,12 +39,11 @@ stdenv.mkDerivation rec {
#doCheck = false; #doCheck = false;
meta = { meta = with stdenv.lib; {
description = "A 3D editor with support for procedural editing"; description = "A 3D editor with support for procedural editing";
homepage = http://www.k-3d.org/; homepage = http://www.k-3d.org/;
platforms = with stdenv.lib.platforms; platforms = platforms.linux;
linux; maintainers = [ maintainers.raskin ];
maintainers = with stdenv.lib.maintainers; license = licenses.gpl2;
[raskin];
}; };
} }

View file

@ -1,4 +1,4 @@
{ mkDerivation, lib, fetchurl, cmake, extra-cmake-modules { mkDerivation, lib, stdenv, fetchurl, cmake, extra-cmake-modules
, karchive, kconfig, kwidgetsaddons, kcompletion, kcoreaddons , karchive, kconfig, kwidgetsaddons, kcompletion, kcoreaddons
, kguiaddons, ki18n, kitemmodels, kitemviews, kwindowsystem , kguiaddons, ki18n, kitemmodels, kitemviews, kwindowsystem
, kio, kcrash , kio, kcrash
@ -23,10 +23,10 @@ mkDerivation rec {
karchive kconfig kwidgetsaddons kcompletion kcoreaddons kguiaddons karchive kconfig kwidgetsaddons kcompletion kcoreaddons kguiaddons
ki18n kitemmodels kitemviews kwindowsystem kio kcrash ki18n kitemmodels kitemviews kwindowsystem kio kcrash
boost libraw fftw eigen exiv2 lcms2 gsl openexr libheif giflib boost libraw fftw eigen exiv2 lcms2 gsl openexr libheif giflib
openjpeg opencolorio vc poppler_qt5 curl ilmbase openjpeg opencolorio poppler_qt5 curl ilmbase
qtmultimedia qtx11extras qtmultimedia qtx11extras
python3 python3
]; ] ++ lib.optional (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) vc;
NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ]; NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ];

View file

@ -2,17 +2,22 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2017-01-12"; version = "2018-08-15";
name = "pbrt-v3-${version}"; name = "pbrt-v3-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
rev = "35b6da3429526f2026fe5e5ebaf36d593e113028"; rev = "86b5821308088deea70b207bc8c22219d0103d65";
owner = "mmp"; owner = "mmp";
repo = "pbrt-v3"; repo = "pbrt-v3";
sha256 = "10lvbph13p6ilzqb8sgrvn9gg1zmi8wpy3hhjbqp8dnsa4x0mhj7"; sha256 = "0f7ivsczba6zfk5f0bba1js6dcwf6w6jrkiby147qp1sx5k35cv8";
fetchSubmodules = true; fetchSubmodules = true;
}; };
patches = [
# https://github.com/mmp/pbrt-v3/issues/196
./openexr-cmake-3.12.patch
];
buildInputs = [ git flex bison cmake zlib ]; buildInputs = [ git flex bison cmake zlib ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -0,0 +1,26 @@
diff -ur a/src/ext/openexr/CMakeLists.txt b/src/ext/openexr/CMakeLists.txt
--- a/src/ext/openexr/CMakeLists.txt 1970-01-01 09:00:01.000000000 +0900
+++ b/src/ext/openexr/CMakeLists.txt 2018-08-31 21:44:56.490714484 +0900
@@ -26,22 +26,4 @@
${CMAKE_CURRENT_BINARY_DIR}/IlmBase/config
)
-add_custom_target(CopyIlmBaseLibs
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Half/$<CONFIGURATION>
- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/IlmThread/$<CONFIGURATION>
- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Iex/$<CONFIGURATION>
- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Imath/$<CONFIGURATION>
- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
-)
-add_dependencies(CopyIlmBaseLibs Iex Imath IlmThread Half)
-
add_subdirectory(OpenEXR OpenEXR)
-add_dependencies(b44ExpLogTable CopyIlmBaseLibs)
-add_dependencies(dwaLookups CopyIlmBaseLibs)

View file

@ -0,0 +1,43 @@
{ stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools, qtx11extras, poppler_qt5 }:
stdenv.mkDerivation rec {
name = "qcomicbook-${version}";
version = "0.9.1";
src = fetchFromGitHub {
owner = "stolowski";
repo = "QComicBook";
rev = version;
sha256 = "1b769lp6gfwds4jb2g7ymhdm9c06zg57zpyz3zpdb40w07zfsjzv";
};
nativeBuildInputs = [
cmake pkgconfig
];
buildInputs = [
qtbase qttools qtx11extras poppler_qt5
];
postInstall = ''
substituteInPlace $out/share/applications/*.desktop \
--replace "Exec=qcomicbook" "Exec=$out/bin/qcomicbook"
'';
meta = with stdenv.lib; {
homepage = https://github.com/stolowski/QComicBook;
description = "Comic book reader in Qt5";
license = licenses.gpl2;
longDescription = ''
QComicBook is a viewer for PDF files and comic book archives containing
jpeg/png/xpm/gif/bmp images, which aims at convenience and simplicity.
Features include: automatic unpacking of archive files, full-screen mode, continuous
scrolling mode, double-pages viewing, manga mode, thumbnails view, page scaling,
mouse or keyboard navigation etc.
'';
platforms = platforms.linux;
maintainers = with maintainers; [ greydot ];
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, cmake, libarcus, stb }: { stdenv, fetchFromGitHub, fetchpatch, cmake, libarcus, stb }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "curaengine-${version}"; name = "curaengine-${version}";
@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
sha256 = "083jmhzmb60rmqw0fhbnlxyblzkmpn3k6zc75xq90x5g3h60wib4"; sha256 = "083jmhzmb60rmqw0fhbnlxyblzkmpn3k6zc75xq90x5g3h60wib4";
}; };
patches = [
# Fixed upstream, but not yet released
(fetchpatch {
url = "https://github.com/Ultimaker/CuraEngine/commit/5aad55bf67e52ce5bdb27a3925af8a4cab441b38.patch";
sha256 = "1hxbslzhkvdg8p33mvlbrpw62gwfqpsdbfca6yhdng9hifl86j3f";
})
];
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ libarcus stb ]; buildInputs = [ libarcus stb ];

View file

@ -34,9 +34,10 @@ stdenv.mkDerivation rec {
# RCC: Error in 'Resources/application.qrc': Cannot find file 'translations/gc_fr.qm' # RCC: Error in 'Resources/application.qrc': Cannot find file 'translations/gc_fr.qm'
enableParallelBuilding = false; enableParallelBuilding = false;
meta = { meta = with stdenv.lib; {
description = "Performance software for cyclists, runners and triathletes"; description = "Performance software for cyclists, runners and triathletes";
platforms = stdenv.lib.platforms.linux; platforms = platforms.linux;
maintainers = [ stdenv.lib.maintainers.ocharles ]; maintainers = [ maintainers.ocharles ];
license = licenses.gpl3;
}; };
} }

View file

@ -19,11 +19,11 @@ stdenv.mkDerivation rec {
qmakeFlags = [ "CONFIG+=zim_support" ]; qmakeFlags = [ "CONFIG+=zim_support" ];
meta = { meta = with stdenv.lib; {
homepage = http://goldendict.org/; homepage = http://goldendict.org/;
description = "A feature-rich dictionary lookup program"; description = "A feature-rich dictionary lookup program";
platforms = platforms.linux;
platforms = stdenv.lib.platforms.linux; maintainers = with maintainers; [ gebner astsmtl ];
maintainers = with stdenv.lib.maintainers; [ gebner astsmtl ]; license = licenses.gpl3Plus;
}; };
} }

View file

@ -13,11 +13,11 @@ stdenv.mkDerivation rec {
libgphoto2 fuse glib libtool libgphoto2 fuse glib libtool
]; ];
meta = { meta = with stdenv.lib; {
description = "Fuse FS to mount a digital camera"; description = "Fuse FS to mount a digital camera";
maintainers = [ homepage = http://www.gphoto.org/;
stdenv.lib.maintainers.raskin maintainers = [ maintainers.raskin ];
]; platforms = platforms.linux;
platforms = stdenv.lib.platforms.linux; license = with licenses; [ lgpl2 gpl2 ];
}; };
} }

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gpsprune-${version}"; name = "gpsprune-${version}";
version = "19"; version = "19.1";
src = fetchurl { src = fetchurl {
url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar"; url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
sha256 = "0n08fg55zgpfg1f6lq0n3ngi0n8af1r0rhmbnpik5mjng4m9g3x5"; sha256 = "1drw30z21sdzjc2mcm13yqb5aipvcxmslb2yn6xs3b6b2mx3h2zy";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -14,8 +14,9 @@ stdenv.mkDerivation {
libglade GConf pcre libappindicator-gtk2 libglade GConf pcre libappindicator-gtk2
]; ];
meta = { meta = with stdenv.lib; {
description = "GUI for XNEUR keyboard layout switcher"; description = "GUI for XNEUR keyboard layout switcher";
platforms = stdenv.lib.platforms.linux; platforms = platforms.linux;
license = with licenses; [ gpl2 gpl3 ];
}; };
} }

View file

@ -20,6 +20,7 @@ in mkDerivation rec {
meta = with lib; { meta = with lib; {
homepage = http://www.krename.net; homepage = http://www.krename.net;
description = "A powerful batch renamer for KDE"; description = "A powerful batch renamer for KDE";
license = licenses.gpl2;
inherit (kconfig.meta) platforms; inherit (kconfig.meta) platforms;
maintainers = with maintainers; [ peterhoeg ]; maintainers = with maintainers; [ peterhoeg ];
}; };

View file

@ -22,9 +22,10 @@ buildGoPackage rec {
sha256 = "0zp51g9i8rw6acs4vnrxclbxa5z1v0a0m1xx27szszp0rphcczkx"; sha256 = "0zp51g9i8rw6acs4vnrxclbxa5z1v0a0m1xx27szszp0rphcczkx";
}; };
meta = { meta = with stdenv.lib; {
description = "Simple stock tracker implemented in go"; description = "Simple stock tracker implemented in go";
homepage = https://github.com/mop-tracker/mop; homepage = https://github.com/mop-tracker/mop;
platforms = stdenv.lib.platforms.all; license = licenses.mit;
platforms = platforms.all;
}; };
} }

View file

@ -18,13 +18,13 @@ assert speechdSupport -> speechd != null;
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "navit-${version}"; name = "navit-${version}";
version = "0.5.1"; version = "0.5.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "navit-gps"; owner = "navit-gps";
repo = "navit"; repo = "navit";
rev = "v${version}"; rev = "v${version}";
sha256 = "0jf2gjh2sszr5y5c2wvamfj2qggi2y5k3ynb32pak9vhf5xyl5xj"; sha256 = "071drvqzxpxbfh0lf0lra5a97rv8ny40l96n9xl0dx0s8w30j61i";
}; };
sample_map = fetchurl { sample_map = fetchurl {
@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
# we choose only cmdline and speech-dispatcher speech options. # we choose only cmdline and speech-dispatcher speech options.
# espeak builtins is made for non-cmdline OS as winCE # espeak builtins is made for non-cmdline OS as winCE
cmakeFlags = [ cmakeFlags = [
"-DSAMPLE_MAP=n " "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DSAMPLE_MAP=n " "-DCMAKE_BUILD_TYPE=Release"
"-Dspeech/qt5_espeak=FALSE" "-Dsupport/espeak=FALSE" "-Dspeech/qt5_espeak=FALSE" "-Dsupport/espeak=FALSE"
]; ];
@ -68,10 +68,11 @@ stdenv.mkDerivation rec {
''; '';
# TODO: fix upstream? # TODO: fix upstream?
postFixup = '' libPath = stdenv.lib.makeLibraryPath ([ stdenv.cc.libc ] ++ buildInputs );
for lib in $(find "$out/lib/navit/" -iname "*.so" ); do postFixup =
patchelf --set-rpath ${makeLibraryPath buildInputs} $lib ''
done find "$out/lib" -type f -name "*.so" -exec patchelf --set-rpath $libPath {} \;
wrapProgram $out/bin/navit \ wrapProgram $out/bin/navit \
--prefix PATH : ${makeBinPath ( --prefix PATH : ${makeBinPath (
optional xkbdSupport xkbd optional xkbdSupport xkbd

View file

@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
"$out/lib:${neon}/lib:${libusb.out}/lib:${avahi}/lib:${freeipmi}/lib" "$out/lib:${neon}/lib:${libusb.out}/lib:${avahi}/lib:${freeipmi}/lib"
''; '';
meta = { meta = with stdenv.lib; {
description = "Network UPS Tools"; description = "Network UPS Tools";
longDescription = '' longDescription = ''
Network UPS Tools is a collection of programs which provide a common Network UPS Tools is a collection of programs which provide a common
@ -41,8 +41,9 @@ stdenv.mkDerivation rec {
''; '';
homepage = http://www.networkupstools.org/; homepage = http://www.networkupstools.org/;
repositories.git = https://github.com/networkupstools/nut.git; repositories.git = https://github.com/networkupstools/nut.git;
platforms = with stdenv.lib.platforms; linux; platforms = platforms.linux;
maintainers = with stdenv.lib.maintainers; [ pierron ]; maintainers = [ maintainers.pierron ];
license = with licenses; [ gpl1Plus gpl2Plus gpl3Plus ];
priority = 10; priority = 10;
}; };
} }

View file

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
buildInputs = [ ncurses gsl ] ++ (with ocamlPackages; [ ocaml camlp4 ]); buildInputs = [ ncurses gsl ] ++ (with ocamlPackages; [ ocaml camlp4 ]);
meta = { meta = {
homepage = http://pessimization.com/software/orpie/; homepage = https://github.com/pelzlpj/orpie;
description = "A fullscreen RPN calculator for the console"; description = "A fullscreen RPN calculator for the console";
license = stdenv.lib.licenses.gpl2; license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.all; platforms = stdenv.lib.platforms.all;

View file

@ -31,6 +31,7 @@ pythonPackages.buildPythonApplication rec {
homepage = https://github.com/linuxerwang/pdf-quench; homepage = https://github.com/linuxerwang/pdf-quench;
description = "A visual tool for cropping pdf files"; description = "A visual tool for cropping pdf files";
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.gpl2;
maintainers = with maintainers; [ flokli ]; maintainers = with maintainers; [ flokli ];
}; };
} }

View file

@ -32,7 +32,7 @@ python3Packages.buildPythonApplication rec {
doCheck = false; # no tests doCheck = false; # no tests
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://gna.org/projects/pdfshuffler/; homepage = https://sourceforge.net/p/pdfshuffler/wiki/Home;
description = "Merge or split pdf documents and rotate, crop and rearrange their pages"; description = "Merge or split pdf documents and rotate, crop and rearrange their pages";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ mic92 ]; maintainers = with maintainers; [ mic92 ];

View file

@ -17,7 +17,6 @@ stdenv.mkDerivation {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A viewer for info files"; description = "A viewer for info files";
homepage = https://alioth.debian.org/projects/pinfo/;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.unix; platforms = platforms.unix;
}; };

View file

@ -28,10 +28,11 @@ stdenv.mkDerivation rec {
cp PosteRazor $out/bin cp PosteRazor $out/bin
''; '';
meta = { meta = with stdenv.lib; {
homepage = http://posterazor.sourceforge.net/; homepage = http://posterazor.sourceforge.net/;
description = "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 ]; maintainers = [ maintainers.madjar ];
platforms = stdenv.lib.platforms.linux; license = licenses.gpl3Plus;
platforms = platforms.linux;
}; };
} }

View file

@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
maintainers = with maintainers; [ cstrahan ]; maintainers = with maintainers; [ cstrahan ];
platforms = platforms.darwin; homepage = https://github.com/julienXX/terminal-notifier;
license = licenses.mit;
platforms = platforms.darwin;
}; };
} }

View file

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A command-line time tracker"; description = "A command-line time tracker";
homepage = https://tasktools.org/projects/timewarrior.html; homepage = https://taskwarrior.org/docs/timewarrior;
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ mrVanDalo ]; maintainers = with maintainers; [ mrVanDalo ];
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;

View file

@ -42,7 +42,10 @@ stdenv.mkDerivation rec {
''; '';
homepage = https://wordnet.princeton.edu/; homepage = https://wordnet.princeton.edu/;
license = {
fullName = "WordNet 3.0 license";
url = https://wordnet.princeton.edu/license-and-commercial-use;
};
maintainers = [ ]; maintainers = [ ];
platforms = with stdenv.lib.platforms; linux ++ darwin; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };

View file

@ -23,7 +23,10 @@ stdenv.mkDerivation rec {
addToSearchPath PATH .bin addToSearchPath PATH .bin
''; '';
meta = { meta = with stdenv.lib; {
platforms = stdenv.lib.platforms.linux; description = "Autoclicker application, which enables you to automatically click the left mousebutton";
homepage = http://xautoclick.sourceforge.net;
license = licenses.gpl2;
platforms = platforms.linux;
}; };
} }

View file

@ -13,9 +13,10 @@ stdenv.mkDerivation {
echo $NIX_LDFLAGS echo $NIX_LDFLAGS
''; '';
meta = { meta = with stdenv.lib; {
description = "A viewer for Microsoft HTML Help files"; description = "A viewer for Microsoft HTML Help files";
homepage = http://xchm.sourceforge.net; homepage = http://xchm.sourceforge.net;
platforms = stdenv.lib.platforms.linux; license = licenses.gpl2;
platforms = platforms.linux;
}; };
} }

View file

@ -41,11 +41,11 @@ stdenv.mkDerivation {
--set QT_PLUGIN_PATH ${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix} --set QT_PLUGIN_PATH ${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix}
''; '';
meta = { meta = with stdenv.lib; {
homepage = http://www.foolabs.com/xpdf/; homepage = https://www.xpdfreader.com;
description = "Viewer for Portable Document Format (PDF) files"; description = "Viewer for Portable Document Format (PDF) files";
license = with licenses; [ gpl2 gpl3 ];
platforms = stdenv.lib.platforms.unix; platforms = platforms.unix;
maintainers = [ stdenv.lib.maintainers.peti ]; maintainers = [ maintainers.peti ];
}; };
} }

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