Merge remote-tracking branch 'upstream/master' into HEAD
This commit is contained in:
commit
9c105bdf8f
@ -1802,6 +1802,20 @@ addEnvHooks "$hostOffset" myBashFunction
|
|||||||
disabled or patched to work with PaX.</para></listitem>
|
disabled or patched to work with PaX.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>autoPatchelfHook</term>
|
||||||
|
<listitem><para>This is a special setup hook which helps in packaging
|
||||||
|
proprietary software in that it automatically tries to find missing shared
|
||||||
|
library dependencies of ELF files. All packages within the
|
||||||
|
<envar>runtimeDependencies</envar> environment variable are unconditionally
|
||||||
|
added to executables, which is useful for programs that use
|
||||||
|
<citerefentry>
|
||||||
|
<refentrytitle>dlopen</refentrytitle>
|
||||||
|
<manvolnum>3</manvolnum>
|
||||||
|
</citerefentry>
|
||||||
|
to load libraries at runtime.</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
@ -440,7 +440,11 @@ rec {
|
|||||||
init = list: assert list != []; take (length list - 1) list;
|
init = list: assert list != []; take (length list - 1) list;
|
||||||
|
|
||||||
|
|
||||||
/* FIXME(zimbatm) Not used anywhere
|
/* return the image of the cross product of some lists by a function
|
||||||
|
|
||||||
|
Example:
|
||||||
|
crossLists (x:y: "${toString x}${toString y}") [[1 2] [3 4]]
|
||||||
|
=> [ "13" "14" "23" "24" ]
|
||||||
*/
|
*/
|
||||||
crossLists = f: foldl (fs: args: concatMap (f: map f args) fs) [f];
|
crossLists = f: foldl (fs: args: concatMap (f: map f args) fs) [f];
|
||||||
|
|
||||||
|
@ -449,6 +449,7 @@
|
|||||||
mirrexagon = "Andrew Abbott <mirrexagon@mirrexagon.com>";
|
mirrexagon = "Andrew Abbott <mirrexagon@mirrexagon.com>";
|
||||||
mjanczyk = "Marcin Janczyk <m@dragonvr.pl>";
|
mjanczyk = "Marcin Janczyk <m@dragonvr.pl>";
|
||||||
mjp = "Mike Playle <mike@mythik.co.uk>"; # github = "MikePlayle";
|
mjp = "Mike Playle <mike@mythik.co.uk>"; # github = "MikePlayle";
|
||||||
|
mkg = "Mark K Gardner <mkg@vt.edu>";
|
||||||
mlieberman85 = "Michael Lieberman <mlieberman85@gmail.com>";
|
mlieberman85 = "Michael Lieberman <mlieberman85@gmail.com>";
|
||||||
mmahut = "Marek Mahut <marek.mahut@gmail.com>";
|
mmahut = "Marek Mahut <marek.mahut@gmail.com>";
|
||||||
moaxcp = "John Mercier <moaxcp@gmail.com>";
|
moaxcp = "John Mercier <moaxcp@gmail.com>";
|
||||||
@ -699,6 +700,7 @@
|
|||||||
tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
|
tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
|
||||||
tomsmeets = "Tom Smeets <tom@tsmeets.nl>";
|
tomsmeets = "Tom Smeets <tom@tsmeets.nl>";
|
||||||
travisbhartwell = "Travis B. Hartwell <nafai@travishartwell.net>";
|
travisbhartwell = "Travis B. Hartwell <nafai@travishartwell.net>";
|
||||||
|
treemo = "Matthieu Chevrier <matthieu.chevrier@treemo.fr>";
|
||||||
trevorj = "Trevor Joynson <nix@trevor.joynson.io>";
|
trevorj = "Trevor Joynson <nix@trevor.joynson.io>";
|
||||||
trino = "Hubert Mühlhans <muehlhans.hubert@ekodia.de>";
|
trino = "Hubert Mühlhans <muehlhans.hubert@ekodia.de>";
|
||||||
tstrobel = "Thomas Strobel <4ZKTUB6TEP74PYJOPWIR013S2AV29YUBW5F9ZH2F4D5UMJUJ6S@hash.domains>";
|
tstrobel = "Thomas Strobel <4ZKTUB6TEP74PYJOPWIR013S2AV29YUBW5F9ZH2F4D5UMJUJ6S@hash.domains>";
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
cfg = config.nixpkgs;
|
||||||
|
|
||||||
isConfig = x:
|
isConfig = x:
|
||||||
builtins.isAttrs x || lib.isFunction x;
|
builtins.isAttrs x || lib.isFunction x;
|
||||||
|
|
||||||
@ -42,12 +44,51 @@ let
|
|||||||
merge = lib.mergeOneOption;
|
merge = lib.mergeOneOption;
|
||||||
};
|
};
|
||||||
|
|
||||||
_pkgs = import ../../.. config.nixpkgs;
|
pkgsType = mkOptionType {
|
||||||
|
name = "nixpkgs";
|
||||||
|
description = "An evaluation of Nixpkgs; the top level attribute set of packages";
|
||||||
|
check = builtins.isAttrs;
|
||||||
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
options.nixpkgs = {
|
options.nixpkgs = {
|
||||||
|
|
||||||
|
pkgs = mkOption {
|
||||||
|
defaultText = literalExample
|
||||||
|
''import "''${nixos}/.." {
|
||||||
|
inherit (config.nixpkgs) config overlays system;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
default = import ../../.. { inherit (cfg) config overlays system; };
|
||||||
|
type = pkgsType;
|
||||||
|
example = literalExample ''import <nixpkgs> {}'';
|
||||||
|
description = ''
|
||||||
|
This is the evaluation of Nixpkgs that will be provided to
|
||||||
|
all NixOS modules. Defining this option has the effect of
|
||||||
|
ignoring the other options that would otherwise be used to
|
||||||
|
evaluate Nixpkgs, because those are arguments to the default
|
||||||
|
value. The default value imports the Nixpkgs source files
|
||||||
|
relative to the location of this NixOS module, because
|
||||||
|
NixOS and Nixpkgs are distributed together for consistency,
|
||||||
|
so the <code>nixos</code> in the default value is in fact a
|
||||||
|
relative path. The <code>config</code>, <code>overlays</code>
|
||||||
|
and <code>system</code> come from this option's siblings.
|
||||||
|
|
||||||
|
This option can be used by applications like NixOps to increase
|
||||||
|
the performance of evaluation, or to create packages that depend
|
||||||
|
on a container that should be built with the exact same evaluation
|
||||||
|
of Nixpkgs, for example. Applications like this should set
|
||||||
|
their default value using <code>lib.mkDefault</code>, so
|
||||||
|
user-provided configuration can override it without using
|
||||||
|
<code>lib</code>.
|
||||||
|
|
||||||
|
Note that using a distinct version of Nixpkgs with NixOS may
|
||||||
|
be an unexpected source of problems. Use this option with care.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
config = mkOption {
|
config = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
example = literalExample
|
example = literalExample
|
||||||
@ -59,6 +100,8 @@ in
|
|||||||
The configuration of the Nix Packages collection. (For
|
The configuration of the Nix Packages collection. (For
|
||||||
details, see the Nixpkgs documentation.) It allows you to set
|
details, see the Nixpkgs documentation.) It allows you to set
|
||||||
package configuration options.
|
package configuration options.
|
||||||
|
|
||||||
|
Ignored when <code>nixpkgs.pkgs</code> is set.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -82,6 +125,8 @@ in
|
|||||||
takes as an argument the <emphasis>original</emphasis> Nixpkgs.
|
takes as an argument the <emphasis>original</emphasis> Nixpkgs.
|
||||||
The first argument should be used for finding dependencies, and
|
The first argument should be used for finding dependencies, and
|
||||||
the second should be used for overriding recipes.
|
the second should be used for overriding recipes.
|
||||||
|
|
||||||
|
Ignored when <code>nixpkgs.pkgs</code> is set.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -93,14 +138,16 @@ in
|
|||||||
If unset, it defaults to the platform type of your host system.
|
If unset, it defaults to the platform type of your host system.
|
||||||
Specifying this option is useful when doing distributed
|
Specifying this option is useful when doing distributed
|
||||||
multi-platform deployment, or when building virtual machines.
|
multi-platform deployment, or when building virtual machines.
|
||||||
|
|
||||||
|
Ignored when <code>nixpkgs.pkgs</code> is set.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
_module.args = {
|
_module.args = {
|
||||||
pkgs = _pkgs;
|
pkgs = cfg.pkgs;
|
||||||
pkgs_i686 = _pkgs.pkgsi686Linux;
|
pkgs_i686 = cfg.pkgs.pkgsi686Linux;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -111,6 +111,7 @@
|
|||||||
./programs/wireshark.nix
|
./programs/wireshark.nix
|
||||||
./programs/xfs_quota.nix
|
./programs/xfs_quota.nix
|
||||||
./programs/xonsh.nix
|
./programs/xonsh.nix
|
||||||
|
./programs/yabar.nix
|
||||||
./programs/zsh/oh-my-zsh.nix
|
./programs/zsh/oh-my-zsh.nix
|
||||||
./programs/zsh/zsh.nix
|
./programs/zsh/zsh.nix
|
||||||
./programs/zsh/zsh-syntax-highlighting.nix
|
./programs/zsh/zsh-syntax-highlighting.nix
|
||||||
|
149
nixos/modules/programs/yabar.nix
Normal file
149
nixos/modules/programs/yabar.nix
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.programs.yabar;
|
||||||
|
|
||||||
|
mapExtra = v: lib.concatStringsSep "\n" (mapAttrsToList (
|
||||||
|
key: val: "${key} = ${if (isString val) then "\"${val}\"" else "${builtins.toString val}"};"
|
||||||
|
) v);
|
||||||
|
|
||||||
|
listKeys = r: concatStringsSep "," (map (n: "\"${n}\"") (attrNames r));
|
||||||
|
|
||||||
|
configFile = let
|
||||||
|
bars = mapAttrsToList (
|
||||||
|
name: cfg: ''
|
||||||
|
${name}: {
|
||||||
|
font: "${cfg.font}";
|
||||||
|
position: "${cfg.position}";
|
||||||
|
|
||||||
|
${mapExtra cfg.extra}
|
||||||
|
|
||||||
|
block-list: [${listKeys cfg.indicators}]
|
||||||
|
|
||||||
|
${concatStringsSep "\n" (mapAttrsToList (
|
||||||
|
name: cfg: ''
|
||||||
|
${name}: {
|
||||||
|
exec: "${cfg.exec}";
|
||||||
|
align: "${cfg.align}";
|
||||||
|
${mapExtra cfg.extra}
|
||||||
|
};
|
||||||
|
''
|
||||||
|
) cfg.indicators)}
|
||||||
|
};
|
||||||
|
''
|
||||||
|
) cfg.bars;
|
||||||
|
in pkgs.writeText "yabar.conf" ''
|
||||||
|
bar-list = [${listKeys cfg.bars}];
|
||||||
|
${concatStringsSep "\n" bars}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.programs.yabar = {
|
||||||
|
enable = mkEnableOption "yabar";
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
default = pkgs.yabar;
|
||||||
|
example = literalExample "pkgs.yabar-unstable";
|
||||||
|
type = types.package;
|
||||||
|
|
||||||
|
description = ''
|
||||||
|
The package which contains the `yabar` binary.
|
||||||
|
|
||||||
|
Nixpkgs provides the `yabar` and `yabar-unstable`
|
||||||
|
derivations since 18.03, so it's possible to choose.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
bars = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = types.attrsOf(types.submodule {
|
||||||
|
options = {
|
||||||
|
font = mkOption {
|
||||||
|
default = "sans bold 9";
|
||||||
|
example = "Droid Sans, FontAwesome Bold 9";
|
||||||
|
type = types.string;
|
||||||
|
|
||||||
|
description = ''
|
||||||
|
The font that will be used to draw the status bar.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
position = mkOption {
|
||||||
|
default = "top";
|
||||||
|
example = "bottom";
|
||||||
|
type = types.enum [ "top" "bottom" ];
|
||||||
|
|
||||||
|
description = ''
|
||||||
|
The position where the bar will be rendered.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extra = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = types.attrsOf types.string;
|
||||||
|
|
||||||
|
description = ''
|
||||||
|
An attribute set which contains further attributes of a bar.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
indicators = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = types.attrsOf(types.submodule {
|
||||||
|
options.exec = mkOption {
|
||||||
|
example = "YABAR_DATE";
|
||||||
|
type = types.string;
|
||||||
|
description = ''
|
||||||
|
The type of the indicator to be executed.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
options.align = mkOption {
|
||||||
|
default = "left";
|
||||||
|
example = "right";
|
||||||
|
type = types.enum [ "left" "center" "right" ];
|
||||||
|
|
||||||
|
description = ''
|
||||||
|
Whether to align the indicator at the left or right of the bar.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
options.extra = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = types.attrsOf (types.either types.string types.int);
|
||||||
|
|
||||||
|
description = ''
|
||||||
|
An attribute set which contains further attributes of a indicator.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
description = ''
|
||||||
|
Indicators that should be rendered by yabar.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
description = ''
|
||||||
|
List of bars that should be rendered by yabar.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
systemd.user.services.yabar = {
|
||||||
|
description = "yabar service";
|
||||||
|
wantedBy = [ "graphical-session.target" ];
|
||||||
|
partOf = [ "graphical-session.target" ];
|
||||||
|
|
||||||
|
script = ''
|
||||||
|
${cfg.package}/bin/yabar -c ${configFile}
|
||||||
|
'';
|
||||||
|
|
||||||
|
serviceConfig.Restart = "always";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -113,7 +113,7 @@ let
|
|||||||
mailboxes = { lib, pkgs, ... }: {
|
mailboxes = { lib, pkgs, ... }: {
|
||||||
options = {
|
options = {
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.str;
|
type = types.strMatching ''[^"]+'';
|
||||||
example = "Spam";
|
example = "Spam";
|
||||||
description = "The name of the mailbox.";
|
description = "The name of the mailbox.";
|
||||||
};
|
};
|
||||||
|
@ -1,12 +1,150 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, options, pkgs, lib, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
cfg = config.services.rspamd;
|
cfg = config.services.rspamd;
|
||||||
|
opts = options.services.rspamd;
|
||||||
|
|
||||||
mkBindSockets = socks: concatStringsSep "\n" (map (each: " bind_socket = \"${each}\"") socks);
|
bindSocketOpts = {options, config, ... }: {
|
||||||
|
options = {
|
||||||
|
socket = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
example = "localhost:11333";
|
||||||
|
description = ''
|
||||||
|
Socket for this worker to listen on in a format acceptable by rspamd.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
mode = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "0644";
|
||||||
|
description = "Mode to set on unix socket";
|
||||||
|
};
|
||||||
|
owner = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "${cfg.user}";
|
||||||
|
description = "Owner to set on unix socket";
|
||||||
|
};
|
||||||
|
group = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "${cfg.group}";
|
||||||
|
description = "Group to set on unix socket";
|
||||||
|
};
|
||||||
|
rawEntry = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
internal = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config.rawEntry = let
|
||||||
|
maybeOption = option:
|
||||||
|
optionalString options.${option}.isDefined " ${option}=${config.${option}}";
|
||||||
|
in
|
||||||
|
if (!(hasPrefix "/" config.socket)) then "${config.socket}"
|
||||||
|
else "${config.socket}${maybeOption "mode"}${maybeOption "owner"}${maybeOption "group"}";
|
||||||
|
};
|
||||||
|
|
||||||
|
workerOpts = { name, ... }: {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.nullOr types.bool;
|
||||||
|
default = null;
|
||||||
|
description = "Whether to run the rspamd worker.";
|
||||||
|
};
|
||||||
|
name = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = name;
|
||||||
|
description = "Name of the worker";
|
||||||
|
};
|
||||||
|
type = mkOption {
|
||||||
|
type = types.nullOr (types.enum [
|
||||||
|
"normal" "controller" "fuzzy_storage" "proxy" "lua"
|
||||||
|
]);
|
||||||
|
description = "The type of this worker";
|
||||||
|
};
|
||||||
|
bindSockets = mkOption {
|
||||||
|
type = types.listOf (types.either types.str (types.submodule bindSocketOpts));
|
||||||
|
default = [];
|
||||||
|
description = ''
|
||||||
|
List of sockets to listen, in format acceptable by rspamd
|
||||||
|
'';
|
||||||
|
example = [{
|
||||||
|
socket = "/run/rspamd.sock";
|
||||||
|
mode = "0666";
|
||||||
|
owner = "rspamd";
|
||||||
|
} "*:11333"];
|
||||||
|
apply = value: map (each: if (isString each)
|
||||||
|
then if (isUnixSocket each)
|
||||||
|
then {socket = each; owner = cfg.user; group = cfg.group; mode = "0644"; rawEntry = "${each}";}
|
||||||
|
else {socket = each; rawEntry = "${each}";}
|
||||||
|
else each) value;
|
||||||
|
};
|
||||||
|
count = mkOption {
|
||||||
|
type = types.nullOr types.int;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Number of worker instances to run
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
includes = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [];
|
||||||
|
description = ''
|
||||||
|
List of files to include in configuration
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = "Additional entries to put verbatim into worker section of rspamd config file.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = mkIf (name == "normal" || name == "controller" || name == "fuzzy") {
|
||||||
|
type = mkDefault name;
|
||||||
|
includes = mkDefault [ "$CONFDIR/worker-${name}.inc" ];
|
||||||
|
bindSockets = mkDefault (if name == "normal"
|
||||||
|
then [{
|
||||||
|
socket = "/run/rspamd/rspamd.sock";
|
||||||
|
mode = "0660";
|
||||||
|
owner = cfg.user;
|
||||||
|
group = cfg.group;
|
||||||
|
}]
|
||||||
|
else if name == "controller"
|
||||||
|
then [ "localhost:11334" ]
|
||||||
|
else [] );
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
indexOf = default: start: list: e:
|
||||||
|
if list == []
|
||||||
|
then default
|
||||||
|
else if (head list) == e then start
|
||||||
|
else (indexOf default (start + (length (listenStreams (head list).socket))) (tail list) e);
|
||||||
|
|
||||||
|
systemdSocket = indexOf (abort "Socket not found") 0 allSockets;
|
||||||
|
|
||||||
|
isUnixSocket = socket: hasPrefix "/" (if (isString socket) then socket else socket.socket);
|
||||||
|
isPort = hasPrefix "*:";
|
||||||
|
isIPv4Socket = hasPrefix "*v4:";
|
||||||
|
isIPv6Socket = hasPrefix "*v6:";
|
||||||
|
isLocalHost = hasPrefix "localhost:";
|
||||||
|
listenStreams = socket:
|
||||||
|
if (isLocalHost socket) then
|
||||||
|
let port = (removePrefix "localhost:" socket);
|
||||||
|
in [ "127.0.0.1:${port}" ] ++ (if config.networking.enableIPv6 then ["[::1]:${port}"] else [])
|
||||||
|
else if (isIPv6Socket socket) then [removePrefix "*v6:" socket]
|
||||||
|
else if (isPort socket) then [removePrefix "*:" socket]
|
||||||
|
else if (isIPv4Socket socket) then
|
||||||
|
throw "error: IPv4 only socket not supported in rspamd with socket activation"
|
||||||
|
else if (length (splitString " " socket)) != 1 then
|
||||||
|
throw "error: string options not supported in rspamd with socket activation"
|
||||||
|
else [socket];
|
||||||
|
|
||||||
|
mkBindSockets = enabled: socks: concatStringsSep "\n " (flatten (map (each:
|
||||||
|
if cfg.socketActivation && enabled != false then
|
||||||
|
let systemd = (systemdSocket each);
|
||||||
|
in (imap (idx: e: "bind_socket = \"systemd:${toString (systemd + idx - 1)}\";") (listenStreams each.socket))
|
||||||
|
else "bind_socket = \"${each.rawEntry}\";") socks));
|
||||||
|
|
||||||
rspamdConfFile = pkgs.writeText "rspamd.conf"
|
rspamdConfFile = pkgs.writeText "rspamd.conf"
|
||||||
''
|
''
|
||||||
@ -22,19 +160,33 @@ let
|
|||||||
.include "$CONFDIR/logging.inc"
|
.include "$CONFDIR/logging.inc"
|
||||||
}
|
}
|
||||||
|
|
||||||
worker {
|
${concatStringsSep "\n" (mapAttrsToList (name: value: ''
|
||||||
${mkBindSockets cfg.bindSocket}
|
worker ${optionalString (value.name != "normal" && value.name != "controller") "${value.name}"} {
|
||||||
.include "$CONFDIR/worker-normal.inc"
|
type = "${value.type}";
|
||||||
}
|
${optionalString (value.enable != null)
|
||||||
|
"enabled = ${if value.enable != false then "yes" else "no"};"}
|
||||||
worker {
|
${mkBindSockets value.enable value.bindSockets}
|
||||||
${mkBindSockets cfg.bindUISocket}
|
${optionalString (value.count != null) "count = ${toString value.count};"}
|
||||||
.include "$CONFDIR/worker-controller.inc"
|
${concatStringsSep "\n " (map (each: ".include \"${each}\"") value.includes)}
|
||||||
|
${value.extraConfig}
|
||||||
}
|
}
|
||||||
|
'') cfg.workers)}
|
||||||
|
|
||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
allMappedSockets = flatten (mapAttrsToList (name: value:
|
||||||
|
if value.enable != false
|
||||||
|
then imap (idx: each: {
|
||||||
|
name = "${name}";
|
||||||
|
index = idx;
|
||||||
|
value = each;
|
||||||
|
}) value.bindSockets
|
||||||
|
else []) cfg.workers);
|
||||||
|
allSockets = map (e: e.value) allMappedSockets;
|
||||||
|
|
||||||
|
allSocketNames = map (each: "rspamd-${each.name}-${toString each.index}.socket") allMappedSockets;
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -48,36 +200,43 @@ in
|
|||||||
enable = mkEnableOption "Whether to run the rspamd daemon.";
|
enable = mkEnableOption "Whether to run the rspamd daemon.";
|
||||||
|
|
||||||
debug = mkOption {
|
debug = mkOption {
|
||||||
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Whether to run the rspamd daemon in debug mode.";
|
description = "Whether to run the rspamd daemon in debug mode.";
|
||||||
};
|
};
|
||||||
|
|
||||||
bindSocket = mkOption {
|
socketActivation = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.bool;
|
||||||
default = [
|
|
||||||
"/run/rspamd/rspamd.sock mode=0660 owner=${cfg.user} group=${cfg.group}"
|
|
||||||
];
|
|
||||||
defaultText = ''[
|
|
||||||
"/run/rspamd/rspamd.sock mode=0660 owner=${cfg.user} group=${cfg.group}"
|
|
||||||
]'';
|
|
||||||
description = ''
|
description = ''
|
||||||
List of sockets to listen, in format acceptable by rspamd
|
Enable systemd socket activation for rspamd.
|
||||||
'';
|
|
||||||
example = ''
|
|
||||||
bindSocket = [
|
|
||||||
"/run/rspamd.sock mode=0666 owner=rspamd"
|
|
||||||
"*:11333"
|
|
||||||
];
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
bindUISocket = mkOption {
|
workers = mkOption {
|
||||||
type = types.listOf types.str;
|
type = with types; attrsOf (submodule workerOpts);
|
||||||
default = [
|
|
||||||
"localhost:11334"
|
|
||||||
];
|
|
||||||
description = ''
|
description = ''
|
||||||
List of sockets for web interface, in format acceptable by rspamd
|
Attribute set of workers to start.
|
||||||
|
'';
|
||||||
|
default = {
|
||||||
|
normal = {};
|
||||||
|
controller = {};
|
||||||
|
};
|
||||||
|
example = literalExample ''
|
||||||
|
{
|
||||||
|
normal = {
|
||||||
|
includes = [ "$CONFDIR/worker-normal.inc" ];
|
||||||
|
bindSockets = [{
|
||||||
|
socket = "/run/rspamd/rspamd.sock";
|
||||||
|
mode = "0660";
|
||||||
|
owner = "${cfg.user}";
|
||||||
|
group = "${cfg.group}";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
controller = {
|
||||||
|
includes = [ "$CONFDIR/worker-controller.inc" ];
|
||||||
|
bindSockets = [ "[::1]:11334" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -113,6 +272,13 @@ in
|
|||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
services.rspamd.socketActivation = mkDefault (!opts.bindSocket.isDefined && !opts.bindUISocket.isDefined);
|
||||||
|
|
||||||
|
assertions = [ {
|
||||||
|
assertion = !cfg.socketActivation || !(opts.bindSocket.isDefined || opts.bindUISocket.isDefined);
|
||||||
|
message = "Can't use socketActivation for rspamd when using renamed bind socket options";
|
||||||
|
} ];
|
||||||
|
|
||||||
# Allow users to run 'rspamc' and 'rspamadm'.
|
# Allow users to run 'rspamc' and 'rspamadm'.
|
||||||
environment.systemPackages = [ pkgs.rspamd ];
|
environment.systemPackages = [ pkgs.rspamd ];
|
||||||
|
|
||||||
@ -128,17 +294,22 @@ in
|
|||||||
gid = config.ids.gids.rspamd;
|
gid = config.ids.gids.rspamd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.etc."rspamd.conf".source = rspamdConfFile;
|
||||||
|
|
||||||
systemd.services.rspamd = {
|
systemd.services.rspamd = {
|
||||||
description = "Rspamd Service";
|
description = "Rspamd Service";
|
||||||
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = mkIf (!cfg.socketActivation) [ "multi-user.target" ];
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ] ++
|
||||||
|
(if cfg.socketActivation then allSocketNames else []);
|
||||||
|
requires = mkIf cfg.socketActivation allSocketNames;
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.rspamd}/bin/rspamd ${optionalString cfg.debug "-d"} --user=${cfg.user} --group=${cfg.group} --pid=/run/rspamd.pid -c ${rspamdConfFile} -f";
|
ExecStart = "${pkgs.rspamd}/bin/rspamd ${optionalString cfg.debug "-d"} --user=${cfg.user} --group=${cfg.group} --pid=/run/rspamd.pid -c ${rspamdConfFile} -f";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
RuntimeDirectory = "rspamd";
|
RuntimeDirectory = "rspamd";
|
||||||
PrivateTmp = true;
|
PrivateTmp = true;
|
||||||
|
Sockets = mkIf cfg.socketActivation (concatStringsSep " " allSocketNames);
|
||||||
};
|
};
|
||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
@ -146,5 +317,25 @@ in
|
|||||||
${pkgs.coreutils}/bin/chown ${cfg.user}:${cfg.group} /var/lib/rspamd
|
${pkgs.coreutils}/bin/chown ${cfg.user}:${cfg.group} /var/lib/rspamd
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
systemd.sockets = mkIf cfg.socketActivation
|
||||||
|
(listToAttrs (map (each: {
|
||||||
|
name = "rspamd-${each.name}-${toString each.index}";
|
||||||
|
value = {
|
||||||
|
description = "Rspamd socket ${toString each.index} for worker ${each.name}";
|
||||||
|
wantedBy = [ "sockets.target" ];
|
||||||
|
listenStreams = (listenStreams each.value.socket);
|
||||||
|
socketConfig = {
|
||||||
|
BindIPv6Only = mkIf (isIPv6Socket each.value.socket) "ipv6-only";
|
||||||
|
Service = "rspamd.service";
|
||||||
|
SocketUser = mkIf (isUnixSocket each.value.socket) each.value.owner;
|
||||||
|
SocketGroup = mkIf (isUnixSocket each.value.socket) each.value.group;
|
||||||
|
SocketMode = mkIf (isUnixSocket each.value.socket) each.value.mode;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
}) allMappedSockets));
|
||||||
|
};
|
||||||
|
imports = [
|
||||||
|
(mkRenamedOptionModule [ "services" "rspamd" "bindSocket" ] [ "services" "rspamd" "workers" "normal" "bindSockets" ])
|
||||||
|
(mkRenamedOptionModule [ "services" "rspamd" "bindUISocket" ] [ "services" "rspamd" "workers" "controller" "bindSockets" ])
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
@ -64,6 +64,16 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
group = mkOption {
|
||||||
|
default = "traefik";
|
||||||
|
type = types.string;
|
||||||
|
example = "docker";
|
||||||
|
description = ''
|
||||||
|
Set the group that traefik runs under.
|
||||||
|
For the docker backend this needs to be set to <literal>docker</literal> instead.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
default = pkgs.traefik;
|
default = pkgs.traefik;
|
||||||
defaultText = "pkgs.traefik";
|
defaultText = "pkgs.traefik";
|
||||||
@ -87,7 +97,7 @@ in {
|
|||||||
];
|
];
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = "traefik";
|
User = "traefik";
|
||||||
Group = "traefik";
|
Group = cfg.group;
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
StartLimitInterval = 86400;
|
StartLimitInterval = 86400;
|
||||||
StartLimitBurst = 5;
|
StartLimitBurst = 5;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# and nixos-14.04). The channel is updated every time the ‘tested’ job
|
# and nixos-14.04). The channel is updated every time the ‘tested’ job
|
||||||
# succeeds, and all other jobs have finished (they may fail).
|
# succeeds, and all other jobs have finished (they may fail).
|
||||||
|
|
||||||
{ nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; }
|
{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; }
|
||||||
, stableBranch ? false
|
, stableBranch ? false
|
||||||
, supportedSystems ? [ "x86_64-linux" ]
|
, supportedSystems ? [ "x86_64-linux" ]
|
||||||
, limitedSupportedSystems ? [ "i686-linux" ]
|
, limitedSupportedSystems ? [ "i686-linux" ]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# small subset of Nixpkgs, mostly useful for servers that need fast
|
# small subset of Nixpkgs, mostly useful for servers that need fast
|
||||||
# security updates.
|
# security updates.
|
||||||
|
|
||||||
{ nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; }
|
{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; }
|
||||||
, stableBranch ? false
|
, stableBranch ? false
|
||||||
, supportedSystems ? [ "x86_64-linux" ] # no i686-linux
|
, supportedSystems ? [ "x86_64-linux" ] # no i686-linux
|
||||||
}:
|
}:
|
||||||
@ -41,6 +41,7 @@ in rec {
|
|||||||
nfs3
|
nfs3
|
||||||
openssh
|
openssh
|
||||||
php-pcre
|
php-pcre
|
||||||
|
predictable-interface-names
|
||||||
proxy
|
proxy
|
||||||
simple;
|
simple;
|
||||||
installer = {
|
installer = {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; }
|
{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; }
|
||||||
, stableBranch ? false
|
, stableBranch ? false
|
||||||
, supportedSystems ? [ "x86_64-linux" "aarch64-linux" ]
|
, supportedSystems ? [ "x86_64-linux" "aarch64-linux" ]
|
||||||
}:
|
}:
|
||||||
@ -326,6 +326,7 @@ in rec {
|
|||||||
tests.pgmanage = callTest tests/pgmanage.nix {};
|
tests.pgmanage = callTest tests/pgmanage.nix {};
|
||||||
tests.postgis = callTest tests/postgis.nix {};
|
tests.postgis = callTest tests/postgis.nix {};
|
||||||
#tests.pgjwt = callTest tests/pgjwt.nix {};
|
#tests.pgjwt = callTest tests/pgjwt.nix {};
|
||||||
|
tests.predictable-interface-names = callSubTests tests/predictable-interface-names.nix {};
|
||||||
tests.printing = callTest tests/printing.nix {};
|
tests.printing = callTest tests/printing.nix {};
|
||||||
tests.prometheus = callTest tests/prometheus.nix {};
|
tests.prometheus = callTest tests/prometheus.nix {};
|
||||||
tests.proxy = callTest tests/proxy.nix {};
|
tests.proxy = callTest tests/proxy.nix {};
|
||||||
@ -333,6 +334,7 @@ in rec {
|
|||||||
# tests.quagga = callTest tests/quagga.nix {};
|
# tests.quagga = callTest tests/quagga.nix {};
|
||||||
tests.quake3 = callTest tests/quake3.nix {};
|
tests.quake3 = callTest tests/quake3.nix {};
|
||||||
tests.radicale = callTest tests/radicale.nix {};
|
tests.radicale = callTest tests/radicale.nix {};
|
||||||
|
tests.rspamd = callSubTests tests/rspamd.nix {};
|
||||||
tests.runInMachine = callTest tests/run-in-machine.nix {};
|
tests.runInMachine = callTest tests/run-in-machine.nix {};
|
||||||
tests.samba = callTest tests/samba.nix {};
|
tests.samba = callTest tests/samba.nix {};
|
||||||
tests.sddm = callSubTests tests/sddm.nix {};
|
tests.sddm = callSubTests tests/sddm.nix {};
|
||||||
@ -351,6 +353,7 @@ in rec {
|
|||||||
tests.wordpress = callTest tests/wordpress.nix {};
|
tests.wordpress = callTest tests/wordpress.nix {};
|
||||||
tests.xfce = callTest tests/xfce.nix {};
|
tests.xfce = callTest tests/xfce.nix {};
|
||||||
tests.xmonad = callTest tests/xmonad.nix {};
|
tests.xmonad = callTest tests/xmonad.nix {};
|
||||||
|
tests.yabar = callTest tests/yabar.nix {};
|
||||||
tests.zookeeper = callTest tests/zookeeper.nix {};
|
tests.zookeeper = callTest tests/zookeeper.nix {};
|
||||||
|
|
||||||
/* Build a bunch of typical closures so that Hydra can keep track of
|
/* Build a bunch of typical closures so that Hydra can keep track of
|
||||||
|
27
nixos/tests/predictable-interface-names.nix
Normal file
27
nixos/tests/predictable-interface-names.nix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{ system ? builtins.currentSystem
|
||||||
|
, pkgs ? import ../.. { inherit system; }
|
||||||
|
}:
|
||||||
|
with import ../lib/testing.nix { inherit system; };
|
||||||
|
let boolToString = x: if x then "yes" else "no"; in
|
||||||
|
let testWhenSetTo = predictable: withNetworkd:
|
||||||
|
makeTest {
|
||||||
|
name = "${if predictable then "" else "un"}predictableInterfaceNames${if withNetworkd then "-with-networkd" else ""}";
|
||||||
|
meta = {};
|
||||||
|
|
||||||
|
machine = { config, pkgs, ... }: {
|
||||||
|
networking.usePredictableInterfaceNames = pkgs.stdenv.lib.mkForce predictable;
|
||||||
|
networking.useNetworkd = withNetworkd;
|
||||||
|
networking.dhcpcd.enable = !withNetworkd;
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
print $machine->succeed("ip link");
|
||||||
|
$machine->succeed("ip link show ${if predictable then "ens3" else "eth0"}");
|
||||||
|
$machine->fail("ip link show ${if predictable then "eth0" else "ens3"}");
|
||||||
|
'';
|
||||||
|
}; in
|
||||||
|
with pkgs.stdenv.lib.lists;
|
||||||
|
with pkgs.stdenv.lib.attrsets;
|
||||||
|
listToAttrs (map (drv: nameValuePair drv.name drv) (
|
||||||
|
crossLists testWhenSetTo [[true false] [true false]]
|
||||||
|
))
|
140
nixos/tests/rspamd.nix
Normal file
140
nixos/tests/rspamd.nix
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
{ system ? builtins.currentSystem }:
|
||||||
|
with import ../lib/testing.nix { inherit system; };
|
||||||
|
with pkgs.lib;
|
||||||
|
let
|
||||||
|
initMachine = ''
|
||||||
|
startAll
|
||||||
|
$machine->waitForUnit("rspamd.service");
|
||||||
|
$machine->succeed("id \"rspamd\" >/dev/null");
|
||||||
|
'';
|
||||||
|
checkSocket = socket: user: group: mode: ''
|
||||||
|
$machine->succeed("ls ${socket} >/dev/null");
|
||||||
|
$machine->succeed("[[ \"\$(stat -c %U ${socket})\" == \"${user}\" ]]");
|
||||||
|
$machine->succeed("[[ \"\$(stat -c %G ${socket})\" == \"${group}\" ]]");
|
||||||
|
$machine->succeed("[[ \"\$(stat -c %a ${socket})\" == \"${mode}\" ]]");
|
||||||
|
'';
|
||||||
|
simple = name: socketActivation: enableIPv6: makeTest {
|
||||||
|
name = "rspamd-${name}";
|
||||||
|
machine = {
|
||||||
|
services.rspamd = {
|
||||||
|
enable = true;
|
||||||
|
socketActivation = socketActivation;
|
||||||
|
};
|
||||||
|
networking.enableIPv6 = enableIPv6;
|
||||||
|
};
|
||||||
|
testScript = ''
|
||||||
|
startAll
|
||||||
|
$machine->waitForUnit("multi-user.target");
|
||||||
|
$machine->waitForOpenPort(11334);
|
||||||
|
$machine->waitForUnit("rspamd.service");
|
||||||
|
$machine->succeed("id \"rspamd\" >/dev/null");
|
||||||
|
${checkSocket "/run/rspamd/rspamd.sock" "rspamd" "rspamd" "660" }
|
||||||
|
sleep 10;
|
||||||
|
$machine->log($machine->succeed("cat /etc/rspamd.conf"));
|
||||||
|
$machine->log($machine->succeed("systemctl cat rspamd.service"));
|
||||||
|
${if socketActivation then ''
|
||||||
|
$machine->log($machine->succeed("systemctl cat rspamd-controller-1.socket"));
|
||||||
|
$machine->log($machine->succeed("systemctl cat rspamd-normal-1.socket"));
|
||||||
|
'' else ''
|
||||||
|
$machine->fail("systemctl cat rspamd-controller-1.socket");
|
||||||
|
$machine->fail("systemctl cat rspamd-normal-1.socket");
|
||||||
|
''}
|
||||||
|
$machine->log($machine->succeed("curl http://localhost:11334/auth"));
|
||||||
|
$machine->log($machine->succeed("curl http://127.0.0.1:11334/auth"));
|
||||||
|
${optionalString enableIPv6 ''
|
||||||
|
$machine->log($machine->succeed("curl http://[::1]:11334/auth"));
|
||||||
|
''}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
simple = simple "simple" false true;
|
||||||
|
ipv4only = simple "ipv4only" false false;
|
||||||
|
simple-socketActivated = simple "simple-socketActivated" true true;
|
||||||
|
ipv4only-socketActivated = simple "ipv4only-socketActivated" true false;
|
||||||
|
deprecated = makeTest {
|
||||||
|
name = "rspamd-deprecated";
|
||||||
|
machine = {
|
||||||
|
services.rspamd = {
|
||||||
|
enable = true;
|
||||||
|
bindSocket = [ "/run/rspamd.sock mode=0600 user=root group=root" ];
|
||||||
|
bindUISocket = [ "/run/rspamd-worker.sock mode=0666 user=root group=root" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
${initMachine}
|
||||||
|
$machine->waitForFile("/run/rspamd.sock");
|
||||||
|
${checkSocket "/run/rspamd.sock" "root" "root" "600" }
|
||||||
|
${checkSocket "/run/rspamd-worker.sock" "root" "root" "666" }
|
||||||
|
$machine->log($machine->succeed("cat /etc/rspamd.conf"));
|
||||||
|
$machine->fail("systemctl cat rspamd-normal-1.socket");
|
||||||
|
$machine->log($machine->succeed("rspamc -h /run/rspamd-worker.sock stat"));
|
||||||
|
$machine->log($machine->succeed("curl --unix-socket /run/rspamd-worker.sock http://localhost/ping"));
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
bindports = makeTest {
|
||||||
|
name = "rspamd-bindports";
|
||||||
|
machine = {
|
||||||
|
services.rspamd = {
|
||||||
|
enable = true;
|
||||||
|
socketActivation = false;
|
||||||
|
workers.normal.bindSockets = [{
|
||||||
|
socket = "/run/rspamd.sock";
|
||||||
|
mode = "0600";
|
||||||
|
owner = "root";
|
||||||
|
group = "root";
|
||||||
|
}];
|
||||||
|
workers.controller.bindSockets = [{
|
||||||
|
socket = "/run/rspamd-worker.sock";
|
||||||
|
mode = "0666";
|
||||||
|
owner = "root";
|
||||||
|
group = "root";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
${initMachine}
|
||||||
|
$machine->waitForFile("/run/rspamd.sock");
|
||||||
|
${checkSocket "/run/rspamd.sock" "root" "root" "600" }
|
||||||
|
${checkSocket "/run/rspamd-worker.sock" "root" "root" "666" }
|
||||||
|
$machine->log($machine->succeed("cat /etc/rspamd.conf"));
|
||||||
|
$machine->fail("systemctl cat rspamd-normal-1.socket");
|
||||||
|
$machine->log($machine->succeed("rspamc -h /run/rspamd-worker.sock stat"));
|
||||||
|
$machine->log($machine->succeed("curl --unix-socket /run/rspamd-worker.sock http://localhost/ping"));
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
socketActivated = makeTest {
|
||||||
|
name = "rspamd-socketActivated";
|
||||||
|
machine = {
|
||||||
|
services.rspamd = {
|
||||||
|
enable = true;
|
||||||
|
workers.normal.bindSockets = [{
|
||||||
|
socket = "/run/rspamd.sock";
|
||||||
|
mode = "0600";
|
||||||
|
owner = "root";
|
||||||
|
group = "root";
|
||||||
|
}];
|
||||||
|
workers.controller.bindSockets = [{
|
||||||
|
socket = "/run/rspamd-worker.sock";
|
||||||
|
mode = "0666";
|
||||||
|
owner = "root";
|
||||||
|
group = "root";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
startAll
|
||||||
|
$machine->waitForFile("/run/rspamd.sock");
|
||||||
|
${checkSocket "/run/rspamd.sock" "root" "root" "600" }
|
||||||
|
${checkSocket "/run/rspamd-worker.sock" "root" "root" "666" }
|
||||||
|
$machine->log($machine->succeed("cat /etc/rspamd.conf"));
|
||||||
|
$machine->log($machine->succeed("systemctl cat rspamd-normal-1.socket"));
|
||||||
|
$machine->log($machine->succeed("rspamc -h /run/rspamd-worker.sock stat"));
|
||||||
|
$machine->log($machine->succeed("curl --unix-socket /run/rspamd-worker.sock http://localhost/ping"));
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
25
nixos/tests/yabar.nix
Normal file
25
nixos/tests/yabar.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import ./make-test.nix ({ pkgs, lib }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "yabar";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ ma27 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes.yabar = {
|
||||||
|
imports = [ ./common/x11.nix ./common/user-account.nix ];
|
||||||
|
|
||||||
|
services.xserver.displayManager.auto.user = "bob";
|
||||||
|
|
||||||
|
programs.yabar.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
$yabar->start;
|
||||||
|
$yabar->waitForX;
|
||||||
|
|
||||||
|
$yabar->waitForUnit("yabar.service", "bob");
|
||||||
|
'';
|
||||||
|
})
|
@ -9,7 +9,7 @@ let
|
|||||||
# Latest version number can be found at:
|
# Latest version number can be found at:
|
||||||
# http://repository-origin.spotify.com/pool/non-free/s/spotify-client/
|
# http://repository-origin.spotify.com/pool/non-free/s/spotify-client/
|
||||||
# Be careful not to pick the testing version.
|
# Be careful not to pick the testing version.
|
||||||
version = "1.0.69.336.g7edcc575-39";
|
version = "1.0.70.399.g5ffabd56-26";
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
alsaLib
|
alsaLib
|
||||||
@ -54,7 +54,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
|
url = "https://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
|
||||||
sha256 = "0bh2q7g478g7wj661fypxcbhrbq87zingfyigg7rz1shgsgwc3gd";
|
sha256 = "0kpakz11xkyqqjvln4jkhc3z5my8zgpw8m6jx954cjdbc6vkxd29";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ dpkg makeWrapper ];
|
buildInputs = [ dpkg makeWrapper ];
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation (rec {
|
stdenv.mkDerivation (rec {
|
||||||
name = "ProofGeneral-unstable-${version}";
|
name = "ProofGeneral-unstable-${version}";
|
||||||
version = "2017-11-06";
|
version = "2018-01-30";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ProofGeneral";
|
owner = "ProofGeneral";
|
||||||
repo = "PG";
|
repo = "PG";
|
||||||
rev = "2eab72c33751768c8a6cde36b978ea4a36b91843";
|
rev = "945cada601c5729edd16fcc989a3969c8b34d20a";
|
||||||
sha256 = "1l3n48d6d4l5q3wkhdyp8dc6hzdw1ckdzr57dj8rdm78j87vh2cg";
|
sha256 = "1zjmbhq6c8g8b93nnsvr5pxx6mlcndb0fz152b2h80vfh9663cn8";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ emacs texinfo perl which ] ++ stdenv.lib.optional enableDoc texLive;
|
buildInputs = [ emacs texinfo perl which ] ++ stdenv.lib.optional enableDoc texLive;
|
||||||
|
@ -4,7 +4,10 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.1.414";
|
verMajor = "1";
|
||||||
|
verMinor = "1";
|
||||||
|
verPatch = "423";
|
||||||
|
version = "${verMajor}.${verMinor}.${verPatch}";
|
||||||
ginVer = "1.5";
|
ginVer = "1.5";
|
||||||
gwtVer = "2.7.0";
|
gwtVer = "2.7.0";
|
||||||
in
|
in
|
||||||
@ -19,46 +22,30 @@ stdenv.mkDerivation rec {
|
|||||||
owner = "rstudio";
|
owner = "rstudio";
|
||||||
repo = "rstudio";
|
repo = "rstudio";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1rr2zkv53r8swhq5d745jpp0ivxpsizzh7srf34isqpkn5pgx3v8";
|
sha256 = "02kpmzh0vr0gb5dhiwcm4gwjbc3biwz0km655mgzmx9j64cyd3nf";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Hack RStudio to only use the input R.
|
# Hack RStudio to only use the input R.
|
||||||
patches = [ ./r-location.patch ];
|
patches = [ ./r-location.patch ];
|
||||||
postPatch = "substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}";
|
postPatch = "substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}";
|
||||||
|
|
||||||
inherit ginVer;
|
|
||||||
ginSrc = fetchurl {
|
ginSrc = fetchurl {
|
||||||
url = "https://s3.amazonaws.com/rstudio-buildtools/gin-${ginVer}.zip";
|
url = "https://s3.amazonaws.com/rstudio-buildtools/gin-${ginVer}.zip";
|
||||||
sha256 = "155bjrgkf046b8ln6a55x06ryvm8agnnl7l8bkwwzqazbpmz8qgm";
|
sha256 = "155bjrgkf046b8ln6a55x06ryvm8agnnl7l8bkwwzqazbpmz8qgm";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit gwtVer;
|
|
||||||
gwtSrc = fetchurl {
|
gwtSrc = fetchurl {
|
||||||
url = "https://s3.amazonaws.com/rstudio-buildtools/gwt-${gwtVer}.zip";
|
url = "https://s3.amazonaws.com/rstudio-buildtools/gwt-${gwtVer}.zip";
|
||||||
sha256 = "1cs78z9a1jg698j2n35wsy07cy4fxcia9gi00x0r0qc3fcdhcrda";
|
sha256 = "1cs78z9a1jg698j2n35wsy07cy4fxcia9gi00x0r0qc3fcdhcrda";
|
||||||
};
|
};
|
||||||
|
|
||||||
hunspellDictionaries = builtins.attrValues hunspellDicts;
|
hunspellDictionaries = with stdenv.lib; filter isDerivation (attrValues hunspellDicts);
|
||||||
|
|
||||||
mathJaxSrc = fetchurl {
|
mathJaxSrc = fetchurl {
|
||||||
url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip;
|
url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip;
|
||||||
sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk";
|
sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk";
|
||||||
};
|
};
|
||||||
|
|
||||||
rmarkdownSrc = fetchFromGitHub {
|
|
||||||
owner = "rstudio";
|
|
||||||
repo = "rmarkdown";
|
|
||||||
rev = "v1.8";
|
|
||||||
sha256 = "1blqxdr1vp2z5wd52nmf8hq36sdd4s2pyms441dqj50v35f8girb";
|
|
||||||
};
|
|
||||||
|
|
||||||
rsconnectSrc = fetchFromGitHub {
|
|
||||||
owner = "rstudio";
|
|
||||||
repo = "rsconnect";
|
|
||||||
rev = "953c945779dd180c1bfe68f41c173c13ec3e222d";
|
|
||||||
sha256 = "1yxwd9v4mvddh7m5rbljicmssw7glh1lhin7a9f01vxxa92vpj7z";
|
|
||||||
};
|
|
||||||
|
|
||||||
rstudiolibclang = fetchurl {
|
rstudiolibclang = fetchurl {
|
||||||
url = https://s3.amazonaws.com/rstudio-buildtools/libclang-3.5.zip;
|
url = https://s3.amazonaws.com/rstudio-buildtools/libclang-3.5.zip;
|
||||||
sha256 = "1sl5vb8misipwbbbykdymw172w9qrh8xv3p29g0bf3nzbnv6zc7c";
|
sha256 = "1sl5vb8misipwbbbykdymw172w9qrh8xv3p29g0bf3nzbnv6zc7c";
|
||||||
@ -71,31 +58,31 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
preConfigure =
|
preConfigure =
|
||||||
''
|
''
|
||||||
|
export RSTUDIO_VERSION_MAJOR=${verMajor}
|
||||||
|
export RSTUDIO_VERSION_MINOR=${verMinor}
|
||||||
|
export RSTUDIO_VERSION_PATCH=${verPatch}
|
||||||
|
|
||||||
GWT_LIB_DIR=src/gwt/lib
|
GWT_LIB_DIR=src/gwt/lib
|
||||||
|
|
||||||
mkdir -p $GWT_LIB_DIR/gin/$ginVer
|
mkdir -p $GWT_LIB_DIR/gin/${ginVer}
|
||||||
unzip $ginSrc -d $GWT_LIB_DIR/gin/$ginVer
|
unzip ${ginSrc} -d $GWT_LIB_DIR/gin/${ginVer}
|
||||||
|
|
||||||
unzip $gwtSrc
|
unzip ${gwtSrc}
|
||||||
mkdir -p $GWT_LIB_DIR/gwt
|
mkdir -p $GWT_LIB_DIR/gwt
|
||||||
mv gwt-$gwtVer $GWT_LIB_DIR/gwt/$gwtVer
|
mv gwt-${gwtVer} $GWT_LIB_DIR/gwt/${gwtVer}
|
||||||
|
|
||||||
mkdir dependencies/common/dictionaries
|
mkdir dependencies/common/dictionaries
|
||||||
for dict in $hunspellDictionaries; do
|
for dict in ${builtins.concatStringsSep " " hunspellDictionaries}; do
|
||||||
for i in "$dict/share/hunspell/"*
|
for i in "$dict/share/hunspell/"*; do
|
||||||
do ln -sv $i dependencies/common/dictionaries/
|
ln -sv $i dependencies/common/dictionaries/
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
unzip $mathJaxSrc -d dependencies/common/mathjax-26
|
unzip ${mathJaxSrc} -d dependencies/common/mathjax-26
|
||||||
mkdir -p dependencies/common/rmarkdown
|
|
||||||
ln -s $rmarkdownSrc dependencies/common/rmarkdown/
|
|
||||||
mkdir -p dependencies/common/rsconnect
|
|
||||||
ln -s $rsconnectSrc dependencies/common/rsconnect/
|
|
||||||
mkdir -p dependencies/common/libclang/3.5
|
mkdir -p dependencies/common/libclang/3.5
|
||||||
unzip $rstudiolibclang -d dependencies/common/libclang/3.5
|
unzip ${rstudiolibclang} -d dependencies/common/libclang/3.5
|
||||||
mkdir -p dependencies/common/libclang/builtin-headers
|
mkdir -p dependencies/common/libclang/builtin-headers
|
||||||
unzip $rstudiolibclangheaders -d dependencies/common/libclang/builtin-headers
|
unzip ${rstudiolibclangheaders} -d dependencies/common/libclang/builtin-headers
|
||||||
|
|
||||||
mkdir -p dependencies/common/pandoc
|
mkdir -p dependencies/common/pandoc
|
||||||
cp ${pandoc}/bin/pandoc dependencies/common/pandoc/
|
cp ${pandoc}/bin/pandoc dependencies/common/pandoc/
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "typora-${version}";
|
name = "typora-${version}";
|
||||||
version = "0.9.41";
|
version = "0.9.44";
|
||||||
|
|
||||||
src =
|
src =
|
||||||
if stdenv.system == "x86_64-linux" then
|
if stdenv.system == "x86_64-linux" then
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
|
url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
|
||||||
sha256 = "e4916f86c7c12aec8fd59b3ef79c2a4d3f77b02a0a9e962916c688871c9fda1d";
|
sha256 = "9442c090bf2619d270890228abd7dabb9e217c0b200615f8ed3cb255efd122d5";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://www.typora.io/linux/typora_${version}_i386.deb";
|
url = "https://www.typora.io/linux/typora_${version}_i386.deb";
|
||||||
sha256 = "18960fb4b2cd6cf9cb77025a4035a3258f1599b1d225fb673b49c1588fa272d6";
|
sha256 = "ae228ca946d03940b85df30c995c4de3f942a780e32d4dcab872dec671c66ef3";
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -1,15 +1,10 @@
|
|||||||
{ stdenv, fetchurl, libsoup, graphicsmagick, SDL, json_glib
|
{ stdenv, fetchurl, libsoup, graphicsmagick, json_glib, wrapGAppsHook
|
||||||
, GConf, atk, cairo, cmake, curl, dbus_glib, exiv2, glib
|
, cairo, cmake, ninja, curl, perl, llvm, desktop_file_utils, exiv2, glib
|
||||||
, libgnome_keyring, gtk3, ilmbase, intltool, lcms, lcms2
|
, ilmbase, gtk3, intltool, lcms2, lensfun, libX11, libexif, libgphoto2, libjpeg
|
||||||
, lensfun, libXau, libXdmcp, libexif, libglade, libgphoto2, libjpeg
|
, libpng, librsvg, libtiff, openexr, osm-gps-map, pkgconfig, sqlite, libxslt
|
||||||
, libpng, libpthreadstubs, librsvg, libtiff, libxcb
|
, openjpeg, lua, pugixml, colord, colord-gtk, libwebp, libsecret, gnome3
|
||||||
, openexr, osm-gps-map, pixman, pkgconfig, sqlite, bash, libxslt, openjpeg
|
|
||||||
, mesa, lua, pugixml, colord, colord-gtk, libxshmfence, libxkbcommon
|
|
||||||
, epoxy, at_spi2_core, libwebp, libsecret, wrapGAppsHook, gnome3
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert stdenv ? glibc;
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.4.1";
|
version = "2.4.1";
|
||||||
name = "darktable-${version}";
|
name = "darktable-${version}";
|
||||||
@ -19,14 +14,13 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "014pq80i5k1kdvvrl7xrgaaq3i4fzv09h7a3pwzlp2ahkczwcm32";
|
sha256 = "014pq80i5k1kdvvrl7xrgaaq3i4fzv09h7a3pwzlp2ahkczwcm32";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop_file_utils wrapGAppsHook ];
|
||||||
[ GConf atk cairo cmake curl dbus_glib exiv2 glib libgnome_keyring gtk3
|
|
||||||
ilmbase intltool lcms lcms2 lensfun libXau libXdmcp libexif
|
buildInputs = [
|
||||||
libglade libgphoto2 libjpeg libpng libpthreadstubs
|
cairo curl exiv2 glib gtk3 ilmbase lcms2 lensfun libX11 libexif
|
||||||
librsvg libtiff libxcb openexr pixman pkgconfig sqlite libxslt
|
libgphoto2 libjpeg libpng librsvg libtiff openexr sqlite libxslt
|
||||||
libsoup graphicsmagick SDL json_glib openjpeg mesa lua pugixml
|
libsoup graphicsmagick json_glib openjpeg lua pugixml
|
||||||
colord colord-gtk libxshmfence libxkbcommon epoxy at_spi2_core
|
colord colord-gtk libwebp libsecret gnome3.adwaita-icon-theme
|
||||||
libwebp libsecret wrapGAppsHook gnome3.adwaita-icon-theme
|
|
||||||
osm-gps-map
|
osm-gps-map
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -30,18 +30,18 @@ let
|
|||||||
];
|
];
|
||||||
in buildRustPackage rec {
|
in buildRustPackage rec {
|
||||||
name = "alacritty-unstable-${version}";
|
name = "alacritty-unstable-${version}";
|
||||||
version = "2017-12-29";
|
version = "2018-01-31";
|
||||||
|
|
||||||
# At the moment we cannot handle git dependencies in buildRustPackage.
|
# At the moment we cannot handle git dependencies in buildRustPackage.
|
||||||
# This fork only replaces rust-fontconfig/libfontconfig with a git submodules.
|
# This fork only replaces rust-fontconfig/libfontconfig with a git submodules.
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = https://github.com/Mic92/alacritty.git;
|
url = https://github.com/Mic92/alacritty.git;
|
||||||
rev = "rev-${version}";
|
rev = "rev-${version}";
|
||||||
sha256 = "0pk4b8kfxixmd9985v2fya1m7np8ggws8d9msw210drc0grwbfkd";
|
sha256 = "0jc8haijd6f8r5fqiknrvqnwc9q4cp93852lr2p7zak7dv29v45p";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "0acj526cx4xl52vbcbd3hp1klh4p756j6alxqqz3x715zi2dqkzf";
|
cargoSha256 = "0023jpc6krilmp5wzbbwapxafsi6m1k13mvjh4zlvls1nyyhk808";
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
{ stdenv, fetchurl, python2Packages }:
|
{ stdenv, fetchurl, python2Packages }:
|
||||||
|
|
||||||
python2Packages.buildPythonApplication rec {
|
python2Packages.buildPythonApplication rec {
|
||||||
|
version = "2.9.3.1";
|
||||||
name = "electrum-dash-${version}";
|
name = "electrum-dash-${version}";
|
||||||
version = "2.4.1";
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/dashpay/electrum-dash/releases/download/v${version}/Electrum-DASH-${version}.tar.gz";
|
url = "https://github.com/akhavr/electrum-dash/releases/download/${version}/Electrum-DASH-${version}.tar.gz";
|
||||||
sha256 = "02k7m7fyn0cvlgmwxr2gag7rf2knllkch1ma58shysp7zx9jb000";
|
#"https://github.com/dashpay/electrum-dash/releases/download/v${version}/Electrum-DASH-${version}.tar.gz";
|
||||||
|
sha256 = "9b7ac205f63fd4bfb15d77a34a4451ef82caecf096f31048a7603bd276dfc33e";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python2Packages; [
|
propagatedBuildInputs = with python2Packages; [
|
||||||
@ -20,10 +21,11 @@ python2Packages.buildPythonApplication rec {
|
|||||||
pyqt4
|
pyqt4
|
||||||
qrcode
|
qrcode
|
||||||
requests
|
requests
|
||||||
slowaes
|
pyaes
|
||||||
tlslite
|
tlslite
|
||||||
x11_hash
|
x11_hash
|
||||||
mnemonic
|
mnemonic
|
||||||
|
jsonrpclib
|
||||||
|
|
||||||
# plugins
|
# plugins
|
||||||
trezor
|
trezor
|
||||||
|
93
pkgs/applications/misc/slic3r-prusa3d/default.nix
Normal file
93
pkgs/applications/misc/slic3r-prusa3d/default.nix
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, makeWrapper, which, cmake, perl, perlPackages,
|
||||||
|
boost, tbb, wxGTK30, pkgconfig, gtk3, fetchurl, gtk2, bash, mesa_glu }:
|
||||||
|
let
|
||||||
|
AlienWxWidgets = perlPackages.buildPerlPackage rec {
|
||||||
|
name = "Alien-wxWidgets-0.69";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://cpan/authors/id/M/MD/MDOOTSON/${name}.tar.gz";
|
||||||
|
sha256 = "075m880klf66pbcfk0la2nl60vd37jljizqndrklh5y4zvzdy1nr";
|
||||||
|
};
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
pkgconfig perlPackages.ModulePluggable perlPackages.ModuleBuild
|
||||||
|
gtk2 gtk3 wxGTK30
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
Wx = perlPackages.Wx.overrideAttrs (oldAttrs: {
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
perlPackages.ExtUtilsXSpp
|
||||||
|
AlienWxWidgets
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
WxGLCanvas = perlPackages.buildPerlPackage rec {
|
||||||
|
name = "Wx-GLCanvas-0.09";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://cpan/authors/id/M/MB/MBARBON/${name}.tar.gz";
|
||||||
|
sha256 = "1q4gvj4gdx4l8k4mkgiix24p9mdfy1miv7abidf0my3gy2gw5lka";
|
||||||
|
};
|
||||||
|
propagatedBuildInputs = [ Wx perlPackages.OpenGL mesa_glu ];
|
||||||
|
doCheck = false;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "slic3r-prusa-edition-${version}";
|
||||||
|
version = "1.38.7";
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
cmake
|
||||||
|
perl
|
||||||
|
makeWrapper
|
||||||
|
tbb
|
||||||
|
which
|
||||||
|
Wx
|
||||||
|
WxGLCanvas
|
||||||
|
] ++ (with perlPackages; [
|
||||||
|
boost
|
||||||
|
ClassXSAccessor
|
||||||
|
EncodeLocale
|
||||||
|
ExtUtilsMakeMaker
|
||||||
|
ExtUtilsXSpp
|
||||||
|
GrowlGNTP
|
||||||
|
ImportInto
|
||||||
|
IOStringy
|
||||||
|
locallib
|
||||||
|
LWP
|
||||||
|
MathClipper
|
||||||
|
MathConvexHullMonotoneChain
|
||||||
|
MathGeometryVoronoi
|
||||||
|
MathPlanePath
|
||||||
|
ModuleBuild
|
||||||
|
Moo
|
||||||
|
NetDBus
|
||||||
|
OpenGL
|
||||||
|
threads
|
||||||
|
XMLSAX
|
||||||
|
]);
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
echo 'postInstall'
|
||||||
|
wrapProgram "$out/bin/slic3r-prusa3d" \
|
||||||
|
--prefix PERL5LIB : "$out/lib/slic3r-prusa3d:$PERL5LIB"
|
||||||
|
|
||||||
|
# it seems we need to copy the icons...
|
||||||
|
mkdir -p $out/bin/var
|
||||||
|
cp ../resources/icons/* $out/bin/var/
|
||||||
|
cp -r ../resources $out/bin/
|
||||||
|
'';
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "prusa3d";
|
||||||
|
repo = "Slic3r";
|
||||||
|
sha256 = "1nrryd2bxmk4y59bq5fp7n2alyvc5a9xvnbx5j4fg4mqr91ccs5c";
|
||||||
|
rev = "version_${version}";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "G-code generator for 3D printer";
|
||||||
|
homepage = https://github.com/prusa3d/Slic3r;
|
||||||
|
license = licenses.agpl3;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ tweber ];
|
||||||
|
};
|
||||||
|
}
|
@ -75,5 +75,6 @@ buildPythonApplication rec {
|
|||||||
description = "Multipurpose automation tool for content like torrents";
|
description = "Multipurpose automation tool for content like torrents";
|
||||||
license = lib.licenses.mit;
|
license = lib.licenses.mit;
|
||||||
maintainers = with lib.maintainers; [ domenkozar tari ];
|
maintainers = with lib.maintainers; [ domenkozar tari ];
|
||||||
|
broken = true; # as of 2018-02-09
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
{ stdenv, fetchurl, autoreconfHook, python, intltool, pkgconfig, libX11
|
{ stdenv, fetchurl, autoreconfHook, python, intltool, pkgconfig, libX11
|
||||||
, ldns, pythonPackages
|
, ldns, pythonPackages
|
||||||
|
|
||||||
# Test requirements
|
|
||||||
, xvfb_run
|
|
||||||
|
|
||||||
, enableJingle ? true, farstream ? null, gst-plugins-bad ? null
|
, enableJingle ? true, farstream ? null, gst-plugins-bad ? null
|
||||||
, libnice ? null
|
, libnice ? null
|
||||||
, enableE2E ? true
|
, enableE2E ? true
|
||||||
@ -25,13 +22,13 @@ with stdenv.lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gajim-${version}";
|
name = "gajim-${version}";
|
||||||
version = "0.16.8";
|
version = "0.16.9";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
name = "${name}.tar.bz2";
|
name = "${name}.tar.bz2";
|
||||||
url = "https://dev.gajim.org/gajim/gajim/repository/archive.tar.bz2?"
|
url = "https://dev.gajim.org/gajim/gajim/repository/archive.tar.bz2?"
|
||||||
+ "ref=${name}";
|
+ "ref=${name}";
|
||||||
sha256 = "009cpzqh4zy7hc9pq3r5m4lgagwawhjab13rjzavb0n9ggijcscb";
|
sha256 = "121dh906zya9n7npyk7b5xama0z3ycy9jl7l5jm39pc86h1winh3";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = let
|
patches = let
|
||||||
@ -46,8 +43,7 @@ stdenv.mkDerivation rec {
|
|||||||
name = "gajim-${name}.patch";
|
name = "gajim-${name}.patch";
|
||||||
url = "https://dev.gajim.org/gajim/gajim/commit/${rev}.diff";
|
url = "https://dev.gajim.org/gajim/gajim/commit/${rev}.diff";
|
||||||
inherit sha256;
|
inherit sha256;
|
||||||
}) cherries)
|
}) cherries);
|
||||||
++ [./fix-tests.patch]; # https://dev.gajim.org/gajim/gajim/issues/8660
|
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
sed -i -e '0,/^[^#]/ {
|
sed -i -e '0,/^[^#]/ {
|
||||||
@ -74,8 +70,6 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
autoreconfHook pythonPackages.wrapPython intltool pkgconfig
|
autoreconfHook pythonPackages.wrapPython intltool pkgconfig
|
||||||
# Test dependencies
|
|
||||||
xvfb_run
|
|
||||||
];
|
];
|
||||||
|
|
||||||
autoreconfPhase = ''
|
autoreconfPhase = ''
|
||||||
@ -114,9 +108,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
doInstallCheck = true;
|
doInstallCheck = true;
|
||||||
installCheckPhase = ''
|
installCheckPhase = ''
|
||||||
XDG_DATA_DIRS="$out/share/gajim''${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS" \
|
|
||||||
PYTHONPATH="test:$out/share/gajim/src:''${PYTHONPATH:+:}$PYTHONPATH" \
|
PYTHONPATH="test:$out/share/gajim/src:''${PYTHONPATH:+:}$PYTHONPATH" \
|
||||||
xvfb-run make test
|
make test_nogui
|
||||||
'';
|
'';
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
diff --git a/src/common/gajim.py b/src/common/gajim.py
|
|
||||||
index 4a5d884b6..95d401b67 100644
|
|
||||||
--- a/src/common/gajim.py
|
|
||||||
+++ b/src/common/gajim.py
|
|
||||||
@@ -415,7 +415,7 @@ def get_jid_from_account(account_name, full=False):
|
|
||||||
jid = name + '@' + hostname
|
|
||||||
if full:
|
|
||||||
resource = connections[account_name].server_resource
|
|
||||||
- jid += '/' + resource
|
|
||||||
+ jid += '/' + str(resource)
|
|
||||||
return jid
|
|
||||||
|
|
||||||
def get_our_jids():
|
|
@ -1,14 +1,14 @@
|
|||||||
{ stdenv, lib, fetchFromGitHub, go, procps, removeReferencesTo }:
|
{ stdenv, lib, fetchFromGitHub, go, procps, removeReferencesTo }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.14.43";
|
version = "0.14.44";
|
||||||
name = "syncthing-${version}";
|
name = "syncthing-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "syncthing";
|
owner = "syncthing";
|
||||||
repo = "syncthing";
|
repo = "syncthing";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1n09zmp9dqrl3y0fa0l1gx6f09j9mm3xdf7b58y03znspsg7mxhi";
|
sha256 = "1gdkx6lbzmdz2hqc9slbq41rwgkxmdisnj0iywx4mppmc2b4v6wh";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ go removeReferencesTo ];
|
buildInputs = [ go removeReferencesTo ];
|
||||||
|
@ -209,14 +209,14 @@ rec {
|
|||||||
tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
|
tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
|
||||||
};
|
};
|
||||||
|
|
||||||
docker_18_01 = dockerGen rec {
|
docker_18_02 = dockerGen rec {
|
||||||
version = "18.01.0-ce";
|
version = "18.02.0-ce";
|
||||||
rev = "03596f51b120095326d2004d676e97228a21014d"; # git commit
|
rev = "fc4de447b563498eb4da89f56fb858bbe761d91b"; # git commit
|
||||||
sha256 = "1zffaxwkfz8ca76f5ql5z76mcjx37jbgv2kk75i68487yg16x0md";
|
sha256 = "1025cwv2niiwg5pc30nb1qky1raisvd9ix2qw6rdib232hwq9k8m";
|
||||||
runcRev = "b2567b37d7b75eb4cf325b77297b140ea686ce8f";
|
runcRev = "9f9c96235cc97674e935002fc3d78361b696a69e";
|
||||||
runcSha256 = "0zarsrbfcm1yp6mdl6rcrigdf7nb70xmv2cbggndz0qqyrw0mk0l";
|
runcSha256 = "18f8vqdbf685dd777pjh8jzpxafw2vapqh4m43xgyi7lfwa0gsln";
|
||||||
containerdRev = "89623f28b87a6004d4b785663257362d1658a729";
|
containerdRev = "9b55aab90508bd389d7654c4baf173a981477d55";
|
||||||
containerdSha256 = "0irx7ps6rhq7z69cr3gspxdr7ywrv6dz62gkr1z2723cki9hsxma";
|
containerdSha256 = "0kfafqi66yp4qy738pl11f050hfrx9m4kc670qpx7fmf9ii7q6p2";
|
||||||
tiniRev = "949e6facb77383876aeff8a6944dde66b3089574";
|
tiniRev = "949e6facb77383876aeff8a6944dde66b3089574";
|
||||||
tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
|
tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
|
||||||
};
|
};
|
||||||
|
174
pkgs/build-support/setup-hooks/auto-patchelf.sh
Normal file
174
pkgs/build-support/setup-hooks/auto-patchelf.sh
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
declare -a autoPatchelfLibs
|
||||||
|
|
||||||
|
gatherLibraries() {
|
||||||
|
autoPatchelfLibs+=("$1/lib")
|
||||||
|
}
|
||||||
|
|
||||||
|
addEnvHooks "$targetOffset" gatherLibraries
|
||||||
|
|
||||||
|
isExecutable() {
|
||||||
|
[ "$(file -b -N --mime-type "$1")" = application/x-executable ]
|
||||||
|
}
|
||||||
|
|
||||||
|
findElfs() {
|
||||||
|
find "$1" -type f -exec "$SHELL" -c '
|
||||||
|
while [ -n "$1" ]; do
|
||||||
|
mimeType="$(file -b -N --mime-type "$1")"
|
||||||
|
if [ "$mimeType" = application/x-executable \
|
||||||
|
-o "$mimeType" = application/x-sharedlib ]; then
|
||||||
|
echo "$1"
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
' -- {} +
|
||||||
|
}
|
||||||
|
|
||||||
|
# We cache dependencies so that we don't need to search through all of them on
|
||||||
|
# every consecutive call to findDependency.
|
||||||
|
declare -a cachedDependencies
|
||||||
|
|
||||||
|
addToDepCache() {
|
||||||
|
local existing
|
||||||
|
for existing in "${cachedDependencies[@]}"; do
|
||||||
|
if [ "$existing" = "$1" ]; then return; fi
|
||||||
|
done
|
||||||
|
cachedDependencies+=("$1")
|
||||||
|
}
|
||||||
|
|
||||||
|
declare -gi depCacheInitialised=0
|
||||||
|
declare -gi doneRecursiveSearch=0
|
||||||
|
declare -g foundDependency
|
||||||
|
|
||||||
|
getDepsFromSo() {
|
||||||
|
ldd "$1" 2> /dev/null | sed -n -e 's/[^=]*=> *\(.\+\) \+([^)]*)$/\1/p'
|
||||||
|
}
|
||||||
|
|
||||||
|
populateCacheWithRecursiveDeps() {
|
||||||
|
local so found foundso
|
||||||
|
for so in "${cachedDependencies[@]}"; do
|
||||||
|
for found in $(getDepsFromSo "$so"); do
|
||||||
|
local libdir="${found%/*}"
|
||||||
|
local base="${found##*/}"
|
||||||
|
local soname="${base%.so*}"
|
||||||
|
for foundso in "${found%/*}/$soname".so*; do
|
||||||
|
addToDepCache "$foundso"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
getSoArch() {
|
||||||
|
objdump -f "$1" | sed -ne 's/^architecture: *\([^,]\+\).*/\1/p'
|
||||||
|
}
|
||||||
|
|
||||||
|
# NOTE: If you want to use this function outside of the autoPatchelf function,
|
||||||
|
# keep in mind that the dependency cache is only valid inside the subshell
|
||||||
|
# spawned by the autoPatchelf function, so invoking this directly will possibly
|
||||||
|
# rebuild the dependency cache. See the autoPatchelf function below for more
|
||||||
|
# information.
|
||||||
|
findDependency() {
|
||||||
|
local filename="$1"
|
||||||
|
local arch="$2"
|
||||||
|
local lib dep
|
||||||
|
|
||||||
|
if [ $depCacheInitialised -eq 0 ]; then
|
||||||
|
for lib in "${autoPatchelfLibs[@]}"; do
|
||||||
|
for so in "$lib/"*.so*; do addToDepCache "$so"; done
|
||||||
|
done
|
||||||
|
depCacheInitialised=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for dep in "${cachedDependencies[@]}"; do
|
||||||
|
if [ "$filename" = "${dep##*/}" ]; then
|
||||||
|
if [ "$(getSoArch "$dep")" = "$arch" ]; then
|
||||||
|
foundDependency="$dep"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Populate the dependency cache with recursive dependencies *only* if we
|
||||||
|
# didn't find the right dependency so far and afterwards run findDependency
|
||||||
|
# again, but this time with $doneRecursiveSearch set to 1 so that it won't
|
||||||
|
# recurse again (and thus infinitely).
|
||||||
|
if [ $doneRecursiveSearch -eq 0 ]; then
|
||||||
|
populateCacheWithRecursiveDeps
|
||||||
|
doneRecursiveSearch=1
|
||||||
|
findDependency "$filename" "$arch" || return 1
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
autoPatchelfFile() {
|
||||||
|
local dep rpath="" toPatch="$1"
|
||||||
|
|
||||||
|
local interpreter="$(< "$NIX_CC/nix-support/dynamic-linker")"
|
||||||
|
if isExecutable "$toPatch"; then
|
||||||
|
patchelf --set-interpreter "$interpreter" "$toPatch"
|
||||||
|
if [ -n "$runtimeDependencies" ]; then
|
||||||
|
for dep in $runtimeDependencies; do
|
||||||
|
rpath="$rpath${rpath:+:}$dep/lib"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "searching for dependencies of $toPatch" >&2
|
||||||
|
|
||||||
|
# We're going to find all dependencies based on ldd output, so we need to
|
||||||
|
# clear the RPATH first.
|
||||||
|
patchelf --remove-rpath "$toPatch"
|
||||||
|
|
||||||
|
local missing="$(
|
||||||
|
ldd "$toPatch" 2> /dev/null | \
|
||||||
|
sed -n -e 's/^[\t ]*\([^ ]\+\) => not found.*/\1/p'
|
||||||
|
)"
|
||||||
|
|
||||||
|
# This ensures that we get the output of all missing dependencies instead
|
||||||
|
# of failing at the first one, because it's more useful when working on a
|
||||||
|
# new package where you don't yet know its dependencies.
|
||||||
|
local -i depNotFound=0
|
||||||
|
|
||||||
|
for dep in $missing; do
|
||||||
|
echo -n " $dep -> " >&2
|
||||||
|
if findDependency "$dep" "$(getSoArch "$toPatch")"; then
|
||||||
|
rpath="$rpath${rpath:+:}${foundDependency%/*}"
|
||||||
|
echo "found: $foundDependency" >&2
|
||||||
|
else
|
||||||
|
echo "not found!" >&2
|
||||||
|
depNotFound=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# This makes sure the builder fails if we didn't find a dependency, because
|
||||||
|
# the stdenv setup script is run with set -e. The actual error is emitted
|
||||||
|
# earlier in the previous loop.
|
||||||
|
[ $depNotFound -eq 0 ]
|
||||||
|
|
||||||
|
if [ -n "$rpath" ]; then
|
||||||
|
echo "setting RPATH to: $rpath" >&2
|
||||||
|
patchelf --set-rpath "$rpath" "$toPatch"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
autoPatchelf() {
|
||||||
|
echo "automatically fixing dependencies for ELF files" >&2
|
||||||
|
|
||||||
|
# Add all shared objects of the current output path to the start of
|
||||||
|
# cachedDependencies so that it's choosen first in findDependency.
|
||||||
|
cachedDependencies+=(
|
||||||
|
$(find "$prefix" \! -type d \( -name '*.so' -o -name '*.so.*' \))
|
||||||
|
)
|
||||||
|
local elffile
|
||||||
|
|
||||||
|
# Here we actually have a subshell, which also means that
|
||||||
|
# $cachedDependencies is final at this point, so whenever we want to run
|
||||||
|
# findDependency outside of this, the dependency cache needs to be rebuilt
|
||||||
|
# from scratch, so keep this in mind if you want to run findDependency
|
||||||
|
# outside of this function.
|
||||||
|
findElfs "$prefix" | while read -r elffile; do
|
||||||
|
autoPatchelfFile "$elffile"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
fixupOutputHooks+=(autoPatchelf)
|
@ -1,12 +1,12 @@
|
|||||||
{ stdenv, fetchurl, makeWrapper, jre }:
|
{ stdenv, fetchurl, makeWrapper, jre }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.4.0-RC1";
|
version = "0.6.0-RC1";
|
||||||
name = "dotty-bare-${version}";
|
name = "dotty-bare-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
|
url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
|
||||||
sha256 = "1d1ab08b85bd6898ce6273fa50818de0d314fc6e5377fb6ee05494827043321b";
|
sha256 = "de1f5e72fb0e0b4c377d6cec93f565eff49769698cd8be01b420705fe8475ca4";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ jre ] ;
|
propagatedBuildInputs = [ jre ] ;
|
||||||
|
@ -72,8 +72,7 @@ assert enableSplitObjs == null;
|
|||||||
let
|
let
|
||||||
|
|
||||||
inherit (stdenv.lib) optional optionals optionalString versionOlder versionAtLeast
|
inherit (stdenv.lib) optional optionals optionalString versionOlder versionAtLeast
|
||||||
concatStringsSep enableFeature optionalAttrs toUpper
|
concatStringsSep enableFeature optionalAttrs toUpper;
|
||||||
filter makeLibraryPath;
|
|
||||||
|
|
||||||
isGhcjs = ghc.isGhcjs or false;
|
isGhcjs = ghc.isGhcjs or false;
|
||||||
isHaLVM = ghc.isHaLVM or false;
|
isHaLVM = ghc.isHaLVM or false;
|
||||||
@ -384,7 +383,7 @@ stdenv.mkDerivation ({
|
|||||||
env = stdenv.mkDerivation {
|
env = stdenv.mkDerivation {
|
||||||
name = "interactive-${pname}-${version}-environment";
|
name = "interactive-${pname}-${version}-environment";
|
||||||
buildInputs = systemBuildInputs;
|
buildInputs = systemBuildInputs;
|
||||||
nativeBuildInputs = [ ghcEnv ];
|
nativeBuildInputs = [ ghcEnv ] ++ nativeBuildInputs;
|
||||||
LANG = "en_US.UTF-8";
|
LANG = "en_US.UTF-8";
|
||||||
LOCALE_ARCHIVE = optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
|
LOCALE_ARCHIVE = optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
@ -392,9 +391,6 @@ stdenv.mkDerivation ({
|
|||||||
export NIX_${ghcCommandCaps}PKG="${ghcEnv}/bin/${ghcCommand}-pkg"
|
export NIX_${ghcCommandCaps}PKG="${ghcEnv}/bin/${ghcCommand}-pkg"
|
||||||
# TODO: is this still valid?
|
# TODO: is this still valid?
|
||||||
export NIX_${ghcCommandCaps}_DOCDIR="${ghcEnv}/share/doc/ghc/html"
|
export NIX_${ghcCommandCaps}_DOCDIR="${ghcEnv}/share/doc/ghc/html"
|
||||||
export LD_LIBRARY_PATH="''${LD_LIBRARY_PATH:+''${LD_LIBRARY_PATH}:}${
|
|
||||||
makeLibraryPath (filter (x: !isNull x) systemBuildInputs)
|
|
||||||
}"
|
|
||||||
${if isHaLVM
|
${if isHaLVM
|
||||||
then ''export NIX_${ghcCommandCaps}_LIBDIR="${ghcEnv}/lib/HaLVM-${ghc.version}"''
|
then ''export NIX_${ghcCommandCaps}_LIBDIR="${ghcEnv}/lib/HaLVM-${ghc.version}"''
|
||||||
else ''export NIX_${ghcCommandCaps}_LIBDIR="${ghcEnv}/lib/${ghcCommand}-${ghc.version}"''}
|
else ''export NIX_${ghcCommandCaps}_LIBDIR="${ghcEnv}/lib/${ghcCommand}-${ghc.version}"''}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{ stdenv, lib, fetchFromGitHub, pkgconfig, cmake
|
{ stdenv, lib, fetchFromGitHub, pkgconfig, cmake, zlib
|
||||||
, dbus, networkmanager, spidermonkey_38, pcre, python2, python3 }:
|
, dbus, networkmanager, spidermonkey_38, pcre, python2, python3
|
||||||
|
, SystemConfiguration, CoreFoundation, JavaScriptCore }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libproxy-${version}";
|
name = "libproxy-${version}";
|
||||||
@ -16,7 +17,10 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig cmake ];
|
nativeBuildInputs = [ pkgconfig cmake ];
|
||||||
|
|
||||||
buildInputs = [ dbus networkmanager spidermonkey_38 pcre python2 python3 ];
|
buildInputs = [ pcre python2 python3 zlib ]
|
||||||
|
++ (if stdenv.hostPlatform.isDarwin
|
||||||
|
then [ SystemConfiguration CoreFoundation JavaScriptCore ]
|
||||||
|
else [ spidermonkey_38 dbus networkmanager ]);
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
cmakeFlagsArray+=(
|
cmakeFlagsArray+=(
|
||||||
@ -27,7 +31,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
license = licenses.lgpl21;
|
license = licenses.lgpl21;
|
||||||
homepage = http://libproxy.github.io/libproxy/;
|
homepage = http://libproxy.github.io/libproxy/;
|
||||||
description = "A library that provides automatic proxy configuration management";
|
description = "A library that provides automatic proxy configuration management";
|
||||||
|
@ -3,13 +3,17 @@
|
|||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "awesome-slugify";
|
pname = "awesome-slugify";
|
||||||
version = "1.6.5";
|
version = "1.6.5";
|
||||||
name = "${pname}-${version}";
|
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "0wgxrhr8s5vk2xmcz9s1z1aml4ppawmhkbggl9rp94c747xc7pmv";
|
sha256 = "0wgxrhr8s5vk2xmcz9s1z1aml4ppawmhkbggl9rp94c747xc7pmv";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
prePatch = ''
|
||||||
|
substituteInPlace setup.py \
|
||||||
|
--replace 'Unidecode>=0.04.14,<0.05' 'Unidecode>=0.04.14'
|
||||||
|
'';
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./slugify_filename_test.patch # fixes broken test by new unidecode
|
./slugify_filename_test.patch # fixes broken test by new unidecode
|
||||||
];
|
];
|
||||||
|
@ -1,17 +1,20 @@
|
|||||||
{ stdenv, buildPythonPackage, fetchPypi, termcolor, pytest }:
|
{ stdenv, buildPythonPackage, fetchPypi, termcolor, pytest }:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
name = "${pname}-${version}";
|
|
||||||
pname = "pytest-sugar";
|
pname = "pytest-sugar";
|
||||||
version = "0.9.0";
|
version = "0.9.1";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "11lni9kn0r1y896xg20qjv4yjcyr56h0hx9dprdgjnam4dqcl6lg";
|
sha256 = "ab8cc42faf121344a4e9b13f39a51257f26f410e416c52ea11078cdd00d98a2c";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ termcolor pytest ];
|
propagatedBuildInputs = [ termcolor pytest ];
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
py.test
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A plugin that changes the default look and feel of py.test";
|
description = "A plugin that changes the default look and feel of py.test";
|
||||||
homepage = https://github.com/Frozenball/pytest-sugar;
|
homepage = https://github.com/Frozenball/pytest-sugar;
|
||||||
|
84
pkgs/development/python-modules/pythonnet/default.nix
Normal file
84
pkgs/development/python-modules/pythonnet/default.nix
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
{ lib
|
||||||
|
, fetchPypi
|
||||||
|
, fetchNuGet
|
||||||
|
, buildPythonPackage
|
||||||
|
, python
|
||||||
|
, pytest
|
||||||
|
, pycparser
|
||||||
|
, pkgconfig
|
||||||
|
, dotnetbuildhelpers
|
||||||
|
, clang
|
||||||
|
, mono
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
UnmanagedExports127 = fetchNuGet {
|
||||||
|
baseName = "UnmanagedExports";
|
||||||
|
version = "1.2.7";
|
||||||
|
sha256 = "0bfrhpmq556p0swd9ssapw4f2aafmgp930jgf00sy89hzg2bfijf";
|
||||||
|
outputFiles = [ "*" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
NUnit360 = fetchNuGet {
|
||||||
|
baseName = "NUnit";
|
||||||
|
version = "3.6.0";
|
||||||
|
sha256 = "0wz4sb0hxlajdr09r22kcy9ya79lka71w0k1jv5q2qj3d6g2frz1";
|
||||||
|
outputFiles = [ "*" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "pythonnet";
|
||||||
|
version = "2.3.0";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "1hxnkrfj8ark9sbamcxzd63p98vgljfvdwh79qj3ac8pqrgghq80";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace setup.py --replace 'self._install_packages()' '#self._install_packages()'
|
||||||
|
'';
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
[ -z "$dontPlacateNuget" ] && placate-nuget.sh
|
||||||
|
[ -z "$dontPlacatePaket" ] && placate-paket.sh
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pytest
|
||||||
|
pycparser
|
||||||
|
|
||||||
|
pkgconfig
|
||||||
|
dotnetbuildhelpers
|
||||||
|
clang
|
||||||
|
|
||||||
|
NUnit360
|
||||||
|
UnmanagedExports127
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
mono
|
||||||
|
];
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
rm -rf packages
|
||||||
|
mkdir packages
|
||||||
|
|
||||||
|
ln -s ${NUnit360}/lib/dotnet/NUnit/ packages/NUnit.3.6.0
|
||||||
|
ln -s ${UnmanagedExports127}/lib/dotnet/NUnit/ packages/UnmanagedExports.1.2.7
|
||||||
|
'';
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
${python.interpreter} -m pytest
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = ".Net and Mono integration for Python";
|
||||||
|
homepage = https://pythonnet.github.io;
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ jraygauthier ];
|
||||||
|
};
|
||||||
|
}
|
@ -285,7 +285,7 @@ let
|
|||||||
pbdMPI = [ pkgs.openmpi ];
|
pbdMPI = [ pkgs.openmpi ];
|
||||||
pbdNCDF4 = [ pkgs.netcdf ];
|
pbdNCDF4 = [ pkgs.netcdf ];
|
||||||
pbdPROF = [ pkgs.openmpi ];
|
pbdPROF = [ pkgs.openmpi ];
|
||||||
pbdZMQ = [ pkgs.which ];
|
pbdZMQ = lib.optionals stdenv.isDarwin [ pkgs.which ];
|
||||||
pdftools = [ pkgs.poppler.dev ];
|
pdftools = [ pkgs.poppler.dev ];
|
||||||
PKI = [ pkgs.openssl.dev ];
|
PKI = [ pkgs.openssl.dev ];
|
||||||
png = [ pkgs.libpng.dev ];
|
png = [ pkgs.libpng.dev ];
|
||||||
@ -393,6 +393,7 @@ let
|
|||||||
nat = [ pkgs.which ];
|
nat = [ pkgs.which ];
|
||||||
nat_nblast = [ pkgs.which ];
|
nat_nblast = [ pkgs.which ];
|
||||||
nat_templatebrains = [ pkgs.which ];
|
nat_templatebrains = [ pkgs.which ];
|
||||||
|
pbdZMQ = lib.optionals stdenv.isDarwin [ pkgs.binutils.bintools ];
|
||||||
RMark = [ pkgs.which ];
|
RMark = [ pkgs.which ];
|
||||||
RPushbullet = [ pkgs.which ];
|
RPushbullet = [ pkgs.which ];
|
||||||
qtpaint = [ pkgs.cmake ];
|
qtpaint = [ pkgs.cmake ];
|
||||||
@ -776,6 +777,14 @@ let
|
|||||||
PKG_LIBS = "-L${pkgs.openblasCompat}/lib -lopenblas";
|
PKG_LIBS = "-L${pkgs.openblasCompat}/lib -lopenblas";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
pbdZMQ = old.pbdZMQ.overrideDerivation (attrs: {
|
||||||
|
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||||
|
for file in R/*.{r,r.in}; do
|
||||||
|
sed -i 's#system("which \(\w\+\)"[^)]*)#"${pkgs.binutils.bintools}/bin/\1"#g' $file
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
qtbase = old.qtbase.overrideDerivation (attrs: {
|
qtbase = old.qtbase.overrideDerivation (attrs: {
|
||||||
patches = [ ./patches/qtbase.patch ];
|
patches = [ ./patches/qtbase.patch ];
|
||||||
});
|
});
|
||||||
|
24
pkgs/development/tools/hcloud/default.nix
Normal file
24
pkgs/development/tools/hcloud/default.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{ stdenv, buildGoPackage, fetchFromGitHub }:
|
||||||
|
|
||||||
|
buildGoPackage rec {
|
||||||
|
name = "hcloud-${version}";
|
||||||
|
version = "1.3.0";
|
||||||
|
goPackagePath = "github.com/hetznercloud/cli";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "hetznercloud";
|
||||||
|
repo = "cli";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1216qz1kk38vkvfrznjwb65vsbhscqvvrsbp2i6pnf0i85p00pqm";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildFlagsArray = [ "-ldflags=" "-X github.com/hetznercloud/cli.Version=${version}" ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A command-line interface for Hetzner Cloud, a provider for cloud virtual private servers";
|
||||||
|
homepage = https://github.com/hetznercloud/cli;
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.zauberpony ];
|
||||||
|
};
|
||||||
|
}
|
@ -7,18 +7,29 @@
|
|||||||
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="fffe", ATTRS{idProduct}=="0002", MODE:="0666"
|
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="fffe", ATTRS{idProduct}=="0002", MODE:="0666"
|
||||||
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="2500", ATTRS{idProduct}=="0002", MODE:="0666"
|
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="2500", ATTRS{idProduct}=="0002", MODE:="0666"
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
let
|
||||||
name = "uhd-${version}";
|
uhdVer = "003_010_003_000";
|
||||||
version = "3.10.2.0";
|
ImgVer = stdenv.lib.replaceStrings ["_"] ["."] uhdVer;
|
||||||
|
|
||||||
# UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
|
# UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
|
||||||
# and xxx.yyy.zzz. Hrmpf...
|
# and xxx.yyy.zzz. Hrmpf...
|
||||||
|
version = "3.10.3.0";
|
||||||
|
|
||||||
|
# Firmware images are downloaded (pre-built) from:
|
||||||
|
# http://files.ettus.com/binaries/images/
|
||||||
|
uhdImagesSrc = fetchurl {
|
||||||
|
url = "http://files.ettus.com/binaries/images/uhd-images_${ImgVer}-release.tar.gz";
|
||||||
|
sha256 = "198awvw6zsh19ydgx5qry5yc6yahdval9wjrsqbyj51pnr6s5qvy";
|
||||||
|
};
|
||||||
|
|
||||||
|
in stdenv.mkDerivation {
|
||||||
|
name = "uhd-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "EttusResearch";
|
owner = "EttusResearch";
|
||||||
repo = "uhd";
|
repo = "uhd";
|
||||||
rev = "release_003_010_002_000";
|
rev = "release_${uhdVer}";
|
||||||
sha256 = "0g6f4amw7h0vr6faa1nc1zs3bc645binza0zqqx5cwgfxybv8cfy";
|
sha256 = "1aj8qizbyz4shwawj3qlhl6pyyda59hhgm9cwrj7s5kfdi4vdlc3";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
@ -31,13 +42,6 @@ stdenv.mkDerivation rec {
|
|||||||
# Build only the host software
|
# Build only the host software
|
||||||
preConfigure = "cd host";
|
preConfigure = "cd host";
|
||||||
|
|
||||||
# Firmware images are downloaded (pre-built)
|
|
||||||
uhdImagesName = "uhd-images_003.007.003-release";
|
|
||||||
uhdImagesSrc = fetchurl {
|
|
||||||
url = "http://files.ettus.com/binaries/maint_images/archive/${uhdImagesName}.tar.gz";
|
|
||||||
sha256 = "1pv5c5902041494z0jfw623ca29pvylrw5klybbhklvn5wwlr6cv";
|
|
||||||
};
|
|
||||||
|
|
||||||
postPhases = [ "installFirmware" ];
|
postPhases = [ "installFirmware" ];
|
||||||
|
|
||||||
installFirmware = ''
|
installFirmware = ''
|
||||||
|
@ -4,19 +4,14 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
allSpecs = {
|
allSpecs = {
|
||||||
"i686-linux" = {
|
|
||||||
system = "linux32";
|
|
||||||
sha256 = "13fngjg2v0l3vhlmjnffy785ckgk2kbpm7307li75vinkcly91cj";
|
|
||||||
};
|
|
||||||
|
|
||||||
"x86_64-linux" = {
|
"x86_64-linux" = {
|
||||||
system = "linux64";
|
system = "linux64";
|
||||||
sha256 = "0x5vnmnw6mws6iw9s0kcm4crx9gfgy0vjjpk1v0wk7jpn6d0bl47";
|
sha256 = "13iyz6579yw4fk9dr4nf2pdj55v1iflj8yf9a4zz7qw5996d5yk7";
|
||||||
};
|
};
|
||||||
|
|
||||||
"x86_64-darwin" = {
|
"x86_64-darwin" = {
|
||||||
system = "mac64";
|
system = "mac64";
|
||||||
sha256 = "09y8ijj75q5a7snzchxinxfq2ad2sw0f30zi0p3hqf1n88y28jq6";
|
sha256 = "11xa31bxhrq0p7kd3j76dihp73abdbmbwdng5454m1wir6yj25f1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -33,7 +28,7 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "chromedriver-${version}";
|
name = "chromedriver-${version}";
|
||||||
version = "2.33";
|
version = "2.35";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://chromedriver.storage.googleapis.com/${version}/chromedriver_${spec.system}.zip";
|
url = "http://chromedriver.storage.googleapis.com/${version}/chromedriver_${spec.system}.zip";
|
||||||
|
24
pkgs/development/tools/yaml2json/default.nix
Normal file
24
pkgs/development/tools/yaml2json/default.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{ stdenv, buildGoPackage, fetchFromGitHub }:
|
||||||
|
|
||||||
|
|
||||||
|
buildGoPackage rec {
|
||||||
|
name = "yaml2json-${version}";
|
||||||
|
version = "unstable-2017-05-03";
|
||||||
|
goPackagePath = "github.com/bronze1man/yaml2json";
|
||||||
|
|
||||||
|
goDeps = ./deps.nix;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
rev = "ee8196e587313e98831c040c26262693d48c1a0c";
|
||||||
|
owner = "bronze1man";
|
||||||
|
repo = "yaml2json";
|
||||||
|
sha256 = "16a2sqzbam5adbhfvilnpdabzwncs7kgpr0cn4gp09h2imzsprzw";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://github.com/bronze1man/yaml2json;
|
||||||
|
description = "Convert yaml to json";
|
||||||
|
license = with licenses; [ mit ];
|
||||||
|
maintainers = [ maintainers.adisbladis ];
|
||||||
|
};
|
||||||
|
}
|
11
pkgs/development/tools/yaml2json/deps.nix
Normal file
11
pkgs/development/tools/yaml2json/deps.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
goPackagePath = "gopkg.in/yaml.v2";
|
||||||
|
fetch = {
|
||||||
|
type = "git";
|
||||||
|
url = "https://gopkg.in/yaml.v2";
|
||||||
|
rev = "d670f9405373e636a5a2765eea47fac0c9bc91a4";
|
||||||
|
sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]
|
@ -1,16 +1,20 @@
|
|||||||
{ stdenv, fetchurl, libSM, libX11, SDL }:
|
{ stdenv, fetchurl, libSM, libX11, libICE, SDL, alsaLib, gcc-unwrapped, libXext }:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec{
|
stdenv.mkDerivation rec{
|
||||||
name = "atari++-${version}";
|
name = "atari++-${version}";
|
||||||
version = "1.73";
|
version = "1.81";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.xl-project.com/download/atari++_${version}.tar.gz";
|
url = "http://www.xl-project.com/download/atari++_${version}.tar.gz";
|
||||||
sha256 = "1y5kwh08717jsa5agxrvxnggnwxq36irrid9rzfhca1nnvp9a45l";
|
sha256 = "1sv268dsjddirhx47zaqgqiahy6zjxj7xaiiksd1gjvs4lvf3cdg";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libSM libX11 SDL ];
|
buildInputs = [ libSM libX11 SDL libICE alsaLib gcc-unwrapped libXext ];
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
patchelf --set-rpath ${stdenv.lib.makeLibraryPath buildInputs} "$out/bin/atari++"
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://www.xl-project.com/;
|
homepage = http://www.xl-project.com/;
|
||||||
|
@ -330,6 +330,9 @@ rec {
|
|||||||
inherit name;
|
inherit name;
|
||||||
vimrcFile = vimrcFile vimrcConfig;
|
vimrcFile = vimrcFile vimrcConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
override = f: makeCustomizable (vim.override f);
|
||||||
|
overrideAttrs = f: makeCustomizable (vim.overrideAttrs f);
|
||||||
};
|
};
|
||||||
|
|
||||||
pluginnames2Nix = {name, namefiles} : vim_configurable.customize {
|
pluginnames2Nix = {name, namefiles} : vim_configurable.customize {
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
{ stdenv, fetchFromGitHub }:
|
{ stdenv, fetchFromGitHub }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.6.2";
|
version = "0.6.3";
|
||||||
name = "nix-bash-completions-${version}";
|
name = "nix-bash-completions-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "hedning";
|
owner = "hedning";
|
||||||
repo = "nix-bash-completions";
|
repo = "nix-bash-completions";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0w6mimi70drjkdpx5pcw66xy2a4kysjfzmank0kc5vbhrjgkjwyp";
|
sha256 = "1zmk9f53xpwk5j6qqisjlddgm2fr68p1q6pn3wa14bd777lranhj";
|
||||||
};
|
};
|
||||||
|
|
||||||
# To enable lazy loading via. bash-completion we need a symlink to the script
|
# To enable lazy loading via. bash-completion we need a symlink to the script
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ stdenv, fetchFromGitHub }:
|
{ stdenv, fetchFromGitHub }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.3.7";
|
version = "0.3.8";
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
|
|||||||
owner = "spwhitt";
|
owner = "spwhitt";
|
||||||
repo = "nix-zsh-completions";
|
repo = "nix-zsh-completions";
|
||||||
rev = "${version}";
|
rev = "${version}";
|
||||||
sha256 = "164x8awia56z481r898pbywjgrx8fv8gfw8pxp4qgbxzp3gwq9iy";
|
sha256 = "05ynd38br2kn657g7l01jg1q8ja9xwrdyb95w02gh7j9cww2k06w";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -20,15 +20,19 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
buildInputs = [ ncurses pcre ];
|
buildInputs = [ ncurses pcre ];
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"--enable-maildir-support"
|
||||||
|
"--enable-multibyte"
|
||||||
|
"--with-tcsetpgrp"
|
||||||
|
"--enable-pcre"
|
||||||
|
];
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
configureFlags="--enable-maildir-support --enable-multibyte --enable-zprofile=$out/etc/zprofile --with-tcsetpgrp --enable-pcre"
|
configureFlagsArray+=(--enable-zprofile=$out/etc/zprofile)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# the zsh/zpty module is not available on hydra
|
# the zsh/zpty module is not available on hydra
|
||||||
# so skip groups Y Z
|
# so skip groups Y Z
|
||||||
checkFlagsArray = ''
|
checkFlags = map (T: "TESTNUM=${T}") (stdenv.lib.stringToCharacters "ABCDEVW");
|
||||||
(TESTNUM=A TESTNUM=B TESTNUM=C TESTNUM=D TESTNUM=E TESTNUM=V TESTNUM=W)
|
|
||||||
'';
|
|
||||||
|
|
||||||
# XXX: think/discuss about this, also with respect to nixos vs nix-on-X
|
# XXX: think/discuss about this, also with respect to nixos vs nix-on-X
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
65
pkgs/tools/filesystems/squashfuse/default.nix
Normal file
65
pkgs/tools/filesystems/squashfuse/default.nix
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
{ stdenv, fetchurl, automake, autoconf, libtool, fuse, pkgconfig, pcre,
|
||||||
|
|
||||||
|
# Optional Dependencies
|
||||||
|
lz4 ? null, xz ? null, zlib ? null, lzo ? null, zstd ? null}:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
let
|
||||||
|
mkFlag = trueStr: falseStr: cond: name: val: "--"
|
||||||
|
+ (if cond then trueStr else falseStr)
|
||||||
|
+ name
|
||||||
|
+ optionalString (val != null && cond != false) "=${val}";
|
||||||
|
mkEnable = mkFlag "enable-" "disable-";
|
||||||
|
mkWith = mkFlag "with-" "--without-";
|
||||||
|
mkOther = mkFlag "" "" true;
|
||||||
|
|
||||||
|
shouldUsePkg = pkg: if pkg != null && any (x: x == stdenv.system) pkg.meta.platforms then pkg else null;
|
||||||
|
|
||||||
|
optLz4 = shouldUsePkg lz4;
|
||||||
|
optLzma = shouldUsePkg xz;
|
||||||
|
optZlib = shouldUsePkg zlib;
|
||||||
|
optLzo = shouldUsePkg lzo;
|
||||||
|
optZstd = shouldUsePkg zstd;
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
|
pname = "squashfuse";
|
||||||
|
version = "0.1.101";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "FUSE filesystem to mount squashfs archives";
|
||||||
|
homepage = https://github.com/vasi/squashfuse;
|
||||||
|
maintainers = [ maintainers.genesis ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
license = "BSD-2-Clause";
|
||||||
|
};
|
||||||
|
|
||||||
|
# platforms.darwin should be supported : see PLATFORMS file in src.
|
||||||
|
# we could use a nix fuseProvider, and let the derivation choose the OS
|
||||||
|
# specific implementation.
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/vasi/squashfuse/archive/${version}.tar.gz";
|
||||||
|
sha256 = "08d1j1a73dhhypbk0q20qkrz564zpmvkpk3k3s8xw8gd9nvy2xa2";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ automake autoconf libtool pkgconfig];
|
||||||
|
buildInputs = [ optLz4 optLzma optZlib optLzo optZstd fuse ];
|
||||||
|
|
||||||
|
# We can do it far better i guess, ignoring -with option
|
||||||
|
# but it should be safer like that.
|
||||||
|
# TODO: Improve writing nix expression mkWithLib.
|
||||||
|
configureFlags = [
|
||||||
|
(mkWith (optLz4 != null) "lz4=${lz4}/lib" null)
|
||||||
|
(mkWith (optLzma != null) "xz=${xz}/lib" null)
|
||||||
|
(mkWith (optZlib != null) "zlib=${zlib}/lib" null)
|
||||||
|
(mkWith (optLzo != null) "lzo=${lzo}/lib" null)
|
||||||
|
(mkWith (optZstd != null) "zstd=${zstd}/lib" null)
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
./autogen.sh
|
||||||
|
'';
|
||||||
|
}
|
18
pkgs/tools/misc/rename/default.nix
Normal file
18
pkgs/tools/misc/rename/default.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, buildPerlPackage }:
|
||||||
|
|
||||||
|
buildPerlPackage rec {
|
||||||
|
name = "rename-${version}";
|
||||||
|
version = "1.9";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "pstray";
|
||||||
|
repo = "rename";
|
||||||
|
rev = "d46f1d0ced25dc5849acb5d5974a3e2e9d97d536";
|
||||||
|
sha256 = "0qahs1cqfaci2hdf1xncrz4k0z5skkfr43apnm3kybs7za33apzw";
|
||||||
|
};
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Rename files according to a Perl rewrite expression";
|
||||||
|
homepage = http://search.cpan.org/~pederst/rename-1.9/bin/rename.PL;
|
||||||
|
maintainers = with maintainers; [ mkg ];
|
||||||
|
license = with licenses; [ gpl1Plus ];
|
||||||
|
};
|
||||||
|
}
|
@ -3,26 +3,8 @@
|
|||||||
, darwin
|
, darwin
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
let
|
||||||
name = "screenFetch-2016-10-11";
|
path = lib.makeBinPath ([
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "KittyKatt";
|
|
||||||
repo = "screenFetch";
|
|
||||||
rev = "89e51f24018c89b3647deb24406a9af3a78bbe99";
|
|
||||||
sha256 = "0i2k261jj2s4sfhav7vbsd362pa0gghw6qhwafhmicmf8hq2a18v";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
install -Dm 0755 screenfetch-dev $out/bin/screenfetch
|
|
||||||
install -Dm 0644 screenfetch.1 $out/share/man/man1/screenfetch.1
|
|
||||||
|
|
||||||
# Fix all of the depedencies of screenfetch
|
|
||||||
patchShebangs $out/bin/screenfetch
|
|
||||||
wrapProgram "$out/bin/screenfetch" \
|
|
||||||
--set PATH ${lib.makeBinPath ([
|
|
||||||
coreutils gawk gnused findutils
|
coreutils gawk gnused findutils
|
||||||
gnugrep ncurses bc
|
gnugrep ncurses bc
|
||||||
] ++ lib.optionals stdenv.isLinux [
|
] ++ lib.optionals stdenv.isLinux [
|
||||||
@ -34,7 +16,30 @@ stdenv.mkDerivation {
|
|||||||
DarwinTools
|
DarwinTools
|
||||||
system_cmds
|
system_cmds
|
||||||
"/usr" # some commands like defaults is not available to us
|
"/usr" # some commands like defaults is not available to us
|
||||||
]))}
|
]));
|
||||||
|
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
name = "screenFetch-${version}";
|
||||||
|
version = "3.8.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "KittyKatt";
|
||||||
|
repo = "screenFetch";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "00ibv72cb7cqfpljyzgvajhbp0clqsqliz18nyv83bfy3gkf2qs8";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
install -Dm 0755 screenfetch-dev $out/bin/screenfetch
|
||||||
|
install -Dm 0644 screenfetch.1 $out/share/man/man1/screenfetch.1
|
||||||
|
install -Dm 0644 -t $out/share/doc/screenfetch CHANGELOG COPYING README.mkdn TODO
|
||||||
|
|
||||||
|
# Fix all of the dependencies of screenfetch
|
||||||
|
patchShebangs $out/bin/screenfetch
|
||||||
|
wrapProgram "$out/bin/screenfetch" \
|
||||||
|
--prefix PATH : ${path}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
@ -50,7 +55,7 @@ stdenv.mkDerivation {
|
|||||||
command! This script is very easy to add to and can easily be extended.
|
command! This script is very easy to add to and can easily be extended.
|
||||||
'';
|
'';
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
homepage = http://git.silverirc.com/cgit.cgi/screenfetch-dev.git/;
|
homepage = https://github.com/KittyKatt/screenFetch;
|
||||||
maintainers = with maintainers; [ relrod ];
|
maintainers = with maintainers; [ relrod ];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
|
24
pkgs/tools/misc/uudeview/default.nix
Normal file
24
pkgs/tools/misc/uudeview/default.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{ stdenv, fetchurl, tcl, tk }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "uudeview-0.5.20";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://www.fpx.de/fp/Software/UUDeview/download/${name}.tar.gz";
|
||||||
|
sha256 = "0dg4v888fxhmf51vxq1z1gd57fslsidn15jf42pj4817vw6m36p4";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ tcl tk ];
|
||||||
|
hardeningDisable = [ "format" ];
|
||||||
|
configureFlags = [ "--enable-tk=${tk.dev}" "--enable-tcl=${tcl}" ];
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace tcl/xdeview --replace "exec uuwish" "exec $out/bin/uuwish"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "The Nice and Friendly Decoder";
|
||||||
|
homepage = http://www.fpx.de/fp/Software/UUDeview/;
|
||||||
|
license = stdenv.lib.licenses.gpl2;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ woffs ];
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -16,11 +16,11 @@ with stdenv.lib;
|
|||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
|
|
||||||
name = "youtube-dl-${version}";
|
name = "youtube-dl-${version}";
|
||||||
version = "2018.01.27";
|
version = "2018.02.08";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://yt-dl.org/downloads/${version}/${name}.tar.gz";
|
url = "https://yt-dl.org/downloads/${version}/${name}.tar.gz";
|
||||||
sha256 = "14vbm8pr6xdrdbk8j9k4v82rnalbdpk2lcm7n9wj6z6d441ymji9";
|
sha256 = "0iq5mav782gz0gm00rry3v7gdxkkx4y1k0p20pvz32ga4id5k1mg";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "biosdevname-${version}";
|
name = "biosdevname-${version}";
|
||||||
version = "0.7.2";
|
version = "0.7.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "dell";
|
owner = "dell";
|
||||||
repo = "biosdevname";
|
repo = "biosdevname";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "183k6f9nayhai27y6nizf0sp9bj1kabykj66hcwdzllhrrh505sd";
|
sha256 = "19wbb79x9h79k55sgd4dylvdbhhrvfaiaknbw9s1wvfmirkxa1dz";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook ];
|
nativeBuildInputs = [ autoreconfHook ];
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "keepalived-${version}";
|
name = "keepalived-${version}";
|
||||||
version = "1.3.6";
|
version = "1.4.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "acassen";
|
owner = "acassen";
|
||||||
repo = "keepalived";
|
repo = "keepalived";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "05088vv510dlflzyg8sh8l8qfscnvxl6n6pw9ycp27zhb6r5cr5y";
|
sha256 = "1d3jnfhj9mpnc27wvgsiz2vr4lnvvccw3v128z16jpyibyv20ph0";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
41
pkgs/tools/security/theharvester/default.nix
Normal file
41
pkgs/tools/security/theharvester/default.nix
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{ stdenv, makeWrapper, python2Packages, fetchFromGitHub, python2 }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "theHarvester";
|
||||||
|
version = "2.7.1";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "laramies";
|
||||||
|
repo = "${pname}";
|
||||||
|
rev = "25553762d2d93a39083593adb08a34d5f5142c60";
|
||||||
|
sha256 = "0gnm598y6paz0knwvdv1cx0w6ngdbbpzkdark3q5vs66yajv24w4";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
# add dependencies
|
||||||
|
propagatedBuildInputs = [ python2Packages.requests ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
# create dirs
|
||||||
|
mkdir -p $out/share/${pname} $out/bin
|
||||||
|
|
||||||
|
# move project code
|
||||||
|
mv * $out/share/${pname}/
|
||||||
|
|
||||||
|
# make project runnable
|
||||||
|
chmod +x $out/share/${pname}/theHarvester.py
|
||||||
|
ln -s $out/share/${pname}/theHarvester.py $out/bin
|
||||||
|
|
||||||
|
wrapProgram "$out/bin/theHarvester.py" --prefix PYTHONPATH : $out/share/${pname}:$PYTHONPATH
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Gather E-mails, subdomains and names from different public sources";
|
||||||
|
homepage = "https://github.com/laramies/theHarvester";
|
||||||
|
platforms = platforms.all;
|
||||||
|
maintainers = with maintainers; [ treemo ];
|
||||||
|
license = licenses.gpl2;
|
||||||
|
};
|
||||||
|
}
|
@ -1,12 +1,18 @@
|
|||||||
{ stdenv, lib, bundlerEnv, ruby, curl }:
|
{ stdenv, lib, bundlerApp, ruby, curl }:
|
||||||
|
|
||||||
bundlerEnv {
|
|
||||||
pname = "asciidoctor";
|
|
||||||
|
|
||||||
|
bundlerApp {
|
||||||
inherit ruby;
|
inherit ruby;
|
||||||
|
pname = "asciidoctor";
|
||||||
gemdir = ./.;
|
gemdir = ./.;
|
||||||
|
|
||||||
|
exes = [
|
||||||
|
"asciidoctor"
|
||||||
|
"asciidoctor-bespoke"
|
||||||
|
"asciidoctor-latex"
|
||||||
|
"asciidoctor-pdf"
|
||||||
|
"asciidoctor-safe"
|
||||||
|
];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A faster Asciidoc processor written in Ruby";
|
description = "A faster Asciidoc processor written in Ruby";
|
||||||
homepage = http://asciidoctor.org/;
|
homepage = http://asciidoctor.org/;
|
||||||
|
@ -79,6 +79,10 @@ with pkgs;
|
|||||||
{ deps = [ autoconf264 automake111x gettext libtool ]; }
|
{ deps = [ autoconf264 automake111x gettext libtool ]; }
|
||||||
../build-support/setup-hooks/autoreconf.sh;
|
../build-support/setup-hooks/autoreconf.sh;
|
||||||
|
|
||||||
|
autoPatchelfHook = makeSetupHook
|
||||||
|
{ deps = [ file ]; }
|
||||||
|
../build-support/setup-hooks/auto-patchelf.sh;
|
||||||
|
|
||||||
ensureNewerSourcesHook = { year }: makeSetupHook {}
|
ensureNewerSourcesHook = { year }: makeSetupHook {}
|
||||||
(writeScript "ensure-newer-sources-hook.sh" ''
|
(writeScript "ensure-newer-sources-hook.sh" ''
|
||||||
postUnpackHooks+=(_ensureNewerSources)
|
postUnpackHooks+=(_ensureNewerSources)
|
||||||
@ -1977,6 +1981,8 @@ with pkgs;
|
|||||||
|
|
||||||
mcrcon = callPackage ../tools/networking/mcrcon {};
|
mcrcon = callPackage ../tools/networking/mcrcon {};
|
||||||
|
|
||||||
|
uudeview = callPackage ../tools/misc/uudeview { };
|
||||||
|
|
||||||
zabbix-cli = callPackage ../tools/misc/zabbix-cli { };
|
zabbix-cli = callPackage ../tools/misc/zabbix-cli { };
|
||||||
|
|
||||||
### DEVELOPMENT / EMSCRIPTEN
|
### DEVELOPMENT / EMSCRIPTEN
|
||||||
@ -4400,6 +4406,10 @@ with pkgs;
|
|||||||
gsettings_desktop_schemas = gnome3.gsettings_desktop_schemas;
|
gsettings_desktop_schemas = gnome3.gsettings_desktop_schemas;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
rename = callPackage ../tools/misc/rename {
|
||||||
|
inherit (perlPackages) buildPerlPackage;
|
||||||
|
};
|
||||||
|
|
||||||
renameutils = callPackage ../tools/misc/renameutils { };
|
renameutils = callPackage ../tools/misc/renameutils { };
|
||||||
|
|
||||||
renderdoc = libsForQt5.callPackage ../applications/graphics/renderdoc { };
|
renderdoc = libsForQt5.callPackage ../applications/graphics/renderdoc { };
|
||||||
@ -4700,6 +4710,8 @@ with pkgs;
|
|||||||
|
|
||||||
squashfsTools = callPackage ../tools/filesystems/squashfs { };
|
squashfsTools = callPackage ../tools/filesystems/squashfs { };
|
||||||
|
|
||||||
|
squashfuse = callPackage ../tools/filesystems/squashfuse { };
|
||||||
|
|
||||||
srcml = callPackage ../applications/version-management/srcml { };
|
srcml = callPackage ../applications/version-management/srcml { };
|
||||||
|
|
||||||
sshfs-fuse = callPackage ../tools/filesystems/sshfs-fuse { };
|
sshfs-fuse = callPackage ../tools/filesystems/sshfs-fuse { };
|
||||||
@ -4866,6 +4878,8 @@ with pkgs;
|
|||||||
|
|
||||||
thc-hydra = callPackage ../tools/security/thc-hydra { };
|
thc-hydra = callPackage ../tools/security/thc-hydra { };
|
||||||
|
|
||||||
|
theharvester = callPackage ../tools/security/theharvester { };
|
||||||
|
|
||||||
thefuck = python3Packages.callPackage ../tools/misc/thefuck { };
|
thefuck = python3Packages.callPackage ../tools/misc/thefuck { };
|
||||||
|
|
||||||
thin-provisioning-tools = callPackage ../tools/misc/thin-provisioning-tools { };
|
thin-provisioning-tools = callPackage ../tools/misc/thin-provisioning-tools { };
|
||||||
@ -7613,6 +7627,8 @@ with pkgs;
|
|||||||
guile = guile_2_0;
|
guile = guile_2_0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hcloud = callPackage ../development/tools/hcloud { };
|
||||||
|
|
||||||
help2man = callPackage ../development/tools/misc/help2man {
|
help2man = callPackage ../development/tools/misc/help2man {
|
||||||
inherit (perlPackages) LocaleGettext;
|
inherit (perlPackages) LocaleGettext;
|
||||||
};
|
};
|
||||||
@ -7991,9 +8007,7 @@ with pkgs;
|
|||||||
|
|
||||||
tweak = callPackage ../applications/editors/tweak { };
|
tweak = callPackage ../applications/editors/tweak { };
|
||||||
|
|
||||||
uhd = callPackage ../development/tools/misc/uhd {
|
uhd = callPackage ../development/tools/misc/uhd { };
|
||||||
boost = boost165;
|
|
||||||
};
|
|
||||||
|
|
||||||
uisp = callPackage ../development/tools/misc/uisp { };
|
uisp = callPackage ../development/tools/misc/uisp { };
|
||||||
|
|
||||||
@ -8054,6 +8068,8 @@ with pkgs;
|
|||||||
|
|
||||||
yacc = bison;
|
yacc = bison;
|
||||||
|
|
||||||
|
yaml2json = callPackage ../development/tools/yaml2json { };
|
||||||
|
|
||||||
ycmd = callPackage ../development/tools/misc/ycmd {
|
ycmd = callPackage ../development/tools/misc/ycmd {
|
||||||
inherit (darwin.apple_sdk.frameworks) Cocoa;
|
inherit (darwin.apple_sdk.frameworks) Cocoa;
|
||||||
llvmPackages = llvmPackages_5;
|
llvmPackages = llvmPackages_5;
|
||||||
@ -9882,9 +9898,7 @@ with pkgs;
|
|||||||
};
|
};
|
||||||
|
|
||||||
libproxy = callPackage ../development/libraries/libproxy {
|
libproxy = callPackage ../development/libraries/libproxy {
|
||||||
stdenv = if stdenv.isDarwin
|
inherit (darwin.apple_sdk.frameworks) SystemConfiguration CoreFoundation JavaScriptCore;
|
||||||
then overrideCC stdenv gcc
|
|
||||||
else stdenv;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
libpseudo = callPackage ../development/libraries/libpseudo { };
|
libpseudo = callPackage ../development/libraries/libpseudo { };
|
||||||
@ -14640,7 +14654,6 @@ with pkgs;
|
|||||||
});
|
});
|
||||||
|
|
||||||
darktable = callPackage ../applications/graphics/darktable {
|
darktable = callPackage ../applications/graphics/darktable {
|
||||||
inherit (gnome2) GConf libglade;
|
|
||||||
lua = lua5_3;
|
lua = lua5_3;
|
||||||
pugixml = pugixml.override { shared = true; };
|
pugixml = pugixml.override { shared = true; };
|
||||||
};
|
};
|
||||||
@ -14701,10 +14714,10 @@ with pkgs;
|
|||||||
|
|
||||||
inherit (callPackage ../applications/virtualization/docker { })
|
inherit (callPackage ../applications/virtualization/docker { })
|
||||||
docker_17_12
|
docker_17_12
|
||||||
docker_18_01;
|
docker_18_02;
|
||||||
|
|
||||||
docker = docker_17_12;
|
docker = docker_17_12;
|
||||||
docker-edge = docker_18_01;
|
docker-edge = docker_18_02;
|
||||||
|
|
||||||
docker-proxy = callPackage ../applications/virtualization/docker/proxy.nix { };
|
docker-proxy = callPackage ../applications/virtualization/docker/proxy.nix { };
|
||||||
|
|
||||||
@ -17161,6 +17174,8 @@ with pkgs;
|
|||||||
|
|
||||||
slic3r = callPackage ../applications/misc/slic3r { };
|
slic3r = callPackage ../applications/misc/slic3r { };
|
||||||
|
|
||||||
|
slic3r-prusa3d = callPackage ../applications/misc/slic3r-prusa3d { };
|
||||||
|
|
||||||
curaengine_stable = callPackage ../applications/misc/curaengine/stable.nix { };
|
curaengine_stable = callPackage ../applications/misc/curaengine/stable.nix { };
|
||||||
cura_stable = callPackage ../applications/misc/cura/stable.nix {
|
cura_stable = callPackage ../applications/misc/cura/stable.nix {
|
||||||
curaengine = curaengine_stable;
|
curaengine = curaengine_stable;
|
||||||
|
@ -75,7 +75,7 @@ in rec {
|
|||||||
coqPackages_8_5 = mkCoqPackages coq_8_5;
|
coqPackages_8_5 = mkCoqPackages coq_8_5;
|
||||||
coqPackages_8_6 = mkCoqPackages coq_8_6;
|
coqPackages_8_6 = mkCoqPackages coq_8_6;
|
||||||
coqPackages_8_7 = mkCoqPackages coq_8_7;
|
coqPackages_8_7 = mkCoqPackages coq_8_7;
|
||||||
coqPackages = coqPackages_8_6;
|
coqPackages = coqPackages_8_7;
|
||||||
coq = coqPackages.coq;
|
coq = coqPackages.coq;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14845,6 +14845,11 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pythonnet = callPackage ../development/python-modules/pythonnet {
|
||||||
|
# `mono >= 4.6` required to prevent crashes encountered with earlier versions.
|
||||||
|
mono = pkgs.mono46;
|
||||||
|
};
|
||||||
|
|
||||||
pytz = callPackage ../development/python-modules/pytz { };
|
pytz = callPackage ../development/python-modules/pytz { };
|
||||||
|
|
||||||
pytzdata = callPackage ../development/python-modules/pytzdata { };
|
pytzdata = callPackage ../development/python-modules/pytzdata { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user