From 59613f5ca55102e98acae3bb31975fe1a40bb5e6 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 22 Feb 2020 18:58:17 +0200 Subject: [PATCH 01/33] connman: format argument lists and inputs --- pkgs/tools/networking/connman/default.nix | 44 +++++++++++++++++++---- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index e58b8362f951..986bb16c9a30 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -1,6 +1,21 @@ -{ stdenv, fetchurl, pkgconfig, openconnect, file, gawk, - openvpn, vpnc, glib, dbus, iptables, gnutls, polkit, - wpa_supplicant, readline6, pptp, ppp }: +{ stdenv +, fetchurl +, pkgconfig +, openconnect +, file +, gawk, + openvpn +, vpnc +, glib +, dbus +, iptables +, gnutls +, polkit, + wpa_supplicant +, readline6 +, pptp +, ppp +}: stdenv.mkDerivation rec { pname = "connman"; @@ -10,11 +25,26 @@ stdenv.mkDerivation rec { sha256 = "05kfjiqhqfmbbwc4snnyvi5hc4zxanac62f6gcwaf5mvn0z9pqkc"; }; - buildInputs = [ openconnect polkit - openvpn vpnc glib dbus iptables gnutls - wpa_supplicant readline6 pptp ppp ]; + buildInputs = [ + openconnect + polkit + openvpn + vpnc + glib + dbus + iptables + gnutls + wpa_supplicant + readline6 + pptp + ppp + ]; - nativeBuildInputs = [ pkgconfig file gawk ]; + nativeBuildInputs = [ + pkgconfig + file + gawk + ]; preConfigure = '' export WPASUPPLICANT=${wpa_supplicant}/sbin/wpa_supplicant From 7cdd874589bac5dc12dae3b9e71860a2b01d7ab3 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 22 Feb 2020 18:58:25 +0200 Subject: [PATCH 02/33] connman: 1.37 -> 1.38 --- pkgs/tools/networking/connman/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 986bb16c9a30..3381f77c96c5 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -19,10 +19,10 @@ stdenv.mkDerivation rec { pname = "connman"; - version = "1.37"; + version = "1.38"; src = fetchurl { url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz"; - sha256 = "05kfjiqhqfmbbwc4snnyvi5hc4zxanac62f6gcwaf5mvn0z9pqkc"; + sha256 = "0awkqigvhwwxiapw0x6yd4whl465ka8a4al0v2pcqy9ggjlsqc6b"; }; buildInputs = [ From bc4d2abac88340da99903a296d8d66c0e173fb38 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 22 Feb 2020 18:59:17 +0200 Subject: [PATCH 03/33] connman: remove unneeded deps --- pkgs/tools/networking/connman/default.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 3381f77c96c5..fde73fa9aa38 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -3,7 +3,6 @@ , pkgconfig , openconnect , file -, gawk, openvpn , vpnc , glib @@ -11,7 +10,6 @@ , iptables , gnutls , polkit, - wpa_supplicant , readline6 , pptp , ppp @@ -34,7 +32,6 @@ stdenv.mkDerivation rec { dbus iptables gnutls - wpa_supplicant readline6 pptp ppp @@ -43,13 +40,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig file - gawk ]; preConfigure = '' - export WPASUPPLICANT=${wpa_supplicant}/sbin/wpa_supplicant export PPPD=${ppp}/sbin/pppd - export AWK=${gawk}/bin/gawk sed -i "s/\/usr\/bin\/file/file/g" ./configure ''; From 184d7412923fa438e27ede97a6f840714248650f Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 22 Feb 2020 18:59:50 +0200 Subject: [PATCH 04/33] connman: remove unneeded hooks --- pkgs/tools/networking/connman/default.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index fde73fa9aa38..6c96c3448388 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -43,7 +43,6 @@ stdenv.mkDerivation rec { ]; preConfigure = '' - export PPPD=${ppp}/sbin/pppd sed -i "s/\/usr\/bin\/file/file/g" ./configure ''; @@ -71,10 +70,6 @@ stdenv.mkDerivation rec { "--enable-iwd" ]; - postInstall = '' - cp ./client/connmanctl $out/sbin/connmanctl - ''; - meta = with stdenv.lib; { description = "A daemon for managing internet connections"; homepage = https://01.org/connman; From e9569a0a039e4cd12edfcce51c96d060f8266a83 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 22 Feb 2020 19:01:35 +0200 Subject: [PATCH 05/33] connman: quote out in configure flag --- pkgs/tools/networking/connman/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 6c96c3448388..5f5bed3cbced 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { ''; configureFlags = [ - "--sysconfdir=\${out}/etc" + "--sysconfdir=${placeholder "out"}/etc" "--localstatedir=/var" "--with-dbusconfdir=${placeholder "out"}/share" "--with-dbusdatadir=${placeholder "out"}/share" From e55ad4897d9c8df11ae3fed79af489c909b7df69 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 22 Feb 2020 19:01:44 +0200 Subject: [PATCH 06/33] connman: quote homepage --- pkgs/tools/networking/connman/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 5f5bed3cbced..d65061648b6a 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -72,7 +72,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A daemon for managing internet connections"; - homepage = https://01.org/connman; + homepage = "https://01.org/connman"; maintainers = [ maintainers.matejc ]; platforms = platforms.linux; license = licenses.gpl2; From a0e966d7979d0f0464949b9c7e37aa5593c00ecc Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 22 Feb 2020 19:02:43 +0200 Subject: [PATCH 07/33] connman: upgrade to readline latest --- pkgs/tools/networking/connman/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index d65061648b6a..77cdcd0cc3ef 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -10,7 +10,7 @@ , iptables , gnutls , polkit, -, readline6 +, readline , pptp , ppp }: @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { dbus iptables gnutls - readline6 + readline pptp ppp ]; From 50ce1e646915cd402c21606924429dea51d87470 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 22 Feb 2020 19:03:52 +0200 Subject: [PATCH 08/33] connman: doCheck and split outputs --- pkgs/tools/networking/connman/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 77cdcd0cc3ef..2f6e835bc84a 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -30,6 +30,7 @@ stdenv.mkDerivation rec { vpnc glib dbus + libmnl iptables gnutls readline @@ -69,6 +70,9 @@ stdenv.mkDerivation rec { "--with-pptp=${pptp}/sbin/pptp" "--enable-iwd" ]; + doCheck = true; + + outputs = [ "out" "dev" ]; meta = with stdenv.lib; { description = "A daemon for managing internet connections"; From 53d8831b6232fc4fc7a9201f0695fd7fc1daa81d Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 22 Feb 2020 19:04:56 +0200 Subject: [PATCH 09/33] connman: cleanup build from the groundup --- pkgs/tools/networking/connman/default.nix | 153 +++++++++++++++++----- 1 file changed, 121 insertions(+), 32 deletions(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 2f6e835bc84a..9da12e158f94 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -1,20 +1,57 @@ { stdenv , fetchurl , pkgconfig -, openconnect , file - openvpn -, vpnc , glib +# always required runtime dependencies , dbus -, iptables +, libmnl , gnutls -, polkit, , readline -, pptp -, ppp +# Choices one has to decide +, firewallType ? "iptables" # or "nftables" +, iptables ? null +, libnftnl ? null # for nftables +, dnsType ? "internal" # or "systemd-resolved" +# optional features which are turned *on* by default +, enableOpenconnect ? true +, openconnect ? null +, enableOpenvpn ? true +, openvpn ? null +, enableVpnc ? true +, vpnc ? true +, enablePolkit ? true +, polkit ? null +, enablePptp ? true +, pptp ? null +, ppp ? null +, enableLoopback ? true +, enableEthernet ? true +, enableWireguard ? true +, enableGadget ? true +, enableWifi ? true +, enableBluetooth ? true +, enableOfono ? true +, enableDundee ? true +, enablePacrunner ? true +, enableNeard ? true +, enableWispr ? true +, enableTools ? true +, enableStats ? true +, enableClient ? true +, enableDatafiles ? true +# optional features which are turned *off* by default +, enableNetworkManager ? false +, networkmanager ? null +, enableHh2serialGps ? false +, enableL2tp ? false +, enableIospm ? false +, enableTist ? false }: +assert stdenv.lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftables" ]; +assert stdenv.lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ]; + stdenv.mkDerivation rec { pname = "connman"; version = "1.38"; @@ -24,55 +61,107 @@ stdenv.mkDerivation rec { }; buildInputs = [ - openconnect - polkit - openvpn - vpnc glib dbus libmnl - iptables gnutls readline - pptp - ppp ]; nativeBuildInputs = [ pkgconfig file - ]; + ] + ++ stdenv.lib.optionals (enableOpenvpn) [ openvpn ] + ++ stdenv.lib.optionals (enableOpenconnect) [ openconnect ] + ++ stdenv.lib.optionals (enableVpnc) [ vpnc ] + ++ stdenv.lib.optionals (enablePolkit) [ polkit ] + ++ stdenv.lib.optionals (enablePptp) [ pptp ppp ] + ++ stdenv.lib.optionals (firewallType == "iptables") [ iptables ] + ++ stdenv.lib.optionals (firewallType == "nftables") [ libnftnl ] + ; + # Fix file program not found preConfigure = '' sed -i "s/\/usr\/bin\/file/file/g" ./configure ''; configureFlags = [ + # directories flags "--sysconfdir=${placeholder "out"}/etc" "--localstatedir=/var" "--with-dbusconfdir=${placeholder "out"}/share" "--with-dbusdatadir=${placeholder "out"}/share" + "--with-tmpfilesdir=${placeholder "out"}/lib/tmpfiles.d" + "--with-systemdunitdir=${placeholder "out"}/lib/systemd/system" + "--with-dns-backend=${dnsType}" + "--with-firewall=${firewallType}" + # production build flags "--disable-maintainer-mode" - "--enable-openconnect=builtin" - "--with-openconnect=${openconnect}/sbin/openconnect" - "--enable-openvpn=builtin" - "--with-openvpn=${openvpn}/sbin/openvpn" - "--enable-vpnc=builtin" - "--with-vpnc=${vpnc}/sbin/vpnc" "--enable-session-policy-local=builtin" - "--enable-client" - "--enable-bluetooth" - "--enable-wifi" - "--enable-polkit" + # This is for building and running tests (probably enabled by default), + # --enable-tests installs the tests as well "--enable-tools" - "--enable-datafiles" - "--enable-pptp" - "--with-pptp=${pptp}/sbin/pptp" - "--enable-iwd" - ]; - doCheck = true; + ] + ++ stdenv.lib.optionals (!enableLoopback) [ "--disable-loopback" ] + ++ stdenv.lib.optionals (!enableEthernet) [ "--disable-ethernet" ] + ++ stdenv.lib.optionals (!enableWireguard) [ "--disable-wireguard" ] + ++ stdenv.lib.optionals (!enableGadget) [ "--disable-gadget" ] + ++ stdenv.lib.optionals (!enableWifi) [ "--disable-wifi" ] + # We (almost) always turn on IWD support as it doesn't require any new dependencies + # and it's easier for the NixOS module to use only 1 connmand package when + # IWD is requested + ++ stdenv.lib.optionals (enableWifi) [ "--enable-iwd" ] + ++ stdenv.lib.optionals (!enableBluetooth) [ "--disable-bluetooth" ] + ++ stdenv.lib.optionals (!enableOfono) [ "--disable-ofono" ] + ++ stdenv.lib.optionals (!enableDundee) [ "--disable-dundee" ] + ++ stdenv.lib.optionals (!enablePacrunner) [ "--disable-pacrunner" ] + ++ stdenv.lib.optionals (!enableNeard) [ "--disable-neard" ] + ++ stdenv.lib.optionals (!enableWispr) [ "--disable-wispr" ] + ++ stdenv.lib.optionals (!enableTools) [ "--disable-tools" ] + ++ stdenv.lib.optionals (!enableStats) [ "--disable-stats" ] + ++ stdenv.lib.optionals (!enableClient) [ "--disable-client" ] + ++ stdenv.lib.optionals (!enableDatafiles) [ "--disable-datafiles" ] + ++ stdenv.lib.optionals (enableOpenconnect) [ + "--enable-openconnect=builtin" + "--with-openconnect=${openconnect}/sbin/openconnect" + ] + ++ stdenv.lib.optionals (enableOpenvpn) [ + "--enable-openvpn=builtin" + "--with-openvpn=${openvpn}/sbin/openvpn" + ] + ++ stdenv.lib.optionals (enableVpnc) [ + "--enable-vpnc=builtin" + "--with-vpnc=${vpnc}/sbin/vpnc" + ] + ++ stdenv.lib.optionals (enablePolkit) [ + "--enable-polkit" + ] + ++ stdenv.lib.optionals (enablePptp) [ + "--enable-pptp" + "--with-pptp=${pptp}/sbin/pptp" + ] + ++ stdenv.lib.optionals (!enableWireguard) [ + "--disable-wireguard" + ] + ++ stdenv.lib.optionals (enableNetworkManager) [ + "--enable-nmcompat" + ] + ++ stdenv.lib.optionals (enableHh2serialGps) [ + "--enable-hh2serial-gps" + ] + ++ stdenv.lib.optionals (enableL2tp) [ + "--enable-l2tp" + ] + ++ stdenv.lib.optionals (enableIospm) [ + "--enable-iospm" + ] + ++ stdenv.lib.optionals (enableTist) [ + "--enable-tist" + ] + ; - outputs = [ "out" "dev" ]; + doCheck = true; meta = with stdenv.lib; { description = "A daemon for managing internet connections"; From ce502a41eb4c1c60394501975f003cd4fa3f60e7 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 22 Feb 2020 19:05:37 +0200 Subject: [PATCH 10/33] connman: Add 2 more build flavors --- pkgs/top-level/all-packages.nix | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 30bc0af360ec..2a4a1876581d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2551,6 +2551,36 @@ in conspy = callPackage ../os-specific/linux/conspy {}; connman = callPackage ../tools/networking/connman { }; + connmanThin = callPackage ../tools/networking/connman { + enableOpenconnect = false; + enableOpenvpn = false; + enableVpnc = false; + vpnc = false; + enablePolkit = false; + enablePptp = false; + enableLoopback = false; + # enableEthernet = false; + enableWireguard = false; + enableGadget = false; + # enableWifi = false; + enableBluetooth = false; + enableOfono = false; + enableDundee = false; + enablePacrunner = false; + enableNeard = false; + enableWispr = false; + enableTools = false; + enableStats = false; + enableClient = false; + # enableDatafiles = false; + }; + connmanFull = callPackage ../tools/networking/connman { + enableNetworkManager = true; + enableHh2serialGps = true; + enableL2tp = true; + enableIospm = true; + enableTist = true; + }; connman-gtk = callPackage ../tools/networking/connman/connman-gtk { }; From cdc20ac30ef15082c7486cee98240a7c0586c623 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Mon, 2 Mar 2020 00:49:36 +0200 Subject: [PATCH 11/33] connman: Fix comments after @erikarvstedt's comments --- pkgs/tools/networking/connman/default.nix | 12 ++++++------ pkgs/top-level/all-packages.nix | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 9da12e158f94..a2338e4554f6 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -8,7 +8,7 @@ , libmnl , gnutls , readline -# Choices one has to decide +# configureable options , firewallType ? "iptables" # or "nftables" , iptables ? null , libnftnl ? null # for nftables @@ -81,7 +81,7 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optionals (firewallType == "nftables") [ libnftnl ] ; - # Fix file program not found + # fix invalid path to 'file' preConfigure = '' sed -i "s/\/usr\/bin\/file/file/g" ./configure ''; @@ -99,8 +99,8 @@ stdenv.mkDerivation rec { # production build flags "--disable-maintainer-mode" "--enable-session-policy-local=builtin" - # This is for building and running tests (probably enabled by default), - # --enable-tests installs the tests as well + # for building and running tests + # --enable-tests # installs the tests, we don't want that "--enable-tools" ] ++ stdenv.lib.optionals (!enableLoopback) [ "--disable-loopback" ] @@ -108,8 +108,8 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optionals (!enableWireguard) [ "--disable-wireguard" ] ++ stdenv.lib.optionals (!enableGadget) [ "--disable-gadget" ] ++ stdenv.lib.optionals (!enableWifi) [ "--disable-wifi" ] - # We (almost) always turn on IWD support as it doesn't require any new dependencies - # and it's easier for the NixOS module to use only 1 connmand package when + # enable IWD support for wifi as it doesn't require any new dependencies + # and it's easier for the NixOS module to use only one connman package when # IWD is requested ++ stdenv.lib.optionals (enableWifi) [ "--enable-iwd" ] ++ stdenv.lib.optionals (!enableBluetooth) [ "--disable-bluetooth" ] diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2a4a1876581d..5ed0b8d55a8e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2559,10 +2559,10 @@ in enablePolkit = false; enablePptp = false; enableLoopback = false; - # enableEthernet = false; + # enableEthernet = false; # If disabled no ethernet connection can be performed enableWireguard = false; enableGadget = false; - # enableWifi = false; + # enableWifi = false; # If disabled no WiFi connection can be performed enableBluetooth = false; enableOfono = false; enableDundee = false; @@ -2572,7 +2572,7 @@ in enableTools = false; enableStats = false; enableClient = false; - # enableDatafiles = false; + # enableDatafiles = false; # If disabled, configuration and data files are not installed }; connmanFull = callPackage ../tools/networking/connman { enableNetworkManager = true; From e59deafc2d06417db92bda5d3713ae928fb7ec60 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Mon, 2 Mar 2020 00:51:14 +0200 Subject: [PATCH 12/33] connman: Use global reference to lib.optionals --- pkgs/tools/networking/connman/default.nix | 70 ++++++++++++----------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index a2338e4554f6..d0242e1e4610 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -52,6 +52,8 @@ assert stdenv.lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftables" ]; assert stdenv.lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ]; +let inherit (stdenv.lib) optionals; + stdenv.mkDerivation rec { pname = "connman"; version = "1.38"; @@ -72,13 +74,13 @@ stdenv.mkDerivation rec { pkgconfig file ] - ++ stdenv.lib.optionals (enableOpenvpn) [ openvpn ] - ++ stdenv.lib.optionals (enableOpenconnect) [ openconnect ] - ++ stdenv.lib.optionals (enableVpnc) [ vpnc ] - ++ stdenv.lib.optionals (enablePolkit) [ polkit ] - ++ stdenv.lib.optionals (enablePptp) [ pptp ppp ] - ++ stdenv.lib.optionals (firewallType == "iptables") [ iptables ] - ++ stdenv.lib.optionals (firewallType == "nftables") [ libnftnl ] + ++ optionals (enableOpenvpn) [ openvpn ] + ++ optionals (enableOpenconnect) [ openconnect ] + ++ optionals (enableVpnc) [ vpnc ] + ++ optionals (enablePolkit) [ polkit ] + ++ optionals (enablePptp) [ pptp ppp ] + ++ optionals (firewallType == "iptables") [ iptables ] + ++ optionals (firewallType == "nftables") [ libnftnl ] ; # fix invalid path to 'file' @@ -103,60 +105,60 @@ stdenv.mkDerivation rec { # --enable-tests # installs the tests, we don't want that "--enable-tools" ] - ++ stdenv.lib.optionals (!enableLoopback) [ "--disable-loopback" ] - ++ stdenv.lib.optionals (!enableEthernet) [ "--disable-ethernet" ] - ++ stdenv.lib.optionals (!enableWireguard) [ "--disable-wireguard" ] - ++ stdenv.lib.optionals (!enableGadget) [ "--disable-gadget" ] - ++ stdenv.lib.optionals (!enableWifi) [ "--disable-wifi" ] + ++ optionals (!enableLoopback) [ "--disable-loopback" ] + ++ optionals (!enableEthernet) [ "--disable-ethernet" ] + ++ optionals (!enableWireguard) [ "--disable-wireguard" ] + ++ optionals (!enableGadget) [ "--disable-gadget" ] + ++ optionals (!enableWifi) [ "--disable-wifi" ] # enable IWD support for wifi as it doesn't require any new dependencies # and it's easier for the NixOS module to use only one connman package when # IWD is requested - ++ stdenv.lib.optionals (enableWifi) [ "--enable-iwd" ] - ++ stdenv.lib.optionals (!enableBluetooth) [ "--disable-bluetooth" ] - ++ stdenv.lib.optionals (!enableOfono) [ "--disable-ofono" ] - ++ stdenv.lib.optionals (!enableDundee) [ "--disable-dundee" ] - ++ stdenv.lib.optionals (!enablePacrunner) [ "--disable-pacrunner" ] - ++ stdenv.lib.optionals (!enableNeard) [ "--disable-neard" ] - ++ stdenv.lib.optionals (!enableWispr) [ "--disable-wispr" ] - ++ stdenv.lib.optionals (!enableTools) [ "--disable-tools" ] - ++ stdenv.lib.optionals (!enableStats) [ "--disable-stats" ] - ++ stdenv.lib.optionals (!enableClient) [ "--disable-client" ] - ++ stdenv.lib.optionals (!enableDatafiles) [ "--disable-datafiles" ] - ++ stdenv.lib.optionals (enableOpenconnect) [ + ++ optionals (enableWifi) [ "--enable-iwd" ] + ++ optionals (!enableBluetooth) [ "--disable-bluetooth" ] + ++ optionals (!enableOfono) [ "--disable-ofono" ] + ++ optionals (!enableDundee) [ "--disable-dundee" ] + ++ optionals (!enablePacrunner) [ "--disable-pacrunner" ] + ++ optionals (!enableNeard) [ "--disable-neard" ] + ++ optionals (!enableWispr) [ "--disable-wispr" ] + ++ optionals (!enableTools) [ "--disable-tools" ] + ++ optionals (!enableStats) [ "--disable-stats" ] + ++ optionals (!enableClient) [ "--disable-client" ] + ++ optionals (!enableDatafiles) [ "--disable-datafiles" ] + ++ optionals (enableOpenconnect) [ "--enable-openconnect=builtin" "--with-openconnect=${openconnect}/sbin/openconnect" ] - ++ stdenv.lib.optionals (enableOpenvpn) [ + ++ optionals (enableOpenvpn) [ "--enable-openvpn=builtin" "--with-openvpn=${openvpn}/sbin/openvpn" ] - ++ stdenv.lib.optionals (enableVpnc) [ + ++ optionals (enableVpnc) [ "--enable-vpnc=builtin" "--with-vpnc=${vpnc}/sbin/vpnc" ] - ++ stdenv.lib.optionals (enablePolkit) [ + ++ optionals (enablePolkit) [ "--enable-polkit" ] - ++ stdenv.lib.optionals (enablePptp) [ + ++ optionals (enablePptp) [ "--enable-pptp" "--with-pptp=${pptp}/sbin/pptp" ] - ++ stdenv.lib.optionals (!enableWireguard) [ + ++ optionals (!enableWireguard) [ "--disable-wireguard" ] - ++ stdenv.lib.optionals (enableNetworkManager) [ + ++ optionals (enableNetworkManager) [ "--enable-nmcompat" ] - ++ stdenv.lib.optionals (enableHh2serialGps) [ + ++ optionals (enableHh2serialGps) [ "--enable-hh2serial-gps" ] - ++ stdenv.lib.optionals (enableL2tp) [ + ++ optionals (enableL2tp) [ "--enable-l2tp" ] - ++ stdenv.lib.optionals (enableIospm) [ + ++ optionals (enableIospm) [ "--enable-iospm" ] - ++ stdenv.lib.optionals (enableTist) [ + ++ optionals (enableTist) [ "--enable-tist" ] ; From be59cb3be8e74a799202e36c76aa44dc26d3ba20 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Mon, 2 Mar 2020 00:51:52 +0200 Subject: [PATCH 13/33] connman: Use patchPhase instead of preConfigure --- pkgs/tools/networking/connman/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index d0242e1e4610..9fcacd29ebef 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -84,8 +84,10 @@ stdenv.mkDerivation rec { ; # fix invalid path to 'file' - preConfigure = '' + patchPhase = '' + runHook prePatch sed -i "s/\/usr\/bin\/file/file/g" ./configure + runHook postPatch ''; configureFlags = [ From 3b89674dc3608381c6a447e52e7b512ece4f74db Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Mon, 2 Mar 2020 11:10:21 +0200 Subject: [PATCH 14/33] connman: declare build flavors idiomaticly Use tesseract as a source for inspiration - rename default.nix -> connman.nix and declare build flavors in default.nix . --- pkgs/tools/networking/connman/connman.nix | 177 +++++++++++++++++++ pkgs/tools/networking/connman/default.nix | 205 ++++------------------ pkgs/top-level/all-packages.nix | 36 +--- 3 files changed, 215 insertions(+), 203 deletions(-) create mode 100644 pkgs/tools/networking/connman/connman.nix diff --git a/pkgs/tools/networking/connman/connman.nix b/pkgs/tools/networking/connman/connman.nix new file mode 100644 index 000000000000..f79b9875b9bc --- /dev/null +++ b/pkgs/tools/networking/connman/connman.nix @@ -0,0 +1,177 @@ +{ stdenv +, fetchurl +, pkgconfig +, file +, glib +# always required runtime dependencies +, dbus +, libmnl +, gnutls +, readline +# configureable options +, firewallType ? "iptables" # or "nftables" +, iptables ? null +, libnftnl ? null # for nftables +, dnsType ? "internal" # or "systemd-resolved" +# optional features which are turned *on* by default +, enableOpenconnect ? true +, openconnect ? null +, enableOpenvpn ? true +, openvpn ? null +, enableVpnc ? true +, vpnc ? true +, enablePolkit ? true +, polkit ? null +, enablePptp ? true +, pptp ? null +, ppp ? null +, enableLoopback ? true +, enableEthernet ? true +, enableWireguard ? true +, enableGadget ? true +, enableWifi ? true +, enableBluetooth ? true +, enableOfono ? true +, enableDundee ? true +, enablePacrunner ? true +, enableNeard ? true +, enableWispr ? true +, enableTools ? true +, enableStats ? true +, enableClient ? true +, enableDatafiles ? true +# optional features which are turned *off* by default +, enableNetworkManager ? false +, networkmanager ? null +, enableHh2serialGps ? false +, enableL2tp ? false +, enableIospm ? false +, enableTist ? false +}: + +assert stdenv.lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftables" ]; +assert stdenv.lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ]; + +let inherit (stdenv.lib) optionals; in + +stdenv.mkDerivation rec { + pname = "connman"; + version = "1.38"; + src = fetchurl { + url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz"; + sha256 = "0awkqigvhwwxiapw0x6yd4whl465ka8a4al0v2pcqy9ggjlsqc6b"; + }; + + buildInputs = [ + glib + dbus + libmnl + gnutls + readline + ]; + + nativeBuildInputs = [ + pkgconfig + file + ] + ++ optionals (enableOpenvpn) [ openvpn ] + ++ optionals (enableOpenconnect) [ openconnect ] + ++ optionals (enableVpnc) [ vpnc ] + ++ optionals (enablePolkit) [ polkit ] + ++ optionals (enablePptp) [ pptp ppp ] + ++ optionals (firewallType == "iptables") [ iptables ] + ++ optionals (firewallType == "nftables") [ libnftnl ] + ; + + # fix invalid path to 'file' + patchPhase = '' + runHook prePatch + sed -i "s/\/usr\/bin\/file/file/g" ./configure + runHook postPatch + ''; + + configureFlags = [ + # directories flags + "--sysconfdir=${placeholder "out"}/etc" + "--localstatedir=/var" + "--with-dbusconfdir=${placeholder "out"}/share" + "--with-dbusdatadir=${placeholder "out"}/share" + "--with-tmpfilesdir=${placeholder "out"}/lib/tmpfiles.d" + "--with-systemdunitdir=${placeholder "out"}/lib/systemd/system" + "--with-dns-backend=${dnsType}" + "--with-firewall=${firewallType}" + # production build flags + "--disable-maintainer-mode" + "--enable-session-policy-local=builtin" + # for building and running tests + # "--enable-tests" # installs the tests, we don't want that + "--enable-tools" + ] + ++ optionals (!enableLoopback) [ "--disable-loopback" ] + ++ optionals (!enableEthernet) [ "--disable-ethernet" ] + ++ optionals (!enableWireguard) [ "--disable-wireguard" ] + ++ optionals (!enableGadget) [ "--disable-gadget" ] + ++ optionals (!enableWifi) [ "--disable-wifi" ] + # enable IWD support for wifi as it doesn't require any new dependencies + # and it's easier for the NixOS module to use only one connman package when + # IWD is requested + ++ optionals (enableWifi) [ "--enable-iwd" ] + ++ optionals (!enableBluetooth) [ "--disable-bluetooth" ] + ++ optionals (!enableOfono) [ "--disable-ofono" ] + ++ optionals (!enableDundee) [ "--disable-dundee" ] + ++ optionals (!enablePacrunner) [ "--disable-pacrunner" ] + ++ optionals (!enableNeard) [ "--disable-neard" ] + ++ optionals (!enableWispr) [ "--disable-wispr" ] + ++ optionals (!enableTools) [ "--disable-tools" ] + ++ optionals (!enableStats) [ "--disable-stats" ] + ++ optionals (!enableClient) [ "--disable-client" ] + ++ optionals (!enableDatafiles) [ "--disable-datafiles" ] + ++ optionals (enableOpenconnect) [ + "--enable-openconnect=builtin" + "--with-openconnect=${openconnect}/sbin/openconnect" + ] + ++ optionals (enableOpenvpn) [ + "--enable-openvpn=builtin" + "--with-openvpn=${openvpn}/sbin/openvpn" + ] + ++ optionals (enableVpnc) [ + "--enable-vpnc=builtin" + "--with-vpnc=${vpnc}/sbin/vpnc" + ] + ++ optionals (enablePolkit) [ + "--enable-polkit" + ] + ++ optionals (enablePptp) [ + "--enable-pptp" + "--with-pptp=${pptp}/sbin/pptp" + ] + ++ optionals (!enableWireguard) [ + "--disable-wireguard" + ] + ++ optionals (enableNetworkManager) [ + "--enable-nmcompat" + ] + ++ optionals (enableHh2serialGps) [ + "--enable-hh2serial-gps" + ] + ++ optionals (enableL2tp) [ + "--enable-l2tp" + ] + ++ optionals (enableIospm) [ + "--enable-iospm" + ] + ++ optionals (enableTist) [ + "--enable-tist" + ] + ; + + doCheck = true; + + meta = with stdenv.lib; { + description = "A daemon for managing internet connections"; + homepage = "https://01.org/connman"; + maintainers = [ maintainers.matejc ]; + platforms = platforms.linux; + license = licenses.gpl2; + }; +} diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 9fcacd29ebef..34aee7f78794 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -1,177 +1,38 @@ -{ stdenv -, fetchurl -, pkgconfig -, file -, glib -# always required runtime dependencies -, dbus -, libmnl -, gnutls -, readline -# configureable options -, firewallType ? "iptables" # or "nftables" -, iptables ? null -, libnftnl ? null # for nftables -, dnsType ? "internal" # or "systemd-resolved" -# optional features which are turned *on* by default -, enableOpenconnect ? true -, openconnect ? null -, enableOpenvpn ? true -, openvpn ? null -, enableVpnc ? true -, vpnc ? true -, enablePolkit ? true -, polkit ? null -, enablePptp ? true -, pptp ? null -, ppp ? null -, enableLoopback ? true -, enableEthernet ? true -, enableWireguard ? true -, enableGadget ? true -, enableWifi ? true -, enableBluetooth ? true -, enableOfono ? true -, enableDundee ? true -, enablePacrunner ? true -, enableNeard ? true -, enableWispr ? true -, enableTools ? true -, enableStats ? true -, enableClient ? true -, enableDatafiles ? true -# optional features which are turned *off* by default -, enableNetworkManager ? false -, networkmanager ? null -, enableHh2serialGps ? false -, enableL2tp ? false -, enableIospm ? false -, enableTist ? false -}: +{ callPackage, lowPrio }: -assert stdenv.lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftables" ]; -assert stdenv.lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ]; - -let inherit (stdenv.lib) optionals; - -stdenv.mkDerivation rec { - pname = "connman"; - version = "1.38"; - src = fetchurl { - url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz"; - sha256 = "0awkqigvhwwxiapw0x6yd4whl465ka8a4al0v2pcqy9ggjlsqc6b"; +{ + connmanFull = callPackage ./connman.nix { + enableNetworkManager = true; + enableHh2serialGps = true; + enableL2tp = true; + enableIospm = true; + enableTist = true; }; - buildInputs = [ - glib - dbus - libmnl - gnutls - readline - ]; + connmanMinimal = lowPrio (callPackage ./connman.nix { + enableOpenconnect = false; + enableOpenvpn = false; + enableVpnc = false; + vpnc = false; + enablePolkit = false; + enablePptp = false; + enableLoopback = false; + # enableEthernet = false; # If disabled no ethernet connection can be performed + enableWireguard = false; + enableGadget = false; + # enableWifi = false; # If disabled no WiFi connection can be performed + enableBluetooth = false; + enableOfono = false; + enableDundee = false; + enablePacrunner = false; + enableNeard = false; + enableWispr = false; + enableTools = false; + enableStats = false; + enableClient = false; + # enableDatafiles = false; # If disabled, configuration and data files are not installed + }); - nativeBuildInputs = [ - pkgconfig - file - ] - ++ optionals (enableOpenvpn) [ openvpn ] - ++ optionals (enableOpenconnect) [ openconnect ] - ++ optionals (enableVpnc) [ vpnc ] - ++ optionals (enablePolkit) [ polkit ] - ++ optionals (enablePptp) [ pptp ppp ] - ++ optionals (firewallType == "iptables") [ iptables ] - ++ optionals (firewallType == "nftables") [ libnftnl ] - ; - - # fix invalid path to 'file' - patchPhase = '' - runHook prePatch - sed -i "s/\/usr\/bin\/file/file/g" ./configure - runHook postPatch - ''; - - configureFlags = [ - # directories flags - "--sysconfdir=${placeholder "out"}/etc" - "--localstatedir=/var" - "--with-dbusconfdir=${placeholder "out"}/share" - "--with-dbusdatadir=${placeholder "out"}/share" - "--with-tmpfilesdir=${placeholder "out"}/lib/tmpfiles.d" - "--with-systemdunitdir=${placeholder "out"}/lib/systemd/system" - "--with-dns-backend=${dnsType}" - "--with-firewall=${firewallType}" - # production build flags - "--disable-maintainer-mode" - "--enable-session-policy-local=builtin" - # for building and running tests - # --enable-tests # installs the tests, we don't want that - "--enable-tools" - ] - ++ optionals (!enableLoopback) [ "--disable-loopback" ] - ++ optionals (!enableEthernet) [ "--disable-ethernet" ] - ++ optionals (!enableWireguard) [ "--disable-wireguard" ] - ++ optionals (!enableGadget) [ "--disable-gadget" ] - ++ optionals (!enableWifi) [ "--disable-wifi" ] - # enable IWD support for wifi as it doesn't require any new dependencies - # and it's easier for the NixOS module to use only one connman package when - # IWD is requested - ++ optionals (enableWifi) [ "--enable-iwd" ] - ++ optionals (!enableBluetooth) [ "--disable-bluetooth" ] - ++ optionals (!enableOfono) [ "--disable-ofono" ] - ++ optionals (!enableDundee) [ "--disable-dundee" ] - ++ optionals (!enablePacrunner) [ "--disable-pacrunner" ] - ++ optionals (!enableNeard) [ "--disable-neard" ] - ++ optionals (!enableWispr) [ "--disable-wispr" ] - ++ optionals (!enableTools) [ "--disable-tools" ] - ++ optionals (!enableStats) [ "--disable-stats" ] - ++ optionals (!enableClient) [ "--disable-client" ] - ++ optionals (!enableDatafiles) [ "--disable-datafiles" ] - ++ optionals (enableOpenconnect) [ - "--enable-openconnect=builtin" - "--with-openconnect=${openconnect}/sbin/openconnect" - ] - ++ optionals (enableOpenvpn) [ - "--enable-openvpn=builtin" - "--with-openvpn=${openvpn}/sbin/openvpn" - ] - ++ optionals (enableVpnc) [ - "--enable-vpnc=builtin" - "--with-vpnc=${vpnc}/sbin/vpnc" - ] - ++ optionals (enablePolkit) [ - "--enable-polkit" - ] - ++ optionals (enablePptp) [ - "--enable-pptp" - "--with-pptp=${pptp}/sbin/pptp" - ] - ++ optionals (!enableWireguard) [ - "--disable-wireguard" - ] - ++ optionals (enableNetworkManager) [ - "--enable-nmcompat" - ] - ++ optionals (enableHh2serialGps) [ - "--enable-hh2serial-gps" - ] - ++ optionals (enableL2tp) [ - "--enable-l2tp" - ] - ++ optionals (enableIospm) [ - "--enable-iospm" - ] - ++ optionals (enableTist) [ - "--enable-tist" - ] - ; - - doCheck = true; - - meta = with stdenv.lib; { - description = "A daemon for managing internet connections"; - homepage = "https://01.org/connman"; - maintainers = [ maintainers.matejc ]; - platforms = platforms.linux; - license = licenses.gpl2; - }; + # All the defaults + connman = callPackage ./connman.nix { }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5ed0b8d55a8e..2827e84b7a47 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2550,37 +2550,11 @@ in conspy = callPackage ../os-specific/linux/conspy {}; - connman = callPackage ../tools/networking/connman { }; - connmanThin = callPackage ../tools/networking/connman { - enableOpenconnect = false; - enableOpenvpn = false; - enableVpnc = false; - vpnc = false; - enablePolkit = false; - enablePptp = false; - enableLoopback = false; - # enableEthernet = false; # If disabled no ethernet connection can be performed - enableWireguard = false; - enableGadget = false; - # enableWifi = false; # If disabled no WiFi connection can be performed - enableBluetooth = false; - enableOfono = false; - enableDundee = false; - enablePacrunner = false; - enableNeard = false; - enableWispr = false; - enableTools = false; - enableStats = false; - enableClient = false; - # enableDatafiles = false; # If disabled, configuration and data files are not installed - }; - connmanFull = callPackage ../tools/networking/connman { - enableNetworkManager = true; - enableHh2serialGps = true; - enableL2tp = true; - enableIospm = true; - enableTist = true; - }; + inherit (callPackage ../tools/networking/connman {}) + connmanFull + connmanMinimal + connman + ; connman-gtk = callPackage ../tools/networking/connman/connman-gtk { }; From fa5f7b89c4b23f46acfcc29b4d683260937967b4 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Mon, 2 Mar 2020 11:13:45 +0200 Subject: [PATCH 15/33] connman: Switch to postPatch from patchPhase --- pkgs/tools/networking/connman/connman.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/tools/networking/connman/connman.nix b/pkgs/tools/networking/connman/connman.nix index f79b9875b9bc..c700d6864a97 100644 --- a/pkgs/tools/networking/connman/connman.nix +++ b/pkgs/tools/networking/connman/connman.nix @@ -84,10 +84,8 @@ stdenv.mkDerivation rec { ; # fix invalid path to 'file' - patchPhase = '' - runHook prePatch + postPatch = '' sed -i "s/\/usr\/bin\/file/file/g" ./configure - runHook postPatch ''; configureFlags = [ From a3d2e48a62412029adf6e6b3d5d4d2cb0bf5bae2 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Tue, 3 Mar 2020 22:33:49 +0200 Subject: [PATCH 16/33] connmanMinimal: remove use of lowPrio --- pkgs/tools/networking/connman/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 34aee7f78794..b2b62cf01b72 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -1,4 +1,4 @@ -{ callPackage, lowPrio }: +{ callPackage }: { connmanFull = callPackage ./connman.nix { @@ -9,7 +9,7 @@ enableTist = true; }; - connmanMinimal = lowPrio (callPackage ./connman.nix { + connmanMinimal = callPackage ./connman.nix { enableOpenconnect = false; enableOpenvpn = false; enableVpnc = false; @@ -31,7 +31,7 @@ enableStats = false; enableClient = false; # enableDatafiles = false; # If disabled, configuration and data files are not installed - }); + }; # All the defaults connman = callPackage ./connman.nix { }; From 22b27dd635b9f6d1b77720cfb3ebbc6d753c0ca5 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Wed, 4 Mar 2020 09:45:45 +0200 Subject: [PATCH 17/33] connman: remove import of networkmanager --- pkgs/tools/networking/connman/connman.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/tools/networking/connman/connman.nix b/pkgs/tools/networking/connman/connman.nix index c700d6864a97..d72b6b90c5e5 100644 --- a/pkgs/tools/networking/connman/connman.nix +++ b/pkgs/tools/networking/connman/connman.nix @@ -42,7 +42,6 @@ , enableDatafiles ? true # optional features which are turned *off* by default , enableNetworkManager ? false -, networkmanager ? null , enableHh2serialGps ? false , enableL2tp ? false , enableIospm ? false From aa44c23c7ab30a2c8d8b355bab6d533fb861fe75 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Wed, 4 Mar 2020 09:48:01 +0200 Subject: [PATCH 18/33] connman: reverse order of build flavors declaration --- pkgs/tools/networking/connman/default.nix | 6 +++--- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index b2b62cf01b72..9e87c9742ea0 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -1,6 +1,9 @@ { callPackage }: { + # All the defaults + connman = callPackage ./connman.nix { }; + connmanFull = callPackage ./connman.nix { enableNetworkManager = true; enableHh2serialGps = true; @@ -32,7 +35,4 @@ enableClient = false; # enableDatafiles = false; # If disabled, configuration and data files are not installed }; - - # All the defaults - connman = callPackage ./connman.nix { }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2827e84b7a47..7600213d1a89 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2551,9 +2551,9 @@ in conspy = callPackage ../os-specific/linux/conspy {}; inherit (callPackage ../tools/networking/connman {}) + connman connmanFull connmanMinimal - connman ; connman-gtk = callPackage ../tools/networking/connman/connman-gtk { }; From b03bf779aee312b610b1596682963b7569468630 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Wed, 4 Mar 2020 18:56:49 +0200 Subject: [PATCH 19/33] connman: remove unneeded deps from nativeBuildInputs --- pkgs/tools/networking/connman/connman.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/tools/networking/connman/connman.nix b/pkgs/tools/networking/connman/connman.nix index d72b6b90c5e5..512194872205 100644 --- a/pkgs/tools/networking/connman/connman.nix +++ b/pkgs/tools/networking/connman/connman.nix @@ -73,9 +73,6 @@ stdenv.mkDerivation rec { pkgconfig file ] - ++ optionals (enableOpenvpn) [ openvpn ] - ++ optionals (enableOpenconnect) [ openconnect ] - ++ optionals (enableVpnc) [ vpnc ] ++ optionals (enablePolkit) [ polkit ] ++ optionals (enablePptp) [ pptp ppp ] ++ optionals (firewallType == "iptables") [ iptables ] From 39921bd43ba6ccd273f4337098b71eb851e9c77d Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com> Date: Fri, 27 Mar 2020 02:17:27 -0400 Subject: [PATCH 20/33] mame: add darwin support --- pkgs/misc/emulators/mame/default.nix | 28 +++++++++++++++++++++------- pkgs/top-level/all-packages.nix | 4 +++- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/pkgs/misc/emulators/mame/default.nix b/pkgs/misc/emulators/mame/default.nix index 995fd72a6e22..2b05a921590f 100644 --- a/pkgs/misc/emulators/mame/default.nix +++ b/pkgs/misc/emulators/mame/default.nix @@ -1,14 +1,17 @@ { stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem, makeWrapper , python, pkgconfig, SDL2, SDL2_ttf, alsaLib, which, qtbase, libXinerama +, libpcap, CoreAudioKit, ForceFeedback , installShellFiles }: +with stdenv; + let majorVersion = "0"; minorVersion = "219"; desktopItem = makeDesktopItem { name = "MAME"; - exec = "mame${stdenv.lib.optionalString stdenv.is64bit "64"}"; + exec = "mame${lib.optionalString stdenv.is64bit "64"}"; desktopName = "MAME"; genericName = "MAME is a multi-purpose emulation framework"; categories = "System;Emulator;"; @@ -27,13 +30,22 @@ in mkDerivation { }; hardeningDisable = [ "fortify" ]; - NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" ]; + NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" "-Wno-error=missing-braces" ]; - makeFlags = [ "TOOLS=1" ]; + makeFlags = [ + "TOOLS=1" + "USE_LIBSDL=1" + ] + ++ lib.optionals stdenv.cc.isClang [ "CC=clang" "CXX=clang++" ] + ; dontWrapQtApps = true; - buildInputs = [ SDL2 SDL2_ttf alsaLib qtbase libXinerama ]; + buildInputs = + [ SDL2 SDL2_ttf qtbase libXinerama ] + ++ lib.optional stdenv.isLinux alsaLib + ++ lib.optionals stdenv.isDarwin [ libpcap CoreAudioKit ForceFeedback ] + ; nativeBuildInputs = [ python pkgconfig which makeWrapper installShellFiles ]; # by default MAME assumes that paths with stock resources @@ -58,16 +70,18 @@ in mkDerivation { installManPage ${dest}/docs/man/*.1 ${dest}/docs/man/*.6 mv artwork plugins samples ${dest} - + '' + lib.optionalString stdenv.isLinux '' mkdir -p $out/share ln -s ${desktopItem}/share/applications $out/share ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Is a multi-purpose emulation framework"; homepage = https://www.mamedev.org/; license = with licenses; [ bsd3 gpl2Plus ]; - platforms = [ "x86_64-linux" "i686-linux" ]; + platforms = platforms.unix; + # makefile needs fixes for install target + badPlatforms = [ "aarch64-linux" ]; maintainers = with maintainers; [ gnidorah ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7e469380abbd..6c3a8a4d430d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25517,7 +25517,9 @@ in icu = icu58; }; - mame = libsForQt5.callPackage ../misc/emulators/mame { }; + mame = libsForQt5.callPackage ../misc/emulators/mame { + inherit (darwin.apple_sdk.frameworks) CoreAudioKit ForceFeedback; + }; martyr = callPackage ../development/libraries/martyr { }; From f0f6527e9704501294c1cd25cb4a8b9f314ee4cd Mon Sep 17 00:00:00 2001 From: Andreas Wiese <aw-nixos@meterriblecrew.net> Date: Fri, 27 Mar 2020 18:10:21 +0100 Subject: [PATCH 21/33] matrix-dl: init at (unstable-)2019-09-22 --- .../instant-messengers/matrix-dl/default.nix | 25 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 pkgs/applications/networking/instant-messengers/matrix-dl/default.nix diff --git a/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix b/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix new file mode 100644 index 000000000000..21d521872145 --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix @@ -0,0 +1,25 @@ +{ lib, python3Packages, fetchFromGitHub }: + +python3Packages.buildPythonApplication rec { + pname = "matrix-dl-unstable"; + version = "2019-09-22"; + + src = fetchFromGitHub { + owner = "rubo77"; + repo = "matrix-dl"; + rev = "e91610f45b7b3b0aca34923309fc83ba377f8a69"; + sha256 = "036xfdd21pcfjlilknc67z5jqpk0vz07853wwcsiac32iypc6f2q"; + }; + + propagatedBuildInputs = with python3Packages; [ + matrix-client + ]; + + meta = with lib; { + description = "Download backlogs from Matrix as raw text"; + homepage = src.meta.homepage; + license = licenses.unfree; + maintainers = with maintainers; [ aw ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4d1f57640d54..b27ac31e739c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20689,6 +20689,8 @@ in canonicaljson; }; + matrix-dl = callPackage ../applications/networking/instant-messengers/matrix-dl { }; + matrix-recorder = callPackage ../applications/networking/instant-messengers/matrix-recorder {}; mblaze = callPackage ../applications/networking/mailreaders/mblaze { }; From d85fb28414502e6c4f2618ea50abe4c9b7b0fdd0 Mon Sep 17 00:00:00 2001 From: Konrad Borowski <konrad@borowski.pw> Date: Thu, 26 Mar 2020 14:33:57 +0100 Subject: [PATCH 22/33] nixos/tests/hibernate: disable for platforms other than x86_64 Due to 9pnet_virtio bugs, /nix is no longer available after hibernation. It happens to work on x86_64, but not on other platforms. --- nixos/tests/all-tests.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 51b463747b0e..7c0550dfa090 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -120,7 +120,10 @@ in handbrake = handleTestOn ["x86_64-linux"] ./handbrake.nix {}; haproxy = handleTest ./haproxy.nix {}; hardened = handleTest ./hardened.nix {}; - hibernate = handleTest ./hibernate.nix {}; + # 9pnet_virtio used to mount /nix partition doesn't support + # hibernation. This test happens to work on x86_64-linux but + # not on other platforms. + hibernate = handleTestOn ["x86_64-linux"] ./hibernate.nix {}; hitch = handleTest ./hitch {}; hocker-fetchdocker = handleTest ./hocker-fetchdocker {}; home-assistant = handleTest ./home-assistant.nix {}; From 480397693ef6e9ca92ab6e1d015e31232d62f2c7 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 28 Mar 2020 12:06:54 +0300 Subject: [PATCH 23/33] nixos/connman: add option to use specific package --- nixos/modules/services/networking/connman.nix | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix index e8eadc4e187d..53adc337fa47 100644 --- a/nixos/modules/services/networking/connman.nix +++ b/nixos/modules/services/networking/connman.nix @@ -77,6 +77,13 @@ in { ''; }; + package = mkOption { + type = types.path; + description = "The connman package / build flavor"; + default = connman; + example = literalExample "pkgs.connmanFull"; + }; + }; }; @@ -93,7 +100,7 @@ in { message = "You can not use services.connman with networking.networkmanager"; }]; - environment.systemPackages = [ connman ]; + environment.systemPackages = [ cfg.package ]; systemd.services.connman = { description = "Connection service"; @@ -105,7 +112,7 @@ in { BusName = "net.connman"; Restart = "on-failure"; ExecStart = toString ([ - "${pkgs.connman}/sbin/connmand" + "${cfg.package}/sbin/connmand" "--config=${configFile}" "--nodaemon" ] ++ optional enableIwd "--wifi=iwd_agent" @@ -122,7 +129,7 @@ in { serviceConfig = { Type = "dbus"; BusName = "net.connman.vpn"; - ExecStart = "${pkgs.connman}/sbin/connman-vpnd -n"; + ExecStart = "${cfg.package}/sbin/connman-vpnd -n"; StandardOutput = "null"; }; }; @@ -132,7 +139,7 @@ in { serviceConfig = { Name = "net.connman.vpn"; before = [ "connman" ]; - ExecStart = "${pkgs.connman}/sbin/connman-vpnd -n"; + ExecStart = "${cfg.package}/sbin/connman-vpnd -n"; User = "root"; SystemdService = "connman-vpn.service"; }; From bffec3d88448c57c84527fe02bdfc988573b3db2 Mon Sep 17 00:00:00 2001 From: Doron Behar <doron.behar@gmail.com> Date: Sat, 28 Mar 2020 12:28:29 +0300 Subject: [PATCH 24/33] nixos/connman: add TODOs regarding connman + network-manager --- nixos/modules/services/networking/connman.nix | 2 ++ pkgs/tools/networking/connman/default.nix | 2 ++ 2 files changed, 4 insertions(+) diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix index 53adc337fa47..6ccc2dffb267 100644 --- a/nixos/modules/services/networking/connman.nix +++ b/nixos/modules/services/networking/connman.nix @@ -96,6 +96,8 @@ in { assertion = !config.networking.useDHCP; message = "You can not use services.connman with networking.useDHCP"; }{ + # TODO: connman seemingly can be used along network manager and + # connmanFull supports this - so this should be worked out somehow assertion = !config.networking.networkmanager.enable; message = "You can not use services.connman with networking.networkmanager"; }]; diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 9e87c9742ea0..ccceaa30b043 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -5,6 +5,8 @@ connman = callPackage ./connman.nix { }; connmanFull = callPackage ./connman.nix { + # TODO: Why is this in `connmanFull` and not the default build? See TODO in + # nixos/modules/services/networking/connman.nix (near the assertions) enableNetworkManager = true; enableHh2serialGps = true; enableL2tp = true; From 97f09ff09fcc0964d9a4c2b037c9340c8836ed74 Mon Sep 17 00:00:00 2001 From: Benjamin Hipple <bhipple@protonmail.com> Date: Fri, 27 Mar 2020 21:52:48 -0400 Subject: [PATCH 25/33] pythonPackages.ntlm-auth: 1.0.3 -> 1.4.0 to fix build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On master and 20.03, this is failing to build on `python 3.8`. https://hydra.nixos.org/build/115517329 https://hydra.nixos.org/build/114714922 CC @NixOS/nixos-release-managers ZHF: #80379 Co-Authored-By: Niklas Hambüchen <mail@nh2.me> --- pkgs/development/python-modules/ntlm-auth/default.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/ntlm-auth/default.nix b/pkgs/development/python-modules/ntlm-auth/default.nix index e4bbe0fb4302..14900d5c55db 100644 --- a/pkgs/development/python-modules/ntlm-auth/default.nix +++ b/pkgs/development/python-modules/ntlm-auth/default.nix @@ -3,22 +3,23 @@ , fetchFromGitHub , mock , pytest +, requests , unittest2 , six }: buildPythonPackage rec { pname = "ntlm-auth"; - version = "1.0.3"; + version = "1.4.0"; src = fetchFromGitHub { owner = "jborean93"; repo = "ntlm-auth"; rev = "v${version}"; - sha256 = "09f2g4ivfi9lh1kr30hlg0q4n2imnvmd79w83gza11q9nmhhiwpz"; + sha256 = "168k3ygwbvnfcwn7q1nv3vvy6b9jc4cnpix0xgg5j8av7v1x0grn"; }; - checkInputs = [ mock pytest unittest2 ]; + checkInputs = [ mock pytest requests unittest2 ]; propagatedBuildInputs = [ six ]; # Functional tests require networking @@ -28,8 +29,8 @@ buildPythonPackage rec { meta = with lib; { description = "Calculates NTLM Authentication codes"; - homepage = https://github.com/jborean93/ntlm-auth; - license = licenses.lgpl3; + homepage = "https://github.com/jborean93/ntlm-auth"; + license = licenses.mit; maintainers = with maintainers; [ elasticdog ]; platforms = platforms.all; }; From 63a3a81863a46056b80e1bbed5696c06717f6774 Mon Sep 17 00:00:00 2001 From: Matthias Beyer <mail@beyermatthias.de> Date: Sat, 28 Mar 2020 22:27:38 +0100 Subject: [PATCH 26/33] mutt: 1.13.4 -> 1.13.5 --- pkgs/applications/networking/mailreaders/mutt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix index 143153d4d9ff..a53e1abc1861 100644 --- a/pkgs/applications/networking/mailreaders/mutt/default.nix +++ b/pkgs/applications/networking/mailreaders/mutt/default.nix @@ -27,11 +27,11 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "mutt"; - version = "1.13.4"; + version = "1.13.5"; src = fetchurl { url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz"; - sha256 = "016dzx2c0kr9xgnw4nfzpkn4nvpk56rdlcqhrwa820fq8083yzdm"; + sha256 = "0lx65a44b03rbvcrz0y9syrik67fx3hvblxyyvz5l9bb7rdipmvc"; }; patches = optional smimeSupport (fetchpatch { From b938ab99e054eaed93a72e3ff772f1e537b072a5 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch <maximilian@mbosch.me> Date: Sat, 28 Mar 2020 22:32:34 +0100 Subject: [PATCH 27/33] vorta: init at 0.6.24 Simple QT5-based desktop client[1] for `borgbackup`[2]. [1] https://vorta.borgbase.com/ [2] https://borgbackup.readthedocs.io/en/stable/ --- pkgs/applications/backup/vorta/default.nix | 42 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 44 insertions(+) create mode 100644 pkgs/applications/backup/vorta/default.nix diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix new file mode 100644 index 000000000000..1a4d1832c7e1 --- /dev/null +++ b/pkgs/applications/backup/vorta/default.nix @@ -0,0 +1,42 @@ +{ buildPythonApplication, fetchFromGitHub, lib, paramiko, peewee, pyqt5 +, python-dateutil, APScheduler, psutil, qdarkstyle, secretstorage +, appdirs, setuptools, qt5 +}: + +buildPythonApplication rec { + pname = "vorta"; + version = "0.6.24"; + + src = fetchFromGitHub { + owner = "borgbase"; + repo = "vorta"; + rev = "v${version}"; + sha256 = "1xc4cng4npc7g739qd909a8wim6s6sn8h8bb1wpxzg4gcnfyin8z"; + }; + + postPatch = '' + sed -i -e '/setuptools_git/d' -e '/pytest-runner/d' setup.cfg + ''; + + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + + propagatedBuildInputs = [ + paramiko peewee pyqt5 python-dateutil APScheduler psutil qdarkstyle + secretstorage appdirs setuptools + ]; + + # QT setup in tests broken. + doCheck = false; + + postFixup = '' + wrapQtApp $out/bin/vorta + ''; + + meta = with lib; { + license = licenses.gpl3; + homepage = "https://vorta.borgbase.com/"; + maintainers = with maintainers; [ ma27 ]; + description = "Desktop Backup Client for Borg"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index faead3d9df75..e6e44e98f944 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3080,6 +3080,8 @@ in volctl = callPackage ../tools/audio/volctl { }; + vorta = python3Packages.callPackage ../applications/backup/vorta { }; + wallutils = callPackage ../tools/graphics/wallutils { }; wev = callPackage ../tools/misc/wev { }; From bd5324c4fcb990715c64fc40c19341947e04bf17 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch <maximilian@mbosch.me> Date: Fri, 27 Mar 2020 22:09:13 +0100 Subject: [PATCH 28/33] hydra: 2020-02-06 -> 2020-03-{24,27} Upgrades Hydra to the latest master/flake branch. To perform this upgrade, it's needed to do a non-trivial db-migration which provides a massive performance-improvement[1]. The basic ideas behind multi-step upgrades of services between NixOS versions have been gathered already[2]. For further context it's recommended to read this first. Basically, the following steps are needed: * Upgrade to a non-breaking version of Hydra with the db-changes (columns are still nullable here). If `system.stateVersion` is set to something older than 20.03, the package will be selected automatically, otherwise `pkgs.hydra-migration` needs to be used. * Run `hydra-backfill-ids` on the server. * Deploy either `pkgs.hydra-unstable` (for Hydra master) or `pkgs.hydra-flakes` (for flakes-support) to activate the optimization. The steps are also documented in the release-notes and in the module using `warnings`. `pkgs.hydra` has been removed as latest Hydra doesn't compile with `pkgs.nixStable` and to ensure a graceful migration using the newly introduced packages. To verify the approach, a simple vm-test has been added which verifies the migration steps. [1] https://github.com/NixOS/hydra/pull/711 [2] https://github.com/NixOS/nixpkgs/pull/82353#issuecomment-598269471 --- nixos/doc/manual/release-notes/rl-2003.xml | 60 ++++++ .../continuous-integration/hydra/default.nix | 33 +++- nixos/tests/all-tests.nix | 1 + nixos/tests/hydra/common.nix | 47 +++++ nixos/tests/hydra/db-migration.nix | 86 +++++++++ nixos/tests/hydra/default.nix | 139 +++++--------- pkgs/development/tools/misc/hydra/common.nix | 135 ++++++++++++++ pkgs/development/tools/misc/hydra/default.nix | 171 ++++-------------- pkgs/top-level/all-packages.nix | 3 +- 9 files changed, 444 insertions(+), 231 deletions(-) create mode 100644 nixos/tests/hydra/common.nix create mode 100644 nixos/tests/hydra/db-migration.nix create mode 100644 pkgs/development/tools/misc/hydra/common.nix diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml index 7674b0a5c0de..76b12af362f8 100644 --- a/nixos/doc/manual/release-notes/rl-2003.xml +++ b/nixos/doc/manual/release-notes/rl-2003.xml @@ -697,6 +697,66 @@ auth required pam_succeed_if.so uid >= 1000 quiet </para> </warning> </listitem> + <listitem> + <para> + <package>Hydra</package> has gained a massive performance improvement due to + <link xlink:href="https://github.com/NixOS/hydra/pull/710">some database schema + changes</link> by adding several IDs and better indexing. However, it's necessary + to upgrade Hydra in multiple steps: + <itemizedlist> + <listitem> + <para> + At first, an older version of Hydra needs to be deployed which adds those + (nullable) columns. When having set <link linkend="opt-system.stateVersion">stateVersion + </link> to a value older than <literal>20.03</literal>, this package will be selected + by default from the module when upgrading. Otherwise, the package can be deployed using + the following config: +<programlisting>{ pkgs, ... }: { + <link linkend="opt-services.hydra.package">services.hydra.package</link> = pkgs.hydra-migration; +}</programlisting> + </para> + </listitem> + <listitem> + <para> + Automatically fill the newly added ID columns on the server by running the following + command: +<screen> +<prompt>$ </prompt>hydra-backfill-ids +</screen> + <warning> + <para>Please note that this process can take a while depending on your database-size!</para> + </warning> + </para> + </listitem> + <listitem> + <para> + Deploy a newer version of Hydra to activate the DB optimizations. You can choose from + either <package>hydra-unstable</package> (latest <literal>master</literal> compiled + against <package>nixUnstable</package>) and <package>hydra-flakes</package> (latest + version with flake-support). + <warning> + <para> + If your <link linkend="opt-system.stateVersion">stateVersion</link> is set to + <literal>20.03</literal> or greater, <package>hydra-unstable</package> will be used + automatically! This will break your setup if you didn't run the migration. + </para> + </warning> + Please note that Hydra is currently not available with <package>nixStable</package> + as this doesn't compile anymore. + </para> + </listitem> + </itemizedlist> + <warning> + <para> + <package>pkgs.hydra</package> has been removed to ensure a graceful database-migration + using the dedicated package-attributes. If you still have <package>pkgs.hydra</package> + defined in e.g. an overlay, an assertion error will be thrown. To circumvent this, + you need to set <xref linkend="opt-services.hydra.package" /> to <package>pkgs.hydra</package> + explicitly and make sure you know what you're doing! + </para> + </warning> + </para> + </listitem> </itemizedlist> </section> diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix index 8b56207590a1..0c335f14f785 100644 --- a/nixos/modules/services/continuous-integration/hydra/default.nix +++ b/nixos/modules/services/continuous-integration/hydra/default.nix @@ -37,6 +37,8 @@ let haveLocalDB = cfg.dbi == localDB; + inherit (config.system) stateVersion; + in { @@ -63,8 +65,7 @@ in }; package = mkOption { - type = types.path; - default = pkgs.hydra; + type = types.package; defaultText = "pkgs.hydra"; description = "The Hydra package."; }; @@ -194,6 +195,34 @@ in config = mkIf cfg.enable { + warnings = optional (cfg.package.migration or false) '' + You're currently deploying an older version of Hydra which is needed to + make some required database changes[1]. As soon as this is done, it's recommended + to run `hydra-backfill-ids` and set `services.hydra.package` to either `pkgs.hydra-unstable` + or `pkgs.hydra-flakes` after that. + + [1] https://github.com/NixOS/hydra/pull/711 + ''; + + services.hydra.package = with pkgs; + mkDefault ( + if pkgs ? hydra + then throw '' + The Hydra package doesn't exist anymore in `nixpkgs`! It probably exists + due to an overlay. To upgrade Hydra, you need to take two steps as some + bigger changes in the database schema were implemented recently[1]. You first + need to deploy `pkgs.hydra-migration`, run `hydra-backfill-ids` on the server + and then deploy either `pkgs.hydra-unstable` or `pkgs.hydra-flakes`. + + If you want to use `pkgs.hydra` from your overlay, please set `services.hydra.package` + explicitly to `pkgs.hydra` and make sure you know what you're doing. + + [1] https://github.com/NixOS/hydra/pull/711 + '' + else if versionOlder stateVersion "20.03" then hydra-migration + else hydra-unstable + ); + users.groups.hydra = { gid = config.ids.gids.hydra; }; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 3501c551625d..265c93298f3c 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -127,6 +127,7 @@ in home-assistant = handleTest ./home-assistant.nix {}; hound = handleTest ./hound.nix {}; hydra = handleTest ./hydra {}; + hydra-db-migration = handleTest ./hydra/db-migration.nix {}; i3wm = handleTest ./i3wm.nix {}; icingaweb2 = handleTest ./icingaweb2.nix {}; iftop = handleTest ./iftop.nix {}; diff --git a/nixos/tests/hydra/common.nix b/nixos/tests/hydra/common.nix new file mode 100644 index 000000000000..f612717dc968 --- /dev/null +++ b/nixos/tests/hydra/common.nix @@ -0,0 +1,47 @@ +{ system, ... }: +{ + baseConfig = { pkgs, ... }: let + trivialJob = pkgs.writeTextDir "trivial.nix" '' + { trivial = builtins.derivation { + name = "trivial"; + system = "${system}"; + builder = "/bin/sh"; + allowSubstitutes = false; + preferLocalBuild = true; + args = ["-c" "echo success > $out; exit 0"]; + }; + } + ''; + + createTrivialProject = pkgs.stdenv.mkDerivation { + name = "create-trivial-project"; + dontUnpack = true; + buildInputs = [ pkgs.makeWrapper ]; + installPhase = "install -m755 -D ${./create-trivial-project.sh} $out/bin/create-trivial-project.sh"; + postFixup = '' + wrapProgram "$out/bin/create-trivial-project.sh" --prefix PATH ":" ${pkgs.stdenv.lib.makeBinPath [ pkgs.curl ]} --set EXPR_PATH ${trivialJob} + ''; + }; + in { + virtualisation.memorySize = 2048; + time.timeZone = "UTC"; + environment.systemPackages = [ createTrivialProject pkgs.jq ]; + services.hydra = { + enable = true; + # Hydra needs those settings to start up, so we add something not harmfull. + hydraURL = "example.com"; + notificationSender = "example@example.com"; + extraConfig = '' + email_notification = 1 + ''; + }; + services.postfix.enable = true; + nix = { + buildMachines = [{ + hostName = "localhost"; + systems = [ system ]; + }]; + binaryCaches = []; + }; + }; +} diff --git a/nixos/tests/hydra/db-migration.nix b/nixos/tests/hydra/db-migration.nix new file mode 100644 index 000000000000..aa1c81c9e775 --- /dev/null +++ b/nixos/tests/hydra/db-migration.nix @@ -0,0 +1,86 @@ +{ system ? builtins.currentSystem, ... }: + +let inherit (import ./common.nix { inherit system; }) baseConfig; in + +{ mig = import ../make-test-python.nix ({ pkgs, lib, ... }: { + name = "hydra-db-migration"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ ma27 ]; + }; + + nodes = { + original = { pkgs, lib, ... }: { + imports = [ baseConfig ]; + + # An older version of Hydra before the db change + # for testing purposes. + services.hydra.package = pkgs.hydra-migration.overrideAttrs (old: { + inherit (old) pname; + version = "2020-02-06"; + src = pkgs.fetchFromGitHub { + owner = "NixOS"; + repo = "hydra"; + rev = "2b4f14963b16b21ebfcd6b6bfa7832842e9b2afc"; + sha256 = "16q0cffcsfx5pqd91n9k19850c1nbh4vvbd9h8yi64ihn7v8bick"; + }; + }); + }; + + migration_phase1 = { pkgs, lib, ... }: { + imports = [ baseConfig ]; + services.hydra.package = pkgs.hydra-migration; + }; + + finished = { pkgs, lib, ... }: { + imports = [ baseConfig ]; + services.hydra.package = pkgs.hydra-unstable; + }; + }; + + testScript = { nodes, ... }: let + next = nodes.migration_phase1.config.system.build.toplevel; + finished = nodes.finished.config.system.build.toplevel; + in '' + original.start() + original.wait_for_unit("multi-user.target") + original.wait_for_unit("postgresql.service") + original.wait_for_unit("hydra-init.service") + original.require_unit_state("hydra-queue-runner.service") + original.require_unit_state("hydra-evaluator.service") + original.require_unit_state("hydra-notify.service") + original.succeed("hydra-create-user admin --role admin --password admin") + original.wait_for_open_port(3000) + original.succeed("create-trivial-project.sh") + original.wait_until_succeeds( + 'curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq' + ) + + out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ jobs\" -A'") + assert "jobset_id" not in out + + original.succeed( + "${next}/bin/switch-to-configuration test >&2" + ) + original.wait_for_unit("hydra-init.service") + + out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ jobs\" -A'") + assert "jobset_id|integer|||" in out + + original.succeed("hydra-backfill-ids") + + original.succeed( + "${finished}/bin/switch-to-configuration test >&2" + ) + original.wait_for_unit("hydra-init.service") + + out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ jobs\" -A'") + assert "jobset_id|integer||not null|" in out + + original.wait_until_succeeds( + 'curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq' + ) + + original.shutdown() + ''; + }); +} diff --git a/nixos/tests/hydra/default.nix b/nixos/tests/hydra/default.nix index 1c0ed3369b1c..5d94eb91bf5b 100644 --- a/nixos/tests/hydra/default.nix +++ b/nixos/tests/hydra/default.nix @@ -3,102 +3,57 @@ , pkgs ? import ../../.. { inherit system config; } }: +with import ../../lib/testing-python.nix { inherit system pkgs; }; +with pkgs.lib; + let - trivialJob = pkgs.writeTextDir "trivial.nix" '' - { trivial = builtins.derivation { - name = "trivial"; - system = "${system}"; - builder = "/bin/sh"; - allowSubstitutes = false; - preferLocalBuild = true; - args = ["-c" "echo success > $out; exit 0"]; - }; - } - ''; + inherit (import ./common.nix { inherit system; }) baseConfig; - createTrivialProject = pkgs.stdenv.mkDerivation { - name = "create-trivial-project"; - dontUnpack = true; - buildInputs = [ pkgs.makeWrapper ]; - installPhase = "install -m755 -D ${./create-trivial-project.sh} $out/bin/create-trivial-project.sh"; - postFixup = '' - wrapProgram "$out/bin/create-trivial-project.sh" --prefix PATH ":" ${pkgs.stdenv.lib.makeBinPath [ pkgs.curl ]} --set EXPR_PATH ${trivialJob} + hydraPkgs = { + inherit (pkgs) hydra-migration hydra-unstable hydra-flakes; + }; + + makeHydraTest = with pkgs.lib; name: package: makeTest { + name = "hydra-${name}"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ pstn lewo ma27 ]; + }; + + machine = { pkgs, lib, ... }: { + imports = [ baseConfig ]; + services.hydra = { inherit package; }; + }; + + testScript = '' + # let the system boot up + machine.wait_for_unit("multi-user.target") + # test whether the database is running + machine.wait_for_unit("postgresql.service") + # test whether the actual hydra daemons are running + machine.wait_for_unit("hydra-init.service") + machine.require_unit_state("hydra-queue-runner.service") + machine.require_unit_state("hydra-evaluator.service") + machine.require_unit_state("hydra-notify.service") + + machine.succeed("hydra-create-user admin --role admin --password admin") + + # create a project with a trivial job + machine.wait_for_open_port(3000) + + # make sure the build as been successfully built + machine.succeed("create-trivial-project.sh") + + machine.wait_until_succeeds( + 'curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq' + ) + + machine.wait_until_succeeds( + 'journalctl -eu hydra-notify.service -o cat | grep -q "sending mail notification to hydra@localhost"' + ) ''; }; - callTest = f: f { inherit system pkgs; }; - - hydraPkgs = { - inherit (pkgs) nixStable nixUnstable nixFlakes; - }; - - tests = pkgs.lib.flip pkgs.lib.mapAttrs hydraPkgs (name: nix: - callTest (import ../make-test-python.nix ({ pkgs, lib, ... }: - { - name = "hydra-with-${name}"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ pstn lewo ma27 ]; - }; - - machine = { pkgs, ... }: - { - virtualisation.memorySize = 1024; - time.timeZone = "UTC"; - - environment.systemPackages = [ createTrivialProject pkgs.jq ]; - services.hydra = { - enable = true; - - #Hydra needs those settings to start up, so we add something not harmfull. - hydraURL = "example.com"; - notificationSender = "example@example.com"; - - package = pkgs.hydra.override { inherit nix; }; - - extraConfig = '' - email_notification = 1 - ''; - }; - services.postfix.enable = true; - nix = { - buildMachines = [{ - hostName = "localhost"; - systems = [ system ]; - }]; - - binaryCaches = []; - }; - }; - - testScript = '' - # let the system boot up - machine.wait_for_unit("multi-user.target") - # test whether the database is running - machine.wait_for_unit("postgresql.service") - # test whether the actual hydra daemons are running - machine.wait_for_unit("hydra-init.service") - machine.require_unit_state("hydra-queue-runner.service") - machine.require_unit_state("hydra-evaluator.service") - machine.require_unit_state("hydra-notify.service") - - machine.succeed("hydra-create-user admin --role admin --password admin") - - # create a project with a trivial job - machine.wait_for_open_port(3000) - - # make sure the build as been successfully built - machine.succeed("create-trivial-project.sh") - - machine.wait_until_succeeds( - 'curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq' - ) - - machine.wait_until_succeeds( - 'journalctl -eu hydra-notify.service -o cat | grep -q "sending mail notification to hydra@localhost"' - ) - ''; - }))); - in - tests + +mapAttrs makeHydraTest hydraPkgs diff --git a/pkgs/development/tools/misc/hydra/common.nix b/pkgs/development/tools/misc/hydra/common.nix new file mode 100644 index 000000000000..7310ee949721 --- /dev/null +++ b/pkgs/development/tools/misc/hydra/common.nix @@ -0,0 +1,135 @@ +{ stdenv, nix, perlPackages, buildEnv, fetchFromGitHub +, makeWrapper, autoconf, automake, libtool, unzip, pkgconfig, sqlite, libpqxx +, gitAndTools, mercurial, darcs, subversion, bazaar, openssl, bzip2, libxslt +, guile, perl, postgresql, nukeReferences, git, boehmgc, nlohmann_json +, docbook_xsl, openssh, gnused, coreutils, findutils, gzip, lzma, gnutar +, rpm, dpkg, cdrkit, pixz, lib, boost, autoreconfHook, src ? null, version ? null +, migration ? false +}: + +with stdenv; + +if lib.versions.major nix.version == "1" + then throw "This Hydra version doesn't support Nix 1.x" +else + +let + perlDeps = buildEnv { + name = "hydra-perl-deps"; + paths = with perlPackages; lib.closePropagation + [ ModulePluggable + CatalystActionREST + CatalystAuthenticationStoreDBIxClass + CatalystDevel + CatalystDispatchTypeRegex + CatalystPluginAccessLog + CatalystPluginAuthorizationRoles + CatalystPluginCaptcha + CatalystPluginSessionStateCookie + CatalystPluginSessionStoreFastMmap + CatalystPluginStackTrace + CatalystPluginUnicodeEncoding + CatalystTraitForRequestProxyBase + CatalystViewDownload + CatalystViewJSON + CatalystViewTT + CatalystXScriptServerStarman + CatalystXRoleApplicator + CryptRandPasswd + DBDPg + DBDSQLite + DataDump + DateTime + DigestSHA1 + EmailMIME + EmailSender + FileSlurp + IOCompress + IPCRun + JSON + JSONAny + JSONXS + LWP + LWPProtocolHttps + NetAmazonS3 + NetPrometheus + NetStatsd + PadWalker + Readonly + SQLSplitStatement + SetScalar + Starman + SysHostnameLong + TermSizeAny + TestMore + TextDiff + TextTable + XMLSimple + nix + nix.perl-bindings + git + boehmgc + ]; + }; +in stdenv.mkDerivation rec { + pname = "hydra"; + + inherit stdenv src version; + + buildInputs = + [ makeWrapper autoconf automake libtool unzip nukeReferences sqlite libpqxx + gitAndTools.top-git mercurial /*darcs*/ subversion bazaar openssl bzip2 libxslt + perlDeps perl nix + postgresql # for running the tests + nlohmann_json + boost + ]; + + hydraPath = lib.makeBinPath ( + [ sqlite subversion openssh nix coreutils findutils pixz + gzip bzip2 lzma gnutar unzip git gitAndTools.top-git mercurial /*darcs*/ gnused bazaar + ] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] ); + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + + configureFlags = [ "--with-docbook-xsl=${docbook_xsl}/xml/xsl/docbook" ]; + + NIX_CFLAGS_COMPILE = "-pthread"; + + shellHook = '' + PATH=$(pwd)/src/script:$(pwd)/src/hydra-eval-jobs:$(pwd)/src/hydra-queue-runner:$(pwd)/src/hydra-evaluator:$PATH + PERL5LIB=$(pwd)/src/lib:$PERL5LIB; + ''; + + enableParallelBuilding = true; + + preCheck = '' + patchShebangs . + export LOGNAME=''${LOGNAME:-foo} + ''; + + postInstall = '' + mkdir -p $out/nix-support + for i in $out/bin/*; do + read -n 4 chars < $i + if [[ $chars =~ ELF ]]; then continue; fi + wrapProgram $i \ + --prefix PERL5LIB ':' $out/libexec/hydra/lib:$PERL5LIB \ + --prefix PATH ':' $out/bin:$hydraPath \ + --set HYDRA_RELEASE ${version} \ + --set HYDRA_HOME $out/libexec/hydra \ + --set NIX_RELEASE ${nix.name or "unknown"} + done + ''; # */ + + dontStrip = true; + + passthru = { inherit perlDeps migration; }; + + meta = with stdenv.lib; { + description = "Nix-based continuous build system"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ma27 ]; + }; +} diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix index 72aecf20ca39..35c069211b3f 100644 --- a/pkgs/development/tools/misc/hydra/default.nix +++ b/pkgs/development/tools/misc/hydra/default.nix @@ -1,143 +1,42 @@ -{ stdenv, nix, perlPackages, buildEnv, fetchFromGitHub -, makeWrapper, autoconf, automake, libtool, unzip, pkgconfig, sqlite, libpqxx -, gitAndTools, mercurial, darcs, subversion, bazaar, openssl, bzip2, libxslt -, guile, perl, postgresql, nukeReferences, git, boehmgc, nlohmann_json -, docbook_xsl, openssh, gnused, coreutils, findutils, gzip, lzma, gnutar -, rpm, dpkg, cdrkit, pixz, lib, boost, autoreconfHook -}: +{ fetchFromGitHub, nixStable, nixUnstable, callPackage, nixFlakes }: -with stdenv; - -if lib.versions.major nix.version == "1" - then throw "This Hydra version doesn't support Nix 1.x" -else - -let - perlDeps = buildEnv { - name = "hydra-perl-deps"; - paths = with perlPackages; lib.closePropagation - [ ModulePluggable - CatalystActionREST - CatalystAuthenticationStoreDBIxClass - CatalystDevel - CatalystDispatchTypeRegex - CatalystPluginAccessLog - CatalystPluginAuthorizationRoles - CatalystPluginCaptcha - CatalystPluginSessionStateCookie - CatalystPluginSessionStoreFastMmap - CatalystPluginStackTrace - CatalystPluginUnicodeEncoding - CatalystTraitForRequestProxyBase - CatalystViewDownload - CatalystViewJSON - CatalystViewTT - CatalystXScriptServerStarman - CatalystXRoleApplicator - CryptRandPasswd - DBDPg - DBDSQLite - DataDump - DateTime - DigestSHA1 - EmailMIME - EmailSender - FileSlurp - IOCompress - IPCRun - JSON - JSONAny - JSONXS - LWP - LWPProtocolHttps - NetAmazonS3 - NetPrometheus - NetStatsd - PadWalker - Readonly - SQLSplitStatement - SetScalar - Starman - SysHostnameLong - TermSizeAny - TestMore - TextDiff - TextTable - XMLSimple - nix - nix.perl-bindings - git - boehmgc - ]; - }; -in stdenv.mkDerivation rec { - pname = "hydra"; - version = "2020-02-06"; - - inherit stdenv; - - src = fetchFromGitHub { - owner = "NixOS"; - repo = pname; - rev = "2b4f14963b16b21ebfcd6b6bfa7832842e9b2afc"; - sha256 = "16q0cffcsfx5pqd91n9k19850c1nbh4vvbd9h8yi64ihn7v8bick"; +{ + # Package for phase-1 of the db migration for Hydra. + # https://github.com/NixOS/hydra/pull/711 + hydra-migration = callPackage ./common.nix { + version = "2020-02-10"; + src = fetchFromGitHub { + owner = "NixOS"; + repo = "hydra"; + rev = "add4f610ce6f206fb44702b5a894d877b3a30e3a"; + sha256 = "1d8hdgjx2ys0zmixi2ydmimdq7ml20h1ji4amwawcyw59kssh6l3"; + }; + nix = nixStable; + migration = true; }; - buildInputs = - [ makeWrapper autoconf automake libtool unzip nukeReferences sqlite libpqxx - gitAndTools.top-git mercurial darcs subversion bazaar openssl bzip2 libxslt - guile # optional, for Guile + Guix support - perlDeps perl nix - postgresql # for running the tests - nlohmann_json - boost - ]; + # Hydra from latest master (or flakes) branch. Contains breaking changes, + # so when having an older version, `pkgs.hydra-migration` should be deployed first. - hydraPath = lib.makeBinPath ( - [ sqlite subversion openssh nix coreutils findutils pixz - gzip bzip2 lzma gnutar unzip git gitAndTools.top-git mercurial darcs gnused bazaar - ] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] ); + hydra-unstable = callPackage ./common.nix { + version = "2020-03-24"; + src = fetchFromGitHub { + owner = "NixOS"; + repo = "hydra"; + rev = "12cc46cdb36321acd4c982429a86eb0f8f3cc969"; + sha256 = "10ipxzdxr47c8w5jg69mbax2ykc7lb5fs9bbdd3iai9wzyfz17ln"; + }; + nix = nixUnstable; + }; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; - - configureFlags = [ "--with-docbook-xsl=${docbook_xsl}/xml/xsl/docbook" ]; - - NIX_CFLAGS_COMPILE = "-pthread"; - - shellHook = '' - PATH=$(pwd)/src/script:$(pwd)/src/hydra-eval-jobs:$(pwd)/src/hydra-queue-runner:$(pwd)/src/hydra-evaluator:$PATH - PERL5LIB=$(pwd)/src/lib:$PERL5LIB; - ''; - - enableParallelBuilding = true; - - preCheck = '' - patchShebangs . - export LOGNAME=''${LOGNAME:-foo} - ''; - - postInstall = '' - mkdir -p $out/nix-support - for i in $out/bin/*; do - read -n 4 chars < $i - if [[ $chars =~ ELF ]]; then continue; fi - wrapProgram $i \ - --prefix PERL5LIB ':' $out/libexec/hydra/lib:$PERL5LIB \ - --prefix PATH ':' $out/bin:$hydraPath \ - --set HYDRA_RELEASE ${version} \ - --set HYDRA_HOME $out/libexec/hydra \ - --set NIX_RELEASE ${nix.name or "unknown"} - done - ''; # */ - - dontStrip = true; - - passthru.perlDeps = perlDeps; - - meta = with stdenv.lib; { - description = "Nix-based continuous build system"; - license = licenses.gpl3; - platforms = platforms.linux; - maintainers = with maintainers; [ ma27 ]; + hydra-flakes = callPackage ./common.nix { + version = "2020-03-27"; + src = fetchFromGitHub { + owner = "NixOS"; + repo = "hydra"; + rev = "a7540b141d085a7e78c21fda8e8c05907c659b34"; + sha256 = "08fs7593w5zs8vh4c66gvrxk6s840pp6hj8nwf51wsa27kg5a943"; + }; + nix = nixFlakes; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0341fd97bc0b..bbd9acd37ee7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12249,7 +12249,8 @@ in hwloc = callPackage ../development/libraries/hwloc {}; - hydra = callPackage ../development/tools/misc/hydra { }; + inherit (callPackage ../development/tools/misc/hydra { }) + hydra-migration hydra-unstable hydra-flakes; hydra-cli = callPackage ../development/tools/misc/hydra-cli { }; From 7a7d7b1215201259bfbc57972cdef4b950deea47 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch <maximilian@mbosch.me> Date: Sat, 28 Mar 2020 23:32:33 +0100 Subject: [PATCH 29/33] findomain: 1.4.2 -> 1.4.5 --- pkgs/tools/networking/findomain/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix index c78a6ad55267..d5e801a6f920 100644 --- a/pkgs/tools/networking/findomain/default.nix +++ b/pkgs/tools/networking/findomain/default.nix @@ -9,16 +9,16 @@ rustPlatform.buildRustPackage rec { pname = "findomain"; - version = "1.4.2"; + version = "1.4.5"; src = fetchFromGitHub { owner = "Edu4rdSHL"; repo = pname; rev = version; - sha256 = "0c6jjr1343lqwggvpxdhbjyi1far4f7f3yzq1y0nj1j952j7a36x"; + sha256 = "1p4ddyqg1v27hf19n1ksmfvj5s6z2c8i13syb0anhlyzqy576hwb"; }; - cargoSha256 = "1cyfxfhbc2xhavnkhva1xdcw8vy9i5pqhfbiwn6idpfy6hm1w0bx"; + cargoSha256 = "0mdcj4almwziq1ph3imfdx41a96xq19sbjm7wsm9lxlzhvv256br"; nativeBuildInputs = [ installShellFiles perl ]; buildInputs = lib.optional stdenv.isDarwin Security; From f8ccef5edb3ffb02dc4d2ed46b3428aef0847f76 Mon Sep 17 00:00:00 2001 From: worldofpeace <worldofpeace@protonmail.ch> Date: Sat, 28 Mar 2020 18:37:24 -0400 Subject: [PATCH 30/33] riot-desktop: fix StartupWMClass It seems the quoting breaks it just like in da587daae5feae652cd7ee6e8799ccd5021561a3 (cherry picked from commit e50bb280cbf5339ed671b0a7208e6aba4002c713) --- .../networking/instant-messengers/riot/riot-desktop.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix b/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix index 87342115e1e4..8218e0de9deb 100644 --- a/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix +++ b/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix @@ -70,7 +70,7 @@ in mkYarnPackage rec { comment = meta.description; categories = "Network;InstantMessaging;Chat;"; extraEntries = '' - StartupWMClass="riot" + StartupWMClass=riot ''; }; From de4b549f65ccb491abb8ca80fbe805806db2ae3d Mon Sep 17 00:00:00 2001 From: "R. RyanTM" <ryantm-bot@ryantm.com> Date: Sat, 28 Mar 2020 14:54:31 +0000 Subject: [PATCH 31/33] xml2rfc: 2.37.3 -> 2.41.0 --- pkgs/development/python-modules/xml2rfc/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/xml2rfc/default.nix b/pkgs/development/python-modules/xml2rfc/default.nix index cf4eadd99d89..b2bd5af56c8c 100644 --- a/pkgs/development/python-modules/xml2rfc/default.nix +++ b/pkgs/development/python-modules/xml2rfc/default.nix @@ -5,11 +5,11 @@ buildPythonPackage rec { pname = "xml2rfc"; - version = "2.37.3"; + version = "2.41.0"; src = fetchPypi { inherit pname version; - sha256 = "4ae4e99a4b482caac89d8ffd93d16a4510db36907475b1879713a1dc885646ad"; + sha256 = "0xmhgn62a8a7282yd003zz63mrgyajb6sg29bfyllx3mxmdlb0iz"; }; propagatedBuildInputs = [ @@ -36,7 +36,7 @@ buildPythonPackage rec { meta = with lib; { description = "Tool generating IETF RFCs and drafts from XML sources"; - homepage = https://tools.ietf.org/tools/xml2rfc/trac/; + homepage = "https://tools.ietf.org/tools/xml2rfc/trac/"; # Well, parts might be considered unfree, if being strict; see: # http://metadata.ftp-master.debian.org/changelogs/non-free/x/xml2rfc/xml2rfc_2.9.6-1_copyright license = licenses.bsd3; From 596b601dfa8e8412fbc6db7748f6e4fb359a7731 Mon Sep 17 00:00:00 2001 From: Cole Mickens <cole.mickens@gmail.com> Date: Sat, 28 Mar 2020 01:49:20 +0000 Subject: [PATCH 32/33] plex-mpv-shim: v1.7.12 -> v1.7.14 --- pkgs/applications/video/plex-mpv-shim/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/video/plex-mpv-shim/default.nix b/pkgs/applications/video/plex-mpv-shim/default.nix index 019d080f9739..df72e200e62a 100644 --- a/pkgs/applications/video/plex-mpv-shim/default.nix +++ b/pkgs/applications/video/plex-mpv-shim/default.nix @@ -2,13 +2,13 @@ buildPythonApplication rec { pname = "plex-mpv-shim"; - version = "1.7.12"; + version = "1.7.14"; src = fetchFromGitHub { owner = "iwalton3"; repo = pname; rev = "v${version}"; - sha256 = "0l13g4vkvcd1q4lkdkbgv4hgkx5pql6ym2fap35581z7rzy9jhkq"; + sha256 = "1rjifqvs59w2aacfird02myqfd34qadhacj9zpy5xjz25x410zza"; }; propagatedBuildInputs = [ mpv requests python-mpv-jsonipc ]; From 3c4ab13243b50d851510dc32c3f7e9605d6155bf Mon Sep 17 00:00:00 2001 From: Jan Tojnar <jtojnar@gmail.com> Date: Sun, 29 Mar 2020 00:18:44 +0100 Subject: [PATCH 33/33] nixos/nginx: fix eval Fixes a typo introduced in https://github.com/NixOS/nixpkgs/pull/83611 --- nixos/modules/services/web-servers/nginx/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index fd230a76499b..8d49dc66eb1a 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -176,7 +176,7 @@ let ${optionalString (cfg.httpConfig != "") '' http { - ${common.httpConfig} + ${commonHttpConfig} ${cfg.httpConfig} }''}