Skip to content

Commit

Permalink
Merge staging-next into staging
Browse files Browse the repository at this point in the history
  • Loading branch information
FRidh committed Aug 5, 2020
2 parents cc7b4ff + 834e04c commit 41f03e6
Show file tree
Hide file tree
Showing 55 changed files with 810 additions and 277 deletions.
2 changes: 0 additions & 2 deletions .github/workflows/editorconfig.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: "Checking EditorConfig"

on:
pull_request:
branches:
- master

jobs:
tests:
Expand Down
6 changes: 6 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9267,4 +9267,10 @@
github = "deifactor";
githubId = 30192992;
};
fzakaria = {
name = "Farid Zakaria";
email = "farid.m.zakaria@gmail.com";
github = "fzakaria";
githubId = 605070;
};
}
10 changes: 10 additions & 0 deletions maintainers/team-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,16 @@ with lib.maintainers; {
scope = "Maintain GNOME desktop environment and platform.";
};

jitsi = {
members = [
mmilata
petabyteboy
prusnak
ryantm
];
scope = "Maintain Jitsi.";
};

matrix = {
members = [
ma27
Expand Down
32 changes: 31 additions & 1 deletion nixos/doc/manual/release-notes/rl-2009.xml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,11 @@ systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
The various documented workarounds to use steam have been converted to a module. <varname>programs.steam.enable</varname> enables steam, controller support and the workarounds.
</para>
</listitem>
<listitem>
<para>
Support for built-in LCDs in various pieces of Logitech hardware (keyboards and USB speakers). <varname>hardware.logitech.lcd.enable</varname> enables support for all hardware supported by the g15daemon project.
</para>
</listitem>
</itemizedlist>
</section>

Expand Down Expand Up @@ -548,7 +553,7 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
<para>
The <literal>bitcoind</literal> module has changed to multi-instance, using submodules.
Therefore, it is now mandatory to name each instance.
To use this new multi-instance config with an existing bitcoind data directory and user,
To use this new multi-instance config with an existing bitcoind data directory and user,
you have to adjust the original config, e.g.:
<programlisting>
services.bitcoind = {
Expand Down Expand Up @@ -588,6 +593,31 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
When updating Graylog from a version before 3.3.3 make sure to check the Graylog <link xlink:href="https://www.graylog.org/post/announcing-graylog-v3-3-3">release info</link> for information on how to avoid the issue.
</para>
</listitem>
<listitem>
<para>
The <literal>dokuwiki</literal> module has changed to multi-instance, using submodules.
Therefore, it is now mandatory to name each instance. Moreover, forcing SSL by default has been dropped, so
<literal>nginx.forceSSL</literal> and <literal>nginx.enableACME</literal> are no longer set to <literal>true</literal>.
To continue using your service with the original SSL settings, you have to adjust the original config, e.g.:
<programlisting>
services.dokuwiki = {
enable = true;
...
};
</programlisting>
To something similar:
<programlisting>
services.dokuwiki."mywiki" = {
enable = true;
nginx = {
forceSSL = true;
enableACME = true;
};
...
};
</programlisting>
</para>
</listitem>
</itemizedlist>
</section>

Expand Down
94 changes: 81 additions & 13 deletions nixos/modules/hardware/logitech.nix
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,92 @@ with lib;
let
cfg = config.hardware.logitech;

in {
vendor = "046d";

daemon = "g15daemon";

in
{
imports = [
(mkRenamedOptionModule [ "hardware" "logitech" "enable" ] [ "hardware" "logitech" "wireless" "enable" ])
(mkRenamedOptionModule [ "hardware" "logitech" "enableGraphical" ] [ "hardware" "logitech" "wireless" "enableGraphical" ])
];

options.hardware.logitech = {
enable = mkEnableOption "Logitech Devices";

enableGraphical = mkOption {
type = types.bool;
default = false;
description = "Enable graphical support applications.";
lcd = {
enable = mkEnableOption "Logitech LCD Devices";

startWhenNeeded = mkOption {
type = types.bool;
default = true;
description = ''
Only run the service when an actual supported device is plugged.
'';
};

devices = mkOption {
type = types.listOf types.str;
default = [ "0a07" "c222" "c225" "c227" "c251" ];
description = ''
List of USB device ids supported by g15daemon.
</para>
<para>
You most likely do not need to change this.
'';
};
};

wireless = {
enable = mkEnableOption "Logitech Wireless Devices";

enableGraphical = mkOption {
type = types.bool;
default = false;
description = "Enable graphical support applications.";
};
};
};

config = lib.mkIf cfg.enable {
environment.systemPackages = [
pkgs.ltunify
] ++ lib.optional cfg.enableGraphical pkgs.solaar;
config = lib.mkIf (cfg.wireless.enable || cfg.lcd.enable) {
environment.systemPackages = []
++ lib.optional cfg.wireless.enable pkgs.ltunify
++ lib.optional cfg.wireless.enableGraphical pkgs.solaar;

services.udev = {
# ltunifi and solaar both provide udev rules but the most up-to-date have been split
# out into a dedicated derivation

# ltunifi and solaar both provide udev rules but the most up-to-date have been split
# out into a dedicated derivation
services.udev.packages = with pkgs; [ logitech-udev-rules ];
packages = []
++ lib.optional cfg.wireless.enable pkgs.logitech-udev-rules
++ lib.optional cfg.lcd.enable pkgs.g15daemon;

extraRules = ''
# nixos: hardware.logitech.lcd
'' + lib.concatMapStringsSep "\n" (
dev:
''ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="${vendor}", ATTRS{idProduct}=="${dev}", TAG+="systemd", ENV{SYSTEMD_WANTS}+="${daemon}.service"''
) cfg.lcd.devices;
};

systemd.services."${daemon}" = lib.mkIf cfg.lcd.enable {
description = "Logitech LCD Support Daemon";
documentation = [ "man:g15daemon(1)" ];
wantedBy = lib.mkIf (! cfg.lcd.startWhenNeeded) "multi-user.target";

serviceConfig = {
Type = "forking";
ExecStart = "${pkgs.g15daemon}/bin/g15daemon";
# we patch it to write to /run/g15daemon/g15daemon.pid instead of
# /run/g15daemon.pid so systemd will do the cleanup for us.
PIDFile = "/run/${daemon}/g15daemon.pid";
PrivateTmp = true;
PrivateNetwork = true;
ProtectHome = "tmpfs";
ProtectSystem = "full"; # strict doesn't work
RuntimeDirectory = daemon;
Restart = "on-failure";
};
};
};
}
3 changes: 3 additions & 0 deletions nixos/modules/services/networking/blockbook-frontend.nix
Original file line number Diff line number Diff line change
Expand Up @@ -269,4 +269,7 @@ in
users.groups = mapAttrs' (instanceName: cfg: (
nameValuePair "${cfg.group}" { })) eachBlockbook;
};

meta.maintainers = with maintainers; [ maintainers."1000101" ];

}
2 changes: 1 addition & 1 deletion nixos/modules/services/networking/jicofo.nix
Original file line number Diff line number Diff line change
Expand Up @@ -148,5 +148,5 @@ in
mkDefault "${pkgs.jicofo}/etc/jitsi/jicofo/logging.properties-journal";
};

meta.maintainers = with lib.maintainers; [ ];
meta.maintainers = lib.teams.jitsi.members;
}
2 changes: 1 addition & 1 deletion nixos/modules/services/networking/jitsi-videobridge.nix
Original file line number Diff line number Diff line change
Expand Up @@ -272,5 +272,5 @@ in
}];
};

