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 ```nix
with import <nixpkgs> {}; with import <nixpkgs> {};
with python27Packages;
let
pythonPackages = python27Packages;
in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "impurePythonEnv"; name = "impurePythonEnv";
@ -1044,9 +1047,8 @@ stdenv.mkDerivation {
buildInputs = [ buildInputs = [
# these packages are required for virtualenv and pip to work: # these packages are required for virtualenv and pip to work:
# #
python27Full pythonPackages.virtualenv
python27Packages.virtualenv pythonPackages.pip
python27Packages.pip
# the following packages are related to the dependencies of your python # the following packages are related to the dependencies of your python
# project. # project.
# In this particular example the python modules listed in the # In this particular example the python modules listed in the
@ -1059,14 +1061,13 @@ stdenv.mkDerivation {
libxml2 libxml2
libxslt libxslt
libzip libzip
stdenv
zlib zlib
]; ];
shellHook = '' shellHook = ''
# set SOURCE_DATE_EPOCH so that we can use python wheels # set SOURCE_DATE_EPOCH so that we can use python wheels
SOURCE_DATE_EPOCH=$(date +%s) SOURCE_DATE_EPOCH=$(date +%s)
virtualenv --no-setuptools venv virtualenv --python=${pythonPackages.python.interpreter} --no-setuptools venv
export PATH=$PWD/venv/bin:$PATH export PATH=$PWD/venv/bin:$PATH
pip install -r requirements.txt pip install -r requirements.txt
''; '';

View file

@ -5239,6 +5239,12 @@
githubId = 20792; githubId = 20792;
name = "Sebastian Galkin"; name = "Sebastian Galkin";
}; };
pashashocky = {
email = "pashashocky@gmail.com";
github = "pashashocky";
githubId = 673857;
name = "Pash Shocky";
};
pashev = { pashev = {
email = "pashev.igor@gmail.com"; email = "pashev.igor@gmail.com";
github = "ip1981"; github = "ip1981";

View file

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

View file

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

View file

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

View file

@ -55,6 +55,19 @@
and adding a <option>--all</option> option which prints all options and their values. and adding a <option>--all</option> option which prints all options and their values.
</para> </para>
</listitem> </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> </itemizedlist>
</section> </section>

View file

@ -262,9 +262,8 @@ in rec {
virtualisation.memorySize = 1024; virtualisation.memorySize = 1024;
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager.auto.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.windowManager.icewm.enable = true;
services.xserver.desktopManager.default = "none";
}; };
in in
runInMachine ({ runInMachine ({

View file

@ -249,9 +249,8 @@ in rec {
virtualisation.memorySize = 1024; virtualisation.memorySize = 1024;
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager.auto.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.windowManager.icewm.enable = true;
services.xserver.desktopManager.default = "none";
}; };
in in
runInMachine ({ runInMachine ({

View file

@ -24,6 +24,7 @@ let
swayJoined = pkgs.symlinkJoin { swayJoined = pkgs.symlinkJoin {
name = "sway-joined"; name = "sway-joined";
paths = [ swayWrapped swayPackage ]; paths = [ swayWrapped swayPackage ];
passthru.providedSessions = [ "sway" ];
}; };
in { in {
options.programs.sway = { options.programs.sway = {
@ -88,7 +89,7 @@ in {
fonts.enableDefaultFonts = mkDefault true; fonts.enableDefaultFonts = mkDefault true;
programs.dconf.enable = mkDefault true; programs.dconf.enable = mkDefault true;
# To make a Sway session available if a display manager like SDDM is enabled: # 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 ]; meta.maintainers = with lib.maintainers; [ gnidorah primeos colemickens ];

View file

@ -86,23 +86,14 @@ in
}; };
default = mkOption { default = mkOption {
type = types.str; type = types.nullOr types.str;
default = ""; default = null;
example = "none"; example = "none";
description = "Default desktop manager loaded if none have been chosen."; description = ''
apply = defaultDM: <emphasis role="strong">Deprecated</emphasis>, please use <xref linkend="opt-services.xserver.displayManager.defaultSession"/> instead.
if defaultDM == "" && cfg.session.list != [] then
(head cfg.session.list).name Default desktop manager loaded if none have been chosen.
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;
}; };
}; };

View file

@ -144,7 +144,7 @@ in
services.gnome3.core-shell.enable = true; services.gnome3.core-shell.enable = true;
services.gnome3.core-utilities.enable = mkDefault 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 = '' environment.extraInit = ''
${concatMapStrings (p: '' ${concatMapStrings (p: ''
@ -171,7 +171,7 @@ in
}) })
(mkIf flashbackEnabled { (mkIf flashbackEnabled {
services.xserver.displayManager.extraSessionFilePackages = map services.xserver.displayManager.sessionPackages = map
(wm: pkgs.gnome3.gnome-flashback.mkSessionForWm { (wm: pkgs.gnome3.gnome-flashback.mkSessionForWm {
inherit (wm) wmName wmLabel wmCommand; inherit (wm) wmName wmLabel wmCommand;
}) (optional cfg.flashback.enableMetacity { }) (optional cfg.flashback.enableMetacity {

View file

@ -69,7 +69,7 @@ in
config = mkIf cfg.enable { 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 # Ensure lightdm is used when Pantheon is enabled
# Without it screen locking will be nonfunctional because of the use of lightlocker # 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; services.xserver.displayManager.lightdm.greeters.pantheon.enable = mkDefault true;
# If not set manually Pantheon session cannot be started # Without this, Elementary LightDM greeter will pre-select non-existent `default` session
# Known issue of https://github.com/NixOS/nixpkgs/pull/43992 # https://github.com/elementary/greeter/issues/368
services.xserver.desktopManager.default = mkForce "pantheon"; services.xserver.displayManager.defaultSession = "pantheon";
services.xserver.displayManager.sessionCommands = '' services.xserver.displayManager.sessionCommands = ''
if test "$XDG_CURRENT_DESKTOP" = "Pantheon"; then if test "$XDG_CURRENT_DESKTOP" = "Pantheon"; then

View file

@ -118,7 +118,7 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.xserver.displayManager.extraSessionFilePackages = [ services.xserver.displayManager.sessionPackages = [
pkgs.surf-display 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 Xft.hintstyle: hintslight
''; '';
mkCases = session: # file provided by services.xserver.displayManager.sessionData.wrapper
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
xsessionWrapper = pkgs.writeScript "xsession-wrapper" xsessionWrapper = pkgs.writeScript "xsession-wrapper"
'' ''
#! ${pkgs.bash}/bin/bash #! ${pkgs.bash}/bin/bash
@ -116,94 +107,44 @@ let
# Run the supplied session command. Remove any double quotes with eval. # Run the supplied session command. Remove any double quotes with eval.
eval exec "$@" eval exec "$@"
else else
# Fall back to the default window/desktopManager # TODO: Do we need this? Should not the session always exist?
exec ${cfg.displayManager.session.script} echo "error: unknown session $1" 1>&2
exit 1
fi fi
''; '';
# file provided by services.xserver.displayManager.session.script installedSessions = pkgs.runCommand "desktops"
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"
{ # trivial derivation { # trivial derivation
preferLocalBuild = true; preferLocalBuild = true;
allowSubstitutes = false; allowSubstitutes = false;
} }
'' ''
mkdir -p "$out/share/xsessions" mkdir -p "$out/share/"{xsessions,wayland-sessions}
${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}
${concatMapStrings (pkg: '' ${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 if test -d ${pkg}/share/xsessions; then
${xorg.lndir}/bin/lndir ${pkg}/share/xsessions $out/share/xsessions ${xorg.lndir}/bin/lndir ${pkg}/share/xsessions $out/share/xsessions
fi fi
'') cfg.displayManager.extraSessionFilePackages}
${concatMapStrings (pkg: ''
if test -d ${pkg}/share/wayland-sessions; then 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 ${xorg.lndir}/bin/lndir ${pkg}/share/wayland-sessions $out/share/wayland-sessions
fi 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 in
{ {
@ -261,11 +202,24 @@ in
''; '';
}; };
extraSessionFilePackages = mkOption { sessionPackages = mkOption {
type = types.listOf types.package; 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 = []; default = [];
description = '' 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 inside the display manager with the desktop manager name
followed by the window 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; sessionData = mkOption {
names = flip concatMap dm description = "Data exported for display managers convenience";
(d: map (w: d.name + optionalString (w.name != "none") ("+" + w.name)) internal = true;
(filter (w: d.name != "none" || w.name != "none") wm)); default = {};
desktops = mkDesktops names; apply = val: {
script = xsession wm dm;
wrapper = xsessionWrapper; 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 = { job = {
preStart = mkOption { preStart = mkOption {
@ -356,6 +342,27 @@ in
}; };
config = { 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"; services.xserver.displayManager.xserverBin = "${xorg.xorgserver.out}/bin/X";
systemd.user.targets.graphical-session = { systemd.user.targets.graphical-session = {
@ -364,6 +371,67 @@ in
StopWhenUnneeded = false; 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 = [ imports = [
@ -371,6 +439,7 @@ in
"The option is no longer necessary because all display managers have already delegated lid management to systemd.") "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" "job" "logsXsession" ] [ "services" "xserver" "displayManager" "job" "logToFile" ])
(mkRenamedOptionModule [ "services" "xserver" "displayManager" "logToJournal" ] [ "services" "xserver" "displayManager" "job" "logToJournal" ]) (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 load-module module-position-event-sounds
''; '';
dmDefault = config.services.xserver.desktopManager.default; defaultSessionName = config.services.xserver.displayManager.defaultSession;
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
'';
};
setSessionScript = pkgs.callPackage ./account-service-util.nix { };
in in
{ {
@ -186,7 +151,7 @@ in
environment = { environment = {
GDM_X_SERVER_EXTRA_ARGS = toString GDM_X_SERVER_EXTRA_ARGS = toString
(filter (arg: arg != "-terminate") cfg.xserverArgs); (filter (arg: arg != "-terminate") cfg.xserverArgs);
XDG_DATA_DIRS = "${cfg.session.desktops}/share/"; XDG_DATA_DIRS = "${cfg.sessionData.desktops}/share/";
} // optionalAttrs (xSessionWrapper != null) { } // optionalAttrs (xSessionWrapper != null) {
# Make GDM use this wrapper before running the session, which runs the # Make GDM use this wrapper before running the session, which runs the
# configured setupCommands. This relies on a patched GDM which supports # configured setupCommands. This relies on a patched GDM which supports
@ -204,16 +169,19 @@ in
cat - > /run/gdm/.config/gnome-initial-setup-done <<- EOF cat - > /run/gdm/.config/gnome-initial-setup-done <<- EOF
yes yes
EOF EOF
'' '' + optionalString (defaultSessionName != null) ''
# TODO: Make setSessionScript aware of previously used sessions # Set default session in session chooser to a specified values basically ignore session history.
# + optionalString hasDefaultUserSession '' ${setSessionScript}/bin/set-session ${cfg.sessionData.autologinSession}
# ${setSessionScript}/bin/set-session ${defaultSessionName} '';
# ''
;
}; };
# Because sd_login_monitor_new requires /run/systemd/machines systemd.services.display-manager.wants = [
systemd.services.display-manager.wants = [ "systemd-machined.service" ]; # Because sd_login_monitor_new requires /run/systemd/machines
"systemd-machined.service"
# setSessionScript wants AccountsService
"accounts-daemon.service"
];
systemd.services.display-manager.after = [ systemd.services.display-manager.after = [
"rc-local.service" "rc-local.service"
"systemd-machined.service" "systemd-machined.service"
@ -329,7 +297,7 @@ in
${optionalString cfg.gdm.debug "Enable=true"} ${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 # GDM LFS PAM modules, adapted somehow to NixOS
security.pam.services = { security.pam.services = {

View file

@ -53,9 +53,8 @@ in
Whether to enable lightdm-mini-greeter as the lightdm greeter. Whether to enable lightdm-mini-greeter as the lightdm greeter.
Note that this greeter starts only the default X session. Note that this greeter starts only the default X session.
You can configure the default X session by You can configure the default X session using
<option>services.xserver.desktopManager.default</option> and <xref linkend="opt-services.xserver.displayManager.defaultSession"/>.
<option>services.xserver.windowManager.default</option>.
''; '';
}; };

View file

@ -8,10 +8,9 @@ let
dmcfg = xcfg.displayManager; dmcfg = xcfg.displayManager;
xEnv = config.systemd.services.display-manager.environment; xEnv = config.systemd.services.display-manager.environment;
cfg = dmcfg.lightdm; cfg = dmcfg.lightdm;
sessionData = dmcfg.sessionData;
dmDefault = xcfg.desktopManager.default; setSessionScript = pkgs.callPackage ./account-service-util.nix { };
wmDefault = xcfg.windowManager.default;
hasDefaultUserSession = dmDefault != "none" || wmDefault != "none";
inherit (pkgs) lightdm writeScript writeText; inherit (pkgs) lightdm writeScript writeText;
@ -45,22 +44,19 @@ let
greeter-user = ${config.users.users.lightdm.name} greeter-user = ${config.users.users.lightdm.name}
greeters-directory = ${cfg.greeter.package} 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} ${cfg.extraConfig}
[Seat:*] [Seat:*]
xserver-command = ${xserverWrapper} xserver-command = ${xserverWrapper}
session-wrapper = ${dmcfg.session.wrapper} session-wrapper = ${dmcfg.sessionData.wrapper}
${optionalString cfg.greeter.enable '' ${optionalString cfg.greeter.enable ''
greeter-session = ${cfg.greeter.name} greeter-session = ${cfg.greeter.name}
''} ''}
${optionalString cfg.autoLogin.enable '' ${optionalString cfg.autoLogin.enable ''
autologin-user = ${cfg.autoLogin.user} autologin-user = ${cfg.autoLogin.user}
autologin-user-timeout = ${toString cfg.autoLogin.timeout} autologin-user-timeout = ${toString cfg.autoLogin.timeout}
autologin-session = ${defaultSessionName} autologin-session = ${sessionData.autologinSession}
''}
${optionalString hasDefaultUserSession ''
user-session=${defaultSessionName}
''} ''}
${optionalString (dmcfg.setupCommands != "") '' ${optionalString (dmcfg.setupCommands != "") ''
display-setup-script=${pkgs.writeScript "lightdm-display-setup" '' display-setup-script=${pkgs.writeScript "lightdm-display-setup" ''
@ -71,7 +67,6 @@ let
${cfg.extraSeatDefaults} ${cfg.extraSeatDefaults}
''; '';
defaultSessionName = dmDefault + optionalString (wmDefault != "none") ("+" + wmDefault);
in in
{ {
# Note: the order in which lightdm greeter modules are imported # 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 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 = '' message = ''
LightDM auto-login requires that services.xserver.desktopManager.default and LightDM auto-login requires that services.xserver.displayManager.defaultSession is set.
services.xserver.windowManager.default are set to valid values. The current
default session: ${defaultSessionName} is not valid.
''; '';
} }
{ assertion = !cfg.greeter.enable -> (cfg.autoLogin.enable && cfg.autoLogin.timeout == 0); { 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 # lightdm relaunches itself via just `lightdm`, so needs to be on the PATH
services.xserver.displayManager.job.execCmd = '' services.xserver.displayManager.job.execCmd = ''
export PATH=${lightdm}/sbin:$PATH export PATH=${lightdm}/sbin:$PATH

View file

@ -50,8 +50,8 @@ let
MinimumVT=${toString (if xcfg.tty != null then xcfg.tty else 7)} MinimumVT=${toString (if xcfg.tty != null then xcfg.tty else 7)}
ServerPath=${xserverWrapper} ServerPath=${xserverWrapper}
XephyrPath=${pkgs.xorg.xorgserver.out}/bin/Xephyr XephyrPath=${pkgs.xorg.xorgserver.out}/bin/Xephyr
SessionCommand=${dmcfg.session.wrapper} SessionCommand=${dmcfg.sessionData.wrapper}
SessionDir=${dmcfg.session.desktops}/share/xsessions SessionDir=${dmcfg.sessionData.desktops}/share/xsessions
XauthPath=${pkgs.xorg.xauth}/bin/xauth XauthPath=${pkgs.xorg.xauth}/bin/xauth
DisplayCommand=${Xsetup} DisplayCommand=${Xsetup}
DisplayStopCommand=${Xstop} DisplayStopCommand=${Xstop}
@ -59,23 +59,19 @@ let
[Wayland] [Wayland]
EnableHidpi=${if cfg.enableHidpi then "true" else "false"} 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 '' ${optionalString cfg.autoLogin.enable ''
[Autologin] [Autologin]
User=${cfg.autoLogin.user} User=${cfg.autoLogin.user}
Session=${defaultSessionName}.desktop Session=${autoLoginSessionName}.desktop
Relogin=${boolToString cfg.autoLogin.relogin} Relogin=${boolToString cfg.autoLogin.relogin}
''} ''}
${cfg.extraConfig} ${cfg.extraConfig}
''; '';
defaultSessionName = autoLoginSessionName = dmcfg.sessionData.autologinSession;
let
dm = xcfg.desktopManager.default;
wm = xcfg.windowManager.default;
in dm + optionalString (wm != "none") ("+" + wm);
in in
{ {
@ -210,11 +206,9 @@ in
SDDM auto-login requires services.xserver.displayManager.sddm.autoLogin.user to be set 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 = '' message = ''
SDDM auto-login requires that services.xserver.desktopManager.default and SDDM auto-login requires that services.xserver.displayManager.defaultSession is set.
services.xserver.windowManager.default are set to valid values. The current
default session: ${defaultSessionName} is not valid.
''; '';
} }
]; ];

View file

@ -59,15 +59,14 @@ in
}; };
default = mkOption { default = mkOption {
type = types.str; type = types.nullOr types.str;
default = "none"; default = null;
example = "wmii"; example = "wmii";
description = "Default window manager loaded if none have been chosen."; description = ''
apply = defaultWM: <emphasis role="strong">Deprecated</emphasis>, please use <xref linkend="opt-services.xserver.displayManager.defaultSession"/> instead.
if any (w: w.name == defaultWM) cfg.session then
defaultWM Default window manager loaded if none have been chosen.
else '';
throw "Default window manager (${defaultWM}) not found.";
}; };
}; };

View file

@ -1,12 +1,12 @@
{ lib, ... }:
{ services.xserver.enable = true; { services.xserver.enable = true;
# Automatically log in. # Automatically log in.
services.xserver.displayManager.auto.enable = true; services.xserver.displayManager.auto.enable = true;
# Use IceWM as the window manager. # Use IceWM as the window manager.
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true;
# Don't use a desktop manager. # 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.enable = true;
services.xserver.displayManager.lightdm.autoLogin.user = "alice"; services.xserver.displayManager.lightdm.autoLogin.user = "alice";
services.xserver.desktopManager.gnome3.enable = true; services.xserver.desktopManager.gnome3.enable = true;
services.xserver.desktopManager.default = "gnome-xorg"; services.xserver.displayManager.defaultSession = "gnome-xorg";
virtualisation.memorySize = 1024; virtualisation.memorySize = 1024;
}; };

View file

@ -1,4 +1,4 @@
import ../make-test.nix ({...}: { import ../make-test-python.nix ({...}: {
nodes = { nodes = {
namenode = {pkgs, ...}: { namenode = {pkgs, ...}: {
services.hadoop = { services.hadoop = {
@ -35,20 +35,20 @@ import ../make-test.nix ({...}: {
}; };
testScript = '' testScript = ''
startAll start_all()
$namenode->waitForUnit("hdfs-namenode"); namenode.wait_for_unit("hdfs-namenode")
$namenode->waitForUnit("network.target"); namenode.wait_for_unit("network.target")
$namenode->waitForOpenPort(8020); namenode.wait_for_open_port(8020)
$namenode->waitForOpenPort(9870); namenode.wait_for_open_port(9870)
$datanode->waitForUnit("hdfs-datanode"); datanode.wait_for_unit("hdfs-datanode")
$datanode->waitForUnit("network.target"); datanode.wait_for_unit("network.target")
$datanode->waitForOpenPort(9864); datanode.wait_for_open_port(9864)
$datanode->waitForOpenPort(9866); datanode.wait_for_open_port(9866)
$datanode->waitForOpenPort(9867); datanode.wait_for_open_port(9867)
$namenode->succeed("curl http://namenode:9870"); namenode.succeed("curl http://namenode:9870")
$datanode->succeed("curl http://datanode:9864"); datanode.succeed("curl http://datanode:9864")
''; '';
}) })

View file

@ -1,4 +1,4 @@
import ../make-test.nix ({...}: { import ../make-test-python.nix ({...}: {
nodes = { nodes = {
resourcemanager = {pkgs, ...}: { resourcemanager = {pkgs, ...}: {
services.hadoop.package = pkgs.hadoop_3_1; services.hadoop.package = pkgs.hadoop_3_1;
@ -28,19 +28,19 @@ import ../make-test.nix ({...}: {
}; };
testScript = '' testScript = ''
startAll; start_all()
$resourcemanager->waitForUnit("yarn-resourcemanager"); resourcemanager.wait_for_unit("yarn-resourcemanager")
$resourcemanager->waitForUnit("network.target"); resourcemanager.wait_for_unit("network.target")
$resourcemanager->waitForOpenPort(8031); resourcemanager.wait_for_open_port(8031)
$resourcemanager->waitForOpenPort(8088); resourcemanager.wait_for_open_port(8088)
$nodemanager->waitForUnit("yarn-nodemanager"); nodemanager.wait_for_unit("yarn-nodemanager")
$nodemanager->waitForUnit("network.target"); nodemanager.wait_for_unit("network.target")
$nodemanager->waitForOpenPort(8042); nodemanager.wait_for_open_port(8042)
$nodemanager->waitForOpenPort(8041); nodemanager.wait_for_open_port(8041)
$resourcemanager->succeed("curl http://localhost:8088"); resourcemanager.succeed("curl http://localhost:8088")
$nodemanager->succeed("curl http://localhost:8042"); 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"; name = "haproxy";
nodes = { nodes = {
machine = { ... }: { machine = { ... }: {
@ -33,11 +33,13 @@ import ./make-test.nix ({ pkgs, ...}: {
}; };
}; };
testScript = '' testScript = ''
startAll; start_all()
$machine->waitForUnit('multi-user.target'); machine.wait_for_unit("multi-user.target")
$machine->waitForUnit('haproxy.service'); machine.wait_for_unit("haproxy.service")
$machine->waitForUnit('httpd.service'); machine.wait_for_unit("httpd.service")
$machine->succeed('curl -k http://localhost:80/index.txt | grep "We are all good!"'); assert "We are all good!" in machine.succeed("curl -k http://localhost:80/index.txt")
$machine->succeed('curl -k http://localhost:80/metrics | grep haproxy_process_pool_allocated_bytes'); 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"; name = "hitch";
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
@ -23,11 +23,11 @@ import ../make-test.nix ({ pkgs, ... }:
testScript = testScript =
'' ''
startAll; start_all()
$machine->waitForUnit('multi-user.target'); machine.wait_for_unit("multi-user.target")
$machine->waitForUnit('hitch.service'); machine.wait_for_unit("hitch.service")
$machine->waitForOpenPort(443); machine.wait_for_open_port(443)
$machine->succeed('curl -k https://localhost:443/index.txt | grep "We are all good!"'); 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, ... }: { machine = { lib, ... }: {
imports = [ ./common/x11.nix ./common/user-account.nix ]; imports = [ ./common/x11.nix ./common/user-account.nix ];
services.xserver.displayManager.auto.user = "alice"; 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; 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"; name = "initrd-network";
meta.maintainers = [ pkgs.stdenv.lib.maintainers.eelco ]; meta.maintainers = [ pkgs.stdenv.lib.maintainers.eelco ];
@ -15,8 +15,8 @@ import ./make-test.nix ({ pkgs, ...} : {
testScript = testScript =
'' ''
startAll; start_all()
$machine->waitForUnit("multi-user.target"); machine.wait_for_unit("multi-user.target")
$machine->succeed("ip link >&2"); machine.succeed("ip link >&2")
''; '';
}) })

View file

@ -1,4 +1,4 @@
import ./make-test.nix ({ pkgs, ... }: import ./make-test-python.nix ({ pkgs, ... }:
{ {
name = "leaps"; name = "leaps";
@ -22,9 +22,11 @@ import ./make-test.nix ({ pkgs, ... }:
testScript = testScript =
'' ''
startAll; start_all()
$server->waitForOpenPort(6666); server.wait_for_open_port(6666)
$client->waitForUnit("network.target"); client.wait_for_unit("network.target")
$client->succeed("${pkgs.curl}/bin/curl http://server:6666/leaps/ | grep -i 'leaps'"); 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; with lib;
@ -11,8 +11,10 @@ with lib;
{ services.lidarr.enable = true; }; { services.lidarr.enable = true; };
testScript = '' testScript = ''
$machine->waitForUnit('lidarr.service'); start_all()
$machine->waitForOpenPort('8686');
$machine->succeed("curl --fail http://localhost:8686/"); 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 ]; imports = [ ./common/user-account.nix ];
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager.lightdm.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.windowManager.icewm.enable = true;
services.xserver.desktopManager.default = "none";
}; };
enableOCR = true; enableOCR = true;

View file

@ -1,4 +1,4 @@
import ./make-test.nix ({ lib, ... }: import ./make-test-python.nix ({ lib, ... }:
{ {
name = "mailcatcher"; name = "mailcatcher";
@ -16,11 +16,15 @@ import ./make-test.nix ({ lib, ... }:
}; };
testScript = '' testScript = ''
startAll; start_all()
$machine->waitForUnit('mailcatcher.service'); machine.wait_for_unit("mailcatcher.service")
$machine->waitForOpenPort('1025'); machine.wait_for_open_port("1025")
$machine->succeed('echo "this is the body of the email" | mail -s "subject" root@example.org'); machine.succeed(
$machine->succeed('curl http://localhost:1080/messages/1.source') =~ /this is the body of the email/ or die; '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"; name = "paperless";
meta = with lib.maintainers; { meta = with lib.maintainers; {
maintainers = [ earvstedt ]; maintainers = [ earvstedt ];
@ -13,17 +13,24 @@ import ./make-test.nix ({ lib, ... } : {
}; };
testScript = '' testScript = ''
$machine->waitForUnit("paperless-consumer.service"); machine.wait_for_unit("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->waitForUnit("paperless-server.service"); # Create test doc
# Wait until server accepts connections machine.succeed(
$machine->waitUntilSucceeds("curl -s localhost:28981"); "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"
# 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'") with subtest("Service gets ready"):
=~ /2005-10-16/ or die; 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"; name = "powerdns";
nodes.server = { ... }: { nodes.server = { ... }: {
@ -6,7 +6,7 @@ import ./make-test.nix ({ pkgs, ... }: {
}; };
testScript = '' testScript = ''
$server->waitForUnit("pdns-recursor"); server.wait_for_unit("pdns-recursor")
$server->waitForOpenPort("53"); server.wait_for_open_port("53")
''; '';
}) })

View file

@ -1,6 +1,6 @@
# This test runs peerflix and checks if peerflix starts # This test runs peerflix and checks if peerflix starts
import ./make-test.nix ({ pkgs, ...} : { import ./make-test-python.nix ({ pkgs, ...} : {
name = "peerflix"; name = "peerflix";
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ]; maintainers = [ offline ];
@ -15,9 +15,9 @@ import ./make-test.nix ({ pkgs, ...} : {
}; };
testScript = '' testScript = ''
startAll; start_all()
$peerflix->waitForUnit("peerflix.service"); peerflix.wait_for_unit("peerflix.service")
$peerflix->waitUntilSucceeds("curl localhost:9000"); 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 let
role = "test"; role = "test";
password = "secret"; password = "secret";
@ -29,11 +29,13 @@ in
}; };
testScript = '' testScript = ''
startAll; start_all()
$one->waitForUnit("default.target"); one.wait_for_unit("default.target")
$one->requireActiveUnit("pgmanage.service"); one.require_unit_state("pgmanage.service", "active")
# Test if we can log in. # 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 let testString = "can-use-subgroups"; in
import ./make-test.nix ({ ...}: { import ./make-test-python.nix ({ ...}: {
name = "php-httpd-pcre-jit-test"; name = "php-httpd-pcre-jit-test";
machine = { lib, pkgs, ... }: { machine = { lib, pkgs, ... }: {
time.timeZone = "UTC"; time.timeZone = "UTC";
@ -31,9 +31,10 @@ import ./make-test.nix ({ ...}: {
}; };
testScript = { ... }: testScript = { ... }:
'' ''
$machine->waitForUnit('httpd.service'); machine.wait_for_unit("httpd.service")
# Ensure php evaluation by matching on the var_dump syntax # Ensure php evaluation by matching on the var_dump syntax
$machine->succeed('curl -vvv -s http://127.0.0.1:80/index.php \ assert 'string(${toString (builtins.stringLength testString)}) "${testString}"' in machine.succeed(
| grep "string(${toString (builtins.stringLength testString)}) \"${testString}\""'); "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 ]; imports = [ ./common/user-account.nix ];
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = true; services.xserver.displayManager.sddm.enable = true;
services.xserver.displayManager.defaultSession = "plasma5";
services.xserver.desktopManager.plasma5.enable = true; services.xserver.desktopManager.plasma5.enable = true;
services.xserver.desktopManager.default = "plasma5";
services.xserver.displayManager.sddm.autoLogin = { services.xserver.displayManager.sddm.autoLogin = {
enable = true; enable = true;
user = "alice"; user = "alice";

View file

@ -1,4 +1,4 @@
import ./make-test.nix ({ pkgs, ...} : { import ./make-test-python.nix ({ pkgs, ...} : {
name = "postgis"; name = "postgis";
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ lsix ]; maintainers = [ lsix ];
@ -20,10 +20,10 @@ import ./make-test.nix ({ pkgs, ...} : {
}; };
testScript = '' testScript = ''
startAll; start_all()
$master->waitForUnit("postgresql"); master.wait_for_unit("postgresql")
$master->sleep(10); # Hopefully this is long enough!! 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;'")
$master->succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis_topology;'"); master.succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis_topology;'")
''; '';
}) })

View file

@ -5,7 +5,7 @@
# #
# All interfaces are in OSPF Area 0. # All interfaces are in OSPF Area 0.
import ./make-test.nix ({ pkgs, ... }: import ./make-test-python.nix ({ pkgs, ... }:
let let
ifAddr = node: iface: (pkgs.lib.head node.config.networking.interfaces.${iface}.ipv4.addresses).address; ifAddr = node: iface: (pkgs.lib.head node.config.networking.interfaces.${iface}.ipv4.addresses).address;
@ -74,23 +74,23 @@ import ./make-test.nix ({ pkgs, ... }:
testScript = testScript =
{ ... }: { ... }:
'' ''
startAll; start_all()
# Wait for the networking to start on all machines # 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 with subtest("Wait for OSPF to form adjacencies"):
for my $gw ($router1, $router2) { for gw in router1, router2:
$gw->waitForUnit("ospfd"); gw.wait_for_unit("ospfd")
$gw->waitUntilSucceeds("vtysh -c 'show ip ospf neighbor' | grep Full"); gw.wait_until_succeeds("vtysh -c 'show ip ospf neighbor' | grep Full")
$gw->waitUntilSucceeds("vtysh -c 'show ip route' | grep '^O>'"); gw.wait_until_succeeds("vtysh -c 'show ip route' | grep '^O>'")
}
# Test ICMP. with subtest("Test ICMP"):
$client->succeed("ping -c 3 server >&2"); client.wait_until_succeeds("ping -c 3 server >&2")
# Test whether HTTP works. with subtest("Test whether HTTP works"):
$server->waitForUnit("httpd"); server.wait_for_unit("httpd")
$client->succeed("curl --fail http://server/ >&2"); client.succeed("curl --fail http://server/ >&2")
''; '';
}) })

View file

@ -16,9 +16,8 @@ let
imports = [ ./common/user-account.nix ]; imports = [ ./common/user-account.nix ];
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager.sddm.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.windowManager.icewm.enable = true;
services.xserver.desktopManager.default = "none";
}; };
enableOCR = true; enableOCR = true;
@ -52,9 +51,8 @@ let
user = "alice"; user = "alice";
}; };
}; };
services.xserver.windowManager.default = "icewm"; services.xserver.displayManager.defaultSession = "none+icewm";
services.xserver.windowManager.icewm.enable = true; services.xserver.windowManager.icewm.enable = true;
services.xserver.desktopManager.default = "none";
}; };
testScript = { nodes, ... }: let testScript = { nodes, ... }: let

View file

@ -1,4 +1,4 @@
import ./make-test.nix ({ lib, ... }: import ./make-test-python.nix ({ lib, ... }:
with lib; with lib;
@ -11,8 +11,8 @@ with lib;
{ services.sonarr.enable = true; }; { services.sonarr.enable = true; };
testScript = '' testScript = ''
$machine->waitForUnit('sonarr.service'); machine.wait_for_unit("sonarr.service")
$machine->waitForOpenPort('8989'); machine.wait_for_open_port("8989")
$machine->succeed("curl --fail http://localhost:8989/"); machine.succeed("curl --fail http://localhost:8989/")
''; '';
}) })

View file

@ -1,6 +1,6 @@
# Test configuration switching. # Test configuration switching.
import ./make-test.nix ({ pkgs, ...} : { import ./make-test-python.nix ({ pkgs, ...} : {
name = "switch-test"; name = "switch-test";
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ gleber ]; maintainers = [ gleber ];
@ -28,7 +28,11 @@ import ./make-test.nix ({ pkgs, ...} : {
exec env -i "$@" | tee /dev/stderr exec env -i "$@" | tee /dev/stderr
''; '';
in '' in ''
$machine->succeed("${stderrRunner} ${originalSystem}/bin/switch-to-configuration test"); machine.succeed(
$machine->succeed("${stderrRunner} ${otherSystem}/bin/switch-to-configuration test"); "${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 # Regression test for systemd-timesync having moved the state directory without
# upstream providing a migration path. https://github.com/systemd/systemd/issues/12131 # 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, ... }: { common = { lib, ... }: {
# override the `false` value from the qemu-vm base profile # override the `false` value from the qemu-vm base profile
services.timesyncd.enable = lib.mkForce true; services.timesyncd.enable = lib.mkForce true;
@ -25,28 +25,28 @@ in {
}; };
testScript = '' testScript = ''
startAll; start_all()
$current->succeed('systemctl status systemd-timesyncd.service'); current.succeed("systemctl status systemd-timesyncd.service")
# on a new install with a recent systemd there should not be any # on a new install with a recent systemd there should not be any
# leftovers from the dynamic user mess # leftovers from the dynamic user mess
$current->succeed('test -e /var/lib/systemd/timesync'); current.succeed("test -e /var/lib/systemd/timesync")
$current->succeed('test ! -L /var/lib/systemd/timesync'); current.succeed("test ! -L /var/lib/systemd/timesync")
# timesyncd should be running on the upgrading system since we fixed the # timesyncd should be running on the upgrading system since we fixed the
# file bits in the activation script # 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 # 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 # and the new path should no longer be a symlink
$pre1909->succeed('test -e /var/lib/systemd/timesync'); pre1909.succeed("test -e /var/lib/systemd/timesync")
$pre1909->succeed('test ! -L /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 # after a restart things should still work and not fail in the activation
# scripts and cause the boot to fail.. # scripts and cause the boot to fail..
$pre1909->shutdown; pre1909.shutdown()
$pre1909->start; pre1909.start()
$pre1909->succeed('systemctl status systemd-timesyncd.service'); pre1909.succeed("systemctl status systemd-timesyncd.service")
''; '';
}) })

View file

@ -13,7 +13,7 @@ let
in in
import ../make-test.nix ({ pkgs, ...} : { import ../make-test-python.nix ({ pkgs, ...} : {
name = "wireguard-with-namespaces"; name = "wireguard-with-namespaces";
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ asymmetric ]; maintainers = [ asymmetric ];
@ -65,16 +65,14 @@ import ../make-test.nix ({ pkgs, ...} : {
}; };
testScript = '' testScript = ''
startAll(); start_all()
$peer0->waitForUnit("wireguard-wg0.service"); for machine in peer0, peer1, peer2, peer3:
$peer1->waitForUnit("wireguard-wg0.service"); machine.wait_for_unit("wireguard-wg0.service")
$peer2->waitForUnit("wireguard-wg0.service");
$peer3->waitForUnit("wireguard-wg0.service");
$peer0->succeed("ip -n ${socketNamespace} link show wg0"); peer0.succeed("ip -n ${socketNamespace} link show wg0")
$peer1->succeed("ip -n ${interfaceNamespace} link show wg0"); peer1.succeed("ip -n ${interfaceNamespace} link show wg0")
$peer2->succeed("ip -n ${interfaceNamespace} link show wg0"); peer2.succeed("ip -n ${interfaceNamespace} link show wg0")
$peer3->succeed("ip link show wg0"); peer3.succeed("ip link show wg0")
''; '';
}) })

View file

@ -4,10 +4,10 @@ import ./make-test-python.nix ({ pkgs, ...} : {
maintainers = [ nequissimus ]; maintainers = [ nequissimus ];
}; };
machine = { lib, pkgs, ... }: { machine = { pkgs, ... }: {
imports = [ ./common/x11.nix ./common/user-account.nix ]; imports = [ ./common/x11.nix ./common/user-account.nix ];
services.xserver.displayManager.auto.user = "alice"; services.xserver.displayManager.auto.user = "alice";
services.xserver.windowManager.default = lib.mkForce "xmonad"; services.xserver.displayManager.defaultSession = "none+xmonad";
services.xserver.windowManager.xmonad = { services.xserver.windowManager.xmonad = {
enable = true; enable = true;
enableContribAndExtras = true; enableContribAndExtras = true;

View file

@ -2,11 +2,11 @@
pythonPackages.buildPythonApplication rec { pythonPackages.buildPythonApplication rec {
pname = "Mopidy-Iris"; pname = "Mopidy-Iris";
version = "3.42.2"; version = "3.43.0";
src = pythonPackages.fetchPypi { src = pythonPackages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1v1dy857kxxn1si0x7p3qz63l1af5pln1jji1f7fis6id8iy7wfm"; sha256 = "1qg9xyjf27dp0810h4kdliyfb8r3kvi37lq8r93d01xwfphdzs05";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -13,9 +13,9 @@ let
sha256Hash = "1nsm4d3vdx90szqd78a8mjq65xc9m5ipd35cqrlx3c3ny900sqxg"; sha256Hash = "1nsm4d3vdx90szqd78a8mjq65xc9m5ipd35cqrlx3c3ny900sqxg";
}; };
betaVersion = { betaVersion = {
version = "3.6.0.17"; # "Android Studio 3.6 Beta 5" version = "3.6.0.18"; # "Android Studio 3.6 RC 1"
build = "192.6018865"; build = "192.6071332";
sha256Hash = "0qlrdf7a6f5585mrni1aa2chic4n7b9c8lgrj8br6q929hc2f5d9"; sha256Hash = "0xpcihr5xxr9l1kv6aflywshs8fww3s7di0g98mz475whhxwzf3q";
}; };
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "4.0.0.6"; # "Android Studio 4.0 Canary 6" version = "4.0.0.6"; # "Android Studio 4.0 Canary 6"

View file

@ -138,6 +138,7 @@ let
konquest = callPackage ./konquest.nix {}; konquest = callPackage ./konquest.nix {};
konqueror = callPackage ./konqueror.nix {}; konqueror = callPackage ./konqueror.nix {};
korganizer = callPackage ./korganizer.nix {}; korganizer = callPackage ./korganizer.nix {};
kpat = callPackage ./kpat.nix {};
kpimtextedit = callPackage ./kpimtextedit.nix {}; kpimtextedit = callPackage ./kpimtextedit.nix {};
ksmtp = callPackage ./ksmtp {}; ksmtp = callPackage ./ksmtp {};
kqtquickcharts = callPackage ./kqtquickcharts.nix {}; 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, { stdenv, fetchFromGitHub, cmake, curl, xorg, avahi, qtbase, mkDerivation,
openssl, wrapGAppsHook,
avahiWithLibdnssdCompat ? avahi.override { withLibdnssdCompat = true; } avahiWithLibdnssdCompat ? avahi.override { withLibdnssdCompat = true; }
}: }:
@ -13,12 +14,17 @@ mkDerivation rec {
sha256 = "1gbg3p7c0vcsdzsjj1ssx6k8xpj3rpyvais12266f0xvnbvihczd"; 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 = '' postFixup = ''
substituteInPlace "$out/share/applications/barrier.desktop" --replace "Exec=barrier" "Exec=$out/bin/barrier" substituteInPlace "$out/share/applications/barrier.desktop" --replace "Exec=barrier" "Exec=$out/bin/barrier"
''; '';
qtWrapperArgs = [
''--prefix PATH : ${stdenv.lib.makeBinPath [ openssl ]}''
];
meta = { meta = {
description = "Open-source KVM software"; description = "Open-source KVM software";
longDescription = '' longDescription = ''

View file

@ -26,6 +26,11 @@ in stdenv.mkDerivation rec {
sha256 = "0n09jd7yqj18mx6zqbg7kab4idg5llr15g6avafj74fpg1h7iimj"; 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 ]; nativeBuildInputs = [ autoreconfHook libtool pkgconfig ];
buildInputs = [ file gtk2 libGLU gtkglarea ]; buildInputs = [ file gtk2 libGLU gtkglarea ];

View file

@ -1,4 +1,4 @@
{ stdenv, buildGoModule, fetchFromGitHub }: { stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
buildGoModule rec { buildGoModule rec {
pname = "helm"; pname = "helm";
@ -16,6 +16,13 @@ buildGoModule rec {
subPackages = [ "cmd/helm" ]; subPackages = [ "cmd/helm" ];
buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.gitCommit=v${version}" ]; 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; { meta = with stdenv.lib; {
homepage = https://github.com/kubernetes/helm; homepage = https://github.com/kubernetes/helm;
description = "A package manager for kubernetes"; description = "A package manager for kubernetes";

View file

@ -35,7 +35,7 @@ in stdenv.mkDerivation {
# provide desktop item and icon # provide desktop item and icon
cp -r usr/share $out cp -r usr/share $out
substituteInPlace $out/share/applications/franz.desktop \ substituteInPlace $out/share/applications/franz.desktop \
--replace Exec=\"/opt/Franz/franz\" Exec=franz --replace /opt/Franz/franz franz
''; '';
dontWrapGApps = true; dontWrapGApps = true;

View file

@ -59,7 +59,7 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "signal-desktop"; 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. # All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is # When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with: # applied. The expiration date for the current release can be extracted with:
@ -69,7 +69,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "1zbj0z4bhmg6zf975bn67wpr1kdi0h05d90aniijnh5wqgnwhfqn"; sha256 = "12n17d8b31si7gngvv8bhbcid46n18kznv875nyy34i6b97zavmh";
}; };
phases = [ "unpackPhase" "installPhase" ]; phases = [ "unpackPhase" "installPhase" ];

View file

@ -1,7 +1,7 @@
{ theme ? null, stdenv, fetchurl, dpkg, makeWrapper , alsaLib, atk, cairo, { theme ? null, stdenv, fetchurl, dpkg, makeWrapper , alsaLib, atk, cairo,
cups, curl, dbus, expat, fontconfig, freetype, glib , gnome2, gtk3, gdk-pixbuf, cups, curl, dbus, expat, fontconfig, freetype, glib , gnome2, gtk3, gdk-pixbuf,
libappindicator-gtk3, libnotify, libxcb, nspr, nss, pango , systemd, xorg, 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 let
@ -93,7 +93,8 @@ in stdenv.mkDerivation {
# Replace the broken bin/slack symlink with a startup wrapper # Replace the broken bin/slack symlink with a startup wrapper
rm $out/bin/slack rm $out/bin/slack
makeWrapper $out/lib/slack/slack $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 # Fix the desktop link
substituteInPlace $out/share/applications/slack.desktop \ substituteInPlace $out/share/applications/slack.desktop \

View file

@ -4,7 +4,7 @@
, pcre, libdbusmenu-gtk3, libappindicator-gtk3 , pcre, libdbusmenu-gtk3, libappindicator-gtk3
, libvncserver, libpthreadstubs, libXdmcp, libxkbcommon , libvncserver, libpthreadstubs, libXdmcp, libxkbcommon
, libsecret, libsoup, spice-protocol, spice-gtk, epoxy, at-spi2-core , 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. # The themes here are soft dependencies; only icons are missing without them.
, gnome3 , gnome3
}: }:
@ -13,13 +13,13 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "remmina"; pname = "remmina";
version = "1.3.4"; version = "1.3.7";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "Remmina"; owner = "Remmina";
repo = "Remmina"; repo = "Remmina";
rev = "v${version}"; rev = "v${version}";
sha256 = "18p6v2lalpiba0r318grlc2bvqh2qlpjw811i0934g33faviyfj1"; sha256 = "076vz6nzs8v4d44dklsfgmwyhp48c2iywixg032znz193anjcgqn";
}; };
nativeBuildInputs = [ cmake ninja pkgconfig wrapGAppsHook ]; nativeBuildInputs = [ cmake ninja pkgconfig wrapGAppsHook ];
@ -30,7 +30,8 @@ stdenv.mkDerivation rec {
pcre libdbusmenu-gtk3 libappindicator-gtk3 pcre libdbusmenu-gtk3 libappindicator-gtk3
libvncserver libpthreadstubs libXdmcp libxkbcommon libvncserver libpthreadstubs libXdmcp libxkbcommon
libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core 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 = [ cmakeFlags = [

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bedtools"; pname = "bedtools";
version = "2.29.1"; version = "2.29.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "arq5x"; owner = "arq5x";
repo = "bedtools2"; repo = "bedtools2";
rev = "v${version}"; rev = "v${version}";
sha256 = "1vbpjvzl4ppzkan9qgm84bkn9kl3h3m5xz92y18wn1sksxcdq50x"; sha256 = "015qq3pwrwgnyxyi959niijjlswl231b3wxlsm3l8msv6fdhmkz8";
}; };
buildInputs = [ zlib python bzip2 lzma ]; buildInputs = [ zlib python bzip2 lzma ];

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "lab"; pname = "lab";
version = "0.17.1"; version = "0.17.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zaquestion"; owner = "zaquestion";
repo = "lab"; repo = "lab";
rev = "v${version}"; rev = "v${version}";
sha256 = "1z83v1dl9c5f99jvvc23ijkwrfrv489la05rlsrc3r4zzza1hx1f"; sha256 = "0zkwvmzgj7h8lc8jkg2a81392b28c8hkwqzj6dds6q4asbmymx5c";
}; };
subPackages = [ "." ]; subPackages = [ "." ];

View file

@ -287,10 +287,16 @@ rec {
# unless there are more paths than $maxLayers. In that case, create # unless there are more paths than $maxLayers. In that case, create
# $maxLayers-1 for the most popular layers, and smush the remainaing # $maxLayers-1 for the most popular layers, and smush the remainaing
# store paths in to one final layer. # 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 = { mkManyPureLayers = {
name, name,
# Files to add to the layer. # Files to add to the layer.
closure, closures,
configJson, configJson,
# Docker has a 125-layer maximum, we pick 100 to ensure there is # Docker has a 125-layer maximum, we pick 100 to ensure there is
# plenty of room for extension. # plenty of room for extension.
@ -303,10 +309,12 @@ rec {
isExecutable = true; isExecutable = true;
src = ./store-path-to-layer.sh; src = ./store-path-to-layer.sh;
}; };
overallClosure = writeText "closure" (lib.concatStringsSep " " closures);
in in
runCommand "${name}-granular-docker-layers" { runCommand "${name}-granular-docker-layers" {
inherit maxLayers; inherit maxLayers;
paths = referencesByPopularity closure; paths = referencesByPopularity overallClosure;
nativeBuildInputs = [ jshon rsync tarsum ]; nativeBuildInputs = [ jshon rsync tarsum ];
enableParallelBuilding = true; enableParallelBuilding = true;
} }
@ -317,15 +325,20 @@ rec {
| jshon -d config \ | jshon -d config \
| jshon -s "1970-01-01T00:00:01Z" -i created > generic.json | jshon -s "1970-01-01T00:00:01Z" -i created > generic.json
# WARNING! # WARNING!
# The following code is fiddly w.r.t. ensuring every layer is # The following code is fiddly w.r.t. ensuring every layer is
# created, and that no paths are missed. If you change the # created, and that no paths are missed. If you change the
# following head and tail call lines, double-check that your # following head and tail call lines, double-check that your
# code behaves properly when the number of layers equals: # code behaves properly when the number of layers equals:
# maxLayers-1, maxLayers, and maxLayers+1 # maxLayers-1, maxLayers, and maxLayers+1
head -n $((maxLayers - 1)) $paths | cat -n | xargs -P$NIX_BUILD_CORES -n2 ${storePathToLayer} paths() {
if [ $(cat $paths | wc -l) -ge $maxLayers ]; then cat $paths ${lib.concatMapStringsSep " " (path: "| grep -v ${path}") (closures ++ [ overallClosure ])}
tail -n+$maxLayers $paths | xargs ${storePathToLayer} $maxLayers }
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 fi
echo "Finished building layer '$name'" echo "Finished building layer '$name'"
@ -534,7 +547,12 @@ rec {
}: }:
let let
baseName = baseNameOf name; 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 configJson = let
pure = writeText "${baseName}-config.json" (builtins.toJSON { pure = writeText "${baseName}-config.json" (builtins.toJSON {
@ -551,7 +569,7 @@ rec {
bulkLayers = mkManyPureLayers { bulkLayers = mkManyPureLayers {
name = baseName; name = baseName;
closure = writeText "closure" "${contentsEnv} ${configJson}"; closures = [ contentsEnv configJson ];
# One layer will be taken up by the customisationLayer, so # One layer will be taken up by the customisationLayer, so
# take up one less. # take up one less.
maxLayers = maxLayers - 1; 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 { stdenv.mkDerivation rec {
pname = "sierra-gtk-theme"; pname = "sierra-gtk-theme";
version = "2019-05-07"; version = "2019-12-16";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vinceliuice"; owner = "vinceliuice";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0rm9lcwp89ljxqrya9bi882qcs339pc1l945cr1xq2rganqyk9cq"; sha256 = "14hlz8kbrjypyd6wyrwmnj2wm9w3kc8y00ms35ard7x8lmhs56hr";
}; };
nativeBuildInputs = [ libxml2 ]; nativeBuildInputs = [ libxml2 ];

View file

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

View file

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

View file

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

View file

@ -43,6 +43,10 @@ stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=${placeholder "out"}" ]; makeFlags = [ "PREFIX=${placeholder "out"}" ];
passthru = {
providedSessions = [ "surf-display" ];
};
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Kiosk browser session manager based on the surf browser"; description = "Kiosk browser session manager based on the surf browser";
homepage = "https://code.it-zukunft-schule.de/cgit/surf-display/"; 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, mkDerivation, lib,
extra-cmake-modules, gettext, python, extra-cmake-modules, gettext, python3,
qtbase, qtdeclarative, qtscript, qtbase, qtdeclarative, qtscript,
}: }:
@ -11,6 +11,6 @@ mkDerivation {
broken = builtins.compareVersions qtbase.version "5.7.0" < 0; broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
}; };
nativeBuildInputs = [ extra-cmake-modules ]; nativeBuildInputs = [ extra-cmake-modules ];
propagatedNativeBuildInputs = [ gettext python ]; propagatedNativeBuildInputs = [ gettext python3 ];
buildInputs = [ qtdeclarative qtscript ]; 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 , cmake
, fetchurl , fetchurl
, python , python
, liblapack , openblas
, gfortran , gfortran
, lapackSupport ? true }: , lapackSupport ? true }:
let liblapackShared = liblapack.override { let openblas32 = openblas.override { blas64 = false; };
shared = true;
};
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "sundials"; pname = "sundials";
version = "5.0.0"; version = "5.0.0";
buildInputs = [ python ] ++ stdenv.lib.optionals (lapackSupport) [ gfortran ]; buildInputs = [ python ] ++ stdenv.lib.optionals (lapackSupport) [ gfortran openblas32 ];
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
src = fetchurl { src = fetchurl {
@ -40,7 +38,7 @@ in stdenv.mkDerivation rec {
] ++ stdenv.lib.optionals (lapackSupport) [ ] ++ stdenv.lib.optionals (lapackSupport) [
"-DSUNDIALS_INDEX_TYPE=int32_t" "-DSUNDIALS_INDEX_TYPE=int32_t"
"-DLAPACK_ENABLE=ON" "-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; doCheck = true;

View file

@ -49,12 +49,12 @@ let
}; };
in { in {
wt3 = generic { wt3 = generic {
version = "3.4.2"; version = "3.5.0";
sha256 = "03mwr4yv3705y74pdh19lmh8szad6gk2x2m23f4pr0wrmqg73307"; sha256 = "1xcwzldbval5zrf7f3n2gkpscagg51cw2jp6p3q1yh6bi59haida";
}; };
wt4 = generic { wt4 = generic {
version = "4.1.2"; version = "4.2.0";
sha256 = "06bnadpgflg8inikzynnz4l4r6w1bphjwlva4pzf51w648vpkknl"; sha256 = "0zrrdjz0sa8hrmybjp4aap1lcqcqvsicd7dj49zj1m5k8gnfpm4v";
}; };
} }

View file

@ -1,26 +1,34 @@
{ buildPythonPackage { lib, buildPythonPackage, fetchPypi
, fetchPypi
, nose , nose
, pytest
, numpy , numpy
, pytest
, python , python
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "Bottleneck"; pname = "Bottleneck";
version = "1.2.1"; version = "1.3.1";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "6efcde5f830aed64feafca0359b51db0e184c72af8ba6675b4a99f263922eb36"; sha256 = "0a2a94zahl3kqld2n9dm58fvazz9s52sa16nd8yn5jv20hvqc5a5";
}; };
checkInputs = [ pytest nose ];
propagatedBuildInputs = [ numpy ]; propagatedBuildInputs = [ numpy ];
checkPhase = ''
py.test -p no:warnings $out/${python.sitePackages}
'';
postPatch = '' postPatch = ''
substituteInPlace setup.py --replace "__builtins__.__NUMPY_SETUP__ = False" "" 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 { buildPythonPackage rec {
pname = "dask"; pname = "dask";
version = "2.6.0"; version = "2.9.0";
disabled = pythonOlder "3.5"; disabled = pythonOlder "3.5";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "81c7891f0d2e7ac03d1f7fabf1f639360a1db52c03a7155ba9b08e9ee6280f2b"; sha256 = "1w1hqr8vyx6ygwflj2737dcy0mmgvrc0s602gnny8pzlcbs9m76b";
}; };
checkInputs = [ pytest ]; checkInputs = [ pytest ];

View file

@ -6,6 +6,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "ics"; pname = "ics";
version = "0.6"; version = "0.6";
disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "C4ptainCrunch"; owner = "C4ptainCrunch";
@ -15,9 +16,16 @@ buildPythonPackage rec {
}; };
propagatedBuildInputs = [ tatsu arrow ]; 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; { meta = with stdenv.lib; {
description = "Pythonic and easy iCalendar library (RFC 5545)"; 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 , jaraco_functools
, setuptools_scm
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "jaraco.text"; pname = "jaraco.text";
version = "3.1"; version = "3.2.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; 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; 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 { buildPythonPackage rec {
pname = "mypy"; 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. # Tests not included in pip package.
doCheck = false; doCheck = false;
src = fetchPypi { pythonImportsCheck = [
inherit pname version; "mypy"
sha256 = "48c8bc99380575deb39f5d3400ebb6a8a1cb5cc669bbba4d3bb30f904e0a0e7d"; "mypy.types"
}; "mypy.api"
"mypy.fastparse"
disabled = !isPy3k; "mypy.report"
];
propagatedBuildInputs = [ typed-ast psutil mypy-extensions typing-extensions ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Optional static typing for Python"; 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 { buildGoModule rec {
pname = "tflint"; pname = "tflint";
version = "0.13.2"; version = "0.13.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "terraform-linters"; owner = "terraform-linters";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "16iv2z4krx8ixifpq0r784xspknmj0bbvhx10mnq97v49j5c03qi"; sha256 = "13azczm5lg9v5mvf1jx165qy2nj2941qlr9vvxa7q3gqmhxcg271";
}; };
modSha256 = "1rk22w4b5iq6fp3jwpcpnb6y2frbrggxkhdm3ipp8c5savq2wbqh"; modSha256 = "0xckzyfc144bc212amw1n63jkmdljbmj0rq0midr37h6bg5a10q3";
subPackages = [ "." ]; subPackages = [ "." ];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "yarn"; pname = "yarn";
version = "1.19.2"; version = "1.21.1";
src = fetchzip { src = fetchzip {
url = "https://github.com/yarnpkg/yarn/releases/download/v${version}/yarn-v${version}.tar.gz"; url = "https://github.com/yarnpkg/yarn/releases/download/v${version}/yarn-v${version}.tar.gz";
sha256 = "05sjf7pgdj3hh92j2xxl683frrkiw1rqxs72z3an4gb83nllvi0n"; sha256 = "1yw3v62a6309f9hr189870i9jw2a15pkians1nnfjqczzh7r5pih";
}; };
buildInputs = [ nodejs ]; buildInputs = [ nodejs ];

View file

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

View file

@ -5,8 +5,8 @@ let
in in
buildNodejs { buildNodejs {
inherit enableNpm; inherit enableNpm;
version = "12.13.1"; version = "12.14.0";
sha256 = "14mia71sr8p0ibz9g4j5xb5qwmik36qi5nhabjbv0sy2kirkm7il"; sha256 = "0wdyz6fymkf2pfb5bf5ddcza7f2n55p9zqjvq661nr5gl9xj32h8";
patches = stdenv.lib.optionals stdenv.isDarwin [ ./disable-libatomic-darwin.patch ]; 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 <cups/raster.h>
#include "LabelWriterDriver.h" #include "LabelWriterDriver.h"
#include "LabelWriterLanguageMonitor.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 { coc-java = buildVimPluginFrom2Nix {
pname = "coc-java"; pname = "coc-java";
version = "2019-10-31"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "neoclide"; owner = "neoclide";
repo = "coc-java"; repo = "coc-java";
rev = "77f7ecd8e6cc0af7a0cf293616b9f66a61a41f44"; rev = "4be4a57ad8f888ef92974ccb6e685358498863f1";
sha256 = "13qhw4gdl5p4imzmgickay6lc4hlnw5fsc46zw5qyqq7p88wgym9"; sha256 = "15175bphaiih5j63bigj5sblcyqjj68g3k81wn7dwgwdpglf1mwf";
}; };
}; };
@ -733,12 +733,12 @@ let
csv-vim = buildVimPluginFrom2Nix { csv-vim = buildVimPluginFrom2Nix {
pname = "csv-vim"; pname = "csv-vim";
version = "2019-12-11"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "chrisbra"; owner = "chrisbra";
repo = "csv.vim"; repo = "csv.vim";
rev = "3128891191d7e363d39cbe70b96281ec8d897bcb"; rev = "012cd2637d48aa33541078451d70d66930e03e0f";
sha256 = "1qapfsk4z637rqi9mppac50gliyi957cvl2dfknq0dy856a11274"; sha256 = "1gaqxhpzskcc28qma6vcjwig8v3q3a8sf7b2ckm14i7cb4c1lyh5";
}; };
}; };
@ -843,12 +843,12 @@ let
denite-nvim = buildVimPluginFrom2Nix { denite-nvim = buildVimPluginFrom2Nix {
pname = "denite-nvim"; pname = "denite-nvim";
version = "2019-12-13"; version = "2019-12-16";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Shougo"; owner = "Shougo";
repo = "denite.nvim"; repo = "denite.nvim";
rev = "13c8542818f418d1207c368f0072072c793f58c1"; rev = "35ceadf33e1248caead987fc83f01336b81d98fb";
sha256 = "1xrpmrr6wmy88s23j4cxcpsj9wlw7ak48sg3hjqpni9w231kp7a9"; sha256 = "1bazm1n2hqgg13yp5gywzghq310qhkbfqg1v42lyvc0gax8dngzj";
}; };
}; };
@ -899,12 +899,12 @@ let
deoplete-go = buildVimPluginFrom2Nix { deoplete-go = buildVimPluginFrom2Nix {
pname = "deoplete-go"; pname = "deoplete-go";
version = "2019-12-13"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zchee"; owner = "zchee";
repo = "deoplete-go"; repo = "deoplete-go";
rev = "a3ac3f53f0af482095ebcf09af8ca1d1edce45bc"; rev = "dffbe97e48e09e9e1cd3c5fed7365b8117e2df25";
sha256 = "19xgsm5mbfcpdb0csckbwi83gl3b4wqdn8vchbv8j9faf10qnf2b"; sha256 = "12p40sr6r9l7ngqynylffpms3cznym12djgbm4448kqcymj2imnz";
fetchSubmodules = true; fetchSubmodules = true;
}; };
}; };
@ -989,12 +989,12 @@ let
deoplete-nvim = buildVimPluginFrom2Nix { deoplete-nvim = buildVimPluginFrom2Nix {
pname = "deoplete-nvim"; pname = "deoplete-nvim";
version = "2019-12-10"; version = "2019-12-18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Shougo"; owner = "Shougo";
repo = "deoplete.nvim"; repo = "deoplete.nvim";
rev = "e9aad25f28b68581cea2d94400b9fa64b724773b"; rev = "18681650e81e809cd56e1006cf92cd7f9108266b";
sha256 = "0wy5qapj6hfxj4ir38lb823zsgj6nqhi4r2sv0bm23g25sykg6ry"; sha256 = "0rlh97bdmiagrxs9gqjvrimpqcj9w0ys77l0kyxb111zcgcr8s9s";
}; };
}; };
@ -1212,12 +1212,12 @@ let
fzf-vim = buildVimPluginFrom2Nix { fzf-vim = buildVimPluginFrom2Nix {
pname = "fzf-vim"; pname = "fzf-vim";
version = "2019-11-24"; version = "2019-12-18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "junegunn"; owner = "junegunn";
repo = "fzf.vim"; repo = "fzf.vim";
rev = "65edb6ad99b51514aaf29afc25e35ce5f05281ba"; rev = "f71f4808d966da8be760f94fda131bc7d29f7d8f";
sha256 = "1d40whzc21c4zbzssjwvhzddyb0a106ib8r4zzzdd61s1935z4xr"; sha256 = "1l34yz0cwgxsacscmasj634jg6hfhpial4m1a7j9c907ljdkabpr";
}; };
}; };
@ -2027,12 +2027,12 @@ let
nord-vim = buildVimPluginFrom2Nix { nord-vim = buildVimPluginFrom2Nix {
pname = "nord-vim"; pname = "nord-vim";
version = "2019-05-25"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "arcticicestudio"; owner = "arcticicestudio";
repo = "nord-vim"; repo = "nord-vim";
rev = "9f7ce848723f69e33792e5606091bbfd5739d253"; rev = "f06189a4c054fe8c22e46aca4d451e03456f2283";
sha256 = "1n6kdnll5jh92kfbwwm8544mpp7c2awqsaps91agqjd3nwa5x27x"; sha256 = "0gk4zq0gz3nnwfkldswg9bjpk0gf6d6mgfzcgvj0pnlbja6ass81";
}; };
}; };
@ -2820,12 +2820,12 @@ let
typescript-vim = buildVimPluginFrom2Nix { typescript-vim = buildVimPluginFrom2Nix {
pname = "typescript-vim"; pname = "typescript-vim";
version = "2019-06-23"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "leafgarland"; owner = "leafgarland";
repo = "typescript-vim"; repo = "typescript-vim";
rev = "5a319ea5504e18215d155576c78d1b7fb8e22c8f"; rev = "2ca6afd1c05e89164bb29aaad82da35d5cf582a3";
sha256 = "1hz42blc1sshkms9ramdhzwnphqs26p83q8smw5y14blp1zdb628"; sha256 = "0jvyi4gy9pc2kd0b1yc118f16p1qrjphxvpa0bl7q2rvyk49742s";
}; };
}; };
@ -3150,34 +3150,34 @@ let
vim-airline = buildVimPluginFrom2Nix { vim-airline = buildVimPluginFrom2Nix {
pname = "vim-airline"; pname = "vim-airline";
version = "2019-12-15"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vim-airline"; owner = "vim-airline";
repo = "vim-airline"; repo = "vim-airline";
rev = "929cf2e21f84e989da2abd9aa5102848db61565b"; rev = "98326670b604f522741b02baee82bf25141fbbc4";
sha256 = "1rp2m5qpc763plybp1arzgrrmn8kg21sgnwac62k98w2s1c0x4jd"; sha256 = "0n7avla6z8dnixbr1rc505yyb4bfc3sr69wnv6fj15j4kkx4k319";
}; };
}; };
vim-airline-themes = buildVimPluginFrom2Nix { vim-airline-themes = buildVimPluginFrom2Nix {
pname = "vim-airline-themes"; pname = "vim-airline-themes";
version = "2019-12-13"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vim-airline"; owner = "vim-airline";
repo = "vim-airline-themes"; repo = "vim-airline-themes";
rev = "67512f5e81b8ad088a8cbfe8b95f9e495bc81cf3"; rev = "1eecd5b1c02c88ad2f8303757f453e2d7f0bd414";
sha256 = "049lnixxcvvnkq5bfwpmclw1k73xyf5gqfpw78rkzsbg9milyr74"; sha256 = "08rjqjl0v5nsq8nf7ajv60jx41pmc5ym8mjbndlycz22hrsw8aq8";
}; };
}; };
vim-android = buildVimPluginFrom2Nix { vim-android = buildVimPluginFrom2Nix {
pname = "vim-android"; pname = "vim-android";
version = "2019-11-01"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hsanson"; owner = "hsanson";
repo = "vim-android"; repo = "vim-android";
rev = "928a7ba76ee7b48a715b397543f21ee28a9959da"; rev = "0849bcb6523d17a753fcaff8d40cbeed2d09cf65";
sha256 = "1cdjjyzmclzc32i1wcc5k67laz75yvi4jj2yc1fxa95bbq9zi0h5"; sha256 = "1z3x72aprp950chk754h0qpf5lxh2svzk39flks5fanxaggkpkng";
}; };
}; };
@ -3502,12 +3502,12 @@ let
vim-dirvish = buildVimPluginFrom2Nix { vim-dirvish = buildVimPluginFrom2Nix {
pname = "vim-dirvish"; pname = "vim-dirvish";
version = "2019-11-16"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "justinmk"; owner = "justinmk";
repo = "vim-dirvish"; repo = "vim-dirvish";
rev = "4d7b4d4e2db72e95ea03c6ef757b01cbc128179e"; rev = "9c12328df924ddb875ee1e5c9fc0f939b62d6a6c";
sha256 = "0ab7ivgkfaji0yl6mcx03nmr304vmdwxwiw0an94fa6wbhk0y9yl"; 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 { vim-eunuch = buildVimPluginFrom2Nix {
pname = "vim-eunuch"; pname = "vim-eunuch";
version = "2019-11-13"; version = "2019-11-13";
@ -3832,12 +3843,12 @@ let
vim-go = buildVimPluginFrom2Nix { vim-go = buildVimPluginFrom2Nix {
pname = "vim-go"; pname = "vim-go";
version = "2019-12-16"; version = "2019-12-18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "fatih"; owner = "fatih";
repo = "vim-go"; repo = "vim-go";
rev = "0e33a2334d5cafc9754cc78c079ded7efbedc3fa"; rev = "9d912c9d908a45f8a583679753a480e6a0461da3";
sha256 = "1phsnha6m7h5nd9smjij7xr7v5wqs2dza7bvdy18fjlv0rlfcgzc"; sha256 = "1z002n6mryhk2hi0arqyqaiayd6i14w2l5b2bmzj0g8vkk1kr41n";
}; };
}; };
@ -4107,12 +4118,12 @@ let
vim-javacomplete2 = buildVimPluginFrom2Nix { vim-javacomplete2 = buildVimPluginFrom2Nix {
pname = "vim-javacomplete2"; pname = "vim-javacomplete2";
version = "2019-12-07"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "artur-shaik"; owner = "artur-shaik";
repo = "vim-javacomplete2"; repo = "vim-javacomplete2";
rev = "f2c7ab94d29604128a38cb6626dac03e7cad5418"; rev = "dc7951895a98c49c39622f65cdd7b39374c348bc";
sha256 = "1bgg9jy61ygyrx16n20xvyp1wnqfgk857dc5jw2mwv9iq1hg0lvn"; sha256 = "1d8xiiwfg5wz57jyy7ahbi2bl5sjkhkpkqm2qbhsn7cd9vk36sxy";
}; };
}; };
@ -4317,12 +4328,12 @@ let
vim-lsc = buildVimPluginFrom2Nix { vim-lsc = buildVimPluginFrom2Nix {
pname = "vim-lsc"; pname = "vim-lsc";
version = "2019-12-16"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "natebosch"; owner = "natebosch";
repo = "vim-lsc"; repo = "vim-lsc";
rev = "64fa57aca10345031fab6db0065cf758f3dc1bdb"; rev = "0fd38b8a93ab16d380aed8467a5059e5b3932a2e";
sha256 = "1cxif26wn7qjplikbfdbkrj94mcpf9fk02gik2qfwicib0p83bfi"; sha256 = "06jz7f5npwm2iknpfmzz5x8lw5377hzc5kpg6n5p2icjwzaha6mz";
}; };
}; };
@ -5142,12 +5153,12 @@ let
vim-table-mode = buildVimPluginFrom2Nix { vim-table-mode = buildVimPluginFrom2Nix {
pname = "vim-table-mode"; pname = "vim-table-mode";
version = "2019-12-10"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dhruvasagar"; owner = "dhruvasagar";
repo = "vim-table-mode"; repo = "vim-table-mode";
rev = "5ac34a22dbf70e3c8afd7cc69726cec89655c4ad"; rev = "0af25d72ebc0271648c8f91c0ce5c59174d2761b";
sha256 = "1rs68islvz2rd3ahgfk06q9ydr3ph25zh4amg8vk1svqhk1vh0mp"; sha256 = "1wqfc8bilknz1j1spk3iag99hmz5f1w87v95rb3cyp46ymrf9dcv";
}; };
}; };
@ -5395,12 +5406,12 @@ let
vim-visual-multi = buildVimPluginFrom2Nix { vim-visual-multi = buildVimPluginFrom2Nix {
pname = "vim-visual-multi"; pname = "vim-visual-multi";
version = "2019-11-29"; version = "2019-12-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mg979"; owner = "mg979";
repo = "vim-visual-multi"; repo = "vim-visual-multi";
rev = "7c1934f91b33f64836d0e0d27e08481849831266"; rev = "9b06b851a7e822f3a2604a5d1505e387b62f3827";
sha256 = "1ga0skivc5p09d29k4gx2gdisalcl9514062ckddphynqn69ghi9"; sha256 = "0g1wf5p905y653vl0cxb6idbr8panvj10hwz7hl50dybfc0zky7m";
}; };
}; };

View file

@ -12,6 +12,7 @@ amiorin/ctrlp-z
andreshazard/vim-logreview andreshazard/vim-logreview
andsild/peskcolor.vim andsild/peskcolor.vim
andviro/flake8-vim andviro/flake8-vim
andys8/vim-elm-syntax
ap/vim-css-color ap/vim-css-color
arcticicestudio/nord-vim arcticicestudio/nord-vim
artur-shaik/vim-javacomplete2 artur-shaik/vim-javacomplete2

View file

@ -3,7 +3,7 @@
with stdenv.lib; with stdenv.lib;
buildLinux (args // rec { 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 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; modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@ -13,6 +13,6 @@ buildLinux (args // rec {
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "1cqvr8pgqx005a9qyphqykakzwc54adq8mmdc9sgrxkkw9rfqj8d"; sha256 = "1wi6m3w40z0v9krb12g9q09s9y471r51rhcv3qa81lc53cx2vm78";
}; };
} // (args.argsOverride or {})) } // (args.argsOverride or {}))

View file

@ -3,7 +3,7 @@
with stdenv.lib; with stdenv.lib;
buildLinux (args // rec { 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 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; modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@ -13,6 +13,6 @@ buildLinux (args // rec {
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "0ijx8ih91p4g95zpwz6ga3q2x9lf1948xf2v5mz4348byf5hdwv8"; sha256 = "1zgpbim9019aymvgh0fr5g2r9j2xspw14amlnk09w5mgdl56rn19";
}; };
} // (args.argsOverride or {})) } // (args.argsOverride or {}))

View file

@ -3,7 +3,7 @@
with stdenv.lib; with stdenv.lib;
buildLinux (args // rec { 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 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; modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@ -13,6 +13,6 @@ buildLinux (args // rec {
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
sha256 = "19asdv08rzp33f0zxa2swsfnbhy4zwg06agj7sdnfy4wfkrfwx49"; sha256 = "133342nv9ddjad2rizmcbilg9rhg339sfqr9l77j4cgkqhblkw90";
}; };
} // (args.argsOverride or {})) } // (args.argsOverride or {}))

View file

@ -3,7 +3,7 @@
with stdenv.lib; with stdenv.lib;
buildLinux (args // rec { 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 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; modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@ -13,6 +13,6 @@ buildLinux (args // rec {
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
sha256 = "0lgfg31pgvdhkh9y4y4yh075mlk3qa6npxp7n19yxcg168pnhcb7"; sha256 = "1h1ynb51gd4kiakqlkcc7vny45j2snbg4j985qf171mszckrz3jn";
}; };
} // (args.argsOverride or {})) } // (args.argsOverride or {}))

View file

@ -1,8 +1,8 @@
{ stdenv, lib, fetchsvn, linux { stdenv, lib, fetchsvn, linux
, scripts ? fetchsvn { , scripts ? fetchsvn {
url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/"; url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
rev = "17112"; rev = "17119";
sha256 = "049vmi9q1vrcrq9p1zxj6bhhpkgy8fsyh955b54z3xlw7czng1s1"; sha256 = "0hyd7wp73w4555d42xcvk4x4nxrfckbzah2ckb4d2aqzxab87789";
} }
, ... , ...
}: }:

View file

@ -5,11 +5,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "atlassian-confluence"; pname = "atlassian-confluence";
version = "7.0.3"; version = "7.2.0";
src = fetchurl { src = fetchurl {
url = "https://product-downloads.atlassian.com/software/confluence/downloads/${pname}-${version}.tar.gz"; url = "https://product-downloads.atlassian.com/software/confluence/downloads/${pname}-${version}.tar.gz";
sha256 = "1anmhfdy4q74wchzha8fd2bd5hx0a2v3bgp9p5yvb8cal31zqcpd"; sha256 = "1srwxk9c26hp1j3v6v1hr16l4dqaaiwrli5a9n9a44hkl7qy8yzl";
}; };
buildPhase = '' buildPhase = ''
@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Team collaboration software written in Java and mainly used in corporate environments"; 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; license = licenses.unfree;
maintainers = with maintainers; [ fpletz globin ]; maintainers = with maintainers; [ fpletz globin willibutz ];
}; };
} }

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "dovecot-pigeonhole"; pname = "dovecot-pigeonhole";
version = "0.5.8"; version = "0.5.9";
src = fetchurl { src = fetchurl {
url = "https://pigeonhole.dovecot.org/releases/2.3/dovecot-2.3-pigeonhole-${version}.tar.gz"; url = "https://pigeonhole.dovecot.org/releases/2.3/dovecot-2.3-pigeonhole-${version}.tar.gz";
sha256 = "08lhfl877xm790f1mqdhvz74xqr2kkl8wpz2m6p0j6hv1kan1f4g"; sha256 = "01dxidrnmrr2gqggfsgkfxa6ynvyjyw13xw32gi86yqmwnm6inin";
}; };
buildInputs = [ dovecot openssl ]; buildInputs = [ dovecot openssl ];

View file

@ -23,11 +23,11 @@ let
in buildPythonApplication rec { in buildPythonApplication rec {
pname = "matrix-synapse"; pname = "matrix-synapse";
version = "1.7.0"; version = "1.7.1";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1z7q34yazjb3glzhm0si0pzif32gnp03bmd490gckkl30rklyxsp"; sha256 = "1aix4n4nk90xh6y3w3gvq3wzvykzz7mhj9isl437nid7mf9mcj6n";
}; };
patches = [ 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, fetchgit }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2019-12-07"; version = "2019-12-18";
pname = "oh-my-zsh"; pname = "oh-my-zsh";
rev = "664664f6cd8a1c02a38063c8f2104f0515a19399"; rev = "7dddfe0a39b75acbe265c47b6d1dc575d6dedd9f";
src = fetchgit { inherit rev; src = fetchgit { inherit rev;
url = "https://github.com/ohmyzsh/ohmyzsh"; url = "https://github.com/ohmyzsh/ohmyzsh";
sha256 = "0d9x4fp9hxyk3h4jlq74v5k9xyngcx1g45aihikyj6fzqk2h1pax"; sha256 = "14p723ax6l24kwi72dwl3zjd7907p0f38bdhwk527fpihm7vgrj0";
}; };
pathsToLink = [ "/share/oh-my-zsh" ]; pathsToLink = [ "/share/oh-my-zsh" ];

View file

@ -67,7 +67,7 @@ let
isUnfree (lib.lists.toList attrs.meta.license) && isUnfree (lib.lists.toList attrs.meta.license) &&
!allowUnfreePredicate attrs; !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; allowInsecurePredicate = x: (config.allowInsecurePredicate or allowInsecureDefaultPredicate) x;
hasAllowedInsecure = attrs: hasAllowedInsecure = attrs:

View file

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
pname = "restic"; pname = "restic";
version = "0.9.5"; version = "0.9.6";
goPackagePath = "github.com/restic/restic"; goPackagePath = "github.com/restic/restic";
@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "restic"; owner = "restic";
repo = "restic"; repo = "restic";
rev = "v${version}"; rev = "v${version}";
sha256 = "1bhn3xwlycpnjg2qbqblwxn3apj43lr5cakgkmrblk13yfwfv5xv"; sha256 = "0lydll93n1lcn1fl669b9cikmzz9d6vfpc8ky3ng5fi8kj3v1dz7";
}; };
buildPhase = '' buildPhase = ''

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fluent-bit"; pname = "fluent-bit";
version = "1.3.4"; version = "1.3.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "fluent"; owner = "fluent";
repo = "fluent-bit"; repo = "fluent-bit";
rev = "v${version}"; rev = "v${version}";
sha256 = "01iy8xgsyc1clhpik4nmkxw6xnblzswvn35qz4h4p5sw97c4iwq8"; sha256 = "0xwh8fnvahcyygz0ydi4pdzgsyvjaphwl3f2ccdas52fbirwnicn";
}; };
nativeBuildInputs = [ cmake flex bison ]; nativeBuildInputs = [ cmake flex bison ];

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