diff --git a/doc/builders/fetchers.xml b/doc/builders/fetchers.xml index ff3988334916..f07c310dcdf1 100644 --- a/doc/builders/fetchers.xml +++ b/doc/builders/fetchers.xml @@ -105,6 +105,17 @@ stdenv.mkDerivation { + + + fetchFromGitiles + + + + This is used with Gitiles repositories. The arguments expected + are similar to fetchgit. + + + fetchFromBitbucket diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 1bedebd11902..9cb0e1eecc16 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -1034,7 +1034,10 @@ Create this `default.nix` file, together with a `requirements.txt` and simply ex ```nix with import {}; -with python27Packages; + +let + pythonPackages = python27Packages; +in stdenv.mkDerivation { name = "impurePythonEnv"; @@ -1044,9 +1047,8 @@ stdenv.mkDerivation { buildInputs = [ # these packages are required for virtualenv and pip to work: # - python27Full - python27Packages.virtualenv - python27Packages.pip + pythonPackages.virtualenv + pythonPackages.pip # the following packages are related to the dependencies of your python # project. # In this particular example the python modules listed in the @@ -1059,14 +1061,13 @@ stdenv.mkDerivation { libxml2 libxslt libzip - stdenv zlib ]; shellHook = '' # set SOURCE_DATE_EPOCH so that we can use python wheels SOURCE_DATE_EPOCH=$(date +%s) - virtualenv --no-setuptools venv + virtualenv --python=${pythonPackages.python.interpreter} --no-setuptools venv export PATH=$PWD/venv/bin:$PATH pip install -r requirements.txt ''; diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index f2632f8f69d4..08db4549733d 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5239,6 +5239,12 @@ githubId = 20792; name = "Sebastian Galkin"; }; + pashashocky = { + email = "pashashocky@gmail.com"; + github = "pashashocky"; + githubId = 673857; + name = "Pash Shocky"; + }; pashev = { email = "pashev.igor@gmail.com"; github = "ip1981"; diff --git a/nixos/doc/manual/configuration/x-windows.xml b/nixos/doc/manual/configuration/x-windows.xml index 9206f43ea392..55ad9fe6e653 100644 --- a/nixos/doc/manual/configuration/x-windows.xml +++ b/nixos/doc/manual/configuration/x-windows.xml @@ -83,8 +83,7 @@ desktop environment. If you wanted no desktop environment and i3 as your your window manager, you'd define: - = "none"; - = "i3"; + = "none+i3"; And, finally, to enable auto-login for a user johndoe: diff --git a/nixos/doc/manual/configuration/xfce.xml b/nixos/doc/manual/configuration/xfce.xml index 6ac99c6b2bee..027828bb936d 100644 --- a/nixos/doc/manual/configuration/xfce.xml +++ b/nixos/doc/manual/configuration/xfce.xml @@ -7,9 +7,8 @@ To enable the Xfce Desktop Environment, set -services.xserver.desktopManager = { - xfce.enable = true; - default = "xfce"; + = true; + = "xfce"; }; diff --git a/nixos/doc/manual/man-nixos-option.xml b/nixos/doc/manual/man-nixos-option.xml index beabf020c92a..b82f31256099 100644 --- a/nixos/doc/manual/man-nixos-option.xml +++ b/nixos/doc/manual/man-nixos-option.xml @@ -119,4 +119,13 @@ Defined by: bug, please report to Nicolas Pierron. + + See also + + + configuration.nix + 5 + + + diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml index 2a38b2adbbb4..247e9cd063c6 100644 --- a/nixos/doc/manual/release-notes/rl-2003.xml +++ b/nixos/doc/manual/release-notes/rl-2003.xml @@ -55,6 +55,19 @@ and adding a option which prints all options and their values. + + + and options were replaced by a single option to improve support for upstream session files. If you used something like: + +services.xserver.desktopManager.default = "xfce"; +services.xserver.windowManager.default = "icewm"; + + you should change it to: + +services.xserver.displayManager.defaultSession = "xfce+icewm"; + + + diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix index d567d2687653..c4eb9328b1db 100644 --- a/nixos/lib/testing-python.nix +++ b/nixos/lib/testing-python.nix @@ -262,9 +262,8 @@ in rec { virtualisation.memorySize = 1024; services.xserver.enable = true; services.xserver.displayManager.auto.enable = true; - services.xserver.windowManager.default = "icewm"; + services.xserver.displayManager.defaultSession = "none+icewm"; services.xserver.windowManager.icewm.enable = true; - services.xserver.desktopManager.default = "none"; }; in runInMachine ({ diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix index a5f060a8d8e3..ae8ecd6270ce 100644 --- a/nixos/lib/testing.nix +++ b/nixos/lib/testing.nix @@ -249,9 +249,8 @@ in rec { virtualisation.memorySize = 1024; services.xserver.enable = true; services.xserver.displayManager.auto.enable = true; - services.xserver.windowManager.default = "icewm"; + services.xserver.displayManager.defaultSession = "none+icewm"; services.xserver.windowManager.icewm.enable = true; - services.xserver.desktopManager.default = "none"; }; in runInMachine ({ diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index e577ea9ab057..3300848220a0 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -443,6 +443,7 @@ ./services/misc/logkeys.nix ./services/misc/leaps.nix ./services/misc/lidarr.nix + ./services/misc/mame.nix ./services/misc/mathics.nix ./services/misc/matrix-synapse.nix ./services/misc/mbpfan.nix diff --git a/nixos/modules/programs/sway.nix b/nixos/modules/programs/sway.nix index 9a15c7734632..d685a5259324 100644 --- a/nixos/modules/programs/sway.nix +++ b/nixos/modules/programs/sway.nix @@ -24,6 +24,7 @@ let swayJoined = pkgs.symlinkJoin { name = "sway-joined"; paths = [ swayWrapped swayPackage ]; + passthru.providedSessions = [ "sway" ]; }; in { options.programs.sway = { @@ -88,7 +89,7 @@ in { fonts.enableDefaultFonts = mkDefault true; programs.dconf.enable = mkDefault true; # To make a Sway session available if a display manager like SDDM is enabled: - services.xserver.displayManager.extraSessionFilePackages = [ swayJoined ]; + services.xserver.displayManager.sessionPackages = [ swayJoined ]; }; meta.maintainers = with lib.maintainers; [ gnidorah primeos colemickens ]; diff --git a/nixos/modules/services/admin/oxidized.nix b/nixos/modules/services/admin/oxidized.nix index da81be3f23e8..885eaed1de6f 100644 --- a/nixos/modules/services/admin/oxidized.nix +++ b/nixos/modules/services/admin/oxidized.nix @@ -111,6 +111,7 @@ in Restart = "always"; WorkingDirectory = cfg.dataDir; KillSignal = "SIGKILL"; + PIDFile = "${cfg.dataDir}.config/oxidized/pid"; }; }; }; diff --git a/nixos/modules/services/misc/mame.nix b/nixos/modules/services/misc/mame.nix new file mode 100644 index 000000000000..c5d5e9e48371 --- /dev/null +++ b/nixos/modules/services/misc/mame.nix @@ -0,0 +1,67 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.mame; + mame = "mame${lib.optionalString pkgs.stdenv.is64bit "64"}"; +in +{ + options = { + services.mame = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to setup TUN/TAP Ethernet interface for MAME emulator. + ''; + }; + user = mkOption { + type = types.str; + description = '' + User from which you run MAME binary. + ''; + }; + hostAddr = mkOption { + type = types.str; + description = '' + IP address of the host system. Usually an address of the main network + adapter or the adapter through which you get an internet connection. + ''; + example = "192.168.31.156"; + }; + emuAddr = mkOption { + type = types.str; + description = '' + IP address of the guest system. The same you set inside guest OS under + MAME. Should be on the same subnet as . + ''; + example = "192.168.31.155"; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.mame ]; + + security.wrappers."${mame}" = { + source = "${pkgs.mame}/bin/${mame}"; + capabilities = "cap_net_admin,cap_net_raw+eip"; + }; + + systemd.services.mame = { + description = "MAME TUN/TAP Ethernet interface"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + path = [ pkgs.iproute ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = "${pkgs.mame}/bin/taputil.sh -c ${cfg.user} ${cfg.emuAddr} ${cfg.hostAddr} -"; + ExecStop = "${pkgs.mame}/bin/taputil.sh -d ${cfg.user}"; + }; + }; + }; + + meta.maintainers = with lib.maintainers; [ gnidorah ]; +} diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix index 671a959cdde1..534551c0c4ab 100644 --- a/nixos/modules/services/x11/desktop-managers/default.nix +++ b/nixos/modules/services/x11/desktop-managers/default.nix @@ -86,23 +86,14 @@ in }; default = mkOption { - type = types.str; - default = ""; + type = types.nullOr types.str; + default = null; example = "none"; - description = "Default desktop manager loaded if none have been chosen."; - apply = defaultDM: - if defaultDM == "" && cfg.session.list != [] then - (head cfg.session.list).name - else if any (w: w.name == defaultDM) cfg.session.list then - defaultDM - else - builtins.trace '' - Default desktop manager (${defaultDM}) not found at evaluation time. - These are the known valid session names: - ${concatMapStringsSep "\n " (w: "services.xserver.desktopManager.default = \"${w.name}\";") cfg.session.list} - It's also possible the default can be found in one of these packages: - ${concatMapStringsSep "\n " (p: p.name) config.services.xserver.displayManager.extraSessionFilePackages} - '' defaultDM; + description = '' + Deprecated, please use instead. + + Default desktop manager loaded if none have been chosen. + ''; }; }; diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index 6725595e1cfd..6d9bd284bc72 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -144,7 +144,7 @@ in services.gnome3.core-shell.enable = true; services.gnome3.core-utilities.enable = mkDefault true; - services.xserver.displayManager.extraSessionFilePackages = [ pkgs.gnome3.gnome-session ]; + services.xserver.displayManager.sessionPackages = [ pkgs.gnome3.gnome-session ]; environment.extraInit = '' ${concatMapStrings (p: '' @@ -171,7 +171,7 @@ in }) (mkIf flashbackEnabled { - services.xserver.displayManager.extraSessionFilePackages = map + services.xserver.displayManager.sessionPackages = map (wm: pkgs.gnome3.gnome-flashback.mkSessionForWm { inherit (wm) wmName wmLabel wmCommand; }) (optional cfg.flashback.enableMetacity { diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index 99db5b17b649..e07d5b5eaad7 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -69,7 +69,7 @@ in config = mkIf cfg.enable { - services.xserver.displayManager.extraSessionFilePackages = [ pkgs.pantheon.elementary-session-settings ]; + services.xserver.displayManager.sessionPackages = [ pkgs.pantheon.elementary-session-settings ]; # Ensure lightdm is used when Pantheon is enabled # Without it screen locking will be nonfunctional because of the use of lightlocker @@ -81,9 +81,9 @@ in services.xserver.displayManager.lightdm.greeters.pantheon.enable = mkDefault true; - # If not set manually Pantheon session cannot be started - # Known issue of https://github.com/NixOS/nixpkgs/pull/43992 - services.xserver.desktopManager.default = mkForce "pantheon"; + # Without this, Elementary LightDM greeter will pre-select non-existent `default` session + # https://github.com/elementary/greeter/issues/368 + services.xserver.displayManager.defaultSession = "pantheon"; services.xserver.displayManager.sessionCommands = '' if test "$XDG_CURRENT_DESKTOP" = "Pantheon"; then diff --git a/nixos/modules/services/x11/desktop-managers/surf-display.nix b/nixos/modules/services/x11/desktop-managers/surf-display.nix index 140dde828daa..9aeb0bbd2a88 100644 --- a/nixos/modules/services/x11/desktop-managers/surf-display.nix +++ b/nixos/modules/services/x11/desktop-managers/surf-display.nix @@ -118,7 +118,7 @@ in { }; config = mkIf cfg.enable { - services.xserver.displayManager.extraSessionFilePackages = [ + services.xserver.displayManager.sessionPackages = [ pkgs.surf-display ]; diff --git a/nixos/modules/services/x11/display-managers/account-service-util.nix b/nixos/modules/services/x11/display-managers/account-service-util.nix new file mode 100644 index 000000000000..1dbe703b5662 --- /dev/null +++ b/nixos/modules/services/x11/display-managers/account-service-util.nix @@ -0,0 +1,39 @@ +{ accountsservice +, glib +, gobject-introspection +, python3 +, wrapGAppsHook +}: + +python3.pkgs.buildPythonApplication { + name = "set-session"; + + format = "other"; + + src = ./set-session.py; + + dontUnpack = true; + + strictDeps = false; + + nativeBuildInputs = [ + wrapGAppsHook + gobject-introspection + ]; + + buildInputs = [ + accountsservice + glib + ]; + + propagatedBuildInputs = with python3.pkgs; [ + pygobject3 + ordered-set + ]; + + installPhase = '' + mkdir -p $out/bin + cp $src $out/bin/set-session + chmod +x $out/bin/set-session + ''; +} diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index c252c3c90c94..2d809b5cc9fd 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -27,16 +27,7 @@ let Xft.hintstyle: hintslight ''; - mkCases = session: - concatStrings ( - mapAttrsToList (name: starts: '' - (${name}) - ${concatMapStringsSep "\n " (n: n.start) starts} - ;; - '') (lib.groupBy (n: n.name) session) - ); - - # file provided by services.xserver.displayManager.session.wrapper + # file provided by services.xserver.displayManager.sessionData.wrapper xsessionWrapper = pkgs.writeScript "xsession-wrapper" '' #! ${pkgs.bash}/bin/bash @@ -116,94 +107,44 @@ let # Run the supplied session command. Remove any double quotes with eval. eval exec "$@" else - # Fall back to the default window/desktopManager - exec ${cfg.displayManager.session.script} + # TODO: Do we need this? Should not the session always exist? + echo "error: unknown session $1" 1>&2 + exit 1 fi ''; - # file provided by services.xserver.displayManager.session.script - xsession = wm: dm: pkgs.writeScript "xsession" - '' - #! ${pkgs.bash}/bin/bash - - # Legacy session script used to construct .desktop files from - # `services.xserver.displayManager.session` entries. Called from - # `sessionWrapper`. - - # Expected parameters: - # $1 = + - - # The first argument of this script is the session type. - sessionType="$1" - if [ "$sessionType" = default ]; then sessionType=""; fi - - # The session type is "+", so - # extract those (see: - # http://wiki.bash-hackers.org/syntax/pe#substring_removal). - windowManager="''${sessionType##*+}" - : ''${windowManager:=${cfg.windowManager.default}} - desktopManager="''${sessionType%%+*}" - : ''${desktopManager:=${cfg.desktopManager.default}} - - # Start the window manager. - case "$windowManager" in - ${mkCases wm} - (*) echo "$0: Window manager '$windowManager' not found.";; - esac - - # Start the desktop manager. - case "$desktopManager" in - ${mkCases dm} - (*) echo "$0: Desktop manager '$desktopManager' not found.";; - esac - - ${optionalString cfg.updateDbusEnvironment '' - ${lib.getBin pkgs.dbus}/bin/dbus-update-activation-environment --systemd --all - ''} - - test -n "$waitPID" && wait "$waitPID" - - ${config.systemd.package}/bin/systemctl --user stop graphical-session.target - - exit 0 - ''; - - # Desktop Entry Specification: - # - https://standards.freedesktop.org/desktop-entry-spec/latest/ - # - https://standards.freedesktop.org/desktop-entry-spec/latest/ar01s06.html - mkDesktops = names: pkgs.runCommand "desktops" + installedSessions = pkgs.runCommand "desktops" { # trivial derivation preferLocalBuild = true; allowSubstitutes = false; } '' - mkdir -p "$out/share/xsessions" - ${concatMapStrings (n: '' - cat - > "$out/share/xsessions/${n}.desktop" << EODESKTOP - [Desktop Entry] - Version=1.0 - Type=XSession - TryExec=${cfg.displayManager.session.script} - Exec=${cfg.displayManager.session.script} "${n}" - Name=${n} - Comment= - EODESKTOP - '') names} + mkdir -p "$out/share/"{xsessions,wayland-sessions} ${concatMapStrings (pkg: '' + for n in ${concatStringsSep " " pkg.providedSessions}; do + if ! test -f ${pkg}/share/wayland-sessions/$n.desktop -o \ + -f ${pkg}/share/xsessions/$n.desktop; then + echo "Couldn't find provided session name, $n.desktop, in session package ${pkg.name}:" + echo " ${pkg}" + return 1 + fi + done + if test -d ${pkg}/share/xsessions; then ${xorg.lndir}/bin/lndir ${pkg}/share/xsessions $out/share/xsessions fi - '') cfg.displayManager.extraSessionFilePackages} - - ${concatMapStrings (pkg: '' if test -d ${pkg}/share/wayland-sessions; then - mkdir -p "$out/share/wayland-sessions" ${xorg.lndir}/bin/lndir ${pkg}/share/wayland-sessions $out/share/wayland-sessions fi - '') cfg.displayManager.extraSessionFilePackages} + '') cfg.displayManager.sessionPackages} ''; + dmDefault = cfg.desktopManager.default; + wmDefault = cfg.windowManager.default; + + defaultSessionFromLegacyOptions = concatStringsSep "+" (filter (s: s != null) ([ dmDefault ] ++ optional (wmDefault != "none") wmDefault)); + in { @@ -261,11 +202,24 @@ in ''; }; - extraSessionFilePackages = mkOption { - type = types.listOf types.package; + sessionPackages = mkOption { + type = with types; listOf (package // { + description = "package with provided sessions"; + check = p: assertMsg + (package.check p && p ? providedSessions + && p.providedSessions != [] && all isString p.providedSessions) + '' + Package, '${p.name}', did not specify any session names, as strings, in + 'passthru.providedSessions'. This is required when used as a session package. + + The session names can be looked up in: + ${p}/share/xsessions + ${p}/share/wayland-sessions + ''; + }); default = []; description = '' - A list of packages containing xsession files to be passed to the display manager. + A list of packages containing x11 or wayland session files to be passed to the display manager. ''; }; @@ -296,18 +250,50 @@ in inside the display manager with the desktop manager name followed by the window manager name. ''; - apply = list: rec { - wm = filter (s: s.manage == "window") list; - dm = filter (s: s.manage == "desktop") list; - names = flip concatMap dm - (d: map (w: d.name + optionalString (w.name != "none") ("+" + w.name)) - (filter (w: d.name != "none" || w.name != "none") wm)); - desktops = mkDesktops names; - script = xsession wm dm; + }; + + sessionData = mkOption { + description = "Data exported for display managers’ convenience"; + internal = true; + default = {}; + apply = val: { wrapper = xsessionWrapper; + desktops = installedSessions; + sessionNames = concatMap (p: p.providedSessions) cfg.displayManager.sessionPackages; + # We do not want to force users to set defaultSession when they have only single DE. + autologinSession = + if cfg.displayManager.defaultSession != null then + cfg.displayManager.defaultSession + else if cfg.displayManager.sessionData.sessionNames != [] then + head cfg.displayManager.sessionData.sessionNames + else + null; }; }; + defaultSession = mkOption { + type = with types; nullOr str // { + description = "session name"; + check = d: + assertMsg (d != null -> (str.check d && elem d cfg.displayManager.sessionData.sessionNames)) '' + Default graphical session, '${d}', not found. + Valid names for 'services.xserver.displayManager.defaultSession' are: + ${concatStringsSep "\n " cfg.displayManager.sessionData.sessionNames} + ''; + }; + default = + if dmDefault != null || wmDefault != null then + defaultSessionFromLegacyOptions + else + null; + example = "gnome"; + description = '' + Graphical session to pre-select in the session chooser (only effective for GDM and LightDM). + + On GDM, LightDM and SDDM, it will also be used as a session for auto-login. + ''; + }; + job = { preStart = mkOption { @@ -356,6 +342,27 @@ in }; config = { + assertions = [ + { + assertion = cfg.desktopManager.default != null || cfg.windowManager.default != null -> cfg.displayManager.defaultSession == defaultSessionFromLegacyOptions; + message = "You cannot use both services.xserver.displayManager.defaultSession option and legacy options (services.xserver.desktopManager.default and services.xserver.windowManager.default)."; + } + ]; + + warnings = + mkIf (dmDefault != null || wmDefault != null) [ + '' + The following options are deprecated: + ${concatStringsSep "\n " (map ({c, t}: t) (filter ({c, t}: c != null) [ + { c = dmDefault; t = "- services.xserver.desktopManager.default"; } + { c = wmDefault; t = "- services.xserver.windowManager.default"; } + ]))} + Please use + services.xserver.displayManager.defaultSession = "${concatStringsSep "+" (filter (s: s != null) [ dmDefault wmDefault ])}"; + instead. + '' + ]; + services.xserver.displayManager.xserverBin = "${xorg.xorgserver.out}/bin/X"; systemd.user.targets.graphical-session = { @@ -364,6 +371,67 @@ in StopWhenUnneeded = false; }; }; + + # Create desktop files and scripts for starting sessions for WMs/DMs + # that do not have upstream session files (those defined using services.{display,desktop,window}Manager.session options). + services.xserver.displayManager.sessionPackages = + let + dms = filter (s: s.manage == "desktop") cfg.displayManager.session; + wms = filter (s: s.manage == "window") cfg.displayManager.session; + + # Script responsible for starting the window manager and the desktop manager. + xsession = wm: dm: pkgs.writeScript "xsession" '' + #! ${pkgs.bash}/bin/bash + + # Legacy session script used to construct .desktop files from + # `services.xserver.displayManager.session` entries. Called from + # `sessionWrapper`. + + # Start the window manager. + ${wm.start} + + # Start the desktop manager. + ${dm.start} + + ${optionalString cfg.updateDbusEnvironment '' + ${lib.getBin pkgs.dbus}/bin/dbus-update-activation-environment --systemd --all + ''} + + test -n "$waitPID" && wait "$waitPID" + + ${config.systemd.package}/bin/systemctl --user stop graphical-session.target + + exit 0 + ''; + in + # We will generate every possible pair of WM and DM. + concatLists ( + crossLists + (dm: wm: let + sessionName = "${dm.name}${optionalString (wm.name != "none") ("+" + wm.name)}"; + script = xsession dm wm; + in + optional (dm.name != "none" || wm.name != "none") + (pkgs.writeTextFile { + name = "${sessionName}-xsession"; + destination = "/share/xsessions/${sessionName}.desktop"; + # Desktop Entry Specification: + # - https://standards.freedesktop.org/desktop-entry-spec/latest/ + # - https://standards.freedesktop.org/desktop-entry-spec/latest/ar01s06.html + text = '' + [Desktop Entry] + Version=1.0 + Type=XSession + TryExec=${script} + Exec=${script} + Name=${sessionName} + ''; + } // { + providedSessions = [ sessionName ]; + }) + ) + [dms wms] + ); }; imports = [ @@ -371,6 +439,7 @@ in "The option is no longer necessary because all display managers have already delegated lid management to systemd.") (mkRenamedOptionModule [ "services" "xserver" "displayManager" "job" "logsXsession" ] [ "services" "xserver" "displayManager" "job" "logToFile" ]) (mkRenamedOptionModule [ "services" "xserver" "displayManager" "logToJournal" ] [ "services" "xserver" "displayManager" "job" "logToJournal" ]) + (mkRenamedOptionModule [ "services" "xserver" "displayManager" "extraSessionFilesPackages" ] [ "services" "xserver" "displayManager" "sessionPackages" ]) ]; } diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix index 095569fa08aa..6630f012f04f 100644 --- a/nixos/modules/services/x11/display-managers/gdm.nix +++ b/nixos/modules/services/x11/display-managers/gdm.nix @@ -31,44 +31,9 @@ let load-module module-position-event-sounds ''; - dmDefault = config.services.xserver.desktopManager.default; - wmDefault = config.services.xserver.windowManager.default; - hasDefaultUserSession = dmDefault != "none" || wmDefault != "none"; - defaultSessionName = dmDefault + optionalString (wmDefault != "none") ("+" + wmDefault); - - setSessionScript = pkgs.python3.pkgs.buildPythonApplication { - name = "set-session"; - - format = "other"; - - src = ./set-session.py; - - dontUnpack = true; - - strictDeps = false; - - nativeBuildInputs = with pkgs; [ - wrapGAppsHook - gobject-introspection - ]; - - buildInputs = with pkgs; [ - accountsservice - glib - ]; - - propagatedBuildInputs = with pkgs.python3.pkgs; [ - pygobject3 - ordered-set - ]; - - installPhase = '' - mkdir -p $out/bin - cp $src $out/bin/set-session - chmod +x $out/bin/set-session - ''; - }; + defaultSessionName = config.services.xserver.displayManager.defaultSession; + setSessionScript = pkgs.callPackage ./account-service-util.nix { }; in { @@ -186,7 +151,7 @@ in environment = { GDM_X_SERVER_EXTRA_ARGS = toString (filter (arg: arg != "-terminate") cfg.xserverArgs); - XDG_DATA_DIRS = "${cfg.session.desktops}/share/"; + XDG_DATA_DIRS = "${cfg.sessionData.desktops}/share/"; } // optionalAttrs (xSessionWrapper != null) { # Make GDM use this wrapper before running the session, which runs the # configured setupCommands. This relies on a patched GDM which supports @@ -204,16 +169,19 @@ in cat - > /run/gdm/.config/gnome-initial-setup-done <<- EOF yes EOF - '' - # TODO: Make setSessionScript aware of previously used sessions - # + optionalString hasDefaultUserSession '' - # ${setSessionScript}/bin/set-session ${defaultSessionName} - # '' - ; + '' + optionalString (defaultSessionName != null) '' + # Set default session in session chooser to a specified values – basically ignore session history. + ${setSessionScript}/bin/set-session ${cfg.sessionData.autologinSession} + ''; }; - # Because sd_login_monitor_new requires /run/systemd/machines - systemd.services.display-manager.wants = [ "systemd-machined.service" ]; + systemd.services.display-manager.wants = [ + # Because sd_login_monitor_new requires /run/systemd/machines + "systemd-machined.service" + # setSessionScript wants AccountsService + "accounts-daemon.service" + ]; + systemd.services.display-manager.after = [ "rc-local.service" "systemd-machined.service" @@ -329,7 +297,7 @@ in ${optionalString cfg.gdm.debug "Enable=true"} ''; - environment.etc."gdm/Xsession".source = config.services.xserver.displayManager.session.wrapper; + environment.etc."gdm/Xsession".source = config.services.xserver.displayManager.sessionData.wrapper; # GDM LFS PAM modules, adapted somehow to NixOS security.pam.services = { diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix index fa9445af32e7..0025f9b36037 100644 --- a/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix @@ -53,9 +53,8 @@ in Whether to enable lightdm-mini-greeter as the lightdm greeter. Note that this greeter starts only the default X session. - You can configure the default X session by - and - . + You can configure the default X session using + . ''; }; diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index cf4c05acbccd..f7face0adb7e 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -8,10 +8,9 @@ let dmcfg = xcfg.displayManager; xEnv = config.systemd.services.display-manager.environment; cfg = dmcfg.lightdm; + sessionData = dmcfg.sessionData; - dmDefault = xcfg.desktopManager.default; - wmDefault = xcfg.windowManager.default; - hasDefaultUserSession = dmDefault != "none" || wmDefault != "none"; + setSessionScript = pkgs.callPackage ./account-service-util.nix { }; inherit (pkgs) lightdm writeScript writeText; @@ -45,22 +44,19 @@ let greeter-user = ${config.users.users.lightdm.name} greeters-directory = ${cfg.greeter.package} ''} - sessions-directory = ${dmcfg.session.desktops}/share/xsessions + sessions-directory = ${dmcfg.sessionData.desktops}/share/xsessions:${dmcfg.sessionData.desktops}/share/wayland-sessions ${cfg.extraConfig} [Seat:*] xserver-command = ${xserverWrapper} - session-wrapper = ${dmcfg.session.wrapper} + session-wrapper = ${dmcfg.sessionData.wrapper} ${optionalString cfg.greeter.enable '' greeter-session = ${cfg.greeter.name} ''} ${optionalString cfg.autoLogin.enable '' autologin-user = ${cfg.autoLogin.user} autologin-user-timeout = ${toString cfg.autoLogin.timeout} - autologin-session = ${defaultSessionName} - ''} - ${optionalString hasDefaultUserSession '' - user-session=${defaultSessionName} + autologin-session = ${sessionData.autologinSession} ''} ${optionalString (dmcfg.setupCommands != "") '' display-setup-script=${pkgs.writeScript "lightdm-display-setup" '' @@ -71,7 +67,6 @@ let ${cfg.extraSeatDefaults} ''; - defaultSessionName = dmDefault + optionalString (wmDefault != "none") ("+" + wmDefault); in { # Note: the order in which lightdm greeter modules are imported @@ -199,11 +194,9 @@ in LightDM auto-login requires services.xserver.displayManager.lightdm.autoLogin.user to be set ''; } - { assertion = cfg.autoLogin.enable -> dmDefault != "none" || wmDefault != "none"; + { assertion = cfg.autoLogin.enable -> sessionData.autologinSession != null; message = '' - LightDM auto-login requires that services.xserver.desktopManager.default and - services.xserver.windowManager.default are set to valid values. The current - default session: ${defaultSessionName} is not valid. + LightDM auto-login requires that services.xserver.displayManager.defaultSession is set. ''; } { assertion = !cfg.greeter.enable -> (cfg.autoLogin.enable && cfg.autoLogin.timeout == 0); @@ -214,6 +207,20 @@ in } ]; + # Set default session in session chooser to a specified values – basically ignore session history. + # Auto-login is already covered by a config value. + services.xserver.displayManager.job.preStart = optionalString (!cfg.autoLogin.enable && dmcfg.defaultSession != null) '' + ${setSessionScript}/bin/set-session ${dmcfg.defaultSession} + ''; + + # setSessionScript needs session-files in XDG_DATA_DIRS + services.xserver.displayManager.job.environment.XDG_DATA_DIRS = "${dmcfg.sessionData.desktops}/share/"; + + # setSessionScript wants AccountsService + systemd.services.display-manager.wants = [ + "accounts-daemon.service" + ]; + # lightdm relaunches itself via just `lightdm`, so needs to be on the PATH services.xserver.displayManager.job.execCmd = '' export PATH=${lightdm}/sbin:$PATH diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix index 24e120c4f2cf..4224c557ed63 100644 --- a/nixos/modules/services/x11/display-managers/sddm.nix +++ b/nixos/modules/services/x11/display-managers/sddm.nix @@ -50,8 +50,8 @@ let MinimumVT=${toString (if xcfg.tty != null then xcfg.tty else 7)} ServerPath=${xserverWrapper} XephyrPath=${pkgs.xorg.xorgserver.out}/bin/Xephyr - SessionCommand=${dmcfg.session.wrapper} - SessionDir=${dmcfg.session.desktops}/share/xsessions + SessionCommand=${dmcfg.sessionData.wrapper} + SessionDir=${dmcfg.sessionData.desktops}/share/xsessions XauthPath=${pkgs.xorg.xauth}/bin/xauth DisplayCommand=${Xsetup} DisplayStopCommand=${Xstop} @@ -59,23 +59,19 @@ let [Wayland] EnableHidpi=${if cfg.enableHidpi then "true" else "false"} - SessionDir=${dmcfg.session.desktops}/share/wayland-sessions + SessionDir=${dmcfg.sessionData.desktops}/share/wayland-sessions ${optionalString cfg.autoLogin.enable '' [Autologin] User=${cfg.autoLogin.user} - Session=${defaultSessionName}.desktop + Session=${autoLoginSessionName}.desktop Relogin=${boolToString cfg.autoLogin.relogin} ''} ${cfg.extraConfig} ''; - defaultSessionName = - let - dm = xcfg.desktopManager.default; - wm = xcfg.windowManager.default; - in dm + optionalString (wm != "none") ("+" + wm); + autoLoginSessionName = dmcfg.sessionData.autologinSession; in { @@ -210,11 +206,9 @@ in SDDM auto-login requires services.xserver.displayManager.sddm.autoLogin.user to be set ''; } - { assertion = cfg.autoLogin.enable -> elem defaultSessionName dmcfg.session.names; + { assertion = cfg.autoLogin.enable -> autoLoginSessionName != null; message = '' - SDDM auto-login requires that services.xserver.desktopManager.default and - services.xserver.windowManager.default are set to valid values. The current - default session: ${defaultSessionName} is not valid. + SDDM auto-login requires that services.xserver.displayManager.defaultSession is set. ''; } ]; diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix index c17f3830d0e9..04a9fc46628c 100644 --- a/nixos/modules/services/x11/window-managers/default.nix +++ b/nixos/modules/services/x11/window-managers/default.nix @@ -59,15 +59,14 @@ in }; default = mkOption { - type = types.str; - default = "none"; + type = types.nullOr types.str; + default = null; example = "wmii"; - description = "Default window manager loaded if none have been chosen."; - apply = defaultWM: - if any (w: w.name == defaultWM) cfg.session then - defaultWM - else - throw "Default window manager (${defaultWM}) not found."; + description = '' + Deprecated, please use instead. + + Default window manager loaded if none have been chosen. + ''; }; }; diff --git a/nixos/tests/common/x11.nix b/nixos/tests/common/x11.nix index c5a7c165d126..5ad0ac20fac8 100644 --- a/nixos/tests/common/x11.nix +++ b/nixos/tests/common/x11.nix @@ -1,12 +1,12 @@ +{ lib, ... }: + { services.xserver.enable = true; # Automatically log in. services.xserver.displayManager.auto.enable = true; # Use IceWM as the window manager. - services.xserver.windowManager.default = "icewm"; - services.xserver.windowManager.icewm.enable = true; - # Don't use a desktop manager. - services.xserver.desktopManager.default = "none"; + services.xserver.displayManager.defaultSession = lib.mkDefault "none+icewm"; + services.xserver.windowManager.icewm.enable = true; } diff --git a/nixos/tests/gnome3-xorg.nix b/nixos/tests/gnome3-xorg.nix index eb4c376319be..aa03501f6a55 100644 --- a/nixos/tests/gnome3-xorg.nix +++ b/nixos/tests/gnome3-xorg.nix @@ -16,7 +16,7 @@ import ./make-test.nix ({ pkgs, ...} : { services.xserver.displayManager.lightdm.autoLogin.enable = true; services.xserver.displayManager.lightdm.autoLogin.user = "alice"; services.xserver.desktopManager.gnome3.enable = true; - services.xserver.desktopManager.default = "gnome-xorg"; + services.xserver.displayManager.defaultSession = "gnome-xorg"; virtualisation.memorySize = 1024; }; diff --git a/nixos/tests/hadoop/hdfs.nix b/nixos/tests/hadoop/hdfs.nix index e7d72a56e1e7..85aaab34b158 100644 --- a/nixos/tests/hadoop/hdfs.nix +++ b/nixos/tests/hadoop/hdfs.nix @@ -1,4 +1,4 @@ -import ../make-test.nix ({...}: { +import ../make-test-python.nix ({...}: { nodes = { namenode = {pkgs, ...}: { services.hadoop = { @@ -35,20 +35,20 @@ import ../make-test.nix ({...}: { }; testScript = '' - startAll + start_all() - $namenode->waitForUnit("hdfs-namenode"); - $namenode->waitForUnit("network.target"); - $namenode->waitForOpenPort(8020); - $namenode->waitForOpenPort(9870); + namenode.wait_for_unit("hdfs-namenode") + namenode.wait_for_unit("network.target") + namenode.wait_for_open_port(8020) + namenode.wait_for_open_port(9870) - $datanode->waitForUnit("hdfs-datanode"); - $datanode->waitForUnit("network.target"); - $datanode->waitForOpenPort(9864); - $datanode->waitForOpenPort(9866); - $datanode->waitForOpenPort(9867); + datanode.wait_for_unit("hdfs-datanode") + datanode.wait_for_unit("network.target") + datanode.wait_for_open_port(9864) + datanode.wait_for_open_port(9866) + datanode.wait_for_open_port(9867) - $namenode->succeed("curl http://namenode:9870"); - $datanode->succeed("curl http://datanode:9864"); + namenode.succeed("curl http://namenode:9870") + datanode.succeed("curl http://datanode:9864") ''; }) diff --git a/nixos/tests/hadoop/yarn.nix b/nixos/tests/hadoop/yarn.nix index 031592301f17..2264ecaff155 100644 --- a/nixos/tests/hadoop/yarn.nix +++ b/nixos/tests/hadoop/yarn.nix @@ -1,4 +1,4 @@ -import ../make-test.nix ({...}: { +import ../make-test-python.nix ({...}: { nodes = { resourcemanager = {pkgs, ...}: { services.hadoop.package = pkgs.hadoop_3_1; @@ -28,19 +28,19 @@ import ../make-test.nix ({...}: { }; testScript = '' - startAll; + start_all() - $resourcemanager->waitForUnit("yarn-resourcemanager"); - $resourcemanager->waitForUnit("network.target"); - $resourcemanager->waitForOpenPort(8031); - $resourcemanager->waitForOpenPort(8088); + resourcemanager.wait_for_unit("yarn-resourcemanager") + resourcemanager.wait_for_unit("network.target") + resourcemanager.wait_for_open_port(8031) + resourcemanager.wait_for_open_port(8088) - $nodemanager->waitForUnit("yarn-nodemanager"); - $nodemanager->waitForUnit("network.target"); - $nodemanager->waitForOpenPort(8042); - $nodemanager->waitForOpenPort(8041); + nodemanager.wait_for_unit("yarn-nodemanager") + nodemanager.wait_for_unit("network.target") + nodemanager.wait_for_open_port(8042) + nodemanager.wait_for_open_port(8041) - $resourcemanager->succeed("curl http://localhost:8088"); - $nodemanager->succeed("curl http://localhost:8042"); + resourcemanager.succeed("curl http://localhost:8088") + nodemanager.succeed("curl http://localhost:8042") ''; }) diff --git a/nixos/tests/haproxy.nix b/nixos/tests/haproxy.nix index 72e77a68193e..b6fed3e2108f 100644 --- a/nixos/tests/haproxy.nix +++ b/nixos/tests/haproxy.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ...}: { +import ./make-test-python.nix ({ pkgs, ...}: { name = "haproxy"; nodes = { machine = { ... }: { @@ -33,11 +33,13 @@ import ./make-test.nix ({ pkgs, ...}: { }; }; testScript = '' - startAll; - $machine->waitForUnit('multi-user.target'); - $machine->waitForUnit('haproxy.service'); - $machine->waitForUnit('httpd.service'); - $machine->succeed('curl -k http://localhost:80/index.txt | grep "We are all good!"'); - $machine->succeed('curl -k http://localhost:80/metrics | grep haproxy_process_pool_allocated_bytes'); + start_all() + machine.wait_for_unit("multi-user.target") + machine.wait_for_unit("haproxy.service") + machine.wait_for_unit("httpd.service") + assert "We are all good!" in machine.succeed("curl -k http://localhost:80/index.txt") + assert "haproxy_process_pool_allocated_bytes" in machine.succeed( + "curl -k http://localhost:80/metrics" + ) ''; }) diff --git a/nixos/tests/hitch/default.nix b/nixos/tests/hitch/default.nix index cb24c4dcffc2..106120256412 100644 --- a/nixos/tests/hitch/default.nix +++ b/nixos/tests/hitch/default.nix @@ -1,4 +1,4 @@ -import ../make-test.nix ({ pkgs, ... }: +import ../make-test-python.nix ({ pkgs, ... }: { name = "hitch"; meta = with pkgs.stdenv.lib.maintainers; { @@ -23,11 +23,11 @@ import ../make-test.nix ({ pkgs, ... }: testScript = '' - startAll; + start_all() - $machine->waitForUnit('multi-user.target'); - $machine->waitForUnit('hitch.service'); - $machine->waitForOpenPort(443); - $machine->succeed('curl -k https://localhost:443/index.txt | grep "We are all good!"'); + machine.wait_for_unit("multi-user.target") + machine.wait_for_unit("hitch.service") + machine.wait_for_open_port(443) + assert "We are all good!" in machine.succeed("curl -k https://localhost:443/index.txt") ''; }) diff --git a/nixos/tests/i3wm.nix b/nixos/tests/i3wm.nix index 8afa845f1e21..126178d11879 100644 --- a/nixos/tests/i3wm.nix +++ b/nixos/tests/i3wm.nix @@ -7,7 +7,7 @@ import ./make-test-python.nix ({ pkgs, ...} : { machine = { lib, ... }: { imports = [ ./common/x11.nix ./common/user-account.nix ]; services.xserver.displayManager.auto.user = "alice"; - services.xserver.windowManager.default = lib.mkForce "i3"; + services.xserver.displayManager.defaultSession = lib.mkForce "none+i3"; services.xserver.windowManager.i3.enable = true; }; diff --git a/nixos/tests/initrd-network.nix b/nixos/tests/initrd-network.nix index ed9b82e2da77..4796ff9b7c8d 100644 --- a/nixos/tests/initrd-network.nix +++ b/nixos/tests/initrd-network.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ pkgs, ...} : { name = "initrd-network"; meta.maintainers = [ pkgs.stdenv.lib.maintainers.eelco ]; @@ -15,8 +15,8 @@ import ./make-test.nix ({ pkgs, ...} : { testScript = '' - startAll; - $machine->waitForUnit("multi-user.target"); - $machine->succeed("ip link >&2"); + start_all() + machine.wait_for_unit("multi-user.target") + machine.succeed("ip link >&2") ''; }) diff --git a/nixos/tests/leaps.nix b/nixos/tests/leaps.nix index 6163fed56b6f..65b475d734ec 100644 --- a/nixos/tests/leaps.nix +++ b/nixos/tests/leaps.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, ... }: { name = "leaps"; @@ -22,9 +22,11 @@ import ./make-test.nix ({ pkgs, ... }: testScript = '' - startAll; - $server->waitForOpenPort(6666); - $client->waitForUnit("network.target"); - $client->succeed("${pkgs.curl}/bin/curl http://server:6666/leaps/ | grep -i 'leaps'"); + start_all() + server.wait_for_open_port(6666) + client.wait_for_unit("network.target") + assert "leaps" in client.succeed( + "${pkgs.curl}/bin/curl http://server:6666/leaps/" + ) ''; }) diff --git a/nixos/tests/lidarr.nix b/nixos/tests/lidarr.nix index 85fcbd21d8c0..d3f83e5d9145 100644 --- a/nixos/tests/lidarr.nix +++ b/nixos/tests/lidarr.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ lib, ... }: +import ./make-test-python.nix ({ lib, ... }: with lib; @@ -11,8 +11,10 @@ with lib; { services.lidarr.enable = true; }; testScript = '' - $machine->waitForUnit('lidarr.service'); - $machine->waitForOpenPort('8686'); - $machine->succeed("curl --fail http://localhost:8686/"); + start_all() + + machine.wait_for_unit("lidarr.service") + machine.wait_for_open_port("8686") + machine.succeed("curl --fail http://localhost:8686/") ''; }) diff --git a/nixos/tests/lightdm.nix b/nixos/tests/lightdm.nix index ef30f7741e23..46c2ed7ccc59 100644 --- a/nixos/tests/lightdm.nix +++ b/nixos/tests/lightdm.nix @@ -8,9 +8,8 @@ import ./make-test-python.nix ({ pkgs, ...} : { imports = [ ./common/user-account.nix ]; services.xserver.enable = true; services.xserver.displayManager.lightdm.enable = true; - services.xserver.windowManager.default = "icewm"; + services.xserver.displayManager.defaultSession = "none+icewm"; services.xserver.windowManager.icewm.enable = true; - services.xserver.desktopManager.default = "none"; }; enableOCR = true; diff --git a/nixos/tests/mailcatcher.nix b/nixos/tests/mailcatcher.nix index eb5b606ecc84..2ef38544fe0a 100644 --- a/nixos/tests/mailcatcher.nix +++ b/nixos/tests/mailcatcher.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ lib, ... }: +import ./make-test-python.nix ({ lib, ... }: { name = "mailcatcher"; @@ -16,11 +16,15 @@ import ./make-test.nix ({ lib, ... }: }; testScript = '' - startAll; + start_all() - $machine->waitForUnit('mailcatcher.service'); - $machine->waitForOpenPort('1025'); - $machine->succeed('echo "this is the body of the email" | mail -s "subject" root@example.org'); - $machine->succeed('curl http://localhost:1080/messages/1.source') =~ /this is the body of the email/ or die; + machine.wait_for_unit("mailcatcher.service") + machine.wait_for_open_port("1025") + machine.succeed( + 'echo "this is the body of the email" | mail -s "subject" root@example.org' + ) + assert "this is the body of the email" in machine.succeed( + "curl http://localhost:1080/messages/1.source" + ) ''; }) diff --git a/nixos/tests/paperless.nix b/nixos/tests/paperless.nix index 860ad0a6218f..355e7041d3fe 100644 --- a/nixos/tests/paperless.nix +++ b/nixos/tests/paperless.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ lib, ... } : { +import ./make-test-python.nix ({ lib, ... } : { name = "paperless"; meta = with lib.maintainers; { maintainers = [ earvstedt ]; @@ -13,17 +13,24 @@ import ./make-test.nix ({ lib, ... } : { }; testScript = '' - $machine->waitForUnit("paperless-consumer.service"); - # Create test doc - $machine->succeed('convert -size 400x40 xc:white -font "DejaVu-Sans" -pointsize 20 -fill black \ - -annotate +5+20 "hello world 16-10-2005" /var/lib/paperless/consume/doc.png'); + machine.wait_for_unit("paperless-consumer.service") - $machine->waitForUnit("paperless-server.service"); - # Wait until server accepts connections - $machine->waitUntilSucceeds("curl -s localhost:28981"); - # Wait until document is consumed - $machine->waitUntilSucceeds('(($(curl -s localhost:28981/api/documents/ | jq .count) == 1))'); - $machine->succeed("curl -s localhost:28981/api/documents/ | jq '.results | .[0] | .created'") - =~ /2005-10-16/ or die; + # Create test doc + machine.succeed( + "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black -annotate +5+20 'hello world 16-10-2005' /var/lib/paperless/consume/doc.png" + ) + + with subtest("Service gets ready"): + machine.wait_for_unit("paperless-server.service") + # Wait until server accepts connections + machine.wait_until_succeeds("curl -s localhost:28981") + + with subtest("Test document is consumed"): + machine.wait_until_succeeds( + "(($(curl -s localhost:28981/api/documents/ | jq .count) == 1))" + ) + assert "2005-10-16" in machine.succeed( + "curl -s localhost:28981/api/documents/ | jq '.results | .[0] | .created'" + ) ''; }) diff --git a/nixos/tests/pdns-recursor.nix b/nixos/tests/pdns-recursor.nix index bf6e6093d69c..de1b60e0b1c7 100644 --- a/nixos/tests/pdns-recursor.nix +++ b/nixos/tests/pdns-recursor.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ... }: { +import ./make-test-python.nix ({ pkgs, ... }: { name = "powerdns"; nodes.server = { ... }: { @@ -6,7 +6,7 @@ import ./make-test.nix ({ pkgs, ... }: { }; testScript = '' - $server->waitForUnit("pdns-recursor"); - $server->waitForOpenPort("53"); + server.wait_for_unit("pdns-recursor") + server.wait_for_open_port("53") ''; }) diff --git a/nixos/tests/peerflix.nix b/nixos/tests/peerflix.nix index fae37fedaac7..37628604d49b 100644 --- a/nixos/tests/peerflix.nix +++ b/nixos/tests/peerflix.nix @@ -1,6 +1,6 @@ # This test runs peerflix and checks if peerflix starts -import ./make-test.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ pkgs, ...} : { name = "peerflix"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ offline ]; @@ -15,9 +15,9 @@ import ./make-test.nix ({ pkgs, ...} : { }; testScript = '' - startAll; + start_all() - $peerflix->waitForUnit("peerflix.service"); - $peerflix->waitUntilSucceeds("curl localhost:9000"); + peerflix.wait_for_unit("peerflix.service") + peerflix.wait_until_succeeds("curl localhost:9000") ''; }) diff --git a/nixos/tests/pgmanage.nix b/nixos/tests/pgmanage.nix index bacaf3f41588..4f5dbed24a97 100644 --- a/nixos/tests/pgmanage.nix +++ b/nixos/tests/pgmanage.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ... } : +import ./make-test-python.nix ({ pkgs, ... } : let role = "test"; password = "secret"; @@ -29,11 +29,13 @@ in }; testScript = '' - startAll; - $one->waitForUnit("default.target"); - $one->requireActiveUnit("pgmanage.service"); + start_all() + one.wait_for_unit("default.target") + one.require_unit_state("pgmanage.service", "active") # Test if we can log in. - $one->waitUntilSucceeds("curl 'http://localhost:8080/pgmanage/auth' --data 'action=login&connname=${conn}&username=${role}&password=${password}' --fail"); + one.wait_until_succeeds( + "curl 'http://localhost:8080/pgmanage/auth' --data 'action=login&connname=${conn}&username=${role}&password=${password}' --fail" + ) ''; }) diff --git a/nixos/tests/php-pcre.nix b/nixos/tests/php-pcre.nix index ae44aec7944f..d5c22e0582a0 100644 --- a/nixos/tests/php-pcre.nix +++ b/nixos/tests/php-pcre.nix @@ -1,7 +1,7 @@ let testString = "can-use-subgroups"; in -import ./make-test.nix ({ ...}: { +import ./make-test-python.nix ({ ...}: { name = "php-httpd-pcre-jit-test"; machine = { lib, pkgs, ... }: { time.timeZone = "UTC"; @@ -31,9 +31,10 @@ import ./make-test.nix ({ ...}: { }; testScript = { ... }: '' - $machine->waitForUnit('httpd.service'); + machine.wait_for_unit("httpd.service") # Ensure php evaluation by matching on the var_dump syntax - $machine->succeed('curl -vvv -s http://127.0.0.1:80/index.php \ - | grep "string(${toString (builtins.stringLength testString)}) \"${testString}\""'); + assert 'string(${toString (builtins.stringLength testString)}) "${testString}"' in machine.succeed( + "curl -vvv -s http://127.0.0.1:80/index.php" + ) ''; }) diff --git a/nixos/tests/plasma5.nix b/nixos/tests/plasma5.nix index 6884f17aabbe..2eccfdf47f59 100644 --- a/nixos/tests/plasma5.nix +++ b/nixos/tests/plasma5.nix @@ -12,8 +12,8 @@ import ./make-test-python.nix ({ pkgs, ...} : imports = [ ./common/user-account.nix ]; services.xserver.enable = true; services.xserver.displayManager.sddm.enable = true; + services.xserver.displayManager.defaultSession = "plasma5"; services.xserver.desktopManager.plasma5.enable = true; - services.xserver.desktopManager.default = "plasma5"; services.xserver.displayManager.sddm.autoLogin = { enable = true; user = "alice"; diff --git a/nixos/tests/postgis.nix b/nixos/tests/postgis.nix index 294eb50b5fe5..84bbb0bc8ec6 100644 --- a/nixos/tests/postgis.nix +++ b/nixos/tests/postgis.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ pkgs, ...} : { name = "postgis"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ lsix ]; @@ -20,10 +20,10 @@ import ./make-test.nix ({ pkgs, ...} : { }; testScript = '' - startAll; - $master->waitForUnit("postgresql"); - $master->sleep(10); # Hopefully this is long enough!! - $master->succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis;'"); - $master->succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis_topology;'"); + start_all() + master.wait_for_unit("postgresql") + master.sleep(10) # Hopefully this is long enough!! + master.succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis;'") + master.succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis_topology;'") ''; }) diff --git a/nixos/tests/quagga.nix b/nixos/tests/quagga.nix index 6aee7ea57f03..04590aa0eb38 100644 --- a/nixos/tests/quagga.nix +++ b/nixos/tests/quagga.nix @@ -5,7 +5,7 @@ # # All interfaces are in OSPF Area 0. -import ./make-test.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, ... }: let ifAddr = node: iface: (pkgs.lib.head node.config.networking.interfaces.${iface}.ipv4.addresses).address; @@ -74,23 +74,23 @@ import ./make-test.nix ({ pkgs, ... }: testScript = { ... }: '' - startAll; + start_all() # Wait for the networking to start on all machines - $_->waitForUnit("network.target") foreach values %vms; + for machine in client, router1, router2, server: + machine.wait_for_unit("network.target") - # Wait for OSPF to form adjacencies - for my $gw ($router1, $router2) { - $gw->waitForUnit("ospfd"); - $gw->waitUntilSucceeds("vtysh -c 'show ip ospf neighbor' | grep Full"); - $gw->waitUntilSucceeds("vtysh -c 'show ip route' | grep '^O>'"); - } + with subtest("Wait for OSPF to form adjacencies"): + for gw in router1, router2: + gw.wait_for_unit("ospfd") + gw.wait_until_succeeds("vtysh -c 'show ip ospf neighbor' | grep Full") + gw.wait_until_succeeds("vtysh -c 'show ip route' | grep '^O>'") - # Test ICMP. - $client->succeed("ping -c 3 server >&2"); + with subtest("Test ICMP"): + client.wait_until_succeeds("ping -c 3 server >&2") - # Test whether HTTP works. - $server->waitForUnit("httpd"); - $client->succeed("curl --fail http://server/ >&2"); + with subtest("Test whether HTTP works"): + server.wait_for_unit("httpd") + client.succeed("curl --fail http://server/ >&2") ''; }) diff --git a/nixos/tests/sddm.nix b/nixos/tests/sddm.nix index 4bdcd701dcf1..a145705250f7 100644 --- a/nixos/tests/sddm.nix +++ b/nixos/tests/sddm.nix @@ -16,9 +16,8 @@ let imports = [ ./common/user-account.nix ]; services.xserver.enable = true; services.xserver.displayManager.sddm.enable = true; - services.xserver.windowManager.default = "icewm"; + services.xserver.displayManager.defaultSession = "none+icewm"; services.xserver.windowManager.icewm.enable = true; - services.xserver.desktopManager.default = "none"; }; enableOCR = true; @@ -52,9 +51,8 @@ let user = "alice"; }; }; - services.xserver.windowManager.default = "icewm"; + services.xserver.displayManager.defaultSession = "none+icewm"; services.xserver.windowManager.icewm.enable = true; - services.xserver.desktopManager.default = "none"; }; testScript = { nodes, ... }: let diff --git a/nixos/tests/sonarr.nix b/nixos/tests/sonarr.nix index 3e84445099ab..764a4d05b381 100644 --- a/nixos/tests/sonarr.nix +++ b/nixos/tests/sonarr.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ lib, ... }: +import ./make-test-python.nix ({ lib, ... }: with lib; @@ -11,8 +11,8 @@ with lib; { services.sonarr.enable = true; }; testScript = '' - $machine->waitForUnit('sonarr.service'); - $machine->waitForOpenPort('8989'); - $machine->succeed("curl --fail http://localhost:8989/"); + machine.wait_for_unit("sonarr.service") + machine.wait_for_open_port("8989") + machine.succeed("curl --fail http://localhost:8989/") ''; }) diff --git a/nixos/tests/switch-test.nix b/nixos/tests/switch-test.nix index 0dba3697980f..7076bd77b770 100644 --- a/nixos/tests/switch-test.nix +++ b/nixos/tests/switch-test.nix @@ -1,6 +1,6 @@ # Test configuration switching. -import ./make-test.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ pkgs, ...} : { name = "switch-test"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ gleber ]; @@ -28,7 +28,11 @@ import ./make-test.nix ({ pkgs, ...} : { exec env -i "$@" | tee /dev/stderr ''; in '' - $machine->succeed("${stderrRunner} ${originalSystem}/bin/switch-to-configuration test"); - $machine->succeed("${stderrRunner} ${otherSystem}/bin/switch-to-configuration test"); + machine.succeed( + "${stderrRunner} ${originalSystem}/bin/switch-to-configuration test" + ) + machine.succeed( + "${stderrRunner} ${otherSystem}/bin/switch-to-configuration test" + ) ''; }) diff --git a/nixos/tests/systemd-timesyncd.nix b/nixos/tests/systemd-timesyncd.nix index d12b8eb2bf7e..ad5b9a47383b 100644 --- a/nixos/tests/systemd-timesyncd.nix +++ b/nixos/tests/systemd-timesyncd.nix @@ -1,7 +1,7 @@ # Regression test for systemd-timesync having moved the state directory without # upstream providing a migration path. https://github.com/systemd/systemd/issues/12131 -import ./make-test.nix (let +import ./make-test-python.nix (let common = { lib, ... }: { # override the `false` value from the qemu-vm base profile services.timesyncd.enable = lib.mkForce true; @@ -25,28 +25,28 @@ in { }; testScript = '' - startAll; - $current->succeed('systemctl status systemd-timesyncd.service'); + start_all() + current.succeed("systemctl status systemd-timesyncd.service") # on a new install with a recent systemd there should not be any # leftovers from the dynamic user mess - $current->succeed('test -e /var/lib/systemd/timesync'); - $current->succeed('test ! -L /var/lib/systemd/timesync'); + current.succeed("test -e /var/lib/systemd/timesync") + current.succeed("test ! -L /var/lib/systemd/timesync") # timesyncd should be running on the upgrading system since we fixed the # file bits in the activation script - $pre1909->succeed('systemctl status systemd-timesyncd.service'); + pre1909.succeed("systemctl status systemd-timesyncd.service") # the path should be gone after the migration - $pre1909->succeed('test ! -e /var/lib/private/systemd/timesync'); + pre1909.succeed("test ! -e /var/lib/private/systemd/timesync") # and the new path should no longer be a symlink - $pre1909->succeed('test -e /var/lib/systemd/timesync'); - $pre1909->succeed('test ! -L /var/lib/systemd/timesync'); + pre1909.succeed("test -e /var/lib/systemd/timesync") + pre1909.succeed("test ! -L /var/lib/systemd/timesync") # after a restart things should still work and not fail in the activation # scripts and cause the boot to fail.. - $pre1909->shutdown; - $pre1909->start; - $pre1909->succeed('systemctl status systemd-timesyncd.service'); + pre1909.shutdown() + pre1909.start() + pre1909.succeed("systemctl status systemd-timesyncd.service") ''; }) diff --git a/nixos/tests/wireguard/namespaces.nix b/nixos/tests/wireguard/namespaces.nix index 94f993d9475d..c8a4e3bb52a1 100644 --- a/nixos/tests/wireguard/namespaces.nix +++ b/nixos/tests/wireguard/namespaces.nix @@ -13,7 +13,7 @@ let in -import ../make-test.nix ({ pkgs, ...} : { +import ../make-test-python.nix ({ pkgs, ...} : { name = "wireguard-with-namespaces"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ asymmetric ]; @@ -65,16 +65,14 @@ import ../make-test.nix ({ pkgs, ...} : { }; testScript = '' - startAll(); + start_all() - $peer0->waitForUnit("wireguard-wg0.service"); - $peer1->waitForUnit("wireguard-wg0.service"); - $peer2->waitForUnit("wireguard-wg0.service"); - $peer3->waitForUnit("wireguard-wg0.service"); + for machine in peer0, peer1, peer2, peer3: + machine.wait_for_unit("wireguard-wg0.service") - $peer0->succeed("ip -n ${socketNamespace} link show wg0"); - $peer1->succeed("ip -n ${interfaceNamespace} link show wg0"); - $peer2->succeed("ip -n ${interfaceNamespace} link show wg0"); - $peer3->succeed("ip link show wg0"); + peer0.succeed("ip -n ${socketNamespace} link show wg0") + peer1.succeed("ip -n ${interfaceNamespace} link show wg0") + peer2.succeed("ip -n ${interfaceNamespace} link show wg0") + peer3.succeed("ip link show wg0") ''; }) diff --git a/nixos/tests/xmonad.nix b/nixos/tests/xmonad.nix index ab3888ca43fc..ef711f8dcf6a 100644 --- a/nixos/tests/xmonad.nix +++ b/nixos/tests/xmonad.nix @@ -4,10 +4,10 @@ import ./make-test-python.nix ({ pkgs, ...} : { maintainers = [ nequissimus ]; }; - machine = { lib, pkgs, ... }: { + machine = { pkgs, ... }: { imports = [ ./common/x11.nix ./common/user-account.nix ]; services.xserver.displayManager.auto.user = "alice"; - services.xserver.windowManager.default = lib.mkForce "xmonad"; + services.xserver.displayManager.defaultSession = "none+xmonad"; services.xserver.windowManager.xmonad = { enable = true; enableContribAndExtras = true; diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix index 246cba590f45..b972aae7de80 100644 --- a/pkgs/applications/audio/gpodder/default.nix +++ b/pkgs/applications/audio/gpodder/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchFromGitHub, python3, python3Packages, intltool , glibcLocales, gnome3, gtk3, wrapGAppsHook -, ipodSupport ? false, libgpod, gobject-introspection +, gobject-introspection }: python3Packages.buildPythonApplication rec { @@ -50,7 +50,7 @@ python3Packages.buildPythonApplication rec { podcastparser html5lib gtk3 - ] ++ stdenv.lib.optional ipodSupport libgpod; + ]; makeFlags = [ "PREFIX=$(out)" diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix index 37e233b5e9ec..88cdde2ceb2a 100644 --- a/pkgs/applications/audio/mopidy/iris.nix +++ b/pkgs/applications/audio/mopidy/iris.nix @@ -2,11 +2,11 @@ pythonPackages.buildPythonApplication rec { pname = "Mopidy-Iris"; - version = "3.42.2"; + version = "3.43.0"; src = pythonPackages.fetchPypi { inherit pname version; - sha256 = "1v1dy857kxxn1si0x7p3qz63l1af5pln1jji1f7fis6id8iy7wfm"; + sha256 = "1qg9xyjf27dp0810h4kdliyfb8r3kvi37lq8r93d01xwfphdzs05"; }; propagatedBuildInputs = [ diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index ee3865590e50..fcd15355a101 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -13,9 +13,9 @@ let sha256Hash = "1nsm4d3vdx90szqd78a8mjq65xc9m5ipd35cqrlx3c3ny900sqxg"; }; betaVersion = { - version = "3.6.0.17"; # "Android Studio 3.6 Beta 5" - build = "192.6018865"; - sha256Hash = "0qlrdf7a6f5585mrni1aa2chic4n7b9c8lgrj8br6q929hc2f5d9"; + version = "3.6.0.18"; # "Android Studio 3.6 RC 1" + build = "192.6071332"; + sha256Hash = "0xpcihr5xxr9l1kv6aflywshs8fww3s7di0g98mz475whhxwzf3q"; }; latestVersion = { # canary & dev version = "4.0.0.6"; # "Android Studio 4.0 Canary 6" diff --git a/pkgs/applications/graphics/gscan2pdf/default.nix b/pkgs/applications/graphics/gscan2pdf/default.nix index 9db6281b3412..f8d50a7c7982 100644 --- a/pkgs/applications/graphics/gscan2pdf/default.nix +++ b/pkgs/applications/graphics/gscan2pdf/default.nix @@ -10,11 +10,11 @@ with stdenv.lib; perlPackages.buildPerlPackage rec { pname = "gscan2pdf"; - version = "2.5.6"; + version = "2.6.2"; src = fetchurl { url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz"; - sha256 = "0wp81nsi5jfypabwmjqiamxr739jq5ij79n5fzn5pbw1hg5gcmfz"; + sha256 = "0z35lglf4anfczizynjp8sd1jpix5mkmm1nh39n1v94l7ahjxsww"; }; nativeBuildInputs = [ wrapGAppsHook ]; diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix index 70a716a760c6..40e69f8c9bcb 100644 --- a/pkgs/applications/kde/default.nix +++ b/pkgs/applications/kde/default.nix @@ -138,6 +138,7 @@ let konquest = callPackage ./konquest.nix {}; konqueror = callPackage ./konqueror.nix {}; korganizer = callPackage ./korganizer.nix {}; + kpat = callPackage ./kpat.nix {}; kpimtextedit = callPackage ./kpimtextedit.nix {}; ksmtp = callPackage ./ksmtp {}; kqtquickcharts = callPackage ./kqtquickcharts.nix {}; diff --git a/pkgs/applications/kde/kpat.nix b/pkgs/applications/kde/kpat.nix new file mode 100644 index 000000000000..9ee573532378 --- /dev/null +++ b/pkgs/applications/kde/kpat.nix @@ -0,0 +1,25 @@ +{ lib +, mkDerivation +, extra-cmake-modules +, knewstuff +, shared-mime-info +, libkdegames +, freecell-solver +}: + +mkDerivation { + name = "kpat"; + nativeBuildInputs = [ + extra-cmake-modules + shared-mime-info + ]; + buildInputs = [ + knewstuff + libkdegames + freecell-solver + ]; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = with lib.maintainers; [ rnhmjoj ]; + }; +} diff --git a/pkgs/applications/misc/barrier/default.nix b/pkgs/applications/misc/barrier/default.nix index d8325e19e266..10e46176c6e6 100644 --- a/pkgs/applications/misc/barrier/default.nix +++ b/pkgs/applications/misc/barrier/default.nix @@ -1,4 +1,5 @@ { stdenv, fetchFromGitHub, cmake, curl, xorg, avahi, qtbase, mkDerivation, + openssl, wrapGAppsHook, avahiWithLibdnssdCompat ? avahi.override { withLibdnssdCompat = true; } }: @@ -13,12 +14,17 @@ mkDerivation rec { sha256 = "1gbg3p7c0vcsdzsjj1ssx6k8xpj3rpyvais12266f0xvnbvihczd"; }; - buildInputs = [ cmake curl xorg.libX11 xorg.libXext xorg.libXtst avahiWithLibdnssdCompat qtbase ]; + buildInputs = [ curl xorg.libX11 xorg.libXext xorg.libXtst avahiWithLibdnssdCompat qtbase ]; + nativeBuildInputs = [ cmake wrapGAppsHook ]; postFixup = '' substituteInPlace "$out/share/applications/barrier.desktop" --replace "Exec=barrier" "Exec=$out/bin/barrier" ''; + qtWrapperArgs = [ + ''--prefix PATH : ${stdenv.lib.makeBinPath [ openssl ]}'' + ]; + meta = { description = "Open-source KVM software"; longDescription = '' diff --git a/pkgs/applications/misc/fsv/default.nix b/pkgs/applications/misc/fsv/default.nix index 00e11858fb41..bbc78efe5cd2 100644 --- a/pkgs/applications/misc/fsv/default.nix +++ b/pkgs/applications/misc/fsv/default.nix @@ -26,6 +26,11 @@ in stdenv.mkDerivation rec { sha256 = "0n09jd7yqj18mx6zqbg7kab4idg5llr15g6avafj74fpg1h7iimj"; }; + postPatch = '' + # fix build with gettext 0.20 + sed -i 's/AM_GNU_GETTEXT/AM_GNU_GETTEXT([external])/' configure.in + ''; + nativeBuildInputs = [ autoreconfHook libtool pkgconfig ]; buildInputs = [ file gtk2 libGLU gtkglarea ]; diff --git a/pkgs/applications/misc/redis-desktop-manager/default.nix b/pkgs/applications/misc/redis-desktop-manager/default.nix index 25f9c6ed4c7a..71d79b88f440 100644 --- a/pkgs/applications/misc/redis-desktop-manager/default.nix +++ b/pkgs/applications/misc/redis-desktop-manager/default.nix @@ -1,11 +1,11 @@ -{ stdenv, lib, fetchgit, pkgconfig, libssh2 +{ stdenv, lib, fetchFromGitHub, fetchFromGitiles, pkgconfig, libssh2 , qtbase, qtdeclarative, qtgraphicaleffects, qtimageformats, qtquickcontrols , qtsvg, qttools, qtquick1, qtcharts , qmake }: let - breakpad_lss = fetchgit { + breakpad_lss = fetchFromGitiles { url = "https://chromium.googlesource.com/linux-syscall-support"; rev = "08056836f2b4a5747daff75435d10d649bed22f6"; sha256 = "1ryshs2nyxwa0kn3rlbnd5b3fhna9vqm560yviddcfgdm2jyg0hz"; @@ -17,10 +17,11 @@ stdenv.mkDerivation rec { pname = "redis-desktop-manager"; version = "0.9.1"; - src = fetchgit { - url = "https://github.com/uglide/RedisDesktopManager.git"; + src = fetchFromGitHub { + owner = "uglide"; + repo = "RedisDesktopManager"; fetchSubmodules = true; - rev = "refs/tags/${version}"; + rev = version; sha256 = "0yd4i944d4blw8jky0nxl7sfkkj975q4d328rdcbhizwvf6dx81f"; }; diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix index afb1e3857c8c..45b6e9dcf334 100644 --- a/pkgs/applications/networking/cluster/helm/default.nix +++ b/pkgs/applications/networking/cluster/helm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, buildGoModule, fetchFromGitHub }: +{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }: buildGoModule rec { pname = "helm"; @@ -16,6 +16,13 @@ buildGoModule rec { subPackages = [ "cmd/helm" ]; buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.gitCommit=v${version}" ]; + nativeBuildInputs = [ installShellFiles ]; + postInstall = '' + $out/bin/helm completion bash > helm.bash + $out/bin/helm completion zsh > helm.zsh + installShellCompletion helm.{bash,zsh} + ''; + meta = with stdenv.lib; { homepage = https://github.com/kubernetes/helm; description = "A package manager for kubernetes"; diff --git a/pkgs/applications/networking/hydroxide/default.nix b/pkgs/applications/networking/hydroxide/default.nix new file mode 100644 index 000000000000..75c1cdaece96 --- /dev/null +++ b/pkgs/applications/networking/hydroxide/default.nix @@ -0,0 +1,33 @@ +{ lib, buildGoModule, fetchFromGitHub, fetchpatch }: + +buildGoModule rec { + pname = "hydroxide"; + version = "0.2.11"; + + src = fetchFromGitHub { + owner = "emersion"; + repo = pname; + rev = "v${version}"; + sha256 = "0rn35iyli80kgj3yn93lrx0ybgc8fhvmkvx1d18ill7r4cmavand"; + }; + + modSha256 = "0b19rcif8yiyvhrsjd3q5nsvr580lklamlphx4dk47n456ckcqfp"; + + # FIXME: remove with next release + patches = [ + (fetchpatch { + url = "https://github.com/emersion/hydroxide/commit/80e0fa6f3e0154338fb0af8a82ca32ae6281dd15.patch"; + sha256 = "1xi0clzgz14a7sxnwr0li7sz9p05sfh3zh5iqg2qz5f415k9jknj"; + }) + ]; + + subPackages = [ "cmd/hydroxide" ]; + + meta = with lib; { + description = "A third-party, open-source ProtonMail bridge"; + homepage = "https://github.com/emersion/hydroxide"; + license = licenses.mit; + maintainers = with maintainers; [ filalex77 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/networking/instant-messengers/franz/default.nix b/pkgs/applications/networking/instant-messengers/franz/default.nix index feba61c8a3b1..605550beb50e 100644 --- a/pkgs/applications/networking/instant-messengers/franz/default.nix +++ b/pkgs/applications/networking/instant-messengers/franz/default.nix @@ -35,7 +35,7 @@ in stdenv.mkDerivation { # provide desktop item and icon cp -r usr/share $out substituteInPlace $out/share/applications/franz.desktop \ - --replace Exec=\"/opt/Franz/franz\" Exec=franz + --replace /opt/Franz/franz franz ''; dontWrapGApps = true; diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json b/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json index 3338f6159d92..c49934b96f77 100644 --- a/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json +++ b/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json @@ -2,7 +2,7 @@ "name": "riot-web", "productName": "Riot", "main": "src/electron-main.js", - "version": "1.5.5", + "version": "1.5.6", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "dependencies": { diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix b/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix index c3fe4b9dd331..9b6f591bd42d 100644 --- a/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix +++ b/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix @@ -6,12 +6,12 @@ let executableName = "riot-desktop"; - version = "1.5.5"; + version = "1.5.6"; riot-web-src = fetchFromGitHub { owner = "vector-im"; repo = "riot-web"; rev = "v${version}"; - sha256 = "18xhqniwxp1sv49qcd9ah8nyy2n2yliy3wg613raxjl16qvvzxmc"; + sha256 = "148rg6wc84xy53bj16v5riw78s999ridid59x6v9jas827l0bdpk"; }; in mkYarnPackage rec { diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-web.nix b/pkgs/applications/networking/instant-messengers/riot/riot-web.nix index b2e50ffce64b..ada903701e26 100644 --- a/pkgs/applications/networking/instant-messengers/riot/riot-web.nix +++ b/pkgs/applications/networking/instant-messengers/riot/riot-web.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "riot-web"; - version = "1.5.5"; + version = "1.5.6"; src = fetchurl { url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz"; - sha256 = "0isln25sl5jvvlqvh822w73a4i82x75g1ywf3p9n5m1a5sr9f537"; + sha256 = "063ynbil038y201skyldj2ysr0hwgwq981w1iw104xd17x31zmn0"; }; installPhase = let diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix index 6bbdb66d3a84..4a72c186dfa7 100644 --- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -59,7 +59,7 @@ let in stdenv.mkDerivation rec { pname = "signal-desktop"; - version = "1.29.0"; # Please backport all updates to the stable channel. + version = "1.29.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: @@ -69,7 +69,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 = "1zbj0z4bhmg6zf975bn67wpr1kdi0h05d90aniijnh5wqgnwhfqn"; + sha256 = "12n17d8b31si7gngvv8bhbcid46n18kznv875nyy34i6b97zavmh"; }; phases = [ "unpackPhase" "installPhase" ]; diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix index da470c349eec..e501d3bcdbfc 100644 --- a/pkgs/applications/networking/instant-messengers/slack/default.nix +++ b/pkgs/applications/networking/instant-messengers/slack/default.nix @@ -1,7 +1,7 @@ { theme ? null, stdenv, fetchurl, dpkg, makeWrapper , alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib , gnome2, gtk3, gdk-pixbuf, libappindicator-gtk3, libnotify, libxcb, nspr, nss, pango , systemd, xorg, -at-spi2-atk, at-spi2-core, libuuid, nodePackages, libpulseaudio +at-spi2-atk, at-spi2-core, libuuid, nodePackages, libpulseaudio, xdg_utils }: let @@ -93,7 +93,8 @@ in stdenv.mkDerivation { # Replace the broken bin/slack symlink with a startup wrapper rm $out/bin/slack makeWrapper $out/lib/slack/slack $out/bin/slack \ - --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH + --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \ + --prefix PATH : ${xdg_utils}/bin # Fix the desktop link substituteInPlace $out/share/applications/slack.desktop \ diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix index adb70c3916f4..5324ae86e520 100644 --- a/pkgs/applications/networking/remote/remmina/default.nix +++ b/pkgs/applications/networking/remote/remmina/default.nix @@ -4,7 +4,7 @@ , pcre, libdbusmenu-gtk3, libappindicator-gtk3 , libvncserver, libpthreadstubs, libXdmcp, libxkbcommon , libsecret, libsoup, spice-protocol, spice-gtk, epoxy, at-spi2-core -, openssl, gsettings-desktop-schemas, json-glib +, openssl, gsettings-desktop-schemas, json-glib, libsodium, webkitgtk, harfbuzz # The themes here are soft dependencies; only icons are missing without them. , gnome3 }: @@ -13,13 +13,13 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "remmina"; - version = "1.3.4"; + version = "1.3.7"; src = fetchFromGitLab { owner = "Remmina"; repo = "Remmina"; rev = "v${version}"; - sha256 = "18p6v2lalpiba0r318grlc2bvqh2qlpjw811i0934g33faviyfj1"; + sha256 = "076vz6nzs8v4d44dklsfgmwyhp48c2iywixg032znz193anjcgqn"; }; nativeBuildInputs = [ cmake ninja pkgconfig wrapGAppsHook ]; @@ -30,7 +30,8 @@ stdenv.mkDerivation rec { pcre libdbusmenu-gtk3 libappindicator-gtk3 libvncserver libpthreadstubs libXdmcp libxkbcommon libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core - openssl gnome3.adwaita-icon-theme json-glib + openssl gnome3.adwaita-icon-theme json-glib libsodium webkitgtk + harfbuzz ]; cmakeFlags = [ diff --git a/pkgs/applications/science/biology/bedtools/default.nix b/pkgs/applications/science/biology/bedtools/default.nix index 0bb5ee866e56..9af2ec88c392 100644 --- a/pkgs/applications/science/biology/bedtools/default.nix +++ b/pkgs/applications/science/biology/bedtools/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "bedtools"; - version = "2.29.1"; + version = "2.29.2"; src = fetchFromGitHub { owner = "arq5x"; repo = "bedtools2"; rev = "v${version}"; - sha256 = "1vbpjvzl4ppzkan9qgm84bkn9kl3h3m5xz92y18wn1sksxcdq50x"; + sha256 = "015qq3pwrwgnyxyi959niijjlswl231b3wxlsm3l8msv6fdhmkz8"; }; buildInputs = [ zlib python bzip2 lzma ]; diff --git a/pkgs/applications/science/biology/strelka/default.nix b/pkgs/applications/science/biology/strelka/default.nix index c791e8ef89bb..cb83b19269bd 100644 --- a/pkgs/applications/science/biology/strelka/default.nix +++ b/pkgs/applications/science/biology/strelka/default.nix @@ -14,6 +14,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ zlib python2 ]; + NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" ]; + preConfigure = '' sed -i 's|/usr/bin/env python|${python2}/bin/python|' src/python/lib/makeRunScript.py patchShebangs . @@ -33,7 +35,6 @@ stdenv.mkDerivation rec { homepage = https://github.com/Illumina/strelka; maintainers = with maintainers; [ jbedo ]; platforms = [ "x86_64-linux" ]; - broken = true; }; } diff --git a/pkgs/applications/version-management/git-and-tools/lab/default.nix b/pkgs/applications/version-management/git-and-tools/lab/default.nix index c8700c18ea10..3e47631caf69 100644 --- a/pkgs/applications/version-management/git-and-tools/lab/default.nix +++ b/pkgs/applications/version-management/git-and-tools/lab/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "lab"; - version = "0.17.1"; + version = "0.17.2"; src = fetchFromGitHub { owner = "zaquestion"; repo = "lab"; rev = "v${version}"; - sha256 = "1z83v1dl9c5f99jvvc23ijkwrfrv489la05rlsrc3r4zzza1hx1f"; + sha256 = "0zkwvmzgj7h8lc8jkg2a81392b28c8hkwqzj6dds6q4asbmymx5c"; }; subPackages = [ "." ]; diff --git a/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.patch b/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.patch new file mode 100644 index 000000000000..46b091b3a353 --- /dev/null +++ b/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.patch @@ -0,0 +1,15 @@ +diff --git a/src/main.rs b/src/main.rs +index 81f20a7..481ebd7 100644 +--- a/src/main.rs ++++ b/src/main.rs +@@ -158,7 +158,9 @@ impl Default for Config { + wayland_dmabuf: false, + shared_dirs: Vec::new(), + sandbox: !cfg!(feature = "default-no-sandbox"), +- seccomp_policy_dir: PathBuf::from(SECCOMP_POLICY_DIR), ++ seccomp_policy_dir: PathBuf::from( ++ option_env!("DEFAULT_SECCOMP_POLICY_DIR").unwrap_or(SECCOMP_POLICY_DIR), ++ ), + seccomp_log_failures: false, + cras_audio: false, + cras_capture: false, diff --git a/pkgs/applications/virtualization/crosvm/default.nix b/pkgs/applications/virtualization/crosvm/default.nix new file mode 100644 index 000000000000..106b39b03366 --- /dev/null +++ b/pkgs/applications/virtualization/crosvm/default.nix @@ -0,0 +1,83 @@ +{ stdenv, rustPlatform, fetchgit, runCommand, symlinkJoin +, pkgconfig, minijail, dtc, libusb1, libcap +}: + +let + + upstreamInfo = with builtins; fromJSON (readFile ./upstream-info.json); + + arch = with stdenv.hostPlatform; + if isAarch64 then "arm" + else if isx86_64 then "x86_64" + else throw "no seccomp policy files available for host platform"; + + # used to turn symlinks into real files because write permissions are necessary for the vendoring process + delink = src: runCommand "${src.name}-delinked" { + preferLocalBuild = true; + allowSubstitutes = false; + } '' + cp -prL --reflink=auto ${src} $out + ''; + + # used to place subtrees into the location they have in the Chromium monorepo + move = src: target: runCommand "moved-${src.name}" { + preferLocalBuild = true; + allowSubstitutes = false; + } '' + mkdir -p $(dirname $out/${target}) + ln -s ${src} $out/${target} + ''; + + # used to check out subtrees from the Chromium monorepo + chromiumSource = name: subtrees: delink (symlinkJoin { + inherit name; + paths = stdenv.lib.mapAttrsToList ( + location: { url, rev, sha256, fetchSubmodules, ... }: + move (fetchgit { + inherit url rev sha256 fetchSubmodules; + }) location) subtrees; + }); + +in + + rustPlatform.buildRustPackage rec { + pname = "crosvm"; + inherit (upstreamInfo) version; + + src = chromiumSource "${pname}-sources" upstreamInfo.components; + + sourceRoot = "${src.name}/chromiumos/platform/crosvm"; + + patches = [ + ./default-seccomp-policy-dir.patch + ]; + + cargoSha256 = "16cfp79c13ng5jjcrvz00h3cg7cc9ywhjiq02vsm757knn9jgr1v"; + + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ dtc libcap libusb1 minijail ]; + + postPatch = '' + sed -i "s|/usr/share/policy/crosvm/|$out/share/policy/|g" \ + seccomp/*/*.policy + ''; + + preBuild = '' + export DEFAULT_SECCOMP_POLICY_DIR=$out/share/policy + ''; + + postInstall = '' + mkdir -p $out/share/policy/ + cp seccomp/${arch}/* $out/share/policy/ + ''; + + passthru.updateScript = ./update.py; + + meta = with stdenv.lib; { + description = "A secure virtual machine monitor for KVM"; + homepage = "https://chromium.googlesource.com/chromiumos/platform/crosvm/"; + license = licenses.bsd3; + platforms = [ "aarch64-linux" "x86_64-linux" ]; + }; + } diff --git a/pkgs/applications/virtualization/crosvm/update.py b/pkgs/applications/virtualization/crosvm/update.py new file mode 100755 index 000000000000..d00bffce3b8f --- /dev/null +++ b/pkgs/applications/virtualization/crosvm/update.py @@ -0,0 +1,85 @@ +#! /usr/bin/env nix-shell +#! nix-shell -p python3 -p nix-prefetch-git -i python + +import base64 +import csv +import json +import re +import subprocess +import xml.etree.ElementTree as ElementTree +from codecs import iterdecode +from operator import itemgetter +from os.path import dirname, splitext +from urllib.request import urlopen + +# ChromiumOS components required to build crosvm. +components = ['chromiumos/platform/crosvm', 'chromiumos/third_party/adhd'] + +git_root = 'https://chromium.googlesource.com/' +manifest_versions = f'{git_root}chromiumos/manifest-versions' +buildspecs_url = f'{manifest_versions}/+/refs/heads/master/paladin/buildspecs/' + +# CrOS version numbers look like this: +# [.].. +# +# As far as I can tell, branches are where internal Google +# modifications are added to turn Chromium OS into Chrome OS, and +# branch branches are used for fixes for specific devices. So for +# Chromium OS they will always be 0. This is a best guess, and is not +# documented. +with urlopen('https://cros-omahaproxy.appspot.com/all') as resp: + versions = csv.DictReader(iterdecode(resp, 'utf-8')) + stables = filter(lambda v: v['track'] == 'stable-channel', versions) + stable = sorted(stables, key=itemgetter('chrome_version'), reverse=True)[0] + +chrome_major_version = re.match(r'\d+', stable['chrome_version'])[0] +chromeos_tip_build = re.match(r'\d+', stable['chromeos_version'])[0] + +# Find the most recent buildspec for the stable Chrome version and +# Chromium OS build number. Its branch build and branch branch build +# numbers will (almost?) certainly be 0. It will then end with an rc +# number -- presumably these are release candidates, one of which +# becomes the final release. Presumably the one with the highest rc +# number. +with urlopen(f'{buildspecs_url}{chrome_major_version}/?format=TEXT') as resp: + listing = base64.decodebytes(resp.read()).decode('utf-8') + buildspecs = [(line.split('\t', 1)[1]) for line in listing.splitlines()] + buildspecs = [s for s in buildspecs if s.startswith(chromeos_tip_build)] + buildspecs.sort(reverse=True) + buildspec = splitext(buildspecs[0])[0] + +revisions = {} + +# Read the buildspec, and extract the git revisions for each component. +with urlopen(f'{buildspecs_url}{chrome_major_version}/{buildspec}.xml?format=TEXT') as resp: + xml = base64.decodebytes(resp.read()).decode('utf-8') + root = ElementTree.fromstring(xml) + for project in root.findall('project'): + revisions[project.get('name')] = project.get('revision') + +# Initialize the data that will be output from this script. Leave the +# rc number in buildspec so nobody else is subject to the same level +# of confusion I have been. +data = {'version': f'{chrome_major_version}.{buildspec}', 'components': {}} + +# Fill in the 'components' dictionary with the output from +# nix-prefetch-git, which can be passed straight to fetchGit when +# imported by Nix. +for component in components: + argv = ['nix-prefetch-git', + '--url', git_root + component, + '--rev', revisions[component]] + + output = subprocess.check_output(argv) + data['components'][component] = json.loads(output.decode('utf-8')) + +# Find the path to crosvm's default.nix, so the srcs data can be +# written into the same directory. +argv = ['nix-instantiate', '--eval', '--json', '-A', 'crosvm.meta.position'] +position = json.loads(subprocess.check_output(argv).decode('utf-8')) +filename = re.match(r'[^:]*', position)[0] + +# Finally, write the output. +with open(dirname(filename) + '/upstream-info.json', 'w') as out: + json.dump(data, out, indent=2) + out.write('\n') diff --git a/pkgs/applications/virtualization/crosvm/upstream-info.json b/pkgs/applications/virtualization/crosvm/upstream-info.json new file mode 100644 index 000000000000..01921f9460a0 --- /dev/null +++ b/pkgs/applications/virtualization/crosvm/upstream-info.json @@ -0,0 +1,19 @@ +{ + "version": "77.12371.0.0-rc1", + "components": { + "chromiumos/platform/crosvm": { + "url": "https://chromium.googlesource.com/chromiumos/platform/crosvm", + "rev": "f5285c647acacb4f25ef8cf9334254b976e71686", + "date": "2019-07-25T22:15:48+00:00", + "sha256": "1ccjd540xmpad082w9ri13q78wkg95xxmq38b8ybcrj4f7lsxm6w", + "fetchSubmodules": false + }, + "chromiumos/third_party/adhd": { + "url": "https://chromium.googlesource.com/chromiumos/third_party/adhd", + "rev": "a1c0d93d991daffb042b979ac807bbe9c1f9a3ee", + "date": "2019-07-25T20:38:50-07:00", + "sha256": "11bijqd876adarq96syywn6znfbiflqssgb2j4w032iw2vfnnsyy", + "fetchSubmodules": false + } + } +} diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index fba6b15d2384..e10ff269950d 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -287,10 +287,16 @@ rec { # unless there are more paths than $maxLayers. In that case, create # $maxLayers-1 for the most popular layers, and smush the remainaing # store paths in to one final layer. + # + # NOTE: the `closures` parameter is a list of closures to include. + # The TOP LEVEL store paths themselves will never be present in the + # resulting image. At this time (2019-12-16) none of these layers + # are appropriate to include, as they are all created as + # implementation details of dockerTools. mkManyPureLayers = { name, # Files to add to the layer. - closure, + closures, configJson, # Docker has a 125-layer maximum, we pick 100 to ensure there is # plenty of room for extension. @@ -303,10 +309,12 @@ rec { isExecutable = true; src = ./store-path-to-layer.sh; }; + + overallClosure = writeText "closure" (lib.concatStringsSep " " closures); in runCommand "${name}-granular-docker-layers" { inherit maxLayers; - paths = referencesByPopularity closure; + paths = referencesByPopularity overallClosure; nativeBuildInputs = [ jshon rsync tarsum ]; enableParallelBuilding = true; } @@ -317,15 +325,20 @@ rec { | jshon -d config \ | jshon -s "1970-01-01T00:00:01Z" -i created > generic.json + # WARNING! # The following code is fiddly w.r.t. ensuring every layer is # created, and that no paths are missed. If you change the # following head and tail call lines, double-check that your # code behaves properly when the number of layers equals: # maxLayers-1, maxLayers, and maxLayers+1 - head -n $((maxLayers - 1)) $paths | cat -n | xargs -P$NIX_BUILD_CORES -n2 ${storePathToLayer} - if [ $(cat $paths | wc -l) -ge $maxLayers ]; then - tail -n+$maxLayers $paths | xargs ${storePathToLayer} $maxLayers + paths() { + cat $paths ${lib.concatMapStringsSep " " (path: "| grep -v ${path}") (closures ++ [ overallClosure ])} + } + + paths | head -n $((maxLayers - 1)) | cat -n | xargs -P$NIX_BUILD_CORES -n2 ${storePathToLayer} + if [ $(paths | wc -l) -ge $maxLayers ]; then + paths | tail -n+$maxLayers | xargs ${storePathToLayer} $maxLayers fi echo "Finished building layer '$name'" @@ -534,7 +547,12 @@ rec { }: let baseName = baseNameOf name; - contentsEnv = symlinkJoin { name = "bulk-layers"; paths = (if builtins.isList contents then contents else [ contents ]); }; + contentsEnv = symlinkJoin { + name = "bulk-layers"; + paths = if builtins.isList contents + then contents + else [ contents ]; + }; configJson = let pure = writeText "${baseName}-config.json" (builtins.toJSON { @@ -551,7 +569,7 @@ rec { bulkLayers = mkManyPureLayers { name = baseName; - closure = writeText "closure" "${contentsEnv} ${configJson}"; + closures = [ contentsEnv configJson ]; # One layer will be taken up by the customisationLayer, so # take up one less. maxLayers = maxLayers - 1; diff --git a/pkgs/build-support/fetchgitiles/default.nix b/pkgs/build-support/fetchgitiles/default.nix new file mode 100644 index 000000000000..827680992d69 --- /dev/null +++ b/pkgs/build-support/fetchgitiles/default.nix @@ -0,0 +1,10 @@ +{ fetchzip, lib }: + +{ url, rev, name ? "source", ... } @ args: + +fetchzip ({ + inherit name; + url = "${url}/+archive/${rev}.tar.gz"; + stripRoot = false; + meta.homepage = url; +} // removeAttrs args [ "url" "rev" ]) // { inherit rev; } diff --git a/pkgs/data/fonts/gubbi/default.nix b/pkgs/data/fonts/gubbi/default.nix new file mode 100644 index 000000000000..2d1c520e6103 --- /dev/null +++ b/pkgs/data/fonts/gubbi/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, fontforge }: + +stdenv.mkDerivation rec { + pname = "gubbi-font"; + version = "1.3"; + + src = fetchFromGitHub { + owner = "aravindavk"; + repo = "gubbi"; + rev = "v${version}"; + sha256 = "10w9i3pmjvs1b3xclrgn4q5a95ss4ipldbxbqrys2dmfivx7i994"; + }; + + nativeBuildInputs = [ fontforge ]; + + dontConfigure = true; + + preBuild = "patchShebangs generate.pe"; + + installPhase = "install -Dm444 -t $out/share/fonts/truetype/ Gubbi.ttf"; + + meta = with stdenv.lib; { + inherit (src.meta) homepage; + description = "A Kannada font"; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = with maintainers; [ ehmry ]; + }; +} diff --git a/pkgs/data/themes/sierra/default.nix b/pkgs/data/themes/sierra/default.nix index e5b5ad8d611f..0c9cef9e0977 100644 --- a/pkgs/data/themes/sierra/default.nix +++ b/pkgs/data/themes/sierra/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "sierra-gtk-theme"; - version = "2019-05-07"; + version = "2019-12-16"; src = fetchFromGitHub { owner = "vinceliuice"; repo = pname; rev = version; - sha256 = "0rm9lcwp89ljxqrya9bi882qcs339pc1l945cr1xq2rganqyk9cq"; + sha256 = "14hlz8kbrjypyd6wyrwmnj2wm9w3kc8y00ms35ard7x8lmhs56hr"; }; nativeBuildInputs = [ libxml2 ]; diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix index 8aaf68ea1e36..d63435ce2e9a 100644 --- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix @@ -55,6 +55,7 @@ stdenv.mkDerivation rec { packageName = "gnome-session"; attrPath = "gnome3.gnome-session"; }; + providedSessions = [ "gnome" "gnome-xorg" ]; }; meta = with stdenv.lib; { diff --git a/pkgs/desktops/gnome-3/extensions/workspace-grid.nix b/pkgs/desktops/gnome-3/extensions/workspace-grid.nix deleted file mode 100644 index 811e9911f628..000000000000 --- a/pkgs/desktops/gnome-3/extensions/workspace-grid.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ stdenv, fetchFromGitHub, glib }: - -stdenv.mkDerivation rec { - pname = "gnome-shell-workspace-grid"; - version = "0f3a430e7d04bb5465a17c1225aab0f574426d6b"; - - src = fetchFromGitHub { - owner = "zakkak"; - repo = "workspace-grid-gnome-shell-extension"; - rev = version; - sha256 = "0503b7lmydrbblfvf9b56pv5hpmykzgyc6v8y99rckg58h2jhs69"; - }; - - buildInputs = [ - glib - ]; - - installPhase = '' - cp -r ${uuid} $out - ''; - - uuid = "workspace-grid@mathematical.coffee.gmail.com"; - - meta = with stdenv.lib; { - description = "Arranges workspaces in a configurable grid"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ aneeshusa ]; - homepage = https://github.com/zakkak/workspace-grid-gnome-shell-extension; - }; -} diff --git a/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix b/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix new file mode 100644 index 000000000000..ca4b72111c6c --- /dev/null +++ b/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, findutils, glib }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-workspace-matrix"; + version = "3.0.0"; + + src = fetchFromGitHub { + owner = "mzur"; + repo = "gnome-shell-wsmatrix"; + rev = "v${version}"; + sha256 = "1fgyzmd16kklcca7600bwg8w8pbb4klmapqsvmahlwa99vmkhfkn"; + }; + + uuid = "wsmatrix@martin.zurowietz.de"; + + nativeBuildInputs = [ + findutils + glib + ]; + + buildFlags = "schemas"; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions + ''; + + meta = with stdenv.lib; { + description = "Arrange workspaces in a two dimensional grid with workspace thumbnails"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ chkno ]; + homepage = https://github.com/mzur/gnome-shell-wsmatrix; + }; +} diff --git a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix index 808d36dab95c..c1791ee5bbdc 100644 --- a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix +++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix @@ -141,6 +141,8 @@ let Type=Application DesktopNames=GNOME-Flashback;GNOME; ''; + } // { + providedSessions = [ "gnome-flashback-${wmName}" ]; }; mkSystemdTargetForWm = { wmName }: diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix index ab7333212a05..07c9e724fc65 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix @@ -131,6 +131,7 @@ stdenv.mkDerivation rec { inherit repoName; attrPath = pname; }; + providedSessions = [ "pantheon" ]; }; meta = with stdenv.lib; { diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix index ab673832857d..1b73ac88df59 100644 --- a/pkgs/desktops/pantheon/granite/default.nix +++ b/pkgs/desktops/pantheon/granite/default.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation rec { pname = "granite"; - version = "5.2.5"; + version = "5.3.0"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "0z40vhcp2w8s8rnc56pzvjc4s77bln8k84rwwypivjmk3lhpw1vi"; + sha256 = "1gvrk8gh959bmq8w0kaym7sx13v763lk8x5hck00msgmyrsarfwa"; }; passthru = { diff --git a/pkgs/desktops/surf-display/default.nix b/pkgs/desktops/surf-display/default.nix index 47b7e1172068..dd0644866478 100644 --- a/pkgs/desktops/surf-display/default.nix +++ b/pkgs/desktops/surf-display/default.nix @@ -43,6 +43,10 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=${placeholder "out"}" ]; + passthru = { + providedSessions = [ "surf-display" ]; + }; + meta = with stdenv.lib; { description = "Kiosk browser session manager based on the surf browser"; homepage = "https://code.it-zukunft-schule.de/cgit/surf-display/"; diff --git a/pkgs/development/compilers/ecl/16.1.2.nix b/pkgs/development/compilers/ecl/16.1.2.nix index bede9fa4aa68..a7b2aa6be748 100644 --- a/pkgs/development/compilers/ecl/16.1.2.nix +++ b/pkgs/development/compilers/ecl/16.1.2.nix @@ -61,6 +61,7 @@ stdenv.mkDerivation { url = "https://git.sagemath.org/sage.git/plain/build/pkgs/ecl/patches/16.1.2-getcwd.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; sha256 = "1fbi8gn7rv8nqff5mpaijsrch3k3z7qc5cn4h1vl8qrr8xwqlqhb"; }) + ./ecl-1.16.2-libffi-3.3-abi.patch ]; hardeningDisable = [ "format" ]; diff --git a/pkgs/development/compilers/ecl/default.nix b/pkgs/development/compilers/ecl/default.nix index 33ed690772ea..375b38f1dc68 100644 --- a/pkgs/development/compilers/ecl/default.nix +++ b/pkgs/development/compilers/ecl/default.nix @@ -35,6 +35,10 @@ stdenv.mkDerivation { inherit (s) url sha256; }; + patches = [ + ./libffi-3.3-abi.patch + ]; + configureFlags = [ (if threadSupport then "--enable-threads" else "--disable-threads") "--with-gmp-prefix=${gmp.dev}" diff --git a/pkgs/development/compilers/ecl/ecl-1.16.2-libffi-3.3-abi.patch b/pkgs/development/compilers/ecl/ecl-1.16.2-libffi-3.3-abi.patch new file mode 100644 index 000000000000..28dd7d0805b3 --- /dev/null +++ b/pkgs/development/compilers/ecl/ecl-1.16.2-libffi-3.3-abi.patch @@ -0,0 +1,15 @@ +diff --git a/src/c/ffi.d b/src/c/ffi.d +index 8861303e..8a959c23 100644 +--- a/src/c/ffi.d ++++ b/src/c/ffi.d +@@ -145,8 +145,8 @@ static struct { + #elif defined(X86_WIN64) + {@':win64', FFI_WIN64}, + #elif defined(X86_ANY) || defined(X86) || defined(X86_64) +- {@':cdecl', FFI_SYSV}, +- {@':sysv', FFI_SYSV}, ++ {@':cdecl', FFI_UNIX64}, ++ {@':sysv', FFI_UNIX64}, + {@':unix64', FFI_UNIX64}, + #endif + }; diff --git a/pkgs/development/compilers/ecl/libffi-3.3-abi.patch b/pkgs/development/compilers/ecl/libffi-3.3-abi.patch new file mode 100644 index 000000000000..0a2b5f4dd568 --- /dev/null +++ b/pkgs/development/compilers/ecl/libffi-3.3-abi.patch @@ -0,0 +1,15 @@ +diff --git a/src/c/ffi.d b/src/c/ffi.d +index 8174977a..caa69f39 100644 +--- a/src/c/ffi.d ++++ b/src/c/ffi.d +@@ -133,8 +133,8 @@ static struct { + #elif defined(X86_WIN64) + {@':win64', FFI_WIN64}, + #elif defined(X86_ANY) || defined(X86) || defined(X86_64) +- {@':cdecl', FFI_SYSV}, +- {@':sysv', FFI_SYSV}, ++ {@':cdecl', FFI_UNIX64}, ++ {@':sysv', FFI_UNIX64}, + {@':unix64', FFI_UNIX64}, + #endif + }; diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix new file mode 100644 index 000000000000..2080a643959d --- /dev/null +++ b/pkgs/development/compilers/gleam/default.nix @@ -0,0 +1,24 @@ +{ stdenv, rustPlatform, fetchFromGitHub, Security }: + +rustPlatform.buildRustPackage rec { + pname = "gleam"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "lpil"; + repo = pname; + rev = "v${version}"; + sha256 = "17h573fm5b1f71ivyipl76p0vw7injm7j3cbg6plkfizcb1j5m7f"; + }; + + buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ]; + + cargoSha256 = "04v1gj5nmmcizyrsg6b87qsfzw2zqi57vf1zlnq8680yc54qdah9"; + + meta = with stdenv.lib; { + description = "A statically typed language for the Erlang VM"; + homepage = "https://gleam.run/"; + license = licenses.asl20; + maintainers = with maintainers; [ filalex77 ]; + }; +} diff --git a/pkgs/development/interpreters/gauche/default.nix b/pkgs/development/interpreters/gauche/default.nix index 71542046af91..9b38d1e4ad54 100644 --- a/pkgs/development/interpreters/gauche/default.nix +++ b/pkgs/development/interpreters/gauche/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "gauche"; - version = "0.9.8"; + version = "0.9.9"; src = fetchurl { url = "mirror://sourceforge/gauche/Gauche-${version}.tgz"; - sha256 = "0jxp1ladpy8kvfvk561c64spf1c3d6giqla6zscqkd6qa480vcry"; + sha256 = "1yzpszhw52vkpr65r5d4khf3489mnnvnw58dd2wsvvx7499k5aac"; }; nativeBuildInputs = [ pkgconfig texinfo ]; diff --git a/pkgs/development/libraries/kde-frameworks/ki18n.nix b/pkgs/development/libraries/kde-frameworks/ki18n.nix index 3b9ca74bbd07..69ad2fbc737e 100644 --- a/pkgs/development/libraries/kde-frameworks/ki18n.nix +++ b/pkgs/development/libraries/kde-frameworks/ki18n.nix @@ -1,6 +1,6 @@ { mkDerivation, lib, - extra-cmake-modules, gettext, python, + extra-cmake-modules, gettext, python3, qtbase, qtdeclarative, qtscript, }: @@ -11,6 +11,6 @@ mkDerivation { broken = builtins.compareVersions qtbase.version "5.7.0" < 0; }; nativeBuildInputs = [ extra-cmake-modules ]; - propagatedNativeBuildInputs = [ gettext python ]; + propagatedNativeBuildInputs = [ gettext python3 ]; buildInputs = [ qtdeclarative qtscript ]; } diff --git a/pkgs/development/libraries/libgpod/default.nix b/pkgs/development/libraries/libgpod/default.nix index c41f0a60d06e..063588e9f1e5 100644 --- a/pkgs/development/libraries/libgpod/default.nix +++ b/pkgs/development/libraries/libgpod/default.nix @@ -1,18 +1,20 @@ -{stdenv, lib, fetchurl, gettext, perlPackages, intltool, pkgconfig, glib, +{ stdenv, lib, fetchurl, gettext, perlPackages, intltool, pkgconfig, glib, libxml2, sqlite, zlib, sg3_utils, gdk-pixbuf, taglib, - libimobiledevice, python3Packages, mutagen, + libimobiledevice, mutagen, monoSupport ? false, mono, gtk-sharp-2_0 }: -let - inherit (python3Packages) python pygobject2; -in stdenv.mkDerivation rec { + +stdenv.mkDerivation rec { name = "libgpod-0.8.3"; + src = fetchurl { url = "mirror://sourceforge/gtkpod/${name}.tar.bz2"; sha256 = "0pcmgv1ra0ymv73mlj4qxzgyir026z9jpl5s5bkg35afs1cpk2k3"; }; + outputs = [ "out" "dev" ]; + preConfigure = "configureFlagsArray=( --with-udev-dir=$out/lib/udev )"; configureFlags = [ @@ -23,7 +25,7 @@ in stdenv.mkDerivation rec { dontStrip = true; propagatedBuildInputs = [ glib libxml2 sqlite zlib sg3_utils - gdk-pixbuf taglib libimobiledevice python pygobject2 mutagen ]; + gdk-pixbuf taglib libimobiledevice mutagen ]; nativeBuildInputs = [ gettext intltool pkgconfig ] ++ (with perlPackages; [ perl XMLParser ]) diff --git a/pkgs/development/libraries/libminc/default.nix b/pkgs/development/libraries/libminc/default.nix index aea7a5959fac..53b6af40b512 100644 --- a/pkgs/development/libraries/libminc/default.nix +++ b/pkgs/development/libraries/libminc/default.nix @@ -1,17 +1,16 @@ { stdenv, fetchFromGitHub, cmake, zlib, netcdf, nifticlib, hdf5 }: stdenv.mkDerivation rec { - pname = "libminc"; - name = "${pname}-2018-01-17"; + pname = "libminc"; + version = "2.4.03"; owner = "BIC-MNI"; - # current master is significantly ahead of most recent release, so use Git version: src = fetchFromGitHub { inherit owner; repo = pname; - rev = "a9cbe1353eae9791b7d5b03af16e0f86922ce40b"; - sha256 = "0mn4n3ihzcr1jw2g1vy6c8p4lkc88jwljk04argmj7k4djrgpxpa"; + rev = "release-${version}"; + sha256 = "0kpmqs9df836ywsqj749qbsfavf5bnldblxrmnmxqq9pywc8yfrm"; }; postPatch = '' @@ -27,7 +26,7 @@ stdenv.mkDerivation rec { "-DLIBMINC_USE_SYSTEM_NIFTI=ON" ]; - doCheck = true; + doCheck = !stdenv.isDarwin; checkPhase = '' export LD_LIBRARY_PATH="$(pwd)" # see #22060 ctest -E 'ezminc_rw_test|minc_conversion' --output-on-failure diff --git a/pkgs/development/libraries/randomx/default.nix b/pkgs/development/libraries/randomx/default.nix index 79ce9e413248..9e6cdfecb954 100644 --- a/pkgs/development/libraries/randomx/default.nix +++ b/pkgs/development/libraries/randomx/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { pname = "randomX"; - version = "1.1.6"; + version = "1.1.7"; nativeBuildInputs = [ cmake ]; @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { owner = "tevador"; repo = pname; rev = "v${version}"; - sha256 = "1qd0rbzgxdy87wwy0n6ca29bcq25j5ndnfgmx8iyf225m4rcwngf"; + sha256 = "1d42dw4zrd7mzfqs6gwk27jj6lsh6pwv85p1ckx9dxy8mw3m52ah"; }; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/sentencepiece/default.nix b/pkgs/development/libraries/sentencepiece/default.nix new file mode 100644 index 000000000000..556f77ef8b51 --- /dev/null +++ b/pkgs/development/libraries/sentencepiece/default.nix @@ -0,0 +1,31 @@ +{ config +, fetchFromGitHub +, stdenv +, lib +, cmake +, gperftools +}: + +stdenv.mkDerivation rec { + pname = "sentencepiece"; + version = "0.1.84"; + + src = fetchFromGitHub { + owner = "google"; + repo = pname; + rev = "v${version}"; + sha256 = "144y25nj4rwxmgvzqbr7al9fjwh3539ssjswvzrx4gsgfk62lsm0"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ cmake gperftools ]; + + meta = with stdenv.lib; { + homepage = https://github.com/google/sentencepiece; + description = "Unsupervised text tokenizer for Neural Network-based text generation"; + license = licenses.asl20; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ pashashocky ]; + }; +} diff --git a/pkgs/development/libraries/sundials/default.nix b/pkgs/development/libraries/sundials/default.nix index 77a7764acb8d..d19ecf34ab95 100644 --- a/pkgs/development/libraries/sundials/default.nix +++ b/pkgs/development/libraries/sundials/default.nix @@ -2,19 +2,17 @@ , cmake , fetchurl , python -, liblapack +, openblas , gfortran , lapackSupport ? true }: -let liblapackShared = liblapack.override { - shared = true; -}; +let openblas32 = openblas.override { blas64 = false; }; in stdenv.mkDerivation rec { pname = "sundials"; version = "5.0.0"; - buildInputs = [ python ] ++ stdenv.lib.optionals (lapackSupport) [ gfortran ]; + buildInputs = [ python ] ++ stdenv.lib.optionals (lapackSupport) [ gfortran openblas32 ]; nativeBuildInputs = [ cmake ]; src = fetchurl { @@ -40,7 +38,7 @@ in stdenv.mkDerivation rec { ] ++ stdenv.lib.optionals (lapackSupport) [ "-DSUNDIALS_INDEX_TYPE=int32_t" "-DLAPACK_ENABLE=ON" - "-DLAPACK_LIBRARIES=${liblapackShared}/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary};${liblapackShared}/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}" + "-DLAPACK_LIBRARIES=${openblas32}/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary}" ]; doCheck = true; diff --git a/pkgs/development/libraries/wt/default.nix b/pkgs/development/libraries/wt/default.nix index 74792f8f34cd..7c819487a334 100644 --- a/pkgs/development/libraries/wt/default.nix +++ b/pkgs/development/libraries/wt/default.nix @@ -49,12 +49,12 @@ let }; in { wt3 = generic { - version = "3.4.2"; - sha256 = "03mwr4yv3705y74pdh19lmh8szad6gk2x2m23f4pr0wrmqg73307"; + version = "3.5.0"; + sha256 = "1xcwzldbval5zrf7f3n2gkpscagg51cw2jp6p3q1yh6bi59haida"; }; wt4 = generic { - version = "4.1.2"; - sha256 = "06bnadpgflg8inikzynnz4l4r6w1bphjwlva4pzf51w648vpkknl"; + version = "4.2.0"; + sha256 = "0zrrdjz0sa8hrmybjp4aap1lcqcqvsicd7dj49zj1m5k8gnfpm4v"; }; } diff --git a/pkgs/development/mobile/cocoapods/Gemfile-beta.lock b/pkgs/development/mobile/cocoapods/Gemfile-beta.lock index 5b7288ad4f79..c077132a9f3d 100644 --- a/pkgs/development/mobile/cocoapods/Gemfile-beta.lock +++ b/pkgs/development/mobile/cocoapods/Gemfile-beta.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.1) + CFPropertyList (3.0.2) activesupport (4.2.11.1) i18n (~> 0.7) minitest (~> 5.1) @@ -12,10 +12,10 @@ GEM json (>= 1.5.1) atomos (0.1.3) claide (1.0.3) - cocoapods (1.8.4) + cocoapods (1.9.0.beta.1) activesupport (>= 4.0.2, < 5) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.8.4) + cocoapods-core (= 1.9.0.beta.1) cocoapods-deintegrate (>= 1.0.3, < 2.0) cocoapods-downloader (>= 1.2.2, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) @@ -30,15 +30,17 @@ GEM molinillo (~> 0.6.6) nap (~> 1.0) ruby-macho (~> 1.4) - xcodeproj (>= 1.11.1, < 2.0) - cocoapods-core (1.8.4) + xcodeproj (>= 1.14.0, < 2.0) + cocoapods-core (1.9.0.beta.1) activesupport (>= 4.0.2, < 6) algoliasearch (~> 1.0) concurrent-ruby (~> 1.1) fuzzy_match (~> 2.0.4) nap (~> 1.0) + netrc (~> 0.11) + typhoeus (~> 1.0) cocoapods-deintegrate (1.0.4) - cocoapods-downloader (1.2.2) + cocoapods-downloader (1.3.0) cocoapods-plugins (1.0.0) nap cocoapods-search (1.0.0) @@ -50,23 +52,28 @@ GEM colored2 (3.1.2) concurrent-ruby (1.1.5) escape (0.0.4) + ethon (0.12.0) + ffi (>= 1.3.0) + ffi (1.11.3) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) httpclient (2.8.3) i18n (0.9.5) concurrent-ruby (~> 1.0) - json (2.2.0) - minitest (5.12.2) + json (2.3.0) + minitest (5.13.0) molinillo (0.6.6) nanaimo (0.2.6) nap (1.1.0) netrc (0.11.0) ruby-macho (1.4.0) thread_safe (0.3.6) + typhoeus (1.3.1) + ethon (>= 0.9.0) tzinfo (1.2.5) thread_safe (~> 0.1) - xcodeproj (1.13.0) + xcodeproj (1.14.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -80,4 +87,4 @@ DEPENDENCIES cocoapods (>= 1.7.0.beta.1)! BUNDLED WITH - 1.17.2 + 1.17.3 diff --git a/pkgs/development/mobile/cocoapods/gemset-beta.nix b/pkgs/development/mobile/cocoapods/gemset-beta.nix index b94bc461944e..120680f658dd 100644 --- a/pkgs/development/mobile/cocoapods/gemset-beta.nix +++ b/pkgs/development/mobile/cocoapods/gemset-beta.nix @@ -36,10 +36,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0fr8sdzs2q1969zqh790w223hjidlwx4hfm4c91gj0va5j5pv3n8"; + sha256 = "1825ll26p28swjiw8n3x2pnh5ygsmg83spf82fnzcjn2p87vc5lf"; type = "gem"; }; - version = "3.0.1"; + version = "3.0.2"; }; claide = { groups = ["default"]; @@ -57,21 +57,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "007ssx75588ji2d8l8s6c95dng1c7b6yacng8nngpy7maijzjgzc"; + sha256 = "14447zrbg90gvjhfpwmjsfh4n7i9f0p1zd0jj3m2cx4y8102djiy"; type = "gem"; }; - version = "1.8.4"; + version = "1.9.0.beta.1"; }; cocoapods-core = { - dependencies = ["activesupport" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap"]; + dependencies = ["activesupport" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "typhoeus"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0zcisqb404828n5d3lbk9y2yyx8v2yr6rk1l8y9a4i1hp743fiad"; + sha256 = "0nhrqwrvblpgf4k3cy0nyxfphyzw46zql1pdv1x7y42h4cn5z8qp"; type = "gem"; }; - version = "1.8.4"; + version = "1.9.0.beta.1"; }; cocoapods-deintegrate = { groups = ["default"]; @@ -88,10 +88,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "09fd4zaqkz8vz3djplacngcs4n0j6j956wgq43s1y6bwl0zyjmd3"; + sha256 = "08vn0pgcyn6w6fq5xjd7szv2h9s5rzl17kyidnd7fl5qdmzc9c54"; type = "gem"; }; - version = "1.2.2"; + version = "1.3.0"; }; cocoapods-plugins = { dependencies = ["nap"]; @@ -175,6 +175,27 @@ }; version = "0.0.4"; }; + ethon = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9"; + type = "gem"; + }; + version = "0.12.0"; + }; + ffi = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10ay35dm0lkcqprsiya6q2kwvyid884102ryipr4vrk790yfp8kd"; + type = "gem"; + }; + version = "1.11.3"; + }; fourflusher = { groups = ["default"]; platforms = []; @@ -231,20 +252,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx"; + sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn"; type = "gem"; }; - version = "2.2.0"; + version = "2.3.0"; }; minitest = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0zjm24aiz42i9n37mcw8lydd7n0y7wfk27by06jx77ypcld3qvkw"; + sha256 = "0w16p7cvslh3hxd3cia8jg4pd85z7rz7xqb16vh42gj4rijn8rmi"; type = "gem"; }; - version = "5.12.2"; + version = "5.13.0"; }; molinillo = { groups = ["default"]; @@ -306,6 +327,17 @@ }; version = "0.3.6"; }; + typhoeus = { + dependencies = ["ethon"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5"; + type = "gem"; + }; + version = "1.3.1"; + }; tzinfo = { dependencies = ["thread_safe"]; groups = ["default"]; @@ -323,9 +355,9 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1c69yrhqd92q6nnpyhvnqyw9l7axnc91gnbd2gai8f5njdisd8wx"; + sha256 = "1h9iba53mrb663qdqzpfbdwkwzqv7hndd0df71yr2kj2hzwjmkvb"; type = "gem"; }; - version = "1.13.0"; + version = "1.14.0"; }; } \ No newline at end of file diff --git a/pkgs/development/python-modules/aiokafka/default.nix b/pkgs/development/python-modules/aiokafka/default.nix new file mode 100644 index 000000000000..b31f83dc136d --- /dev/null +++ b/pkgs/development/python-modules/aiokafka/default.nix @@ -0,0 +1,49 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, isPy27 +, kafka-python +, cython +, zlib +}: + +buildPythonPackage rec { + pname = "aiokafka"; + version = "0.5.2"; + + disabled = isPy27; + + src = fetchFromGitHub { + owner = "aio-libs"; + repo = "aiokafka"; + rev = "v${version}"; + sha256 = "062kqsq75fi5pbpqf2a8nxm43pxpr6bwplg6bp4nv2a68r850pki"; + }; + + nativeBuildInputs = [ + cython + ]; + + buildInputs = [ + zlib + ]; + + propagatedBuildInputs = [ + kafka-python + ]; + + postPatch = '' + substituteInPlace setup.py \ + --replace "kafka-python==1.4.6" "kafka-python" + ''; + + # checks require running kafka server + doCheck = false; + + meta = with lib; { + description = "Kafka integration with asyncio"; + homepage = https://aiokafka.readthedocs.org; + license = licenses.asl20; + maintainers = [ maintainers.costrouc ]; + }; +} diff --git a/pkgs/development/python-modules/aiorun/default.nix b/pkgs/development/python-modules/aiorun/default.nix new file mode 100644 index 000000000000..7e38bb76873a --- /dev/null +++ b/pkgs/development/python-modules/aiorun/default.nix @@ -0,0 +1,45 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, isPy27 +, pytest +, pytestcov +, uvloop +}: + +buildPythonPackage rec { + pname = "aiorun"; + version = "2019.11.1"; + format = "flit"; + + disabled = isPy27; + + src = fetchFromGitHub { + owner = "cjrh"; + repo = pname; + rev = "v${version}"; + sha256 = "04p3sci6af6qqfkcqamsqhmqqrigcwvl4bmx8yv5ppvkyq39pxi7"; + }; + + checkInputs = [ + pytest + pytestcov + uvloop + ]; + + # allow for writable directory for darwin + preBuild = '' + export HOME=$TMPDIR + ''; + + checkPhase = '' + pytest + ''; + + meta = with lib; { + description = "Boilerplate for asyncio applications"; + homepage = https://github.com/cjrh/aiorun; + license = licenses.asl20; + maintainers = [ maintainers.costrouc ]; + }; +} diff --git a/pkgs/development/python-modules/bottleneck/default.nix b/pkgs/development/python-modules/bottleneck/default.nix index 21492dc152cb..f45eea2c5df3 100644 --- a/pkgs/development/python-modules/bottleneck/default.nix +++ b/pkgs/development/python-modules/bottleneck/default.nix @@ -1,26 +1,34 @@ -{ buildPythonPackage -, fetchPypi +{ lib, buildPythonPackage, fetchPypi , nose -, pytest , numpy +, pytest , python }: buildPythonPackage rec { pname = "Bottleneck"; - version = "1.2.1"; + version = "1.3.1"; src = fetchPypi { inherit pname version; - sha256 = "6efcde5f830aed64feafca0359b51db0e184c72af8ba6675b4a99f263922eb36"; + sha256 = "0a2a94zahl3kqld2n9dm58fvazz9s52sa16nd8yn5jv20hvqc5a5"; }; - checkInputs = [ pytest nose ]; propagatedBuildInputs = [ numpy ]; - checkPhase = '' - py.test -p no:warnings $out/${python.sitePackages} - ''; + postPatch = '' substituteInPlace setup.py --replace "__builtins__.__NUMPY_SETUP__ = False" "" ''; + + checkInputs = [ pytest nose ]; + checkPhase = '' + py.test -p no:warnings $out/${python.sitePackages} + ''; + + meta = with lib; { + description = "Fast NumPy array functions written in C"; + homepage = "https://github.com/pydata/bottleneck"; + license = licenses.bsd2; + maintainers = with maintainers; [ ]; + }; } diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix new file mode 100644 index 000000000000..114625c397ce --- /dev/null +++ b/pkgs/development/python-modules/casbin/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, simpleeval +, isPy27 +, coveralls +}: + +buildPythonPackage rec { + pname = "casbin"; + version = "0.8.3"; + + disabled = isPy27; + + src = fetchFromGitHub { + owner = pname; + repo = "pycasbin"; + rev = "v${version}"; + sha256 = "1s89m62933m4wprsknwhabgg7irykrcimv80hh2zkyyslz5vbq71"; + }; + + propagatedBuildInputs = [ + simpleeval + ]; + + checkInputs = [ + coveralls + ]; + + checkPhase = '' + coverage run -m unittest discover -s tests -t tests + ''; + + meta = with lib; { + description = "An authorization library that supports access control models like ACL, RBAC, ABAC in Python"; + homepage = https://github.com/casbin/pycasbin; + license = licenses.asl20; + maintainers = [ maintainers.costrouc ]; + }; +} diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix index d55595d456f1..a857925d7b76 100644 --- a/pkgs/development/python-modules/dask/default.nix +++ b/pkgs/development/python-modules/dask/default.nix @@ -15,13 +15,13 @@ buildPythonPackage rec { pname = "dask"; - version = "2.6.0"; + version = "2.9.0"; disabled = pythonOlder "3.5"; src = fetchPypi { inherit pname version; - sha256 = "81c7891f0d2e7ac03d1f7fabf1f639360a1db52c03a7155ba9b08e9ee6280f2b"; + sha256 = "1w1hqr8vyx6ygwflj2737dcy0mmgvrc0s602gnny8pzlcbs9m76b"; }; checkInputs = [ pytest ]; diff --git a/pkgs/development/python-modules/gym/default.nix b/pkgs/development/python-modules/gym/default.nix index d90ded1fb5fa..52171470c271 100644 --- a/pkgs/development/python-modules/gym/default.nix +++ b/pkgs/development/python-modules/gym/default.nix @@ -5,11 +5,11 @@ buildPythonPackage rec { pname = "gym"; - version = "0.15.4"; + version = "0.15.3"; src = fetchPypi { inherit pname version; - sha256 = "3b930cbe1c76bbd30455b5e82ba723dea94159a5f988e927f443324bf7cc7ddd"; + sha256 = "18381e13bbd1e2f206a1b88a2af4fb87affd7d06ee7955a6e5e6a79478a9adfc"; }; postPatch = '' diff --git a/pkgs/development/python-modules/gyp/default.nix b/pkgs/development/python-modules/gyp/default.nix index 3cd89a7d0e1e..db828eb222dd 100644 --- a/pkgs/development/python-modules/gyp/default.nix +++ b/pkgs/development/python-modules/gyp/default.nix @@ -1,6 +1,6 @@ { stdenv , buildPythonPackage -, fetchgit +, fetchFromGitiles , isPy3k }: @@ -9,8 +9,8 @@ buildPythonPackage { version = "2015-06-11"; disabled = isPy3k; - src = fetchgit { - url = "https://chromium.googlesource.com/external/gyp.git"; + src = fetchFromGitiles { + url = "https://chromium.googlesource.com/external/gyp"; rev = "fdc7b812f99e48c00e9a487bd56751bbeae07043"; sha256 = "1imgxsl4mr1662vsj2mlnpvvrbz71yk00w8p85vi5bkgmc6awgiz"; }; diff --git a/pkgs/development/python-modules/ics/default.nix b/pkgs/development/python-modules/ics/default.nix index 20fb38b187c0..b642bdf311e1 100644 --- a/pkgs/development/python-modules/ics/default.nix +++ b/pkgs/development/python-modules/ics/default.nix @@ -6,6 +6,7 @@ buildPythonPackage rec { pname = "ics"; version = "0.6"; + disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "C4ptainCrunch"; @@ -15,9 +16,16 @@ buildPythonPackage rec { }; propagatedBuildInputs = [ tatsu arrow ]; - checkInputs = [ pytest-sugar pytestpep8 pytest-flakes pytestcov ]; - disabled = pythonOlder "3.6"; + postPatch = '' + substituteInPlace requirements.txt \ + --replace "arrow>=0.11,<0.15" "arrow" + ''; + + checkInputs = [ pytest-sugar pytestpep8 pytest-flakes pytestcov ]; + checkPhase = '' + pytest + ''; meta = with stdenv.lib; { description = "Pythonic and easy iCalendar library (RFC 5545)"; diff --git a/pkgs/development/python-modules/jaraco_text/default.nix b/pkgs/development/python-modules/jaraco_text/default.nix index 1d6ce78b6859..9b3821edd7a0 100644 --- a/pkgs/development/python-modules/jaraco_text/default.nix +++ b/pkgs/development/python-modules/jaraco_text/default.nix @@ -1,15 +1,31 @@ -{ buildPythonPackage, fetchPypi, setuptools_scm +{ lib, buildPythonPackage, fetchPypi, pythonOlder +, importlib-resources , jaraco_functools +, setuptools_scm }: buildPythonPackage rec { pname = "jaraco.text"; - version = "3.1"; + version = "3.2.0"; + src = fetchPypi { inherit pname version; - sha256 = "0c7effed0f269e8bdae3374a7545763e84c1e7f9777cf2dd2d49eef92eb0d7b7"; + sha256 = "1v0hz3h74m31jlbc5bxwkvrx1h2n7887bajrg1n1c3yc4q8qn1z5"; }; + + nativeBuildInputs =[ setuptools_scm ]; + propagatedBuildInputs = [ + jaraco_functools + ] ++ lib.optional (pythonOlder "3.7") [ importlib-resources ]; + + # no tests in pypi package doCheck = false; - buildInputs =[ setuptools_scm ]; - propagatedBuildInputs = [ jaraco_functools ]; + + meta = with lib; { + description = "Module for text manipulation"; + homepage = "https://github.com/jaraco/jaraco.text"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + }; + } diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix index 6c64580b2cf7..b2731f5bb62a 100644 --- a/pkgs/development/python-modules/mypy/default.nix +++ b/pkgs/development/python-modules/mypy/default.nix @@ -5,19 +5,26 @@ buildPythonPackage rec { pname = "mypy"; - version = "0.740"; + version = "0.750"; + disabled = !isPy3k; + + src = fetchPypi { + inherit pname version; + sha256 = "0k0l74g3jcq7ppzn234sffsaacn6qaq242famckk0cviwgld1jvf"; + }; + + propagatedBuildInputs = [ typed-ast psutil mypy-extensions typing-extensions ]; # Tests not included in pip package. doCheck = false; - src = fetchPypi { - inherit pname version; - sha256 = "48c8bc99380575deb39f5d3400ebb6a8a1cb5cc669bbba4d3bb30f904e0a0e7d"; - }; - - disabled = !isPy3k; - - propagatedBuildInputs = [ typed-ast psutil mypy-extensions typing-extensions ]; + pythonImportsCheck = [ + "mypy" + "mypy.types" + "mypy.api" + "mypy.fastparse" + "mypy.report" + ]; meta = with stdenv.lib; { description = "Optional static typing for Python"; diff --git a/pkgs/development/python-modules/sacremoses/default.nix b/pkgs/development/python-modules/sacremoses/default.nix new file mode 100644 index 000000000000..ef0fcb57dc95 --- /dev/null +++ b/pkgs/development/python-modules/sacremoses/default.nix @@ -0,0 +1,37 @@ +{ buildPythonPackage +, stdenv +, fetchFromGitHub +, click +, six +, tqdm +, joblib +, pytest +}: + +buildPythonPackage rec { + pname = "sacremoses"; + version = "0.0.35"; + + src = fetchFromGitHub { + owner = "alvations"; + repo = pname; + rev = "${version}"; + sha256 = "1gzr56w8yx82mn08wax5m0xyg15ym4ri5l80gmagp8r53443j770"; + }; + + propagatedBuildInputs = [ click six tqdm joblib ]; + + checkInputs = [ pytest ]; + # ignore tests which call to remote host + checkPhase = '' + pytest -k 'not truecase' + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/alvations/sacremoses"; + description = "Python port of Moses tokenizer, truecaser and normalizer"; + license = licenses.lgpl21Plus; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ pashashocky ]; + }; +} diff --git a/pkgs/development/python-modules/sentencepiece/default.nix b/pkgs/development/python-modules/sentencepiece/default.nix new file mode 100644 index 000000000000..ab7a5387c024 --- /dev/null +++ b/pkgs/development/python-modules/sentencepiece/default.nix @@ -0,0 +1,15 @@ +{ buildPythonPackage +, stdenv +, sentencepiece +, pkgconfig +}: + +buildPythonPackage rec { + pname = "sentencepiece"; + inherit (sentencepiece) version src meta; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ sentencepiece ]; + + sourceRoot = "source/python"; +} diff --git a/pkgs/development/python-modules/starfish/default.nix b/pkgs/development/python-modules/starfish/default.nix index 25ce5a0f6515..38934d9497ad 100644 --- a/pkgs/development/python-modules/starfish/default.nix +++ b/pkgs/development/python-modules/starfish/default.nix @@ -85,5 +85,6 @@ buildPythonPackage rec { homepage = https://spacetx-starfish.readthedocs.io/en/latest/; license = licenses.mit; maintainers = [ maintainers.costrouc ]; + broken = true; # incompatible with latest python-dateutil, scikit-image }; } diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix new file mode 100644 index 000000000000..09ebf739d7d7 --- /dev/null +++ b/pkgs/development/python-modules/transformers/default.nix @@ -0,0 +1,41 @@ +{ buildPythonPackage +, stdenv +, fetchFromGitHub +, sacremoses +, requests +, sentencepiece +, boto3 +, tqdm +, regex +, numpy +, pytest +}: + +buildPythonPackage rec { + pname = "transformers"; + version = "2.2.1"; + + src = fetchFromGitHub { + owner = "huggingface"; + repo = pname; + rev = "v${version}"; + sha256 = "1p8p3lhhiyk1xl9gpgq4vbchyz57v3w7hhvsj1r90zs3cckindl8"; + }; + + propagatedBuildInputs = [ numpy sacremoses requests sentencepiece boto3 tqdm regex ]; + + checkInputs = [ pytest ]; + # pretrained tries to download from s3 + checkPhase = '' + cd transformers # avoid importing local files + HOME=$TMPDIR pytest -k 'not pretrained_tokenizers' + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/huggingface/transformers"; + description = "State-of-the-art Natural Language Processing for TensorFlow 2.0 and PyTorch"; + license = licenses.asl20; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ pashashocky ]; + }; +} diff --git a/pkgs/development/ruby-modules/gem/nix-bundle-install.rb b/pkgs/development/ruby-modules/gem/nix-bundle-install.rb index 142d2da9bee2..0d501bd9add7 100644 --- a/pkgs/development/ruby-modules/gem/nix-bundle-install.rb +++ b/pkgs/development/ruby-modules/gem/nix-bundle-install.rb @@ -5,6 +5,7 @@ require 'rubygems/command' require 'fileutils' require 'pathname' require 'tmpdir' +require 'shellwords' if defined?(Encoding.default_internal) Encoding.default_internal = Encoding::UTF_8 @@ -31,7 +32,7 @@ bin_dir = File.join(ENV["out"], "bin") type = ARGV[0] name = ARGV[1] version = ARGV[2] -build_flags = ARGV[3] +build_flags = Shellwords.split(ARGV[3]) if type == "git" uri = ARGV[4] REPO = ARGV[5] @@ -117,7 +118,7 @@ else source = Bundler::Source::Path.new(options) end spec = source.specs.search_all(name).first -Bundler.rubygems.with_build_args [build_flags] do +Bundler.rubygems.with_build_args build_flags do source.install(spec) end diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix index 111c41ea95b3..79dedb3afba1 100644 --- a/pkgs/development/tools/analysis/tflint/default.nix +++ b/pkgs/development/tools/analysis/tflint/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "tflint"; - version = "0.13.2"; + version = "0.13.3"; src = fetchFromGitHub { owner = "terraform-linters"; repo = pname; rev = "v${version}"; - sha256 = "16iv2z4krx8ixifpq0r784xspknmj0bbvhx10mnq97v49j5c03qi"; + sha256 = "13azczm5lg9v5mvf1jx165qy2nj2941qlr9vvxa7q3gqmhxcg271"; }; - modSha256 = "1rk22w4b5iq6fp3jwpcpnb6y2frbrggxkhdm3ipp8c5savq2wbqh"; + modSha256 = "0xckzyfc144bc212amw1n63jkmdljbmj0rq0midr37h6bg5a10q3"; subPackages = [ "." ]; diff --git a/pkgs/development/tools/misc/usb-modeswitch/data.nix b/pkgs/development/tools/misc/usb-modeswitch/data.nix index fb43ff61a81c..d2b80011dea0 100644 --- a/pkgs/development/tools/misc/usb-modeswitch/data.nix +++ b/pkgs/development/tools/misc/usb-modeswitch/data.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "usb-modeswitch-data"; - version = "20170806"; + version = "20191128"; src = fetchurl { url = "http://www.draisberghof.de/usb_modeswitch/${pname}-${version}.tar.bz2"; - sha256 = "0b1wari3aza6qjggqd0hk2zsh93k1q8scgmwh6f8wr0flpr3whff"; + sha256 = "1ygahl3r26r38ai8yyblq9nhf3v5i6n6r6672p5wf88wg5h9n0rz"; }; inherit (usb-modeswitch) makeFlags; diff --git a/pkgs/development/tools/misc/usb-modeswitch/default.nix b/pkgs/development/tools/misc/usb-modeswitch/default.nix index 7c119c929431..a0e1b8eb8ceb 100644 --- a/pkgs/development/tools/misc/usb-modeswitch/default.nix +++ b/pkgs/development/tools/misc/usb-modeswitch/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "usb-modeswitch"; - version = "2.5.2"; + version = "2.6.0"; src = fetchurl { url = "http://www.draisberghof.de/usb_modeswitch/${pname}-${version}.tar.bz2"; - sha256 = "19ifi80g9ns5dmspchjvfj4ykxssq9yrci8m227dgb3yr04srzxb"; + sha256 = "18wbbxc5cfsmikba0msdvd5qlaga27b32nhrzicyd9mdddp265f2"; }; makeFlags = [ diff --git a/pkgs/development/tools/yarn/default.nix b/pkgs/development/tools/yarn/default.nix index 3384dac54100..154b228e0e11 100644 --- a/pkgs/development/tools/yarn/default.nix +++ b/pkgs/development/tools/yarn/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "yarn"; - version = "1.19.2"; + version = "1.21.1"; src = fetchzip { url = "https://github.com/yarnpkg/yarn/releases/download/v${version}/yarn-v${version}.tar.gz"; - sha256 = "05sjf7pgdj3hh92j2xxl683frrkiw1rqxs72z3an4gb83nllvi0n"; + sha256 = "1yw3v62a6309f9hr189870i9jw2a15pkians1nnfjqczzh7r5pih"; }; buildInputs = [ nodejs ]; diff --git a/pkgs/development/web/nodejs/v10.nix b/pkgs/development/web/nodejs/v10.nix index 22887a44aff1..a3b975e3718e 100644 --- a/pkgs/development/web/nodejs/v10.nix +++ b/pkgs/development/web/nodejs/v10.nix @@ -5,6 +5,6 @@ let in buildNodejs { inherit enableNpm; - version = "10.17.0"; - sha256 = "13n5cvb340ba7vwm8il7bjrmpz89h6cibhk9rc3kq9ymdgbnf9j1"; + version = "10.18.0"; + sha256 = "1ppycqffsy7ix6whdp6id7ld1qizwvjlzxyk12kxw4wphjmn49hb"; } diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix index fbec83c387a0..61c433bc0d4c 100644 --- a/pkgs/development/web/nodejs/v12.nix +++ b/pkgs/development/web/nodejs/v12.nix @@ -5,8 +5,8 @@ let in buildNodejs { inherit enableNpm; - version = "12.13.1"; - sha256 = "14mia71sr8p0ibz9g4j5xb5qwmik36qi5nhabjbv0sy2kirkm7il"; + version = "12.14.0"; + sha256 = "0wdyz6fymkf2pfb5bf5ddcza7f2n55p9zqjvq661nr5gl9xj32h8"; patches = stdenv.lib.optionals stdenv.isDarwin [ ./disable-libatomic-darwin.patch ]; } diff --git a/pkgs/misc/cups/drivers/dymo/fix-includes.patch b/pkgs/misc/cups/drivers/dymo/fix-includes.patch index fa7df5591dda..55f71369a001 100644 --- a/pkgs/misc/cups/drivers/dymo/fix-includes.patch +++ b/pkgs/misc/cups/drivers/dymo/fix-includes.patch @@ -65,3 +65,16 @@ diff -rp dymo-cups-drivers-1.4.0.5/src/lw/CupsFilterLabelWriter.h dymo-cups-driv #include #include "LabelWriterDriver.h" #include "LabelWriterLanguageMonitor.h" +diff -rp dymo-cups-drivers-1.4.0.5/src/common/CupsPrintEnvironment.cpp dymo-cups-drivers-1.4.0.5-fix/src/common/CupsPrintEnvironment.cpp +*** dymo-cups-drivers-1.4.0.5/src/common/CupsPrintEnvironment.cpp 2019-12-16 19:37:23.429662838 +0000 +--- dymo-cups-drivers-1.4.0.5-fix/src/common/CupsPrintEnvironment.cpp 2019-12-16 19:41:48.506991614 +0000 +*************** +*** 23,28 **** +--- 23,29 ---- + #include "CupsPrintEnvironment.h" + #include + #include ++ #include + #include + + namespace DymoPrinterDriver diff --git a/pkgs/misc/emulators/mame/default.nix b/pkgs/misc/emulators/mame/default.nix index 499d7dd6c4a2..d98232b10588 100644 --- a/pkgs/misc/emulators/mame/default.nix +++ b/pkgs/misc/emulators/mame/default.nix @@ -1,9 +1,9 @@ -{ stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem +{ stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem, makeWrapper , python, pkgconfig, SDL2, SDL2_ttf, alsaLib, which, qtbase, libXinerama }: let majorVersion = "0"; - minorVersion = "215"; + minorVersion = "216"; desktopItem = makeDesktopItem { name = "MAME"; @@ -12,6 +12,8 @@ let genericName = "MAME is a multi-purpose emulation framework"; categories = "System;Emulator;"; }; + + dest = "$out/opt/mame"; in mkDerivation { pname = "mame"; version = "${majorVersion}.${minorVersion}"; @@ -20,7 +22,7 @@ in mkDerivation { owner = "mamedev"; repo = "mame"; rev = "mame${majorVersion}${minorVersion}"; - sha256 = "1phz846p3zzgzrbfiq2vn79iqar2dbf7iv6wfkrp32sdkkvp7l3h"; + sha256 = "0dmmw08pxxznvadrc51zg27jc9fjh688355w8kxkmi7k8qa367r0"; }; hardeningDisable = [ "fortify" ]; @@ -28,22 +30,35 @@ in mkDerivation { makeFlags = [ "TOOLS=1" ]; + dontWrapQtApps = true; + buildInputs = [ SDL2 SDL2_ttf alsaLib qtbase libXinerama ]; - nativeBuildInputs = [ python pkgconfig which ]; + nativeBuildInputs = [ python pkgconfig which makeWrapper ]; + + # by default MAME assumes that paths with stock resources + # are relative and that you run MAME changing to + # install directory, so we add absolute paths here + patches = [ ./emuopts.patch ]; + + postPatch = '' + substituteInPlace src/emu/emuopts.cpp \ + --subst-var-by mame ${dest} + ''; installPhase = '' - dest=$out/opt/mame - - make -f dist.mak PTR64=${if stdenv.is64bit then "1" else "0"} - mkdir -p $dest - mv build/release/${if stdenv.is64bit then "x64" else "x32"}/Release/mame/* $dest + make -f dist.mak PTR64=${stdenv.lib.optionalString stdenv.is64bit "1"} + mkdir -p ${dest} + mv build/release/*/Release/mame/* ${dest} mkdir -p $out/bin - find $dest -maxdepth 1 -executable -type f -exec mv -t $out/bin {} \; + find ${dest} -maxdepth 1 -executable -type f -exec mv -t $out/bin {} \; + install -Dm755 src/osd/sdl/taputil.sh $out/bin/taputil.sh mkdir -p $out/share/man/man{1,6} - mv $dest/docs/man/*.1 $out/share/man/man1 - mv $dest/docs/man/*.6 $out/share/man/man6 + mv ${dest}/docs/man/*.1 $out/share/man/man1 + mv ${dest}/docs/man/*.6 $out/share/man/man6 + + mv artwork plugins samples ${dest} mkdir -p $out/share ln -s ${desktopItem}/share/applications $out/share diff --git a/pkgs/misc/emulators/mame/emuopts.patch b/pkgs/misc/emulators/mame/emuopts.patch new file mode 100644 index 000000000000..b85291f52f74 --- /dev/null +++ b/pkgs/misc/emulators/mame/emuopts.patch @@ -0,0 +1,29 @@ +diff --git a/src/emu/emuopts.cpp b/src/emu/emuopts.cpp +index c42fcef848..d1bddae060 100644 +--- a/src/emu/emuopts.cpp ++++ b/src/emu/emuopts.cpp +@@ -36,16 +36,16 @@ const options_entry emu_options::s_option_entries[] = + { nullptr, nullptr, OPTION_HEADER, "CORE SEARCH PATH OPTIONS" }, + { OPTION_HOMEPATH, ".", OPTION_STRING, "path to base folder for plugin data (read/write)" }, + { OPTION_MEDIAPATH ";rp;biospath;bp", "roms", OPTION_STRING, "path to ROM sets and hard disk images" }, +- { OPTION_HASHPATH ";hash_directory;hash", "hash", OPTION_STRING, "path to software definition files" }, +- { OPTION_SAMPLEPATH ";sp", "samples", OPTION_STRING, "path to audio sample sets" }, +- { OPTION_ARTPATH, "artwork", OPTION_STRING, "path to artwork files" }, +- { OPTION_CTRLRPATH, "ctrlr", OPTION_STRING, "path to controller definitions" }, +- { OPTION_INIPATH, ".;ini;ini/presets", OPTION_STRING, "path to ini files" }, +- { OPTION_FONTPATH, ".", OPTION_STRING, "path to font files" }, ++ { OPTION_HASHPATH ";hash_directory;hash", "hash;@mame@/hash", OPTION_STRING, "path to software definition files" }, ++ { OPTION_SAMPLEPATH ";sp", "samples;@mame@/samples", OPTION_STRING, "path to audio sample sets" }, ++ { OPTION_ARTPATH, "artwork;@mame@/artwork", OPTION_STRING, "path to artwork files" }, ++ { OPTION_CTRLRPATH, "ctrlr;@mame@/ctrlr", OPTION_STRING, "path to controller definitions" }, ++ { OPTION_INIPATH, ".;ini;ini/presets;@mame@/ini/presets", OPTION_STRING, "path to ini files" }, ++ { OPTION_FONTPATH, ".;@mame@", OPTION_STRING, "path to font files" }, + { OPTION_CHEATPATH, "cheat", OPTION_STRING, "path to cheat files" }, + { OPTION_CROSSHAIRPATH, "crosshair", OPTION_STRING, "path to crosshair files" }, +- { OPTION_PLUGINSPATH, "plugins", OPTION_STRING, "path to plugin files" }, +- { OPTION_LANGUAGEPATH, "language", OPTION_STRING, "path to UI translation files" }, ++ { OPTION_PLUGINSPATH, "plugins;@mame@/plugins", OPTION_STRING, "path to plugin files" }, ++ { OPTION_LANGUAGEPATH, "language;@mame@/language", OPTION_STRING, "path to UI translation files" }, + { OPTION_SWPATH, "software", OPTION_STRING, "path to loose software" }, + + // output directory options diff --git a/pkgs/misc/tmux-plugins/default.nix b/pkgs/misc/tmux-plugins/default.nix index 4b93ec8dff9d..0d10b44ab1e1 100644 --- a/pkgs/misc/tmux-plugins/default.nix +++ b/pkgs/misc/tmux-plugins/default.nix @@ -95,8 +95,8 @@ in rec { pluginName = "ctrlw"; src = fetchgit { url = "https://github.com/eraserhd/tmux-ctrlw"; - rev = "2354b5d56828813d0f7a4b228ca74b6134c2695f"; - sha256 = "00hy1axmki8h2285mivsj923z327xkq89wfl2x4dxc71xjhdl216"; + rev = "b456977125c640cd587b786c6a79cb5c7b0f900d"; + sha256 = "1kv5pqfjczd6z7i9jf6j5xmcai50l9bn5p2p1w1l5fi6cj8cz1k1"; }; }; diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix index 4b06bcb80d24..f1ebc8cb7d9c 100644 --- a/pkgs/misc/vim-plugins/generated.nix +++ b/pkgs/misc/vim-plugins/generated.nix @@ -380,12 +380,12 @@ let coc-java = buildVimPluginFrom2Nix { pname = "coc-java"; - version = "2019-10-31"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "neoclide"; repo = "coc-java"; - rev = "77f7ecd8e6cc0af7a0cf293616b9f66a61a41f44"; - sha256 = "13qhw4gdl5p4imzmgickay6lc4hlnw5fsc46zw5qyqq7p88wgym9"; + rev = "4be4a57ad8f888ef92974ccb6e685358498863f1"; + sha256 = "15175bphaiih5j63bigj5sblcyqjj68g3k81wn7dwgwdpglf1mwf"; }; }; @@ -733,12 +733,12 @@ let csv-vim = buildVimPluginFrom2Nix { pname = "csv-vim"; - version = "2019-12-11"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "chrisbra"; repo = "csv.vim"; - rev = "3128891191d7e363d39cbe70b96281ec8d897bcb"; - sha256 = "1qapfsk4z637rqi9mppac50gliyi957cvl2dfknq0dy856a11274"; + rev = "012cd2637d48aa33541078451d70d66930e03e0f"; + sha256 = "1gaqxhpzskcc28qma6vcjwig8v3q3a8sf7b2ckm14i7cb4c1lyh5"; }; }; @@ -843,12 +843,12 @@ let denite-nvim = buildVimPluginFrom2Nix { pname = "denite-nvim"; - version = "2019-12-13"; + version = "2019-12-16"; src = fetchFromGitHub { owner = "Shougo"; repo = "denite.nvim"; - rev = "13c8542818f418d1207c368f0072072c793f58c1"; - sha256 = "1xrpmrr6wmy88s23j4cxcpsj9wlw7ak48sg3hjqpni9w231kp7a9"; + rev = "35ceadf33e1248caead987fc83f01336b81d98fb"; + sha256 = "1bazm1n2hqgg13yp5gywzghq310qhkbfqg1v42lyvc0gax8dngzj"; }; }; @@ -899,12 +899,12 @@ let deoplete-go = buildVimPluginFrom2Nix { pname = "deoplete-go"; - version = "2019-12-13"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "zchee"; repo = "deoplete-go"; - rev = "a3ac3f53f0af482095ebcf09af8ca1d1edce45bc"; - sha256 = "19xgsm5mbfcpdb0csckbwi83gl3b4wqdn8vchbv8j9faf10qnf2b"; + rev = "dffbe97e48e09e9e1cd3c5fed7365b8117e2df25"; + sha256 = "12p40sr6r9l7ngqynylffpms3cznym12djgbm4448kqcymj2imnz"; fetchSubmodules = true; }; }; @@ -989,12 +989,12 @@ let deoplete-nvim = buildVimPluginFrom2Nix { pname = "deoplete-nvim"; - version = "2019-12-10"; + version = "2019-12-18"; src = fetchFromGitHub { owner = "Shougo"; repo = "deoplete.nvim"; - rev = "e9aad25f28b68581cea2d94400b9fa64b724773b"; - sha256 = "0wy5qapj6hfxj4ir38lb823zsgj6nqhi4r2sv0bm23g25sykg6ry"; + rev = "18681650e81e809cd56e1006cf92cd7f9108266b"; + sha256 = "0rlh97bdmiagrxs9gqjvrimpqcj9w0ys77l0kyxb111zcgcr8s9s"; }; }; @@ -1212,12 +1212,12 @@ let fzf-vim = buildVimPluginFrom2Nix { pname = "fzf-vim"; - version = "2019-11-24"; + version = "2019-12-18"; src = fetchFromGitHub { owner = "junegunn"; repo = "fzf.vim"; - rev = "65edb6ad99b51514aaf29afc25e35ce5f05281ba"; - sha256 = "1d40whzc21c4zbzssjwvhzddyb0a106ib8r4zzzdd61s1935z4xr"; + rev = "f71f4808d966da8be760f94fda131bc7d29f7d8f"; + sha256 = "1l34yz0cwgxsacscmasj634jg6hfhpial4m1a7j9c907ljdkabpr"; }; }; @@ -2027,12 +2027,12 @@ let nord-vim = buildVimPluginFrom2Nix { pname = "nord-vim"; - version = "2019-05-25"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "arcticicestudio"; repo = "nord-vim"; - rev = "9f7ce848723f69e33792e5606091bbfd5739d253"; - sha256 = "1n6kdnll5jh92kfbwwm8544mpp7c2awqsaps91agqjd3nwa5x27x"; + rev = "f06189a4c054fe8c22e46aca4d451e03456f2283"; + sha256 = "0gk4zq0gz3nnwfkldswg9bjpk0gf6d6mgfzcgvj0pnlbja6ass81"; }; }; @@ -2820,12 +2820,12 @@ let typescript-vim = buildVimPluginFrom2Nix { pname = "typescript-vim"; - version = "2019-06-23"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "leafgarland"; repo = "typescript-vim"; - rev = "5a319ea5504e18215d155576c78d1b7fb8e22c8f"; - sha256 = "1hz42blc1sshkms9ramdhzwnphqs26p83q8smw5y14blp1zdb628"; + rev = "2ca6afd1c05e89164bb29aaad82da35d5cf582a3"; + sha256 = "0jvyi4gy9pc2kd0b1yc118f16p1qrjphxvpa0bl7q2rvyk49742s"; }; }; @@ -3150,34 +3150,34 @@ let vim-airline = buildVimPluginFrom2Nix { pname = "vim-airline"; - version = "2019-12-15"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "vim-airline"; repo = "vim-airline"; - rev = "929cf2e21f84e989da2abd9aa5102848db61565b"; - sha256 = "1rp2m5qpc763plybp1arzgrrmn8kg21sgnwac62k98w2s1c0x4jd"; + rev = "98326670b604f522741b02baee82bf25141fbbc4"; + sha256 = "0n7avla6z8dnixbr1rc505yyb4bfc3sr69wnv6fj15j4kkx4k319"; }; }; vim-airline-themes = buildVimPluginFrom2Nix { pname = "vim-airline-themes"; - version = "2019-12-13"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "vim-airline"; repo = "vim-airline-themes"; - rev = "67512f5e81b8ad088a8cbfe8b95f9e495bc81cf3"; - sha256 = "049lnixxcvvnkq5bfwpmclw1k73xyf5gqfpw78rkzsbg9milyr74"; + rev = "1eecd5b1c02c88ad2f8303757f453e2d7f0bd414"; + sha256 = "08rjqjl0v5nsq8nf7ajv60jx41pmc5ym8mjbndlycz22hrsw8aq8"; }; }; vim-android = buildVimPluginFrom2Nix { pname = "vim-android"; - version = "2019-11-01"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "hsanson"; repo = "vim-android"; - rev = "928a7ba76ee7b48a715b397543f21ee28a9959da"; - sha256 = "1cdjjyzmclzc32i1wcc5k67laz75yvi4jj2yc1fxa95bbq9zi0h5"; + rev = "0849bcb6523d17a753fcaff8d40cbeed2d09cf65"; + sha256 = "1z3x72aprp950chk754h0qpf5lxh2svzk39flks5fanxaggkpkng"; }; }; @@ -3502,12 +3502,12 @@ let vim-dirvish = buildVimPluginFrom2Nix { pname = "vim-dirvish"; - version = "2019-11-16"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "justinmk"; repo = "vim-dirvish"; - rev = "4d7b4d4e2db72e95ea03c6ef757b01cbc128179e"; - sha256 = "0ab7ivgkfaji0yl6mcx03nmr304vmdwxwiw0an94fa6wbhk0y9yl"; + rev = "9c12328df924ddb875ee1e5c9fc0f939b62d6a6c"; + sha256 = "1kpkwqrhix7whd00pcbanf3ij55x34cqc6qz3r2xshcmydk5vqxn"; }; }; @@ -3610,6 +3610,17 @@ let }; }; + vim-elm-syntax = buildVimPluginFrom2Nix { + pname = "vim-elm-syntax"; + version = "2019-11-28"; + src = fetchFromGitHub { + owner = "andys8"; + repo = "vim-elm-syntax"; + rev = "7ed55d9bc2c0cfd023d7cc6541634bcbf36430b5"; + sha256 = "1kq7qcw9l41q646a2ilwy94lj1qz9as14aqfmzkbi938yij18zpx"; + }; + }; + vim-eunuch = buildVimPluginFrom2Nix { pname = "vim-eunuch"; version = "2019-11-13"; @@ -3832,12 +3843,12 @@ let vim-go = buildVimPluginFrom2Nix { pname = "vim-go"; - version = "2019-12-16"; + version = "2019-12-18"; src = fetchFromGitHub { owner = "fatih"; repo = "vim-go"; - rev = "0e33a2334d5cafc9754cc78c079ded7efbedc3fa"; - sha256 = "1phsnha6m7h5nd9smjij7xr7v5wqs2dza7bvdy18fjlv0rlfcgzc"; + rev = "9d912c9d908a45f8a583679753a480e6a0461da3"; + sha256 = "1z002n6mryhk2hi0arqyqaiayd6i14w2l5b2bmzj0g8vkk1kr41n"; }; }; @@ -4107,12 +4118,12 @@ let vim-javacomplete2 = buildVimPluginFrom2Nix { pname = "vim-javacomplete2"; - version = "2019-12-07"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "artur-shaik"; repo = "vim-javacomplete2"; - rev = "f2c7ab94d29604128a38cb6626dac03e7cad5418"; - sha256 = "1bgg9jy61ygyrx16n20xvyp1wnqfgk857dc5jw2mwv9iq1hg0lvn"; + rev = "dc7951895a98c49c39622f65cdd7b39374c348bc"; + sha256 = "1d8xiiwfg5wz57jyy7ahbi2bl5sjkhkpkqm2qbhsn7cd9vk36sxy"; }; }; @@ -4317,12 +4328,12 @@ let vim-lsc = buildVimPluginFrom2Nix { pname = "vim-lsc"; - version = "2019-12-16"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "natebosch"; repo = "vim-lsc"; - rev = "64fa57aca10345031fab6db0065cf758f3dc1bdb"; - sha256 = "1cxif26wn7qjplikbfdbkrj94mcpf9fk02gik2qfwicib0p83bfi"; + rev = "0fd38b8a93ab16d380aed8467a5059e5b3932a2e"; + sha256 = "06jz7f5npwm2iknpfmzz5x8lw5377hzc5kpg6n5p2icjwzaha6mz"; }; }; @@ -5142,12 +5153,12 @@ let vim-table-mode = buildVimPluginFrom2Nix { pname = "vim-table-mode"; - version = "2019-12-10"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "dhruvasagar"; repo = "vim-table-mode"; - rev = "5ac34a22dbf70e3c8afd7cc69726cec89655c4ad"; - sha256 = "1rs68islvz2rd3ahgfk06q9ydr3ph25zh4amg8vk1svqhk1vh0mp"; + rev = "0af25d72ebc0271648c8f91c0ce5c59174d2761b"; + sha256 = "1wqfc8bilknz1j1spk3iag99hmz5f1w87v95rb3cyp46ymrf9dcv"; }; }; @@ -5395,12 +5406,12 @@ let vim-visual-multi = buildVimPluginFrom2Nix { pname = "vim-visual-multi"; - version = "2019-11-29"; + version = "2019-12-17"; src = fetchFromGitHub { owner = "mg979"; repo = "vim-visual-multi"; - rev = "7c1934f91b33f64836d0e0d27e08481849831266"; - sha256 = "1ga0skivc5p09d29k4gx2gdisalcl9514062ckddphynqn69ghi9"; + rev = "9b06b851a7e822f3a2604a5d1505e387b62f3827"; + sha256 = "0g1wf5p905y653vl0cxb6idbr8panvj10hwz7hl50dybfc0zky7m"; }; }; diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names index d4fd3e423f6d..3b03976b05e0 100644 --- a/pkgs/misc/vim-plugins/vim-plugin-names +++ b/pkgs/misc/vim-plugins/vim-plugin-names @@ -12,6 +12,7 @@ amiorin/ctrlp-z andreshazard/vim-logreview andsild/peskcolor.vim andviro/flake8-vim +andys8/vim-elm-syntax ap/vim-css-color arcticicestudio/nord-vim artur-shaik/vim-javacomplete2 diff --git a/pkgs/os-specific/linux/chromium-xorg-conf/default.nix b/pkgs/os-specific/linux/chromium-xorg-conf/default.nix index 58038923890b..d9608650ed9d 100644 --- a/pkgs/os-specific/linux/chromium-xorg-conf/default.nix +++ b/pkgs/os-specific/linux/chromium-xorg-conf/default.nix @@ -1,6 +1,6 @@ -{fetchgit }: +{ fetchFromGitiles }: -fetchgit { +fetchFromGitiles { name = "chromium-xorg-conf"; url = "https://chromium.googlesource.com/chromiumos/platform/xorg-conf"; rev = "26fb9d57e195c7e467616b35b17e2b5d279c1514"; diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix index d57953bbb725..ccc2f94814a1 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.14.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.14.158"; + version = "4.14.159"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1cqvr8pgqx005a9qyphqykakzwc54adq8mmdc9sgrxkkw9rfqj8d"; + sha256 = "1wi6m3w40z0v9krb12g9q09s9y471r51rhcv3qa81lc53cx2vm78"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix index 8ac7e720a370..a04156ebd84e 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.19.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.19.89"; + version = "4.19.90"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0ijx8ih91p4g95zpwz6ga3q2x9lf1948xf2v5mz4348byf5hdwv8"; + sha256 = "1zgpbim9019aymvgh0fr5g2r9j2xspw14amlnk09w5mgdl56rn19"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.3.nix b/pkgs/os-specific/linux/kernel/linux-5.3.nix index d384ae67587e..d83f0fb98130 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.3.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.3.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.3.16"; + version = "5.3.18"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "19asdv08rzp33f0zxa2swsfnbhy4zwg06agj7sdnfy4wfkrfwx49"; + sha256 = "133342nv9ddjad2rizmcbilg9rhg339sfqr9l77j4cgkqhblkw90"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix index ea332a246b3e..11cfcae86739 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.4.3"; + version = "5.4.5"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "0lgfg31pgvdhkh9y4y4yh075mlk3qa6npxp7n19yxcg168pnhcb7"; + sha256 = "1h1ynb51gd4kiakqlkcc7vny45j2snbg4j985qf171mszckrz3jn"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix index fb5244e28ea0..3231fc4ac627 100644 --- a/pkgs/os-specific/linux/kernel/linux-libre.nix +++ b/pkgs/os-specific/linux/kernel/linux-libre.nix @@ -1,8 +1,8 @@ { stdenv, lib, fetchsvn, linux , scripts ? fetchsvn { url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/"; - rev = "17112"; - sha256 = "049vmi9q1vrcrq9p1zxj6bhhpkgy8fsyh955b54z3xlw7czng1s1"; + rev = "17119"; + sha256 = "0hyd7wp73w4555d42xcvk4x4nxrfckbzah2ckb4d2aqzxab87789"; } , ... }: diff --git a/pkgs/servers/atlassian/confluence.nix b/pkgs/servers/atlassian/confluence.nix index 4d403e7d9389..a5aead770b8a 100644 --- a/pkgs/servers/atlassian/confluence.nix +++ b/pkgs/servers/atlassian/confluence.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "atlassian-confluence"; - version = "7.0.3"; + version = "7.2.0"; src = fetchurl { url = "https://product-downloads.atlassian.com/software/confluence/downloads/${pname}-${version}.tar.gz"; - sha256 = "1anmhfdy4q74wchzha8fd2bd5hx0a2v3bgp9p5yvb8cal31zqcpd"; + sha256 = "1srwxk9c26hp1j3v6v1hr16l4dqaaiwrli5a9n9a44hkl7qy8yzl"; }; buildPhase = '' @@ -37,8 +37,8 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Team collaboration software written in Java and mainly used in corporate environments"; - homepage = https://www.atlassian.com/software/confluence; + homepage = "https://www.atlassian.com/software/confluence"; license = licenses.unfree; - maintainers = with maintainers; [ fpletz globin ]; + maintainers = with maintainers; [ fpletz globin willibutz ]; }; } diff --git a/pkgs/servers/dns/coredns/default.nix b/pkgs/servers/dns/coredns/default.nix index def78223f127..2c8506ac9d28 100644 --- a/pkgs/servers/dns/coredns/default.nix +++ b/pkgs/servers/dns/coredns/default.nix @@ -1,8 +1,8 @@ -{ stdenv, buildGoPackage, fetchFromGitHub }: +{ stdenv, buildGoModule, fetchFromGitHub }: -buildGoPackage rec { +buildGoModule rec { pname = "coredns"; - version = "1.3.1"; + version = "1.6.6"; goPackagePath = "github.com/coredns/coredns"; @@ -10,15 +10,15 @@ buildGoPackage rec { owner = "coredns"; repo = "coredns"; rev = "v${version}"; - sha256 = "0aflm0c3qcjcq4dy7yx9f5xlvdm4k0b2awsp3qvbfgyp74by0584"; + sha256 = "1x8sgchp0kkk5xdharjrq29qxgv1mdzrw3f12s2kchgqf1m6r0sx"; }; - goDeps = ./deps.nix; + modSha256 = "10ljggg1g5x00gpgzc5m29n1k5akf0s0g3hkdh8adcbrcz0pgr5c"; meta = with stdenv.lib; { - homepage = https://coredns.io; + homepage = "https://coredns.io"; description = "A DNS server that runs middleware"; license = licenses.asl20; - maintainers = [ maintainers.rushmorem maintainers.rtreffer maintainers.deltaevo ]; + maintainers = with maintainers; [ rushmorem rtreffer deltaevo ]; }; } diff --git a/pkgs/servers/dns/coredns/deps.nix b/pkgs/servers/dns/coredns/deps.nix deleted file mode 100644 index 4dd8228c8a6a..000000000000 --- a/pkgs/servers/dns/coredns/deps.nix +++ /dev/null @@ -1,84 +0,0 @@ -[ - { - goPackagePath = "github.com/mholt/caddy"; - fetch = { - type = "git"; - url = "https://github.com/mholt/caddy"; - rev = "v0.11.1"; - sha256 = "0v35d3dy0f88wgk1vzznbx7p15vjjf7xm3qfi2c3192rsxgzvy0l"; - }; - } - { - goPackagePath = "github.com/miekg/dns"; - fetch = { - type = "git"; - url = "https://github.com/miekg/dns"; - rev = "v1.1.3"; - sha256 = "1xs1k9jm9f04y8callww9x4s0jrxmsn7882iyy4br8sbpl3wzkw4"; - }; - } - { - goPackagePath = "github.com/prometheus/client_golang"; - fetch = { - type = "git"; - url = "https://github.com/prometheus/client_golang"; - rev = "v0.9.1"; - sha256 = "01gnylazia30pcp069xcng482gwmm3xcx5zgrlwdkhic1lyb6i9l"; - }; - } - # client_golang dependencies - { - goPackagePath = "github.com/beorn7/perks"; - fetch = { - type = "git"; - url = "https://github.com/beorn7/perks"; - rev = "3a771d992973f24aa725d07868b467d1ddfceafb"; - sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3"; - }; - } - { - goPackagePath = "github.com/golang/protobuf"; - fetch = { - type = "git"; - url = "https://github.com/golang/protobuf"; - rev = "347cf4a86c1cb8d262994d8ef5924d4576c5b331"; - sha256 = "0c5j5c2dnj1452653c8nnpx4jwijwafi1p8685g7ddm6kng9q1wz"; - }; - } - { - goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; - fetch = { - type = "git"; - url = "https://github.com/matttproud/golang_protobuf_extensions"; - rev = "c182affec369e30f25d3eb8cd8a478dee585ae7d"; - sha256 = "1xqsf9vpcrd4hp95rl6kgmjvkv1df4aicfw4l5vfcxcwxknfx2xs"; - }; - } - { - goPackagePath = "github.com/prometheus/client_model"; - fetch = { - type = "git"; - url = "https://github.com/prometheus/client_model"; - rev = "56726106282f1985ea77d5305743db7231b0c0a8"; - sha256 = "19y4qs9mkxiiab5sh3b7cccjpl3xbp6sy8812ig9f1zg8vzkzj7j"; - }; - } - { - goPackagePath = "github.com/prometheus/common"; - fetch = { - type = "git"; - url = "https://github.com/prometheus/common"; - rev = "2998b132700a7d019ff618c06a234b47c1f3f681"; - sha256 = "131qmx0rs1nz0ci3qzkks4i6fdmr5c69i48h5cngjizlb9xxwir2"; - }; - } - { - goPackagePath = "github.com/prometheus/procfs"; - fetch = { - type = "git"; - url = "https://github.com/prometheus/procfs"; - rev = "bf6a532e95b1f7a62adf0ab5050a5bb2237ad2f4"; - sha256 = "0k65i2ikf3jp6863mpc1raf928i78r8jd7zn9djx6f4izls6l6j1"; - }; - } -] diff --git a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix index 4184771f8a80..71a5c20dea3d 100644 --- a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix +++ b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "dovecot-pigeonhole"; - version = "0.5.8"; + version = "0.5.9"; src = fetchurl { url = "https://pigeonhole.dovecot.org/releases/2.3/dovecot-2.3-pigeonhole-${version}.tar.gz"; - sha256 = "08lhfl877xm790f1mqdhvz74xqr2kkl8wpz2m6p0j6hv1kan1f4g"; + sha256 = "01dxidrnmrr2gqggfsgkfxa6ynvyjyw13xw32gi86yqmwnm6inin"; }; buildInputs = [ dovecot openssl ]; diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix index 72e3b5fc0e82..db61fd5568e8 100644 --- a/pkgs/servers/matrix-synapse/default.nix +++ b/pkgs/servers/matrix-synapse/default.nix @@ -23,11 +23,11 @@ let in buildPythonApplication rec { pname = "matrix-synapse"; - version = "1.7.0"; + version = "1.7.1"; src = fetchPypi { inherit pname version; - sha256 = "1z7q34yazjb3glzhm0si0pzif32gnp03bmd490gckkl30rklyxsp"; + sha256 = "1aix4n4nk90xh6y3w3gvq3wzvykzz7mhj9isl437nid7mf9mcj6n"; }; patches = [ diff --git a/pkgs/servers/monitoring/alertmanager-bot/default.nix b/pkgs/servers/monitoring/alertmanager-bot/default.nix new file mode 100644 index 000000000000..8677a8d03f26 --- /dev/null +++ b/pkgs/servers/monitoring/alertmanager-bot/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "alertmanager-bot"; + version = "0.4.0"; + + goPackagePath = "github.com/metalmatze/alertmanager-bot"; + + src = fetchFromGitHub { + owner = "metalmatze"; + repo = pname; + rev = version; + sha256 = "10v0fxxcs5s6zmqindr30plyw7p2yg0a64rdw1b2cj2mc1m3byx3"; + }; + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + description = "Bot for Prometheus' Alertmanager"; + homepage = "https://github.com/metalmatze/alertmanager-bot"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ mmahut ]; + }; +} diff --git a/pkgs/servers/monitoring/alertmanager-bot/deps.nix b/pkgs/servers/monitoring/alertmanager-bot/deps.nix new file mode 100644 index 000000000000..51e98ccbc936 --- /dev/null +++ b/pkgs/servers/monitoring/alertmanager-bot/deps.nix @@ -0,0 +1,948 @@ +# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) +[ + { + goPackagePath = "github.com/DataDog/datadog-go"; + fetch = { + type = "git"; + url = "https://github.com/DataDog/datadog-go"; + rev = "0ddda6bee211"; + sha256 = "07ap1qhz8vwdypmlny5gxnc191c0qbm6acacs30m1d4p22x6wxip"; + }; + } + { + goPackagePath = "github.com/OneOfOne/xxhash"; + fetch = { + type = "git"; + url = "https://github.com/OneOfOne/xxhash"; + rev = "v1.2.5"; + sha256 = "15ai4nzm8cv8nqs4xm5h6ghnms19c2sp8z0zpkc46rld6y7k0xky"; + }; + } + { + goPackagePath = "github.com/alecthomas/template"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/template"; + rev = "a0175ee3bccc"; + sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj"; + }; + } + { + goPackagePath = "github.com/alecthomas/units"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/units"; + rev = "2efee857e7cf"; + sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl"; + }; + } + { + goPackagePath = "github.com/armon/circbuf"; + fetch = { + type = "git"; + url = "https://github.com/armon/circbuf"; + rev = "bbbad097214e"; + sha256 = "1idpr0lzb2px2p3wgfq2276yl7jpaz43df6n91kf790404s4zmk3"; + }; + } + { + goPackagePath = "github.com/armon/go-metrics"; + fetch = { + type = "git"; + url = "https://github.com/armon/go-metrics"; + rev = "f0300d1749da"; + sha256 = "13l7c35ps0r27vxfil2w0xhhc7w5rh00awvlmn4cz0a937b9ffpv"; + }; + } + { + goPackagePath = "github.com/armon/go-radix"; + fetch = { + type = "git"; + url = "https://github.com/armon/go-radix"; + rev = "7fddfc383310"; + sha256 = "0y8chspn14n9xpsfb9gxnnf819rfpriaz64v81p7873a42kkhxb4"; + }; + } + { + goPackagePath = "github.com/beorn7/perks"; + fetch = { + type = "git"; + url = "https://github.com/beorn7/perks"; + rev = "v1.0.1"; + sha256 = "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7"; + }; + } + { + goPackagePath = "github.com/bgentry/speakeasy"; + fetch = { + type = "git"; + url = "https://github.com/bgentry/speakeasy"; + rev = "v0.1.0"; + sha256 = "02dfrj0wyphd3db9zn2mixqxwiz1ivnyc5xc7gkz58l5l27nzp8s"; + }; + } + { + goPackagePath = "github.com/boltdb/bolt"; + fetch = { + type = "git"; + url = "https://github.com/boltdb/bolt"; + rev = "v1.3.1"; + sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r"; + }; + } + { + goPackagePath = "github.com/cenkalti/backoff"; + fetch = { + type = "git"; + url = "https://github.com/cenkalti/backoff"; + rev = "v2.1.1"; + sha256 = "1mf4lsl3rbb8kk42x0mrhzzy4ikqy0jf6nxpzhkr02rdgwh6rjk8"; + }; + } + { + goPackagePath = "github.com/cespare/xxhash"; + fetch = { + type = "git"; + url = "https://github.com/cespare/xxhash"; + rev = "v1.0.0"; + sha256 = "02aii7z46sasagw816zz3v0gzax1z5d1hkjslz7ng25386p0gzk1"; + }; + } + { + goPackagePath = "github.com/circonus-labs/circonus-gometrics"; + fetch = { + type = "git"; + url = "https://github.com/circonus-labs/circonus-gometrics"; + rev = "v2.0.0"; + sha256 = "0d6cnswq28mjak7092vf89f9l0ga2ziwyamq9kdgfc7aavpwr6l9"; + }; + } + { + goPackagePath = "github.com/circonus-labs/circonusllhist"; + fetch = { + type = "git"; + url = "https://github.com/circonus-labs/circonusllhist"; + rev = "6e85b9352cf0"; + sha256 = "182gry1clk12m34574qif7bx74qpxib2zv0mr5kv2j9hfq7f9m01"; + }; + } + { + goPackagePath = "github.com/creack/pty"; + fetch = { + type = "git"; + url = "https://github.com/creack/pty"; + rev = "v1.1.7"; + sha256 = "1plwwlk1i9b80zv8zdplvv81shfyc9gf0flydnydsh5sr3ib5vrc"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/docker/libkv"; + fetch = { + type = "git"; + url = "https://github.com/docker/libkv"; + rev = "v0.2.1"; + sha256 = "0blq7kxjy1bvm3j5q4i6csnc4i88c1wvj4gjvxbqfk3sny73gjkr"; + }; + } + { + goPackagePath = "github.com/fatih/color"; + fetch = { + type = "git"; + url = "https://github.com/fatih/color"; + rev = "v1.7.0"; + sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv"; + }; + } + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "v1.4.7"; + sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g"; + }; + } + { + goPackagePath = "github.com/go-kit/kit"; + fetch = { + type = "git"; + url = "https://github.com/go-kit/kit"; + rev = "v0.8.0"; + sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0"; + }; + } + { + goPackagePath = "github.com/go-logfmt/logfmt"; + fetch = { + type = "git"; + url = "https://github.com/go-logfmt/logfmt"; + rev = "v0.3.0"; + sha256 = "1gkgh3k5w1xwb2qbjq52p6azq3h1c1rr6pfwjlwj1zrijpzn2xb9"; + }; + } + { + goPackagePath = "github.com/go-stack/stack"; + fetch = { + type = "git"; + url = "https://github.com/go-stack/stack"; + rev = "v1.8.0"; + sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v"; + }; + } + { + goPackagePath = "github.com/gogo/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/gogo/protobuf"; + rev = "v1.1.1"; + sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "v1.3.2"; + sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym"; + }; + } + { + goPackagePath = "github.com/google/btree"; + fetch = { + type = "git"; + url = "https://github.com/google/btree"; + rev = "4030bb1f1f0c"; + sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6"; + }; + } + { + goPackagePath = "github.com/google/go-cmp"; + fetch = { + type = "git"; + url = "https://github.com/google/go-cmp"; + rev = "v0.3.1"; + sha256 = "1caw49i0plkjxir7kdf5qhwls3krqwfmi7g4h392rdfwi3kfahx1"; + }; + } + { + goPackagePath = "github.com/google/gofuzz"; + fetch = { + type = "git"; + url = "https://github.com/google/gofuzz"; + rev = "v1.0.0"; + sha256 = "0qz439qvccm91w0mmjz4fqgx48clxdwagkvvx89cr43q1d4iry36"; + }; + } + { + goPackagePath = "github.com/hako/durafmt"; + fetch = { + type = "git"; + url = "https://github.com/hako/durafmt"; + rev = "ea3ab126a649"; + sha256 = "1niq0v6av5vsn4rizfda4zq922jvavig5b0qg9g0gyz6cj62rjzs"; + }; + } + { + goPackagePath = "github.com/hashicorp/consul"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/consul"; + rev = "v1.4.5"; + sha256 = "0gpg3cbpsmzcaab3scqhpzz57892s95hwq5z0l9bq7qqm6iqfr9d"; + }; + } + { + goPackagePath = "github.com/hashicorp/errwrap"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/errwrap"; + rev = "v1.0.0"; + sha256 = "0slfb6w3b61xz04r32bi0a1bygc82rjzhqkxj2si2074wynqnr1c"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-cleanhttp"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-cleanhttp"; + rev = "3573b8b52aa7"; + sha256 = "1pbl6p7w5wp1c70x7fp94h4ynk2ajfa76rqin3d2hq1w2fcb7byr"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-immutable-radix"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-immutable-radix"; + rev = "v1.0.0"; + sha256 = "1v3nmsnk1s8bzpclrhirz7iq0g5xxbw9q5gvrg9ss6w9crs72qr6"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-msgpack"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-msgpack"; + rev = "v0.5.5"; + sha256 = "0fqmfx3dxnvb0d23cpn2xpd067pibwlchdc58ln8w6lznzrbzaan"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-multierror"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-multierror"; + rev = "v1.0.0"; + sha256 = "00nyn8llqzbfm8aflr9kwsvpzi4kv8v45c141v88xskxp5xf6z49"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-retryablehttp"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-retryablehttp"; + rev = "794af36148bf"; + sha256 = "1686d4qav0ayj3f5881w3kd9pz4fxsmknfqwccbj9yklxm3khvp4"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-rootcerts"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-rootcerts"; + rev = "v1.0.1"; + sha256 = "0ca5h7vlvrghf24dzh8l6w5px293n173qxfkjxb9kgsl6hsrsl3y"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-sockaddr"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-sockaddr"; + rev = "v1.0.2"; + sha256 = "0y106nhd3s63lj7h7k21iq0br97h0z9qjrvx028zqcsq9407k9is"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-syslog"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-syslog"; + rev = "v1.0.0"; + sha256 = "09vccqggz212cg0jir6vv708d6mx0f9w5bxrcdah3h6chgmal6v1"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-uuid"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-uuid"; + rev = "v1.0.1"; + sha256 = "0jvb88m0rq41bwgirsadgw7mnayl27av3gd2vqa3xvxp3fy0hp5k"; + }; + } + { + goPackagePath = "github.com/hashicorp/golang-lru"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/golang-lru"; + rev = "v0.5.3"; + sha256 = "1p2igd58xkm8yaj2c2wxiplkf2hj6kxwrg6ss7mx61s5rd71v5xb"; + }; + } + { + goPackagePath = "github.com/hashicorp/logutils"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/logutils"; + rev = "v1.0.0"; + sha256 = "076wf4sh5p3f953ndqk1cc0x7jhmlqrxak9953rz79rcdw77rjvv"; + }; + } + { + goPackagePath = "github.com/hashicorp/mdns"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/mdns"; + rev = "v1.0.1"; + sha256 = "185zpyj1jf1jm7hihg73gqnspr0a359aqwv11v4a6mwd5bkdh19j"; + }; + } + { + goPackagePath = "github.com/hashicorp/memberlist"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/memberlist"; + rev = "v0.1.4"; + sha256 = "0l9qx8j7mm00ia6m41zbn39z7p77jjf95zph2nw8j2vihm56q9ql"; + }; + } + { + goPackagePath = "github.com/hashicorp/serf"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/serf"; + rev = "v0.8.3"; + sha256 = "0isaq2m08rpwvlzd72gvy3caapkrzgr9cwizl99ainsjgj2nkds9"; + }; + } + { + goPackagePath = "github.com/hashicorp/uuid"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/uuid"; + rev = "ebb0a03e909c"; + sha256 = "0bzqr8y81h96cw299lhc5nxi9203a7xpd7csjsm6rh4k1bx4hdlf"; + }; + } + { + goPackagePath = "github.com/hashicorp/yamux"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/yamux"; + rev = "f5742cb6b856"; + sha256 = "1k9b399ljsp443s1v69c1m5jqdiw1998ryz4b4lh86nkz775ws5s"; + }; + } + { + goPackagePath = "github.com/hpcloud/tail"; + fetch = { + type = "git"; + url = "https://github.com/hpcloud/tail"; + rev = "v1.0.0"; + sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0"; + }; + } + { + goPackagePath = "github.com/joho/godotenv"; + fetch = { + type = "git"; + url = "https://github.com/joho/godotenv"; + rev = "v1.3.0"; + sha256 = "0ri8if0pc3x6jg4c3i8wr58xyfpxkwmcjk3rp8gb398a1aa3gpjm"; + }; + } + { + goPackagePath = "github.com/json-iterator/go"; + fetch = { + type = "git"; + url = "https://github.com/json-iterator/go"; + rev = "v1.1.7"; + sha256 = "0n79p4s67zl5zprxv7diayw3vavnmmfqkmd6snz0i9bxp825dsyz"; + }; + } + { + goPackagePath = "github.com/julienschmidt/httprouter"; + fetch = { + type = "git"; + url = "https://github.com/julienschmidt/httprouter"; + rev = "v1.2.0"; + sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666"; + }; + } + { + goPackagePath = "github.com/konsorten/go-windows-terminal-sequences"; + fetch = { + type = "git"; + url = "https://github.com/konsorten/go-windows-terminal-sequences"; + rev = "v1.0.2"; + sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7"; + }; + } + { + goPackagePath = "github.com/kr/logfmt"; + fetch = { + type = "git"; + url = "https://github.com/kr/logfmt"; + rev = "b84e30acd515"; + sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9"; + }; + } + { + goPackagePath = "github.com/kr/pretty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pretty"; + rev = "v0.1.0"; + sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"; + }; + } + { + goPackagePath = "github.com/kr/pty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pty"; + rev = "v1.1.8"; + sha256 = "1vcl6f90n0f8s8b4fyh0832ilybjqcypqyj233lqj1hx62fvgdbk"; + }; + } + { + goPackagePath = "github.com/kr/text"; + fetch = { + type = "git"; + url = "https://github.com/kr/text"; + rev = "v0.1.0"; + sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"; + }; + } + { + goPackagePath = "github.com/kylelemons/godebug"; + fetch = { + type = "git"; + url = "https://github.com/kylelemons/godebug"; + rev = "v1.1.0"; + sha256 = "0dkk3friykg8p6wgqryx6745ahhb9z1j740k7px9dac6v5xjp78c"; + }; + } + { + goPackagePath = "github.com/mattn/go-colorable"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-colorable"; + rev = "v0.0.9"; + sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "v0.0.9"; + sha256 = "0i3km37lajahh1y2392g4hpgvq05arcgiiv93yhzxxyv0fpqj72m"; + }; + } + { + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + fetch = { + type = "git"; + url = "https://github.com/matttproud/golang_protobuf_extensions"; + rev = "v1.0.1"; + sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"; + }; + } + { + goPackagePath = "github.com/miekg/dns"; + fetch = { + type = "git"; + url = "https://github.com/miekg/dns"; + rev = "v1.0.15"; + sha256 = "051f51fyrsnj69j9ni9j72acqnrvvzqda4l831ijffy5h5jdl8f2"; + }; + } + { + goPackagePath = "github.com/mitchellh/cli"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/cli"; + rev = "v1.0.0"; + sha256 = "1i9kmr7rcf10d2hji8h4247hmc0nbairv7a0q51393aw2h1bnwg2"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "v1.1.0"; + sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-testing-interface"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-testing-interface"; + rev = "v1.0.0"; + sha256 = "1dl2js8di858bawg7dadlf1qjpkl2g3apziihjyf5imri3znyfpw"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-wordwrap"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-wordwrap"; + rev = "v1.0.0"; + sha256 = "1jffbwcr3nnq6c12c5856bwzv2nxjzqk3jwgvxkwi1xhpd2by0bf"; + }; + } + { + goPackagePath = "github.com/mitchellh/hashstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/hashstructure"; + rev = "2bca23e0e452"; + sha256 = "0vpacsls26474wya360fjhzi6l4y8s8s251c4szvqxh17n5f5gk1"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "d0303fe80992"; + sha256 = "1fjwi5ghc1ibyx93apz31n4hj6gcq1hzismpdfbg2qxwshyg0ya8"; + }; + } + { + goPackagePath = "github.com/modern-go/concurrent"; + fetch = { + type = "git"; + url = "https://github.com/modern-go/concurrent"; + rev = "bacd9c7ef1dd"; + sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs"; + }; + } + { + goPackagePath = "github.com/modern-go/reflect2"; + fetch = { + type = "git"; + url = "https://github.com/modern-go/reflect2"; + rev = "v1.0.1"; + sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf"; + }; + } + { + goPackagePath = "github.com/mwitkow/go-conntrack"; + fetch = { + type = "git"; + url = "https://github.com/mwitkow/go-conntrack"; + rev = "cc309e4a2223"; + sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf"; + }; + } + { + goPackagePath = "github.com/oklog/run"; + fetch = { + type = "git"; + url = "https://github.com/oklog/run"; + rev = "v1.0.0"; + sha256 = "1pbjza4claaj95fpqvvfrysvs10y7dm0pl6qr5lzh6qy1vnhmcgw"; + }; + } + { + goPackagePath = "github.com/onsi/ginkgo"; + fetch = { + type = "git"; + url = "https://github.com/onsi/ginkgo"; + rev = "v1.6.0"; + sha256 = "0x0gc89vgq38xhgmi2h22bhr73cf2gmk42g89nz89k8dgg9hhr25"; + }; + } + { + goPackagePath = "github.com/onsi/gomega"; + fetch = { + type = "git"; + url = "https://github.com/onsi/gomega"; + rev = "v1.4.3"; + sha256 = "1c8rqg5i2hz3snmq7s41yar1zjnzilb0fyiyhkg83v97afcfx79v"; + }; + } + { + goPackagePath = "github.com/pascaldekloe/goe"; + fetch = { + type = "git"; + url = "https://github.com/pascaldekloe/goe"; + rev = "v0.1.0"; + sha256 = "1dqd3mfb4z2vmv6pg6fhgvfc53vhndk24wcl9lj1rz02n6m279fq"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "v0.8.1"; + sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "v1.0.0"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/posener/complete"; + fetch = { + type = "git"; + url = "https://github.com/posener/complete"; + rev = "v1.1.2"; + sha256 = "02xrnfkk9r2jarna8jqfkksrn469jdap716037zq84waq3d5xk3l"; + }; + } + { + goPackagePath = "github.com/prometheus/alertmanager"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/alertmanager"; + rev = "v0.9.1"; + sha256 = "1lkfj63pp4jf58xmn015r7s42p1wyj6fryihpmdn0k76b0ccwqzj"; + }; + } + { + goPackagePath = "github.com/prometheus/client_golang"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_golang"; + rev = "v0.9.4"; + sha256 = "0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p"; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "fd36f4220a90"; + sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5"; + }; + } + { + goPackagePath = "github.com/prometheus/common"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/common"; + rev = "v0.4.1"; + sha256 = "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"; + }; + } + { + goPackagePath = "github.com/prometheus/procfs"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/procfs"; + rev = "v0.0.3"; + sha256 = "18c4m795fwng8f8qa395f3crvamlbk5y5afk8b5rzyisnmjq774y"; + }; + } + { + goPackagePath = "github.com/ryanuber/columnize"; + fetch = { + type = "git"; + url = "https://github.com/ryanuber/columnize"; + rev = "v2.1.0"; + sha256 = "0m9jhagb1k44zfcdai76xdf9vpi3bqdl7p078ffyibmz0z9jfap6"; + }; + } + { + goPackagePath = "github.com/satori/go.uuid"; + fetch = { + type = "git"; + url = "https://github.com/satori/go.uuid"; + rev = "v1.1.0"; + sha256 = "1nbydsmjr60904kz5d46nib0zid5kcv4gk9wayi44gn5wlzz80zp"; + }; + } + { + goPackagePath = "github.com/sean-/seed"; + fetch = { + type = "git"; + url = "https://github.com/sean-/seed"; + rev = "e2103e2c3529"; + sha256 = "0glir8jxi1w7aga2jwdb63pp1h8q4whknili7xixsqzwyy716125"; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "v1.2.0"; + sha256 = "0r6334x2bls8ddznvzaldx4g88msjjns4mlks95rqrrg7h0ijigg"; + }; + } + { + goPackagePath = "github.com/spaolacci/murmur3"; + fetch = { + type = "git"; + url = "https://github.com/spaolacci/murmur3"; + rev = "v1.1.0"; + sha256 = "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.1.1"; + sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.3.0"; + sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy"; + }; + } + { + goPackagePath = "github.com/tucnak/telebot"; + fetch = { + type = "git"; + url = "https://github.com/tucnak/telebot"; + rev = "00cebf376d79"; + sha256 = "0yay3h7gp6yag8jbapbq10vhmszad7svn68nnq5yp6pl1hmykzd6"; + }; + } + { + goPackagePath = "github.com/weaveworks/mesh"; + fetch = { + type = "git"; + url = "https://github.com/weaveworks/mesh"; + rev = "f74318fb713b"; + sha256 = "093j5i7wrkq1g92xaprd0rlfv9i74381wns4941bhbp6x6ahdcz7"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "45a5f77698d3"; + sha256 = "0636jjj89wkzqchajwwzgcn4aafc334p70nawh9jzavg2mkx0ch4"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "891ebc4b82d6"; + sha256 = "1rgw5gl2lc6bkmsx0fak84s6zdc1bhzfxgqg4mg4yh5hlnhpwrki"; + }; + } + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "37e7f081c4d4"; + sha256 = "1bb0mw6ckb1k7z8v3iil2qlqwfj408fvvp8m1cik2b46p7snyjhm"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "fde4db37ae7a"; + sha256 = "16k4w4pzziq1kln18k5fg01qgk4hpzb5xsm7175kaky6d6gwyhg3"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "v0.3.2"; + sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; + }; + } + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/tools"; + rev = "90fa682c2a6e"; + sha256 = "03ic2xsy51jw9749wl7gszdbz99iijbd2bckgygl6cm9w5m364ak"; + }; + } + { + goPackagePath = "google.golang.org/appengine"; + fetch = { + type = "git"; + url = "https://github.com/golang/appengine"; + rev = "v1.1.0"; + sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x"; + }; + } + { + goPackagePath = "gopkg.in/airbrake/gobrake.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/airbrake/gobrake.v2"; + rev = "v2.0.9"; + sha256 = "1x06f7n7qlyzqgyz0sdfcidf3w4ldn6zs6qx2mhibggk2z4whcjw"; + }; + } + { + goPackagePath = "gopkg.in/alecthomas/kingpin.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/alecthomas/kingpin.v2"; + rev = "v2.2.6"; + sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r"; + }; + } + { + goPackagePath = "gopkg.in/check.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/check.v1"; + rev = "788fd7840127"; + sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"; + }; + } + { + goPackagePath = "gopkg.in/fsnotify.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/fsnotify.v1"; + rev = "v1.4.7"; + sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g"; + }; + } + { + goPackagePath = "gopkg.in/gemnasium/logrus-airbrake-hook.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/gemnasium/logrus-airbrake-hook.v2"; + rev = "v2.1.2"; + sha256 = "0sbg0dn6cysmf8f2bi209jwl4jnpiwp4rdghnxlzirw3c32ms5y5"; + }; + } + { + goPackagePath = "gopkg.in/tomb.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/tomb.v1"; + rev = "dd632973f1e7"; + sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv"; + }; + } + { + goPackagePath = "gopkg.in/vmihailenco/msgpack.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/vmihailenco/msgpack.v2"; + rev = "v2.9.1"; + sha256 = "0ah9j7i97ifyqhiscq8d43gcrhksb3bx83s2p1nyfi1bxw78jwfi"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "v2.2.2"; + sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; + }; + } +] diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix index ad99163f4c6d..97377c9fff0d 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 = "2019-12-07"; + version = "2019-12-18"; pname = "oh-my-zsh"; - rev = "664664f6cd8a1c02a38063c8f2104f0515a19399"; + rev = "7dddfe0a39b75acbe265c47b6d1dc575d6dedd9f"; src = fetchgit { inherit rev; url = "https://github.com/ohmyzsh/ohmyzsh"; - sha256 = "0d9x4fp9hxyk3h4jlq74v5k9xyngcx1g45aihikyj6fzqk2h1pax"; + sha256 = "14p723ax6l24kwi72dwl3zjd7907p0f38bdhwk527fpihm7vgrj0"; }; pathsToLink = [ "/share/oh-my-zsh" ]; diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 6bd6a9bf41ef..21ae809a2225 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -67,7 +67,7 @@ let isUnfree (lib.lists.toList attrs.meta.license) && !allowUnfreePredicate attrs; - allowInsecureDefaultPredicate = x: builtins.elem x.name (config.permittedInsecurePackages or []); + allowInsecureDefaultPredicate = x: builtins.elem (getName x) (config.permittedInsecurePackages or []); allowInsecurePredicate = x: (config.allowInsecurePredicate or allowInsecureDefaultPredicate) x; hasAllowedInsecure = attrs: diff --git a/pkgs/tools/backup/restic/default.nix b/pkgs/tools/backup/restic/default.nix index b78fc9b61f74..26f05d419545 100644 --- a/pkgs/tools/backup/restic/default.nix +++ b/pkgs/tools/backup/restic/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "restic"; - version = "0.9.5"; + version = "0.9.6"; goPackagePath = "github.com/restic/restic"; @@ -10,7 +10,7 @@ buildGoPackage rec { owner = "restic"; repo = "restic"; rev = "v${version}"; - sha256 = "1bhn3xwlycpnjg2qbqblwxn3apj43lr5cakgkmrblk13yfwfv5xv"; + sha256 = "0lydll93n1lcn1fl669b9cikmzz9d6vfpc8ky3ng5fi8kj3v1dz7"; }; buildPhase = '' diff --git a/pkgs/tools/inputmethods/fusuma/Gemfile.lock b/pkgs/tools/inputmethods/fusuma/Gemfile.lock index 4038b50b44fe..c35e7658d635 100644 --- a/pkgs/tools/inputmethods/fusuma/Gemfile.lock +++ b/pkgs/tools/inputmethods/fusuma/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - fusuma (0.10.2) + fusuma (1.3.0) PLATFORMS ruby @@ -10,4 +10,4 @@ DEPENDENCIES fusuma BUNDLED WITH - 1.16.3 + 1.17.3 diff --git a/pkgs/tools/inputmethods/fusuma/default.nix b/pkgs/tools/inputmethods/fusuma/default.nix index b410a21cd6ba..a8901dfb0e43 100644 --- a/pkgs/tools/inputmethods/fusuma/default.nix +++ b/pkgs/tools/inputmethods/fusuma/default.nix @@ -16,9 +16,9 @@ bundlerApp { meta = with lib; { description = "Multitouch gestures with libinput driver on X11, Linux"; - homepage = https://github.com/iberianpig/fusuma; - license = licenses.mit; - maintainers = with maintainers; [ jfrankenau nicknovitski ]; - platforms = platforms.linux; + homepage = "https://github.com/iberianpig/fusuma"; + license = licenses.mit; + maintainers = with maintainers; [ jfrankenau nicknovitski filalex77 ]; + platforms = platforms.linux; }; } diff --git a/pkgs/tools/inputmethods/fusuma/gemset.nix b/pkgs/tools/inputmethods/fusuma/gemset.nix index 2edf9c0886f0..2dd9af421ba9 100644 --- a/pkgs/tools/inputmethods/fusuma/gemset.nix +++ b/pkgs/tools/inputmethods/fusuma/gemset.nix @@ -1,10 +1,12 @@ { fusuma = { + groups = ["default"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0hj64kafxj29gk53vj2syhs3vdywl3h9cpiknaqqm4srjx9g04a0"; + sha256 = "150jc8jyqj3w4k13lf1ihqmm2sld1yawp4jwnf43jixnc9rmzx6f"; type = "gem"; }; - version = "0.10.2"; + version = "1.3.0"; }; } \ No newline at end of file diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix index f37283617204..516badb7bc78 100644 --- a/pkgs/tools/misc/fluent-bit/default.nix +++ b/pkgs/tools/misc/fluent-bit/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "fluent-bit"; - version = "1.3.4"; + version = "1.3.5"; src = fetchFromGitHub { owner = "fluent"; repo = "fluent-bit"; rev = "v${version}"; - sha256 = "01iy8xgsyc1clhpik4nmkxw6xnblzswvn35qz4h4p5sw97c4iwq8"; + sha256 = "0xwh8fnvahcyygz0ydi4pdzgsyvjaphwl3f2ccdas52fbirwnicn"; }; nativeBuildInputs = [ cmake flex bison ]; diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix index 828d61ca43c9..0a7541407062 100644 --- a/pkgs/tools/networking/croc/default.nix +++ b/pkgs/tools/networking/croc/default.nix @@ -2,7 +2,7 @@ buildGoModule rec { pname = "croc"; - version = "6.4.6"; + version = "6.4.7"; goPackagePath = "github.com/schollz/croc"; @@ -10,7 +10,7 @@ buildGoModule rec { owner = "schollz"; repo = pname; rev = "v${version}"; - sha256 = "13sgjyrabr34a6sz8lzc21zvv5wc5lkgwbx0ar8afmikkrpdypln"; + sha256 = "1i8g90sr5rk7flfxvmxca6z5vp9wh8zraf2lfz618s5axds3kb50"; }; modSha256 = "1w84xqnn9fnkakak6j069app4ybbxpwq79g8qypwvmqg5bhvzywg"; diff --git a/pkgs/tools/networking/mailutils/default.nix b/pkgs/tools/networking/mailutils/default.nix index 40eeed7f0501..dcf377ca0c04 100644 --- a/pkgs/tools/networking/mailutils/default.nix +++ b/pkgs/tools/networking/mailutils/default.nix @@ -1,15 +1,15 @@ { stdenv, fetchurl, fetchpatch, autoreconfHook, dejagnu, gettext, pkgconfig , gdbm, pam, readline, ncurses, gnutls, guile, texinfo, gnum4, sasl, fribidi, nettools -, python, gss, libmysqlclient, system-sendmail }: +, python3, gss, libmysqlclient, system-sendmail }: stdenv.mkDerivation rec { name = "${project}-${version}"; project = "mailutils"; - version = "3.2"; + version = "3.8"; src = fetchurl { url = "mirror://gnu/${project}/${name}.tar.xz"; - sha256 = "0zh7xn8yvnw9zkc7gi5290i34viwxp1rn0g1q9nyvmckkvk59lwn"; + sha256 = "1wkn9ch664477r4d8jk9153w5msljsbj99907k7zgzpmywbs6ba7"; }; postPatch = '' @@ -29,17 +29,11 @@ stdenv.mkDerivation rec { buildInputs = [ gdbm pam readline ncurses gnutls guile texinfo gnum4 sasl fribidi nettools - gss libmysqlclient python + gss libmysqlclient python3 ]; patches = [ - (fetchpatch { - url = "https://git.savannah.gnu.org/cgit/mailutils.git/patch/?id=afbb33cf9ff"; - excludes = [ "NEWS" ]; - sha256 = "0yzkfx3j1zkkb43fhchjqphw4xznbclj39bjzjggv32gppy6d1db"; - }) ./fix-build-mb-len-max.patch - ./fix-test-ali-awk.patch ./path-to-cat.patch ]; diff --git a/pkgs/tools/networking/mailutils/fix-test-ali-awk.patch b/pkgs/tools/networking/mailutils/fix-test-ali-awk.patch deleted file mode 100644 index 3d301d530def..000000000000 --- a/pkgs/tools/networking/mailutils/fix-test-ali-awk.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/mh/tests/ali.at b/mh/tests/ali.at -index 28c0e5451..c76cf9363 100644 ---- a/mh/tests/ali.at -+++ b/mh/tests/ali.at -@@ -85,9 +85,9 @@ ali -a ./mh_aliases korzen | tr -d ' ' - [expout]) - - MH_CHECK([ali: group id],[ali05 ali-group-id ali-gid],[ --cat /etc/passwd | awk -F : '/^#/ { next } $4==0 { print $1 }' > expout -+cat /etc/passwd | awk -F : '/^#/ { next } $4==0 { print $1; exit }' > expout - test -s expout || AT_SKIP_TEST --name=`awk -F : '/^#/ { next } $3==0 { print $1 }' /etc/group < /dev/null` -+name=`awk -F : '/^#/ { next } $3==0 { print $1; exit }' /etc/group < /dev/null` - test -z "$name" && AT_SKIP_TEST - - echo "korzen: +$name" > mh_aliases diff --git a/pkgs/tools/networking/slirp4netns/default.nix b/pkgs/tools/networking/slirp4netns/default.nix index 83f315706ef7..f9add47dd3fd 100644 --- a/pkgs/tools/networking/slirp4netns/default.nix +++ b/pkgs/tools/networking/slirp4netns/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "slirp4netns"; - version = "0.4.2"; + version = "0.4.3"; src = fetchFromGitHub { owner = "rootless-containers"; repo = "slirp4netns"; rev = "v${version}"; - sha256 = "0i0rhb7n2i2nmbvdqdx83vi3kw4r17p7p099sr857cr3f3c221qx"; + sha256 = "0g7apfw33wkxxj7qwvlnnhv7qy13s1gkbmvns8612c0yfv9jrsvq"; }; nativeBuildInputs = [ autoreconfHook pkgconfig ]; diff --git a/pkgs/tools/security/chaps/default.nix b/pkgs/tools/security/chaps/default.nix index e81567c3ed87..c8ee95069682 100644 --- a/pkgs/tools/security/chaps/default.nix +++ b/pkgs/tools/security/chaps/default.nix @@ -1,9 +1,10 @@ -{ stdenv, fetchgit, fetchurl, trousers, leveldb, unzip, scons, pkgconfig -, glib, dbus_cplusplus, dbus, protobuf, openssl, snappy, pam }: +{ stdenv, fetchFromGitiles, fetchFromGitHub, fetchurl, trousers, leveldb, unzip +, scons, pkgconfig, glib, dbus_cplusplus, dbus, protobuf, openssl, snappy, pam +}: let - src_chromebase = fetchgit { - url = "https://chromium.googlesource.com/chromium/src/base.git"; + src_chromebase = fetchFromGitiles { + url = "https://chromium.googlesource.com/chromium/src/base"; rev = "2dfe404711e15e24e79799516400c61b2719d7af"; sha256 = "2bd93a3ace4b6767db2c1bd1e16f426c97b8d2133a9cb15f8372b2516cfa65c5"; }; @@ -13,7 +14,7 @@ let sha256 = "0nq98cpnv2jsx2byp4ilam6kydcnziflkc16ikydajmp4mcvpz16"; }; - src_platform2 = fetchgit { + src_platform2 = fetchFromGitiles { url = "https://chromium.googlesource.com/chromiumos/platform2"; rev = "e999e989eaa71c3db7314fc7b4e20829b2b5473b"; sha256 = "15n1bsv6r7cny7arx0hdb223xzzbk7vkxg2r7xajhl4nsj39adjh"; @@ -25,8 +26,9 @@ stdenv.mkDerivation rec { name = "chaps-0.42-6812"; version = "0.42-6812"; - src = fetchgit { - url = "https://github.com/google/chaps-linux"; + src = fetchFromGitHub { + owner = "google"; + repo = "chaps-linux"; rev = "989aadc45cdb216ca35b0c97d13fc691576fa1d7"; sha256 = "0chk6pnn365d5kcz6vfqx1d0383ksk97icc0lzg0vvb0kvyj0ff1"; }; diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix index 1e5a16e19582..11b0b067ccb8 100644 --- a/pkgs/tools/security/vault/default.nix +++ b/pkgs/tools/security/vault/default.nix @@ -2,13 +2,13 @@ buildGoPackage rec { pname = "vault"; - version = "1.3.0"; + version = "1.3.1"; src = fetchFromGitHub { owner = "hashicorp"; repo = "vault"; rev = "v${version}"; - sha256 = "0ayvmqg4fj9cliwbl4pb12mailq7062j3f9v8arpv6x5r4hydlpy"; + sha256 = "052aj79gwmydc7ph1g567cbssqf8dsmqxad47k5hc5sc58bx7c93"; }; goPackagePath = "github.com/hashicorp/vault"; diff --git a/pkgs/tools/system/minijail/default.nix b/pkgs/tools/system/minijail/default.nix index 74f0a84716a1..2b4d1deb9f9b 100644 --- a/pkgs/tools/system/minijail/default.nix +++ b/pkgs/tools/system/minijail/default.nix @@ -1,14 +1,13 @@ -{ stdenv, fetchgit, libcap }: +{ stdenv, fetchFromGitiles, libcap }: stdenv.mkDerivation rec { - shortname = "minijail"; - name = "${shortname}-${version}"; - version = "android-9.0.0_r3"; + pname = "minijail"; + version = "android-10.0.0_r9"; - src = fetchgit { + src = fetchFromGitiles { url = "https://android.googlesource.com/platform/external/minijail"; rev = version; - sha256 = "1g1g52s3q61amcnx8cv1332sbixpck1bmjzgsrjiw5ix7chrzkp2"; + sha256 = "0gcfsyim1krrddcklydqfxl8mamaxgail2xl5qp9yclq60km8f22"; }; buildInputs = [ libcap ]; @@ -20,13 +19,20 @@ stdenv.mkDerivation rec { sed -i '/#include / d' signal_handler.c ''; + postPatch = '' + patchShebangs platform2_preinstall.sh + ''; + + postBuild = '' + ./platform2_preinstall.sh ${version} $out/include/chromeos + ''; + installPhase = '' - mkdir -p $out/lib + mkdir -p $out/lib/pkgconfig $out/include/chromeos $out/bin cp -v *.so $out/lib - mkdir -p $out/include - cp -v libminijail.h $out/include - mkdir -p $out/bin - cp minijail0 $out/bin + cp -v *.pc $out/lib/pkgconfig + cp -v libminijail.h scoped_minijail.h $out/include/chromeos + cp -v minijail0 $out/bin ''; meta = { diff --git a/pkgs/tools/system/vboot_reference/default.nix b/pkgs/tools/system/vboot_reference/default.nix index 0bf8a7e85dce..bce6d0c4185f 100644 --- a/pkgs/tools/system/vboot_reference/default.nix +++ b/pkgs/tools/system/vboot_reference/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, pkgconfig, libuuid, openssl, libyaml, lzma }: +{ stdenv, fetchFromGitiles, pkgconfig, libuuid, openssl, libyaml, lzma }: stdenv.mkDerivation rec { version = "20180311"; @@ -6,8 +6,8 @@ stdenv.mkDerivation rec { pname = "vboot_reference"; - src = fetchgit { - url = https://chromium.googlesource.com/chromiumos/platform/vboot_reference; + src = fetchFromGitiles { + url = "https://chromium.googlesource.com/chromiumos/platform/vboot_reference"; rev = checkout; sha256 = "1zja4ma6flch08h5j2l1hqnxmw2xwylidnddxxd5y2x05dai9ddj"; }; diff --git a/pkgs/tools/text/ripgrep-all/default.nix b/pkgs/tools/text/ripgrep-all/default.nix index 521b123d8783..d41be25231cb 100644 --- a/pkgs/tools/text/ripgrep-all/default.nix +++ b/pkgs/tools/text/ripgrep-all/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchFromGitHub, rustPlatform, makeWrapper, ffmpeg -, pandoc, poppler_utils, ripgrep, Security +, pandoc, poppler_utils, ripgrep, Security, imagemagick, tesseract }: rustPlatform.buildRustPackage rec { @@ -19,9 +19,33 @@ rustPlatform.buildRustPackage rec { postInstall = '' wrapProgram $out/bin/rga \ - --prefix PATH ":" "${lib.makeBinPath [ ffmpeg pandoc poppler_utils ripgrep ]}" + --prefix PATH ":" "${lib.makeBinPath [ ffmpeg pandoc poppler_utils ripgrep imagemagick tesseract ]}" ''; + # Use upstream's example data to run a couple of queries to ensure the dependencies + # for all of the adapters are available. + installCheckPhase = '' + set -e + export PATH="$PATH:$out/bin" + + test1=$(rga --rga-no-cache "hello" exampledir/ | wc -l) + test2=$(rga --rga-no-cache --rga-adapters=tesseract "crate" exampledir/screenshot.png | wc -l) + + if [ $test1 != 26 ] + then + echo "ERROR: test1 failed! Could not find the word 'hello' 26 times in the sample data." + exit 1 + fi + + if [ $test2 != 1 ] + then + echo "ERROR: test2 failed! Could not find the word 'crate' in the screenshot." + exit 1 + fi + ''; + + doInstallCheck = true; + meta = with stdenv.lib; { description = "Ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, and more"; longDescription = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a8b9b02b1835..d05944a568f3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -360,6 +360,8 @@ in fetchFromGitLab = callPackage ../build-support/fetchgitlab {}; + fetchFromGitiles = callPackage ../build-support/fetchgitiles {}; + fetchFromRepoOrCz = callPackage ../build-support/fetchrepoorcz {}; fetchNuGet = callPackage ../build-support/fetchnuget { }; @@ -1493,6 +1495,8 @@ in crip = callPackage ../applications/audio/crip { }; + crosvm = callPackage ../applications/virtualization/crosvm { }; + crunch = callPackage ../tools/security/crunch { }; crudini = callPackage ../tools/misc/crudini { }; @@ -8110,6 +8114,10 @@ in gforth = callPackage ../development/compilers/gforth {}; + gleam = callPackage ../development/compilers/gleam { + inherit (darwin.apple_sdk.frameworks) Security; + }; + gtk-server = callPackage ../development/interpreters/gtk-server {}; # Haskell and GHC @@ -15805,6 +15813,8 @@ in alfred = callPackage ../os-specific/linux/batman-adv/alfred.nix { }; + alertmanager-bot = callPackage ../servers/monitoring/alertmanager-bot { }; + alsa-firmware = callPackage ../os-specific/linux/alsa-firmware { }; alsaLib = callPackage ../os-specific/linux/alsa-lib { }; @@ -17314,6 +17324,8 @@ in greybird = callPackage ../data/themes/greybird { }; + gubbi-font = callPackage ../data/fonts/gubbi { }; + gyre-fonts = callPackage ../data/fonts/gyre {}; hack-font = callPackage ../data/fonts/hack { }; @@ -19303,6 +19315,8 @@ in hydrogen = callPackage ../applications/audio/hydrogen { }; + hydroxide = callPackage ../applications/networking/hydroxide { }; + hyper = callPackage ../applications/misc/hyper { }; hyper-haskell-server-with-packages = callPackage ../development/tools/haskell/hyper-haskell/server.nix { @@ -23406,6 +23420,7 @@ in timepp = callPackage ../desktops/gnome-3/extensions/timepp { }; topicons-plus = callPackage ../desktops/gnome-3/extensions/topicons-plus { }; window-corner-preview = callPackage ../desktops/gnome-3/extensions/window-corner-preview { }; + workspace-matrix = callPackage ../desktops/gnome-3/extensions/workspace-matrix { }; nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks."; mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md"; @@ -25618,4 +25633,6 @@ in gortr = callPackage ../servers/gortr {}; + sentencepiece = callPackage ../development/libraries/sentencepiece {}; + } diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index aa361904eb30..ed66a20db53d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -165,6 +165,8 @@ in { aioredis = callPackage ../development/python-modules/aioredis { }; + aiorun = callPackage ../development/python-modules/aiorun { }; + ansicolor = callPackage ../development/python-modules/ansicolor { }; ansiwrap = callPackage ../development/python-modules/ansiwrap { }; @@ -1279,6 +1281,14 @@ in { selectors2 = callPackage ../development/python-modules/selectors2 { }; + sacremoses = callPackage ../development/python-modules/sacremoses { }; + + sentencepiece = callPackage ../development/python-modules/sentencepiece { + inherit (pkgs) sentencepiece pkgconfig; + }; + + transformers = callPackage ../development/python-modules/transformers { }; + sentinel = callPackage ../development/python-modules/sentinel { }; sentry-sdk = callPackage ../development/python-modules/sentry-sdk {}; @@ -1906,6 +1916,8 @@ in { cartopy = callPackage ../development/python-modules/cartopy {}; + casbin = callPackage ../development/python-modules/casbin { }; + case = callPackage ../development/python-modules/case {}; cbor = callPackage ../development/python-modules/cbor {}; @@ -4338,6 +4350,8 @@ in { aioeventlet = callPackage ../development/python-modules/aioeventlet { }; + aiokafka = callPackage ../development/python-modules/aiokafka { }; + olefile = callPackage ../development/python-modules/olefile { }; requests-mock = callPackage ../development/python-modules/requests-mock { };