summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl2
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/security/pam.nix11
-rw-r--r--nixos/modules/services/security/oauth2_proxy.nix2
-rw-r--r--nixos/modules/tasks/filesystems/ecryptfs.nix14
-rw-r--r--pkgs/development/tools/build-managers/dub/default.nix49
-rw-r--r--pkgs/os-specific/linux/eudev/default.nix13
-rw-r--r--pkgs/os-specific/linux/lxc/default.nix6
-rw-r--r--pkgs/servers/xmpp/biboumi/catch.patch30
-rw-r--r--pkgs/servers/xmpp/biboumi/default.nix44
-rw-r--r--pkgs/top-level/all-packages.nix5
11 files changed, 145 insertions, 32 deletions
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 926d1e3133f7..c0df2977856e 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -103,7 +103,7 @@ if (-e "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors") {
 
     foreach $e (@desired_governors) {
         if (index($governors, $e) != -1) {
-            last if (push @attrs, "powerManagement.cpuFreqGovernor = \"$e\";");
+            last if (push @attrs, "powerManagement.cpuFreqGovernor = lib.mkDefault \"$e\";");
         }
     }
 }
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index e67e6ae32b9a..6f00a97dd3ff 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -696,6 +696,7 @@
   ./tasks/filesystems/bcachefs.nix
   ./tasks/filesystems/btrfs.nix
   ./tasks/filesystems/cifs.nix
+  ./tasks/filesystems/ecryptfs.nix
   ./tasks/filesystems/exfat.nix
   ./tasks/filesystems/ext.nix
   ./tasks/filesystems/f2fs.nix
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index ede4ace5ed03..5ded36329f33 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -486,8 +486,9 @@ in
       ++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
       ++ optionals config.security.pam.enableOTPW [ pkgs.otpw ]
       ++ optionals config.security.pam.oath.enable [ pkgs.oathToolkit ]
-      ++ optionals config.security.pam.enableU2F [ pkgs.pam_u2f ]
-      ++ optionals config.security.pam.enableEcryptfs [ pkgs.ecryptfs ];
+      ++ optionals config.security.pam.enableU2F [ pkgs.pam_u2f ];
+
+    boot.supportedFilesystems = optionals config.security.pam.enableEcryptfs [ "ecryptfs" ];
 
     security.wrappers = {
       unix_chkpwd = {
@@ -495,10 +496,7 @@ in
         owner = "root";
         setuid = true;
       };
-    } // (if config.security.pam.enableEcryptfs then {
-      "mount.ecryptfs_private".source = "${pkgs.ecryptfs.out}/bin/mount.ecryptfs_private";
-       "umount.ecryptfs_private".source = "${pkgs.ecryptfs.out}/bin/umount.ecryptfs_private";
-    } else {});
+    };
 
     environment.etc =
       mapAttrsToList (n: v: makePAMService v) config.security.pam.services;
@@ -521,6 +519,7 @@ in
         ftp = {};
         i3lock = {};
         i3lock-color = {};
+        swaylock = {};
         screen = {};
         vlock = {};
         xlock = {};
