mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-27 05:43:50 +03:00
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>";
|
||||
avnik = "Alexander V. Nikolaev <avn@avnik.info>";
|
||||
aycanirican = "Aycan iRiCAN <iricanaycan@gmail.com>";
|
||||
babariviere = "Bastien Riviere <babariviere@protonmail.com>";
|
||||
bachp = "Pascal Bach <pascal.bach@nextrem.ch>";
|
||||
backuitist = "Bruno Bieth";
|
||||
badi = "Badi' Abdul-Wahid <abdulwahidc@gmail.com>";
|
||||
@ -380,6 +381,7 @@
|
||||
ledif = "Adam Fidel <refuse@gmail.com>";
|
||||
leemachin = "Lee Machin <me@mrl.ee>";
|
||||
leenaars = "Michiel Leenaars <ml.software@leenaa.rs>";
|
||||
lejonet = "Daniel Kuehn <daniel@kuehn.se>";
|
||||
leonardoce = "Leonardo Cecchi <leonardo.cecchi@gmail.com>";
|
||||
lethalman = "Luca Bruno <lucabru@src.gnome.org>";
|
||||
lewo = "Antoine Eiche <lewo@abesis.fr>";
|
||||
|
@ -304,6 +304,7 @@
|
||||
mighttpd2 = 285;
|
||||
hass = 286;
|
||||
monero = 287;
|
||||
ceph = 288;
|
||||
|
||||
# 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;
|
||||
hass = 286;
|
||||
monero = 287;
|
||||
ceph = 288;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing
|
||||
# uid. Users and groups with the same name should have equal
|
||||
|
@ -439,6 +439,7 @@
|
||||
./services/network-filesystems/u9fs.nix
|
||||
./services/network-filesystems/yandex-disk.nix
|
||||
./services/network-filesystems/xtreemfs.nix
|
||||
./services/network-filesystems/ceph.nix
|
||||
./services/networking/amuled.nix
|
||||
./services/networking/aria2.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: {
|
||||
target = "systemd/network/${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
|
||||
|
||||
{
|
||||
|
@ -230,6 +230,7 @@ in rec {
|
||||
tests.borgbackup = callTest tests/borgbackup.nix {};
|
||||
tests.buildbot = callTest tests/buildbot.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.cjdns = callTest tests/cjdns.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 {
|
||||
name = "praat-${version}";
|
||||
version = "5.4.17";
|
||||
version = "6.0.37";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/praat/praat/archive/v${version}.tar.gz";
|
||||
sha256 = "0s2hrksghg686059vc90h3ywhd2702pqcvy99icw27q5mdk6dqsx";
|
||||
sha256 = "1c675jfzcrwfn8lcswm5y5kmazkhnb0p4mzlf5sim57hms88ffjq";
|
||||
};
|
||||
|
||||
configurePhase = ''
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, pkgconfig, qt4, alsaLib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.3.0";
|
||||
version = "0.4.0";
|
||||
name = "qmidiroute-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/alsamodular/QMidiRoute/${version}/${name}.tar.gz";
|
||||
sha256 = "11bfjz14z37v6hk2xyg4vrw423b5h3qgcbviv07g00ws1fgjygm2";
|
||||
sha256 = "0vmjwarsxr5540rafhmdcc62yarf0w2l05bjjl9s28zzr5m39z3n";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -3,12 +3,12 @@
|
||||
, liblo, liblrdf, libsamplerate, libsndfile, lirc ? null, qtbase }:
|
||||
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "17.04";
|
||||
version = "17.12.1";
|
||||
name = "rosegarden-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/rosegarden/${name}.tar.bz2";
|
||||
sha256 = "1khfcj22asdhjh0jvhkqsz200wgmigkhsrcz09ffia5hqm0n32lq";
|
||||
sha256 = "155kqbxg85wqv0w97cmmx8wq0r4xb3qpnk20lfma04vj8k6hc1mg";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
|
@ -29,7 +29,7 @@ mkDerivation rec {
|
||||
NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A free an open source painting application";
|
||||
description = "A free and open source painting application";
|
||||
homepage = https://krita.org/;
|
||||
maintainers = with maintainers; [ abbradar ];
|
||||
platforms = platforms.linux;
|
||||
|
@ -42,10 +42,8 @@ stdenv.mkDerivation rec {
|
||||
pythonPath = [ pygobject3 pyxdg ];
|
||||
|
||||
preConfigure = "./bootstrap";
|
||||
postFixup = ''
|
||||
wrapPythonPrograms
|
||||
rm "$out/share/icons/hicolor/icon-theme.cache"
|
||||
'';
|
||||
|
||||
postFixup = "wrapPythonPrograms";
|
||||
|
||||
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 {
|
||||
name = "${pname}-${version}";
|
||||
pname = "rssguard";
|
||||
version = "3.5.5";
|
||||
version = "3.5.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "martinrotter";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0swjh664y1yqr1rn3ym2kicyx7r97ypr4qf7qrjl4a5q1spzsv48";
|
||||
sha256 = "1pdas7hg3nzykm3qi951fk25c9s6gjb7my82b9xzjn2yd7ks71by";
|
||||
};
|
||||
|
||||
buildInputs = [ qtwebengine qttools ];
|
||||
nativeBuildInputs = [ qmake wrapGAppsHook ];
|
||||
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; {
|
||||
description = "Simple RSS/Atom feed reader with online synchronization";
|
||||
longDescription = ''
|
||||
|
@ -7,11 +7,11 @@
|
||||
|
||||
mkDerivation rec {
|
||||
name = "skrooge-${version}";
|
||||
version = "2.10.5";
|
||||
version = "2.11.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.kde.org/stable/skrooge/${name}.tar.xz";
|
||||
sha256 = "1c1yihypb6qgbzfcrw4ylqr9zivyba10xzvibrmfkrilxi6i582n";
|
||||
sha256 = "11ns0j3ss09aqd8snfzd52xf0cgsjjcgzalb031p7v17rn14yqaq";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "root-${version}";
|
||||
version = "6.10.08";
|
||||
version = "6.12.06";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
|
||||
sha256 = "12mddl6pqwwc9nr4jqzp6h1jm4zycazd3v88dz306m1nmk97dlic";
|
||||
sha256 = "1557b9sdragsx9i15qh6lq7fn056bgi87d31kxdl4vl0awigvp5f";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ fetchFromGitHub, lib, python2Packages, meld, subversion, gvfs, xdg_utils }:
|
||||
python2Packages.buildPythonApplication rec {
|
||||
name = "rabbitvcs-${version}";
|
||||
version = "0.16";
|
||||
version = "0.17.1";
|
||||
namePrefix = "";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rabbitvcs";
|
||||
repo = "rabbitvcs";
|
||||
rev = "v${version}";
|
||||
sha256 = "0964pdylrx4n9c9l8ncwv4q1p63y4hadb5v4pgvm0m2fah2jlkly";
|
||||
sha256 = "01cr16zf3gzsci1hhfli79m34fcx5m1pvswl16rkxxn212yc9fhy";
|
||||
};
|
||||
|
||||
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
|
||||
, 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
|
||||
, withGUI ? true
|
||||
, qtbase ? null
|
||||
, qtmultimedia ? null
|
||||
}:
|
||||
|
||||
assert withGUI -> qt5 != null;
|
||||
assert withGUI -> qtbase != null && qtmultimedia != null;
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mkvtoolnix-${version}";
|
||||
version = "20.0.0";
|
||||
version = "21.0.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "mbunkus";
|
||||
repo = "mkvtoolnix";
|
||||
rev = "release-${version}";
|
||||
sha256 = "0qrjvvp0pvw9i91rh0zrxpclq7xap2dpjip0s5bm4gv14gh4l4mc";
|
||||
owner = "mbunkus";
|
||||
repo = "mkvtoolnix";
|
||||
rev = "release-${version}";
|
||||
sha256 = "06nixp0qqa6g2fv40f7l0i0sqbc7qswpgq4534l98nan08wjbk2r";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig autoconf automake gettext drake ruby docbook_xsl libxslt ];
|
||||
nativeBuildInputs = [
|
||||
pkgconfig autoconf automake gettext
|
||||
drake ruby docbook_xsl libxslt
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
expat file xdg_utils boost libebml zlib libmatroska libogg
|
||||
libvorbis flac cmark
|
||||
]
|
||||
++ optional stdenv.isDarwin libiconv
|
||||
++ optionals withGUI [qt5.qtbase qt5.qtmultimedia];
|
||||
expat file xdg_utils boost libebml zlib
|
||||
libmatroska libogg libvorbis flac cmark
|
||||
] ++ optional stdenv.isDarwin libiconv
|
||||
++ optionals withGUI [ qtbase qtmultimedia ];
|
||||
|
||||
preConfigure = "./autogen.sh; patchShebangs .";
|
||||
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
|
||||
, yad, mkvtoolnix, libnotify }:
|
||||
, yad, mkvtoolnix-cli, libnotify }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "mpv-convert-script-2016-03-18.lua";
|
||||
@ -19,7 +19,7 @@ stdenv.mkDerivation {
|
||||
substituteInPlace convert_script.lua \
|
||||
${subs "NOTIFY_CMD" "notify-send" "${libnotify}/bin/notify-send"} \
|
||||
${subs "YAD_CMD" "yad" "${yad}/bin/yad"} \
|
||||
${subs "MKVMERGE_CMD" "mkvmerge" "${mkvtoolnix}/bin/mkvmerge"}
|
||||
${subs "MKVMERGE_CMD" "mkvmerge" "${mkvtoolnix-cli}/bin/mkvmerge"}
|
||||
'';
|
||||
|
||||
dontBuild = true;
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "remotebox-${version}";
|
||||
version = "2.2";
|
||||
version = "2.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://remotebox.knobgoblin.org.uk/downloads/RemoteBox-${version}.tar.bz2";
|
||||
sha256 = "0g7lx5zk9fk5k8alpag45z2zw9bnrlx1zfs63rc3ilfyvm4k4zc5";
|
||||
sha256 = "14zcpzpdb5gxkxvckcdwq3mfv8b18zirbdskzddhqxjddkzayckz";
|
||||
};
|
||||
|
||||
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}/
|
||||
|
||||
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
|
||||
'';
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
import ./generic.nix {
|
||||
major_version = "4";
|
||||
minor_version = "06";
|
||||
patch_version = "0";
|
||||
sha256 = "1dy542yfnnw10zvh5s9qzswliq11mg7l0bcyss3501qw3vwvadhj";
|
||||
patch_version = "1";
|
||||
sha256 = "1n3pygfssd6nkrq876wszm5nm3v4605q4k16a66h1nmq9wvf01vg";
|
||||
|
||||
# If the executable is stipped it does not work
|
||||
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
|
||||
# without this, tests fail with "Couldn't launch intero process"
|
||||
intero = overrideCabal super.intero (drv: {
|
||||
|
@ -343,8 +343,8 @@ in {
|
||||
};
|
||||
|
||||
php70 = generic {
|
||||
version = "7.0.27";
|
||||
sha256 = "0ca174kp2l3fjcp8z0mqnkbjfhijjzz7rs7bkzg1qk2cpdijbylr";
|
||||
version = "7.0.28";
|
||||
sha256 = "0zrw0saqlfv60f3nmff7288wqfhdsfiqns4ys3ii0drzc6s92m5f";
|
||||
};
|
||||
|
||||
php71 = generic {
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "catch-${version}";
|
||||
version = "1.11.0";
|
||||
version = "1.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "catchorg";
|
||||
repo = "Catch";
|
||||
rev = "v${version}";
|
||||
sha256 = "0v9yw7ydvhydp78hh7cmaif4h73k5qxqpm1g7xn8i882i3s84s2s";
|
||||
sha256 = "0hkcmycvyyazzi9dywnyiipnmbx399iirh5xk5g957c8zl0505kd";
|
||||
};
|
||||
|
||||
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.mkDerivation rec {
|
||||
name = "readosm-1.0.0b";
|
||||
name = "readosm-1.1.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.gaia-gis.it/gaia-sins/readosm-sources/${name}.tar.gz";
|
||||
sha256 = "042pv31smc7l6y111rvp0hza5sw86wa8ldg2jyq78xgwzcbhszpd";
|
||||
sha256 = "1v20pnda67imjd70fn0zw30aar525xicy3d3v49md5cvqklws265";
|
||||
};
|
||||
|
||||
buildInputs = [ expat zlib geos libspatialite ];
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchurl, ncurses, libiconv }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "stfl-0.22";
|
||||
name = "stfl-0.24";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.clifford.at/stfl/${name}.tar.gz";
|
||||
sha256 = "062lqlf3qhp8bcapbpc0k3wym7x6ngncql8jmx5x06p6679szp9d";
|
||||
sha256 = "1460d5lc780p3q38l3wc9jfr2a7zlyrcra0li65aynj738cam9yl";
|
||||
};
|
||||
|
||||
buildInputs = [ ncurses libiconv ];
|
||||
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
||||
DESTDIR=$out prefix=\"\" make install
|
||||
|
||||
# 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 = {
|
||||
|
@ -11,4 +11,5 @@
|
||||
, "pnpm"
|
||||
, "semver"
|
||||
, "sloc"
|
||||
, "npm"
|
||||
]
|
||||
|
@ -283,6 +283,15 @@ let
|
||||
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" = {
|
||||
name = "bitfield-rle";
|
||||
packageName = "bitfield-rle";
|
||||
@ -1768,13 +1777,13 @@ let
|
||||
sha512 = "2nbjxg0x7jsa14zhvx68w1vri68hsxzbxz7b7ap76fdp0jkrgna2rq636yxnax04f3f8i2ambj2fpan6qli6vixmfryz78vrapdip8n";
|
||||
};
|
||||
};
|
||||
"k-rpc-socket-1.7.2" = {
|
||||
"k-rpc-socket-1.8.0" = {
|
||||
name = "k-rpc-socket";
|
||||
packageName = "k-rpc-socket";
|
||||
version = "1.7.2";
|
||||
version = "1.8.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/k-rpc-socket/-/k-rpc-socket-1.7.2.tgz";
|
||||
sha512 = "02w1ih1lh86i5ap7c3dy2ml7g5a11r0w300iyxdf6v02qr0j1x3vf78hx5q9dgg3drifab018mgm851m457zzzi05i2z2r1s3zlflc3";
|
||||
url = "https://registry.npmjs.org/k-rpc-socket/-/k-rpc-socket-1.8.0.tgz";
|
||||
sha512 = "0pc9bjnmgfjcgh49lclvz5qnlkzypgirlx5ji2nx15vfn00gwczy5hvfahcxdzcdqsjlwh7q8jw4zj8abdk8qx2cwiqdw8fgg557zvz";
|
||||
};
|
||||
};
|
||||
"kind-of-3.2.2" = {
|
||||
@ -3514,8 +3523,12 @@ in
|
||||
sources."json-stringify-safe-5.0.1"
|
||||
sources."jsprim-1.4.1"
|
||||
sources."k-bucket-3.3.1"
|
||||
sources."k-rpc-4.2.1"
|
||||
sources."k-rpc-socket-1.7.2"
|
||||
(sources."k-rpc-4.2.1" // {
|
||||
dependencies = [
|
||||
sources."bencode-2.0.0"
|
||||
];
|
||||
})
|
||||
sources."k-rpc-socket-1.8.0"
|
||||
sources."kind-of-3.2.2"
|
||||
sources."last-one-wins-1.0.4"
|
||||
sources."length-prefixed-message-3.0.3"
|
||||
@ -4127,4 +4140,21 @@ in
|
||||
production = 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;
|
||||
};
|
||||
}
|
@ -1,26 +1,30 @@
|
||||
{ stdenv, fetchFromGitHub, ocaml, findlib, jbuilder, easy-format }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.2.0";
|
||||
name = "ocaml${ocaml.version}-biniou-${version}";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mjambon";
|
||||
repo = "biniou";
|
||||
rev = "v${version}";
|
||||
sha256 = "0mjpgwyfq2b2izjw0flmlpvdjgqpq8shs89hxj1np2r50csr8dcb";
|
||||
};
|
||||
version = "1.2.0";
|
||||
name = "ocaml${ocaml.version}-biniou-${version}";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mjambon";
|
||||
repo = "biniou";
|
||||
rev = "v${version}";
|
||||
sha256 = "0mjpgwyfq2b2izjw0flmlpvdjgqpq8shs89hxj1np2r50csr8dcb";
|
||||
};
|
||||
|
||||
buildInputs = [ ocaml findlib jbuilder ];
|
||||
buildInputs = [ ocaml findlib jbuilder ];
|
||||
|
||||
propagatedBuildInputs = [ easy-format ];
|
||||
propagatedBuildInputs = [ easy-format ];
|
||||
|
||||
inherit (jbuilder) installPhase;
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
meta = {
|
||||
inherit (src.meta) homepage;
|
||||
inherit (ocaml.meta) platforms;
|
||||
description = "Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve";
|
||||
maintainers = [ stdenv.lib.maintainers.vbgl ];
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
};
|
||||
inherit (jbuilder) installPhase;
|
||||
|
||||
meta = {
|
||||
inherit (src.meta) homepage;
|
||||
inherit (ocaml.meta) platforms;
|
||||
description = "Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve";
|
||||
maintainers = [ stdenv.lib.maintainers.vbgl ];
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
};
|
||||
}
|
||||
|
@ -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 {
|
||||
pname = "jsonrpc-async";
|
||||
version = "0.6";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
|
@ -3,7 +3,6 @@
|
||||
buildPythonPackage rec {
|
||||
pname = "jsonrpc-base";
|
||||
version = "1.0";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
|
@ -4,7 +4,6 @@
|
||||
buildPythonPackage rec {
|
||||
pname = "jsonrpc-websocket";
|
||||
version = "0.5";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
|
@ -1,20 +1,30 @@
|
||||
{ stdenv, buildPythonPackage, fetchPypi, snowballstemmer, configparser,
|
||||
pytest, pytestpep8, mock, pathlib }:
|
||||
{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, pythonOlder
|
||||
, snowballstemmer, six, configparser
|
||||
, pytest, pytestpep8, mock, pathlib }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pydocstyle";
|
||||
version = "2.1.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "15ssv8l6cvrmzgwcdzw76rnl4np3qf0dbwr1wsx76y0hc7lwsnsd";
|
||||
# no tests on PyPI
|
||||
# https://github.com/PyCQA/pydocstyle/issues/302
|
||||
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";
|
||||
homepage = https://github.com/PyCQA/pydocstyle/;
|
||||
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 ];
|
||||
|
||||
propagatedBuildInputs = [ astroid configparser isort ];
|
||||
propagatedBuildInputs = [ astroid configparser isort mccabe ];
|
||||
|
||||
postPatch = ''
|
||||
# Remove broken darwin tests
|
||||
|
@ -4,7 +4,6 @@
|
||||
buildPythonPackage rec {
|
||||
pname = "pyunifi";
|
||||
version = "2.13";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
|
@ -3,7 +3,6 @@
|
||||
buildPythonPackage rec {
|
||||
pname = "wakeonlan";
|
||||
version = "1.0.0";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
|
@ -139,8 +139,9 @@ in
|
||||
};
|
||||
|
||||
grpc = attrs: {
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ openssl ];
|
||||
NIX_CFLAGS_COMPILE = [ "-Wno-error=stringop-overflow" "-Wno-error=implicit-fallthrough" ];
|
||||
};
|
||||
|
||||
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
|
||||
|
||||
patches = [ ./ignore_wrapper.patch ];
|
||||
patches = [ ./ignore_wrapper.patch ./cmakepaths.patch ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Tool that generates a compilation database for clang tooling";
|
||||
@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = https://github.com/rizsotto/Bear;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.vcunat ];
|
||||
maintainers = [ maintainers.vcunat maintainers.babariviere ];
|
||||
};
|
||||
}
|
||||
|
@ -1,20 +1,24 @@
|
||||
{ lib
|
||||
, fetchurl
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
}:
|
||||
|
||||
with rustPlatform;
|
||||
|
||||
buildRustPackage rec {
|
||||
version = "0.19.1";
|
||||
version = "unstable-2018-02-24";
|
||||
name = "geckodriver-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/mozilla/geckodriver/archive/v${version}.tar.gz";
|
||||
sha256 = "04zpv4aiwbig466yj24hhazl5hrapkyvwlhvg0za5599ykzdv47m";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozilla";
|
||||
repo = "gecko-dev";
|
||||
rev = "ecb86060b4c5a9808798b81a57e79e821bb47082";
|
||||
sha256 = "1am84a60adw0bb12rlhdqbiwyywhza4qp5sf4f4fmssjl2qcr6nl";
|
||||
};
|
||||
|
||||
cargoSha256 = "1cny8caqcd9p98hra1k7y4d3lb8sxsyaplr0svbwam0d2qc1c257";
|
||||
sourceRoot = "${src.name}/testing/geckodriver";
|
||||
|
||||
cargoSha256 = "0dvcvdb623jla29i93glx20nf8pbpfw6jj548ii6brzkcpafxxm8";
|
||||
|
||||
meta = with lib; {
|
||||
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 {
|
||||
name = "ccache-${version}";
|
||||
version = "3.3.5";
|
||||
version = "3.4.1";
|
||||
|
||||
src = fetchurl {
|
||||
sha256 = "1iih5d171rq29366c1z90dri2h8173yyc8rm2740wxiqx6k7c18r";
|
||||
sha256 = "1pppi4jbkkj641cdynmc35jaj40jjicw7gj75ran5qs5886jcblc";
|
||||
url = "mirror://samba/ccache/${name}.tar.xz";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
|
||||
buildInputs = [ zlib ];
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
# 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 = ''
|
||||
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
|
||||
+++ b/test.sh
|
||||
@@ -2669,23 +2669,6 @@ SUITE_cleanup() {
|
||||
--- a/test/suites/cleanup.bash
|
||||
+++ b/test/suites/cleanup.bash
|
||||
@@ -94,23 +94,6 @@
|
||||
|
||||
$CCACHE -F 0 -M 256K >/dev/null
|
||||
CCACHE_LOGFILE=/tmp/foo $CCACHE -c >/dev/null
|
||||
|
@ -6,11 +6,11 @@ with stdenv.lib;
|
||||
stdenv.mkDerivation rec{
|
||||
|
||||
name = "freecell-solver-${version}";
|
||||
version = "4.8.0";
|
||||
version = "4.16.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://fc-solve.shlomifish.org/downloads/fc-solve/${name}.tar.xz";
|
||||
sha256 = "0274l1p71ps222i62whqfkg80fcc8m4w2hmpbrbbd5gh8kfpman3";
|
||||
sha256 = "1ihrmxbsli7c1lm5gw9xgrakyn4nsmaj1zgk5gza2ywnfpgdb0ac";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pioneer-${version}";
|
||||
version = "20171001";
|
||||
version = "20180203";
|
||||
|
||||
src = fetchFromGitHub{
|
||||
owner = "pioneerspacesim";
|
||||
repo = "pioneer";
|
||||
rev = version;
|
||||
sha256 = "0yxw1zdvidrwc28vxfi3qpx2nq2dix2d6ylwgzq9ph8kgwv9fl5n";
|
||||
sha256 = "0hp2mf36kj2v93hka8m8lxw2qhmnjc62wjlpw7c7ix0r8xa01i6h";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoconf automake pkgconfig ];
|
||||
|
@ -3,11 +3,11 @@
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${project}-${version}";
|
||||
project = "rocksndiamonds";
|
||||
version = "4.0.0.2";
|
||||
version = "4.0.1.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.artsoft.org/RELEASES/unix/${project}/${name}.tar.gz";
|
||||
sha256 = "0dzn6vlayvnkjm64zwva337rn07lc21kq93m2h8zz8j3wpl11pb4";
|
||||
sha256 = "0f2m29m53sngg2kv4km91nxbr53rzhchbpqx5dzrv3p5hq1hp936";
|
||||
};
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "tp_smapi-${version}-${kernel.version}";
|
||||
version = "unstable-2017-12-04";
|
||||
version = "0.43";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "evgeni";
|
||||
repo = "tp_smapi";
|
||||
rev = "76c5120f7be4880cf2c6801f872327e4e70c449f";
|
||||
sha256 = "0g8l7rmylspl17qnqpa2h4yj7h3zvy6xlmj5nlnixds9avnbz2vy";
|
||||
rev = "tp-smapi/${version}";
|
||||
sha256 = "1rjb0njckczc2mj05cagvj0lkyvmyk6bw7wkiinv81lw8m90g77g";
|
||||
name = "tp-smapi-${version}";
|
||||
};
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "radarr-${version}";
|
||||
version = "0.2.0.910";
|
||||
version = "0.2.0.980";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Radarr/Radarr/releases/download/v${version}/Radarr.develop.${version}.linux.tar.gz";
|
||||
sha256 = "0c4msk6hvlqyy81xkjhsvsy4igpc01s4a00zwhqnds2gj4y9yplk";
|
||||
sha256 = "1939mmlp9hsmw0hd4c8m8p5fk6igvml30gk9ffi9mfhankas6fnf";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
@ -49,6 +49,7 @@ self = stdenv.mkDerivation rec {
|
||||
"-DINSTALL_SHAREDIR=share/mysql"
|
||||
];
|
||||
|
||||
CXXFLAGS = "-fpermissive";
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
|
||||
|
||||
prePatch = ''
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pgroonga-${version}";
|
||||
version = "1.1.9";
|
||||
version = "2.0.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://packages.groonga.org/source/pgroonga/${name}.tar.gz";
|
||||
sha256 = "07afgwll8nxfb7ziw3qrvw0ryjjw3994vj2f6alrjwpg7ynb46ag";
|
||||
sha256 = "0023747i2x3j50z54l78maq7dya5ldd2sdydn6l5l7k6b6g4yr2d";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -1,12 +1,12 @@
|
||||
{stdenv, fetchurl, libaal}:
|
||||
|
||||
let version = "1.1.0"; in
|
||||
let version = "1.2.1"; in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "reiser4progs-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/reiser4/reiser4-utils/${name}.tar.gz";
|
||||
sha256 = "18bgv0wd75q53642x5dsk4g0mil1hw1zrp7a4xkb0pxx4bzjlbqg";
|
||||
sha256 = "03vdqvpyd48wxrpqpb9kg76giaffw9b8k334kr4wc0zxgybknhl7";
|
||||
};
|
||||
|
||||
buildInputs = [libaal];
|
||||
|
@ -3,10 +3,10 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "scanbd-${version}";
|
||||
version = "1.4.4";
|
||||
version = "1.5.1";
|
||||
|
||||
src = fetchurl {
|
||||
sha256 = "07a59jk9b2hh49v5lcpckp64f5lny9sq8h0h2p2jcs9cqazf6q9s";
|
||||
sha256 = "0pvy4qirfjdfm8aj6x5rkbgl7hk3jfa2s21qkk8ic5dqfjjab75n";
|
||||
url = "mirror://sourceforge/scanbd/${name}.tgz";
|
||||
};
|
||||
|
||||
|
@ -2,23 +2,23 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
name = "esptool-${version}";
|
||||
version = "2.1";
|
||||
version = "2.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "espressif";
|
||||
repo = "esptool";
|
||||
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 ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "ESP8266 and ESP32 serial bootloader utility";
|
||||
homepage = https://github.com/espressif/esptool;
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.dezgeg ];
|
||||
maintainers = with maintainers; [ dezgeg dotlambda ];
|
||||
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;
|
||||
|
||||
@ -16,7 +18,10 @@ buildRustPackage rec {
|
||||
};
|
||||
|
||||
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
|
||||
doCheck = false;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
name = "phraseapp-client-${version}";
|
||||
version = "1.4.5";
|
||||
version = "1.6.0";
|
||||
|
||||
goPackagePath = "github.com/phrase/phraseapp-client";
|
||||
subPackages = [ "." ];
|
||||
@ -11,7 +11,7 @@ buildGoPackage rec {
|
||||
owner = "phrase";
|
||||
repo = "phraseapp-client";
|
||||
rev = version;
|
||||
sha256 = "0zky7jcs7h6zmvkb0na4la6h7g63jlrziifqk831fd1gspdzgajp";
|
||||
sha256 = "0rgwl0rgkci045hg36s0q8jwkni1hzapqpi0mc0gk3rl7nagw622";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
python2Packages.buildPythonApplication rec {
|
||||
name = "s3cmd-${version}";
|
||||
version = "1.6.1";
|
||||
version = "2.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "s3tools";
|
||||
repo = "s3cmd";
|
||||
rev = "v${version}";
|
||||
sha256 = "0aan6v1qj0pdkddhhkbaky44d54irm1pa8mkn52i2j86nb2rkcf9";
|
||||
sha256 = "198hzzplci57sb8hdan30nbakslawmijfw0j71wjvq85n3xn6qsl";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python2Packages; [ python_magic dateutil ];
|
||||
|
@ -7159,6 +7159,8 @@ with pkgs;
|
||||
|
||||
red = callPackage ../development/interpreters/red { };
|
||||
|
||||
regextester = callPackage ../applications/misc/regextester { };
|
||||
|
||||
regina = callPackage ../development/interpreters/regina { };
|
||||
|
||||
inherit (ocamlPackages) reason;
|
||||
@ -9117,6 +9119,7 @@ with pkgs;
|
||||
gnome-sharp = callPackage ../development/libraries/gnome-sharp {};
|
||||
|
||||
granite = callPackage ../development/libraries/granite { };
|
||||
elementary-cmake-modules = callPackage ../development/libraries/elementary-cmake-modules { };
|
||||
|
||||
gtk2 = callPackage ../development/libraries/gtk+/2.x.nix {
|
||||
cupsSupport = config.gtk2.cups or stdenv.isLinux;
|
||||
@ -10461,7 +10464,7 @@ with pkgs;
|
||||
ffmpeg = ffmpeg_2;
|
||||
};
|
||||
|
||||
mkvtoolnix = callPackage ../applications/video/mkvtoolnix { };
|
||||
mkvtoolnix = libsForQt5.callPackage ../applications/video/mkvtoolnix { };
|
||||
|
||||
mkvtoolnix-cli = callPackage ../applications/video/mkvtoolnix {
|
||||
withGUI = false;
|
||||
@ -16533,6 +16536,8 @@ with pkgs;
|
||||
|
||||
mm = callPackage ../applications/networking/instant-messengers/mm { };
|
||||
|
||||
mpc-qt = libsForQt5.callPackage ../applications/video/mpc-qt { };
|
||||
|
||||
mplayer = callPackage ../applications/video/mplayer ({
|
||||
pulseSupport = config.pulseaudio or false;
|
||||
libdvdnav = libdvdnav_4_2_1;
|
||||
|
@ -6004,6 +6004,8 @@ in {
|
||||
|
||||
pyhomematic = callPackage ../development/python-modules/pyhomematic { };
|
||||
|
||||
pylama = callPackage ../development/python-modules/pylama { };
|
||||
|
||||
pyphen = callPackage ../development/python-modules/pyphen {};
|
||||
|
||||
pypoppler = buildPythonPackage rec {
|
||||
@ -7556,6 +7558,8 @@ in {
|
||||
|
||||
flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
|
||||
|
||||
flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
|
||||
|
||||
flaky = buildPythonPackage rec {
|
||||
name = "flaky-${version}";
|
||||
version = "3.1.0";
|
||||
|
Loading…
Reference in New Issue
Block a user