Merge remote-tracking branch 'upstream/staging' into binutils-wrapper

This commit is contained in:
John Ericson 2017-12-13 16:14:47 -05:00
commit a0b1ebeee9
803 changed files with 17167 additions and 12293 deletions

6
.github/CODEOWNERS vendored
View file

@ -84,3 +84,9 @@
# https://github.com/NixOS/nixpkgs/issues/31401 # https://github.com/NixOS/nixpkgs/issues/31401
/lib/maintainers.nix @ghost /lib/maintainers.nix @ghost
/lib/licenses.nix @ghost /lib/licenses.nix @ghost
# Qt / KDE
/pkgs/applications/kde @ttuegel
/pkgs/desktops/plasma-5 @ttuegel
/pkgs/development/libraries/kde-frameworks @ttuegel
/pkgs/development/libraries/qt-5 @ttuegel

View file

@ -134,7 +134,7 @@ with
```nix ```nix
with import <nixpkgs> {}; with import <nixpkgs> {};
python35.withPackages (ps: [ps.numpy ps.toolz]) (python35.withPackages (ps: [ps.numpy ps.toolz])).env
``` ```
Executing `nix-shell` gives you again a Nix shell from which you can run Python. Executing `nix-shell` gives you again a Nix shell from which you can run Python.

View file

