Merge remote-tracking branch 'upstream/master' into HEAD
This commit is contained in:
commit
810dd0f984
@ -71,6 +71,7 @@
|
|||||||
auntie = "Jonathan Glines <auntieNeo@gmail.com>";
|
auntie = "Jonathan Glines <auntieNeo@gmail.com>";
|
||||||
avnik = "Alexander V. Nikolaev <avn@avnik.info>";
|
avnik = "Alexander V. Nikolaev <avn@avnik.info>";
|
||||||
aycanirican = "Aycan iRiCAN <iricanaycan@gmail.com>";
|
aycanirican = "Aycan iRiCAN <iricanaycan@gmail.com>";
|
||||||
|
babariviere = "Bastien Riviere <babariviere@protonmail.com>";
|
||||||
bachp = "Pascal Bach <pascal.bach@nextrem.ch>";
|
bachp = "Pascal Bach <pascal.bach@nextrem.ch>";
|
||||||
backuitist = "Bruno Bieth";
|
backuitist = "Bruno Bieth";
|
||||||
badi = "Badi' Abdul-Wahid <abdulwahidc@gmail.com>";
|
badi = "Badi' Abdul-Wahid <abdulwahidc@gmail.com>";
|
||||||
@ -380,6 +381,7 @@
|
|||||||
ledif = "Adam Fidel <refuse@gmail.com>";
|
ledif = "Adam Fidel <refuse@gmail.com>";
|
||||||
leemachin = "Lee Machin <me@mrl.ee>";
|
leemachin = "Lee Machin <me@mrl.ee>";
|
||||||
leenaars = "Michiel Leenaars <ml.software@leenaa.rs>";
|
leenaars = "Michiel Leenaars <ml.software@leenaa.rs>";
|
||||||
|
lejonet = "Daniel Kuehn <daniel@kuehn.se>";
|
||||||
leonardoce = "Leonardo Cecchi <leonardo.cecchi@gmail.com>";
|
leonardoce = "Leonardo Cecchi <leonardo.cecchi@gmail.com>";
|
||||||
lethalman = "Luca Bruno <lucabru@src.gnome.org>";
|
lethalman = "Luca Bruno <lucabru@src.gnome.org>";
|
||||||
lewo = "Antoine Eiche <lewo@abesis.fr>";
|
lewo = "Antoine Eiche <lewo@abesis.fr>";
|
||||||
|
@ -304,6 +304,7 @@
|
|||||||
mighttpd2 = 285;
|
mighttpd2 = 285;
|
||||||
hass = 286;
|
hass = 286;
|
||||||
monero = 287;
|
monero = 287;
|
||||||
|
ceph = 288;
|
||||||
|
|
||||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||||
|
|
||||||
@ -576,6 +577,7 @@
|
|||||||
mighttpd2 = 285;
|
mighttpd2 = 285;
|
||||||
hass = 286;
|
hass = 286;
|
||||||
monero = 287;
|
monero = 287;
|
||||||
|
ceph = 288;
|
||||||
|
|
||||||
# When adding a gid, make sure it doesn't match an existing
|
# When adding a gid, make sure it doesn't match an existing
|
||||||
# uid. Users and groups with the same name should have equal
|
# uid. Users and groups with the same name should have equal
|
||||||
|
@ -439,6 +439,7 @@
|
|||||||
./services/network-filesystems/u9fs.nix
|
./services/network-filesystems/u9fs.nix
|
||||||
./services/network-filesystems/yandex-disk.nix
|
./services/network-filesystems/yandex-disk.nix
|
||||||
./services/network-filesystems/xtreemfs.nix
|
./services/network-filesystems/xtreemfs.nix
|
||||||
|
./services/network-filesystems/ceph.nix
|
||||||
./services/networking/amuled.nix
|
./services/networking/amuled.nix
|
||||||
./services/networking/aria2.nix
|
./services/networking/aria2.nix
|
||||||
./services/networking/asterisk.nix
|
./services/networking/asterisk.nix
|
||||||
|
371
nixos/modules/services/network-filesystems/ceph.nix
Normal file
371
nixos/modules/services/network-filesystems/ceph.nix
Normal file
@ -0,0 +1,371 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
ceph = pkgs.ceph;
|
||||||
|
cfg = config.services.ceph;
|
||||||
|
# function that translates "camelCaseOptions" to "camel case options", credits to tilpner in #nixos@freenode
|
||||||
|
translateOption = replaceStrings upperChars (map (s: " ${s}") lowerChars);
|
||||||
|
generateDaemonList = (daemonType: daemons: extraServiceConfig:
|
||||||
|
mkMerge (
|
||||||
|
map (daemon:
|
||||||
|
{ "ceph-${daemonType}-${daemon}" = generateServiceFile daemonType daemon cfg.global.clusterName ceph extraServiceConfig; }
|
||||||
|
) daemons
|
||||||
|
)
|
||||||
|
);
|
||||||
|
generateServiceFile = (daemonType: daemonId: clusterName: ceph: extraServiceConfig: {
|
||||||
|
enable = true;
|
||||||
|
description = "Ceph ${builtins.replaceStrings lowerChars upperChars daemonType} daemon ${daemonId}";
|
||||||
|
after = [ "network-online.target" "local-fs.target" "time-sync.target" ] ++ optional (daemonType == "osd") "ceph-mon.target";
|
||||||
|
wants = [ "network-online.target" "local-fs.target" "time-sync.target" ];
|
||||||
|
partOf = [ "ceph-${daemonType}.target" ];
|
||||||
|
wantedBy = [ "ceph-${daemonType}.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
LimitNOFILE = 1048576;
|
||||||
|
LimitNPROC = 1048576;
|
||||||
|
Environment = "CLUSTER=${clusterName}";
|
||||||
|
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
|
PrivateDevices = "yes";
|
||||||
|
PrivateTmp = "true";
|
||||||
|
ProtectHome = "true";
|
||||||
|
ProtectSystem = "full";
|
||||||
|
Restart = "on-failure";
|
||||||
|
StartLimitBurst = "5";
|
||||||
|
StartLimitInterval = "30min";
|
||||||
|
ExecStart = "${ceph.out}/bin/${if daemonType == "rgw" then "radosgw" else "ceph-${daemonType}"} -f --cluster ${clusterName} --id ${if daemonType == "rgw" then "client.${daemonId}" else daemonId} --setuser ceph --setgroup ceph";
|
||||||
|
} // extraServiceConfig
|
||||||
|
// optionalAttrs (daemonType == "osd") { ExecStartPre = "${ceph.out}/libexec/ceph/ceph-osd-prestart.sh --id ${daemonId} --cluster ${clusterName}"; };
|
||||||
|
} // optionalAttrs (builtins.elem daemonType [ "mds" "mon" "rgw" "mgr" ]) { preStart = ''
|
||||||
|
daemonPath="/var/lib/ceph/${if daemonType == "rgw" then "radosgw" else daemonType}/${clusterName}-${daemonId}"
|
||||||
|
if [ ! -d ''$daemonPath ]; then
|
||||||
|
mkdir -m 755 -p ''$daemonPath
|
||||||
|
chown -R ceph:ceph ''$daemonPath
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
} // optionalAttrs (daemonType == "osd") { path = [ pkgs.getopt ]; }
|
||||||
|
);
|
||||||
|
generateTargetFile = (daemonType:
|
||||||
|
{
|
||||||
|
"ceph-${daemonType}" = {
|
||||||
|
description = "Ceph target allowing to start/stop all ceph-${daemonType} services at once";
|
||||||
|
partOf = [ "ceph.target" ];
|
||||||
|
before = [ "ceph.target" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.services.ceph = {
|
||||||
|
# Ceph has a monolithic configuration file but different sections for
|
||||||
|
# each daemon, a separate client section and a global section
|
||||||
|
enable = mkEnableOption "Ceph global configuration";
|
||||||
|
|
||||||
|
global = {
|
||||||
|
fsid = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
example = ''
|
||||||
|
433a2193-4f8a-47a0-95d2-209d7ca2cca5
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Filesystem ID, a generated uuid, its must be generated and set before
|
||||||
|
attempting to start a cluster
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
clusterName = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "ceph";
|
||||||
|
description = ''
|
||||||
|
Name of cluster
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
monInitialMembers = mkOption {
|
||||||
|
type = with types; nullOr commas;
|
||||||
|
default = null;
|
||||||
|
example = ''
|
||||||
|
node0, node1, node2
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
List of hosts that will be used as monitors at startup.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
monHost = mkOption {
|
||||||
|
type = with types; nullOr commas;
|
||||||
|
default = null;
|
||||||
|
example = ''
|
||||||
|
10.10.0.1, 10.10.0.2, 10.10.0.3
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
List of hostname shortnames/IP addresses of the initial monitors.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
maxOpenFiles = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 131072;
|
||||||
|
description = ''
|
||||||
|
Max open files for each OSD daemon.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
authClusterRequired = mkOption {
|
||||||
|
type = types.enum [ "cephx" "none" ];
|
||||||
|
default = "cephx";
|
||||||
|
description = ''
|
||||||
|
Enables requiring daemons to authenticate with eachother in the cluster.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
authServiceRequired = mkOption {
|
||||||
|
type = types.enum [ "cephx" "none" ];
|
||||||
|
default = "cephx";
|
||||||
|
description = ''
|
||||||
|
Enables requiring clients to authenticate with the cluster to access services in the cluster (e.g. radosgw, mds or osd).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
authClientRequired = mkOption {
|
||||||
|
type = types.enum [ "cephx" "none" ];
|
||||||
|
default = "cephx";
|
||||||
|
description = ''
|
||||||
|
Enables requiring the cluster to authenticate itself to the client.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
publicNetwork = mkOption {
|
||||||
|
type = with types; nullOr commas;
|
||||||
|
default = null;
|
||||||
|
example = ''
|
||||||
|
10.20.0.0/24, 192.168.1.0/24
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
A comma-separated list of subnets that will be used as public networks in the cluster.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
clusterNetwork = mkOption {
|
||||||
|
type = with types; nullOr commas;
|
||||||
|
default = null;
|
||||||
|
example = ''
|
||||||
|
10.10.0.0/24, 192.168.0.0/24
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
A comma-separated list of subnets that will be used as cluster networks in the cluster.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mgr = {
|
||||||
|
enable = mkEnableOption "Ceph MGR daemon";
|
||||||
|
daemons = mkOption {
|
||||||
|
type = with types; listOf str;
|
||||||
|
default = [];
|
||||||
|
example = ''
|
||||||
|
[ "name1" "name2" ];
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
A list of names for manager daemons that should have a service created. The names correspond
|
||||||
|
to the id part in ceph i.e. [ "name1" ] would result in mgr.name1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = with types; attrsOf str;
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
Extra configuration to add to the global section for manager daemons.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mon = {
|
||||||
|
enable = mkEnableOption "Ceph MON daemon";
|
||||||
|
daemons = mkOption {
|
||||||
|
type = with types; listOf str;
|
||||||
|
default = [];
|
||||||
|
example = ''
|
||||||
|
[ "name1" "name2" ];
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
A list of monitor daemons that should have a service created. The names correspond
|
||||||
|
to the id part in ceph i.e. [ "name1" ] would result in mon.name1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = with types; attrsOf str;
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
Extra configuration to add to the monitor section.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
osd = {
|
||||||
|
enable = mkEnableOption "Ceph OSD daemon";
|
||||||
|
daemons = mkOption {
|
||||||
|
type = with types; listOf str;
|
||||||
|
default = [];
|
||||||
|
example = ''
|
||||||
|
[ "name1" "name2" ];
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
A list of OSD daemons that should have a service created. The names correspond
|
||||||
|
to the id part in ceph i.e. [ "name1" ] would result in osd.name1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = with types; attrsOf str;
|
||||||
|
default = {
|
||||||
|
"osd journal size" = "10000";
|
||||||
|
"osd pool default size" = "3";
|
||||||
|
"osd pool default min size" = "2";
|
||||||
|
"osd pool default pg num" = "200";
|
||||||
|
"osd pool default pgp num" = "200";
|
||||||
|
"osd crush chooseleaf type" = "1";
|
||||||
|
};
|
||||||
|
description = ''
|
||||||
|
Extra configuration to add to the OSD section.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mds = {
|
||||||
|
enable = mkEnableOption "Ceph MDS daemon";
|
||||||
|
daemons = mkOption {
|
||||||
|
type = with types; listOf str;
|
||||||
|
default = [];
|
||||||
|
example = ''
|
||||||
|
[ "name1" "name2" ];
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
A list of metadata service daemons that should have a service created. The names correspond
|
||||||
|
to the id part in ceph i.e. [ "name1" ] would result in mds.name1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = with types; attrsOf str;
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
Extra configuration to add to the MDS section.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
rgw = {
|
||||||
|
enable = mkEnableOption "Ceph RadosGW daemon";
|
||||||
|
daemons = mkOption {
|
||||||
|
type = with types; listOf str;
|
||||||
|
default = [];
|
||||||
|
example = ''
|
||||||
|
[ "name1" "name2" ];
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
A list of rados gateway daemons that should have a service created. The names correspond
|
||||||
|
to the id part in ceph i.e. [ "name1" ] would result in client.name1, radosgw daemons
|
||||||
|
aren't daemons to cluster in the sense that OSD, MGR or MON daemons are. They are simply
|
||||||
|
daemons, from ceph, that uses the cluster as a backend.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
client = {
|
||||||
|
enable = mkEnableOption "Ceph client configuration";
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = with types; attrsOf str;
|
||||||
|
default = {};
|
||||||
|
example = ''
|
||||||
|
{
|
||||||
|
# This would create a section for a radosgw daemon named node0 and related
|
||||||
|
# configuration for it
|
||||||
|
"client.radosgw.node0" = { "some config option" = "true"; };
|
||||||
|
};
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Extra configuration to add to the client section. Configuration for rados gateways
|
||||||
|
would be added here, with their own sections, see example.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf config.services.ceph.enable {
|
||||||
|
assertions = [
|
||||||
|
{ assertion = cfg.global.fsid != "";
|
||||||
|
message = "fsid has to be set to a valid uuid for the cluster to function";
|
||||||
|
}
|
||||||
|
{ assertion = cfg.mgr.enable == true;
|
||||||
|
message = "ceph 12.x requires atleast 1 MGR daemon enabled for the cluster to function";
|
||||||
|
}
|
||||||
|
{ assertion = cfg.mon.enable == true -> cfg.mon.daemons != [];
|
||||||
|
message = "have to set id of atleast one MON if you're going to enable Monitor";
|
||||||
|
}
|
||||||
|
{ assertion = cfg.mds.enable == true -> cfg.mds.daemons != [];
|
||||||
|
message = "have to set id of atleast one MDS if you're going to enable Metadata Service";
|
||||||
|
}
|
||||||
|
{ assertion = cfg.osd.enable == true -> cfg.osd.daemons != [];
|
||||||
|
message = "have to set id of atleast one OSD if you're going to enable OSD";
|
||||||
|
}
|
||||||
|
{ assertion = cfg.mgr.enable == true -> cfg.mgr.daemons != [];
|
||||||
|
message = "have to set id of atleast one MGR if you're going to enable MGR";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
warnings = optional (cfg.global.monInitialMembers == null)
|
||||||
|
''Not setting up a list of members in monInitialMembers requires that you set the host variable for each mon daemon or else the cluster won't function'';
|
||||||
|
|
||||||
|
environment.etc."ceph/ceph.conf".text = let
|
||||||
|
# Translate camelCaseOptions to the expected camel case option for ceph.conf
|
||||||
|
translatedGlobalConfig = mapAttrs' (name: value: nameValuePair (translateOption name) value) cfg.global;
|
||||||
|
# Merge the extraConfig set for mgr daemons, as mgr don't have their own section
|
||||||
|
globalAndMgrConfig = translatedGlobalConfig // optionalAttrs cfg.mgr.enable cfg.mgr.extraConfig;
|
||||||
|
# Remove all name-value pairs with null values from the attribute set to avoid making empty sections in the ceph.conf
|
||||||
|
globalConfig = mapAttrs' (name: value: nameValuePair (translateOption name) value) (filterAttrs (name: value: value != null) globalAndMgrConfig);
|
||||||
|
totalConfig = {
|
||||||
|
"global" = globalConfig;
|
||||||
|
} // optionalAttrs (cfg.mon.enable && cfg.mon.extraConfig != {}) { "mon" = cfg.mon.extraConfig; }
|
||||||
|
// optionalAttrs (cfg.mds.enable && cfg.mds.extraConfig != {}) { "mds" = cfg.mds.extraConfig; }
|
||||||
|
// optionalAttrs (cfg.osd.enable && cfg.osd.extraConfig != {}) { "osd" = cfg.osd.extraConfig; }
|
||||||
|
// optionalAttrs (cfg.client.enable && cfg.client.extraConfig != {}) cfg.client.extraConfig;
|
||||||
|
in
|
||||||
|
generators.toINI {} totalConfig;
|
||||||
|
|
||||||
|
users.extraUsers = singleton {
|
||||||
|
name = "ceph";
|
||||||
|
uid = config.ids.uids.ceph;
|
||||||
|
description = "Ceph daemon user";
|
||||||
|
};
|
||||||
|
|
||||||
|
users.extraGroups = singleton {
|
||||||
|
name = "ceph";
|
||||||
|
gid = config.ids.gids.ceph;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services = let
|
||||||
|
services = []
|
||||||
|
++ optional cfg.mon.enable (generateDaemonList "mon" cfg.mon.daemons { RestartSec = "10"; })
|
||||||
|
++ optional cfg.mds.enable (generateDaemonList "mds" cfg.mds.daemons { StartLimitBurst = "3"; })
|
||||||
|
++ optional cfg.osd.enable (generateDaemonList "osd" cfg.osd.daemons { StartLimitBurst = "30"; RestartSec = "20s"; })
|
||||||
|
++ optional cfg.rgw.enable (generateDaemonList "rgw" cfg.rgw.daemons { })
|
||||||
|
++ optional cfg.mgr.enable (generateDaemonList "mgr" cfg.mgr.daemons { StartLimitBurst = "3"; });
|
||||||
|
in
|
||||||
|
mkMerge services;
|
||||||
|
|
||||||
|
systemd.targets = let
|
||||||
|
targets = [
|
||||||
|
{ "ceph" = { description = "Ceph target allowing to start/stop all ceph service instances at once"; }; }
|
||||||
|
] ++ optional cfg.mon.enable (generateTargetFile "mon")
|
||||||
|
++ optional cfg.mds.enable (generateTargetFile "mds")
|
||||||
|
++ optional cfg.osd.enable (generateTargetFile "osd")
|
||||||
|
++ optional cfg.rgw.enable (generateTargetFile "rgw")
|
||||||
|
++ optional cfg.mgr.enable (generateTargetFile "mgr");
|
||||||
|
in
|
||||||
|
mkMerge targets;
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d /run/ceph 0770 ceph ceph -"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@ -650,7 +650,11 @@ let
|
|||||||
unitFiles = map (name: {
|
unitFiles = map (name: {
|
||||||
target = "systemd/network/${name}";
|
target = "systemd/network/${name}";
|
||||||
source = "${cfg.units.${name}.unit}/${name}";
|
source = "${cfg.units.${name}.unit}/${name}";
|
||||||
}) (attrNames cfg.units);
|
}) (attrNames cfg.units) ++
|
||||||
|
(map (entry: {
|
||||||
|
target = "systemd/network/${entry}";
|
||||||
|
source = "${config.systemd.package}/lib/systemd/network/${entry}";
|
||||||
|
}) (attrNames (builtins.readDir "${config.systemd.package}/lib/systemd/network")));
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -230,6 +230,7 @@ in rec {
|
|||||||
tests.borgbackup = callTest tests/borgbackup.nix {};
|
tests.borgbackup = callTest tests/borgbackup.nix {};
|
||||||
tests.buildbot = callTest tests/buildbot.nix {};
|
tests.buildbot = callTest tests/buildbot.nix {};
|
||||||
tests.cadvisor = callTestOnTheseSystems ["x86_64-linux"] tests/cadvisor.nix {};
|
tests.cadvisor = callTestOnTheseSystems ["x86_64-linux"] tests/cadvisor.nix {};
|
||||||
|
tests.ceph = callTestOnTheseSystems ["x86_64-linux"] tests/ceph.nix {};
|
||||||
tests.chromium = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/chromium.nix {}).stable;
|
tests.chromium = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/chromium.nix {}).stable;
|
||||||
tests.cjdns = callTest tests/cjdns.nix {};
|
tests.cjdns = callTest tests/cjdns.nix {};
|
||||||
tests.cloud-init = callTest tests/cloud-init.nix {};
|
tests.cloud-init = callTest tests/cloud-init.nix {};
|
||||||
|
140
nixos/tests/ceph.nix
Normal file
140
nixos/tests/ceph.nix
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
import ./make-test.nix ({pkgs, ...}: rec {
|
||||||
|
name = "All-in-one-basic-ceph-cluster";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ lejonet ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes = {
|
||||||
|
aio = { config, pkgs, ... }: {
|
||||||
|
virtualisation = {
|
||||||
|
emptyDiskImages = [ 20480 20480 ];
|
||||||
|
vlans = [ 1 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
firewall.allowPing = true;
|
||||||
|
useDHCP = false;
|
||||||
|
interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
|
||||||
|
{ address = "192.168.1.1"; prefixLength = 24; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
bash
|
||||||
|
sudo
|
||||||
|
ceph
|
||||||
|
xfsprogs
|
||||||
|
];
|
||||||
|
nixpkgs.config.packageOverrides = super: {
|
||||||
|
ceph = super.ceph.override({ nss = super.nss; libxfs = super.libxfs; libaio = super.libaio; jemalloc = super.jemalloc; });
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernelModules = [ "xfs" ];
|
||||||
|
|
||||||
|
services.ceph.enable = true;
|
||||||
|
services.ceph.global = {
|
||||||
|
fsid = "066ae264-2a5d-4729-8001-6ad265f50b03";
|
||||||
|
monInitialMembers = "aio";
|
||||||
|
monHost = "192.168.1.1";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.ceph.mon = {
|
||||||
|
enable = true;
|
||||||
|
daemons = [ "aio" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.ceph.mgr = {
|
||||||
|
enable = true;
|
||||||
|
daemons = [ "aio" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.ceph.osd = {
|
||||||
|
enable = true;
|
||||||
|
daemons = [ "0" "1" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = { nodes, ... }: ''
|
||||||
|
startAll;
|
||||||
|
|
||||||
|
$aio->waitForUnit("network.target");
|
||||||
|
|
||||||
|
# Create the ceph-related directories
|
||||||
|
$aio->mustSucceed(
|
||||||
|
"mkdir -p /var/lib/ceph/mgr/ceph-aio/",
|
||||||
|
"mkdir -p /var/lib/ceph/mon/ceph-aio/",
|
||||||
|
"mkdir -p /var/lib/ceph/osd/ceph-{0..1}/",
|
||||||
|
"chown ceph:ceph -R /var/lib/ceph/"
|
||||||
|
);
|
||||||
|
|
||||||
|
# Bootstrap ceph-mon daemon
|
||||||
|
$aio->mustSucceed(
|
||||||
|
"mkdir -p /var/lib/ceph/bootstrap-osd && chown ceph:ceph /var/lib/ceph/bootstrap-osd",
|
||||||
|
"sudo -u ceph ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'",
|
||||||
|
"ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'",
|
||||||
|
"ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring",
|
||||||
|
"monmaptool --create --add aio 192.168.1.1 --fsid 066ae264-2a5d-4729-8001-6ad265f50b03 /tmp/monmap",
|
||||||
|
"sudo -u ceph ceph-mon --mkfs -i aio --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring",
|
||||||
|
"touch /var/lib/ceph/mon/ceph-aio/done",
|
||||||
|
"systemctl start ceph-mon-aio"
|
||||||
|
);
|
||||||
|
$aio->waitForUnit("ceph-mon-aio");
|
||||||
|
|
||||||
|
# Can't check ceph status until a mon is up
|
||||||
|
$aio->succeed("ceph -s | grep 'mon: 1 daemons'");
|
||||||
|
|
||||||
|
# Start the ceph-mgr daemon, it has no deps and hardly any setup
|
||||||
|
$aio->mustSucceed(
|
||||||
|
"ceph auth get-or-create mgr.aio mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-aio/keyring",
|
||||||
|
"systemctl start ceph-mgr-aio"
|
||||||
|
);
|
||||||
|
$aio->waitForUnit("ceph-mgr-aio");
|
||||||
|
$aio->waitUntilSucceeds("ceph -s | grep 'quorum aio'");
|
||||||
|
|
||||||
|
# Bootstrap both OSDs
|
||||||
|
$aio->mustSucceed(
|
||||||
|
"mkfs.xfs /dev/vdb",
|
||||||
|
"mkfs.xfs /dev/vdc",
|
||||||
|
"mount /dev/vdb /var/lib/ceph/osd/ceph-0",
|
||||||
|
"mount /dev/vdc /var/lib/ceph/osd/ceph-1",
|
||||||
|
"ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-0/keyring --name osd.0 --add-key AQBCEJNa3s8nHRAANvdsr93KqzBznuIWm2gOGg==",
|
||||||
|
"ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-1/keyring --name osd.1 --add-key AQBEEJNac00kExAAXEgy943BGyOpVH1LLlHafQ==",
|
||||||
|
"echo '{\"cephx_secret\": \"AQBCEJNa3s8nHRAANvdsr93KqzBznuIWm2gOGg==\"}' | ceph osd new 55ba2294-3e24-478f-bee0-9dca4c231dd9 -i -",
|
||||||
|
"echo '{\"cephx_secret\": \"AQBEEJNac00kExAAXEgy943BGyOpVH1LLlHafQ==\"}' | ceph osd new 5e97a838-85b6-43b0-8950-cb56d554d1e5 -i -"
|
||||||
|
);
|
||||||
|
|
||||||
|
# Initialize the OSDs with regular filestore
|
||||||
|
$aio->mustSucceed(
|
||||||
|
"ceph-osd -i 0 --mkfs --osd-uuid 55ba2294-3e24-478f-bee0-9dca4c231dd9",
|
||||||
|
"ceph-osd -i 1 --mkfs --osd-uuid 5e97a838-85b6-43b0-8950-cb56d554d1e5",
|
||||||
|
"chown -R ceph:ceph /var/lib/ceph/osd",
|
||||||
|
"systemctl start ceph-osd-0",
|
||||||
|
"systemctl start ceph-osd-1"
|
||||||
|
);
|
||||||
|
|
||||||
|
$aio->waitUntilSucceeds("ceph osd stat | grep '2 osds: 2 up, 2 in'");
|
||||||
|
$aio->waitUntilSucceeds("ceph -s | grep 'mgr: aio(active)'");
|
||||||
|
$aio->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'");
|
||||||
|
|
||||||
|
$aio->mustSucceed(
|
||||||
|
"ceph osd pool create aio-test 100 100",
|
||||||
|
"ceph osd pool ls | grep 'aio-test'",
|
||||||
|
"ceph osd pool rename aio-test aio-other-test",
|
||||||
|
"ceph osd pool ls | grep 'aio-other-test'",
|
||||||
|
"ceph -s | grep '1 pools, 100 pgs'",
|
||||||
|
"ceph osd getcrushmap -o crush",
|
||||||
|
"crushtool -d crush -o decrushed",
|
||||||
|
"sed 's/step chooseleaf firstn 0 type host/step chooseleaf firstn 0 type osd/' decrushed > modcrush",
|
||||||
|
"crushtool -c modcrush -o recrushed",
|
||||||
|
"ceph osd setcrushmap -i recrushed",
|
||||||
|
"ceph osd pool set aio-other-test size 2"
|
||||||
|
);
|
||||||
|
$aio->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'");
|
||||||
|
$aio->waitUntilSucceeds("ceph -s | grep '100 active+clean'");
|
||||||
|
$aio->mustFail(
|
||||||
|
"ceph osd pool ls | grep 'aio-test'",
|
||||||
|
"ceph osd pool delete aio-other-test aio-other-test --yes-i-really-really-mean-it"
|
||||||
|
);
|
||||||
|
'';
|
||||||
|
})
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "praat-${version}";
|
name = "praat-${version}";
|
||||||
version = "5.4.17";
|
version = "6.0.37";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/praat/praat/archive/v${version}.tar.gz";
|
url = "https://github.com/praat/praat/archive/v${version}.tar.gz";
|
||||||
sha256 = "0s2hrksghg686059vc90h3ywhd2702pqcvy99icw27q5mdk6dqsx";
|
sha256 = "1c675jfzcrwfn8lcswm5y5kmazkhnb0p4mzlf5sim57hms88ffjq";
|
||||||
};
|
};
|
||||||
|
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, qt4, alsaLib }:
|
{ stdenv, fetchurl, pkgconfig, qt4, alsaLib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.3.0";
|
version = "0.4.0";
|
||||||
name = "qmidiroute-${version}";
|
name = "qmidiroute-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/project/alsamodular/QMidiRoute/${version}/${name}.tar.gz";
|
url = "mirror://sourceforge/project/alsamodular/QMidiRoute/${version}/${name}.tar.gz";
|
||||||
sha256 = "11bfjz14z37v6hk2xyg4vrw423b5h3qgcbviv07g00ws1fgjygm2";
|
sha256 = "0vmjwarsxr5540rafhmdcc62yarf0w2l05bjjl9s28zzr5m39z3n";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
@ -3,12 +3,12 @@
|
|||||||
, liblo, liblrdf, libsamplerate, libsndfile, lirc ? null, qtbase }:
|
, liblo, liblrdf, libsamplerate, libsndfile, lirc ? null, qtbase }:
|
||||||
|
|
||||||
stdenv.mkDerivation (rec {
|
stdenv.mkDerivation (rec {
|
||||||
version = "17.04";
|
version = "17.12.1";
|
||||||
name = "rosegarden-${version}";
|
name = "rosegarden-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/rosegarden/${name}.tar.bz2";
|
url = "mirror://sourceforge/rosegarden/${name}.tar.bz2";
|
||||||
sha256 = "1khfcj22asdhjh0jvhkqsz200wgmigkhsrcz09ffia5hqm0n32lq";
|
sha256 = "155kqbxg85wqv0w97cmmx8wq0r4xb3qpnk20lfma04vj8k6hc1mg";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
|
@ -29,7 +29,7 @@ mkDerivation rec {
|
|||||||
NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ];
|
NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A free an open source painting application";
|
description = "A free and open source painting application";
|
||||||
homepage = https://krita.org/;
|
homepage = https://krita.org/;
|
||||||
maintainers = with maintainers; [ abbradar ];
|
maintainers = with maintainers; [ abbradar ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
@ -42,10 +42,8 @@ stdenv.mkDerivation rec {
|
|||||||
pythonPath = [ pygobject3 pyxdg ];
|
pythonPath = [ pygobject3 pyxdg ];
|
||||||
|
|
||||||
preConfigure = "./bootstrap";
|
preConfigure = "./bootstrap";
|
||||||
postFixup = ''
|
|
||||||
wrapPythonPrograms
|
postFixup = "wrapPythonPrograms";
|
||||||
rm "$out/share/icons/hicolor/icon-theme.cache"
|
|
||||||
'';
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
54
pkgs/applications/misc/regextester/default.nix
Normal file
54
pkgs/applications/misc/regextester/default.nix
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{ stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, gettext
|
||||||
|
, libxml2
|
||||||
|
, pkgconfig
|
||||||
|
, gtk3
|
||||||
|
, granite
|
||||||
|
, gnome3
|
||||||
|
, cmake
|
||||||
|
, ninja
|
||||||
|
, vala
|
||||||
|
, elementary-cmake-modules
|
||||||
|
, wrapGAppsHook }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "regextester-${version}";
|
||||||
|
version = "0.1.7";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "artemanufrij";
|
||||||
|
repo = "regextester";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "07shdm10dc7jz2hka5dc51yp81a0dgc47nmkrp6fs6r9wqx0j30n";
|
||||||
|
};
|
||||||
|
|
||||||
|
XDG_DATA_DIRS = stdenv.lib.concatStringsSep ":" [
|
||||||
|
"${granite}/share"
|
||||||
|
"${gnome3.libgee}/share"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pkgconfig
|
||||||
|
wrapGAppsHook
|
||||||
|
vala
|
||||||
|
cmake
|
||||||
|
ninja
|
||||||
|
gettext
|
||||||
|
libxml2
|
||||||
|
elementary-cmake-modules
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
gtk3
|
||||||
|
granite
|
||||||
|
gnome3.libgee
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A desktop application to test regular expressions interactively";
|
||||||
|
homepage = https://github.com/artemanufrij/regextester;
|
||||||
|
maintainers = with maintainers; [ samdroid-apps ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
};
|
||||||
|
}
|
@ -3,25 +3,19 @@
|
|||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
pname = "rssguard";
|
pname = "rssguard";
|
||||||
version = "3.5.5";
|
version = "3.5.6";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "martinrotter";
|
owner = "martinrotter";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0swjh664y1yqr1rn3ym2kicyx7r97ypr4qf7qrjl4a5q1spzsv48";
|
sha256 = "1pdas7hg3nzykm3qi951fk25c9s6gjb7my82b9xzjn2yd7ks71by";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ qtwebengine qttools ];
|
buildInputs = [ qtwebengine qttools ];
|
||||||
nativeBuildInputs = [ qmake wrapGAppsHook ];
|
nativeBuildInputs = [ qmake wrapGAppsHook ];
|
||||||
qmakeFlags = [ "CONFIG+=release" ];
|
qmakeFlags = [ "CONFIG+=release" ];
|
||||||
|
|
||||||
# FIXME: This shouldn't be needed after 3.5.5.
|
|
||||||
# See: https://github.com/martinrotter/rssguard/issues/175
|
|
||||||
preConfigure = ''
|
|
||||||
lrelease rssguard.pro
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Simple RSS/Atom feed reader with online synchronization";
|
description = "Simple RSS/Atom feed reader with online synchronization";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -7,11 +7,11 @@
|
|||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
name = "skrooge-${version}";
|
name = "skrooge-${version}";
|
||||||
version = "2.10.5";
|
version = "2.11.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.kde.org/stable/skrooge/${name}.tar.xz";
|
url = "http://download.kde.org/stable/skrooge/${name}.tar.xz";
|
||||||
sha256 = "1c1yihypb6qgbzfcrw4ylqr9zivyba10xzvibrmfkrilxi6i582n";
|
sha256 = "11ns0j3ss09aqd8snfzd52xf0cgsjjcgzalb031p7v17rn14yqaq";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "root-${version}";
|
name = "root-${version}";
|
||||||
version = "6.10.08";
|
version = "6.12.06";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
|
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
|
||||||
sha256 = "12mddl6pqwwc9nr4jqzp6h1jm4zycazd3v88dz306m1nmk97dlic";
|
sha256 = "1557b9sdragsx9i15qh6lq7fn056bgi87d31kxdl4vl0awigvp5f";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
{ fetchFromGitHub, lib, python2Packages, meld, subversion, gvfs, xdg_utils }:
|
{ fetchFromGitHub, lib, python2Packages, meld, subversion, gvfs, xdg_utils }:
|
||||||
python2Packages.buildPythonApplication rec {
|
python2Packages.buildPythonApplication rec {
|
||||||
name = "rabbitvcs-${version}";
|
name = "rabbitvcs-${version}";
|
||||||
version = "0.16";
|
version = "0.17.1";
|
||||||
namePrefix = "";
|
namePrefix = "";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "rabbitvcs";
|
owner = "rabbitvcs";
|
||||||
repo = "rabbitvcs";
|
repo = "rabbitvcs";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0964pdylrx4n9c9l8ncwv4q1p63y4hadb5v4pgvm0m2fah2jlkly";
|
sha256 = "01cr16zf3gzsci1hhfli79m34fcx5m1pvswl16rkxxn212yc9fhy";
|
||||||
};
|
};
|
||||||
|
|
||||||
pythonPath = with python2Packages; [ configobj dbus-python pygobject2 pygtk simplejson pysvn dulwich tkinter gvfs xdg_utils ];
|
pythonPath = with python2Packages; [ configobj dbus-python pygobject2 pygtk simplejson pysvn dulwich tkinter gvfs xdg_utils ];
|
||||||
|
@ -1,32 +1,36 @@
|
|||||||
{ stdenv, fetchFromGitLab, pkgconfig, autoconf, automake, libiconv
|
{ stdenv, fetchFromGitLab, pkgconfig, autoconf, automake, libiconv
|
||||||
, drake, ruby, docbook_xsl, file, xdg_utils, gettext, expat, qt5, boost
|
, drake, ruby, docbook_xsl, file, xdg_utils, gettext, expat, boost
|
||||||
, libebml, zlib, libmatroska, libogg, libvorbis, flac, libxslt, cmark
|
, libebml, zlib, libmatroska, libogg, libvorbis, flac, libxslt, cmark
|
||||||
, withGUI ? true
|
, withGUI ? true
|
||||||
|
, qtbase ? null
|
||||||
|
, qtmultimedia ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert withGUI -> qt5 != null;
|
assert withGUI -> qtbase != null && qtmultimedia != null;
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "mkvtoolnix-${version}";
|
name = "mkvtoolnix-${version}";
|
||||||
version = "20.0.0";
|
version = "21.0.0";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
owner = "mbunkus";
|
owner = "mbunkus";
|
||||||
repo = "mkvtoolnix";
|
repo = "mkvtoolnix";
|
||||||
rev = "release-${version}";
|
rev = "release-${version}";
|
||||||
sha256 = "0qrjvvp0pvw9i91rh0zrxpclq7xap2dpjip0s5bm4gv14gh4l4mc";
|
sha256 = "06nixp0qqa6g2fv40f7l0i0sqbc7qswpgq4534l98nan08wjbk2r";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig autoconf automake gettext drake ruby docbook_xsl libxslt ];
|
nativeBuildInputs = [
|
||||||
|
pkgconfig autoconf automake gettext
|
||||||
|
drake ruby docbook_xsl libxslt
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
expat file xdg_utils boost libebml zlib libmatroska libogg
|
expat file xdg_utils boost libebml zlib
|
||||||
libvorbis flac cmark
|
libmatroska libogg libvorbis flac cmark
|
||||||
]
|
] ++ optional stdenv.isDarwin libiconv
|
||||||
++ optional stdenv.isDarwin libiconv
|
++ optionals withGUI [ qtbase qtmultimedia ];
|
||||||
++ optionals withGUI [qt5.qtbase qt5.qtmultimedia];
|
|
||||||
|
|
||||||
preConfigure = "./autogen.sh; patchShebangs .";
|
preConfigure = "./autogen.sh; patchShebangs .";
|
||||||
buildPhase = "drake -j $NIX_BUILD_CORES";
|
buildPhase = "drake -j $NIX_BUILD_CORES";
|
||||||
|
27
pkgs/applications/video/mpc-qt/default.nix
Normal file
27
pkgs/applications/video/mpc-qt/default.nix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, pkgconfig, qmake, qtx11extras, qttools, mpv }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "mpc-qt-${version}";
|
||||||
|
version = "17.11";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "cmdrkotori";
|
||||||
|
repo = "mpc-qt";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1vi4zsmbzxj6ms8wls9zv15vrskdrhgnj6l41m1fk4scs4jzvbkm";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgconfig qmake qttools ];
|
||||||
|
|
||||||
|
buildInputs = [ mpv qtx11extras ];
|
||||||
|
|
||||||
|
qmakeFlags = [ "QMAKE_LUPDATE=${qttools.dev}/bin/lupdate" ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Media Player Classic Qute Theater";
|
||||||
|
homepage = https://github.com/cmdrkotori/mpc-qt;
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = platforms.unix;
|
||||||
|
maintainers = with maintainers; [ romildo ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, fetchgit, lib
|
{ stdenv, fetchgit, lib
|
||||||
, yad, mkvtoolnix, libnotify }:
|
, yad, mkvtoolnix-cli, libnotify }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "mpv-convert-script-2016-03-18.lua";
|
name = "mpv-convert-script-2016-03-18.lua";
|
||||||
@ -19,7 +19,7 @@ stdenv.mkDerivation {
|
|||||||
substituteInPlace convert_script.lua \
|
substituteInPlace convert_script.lua \
|
||||||
${subs "NOTIFY_CMD" "notify-send" "${libnotify}/bin/notify-send"} \
|
${subs "NOTIFY_CMD" "notify-send" "${libnotify}/bin/notify-send"} \
|
||||||
${subs "YAD_CMD" "yad" "${yad}/bin/yad"} \
|
${subs "YAD_CMD" "yad" "${yad}/bin/yad"} \
|
||||||
${subs "MKVMERGE_CMD" "mkvmerge" "${mkvtoolnix}/bin/mkvmerge"}
|
${subs "MKVMERGE_CMD" "mkvmerge" "${mkvtoolnix-cli}/bin/mkvmerge"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "remotebox-${version}";
|
name = "remotebox-${version}";
|
||||||
version = "2.2";
|
version = "2.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://remotebox.knobgoblin.org.uk/downloads/RemoteBox-${version}.tar.bz2";
|
url = "http://remotebox.knobgoblin.org.uk/downloads/RemoteBox-${version}.tar.bz2";
|
||||||
sha256 = "0g7lx5zk9fk5k8alpag45z2zw9bnrlx1zfs63rc3ilfyvm4k4zc5";
|
sha256 = "14zcpzpdb5gxkxvckcdwq3mfv8b18zirbdskzddhqxjddkzayckz";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = with perlPackages; [ perl Glib Gtk2 Pango SOAPLite ];
|
buildInputs = with perlPackages; [ perl Glib Gtk2 Pango SOAPLite ];
|
||||||
|
@ -58,7 +58,7 @@ in stdenv.mkDerivation rec {
|
|||||||
cp -Rv $BUILDDIR/target/bin/stage1-*.aci $out/${stage1Dir}/
|
cp -Rv $BUILDDIR/target/bin/stage1-*.aci $out/${stage1Dir}/
|
||||||
|
|
||||||
wrapProgram $out/bin/rkt \
|
wrapProgram $out/bin/rkt \
|
||||||
--prefix LD_LIBRARY_PATH : ${systemd.lib}/lib \
|
--prefix LD_LIBRARY_PATH : "${systemd.lib}/lib:${acl.out}/lib" \
|
||||||
--prefix PATH : ${iptables}/bin
|
--prefix PATH : ${iptables}/bin
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import ./generic.nix {
|
import ./generic.nix {
|
||||||
major_version = "4";
|
major_version = "4";
|
||||||
minor_version = "06";
|
minor_version = "06";
|
||||||
patch_version = "0";
|
patch_version = "1";
|
||||||
sha256 = "1dy542yfnnw10zvh5s9qzswliq11mg7l0bcyss3501qw3vwvadhj";
|
sha256 = "1n3pygfssd6nkrq876wszm5nm3v4605q4k16a66h1nmq9wvf01vg";
|
||||||
|
|
||||||
# If the executable is stipped it does not work
|
# If the executable is stipped it does not work
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
@ -471,10 +471,6 @@ self: super: builtins.intersectAttrs super {
|
|||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
|
|
||||||
# Fails to link against with newer gsl versions because a deprecrated function
|
|
||||||
# was removed
|
|
||||||
hmatrix-gsl = super.hmatrix-gsl.override { gsl = pkgs.gsl_1; };
|
|
||||||
|
|
||||||
# tests run executable, relying on PATH
|
# tests run executable, relying on PATH
|
||||||
# without this, tests fail with "Couldn't launch intero process"
|
# without this, tests fail with "Couldn't launch intero process"
|
||||||
intero = overrideCabal super.intero (drv: {
|
intero = overrideCabal super.intero (drv: {
|
||||||
|
@ -343,8 +343,8 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
php70 = generic {
|
php70 = generic {
|
||||||
version = "7.0.27";
|
version = "7.0.28";
|
||||||
sha256 = "0ca174kp2l3fjcp8z0mqnkbjfhijjzz7rs7bkzg1qk2cpdijbylr";
|
sha256 = "0zrw0saqlfv60f3nmff7288wqfhdsfiqns4ys3ii0drzc6s92m5f";
|
||||||
};
|
};
|
||||||
|
|
||||||
php71 = generic {
|
php71 = generic {
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "catch-${version}";
|
name = "catch-${version}";
|
||||||
version = "1.11.0";
|
version = "1.12.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "catchorg";
|
owner = "catchorg";
|
||||||
repo = "Catch";
|
repo = "Catch";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0v9yw7ydvhydp78hh7cmaif4h73k5qxqpm1g7xn8i882i3s84s2s";
|
sha256 = "0hkcmycvyyazzi9dywnyiipnmbx399iirh5xk5g957c8zl0505kd";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "elementary-cmake-modules";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "elementary";
|
||||||
|
repo = "cmake-modules";
|
||||||
|
rev = "319ec5336e9f05f3f22b886cc2053ef3d4b6599e";
|
||||||
|
sha256 = "191hhvdxyqvh9axzndaqld7vrmv7xkn0czks908zhb2zpjhv9rby";
|
||||||
|
};
|
||||||
|
|
||||||
|
prePatch = ''
|
||||||
|
substituteInPlace CMakeLists.txt \
|
||||||
|
--replace ' ''${CMAKE_ROOT}/Modules' " $out/lib/cmake"
|
||||||
|
'';
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ cmake pkgconfig ];
|
||||||
|
|
||||||
|
setupHook = ./setup-hook.sh;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
|
homepage = https://github.com/elementary/cmake-modules;
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
maintainers = [ maintainers.samdroid-apps ];
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
_elementaryCMakeEnvHook() {
|
||||||
|
cmakeFlagsArray+=(-DCMAKE_MODULE_PATH=@out@/lib/cmake)
|
||||||
|
}
|
||||||
|
addEnvHooks "$targetOffset" _elementaryCMakeEnvHook
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, expat, zlib, geos, libspatialite }:
|
{ stdenv, fetchurl, expat, zlib, geos, libspatialite }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "readosm-1.0.0b";
|
name = "readosm-1.1.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.gaia-gis.it/gaia-sins/readosm-sources/${name}.tar.gz";
|
url = "http://www.gaia-gis.it/gaia-sins/readosm-sources/${name}.tar.gz";
|
||||||
sha256 = "042pv31smc7l6y111rvp0hza5sw86wa8ldg2jyq78xgwzcbhszpd";
|
sha256 = "1v20pnda67imjd70fn0zw30aar525xicy3d3v49md5cvqklws265";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ expat zlib geos libspatialite ];
|
buildInputs = [ expat zlib geos libspatialite ];
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, ncurses, libiconv }:
|
{ stdenv, fetchurl, ncurses, libiconv }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "stfl-0.22";
|
name = "stfl-0.24";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.clifford.at/stfl/${name}.tar.gz";
|
url = "http://www.clifford.at/stfl/${name}.tar.gz";
|
||||||
sha256 = "062lqlf3qhp8bcapbpc0k3wym7x6ngncql8jmx5x06p6679szp9d";
|
sha256 = "1460d5lc780p3q38l3wc9jfr2a7zlyrcra0li65aynj738cam9yl";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ ncurses libiconv ];
|
buildInputs = [ ncurses libiconv ];
|
||||||
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
|||||||
DESTDIR=$out prefix=\"\" make install
|
DESTDIR=$out prefix=\"\" make install
|
||||||
|
|
||||||
# some programs rely on libstfl.so.0 to be present, so link it
|
# some programs rely on libstfl.so.0 to be present, so link it
|
||||||
ln -s $out/lib/libstfl.so.0.22 $out/lib/libstfl.so.0
|
ln -s $out/lib/libstfl.so.0.24 $out/lib/libstfl.so.0
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -11,4 +11,5 @@
|
|||||||
, "pnpm"
|
, "pnpm"
|
||||||
, "semver"
|
, "semver"
|
||||||
, "sloc"
|
, "sloc"
|
||||||
|
, "npm"
|
||||||
]
|
]
|
||||||
|
@ -283,6 +283,15 @@ let
|
|||||||
sha512 = "1kvjv5hs1c53b5g2vghpnncn4zj397sa0vpbx1pzpn8ngq52s3xq9923gnl2kzkh1mhyrl277jrh87a766yks89qvz8b4jczr44xr9p";
|
sha512 = "1kvjv5hs1c53b5g2vghpnncn4zj397sa0vpbx1pzpn8ngq52s3xq9923gnl2kzkh1mhyrl277jrh87a766yks89qvz8b4jczr44xr9p";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
"bencode-2.0.0" = {
|
||||||
|
name = "bencode";
|
||||||
|
packageName = "bencode";
|
||||||
|
version = "2.0.0";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://registry.npmjs.org/bencode/-/bencode-2.0.0.tgz";
|
||||||
|
sha512 = "3rdjlprrhprwwygnw5aik9pgi1xyr09yvgq3rbr4g3pl1v70mcc1k903x3vh9z782jly6vmnvp44nrskl5rhcxgfdwz19fl1b1qggf2";
|
||||||
|
};
|
||||||
|
};
|
||||||
"bitfield-rle-2.1.0" = {
|
"bitfield-rle-2.1.0" = {
|
||||||
name = "bitfield-rle";
|
name = "bitfield-rle";
|
||||||
packageName = "bitfield-rle";
|
packageName = "bitfield-rle";
|
||||||
@ -1768,13 +1777,13 @@ let
|
|||||||
sha512 = "2nbjxg0x7jsa14zhvx68w1vri68hsxzbxz7b7ap76fdp0jkrgna2rq636yxnax04f3f8i2ambj2fpan6qli6vixmfryz78vrapdip8n";
|
sha512 = "2nbjxg0x7jsa14zhvx68w1vri68hsxzbxz7b7ap76fdp0jkrgna2rq636yxnax04f3f8i2ambj2fpan6qli6vixmfryz78vrapdip8n";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"k-rpc-socket-1.7.2" = {
|
"k-rpc-socket-1.8.0" = {
|
||||||
name = "k-rpc-socket";
|
name = "k-rpc-socket";
|
||||||
packageName = "k-rpc-socket";
|
packageName = "k-rpc-socket";
|
||||||
version = "1.7.2";
|
version = "1.8.0";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://registry.npmjs.org/k-rpc-socket/-/k-rpc-socket-1.7.2.tgz";
|
url = "https://registry.npmjs.org/k-rpc-socket/-/k-rpc-socket-1.8.0.tgz";
|
||||||
sha512 = "02w1ih1lh86i5ap7c3dy2ml7g5a11r0w300iyxdf6v02qr0j1x3vf78hx5q9dgg3drifab018mgm851m457zzzi05i2z2r1s3zlflc3";
|
sha512 = "0pc9bjnmgfjcgh49lclvz5qnlkzypgirlx5ji2nx15vfn00gwczy5hvfahcxdzcdqsjlwh7q8jw4zj8abdk8qx2cwiqdw8fgg557zvz";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"kind-of-3.2.2" = {
|
"kind-of-3.2.2" = {
|
||||||
@ -3514,8 +3523,12 @@ in
|
|||||||
sources."json-stringify-safe-5.0.1"
|
sources."json-stringify-safe-5.0.1"
|
||||||
sources."jsprim-1.4.1"
|
sources."jsprim-1.4.1"
|
||||||
sources."k-bucket-3.3.1"
|
sources."k-bucket-3.3.1"
|
||||||
sources."k-rpc-4.2.1"
|
(sources."k-rpc-4.2.1" // {
|
||||||
sources."k-rpc-socket-1.7.2"
|
dependencies = [
|
||||||
|
sources."bencode-2.0.0"
|
||||||
|
];
|
||||||
|
})
|
||||||
|
sources."k-rpc-socket-1.8.0"
|
||||||
sources."kind-of-3.2.2"
|
sources."kind-of-3.2.2"
|
||||||
sources."last-one-wins-1.0.4"
|
sources."last-one-wins-1.0.4"
|
||||||
sources."length-prefixed-message-3.0.3"
|
sources."length-prefixed-message-3.0.3"
|
||||||
@ -4127,4 +4140,21 @@ in
|
|||||||
production = true;
|
production = true;
|
||||||
bypassCache = true;
|
bypassCache = true;
|
||||||
};
|
};
|
||||||
|
npm = nodeEnv.buildNodePackage {
|
||||||
|
name = "npm";
|
||||||
|
packageName = "npm";
|
||||||
|
version = "5.6.0";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://registry.npmjs.org/npm/-/npm-5.6.0.tgz";
|
||||||
|
sha512 = "0nnr796ik5h8bsd3k9ygivivr3na2ksnf5iipf8dsnn20j10i9sgmhmsnzbimd2pqgjbrpp8gbpl2q7j5c7yjqjfirrh8xcc3v3gpws";
|
||||||
|
};
|
||||||
|
buildInputs = globalBuildInputs;
|
||||||
|
meta = {
|
||||||
|
description = "a package manager for JavaScript";
|
||||||
|
homepage = https://docs.npmjs.com/;
|
||||||
|
license = "Artistic-2.0";
|
||||||
|
};
|
||||||
|
production = true;
|
||||||
|
bypassCache = true;
|
||||||
|
};
|
||||||
}
|
}
|
@ -14,6 +14,10 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
propagatedBuildInputs = [ easy-format ];
|
propagatedBuildInputs = [ easy-format ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
patchShebangs .
|
||||||
|
'';
|
||||||
|
|
||||||
inherit (jbuilder) installPhase;
|
inherit (jbuilder) installPhase;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
{ lib, buildPythonPackage, fetchPypi, isPy3k, enum34, pycodestyle, pytest, flake8, pylama }:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "flake8-import-order";
|
||||||
|
version = "0.17";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "60ea6674c77e4d916071beabf2b31b9b45e2f5b3bbda48a34db65766a5b25678";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ pycodestyle ] ++ lib.optional (!isPy3k) enum34;
|
||||||
|
|
||||||
|
checkInputs = [ pytest flake8 pycodestyle pylama ];
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
pytest --strict
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Flake8 and pylama plugin that checks the ordering of import statements";
|
||||||
|
homepage = https://github.com/PyCQA/flake8-import-order;
|
||||||
|
license = with licenses; [ lgpl3 mit ];
|
||||||
|
};
|
||||||
|
}
|
@ -4,7 +4,6 @@
|
|||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "jsonrpc-async";
|
pname = "jsonrpc-async";
|
||||||
version = "0.6";
|
version = "0.6";
|
||||||
name = "${pname}-${version}";
|
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "jsonrpc-base";
|
pname = "jsonrpc-base";
|
||||||
version = "1.0";
|
version = "1.0";
|
||||||
name = "${pname}-${version}";
|
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "jsonrpc-websocket";
|
pname = "jsonrpc-websocket";
|
||||||
version = "0.5";
|
version = "0.5";
|
||||||
name = "${pname}-${version}";
|
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
|
@ -1,20 +1,30 @@
|
|||||||
{ stdenv, buildPythonPackage, fetchPypi, snowballstemmer, configparser,
|
{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, pythonOlder
|
||||||
pytest, pytestpep8, mock, pathlib }:
|
, snowballstemmer, six, configparser
|
||||||
|
, pytest, pytestpep8, mock, pathlib }:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pydocstyle";
|
pname = "pydocstyle";
|
||||||
version = "2.1.1";
|
version = "2.1.1";
|
||||||
|
|
||||||
src = fetchPypi {
|
# no tests on PyPI
|
||||||
inherit pname version;
|
# https://github.com/PyCQA/pydocstyle/issues/302
|
||||||
sha256 = "15ssv8l6cvrmzgwcdzw76rnl4np3qf0dbwr1wsx76y0hc7lwsnsd";
|
src = fetchFromGitHub {
|
||||||
|
owner = "PyCQA";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1h0k8lpx14svc8dini62j0kqiam10pck5sdzvxa4xhsx7y689g5l";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ snowballstemmer configparser ];
|
propagatedBuildInputs = [ snowballstemmer six ] ++ lib.optional (!isPy3k) configparser;
|
||||||
|
|
||||||
checkInputs = [ pytest pytestpep8 mock pathlib ];
|
checkInputs = [ pytest pytestpep8 mock ] ++ lib.optional (pythonOlder "3.4") pathlib;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
checkPhase = ''
|
||||||
|
# test_integration.py installs packages via pip
|
||||||
|
py.test --pep8 --cache-clear -vv src/tests -k "not test_integration"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
description = "Python docstring style checker";
|
description = "Python docstring style checker";
|
||||||
homepage = https://github.com/PyCQA/pydocstyle/;
|
homepage = https://github.com/PyCQA/pydocstyle/;
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
|
33
pkgs/development/python-modules/pylama/default.nix
Normal file
33
pkgs/development/python-modules/pylama/default.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{ lib, buildPythonPackage, fetchPypi, fetchpatch
|
||||||
|
, mccabe, pycodestyle, pydocstyle, pyflakes
|
||||||
|
, pytest, ipdb }:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "pylama";
|
||||||
|
version = "7.4.3";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "390c1dab1daebdf3d6acc923e551b035c3faa77d8b96b98530c230493f9ec712";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = fetchpatch {
|
||||||
|
url = "${meta.homepage}/pull/116.patch";
|
||||||
|
sha256 = "00jz5k2w0xahs1m3s603j6l4cwzz92qsbbk81fh17nq0f47999mv";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ mccabe pycodestyle pydocstyle pyflakes ];
|
||||||
|
|
||||||
|
checkInputs = [ pytest ipdb ];
|
||||||
|
|
||||||
|
# tries to mess with the file system
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Code audit tool for python";
|
||||||
|
homepage = https://github.com/klen/pylama;
|
||||||
|
# ambiguous license declarations: https://github.com/klen/pylama/issues/64
|
||||||
|
license = licenses.lgpl3;
|
||||||
|
maintainers = with maintainers; [ dotlambda ];
|
||||||
|
};
|
||||||
|
}
|
@ -13,7 +13,7 @@ buildPythonPackage rec {
|
|||||||
|
|
||||||
buildInputs = [ pytest pytestrunner mccabe configparser backports_functools_lru_cache ];
|
buildInputs = [ pytest pytestrunner mccabe configparser backports_functools_lru_cache ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ astroid configparser isort ];
|
propagatedBuildInputs = [ astroid configparser isort mccabe ];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
# Remove broken darwin tests
|
# Remove broken darwin tests
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pyunifi";
|
pname = "pyunifi";
|
||||||
version = "2.13";
|
version = "2.13";
|
||||||
name = "${pname}-${version}";
|
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "wakeonlan";
|
pname = "wakeonlan";
|
||||||
version = "1.0.0";
|
version = "1.0.0";
|
||||||
name = "${pname}-${version}";
|
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
|
@ -141,6 +141,7 @@ in
|
|||||||
grpc = attrs: {
|
grpc = attrs: {
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
buildInputs = [ openssl ];
|
buildInputs = [ openssl ];
|
||||||
|
NIX_CFLAGS_COMPILE = [ "-Wno-error=stringop-overflow" "-Wno-error=implicit-fallthrough" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
hitimes = attrs: {
|
hitimes = attrs: {
|
||||||
|
13
pkgs/development/tools/build-managers/bear/cmakepaths.patch
Normal file
13
pkgs/development/tools/build-managers/bear/cmakepaths.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 04c5c58..429ca47 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -24,7 +24,7 @@ set(CMAKE_OSX_ARCHITECTURES "i386;x86_64" CACHE STRING "Rogue")
|
||||||
|
|
||||||
|
set(EAR_LIB_FILE ${CMAKE_SHARED_LIBRARY_PREFIX}ear${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||||
|
set(EAR_LIB_PATH "${CMAKE_INSTALL_LIBDIR}/bear")
|
||||||
|
-set(DEFAULT_PRELOAD_FILE ${CMAKE_INSTALL_PREFIX}/${EAR_LIB_PATH}/${EAR_LIB_FILE} CACHE STRING "Default path to libear.")
|
||||||
|
+set(DEFAULT_PRELOAD_FILE ${EAR_LIB_PATH}/${EAR_LIB_FILE} CACHE STRING "Default path to libear.")
|
||||||
|
|
||||||
|
add_subdirectory(libear)
|
||||||
|
add_subdirectory(bear)
|
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
doCheck = false; # all fail
|
doCheck = false; # all fail
|
||||||
|
|
||||||
patches = [ ./ignore_wrapper.patch ];
|
patches = [ ./ignore_wrapper.patch ./cmakepaths.patch ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Tool that generates a compilation database for clang tooling";
|
description = "Tool that generates a compilation database for clang tooling";
|
||||||
@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
|
|||||||
homepage = https://github.com/rizsotto/Bear;
|
homepage = https://github.com/rizsotto/Bear;
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
maintainers = [ maintainers.vcunat ];
|
maintainers = [ maintainers.vcunat maintainers.babariviere ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,20 +1,24 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, fetchurl
|
, fetchFromGitHub
|
||||||
, rustPlatform
|
, rustPlatform
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with rustPlatform;
|
with rustPlatform;
|
||||||
|
|
||||||
buildRustPackage rec {
|
buildRustPackage rec {
|
||||||
version = "0.19.1";
|
version = "unstable-2018-02-24";
|
||||||
name = "geckodriver-${version}";
|
name = "geckodriver-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/mozilla/geckodriver/archive/v${version}.tar.gz";
|
owner = "mozilla";
|
||||||
sha256 = "04zpv4aiwbig466yj24hhazl5hrapkyvwlhvg0za5599ykzdv47m";
|
repo = "gecko-dev";
|
||||||
|
rev = "ecb86060b4c5a9808798b81a57e79e821bb47082";
|
||||||
|
sha256 = "1am84a60adw0bb12rlhdqbiwyywhza4qp5sf4f4fmssjl2qcr6nl";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "1cny8caqcd9p98hra1k7y4d3lb8sxsyaplr0svbwam0d2qc1c257";
|
sourceRoot = "${src.name}/testing/geckodriver";
|
||||||
|
|
||||||
|
cargoSha256 = "0dvcvdb623jla29i93glx20nf8pbpfw6jj548ii6brzkcpafxxm8";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers";
|
description = "Proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers";
|
||||||
|
@ -1,18 +1,25 @@
|
|||||||
{ stdenv, fetchurl, fetchpatch, runCommand, zlib, makeWrapper }:
|
{ stdenv, fetchurl, fetchpatch, runCommand, perl, zlib, makeWrapper }:
|
||||||
|
|
||||||
let ccache = stdenv.mkDerivation rec {
|
let ccache = stdenv.mkDerivation rec {
|
||||||
name = "ccache-${version}";
|
name = "ccache-${version}";
|
||||||
version = "3.3.5";
|
version = "3.4.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
sha256 = "1iih5d171rq29366c1z90dri2h8173yyc8rm2740wxiqx6k7c18r";
|
sha256 = "1pppi4jbkkj641cdynmc35jaj40jjicw7gj75ran5qs5886jcblc";
|
||||||
url = "mirror://samba/ccache/${name}.tar.xz";
|
url = "mirror://samba/ccache/${name}.tar.xz";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ perl ];
|
||||||
|
|
||||||
buildInputs = [ zlib ];
|
buildInputs = [ zlib ];
|
||||||
|
|
||||||
|
outputs = [ "out" "man" ];
|
||||||
|
|
||||||
# non to be fail on filesystems with unconventional blocksizes (zfs on Hydra?)
|
# non to be fail on filesystems with unconventional blocksizes (zfs on Hydra?)
|
||||||
patches = [ ./skip-fs-dependent-test.patch ];
|
patches = [
|
||||||
|
./fix-debug-prefix-map-suite.patch
|
||||||
|
./skip-fs-dependent-test.patch
|
||||||
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace Makefile.in --replace 'objs) $(extra_libs)' 'objs)'
|
substituteInPlace Makefile.in --replace 'objs) $(extra_libs)' 'objs)'
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
--- a/test/suites/debug_prefix_map.bash
|
||||||
|
+++ b/test/suites/debug_prefix_map.bash
|
||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
expect_stat 'cache hit (preprocessed)' 0
|
||||||
|
expect_stat 'cache miss' 1
|
||||||
|
expect_stat 'files in cache' 2
|
||||||
|
- if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
|
||||||
|
+ if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
|
||||||
|
test_failed "Source dir (`pwd`) found in test.o"
|
||||||
|
fi
|
||||||
|
|
||||||
|
@@ -39,7 +39,7 @@
|
||||||
|
expect_stat 'cache hit (preprocessed)' 0
|
||||||
|
expect_stat 'cache miss' 1
|
||||||
|
expect_stat 'files in cache' 2
|
||||||
|
- if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
|
||||||
|
+ if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
|
||||||
|
test_failed "Source dir (`pwd`) found in test.o"
|
||||||
|
fi
|
||||||
|
|
||||||
|
@@ -52,10 +52,10 @@
|
||||||
|
expect_stat 'cache hit (preprocessed)' 0
|
||||||
|
expect_stat 'cache miss' 1
|
||||||
|
expect_stat 'files in cache' 2
|
||||||
|
- if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
|
||||||
|
+ if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
|
||||||
|
test_failed "Source dir (`pwd`) found in test.o"
|
||||||
|
fi
|
||||||
|
- if ! grep "name" test.o >/dev/null 2>&1; then
|
||||||
|
+ if ! objdump -g test.o | grep ": name$" >/dev/null 2>&1; then
|
||||||
|
test_failed "Relocation (name) not found in test.o"
|
||||||
|
fi
|
||||||
|
|
||||||
|
@@ -65,7 +65,7 @@
|
||||||
|
expect_stat 'cache hit (preprocessed)' 0
|
||||||
|
expect_stat 'cache miss' 1
|
||||||
|
expect_stat 'files in cache' 2
|
||||||
|
- if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
|
||||||
|
+ if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
|
||||||
|
test_failed "Source dir (`pwd`) found in test.o"
|
||||||
|
fi
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
--- a/test.sh
|
--- a/test/suites/cleanup.bash
|
||||||
+++ b/test.sh
|
+++ b/test/suites/cleanup.bash
|
||||||
@@ -2669,23 +2669,6 @@ SUITE_cleanup() {
|
@@ -94,23 +94,6 @@
|
||||||
|
|
||||||
$CCACHE -F 0 -M 256K >/dev/null
|
$CCACHE -F 0 -M 256K >/dev/null
|
||||||
CCACHE_LOGFILE=/tmp/foo $CCACHE -c >/dev/null
|
CCACHE_LOGFILE=/tmp/foo $CCACHE -c >/dev/null
|
||||||
|
@ -6,11 +6,11 @@ with stdenv.lib;
|
|||||||
stdenv.mkDerivation rec{
|
stdenv.mkDerivation rec{
|
||||||
|
|
||||||
name = "freecell-solver-${version}";
|
name = "freecell-solver-${version}";
|
||||||
version = "4.8.0";
|
version = "4.16.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://fc-solve.shlomifish.org/downloads/fc-solve/${name}.tar.xz";
|
url = "http://fc-solve.shlomifish.org/downloads/fc-solve/${name}.tar.xz";
|
||||||
sha256 = "0274l1p71ps222i62whqfkg80fcc8m4w2hmpbrbbd5gh8kfpman3";
|
sha256 = "1ihrmxbsli7c1lm5gw9xgrakyn4nsmaj1zgk5gza2ywnfpgdb0ac";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "pioneer-${version}";
|
name = "pioneer-${version}";
|
||||||
version = "20171001";
|
version = "20180203";
|
||||||
|
|
||||||
src = fetchFromGitHub{
|
src = fetchFromGitHub{
|
||||||
owner = "pioneerspacesim";
|
owner = "pioneerspacesim";
|
||||||
repo = "pioneer";
|
repo = "pioneer";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0yxw1zdvidrwc28vxfi3qpx2nq2dix2d6ylwgzq9ph8kgwv9fl5n";
|
sha256 = "0hp2mf36kj2v93hka8m8lxw2qhmnjc62wjlpw7c7ix0r8xa01i6h";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoconf automake pkgconfig ];
|
nativeBuildInputs = [ autoconf automake pkgconfig ];
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "${project}-${version}";
|
name = "${project}-${version}";
|
||||||
project = "rocksndiamonds";
|
project = "rocksndiamonds";
|
||||||
version = "4.0.0.2";
|
version = "4.0.1.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.artsoft.org/RELEASES/unix/${project}/${name}.tar.gz";
|
url = "https://www.artsoft.org/RELEASES/unix/${project}/${name}.tar.gz";
|
||||||
sha256 = "0dzn6vlayvnkjm64zwva337rn07lc21kq93m2h8zz8j3wpl11pb4";
|
sha256 = "0f2m29m53sngg2kv4km91nxbr53rzhchbpqx5dzrv3p5hq1hp936";
|
||||||
};
|
};
|
||||||
|
|
||||||
desktopItem = makeDesktopItem {
|
desktopItem = makeDesktopItem {
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "tp_smapi-${version}-${kernel.version}";
|
name = "tp_smapi-${version}-${kernel.version}";
|
||||||
version = "unstable-2017-12-04";
|
version = "0.43";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "evgeni";
|
owner = "evgeni";
|
||||||
repo = "tp_smapi";
|
repo = "tp_smapi";
|
||||||
rev = "76c5120f7be4880cf2c6801f872327e4e70c449f";
|
rev = "tp-smapi/${version}";
|
||||||
sha256 = "0g8l7rmylspl17qnqpa2h4yj7h3zvy6xlmj5nlnixds9avnbz2vy";
|
sha256 = "1rjb0njckczc2mj05cagvj0lkyvmyk6bw7wkiinv81lw8m90g77g";
|
||||||
name = "tp-smapi-${version}";
|
name = "tp-smapi-${version}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "radarr-${version}";
|
name = "radarr-${version}";
|
||||||
version = "0.2.0.910";
|
version = "0.2.0.980";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/Radarr/Radarr/releases/download/v${version}/Radarr.develop.${version}.linux.tar.gz";
|
url = "https://github.com/Radarr/Radarr/releases/download/v${version}/Radarr.develop.${version}.linux.tar.gz";
|
||||||
sha256 = "0c4msk6hvlqyy81xkjhsvsy4igpc01s4a00zwhqnds2gj4y9yplk";
|
sha256 = "1939mmlp9hsmw0hd4c8m8p5fk6igvml30gk9ffi9mfhankas6fnf";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ];
|
buildInputs = [ makeWrapper ];
|
||||||
|
@ -49,6 +49,7 @@ self = stdenv.mkDerivation rec {
|
|||||||
"-DINSTALL_SHAREDIR=share/mysql"
|
"-DINSTALL_SHAREDIR=share/mysql"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
CXXFLAGS = "-fpermissive";
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
|
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
|
||||||
|
|
||||||
prePatch = ''
|
prePatch = ''
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "pgroonga-${version}";
|
name = "pgroonga-${version}";
|
||||||
version = "1.1.9";
|
version = "2.0.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://packages.groonga.org/source/pgroonga/${name}.tar.gz";
|
url = "http://packages.groonga.org/source/pgroonga/${name}.tar.gz";
|
||||||
sha256 = "07afgwll8nxfb7ziw3qrvw0ryjjw3994vj2f6alrjwpg7ynb46ag";
|
sha256 = "0023747i2x3j50z54l78maq7dya5ldd2sdydn6l5l7k6b6g4yr2d";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{stdenv, fetchurl, libaal}:
|
{stdenv, fetchurl, libaal}:
|
||||||
|
|
||||||
let version = "1.1.0"; in
|
let version = "1.2.1"; in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "reiser4progs-${version}";
|
name = "reiser4progs-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/reiser4/reiser4-utils/${name}.tar.gz";
|
url = "mirror://sourceforge/reiser4/reiser4-utils/${name}.tar.gz";
|
||||||
sha256 = "18bgv0wd75q53642x5dsk4g0mil1hw1zrp7a4xkb0pxx4bzjlbqg";
|
sha256 = "03vdqvpyd48wxrpqpb9kg76giaffw9b8k334kr4wc0zxgybknhl7";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [libaal];
|
buildInputs = [libaal];
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "scanbd-${version}";
|
name = "scanbd-${version}";
|
||||||
version = "1.4.4";
|
version = "1.5.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
sha256 = "07a59jk9b2hh49v5lcpckp64f5lny9sq8h0h2p2jcs9cqazf6q9s";
|
sha256 = "0pvy4qirfjdfm8aj6x5rkbgl7hk3jfa2s21qkk8ic5dqfjjab75n";
|
||||||
url = "mirror://sourceforge/scanbd/${name}.tgz";
|
url = "mirror://sourceforge/scanbd/${name}.tgz";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,23 +2,23 @@
|
|||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
name = "esptool-${version}";
|
name = "esptool-${version}";
|
||||||
version = "2.1";
|
version = "2.3.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "espressif";
|
owner = "espressif";
|
||||||
repo = "esptool";
|
repo = "esptool";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "137p0kcscly95qpjzgx1yxm8k2wf5y9v3srvlhp2ajniirgv8ijv";
|
sha256 = "0gwnl6z5s2ax07l3n38h9hdyz71pn8lzn4fybcwyrii0bj2kapvc";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = with python3.pkgs; [ flake8 flake8-future-import ];
|
checkInputs = with python3.pkgs; [ flake8 flake8-future-import flake8-import-order ];
|
||||||
propagatedBuildInputs = with python3.pkgs; [ pyserial pyaes ecdsa openssl ];
|
propagatedBuildInputs = with python3.pkgs; [ pyserial pyaes ecdsa openssl ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "ESP8266 and ESP32 serial bootloader utility";
|
description = "ESP8266 and ESP32 serial bootloader utility";
|
||||||
homepage = https://github.com/espressif/esptool;
|
homepage = https://github.com/espressif/esptool;
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
maintainers = [ maintainers.dezgeg ];
|
maintainers = with maintainers; [ dezgeg dotlambda ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
{ stdenv, fetchFromGitHub, rustPlatform, cmake, perl, pkgconfig, zlib }:
|
{ stdenv, fetchFromGitHub, rustPlatform, cmake, perl, pkgconfig, zlib
|
||||||
|
, darwin, libiconv
|
||||||
|
}:
|
||||||
|
|
||||||
with rustPlatform;
|
with rustPlatform;
|
||||||
|
|
||||||
@ -16,7 +18,10 @@ buildRustPackage rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkgconfig perl ];
|
nativeBuildInputs = [ cmake pkgconfig perl ];
|
||||||
buildInputs = [ zlib ];
|
buildInputs = [ zlib ]
|
||||||
|
++ stdenv.lib.optionals stdenv.isDarwin [
|
||||||
|
libiconv darwin.apple_sdk.frameworks.Security ]
|
||||||
|
;
|
||||||
|
|
||||||
# Some tests fail, but Travis ensures a proper build
|
# Some tests fail, but Travis ensures a proper build
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
name = "phraseapp-client-${version}";
|
name = "phraseapp-client-${version}";
|
||||||
version = "1.4.5";
|
version = "1.6.0";
|
||||||
|
|
||||||
goPackagePath = "github.com/phrase/phraseapp-client";
|
goPackagePath = "github.com/phrase/phraseapp-client";
|
||||||
subPackages = [ "." ];
|
subPackages = [ "." ];
|
||||||
@ -11,7 +11,7 @@ buildGoPackage rec {
|
|||||||
owner = "phrase";
|
owner = "phrase";
|
||||||
repo = "phraseapp-client";
|
repo = "phraseapp-client";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0zky7jcs7h6zmvkb0na4la6h7g63jlrziifqk831fd1gspdzgajp";
|
sha256 = "0rgwl0rgkci045hg36s0q8jwkni1hzapqpi0mc0gk3rl7nagw622";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
python2Packages.buildPythonApplication rec {
|
python2Packages.buildPythonApplication rec {
|
||||||
name = "s3cmd-${version}";
|
name = "s3cmd-${version}";
|
||||||
version = "1.6.1";
|
version = "2.0.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "s3tools";
|
owner = "s3tools";
|
||||||
repo = "s3cmd";
|
repo = "s3cmd";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0aan6v1qj0pdkddhhkbaky44d54irm1pa8mkn52i2j86nb2rkcf9";
|
sha256 = "198hzzplci57sb8hdan30nbakslawmijfw0j71wjvq85n3xn6qsl";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python2Packages; [ python_magic dateutil ];
|
propagatedBuildInputs = with python2Packages; [ python_magic dateutil ];
|
||||||
|
@ -7159,6 +7159,8 @@ with pkgs;
|
|||||||
|
|
||||||
red = callPackage ../development/interpreters/red { };
|
red = callPackage ../development/interpreters/red { };
|
||||||
|
|
||||||
|
regextester = callPackage ../applications/misc/regextester { };
|
||||||
|
|
||||||
regina = callPackage ../development/interpreters/regina { };
|
regina = callPackage ../development/interpreters/regina { };
|
||||||
|
|
||||||
inherit (ocamlPackages) reason;
|
inherit (ocamlPackages) reason;
|
||||||
@ -9117,6 +9119,7 @@ with pkgs;
|
|||||||
gnome-sharp = callPackage ../development/libraries/gnome-sharp {};
|
gnome-sharp = callPackage ../development/libraries/gnome-sharp {};
|
||||||
|
|
||||||
granite = callPackage ../development/libraries/granite { };
|
granite = callPackage ../development/libraries/granite { };
|
||||||
|
elementary-cmake-modules = callPackage ../development/libraries/elementary-cmake-modules { };
|
||||||
|
|
||||||
gtk2 = callPackage ../development/libraries/gtk+/2.x.nix {
|
gtk2 = callPackage ../development/libraries/gtk+/2.x.nix {
|
||||||
cupsSupport = config.gtk2.cups or stdenv.isLinux;
|
cupsSupport = config.gtk2.cups or stdenv.isLinux;
|
||||||
@ -10461,7 +10464,7 @@ with pkgs;
|
|||||||
ffmpeg = ffmpeg_2;
|
ffmpeg = ffmpeg_2;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkvtoolnix = callPackage ../applications/video/mkvtoolnix { };
|
mkvtoolnix = libsForQt5.callPackage ../applications/video/mkvtoolnix { };
|
||||||
|
|
||||||
mkvtoolnix-cli = callPackage ../applications/video/mkvtoolnix {
|
mkvtoolnix-cli = callPackage ../applications/video/mkvtoolnix {
|
||||||
withGUI = false;
|
withGUI = false;
|
||||||
@ -16533,6 +16536,8 @@ with pkgs;
|
|||||||
|
|
||||||
mm = callPackage ../applications/networking/instant-messengers/mm { };
|
mm = callPackage ../applications/networking/instant-messengers/mm { };
|
||||||
|
|
||||||
|
mpc-qt = libsForQt5.callPackage ../applications/video/mpc-qt { };
|
||||||
|
|
||||||
mplayer = callPackage ../applications/video/mplayer ({
|
mplayer = callPackage ../applications/video/mplayer ({
|
||||||
pulseSupport = config.pulseaudio or false;
|
pulseSupport = config.pulseaudio or false;
|
||||||
libdvdnav = libdvdnav_4_2_1;
|
libdvdnav = libdvdnav_4_2_1;
|
||||||
|
@ -6004,6 +6004,8 @@ in {
|
|||||||
|
|
||||||
pyhomematic = callPackage ../development/python-modules/pyhomematic { };
|
pyhomematic = callPackage ../development/python-modules/pyhomematic { };
|
||||||
|
|
||||||
|
pylama = callPackage ../development/python-modules/pylama { };
|
||||||
|
|
||||||
pyphen = callPackage ../development/python-modules/pyphen {};
|
pyphen = callPackage ../development/python-modules/pyphen {};
|
||||||
|
|
||||||
pypoppler = buildPythonPackage rec {
|
pypoppler = buildPythonPackage rec {
|
||||||
@ -7556,6 +7558,8 @@ in {
|
|||||||
|
|
||||||
flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
|
flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
|
||||||
|
|
||||||
|
flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
|
||||||
|
|
||||||
flaky = buildPythonPackage rec {
|
flaky = buildPythonPackage rec {
|
||||||
name = "flaky-${version}";
|
name = "flaky-${version}";
|
||||||
version = "3.1.0";
|
version = "3.1.0";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user