diff --git a/nixos/modules/services/security/oauth2_proxy.nix b/nixos/modules/services/security/oauth2_proxy.nix
index 3e5087766b1c..ef48d52e7a94 100644
--- a/nixos/modules/services/security/oauth2_proxy.nix
+++ b/nixos/modules/services/security/oauth2_proxy.nix
@@ -385,7 +385,7 @@ in
 
     httpAddress = mkOption {
       type = types.str;
-      default = "127.0.0.1:4180";
+      default = "http://127.0.0.1:4180";
       description = ''
         HTTPS listening address.  This module does not expose the port by
         default. If you want this URL to be accessible to other machines, please
diff --git a/nixos/modules/tasks/filesystems/ecryptfs.nix b/nixos/modules/tasks/filesystems/ecryptfs.nix
new file mode 100644
index 000000000000..12a407cabbfb
--- /dev/null
+++ b/nixos/modules/tasks/filesystems/ecryptfs.nix
@@ -0,0 +1,14 @@
+{ config, lib, pkgs, ... }:
+# TODO: make ecryptfs work in initramfs?
+
+with lib;
+
+{
+  config = mkIf (any (fs: fs == "ecryptfs") config.boot.supportedFilesystems) {
+    system.fsPackages = [ pkgs.ecryptfs ];
+    security.wrappers = {
+      "mount.ecryptfs_private".source = "${pkgs.ecryptfs.out}/bin/mount.ecryptfs_private";
+      "umount.ecryptfs_private".source = "${pkgs.ecryptfs.out}/bin/umount.ecryptfs_private";
+    };
+  };
+}
diff --git a/pkgs/development/tools/build-managers/dub/default.nix b/pkgs/development/tools/build-managers/dub/default.nix
index 7f178babf32e..007ce5b07cde 100644
--- a/pkgs/development/tools/build-managers/dub/default.nix
+++ b/pkgs/development/tools/build-managers/dub/default.nix
@@ -1,27 +1,53 @@
-{ stdenv, fetchFromGitHub, curl, dmd, gcc }:
+{ stdenv, fetchFromGitHub, curl, dmd, libevent, rsync }:
 
 stdenv.mkDerivation rec {
   name = "dub-${version}";
-  version = "1.1.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
-    sha256 = "1smzlfs5gjmrlghccdgn04qzy5b8l0xm8y2virayb2adrwqviscm";
-    rev = "v${version}";
+    owner = "dlang";
     repo = "dub";
-    owner = "D-Programming-Language";
+    rev = "v${version}";
+    sha256 = "0kmirx4ijhzirjwdqmnwqhngg38zdaydpvny2p0yj3afqgkj6vq5";
   };
 
-  buildInputs = [ curl ];
-  propagatedBuildInputs = [ gcc dmd ];
-
-  buildPhase = ''
+  postPatch = ''
     # Avoid that the version file is overwritten
     substituteInPlace build.sh \
       --replace source/dub/version_.d /dev/null
-    patchShebangs ./build.sh
+
+    substituteInPlace build.sh \
+      --replace MACOSX_DEPLOYMENT_TARGET MACOSX_DEPLOYMENT_TARGET_
+
+    patchShebangs build.sh
+    patchShebangs test
+
+    # Remove unittest which is not working for now (upstream already fixed: https://github.com/dlang/dub/issues/1224)
+    rm test/interactive-remove.sh
+
+    # Fix test as long as there is no upstream solution. (see https://github.com/dlang/dub/pull/1227)
+    substituteInPlace test/issue884-init-defer-file-creation.sh \
+      --replace "< /dev/stdin" "<(while :; do sleep 1; done)" \
+      --replace "sleep 1" ""
+  '';
+
+  nativeBuildInputs = [ dmd libevent rsync ];
+  buildInputs = [ curl ];
+
+  buildPhase = ''
+    export DMD=${dmd.out}/bin/dmd
     ./build.sh
   '';
 
+  doCheck = false;
+
+  checkPhase = ''
+      export DUB=$PWD/bin/dub
+      export DC=${dmd.out}/bin/dmd
+      export HOME=$TMP
+      ./test/run-unittest.sh
+  '';
+
   installPhase = ''
     mkdir $out
     mkdir $out/bin
@@ -29,9 +55,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Build tool for D projects";
+    description = "Package and build manager for D applications and libraries";
     homepage = http://code.dlang.org/;
     license = licenses.mit;
+    maintainers = with maintainers; [ ThomasMader ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/os-specific/linux/eudev/default.nix b/pkgs/os-specific/linux/eudev/default.nix
index 091a0d4b46f4..67ce39ddbd39 100644
--- a/pkgs/os-specific/linux/eudev/default.nix
+++ b/pkgs/os-specific/linux/eudev/default.nix
@@ -1,17 +1,17 @@
-{stdenv, fetchurl, pkgconfig, glib, gperf, utillinux}:
+{stdenv, fetchurl, pkgconfig, glib, gperf, utillinux, kmod}:
 let
   s = # Generated upstream information
   rec {
     baseName="eudev";
-    version = "3.2.1";
+    version = "3.2.4";
     name="${baseName}-${version}";
     url="http://dev.gentoo.org/~blueness/eudev/eudev-${version}.tar.gz";
-    sha256 = "06gyyl90n85x8i7lfhns514y1kg1ians13l467admyzy3kjxkqsp";
+    sha256 = "1vbg2k5mngyxdcdw4jkkzxbwdgrcr643hkby1whz7x91kg4g9p6x";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    glib gperf utillinux
+    glib gperf utillinux kmod
   ];
 in
 stdenv.mkDerivation {
@@ -21,11 +21,6 @@ stdenv.mkDerivation {
     inherit (s) url sha256;
   };
   patches = [
-    (fetchurl {
-       # for new gperf
-       url = "https://github.com/gentoo/eudev/commit/5bab4d8de0dcbb8e2e7d4d5125b4aea1652a0d60.patch";
-       sha256 = "097pjmgq243mz3vfxndwmm37prmacgq2f4r4gb47whfkbd6syqcw";
-    })
   ];
 
   configureFlags = [
diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix
index c1f9425efc34..f818d2c0d8c0 100644
--- a/pkgs/os-specific/linux/lxc/default.nix
+++ b/pkgs/os-specific/linux/lxc/default.nix
@@ -12,11 +12,11 @@ in
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "lxc-${version}";
-  version = "2.0.8";
+  version = "2.1.0";
 
   src = fetchurl {
     url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz";
-    sha256 = "15449r56rqg3487kzsnfvz0w4p5ajrq0krcsdh6c9r6g0ark93hd";
+    sha256 = "1qld0gi19mximxm0qyr6vzav32gymhc7fvp0bzwv37j0b8q0fi1r";
   };
 
   nativeBuildInputs = [
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   ];
   buildInputs = [
     libapparmor gnutls libselinux libseccomp cgmanager libnih dbus libcap
-    python3Packages.python systemd
+    python3Packages.python python3Packages.setuptools systemd
   ];
 
   patches = [
diff --git a/pkgs/servers/xmpp/biboumi/catch.patch b/pkgs/servers/xmpp/biboumi/catch.patch
new file mode 100644
index 000000000000..05cf534ecfef
--- /dev/null
+++ b/pkgs/servers/xmpp/biboumi/catch.patch
@@ -0,0 +1,30 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -273,27 +273,6 @@ foreach(file ${source_all})
+ endforeach()
+ 
+ #
+-## Add a rule to download the catch unit test framework
+-#
+-include(ExternalProject)
+-ExternalProject_Add(catch
+-  GIT_REPOSITORY "https://lab.louiz.org/louiz/Catch.git"
+-  PREFIX "external"
+-  UPDATE_COMMAND ""
+-  CONFIGURE_COMMAND ""
+-  BUILD_COMMAND ""
+-  INSTALL_COMMAND ""
+-  )
+-set_target_properties(catch PROPERTIES EXCLUDE_FROM_ALL TRUE)
+-ExternalProject_Get_Property(catch SOURCE_DIR)
+-if(NOT EXISTS ${CMAKE_SOURCE_DIR}/tests/catch.hpp)
+-  target_include_directories(test_suite
+-    PUBLIC "${SOURCE_DIR}/include/"
+-    )
+-  add_dependencies(test_suite catch)
+-endif()
+-
+-#
+ ## Add some custom rules to launch the tests
+ #
+ add_custom_target(check COMMAND "test_suite"
diff --git a/pkgs/servers/xmpp/biboumi/default.nix b/pkgs/servers/xmpp/biboumi/default.nix
new file mode 100644
index 000000000000..e59aaa9116c9
--- /dev/null
+++ b/pkgs/servers/xmpp/biboumi/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, fetchgit, cmake, libuuid, expat, sqlite, libidn,
+  libiconv, botan2, systemd, pkgconfig, udns, pandoc, procps } :
+
+stdenv.mkDerivation rec {
+  name = "biboumi-${version}";
+  version = "6.1";
+
+  src = fetchurl {
+    url = "https://git.louiz.org/biboumi/snapshot/biboumi-${version}.tar.xz";
+    sha256 = "1la1n502v2wyfm0vl8v4m0hbigkkjchi21446n9mb203fz1cvr77";
+  };
+
+  louiz_catch = fetchgit {
+    url = https://lab.louiz.org/louiz/Catch.git;
+    rev = "35f510545d55a831372d3113747bf1314ff4f2ef";
+    sha256 = "1l5b32sgr9zc2hlfr445hwwxv18sh3cn5q1xmvf588z6jyf88g2g";
+  };
+
+  patches = [ ./catch.patch ];
+
+  nativeBuildInputs = [ cmake pkgconfig pandoc ];
+  buildInputs = [ libuuid expat sqlite libiconv libidn botan2 systemd
+    udns procps ];
+
+  inherit procps;
+  preConfigure = ''
+    substituteInPlace CMakeLists.txt --replace /etc/biboumi $out/etc/biboumi
+    substituteInPlace unit/biboumi.service.cmake --replace /bin/kill $procps/bin/kill
+    cp $louiz_catch/single_include/catch.hpp tests/
+    # echo "policy_directory=$out/etc/biboumi" >> conf/biboumi.cfg
+    # TODO include conf/biboumi.cfg as example somewhere
+  '';
+
+  enableParallelBuilding = true;
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Modern XMPP IRC gateway";
+    platforms = platforms.unix;
+    homepage = https://lab.louiz.org/louiz/biboumi;
+    license = licenses.zlib;
+    maintainers = [ maintainers.woffs ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ab062fd2bda1..c38ee66735e7 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11483,6 +11483,8 @@ with pkgs;
     inherit (lua51Packages) luasocket luasec luaexpat luafilesystem luabitop luaevent luazlib;
   };
 
+  biboumi = callPackage ../servers/xmpp/biboumi { };
+
   elasticmq = callPackage ../servers/elasticmq { };
 
   eventstore = callPackage ../servers/nosql/eventstore {
@@ -15027,6 +15029,7 @@ with pkgs;
   wlc = callPackage ../development/libraries/wlc { };
   orbment = callPackage ../applications/window-managers/orbment { };
   sway = callPackage ../applications/window-managers/sway { };
+  swaylock = callPackage ../applications/window-managers/sway { };
 
   swc = callPackage ../development/libraries/swc { };
   wld = callPackage ../development/libraries/wld { };
@@ -18281,7 +18284,7 @@ with pkgs;
     kinfocenter kmenuedit kscreen kscreenlocker ksshaskpass ksysguard
     kwallet-pam kwayland-integration kwin kwrited milou oxygen plasma-desktop
     plasma-integration plasma-nm plasma-pa plasma-vault plasma-workspace
-    plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm startkde
+    plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm
     systemsettings;
 
   ### SCIENCE