@ -20,7 +20,7 @@ For daily builds (beta and nightly) use either rustup from
nixpkgs or use the [Rust nightlies nixpkgs or use the [Rust nightlies
overlay](#using-the-rust-nightlies-overlay). overlay](#using-the-rust-nightlies-overlay).
## Packaging Rust applications ## Compiling Rust applications with Cargo
Rust applications are packaged by using the `buildRustPackage` helper from `rustPlatform`: Rust applications are packaged by using the `buildRustPackage` helper from `rustPlatform`:
@ -56,6 +56,167 @@ checksum can be then take from the failed build.
To install crates with nix there is also an experimental project called To install crates with nix there is also an experimental project called
[nixcrates](https://github.com/fractalide/nixcrates). [nixcrates](https://github.com/fractalide/nixcrates).
## Compiling Rust crates using Nix instead of Cargo
When run, `cargo build` produces a file called `Cargo.lock`,
containing pinned versions of all dependencies. Nixpkgs contains a
tool called `carnix` (`nix-env -iA nixos.carnix`), which can be used
to turn a `Cargo.lock` into a Nix expression.
That Nix expression calls `rustc` directly (hence bypassing Cargo),
and can be used to compile a crate and all its dependencies. Here is
an example for a minimal `hello` crate:
$ cargo new hello
$ cd hello
$ cargo build
Compiling hello v0.1.0 (file:///tmp/hello)
Finished dev [unoptimized + debuginfo] target(s) in 0.20 secs
$ carnix -o hello.nix --src ./. Cargo.lock --standalone
$ nix-build hello.nix
Now, the file produced by the call to `carnix`, called `hello.nix`, looks like:
```
with import <nixpkgs> {};
let kernel = buildPlatform.parsed.kernel.name;
# ... (content skipped)
hello_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
crateName = "hello";
version = "0.1.0";
authors = [ "Authorname <user@example.com>" ];
src = ./.;
inherit dependencies buildDependencies features;
};
in
rec {
hello_0_1_0 = hello_0_1_0_ rec {};
}
```
In particular, note that the argument given as `--src` is copied
verbatim to the source. If we look at a more complicated
dependencies, for instance by adding a single line `libc="*"` to our
`Cargo.toml`, we first need to run `cargo build` to update the
`Cargo.lock`. Then, `carnix` needs to be run again, and produces the
following nix file:
```
with import <nixpkgs> {};
let kernel = buildPlatform.parsed.kernel.name;
# ... (content skipped)
hello_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
crateName = "hello";
version = "0.1.0";
authors = [ "Jörg Thalheim <joerg@thalheim.io>" ];
src = ./.;
inherit dependencies buildDependencies features;
};
libc_0_2_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
crateName = "libc";
version = "0.2.34";
authors = [ "The Rust Project Developers" ];
sha256 = "11jmqdxmv0ka10ay0l8nzx0nl7s2lc3dbrnh1mgbr2grzwdyxi2s";
inherit dependencies buildDependencies features;
};
in
rec {
hello_0_1_0 = hello_0_1_0_ rec {
dependencies = [ libc_0_2_34 ];
};
libc_0_2_34_features."default".from_hello_0_1_0__default = true;
libc_0_2_34 = libc_0_2_34_ rec {
features = mkFeatures libc_0_2_34_features;
};
libc_0_2_34_features."use_std".self_default = hasDefault libc_0_2_34_features;
}
```
Here, the `libc` crate has no `src` attribute, so `buildRustCrate`
will fetch it from [crates.io](https://crates.io). A `sha256`
attribute is still needed for Nix purity.
Some crates require external libraries. For crates from
[crates.io](https://crates.io), such libraries can be specified in
`defaultCrateOverrides` package in nixpkgs itself.
Starting from that file, one can add more overrides, to add features
or build inputs by overriding the hello crate in a seperate file.
```
with import <nixpkgs> {};
(import ./hello.nix).hello_0_1_0.override {
crateOverrides = defaultCrateOverrides // {
hello = attrs: { buildInputs = [ openssl ]; };
};
}
```
Here, `crateOverrides` is expected to be a attribute set, where the
key is the crate name without version number and the value a function.
The function gets all attributes passed to `buildRustCrate` as first
argument and returns a set that contains all attribute that should be
overwritten.
For more complicated cases, such as when parts of the crate's
derivation depend on the the crate's version, the `attrs` argument of
the override above can be read, as in the following example, which
patches the derivation:
```
with import <nixpkgs> {};
(import ./hello.nix).hello_0_1_0.override {
crateOverrides = defaultCrateOverrides // {
hello = attrs: lib.optionalAttrs (lib.versionAtLeast attrs.version "1.0") {
postPatch = ''
substituteInPlace lib/zoneinfo.rs \
--replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
'';
};
};
}
```
Another situation is when we want to override a nested
dependency. This actually works in the exact same way, since the
`crateOverrides` parameter is forwarded to the crate's
dependencies. For instance, to override the build inputs for crate
`libc` in the example above, where `libc` is a dependency of the main
crate, we could do:
```
with import <nixpkgs> {};
(import hello.nix).hello_0_1_0.override {
crateOverrides = defaultCrateOverrides // {
libc = attrs: { buildInputs = []; };
};
}
```
Three more parameters can be overridden:
- The version of rustc used to compile the crate:
```
hello_0_1_0.override { rust = pkgs.rust; };
```
- Whether to build in release mode or debug mode (release mode by
default):
```
hello_0_1_0.override { release = false; };
```
- Whether to print the commands sent to rustc when building
(equivalent to `--verbose` in cargo:
```
hello_0_1_0.override { verbose = false; };
```
## Using the Rust nightlies overlay ## Using the Rust nightlies overlay
Mozilla provides an overlay for nixpkgs to bring a nightly version of Rust into scope. Mozilla provides an overlay for nixpkgs to bring a nightly version of Rust into scope.

View file

@ -667,8 +667,10 @@ cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el
<section xml:id="sec-weechat"> <section xml:id="sec-weechat">
<title>Weechat</title> <title>Weechat</title>
<para> <para>
Weechat can currently be configured to include your choice of plugins. Weechat can be configured to include your choice of plugins, reducing its
To make use of this functionality, install an expression that overrides its configuration such as closure size from the default configuration which includes all available
plugins. To make use of this functionality, install an expression that
overrides its configuration such as
<programlisting>weechat.override {configure = {availablePlugins, ...}: { <programlisting>weechat.override {configure = {availablePlugins, ...}: {
plugins = with availablePlugins; [ python perl ]; plugins = with availablePlugins; [ python perl ];
} }

View file

@ -251,10 +251,17 @@ genericBuild
<varlistentry> <varlistentry>
<term><varname>enableParallelBuilding</varname></term> <term><varname>enableParallelBuilding</varname></term>
<listitem><para>If set, <literal>stdenv</literal> will pass specific <listitem>
flags to <literal>make</literal> and other build tools to enable <para>If set to <literal>true</literal>, <literal>stdenv</literal> will
parallel building with up to <literal>build-cores</literal> pass specific flags to <literal>make</literal> and other build tools to
workers.</para></listitem> enable parallel building with up to <literal>build-cores</literal>
workers.</para>
<para>Unless set to <literal>false</literal>, some build systems with good
support for parallel building including <literal>cmake</literal>,
<literal>meson</literal>, and <literal>qmake</literal> will set it to
<literal>true</literal>.</para>
</listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>

View file

@ -80,6 +80,7 @@
benley = "Benjamin Staffin <benley@gmail.com>"; benley = "Benjamin Staffin <benley@gmail.com>";
bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>"; bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>";
benwbooth = "Ben Booth <benwbooth@gmail.com>"; benwbooth = "Ben Booth <benwbooth@gmail.com>";
berce = "Bert Moens <bert.moens@gmail.com>";
berdario = "Dario Bertini <berdario@gmail.com>"; berdario = "Dario Bertini <berdario@gmail.com>";
bergey = "Daniel Bergey <bergey@teallabs.org>"; bergey = "Daniel Bergey <bergey@teallabs.org>";
bhipple = "Benjamin Hipple <bhipple@protonmail.com>"; bhipple = "Benjamin Hipple <bhipple@protonmail.com>";
@ -204,6 +205,7 @@
elijahcaine = "Elijah Caine <elijahcainemv@gmail.com>"; elijahcaine = "Elijah Caine <elijahcainemv@gmail.com>";
elitak = "Eric Litak <elitak@gmail.com>"; elitak = "Eric Litak <elitak@gmail.com>";
ellis = "Ellis Whitehead <nixos@ellisw.net>"; ellis = "Ellis Whitehead <nixos@ellisw.net>";
enzime = "Michael Hoang <enzime@users.noreply.github.com>";
eperuffo = "Emanuele Peruffo <info@emanueleperuffo.com>"; eperuffo = "Emanuele Peruffo <info@emanueleperuffo.com>";
epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>"; epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
eqyiel = "Ruben Maher <r@rkm.id.au>"; eqyiel = "Ruben Maher <r@rkm.id.au>";
@ -288,6 +290,7 @@
ironpinguin = "Michele Catalano <michele@catalano.de>"; ironpinguin = "Michele Catalano <michele@catalano.de>";
ivan-tkatchev = "Ivan Tkatchev <tkatchev@gmail.com>"; ivan-tkatchev = "Ivan Tkatchev <tkatchev@gmail.com>";
ixmatus = "Parnell Springmeyer <parnell@digitalmentat.com>"; ixmatus = "Parnell Springmeyer <parnell@digitalmentat.com>";
izorkin = "Yurii Izorkin <Izorkin@gmail.com>";
j-keck = "Jürgen Keck <jhyphenkeck@gmail.com>"; j-keck = "Jürgen Keck <jhyphenkeck@gmail.com>";
jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>"; jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>";
jammerful = "jammerful <jammerful@gmail.com>"; jammerful = "jammerful <jammerful@gmail.com>";
@ -389,6 +392,7 @@
manveru = "Michael Fellinger <m.fellinger@gmail.com>"; manveru = "Michael Fellinger <m.fellinger@gmail.com>";
marcweber = "Marc Weber <marco-oweber@gmx.de>"; marcweber = "Marc Weber <marco-oweber@gmx.de>";
markus1189 = "Markus Hauck <markus1189@gmail.com>"; markus1189 = "Markus Hauck <markus1189@gmail.com>";
markuskowa = "Markus Kowalewski <markus.kowalewski@gmail.com>";
markWot = "Markus Wotringer <markus@wotringer.de>"; markWot = "Markus Wotringer <markus@wotringer.de>";
martijnvermaat = "Martijn Vermaat <martijn@vermaat.name>"; martijnvermaat = "Martijn Vermaat <martijn@vermaat.name>";
martingms = "Martin Gammelsæter <martin@mg.am>"; martingms = "Martin Gammelsæter <martin@mg.am>";
@ -400,6 +404,7 @@
mbakke = "Marius Bakke <mbakke@fastmail.com>"; mbakke = "Marius Bakke <mbakke@fastmail.com>";
mbbx6spp = "Susan Potter <me@susanpotter.net>"; mbbx6spp = "Susan Potter <me@susanpotter.net>";
mbe = "Brandon Edens <brandonedens@gmail.com>"; mbe = "Brandon Edens <brandonedens@gmail.com>";
mbode = "Maximilian Bode <maxbode@gmail.com>";
mboes = "Mathieu Boespflug <mboes@tweag.net>"; mboes = "Mathieu Boespflug <mboes@tweag.net>";
mbrgm = "Marius Bergmann <marius@yeai.de>"; mbrgm = "Marius Bergmann <marius@yeai.de>";
mcmtroffaes = "Matthias C. M. Troffaes <matthias.troffaes@gmail.com>"; mcmtroffaes = "Matthias C. M. Troffaes <matthias.troffaes@gmail.com>";
@ -414,6 +419,7 @@
michaelpj = "Michael Peyton Jones <michaelpj@gmail.com>"; michaelpj = "Michael Peyton Jones <michaelpj@gmail.com>";
michalrus = "Michal Rus <m@michalrus.com>"; michalrus = "Michal Rus <m@michalrus.com>";
michelk = "Michel Kuhlmann <michel@kuhlmanns.info>"; michelk = "Michel Kuhlmann <michel@kuhlmanns.info>";
mickours = "Michael Mercier <mickours@gmail.com<";
midchildan = "midchildan <midchildan+nix@gmail.com>"; midchildan = "midchildan <midchildan+nix@gmail.com>";
mikefaille = "Michaël Faille <michael@faille.io>"; mikefaille = "Michaël Faille <michael@faille.io>";
mikoim = "Eshin Kunishima <ek@esh.ink>"; mikoim = "Eshin Kunishima <ek@esh.ink>";
@ -428,6 +434,7 @@
mog = "Matthew O'Gorman <mog-lists@rldn.net>"; mog = "Matthew O'Gorman <mog-lists@rldn.net>";
montag451 = "montag451 <montag451@laposte.net>"; montag451 = "montag451 <montag451@laposte.net>";
moosingin3space = "Nathan Moos <moosingin3space@gmail.com>"; moosingin3space = "Nathan Moos <moosingin3space@gmail.com>";
moredread = "André-Patrick Bubel <code@apb.name>";
moretea = "Maarten Hoogendoorn <maarten@moretea.nl>"; moretea = "Maarten Hoogendoorn <maarten@moretea.nl>";
mornfall = "Petr Ročkai <me@mornfall.net>"; mornfall = "Petr Ročkai <me@mornfall.net>";
MostAwesomeDude = "Corbin Simpson <cds@corbinsimpson.com>"; MostAwesomeDude = "Corbin Simpson <cds@corbinsimpson.com>";
@ -436,6 +443,7 @@
mpcsh = "Mark Cohen <m@mpc.sh>"; mpcsh = "Mark Cohen <m@mpc.sh>";
mpscholten = "Marc Scholten <marc@mpscholten.de>"; mpscholten = "Marc Scholten <marc@mpscholten.de>";
mpsyco = "Francis St-Amour <fr.st-amour@gmail.com>"; mpsyco = "Francis St-Amour <fr.st-amour@gmail.com>";
mrVanDalo = "Ingolf Wanger <contact@ingolf-wagner.de>";
msackman = "Matthew Sackman <matthew@wellquite.org>"; msackman = "Matthew Sackman <matthew@wellquite.org>";
mschristiansen = "Mikkel Christiansen <mikkel@rheosystems.com>"; mschristiansen = "Mikkel Christiansen <mikkel@rheosystems.com>";
msteen = "Matthijs Steen <emailmatthijs@gmail.com>"; msteen = "Matthijs Steen <emailmatthijs@gmail.com>";
@ -483,7 +491,6 @@
oxij = "Jan Malakhovski <oxij@oxij.org>"; oxij = "Jan Malakhovski <oxij@oxij.org>";
paholg = "Paho Lurie-Gregg <paho@paholg.com>"; paholg = "Paho Lurie-Gregg <paho@paholg.com>";
pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>"; pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>";
palo = "Ingolf Wanger <palipalo9@googlemail.com>";
panaeon = "Vitalii Voloshyn <vitalii.voloshyn@gmail.com"; panaeon = "Vitalii Voloshyn <vitalii.voloshyn@gmail.com";
paperdigits = "Mica Semrick <mica@silentumbrella.com>"; paperdigits = "Mica Semrick <mica@silentumbrella.com>";
pashev = "Igor Pashev <pashev.igor@gmail.com>"; pashev = "Igor Pashev <pashev.igor@gmail.com>";
@ -511,6 +518,7 @@
plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>"; plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
plumps = "Maksim Bronsky <maks.bronsky@web.de"; plumps = "Maksim Bronsky <maks.bronsky@web.de";
pmahoney = "Patrick Mahoney <pat@polycrystal.org>"; pmahoney = "Patrick Mahoney <pat@polycrystal.org>";
pmeunier = "Pierre-Étienne Meunier <pierre-etienne.meunier@inria.fr>";
pmiddend = "Philipp Middendorf <pmidden@secure.mailbox.org>"; pmiddend = "Philipp Middendorf <pmidden@secure.mailbox.org>";
polyrod = "Maurizio Di Pietro <dc1mdp@gmail.com>"; polyrod = "Maurizio Di Pietro <dc1mdp@gmail.com>";
pradeepchhetri = "Pradeep Chhetri <pradeep.chhetri89@gmail.com>"; pradeepchhetri = "Pradeep Chhetri <pradeep.chhetri89@gmail.com>";

View file

@ -219,6 +219,14 @@ rec {
*/ */
escapeShellArgs = concatMapStringsSep " " escapeShellArg; escapeShellArgs = concatMapStringsSep " " escapeShellArg;
/* Turn a string into a Nix expression representing that string
Example:
escapeNixString "hello\${}\n"
=> "\"hello\\\${}\\n\""
*/
escapeNixString = s: escape ["$"] (builtins.toJSON s);
/* Obsolete - use replaceStrings instead. */ /* Obsolete - use replaceStrings instead. */
replaceChars = builtins.replaceStrings or ( replaceChars = builtins.replaceStrings or (
del: new: s: del: new: s:

View file

@ -174,6 +174,13 @@ rec {
merge = mergeOneOption; merge = mergeOneOption;
}; };
strMatching = pattern: mkOptionType {
name = "strMatching ${escapeNixString pattern}";
description = "string matching the pattern ${pattern}";
check = x: str.check x && builtins.match pattern x != null;
inherit (str) merge;
};
# Merge multiple definitions by concatenating them (with the given # Merge multiple definitions by concatenating them (with the given
# separator between the values). # separator between the values).
separatedString = sep: mkOptionType rec { separatedString = sep: mkOptionType rec {

View file

@ -115,13 +115,14 @@ hardware.opengl.driSupport32Bit = true;
<para>Support for Synaptics touchpads (found in many laptops such as <para>Support for Synaptics touchpads (found in many laptops such as
the Dell Latitude series) can be enabled as follows: the Dell Latitude series) can be enabled as follows:
<programlisting> <programlisting>
services.xserver.synaptics.enable = true; services.xserver.libinput.enable = true;
</programlisting> </programlisting>
The driver has many options (see <xref linkend="ch-options"/>). For The driver has many options (see <xref linkend="ch-options"/>). For
instance, the following enables two-finger scrolling: instance, the following disables tap-to-click behavior:
<programlisting> <programlisting>
services.xserver.synaptics.twoFingerScroll = true; services.xserver.libinput.tapping = false;
</programlisting> </programlisting>
Note: the use of <literal>services.xserver.synaptics</literal> is deprecated since NixOS 17.09.
</para> </para>
</simplesect> </simplesect>

View file

@ -110,6 +110,12 @@
<listitem><para>A string. Multiple definitions are concatenated with a <listitem><para>A string. Multiple definitions are concatenated with a
collon <literal>":"</literal>.</para></listitem> collon <literal>":"</literal>.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><varname>types.strMatching</varname></term>
<listitem><para>A string matching a specific regular expression. Multiple
definitions cannot be merged. The regular expression is processed using
<literal>builtins.match</literal>.</para></listitem>
</varlistentry>
</variablelist> </variablelist>
</section> </section>

View file

@ -131,6 +131,12 @@ following incompatible changes:</para>
must be set to true. must be set to true.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The option <option>services.logstash.listenAddress</option> is now <literal>127.0.0.1</literal> by default.
Previously the default behaviour was to listen on all interfaces.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>

View file

@ -150,8 +150,6 @@ in pkgs.vmTools.runInLinuxVM (
} }
'' ''
${if partitioned then '' ${if partitioned then ''
. /sys/class/block/vda1/uevent
mknod /dev/vda1 b $MAJOR $MINOR
rootDisk=/dev/vda1 rootDisk=/dev/vda1
'' else '' '' else ''
rootDisk=/dev/vda rootDisk=/dev/vda

View file

@ -19,6 +19,33 @@ stdenv.mkDerivation {
# Add the closures of the top-level store objects. # Add the closures of the top-level store objects.
storePaths=$(perl ${pathsFromGraph} closure-*) storePaths=$(perl ${pathsFromGraph} closure-*)
# If a Hydra slave happens to have store paths with bad permissions/mtime,
# abort now so that they don't end up in ISO images in the channel.
# https://github.com/NixOS/nixpkgs/issues/32242
hasBadPaths=""
for path in $storePaths; do
if [ -h "$path" ]; then
continue
fi
mtime=$(stat -c %Y "$path")
mode=$(stat -c %a "$path")
if [ "$mtime" != 1 ]; then
echo "Store path '$path' has an invalid mtime."
hasBadPaths=1
fi
if [ "$mode" != 444 ] && [ "$mode" != 555 ]; then
echo "Store path '$path' has invalid permissions."
hasBadPaths=1
fi
done
if [ -n "$hasBadPaths" ]; then
echo "You have bad paths in your store, please fix them."
exit 1
fi
# Also include a manifest of the closures in a format suitable # Also include a manifest of the closures in a format suitable
# for nix-store --load-db. # for nix-store --load-db.
printRegistration=1 perl ${pathsFromGraph} closure-* > nix-path-registration printRegistration=1 perl ${pathsFromGraph} closure-* > nix-path-registration

View file

@ -290,8 +290,8 @@ in
ln -s /run/systemd/resolve/resolv.conf /run/resolvconf/interfaces/systemd ln -s /run/systemd/resolve/resolv.conf /run/resolvconf/interfaces/systemd
''} ''}
# Make sure resolv.conf is up to date if not managed by systemd # Make sure resolv.conf is up to date if not managed manually or by systemd
${optionalString (!config.services.resolved.enable) '' ${optionalString (!config.environment.etc?"resolv.conf") ''
${pkgs.openresolv}/bin/resolvconf -u ${pkgs.openresolv}/bin/resolvconf -u
''} ''}
''; '';

View file

@ -101,7 +101,8 @@ in {
each user that tries to use the sound system. The server runs each user that tries to use the sound system. The server runs
with user privileges. This is the recommended and most secure with user privileges. This is the recommended and most secure
way to use PulseAudio. If true, one system-wide PulseAudio way to use PulseAudio. If true, one system-wide PulseAudio
server is launched on boot, running as the user "pulse". server is launched on boot, running as the user "pulse", and
only users in the "audio" group will have access to the server.
Please read the PulseAudio documentation for more details. Please read the PulseAudio documentation for more details.
''; '';
}; };

View file

@ -18,17 +18,17 @@ with lib;
}; };
config = { config = rec {
boot.loader.grub.version = 2;
# Don't build the GRUB menu builder script, since we don't need it # Don't build the GRUB menu builder script, since we don't need it
# here and it causes a cyclic dependency. # here and it causes a cyclic dependency.
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
# !!! Hack - attributes expected by other modules. # !!! Hack - attributes expected by other modules.
system.boot.loader.kernelFile = "bzImage"; environment.systemPackages = [ pkgs.grub2_efi ]
environment.systemPackages = [ pkgs.grub2 pkgs.grub2_efi pkgs.syslinux ]; ++ (if pkgs.stdenv.system == "aarch64-linux"
then []
else [ pkgs.grub2 pkgs.syslinux ]);
system.boot.loader.kernelFile = pkgs.stdenv.platform.kernelTarget;
fileSystems."/" = fileSystems."/" =
{ fsType = "tmpfs"; { fsType = "tmpfs";
@ -84,7 +84,12 @@ with lib;
]; ];
}; };
system.build.netbootIpxeScript = pkgs.writeTextDir "netboot.ipxe" "#!ipxe\nkernel bzImage init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}\ninitrd initrd\nboot"; system.build.netbootIpxeScript = pkgs.writeTextDir "netboot.ipxe" ''
#!ipxe
kernel ${pkgs.stdenv.platform.kernelTarget} init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}
initrd initrd
boot
'';
boot.loader.timeout = 10; boot.loader.timeout = 10;

View file

@ -1,5 +1,6 @@
{ {
x86_64-linux = "/nix/store/b4s1gxiis1ryvybnjhdjvgc5sr1nq0ys-nix-1.11.15"; x86_64-linux = "/nix/store/gy4yv67gv3j6in0lalw37j353zdmfcwm-nix-1.11.16";
i686-linux = "/nix/store/kgb5hs7qw13bvb6icramv1ry9dard3h9-nix-1.11.15"; i686-linux = "/nix/store/ifmyq5ryfxhhrzh62hiq65xyz1fwffga-nix-1.11.16";
x86_64-darwin = "/nix/store/dgwz3dxdzs2wwd7pg7cdhvl8rv0qpnbj-nix-1.11.15"; aarch64-linux = "/nix/store/y9mfv3sx75mbfibf1zna1kq9v98fk2nb-nix-1.11.16";
x86_64-darwin = "/nix/store/hwpp7kia2f0in5ns2hiw41q38k30jpj2-nix-1.11.16";
} }

View file

@ -239,6 +239,7 @@
./services/hardware/tlp.nix ./services/hardware/tlp.nix
./services/hardware/thinkfan.nix ./services/hardware/thinkfan.nix
./services/hardware/trezord.nix ./services/hardware/trezord.nix
./services/hardware/u2f.nix
./services/hardware/udev.nix ./services/hardware/udev.nix
./services/hardware/udisks2.nix ./services/hardware/udisks2.nix
./services/hardware/upower.nix ./services/hardware/upower.nix
@ -328,6 +329,7 @@
./services/misc/nix-ssh-serve.nix ./services/misc/nix-ssh-serve.nix
./services/misc/nzbget.nix ./services/misc/nzbget.nix
./services/misc/octoprint.nix ./services/misc/octoprint.nix
./services/misc/osrm.nix
./services/misc/packagekit.nix ./services/misc/packagekit.nix
./services/misc/parsoid.nix ./services/misc/parsoid.nix
./services/misc/phd.nix ./services/misc/phd.nix
@ -588,6 +590,7 @@
./services/system/cloud-init.nix ./services/system/cloud-init.nix
./services/system/dbus.nix ./services/system/dbus.nix
./services/system/earlyoom.nix ./services/system/earlyoom.nix
./services/system/localtime.nix
./services/system/kerberos.nix ./services/system/kerberos.nix
./services/system/nscd.nix ./services/system/nscd.nix
./services/system/saslauthd.nix ./services/system/saslauthd.nix

View file

@ -14,13 +14,16 @@ let
bashCompletion = optionalString cfg.enableCompletion '' bashCompletion = optionalString cfg.enableCompletion ''
# Check whether we're running a version of Bash that has support for # Check whether we're running a version of Bash that has support for
# programmable completion. If we do, enable all modules installed in # programmable completion. If we do, enable all modules installed in
# the system (and user profile). # the system and user profile in obsolete /etc/bash_completion.d/
# directories. Bash loads completions in all
# $XDG_DATA_DIRS/share/bash-completion/completions/
# on demand, so they do not need to be sourced here.
if shopt -q progcomp &>/dev/null; then if shopt -q progcomp &>/dev/null; then
. "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh" . "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh"
nullglobStatus=$(shopt -p nullglob) nullglobStatus=$(shopt -p nullglob)
shopt -s nullglob shopt -s nullglob
for p in $NIX_PROFILES; do for p in $NIX_PROFILES; do
for m in "$p/etc/bash_completion.d/"* "$p/share/bash-completion/completions/"*; do for m in "$p/etc/bash_completion.d/"*; do
. $m . $m
done done
done done

View file

@ -0,0 +1,23 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.hardware.u2f;
in {
options = {
hardware.u2f = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Enable U2F hardware support.
'';
};
};
};
config = mkIf cfg.enable {
services.udev.packages = [ pkgs.libu2f-host ];
};
}

View file

@ -103,7 +103,7 @@ in
listenAddress = mkOption { listenAddress = mkOption {
type = types.str; type = types.str;
default = "0.0.0.0"; default = "127.0.0.1";
description = "Address on which to start webserver."; description = "Address on which to start webserver.";
}; };

View file

@ -32,6 +32,24 @@ in
description = "Content of the configuration file"; description = "Content of the configuration file";
}; };
mathjax = mkOption {
type = types.bool;
default = false;
description = "Enable support for math rendering using MathJax";
};
allowUploads = mkOption {
type = types.nullOr (types.enum [ "dir" "page" ]);
default = null;
description = "Enable uploads of external files";
};
emoji = mkOption {
type = types.bool;
default = false;
description = "Parse and interpret emoji tags";
};
branch = mkOption { branch = mkOption {
type = types.str; type = types.str;
default = "master"; default = "master";
@ -84,6 +102,9 @@ in
--host ${cfg.address} \ --host ${cfg.address} \
--config ${builtins.toFile "gollum-config.rb" cfg.extraConfig} \ --config ${builtins.toFile "gollum-config.rb" cfg.extraConfig} \
--ref ${cfg.branch} \ --ref ${cfg.branch} \
${optionalString cfg.mathjax "--mathjax"} \
${optionalString cfg.emoji "--emoji"} \
${optionalString (cfg.allowUploads != null) "--allow-uploads ${cfg.allowUploads}"} \
${cfg.stateDir} ${cfg.stateDir}
''; '';
}; };

View file

@ -0,0 +1,85 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.osrm;
in
{
options.services.osrm = {
enable = mkOption {
type = types.bool;
default = false;
description = "Enable the OSRM service.";
};
address = mkOption {
type = types.str;
default = "0.0.0.0";
description = "IP address on which the web server will listen.";
};
port = mkOption {
type = types.int;
default = 5000;
description = "Port on which the web server will run.";
};
threads = mkOption {
type = types.int;
default = 4;
description = "Number of threads to use.";
};
algorithm = mkOption {
type = types.enum [ "CH" "CoreCH" "MLD" ];
default = "MLD";
description = "Algorithm to use for the data. Must be one of CH, CoreCH, MLD";
};
extraFlags = mkOption {
type = types.listOf types.str;
default = [];
example = [ "--max-table-size 1000" "--max-matching-size 1000" ];
description = "Extra command line arguments passed to osrm-routed";
};
dataFile = mkOption {
type = types.path;
example = "/var/lib/osrm/berlin-latest.osrm";
description = "Data file location";
};
};
config = mkIf cfg.enable {
users.users.osrm = {
group = config.users.users.osrm.name;
description = "OSRM user";
createHome = false;
};
users.groups.osrm = { };
systemd.services.osrm = {
description = "OSRM service";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = config.users.extraUsers.osrm.name;
ExecStart = ''
${pkgs.osrm-backend}/bin/osrm-routed \
--ip ${cfg.address} \
--port ${toString cfg.port} \
--threads ${toString cfg.threads} \
--algorithm ${cfg.algorithm} \
${toString cfg.extraFlags} \
${cfg.dataFile}
'';
};
};
};
}

View file

@ -9,6 +9,12 @@ let
isBuiltinBackend = name: isBuiltinBackend = name:
builtins.elem name [ "graphite" "console" "repeater" ]; builtins.elem name [ "graphite" "console" "repeater" ];
backendsToPackages = let
mkMap = list: name:
if isBuiltinBackend name then list
else list ++ [ pkgs.nodePackages.${name} ];
in foldl mkMap [];
configFile = pkgs.writeText "statsd.conf" '' configFile = pkgs.writeText "statsd.conf" ''
{ {
address: "${cfg.listenAddress}", address: "${cfg.listenAddress}",
@ -27,13 +33,21 @@ let
prettyprint: false prettyprint: false
}, },
log: { log: {
backend: "syslog" backend: "stdout"
}, },
automaticConfigReload: false${optionalString (cfg.extraConfig != null) ","} automaticConfigReload: false${optionalString (cfg.extraConfig != null) ","}
${cfg.extraConfig} ${cfg.extraConfig}
} }
''; '';
deps = pkgs.buildEnv {
name = "statsd-runtime-deps";
pathsToLink = [ "/lib" ];
ignoreCollisions = true;
paths = backendsToPackages cfg.backends;
};
in in
{ {
@ -42,11 +56,7 @@ in
options.services.statsd = { options.services.statsd = {
enable = mkOption { enable = mkEnableOption "statsd";
description = "Whether to enable statsd stats aggregation service";
default = false;
type = types.bool;
};
listenAddress = mkOption { listenAddress = mkOption {
description = "Address that statsd listens on over UDP"; description = "Address that statsd listens on over UDP";
@ -110,6 +120,11 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = map (backend: {
assertion = !isBuiltinBackend backend -> hasAttrByPath [ backend ] pkgs.nodePackages;
message = "Only builtin backends (graphite, console, repeater) or backends enumerated in `pkgs.nodePackages` are allowed!";
}) cfg.backends;
users.extraUsers = singleton { users.extraUsers = singleton {
name = "statsd"; name = "statsd";
uid = config.ids.uids.statsd; uid = config.ids.uids.statsd;
@ -120,9 +135,7 @@ in
description = "Statsd Server"; description = "Statsd Server";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
environment = { environment = {
NODE_PATH=concatMapStringsSep ":" NODE_PATH = "${deps}/lib/node_modules";
(pkg: "${builtins.getAttr pkg pkgs.statsd.nodePackages}/lib/node_modules")
(filter (name: !isBuiltinBackend name) cfg.backends);
}; };
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.statsd}/bin/statsd ${configFile}"; ExecStart = "${pkgs.statsd}/bin/statsd ${configFile}";

View file

@ -126,6 +126,7 @@ let
[${tun.name}] [${tun.name}]
type = client type = client
destination = ${tun.destination} destination = ${tun.destination}
destinationport = ${toString tun.destinationPort}
keys = ${tun.keys} keys = ${tun.keys}
address = ${tun.address} address = ${tun.address}
port = ${toString tun.port} port = ${toString tun.port}
@ -137,15 +138,15 @@ let
'') '')
} }
${flip concatMapStrings ${flip concatMapStrings
(collect (tun: tun ? port && tun ? host) cfg.inTunnels) (collect (tun: tun ? port && tun ? address) cfg.inTunnels)
(tun: let portStr = toString tun.port; in '' (tun: ''
[${tun.name}] [${tun.name}]
type = server type = server
destination = ${tun.destination} destination = ${tun.destination}
keys = ${tun.keys} keys = ${tun.keys}
host = ${tun.address} host = ${tun.address}
port = ${tun.port} port = ${toString tun.port}
inport = ${tun.inPort} inport = ${toString tun.inPort}
accesslist = ${builtins.concatStringsSep "," tun.accessList} accesslist = ${builtins.concatStringsSep "," tun.accessList}
'') '')
} }
@ -405,7 +406,13 @@ in
default = {}; default = {};
type = with types; loaOf (submodule ( type = with types; loaOf (submodule (
{ name, config, ... }: { { name, config, ... }: {
options = commonTunOpts name; options = {
destinationPort = mkOption {
type = types.int;
default = 0;
description = "Connect to particular port at destination.";
};
} // commonTunOpts name;
config = { config = {
name = mkDefault name; name = mkDefault name;
}; };

View file

@ -53,6 +53,12 @@ let
-j DNAT --to-destination ${fwd.destination} -j DNAT --to-destination ${fwd.destination}
'') cfg.forwardPorts} '') cfg.forwardPorts}
${optionalString (cfg.dmzHost != null) ''
iptables -w -t nat -A nixos-nat-pre \
-i ${cfg.externalInterface} -j DNAT \
--to-destination ${cfg.dmzHost}
''}
# Append our chains to the nat tables # Append our chains to the nat tables
iptables -w -t nat -A PREROUTING -j nixos-nat-pre iptables -w -t nat -A PREROUTING -j nixos-nat-pre
iptables -w -t nat -A POSTROUTING -j nixos-nat-post iptables -w -t nat -A POSTROUTING -j nixos-nat-post
@ -125,15 +131,15 @@ in
type = with types; listOf (submodule { type = with types; listOf (submodule {
options = { options = {
sourcePort = mkOption { sourcePort = mkOption {
type = types.int; type = types.either types.int (types.strMatching "[[:digit:]]+:[[:digit:]]+");
example = 8080; example = 8080;
description = "Source port of the external interface"; description = "Source port of the external interface; to specify a port range, use a string with a colon (e.g. \"60000:61000\")";
}; };
destination = mkOption { destination = mkOption {
type = types.str; type = types.str;
example = "10.0.0.1:80"; example = "10.0.0.1:80";
description = "Forward connection to destination ip:port"; description = "Forward connection to destination ip:port; to specify a port range, use ip:start-end";
}; };
proto = mkOption { proto = mkOption {
@ -153,6 +159,17 @@ in
''; '';
}; };
networking.nat.dmzHost = mkOption {
type = types.nullOr types.str;
default = null;
example = "10.0.0.1";
description =
''
The local IP address to which all traffic that does not match any
forwarding rule is forwarded.
'';
};
}; };

View file

@ -241,6 +241,19 @@ in {
A list of scripts which will be executed in response to network events. A list of scripts which will be executed in response to network events.
''; '';
}; };
enableStrongSwan = mkOption {
type = types.bool;
default = false;
description = ''
Enable the StrongSwan plugin.
</para><para>
If you enable this option the
<literal>networkmanager_strongswan</literal> plugin will be added to
the <option>networking.networkmanager.packages</option> option
so you don't need to to that yourself.
'';
};
}; };
}; };
@ -333,13 +346,13 @@ in {
wireless.enable = lib.mkDefault false; wireless.enable = lib.mkDefault false;
}; };
powerManagement.resumeCommands = ''
${config.systemd.package}/bin/systemctl restart network-manager
'';
security.polkit.extraConfig = polkitConf; security.polkit.extraConfig = polkitConf;
services.dbus.packages = cfg.packages; networking.networkmanager.packages =
mkIf cfg.enableStrongSwan [ pkgs.networkmanager_strongswan ];
services.dbus.packages =
optional cfg.enableStrongSwan pkgs.strongswanNM ++ cfg.packages;
services.udev.packages = cfg.packages; services.udev.packages = cfg.packages;
}; };

View file

@ -10,98 +10,126 @@ let
options = { options = {
# TODO: require attribute
key = mkOption { key = mkOption {
type = types.str; type = types.path;
description = "Path to the key file"; description = "Path to the key file.";
}; };
# TODO: require attribute
cert = mkOption { cert = mkOption {
type = types.str; type = types.path;
description = "Path to the certificate file"; description = "Path to the certificate file.";
}; };
extraOptions = mkOption {
type = types.attrs;
default = {};
description = "Extra SSL configuration options.";
};
}; };
}; };
moduleOpts = { moduleOpts = {
roster = mkOption { roster = mkOption {
type = types.bool;
default = true; default = true;
description = "Allow users to have a roster"; description = "Allow users to have a roster";
}; };
saslauth = mkOption { saslauth = mkOption {
type = types.bool;
default = true; default = true;
description = "Authentication for clients and servers. Recommended if you want to log in."; description = "Authentication for clients and servers. Recommended if you want to log in.";
}; };
tls = mkOption { tls = mkOption {
type = types.bool;
default = true; default = true;
description = "Add support for secure TLS on c2s/s2s connections"; description = "Add support for secure TLS on c2s/s2s connections";
}; };
dialback = mkOption { dialback = mkOption {
type = types.bool;
default = true; default = true;
description = "s2s dialback support"; description = "s2s dialback support";
}; };
disco = mkOption { disco = mkOption {
type = types.bool;
default = true; default = true;
description = "Service discovery"; description = "Service discovery";
}; };
legacyauth = mkOption { legacyauth = mkOption {
type = types.bool;
default = true; default = true;
description = "Legacy authentication. Only used by some old clients and bots"; description = "Legacy authentication. Only used by some old clients and bots";
}; };
version = mkOption { version = mkOption {
type = types.bool;
default = true; default = true;
description = "Replies to server version requests"; description = "Replies to server version requests";
}; };
uptime = mkOption { uptime = mkOption {
type = types.bool;
default = true; default = true;
description = "Report how long server has been running"; description = "Report how long server has been running";
}; };
time = mkOption { time = mkOption {
type = types.bool;
default = true; default = true;
description = "Let others know the time here on this server"; description = "Let others know the time here on this server";
}; };
ping = mkOption { ping = mkOption {
type = types.bool;
default = true; default = true;
description = "Replies to XMPP pings with pongs"; description = "Replies to XMPP pings with pongs";
}; };
console = mkOption { console = mkOption {
type = types.bool;
default = false; default = false;
description = "telnet to port 5582"; description = "telnet to port 5582";
}; };
bosh = mkOption { bosh = mkOption {
type = types.bool;
default = false; default = false;
description = "Enable BOSH clients, aka 'Jabber over HTTP'"; description = "Enable BOSH clients, aka 'Jabber over HTTP'";
}; };
httpserver = mkOption { httpserver = mkOption {
type = types.bool;
default = false; default = false;
description = "Serve static files from a directory over HTTP"; description = "Serve static files from a directory over HTTP";
}; };
websocket = mkOption { websocket = mkOption {
type = types.bool;
default = false; default = false;
description = "Enable WebSocket support"; description = "Enable WebSocket support";
}; };
}; };
createSSLOptsStr = o: toLua = x:
if o ? key && o ? cert then if builtins.isString x then ''"${x}"''
''ssl = { key = "${o.key}"; certificate = "${o.cert}"; };'' else if builtins.isBool x then toString x
else ""; else if builtins.isInt x then toString x
else throw "Invalid Lua value";
createSSLOptsStr = o: ''
ssl = {
key = "${o.key}";
certificate = "${o.cert}";
${concatStringsSep "\n" (mapAttrsToList (name: value: "${name} = ${toLua value};") o.extraOptions)}
};
'';
vHostOpts = { ... }: { vHostOpts = { ... }: {
@ -114,18 +142,20 @@ let
}; };
enabled = mkOption { enabled = mkOption {
type = types.bool;
default = false; default = false;
description = "Whether to enable the virtual host"; description = "Whether to enable the virtual host";
}; };
ssl = mkOption { ssl = mkOption {
description = "Paths to SSL files"; type = types.nullOr (types.submodule sslOpts);
default = null; default = null;
options = [ sslOpts ]; description = "Paths to SSL files";
}; };
extraConfig = mkOption { extraConfig = mkOption {
default = ''''; type = types.lines;
default = "";
description = "Additional virtual host specific configuration"; description = "Additional virtual host specific configuration";
}; };
@ -144,11 +174,13 @@ in
services.prosody = { services.prosody = {
enable = mkOption { enable = mkOption {
type = types.bool;
default = false; default = false;
description = "Whether to enable the prosody server"; description = "Whether to enable the prosody server";
}; };
allowRegistration = mkOption { allowRegistration = mkOption {
type = types.bool;
default = false; default = false;
description = "Allow account creation"; description = "Allow account creation";
}; };
@ -156,8 +188,9 @@ in
modules = moduleOpts; modules = moduleOpts;
extraModules = mkOption { extraModules = mkOption {
description = "Enable custom modules"; type = types.listOf types.str;
default = []; default = [];
description = "Enable custom modules";
}; };
virtualHosts = mkOption { virtualHosts = mkOption {
@ -183,20 +216,21 @@ in
}; };
ssl = mkOption { ssl = mkOption {
description = "Paths to SSL files"; type = types.nullOr (types.submodule sslOpts);
default = null; default = null;
options = [ sslOpts ]; description = "Paths to SSL files";
}; };
admins = mkOption { admins = mkOption {
description = "List of administrators of the current host"; type = types.listOf types.str;
example = [ "admin1@example.com" "admin2@example.com" ];
default = []; default = [];
example = [ "admin1@example.com" "admin2@example.com" ];
description = "List of administrators of the current host";
}; };
extraConfig = mkOption { extraConfig = mkOption {
type = types.lines; type = types.lines;
default = ''''; default = "";
description = "Additional prosody configuration"; description = "Additional prosody configuration";
}; };
@ -263,17 +297,17 @@ in
}; };
systemd.services.prosody = { systemd.services.prosody = {
description = "Prosody XMPP server"; description = "Prosody XMPP server";
after = [ "network-online.target" ]; after = [ "network-online.target" ];
wants = [ "network-online.target" ]; wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
restartTriggers = [ config.environment.etc."prosody/prosody.cfg.lua".source ];
serviceConfig = { serviceConfig = {
User = "prosody"; User = "prosody";
Type = "forking";
PIDFile = "/var/lib/prosody/prosody.pid"; PIDFile = "/var/lib/prosody/prosody.pid";
ExecStart = "${pkgs.prosody}/bin/prosodyctl start"; ExecStart = "${pkgs.prosody}/bin/prosodyctl start";
}; };
}; };
}; };

