diff --git a/lib/licenses.nix b/lib/licenses.nix index 2262ae9ebbcf..e03ed38eb5eb 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -2,7 +2,7 @@ let spdx = lic: lic // { - url = "http://spdx.org/licenses/${lic.spdxId}"; + url = "http://spdx.org/licenses/${lic.spdxId}.html"; }; in @@ -580,6 +580,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { fullName = "Vovida Software License v1.0"; }; + watcom = spdx { + spdxId = "Watcom-1.0"; + fullName = "Sybase Open Watcom Public License 1.0"; + }; + w3c = spdx { spdxId = "W3C"; fullName = "W3C Software Notice and License"; @@ -614,5 +619,4 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { spdxId = "ZPL-2.1"; fullName = "Zope Public License 2.1"; }; - } diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 0deb63cfcb56..e72e320d41b1 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -370,6 +370,7 @@ kristoff3r = "Kristoffer Søholm "; ktosiek = "Tomasz Kontusz "; kuznero = "Roman Kuznetsov "; + lasandell = "Luke Sandell "; lassulus = "Lassulus "; layus = "Guillaume Maudoux "; ldesgoui = "Lucas Desgouilles "; @@ -479,6 +480,7 @@ mudri = "James Wood "; muflax = "Stefan Dorn "; myrl = "Myrl Hex "; + nadrieril = "Nadrieril Feneanar "; namore = "Roman Naumann "; nand0p = "Fernando Jose Pando "; Nate-Devv = "Nathan Moore "; @@ -494,6 +496,7 @@ nicknovitski = "Nick Novitski "; nico202 = "Nicolò Balzarotti "; NikolaMandic = "Ratko Mladic "; + ninjatrappeur = "Félix Baylac-Jacqué "; nipav = "Niko Pavlinek "; nixy = "Andrew R. M. "; nmattia = "Nicolas Mattia "; diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 7351482f957f..710387ebc1d6 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -205,6 +205,8 @@ with lib; "See the 16.09 release notes for more information.") (mkRemovedOptionModule [ "services" "phpfpm" "phpIni" ] "") (mkRemovedOptionModule [ "services" "dovecot2" "package" ] "") + (mkRemovedOptionModule [ "services" "firefox" "syncserver" "user" ] "") + (mkRemovedOptionModule [ "services" "firefox" "syncserver" "group" ] "") (mkRemovedOptionModule [ "fonts" "fontconfig" "hinting" "style" ] "") (mkRemovedOptionModule [ "services" "xserver" "displayManager" "sddm" "themes" ] "Set the option `services.xserver.displayManager.sddm.package' instead.") diff --git a/nixos/modules/services/networking/dante.nix b/nixos/modules/services/networking/dante.nix index a9a77f3412af..32acce51e692 100644 --- a/nixos/modules/services/networking/dante.nix +++ b/nixos/modules/services/networking/dante.nix @@ -47,7 +47,7 @@ in systemd.services.dante = { description = "Dante SOCKS v4 and v5 compatible proxy server"; - after = [ "network.target" ]; + after = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { diff --git a/nixos/modules/services/networking/firefox/sync-server.nix b/nixos/modules/services/networking/firefox/sync-server.nix index a9f3fd65d76b..97d223a56cab 100644 --- a/nixos/modules/services/networking/firefox/sync-server.nix +++ b/nixos/modules/services/networking/firefox/sync-server.nix @@ -33,6 +33,8 @@ let in { + meta.maintainers = with lib.maintainers; [ nadrieril ]; + options = { services.firefox.syncserver = { enable = mkOption { @@ -70,18 +72,6 @@ in ''; }; - user = mkOption { - type = types.str; - default = "syncserver"; - description = "User account under which syncserver runs."; - }; - - group = mkOption { - type = types.str; - default = "syncserver"; - description = "Group account under which syncserver runs."; - }; - publicUrl = mkOption { type = types.str; default = "http://localhost:5000/"; @@ -137,7 +127,9 @@ in config = mkIf cfg.enable { systemd.services.syncserver = let - syncServerEnv = pkgs.python.withPackages(ps: with ps; [ syncserver pasteScript ]); + syncServerEnv = pkgs.python.withPackages(ps: with ps; [ syncserver pasteScript requests ]); + user = "syncserver"; + group = "syncserver"; in { after = [ "network.target" ]; description = "Firefox Sync Server"; @@ -145,43 +137,43 @@ in path = [ pkgs.coreutils syncServerEnv ]; serviceConfig = { - User = cfg.user; - Group = cfg.group; + User = user; + Group = group; PermissionsStartOnly = true; }; preStart = '' if ! test -e ${cfg.privateConfig}; then - mkdir -m 700 -p $(dirname ${cfg.privateConfig}) + mkdir -p $(dirname ${cfg.privateConfig}) echo > ${cfg.privateConfig} '[syncserver]' + chmod 600 ${cfg.privateConfig} echo >> ${cfg.privateConfig} "secret = $(head -c 20 /dev/urandom | sha1sum | tr -d ' -')" fi - chown ${cfg.user}:${cfg.group} ${cfg.privateConfig} + chmod 600 ${cfg.privateConfig} + chmod 755 $(dirname ${cfg.privateConfig}) + chown ${user}:${group} ${cfg.privateConfig} + '' + optionalString (cfg.sqlUri == defaultSqlUri) '' if ! test -e $(dirname ${defaultDbLocation}); then mkdir -m 700 -p $(dirname ${defaultDbLocation}) - chown ${cfg.user}:${cfg.group} $(dirname ${defaultDbLocation}) + chown ${user}:${group} $(dirname ${defaultDbLocation}) fi + # Move previous database file if it exists oldDb="/var/db/firefox-sync-server.db" if test -f $oldDb; then mv $oldDb ${defaultDbLocation} - chown ${cfg.user}:${cfg.group} ${defaultDbLocation} + chown ${user}:${group} ${defaultDbLocation} fi ''; serviceConfig.ExecStart = "${syncServerEnv}/bin/paster serve ${syncServerIni}"; }; - users.extraUsers = optionalAttrs (cfg.user == "syncserver") - (singleton { - name = "syncserver"; - group = cfg.group; - isSystemUser = true; - }); + users.users.syncserver = { + group = "syncserver"; + isSystemUser = true; + }; - users.extraGroups = optionalAttrs (cfg.group == "syncserver") - (singleton { - name = "syncserver"; - }); + users.groups.syncserver = {}; }; } diff --git a/nixos/modules/services/networking/freeradius.nix b/nixos/modules/services/networking/freeradius.nix new file mode 100644 index 000000000000..45cba1ce2770 --- /dev/null +++ b/nixos/modules/services/networking/freeradius.nix @@ -0,0 +1,72 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.freeradius; + + freeradiusService = cfg: + { + description = "FreeRadius server"; + wantedBy = ["multi-user.target"]; + after = ["network-online.target"]; + wants = ["network-online.target"]; + preStart = '' + ${pkgs.freeradius}/bin/radiusd -C -d ${cfg.configDir} -l stdout + ''; + + serviceConfig = { + ExecStart = "${pkgs.freeradius}/bin/radiusd -f -d ${cfg.configDir} -l stdout -xx"; + ExecReload = [ + "${pkgs.freeradius}/bin/radiusd -C -d ${cfg.configDir} -l stdout" + "${pkgs.coreutils}/bin/kill -HUP $MAINPID" + ]; + User = "radius"; + ProtectSystem = "full"; + ProtectHome = "on"; + Restart = "on-failure"; + RestartSec = 2; + }; + }; + + freeradiusConfig = { + enable = mkEnableOption "the freeradius server"; + + configDir = mkOption { + type = types.path; + default = "/etc/raddb"; + description = '' + The path of the freeradius server configuration directory. + ''; + }; + + }; + +in + +{ + + ###### interface + + options = { + services.freeradius = freeradiusConfig; + }; + + + ###### implementation + + config = mkIf (cfg.enable) { + + users = { + extraUsers.radius = { + /*uid = config.ids.uids.radius;*/ + description = "Radius daemon user"; + }; + }; + + systemd.services.freeradius = freeradiusService cfg; + + }; + +} diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index 100fabf902f8..dee877f1c114 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -578,6 +578,7 @@ in mkdir -p ${cfg.stateDir}/logs chmod 700 ${cfg.stateDir} chown -R ${cfg.user}:${cfg.group} ${cfg.stateDir} + ${cfg.package}/bin/nginx -c ${configFile} -p ${cfg.stateDir} -t ''; serviceConfig = { ExecStart = "${cfg.package}/bin/nginx -c ${configFile} -p ${cfg.stateDir}"; diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix index d78f9d9389c6..3bd7d3558269 100644 --- a/nixos/modules/system/boot/kernel.nix +++ b/nixos/modules/system/boot/kernel.nix @@ -184,7 +184,7 @@ in [ "loglevel=${toString config.boot.consoleLogLevel}" ] ++ optionals config.boot.vesa [ "vga=0x317" ]; - boot.kernel.sysctl."kernel.printk" = config.boot.consoleLogLevel; + boot.kernel.sysctl."kernel.printk" = mkDefault config.boot.consoleLogLevel; boot.kernelModules = [ "loop" "atkbd" ]; diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix index 051c55393816..eea10613ea58 100644 --- a/nixos/modules/system/boot/networkd.nix +++ b/nixos/modules/system/boot/networkd.nix @@ -94,7 +94,7 @@ let checkNetwork = checkUnitConfig "Network" [ (assertOnlyFields [ "Description" "DHCP" "DHCPServer" "IPForward" "IPMasquerade" "IPv4LL" "IPv4LLRoute" - "LLMNR" "MulticastDNS" "Domains" "Bridge" "Bond" + "LLMNR" "MulticastDNS" "Domains" "Bridge" "Bond" "IPv6PrivacyExtensions" ]) (assertValueOneOf "DHCP" ["both" "none" "v4" "v6"]) (assertValueOneOf "DHCPServer" boolValues) @@ -104,6 +104,7 @@ let (assertValueOneOf "IPv4LLRoute" boolValues) (assertValueOneOf "LLMNR" boolValues) (assertValueOneOf "MulticastDNS" boolValues) + (assertValueOneOf "IPv6PrivacyExtensions" ["yes" "no" "prefer-public" "kernel"]) ]; checkAddress = checkUnitConfig "Address" [ diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix index 5d72ad0f1bde..be7f52a76def 100644 --- a/nixos/modules/tasks/network-interfaces-systemd.nix +++ b/nixos/modules/tasks/network-interfaces-systemd.nix @@ -91,6 +91,7 @@ in (if i.useDHCP != null then i.useDHCP else cfg.useDHCP && interfaceIps i == [ ])); address = flip map (interfaceIps i) (ip: "${ip.address}/${toString ip.prefixLength}"); + networkConfig.IPv6PrivacyExtensions = "kernel"; } ]; }))) (mkMerge (flip mapAttrsToList cfg.bridges (name: bridge: { diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index f4851988d63d..f80c5045c07d 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -155,6 +155,16 @@ let description = "Name of the interface."; }; + preferTempAddress = mkOption { + type = types.bool; + default = cfg.enableIPv6; + defaultText = literalExample "config.networking.enableIpv6"; + description = '' + When using SLAAC prefer a temporary (IPv6) address over the EUI-64 + address for originating connections. This is used to reduce tracking. + ''; + }; + useDHCP = mkOption { type = types.nullOr types.bool; default = null; @@ -941,6 +951,11 @@ in message = '' The networking.interfaces."${i.name}" must not have any defined ips when it is a slave. ''; + })) ++ (flip map interfaces (i: { + assertion = i.preferTempAddress -> cfg.enableIPv6; + message = '' + Temporary addresses are only needed when IPv6 is enabled. + ''; })) ++ [ { assertion = cfg.hostId == null || (stringLength cfg.hostId == 8 && isHexString cfg.hostId); @@ -963,9 +978,10 @@ in "net.ipv6.conf.all.disable_ipv6" = mkDefault (!cfg.enableIPv6); "net.ipv6.conf.default.disable_ipv6" = mkDefault (!cfg.enableIPv6); "net.ipv6.conf.all.forwarding" = mkDefault (any (i: i.proxyARP) interfaces); - } // listToAttrs (concatLists (flip map (filter (i: i.proxyARP) interfaces) - (i: flip map [ "4" "6" ] (v: nameValuePair "net.ipv${v}.conf.${i.name}.proxy_arp" true)) - )); + } // listToAttrs (flip concatMap (filter (i: i.proxyARP) interfaces) + (i: flip map [ "4" "6" ] (v: nameValuePair "net.ipv${v}.conf.${i.name}.proxy_arp" true))) + // listToAttrs (flip map (filter (i: i.preferTempAddress) interfaces) + (i: nameValuePair "net.ipv6.conf.${i.name}.use_tempaddr" 2)); # Capabilities won't work unless we have at-least a 4.3 Linux # kernel because we need the ambient capability diff --git a/nixos/modules/virtualisation/lxd.nix b/nixos/modules/virtualisation/lxd.nix index b1ff0337994e..4988886baf60 100644 --- a/nixos/modules/virtualisation/lxd.nix +++ b/nixos/modules/virtualisation/lxd.nix @@ -38,6 +38,15 @@ in environment.systemPackages = [ pkgs.lxd ]; + security.apparmor = { + enable = true; + profiles = [ + "${pkgs.lxc}/etc/apparmor.d/usr.bin.lxc-start" + "${pkgs.lxc}/etc/apparmor.d/lxc-containers" + ]; + packages = [ pkgs.lxc ]; + }; + systemd.services.lxd = { description = "LXD Container Management Daemon"; @@ -47,6 +56,10 @@ in # TODO(wkennington): Add lvm2 and thin-provisioning-tools path = with pkgs; [ acl rsync gnutar xz btrfs-progs gzip dnsmasq squashfsTools iproute iptables ]; + preStart = '' + mkdir -m 0755 -p /var/lib/lxc/rootfs + ''; + serviceConfig.ExecStart = "@${pkgs.lxd.bin}/bin/lxd lxd --syslog --group lxd"; serviceConfig.Type = "simple"; serviceConfig.KillMode = "process"; # when stopping, leave the containers alone diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix index e7f2588f681b..e52a4c3f884e 100644 --- a/nixos/tests/docker-tools.nix +++ b/nixos/tests/docker-tools.nix @@ -9,28 +9,31 @@ import ./make-test.nix ({ pkgs, ... }: { nodes = { docker = { config, pkgs, ... }: { - virtualisation.docker.enable = true; + virtualisation = { + diskSize = 1024; + docker.enable = true; + }; }; }; testScript = - let - dockerImage = pkgs.dockerTools.buildImage { - name = "hello-docker"; - contents = [ pkgs.hello ]; - tag = "sometag"; - - # TODO: create another test checking whether runAsRoot works as intended. - - config = { - Cmd = [ "hello" ]; - }; - }; - - in '' + '' $docker->waitForUnit("sockets.target"); - $docker->succeed("docker load --input='${dockerImage}'"); - $docker->succeed("docker run hello-docker:sometag"); - ''; + $docker->succeed("docker load --input='${pkgs.dockerTools.examples.bash}'"); + $docker->succeed("docker run ${pkgs.dockerTools.examples.bash.imageName} /bin/bash --version"); + + $docker->succeed("docker load --input='${pkgs.dockerTools.examples.nix}'"); + $docker->succeed("docker run ${pkgs.dockerTools.examples.nix.imageName} /bin/nix-store -qR ${pkgs.nix}"); + + # To test the pullImage tool + $docker->succeed("docker load --input='${pkgs.dockerTools.examples.nixFromDockerHub}'"); + $docker->succeed("docker run nixos/nix:1.11 nix-store --version"); + + # To test runAsRoot and entry point + $docker->succeed("docker load --input='${pkgs.dockerTools.examples.nginx}'"); + $docker->succeed("docker run --name nginx -d -p 8000:80 ${pkgs.dockerTools.examples.nginx.imageName}"); + $docker->waitUntilSucceeds('curl http://localhost:8000/'); + $docker->succeed("docker rm --force nginx"); + ''; }) diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix index 182328b32962..bcdbad3bab0c 100644 --- a/nixos/tests/networking.nix +++ b/nixos/tests/networking.nix @@ -476,6 +476,63 @@ let ); ''; }; + privacy = { + name = "Privacy"; + nodes.router = { config, pkgs, ... }: { + virtualisation.vlans = [ 1 ]; + boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true; + networking = { + useNetworkd = networkd; + interfaces.eth1 = { + ipv6Address = "fd00:1234:5678:1::1"; + ipv6PrefixLength = 64; + }; + }; + services.radvd = { + enable = true; + config = '' + interface eth1 { + AdvSendAdvert on; + AdvManagedFlag on; + AdvOtherConfigFlag on; + + prefix fd00:1234:5678:1::/64 { + AdvAutonomous on; + AdvOnLink on; + }; + }; + ''; + }; + }; + nodes.client = { config, pkgs, ... }: with pkgs.lib; { + virtualisation.vlans = [ 1 ]; + networking = { + useNetworkd = networkd; + useDHCP = true; + interfaces.eth1 = { + preferTempAddress = true; + ip4 = mkOverride 0 [ ]; + ip6 = mkOverride 0 [ ]; + }; + }; + }; + testScript = { nodes, ... }: + '' + startAll; + + $client->waitForUnit("network.target"); + $router->waitForUnit("network-online.target"); + + # Wait until we have an ip address + $client->waitUntilSucceeds("ip addr show dev eth1 | grep -q 'fd00:1234:5678:1:'"); + + # Test vlan 1 + $client->waitUntilSucceeds("ping -c 1 fd00:1234:5678:1::1"); + + # Test address used is temporary + $client->waitUntilSucceeds("! ip route get fd00:1234:5678:1::1 | grep -q ':[a-f0-9]*ff:fe[a-f0-9]*:'"); + ''; + }; }; in mapAttrs (const (attrs: makeTest (attrs // { diff --git a/pkgs/applications/audio/sunvox/default.nix b/pkgs/applications/audio/sunvox/default.nix new file mode 100644 index 000000000000..ccbceddefd2f --- /dev/null +++ b/pkgs/applications/audio/sunvox/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchurl, unzip, alsaLib, libX11, libXi, SDL2 }: + +let + libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc alsaLib libX11 libXi SDL2 ]; + arch = + if stdenv.isAarch64 + then "arm64" + else if stdenv.isArm + then "arm_armhf_raspberry_pi" + else if stdenv.is64bit + then "x86_64" + else "x86"; +in +stdenv.mkDerivation rec { + name = "SunVox-${version}"; + version = "1.9.3b"; + + src = fetchurl { + url = "http://www.warmplace.ru/soft/sunvox/sunvox-${version}.zip"; + sha256 = "0k74rcq7niw4p17vj3zp9lpgi932896dmzqv4ln43g0pz7l18c8b"; + }; + + buildInputs = [ unzip ]; + + unpackPhase = "unzip $src"; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share $out/bin + mv sunvox $out/share/ + + bin="$out/share/sunvox/sunvox/linux_${arch}/sunvox" + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${libPath}" \ + "$bin" + + ln -s "$bin" $out/bin/sunvox + ''; + + meta = with stdenv.lib; { + description = "Small, fast and powerful modular synthesizer with pattern-based sequencer"; + license = licenses.unfreeRedistributable; + homepage = "http://www.warmplace.ru/soft/sunvox/"; + maintainers = with maintainers; [ puffnfresh ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix index 8599ff8e93e4..4c825cc9891a 100644 --- a/pkgs/applications/editors/vscode/default.nix +++ b/pkgs/applications/editors/vscode/default.nix @@ -2,7 +2,7 @@ makeWrapper, libXScrnSaver, libxkbfile, libsecret }: let - version = "1.20.0"; + version = "1.20.1"; channel = "stable"; plat = { @@ -12,9 +12,9 @@ let }.${stdenv.system}; sha256 = { - "i686-linux" = "0lhfljcdb05v0p3kc6zimgd2z057397blfp56bhr7v7wnsi6i40k"; - "x86_64-linux" = "138kvqa5cixry62yry0lwzxlk9fs8hb4zqzmsd8ag1jjfma8y45k"; - "x86_64-darwin" = "1adnwlqf2kw8wfjf86a3xg83j1yqnlsdckksw82b06x3j11g91i8"; + "i686-linux" = "0gycz857bl9ikfrylim970qgmyw7rcy3gbg2zsjddp9cgdk9basn"; + "x86_64-linux" = "0rx0qyxv173s9wjw97f94h61f12lh42grnmabgsvwd87b8zx4qim"; + "x86_64-darwin" = "0mqxmmkp3bsmy1g35prsgan61zzq5368gp720v37cwx1rskl0bfg"; }.${stdenv.system}; archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz"; diff --git a/pkgs/applications/misc/memo/default.nix b/pkgs/applications/misc/memo/default.nix index 642b0c65efcd..fc1c08dc2b2c 100644 --- a/pkgs/applications/misc/memo/default.nix +++ b/pkgs/applications/misc/memo/default.nix @@ -1,4 +1,4 @@ -{ fetchFromGitHub, ack , tree, stdenv, ... }: +{ fetchFromGitHub, ag, tree, stdenv, ... }: stdenv.mkDerivation rec { @@ -15,6 +15,9 @@ stdenv.mkDerivation rec { installPhase = '' mkdir -p $out/{bin,share/man/man1,share/bash-completion/completions} + substituteInPlace memo \ + --replace "ack " "${ag}/bin/ag " \ + --replace "tree " "${tree}/bin/tree " mv memo $out/bin/ mv doc/memo.1 $out/share/man/man1/memo.1 mv completion/memo.bash $out/share/bash-completion/completions/memo.sh @@ -32,4 +35,4 @@ stdenv.mkDerivation rec { maintainers = [ stdenv.lib.maintainers.mrVanDalo ]; platforms = stdenv.lib.platforms.all; }; -} \ No newline at end of file +} diff --git a/pkgs/applications/misc/welle-io/default.nix b/pkgs/applications/misc/welle-io/default.nix index b1db01873a3a..d705de1a8cd6 100644 --- a/pkgs/applications/misc/welle-io/default.nix +++ b/pkgs/applications/misc/welle-io/default.nix @@ -3,7 +3,7 @@ , faad2, rtl-sdr, libusb, fftwSinglePrec }: let - version = "1.0-rc1"; + version = "1.0-rc2"; in stdenv.mkDerivation { @@ -13,7 +13,7 @@ in stdenv.mkDerivation { owner = "AlbrechtL"; repo = "welle.io"; rev = "V${version}"; - sha256 = "1xi59rmk3rdqqxxxrm2pbllrlsql46vxs95l1pkfx7bp8f7n7rsv"; + sha256 = "01x4ldq6lvmdrmxi857594nj9xpn2h7848vvf3f54sh1zrawn4k4"; }; nativeBuildInputs = [ cmake pkgconfig ]; diff --git a/pkgs/applications/misc/wsjtx/default.nix b/pkgs/applications/misc/wsjtx/default.nix new file mode 100644 index 000000000000..8a23134e3ed0 --- /dev/null +++ b/pkgs/applications/misc/wsjtx/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, asciidoc, asciidoctor, autoconf, automake, cmake, + docbook_xsl, fftw, fftwFloat, gfortran, libtool, libpulseaudio, qtbase, + qtmultimedia, qtserialport, texinfo, libusb1 }: + +stdenv.mkDerivation rec { + name = "wsjtx-${version}"; + version = "1.8.0"; + + # This is a composite source tarball containing both wsjtx and a hamlib fork + src = fetchurl { + url = "http://physics.princeton.edu/pulsar/K1JT/wsjtx-${version}.tgz"; + sha256 = "21603ad4d5f43cd9c79a6e8cf468bde88c554654012b2c6c1ef9144cfbf668ce"; + }; + + # Hamlib builds with autotools, wsjtx builds with cmake + # Omitting pkgconfig because it causes issues locating the built hamlib + nativeBuildInputs = [ + asciidoc asciidoctor autoconf automake cmake docbook_xsl gfortran libtool + texinfo + ]; + buildInputs = [ fftw fftwFloat libusb1 qtbase qtmultimedia qtserialport ]; + + # Composite build has its own patch step after it extracts the inner archives + postPatch = "cp ${./wsjtx.patch} wsjtx.patch"; + + meta = with stdenv.lib; { + description = "Weak-signal digital communication modes for amateur radio"; + longDescription = '' + WSJT-X implements communication protocols or "modes" called FT8, JT4, JT9, + JT65, QRA64, ISCAT, MSK144, and WSPR, as well as one called Echo for + detecting and measuring your own radio signals reflected from the Moon. + These modes were all designed for making reliable, confirmed ham radio + contacts under extreme weak-signal conditions. + ''; + homepage = http://physics.princeton.edu/pulsar/k1jt/wsjtx.html; + # Older licenses are for the statically-linked hamlib + license = with licenses; [ gpl3Plus gpl2Plus lgpl21Plus ]; + platforms = platforms.linux; + maintainers = [ maintainers.lasandell ]; + }; +} diff --git a/pkgs/applications/misc/wsjtx/wsjtx.patch b/pkgs/applications/misc/wsjtx/wsjtx.patch new file mode 100644 index 000000000000..a5bd7ec3e196 --- /dev/null +++ b/pkgs/applications/misc/wsjtx/wsjtx.patch @@ -0,0 +1,12 @@ +Index: wsjtx/CMakeLists.txt +=================================================================== +--- wsjtx/CMakeLists.txt (revision 8382) ++++ wsjtx/CMakeLists.txt (working copy) +@@ -866,6 +866,7 @@ + find_package (Qt5Widgets 5 REQUIRED) + find_package (Qt5Multimedia 5 REQUIRED) + find_package (Qt5PrintSupport 5 REQUIRED) ++find_package (Qt5SerialPort 5 REQUIRED) + + if (WIN32) + add_definitions (-DQT_NEEDS_QTMAIN) diff --git a/pkgs/applications/networking/browsers/falkon/default.nix b/pkgs/applications/networking/browsers/falkon/default.nix index 9356794bb5d6..90aec9831930 100644 --- a/pkgs/applications/networking/browsers/falkon/default.nix +++ b/pkgs/applications/networking/browsers/falkon/default.nix @@ -2,16 +2,17 @@ , libpthreadstubs, libxcb, libXdmcp, qtsvg, qttools, qtwebengine, qtx11extras, kwallet, openssl }: stdenv.mkDerivation rec { - # Last qupvilla release is 2.1.2 so we add the .1 although it isn't actually a - # release but it is basically 2.1.2 with the falkon name + # KDE hasn't made a release of falkon yet so we just track git for now which is + # based on the most recent release of qupzilla + # This wip version is 2.1.99 so we add the .1 name = "falkon-${version}.1"; - version = "2.1.2"; + version = "2.1.99"; src = fetchFromGitHub { owner = "KDE"; repo = "falkon"; - rev = "eecaf2e9d6b572a7f7d2e6dc324e3d79b61c31db"; - sha256 = "01r5aw10jd0qz7xvad0cqzjbnsj7vwblh54wbq4x1m6xbkp6xcgy"; + rev = "dd3c570c41b4b3d0ad17202b78bf14cf1ac56495"; + sha256 = "07d40cpckaprj74mr06k3mfriwb471bdmq60smls34y62ss55q9d"; }; preConfigure = '' @@ -21,8 +22,6 @@ stdenv.mkDerivation rec { export FALKON_PREFIX=$out ''; - dontUseCmakeConfigure = true; - buildInputs = [ libpthreadstubs libxcb libXdmcp kwallet @@ -31,8 +30,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qmake qttools ]; - # on 2.1.2: RCC: Error in 'autoscroll.qrc': Cannot find file 'locale/ar_SA.qm' - enableParallelBuilding = false; + enableParallelBuilding = true; meta = with stdenv.lib; { description = "QtWebEngine based cross-platform web browser"; @@ -40,6 +38,5 @@ stdenv.mkDerivation rec { license = licenses.gpl3; maintainers = with maintainers; [ peterhoeg ]; platforms = platforms.unix; - broken = true; }; } diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index 010f60881b5b..12ea714fb234 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -71,7 +71,7 @@ let ++ lib.optionals (cfg.enableQuakeLive or false) (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib libudev ]) ++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash - ++ lib.optional (config.pulseaudio or false) libpulseaudio; + ++ lib.optional (config.pulseaudio or true) libpulseaudio; gst-plugins = with gst_all; [ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-ffmpeg ]; gtk_modules = [ libcanberra_gtk2 ]; diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix index b1b1132f22b0..17c285d9bdf7 100644 --- a/pkgs/applications/networking/browsers/google-chrome/default.nix +++ b/pkgs/applications/networking/browsers/google-chrome/default.nix @@ -5,6 +5,7 @@ , libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb , alsaLib, libXdamage, libXtst, libXrandr, expat, cups , dbus_libs, gtk2, gtk3, gdk_pixbuf, gcc-unwrapped, at_spi2_atk +, kerberos # command line arguments which are always set e.g "--disable-gpu" , commandLineArgs ? "" @@ -57,6 +58,7 @@ let liberation_ttf curl utillinux xdg_utils wget flac harfbuzz icu libpng opusWithCustomModes snappy speechd bzip2 libcap at_spi2_atk + kerberos ] ++ optional pulseSupport libpulseaudio ++ [ gtk ]; diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix index 652de194a5e7..3cbc03e8d73c 100644 --- a/pkgs/applications/networking/nextcloud-client/default.nix +++ b/pkgs/applications/networking/nextcloud-client/default.nix @@ -36,7 +36,10 @@ stdenv.mkDerivation rec { "-DINOTIFY_INCLUDE_DIR=${inotify-tools}/include" ]; - postInstall = stdenv.lib.optionalString (withGnomeKeyring) '' + postInstall = '' + sed -i 's/\(Icon.*\)=nextcloud/\1=Nextcloud/g' \ + $out/share/applications/nextcloud.desktop + '' + stdenv.lib.optionalString (withGnomeKeyring) '' wrapProgram "$out/bin/nextcloud" \ --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libgnome_keyring ]} ''; diff --git a/pkgs/common-updater/scripts/update-source-version b/pkgs/common-updater/scripts/update-source-version index 5922f3f30cf2..4c32ae046f31 100755 --- a/pkgs/common-updater/scripts/update-source-version +++ b/pkgs/common-updater/scripts/update-source-version @@ -74,7 +74,7 @@ fi if [ -z "$newHash" ]; then nix-build --no-out-link -A "$attr.src" 2>"$attr.fetchlog" >/dev/null || true # FIXME: use nix-build --hash here once https://github.com/NixOS/nix/issues/1172 is fixed - newHash=$(egrep -v "killing process|dependencies couldn't be built" "$attr.fetchlog" | tail -n2 | grep "output path .* has .* hash .* when .* was expected" | head -n1 | tr -dc '\040-\177' | tr -d "'" | awk '{ print $(NF-4) }') + newHash=$(egrep -v "killing process|dependencies couldn't be built" "$attr.fetchlog" | tail -n2 | sed "s~output path .* has .* hash \(.*\) when .* was expected\|fixed-output derivation produced path '.*' with .* hash '\(.*\)' instead of the expected hash '.*'~\1\2~" | head -n1) fi if [ -z "$newHash" ]; then diff --git a/pkgs/data/fonts/fixedsys-excelsior/default.nix b/pkgs/data/fonts/fixedsys-excelsior/default.nix new file mode 100644 index 000000000000..b0c481dfcb5c --- /dev/null +++ b/pkgs/data/fonts/fixedsys-excelsior/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchurl } : + +let + major = "3"; + minor = "00"; + version = "${major}.${minor}"; + +in + +stdenv.mkDerivation rec { + name = "fixedsys-excelsior-${version}"; + + src = fetchurl { + url = http://www.fixedsysexcelsior.com/fonts/FSEX300.ttf; + sha256 = "6ee0f3573bc5e33e93b616ef6282f49bc0e227a31aa753ac76ed2e3f3d02056d"; + }; + + phases = [ "installPhase" ]; + + installPhase = '' + mkdir -p $out/share/fonts/truetype/ + cp $src $out/share/fonts/truetype/${name}.ttf + ''; + + outputHashMode = "recursive"; + + outputHashAlgo = "sha256"; + + outputHash = "32d6f07f1ff08c764357f8478892b2ba5ade23427af99759f34a0ba24bcd2e37"; + + meta = { + description = "Pan-unicode version of Fixedsys, a classic DOS font."; + homepage = http://www.fixedsysexcelsior.com/; + platforms = stdenv.lib.platforms.all; + license = stdenv.lib.licenses.publicDomain; + maintainers = [ stdenv.lib.maintainers.ninjatrappeur ]; + }; +} diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix index de3544a3a638..094cdb06b698 100644 --- a/pkgs/development/compilers/dmd/default.nix +++ b/pkgs/development/compilers/dmd/default.nix @@ -3,9 +3,9 @@ , curl, tzdata, gdb, darwin , callPackage , bootstrapVersion ? false -, version ? "2.078.1" -, dmdSha256 ? "0b9lphh4g3r9cyzv4wcfppv9j3w952vvwv615za23acgwav3mqg2" -, druntimeSha256 ? "16jv40m073cflpkyl0vmg1g58cianybfcsgcvwli7pfryxbgsbrr" +, version ? "2.078.2" +, dmdSha256 ? "0x9q4aw4jl36dz7m5111y2sm8jdaj3zg36zhj6vqg1lqpdn3bhls" +, druntimeSha256 ? "0nfqjcmwqc490bzi3582x1c3zigkf306g4nyd1cyd3vs8lfm6x66" , phobosSha256 ? "08ircpf4ilznz638kra272hz8fi5ccvw2cswj5hqckssl1lyqzs8" }: @@ -111,7 +111,7 @@ let '' + stdenv.lib.optionalString stdenv.hostPlatform.isLinux '' - # See https://github.com/NixOS/nixpkgs/issues/29443 + # See https://github.com/dlang/phobos/pull/5960 substituteInPlace phobos/std/path.d \ --replace "\"/root" "\"${ROOT_HOME_DIR}" ''; diff --git a/pkgs/development/compilers/jwasm/default.nix b/pkgs/development/compilers/jwasm/default.nix new file mode 100644 index 000000000000..9800b33e7a9e --- /dev/null +++ b/pkgs/development/compilers/jwasm/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub +, cmake }: + +with stdenv.lib; +stdenv.mkDerivation rec { + name = "jwasm-${version}"; + version = "git-2017-11-22"; + + src = fetchFromGitHub { + owner = "JWasm"; + repo = "JWasm"; + rev = "26f97c8b5c9d9341ec45538701116fa3649b7766"; + sha256 = "0m972pc8vk8s9yv1pi85fsjgm6hj24gab7nalw2q04l0359nqi7w"; + }; + + nativeBuildInputs = [ cmake ]; + + installPhase = "mkdir -p $out/bin ; cp jwasm $out/bin/"; + + meta = { + description = "A MASM-compatible x86 assembler"; + homepage = http://jwasm.github.io/; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.darwin ++ platforms.linux; + }; +} diff --git a/pkgs/development/libraries/aws-sdk-cpp/default.nix b/pkgs/development/libraries/aws-sdk-cpp/default.nix index 26511c22d0b6..1983aab0e324 100644 --- a/pkgs/development/libraries/aws-sdk-cpp/default.nix +++ b/pkgs/development/libraries/aws-sdk-cpp/default.nix @@ -3,6 +3,7 @@ apis ? ["*"] , # Whether to enable AWS' custom memory management. customMemoryManagement ? true +, darwin }: let @@ -29,7 +30,11 @@ in stdenv.mkDerivation rec { separateDebugInfo = stdenv.isLinux; nativeBuildInputs = [ cmake curl ]; - buildInputs = [ zlib curl openssl ]; + buildInputs = [ zlib curl openssl ] + ++ lib.optionals (stdenv.isDarwin && + ((builtins.elem "text-to-speech" apis) || + (builtins.elem "*" apis))) + (with darwin.apple_sdk.frameworks; [ CoreAudio AudioToolbox ]); cmakeFlags = lib.optional (!customMemoryManagement) "-DCUSTOM_MEMORY_MANAGEMENT=0" diff --git a/pkgs/development/libraries/cpp-gsl/default.nix b/pkgs/development/libraries/cpp-gsl/default.nix new file mode 100644 index 000000000000..ecd86354ee82 --- /dev/null +++ b/pkgs/development/libraries/cpp-gsl/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, cmake, catch }: + +stdenv.mkDerivation rec { + pname = "GSL-unstable"; + version = "2017-02-15"; + name = "${pname}-${version}"; + + src = fetchFromGitHub { + owner = "Microsoft"; + repo = "GSL"; + rev = "c87c123d1b3e64ae2cf725584f0c004da4d90f1c"; + sha256 = "0h8py468bvxnydkjs352d7a9s8hk0ihc7msjkcnzj2d7nzp5nsc1"; + }; + + nativeBuildInputs = [ cmake catch ]; + + meta = with stdenv.lib; { + homepage = https://github.com/Microsoft/GSL; + description = "C++ Core Guideline support library"; + longDescription = '' + The Guideline Support Library (GSL) contains functions and types that are suggested for + use by the C++ Core Guidelines maintained by the Standard C++ Foundation. + This package contains Microsoft's implementation of GSL. + ''; + platforms = stdenv.lib.platforms.unix; + license = licenses.mit; + maintainers = with maintainers; [ yuriaisaka ]; + }; +} diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix index 3f764b1d8453..9aca076c5dcb 100644 --- a/pkgs/development/libraries/openmpi/default.nix +++ b/pkgs/development/libraries/openmpi/default.nix @@ -29,7 +29,7 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ perl ]; - configureFlags = with stdenv; [] + configureFlags = with stdenv; [ "--disable-mca-dso" ] ++ lib.optional isLinux "--with-libnl=${libnl.dev}" ++ lib.optional enableSGE "--with-sge" ++ lib.optional enablePrefix "--enable-mpirun-prefix-by-default" diff --git a/pkgs/development/libraries/psol/default.nix b/pkgs/development/libraries/psol/default.nix index dd6037e68329..270c24dc01f4 100644 --- a/pkgs/development/libraries/psol/default.nix +++ b/pkgs/development/libraries/psol/default.nix @@ -1,5 +1,5 @@ { callPackage }: callPackage ./generic.nix {} { - version = "1.13.35.1"; # Latest beta, 2017-11-08 - sha256 = "126823gpr3rdqakwixmr887rbvwhksr3xg14jnyzlp84q4hg1p0n"; + version = "1.13.35.2"; # Latest stable, 2018-02-05 + sha256 = "0xi2srf9gx0x2sz9r45zb35k2n0iv457if1lqzvbanls3f935cmr"; } diff --git a/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh b/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh index a1cfae0e6069..522d2c252684 100755 --- a/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh +++ b/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh @@ -1,4 +1,4 @@ -#!@stdenv_shell@ +#!@bash@/bin/bash # Part of NixPkgs package collection # This script can be used at your option under the same license as NixPkgs or # under MIT/X11 license diff --git a/pkgs/development/lisp-modules/clwrapper/common-lisp.sh b/pkgs/development/lisp-modules/clwrapper/common-lisp.sh index 9f5a2b806891..88948e3253df 100755 --- a/pkgs/development/lisp-modules/clwrapper/common-lisp.sh +++ b/pkgs/development/lisp-modules/clwrapper/common-lisp.sh @@ -1,3 +1,3 @@ -#! /bin/sh +#!@bash@/bin/bash source "@out@"/bin/cl-wrapper.sh "${NIX_LISP_COMMAND:-$(@ls@ "@lisp@/bin"/* | @head@ -n 1)}" "$@" diff --git a/pkgs/development/lisp-modules/clwrapper/default.nix b/pkgs/development/lisp-modules/clwrapper/default.nix index fb4a090c702a..c834ab7a305b 100644 --- a/pkgs/development/lisp-modules/clwrapper/default.nix +++ b/pkgs/development/lisp-modules/clwrapper/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, asdf, which, lisp ? null}: +{stdenv, fetchurl, asdf, which, bash, lisp ? null}: stdenv.mkDerivation { name = "cl-wrapper-script"; @@ -36,7 +36,7 @@ stdenv.mkDerivation { buildInputs = [which]; - inherit asdf lisp; + inherit asdf lisp bash; stdenv_shell = stdenv.shell; setupHook = ./setup-hook.sh; diff --git a/pkgs/development/tools/build-managers/dub/default.nix b/pkgs/development/tools/build-managers/dub/default.nix index 8af11f057380..da404a63d85f 100644 --- a/pkgs/development/tools/build-managers/dub/default.nix +++ b/pkgs/development/tools/build-managers/dub/default.nix @@ -4,7 +4,7 @@ let dubBuild = stdenv.mkDerivation rec { name = "dubBuild-${version}"; - version = "1.7.1"; + version = "1.7.2"; enableParallelBuilding = true; @@ -12,9 +12,13 @@ let owner = "dlang"; repo = "dub"; rev = "v${version}"; - sha256 = "09bcc9bq2z1rbm8sdip1l81y5p8q13r30k02lzifyasiplrnpvlv"; + sha256 = "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9"; }; + postUnpack = '' + patchShebangs . + ''; + patches = [ # TODO Remove with next release which contains https://github.com/dlang/dub/pull/1354 (fetchpatch { @@ -23,12 +27,11 @@ let }) ]; + # Can be removed with https://github.com/dlang/dub/pull/1368 + dubvar = "\\$DUB"; postPatch = '' - # Avoid that the version file is overwritten - substituteInPlace build.sh \ - --replace source/dub/version_.d /dev/null - - patchShebangs . + substituteInPlace test/fetchzip.sh \ + --replace "dub remove" "\"${dubvar}\" remove" ''; nativeBuildInputs = [ dmd libevent rsync ]; @@ -70,6 +73,7 @@ let patches = dubBuild.patches; + postUnpack = dubBuild.postUnpack; postPatch = dubBuild.postPatch; nativeBuildInputs = dubBuild.nativeBuildInputs; diff --git a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix index ab090e6dc129..515e22788e50 100644 --- a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix +++ b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix @@ -1,6 +1,6 @@ { stdenv, buildGoPackage, fetchFromGitHub, makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep }: let - version = "2.6.6"; + version = "2.6.9"; goPackagePath = "github.com/buildkite/agent"; in buildGoPackage { @@ -12,11 +12,15 @@ buildGoPackage { owner = "buildkite"; repo = "agent"; rev = "v${version}"; - sha256 = "0rpi63mfzlm39517l4xjcka3m4dnfjzwvpi0i1rpf1z2288cnkyx"; + sha256 = "0rlinj7dcr8vzl1pb15nfny8jkvvj50i8czf4ahv26avnfycm4pz"; }; nativeBuildInputs = [ makeWrapper ]; + # on Linux, the TMPDIR is /build which is the same prefix as this package + # remove once #35068 is merged + noAuditTmpdir = stdenv.isLinux; + postInstall = '' # Install bootstrap.sh mkdir -p $bin/libexec/buildkite-agent @@ -44,6 +48,6 @@ buildGoPackage { homepage = https://buildkite.com/docs/agent; license = licenses.mit; maintainers = with maintainers; [ pawelpacana zimbatm ]; - platforms = platforms.linux ++ platforms.darwin; + platforms = platforms.unix; }; } diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix index 1586d6360877..18ca5d4d8972 100644 --- a/pkgs/development/tools/continuous-integration/jenkins/default.nix +++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "jenkins-${version}"; - version = "2.105"; + version = "2.89.3"; src = fetchurl { - url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war"; - sha256 = "0q6xyjkqlrwjgf7rzmyy8m0w7lhqyavici76zzngg159xkyh5cfh"; + url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war"; + sha256 = "0flqd3r1nip9wc8sy0kiqjivgx0zkpzlkbz6n3gb1plc73lpdwbr"; }; buildCommand = '' diff --git a/pkgs/development/tools/dtools/default.nix b/pkgs/development/tools/dtools/default.nix index daa25de95080..d76bbb7f53a3 100644 --- a/pkgs/development/tools/dtools/default.nix +++ b/pkgs/development/tools/dtools/default.nix @@ -2,14 +2,14 @@ stdenv.mkDerivation rec { name = "dtools-${version}"; - version = "2.078.1"; + version = "2.078.2"; srcs = [ (fetchFromGitHub { owner = "dlang"; repo = "dmd"; rev = "v${version}"; - sha256 = "0b9lphh4g3r9cyzv4wcfppv9j3w952vvwv615za23acgwav3mqg2"; + sha256 = "0x9q4aw4jl36dz7m5111y2sm8jdaj3zg36zhj6vqg1lqpdn3bhls"; name = "dmd"; }) (fetchFromGitHub { @@ -28,23 +28,11 @@ stdenv.mkDerivation rec { cd dtools ''; - postPatch = '' - substituteInPlace posix.mak \ - --replace "../dmd/generated/\$(OS)/release/\$(MODEL)/dmd" ${dmd.out}/bin/dmd - - substituteInPlace posix.mak \ - --replace gcc $CC - - # To fix rdmd test with newer phobos - substituteInPlace rdmd.d \ - --replace " std.stdiobase," "" - ''; - nativeBuildInputs = [ dmd ]; buildInputs = [ curl ]; makeCmd = '' - make -f posix.mak DMD=${dmd.out}/bin/dmd DMD_DIR=dmd + make -f posix.mak DMD_DIR=dmd DMD=${dmd.out}/bin/dmd CC=${stdenv.cc}/bin/cc ''; buildPhase = '' diff --git a/pkgs/development/tools/gotests/default.nix b/pkgs/development/tools/gotests/default.nix new file mode 100644 index 000000000000..ccdab780e6cf --- /dev/null +++ b/pkgs/development/tools/gotests/default.nix @@ -0,0 +1,25 @@ +{ stdenv, lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + name = "gotests-${version}"; + version = "1.5.2"; + rev = "v${version}"; + + goPackagePath = "github.com/cweill/gotests"; + excludedPackages = "testdata"; + goDeps = ./deps.nix; + + src = fetchFromGitHub { + inherit rev; + owner = "cweill"; + repo = "gotests"; + sha256 = "0ff2jvpc1xb5jr6dv9izlpfavxaivzirqmdmicpznrqjz0d56pri"; + }; + + meta = { + description = "Generate Go tests from your source code."; + homepage = https://github.com/cweill/gotests; + maintainers = with stdenv.lib.maintainers; [ vdemeester ]; + license = stdenv.lib.licenses.asl20; + }; +} diff --git a/pkgs/development/tools/gotests/deps.nix b/pkgs/development/tools/gotests/deps.nix new file mode 100644 index 000000000000..6a333b58bec6 --- /dev/null +++ b/pkgs/development/tools/gotests/deps.nix @@ -0,0 +1,11 @@ +[ + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://github.com/golang/tools"; + rev = "96b5a5404f303f074e6117d832a9873c439508f0"; + sha256 = "1h6r9xyp1v3w2x8d108vzghn65l6ia2h895irypmrwymfcp30y42"; + }; + } +] diff --git a/pkgs/development/tools/haskell/lambdabot/default.nix b/pkgs/development/tools/haskell/lambdabot/default.nix index 7282fb4970ee..edf967f7d110 100644 --- a/pkgs/development/tools/haskell/lambdabot/default.nix +++ b/pkgs/development/tools/haskell/lambdabot/default.nix @@ -7,15 +7,13 @@ , configuration ? "[]" }: -# FIXME: fix hoogle search - let allPkgs = pkgs: mueval.defaultPkgs pkgs ++ [ pkgs.lambdabot-trusted ] ++ packages pkgs; mueval' = mueval.override { inherit haskellPackages; packages = allPkgs; }; bins = lib.makeBinPath ([ mueval' - (haskellPackages.ghcWithPackages allPkgs) + (haskellPackages.ghcWithHoogle allPkgs) haskellPackages.unlambda haskellPackages.brainfuck ] diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix index 4c02b4daf1ef..6c19c51c8c86 100644 --- a/pkgs/development/tools/misc/strace/default.nix +++ b/pkgs/development/tools/misc/strace/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "strace-${version}"; - version = "4.20"; + version = "4.21"; src = fetchurl { url = "mirror://sourceforge/strace/${name}.tar.xz"; - sha256 = "08y5b07vb8jc7ak5xc3x2kx1ly6xiwv1gnppcqjs81kks66i9wsv"; + sha256 = "1dvrwi6v9j6b9j6852zzlc61hxgiciadi1xsl89wzbzqlkxnahbd"; }; nativeBuildInputs = [ perl ]; diff --git a/pkgs/games/cataclysm-dda/default.nix b/pkgs/games/cataclysm-dda/default.nix index be6f32654305..a3adec384015 100644 --- a/pkgs/games/cataclysm-dda/default.nix +++ b/pkgs/games/cataclysm-dda/default.nix @@ -1,5 +1,6 @@ { fetchFromGitHub, stdenv, pkgconfig, ncurses, lua, SDL2, SDL2_image, SDL2_ttf, -SDL2_mixer, freetype, gettext, Cocoa, libicns }: +SDL2_mixer, freetype, gettext, Cocoa, libicns, +tiles ? true }: stdenv.mkDerivation rec { version = "0.C"; @@ -13,36 +14,44 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ pkgconfig ] - ++ stdenv.lib.optionals stdenv.isDarwin [ libicns ]; + ++ stdenv.lib.optionals (tiles && stdenv.isDarwin) [ libicns ]; - buildInputs = [ ncurses lua SDL2 SDL2_image SDL2_ttf SDL2_mixer freetype gettext ] - ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ]; + buildInputs = with stdenv.lib; [ ncurses lua gettext ] + ++ optionals tiles [ SDL2 SDL2_image SDL2_ttf SDL2_mixer freetype ] + ++ optionals (tiles && stdenv.isDarwin) [ Cocoa ]; patches = [ ./patches/fix_locale_dir.patch ]; postPatch = '' patchShebangs . - sed -i Makefile \ - -e 's,-Werror,,g' - - sed '1i#include ' \ - -i src/{crafting,skill,weather_data,melee,vehicle,overmap,iuse_actor}.cpp ''; - makeFlags = [ - "PREFIX=$(out) LUA=1 TILES=1 SOUND=1 RELEASE=1 USE_HOME_DIR=1" + makeFlags = with stdenv.lib; [ + "PREFIX=$(out)" + "LUA=1" + "RELEASE=1" + "USE_HOME_DIR=1" # "LANGUAGES=all" # vanilla C:DDA installs all translations even without this flag! - ] ++ stdenv.lib.optionals stdenv.isDarwin [ - "NATIVE=osx CLANG=1" + ] ++ optionals tiles [ + "TILES=1" + "SOUND=1" + ] ++ optionals stdenv.isDarwin [ + "NATIVE=osx" + "CLANG=1" "OSX_MIN=10.6" # SDL for macOS only supports deploying on 10.6 and above + ] ++ optionals stdenv.cc.isGNU [ + "WARNINGS+=-Wno-deprecated-declarations" + "WARNINGS+=-Wno-ignored-attributes" + ] ++ optionals stdenv.cc.isClang [ + "WARNINGS+=-Wno-inconsistent-missing-override" ]; - postBuild = stdenv.lib.optionalString stdenv.isDarwin '' + postBuild = stdenv.lib.optionalString (tiles && stdenv.isDarwin) '' # iconutil on macOS is not available in nixpkgs png2icns data/osx/AppIcon.icns data/osx/AppIcon.iconset/* ''; - postInstall = stdenv.lib.optionalString stdenv.isDarwin '' + postInstall = stdenv.lib.optionalString (tiles && stdenv.isDarwin) '' app=$out/Applications/Cataclysm.app install -D -m 444 data/osx/Info.plist -t $app/Contents install -D -m 444 data/osx/AppIcon.icns -t $app/Contents/Resources @@ -83,7 +92,7 @@ stdenv.mkDerivation rec { substances or radiation, now more closely resemble insects, birds or fish than their original form. ''; - homepage = http://en.cataclysmdda.com/; + homepage = http://cataclysmdda.org/; license = licenses.cc-by-sa-30; maintainers = [ maintainers.skeidel ]; platforms = platforms.unix; diff --git a/pkgs/games/cataclysm-dda/git.nix b/pkgs/games/cataclysm-dda/git.nix index 3d8ec7d68448..fcc2481cb695 100644 --- a/pkgs/games/cataclysm-dda/git.nix +++ b/pkgs/games/cataclysm-dda/git.nix @@ -1,5 +1,6 @@ { fetchFromGitHub, stdenv, pkgconfig, ncurses, lua, SDL2, SDL2_image, SDL2_ttf, -SDL2_mixer, freetype, gettext, CoreFoundation, Cocoa }: +SDL2_mixer, freetype, gettext, CoreFoundation, Cocoa, +tiles ? true }: stdenv.mkDerivation rec { version = "2017-12-09"; @@ -14,28 +15,38 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ ncurses lua SDL2 SDL2_image SDL2_ttf SDL2_mixer freetype gettext ] - ++ stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation Cocoa ]; + buildInputs = with stdenv.lib; [ ncurses lua gettext ] + ++ optionals stdenv.isDarwin [ CoreFoundation ] + ++ optionals tiles [ SDL2 SDL2_image SDL2_ttf SDL2_mixer freetype ] + ++ optionals (tiles && stdenv.isDarwin) [ Cocoa ]; patches = [ ./patches/fix_locale_dir_git.patch ]; postPatch = '' patchShebangs . - sed -i Makefile \ - -e 's,-Werror,,g' - - sed '1i#include ' \ - -i src/{crafting,skill,weather_data,melee,vehicle,overmap,iuse_actor}.cpp + sed -i data/xdg/com.cataclysmdda.cataclysm-dda.desktop \ + -e "s,\(Exec=\)\(cataclysm-tiles\),\1$out/bin/\2," ''; - makeFlags = [ - "PREFIX=$(out) LUA=1 TILES=1 SOUND=1 RELEASE=1 USE_HOME_DIR=1" + makeFlags = with stdenv.lib; [ + "PREFIX=$(out)" + "LUA=1" + "RELEASE=1" + "USE_HOME_DIR=1" "LANGUAGES=all" - ] ++ stdenv.lib.optionals stdenv.isDarwin [ - "NATIVE=osx CLANG=1" + "VERSION=git-${version}-${substring 0 8 src.rev}" + ] ++ optionals tiles [ + "TILES=1" + "SOUND=1" + ] ++ optionals stdenv.isDarwin [ + "NATIVE=osx" + "CLANG=1" ]; - postInstall = stdenv.lib.optionalString stdenv.isDarwin '' + postInstall = with stdenv.lib; optionalString (tiles && !stdenv.isDarwin) '' + install -D -m 444 data/xdg/com.cataclysmdda.cataclysm-dda.desktop -T $out/share/applications/cataclysm-dda.desktop + install -D -m 444 data/xdg/cataclysm-dda.svg -t $out/share/icons/hicolor/scalable/apps + '' + optionalString (tiles && stdenv.isDarwin) '' app=$out/Applications/Cataclysm.app install -D -m 444 data/osx/Info.plist -t $app/Contents install -D -m 444 data/osx/AppIcon.icns -t $app/Contents/Resources @@ -78,7 +89,7 @@ stdenv.mkDerivation rec { substances or radiation, now more closely resemble insects, birds or fish than their original form. ''; - homepage = http://en.cataclysmdda.com/; + homepage = http://cataclysmdda.org/; license = licenses.cc-by-sa-30; platforms = platforms.unix; }; diff --git a/pkgs/misc/apulse/default.nix b/pkgs/misc/apulse/default.nix index 4b2323eaa716..343dbecb22c0 100644 --- a/pkgs/misc/apulse/default.nix +++ b/pkgs/misc/apulse/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "apulse-${version}"; - version = "0.1.10"; + version = "0.1.11"; src = fetchFromGitHub { owner = "i-rinat"; repo = "apulse"; rev = "v${version}"; - sha256 = "018gaxn647wz1vjbr49hfrch9svnv0d1nzijc8ckb4fsr8vv95a1"; + sha256 = "16l278q0czca2794fj388ql6qn1zrw24a0p6k7bayrrf5h32fdzd"; }; enableParallelBuilding = true; diff --git a/pkgs/misc/apulse/pressureaudio.nix b/pkgs/misc/apulse/pressureaudio.nix new file mode 100644 index 000000000000..255fca842a73 --- /dev/null +++ b/pkgs/misc/apulse/pressureaudio.nix @@ -0,0 +1,82 @@ +{ stdenv, apulse, libpulseaudio, pkgconfig, intltool, autoreconfHook }: + +stdenv.mkDerivation { + name = "libpressureaudio-${apulse.version}"; + + src = libpulseaudio.src; + + nativeBuildInputs = [ pkgconfig intltool autoreconfHook ]; + + configurePhase = ":"; + + buildPhase = ":"; + + installPhase = '' + echo "Copying libraries from apulse." + mkdir -p $out/lib + ls ${apulse}/lib/apulse $out/lib + cp -a ${apulse}/lib/apulse/* $out/lib/ + + echo "Copying headers from pulseaudio." + mkdir -p $out/include/pulse + cp -a src/pulse/*.h $out/include/pulse + + echo "Generating custom pkgconfig definitions." + mkdir -p $out/lib/pkgconfig + for a in libpulse.pc libpulse-simple.pc libpulse-mainloop-glib.pc ; do + cat > $out/lib/pkgconfig/$a << EOF + prefix=$out + libdir=$out/lib + includedir=$out/include + + EOF + done + + cat >> $out/lib/pkgconfig/libpulse.pc << EOF + Name: libpulse + Description: PulseAudio Client Interface + Version: ${libpulseaudio.version}-rebootstrapped + Libs: -L$out/lib -lpulse + Cflags: -I$out/include -D_REENTRANT + EOF + + cat >> $out/lib/pkgconfig/libpulse-simple.pc << EOF + Name: libpulse-simple + Description: PulseAudio Simplified Synchronous Client Interface + Version: ${libpulseaudio.version}-rebootstrapped + Libs: -L$out/lib -lpulse-simple + Cflags: -I$out/include -D_REENTRANT + Requires: libpulse + EOF + + cat >> $out/lib/pkgconfig/libpulse-mainloop-glib.pc << EOF + Name: libpulse-mainloop-glib + Description: PulseAudio GLib 2.0 Main Loop Wrapper + Version: ${libpulseaudio.version}-rebootstrapped + Libs: -L$out/lib -lpulse-mainloop-glib + Cflags: -I$out/include -D_REENTRANT + Requires: libpulse glib-2.0 + EOF + ''; + + meta = apulse.meta // { + description = "libpulseaudio without any sound daemons over pure ALSA"; + longDescription = '' + apulse (${apulse.meta.homepage}) implements most of libpulseaudio + API over pure ALSA in 5% LOC of the original PulseAudio. + + But apulse is made to be used as a wrapper that substitutes its + replacement libs into LD_LIBRARY_PATH. The problem with that is + that you still have to link against the original libpulseaudio. + + pressureaudio (http://git.r-36.net/pressureaudio/) wraps apulse + with everything you need to replace libpulseaudio completely. + + This derivation is a reimplementation of pressureaudio in pure + nix. + + You can simply override libpulseaudio with this and most + packages would just work. + ''; + }; +} diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix index 36d0ea6b1e88..780f20017982 100644 --- a/pkgs/servers/http/nginx/modules.nix +++ b/pkgs/servers/http/nginx/modules.nix @@ -152,8 +152,8 @@ moduleSrc = fetchFromGitHub { owner = "pagespeed"; repo = "ngx_pagespeed"; - rev = "v${version}-beta"; - sha256 = "176skx7zmi7islc1hmdxcynix4lkvgmr78lknn13s9gskc7qi25w"; + rev = "v${version}-stable"; + sha256 = "0ry7vmkb2bx0sspl1kgjlrzzz6lbz07313ks2lr80rrdm2zb16wp"; }; ngx_pagespeed = pkgs.runCommand diff --git a/pkgs/servers/softether/4.25.nix b/pkgs/servers/softether/4.25.nix new file mode 100644 index 000000000000..b1e9c5c1a455 --- /dev/null +++ b/pkgs/servers/softether/4.25.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchurl +, openssl, readline, ncurses, zlib }: + +let + os = if stdenv.isLinux then "1" + else if stdenv.isFreeBSD then "2" + else if stdenv.isSunOS then "3" + else if stdenv.isDarwin then "4" + else if stdenv.isOpenBSD then "5" + else ""; + cpuBits = if stdenv.is64bit then "2" else "1"; + +in + +stdenv.mkDerivation rec { + name = "softether-${version}"; + version = "4.25"; + build = "9656"; + compiledDate = "2018.01.15"; + dataDir = "/var/lib/softether"; + + src = fetchurl { + url = "http://www.softether-download.com/files/softether/v${version}-${build}-rtm-${compiledDate}-tree/Source_Code/softether-src-v${version}-${build}-rtm.tar.gz"; + sha256 = "1y1m8lf0xfh7m70d15wj2jjf5a5qhi3j49ciwqmsscsqvb1xwimr"; + }; + + buildInputs = [ openssl readline ncurses zlib ]; + + preConfigure = '' + echo "${os} + ${cpuBits} + " | ./configure + rm configure + ''; + + buildPhase = '' + mkdir -p $out/bin + sed -i \ + -e "/INSTALL_BINDIR=/s|/usr/bin|/bin|g" \ + -e "/_DIR=/s|/usr|${dataDir}|g" \ + -e "s|\$(INSTALL|$out/\$(INSTALL|g" \ + -e "/echo/s|echo $out/|echo |g" \ + Makefile + ''; + + meta = with stdenv.lib; { + description = "An Open-Source Free Cross-platform Multi-protocol VPN Program"; + homepage = https://www.softether.org/; + license = licenses.gpl2; + maintainers = [ maintainers.rick68 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/servers/web-apps/wallabag/default.nix b/pkgs/servers/web-apps/wallabag/default.nix index e6137a2db7c2..07b530f4ef72 100644 --- a/pkgs/servers/web-apps/wallabag/default.nix +++ b/pkgs/servers/web-apps/wallabag/default.nix @@ -13,13 +13,11 @@ stdenv.mkDerivation rec { outputs = [ "out" ]; - patchPhase = '' + patches = [ ./wallabag-data.patch ]; # exposes $WALLABAG_DATA + + prePatch = '' rm Makefile # use the "shared hosting" package with bundled dependencies - substituteInPlace app/AppKernel.php \ - --replace "__DIR__" "getenv('WALLABAG_DATA')" - substituteInPlace var/bootstrap.php.cache \ - --replace "\$this->rootDir = \$this->getRootDir()" "\$this->rootDir = getenv('WALLABAG_DATA')" - ''; # exposes $WALLABAG_DATA + ''; installPhase = '' mkdir $out/ @@ -31,11 +29,12 @@ stdenv.mkDerivation rec { longDescription = '' wallabag is a self hostable application for saving web pages. - To use, point the environment variable $WALLABAG_DATA to a directory called `app` that contains the folder `config` with wallabag's configuration files. These need to be updated every package upgrade. In `app`'s parent folder, a directory called `var` containing wallabag's data will be created. + Point the environment variable $WALLABAG_DATA to a data directory that contains the folder `app/config` which must be a clone of wallabag's configuration files with your customized `parameters.yml`. These need to be updated every package upgrade. After a package upgrade, empty the `var/cache` folder. ''; license = licenses.mit; homepage = http://wallabag.org; + maintainers = with maintainers; [ schneefux ]; platforms = platforms.all; }; } diff --git a/pkgs/servers/web-apps/wallabag/wallabag-data.patch b/pkgs/servers/web-apps/wallabag/wallabag-data.patch new file mode 100644 index 000000000000..086e93959800 --- /dev/null +++ b/pkgs/servers/web-apps/wallabag/wallabag-data.patch @@ -0,0 +1,26 @@ +diff --git a/app/AppKernel.php b/app/AppKernel.php +index 40726f05..7d44e600 100644 +--- a/app/AppKernel.php ++++ b/app/AppKernel.php +@@ -58,14 +58,19 @@ class AppKernel extends Kernel + return $bundles; + } + ++ public function getProjectDir() ++ { ++ return getenv('WALLABAG_DATA') ?: dirname(__DIR__); ++ } ++ + public function getCacheDir() + { +- return dirname(__DIR__) . '/var/cache/' . $this->getEnvironment(); ++ return $this->getProjectDir() . '/var/cache/' . $this->getEnvironment(); + } + + public function getLogDir() + { +- return dirname(__DIR__) . '/var/logs'; ++ return $this->getProjectDir() . '/var/logs'; + } + + public function registerContainerConfiguration(LoaderInterface $loader) diff --git a/pkgs/servers/x11/quartz-wm/default.nix b/pkgs/servers/x11/quartz-wm/default.nix index 45e4df2bb8b9..d724a81debbb 100644 --- a/pkgs/servers/x11/quartz-wm/default.nix +++ b/pkgs/servers/x11/quartz-wm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig, AppKit, Xplugin }: +{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig, AppKit, Xplugin, darwin }: let version = "1.3.1"; in stdenv.mkDerivation { @@ -19,13 +19,11 @@ in stdenv.mkDerivation { xorg.libXext pixman pkgconfig - AppKit Xplugin + AppKit Xplugin darwin.apple_sdk.frameworks.Foundation ]; - NIX_CFLAGS_COMPILE = "-F/System/Library/Frameworks -I/usr/include"; - NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin - "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation"; meta = with lib; { license = licenses.apsl20; platforms = platforms.darwin; + maintainers = with maintainers; [ matthewbauer ]; }; } diff --git a/pkgs/tools/misc/autojump/default.nix b/pkgs/tools/misc/autojump/default.nix index 817510bfb761..ba38a55dda02 100644 --- a/pkgs/tools/misc/autojump/default.nix +++ b/pkgs/tools/misc/autojump/default.nix @@ -22,6 +22,9 @@ in mkdir -p "$out/etc/bash_completion.d" cp -v $out/share/autojump/autojump.bash "$out/etc/bash_completion.d" + mkdir -p $out/share/fish/vendor_completions.d/ + cp -v $out/share/autojump/autojump.fish "$out/share/fish/vendor_completions.d/autojump.fish" + cat <