meta.maintainers = with lib.maintainers; [ ];
meta.maintainers = lib.teams.jitsi.members;
}
4 changes: 3 additions & 1 deletion nixos/modules/services/networking/trickster.nix
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,9 @@ in
Restart = "always";
};
};
};

meta.maintainers = with maintainers; [ maintainers."1000101" ];

};
}

22 changes: 11 additions & 11 deletions nixos/modules/services/web-apps/dokuwiki.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

let

inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types;
inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types maintainers;
inherit (lib) concatMapStringsSep flatten mapAttrs mapAttrs' mapAttrsToList nameValuePair concatMapStringSep;

eachSite = config.services.dokuwiki;
Expand Down Expand Up @@ -249,22 +249,19 @@ let
nginx = mkOption {
type = types.submodule (
recursiveUpdate
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; })
{
# Enable encryption by default,
options.forceSSL.default = true;
options.enableACME.default = true;
}
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {}
);
default = {forceSSL = true; enableACME = true;};
default = {};
example = {
serverAliases = [
"wiki.\${config.networking.domain}"
];
enableACME = false;
# To enable encryption and let let's encrypt take care of certificate
forceSSL = true;
enableACME = true;
};
description = ''
With this option, you can customize the nginx virtualHost which already has sensible defaults for DokuWiki.
With this option, you can customize the nginx virtualHost settings.
'';
};
};
Expand All @@ -276,7 +273,7 @@ in
services.dokuwiki = mkOption {
type = types.attrsOf (types.submodule siteOpts);
default = {};
description = "Sepcification of one or more dokuwiki sites to service.";
description = "Sepcification of one or more dokuwiki sites to serve.";
};
};

Expand Down Expand Up @@ -385,4 +382,7 @@ in
isSystemUser = true;
};
};