View file

@ -9,6 +9,26 @@ let
opt = name: value: optionalString (value != null) "${name} ${value}"; opt = name: value: optionalString (value != null) "${name} ${value}";
optint = name: value: optionalString (value != null && value != 0) "${name} ${toString value}"; optint = name: value: optionalString (value != null && value != 0) "${name} ${toString value}";
isolationOptions = {
type = types.listOf (types.enum [
"IsolateClientAddr"
"IsolateSOCKSAuth"
"IsolateClientProtocol"
"IsolateDestPort"
"IsolateDestAddr"
]);
default = [];
example = [
"IsolateClientAddr"
"IsolateSOCKSAuth"
"IsolateClientProtocol"
"IsolateDestPort"
"IsolateDestAddr"
];
description = "Tor isolation options";
};
torRc = '' torRc = ''
User tor User tor
DataDirectory ${torDirectory} DataDirectory ${torDirectory}
@ -21,9 +41,19 @@ let
'' ''
# Client connection config # Client connection config
+ optionalString cfg.client.enable '' + optionalString cfg.client.enable ''
SOCKSPort ${cfg.client.socksListenAddress} IsolateDestAddr SOCKSPort ${cfg.client.socksListenAddress} ${toString cfg.client.socksIsolationOptions}
SOCKSPort ${cfg.client.socksListenAddressFaster} SOCKSPort ${cfg.client.socksListenAddressFaster}
${opt "SocksPolicy" cfg.client.socksPolicy} ${opt "SocksPolicy" cfg.client.socksPolicy}
${optionalString cfg.client.transparentProxy.enable ''
TransPort ${cfg.client.transparentProxy.listenAddress} ${toString cfg.client.transparentProxy.isolationOptions}
''}
${optionalString cfg.client.dns.enable ''
DNSPort ${cfg.client.dns.listenAddress} ${toString cfg.client.dns.isolationOptions}
AutomapHostsOnResolve 1
AutomapHostsSuffixes ${concatStringsSep "," cfg.client.dns.automapHostsSuffixes}
''}
'' ''
# Relay config # Relay config
+ optionalString cfg.relay.enable '' + optionalString cfg.relay.enable ''
@ -154,6 +184,55 @@ in
''; '';
}; };
socksIsolationOptions = mkOption (isolationOptions // {
default = ["IsolateDestAddr"];
});
transparentProxy = {
enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable tor transaprent proxy";
};
listenAddress = mkOption {
type = types.str;
default = "127.0.0.1:9040";
example = "192.168.0.1:9040";
description = ''
Bind transparent proxy to this address.
'';
};
isolationOptions = mkOption isolationOptions;
};
dns = {
enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable tor dns resolver";
};
listenAddress = mkOption {
type = types.str;
default = "127.0.0.1:9053";
example = "192.168.0.1:9053";
description = ''
Bind tor dns to this address.
'';
};
isolationOptions = mkOption isolationOptions;
automapHostsSuffixes = mkOption {
type = types.listOf types.str;
default = [".onion" ".exit"];
example = [".onion"];
description = "List of suffixes to use with automapHostsOnResolve";
};
};
privoxy.enable = mkOption { privoxy.enable = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;

View file

@ -0,0 +1,60 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.localtime;
in {
options = {
services.localtime = {
enable = mkOption {
default = false;
description = ''
Enable <literal>localtime</literal>, simple daemon for keeping the system
timezone up-to-date based on the current location. It uses geoclue2 to
determine the current location and systemd-timedated to actually set
the timezone.
'';
};
};
};
config = mkIf cfg.enable {
services.geoclue2.enable = true;
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.timedate1.set-timezone"
&& subject.user == "localtimed") {
return polkit.Result.YES;
}
});
'';
users.users = [{
name = "localtimed";
description = "Taskserver user";
}];
systemd.services.localtime = {
description = "localtime service";
wantedBy = [ "multi-user.target" ];
partOf = [ "geoclue.service "];
serviceConfig = {
Restart = "on-failure";
# TODO: make it work with dbus
#DynamicUser = true;
Nice = 10;
User = "localtimed";
PrivateTmp = "yes";
PrivateDevices = true;
PrivateNetwork = "yes";
NoNewPrivileges = "yes";
ProtectSystem = "strict";
ProtectHome = true;
ExecStart = "${pkgs.localtime}/bin/localtimed";
};
};
};
}

View file

