diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 9b6de47c8e8..e183bd8160d 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -1061,11 +1061,9 @@ in pkgs.mkShell rec { pythonPackages.numpy pythonPackages.requests - # the following packages are related to the dependencies of your python - # project. - # In this particular example the python modules listed in the - # requirements.txt require the following packages to be installed locally - # in order to compile any binary extensions they may require. + # In this particular example, in order to compile any binary extensions they may + # require, the python modules listed in the hypothetical requirements.txt need + # the following packages to be installed locally: taglib openssl git @@ -1075,7 +1073,8 @@ in pkgs.mkShell rec { zlib ]; - # Now we can execute any commands within the virtual environment + # Now we can execute any commands within the virtual environment. + # This is optional and can be left out to run pip manually. postShellHook = '' pip install -r requirements.txt ''; @@ -1091,12 +1090,14 @@ with import { }; let venvDir = "./.venv"; + pythonPackages = python3Packages; in pkgs.mkShell rec { name = "impurePythonEnv"; buildInputs = [ - python3Packages.python - python3Packages.virtualenv - ... + pythonPackages.python + # Needed when using python 2.7 + # pythonPackages.virtualenv + # ... ]; # This is very close to how venvShellHook is implemented, but @@ -1108,14 +1109,18 @@ in pkgs.mkShell rec { echo "Skipping venv creation, '${venvDir}' already exists" else echo "Creating new venv environment in path: '${venvDir}'" + # Note that the module venv was only introduced in python 3, so for 2.7 + # this needs to be replaced with a call to virtualenv ${pythonPackages.python.interpreter} -m venv "${venvDir}" fi # Under some circumstances it might be necessary to add your virtual # environment to PYTHONPATH, which you can do here too; - # PYTHONPATH=$PWD/${venvDir}/${python.sitePackages}/:$PYTHONPATH + # PYTHONPATH=$PWD/${venvDir}/${pythonPackages.python.sitePackages}/:$PYTHONPATH source "${venvDir}/bin/activate" + + # As in the previous example, this is optional. pip install -r requirements.txt ''; } diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index fe887b9d7ce..8a806baf984 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3878,6 +3878,12 @@ githubId = 17659803; name = "Matthias Axel Kröll"; }; + kristian-brucaj = { + email = "kbrucaj@gmail.com"; + github = "kristian-brucaj"; + githubID = "8893110"; + name = "Kristian Brucaj"; + }; kristoff3r = { email = "k.soeholm@gmail.com"; github = "kristoff3r"; diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml index 74cfbfc782a..d21ac882f27 100644 --- a/nixos/doc/manual/release-notes/rl-2003.xml +++ b/nixos/doc/manual/release-notes/rl-2003.xml @@ -577,6 +577,27 @@ auth required pam_succeed_if.so uid >= 1000 quiet as they aren't provided by upstream anymore. + + + The module has been removed + as it used the deprecated version of dnscrypt-proxy. We've added + to use the supported version. + + + + + qesteidutil has been deprecated in favor of qdigidoc. + + + + + sqldeveloper_18 has been removed as it's not maintained anymore, + sqldeveloper has been updated to version 19.4. + Please note that this means that this means that the oraclejdk is now + required. For further information please read the + release notes. + + diff --git a/nixos/modules/config/ldap.nix b/nixos/modules/config/ldap.nix index 9c8e9d14937..b554f197dc4 100644 --- a/nixos/modules/config/ldap.nix +++ b/nixos/modules/config/ldap.nix @@ -28,8 +28,6 @@ let }; nslcdConfig = writeText "nslcd.conf" '' - uid nslcd - gid nslcd uri ${cfg.server} base ${cfg.base} timelimit ${toString cfg.timeLimit} @@ -282,6 +280,7 @@ in Group = "nslcd"; RuntimeDirectory = [ "nslcd" ]; PIDFile = "/run/nslcd/nslcd.pid"; + AmbientCapabilities = "CAP_SYS_RESOURCE"; }; }; diff --git a/nixos/modules/config/resolvconf.nix b/nixos/modules/config/resolvconf.nix index 7d2f252a888..cc202bca6c4 100644 --- a/nixos/modules/config/resolvconf.nix +++ b/nixos/modules/config/resolvconf.nix @@ -38,6 +38,7 @@ in (mkRenamedOptionModule [ "networking" "dnsExtensionMechanism" ] [ "networking" "resolvconf" "dnsExtensionMechanism" ]) (mkRenamedOptionModule [ "networking" "extraResolvconfConf" ] [ "networking" "resolvconf" "extraConfig" ]) (mkRenamedOptionModule [ "networking" "resolvconfOptions" ] [ "networking" "resolvconf" "extraOptions" ]) + (mkRemovedOptionModule [ "networking" "resolvconf" "useHostResolvConf" ] "This option was never used for anything anyways") ]; options = { @@ -53,15 +54,6 @@ in ''; }; - useHostResolvConf = mkOption { - type = types.bool; - default = false; - description = '' - In containers, whether to use the - resolv.conf supplied by the host. - ''; - }; - dnsSingleRequest = lib.mkOption { type = types.bool; default = false; diff --git a/nixos/modules/hardware/openrazer.nix b/nixos/modules/hardware/openrazer.nix index 883db7f2f4f..b5c3d674414 100644 --- a/nixos/modules/hardware/openrazer.nix +++ b/nixos/modules/hardware/openrazer.nix @@ -49,7 +49,7 @@ in { options = { hardware.openrazer = { - enable = mkEnableOption "OpenRazer drivers and userspace daemon."; + enable = mkEnableOption "OpenRazer drivers and userspace daemon"; verboseLogging = mkOption { type = types.bool; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index b6b41f6a169..fb5331f11ab 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -529,6 +529,7 @@ ./services/monitoring/prometheus/alertmanager.nix ./services/monitoring/prometheus/exporters.nix ./services/monitoring/prometheus/pushgateway.nix + ./services/monitoring/prometheus/xmpp-alerts.nix ./services/monitoring/riemann.nix ./services/monitoring/riemann-dash.nix ./services/monitoring/riemann-tools.nix @@ -590,7 +591,7 @@ ./services/networking/dhcpd.nix ./services/networking/dnscache.nix ./services/networking/dnschain.nix - ./services/networking/dnscrypt-proxy.nix + ./services/networking/dnscrypt-proxy2.nix ./services/networking/dnscrypt-wrapper.nix ./services/networking/dnsdist.nix ./services/networking/dnsmasq.nix diff --git a/nixos/modules/programs/bash/bash.nix b/nixos/modules/programs/bash/bash.nix index 366c07c0a35..be964ce7f3f 100644 --- a/nixos/modules/programs/bash/bash.nix +++ b/nixos/modules/programs/bash/bash.nix @@ -32,6 +32,10 @@ let fi ''; + lsColors = optionalString cfg.enableLsColors '' + eval "$(${pkgs.coreutils}/bin/dircolors -b)" + ''; + bashAliases = concatStringsSep "\n" ( mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}") (filterAttrs (k: v: v != null) cfg.shellAliases) @@ -127,6 +131,14 @@ in type = types.bool; }; + enableLsColors = mkOption { + default = true; + description = '' + Enable extra colors in directory listings. + ''; + type = types.bool; + }; + }; }; @@ -156,6 +168,7 @@ in ${cfg.promptInit} ${bashCompletion} + ${lsColors} ${bashAliases} ${cfge.interactiveShellInit} diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index dbe687d8e22..3b1b1b8bb55 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -41,6 +41,7 @@ with lib; LightDM. Please use the services.xserver.displayManager.lightdm.autoLogin options instead, or any other display manager in NixOS as they all support auto-login. '') + (mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead") # Do NOT add any option renames here, see top of the file ]; diff --git a/nixos/modules/services/hardware/irqbalance.nix b/nixos/modules/services/hardware/irqbalance.nix index b139154432c..c79e0eb83ec 100644 --- a/nixos/modules/services/hardware/irqbalance.nix +++ b/nixos/modules/services/hardware/irqbalance.nix @@ -13,18 +13,12 @@ in config = mkIf cfg.enable { - systemd.services = { - irqbalance = { - description = "irqbalance daemon"; - path = [ pkgs.irqbalance ]; - serviceConfig = - { ExecStart = "${pkgs.irqbalance}/bin/irqbalance --foreground"; }; - wantedBy = [ "multi-user.target" ]; - }; - }; - environment.systemPackages = [ pkgs.irqbalance ]; + systemd.services.irqbalance.wantedBy = ["multi-user.target"]; + + systemd.packages = [ pkgs.irqbalance ]; + }; } diff --git a/nixos/modules/services/monitoring/prometheus/xmpp-alerts.nix b/nixos/modules/services/monitoring/prometheus/xmpp-alerts.nix new file mode 100644 index 00000000000..44b15cb2034 --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/xmpp-alerts.nix @@ -0,0 +1,47 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.prometheus.xmpp-alerts; + + configFile = pkgs.writeText "prometheus-xmpp-alerts.yml" (builtins.toJSON cfg.configuration); + +in + +{ + options.services.prometheus.xmpp-alerts = { + + enable = mkEnableOption "XMPP Web hook service for Alertmanager"; + + configuration = mkOption { + type = types.attrs; + description = "Configuration as attribute set which will be converted to YAML"; + }; + + }; + + config = mkIf cfg.enable { + systemd.services.prometheus-xmpp-alerts = { + wantedBy = [ "multi-user.target" ]; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + serviceConfig = { + ExecStart = "${pkgs.prometheus-xmpp-alerts}/bin/prometheus-xmpp-alerts --config ${configFile}"; + Restart = "on-failure"; + DynamicUser = true; + PrivateTmp = true; + PrivateDevices = true; + ProtectHome = true; + ProtectSystem = "strict"; + ProtectKernelTunables = true; + ProtectKernelModules = true; + ProtectControlGroups = true; + NoNewPrivileges = true; + SystemCallArchitectures = "native"; + RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ]; + SystemCallFilter = [ "@system-service" ]; + }; + }; + }; +} diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix index 6972c833cc5..f476b147a57 100644 --- a/nixos/modules/services/networking/dhcpcd.nix +++ b/nixos/modules/services/networking/dhcpcd.nix @@ -190,6 +190,8 @@ in before = [ "network-online.target" ]; after = [ "systemd-udev-settle.service" ]; + restartTriggers = [ exitHook ]; + # Stopping dhcpcd during a reconfiguration is undesirable # because it brings down the network interfaces configured by # dhcpcd. So do a "systemctl restart" instead. diff --git a/nixos/modules/services/networking/dnscrypt-proxy.nix b/nixos/modules/services/networking/dnscrypt-proxy.nix deleted file mode 100644 index 8edcf925dbf..00000000000 --- a/nixos/modules/services/networking/dnscrypt-proxy.nix +++ /dev/null @@ -1,328 +0,0 @@ -{ config, lib, pkgs, ... }: -with lib; - -let - cfg = config.services.dnscrypt-proxy; - - stateDirectory = "/var/lib/dnscrypt-proxy"; - - # The minisign public key used to sign the upstream resolver list. - # This is somewhat more flexible than preloading the key as an - # embedded string. - upstreamResolverListPubKey = pkgs.fetchurl { - url = https://raw.githubusercontent.com/dyne/dnscrypt-proxy/master/minisign.pub; - sha256 = "18lnp8qr6ghfc2sd46nn1rhcpr324fqlvgsp4zaigw396cd7vnnh"; - }; - - # Internal flag indicating whether the upstream resolver list is used. - useUpstreamResolverList = cfg.customResolver == null; - - # The final local address. - localAddress = "${cfg.localAddress}:${toString cfg.localPort}"; - - # The final resolvers list path. - resolverList = "${stateDirectory}/dnscrypt-resolvers.csv"; - - # Build daemon command line - - resolverArgs = - if (cfg.customResolver == null) - then - [ "-L ${resolverList}" - "-R ${cfg.resolverName}" - ] - else with cfg.customResolver; - [ "-N ${name}" - "-k ${key}" - "-r ${address}:${toString port}" - ]; - - daemonArgs = - [ "-a ${localAddress}" ] - ++ resolverArgs - ++ cfg.extraArgs; -in - -{ - meta = { - maintainers = with maintainers; [ joachifm ]; - doc = ./dnscrypt-proxy.xml; - }; - - options = { - # Before adding another option, consider whether it could - # equally well be passed via extraArgs. - - services.dnscrypt-proxy = { - enable = mkOption { - default = false; - type = types.bool; - description = "Whether to enable the DNSCrypt client proxy"; - }; - - localAddress = mkOption { - default = "127.0.0.1"; - type = types.str; - description = '' - Listen for DNS queries to relay on this address. The only reason to - change this from its default value is to proxy queries on behalf - of other machines (typically on the local network). - ''; - }; - - localPort = mkOption { - default = 53; - type = types.int; - description = '' - Listen for DNS queries to relay on this port. The default value - assumes that the DNSCrypt proxy should relay DNS queries directly. - When running as a forwarder for another DNS client, set this option - to a different value; otherwise leave the default. - ''; - }; - - resolverName = mkOption { - default = "random"; - example = "dnscrypt.eu-nl"; - type = types.nullOr types.str; - description = '' - The name of the DNSCrypt resolver to use, taken from - ${resolverList}. The default is to - pick a random non-logging resolver that supports DNSSEC. - ''; - }; - - customResolver = mkOption { - default = null; - description = '' - Use an unlisted resolver (e.g., a private DNSCrypt provider). For - advanced users only. If specified, this option takes precedence. - ''; - type = types.nullOr (types.submodule ({ ... }: { options = { - address = mkOption { - type = types.str; - description = "IP address"; - example = "208.67.220.220"; - }; - - port = mkOption { - type = types.int; - description = "Port"; - default = 443; - }; - - name = mkOption { - type = types.str; - description = "Fully qualified domain name"; - example = "2.dnscrypt-cert.example.com"; - }; - - key = mkOption { - type = types.str; - description = "Public key"; - example = "B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79"; - }; - }; })); - }; - - extraArgs = mkOption { - default = []; - type = types.listOf types.str; - description = '' - Additional command-line arguments passed verbatim to the daemon. - See dnscrypt-proxy - 8 for details. - ''; - example = [ "-X libdcplugin_example_cache.so,--min-ttl=60" ]; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [{ - assertions = [ - { assertion = (cfg.customResolver != null) || (cfg.resolverName != null); - message = "please configure upstream DNSCrypt resolver"; - } - ]; - - # make man 8 dnscrypt-proxy work - environment.systemPackages = [ pkgs.dnscrypt-proxy ]; - - users.users.dnscrypt-proxy = { - description = "dnscrypt-proxy daemon user"; - isSystemUser = true; - group = "dnscrypt-proxy"; - }; - users.groups.dnscrypt-proxy = {}; - - systemd.sockets.dnscrypt-proxy = { - description = "dnscrypt-proxy listening socket"; - documentation = [ "man:dnscrypt-proxy(8)" ]; - - wantedBy = [ "sockets.target" ]; - - socketConfig = { - ListenStream = localAddress; - ListenDatagram = localAddress; - }; - }; - - systemd.services.dnscrypt-proxy = { - description = "dnscrypt-proxy daemon"; - documentation = [ "man:dnscrypt-proxy(8)" ]; - - before = [ "nss-lookup.target" ]; - after = [ "network.target" ]; - requires = [ "dnscrypt-proxy.socket "]; - - serviceConfig = { - NonBlocking = "true"; - ExecStart = "${pkgs.dnscrypt-proxy}/bin/dnscrypt-proxy ${toString daemonArgs}"; - ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; - - User = "dnscrypt-proxy"; - - PrivateTmp = true; - PrivateDevices = true; - ProtectHome = true; - }; - }; - } - - (mkIf config.security.apparmor.enable { - systemd.services.dnscrypt-proxy.after = [ "apparmor.service" ]; - - security.apparmor.profiles = singleton (pkgs.writeText "apparmor-dnscrypt-proxy" '' - ${pkgs.dnscrypt-proxy}/bin/dnscrypt-proxy { - /dev/null rw, - /dev/random r, - /dev/urandom r, - - /etc/passwd r, - /etc/group r, - ${config.environment.etc."nsswitch.conf".source} r, - - ${getLib pkgs.glibc}/lib/*.so mr, - ${pkgs.tzdata}/share/zoneinfo/** r, - - network inet stream, - network inet6 stream, - network inet dgram, - network inet6 dgram, - - ${getLib pkgs.dnscrypt-proxy}/lib/dnscrypt-proxy/libdcplugin*.so mr, - - ${getLib pkgs.gcc.cc}/lib/libssp.so.* mr, - ${getLib pkgs.libsodium}/lib/libsodium.so.* mr, - ${getLib pkgs.systemd}/lib/libsystemd.so.* mr, - ${getLib pkgs.utillinuxMinimal.out}/lib/libmount.so.* mr, - ${getLib pkgs.utillinuxMinimal.out}/lib/libblkid.so.* mr, - ${getLib pkgs.utillinuxMinimal.out}/lib/libuuid.so.* mr, - ${getLib pkgs.xz}/lib/liblzma.so.* mr, - ${getLib pkgs.libgcrypt}/lib/libgcrypt.so.* mr, - ${getLib pkgs.libgpgerror}/lib/libgpg-error.so.* mr, - ${getLib pkgs.libcap}/lib/libcap.so.* mr, - ${getLib pkgs.lz4}/lib/liblz4.so.* mr, - ${getLib pkgs.attr}/lib/libattr.so.* mr, # */ - - ${resolverList} r, - - /run/systemd/notify rw, - } - ''); - }) - - (mkIf useUpstreamResolverList { - systemd.services.init-dnscrypt-proxy-statedir = { - description = "Initialize dnscrypt-proxy state directory"; - - wantedBy = [ "dnscrypt-proxy.service" ]; - before = [ "dnscrypt-proxy.service" ]; - - script = '' - mkdir -pv ${stateDirectory} - chown -c dnscrypt-proxy:dnscrypt-proxy ${stateDirectory} - cp -uv \ - ${pkgs.dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv \ - ${stateDirectory} - ''; - - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - }; - }; - - systemd.services.update-dnscrypt-resolvers = { - description = "Update list of DNSCrypt resolvers"; - - requires = [ "init-dnscrypt-proxy-statedir.service" ]; - after = [ "init-dnscrypt-proxy-statedir.service" ]; - - path = with pkgs; [ curl diffutils dnscrypt-proxy minisign ]; - script = '' - cd ${stateDirectory} - domain=raw.githubusercontent.com - get="curl -fSs --resolve $domain:443:$(hostip -r 8.8.8.8 $domain | head -1)" - $get -o dnscrypt-resolvers.csv.tmp \ - https://$domain/dyne/dnscrypt-proxy/master/dnscrypt-resolvers.csv - $get -o dnscrypt-resolvers.csv.minisig.tmp \ - https://$domain/dyne/dnscrypt-proxy/master/dnscrypt-resolvers.csv.minisig - mv dnscrypt-resolvers.csv.minisig{.tmp,} - if ! minisign -q -V -p ${upstreamResolverListPubKey} \ - -m dnscrypt-resolvers.csv.tmp -x dnscrypt-resolvers.csv.minisig ; then - echo "failed to verify resolver list!" >&2 - exit 1 - fi - [[ -f dnscrypt-resolvers.csv ]] && mv dnscrypt-resolvers.csv{,.old} - mv dnscrypt-resolvers.csv{.tmp,} - if cmp dnscrypt-resolvers.csv{,.old} ; then - echo "no change" - else - echo "resolver list updated" - fi - ''; - - serviceConfig = { - PrivateTmp = true; - PrivateDevices = true; - ProtectHome = true; - ProtectSystem = "strict"; - ReadWritePaths = "${dirOf stateDirectory} ${stateDirectory}"; - SystemCallFilter = "~@mount"; - }; - }; - - systemd.timers.update-dnscrypt-resolvers = { - wantedBy = [ "timers.target" ]; - timerConfig = { - OnBootSec = "5min"; - OnUnitActiveSec = "6h"; - }; - }; - }) - ]); - - imports = [ - (mkRenamedOptionModule [ "services" "dnscrypt-proxy" "port" ] [ "services" "dnscrypt-proxy" "localPort" ]) - - (mkChangedOptionModule - [ "services" "dnscrypt-proxy" "tcpOnly" ] - [ "services" "dnscrypt-proxy" "extraArgs" ] - (config: - let val = getAttrFromPath [ "services" "dnscrypt-proxy" "tcpOnly" ] config; in - optional val "-T")) - - (mkChangedOptionModule - [ "services" "dnscrypt-proxy" "ephemeralKeys" ] - [ "services" "dnscrypt-proxy" "extraArgs" ] - (config: - let val = getAttrFromPath [ "services" "dnscrypt-proxy" "ephemeralKeys" ] config; in - optional val "-E")) - - (mkRemovedOptionModule [ "services" "dnscrypt-proxy" "resolverList" ] '' - The current resolver listing from upstream is always used - unless a custom resolver is specified. - '') - ]; -} diff --git a/nixos/modules/services/networking/dnscrypt-proxy.xml b/nixos/modules/services/networking/dnscrypt-proxy.xml deleted file mode 100644 index afc7880392a..00000000000 --- a/nixos/modules/services/networking/dnscrypt-proxy.xml +++ /dev/null @@ -1,66 +0,0 @@ - - DNSCrypt client proxy - - The DNSCrypt client proxy relays DNS queries to a DNSCrypt enabled upstream - resolver. The traffic between the client and the upstream resolver is - encrypted and authenticated, mitigating the risk of MITM attacks, DNS - poisoning attacks, and third-party snooping (assuming the upstream is - trustworthy). - - - Basic configuration - - - To enable the client proxy, set - - = true; - - - - - Enabling the client proxy does not alter the system nameserver; to relay - local queries, prepend 127.0.0.1 to - . - - - - As a forwarder for another DNS client - - - To run the DNSCrypt proxy client as a forwarder for another DNS client, - change the default proxy listening port to a non-standard value and point - the other client to it: - - = 43; - - - - - dnsmasq - - -{ - = true; - = [ "127.0.0.1#43" ]; -} - - - - - - unbound - - -{ - = true; - = [ "127.0.0.1@43" ]; -} - - - - - diff --git a/nixos/modules/services/networking/dnscrypt-proxy2.nix b/nixos/modules/services/networking/dnscrypt-proxy2.nix new file mode 100644 index 00000000000..e48eb729103 --- /dev/null +++ b/nixos/modules/services/networking/dnscrypt-proxy2.nix @@ -0,0 +1,61 @@ +{ config, lib, pkgs, ... }: with lib; + +let + cfg = config.services.dnscrypt-proxy2; +in + +{ + options.services.dnscrypt-proxy2 = { + enable = mkEnableOption "dnscrypt-proxy2"; + + settings = mkOption { + description = '' + Attrset that is converted and passed as TOML config file. + For available params, see: + ''; + example = literalExample '' + { + sources.public-resolvers = { + urls = [ "https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md" ]; + cache_file = "public-resolvers.md"; + minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"; + refresh_delay = 72; + }; + } + ''; + type = types.attrs; + default = {}; + }; + + configFile = mkOption { + description = '' + Path to TOML config file. See: + If this option is set, it will override any configuration done in options.services.dnscrypt-proxy2.settings. + ''; + example = "/etc/dnscrypt-proxy/dnscrypt-proxy.toml"; + type = types.path; + default = pkgs.runCommand "dnscrypt-proxy.toml" { + json = builtins.toJSON cfg.settings; + passAsFile = [ "json" ]; + } '' + ${pkgs.remarshal}/bin/json2toml < $jsonPath > $out + ''; + defaultText = literalExample "TOML file generated from services.dnscrypt-proxy2.settings"; + }; + }; + + config = mkIf cfg.enable { + + networking.nameservers = lib.mkDefault [ "127.0.0.1" ]; + + systemd.services.dnscrypt-proxy2 = { + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + AmbientCapabilities = "CAP_NET_BIND_SERVICE"; + DynamicUser = true; + ExecStart = "${pkgs.dnscrypt-proxy2}/bin/dnscrypt-proxy -config ${cfg.configFile}"; + }; + }; + }; +} diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix index 9a4db84f7b7..26c1197bf97 100644 --- a/nixos/modules/system/boot/loader/grub/grub.nix +++ b/nixos/modules/system/boot/loader/grub/grub.nix @@ -630,7 +630,7 @@ in boot.loader.grub.extraPrepareConfig = concatStrings (mapAttrsToList (n: v: '' - ${pkgs.coreutils}/bin/cp -pf "${v}" "/boot/${n}" + ${pkgs.coreutils}/bin/cp -pf "${v}" "@bootPath@/${n}" '') config.boot.loader.grub.extraFiles); assertions = [ diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl index a09c5dc4761..ca0fb0248e0 100644 --- a/nixos/modules/system/boot/loader/grub/install-grub.pl +++ b/nixos/modules/system/boot/loader/grub/install-grub.pl @@ -475,6 +475,9 @@ if ($grubVersion == 2) { } } +# extraPrepareConfig could refer to @bootPath@, which we have to substitute +$extraPrepareConfig =~ s/\@bootPath\@/$bootPath/g; + # Run extraPrepareConfig in sh if ($extraPrepareConfig ne "") { system((get("shell"), "-c", $extraPrepareConfig)); diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 941df5797c6..2a5b3608311 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -697,6 +697,16 @@ in ''; }; + systemd.sleep.extraConfig = mkOption { + default = ""; + type = types.lines; + example = "HibernateDelaySec=1h"; + description = '' + Extra config options for systemd sleep state logic. + See sleep.conf.d(5) man page for available options. + ''; + }; + systemd.user.extraConfig = mkOption { default = ""; type = types.lines; @@ -863,6 +873,7 @@ in "systemd/sleep.conf".text = '' [Sleep] + ${config.systemd.sleep.extraConfig} ''; # install provided sysctl snippets diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 282d31005f0..17f36265c51 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -65,7 +65,7 @@ in couchdb = handleTest ./couchdb.nix {}; deluge = handleTest ./deluge.nix {}; dhparams = handleTest ./dhparams.nix {}; - dnscrypt-proxy = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy.nix {}; + dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {}; docker = handleTestOn ["x86_64-linux"] ./docker.nix {}; docker-containers = handleTestOn ["x86_64-linux"] ./docker-containers.nix {}; docker-edge = handleTestOn ["x86_64-linux"] ./docker-edge.nix {}; @@ -213,8 +213,7 @@ in openldap = handleTest ./openldap.nix {}; opensmtpd = handleTest ./opensmtpd.nix {}; openssh = handleTest ./openssh.nix {}; - # openstack-image-userdata doesn't work in a sandbox as the simulated openstack instance needs network access - #openstack-image-userdata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).userdata or {}; + openstack-image-userdata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).userdata or {}; openstack-image-metadata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).metadata or {}; orangefs = handleTest ./orangefs.nix {}; os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {}; diff --git a/nixos/tests/dnscrypt-proxy.nix b/nixos/tests/dnscrypt-proxy2.nix similarity index 50% rename from nixos/tests/dnscrypt-proxy.nix rename to nixos/tests/dnscrypt-proxy2.nix index 98153d5c904..b614d912a9f 100644 --- a/nixos/tests/dnscrypt-proxy.nix +++ b/nixos/tests/dnscrypt-proxy2.nix @@ -1,5 +1,5 @@ import ./make-test-python.nix ({ pkgs, ... }: { - name = "dnscrypt-proxy"; + name = "dnscrypt-proxy2"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ joachifm ]; }; @@ -13,9 +13,16 @@ import ./make-test-python.nix ({ pkgs, ... }: { { security.apparmor.enable = true; - services.dnscrypt-proxy.enable = true; - services.dnscrypt-proxy.localPort = localProxyPort; - services.dnscrypt-proxy.extraArgs = [ "-X libdcplugin_example.so" ]; + services.dnscrypt-proxy2.enable = true; + services.dnscrypt-proxy2.settings = { + listen_addresses = [ "127.0.0.1:${toString localProxyPort}" ]; + sources.public-resolvers = { + urls = [ "https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md" ]; + cache_file = "public-resolvers.md"; + minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"; + refresh_delay = 72; + }; + }; services.dnsmasq.enable = true; services.dnsmasq.servers = [ "127.0.0.1#${toString localProxyPort}" ]; @@ -24,12 +31,6 @@ import ./make-test-python.nix ({ pkgs, ... }: { testScript = '' client.wait_for_unit("dnsmasq") - - # The daemon is socket activated; sending a single ping should activate it. - client.fail("systemctl is-active dnscrypt-proxy") - client.execute( - "${pkgs.iputils}/bin/ping -c1 example.com" - ) - client.wait_until_succeeds("systemctl is-active dnscrypt-proxy") + client.wait_for_unit("dnscrypt-proxy2") ''; }) diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix index ca28bc31cf1..17260ce6406 100644 --- a/nixos/tests/misc.nix +++ b/nixos/tests/misc.nix @@ -1,6 +1,6 @@ # Miscellaneous small tests that don't warrant their own VM run. -import ./make-test.nix ({ pkgs, ...} : rec { +import ./make-test-python.nix ({ pkgs, ...} : rec { name = "misc"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ eelco ]; @@ -34,109 +34,97 @@ import ./make-test.nix ({ pkgs, ...} : rec { testScript = '' - subtest "nix-db", sub { - my $json = $machine->succeed("nix path-info --json ${foo}"); - $json =~ /"narHash":"sha256:0afw0d9j1hvwiz066z93jiddc33nxg6i6qyp26vnqyglpyfivlq5"/ or die "narHash not set"; - $json =~ /"narSize":128/ or die "narSize not set"; - }; + import json - subtest "nixos-version", sub { - $machine->succeed("[ `nixos-version | wc -w` = 2 ]"); - }; - subtest "nixos-rebuild", sub { - $machine->succeed("nixos-rebuild --help | grep 'NixOS module' "); - }; + def get_path_info(path): + result = machine.succeed(f"nix path-info --json {path}") + parsed = json.loads(result) + return parsed - # Sanity check for uid/gid assignment. - subtest "users-groups", sub { - $machine->succeed("[ `id -u messagebus` = 4 ]"); - $machine->succeed("[ `id -g messagebus` = 4 ]"); - $machine->succeed("[ `getent group users` = 'users:x:100:' ]"); - }; - # Regression test for GMP aborts on QEMU. - subtest "gmp", sub { - $machine->succeed("expr 1 + 2"); - }; + with subtest("nix-db"): + info = get_path_info("${foo}") - # Test that the swap file got created. - subtest "swapfile", sub { - $machine->waitForUnit("root-swapfile.swap"); - $machine->succeed("ls -l /root/swapfile | grep 134217728"); - }; + if ( + info[0]["narHash"] + != "sha256:0afw0d9j1hvwiz066z93jiddc33nxg6i6qyp26vnqyglpyfivlq5" + ): + raise Exception("narHash not set") - # Test whether kernel.poweroff_cmd is set. - subtest "poweroff_cmd", sub { - $machine->succeed("[ -x \"\$(cat /proc/sys/kernel/poweroff_cmd)\" ]") - }; + if info[0]["narSize"] != 128: + raise Exception("narSize not set") - # Test whether the blkio controller is properly enabled. - subtest "blkio-cgroup", sub { - $machine->succeed("[ -n \"\$(cat /sys/fs/cgroup/blkio/blkio.sectors)\" ]") - }; + with subtest("nixos-version"): + machine.succeed("[ `nixos-version | wc -w` = 2 ]") - # Test whether we have a reboot record in wtmp. - subtest "reboot-wtmp", sub { - $machine->shutdown; - $machine->waitForUnit('multi-user.target'); - $machine->succeed("last | grep reboot >&2"); - }; + with subtest("nixos-rebuild"): + assert "NixOS module" in machine.succeed("nixos-rebuild --help") - # Test whether we can override environment variables. - subtest "override-env-var", sub { - $machine->succeed('[ "$EDITOR" = emacs ]'); - }; + with subtest("Sanity check for uid/gid assignment"): + assert "4" == machine.succeed("id -u messagebus").strip() + assert "4" == machine.succeed("id -g messagebus").strip() + assert "users:x:100:" == machine.succeed("getent group users").strip() - # Test whether hostname (and by extension nss_myhostname) works. - subtest "hostname", sub { - $machine->succeed('[ "`hostname`" = machine ]'); - #$machine->succeed('[ "`hostname -s`" = machine ]'); - }; + with subtest("Regression test for GMP aborts on QEMU."): + machine.succeed("expr 1 + 2") - # Test whether systemd-udevd automatically loads modules for our hardware. - $machine->succeed("systemctl start systemd-udev-settle.service"); - subtest "udev-auto-load", sub { - $machine->waitForUnit('systemd-udev-settle.service'); - $machine->succeed('lsmod | grep mousedev'); - }; + with subtest("the swap file got created"): + machine.wait_for_unit("root-swapfile.swap") + machine.succeed("ls -l /root/swapfile | grep 134217728") - # Test whether systemd-tmpfiles-clean works. - subtest "tmpfiles", sub { - $machine->succeed('touch /tmp/foo'); - $machine->succeed('systemctl start systemd-tmpfiles-clean'); - $machine->succeed('[ -e /tmp/foo ]'); - $machine->succeed('date -s "@$(($(date +%s) + 1000000))"'); # move into the future - $machine->succeed('systemctl start systemd-tmpfiles-clean'); - $machine->fail('[ -e /tmp/foo ]'); - }; + with subtest("whether kernel.poweroff_cmd is set"): + machine.succeed('[ -x "$(cat /proc/sys/kernel/poweroff_cmd)" ]') - # Test whether automounting works. - subtest "automount", sub { - $machine->fail("grep '/tmp2 tmpfs' /proc/mounts"); - $machine->succeed("touch /tmp2/x"); - $machine->succeed("grep '/tmp2 tmpfs' /proc/mounts"); - }; + with subtest("whether the blkio controller is properly enabled"): + machine.succeed("[ -e /sys/fs/cgroup/blkio/blkio.reset_stats ]") - subtest "shell-vars", sub { - $machine->succeed('[ -n "$NIX_PATH" ]'); - }; + with subtest("whether we have a reboot record in wtmp"): + machine.shutdown + machine.wait_for_unit("multi-user.target") + machine.succeed("last | grep reboot >&2") - subtest "nix-db", sub { - $machine->succeed("nix-store -qR /run/current-system | grep nixos-"); - }; + with subtest("whether we can override environment variables"): + machine.succeed('[ "$EDITOR" = emacs ]') - # Test sysctl - subtest "sysctl", sub { - $machine->waitForUnit("systemd-sysctl.service"); - $machine->succeed('[ `sysctl -ne vm.swappiness` = 1 ]'); - $machine->execute('sysctl vm.swappiness=60'); - $machine->succeed('[ `sysctl -ne vm.swappiness` = 60 ]'); - }; + with subtest("whether hostname (and by extension nss_myhostname) works"): + assert "machine" == machine.succeed("hostname").strip() + assert "machine" == machine.succeed("hostname -s").strip() - # Test boot parameters - subtest "bootparam", sub { - $machine->succeed('grep -Fq vsyscall=emulate /proc/cmdline'); - }; + with subtest("whether systemd-udevd automatically loads modules for our hardware"): + machine.succeed("systemctl start systemd-udev-settle.service") + machine.wait_for_unit("systemd-udev-settle.service") + assert "mousedev" in machine.succeed("lsmod") + + with subtest("whether systemd-tmpfiles-clean works"): + machine.succeed( + "touch /tmp/foo", "systemctl start systemd-tmpfiles-clean", "[ -e /tmp/foo ]" + ) + # move into the future + machine.succeed( + 'date -s "@$(($(date +%s) + 1000000))"', + "systemctl start systemd-tmpfiles-clean", + ) + machine.fail("[ -e /tmp/foo ]") + + with subtest("whether automounting works"): + machine.fail("grep '/tmp2 tmpfs' /proc/mounts") + machine.succeed("touch /tmp2/x") + machine.succeed("grep '/tmp2 tmpfs' /proc/mounts") + + with subtest("shell-vars"): + machine.succeed('[ -n "$NIX_PATH" ]') + + with subtest("nix-db"): + machine.succeed("nix-store -qR /run/current-system | grep nixos-") + + with subtest("Test sysctl"): + machine.wait_for_unit("systemd-sysctl.service") + assert "1" == machine.succeed("sysctl -ne vm.swappiness").strip() + machine.execute("sysctl vm.swappiness=60") + assert "60" == machine.succeed("sysctl -ne vm.swappiness").strip() + + with subtest("Test boot parameters"): + assert "vsyscall=emulate" in machine.succeed("cat /proc/cmdline") ''; }) diff --git a/nixos/tests/openstack-image.nix b/nixos/tests/openstack-image.nix index 8a21dd1b599..97c9137fe1d 100644 --- a/nixos/tests/openstack-image.nix +++ b/nixos/tests/openstack-image.nix @@ -16,6 +16,12 @@ let ../maintainers/scripts/openstack/openstack-image.nix ../modules/testing/test-instrumentation.nix ../modules/profiles/qemu-guest.nix + { + # Needed by nixos-rebuild due to lack of network access. + system.extraDependencies = with pkgs; [ + stdenv + ]; + } ]; }).config.system.build.openstackImage + "/nixos.qcow2"; diff --git a/pkgs/applications/editors/kdevelop5/kdev-php.nix b/pkgs/applications/editors/kdevelop5/kdev-php.nix index 35efe76cfb2..72ef0810704 100644 --- a/pkgs/applications/editors/kdevelop5/kdev-php.nix +++ b/pkgs/applications/editors/kdevelop5/kdev-php.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "kdev-php"; - version = "5.4.6"; + version = "5.5.0"; src = fetchurl { url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz"; - sha256 = "0p532r0ld6j6fpwqyf9m5m0d27y37chgbvcjp1x6g5jjvm7m77xk"; + sha256 = "1hd3ckayrwszda517zfvhihrfmzq4m3kcsrz4sqkbvib0giwsfkp"; }; nativeBuildInputs = [ cmake extra-cmake-modules ]; diff --git a/pkgs/applications/editors/kdevelop5/kdev-python.nix b/pkgs/applications/editors/kdevelop5/kdev-python.nix index 0f15a63be7a..275aaba4f2e 100644 --- a/pkgs/applications/editors/kdevelop5/kdev-python.nix +++ b/pkgs/applications/editors/kdevelop5/kdev-python.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "kdev-python"; - version = "5.4.6"; + version = "5.5.0"; src = fetchurl { url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz"; - sha256 = "1xzk0zgbc4nnz8gjbhw5h6kwznzxsqrg19ggyb8ijpmgg0ncxk8l"; + sha256 = "0kna6vkxc6lrfzb3gzn11qvw8jpa86gi1k996hdk83gn0lhmkvx5"; }; cmakeFlags = [ diff --git a/pkgs/applications/editors/kdevelop5/kdevelop.nix b/pkgs/applications/editors/kdevelop5/kdevelop.nix index ed5017a0487..51dfbbab61e 100644 --- a/pkgs/applications/editors/kdevelop5/kdevelop.nix +++ b/pkgs/applications/editors/kdevelop5/kdevelop.nix @@ -10,11 +10,11 @@ mkDerivation rec { pname = "kdevelop"; - version = "5.4.6"; + version = "5.5.0"; src = fetchurl { url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz"; - sha256 = "01jmrmwbc1hrvq7jdfcc7mxl03q2l6kz57yca2j26xwyvfcfv5sz"; + sha256 = "0438721v24pim5q0q54ivsws9a679fm7ymrm1nn9g1fv06qsm4d8"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/graphics/xournalpp/default.nix b/pkgs/applications/graphics/xournalpp/default.nix index 76f8e03fa13..65aa17e3b4e 100644 --- a/pkgs/applications/graphics/xournalpp/default.nix +++ b/pkgs/applications/graphics/xournalpp/default.nix @@ -1,5 +1,4 @@ { stdenv -, lib , fetchFromGitHub , cmake @@ -23,13 +22,13 @@ stdenv.mkDerivation rec { pname = "xournalpp"; - version = "1.0.16"; + version = "1.0.17"; src = fetchFromGitHub { owner = "xournalpp"; repo = pname; rev = version; - sha256 = "1bdmxxkcqpjvkckizmrz2839b4yspw4xv69bqkrrgkcyvxsr804w"; + sha256 = "0xw2mcgnm4sa9hrhfgp669lfypw97drxjmz5w8i5whaprpvmkxzw"; }; nativeBuildInputs = [ cmake gettext pkgconfig wrapGAppsHook ]; @@ -45,7 +44,9 @@ stdenv.mkDerivation rec { portaudio zlib ] - ++ lib.optional withLua lua; + ++ stdenv.lib.optional withLua lua; + + buildFlags = "translations"; hardeningDisable = [ "format" ]; @@ -53,9 +54,9 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Xournal++ is a handwriting Notetaking software with PDF annotation support"; - homepage = https://github.com/xournalpp/xournalpp; + homepage = "https://github.com/xournalpp/xournalpp"; license = licenses.gpl2; - maintainers = with maintainers; [ andrew-d ]; + maintainers = with maintainers; [ andrew-d sikmir ]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix index f6236a301db..98aebc32dba 100644 --- a/pkgs/applications/misc/dbeaver/default.nix +++ b/pkgs/applications/misc/dbeaver/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { pname = "dbeaver-ce"; - version = "6.3.3"; + version = "6.3.4"; desktopItem = makeDesktopItem { name = "dbeaver"; @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; - sha256 = "08rf7igfzh5g40bapsj0f424jxfx62y97syr3fxmqv3ik7iav9k4"; + sha256 = "1b4ac7vsfz3c9vk7yv33pcfflcxl5fcnbzfdva1yfq63v28g38gk"; }; installPhase = '' diff --git a/pkgs/applications/misc/heimer/default.nix b/pkgs/applications/misc/heimer/default.nix index 5f403c9b7b6..fe746349155 100644 --- a/pkgs/applications/misc/heimer/default.nix +++ b/pkgs/applications/misc/heimer/default.nix @@ -2,13 +2,13 @@ mkDerivation rec { pname = "heimer"; - version = "1.13.1"; + version = "1.15.0"; src = fetchFromGitHub { owner = "juzzlin"; repo = pname; rev = version; - sha256 = "1s6s5rlzr917hq7370pmikbdvd6y468cyxw614ah65d4v105qfv7"; + sha256 = "1qh8nr6yvxiy8pxl5pkhzlfr7hanxxc8hd8h00gsdxa0vgmqz11q"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix index a1015c880df..6ab297c6970 100644 --- a/pkgs/applications/misc/hugo/default.nix +++ b/pkgs/applications/misc/hugo/default.nix @@ -2,7 +2,7 @@ buildGoModule rec { pname = "hugo"; - version = "0.63.2"; + version = "0.64.0"; goPackagePath = "github.com/gohugoio/hugo"; @@ -10,10 +10,10 @@ buildGoModule rec { owner = "gohugoio"; repo = pname; rev = "v${version}"; - sha256 = "1fylsx2isvims0xwcj831b1zcwsmd3igrnxjad44rhl2k3anq8vm"; + sha256 = "10zbi2414c9grqhi9vcj3sczjh7hf20dihvcsirj551fmiqxrvpy"; }; - modSha256 = "0h95r3m6ca60dn1bllnw127nbfnkdjld94c3nyrzlwdczl2iaiyf"; + modSha256 = "18wfsp3ypfxj5qljmb19kzyc5byf413nkabz5mfvq8srjhcq1ifl"; buildFlags = [ "-tags" "extended" ]; @@ -23,6 +23,6 @@ buildGoModule rec { description = "A fast and modern static website engine."; homepage = "https://gohugo.io"; license = licenses.asl20; - maintainers = with maintainers; [ schneefux filalex77 ]; + maintainers = with maintainers; [ schneefux filalex77 Frostman ]; }; } diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix index fd91a981e57..4219851fc9d 100644 --- a/pkgs/applications/misc/joplin-desktop/default.nix +++ b/pkgs/applications/misc/joplin-desktop/default.nix @@ -2,7 +2,7 @@ let pname = "joplin-desktop"; - version = "1.0.177"; + version = "1.0.179"; desktopItem = makeDesktopItem { name = "Joplin"; exec = "joplin-desktop"; @@ -13,7 +13,7 @@ in appimageTools.wrapType2 rec { name = "${pname}-${version}"; src = fetchurl { url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.AppImage"; - sha256 = "023q3yxqsv0vd76bvfhyhh0pnfia01rflfpyv0i6w6xnb5hm2jp7"; + sha256 = "0v7d5wzwiznl755pl6jfg33g6jxr1cbm9j13jpbmfi497hj8w82k"; }; diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix index ac46c48d407..fd56830d17f 100644 --- a/pkgs/applications/misc/josm/default.nix +++ b/pkgs/applications/misc/josm/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "josm"; - version = "15628"; + version = "15806"; src = fetchurl { url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar"; - sha256 = "19yn311h9x1434832i0awpv2n9vhbhkk1j1mi9zggy9f256f80c6"; + sha256 = "03a1hw566z6jd232hjkxjxqs1ggd0ir12ndkz9swxkif6aqbrnvs"; }; buildInputs = [ jdk11 makeWrapper ]; diff --git a/pkgs/applications/misc/jotta-cli/default.nix b/pkgs/applications/misc/jotta-cli/default.nix index a5196811a6a..48f369d3029 100644 --- a/pkgs/applications/misc/jotta-cli/default.nix +++ b/pkgs/applications/misc/jotta-cli/default.nix @@ -5,11 +5,10 @@ let in stdenv.mkDerivation rec { pname = "jotta-cli"; - version = "0.6.18626"; - src = - fetchzip { + version = "0.6.21799"; + src = fetchzip { url = "https://repo.jotta.us/archives/linux/${arch}/jotta-cli-${version}_linux_${arch}.tar.gz"; - sha256 = "0v9bw0f2mcvmzp7v8gs6q4p1q54rflqnbjv5sw7h1kyfwznmflzj"; + sha256 = "19axrcfmycmdfgphkfwl9qgwd9xj8g37gmwi4ynb45w7nhfid5vm"; stripRoot = false; }; diff --git a/pkgs/applications/misc/lyx/default.nix b/pkgs/applications/misc/lyx/default.nix index f7964e4e5c6..675f0adfc7f 100644 --- a/pkgs/applications/misc/lyx/default.nix +++ b/pkgs/applications/misc/lyx/default.nix @@ -1,14 +1,14 @@ -{ fetchurl, lib, mkDerivation, pkgconfig, python, file, bc, fetchpatch +{ fetchurl, lib, mkDerivation, pkgconfig, python, file, bc , qtbase, qtsvg, hunspell, makeWrapper #, mythes, boost }: mkDerivation rec { - version = "2.3.0"; + version = "2.3.4"; pname = "lyx"; src = fetchurl { url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${pname}-${version}.tar.xz"; - sha256 = "0axri2h8xkna4mkfchfyyysbjl7s486vx80p5hzj9zgsvdm5a3ri"; + sha256 = "0qgvc19flnf6ny3ffyj8civwaxrnwcdlw2v708hg49cbmg6f8igh"; }; # LaTeX is used from $PATH, as people often want to have it with extra pkgs @@ -34,13 +34,6 @@ mkDerivation rec { " --prefix PATH : ${python}/bin" ]; - patches = [ - (fetchpatch { - url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-office/lyx/files/lyx-2.3.0-qt-5.11.patch?id=07e82fd1fc07bf055c78b81eaa128f8f837da80d"; - sha256 = "1bnx0il2iv36lnrnyb370wyvww0rd8bphcy6z8d7zmvd3pwhyfql"; - }) - ]; - meta = with lib; { description = "WYSIWYM frontend for LaTeX, DocBook"; homepage = http://www.lyx.org; diff --git a/pkgs/applications/misc/pueue/default.nix b/pkgs/applications/misc/pueue/default.nix new file mode 100644 index 00000000000..762d1d6d15c --- /dev/null +++ b/pkgs/applications/misc/pueue/default.nix @@ -0,0 +1,28 @@ +{ lib, rustPlatform, fetchFromGitHub, installShellFiles }: + +rustPlatform.buildRustPackage rec { + pname = "pueue"; + version = "0.1.5"; + + src = fetchFromGitHub { + owner = "Nukesor"; + repo = pname; + rev = "v${version}"; + sha256 = "03aj4vw8kvwqk1i1a4kah5b574ahs930ij7xmqsvdy7f8c2g6pbq"; + }; + + nativeBuildInputs = [ installShellFiles ]; + + cargoSha256 = "1y33n0dmrssv35l0apfq1mchyh92cfbzjarh0m8zb2nxwhvk7paw"; + + postInstall = '' + installShellCompletion utils/completions/pueue.{bash,fish} --zsh utils/completions/_pueue + ''; + + meta = with lib; { + description = "A daemon for managing long running shell commands"; + homepage = "https://github.com/Nukesor/pueue"; + license = licenses.mit; + maintainers = [ maintainers.marsam ]; + }; +} diff --git a/pkgs/applications/misc/xca/default.nix b/pkgs/applications/misc/xca/default.nix index 8c5a2e3d2db..8946e83c94a 100644 --- a/pkgs/applications/misc/xca/default.nix +++ b/pkgs/applications/misc/xca/default.nix @@ -3,13 +3,13 @@ mkDerivation rec { pname = "xca"; - version = "2.1.2"; + version = "2.2.1"; src = fetchFromGitHub { owner = "chris2511"; repo = "xca"; rev = "RELEASE.${version}"; - sha256 = "0slfqmz0b01lwmrv4h78hmrsdrhcyc7sjzsxcw05ylgmhvdq3dw9"; + sha256 = "0na2816lkfkkvssh9kmf5vwy6x8kd4x7h138jzy61wrvs69vhnbi"; }; postPatch = '' diff --git a/pkgs/applications/networking/browsers/otter/default.nix b/pkgs/applications/networking/browsers/otter/default.nix deleted file mode 100644 index d41f8440420..00000000000 --- a/pkgs/applications/networking/browsers/otter/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ stdenv, cmake, fetchFromGitHub -, qtbase, qtmultimedia, qtwebengine, qtxmlpatterns -, version ? "1.0.01" -, sourceSha ? "1jw8bj3lcqngr0mqwvz1gf47qjxbwiyda7x4sm96a6ckga7pcwyb" -}: -stdenv.mkDerivation { - pname = "otter-browser"; - inherit version; - - src = fetchFromGitHub { - owner = "OtterBrowser"; - repo = "otter-browser"; - rev = "v${version}"; - sha256 = sourceSha; - }; - - nativeBuildInputs = [ cmake ]; - - buildInputs = [ qtbase qtmultimedia qtwebengine qtxmlpatterns ]; - - meta = with stdenv.lib; { - homepage = https://otter-browser.org; - license = licenses.gpl3Plus; - description = "Browser aiming to recreate the best aspects of the classic Opera (12.x) UI using Qt5"; - maintainers = with maintainers; [ lheckemann ]; - }; -} diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix index 80945fbc2bd..4824e6aabdd 100644 --- a/pkgs/applications/networking/browsers/qutebrowser/default.nix +++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix @@ -21,12 +21,12 @@ let in mkDerivationWith python3Packages.buildPythonApplication rec { pname = "qutebrowser"; - version = "1.9.0"; + version = "1.10.0"; # the release tarballs are different from the git checkout! src = fetchurl { url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz"; - sha256 = "1y0yq1qfr6g1s7kf3w2crd0b025dv2dfknhlz3v0001ns3rgwj17"; + sha256 = "1prvd3cysmcjfybn0dmr3ih0bl6lm5ml9i7wd09fn8hb7047mkby"; }; # Needs tox diff --git a/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch b/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch index 985f916b32c..d54a37fe71f 100644 --- a/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch +++ b/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch @@ -1,8 +1,8 @@ -diff --git a/qutebrowser/app.py b/qutebrowser/app.py -index a47b5d2f4..f23ee23ef 100644 ---- a/qutebrowser/app.py -+++ b/qutebrowser/app.py -@@ -573,13 +573,8 @@ class Quitter(QObject): +diff --git a/quitter.py b/quitterb.py +index a42b9d0..f544ccb 100644 +--- a/qutebrowser/misc/quitter.py ++++ b/qutebrowser/misc/quitter.py +@@ -112,13 +112,7 @@ class Quitter(QObject): Return: The commandline as a list of strings. """ @@ -14,7 +14,6 @@ index a47b5d2f4..f23ee23ef 100644 - else: - args = [sys.executable, '-m', 'qutebrowser'] + args = ['@qutebrowser@'] -+ cwd = None # Add all open pages so they get reopened. page_args = [] # type: typing.MutableSequence[str] diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix index 8c381df122d..2d29a409d37 100644 --- a/pkgs/applications/networking/flexget/default.nix +++ b/pkgs/applications/networking/flexget/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "FlexGet"; - version = "3.1.13"; + version = "3.1.18"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "51215f71ed2d2666313c7965a2b22b5463b4a51f319d64db61f6a4fd221e124e"; + sha256 = "34be4ac61dbb5699cfbc9db8bf4f4be15a63164d9006d8ac7c488278d00baa62"; }; postPatch = '' diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix index 4358ed8f201..be1fe96526c 100644 --- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -23,7 +23,7 @@ let else ""); in stdenv.mkDerivation rec { pname = "signal-desktop"; - version = "1.30.0"; # Please backport all updates to the stable channel. + version = "1.30.1"; # Please backport all updates to the stable channel. # All releases have a limited lifetime and "expire" 90 days after the release. # When releases "expire" the application becomes unusable until an update is # applied. The expiration date for the current release can be extracted with: @@ -33,7 +33,7 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; - sha256 = "1gbvna40sc83s7mwip5281yn4bs0k19fj061y0xzwkvh0yk06x3i"; + sha256 = "08l51f1fq9jlnqb4j38lxdfwfbqfzb85zrim57wlgcj8azp2ash6"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix index f3d96a1b5c6..632a485381d 100644 --- a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix +++ b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "wee-slack"; - version = "2.3.0"; + version = "2.4.0"; src = fetchFromGitHub { repo = "wee-slack"; owner = "wee-slack"; rev = "v${version}"; - sha256 = "0544j6vqbvb2xshq7ma2a3apx2vvpgfg3jh5prg265wnh4991nsw"; + sha256 = "0h425ln5vv76zv41dccapyfbl8qmmflbpwmrd26knqyj8k24zfpr"; }; patches = [ diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix index 6915cfd7982..0fa30a85d1b 100644 --- a/pkgs/applications/networking/mailreaders/aerc/default.nix +++ b/pkgs/applications/networking/mailreaders/aerc/default.nix @@ -3,15 +3,19 @@ , python3, perl, w3m, dante }: -buildGoModule rec { +let + rev = "ea0df7bee433fedae5716906ea56141f92b9ce53"; +in buildGoModule rec { pname = "aerc"; - version = "0.3.0"; + version = "unstable-2020-02-01"; src = fetchurl { - url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz"; - sha256 = "188jln8hmgiqn5il5m54bns0wk4grj09di8y6mmid58ibw6spma4"; + url = "https://git.sr.ht/~sircmpwn/aerc/archive/${rev}.tar.gz"; + sha256 = "1bx2fypw053v3bzalfgyi6a0s5fvv040z8jy4i63s7p53m8gmzs9"; }; + modSha256 = "127xrah6xxrvc224g5dxn432sagrssx8v7phzapcsdajsnmagq6x"; + nativeBuildInputs = [ go scdoc @@ -51,8 +55,6 @@ buildGoModule rec { ${stdenv.lib.makeBinPath [ w3m dante ]} ''; - modSha256 = "0pxbv4zfhii0g41cy0ycfpkkxw6nnd4ibavic6zqw30j476jnm2x"; - meta = with stdenv.lib; { description = "aerc is an email client for your terminal"; homepage = https://aerc-mail.org/; diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix index 68a454745c7..077e4157ef5 100644 --- a/pkgs/applications/networking/remote/teamviewer/default.nix +++ b/pkgs/applications/networking/remote/teamviewer/default.nix @@ -6,11 +6,11 @@ mkDerivation rec { pname = "teamviewer"; - version = "15.0.8397"; + version = "15.1.3937"; src = fetchurl { url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb"; - sha256 = "0bidlwlpzqpba9c0zfasm08vp308hgfnq4pslj1b04v64mlci66s"; + sha256 = "0v7733g795b15l2fya26sq710p0mg3wqhkahrg4w84y69p9zz2pf"; }; unpackPhase = '' diff --git a/pkgs/applications/networking/station/default.nix b/pkgs/applications/networking/station/default.nix index afc89fe7802..b0e53a054d2 100644 --- a/pkgs/applications/networking/station/default.nix +++ b/pkgs/applications/networking/station/default.nix @@ -3,7 +3,6 @@ let pname = "station"; version = "1.52.2"; -in appimageTools.wrapType2 rec { name = "${pname}-${version}"; src = fetchurl { @@ -11,6 +10,12 @@ in appimageTools.wrapType2 rec { sha256 = "0lhiwvnf94is9klvzrqv2wri53gj8nms9lg2678bs4y58pvjxwid"; }; + appimageContents = appimageTools.extractType2 { + inherit name src; + }; +in appimageTools.wrapType2 rec { + inherit name src; + profile = '' export LC_ALL=C.UTF-8 export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS @@ -18,7 +23,14 @@ in appimageTools.wrapType2 rec { multiPkgs = null; extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs; - extraInstallCommands = "mv $out/bin/{${name},${pname}}"; + extraInstallCommands = '' + mv $out/bin/{${name},${pname}} + install -m 444 -D ${appimageContents}/browserx.desktop $out/share/applications/browserx.desktop + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/browserx.png \ + $out/share/icons/hicolor/512x512/apps/browserx.png + substituteInPlace $out/share/applications/browserx.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; meta = with lib; { description = "A single place for all of your web applications"; diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix index 8a110c63929..2d7624ed89c 100644 --- a/pkgs/applications/networking/syncthing/default.nix +++ b/pkgs/applications/networking/syncthing/default.nix @@ -3,19 +3,19 @@ let common = { stname, target, postInstall ? "" }: buildGoModule rec { - version = "1.3.3"; + version = "1.3.4"; name = "${stname}-${version}"; src = fetchFromGitHub { owner = "syncthing"; repo = "syncthing"; rev = "v${version}"; - sha256 = "0bcp8kbj8xsnly2dfafnfvj6vl27mbgvj84pjk0wxdjfnr2my9ic"; + sha256 = "076k06p2vqqz2r5bgvqkjipnhznbfbalp3pa2gjm2j9hy7nldr9f"; }; goPackagePath = "github.com/syncthing/syncthing"; - modSha256 = "0kv24bi3w3pvjyjng7ly67brq8wkc1xnhsyha1h7v3jbmj5fgb12"; + modSha256 = "10fgfjip5xr8lim2z0dh7399xpcnhxis9s9yd36fk934h1k1hwzd"; patches = [ ./add-stcli-target.patch diff --git a/pkgs/applications/office/elementary-planner/default.nix b/pkgs/applications/office/elementary-planner/default.nix new file mode 100644 index 00000000000..abc227e9e39 --- /dev/null +++ b/pkgs/applications/office/elementary-planner/default.nix @@ -0,0 +1,71 @@ +{ stdenv, fetchFromGitHub, fetchpatch +, meson, ninja, pkgconfig, desktop-file-utils +, python3, vala, wrapGAppsHook +, evolution-data-server +, libical +, libgee +, json-glib +, glib +, sqlite +, libsoup +, gtk3 +, pantheon /* granite, icons, maintainers */ +, webkitgtk +}: + +stdenv.mkDerivation rec { + pname = "elementary-planner"; + version = "2.1.1"; + + src = fetchFromGitHub { + owner = "alainm23"; + repo = "planner"; + rev = version; + sha256 = "0swj94pqf00wwzsgjap8z19k33gg1wj2b78ba1aj9h791j8lmaim"; + }; + + nativeBuildInputs = [ + desktop-file-utils + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + evolution-data-server + libical + libgee + json-glib + glib + sqlite + libsoup + gtk3 + pantheon.granite + webkitgtk + pantheon.elementary-icon-theme + ]; + + # Fix version string, remove in next update! + patches = [ + (fetchpatch { + url = "https://github.com/alainm23/planner/pull/194/commits/3d0a2197087b13fe90fa6f85f817ba56798d632c.patch"; + sha256 = "077q5jddi8jaw2ypc6szbd1c50i4x3b21jvmvi3w7g5zhjwpkmf5"; + }) + ]; + + postPatch = '' + chmod +x build-aux/meson/post_install.py + patchShebangs build-aux/meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Task and project manager designed to elementary OS"; + homepage = "https://planner-todo.web.app"; + license = licenses.gpl3; + maintainers = with maintainers; [ dtzWill ] ++ pantheon.maintainers; + }; +} + diff --git a/pkgs/applications/office/ktimetracker/default.nix b/pkgs/applications/office/ktimetracker/default.nix new file mode 100644 index 00000000000..8a40a3f4f69 --- /dev/null +++ b/pkgs/applications/office/ktimetracker/default.nix @@ -0,0 +1,32 @@ +{ mkDerivation, lib, fetchurl, cmake, pkgconfig, extra-cmake-modules, +kconfig, kconfigwidgets, kdbusaddons, kdoctools, ki18n, kidletime, +kjobwidgets, kio, knotifications, kwindowsystem, kxmlgui, ktextwidgets, +kcalendarcore +}: + +mkDerivation rec { + pname = "ktimetracker"; + version = "5.0.1"; + + src = fetchurl { + url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz"; + sha256 = "0jp63fby052rapjjaz413b1wjz4qsgpxh82y2d75jzimch0n5s02"; + }; + + nativeBuildInputs = [ + cmake pkgconfig extra-cmake-modules + ]; + + buildInputs = [ + kconfig kconfigwidgets kdbusaddons kdoctools ki18n kidletime kjobwidgets +kio knotifications kwindowsystem kxmlgui ktextwidgets + kcalendarcore + ]; + + meta = with lib; { + description = "Todo management and time tracking application"; + license = licenses.gpl2; + homepage = "https://userbase.kde.org/KTimeTracker"; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/pkgs/applications/office/zanshin/default.nix b/pkgs/applications/office/zanshin/default.nix index b76e09d4d1d..b4adc947c4d 100644 --- a/pkgs/applications/office/zanshin/default.nix +++ b/pkgs/applications/office/zanshin/default.nix @@ -1,21 +1,19 @@ { mkDerivation, lib, - fetchFromGitHub, + fetchurl, extra-cmake-modules, qtbase, boost, akonadi-calendar, akonadi-notes, akonadi-search, kidentitymanagement, kontactinterface, kldap, - krunner, kwallet + krunner, kwallet, kcalendarcore }: -mkDerivation { +mkDerivation rec { pname = "zanshin"; - version = "2019-07-28"; + version = "0.5.71"; - src = fetchFromGitHub { - owner = "KDE"; - repo = "zanshin"; - rev = "a8c223e745ed7e6aa3dd3cb0786a625a5c54e378"; - sha256 = "0jglwh30x7qrl41n3dhawn4c25dmrzscpvcajhgb6fwcl4w8cgfm"; + src = fetchurl { + url = "mirror://kde/stable/${pname}/${pname}-${version}.tar.xz"; + sha256 = "0b316ddcd46sawva84x5d8nsp19v66gbm83djrra7fv3k8nkv4xh"; }; nativeBuildInputs = [ @@ -25,7 +23,7 @@ mkDerivation { buildInputs = [ qtbase boost akonadi-calendar akonadi-notes akonadi-search kidentitymanagement kontactinterface kldap - krunner kwallet + krunner kwallet kcalendarcore ]; meta = with lib; { diff --git a/pkgs/applications/radio/fldigi/default.nix b/pkgs/applications/radio/fldigi/default.nix index 900f0ed7c04..48c53ccc59f 100644 --- a/pkgs/applications/radio/fldigi/default.nix +++ b/pkgs/applications/radio/fldigi/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, hamlib, fltk13, libjpeg, libpng, portaudio, libsndfile, +{ stdenv, fetchurl, hamlib, fltk14, libjpeg, libpng, portaudio, libsndfile, libsamplerate, libpulseaudio, libXinerama, gettext, pkgconfig, alsaLib }: stdenv.mkDerivation rec { @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { sha256 = "0wki9d19q8rkjxcd3dz3k0a395gmbnji4fxlhw6dpcyqpfw88fcs"; }; - buildInputs = [ libXinerama gettext hamlib fltk13 libjpeg libpng portaudio + buildInputs = [ libXinerama gettext hamlib fltk14 libjpeg libpng portaudio libsndfile libsamplerate libpulseaudio pkgconfig alsaLib ]; meta = { diff --git a/pkgs/applications/science/misc/simgrid/default.nix b/pkgs/applications/science/misc/simgrid/default.nix index 44b0f5d84b6..b8aef4bd53f 100644 --- a/pkgs/applications/science/misc/simgrid/default.nix +++ b/pkgs/applications/science/misc/simgrid/default.nix @@ -18,14 +18,14 @@ in stdenv.mkDerivation rec { pname = "simgrid"; - version = "3.24"; + version = "3.25"; src = fetchFromGitLab { domain = "framagit.org"; owner = pname; repo = pname; rev = "v${version}"; - sha256 = "1r9zgfx5npjw4mk0ywxx07jyi1m1b1i06j0m60n3dsrz75492x6m"; + sha256 = "019fgryfwpcrkv1f3271v7qxk0mfw2w990vgnk1cqhmr9i1f17gs"; }; nativeBuildInputs = [ cmake perl python3 boost valgrind ] diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix index 3a68f790382..fc3af0a933b 100644 --- a/pkgs/applications/version-management/git-and-tools/default.nix +++ b/pkgs/applications/version-management/git-and-tools/default.nix @@ -28,6 +28,8 @@ let diff-so-fancy = callPackage ./diff-so-fancy { }; + gh = callPackage ./gh { }; + ghq = callPackage ./ghq { }; git = appendToName "minimal" gitBase; @@ -103,7 +105,9 @@ let git-imerge = callPackage ./git-imerge { }; - git-interactive-rebase-tool = callPackage ./git-interactive-rebase-tool {}; + git-interactive-rebase-tool = callPackage ./git-interactive-rebase-tool { + inherit (darwin.apple_sdk.frameworks) Security; + }; git-machete = python3Packages.callPackage ./git-machete { }; diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix new file mode 100644 index 00000000000..02f830a3f07 --- /dev/null +++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix @@ -0,0 +1,36 @@ +{ lib, fetchFromGitHub, buildGoModule, installShellFiles }: + +buildGoModule rec { + pname = "gh"; + version = "0.5.3"; + + src = fetchFromGitHub { + owner = "cli"; + repo = "cli"; + rev = "v${version}"; + sha256 = "033y9bwdaj8735nmj22k8lrgkgimji7hyly9i4jyp11iaa7cgd7a"; + }; + + modSha256 = "0ina3m2ixkkz2fws6ifwy34pmp6kn5s3j7w40alz6vmybn2smy1h"; + + buildFlagsArray = [ + "-ldflags=-X github.com/cli/cli/command.Version=${version}" + ]; + + subPackages = [ "cmd/gh" ]; + + nativeBuildInputs = [ installShellFiles ]; + postInstall = '' + for shell in bash fish zsh; do + $out/bin/gh completion -s $shell > gh.$shell + installShellCompletion gh.$shell + done + ''; + + meta = with lib; { + description = "GitHub CLI tool"; + homepage = "https://github.com/cli/cli"; + license = licenses.mit; + maintainers = with maintainers; [ zowoq ]; + }; +} diff --git a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/01-terminaltests.patch b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/01-terminaltests.patch deleted file mode 100644 index 1bbae6dc01a..00000000000 --- a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/01-terminaltests.patch +++ /dev/null @@ -1,169 +0,0 @@ ---- a/src/display/utils.rs -+++ b/src/display/utils.rs -@@ -53,166 +53,3 @@ - _ => ColorMode::TwoTone, - } - } -- --#[cfg(all(windows, test))] --mod tests { -- use crate::display::color_mode::ColorMode; -- use crate::display::utils::detect_color_mode; -- -- #[test] -- fn detect_color_mode_windows() { -- assert_eq!(detect_color_mode(2), ColorMode::ThreeBit); -- } --} -- --#[cfg(all(unix, test))] --mod tests { -- use crate::display::color_mode::ColorMode; -- use crate::display::utils::detect_color_mode; -- use std::env::{remove_var, set_var}; -- -- fn clear_env() { -- remove_var("COLORTERM"); -- remove_var("VTE_VERSION"); -- remove_var("TERM_PROGRAM"); -- remove_var("TERM"); -- } -- -- #[test] -- fn detect_color_mode_no_env_2_colors() { -- clear_env(); -- assert_eq!(detect_color_mode(2), ColorMode::TwoTone); -- } -- -- #[test] -- fn detect_color_mode_no_env_8_colors() { -- clear_env(); -- assert_eq!(detect_color_mode(8), ColorMode::ThreeBit); -- } -- -- #[test] -- fn detect_color_mode_no_env_less_8_colors() { -- clear_env(); -- assert_eq!(detect_color_mode(7), ColorMode::TwoTone); -- } -- -- #[test] -- fn detect_color_mode_no_env_16_colors() { -- clear_env(); -- assert_eq!(detect_color_mode(16), ColorMode::FourBit); -- } -- -- #[test] -- fn detect_color_mode_no_env_less_16_colors() { -- clear_env(); -- assert_eq!(detect_color_mode(15), ColorMode::ThreeBit); -- } -- -- #[test] -- fn detect_color_mode_no_env_256_colors() { -- clear_env(); -- assert_eq!(detect_color_mode(256), ColorMode::EightBit); -- } -- -- #[test] -- fn detect_color_mode_no_env_less_256_colors() { -- clear_env(); -- assert_eq!(detect_color_mode(255), ColorMode::FourBit); -- } -- -- #[test] -- fn detect_color_mode_no_env_more_256_colors() { -- clear_env(); -- assert_eq!(detect_color_mode(257), ColorMode::EightBit); -- } -- -- #[test] -- fn detect_color_mode_term_env_no_256() { -- clear_env(); -- set_var("TERM", "XTERM"); -- assert_eq!(detect_color_mode(0), ColorMode::TwoTone); -- } -- -- #[test] -- fn detect_color_mode_term_env_with_256() { -- clear_env(); -- set_var("TERM", "XTERM-256"); -- assert_eq!(detect_color_mode(0), ColorMode::EightBit); -- } -- -- #[test] -- fn detect_color_mode_term_program_env_apple_terminal() { -- clear_env(); -- set_var("TERM_PROGRAM", "Apple_Terminal"); -- assert_eq!(detect_color_mode(0), ColorMode::EightBit); -- } -- -- #[test] -- fn detect_color_mode_term_program_env_iterm() { -- clear_env(); -- set_var("TERM_PROGRAM", "iTerm.app"); -- assert_eq!(detect_color_mode(0), ColorMode::EightBit); -- } -- -- #[test] -- fn detect_color_mode_term_program_env_other() { -- clear_env(); -- set_var("TERM_PROGRAM", "other"); -- assert_eq!(detect_color_mode(0), ColorMode::TwoTone); -- } -- -- #[test] -- fn detect_color_mode_vte_version_0_36_00() { -- clear_env(); -- set_var("VTE_VERSION", "3600"); -- assert_eq!(detect_color_mode(0), ColorMode::TrueColor); -- } -- -- #[test] -- fn detect_color_mode_vte_version_greater_0_36_00() { -- clear_env(); -- set_var("VTE_VERSION", "3601"); -- assert_eq!(detect_color_mode(0), ColorMode::TrueColor); -- } -- -- #[test] -- fn detect_color_mode_vte_version_less_0_36_00() { -- clear_env(); -- set_var("VTE_VERSION", "1"); -- assert_eq!(detect_color_mode(0), ColorMode::EightBit); -- } -- -- #[test] -- fn detect_color_mode_vte_version_0() { -- clear_env(); -- set_var("VTE_VERSION", "0"); -- assert_eq!(detect_color_mode(0), ColorMode::TwoTone); -- } -- #[test] -- fn detect_color_mode_vte_version_invalid() { -- clear_env(); -- set_var("VTE_VERSION", "invalid"); -- assert_eq!(detect_color_mode(0), ColorMode::TwoTone); -- } -- -- #[test] -- fn detect_color_mode_colorterm_env_is_truecolor() { -- clear_env(); -- set_var("COLORTERM", "truecolor"); -- assert_eq!(detect_color_mode(0), ColorMode::TrueColor); -- } -- -- #[test] -- fn detect_color_mode_colorterm_env_is_24bit() { -- clear_env(); -- set_var("COLORTERM", "24bit"); -- assert_eq!(detect_color_mode(0), ColorMode::TrueColor); -- } -- -- #[test] -- fn detect_color_mode_colorterm_env_is_other() { -- clear_env(); -- set_var("COLORTERM", "other"); -- assert_eq!(detect_color_mode(0), ColorMode::TwoTone); -- } --} diff --git a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix index 81b4486d569..7635a96eca5 100644 --- a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix @@ -1,4 +1,4 @@ -{ lib, ncurses5, fetchFromGitHub, rustPlatform }: +{ stdenv, ncurses5, fetchFromGitHub, rustPlatform, libiconv, Security }: rustPlatform.buildRustPackage rec { pname = "git-interactive-rebase-tool"; @@ -11,13 +11,13 @@ rustPlatform.buildRustPackage rec { sha256 = "10z3di2qypgsmg2z7xfs9nlrf9vng5i7l8dvqadv1l4lb9zz7i8q"; }; - patches = [ ./01-terminaltests.patch ]; - cargoSha256 = "002kr52vlpv1rhnxki29xflpmgk6bszrw0dsxcc34kyal0593ajk"; - buildInputs = [ ncurses5 ]; + buildInputs = [ ncurses5 ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ]; - meta = with lib; { + checkFlagsArray = [ "--test-threads=1" ]; + + meta = with stdenv.lib; { homepage = "https://github.com/MitMaro/git-interactive-rebase-tool"; description = "Native cross platform full feature terminal based sequence editor for git interactive rebase"; changelog = "https://github.com/MitMaro/git-interactive-rebase-tool/releases/tag/${version}"; diff --git a/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix b/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix index 3a72f38903e..2ceac55bf5c 100644 --- a/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage rec { pname = "git-workspace"; - version = "0.4.1"; + version = "0.5.0"; src = fetchFromGitHub { owner = "orf"; repo = pname; rev = "v${version}"; - sha256 = "01qxm00c5wqpy1clrvjr44v7cg4nqawaf5a6qnvvgswvis4kakzr"; + sha256 = "0pl5z0gx2ypkrgq7vj1cxj5iwj06vcd06x3b3nh0g7w7q7nl8pr4"; }; - cargoSha256 = "16rkmk888alfvq8nsggi26vck1c7ya0fa5j7gv219g5py4gw2n34"; + cargoSha256 = "0jbsz7r9n3jcgb9sd6pdjwzjf1b35qpfqw8ba8fjjmzfvs9qn6ld"; verifyCargoDeps = true; diff --git a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix index 9b77690868b..ca0c905874e 100644 --- a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix +++ b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation { pname = "gitstatus"; - version = "unstable-2019-12-18"; + version = "unstable-2020-01-28"; src = fetchFromGitHub { owner = "romkatv"; repo = "gitstatus"; - rev = "8ae9c17a60158dcf91f56d9167493e3988a5e921"; - sha256 = "1czjwsgbmxd1d656srs3n6wj6bmqr8p3aw5gw61q4wdxw3mni2a6"; + rev = "edb99aa7b86d10ad0a1cfe25135b57c8031d82ad"; + sha256 = "1nys74qswwc7hn9cv0j7syvbpnw0f15chc9pi11him4d6lsflrfd"; }; buildInputs = [ (callPackage ./romkatv_libgit2.nix {}) ]; @@ -25,6 +25,6 @@ stdenv.mkDerivation { homepage = https://github.com/romkatv/gitstatus; license = [ licenses.gpl3 ]; - maintainers = [ maintainers.mmlb ]; + maintainers = with maintainers; [ mmlb hexa ]; }; } diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix index d5abb6d004b..077511a0660 100644 --- a/pkgs/applications/version-management/git-repo/default.nix +++ b/pkgs/applications/version-management/git-repo/default.nix @@ -1,20 +1,20 @@ { stdenv, fetchFromGitHub, makeWrapper -, python, git, gnupg, less, cacert +, python3, git, gnupg, less, cacert }: stdenv.mkDerivation rec { pname = "git-repo"; - version = "1.13.8"; + version = "1.13.9.1"; src = fetchFromGitHub { owner = "android"; repo = "tools_repo"; rev = "v${version}"; - sha256 = "1wmzgijmssgwkkw8g4zgmc4x64xkvz6nq1b3szcvawgv1ndwnb2j"; + sha256 = "0yns7n8gpac33cbkm85slslcnfdb55ax9c0vpvmmfbgcgkvqlknb"; }; nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ python ]; + buildInputs = [ python3 ]; patchPhase = '' substituteInPlace repo --replace \ diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix index 3c553918925..32222c12c7c 100644 --- a/pkgs/applications/version-management/pijul/default.nix +++ b/pkgs/applications/version-management/pijul/default.nix @@ -20,6 +20,15 @@ in rustPlatform.buildRustPackage rec { sha256 = "1rm787kkh3ya8ix0rjvj7sbrg9armm0rnpkga6gjmsbg5bx20y4q"; }; + postPatch = '' + pushd ../${pname}-${version}-vendor/thrussh/ + patch -p1 < ${./thrussh-build-fix.patch} + substituteInPlace .cargo-checksum.json --replace \ + 9696ed2422a483cd8de48ac241178a0441be6636909c76174c536b8b1cba9d45 \ + a199f2bba520d56e11607b77be4dde0cfae576c90badb9fbd39af4784e8120d1 + popd + ''; + nativeBuildInputs = [ pkgconfig clang ]; postInstall = '' diff --git a/pkgs/applications/version-management/pijul/thrussh-build-fix.patch b/pkgs/applications/version-management/pijul/thrussh-build-fix.patch new file mode 100644 index 00000000000..3989639620b --- /dev/null +++ b/pkgs/applications/version-management/pijul/thrussh-build-fix.patch @@ -0,0 +1,12 @@ +--- a/src/client/connection.rs 2020-02-04 12:48:43.845299096 +0100 ++++ b/src/client/connection.rs 2020-02-04 12:50:00.140329310 +0100 +@@ -546,8 +546,8 @@ + &[msg::NEWKEYS], + &mut session.0.write_buffer, + ); +- session.0.kex = Some(Kex::NewKeys(newkeys)); + newkeys.sent = true; ++ session.0.kex = Some(Kex::NewKeys(newkeys)); + } + Ok(()) + } diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix index 6a8c3df0f35..f7ac5ef58cd 100644 --- a/pkgs/applications/video/mpv/default.nix +++ b/pkgs/applications/video/mpv/default.nix @@ -1,5 +1,5 @@ { config, stdenv, fetchurl, fetchFromGitHub, makeWrapper -, addOpenGLRunpath, docutils, perl, pkgconfig, python3, which +, addOpenGLRunpath, docutils, perl, pkgconfig, python3, wafHook, which , ffmpeg_4, freefont_ttf, freetype, libass, libpthreadstubs, mujs , nv-codec-headers, lua, libuchardet, libiconv ? null, darwin @@ -93,14 +93,6 @@ assert youtubeSupport -> available youtube-dl; assert zimgSupport -> available zimg; let - # Purity: Waf is normally downloaded by bootstrap.py, but - # for purity reasons this behavior should be avoided. - wafVersion = "2.0.9"; - waf = fetchurl { - urls = [ "https://waf.io/waf-${wafVersion}" - "http://www.freehackers.org/~tnagy/release/waf-${wafVersion}" ]; - sha256 = "0j7sbn3w6bgslvwwh5v9527w3gi2sd08kskrgxamx693y0b0i3ia"; - }; luaEnv = lua.withPackages (ps: with ps; [ luasocket ]); in stdenv.mkDerivation rec { @@ -121,7 +113,7 @@ in stdenv.mkDerivation rec { NIX_LDFLAGS = optionalString x11Support "-lX11 -lXext " + optionalString stdenv.isDarwin "-framework CoreFoundation"; - configureFlags = [ + wafConfigureFlags = [ "--enable-libmpv-shared" "--enable-manpage-build" "--disable-libmpv-static" @@ -140,12 +132,8 @@ in stdenv.mkDerivation rec { (enableFeature stdenv.isLinux "dvbin") ]; - configurePhase = '' - python3 ${waf} configure --prefix=$out $configureFlags - ''; - nativeBuildInputs = [ - addOpenGLRunpath docutils makeWrapper perl pkgconfig python3 which + addOpenGLRunpath docutils makeWrapper perl pkgconfig python3 wafHook which ]; buildInputs = [ @@ -189,9 +177,7 @@ in stdenv.mkDerivation rec { enableParallelBuilding = true; - buildPhase = '' - python3 ${waf} build - '' + optionalString stdenv.isDarwin '' + postBuild = optionalString stdenv.isDarwin '' python3 TOOLS/osxbundle.py -s build/mpv ''; @@ -204,9 +190,7 @@ in stdenv.mkDerivation rec { --prefix PYTHONPATH : "${vapoursynth}/lib/${python3.libPrefix}/site-packages:$PYTHONPATH" ''; - installPhase = '' - python3 ${waf} install - + postInstall = '' # Use a standard font mkdir -p $out/share/mpv ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix index 6fc60780ba7..b49a6294832 100644 --- a/pkgs/applications/virtualization/crun/default.nix +++ b/pkgs/applications/virtualization/crun/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "crun"; - version = "0.11"; + version = "0.12"; src = fetchFromGitHub { owner = "containers"; repo = pname; rev = version; - sha256 = "0mn64hrgx4a7mhqjxn127i8yivhn1grp93wws1da1ffj4ap6ay76"; + sha256 = "0sxpdv3afh8hn39jdg06vwkyp7i6dsyf1gg8719vwiwmcbhzj8mx"; fetchSubmodules = true; }; diff --git a/pkgs/applications/virtualization/firecracker/default.nix b/pkgs/applications/virtualization/firecracker/default.nix index 9fa06f5bf0b..220d26c116f 100644 --- a/pkgs/applications/virtualization/firecracker/default.nix +++ b/pkgs/applications/virtualization/firecracker/default.nix @@ -1,27 +1,27 @@ { fetchurl, stdenv }: let - version = "0.19.0"; + version = "0.20.0"; suffix = { - x86_64-linux = ""; - aarch64-linux = "-aarch64"; + x86_64-linux = "x86_64"; + aarch64-linux = "aarch64"; }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download"; fetchbin = name: sha256: fetchurl { - url = "${baseurl}/v${version}/${name}-v${version}${suffix}"; + url = "${baseurl}/v${version}/${name}-v${version}-${suffix}"; sha256 = sha256."${stdenv.hostPlatform.system}"; }; firecracker-bin = fetchbin "firecracker" { - x86_64-linux = "0yjhw77xc2nc96p36jhf0va95gf6hwi9n270g4iiwakycdy048mx"; - aarch64-linux = "165yca7pcwpqw3x6dihcjz1xcwjh37sdi9qrrjk9zasxx7xcniym"; + x86_64-linux = "073pp4q5dnyr126k8k7qdkqclqx18hj12app4gj2is0413gia8z9"; + aarch64-linux = "1w5f522imq5dnjrdidnrq7jlwcdrsiz32shv9bh66dhy336sd8qw"; }; jailer-bin = fetchbin "jailer" { - x86_64-linux = "1q792b4bl1q3ach8nc8l0fbcil44knv3wa542xrskndzdz28lhsp"; - aarch64-linux = "1cnwlpy5bswjprk7fcjgf6lxidhp7z00qx691nkwhzjkby80j490"; + x86_64-linux = "0falk6y9y0pimgav1yg6ydn6wsslz0my01qd9by8ipk3f3776531"; + aarch64-linux = "1j4x4p4zz1ydvpzbbmxszyqv28qbl4v3hiwdj2f67f1jn1cv9l7z"; }; in diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix index 80750ab61be..2cafa57586e 100644 --- a/pkgs/applications/window-managers/i3/status-rust.nix +++ b/pkgs/applications/window-managers/i3/status-rust.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "i3status-rust"; - version = "0.12.0"; + version = "0.13.0"; src = fetchFromGitHub { owner = "greshake"; repo = pname; rev = "v${version}"; - sha256 = "1banaiqj4gdsg886kb7l1fxhmf33vxnwwha46397s7gwfxkvxz4n"; + sha256 = "047ivrp70kwsm4792ing8dvgh161cmayzy9ij6ww61fbkb4slr1i"; }; - cargoSha256 = "1cbx2jll0bj547dvwzjprzidndbqn1c4c6hmbfgjgdkxmmrpb0r1"; + cargoSha256 = "16rgg0fy50n0z0kal52iaxiqwhw4qpjvzyqwaldm29fq9c0105d1"; nativeBuildInputs = [ pkgconfig ]; @@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec { description = "Very resource-friendly and feature-rich replacement for i3status"; homepage = https://github.com/greshake/i3status-rust; license = licenses.gpl3; - maintainers = with maintainers; [ backuitist globin ]; + maintainers = with maintainers; [ backuitist globin ma27 ]; platforms = platforms.linux; }; } diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix index 8fa3cc55279..a17712472b1 100644 --- a/pkgs/build-support/build-bazel-package/default.nix +++ b/pkgs/build-support/build-bazel-package/default.nix @@ -23,6 +23,8 @@ args@{ # # [1]: https://github.com/bazelbuild/rules_cc , removeRulesCC ? true +, removeLocalConfigCc ? true +, removeLocal ? true , ... }: @@ -86,7 +88,8 @@ in stdenv.mkDerivation (fBuildAttrs // { rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker} ${if removeRulesCC then "rm -rf $bazelOut/external/{rules_cc,\\@rules_cc.marker}" else ""} rm -rf $bazelOut/external/{embedded_jdk,\@embedded_jdk.marker} - rm -rf $bazelOut/external/{local_*,\@local_*.marker} + ${if removeLocalConfigCc then "rm -rf $bazelOut/external/{local_config_cc,\@local_config_cc.marker}" else ""} + ${if removeLocal then "rm -rf $bazelOut/external/{local_*,\@local_*.marker}" else ""} # Clear markers find $bazelOut/external -name '@*\.marker' -exec sh -c 'echo > {}' \; @@ -145,7 +148,6 @@ in stdenv.mkDerivation (fBuildAttrs // { buildPhase = fBuildAttrs.buildPhase or '' runHook preBuild - '' + lib.optionalString stdenv.isDarwin '' # Bazel sandboxes the execution of the tools it invokes, so even though we are # calling the correct nix wrappers, the values of the environment variables # the wrappers are expecting will not be set. So instead of relying on the @@ -168,7 +170,6 @@ in stdenv.mkDerivation (fBuildAttrs // { linkopts+=( "--linkopt=$flag" ) host_linkopts+=( "--host_linkopt=$flag" ) done - '' + '' BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ USER=homeless-shelter \ @@ -177,12 +178,10 @@ in stdenv.mkDerivation (fBuildAttrs // { --output_user_root="$bazelUserRoot" \ build \ -j $NIX_BUILD_CORES \ - '' + lib.optionalString stdenv.isDarwin '' "''${copts[@]}" \ "''${host_copts[@]}" \ "''${linkopts[@]}" \ "''${host_linkopts[@]}" \ - '' + '' $bazelFlags \ $bazelBuildFlags \ $bazelTarget diff --git a/pkgs/build-support/singularity-tools/default.nix b/pkgs/build-support/singularity-tools/default.nix index c110d327d3a..54749e416ea 100644 --- a/pkgs/build-support/singularity-tools/default.nix +++ b/pkgs/build-support/singularity-tools/default.nix @@ -59,7 +59,8 @@ rec { mkdir disk mkfs -t ext3 -b 4096 /dev/${vmTools.hd} mount /dev/${vmTools.hd} disk - cd disk + mkdir -p disk/img + cd disk/img mkdir proc sys dev # Run root script @@ -84,8 +85,10 @@ rec { done done - # Create runScript - ln -s ${runScriptFile} singularity + # Create runScript and link shell + ln -s ${runtimeShell} bin/sh + mkdir -p .singularity.d + ln -s ${runScriptFile} .singularity.d/runscript # Fill out .singularity.d mkdir -p .singularity.d/env @@ -94,7 +97,7 @@ rec { cd .. mkdir -p /var/singularity/mnt/{container,final,overlay,session,source} echo "root:x:0:0:System administrator:/root:/bin/sh" > /etc/passwd - singularity build $out ./disk + TMPDIR=$(pwd -P) singularity build $out ./img ''); in result; diff --git a/pkgs/common-updater/scripts.nix b/pkgs/common-updater/scripts.nix index 1bec4a73996..ec897914b6b 100644 --- a/pkgs/common-updater/scripts.nix +++ b/pkgs/common-updater/scripts.nix @@ -1,4 +1,4 @@ -{ stdenv, makeWrapper, coreutils, gawk, gnused, gnugrep, diffutils, nix }: +{ stdenv, makeWrapper, coreutils, gnused, gnugrep, diffutils, nix }: stdenv.mkDerivation { name = "common-updater-scripts"; @@ -12,7 +12,7 @@ stdenv.mkDerivation { cp ${./scripts}/* $out/bin for f in $out/bin/*; do - wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gawk gnused gnugrep nix diffutils ]} + wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gnused gnugrep nix diffutils ]} done ''; } diff --git a/pkgs/common-updater/scripts/update-source-version b/pkgs/common-updater/scripts/update-source-version index d051a0f75c1..7fb5e413a26 100755 --- a/pkgs/common-updater/scripts/update-source-version +++ b/pkgs/common-updater/scripts/update-source-version @@ -11,6 +11,7 @@ die() { usage() { echo "Usage: $scriptName [] []" echo " [--version-key=] [--system=] [--file=]" + echo " [--ignore-same-hash]" } args=() @@ -25,7 +26,7 @@ for arg in "$@"; do ;; --file=*) nixFile="${arg#*=}" - if [ ! -f "$nixFile" ]; then + if [[ ! -f "$nixFile" ]]; then die "Could not find provided file $nixFile" fi ;; @@ -37,7 +38,7 @@ for arg in "$@"; do exit 0 ;; --*) - echo "$scriptName: Unknown argument: " $arg + echo "$scriptName: Unknown argument: $arg" usage exit 1 ;; @@ -52,25 +53,25 @@ newVersion=${args[1]} newHash=${args[2]} newUrl=${args[3]} -if [ "${#args[*]}" -lt 2 ]; then +if (( "${#args[*]}" < 2 )); then echo "$scriptName: Too few arguments" usage exit 1 fi -if [ "${#args[*]}" -gt 4 ]; then +if (( "${#args[*]}" > 4 )); then echo "$scriptName: Too many arguments" usage exit 1 fi -if [ -z "$versionKey" ]; then +if [[ -z "$versionKey" ]]; then versionKey=version fi -if [ -z "$nixFile" ]; then +if [[ -z "$nixFile" ]]; then nixFile=$(nix-instantiate $systemArg --eval --strict -A "$attr.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/') - if [ ! -f "$nixFile" ]; then + if [[ ! -f "$nixFile" ]]; then die "Couldn't evaluate '$attr.meta.position' to locate the .nix file!" fi fi @@ -78,28 +79,28 @@ fi oldHashAlgo=$(nix-instantiate $systemArg --eval --strict -A "$attr.src.drvAttrs.outputHashAlgo" | tr -d '"') oldHash=$(nix-instantiate $systemArg --eval --strict -A "$attr.src.drvAttrs.outputHash" | tr -d '"') -if [ -z "$oldHashAlgo" -o -z "$oldHash" ]; then +if [[ -z "$oldHashAlgo" || -z "$oldHash" ]]; then die "Couldn't evaluate old source hash from '$attr.src'!" fi -if [ $(grep -c "$oldHash" "$nixFile") != 1 ]; then +if [[ $(grep --count "$oldHash" "$nixFile") != 1 ]]; then die "Couldn't locate old source hash '$oldHash' (or it appeared more than once) in '$nixFile'!" fi oldUrl=$(nix-instantiate $systemArg --eval -E "with import ./. {}; builtins.elemAt ($attr.src.drvAttrs.urls or [ $attr.src.url ]) 0" | tr -d '"') -if [ -z "$oldUrl" ]; then +if [[ -z "$oldUrl" ]]; then die "Couldn't evaluate source url from '$attr.src'!" fi drvName=$(nix-instantiate $systemArg --eval -E "with import ./. {}; lib.getName $attr" | tr -d '"') oldVersion=$(nix-instantiate $systemArg --eval -E "with import ./. {}; $attr.${versionKey} or (lib.getVersion $attr)" | tr -d '"') -if [ -z "$drvName" -o -z "$oldVersion" ]; then +if [[ -z "$drvName" || -z "$oldVersion" ]]; then die "Couldn't evaluate name and version from '$attr.name'!" fi -if [ "$oldVersion" = "$newVersion" ]; then +if [[ "$oldVersion" = "$newVersion" ]]; then echo "$scriptName: New version same as old version, nothing to do." >&2 exit 0 fi @@ -108,14 +109,41 @@ fi oldVersionEscaped=$(echo "$oldVersion" | sed -re 's|[.+]|\\&|g') oldUrlEscaped=$(echo "$oldUrl" | sed -re 's|[${}.+]|\\&|g') -if [ $(grep -c -E "^\s*(let\b)?\s*$versionKey\s*=\s*\"$oldVersionEscaped\"" "$nixFile") = 1 ]; then +if [[ $(grep --count --extended-regexp "^\s*(let\b)?\s*$versionKey\s*=\s*\"$oldVersionEscaped\"" "$nixFile") = 1 ]]; then pattern="/\b$versionKey\b\s*=/ s|\"$oldVersionEscaped\"|\"$newVersion\"|" -elif [ $(grep -c -E "^\s*(let\b)?\s*name\s*=\s*\"[^\"]+-$oldVersionEscaped\"" "$nixFile") = 1 ]; then +elif [[ $(grep --count --extended-regexp "^\s*(let\b)?\s*name\s*=\s*\"[^\"]+-$oldVersionEscaped\"" "$nixFile") = 1 ]]; then pattern="/\bname\b\s*=/ s|-$oldVersionEscaped\"|-$newVersion\"|" else die "Couldn't figure out where out where to patch in new version in '$attr'!" fi +if [[ "$oldHash" =~ ^(sha256|sha512)[:-] ]]; then + # Handle the possible SRI-style hash attribute (in the form ${type}${separator}${hash}) + # True SRI uses dash as a separator and only supports base64, whereas Nix’s SRI-style format uses a colon and supports all the same encodings like regular hashes (16/32/64). + # To keep this program reasonably simple, we will upgrade Nix’s format to SRI. + oldHashAlgo="${BASH_REMATCH[1]}" + sri=true +elif [[ "$oldHashAlgo" = "null" ]]; then + # Some fetcher functions support SRI-style `hash` attribute in addition to legacy type-specific attributes. When `hash` is used `outputHashAlgo` is null so let’s complain when SRI-style hash value was not detected. + die "Unable to figure out hashing scheme from '$oldHash' in '$attr'!" +fi + +case "$oldHashAlgo" in + # Lengths of hex-encoded hashes + sha256) hashLength=64 ;; + sha512) hashLength=128 ;; + *) die "Unhandled hash algorithm '$oldHashAlgo' in '$attr'!" ;; +esac + +# Make a temporary all-zeroes hash of $hashLength characters +tempHash=$(printf '%0*d' "$hashLength" 0) + +if [[ -n "$sri" ]]; then + # SRI hashes only support base64 + # SRI hashes need to declare the hash type as part of the hash + tempHash="$(nix to-sri --type "$oldHashAlgo" "$tempHash")" +fi + # Replace new version sed -i.bak "$nixFile" -re "$pattern" if cmp -s "$nixFile" "$nixFile.bak"; then @@ -123,7 +151,7 @@ if cmp -s "$nixFile" "$nixFile.bak"; then fi # Replace new URL -if [ -n "$newUrl" ]; then +if [[ -n "$newUrl" ]]; then sed -i "$nixFile" -re "s|\"$oldUrlEscaped\"|\"$newUrl\"|" if cmp -s "$nixFile" "$nixFile.bak"; then @@ -131,33 +159,29 @@ if [ -n "$newUrl" ]; then fi fi -case "$oldHashAlgo" in - sha256) hashLength=64 ;; - sha512) hashLength=128 ;; - *) die "Unhandled hash algorithm '$oldHashAlgo' in '$attr'!" ;; -esac - -# Make a temporary all-zeroes hash of $hashLength characters -tempHash=$(printf '%0*d' "$hashLength" 0) - sed -i "$nixFile" -re "s|\"$oldHash\"|\"$tempHash\"|" if cmp -s "$nixFile" "$nixFile.bak"; then die "Failed to replace source hash of '$attr' to a temporary hash!" fi # If new hash not given on the command line, recalculate it ourselves. -if [ -z "$newHash" ]; then +if [[ -z "$newHash" ]]; then nix-build $systemArg --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|wanted: " "$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 '.*'\| got: .*:\(.*\)~\1\2\3~" | head -n1) + newHash=$(grep --extended-regexp --invert-match "killing process|dependencies couldn't be built|wanted: " "$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 '.*'\| got: .*:\(.*\)~\1\2\3~" | head -n1) fi -if [ -z "$newHash" ]; then +if [[ -n "$sri" ]]; then + # nix-build preserves the hashing scheme so we can just convert the result to SRI using the old type + newHash="$(nix to-sri --type "$oldHashAlgo" "$newHash")" +fi + +if [[ -z "$newHash" ]]; then cat "$attr.fetchlog" >&2 die "Couldn't figure out new hash of '$attr.src'!" fi -if [ -z "${ignoreSameHash}" ] && [ "$oldVersion" != "$newVersion" ] && [ "$oldHash" = "$newHash" ]; then +if [[ -z "${ignoreSameHash}" && "$oldVersion" != "$newVersion" && "$oldHash" = "$newHash" ]]; then mv "$nixFile.bak" "$nixFile" die "Both the old and new source hashes of '$attr.src' were equivalent. Please fix the package's source URL to be dependent on '\${version}'!" fi diff --git a/pkgs/data/fonts/nerdfonts/default.nix b/pkgs/data/fonts/nerdfonts/default.nix index 454cbc09281..8ffd0e3e43f 100644 --- a/pkgs/data/fonts/nerdfonts/default.nix +++ b/pkgs/data/fonts/nerdfonts/default.nix @@ -1,13 +1,13 @@ { stdenv, fetchFromGitHub, which, withFont ? "" }: stdenv.mkDerivation rec { - version = "2.0.0"; + version = "2.1.0"; pname = "nerdfonts"; src = fetchFromGitHub { owner = "ryanoasis"; repo = "nerd-fonts"; rev = version; - sha256 = "09i467hyskvzj2wn5sj6shvc9pb0a0rx5iknjkkkbg1ng3bla7nm"; + sha256 = "1la79y16k9rwcl2zsxk73c0kgdms2ma43kpjfqnq5jlbfdj0niwg"; }; dontPatchShebangs = true; buildInputs = [ which ]; diff --git a/pkgs/data/fonts/tt2020/default.nix b/pkgs/data/fonts/tt2020/default.nix new file mode 100644 index 00000000000..c92e8603273 --- /dev/null +++ b/pkgs/data/fonts/tt2020/default.nix @@ -0,0 +1,27 @@ +{ lib, fetchFromGitHub }: + +let + pname = "TT2020"; + version = "2020-01-05"; +in +fetchFromGitHub { + name = "${pname}-${version}"; + owner = "ctrlcctrlv"; + repo = pname; + rev = "2b418fab5f99f72a18b3b2e7e2745ac4e03aa612"; + sha256 = "1z0nizvs0gp0xl7pn6xcjvsysxhnfm7aqfamplkyvya3fxvhncds"; + + postFetch = '' + tar xf $downloadedFile --strip=1 + install -Dm644 -t $out/share/fonts/truetype dist/*.ttf + install -Dm644 -t $out/share/fonts/woff2 dist/*.woff2 + ''; + + meta = with lib; { + description = "An advanced, open source, hyperrealistic, multilingual typewriter font for a new decade"; + homepage = "https://ctrlcctrlv.github.io/TT2020"; + license = licenses.ofl; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/data/themes/jade1/default.nix b/pkgs/data/themes/jade1/default.nix index 01221d45014..cba38cb297a 100644 --- a/pkgs/data/themes/jade1/default.nix +++ b/pkgs/data/themes/jade1/default.nix @@ -2,25 +2,25 @@ stdenv.mkDerivation rec { pname = "theme-jade1"; - version = "1.5"; + version = "1.6"; src = fetchFromGitHub { owner = "madmaxms"; repo = "theme-jade-1"; rev = "v${version}"; - sha256 = "1m3150iyk8421mkwj4x2pv29wjzqdcnvvnp3bsg11k5kszsm27a8"; + sha256 = "1lnajrsikw6dljf6dvgmj8aqwywmgdp34h3xsc0xiyq07arhp606"; }; propagatedUserEnvPkgs = [ gtk-engine-murrine ]; installPhase = '' mkdir -p $out/share/themes - cp -a Jade-1 $out/share/themes + cp -a Jade* $out/share/themes ''; meta = with stdenv.lib; { description = "Fork of the original Linux Mint theme with dark menus, more intensive green and some other modifications"; - homepage = https://github.com/madmaxms/theme-jade-1; + homepage = "https://github.com/madmaxms/theme-jade-1"; license = with licenses; [ gpl3 ]; platforms = platforms.linux; maintainers = [ maintainers.romildo ]; diff --git a/pkgs/desktops/gnustep/base/default.nix b/pkgs/desktops/gnustep/base/default.nix index 87cded31e5f..7017100565c 100644 --- a/pkgs/desktops/gnustep/base/default.nix +++ b/pkgs/desktops/gnustep/base/default.nix @@ -3,7 +3,7 @@ , cups , fetchurl , gmp, gnutls -, libffi, libbfd +, libffi, binutils-unwrapped , libjpeg, libtiff, libpng, giflib, libungif , libxml2, libxslt, libiconv , libobjc, libgcrypt @@ -25,7 +25,7 @@ gsmakeDerivation { aspell audiofile cups gmp gnutls - libffi libbfd + libffi binutils-unwrapped libjpeg libtiff libpng giflib libungif libxml2 libxslt libiconv libobjc libgcrypt @@ -35,10 +35,6 @@ gsmakeDerivation { ]; patches = [ ./fixup-paths.patch ]; - # Bump to gcc9 has give missing xmemdup symbols. Need libiberty here - # to resolve it, unclear why. See #76927 for more info - NIX_LDFLAGS = "-liberty"; - meta = { description = "An implementation of AppKit and Foundation libraries of OPENSTEP and Cocoa"; }; diff --git a/pkgs/development/compilers/go/1.12.nix b/pkgs/development/compilers/go/1.12.nix index 0a684a3a49e..8f02de2cddb 100644 --- a/pkgs/development/compilers/go/1.12.nix +++ b/pkgs/development/compilers/go/1.12.nix @@ -30,11 +30,11 @@ in stdenv.mkDerivation rec { pname = "go"; - version = "1.12.15"; + version = "1.12.16"; src = fetchurl { url = "https://dl.google.com/go/go${version}.src.tar.gz"; - sha256 = "1hw4xjywcl883dnvfbb92w85sy8n231fdri4aynj8xajgr0p9fla"; + sha256 = "1y0x10fsvgpc1x24b9q9y6kv9b0kwf7879am3p0gym2abgc5wvnf"; }; # perl is used for testing go vet diff --git a/pkgs/development/compilers/go/1.13.nix b/pkgs/development/compilers/go/1.13.nix index f9723728caa..9006725f639 100644 --- a/pkgs/development/compilers/go/1.13.nix +++ b/pkgs/development/compilers/go/1.13.nix @@ -30,11 +30,11 @@ in stdenv.mkDerivation rec { pname = "go"; - version = "1.13.6"; + version = "1.13.7"; src = fetchurl { url = "https://dl.google.com/go/go${version}.src.tar.gz"; - sha256 = "03220q6n4wlpmz6zz3mw48kl3pjxia6pxdvf03wbqh6w9favxrda"; + sha256 = "1x21kfpzfkvmqd42pan6nl862m7jjl4niqxxpcgm46awbz645bg4"; }; # perl is used for testing go vet diff --git a/pkgs/development/compilers/ocaml/4.10.nix b/pkgs/development/compilers/ocaml/4.10.nix index 6f78ae05e02..9c8a84f2112 100644 --- a/pkgs/development/compilers/ocaml/4.10.nix +++ b/pkgs/development/compilers/ocaml/4.10.nix @@ -1,6 +1,6 @@ import ./generic.nix { major_version = "4"; minor_version = "10"; - patch_version = "0+beta1"; - sha256 = "18jrgww98v1famb2x5jhbsnm4ngph2rvq0z4cxpqxfn06yb53jyf"; + patch_version = "0+beta2"; + sha256 = "106y4jarwib6xxy0vhd7766mxhnlr1zq05jchisklyrgjly0g3ry"; } diff --git a/pkgs/development/compilers/ocaml/ber-metaocaml.nix b/pkgs/development/compilers/ocaml/ber-metaocaml.nix index fb507b9836a..bbaee358490 100644 --- a/pkgs/development/compilers/ocaml/ber-metaocaml.nix +++ b/pkgs/development/compilers/ocaml/ber-metaocaml.nix @@ -50,10 +50,10 @@ stdenv.mkDerivation rec { buildPhase = '' make world - make -i install make bootstrap make opt.opt + make -i install make installopt mkdir -p $out/include ln -sv $out/lib/ocaml/caml $out/include/caml diff --git a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix index bbf1efcf523..092af49a9f8 100644 --- a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix +++ b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix @@ -16,7 +16,6 @@ , pluginSupport ? true , installjce ? false , config -, licenseAccepted ? config.oraclejdk.accept_license or false , glib , libxml2 , libav_0_8 @@ -36,13 +35,6 @@ assert swingSupport -> xorg != null; -if !licenseAccepted then throw '' - You must accept the Oracle Binary Code License Agreement for Java SE at - https://www.oracle.com/technetwork/java/javase/terms/license/index.html - by setting nixpkgs config option 'oraclejdk.accept_license = true;' - '' -else assert licenseAccepted; - let /** diff --git a/pkgs/development/compilers/sbcl/2.0.0.nix b/pkgs/development/compilers/sbcl/2.0.0.nix new file mode 100644 index 00000000000..bb0056bb9ec --- /dev/null +++ b/pkgs/development/compilers/sbcl/2.0.0.nix @@ -0,0 +1,112 @@ +{ stdenv, fetchurl, writeText, sbclBootstrap +, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit" +, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system) + # Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die. + # Note that the created binaries still need `patchelf --set-interpreter ...` + # to get rid of ${glibc} dependency. +, purgeNixReferences ? false +, texinfo +}: + +stdenv.mkDerivation rec { + pname = "sbcl"; + version = "2.0.0"; + + src = fetchurl { + url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2"; + sha256 = "1krgd69cirp4ili2pfsh1a0mfvq722jbknlvmf17qhsxh1b94dlh"; + }; + + buildInputs = [texinfo]; + + patchPhase = '' + echo '"${version}.nixos"' > version.lisp-expr + echo " + (lambda (features) + (flet ((enable (x) + (pushnew x features)) + (disable (x) + (setf features (remove x features)))) + '' + + (if threadSupport then "(enable :sb-thread)" else "(disable :sb-thread)") + + stdenv.lib.optionalString stdenv.isAarch32 "(enable :arm)" + + '' + )) " > customize-target-features.lisp + + pwd + + # SBCL checks whether files are up-to-date in many places.. + # Unfortunately, same timestamp is not good enough + sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp + #sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp + sed -i src/cold/slam.lisp -e \ + '/file-write-date input/a)' + sed -i src/cold/slam.lisp -e \ + '/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))' + sed -i src/code/target-load.lisp -e \ + '/date defaulted-fasl/a)' + sed -i src/code/target-load.lisp -e \ + '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))' + + # Fix the tests + sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp + sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp + + # Use whatever `cc` the stdenv provides + substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc + + substituteInPlace src/runtime/Config.x86-64-darwin \ + --replace mmacosx-version-min=10.4 mmacosx-version-min=10.5 + '' + + (if purgeNixReferences + then + # This is the default location to look for the core; by default in $out/lib/sbcl + '' + sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \ + -i src/runtime/runtime.c + '' + else + # Fix software version retrieval + '' + sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \ + src/code/run-program.lisp + '' + ); + + + preBuild = '' + export INSTALL_ROOT=$out + mkdir -p test-home + export HOME=$PWD/test-home + ''; + + buildPhase = '' + sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" + (cd doc/manual ; make info) + ''; + + installPhase = '' + INSTALL_ROOT=$out sh install.sh + '' + + stdenv.lib.optionalString (!purgeNixReferences) '' + cp -r src $out/lib/sbcl + cp -r contrib $out/lib/sbcl + cat >$out/lib/sbcl/sbclrc < # DO NOT EDIT! Automatically generated by ./update.py radare2 = generic { - version_commit = "23159"; - gittap = "4.0.0"; - gittip = "e97047299af43e9b4e658c246816a2b48bdc087e"; - rev = "4.0.0"; - version = "4.0.0"; - sha256 = "15b79hska3skrlbrig7fl405kmbvy4410m93lfsfmkwxs0wr9jis"; + version_commit = "23710"; + gittap = "4.2.0"; + gittip = "57a60ba8c5e782ca0807e3c7b1d26a8b3923073d"; + rev = "4.2.0"; + version = "4.2.0"; + sha256 = "1xkvc9msbcvwgcasx9q10098ciw1zpnwgrciw397rq9ayrrvpngz"; cs_ver = "4.0.1"; cs_sha256 = "0ijwxxk71nr9z91yxw20zfj4bbsbrgvixps5c7cpj163xlzlwba6"; }; r2-for-cutter = generic { - version_commit = "22888"; - gittap = "3.8.0"; - gittip = "b4860e4eecad2053202965926f16296864b2f1e5"; - rev = "b4860e4eecad2053202965926f16296864b2f1e5"; - version = "2019-09-03"; - sha256 = "0rx6az2vpqy12lvzpxx9pappqj84d88daj8bis3zsffqgmhsafcd"; + version_commit = "23710"; + gittap = "4.2.1"; + gittip = "08478fdd29d8ce2a6c61fbd7b207bffc10682938"; + rev = "08478fdd29d8ce2a6c61fbd7b207bffc10682938"; + version = "2020-01-31"; + sha256 = "14b9433cgc2nabhz836zfgvgh2dwailcmvy05krsa0inmzbvx9fg"; cs_ver = "4.0.1"; cs_sha256 = "0ijwxxk71nr9z91yxw20zfj4bbsbrgvixps5c7cpj163xlzlwba6"; }; diff --git a/pkgs/development/tools/bazelisk/default.nix b/pkgs/development/tools/bazelisk/default.nix index f6dd4687dab..5780cf4382a 100644 --- a/pkgs/development/tools/bazelisk/default.nix +++ b/pkgs/development/tools/bazelisk/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "bazelisk"; - version = "1.2.1"; + version = "1.3.0"; src = fetchFromGitHub { owner = "bazelbuild"; repo = pname; rev = "v${version}"; - sha256 = "1rjv21jwq2lkyq60qqg6bd8226dz90hanl3zd9fjlms3vm0zarf8"; + sha256 = "15h4mbsfjwby4wq57rdj4dzsf595qjfgi3v5zw62yycn3m2w922p"; }; - modSha256 = "0gs8y618izqi0gfa46jqh79yj8lzsmc6yj95fakhp2f5i8v1xrmx"; + modSha256 = "1w8k659ifapcxbbim0nf7wd7w10bhlagc33q08izh84gcgsh0yyz"; meta = with stdenv.lib; { description = "A user-friendly launcher for Bazel"; diff --git a/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix deleted file mode 100644 index 62a1329eca6..00000000000 --- a/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, buildBazelPackage, lib, fetchFromGitHub, git, jre, makeWrapper }: - -buildBazelPackage rec { - name = "bazel-deps-${version}"; - version = "2019-07-11"; - - meta = with stdenv.lib; { - homepage = "https://github.com/johnynek/bazel-deps"; - description = "Generate bazel dependencies for maven artifacts"; - license = licenses.mit; - maintainers = [ maintainers.uri-canva ]; - platforms = platforms.all; - broken = true; # global variable '_common_attrs_for_plugin_bootstrapping' is referenced before assignment. - }; - - src = fetchFromGitHub { - owner = "johnynek"; - repo = "bazel-deps"; - rev = "48fdf7f8bcf3aadfa07f9f7e6f0c9f4247cb0f58"; - sha256 = "0wpn5anfgq5wfljfhpn8gbgdmgcp0claffjgqcnv5dh70ch7i0gi"; - }; - - bazelTarget = "//src/scala/com/github/johnynek/bazel_deps:parseproject_deploy.jar"; - - buildInputs = [ git makeWrapper ]; - - fetchAttrs = { - sha256 = "1r5qxsbw2cgww7vcg5psh7404l3jcxpvc0ndgl3k8vj1x8y93nkf"; - }; - - buildAttrs = { - installPhase = '' - mkdir -p $out/bin/bazel-bin/src/scala/com/github/johnynek/bazel_deps - - cp gen_maven_deps.sh $out/bin - wrapProgram "$out/bin/gen_maven_deps.sh" --set JAVA_HOME "${jre}" --prefix PATH : ${lib.makeBinPath [ jre ]} - cp bazel-bin/src/scala/com/github/johnynek/bazel_deps/parseproject_deploy.jar $out/bin/bazel-bin/src/scala/com/github/johnynek/bazel_deps - ''; - }; -} diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix index 2eb5f772f89..f2f3588ba29 100644 --- a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix +++ b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix @@ -8,19 +8,25 @@ buildBazelPackage rec { name = "bazel-remote-${version}"; - version = "2019-01-12"; + version = "2020-01-29"; src = fetchFromGitHub { owner = "buchgr"; repo = "bazel-remote"; - rev = "3f65b6ccf69e223950c77275a743d0d3a04a8583"; - sha256 = "0fklrlylmc55yzhm3m1f211x5gmk7hpqjb7k5kml7n3gw3npbjda"; + rev = "ae9378321552dd14066332f8fa55076040228cb7"; + sha256 = "1jbd319n255cmmncnjfdkdcpx0x62asp3dqwgl6vimx4dqqj8v1p"; }; nativeBuildInputs = [ go git ]; bazelTarget = "//:bazel-remote"; + removeRulesCC = false; + + # this is to work around `test -f` failing when called by gazelle + # https://github.com/bazelbuild/bazel-gazelle/blob/v0.19.1/internal/go_repository.bzl#L135 + patches = [ ./disable_build_file_generation.patch ]; + fetchAttrs = { preBuild = '' patchShebangs . @@ -28,12 +34,11 @@ buildBazelPackage rec { # tell rules_go to use the Go binary found in the PATH sed -e 's:go_register_toolchains():go_register_toolchains(go_version = "host"):g' -i WORKSPACE - # update gazelle to work around https://github.com/golang/go/issues/29850 - sed -e 's,https://github.com/bazelbuild/bazel-gazelle/releases/download/0.15.0/bazel-gazelle-0.15.0.tar.gz,https://github.com/bazelbuild/bazel-gazelle/releases/download/0.16.0/bazel-gazelle-0.16.0.tar.gz,g' -i WORKSPACE - sed -e 's,6e875ab4b6bf64a38c352887760f21203ab054676d9c1b274963907e0768740d,7949fc6cc17b5b191103e97481cf8889217263acf52e00b560683413af204fcb,g' -i WORKSPACE - # tell rules_go to invoke GIT with custom CAINFO path export GIT_SSL_CAINFO="${cacert}/etc/ssl/certs/ca-bundle.crt" + + # force gazelle to use the nix go cache rather than its own + # export GO_REPOSITORY_USE_HOST_CACHE=1 ''; preInstall = '' @@ -47,6 +52,11 @@ buildBazelPackage rec { rm -rf $bazelOut/external/{go_sdk,\@go_sdk.marker} sed -e '/^FILE:@go_sdk.*/d' -i $bazelOut/external/\@*.marker + # Remove the gazelle repository cache as it contains built binaries + chmod -R u+w $bazelOut/external/bazel_gazelle_go_repository_cache + rm -rf $bazelOut/external/{bazel_gazelle_go_repository_cache,\@bazel_gazelle_go_repository_cache.marker} + sed -e '/^FILE:@bazel_gazelle_go_repository_cache.*/d' -i $bazelOut/external/\@*.marker + # Remove the gazelle tools, they contain go binaries that are built # non-deterministically. As long as the gazelle version matches the tools # should be equivalent. @@ -54,7 +64,7 @@ buildBazelPackage rec { sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker ''; - sha256 = "1wvyv3w5y6vj6qs6v5qyd356j1lxc3mf7n3j2pcib1bqmx3igw35"; + sha256 = "1n66hg1w5jv2rc8q4sjlaf0agvxr713aa40mbkhgjv57x9j7bgn0"; }; buildAttrs = { @@ -75,7 +85,6 @@ buildBazelPackage rec { description = "A remote HTTP/1.1 cache for Bazel."; license = licenses.asl20; maintainers = [ maintainers.uri-canva ]; - platforms = platforms.darwin; - broken = true; # global variable '_layer' is referenced before assignment. + platforms = platforms.darwin ++ platforms.linux; }; } diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch b/pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch new file mode 100644 index 00000000000..67df8f559a2 --- /dev/null +++ b/pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch @@ -0,0 +1,24 @@ +From 3f5abd591b93ebdbc1ae82e5c29cf26024222f5f Mon Sep 17 00:00:00 2001 +From: Uri Baghin +Date: Thu, 30 Jan 2020 16:47:36 +1100 +Subject: [PATCH] Disable build file generation for remote apis. + +--- + WORKSPACE | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/WORKSPACE b/WORKSPACE +index f9ebafa..52e4e0b 100644 +--- a/WORKSPACE ++++ b/WORKSPACE +@@ -208,6 +208,7 @@ http_archive( + + go_repository( + name = "com_github_bazelbuild_remote_apis", ++ build_file_generation = "off", + importpath = "github.com/bazelbuild/remote-apis", + sum = "h1:OPH+hf+ICw8WEp2CV2ncfdyWPC30Cmw8b5NKun0n5IQ=", + version = "v0.0.0-20191119143007-b5123b1bb285", +-- +2.25.0 + diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix index 637519bcf3f..e3ad2a5bcbc 100644 --- a/pkgs/development/tools/database/liquibase/default.nix +++ b/pkgs/development/tools/database/liquibase/default.nix @@ -6,27 +6,15 @@ assert mysqlSupport -> mysql_jdbc != null; with stdenv.lib; let extraJars = optional mysqlSupport mysql_jdbc; - logback-core = fetchurl { - url = "http://central.maven.org/maven2/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar"; - sha256 = "5946d837fe6f960c02a53eda7a6926ecc3c758bbdd69aa453ee429f858217f22"; - }; - logback-classic = fetchurl { - url = "http://central.maven.org/maven2/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar"; - sha256 = "fb53f8539e7fcb8f093a56e138112056ec1dc809ebb020b59d8a36a5ebac37e0"; - }; - slf4j = fetchurl { - url = "http://central.maven.org/maven2/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar"; - sha256 = "18c4a0095d5c1da6b817592e767bb23d29dd2f560ad74df75ff3961dbde25b79"; - }; in stdenv.mkDerivation rec { pname = "liquibase"; - version = "3.6.2"; + version = "3.8.5"; src = fetchurl { - url = "https://github.com/liquibase/liquibase/releases/download/${pname}-parent-${version}/${pname}-${version}-bin.tar.gz"; - sha256 = "199ybjk0xxsg04v5x5l4arljmzj96hxva6ym6bp7av7dny0nqvfx"; + url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz"; + sha256 = "0wvz188i1214b904xrhvba90hyfrlc4za3aibbdqfm86wm3qzh6s"; }; buildInputs = [ jre makeWrapper ]; @@ -42,22 +30,17 @@ stdenv.mkDerivation rec { done ''; in '' - mkdir -p $out/{bin,lib,sdk} - mv ./* $out/ - cp ${logback-core} ${logback-classic} ${slf4j} $out/lib + mkdir -p $out + mv ./{lib,licenses,liquibase.jar} $out/ - # Clean up documentation. mkdir -p $out/share/doc/${pname}-${version} - mv $out/LICENSE.txt \ - $out/README.txt \ + mv LICENSE.txt \ + README.txt \ + ABOUT.txt \ + changelog.txt \ $out/share/doc/${pname}-${version} - # Remove silly files. - rm $out/liquibase.bat $out/liquibase.spec - - # we provide our own script - rm $out/liquibase - + mkdir -p $out/bin # there’s a lot of escaping, but I’m not sure how to improve that cat > $out/bin/liquibase < themes.json diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix index c4d01b3ff39..0bbc2b649e2 100644 --- a/pkgs/games/dwarf-fortress/unfuck.nix +++ b/pkgs/games/dwarf-fortress/unfuck.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchFromGitHub, cmake , libGL, libSM, SDL, SDL_image, SDL_ttf, glew, openalSoft , ncurses, glib, gtk2, libsndfile, zlib -, dfVersion +, dfVersion, pkg-config }: with lib; @@ -32,6 +32,10 @@ let unfuckRelease = "0.44.12"; sha256 = "1kszkb1d1vll8p04ja41nangsaxb5lv4p3xh2jhmsmipfixw7nvz"; }; + "0.47.01" = { + unfuckRelease = "0.47.01"; + sha256 = "11xvb3qh4crdf59pwfwpi73rzm3ysd1r1xp2k1jp7527jmqapk4k"; + }; }; release = if hasAttr dfVersion unfuck-releases @@ -54,7 +58,7 @@ stdenv.mkDerivation { "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include" ]; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ libSM SDL SDL_image SDL_ttf glew openalSoft ncurses gtk2 libsndfile zlib libGL diff --git a/pkgs/misc/lilypond/default.nix b/pkgs/misc/lilypond/default.nix index 7738c9b1c09..e9f8d6984af 100644 --- a/pkgs/misc/lilypond/default.nix +++ b/pkgs/misc/lilypond/default.nix @@ -61,7 +61,6 @@ stdenv.mkDerivation { license = licenses.gpl3; maintainers = with maintainers; [ marcweber yurrriq ]; platforms = platforms.all; - broken = stdenv.isDarwin; }; patches = [ ./findlib.patch ]; diff --git a/pkgs/misc/lilypond/unstable.nix b/pkgs/misc/lilypond/unstable.nix index 5b548038da9..e2c0dccb2e1 100644 --- a/pkgs/misc/lilypond/unstable.nix +++ b/pkgs/misc/lilypond/unstable.nix @@ -1,4 +1,4 @@ -{ fetchgit, lilypond, ghostscript, gyre-fonts }: +{ stdenv, fetchgit, lilypond, ghostscript, gyre-fonts }: let @@ -15,6 +15,10 @@ lilypond.overrideAttrs (oldAttrs: { sha256 = "1ycyx9x76d79jh7wlwyyhdjkyrwnhzqpw006xn2fk35s0jrm2iz0"; }; + meta = oldAttrs.meta // { + broken = stdenv.isDarwin; + }; + configureFlags = [ "--disable-documentation" "--with-urwotf-dir=${ghostscript}/share/ghostscript/fonts" diff --git a/pkgs/os-specific/linux/asus-wmi-sensors/default.nix b/pkgs/os-specific/linux/asus-wmi-sensors/default.nix new file mode 100644 index 00000000000..8eb8a7484e1 --- /dev/null +++ b/pkgs/os-specific/linux/asus-wmi-sensors/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchFromGitHub, kernel }: + +stdenv.mkDerivation rec { + name = "asus-wmi-sensors-${version}-${kernel.version}"; + version = "unstable-2019-11-07"; + + # The original was deleted from github, but this seems to be an active fork + src = fetchFromGitHub { + owner = "electrified"; + repo = "asus-wmi-sensors"; + rev = "8daafd45d1b860cf5b17eee1c94d93feb04164a9"; + sha256 = "0kc0xlrsmf783ln5bqyj6qxzmrhdxdfdd2b9ygf2lbl2153i04vc"; + }; + + hardeningDisable = [ "pic" ]; + + nativeBuildInputs = kernel.moduleBuildDependencies; + + preConfigure = '' + sed -i 's|depmod|#depmod|' Makefile + ''; + + makeFlags = [ + "TARGET=${kernel.modDirVersion}" + "KERNEL_MODULES=${kernel.dev}/lib/modules/${kernel.modDirVersion}" + "MODDESTDIR=${placeholder "out"}/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon" + ]; + + meta = with stdenv.lib; { + description = "Linux HWMON (lmsensors) sensors driver for various ASUS Ryzen and Threadripper motherboards"; + homepage = "https://github.com/electrified/asus-wmi-sensors"; + license = licenses.gpl2; + platforms = [ "x86_64-linux" "i686-linux" ]; + maintainers = with maintainers; [ Frostman ]; + broken = versionOlder kernel.version "4.12"; + }; +} diff --git a/pkgs/os-specific/linux/irqbalance/default.nix b/pkgs/os-specific/linux/irqbalance/default.nix index 8dc9e2694d4..27f176f6a72 100644 --- a/pkgs/os-specific/linux/irqbalance/default.nix +++ b/pkgs/os-specific/linux/irqbalance/default.nix @@ -16,6 +16,16 @@ stdenv.mkDerivation rec { LDFLAGS = "-lncurses"; + postInstall = + '' + # Systemd service + mkdir -p $out/lib/systemd/system + grep -vi "EnvironmentFile" misc/irqbalance.service >$out/lib/systemd/system/irqbalance.service + substituteInPlace $out/lib/systemd/system/irqbalance.service \ + --replace /usr/sbin/irqbalance $out/bin/irqbalance \ + --replace ' $IRQBALANCE_ARGS' "" + ''; + meta = { homepage = https://github.com/Irqbalance/irqbalance; description = "A daemon to help balance the cpu load generated by interrupts across all of a systems cpus"; diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 4ce6a37e689..7ecff5207df 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -710,6 +710,7 @@ let HWMON = yes; THERMAL_HWMON = yes; # Hardware monitoring support + NVME_HWMON = whenAtLeast "5.5" yes; # NVMe drives temperature reporting UEVENT_HELPER = no; USERFAULTFD = yes; diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix index f5aad76b0b4..9a9c48a7908 100644 --- a/pkgs/os-specific/linux/nvidia-x11/default.nix +++ b/pkgs/os-specific/linux/nvidia-x11/default.nix @@ -22,10 +22,10 @@ rec { # Policy: use the highest stable version as the default (on our master). stable = if stdenv.hostPlatform.system == "x86_64-linux" then generic { - version = "440.44"; - sha256_64bit = "057wq9p2vl87gy61f079b6d7clw2vhw3kq7rj411brhrnvr7shmd"; - settingsSha256 = "1hr1n78c92zksnnryrcz4b8kxvi6kz4yp801ks85hq4a3rryj4vg"; - persistencedSha256 = "050znx2scm7x3r7czsz77ddjh4bs18hdd3k3shwpi3zflkmnhnvj"; + version = "440.59"; + sha256_64bit = "162gq6w44l8sgnn4qnl2rdlx8c008p04zv4c3i1ps20p21n1mjv1"; + settingsSha256 = "0vxhmirqzyav5ljf0f04yk0az48ir5v0817dq9z9kyqfdvnby93g"; + persistencedSha256 = "0npjh7nashasydp8q6bbcp21w8fc1dycgjy50ics775hjnvm61qn"; } else legacy_390; diff --git a/pkgs/servers/home-assistant/appdaemon.nix b/pkgs/servers/home-assistant/appdaemon.nix index 47d9e88999a..258e46db199 100644 --- a/pkgs/servers/home-assistant/appdaemon.nix +++ b/pkgs/servers/home-assistant/appdaemon.nix @@ -1,18 +1,14 @@ -{ lib, python3 }: +{ lib, python3, fetchFromGitHub }: let python = python3.override { packageOverrides = self: super: { - - aiohttp = super.aiohttp.overridePythonAttrs (oldAttrs: rec { - version = "2.3.10"; + bcrypt = super.bcrypt.overridePythonAttrs (oldAttrs: rec { + version = "3.1.4"; src = oldAttrs.src.override { inherit version; - sha256 = "8adda6583ba438a4c70693374e10b60168663ffa6564c5c75d3c7a9055290964"; + sha256 = "13cyrnqwkhc70rs6dg65z4yrrr3dc42fhk11804fqmci9hvimvb7"; }; - # TODO: remove after pinning aiohttp to a newer version - propagatedBuildInputs = with self; [ chardet multidict async-timeout yarl idna-ssl ]; - doCheck = false; }); yarl = super.yarl.overridePythonAttrs (oldAttrs: rec { @@ -43,23 +39,26 @@ let in python.pkgs.buildPythonApplication rec { pname = "appdaemon"; - version = "3.0.5"; + version = "4.0.1"; - src = python.pkgs.fetchPypi { - inherit pname version; - sha256 = "623897ce08dc2efe24d04380df36e4b7fb35c0e4007e882857d4047f0b60349d"; + src = fetchFromGitHub { + owner = "home-assistant"; + repo = "appdaemon"; + rev = version; + sha256 = "13qzjv11b0c7s1c66j70qmc222a78805n10lv2svj9yyk1v4xhjv"; }; propagatedBuildInputs = with python.pkgs; [ - daemonize astral requests sseclient websocket_client aiohttp yarl jinja2 + daemonize astral requests websocket_client aiohttp yarl jinja2 aiohttp-jinja2 pyyaml voluptuous feedparser iso8601 bcrypt paho-mqtt setuptools + deepdiff dateutil bcrypt python-socketio pid ]; # no tests implemented doCheck = false; postPatch = '' - substituteInPlace setup.py --replace "pyyaml==5.1" "pyyaml" + substituteInPlace requirements.txt --replace "pyyaml==5.1" "pyyaml" ''; meta = with lib; { diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix index 990d7c5cf13..31a501332ff 100644 --- a/pkgs/servers/http/nginx/generic.nix +++ b/pkgs/servers/http/nginx/generic.nix @@ -5,7 +5,20 @@ , withStream ? true , withMail ? false , modules ? [] -, version, sha256, ... +, ... +}: + +{ pname ? "nginx" +, version +, nginxVersion ? version +, src ? null # defaults to upstream nginx ${version} +, sha256 ? null # when not specifying src +, configureFlags ? [] +, buildInputs ? [] +, fixPatch ? p: p +, preConfigure ? "" +, postInstall ? null +, meta ? null }: with stdenv.lib; @@ -16,21 +29,23 @@ let (mod: let supports = mod.supports or (_: true); in - if supports version then mod.${attrPath} or [] - else throw "Module at ${toString mod.src} does not support nginx version ${version}!"); + if supports nginxVersion then mod.${attrPath} or [] + else throw "Module at ${toString mod.src} does not support nginx version ${nginxVersion}!"); in stdenv.mkDerivation { - pname = "nginx"; + inherit pname; inherit version; + inherit nginxVersion; - src = fetchurl { + src = if src != null then src else fetchurl { url = "https://nginx.org/download/nginx-${version}.tar.gz"; inherit sha256; }; buildInputs = [ openssl zlib pcre libxml2 libxslt gd geoip perl ] + ++ buildInputs ++ mapModules "inputs"; configureFlags = [ @@ -71,6 +86,7 @@ stdenv.mkDerivation { ] ++ optional (gd != null) "--with-http_image_filter_module" ++ optional (with stdenv.hostPlatform; isLinux || isFreeBSD) "--with-file-aio" + ++ configureFlags ++ map (mod: "--add-module=${mod.src}") modules; NIX_CFLAGS_COMPILE = toString ([ @@ -80,33 +96,35 @@ stdenv.mkDerivation { configurePlatforms = []; - preConfigure = (concatMapStringsSep "\n" (mod: mod.preConfigure or "") modules); + preConfigure = preConfigure + + concatMapStringsSep "\n" (mod: mod.preConfigure or "") modules; - patches = stdenv.lib.singleton (substituteAll { - src = ./nix-etag-1.15.4.patch; - preInstall = '' - export nixStoreDir="$NIX_STORE" nixStoreDirLen="''${#NIX_STORE}" - ''; - }) ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - (fetchpatch { - url = "https://raw.githubusercontent.com/openwrt/packages/master/net/nginx/patches/102-sizeof_test_fix.patch"; - sha256 = "0i2k30ac8d7inj9l6bl0684kjglam2f68z8lf3xggcc2i5wzhh8a"; - }) - (fetchpatch { - url = "https://raw.githubusercontent.com/openwrt/packages/master/net/nginx/patches/101-feature_test_fix.patch"; - sha256 = "0v6890a85aqmw60pgj3mm7g8nkaphgq65dj4v9c6h58wdsrc6f0y"; - }) - (fetchpatch { - url = "https://raw.githubusercontent.com/openwrt/packages/master/net/nginx/patches/103-sys_nerr.patch"; - sha256 = "0s497x6mkz947aw29wdy073k8dyjq8j99lax1a1mzpikzr4rxlmd"; - }) - ] ++ mapModules "patches"; + patches = map fixPatch + (singleton (substituteAll { + src = ./nix-etag-1.15.4.patch; + preInstall = '' + export nixStoreDir="$NIX_STORE" nixStoreDirLen="''${#NIX_STORE}" + ''; + }) ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + (fetchpatch { + url = "https://raw.githubusercontent.com/openwrt/packages/master/net/nginx/patches/102-sizeof_test_fix.patch"; + sha256 = "0i2k30ac8d7inj9l6bl0684kjglam2f68z8lf3xggcc2i5wzhh8a"; + }) + (fetchpatch { + url = "https://raw.githubusercontent.com/openwrt/packages/master/net/nginx/patches/101-feature_test_fix.patch"; + sha256 = "0v6890a85aqmw60pgj3mm7g8nkaphgq65dj4v9c6h58wdsrc6f0y"; + }) + (fetchpatch { + url = "https://raw.githubusercontent.com/openwrt/packages/master/net/nginx/patches/103-sys_nerr.patch"; + sha256 = "0s497x6mkz947aw29wdy073k8dyjq8j99lax1a1mzpikzr4rxlmd"; + }) + ] ++ mapModules "patches"); hardeningEnable = optional (!stdenv.isDarwin) "pie"; enableParallelBuilding = true; - postInstall = '' + postInstall = if postInstall != null then postInstall else '' mv $out/sbin $out/bin ''; @@ -115,7 +133,7 @@ stdenv.mkDerivation { tests.nginx = nixosTests.nginx; }; - meta = { + meta = if meta != null then meta else { description = "A reverse proxy and lightweight webserver"; homepage = http://nginx.org; license = licenses.bsd2; diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix index c5e0b47e238..8626dd4a762 100644 --- a/pkgs/servers/http/nginx/mainline.nix +++ b/pkgs/servers/http/nginx/mainline.nix @@ -1,6 +1,6 @@ { callPackage, ... }@args: -callPackage ./generic.nix (args // { - version = "1.17.3"; - sha256 = "0g0g9prwjy0rnv6n5smny5yl5dhnmflqdr3hwgyj5jpr5hfgx11v"; -}) +callPackage ./generic.nix args { + version = "1.17.8"; + sha256 = "0nwn4md8sxhks2j77qq1nvk5pfz3yykfhh2b507b6l2idp7kxllp"; +} diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix index 78ad5c5582d..b5282d862af 100644 --- a/pkgs/servers/http/nginx/modules.nix +++ b/pkgs/servers/http/nginx/modules.nix @@ -20,14 +20,14 @@ in { brotli = { src = let gitsrc = pkgs.fetchFromGitHub { - owner = "eustas"; + owner = "google"; repo = "ngx_brotli"; - rev = "v0.1.2"; - sha256 = "19r9igxm4hrzrhxajlxw2ccq0057h8ipkfiif725x0xqbxjskl6c"; + rev = "e505dce68acc190cc5a1e780a3b0275e39f160ca"; + sha256 = "00j48lffki62y1nmjyy81iklw5nlyzvrjy3z04qch4fp3p57hwla"; }; in pkgs.runCommandNoCC "ngx_brotli-src" {} '' cp -a ${gitsrc} $out - substituteInPlace $out/config \ - --replace /usr/local ${lib.getDev pkgs.brotli} + substituteInPlace $out/filter/config \ + --replace '$ngx_addon_dir/deps/brotli/c' ${lib.getDev pkgs.brotli} ''; inputs = [ pkgs.brotli ]; }; diff --git a/pkgs/servers/http/nginx/stable.nix b/pkgs/servers/http/nginx/stable.nix index 31aeaa6f084..001ea60839a 100644 --- a/pkgs/servers/http/nginx/stable.nix +++ b/pkgs/servers/http/nginx/stable.nix @@ -1,6 +1,6 @@ { callPackage, ... } @ args: -callPackage ./generic.nix (args // { +callPackage ./generic.nix args { version = "1.16.1"; sha256 = "0az3vf463b538ajvaq94hsz9ipmjgnamfj1jy0v5flfks5njl77i"; -}) +} diff --git a/pkgs/servers/http/openresty/default.nix b/pkgs/servers/http/openresty/default.nix index 328db9ec986..55e813a2ce7 100644 --- a/pkgs/servers/http/openresty/default.nix +++ b/pkgs/servers/http/openresty/default.nix @@ -1,52 +1,35 @@ -{ stdenv, fetchurl, openssl, zlib, pcre, postgresql, libxml2, libxslt, -gd, geoip, perl }: +{ callPackage +, runCommand +, lib +, fetchurl +, postgresql +, ... +}@args: -with stdenv.lib; - -stdenv.mkDerivation rec { +callPackage ../nginx/generic.nix args rec { pname = "openresty"; - version = "1.15.8.2"; + nginxVersion = "1.15.8"; + version = "${nginxVersion}.2"; src = fetchurl { url = "https://openresty.org/download/openresty-${version}.tar.gz"; sha256 = "05jxrb8hv758nm38jil8n63q1nhrz3d249bsrwc7maa7sn24wss3"; }; - buildInputs = [ openssl zlib pcre libxml2 libxslt gd geoip postgresql ]; - nativeBuildInputs = [ perl ]; + fixPatch = patch: + runCommand "openresty-${patch.name}" { src = patch; } '' + substitute $src $out \ + --replace "src/" "bundle/nginx-${nginxVersion}/src/" + ''; - NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2"; + buildInputs = [ postgresql ]; + + configureFlags = [ "--with-http_postgres_module" ]; preConfigure = '' patchShebangs . ''; - configureFlags = [ - "--with-pcre-jit" - "--with-http_ssl_module" - "--with-http_v2_module" - "--with-http_realip_module" - "--with-http_addition_module" - "--with-http_xslt_module" - "--with-http_image_filter_module" - "--with-http_geoip_module" - "--with-http_sub_module" - "--with-http_dav_module" - "--with-http_flv_module" - "--with-http_mp4_module" - "--with-http_gunzip_module" - "--with-http_gzip_static_module" - "--with-http_auth_request_module" - "--with-http_random_index_module" - "--with-http_secure_link_module" - "--with-http_degradation_module" - "--with-http_stub_status_module" - "--with-http_postgres_module" - "--with-ipv6" - ]; - - enableParallelBuilding = true; - postInstall = '' ln -s $out/luajit/bin/luajit-2.1.0-beta3 $out/bin/luajit-openresty ln -s $out/nginx/sbin/nginx $out/bin/nginx @@ -55,8 +38,8 @@ stdenv.mkDerivation rec { meta = { description = "A fast web application server built on Nginx"; homepage = http://openresty.org; - license = licenses.bsd2; - platforms = platforms.all; - maintainers = with maintainers; [ thoughtpolice lblasc ]; + license = lib.licenses.bsd2; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ thoughtpolice lblasc emily ]; }; } diff --git a/pkgs/servers/mail/mailman/web.nix b/pkgs/servers/mail/mailman/web.nix index 408840c3f93..4586c3d0fdf 100644 --- a/pkgs/servers/mail/mailman/web.nix +++ b/pkgs/servers/mail/mailman/web.nix @@ -34,6 +34,6 @@ buildPythonPackage rec { meta = with lib; { description = "Django project for Mailman 3 web interface"; license = licenses.gpl3; - maintainers = with maintainers; [ qyliss ]; + maintainers = with maintainers; [ peti qyliss ]; }; } diff --git a/pkgs/servers/mautrix-telegram/default.nix b/pkgs/servers/mautrix-telegram/default.nix index 5089acc2a0f..73a008d3fe7 100644 --- a/pkgs/servers/mautrix-telegram/default.nix +++ b/pkgs/servers/mautrix-telegram/default.nix @@ -1,25 +1,17 @@ -{ lib, python3, mautrix-telegram, fetchpatch }: +{ lib, python3, mautrix-telegram }: with python3.pkgs; buildPythonPackage rec { pname = "mautrix-telegram"; - version = "0.7.0"; + version = "0.7.1"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "0xzivcn1s5j2nn9p7li9bzr0h225bnli4fr3yrh8v7npx2ymg1r3"; + sha256 = "1yi4h37lhlpa095hzd0gwn1ifbycq8878kj5n2sjhw8kk6nblda9"; }; - patches = [ - # fix tests - (fetchpatch { - url = "https://github.com/tulir/mautrix-telegram/commit/fe52f0ad106122f08af72e356c4c62bb8875b453.patch"; - sha256 = "0r7j7q78brqqx0rkchld328k00yq0ykdk7syvwpihqzj3gchacb7"; - }) - ]; - postPatch = '' sed -i -e '/alembic>/d' setup.py substituteInPlace setup.py \ diff --git a/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix b/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix new file mode 100644 index 00000000000..93e6f1767ad --- /dev/null +++ b/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix @@ -0,0 +1,22 @@ +{ lib, fetchFromGitHub, pythonPackages }: + +pythonPackages.buildPythonApplication rec { + pname = "prometheus-xmpp-alerts"; + version = "0.4.2"; + + src = fetchFromGitHub { + owner = "jelmer"; + repo = pname; + rev = version; + sha256 = "17aq6v4ahnga82r350kx1y8i7zgikpzmwzaacj7a339kh8hxkh63"; + }; + + propagatedBuildInputs = with pythonPackages; [ slixmpp prometheus_client pyyaml ]; + + meta = { + description = "XMPP Web hook for Prometheus"; + homepage = "https://github.com/jelmer/prometheus-xmpp-alerts"; + maintainers = with lib.maintainers; [ fpletz ]; + license = with lib.licenses; [ asl20 ]; + }; +} diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix index d451c1dab5c..c86ed3defbc 100644 --- a/pkgs/servers/sql/mariadb/default.nix +++ b/pkgs/servers/sql/mariadb/default.nix @@ -194,7 +194,7 @@ server = stdenv.mkDerivation (common // { # perlPackages.DBDmysql is broken on darwin postFixup = optionalString (!stdenv.hostPlatform.isDarwin) '' - wrapProgram $out/bin/mytop --set PATH ${less}/bin/less + wrapProgram $out/bin/mytop --set PATH ${makeBinPath [ less ncurses ]} ''; CXXFLAGS = optionalString stdenv.hostPlatform.isi686 "-fpermissive"; diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix index e4af7d6fedc..ada885b974c 100644 --- a/pkgs/shells/zsh/oh-my-zsh/default.nix +++ b/pkgs/shells/zsh/oh-my-zsh/default.nix @@ -4,13 +4,13 @@ { stdenv, fetchgit }: stdenv.mkDerivation rec { - version = "2020-01-31"; + version = "2020-02-04"; pname = "oh-my-zsh"; - rev = "69caf98cf754553fda969b0bf1d4966f0498f58f"; + rev = "6bebc254e88ac9b7fdaa7491d031f82ec107e418"; src = fetchgit { inherit rev; url = "https://github.com/ohmyzsh/ohmyzsh"; - sha256 = "0hkgqhb7a5a0zm2rn22agfphzzvd9y9v6hs8zc6cpx1xxdqp36pm"; + sha256 = "1lmg1givymr4hgmvmngklm7q3g7dpqwm7aj5xild72cdhx0g5qqw"; }; pathsToLink = [ "/share/oh-my-zsh" ]; diff --git a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix index 5b649a3923e..38d5cfdb852 100644 --- a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix +++ b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix @@ -5,12 +5,12 @@ stdenv.mkDerivation { pname = "powerlevel10k"; - version = "1.0"; + version = "1.1"; src = fetchFromGitHub { owner = "romkatv"; repo = "powerlevel10k"; - rev = "c21961b53c137253020aeffca2b132fdd6bcb116"; - sha256 = "1jp6jhw5kb10d76zkxdv8c04s51ilmjka336bgnllya9nyqaqpxp"; + rev = "9d9c50611da19044370ee759e593ccadbad32a6a"; + sha256 = "0jl4jamh7i8w7lp3qbbakh1wsyrrmslsrjwh9jgyvw50a83hp6fj"; }; patches = [ diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix index 290800e4226..4d129e9c9dc 100644 --- a/pkgs/tools/admin/azure-cli/python-packages.nix +++ b/pkgs/tools/admin/azure-cli/python-packages.nix @@ -129,6 +129,9 @@ let azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "0.11.0" "zip" "05j0s2ng6ck35lw85cbjf5cm6canc71c41aagr68cmiqj1li6v1z"; + azure-mgmt-deploymentmanager = overrideAzureMgmtPackage super.azure-mgmt-deploymentmanager "0.1.0" "zip" + "0gvh17bhfcpvr6w0nd06v482m8lqxchlk256w68agi2qnqw6v2ir"; + azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "0.2.1" "zip" "0mwlvy4x5nr3hsz7wdpdhpzwarzzwz4225bfpd68hr0pcjgzspky"; diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix index ad71ff6b1fe..44e55a271fd 100644 --- a/pkgs/tools/archivers/unrar/default.nix +++ b/pkgs/tools/archivers/unrar/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "unrar"; - version = "5.8.5"; + version = "5.9.1"; src = fetchurl { url = "https://www.rarlab.com/rar/unrarsrc-${version}.tar.gz"; - sha256 = "0abvz6vv8kr416fphysfbwgxc6hyf1bpnd0aczfv7j3vc8x949d7"; + sha256 = "0071inswykarjbg4a80fz4n9xdinjfvxd9kmwz5gq0i1w2wd3c8f"; }; postPatch = '' diff --git a/pkgs/tools/misc/graylog/default.nix b/pkgs/tools/misc/graylog/default.nix index 46812da8954..e331e43956e 100644 --- a/pkgs/tools/misc/graylog/default.nix +++ b/pkgs/tools/misc/graylog/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "graylog"; - version = "3.1.4"; + version = "3.2.0"; src = fetchurl { url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz"; - sha256 = "1z7jy82dk5l2yxmcb7y0jws4p1l367fxj69pfi10ajssj66vwjfw"; + sha256 = "128hlk2m7dy1ajvxkkazbi2npx738jfrkkznvmhyxm0hllcw4r9z"; }; dontBuild = true; diff --git a/pkgs/tools/misc/mons/default.nix b/pkgs/tools/misc/mons/default.nix new file mode 100644 index 00000000000..c1dbfa0aa49 --- /dev/null +++ b/pkgs/tools/misc/mons/default.nix @@ -0,0 +1,27 @@ +{ stdenv, lib, fetchFromGitHub, help2man, xrandr }: + +stdenv.mkDerivation rec { + pname = "mons"; + version = "20200107"; + + src = fetchFromGitHub { + owner = "Ventto"; + repo = pname; + rev = "0c9e1a1dddff23a0525ed8e4ec9af8f9dd8cad4c"; + sha256 = "02c41mw3g1mgl91hhpz1n45iaqk9s7mdk1ixm8yv6sv17hy8rr4w"; + fetchSubmodules = true; + }; + + # PR: https://github.com/Ventto/mons/pull/36 + preConfigure = ''sed -i 's/usr\///' Makefile''; + + nativeBuildInputs = [ help2man ]; + makeFlags = [ "DESTDIR=$(out)" ]; + + meta = with lib; { + description = "POSIX Shell script to quickly manage 2-monitors display"; + homepage = "https://github.com/Ventto/mons.git"; + license = licenses.mit; + maintainers = [ maintainers.mschneider ]; + }; +} diff --git a/pkgs/tools/misc/snapper/default.nix b/pkgs/tools/misc/snapper/default.nix index 283503f2878..8b0167917dd 100644 --- a/pkgs/tools/misc/snapper/default.nix +++ b/pkgs/tools/misc/snapper/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "snapper"; - version = "0.8.8"; + version = "0.8.9"; src = fetchFromGitHub { owner = "openSUSE"; repo = "snapper"; rev = "v${version}"; - sha256 = "0wpf82xf61r9r20whhb83wk3408wac1if8awqm3bb36b9j7ni5jr"; + sha256 = "1flqhfpx9dipim22wq7wh1590ra4gydwii1jjp99pi03mdhavlbn"; }; nativeBuildInputs = [ diff --git a/pkgs/tools/misc/wimboot/default.nix b/pkgs/tools/misc/wimboot/default.nix new file mode 100644 index 00000000000..a63fa410634 --- /dev/null +++ b/pkgs/tools/misc/wimboot/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchFromGitHub, fetchpatch, libbfd, zlib, libiberty }: + +stdenv.mkDerivation rec { + pname = "wimboot"; + version = "2.6.0"; + + src = fetchFromGitHub { + owner = "ipxe"; + repo = "wimboot"; + rev = "v${version}"; + sha256 = "134wqqr147az5vbj4szd0xffwa99b4rar7w33zm3119zsn7sd79k"; + }; + + NIX_CFLAGS_COMPILE = "-Wno-address-of-packed-member"; # Fails on gcc9 + + patches = [ + # Fix for newer binutils + (fetchpatch { + url = + "https://github.com/ipxe/wimboot/commit/91be50c17d4d9f463109d5baafd70f9fdadd86db.patch"; + sha256 = "113448n49hmk8nz1dxbhxiciwl281zwalvb8z5p9xfnjvibj8274"; + }) + ]; + + # We cannot use sourceRoot because the patch wouldn't apply + postPatch = '' + cd src + ''; + + hardeningDisable = [ "pic" ]; + + buildInputs = [ libbfd zlib libiberty ]; + makeFlags = [ "wimboot.x86_64.efi" ]; + + installPhase = '' + mkdir -p $out/share/wimboot/ + cp wimboot.x86_64.efi $out/share/wimboot + ''; + + meta = with stdenv.lib; { + homepage = "https://ipxe.org/wimboot"; + description = "Windows Imaging Format bootloader"; + license = licenses.gpl2; + maintainers = with maintainers; [ das_j ajs124 ]; + platforms = platforms.x86; # Fails on aarch64 + }; +} diff --git a/pkgs/tools/misc/yubico-piv-tool/default.nix b/pkgs/tools/misc/yubico-piv-tool/default.nix index b5c5aca0883..f081f94a147 100644 --- a/pkgs/tools/misc/yubico-piv-tool/default.nix +++ b/pkgs/tools/misc/yubico-piv-tool/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, pkgconfig, openssl, pcsclite, check }: stdenv.mkDerivation rec { - name = "yubico-piv-tool-1.7.0"; + name = "yubico-piv-tool-2.0.0"; src = fetchurl { url = "https://developers.yubico.com/yubico-piv-tool/Releases/${name}.tar.gz"; - sha256 = "0zzxh8p9p097zkh9b3prbnigxsc2wy1pj1r8f5ikli9i81z54a5l"; + sha256 = "124lhlim05gw32ydjh1yawqbnx6wdllz1ir9j00j09wji3m11rfs"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/tools/networking/dnscrypt-proxy/1.x/default.nix b/pkgs/tools/networking/dnscrypt-proxy/1.x/default.nix deleted file mode 100644 index fc4e40929c9..00000000000 --- a/pkgs/tools/networking/dnscrypt-proxy/1.x/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, libsodium, ldns, openssl, systemd }: - -with stdenv.lib; - -stdenv.mkDerivation rec { - pname = "dnscrypt-proxy"; - version = "1.9.5"; - - src = fetchurl { - url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}-${version}.orig.tar.gz"; - sha256 = "1dhvklr4dg2vlw108n11xbamacaryyg3dbrg629b76lp7685p7z8"; - }; - - enableParallelBuilding = true; - - configureFlags = optional stdenv.isLinux "--with-systemd"; - - nativeBuildInputs = [ pkgconfig ]; - - # depends on - buildInputs = [ libsodium openssl.dev ldns ] ++ optional stdenv.isLinux systemd; - - postInstall = '' - # Previous versions required libtool files to load plugins; they are - # now strictly optional. - rm $out/lib/dnscrypt-proxy/*.la - ''; - - meta = { - description = "A tool for securing communications between a client and a DNS resolver"; - homepage = https://dnscrypt.info/; - license = licenses.isc; - maintainers = with maintainers; [ joachifm ]; - # upstream claims OSX support, but Hydra fails - platforms = platforms.linux; # Maybe other non-darwin Unix - }; -} diff --git a/pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix b/pkgs/tools/networking/dnscrypt-proxy2/default.nix similarity index 100% rename from pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix rename to pkgs/tools/networking/dnscrypt-proxy2/default.nix diff --git a/pkgs/tools/networking/socat/default.nix b/pkgs/tools/networking/socat/default.nix index ec62c105c62..500d33827b3 100644 --- a/pkgs/tools/networking/socat/default.nix +++ b/pkgs/tools/networking/socat/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, openssl, readline, which, nettools }: stdenv.mkDerivation rec { - name = "socat-1.7.3.3"; + name = "socat-1.7.3.4"; src = fetchurl { url = "http://www.dest-unreach.org/socat/download/${name}.tar.bz2"; - sha256 = "0jnhjijyq74g3wa4ph0am83z6vq7qna7ac0xqjma8s4197z3zmhd"; + sha256 = "1z7xgnwiqpcv1j6aghhj9nqbx7cg3gpc4n9j7vi9hm7nhv5788wp"; }; patches = stdenv.lib.optional stdenv.isDarwin ./speed-type-fix.patch; diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix index c8413c56854..2b7fbd28c7e 100644 --- a/pkgs/tools/package-management/protontricks/default.nix +++ b/pkgs/tools/package-management/protontricks/default.nix @@ -1,18 +1,31 @@ { stdenv, lib, buildPythonApplication, fetchFromGitHub -, vdf, wine, winetricks, zenity +, setuptools_scm, vdf +, wine, winetricks, zenity +, pytest }: buildPythonApplication rec { pname = "protontricks"; - version = "1.3.1"; + version = "1.4"; src = fetchFromGitHub { owner = "Matoking"; repo = pname; rev = version; - sha256 = "0snhm9r5igik030iqxm3zd9zvhlnsxi20zac71bbc29qflsi2dhk"; + sha256 = "1aarx6g8ykw1jvygfngmz8apdvfj26rcq10bwl228612kwigh7s2"; }; + # Fix interpreter in mock run.sh for tests + postPatch = '' + substituteInPlace tests/conftest.py \ + --replace '#!/bin/bash' '#!${stdenv.shell}' \ + ''; + + preBuild = '' + export SETUPTOOLS_SCM_PRETEND_VERSION="${version}" + ''; + + nativeBuildInputs = [ setuptools_scm ]; propagatedBuildInputs = [ vdf ]; # The wine install shipped with Proton must run under steam's @@ -24,12 +37,12 @@ buildPythonApplication rec { "--set STEAM_RUNTIME 0" "--set-default WINE ${wine}/bin/wine" "--set-default WINESERVER ${wine}/bin/wineserver" - "--prefix PATH : ${lib.makeBinPath [ - (winetricks.override { inherit wine; }) - zenity - ]}" + "--prefix PATH : ${lib.makeBinPath [ winetricks zenity ]}" ]; + checkInputs = [ pytest ]; + checkPhase = "pytest"; + meta = with stdenv.lib; { description = "A simple wrapper for running Winetricks commands for Proton-enabled games"; homepage = https://github.com/Matoking/protontricks; diff --git a/pkgs/tools/security/qesteidutil/default.nix b/pkgs/tools/security/qesteidutil/default.nix deleted file mode 100644 index fac855f232a..00000000000 --- a/pkgs/tools/security/qesteidutil/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenv, fetchFromGitHub -, cmake, ccid, qttools, qttranslations -, pkgconfig, pcsclite, hicolor-icon-theme -}: - -stdenv.mkDerivation { - version = "2018-08-21"; - pname = "qesteidutil"; - - src = fetchFromGitHub { - owner = "open-eid"; - repo = "qesteidutil"; - # TODO: Switch back to this after next release. - #rev = "v${version}"; - rev = "3bb65ef345aaa0d589b37a5d0d6f5772e95b0cd7"; - sha256 = "13xsw5gh4svp9a5nxcqv72mymivr7w1cyjbv2l6yf96m45bsd9x4"; - fetchSubmodules = true; - }; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake ccid qttools pcsclite qttranslations - hicolor-icon-theme - ]; - - meta = with stdenv.lib; { - description = "UI application for managing smart card PIN/PUK codes and certificates"; - homepage = http://www.id.ee/; - license = licenses.lgpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ jagajaga domenkozar ]; - }; -} diff --git a/pkgs/tools/system/ytop/default.nix b/pkgs/tools/system/ytop/default.nix new file mode 100644 index 00000000000..b1677dadf9d --- /dev/null +++ b/pkgs/tools/system/ytop/default.nix @@ -0,0 +1,28 @@ +{ stdenv, rustPlatform, fetchFromGitHub, IOKit }: + +assert stdenv.isDarwin -> IOKit != null; + +rustPlatform.buildRustPackage rec { + pname = "ytop"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "cjbassi"; + repo = pname; + rev = version; + sha256 = "1158nlg5b93jyljwvf9f2m8m3ph8sksk5dh9sfnvbiifbk4gizv7"; + }; + + buildInputs = stdenv.lib.optionals stdenv.isDarwin [ IOKit ]; + + cargoSha256 = "11pcchwahcwdvmfwfs6j2zg23grlw538wfs90mvqy2mpccj7d3ys"; + verifyCargoDeps = true; + + meta = with stdenv.lib; { + description = "A TUI system monitor written in Rust"; + homepage = https://github.com/cjbassi/ytop; + license = licenses.mit; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/tools/text/opencc/default.nix b/pkgs/tools/text/opencc/default.nix index 01b16908fb7..8b6ada09ebe 100644 --- a/pkgs/tools/text/opencc/default.nix +++ b/pkgs/tools/text/opencc/default.nix @@ -9,10 +9,10 @@ stdenv.mkDerivation { buildInputs = [ cmake python ]; - makeFlags = [ + preBuild = '' # let intermediate tools find intermediate library - "LD_LIBRARY_PATH=$LD_LIBRARY_PATH\${LD_LIBRARY_PATH:+:}$(CURDIR)/src" - ]; + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$(pwd)/src + ''; # Parallel building occasionaly fails with: Error copying file "/tmp/nix-build-opencc-1.0.5.drv-0/OpenCC-ver.1.0.5/build/src/libopencc.so.1.0.0" to "/tmp/nix-build-opencc-1.0.5.drv-0/OpenCC-ver.1.0.5/build/src/tools". enableParallelBuilding = false; diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix index 9eaa81e144b..03394e1eb4c 100644 --- a/pkgs/tools/typesetting/tex/texlive/bin.nix +++ b/pkgs/tools/typesetting/tex/texlive/bin.nix @@ -68,6 +68,9 @@ let done cp -pv ${pdftoepdf} texk/web2c/pdftexdir/pdftoepdf.cc cp -pv ${pdftosrc} texk/web2c/pdftexdir/pdftosrc.cc + + # poppler 0.84 compat fixups, use 0.83 files otherwise + patch -p1 -i ${./poppler84.patch} ''; # remove when removing synctex-missing-header.patch diff --git a/pkgs/tools/typesetting/tex/texlive/poppler84.patch b/pkgs/tools/typesetting/tex/texlive/poppler84.patch new file mode 100644 index 00000000000..02dc9e2413d --- /dev/null +++ b/pkgs/tools/typesetting/tex/texlive/poppler84.patch @@ -0,0 +1,43 @@ +From cf05aae9685e5c6a46b4313e7bfce49edc6f51f9 Mon Sep 17 00:00:00 2001 +From: Mikle Kolyada +Date: Tue, 31 Dec 2019 11:29:30 +0300 +Subject: [PATCH] poppler-0.84 compat + +Upstream report: https://tug.org/pipermail/tex-k/2019-December/003096.html + +Signed-off-by: Mikle Kolyada +--- + texk/web2c/pdftexdir/utils.c | 1 - + texk/web2c/xetexdir/XeTeX_ext.c | 3 +++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/texk/web2c/pdftexdir/utils.c b/texk/web2c/pdftexdir/utils.c +index c93a8781..6f866e76 100644 +--- a/texk/web2c/pdftexdir/utils.c ++++ b/texk/web2c/pdftexdir/utils.c +@@ -33,7 +33,6 @@ with this program. If not, see . + #include "ptexlib.h" + #include + #ifdef POPPLER_VERSION +-#include + #define xpdfVersion POPPLER_VERSION + #define xpdfString "poppler" + #else +diff --git a/texk/web2c/xetexdir/XeTeX_ext.c b/texk/web2c/xetexdir/XeTeX_ext.c +index 4968ee41..0aee4ee3 100644 +--- a/texk/web2c/xetexdir/XeTeX_ext.c ++++ b/texk/web2c/xetexdir/XeTeX_ext.c +@@ -38,7 +38,10 @@ authorization from the copyright holders. + + #include + ++#ifndef POPPLER_VERSION + #include ++#endif ++ + #include + #include + #include +-- +2.24.1 + diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index c75efae1abb..4ee74a0f58e 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -84,6 +84,7 @@ mapAliases ({ cv = progress; # added 2015-09-06 d1x_rebirth = dxx-rebirth; # added 2018-04-25 d2x_rebirth = dxx-rebirth; # added 2018-04-25 + dat = nodePackages.dat; dbus_daemon = dbus.daemon; # added 2018-04-25 dbus_glib = dbus-glib; # added 2018-02-25 dbus_libs = dbus; # added 2018-04-25 @@ -237,6 +238,7 @@ mapAliases ({ man_db = man-db; # added 2016-05 manpages = man-pages; # added 2015-12-06 mariadb-client = hiPrio mariadb.client; #added 2019.07.28 + matrique = spectral; # added 2020-01-27 mbedtls_1_3 = throw "mbedtls_1_3 is end of life, see https://tls.mbed.org/kb/how-to/upgrade-2.0"; # added 2019-12-08 mess = mame; # added 2019-10-30 mcomix = throw "mcomix has been removed from nixpkgs, as it's unmaintained"; # added 2019-12-10 @@ -252,6 +254,7 @@ mapAliases ({ midoriWrapper = midori; # added 2015-01 mlt-qt5 = libsForQt5.mlt; # added 2015-12-19 mobile_broadband_provider_info = mobile-broadband-provider-info; # added 2018-02-25 + moby = throw "moby has been removed, merged into linuxkit in 2018. Use linuxkit instead."; module_init_tools = kmod; # added 2016-04-22 mono-zeroconf = throw "deprecated 2019-09-20: abandoned by upstream."; mozart = mozart2-binary; # added 2019-09-23 @@ -288,6 +291,7 @@ mapAliases ({ opensans-ttf = open-sans; # added 2018-12-04 openssh_with_kerberos = openssh; # added 2018-01-28 osquery = throw "osquery has been removed."; # added 2019-11-24 + otter-browser = throw "otter-browser has been removed from nixpkgs, as it was unmaintained"; # added 2020-02-02 owncloudclient = owncloud-client; # added 2016-08 p11_kit = p11-kit; # added 2018-02-25 parquet-cpp = arrow-cpp; # added 2018-09-08 @@ -564,4 +568,7 @@ mapAliases ({ ''; oraclejre8psu = oraclejdk8psu; oraclejdk8psu_distro = oraclejdk8psu; + + dnscrypt-proxy = throw "dnscrypt-proxy has been removed. Please use dnscrypt-proxy2."; # added 2020-02-02 + sqldeveloper_18 = throw "sqldeveloper_18 is not maintained anymore!"; # added 2020-02-04 }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c7d3628b84f..f90ba38fa89 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1963,6 +1963,8 @@ in monetdb = callPackage ../servers/sql/monetdb { }; + mons = callPackage ../tools/misc/mons {}; + mousetweaks = callPackage ../applications/accessibility/mousetweaks { inherit (pkgs.xorg) libX11 libXtst libXfixes; }; @@ -2041,6 +2043,8 @@ in parallel-rust = callPackage ../tools/misc/parallel-rust { }; + pueue = callPackage ../applications/misc/pueue { }; + pyCA = python3Packages.callPackage ../applications/video/pyca {}; pyznap = python3Packages.callPackage ../tools/backup/pyznap {}; @@ -2770,9 +2774,7 @@ in djbdns = callPackage ../tools/networking/djbdns { }; - dnscrypt-proxy = callPackage ../tools/networking/dnscrypt-proxy/1.x { }; - - dnscrypt-proxy2 = callPackage ../tools/networking/dnscrypt-proxy/2.x { }; + dnscrypt-proxy2 = callPackage ../tools/networking/dnscrypt-proxy2 { }; dnscrypt-wrapper = callPackage ../tools/networking/dnscrypt-wrapper { }; @@ -5984,7 +5986,6 @@ in qastools = libsForQt5.callPackage ../tools/audio/qastools { }; - qesteidutil = libsForQt5.callPackage ../tools/security/qesteidutil { } ; qdigidoc = libsForQt5.callPackage ../tools/security/qdigidoc { } ; qgrep = callPackage ../tools/text/qgrep { @@ -6678,8 +6679,6 @@ in Sylk = callPackage ../applications/networking/Sylk {}; - otter-browser = qt5.callPackage ../applications/networking/browsers/otter {}; - privoxy = callPackage ../tools/networking/privoxy { w3m = w3m-batch; }; @@ -7185,6 +7184,8 @@ in wifite2 = callPackage ../tools/networking/wifite2 { }; + wimboot = callPackage ../tools/misc/wimboot { }; + wireguard-tools = callPackage ../tools/networking/wireguard-tools { }; woff2 = callPackage ../development/web/woff2 { }; @@ -7553,6 +7554,10 @@ in yeshup = callPackage ../tools/system/yeshup { }; + ytop = callPackage ../tools/system/ytop { + inherit (darwin.apple_sdk.frameworks) IOKit; + }; + yggdrasil = callPackage ../tools/networking/yggdrasil { }; # To expose more packages for Yi, override the extraPackages arg. @@ -8826,7 +8831,8 @@ in sagittarius-scheme = callPackage ../development/compilers/sagittarius-scheme {}; sbclBootstrap = callPackage ../development/compilers/sbcl/bootstrap.nix {}; - sbcl = callPackage ../development/compilers/sbcl {}; + sbcl_2_0_1 = callPackage ../development/compilers/sbcl {}; + sbcl = callPackage ../development/compilers/sbcl/2.0.0.nix {}; scala_2_10 = callPackage ../development/compilers/scala/2.10.nix { }; scala_2_11 = callPackage ../development/compilers/scala/2.11.nix { }; @@ -8857,12 +8863,7 @@ in spirv-llvm-translator = callPackage ../development/compilers/spirv-llvm-translator { }; - sqldeveloper = callPackage ../development/tools/database/sqldeveloper { }; - - # sqldeveloper_18 needs JavaFX, which currently only is available inside the - # (non-free and net yet packaged for Darwin) OracleJDK - # we might be able to get rid of it, as soon as we have an OpenJDK with OpenJFX included - sqldeveloper_18 = callPackage ../development/tools/database/sqldeveloper/18.2.nix { + sqldeveloper = callPackage ../development/tools/database/sqldeveloper { jdk = oraclejdk; }; @@ -9175,6 +9176,7 @@ in let defaultOctaveOptions = { qt = null; + qscintilla = null; ghostscript = null; graphicsmagick = null; llvm = null; @@ -9196,6 +9198,7 @@ in octaveFull = (lowPrio (octave.override { qt = qt4; + inherit qscintilla; overridePlatforms = ["x86_64-linux" "x86_64-darwin"]; openblas = if stdenv.isDarwin then openblasCompat else openblas; })); @@ -9714,8 +9717,6 @@ in buildozer = bazel-buildtools; unused_deps = bazel-buildtools; - bazel-deps = callPackage ../development/tools/build-managers/bazel/bazel-deps { }; - bazel-remote = callPackage ../development/tools/build-managers/bazel/bazel-remote { }; bazel-watcher = callPackage ../development/tools/bazel-watcher { @@ -10335,8 +10336,6 @@ in mkdocs = callPackage ../development/tools/documentation/mkdocs { }; - moby = callPackage ../development/tools/misc/moby { }; - modd = callPackage ../development/tools/modd { }; msgpack-tools = callPackage ../development/tools/msgpack-tools { }; @@ -12286,6 +12285,8 @@ in libchop = callPackage ../development/libraries/libchop { }; + libcint = callPackage ../development/libraries/libcint { }; + libclc = callPackage ../development/libraries/libclc { }; libcli = callPackage ../development/libraries/libcli { }; @@ -15676,6 +15677,9 @@ in prometheus-wireguard-exporter = callPackage ../servers/monitoring/prometheus/wireguard-exporter.nix { inherit (darwin.apple_sdk.frameworks) Security; }; + prometheus-xmpp-alerts = callPackage ../servers/monitoring/prometheus/xmpp-alerts.nix { + pythonPackages = python3Packages; + }; prometheus-cpp = callPackage ../development/libraries/prometheus-cpp { }; @@ -16513,6 +16517,8 @@ in it87 = callPackage ../os-specific/linux/it87 {}; + asus-wmi-sensors = callPackage ../os-specific/linux/asus-wmi-sensors {}; + ena = callPackage ../os-specific/linux/ena {}; v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { }; @@ -18603,12 +18609,6 @@ in dmenu = callPackage ../applications/misc/dmenu { }; - # TODO (@primeos): Remove after the 19.09 branch-off: - dmenu2 = throw '' - The fork "dmenu2" is not maintained by upstream anymore. Please use the - original "dmenu" instead. - ''; - dmensamenu = callPackage ../applications/misc/dmensamenu { inherit (python3Packages) buildPythonApplication requests; }; @@ -18730,6 +18730,8 @@ in electrum-ltc = callPackage ../applications/misc/electrum/ltc.nix { }; + elementary-planner = callPackage ../applications/office/elementary-planner { }; + elinks = callPackage ../applications/networking/browsers/elinks { openssl = openssl_1_0_2; }; @@ -19270,9 +19272,7 @@ in withpcre2 = false; }; - gitRepo = callPackage ../applications/version-management/git-repo { - python = python27; - }; + gitRepo = callPackage ../applications/version-management/git-repo { }; git-quick-stats = callPackage ../development/tools/git-quick-stats {}; @@ -19910,6 +19910,8 @@ in ksuperkey = callPackage ../tools/X11/ksuperkey { }; + ktimetracker = libsForQt5.callPackage ../applications/office/ktimetracker { }; + ktorrent = libsForQt5.callPackage ../applications/networking/p2p/ktorrent { }; kubecfg = callPackage ../applications/networking/cluster/kubecfg { }; @@ -20364,9 +20366,6 @@ in mm-common = callPackage ../development/libraries/mm-common { }; - # Renamed - matrique = spectral; - mpc-qt = libsForQt5.callPackage ../applications/video/mpc-qt { }; mplayer = callPackage ../applications/video/mplayer ({ @@ -21650,13 +21649,6 @@ in taskopen = callPackage ../applications/misc/taskopen { }; - # TODO (@primeos): Remove after the 19.09 branch-off: - tdesktopPackages = throw '' - The attributes "tdesktopPackages.*" where removed as the preview version - will not be maintained anymore (there are regular stable releases and we - depend on the patches from Arch Linux which only track the stable version - as well). Please switch to "tdesktop" (stable version). - ''; tdesktop = qt5.callPackage ../applications/networking/instant-messengers/telegram/tdesktop { }; telepathy-gabble = callPackage ../applications/networking/instant-messengers/telepathy/gabble { }; @@ -22580,7 +22572,7 @@ in zanshin = libsForQt5.callPackage ../applications/office/zanshin { inherit (kdeApplications) akonadi-calendar akonadi-notes akonadi-search kidentitymanagement kontactinterface kldap; - inherit (kdeFrameworks) krunner kwallet; + inherit (kdeFrameworks) krunner kwallet kcalendarcore; boost = boost160; }; @@ -23407,9 +23399,12 @@ in }; protontricks = callPackage ../tools/package-management/protontricks { - inherit (python3Packages) buildPythonApplication vdf; + inherit (python3Packages) buildPythonApplication pytest setuptools_scm vdf; inherit (gnome3) zenity; wine = wineWowPackages.minimal; + winetricks = winetricks.override { + wine = wineWowPackages.minimal; + }; }; stepmania = callPackage ../games/stepmania { @@ -25826,6 +25821,8 @@ in tlwg = callPackage ../data/fonts/tlwg { }; + tt2020 = callPackage ../data/fonts/tt2020 { }; + simplehttp2server = callPackage ../servers/simplehttp2server { }; diceware = callPackage ../tools/security/diceware { }; @@ -25933,5 +25930,4 @@ in quartus-prime-lite = callPackage ../applications/editors/quartus-prime {}; - dat = nodePackages.dat; } diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index f90068e00eb..56ae90ae392 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -562,6 +562,8 @@ let then callPackage ../development/ocaml-modules/num {} else null; + parmap = callPackage ../development/ocaml-modules/parmap { }; + comparelib = callPackage ../development/ocaml-modules/comparelib { }; core_extended_p4 = callPackage ../development/ocaml-modules/core_extended { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 148990650dd..f400f59eadd 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -500,6 +500,8 @@ in { braintree = callPackage ../development/python-modules/braintree { }; + deepdiff = callPackage ../development/python-modules/deepdiff { }; + django-sesame = callPackage ../development/python-modules/django-sesame { }; breathe = callPackage ../development/python-modules/breathe { };