Unverified Commit e90ef4e1 authored by github-actions[bot]'s avatar github-actions[bot] Committed by GitHub
Browse files

Merge master into haskell-updates

parents 729d583b c0c77416
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -3536,6 +3536,12 @@
    github = "scaredmushroom";
    githubId = 45340040;
  };
  caperren = {
    name = "Corwin Perren";
    email = "caperren@gmail.com";
    github = "caperren";
    githubId = 4566591;
  };
  CaptainJawZ = {
    email = "CaptainJawZ@outlook.com";
    name = "Danilo Reyes";
@@ -4763,6 +4769,12 @@
    githubId = 743057;
    name = "Danylo Hlynskyi";
  };
  danbulant = {
    name = "Daniel Bulant";
    email = "danbulant@gmail.com";
    github = "danbulant";
    githubId = 30036876;
  };
  danc86 = {
    name = "Dan Callaghan";
    email = "djc@djc.id.au";
@@ -18665,6 +18677,12 @@
    githubId = 82817;
    name = "Robert Kreuzer";
  };
  rksm = {
    email = "robert@kra.hn";
    github = "rksm";
    githubId = 467450;
    name = "Robert Krahn";
  };
  rlupton20 = {
    email = "richard.lupton@gmail.com";
    github = "rlupton20";
@@ -18759,6 +18777,13 @@
    githubId = 521306;
    name = "Rob Glossop";
  };
  robinkrahl = {
    email = "nix@ireas.org";
    github = "robinkrahl";
    githubId = 165115;
    keys = [ { fingerprint = "EC7E F0F9 B681 4C24 6236  3842 B755 6972 702A FD45"; } ];
    name = "Robin Krahl";
  };
  roblabla = {
    email = "robinlambertz+dev@gmail.com";
    github = "roblabla";
+2 −0
Original line number Diff line number Diff line
@@ -236,6 +236,8 @@

- `knot-dns` has been updated to version 3.4.x. Check the [migration guide](https://www.knot-dns.cz/docs/latest/html/migration.html#upgrade-3-3-x-to-3-4-x) for breaking changes.

- `mutmut` has been updated to version 3.0.5.

- `services.kubernetes.kubelet.clusterDns` now accepts a list of DNS resolvers rather than a single string, bringing the module more in line with the upstream Kubelet configuration schema.

- `bluemap` has changed the format used to store map tiles, and the database layout has been heavily modified. Upstream recommends a clean reinstallation: <https://github.com/BlueMap-Minecraft/BlueMap/releases/tag/v5.2>. Unless you are using an SQL storage backend, this should only entail deleting the contents of `config.services.bluemap.coreSettings.data` (defaults to `/var/lib/bluemap`) and `config.services.bluemap.webRoot` (defaults to `/var/lib/bluemap/web`).
+2 −4
Original line number Diff line number Diff line
@@ -11,14 +11,12 @@ in
      type = lib.types.bool;
      default = false;
      description = ''
        Enables udev rules for Nitrokey devices. By default grants access
        to users in the "nitrokey" group. You may want to install the
        nitrokey-app package, depending on your device and needs.
        Enables udev rules for Nitrokey devices.
      '';
    };
  };

  config = lib.mkIf cfg.enable {
    services.udev.packages = [ pkgs.libnitrokey ];
    services.udev.packages = [ pkgs.nitrokey-udev-rules ];
  };
}
+6 −0
Original line number Diff line number Diff line
@@ -334,6 +334,12 @@ in

    environment.etc."my.cnf".source = cfg.configFile;

    # The mysql_install_db binary will try to adjust the permissions, but fail to do so with a permission
    # denied error in some circumstances. Setting the permissions manually with tmpfiles is a workaround.
    systemd.tmpfiles.rules = [
      "d ${cfg.dataDir} 0755 ${cfg.user} ${cfg.group} - -"
    ];

    systemd.services.mysql = {
      description = "MySQL Server";

+224 −166
Original line number Diff line number Diff line
{ config, pkgs, lib, ... }:
{
  config,
  pkgs,
  lib,
  ...
}:

let
  cfg = config.services.desktopManager.lomiri;
in {
in
{
  options.services.desktopManager.lomiri = {
    enable = lib.mkEnableOption ''
      the Lomiri graphical shell (formerly known as Unity8)
    '';

    basics = lib.mkOption {
      internal = true;
      description = ''
        Enable basic things for getting Lomiri working.
      '';
      type = lib.types.bool;
      default = config.services.xserver.displayManager.lightdm.greeters.lomiri.enable || cfg.enable;
    };
  };

  config = lib.mkMerge [
    # Basics for getting Lomiri to work
    (lib.mkIf cfg.basics {
      environment = {
        # To override the default keyboard layout in Lomiri
        etc.${pkgs.lomiri.lomiri.passthru.etcLayoutsFile}.text = lib.strings.replaceStrings [ "," ] [
          "\n"
        ] config.services.xserver.xkb.layout;

        pathsToLink = [
          # Data
          "/share/locale" # TODO LUITK hardcoded default locale path, fix individual apps to not rely on it
          "/share/wallpapers"
        ];

        systemPackages = with pkgs.lomiri; [
          lomiri-wallpapers # default + additional wallpaper
          suru-icon-theme # basic indicator icons
        ];
      };

      fonts.packages = with pkgs; [
        ubuntu-classic # Ubuntu is default font
      ];

      # Xwayland is partly hardcoded in Mir so it can't really be fully turned off, and it must be on PATH for X11 apps *and Lomiri's web browser* to work.
      # Until Mir/Lomiri can be properly used without it, force it on so everything behaves as expected.
      programs.xwayland.enable = lib.mkForce true;

      services.ayatana-indicators = {
        enable = true;
        packages = (
          with pkgs;
          [
            ayatana-indicator-datetime # Clock
            ayatana-indicator-session # Controls for shutting down etc
          ]
        );
      };
    })

    # Full Lomiri DE
    (lib.mkIf cfg.enable {
      # We need the basic setup as well
      services.desktopManager.lomiri.basics = true;

  config = lib.mkIf cfg.enable {
      environment = {
      systemPackages = (with pkgs; [
        systemPackages =
          (with pkgs; [
            glib # XDG MIME-related tools identify it as GNOME, add gio for MIME identification to work
            libayatana-common
            ubports-click
      ]) ++ (with pkgs.lomiri; [
          ])
          ++ (with pkgs.lomiri; [
            hfd-service
            history-service
            libusermetrics
@@ -36,17 +98,12 @@ in {
            lomiri-terminal-app
            lomiri-thumbnailer
            lomiri-url-dispatcher
        lomiri-wallpapers
            mediascanner2 # TODO possibly needs to be kicked off by graphical-session.target
            morph-browser
            qtmir # not having its desktop file for Xwayland available causes any X11 application to crash the session
        suru-icon-theme
            telephony-service
            teleports
          ]);

      # To override the default keyboard layout in Lomiri
      etc.${pkgs.lomiri.lomiri.passthru.etcLayoutsFile}.text = lib.strings.replaceStrings [","] ["\n"] config.services.xserver.xkb.layout;
      };

      hardware = {
@@ -66,39 +123,33 @@ in {
        lomiri-download-manager
      ];

    fonts.packages = with pkgs; [
      # Applications tend to default to Ubuntu font
      ubuntu-classic
    ];

      # Copy-pasted basic stuff
      hardware.graphics.enable = lib.mkDefault true;
      fonts.enableDefaultPackages = lib.mkDefault true;
      programs.dconf.enable = lib.mkDefault true;

    # Xwayland is partly hardcoded in Mir so it can't really be fully turned off, and it must be on PATH for X11 apps *and Lomiri's web browser* to work.
    # Until Mir/Lomiri can be properly used without it, force it on so everything behaves as expected.
    programs.xwayland.enable = lib.mkForce true;

      services.accounts-daemon.enable = true;

      services.ayatana-indicators = {
        enable = true;
      packages = (with pkgs; [
        ayatana-indicator-datetime
        packages =
          (
            with pkgs;
            [
              ayatana-indicator-display
              ayatana-indicator-messages
              ayatana-indicator-power
        ayatana-indicator-session
      ] ++ lib.optionals config.hardware.bluetooth.enable [
        ayatana-indicator-bluetooth
      ] ++ lib.optionals (config.hardware.pulseaudio.enable || config.services.pipewire.pulse.enable) [
            ]
            ++ lib.optionals config.hardware.bluetooth.enable [ ayatana-indicator-bluetooth ]
            ++ lib.optionals (config.hardware.pulseaudio.enable || config.services.pipewire.pulse.enable) [
              ayatana-indicator-sound
      ]) ++ (with pkgs.lomiri; [
        telephony-service
      ] ++ lib.optionals config.networking.networkmanager.enable [
        lomiri-indicator-network
      ]);
            ]
          )
          ++ (
            with pkgs.lomiri;
            [ telephony-service ]
            ++ lib.optionals config.networking.networkmanager.enable [ lomiri-indicator-network ]
          );
      };

      services.udisks2.enable = true;
@@ -139,9 +190,7 @@ in {
        # At least the network indicator is still under the unity name, due to leftover Unity-isms
        "/share/unity"
        # Data
      "/share/locale" # TODO LUITK hardcoded default locale path, fix individual apps to not rely on it
        "/share/sounds"
      "/share/wallpapers"
      ];

      systemd.user.services = {
@@ -159,7 +208,13 @@ in {

        "lomiri-polkit-agent" = rec {
          description = "Lomiri Polkit agent";
        wantedBy = [ "lomiri.service" "lomiri-full-greeter.service" "lomiri-full-shell.service" "lomiri-greeter.service" "lomiri-shell.service" ];
          wantedBy = [
            "lomiri.service"
            "lomiri-full-greeter.service"
            "lomiri-full-shell.service"
            "lomiri-greeter.service"
            "lomiri-shell.service"
          ];
          after = [ "graphical-session.target" ];
          partOf = wantedBy;
          serviceConfig = {
@@ -172,14 +227,16 @@ in {

      systemd.services = {
        "dbus-com.lomiri.UserMetrics" = {
        serviceConfig = {
          serviceConfig =
            {
              Type = "dbus";
              BusName = "com.lomiri.UserMetrics";
              User = "usermetrics";
              StandardOutput = "syslog";
              SyslogIdentifier = "com.lomiri.UserMetrics";
              ExecStart = "${pkgs.lomiri.libusermetrics}/libexec/libusermetrics/usermetricsservice";
        } // lib.optionalAttrs (!config.security.apparmor.enable) {
            }
            // lib.optionalAttrs (!config.security.apparmor.enable) {
              # Due to https://gitlab.com/ubports/development/core/libusermetrics/-/issues/8, auth must be disabled when not using AppArmor, lest the next database usage breaks
              Environment = "USERMETRICS_NO_AUTH=1";
            };
@@ -194,7 +251,8 @@ in {
      };

      users.groups.usermetrics = { };
  };
    })
  ];

  meta.maintainers = lib.teams.lomiri.members;
}
Loading