@ -11,7 +11,7 @@ in
{ {
options = { options = {
services.nexus = { services.nexus = {
enable = mkEnableOption "SonarType Nexus3 OSS service"; enable = mkEnableOption "Sonatype Nexus3 OSS service";
user = mkOption { user = mkOption {
type = types.str; type = types.str;
@ -54,7 +54,7 @@ in
users.extraGroups."${cfg.group}" = {}; users.extraGroups."${cfg.group}" = {};
systemd.services.nexus = { systemd.services.nexus = {
description = "SonarType Nexus3"; description = "Sonatype Nexus3";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];

View file

@ -578,6 +578,22 @@ in
target = "X11/xkb"; target = "X11/xkb";
} }
]) ])
# localectl looks into 00-keyboard.conf
++ [
{
text = ''
Section "InputClass"
Identifier "Keyboard catchall"
MatchIsKeyboard "on"
Option "XkbModel" "${cfg.xkbModel}"
Option "XkbLayout" "${cfg.layout}"
Option "XkbOptions" "${cfg.xkbOptions}"
Option "XkbVariant" "${cfg.xkbVariant}"
EndSection
'';
target = "X11/xorg.conf.d/00-keyboard.conf";
}
]
# Needed since 1.18; see https://bugs.freedesktop.org/show_bug.cgi?id=89023#c5 # Needed since 1.18; see https://bugs.freedesktop.org/show_bug.cgi?id=89023#c5
++ (let cfgPath = "/X11/xorg.conf.d/10-evdev.conf"; in ++ (let cfgPath = "/X11/xorg.conf.d/10-evdev.conf"; in
[{ [{
@ -697,15 +713,6 @@ in
${cfg.monitorSection} ${cfg.monitorSection}
EndSection EndSection
Section "InputClass"
Identifier "Keyboard catchall"
MatchIsKeyboard "on"
Option "XkbModel" "${cfg.xkbModel}"
Option "XkbLayout" "${cfg.layout}"
Option "XkbOptions" "${cfg.xkbOptions}"
Option "XkbVariant" "${cfg.xkbVariant}"
EndSection
# Additional "InputClass" sections # Additional "InputClass" sections
${flip concatMapStrings cfg.inputClassSections (inputClassSection: '' ${flip concatMapStrings cfg.inputClassSections (inputClassSection: ''
Section "InputClass" Section "InputClass"

View file

@ -128,7 +128,7 @@ in
# Make it easy to log in as root when running the test interactively. # Make it easy to log in as root when running the test interactively.
users.extraUsers.root.initialHashedPassword = mkOverride 150 ""; users.extraUsers.root.initialHashedPassword = mkOverride 150 "";
services.xserver.displayManager.logToJournal = true; services.xserver.displayManager.job.logToJournal = true;
}; };
} }

View file

@ -152,5 +152,8 @@ let cfg = config.ec2; in
environment.systemPackages = [ pkgs.cryptsetup ]; environment.systemPackages = [ pkgs.cryptsetup ];
boot.initrd.supportedFilesystems = [ "unionfs-fuse" ]; boot.initrd.supportedFilesystems = [ "unionfs-fuse" ];
# EC2 has its own NTP server provided by the hypervisor
networking.timeServers = [ "169.254.169.123" ];
}; };
} }

View file

@ -726,6 +726,11 @@ in
networking.dhcpcd.denyInterfaces = [ "ve-*" "vb-*" ]; networking.dhcpcd.denyInterfaces = [ "ve-*" "vb-*" ];
services.udev.extraRules = optionalString config.networking.networkmanager.enable ''
# Don't manage interfaces created by nixos-container.
ENV{INTERFACE}=="v[eb]-*", ENV{NM_UNMANAGED}="1"
'';
environment.systemPackages = [ pkgs.nixos-container ]; environment.systemPackages = [ pkgs.nixos-container ];
}); });
} }

View file

@ -18,7 +18,7 @@ let
"i686-linux" = "${qemu}/bin/qemu-kvm"; "i686-linux" = "${qemu}/bin/qemu-kvm";
"x86_64-linux" = "${qemu}/bin/qemu-kvm -cpu kvm64"; "x86_64-linux" = "${qemu}/bin/qemu-kvm -cpu kvm64";
"armv7l-linux" = "${qemu}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host"; "armv7l-linux" = "${qemu}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
"aarch64-linux" = "${qemu}/bin/qemu-system-aarch64 -enable-kvm -machine virt -cpu host"; "aarch64-linux" = "${qemu}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
}.${pkgs.stdenv.system}; }.${pkgs.stdenv.system};
# FIXME: figure out a common place for this instead of copy pasting # FIXME: figure out a common place for this instead of copy pasting

View file

