Merge master into staging-next

This commit is contained in:
Frederik Rietdijk 2019-12-19 09:19:50 +01:00
commit f79e10061f
108 changed files with 1977 additions and 555 deletions

View file

@ -1034,7 +1034,10 @@ Create this `default.nix` file, together with a `requirements.txt` and simply ex
```nix
with import <nixpkgs> {};
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
'';

View file

@ -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";

View file

@ -83,8 +83,7 @@
desktop environment. If you wanted no desktop environment and i3 as your your
window manager, you'd define:
<programlisting>
<xref linkend="opt-services.xserver.desktopManager.default"/> = "none";
<xref linkend="opt-services.xserver.windowManager.default"/> = "i3";
<xref linkend="opt-services.xserver.displayManager.defaultSession"/> = "none+i3";
</programlisting>
And, finally, to enable auto-login for a user <literal>johndoe</literal>:
<programlisting>

View file

@ -7,9 +7,8 @@
<para>
To enable the Xfce Desktop Environment, set
<programlisting>
<link linkend="opt-services.xserver.desktopManager.default">services.xserver.desktopManager</link> = {
<link linkend="opt-services.xserver.desktopManager.xfce.enable">xfce.enable</link> = true;
<link linkend="opt-services.xserver.desktopManager.default">default</link> = "xfce";
<xref linkend="opt-services.xserver.desktopManager.xfce.enable" /> = true;
<xref linkend="opt-services.xserver.displayManager.defaultSession" /> = "xfce";
};
</programlisting>
</para>

View file

@ -119,4 +119,13 @@ Defined by:
bug, please report to Nicolas Pierron.
</para>
</refsection>
<refsection>
<title>See also</title>
<para>
<citerefentry>
<refentrytitle>configuration.nix</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsection>
</refentry>

View file

@ -55,6 +55,19 @@
and adding a <option>--all</option> option which prints all options and their values.
</para>
</listitem>
<listitem>
<para>
<option>services.xserver.desktopManager.default</option> and <option>services.xserver.windowManager.default</option> options were replaced by a single <xref linkend="opt-services.xserver.displayManager.defaultSession"/> option to improve support for upstream session files. If you used something like:
<programlisting>
services.xserver.desktopManager.default = "xfce";
services.xserver.windowManager.default = "icewm";
</programlisting>
you should change it to:
<programlisting>
services.xserver.displayManager.defaultSession = "xfce+icewm";
</programlisting>
</para>
</listitem>
</itemizedlist>
</section>

View file

@ -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 ({

View file

@ -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 ({

View file

@ -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 ];

View file

@ -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 = ''
<emphasis role="strong">Deprecated</emphasis>, please use <xref linkend="opt-services.xserver.displayManager.defaultSession"/> instead.
Default desktop manager loaded if none have been chosen.
'';
};
};

View file

@ -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 {

View file

@ -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

View file

@ -118,7 +118,7 @@ in {
};
config = mkIf cfg.enable {
services.xserver.displayManager.extraSessionFilePackages = [
services.xserver.displayManager.sessionPackages = [
pkgs.surf-display
];

View file

@ -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
'';
}

View file

@ -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 = <desktop-manager>+<window-manager>
# The first argument of this script is the session type.
sessionType="$1"
if [ "$sessionType" = default ]; then sessionType=""; fi
# The session type is "<desktop-manager>+<window-manager>", 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" ])
];
}

View file

@ -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 = {

View file

@ -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
<option>services.xserver.desktopManager.default</option> and
<option>services.xserver.windowManager.default</option>.
You can configure the default X session using
<xref linkend="opt-services.xserver.displayManager.defaultSession"/>.
'';
};

View file

@ -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

View file

@ -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.
'';
}
];

View file

@ -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 = ''
<emphasis role="strong">Deprecated</emphasis>, please use <xref linkend="opt-services.xserver.displayManager.defaultSession"/> instead.
Default window manager loaded if none have been chosen.
'';
};
};

View file

@ -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;
}

View file

@ -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;
};

View file

@ -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")
'';
})

View file

@ -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")
'';
})

View file

@ -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"
)
'';
})

View file

@ -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")
'';
})

View file

@ -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;
};

View file

@ -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")
'';
})

View file

@ -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/"
)
'';
})

View file

@ -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/")
'';
})

View file

@ -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;

View file

@ -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"
)
'';
})

View file

@ -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'"
)
'';
})

View file

@ -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")
'';
})

View file

@ -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")
'';
})

View file

@ -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"
)
'';
})

View file

@ -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"
)
'';
})

View file

@ -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";

View file

@ -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;'")
'';
})

View file

@ -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")
'';
})

View file

@ -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

View file

@ -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/")
'';
})

View file

@ -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"
)
'';
})

View file

@ -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")
'';
})

View file

@ -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")
'';
})

View file

@ -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;

View file

@ -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 = [

View file

@ -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"

View file

@ -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 {};

View file

@ -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 ];
};
}

View file

@ -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 = ''

View file

@ -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 ];

View file

@ -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";

View file

@ -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;

View file

@ -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" ];

View file

@ -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 \

View file

@ -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 = [

View file

@ -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 ];

View file

@ -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 = [ "." ];

View file

@ -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;

View file

@ -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 ];
};
}

View file

@ -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 ];

View file

@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
packageName = "gnome-session";
attrPath = "gnome3.gnome-session";
};
providedSessions = [ "gnome" "gnome-xorg" ];
};
meta = with stdenv.lib; {

View file

@ -141,6 +141,8 @@ let
Type=Application
DesktopNames=GNOME-Flashback;GNOME;
'';
} // {
providedSessions = [ "gnome-flashback-${wmName}" ];
};
mkSystemdTargetForWm = { wmName }:

View file

@ -131,6 +131,7 @@ stdenv.mkDerivation rec {
inherit repoName;
attrPath = pname;
};
providedSessions = [ "pantheon" ];
};
meta = with stdenv.lib; {

View file

@ -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/";

View file

@ -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 ];
};
}

View file

@ -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 ];
}

View file

@ -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 ];
};
}

View file

@ -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;

View file

@ -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";
};
}

View file

@ -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; [ ];
};
}

View file

@ -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 ];

View file

@ -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)";

View file

@ -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; [ ];
};
}

View file

@ -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";

View file

@ -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 ];
};
}

View file

@ -0,0 +1,15 @@
{ buildPythonPackage
, stdenv
, sentencepiece
, pkgconfig
}:
buildPythonPackage rec {
pname = "sentencepiece";
inherit (sentencepiece) version src meta;
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ sentencepiece ];
sourceRoot = "source/python";
}

View file

@ -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 ];
};
}

View file

@ -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 = [ "." ];

View file

@ -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 ];

View file

@ -5,6 +5,6 @@ let
in
buildNodejs {
inherit enableNpm;
version = "10.17.0";
sha256 = "13n5cvb340ba7vwm8il7bjrmpz89h6cibhk9rc3kq9ymdgbnf9j1";
version = "10.18.0";
sha256 = "1ppycqffsy7ix6whdp6id7ld1qizwvjlzxyk12kxw4wphjmn49hb";
}

View file

@ -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 ];
}

View file

@ -65,3 +65,16 @@ diff -rp dymo-cups-drivers-1.4.0.5/src/lw/CupsFilterLabelWriter.h dymo-cups-driv
#include <cups/raster.h>
#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 <errno.h>
#include <cups/cups.h>
+ #include <cups/sidechannel.h>
#include <cassert>
namespace DymoPrinterDriver

View file

@ -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";
};
};

View file

@ -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

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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";
}
, ...
}:

View file

@ -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 ];
};
}

View file

@ -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 ];

View file

@ -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 = [

View file

@ -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 ];
};
}

View file

@ -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";
};
}
]

View file

@ -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" ];

View file

@ -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:

View file

@ -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 = ''

View file

@ -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 ];

Some files were not shown because too many files have changed in this diff Show more