Merge remote-tracking branch 'upstream/master' into HEAD

+947 -141
+2
lib/maintainers.nix
··· 71 71 auntie = "Jonathan Glines <auntieNeo@gmail.com>"; 72 72 avnik = "Alexander V. Nikolaev <avn@avnik.info>"; 73 73 aycanirican = "Aycan iRiCAN <iricanaycan@gmail.com>"; 74 + babariviere = "Bastien Riviere <babariviere@protonmail.com>"; 74 75 bachp = "Pascal Bach <pascal.bach@nextrem.ch>"; 75 76 backuitist = "Bruno Bieth"; 76 77 badi = "Badi' Abdul-Wahid <abdulwahidc@gmail.com>"; ··· 380 381 ledif = "Adam Fidel <refuse@gmail.com>"; 381 382 leemachin = "Lee Machin <me@mrl.ee>"; 382 383 leenaars = "Michiel Leenaars <ml.software@leenaa.rs>"; 384 + lejonet = "Daniel Kuehn <daniel@kuehn.se>"; 383 385 leonardoce = "Leonardo Cecchi <leonardo.cecchi@gmail.com>"; 384 386 lethalman = "Luca Bruno <lucabru@src.gnome.org>"; 385 387 lewo = "Antoine Eiche <lewo@abesis.fr>";
+2
nixos/modules/misc/ids.nix
··· 304 304 mighttpd2 = 285; 305 305 hass = 286; 306 306 monero = 287; 307 + ceph = 288; 307 308 308 309 # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! 309 310 ··· 576 577 mighttpd2 = 285; 577 578 hass = 286; 578 579 monero = 287; 580 + ceph = 288; 579 581 580 582 # When adding a gid, make sure it doesn't match an existing 581 583 # uid. Users and groups with the same name should have equal
+1
nixos/modules/module-list.nix
··· 439 439 ./services/network-filesystems/u9fs.nix 440 440 ./services/network-filesystems/yandex-disk.nix 441 441 ./services/network-filesystems/xtreemfs.nix 442 + ./services/network-filesystems/ceph.nix 442 443 ./services/networking/amuled.nix 443 444 ./services/networking/aria2.nix 444 445 ./services/networking/asterisk.nix
+371
nixos/modules/services/network-filesystems/ceph.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + ceph = pkgs.ceph; 7 + cfg = config.services.ceph; 8 + # function that translates "camelCaseOptions" to "camel case options", credits to tilpner in #nixos@freenode 9 + translateOption = replaceStrings upperChars (map (s: " ${s}") lowerChars); 10 + generateDaemonList = (daemonType: daemons: extraServiceConfig: 11 + mkMerge ( 12 + map (daemon: 13 + { "ceph-${daemonType}-${daemon}" = generateServiceFile daemonType daemon cfg.global.clusterName ceph extraServiceConfig; } 14 + ) daemons 15 + ) 16 + ); 17 + generateServiceFile = (daemonType: daemonId: clusterName: ceph: extraServiceConfig: { 18 + enable = true; 19 + description = "Ceph ${builtins.replaceStrings lowerChars upperChars daemonType} daemon ${daemonId}"; 20 + after = [ "network-online.target" "local-fs.target" "time-sync.target" ] ++ optional (daemonType == "osd") "ceph-mon.target"; 21 + wants = [ "network-online.target" "local-fs.target" "time-sync.target" ]; 22 + partOf = [ "ceph-${daemonType}.target" ]; 23 + wantedBy = [ "ceph-${daemonType}.target" ]; 24 + 25 + serviceConfig = { 26 + LimitNOFILE = 1048576; 27 + LimitNPROC = 1048576; 28 + Environment = "CLUSTER=${clusterName}"; 29 + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; 30 + PrivateDevices = "yes"; 31 + PrivateTmp = "true"; 32 + ProtectHome = "true"; 33 + ProtectSystem = "full"; 34 + Restart = "on-failure"; 35 + StartLimitBurst = "5"; 36 + StartLimitInterval = "30min"; 37 + 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"; 38 + } // extraServiceConfig 39 + // optionalAttrs (daemonType == "osd") { ExecStartPre = "${ceph.out}/libexec/ceph/ceph-osd-prestart.sh --id ${daemonId} --cluster ${clusterName}"; }; 40 + } // optionalAttrs (builtins.elem daemonType [ "mds" "mon" "rgw" "mgr" ]) { preStart = '' 41 + daemonPath="/var/lib/ceph/${if daemonType == "rgw" then "radosgw" else daemonType}/${clusterName}-${daemonId}" 42 + if [ ! -d ''$daemonPath ]; then 43 + mkdir -m 755 -p ''$daemonPath 44 + chown -R ceph:ceph ''$daemonPath 45 + fi 46 + ''; 47 + } // optionalAttrs (daemonType == "osd") { path = [ pkgs.getopt ]; } 48 + ); 49 + generateTargetFile = (daemonType: 50 + { 51 + "ceph-${daemonType}" = { 52 + description = "Ceph target allowing to start/stop all ceph-${daemonType} services at once"; 53 + partOf = [ "ceph.target" ]; 54 + before = [ "ceph.target" ]; 55 + }; 56 + } 57 + ); 58 + in 59 + { 60 + options.services.ceph = { 61 + # Ceph has a monolithic configuration file but different sections for 62 + # each daemon, a separate client section and a global section 63 + enable = mkEnableOption "Ceph global configuration"; 64 + 65 + global = { 66 + fsid = mkOption { 67 + type = types.str; 68 + example = '' 69 + 433a2193-4f8a-47a0-95d2-209d7ca2cca5 70 + ''; 71 + description = '' 72 + Filesystem ID, a generated uuid, its must be generated and set before 73 + attempting to start a cluster 74 + ''; 75 + }; 76 + 77 + clusterName = mkOption { 78 + type = types.str; 79 + default = "ceph"; 80 + description = '' 81 + Name of cluster 82 + ''; 83 + }; 84 + 85 + monInitialMembers = mkOption { 86 + type = with types; nullOr commas; 87 + default = null; 88 + example = '' 89 + node0, node1, node2 90 + ''; 91 + description = '' 92 + List of hosts that will be used as monitors at startup. 93 + ''; 94 + }; 95 + 96 + monHost = mkOption { 97 + type = with types; nullOr commas; 98 + default = null; 99 + example = '' 100 + 10.10.0.1, 10.10.0.2, 10.10.0.3 101 + ''; 102 + description = '' 103 + List of hostname shortnames/IP addresses of the initial monitors. 104 + ''; 105 + }; 106 + 107 + maxOpenFiles = mkOption { 108 + type = types.int; 109 + default = 131072; 110 + description = '' 111 + Max open files for each OSD daemon. 112 + ''; 113 + }; 114 + 115 + authClusterRequired = mkOption { 116 + type = types.enum [ "cephx" "none" ]; 117 + default = "cephx"; 118 + description = '' 119 + Enables requiring daemons to authenticate with eachother in the cluster. 120 + ''; 121 + }; 122 + 123 + authServiceRequired = mkOption { 124 + type = types.enum [ "cephx" "none" ]; 125 + default = "cephx"; 126 + description = '' 127 + Enables requiring clients to authenticate with the cluster to access services in the cluster (e.g. radosgw, mds or osd). 128 + ''; 129 + }; 130 + 131 + authClientRequired = mkOption { 132 + type = types.enum [ "cephx" "none" ]; 133 + default = "cephx"; 134 + description = '' 135 + Enables requiring the cluster to authenticate itself to the client. 136 + ''; 137 + }; 138 + 139 + publicNetwork = mkOption { 140 + type = with types; nullOr commas; 141 + default = null; 142 + example = '' 143 + 10.20.0.0/24, 192.168.1.0/24 144 + ''; 145 + description = '' 146 + A comma-separated list of subnets that will be used as public networks in the cluster. 147 + ''; 148 + }; 149 + 150 + clusterNetwork = mkOption { 151 + type = with types; nullOr commas; 152 + default = null; 153 + example = '' 154 + 10.10.0.0/24, 192.168.0.0/24 155 + ''; 156 + description = '' 157 + A comma-separated list of subnets that will be used as cluster networks in the cluster. 158 + ''; 159 + }; 160 + }; 161 + 162 + mgr = { 163 + enable = mkEnableOption "Ceph MGR daemon"; 164 + daemons = mkOption { 165 + type = with types; listOf str; 166 + default = []; 167 + example = '' 168 + [ "name1" "name2" ]; 169 + ''; 170 + description = '' 171 + A list of names for manager daemons that should have a service created. The names correspond 172 + to the id part in ceph i.e. [ "name1" ] would result in mgr.name1 173 + ''; 174 + }; 175 + extraConfig = mkOption { 176 + type = with types; attrsOf str; 177 + default = {}; 178 + description = '' 179 + Extra configuration to add to the global section for manager daemons. 180 + ''; 181 + }; 182 + }; 183 + 184 + mon = { 185 + enable = mkEnableOption "Ceph MON daemon"; 186 + daemons = mkOption { 187 + type = with types; listOf str; 188 + default = []; 189 + example = '' 190 + [ "name1" "name2" ]; 191 + ''; 192 + description = '' 193 + A list of monitor daemons that should have a service created. The names correspond 194 + to the id part in ceph i.e. [ "name1" ] would result in mon.name1 195 + ''; 196 + }; 197 + extraConfig = mkOption { 198 + type = with types; attrsOf str; 199 + default = {}; 200 + description = '' 201 + Extra configuration to add to the monitor section. 202 + ''; 203 + }; 204 + }; 205 + 206 + osd = { 207 + enable = mkEnableOption "Ceph OSD daemon"; 208 + daemons = mkOption { 209 + type = with types; listOf str; 210 + default = []; 211 + example = '' 212 + [ "name1" "name2" ]; 213 + ''; 214 + description = '' 215 + A list of OSD daemons that should have a service created. The names correspond 216 + to the id part in ceph i.e. [ "name1" ] would result in osd.name1 217 + ''; 218 + }; 219 + extraConfig = mkOption { 220 + type = with types; attrsOf str; 221 + default = { 222 + "osd journal size" = "10000"; 223 + "osd pool default size" = "3"; 224 + "osd pool default min size" = "2"; 225 + "osd pool default pg num" = "200"; 226 + "osd pool default pgp num" = "200"; 227 + "osd crush chooseleaf type" = "1"; 228 + }; 229 + description = '' 230 + Extra configuration to add to the OSD section. 231 + ''; 232 + }; 233 + }; 234 + 235 + mds = { 236 + enable = mkEnableOption "Ceph MDS daemon"; 237 + daemons = mkOption { 238 + type = with types; listOf str; 239 + default = []; 240 + example = '' 241 + [ "name1" "name2" ]; 242 + ''; 243 + description = '' 244 + A list of metadata service daemons that should have a service created. The names correspond 245 + to the id part in ceph i.e. [ "name1" ] would result in mds.name1 246 + ''; 247 + }; 248 + extraConfig = mkOption { 249 + type = with types; attrsOf str; 250 + default = {}; 251 + description = '' 252 + Extra configuration to add to the MDS section. 253 + ''; 254 + }; 255 + }; 256 + 257 + rgw = { 258 + enable = mkEnableOption "Ceph RadosGW daemon"; 259 + daemons = mkOption { 260 + type = with types; listOf str; 261 + default = []; 262 + example = '' 263 + [ "name1" "name2" ]; 264 + ''; 265 + description = '' 266 + A list of rados gateway daemons that should have a service created. The names correspond 267 + to the id part in ceph i.e. [ "name1" ] would result in client.name1, radosgw daemons 268 + aren't daemons to cluster in the sense that OSD, MGR or MON daemons are. They are simply 269 + daemons, from ceph, that uses the cluster as a backend. 270 + ''; 271 + }; 272 + }; 273 + 274 + client = { 275 + enable = mkEnableOption "Ceph client configuration"; 276 + extraConfig = mkOption { 277 + type = with types; attrsOf str; 278 + default = {}; 279 + example = '' 280 + { 281 + # This would create a section for a radosgw daemon named node0 and related 282 + # configuration for it 283 + "client.radosgw.node0" = { "some config option" = "true"; }; 284 + }; 285 + ''; 286 + description = '' 287 + Extra configuration to add to the client section. Configuration for rados gateways 288 + would be added here, with their own sections, see example. 289 + ''; 290 + }; 291 + }; 292 + }; 293 + 294 + config = mkIf config.services.ceph.enable { 295 + assertions = [ 296 + { assertion = cfg.global.fsid != ""; 297 + message = "fsid has to be set to a valid uuid for the cluster to function"; 298 + } 299 + { assertion = cfg.mgr.enable == true; 300 + message = "ceph 12.x requires atleast 1 MGR daemon enabled for the cluster to function"; 301 + } 302 + { assertion = cfg.mon.enable == true -> cfg.mon.daemons != []; 303 + message = "have to set id of atleast one MON if you're going to enable Monitor"; 304 + } 305 + { assertion = cfg.mds.enable == true -> cfg.mds.daemons != []; 306 + message = "have to set id of atleast one MDS if you're going to enable Metadata Service"; 307 + } 308 + { assertion = cfg.osd.enable == true -> cfg.osd.daemons != []; 309 + message = "have to set id of atleast one OSD if you're going to enable OSD"; 310 + } 311 + { assertion = cfg.mgr.enable == true -> cfg.mgr.daemons != []; 312 + message = "have to set id of atleast one MGR if you're going to enable MGR"; 313 + } 314 + ]; 315 + 316 + warnings = optional (cfg.global.monInitialMembers == null) 317 + ''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''; 318 + 319 + environment.etc."ceph/ceph.conf".text = let 320 + # Translate camelCaseOptions to the expected camel case option for ceph.conf 321 + translatedGlobalConfig = mapAttrs' (name: value: nameValuePair (translateOption name) value) cfg.global; 322 + # Merge the extraConfig set for mgr daemons, as mgr don't have their own section 323 + globalAndMgrConfig = translatedGlobalConfig // optionalAttrs cfg.mgr.enable cfg.mgr.extraConfig; 324 + # Remove all name-value pairs with null values from the attribute set to avoid making empty sections in the ceph.conf 325 + globalConfig = mapAttrs' (name: value: nameValuePair (translateOption name) value) (filterAttrs (name: value: value != null) globalAndMgrConfig); 326 + totalConfig = { 327 + "global" = globalConfig; 328 + } // optionalAttrs (cfg.mon.enable && cfg.mon.extraConfig != {}) { "mon" = cfg.mon.extraConfig; } 329 + // optionalAttrs (cfg.mds.enable && cfg.mds.extraConfig != {}) { "mds" = cfg.mds.extraConfig; } 330 + // optionalAttrs (cfg.osd.enable && cfg.osd.extraConfig != {}) { "osd" = cfg.osd.extraConfig; } 331 + // optionalAttrs (cfg.client.enable && cfg.client.extraConfig != {}) cfg.client.extraConfig; 332 + in 333 + generators.toINI {} totalConfig; 334 + 335 + users.extraUsers = singleton { 336 + name = "ceph"; 337 + uid = config.ids.uids.ceph; 338 + description = "Ceph daemon user"; 339 + }; 340 + 341 + users.extraGroups = singleton { 342 + name = "ceph"; 343 + gid = config.ids.gids.ceph; 344 + }; 345 + 346 + systemd.services = let 347 + services = [] 348 + ++ optional cfg.mon.enable (generateDaemonList "mon" cfg.mon.daemons { RestartSec = "10"; }) 349 + ++ optional cfg.mds.enable (generateDaemonList "mds" cfg.mds.daemons { StartLimitBurst = "3"; }) 350 + ++ optional cfg.osd.enable (generateDaemonList "osd" cfg.osd.daemons { StartLimitBurst = "30"; RestartSec = "20s"; }) 351 + ++ optional cfg.rgw.enable (generateDaemonList "rgw" cfg.rgw.daemons { }) 352 + ++ optional cfg.mgr.enable (generateDaemonList "mgr" cfg.mgr.daemons { StartLimitBurst = "3"; }); 353 + in 354 + mkMerge services; 355 + 356 + systemd.targets = let 357 + targets = [ 358 + { "ceph" = { description = "Ceph target allowing to start/stop all ceph service instances at once"; }; } 359 + ] ++ optional cfg.mon.enable (generateTargetFile "mon") 360 + ++ optional cfg.mds.enable (generateTargetFile "mds") 361 + ++ optional cfg.osd.enable (generateTargetFile "osd") 362 + ++ optional cfg.rgw.enable (generateTargetFile "rgw") 363 + ++ optional cfg.mgr.enable (generateTargetFile "mgr"); 364 + in 365 + mkMerge targets; 366 + 367 + systemd.tmpfiles.rules = [ 368 + "d /run/ceph 0770 ceph ceph -" 369 + ]; 370 + }; 371 + }
+5 -1
nixos/modules/system/boot/networkd.nix
··· 650 650 unitFiles = map (name: { 651 651 target = "systemd/network/${name}"; 652 652 source = "${cfg.units.${name}.unit}/${name}"; 653 - }) (attrNames cfg.units); 653 + }) (attrNames cfg.units) ++ 654 + (map (entry: { 655 + target = "systemd/network/${entry}"; 656 + source = "${config.systemd.package}/lib/systemd/network/${entry}"; 657 + }) (attrNames (builtins.readDir "${config.systemd.package}/lib/systemd/network"))); 654 658 in 655 659 656 660 {
+1
nixos/release.nix
··· 230 230 tests.borgbackup = callTest tests/borgbackup.nix {}; 231 231 tests.buildbot = callTest tests/buildbot.nix {}; 232 232 tests.cadvisor = callTestOnTheseSystems ["x86_64-linux"] tests/cadvisor.nix {}; 233 + tests.ceph = callTestOnTheseSystems ["x86_64-linux"] tests/ceph.nix {}; 233 234 tests.chromium = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/chromium.nix {}).stable; 234 235 tests.cjdns = callTest tests/cjdns.nix {}; 235 236 tests.cloud-init = callTest tests/cloud-init.nix {};
+140
nixos/tests/ceph.nix
··· 1 + import ./make-test.nix ({pkgs, ...}: rec { 2 + name = "All-in-one-basic-ceph-cluster"; 3 + meta = with pkgs.stdenv.lib.maintainers; { 4 + maintainers = [ lejonet ]; 5 + }; 6 + 7 + nodes = { 8 + aio = { config, pkgs, ... }: { 9 + virtualisation = { 10 + emptyDiskImages = [ 20480 20480 ]; 11 + vlans = [ 1 ]; 12 + }; 13 + 14 + networking = { 15 + firewall.allowPing = true; 16 + useDHCP = false; 17 + interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [ 18 + { address = "192.168.1.1"; prefixLength = 24; } 19 + ]; 20 + }; 21 + 22 + environment.systemPackages = with pkgs; [ 23 + bash 24 + sudo 25 + ceph 26 + xfsprogs 27 + ]; 28 + nixpkgs.config.packageOverrides = super: { 29 + ceph = super.ceph.override({ nss = super.nss; libxfs = super.libxfs; libaio = super.libaio; jemalloc = super.jemalloc; }); 30 + }; 31 + 32 + boot.kernelModules = [ "xfs" ]; 33 + 34 + services.ceph.enable = true; 35 + services.ceph.global = { 36 + fsid = "066ae264-2a5d-4729-8001-6ad265f50b03"; 37 + monInitialMembers = "aio"; 38 + monHost = "192.168.1.1"; 39 + }; 40 + 41 + services.ceph.mon = { 42 + enable = true; 43 + daemons = [ "aio" ]; 44 + }; 45 + 46 + services.ceph.mgr = { 47 + enable = true; 48 + daemons = [ "aio" ]; 49 + }; 50 + 51 + services.ceph.osd = { 52 + enable = true; 53 + daemons = [ "0" "1" ]; 54 + }; 55 + }; 56 + }; 57 + 58 + testScript = { nodes, ... }: '' 59 + startAll; 60 + 61 + $aio->waitForUnit("network.target"); 62 + 63 + # Create the ceph-related directories 64 + $aio->mustSucceed( 65 + "mkdir -p /var/lib/ceph/mgr/ceph-aio/", 66 + "mkdir -p /var/lib/ceph/mon/ceph-aio/", 67 + "mkdir -p /var/lib/ceph/osd/ceph-{0..1}/", 68 + "chown ceph:ceph -R /var/lib/ceph/" 69 + ); 70 + 71 + # Bootstrap ceph-mon daemon 72 + $aio->mustSucceed( 73 + "mkdir -p /var/lib/ceph/bootstrap-osd && chown ceph:ceph /var/lib/ceph/bootstrap-osd", 74 + "sudo -u ceph ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'", 75 + "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 *'", 76 + "ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring", 77 + "monmaptool --create --add aio 192.168.1.1 --fsid 066ae264-2a5d-4729-8001-6ad265f50b03 /tmp/monmap", 78 + "sudo -u ceph ceph-mon --mkfs -i aio --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring", 79 + "touch /var/lib/ceph/mon/ceph-aio/done", 80 + "systemctl start ceph-mon-aio" 81 + ); 82 + $aio->waitForUnit("ceph-mon-aio"); 83 + 84 + # Can't check ceph status until a mon is up 85 + $aio->succeed("ceph -s | grep 'mon: 1 daemons'"); 86 + 87 + # Start the ceph-mgr daemon, it has no deps and hardly any setup 88 + $aio->mustSucceed( 89 + "ceph auth get-or-create mgr.aio mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-aio/keyring", 90 + "systemctl start ceph-mgr-aio" 91 + ); 92 + $aio->waitForUnit("ceph-mgr-aio"); 93 + $aio->waitUntilSucceeds("ceph -s | grep 'quorum aio'"); 94 + 95 + # Bootstrap both OSDs 96 + $aio->mustSucceed( 97 + "mkfs.xfs /dev/vdb", 98 + "mkfs.xfs /dev/vdc", 99 + "mount /dev/vdb /var/lib/ceph/osd/ceph-0", 100 + "mount /dev/vdc /var/lib/ceph/osd/ceph-1", 101 + "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-0/keyring --name osd.0 --add-key AQBCEJNa3s8nHRAANvdsr93KqzBznuIWm2gOGg==", 102 + "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-1/keyring --name osd.1 --add-key AQBEEJNac00kExAAXEgy943BGyOpVH1LLlHafQ==", 103 + "echo '{\"cephx_secret\": \"AQBCEJNa3s8nHRAANvdsr93KqzBznuIWm2gOGg==\"}' | ceph osd new 55ba2294-3e24-478f-bee0-9dca4c231dd9 -i -", 104 + "echo '{\"cephx_secret\": \"AQBEEJNac00kExAAXEgy943BGyOpVH1LLlHafQ==\"}' | ceph osd new 5e97a838-85b6-43b0-8950-cb56d554d1e5 -i -" 105 + ); 106 + 107 + # Initialize the OSDs with regular filestore 108 + $aio->mustSucceed( 109 + "ceph-osd -i 0 --mkfs --osd-uuid 55ba2294-3e24-478f-bee0-9dca4c231dd9", 110 + "ceph-osd -i 1 --mkfs --osd-uuid 5e97a838-85b6-43b0-8950-cb56d554d1e5", 111 + "chown -R ceph:ceph /var/lib/ceph/osd", 112 + "systemctl start ceph-osd-0", 113 + "systemctl start ceph-osd-1" 114 + ); 115 + 116 + $aio->waitUntilSucceeds("ceph osd stat | grep '2 osds: 2 up, 2 in'"); 117 + $aio->waitUntilSucceeds("ceph -s | grep 'mgr: aio(active)'"); 118 + $aio->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'"); 119 + 120 + $aio->mustSucceed( 121 + "ceph osd pool create aio-test 100 100", 122 + "ceph osd pool ls | grep 'aio-test'", 123 + "ceph osd pool rename aio-test aio-other-test", 124 + "ceph osd pool ls | grep 'aio-other-test'", 125 + "ceph -s | grep '1 pools, 100 pgs'", 126 + "ceph osd getcrushmap -o crush", 127 + "crushtool -d crush -o decrushed", 128 + "sed 's/step chooseleaf firstn 0 type host/step chooseleaf firstn 0 type osd/' decrushed > modcrush", 129 + "crushtool -c modcrush -o recrushed", 130 + "ceph osd setcrushmap -i recrushed", 131 + "ceph osd pool set aio-other-test size 2" 132 + ); 133 + $aio->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'"); 134 + $aio->waitUntilSucceeds("ceph -s | grep '100 active+clean'"); 135 + $aio->mustFail( 136 + "ceph osd pool ls | grep 'aio-test'", 137 + "ceph osd pool delete aio-other-test aio-other-test --yes-i-really-really-mean-it" 138 + ); 139 + ''; 140 + })
+2 -2
pkgs/applications/audio/praat/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "praat-${version}"; 5 - version = "5.4.17"; 5 + version = "6.0.37"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/praat/praat/archive/v${version}.tar.gz"; 9 - sha256 = "0s2hrksghg686059vc90h3ywhd2702pqcvy99icw27q5mdk6dqsx"; 9 + sha256 = "1c675jfzcrwfn8lcswm5y5kmazkhnb0p4mzlf5sim57hms88ffjq"; 10 10 }; 11 11 12 12 configurePhase = ''
+2 -2
pkgs/applications/audio/qmidiroute/default.nix
··· 1 1 { stdenv, fetchurl, pkgconfig, qt4, alsaLib }: 2 2 3 3 stdenv.mkDerivation rec { 4 - version = "0.3.0"; 4 + version = "0.4.0"; 5 5 name = "qmidiroute-${version}"; 6 6 7 7 src = fetchurl { 8 8 url = "mirror://sourceforge/project/alsamodular/QMidiRoute/${version}/${name}.tar.gz"; 9 - sha256 = "11bfjz14z37v6hk2xyg4vrw423b5h3qgcbviv07g00ws1fgjygm2"; 9 + sha256 = "0vmjwarsxr5540rafhmdcc62yarf0w2l05bjjl9s28zzr5m39z3n"; 10 10 }; 11 11 12 12 nativeBuildInputs = [ pkgconfig ];
+2 -2
pkgs/applications/audio/rosegarden/default.nix
··· 3 3 , liblo, liblrdf, libsamplerate, libsndfile, lirc ? null, qtbase }: 4 4 5 5 stdenv.mkDerivation (rec { 6 - version = "17.04"; 6 + version = "17.12.1"; 7 7 name = "rosegarden-${version}"; 8 8 9 9 src = fetchurl { 10 10 url = "mirror://sourceforge/rosegarden/${name}.tar.bz2"; 11 - sha256 = "1khfcj22asdhjh0jvhkqsz200wgmigkhsrcz09ffia5hqm0n32lq"; 11 + sha256 = "155kqbxg85wqv0w97cmmx8wq0r4xb3qpnk20lfma04vj8k6hc1mg"; 12 12 }; 13 13 14 14 patchPhase = ''
+1 -1
pkgs/applications/graphics/krita/default.nix
··· 29 29 NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ]; 30 30 31 31 meta = with lib; { 32 - description = "A free an open source painting application"; 32 + description = "A free and open source painting application"; 33 33 homepage = https://krita.org/; 34 34 maintainers = with maintainers; [ abbradar ]; 35 35 platforms = platforms.linux;
+2 -4
pkgs/applications/misc/redshift/default.nix
··· 42 42 pythonPath = [ pygobject3 pyxdg ]; 43 43 44 44 preConfigure = "./bootstrap"; 45 - postFixup = '' 46 - wrapPythonPrograms 47 - rm "$out/share/icons/hicolor/icon-theme.cache" 48 - ''; 45 + 46 + postFixup = "wrapPythonPrograms"; 49 47 50 48 enableParallelBuilding = true; 51 49
+54
pkgs/applications/misc/regextester/default.nix
··· 1 + { stdenv 2 + , fetchFromGitHub 3 + , gettext 4 + , libxml2 5 + , pkgconfig 6 + , gtk3 7 + , granite 8 + , gnome3 9 + , cmake 10 + , ninja 11 + , vala 12 + , elementary-cmake-modules 13 + , wrapGAppsHook }: 14 + 15 + stdenv.mkDerivation rec { 16 + name = "regextester-${version}"; 17 + version = "0.1.7"; 18 + 19 + src = fetchFromGitHub { 20 + owner = "artemanufrij"; 21 + repo = "regextester"; 22 + rev = version; 23 + sha256 = "07shdm10dc7jz2hka5dc51yp81a0dgc47nmkrp6fs6r9wqx0j30n"; 24 + }; 25 + 26 + XDG_DATA_DIRS = stdenv.lib.concatStringsSep ":" [ 27 + "${granite}/share" 28 + "${gnome3.libgee}/share" 29 + ]; 30 + 31 + nativeBuildInputs = [ 32 + pkgconfig 33 + wrapGAppsHook 34 + vala 35 + cmake 36 + ninja 37 + gettext 38 + libxml2 39 + elementary-cmake-modules 40 + ]; 41 + buildInputs = [ 42 + gtk3 43 + granite 44 + gnome3.libgee 45 + ]; 46 + 47 + meta = with stdenv.lib; { 48 + description = "A desktop application to test regular expressions interactively"; 49 + homepage = https://github.com/artemanufrij/regextester; 50 + maintainers = with maintainers; [ samdroid-apps ]; 51 + platforms = platforms.linux; 52 + license = licenses.gpl2Plus; 53 + }; 54 + }
+2 -8
pkgs/applications/networking/feedreaders/rssguard/default.nix
··· 3 3 stdenv.mkDerivation rec { 4 4 name = "${pname}-${version}"; 5 5 pname = "rssguard"; 6 - version = "3.5.5"; 6 + version = "3.5.6"; 7 7 8 8 src = fetchFromGitHub { 9 9 owner = "martinrotter"; 10 10 repo = pname; 11 11 rev = version; 12 - sha256 = "0swjh664y1yqr1rn3ym2kicyx7r97ypr4qf7qrjl4a5q1spzsv48"; 12 + sha256 = "1pdas7hg3nzykm3qi951fk25c9s6gjb7my82b9xzjn2yd7ks71by"; 13 13 }; 14 14 15 15 buildInputs = [ qtwebengine qttools ]; 16 16 nativeBuildInputs = [ qmake wrapGAppsHook ]; 17 17 qmakeFlags = [ "CONFIG+=release" ]; 18 - 19 - # FIXME: This shouldn't be needed after 3.5.5. 20 - # See: https://github.com/martinrotter/rssguard/issues/175 21 - preConfigure = '' 22 - lrelease rssguard.pro 23 - ''; 24 18 25 19 meta = with stdenv.lib; { 26 20 description = "Simple RSS/Atom feed reader with online synchronization";
+2 -2
pkgs/applications/office/skrooge/default.nix
··· 7 7 8 8 mkDerivation rec { 9 9 name = "skrooge-${version}"; 10 - version = "2.10.5"; 10 + version = "2.11.0"; 11 11 12 12 src = fetchurl { 13 13 url = "http://download.kde.org/stable/skrooge/${name}.tar.xz"; 14 - sha256 = "1c1yihypb6qgbzfcrw4ylqr9zivyba10xzvibrmfkrilxi6i582n"; 14 + sha256 = "11ns0j3ss09aqd8snfzd52xf0cgsjjcgzalb031p7v17rn14yqaq"; 15 15 }; 16 16 17 17 nativeBuildInputs = [
+2 -2
pkgs/applications/science/misc/root/default.nix
··· 4 4 5 5 stdenv.mkDerivation rec { 6 6 name = "root-${version}"; 7 - version = "6.10.08"; 7 + version = "6.12.06"; 8 8 9 9 src = fetchurl { 10 10 url = "https://root.cern.ch/download/root_v${version}.source.tar.gz"; 11 - sha256 = "12mddl6pqwwc9nr4jqzp6h1jm4zycazd3v88dz306m1nmk97dlic"; 11 + sha256 = "1557b9sdragsx9i15qh6lq7fn056bgi87d31kxdl4vl0awigvp5f"; 12 12 }; 13 13 14 14 nativeBuildInputs = [ pkgconfig ];
+2 -2
pkgs/applications/version-management/rabbitvcs/default.nix
··· 1 1 { fetchFromGitHub, lib, python2Packages, meld, subversion, gvfs, xdg_utils }: 2 2 python2Packages.buildPythonApplication rec { 3 3 name = "rabbitvcs-${version}"; 4 - version = "0.16"; 4 + version = "0.17.1"; 5 5 namePrefix = ""; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "rabbitvcs"; 9 9 repo = "rabbitvcs"; 10 10 rev = "v${version}"; 11 - sha256 = "0964pdylrx4n9c9l8ncwv4q1p63y4hadb5v4pgvm0m2fah2jlkly"; 11 + sha256 = "01cr16zf3gzsci1hhfli79m34fcx5m1pvswl16rkxxn212yc9fhy"; 12 12 }; 13 13 14 14 pythonPath = with python2Packages; [ configobj dbus-python pygobject2 pygtk simplejson pysvn dulwich tkinter gvfs xdg_utils ];
+17 -13
pkgs/applications/video/mkvtoolnix/default.nix
··· 1 1 { stdenv, fetchFromGitLab, pkgconfig, autoconf, automake, libiconv 2 - , drake, ruby, docbook_xsl, file, xdg_utils, gettext, expat, qt5, boost 2 + , drake, ruby, docbook_xsl, file, xdg_utils, gettext, expat, boost 3 3 , libebml, zlib, libmatroska, libogg, libvorbis, flac, libxslt, cmark 4 4 , withGUI ? true 5 + , qtbase ? null 6 + , qtmultimedia ? null 5 7 }: 6 8 7 - assert withGUI -> qt5 != null; 9 + assert withGUI -> qtbase != null && qtmultimedia != null; 8 10 9 11 with stdenv.lib; 10 12 11 13 stdenv.mkDerivation rec { 12 14 name = "mkvtoolnix-${version}"; 13 - version = "20.0.0"; 15 + version = "21.0.0"; 14 16 15 17 src = fetchFromGitLab { 16 - owner = "mbunkus"; 17 - repo = "mkvtoolnix"; 18 - rev = "release-${version}"; 19 - sha256 = "0qrjvvp0pvw9i91rh0zrxpclq7xap2dpjip0s5bm4gv14gh4l4mc"; 18 + owner = "mbunkus"; 19 + repo = "mkvtoolnix"; 20 + rev = "release-${version}"; 21 + sha256 = "06nixp0qqa6g2fv40f7l0i0sqbc7qswpgq4534l98nan08wjbk2r"; 20 22 }; 21 23 22 - nativeBuildInputs = [ pkgconfig autoconf automake gettext drake ruby docbook_xsl libxslt ]; 24 + nativeBuildInputs = [ 25 + pkgconfig autoconf automake gettext 26 + drake ruby docbook_xsl libxslt 27 + ]; 23 28 24 29 buildInputs = [ 25 - expat file xdg_utils boost libebml zlib libmatroska libogg 26 - libvorbis flac cmark 27 - ] 28 - ++ optional stdenv.isDarwin libiconv 29 - ++ optionals withGUI [qt5.qtbase qt5.qtmultimedia]; 30 + expat file xdg_utils boost libebml zlib 31 + libmatroska libogg libvorbis flac cmark 32 + ] ++ optional stdenv.isDarwin libiconv 33 + ++ optionals withGUI [ qtbase qtmultimedia ]; 30 34 31 35 preConfigure = "./autogen.sh; patchShebangs ."; 32 36 buildPhase = "drake -j $NIX_BUILD_CORES";
+27
pkgs/applications/video/mpc-qt/default.nix
··· 1 + { stdenv, fetchFromGitHub, pkgconfig, qmake, qtx11extras, qttools, mpv }: 2 + 3 + stdenv.mkDerivation rec { 4 + name = "mpc-qt-${version}"; 5 + version = "17.11"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "cmdrkotori"; 9 + repo = "mpc-qt"; 10 + rev = "v${version}"; 11 + sha256 = "1vi4zsmbzxj6ms8wls9zv15vrskdrhgnj6l41m1fk4scs4jzvbkm"; 12 + }; 13 + 14 + nativeBuildInputs = [ pkgconfig qmake qttools ]; 15 + 16 + buildInputs = [ mpv qtx11extras ]; 17 + 18 + qmakeFlags = [ "QMAKE_LUPDATE=${qttools.dev}/bin/lupdate" ]; 19 + 20 + meta = with stdenv.lib; { 21 + description = "Media Player Classic Qute Theater"; 22 + homepage = https://github.com/cmdrkotori/mpc-qt; 23 + license = licenses.gpl2; 24 + platforms = platforms.unix; 25 + maintainers = with maintainers; [ romildo ]; 26 + }; 27 + }
+2 -2
pkgs/applications/video/mpv/scripts/convert.nix
··· 1 1 { stdenv, fetchgit, lib 2 - , yad, mkvtoolnix, libnotify }: 2 + , yad, mkvtoolnix-cli, libnotify }: 3 3 4 4 stdenv.mkDerivation { 5 5 name = "mpv-convert-script-2016-03-18.lua"; ··· 19 19 substituteInPlace convert_script.lua \ 20 20 ${subs "NOTIFY_CMD" "notify-send" "${libnotify}/bin/notify-send"} \ 21 21 ${subs "YAD_CMD" "yad" "${yad}/bin/yad"} \ 22 - ${subs "MKVMERGE_CMD" "mkvmerge" "${mkvtoolnix}/bin/mkvmerge"} 22 + ${subs "MKVMERGE_CMD" "mkvmerge" "${mkvtoolnix-cli}/bin/mkvmerge"} 23 23 ''; 24 24 25 25 dontBuild = true;
+2 -2
pkgs/applications/virtualization/remotebox/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "remotebox-${version}"; 5 - version = "2.2"; 5 + version = "2.4"; 6 6 7 7 src = fetchurl { 8 8 url = "http://remotebox.knobgoblin.org.uk/downloads/RemoteBox-${version}.tar.bz2"; 9 - sha256 = "0g7lx5zk9fk5k8alpag45z2zw9bnrlx1zfs63rc3ilfyvm4k4zc5"; 9 + sha256 = "14zcpzpdb5gxkxvckcdwq3mfv8b18zirbdskzddhqxjddkzayckz"; 10 10 }; 11 11 12 12 buildInputs = with perlPackages; [ perl Glib Gtk2 Pango SOAPLite ];
+1 -1
pkgs/applications/virtualization/rkt/default.nix
··· 58 58 cp -Rv $BUILDDIR/target/bin/stage1-*.aci $out/${stage1Dir}/ 59 59 60 60 wrapProgram $out/bin/rkt \ 61 - --prefix LD_LIBRARY_PATH : ${systemd.lib}/lib \ 61 + --prefix LD_LIBRARY_PATH : "${systemd.lib}/lib:${acl.out}/lib" \ 62 62 --prefix PATH : ${iptables}/bin 63 63 ''; 64 64
+2 -2
pkgs/development/compilers/ocaml/4.06.nix
··· 1 1 import ./generic.nix { 2 2 major_version = "4"; 3 3 minor_version = "06"; 4 - patch_version = "0"; 5 - sha256 = "1dy542yfnnw10zvh5s9qzswliq11mg7l0bcyss3501qw3vwvadhj"; 4 + patch_version = "1"; 5 + sha256 = "1n3pygfssd6nkrq876wszm5nm3v4605q4k16a66h1nmq9wvf01vg"; 6 6 7 7 # If the executable is stipped it does not work 8 8 dontStrip = true;
-4
pkgs/development/haskell-modules/configuration-nix.nix
··· 471 471 ''; 472 472 }); 473 473 474 - # Fails to link against with newer gsl versions because a deprecrated function 475 - # was removed 476 - hmatrix-gsl = super.hmatrix-gsl.override { gsl = pkgs.gsl_1; }; 477 - 478 474 # tests run executable, relying on PATH 479 475 # without this, tests fail with "Couldn't launch intero process" 480 476 intero = overrideCabal super.intero (drv: {
+2 -2
pkgs/development/interpreters/php/default.nix
··· 343 343 }; 344 344 345 345 php70 = generic { 346 - version = "7.0.27"; 347 - sha256 = "0ca174kp2l3fjcp8z0mqnkbjfhijjzz7rs7bkzg1qk2cpdijbylr"; 346 + version = "7.0.28"; 347 + sha256 = "0zrw0saqlfv60f3nmff7288wqfhdsfiqns4ys3ii0drzc6s92m5f"; 348 348 }; 349 349 350 350 php71 = generic {
+2 -2
pkgs/development/libraries/catch/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "catch-${version}"; 5 - version = "1.11.0"; 5 + version = "1.12.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "catchorg"; 9 9 repo = "Catch"; 10 10 rev = "v${version}"; 11 - sha256 = "0v9yw7ydvhydp78hh7cmaif4h73k5qxqpm1g7xn8i882i3s84s2s"; 11 + sha256 = "0hkcmycvyyazzi9dywnyiipnmbx399iirh5xk5g957c8zl0505kd"; 12 12 }; 13 13 14 14 nativeBuildInputs = [ cmake ];
+28
pkgs/development/libraries/elementary-cmake-modules/default.nix
··· 1 + { stdenv, lib, fetchFromGitHub, cmake, pkgconfig }: 2 + 3 + stdenv.mkDerivation { 4 + name = "elementary-cmake-modules"; 5 + 6 + src = fetchFromGitHub { 7 + owner = "elementary"; 8 + repo = "cmake-modules"; 9 + rev = "319ec5336e9f05f3f22b886cc2053ef3d4b6599e"; 10 + sha256 = "191hhvdxyqvh9axzndaqld7vrmv7xkn0czks908zhb2zpjhv9rby"; 11 + }; 12 + 13 + prePatch = '' 14 + substituteInPlace CMakeLists.txt \ 15 + --replace ' ''${CMAKE_ROOT}/Modules' " $out/lib/cmake" 16 + ''; 17 + 18 + propagatedBuildInputs = [ cmake pkgconfig ]; 19 + 20 + setupHook = ./setup-hook.sh; 21 + 22 + meta = with lib; { 23 + platforms = platforms.linux ++ platforms.darwin; 24 + homepage = https://github.com/elementary/cmake-modules; 25 + license = licenses.gpl3Plus; 26 + maintainers = [ maintainers.samdroid-apps ]; 27 + }; 28 + }
+4
pkgs/development/libraries/elementary-cmake-modules/setup-hook.sh
··· 1 + _elementaryCMakeEnvHook() { 2 + cmakeFlagsArray+=(-DCMAKE_MODULE_PATH=@out@/lib/cmake) 3 + } 4 + addEnvHooks "$targetOffset" _elementaryCMakeEnvHook
+2 -2
pkgs/development/libraries/readosm/default.nix
··· 1 1 { stdenv, fetchurl, expat, zlib, geos, libspatialite }: 2 2 3 3 stdenv.mkDerivation rec { 4 - name = "readosm-1.0.0b"; 4 + name = "readosm-1.1.0"; 5 5 6 6 src = fetchurl { 7 7 url = "http://www.gaia-gis.it/gaia-sins/readosm-sources/${name}.tar.gz"; 8 - sha256 = "042pv31smc7l6y111rvp0hza5sw86wa8ldg2jyq78xgwzcbhszpd"; 8 + sha256 = "1v20pnda67imjd70fn0zw30aar525xicy3d3v49md5cvqklws265"; 9 9 }; 10 10 11 11 buildInputs = [ expat zlib geos libspatialite ];
+3 -3
pkgs/development/libraries/stfl/default.nix
··· 1 1 { stdenv, fetchurl, ncurses, libiconv }: 2 2 3 3 stdenv.mkDerivation rec { 4 - name = "stfl-0.22"; 4 + name = "stfl-0.24"; 5 5 6 6 src = fetchurl { 7 7 url = "http://www.clifford.at/stfl/${name}.tar.gz"; 8 - sha256 = "062lqlf3qhp8bcapbpc0k3wym7x6ngncql8jmx5x06p6679szp9d"; 8 + sha256 = "1460d5lc780p3q38l3wc9jfr2a7zlyrcra0li65aynj738cam9yl"; 9 9 }; 10 10 11 11 buildInputs = [ ncurses libiconv ]; ··· 25 25 DESTDIR=$out prefix=\"\" make install 26 26 27 27 # some programs rely on libstfl.so.0 to be present, so link it 28 - ln -s $out/lib/libstfl.so.0.22 $out/lib/libstfl.so.0 28 + ln -s $out/lib/libstfl.so.0.24 $out/lib/libstfl.so.0 29 29 ''; 30 30 31 31 meta = {
+1
pkgs/development/node-packages/node-packages-v8.json
··· 11 11 , "pnpm" 12 12 , "semver" 13 13 , "sloc" 14 + , "npm" 14 15 ]
+36 -6
pkgs/development/node-packages/node-packages-v8.nix
··· 283 283 sha512 = "1kvjv5hs1c53b5g2vghpnncn4zj397sa0vpbx1pzpn8ngq52s3xq9923gnl2kzkh1mhyrl277jrh87a766yks89qvz8b4jczr44xr9p"; 284 284 }; 285 285 }; 286 + "bencode-2.0.0" = { 287 + name = "bencode"; 288 + packageName = "bencode"; 289 + version = "2.0.0"; 290 + src = fetchurl { 291 + url = "https://registry.npmjs.org/bencode/-/bencode-2.0.0.tgz"; 292 + sha512 = "3rdjlprrhprwwygnw5aik9pgi1xyr09yvgq3rbr4g3pl1v70mcc1k903x3vh9z782jly6vmnvp44nrskl5rhcxgfdwz19fl1b1qggf2"; 293 + }; 294 + }; 286 295 "bitfield-rle-2.1.0" = { 287 296 name = "bitfield-rle"; 288 297 packageName = "bitfield-rle"; ··· 1768 1777 sha512 = "2nbjxg0x7jsa14zhvx68w1vri68hsxzbxz7b7ap76fdp0jkrgna2rq636yxnax04f3f8i2ambj2fpan6qli6vixmfryz78vrapdip8n"; 1769 1778 }; 1770 1779 }; 1771 - "k-rpc-socket-1.7.2" = { 1780 + "k-rpc-socket-1.8.0" = { 1772 1781 name = "k-rpc-socket"; 1773 1782 packageName = "k-rpc-socket"; 1774 - version = "1.7.2"; 1783 + version = "1.8.0"; 1775 1784 src = fetchurl { 1776 - url = "https://registry.npmjs.org/k-rpc-socket/-/k-rpc-socket-1.7.2.tgz"; 1777 - sha512 = "02w1ih1lh86i5ap7c3dy2ml7g5a11r0w300iyxdf6v02qr0j1x3vf78hx5q9dgg3drifab018mgm851m457zzzi05i2z2r1s3zlflc3"; 1785 + url = "https://registry.npmjs.org/k-rpc-socket/-/k-rpc-socket-1.8.0.tgz"; 1786 + sha512 = "0pc9bjnmgfjcgh49lclvz5qnlkzypgirlx5ji2nx15vfn00gwczy5hvfahcxdzcdqsjlwh7q8jw4zj8abdk8qx2cwiqdw8fgg557zvz"; 1778 1787 }; 1779 1788 }; 1780 1789 "kind-of-3.2.2" = { ··· 3514 3523 sources."json-stringify-safe-5.0.1" 3515 3524 sources."jsprim-1.4.1" 3516 3525 sources."k-bucket-3.3.1" 3517 - sources."k-rpc-4.2.1" 3518 - sources."k-rpc-socket-1.7.2" 3526 + (sources."k-rpc-4.2.1" // { 3527 + dependencies = [ 3528 + sources."bencode-2.0.0" 3529 + ]; 3530 + }) 3531 + sources."k-rpc-socket-1.8.0" 3519 3532 sources."kind-of-3.2.2" 3520 3533 sources."last-one-wins-1.0.4" 3521 3534 sources."length-prefixed-message-3.0.3" ··· 4123 4136 description = "sloc is a simple tool to count SLOC (source lines of code)"; 4124 4137 homepage = "https://github.com/flosse/sloc#readme"; 4125 4138 license = "MIT"; 4139 + }; 4140 + production = true; 4141 + bypassCache = true; 4142 + }; 4143 + npm = nodeEnv.buildNodePackage { 4144 + name = "npm"; 4145 + packageName = "npm"; 4146 + version = "5.6.0"; 4147 + src = fetchurl { 4148 + url = "https://registry.npmjs.org/npm/-/npm-5.6.0.tgz"; 4149 + sha512 = "0nnr796ik5h8bsd3k9ygivivr3na2ksnf5iipf8dsnn20j10i9sgmhmsnzbimd2pqgjbrpp8gbpl2q7j5c7yjqjfirrh8xcc3v3gpws"; 4150 + }; 4151 + buildInputs = globalBuildInputs; 4152 + meta = { 4153 + description = "a package manager for JavaScript"; 4154 + homepage = https://docs.npmjs.com/; 4155 + license = "Artistic-2.0"; 4126 4156 }; 4127 4157 production = true; 4128 4158 bypassCache = true;
+22 -18
pkgs/development/ocaml-modules/biniou/default.nix
··· 1 1 { stdenv, fetchFromGitHub, ocaml, findlib, jbuilder, easy-format }: 2 2 3 3 stdenv.mkDerivation rec { 4 - version = "1.2.0"; 5 - name = "ocaml${ocaml.version}-biniou-${version}"; 6 - src = fetchFromGitHub { 7 - owner = "mjambon"; 8 - repo = "biniou"; 9 - rev = "v${version}"; 10 - sha256 = "0mjpgwyfq2b2izjw0flmlpvdjgqpq8shs89hxj1np2r50csr8dcb"; 11 - }; 4 + version = "1.2.0"; 5 + name = "ocaml${ocaml.version}-biniou-${version}"; 6 + src = fetchFromGitHub { 7 + owner = "mjambon"; 8 + repo = "biniou"; 9 + rev = "v${version}"; 10 + sha256 = "0mjpgwyfq2b2izjw0flmlpvdjgqpq8shs89hxj1np2r50csr8dcb"; 11 + }; 12 12 13 - buildInputs = [ ocaml findlib jbuilder ]; 13 + buildInputs = [ ocaml findlib jbuilder ]; 14 14 15 - propagatedBuildInputs = [ easy-format ]; 15 + propagatedBuildInputs = [ easy-format ]; 16 16 17 - inherit (jbuilder) installPhase; 17 + postPatch = '' 18 + patchShebangs . 19 + ''; 18 20 19 - meta = { 20 - inherit (src.meta) homepage; 21 - inherit (ocaml.meta) platforms; 22 - description = "Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve"; 23 - maintainers = [ stdenv.lib.maintainers.vbgl ]; 24 - license = stdenv.lib.licenses.bsd3; 25 - }; 21 + inherit (jbuilder) installPhase; 22 + 23 + meta = { 24 + inherit (src.meta) homepage; 25 + inherit (ocaml.meta) platforms; 26 + description = "Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve"; 27 + maintainers = [ stdenv.lib.maintainers.vbgl ]; 28 + license = stdenv.lib.licenses.bsd3; 29 + }; 26 30 }
+25
pkgs/development/python-modules/flake8-import-order/default.nix
··· 1 + { lib, buildPythonPackage, fetchPypi, isPy3k, enum34, pycodestyle, pytest, flake8, pylama }: 2 + 3 + buildPythonPackage rec { 4 + pname = "flake8-import-order"; 5 + version = "0.17"; 6 + 7 + src = fetchPypi { 8 + inherit pname version; 9 + sha256 = "60ea6674c77e4d916071beabf2b31b9b45e2f5b3bbda48a34db65766a5b25678"; 10 + }; 11 + 12 + propagatedBuildInputs = [ pycodestyle ] ++ lib.optional (!isPy3k) enum34; 13 + 14 + checkInputs = [ pytest flake8 pycodestyle pylama ]; 15 + 16 + checkPhase = '' 17 + pytest --strict 18 + ''; 19 + 20 + meta = with lib; { 21 + description = "Flake8 and pylama plugin that checks the ordering of import statements"; 22 + homepage = https://github.com/PyCQA/flake8-import-order; 23 + license = with licenses; [ lgpl3 mit ]; 24 + }; 25 + }
-1
pkgs/development/python-modules/jsonrpc-async/default.nix
··· 4 4 buildPythonPackage rec { 5 5 pname = "jsonrpc-async"; 6 6 version = "0.6"; 7 - name = "${pname}-${version}"; 8 7 9 8 src = fetchPypi { 10 9 inherit pname version;
-1
pkgs/development/python-modules/jsonrpc-base/default.nix
··· 3 3 buildPythonPackage rec { 4 4 pname = "jsonrpc-base"; 5 5 version = "1.0"; 6 - name = "${pname}-${version}"; 7 6 8 7 src = fetchPypi { 9 8 inherit pname version;
-1
pkgs/development/python-modules/jsonrpc-websocket/default.nix
··· 4 4 buildPythonPackage rec { 5 5 pname = "jsonrpc-websocket"; 6 6 version = "0.5"; 7 - name = "${pname}-${version}"; 8 7 9 8 src = fetchPypi { 10 9 inherit pname version;
+18 -8
pkgs/development/python-modules/pydocstyle/default.nix
··· 1 - { stdenv, buildPythonPackage, fetchPypi, snowballstemmer, configparser, 2 - pytest, pytestpep8, mock, pathlib }: 1 + { lib, buildPythonPackage, fetchFromGitHub, isPy3k, pythonOlder 2 + , snowballstemmer, six, configparser 3 + , pytest, pytestpep8, mock, pathlib }: 3 4 4 5 buildPythonPackage rec { 5 6 pname = "pydocstyle"; 6 7 version = "2.1.1"; 7 8 8 - src = fetchPypi { 9 - inherit pname version; 10 - sha256 = "15ssv8l6cvrmzgwcdzw76rnl4np3qf0dbwr1wsx76y0hc7lwsnsd"; 9 + # no tests on PyPI 10 + # https://github.com/PyCQA/pydocstyle/issues/302 11 + src = fetchFromGitHub { 12 + owner = "PyCQA"; 13 + repo = pname; 14 + rev = version; 15 + sha256 = "1h0k8lpx14svc8dini62j0kqiam10pck5sdzvxa4xhsx7y689g5l"; 11 16 }; 12 17 13 - propagatedBuildInputs = [ snowballstemmer configparser ]; 18 + propagatedBuildInputs = [ snowballstemmer six ] ++ lib.optional (!isPy3k) configparser; 19 + 20 + checkInputs = [ pytest pytestpep8 mock ] ++ lib.optional (pythonOlder "3.4") pathlib; 14 21 15 - checkInputs = [ pytest pytestpep8 mock pathlib ]; 22 + checkPhase = '' 23 + # test_integration.py installs packages via pip 24 + py.test --pep8 --cache-clear -vv src/tests -k "not test_integration" 25 + ''; 16 26 17 - meta = with stdenv.lib; { 27 + meta = with lib; { 18 28 description = "Python docstring style checker"; 19 29 homepage = https://github.com/PyCQA/pydocstyle/; 20 30 license = licenses.mit;
+33
pkgs/development/python-modules/pylama/default.nix
··· 1 + { lib, buildPythonPackage, fetchPypi, fetchpatch 2 + , mccabe, pycodestyle, pydocstyle, pyflakes 3 + , pytest, ipdb }: 4 + 5 + buildPythonPackage rec { 6 + pname = "pylama"; 7 + version = "7.4.3"; 8 + 9 + src = fetchPypi { 10 + inherit pname version; 11 + sha256 = "390c1dab1daebdf3d6acc923e551b035c3faa77d8b96b98530c230493f9ec712"; 12 + }; 13 + 14 + patches = fetchpatch { 15 + url = "${meta.homepage}/pull/116.patch"; 16 + sha256 = "00jz5k2w0xahs1m3s603j6l4cwzz92qsbbk81fh17nq0f47999mv"; 17 + }; 18 + 19 + propagatedBuildInputs = [ mccabe pycodestyle pydocstyle pyflakes ]; 20 + 21 + checkInputs = [ pytest ipdb ]; 22 + 23 + # tries to mess with the file system 24 + doCheck = false; 25 + 26 + meta = with lib; { 27 + description = "Code audit tool for python"; 28 + homepage = https://github.com/klen/pylama; 29 + # ambiguous license declarations: https://github.com/klen/pylama/issues/64 30 + license = licenses.lgpl3; 31 + maintainers = with maintainers; [ dotlambda ]; 32 + }; 33 + }
+1 -1
pkgs/development/python-modules/pylint/default.nix
··· 13 13 14 14 buildInputs = [ pytest pytestrunner mccabe configparser backports_functools_lru_cache ]; 15 15 16 - propagatedBuildInputs = [ astroid configparser isort ]; 16 + propagatedBuildInputs = [ astroid configparser isort mccabe ]; 17 17 18 18 postPatch = '' 19 19 # Remove broken darwin tests
-1
pkgs/development/python-modules/pyunifi/default.nix
··· 4 4 buildPythonPackage rec { 5 5 pname = "pyunifi"; 6 6 version = "2.13"; 7 - name = "${pname}-${version}"; 8 7 9 8 src = fetchPypi { 10 9 inherit pname version;
-1
pkgs/development/python-modules/wakeonlan/default.nix
··· 3 3 buildPythonPackage rec { 4 4 pname = "wakeonlan"; 5 5 version = "1.0.0"; 6 - name = "${pname}-${version}"; 7 6 8 7 src = fetchPypi { 9 8 inherit pname version;
+2 -1
pkgs/development/ruby-modules/gem-config/default.nix
··· 139 139 }; 140 140 141 141 grpc = attrs: { 142 - nativeBuildInputs = [ pkgconfig ]; 142 + nativeBuildInputs = [ pkgconfig ]; 143 143 buildInputs = [ openssl ]; 144 + NIX_CFLAGS_COMPILE = [ "-Wno-error=stringop-overflow" "-Wno-error=implicit-fallthrough" ]; 144 145 }; 145 146 146 147 hitimes = attrs: {
+13
pkgs/development/tools/build-managers/bear/cmakepaths.patch
··· 1 + diff --git a/CMakeLists.txt b/CMakeLists.txt 2 + index 04c5c58..429ca47 100644 3 + --- a/CMakeLists.txt 4 + +++ b/CMakeLists.txt 5 + @@ -24,7 +24,7 @@ set(CMAKE_OSX_ARCHITECTURES "i386;x86_64" CACHE STRING "Rogue") 6 + 7 + set(EAR_LIB_FILE ${CMAKE_SHARED_LIBRARY_PREFIX}ear${CMAKE_SHARED_LIBRARY_SUFFIX}) 8 + set(EAR_LIB_PATH "${CMAKE_INSTALL_LIBDIR}/bear") 9 + -set(DEFAULT_PRELOAD_FILE ${CMAKE_INSTALL_PREFIX}/${EAR_LIB_PATH}/${EAR_LIB_FILE} CACHE STRING "Default path to libear.") 10 + +set(DEFAULT_PRELOAD_FILE ${EAR_LIB_PATH}/${EAR_LIB_FILE} CACHE STRING "Default path to libear.") 11 + 12 + add_subdirectory(libear) 13 + add_subdirectory(bear)
+2 -2
pkgs/development/tools/build-managers/bear/default.nix
··· 16 16 17 17 doCheck = false; # all fail 18 18 19 - patches = [ ./ignore_wrapper.patch ]; 19 + patches = [ ./ignore_wrapper.patch ./cmakepaths.patch ]; 20 20 21 21 meta = with stdenv.lib; { 22 22 description = "Tool that generates a compilation database for clang tooling"; ··· 28 28 homepage = https://github.com/rizsotto/Bear; 29 29 license = licenses.gpl3Plus; 30 30 platforms = platforms.unix; 31 - maintainers = [ maintainers.vcunat ]; 31 + maintainers = [ maintainers.vcunat maintainers.babariviere ]; 32 32 }; 33 33 }
+10 -6
pkgs/development/tools/geckodriver/default.nix
··· 1 1 { lib 2 - , fetchurl 2 + , fetchFromGitHub 3 3 , rustPlatform 4 4 }: 5 5 6 6 with rustPlatform; 7 7 8 8 buildRustPackage rec { 9 - version = "0.19.1"; 9 + version = "unstable-2018-02-24"; 10 10 name = "geckodriver-${version}"; 11 11 12 - src = fetchurl { 13 - url = "https://github.com/mozilla/geckodriver/archive/v${version}.tar.gz"; 14 - sha256 = "04zpv4aiwbig466yj24hhazl5hrapkyvwlhvg0za5599ykzdv47m"; 12 + src = fetchFromGitHub { 13 + owner = "mozilla"; 14 + repo = "gecko-dev"; 15 + rev = "ecb86060b4c5a9808798b81a57e79e821bb47082"; 16 + sha256 = "1am84a60adw0bb12rlhdqbiwyywhza4qp5sf4f4fmssjl2qcr6nl"; 15 17 }; 16 18 17 - cargoSha256 = "1cny8caqcd9p98hra1k7y4d3lb8sxsyaplr0svbwam0d2qc1c257"; 19 + sourceRoot = "${src.name}/testing/geckodriver"; 20 + 21 + cargoSha256 = "0dvcvdb623jla29i93glx20nf8pbpfw6jj548ii6brzkcpafxxm8"; 18 22 19 23 meta = with lib; { 20 24 description = "Proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers";
+11 -4
pkgs/development/tools/misc/ccache/default.nix
··· 1 - { stdenv, fetchurl, fetchpatch, runCommand, zlib, makeWrapper }: 1 + { stdenv, fetchurl, fetchpatch, runCommand, perl, zlib, makeWrapper }: 2 2 3 3 let ccache = stdenv.mkDerivation rec { 4 4 name = "ccache-${version}"; 5 - version = "3.3.5"; 5 + version = "3.4.1"; 6 6 7 7 src = fetchurl { 8 - sha256 = "1iih5d171rq29366c1z90dri2h8173yyc8rm2740wxiqx6k7c18r"; 8 + sha256 = "1pppi4jbkkj641cdynmc35jaj40jjicw7gj75ran5qs5886jcblc"; 9 9 url = "mirror://samba/ccache/${name}.tar.xz"; 10 10 }; 11 + 12 + nativeBuildInputs = [ perl ]; 11 13 12 14 buildInputs = [ zlib ]; 13 15 16 + outputs = [ "out" "man" ]; 17 + 14 18 # non to be fail on filesystems with unconventional blocksizes (zfs on Hydra?) 15 - patches = [ ./skip-fs-dependent-test.patch ]; 19 + patches = [ 20 + ./fix-debug-prefix-map-suite.patch 21 + ./skip-fs-dependent-test.patch 22 + ]; 16 23 17 24 postPatch = '' 18 25 substituteInPlace Makefile.in --replace 'objs) $(extra_libs)' 'objs)'
+42
pkgs/development/tools/misc/ccache/fix-debug-prefix-map-suite.patch
··· 1 + --- a/test/suites/debug_prefix_map.bash 2 + +++ b/test/suites/debug_prefix_map.bash 3 + @@ -29,7 +29,7 @@ 4 + expect_stat 'cache hit (preprocessed)' 0 5 + expect_stat 'cache miss' 1 6 + expect_stat 'files in cache' 2 7 + - if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then 8 + + if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then 9 + test_failed "Source dir (`pwd`) found in test.o" 10 + fi 11 + 12 + @@ -39,7 +39,7 @@ 13 + expect_stat 'cache hit (preprocessed)' 0 14 + expect_stat 'cache miss' 1 15 + expect_stat 'files in cache' 2 16 + - if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then 17 + + if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then 18 + test_failed "Source dir (`pwd`) found in test.o" 19 + fi 20 + 21 + @@ -52,10 +52,10 @@ 22 + expect_stat 'cache hit (preprocessed)' 0 23 + expect_stat 'cache miss' 1 24 + expect_stat 'files in cache' 2 25 + - if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then 26 + + if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then 27 + test_failed "Source dir (`pwd`) found in test.o" 28 + fi 29 + - if ! grep "name" test.o >/dev/null 2>&1; then 30 + + if ! objdump -g test.o | grep ": name$" >/dev/null 2>&1; then 31 + test_failed "Relocation (name) not found in test.o" 32 + fi 33 + 34 + @@ -65,7 +65,7 @@ 35 + expect_stat 'cache hit (preprocessed)' 0 36 + expect_stat 'cache miss' 1 37 + expect_stat 'files in cache' 2 38 + - if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then 39 + + if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then 40 + test_failed "Source dir (`pwd`) found in test.o" 41 + fi 42 + }
+3 -3
pkgs/development/tools/misc/ccache/skip-fs-dependent-test.patch
··· 1 - --- a/test.sh 2 - +++ b/test.sh 3 - @@ -2669,23 +2669,6 @@ SUITE_cleanup() { 1 + --- a/test/suites/cleanup.bash 2 + +++ b/test/suites/cleanup.bash 3 + @@ -94,23 +94,6 @@ 4 4 5 5 $CCACHE -F 0 -M 256K >/dev/null 6 6 CCACHE_LOGFILE=/tmp/foo $CCACHE -c >/dev/null
+2 -2
pkgs/games/freecell-solver/default.nix
··· 6 6 stdenv.mkDerivation rec{ 7 7 8 8 name = "freecell-solver-${version}"; 9 - version = "4.8.0"; 9 + version = "4.16.0"; 10 10 11 11 src = fetchurl { 12 12 url = "http://fc-solve.shlomifish.org/downloads/fc-solve/${name}.tar.xz"; 13 - sha256 = "0274l1p71ps222i62whqfkg80fcc8m4w2hmpbrbbd5gh8kfpman3"; 13 + sha256 = "1ihrmxbsli7c1lm5gw9xgrakyn4nsmaj1zgk5gza2ywnfpgdb0ac"; 14 14 }; 15 15 16 16 nativeBuildInputs = [ pkgconfig ];
+2 -2
pkgs/games/pioneer/default.nix
··· 4 4 5 5 stdenv.mkDerivation rec { 6 6 name = "pioneer-${version}"; 7 - version = "20171001"; 7 + version = "20180203"; 8 8 9 9 src = fetchFromGitHub{ 10 10 owner = "pioneerspacesim"; 11 11 repo = "pioneer"; 12 12 rev = version; 13 - sha256 = "0yxw1zdvidrwc28vxfi3qpx2nq2dix2d6ylwgzq9ph8kgwv9fl5n"; 13 + sha256 = "0hp2mf36kj2v93hka8m8lxw2qhmnjc62wjlpw7c7ix0r8xa01i6h"; 14 14 }; 15 15 16 16 nativeBuildInputs = [ autoconf automake pkgconfig ];
+2 -2
pkgs/games/rocksndiamonds/default.nix
··· 3 3 stdenv.mkDerivation rec { 4 4 name = "${project}-${version}"; 5 5 project = "rocksndiamonds"; 6 - version = "4.0.0.2"; 6 + version = "4.0.1.1"; 7 7 8 8 src = fetchurl { 9 9 url = "https://www.artsoft.org/RELEASES/unix/${project}/${name}.tar.gz"; 10 - sha256 = "0dzn6vlayvnkjm64zwva337rn07lc21kq93m2h8zz8j3wpl11pb4"; 10 + sha256 = "0f2m29m53sngg2kv4km91nxbr53rzhchbpqx5dzrv3p5hq1hp936"; 11 11 }; 12 12 13 13 desktopItem = makeDesktopItem {
+3 -3
pkgs/os-specific/linux/tp_smapi/default.nix
··· 3 3 4 4 stdenv.mkDerivation rec { 5 5 name = "tp_smapi-${version}-${kernel.version}"; 6 - version = "unstable-2017-12-04"; 6 + version = "0.43"; 7 7 8 8 src = fetchFromGitHub { 9 9 owner = "evgeni"; 10 10 repo = "tp_smapi"; 11 - rev = "76c5120f7be4880cf2c6801f872327e4e70c449f"; 12 - sha256 = "0g8l7rmylspl17qnqpa2h4yj7h3zvy6xlmj5nlnixds9avnbz2vy"; 11 + rev = "tp-smapi/${version}"; 12 + sha256 = "1rjb0njckczc2mj05cagvj0lkyvmyk6bw7wkiinv81lw8m90g77g"; 13 13 name = "tp-smapi-${version}"; 14 14 }; 15 15
+2 -2
pkgs/servers/radarr/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "radarr-${version}"; 5 - version = "0.2.0.910"; 5 + version = "0.2.0.980"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/Radarr/Radarr/releases/download/v${version}/Radarr.develop.${version}.linux.tar.gz"; 9 - sha256 = "0c4msk6hvlqyy81xkjhsvsy4igpc01s4a00zwhqnds2gj4y9yplk"; 9 + sha256 = "1939mmlp9hsmw0hd4c8m8p5fk6igvml30gk9ffi9mfhankas6fnf"; 10 10 }; 11 11 12 12 buildInputs = [ makeWrapper ];
+1
pkgs/servers/sql/mysql/5.7.x.nix
··· 49 49 "-DINSTALL_SHAREDIR=share/mysql" 50 50 ]; 51 51 52 + CXXFLAGS = "-fpermissive"; 52 53 NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s"; 53 54 54 55 prePatch = ''
+2 -2
pkgs/servers/sql/postgresql/pgroonga/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "pgroonga-${version}"; 5 - version = "1.1.9"; 5 + version = "2.0.2"; 6 6 7 7 src = fetchurl { 8 8 url = "http://packages.groonga.org/source/pgroonga/${name}.tar.gz"; 9 - sha256 = "07afgwll8nxfb7ziw3qrvw0ryjjw3994vj2f6alrjwpg7ynb46ag"; 9 + sha256 = "0023747i2x3j50z54l78maq7dya5ldd2sdydn6l5l7k6b6g4yr2d"; 10 10 }; 11 11 12 12 nativeBuildInputs = [ pkgconfig ];
+2 -2
pkgs/tools/filesystems/reiser4progs/default.nix
··· 1 1 {stdenv, fetchurl, libaal}: 2 2 3 - let version = "1.1.0"; in 3 + let version = "1.2.1"; in 4 4 stdenv.mkDerivation rec { 5 5 name = "reiser4progs-${version}"; 6 6 7 7 src = fetchurl { 8 8 url = "mirror://sourceforge/reiser4/reiser4-utils/${name}.tar.gz"; 9 - sha256 = "18bgv0wd75q53642x5dsk4g0mil1hw1zrp7a4xkb0pxx4bzjlbqg"; 9 + sha256 = "03vdqvpyd48wxrpqpb9kg76giaffw9b8k334kr4wc0zxgybknhl7"; 10 10 }; 11 11 12 12 buildInputs = [libaal];
+2 -2
pkgs/tools/graphics/scanbd/default.nix
··· 3 3 4 4 stdenv.mkDerivation rec { 5 5 name = "scanbd-${version}"; 6 - version = "1.4.4"; 6 + version = "1.5.1"; 7 7 8 8 src = fetchurl { 9 - sha256 = "07a59jk9b2hh49v5lcpckp64f5lny9sq8h0h2p2jcs9cqazf6q9s"; 9 + sha256 = "0pvy4qirfjdfm8aj6x5rkbgl7hk3jfa2s21qkk8ic5dqfjjab75n"; 10 10 url = "mirror://sourceforge/scanbd/${name}.tgz"; 11 11 }; 12 12
+4 -4
pkgs/tools/misc/esptool/default.nix
··· 2 2 3 3 python3.pkgs.buildPythonApplication rec { 4 4 name = "esptool-${version}"; 5 - version = "2.1"; 5 + version = "2.3.1"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "espressif"; 9 9 repo = "esptool"; 10 10 rev = "v${version}"; 11 - sha256 = "137p0kcscly95qpjzgx1yxm8k2wf5y9v3srvlhp2ajniirgv8ijv"; 11 + sha256 = "0gwnl6z5s2ax07l3n38h9hdyz71pn8lzn4fybcwyrii0bj2kapvc"; 12 12 }; 13 13 14 - buildInputs = with python3.pkgs; [ flake8 flake8-future-import ]; 14 + checkInputs = with python3.pkgs; [ flake8 flake8-future-import flake8-import-order ]; 15 15 propagatedBuildInputs = with python3.pkgs; [ pyserial pyaes ecdsa openssl ]; 16 16 17 17 meta = with stdenv.lib; { 18 18 description = "ESP8266 and ESP32 serial bootloader utility"; 19 19 homepage = https://github.com/espressif/esptool; 20 20 license = licenses.gpl2; 21 - maintainers = [ maintainers.dezgeg ]; 21 + maintainers = with maintainers; [ dezgeg dotlambda ]; 22 22 platforms = platforms.linux; 23 23 }; 24 24 }
+7 -2
pkgs/tools/misc/exa/default.nix
··· 1 - { stdenv, fetchFromGitHub, rustPlatform, cmake, perl, pkgconfig, zlib }: 1 + { stdenv, fetchFromGitHub, rustPlatform, cmake, perl, pkgconfig, zlib 2 + , darwin, libiconv 3 + }: 2 4 3 5 with rustPlatform; 4 6 ··· 16 18 }; 17 19 18 20 nativeBuildInputs = [ cmake pkgconfig perl ]; 19 - buildInputs = [ zlib ]; 21 + buildInputs = [ zlib ] 22 + ++ stdenv.lib.optionals stdenv.isDarwin [ 23 + libiconv darwin.apple_sdk.frameworks.Security ] 24 + ; 20 25 21 26 # Some tests fail, but Travis ensures a proper build 22 27 doCheck = false;
+2 -2
pkgs/tools/misc/phraseapp-client/default.nix
··· 2 2 3 3 buildGoPackage rec { 4 4 name = "phraseapp-client-${version}"; 5 - version = "1.4.5"; 5 + version = "1.6.0"; 6 6 7 7 goPackagePath = "github.com/phrase/phraseapp-client"; 8 8 subPackages = [ "." ]; ··· 11 11 owner = "phrase"; 12 12 repo = "phraseapp-client"; 13 13 rev = version; 14 - sha256 = "0zky7jcs7h6zmvkb0na4la6h7g63jlrziifqk831fd1gspdzgajp"; 14 + sha256 = "0rgwl0rgkci045hg36s0q8jwkni1hzapqpi0mc0gk3rl7nagw622"; 15 15 }; 16 16 17 17 meta = with stdenv.lib; {
+2 -2
pkgs/tools/networking/s3cmd/default.nix
··· 2 2 3 3 python2Packages.buildPythonApplication rec { 4 4 name = "s3cmd-${version}"; 5 - version = "1.6.1"; 5 + version = "2.0.1"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "s3tools"; 9 9 repo = "s3cmd"; 10 10 rev = "v${version}"; 11 - sha256 = "0aan6v1qj0pdkddhhkbaky44d54irm1pa8mkn52i2j86nb2rkcf9"; 11 + sha256 = "198hzzplci57sb8hdan30nbakslawmijfw0j71wjvq85n3xn6qsl"; 12 12 }; 13 13 14 14 propagatedBuildInputs = with python2Packages; [ python_magic dateutil ];
+6 -1
pkgs/top-level/all-packages.nix
··· 7159 7159 7160 7160 red = callPackage ../development/interpreters/red { }; 7161 7161 7162 + regextester = callPackage ../applications/misc/regextester { }; 7163 + 7162 7164 regina = callPackage ../development/interpreters/regina { }; 7163 7165 7164 7166 inherit (ocamlPackages) reason; ··· 9117 9119 gnome-sharp = callPackage ../development/libraries/gnome-sharp {}; 9118 9120 9119 9121 granite = callPackage ../development/libraries/granite { }; 9122 + elementary-cmake-modules = callPackage ../development/libraries/elementary-cmake-modules { }; 9120 9123 9121 9124 gtk2 = callPackage ../development/libraries/gtk+/2.x.nix { 9122 9125 cupsSupport = config.gtk2.cups or stdenv.isLinux; ··· 10461 10464 ffmpeg = ffmpeg_2; 10462 10465 }; 10463 10466 10464 - mkvtoolnix = callPackage ../applications/video/mkvtoolnix { }; 10467 + mkvtoolnix = libsForQt5.callPackage ../applications/video/mkvtoolnix { }; 10465 10468 10466 10469 mkvtoolnix-cli = callPackage ../applications/video/mkvtoolnix { 10467 10470 withGUI = false; ··· 16532 16535 normalize = callPackage ../applications/audio/normalize { }; 16533 16536 16534 16537 mm = callPackage ../applications/networking/instant-messengers/mm { }; 16538 + 16539 + mpc-qt = libsForQt5.callPackage ../applications/video/mpc-qt { }; 16535 16540 16536 16541 mplayer = callPackage ../applications/video/mplayer ({ 16537 16542 pulseSupport = config.pulseaudio or false;
+4
pkgs/top-level/python-packages.nix
··· 6004 6004 6005 6005 pyhomematic = callPackage ../development/python-modules/pyhomematic { }; 6006 6006 6007 + pylama = callPackage ../development/python-modules/pylama { }; 6008 + 6007 6009 pyphen = callPackage ../development/python-modules/pyphen {}; 6008 6010 6009 6011 pypoppler = buildPythonPackage rec { ··· 7555 7557 flake8-debugger = callPackage ../development/python-modules/flake8-debugger { }; 7556 7558 7557 7559 flake8-future-import = callPackage ../development/python-modules/flake8-future-import { }; 7560 + 7561 + flake8-import-order = callPackage ../development/python-modules/flake8-import-order { }; 7558 7562 7559 7563 flaky = buildPythonPackage rec { 7560 7564 name = "flaky-${version}";