@ -1,6 +1,6 @@
{ nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; } { nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; }
, stableBranch ? false , stableBranch ? false
, supportedSystems ? [ "x86_64-linux" ] , supportedSystems ? [ "x86_64-linux" "aarch64-linux" ]
}: }:
with import ../lib; with import ../lib;
@ -89,6 +89,27 @@ let
}); });
}).config)); }).config));
makeNetboot = config:
let
config_evaled = import lib/eval-config.nix config;
build = config_evaled.config.system.build;
kernelTarget = config_evaled.pkgs.stdenv.platform.kernelTarget;
in
pkgs.symlinkJoin {
name="netboot";
paths=[
build.netbootRamdisk
build.kernel
build.netbootIpxeScript
];
postBuild = ''
mkdir -p $out/nix-support
echo "file ${kernelTarget} $out/${kernelTarget}" >> $out/nix-support/hydra-build-products
echo "file initrd $out/initrd" >> $out/nix-support/hydra-build-products
echo "file ipxe $out/netboot.ipxe" >> $out/nix-support/hydra-build-products
'';
};
in rec { in rec {
@ -103,28 +124,22 @@ in rec {
# Build the initial ramdisk so Hydra can keep track of its size over time. # Build the initial ramdisk so Hydra can keep track of its size over time.
initialRamdisk = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.initialRamdisk); initialRamdisk = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.initialRamdisk);
netboot.x86_64-linux = let build = (import lib/eval-config.nix { netboot = {
x86_64-linux = makeNetboot {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
./modules/installer/netboot/netboot-minimal.nix ./modules/installer/netboot/netboot-minimal.nix
versionModule versionModule
]; ];
}).config.system.build;
in
pkgs.symlinkJoin {
name="netboot";
paths=[
build.netbootRamdisk
build.kernel
build.netbootIpxeScript
];
postBuild = ''
mkdir -p $out/nix-support
echo "file bzImage $out/bzImage" >> $out/nix-support/hydra-build-products
echo "file initrd $out/initrd" >> $out/nix-support/hydra-build-products
echo "file ipxe $out/netboot.ipxe" >> $out/nix-support/hydra-build-products
'';
}; };
} // (optionalAttrs (elem "aarch64-linux" supportedSystems) {
aarch64-linux = makeNetboot {
system = "aarch64-linux";
modules = [
./modules/installer/netboot/netboot-minimal.nix
versionModule
];
};});
iso_minimal = forAllSystems (system: makeIso { iso_minimal = forAllSystems (system: makeIso {
module = ./modules/installer/cd-dvd/installation-cd-minimal.nix; module = ./modules/installer/cd-dvd/installation-cd-minimal.nix;
@ -332,10 +347,12 @@ in rec {
tests.slim = callTest tests/slim.nix {}; tests.slim = callTest tests/slim.nix {};
tests.smokeping = callTest tests/smokeping.nix {}; tests.smokeping = callTest tests/smokeping.nix {};
tests.snapper = callTest tests/snapper.nix {}; tests.snapper = callTest tests/snapper.nix {};
tests.statsd = callTest tests/statsd.nix {};
tests.switchTest = callTest tests/switch-test.nix {}; tests.switchTest = callTest tests/switch-test.nix {};
tests.taskserver = callTest tests/taskserver.nix {}; tests.taskserver = callTest tests/taskserver.nix {};
tests.tomcat = callTest tests/tomcat.nix {}; tests.tomcat = callTest tests/tomcat.nix {};
tests.udisks2 = callTest tests/udisks2.nix {}; tests.udisks2 = callTest tests/udisks2.nix {};
tests.vault = callTest tests/vault.nix {};
tests.virtualbox = callSubTests tests/virtualbox.nix { system = "x86_64-linux"; }; tests.virtualbox = callSubTests tests/virtualbox.nix { system = "x86_64-linux"; };
tests.wordpress = callTest tests/wordpress.nix {}; tests.wordpress = callTest tests/wordpress.nix {};
tests.xfce = callTest tests/xfce.nix {}; tests.xfce = callTest tests/xfce.nix {};

View file

@ -39,7 +39,7 @@ import ./make-test.nix ({pkgs, ... }: {
$client->waitForUnit("cups.service"); $client->waitForUnit("cups.service");
$client->sleep(10); # wait until cups is fully initialized $client->sleep(10); # wait until cups is fully initialized
$client->succeed("lpstat -r") =~ /scheduler is running/ or die; $client->succeed("lpstat -r") =~ /scheduler is running/ or die;
$client->succeed("lpstat -H") =~ "/var/run/cups/cups.sock" or die; $client->succeed("lpstat -H") =~ "localhost:631" or die;
$client->succeed("curl --fail http://localhost:631/"); $client->succeed("curl --fail http://localhost:631/");
$client->succeed("curl --fail http://server:631/"); $client->succeed("curl --fail http://server:631/");
$server->fail("curl --fail --connect-timeout 2 http://client:631/"); $server->fail("curl --fail --connect-timeout 2 http://client:631/");

View file

@ -20,7 +20,7 @@ let
''; '';
}; };
# WARNING: DON'T DO THIS IN PRODUCTION! # WARNING: DON'T DO THIS IN PRODUCTION!
# This puts secrets (albeit hashed) directly into the Nix store for ease of testing. # This puts unhashed secrets directly into the Nix store for ease of testing.
environment.etc."radicale/htpasswd".source = pkgs.runCommand "htpasswd" {} '' environment.etc."radicale/htpasswd".source = pkgs.runCommand "htpasswd" {} ''
${pkgs.apacheHttpd}/bin/htpasswd -bcB "$out" ${user} ${password} ${pkgs.apacheHttpd}/bin/htpasswd -bcB "$out" ${user} ${password}
''; '';

40
nixos/tests/statsd.nix Normal file
View file

@ -0,0 +1,40 @@
import ./make-test.nix ({ pkgs, lib }:
with lib;
{
name = "statsd";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ma27 ];
};
nodes.statsd1 = {
services.statsd.enable = true;
services.statsd.backends = [ "statsd-influxdb-backend" "console" ];
services.statsd.extraConfig = ''
influxdb: {
username: "root",
password: "root",
database: "statsd"
}
'';
services.influxdb.enable = true;
systemd.services.influx-init = {
description = "Setup Influx Test Base";
after = [ "influxdb.service" ];
before = [ "statsd.service" ];
script = ''
echo "CREATE DATABASE statsd" | ${pkgs.influxdb}/bin/influx
'';
};
};
testScript = ''
$statsd1->start();
$statsd1->waitForUnit("statsd.service");
$statsd1->succeed("nc -z 127.0.0.1 8126");
'';
})

23
nixos/tests/vault.nix Normal file
View file

@ -0,0 +1,23 @@
import ./make-test.nix ({ pkgs, ... }:
{
name = "vault";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ lnl7 ];
};
machine = { config, pkgs, ... }: {
environment.systemPackages = [ pkgs.vault ];
environment.variables.VAULT_ADDR = "http://127.0.0.1:8200";
services.vault.enable = true;
};
testScript =
''
startAll;
$machine->waitForUnit('multi-user.target');
$machine->waitForUnit('vault.service');
$machine->waitForOpenPort(8200);
$machine->succeed('vault init');
$machine->succeed('vault status | grep "Sealed: true"');
'';
})

View file

@ -1,16 +1,15 @@
{ lib, python2}: { lib, buildPythonApplication, fetchPypi, requests, requests-cache }:
python2.pkgs.buildPythonApplication rec { buildPythonApplication rec {
pname = "cryptop"; pname = "cryptop";
version = "0.1.0"; version = "0.2.0";
name = "${pname}-${version}";
src = python2.pkgs.fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "00glnlyig1aajh30knc5rnfbamwfxpg29js2db6mymjmfka8lbhh"; sha256 = "0akrrz735vjfrm78plwyg84vabj0x3qficq9xxmy9kr40fhdkzpb";
}; };
propagatedBuildInputs = [ python2.pkgs.requests ]; propagatedBuildInputs = [ requests requests-cache ];
# No tests in archive # No tests in archive
doCheck = false; doCheck = false;

View file

@ -1,4 +1,4 @@
{ callPackage, boost155, boost162, openssl_1_1_0, haskellPackages, darwin, libsForQt5, miniupnpc_2 }: { callPackage, boost155, boost162, openssl_1_1_0, haskellPackages, darwin, libsForQt5, miniupnpc_2, python3 }:
rec { rec {
@ -20,6 +20,8 @@ rec {
btc1 = callPackage ./btc1.nix { withGui = true; }; btc1 = callPackage ./btc1.nix { withGui = true; };
btc1d = callPackage ./btc1.nix { withGui = false; }; btc1d = callPackage ./btc1.nix { withGui = false; };
cryptop = python3.pkgs.callPackage ./cryptop { };
dashpay = callPackage ./dashpay.nix { }; dashpay = callPackage ./dashpay.nix { };
dogecoin = callPackage ./dogecoin.nix { withGui = true; }; dogecoin = callPackage ./dogecoin.nix { withGui = true; };

View file

@ -31,6 +31,10 @@ stdenv.mkDerivation rec{
then "install -D bitcoin-qt $out/bin/memorycoin-qt" then "install -D bitcoin-qt $out/bin/memorycoin-qt"
else "install -D bitcoind $out/bin/memorycoind"; else "install -D bitcoind $out/bin/memorycoind";
# `make build/version.o`:
# make: *** No rule to make target 'build/build.h', needed by 'build/version.o'. Stop.
enableParallelBuilding = false;
meta = { meta = {
description = "Peer-to-peer, CPU-based electronic cash system"; description = "Peer-to-peer, CPU-based electronic cash system";
longDescription= '' longDescription= ''

View file

@ -31,6 +31,10 @@ stdenv.mkDerivation rec{
then "install -D bitcoin-qt $out/bin/primecoin-qt" then "install -D bitcoin-qt $out/bin/primecoin-qt"
else "install -D bitcoind $out/bin/primecoind"; else "install -D bitcoind $out/bin/primecoind";
# `make build/version.o`:
# make: *** No rule to make target 'build/build.h', needed by 'build/version.o'. Stop.
enableParallelBuilding = false;
meta = { meta = {
description = "A new type cryptocurrency which is proof-of-work based on searching for prime numbers"; description = "A new type cryptocurrency which is proof-of-work based on searching for prime numbers";
longDescription= '' longDescription= ''

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, makeWrapper, python, alsaUtils, timidity }: { stdenv, fetchurl, makeWrapper, python, alsaUtils, timidity }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "15.12"; version = "16.06";
name = "mma-${version}"; name = "mma-${version}";
src = fetchurl { src = fetchurl {
url = "http://www.mellowood.ca/mma/mma-bin-${version}.tar.gz"; url = "http://www.mellowood.ca/mma/mma-bin-${version}.tar.gz";
sha256 = "0k37kcrfaxmwjb8xb1cbqinrkx3g50dbvwqbvwl3l762j4vr8jgx"; sha256 = "1g4gvc0nr0qjc0fyqrnx037zpaasgymgmrm5s7cdxqnld9wqw8ww";
}; };
buildInputs = [ makeWrapper python alsaUtils timidity ]; buildInputs = [ makeWrapper python alsaUtils timidity ];

View file

@ -16,11 +16,11 @@ let
stdenv_multi = overrideCC stdenv gcc_multi; stdenv_multi = overrideCC stdenv gcc_multi;
vst-sdk = stdenv.mkDerivation rec { vst-sdk = stdenv.mkDerivation rec {
name = "vstsdk366_27_06_2016_build_61"; name = "vstsdk368_08_11_2017_build_121";
src = requireFile { src = requireFile {
name = "${name}.zip"; name = "${name}.zip";
url = "http://www.steinberg.net/en/company/developers.html"; url = "http://www.steinberg.net/en/company/developers.html";
sha256 = "05gsr13bpi2hhp34rvhllsvmn44rqvmjdpg9fsgfzgylfkz0kiki"; sha256 = "e0f235d8826d70f1ae0ae5929cd198acae1ecff74612fde5c60cbfb45c2f4a70";
}; };
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];
installPhase = "cp -r . $out"; installPhase = "cp -r . $out";
@ -64,7 +64,7 @@ stdenv_multi.mkDerivation {
# Cf. https://github.com/phantom-code/airwave/issues/57 # Cf. https://github.com/phantom-code/airwave/issues/57
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
cmakeFlags = "-DVSTSDK_PATH=${vst-sdk}"; cmakeFlags = "-DVSTSDK_PATH=${vst-sdk}/VST2_SDK";
postInstall = '' postInstall = ''
mv $out/bin $out/libexec mv $out/bin $out/libexec

View file

@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
homepage = http://aj-snapshot.sourceforge.net/; homepage = http://aj-snapshot.sourceforge.net/;
license = licenses.gpl2; license = licenses.gpl2;
maintainers = [ maintainers.palo ]; maintainers = [ maintainers.mrVanDalo ];
platforms = platforms.all; platforms = platforms.all;
}; };
} }

View file

@ -3,11 +3,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "calf-${version}"; name = "calf-${version}";
version = "0.0.60"; version = "0.90.0";
src = fetchurl { src = fetchurl {
url = "http://calf-studio-gear.org/files/${name}.tar.gz"; url = "http://calf-studio-gear.org/files/${name}.tar.gz";
sha256 = "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9"; sha256 = "0dijv2j7vlp76l10s4v8gbav26ibaqk8s24ci74vrc398xy00cib";
}; };
buildInputs = [ buildInputs = [

View file

@ -6,7 +6,7 @@ let
src = fetchFromGitHub { src = fetchFromGitHub {
sha256 = "07m2wf2gqyya95b65gawrnr4pvc9jyzmg6h8sinzgxlpskz93wwc"; sha256 = "07m2wf2gqyya95b65gawrnr4pvc9jyzmg6h8sinzgxlpskz93wwc";
rev = "39053e8896eedd7b3e8a9e9a9ffd80f1fc6ceb16"; rev = "39053e8896eedd7b3e8a9e9a9ffd80f1fc6ceb16";
repo = "reaper"; repo = "REAPER";
owner = "gillesdegottex"; owner = "gillesdegottex";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -16,8 +16,8 @@ let
libqaudioextra = { libqaudioextra = {
src = fetchFromGitHub { src = fetchFromGitHub {
sha256 = "17pvlij8cc4lwzf6f1cnygj3m3ci6xfa3lv5bgcr5i1gzyjxqpq1"; sha256 = "0m6x1qm7lbjplqasr2jhnd2ndi0y6z9ybbiiixnlwfm23sp15wci";
rev = "b7d187cd9a1fd76ea94151e2e02453508d0151d3"; rev = "9ae051989a8fed0b2f8194b1501151909a821a89";
repo = "libqaudioextra"; repo = "libqaudioextra";
owner = "gillesdegottex"; owner = "gillesdegottex";
}; };
@ -28,10 +28,10 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "dfasma-${version}"; name = "dfasma-${version}";
version = "1.2.5"; version = "1.4.5";
src = fetchFromGitHub { src = fetchFromGitHub {
sha256 = "0mgy2bkmyp7lvaqsr7hkndwdgjf26mlpsj6smrmn1vp0cqyrw72d"; sha256 = "09fcyjm0hg3y51fnjax88m93im39nbynxj79ffdknsazmqw9ac0h";
rev = "v${version}"; rev = "v${version}";
repo = "dfasma"; repo = "dfasma";
owner = "gillesdegottex"; owner = "gillesdegottex";
@ -42,13 +42,9 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ qmake ]; nativeBuildInputs = [ qmake ];
postPatch = '' postPatch = ''
substituteInPlace dfasma.pro --replace '$$DFASMAVERSIONGITPRO' '${version}'
cp -Rv "${reaperFork.src}"/* external/REAPER cp -Rv "${reaperFork.src}"/* external/REAPER
cp -Rv "${libqaudioextra.src}"/* external/libqaudioextra cp -Rv "${libqaudioextra.src}"/* external/libqaudioextra
''; substituteInPlace dfasma.pro --replace "CONFIG += file_sdif" "";
preConfigure = ''
qmakeFlags="$qmakeFlags PREFIXSHORTCUT=$out"
''; '';
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -2,12 +2,12 @@
, libxslt, lv2, pkgconfig, premake3, xorg, ladspa-sdk }: , libxslt, lv2, pkgconfig, premake3, xorg, ladspa-sdk }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "distrho-ports-unstable-2017-08-04"; name = "distrho-ports-unstable-2017-10-10";
src = fetchgit { src = fetchgit {
url = "https://github.com/DISTRHO/DISTRHO-Ports.git"; url = "https://github.com/DISTRHO/DISTRHO-Ports.git";
rev = "f591a1066cd3929536699bb516caa4b5efd9d025"; rev = "e11e2b204c14b8e370a0bf5beafa5f162fedb8e9";
sha256 = "1qjnmpmwbq2zpwn8v1dmqn3bjp2ykj5p89fkjax7idgpx1cg7pp9"; sha256 = "1nd542iian9kr2ldaf7fkkgf900ryzqigks999d1jhms6p0amvfv";
}; };
patchPhase = '' patchPhase = ''
@ -38,11 +38,11 @@ stdenv.mkDerivation rec {
longDescription = '' longDescription = ''
Includes: Includes:
Dexed drowaudio-distortion drowaudio-distortionshaper drowaudio-flanger Dexed drowaudio-distortion drowaudio-distortionshaper drowaudio-flanger
drowaudio-reverb drowaudio-tremolo drumsynt EasySSP eqinox drowaudio-reverb drowaudio-tremolo drumsynth EasySSP eqinox HiReSam
JuceDemoPlugin klangfalter LUFSMeter luftikus obxd pitchedDelay JuceDemoPlugin KlangFalter LUFSMeter LUFSMeterMulti Luftikus Obxd
stereosourceseparation TAL-Dub-3 TAL-Filter TAL-Filter-2 TAL-NoiseMaker PitchedDelay ReFine StereoSourceSeparation TAL-Dub-3 TAL-Filter
TAL-Reverb TAL-Reverb-2 TAL-Reverb-3 TAL-Vocoder-2 TheFunction TAL-Filter-2 TAL-NoiseMaker TAL-Reverb TAL-Reverb-2 TAL-Reverb-3
ThePilgrim Vex Wolpertinger TAL-Vocoder-2 TheFunction ThePilgrim Vex Wolpertinger
''; '';
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "drumkv1-${version}"; name = "drumkv1-${version}";
version = "0.8.4"; version = "0.8.5";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/drumkv1/${name}.tar.gz"; url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
sha256 = "0qqpklzy4wgw9jy0v2810j06712q90bwc69fp7da82536ba058a9"; sha256 = "06xqqm1ylmpp2s7xk7xav325gc50kxlvh9vf1343b0n3i8xkgjfg";
}; };
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ]; buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];

View file

@ -1,34 +1,31 @@
{ stdenv, fetchurl, alsaLib, glib, libjack2, libsndfile, pkgconfig { stdenv, lib, fetchFromGitHub, pkgconfig, cmake
, libpulseaudio, CoreServices, CoreAudio, AudioUnit }: , alsaLib, glib, libjack2, libsndfile, libpulseaudio
, AudioUnit, CoreAudio, CoreMIDI, CoreServices
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "fluidsynth-${version}"; name = "fluidsynth-${version}";
version = "1.1.6"; version = "1.1.8";
src = fetchurl { src = fetchFromGitHub {
url = "mirror://sourceforge/fluidsynth/${name}.tar.bz2"; owner = "FluidSynth";
sha256 = "00gn93bx4cz9bfwf3a8xyj2by7w23nca4zxf09ll53kzpzglg2yj"; repo = "fluidsynth";
rev = "v${version}";
sha256 = "12q7hv0zvgylsdj1ipssv5zr7ap2y410dxsd63dz22y05fa2hwwd";
}; };
preBuild = stdenv.lib.optionalString stdenv.isDarwin '' nativeBuildInputs = [ pkgconfig cmake ];
sed -i '40 i\
#include <CoreAudio/AudioHardware.h>\
#include <CoreAudio/AudioHardwareDeprecated.h>' \
src/drivers/fluid_coreaudio.c
'';
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin
"-framework CoreAudio -framework CoreServices";
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ glib libsndfile ] buildInputs = [ glib libsndfile ]
++ stdenv.lib.optionals (!stdenv.isDarwin) [ alsaLib libpulseaudio libjack2 ] ++ lib.optionals (!stdenv.isDarwin) [ alsaLib libpulseaudio libjack2 ]
++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices CoreAudio AudioUnit ]; ++ lib.optionals stdenv.isDarwin [ AudioUnit CoreAudio CoreMIDI CoreServices ];
meta = with stdenv.lib; { cmakeFlags = lib.optional stdenv.isDarwin "-Denable-framework=off";
meta = with lib; {
description = "Real-time software synthesizer based on the SoundFont 2 specifications"; description = "Real-time software synthesizer based on the SoundFont 2 specifications";
homepage = http://www.fluidsynth.org; homepage = http://www.fluidsynth.org;
license = licenses.lgpl2; license = licenses.lgpl21Plus;
maintainers = with maintainers; [ goibhniu lovek323 ]; maintainers = with maintainers; [ goibhniu lovek323 ];
platforms = platforms.unix; platforms = platforms.unix;
}; };

View file

@ -11,10 +11,10 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "fmit-${version}"; name = "fmit-${version}";
version = "1.1.11"; version = "1.1.13";
src = fetchFromGitHub { src = fetchFromGitHub {
sha256 = "1w492lf8n2sjkr53z8cvkgywzn0w53cf78hz93zaw6dwwv36lwdp"; sha256 = "1p374gf7iksrlyvddm3w4qk3l0rxsiyymz5s8dmc447yvin8ykfq";
rev = "v${version}"; rev = "v${version}";
repo = "fmit"; repo = "fmit";
owner = "gillesdegottex"; owner = "gillesdegottex";

View file

@ -1,25 +1,25 @@
{ stdenv, fetchsvn, autoconf, automake, docbook_xml_dtd_45 { stdenv, fetchurl, autoconf, automake, intltool, libtool, pkgconfig, which
, docbook_xsl, gtkmm2, intltool, libgig, libsndfile, libtool, libxslt , docbook_xml_dtd_45, docbook_xsl, gtkmm2, libgig, libsndfile, libxslt
, pkgconfig }: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gigedit-svn-${version}"; name = "gigedit-${version}";
version = "2342"; version = "1.1.0";
src = fetchsvn { src = fetchurl {
url = "https://svn.linuxsampler.org/svn/gigedit/trunk"; url = "http://download.linuxsampler.org/packages/${name}.tar.bz2";
rev = "${version}"; sha256 = "087pc919q28r1vw31c7w4m14bqnp4md1i2wbmk8w0vmwv2cbx2ni";
sha256 = "0wi94gymj0ns5ck9lq1d970gb4gnzrq4b57j5j7k3d6185yg2gjs";
}; };
patchPhase = "sed -e 's/which/type -P/g' -i Makefile.cvs"; patches = [ ./gigedit-1.1.0-pangomm-2.40.1.patch ];
preConfigure = "make -f Makefile.cvs"; preConfigure = "make -f Makefile.svn";
buildInputs = [ nativeBuildInputs = [ autoconf automake intltool libtool pkgconfig which ];
autoconf automake docbook_xml_dtd_45 docbook_xsl gtkmm2 intltool
libgig libsndfile libtool libxslt pkgconfig buildInputs = [ docbook_xml_dtd_45 docbook_xsl gtkmm2 libgig libsndfile libxslt ];
];
enableParallelBuilding = true;
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://www.linuxsampler.org; homepage = http://www.linuxsampler.org;

View file

@ -0,0 +1,15 @@
--- a/src/gigedit/wrapLabel.cc
+++ b/src/gigedit/wrapLabel.cc
@@ -64,12 +64,7 @@ WrapLabel::WrapLabel(const Glib::ustring &text) // IN: The label text
: mWrapWidth(0),
mWrapHeight(0)
{
- // pangomm >= 2.35.1
-#if PANGOMM_MAJOR_VERSION > 2 || (PANGOMM_MAJOR_VERSION == 2 && (PANGOMM_MINOR_VERSION > 35 || (PANGOMM_MINOR_VERSION == 35 && PANGOMM_MICRO_VERSION >= 1)))
- get_layout()->set_wrap(Pango::WrapMode::WORD_CHAR);
-#else
get_layout()->set_wrap(Pango::WRAP_WORD_CHAR);
-#endif
set_alignment(0.0, 0.0);
set_text(text);
}

View file

@ -74,6 +74,6 @@ stdenv.mkDerivation {
description = "A beautiful cross platform Desktop Player for Google Play Music"; description = "A beautiful cross platform Desktop Player for Google Play Music";
license = stdenv.lib.licenses.mit; license = stdenv.lib.licenses.mit;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = stdenv.lib.maintainers.SuprDewd; maintainers = [ stdenv.lib.maintainers.SuprDewd ];
}; };
} }

View file

@ -12,11 +12,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "guitarix-${version}"; name = "guitarix-${version}";
version = "0.35.6"; version = "0.36.1";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz"; url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
sha256 = "0ffvfnvhj6vz73zsrpi88hs69ys4zskm847zf825dl2r39n9nn41"; sha256 = "1g5949jwh2n755xjs3kcbdb8a1wxr5mn0m115wdnk27dxcdn93b0";
}; };
nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ]; nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ];

View file

@ -2,10 +2,10 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "keyfinder-${version}"; name = "keyfinder-${version}";
version = "2.1"; version = "2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
sha256 = "0j9k90ll4cr8j8dywb6zf1bs9vijlx7m4zsh6w9hxwrr7ymz89hn"; sha256 = "0vjszk1h8vj2qycgbffzy6k7amg75jlvlnzwaqhz9nll2pcvw0zl";
rev = version; rev = version;
repo = "is_KeyFinder"; repo = "is_KeyFinder";
owner = "ibsh"; owner = "ibsh";
@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
postPatch = '' postPatch = ''
substituteInPlace is_KeyFinder.pro \ substituteInPlace is_KeyFinder.pro \
--replace "keyfinder.0" "keyfinder" \ --replace "keyfinder.0" "keyfinder" \
--replace "-stdlib=libc++" "" --replace "-stdlib=libc++" "" \
--replace "\$\$[QT_INSTALL_PREFIX]" "$out"
''; '';
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -3,7 +3,7 @@ stdenv.mkDerivation rec {
name = "ladspa-sdk-${version}"; name = "ladspa-sdk-${version}";
version = "1.13"; version = "1.13";
src = fetchurl { src = fetchurl {
url = "http://http.debian.net/debian/pool/main/l/ladspa-sdk/ladspa-sdk_${version}.orig.tar.gz"; url = "http://www.ladspa.org/download/ladspa_sdk_${version}.tgz";
sha256 = "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"; sha256 = "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm";
}; };

View file

@ -3,7 +3,7 @@ stdenv.mkDerivation rec {
name = "ladspa.h-${version}"; name = "ladspa.h-${version}";
version = "1.13"; version = "1.13";
src = fetchurl { src = fetchurl {
url = "http://http.debian.net/debian/pool/main/l/ladspa-sdk/ladspa-sdk_${version}.orig.tar.gz"; url = "http://www.ladspa.org/download/ladspa_sdk_${version}.tgz";
sha256 = "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"; sha256 = "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm";
}; };

View file

@ -1,31 +1,24 @@
{ stdenv, fetchsvn, alsaLib, asio, autoconf, automake, bison { stdenv, fetchurl, autoconf, automake, bison, libtool, pkgconfig, which
, libjack2, libgig, libsndfile, libtool, lv2, pkgconfig }: , alsaLib, asio, libjack2, libgig, libsndfile, lv2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "linuxsampler-svn-${version}"; name = "linuxsampler-${version}";
version = "2340"; version = "2.1.0";
src = fetchsvn { src = fetchurl {
url = "https://svn.linuxsampler.org/svn/linuxsampler/trunk"; url = "http://download.linuxsampler.org/packages/${name}.tar.bz2";
rev = "${version}"; sha256 = "0fdxpw7jjfi058l95131d6d8538h05z7n94l60i6mhp9xbplj2jf";
sha256 = "0zsrvs9dwwhjx733m45vfi11yjkqv33z8qxn2i9qriq5zs1f0kd7";
}; };
patches = ./linuxsampler_lv2_sfz_fix.diff;
# It fails to compile without this option. I'm not sure what the bug
# is, but everything works OK for me (goibhniu).
configureFlags = [ "--disable-nptl-bug-check" ];
preConfigure = '' preConfigure = ''
sed -e 's/which/type -P/g' -i scripts/generate_parser.sh make -f Makefile.svn
make -f Makefile.cvs
''; '';
buildInputs = [ nativeBuildInputs = [ autoconf automake bison libtool pkgconfig which ];
alsaLib asio autoconf automake bison libjack2 libgig libsndfile
libtool lv2 pkgconfig buildInputs = [ alsaLib asio libjack2 libgig libsndfile lv2 ];
];
enableParallelBuilding = true;
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://www.linuxsampler.org; homepage = http://www.linuxsampler.org;

View file

@ -1,50 +0,0 @@
Index: linuxsampler-r2359/src/hostplugins/lv2/PluginLv2.cpp
===================================================================
--- linuxsampler-r2359/src/hostplugins/lv2/PluginLv2.cpp (revision 2359)
+++ linuxsampler-r2359/src/hostplugins/lv2/PluginLv2.cpp (working copy)
@@ -18,6 +18,8 @@
* MA 02110-1301 USA *
***************************************************************************/
+#define _BSD_SOURCE 1 /* for realpath() */
+
#include <algorithm>
#include <cassert>
#include <cstdio>
@@ -118,6 +120,23 @@
dmsg(2, ("linuxsampler: Deactivate\n"));
}
+ static String RealPath(const String& path)
+ {
+ String out = path;
+ char* cpath = NULL;
+#ifdef _WIN32
+ cpath = (char*)malloc(MAX_PATH);
+ GetFullPathName(path.c_str(), MAX_PATH, cpath, NULL);
+#else
+ cpath = realpath(path.c_str(), NULL);
+#endif
+ if (cpath) {
+ out = cpath;
+ free(cpath);
+ }
+ return out;
+ }
+
String PluginLv2::PathToState(const String& path) {
if (MapPath) {
char* cstr = MapPath->abstract_path(MapPath->handle, path.c_str());
@@ -131,9 +150,10 @@
String PluginLv2::PathFromState(const String& path) {
if (MapPath) {
char* cstr = MapPath->absolute_path(MapPath->handle, path.c_str());
- const String abstract_path(cstr);
+ // Resolve symbolic links so SFZ sample paths load correctly
+ const String absolute_path(RealPath(cstr));
free(cstr);
- return abstract_path;
+ return absolute_path;
}
return path;
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, makeWrapper, SDL , alsaLib, gtk2, libjack2, ladspaH { stdenv, fetchurl, makeWrapper, SDL, alsaLib, autoreconfHook, gtk2, libjack2, ladspaH
, ladspaPlugins, libsamplerate, libsndfile, pkgconfig, libpulseaudio, lame , ladspaPlugins, libsamplerate, libsndfile, pkgconfig, libpulseaudio, lame
, vorbis-tools }: , vorbis-tools }:
@ -7,12 +7,18 @@ stdenv.mkDerivation rec {
version = "1.4.23"; version = "1.4.23";
src = fetchurl { src = fetchurl {
url = "http://download.gna.org/mhwaveedit/${name}.tar.bz2"; url = "https://github.com/magnush/mhwaveedit/archive/v${version}.tar.gz";
sha256 = "010rk4mr631s440q9cfgdxx2avgzysr9aq52diwdlbq9cddifli3"; sha256 = "1lvd54d8kpxwl4gihhznx1b5skhibz4vfxi9k2kwqg808jfgz37l";
}; };
buildInputs = [ SDL alsaLib gtk2 libjack2 ladspaH libsamplerate libsndfile nativeBuildInputs = [ autoreconfHook ];
pkgconfig libpulseaudio makeWrapper ];
preAutoreconf = "(cd docgen && sh gendocs.sh)";
buildInputs = [
SDL alsaLib gtk2 libjack2 ladspaH libsamplerate libsndfile
pkgconfig libpulseaudio makeWrapper
];
configureFlags = "--with-default-ladspa-path=${ladspaPlugins}/lib/ladspa"; configureFlags = "--with-default-ladspa-path=${ladspaPlugins}/lib/ladspa";

View file

@ -1,19 +1,19 @@
{ stdenv, fetchFromGitHub, lv2 }: { stdenv, fetchFromGitHub, lv2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mod-distortion-${version}"; name = "mod-distortion-git-${version}";
version = "git-2015-05-18"; version = "2016-08-19";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "portalmod"; owner = "portalmod";
repo = "mod-distortion"; repo = "mod-distortion";
rev = "0cdf186abc2a9275890b57057faf5c3f6d86d84a"; rev = "e672d5feb9d631798e3d56eb96e8958c3d2c6821";
sha256 = "1wmxgpcdcy9m7j78yq85824if0wz49wv7mw13bj3sw2s87dcmw19"; sha256 = "005wdkbhn9dgjqv019cwnziqg86yryc5vh7j5qayrzh9v446dw34";
}; };
buildInputs = [ lv2 ]; buildInputs = [ lv2 ];
installFlags = [ "LV2_PATH=$(out)/lib/lv2" ]; installFlags = [ "INSTALL_PATH=$(out)/lib/lv2" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://github.com/portalmod/mod-distortion; homepage = https://github.com/portalmod/mod-distortion;

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "padthv1-${version}"; name = "padthv1-${version}";
version = "0.8.4"; version = "0.8.5";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/padthv1/${name}.tar.gz"; url = "mirror://sourceforge/padthv1/${name}.tar.gz";
sha256 = "1p6wfgh90h7gj1j3hlvwik3zj07xamkxbya85va2lsj6fkkkk20r"; sha256 = "0dyrllxgd74nknixjcz6n7m4gw70v246s8z1qss7zfl5yllhb712";
}; };
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ]; buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ];

View file

@ -1,30 +1,31 @@
{ stdenv, fetchurl, autoreconfHook, gettext, makeWrapper { stdenv, fetchurl, autoreconfHook, gettext, makeWrapper
, alsaLib, libjack2, tk , alsaLib, libjack2, tk, fftw
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "puredata-${version}"; name = "puredata-${version}";
version = "0.47-1"; version = "0.48-0";
src = fetchurl { src = fetchurl {
url = "http://msp.ucsd.edu/Software/pd-${version}.src.tar.gz"; url = "http://msp.ucsd.edu/Software/pd-${version}.src.tar.gz";
sha256 = "0k5s949kqd7yw97h3m8z81bjz32bis9m4ih8df1z0ymipnafca67"; sha256 = "0wy9kl2v00fl27x4mfzhbca415hpaisp6ls8a6mkl01qbw20krny";
}; };
patchPhase = ''
rm portaudio/configure.in
'';
nativeBuildInputs = [ autoreconfHook gettext makeWrapper ]; nativeBuildInputs = [ autoreconfHook gettext makeWrapper ];
buildInputs = [ alsaLib libjack2 ]; buildInputs = [ alsaLib libjack2 fftw ];
configureFlags = '' configureFlags = ''
--enable-alsa --enable-alsa
--enable-jack --enable-jack
--enable-fftw
--disable-portaudio --disable-portaudio
''; '';
# https://github.com/pure-data/pure-data/issues/188
# --disable-oss
postInstall = '' postInstall = ''
wrapProgram $out/bin/pd --prefix PATH : ${tk}/bin wrapProgram $out/bin/pd --prefix PATH : ${tk}/bin
''; '';

View file

@ -1,21 +1,22 @@
{ stdenv, fetchsvn, autoconf, automake, liblscp, libtool, pkgconfig { stdenv, fetchurl, autoconf, automake, libtool, pkgconfig, qttools
, qt4 }: , liblscp, libgig, qtbase }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qsampler-svn-${version}"; name = "qsampler-${version}";
version = "2342"; version = "0.4.3";
src = fetchsvn { src = fetchurl {
url = "https://svn.linuxsampler.org/svn/qsampler/trunk"; url = "mirror://sourceforge/qsampler/${name}.tar.gz";
rev = "${version}"; sha256 = "1wg19022gyzy8rk9npfav9kz9z2qicqwwb2x5jz5hshzf3npx1fi";
sha256 = "17w3vgpgfmvl11wsd5ndk9zdggl3gbzv3wbd45dyf2al4i0miqnx";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ autoconf automake libtool pkgconfig qttools ];
buildInputs = [ autoconf automake liblscp libtool qt4 ]; buildInputs = [ liblscp libgig qtbase ];
preConfigure = "make -f Makefile.svn"; preConfigure = "make -f Makefile.svn";
enableParallelBuilding = true;
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://www.linuxsampler.org; homepage = http://www.linuxsampler.org;
description = "Graphical frontend to LinuxSampler"; description = "Graphical frontend to LinuxSampler";

View file

@ -1,15 +1,17 @@
{ stdenv, fetchurl, alsaLib, fluidsynth, libjack2, qt4 }: { stdenv, fetchurl, alsaLib, fluidsynth, libjack2, qtbase, qttools, qtx11extras, cmake, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qsynth-${version}"; name = "qsynth-${version}";
version = "0.3.9"; version = "0.4.4";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/qsynth/${name}.tar.gz"; url = "mirror://sourceforge/qsynth/${name}.tar.gz";
sha256 = "08kyn6cl755l9i1grzjx8yi3f8mgiz4gx0hgqad1n0d8yz85087b"; sha256 = "0qhfnikx3xcllkvs60kj6vcf2rwwzh31y41qkk6kwfhzgd219y8f";
}; };
buildInputs = [ alsaLib fluidsynth libjack2 qt4 ]; nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ alsaLib fluidsynth libjack2 qtbase qttools qtx11extras ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Fluidsynth GUI"; description = "Fluidsynth GUI";

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "samplv1-${version}"; name = "samplv1-${version}";
version = "0.8.4"; version = "0.8.5";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/samplv1/${name}.tar.gz"; url = "mirror://sourceforge/samplv1/${name}.tar.gz";
sha256 = "107p2xsj066q2bil0xcgqrrn7lawp02wzf7qmlajcbnd79jhsi6i"; sha256 = "1gscwybsbaqbnylmgf2baf71cm2g7a0pd11rqmk3cz9hi3lyjric";
}; };
buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools]; buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools];

View file

@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
homepage = http://spatialaudio.net/ssr/; homepage = http://spatialaudio.net/ssr/;
description = "The SoundScape Renderer (SSR) is a tool for real-time spatial audio reproduction"; description = "The SoundScape Renderer (SSR) is a tool for real-time spatial audio reproduction";
license = stdenv.lib.licenses.gpl3; license = stdenv.lib.licenses.gpl3;
maintainer = stdenv.lib.maintainers.fridh; maintainers = [ stdenv.lib.maintainers.fridh ];
}; };
} }

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "synthv1-${version}"; name = "synthv1-${version}";
version = "0.8.4"; version = "0.8.5";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/synthv1/${name}.tar.gz"; url = "mirror://sourceforge/synthv1/${name}.tar.gz";
sha256 = "0awk2zx0xa6vl6ah24zz0k2mwsx50hh5g1rh32mp790fp4x7l5s8"; sha256 = "0mvrqk6jy7h2wg442ixwm49w7x15rs4066c2ljrz4kvxlzp5z69i";
}; };
buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ]; buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ];

View file

@ -6,11 +6,11 @@ assert stdenv ? glibc;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "yoshimi-${version}"; name = "yoshimi-${version}";
version = "1.5.3"; version = "1.5.4.1";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2"; url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
sha256 = "0sns35pyw2f74xrv1fxiyf9g9415kvh2rrbdjd60hsiv584nlari"; sha256 = "1r5mgjlxyabm3nd3vcnfwywk46531vy2j3k8pjbfwadjkvp52vj6";
}; };
buildInputs = [ buildInputs = [

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2 { stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2
, intltool, xlibsWrapper, libxklavier, libgcrypt, libaudit , intltool, xlibsWrapper, libxklavier, libgcrypt, libaudit, coreutils
, qt4 ? null , qt4 ? null
, withQt5 ? false, qtbase , withQt5 ? false, qtbase
}: }:
@ -36,6 +36,11 @@ stdenv.mkDerivation rec {
"localstatedir=\${TMPDIR}" "localstatedir=\${TMPDIR}"
]; ];
prePatch = ''
substituteInPlace src/shared-data-manager.c \
--replace /bin/rm ${coreutils}/bin/rm
'';
meta = { meta = {
homepage = https://launchpad.net/lightdm; homepage = https://launchpad.net/lightdm;
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -4,8 +4,7 @@
}: }:
let let
version = "0.17.0";
version = "0.16.0";
in mkDerivation rec { in mkDerivation rec {
name = "sddm-${version}"; name = "sddm-${version}";
@ -14,7 +13,7 @@ in mkDerivation rec {
owner = "sddm"; owner = "sddm";
repo = "sddm"; repo = "sddm";
rev = "v${version}"; rev = "v${version}";
sha256 = "1j0rc8nk8bz7sxa0bc6lx9v7r3zlcfyicngfjqb894ni9k71kzsb"; sha256 = "1m35ly6miwy8ivsln3j1bfv0nxbc4gyqnj7f847zzp53jsqrm3mq";
}; };
patches = [ ./sddm-ignore-config-mtime.patch ]; patches = [ ./sddm-ignore-config-mtime.patch ];

View file

@ -27,9 +27,9 @@ in rec {
preview = mkStudio { preview = mkStudio {
pname = "android-studio-preview"; pname = "android-studio-preview";
version = "3.1.0.3"; # "Android Studio 3.1 Canary 4" version = "3.1.0.4"; # "Android Studio 3.1 Canary 5"
build = "171.4444016"; build = "171.4474551";
sha256Hash = "0qgd0hd3i3p1adv0xqa0409r5injw3ygs50lajzi99s33j6vdc6s"; sha256Hash = "0rgz1p67ra4q0jjb343xqm7c3yrpk1mly8r80cvpqqqq4xgfwa20";
meta = stable.meta // { meta = stable.meta // {
description = "The Official IDE for Android (preview version)"; description = "The Official IDE for Android (preview version)";

View file

@ -11,27 +11,9 @@ stdenv.mkDerivation rec {
sha256 = "1nqhk3n1s1p77g2bjnj55acicsrlyb2yasqxqwpx0w0djfx64ygm"; sha256 = "1nqhk3n1s1p77g2bjnj55acicsrlyb2yasqxqwpx0w0djfx64ygm";
}; };
unpackCmd = "tar --lzip -xf";
nativeBuildInputs = [ lzip ]; nativeBuildInputs = [ lzip ];
/* FIXME: Tests currently fail on Darwin: doCheck = hostPlatform == buildPlatform;
building test scripts for ed-1.5...
testing ed-1.5...
*** Output e1.o of script e1.ed is incorrect ***
*** Output r3.o of script r3.ed is incorrect ***
make: *** [check] Error 127
*/
doCheck = !(hostPlatform.isDarwin || hostPlatform != buildPlatform);
installFlags = [ "DESTDIR=$(out)" ];
configureFlags = [
"--exec-prefix=${stdenv.cc.targetPrefix}"
"CC=${stdenv.cc.targetPrefix}cc"
];
meta = { meta = {
description = "An implementation of the standard Unix editor"; description = "An implementation of the standard Unix editor";

View file

@ -175,10 +175,10 @@
}) {}; }) {};
auctex = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { auctex = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "auctex"; pname = "auctex";
version = "11.91.0"; version = "11.92.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/auctex-11.91.0.tar"; url = "https://elpa.gnu.org/packages/auctex-11.92.0.tar";
sha256 = "1yh182mxgngjmwpkyv2n9km3vyq95bqfq8mnly3dbv78nwk7f2l3"; sha256 = "147xfb64jxpl4262xrn4cxm6h86ybgr3aa1qq6vs6isnqczh7491";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -483,10 +483,10 @@
}) {}; }) {};
csv-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { csv-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "csv-mode"; pname = "csv-mode";
version = "1.6"; version = "1.7";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/csv-mode-1.6.el"; url = "https://elpa.gnu.org/packages/csv-mode-1.7.el";
sha256 = "1v86qna1ypnr55spf6kjiqybplfbb8ak5gnnifh9vghsgb5jkb6a"; sha256 = "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -755,10 +755,10 @@
el-search = callPackage ({ elpaBuild, emacs, fetchurl, lib, stream }: el-search = callPackage ({ elpaBuild, emacs, fetchurl, lib, stream }:
elpaBuild { elpaBuild {
pname = "el-search"; pname = "el-search";
version = "1.4"; version = "1.4.0.8";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/el-search-1.4.tar"; url = "https://elpa.gnu.org/packages/el-search-1.4.0.8.tar";
sha256 = "0fzsq1wdkb94dk67ligdwc7kyl0x9bifgl2qvvf0hsj4zws4pgjg"; sha256 = "1gk42n04f1h2vc8sp86gvi795qgnvnh4cyyqfvy6sz1pfix76kfl";
}; };
packageRequires = [ emacs stream ]; packageRequires = [ emacs stream ];
meta = { meta = {
@ -848,10 +848,10 @@
}) {}; }) {};
exwm = callPackage ({ elpaBuild, fetchurl, lib, xelb }: elpaBuild { exwm = callPackage ({ elpaBuild, fetchurl, lib, xelb }: elpaBuild {
pname = "exwm"; pname = "exwm";
version = "0.15"; version = "0.16";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/exwm-0.15.tar"; url = "https://elpa.gnu.org/packages/exwm-0.16.tar";
sha256 = "1y7nqry9y0a99bsdqkk9f554vczfw4sz6raadw3138835qy697jg"; sha256 = "0c4w5k9lzqj8yzhdqipdb4fs7ld2qklc6s137104jnfdvmrwcv2i";
}; };
packageRequires = [ xelb ]; packageRequires = [ xelb ];
meta = { meta = {
@ -929,6 +929,20 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
gle-mode = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "gle-mode";
version = "1.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/gle-mode-1.1.el";
sha256 = "0p9glalhkf8i4486pjwvrb9z4lqxl6jcqfk6jrjl6b1xi72xmdi0";
};
packageRequires = [ cl-lib ];
meta = {
homepage = "https://elpa.gnu.org/packages/gle-mode.html";
license = lib.licenses.free;
};
}) {};
gnome-c-style = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { gnome-c-style = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "gnome-c-style"; pname = "gnome-c-style";
version = "0.1"; version = "0.1";
@ -945,10 +959,10 @@
gnorb = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: gnorb = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "gnorb"; pname = "gnorb";
version = "1.3.1"; version = "1.3.4";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/gnorb-1.3.1.tar"; url = "https://elpa.gnu.org/packages/gnorb-1.3.4.tar";
sha256 = "1g6xldkc6l6zlzd1slqizbbd5b9k4pbr66nrf5svidgiy7mlifw5"; sha256 = "0yw46bzv80awd2zirwqc28bl70q1x431lqan71lm6qwli0bha2w0";
}; };
packageRequires = [ cl-lib ]; packageRequires = [ cl-lib ];
meta = { meta = {
@ -1053,10 +1067,10 @@
}) {}; }) {};
hyperbole = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { hyperbole = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "hyperbole"; pname = "hyperbole";
version = "7.0.0"; version = "7.0.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/hyperbole-7.0.0.tar"; url = "https://elpa.gnu.org/packages/hyperbole-7.0.2.tar";
sha256 = "07cy40yfxwka1r6i01pgrf9a3n9ms5xw2x486jd803dhfkm3113b"; sha256 = "1hgwa740941a9s5wf1cqf76h3af8qbiiw9sc76biz6m3vx0hy1zs";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1092,10 +1106,10 @@
}) {}; }) {};
ivy = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { ivy = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "ivy"; pname = "ivy";
version = "0.9.1"; version = "0.10.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/ivy-0.9.1.tar"; url = "https://elpa.gnu.org/packages/ivy-0.10.0.tar";
sha256 = "1jfc3zf6ln7i8pp5j0fpsai2w847v5g77b5fzlxbgvj80g3v5887"; sha256 = "01m58inpd8jbfvzqsrwigzjfld9a66nf36cbya26dmdy7vwdm8xm";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1570,10 +1584,10 @@
}) {}; }) {};
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org"; pname = "org";
version = "20171120"; version = "20171205";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/org-20171120.tar"; url = "https://elpa.gnu.org/packages/org-20171205.tar";
sha256 = "0hxy061g1qd77pvx8mq5rb9avx139x4z5nmjhdq518xhg7kxmq6a"; sha256 = "0a1rm94ci47jf5579sxscily680ysmy3hnxjcs073n45nk76za04";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -1972,6 +1986,19 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
sql-indent = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "sql-indent";
version = "1.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/sql-indent-1.0.tar";
sha256 = "02cmi96mqk3bfmdh0xv5s0qx310cirs6kq0jqwk1ga41rpp596vl";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/sql-indent.html";
license = lib.licenses.free;
};
}) {};
stream = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { stream = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "stream"; pname = "stream";
version = "2.2.4"; version = "2.2.4";

View file

@ -36,6 +36,8 @@ self:
}; };
overrides = { overrides = {
# upstream issue: missing footer
ebdb-i18n-chn = markBroken super.ebdb-i18n-chn;
el-search = markBroken super.el-search; # requires emacs-25 el-search = markBroken super.el-search; # requires emacs-25
iterators = markBroken super.iterators; # requires emacs-25 iterators = markBroken super.iterators; # requires emacs-25
midi-kbd = markBroken super.midi-kbd; # requires emacs-25 midi-kbd = markBroken super.midi-kbd; # requires emacs-25

File diff suppressed because it is too large Load diff

View file

@ -66,6 +66,9 @@ self:
# upstream issue: missing file header # upstream issue: missing file header
elmine = markBroken super.elmine; elmine = markBroken super.elmine;
# upstream issue: missing dependency redshank
emr = markBroken super.emr;
ess-R-data-view = super.ess-R-data-view.override { ess-R-data-view = super.ess-R-data-view.override {
inherit (self.melpaPackages) ess ctable popup; inherit (self.melpaPackages) ess ctable popup;
}; };
@ -74,6 +77,12 @@ self:
inherit (self.melpaPackages) ess popup; inherit (self.melpaPackages) ess popup;
}; };
# upstream issue: missing dependency highlight
evil-search-highlight-persist = markBroken super.evil-search-highlight-persist;
# upstream issue: missing dependency highlight
floobits = markBroken super.floobits;
# missing OCaml # missing OCaml
flycheck-ocaml = markBroken super.flycheck-ocaml; flycheck-ocaml = markBroken super.flycheck-ocaml;
@ -147,6 +156,9 @@ self:
# upstream issue: missing file footer # upstream issue: missing file footer
seoul256-theme = markBroken super.seoul256-theme; seoul256-theme = markBroken super.seoul256-theme;
# upstream issue: missing dependency highlight
sonic-pi = markBroken super.sonic-pi;
spaceline = super.spaceline.override { spaceline = super.spaceline.override {
inherit (self.melpaPackages) powerline; inherit (self.melpaPackages) powerline;
}; };