meta.maintainers = with maintainers; [ maintainers."1000101" ];

}
2 changes: 1 addition & 1 deletion nixos/modules/services/web-apps/jitsi-meet.nix
Original file line number Diff line number Diff line change
Expand Up @@ -329,5 +329,5 @@ in
};
};

meta.maintainers = with lib.maintainers; [ ];
meta.maintainers = lib.teams.jitsi.members;
}
19 changes: 10 additions & 9 deletions nixos/tests/dokuwiki.nix
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,10 @@ in {
services.dokuwiki."site1.local" = {
aclUse = false;
superUser = "admin";
nginx = {
forceSSL = false;
enableACME = false;
};
};
services.dokuwiki."site2.local" = {
aclUse = true;
usersFile = "/var/lib/dokuwiki/site2.local/users.auth.php";
superUser = "admin";
nginx = {
forceSSL = false;
enableACME = false;
};
templates = [ template-bootstrap3 ];
plugins = [ plugin-icalevents ];
};
Expand All @@ -70,6 +62,15 @@ in {
machine.wait_for_open_port(80)
machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'")
machine.fail("curl -sSfL 'http://site1.local/doku.php?do=login' | grep 'Login'")
machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'")
machine.succeed("curl -sSfL 'http://site2.local/doku.php?do=login' | grep 'Login'")
machine.succeed(
"echo 'admin:$2y$10$ijdBQMzSVV20SrKtCna8gue36vnsbVm2wItAXvdm876sshI4uwy6S:Admin:admin@example.test:user' >> /var/lib/dokuwiki/site2.local/users.auth.php",
"curl -sSfL -d 'u=admin&p=password' --cookie-jar cjar 'http://site2.local/doku.php?do=login'",
"curl -sSfL --cookie cjar --cookie-jar cjar 'http://site2.local/doku.php?do=login' | grep 'Logged in as: <bdi>Admin</bdi>'",
)
'';
})
4 changes: 2 additions & 2 deletions nixos/tests/jitsi-meet.nix
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "jitsi-meet";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ mmilata ];
meta = with pkgs.stdenv.lib; {
maintainers = teams.jitsi.members;
};

nodes = {
Expand Down
30 changes: 24 additions & 6 deletions pkgs/applications/audio/sidplayfp/default.nix
Original file line number Diff line number Diff line change
@@ -1,18 +1,36 @@
{ stdenv, fetchurl, pkgconfig, libsidplayfp }:
{ stdenv
, lib
, fetchurl
, pkgconfig
, libsidplayfp
, alsaSupport ? stdenv.hostPlatform.isLinux
, alsaLib
, pulseSupport ? stdenv.hostPlatform.isLinux
, libpulseaudio
}:

assert alsaSupport -> alsaLib != null;
assert pulseSupport -> libpulseaudio != null;
let
inherit (lib) optional;
inherit (lib.versions) majorMinor;
in
stdenv.mkDerivation rec {
version = "1.4.4";
pname = "sidplayfp";
version = "2.0.2";

src = fetchurl {
url = "mirror://sourceforge/sidplay-residfp/sidplayfp/1.4/${pname}-${version}.tar.gz";
sha256 = "0arsrg3f0fsinal22qjmj3r6500bcbgqnx26fsz049ldl716kz1m";
url = "mirror://sourceforge/sidplay-residfp/sidplayfp/${majorMinor version}/${pname}-${version}.tar.gz";
sha256 = "1s2dfs9z1hwarpfzawg11wax9nh0zcqx4cafwq7iysckyg4scz4k";
};

nativeBuildInputs = [ pkgconfig ];
nativeBuildInputs = [ pkgconfig ]
++ optional alsaSupport alsaLib
++ optional pulseSupport libpulseaudio;

buildInputs = [ libsidplayfp ];

meta = with stdenv.lib; {
meta = with lib; {
description = "A SID player using libsidplayfp";
homepage = "https://sourceforge.net/projects/sidplay-residfp/";
license = with licenses; [ gpl2Plus ];
Expand Down
4 changes: 2 additions & 2 deletions pkgs/applications/editors/kakoune/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ with stdenv.lib;

stdenv.mkDerivation rec {
pname = "kakoune-unwrapped";
version = "2020.01.16";
version = "2020.08.04";
src = fetchFromGitHub {
repo = "kakoune";
owner = "mawww";
rev = "v${version}";
sha256 = "16v6z1nzj54j19fraxhb18jdby4zfs1br91gxpg9s2s4nsk0km0b";
sha256 = "1cgkis8bywy5k8k6j4i3prikpmhh1p6zyklliyxbc89mj64kvx4s";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
Expand Down

0 comments on commit 41f03e6

Please sign in to comment.