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">
|
||||
<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>
|
||||
The function <varname>overrideDerivation</varname> is usually available for all the
|
||||
derivations in the nixpkgs expression (<varname>pkgs</varname>).
|
||||
|
@ -196,12 +196,12 @@ you need it.</para>
|
||||
|
||||
<para>
|
||||
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>.
|
||||
</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>
|
||||
@ -231,7 +231,7 @@ are provided with all modules included.</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.
|
||||
</para>
|
||||
|
||||
@ -306,7 +306,7 @@ twisted = buildPythonPackage {
|
||||
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>
|
||||
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>.
|
||||
</para>
|
||||
|
||||
@ -314,20 +314,14 @@ twisted = buildPythonPackage {
|
||||
<function>buildPythonPackage</function> mainly does four things:
|
||||
|
||||
<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>
|
||||
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>
|
||||
|
||||
<listitem><para>
|
||||
In the <varname>installPhase</varname>, it calls
|
||||
<literal>${python.interpreter} setup.py install ...</literal>
|
||||
In the <varname>installPhase</varname>, it installs the wheel file using
|
||||
<literal>pip install *.whl</literal>.
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para>
|
||||
@ -336,11 +330,15 @@ twisted = buildPythonPackage {
|
||||
directory to include <literal>$PYTHONPATH</literal> and <literal>$PATH</literal>
|
||||
environment variables.
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para>
|
||||
In the <varname>installCheck</varname> phase, <literal>${python.interpreter} setup.py test</literal>
|
||||
is ran.
|
||||
</para></listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
|
||||
<para>By default <varname>doCheck = true</varname> is set and tests are run with
|
||||
<literal>${python.interpreter} setup.py test</literal> command in <varname>checkPhase</varname>.</para>
|
||||
<para>By default <varname>doCheck = true</varname> is set</para>
|
||||
|
||||
<para>
|
||||
As in Perl, dependencies on other Python packages can be specified in the
|
||||
@ -382,17 +380,10 @@ twisted = buildPythonPackage {
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>setupPyInstallFlags</varname></term>
|
||||
<listitem><para>
|
||||
List of flags passed to <command>setup.py install</command> command.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>setupPyBuildFlags</varname></term>
|
||||
<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>
|
||||
</varlistentry>
|
||||
|
||||
@ -400,7 +391,7 @@ twisted = buildPythonPackage {
|
||||
<term><varname>pythonPath</varname></term>
|
||||
<listitem><para>
|
||||
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>).
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
@ -419,15 +410,6 @@ twisted = buildPythonPackage {
|
||||
</para></listitem>
|
||||
</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>
|
||||
<term><varname>makeWrapperArgs</varname></term>
|
||||
<listitem><para>
|
||||
@ -545,7 +527,7 @@ exist in community to help save time. No tool is preferred at the moment.
|
||||
<para>
|
||||
To develop Python packages <function>buildPythonPackage</function> has
|
||||
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>
|
||||
|
||||
<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>:
|
||||
|
||||
<screen>
|
||||
$ nix-env -qa hello --meta --json
|
||||
$ nix-env -qa hello --json
|
||||
{
|
||||
"hello": {
|
||||
"meta": {
|
||||
|
@ -96,6 +96,7 @@
|
||||
enolan = "Echo Nolan <echo@echonolan.net>";
|
||||
epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
|
||||
ericbmerritt = "Eric Merritt <eric@afiniate.com>";
|
||||
ericsagnes = "Eric Sagnes <eric.sagnes@gmail.com>";
|
||||
erikryb = "Erik Rybakken <erik.rybakken@math.ntnu.no>";
|
||||
ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
|
||||
exlevan = "Alexey Levan <exlevan@gmail.com>";
|
||||
@ -181,12 +182,14 @@
|
||||
malyn = "Michael Alyn Miller <malyn@strangeGizmo.com>";
|
||||
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
|
||||
marcweber = "Marc Weber <marco-oweber@gmx.de>";
|
||||
markWot = "Markus Wotringer <markus@wotringer.de";
|
||||
maurer = "Matthew Maurer <matthew.r.maurer+nix@gmail.com>";
|
||||
matejc = "Matej Cotman <cotman.matej@gmail.com>";
|
||||
mathnerd314 = "Mathnerd314 <mathnerd314.gph+hs@gmail.com>";
|
||||
matthiasbeyer = "Matthias Beyer <mail@beyermatthias.de>";
|
||||
mbakke = "Marius Bakke <ymse@tuta.io>";
|
||||
mbe = "Brandon Edens <brandonedens@gmail.com>";
|
||||
mcmtroffaes = "Matthias C. M. Troffaes <matthias.troffaes@gmail.com>";
|
||||
meditans = "Carlo Nucera <meditans@gmail.com>";
|
||||
meisternu = "Matt Miemiec <meister@krutt.org>";
|
||||
michelk = "Michel Kuhlmann <michel@kuhlmanns.info>";
|
||||
@ -218,6 +221,7 @@
|
||||
page = "Carles Pagès <page@cubata.homelinux.net>";
|
||||
paholg = "Paho Lurie-Gregg <paho@paholg.com>";
|
||||
pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>";
|
||||
palo = "Ingolf Wanger <palipalo9@googlemail.com>";
|
||||
pashev = "Igor Pashev <pashev.igor@gmail.com>";
|
||||
pesterhazy = "Paulus Esterhazy <pesterhazy@gmail.com>";
|
||||
phausmann = "Philipp Hausmann <nix@314.ch>";
|
||||
@ -229,6 +233,7 @@
|
||||
pjones = "Peter Jones <pjones@devalot.com>";
|
||||
pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
|
||||
plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
|
||||
Phlogistique = "Noé Rubinstein <noe.rubinstein@gmail.com>";
|
||||
pmahoney = "Patrick Mahoney <pat@polycrystal.org>";
|
||||
pmiddend = "Philipp Middendorf <pmidden@secure.mailbox.org>";
|
||||
prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
|
||||
@ -254,6 +259,7 @@
|
||||
romildo = "José Romildo Malaquias <malaquias@gmail.com>";
|
||||
rszibele = "Richard Szibele <richard_szibele@hotmail.com>";
|
||||
rushmorem = "Rushmore Mushambi <rushmore@webenchanter.com>";
|
||||
rvl = "Rodney Lorrimar <dev+nix@rodney.id.au>";
|
||||
rycee = "Robert Helgesson <robert@rycee.net>";
|
||||
samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
|
||||
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
|
||||
@ -286,6 +292,7 @@
|
||||
theuni = "Christian Theune <ct@flyingcircus.io>";
|
||||
thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
|
||||
titanous = "Jonathan Rudenberg <jonathan@titanous.com>";
|
||||
tohl = "Tomas Hlavaty <tom@logand.com>";
|
||||
tokudan = "Daniel Frank <git@danielfrank.net>";
|
||||
tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
|
||||
travisbhartwell = "Travis B. Hartwell <nafai@travishartwell.net>";
|
||||
|
@ -223,4 +223,12 @@ rec {
|
||||
# Check whether a value is a store path.
|
||||
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.";
|
||||
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ runTests {
|
||||
expr = id 1;
|
||||
expected = 1;
|
||||
};
|
||||
|
||||
|
||||
testConst = {
|
||||
expr = const 2 3;
|
||||
expected = 2;
|
||||
@ -19,12 +19,12 @@ runTests {
|
||||
expected = true;
|
||||
};
|
||||
*/
|
||||
|
||||
|
||||
testAnd = {
|
||||
expr = and true false;
|
||||
expected = false;
|
||||
};
|
||||
|
||||
|
||||
testFix = {
|
||||
expr = fix (x: {a = if x ? a then "a" else "b";});
|
||||
expected = {a = "a";};
|
||||
@ -67,7 +67,7 @@ runTests {
|
||||
};
|
||||
|
||||
testOverridableDelayableArgsTest = {
|
||||
expr =
|
||||
expr =
|
||||
let res1 = defaultOverridableDelayableArgs id {};
|
||||
res2 = defaultOverridableDelayableArgs id { a = 7; };
|
||||
res3 = let x = defaultOverridableDelayableArgs id { a = 7; };
|
||||
@ -87,7 +87,7 @@ runTests {
|
||||
in (x2.replace) { a = 10; }; # and override the value by 10
|
||||
|
||||
# fixed tests (delayed args): (when using them add some comments, please)
|
||||
resFixed1 =
|
||||
resFixed1 =
|
||||
let x = defaultOverridableDelayableArgs id ( x : { a = 7; c = x.fixed.b; });
|
||||
y = x.merge (x : { name = "name-${builtins.toString x.fixed.c}"; });
|
||||
in (y.merge) { b = 10; };
|
||||
@ -109,5 +109,15 @@ runTests {
|
||||
expr = sort builtins.lessThan [ 40 2 30 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;
|
||||
mergeAttrs = x: y: x // y;
|
||||
|
||||
# Take a function and evaluate it with its own returned value.
|
||||
fix = f: let result = f result; in result;
|
||||
# Compute the fixed point of the given function `f`, which is usually an
|
||||
# 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 = f: a: b: f b a;
|
||||
|
@ -26,6 +26,13 @@ nixos.path = ./nixpkgs-unstable-2015-12-06/nixos;
|
||||
|
||||
</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
|
||||
following incompatible changes:</para>
|
||||
|
||||
@ -74,6 +81,29 @@ nginx.override {
|
||||
</para>
|
||||
</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>
|
||||
|
||||
</section>
|
||||
|
@ -119,7 +119,11 @@ $xorriso -output $out/iso/$isoName
|
||||
|
||||
if test -n "$usbBootable"; then
|
||||
echo "Making image hybrid..."
|
||||
isohybrid --uefi $out/iso/$isoName
|
||||
if test -n "$efiBootable"; then
|
||||
isohybrid --uefi $out/iso/$isoName
|
||||
else
|
||||
isohybrid $out/iso/$isoName
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$compressImage"; then
|
||||
|
@ -236,6 +236,7 @@
|
||||
xtreemfs = 212;
|
||||
calibre-server = 213;
|
||||
heapster = 214;
|
||||
bepasty = 215;
|
||||
|
||||
# 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;
|
||||
scanner = 59;
|
||||
nginx = 60;
|
||||
#chrony = 61; # unused
|
||||
chrony = 61;
|
||||
systemd-journal = 62;
|
||||
smtpd = 63;
|
||||
smtpq = 64;
|
||||
@ -449,6 +450,7 @@
|
||||
#kibana = 211;
|
||||
xtreemfs = 212;
|
||||
calibre-server = 213;
|
||||
bepasty = 215;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing
|
||||
# uid. Users and groups with the same name should have equal
|
||||
|
@ -190,6 +190,7 @@
|
||||
./services/mail/spamassassin.nix
|
||||
./services/misc/apache-kafka.nix
|
||||
./services/misc/autofs.nix
|
||||
./services/misc/bepasty.nix
|
||||
./services/misc/canto-daemon.nix
|
||||
./services/misc/calibre-server.nix
|
||||
./services/misc/cpuminer-cryptonight.nix
|
||||
@ -240,6 +241,7 @@
|
||||
./services/monitoring/grafana.nix
|
||||
./services/monitoring/graphite.nix
|
||||
./services/monitoring/heapster.nix
|
||||
./services/monitoring/longview.nix
|
||||
./services/monitoring/monit.nix
|
||||
./services/monitoring/munin.nix
|
||||
./services/monitoring/nagios.nix
|
||||
|
@ -1,7 +1,7 @@
|
||||
# This module defines the software packages included in the "minimal"
|
||||
# installation CD. It might be useful elsewhere.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Include some utilities that are useful for installing or repairing
|
||||
@ -50,5 +50,5 @@
|
||||
boot.supportedFilesystems = [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "zfs" "ntfs" "cifs" ];
|
||||
|
||||
# Configure host id for ZFS to work
|
||||
networking.hostId = "8425e349";
|
||||
networking.hostId = lib.mkDefault "8425e349";
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ in
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.ibus ];
|
||||
environment.systemPackages = [ pkgs.ibus pkgs.gnome3.dconf ];
|
||||
|
||||
gtkPlugins = [ pkgs.ibus ];
|
||||
qtPlugins = [ pkgs.ibus-qt ];
|
||||
|
@ -25,7 +25,7 @@ in
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
description = ''
|
||||
Whenever to configure Zsh as an interactive shell.
|
||||
Whether to configure zsh as an interactive shell.
|
||||
'';
|
||||
type = types.bool;
|
||||
};
|
||||
@ -73,6 +73,14 @@ in
|
||||
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
|
||||
|
||||
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.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";
|
||||
|
||||
|
@ -218,7 +218,7 @@ let
|
||||
# Samba stuff to the Samba module. This requires that the PAM
|
||||
# module provides the right hooks.
|
||||
text = mkDefault
|
||||
''
|
||||
(''
|
||||
# Account management.
|
||||
account sufficient pam_unix.so
|
||||
${optionalString config.users.ldap.enable
|
||||
@ -241,12 +241,22 @@ let
|
||||
"auth sufficient ${pkgs.pam_u2f}/lib/security/pam_u2f.so"}
|
||||
${optionalString cfg.usbAuth
|
||||
"auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so"}
|
||||
'' +
|
||||
# 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
|
||||
"auth optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
|
||||
'') + ''
|
||||
${optionalString cfg.unixAuth
|
||||
"auth ${if (config.security.pam.enableEcryptfs || cfg.pamMount) then "required" else "sufficient"} pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth"}
|
||||
${optionalString cfg.pamMount
|
||||
"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"}
|
||||
"auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth try_first_pass"}
|
||||
${optionalString cfg.otpwAuth
|
||||
"auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so"}
|
||||
${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 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 requisite pam_unix.so nullok sha512
|
||||
@ -306,7 +316,7 @@ let
|
||||
"session optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
|
||||
${optionalString (cfg.enableAppArmor && config.security.apparmor.enable)
|
||||
"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 =
|
||||
{ description = "Disnix server";
|
||||
|
||||
wants = [ "dysnomia.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "dbus.service" ]
|
||||
++ optional config.services.httpd.enable "httpd.service"
|
||||
@ -137,6 +138,17 @@ in
|
||||
environment = {
|
||||
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";
|
||||
};
|
||||
|
@ -41,8 +41,15 @@ let
|
||||
};
|
||||
|
||||
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 = {
|
||||
PYTHONPATH = "${pkgs.python27Packages.carbon}/lib/python2.7/site-packages";
|
||||
GRAPHITE_ROOT = dataDir;
|
||||
@ -370,18 +377,20 @@ in {
|
||||
|
||||
config = mkMerge [
|
||||
(mkIf cfg.carbon.enableCache {
|
||||
systemd.services.carbonCache = {
|
||||
systemd.services.carbonCache = let name = "carbon-cache"; in {
|
||||
description = "Graphite Data Storage Backend";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = carbonEnv;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}";
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts name}";
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
PermissionsStartOnly = true;
|
||||
PIDFile="/run/${name}/${name}.pid";
|
||||
};
|
||||
preStart = ''
|
||||
preStart = mkPidFileDir name + ''
|
||||
|
||||
mkdir -p ${cfg.dataDir}/whisper
|
||||
chmod 0700 ${cfg.dataDir}/whisper
|
||||
chown -R graphite:graphite ${cfg.dataDir}
|
||||
@ -390,31 +399,35 @@ in {
|
||||
})
|
||||
|
||||
(mkIf cfg.carbon.enableAggregator {
|
||||
systemd.services.carbonAggregator = {
|
||||
systemd.services.carbonAggregator = let name = "carbon-aggregator"; in {
|
||||
enable = cfg.carbon.enableAggregator;
|
||||
description = "Carbon Data Aggregator";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = carbonEnv;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}";
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts name}";
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
PIDFile="/run/${name}/${name}.pid";
|
||||
};
|
||||
preStart = mkPidFileDir name;
|
||||
};
|
||||
})
|
||||
|
||||
(mkIf cfg.carbon.enableRelay {
|
||||
systemd.services.carbonRelay = {
|
||||
systemd.services.carbonRelay = let name = "carbon-relay"; in {
|
||||
description = "Carbon Data Relay";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = carbonEnv;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}";
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts name}";
|
||||
User = "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;
|
||||
|
||||
isBuiltinBackend = name:
|
||||
builtins.elem name [ "graphite" "console" "repeater" ];
|
||||
|
||||
configFile = pkgs.writeText "statsd.conf" ''
|
||||
{
|
||||
address: "${cfg.host}",
|
||||
port: "${toString cfg.port}",
|
||||
mgmt_address: "${cfg.mgmt_address}",
|
||||
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.graphitePort!=null) ''graphitePort: "${toString cfg.graphitePort}",''}
|
||||
console: {
|
||||
@ -66,9 +74,16 @@ in
|
||||
|
||||
backends = mkOption {
|
||||
description = "List of backends statsd will use for data persistence";
|
||||
default = ["graphite"];
|
||||
example = ["graphite" pkgs.nodePackages."statsd-influxdb-backend"];
|
||||
type = types.listOf (types.either types.str types.package);
|
||||
default = [];
|
||||
example = [
|
||||
"graphite"
|
||||
"console"
|
||||
"repeater"
|
||||
"statsd-librato-backend"
|
||||
"stackdriver-statsd-backend"
|
||||
"statsd-influxdb-backend"
|
||||
];
|
||||
type = types.listOf types.str;
|
||||
};
|
||||
|
||||
graphiteHost = mkOption {
|
||||
@ -105,15 +120,17 @@ in
|
||||
description = "Statsd Server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
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 = {
|
||||
ExecStart = "${pkgs.nodePackages.statsd}/bin/statsd ${configFile}";
|
||||
ExecStart = "${pkgs.statsd}/bin/statsd ${configFile}";
|
||||
User = "statsd";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [pkgs.nodePackages.statsd];
|
||||
environment.systemPackages = [ pkgs.statsd ];
|
||||
|
||||
};
|
||||
|
||||
|
@ -8,26 +8,10 @@ let
|
||||
|
||||
stateDir = "/var/lib/chrony";
|
||||
|
||||
chronyUser = "chrony";
|
||||
keyFile = "/etc/chrony.keys";
|
||||
|
||||
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
|
||||
|
||||
{
|
||||
@ -47,12 +31,7 @@ in
|
||||
};
|
||||
|
||||
servers = mkOption {
|
||||
default = [
|
||||
"0.nixos.pool.ntp.org"
|
||||
"1.nixos.pool.ntp.org"
|
||||
"2.nixos.pool.ntp.org"
|
||||
"3.nixos.pool.ntp.org"
|
||||
];
|
||||
default = config.services.ntp.servers;
|
||||
description = ''
|
||||
The set of NTP servers from which to synchronise.
|
||||
'';
|
||||
@ -90,28 +69,60 @@ in
|
||||
# Make chronyc available in the system path
|
||||
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
|
||||
{ name = chronyUser;
|
||||
{ name = "chrony";
|
||||
uid = config.ids.uids.chrony;
|
||||
group = "chrony";
|
||||
description = "chrony daemon user";
|
||||
home = stateDir;
|
||||
};
|
||||
|
||||
jobs.chronyd =
|
||||
{ description = "chrony daemon";
|
||||
systemd.services.ntpd.enable = false;
|
||||
|
||||
systemd.services.chronyd =
|
||||
{ description = "chrony NTP daemon";
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
conflicts = [ "ntpd.service" "systemd-timesyncd.service" ];
|
||||
|
||||
path = [ chrony ];
|
||||
path = [ pkgs.chrony ];
|
||||
|
||||
preStart =
|
||||
''
|
||||
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}')";
|
||||
|
||||
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
|
||||
${if isNull cfg.extIp then extip else ""}
|
||||
${pkgs.i2pd}/bin/i2p --log=1 --daemon=0 --service=0 \
|
||||
--v6=${if cfg.enableIPv6 then "1" else "0"} \
|
||||
--unreachable=${if cfg.unreachable then "1" else "0"} \
|
||||
${pkgs.i2pd}/bin/i2pd --log=1 --daemon=0 --service=0 \
|
||||
--host=${if isNull cfg.extIp then "$EXTIP" else cfg.extIp} \
|
||||
${if isNull cfg.port then "" else "--port=${toString cfg.port}"} \
|
||||
--httpproxyport=${toString cfg.proxy.httpPort} \
|
||||
--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}
|
||||
--conf=${i2pdConf} \
|
||||
--tunnelscfg=${i2pdTunnelConf}
|
||||
'';
|
||||
|
||||
in
|
||||
@ -63,11 +99,19 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
floodfill = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
If the router is declared to be unreachable and needs introduction nodes.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = with types; nullOr int;
|
||||
default = null;
|
||||
description = ''
|
||||
I2P listen port. If no one is given the router will pick between 9111 and 30777.
|
||||
I2P listen port. If no one is given the router will pick between 9111 and 30777.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -107,6 +151,13 @@ in
|
||||
};
|
||||
|
||||
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 {
|
||||
type = types.str;
|
||||
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";
|
||||
WorkingDirectory = homeDir;
|
||||
Restart = "on-abort";
|
||||
ExecStart = "${i2pSh}/bin/i2pd";
|
||||
ExecStart = "${i2pdSh}/bin/i2pd";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
#
|
||||
|
@ -118,7 +118,7 @@ in
|
||||
systemd.services.strongswan = {
|
||||
description = "strongSwan IPSec Service";
|
||||
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" ];
|
||||
after = [ "network.target" "keys.target" ];
|
||||
environment = {
|
||||
|
@ -21,7 +21,7 @@ in
|
||||
description = ''
|
||||
Whether to enable the Syncthing, self-hosted open-source alternative
|
||||
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 ];
|
||||
|
||||
};
|
||||
|
||||
|
@ -9,7 +9,7 @@ let
|
||||
homeDir = "/var/lib/transmission";
|
||||
downloadDir = "${homeDir}/Downloads";
|
||||
incompleteDir = "${homeDir}/.incomplete";
|
||||
|
||||
|
||||
settingsDir = "${homeDir}/.config/transmission-daemon";
|
||||
settingsFile = pkgs.writeText "settings.json" (builtins.toJSON fullSettings);
|
||||
|
||||
@ -21,7 +21,7 @@ let
|
||||
else toString ''"${x}"'';
|
||||
|
||||
# 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
|
||||
{
|
||||
options = {
|
||||
@ -35,7 +35,7 @@ in
|
||||
Transmission daemon can be controlled via the RPC interface using
|
||||
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.
|
||||
'';
|
||||
};
|
||||
@ -83,7 +83,7 @@ in
|
||||
# 1) Only the "transmission" user and group have access to torrents.
|
||||
# 2) Optionally update/force specific fields into the configuration file.
|
||||
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.ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
|
@ -70,7 +70,7 @@ let
|
||||
"proxyuserpwd" => "",
|
||||
|
||||
/* 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" => "",
|
||||
@ -331,7 +331,7 @@ let
|
||||
*/
|
||||
'share_folder' => '/',
|
||||
|
||||
'version' => '${pkgs.owncloud.version}',
|
||||
'version' => '${config.package.version}',
|
||||
|
||||
'openssl' => '${pkgs.openssl}/bin/openssl'
|
||||
|
||||
@ -345,16 +345,15 @@ rec {
|
||||
|
||||
extraConfig =
|
||||
''
|
||||
ServerName ${config.siteName}
|
||||
ServerAdmin ${config.adminAddr}
|
||||
DocumentRoot ${documentRoot}
|
||||
${if config.urlPrefix != "" then "Alias ${config.urlPrefix} ${config.package}" else ''
|
||||
|
||||
RewriteEngine On
|
||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
|
||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
|
||||
RewriteEngine On
|
||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
|
||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
|
||||
''}
|
||||
|
||||
<Directory ${pkgs.owncloud}>
|
||||
${builtins.readFile "${pkgs.owncloud}/.htaccess"}
|
||||
<Directory ${config.package}>
|
||||
${builtins.readFile "${config.package}/.htaccess"}
|
||||
</Directory>
|
||||
'';
|
||||
|
||||
@ -362,12 +361,29 @@ rec {
|
||||
{ name = "OC_CONFIG_PATH"; value = "${config.dataDir}/config/"; }
|
||||
];
|
||||
|
||||
documentRoot = pkgs.owncloud;
|
||||
documentRoot = if config.urlPrefix == "" then config.package else null;
|
||||
|
||||
enablePHP = true;
|
||||
|
||||
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 {
|
||||
default = "main";
|
||||
description = ''
|
||||
@ -552,7 +568,7 @@ rec {
|
||||
cp ${owncloudConfig} ${config.dataDir}/config/config.php
|
||||
mkdir -p ${config.dataDir}/storage
|
||||
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 o-rwx ${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
|
||||
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
|
||||
|
||||
|
@ -5,7 +5,7 @@ with lib;
|
||||
|
||||
let
|
||||
|
||||
version = "4.3";
|
||||
version = "4.3.1";
|
||||
fullversion = "${version}";
|
||||
|
||||
# Our bare-bones wp-config.php file using the above settings
|
||||
@ -74,7 +74,7 @@ let
|
||||
owner = "WordPress";
|
||||
repo = "WordPress";
|
||||
rev = "${fullversion}";
|
||||
sha256 = "0sz5jjhjpwqis8336gyq9a77cr4sf8zahd1y4pzmpvpzn9cn503y";
|
||||
sha256 = "1rk10vcv4z9p04hfzc0wkbilrgx7m9ssyr6c3w6vw3vl1bcgqxza";
|
||||
};
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
@ -248,7 +248,7 @@ in
|
||||
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}'."
|
||||
# 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
|
||||
done
|
||||
${pkgs.mysql}/bin/mysql -e 'CREATE DATABASE ${config.dbName};'
|
||||
|
@ -108,7 +108,7 @@ in
|
||||
kdeApps.okular
|
||||
kdeApps.print-manager
|
||||
|
||||
kdeApps.oxygen-icons
|
||||
(kdeApps.oxygen-icons or kf5.oxygen-icons5)
|
||||
pkgs.hicolor_icon_theme
|
||||
|
||||
plasma5.kde-gtk-config
|
||||
@ -155,7 +155,7 @@ in
|
||||
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";
|
||||
|
||||
|
@ -18,6 +18,14 @@ in
|
||||
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.ristretto
|
||||
pkgs.xfce.terminal
|
||||
pkgs.xfce.thunar
|
||||
(pkgs.xfce.thunar.override { thunarPlugins = cfg.thunarPlugins; })
|
||||
pkgs.xfce.xfce4icontheme
|
||||
pkgs.xfce.xfce4panel
|
||||
pkgs.xfce.xfce4session
|
||||
|
@ -162,7 +162,7 @@ in
|
||||
|
||||
gdm.text = ''
|
||||
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 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}
|
||||
'';
|
||||
|
||||
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"
|
||||
''
|
||||
[UserList]
|
||||
@ -72,34 +40,42 @@ let
|
||||
${cfg.extraSeatDefaults}
|
||||
'';
|
||||
|
||||
gtkGreeterConf = writeText "lightdm-gtk-greeter.conf"
|
||||
''
|
||||
[greeter]
|
||||
theme-name = Adwaita
|
||||
icon-theme-name = Adwaita
|
||||
background = ${cfg.background}
|
||||
'';
|
||||
|
||||
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 = {
|
||||
|
||||
services.xserver.displayManager.lightdm = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable lightdm as the display manager.
|
||||
'';
|
||||
};
|
||||
|
||||
greeter = mkOption {
|
||||
description = ''
|
||||
The LightDM greeter to login via. The package should be a directory
|
||||
containing a .desktop file matching the name in the 'name' option.
|
||||
'';
|
||||
default = {
|
||||
name = "lightdm-gtk-greeter";
|
||||
package = wrappedGtkGreeter;
|
||||
greeter = {
|
||||
package = mkOption {
|
||||
type = types.path;
|
||||
description = ''
|
||||
The LightDM greeter to login via. The package should be a directory
|
||||
containing a .desktop file matching the name in the 'name' option.
|
||||
'';
|
||||
|
||||
};
|
||||
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/users.conf".source = usersConf;
|
||||
|
||||
@ -150,7 +125,7 @@ in
|
||||
allowNullPassword = true;
|
||||
startSession = true;
|
||||
text = ''
|
||||
auth required pam_env.so
|
||||
auth required pam_env.so envfile=${config.system.build.pamEnvironment}
|
||||
auth required pam_permit.so
|
||||
|
||||
account required pam_permit.so
|
||||
|
@ -30,7 +30,7 @@ let
|
||||
label = mkOption {
|
||||
default = null;
|
||||
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.";
|
||||
};
|
||||
|
||||
|
@ -47,6 +47,41 @@ let
|
||||
|
||||
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
|
||||
|
||||
{
|
||||
@ -142,6 +177,21 @@ in
|
||||
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
|
||||
@ -249,12 +299,15 @@ in
|
||||
fi
|
||||
''}
|
||||
|
||||
|
||||
|
||||
# Run systemd-nspawn without startup notification (we'll
|
||||
# wait for the container systemd to signal readiness).
|
||||
EXIT_ON_REBOOT=1 NOTIFY_SOCKET= \
|
||||
exec ${config.systemd.package}/bin/systemd-nspawn \
|
||||
--keep-unit \
|
||||
-M "$INSTANCE" -D "$root" $extraFlags \
|
||||
$EXTRA_NSPAWN_FLAGS \
|
||||
--bind-ro=/nix/store \
|
||||
--bind-ro=/nix/var/nix/db \
|
||||
--bind-ro=/nix/var/nix/daemon-socket \
|
||||
@ -354,6 +407,7 @@ in
|
||||
${optionalString cfg.autoStart ''
|
||||
AUTO_START=1
|
||||
''}
|
||||
EXTRA_NSPAWN_FLAGS="${mkBindFlags cfg.bindMounts}"
|
||||
'';
|
||||
}) config.containers;
|
||||
|
||||
|
@ -285,6 +285,7 @@ in rec {
|
||||
tests.proxy = callTest tests/proxy.nix {};
|
||||
tests.quake3 = callTest tests/quake3.nix {};
|
||||
tests.runInMachine = callTest tests/run-in-machine.nix {};
|
||||
tests.sddm = callTest tests/sddm.nix {};
|
||||
tests.simple = callTest tests/simple.nix {};
|
||||
tests.tomcat = callTest tests/tomcat.nix {};
|
||||
tests.udisks2 = callTest tests/udisks2.nix {};
|
||||
|
@ -26,8 +26,8 @@ import ./make-test.nix (
|
||||
</head>
|
||||
<body onload="javascript:document.title='startup done'">
|
||||
<img src="file://${pkgs.fetchurl {
|
||||
url = "http://nixos.org/logo/nixos.svg";
|
||||
sha256 = "0p2iaqcx2cj24xqycfw1pi4i5461gnn0034lafpi99ph435x6z68";
|
||||
url = "http://nixos.org/logo/nixos-hex.svg";
|
||||
sha256 = "0wxpp65npdw2cg8m0cxc9qff1sb3b478cxpg1741d8951g948rg8";
|
||||
}}" />
|
||||
</body>
|
||||
</html>
|
||||
|
@ -171,7 +171,7 @@ let
|
||||
];
|
||||
|
||||
virtualisation.diskSize = 8 * 1024;
|
||||
virtualisation.memorySize = 768;
|
||||
virtualisation.memorySize = 1024;
|
||||
virtualisation.writableStore = true;
|
||||
|
||||
# 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.
|
||||
$machine->succeed("systemctl start systemd-udev-settle.service");
|
||||
subtest "udev-auto-load", sub {
|
||||
$machine->waitForUnit('systemd-udev-settle.service');
|
||||
$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
|
||||
, cdaSupport ? true, libcdio ? null, libcddb ? null
|
||||
, aacSupport ? true, faad2 ? null
|
||||
, midiSupport ? false, wildmidi ? null
|
||||
, wavpackSupport ? false, wavpack ? null
|
||||
, ffmpegSupport ? false, ffmpeg ? null
|
||||
# misc plugins
|
||||
@ -44,6 +45,7 @@ assert alsaSupport -> alsaLib != null;
|
||||
assert pulseSupport -> libpulseaudio != null;
|
||||
assert resamplerSupport -> libsamplerate != null;
|
||||
assert overloadSupport -> zlib != null;
|
||||
assert midiSupport -> wildmidi != null;
|
||||
assert wavpackSupport -> wavpack != null;
|
||||
assert remoteSupport -> curl != null;
|
||||
|
||||
@ -73,6 +75,7 @@ stdenv.mkDerivation rec {
|
||||
++ optional pulseSupport libpulseaudio
|
||||
++ optional resamplerSupport libsamplerate
|
||||
++ optional overloadSupport zlib
|
||||
++ optional midiSupport wildmidi
|
||||
++ optional wavpackSupport wavpack
|
||||
++ optional remoteSupport curl
|
||||
;
|
||||
|
@ -1,20 +1,26 @@
|
||||
{ stdenv
|
||||
, coreutils
|
||||
, fetchgit
|
||||
, fetchurl
|
||||
, makeWrapper
|
||||
, pkgconfig
|
||||
, clang
|
||||
, llvm
|
||||
, emscripten
|
||||
, openssl
|
||||
, libsndfile
|
||||
, libmicrohttpd
|
||||
, vim
|
||||
}:
|
||||
|
||||
with stdenv.lib.strings;
|
||||
|
||||
let
|
||||
|
||||
version = "8-1-2015";
|
||||
version = "2.0-a41";
|
||||
|
||||
src = fetchgit {
|
||||
url = git://git.code.sf.net/p/faudiostream/code;
|
||||
rev = "4db76fdc02b6aec8d15a5af77fcd5283abe963ce";
|
||||
sha256 = "f1ac92092ee173e4bcf6b2cb1ac385a7c390fb362a578a403b2b6edd5dc7d5d0";
|
||||
src = fetchurl {
|
||||
url = "http://downloads.sourceforge.net/project/faudiostream/faust-2.0.a41.tgz";
|
||||
sha256 = "1cq4x1cax0lswrcqv0limx5mjdi3187zlmh7cj2pndr0xq6b96cm";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
@ -31,19 +37,22 @@ let
|
||||
|
||||
inherit src;
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
buildInputs = [ makeWrapper llvm emscripten openssl libsndfile pkgconfig libmicrohttpd vim ];
|
||||
|
||||
|
||||
passthru = {
|
||||
inherit wrap wrapWithBuildEnv;
|
||||
};
|
||||
|
||||
|
||||
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
|
||||
# defines 'system' env var, so undefine that so faust detects the
|
||||
# correct system.
|
||||
unset system
|
||||
sed -e "232s/LLVM_STATIC_LIBS/LLVMLIBS/" -i compiler/Makefile.unix
|
||||
'';
|
||||
|
||||
# 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 = [
|
||||
coverage feedparser minimock sqlite3 mygpoclient intltool
|
||||
coverage minimock sqlite3 mygpoclient intltool
|
||||
gnome3.gnome_themes_standard gnome3.defaultIconTheme
|
||||
gnome3.gsettings_desktop_schemas
|
||||
];
|
||||
@ -27,8 +27,6 @@ in buildPythonPackage rec {
|
||||
|
||||
postPatch = "sed -ie 's/PYTHONPATH=src/PYTHONPATH=\$(PYTHONPATH):src/' makefile";
|
||||
|
||||
checkPhase = "make unittest";
|
||||
|
||||
preFixup = ''
|
||||
wrapProgram $out/bin/gpodder \
|
||||
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
|
||||
@ -40,17 +38,6 @@ in buildPythonPackage rec {
|
||||
postFixup = ''
|
||||
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 '{
|
||||
/import sys; sys.argv/d
|
||||
}'
|
||||
|
@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [ groff ];
|
||||
buildInputs = [ id3lib zlib ];
|
||||
|
||||
makeFlags = "PREFIX=$(out)";
|
||||
buildFlags = "clean all";
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
buildFlags = [ "clean" "all" ];
|
||||
|
||||
preInstall = ''
|
||||
mkdir -p $out/{bin,share/man/man1}
|
||||
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ libav libkeyfinder ];
|
||||
|
||||
makeFlagsArray = "PREFIX=$(out)";
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ stdenv, fetchurl, SDL , alsaLib, gtk, libjack2, ladspaH
|
||||
, ladspaPlugins, libsamplerate, libsndfile, pkgconfig, libpulseaudio }:
|
||||
{ stdenv, fetchurl, makeWrapper, SDL , alsaLib, gtk, libjack2, ladspaH
|
||||
, ladspaPlugins, libsamplerate, libsndfile, pkgconfig, libpulseaudio, lame
|
||||
, vorbisTools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mhwaveedit-${version}";
|
||||
@ -10,15 +11,19 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "010rk4mr631s440q9cfgdxx2avgzysr9aq52diwdlbq9cddifli3";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ SDL alsaLib gtk libjack2 ladspaH libsamplerate libsndfile
|
||||
pkgconfig libpulseaudio
|
||||
];
|
||||
buildInputs = [ SDL alsaLib gtk libjack2 ladspaH libsamplerate libsndfile
|
||||
pkgconfig libpulseaudio makeWrapper ];
|
||||
|
||||
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; {
|
||||
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;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
|
@ -10,7 +10,7 @@ pythonPackages.buildPythonPackage rec {
|
||||
sha256 = "0hhdss4i5436dj37pndxk81a4g3g8f6zqjyv04lhpqcww01290as";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ mopidy ];
|
||||
propagatedBuildInputs = with pythonPackages; [ mopidy configobj ];
|
||||
|
||||
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
|
||||
, setuptools, utillinux, makeWrapper, substituteAll }:
|
||||
, setuptools, utillinux, makeWrapper, substituteAll, autoreconfHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "morituri-${version}";
|
||||
version = "0.2.3";
|
||||
version = "0.2.3.20151109";
|
||||
namePrefix = "";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://thomas.apestaart.org/download/morituri/${name}.tar.bz2";
|
||||
sha256 = "1b30bs1y8azl04izsrl01gw9ys0lhzkn5afxi4p8qbiri2h4v210";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/thomasvs/morituri.git";
|
||||
fetchSubmodules = true;
|
||||
rev = "135b2f7bf27721177e3aeb1d26403f1b29116599";
|
||||
sha256 = "1ccxq1spny6xgd7nqwn13n9nqa00ay0nhflg3vbdkvbirh8fgxwq";
|
||||
};
|
||||
|
||||
pythonPath = [
|
||||
pygobject gst_python pythonPackages.musicbrainzngs
|
||||
pythonPackages.pycdio pythonPackages.pyxdg setuptools
|
||||
pythonPackages.CDDB
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
buildInputs = [
|
||||
python cdparanoia cdrdao utillinux makeWrapper
|
||||
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
|
||||
--- morituri-0.2.3-orig/doc/Makefile.in 2014-12-23 12:44:46.222410092 +0100
|
||||
+++ morituri-0.2.3/doc/Makefile.in 2014-12-23 12:46:49.619756940 +0100
|
||||
@@ -486,7 +486,7 @@ morituri.ics: $(top_srcdir)/morituri.doa
|
||||
-moap doap -f $(top_srcdir)/morituri.doap ical > morituri.ics
|
||||
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
||||
index c115c2c..78c883e 100644
|
||||
--- a/doc/Makefile.am
|
||||
+++ b/doc/Makefile.am
|
||||
@@ -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
|
||||
- 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:
|
||||
@rm -rf reference
|
||||
diff -Nurp morituri-0.2.3-orig/morituri/common/program.py morituri-0.2.3/morituri/common/program.py
|
||||
--- morituri-0.2.3-orig/morituri/common/program.py 2014-12-23 12:44:46.218410048 +0100
|
||||
+++ morituri-0.2.3/morituri/common/program.py 2014-12-23 12:46:49.647757245 +0100
|
||||
diff --git a/morituri/common/program.py b/morituri/common/program.py
|
||||
index d340fdd..15cb751 100644
|
||||
--- a/morituri/common/program.py
|
||||
+++ b/morituri/common/program.py
|
||||
@@ -92,13 +92,13 @@ class Program(log.Loggable):
|
||||
"""
|
||||
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):
|
||||
"""
|
||||
diff -Nurp morituri-0.2.3-orig/morituri/extern/python-command/scripts/help2man morituri-0.2.3/morituri/extern/python-command/scripts/help2man
|
||||
--- morituri-0.2.3-orig/morituri/extern/python-command/scripts/help2man 2014-12-23 12:44:46.206409916 +0100
|
||||
+++ morituri-0.2.3/morituri/extern/python-command/scripts/help2man 2014-12-23 12:46:49.631757074 +0100
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!@python@/bin/python
|
||||
|
||||
# -*- 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
|
||||
Submodule morituri/extern/python-command contains modified content
|
||||
diff --git a/morituri/program/cdparanoia.py b/morituri/program/cdparanoia.py
|
||||
index 46176d5..fce14a5 100644
|
||||
--- a/morituri/program/cdparanoia.py
|
||||
+++ b/morituri/program/cdparanoia.py
|
||||
@@ -278,7 +278,7 @@ class ReadTrackTask(log.Loggable, task.Task):
|
||||
stopTrack, stopOffset)
|
||||
|
||||
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)s %(release)s")
|
||||
|
||||
diff -Nurp morituri-0.2.3-orig/morituri/program/cdrdao.py morituri-0.2.3/morituri/program/cdrdao.py
|
||||
--- morituri-0.2.3-orig/morituri/program/cdrdao.py 2014-12-23 12:44:46.202409873 +0100
|
||||
+++ morituri-0.2.3/morituri/program/cdrdao.py 2014-12-23 12:46:49.667757463 +0100
|
||||
diff --git a/morituri/program/cdrdao.py b/morituri/program/cdrdao.py
|
||||
index c6fba64..c4d0306 100644
|
||||
--- a/morituri/program/cdrdao.py
|
||||
+++ b/morituri/program/cdrdao.py
|
||||
@@ -257,7 +257,7 @@ class CDRDAOTask(ctask.PopenTask):
|
||||
|
||||
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
|
||||
, minixml, pkgconfig, zlib
|
||||
, minixml, pkgconfig, zlib, liblo
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "zynaddsubfx-${version}";
|
||||
version = "2.4.4";
|
||||
version = "2.5.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/zynaddsubfx/zynaddsubfx-${version}.tar.xz";
|
||||
sha256 = "15byz08p5maf3v8l1zz11xan6s0qcfasjf1b81xc8rffh13x5f53";
|
||||
url = "mirror://sourceforge/zynaddsubfx/zynaddsubfx-${version}.tar.gz";
|
||||
sha256 = "11yrady7xwfrzszkk2fvq81ymv99mq474h60qnirk27khdygk24m";
|
||||
};
|
||||
|
||||
buildInputs = [ alsaLib libjack2 fftw fltk13 libjpeg minixml zlib ];
|
||||
buildInputs = [ alsaLib libjack2 fftw fltk13 libjpeg minixml zlib liblo ];
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://zynaddsubfx.sourceforge.net;
|
||||
license = licenses.gpl2;
|
||||
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
|
||||
index 6618455..5356e76 100644
|
||||
index cfc9940..5bf5a6a 100644
|
||||
--- a/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);
|
||||
|
||||
QFile in(m_path);
|
||||
@ -14,3 +23,6 @@ index 6618455..5356e76 100644
|
||||
|
||||
in.open(QIODevice::ReadOnly);
|
||||
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";
|
||||
};
|
||||
|
||||
patches = [ ./sddm-ignore-config-mtime.patch ];
|
||||
patches = [
|
||||
./0001-ignore-config-mtime.patch
|
||||
./0002-fix-ConfigReader-QStringList-corruption.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake makeQtWrapper pkgconfig qttools ];
|
||||
|
||||
|
@ -106,16 +106,16 @@ rec {
|
||||
|
||||
anyedittools = buildEclipsePlugin rec {
|
||||
name = "anyedit-${version}";
|
||||
version = "2.5.0.201510241327";
|
||||
version = "2.6.0.201511291145";
|
||||
|
||||
srcFeature = fetchurl {
|
||||
url = "http://andrei.gmxhome.de/eclipse/features/AnyEditTools_${version}.jar";
|
||||
sha256 = "01qaxg1b4n7y7g1xdkx1bnmpwqydln270mk14l4pl35q3c88s5nc";
|
||||
sha256 = "1vllci75qcd28b6hn2jz29l6cabxx9ql5i6l9cwq9rxp49dhc96b";
|
||||
};
|
||||
|
||||
srcPlugin = fetchurl {
|
||||
url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.5.0/de.loskutov.anyedit.AnyEditTools_${version}.jar";
|
||||
sha256 = "0m4qxkscl5xih8x1znbrih4jh28wky4l62spfif9zw0s7mgl117c";
|
||||
url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.6.0/de.loskutov.anyedit.AnyEditTools_${version}.jar";
|
||||
sha256 = "0mgq0ylfa7srjf7azyx0kbahlsjf0sdpazqphzx4f0bfn1l328s4";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
@ -317,11 +317,11 @@ rec {
|
||||
|
||||
scala = buildEclipseUpdateSite rec {
|
||||
name = "scala-${version}";
|
||||
version = "4.1.1.20150911";
|
||||
version = "4.1.1.20151201";
|
||||
|
||||
src = fetchzip {
|
||||
url = "http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/update-site.zip";
|
||||
sha256 = "03g24sjivm7kzy64wwjs4ihf9vrb6703lb7bx3jafxzcwqm0pj1i";
|
||||
sha256 = "19iqaha9c5n5hkyn83xj8znkvshm4823d65zigbj97fz8gzrr0la";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
@ -335,16 +335,16 @@ rec {
|
||||
|
||||
testng = buildEclipsePlugin rec {
|
||||
name = "testng-${version}";
|
||||
version = "6.9.8.201510130443";
|
||||
version = "6.9.10.201511281504";
|
||||
|
||||
srcFeature = fetchurl {
|
||||
url = "http://beust.com/eclipse/features/org.testng.eclipse_${version}.jar";
|
||||
sha256 = "0g0dva1zpqk0rz0vgr025g2cfc47snr857fsqcrssmp9qmy8x0i0";
|
||||
sha256 = "1kjaifa1fc16yh82bzp5xa5pn3kgrpgc5jq55lyvgz29vjj6ss97";
|
||||
};
|
||||
|
||||
srcPlugin = fetchurl {
|
||||
url = "http://beust.com/eclipse/plugins/org.testng.eclipse_${version}.jar";
|
||||
sha256 = "16mnvqkakixqp3bcnyx6x2iwkhnv3k4q561c97kssz98xsrr8f54";
|
||||
sha256 = "1njz4ynjwnhjjbsszfgqyjn2ixxzjv8qvnc7dqz8jldrz3jrjf07";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -212,14 +212,14 @@ in
|
||||
|
||||
android-studio = buildAndroidStudio rec {
|
||||
name = "android-studio-${version}";
|
||||
version = "1.4.0.10";
|
||||
build = "141.2288178";
|
||||
version = "1.5.0.4";
|
||||
build = "141.2422023";
|
||||
description = "Android development environment based on IntelliJ IDEA";
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
|
||||
"/android-studio-ide-${build}-linux.zip";
|
||||
sha256 = "04zzzk6xlvzip6klxvs4zz2wyfyn3w9b5jwilzbqjidiz2d3va57";
|
||||
sha256 = "1sjxs9cq7mdalxmzp6v2gwbg1w8p43c2cp5j4v212w66h5rqv11z";
|
||||
};
|
||||
};
|
||||
|
||||
@ -273,25 +273,25 @@ in
|
||||
|
||||
pycharm-community = buildPycharm rec {
|
||||
name = "pycharm-community-${version}";
|
||||
version = "5.0";
|
||||
build = "143.589";
|
||||
version = "5.0.1";
|
||||
build = "143.595";
|
||||
description = "PyCharm Community Edition";
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://download-cf.jetbrains.com/python/${name}.tar.gz";
|
||||
sha256 = "01q51m6rpyw296imiglbadzfr0r91wvyrxdid683yl7f5v73wzwh";
|
||||
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
||||
sha256 = "14m3imy64cp2l9pnmknxbjzj3z30rx88r4brz9d5xk5qailjg2wf";
|
||||
};
|
||||
};
|
||||
|
||||
pycharm-professional = buildPycharm rec {
|
||||
name = "pycharm-professional-${version}";
|
||||
version = "5.0";
|
||||
build = "143.589";
|
||||
version = "5.0.1";
|
||||
build = "143.595";
|
||||
description = "PyCharm Professional Edition";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download-cf.jetbrains.com/python/${name}.tar.gz";
|
||||
sha256 = "16lwg00dl03gwj4dqihdrn15p1fy8513srw2dslna1w1glfajv06";
|
||||
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
||||
sha256 = "102sfjvchk80911w3qpjsp30wvq73kgpwyqcqdgqxcgm2vqh3183";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
{ stdenv, pythonPackages, fetchgit }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
name = "leo-editor-${version}";
|
||||
version = "5.1";
|
||||
|
||||
namePrefix = "";
|
||||
version = "5.1";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/leo-editor/leo-editor";
|
||||
@ -13,6 +13,11 @@ pythonPackages.buildPythonPackage rec {
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ pyqt4 sqlite3 ];
|
||||
|
||||
|
||||
patchPhase = ''
|
||||
rm setup.cfg
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://leoeditor.com";
|
||||
description = "A powerful folding editor";
|
||||
|
@ -4,10 +4,10 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "grass-7.0.1";
|
||||
name = "grass-7.0.2";
|
||||
src = fetchurl {
|
||||
url = http://grass.osgeo.org/grass70/source/grass-7.0.1.tar.gz;
|
||||
sha256 = "0ps0xfsgls1hai8fx8x74ajh3560p1yjql2sg02lpqpx30bdv1q9";
|
||||
url = http://grass.osgeo.org/grass70/source/grass-7.0.2.tar.gz;
|
||||
sha256 = "02qrdgn46gxr60amxwax4b8fkkmhmjxi6qh4yfvpbii6ai6diarf";
|
||||
};
|
||||
|
||||
buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite pkgconfig cairo
|
||||
|
@ -2,15 +2,15 @@
|
||||
libharu, opencv, vigra, postgresql }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "saga-2.2.1";
|
||||
name = "saga-2.2.2";
|
||||
|
||||
buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma jasper ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://sourceforge.net/projects/saga-gis/files/SAGA%20-%202.2/SAGA%202.2.1/saga_2.2.1.tar.gz";
|
||||
sha256 = "325e0890c28dc19c4ec727f58672be67480b2a4dd6604252c0cc4cc08aad34d0";
|
||||
url = "http://downloads.sourceforge.net/project/saga-gis/SAGA%20-%202.2/SAGA%202.2.2/saga-2.2.2.tar.gz";
|
||||
sha256 = "031cd70b7ec248f32f955a9316aefc7f7ab283c5129c49aa4bd748717d20357e";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, libX11, procps, python, qt5 }:
|
||||
|
||||
let version = "7.0"; in
|
||||
let version = "7.1"; in
|
||||
stdenv.mkDerivation {
|
||||
name = "apitrace-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "0nn3z7i6cd4zkmms6jpp1v2q194gclbs06v0f5hyiwcsqaxzsg5b";
|
||||
sha256 = "1n2gmsjnpyam7isg7n1ksggyh6y1l8drvx0a93bnvbcskr7jiz9a";
|
||||
rev = version;
|
||||
repo = "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 {
|
||||
name = "jbrout-338";
|
||||
buildPythonPackage rec {
|
||||
name = "jbrout-${version}";
|
||||
version = "338";
|
||||
|
||||
src = fetchsvn {
|
||||
url = "http://jbrout.googlecode.com/svn/trunk";
|
||||
rev = "338";
|
||||
rev = version;
|
||||
sha256 = "0257ni4vkxgd0qhs73fw5ppw1qpf11j8fgwsqc03b1k1yv3hk4hf";
|
||||
};
|
||||
|
||||
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
|
||||
|
||||
substituteInPlace setup.py --replace "version=__version__" "version=baseVersion"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
echo '#!/bin/sh' > $out/bin/jbrout
|
||||
echo "python $out/lib/python2.7/site-packages/jbrout-src-py2.7.egg/jbrout/jbrout.py" >> $out/bin/jbrout
|
||||
mkdir $out/bin
|
||||
echo "python $out/${python.sitePackages}/jbrout/jbrout.py" > $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 = {
|
||||
homepage = "http://code.google.com/p/jbrout";
|
||||
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
|
||||
, 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
|
||||
, gnome_doc_utils, hicolor_icon_theme }:
|
||||
|
||||
@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkitgtk24x
|
||||
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
|
||||
makeWrapper gnome_doc_utils gnome3.rest
|
||||
gnome3.defaultIconTheme ];
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, cairo, colord, glib, gtk3, gusb, intltool, itstool, libusb
|
||||
, libxml2, makeWrapper, pkgconfig, saneBackends, systemd, vala }:
|
||||
|
||||
let version = "3.19.1"; in
|
||||
let version = "3.19.2"; in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "simple-scan-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
sha256 = "1d2a8cncq36ly60jpz0fzdw1lgxynl6lyrlw0q66yijlxqn81ynr";
|
||||
sha256 = "08454ky855iaiq5wn9rdbfal3i4fjss5fn5mg6cmags50wy9spsg";
|
||||
url = "https://launchpad.net/simple-scan/3.19/${version}/+download/${name}.tar.xz";
|
||||
};
|
||||
|
||||
@ -14,6 +14,13 @@ stdenv.mkDerivation rec {
|
||||
systemd vala ];
|
||||
nativeBuildInputs = [ intltool itstool makeWrapper pkgconfig ];
|
||||
|
||||
configureFlags = [ "--disable-packagekit" ];
|
||||
|
||||
preBuild = ''
|
||||
# Clean up stale generated .c files still referencing packagekit headers:
|
||||
make clean
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = true;
|
||||
|
@ -1,34 +1,28 @@
|
||||
a @ { libXt, libX11, libXext, xextproto, xproto, gsl, aalib, zlib, intltool, gettext, perl, ... }:
|
||||
let
|
||||
fetchurl = a.fetchurl;
|
||||
{ stdenv, fetchurl, aalib, gsl, libpng, libX11, xproto, libXext
|
||||
, xextproto, libXt, zlib, gettext, intltool, perl }:
|
||||
|
||||
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 {
|
||||
url = "mirror://sourceforge/xaos/xaos-${version}.tar.gz";
|
||||
url = "mirror://sourceforge/xaos/${name}.tar.gz";
|
||||
sha256 = "15cd1cx1dyygw6g2nhjqq3bsfdj8sj8m4va9n75i0f3ryww3x7wq";
|
||||
};
|
||||
|
||||
inherit buildInputs;
|
||||
configureFlags = [];
|
||||
buildInputs = [
|
||||
aalib gsl libpng libX11 xproto libXext xextproto
|
||||
libXt zlib gettext intltool perl
|
||||
];
|
||||
|
||||
/* doConfigure should be removed if not needed */
|
||||
phaseNames = ["preConfigure" "doConfigure" "doMakeInstall"];
|
||||
|
||||
preConfigure = a.fullDepEntry (''
|
||||
preConfigure = ''
|
||||
sed -e s@/usr/@"$out/"@g -i configure $(find . -name 'Makefile*')
|
||||
mkdir -p $out/share/locale
|
||||
'') ["doUnpack" "minInit" "defEnsureDir"];
|
||||
'';
|
||||
|
||||
name = "xaos-" + version;
|
||||
meta = {
|
||||
homepage = http://xaos.sourceforge.net/;
|
||||
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 {
|
||||
name = "calibre-${meta.version}";
|
||||
version = "2.45.0";
|
||||
name = "calibre-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/kovidgoyal/calibre/releases/download/v${meta.version}/${name}.tar.xz";
|
||||
sha256 = "1ffqvnjqmplcpa398809gp4d4l7nqc6k8ky255mdkabfcdvf3kk3";
|
||||
url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
||||
sha256 = "1s3wrrvp2d0mczs09g2xkkknvlk3max6ws7awpss5kkdpjvay6ma";
|
||||
};
|
||||
|
||||
inherit python;
|
||||
@ -58,11 +59,11 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
version = "2.44.1";
|
||||
description = "Comprehensive e-book software";
|
||||
homepage = http://calibre-ebook.com;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ viric iElectric pSub AndersonTorres ];
|
||||
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, ... } :
|
||||
let
|
||||
fetchurl = a.fetchurl;
|
||||
s = import ./src-info-for-gphotofs.nix;
|
||||
{ stdenv, fetchurl, libtool, pkgconfig, libgphoto2, fuse, glib }:
|
||||
|
||||
version = a.lib.attrByPath ["version"] s.version a;
|
||||
buildInputs = with a; [
|
||||
libgphoto2 fuse pkgconfig glib libtool
|
||||
];
|
||||
in
|
||||
rec {
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gphoto2fs-${version}";
|
||||
version = "0.5.0";
|
||||
src = fetchurl {
|
||||
url = s.url;
|
||||
sha256 = s.hash;
|
||||
url="mirror://sourceforge/gphoto/gphotofs/${version}/gphotofs-0.5.tar.bz2";
|
||||
sha256 = "1k23ncbsbh64r7kz050bg31jqamchyswgg9izhzij758d7gc8vk7";
|
||||
};
|
||||
|
||||
inherit buildInputs;
|
||||
configureFlags = [];
|
||||
buildInputs = [
|
||||
libgphoto2 fuse pkgconfig glib libtool
|
||||
];
|
||||
|
||||
/* doConfigure should be removed if not needed */
|
||||
phaseNames = ["doConfigure" "doMakeInstall"];
|
||||
|
||||
name = "gphoto2fs-" + version;
|
||||
meta = {
|
||||
description = "Fuse FS to mount a digital camera";
|
||||
maintainers = [
|
||||
a.lib.maintainers.raskin
|
||||
];
|
||||
platforms = [
|
||||
"i686-linux" "x86_64-linux"
|
||||
stdenv.lib.maintainers.raskin
|
||||
];
|
||||
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. */
|
||||
|
||||
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;
|
||||
preCheck = ''
|
||||
patchShebangs testo
|
||||
substituteInPlace testo \
|
||||
--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; {
|
||||
description = "Convert, upload and download data from GPS and Map programs";
|
||||
|
@ -2,15 +2,17 @@
|
||||
, libX11, libXext }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.7";
|
||||
version = "1.8";
|
||||
name = "mupdf-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
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;
|
||||
|
||||
@ -45,7 +47,7 @@ stdenv.mkDerivation rec {
|
||||
Name: mupdf
|
||||
Description: Library for rendering PDF documents
|
||||
Requires: freetype2 libopenjp2 libcrypto
|
||||
Version: 1.3
|
||||
Version: ${version}
|
||||
Libs: -L$out/lib -lmupdf
|
||||
Cflags: -I$out/include
|
||||
EOF
|
||||
|
@ -32,14 +32,15 @@ pythonPackages.buildPythonPackage {
|
||||
matplotlib beautifulsoup4 pygtk lxml ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
||||
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)}
|
||||
|
||||
substituteInPlace ocrolib/{common,default}.py --replace /usr/local $out
|
||||
'';
|
||||
|
||||
doCheck = false; # fails
|
||||
checkPhase = ''
|
||||
patchShebangs .
|
||||
substituteInPlace ./run-test \
|
||||
|
@ -16,10 +16,10 @@ python27Packages.buildPythonPackage rec {
|
||||
|
||||
doCheck = false;
|
||||
|
||||
setupPyBuildFlags = ["-i"];
|
||||
|
||||
postPatch = ''
|
||||
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 = ''
|
||||
|
@ -27,12 +27,12 @@ pythonPackages.buildPythonPackage rec {
|
||||
# string, which allows setting an explicit MIME type.
|
||||
patches = [ ./pytrainer-webkit.patch ];
|
||||
|
||||
pythonPath = with pythonPackages; [
|
||||
propagatedBuildInputs = with pythonPackages; [
|
||||
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.
|
||||
dontPatchELF = true;
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, buildPythonPackage, python, fetchurl }:
|
||||
{ stdenv, fetchurl, buildPythonPackage, python, w3m }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
name = "ranger-1.7.1";
|
||||
@ -17,4 +17,14 @@ buildPythonPackage rec {
|
||||
};
|
||||
|
||||
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