View file

@ -65,6 +65,9 @@ self:
# upstream issue: missing file header # upstream issue: missing file header
elmine = markBroken super.elmine; elmine = markBroken super.elmine;
# upstream issue: missing dependency redshank
emr = markBroken super.emr;
ess-R-data-view = super.ess-R-data-view.override { ess-R-data-view = super.ess-R-data-view.override {
inherit (self.melpaPackages) ess ctable popup; inherit (self.melpaPackages) ess ctable popup;
}; };
@ -73,6 +76,12 @@ self:
inherit (self.melpaPackages) ess popup; inherit (self.melpaPackages) ess popup;
}; };
# upstream issue: missing dependency highlight
evil-search-highlight-persist = markBroken super.evil-search-highlight-persist;
# upstream issue: missing dependency highlight
floobits = markBroken super.floobits;
# missing OCaml # missing OCaml
flycheck-ocaml = markBroken super.flycheck-ocaml; flycheck-ocaml = markBroken super.flycheck-ocaml;

View file

@ -1,10 +1,10 @@
{ callPackage }: { { callPackage }: {
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org"; pname = "org";
version = "20171120"; version = "20171205";
src = fetchurl { src = fetchurl {
url = "http://orgmode.org/elpa/org-20171120.tar"; url = "http://orgmode.org/elpa/org-20171205.tar";
sha256 = "1xpfs0bz5lb4jmzd0kk5mgl2yfk0hb6hk788x9rn7i1n1dnz4mdy"; sha256 = "0n8v5x50p8p52wwszzhf5y39ll2aaackvi64ldchnj06lqy3ni88";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -14,10 +14,10 @@
}) {}; }) {};
org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org-plus-contrib"; pname = "org-plus-contrib";
version = "20171120"; version = "20171205";
src = fetchurl { src = fetchurl {
url = "http://orgmode.org/elpa/org-plus-contrib-20171120.tar"; url = "http://orgmode.org/elpa/org-plus-contrib-20171205.tar";
sha256 = "1ivrdxfvxiqj3ydc9d9vmh8wcb4ydavrn9mprx74kg4g084v9y26"; sha256 = "1y61csa284gy8l0fj0mv67mkm4fsi4lz401987qp6a6z260df4n5";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {

View file

@ -1,6 +1,6 @@
{ lib, stdenv, callPackage, fetchurl, makeDesktopItem, makeWrapper, patchelf { lib, stdenv, callPackage, fetchurl, makeDesktopItem, makeWrapper, patchelf
, coreutils, gnugrep, which, git, python, unzip, p7zip , coreutils, gnugrep, which, git, python, unzip, p7zip
, androidsdk, jdk, cmake, libxml2, zlib, python2, ncurses , androidsdk, jdk, cmake, libxml2, zlib, python3, ncurses
}: }:
assert stdenv.isLinux; assert stdenv.isLinux;
@ -41,11 +41,19 @@ let
patchelf --set-interpreter $interp \ patchelf --set-interpreter $interp \
--set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib ]}:$lldbLibPath" \ --set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib ]}:$lldbLibPath" \
bin/lldb/bin/lldb-server bin/lldb/bin/lldb-server
for i in LLDBFrontend lldb lldb-argdumper; do
patchelf --set-interpreter $interp \ patchelf --set-interpreter $interp \
--set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \
bin/lldb/LLDBFrontend "bin/lldb/bin/$i"
done
patchelf \ patchelf \
--set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib python2 ]}:$lldbLibPath" \ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \
bin/lldb/lib/python3.*/lib-dynload/zlib.cpython-*m-x86_64-linux-gnu.so
patchelf \
--set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib python3 ]}:$lldbLibPath" \
bin/lldb/lib/liblldb.so bin/lldb/lib/liblldb.so
patchelf --set-interpreter $interp bin/gdb/bin/gdb patchelf --set-interpreter $interp bin/gdb/bin/gdb
@ -226,12 +234,12 @@ in
clion = buildClion rec { clion = buildClion rec {
name = "clion-${version}"; name = "clion-${version}";
version = "2017.2.3"; /* updated by script */ version = "2017.3"; /* updated by script */
description = "C/C++ IDE. New. Intelligent. Cross-platform"; description = "C/C++ IDE. New. Intelligent. Cross-platform";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz"; url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
sha256 = "02hyndyfcrvfbi4q8vmmj0xh2bggwc2azggm24g3m03iffa7j6fx"; /* updated by script */ sha256 = "0gv9krqy4bhijx5s005qhswxnc05l1jsjlxs0h15z23bmv7rlpnf"; /* updated by script */
}; };
wmClass = "jetbrains-clion"; wmClass = "jetbrains-clion";
update-channel = "CLion_Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml update-channel = "CLion_Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@ -252,25 +260,25 @@ in
goland = buildGoland rec { goland = buildGoland rec {
name = "goland-${version}"; name = "goland-${version}";
version = "173.3727.79"; /* updated by script */ version = "2017.3"; /* updated by script */
description = "Up and Coming Go IDE"; description = "Up and Coming Go IDE";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/go/${name}.tar.gz"; url = "https://download.jetbrains.com/go/${name}.tar.gz";
sha256 = "0bmd7r3h76pg0s9m3i5qv7zfkcj3gannj0c12cw087b831ga7ccz"; /* updated by script */ sha256 = "0l4l0lsmq1g4fwfrxhbrnfsp8nk38ml48cryvdr241zsxz43fax0"; /* updated by script */
}; };
wmClass = "jetbrains-goland"; wmClass = "jetbrains-goland";
update-channel = "goland_1.0_EAP"; update-channel = "goland_release";
}; };
idea-community = buildIdea rec { idea-community = buildIdea rec {
name = "idea-community-${version}"; name = "idea-community-${version}";
version = "2017.2.6"; /* updated by script */ version = "2017.3"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = stdenv.lib.licenses.asl20; license = stdenv.lib.licenses.asl20;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz"; url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
sha256 = "150zq3wk7gsn1ibx5nkq9smfcf9n1lk347vj47yb1nwzcq0vmj2p"; /* updated by script */ sha256 = "04qp37pv4z6d9gw6j56m4zfxw4v2cydk8w7jzyzrcg52jr064kwi"; /* updated by script */
}; };
wmClass = "jetbrains-idea-ce"; wmClass = "jetbrains-idea-ce";
update-channel = "IDEA_Release"; update-channel = "IDEA_Release";
@ -278,12 +286,12 @@ in
idea-ultimate = buildIdea rec { idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}"; name = "idea-ultimate-${version}";
version = "2017.2.6"; /* updated by script */ version = "2017.3"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz"; url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz";
sha256 = "1g0qcv14rn9kzf0yv17ca3w1ihl1274216n7niwkqwcjp5mvj030"; /* updated by script */ sha256 = "0w9ihi6vzgfiav2qia7d7vrn14k8v56npir0dyx7ii8an887s7ws"; /* updated by script */
}; };
wmClass = "jetbrains-idea"; wmClass = "jetbrains-idea";
update-channel = "IDEA_Release"; update-channel = "IDEA_Release";
@ -291,25 +299,25 @@ in
phpstorm = buildPhpStorm rec { phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}"; name = "phpstorm-${version}";
version = "2017.2.4"; /* updated by script */ version = "2017.3"; /* updated by script */
description = "Professional IDE for Web and PHP developers"; description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "0hn3x5wid2z7s2mhnxfqh2yhdkscccpbz7qgsxkjvmkxcynazrvy"; /* updated by script */ sha256 = "1byhlm5bnp6ic4n2xg17v4g34ipygy50i9xj4292b0xw7srxh910"; /* updated by script */
}; };
wmClass = "jetbrains-phpstorm"; wmClass = "jetbrains-phpstorm";
update-channel = "PS2017.2"; update-channel = "PS2017.3";
}; };
pycharm-community = buildPycharm rec { pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}"; name = "pycharm-community-${version}";
version = "2017.2.4"; /* updated by script */ version = "2017.3"; /* updated by script */
description = "PyCharm Community Edition"; description = "PyCharm Community Edition";
license = stdenv.lib.licenses.asl20; license = stdenv.lib.licenses.asl20;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz"; url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "193f44s9vh5ksd7hs586h0j66lcqsh29wwxr5yhl05lq931la857"; /* updated by script */ sha256 = "1lca3g5h716l97pkqfb8i7apsnx445xzcc9j41d0y3yyncf5hwxr"; /* updated by script */
}; };
wmClass = "jetbrains-pycharm-ce"; wmClass = "jetbrains-pycharm-ce";
update-channel = "PyCharm_Release"; update-channel = "PyCharm_Release";
@ -317,12 +325,12 @@ in
pycharm-professional = buildPycharm rec { pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}"; name = "pycharm-professional-${version}";
version = "2017.2.4"; /* updated by script */ version = "2017.3"; /* updated by script */
description = "PyCharm Professional Edition"; description = "PyCharm Professional Edition";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz"; url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "0n1nps8jfk77i796yr90bvrx9j1vcdnl25sr4b5n4xznjrix4gki"; /* updated by script */ sha256 = "06lh0nxmzn0lsyd6isyb6gf01h4nbksi0f03hwwm6wdfvsfw92pb"; /* updated by script */
}; };
wmClass = "jetbrains-pycharm"; wmClass = "jetbrains-pycharm";
update-channel = "PyCharm_Release"; update-channel = "PyCharm_Release";
@ -330,38 +338,38 @@ in
rider = buildRider rec { rider = buildRider rec {
name = "rider-${version}"; name = "rider-${version}";
version = "2017.1.2"; /* updated by script */ version = "2017.2.1"; /* updated by script */
description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper"; description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/resharper/JetBrains.Rider-${version}.tar.gz"; url = "https://download.jetbrains.com/resharper/JetBrains.Rider-${version}.tar.gz";
sha256 = "0kphjxibrs4ss6hpxbssvs3n35xh9zzw7a1q09x79ibvvk73gwqh"; /* updated by script */ sha256 = "1zviknxamp1y7lrlg5qfj3ijp96z0dqvcr42ca0fbx1xb887wzww"; /* updated by script */
}; };
wmClass = "jetbrains-rider"; wmClass = "jetbrains-rider";
update-channel = "rider_2017_1"; update-channel = "rider_2017_2";
}; };
ruby-mine = buildRubyMine rec { ruby-mine = buildRubyMine rec {
name = "ruby-mine-${version}"; name = "ruby-mine-${version}";
version = "2017.1.5"; /* updated by script */ version = "2017.3"; /* updated by script */
description = "The Most Intelligent Ruby and Rails IDE"; description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "198eb3d7914529ce3a6857e038167e194fb838c4b94242048ae45e8413458d66"; /* updated by script */ sha256 = "04h299mbzwrdgqxkff0vgpj2kbisb29l55mm6r45amgpqcnms6i5"; /* updated by script */
}; };
wmClass = "jetbrains-rubymine"; wmClass = "jetbrains-rubymine";
update-channel = "rm2017.1"; update-channel = "rm2017.3";
}; };
webstorm = buildWebStorm rec { webstorm = buildWebStorm rec {
name = "webstorm-${version}"; name = "webstorm-${version}";
version = "2017.2.5"; /* updated by script */ version = "2017.3"; /* updated by script */
description = "Professional IDE for Web and JavaScript development"; description = "Professional IDE for Web and JavaScript development";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
sha256 = "0apsfwcj8qfjwya794848h5iqfg9fay3h8bxqwclkw7lid9qwv7n"; /* updated by script */ sha256 = "0whr5zygrbi044pl48ac2w7a4rxldbaqlf76dkfqj83g2wl4n990"; /* updated by script */
}; };
wmClass = "jetbrains-webstorm"; wmClass = "jetbrains-webstorm";
update-channel = "WS_Release"; update-channel = "WS_Release";

