mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-27 05:43:50 +03:00
Merge master into staging
Taken the version from recent channel bump, as it's well-tested. Close #11460.
This commit is contained in:
commit
476c96b5c6
@ -88,6 +88,13 @@ in ...</programlisting>
|
|||||||
<section xml:id="sec-pkg-overrideDerivation">
|
<section xml:id="sec-pkg-overrideDerivation">
|
||||||
<title><pkg>.overrideDerivation</title>
|
<title><pkg>.overrideDerivation</title>
|
||||||
|
|
||||||
|
<warning>
|
||||||
|
<para>Do not use this function in Nixpkgs. Because it breaks
|
||||||
|
package abstraction and doesn’t provide error checking for
|
||||||
|
function arguments, it is only intended for ad-hoc customisation
|
||||||
|
(such as in <filename>~/.nixpkgs/config.nix</filename>).</para>
|
||||||
|
</warning>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The function <varname>overrideDerivation</varname> is usually available for all the
|
The function <varname>overrideDerivation</varname> is usually available for all the
|
||||||
derivations in the nixpkgs expression (<varname>pkgs</varname>).
|
derivations in the nixpkgs expression (<varname>pkgs</varname>).
|
||||||
|
@ -196,12 +196,12 @@ you need it.</para>
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
Currently supported interpreters are <varname>python26</varname>, <varname>python27</varname>,
|
Currently supported interpreters are <varname>python26</varname>, <varname>python27</varname>,
|
||||||
<varname>python32</varname>, <varname>python33</varname>, <varname>python34</varname>
|
<varname>python33</varname>, <varname>python34</varname>, <varname>python35</varname>
|
||||||
and <varname>pypy</varname>.
|
and <varname>pypy</varname>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<varname>python</varname> is an alias of <varname>python27</varname> and <varname>python3</varname> is an alias of <varname>python34</varname>.
|
<varname>python</varname> is an alias to <varname>python27</varname> and <varname>python3</varname> is an alias to <varname>python34</varname>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -231,7 +231,7 @@ are provided with all modules included.</para>
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
All packages depending on any Python interpreter get appended <varname>$out/${python.libPrefix}/site-packages</varname>
|
All packages depending on any Python interpreter get appended <varname>$out/${python.sitePackages}</varname>
|
||||||
to <literal>$PYTHONPATH</literal> if such directory exists.
|
to <literal>$PYTHONPATH</literal> if such directory exists.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -306,7 +306,7 @@ twisted = buildPythonPackage {
|
|||||||
Most of Python packages that use <varname>buildPythonPackage</varname> are defined
|
Most of Python packages that use <varname>buildPythonPackage</varname> are defined
|
||||||
in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/python-packages.nix"><filename>pkgs/top-level/python-packages.nix</filename></link>
|
in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/python-packages.nix"><filename>pkgs/top-level/python-packages.nix</filename></link>
|
||||||
and generated for each python interpreter separately into attribute sets <varname>python26Packages</varname>,
|
and generated for each python interpreter separately into attribute sets <varname>python26Packages</varname>,
|
||||||
<varname>python27Packages</varname>, <varname>python32Packages</varname>, <varname>python33Packages</varname>,
|
<varname>python27Packages</varname>, <varname>python35Packages</varname>, <varname>python33Packages</varname>,
|
||||||
<varname>python34Packages</varname> and <varname>pypyPackages</varname>.
|
<varname>python34Packages</varname> and <varname>pypyPackages</varname>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -314,20 +314,14 @@ twisted = buildPythonPackage {
|
|||||||
<function>buildPythonPackage</function> mainly does four things:
|
<function>buildPythonPackage</function> mainly does four things:
|
||||||
|
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem><para>
|
|
||||||
In the <varname>configurePhase</varname>, it patches
|
|
||||||
<literal>setup.py</literal> to always include setuptools before
|
|
||||||
distutils for monkeypatching machinery to take place.
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
In the <varname>buildPhase</varname>, it calls
|
In the <varname>buildPhase</varname>, it calls
|
||||||
<literal>${python.interpreter} setup.py build ...</literal>
|
<literal>${python.interpreter} setup.py bdist_wheel</literal> to build a wheel binary zipfile.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
In the <varname>installPhase</varname>, it calls
|
In the <varname>installPhase</varname>, it installs the wheel file using
|
||||||
<literal>${python.interpreter} setup.py install ...</literal>
|
<literal>pip install *.whl</literal>.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
@ -336,11 +330,15 @@ twisted = buildPythonPackage {
|
|||||||
directory to include <literal>$PYTHONPATH</literal> and <literal>$PATH</literal>
|
directory to include <literal>$PYTHONPATH</literal> and <literal>$PATH</literal>
|
||||||
environment variables.
|
environment variables.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
|
||||||
|
<listitem><para>
|
||||||
|
In the <varname>installCheck</varname> phase, <literal>${python.interpreter} setup.py test</literal>
|
||||||
|
is ran.
|
||||||
|
</para></listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>By default <varname>doCheck = true</varname> is set and tests are run with
|
<para>By default <varname>doCheck = true</varname> is set</para>
|
||||||
<literal>${python.interpreter} setup.py test</literal> command in <varname>checkPhase</varname>.</para>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
As in Perl, dependencies on other Python packages can be specified in the
|
As in Perl, dependencies on other Python packages can be specified in the
|
||||||
@ -382,17 +380,10 @@ twisted = buildPythonPackage {
|
|||||||
</para></listitem>
|
</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>setupPyInstallFlags</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
List of flags passed to <command>setup.py install</command> command.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>setupPyBuildFlags</varname></term>
|
<term><varname>setupPyBuildFlags</varname></term>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
List of flags passed to <command>setup.py build</command> command.
|
List of flags passed to <command>setup.py build_ext</command> command.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -400,7 +391,7 @@ twisted = buildPythonPackage {
|
|||||||
<term><varname>pythonPath</varname></term>
|
<term><varname>pythonPath</varname></term>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
List of packages to be added into <literal>$PYTHONPATH</literal>.
|
List of packages to be added into <literal>$PYTHONPATH</literal>.
|
||||||
Packages in <varname>pythonPath</varname> are not propagated into user environment
|
Packages in <varname>pythonPath</varname> are not propagated
|
||||||
(contrary to <varname>propagatedBuildInputs</varname>).
|
(contrary to <varname>propagatedBuildInputs</varname>).
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@ -419,15 +410,6 @@ twisted = buildPythonPackage {
|
|||||||
</para></listitem>
|
</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>distutilsExtraCfg</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Extra lines passed to <varname>[easy_install]</varname> section of
|
|
||||||
<filename>distutils.cfg</filename> (acts as global setup.cfg
|
|
||||||
configuration).
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>makeWrapperArgs</varname></term>
|
<term><varname>makeWrapperArgs</varname></term>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
@ -545,7 +527,7 @@ exist in community to help save time. No tool is preferred at the moment.
|
|||||||
<para>
|
<para>
|
||||||
To develop Python packages <function>buildPythonPackage</function> has
|
To develop Python packages <function>buildPythonPackage</function> has
|
||||||
additional logic inside <varname>shellPhase</varname> to run
|
additional logic inside <varname>shellPhase</varname> to run
|
||||||
<command>${python.interpreter} setup.py develop</command> for the package.
|
<command>pip install -e . --prefix $TMPDIR/</command> for the package.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<warning><para><varname>shellPhase</varname> is executed only if <filename>setup.py</filename>
|
<warning><para><varname>shellPhase</varname> is executed only if <filename>setup.py</filename>
|
||||||
|
@ -33,7 +33,7 @@ the package. The value of a meta-attribute must be a string.</para>
|
|||||||
command-line using <command>nix-env</command>:
|
command-line using <command>nix-env</command>:
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
$ nix-env -qa hello --meta --json
|
$ nix-env -qa hello --json
|
||||||
{
|
{
|
||||||
"hello": {
|
"hello": {
|
||||||
"meta": {
|
"meta": {
|
||||||
|
@ -96,6 +96,7 @@
|
|||||||
enolan = "Echo Nolan <echo@echonolan.net>";
|
enolan = "Echo Nolan <echo@echonolan.net>";
|
||||||
epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
|
epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
|
||||||
ericbmerritt = "Eric Merritt <eric@afiniate.com>";
|
ericbmerritt = "Eric Merritt <eric@afiniate.com>";
|
||||||
|
ericsagnes = "Eric Sagnes <eric.sagnes@gmail.com>";
|
||||||
erikryb = "Erik Rybakken <erik.rybakken@math.ntnu.no>";
|
erikryb = "Erik Rybakken <erik.rybakken@math.ntnu.no>";
|
||||||
ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
|
ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
|
||||||
exlevan = "Alexey Levan <exlevan@gmail.com>";
|
exlevan = "Alexey Levan <exlevan@gmail.com>";
|
||||||
@ -181,12 +182,14 @@
|
|||||||
malyn = "Michael Alyn Miller <malyn@strangeGizmo.com>";
|
malyn = "Michael Alyn Miller <malyn@strangeGizmo.com>";
|
||||||
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
|
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
|
||||||
marcweber = "Marc Weber <marco-oweber@gmx.de>";
|
marcweber = "Marc Weber <marco-oweber@gmx.de>";
|
||||||
|
markWot = "Markus Wotringer <markus@wotringer.de";
|
||||||
maurer = "Matthew Maurer <matthew.r.maurer+nix@gmail.com>";
|
maurer = "Matthew Maurer <matthew.r.maurer+nix@gmail.com>";
|
||||||
matejc = "Matej Cotman <cotman.matej@gmail.com>";
|
matejc = "Matej Cotman <cotman.matej@gmail.com>";
|
||||||
mathnerd314 = "Mathnerd314 <mathnerd314.gph+hs@gmail.com>";
|
mathnerd314 = "Mathnerd314 <mathnerd314.gph+hs@gmail.com>";
|
||||||
matthiasbeyer = "Matthias Beyer <mail@beyermatthias.de>";
|
matthiasbeyer = "Matthias Beyer <mail@beyermatthias.de>";
|
||||||
mbakke = "Marius Bakke <ymse@tuta.io>";
|
mbakke = "Marius Bakke <ymse@tuta.io>";
|
||||||
mbe = "Brandon Edens <brandonedens@gmail.com>";
|
mbe = "Brandon Edens <brandonedens@gmail.com>";
|
||||||
|
mcmtroffaes = "Matthias C. M. Troffaes <matthias.troffaes@gmail.com>";
|
||||||
meditans = "Carlo Nucera <meditans@gmail.com>";
|
meditans = "Carlo Nucera <meditans@gmail.com>";
|
||||||
meisternu = "Matt Miemiec <meister@krutt.org>";
|
meisternu = "Matt Miemiec <meister@krutt.org>";
|
||||||
michelk = "Michel Kuhlmann <michel@kuhlmanns.info>";
|
michelk = "Michel Kuhlmann <michel@kuhlmanns.info>";
|
||||||
@ -218,6 +221,7 @@
|
|||||||
page = "Carles Pagès <page@cubata.homelinux.net>";
|
page = "Carles Pagès <page@cubata.homelinux.net>";
|
||||||
paholg = "Paho Lurie-Gregg <paho@paholg.com>";
|
paholg = "Paho Lurie-Gregg <paho@paholg.com>";
|
||||||
pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>";
|
pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>";
|
||||||
|
palo = "Ingolf Wanger <palipalo9@googlemail.com>";
|
||||||
pashev = "Igor Pashev <pashev.igor@gmail.com>";
|
pashev = "Igor Pashev <pashev.igor@gmail.com>";
|
||||||
pesterhazy = "Paulus Esterhazy <pesterhazy@gmail.com>";
|
pesterhazy = "Paulus Esterhazy <pesterhazy@gmail.com>";
|
||||||
phausmann = "Philipp Hausmann <nix@314.ch>";
|
phausmann = "Philipp Hausmann <nix@314.ch>";
|
||||||
@ -229,6 +233,7 @@
|
|||||||
pjones = "Peter Jones <pjones@devalot.com>";
|
pjones = "Peter Jones <pjones@devalot.com>";
|
||||||
pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
|
pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
|
||||||
plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
|
plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
|
||||||
|
Phlogistique = "Noé Rubinstein <noe.rubinstein@gmail.com>";
|
||||||
pmahoney = "Patrick Mahoney <pat@polycrystal.org>";
|
pmahoney = "Patrick Mahoney <pat@polycrystal.org>";
|
||||||
pmiddend = "Philipp Middendorf <pmidden@secure.mailbox.org>";
|
pmiddend = "Philipp Middendorf <pmidden@secure.mailbox.org>";
|
||||||
prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
|
prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
|
||||||
@ -254,6 +259,7 @@
|
|||||||
romildo = "José Romildo Malaquias <malaquias@gmail.com>";
|
romildo = "José Romildo Malaquias <malaquias@gmail.com>";
|
||||||
rszibele = "Richard Szibele <richard_szibele@hotmail.com>";
|
rszibele = "Richard Szibele <richard_szibele@hotmail.com>";
|
||||||
rushmorem = "Rushmore Mushambi <rushmore@webenchanter.com>";
|
rushmorem = "Rushmore Mushambi <rushmore@webenchanter.com>";
|
||||||
|
rvl = "Rodney Lorrimar <dev+nix@rodney.id.au>";
|
||||||
rycee = "Robert Helgesson <robert@rycee.net>";
|
rycee = "Robert Helgesson <robert@rycee.net>";
|
||||||
samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
|
samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
|
||||||
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
|
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
|
||||||
@ -286,6 +292,7 @@
|
|||||||
theuni = "Christian Theune <ct@flyingcircus.io>";
|
theuni = "Christian Theune <ct@flyingcircus.io>";
|
||||||
thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
|
thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
|
||||||
titanous = "Jonathan Rudenberg <jonathan@titanous.com>";
|
titanous = "Jonathan Rudenberg <jonathan@titanous.com>";
|
||||||
|
tohl = "Tomas Hlavaty <tom@logand.com>";
|
||||||
tokudan = "Daniel Frank <git@danielfrank.net>";
|
tokudan = "Daniel Frank <git@danielfrank.net>";
|
||||||
tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
|
tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
|
||||||
travisbhartwell = "Travis B. Hartwell <nafai@travishartwell.net>";
|
travisbhartwell = "Travis B. Hartwell <nafai@travishartwell.net>";
|
||||||
|
@ -223,4 +223,12 @@ rec {
|
|||||||
# Check whether a value is a store path.
|
# Check whether a value is a store path.
|
||||||
isStorePath = x: builtins.substring 0 1 (toString x) == "/" && dirOf (builtins.toPath x) == builtins.storeDir;
|
isStorePath = x: builtins.substring 0 1 (toString x) == "/" && dirOf (builtins.toPath x) == builtins.storeDir;
|
||||||
|
|
||||||
|
# Convert string to int
|
||||||
|
# Obviously, it is a bit hacky to use fromJSON that way.
|
||||||
|
toInt = str:
|
||||||
|
let may_be_int = builtins.fromJSON str; in
|
||||||
|
if builtins.isInt may_be_int
|
||||||
|
then may_be_int
|
||||||
|
else throw "Could not convert ${str} to int.";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -110,4 +110,14 @@ runTests {
|
|||||||
expected = [2 30 40 42];
|
expected = [2 30 40 42];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
testToIntShouldConvertStringToInt = {
|
||||||
|
expr = toInt "27";
|
||||||
|
expected = 27;
|
||||||
|
};
|
||||||
|
|
||||||
|
testToIntShouldThrowErrorIfItCouldNotConvertToInt = {
|
||||||
|
expr = builtins.tryEval (toInt "\"foo\"");
|
||||||
|
expected = { success = false; value = false; };
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,46 @@ rec {
|
|||||||
and = x: y: x && y;
|
and = x: y: x && y;
|
||||||
mergeAttrs = x: y: x // y;
|
mergeAttrs = x: y: x // y;
|
||||||
|
|
||||||
# Take a function and evaluate it with its own returned value.
|
# Compute the fixed point of the given function `f`, which is usually an
|
||||||
fix = f: let result = f result; in result;
|
# attribute set that expects its final, non-recursive representation as an
|
||||||
|
# argument:
|
||||||
|
#
|
||||||
|
# f = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }
|
||||||
|
#
|
||||||
|
# Nix evaluates this recursion until all references to `self` have been
|
||||||
|
# resolved. At that point, the final result is returned and `f x = x` holds:
|
||||||
|
#
|
||||||
|
# nix-repl> fix f
|
||||||
|
# { bar = "bar"; foo = "foo"; foobar = "foobar"; }
|
||||||
|
#
|
||||||
|
# See https://en.wikipedia.org/wiki/Fixed-point_combinator for further
|
||||||
|
# details.
|
||||||
|
fix = f: let x = f x; in x;
|
||||||
|
|
||||||
|
# A variant of `fix` that records the original recursive attribute set in the
|
||||||
|
# result. This is useful in combination with the `extends` function to
|
||||||
|
# implement deep overriding. See pkgs/development/haskell-modules/default.nix
|
||||||
|
# for a concrete example.
|
||||||
|
fix' = f: let x = f x // { __unfix__ = f; }; in x;
|
||||||
|
|
||||||
|
# Modify the contents of an explicitly recursive attribute set in a way that
|
||||||
|
# honors `self`-references. This is accomplished with a function
|
||||||
|
#
|
||||||
|
# g = self: super: { foo = super.foo + " + "; }
|
||||||
|
#
|
||||||
|
# that has access to the unmodified input (`super`) as well as the final
|
||||||
|
# non-recursive representation of the attribute set (`self`). `extends`
|
||||||
|
# differs from the native `//` operator insofar as that it's applied *before*
|
||||||
|
# references to `self` are resolved:
|
||||||
|
#
|
||||||
|
# nix-repl> fix (extends g f)
|
||||||
|
# { bar = "bar"; foo = "foo + "; foobar = "foo + bar"; }
|
||||||
|
#
|
||||||
|
# The name of the function is inspired by object-oriented inheritance, i.e.
|
||||||
|
# think of it as an infix operator `g extends f` that mimics the syntax from
|
||||||
|
# Java. It may seem counter-intuitive to have the "base class" as the second
|
||||||
|
# argument, but it's nice this way if several uses of `extends` are cascaded.
|
||||||
|
extends = f: rattrs: self: let super = rattrs self; in super // f self super;
|
||||||
|
|
||||||
# Flip the order of the arguments of a binary function.
|
# Flip the order of the arguments of a binary function.
|
||||||
flip = f: a: b: f b a;
|
flip = f: a: b: f b a;
|
||||||
|
@ -26,6 +26,13 @@ nixos.path = ./nixpkgs-unstable-2015-12-06/nixos;
|
|||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>The following new services were added since the last release:
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><literal>services/monitoring/longview.nix</literal></para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
<para>When upgrading from a previous release, please be aware of the
|
<para>When upgrading from a previous release, please be aware of the
|
||||||
following incompatible changes:</para>
|
following incompatible changes:</para>
|
||||||
|
|
||||||
@ -74,6 +81,29 @@ nginx.override {
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><command>s3sync</command> is removed, as it hasn't been
|
||||||
|
developed by upstream for 4 years and only runs with ruby 1.8.
|
||||||
|
For an actively-developer alternative look at
|
||||||
|
<command>tarsnap</command> and others.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><command>ruby_1_8</command> has been removed as it's not
|
||||||
|
supported from upstream anymore and probably contains security
|
||||||
|
issues.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>tidy-html5</literal> package is removed.
|
||||||
|
Upstream only provided <literal>(lib)tidy5</literal> during development,
|
||||||
|
and now they went back to <literal>(lib)tidy</literal> to work as a drop-in
|
||||||
|
replacement of the original package that has been unmaintained for years.
|
||||||
|
You can (still) use the <literal>html-tidy</literal> package, which got updated
|
||||||
|
to a stable release from this new upstream.</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
@ -119,7 +119,11 @@ $xorriso -output $out/iso/$isoName
|
|||||||
|
|
||||||
if test -n "$usbBootable"; then
|
if test -n "$usbBootable"; then
|
||||||
echo "Making image hybrid..."
|
echo "Making image hybrid..."
|
||||||
|
if test -n "$efiBootable"; then
|
||||||
isohybrid --uefi $out/iso/$isoName
|
isohybrid --uefi $out/iso/$isoName
|
||||||
|
else
|
||||||
|
isohybrid $out/iso/$isoName
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -n "$compressImage"; then
|
if test -n "$compressImage"; then
|
||||||
|
@ -236,6 +236,7 @@
|
|||||||
xtreemfs = 212;
|
xtreemfs = 212;
|
||||||
calibre-server = 213;
|
calibre-server = 213;
|
||||||
heapster = 214;
|
heapster = 214;
|
||||||
|
bepasty = 215;
|
||||||
|
|
||||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||||
|
|
||||||
@ -304,7 +305,7 @@
|
|||||||
nslcd = 58;
|
nslcd = 58;
|
||||||
scanner = 59;
|
scanner = 59;
|
||||||
nginx = 60;
|
nginx = 60;
|
||||||
#chrony = 61; # unused
|
chrony = 61;
|
||||||
systemd-journal = 62;
|
systemd-journal = 62;
|
||||||
smtpd = 63;
|
smtpd = 63;
|
||||||
smtpq = 64;
|
smtpq = 64;
|
||||||
@ -449,6 +450,7 @@
|
|||||||
#kibana = 211;
|
#kibana = 211;
|
||||||
xtreemfs = 212;
|
xtreemfs = 212;
|
||||||
calibre-server = 213;
|
calibre-server = 213;
|
||||||
|
bepasty = 215;
|
||||||
|
|
||||||
# When adding a gid, make sure it doesn't match an existing
|
# When adding a gid, make sure it doesn't match an existing
|
||||||
# uid. Users and groups with the same name should have equal
|
# uid. Users and groups with the same name should have equal
|
||||||
|
@ -190,6 +190,7 @@
|
|||||||
./services/mail/spamassassin.nix
|
./services/mail/spamassassin.nix
|
||||||
./services/misc/apache-kafka.nix
|
./services/misc/apache-kafka.nix
|
||||||
./services/misc/autofs.nix
|
./services/misc/autofs.nix
|
||||||
|
./services/misc/bepasty.nix
|
||||||
./services/misc/canto-daemon.nix
|
./services/misc/canto-daemon.nix
|
||||||
./services/misc/calibre-server.nix
|
./services/misc/calibre-server.nix
|
||||||
./services/misc/cpuminer-cryptonight.nix
|
./services/misc/cpuminer-cryptonight.nix
|
||||||
@ -240,6 +241,7 @@
|
|||||||
./services/monitoring/grafana.nix
|
./services/monitoring/grafana.nix
|
||||||
./services/monitoring/graphite.nix
|
./services/monitoring/graphite.nix
|
||||||
./services/monitoring/heapster.nix
|
./services/monitoring/heapster.nix
|
||||||
|
./services/monitoring/longview.nix
|
||||||
./services/monitoring/monit.nix
|
./services/monitoring/monit.nix
|
||||||
./services/monitoring/munin.nix
|
./services/monitoring/munin.nix
|
||||||
./services/monitoring/nagios.nix
|
./services/monitoring/nagios.nix
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# This module defines the software packages included in the "minimal"
|
# This module defines the software packages included in the "minimal"
|
||||||
# installation CD. It might be useful elsewhere.
|
# installation CD. It might be useful elsewhere.
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Include some utilities that are useful for installing or repairing
|
# Include some utilities that are useful for installing or repairing
|
||||||
@ -50,5 +50,5 @@
|
|||||||
boot.supportedFilesystems = [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "zfs" "ntfs" "cifs" ];
|
boot.supportedFilesystems = [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "zfs" "ntfs" "cifs" ];
|
||||||
|
|
||||||
# Configure host id for ZFS to work
|
# Configure host id for ZFS to work
|
||||||
networking.hostId = "8425e349";
|
networking.hostId = lib.mkDefault "8425e349";
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
environment.systemPackages = [ pkgs.ibus ];
|
environment.systemPackages = [ pkgs.ibus pkgs.gnome3.dconf ];
|
||||||
|
|
||||||
gtkPlugins = [ pkgs.ibus ];
|
gtkPlugins = [ pkgs.ibus ];
|
||||||
qtPlugins = [ pkgs.ibus-qt ];
|
qtPlugins = [ pkgs.ibus-qt ];
|
||||||
|
@ -25,7 +25,7 @@ in
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Whenever to configure Zsh as an interactive shell.
|
Whether to configure zsh as an interactive shell.
|
||||||
'';
|
'';
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
};
|
};
|
||||||
@ -73,6 +73,14 @@ in
|
|||||||
type = types.lines;
|
type = types.lines;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enableCompletion = mkOption {
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Enable zsh completion for all interactive zsh shells.
|
||||||
|
'';
|
||||||
|
type = types.bool;
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -101,6 +109,13 @@ in
|
|||||||
export HISTFILE=$HOME/.zsh_history
|
export HISTFILE=$HOME/.zsh_history
|
||||||
|
|
||||||
setopt HIST_IGNORE_DUPS SHARE_HISTORY HIST_FCNTL_LOCK
|
setopt HIST_IGNORE_DUPS SHARE_HISTORY HIST_FCNTL_LOCK
|
||||||
|
|
||||||
|
# Tell zsh how to find installed completions
|
||||||
|
for p in ''${(z)NIX_PROFILES}; do
|
||||||
|
fpath+=($p/share/zsh/site-functions $p/share/zsh/$ZSH_VERSION/functions)
|
||||||
|
done
|
||||||
|
|
||||||
|
${if cfg.enableCompletion then "autoload -U compinit && compinit" else ""}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -161,7 +176,10 @@ in
|
|||||||
|
|
||||||
environment.etc."zinputrc".source = ./zinputrc;
|
environment.etc."zinputrc".source = ./zinputrc;
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.zsh ];
|
environment.systemPackages = [ pkgs.zsh ]
|
||||||
|
++ optional cfg.enableCompletion pkgs.nix-zsh-completions;
|
||||||
|
|
||||||
|
environment.pathsToLink = optional cfg.enableCompletion "/share/zsh";
|
||||||
|
|
||||||
#users.defaultUserShell = mkDefault "/run/current-system/sw/bin/zsh";
|
#users.defaultUserShell = mkDefault "/run/current-system/sw/bin/zsh";
|
||||||
|
|
||||||
|
@ -218,7 +218,7 @@ let
|
|||||||
# Samba stuff to the Samba module. This requires that the PAM
|
# Samba stuff to the Samba module. This requires that the PAM
|
||||||
# module provides the right hooks.
|
# module provides the right hooks.
|
||||||
text = mkDefault
|
text = mkDefault
|
||||||
''
|
(''
|
||||||
# Account management.
|
# Account management.
|
||||||
account sufficient pam_unix.so
|
account sufficient pam_unix.so
|
||||||
${optionalString config.users.ldap.enable
|
${optionalString config.users.ldap.enable
|
||||||
@ -241,12 +241,22 @@ let
|
|||||||
"auth sufficient ${pkgs.pam_u2f}/lib/security/pam_u2f.so"}
|
"auth sufficient ${pkgs.pam_u2f}/lib/security/pam_u2f.so"}
|
||||||
${optionalString cfg.usbAuth
|
${optionalString cfg.usbAuth
|
||||||
"auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so"}
|
"auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so"}
|
||||||
${optionalString cfg.unixAuth
|
'' +
|
||||||
"auth ${if (config.security.pam.enableEcryptfs || cfg.pamMount) then "required" else "sufficient"} pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth"}
|
# Modules in this block require having the password set in PAM_AUTHTOK.
|
||||||
|
# pam_unix is marked as 'sufficient' on NixOS which means nothing will run
|
||||||
|
# after it succeeds. Certain modules need to run after pam_unix
|
||||||
|
# prompts the user for password so we run it once with 'required' at an
|
||||||
|
# earlier point and it will run again with 'sufficient' further down.
|
||||||
|
# We use try_first_pass the second time to avoid prompting password twice
|
||||||
|
(optionalString (cfg.unixAuth && (config.security.pam.enableEcryptfs || cfg.pamMount)) ''
|
||||||
|
auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth
|
||||||
|
${optionalString config.security.pam.enableEcryptfs
|
||||||
|
"auth optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
|
||||||
${optionalString cfg.pamMount
|
${optionalString cfg.pamMount
|
||||||
"auth optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
|
"auth optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
|
||||||
${optionalString config.security.pam.enableEcryptfs
|
'') + ''
|
||||||
"auth required ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
|
${optionalString cfg.unixAuth
|
||||||
|
"auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth try_first_pass"}
|
||||||
${optionalString cfg.otpwAuth
|
${optionalString cfg.otpwAuth
|
||||||
"auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so"}
|
"auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so"}
|
||||||
${optionalString cfg.oathAuth
|
${optionalString cfg.oathAuth
|
||||||
@ -258,7 +268,7 @@ let
|
|||||||
auth [default=die success=done] ${pam_ccreds}/lib/security/pam_ccreds.so action=validate use_first_pass
|
auth [default=die success=done] ${pam_ccreds}/lib/security/pam_ccreds.so action=validate use_first_pass
|
||||||
auth sufficient ${pam_ccreds}/lib/security/pam_ccreds.so action=store use_first_pass
|
auth sufficient ${pam_ccreds}/lib/security/pam_ccreds.so action=store use_first_pass
|
||||||
''}
|
''}
|
||||||
${optionalString (!(config.security.pam.enableEcryptfs || cfg.pamMount)) "auth required pam_deny.so"}
|
auth required pam_deny.so
|
||||||
|
|
||||||
# Password management.
|
# Password management.
|
||||||
password requisite pam_unix.so nullok sha512
|
password requisite pam_unix.so nullok sha512
|
||||||
@ -306,7 +316,7 @@ let
|
|||||||
"session optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
|
"session optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
|
||||||
${optionalString (cfg.enableAppArmor && config.security.apparmor.enable)
|
${optionalString (cfg.enableAppArmor && config.security.apparmor.enable)
|
||||||
"session optional ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so order=user,group,default debug"}
|
"session optional ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so order=user,group,default debug"}
|
||||||
'';
|
'');
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
151
nixos/modules/services/misc/bepasty.nix
Normal file
151
nixos/modules/services/misc/bepasty.nix
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
gunicorn = pkgs.pythonPackages.gunicorn;
|
||||||
|
bepasty = pkgs.pythonPackages.bepasty-server;
|
||||||
|
gevent = pkgs.pythonPackages.gevent;
|
||||||
|
python = pkgs.pythonPackages.python;
|
||||||
|
cfg = config.services.bepasty;
|
||||||
|
user = "bepasty";
|
||||||
|
group = "bepasty";
|
||||||
|
default_home = "/var/lib/bepasty";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.services.bepasty = {
|
||||||
|
enable = mkEnableOption "Bepasty servers";
|
||||||
|
|
||||||
|
servers = mkOption {
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
configure a number of bepasty servers which will be started with
|
||||||
|
gunicorn.
|
||||||
|
'';
|
||||||
|
type = with types ; attrsOf (submodule ({
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
bind = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
Bind address to be used for this server.
|
||||||
|
'';
|
||||||
|
example = "0.0.0.0:8000";
|
||||||
|
default = "127.0.0.1:8000";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
dataDir = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
Path to the directory where the pastes will be saved to
|
||||||
|
'';
|
||||||
|
default = default_home+"/data";
|
||||||
|
};
|
||||||
|
|
||||||
|
defaultPermissions = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
default permissions for all unauthenticated accesses.
|
||||||
|
'';
|
||||||
|
example = "read,create,delete";
|
||||||
|
default = "read";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
Extra configuration for bepasty server to be appended on the
|
||||||
|
configuration.
|
||||||
|
see https://bepasty-server.readthedocs.org/en/latest/quickstart.html#configuring-bepasty
|
||||||
|
for all options.
|
||||||
|
'';
|
||||||
|
default = "";
|
||||||
|
example = ''
|
||||||
|
PERMISSIONS = {
|
||||||
|
'myadminsecret': 'admin,list,create,read,delete',
|
||||||
|
}
|
||||||
|
MAX_ALLOWED_FILE_SIZE = 5 * 1000 * 1000
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
secretKey = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
server secret for safe session cookies, must be set.
|
||||||
|
'';
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
workDir = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
Path to the working directory (used for config and pidfile).
|
||||||
|
Defaults to the users home directory.
|
||||||
|
'';
|
||||||
|
default = default_home;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [ bepasty ];
|
||||||
|
|
||||||
|
# creates gunicorn systemd service for each configured server
|
||||||
|
systemd.services = mapAttrs' (name: server:
|
||||||
|
nameValuePair ("bepasty-server-${name}-gunicorn")
|
||||||
|
({
|
||||||
|
description = "Bepasty Server ${name}";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
restartIfChanged = true;
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
BEPASTY_CONFIG = "${server.workDir}/bepasty-${name}.conf";
|
||||||
|
PYTHONPATH= "${bepasty}/lib/${python.libPrefix}/site-packages:${gevent}/lib/${python.libPrefix}/site-packages";
|
||||||
|
};
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
PrivateTmp = true;
|
||||||
|
ExecStartPre = assert server.secretKey != ""; pkgs.writeScript "bepasty-server.${name}-init" ''
|
||||||
|
#!/bin/sh
|
||||||
|
mkdir -p "${server.workDir}"
|
||||||
|
mkdir -p "${server.dataDir}"
|
||||||
|
chown ${user}:${group} "${server.workDir}" "${server.dataDir}"
|
||||||
|
cat > ${server.workDir}/bepasty-${name}.conf <<EOF
|
||||||
|
SITENAME="${name}"
|
||||||
|
STORAGE_FILESYSTEM_DIRECTORY="${server.dataDir}"
|
||||||
|
SECRET_KEY="${server.secretKey}"
|
||||||
|
DEFAULT_PERMISSIONS="${server.defaultPermissions}"
|
||||||
|
${server.extraConfig}
|
||||||
|
EOF
|
||||||
|
'';
|
||||||
|
ExecStart = ''${gunicorn}/bin/gunicorn bepasty.wsgi --name ${name} \
|
||||||
|
-u ${user} \
|
||||||
|
-g ${group} \
|
||||||
|
--workers 3 --log-level=info \
|
||||||
|
--bind=${server.bind} \
|
||||||
|
--pid ${server.workDir}/gunicorn-${name}.pid \
|
||||||
|
-k gevent
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
})
|
||||||
|
) cfg.servers;
|
||||||
|
|
||||||
|
users.extraUsers = [{
|
||||||
|
uid = config.ids.uids.bepasty;
|
||||||
|
name = user;
|
||||||
|
group = group;
|
||||||
|
home = default_home;
|
||||||
|
}];
|
||||||
|
|
||||||
|
users.extraGroups = [{
|
||||||
|
name = group;
|
||||||
|
gid = config.ids.gids.bepasty;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
}
|
@ -121,6 +121,7 @@ in
|
|||||||
disnix =
|
disnix =
|
||||||
{ description = "Disnix server";
|
{ description = "Disnix server";
|
||||||
|
|
||||||
|
wants = [ "dysnomia.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "dbus.service" ]
|
after = [ "dbus.service" ]
|
||||||
++ optional config.services.httpd.enable "httpd.service"
|
++ optional config.services.httpd.enable "httpd.service"
|
||||||
@ -138,6 +139,17 @@ in
|
|||||||
HOME = "/root";
|
HOME = "/root";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
preStart = ''
|
||||||
|
mkdir -p /etc/systemd-mutable/system
|
||||||
|
if [ ! -f /etc/systemd-mutable/system/dysnomia.target ]
|
||||||
|
then
|
||||||
|
( echo "[Unit]"
|
||||||
|
echo "Description=Services that are activated and deactivated by Dysnomia"
|
||||||
|
echo "After=final.target"
|
||||||
|
) > /etc/systemd-mutable/system/dysnomia.target
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
exec = "disnix-service";
|
exec = "disnix-service";
|
||||||
};
|
};
|
||||||
} // optionalAttrs cfg.publishAvahi {
|
} // optionalAttrs cfg.publishAvahi {
|
||||||
|
@ -41,8 +41,15 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
carbonOpts = name: with config.ids; ''
|
carbonOpts = name: with config.ids; ''
|
||||||
--nodaemon --syslog --prefix=${name} --pidfile ${dataDir}/${name}.pid ${name}
|
--nodaemon --syslog --prefix=${name} --pidfile /run/${name}/${name}.pid ${name}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
mkPidFileDir = name: ''
|
||||||
|
mkdir -p /run/${name}
|
||||||
|
chmod 0700 /run/${name}
|
||||||
|
chown -R graphite:graphite /run/${name}
|
||||||
|
'';
|
||||||
|
|
||||||
carbonEnv = {
|
carbonEnv = {
|
||||||
PYTHONPATH = "${pkgs.python27Packages.carbon}/lib/python2.7/site-packages";
|
PYTHONPATH = "${pkgs.python27Packages.carbon}/lib/python2.7/site-packages";
|
||||||
GRAPHITE_ROOT = dataDir;
|
GRAPHITE_ROOT = dataDir;
|
||||||
@ -370,18 +377,20 @@ in {
|
|||||||
|
|
||||||
config = mkMerge [
|
config = mkMerge [
|
||||||
(mkIf cfg.carbon.enableCache {
|
(mkIf cfg.carbon.enableCache {
|
||||||
systemd.services.carbonCache = {
|
systemd.services.carbonCache = let name = "carbon-cache"; in {
|
||||||
description = "Graphite Data Storage Backend";
|
description = "Graphite Data Storage Backend";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-interfaces.target" ];
|
after = [ "network-interfaces.target" ];
|
||||||
environment = carbonEnv;
|
environment = carbonEnv;
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}";
|
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts name}";
|
||||||
User = "graphite";
|
User = "graphite";
|
||||||
Group = "graphite";
|
Group = "graphite";
|
||||||
PermissionsStartOnly = true;
|
PermissionsStartOnly = true;
|
||||||
|
PIDFile="/run/${name}/${name}.pid";
|
||||||
};
|
};
|
||||||
preStart = ''
|
preStart = mkPidFileDir name + ''
|
||||||
|
|
||||||
mkdir -p ${cfg.dataDir}/whisper
|
mkdir -p ${cfg.dataDir}/whisper
|
||||||
chmod 0700 ${cfg.dataDir}/whisper
|
chmod 0700 ${cfg.dataDir}/whisper
|
||||||
chown -R graphite:graphite ${cfg.dataDir}
|
chown -R graphite:graphite ${cfg.dataDir}
|
||||||
@ -390,31 +399,35 @@ in {
|
|||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.carbon.enableAggregator {
|
(mkIf cfg.carbon.enableAggregator {
|
||||||
systemd.services.carbonAggregator = {
|
systemd.services.carbonAggregator = let name = "carbon-aggregator"; in {
|
||||||
enable = cfg.carbon.enableAggregator;
|
enable = cfg.carbon.enableAggregator;
|
||||||
description = "Carbon Data Aggregator";
|
description = "Carbon Data Aggregator";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-interfaces.target" ];
|
after = [ "network-interfaces.target" ];
|
||||||
environment = carbonEnv;
|
environment = carbonEnv;
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}";
|
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts name}";
|
||||||
User = "graphite";
|
User = "graphite";
|
||||||
Group = "graphite";
|
Group = "graphite";
|
||||||
|
PIDFile="/run/${name}/${name}.pid";
|
||||||
};
|
};
|
||||||
|
preStart = mkPidFileDir name;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.carbon.enableRelay {
|
(mkIf cfg.carbon.enableRelay {
|
||||||
systemd.services.carbonRelay = {
|
systemd.services.carbonRelay = let name = "carbon-relay"; in {
|
||||||
description = "Carbon Data Relay";
|
description = "Carbon Data Relay";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-interfaces.target" ];
|
after = [ "network-interfaces.target" ];
|
||||||
environment = carbonEnv;
|
environment = carbonEnv;
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}";
|
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts name}";
|
||||||
User = "graphite";
|
User = "graphite";
|
||||||
Group = "graphite";
|
Group = "graphite";
|
||||||
|
PIDFile="/run/${name}/${name}.pid";
|
||||||
};
|
};
|
||||||
|
preStart = mkPidFileDir name;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
|
118
nixos/modules/services/monitoring/longview.nix
Normal file
118
nixos/modules/services/monitoring/longview.nix
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.longview;
|
||||||
|
|
||||||
|
pidFile = "/run/longview.pid";
|
||||||
|
|
||||||
|
apacheConf = optionalString (cfg.apacheStatusUrl != "") ''
|
||||||
|
location ${cfg.apacheStatusUrl}?auto
|
||||||
|
'';
|
||||||
|
mysqlConf = optionalString (cfg.mysqlUser != "") ''
|
||||||
|
username ${cfg.mysqlUser}
|
||||||
|
password ${cfg.mysqlPassword}
|
||||||
|
'';
|
||||||
|
nginxConf = optionalString (cfg.nginxStatusUrl != "") ''
|
||||||
|
location ${cfg.nginxStatusUrl}
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.longview = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
If enabled, system metrics will be sent to Linode LongView.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
apiKey = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
example = "01234567-89AB-CDEF-0123456789ABCDEF";
|
||||||
|
description = ''
|
||||||
|
Longview API key. To get this, look in Longview settings which
|
||||||
|
are found at https://manager.linode.com/longview/.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
apacheStatusUrl = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "";
|
||||||
|
example = "http://127.0.0.1/server-status";
|
||||||
|
description = ''
|
||||||
|
The Apache status page URL. If provided, Longview will
|
||||||
|
gather statistics from this location. This requires Apache
|
||||||
|
mod_status to be loaded and enabled.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
nginxStatusUrl = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "";
|
||||||
|
example = "http://127.0.0.1/nginx_status";
|
||||||
|
description = ''
|
||||||
|
The Nginx status page URL. Longview will gather statistics
|
||||||
|
from this URL. This requires the Nginx stub_status module to
|
||||||
|
be enabled and configured at the given location.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
mysqlUser = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
The user for connecting to the MySQL database. If provided,
|
||||||
|
Longview will connect to MySQL and collect statistics about
|
||||||
|
queries, etc. This user does not need to have been granted
|
||||||
|
any extra privileges.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
mysqlPassword = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
The password corresponding to mysqlUser. Warning: this is
|
||||||
|
stored in cleartext in the Nix store!
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
systemd.services.longview =
|
||||||
|
{ description = "Longview Metrics Collection";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig.Type = "forking";
|
||||||
|
serviceConfig.ExecStop = "-${pkgs.coreutils}/bin/kill -TERM $MAINPID";
|
||||||
|
serviceConfig.ExecReload = "-${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
|
serviceConfig.PIDFile = pidFile;
|
||||||
|
serviceConfig.ExecStart = "${pkgs.longview}/bin/longview";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.etc."linode/longview.key" = {
|
||||||
|
mode = "0400";
|
||||||
|
text = cfg.apiKey;
|
||||||
|
};
|
||||||
|
environment.etc."linode/longview.d/Apache.conf" = {
|
||||||
|
mode = "0400";
|
||||||
|
text = apacheConf;
|
||||||
|
};
|
||||||
|
environment.etc."linode/longview.d/MySQL.conf" = {
|
||||||
|
mode = "0400";
|
||||||
|
text = mysqlConf;
|
||||||
|
};
|
||||||
|
environment.etc."linode/longview.d/Nginx.conf" = {
|
||||||
|
mode = "0400";
|
||||||
|
text = nginxConf;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -6,13 +6,21 @@ let
|
|||||||
|
|
||||||
cfg = config.services.statsd;
|
cfg = config.services.statsd;
|
||||||
|
|
||||||
|
isBuiltinBackend = name:
|
||||||
|
builtins.elem name [ "graphite" "console" "repeater" ];
|
||||||
|
|
||||||
configFile = pkgs.writeText "statsd.conf" ''
|
configFile = pkgs.writeText "statsd.conf" ''
|
||||||
{
|
{
|
||||||
address: "${cfg.host}",
|
address: "${cfg.host}",
|
||||||
port: "${toString cfg.port}",
|
port: "${toString cfg.port}",
|
||||||
mgmt_address: "${cfg.mgmt_address}",
|
mgmt_address: "${cfg.mgmt_address}",
|
||||||
mgmt_port: "${toString cfg.mgmt_port}",
|
mgmt_port: "${toString cfg.mgmt_port}",
|
||||||
backends: [${concatMapStringsSep "," (el: if (nixType el) == "string" then ''"./backends/${el}"'' else ''"${head el.names}"'') cfg.backends}],
|
backends: [${
|
||||||
|
concatMapStringsSep "," (name:
|
||||||
|
if (isBuiltinBackend name)
|
||||||
|
then ''"./backends/${name}"''
|
||||||
|
else ''"${name}"''
|
||||||
|
) cfg.backends}],
|
||||||
${optionalString (cfg.graphiteHost!=null) ''graphiteHost: "${cfg.graphiteHost}",''}
|
${optionalString (cfg.graphiteHost!=null) ''graphiteHost: "${cfg.graphiteHost}",''}
|
||||||
${optionalString (cfg.graphitePort!=null) ''graphitePort: "${toString cfg.graphitePort}",''}
|
${optionalString (cfg.graphitePort!=null) ''graphitePort: "${toString cfg.graphitePort}",''}
|
||||||
console: {
|
console: {
|
||||||
@ -66,9 +74,16 @@ in
|
|||||||
|
|
||||||
backends = mkOption {
|
backends = mkOption {
|
||||||
description = "List of backends statsd will use for data persistence";
|
description = "List of backends statsd will use for data persistence";
|
||||||
default = ["graphite"];
|
default = [];
|
||||||
example = ["graphite" pkgs.nodePackages."statsd-influxdb-backend"];
|
example = [
|
||||||
type = types.listOf (types.either types.str types.package);
|
"graphite"
|
||||||
|
"console"
|
||||||
|
"repeater"
|
||||||
|
"statsd-librato-backend"
|
||||||
|
"stackdriver-statsd-backend"
|
||||||
|
"statsd-influxdb-backend"
|
||||||
|
];
|
||||||
|
type = types.listOf types.str;
|
||||||
};
|
};
|
||||||
|
|
||||||
graphiteHost = mkOption {
|
graphiteHost = mkOption {
|
||||||
@ -105,15 +120,17 @@ in
|
|||||||
description = "Statsd Server";
|
description = "Statsd Server";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
environment = {
|
environment = {
|
||||||
NODE_PATH=concatMapStringsSep ":" (el: "${el}/lib/node_modules") (filter (el: (nixType el) != "string") cfg.backends);
|
NODE_PATH=concatMapStringsSep ":"
|
||||||
|
(pkg: "${builtins.getAttr pkg pkgs.statsd.nodePackages}/lib/node_modules")
|
||||||
|
(filter (name: !isBuiltinBackend name) cfg.backends);
|
||||||
};
|
};
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.nodePackages.statsd}/bin/statsd ${configFile}";
|
ExecStart = "${pkgs.statsd}/bin/statsd ${configFile}";
|
||||||
User = "statsd";
|
User = "statsd";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [pkgs.nodePackages.statsd];
|
environment.systemPackages = [ pkgs.statsd ];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -8,26 +8,10 @@ let
|
|||||||
|
|
||||||
stateDir = "/var/lib/chrony";
|
stateDir = "/var/lib/chrony";
|
||||||
|
|
||||||
chronyUser = "chrony";
|
keyFile = "/etc/chrony.keys";
|
||||||
|
|
||||||
cfg = config.services.chrony;
|
cfg = config.services.chrony;
|
||||||
|
|
||||||
configFile = pkgs.writeText "chrony.conf" ''
|
|
||||||
${toString (map (server: "server " + server + "\n") cfg.servers)}
|
|
||||||
|
|
||||||
${optionalString cfg.initstepslew.enabled ''
|
|
||||||
initstepslew ${toString cfg.initstepslew.threshold} ${toString (map (server: server + " ") cfg.initstepslew.servers)}
|
|
||||||
''}
|
|
||||||
|
|
||||||
driftfile ${stateDir}/chrony.drift
|
|
||||||
|
|
||||||
${optionalString (!config.time.hardwareClockInLocalTime) "rtconutc"}
|
|
||||||
|
|
||||||
${cfg.extraConfig}
|
|
||||||
'';
|
|
||||||
|
|
||||||
chronyFlags = "-m -f ${configFile} -u ${chronyUser}";
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -47,12 +31,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
servers = mkOption {
|
servers = mkOption {
|
||||||
default = [
|
default = config.services.ntp.servers;
|
||||||
"0.nixos.pool.ntp.org"
|
|
||||||
"1.nixos.pool.ntp.org"
|
|
||||||
"2.nixos.pool.ntp.org"
|
|
||||||
"3.nixos.pool.ntp.org"
|
|
||||||
];
|
|
||||||
description = ''
|
description = ''
|
||||||
The set of NTP servers from which to synchronise.
|
The set of NTP servers from which to synchronise.
|
||||||
'';
|
'';
|
||||||
@ -90,28 +69,60 @@ in
|
|||||||
# Make chronyc available in the system path
|
# Make chronyc available in the system path
|
||||||
environment.systemPackages = [ pkgs.chrony ];
|
environment.systemPackages = [ pkgs.chrony ];
|
||||||
|
|
||||||
|
environment.etc."chrony.conf".text =
|
||||||
|
''
|
||||||
|
${concatMapStringsSep "\n" (server: "server " + server) cfg.servers}
|
||||||
|
|
||||||
|
${optionalString
|
||||||
|
cfg.initstepslew.enabled
|
||||||
|
"initstepslew ${toString cfg.initstepslew.threshold} ${concatStringsSep " " cfg.initstepslew.servers}"
|
||||||
|
}
|
||||||
|
|
||||||
|
driftfile ${stateDir}/chrony.drift
|
||||||
|
|
||||||
|
keyfile ${keyFile}
|
||||||
|
generatecommandkey
|
||||||
|
|
||||||
|
${optionalString (!config.time.hardwareClockInLocalTime) "rtconutc"}
|
||||||
|
|
||||||
|
${cfg.extraConfig}
|
||||||
|
'';
|
||||||
|
|
||||||
|
users.extraGroups = singleton
|
||||||
|
{ name = "chrony";
|
||||||
|
gid = config.ids.gids.chrony;
|
||||||
|
};
|
||||||
|
|
||||||
users.extraUsers = singleton
|
users.extraUsers = singleton
|
||||||
{ name = chronyUser;
|
{ name = "chrony";
|
||||||
uid = config.ids.uids.chrony;
|
uid = config.ids.uids.chrony;
|
||||||
|
group = "chrony";
|
||||||
description = "chrony daemon user";
|
description = "chrony daemon user";
|
||||||
home = stateDir;
|
home = stateDir;
|
||||||
};
|
};
|
||||||
|
|
||||||
jobs.chronyd =
|
systemd.services.ntpd.enable = false;
|
||||||
{ description = "chrony daemon";
|
|
||||||
|
systemd.services.chronyd =
|
||||||
|
{ description = "chrony NTP daemon";
|
||||||
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
|
conflicts = [ "ntpd.service" "systemd-timesyncd.service" ];
|
||||||
|
|
||||||
path = [ chrony ];
|
path = [ pkgs.chrony ];
|
||||||
|
|
||||||
preStart =
|
preStart =
|
||||||
''
|
''
|
||||||
mkdir -m 0755 -p ${stateDir}
|
mkdir -m 0755 -p ${stateDir}
|
||||||
chown ${chronyUser} ${stateDir}
|
touch ${keyFile}
|
||||||
|
chmod 0640 ${keyFile}
|
||||||
|
chown chrony:chrony ${stateDir} ${keyFile}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
exec = "chronyd -n ${chronyFlags}";
|
serviceConfig =
|
||||||
|
{ ExecStart = "${pkgs.chrony}/bin/chronyd -n -m -u chrony";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -10,23 +10,59 @@ let
|
|||||||
|
|
||||||
extip = "EXTIP=\$(${pkgs.curl}/bin/curl -sf \"http://jsonip.com\" | ${pkgs.gawk}/bin/awk -F'\"' '{print $4}')";
|
extip = "EXTIP=\$(${pkgs.curl}/bin/curl -sf \"http://jsonip.com\" | ${pkgs.gawk}/bin/awk -F'\"' '{print $4}')";
|
||||||
|
|
||||||
i2pSh = pkgs.writeScriptBin "i2pd" ''
|
toOneZero = b: if b then "1" else "0";
|
||||||
|
|
||||||
|
i2pdConf = pkgs.writeText "i2pd.conf" ''
|
||||||
|
v6 = ${toOneZero cfg.enableIPv6}
|
||||||
|
unreachable = ${toOneZero cfg.unreachable}
|
||||||
|
floodfill = ${toOneZero cfg.floodfill}
|
||||||
|
${if isNull cfg.port then "" else "port = ${toString cfg.port}"}
|
||||||
|
httpproxyport = ${toString cfg.proxy.httpPort}
|
||||||
|
socksproxyport = ${toString cfg.proxy.socksPort}
|
||||||
|
ircaddress = ${cfg.irc.host}
|
||||||
|
ircport = ${toString cfg.irc.port}
|
||||||
|
ircdest = ${cfg.irc.dest}
|
||||||
|
irckeys = ${cfg.irc.keyFile}
|
||||||
|
eepport = ${toString cfg.eep.port}
|
||||||
|
${if isNull cfg.sam.port then "" else "--samport=${toString cfg.sam.port}"}
|
||||||
|
eephost = ${cfg.eep.host}
|
||||||
|
eepkeys = ${cfg.eep.keyFile}
|
||||||
|
'';
|
||||||
|
|
||||||
|
i2pdTunnelConf = pkgs.writeText "i2pd-tunnels.conf" ''
|
||||||
|
${flip concatMapStrings
|
||||||
|
(collect (tun: tun ? port && tun ? destination) cfg.outTunnels)
|
||||||
|
(tun: let portStr = toString tun.port; in ''
|
||||||
|
[${tun.name}]
|
||||||
|
type = client
|
||||||
|
destination = ${tun.destination}
|
||||||
|
keys = ${tun.keys}
|
||||||
|
address = ${tun.address}
|
||||||
|
port = ${toString tun.port}
|
||||||
|
'')
|
||||||
|
}
|
||||||
|
${flip concatMapStrings
|
||||||
|
(collect (tun: tun ? port && tun ? host) cfg.outTunnels)
|
||||||
|
(tun: let portStr = toString tun.port; in ''
|
||||||
|
[${tun.name}]
|
||||||
|
type = server
|
||||||
|
destination = ${tun.destination}
|
||||||
|
keys = ${tun.keys}
|
||||||
|
host = ${tun.address}
|
||||||
|
port = ${tun.port}
|
||||||
|
inport = ${tun.inPort}
|
||||||
|
accesslist = ${concatStringSep "," tun.accessList}
|
||||||
|
'')
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
i2pdSh = pkgs.writeScriptBin "i2pd" ''
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
${if isNull cfg.extIp then extip else ""}
|
${if isNull cfg.extIp then extip else ""}
|
||||||
${pkgs.i2pd}/bin/i2p --log=1 --daemon=0 --service=0 \
|
${pkgs.i2pd}/bin/i2pd --log=1 --daemon=0 --service=0 \
|
||||||
--v6=${if cfg.enableIPv6 then "1" else "0"} \
|
|
||||||
--unreachable=${if cfg.unreachable then "1" else "0"} \
|
|
||||||
--host=${if isNull cfg.extIp then "$EXTIP" else cfg.extIp} \
|
--host=${if isNull cfg.extIp then "$EXTIP" else cfg.extIp} \
|
||||||
${if isNull cfg.port then "" else "--port=${toString cfg.port}"} \
|
--conf=${i2pdConf} \
|
||||||
--httpproxyport=${toString cfg.proxy.httpPort} \
|
--tunnelscfg=${i2pdTunnelConf}
|
||||||
--socksproxyport=${toString cfg.proxy.socksPort} \
|
|
||||||
--ircport=${toString cfg.irc.port} \
|
|
||||||
--ircdest=${cfg.irc.dest} \
|
|
||||||
--irckeys=${cfg.irc.keyFile} \
|
|
||||||
--eepport=${toString cfg.eep.port} \
|
|
||||||
${if isNull cfg.sam.port then "" else "--samport=${toString cfg.sam.port}"} \
|
|
||||||
--eephost=${cfg.eep.host} \
|
|
||||||
--eepkeys=${cfg.eep.keyFile}
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in
|
in
|
||||||
@ -63,6 +99,14 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
floodfill = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
If the router is declared to be unreachable and needs introduction nodes.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = with types; nullOr int;
|
type = with types; nullOr int;
|
||||||
default = null;
|
default = null;
|
||||||
@ -107,6 +151,13 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
irc = {
|
irc = {
|
||||||
|
host = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "127.0.0.1";
|
||||||
|
description = ''
|
||||||
|
Address to forward incoming traffic to. 127.0.0.1 by default.
|
||||||
|
'';
|
||||||
|
};
|
||||||
dest = mkOption {
|
dest = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "irc.postman.i2p";
|
default = "irc.postman.i2p";
|
||||||
@ -163,6 +214,94 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
outTunnels = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = with types; loaOf optionSet;
|
||||||
|
description = ''
|
||||||
|
'';
|
||||||
|
options = [ ({ name, config, ... }: {
|
||||||
|
|
||||||
|
options = {
|
||||||
|
name = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "The name of the tunnel.";
|
||||||
|
};
|
||||||
|
destination = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "Remote endpoint, I2P hostname or b32.i2p address.";
|
||||||
|
};
|
||||||
|
keys = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = name + "-keys.dat";
|
||||||
|
description = "Keyset used for tunnel identity.";
|
||||||
|
};
|
||||||
|
address = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "127.0.0.1";
|
||||||
|
description = "Local bind address for tunnel.";
|
||||||
|
};
|
||||||
|
port = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
description = "Local tunnel listen port.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
name = mkDefault name;
|
||||||
|
};
|
||||||
|
|
||||||
|
}) ];
|
||||||
|
};
|
||||||
|
|
||||||
|
inTunnels = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = with types; loaOf optionSet;
|
||||||
|
description = ''
|
||||||
|
'';
|
||||||
|
options = [ ({ name, config, ... }: {
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
name = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "The name of the tunnel.";
|
||||||
|
};
|
||||||
|
keys = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = name + "-keys.dat";
|
||||||
|
description = "Keyset used for tunnel identity.";
|
||||||
|
};
|
||||||
|
address = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "127.0.0.1";
|
||||||
|
description = "Local service IP address.";
|
||||||
|
};
|
||||||
|
port = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
description = "Local tunnel listen port.";
|
||||||
|
};
|
||||||
|
inPort = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
description = "I2P service port. Default to the tunnel's listen port.";
|
||||||
|
};
|
||||||
|
accessList = mkOption {
|
||||||
|
type = with types; listOf str;
|
||||||
|
default = [];
|
||||||
|
description = "I2P nodes that are allowed to connect to this service.";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
name = mkDefault name;
|
||||||
|
};
|
||||||
|
|
||||||
|
}) ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -190,9 +329,8 @@ in
|
|||||||
User = "i2pd";
|
User = "i2pd";
|
||||||
WorkingDirectory = homeDir;
|
WorkingDirectory = homeDir;
|
||||||
Restart = "on-abort";
|
Restart = "on-abort";
|
||||||
ExecStart = "${i2pSh}/bin/i2pd";
|
ExecStart = "${i2pdSh}/bin/i2pd";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#
|
|
||||||
|
@ -118,7 +118,7 @@ in
|
|||||||
systemd.services.strongswan = {
|
systemd.services.strongswan = {
|
||||||
description = "strongSwan IPSec Service";
|
description = "strongSwan IPSec Service";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = with pkgs; [ kmod iproute iptables utillinux ]; # XXX Linux
|
path = with pkgs; [ config.system.sbin.modprobe iproute iptables utillinux ]; # XXX Linux
|
||||||
wants = [ "keys.target" ];
|
wants = [ "keys.target" ];
|
||||||
after = [ "network.target" "keys.target" ];
|
after = [ "network.target" "keys.target" ];
|
||||||
environment = {
|
environment = {
|
||||||
|
@ -21,7 +21,7 @@ in
|
|||||||
description = ''
|
description = ''
|
||||||
Whether to enable the Syncthing, self-hosted open-source alternative
|
Whether to enable the Syncthing, self-hosted open-source alternative
|
||||||
to Dropbox and BittorrentSync. Initial interface will be
|
to Dropbox and BittorrentSync. Initial interface will be
|
||||||
available on http://127.0.0.1:8080/.
|
available on http://127.0.0.1:8384/.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -40,6 +40,17 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.syncthing;
|
||||||
|
example = literalExample "pkgs.syncthing";
|
||||||
|
description = ''
|
||||||
|
Syncthing package to use.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -66,7 +77,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.syncthing ];
|
environment.systemPackages = [ cfg.package ];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ let
|
|||||||
else toString ''"${x}"'';
|
else toString ''"${x}"'';
|
||||||
|
|
||||||
# for users in group "transmission" to have access to torrents
|
# for users in group "transmission" to have access to torrents
|
||||||
fullSettings = cfg.settings // { umask = 2; };
|
fullSettings = { download-dir = downloadDir; incomplete-dir = incompleteDir; } // cfg.settings // { umask = 2; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
@ -35,7 +35,7 @@ in
|
|||||||
Transmission daemon can be controlled via the RPC interface using
|
Transmission daemon can be controlled via the RPC interface using
|
||||||
transmission-remote or the WebUI (http://localhost:9091/ by default).
|
transmission-remote or the WebUI (http://localhost:9091/ by default).
|
||||||
|
|
||||||
Torrents are downloaded to ${homeDir}/Downloads/ by default and are
|
Torrents are downloaded to ${downloadDir} by default and are
|
||||||
accessible to users in the "transmission" group.
|
accessible to users in the "transmission" group.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -83,7 +83,7 @@ in
|
|||||||
# 1) Only the "transmission" user and group have access to torrents.
|
# 1) Only the "transmission" user and group have access to torrents.
|
||||||
# 2) Optionally update/force specific fields into the configuration file.
|
# 2) Optionally update/force specific fields into the configuration file.
|
||||||
serviceConfig.ExecStartPre = ''
|
serviceConfig.ExecStartPre = ''
|
||||||
${pkgs.stdenv.shell} -c "chmod 770 ${homeDir} && mkdir -p ${settingsDir} ${downloadDir} ${incompleteDir} && rm -f ${settingsDir}/settings.json && cp -f ${settingsFile} ${settingsDir}/settings.json"
|
${pkgs.stdenv.shell} -c "mkdir -p ${homeDir} ${settingsDir} ${fullSettings.download-dir} ${fullSettings.incomplete-dir} && chmod 770 ${homeDir} ${settingsDir} ${fullSettings.download-dir} ${fullSettings.incomplete-dir} && rm -f ${settingsDir}/settings.json && cp -f ${settingsFile} ${settingsDir}/settings.json"
|
||||||
'';
|
'';
|
||||||
serviceConfig.ExecStart = "${pkgs.transmission}/bin/transmission-daemon -f --port ${toString config.services.transmission.port}";
|
serviceConfig.ExecStart = "${pkgs.transmission}/bin/transmission-daemon -f --port ${toString config.services.transmission.port}";
|
||||||
serviceConfig.ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
serviceConfig.ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
|
@ -70,7 +70,7 @@ let
|
|||||||
"proxyuserpwd" => "",
|
"proxyuserpwd" => "",
|
||||||
|
|
||||||
/* List of trusted domains, to prevent host header poisoning ownCloud is only using these Host headers */
|
/* List of trusted domains, to prevent host header poisoning ownCloud is only using these Host headers */
|
||||||
'trusted_domains' => array('${config.trustedDomain}'),
|
${if config.trustedDomain != "" then "'trusted_domains' => array('${config.trustedDomain}')," else ""}
|
||||||
|
|
||||||
/* Theme to use for ownCloud */
|
/* Theme to use for ownCloud */
|
||||||
"theme" => "",
|
"theme" => "",
|
||||||
@ -331,7 +331,7 @@ let
|
|||||||
*/
|
*/
|
||||||
'share_folder' => '/',
|
'share_folder' => '/',
|
||||||
|
|
||||||
'version' => '${pkgs.owncloud.version}',
|
'version' => '${config.package.version}',
|
||||||
|
|
||||||
'openssl' => '${pkgs.openssl}/bin/openssl'
|
'openssl' => '${pkgs.openssl}/bin/openssl'
|
||||||
|
|
||||||
@ -345,16 +345,15 @@ rec {
|
|||||||
|
|
||||||
extraConfig =
|
extraConfig =
|
||||||
''
|
''
|
||||||
ServerName ${config.siteName}
|
${if config.urlPrefix != "" then "Alias ${config.urlPrefix} ${config.package}" else ''
|
||||||
ServerAdmin ${config.adminAddr}
|
|
||||||
DocumentRoot ${documentRoot}
|
|
||||||
|
|
||||||
RewriteEngine On
|
RewriteEngine On
|
||||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
|
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
|
||||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
|
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
|
||||||
|
''}
|
||||||
|
|
||||||
<Directory ${pkgs.owncloud}>
|
<Directory ${config.package}>
|
||||||
${builtins.readFile "${pkgs.owncloud}/.htaccess"}
|
${builtins.readFile "${config.package}/.htaccess"}
|
||||||
</Directory>
|
</Directory>
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -362,12 +361,29 @@ rec {
|
|||||||
{ name = "OC_CONFIG_PATH"; value = "${config.dataDir}/config/"; }
|
{ name = "OC_CONFIG_PATH"; value = "${config.dataDir}/config/"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
documentRoot = pkgs.owncloud;
|
documentRoot = if config.urlPrefix == "" then config.package else null;
|
||||||
|
|
||||||
enablePHP = true;
|
enablePHP = true;
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.owncloud70;
|
||||||
|
example = literalExample "pkgs.owncloud70";
|
||||||
|
description = ''
|
||||||
|
PostgreSQL package to use.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
urlPrefix = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "/owncloud";
|
||||||
|
description = ''
|
||||||
|
The URL prefix under which the owncloud service appears.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
id = mkOption {
|
id = mkOption {
|
||||||
default = "main";
|
default = "main";
|
||||||
description = ''
|
description = ''
|
||||||
@ -552,7 +568,7 @@ rec {
|
|||||||
cp ${owncloudConfig} ${config.dataDir}/config/config.php
|
cp ${owncloudConfig} ${config.dataDir}/config/config.php
|
||||||
mkdir -p ${config.dataDir}/storage
|
mkdir -p ${config.dataDir}/storage
|
||||||
mkdir -p ${config.dataDir}/apps
|
mkdir -p ${config.dataDir}/apps
|
||||||
cp -r ${pkgs.owncloud}/apps/* ${config.dataDir}/apps/
|
cp -r ${config.package}/apps/* ${config.dataDir}/apps/
|
||||||
chmod -R ug+rw ${config.dataDir}
|
chmod -R ug+rw ${config.dataDir}
|
||||||
chmod -R o-rwx ${config.dataDir}
|
chmod -R o-rwx ${config.dataDir}
|
||||||
chown -R wwwrun:wwwrun ${config.dataDir}
|
chown -R wwwrun:wwwrun ${config.dataDir}
|
||||||
@ -566,7 +582,11 @@ rec {
|
|||||||
${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/psql -h "/tmp" -U postgres -d ${config.dbName} -Atw -c "$QUERY" || true
|
${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/psql -h "/tmp" -U postgres -d ${config.dbName} -Atw -c "$QUERY" || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${php}/bin/php ${pkgs.owncloud}/occ upgrade || true
|
if [ -e ${config.package}/config/ca-bundle.crt ]; then
|
||||||
|
cp -f ${config.package}/config/ca-bundle.crt ${config.dataDir}/config/
|
||||||
|
fi
|
||||||
|
|
||||||
|
${php}/bin/php ${config.package}/occ upgrade >> ${config.dataDir}/upgrade.log || true
|
||||||
|
|
||||||
chown wwwrun:wwwrun ${config.dataDir}/owncloud.log || true
|
chown wwwrun:wwwrun ${config.dataDir}/owncloud.log || true
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ with lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
version = "4.3";
|
version = "4.3.1";
|
||||||
fullversion = "${version}";
|
fullversion = "${version}";
|
||||||
|
|
||||||
# Our bare-bones wp-config.php file using the above settings
|
# Our bare-bones wp-config.php file using the above settings
|
||||||
@ -74,7 +74,7 @@ let
|
|||||||
owner = "WordPress";
|
owner = "WordPress";
|
||||||
repo = "WordPress";
|
repo = "WordPress";
|
||||||
rev = "${fullversion}";
|
rev = "${fullversion}";
|
||||||
sha256 = "0sz5jjhjpwqis8336gyq9a77cr4sf8zahd1y4pzmpvpzn9cn503y";
|
sha256 = "1rk10vcv4z9p04hfzc0wkbilrgx7m9ssyr6c3w6vw3vl1bcgqxza";
|
||||||
};
|
};
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
@ -248,7 +248,7 @@ in
|
|||||||
if [ ! -d ${serverInfo.fullConfig.services.mysql.dataDir}/${config.dbName} ]; then
|
if [ ! -d ${serverInfo.fullConfig.services.mysql.dataDir}/${config.dbName} ]; then
|
||||||
echo "Need to create the database '${config.dbName}' and grant permissions to user named '${config.dbUser}'."
|
echo "Need to create the database '${config.dbName}' and grant permissions to user named '${config.dbUser}'."
|
||||||
# Wait until MySQL is up
|
# Wait until MySQL is up
|
||||||
while [ ! -e /var/run/mysql/mysqld.pid ]; do
|
while [ ! -e ${serverInfo.fullConfig.services.mysql.pidDir}/mysqld.pid ]; do
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
${pkgs.mysql}/bin/mysql -e 'CREATE DATABASE ${config.dbName};'
|
${pkgs.mysql}/bin/mysql -e 'CREATE DATABASE ${config.dbName};'
|
||||||
|
@ -108,7 +108,7 @@ in
|
|||||||
kdeApps.okular
|
kdeApps.okular
|
||||||
kdeApps.print-manager
|
kdeApps.print-manager
|
||||||
|
|
||||||
kdeApps.oxygen-icons
|
(kdeApps.oxygen-icons or kf5.oxygen-icons5)
|
||||||
pkgs.hicolor_icon_theme
|
pkgs.hicolor_icon_theme
|
||||||
|
|
||||||
plasma5.kde-gtk-config
|
plasma5.kde-gtk-config
|
||||||
@ -155,7 +155,7 @@ in
|
|||||||
GST_PLUGIN_SYSTEM_PATH_1_0 = [ "/lib/gstreamer-1.0" ];
|
GST_PLUGIN_SYSTEM_PATH_1_0 = [ "/lib/gstreamer-1.0" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.fonts = [ plasma5.oxygen-fonts ];
|
fonts.fonts = [ (plasma5.oxygen-fonts or pkgs.noto-fonts) ];
|
||||||
|
|
||||||
programs.ssh.askPassword = "${plasma5.ksshaskpass}/bin/ksshaskpass";
|
programs.ssh.askPassword = "${plasma5.ksshaskpass}/bin/ksshaskpass";
|
||||||
|
|
||||||
|
@ -18,6 +18,14 @@ in
|
|||||||
description = "Enable the Xfce desktop environment.";
|
description = "Enable the Xfce desktop environment.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.xserver.desktopManager.xfce.thunarPlugins = mkOption {
|
||||||
|
default = [];
|
||||||
|
type = types.listOf types.package;
|
||||||
|
example = literalExample "[ pkgs.xfce.thunar-archive-plugin ]";
|
||||||
|
description = ''
|
||||||
|
A list of plugin that should be installed with Thunar.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -49,7 +57,7 @@ in
|
|||||||
pkgs.xfce.mousepad
|
pkgs.xfce.mousepad
|
||||||
pkgs.xfce.ristretto
|
pkgs.xfce.ristretto
|
||||||
pkgs.xfce.terminal
|
pkgs.xfce.terminal
|
||||||
pkgs.xfce.thunar
|
(pkgs.xfce.thunar.override { thunarPlugins = cfg.thunarPlugins; })
|
||||||
pkgs.xfce.xfce4icontheme
|
pkgs.xfce.xfce4icontheme
|
||||||
pkgs.xfce.xfce4panel
|
pkgs.xfce.xfce4panel
|
||||||
pkgs.xfce.xfce4session
|
pkgs.xfce.xfce4session
|
||||||
|
@ -162,7 +162,7 @@ in
|
|||||||
|
|
||||||
gdm.text = ''
|
gdm.text = ''
|
||||||
auth requisite pam_nologin.so
|
auth requisite pam_nologin.so
|
||||||
auth required pam_env.so
|
auth required pam_env.so envfile=${config.system.build.pamEnvironment}
|
||||||
|
|
||||||
auth required pam_succeed_if.so uid >= 1000 quiet
|
auth required pam_succeed_if.so uid >= 1000 quiet
|
||||||
auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
|
auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
|
||||||
|
@ -0,0 +1,121 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
dmcfg = config.services.xserver.displayManager;
|
||||||
|
ldmcfg = dmcfg.lightdm;
|
||||||
|
cfg = ldmcfg.greeters.gtk;
|
||||||
|
|
||||||
|
inherit (pkgs) stdenv lightdm writeScript writeText;
|
||||||
|
|
||||||
|
theme = cfg.theme.package;
|
||||||
|
icons = cfg.iconTheme.package;
|
||||||
|
|
||||||
|
# The default greeter provided with this expression is the GTK greeter.
|
||||||
|
# Again, we need a few things in the environment for the greeter to run with
|
||||||
|
# fonts/icons.
|
||||||
|
wrappedGtkGreeter = stdenv.mkDerivation {
|
||||||
|
name = "lightdm-gtk-greeter";
|
||||||
|
buildInputs = [ pkgs.makeWrapper ];
|
||||||
|
|
||||||
|
buildCommand = ''
|
||||||
|
# This wrapper ensures that we actually get themes
|
||||||
|
makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \
|
||||||
|
$out/greeter \
|
||||||
|
--prefix PATH : "${pkgs.glibc}/bin" \
|
||||||
|
--set GDK_PIXBUF_MODULE_FILE "${pkgs.gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
|
||||||
|
--set GTK_PATH "${theme}:${pkgs.gtk3}" \
|
||||||
|
--set GTK_EXE_PREFIX "${theme}" \
|
||||||
|
--set GTK_DATA_PREFIX "${theme}" \
|
||||||
|
--set XDG_DATA_DIRS "${theme}/share:${icons}/share" \
|
||||||
|
--set XDG_CONFIG_HOME "${theme}/share"
|
||||||
|
|
||||||
|
cat - > $out/lightdm-gtk-greeter.desktop << EOF
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=LightDM Greeter
|
||||||
|
Comment=This runs the LightDM Greeter
|
||||||
|
Exec=$out/greeter
|
||||||
|
Type=Application
|
||||||
|
EOF
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
gtkGreeterConf = writeText "lightdm-gtk-greeter.conf"
|
||||||
|
''
|
||||||
|
[greeter]
|
||||||
|
theme-name = ${cfg.theme.name}
|
||||||
|
icon-theme-name = ${cfg.iconTheme.name}
|
||||||
|
background = ${ldmcfg.background}
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.xserver.displayManager.lightdm.greeters.gtk = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to enable lightdm-gtk-greeter as the lightdm greeter.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = pkgs.gnome3.gnome_themes_standard;
|
||||||
|
description = ''
|
||||||
|
The package path that contains the theme given in the name option.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
name = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "Adwaita";
|
||||||
|
description = ''
|
||||||
|
Name of the theme to use for the lightdm-gtk-greeter.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
iconTheme = {
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = pkgs.gnome3.defaultIconTheme;
|
||||||
|
description = ''
|
||||||
|
The package path that contains the icon theme given in the name option.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
name = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "Adwaita";
|
||||||
|
description = ''
|
||||||
|
Name of the icon theme to use for the lightdm-gtk-greeter.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf (ldmcfg.enable && cfg.enable) {
|
||||||
|
|
||||||
|
services.xserver.displayManager.lightdm.greeter = mkDefault {
|
||||||
|
package = wrappedGtkGreeter;
|
||||||
|
name = "lightdm-gtk-greeter";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.etc."lightdm/lightdm-gtk-greeter.conf".source = gtkGreeterConf;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
@ -18,38 +18,6 @@ let
|
|||||||
exec ${dmcfg.xserverBin} ${dmcfg.xserverArgs}
|
exec ${dmcfg.xserverBin} ${dmcfg.xserverArgs}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
theme = pkgs.gnome3.gnome_themes_standard;
|
|
||||||
icons = pkgs.gnome3.defaultIconTheme;
|
|
||||||
|
|
||||||
# The default greeter provided with this expression is the GTK greeter.
|
|
||||||
# Again, we need a few things in the environment for the greeter to run with
|
|
||||||
# fonts/icons.
|
|
||||||
wrappedGtkGreeter = stdenv.mkDerivation {
|
|
||||||
name = "lightdm-gtk-greeter";
|
|
||||||
buildInputs = [ pkgs.makeWrapper ];
|
|
||||||
|
|
||||||
buildCommand = ''
|
|
||||||
# This wrapper ensures that we actually get themes
|
|
||||||
makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \
|
|
||||||
$out/greeter \
|
|
||||||
--prefix PATH : "${pkgs.glibc}/bin" \
|
|
||||||
--set GDK_PIXBUF_MODULE_FILE "${pkgs.gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
|
|
||||||
--set GTK_PATH "${theme}:${pkgs.gtk3}" \
|
|
||||||
--set GTK_EXE_PREFIX "${theme}" \
|
|
||||||
--set GTK_DATA_PREFIX "${theme}" \
|
|
||||||
--set XDG_DATA_DIRS "${theme}/share:${icons}/share" \
|
|
||||||
--set XDG_CONFIG_HOME "${theme}/share"
|
|
||||||
|
|
||||||
cat - > $out/lightdm-gtk-greeter.desktop << EOF
|
|
||||||
[Desktop Entry]
|
|
||||||
Name=LightDM Greeter
|
|
||||||
Comment=This runs the LightDM Greeter
|
|
||||||
Exec=$out/greeter
|
|
||||||
Type=Application
|
|
||||||
EOF
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
usersConf = writeText "users.conf"
|
usersConf = writeText "users.conf"
|
||||||
''
|
''
|
||||||
[UserList]
|
[UserList]
|
||||||
@ -72,34 +40,42 @@ let
|
|||||||
${cfg.extraSeatDefaults}
|
${cfg.extraSeatDefaults}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
gtkGreeterConf = writeText "lightdm-gtk-greeter.conf"
|
|
||||||
''
|
|
||||||
[greeter]
|
|
||||||
theme-name = Adwaita
|
|
||||||
icon-theme-name = Adwaita
|
|
||||||
background = ${cfg.background}
|
|
||||||
'';
|
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
# Note: the order in which lightdm greeter modules are imported
|
||||||
|
# here determines the default: later modules (if enable) are
|
||||||
|
# preferred.
|
||||||
|
imports = [
|
||||||
|
./lightdm-greeters/gtk.nix
|
||||||
|
];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
services.xserver.displayManager.lightdm = {
|
services.xserver.displayManager.lightdm = {
|
||||||
|
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Whether to enable lightdm as the display manager.
|
Whether to enable lightdm as the display manager.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
greeter = mkOption {
|
greeter = {
|
||||||
|
package = mkOption {
|
||||||
|
type = types.path;
|
||||||
description = ''
|
description = ''
|
||||||
The LightDM greeter to login via. The package should be a directory
|
The LightDM greeter to login via. The package should be a directory
|
||||||
containing a .desktop file matching the name in the 'name' option.
|
containing a .desktop file matching the name in the 'name' option.
|
||||||
'';
|
'';
|
||||||
default = {
|
|
||||||
name = "lightdm-gtk-greeter";
|
};
|
||||||
package = wrappedGtkGreeter;
|
name = mkOption {
|
||||||
|
type = types.string;
|
||||||
|
description = ''
|
||||||
|
The name of a .desktop file in the directory specified
|
||||||
|
in the 'package' option.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -135,7 +111,6 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc."lightdm/lightdm-gtk-greeter.conf".source = gtkGreeterConf;
|
|
||||||
environment.etc."lightdm/lightdm.conf".source = lightdmConf;
|
environment.etc."lightdm/lightdm.conf".source = lightdmConf;
|
||||||
environment.etc."lightdm/users.conf".source = usersConf;
|
environment.etc."lightdm/users.conf".source = usersConf;
|
||||||
|
|
||||||
@ -150,7 +125,7 @@ in
|
|||||||
allowNullPassword = true;
|
allowNullPassword = true;
|
||||||
startSession = true;
|
startSession = true;
|
||||||
text = ''
|
text = ''
|
||||||
auth required pam_env.so
|
auth required pam_env.so envfile=${config.system.build.pamEnvironment}
|
||||||
auth required pam_permit.so
|
auth required pam_permit.so
|
||||||
|
|
||||||
account required pam_permit.so
|
account required pam_permit.so
|
||||||
|
@ -30,7 +30,7 @@ let
|
|||||||
label = mkOption {
|
label = mkOption {
|
||||||
default = null;
|
default = null;
|
||||||
example = "rootfs";
|
example = "rootfs";
|
||||||
type = types.uniq (types.nullOr types.str);
|
type = types.nullOr types.str;
|
||||||
description = "Label of the unlocked encrypted device. Set <literal>fileSystems.<name?>.device</literal> to <literal>/dev/mapper/<label></literal> to mount the unlocked device.";
|
description = "Label of the unlocked encrypted device. Set <literal>fileSystems.<name?>.device</literal> to <literal>/dev/mapper/<label></literal> to mount the unlocked device.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -47,6 +47,41 @@ let
|
|||||||
|
|
||||||
system = config.nixpkgs.system;
|
system = config.nixpkgs.system;
|
||||||
|
|
||||||
|
bindMountOpts = { name, config, ... }: {
|
||||||
|
|
||||||
|
options = {
|
||||||
|
mountPoint = mkOption {
|
||||||
|
example = "/mnt/usb";
|
||||||
|
type = types.str;
|
||||||
|
description = "Mount point on the container file system.";
|
||||||
|
};
|
||||||
|
hostPath = mkOption {
|
||||||
|
default = null;
|
||||||
|
example = "/home/alice";
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
description = "Location of the host path to be mounted.";
|
||||||
|
};
|
||||||
|
isReadOnly = mkOption {
|
||||||
|
default = true;
|
||||||
|
example = true;
|
||||||
|
type = types.bool;
|
||||||
|
description = "Determine whether the mounted path will be accessed in read-only mode.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
mountPoint = mkDefault name;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
mkBindFlag = d:
|
||||||
|
let flagPrefix = if d.isReadOnly then " --bind-ro=" else " --bind=";
|
||||||
|
mountstr = if d.hostPath != null then "${d.hostPath}:${d.mountPoint}" else "${d.mountPoint}";
|
||||||
|
in flagPrefix + mountstr ;
|
||||||
|
|
||||||
|
mkBindFlags = bs: concatMapStrings mkBindFlag (lib.attrValues bs);
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -142,6 +177,21 @@ in
|
|||||||
Wether the container is automatically started at boot-time.
|
Wether the container is automatically started at boot-time.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bindMounts = mkOption {
|
||||||
|
type = types.loaOf types.optionSet;
|
||||||
|
options = [ bindMountOpts ];
|
||||||
|
default = {};
|
||||||
|
example = { "/home" = { hostPath = "/home/alice";
|
||||||
|
isReadOnly = false; };
|
||||||
|
};
|
||||||
|
|
||||||
|
description =
|
||||||
|
''
|
||||||
|
An extra list of directories that is bound to the container.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkMerge
|
config = mkMerge
|
||||||
@ -249,12 +299,15 @@ in
|
|||||||
fi
|
fi
|
||||||
''}
|
''}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Run systemd-nspawn without startup notification (we'll
|
# Run systemd-nspawn without startup notification (we'll
|
||||||
# wait for the container systemd to signal readiness).
|
# wait for the container systemd to signal readiness).
|
||||||
EXIT_ON_REBOOT=1 NOTIFY_SOCKET= \
|
EXIT_ON_REBOOT=1 NOTIFY_SOCKET= \
|
||||||
exec ${config.systemd.package}/bin/systemd-nspawn \
|
exec ${config.systemd.package}/bin/systemd-nspawn \
|
||||||
--keep-unit \
|
--keep-unit \
|
||||||
-M "$INSTANCE" -D "$root" $extraFlags \
|
-M "$INSTANCE" -D "$root" $extraFlags \
|
||||||
|
$EXTRA_NSPAWN_FLAGS \
|
||||||
--bind-ro=/nix/store \
|
--bind-ro=/nix/store \
|
||||||
--bind-ro=/nix/var/nix/db \
|
--bind-ro=/nix/var/nix/db \
|
||||||
--bind-ro=/nix/var/nix/daemon-socket \
|
--bind-ro=/nix/var/nix/daemon-socket \
|
||||||
@ -354,6 +407,7 @@ in
|
|||||||
${optionalString cfg.autoStart ''
|
${optionalString cfg.autoStart ''
|
||||||
AUTO_START=1
|
AUTO_START=1
|
||||||
''}
|
''}
|
||||||
|
EXTRA_NSPAWN_FLAGS="${mkBindFlags cfg.bindMounts}"
|
||||||
'';
|
'';
|
||||||
}) config.containers;
|
}) config.containers;
|
||||||
|
|
||||||
|
@ -285,6 +285,7 @@ in rec {
|
|||||||
tests.proxy = callTest tests/proxy.nix {};
|
tests.proxy = callTest tests/proxy.nix {};
|
||||||
tests.quake3 = callTest tests/quake3.nix {};
|
tests.quake3 = callTest tests/quake3.nix {};
|
||||||
tests.runInMachine = callTest tests/run-in-machine.nix {};
|
tests.runInMachine = callTest tests/run-in-machine.nix {};
|
||||||
|
tests.sddm = callTest tests/sddm.nix {};
|
||||||
tests.simple = callTest tests/simple.nix {};
|
tests.simple = callTest tests/simple.nix {};
|
||||||
tests.tomcat = callTest tests/tomcat.nix {};
|
tests.tomcat = callTest tests/tomcat.nix {};
|
||||||
tests.udisks2 = callTest tests/udisks2.nix {};
|
tests.udisks2 = callTest tests/udisks2.nix {};
|
||||||
|
@ -26,8 +26,8 @@ import ./make-test.nix (
|
|||||||
</head>
|
</head>
|
||||||
<body onload="javascript:document.title='startup done'">
|
<body onload="javascript:document.title='startup done'">
|
||||||
<img src="file://${pkgs.fetchurl {
|
<img src="file://${pkgs.fetchurl {
|
||||||
url = "http://nixos.org/logo/nixos.svg";
|
url = "http://nixos.org/logo/nixos-hex.svg";
|
||||||
sha256 = "0p2iaqcx2cj24xqycfw1pi4i5461gnn0034lafpi99ph435x6z68";
|
sha256 = "0wxpp65npdw2cg8m0cxc9qff1sb3b478cxpg1741d8951g948rg8";
|
||||||
}}" />
|
}}" />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -171,7 +171,7 @@ let
|
|||||||
];
|
];
|
||||||
|
|
||||||
virtualisation.diskSize = 8 * 1024;
|
virtualisation.diskSize = 8 * 1024;
|
||||||
virtualisation.memorySize = 768;
|
virtualisation.memorySize = 1024;
|
||||||
virtualisation.writableStore = true;
|
virtualisation.writableStore = true;
|
||||||
|
|
||||||
# Use a small /dev/vdb as the root disk for the
|
# Use a small /dev/vdb as the root disk for the
|
||||||
|
@ -80,6 +80,7 @@ import ./make-test.nix ({ pkgs, ...} : {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Test whether systemd-udevd automatically loads modules for our hardware.
|
# Test whether systemd-udevd automatically loads modules for our hardware.
|
||||||
|
$machine->succeed("systemctl start systemd-udev-settle.service");
|
||||||
subtest "udev-auto-load", sub {
|
subtest "udev-auto-load", sub {
|
||||||
$machine->waitForUnit('systemd-udev-settle.service');
|
$machine->waitForUnit('systemd-udev-settle.service');
|
||||||
$machine->succeed('lsmod | grep psmouse');
|
$machine->succeed('lsmod | grep psmouse');
|
||||||
|
28
nixos/tests/sddm.nix
Normal file
28
nixos/tests/sddm.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
import ./make-test.nix ({ pkgs, ...} : {
|
||||||
|
name = "sddm";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ ttuegel ];
|
||||||
|
};
|
||||||
|
|
||||||
|
machine = { lib, ... }: {
|
||||||
|
imports = [ ./common/user-account.nix ];
|
||||||
|
services.xserver.enable = true;
|
||||||
|
services.xserver.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "alice";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.xserver.windowManager.default = "icewm";
|
||||||
|
services.xserver.windowManager.icewm.enable = true;
|
||||||
|
services.xserver.desktopManager.default = "none";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableOCR = true;
|
||||||
|
|
||||||
|
testScript = { nodes, ... }: ''
|
||||||
|
startAll;
|
||||||
|
$machine->waitForWindow("^IceWM ");
|
||||||
|
'';
|
||||||
|
})
|
31
pkgs/applications/audio/aj-snapshot/default.nix
Normal file
31
pkgs/applications/audio/aj-snapshot/default.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{ stdenv, fetchurl, alsaLib, jack2Full, minixml, pkgconfig }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = packageName + "-" + version ;
|
||||||
|
packageName = "aj-snapshot" ;
|
||||||
|
version = "0.9.6" ;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://sourceforge/${packageName}/${name}.tar.bz2";
|
||||||
|
sha256 = "12n2h3609fbvsnnwrwma4m55iyv6lcv1v3q5pznz2w6f12wf0c9z";
|
||||||
|
};
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
buildInputs = [ alsaLib minixml jack2Full pkgconfig ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Tool for storing/restoring JACK and/or ALSA connections to/from cml files";
|
||||||
|
longDescription = ''
|
||||||
|
Aj-snapshot is a small program that can be used to make snapshots of the connections made between JACK and/or ALSA clients.
|
||||||
|
Because JACK can provide both audio and MIDI support to programs, aj-snapshot can store both types of connections for JACK.
|
||||||
|
ALSA, on the other hand, only provides routing facilities for MIDI clients.
|
||||||
|
You can also run aj-snapshot in daemon mode if you want to have your connections continually restored.
|
||||||
|
'';
|
||||||
|
|
||||||
|
homepage = http://aj-snapshot.sourceforge.net/;
|
||||||
|
license = licenses.gpl2;
|
||||||
|
maintainers = [ maintainers.palo ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
@ -9,6 +9,7 @@
|
|||||||
, wavSupport ? true, libsndfile ? null
|
, wavSupport ? true, libsndfile ? null
|
||||||
, cdaSupport ? true, libcdio ? null, libcddb ? null
|
, cdaSupport ? true, libcdio ? null, libcddb ? null
|
||||||
, aacSupport ? true, faad2 ? null
|
, aacSupport ? true, faad2 ? null
|
||||||
|
, midiSupport ? false, wildmidi ? null
|
||||||
, wavpackSupport ? false, wavpack ? null
|
, wavpackSupport ? false, wavpack ? null
|
||||||
, ffmpegSupport ? false, ffmpeg ? null
|
, ffmpegSupport ? false, ffmpeg ? null
|
||||||
# misc plugins
|
# misc plugins
|
||||||
@ -44,6 +45,7 @@ assert alsaSupport -> alsaLib != null;
|
|||||||
assert pulseSupport -> libpulseaudio != null;
|
assert pulseSupport -> libpulseaudio != null;
|
||||||
assert resamplerSupport -> libsamplerate != null;
|
assert resamplerSupport -> libsamplerate != null;
|
||||||
assert overloadSupport -> zlib != null;
|
assert overloadSupport -> zlib != null;
|
||||||
|
assert midiSupport -> wildmidi != null;
|
||||||
assert wavpackSupport -> wavpack != null;
|
assert wavpackSupport -> wavpack != null;
|
||||||
assert remoteSupport -> curl != null;
|
assert remoteSupport -> curl != null;
|
||||||
|
|
||||||
@ -73,6 +75,7 @@ stdenv.mkDerivation rec {
|
|||||||
++ optional pulseSupport libpulseaudio
|
++ optional pulseSupport libpulseaudio
|
||||||
++ optional resamplerSupport libsamplerate
|
++ optional resamplerSupport libsamplerate
|
||||||
++ optional overloadSupport zlib
|
++ optional overloadSupport zlib
|
||||||
|
++ optional midiSupport wildmidi
|
||||||
++ optional wavpackSupport wavpack
|
++ optional wavpackSupport wavpack
|
||||||
++ optional remoteSupport curl
|
++ optional remoteSupport curl
|
||||||
;
|
;
|
||||||
|
@ -1,20 +1,26 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, coreutils
|
, coreutils
|
||||||
, fetchgit
|
, fetchurl
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
, pkgconfig
|
, pkgconfig
|
||||||
|
, clang
|
||||||
|
, llvm
|
||||||
|
, emscripten
|
||||||
|
, openssl
|
||||||
|
, libsndfile
|
||||||
|
, libmicrohttpd
|
||||||
|
, vim
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with stdenv.lib.strings;
|
with stdenv.lib.strings;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
version = "8-1-2015";
|
version = "2.0-a41";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchurl {
|
||||||
url = git://git.code.sf.net/p/faudiostream/code;
|
url = "http://downloads.sourceforge.net/project/faudiostream/faust-2.0.a41.tgz";
|
||||||
rev = "4db76fdc02b6aec8d15a5af77fcd5283abe963ce";
|
sha256 = "1cq4x1cax0lswrcqv0limx5mjdi3187zlmh7cj2pndr0xq6b96cm";
|
||||||
sha256 = "f1ac92092ee173e4bcf6b2cb1ac385a7c390fb362a578a403b2b6edd5dc7d5d0";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
@ -31,19 +37,22 @@ let
|
|||||||
|
|
||||||
inherit src;
|
inherit src;
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ];
|
buildInputs = [ makeWrapper llvm emscripten openssl libsndfile pkgconfig libmicrohttpd vim ];
|
||||||
|
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit wrap wrapWithBuildEnv;
|
inherit wrap wrapWithBuildEnv;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
makeFlags="$makeFlags prefix=$out"
|
makeFlags="$makeFlags prefix=$out LLVM_CONFIG='${llvm}/bin/llvm-config' world"
|
||||||
|
|
||||||
# The faust makefiles use 'system ?= $(shell uname -s)' but nix
|
# The faust makefiles use 'system ?= $(shell uname -s)' but nix
|
||||||
# defines 'system' env var, so undefine that so faust detects the
|
# defines 'system' env var, so undefine that so faust detects the
|
||||||
# correct system.
|
# correct system.
|
||||||
unset system
|
unset system
|
||||||
|
sed -e "232s/LLVM_STATIC_LIBS/LLVMLIBS/" -i compiler/Makefile.unix
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Remove most faust2appl scripts since they won't run properly
|
# Remove most faust2appl scripts since they won't run properly
|
||||||
|
209
pkgs/applications/audio/faust/faust1.nix
Normal file
209
pkgs/applications/audio/faust/faust1.nix
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
{ stdenv
|
||||||
|
, coreutils
|
||||||
|
, fetchgit
|
||||||
|
, makeWrapper
|
||||||
|
, pkgconfig
|
||||||
|
}:
|
||||||
|
|
||||||
|
with stdenv.lib.strings;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
version = "8-1-2015";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = git://git.code.sf.net/p/faudiostream/code;
|
||||||
|
rev = "4db76fdc02b6aec8d15a5af77fcd5283abe963ce";
|
||||||
|
sha256 = "f1ac92092ee173e4bcf6b2cb1ac385a7c390fb362a578a403b2b6edd5dc7d5d0";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://faust.grame.fr/;
|
||||||
|
downloadPage = http://sourceforge.net/projects/faudiostream/files/;
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ magnetophon pmahoney ];
|
||||||
|
};
|
||||||
|
|
||||||
|
faust = stdenv.mkDerivation {
|
||||||
|
|
||||||
|
name = "faust-${version}";
|
||||||
|
|
||||||
|
inherit src;
|
||||||
|
|
||||||
|
buildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
inherit wrap wrapWithBuildEnv;
|
||||||
|
};
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
makeFlags="$makeFlags prefix=$out"
|
||||||
|
|
||||||
|
# The faust makefiles use 'system ?= $(shell uname -s)' but nix
|
||||||
|
# defines 'system' env var, so undefine that so faust detects the
|
||||||
|
# correct system.
|
||||||
|
unset system
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Remove most faust2appl scripts since they won't run properly
|
||||||
|
# without additional paths setup. See faust.wrap,
|
||||||
|
# faust.wrapWithBuildEnv.
|
||||||
|
postInstall = ''
|
||||||
|
# syntax error when eval'd directly
|
||||||
|
pattern="faust2!(svg)"
|
||||||
|
(shopt -s extglob; rm "$out"/bin/$pattern)
|
||||||
|
'';
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
# Set faustpath explicitly.
|
||||||
|
substituteInPlace "$out"/bin/faustpath \
|
||||||
|
--replace "/usr/local /usr /opt /opt/local" "$out"
|
||||||
|
|
||||||
|
# The 'faustoptflags' is 'source'd into other faust scripts and
|
||||||
|
# not used as an executable, so patch 'uname' usage directly
|
||||||
|
# rather than use makeWrapper.
|
||||||
|
substituteInPlace "$out"/bin/faustoptflags \
|
||||||
|
--replace uname "${coreutils}/bin/uname"
|
||||||
|
|
||||||
|
# wrapper for scripts that don't need faust.wrap*
|
||||||
|
for script in "$out"/bin/faust2*; do
|
||||||
|
wrapProgram "$script" \
|
||||||
|
--prefix PATH : "$out"/bin
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = meta // {
|
||||||
|
description = "A functional programming language for realtime audio signal processing";
|
||||||
|
longDescription = ''
|
||||||
|
FAUST (Functional Audio Stream) is a functional programming
|
||||||
|
language specifically designed for real-time signal processing
|
||||||
|
and synthesis. FAUST targets high-performance signal processing
|
||||||
|
applications and audio plug-ins for a variety of platforms and
|
||||||
|
standards.
|
||||||
|
The Faust compiler translates DSP specifications into very
|
||||||
|
efficient C++ code. Thanks to the notion of architecture,
|
||||||
|
FAUST programs can be easily deployed on a large variety of
|
||||||
|
audio platforms and plugin formats (jack, alsa, ladspa, maxmsp,
|
||||||
|
puredata, csound, supercollider, pure, vst, coreaudio) without
|
||||||
|
any change to the FAUST code.
|
||||||
|
|
||||||
|
This package has just the compiler, libraries, and headers.
|
||||||
|
Install faust2* for specific faust2appl scripts.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
# Default values for faust2appl.
|
||||||
|
faust2ApplBase =
|
||||||
|
{ baseName
|
||||||
|
, dir ? "tools/faust2appls"
|
||||||
|
, scripts ? [ baseName ]
|
||||||
|
, ...
|
||||||
|
}@args:
|
||||||
|
|
||||||
|
args // {
|
||||||
|
name = "${baseName}-${version}";
|
||||||
|
|
||||||
|
inherit src;
|
||||||
|
|
||||||
|
configurePhase = ":";
|
||||||
|
|
||||||
|
buildPhase = ":";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p "$out/bin"
|
||||||
|
for script in ${concatStringsSep " " scripts}; do
|
||||||
|
cp "${dir}/$script" "$out/bin/"
|
||||||
|
done
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
# For the faust2appl script, change 'faustpath' and
|
||||||
|
# 'faustoptflags' to absolute paths.
|
||||||
|
for script in "$out"/bin/*; do
|
||||||
|
substituteInPlace "$script" \
|
||||||
|
--replace ". faustpath" ". '${faust}/bin/faustpath'" \
|
||||||
|
--replace ". faustoptflags" ". '${faust}/bin/faustoptflags'"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = meta // {
|
||||||
|
description = "The ${baseName} script, part of faust functional programming language for realtime audio signal processing";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Some 'faust2appl' scripts, such as faust2alsa, run faust to
|
||||||
|
# generate cpp code, then invoke the c++ compiler to build the code.
|
||||||
|
# This builder wraps these scripts in parts of the stdenv such that
|
||||||
|
# when the scripts are called outside any nix build, they behave as
|
||||||
|
# if they were running inside a nix build in terms of compilers and
|
||||||
|
# paths being configured (e.g. rpath is set so that compiled
|
||||||
|
# binaries link to the libs inside the nix store)
|
||||||
|
#
|
||||||
|
# The function takes two main args: the appl name (e.g.
|
||||||
|
# 'faust2alsa') and an optional list of propagatedBuildInputs. It
|
||||||
|
# returns a derivation that contains only the bin/${appl} script,
|
||||||
|
# wrapped up so that it will run as if it was inside a nix build
|
||||||
|
# with those build inputs.
|
||||||
|
#
|
||||||
|
# The build input 'faust' is automatically added to the
|
||||||
|
# propagatedBuildInputs.
|
||||||
|
wrapWithBuildEnv =
|
||||||
|
{ baseName
|
||||||
|
, propagatedBuildInputs ? [ ]
|
||||||
|
, ...
|
||||||
|
}@args:
|
||||||
|
|
||||||
|
stdenv.mkDerivation ((faust2ApplBase args) // {
|
||||||
|
|
||||||
|
buildInputs = [ makeWrapper pkgconfig ];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ faust ] ++ propagatedBuildInputs;
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
|
||||||
|
# export parts of the build environment
|
||||||
|
for script in "$out"/bin/*; do
|
||||||
|
wrapProgram "$script" \
|
||||||
|
--set FAUST_LIB_PATH "${faust}/lib/faust" \
|
||||||
|
--prefix PATH : "$PATH" \
|
||||||
|
--prefix PKG_CONFIG_PATH : "$PKG_CONFIG_PATH" \
|
||||||
|
--set NIX_CFLAGS_COMPILE "\"$NIX_CFLAGS_COMPILE\"" \
|
||||||
|
--set NIX_LDFLAGS "\"$NIX_LDFLAGS\""
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
|
# Builder for 'faust2appl' scripts, such as faust2firefox that
|
||||||
|
# simply need to be wrapped with some dependencies on PATH.
|
||||||
|
#
|
||||||
|
# The build input 'faust' is automatically added to the PATH.
|
||||||
|
wrap =
|
||||||
|
{ baseName
|
||||||
|
, runtimeInputs ? [ ]
|
||||||
|
, ...
|
||||||
|
}@args:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
runtimePath = concatStringsSep ":" (map (p: "${p}/bin") ([ faust ] ++ runtimeInputs));
|
||||||
|
|
||||||
|
in stdenv.mkDerivation ((faust2ApplBase args) // {
|
||||||
|
|
||||||
|
buildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
for script in "$out"/bin/*; do
|
||||||
|
wrapProgram "$script" --prefix PATH : "${runtimePath}"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
in faust
|
@ -15,7 +15,7 @@ in buildPythonPackage rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
coverage feedparser minimock sqlite3 mygpoclient intltool
|
coverage minimock sqlite3 mygpoclient intltool
|
||||||
gnome3.gnome_themes_standard gnome3.defaultIconTheme
|
gnome3.gnome_themes_standard gnome3.defaultIconTheme
|
||||||
gnome3.gsettings_desktop_schemas
|
gnome3.gsettings_desktop_schemas
|
||||||
];
|
];
|
||||||
@ -27,8 +27,6 @@ in buildPythonPackage rec {
|
|||||||
|
|
||||||
postPatch = "sed -ie 's/PYTHONPATH=src/PYTHONPATH=\$(PYTHONPATH):src/' makefile";
|
postPatch = "sed -ie 's/PYTHONPATH=src/PYTHONPATH=\$(PYTHONPATH):src/' makefile";
|
||||||
|
|
||||||
checkPhase = "make unittest";
|
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
wrapProgram $out/bin/gpodder \
|
wrapProgram $out/bin/gpodder \
|
||||||
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
|
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
|
||||||
@ -40,17 +38,6 @@ in buildPythonPackage rec {
|
|||||||
postFixup = ''
|
postFixup = ''
|
||||||
wrapPythonPrograms
|
wrapPythonPrograms
|
||||||
|
|
||||||
if test -e $out/nix-support/propagated-build-inputs; then
|
|
||||||
ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
|
|
||||||
fi
|
|
||||||
|
|
||||||
createBuildInputsPth build-inputs "$buildInputStrings"
|
|
||||||
for inputsfile in propagated-build-inputs propagated-native-build-inputs; do
|
|
||||||
if test -e $out/nix-support/$inputsfile; then
|
|
||||||
createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
sed -i "$out/bin/..gpodder-wrapped-wrapped" -e '{
|
sed -i "$out/bin/..gpodder-wrapped-wrapped" -e '{
|
||||||
/import sys; sys.argv/d
|
/import sys; sys.argv/d
|
||||||
}'
|
}'
|
||||||
|
@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ groff ];
|
nativeBuildInputs = [ groff ];
|
||||||
buildInputs = [ id3lib zlib ];
|
buildInputs = [ id3lib zlib ];
|
||||||
|
|
||||||
makeFlags = "PREFIX=$(out)";
|
makeFlags = [ "PREFIX=$(out)" ];
|
||||||
buildFlags = "clean all";
|
buildFlags = [ "clean" "all" ];
|
||||||
|
|
||||||
preInstall = ''
|
preInstall = ''
|
||||||
mkdir -p $out/{bin,share/man/man1}
|
mkdir -p $out/{bin,share/man/man1}
|
||||||
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ libav libkeyfinder ];
|
buildInputs = [ libav libkeyfinder ];
|
||||||
|
|
||||||
makeFlagsArray = "PREFIX=$(out)";
|
makeFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{ stdenv, fetchurl, SDL , alsaLib, gtk, libjack2, ladspaH
|
{ stdenv, fetchurl, makeWrapper, SDL , alsaLib, gtk, libjack2, ladspaH
|
||||||
, ladspaPlugins, libsamplerate, libsndfile, pkgconfig, libpulseaudio }:
|
, ladspaPlugins, libsamplerate, libsndfile, pkgconfig, libpulseaudio, lame
|
||||||
|
, vorbisTools }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "mhwaveedit-${version}";
|
name = "mhwaveedit-${version}";
|
||||||
@ -10,15 +11,19 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "010rk4mr631s440q9cfgdxx2avgzysr9aq52diwdlbq9cddifli3";
|
sha256 = "010rk4mr631s440q9cfgdxx2avgzysr9aq52diwdlbq9cddifli3";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs = [ SDL alsaLib gtk libjack2 ladspaH libsamplerate libsndfile
|
||||||
[ SDL alsaLib gtk libjack2 ladspaH libsamplerate libsndfile
|
pkgconfig libpulseaudio makeWrapper ];
|
||||||
pkgconfig libpulseaudio
|
|
||||||
];
|
|
||||||
|
|
||||||
configureFlags = "--with-default-ladspa-path=${ladspaPlugins}/lib/ladspa";
|
configureFlags = "--with-default-ladspa-path=${ladspaPlugins}/lib/ladspa";
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/mhwaveedit \
|
||||||
|
--prefix PATH : ${lame}/bin/ \
|
||||||
|
--prefix PATH : ${vorbisTools}/bin/
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "graphical program for editing, playing and recording sound files";
|
description = "Graphical program for editing, playing and recording sound files";
|
||||||
homepage = https://gna.org/projects/mhwaveedit;
|
homepage = https://gna.org/projects/mhwaveedit;
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
@ -10,7 +10,7 @@ pythonPackages.buildPythonPackage rec {
|
|||||||
sha256 = "0hhdss4i5436dj37pndxk81a4g3g8f6zqjyv04lhpqcww01290as";
|
sha256 = "0hhdss4i5436dj37pndxk81a4g3g8f6zqjyv04lhpqcww01290as";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ mopidy ];
|
propagatedBuildInputs = with pythonPackages; [ mopidy configobj ];
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
@ -1,22 +1,26 @@
|
|||||||
{ stdenv, fetchurl, python, pythonPackages, cdparanoia, cdrdao
|
{ stdenv, fetchgit, python, pythonPackages, cdparanoia, cdrdao
|
||||||
, pygobject, gst_python, gst_plugins_base, gst_plugins_good
|
, pygobject, gst_python, gst_plugins_base, gst_plugins_good
|
||||||
, setuptools, utillinux, makeWrapper, substituteAll }:
|
, setuptools, utillinux, makeWrapper, substituteAll, autoreconfHook }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "morituri-${version}";
|
name = "morituri-${version}";
|
||||||
version = "0.2.3";
|
version = "0.2.3.20151109";
|
||||||
namePrefix = "";
|
namePrefix = "";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchgit {
|
||||||
url = "http://thomas.apestaart.org/download/morituri/${name}.tar.bz2";
|
url = "https://github.com/thomasvs/morituri.git";
|
||||||
sha256 = "1b30bs1y8azl04izsrl01gw9ys0lhzkn5afxi4p8qbiri2h4v210";
|
fetchSubmodules = true;
|
||||||
|
rev = "135b2f7bf27721177e3aeb1d26403f1b29116599";
|
||||||
|
sha256 = "1ccxq1spny6xgd7nqwn13n9nqa00ay0nhflg3vbdkvbirh8fgxwq";
|
||||||
};
|
};
|
||||||
|
|
||||||
pythonPath = [
|
pythonPath = [
|
||||||
pygobject gst_python pythonPackages.musicbrainzngs
|
pygobject gst_python pythonPackages.musicbrainzngs
|
||||||
pythonPackages.pycdio pythonPackages.pyxdg setuptools
|
pythonPackages.pycdio pythonPackages.pyxdg setuptools
|
||||||
|
pythonPackages.CDDB
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ autoreconfHook ];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
python cdparanoia cdrdao utillinux makeWrapper
|
python cdparanoia cdrdao utillinux makeWrapper
|
||||||
gst_plugins_base gst_plugins_good
|
gst_plugins_base gst_plugins_good
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
diff -Nurp morituri-0.2.3-orig/doc/Makefile.in morituri-0.2.3/doc/Makefile.in
|
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
||||||
--- morituri-0.2.3-orig/doc/Makefile.in 2014-12-23 12:44:46.222410092 +0100
|
index c115c2c..78c883e 100644
|
||||||
+++ morituri-0.2.3/doc/Makefile.in 2014-12-23 12:46:49.619756940 +0100
|
--- a/doc/Makefile.am
|
||||||
@@ -486,7 +486,7 @@ morituri.ics: $(top_srcdir)/morituri.doa
|
+++ b/doc/Makefile.am
|
||||||
-moap doap -f $(top_srcdir)/morituri.doap ical > morituri.ics
|
@@ -24,7 +24,7 @@ morituri.ics: $(top_srcdir)/morituri.doap
|
||||||
|
man_MANS = rip.1
|
||||||
|
|
||||||
rip.1: $(top_srcdir)/morituri/extern/python-command/scripts/help2man $(top_srcdir)/morituri
|
rip.1: $(top_srcdir)/morituri/extern/python-command/scripts/help2man $(top_srcdir)/morituri
|
||||||
- PYTHONPATH=$(top_srcdir) $(PYTHON) $(top_srcdir)/morituri/extern/python-command/scripts/help2man morituri.rip.main.Rip rip > rip.1
|
- PYTHONPATH=$(top_srcdir) $(PYTHON) $(top_srcdir)/morituri/extern/python-command/scripts/help2man morituri.rip.main.Rip rip > rip.1
|
||||||
@ -10,9 +11,10 @@ diff -Nurp morituri-0.2.3-orig/doc/Makefile.in morituri-0.2.3/doc/Makefile.in
|
|||||||
|
|
||||||
clean-local:
|
clean-local:
|
||||||
@rm -rf reference
|
@rm -rf reference
|
||||||
diff -Nurp morituri-0.2.3-orig/morituri/common/program.py morituri-0.2.3/morituri/common/program.py
|
diff --git a/morituri/common/program.py b/morituri/common/program.py
|
||||||
--- morituri-0.2.3-orig/morituri/common/program.py 2014-12-23 12:44:46.218410048 +0100
|
index d340fdd..15cb751 100644
|
||||||
+++ morituri-0.2.3/morituri/common/program.py 2014-12-23 12:46:49.647757245 +0100
|
--- a/morituri/common/program.py
|
||||||
|
+++ b/morituri/common/program.py
|
||||||
@@ -92,13 +92,13 @@ class Program(log.Loggable):
|
@@ -92,13 +92,13 @@ class Program(log.Loggable):
|
||||||
"""
|
"""
|
||||||
Load the given device.
|
Load the given device.
|
||||||
@ -38,19 +40,12 @@ diff -Nurp morituri-0.2.3-orig/morituri/common/program.py morituri-0.2.3/moritur
|
|||||||
|
|
||||||
def getFastToc(self, runner, toc_pickle, device):
|
def getFastToc(self, runner, toc_pickle, device):
|
||||||
"""
|
"""
|
||||||
diff -Nurp morituri-0.2.3-orig/morituri/extern/python-command/scripts/help2man morituri-0.2.3/morituri/extern/python-command/scripts/help2man
|
Submodule morituri/extern/python-command contains modified content
|
||||||
--- morituri-0.2.3-orig/morituri/extern/python-command/scripts/help2man 2014-12-23 12:44:46.206409916 +0100
|
diff --git a/morituri/program/cdparanoia.py b/morituri/program/cdparanoia.py
|
||||||
+++ morituri-0.2.3/morituri/extern/python-command/scripts/help2man 2014-12-23 12:46:49.631757074 +0100
|
index 46176d5..fce14a5 100644
|
||||||
@@ -1,4 +1,4 @@
|
--- a/morituri/program/cdparanoia.py
|
||||||
-#!/usr/bin/python
|
+++ b/morituri/program/cdparanoia.py
|
||||||
+#!@python@/bin/python
|
@@ -278,7 +278,7 @@ class ReadTrackTask(log.Loggable, task.Task):
|
||||||
|
|
||||||
# -*- Mode: Python -*-
|
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
|
||||||
diff -Nurp morituri-0.2.3-orig/morituri/program/cdparanoia.py morituri-0.2.3/morituri/program/cdparanoia.py
|
|
||||||
--- morituri-0.2.3-orig/morituri/program/cdparanoia.py 2014-12-23 12:44:46.202409873 +0100
|
|
||||||
+++ morituri-0.2.3/morituri/program/cdparanoia.py 2014-12-23 12:46:49.659757376 +0100
|
|
||||||
@@ -278,7 +278,7 @@ class ReadTrackTask(log.Loggable, task.T
|
|
||||||
stopTrack, stopOffset)
|
stopTrack, stopOffset)
|
||||||
|
|
||||||
bufsize = 1024
|
bufsize = 1024
|
||||||
@ -68,9 +63,10 @@ diff -Nurp morituri-0.2.3-orig/morituri/program/cdparanoia.py morituri-0.2.3/mor
|
|||||||
_VERSION_RE,
|
_VERSION_RE,
|
||||||
"%(version)s %(release)s")
|
"%(version)s %(release)s")
|
||||||
|
|
||||||
diff -Nurp morituri-0.2.3-orig/morituri/program/cdrdao.py morituri-0.2.3/morituri/program/cdrdao.py
|
diff --git a/morituri/program/cdrdao.py b/morituri/program/cdrdao.py
|
||||||
--- morituri-0.2.3-orig/morituri/program/cdrdao.py 2014-12-23 12:44:46.202409873 +0100
|
index c6fba64..c4d0306 100644
|
||||||
+++ morituri-0.2.3/morituri/program/cdrdao.py 2014-12-23 12:46:49.667757463 +0100
|
--- a/morituri/program/cdrdao.py
|
||||||
|
+++ b/morituri/program/cdrdao.py
|
||||||
@@ -257,7 +257,7 @@ class CDRDAOTask(ctask.PopenTask):
|
@@ -257,7 +257,7 @@ class CDRDAOTask(ctask.PopenTask):
|
||||||
|
|
||||||
def start(self, runner):
|
def start(self, runner):
|
||||||
|
60
pkgs/applications/audio/sonic-pi/default.nix
Normal file
60
pkgs/applications/audio/sonic-pi/default.nix
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
{ stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, qscintilla
|
||||||
|
, supercollider
|
||||||
|
, ruby
|
||||||
|
, cmake
|
||||||
|
, pkgconfig
|
||||||
|
, qt48Full
|
||||||
|
, bash
|
||||||
|
, makeWrapper
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
version = "2.8.0";
|
||||||
|
name = "sonic-pi-${version}";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "samaaron";
|
||||||
|
repo = "sonic-pi";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1yyavgazb6ar7xnmjx460s9p8nh70klaja2yb20nci15k8vngq9h";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
qscintilla
|
||||||
|
supercollider
|
||||||
|
ruby
|
||||||
|
qt48Full
|
||||||
|
cmake
|
||||||
|
pkgconfig
|
||||||
|
bash
|
||||||
|
makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://sonic-pi.net/;
|
||||||
|
description = "Free live coding synth for everyone originally designed to support computing and music lessons within schools";
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.Phlogistique ];
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
};
|
||||||
|
|
||||||
|
dontUseCmakeConfigure = true;
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
pushd app/server/bin
|
||||||
|
${ruby}/bin/ruby compile-extensions.rb
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd app/gui/qt
|
||||||
|
${bash}/bin/bash rp-build-app
|
||||||
|
popd
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
cp -r . $out
|
||||||
|
wrapProgram $out/bin/sonic-pi --prefix PATH : \
|
||||||
|
${ruby}/bin:${bash}/bin
|
||||||
|
'';
|
||||||
|
}
|
@ -1,17 +1,17 @@
|
|||||||
{ stdenv, fetchurl, alsaLib, cmake, libjack2, fftw, fltk13, libjpeg
|
{ stdenv, fetchurl, alsaLib, cmake, libjack2, fftw, fltk13, libjpeg
|
||||||
, minixml, pkgconfig, zlib
|
, minixml, pkgconfig, zlib, liblo
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "zynaddsubfx-${version}";
|
name = "zynaddsubfx-${version}";
|
||||||
version = "2.4.4";
|
version = "2.5.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/zynaddsubfx/zynaddsubfx-${version}.tar.xz";
|
url = "mirror://sourceforge/zynaddsubfx/zynaddsubfx-${version}.tar.gz";
|
||||||
sha256 = "15byz08p5maf3v8l1zz11xan6s0qcfasjf1b81xc8rffh13x5f53";
|
sha256 = "11yrady7xwfrzszkk2fvq81ymv99mq474h60qnirk27khdygk24m";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ alsaLib libjack2 fftw fltk13 libjpeg minixml zlib ];
|
buildInputs = [ alsaLib libjack2 fftw fltk13 libjpeg minixml zlib liblo ];
|
||||||
nativeBuildInputs = [ cmake pkgconfig ];
|
nativeBuildInputs = [ cmake pkgconfig ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
|
|||||||
homepage = http://zynaddsubfx.sourceforge.net;
|
homepage = http://zynaddsubfx.sourceforge.net;
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.goibhniu ];
|
maintainers = [ maintainers.goibhniu maintainers.palo ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,17 @@
|
|||||||
|
From e9d82bfbc49993a5be2c93f6b72a969630587f26 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thomas Tuegel <ttuegel@gmail.com>
|
||||||
|
Date: Mon, 23 Nov 2015 06:56:28 -0600
|
||||||
|
Subject: [PATCH 1/2] ignore config mtime
|
||||||
|
|
||||||
|
---
|
||||||
|
src/common/ConfigReader.cpp | 5 -----
|
||||||
|
1 file changed, 5 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp
|
diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp
|
||||||
index 6618455..5356e76 100644
|
index cfc9940..5bf5a6a 100644
|
||||||
--- a/src/common/ConfigReader.cpp
|
--- a/src/common/ConfigReader.cpp
|
||||||
+++ b/src/common/ConfigReader.cpp
|
+++ b/src/common/ConfigReader.cpp
|
||||||
@@ -136,11 +136,6 @@ namespace SDDM {
|
@@ -138,11 +138,6 @@ namespace SDDM {
|
||||||
QString currentSection = QStringLiteral(IMPLICIT_SECTION);
|
QString currentSection = QStringLiteral(IMPLICIT_SECTION);
|
||||||
|
|
||||||
QFile in(m_path);
|
QFile in(m_path);
|
||||||
@ -14,3 +23,6 @@ index 6618455..5356e76 100644
|
|||||||
|
|
||||||
in.open(QIODevice::ReadOnly);
|
in.open(QIODevice::ReadOnly);
|
||||||
while (!in.atEnd()) {
|
while (!in.atEnd()) {
|
||||||
|
--
|
||||||
|
2.6.3
|
||||||
|
|
@ -0,0 +1,26 @@
|
|||||||
|
From 7a18f4cb77c567dec9ad924fcc76c50092de6ee7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thomas Tuegel <ttuegel@gmail.com>
|
||||||
|
Date: Mon, 23 Nov 2015 06:57:51 -0600
|
||||||
|
Subject: [PATCH 2/2] fix ConfigReader QStringList corruption
|
||||||
|
|
||||||
|
---
|
||||||
|
src/common/ConfigReader.cpp | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp
|
||||||
|
index 5bf5a6a..34182e6 100644
|
||||||
|
--- a/src/common/ConfigReader.cpp
|
||||||
|
+++ b/src/common/ConfigReader.cpp
|
||||||
|
@@ -30,7 +30,8 @@
|
||||||
|
|
||||||
|
QTextStream &operator>>(QTextStream &str, QStringList &list) {
|
||||||
|
list.clear();
|
||||||
|
- foreach(const QStringRef &s, str.readLine().splitRef(QLatin1Char(',')))
|
||||||
|
+ QString line = str.readLine();
|
||||||
|
+ foreach(const QStringRef &s, line.splitRef(QLatin1Char(',')))
|
||||||
|
{
|
||||||
|
QStringRef trimmed = s.trimmed();
|
||||||
|
if (!trimmed.isEmpty())
|
||||||
|
--
|
||||||
|
2.6.3
|
||||||
|
|
@ -14,7 +14,10 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0c3q8lpb123m9k5x3i71mm8lmyzhknw77zxh89yfl8qmn6zd61i1";
|
sha256 = "0c3q8lpb123m9k5x3i71mm8lmyzhknw77zxh89yfl8qmn6zd61i1";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./sddm-ignore-config-mtime.patch ];
|
patches = [
|
||||||
|
./0001-ignore-config-mtime.patch
|
||||||
|
./0002-fix-ConfigReader-QStringList-corruption.patch
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake makeQtWrapper pkgconfig qttools ];
|
nativeBuildInputs = [ cmake makeQtWrapper pkgconfig qttools ];
|
||||||
|
|
||||||
|
@ -106,16 +106,16 @@ rec {
|
|||||||
|
|
||||||
anyedittools = buildEclipsePlugin rec {
|
anyedittools = buildEclipsePlugin rec {
|
||||||
name = "anyedit-${version}";
|
name = "anyedit-${version}";
|
||||||
version = "2.5.0.201510241327";
|
version = "2.6.0.201511291145";
|
||||||
|
|
||||||
srcFeature = fetchurl {
|
srcFeature = fetchurl {
|
||||||
url = "http://andrei.gmxhome.de/eclipse/features/AnyEditTools_${version}.jar";
|
url = "http://andrei.gmxhome.de/eclipse/features/AnyEditTools_${version}.jar";
|
||||||
sha256 = "01qaxg1b4n7y7g1xdkx1bnmpwqydln270mk14l4pl35q3c88s5nc";
|
sha256 = "1vllci75qcd28b6hn2jz29l6cabxx9ql5i6l9cwq9rxp49dhc96b";
|
||||||
};
|
};
|
||||||
|
|
||||||
srcPlugin = fetchurl {
|
srcPlugin = fetchurl {
|
||||||
url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.5.0/de.loskutov.anyedit.AnyEditTools_${version}.jar";
|
url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.6.0/de.loskutov.anyedit.AnyEditTools_${version}.jar";
|
||||||
sha256 = "0m4qxkscl5xih8x1znbrih4jh28wky4l62spfif9zw0s7mgl117c";
|
sha256 = "0mgq0ylfa7srjf7azyx0kbahlsjf0sdpazqphzx4f0bfn1l328s4";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
@ -317,11 +317,11 @@ rec {
|
|||||||
|
|
||||||
scala = buildEclipseUpdateSite rec {
|
scala = buildEclipseUpdateSite rec {
|
||||||
name = "scala-${version}";
|
name = "scala-${version}";
|
||||||
version = "4.1.1.20150911";
|
version = "4.1.1.20151201";
|
||||||
|
|
||||||
src = fetchzip {
|
src = fetchzip {
|
||||||
url = "http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/update-site.zip";
|
url = "http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/update-site.zip";
|
||||||
sha256 = "03g24sjivm7kzy64wwjs4ihf9vrb6703lb7bx3jafxzcwqm0pj1i";
|
sha256 = "19iqaha9c5n5hkyn83xj8znkvshm4823d65zigbj97fz8gzrr0la";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
@ -335,16 +335,16 @@ rec {
|
|||||||
|
|
||||||
testng = buildEclipsePlugin rec {
|
testng = buildEclipsePlugin rec {
|
||||||
name = "testng-${version}";
|
name = "testng-${version}";
|
||||||
version = "6.9.8.201510130443";
|
version = "6.9.10.201511281504";
|
||||||
|
|
||||||
srcFeature = fetchurl {
|
srcFeature = fetchurl {
|
||||||
url = "http://beust.com/eclipse/features/org.testng.eclipse_${version}.jar";
|
url = "http://beust.com/eclipse/features/org.testng.eclipse_${version}.jar";
|
||||||
sha256 = "0g0dva1zpqk0rz0vgr025g2cfc47snr857fsqcrssmp9qmy8x0i0";
|
sha256 = "1kjaifa1fc16yh82bzp5xa5pn3kgrpgc5jq55lyvgz29vjj6ss97";
|
||||||
};
|
};
|
||||||
|
|
||||||
srcPlugin = fetchurl {
|
srcPlugin = fetchurl {
|
||||||
url = "http://beust.com/eclipse/plugins/org.testng.eclipse_${version}.jar";
|
url = "http://beust.com/eclipse/plugins/org.testng.eclipse_${version}.jar";
|
||||||
sha256 = "16mnvqkakixqp3bcnyx6x2iwkhnv3k4q561c97kssz98xsrr8f54";
|
sha256 = "1njz4ynjwnhjjbsszfgqyjn2ixxzjv8qvnc7dqz8jldrz3jrjf07";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -212,14 +212,14 @@ in
|
|||||||
|
|
||||||
android-studio = buildAndroidStudio rec {
|
android-studio = buildAndroidStudio rec {
|
||||||
name = "android-studio-${version}";
|
name = "android-studio-${version}";
|
||||||
version = "1.4.0.10";
|
version = "1.5.0.4";
|
||||||
build = "141.2288178";
|
build = "141.2422023";
|
||||||
description = "Android development environment based on IntelliJ IDEA";
|
description = "Android development environment based on IntelliJ IDEA";
|
||||||
license = stdenv.lib.licenses.asl20;
|
license = stdenv.lib.licenses.asl20;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
|
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
|
||||||
"/android-studio-ide-${build}-linux.zip";
|
"/android-studio-ide-${build}-linux.zip";
|
||||||
sha256 = "04zzzk6xlvzip6klxvs4zz2wyfyn3w9b5jwilzbqjidiz2d3va57";
|
sha256 = "1sjxs9cq7mdalxmzp6v2gwbg1w8p43c2cp5j4v212w66h5rqv11z";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -273,25 +273,25 @@ in
|
|||||||
|
|
||||||
pycharm-community = buildPycharm rec {
|
pycharm-community = buildPycharm rec {
|
||||||
name = "pycharm-community-${version}";
|
name = "pycharm-community-${version}";
|
||||||
version = "5.0";
|
version = "5.0.1";
|
||||||
build = "143.589";
|
build = "143.595";
|
||||||
description = "PyCharm Community Edition";
|
description = "PyCharm Community Edition";
|
||||||
license = stdenv.lib.licenses.asl20;
|
license = stdenv.lib.licenses.asl20;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download-cf.jetbrains.com/python/${name}.tar.gz";
|
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
||||||
sha256 = "01q51m6rpyw296imiglbadzfr0r91wvyrxdid683yl7f5v73wzwh";
|
sha256 = "14m3imy64cp2l9pnmknxbjzj3z30rx88r4brz9d5xk5qailjg2wf";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
pycharm-professional = buildPycharm rec {
|
pycharm-professional = buildPycharm rec {
|
||||||
name = "pycharm-professional-${version}";
|
name = "pycharm-professional-${version}";
|
||||||
version = "5.0";
|
version = "5.0.1";
|
||||||
build = "143.589";
|
build = "143.595";
|
||||||
description = "PyCharm Professional Edition";
|
description = "PyCharm Professional Edition";
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download-cf.jetbrains.com/python/${name}.tar.gz";
|
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
||||||
sha256 = "16lwg00dl03gwj4dqihdrn15p1fy8513srw2dslna1w1glfajv06";
|
sha256 = "102sfjvchk80911w3qpjsp30wvq73kgpwyqcqdgqxcgm2vqh3183";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
{ stdenv, pythonPackages, fetchgit }:
|
{ stdenv, pythonPackages, fetchgit }:
|
||||||
|
|
||||||
pythonPackages.buildPythonPackage rec {
|
pythonPackages.buildPythonPackage rec {
|
||||||
name = "leo-editor-${version}";
|
name = "leo-editor-${version}";
|
||||||
version = "5.1";
|
|
||||||
|
|
||||||
namePrefix = "";
|
namePrefix = "";
|
||||||
|
version = "5.1";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://github.com/leo-editor/leo-editor";
|
url = "https://github.com/leo-editor/leo-editor";
|
||||||
@ -13,6 +13,11 @@ pythonPackages.buildPythonPackage rec {
|
|||||||
|
|
||||||
propagatedBuildInputs = with pythonPackages; [ pyqt4 sqlite3 ];
|
propagatedBuildInputs = with pythonPackages; [ pyqt4 sqlite3 ];
|
||||||
|
|
||||||
|
|
||||||
|
patchPhase = ''
|
||||||
|
rm setup.cfg
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://leoeditor.com";
|
homepage = "http://leoeditor.com";
|
||||||
description = "A powerful folding editor";
|
description = "A powerful folding editor";
|
||||||
|
@ -4,10 +4,10 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "grass-7.0.1";
|
name = "grass-7.0.2";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = http://grass.osgeo.org/grass70/source/grass-7.0.1.tar.gz;
|
url = http://grass.osgeo.org/grass70/source/grass-7.0.2.tar.gz;
|
||||||
sha256 = "0ps0xfsgls1hai8fx8x74ajh3560p1yjql2sg02lpqpx30bdv1q9";
|
sha256 = "02qrdgn46gxr60amxwax4b8fkkmhmjxi6qh4yfvpbii6ai6diarf";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite pkgconfig cairo
|
buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite pkgconfig cairo
|
||||||
|
@ -2,15 +2,15 @@
|
|||||||
libharu, opencv, vigra, postgresql }:
|
libharu, opencv, vigra, postgresql }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "saga-2.2.1";
|
name = "saga-2.2.2";
|
||||||
|
|
||||||
buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma jasper ];
|
buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma jasper ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://sourceforge.net/projects/saga-gis/files/SAGA%20-%202.2/SAGA%202.2.1/saga_2.2.1.tar.gz";
|
url = "http://downloads.sourceforge.net/project/saga-gis/SAGA%20-%202.2/SAGA%202.2.2/saga-2.2.2.tar.gz";
|
||||||
sha256 = "325e0890c28dc19c4ec727f58672be67480b2a4dd6604252c0cc4cc08aad34d0";
|
sha256 = "031cd70b7ec248f32f955a9316aefc7f7ab283c5129c49aa4bd748717d20357e";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchFromGitHub, cmake, libX11, procps, python, qt5 }:
|
{ stdenv, fetchFromGitHub, cmake, libX11, procps, python, qt5 }:
|
||||||
|
|
||||||
let version = "7.0"; in
|
let version = "7.1"; in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "apitrace-${version}";
|
name = "apitrace-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
sha256 = "0nn3z7i6cd4zkmms6jpp1v2q194gclbs06v0f5hyiwcsqaxzsg5b";
|
sha256 = "1n2gmsjnpyam7isg7n1ksggyh6y1l8drvx0a93bnvbcskr7jiz9a";
|
||||||
rev = version;
|
rev = version;
|
||||||
repo = "apitrace";
|
repo = "apitrace";
|
||||||
owner = "apitrace";
|
owner = "apitrace";
|
||||||
|
@ -1,36 +1,36 @@
|
|||||||
{ stdenv, fetchsvn, buildPythonPackage, python, pyGtkGlade, makeWrapper, pyexiv2, lxml, pil, fbida, which }:
|
{ stdenv, fetchsvn, buildPythonPackage, python, pyGtkGlade, makeWrapper, pyexiv2, pythonPackages, fbida, which }:
|
||||||
|
|
||||||
buildPythonPackage {
|
buildPythonPackage rec {
|
||||||
name = "jbrout-338";
|
name = "jbrout-${version}";
|
||||||
version = "338";
|
version = "338";
|
||||||
|
|
||||||
src = fetchsvn {
|
src = fetchsvn {
|
||||||
url = "http://jbrout.googlecode.com/svn/trunk";
|
url = "http://jbrout.googlecode.com/svn/trunk";
|
||||||
rev = "338";
|
rev = version;
|
||||||
sha256 = "0257ni4vkxgd0qhs73fw5ppw1qpf11j8fgwsqc03b1k1yv3hk4hf";
|
sha256 = "0257ni4vkxgd0qhs73fw5ppw1qpf11j8fgwsqc03b1k1yv3hk4hf";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
# XXX: preConfigure to avoid this
|
|
||||||
# File "/nix/store/vnyjxn6h3rbrn49m25yyw7i1chlxglhw-python-2.7.1/lib/python2.7/zipfile.py", line 348, in FileHeader
|
|
||||||
# len(filename), len(extra))
|
|
||||||
#struct.error: ushort format requires 0 <= number <= USHRT_MAX
|
|
||||||
|
|
||||||
preConfigure = ''
|
# XXX: patchPhase to avoid this
|
||||||
|
# File "/nix/store/vnyjxn6h3rbrn49m25yyw7i1chlxglhw-python-2.7.1/lib/python2.7/zipfile.py", line 348, in FileHeader
|
||||||
|
# len(filename), len(extra))
|
||||||
|
#struct.error: ushort format requires 0 <= number <= USHRT_MAX
|
||||||
|
patchPhase = ''
|
||||||
find | xargs touch
|
find | xargs touch
|
||||||
|
|
||||||
|
substituteInPlace setup.py --replace "version=__version__" "version=baseVersion"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/bin
|
mkdir $out/bin
|
||||||
echo '#!/bin/sh' > $out/bin/jbrout
|
echo "python $out/${python.sitePackages}/jbrout/jbrout.py" > $out/bin/jbrout
|
||||||
echo "python $out/lib/python2.7/site-packages/jbrout-src-py2.7.egg/jbrout/jbrout.py" >> $out/bin/jbrout
|
|
||||||
chmod +x $out/bin/jbrout
|
chmod +x $out/bin/jbrout
|
||||||
|
|
||||||
wrapProgram $out/bin/jbrout \
|
|
||||||
--set PYTHONPATH "$out/lib/python:$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pyexiv2}):$(toPythonPath ${lxml}):$(toPythonPath ${pil}):$PYTHONPATH" \
|
|
||||||
--set PATH "${fbida}/bin:${which}/bin:$PATH"
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = [ python pyGtkGlade makeWrapper pyexiv2 lxml pil fbida which ];
|
buildInputs = [ python makeWrapper which ];
|
||||||
|
propagatedBuildInputs = with pythonPackages; [ pillow lxml pyGtkGlade pyexiv2 fbida ];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://code.google.com/p/jbrout";
|
homepage = "http://code.google.com/p/jbrout";
|
||||||
description = "Photo manager";
|
description = "Photo manager";
|
||||||
|
30
pkgs/applications/graphics/phototonic/default.nix
Normal file
30
pkgs/applications/graphics/phototonic/default.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, qt5, exiv2 }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "phototonic-${version}";
|
||||||
|
version = "1.7";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
repo = "phototonic";
|
||||||
|
owner = "oferkv";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1agd3bsrpljd019qrjvlbim5l0bhpx53dhpc0gvyn0wmcdzn92gj";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ qt5.base exiv2 ];
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
sed -i 's;/usr;;' phototonic.pro
|
||||||
|
qmake PREFIX=""
|
||||||
|
'';
|
||||||
|
|
||||||
|
installFlags = [ "INSTALL_ROOT=$(out)" ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "An image viewer and organizer";
|
||||||
|
homepage = http://oferkv.github.io/phototonic/;
|
||||||
|
license = licenses.gpl3;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ pSub ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
{ fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala, sqlite
|
{ fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala, sqlite
|
||||||
, webkitgtk24x, pkgconfig, gnome3, gst_all_1, which, udev, libraw, glib, json_glib
|
, webkitgtk24x, pkgconfig, gnome3, gst_all_1, which, udev, libgudev, libraw, glib, json_glib
|
||||||
, gettext, desktop_file_utils, lcms2, gdk_pixbuf, librsvg, makeWrapper
|
, gettext, desktop_file_utils, lcms2, gdk_pixbuf, librsvg, makeWrapper
|
||||||
, gnome_doc_utils, hicolor_icon_theme }:
|
, gnome_doc_utils, hicolor_icon_theme }:
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkitgtk24x
|
buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkitgtk24x
|
||||||
pkgconfig gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee
|
pkgconfig gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee
|
||||||
which udev gnome3.gexiv2 hicolor_icon_theme
|
which udev libgudev gnome3.gexiv2 hicolor_icon_theme
|
||||||
libraw json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg
|
libraw json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg
|
||||||
makeWrapper gnome_doc_utils gnome3.rest
|
makeWrapper gnome_doc_utils gnome3.rest
|
||||||
gnome3.defaultIconTheme ];
|
gnome3.defaultIconTheme ];
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ stdenv, fetchurl, cairo, colord, glib, gtk3, gusb, intltool, itstool, libusb
|
{ stdenv, fetchurl, cairo, colord, glib, gtk3, gusb, intltool, itstool, libusb
|
||||||
, libxml2, makeWrapper, pkgconfig, saneBackends, systemd, vala }:
|
, libxml2, makeWrapper, pkgconfig, saneBackends, systemd, vala }:
|
||||||
|
|
||||||
let version = "3.19.1"; in
|
let version = "3.19.2"; in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "simple-scan-${version}";
|
name = "simple-scan-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
sha256 = "1d2a8cncq36ly60jpz0fzdw1lgxynl6lyrlw0q66yijlxqn81ynr";
|
sha256 = "08454ky855iaiq5wn9rdbfal3i4fjss5fn5mg6cmags50wy9spsg";
|
||||||
url = "https://launchpad.net/simple-scan/3.19/${version}/+download/${name}.tar.xz";
|
url = "https://launchpad.net/simple-scan/3.19/${version}/+download/${name}.tar.xz";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -14,6 +14,13 @@ stdenv.mkDerivation rec {
|
|||||||
systemd vala ];
|
systemd vala ];
|
||||||
nativeBuildInputs = [ intltool itstool makeWrapper pkgconfig ];
|
nativeBuildInputs = [ intltool itstool makeWrapper pkgconfig ];
|
||||||
|
|
||||||
|
configureFlags = [ "--disable-packagekit" ];
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
# Clean up stale generated .c files still referencing packagekit headers:
|
||||||
|
make clean
|
||||||
|
'';
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
@ -1,34 +1,28 @@
|
|||||||
a @ { libXt, libX11, libXext, xextproto, xproto, gsl, aalib, zlib, intltool, gettext, perl, ... }:
|
{ stdenv, fetchurl, aalib, gsl, libpng, libX11, xproto, libXext
|
||||||
let
|
, xextproto, libXt, zlib, gettext, intltool, perl }:
|
||||||
fetchurl = a.fetchurl;
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "xaos-${version}";
|
||||||
|
version = "3.6";
|
||||||
|
|
||||||
version = a.lib.attrByPath ["version"] "3.6" a;
|
|
||||||
buildInputs = with a; [
|
|
||||||
aalib gsl libpng libX11 xproto libXext xextproto
|
|
||||||
libXt zlib gettext intltool perl
|
|
||||||
];
|
|
||||||
in
|
|
||||||
rec {
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/xaos/xaos-${version}.tar.gz";
|
url = "mirror://sourceforge/xaos/${name}.tar.gz";
|
||||||
sha256 = "15cd1cx1dyygw6g2nhjqq3bsfdj8sj8m4va9n75i0f3ryww3x7wq";
|
sha256 = "15cd1cx1dyygw6g2nhjqq3bsfdj8sj8m4va9n75i0f3ryww3x7wq";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit buildInputs;
|
buildInputs = [
|
||||||
configureFlags = [];
|
aalib gsl libpng libX11 xproto libXext xextproto
|
||||||
|
libXt zlib gettext intltool perl
|
||||||
|
];
|
||||||
|
|
||||||
/* doConfigure should be removed if not needed */
|
preConfigure = ''
|
||||||
phaseNames = ["preConfigure" "doConfigure" "doMakeInstall"];
|
|
||||||
|
|
||||||
preConfigure = a.fullDepEntry (''
|
|
||||||
sed -e s@/usr/@"$out/"@g -i configure $(find . -name 'Makefile*')
|
sed -e s@/usr/@"$out/"@g -i configure $(find . -name 'Makefile*')
|
||||||
mkdir -p $out/share/locale
|
mkdir -p $out/share/locale
|
||||||
'') ["doUnpack" "minInit" "defEnsureDir"];
|
'';
|
||||||
|
|
||||||
name = "xaos-" + version;
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://xaos.sourceforge.net/;
|
homepage = http://xaos.sourceforge.net/;
|
||||||
description = "Fractal viewer";
|
description = "Fractal viewer";
|
||||||
license = a.stdenv.lib.licenses.gpl2Plus;
|
license = stdenv.lib.licenses.gpl2Plus;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
58
pkgs/applications/kde-apps-15.12/ark.nix
Normal file
58
pkgs/applications/kde-apps-15.12/ark.nix
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kdoctools
|
||||||
|
, karchive
|
||||||
|
, kconfig
|
||||||
|
, kcrash
|
||||||
|
, kdbusaddons
|
||||||
|
, ki18n
|
||||||
|
, kiconthemes
|
||||||
|
, khtml
|
||||||
|
, kio
|
||||||
|
, kservice
|
||||||
|
, kpty
|
||||||
|
, kwidgetsaddons
|
||||||
|
, libarchive
|
||||||
|
, p7zip
|
||||||
|
, unrar
|
||||||
|
, unzipNLS
|
||||||
|
, zip
|
||||||
|
}:
|
||||||
|
|
||||||
|
let PATH = lib.makeSearchPath "bin" [
|
||||||
|
p7zip unrar unzipNLS zip
|
||||||
|
];
|
||||||
|
in
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "ark";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
kdoctools
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
karchive
|
||||||
|
kconfig
|
||||||
|
kcrash
|
||||||
|
kdbusaddons
|
||||||
|
kiconthemes
|
||||||
|
kservice
|
||||||
|
kpty
|
||||||
|
kwidgetsaddons
|
||||||
|
libarchive
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
khtml
|
||||||
|
ki18n
|
||||||
|
kio
|
||||||
|
];
|
||||||
|
postInstall = ''
|
||||||
|
wrapQtProgram "$out/bin/ark" \
|
||||||
|
--prefix PATH : "${PATH}"
|
||||||
|
'';
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl2 lgpl3 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
35
pkgs/applications/kde-apps-15.12/baloo-widgets.nix
Normal file
35
pkgs/applications/kde-apps-15.12/baloo-widgets.nix
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kdoctools
|
||||||
|
, kconfig
|
||||||
|
, kio
|
||||||
|
, ki18n
|
||||||
|
, kservice
|
||||||
|
, kfilemetadata
|
||||||
|
, baloo
|
||||||
|
, kdelibs4support
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "baloo-widgets";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
kdoctools
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
kconfig
|
||||||
|
kservice
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
baloo
|
||||||
|
kdelibs4support
|
||||||
|
kfilemetadata
|
||||||
|
ki18n
|
||||||
|
kio
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = [ lib.licenses.lgpl21 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
54
pkgs/applications/kde-apps-15.12/default.nix
Normal file
54
pkgs/applications/kde-apps-15.12/default.nix
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
# Maintainer's Notes:
|
||||||
|
#
|
||||||
|
# Minor updates:
|
||||||
|
# 1. Edit ./manifest.sh to point to the updated URL. Upstream sometimes
|
||||||
|
# releases updates that include only the changed packages; in this case,
|
||||||
|
# multiple URLs can be provided and the results will be merged.
|
||||||
|
# 2. Run ./manifest.sh and ./dependencies.sh.
|
||||||
|
# 3. Build and enjoy.
|
||||||
|
#
|
||||||
|
# Major updates:
|
||||||
|
# We prefer not to immediately overwrite older versions with major updates, so
|
||||||
|
# make a copy of this directory first. After copying, be sure to delete ./tmp
|
||||||
|
# if it exists. Then follow the minor update instructions.
|
||||||
|
|
||||||
|
{ pkgs, debug ? false }:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
inherit (pkgs) lib stdenv;
|
||||||
|
|
||||||
|
srcs = import ./srcs.nix { inherit (pkgs) fetchurl; inherit mirror; };
|
||||||
|
mirror = "mirror://kde";
|
||||||
|
|
||||||
|
kdeApp = import ./kde-app.nix {
|
||||||
|
inherit stdenv lib;
|
||||||
|
inherit debug srcs;
|
||||||
|
};
|
||||||
|
|
||||||
|
packages = self: with self; {
|
||||||
|
inherit (pkgs.kdeApps_15_08) kdelibs ksnapshot;
|
||||||
|
|
||||||
|
ark = callPackage ./ark.nix {};
|
||||||
|
baloo-widgets = callPackage ./baloo-widgets.nix {};
|
||||||
|
dolphin = callPackage ./dolphin.nix {};
|
||||||
|
dolphin-plugins = callPackage ./dolphin-plugins.nix {};
|
||||||
|
ffmpegthumbs = callPackage ./ffmpegthumbs.nix {};
|
||||||
|
gpgmepp = callPackage ./gpgmepp.nix {};
|
||||||
|
gwenview = callPackage ./gwenview.nix {};
|
||||||
|
kate = callPackage ./kate.nix {};
|
||||||
|
kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers.nix {};
|
||||||
|
kgpg = callPackage ./kgpg.nix { inherit (pkgs.kde4) kdepimlibs; };
|
||||||
|
konsole = callPackage ./konsole.nix {};
|
||||||
|
libkdcraw = callPackage ./libkdcraw.nix {};
|
||||||
|
libkexiv2 = callPackage ./libkexiv2.nix {};
|
||||||
|
libkipi = callPackage ./libkipi.nix {};
|
||||||
|
okular = callPackage ./okular.nix {};
|
||||||
|
print-manager = callPackage ./print-manager.nix {};
|
||||||
|
|
||||||
|
l10n = pkgs.recurseIntoAttrs (import ./l10n.nix { inherit callPackage lib pkgs; });
|
||||||
|
};
|
||||||
|
|
||||||
|
newScope = scope: pkgs.kf516.newScope ({ inherit kdeApp; } // scope);
|
||||||
|
|
||||||
|
in lib.makeScope newScope packages
|
31
pkgs/applications/kde-apps-15.12/dolphin-plugins.nix
Normal file
31
pkgs/applications/kde-apps-15.12/dolphin-plugins.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kdoctools
|
||||||
|
, kxmlgui
|
||||||
|
, ki18n
|
||||||
|
, kio
|
||||||
|
, kdelibs4support
|
||||||
|
, dolphin
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "dolphin-plugins";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
kdoctools
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
kxmlgui
|
||||||
|
dolphin
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
kdelibs4support
|
||||||
|
ki18n
|
||||||
|
kio
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = [ lib.licenses.gpl2 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
70
pkgs/applications/kde-apps-15.12/dolphin.nix
Normal file
70
pkgs/applications/kde-apps-15.12/dolphin.nix
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kdoctools
|
||||||
|
, makeQtWrapper
|
||||||
|
, kinit
|
||||||
|
, kcmutils
|
||||||
|
, kcoreaddons
|
||||||
|
, knewstuff
|
||||||
|
, ki18n
|
||||||
|
, kdbusaddons
|
||||||
|
, kbookmarks
|
||||||
|
, kconfig
|
||||||
|
, kio
|
||||||
|
, kparts
|
||||||
|
, solid
|
||||||
|
, kiconthemes
|
||||||
|
, kcompletion
|
||||||
|
, ktexteditor
|
||||||
|
, kwindowsystem
|
||||||
|
, knotifications
|
||||||
|
, kactivities
|
||||||
|
, phonon
|
||||||
|
, baloo
|
||||||
|
, baloo-widgets
|
||||||
|
, kfilemetadata
|
||||||
|
, kdelibs4support
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "dolphin";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
kdoctools
|
||||||
|
makeQtWrapper
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
kinit
|
||||||
|
kcmutils
|
||||||
|
kcoreaddons
|
||||||
|
knewstuff
|
||||||
|
kdbusaddons
|
||||||
|
kbookmarks
|
||||||
|
kconfig
|
||||||
|
kparts
|
||||||
|
solid
|
||||||
|
kiconthemes
|
||||||
|
kcompletion
|
||||||
|
knotifications
|
||||||
|
phonon
|
||||||
|
baloo-widgets
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
baloo
|
||||||
|
kactivities
|
||||||
|
kdelibs4support
|
||||||
|
kfilemetadata
|
||||||
|
ki18n
|
||||||
|
kio
|
||||||
|
ktexteditor
|
||||||
|
kwindowsystem
|
||||||
|
];
|
||||||
|
postInstall = ''
|
||||||
|
wrapQtProgram "$out/bin/dolphin"
|
||||||
|
'';
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl2 fdl12 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
56
pkgs/applications/kde-apps-15.12/fetchsrcs.sh
Executable file
56
pkgs/applications/kde-apps-15.12/fetchsrcs.sh
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i bash -p coreutils findutils gnused nix wget
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The trailing slash at the end is necessary!
|
||||||
|
WGET_ARGS='http://download.kde.org/unstable/applications/15.11.80/ -A *.tar.xz'
|
||||||
|
|
||||||
|
mkdir tmp; cd tmp
|
||||||
|
|
||||||
|
rm -f ../srcs.csv
|
||||||
|
|
||||||
|
wget -nH -r -c --no-parent $WGET_ARGS
|
||||||
|
|
||||||
|
find . | while read src; do
|
||||||
|
if [[ -f "${src}" ]]; then
|
||||||
|
# Sanitize file name
|
||||||
|
filename=$(basename "$src" | tr '@' '_')
|
||||||
|
nameVersion="${filename%.tar.*}"
|
||||||
|
name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,')
|
||||||
|
version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
|
||||||
|
echo "$name,$version,$src,$filename" >>../srcs.csv
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
cat >../srcs.nix <<EOF
|
||||||
|
# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
|
||||||
|
{ fetchurl, mirror }:
|
||||||
|
|
||||||
|
{
|
||||||
|
EOF
|
||||||
|
|
||||||
|
gawk -F , "{ print \$1 }" ../srcs.csv | sort | uniq | while read name; do
|
||||||
|
versions=$(gawk -F , "/^$name,/ { print \$2 }" ../srcs.csv)
|
||||||
|
latestVersion=$(echo "$versions" | sort -rV | head -n 1)
|
||||||
|
src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" ../srcs.csv)
|
||||||
|
filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" ../srcs.csv)
|
||||||
|
url="${src:2}"
|
||||||
|
sha256=$(nix-hash --type sha256 --base32 --flat "$src")
|
||||||
|
cat >>../srcs.nix <<EOF
|
||||||
|
$name = {
|
||||||
|
version = "$latestVersion";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "\${mirror}/$url";
|
||||||
|
sha256 = "$sha256";
|
||||||
|
name = "$filename";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
EOF
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "}" >>../srcs.nix
|
||||||
|
|
||||||
|
rm -f ../srcs.csv
|
||||||
|
|
||||||
|
cd ..
|
21
pkgs/applications/kde-apps-15.12/ffmpegthumbs.nix
Normal file
21
pkgs/applications/kde-apps-15.12/ffmpegthumbs.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, ffmpeg
|
||||||
|
, kio
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "ffmpegthumbs";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
ffmpeg
|
||||||
|
kio
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl2 bsd3 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
21
pkgs/applications/kde-apps-15.12/gpgmepp.nix
Normal file
21
pkgs/applications/kde-apps-15.12/gpgmepp.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, boost
|
||||||
|
, gpgme
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "gpgmepp";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
boost
|
||||||
|
gpgme
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ lgpl21 bsd3 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
44
pkgs/applications/kde-apps-15.12/gwenview.nix
Normal file
44
pkgs/applications/kde-apps-15.12/gwenview.nix
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kdoctools
|
||||||
|
, makeQtWrapper
|
||||||
|
, baloo
|
||||||
|
, exiv2
|
||||||
|
, kactivities
|
||||||
|
, kdelibs4support
|
||||||
|
, kio
|
||||||
|
, lcms2
|
||||||
|
, phonon
|
||||||
|
, qtsvg
|
||||||
|
, qtx11extras
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "gwenview";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
kdoctools
|
||||||
|
makeQtWrapper
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
exiv2
|
||||||
|
lcms2
|
||||||
|
phonon
|
||||||
|
qtsvg
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
baloo
|
||||||
|
kactivities
|
||||||
|
kdelibs4support
|
||||||
|
kio
|
||||||
|
qtx11extras
|
||||||
|
];
|
||||||
|
postInstall = ''
|
||||||
|
wrapQtProgram "$out/bin/gwenview"
|
||||||
|
'';
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl2 fdl12 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
69
pkgs/applications/kde-apps-15.12/kate.nix
Normal file
69
pkgs/applications/kde-apps-15.12/kate.nix
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kdoctools
|
||||||
|
, qtscript
|
||||||
|
, kactivities
|
||||||
|
, kconfig
|
||||||
|
, kcrash
|
||||||
|
, kguiaddons
|
||||||
|
, kiconthemes
|
||||||
|
, ki18n
|
||||||
|
, kinit
|
||||||
|
, kjobwidgets
|
||||||
|
, kio
|
||||||
|
, kparts
|
||||||
|
, ktexteditor
|
||||||
|
, kwindowsystem
|
||||||
|
, kxmlgui
|
||||||
|
, kdbusaddons
|
||||||
|
, kwallet
|
||||||
|
, plasma-framework
|
||||||
|
, kitemmodels
|
||||||
|
, knotifications
|
||||||
|
, threadweaver
|
||||||
|
, knewstuff
|
||||||
|
, libgit2
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "kate";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
kdoctools
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
qtscript
|
||||||
|
kconfig
|
||||||
|
kcrash
|
||||||
|
kguiaddons
|
||||||
|
kiconthemes
|
||||||
|
kinit
|
||||||
|
kjobwidgets
|
||||||
|
kparts
|
||||||
|
kxmlgui
|
||||||
|
kdbusaddons
|
||||||
|
kwallet
|
||||||
|
kitemmodels
|
||||||
|
knotifications
|
||||||
|
threadweaver
|
||||||
|
knewstuff
|
||||||
|
libgit2
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
kactivities
|
||||||
|
ki18n
|
||||||
|
kio
|
||||||
|
ktexteditor
|
||||||
|
kwindowsystem
|
||||||
|
plasma-framework
|
||||||
|
];
|
||||||
|
postInstall = ''
|
||||||
|
wrapQtProgram "$out/bin/kate"
|
||||||
|
wrapQtProgram "$out/bin/kwrite"
|
||||||
|
'';
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
23
pkgs/applications/kde-apps-15.12/kde-app.nix
Normal file
23
pkgs/applications/kde-apps-15.12/kde-app.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{ stdenv, lib, debug, srcs }:
|
||||||
|
|
||||||
|
args:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (args) name;
|
||||||
|
sname = args.sname or name;
|
||||||
|
inherit (srcs."${sname}") src version;
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation (args // {
|
||||||
|
name = "${name}-${version}";
|
||||||
|
inherit src;
|
||||||
|
|
||||||
|
cmakeFlags =
|
||||||
|
(args.cmakeFlags or [])
|
||||||
|
++ [ "-DBUILD_TESTING=OFF" ]
|
||||||
|
++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
homepage = "http://www.kde.org";
|
||||||
|
} // (args.meta or {});
|
||||||
|
})
|
20
pkgs/applications/kde-apps-15.12/kde-locale-4.nix
Normal file
20
pkgs/applications/kde-apps-15.12/kde-locale-4.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
name: args:
|
||||||
|
|
||||||
|
{ kdeApp, automoc4, cmake, gettext, kdelibs, perl }:
|
||||||
|
|
||||||
|
kdeApp (args // {
|
||||||
|
sname = "kde-l10n-${name}";
|
||||||
|
name = "kde-l10n-${name}-qt4";
|
||||||
|
|
||||||
|
nativeBuildInputs =
|
||||||
|
[ automoc4 cmake gettext perl ]
|
||||||
|
++ (args.nativeBuildInputs or []);
|
||||||
|
buildInputs =
|
||||||
|
[ kdelibs ]
|
||||||
|
++ (args.buildInputs or []);
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
sed -e 's/add_subdirectory(5)//' -i CMakeLists.txt
|
||||||
|
${args.preConfigure or ""}
|
||||||
|
'';
|
||||||
|
})
|
17
pkgs/applications/kde-apps-15.12/kde-locale-5.nix
Normal file
17
pkgs/applications/kde-apps-15.12/kde-locale-5.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
name: args:
|
||||||
|
|
||||||
|
{ kdeApp, cmake, extra-cmake-modules, gettext, kdoctools }:
|
||||||
|
|
||||||
|
kdeApp (args // {
|
||||||
|
sname = "kde-l10n-${name}";
|
||||||
|
name = "kde-l10n-${name}-qt5";
|
||||||
|
|
||||||
|
nativeBuildInputs =
|
||||||
|
[ cmake extra-cmake-modules gettext kdoctools ]
|
||||||
|
++ (args.nativeBuildInputs or []);
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
sed -e 's/add_subdirectory(4)//' -i CMakeLists.txt
|
||||||
|
${args.preConfigure or ""}
|
||||||
|
'';
|
||||||
|
})
|
@ -0,0 +1,23 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kio
|
||||||
|
, libkexiv2
|
||||||
|
, libkdcraw
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "kdegraphics-thumbnailers";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
kio
|
||||||
|
libkexiv2
|
||||||
|
libkdcraw
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = [ lib.licenses.lgpl21 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
38
pkgs/applications/kde-apps-15.12/kgpg.nix
Normal file
38
pkgs/applications/kde-apps-15.12/kgpg.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, automoc4
|
||||||
|
, cmake
|
||||||
|
, makeWrapper
|
||||||
|
, perl
|
||||||
|
, pkgconfig
|
||||||
|
, boost
|
||||||
|
, gpgme
|
||||||
|
, kdelibs
|
||||||
|
, kdepimlibs
|
||||||
|
, gnupg
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "kgpg";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
automoc4
|
||||||
|
cmake
|
||||||
|
makeWrapper
|
||||||
|
perl
|
||||||
|
pkgconfig
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
boost
|
||||||
|
gpgme
|
||||||
|
kdelibs
|
||||||
|
kdepimlibs
|
||||||
|
];
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram "$out/bin/kgpg" \
|
||||||
|
--prefix PATH : "${gnupg}/bin"
|
||||||
|
'';
|
||||||
|
meta = {
|
||||||
|
license = [ lib.licenses.gpl2 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
68
pkgs/applications/kde-apps-15.12/konsole.nix
Normal file
68
pkgs/applications/kde-apps-15.12/konsole.nix
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kdoctools
|
||||||
|
, makeQtWrapper
|
||||||
|
, qtscript
|
||||||
|
, kbookmarks
|
||||||
|
, kcompletion
|
||||||
|
, kconfig
|
||||||
|
, kconfigwidgets
|
||||||
|
, kcoreaddons
|
||||||
|
, kguiaddons
|
||||||
|
, ki18n
|
||||||
|
, kiconthemes
|
||||||
|
, kinit
|
||||||
|
, kdelibs4support
|
||||||
|
, kio
|
||||||
|
, knotifications
|
||||||
|
, knotifyconfig
|
||||||
|
, kparts
|
||||||
|
, kpty
|
||||||
|
, kservice
|
||||||
|
, ktextwidgets
|
||||||
|
, kwidgetsaddons
|
||||||
|
, kwindowsystem
|
||||||
|
, kxmlgui
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "konsole";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
kdoctools
|
||||||
|
makeQtWrapper
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
qtscript
|
||||||
|
kbookmarks
|
||||||
|
kcompletion
|
||||||
|
kconfig
|
||||||
|
kconfigwidgets
|
||||||
|
kcoreaddons
|
||||||
|
kguiaddons
|
||||||
|
kiconthemes
|
||||||
|
kinit
|
||||||
|
kio
|
||||||
|
knotifications
|
||||||
|
knotifyconfig
|
||||||
|
kparts
|
||||||
|
kpty
|
||||||
|
kservice
|
||||||
|
ktextwidgets
|
||||||
|
kwidgetsaddons
|
||||||
|
kxmlgui
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
kdelibs4support
|
||||||
|
ki18n
|
||||||
|
kwindowsystem
|
||||||
|
];
|
||||||
|
postInstall = ''
|
||||||
|
wrapQtProgram "$out/bin/konsole"
|
||||||
|
'';
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
29
pkgs/applications/kde-apps-15.12/ksnapshot.nix
Normal file
29
pkgs/applications/kde-apps-15.12/ksnapshot.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, automoc4
|
||||||
|
, cmake
|
||||||
|
, perl
|
||||||
|
, pkgconfig
|
||||||
|
, kdelibs
|
||||||
|
, libkipi
|
||||||
|
, libXfixes
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "ksnapshot";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
automoc4
|
||||||
|
cmake
|
||||||
|
perl
|
||||||
|
pkgconfig
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
kdelibs
|
||||||
|
libkipi
|
||||||
|
libXfixes
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
237
pkgs/applications/kde-apps-15.12/l10n.nix
Normal file
237
pkgs/applications/kde-apps-15.12/l10n.nix
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
{ callPackage, pkgs, lib }:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
kdeLocale4 = import ./kde-locale-4.nix;
|
||||||
|
kdeLocale5 = import ./kde-locale-5.nix;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
lib.mapAttrs (name: attr: pkgs.recurseIntoAttrs attr) {
|
||||||
|
ar = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "ar" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "ar" {}) {};
|
||||||
|
};
|
||||||
|
bg = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "bg" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "bg" {}) {};
|
||||||
|
};
|
||||||
|
bs = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "bs" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "bs" {}) {};
|
||||||
|
};
|
||||||
|
ca = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "ca" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "ca" {}) {};
|
||||||
|
};
|
||||||
|
ca_valencia = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "ca_valencia" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "ca_valencia" {}) {};
|
||||||
|
};
|
||||||
|
cs = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "cs" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "cs" {}) {};
|
||||||
|
};
|
||||||
|
da = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "da" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "da" {}) {};
|
||||||
|
};
|
||||||
|
de = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "de" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "de" {}) {};
|
||||||
|
};
|
||||||
|
el = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "el" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "el" {}) {};
|
||||||
|
};
|
||||||
|
en_GB = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "en_GB" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "en_GB" {}) {};
|
||||||
|
};
|
||||||
|
eo = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "eo" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "eo" {}) {};
|
||||||
|
};
|
||||||
|
es = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "es" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "es" {}) {};
|
||||||
|
};
|
||||||
|
et = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "et" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "et" {}) {};
|
||||||
|
};
|
||||||
|
eu = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "eu" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "eu" {}) {};
|
||||||
|
};
|
||||||
|
fa = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "fa" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "fa" {}) {};
|
||||||
|
};
|
||||||
|
fi = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "fi" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "fi" {}) {};
|
||||||
|
};
|
||||||
|
fr = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "fr" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "fr" {}) {};
|
||||||
|
};
|
||||||
|
ga = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "ga" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "ga" {}) {};
|
||||||
|
};
|
||||||
|
gl = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "gl" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "gl" {}) {};
|
||||||
|
};
|
||||||
|
he = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "he" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "he" {}) {};
|
||||||
|
};
|
||||||
|
hi = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "hi" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "hi" {}) {};
|
||||||
|
};
|
||||||
|
hr = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "hr" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "hr" {}) {};
|
||||||
|
};
|
||||||
|
hu = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "hu" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "hu" {}) {};
|
||||||
|
};
|
||||||
|
ia = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "ia" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "ia" {}) {};
|
||||||
|
};
|
||||||
|
id = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "id" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "id" {}) {};
|
||||||
|
};
|
||||||
|
is = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "is" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "is" {}) {};
|
||||||
|
};
|
||||||
|
it = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "it" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "it" {}) {};
|
||||||
|
};
|
||||||
|
ja = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "ja" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "ja" {}) {};
|
||||||
|
};
|
||||||
|
kk = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "kk" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "kk" {}) {};
|
||||||
|
};
|
||||||
|
km = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "km" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "km" {}) {};
|
||||||
|
};
|
||||||
|
ko = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "ko" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "ko" {}) {};
|
||||||
|
};
|
||||||
|
lt = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "lt" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "lt" {}) {};
|
||||||
|
};
|
||||||
|
lv = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "lv" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "lv" {}) {};
|
||||||
|
};
|
||||||
|
mr = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "mr" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "mr" {}) {};
|
||||||
|
};
|
||||||
|
nb = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "nb" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "nb" {}) {};
|
||||||
|
};
|
||||||
|
nds = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "nds" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "nds" {}) {};
|
||||||
|
};
|
||||||
|
# TODO: build broken in 15.11.80; re-enable in next release
|
||||||
|
/*
|
||||||
|
nl = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "nl" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "nl" {}) {};
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
nn = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "nn" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "nn" {}) {};
|
||||||
|
};
|
||||||
|
pa = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "pa" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "pa" {}) {};
|
||||||
|
};
|
||||||
|
pl = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "pl" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "pl" {}) {};
|
||||||
|
};
|
||||||
|
pt = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "pt" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "pt" {}) {};
|
||||||
|
};
|
||||||
|
pt_BR = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "pt_BR" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "pt_BR" {}) {};
|
||||||
|
};
|
||||||
|
ro = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "ro" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "ro" {}) {};
|
||||||
|
};
|
||||||
|
ru = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "ru" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "ru" {}) {};
|
||||||
|
};
|
||||||
|
sk = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "sk" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "sk" {}) {};
|
||||||
|
};
|
||||||
|
sl = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "sl" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "sl" {}) {};
|
||||||
|
};
|
||||||
|
sr = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "sr" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "sr" {
|
||||||
|
preConfigure = ''
|
||||||
|
sed -e 's/add_subdirectory(kdesdk)//' -i 5/sr/data/CMakeLists.txt
|
||||||
|
'';
|
||||||
|
}) {};
|
||||||
|
};
|
||||||
|
sv = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "sv" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "sv" {}) {};
|
||||||
|
};
|
||||||
|
tr = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "tr" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "tr" {}) {};
|
||||||
|
};
|
||||||
|
ug = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "ug" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "ug" {}) {};
|
||||||
|
};
|
||||||
|
# TODO: build broken in 15.11.80; re-enable in next release
|
||||||
|
/*
|
||||||
|
uk = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "uk" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "uk" {}) {};
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
wa = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "wa" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "wa" {}) {};
|
||||||
|
};
|
||||||
|
zh_CN = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "zh_CN" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "zh_CN" {}) {};
|
||||||
|
};
|
||||||
|
zh_TW = {
|
||||||
|
qt4 = callPackage (kdeLocale4 "zh_TW" {}) {};
|
||||||
|
qt5 = callPackage (kdeLocale5 "zh_TW" {}) {};
|
||||||
|
};
|
||||||
|
}
|
19
pkgs/applications/kde-apps-15.12/libkdcraw.nix
Normal file
19
pkgs/applications/kde-apps-15.12/libkdcraw.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, libraw
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "libkdcraw";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
libraw
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
19
pkgs/applications/kde-apps-15.12/libkexiv2.nix
Normal file
19
pkgs/applications/kde-apps-15.12/libkexiv2.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, exiv2
|
||||||
|
, extra-cmake-modules
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "libkexiv2";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
exiv2
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
22
pkgs/applications/kde-apps-15.12/libkipi.nix
Normal file
22
pkgs/applications/kde-apps-15.12/libkipi.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kconfig
|
||||||
|
, ki18n
|
||||||
|
, kservice
|
||||||
|
, kxmlgui
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "libkipi";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
kconfig ki18n kservice kxmlgui
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
41
pkgs/applications/kde-apps-15.12/okular.nix
Normal file
41
pkgs/applications/kde-apps-15.12/okular.nix
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, automoc4
|
||||||
|
, cmake
|
||||||
|
, perl
|
||||||
|
, pkgconfig
|
||||||
|
, kdelibs
|
||||||
|
, qimageblitz
|
||||||
|
, poppler_qt4
|
||||||
|
, libspectre
|
||||||
|
, libkexiv2
|
||||||
|
, djvulibre
|
||||||
|
, libtiff
|
||||||
|
, freetype
|
||||||
|
, ebook_tools
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "okular";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
automoc4
|
||||||
|
cmake
|
||||||
|
perl
|
||||||
|
pkgconfig
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
kdelibs
|
||||||
|
qimageblitz
|
||||||
|
poppler_qt4
|
||||||
|
libspectre
|
||||||
|
libkexiv2
|
||||||
|
djvulibre
|
||||||
|
libtiff
|
||||||
|
freetype
|
||||||
|
ebook_tools
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = with lib.licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
47
pkgs/applications/kde-apps-15.12/print-manager.nix
Normal file
47
pkgs/applications/kde-apps-15.12/print-manager.nix
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{ kdeApp
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, qtdeclarative
|
||||||
|
, cups
|
||||||
|
, kconfig
|
||||||
|
, kconfigwidgets
|
||||||
|
, kdbusaddons
|
||||||
|
, kiconthemes
|
||||||
|
, ki18n
|
||||||
|
, kcmutils
|
||||||
|
, kio
|
||||||
|
, knotifications
|
||||||
|
, plasma-framework
|
||||||
|
, kwidgetsaddons
|
||||||
|
, kwindowsystem
|
||||||
|
, kitemviews
|
||||||
|
}:
|
||||||
|
|
||||||
|
kdeApp {
|
||||||
|
name = "print-manager";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
cups
|
||||||
|
kconfig
|
||||||
|
kconfigwidgets
|
||||||
|
kdbusaddons
|
||||||
|
kiconthemes
|
||||||
|
kcmutils
|
||||||
|
knotifications
|
||||||
|
kwidgetsaddons
|
||||||
|
kitemviews
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
ki18n
|
||||||
|
kio
|
||||||
|
kwindowsystem
|
||||||
|
plasma-framework
|
||||||
|
qtdeclarative
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
license = [ lib.licenses.gpl2 ];
|
||||||
|
maintainers = [ lib.maintainers.ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
1925
pkgs/applications/kde-apps-15.12/srcs.nix
Normal file
1925
pkgs/applications/kde-apps-15.12/srcs.nix
Normal file
File diff suppressed because it is too large
Load Diff
@ -5,11 +5,12 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "calibre-${meta.version}";
|
version = "2.45.0";
|
||||||
|
name = "calibre-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/kovidgoyal/calibre/releases/download/v${meta.version}/${name}.tar.xz";
|
url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
||||||
sha256 = "1ffqvnjqmplcpa398809gp4d4l7nqc6k8ky255mdkabfcdvf3kk3";
|
sha256 = "1s3wrrvp2d0mczs09g2xkkknvlk3max6ws7awpss5kkdpjvay6ma";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit python;
|
inherit python;
|
||||||
@ -58,11 +59,11 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
version = "2.44.1";
|
|
||||||
description = "Comprehensive e-book software";
|
description = "Comprehensive e-book software";
|
||||||
homepage = http://calibre-ebook.com;
|
homepage = http://calibre-ebook.com;
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
maintainers = with maintainers; [ viric iElectric pSub AndersonTorres ];
|
maintainers = with maintainers; [ viric iElectric pSub AndersonTorres ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
inherit version;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
42
pkgs/applications/misc/emem/default.nix
Normal file
42
pkgs/applications/misc/emem/default.nix
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{ stdenv, fetchurl, jdk }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "emem";
|
||||||
|
version = "0.2.11";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
inherit jdk;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/ebzzry/${pname}/releases/download/v${version}/${pname}.jar";
|
||||||
|
sha256 = "0b514nc1s5jff3586jmfx9js57j7hl8zdwi2jxlwiavwv46rl436";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ ];
|
||||||
|
|
||||||
|
phases = [ "buildPhase" "installPhase" ];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
mkdir -p $out/share/java
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
cp $src $out/share/java
|
||||||
|
|
||||||
|
cat > $out/bin/emem <<EOF
|
||||||
|
#! $SHELL
|
||||||
|
$jdk/bin/java -jar $out/share/java/$(basename $src) "\$@"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x $out/bin/emem
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://github.com/ebzzry/emem;
|
||||||
|
description = "A trivial Markdown to HTML converter";
|
||||||
|
license = licenses.epl10;
|
||||||
|
maintainers = [ maintainers.ebzzry ];
|
||||||
|
platforms = platforms.unix;
|
||||||
|
};
|
||||||
|
}
|
@ -1,33 +1,22 @@
|
|||||||
a @ { libgphoto2, fuse, pkgconfig, glib, libtool, ... } :
|
{ stdenv, fetchurl, libtool, pkgconfig, libgphoto2, fuse, glib }:
|
||||||
let
|
|
||||||
fetchurl = a.fetchurl;
|
|
||||||
s = import ./src-info-for-gphotofs.nix;
|
|
||||||
|
|
||||||
version = a.lib.attrByPath ["version"] s.version a;
|
stdenv.mkDerivation rec {
|
||||||
buildInputs = with a; [
|
name = "gphoto2fs-${version}";
|
||||||
libgphoto2 fuse pkgconfig glib libtool
|
version = "0.5.0";
|
||||||
];
|
|
||||||
in
|
|
||||||
rec {
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = s.url;
|
url="mirror://sourceforge/gphoto/gphotofs/${version}/gphotofs-0.5.tar.bz2";
|
||||||
sha256 = s.hash;
|
sha256 = "1k23ncbsbh64r7kz050bg31jqamchyswgg9izhzij758d7gc8vk7";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit buildInputs;
|
buildInputs = [
|
||||||
configureFlags = [];
|
libgphoto2 fuse pkgconfig glib libtool
|
||||||
|
];
|
||||||
|
|
||||||
/* doConfigure should be removed if not needed */
|
|
||||||
phaseNames = ["doConfigure" "doMakeInstall"];
|
|
||||||
|
|
||||||
name = "gphoto2fs-" + version;
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Fuse FS to mount a digital camera";
|
description = "Fuse FS to mount a digital camera";
|
||||||
maintainers = [
|
maintainers = [
|
||||||
a.lib.maintainers.raskin
|
stdenv.lib.maintainers.raskin
|
||||||
];
|
|
||||||
platforms = [
|
|
||||||
"i686-linux" "x86_64-linux"
|
|
||||||
];
|
];
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
rec {
|
|
||||||
advertisedUrl="mirror://sourceforge/gphoto/gphotofs/0.5.0/gphotofs-0.5.tar.bz2";
|
|
||||||
version = "0.5.0";
|
|
||||||
url="mirror://sourceforge/gphoto/gphotofs/0.5.0/gphotofs-0.5.tar.bz2";
|
|
||||||
hash = "1k23ncbsbh64r7kz050bg31jqamchyswgg9izhzij758d7gc8vk7";
|
|
||||||
}
|
|
@ -20,14 +20,25 @@ stdenv.mkDerivation rec {
|
|||||||
But FOP isn't packaged yet. */
|
But FOP isn't packaged yet. */
|
||||||
|
|
||||||
preConfigure = "cd gpsbabel";
|
preConfigure = "cd gpsbabel";
|
||||||
configureFlags = [ "--with-zlib=system" ];
|
configureFlags = [ "--with-zlib=system" ]
|
||||||
|
# Floating point behavior on i686 causes test failures. Preventing
|
||||||
|
# extended precision fixes this problem.
|
||||||
|
++ stdenv.lib.optionals stdenv.isi686 [
|
||||||
|
"CFLAGS=-ffloat-store" "CXXFLAGS=-ffloat-store"
|
||||||
|
];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
preCheck = ''
|
preCheck = ''
|
||||||
patchShebangs testo
|
patchShebangs testo
|
||||||
substituteInPlace testo \
|
substituteInPlace testo \
|
||||||
--replace "-x /usr/bin/hexdump" ""
|
--replace "-x /usr/bin/hexdump" ""
|
||||||
'';
|
'' + (
|
||||||
|
# The raymarine and gtm tests fail on i686 despite -ffloat-store.
|
||||||
|
if stdenv.isi686 then "rm -v testo.d/raymarine.test testo.d/gtm.test;"
|
||||||
|
else ""
|
||||||
|
);
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Convert, upload and download data from GPS and Map programs";
|
description = "Convert, upload and download data from GPS and Map programs";
|
||||||
|
@ -2,15 +2,17 @@
|
|||||||
, libX11, libXext }:
|
, libX11, libXext }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "1.7";
|
version = "1.8";
|
||||||
name = "mupdf-${version}";
|
name = "mupdf-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://mupdf.com/download/archive/${name}-source.tar.gz";
|
url = "http://mupdf.com/download/archive/${name}-source.tar.gz";
|
||||||
sha256 = "0hjn1ywxhblqgj63qkp8x7qqjnwsgid3viw8az5i2i26dijmrgfh";
|
sha256 = "01n26cy41lc2fjri63s4js23ixxb4nd37aafry3hz4i4id6wd8x2";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ pkgconfig zlib freetype libjpeg jbig2dec openjpeg libX11 libXext ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
propagatedBuildInputs = [ openjpeg libjpeg jbig2dec ];
|
||||||
|
buildInputs = [ zlib freetype libX11 libXext ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
@ -45,7 +47,7 @@ stdenv.mkDerivation rec {
|
|||||||
Name: mupdf
|
Name: mupdf
|
||||||
Description: Library for rendering PDF documents
|
Description: Library for rendering PDF documents
|
||||||
Requires: freetype2 libopenjp2 libcrypto
|
Requires: freetype2 libopenjp2 libcrypto
|
||||||
Version: 1.3
|
Version: ${version}
|
||||||
Libs: -L$out/lib -lmupdf
|
Libs: -L$out/lib -lmupdf
|
||||||
Cflags: -I$out/include
|
Cflags: -I$out/include
|
||||||
EOF
|
EOF
|
||||||
|
@ -34,12 +34,13 @@ pythonPackages.buildPythonPackage {
|
|||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
preConfigure = with stdenv.lib; ''
|
preConfigure = with stdenv.lib; ''
|
||||||
${concatStrings (map (x: "ln -s ${x.src} models/`basename ${x.name}`;")
|
${concatStrings (map (x: "cp -R ${x.src} models/`basename ${x.name}`;")
|
||||||
models)}
|
models)}
|
||||||
|
|
||||||
substituteInPlace ocrolib/{common,default}.py --replace /usr/local $out
|
substituteInPlace ocrolib/{common,default}.py --replace /usr/local $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
doCheck = false; # fails
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
patchShebangs .
|
patchShebangs .
|
||||||
substituteInPlace ./run-test \
|
substituteInPlace ./run-test \
|
||||||
|
@ -16,10 +16,10 @@ python27Packages.buildPythonPackage rec {
|
|||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
setupPyBuildFlags = ["-i"];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
sed -i -r "s|/usr(/local)?/share/|$out/share/|g" printrun/utils.py
|
sed -i -r "s|/usr(/local)?/share/|$out/share/|g" printrun/utils.py
|
||||||
sed -i "s|distutils.core|setuptools|" setup.py
|
|
||||||
sed -i "s|distutils.command.install |setuptools.command.install |" setup.py
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
@ -27,12 +27,12 @@ pythonPackages.buildPythonPackage rec {
|
|||||||
# string, which allows setting an explicit MIME type.
|
# string, which allows setting an explicit MIME type.
|
||||||
patches = [ ./pytrainer-webkit.patch ];
|
patches = [ ./pytrainer-webkit.patch ];
|
||||||
|
|
||||||
pythonPath = with pythonPackages; [
|
propagatedBuildInputs = with pythonPackages; [
|
||||||
dateutil lxml matplotlibGtk pyGtkGlade pywebkitgtk
|
dateutil lxml matplotlibGtk pyGtkGlade pywebkitgtk
|
||||||
sqlalchemy sqlalchemy_migrate
|
sqlalchemy_migrate
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [gpsbabel sqlite] ++ pythonPath;
|
buildInputs = [ gpsbabel sqlite ];
|
||||||
|
|
||||||
# This package contains no binaries to patch or strip.
|
# This package contains no binaries to patch or strip.
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, buildPythonPackage, python, fetchurl }:
|
{ stdenv, fetchurl, buildPythonPackage, python, w3m }:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
name = "ranger-1.7.1";
|
name = "ranger-1.7.1";
|
||||||
@ -17,4 +17,14 @@ buildPythonPackage rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python.modules; [ curses ];
|
propagatedBuildInputs = with python.modules; [ curses ];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
substituteInPlace ranger/ext/img_display.py \
|
||||||
|
--replace /usr/lib/w3m ${w3m}/libexec/w3m
|
||||||
|
|
||||||
|
for i in ranger/config/rc.conf doc/config/rc.conf ; do
|
||||||
|
substituteInPlace $i --replace /usr/share $out/share
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user