Merge master into staging-next
This commit is contained in:
commit
fd26e7be2a
|
@ -20,7 +20,7 @@ release and `nixos-unstable` for the latest successful build of master:
|
||||||
% git rebase channels/nixos-18.09
|
% git rebase channels/nixos-18.09
|
||||||
```
|
```
|
||||||
|
|
||||||
For pull-requests, please rebase onto nixpkgs `master`.
|
For pull requests, please rebase onto nixpkgs `master`.
|
||||||
|
|
||||||
[NixOS](https://nixos.org/nixos/) Linux distribution source code is located inside
|
[NixOS](https://nixos.org/nixos/) Linux distribution source code is located inside
|
||||||
`nixos/` folder.
|
`nixos/` folder.
|
||||||
|
|
|
@ -132,7 +132,7 @@
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The difference between an a package being unsupported on some system and
|
The difference between a package being unsupported on some system and
|
||||||
being broken is admittedly a bit fuzzy. If a program
|
being broken is admittedly a bit fuzzy. If a program
|
||||||
<emphasis>ought</emphasis> to work on a certain platform, but doesn't, the
|
<emphasis>ought</emphasis> to work on a certain platform, but doesn't, the
|
||||||
platform should be included in <literal>meta.platforms</literal>, but marked
|
platform should be included in <literal>meta.platforms</literal>, but marked
|
||||||
|
@ -175,11 +175,12 @@
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
A more useful example, the following configuration allows only allows
|
For a more useful example, try the following. This configuration
|
||||||
flash player and visual studio code:
|
only allows unfree packages named flash player and visual studio
|
||||||
|
code:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
{
|
{
|
||||||
allowUnfreePredicate = (pkg: elem (builtins.parseDrvName pkg.name).name [ "flashplayer" "vscode" ]);
|
allowUnfreePredicate = (pkg: builtins.elem (builtins.parseDrvName pkg.name).name [ "flashplayer" "vscode" ]);
|
||||||
}
|
}
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
@ -286,8 +287,8 @@
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
You can define a function called <varname>packageOverrides</varname> in your
|
You can define a function called <varname>packageOverrides</varname> in your
|
||||||
local <filename>~/.config/nixpkgs/config.nix</filename> to override nix
|
local <filename>~/.config/nixpkgs/config.nix</filename> to override Nix
|
||||||
packages. It must be a function that takes pkgs as an argument and return
|
packages. It must be a function that takes pkgs as an argument and returns a
|
||||||
modified set of packages.
|
modified set of packages.
|
||||||
<programlisting>
|
<programlisting>
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,17 +6,17 @@
|
||||||
<title>Introduction</title>
|
<title>Introduction</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
"Cross-compilation" means compiling a program on one machine for another
|
"Cross-compilation" means compiling a program on one machine for another type
|
||||||
type of machine. For example, a typical use of cross compilation is to
|
of machine. For example, a typical use of cross-compilation is to compile
|
||||||
compile programs for embedded devices. These devices often don't have the
|
programs for embedded devices. These devices often don't have the computing
|
||||||
computing power and memory to compile their own programs. One might think
|
power and memory to compile their own programs. One might think that
|
||||||
that cross-compilation is a fairly niche concern, but there are advantages
|
cross-compilation is a fairly niche concern. However, there are significant
|
||||||
to being rigorous about distinguishing build-time vs run-time environments
|
advantages to rigorously distinguishing between build-time and run-time
|
||||||
even when one is developing and deploying on the same machine. Nixpkgs is
|
environments! This applies even when one is developing and deploying on the
|
||||||
increasingly adopting the opinion that packages should be written with
|
same machine. Nixpkgs is increasingly adopting the opinion that packages
|
||||||
cross-compilation in mind, and nixpkgs should evaluate in a similar way (by
|
should be written with cross-compilation in mind, and nixpkgs should evaluate
|
||||||
minimizing cross-compilation-specific special cases) whether or not one is
|
in a similar way (by minimizing cross-compilation-specific special cases)
|
||||||
cross-compiling.
|
whether or not one is cross-compiling.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -34,15 +34,15 @@
|
||||||
<title>Platform parameters</title>
|
<title>Platform parameters</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Nixpkgs follows the
|
Nixpkgs follows the <link
|
||||||
<link xlink:href="https://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html">common
|
xlink:href="https://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html">conventions
|
||||||
historical convention of GNU autoconf</link> of distinguishing between 3
|
of GNU autoconf</link>. We distinguish between 3 types of platforms when
|
||||||
types of platform: <wordasword>build</wordasword>,
|
building a derivation: <wordasword>build</wordasword>,
|
||||||
<wordasword>host</wordasword>, and <wordasword>target</wordasword>. In
|
<wordasword>host</wordasword>, and <wordasword>target</wordasword>. In
|
||||||
summary, <wordasword>build</wordasword> is the platform on which a package
|
summary, <wordasword>build</wordasword> is the platform on which a package
|
||||||
is being built, <wordasword>host</wordasword> is the platform on which it
|
is being built, <wordasword>host</wordasword> is the platform on which it
|
||||||
is to run. The third attribute, <wordasword>target</wordasword>, is
|
will run. The third attribute, <wordasword>target</wordasword>, is relevant
|
||||||
relevant only for certain specific compilers and build tools.
|
only for certain specific compilers and build tools.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -64,7 +64,7 @@
|
||||||
<para>
|
<para>
|
||||||
The "build platform" is the platform on which a package is built. Once
|
The "build platform" is the platform on which a package is built. Once
|
||||||
someone has a built package, or pre-built binary package, the build
|
someone has a built package, or pre-built binary package, the build
|
||||||
platform should not matter and be safe to ignore.
|
platform should not matter and can be ignored.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -94,11 +94,11 @@
|
||||||
<para>
|
<para>
|
||||||
The build process of certain compilers is written in such a way that the
|
The build process of certain compilers is written in such a way that the
|
||||||
compiler resulting from a single build can itself only produce binaries
|
compiler resulting from a single build can itself only produce binaries
|
||||||
for a single platform. The task specifying this single "target platform"
|
for a single platform. The task of specifying this single "target
|
||||||
is thus pushed to build time of the compiler. The root cause of this
|
platform" is thus pushed to build time of the compiler. The root cause of
|
||||||
mistake is often that the compiler (which will be run on the host) and
|
this that the compiler (which will be run on the host) and the standard
|
||||||
the the standard library/runtime (which will be run on the target) are
|
library/runtime (which will be run on the target) are built by a single
|
||||||
built by a single build process.
|
build process.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
There is no fundamental need to think about a single target ahead of
|
There is no fundamental need to think about a single target ahead of
|
||||||
|
@ -135,8 +135,10 @@
|
||||||
<para>
|
<para>
|
||||||
This is a two-component shorthand for the platform. Examples of this
|
This is a two-component shorthand for the platform. Examples of this
|
||||||
would be "x86_64-darwin" and "i686-linux"; see
|
would be "x86_64-darwin" and "i686-linux"; see
|
||||||
<literal>lib.systems.doubles</literal> for more. This format isn't very
|
<literal>lib.systems.doubles</literal> for more. The first component
|
||||||
standard, but has built-in support in Nix, such as the
|
corresponds to the CPU architecture of the platform and the second to the
|
||||||
|
operating system of the platform (<literal>[cpu]-[os]</literal>). This
|
||||||
|
format has built-in support in Nix, such as the
|
||||||
<varname>builtins.currentSystem</varname> impure string.
|
<varname>builtins.currentSystem</varname> impure string.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -147,12 +149,13 @@
|
||||||
</term>
|
</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
This is a 3- or 4- component shorthand for the platform. Examples of
|
This is a 3- or 4- component shorthand for the platform. Examples of this
|
||||||
this would be "x86_64-unknown-linux-gnu" and "aarch64-apple-darwin14".
|
would be <literal>x86_64-unknown-linux-gnu</literal> and
|
||||||
This is a standard format called the "LLVM target triple", as they are
|
<literal>aarch64-apple-darwin14</literal>. This is a standard format
|
||||||
pioneered by LLVM and traditionally just used for the
|
called the "LLVM target triple", as they are pioneered by LLVM. In the
|
||||||
<varname>targetPlatform</varname>. This format is strictly more
|
4-part form, this corresponds to
|
||||||
informative than the "Nix host double", as the previous format could
|
<literal>[cpu]-[vendor]-[os]-[abi]</literal>. This format is strictly
|
||||||
|
more informative than the "Nix host double", as the previous format could
|
||||||
analogously be termed. This needs a better name than
|
analogously be termed. This needs a better name than
|
||||||
<varname>config</varname>!
|
<varname>config</varname>!
|
||||||
</para>
|
</para>
|
||||||
|
@ -164,12 +167,11 @@
|
||||||
</term>
|
</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
This is a nix representation of a parsed LLVM target triple with
|
This is a Nix representation of a parsed LLVM target triple
|
||||||
white-listed components. This can be specified directly, or actually
|
with white-listed components. This can be specified directly,
|
||||||
parsed from the <varname>config</varname>. [Technically, only one need
|
or actually parsed from the <varname>config</varname>. See
|
||||||
be specified and the others can be inferred, though the precision of
|
<literal>lib.systems.parse</literal> for the exact
|
||||||
inference may not be very good.] See
|
representation.
|
||||||
<literal>lib.systems.parse</literal> for the exact representation.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -193,7 +195,7 @@
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
These predicates are defined in <literal>lib.systems.inspect</literal>,
|
These predicates are defined in <literal>lib.systems.inspect</literal>,
|
||||||
and slapped on every platform. They are superior to the ones in
|
and slapped onto every platform. They are superior to the ones in
|
||||||
<varname>stdenv</varname> as they force the user to be explicit about
|
<varname>stdenv</varname> as they force the user to be explicit about
|
||||||
which platform they are inspecting. Please use these instead of those.
|
which platform they are inspecting. Please use these instead of those.
|
||||||
</para>
|
</para>
|
||||||
|
@ -221,7 +223,7 @@
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
In this section we explore the relationship between both runtime and
|
In this section we explore the relationship between both runtime and
|
||||||
buildtime dependencies and the 3 Autoconf platforms.
|
build-time dependencies and the 3 Autoconf platforms.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -249,17 +251,17 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Some examples will probably make this clearer. If a package is being built
|
Some examples will make this clearer. If a package is being built with a
|
||||||
with a <literal>(build, host, target)</literal> platform triple of
|
<literal>(build, host, target)</literal> platform triple of <literal>(foo,
|
||||||
<literal>(foo, bar, bar)</literal>, then its build-time dependencies would
|
bar, bar)</literal>, then its build-time dependencies would have a triple of
|
||||||
have a triple of <literal>(foo, foo, bar)</literal>, and <emphasis>those
|
<literal>(foo, foo, bar)</literal>, and <emphasis>those packages'</emphasis>
|
||||||
packages'</emphasis> build-time dependencies would have triple of
|
build-time dependencies would have a triple of <literal>(foo, foo,
|
||||||
<literal>(foo, foo, foo)</literal>. In other words, it should take two
|
foo)</literal>. In other words, it should take two "rounds" of following
|
||||||
"rounds" of following build-time dependency edges before one reaches a
|
build-time dependency edges before one reaches a fixed point where, by the
|
||||||
fixed point where, by the sliding window principle, the platform triple no
|
sliding window principle, the platform triple no longer changes. Indeed,
|
||||||
longer changes. Indeed, this happens with cross compilation, where only
|
this happens with cross-compilation, where only rounds of native
|
||||||
rounds of native dependencies starting with the second necessarily coincide
|
dependencies starting with the second necessarily coincide with native
|
||||||
with native packages.
|
packages.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
|
@ -271,23 +273,23 @@
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
How does this work in practice? Nixpkgs is now structured so that
|
How does this work in practice? Nixpkgs is now structured so that build-time
|
||||||
build-time dependencies are taken from <varname>buildPackages</varname>,
|
dependencies are taken from <varname>buildPackages</varname>, whereas
|
||||||
whereas run-time dependencies are taken from the top level attribute set.
|
run-time dependencies are taken from the top level attribute set. For
|
||||||
For example, <varname>buildPackages.gcc</varname> should be used at build
|
example, <varname>buildPackages.gcc</varname> should be used at build-time,
|
||||||
time, while <varname>gcc</varname> should be used at run time. Now, for
|
while <varname>gcc</varname> should be used at run-time. Now, for most of
|
||||||
most of Nixpkgs's history, there was no <varname>buildPackages</varname>,
|
Nixpkgs's history, there was no <varname>buildPackages</varname>, and most
|
||||||
and most packages have not been refactored to use it explicitly. Instead,
|
packages have not been refactored to use it explicitly. Instead, one can use
|
||||||
one can use the six (<emphasis>gasp</emphasis>) attributes used for
|
the six (<emphasis>gasp</emphasis>) attributes used for specifying
|
||||||
specifying dependencies as documented in
|
dependencies as documented in <xref linkend="ssec-stdenv-dependencies"/>. We
|
||||||
<xref linkend="ssec-stdenv-dependencies"/>. We "splice" together the
|
"splice" together the run-time and build-time package sets with
|
||||||
run-time and build-time package sets with <varname>callPackage</varname>,
|
<varname>callPackage</varname>, and then <varname>mkDerivation</varname> for
|
||||||
and then <varname>mkDerivation</varname> for each of four attributes pulls
|
each of four attributes pulls the right derivation out. This splicing can be
|
||||||
the right derivation out. This splicing can be skipped when not cross
|
skipped when not cross-compiling as the package sets are the same, but is a
|
||||||
compiling as the package sets are the same, but is a bit slow for cross
|
bit slow for cross-compiling. Because of this, a best-of-both-worlds
|
||||||
compiling. Because of this, a best-of-both-worlds solution is in the works
|
solution is in the works with no splicing or explicit access of
|
||||||
with no splicing or explicit access of <varname>buildPackages</varname>
|
<varname>buildPackages</varname> needed. For now, feel free to use either
|
||||||
needed. For now, feel free to use either method.
|
method.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
|
@ -305,11 +307,11 @@
|
||||||
<title>Cross packaging cookbook</title>
|
<title>Cross packaging cookbook</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Some frequently problems when packaging for cross compilation are good to
|
Some frequently encountered problems when packaging for cross-compilation
|
||||||
just spell and answer. Ideally the information above is exhaustive, so this
|
should be answered here. Ideally, the information above is exhaustive, so
|
||||||
section cannot provide any new information, but its ludicrous and cruel to
|
this section cannot provide any new information, but it is ludicrous and
|
||||||
expect everyone to spend effort working through the interaction of many
|
cruel to expect everyone to spend effort working through the interaction of
|
||||||
features just to figure out the same answer to the same common problem.
|
many features just to figure out the same answer to the same common problem.
|
||||||
Feel free to add to this list!
|
Feel free to add to this list!
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -364,17 +366,9 @@
|
||||||
<section xml:id="sec-cross-usage">
|
<section xml:id="sec-cross-usage">
|
||||||
<title>Cross-building packages</title>
|
<title>Cross-building packages</title>
|
||||||
|
|
||||||
<note>
|
|
||||||
<para>
|
|
||||||
More information needs to moved from the old wiki, especially
|
|
||||||
<link xlink:href="https://nixos.org/wiki/CrossCompiling" />, for this
|
|
||||||
section.
|
|
||||||
</para>
|
|
||||||
</note>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Nixpkgs can be instantiated with <varname>localSystem</varname> alone, in
|
Nixpkgs can be instantiated with <varname>localSystem</varname> alone, in
|
||||||
which case there is no cross compiling and everything is built by and for
|
which case there is no cross-compiling and everything is built by and for
|
||||||
that system, or also with <varname>crossSystem</varname>, in which case
|
that system, or also with <varname>crossSystem</varname>, in which case
|
||||||
packages run on the latter, but all building happens on the former. Both
|
packages run on the latter, but all building happens on the former. Both
|
||||||
parameters take the same schema as the 3 (build, host, and target) platforms
|
parameters take the same schema as the 3 (build, host, and target) platforms
|
||||||
|
@ -440,15 +434,14 @@ nix-build <nixpkgs> --arg crossSystem.config '<arch>-<os>-<
|
||||||
build plan or package set. A simple "build vs deploy" dichotomy is adequate:
|
build plan or package set. A simple "build vs deploy" dichotomy is adequate:
|
||||||
the sliding window principle described in the previous section shows how to
|
the sliding window principle described in the previous section shows how to
|
||||||
interpolate between the these two "end points" to get the 3 platform triple
|
interpolate between the these two "end points" to get the 3 platform triple
|
||||||
for each bootstrapping stage. That means for any package a given package
|
for each bootstrapping stage. That means for any package a given package set,
|
||||||
set, even those not bound on the top level but only reachable via
|
even those not bound on the top level but only reachable via dependencies or
|
||||||
dependencies or <varname>buildPackages</varname>, the three platforms will
|
<varname>buildPackages</varname>, the three platforms will be defined as one
|
||||||
be defined as one of <varname>localSystem</varname> or
|
of <varname>localSystem</varname> or <varname>crossSystem</varname>, with the
|
||||||
<varname>crossSystem</varname>, with the former replacing the latter as one
|
former replacing the latter as one traverses build-time dependencies. A last
|
||||||
traverses build-time dependencies. A last simple difference then is
|
simple difference is that <varname>crossSystem</varname> should be null when
|
||||||
<varname>crossSystem</varname> should be null when one doesn't want to
|
one doesn't want to cross-compile, while the <varname>*Platform</varname>s
|
||||||
cross-compile, while the <varname>*Platform</varname>s are always non-null.
|
are always non-null. <varname>localSystem</varname> is always non-null.
|
||||||
<varname>localSystem</varname> is always non-null.
|
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
<!--============================================================-->
|
<!--============================================================-->
|
||||||
|
@ -461,14 +454,14 @@ nix-build <nixpkgs> --arg crossSystem.config '<arch>-<os>-<
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>
|
<para>
|
||||||
If one explores nixpkgs, they will see derivations with names like
|
If one explores Nixpkgs, they will see derivations with names like
|
||||||
<literal>gccCross</literal>. Such <literal>*Cross</literal> derivations is
|
<literal>gccCross</literal>. Such <literal>*Cross</literal> derivations is a
|
||||||
a holdover from before we properly distinguished between the host and
|
holdover from before we properly distinguished between the host and target
|
||||||
target platforms —the derivation with "Cross" in the name covered the
|
platforms—the derivation with "Cross" in the name covered the <literal>build
|
||||||
<literal>build = host != target</literal> case, while the other covered the
|
= host != target</literal> case, while the other covered the <literal>host =
|
||||||
<literal>host = target</literal>, with build platform the same or not based
|
target</literal>, with build platform the same or not based on whether one
|
||||||
on whether one was using its <literal>.nativeDrv</literal> or
|
was using its <literal>.nativeDrv</literal> or <literal>.crossDrv</literal>.
|
||||||
<literal>.crossDrv</literal>. This ugliness will disappear soon.
|
This ugliness will disappear soon.
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<para>
|
<para>
|
||||||
The Nix language allows a derivation to produce multiple outputs, which is
|
The Nix language allows a derivation to produce multiple outputs, which is
|
||||||
similar to what is utilized by other Linux distribution packaging systems.
|
similar to what is utilized by other Linux distribution packaging systems.
|
||||||
The outputs reside in separate nix store paths, so they can be mostly
|
The outputs reside in separate Nix store paths, so they can be mostly
|
||||||
handled independently of each other, including passing to build inputs,
|
handled independently of each other, including passing to build inputs,
|
||||||
garbage collection or binary substitution. The exception is that building
|
garbage collection or binary substitution. The exception is that building
|
||||||
from source always produces all the outputs.
|
from source always produces all the outputs.
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
xml:id="chap-overlays">
|
xml:id="chap-overlays">
|
||||||
<title>Overlays</title>
|
<title>Overlays</title>
|
||||||
<para>
|
<para>
|
||||||
This chapter describes how to extend and change Nixpkgs packages using
|
This chapter describes how to extend and change Nixpkgs using overlays.
|
||||||
overlays. Overlays are used to add layers in the fix-point used by Nixpkgs to
|
Overlays are used to add layers in the fixed-point used by Nixpkgs to compose
|
||||||
compose the set of all packages.
|
the set of all packages.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Nixpkgs can be configured with a list of overlays, which are applied in
|
Nixpkgs can be configured with a list of overlays, which are applied in
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
<para>
|
<para>
|
||||||
First, if an
|
First, if an
|
||||||
<link xlink:href="#sec-overlays-argument"><varname>overlays</varname>
|
<link xlink:href="#sec-overlays-argument"><varname>overlays</varname>
|
||||||
argument</link> to the nixpkgs function itself is given, then that is
|
argument</link> to the Nixpkgs function itself is given, then that is
|
||||||
used and no path lookup will be performed.
|
used and no path lookup will be performed.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
|
@ -205,7 +205,7 @@ $ cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Nixpkgs provides a number of packages that will install Eclipse in its
|
Nixpkgs provides a number of packages that will install Eclipse in its
|
||||||
various forms, these range from the bare-bones Eclipse Platform to the more
|
various forms. These range from the bare-bones Eclipse Platform to the more
|
||||||
fully featured Eclipse SDK or Scala-IDE packages and multiple version are
|
fully featured Eclipse SDK or Scala-IDE packages and multiple version are
|
||||||
often available. It is possible to list available Eclipse packages by
|
often available. It is possible to list available Eclipse packages by
|
||||||
issuing the command:
|
issuing the command:
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
<title>Darwin (macOS)</title>
|
<title>Darwin (macOS)</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Some common issues when packaging software for darwin:
|
Some common issues when packaging software for Darwin:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The darwin <literal>stdenv</literal> uses clang instead of gcc. When
|
The Darwin <literal>stdenv</literal> uses clang instead of gcc. When
|
||||||
referring to the compiler <varname>$CC</varname> or <command>cc</command>
|
referring to the compiler <varname>$CC</varname> or <command>cc</command>
|
||||||
will work in both cases. Some builds hardcode gcc/g++ in their build
|
will work in both cases. Some builds hardcode gcc/g++ in their build
|
||||||
scripts, that can usually be fixed with using something like
|
scripts, that can usually be fixed with using something like
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
On darwin libraries are linked using absolute paths, libraries are
|
On Darwin, libraries are linked using absolute paths, libraries are
|
||||||
resolved by their <literal>install_name</literal> at link time. Sometimes
|
resolved by their <literal>install_name</literal> at link time. Sometimes
|
||||||
packages won't set this correctly causing the library lookups to fail at
|
packages won't set this correctly causing the library lookups to fail at
|
||||||
runtime. This can be fixed by adding extra linker flags or by running
|
runtime. This can be fixed by adding extra linker flags or by running
|
||||||
|
@ -96,8 +96,8 @@
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The package <literal>xcbuild</literal> can be used to build projects that
|
The package <literal>xcbuild</literal> can be used to build projects that
|
||||||
really depend on Xcode, however projects that build some kind of graphical
|
really depend on Xcode. However, this replacement is not 100%
|
||||||
interface won't work without using Xcode in an impure way.
|
compatible with Xcode and can occasionally cause issues.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
|
@ -17,22 +17,20 @@
|
||||||
</para>
|
</para>
|
||||||
</warning>
|
</warning>
|
||||||
<para>
|
<para>
|
||||||
The nixpkgs project receives a fairly high number of contributions via GitHub
|
The Nixpkgs project receives a fairly high number of contributions via GitHub
|
||||||
pull-requests. Reviewing and approving these is an important task and a way
|
pull requests. Reviewing and approving these is an important task and a way
|
||||||
to contribute to the project.
|
to contribute to the project.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The high change rate of nixpkgs makes any pull request that remains open for
|
The high change rate of Nixpkgs makes any pull request that remains open for
|
||||||
too long subject to conflicts that will require extra work from the submitter
|
too long subject to conflicts that will require extra work from the submitter
|
||||||
or the merger. Reviewing pull requests in a timely manner and being
|
or the merger. Reviewing pull requests in a timely manner and being responsive
|
||||||
responsive to the comments is the key to avoid these. GitHub provides sort
|
to the comments is the key to avoid this issue. GitHub provides sort filters
|
||||||
filters that can be used to see the
|
that can be used to see the <link
|
||||||
<link
|
xlink:href="https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc">most
|
||||||
xlink:href="https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc">most
|
recently</link> and the <link
|
||||||
recently</link> and the
|
xlink:href="https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc">least
|
||||||
<link
|
recently</link> updated pull requests. We highly encourage looking at
|
||||||
xlink:href="https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc">least
|
|
||||||
recently</link> updated pull-requests. We highly encourage looking at
|
|
||||||
<link xlink:href="https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+review%3Anone+status%3Asuccess+-label%3A%222.status%3A+work-in-progress%22+no%3Aproject+no%3Aassignee+no%3Amilestone">
|
<link xlink:href="https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+review%3Anone+status%3Asuccess+-label%3A%222.status%3A+work-in-progress%22+no%3Aproject+no%3Aassignee+no%3Amilestone">
|
||||||
this list of ready to merge, unreviewed pull requests</link>.
|
this list of ready to merge, unreviewed pull requests</link>.
|
||||||
</para>
|
</para>
|
||||||
|
@ -43,12 +41,12 @@
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
GitHub provides reactions as a simple and quick way to provide feedback to
|
GitHub provides reactions as a simple and quick way to provide feedback to
|
||||||
pull-requests or any comments. The thumb-down reaction should be used with
|
pull requests or any comments. The thumb-down reaction should be used with
|
||||||
care and if possible accompanied with some explanation so the submitter has
|
care and if possible accompanied with some explanation so the submitter has
|
||||||
directions to improve their contribution.
|
directions to improve their contribution.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Pull-request reviews should include a list of what has been reviewed in a
|
pull request reviews should include a list of what has been reviewed in a
|
||||||
comment, so other reviewers and mergers can know the state of the review.
|
comment, so other reviewers and mergers can know the state of the review.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
@ -60,8 +58,8 @@
|
||||||
<title>Package updates</title>
|
<title>Package updates</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
A package update is the most trivial and common type of pull-request. These
|
A package update is the most trivial and common type of pull request. These
|
||||||
pull-requests mainly consist of updating the version part of the package
|
pull requests mainly consist of updating the version part of the package
|
||||||
name and the source hash.
|
name and the source hash.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -77,7 +75,7 @@
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add labels to the pull-request. (Requires commit rights)
|
Add labels to the pull request. (Requires commit rights)
|
||||||
</para>
|
</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -144,8 +142,8 @@
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Pull-requests are often targeted to the master or staging branch, and
|
pull requests are often targeted to the master or staging branch, and
|
||||||
building the pull-request locally when it is submitted can trigger many
|
building the pull request locally when it is submitted can trigger many
|
||||||
source builds.
|
source builds.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
@ -174,14 +172,14 @@ $ git rebase --onto nixos-unstable BASEBRANCH FETCH_HEAD <co
|
||||||
</callout>
|
</callout>
|
||||||
<callout arearefs='reviewing-rebase-3'>
|
<callout arearefs='reviewing-rebase-3'>
|
||||||
<para>
|
<para>
|
||||||
Fetching the pull-request changes, <varname>PRNUMBER</varname> is the
|
Fetching the pull request changes, <varname>PRNUMBER</varname> is the
|
||||||
number at the end of the pull-request title and
|
number at the end of the pull request title and
|
||||||
<varname>BASEBRANCH</varname> the base branch of the pull-request.
|
<varname>BASEBRANCH</varname> the base branch of the pull request.
|
||||||
</para>
|
</para>
|
||||||
</callout>
|
</callout>
|
||||||
<callout arearefs='reviewing-rebase-4'>
|
<callout arearefs='reviewing-rebase-4'>
|
||||||
<para>
|
<para>
|
||||||
Rebasing the pull-request changes to the nixos-unstable branch.
|
Rebasing the pull request changes to the nixos-unstable branch.
|
||||||
</para>
|
</para>
|
||||||
</callout>
|
</callout>
|
||||||
</calloutlist>
|
</calloutlist>
|
||||||
|
@ -190,10 +188,10 @@ $ git rebase --onto nixos-unstable BASEBRANCH FETCH_HEAD <co
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <link xlink:href="https://github.com/madjar/nox">nox</link> tool can
|
The <link xlink:href="https://github.com/madjar/nox">nox</link> tool can
|
||||||
be used to review a pull-request content in a single command. It doesn't
|
be used to review a pull request content in a single command. It doesn't
|
||||||
rebase on a channel branch so it might trigger multiple source builds.
|
rebase on a channel branch so it might trigger multiple source builds.
|
||||||
<varname>PRNUMBER</varname> should be replaced by the number at the end
|
<varname>PRNUMBER</varname> should be replaced by the number at the end
|
||||||
of the pull-request title.
|
of the pull request title.
|
||||||
</para>
|
</para>
|
||||||
<screen>
|
<screen>
|
||||||
$ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
|
$ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
|
||||||
|
@ -230,7 +228,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
|
||||||
<title>New packages</title>
|
<title>New packages</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
New packages are a common type of pull-requests. These pull requests
|
New packages are a common type of pull requests. These pull requests
|
||||||
consists in adding a new nix-expression for a package.
|
consists in adding a new nix-expression for a package.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -241,7 +239,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add labels to the pull-request. (Requires commit rights)
|
Add labels to the pull request. (Requires commit rights)
|
||||||
</para>
|
</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -279,7 +277,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
A maintainer must be set, this can be the package submitter or a
|
A maintainer must be set. This can be the package submitter or a
|
||||||
community member that accepts to take maintainership of the package.
|
community member that accepts to take maintainership of the package.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -361,7 +359,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add labels to the pull-request. (Requires commit rights)
|
Add labels to the pull request. (Requires commit rights)
|
||||||
</para>
|
</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -474,7 +472,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add labels to the pull-request. (Requires commit rights)
|
Add labels to the pull request. (Requires commit rights)
|
||||||
</para>
|
</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -576,7 +574,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
|
||||||
like to be a long-term reviewer for related submissions, please contact the
|
like to be a long-term reviewer for related submissions, please contact the
|
||||||
current reviewers for that topic. They will give you information about the
|
current reviewers for that topic. They will give you information about the
|
||||||
reviewing process. The main reviewers for a topic can be hard to find as
|
reviewing process. The main reviewers for a topic can be hard to find as
|
||||||
there is no list, but checking past pull-requests to see who reviewed or
|
there is no list, but checking past pull requests to see who reviewed or
|
||||||
git-blaming the code to see who committed to that topic can give some hints.
|
git-blaming the code to see who committed to that topic can give some hints.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -586,7 +584,7 @@ $ nix-shell -p nox --run "nox-review -k pr PRNUMBER"
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="reviewing-contributions--merging-pull-requests">
|
<section xml:id="reviewing-contributions--merging-pull-requests">
|
||||||
<title>Merging pull-requests</title>
|
<title>Merging pull requests</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
It is possible for community members that have enough knowledge and
|
It is possible for community members that have enough knowledge and
|
||||||
|
|
514
doc/stdenv.xml
514
doc/stdenv.xml
|
@ -228,18 +228,19 @@ genericBuild
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The extension of <envar>PATH</envar> with dependencies, alluded to above,
|
The extension of <envar>PATH</envar> with dependencies, alluded to
|
||||||
proceeds according to the relative platforms alone. The process is carried
|
above, proceeds according to the relative platforms alone. The
|
||||||
out only for dependencies whose host platform matches the new derivation's
|
process is carried out only for dependencies whose host platform
|
||||||
build platform–i.e. which run on the platform where the new derivation
|
matches the new derivation's build platform i.e. dependencies which
|
||||||
will be built.
|
run on the platform where the new derivation will be built.
|
||||||
<footnote xml:id="footnote-stdenv-native-dependencies-in-path">
|
<footnote xml:id="footnote-stdenv-native-dependencies-in-path">
|
||||||
<para>
|
<para>
|
||||||
Currently, that means for native builds all dependencies are put on the
|
Currently, this means for native builds all dependencies are put
|
||||||
<envar>PATH</envar>. But in the future that may not be the case for sake
|
on the <envar>PATH</envar>. But in the future that may not be the
|
||||||
of matching cross: the platforms would be assumed to be unique for native
|
case for sake of matching cross: the platforms would be assumed
|
||||||
and cross builds alike, so only the <varname>depsBuild*</varname> and
|
to be unique for native and cross builds alike, so only the
|
||||||
<varname>nativeBuildDependencies</varname> dependencies would affect the
|
<varname>depsBuild*</varname> and
|
||||||
|
<varname>nativeBuildInputs</varname> would be added to the
|
||||||
<envar>PATH</envar>.
|
<envar>PATH</envar>.
|
||||||
</para>
|
</para>
|
||||||
</footnote>
|
</footnote>
|
||||||
|
@ -251,28 +252,27 @@ genericBuild
|
||||||
<para>
|
<para>
|
||||||
The dependency is propagated when it forces some of its other-transitive
|
The dependency is propagated when it forces some of its other-transitive
|
||||||
(non-immediate) downstream dependencies to also take it on as an immediate
|
(non-immediate) downstream dependencies to also take it on as an immediate
|
||||||
dependency. Nix itself already takes a package's transitive dependencies
|
dependency. Nix itself already takes a package's transitive dependencies into
|
||||||
into account, but this propagation ensures nixpkgs-specific infrastructure
|
account, but this propagation ensures nixpkgs-specific infrastructure like
|
||||||
like setup hooks (mentioned above) also are run as if the propagated
|
setup hooks (mentioned above) also are run as if the propagated dependency.
|
||||||
dependency.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
It is important to note dependencies are not necessary propagated as the
|
It is important to note that dependencies are not necessarily propagated as
|
||||||
same sort of dependency that they were before, but rather as the
|
the same sort of dependency that they were before, but rather as the
|
||||||
corresponding sort so that the platform rules still line up. The exact rules
|
corresponding sort so that the platform rules still line up. The exact rules
|
||||||
for dependency propagation can be given by assigning each sort of dependency
|
for dependency propagation can be given by assigning to each dependency two
|
||||||
two integers based one how it's host and target platforms are offset from
|
integers based one how its host and target platforms are offset from the
|
||||||
the depending derivation's platforms. Those offsets are given are given
|
depending derivation's platforms. Those offsets are given below in the
|
||||||
below in the descriptions of each dependency list attribute.
|
descriptions of each dependency list attribute. Algorithmically, we traverse
|
||||||
Algorithmically, we traverse propagated inputs, accumulating every
|
propagated inputs, accumulating every propagated dependency's propagated
|
||||||
propagated dep's propagated deps and adjusting them to account for the
|
dependencies and adjusting them to account for the "shift in perspective"
|
||||||
"shift in perspective" described by the current dep's platform offsets. This
|
described by the current dependency's platform offsets. This results in sort
|
||||||
results in sort a transitive closure of the dependency relation, with the
|
a transitive closure of the dependency relation, with the offsets being
|
||||||
offsets being approximately summed when two dependency links are combined.
|
approximately summed when two dependency links are combined. We also prune
|
||||||
We also prune transitive deps whose combined offsets go out-of-bounds, which
|
transitive dependencies whose combined offsets go out-of-bounds, which can be
|
||||||
can be viewed as a filter over that transitive closure removing dependencies
|
viewed as a filter over that transitive closure removing dependencies that
|
||||||
that are blatantly absurd.
|
are blatantly absurd.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -287,8 +287,8 @@ genericBuild
|
||||||
propagation logic.
|
propagation logic.
|
||||||
</para>
|
</para>
|
||||||
</footnote>
|
</footnote>
|
||||||
They're confusing in very different ways so...hopefully if something doesn't
|
They're confusing in very different ways so... hopefully if something doesn't
|
||||||
make sense in one presentation, it does in the other!
|
make sense in one presentation, it will in the other!
|
||||||
<programlisting>
|
<programlisting>
|
||||||
let mapOffset(h, t, i) = i + (if i <= 0 then h else t - 1)
|
let mapOffset(h, t, i) = i + (if i <= 0 then h else t - 1)
|
||||||
|
|
||||||
|
@ -307,13 +307,13 @@ dep(h0, _, A, B)
|
||||||
propagated-dep(h1, t1, B, C)
|
propagated-dep(h1, t1, B, C)
|
||||||
h0 + h1 in {-1, 0, 1}
|
h0 + h1 in {-1, 0, 1}
|
||||||
h0 + t1 in {-1, 0, -1}
|
h0 + t1 in {-1, 0, -1}
|
||||||
-------------------------------------- Take immediate deps' propagated deps
|
----------------------------- Take immediate dependencies' propagated dependencies
|
||||||
propagated-dep(mapOffset(h0, t0, h1),
|
propagated-dep(mapOffset(h0, t0, h1),
|
||||||
mapOffset(h0, t0, t1),
|
mapOffset(h0, t0, t1),
|
||||||
A, C)</programlisting>
|
A, C)</programlisting>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
propagated-dep(h, t, A, B)
|
propagated-dep(h, t, A, B)
|
||||||
-------------------------------------- Propagated deps count as deps
|
----------------------------- Propagated dependencies count as dependencies
|
||||||
dep(h, t, A, B)</programlisting>
|
dep(h, t, A, B)</programlisting>
|
||||||
Some explanation of this monstrosity is in order. In the common case, the
|
Some explanation of this monstrosity is in order. In the common case, the
|
||||||
target offset of a dependency is the successor to the target offset:
|
target offset of a dependency is the successor to the target offset:
|
||||||
|
@ -324,31 +324,31 @@ let f(h, h + 1, i) = i + (if i <= 0 then h else (h + 1) - 1)
|
||||||
let f(h, h + 1, i) = i + (if i <= 0 then h else h)
|
let f(h, h + 1, i) = i + (if i <= 0 then h else h)
|
||||||
let f(h, h + 1, i) = i + h
|
let f(h, h + 1, i) = i + h
|
||||||
</programlisting>
|
</programlisting>
|
||||||
This is where the "sum-like" comes from above: We can just sum all the host
|
This is where "sum-like" comes in from above: We can just sum all of the host
|
||||||
offset to get the host offset of the transitive dependency. The target
|
offsets to get the host offset of the transitive dependency. The target
|
||||||
offset is the transitive dep is simply the host offset + 1, just as it was
|
offset is the transitive dependency is simply the host offset + 1, just as it
|
||||||
with the dependencies composed to make this transitive one; it can be
|
was with the dependencies composed to make this transitive one; it can be
|
||||||
ignored as it doesn't add any new information.
|
ignored as it doesn't add any new information.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Because of the bounds checks, the uncommon cases are <literal>h =
|
Because of the bounds checks, the uncommon cases are <literal>h = t</literal>
|
||||||
t</literal> and <literal>h + 2 = t</literal>. In the former case, the
|
and <literal>h + 2 = t</literal>. In the former case, the motivation for
|
||||||
motivation for <function>mapOffset</function> is that since its host and
|
<function>mapOffset</function> is that since its host and target platforms
|
||||||
target platforms are the same, no transitive dep of it should be able to
|
are the same, no transitive dependency of it should be able to "discover" an
|
||||||
"discover" an offset greater than its reduced target offsets.
|
offset greater than its reduced target offsets.
|
||||||
<function>mapOffset</function> effectively "squashes" all its transitive
|
<function>mapOffset</function> effectively "squashes" all its transitive
|
||||||
dependencies' offsets so that none will ever be greater than the target
|
dependencies' offsets so that none will ever be greater than the target
|
||||||
offset of the original <literal>h = t</literal> package. In the other case,
|
offset of the original <literal>h = t</literal> package. In the other case,
|
||||||
<literal>h + 1</literal> is skipped over between the host and target
|
<literal>h + 1</literal> is skipped over between the host and target offsets.
|
||||||
offsets. Instead of squashing the offsets, we need to "rip" them apart so no
|
Instead of squashing the offsets, we need to "rip" them apart so no
|
||||||
transitive dependencies' offset is that one.
|
transitive dependencies' offset is that one.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Overall, the unifying theme here is that propagation shouldn't be
|
Overall, the unifying theme here is that propagation shouldn't be introducing
|
||||||
introducing transitive dependencies involving platforms the needing package
|
transitive dependencies involving platforms the depending package is unaware
|
||||||
is unaware of. The offset bounds checking and definition of
|
of. The offset bounds checking and definition of
|
||||||
<function>mapOffset</function> together ensure that this is the case.
|
<function>mapOffset</function> together ensure that this is the case.
|
||||||
Discovering a new offset is discovering a new platform, and since those
|
Discovering a new offset is discovering a new platform, and since those
|
||||||
platforms weren't in the derivation "spec" of the needing package, they
|
platforms weren't in the derivation "spec" of the needing package, they
|
||||||
|
@ -369,20 +369,20 @@ let f(h, h + 1, i) = i + h
|
||||||
A list of dependencies whose host and target platforms are the new
|
A list of dependencies whose host and target platforms are the new
|
||||||
derivation's build platform. This means a <literal>-1</literal> host and
|
derivation's build platform. This means a <literal>-1</literal> host and
|
||||||
<literal>-1</literal> target offset from the new derivation's platforms.
|
<literal>-1</literal> target offset from the new derivation's platforms.
|
||||||
They are programs/libraries used at build time that furthermore produce
|
These are programs and libraries used at build time that produce programs
|
||||||
programs/libraries also used at build time. If the dependency doesn't
|
and libraries also used at build time. If the dependency doesn't care
|
||||||
care about the target platform (i.e. isn't a compiler or similar tool),
|
about the target platform (i.e. isn't a compiler or similar tool), put it
|
||||||
put it in <varname>nativeBuildInputs</varname> instead. The most common
|
in <varname>nativeBuildInputs</varname> instead. The most common use of
|
||||||
use for this <literal>buildPackages.stdenv.cc</literal>, the default C
|
this <literal>buildPackages.stdenv.cc</literal>, the default C compiler
|
||||||
compiler for this role. That example crops up more than one might think
|
for this role. That example crops up more than one might think in old
|
||||||
in old commonly used C libraries.
|
commonly used C libraries.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Since these packages are able to be run at build time, that are always
|
Since these packages are able to be run at build-time, they are always
|
||||||
added to the <envar>PATH</envar>, as described above. But since these
|
added to the <envar>PATH</envar>, as described above. But since these
|
||||||
packages are only guaranteed to be able to run then, they shouldn't
|
packages are only guaranteed to be able to run then, they shouldn't
|
||||||
persist as run-time dependencies. This isn't currently enforced, but
|
persist as run-time dependencies. This isn't currently enforced, but could
|
||||||
could be in the future.
|
be in the future.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -395,21 +395,20 @@ let f(h, h + 1, i) = i + h
|
||||||
A list of dependencies whose host platform is the new derivation's build
|
A list of dependencies whose host platform is the new derivation's build
|
||||||
platform, and target platform is the new derivation's host platform. This
|
platform, and target platform is the new derivation's host platform. This
|
||||||
means a <literal>-1</literal> host offset and <literal>0</literal> target
|
means a <literal>-1</literal> host offset and <literal>0</literal> target
|
||||||
offset from the new derivation's platforms. They are programs/libraries
|
offset from the new derivation's platforms. These are programs and
|
||||||
used at build time that, if they are a compiler or similar tool, produce
|
libraries used at build-time that, if they are a compiler or similar tool,
|
||||||
code to run at run time—i.e. tools used to build the new derivation. If
|
produce code to run at run-time—i.e. tools used to build the new
|
||||||
the dependency doesn't care about the target platform (i.e. isn't a
|
derivation. If the dependency doesn't care about the target platform (i.e.
|
||||||
compiler or similar tool), put it here, rather than in
|
isn't a compiler or similar tool), put it here, rather than in
|
||||||
<varname>depsBuildBuild</varname> or <varname>depsBuildTarget</varname>.
|
<varname>depsBuildBuild</varname> or <varname>depsBuildTarget</varname>.
|
||||||
This would be called <varname>depsBuildHost</varname> but for historical
|
This could be called <varname>depsBuildHost</varname> but
|
||||||
continuity.
|
<varname>nativeBuildInputs</varname> is used for historical continuity.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Since these packages are able to be run at build time, that are added to
|
Since these packages are able to be run at build-time, they are added to
|
||||||
the <envar>PATH</envar>, as described above. But since these packages
|
the <envar>PATH</envar>, as described above. But since these packages are
|
||||||
only are guaranteed to be able to run then, they shouldn't persist as
|
only guaranteed to be able to run then, they shouldn't persist as run-time
|
||||||
run-time dependencies. This isn't currently enforced, but could be in the
|
dependencies. This isn't currently enforced, but could be in the future.
|
||||||
future.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -422,34 +421,33 @@ let f(h, h + 1, i) = i + h
|
||||||
A list of dependencies whose host platform is the new derivation's build
|
A list of dependencies whose host platform is the new derivation's build
|
||||||
platform, and target platform is the new derivation's target platform.
|
platform, and target platform is the new derivation's target platform.
|
||||||
This means a <literal>-1</literal> host offset and <literal>1</literal>
|
This means a <literal>-1</literal> host offset and <literal>1</literal>
|
||||||
target offset from the new derivation's platforms. They are programs used
|
target offset from the new derivation's platforms. These are programs used
|
||||||
at build time that produce code to run at run with code produced by the
|
at build time that produce code to run with code produced by the depending
|
||||||
depending package. Most commonly, these would tools used to build the
|
package. Most commonly, these are tools used to build the runtime or
|
||||||
runtime or standard library the currently-being-built compiler will
|
standard library that the currently-being-built compiler will inject into
|
||||||
inject into any code it compiles. In many cases, the currently-being
|
any code it compiles. In many cases, the currently-being-built-compiler is
|
||||||
built compiler is itself employed for that task, but when that compiler
|
itself employed for that task, but when that compiler won't run (i.e. its
|
||||||
won't run (i.e. its build and host platform differ) this is not possible.
|
build and host platform differ) this is not possible. Other times, the
|
||||||
Other times, the compiler relies on some other tool, like binutils, that
|
compiler relies on some other tool, like binutils, that is always built
|
||||||
is always built separately so the dependency is unconditional.
|
separately so that the dependency is unconditional.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
This is a somewhat confusing dependency to wrap ones head around, and for
|
This is a somewhat confusing concept to wrap one’s head around, and for
|
||||||
good reason. As the only one where the platform offsets are not adjacent
|
good reason. As the only dependency type where the platform offsets are
|
||||||
integers, it requires thinking of a bootstrapping stage
|
not adjacent integers, it requires thinking of a bootstrapping stage
|
||||||
<emphasis>two</emphasis> away from the current one. It and it's use-case
|
<emphasis>two</emphasis> away from the current one. It and its use-case go
|
||||||
go hand in hand and are both considered poor form: try not to need this
|
hand in hand and are both considered poor form: try to not need this sort
|
||||||
sort dependency, and try not avoid building standard libraries / runtimes
|
of dependency, and try to avoid building standard libraries and runtimes
|
||||||
in the same derivation as the compiler produces code using them. Instead
|
in the same derivation as the compiler produces code using them. Instead
|
||||||
strive to build those like a normal library, using the newly-built
|
strive to build those like a normal library, using the newly-built
|
||||||
compiler just as a normal library would. In short, do not use this
|
compiler just as a normal library would. In short, do not use this
|
||||||
attribute unless you are packaging a compiler and are sure it is needed.
|
attribute unless you are packaging a compiler and are sure it is needed.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Since these packages are able to be run at build time, that are added to
|
Since these packages are able to run at build time, they are added to the
|
||||||
the <envar>PATH</envar>, as described above. But since these packages
|
<envar>PATH</envar>, as described above. But since these packages are only
|
||||||
only are guaranteed to be able to run then, they shouldn't persist as
|
guaranteed to be able to run then, they shouldn't persist as run-time
|
||||||
run-time dependencies. This isn't currently enforced, but could be in the
|
dependencies. This isn't currently enforced, but could be in the future.
|
||||||
future.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -460,15 +458,15 @@ let f(h, h + 1, i) = i + h
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
A list of dependencies whose host and target platforms match the new
|
A list of dependencies whose host and target platforms match the new
|
||||||
derivation's host platform. This means a both <literal>0</literal> host
|
derivation's host platform. This means a <literal>0</literal> host offset
|
||||||
offset and <literal>0</literal> target offset from the new derivation's
|
and <literal>0</literal> target offset from the new derivation's host
|
||||||
host platform. These are packages used at run-time to generate code also
|
platform. These are packages used at run-time to generate code also used
|
||||||
used at run-time. In practice, that would usually be tools used by
|
at run-time. In practice, this would usually be tools used by compilers
|
||||||
compilers for metaprogramming/macro systems, or libraries used by the
|
for macros or a metaprogramming system, or libraries used by the macros or
|
||||||
macros/metaprogramming code itself. It's always preferable to use a
|
metaprogramming code itself. It's always preferable to use a
|
||||||
<varname>depsBuildBuild</varname> dependency in the derivation being
|
<varname>depsBuildBuild</varname> dependency in the derivation being built
|
||||||
built than a <varname>depsHostHost</varname> on the tool doing the
|
over a <varname>depsHostHost</varname> on the tool doing the building for
|
||||||
building for this purpose.
|
this purpose.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -479,20 +477,20 @@ let f(h, h + 1, i) = i + h
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
A list of dependencies whose host platform and target platform match the
|
A list of dependencies whose host platform and target platform match the
|
||||||
new derivation's. This means a <literal>0</literal> host offset and
|
new derivation's. This means a <literal>0</literal> host offset and a
|
||||||
<literal>1</literal> target offset from the new derivation's host
|
<literal>1</literal> target offset from the new derivation's host
|
||||||
platform. This would be called <varname>depsHostTarget</varname> but for
|
platform. This would be called <varname>depsHostTarget</varname> but for
|
||||||
historical continuity. If the dependency doesn't care about the target
|
historical continuity. If the dependency doesn't care about the target
|
||||||
platform (i.e. isn't a compiler or similar tool), put it here, rather
|
platform (i.e. isn't a compiler or similar tool), put it here, rather than
|
||||||
than in <varname>depsBuildBuild</varname>.
|
in <varname>depsBuildBuild</varname>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
These often are programs/libraries used by the new derivation at
|
These are often programs and libraries used by the new derivation at
|
||||||
<emphasis>run</emphasis>-time, but that isn't always the case. For
|
<emphasis>run</emphasis>-time, but that isn't always the case. For
|
||||||
example, the machine code in a statically linked library is only used at
|
example, the machine code in a statically-linked library is only used at
|
||||||
run time, but the derivation containing the library is only needed at
|
run-time, but the derivation containing the library is only needed at
|
||||||
build time. Even in the dynamic case, the library may also be needed at
|
build-time. Even in the dynamic case, the library may also be needed at
|
||||||
build time to appease the linker.
|
build-time to appease the linker.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -581,7 +579,7 @@ let f(h, h + 1, i) = i + h
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>
|
<term>
|
||||||
<varname>depsTargetTarget</varname>
|
<varname>depsTargetTargetPropagated</varname>
|
||||||
</term>
|
</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
|
@ -604,10 +602,10 @@ let f(h, h + 1, i) = i + h
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
A natural number indicating how much information to log. If set to 1 or
|
A natural number indicating how much information to log. If set to 1 or
|
||||||
higher, <literal>stdenv</literal> will print moderate debug information
|
higher, <literal>stdenv</literal> will print moderate debugging
|
||||||
during the build. In particular, the <command>gcc</command> and
|
information during the build. In particular, the <command>gcc</command>
|
||||||
<command>ld</command> wrapper scripts will print out the complete command
|
and <command>ld</command> wrapper scripts will print out the complete
|
||||||
line passed to the wrapped tools. If set to 6 or higher, the
|
command line passed to the wrapped tools. If set to 6 or higher, the
|
||||||
<literal>stdenv</literal> setup script will be run with <literal>set
|
<literal>stdenv</literal> setup script will be run with <literal>set
|
||||||
-x</literal> tracing. If set to 7 or higher, the <command>gcc</command>
|
-x</literal> tracing. If set to 7 or higher, the <command>gcc</command>
|
||||||
and <command>ld</command> wrapper scripts will also be run with
|
and <command>ld</command> wrapper scripts will also be run with
|
||||||
|
@ -666,11 +664,10 @@ passthru = {
|
||||||
<literal>hello.baz.value1</literal>. We don't specify any usage or schema
|
<literal>hello.baz.value1</literal>. We don't specify any usage or schema
|
||||||
of <literal>passthru</literal> - it is meant for values that would be
|
of <literal>passthru</literal> - it is meant for values that would be
|
||||||
useful outside the derivation in other parts of a Nix expression (e.g. in
|
useful outside the derivation in other parts of a Nix expression (e.g. in
|
||||||
other derivations). An example would be to convey some specific
|
other derivations). An example would be to convey some specific dependency
|
||||||
dependency of your derivation which contains a program with plugins
|
of your derivation which contains a program with plugins support. Later,
|
||||||
support. Later, others who make derivations with plugins can use
|
others who make derivations with plugins can use passed-through dependency
|
||||||
passed-through dependency to ensure that their plugin would be
|
to ensure that their plugin would be binary-compatible with built program.
|
||||||
binary-compatible with built program.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -836,7 +833,7 @@ passthru = {
|
||||||
<para>
|
<para>
|
||||||
Zip files are unpacked using <command>unzip</command>. However,
|
Zip files are unpacked using <command>unzip</command>. However,
|
||||||
<command>unzip</command> is not in the standard environment, so you
|
<command>unzip</command> is not in the standard environment, so you
|
||||||
should add it to <varname>buildInputs</varname> yourself.
|
should add it to <varname>nativeBuildInputs</varname> yourself.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -1076,6 +1073,17 @@ passthru = {
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<varname>prefixKey</varname>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The key to use when specifying the prefix. By default, this is set to
|
||||||
|
<option>--prefix=</option> as that is used by the majority of packages.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>
|
<term>
|
||||||
<varname>dontAddDisableDepTrack</varname>
|
<varname>dontAddDisableDepTrack</varname>
|
||||||
|
@ -1133,12 +1141,11 @@ passthru = {
|
||||||
By default, when cross compiling, the configure script has
|
By default, when cross compiling, the configure script has
|
||||||
<option>--build=...</option> and <option>--host=...</option> passed.
|
<option>--build=...</option> and <option>--host=...</option> passed.
|
||||||
Packages can instead pass <literal>[ "build" "host" "target" ]</literal>
|
Packages can instead pass <literal>[ "build" "host" "target" ]</literal>
|
||||||
or a subset to control exactly which platform flags are passed.
|
or a subset to control exactly which platform flags are passed. Compilers
|
||||||
Compilers and other tools should use this to also pass the target
|
and other tools can use this to also pass the target platform.
|
||||||
platform, for example.
|
|
||||||
<footnote xml:id="footnote-stdenv-build-time-guessing-impurity">
|
<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 building natively as well, 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
|
||||||
impurity.
|
impurity.
|
||||||
</para>
|
</para>
|
||||||
|
@ -1203,17 +1210,6 @@ passthru = {
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<varname>checkInputs</varname>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
A list of dependencies used by the phase. This gets included in
|
|
||||||
<varname>buildInputs</varname> when <varname>doCheck</varname> is set.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>
|
<term>
|
||||||
<varname>makeFlags</varname>
|
<varname>makeFlags</varname>
|
||||||
|
@ -1363,6 +1359,18 @@ makeFlagsArray=(CFLAGS="-O0 -g" LDFLAGS="-lfoo -lbar")
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<varname>checkInputs</varname>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
A list of dependencies used by the phase. This gets included in
|
||||||
|
<varname>nativeBuildInputs</varname> when <varname>doCheck</varname> is
|
||||||
|
set.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>
|
<term>
|
||||||
<varname>preCheck</varname>
|
<varname>preCheck</varname>
|
||||||
|
@ -1635,13 +1643,11 @@ installTargets = "install-bin install-doc";</programlisting>
|
||||||
</term>
|
</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
A package can export a <link
|
A package can export a <link linkend="ssec-setup-hooks">setup hook</link>
|
||||||
linkend="ssec-setup-hooks">setup
|
by setting this variable. The setup hook, if defined, is copied to
|
||||||
hook</link> by setting this variable. The setup hook, if defined, is
|
<filename>$out/nix-support/setup-hook</filename>. Environment variables
|
||||||
copied to <filename>$out/nix-support/setup-hook</filename>. Environment
|
are then substituted in it using <function
|
||||||
variables are then substituted in it using
|
linkend="fun-substituteAll">substituteAll</function>.
|
||||||
<function
|
|
||||||
linkend="fun-substituteAll">substituteAll</function>.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -2074,12 +2080,12 @@ someVar=$(stripHash $name)
|
||||||
<title>Package setup hooks</title>
|
<title>Package setup hooks</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Nix itself considers a build-time dependency merely something that should
|
Nix itself considers a build-time dependency as merely something that should
|
||||||
previously be built and accessible at build time—packages themselves are
|
previously be built and accessible at build time—packages themselves are
|
||||||
on their own to perform any additional setup. In most cases, that is fine,
|
on their own to perform any additional setup. In most cases, that is fine,
|
||||||
and the downstream derivation can deal with its own dependencies. But for a
|
and the downstream derivation can deal with its own dependencies. But for a
|
||||||
few common tasks, that would result in almost every package doing the same
|
few common tasks, that would result in almost every package doing the same
|
||||||
sort of setup work---depending not on the package itself, but entirely on
|
sort of setup work—depending not on the package itself, but entirely on
|
||||||
which dependencies were used.
|
which dependencies were used.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -2094,20 +2100,19 @@ someVar=$(stripHash $name)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The Setup hook mechanism is a bit of a sledgehammer though: a powerful
|
The setup hook mechanism is a bit of a sledgehammer though: a powerful
|
||||||
feature with a broad and indiscriminate area of effect. The combination of
|
feature with a broad and indiscriminate area of effect. The combination of
|
||||||
its power and implicit use may be expedient, but isn't without costs. Nix
|
its power and implicit use may be expedient, but isn't without costs. Nix
|
||||||
itself is unchanged, but the spirit of adding dependencies being effect-free
|
itself is unchanged, but the spirit of added dependencies being effect-free
|
||||||
is violated even if the letter isn't. For example, if a derivation path is
|
is violated even if the letter isn't. For example, if a derivation path is
|
||||||
mentioned more than once, Nix itself doesn't care and simply makes sure the
|
mentioned more than once, Nix itself doesn't care and simply makes sure the
|
||||||
dependency derivation is already built just the same—depending is just
|
dependency derivation is already built just the same—depending is just
|
||||||
needing something to exist, and needing is idempotent. However, a dependency
|
needing something to exist, and needing is idempotent. However, a dependency
|
||||||
specified twice will have its setup hook run twice, and that could easily
|
specified twice will have its setup hook run twice, and that could easily
|
||||||
change the build environment (though a well-written setup hook will
|
change the build environment (though a well-written setup hook will therefore
|
||||||
therefore strive to be idempotent so this is in fact not observable). More
|
strive to be idempotent so this is in fact not observable). More broadly,
|
||||||
broadly, setup hooks are anti-modular in that multiple dependencies, whether
|
setup hooks are anti-modular in that multiple dependencies, whether the same
|
||||||
the same or different, should not interfere and yet their setup hooks may
|
or different, should not interfere and yet their setup hooks may well do so.
|
||||||
well do so.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -2126,15 +2131,14 @@ someVar=$(stripHash $name)
|
||||||
<para>
|
<para>
|
||||||
Packages adding a hook should not hard code a specific hook, but rather
|
Packages adding a hook should not hard code a specific hook, but rather
|
||||||
choose a variable <emphasis>relative</emphasis> to how they are included.
|
choose a variable <emphasis>relative</emphasis> to how they are included.
|
||||||
Returning to the C compiler wrapper example, if it itself is an
|
Returning to the C compiler wrapper example, if the wrapper itself is an
|
||||||
<literal>n</literal> dependency, then it only wants to accumulate flags from
|
<literal>n</literal> dependency, then it only wants to accumulate flags from
|
||||||
<literal>n + 1</literal> dependencies, as only those ones match the
|
<literal>n + 1</literal> dependencies, as only those ones match the
|
||||||
compiler's target platform. The <envar>hostOffset</envar> variable is
|
compiler's target platform. The <envar>hostOffset</envar> variable is defined
|
||||||
defined with the current dependency's host offset
|
with the current dependency's host offset <envar>targetOffset</envar> with
|
||||||
<envar>targetOffset</envar> with its target offset, before its setup hook is
|
its target offset, before its setup hook is sourced. Additionally, since most
|
||||||
sourced. Additionally, since most environment hooks don't care about the
|
environment hooks don't care about the target platform, that means the setup
|
||||||
target platform, That means the setup hook can append to the right bash array
|
hook can append to the right bash array by doing something like
|
||||||
by doing something like
|
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
addEnvHooks "$hostOffset" myBashFunction
|
addEnvHooks "$hostOffset" myBashFunction
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
@ -2159,19 +2163,19 @@ addEnvHooks "$hostOffset" myBashFunction
|
||||||
</term>
|
</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Bintools Wrapper wraps the binary utilities for a bunch of miscellaneous
|
The Bintools Wrapper wraps the binary utilities for a bunch of
|
||||||
purposes. These are GNU Binutils when targetting Linux, and a mix of
|
miscellaneous purposes. These are GNU Binutils when targetting Linux, and
|
||||||
cctools and GNU binutils for Darwin. [The "Bintools" name is supposed to
|
a mix of cctools and GNU binutils for Darwin. [The "Bintools" name is
|
||||||
be a compromise between "Binutils" and "cctools" not denoting any
|
supposed to be a compromise between "Binutils" and "cctools" not denoting
|
||||||
specific implementation.] Specifically, the underlying bintools package,
|
any specific implementation.] Specifically, the underlying bintools
|
||||||
and a C standard library (glibc or Darwin's libSystem, just for the
|
package, and a C standard library (glibc or Darwin's libSystem, just for
|
||||||
dynamic loader) are all fed in, and dependency finding, hardening (see
|
the dynamic loader) are all fed in, and dependency finding, hardening
|
||||||
below), and purity checks for each are handled by Bintools Wrapper.
|
(see below), and purity checks for each are handled by the Bintools
|
||||||
Packages typically depend on CC Wrapper, which in turn (at run time)
|
Wrapper. Packages typically depend on CC Wrapper, which in turn (at run
|
||||||
depends on Bintools Wrapper.
|
time) depends on the Bintools Wrapper.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Bintools Wrapper was only just recently split off from CC Wrapper, so
|
The Bintools Wrapper was only just recently split off from CC Wrapper, so
|
||||||
the division of labor is still being worked out. For example, it
|
the division of labor is still being worked out. For example, it
|
||||||
shouldn't care about about the C standard library, but just take a
|
shouldn't care about about the C standard library, but just take a
|
||||||
derivation with the dynamic loader (which happens to be the glibc on
|
derivation with the dynamic loader (which happens to be the glibc on
|
||||||
|
@ -2179,24 +2183,24 @@ addEnvHooks "$hostOffset" myBashFunction
|
||||||
to need to share, and probably the most important to understand. It is
|
to need to share, and probably the most important to understand. It is
|
||||||
currently accomplished by collecting directories of host-platform
|
currently accomplished by collecting directories of host-platform
|
||||||
dependencies (i.e. <varname>buildInputs</varname> and
|
dependencies (i.e. <varname>buildInputs</varname> and
|
||||||
<varname>nativeBuildInputs</varname>) in environment variables. Bintools
|
<varname>nativeBuildInputs</varname>) in environment variables. The
|
||||||
Wrapper's setup hook causes any <filename>lib</filename> and
|
Bintools Wrapper's setup hook causes any <filename>lib</filename> and
|
||||||
<filename>lib64</filename> subdirectories to be added to
|
<filename>lib64</filename> subdirectories to be added to
|
||||||
<envar>NIX_LDFLAGS</envar>. Since CC Wrapper and Bintools Wrapper use
|
<envar>NIX_LDFLAGS</envar>. Since the CC Wrapper and the Bintools Wrapper
|
||||||
the same strategy, most of the Bintools Wrapper code is sparsely
|
use the same strategy, most of the Bintools Wrapper code is sparsely
|
||||||
commented and refers to CC Wrapper. But CC Wrapper's code, by contrast,
|
commented and refers to the CC Wrapper. But the CC Wrapper's code, by
|
||||||
has quite lengthy comments. Bintools Wrapper merely cites those, rather
|
contrast, has quite lengthy comments. The Bintools Wrapper merely cites
|
||||||
than repeating them, to avoid falling out of sync.
|
those, rather than repeating them, to avoid falling out of sync.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
A final task of the setup hook is defining a number of standard
|
A final task of the setup hook is defining a number of standard
|
||||||
environment variables to tell build systems which executables full-fill
|
environment variables to tell build systems which executables fulfill
|
||||||
which purpose. They are defined to just be the base name of the tools,
|
which purpose. They are defined to just be the base name of the tools,
|
||||||
under the assumption that Bintools Wrapper's binaries will be on the
|
under the assumption that the Bintools Wrapper's binaries will be on the
|
||||||
path. Firstly, this helps poorly-written packages, e.g. ones that look
|
path. Firstly, this helps poorly-written packages, e.g. ones that look
|
||||||
for just <command>gcc</command> when <envar>CC</envar> isn't defined yet
|
for just <command>gcc</command> when <envar>CC</envar> isn't defined yet
|
||||||
<command>clang</command> is to be used. Secondly, this helps packages
|
<command>clang</command> is to be used. Secondly, this helps packages not
|
||||||
not get confused when cross-compiling, in which case multiple Bintools
|
get confused when cross-compiling, in which case multiple Bintools
|
||||||
Wrappers may simultaneously be in use.
|
Wrappers may simultaneously be in use.
|
||||||
<footnote xml:id="footnote-stdenv-per-platform-wrapper">
|
<footnote xml:id="footnote-stdenv-per-platform-wrapper">
|
||||||
<para>
|
<para>
|
||||||
|
@ -2208,20 +2212,20 @@ addEnvHooks "$hostOffset" myBashFunction
|
||||||
</para>
|
</para>
|
||||||
</footnote>
|
</footnote>
|
||||||
<envar>BUILD_</envar>- and <envar>TARGET_</envar>-prefixed versions of
|
<envar>BUILD_</envar>- and <envar>TARGET_</envar>-prefixed versions of
|
||||||
the normal environment variable are defined for the additional Bintools
|
the normal environment variable are defined for additional Bintools
|
||||||
Wrappers, properly disambiguating them.
|
Wrappers, properly disambiguating them.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
A problem with this final task is that Bintools Wrapper is honest and
|
A problem with this final task is that the Bintools Wrapper is honest and
|
||||||
defines <envar>LD</envar> as <command>ld</command>. Most packages,
|
defines <envar>LD</envar> as <command>ld</command>. Most packages,
|
||||||
however, firstly use the C compiler for linking, secondly use
|
however, firstly use the C compiler for linking, secondly use
|
||||||
<envar>LD</envar> anyways, defining it as the C compiler, and thirdly,
|
<envar>LD</envar> anyways, defining it as the C compiler, and thirdly,
|
||||||
only so define <envar>LD</envar> when it is undefined as a fallback.
|
only so define <envar>LD</envar> when it is undefined as a fallback. This
|
||||||
This triple-threat means Bintools Wrapper will break those packages, as
|
triple-threat means Bintools Wrapper will break those packages, as LD is
|
||||||
LD is already defined as the actual linker which the package won't
|
already defined as the actual linker which the package won't override yet
|
||||||
override yet doesn't want to use. The workaround is to define, just for
|
doesn't want to use. The workaround is to define, just for the
|
||||||
the problematic package, <envar>LD</envar> as the C compiler. A good way
|
problematic package, <envar>LD</envar> as the C compiler. A good way to
|
||||||
to do this would be <command>preConfigure = "LD=$CC"</command>.
|
do this would be <command>preConfigure = "LD=$CC"</command>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -2231,30 +2235,31 @@ addEnvHooks "$hostOffset" myBashFunction
|
||||||
</term>
|
</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
CC Wrapper wraps a C toolchain for a bunch of miscellaneous purposes.
|
The CC Wrapper wraps a C toolchain for a bunch of miscellaneous purposes.
|
||||||
Specifically, a C compiler (GCC or Clang), wrapped binary tools, and a C
|
Specifically, a C compiler (GCC or Clang), wrapped binary tools, and a C
|
||||||
standard library (glibc or Darwin's libSystem, just for the dynamic
|
standard library (glibc or Darwin's libSystem, just for the dynamic
|
||||||
loader) are all fed in, and dependency finding, hardening (see below),
|
loader) are all fed in, and dependency finding, hardening (see below),
|
||||||
and purity checks for each are handled by CC Wrapper. Packages typically
|
and purity checks for each are handled by the CC Wrapper. Packages
|
||||||
depend on CC Wrapper, which in turn (at run time) depends on Bintools
|
typically depend on the CC Wrapper, which in turn (at run-time) depends
|
||||||
Wrapper.
|
on the Bintools Wrapper.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Dependency finding is undoubtedly the main task of CC Wrapper. This
|
Dependency finding is undoubtedly the main task of the CC Wrapper. This
|
||||||
works just like Bintools Wrapper, except that any
|
works just like the Bintools Wrapper, except that any
|
||||||
<filename>include</filename> subdirectory of any relevant dependency is
|
<filename>include</filename> subdirectory of any relevant dependency is
|
||||||
added to <envar>NIX_CFLAGS_COMPILE</envar>. The setup hook itself
|
added to <envar>NIX_CFLAGS_COMPILE</envar>. The setup hook itself
|
||||||
contains some lengthy comments describing the exact convoluted mechanism
|
contains some lengthy comments describing the exact convoluted mechanism
|
||||||
by which this is accomplished.
|
by which this is accomplished.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
CC Wrapper also like Bintools Wrapper defines standard environment
|
Similarly, the CC Wrapper follows the Bintools Wrapper in defining
|
||||||
variables with the names of the tools it wraps, for the same reasons
|
standard environment variables with the names of the tools it wraps, for
|
||||||
described above. Importantly, while it includes a <command>cc</command>
|
the same reasons described above. Importantly, while it includes a
|
||||||
symlink to the c compiler for portability, the <envar>CC</envar> will be
|
<command>cc</command> symlink to the c compiler for portability, the
|
||||||
defined using the compiler's "real name" (i.e. <command>gcc</command> or
|
<envar>CC</envar> will be defined using the compiler's "real name" (i.e.
|
||||||
<command>clang</command>). This helps lousy build systems that inspect
|
<command>gcc</command> or <command>clang</command>). This helps lousy
|
||||||
on the name of the compiler rather than run it.
|
build systems that inspect on the name of the compiler rather than run
|
||||||
|
it.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -2314,9 +2319,11 @@ addEnvHooks "$hostOffset" myBashFunction
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <varname>autoreconfHook</varname> derivation adds
|
The <varname>autoreconfHook</varname> derivation adds
|
||||||
<varname>autoreconfPhase</varname>, which runs autoreconf, libtoolize
|
<varname>autoreconfPhase</varname>, which runs autoreconf, libtoolize and
|
||||||
and automake, essentially preparing the configure script in
|
automake, essentially preparing the configure script in autotools-based
|
||||||
autotools-based builds.
|
builds. Most autotools-based packages come with the configure script
|
||||||
|
pre-generated, but this hook is necessary for a few packages and when you
|
||||||
|
need to patch the package’s configure scripts.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -2360,9 +2367,9 @@ addEnvHooks "$hostOffset" myBashFunction
|
||||||
</term>
|
</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Exports <envar>GDK_PIXBUF_MODULE_FILE</envar> environment variable the
|
Exports <envar>GDK_PIXBUF_MODULE_FILE</envar> environment variable to the
|
||||||
the builder. Add librsvg package to <varname>buildInputs</varname> to
|
builder. Add librsvg package to <varname>buildInputs</varname> to get svg
|
||||||
get svg support.
|
support.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -2399,7 +2406,7 @@ addEnvHooks "$hostOffset" myBashFunction
|
||||||
PaX flags on Linux (where it is available by default; on all other
|
PaX flags on Linux (where it is available by default; on all other
|
||||||
platforms, <varname>paxmark</varname> is a no-op). For example, to
|
platforms, <varname>paxmark</varname> is a no-op). For example, to
|
||||||
disable secure memory protections on the executable
|
disable secure memory protections on the executable
|
||||||
<replaceable>foo</replaceable>:
|
<replaceable>foo</replaceable>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
paxmark m $out/bin/<replaceable>foo</replaceable>
|
paxmark m $out/bin/<replaceable>foo</replaceable>
|
||||||
|
@ -2452,7 +2459,104 @@ addEnvHooks "$hostOffset" myBashFunction
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
cmake
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Overrides the default configure phase to run the CMake command. By
|
||||||
|
default, we use the Make generator of CMake. In
|
||||||
|
addition, dependencies are added automatically to CMAKE_PREFIX_PATH so
|
||||||
|
that packages are correctly detected by CMake. Some additional flags
|
||||||
|
are passed in to give similar behavior to configure-based packages. You
|
||||||
|
can disable this hook’s behavior by setting configurePhase to a custom
|
||||||
|
value, or by setting dontUseCmakeConfigure. cmakeFlags controls flags
|
||||||
|
passed only to CMake. By default, parallel building is enabled as CMake
|
||||||
|
supports parallel building almost everywhere. When Ninja is also in
|
||||||
|
use, CMake will detect that and use the ninja generator.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
xcbuildHook
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Overrides the build and install phases to run the “xcbuild” command.
|
||||||
|
This hook is needed when a project only comes with build files for the
|
||||||
|
XCode build system. You can disable this behavior by setting buildPhase
|
||||||
|
and configurePhase to a custom value. xcbuildFlags controls flags
|
||||||
|
passed only to xcbuild.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
meson
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Overrides the configure phase to run meson to generate Ninja files. You
|
||||||
|
can disable this behavior by setting configurePhase to a custom value,
|
||||||
|
or by setting dontUseMesonConfigure. To run these files, you should
|
||||||
|
accompany meson with ninja. mesonFlags controls only the flags passed
|
||||||
|
to meson. By default, parallel building is enabled as Meson supports
|
||||||
|
parallel building almost everywhere.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
ninja
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Overrides the build, install, and check phase to run ninja instead of
|
||||||
|
make. You can disable this behavior with the dontUseNinjaBuild,
|
||||||
|
dontUseNinjaInstall, and dontUseNinjaCheck, respectively. Parallel
|
||||||
|
building is enabled by default in Ninja.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
unzip
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This setup hook will allow you to unzip .zip files specified in $src.
|
||||||
|
There are many similar packages like unrar, undmg, etc.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
wafHook
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Overrides the configure, build, and install phases. This will run the
|
||||||
|
"waf" script used by many projects. If waf doesn’t exist, it will copy
|
||||||
|
the version of waf available in Nixpkgs wafFlags can be used to pass
|
||||||
|
flags to the waf script.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
scons
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Overrides the build, install, and check phases. This uses the scons
|
||||||
|
build system as a replacement for make. scons does not provide a
|
||||||
|
configure phase, so everything is managed at build and install time.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="sec-purity-in-nixpkgs">
|
<section xml:id="sec-purity-in-nixpkgs">
|
||||||
|
|
|
@ -620,6 +620,7 @@
|
||||||
./services/networking/supplicant.nix
|
./services/networking/supplicant.nix
|
||||||
./services/networking/supybot.nix
|
./services/networking/supybot.nix
|
||||||
./services/networking/syncthing.nix
|
./services/networking/syncthing.nix
|
||||||
|
./services/networking/syncthing-relay.nix
|
||||||
./services/networking/tcpcrypt.nix
|
./services/networking/tcpcrypt.nix
|
||||||
./services/networking/teamspeak3.nix
|
./services/networking/teamspeak3.nix
|
||||||
./services/networking/tinc.nix
|
./services/networking/tinc.nix
|
||||||
|
|
|
@ -12,12 +12,22 @@ let
|
||||||
let
|
let
|
||||||
pName = _p: (builtins.parseDrvName (_p.name)).name;
|
pName = _p: (builtins.parseDrvName (_p.name)).name;
|
||||||
in pName mysql == pName pkgs.mariadb;
|
in pName mysql == pName pkgs.mariadb;
|
||||||
|
isMysqlAtLeast57 =
|
||||||
|
let
|
||||||
|
pName = _p: (builtins.parseDrvName (_p.name)).name;
|
||||||
|
in (pName mysql == pName pkgs.mysql57)
|
||||||
|
&& ((builtins.compareVersions mysql.version "5.7") >= 0);
|
||||||
|
|
||||||
pidFile = "${cfg.pidDir}/mysqld.pid";
|
pidFile = "${cfg.pidDir}/mysqld.pid";
|
||||||
|
|
||||||
|
mysqldAndInstallOptions =
|
||||||
|
"--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${mysql}";
|
||||||
mysqldOptions =
|
mysqldOptions =
|
||||||
"--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${mysql} " +
|
"${mysqldAndInstallOptions} --pid-file=${pidFile}";
|
||||||
"--pid-file=${pidFile}";
|
# For MySQL 5.7+, --insecure creates the root user without password
|
||||||
|
# (earlier versions and MariaDB do this by default).
|
||||||
|
installOptions =
|
||||||
|
"${mysqldAndInstallOptions} ${lib.optionalString isMysqlAtLeast57 "--insecure"}";
|
||||||
|
|
||||||
myCnf = pkgs.writeText "my.cnf"
|
myCnf = pkgs.writeText "my.cnf"
|
||||||
''
|
''
|
||||||
|
@ -253,7 +263,7 @@ in
|
||||||
if ! test -e ${cfg.dataDir}/mysql; then
|
if ! test -e ${cfg.dataDir}/mysql; then
|
||||||
mkdir -m 0700 -p ${cfg.dataDir}
|
mkdir -m 0700 -p ${cfg.dataDir}
|
||||||
chown -R ${cfg.user} ${cfg.dataDir}
|
chown -R ${cfg.user} ${cfg.dataDir}
|
||||||
${mysql}/bin/mysql_install_db ${mysqldOptions}
|
${mysql}/bin/mysql_install_db ${installOptions}
|
||||||
touch /tmp/mysql_init
|
touch /tmp/mysql_init
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,121 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.syncthing.relay;
|
||||||
|
|
||||||
|
dataDirectory = "/var/lib/syncthing-relay";
|
||||||
|
|
||||||
|
relayOptions =
|
||||||
|
[
|
||||||
|
"--keys=${dataDirectory}"
|
||||||
|
"--listen=${cfg.listenAddress}:${toString cfg.port}"
|
||||||
|
"--status-srv=${cfg.statusListenAddress}:${toString cfg.statusPort}"
|
||||||
|
"--provided-by=${escapeShellArg cfg.providedBy}"
|
||||||
|
]
|
||||||
|
++ optional (cfg.pools != null) "--pools=${escapeShellArg (concatStringsSep "," cfg.pools)}"
|
||||||
|
++ optional (cfg.globalRateBps != null) "--global-rate=${toString cfg.globalRateBps}"
|
||||||
|
++ optional (cfg.perSessionRateBps != null) "--per-session-rate=${toString cfg.perSessionRateBps}"
|
||||||
|
++ cfg.extraOptions;
|
||||||
|
in {
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options.services.syncthing.relay = {
|
||||||
|
enable = mkEnableOption "Syncthing relay service";
|
||||||
|
|
||||||
|
listenAddress = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "";
|
||||||
|
example = "1.2.3.4";
|
||||||
|
description = ''
|
||||||
|
Address to listen on for relay traffic.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
port = mkOption {
|
||||||
|
type = types.port;
|
||||||
|
default = 22067;
|
||||||
|
description = ''
|
||||||
|
Port to listen on for relay traffic. This port should be added to
|
||||||
|
<literal>networking.firewall.allowedTCPPorts</literal>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
statusListenAddress = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "";
|
||||||
|
example = "1.2.3.4";
|
||||||
|
description = ''
|
||||||
|
Address to listen on for serving the relay status API.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
statusPort = mkOption {
|
||||||
|
type = types.port;
|
||||||
|
default = 22070;
|
||||||
|
description = ''
|
||||||
|
Port to listen on for serving the relay status API. This port should be
|
||||||
|
added to <literal>networking.firewall.allowedTCPPorts</literal>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
pools = mkOption {
|
||||||
|
type = types.nullOr (types.listOf types.str);
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Relay pools to join. If null, uses the default global pool.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
providedBy = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Human-readable description of the provider of the relay (you).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
globalRateBps = mkOption {
|
||||||
|
type = types.nullOr types.ints.positive;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Global bandwidth rate limit in bytes per second.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
perSessionRateBps = mkOption {
|
||||||
|
type = types.nullOr types.ints.positive;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Per session bandwidth rate limit in bytes per second.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extraOptions = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [];
|
||||||
|
description = ''
|
||||||
|
Extra command line arguments to pass to strelaysrv.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
systemd.services.syncthing-relay = {
|
||||||
|
description = "Syncthing relay service";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
DynamicUser = true;
|
||||||
|
StateDirectory = baseNameOf dataDirectory;
|
||||||
|
|
||||||
|
Restart = "on-failure";
|
||||||
|
ExecStart = "${pkgs.syncthing-relay}/bin/strelaysrv ${concatStringsSep " " relayOptions}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -193,6 +193,7 @@ in
|
||||||
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
|
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
|
||||||
sudo = handleTest ./sudo.nix {};
|
sudo = handleTest ./sudo.nix {};
|
||||||
switchTest = handleTest ./switch-test.nix {};
|
switchTest = handleTest ./switch-test.nix {};
|
||||||
|
syncthing-relay = handleTest ./syncthing-relay.nix {};
|
||||||
systemd = handleTest ./systemd.nix {};
|
systemd = handleTest ./systemd.nix {};
|
||||||
taskserver = handleTest ./taskserver.nix {};
|
taskserver = handleTest ./taskserver.nix {};
|
||||||
tomcat = handleTest ./tomcat.nix {};
|
tomcat = handleTest ./tomcat.nix {};
|
||||||
|
|
|
@ -99,7 +99,7 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
|
||||||
homerow.expect = [ "a" "r" "s" "t" "n" "e" "i" "o" ];
|
homerow.expect = [ "a" "r" "s" "t" "n" "e" "i" "o" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
extraConfig.i18n.consoleKeyMap = "en-latin9";
|
extraConfig.i18n.consoleKeyMap = "colemak/colemak";
|
||||||
extraConfig.services.xserver.layout = "us";
|
extraConfig.services.xserver.layout = "us";
|
||||||
extraConfig.services.xserver.xkbVariant = "colemak";
|
extraConfig.services.xserver.xkbVariant = "colemak";
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
import ./make-test.nix ({ lib, pkgs, ... }: {
|
||||||
|
name = "syncthing-relay";
|
||||||
|
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ delroth ];
|
||||||
|
|
||||||
|
machine = {
|
||||||
|
environment.systemPackages = [ pkgs.jq ];
|
||||||
|
services.syncthing.relay = {
|
||||||
|
enable = true;
|
||||||
|
providedBy = "nixos-test";
|
||||||
|
pools = []; # Don't connect to any pool while testing.
|
||||||
|
port = 12345;
|
||||||
|
statusPort = 12346;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
$machine->waitForUnit("syncthing-relay.service");
|
||||||
|
$machine->waitForOpenPort(12345);
|
||||||
|
$machine->waitForOpenPort(12346);
|
||||||
|
$machine->succeed("curl http://localhost:12346/status | jq -r '.options.\"provided-by\"'") =~ /nixos-test/ or die;
|
||||||
|
'';
|
||||||
|
})
|
|
@ -3,13 +3,13 @@
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
name = "nano-wallet-${version}";
|
name = "nano-wallet-${version}";
|
||||||
version = "16.2";
|
version = "16.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nanocurrency";
|
owner = "nanocurrency";
|
||||||
repo = "raiblocks";
|
repo = "raiblocks";
|
||||||
rev = "V${version}";
|
rev = "V${version}";
|
||||||
sha256 = "18zp4xl5iwwrnzrqzsygdrym5565v8dpfz0jxczw21896kw1i9i7";
|
sha256 = "1rhq7qzfd8li33pmzcjxrhbbgdklxlcijam62s385f8yqjwy80dz";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "padthv1-${version}";
|
name = "padthv1-${version}";
|
||||||
version = "0.9.2";
|
version = "0.9.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/padthv1/${name}.tar.gz";
|
url = "mirror://sourceforge/padthv1/${name}.tar.gz";
|
||||||
sha256 = "1alfl0l5qdll0w5lwhrwzj5dina1big1zmjg5imi9h06dzhz51xl";
|
sha256 = "157w28wxggqpqkibz716v3r756q2z78g70ipncpalchb9dfr42b6";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ];
|
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ];
|
||||||
|
|
|
@ -44,13 +44,13 @@ let
|
||||||
];
|
];
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "pulseeffects-${version}";
|
name = "pulseeffects-${version}";
|
||||||
version = "4.3.9";
|
version = "4.4.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "wwmm";
|
owner = "wwmm";
|
||||||
repo = "pulseeffects";
|
repo = "pulseeffects";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1vir05hy2n0nk0gaqbn680bx53ixcyi2y0hq4grgm73bbb1jzqq6";
|
sha256 = "0bjzlqyvcp9hxaq07nqr14k9kvan5myaxb7ci30gz0fgayib85lv";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -6,11 +6,11 @@ with stdenv.lib;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "feh-${version}";
|
name = "feh-${version}";
|
||||||
version = "2.28.1";
|
version = "3.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://feh.finalrewind.org/${name}.tar.bz2";
|
url = "https://feh.finalrewind.org/${name}.tar.bz2";
|
||||||
sha256 = "0wian0gnx0yfxf8x9b8wr57fjd6rnmi3y3xj83ni6x0xqrjnf1lp";
|
sha256 = "00fwf8yz7k8vzd30ly5ndlj6ax9w85dkjzjnlk95vd0zdrf4wyxn";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "man" "doc" ];
|
outputs = [ "out" "man" "doc" ];
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "dbeaver-ce-${version}";
|
name = "dbeaver-ce-${version}";
|
||||||
version = "5.2.4";
|
version = "5.2.5";
|
||||||
|
|
||||||
desktopItem = makeDesktopItem {
|
desktopItem = makeDesktopItem {
|
||||||
name = "dbeaver";
|
name = "dbeaver";
|
||||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
|
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
|
||||||
sha256 = "1zwbqr5s76r77x7klydpqbaqakzzilzv92ddyck1sj5jiy5prwpp";
|
sha256 = "0xjggjq2brhi9x3i4d7hqfi18cd8czs6rzvihvspfxaqilsai0dm";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ stdenv, fetchurl, pythonPackages }:
|
{ stdenv, fetchurl, pythonPackages }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.7.6";
|
version = "0.7.7";
|
||||||
name = "mwic-${version}";
|
name = "mwic-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/jwilk/mwic/releases/download/${version}/${name}.tar.gz";
|
url = "https://github.com/jwilk/mwic/releases/download/${version}/${name}.tar.gz";
|
||||||
sha256 = "0dl56979i54hrmz5l27c4q1f7jd1bpkmi7sm86946dagi4l1ns3i";
|
sha256 = "0l4anwiiqclymx0awwn4hzaj8n26ycg8nz76wjphsyscn7z2awad";
|
||||||
};
|
};
|
||||||
|
|
||||||
makeFlags=["PREFIX=\${out}"];
|
makeFlags=["PREFIX=\${out}"];
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
, libXScrnSaver, libXcursor, libXtst, libGLU_combined
|
, libXScrnSaver, libXcursor, libXtst, libGLU_combined
|
||||||
, protobuf, speechd, libXdamage, cups
|
, protobuf, speechd, libXdamage, cups
|
||||||
, ffmpeg, libxslt, libxml2, at-spi2-core
|
, ffmpeg, libxslt, libxml2, at-spi2-core
|
||||||
|
, jdk
|
||||||
|
|
||||||
# optional dependencies
|
# optional dependencies
|
||||||
, libgcrypt ? null # gnomeSupport || cupsSupport
|
, libgcrypt ? null # gnomeSupport || cupsSupport
|
||||||
|
@ -125,7 +126,8 @@ let
|
||||||
++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
|
++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
|
||||||
++ optionals cupsSupport [ libgcrypt cups ]
|
++ optionals cupsSupport [ libgcrypt cups ]
|
||||||
++ optional pulseSupport libpulseaudio
|
++ optional pulseSupport libpulseaudio
|
||||||
++ optional (versionAtLeast version "71") at-spi2-core;
|
++ optional (versionAtLeast version "71") at-spi2-core
|
||||||
|
++ optional (versionAtLeast version "72") jdk.jre;
|
||||||
|
|
||||||
patches = optional enableWideVine ./patches/widevine.patch ++ [
|
patches = optional enableWideVine ./patches/widevine.patch ++ [
|
||||||
./patches/nix_plugin_paths_68.patch
|
./patches/nix_plugin_paths_68.patch
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
# This file is autogenerated from update.sh in the same directory.
|
# This file is autogenerated from update.sh in the same directory.
|
||||||
{
|
{
|
||||||
beta = {
|
beta = {
|
||||||
sha256 = "04y78dqm19cr5929l727fk0jqqsdfyrdv50gippg32dplvw0r4fw";
|
sha256 = "0nxxqfncw9ci3rhg8fiqaxy6zvh9x3j10lw8yw7c0cg2yni10qsp";
|
||||||
sha256bin64 = "1rfclq9vwj61pv1sqpa4v26iby02j05lad673c79f0032v2v2r43";
|
sha256bin64 = "0frcaplyzhkxzzcfcf0vigqpzixar4jg9hhrh4i8z8vx2gnxkwwy";
|
||||||
version = "71.0.3578.44";
|
version = "71.0.3578.53";
|
||||||
};
|
};
|
||||||
dev = {
|
dev = {
|
||||||
sha256 = "1d18957kwy3hp3dhgahip3pgjhvvadix5h3mk2d7w6zdj3l8c8kq";
|
sha256 = "11bsn77kvjqdwpiwjf4gaindfj0sx932wp6g7cald0638wdz7pqv";
|
||||||
sha256bin64 = "1yny1hyis91ajn7b8v9b4fzgswzwng3rndf1jb807xd6jd461afz";
|
sha256bin64 = "1j5pd8imc35ch7l3jmnmjm2yda2xzdwha5im34240wm6rrdr2v2j";
|
||||||
version = "72.0.3608.4";
|
version = "72.0.3610.2";
|
||||||
};
|
};
|
||||||
stable = {
|
stable = {
|
||||||
sha256 = "0amc3czac897mb80qcwwladmhg2yps8r2c359nzyj7i7bq1m992d";
|
sha256 = "0bwlq5xii26b3yngwkwb7l2mx03c30ffpym4xg0hcci8ry7zhpj4";
|
||||||
sha256bin64 = "1did6kp7dhlqp7rarvly7ywb9n9hnhhb3zgpkh3yp3f2skqrr5w8";
|
sha256bin64 = "1gnhjbpkp2gn3y5pingwv153bakidq60pr4fj2iq1kniyllsmmpg";
|
||||||
version = "70.0.3538.102";
|
version = "70.0.3538.110";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,6 +58,7 @@ let
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
withPlugins = newplugins: withPlugins (x: newplugins x ++ actualPlugins);
|
withPlugins = newplugins: withPlugins (x: newplugins x ++ actualPlugins);
|
||||||
|
full = withPlugins lib.attrValues;
|
||||||
|
|
||||||
# Ouch
|
# Ouch
|
||||||
overrideDerivation = f: (pluggable (terraform.overrideDerivation f)).withPlugins plugins;
|
overrideDerivation = f: (pluggable (terraform.overrideDerivation f)).withPlugins plugins;
|
||||||
|
@ -86,32 +87,6 @@ let
|
||||||
|
|
||||||
plugins = removeAttrs terraform-providers ["override" "overrideDerivation" "recurseForDerivations"];
|
plugins = removeAttrs terraform-providers ["override" "overrideDerivation" "recurseForDerivations"];
|
||||||
in rec {
|
in rec {
|
||||||
terraform_0_8_5 = generic {
|
|
||||||
version = "0.8.5";
|
|
||||||
sha256 = "1cxwv3652fpsbm2zk1akw356cd7w7vhny1623ighgbz9ha8gvg09";
|
|
||||||
};
|
|
||||||
|
|
||||||
terraform_0_8 = generic {
|
|
||||||
version = "0.8.8";
|
|
||||||
sha256 = "0ibgpcpvz0bmn3cw60nzsabsrxrbmmym1hv7fx6zmjxiwd68w5gb";
|
|
||||||
};
|
|
||||||
|
|
||||||
terraform_0_9 = generic {
|
|
||||||
version = "0.9.11";
|
|
||||||
sha256 = "045zcpd4g9c52ynhgh3213p422ahds63mzhmd2iwcmj88g8i1w6x";
|
|
||||||
# checks are failing again
|
|
||||||
doCheck = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
terraform_0_10 = pluggable (generic {
|
|
||||||
version = "0.10.8";
|
|
||||||
sha256 = "11hhij0hq99xhwlg5dx5nv7y074x79wkr8hr3wc6ln0kwdk5scdf";
|
|
||||||
patches = [ ./provider-path.patch ];
|
|
||||||
passthru = { inherit plugins; };
|
|
||||||
});
|
|
||||||
|
|
||||||
terraform_0_10-full = terraform_0_10.withPlugins lib.attrValues;
|
|
||||||
|
|
||||||
terraform_0_11 = pluggable (generic {
|
terraform_0_11 = pluggable (generic {
|
||||||
version = "0.11.10";
|
version = "0.11.10";
|
||||||
sha256 = "08mapla89g106bvqr41zfd7l4ki55by6207qlxq9caiha54nx4nb";
|
sha256 = "08mapla89g106bvqr41zfd7l4ki55by6207qlxq9caiha54nx4nb";
|
||||||
|
@ -119,7 +94,14 @@ in rec {
|
||||||
passthru = { inherit plugins; };
|
passthru = { inherit plugins; };
|
||||||
});
|
});
|
||||||
|
|
||||||
terraform_0_11-full = terraform_0_11.withPlugins lib.attrValues;
|
terraform_0_11-full = terraform_0_11.full;
|
||||||
|
|
||||||
|
terraform_0_12 = pluggable (generic {
|
||||||
|
version = "0.12.0-alpha2";
|
||||||
|
sha256 = "1rnxgwfk10b1g3jnh9gv4lqrcszhxq8shaqslml30hafs3dkg71q";
|
||||||
|
patches = [ ./provider-path.patch ];
|
||||||
|
passthru = { inherit plugins; };
|
||||||
|
});
|
||||||
|
|
||||||
# Tests that the plugins are being used. Terraform looks at the specific
|
# Tests that the plugins are being used. Terraform looks at the specific
|
||||||
# file pattern and if the plugin is not found it will try to download it
|
# file pattern and if the plugin is not found it will try to download it
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
{ stdenv, lib, buildGoPackage, fetchFromGitHub, terraform, makeWrapper }:
|
|
||||||
|
|
||||||
buildGoPackage rec {
|
|
||||||
name = "terragrunt-${version}";
|
|
||||||
version = "0.11.1";
|
|
||||||
|
|
||||||
goPackagePath = "github.com/gruntwork-io/terragrunt";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
rev = "v${version}";
|
|
||||||
owner = "gruntwork-io";
|
|
||||||
repo = "terragrunt";
|
|
||||||
sha256 = "061ix4m64i8bvjpqm6hn83nnkvqrp5y0hh5gzmxiik2nz3by1rx5";
|
|
||||||
};
|
|
||||||
|
|
||||||
goDeps = ./deps_0_11.nix;
|
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ];
|
|
||||||
|
|
||||||
preBuild = ''
|
|
||||||
buildFlagsArray+=("-ldflags" "-X main.VERSION=v${version}")
|
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
wrapProgram $bin/bin/terragrunt \
|
|
||||||
--set TERRAGRUNT_TFPATH ${lib.getBin terraform}/bin/terraform
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices.";
|
|
||||||
homepage = https://github.com/gruntwork-io/terragrunt/;
|
|
||||||
license = licenses.mit;
|
|
||||||
maintainers = with maintainers; [ peterhoeg ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
{ stdenv, lib, buildGoPackage, fetchFromGitHub, terraform, makeWrapper }:
|
|
||||||
|
|
||||||
buildGoPackage rec {
|
|
||||||
name = "terragrunt-${version}";
|
|
||||||
version = "0.9.8";
|
|
||||||
|
|
||||||
goPackagePath = "github.com/gruntwork-io/terragrunt";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
rev = "v${version}";
|
|
||||||
owner = "gruntwork-io";
|
|
||||||
repo = "terragrunt";
|
|
||||||
sha256 = "0aakr17yzh5jzvlmg3pzpnsfwl31njg27bpck541492shqcqmkiz";
|
|
||||||
};
|
|
||||||
|
|
||||||
goDeps = ./deps.nix;
|
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ];
|
|
||||||
|
|
||||||
preBuild = ''
|
|
||||||
buildFlagsArray+=("-ldflags" "-X main.VERSION=v${version}")
|
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
wrapProgram $bin/bin/terragrunt \
|
|
||||||
--set TERRAGRUNT_TFPATH ${lib.getBin terraform}/bin/terraform
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices.";
|
|
||||||
homepage = https://github.com/gruntwork-io/terragrunt/;
|
|
||||||
license = licenses.mit;
|
|
||||||
maintainers = with maintainers; [ peterhoeg ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, lib, buildGoPackage, fetchFromGitHub, terraform-full, makeWrapper }:
|
{ stdenv, lib, buildGoPackage, fetchFromGitHub, terraform, makeWrapper }:
|
||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
name = "terragrunt-${version}";
|
name = "terragrunt-${version}";
|
||||||
|
@ -23,7 +23,7 @@ buildGoPackage rec {
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
wrapProgram $bin/bin/terragrunt \
|
wrapProgram $bin/bin/terragrunt \
|
||||||
--set TERRAGRUNT_TFPATH ${lib.getBin terraform-full}/bin/terraform
|
--set TERRAGRUNT_TFPATH ${lib.getBin terraform.full}/bin/terraform
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
|
|
@ -1,111 +0,0 @@
|
||||||
# This file was generated by https://github.com/kamilchm/go2nix v1.2.0
|
|
||||||
[
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/aws/aws-sdk-go";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/aws/aws-sdk-go";
|
|
||||||
rev = "952498f4a390118ac65ad59cbe0c8b57ed69b6b5";
|
|
||||||
sha256 = "03j2dn4v2wr32jd9iki68ra0r8aghy7hpad94bf8zdgsrjn6rwvj";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/bgentry/go-netrc";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/bgentry/go-netrc";
|
|
||||||
rev = "9fd32a8b3d3d3f9d43c341bfe098430e07609480";
|
|
||||||
sha256 = "0dn2h8avgavqdzdqnph8bkhj35bx0wssczry1zdczr22xv650g1l";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/go-errors/errors";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/go-errors/errors";
|
|
||||||
rev = "8fa88b06e5974e97fbf9899a7f86a344bfd1f105";
|
|
||||||
sha256 = "02mvb2clbmfcqb4yclv5zhs4clkk9jxi2hiawsynl5fwmgn0d3xa";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/hashicorp/go-getter";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/hashicorp/go-getter";
|
|
||||||
rev = "90b6568eac830f62a08e8f1f46375daa63e57015";
|
|
||||||
sha256 = "1cl0yqlhffjmf4qan093z49i88i7wjp9lsfwfzn52sk3c09ksism";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/hashicorp/go-version";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/hashicorp/go-version";
|
|
||||||
rev = "03c5bf6be031b6dd45afec16b1cf94fc8938bc77";
|
|
||||||
sha256 = "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/hashicorp/hcl";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/hashicorp/hcl";
|
|
||||||
rev = "392dba7d905ed5d04a5794ba89f558b27e2ba1ca";
|
|
||||||
sha256 = "1rfm67kma2hpakabf7hxlj196jags4rpjpcirwg4kan4g9b6j0kb";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/mattn/go-zglob";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/mattn/go-zglob";
|
|
||||||
rev = "95345c4e1c0ebc9d16a3284177f09360f4d20fab";
|
|
||||||
sha256 = "012hrd67v4gp3b621rykg2kp6a7iq4dr585qavragbif0z1whckx";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/mitchellh/go-homedir";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/mitchellh/go-homedir";
|
|
||||||
rev = "b8bc1bf767474819792c23f32d8286a45736f1c6";
|
|
||||||
sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/mitchellh/go-testing-interface";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/mitchellh/go-testing-interface";
|
|
||||||
rev = "477c2d05a845d8b55912a5a7993b9b24abcc5ef8";
|
|
||||||
sha256 = "0llpcyiqfjdri7pba1p13maafgcyzjbd29h99b1hgj848k5avd61";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/mitchellh/mapstructure";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/mitchellh/mapstructure";
|
|
||||||
rev = "cc8532a8e9a55ea36402aa21efdf403a60d34096";
|
|
||||||
sha256 = "0705c0hq7b993sabnjy65yymvpy9w1j84bg9bjczh5607z16nw86";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/stretchr/testify";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/stretchr/testify";
|
|
||||||
rev = "4d4bfba8f1d1027c4fdbe371823030df51419987";
|
|
||||||
sha256 = "1d3yz1d2s88byjzmn60jbi1m9s552f7ghzbzik97fbph37i8yjhp";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
goPackagePath = "github.com/urfave/cli";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/urfave/cli";
|
|
||||||
rev = "d70f47eeca3afd795160003bc6e28b001d60c67c";
|
|
||||||
sha256 = "1xm203qp4sdlvffcbag7v6mc2d6q61i25iiz3y9yqpy25jpcpgif";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -1,19 +1,19 @@
|
||||||
{ mkDerivation
|
{ mkDerivation
|
||||||
, lib
|
, lib
|
||||||
, fetchgit
|
, fetchurl
|
||||||
, cmake
|
, cmake
|
||||||
, qtbase
|
, qtbase
|
||||||
, qtwebkit
|
, qtwebkit
|
||||||
|
, qttools
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
name = "trojita-${version}";
|
name = "trojita-${version}";
|
||||||
version = "0.7";
|
version = "0.7";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchurl {
|
||||||
url = "https://anongit.kde.org/trojita.git";
|
url = "mirror://sourceforge/trojita/trojita/${name}.tar.xz";
|
||||||
rev = "065d527c63e8e4a3ca0df73994f848b52e14ed58";
|
sha256 = "1n9n07md23ny6asyw0xpih37vlwzp7vawbkprl7a1bqwfa0si3g0";
|
||||||
sha256 = "1zlwhir33hha2p3l08wnb4njnfdg69j88ycf1fa4q3x86qm3r7hw";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -23,6 +23,7 @@ mkDerivation rec {
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
|
qttools
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,25 +3,17 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "bookworm";
|
pname = "bookworm";
|
||||||
version = "4f7b118281667d22f1b3205edf0b775341fa49cb";
|
version = "unstable-2018-11-19";
|
||||||
|
|
||||||
name = "${pname}-2018-10-21";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "babluboy";
|
owner = "babluboy";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = "4c3061784ff42151cac77d12bf2a28bf831fdfc5";
|
||||||
sha256 = "0bcyim87zk4b4xmgfs158lnds3y8jg7ppzw54kjpc9rh66fpn3b9";
|
sha256 = "0yrqxa60xlvz249kx966z5krx8i7h17ac0hjgq9p8f0irzy5yp0n";
|
||||||
};
|
};
|
||||||
|
|
||||||
# See: https://github.com/babluboy/bookworm/pull/220
|
|
||||||
patches = [
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://github.com/worldofpeace/bookworm/commit/b2faf685c46b95d6a2d4ec3725e4e4122b61e99a.patch";
|
|
||||||
sha256 = "14az86cj5j65hngfflrp1rmnrkdrhg2a8pl7www3jgfwasxay975";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
bash
|
bash
|
||||||
gobjectIntrospection
|
gobjectIntrospection
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ stdenv
|
{ stdenv
|
||||||
, fetchgit
|
, fetchFromGitLab
|
||||||
, pkgconfig
|
, pkgconfig
|
||||||
, intltool
|
, intltool
|
||||||
, automake111x
|
, automake111x
|
||||||
|
@ -10,34 +10,36 @@
|
||||||
, python
|
, python
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let version = "20170425";
|
let version = "unstable-2018-03-25";
|
||||||
|
|
||||||
in stdenv.mkDerivation {
|
in stdenv.mkDerivation {
|
||||||
name = "planner-${version}";
|
name = "planner-${version}";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchFromGitLab {
|
||||||
url = https://gitlab.gnome.org/GNOME/planner.git;
|
domain = "gitlab.gnome.org";
|
||||||
rev = "6a79647e5711b2b8d7435cacc3452e643d2f05e6";
|
owner = "GNOME";
|
||||||
sha256 = "18k40s0f665qclrzvkgyfqmvjk0nqdc8aj3m8n4ky85di4qbqlwd";
|
repo = "planner";
|
||||||
|
rev = "2a2bf11d96a7f5d64f05c9053661baa848e47797";
|
||||||
|
sha256 = "1bhh05kkbnhibldc1fc7kv7bwf8aa1vh4q379syqd3jbas8y521g";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = with gnome2; [
|
nativeBuildInputs = with gnome2; [
|
||||||
pkgconfig
|
pkgconfig
|
||||||
intltool
|
intltool
|
||||||
automake111x
|
automake111x
|
||||||
autoconf
|
autoconf
|
||||||
libtool
|
libtool
|
||||||
|
|
||||||
gnome-common
|
gnome-common
|
||||||
gtk-doc
|
gtk-doc
|
||||||
|
scrollkeeper
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with gnome2; [
|
||||||
GConf
|
GConf
|
||||||
gtk
|
gtk
|
||||||
libgnomecanvas
|
libgnomecanvas
|
||||||
libgnomeui
|
libgnomeui
|
||||||
libglade
|
libglade
|
||||||
scrollkeeper
|
|
||||||
|
|
||||||
libxslt
|
libxslt
|
||||||
python
|
python
|
||||||
];
|
];
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "ltl2ba-${version}";
|
name = "ltl2ba-${version}";
|
||||||
version = "1.2b1";
|
version = "1.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.lsv.ens-cachan.fr/~gastin/ltl2ba/${name}.tar.gz";
|
url = "http://www.lsv.ens-cachan.fr/~gastin/ltl2ba/${name}.tar.gz";
|
||||||
sha256 = "1f4jnkfkyj8lcc5qfqbiypfc11rhhpqqi6xs9xx5dysg6r6303wm";
|
sha256 = "0vzv5g7v87r41cvdafxi6yqnk7glzxrzgavy8213k59f6v11dzlx";
|
||||||
};
|
};
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{ stdenv, fetchurl, cmake, openblasCompat, gfortran, gmm, fltk, libjpeg
|
{ stdenv, fetchurl, cmake, openblasCompat, gfortran, gmm, fltk, libjpeg
|
||||||
, zlib, libGLU_combined, libGLU, xorg }:
|
, zlib, libGLU_combined, libGLU, xorg }:
|
||||||
|
|
||||||
let version = "4.0.4"; in
|
let version = "4.0.5"; in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "gmsh-${version}";
|
name = "gmsh-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
|
url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
|
||||||
sha256 = "1hvrls3xyxvn69kwicpvndrs0zhifcfkhfsxr8zkmhmn6fhnjhha";
|
sha256 = "194354f5cfede4ef47cb6f1d2bde294873315a1b34be114564defef88d108adf";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ cmake openblasCompat gmm fltk libjpeg zlib libGLU_combined
|
buildInputs = [ cmake openblasCompat gmm fltk libjpeg zlib libGLU_combined
|
||||||
|
|
|
@ -4,17 +4,24 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "makemkv-${ver}";
|
name = "makemkv-${ver}";
|
||||||
ver = "1.14.0";
|
ver = "1.14.1";
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
|
|
||||||
|
# Using two URLs as the first one will break as soon as a new version is released
|
||||||
src_bin = fetchurl {
|
src_bin = fetchurl {
|
||||||
url = "http://www.makemkv.com/download/makemkv-bin-${ver}.tar.gz";
|
urls = [
|
||||||
sha256 = "1xm5pww6jf3m704y7d7nc2ni2a6ygxwb2c665agg2i059sppwz1f";
|
"http://www.makemkv.com/download/makemkv-bin-${ver}.tar.gz"
|
||||||
|
"http://www.makemkv.com/download/old/makemkv-bin-${ver}.tar.gz"
|
||||||
|
];
|
||||||
|
sha256 = "1n4gjb1531gkvnjzipw63v3zdxmrq5nai9nn6m2ix3lskksjrrhp";
|
||||||
};
|
};
|
||||||
|
|
||||||
src_oss = fetchurl {
|
src_oss = fetchurl {
|
||||||
url = "http://www.makemkv.com/download/makemkv-oss-${ver}.tar.gz";
|
urls = [
|
||||||
sha256 = "1ihma2nv7zgqx1psgj3bdz723h94f4vk8mbahxl1v4v2rn9kg25z";
|
"http://www.makemkv.com/download/makemkv-oss-${ver}.tar.gz"
|
||||||
|
"http://www.makemkv.com/download/old/makemkv-oss-${ver}.tar.gz"
|
||||||
|
];
|
||||||
|
sha256 = "0ysb0nm11vp2ni838p5q3gqan5nrqbr7rz0h24j8p62827pib3pw";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ stdenv, fetchzip }:
|
{ stdenv, fetchzip }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.130";
|
version = "0.133";
|
||||||
in fetchzip {
|
in fetchzip {
|
||||||
name = "culmus-${version}";
|
name = "culmus-${version}";
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ in fetchzip {
|
||||||
cp -v *.ttf $out/share/fonts/truetype/
|
cp -v *.ttf $out/share/fonts/truetype/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
sha256 = "0v5vm8j2bxnw2qn0640kyibn4h8ck8cidhx2pixi5xsayr0ij1n6";
|
sha256 = "1jxg2wf4kwasp5cia00nki2lrcdnhsyh4yy7d05l0a9bim5hq2lr";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Culmus Hebrew fonts";
|
description = "Culmus Hebrew fonts";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ stdenv, fetchzip }:
|
{ stdenv, fetchzip }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "5.1.0";
|
version = "5.5.0";
|
||||||
in fetchzip rec {
|
in fetchzip rec {
|
||||||
name = "font-awesome-${version}";
|
name = "font-awesome-${version}";
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ in fetchzip rec {
|
||||||
unzip -j $downloadedFile "Font-Awesome-${version}/use-on-desktop/Font Awesome 5 Free-Solid-900.otf" -d $out/share/fonts/opentype
|
unzip -j $downloadedFile "Font-Awesome-${version}/use-on-desktop/Font Awesome 5 Free-Solid-900.otf" -d $out/share/fonts/opentype
|
||||||
'';
|
'';
|
||||||
|
|
||||||
sha256 = "12m35bk61d8pddhybg2jpl5xv16dclz1qacdmk05m11nzshd3nz1";
|
sha256 = "1drjc40glfqhwmfn3s4gz8hz1x0ncrwdr9n1i25m1l7pvsk26f5f";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Font Awesome - OTF font";
|
description = "Font Awesome - OTF font";
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{ stdenv, fetchzip }:
|
{ stdenv, fetchzip }:
|
||||||
|
|
||||||
fetchzip {
|
fetchzip {
|
||||||
name = "lmodern-2.004.4";
|
name = "lmodern-2.004.5";
|
||||||
|
|
||||||
url = mirror://debian/pool/main/l/lmodern/lmodern_2.004.4.orig.tar.gz;
|
url = mirror://debian/pool/main/l/lmodern/lmodern_2.004.5.orig.tar.gz;
|
||||||
|
|
||||||
postFetch = ''
|
postFetch = ''
|
||||||
tar xzvf $downloadedFile
|
tar xzvf $downloadedFile
|
||||||
|
@ -11,13 +11,13 @@ fetchzip {
|
||||||
mkdir -p $out/texmf-dist/
|
mkdir -p $out/texmf-dist/
|
||||||
mkdir -p $out/share/fonts/
|
mkdir -p $out/share/fonts/
|
||||||
|
|
||||||
cp -r lmodern-2.004.4/* $out/texmf-dist/
|
cp -r lmodern-2.004.5/* $out/texmf-dist/
|
||||||
cp -r lmodern-2.004.4/fonts/{opentype,type1} $out/share/fonts/
|
cp -r lmodern-2.004.5/fonts/{opentype,type1} $out/share/fonts/
|
||||||
|
|
||||||
ln -s -r $out/texmf* $out/share/
|
ln -s -r $out/texmf* $out/share/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
sha256 = "13n7ls8ss4sffd6c1iw2wb5hbq642i0fmivm76mbqwf652l002i5";
|
sha256 = "11f10qnp8a435lhh19zc2znlf9q4isynmvjmvr63g5n5fhvhc192";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Latin Modern font";
|
description = "Latin Modern font";
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
pname = "dde-session-ui";
|
pname = "dde-session-ui";
|
||||||
version = "4.6.1";
|
version = "4.6.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "linuxdeepin";
|
owner = "linuxdeepin";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "190dgrwr5ji2bjndg2bmggpyccdz6pa3acx86yqmxfmirx669w92";
|
sha256 = "1fxlrj7vv7nqllwpwc8mxiv9bfqcj9b2qwkpjaq326pfmg5p5lhq";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -7,13 +7,13 @@
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
pname = "deepin-terminal";
|
pname = "deepin-terminal";
|
||||||
version = "3.0.10";
|
version = "3.0.10.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "linuxdeepin";
|
owner = "linuxdeepin";
|
||||||
repo = "deepin-terminal";
|
repo = "deepin-terminal";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1jrzx0igq2csb25k4ak5hj81gpvb7zwbg4i64p4mln4vl7x27i5q";
|
sha256 = "0ylhp8q9kfdq9l69drawjaf0q8vcqyflb2a3zfnwbnf06dlpvkz6";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{ stdenv, fetchurl, makeWrapper, jre, unzip }:
|
{ stdenv, fetchurl, makeWrapper, jre, unzip }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.3.0";
|
version = "1.3.10";
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
inherit version;
|
inherit version;
|
||||||
name = "kotlin-${version}";
|
name = "kotlin-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
|
url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
|
||||||
sha256 = "14i5qmni1dzfamab6y659b5nvgp99m1abx71i83zcbfi9nw1r1gz";
|
sha256 = "0zf6p0pzdi6dz2d4dca364wf30zyq326xdfg97zk8kp1a4qwjyfa";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ jre ] ;
|
propagatedBuildInputs = [ jre ] ;
|
||||||
|
|
|
@ -21,42 +21,42 @@ let
|
||||||
else
|
else
|
||||||
throw "openjdk requires i686-linux or x86_64 linux";
|
throw "openjdk requires i686-linux or x86_64 linux";
|
||||||
|
|
||||||
update = "181";
|
update = "192";
|
||||||
build = "13";
|
build = "26";
|
||||||
baseurl = "http://hg.openjdk.java.net/jdk8u/jdk8u";
|
baseurl = "http://hg.openjdk.java.net/jdk8u/jdk8u";
|
||||||
repover = "jdk8u${update}-b${build}";
|
repover = "jdk8u${update}-b${build}";
|
||||||
paxflags = if stdenv.isi686 then "msp" else "m";
|
paxflags = if stdenv.isi686 then "msp" else "m";
|
||||||
jdk8 = fetchurl {
|
jdk8 = fetchurl {
|
||||||
url = "${baseurl}/archive/${repover}.tar.gz";
|
url = "${baseurl}/archive/${repover}.tar.gz";
|
||||||
sha256 = "0rlbf3v55d45fl9gigawghd0vs0cr3k48zj48qlv3k9yxg1knq9a";
|
sha256 = "1hx5sfsglc101aqs9n7cz7rh447d6rxfxkbw03crvzbvy9n6ag2d";
|
||||||
};
|
};
|
||||||
langtools = fetchurl {
|
langtools = fetchurl {
|
||||||
url = "${baseurl}/langtools/archive/${repover}.tar.gz";
|
url = "${baseurl}/langtools/archive/${repover}.tar.gz";
|
||||||
sha256 = "1sk5f45ndxj8ch9pqfwmis5hnb09an7nvz3n1wyd5la42jprmwaf";
|
sha256 = "0vq6nlzs85agjkilpr53v7kjrd99kq770zipqghjmlfzyiy9xk4q";
|
||||||
};
|
};
|
||||||
hotspot = fetchurl {
|
hotspot = fetchurl {
|
||||||
url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
|
url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
|
||||||
sha256 = "0pvx5hwmx61sbyi02pngfbky219raqqjw2xjms01nz18mzr77c84";
|
sha256 = "0q5z2glfiip0lsisp1zy1zcw91hi1kznphm7w3iagq8s7550wbvh";
|
||||||
};
|
};
|
||||||
corba = fetchurl {
|
corba = fetchurl {
|
||||||
url = "${baseurl}/corba/archive/${repover}.tar.gz";
|
url = "${baseurl}/corba/archive/${repover}.tar.gz";
|
||||||
sha256 = "1b0r3fjv9q85j74lgzr2vv4z5gl13bb46zvh36mfks6j74z7ki1z";
|
sha256 = "1mgg82066c9wjsj9ciqv4lrn1av5cb86hq00lkpsffdqbwx3vrm3";
|
||||||
};
|
};
|
||||||
jdk = fetchurl {
|
jdk = fetchurl {
|
||||||
url = "${baseurl}/jdk/archive/${repover}.tar.gz";
|
url = "${baseurl}/jdk/archive/${repover}.tar.gz";
|
||||||
sha256 = "1a5gm4w4f79wj0ciwcv8l8m4ha8hjs2r62bvj0vls2kwr5c8znn4";
|
sha256 = "1s87a49hl4h21kf2yh1w67wgb179j0f5v62cxbrvvd5lk2h5jyvf";
|
||||||
};
|
};
|
||||||
jaxws = fetchurl {
|
jaxws = fetchurl {
|
||||||
url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
|
url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
|
||||||
sha256 = "1f92s3mpbqxzgh5pazqm8pn5swqkmdrkm7mnmga2kgshzlknh6pm";
|
sha256 = "05alcixcxcdms373byh21d2brsky6kj14b3h80cs9bi1gfnbqilq";
|
||||||
};
|
};
|
||||||
jaxp = fetchurl {
|
jaxp = fetchurl {
|
||||||
url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
|
url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
|
||||||
sha256 = "0fwdqr031yyyjrpsk9fwp4y1vlfmdr1rdzgk44gyypwjdap7a11d";
|
sha256 = "1r3fqnl5jqmxzsjqjrka35f8hwqqap9jg8zwqk2vv9qikrm7frhl";
|
||||||
};
|
};
|
||||||
nashorn = fetchurl {
|
nashorn = fetchurl {
|
||||||
url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
|
url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
|
||||||
sha256 = "0j5f98pa6746m1xq4842qq5d1ql5x8wvcrjmjk433slgma9hf8pj";
|
sha256 = "0lzwi35lp4a477jkmfa53kxy3g9lzcmh56wprg805gbv4sjnkjk1";
|
||||||
};
|
};
|
||||||
openjdk8 = stdenv.mkDerivation {
|
openjdk8 = stdenv.mkDerivation {
|
||||||
name = "openjdk-8u${update}b${build}";
|
name = "openjdk-8u${update}b${build}";
|
||||||
|
|
|
@ -897,6 +897,7 @@ self: super: {
|
||||||
cryptohash-md5 = doJailbreak super.cryptohash-md5;
|
cryptohash-md5 = doJailbreak super.cryptohash-md5;
|
||||||
text-short = doJailbreak super.text-short;
|
text-short = doJailbreak super.text-short;
|
||||||
gitHUD = dontCheck super.gitHUD;
|
gitHUD = dontCheck super.gitHUD;
|
||||||
|
githud = dontCheck super.githud;
|
||||||
|
|
||||||
# https://github.com/aisamanra/config-ini/issues/12
|
# https://github.com/aisamanra/config-ini/issues/12
|
||||||
config-ini = dontCheck super.config-ini;
|
config-ini = dontCheck super.config-ini;
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "groovy-${version}";
|
name = "groovy-${version}";
|
||||||
version = "2.5.3";
|
version = "2.5.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://dl.bintray.com/groovy/maven/apache-groovy-binary-${version}.zip";
|
url = "http://dl.bintray.com/groovy/maven/apache-groovy-binary-${version}.zip";
|
||||||
sha256 = "1iw5iiygl0a7dzh22gkjhzzxd7r8kb4lncjvvgqfpxx967djp527";
|
sha256 = "1s661d5kwiafv5i1pq2b7k8b2fd7m2zp3xwcrf4iv1iik033djdj";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ unzip makeWrapper ];
|
buildInputs = [ unzip makeWrapper ];
|
||||||
|
|
|
@ -6,11 +6,11 @@ rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "3" "3" "";
|
||||||
jruby = stdenv.mkDerivation rec {
|
jruby = stdenv.mkDerivation rec {
|
||||||
name = "jruby-${version}";
|
name = "jruby-${version}";
|
||||||
|
|
||||||
version = "9.2.1.0";
|
version = "9.2.4.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
|
url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
|
||||||
sha256 = "0d98ydiavdr811xsrz9zbw9yjpn0acc2ycakqpfg1vs4n5w7764c";
|
sha256 = "034asndnqjgha74b6qr1gza9xfrmq9m8f6ysnblgd2axr218qqxr";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ];
|
buildInputs = [ makeWrapper ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, cmake, enableShared ? true }:
|
{ stdenv, fetchFromGitHub, fetchpatch, cmake, enableShared ? true }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "5.2.1";
|
version = "5.2.1";
|
||||||
|
@ -11,6 +11,13 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "1cd8yq8va457iir1hlf17ksx11fx2hlb8i4jml8gj1875pizm0pk";
|
sha256 = "1cd8yq8va457iir1hlf17ksx11fx2hlb8i4jml8gj1875pizm0pk";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/fmtlib/fmt/commit/9d0c9c4bb145a286f725cd38c90331eee7addc7f.patch";
|
||||||
|
sha256 = "1gy93mb1s1mq746kxj4c564k2mppqp5khqdfa6im88rv29cvrl4y";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "granite";
|
pname = "granite";
|
||||||
version = "5.2.0";
|
version = "5.2.1";
|
||||||
|
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1v1yhz6rp616xi417m9r8072s6mpz5i8vkdyj264b73p0lgjwh40";
|
sha256 = "18rw1lv6zk5w2cq8bv6b869z3cdikn9gzk30gw1s9f8n06bh737h";
|
||||||
};
|
};
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "hpx-${version}";
|
name = "hpx-${version}";
|
||||||
version = "1.1.0";
|
version = "1.2.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "STEllAR-GROUP";
|
owner = "STEllAR-GROUP";
|
||||||
repo = "hpx";
|
repo = "hpx";
|
||||||
rev = "${version}";
|
rev = "${version}";
|
||||||
sha256 = "0xlhnycmpy2jgiqyzpwmkdrl6drf46ywdsl0qm4vksvjxqfgk9z3";
|
sha256 = "1rliv42glns60bpmmvmgrglgmii42p8bmji349r6mr68f48iv4dx";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ boost hwloc gperftools ];
|
buildInputs = [ boost hwloc gperftools ];
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
{ stdenv, fetchurl, gmp }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "isl-0.12.2"; # CLooG 0.16.3 fails to build with ISL 0.08.
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "http://isl.gforge.inria.fr/${name}.tar.bz2";
|
|
||||||
sha256 = "1d0zs64yw6fzs6b7kxq6nh9kvas16h8b43agwh30118jjzpdpczl";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ gmp ];
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = https://www.kotnet.org/~skimo/isl/;
|
|
||||||
license = stdenv.lib.licenses.lgpl21;
|
|
||||||
description = "A library for manipulating sets and relations of integer points bounded by linear constraints";
|
|
||||||
platforms = stdenv.lib.platforms.all;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ stdenv, fetchurl, gmp }:
|
{ stdenv, fetchurl, gmp }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "isl-0.15";
|
name = "isl-0.20";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://isl.gforge.inria.fr/${name}.tar.xz";
|
url = "http://isl.gforge.inria.fr/${name}.tar.xz";
|
||||||
sha256 = "1m922l5bz69lvkcxrib7lvjqwfqsr8rpbzgmb2aq07bp76460jhh";
|
sha256 = "1akpgq0rbqbah5517blg2zlnfvjxfcl9cjrfc75nbcx5p2gnlnd5";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ gmp ];
|
buildInputs = [ gmp ];
|
||||||
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://www.kotnet.org/~skimo/isl/;
|
homepage = http://isl.gforge.inria.fr/;
|
||||||
license = stdenv.lib.licenses.lgpl21;
|
license = stdenv.lib.licenses.lgpl21;
|
||||||
description = "A library for manipulating sets and relations of integer points bounded by linear constraints";
|
description = "A library for manipulating sets and relations of integer points bounded by linear constraints";
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = stdenv.lib.platforms.all;
|
|
@ -1,21 +1,31 @@
|
||||||
{stdenv, fetchurl} :
|
{stdenv, fetchurl, jre} :
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "jflex-1.6.1";
|
name = "jflex-1.7.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://jflex.de/${name}.tar.gz";
|
url = "http://jflex.de/release/${name}.tar.gz";
|
||||||
sha256 = "1h7q2vhb4s42g4pqz5xxxliagprray7i9krr6hyaz1mjlx7gnycq";
|
sha256 = "1k7bqw1mn569g9dxc0ia3yz1bzgzs5w52lh1xn3hgj7k5ymh54kk";
|
||||||
};
|
};
|
||||||
|
|
||||||
sourceRoot = name;
|
sourceRoot = name;
|
||||||
|
|
||||||
phases = [ "unpackPhase" "installPhase" ];
|
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp -a * $out
|
cp -a * $out
|
||||||
|
rm -f $out/bin/jflex.bat
|
||||||
|
|
||||||
patchShebangs $out
|
patchShebangs $out
|
||||||
|
sed -i -e '/^JAVA=java/ s#java#${jre}/bin/java#' $out/bin/jflex
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
doInstallCheck = true;
|
||||||
|
installCheckPhase = ''
|
||||||
|
runHook preInstallCheck
|
||||||
|
$out/bin/jflex --version
|
||||||
|
runHook postInstallCheck
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "librealsense-${version}";
|
name = "librealsense-${version}";
|
||||||
version = "2.16.1";
|
version = "2.16.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "IntelRealSense";
|
owner = "IntelRealSense";
|
||||||
repo = "librealsense";
|
repo = "librealsense";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0vs2vcfmsb574bvdqrfgdmam0p631c738apk0w9mjdqk59zy1bz2";
|
sha256 = "0664lsdw9a3s3apqiv9kkzfnz86ai9wdc8y00qyxrmxq9lpjsq11";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ stdenv, fetchFromGitHub, cmake }:
|
{ stdenv, fetchFromGitHub, cmake }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "2.7.0";
|
version = "2.8.1";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "libversion-${version}";
|
name = "libversion-${version}";
|
||||||
|
@ -10,7 +10,7 @@ stdenv.mkDerivation {
|
||||||
owner = "repology";
|
owner = "repology";
|
||||||
repo = "libversion";
|
repo = "libversion";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0brk2mbazc7yz0h4zsvbybbaymf497dgxnc74qihnvbi4z4rlqpj";
|
sha256 = "0h0yfcgxll09dckzjb1im3yf54cjkpsflr7r4kwz1jcr3fxq41fz";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
|
@ -1,22 +1,24 @@
|
||||||
{ stdenv, fetchurl, SDL, eigen, epoxy, fftw, gtest, pkgconfig }:
|
{ stdenv, fetchurl, SDL2, eigen, epoxy, fftw, gtest, pkgconfig }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "movit-${version}";
|
name = "movit-${version}";
|
||||||
version = "1.5.1";
|
version = "1.6.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://movit.sesse.net/${name}.tar.gz";
|
url = "https://movit.sesse.net/${name}.tar.gz";
|
||||||
sha256 = "1259iq2ixiprk4mn7ypapinbg2w1sjq1aivzzbbch9i23kcfsd44";
|
sha256 = "1q9h086v6h3da4b9qyflcjx73cgnqjhb92rv6g4j90m34dndaa3l";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
GTEST_DIR = "${gtest}";
|
GTEST_DIR = "${gtest.src}/googletest";
|
||||||
|
|
||||||
propagatedBuildInputs = [ eigen epoxy ];
|
propagatedBuildInputs = [ eigen epoxy ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
buildInputs = [ SDL fftw gtest ];
|
buildInputs = [ SDL2 fftw gtest ];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "High-performance, high-quality video filters for the GPU";
|
description = "High-performance, high-quality video filters for the GPU";
|
||||||
|
|
|
@ -14,11 +14,11 @@ assert withGf2x -> gf2x != null;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "ntl-${version}";
|
name = "ntl-${version}";
|
||||||
version = "11.3.1";
|
version = "11.3.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.shoup.net/ntl/ntl-${version}.tar.gz";
|
url = "http://www.shoup.net/ntl/ntl-${version}.tar.gz";
|
||||||
sha256 = "08a1v92js13ij6lpf75xkjc8iy2w89igd7hy58abll6wnjj107zs";
|
sha256 = "17bfsvn72zjqfibnxscyf4hbk3inndh4r89jd2zg7mgqmd2k3fl4";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "protozero-${version}";
|
name = "protozero-${version}";
|
||||||
version = "1.6.3";
|
version = "1.6.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mapbox";
|
owner = "mapbox";
|
||||||
repo = "protozero";
|
repo = "protozero";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0lalk6hp7hqfn4fhhl2zb214idwm4y8dj32vi383arckzmsryhiw";
|
sha256 = "0hcawgyj3wxqikx5xqs1ag12w8vz00gb1rzx131jq51yhzc6bwrb";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
|
@ -68,10 +68,6 @@ nodePackages // {
|
||||||
postInstall = "npm run-script prepublish";
|
postInstall = "npm run-script prepublish";
|
||||||
};
|
};
|
||||||
|
|
||||||
phantomjs = nodePackages.phantomjs.override {
|
|
||||||
buildInputs = [ pkgs.phantomjs2 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
pnpm = nodePackages.pnpm.override {
|
pnpm = nodePackages.pnpm.override {
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ];
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
||||||
postInstall = let
|
postInstall = let
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k }:
|
{ lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k }:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
version = "4.10.0";
|
version = "4.11.0";
|
||||||
pname = "breathe";
|
pname = "breathe";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "e94370b8b607a32d9611ed8246e635f02c21dc6847f04e888a00f66a12694eff";
|
sha256 = "05x3qrvsriy0cn0p4bxnzhp27pvxbq2vxlxncr2wqh003gpbp4fa";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ docutils six sphinx ];
|
propagatedBuildInputs = [ docutils six sphinx ];
|
||||||
|
|
|
@ -9,11 +9,11 @@
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "guessit";
|
pname = "guessit";
|
||||||
version = "3.0.0";
|
version = "3.0.3";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "bf17e78783cf13bf903750770de4c3bb6c9ca89baafedb1612794660b6ebe32b";
|
sha256 = "1q06b3k31bfb8cxjimpf1rkcrwnc596a9cppjw15minvdangl32r";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Tests require more packages.
|
# Tests require more packages.
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{ stdenv, fetchFromGitHub, ocamlPackages, cf-private, CoreServices }:
|
{ stdenv, fetchFromGitHub, ocamlPackages, cf-private, CoreServices }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.85.0";
|
version = "0.86.0";
|
||||||
name = "flow-${version}";
|
name = "flow-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "facebook";
|
owner = "facebook";
|
||||||
repo = "flow";
|
repo = "flow";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
sha256 = "0kci017bl4ihq89zpwlgdlwzv7kili8146940kyar5v66kgf7xsh";
|
sha256 = "0sxg066bfkgqyq2fcjkff4jbhpxrzsqgz53h2b4wscxr076r9bjp";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
{ stdenv, buildGoPackage, fetchFromGitHub }:
|
||||||
|
|
||||||
|
buildGoPackage rec {
|
||||||
|
name = "jid-${version}";
|
||||||
|
version = "0.7.2";
|
||||||
|
|
||||||
|
goPackagePath = "github.com/simeji/jid";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "simeji";
|
||||||
|
repo = "jid";
|
||||||
|
rev = "${version}";
|
||||||
|
sha256 = "0p4srp85ilcafrn9d36rzpzg5k5jd7is93p68hamgxqyiiw6a8fi";
|
||||||
|
};
|
||||||
|
|
||||||
|
goDeps = ./deps.nix;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A command-line tool to incrementally drill down JSON";
|
||||||
|
homepage = https://github.com/simeji/jid;
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ stesie ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
|
||||||
|
[
|
||||||
|
{
|
||||||
|
goPackagePath = "github.com/bitly/go-simplejson";
|
||||||
|
fetch = {
|
||||||
|
type = "git";
|
||||||
|
url = "https://github.com/bitly/go-simplejson";
|
||||||
|
rev = "9db4a59bd4d803ae0c173a7d8a538e056cd59d57";
|
||||||
|
sha256 = "0cbnjzjq55jnzk07zdk7nb96yzgpyawm1r6km3xignn8ih4bnn6g";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
goPackagePath = "github.com/fatih/color";
|
||||||
|
fetch = {
|
||||||
|
type = "git";
|
||||||
|
url = "https://github.com/fatih/color";
|
||||||
|
rev = "3f9d52f7176a6927daacff70a3e8d1dc2025c53e";
|
||||||
|
sha256 = "165ww24x6ba47ji4j14mp3f006ksnmi53ws9280pgd2zcw91nbn8";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
goPackagePath = "github.com/mattn/go-runewidth";
|
||||||
|
fetch = {
|
||||||
|
type = "git";
|
||||||
|
url = "https://github.com/mattn/go-runewidth";
|
||||||
|
rev = "c88d7e5f2e24de48a200a2655ac8a0910be9a0f7";
|
||||||
|
sha256 = "14prmzjlv9z31n6caaaq1kwi4p0mp3x4pv5r7d0575lcampa41jw";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
goPackagePath = "github.com/nsf/termbox-go";
|
||||||
|
fetch = {
|
||||||
|
type = "git";
|
||||||
|
url = "https://github.com/nsf/termbox-go";
|
||||||
|
rev = "60ab7e3d12ed91bc1b2486559c4b3a6b62297577";
|
||||||
|
sha256 = "040064fh7wzdmv8flw6svi007hiqs1cjk1a3k3gpg7gii3npifsl";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
goPackagePath = "github.com/nwidger/jsoncolor";
|
||||||
|
fetch = {
|
||||||
|
type = "git";
|
||||||
|
url = "https://github.com/nwidger/jsoncolor";
|
||||||
|
rev = "75a6de4340e59be95f0884b9cebdda246e0fdf40";
|
||||||
|
sha256 = "0aiv42xijrqgrxfx6pfyrndpwqv8i1qwsk190jdczyjxlnki2nki";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
goPackagePath = "github.com/pkg/errors";
|
||||||
|
fetch = {
|
||||||
|
type = "git";
|
||||||
|
url = "https://github.com/pkg/errors";
|
||||||
|
rev = "059132a15dd08d6704c67711dae0cf35ab991756";
|
||||||
|
sha256 = "0bxkbh2rq40kdk8i05am5np77cnskx3571v2k300j5mmj1rl1ijg";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]
|
|
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
|
||||||
# On Linux, c-reduce's preferred way to reason about
|
# On Linux, c-reduce's preferred way to reason about
|
||||||
# the cpu architecture/topology is to use 'lscpu',
|
# the cpu architecture/topology is to use 'lscpu',
|
||||||
# so let's make sure it knows where to find it:
|
# so let's make sure it knows where to find it:
|
||||||
patchPhase = stdenv.lib.optionalString stdenv.isLinux ''
|
postPatch = stdenv.lib.optionalString stdenv.isLinux ''
|
||||||
substituteInPlace creduce/creduce_utils.pm --replace \
|
substituteInPlace creduce/creduce_utils.pm --replace \
|
||||||
lscpu ${utillinux}/bin/lscpu
|
lscpu ${utillinux}/bin/lscpu
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
version = "1.1.6";
|
version = "1.1.7";
|
||||||
name = "ocaml${ocaml.version}-ocp-index-${version}";
|
name = "ocaml${ocaml.version}-ocp-index-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "OCamlPro";
|
owner = "OCamlPro";
|
||||||
repo = "ocp-index";
|
repo = "ocp-index";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0p367aphz9w71qbm3y47qwhgqmyai28l96i1ifb6kg7awph5qmj3";
|
sha256 = "0i50y033y78wcfgz3b81d34p98azahl94w4b63ac0zyczlwlhvkf";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ ocaml findlib dune ocp-build cmdliner re ];
|
buildInputs = [ ocaml findlib dune ocp-build cmdliner re ];
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ stdenv, lib, fetchurl }:
|
{ stdenv, lib, fetchurl }:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "now-cli-${version}";
|
name = "now-cli-${version}";
|
||||||
version = "11.5.2";
|
version = "12.1.3";
|
||||||
|
|
||||||
# TODO: switch to building from source, if possible
|
# TODO: switch to building from source, if possible
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/zeit/now-cli/releases/download/${version}/now-linux.gz";
|
url = "https://github.com/zeit/now-cli/releases/download/${version}/now-linux.gz";
|
||||||
sha256 = "1aavhslff2v5ap11s3xxrmdgs4n9yyp74sj3kbw6kwxd4cq1cfxz";
|
sha256 = "0jg0x227g0x2fby7mnhfyrfyja59003isg7wyh2vqcfshh5hsaq0";
|
||||||
};
|
};
|
||||||
|
|
||||||
sourceRoot = ".";
|
sourceRoot = ".";
|
||||||
|
|
|
@ -39,16 +39,16 @@ in rec {
|
||||||
|
|
||||||
unstable = fetchurl rec {
|
unstable = fetchurl rec {
|
||||||
# NOTE: Don't forget to change the SHA256 for staging as well.
|
# NOTE: Don't forget to change the SHA256 for staging as well.
|
||||||
version = "3.18";
|
version = "3.20";
|
||||||
url = "https://dl.winehq.org/wine/source/3.x/wine-${version}.tar.xz";
|
url = "https://dl.winehq.org/wine/source/3.x/wine-${version}.tar.xz";
|
||||||
sha256 = "0xqs76hxcym8nb95r7l72xx0msbscp7fhkr1wrv4r0923d5x9s4v";
|
sha256 = "063garmflbna3mhph8k0dv0bkzq8x75x5xrd0j8y0mjh10i13mik";
|
||||||
inherit (stable) mono gecko32 gecko64;
|
inherit (stable) mono gecko32 gecko64;
|
||||||
};
|
};
|
||||||
|
|
||||||
staging = fetchFromGitHub rec {
|
staging = fetchFromGitHub rec {
|
||||||
# https://github.com/wine-compholio/wine-staging/releases
|
# https://github.com/wine-staging/wine-staging/releases
|
||||||
inherit (unstable) version;
|
inherit (unstable) version;
|
||||||
sha256 = "18g1lmqzkc7ngppynimfvza1gkdhqlnjbvnckmaws847ns4i0kzp";
|
sha256 = "049cwllf4aybrhj4l2i3vd5jvagjz4d448404zkyy0lfxr08id3p";
|
||||||
owner = "wine-staging";
|
owner = "wine-staging";
|
||||||
repo = "wine-staging";
|
repo = "wine-staging";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "equilux-theme-${version}";
|
name = "equilux-theme-${version}";
|
||||||
version = "20180927";
|
version = "20181029";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ddnexus";
|
owner = "ddnexus";
|
||||||
repo = "equilux-theme";
|
repo = "equilux-theme";
|
||||||
rev = "equilux-v${version}";
|
rev = "equilux-v${version}";
|
||||||
sha256 = "1j7ykygmwv3dmzqdc9byir86sjz6ykhv9bv1pll1bjvvnaalyzgk";
|
sha256 = "0lv2yyxhnmnkwxp576wnb01id4fp734b5z5n0l67sg5z7vc2h8fc";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ gnome3.glib libxml2 bc ];
|
nativeBuildInputs = [ gnome3.glib libxml2 bc ];
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "materia-theme-${version}";
|
name = "materia-theme-${version}";
|
||||||
version = "20180928";
|
version = "20181115";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nana-4";
|
owner = "nana-4";
|
||||||
repo = "materia-theme";
|
repo = "materia-theme";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0v4mvc4rrf3jwf77spn9f5sqxp72v66k2k467r0aw3nglcpm4wpv";
|
sha256 = "1vfwzvzbs4336vjg6y4asm21p64xc5f7cfsld5l159174ikcz5fp";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ gnome3.glib libxml2 bc ];
|
nativeBuildInputs = [ gnome3.glib libxml2 bc ];
|
||||||
|
@ -24,7 +24,6 @@ stdenv.mkDerivation rec {
|
||||||
sed -i install.sh \
|
sed -i install.sh \
|
||||||
-e "s|if .*which gnome-shell.*;|if true;|" \
|
-e "s|if .*which gnome-shell.*;|if true;|" \
|
||||||
-e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}|"
|
-e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}|"
|
||||||
mkdir -p $out/share/themes
|
|
||||||
./install.sh --dest $out/share/themes
|
./install.sh --dest $out/share/themes
|
||||||
rm $out/share/themes/*/COPYING
|
rm $out/share/themes/*/COPYING
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -2871,6 +2871,16 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
vim-ps1 = buildVimPluginFrom2Nix {
|
||||||
|
name = "vim-ps1-2017-10-20";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "PProvost";
|
||||||
|
repo = "vim-ps1";
|
||||||
|
rev = "0b2509f210f5dc73001fdcfe8fd7ac354b363388";
|
||||||
|
sha256 = "0fkqd9xnr0310pmi5hjxfwh9x6b75z6q1w8qp1alm4qcv425q9rm";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
vim-puppet = buildVimPluginFrom2Nix {
|
vim-puppet = buildVimPluginFrom2Nix {
|
||||||
name = "vim-puppet-2018-09-24";
|
name = "vim-puppet-2018-09-24";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
|
@ -3572,4 +3582,4 @@
|
||||||
sha256 = "04pv7mmlz9ccgzfg8sycqxplaxpbyh7pmhwcw47b2xwnazjz49d6";
|
sha256 = "04pv7mmlz9ccgzfg8sycqxplaxpbyh7pmhwcw47b2xwnazjz49d6";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -217,6 +217,7 @@ phanviet/vim-monokai-pro
|
||||||
plasticboy/vim-markdown
|
plasticboy/vim-markdown
|
||||||
posva/vim-vue
|
posva/vim-vue
|
||||||
powerman/vim-plugin-AnsiEsc
|
powerman/vim-plugin-AnsiEsc
|
||||||
|
PProvost/vim-ps1
|
||||||
python-mode/python-mode
|
python-mode/python-mode
|
||||||
Quramy/tsuquyomi
|
Quramy/tsuquyomi
|
||||||
racer-rust/vim-racer
|
racer-rust/vim-racer
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{ stdenv, fetchurl, pkgconfig, libnl }:
|
{ stdenv, fetchurl, pkgconfig, libnl }:
|
||||||
|
|
||||||
let
|
let
|
||||||
ver = "2018.3";
|
ver = "2018.4";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "batctl-${ver}";
|
name = "batctl-${ver}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://downloads.open-mesh.org/batman/releases/batman-adv-${ver}/${name}.tar.gz";
|
url = "https://downloads.open-mesh.org/batman/releases/batman-adv-${ver}/${name}.tar.gz";
|
||||||
sha256 = "1rljx2jlh3wlk6l9p068mhbqpdr5p5qnwm0336ay1316x0zjvqr4";
|
sha256 = "0mv2vlzcqfh5yavg2sqncca9iqgxi6llv83wwwsf3d38x2jjff74";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
{ stdenv, buildPackages, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args:
|
{ stdenv, buildPackages, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args:
|
||||||
|
|
||||||
buildLinux (args // rec {
|
buildLinux (args // rec {
|
||||||
version = "4.20-rc2";
|
version = "4.20-rc3";
|
||||||
modDirVersion = "4.20.0-rc2";
|
modDirVersion = "4.20.0-rc3";
|
||||||
extraMeta.branch = "4.20";
|
extraMeta.branch = "4.20";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
|
url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
|
||||||
sha256 = "0vmzrsfdg8sjyq833szirsv83wj2lgd92hy1fw5rp7xnjavn69hc";
|
sha256 = "0iin34alr5ax15pvilhdn5pifqav4gkxalb7vqb8zvxnhsm6kk58";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Should the testing kernels ever be built on Hydra?
|
# Should the testing kernels ever be built on Hydra?
|
||||||
|
|
|
@ -10,13 +10,13 @@ assert kernel != null;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "spl-${version}-${kernel.version}";
|
name = "spl-${version}-${kernel.version}";
|
||||||
version = "0.7.11";
|
version = "0.7.12";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "zfsonlinux";
|
owner = "zfsonlinux";
|
||||||
repo = "spl";
|
repo = "spl";
|
||||||
rev = "spl-${version}";
|
rev = "spl-${version}";
|
||||||
sha256 = "15h02g5k3i20y2cycc72vr6hdn8n70jmzqii8dmx9za6bl9nk2rm";
|
sha256 = "13zqh1g132g63zv54l3bsg5kras9mllkx9wvlnfs13chfr7vpp4p";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./install_prefix.patch ];
|
patches = [ ./install_prefix.patch ];
|
||||||
|
|
|
@ -158,12 +158,12 @@ in {
|
||||||
# to be adapted
|
# to be adapted
|
||||||
zfsStable = common {
|
zfsStable = common {
|
||||||
# comment/uncomment if breaking kernel versions are known
|
# comment/uncomment if breaking kernel versions are known
|
||||||
incompatibleKernelVersion = "4.19";
|
# incompatibleKernelVersion = "4.19";
|
||||||
|
|
||||||
# this package should point to the latest release.
|
# this package should point to the latest release.
|
||||||
version = "0.7.11";
|
version = "0.7.12";
|
||||||
|
|
||||||
sha256 = "0m9wkq6wf4cg8w38s3avd0bvybnv0avqwxk3gwz9rgb9rn0m98jg";
|
sha256 = "1j432nb3a86isghdysir9xi6l5djmb5fbc5s9zr0rwg4ziisskbh";
|
||||||
|
|
||||||
extraPatches = [
|
extraPatches = [
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
|
|
|
@ -4,11 +4,11 @@ with stdenv.lib;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "neo4j-${version}";
|
name = "neo4j-${version}";
|
||||||
version = "3.4.9";
|
version = "3.4.10";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz";
|
url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz";
|
||||||
sha256 = "0kg0dr42qi8cwg3i1hcgczd4psh97s54q5zd8z2wn1fqf4m2h597";
|
sha256 = "0wxcwsnnwk08w3zaz67aa93ysrl61lsy41xynq1sy6z31a7gx9jr";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ makeWrapper jre8 which gawk ];
|
buildInputs = [ makeWrapper jre8 which gawk ];
|
||||||
|
|
|
@ -63,8 +63,8 @@ in rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
ansible_2_7 = generic {
|
ansible_2_7 = generic {
|
||||||
version = "2.7.1";
|
version = "2.7.2";
|
||||||
sha256 = "0fg95x2nr3j4rwnlyd2n03h91xx9fssi34c32356vk3z6ir395g7";
|
sha256 = "1q0yxba57m18rfpc3syvj7vyqsb35081h6s33qr6h0jf3r9pj3d0";
|
||||||
};
|
};
|
||||||
|
|
||||||
ansible2 = ansible_2_7;
|
ansible2 = ansible_2_7;
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "dvd-vr-${version}";
|
||||||
|
version = "0.9.7";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://www.pixelbeat.org/programs/dvd-vr/dvd-vr-${version}.tar.gz";
|
||||||
|
sha256 = "13wkdia3c0ryda40b2nzpb9vddimasgc4w95hvl0k555k9k8bl0r";
|
||||||
|
};
|
||||||
|
makeFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://www.pixelbeat.org/programs/dvd-vr/;
|
||||||
|
downloadPage = https://www.pixelbeat.org/programs/dvd-vr/;
|
||||||
|
description = "A utility to identify and optionally copy recordings from a DVD-VR format disc";
|
||||||
|
license = licenses.gpl2;
|
||||||
|
maintainers = with maintainers; [ fgaz ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
pname = "f3";
|
pname = "f3";
|
||||||
version = "7.0";
|
version = "7.1";
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
||||||
owner = "AltraMayor";
|
owner = "AltraMayor";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "195j2zd747ffbsl8p5rf7dyn1j5n05zfqy1s9fm4y6lz8yc1nr17";
|
sha256 = "0zglsmz683jg7f9wc6vmgljyg9w87pbnjw5x4w6x02w8233zvjqf";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ parted udev ];
|
buildInputs = [ parted udev ];
|
||||||
|
|
|
@ -1,16 +1,17 @@
|
||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "mtools-4.0.19";
|
name = "mtools-4.0.20";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnu/mtools/${name}.tar.bz2";
|
url = "mirror://gnu/mtools/${name}.tar.bz2";
|
||||||
sha256 = "1pqhv5l4fqj1d3698vajkccz65xqxs3991wpylbw7hm1kqcrgh8v";
|
sha256 = "1vcahr9s6zv1hnrx2bgjnzcas2y951q90r1jvvv4q9v5kwfd6qb0";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Prevents errors such as "mainloop.c:89:15: error: expected ')'"
|
# Prevents errors such as "mainloop.c:89:15: error: expected ')'"
|
||||||
# Upstream issue https://lists.gnu.org/archive/html/info-mtools/2014-02/msg00000.html
|
# Upstream issue https://lists.gnu.org/archive/html/info-mtools/2014-02/msg00000.html
|
||||||
patches = stdenv.lib.optional stdenv.isDarwin ./UNUSED-darwin.patch;
|
patches = [ ./fix-dos_to_wchar-declaration.patch ] ++
|
||||||
|
stdenv.lib.optional stdenv.isDarwin ./UNUSED-darwin.patch;
|
||||||
|
|
||||||
# fails to find X on darwin
|
# fails to find X on darwin
|
||||||
configureFlags = stdenv.lib.optional stdenv.isDarwin "--without-x";
|
configureFlags = stdenv.lib.optional stdenv.isDarwin "--without-x";
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
--- mtools-4.0.20.org/charsetConv.c 2018-11-19 10:16:14.183820865 +0000
|
||||||
|
+++ mtools-4.0.20/charsetConv.c 2018-11-19 10:15:39.808451465 +0000
|
||||||
|
@@ -266,7 +266,7 @@
|
||||||
|
free(cp);
|
||||||
|
}
|
||||||
|
|
||||||
|
-int dos_to_wchar(doscp_t *cp, char *dos, wchar_t *wchar, size_t len)
|
||||||
|
+int dos_to_wchar(doscp_t *cp, const char *dos, wchar_t *wchar, size_t len)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "jdupes-${version}";
|
name = "jdupes-${version}";
|
||||||
version = "1.11";
|
version = "1.11.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jbruchon";
|
owner = "jbruchon";
|
||||||
repo = "jdupes";
|
repo = "jdupes";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "124n9vgnqqhnwgnms7dqmndp25xrcjaykxrzbi4v4as98kxxi3j1";
|
sha256 = "1yg7071lwl561s7r0qrnfx45z3ny8gjfrxpx0dbyhv3ywiac5kw8";
|
||||||
# Unicode file names lead to different checksums on HFS+ vs. other
|
# Unicode file names lead to different checksums on HFS+ vs. other
|
||||||
# filesystems because of unicode normalisation. The testdir
|
# filesystems because of unicode normalisation. The testdir
|
||||||
# directories have such files and will be removed.
|
# directories have such files and will be removed.
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "babeld-1.8.3";
|
name = "babeld-1.8.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/${name}.tar.gz";
|
url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/${name}.tar.gz";
|
||||||
sha256 = "1gb6fcvi1cyl05sr9zhhasqlcbi927sbc2dns1jbnyz029lcb31n";
|
sha256 = "11wbs1x17lr7jk2578zwy3cdwc6zhxwv97nnp13z14613320s1wq";
|
||||||
};
|
};
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
pythonPackages.buildPythonApplication rec {
|
pythonPackages.buildPythonApplication rec {
|
||||||
pname = "http-prompt";
|
pname = "http-prompt";
|
||||||
version = "0.11.2";
|
version = "1.0.0";
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
repo = "http-prompt";
|
repo = "http-prompt";
|
||||||
owner = "eliangcs";
|
owner = "eliangcs";
|
||||||
sha256 = "130w3wkb5jbiwm5w0b470nd50gf30vrknmf3knhlgdxdmfb30zjz";
|
sha256 = "0kngz2izcqjphbrdkg489p0xmf65xjc8ki1a2szcc8sgwc7z74xy";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with pythonPackages; [
|
propagatedBuildInputs = with pythonPackages; [
|
||||||
|
|
|
@ -17,6 +17,8 @@ rustPlatform.buildRustPackage rec {
|
||||||
buildInputs = [ openssl curl ]
|
buildInputs = [ openssl curl ]
|
||||||
++ stdenv.lib.optional stdenv.isDarwin Security;
|
++ stdenv.lib.optional stdenv.isDarwin Security;
|
||||||
|
|
||||||
|
doCheck = !stdenv.isDarwin;
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/etc/profile.d
|
mkdir -p $out/etc/profile.d
|
||||||
cp ./command-not-found.sh $out/etc/profile.d/command-not-found.sh
|
cp ./command-not-found.sh $out/etc/profile.d/command-not-found.sh
|
||||||
|
|
|
@ -2,15 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "scdoc-${version}";
|
name = "scdoc-${version}";
|
||||||
version = "1.5.2";
|
version = "1.6.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz";
|
url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz";
|
||||||
sha256 = "0a9sxifzsbj24kjnpc0525i91ni2vkwizhgvwx1m9shvfkiisnc6";
|
sha256 = "1ca3js4arkg28gg2iszxxyrq7kgsrz482d1szv5dfd471h3vr5m3";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./use-source-date-epoch.patch ];
|
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace Makefile \
|
substituteInPlace Makefile \
|
||||||
--replace "-static" "" \
|
--replace "-static" "" \
|
||||||
|
|
|
@ -1,75 +0,0 @@
|
||||||
diff --git a/src/main.c b/src/main.c
|
|
||||||
index 14b08d2..e2cc33e 100644
|
|
||||||
--- a/src/main.c
|
|
||||||
+++ b/src/main.c
|
|
||||||
@@ -3,6 +3,7 @@
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
+#define __USE_XOPEN
|
|
||||||
#include <time.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include "string.h"
|
|
||||||
@@ -66,10 +67,17 @@ static void parse_preamble(struct parser *p) {
|
|
||||||
int section = -1;
|
|
||||||
uint32_t ch;
|
|
||||||
char date[256];
|
|
||||||
- time_t now;
|
|
||||||
- time(&now);
|
|
||||||
- struct tm *now_tm = localtime(&now);
|
|
||||||
- strftime(date, sizeof(date), "%F", now_tm);
|
|
||||||
+ char *source_date_epoch = getenv("SOURCE_DATE_EPOCH");
|
|
||||||
+ if (source_date_epoch != NULL) {
|
|
||||||
+ struct tm source_date_epoch_tm;
|
|
||||||
+ strptime(source_date_epoch, "%s", &source_date_epoch_tm);
|
|
||||||
+ strftime(date, sizeof(date), "%F", &source_date_epoch_tm);
|
|
||||||
+ } else {
|
|
||||||
+ time_t now;
|
|
||||||
+ time(&now);
|
|
||||||
+ struct tm *now_tm = localtime(&now);
|
|
||||||
+ strftime(date, sizeof(date), "%F", now_tm);
|
|
||||||
+ }
|
|
||||||
while ((ch = parser_getch(p)) != UTF8_INVALID) {
|
|
||||||
if ((ch < 0x80 && isalnum(ch)) || ch == '_' || ch == '-' || ch == '.') {
|
|
||||||
assert(str_append_ch(name, ch) != -1);
|
|
||||||
diff --git a/test/preamble b/test/preamble
|
|
||||||
index 03e2d0c..eeb734b 100755
|
|
||||||
--- a/test/preamble
|
|
||||||
+++ b/test/preamble
|
|
||||||
@@ -38,31 +38,31 @@ EOF
|
|
||||||
end 0
|
|
||||||
|
|
||||||
begin "Writes the appropriate header"
|
|
||||||
-scdoc <<EOF | grep '^\.TH "test" "8" "'"$(date +'%F')"'"' >/dev/null
|
|
||||||
+scdoc <<EOF | grep '^\.TH "test" "8" "'"$(date +'%F' --date=@${SOURCE_DATE_EPOCH:-$(date +'%s')})"'"' >/dev/null
|
|
||||||
test(8)
|
|
||||||
EOF
|
|
||||||
end 0
|
|
||||||
|
|
||||||
begin "Preserves dashes"
|
|
||||||
-scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F')"'"' >/dev/null
|
|
||||||
+scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F' --date=@${SOURCE_DATE_EPOCH:-$(date +'%s')})"'"' >/dev/null
|
|
||||||
test-manual(8)
|
|
||||||
EOF
|
|
||||||
end 0
|
|
||||||
|
|
||||||
begin "Handles extra footer field"
|
|
||||||
-scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F')"'" "Footer"' >/dev/null
|
|
||||||
+scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F' --date=@${SOURCE_DATE_EPOCH:-$(date +'%s')})"'" "Footer"' >/dev/null
|
|
||||||
test-manual(8) "Footer"
|
|
||||||
EOF
|
|
||||||
end 0
|
|
||||||
|
|
||||||
begin "Handles both extra fields"
|
|
||||||
-scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F')"'" "Footer" "Header"' >/dev/null
|
|
||||||
+scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F' --date=@${SOURCE_DATE_EPOCH:-$(date +'%s')})"'" "Footer" "Header"' >/dev/null
|
|
||||||
test-manual(8) "Footer" "Header"
|
|
||||||
EOF
|
|
||||||
end 0
|
|
||||||
|
|
||||||
begin "Emits empty footer correctly"
|
|
||||||
-scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F')"'" "" "Header"' >/dev/null
|
|
||||||
+scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F' --date=@${SOURCE_DATE_EPOCH:-$(date +'%s')})"'" "" "Header"' >/dev/null
|
|
||||||
test-manual(8) "" "Header"
|
|
||||||
EOF
|
|
||||||
end 0
|
|
|
@ -11,14 +11,14 @@
|
||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
name = "google-compute-engine-${version}";
|
name = "google-compute-engine-${version}";
|
||||||
version = "20181011";
|
version = "20181023";
|
||||||
namePrefix = "";
|
namePrefix = "";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "GoogleCloudPlatform";
|
owner = "GoogleCloudPlatform";
|
||||||
repo = "compute-image-packages";
|
repo = "compute-image-packages";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1b3wyr412qh113xvs671dqnacidil61gisfvg79wbq6wrdwswkp8";
|
sha256 = "0bhh62f4kx4d7k673fvyzgr9h771lzk7dxhq3ld7zzcz0pmxlx3a";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -2349,6 +2349,8 @@ with pkgs;
|
||||||
|
|
||||||
duply = callPackage ../tools/backup/duply { };
|
duply = callPackage ../tools/backup/duply { };
|
||||||
|
|
||||||
|
dvd-vr = callPackage ../tools/cd-dvd/dvd-vr { };
|
||||||
|
|
||||||
dvdisaster = callPackage ../tools/cd-dvd/dvdisaster { };
|
dvdisaster = callPackage ../tools/cd-dvd/dvdisaster { };
|
||||||
|
|
||||||
dvdplusrwtools = callPackage ../tools/cd-dvd/dvd+rw-tools { };
|
dvdplusrwtools = callPackage ../tools/cd-dvd/dvd+rw-tools { };
|
||||||
|
@ -3484,12 +3486,11 @@ with pkgs;
|
||||||
|
|
||||||
ised = callPackage ../tools/misc/ised {};
|
ised = callPackage ../tools/misc/ised {};
|
||||||
|
|
||||||
isl = isl_0_17;
|
isl = isl_0_20;
|
||||||
isl_0_11 = callPackage ../development/libraries/isl/0.11.1.nix { };
|
isl_0_11 = callPackage ../development/libraries/isl/0.11.1.nix { };
|
||||||
isl_0_12 = callPackage ../development/libraries/isl/0.12.2.nix { };
|
|
||||||
isl_0_14 = callPackage ../development/libraries/isl/0.14.1.nix { };
|
isl_0_14 = callPackage ../development/libraries/isl/0.14.1.nix { };
|
||||||
isl_0_15 = callPackage ../development/libraries/isl/0.15.0.nix { };
|
|
||||||
isl_0_17 = callPackage ../development/libraries/isl/0.17.1.nix { };
|
isl_0_17 = callPackage ../development/libraries/isl/0.17.1.nix { };
|
||||||
|
isl_0_20 = callPackage ../development/libraries/isl/0.20.0.nix { };
|
||||||
|
|
||||||
ispike = callPackage ../development/libraries/science/robotics/ispike { };
|
ispike = callPackage ../development/libraries/science/robotics/ispike { };
|
||||||
|
|
||||||
|
@ -3517,6 +3518,8 @@ with pkgs;
|
||||||
|
|
||||||
jhead = callPackage ../tools/graphics/jhead { };
|
jhead = callPackage ../tools/graphics/jhead { };
|
||||||
|
|
||||||
|
jid = callPackage ../development/tools/jid { };
|
||||||
|
|
||||||
jing = self.jing-trang;
|
jing = self.jing-trang;
|
||||||
jing-trang = callPackage ../tools/text/xml/jing-trang { };
|
jing-trang = callPackage ../tools/text/xml/jing-trang { };
|
||||||
|
|
||||||
|
@ -22576,18 +22579,15 @@ with pkgs;
|
||||||
sqsh = callPackage ../development/tools/sqsh { };
|
sqsh = callPackage ../development/tools/sqsh { };
|
||||||
|
|
||||||
inherit (callPackage ../applications/networking/cluster/terraform {})
|
inherit (callPackage ../applications/networking/cluster/terraform {})
|
||||||
terraform_0_8_5
|
|
||||||
terraform_0_8
|
|
||||||
terraform_0_9
|
|
||||||
terraform_0_10
|
|
||||||
terraform_0_10-full
|
|
||||||
terraform_0_11
|
terraform_0_11
|
||||||
terraform_0_11-full
|
terraform_0_11-full
|
||||||
|
terraform_0_12
|
||||||
terraform_plugins_test
|
terraform_plugins_test
|
||||||
;
|
;
|
||||||
|
|
||||||
terraform = terraform_0_11;
|
terraform = terraform_0_11;
|
||||||
terraform-full = terraform_0_11-full;
|
# deprecated
|
||||||
|
terraform-full = terraform.full;
|
||||||
|
|
||||||
terraform-providers = recurseIntoAttrs (
|
terraform-providers = recurseIntoAttrs (
|
||||||
callPackage ../applications/networking/cluster/terraform-providers {}
|
callPackage ../applications/networking/cluster/terraform-providers {}
|
||||||
|
@ -22599,14 +22599,6 @@ with pkgs;
|
||||||
|
|
||||||
terragrunt = callPackage ../applications/networking/cluster/terragrunt {};
|
terragrunt = callPackage ../applications/networking/cluster/terragrunt {};
|
||||||
|
|
||||||
terragrunt_0_11_1 = callPackage ../applications/networking/cluster/terragrunt/0.11.1.nix {
|
|
||||||
terraform = terraform_0_8;
|
|
||||||
};
|
|
||||||
|
|
||||||
terragrunt_0_9_8 = callPackage ../applications/networking/cluster/terragrunt/0.9.8.nix {
|
|
||||||
terraform = terraform_0_8_5;
|
|
||||||
};
|
|
||||||
|
|
||||||
tetex = callPackage ../tools/typesetting/tex/tetex { libpng = libpng12; };
|
tetex = callPackage ../tools/typesetting/tex/tetex { libpng = libpng12; };
|
||||||
|
|
||||||
tetra-gtk-theme = callPackage ../misc/themes/tetra { };
|
tetra-gtk-theme = callPackage ../misc/themes/tetra { };
|
||||||
|
|
Loading…
Reference in New Issue