View file

@ -5,7 +5,7 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qgis-2.18.14"; name = "qgis-2.18.15";
buildInputs = [ gdal qt4 flex openssl bison proj geos xlibsWrapper sqlite gsl qwt qscintilla buildInputs = [ gdal qt4 flex openssl bison proj geos xlibsWrapper sqlite gsl qwt qscintilla
fcgi libspatialindex libspatialite postgresql qjson qca2 txt2tags ] ++ fcgi libspatialindex libspatialite postgresql qjson qca2 txt2tags ] ++
@ -14,8 +14,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake makeWrapper ]; nativeBuildInputs = [ cmake makeWrapper ];
# `make -f src/providers/wms/CMakeFiles/wmsprovider_a.dir/build.make src/providers/wms/CMakeFiles/wmsprovider_a.dir/qgswmssourceselect.cpp.o`:
# fatal error: ui_qgsdelimitedtextsourceselectbase.h: No such file or directory # fatal error: ui_qgsdelimitedtextsourceselectbase.h: No such file or directory
#enableParallelBuilding = true; enableParallelBuilding = false;
# To handle the lack of 'local' RPATH; required, as they call one of # To handle the lack of 'local' RPATH; required, as they call one of
# their built binaries requiring their libs, in the build process. # their built binaries requiring their libs, in the build process.
@ -25,7 +26,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "http://qgis.org/downloads/${name}.tar.bz2"; url = "http://qgis.org/downloads/${name}.tar.bz2";
sha256 = "199nc539kd8fxbfny61s4sv8bvrhlxw59dmvw6m70gnff6mpc8fq"; sha256 = "1jpprkk91s2wwx0iiqlnsngxnn52zs32bad799fjai58nrsh8b7b";
}; };
cmakeFlags = stdenv.lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}"; cmakeFlags = stdenv.lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";

View file

@ -14,8 +14,8 @@ let
else throw "ImageMagick is not supported on this platform."; else throw "ImageMagick is not supported on this platform.";
cfg = { cfg = {
version = "7.0.7-9"; version = "7.0.7-14";
sha256 = "0p0879chcfrghcamwgxxcmaaj04xv0z91ris7hxi37qdw8c7836w"; sha256 = "04hpc9i6fp09iy0xkidlfhfqr7zg45izqqj5fx93n3dxalq65xqw";
patches = []; patches = [];
}; };
in in

View file

@ -14,8 +14,8 @@ let
else throw "ImageMagick is not supported on this platform."; else throw "ImageMagick is not supported on this platform.";
cfg = { cfg = {
version = "6.9.9-23"; version = "6.9.9-26";
sha256 = "0cd6zcbcfvznf0i3q4xz1c4wm4cfplg4zc466lvlb1w8qbn25948"; sha256 = "10rcq7b9hhz50m4yqnm4g3iai7lr9jkglb7sm49ycw59arrkmwnw";
patches = []; patches = [];
} }
# Freeze version on mingw so we don't need to port the patch too often. # Freeze version on mingw so we don't need to port the patch too often.

View file

@ -15,6 +15,7 @@ let
name = "qtnproperty"; name = "qtnproperty";
inherit src; inherit src;
sourceRoot = "AwesomeBump/Sources/utils/QtnProperty"; sourceRoot = "AwesomeBump/Sources/utils/QtnProperty";
patches = [ ./qtnproperty-parallel-building.patch ];
buildInputs = [ qtscript qtbase qtdeclarative ]; buildInputs = [ qtscript qtbase qtdeclarative ];
nativeBuildInputs = [ qmake flex bison ]; nativeBuildInputs = [ qmake flex bison ];
postInstall = '' postInstall = ''
@ -46,6 +47,10 @@ in stdenv.mkDerivation rec {
--run "cd $d" --run "cd $d"
''; '';
# $ cd Sources; qmake; make ../workdir/linux-g++-dgb-gl4/obj/glwidget.o
# fatal error: properties/ImageProperties.peg.h: No such file or directory
enableParallelBuilding = false;
meta = { meta = {
homepage = https://github.com/kmkolasinski/AwesomeBump; homepage = https://github.com/kmkolasinski/AwesomeBump;
description = "A program to generate normal, height, specular or ambient occlusion textures from a single image"; description = "A program to generate normal, height, specular or ambient occlusion textures from a single image";

View file

@ -0,0 +1,9 @@
--- a/PEG/Flex.pri
+++ b/PEG/Flex.pri
@@ -1,5 +1,6 @@
flex.name = Flex ${QMAKE_FILE_IN}
flex.input = FLEX_SOURCES
+flex.depends = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.parser.cpp
flex.output = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.lexer.cpp
win32:flex.commands = win_flex --wincompat -o ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.lexer.cpp ${QMAKE_FILE_IN}

View file

@ -1,4 +1,4 @@
{ mkDerivation, lib, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook { mkDerivation, lib, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook, fetchpatch
# For `digitaglinktree` # For `digitaglinktree`
, perl, sqlite , perl, sqlite
@ -99,8 +99,6 @@ mkDerivation rec {
threadweaver threadweaver
]; ];
enableParallelBuilding = true;
cmakeFlags = [ cmakeFlags = [
"-DENABLE_MYSQLSUPPORT=1" "-DENABLE_MYSQLSUPPORT=1"
"-DENABLE_INTERNALMYSQL=1" "-DENABLE_INTERNALMYSQL=1"
@ -114,6 +112,20 @@ mkDerivation rec {
--replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3" --replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3"
''; '';
patches = [
# fix Qt-5.9.3 empty album problem
(fetchpatch {
url = "https://cgit.kde.org/digikam.git/patch/?id=855ba5b7d4bc6337234720a72ea824ddd3b32e5b";
sha256 = "0zk8p182piy6xn9v0mhwawya9ciq596vql1qc3lgnx371a97mmni";
})
];
patchFlags = "-d core -p1";
# `en make -f core/utilities/assistants/expoblending/CMakeFiles/expoblending_src.dir/build.make core/utilities/assistants/expoblending/CMakeFiles/expoblending_src.dir/manager/expoblendingthread.cpp.o`:
# digikam_version.h:37:24: fatal error: gitversion.h: No such file or directory
enableParallelBuilding = false;
meta = with lib; { meta = with lib; {
description = "Photo Management Program"; description = "Photo Management Program";
license = licenses.gpl2; license = licenses.gpl2;

View file

@ -2,14 +2,14 @@
, libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz, libX11 , libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz, libX11
, libwebp, quantumdepth ? 8, fixDarwinDylibNames }: , libwebp, quantumdepth ? 8, fixDarwinDylibNames }:
let version = "1.3.26"; in let version = "1.3.27"; in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "graphicsmagick-${version}"; name = "graphicsmagick-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz"; url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
sha256 = "122zgs96dqrys62mnh8x5yvfff6km4d3yrnvaxzg3mg5sprib87v"; sha256 = "0rq35p3rml10cxz2z4s7xcfsilhhk19mmy094g3ivz0fg797hcnh";
}; };
patches = [ patches = [

View file

@ -3,11 +3,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ipe-7.1.10"; name = "ipe-7.2.7";
src = fetchurl { src = fetchurl {
url = "https://dl.bintray.com/otfried/generic/ipe/7.1/${name}-src.tar.gz"; url = "https://dl.bintray.com/otfried/generic/ipe/7.2/${name}-src.tar.gz";
sha256 = "0kwk8l2jasb4fdixaca08g661d0sdmx2jkk3ch7pxh0f4xkdxkkz"; sha256 = "08lzqhagvr8l69hxghyw9akf5dixbily7hj2gxhzzrp334k3yvfn";
}; };
# changes taken from Gentoo portage # changes taken from Gentoo portage
@ -38,6 +38,8 @@ stdenv.mkDerivation rec {
done done
''; '';
patches = [ ./xlocale.patch ];
#TODO: make .desktop entry #TODO: make .desktop entry
meta = { meta = {

View file

@ -0,0 +1,10 @@
--- ipe-7.2.7/src/ipelib/ipeplatform.cpp 2016-12-09 15:09:04.000000000 +0100
+++ ipe-7.2.7/src/ipelib/ipeplatform.cpp 2017-11-23 17:13:11.152395834 +0100
@@ -38,7 +38,6 @@
#include <gdiplus.h>
#else
#include <sys/wait.h>
-#include <xlocale.h>
#include <dirent.h>
#endif
#ifdef __APPLE__

View file

@ -1,51 +1,65 @@
{ stdenv, fetchurl, qt4, bzip2, lib3ds, levmar, muparser, unzip, vcg }: { stdenv, fetchFromGitHub, mesa_glu, qtbase, qtscript, qtxmlpatterns }:
stdenv.mkDerivation rec { let
name = "meshlab-1.3.3"; meshlabRev = "5700f5474c8f90696a8925e2a209a0a8ab506662";
vcglibRev = "a8e87662b63ee9f4ded5d4699b28d74183040803";
in stdenv.mkDerivation {
name = "meshlab-2016.12";
src = fetchurl { srcs =
url = "mirror://sourceforge/meshlab/meshlab/MeshLab%20v1.3.3/MeshLabSrc_AllInc_v133.tgz"; [
sha256 = "03wqaibfbfag2w1zi1a5z6h546r9d7pg2sjl5pwg24w7yp8rr0n9"; (fetchFromGitHub {
}; owner = "cnr-isti-vclab";
repo = "meshlab";
rev = meshlabRev;
sha256 = "0srrp7zhi86dsg4zsx1615gr26barz38zdl8s03zq6vm1dgzl3cc";
name = "meshlab-${meshlabRev}";
})
(fetchFromGitHub {
owner = "cnr-isti-vclab";
repo = "vcglib";
rev = vcglibRev;
sha256 = "0jh8jc8rn7rci8qr3q03q574fk2hsc3rllysck41j8xkr3rmxz2f";
name = "vcglib-${vcglibRev}";
})
];
# I don't know why I need this; without this, the rpath set at the beginning of the sourceRoot = "meshlab-${meshlabRev}";
# buildPhase gets removed from the 'meshlab' binary
dontPatchELF = true;
patches = [ ./include-unistd.diff ]; patches = [ ./fix-2016.02.patch ];
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
enableParallelBuilding = true;
buildPhase = '' buildPhase = ''
mkdir -p "$out/include" # MeshLab has ../vcglib hardcoded everywhere, so move the source dir
mv ../vcglib-${vcglibRev} ../vcglib
cd src
export NIX_LDFLAGS="-rpath $out/opt/meshlab $NIX_LDFLAGS" export NIX_LDFLAGS="-rpath $out/opt/meshlab $NIX_LDFLAGS"
cd meshlab/src
pushd external pushd external
qmake -recursive external.pro qmake -recursive external.pro
make buildPhase
popd popd
qmake -recursive meshlab_full.pro qmake -recursive meshlab_full.pro
make buildPhase
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/opt/meshlab $out/bin $out/lib mkdir -p $out/opt/meshlab $out/bin
pushd distrib cp -Rv distrib/* $out/opt/meshlab
cp -R * $out/opt/meshlab
popd
ln -s $out/opt/meshlab/meshlab $out/bin/meshlab ln -s $out/opt/meshlab/meshlab $out/bin/meshlab
ln -s $out/opt/meshlab/meshlabserver $out/bin/meshlabserver
''; '';
sourceRoot = "."; buildInputs = [ mesa_glu qtbase qtscript qtxmlpatterns ];
buildInputs = [ qt4 unzip vcg ];
meta = { meta = {
description = "System for the processing and editing of unstructured 3D triangular meshes"; description = "A system for processing and editing 3D triangular meshes.";
homepage = http://meshlab.sourceforge.net/; homepage = http://www.meshlab.net/;
license = stdenv.lib.licenses.gpl2Plus; license = stdenv.lib.licenses.gpl3;
maintainers = with stdenv.lib.maintainers; [viric]; maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux; platforms = with stdenv.lib.platforms; linux;
broken = true;
}; };
} }

View file

@ -0,0 +1,88 @@
From 0fd17cd2b6d57e8a2a981a70115c2565ee076d0f Mon Sep 17 00:00:00 2001
From: Marco Callieri <callieri@isti.cnr.it>
Date: Mon, 9 Jan 2017 16:06:14 +0100
Subject: [PATCH 1/3] resolved ambiguity for abs overloads
diff --git a/src/meshlabplugins/edit_quality/eqhandle.cpp b/src/meshlabplugins/edit_quality/eqhandle.cpp
index 364d53bf..ef3d4a2d 100644
--- a/src/meshlabplugins/edit_quality/eqhandle.cpp
+++ b/src/meshlabplugins/edit_quality/eqhandle.cpp
@@ -83,7 +83,7 @@ void EqHandle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
setCursor(Qt::OpenHandCursor);
QPointF newPos = event->scenePos();
- qreal handleOffset = abs(newPos.x()-pos().x());
+ qreal handleOffset = std::fabs(newPos.x()-pos().x());
if (handleOffset >= std::numeric_limits<float>::epsilon())
{
--
2.15.0
From 33cfd5801e59b6c9e34360c75112e6dcb88d807b Mon Sep 17 00:00:00 2001
From: Marco Callieri <callieri@isti.cnr.it>
Date: Tue, 10 Jan 2017 10:05:05 +0100
Subject: [PATCH 2/3] again, fabs ambiguity
diff --git a/src/meshlabplugins/edit_quality/eqhandle.cpp b/src/meshlabplugins/edit_quality/eqhandle.cpp
index ef3d4a2d..d29f8c45 100644
--- a/src/meshlabplugins/edit_quality/eqhandle.cpp
+++ b/src/meshlabplugins/edit_quality/eqhandle.cpp
@@ -30,6 +30,7 @@ FIRST RELEASE
#include "eqhandle.h"
#include <QMouseEvent>
#include <QGraphicsSceneMouseEvent>
+#include <math.h>
EqHandle::EqHandle(CHART_INFO *environment_info, QColor color, QPointF position,
EQUALIZER_HANDLE_TYPE type, EqHandle** handles, qreal* midHandlePercentilePosition, QDoubleSpinBox* spinbox,
@@ -83,7 +84,7 @@ void EqHandle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
setCursor(Qt::OpenHandCursor);
QPointF newPos = event->scenePos();
- qreal handleOffset = std::fabs(newPos.x()-pos().x());
+ qreal handleOffset = fabs(newPos.x()-pos().x());
if (handleOffset >= std::numeric_limits<float>::epsilon())
{
--
2.15.0
From d717e44f4134ebee03322a6a2a56fce626084a3c Mon Sep 17 00:00:00 2001
From: Patrick Chilton <chpatrick@gmail.com>
Date: Mon, 4 Dec 2017 21:27:23 +0100
Subject: [PATCH 3/3] io_TXT -> io_txt
diff --git a/src/meshlab_full.pro b/src/meshlab_full.pro
index 6ea7f1db..2a95c127 100644
--- a/src/meshlab_full.pro
+++ b/src/meshlab_full.pro
@@ -16,7 +16,7 @@ SUBDIRS = common \
meshlabplugins/io_x3d \
meshlabplugins/io_expe \
meshlabplugins/io_pdb \
- plugins_experimental/io_TXT \
+ plugins_experimental/io_txt \
# Filter plugins
meshlabplugins/filter_aging \
meshlabplugins/filter_ao \
diff --git a/src/plugins_experimental/io_TXT/io_txt.cpp b/src/plugins_experimental/io_txt/io_txt.cpp
similarity index 100%
rename from src/plugins_experimental/io_TXT/io_txt.cpp
rename to src/plugins_experimental/io_txt/io_txt.cpp
diff --git a/src/plugins_experimental/io_TXT/io_txt.h b/src/plugins_experimental/io_txt/io_txt.h
similarity index 100%
rename from src/plugins_experimental/io_TXT/io_txt.h
rename to src/plugins_experimental/io_txt/io_txt.h
diff --git a/src/plugins_experimental/io_TXT/io_txt.pro b/src/plugins_experimental/io_txt/io_txt.pro
similarity index 100%
rename from src/plugins_experimental/io_TXT/io_txt.pro
rename to src/plugins_experimental/io_txt/io_txt.pro
--
2.15.0

View file

@ -1,13 +0,0 @@
*** old/vcglib/wrap/ply/plystuff.h 2013-02-09 00:00:04.110705851 -0500
--- new/vcglib/wrap/ply/plystuff.h 2013-02-09 15:20:53.482205183 -0500
***************
*** 75,80 ****
--- 75,81 ----
#define pb_close _close
#define DIR_SEP "\\"
#else
+ #include <unistd.h>
#define pb_mkdir(n) mkdir(n,0755)
#define pb_access access
#define pb_stat stat

View file

@ -1,9 +1,12 @@
{stdenv, fetchFromGitHub, cmake {
,full, python, mesa, libXt }: stdenv, fetchFromGitHub, cmake
,qtbase, qttools, python, mesa
,libXt, qtx11extras, qtxmlpatterns
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "paraview-${version}"; name = "paraview-${version}";
version = "5.4.0"; version = "5.4.1";
# fetching from GitHub instead of taking an "official" source # fetching from GitHub instead of taking an "official" source
# tarball because of missing submodules there # tarball because of missing submodules there
@ -11,13 +14,14 @@ stdenv.mkDerivation rec {
owner = "Kitware"; owner = "Kitware";
repo = "ParaView"; repo = "ParaView";
rev = "v${version}"; rev = "v${version}";
sha256 = "0h1vkgwm10mc5mnr3djp81lxr5pi0hyj776z77hiib6xm5596q9n"; sha256 = "1ma02sdkz2apxnwcsyvxb26ibwnjh60p71gicw6nlp042acs6v74";
fetchSubmodules = true; fetchSubmodules = true;
}; };
cmakeFlags = [ cmakeFlags = [
"-DPARAVIEW_ENABLE_PYTHON=ON" "-DPARAVIEW_ENABLE_PYTHON=ON"
"-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON" "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON"
"-DPARAVIEW_ENABLE_EMBEDDED_DOCUMENTATION=OFF"
]; ];
# During build, binaries are called that rely on freshly built # During build, binaries are called that rely on freshly built
@ -29,16 +33,18 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
buildInputs = [ cmake nativeBuildInputs = [
cmake
];
buildInputs = [
python python
mesa mesa
libXt libXt
qtbase
# theoretically the following should be fine, but there is an error qtx11extras
# due to missing libqminimal when not using qt5.full qttools
qtxmlpatterns
# qtbase qtx11extras qttools
full
]; ];

View file

@ -56,9 +56,9 @@ buildDotnetPackage rec {
''; '';
makeWrapperArgs = [ makeWrapperArgs = [
''--prefix MONO_GAC_PREFIX ':' "${gtksharp}"'' ''--prefix MONO_GAC_PREFIX : ${gtksharp}''
''--prefix LD_LIBRARY_PATH ':' "${gtksharp}/lib"'' ''--prefix LD_LIBRARY_PATH : ${gtksharp}/lib''
''--prefix LD_LIBRARY_PATH ':' "${gtksharp.gtk.out}/lib"'' ''--prefix LD_LIBRARY_PATH : ${gtksharp.gtk.out}/lib''
]; ];
postInstall = '' postInstall = ''

View file

@ -1,23 +1,23 @@
{ stdenv, fetchFromGitHub, getopt, which, pkgconfig, gtk2 } : { stdenv, fetchFromGitHub, getopt, which, pkgconfig, gtk3 } :
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
name = "pqiv-${version}"; name = "pqiv-${version}";
version = "2.9"; version = "2.10.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "phillipberndt"; owner = "phillipberndt";
repo = "pqiv"; repo = "pqiv";
rev = version; rev = version;
sha256 = "1xncf6aq52zpxpmz3ikmlkinz7y3nmbpgfxjb7q40sqs00n0mfsd"; sha256 = "06blqckj3bpbi2kl5ndv2d10r7nw62r386kfwrkic9amynlv9gki";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ getopt which gtk2 ]; buildInputs = [ getopt which gtk3 ];
prePatch = "patchShebangs ."; prePatch = "patchShebangs .";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Rewrite of qiv (quick image viewer)"; description = "Powerful image viewer with minimal UI";
homepage = http://www.pberndt.com/Programme/Linux/pqiv; homepage = http://www.pberndt.com/Programme/Linux/pqiv;
license = licenses.gpl3; license = licenses.gpl3;
maintainers = [ maintainers.ndowens ]; maintainers = [ maintainers.ndowens ];

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