diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index bbfdb160e90b..b94571d61947 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -15906,6 +15906,12 @@ email = "nathaniel.brough@gmail.com"; name = "Nathaniel Brough"; }; + nathanregner = { + email = "nathanregner@gmail.com"; + github = "nathanregner"; + githubId = 9659564; + name = "Nathan Regner"; + }; nathanruiz = { email = "nathanruiz@protonmail.com"; github = "nathanruiz"; diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index 97e0ca92469f..c4b58c97b254 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -325,6 +325,10 @@ - Following [changes in Mint 22](https://github.com/linuxmint/mintupgrade/commit/f239cde908288b8c250f938e7311c7ffbc16bd59) we are no longer overriding Qt application styles. You can still restore the previous default with `qt.style = "gtk2"` and `qt.platformTheme = "gtk2"`. - Following [changes in Mint 20](https://github.com/linuxmint/mintupgrade-legacy/commit/ce15d946ed9a8cb8444abd25088edd824bfb18f6) we are replacing xplayer with celluloid since xplayer is no longer maintained. +- Pantheon has been updated to 8, please check the [upstream announcement](https://blog.elementary.io/os-8-available-now/) for more details. + - Same as elementary OS, the X11 session is named "Classic Session" and the Wayland session is named "Secure Session". + - The dock has been rewritten, you need to manually migrate the dock items on update. You can check `~/.config/plank/dock1/launchers/` for your previous settings. + - Xfce has been updated to 4.20, please check the [upstream feature tour](https://www.xfce.org/about/tour420) for more details. - Wayland session is still [experimental](https://wiki.xfce.org/releng/wayland_roadmap) and requires opt-in using `enableWaylandSession` option. - Overriding Wayland compositor is possible using `enableWaylandSession` option, but you might need to take care [`xfce4-session`](https://gitlab.xfce.org/xfce/xfce4-session/-/merge_requests/49), [`dbus-update-activation-environment`](https://github.com/labwc/labwc/blob/eaf11face68ee1f1bcc7ce1498304ca8c108c8ba/src/config/session.c#L234) and [`systemctl --user import-environment`](https://github.com/labwc/labwc/blob/eaf11face68ee1f1bcc7ce1498304ca8c108c8ba/src/config/session.c#L239) on startup. diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix index 1ae2653ed3e9..aaaf97ab1347 100644 --- a/nixos/modules/programs/ssh.nix +++ b/nixos/modules/programs/ssh.nix @@ -13,9 +13,7 @@ let askPasswordWrapper = pkgs.writeScript "ssh-askpass-wrapper" '' #! ${pkgs.runtimeShell} -e - export DISPLAY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^DISPLAY=\(.*\)/\1/; t; d')" - export XAUTHORITY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^XAUTHORITY=\(.*\)/\1/; t; d')" - export WAYLAND_DISPLAY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^WAYLAND_DISPLAY=\(.*\)/\1/; t; d')" + eval export $(systemctl --user show-environment | ${pkgs.coreutils}/bin/grep -E '^(DISPLAY|WAYLAND_DISPLAY|XAUTHORITY)=') exec ${cfg.askPassword} "$@" ''; diff --git a/nixos/modules/services/desktops/bamf.nix b/nixos/modules/services/desktops/bamf.nix index d9c46e94d9e0..dd09a94737a2 100644 --- a/nixos/modules/services/desktops/bamf.nix +++ b/nixos/modules/services/desktops/bamf.nix @@ -2,7 +2,7 @@ { config, lib, pkgs, ... }: { meta = with lib; { - maintainers = with lib.maintainers; [ ] ++ lib.teams.pantheon.members; + maintainers = with lib.maintainers; [ ]; }; ###### interface diff --git a/nixos/modules/services/misc/klipper.nix b/nixos/modules/services/misc/klipper.nix index bac0c5cf14bb..78e7f35fed4e 100644 --- a/nixos/modules/services/misc/klipper.nix +++ b/nixos/modules/services/misc/klipper.nix @@ -18,6 +18,13 @@ let }; in { + imports = [ + (lib.mkRenamedOptionModule + [ "services" "klipper" "mutableConfigFolder" ] + [ "services" "klipper" "configDir" ] + ) + ]; + ##### interface options = { services.klipper = { @@ -52,23 +59,22 @@ in default = false; example = true; description = '' - Whether to copy the config to a mutable directory instead of using the one directly from the nix store. - This will only copy the config if the file at `services.klipper.mutableConfigPath` doesn't exist. + Whether to manage the config outside of NixOS. + + It will still be initialized with the defined NixOS config if the file doesn't already exist. ''; }; - mutableConfigFolder = lib.mkOption { + configDir = lib.mkOption { type = lib.types.path; default = "/var/lib/klipper"; - description = "Path to mutable Klipper config file."; + description = "Path to Klipper config file."; }; configFile = lib.mkOption { type = lib.types.nullOr lib.types.path; default = null; - description = '' - Path to default Klipper config. - ''; + description = "Path to default Klipper config."; }; octoprintIntegration = lib.mkOption { @@ -162,11 +168,6 @@ in } ]; - environment.etc = lib.mkIf (!cfg.mutableConfig) { - "klipper.cfg".source = - if cfg.settings != null then format.generate "klipper.cfg" cfg.settings else cfg.configFile; - }; - services.klipper = lib.mkIf cfg.octoprintIntegration { user = config.services.octoprint.user; group = config.services.octoprint.group; @@ -178,9 +179,7 @@ in "--input-tty=${cfg.inputTTY}" + lib.optionalString (cfg.apiSocket != null) " --api-server=${cfg.apiSocket}" + lib.optionalString (cfg.logFile != null) " --logfile=${cfg.logFile}"; - printerConfigPath = - if cfg.mutableConfig then cfg.mutableConfigFolder + "/printer.cfg" else "/etc/klipper.cfg"; - printerConfigFile = + printerConfig = if cfg.settings != null then format.generate "klipper.cfg" cfg.settings else cfg.configFile; in { @@ -188,19 +187,33 @@ in wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; preStart = '' - mkdir -p ${cfg.mutableConfigFolder} - ${lib.optionalString (cfg.mutableConfig) '' - [ -e ${printerConfigPath} ] || { - cp ${printerConfigFile} ${printerConfigPath} - chmod +w ${printerConfigPath} + mkdir -p ${cfg.configDir} + pushd ${cfg.configDir} + if [ -e printer.cfg ]; then + ${ + if cfg.mutableConfig then + ":" + else + '' + # Backup existing config using the same date format klipper uses for SAVE_CONFIG + old_config="printer-$(date +"%Y%m%d_%H%M%S").cfg" + mv printer.cfg "$old_config" + # Preserve SAVE_CONFIG section from the existing config + cat ${printerConfig} <(printf "\n") <(sed -n '/#*# <---------------------- SAVE_CONFIG ---------------------->/,$p' "$old_config") > printer.cfg + ${pkgs.diffutils}/bin/cmp printer.cfg "$old_config" && rm "$old_config" + '' } - ''} - mkdir -p ${cfg.mutableConfigFolder}/gcodes + else + cat ${printerConfig} > printer.cfg + fi + popd ''; + restartTriggers = lib.optional (!cfg.mutableConfig) [ printerConfig ]; + serviceConfig = { - ExecStart = "${cfg.package}/bin/klippy ${klippyArgs} ${printerConfigPath}"; + ExecStart = "${cfg.package}/bin/klippy ${klippyArgs} ${cfg.configDir}/printer.cfg"; RuntimeDirectory = "klipper"; StateDirectory = "klipper"; SupplementaryGroups = [ "dialout" ]; diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index 14e7e25252de..50e1f195f988 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -112,27 +112,23 @@ in # https://github.com/elementary/greeter/issues/368 services.displayManager.defaultSession = mkDefault "pantheon"; - services.xserver.displayManager.sessionCommands = '' - if test "$XDG_CURRENT_DESKTOP" = "Pantheon"; then - true - ${concatMapStrings (p: '' - if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then - export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name} - fi + environment.extraInit = '' + ${concatMapStrings (p: '' + if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then + export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name} + fi - if [ -d "${p}/lib/girepository-1.0" ]; then - export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0 - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib - fi - '') cfg.sessionPath} - fi + if [ -d "${p}/lib/girepository-1.0" ]; then + export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0 + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib + fi + '') cfg.sessionPath} ''; # Default services hardware.bluetooth.enable = mkDefault true; security.polkit.enable = true; services.accounts-daemon.enable = true; - services.bamf.enable = true; services.colord.enable = mkDefault true; services.fwupd.enable = mkDefault true; # TODO: Enable once #177946 is resolved @@ -232,7 +228,8 @@ in ])) config.environment.pantheon.excludePackages; # Settings from elementary-default-settings - environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini"; + # GTK4 will try both $XDG_CONFIG_DIRS/gtk-4.0 and ${gtk4}/etc/gtk-4.0, but not /etc/gtk-4.0. + environment.etc."xdg/gtk-4.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-4.0/settings.ini"; xdg.mime.enable = true; xdg.icons.enable = true; diff --git a/nixos/modules/system/etc/etc-activation.nix b/nixos/modules/system/etc/etc-activation.nix index 47c65590e0c4..ed08ba928785 100644 --- a/nixos/modules/system/etc/etc-activation.nix +++ b/nixos/modules/system/etc/etc-activation.nix @@ -15,6 +15,7 @@ system.activationScripts.etc = lib.stringAfter [ "users" "groups" + "specialfs" ] config.system.build.etcActivationCommands; } @@ -48,7 +49,7 @@ boot.initrd.systemd = { mounts = [ { - where = "/run/etc-metadata"; + where = "/run/nixos-etc-metadata"; what = "/etc-metadata-image"; type = "erofs"; options = "loop,ro"; @@ -83,7 +84,7 @@ "relatime" "redirect_dir=on" "metacopy=on" - "lowerdir=/run/etc-metadata::/etc-basedir" + "lowerdir=/run/nixos-etc-metadata::/etc-basedir" ] ++ lib.optionals config.system.etc.overlay.mutable [ "rw" @@ -113,7 +114,7 @@ unitConfig = { RequiresMountsFor = [ "/sysroot/nix/store" - "/run/etc-metadata" + "/run/nixos-etc-metadata" ]; DefaultDependencies = false; }; diff --git a/nixos/modules/system/etc/etc.nix b/nixos/modules/system/etc/etc.nix index 5f2acd7bacb9..7c7db061359c 100644 --- a/nixos/modules/system/etc/etc.nix +++ b/nixos/modules/system/etc/etc.nix @@ -250,78 +250,100 @@ in ); in if config.system.etc.overlay.enable then + #bash '' - # This script atomically remounts /etc when switching configuration. On a (re-)boot - # this should not run because /etc is mounted via a systemd mount unit - # instead. To a large extent this mimics what composefs does. Because + # This script atomically remounts /etc when switching configuration. + # On a (re-)boot this should not run because /etc is mounted via a + # systemd mount unit instead. + # The activation script can also be called in cases where we didn't have + # an initrd though, like for instance when using nixos-enter, + # so we cannot assume that /etc has already been mounted. + # + # To a large extent this mimics what composefs does. Because # it's relatively simple, however, we avoid the composefs dependency. # Since this script is not idempotent, it should not run when etc hasn't # changed. if [[ ! $IN_NIXOS_SYSTEMD_STAGE1 ]] && [[ "${config.system.build.etc}/etc" != "$(readlink -f /run/current-system/etc)" ]]; then echo "remounting /etc..." - tmpMetadataMount=$(mktemp --directory -t nixos-etc-metadata.XXXXXXXXXX) + ${lib.optionalString config.system.etc.overlay.mutable '' + # These directories are usually created in initrd, + # but we need to create them here when we didn't we're called directly, + # for instance by nixos-enter + mkdir --parents /.rw-etc/upper /.rw-etc/work + chmod --recursive 0755 /.rw-etc + ''} + + tmpMetadataMount=$(TMPDIR="/run" mktemp --directory -t nixos-etc-metadata.XXXXXXXXXX) mount --type erofs -o ro ${config.system.build.etcMetadataImage} $tmpMetadataMount - # Mount the new /etc overlay to a temporary private mount. - # This needs the indirection via a private bind mount because you - # cannot move shared mounts. - tmpEtcMount=$(mktemp --directory -t nixos-etc.XXXXXXXXXX) - mount --bind --make-private $tmpEtcMount $tmpEtcMount - mount --type overlay overlay \ - --options lowerdir=$tmpMetadataMount::${config.system.build.etcBasedir},${etcOverlayOptions} \ - $tmpEtcMount + # There was no previous /etc mounted. This happens when we're called + # directly without an initrd, like with nixos-enter. + if ! mountpoint -q /etc; then + mount --type overlay overlay \ + --options lowerdir=$tmpMetadataMount::${config.system.build.etcBasedir},${etcOverlayOptions} \ + /etc + else + # Mount the new /etc overlay to a temporary private mount. + # This needs the indirection via a private bind mount because you + # cannot move shared mounts. + tmpEtcMount=$(TMPDIR="/run" mktemp --directory -t nixos-etc.XXXXXXXXXX) + mount --bind --make-private $tmpEtcMount $tmpEtcMount + mount --type overlay overlay \ + --options lowerdir=$tmpMetadataMount::${config.system.build.etcBasedir},${etcOverlayOptions} \ + $tmpEtcMount - # Before moving the new /etc overlay under the old /etc, we have to - # move mounts on top of /etc to the new /etc mountpoint. - findmnt /etc --submounts --list --noheading --kernel --output TARGET | while read -r mountPoint; do - if [[ "$mountPoint" = "/etc" ]]; then - continue - fi + # Before moving the new /etc overlay under the old /etc, we have to + # move mounts on top of /etc to the new /etc mountpoint. + findmnt /etc --submounts --list --noheading --kernel --output TARGET | while read -r mountPoint; do + if [[ "$mountPoint" = "/etc" ]]; then + continue + fi - tmpMountPoint="$tmpEtcMount/''${mountPoint:5}" - ${ - if config.system.etc.overlay.mutable then - '' - if [[ -f "$mountPoint" ]]; then - touch "$tmpMountPoint" - elif [[ -d "$mountPoint" ]]; then - mkdir -p "$tmpMountPoint" - fi - '' - else - '' - if [[ ! -e "$tmpMountPoint" ]]; then - echo "Skipping undeclared mountpoint in environment.etc: $mountPoint" - continue - fi - '' - } - mount --bind "$mountPoint" "$tmpMountPoint" - done + tmpMountPoint="$tmpEtcMount/''${mountPoint:5}" + ${ + if config.system.etc.overlay.mutable then + '' + if [[ -f "$mountPoint" ]]; then + touch "$tmpMountPoint" + elif [[ -d "$mountPoint" ]]; then + mkdir -p "$tmpMountPoint" + fi + '' + else + '' + if [[ ! -e "$tmpMountPoint" ]]; then + echo "Skipping undeclared mountpoint in environment.etc: $mountPoint" + continue + fi + '' + } + mount --bind "$mountPoint" "$tmpMountPoint" + done - # Move the new temporary /etc mount underneath the current /etc mount. - # - # This should eventually use util-linux to perform this move beneath, - # however, this functionality is not yet in util-linux. See this - # tracking issue: https://github.com/util-linux/util-linux/issues/2604 - ${pkgs.move-mount-beneath}/bin/move-mount --move --beneath $tmpEtcMount /etc + # Move the new temporary /etc mount underneath the current /etc mount. + # + # This should eventually use util-linux to perform this move beneath, + # however, this functionality is not yet in util-linux. See this + # tracking issue: https://github.com/util-linux/util-linux/issues/2604 + ${pkgs.move-mount-beneath}/bin/move-mount --move --beneath $tmpEtcMount /etc - # Unmount the top /etc mount to atomically reveal the new mount. - umount --lazy --recursive /etc + # Unmount the top /etc mount to atomically reveal the new mount. + umount --lazy --recursive /etc - # Unmount the temporary mount - umount --lazy "$tmpEtcMount" - rmdir "$tmpEtcMount" + # Unmount the temporary mount + umount --lazy "$tmpEtcMount" + rmdir "$tmpEtcMount" + fi # Unmount old metadata mounts # For some reason, `findmnt /tmp --submounts` does not show the nested # mounts. So we'll just find all mounts of type erofs and filter on the # name of the mountpoint. findmnt --type erofs --list --kernel --output TARGET | while read -r mountPoint; do - if [[ "$mountPoint" =~ ^/tmp/nixos-etc-metadata\..{10}$ && + if [[ ("$mountPoint" =~ ^/run/nixos-etc-metadata\..{10}$ || "$mountPoint" =~ ^/run/nixos-etc-metadata$ ) && "$mountPoint" != "$tmpMetadataMount" ]]; then - umount --lazy $mountPoint + umount --lazy "$mountPoint" rmdir "$mountPoint" fi done diff --git a/nixos/tests/activation/etc-overlay-immutable.nix b/nixos/tests/activation/etc-overlay-immutable.nix index da1ea317440c..2adb91114014 100644 --- a/nixos/tests/activation/etc-overlay-immutable.nix +++ b/nixos/tests/activation/etc-overlay-immutable.nix @@ -39,8 +39,8 @@ '' newergen = machine.succeed("realpath /run/current-system/specialisation/newer-generation/bin/switch-to-configuration").rstrip() - with subtest("/run/etc-metadata/ is mounted"): - print(machine.succeed("mountpoint /run/etc-metadata")) + with subtest("/run/nixos-etc-metadata/ is mounted"): + print(machine.succeed("mountpoint /run/nixos-etc-metadata")) with subtest("No temporary files leaked into stage 2"): machine.succeed("[ ! -e /etc-metadata-image ]") @@ -91,10 +91,14 @@ machine.succeed(f"{newergen} switch") - tmpMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc\\..*' | wc -l").rstrip() - metaMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc-metadata\\..*' | wc -l").rstrip() + tmpMounts = machine.succeed("find /run -maxdepth 1 -type d -regex '/run/nixos-etc\\..*'").rstrip() + print(tmpMounts) + metaMounts = machine.succeed("find /run -maxdepth 1 -type d -regex '/run/nixos-etc-metadata.*'").rstrip() + print(metaMounts) - assert tmpMounts == "0", f"Found {tmpMounts} remaining tmpmounts" - assert metaMounts == "1", f"Found {metaMounts} remaining metamounts" + numOfTmpMounts = len(tmpMounts.splitlines()) + numOfMetaMounts = len(metaMounts.splitlines()) + assert numOfTmpMounts == 0, f"Found {numOfTmpMounts} remaining tmpmounts" + assert numOfMetaMounts == 1, f"Found {numOfMetaMounts} remaining metamounts" ''; } diff --git a/nixos/tests/activation/etc-overlay-mutable.nix b/nixos/tests/activation/etc-overlay-mutable.nix index be87e1120894..5dc27dedb30b 100644 --- a/nixos/tests/activation/etc-overlay-mutable.nix +++ b/nixos/tests/activation/etc-overlay-mutable.nix @@ -27,8 +27,8 @@ '' newergen = machine.succeed("realpath /run/current-system/specialisation/newer-generation/bin/switch-to-configuration").rstrip() - with subtest("/run/etc-metadata/ is mounted"): - print(machine.succeed("mountpoint /run/etc-metadata")) + with subtest("/run/nixos-etc-metadata/ is mounted"): + print(machine.succeed("mountpoint /run/nixos-etc-metadata")) with subtest("No temporary files leaked into stage 2"): machine.succeed("[ ! -e /etc-metadata-image ]") @@ -68,10 +68,14 @@ machine.succeed(f"{newergen} switch") assert machine.succeed("cat /etc/newergen") == "newergen" - tmpMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc\\..*' | wc -l").rstrip() - metaMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc-metadata\\..*' | wc -l").rstrip() + tmpMounts = machine.succeed("find /run -maxdepth 1 -type d -regex '/run/nixos-etc\\..*'").rstrip() + print(tmpMounts) + metaMounts = machine.succeed("find /run -maxdepth 1 -type d -regex '/run/nixos-etc-metadata.*'").rstrip() + print(metaMounts) - assert tmpMounts == "0", f"Found {tmpMounts} remaining tmpmounts" - assert metaMounts == "1", f"Found {metaMounts} remaining metamounts" + numOfTmpMounts = len(tmpMounts.splitlines()) + numOfMetaMounts = len(metaMounts.splitlines()) + assert numOfTmpMounts == 0, f"Found {numOfTmpMounts} remaining tmpmounts" + assert numOfMetaMounts == 1, f"Found {numOfMetaMounts} remaining metamounts" ''; } diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 56653b64e5c7..be546f2acc3a 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -798,6 +798,7 @@ in { patroni = handleTestOn ["x86_64-linux"] ./patroni.nix {}; pantalaimon = handleTest ./matrix/pantalaimon.nix {}; pantheon = handleTest ./pantheon.nix {}; + pantheon-wayland = handleTest ./pantheon-wayland.nix {}; paperless = handleTest ./paperless.nix {}; parsedmarc = handleTest ./parsedmarc {}; password-option-override-ordering = handleTest ./password-option-override-ordering.nix {}; diff --git a/nixos/tests/pantheon-wayland.nix b/nixos/tests/pantheon-wayland.nix new file mode 100644 index 000000000000..2a99c6cb1272 --- /dev/null +++ b/nixos/tests/pantheon-wayland.nix @@ -0,0 +1,105 @@ +import ./make-test-python.nix ( + { pkgs, lib, ... }: + + { + name = "pantheon-wayland"; + + meta.maintainers = lib.teams.pantheon.members; + + nodes.machine = + { nodes, ... }: + + let + videosAutostart = pkgs.writeTextFile { + name = "autostart-elementary-videos"; + destination = "/etc/xdg/autostart/io.elementary.videos.desktop"; + text = '' + [Desktop Entry] + Version=1.0 + Name=Videos + Type=Application + Terminal=false + Exec=io.elementary.videos %U + ''; + }; + in + { + imports = [ ./common/user-account.nix ]; + + # Workaround ".gala-wrapped invoked oom-killer" + virtualisation.memorySize = 2047; + + services.xserver.enable = true; + services.xserver.desktopManager.pantheon.enable = true; + services.displayManager = { + autoLogin.enable = true; + autoLogin.user = nodes.machine.users.users.alice.name; + defaultSession = "pantheon-wayland"; + }; + + # We ship pantheon.appcenter by default when this is enabled. + services.flatpak.enable = true; + + # For basic OCR tests. + environment.systemPackages = [ videosAutostart ]; + + # We don't ship gnome-text-editor in Pantheon module, we add this line mainly + # to catch eval issues related to this option. + environment.pantheon.excludePackages = [ pkgs.gnome-text-editor ]; + }; + + enableOCR = true; + + testScript = + { nodes, ... }: + let + user = nodes.machine.users.users.alice; + in + '' + machine.wait_for_unit("display-manager.service") + + with subtest("Wait for wayland server"): + machine.wait_for_file("/run/user/${toString user.uid}/wayland-0") + + with subtest("Check that logging in has given the user ownership of devices"): + machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}") + + with subtest("Check if Pantheon components actually start"): + # We specifically check gsd-xsettings here since it is manually pulled up by gala. + # https://github.com/elementary/gala/pull/2140 + for i in ["gala", "io.elementary.wingpanel", "io.elementary.dock", "gsd-media-keys", "gsd-xsettings", "io.elementary.desktop.agent-polkit"]: + machine.wait_until_succeeds(f"pgrep -f {i}") + for i in ["io.elementary.files.xdg-desktop-portal.service"]: + machine.wait_for_unit(i, "${user.name}") + + with subtest("Check if various environment variables are set"): + cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf ${pkgs.pantheon.gala}/bin/gala)/environ" + machine.succeed(f"{cmd} | grep 'XDG_CURRENT_DESKTOP' | grep 'Pantheon'") + machine.succeed(f"{cmd} | grep 'XDG_SESSION_TYPE' | grep 'wayland'") + # Hopefully from the sessionPath option. + machine.succeed(f"{cmd} | grep 'XDG_DATA_DIRS' | grep 'gsettings-schemas/pantheon-agent-geoclue2'") + # Hopefully from login shell. + machine.succeed(f"{cmd} | grep '__NIXOS_SET_ENVIRONMENT_DONE' | grep '1'") + + with subtest("Wait for elementary videos autostart"): + machine.wait_until_succeeds("pgrep -f io.elementary.videos") + machine.wait_for_text("No Videos Open") + machine.screenshot("videos") + + with subtest("Trigger multitasking view"): + cmd = "dbus-send --session --dest=org.pantheon.gala --print-reply /org/pantheon/gala org.pantheon.gala.PerformAction int32:1" + env = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${toString user.uid}/bus" + machine.succeed(f"su - ${user.name} -c '{env} {cmd}'") + machine.sleep(5) + machine.screenshot("multitasking") + machine.succeed(f"su - ${user.name} -c '{env} {cmd}'") + + with subtest("Check if gala has ever coredumped"): + machine.fail("coredumpctl --json=short | grep gala") + # So we can see the dock. + machine.execute("pkill -f -9 io.elementary.videos") + machine.sleep(10) + machine.screenshot("screen") + ''; + } +) diff --git a/nixos/tests/pantheon.nix b/nixos/tests/pantheon.nix index 0387a0359ab0..7a19d6432fb0 100644 --- a/nixos/tests/pantheon.nix +++ b/nixos/tests/pantheon.nix @@ -56,11 +56,11 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}") with subtest("Check if Pantheon components actually start"): - for i in ["gala", "io.elementary.wingpanel", "plank", "gsd-media-keys", "io.elementary.desktop.agent-polkit"]: + for i in ["gala", "io.elementary.wingpanel", "io.elementary.dock", "gsd-media-keys", "io.elementary.desktop.agent-polkit"]: machine.wait_until_succeeds(f"pgrep -f {i}") - for i in ["gala", "io.elementary.wingpanel", "plank"]: + for i in ["gala", "io.elementary.wingpanel", "io.elementary.dock"]: machine.wait_for_window(i) - for i in ["bamfdaemon.service", "io.elementary.files.xdg-desktop-portal.service"]: + for i in ["io.elementary.files.xdg-desktop-portal.service"]: machine.wait_for_unit(i, "${user.name}") with subtest("Check if various environment variables are set"): @@ -70,8 +70,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : machine.succeed(f"{cmd} | grep 'XDG_DATA_DIRS' | grep 'gsettings-schemas/pantheon-agent-geoclue2'") # Hopefully from login shell. machine.succeed(f"{cmd} | grep '__NIXOS_SET_ENVIRONMENT_DONE' | grep '1'") - # See elementary-session-settings packaging. - machine.succeed(f"{cmd} | grep 'XDG_CONFIG_DIRS' | grep 'elementary-default-settings'") with subtest("Open elementary videos"): machine.execute("su - ${user.name} -c 'DISPLAY=:0 io.elementary.videos >&2 &'") @@ -101,6 +99,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : machine.succeed(f"su - ${user.name} -c '{env} {cmd}'") machine.sleep(5) machine.screenshot("multitasking") + machine.succeed(f"su - ${user.name} -c '{env} {cmd}'") with subtest("Check if gala has ever coredumped"): machine.fail("coredumpctl --json=short | grep gala") diff --git a/pkgs/applications/editors/tiled/default.nix b/pkgs/applications/editors/tiled/default.nix index a8c7a18a4aae..ea5cba92460d 100644 --- a/pkgs/applications/editors/tiled/default.nix +++ b/pkgs/applications/editors/tiled/default.nix @@ -28,13 +28,13 @@ in stdenv.mkDerivation rec { pname = "tiled"; - version = "1.11.0"; + version = "1.11.1"; src = fetchFromGitHub { owner = "mapeditor"; repo = pname; rev = "v${version}"; - sha256 = "sha256-cFS1OSYfGMsnw+VkZD/HO4+D+pxNKuifWjNhy0FoxN0="; + sha256 = "sha256-9cgGweo0D43U/puS82JCmBrikKe/TclHsrghQ4OZVEo="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/browsers/nyxt/default.nix b/pkgs/applications/networking/browsers/nyxt/default.nix index 5c1d3a610e8d..1f05ff540cee 100644 --- a/pkgs/applications/networking/browsers/nyxt/default.nix +++ b/pkgs/applications/networking/browsers/nyxt/default.nix @@ -10,7 +10,6 @@ gobject-introspection, gsettings-desktop-schemas, glib-networking, - notify-osd, gtk3, glib, gdk-pixbuf, @@ -51,7 +50,6 @@ stdenv.mkDerivation (finalAttrs: { gobject-introspection gsettings-desktop-schemas glib-networking - notify-osd gtk3 gstreamer gst-libav diff --git a/pkgs/applications/radio/wsjtx/default.nix b/pkgs/applications/radio/wsjtx/default.nix index 09a5fd5f80d6..ef3eb6b003f6 100644 --- a/pkgs/applications/radio/wsjtx/default.nix +++ b/pkgs/applications/radio/wsjtx/default.nix @@ -36,6 +36,7 @@ stdenv.mkDerivation rec { asciidoctor cmake gfortran + hamlib_4 # rigctl libtool pkg-config qttools @@ -53,6 +54,8 @@ stdenv.mkDerivation rec { boost ]; + strictDeps = true; + meta = with lib; { description = "Weak-signal digital communication modes for amateur radio"; longDescription = '' diff --git a/pkgs/by-name/ar/arouteserver/package.nix b/pkgs/by-name/ar/arouteserver/package.nix index 19f6df88a431..4f37d09e6b84 100644 --- a/pkgs/by-name/ar/arouteserver/package.nix +++ b/pkgs/by-name/ar/arouteserver/package.nix @@ -7,14 +7,14 @@ python3Packages.buildPythonPackage rec { pname = "arouteserver"; - version = "1.23.1"; + version = "1.23.2"; pyproject = true; src = fetchFromGitHub { owner = "pierky"; repo = "arouteserver"; - rev = "v${version}"; - hash = "sha256-EZOBMDBsxbuVzzjQWU8V4n3gcLkRQxCq2eVK/Tyko4E="; + tag = "v${version}"; + hash = "sha256-qPU1eBEAlF6wcI1KEBtSuf0a+pKsqoCN0mtAPjIr+0c="; }; postPatch = '' diff --git a/pkgs/by-name/ca/calibre/package.nix b/pkgs/by-name/ca/calibre/package.nix index b87947503c4f..e1abe756d198 100644 --- a/pkgs/by-name/ca/calibre/package.nix +++ b/pkgs/by-name/ca/calibre/package.nix @@ -104,6 +104,7 @@ stdenv.mkDerivation (finalAttrs: { beautifulsoup4 css-parser cssselect + fonttools python-dateutil dnspython faust-cchardet @@ -206,7 +207,6 @@ stdenv.mkDerivation (finalAttrs: { doInstallCheck = true; installCheckInputs = with python3Packages; [ - fonttools psutil ]; installCheckPhase = '' diff --git a/pkgs/by-name/ex/exo/package.nix b/pkgs/by-name/ex/exo/package.nix index 0616a1ccea49..03cc972dca1d 100644 --- a/pkgs/by-name/ex/exo/package.nix +++ b/pkgs/by-name/ex/exo/package.nix @@ -7,14 +7,14 @@ }: python3Packages.buildPythonApplication rec { pname = "exo"; - version = "0.0.4-alpha"; + version = "0.0.5-alpha"; pyproject = true; src = fetchFromGitHub { owner = "exo-explore"; repo = "exo"; tag = "v${version}"; - hash = "sha256-tB+/MtAAyBwoculoToiUgwqHOKEOu6Ip1Jvx0+FqC8o="; + hash = "sha256-bAbKmLoJbDVwGoWTxA3a0CUzVFoso6/Uz6e48MSJDgw="; }; build-system = with python3Packages; [ setuptools ]; diff --git a/pkgs/by-name/fa/famistudio/package.nix b/pkgs/by-name/fa/famistudio/package.nix index 7b315588882f..57e41b238b67 100644 --- a/pkgs/by-name/fa/famistudio/package.nix +++ b/pkgs/by-name/fa/famistudio/package.nix @@ -28,13 +28,13 @@ let in buildDotnetModule (finalAttrs: { pname = "famistudio"; - version = "4.3.0"; + version = "4.3.1"; src = fetchFromGitHub { owner = "BleuBleu"; repo = "FamiStudio"; tag = finalAttrs.version; - hash = "sha256-Ldht7w1qgLTiqbRUJJvFQgl1VW6k+14w/jz58kAeMl0="; + hash = "sha256-ISOMsnsvsO3wOp9J/CilCr4wBgkHc29od2a2sBssN7k="; }; postPatch = diff --git a/pkgs/by-name/fl/flrig/package.nix b/pkgs/by-name/fl/flrig/package.nix index 7e7b9f023667..083ff5bc48b5 100644 --- a/pkgs/by-name/fl/flrig/package.nix +++ b/pkgs/by-name/fl/flrig/package.nix @@ -27,6 +27,8 @@ stdenv.mkDerivation rec { pkg-config ]; + env.FLTK_CONFIG = lib.getExe' (lib.getDev fltk13) "fltk-config"; + meta = { description = "Digital modem rig control program"; homepage = "https://sourceforge.net/projects/fldigi/"; diff --git a/pkgs/by-name/gn/gnome-settings-daemon46/add-gnome-session-ctl-option.patch b/pkgs/by-name/gn/gnome-settings-daemon46/add-gnome-session-ctl-option.patch new file mode 100644 index 000000000000..8bdf39ce37b6 --- /dev/null +++ b/pkgs/by-name/gn/gnome-settings-daemon46/add-gnome-session-ctl-option.patch @@ -0,0 +1,58 @@ +From aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0 Mon Sep 17 00:00:00 2001 +From: WORLDofPEACE +Date: Sun, 20 Sep 2020 16:09:36 -0400 +Subject: [PATCH] build: add a gnome_session_ctl_path option + +In gsd.service.in the ExecStopPost expects g-s-d libexecdir to +be from the same prefix as gnome-session's, and this is not necessarily +true as there are linux distro's that install their packages into their +own individual prefixes (like NixOS or Guix). +--- + meson_options.txt | 1 + + plugins/gsd.service.in | 2 +- + plugins/meson.build | 6 ++++++ + 3 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/meson_options.txt b/meson_options.txt +index 3e04cf64f..21e003c61 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -1,4 +1,5 @@ + option('udev_dir', type: 'string', value: '', description: 'Absolute path of the udev base directory') ++option('gnome_session_ctl_path', type: 'string', value: '', description: 'Absolute path to the gnome-session-ctl binary') + option('systemd', type: 'boolean', value: true, description: 'Enable systemd integration') + + option('alsa', type: 'boolean', value: true, description: 'build with ALSA support (not optional on Linux platforms)') +diff --git a/plugins/gsd.service.in b/plugins/gsd.service.in +index 79b5f5536..bfbde6d05 100644 +--- a/plugins/gsd.service.in ++++ b/plugins/gsd.service.in +@@ -23,4 +23,4 @@ BusName=@plugin_dbus_name@ + TimeoutStopSec=5 + # We cannot use OnFailure as e.g. dependency failures are normal + # https://github.com/systemd/systemd/issues/12352 +-ExecStopPost=@libexecdir@/gnome-session-ctl --exec-stop-check ++ExecStopPost=@gnome_session_ctl@ --exec-stop-check +diff --git a/plugins/meson.build b/plugins/meson.build +index 83e018854..266a0f093 100644 +--- a/plugins/meson.build ++++ b/plugins/meson.build +@@ -20,6 +20,11 @@ all_plugins = [ + + disabled_plugins = [] + ++gnome_session_ctl = get_option('gnome_session_ctl_path') ++if gnome_session_ctl == '' ++ gnome_session_ctl = join_paths(gsd_libexecdir, 'gnome-session-ctl') ++endif ++ + if not enable_smartcard + disabled_plugins += ['smartcard'] + endif +@@ -125,6 +130,7 @@ foreach plugin: all_plugins + unit_conf.set('plugin_name', plugin_name) + unit_conf.set('description', plugin_description) + unit_conf.set('libexecdir', gsd_libexecdir) ++ unit_conf.set('gnome_session_ctl', gnome_session_ctl) + unit_conf.set('plugin_dbus_name', plugin_dbus_name) + unit_conf.set('plugin_restart', plugin_restart_rule.get(plugin_name, 'on-failure')) diff --git a/pkgs/by-name/gn/gnome-settings-daemon43/fix-paths.patch b/pkgs/by-name/gn/gnome-settings-daemon46/fix-paths.patch similarity index 100% rename from pkgs/by-name/gn/gnome-settings-daemon43/fix-paths.patch rename to pkgs/by-name/gn/gnome-settings-daemon46/fix-paths.patch diff --git a/pkgs/by-name/gn/gnome-settings-daemon43/package.nix b/pkgs/by-name/gn/gnome-settings-daemon46/package.nix similarity index 86% rename from pkgs/by-name/gn/gnome-settings-daemon43/package.nix rename to pkgs/by-name/gn/gnome-settings-daemon46/package.nix index 23d0a8eaa720..d7b00a0a2ef9 100644 --- a/pkgs/by-name/gn/gnome-settings-daemon43/package.nix +++ b/pkgs/by-name/gn/gnome-settings-daemon46/package.nix @@ -1,7 +1,6 @@ { stdenv, lib, - fetchpatch, substituteAll, fetchurl, meson, @@ -13,7 +12,6 @@ glib, libnotify, libgnomekbd, - lcms2, libpulseaudio, alsa-lib, libcanberra-gtk3, @@ -36,26 +34,22 @@ wrapGAppsHook3, python3, tzdata, - nss, gcr_4, gnome-session-ctl, }: stdenv.mkDerivation (finalAttrs: { pname = "gnome-settings-daemon"; - version = "43.0"; + version = "46.0"; src = fetchurl { url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major finalAttrs.version}/gnome-settings-daemon-${finalAttrs.version}.tar.xz"; - hash = "sha256-NRO7JPxvgYFmciOmSgZ1NP3M879mMmqUA9OLDw1gE9A="; + hash = "sha256-C5oPZPoYqOfgm0yVo/dU+gM8LNvS3DVwHwYYVywcs9c="; }; patches = [ # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/202 - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0.patch"; - hash = "sha256-O4m0rOW8Zrgu3Q0p0OA8b951VC0FjYbOUk9MLzB9icI="; - }) + ./add-gnome-session-ctl-option.patch (substituteAll { src = ./fix-paths.patch; @@ -85,14 +79,12 @@ stdenv.mkDerivation (finalAttrs: { libnotify libgnomekbd # for org.gnome.libgnomekbd.keyboard schema gnome-desktop - lcms2 libpulseaudio alsa-lib libcanberra-gtk3 upower colord libgweather - nss polkit geocode-glib_2 geoclue2 diff --git a/pkgs/by-name/mu/mutter43/package.nix b/pkgs/by-name/mu/mutter46/package.nix similarity index 67% rename from pkgs/by-name/mu/mutter43/package.nix rename to pkgs/by-name/mu/mutter46/package.nix index 81c526b956c0..8e2b1985bded 100644 --- a/pkgs/by-name/mu/mutter43/package.nix +++ b/pkgs/by-name/mu/mutter46/package.nix @@ -2,7 +2,6 @@ fetchurl, runCommand, lib, - fetchpatch, stdenv, pkg-config, gettext, @@ -11,26 +10,43 @@ colord, lcms2, pango, - json-glib, libstartup_notification, libcanberra, ninja, xvfb-run, - xkeyboard_config, libxcvt, - libxkbfile, + libICE, + libX11, + libXcomposite, + libXcursor, libXdamage, - libxkbcommon, + libXext, + libXfixes, + libXi, libXtst, + libxkbfile, + xkeyboard_config, + libxkbcommon, + libXrender, + libxcb, + libXrandr, + libXinerama, + libXau, libinput, libdrm, + libei, + libdisplay-info, gsettings-desktop-schemas, glib, - gtk3, + atk, + gtk4, + fribidi, + harfbuzz, gnome-desktop, pipewire, libgudev, libwacom, + libSM, xwayland, mesa, meson, @@ -38,12 +54,11 @@ xorgserver, python3, wayland-scanner, - wrapGAppsHook3, + wrapGAppsHook4, gi-docgen, sysprof, libsysprof-capture, desktop-file-utils, - libcap_ng, egl-wayland, graphene, wayland, @@ -52,7 +67,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "mutter"; - version = "43.8"; + version = "46.7"; outputs = [ "out" @@ -63,33 +78,13 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz"; - hash = "sha256-TjTh8XWTS9hJqEvZX6Nb8G6EEuAt8loDbC8RNdUz8oE="; + hash = "sha256-+7wVwLB2CS0WwB1cbwxvVNIR84Miy4wjseF9xW1MUl0="; }; - patches = [ - # Fix build with separate sysprof. - # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2572 - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/mutter/-/commit/285a5a4d54ca83b136b787ce5ebf1d774f9499d5.patch"; - hash = "sha256-/npUE3idMSTVlFptsDpZmGWjZ/d2gqruVlJKq4eF4xU="; - }) - - # Remove support for window shading. - # The corresponding key was removed in gsettings-desktop-schemas 45.alpha. - # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2884 - # - # Fetch the patch from magpie as they share same code base and this feature - # is never supported on wayland (note that magpie 0.9.x won't support wayland). - # https://github.com/BuddiesOfBudgie/magpie/issues/9 - (fetchpatch { - url = "https://github.com/BuddiesOfBudgie/magpie/commit/4177c466375462ca8ed8fdb60913df4422f19144.patch"; - hash = "sha256-NVx40WDnlUL050D529KVohvNBdVrheXxmJ73U3+KSeQ="; - }) - ]; - mesonFlags = [ "-Degl_device=true" "-Dinstalled_tests=false" # TODO: enable these + "-Dtests=false" "-Dwayland_eglstream=true" "-Dprofiler=true" "-Dxwayland_path=${lib.getExe xwayland}" @@ -100,10 +95,7 @@ stdenv.mkDerivation (finalAttrs: { ]; propagatedBuildInputs = [ - # required for pkg-config to detect mutter-clutter - json-glib - libXtst - libcap_ng + # required for pkg-config to detect mutter-mtk graphene mesa # actually uses eglmesaext ]; @@ -118,7 +110,7 @@ stdenv.mkDerivation (finalAttrs: { pkg-config python3 wayland-scanner - wrapGAppsHook3 + wrapGAppsHook4 gi-docgen xorgserver gobject-introspection @@ -131,34 +123,50 @@ stdenv.mkDerivation (finalAttrs: { gnome-desktop gnome-settings-daemon gsettings-desktop-schemas - gtk3 + atk + fribidi + harfbuzz libcanberra libdrm + libei + libdisplay-info libgudev libinput libstartup_notification libwacom - libxkbcommon - libxkbfile - libXdamage + libSM colord lcms2 pango pipewire sysprof # for D-Bus interfaces libsysprof-capture - xkeyboard_config xwayland wayland wayland-protocols + # X11 client + gtk4 + libICE + libX11 + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXtst + libxkbfile + xkeyboard_config + libxkbcommon + libXrender + libxcb + libXrandr + libXinerama + libXau ]; postPatch = '' patchShebangs src/backends/native/gen-default-modes.py - - # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3187 - substituteInPlace meson.build \ - --replace "dependency('sysprof-4')" "dependency('sysprof-6')" ''; postInstall = '' @@ -168,7 +176,7 @@ stdenv.mkDerivation (finalAttrs: { postFixup = '' # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. # TODO: Move this into a directory devhelp can find. - moveToOutput "share/mutter-11/doc" "$devdoc" + moveToOutput "share/mutter-14/doc" "$devdoc" ''; # Install udev files into our own tree. @@ -177,7 +185,7 @@ stdenv.mkDerivation (finalAttrs: { separateDebugInfo = true; passthru = { - libdir = "${finalAttrs.finalPackage}/lib/mutter-11"; + libdir = "${finalAttrs.finalPackage}/lib/mutter-14"; tests = { libdirExists = runCommand "mutter-libdir-exists" { } '' diff --git a/pkgs/by-name/mv/mvnd/package.nix b/pkgs/by-name/mv/mvnd/package.nix new file mode 100644 index 000000000000..7e347bafcab7 --- /dev/null +++ b/pkgs/by-name/mv/mvnd/package.nix @@ -0,0 +1,109 @@ +{ + darwin, + fetchFromGitHub, + graalvmPackages, + installShellFiles, + lib, + makeWrapper, + maven, + mvnd, + nix-update-script, + runCommand, + stdenv, + testers, +}: + +let + platformMap = { + aarch64-darwin = "darwin-aarch64"; + aarch64-linux = "linux-aarch64"; + x86_64-darwin = "darwin-amd64"; + x86_64-linux = "linux-amd64"; + }; +in + +maven.buildMavenPackage rec { + pname = "mvnd"; + version = "1.0.2"; + src = fetchFromGitHub { + owner = "apache"; + repo = "maven-mvnd"; + rev = version; + sha256 = "sha256-c1jD7m4cOdPWQEoaUMcNap2zvvX7H9VaWQv8JSgAnRU="; + }; + + # need graalvm at build-time for the `native-image` tool + mvnJdk = graalvmPackages.graalvm-ce; + mvnHash = "sha256-Bx0XSnpHNxNX07uVPc18py9qbnG5b3b7J4vs44ty034="; + + nativeBuildInputs = [ + graalvmPackages.graalvm-ce + installShellFiles + makeWrapper + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk_11_0.frameworks.Foundation ]; + + mvnDepsParameters = mvnParameters; + mvnParameters = lib.concatStringsSep " " [ + "-Dmaven.buildNumber.skip=true" # skip build number generation; requires a git repository + "-Drat.skip=true" # skip license checks; they require manaul approval and should have already been run upstream + "-Dspotless.skip=true" # skip formatting checks + + # skip tests that fail in the sandbox + "-pl" + "!integration-tests" + "-Dtest=!org.mvndaemon.mvnd.client.OsUtilsTest,!org.mvndaemon.mvnd.cache.impl.CacheFactoryTest" + "-Dsurefire.failIfNoSpecifiedTests=false" + + "-Pnative" + # propagate linker args required by the darwin build + # see `buildGraalvmNativeImage` + ''-Dgraalvm-native-static-opt="-H:-CheckToolchain $(export -p | sed -n 's/^declare -x \([^=]\+\)=.*$/ -E\1/p' | tr -d \\n)"'' + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + mkdir -p $out/mvnd-home + + cp -r dist/target/maven-mvnd-${version}-${platformMap.${stdenv.system}}/* $out/mvnd-home + makeWrapper $out/mvnd-home/bin/mvnd $out/bin/mvnd \ + --set-default MVND_HOME $out/mvnd-home + + installShellCompletion --cmd mvnd \ + --bash $out/mvnd-home/bin/mvnd-bash-completion.bash + + runHook postInstall + ''; + + passthru = + { + updateScript = nix-update-script { }; + } + // (lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) { + tests.version = testers.testVersion { + # `java` or `JAVA_HOME` is required to run mvnd + # presumably the user already has a JDK installed if they're using maven; don't pull in an unnecessary runtime dependency + package = + runCommand "mvnd" + { + inherit version; + nativeBuildInputs = [ makeWrapper ]; + } + '' + mkdir -p $out/bin + makeWrapper ${mvnd}/bin/mvnd $out/bin/mvnd \ + --suffix PATH : ${lib.makeBinPath [ mvnJdk ]} + ''; + }; + }); + + meta = { + description = "The Apache Maven Daemon"; + homepage = "https://maven.apache.org/"; + license = lib.licenses.asl20; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ nathanregner ]; + mainProgram = "mvnd"; + }; +} diff --git a/pkgs/by-name/ni/niri/package.nix b/pkgs/by-name/ni/niri/package.nix index 5fa4d336df29..50b239e857a4 100644 --- a/pkgs/by-name/ni/niri/package.nix +++ b/pkgs/by-name/ni/niri/package.nix @@ -104,6 +104,8 @@ rustPlatform.buildRustPackage rec { preCheck = '' export XDG_RUNTIME_DIR=$(mktemp -d) + # See https://github.com/YaLTeR/niri/issues/953 + export RAYON_NUM_THREADS=1 ''; passthru = { diff --git a/pkgs/by-name/ni/nixos-enter/nixos-enter.sh b/pkgs/by-name/ni/nixos-enter/nixos-enter.sh index 34bf9650aaf8..c57a7858110a 100755 --- a/pkgs/by-name/ni/nixos-enter/nixos-enter.sh +++ b/pkgs/by-name/ni/nixos-enter/nixos-enter.sh @@ -58,10 +58,11 @@ if [[ ! -e $mountPoint/etc/NIXOS ]]; then exit 126 fi -mkdir -p "$mountPoint/dev" "$mountPoint/sys" -chmod 0755 "$mountPoint/dev" "$mountPoint/sys" +mkdir -p "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/proc" +chmod 0755 "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/proc" mount --rbind /dev "$mountPoint/dev" mount --rbind /sys "$mountPoint/sys" +mount --rbind /proc "$mountPoint/proc" # modified from https://github.com/archlinux/arch-install-scripts/blob/bb04ab435a5a89cd5e5ee821783477bc80db797f/arch-chroot.in#L26-L52 chroot_add_resolv_conf() { diff --git a/pkgs/by-name/rs/rss-bridge/package.nix b/pkgs/by-name/rs/rss-bridge/package.nix index 0db4808b502e..8593786f8bee 100644 --- a/pkgs/by-name/rs/rss-bridge/package.nix +++ b/pkgs/by-name/rs/rss-bridge/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "rss-bridge"; - version = "2024-02-02"; + version = "2025-01-02"; src = fetchFromGitHub { owner = "RSS-Bridge"; repo = "rss-bridge"; rev = version; - sha256 = "sha256-VycEgu7uHYwDnNE1eoVxgaWZAnC6mZLBxT8Le3PI4Rs="; + sha256 = "sha256-6Ise+qptY2wLkNveT/mzL0nWrX6OhxAlOJkF2+BmSTE="; }; installPhase = '' diff --git a/pkgs/by-name/sy/symcc/package.nix b/pkgs/by-name/sy/symcc/package.nix index fca634adcad8..a6e97cdd8f0b 100644 --- a/pkgs/by-name/sy/symcc/package.nix +++ b/pkgs/by-name/sy/symcc/package.nix @@ -4,8 +4,8 @@ fetchFromGitHub, cmake, ninja, - llvm_17, - clang_17, + llvm, + clang, z3, makeWrapper, }: @@ -48,13 +48,13 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake ninja - llvm_17 - clang_17 + llvm + clang makeWrapper ]; buildInputs = [ - llvm_17 + llvm z3 ]; diff --git a/pkgs/by-name/ty/typos-lsp/package.nix b/pkgs/by-name/ty/typos-lsp/package.nix index db9eb9b42e0f..b020629712c9 100644 --- a/pkgs/by-name/ty/typos-lsp/package.nix +++ b/pkgs/by-name/ty/typos-lsp/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage rec { pname = "typos-lsp"; # Please update the corresponding VSCode extension too. # See pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix - version = "0.1.32"; + version = "0.1.33"; src = fetchFromGitHub { owner = "tekumara"; repo = "typos-lsp"; tag = "v${version}"; - hash = "sha256-ezRyitmdcOki/thQGJ11+UYMIG2fYJ9HMcvD++s/ewM="; + hash = "sha256-FunbE4HxDmugLmR2XwFFAjvNBTVbLAhiHtacxuPXMVE="; }; - cargoHash = "sha256-J1XbhCP2EMFIHs2U9kTtNNdGF4UnZWNgIO7L3YlYkqo="; + cargoHash = "sha256-hmKm8mPIZlEDcAPuvyUUQZUpIy51mSksahcRknMnMW0="; # fix for compilation on aarch64 # see https://github.com/NixOS/nixpkgs/issues/145726 diff --git a/pkgs/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix index 489b9f98f39d..43c83c2076c7 100644 --- a/pkgs/desktops/gnome/default.nix +++ b/pkgs/desktops/gnome/default.nix @@ -91,7 +91,7 @@ in gnome-session = throw "The ‘gnome.gnome-session’ was moved to top-level. Please use ‘pkgs.gnome-session’ directly."; # Added on 2024-08-28. gnome-session-ctl = throw "The ‘gnome.gnome-session-ctl’ was moved to top-level. Please use ‘pkgs.gnome-session-ctl’ directly."; # Added on 2024-08-28. gnome-settings-daemon = throw "The ‘gnome.gnome-settings-daemon’ was moved to top-level. Please use ‘pkgs.gnome-settings-daemon’ directly."; # Added on 2024-08-28. - gnome-settings-daemon43 = throw "The ‘gnome.gnome-settings-daemon43’ was moved to top-level. Please use ‘pkgs.gnome-settings-daemon43’ directly."; # Added on 2024-08-28. + gnome-settings-daemon43 = throw "The ‘gnome.gnome-settings-daemon43’ was removed since it is no longer used by Pantheon."; # Added on 2024-08-28. gnome-shell = throw "The ‘gnome.gnome-shell’ was moved to top-level. Please use ‘pkgs.gnome-shell’ directly."; # Added on 2024-08-28. gnome-shell-extensions = throw "The ‘gnome.gnome-shell-extensions’ was moved to top-level. Please use ‘pkgs.gnome-shell-extensions’ directly."; # Added on 2024-08-11. gnome-software = throw "The ‘gnome.gnome-software’ was moved to top-level. Please use ‘pkgs.gnome-software’ directly."; # Added on 2024-08-11. @@ -113,7 +113,7 @@ in lightsoff = throw "The ‘gnome.lightsoff’ was moved to top-level. Please use ‘pkgs.lightsoff’ directly."; # Added on 2024-08-11. metacity = throw "The ‘gnome.metacity’ was moved to top-level. Please use ‘pkgs.metacity’ directly."; # Added on 2024-08-11. mutter = throw "The ‘gnome.mutter’ was moved to top-level. Please use ‘pkgs.mutter’ directly."; # Added on 2024-08-28. - mutter43 = throw "The ‘gnome.mutter43’ was moved to top-level. Please use ‘pkgs.mutter43’ directly."; # Added on 2024-08-28. + mutter43 = throw "The ‘gnome.mutter43’ was removed since it is no longer used by Pantheon."; # Added on 2024-08-28. nautilus = throw "The ‘gnome.nautilus’ was moved to top-level. Please use ‘pkgs.nautilus’ directly."; # Added on 2024-06-13. networkmanager-openvpn = throw "The ‘gnome.networkmanager-openvpn’ was moved to top-level. Please use ‘pkgs.networkmanager-openvpn’ directly."; # Added on 2024-08-31. networkmanager-vpnc = throw "The ‘gnome.networkmanager-vpnc’ was moved to top-level. Please use ‘pkgs.networkmanager-vpnc’ directly."; # Added on 2024-08-31. diff --git a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix index 17c0e12969eb..ce5a4c1fffda 100644 --- a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix @@ -1,85 +1,61 @@ -{ lib -, stdenv -, fetchFromGitHub -, vala -, atk -, cairo -, dconf -, glib -, gtk3 -, libwnck -, libX11 -, libXfixes -, libXi -, pango -, pkg-config -, libxml2 -, bamf -, gdk-pixbuf -, libdbusmenu-gtk3 -, gnome-menus -, libgee -, wrapGAppsHook3 -, meson -, ninja -, granite +{ + stdenv, + lib, + fetchFromGitHub, + meson, + ninja, + pkg-config, + vala, + wayland-scanner, + wrapGAppsHook4, + glib, + granite7, + gtk4, + libadwaita, + wayland, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "elementary-dock"; - version = "unstable-2021-05-07"; + version = "8.0.1"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; src = fetchFromGitHub { owner = "elementary"; repo = "dock"; - rev = "113c3b0bc7744501d2101dd7afc1ef21ba66b326"; - sha256 = "sha256-YlvdB02/hUGaDyHIHy21bgloHyVy3vHcanyNKnp3YbM="; + rev = finalAttrs.version; + hash = "sha256-Q4Y9FVqzPXoz2Nti1qB5SOJQ0tETPcv2fZPOMkJaND8="; }; + depsBuildBuild = [ pkg-config ]; + nativeBuildInputs = [ meson ninja - libxml2 # xmllint pkg-config vala - wrapGAppsHook3 + wayland-scanner + wrapGAppsHook4 ]; buildInputs = [ - atk - bamf - cairo - gdk-pixbuf glib - gnome-menus - dconf - granite - gtk3 - libX11 - libXfixes - libXi - libdbusmenu-gtk3 - libgee - libwnck - pango + granite7 + gtk4 + libadwaita + wayland ]; - postInstall = '' - # elementary/dock/master is missing a Meson post - # install script that does this. This has been - # resolved after the dock rewrite (the `main` branch). - # https://github.com/elementary/default-settings/issues/267 - glib-compile-schemas $out/share/glib-2.0/schemas - ''; - - meta = with lib; { + meta = { description = "Elegant, simple, clean dock"; homepage = "https://github.com/elementary/dock"; - license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ davidak ] ++ teams.pantheon.members; - mainProgram = "plank"; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.linux; + maintainers = lib.teams.pantheon.members; + mainProgram = "io.elementary.dock"; }; -} +}) diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix index fec9fba9bebd..6783c8cc4f4b 100644 --- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix @@ -15,7 +15,6 @@ , libportal-gtk3 , granite , pango -, bamf , sqlite , zeitgeist , libcloudproviders @@ -47,7 +46,6 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - bamf glib granite gtk3 diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix index e30a7faf726c..0e0860e34a09 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix @@ -23,13 +23,13 @@ stdenv.mkDerivation rec { pname = "switchboard-plug-keyboard"; - version = "8.0.0"; + version = "8.0.1"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "sha256-jOUrotgtSRmSVsxOXEbQfIi92BlpIPye7maCsa+ssT8="; + sha256 = "sha256-/jfUftlNL+B4570ajropS7/2fqro380kZzpPwm+A9fA="; }; patches = [ diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix index b777bb47d9cf..70e2e3ae4ed5 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix @@ -1,7 +1,6 @@ { lib , stdenv , fetchFromGitHub -, fetchpatch , nix-update-script , meson , ninja @@ -25,24 +24,15 @@ stdenv.mkDerivation rec { pname = "switchboard-plug-pantheon-shell"; - version = "8.0.0"; + version = "8.1.0"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "sha256-Cv1Ldvk0+VzNsKnDFwDtLZ5ixUOGV+PWYAqN9KV9g/s="; + sha256 = "sha256-S6EJGF9jRiCzH0f7WNrbLtAX23fjD/Hzd8YLEzkXesw="; }; - patches = [ - # Set preferred color theme for mutter - # https://github.com/elementary/switchboard-plug-pantheon-shell/pull/413 - (fetchpatch { - url = "https://github.com/elementary/switchboard-plug-pantheon-shell/commit/bdc8c167fabe5a4642efd37b0289e235e5d0a504.patch"; - hash = "sha256-ueTAwURd8GM0U/qfPmoVLO7OVI/ppazq+ljnVzk0Npk="; - }) - ]; - nativeBuildInputs = [ gettext meson @@ -67,13 +57,6 @@ stdenv.mkDerivation rec { wingpanel-quick-settings # gsettings schemas ]; - postPatch = '' - # Hide these before we land the new dock - substituteInPlace src/Views/Dock.vala \ - --replace-fail "box.append (icon_box);" "" \ - --replace-fail "box.append (hide_box);" "" - ''; - passthru = { updateScript = nix-update-script { }; }; diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix index f22a11cd7d7b..86ae59b2fb80 100644 --- a/pkgs/desktops/pantheon/default.nix +++ b/pkgs/desktops/pantheon/default.nix @@ -38,10 +38,10 @@ lib.makeScope pkgs.newScope (self: with self; { maintainers = lib.teams.pantheon.members; - mutter = pkgs.mutter43; + mutter = pkgs.mutter46; # Using 43 to match Mutter used in Pantheon - gnome-settings-daemon = pkgs.gnome-settings-daemon43; + gnome-settings-daemon = pkgs.gnome-settings-daemon46; elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { }; diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix index 5eb7f8259a67..28187a7fdfa9 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix @@ -1,7 +1,6 @@ { lib , stdenv , fetchFromGitHub -, fetchpatch , nix-update-script , meson , ninja @@ -15,24 +14,15 @@ stdenv.mkDerivation rec { pname = "elementary-default-settings"; - version = "7.1.0"; + version = "8.0.2"; src = fetchFromGitHub { owner = "elementary"; repo = "default-settings"; rev = version; - sha256 = "sha256-j4K8qYwfu6/s4qnTSzwv6KRsk9f+Qr/l1bhLywKMHMU="; + sha256 = "sha256-vytjRlSXnC+cSIAn6v6wpoig4zjJZObGZ6MCLfsIwIA="; }; - patches = [ - # Add pantheon-portals.conf - # https://github.com/elementary/default-settings/pull/293 - (fetchpatch { - url = "https://github.com/elementary/default-settings/commit/8201eeb6a356e6059b505756ef7a556a6848ad3b.patch"; - sha256 = "sha256-qhGj7WQTAWJTC1kouUZhBWKqyO4hQWJghEhLVl8QVUM="; - }) - ]; - nativeBuildInputs = [ glib # glib-compile-schemas meson @@ -49,19 +39,8 @@ stdenv.mkDerivation rec { mesonFlags = [ "--sysconfdir=${placeholder "out"}/etc" "-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}" - "-Dplank-dockitems=false" ]; - preInstall = '' - # Install our override for plank dockitems as the desktop file path is different. - schema_dir=$out/share/glib-2.0/schemas - install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override - - # Our launchers that use paths at /run/current-system/sw/bin - mkdir -p $out/etc/skel/.config/plank/dock1 - cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers - ''; - postFixup = '' # https://github.com/elementary/default-settings/issues/55 rm -r $out/share/cups diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/gala-multitaskingview.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/gala-multitaskingview.dockitem deleted file mode 100644 index b25bb8c85904..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/gala-multitaskingview.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/gala-multitaskingview.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.appcenter.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.appcenter.dockitem deleted file mode 100644 index 586a74df2447..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.appcenter.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.appcenter.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.calendar.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.calendar.dockitem deleted file mode 100644 index 3bd7d531840d..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.calendar.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.calendar.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.files.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.files.dockitem deleted file mode 100644 index fb7d7197a370..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.files.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.files.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.mail.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.mail.dockitem deleted file mode 100644 index e07328c59473..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.mail.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.mail.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.music.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.music.dockitem deleted file mode 100644 index 494edde183ca..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.music.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.music.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.photos.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.photos.dockitem deleted file mode 100644 index 89536754964d..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.photos.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.photos.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.settings.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.settings.dockitem deleted file mode 100644 index 470360a9f0ba..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.settings.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.settings.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.tasks.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.tasks.dockitem deleted file mode 100644 index a98825afcb28..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.tasks.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.tasks.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.videos.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.videos.dockitem deleted file mode 100644 index 3b0f721a5644..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.videos.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.videos.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Epiphany.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Epiphany.dockitem deleted file mode 100644 index b0218bac52d7..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Epiphany.dockitem +++ /dev/null @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/org.gnome.Epiphany.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override deleted file mode 100644 index cc3e5c66958b..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override +++ /dev/null @@ -1,2 +0,0 @@ -[net.launchpad.plank.dock.settings] -dock-items=['gala-multitaskingview.dockitem','io.elementary.files.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.tasks.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.settings.dockitem','io.elementary.appcenter.dockitem'] diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix index 1dc0bac2b3dd..115eb32558df 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix @@ -14,6 +14,7 @@ , granite , libgee , libhandy +, gnome-desktop , gnome-settings-daemon , mutter , elementary-icon-theme @@ -24,18 +25,19 @@ , gdk-pixbuf , dbus , accountsservice +, wayland-scanner , wrapGAppsHook3 }: stdenv.mkDerivation rec { pname = "elementary-greeter"; - version = "7.0.0"; + version = "8.0.0"; src = fetchFromGitHub { owner = "elementary"; repo = "greeter"; rev = version; - sha256 = "sha256-m/xuaMCAPoqhl/M547mdafBPBu3UhHmVmBIUKQoS5L8="; + sha256 = "sha256-fx3KHMF6UhIFXyJHQ4dKJnVidsNMBk7AvHzaF3ELH1k="; }; patches = [ @@ -47,18 +49,22 @@ stdenv.mkDerivation rec { }) ]; + depsBuildBuild = [ pkg-config ]; + nativeBuildInputs = [ desktop-file-utils meson ninja pkg-config vala + wayland-scanner wrapGAppsHook3 ]; buildInputs = [ accountsservice elementary-icon-theme + gnome-desktop gnome-settings-daemon gdk-pixbuf granite diff --git a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix index 41c4c099cf2d..517d3383cdfd 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix @@ -4,7 +4,6 @@ , elementary-default-settings , glib , gala -, epiphany , gnome-settings-daemon , gtk3 , elementary-dock @@ -20,7 +19,6 @@ let gsettingsOverridePackages = [ elementary-dock gnome-settings-daemon - epiphany gala gsettings-desktop-schemas gtk3 diff --git a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix index cac0298c6048..d2749bfa5471 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix @@ -16,17 +16,18 @@ gtk4, libadwaita, libgee, + pantheon-wayland, }: stdenv.mkDerivation rec { pname = "elementary-onboarding"; - version = "8.0.2"; + version = "8.0.3"; src = fetchFromGitHub { owner = "elementary"; repo = "onboarding"; rev = version; - sha256 = "sha256-tLqLGkcryXGe1wsupgwtnNtFj5aXXUPrwkpxUQmyJFM="; + sha256 = "sha256-e8eYBGQ+qTXsp+E3l0g5UI1nYD75z0ibTtzm0WbqlU4="; }; nativeBuildInputs = [ @@ -46,6 +47,7 @@ stdenv.mkDerivation rec { gtk4 libadwaita libgee + pantheon-wayland ]; passthru = { diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix index 8790cc68c41b..166e47207030 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix @@ -5,7 +5,6 @@ , desktop-file-utils , gettext , pkg-config -, writeScript , gnome-keyring , gnome-session , wingpanel @@ -20,76 +19,6 @@ , ninja }: -let - - # - # ─── ENSURES PLANK GETS ELEMENTARY'S DEFAULT DOCKITEMS ──────────────────────────── - # - - # - # Upstream relies on /etc/skel to initiate a new users home directory with plank's dockitems. - # - # That is not possible within nixos, but we can achieve this easily with a simple script that copies - # them. We then use a xdg autostart and initialize it during the "EarlyInitialization" phase of a gnome session - # which is most appropriate for installing files into $HOME. - # - - dockitems-script = writeScript "dockitems-script" '' - #!${runtimeShell} - - elementary_default_settings="${elementary-default-settings}" - dock_items="$elementary_default_settings/etc/skel/.config/plank/dock1/launchers"/* - - if [ ! -d "$HOME/.config/plank/dock1" ]; then - echo "Instantiating default Plank Dockitems..." - - mkdir -p "$HOME/.config/plank/dock1/launchers" - cp -r --no-preserve=mode,ownership $dock_items "$HOME/.config/plank/dock1/launchers/" - else - echo "Plank Dockitems already instantiated" - fi - ''; - - dockitemAutostart = writeText "default-elementary-dockitems.desktop" '' - [Desktop Entry] - Type=Application - Name=Instantiate Default elementary dockitems - Exec=${dockitems-script} - StartupNotify=false - NoDisplay=true - OnlyShowIn=Pantheon; - X-GNOME-Autostart-Phase=EarlyInitialization - ''; - - executable = writeScript "pantheon" '' - # gnome-session can find RequiredComponents for `pantheon` session (notably pantheon's patched g-s-d autostarts) - export XDG_CONFIG_DIRS=@out@/etc/xdg:$XDG_CONFIG_DIRS - - # Make sure we use our gtk-3.0/settings.ini - export XDG_CONFIG_DIRS=${elementary-default-settings}/etc:$XDG_CONFIG_DIRS - - # * gnome-session can find the `pantheon' session - # * use pantheon-mimeapps.list - export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS - - # Start pantheon session. Keep in sync with upstream - exec ${gnome-session}/bin/gnome-session --session=pantheon "$@" - ''; - - # Absolute path patched version of the upstream xsession - xsession = writeText "pantheon.desktop" '' - [Desktop Entry] - Name=Pantheon - Comment=This session provides elementary experience - Exec=@out@/libexec/pantheon - TryExec=${wingpanel}/bin/io.elementary.wingpanel - Icon= - DesktopNames=Pantheon - Type=Application - ''; - -in - stdenv.mkDerivation rec { pname = "elementary-session-settings"; version = "8.0.1"; @@ -122,6 +51,7 @@ stdenv.mkDerivation rec { "-Dfallback-session=GNOME" "-Ddetect-program-prefixes=true" "--sysconfdir=${placeholder "out"}/etc" + "-Dwayland=true" ]; postInstall = '' @@ -130,16 +60,10 @@ stdenv.mkDerivation rec { mkdir -p $out/share/applications cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list - # instantiates pantheon's dockitems - cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop - - # script `Exec` to start pantheon - mkdir -p $out/libexec - substitute ${executable} $out/libexec/pantheon --subst-var out - chmod +x $out/libexec/pantheon - - # absolute path patched xsession - substitute ${xsession} $out/share/xsessions/pantheon.desktop --subst-var out + # absolute path patched sessions + substituteInPlace $out/share/{xsessions/pantheon.desktop,wayland-sessions/pantheon-wayland.desktop} \ + --replace-fail "Exec=gnome-session" "Exec=${gnome-session}/bin/gnome-session" \ + --replace-fail "TryExec=io.elementary.wingpanel" "TryExec=${wingpanel}/bin/io.elementary.wingpanel" ''; passthru = { @@ -147,6 +71,7 @@ stdenv.mkDerivation rec { providedSessions = [ "pantheon" + "pantheon-wayland" ]; }; diff --git a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix index 5d6e43bf12fb..e453085d3cc1 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix @@ -20,13 +20,13 @@ stdenv.mkDerivation rec { pname = "elementary-shortcut-overlay"; - version = "8.0.0"; + version = "8.0.1"; src = fetchFromGitHub { owner = "elementary"; repo = "shortcut-overlay"; rev = version; - sha256 = "sha256-HqF2eSNwAzgzwyfNQIeumaGkPYiSc+2OfaD3JRQp4/4="; + sha256 = "sha256-RWFzs4rw/KC0MXkNfA178FejMbuIBh5FVox1RxmxCJA="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix index 6233e3f16790..12b8ca683b28 100644 --- a/pkgs/desktops/pantheon/desktop/gala/default.nix +++ b/pkgs/desktops/pantheon/desktop/gala/default.nix @@ -1,60 +1,51 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, nix-update-script -, pkg-config -, meson -, python3 -, ninja -, vala -, desktop-file-utils -, gettext -, libxml2 -, gtk3 -, granite -, libgee -, bamf -, libcanberra-gtk3 -, gnome-desktop -, mutter -, gnome-settings-daemon -, wrapGAppsHook3 -, gexiv2 -, systemd +{ + stdenv, + lib, + fetchFromGitHub, + desktop-file-utils, + gettext, + libxml2, + meson, + ninja, + pkg-config, + vala, + wayland-scanner, + wrapGAppsHook3, + at-spi2-core, + gnome-settings-daemon, + gnome-desktop, + granite, + granite7, + gtk3, + gtk4, + libcanberra, + libgee, + libhandy, + mutter, + sqlite, + systemd, + nix-update-script, }: stdenv.mkDerivation rec { pname = "gala"; - version = "7.1.3"; + version = "8.1.0"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "sha256-0fDbR28gh7F8Bcnofn48BBP1CTsYnfmY5kG72ookOXw="; + hash = "sha256-C0Vct2xuGHd/G5x0Faif0DfpyNyCLJDxki+O9697c2s="; }; patches = [ # We look for plugins in `/run/current-system/sw/lib/` because # there are multiple plugin providers (e.g. gala and wingpanel). ./plugins-dir.patch - - # Start gala-daemon internally (needed for systemd managed gnome-session) - # https://github.com/elementary/gala/pull/1844 - (fetchpatch { - url = "https://github.com/elementary/gala/commit/351722c5a4fded46992b725e03dc94971c5bd31f.patch"; - hash = "sha256-RvdVHQjCUNmLrROBZTF+m1vE2XudtQZjk/YW28P/vKc="; - }) - - # InternalUtils: Fix window placement - # https://github.com/elementary/gala/pull/1913 - (fetchpatch { - url = "https://github.com/elementary/gala/commit/2d30bee678788c5a853721d16b5b39c997b23c02.patch"; - hash = "sha256-vhGFaLpJZFx1VTfjY1BahQiOUvBPi0dBSXLGhYc7r8A="; - }) ]; + depsBuildBuild = [ pkg-config ]; + nativeBuildInputs = [ desktop-file-utils gettext @@ -62,29 +53,27 @@ stdenv.mkDerivation rec { meson ninja pkg-config - python3 vala + wayland-scanner wrapGAppsHook3 ]; buildInputs = [ - bamf + at-spi2-core gnome-settings-daemon - gexiv2 gnome-desktop granite + granite7 gtk3 - libcanberra-gtk3 + gtk4 # gala-daemon + libcanberra libgee + libhandy mutter + sqlite systemd ]; - postPatch = '' - chmod +x build-aux/meson/post_install.py - patchShebangs build-aux/meson/post_install.py - ''; - passthru = { updateScript = nix-update-script { }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix index c2b6f314f838..7b3b95b2c834 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix @@ -1,12 +1,10 @@ { lib , stdenv , fetchFromGitHub -, fetchpatch , nix-update-script , substituteAll , meson , ninja -, python3 , pkg-config , vala , granite @@ -14,8 +12,6 @@ , gettext , gtk3 , json-glib -, elementary-dock -, bamf , switchboard-with-plugs , libsoup_2_4 , wingpanel @@ -26,13 +22,13 @@ stdenv.mkDerivation rec { pname = "wingpanel-applications-menu"; - version = "2.11.1"; + version = "8.0.0"; src = fetchFromGitHub { owner = "elementary"; repo = "applications-menu"; rev = version; - sha256 = "sha256-WlRrEkX0DGIHYWvUc9G4BbvofzWJwqkiJaJFwQ43GPE="; + sha256 = "sha256-HA82CcVC2+hJFksOuZ8pFmw7phpkCEjPCgE/5naaPcg="; }; patches = [ @@ -40,14 +36,6 @@ stdenv.mkDerivation rec { src = ./fix-paths.patch; bc = "${bc}/bin/bc"; }) - - # Build against switchboard-3 - # https://github.com/elementary/applications-menu/pull/580 - (fetchpatch { - url = "https://github.com/elementary/applications-menu/commit/9191ee5a2ee33477515d331b96945d51a13074a9.patch"; - excludes = [ ".github/workflows/githubci.yml" ]; - hash = "sha256-/LOIEOg9fVfKv/BWFsP1VyuUOIFYem9Gk+3e49M2b9E="; - }) ]; nativeBuildInputs = [ @@ -55,13 +43,10 @@ stdenv.mkDerivation rec { meson ninja pkg-config - python3 vala ]; buildInputs = [ - bamf - elementary-dock granite gtk3 json-glib @@ -83,11 +68,6 @@ stdenv.mkDerivation rec { "--sysconfdir=${placeholder "out"}/etc" ]; - postPatch = '' - chmod +x meson/post_install.py - patchShebangs meson/post_install.py - ''; - doCheck = true; passthru = { diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch index 29b26c4bdd23..a91e9331585f 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch @@ -1,42 +1,40 @@ diff --git a/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala b/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala -index 542e7aa..228c6d7 100644 +index 84454146..fb082fe4 100644 --- a/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala +++ b/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala -@@ -83,7 +83,7 @@ namespace Synapse { - Pid pid; - int read_fd, write_fd; - /* Must include math library to get non-integer results and to access standard math functions */ -- string[] argv = {"bc", "-l"}; -+ string[] argv = {"@bc@", "-l"}; +@@ -73,7 +73,7 @@ namespace Synapse { + Pid pid; + int read_fd, write_fd; + /* Must include math library to get non-integer results and to access standard math functions */ +- string[] argv = {"bc", "-l"}; ++ string[] argv = {"@bc@", "-l"}; - Process.spawn_async_with_pipes ( - null, argv, null, + Process.spawn_async_with_pipes ( + null, argv, null, diff --git a/src/synapse-plugins/calculator-plugin/calculator-plugin.vala b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala -index d14f1de..35c8621 100644 +index 089b8278..0e532bfc 100644 --- a/src/synapse-plugins/calculator-plugin/calculator-plugin.vala +++ b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala -@@ -49,9 +49,7 @@ namespace Synapse { - _("Calculator"), - _("Calculate basic expressions."), +@@ -47,8 +47,7 @@ namespace Synapse { + DataSink.PluginRegistry.get_default ().register_plugin ( + typeof (CalculatorPlugin), "accessories-calculator", - register_plugin, -- Environment.find_program_in_path ("bc") != null, -- _("bc is not installed") +- Environment.find_program_in_path ("bc") != null + register_plugin ); } diff --git a/src/synapse-plugins/converter-plugin/converter-plugin.vala b/src/synapse-plugins/converter-plugin/converter-plugin.vala -index 8d230cc..ed31927 100644 +index 34391e6a..a5bfc71e 100644 --- a/src/synapse-plugins/converter-plugin/converter-plugin.vala +++ b/src/synapse-plugins/converter-plugin/converter-plugin.vala -@@ -46,9 +46,7 @@ namespace Synapse { - _("Converter"), - _("Convert between units."), +@@ -44,8 +44,7 @@ namespace Synapse { + DataSink.PluginRegistry.get_default ().register_plugin ( + typeof (ConverterPlugin), "accessories-converter", - register_plugin, -- Environment.find_program_in_path ("bc") != null, -- _("bc is not installed") +- Environment.find_program_in_path ("bc") != null + register_plugin ); } diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix index 27e4667c2b2f..392611e6dd45 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix @@ -1,8 +1,8 @@ { lib , stdenv , fetchFromGitHub -, fetchpatch , nix-update-script +, wayland-scanner , wrapGAppsHook3 , pkg-config , meson @@ -14,6 +14,7 @@ , granite , gettext , mutter +, wayland , json-glib , elementary-gtk-theme , elementary-icon-theme @@ -21,24 +22,21 @@ stdenv.mkDerivation rec { pname = "wingpanel"; - version = "3.0.5"; + version = "8.0.1"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "sha256-xowGdaH0e6y0Q2xSl0kUa01rxxoEQ0qXB3sUol0YDBA="; + sha256 = "sha256-c77ebUTs4D5M3//AfvtWI643n1a1sPb5Z70P+4tX3y8="; }; patches = [ ./indicators.patch + ]; - # Add sorting for QuickSettings - # https://github.com/elementary/wingpanel/pull/516 - (fetchpatch { - url = "https://github.com/elementary/wingpanel/commit/cae197c953f4332e67cf0a5457b4e54f8adc3424.patch"; - hash = "sha256-P7Cl6M3qvh9pa1qIwWQV4XG5NoCQId+buzEChcUOapk="; - }) + depsBuildBuild = [ + pkg-config ]; nativeBuildInputs = [ @@ -47,6 +45,7 @@ stdenv.mkDerivation rec { ninja pkg-config vala + wayland-scanner wrapGAppsHook3 ]; @@ -58,6 +57,7 @@ stdenv.mkDerivation rec { json-glib libgee mutter + wayland ]; preFixup = '' diff --git a/pkgs/desktops/pantheon/services/elementary-notifications/default.nix b/pkgs/desktops/pantheon/services/elementary-notifications/default.nix index f21115fd0dab..1de3853020f6 100644 --- a/pkgs/desktops/pantheon/services/elementary-notifications/default.nix +++ b/pkgs/desktops/pantheon/services/elementary-notifications/default.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "elementary-notifications"; - version = "7.0.1"; + version = "8.0.0"; src = fetchFromGitHub { owner = "elementary"; repo = "notifications"; rev = version; - sha256 = "sha256-of7Tw38yJAhHKICU3XxGwIOwqfUhrL7SGKqFd9Dps/I="; + sha256 = "sha256-40STrDpMx1WFaTriJNrvkkbzAM0DeBaPdc8o8URItQI="; }; nativeBuildInputs = [ @@ -44,12 +44,6 @@ stdenv.mkDerivation rec { libhandy ]; - postPatch = '' - # https://github.com/elementary/notifications/issues/222 - substituteInPlace src/FdoActionGroup.vala \ - --replace-fail "out VariantType" "out unowned VariantType" - ''; - passthru = { updateScript = nix-update-script { }; }; diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix index e427bfc2fea5..a709b79846f1 100644 --- a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix +++ b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix @@ -10,19 +10,20 @@ , libadwaita , libgee , granite7 +, pantheon-wayland , polkit , wrapGAppsHook4 }: stdenv.mkDerivation rec { pname = "pantheon-agent-polkit"; - version = "8.0.0"; + version = "8.0.1"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - hash = "sha256-Hm4vEubj2VjObD2t7wBHGrjnp6Nza6Ze7AOcJ0n5Dmc="; + hash = "sha256-qqeB8SLuES/KoK7ycQ2J1YBA07HITovdnO8kSsrVcfs="; }; nativeBuildInputs = [ @@ -38,6 +39,7 @@ stdenv.mkDerivation rec { gtk4 libadwaita libgee + pantheon-wayland polkit ]; diff --git a/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix b/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix index f863d509204d..ce9f84cd88ff 100644 --- a/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix +++ b/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix @@ -11,19 +11,20 @@ , granite7 , gsettings-desktop-schemas , gtk4 +, pantheon-wayland , systemd , xorg }: stdenv.mkDerivation rec { pname = "xdg-desktop-portal-pantheon"; - version = "7.2.0"; + version = "8.0.0"; src = fetchFromGitHub { owner = "elementary"; repo = "portals"; rev = version; - sha256 = "sha256-0pXb4GPUThHfe0mCqoYuQzMgRCeejsEI3fK7PxjrtJM="; + sha256 = "sha256-pf7xQwsBRjjyOMUPe7fJp1vOhhBmuXJ6Uf4YosxbHtw="; }; nativeBuildInputs = [ @@ -39,6 +40,7 @@ stdenv.mkDerivation rec { granite7 gsettings-desktop-schemas gtk4 + pantheon-wayland systemd xorg.libX11 ]; diff --git a/pkgs/development/libraries/onnxruntime/default.nix b/pkgs/development/libraries/onnxruntime/default.nix index ced9ce9945fd..93a8e7c65a1c 100644 --- a/pkgs/development/libraries/onnxruntime/default.nix +++ b/pkgs/development/libraries/onnxruntime/default.nix @@ -218,11 +218,7 @@ effectiveStdenv.mkDerivation rec { ]; env = lib.optionalAttrs effectiveStdenv.cc.isClang { - NIX_CFLAGS_COMPILE = toString [ - "-Wno-error=deprecated-declarations" - "-Wno-error=deprecated-pragma" - "-Wno-error=unused-but-set-variable" - ]; + NIX_CFLAGS_COMPILE = "-Wno-error"; }; # aarch64-linux fails cpuinfo test, because /sys/devices/system/cpu/ does not exist in the sandbox @@ -275,9 +271,5 @@ effectiveStdenv.mkDerivation rec { platforms = platforms.unix; license = licenses.mit; maintainers = with maintainers; [ puffnfresh ck3d cbourjau ]; - badPlatforms = [ - # error: implicit capture of 'this' with a capture default of '=' is deprecated [-Werror,-Wdeprecated-this-capture] - lib.systems.inspect.patterns.isDarwin - ]; }; } diff --git a/pkgs/development/misc/newlib/default.nix b/pkgs/development/misc/newlib/default.nix index e891cf39dc3a..3794b631f8ce 100644 --- a/pkgs/development/misc/newlib/default.nix +++ b/pkgs/development/misc/newlib/default.nix @@ -13,11 +13,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "newlib"; - version = "4.4.0.20231231"; + version = "4.5.0.20241231"; src = fetchurl { url = "ftp://sourceware.org/pub/newlib/newlib-${finalAttrs.version}.tar.gz"; - sha256 = "sha256-DBZqOeG/CVHfr81olJ/g5LbTZYCB1igvOa7vxjEPLxM="; + sha256 = "sha256-M/EmBeAFSWWZbCXBOCs+RjsK+ReZAB9buMBjDy7IyFI="; }; patches = lib.optionals nanoizeNewlib [ diff --git a/pkgs/development/python-modules/bayesian-optimization/default.nix b/pkgs/development/python-modules/bayesian-optimization/default.nix index 915406e72805..e23935d21b87 100644 --- a/pkgs/development/python-modules/bayesian-optimization/default.nix +++ b/pkgs/development/python-modules/bayesian-optimization/default.nix @@ -23,14 +23,14 @@ buildPythonPackage rec { pname = "bayesian-optimization"; - version = "2.0.1"; + version = "2.0.3"; pyproject = true; src = fetchFromGitHub { owner = "bayesian-optimization"; repo = "BayesianOptimization"; tag = "v${version}"; - hash = "sha256-7XjbW/pKe5pbSDpoXdUxm/eRlD+KipCVLMEl5q0hjxo="; + hash = "sha256-vT8MlfAdzIKj6uyQedYngP6rCkIZwS8EdtKs4+8l9CA="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/python-modules/httpx-ws/default.nix b/pkgs/development/python-modules/httpx-ws/default.nix index d27b7ce22d00..6a02e27dab1a 100644 --- a/pkgs/development/python-modules/httpx-ws/default.nix +++ b/pkgs/development/python-modules/httpx-ws/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "httpx-ws"; - version = "0.7.0"; + version = "0.7.1"; pyproject = true; disabled = pythonOlder "3.9"; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "frankie567"; repo = "httpx-ws"; tag = "v${version}"; - hash = "sha256-/xhj27uMPvbVsieAjnd8Z9q18BLxaXP/1ndrgewN4Og="; + hash = "sha256-UO9O4d7QfPdIWL4CtlOuwQRsk/9sEFknahDLWIOfeA0="; }; # we don't need to use the hatch-regex-commit plugin diff --git a/pkgs/development/python-modules/linode-api/default.nix b/pkgs/development/python-modules/linode-api/default.nix index 86114e43b097..a32ed18f7194 100644 --- a/pkgs/development/python-modules/linode-api/default.nix +++ b/pkgs/development/python-modules/linode-api/default.nix @@ -14,22 +14,22 @@ buildPythonPackage rec { pname = "linode-api"; - version = "5.25.0"; + version = "5.26.0"; pyproject = true; - disabled = pythonOlder "3.6"; + disabled = pythonOlder "3.9"; # Sources from Pypi exclude test fixtures src = fetchFromGitHub { owner = "linode"; repo = "python-linode-api"; tag = "v${version}"; - hash = "sha256-rEBMZft4o7R2e0N7x1ZEaCisRmhKggMbZWdtDvraoD0="; + hash = "sha256-+Co8c0JJKzA2IBj/RUrY+iNTCI0nCvqQUW1F7Crd2mc="; }; - nativeBuildInputs = [ setuptools ]; + build-system = [ setuptools ]; - propagatedBuildInputs = [ + dependencies = [ requests polling deprecated @@ -48,10 +48,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "linode_api4" ]; - meta = with lib; { + meta = { description = "Python library for the Linode API v4"; homepage = "https://github.com/linode/python-linode-api"; - license = licenses.bsd3; - maintainers = with maintainers; [ glenns ]; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ glenns ]; }; } diff --git a/pkgs/development/python-modules/pwlf/default.nix b/pkgs/development/python-modules/pwlf/default.nix index 8f420e45d61e..2e6e4ca8e361 100644 --- a/pkgs/development/python-modules/pwlf/default.nix +++ b/pkgs/development/python-modules/pwlf/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "cjekel"; repo = "piecewise_linear_fit_py"; - tag = "v.${version}"; + tag = "v${version}"; hash = "sha256-TamFg+bX8QPRjY0HdrYviJRP8VwM7ucDFE2eZz5xNr0="; }; diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix index 375624790411..2686cefefb97 100644 --- a/pkgs/development/python-modules/python-gitlab/default.nix +++ b/pkgs/development/python-modules/python-gitlab/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "python-gitlab"; - version = "5.3.0"; + version = "5.3.1"; pyproject = true; disabled = pythonOlder "3.8"; @@ -21,7 +21,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "python_gitlab"; inherit version; - hash = "sha256-GPEHZLasFK0MtSUu1mAlvf5ijOdHsau7z+dqgirGuuc="; + hash = "sha256-yqvLUAIQ9PWe+fj+7E+Z6CHWUqVccuyfW/gg9F/Bcpg="; }; build-system = [ setuptools ]; diff --git a/pkgs/games/vcmi/default.nix b/pkgs/games/vcmi/default.nix index fb80aa1d67ea..3c6bb1731753 100644 --- a/pkgs/games/vcmi/default.nix +++ b/pkgs/games/vcmi/default.nix @@ -29,14 +29,14 @@ stdenv.mkDerivation rec { pname = "vcmi"; - version = "1.6.2"; + version = "1.6.3"; src = fetchFromGitHub { owner = "vcmi"; repo = "vcmi"; rev = version; fetchSubmodules = true; - hash = "sha256-IUE/19tknfvca84Jiybbq0zb00WxOgP9N+BMTbUfPzA="; + hash = "sha256-nq/2y0bV1UMMQVOpT/iG27Ulvux1aWS55XalMtayOtQ="; }; nativeBuildInputs = [ diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index f41c4d1256b9..e8a291c5aeb1 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -14,12 +14,12 @@ let # kernel config in the xanmod version commit variants = { lts = { - version = "6.6.69"; - hash = "sha256-ZU0vVea8CCR41Sc+bbM4GOnDsFUpTvBvCEHSHLmWHds="; + version = "6.6.70"; + hash = "sha256-5G3Lo+dWObVDaBRzn2Ho24R2vMjsupx5z2jRIQ0NAl0="; }; main = { - version = "6.12.8"; - hash = "sha256-rEzSM71ACrBclunnJZ4qaEhPGIKCvyLVpeHgsiDxMu4="; + version = "6.12.9"; + hash = "sha256-vA1/OhhwSKVIaLJ7uN2ut1b1/UX/mIAITQ3BqTZD9Uk="; }; }; diff --git a/pkgs/tools/admin/ansible/lint.nix b/pkgs/tools/admin/ansible/lint.nix index 77127afd093a..aacb554af567 100644 --- a/pkgs/tools/admin/ansible/lint.nix +++ b/pkgs/tools/admin/ansible/lint.nix @@ -7,13 +7,13 @@ python3.pkgs.buildPythonApplication rec { pname = "ansible-lint"; - version = "24.9.2"; + version = "24.12.2"; format = "pyproject"; src = fetchPypi { inherit version; pname = "ansible_lint"; - hash = "sha256-fP9sWvEO+Za3xgEMvUjJFZJ2SuCY8rBUCHJomaEGan8="; + hash = "sha256-9jYwnE5/ck/BpUTfUpxMI1T1TPNe3hHXUDZq+xFYpGQ="; }; postPatch = '' diff --git a/pkgs/tools/misc/bat-extras/default.nix b/pkgs/tools/misc/bat-extras/default.nix index d5bd52641da9..323b1dc21cc7 100644 --- a/pkgs/tools/misc/bat-extras/default.nix +++ b/pkgs/tools/misc/bat-extras/default.nix @@ -54,6 +54,8 @@ let dontConfigure = true; + patches = [ ./disable-theme-tests.patch ]; + postPatch = '' patchShebangs --build test.sh test/shimexec .test-framework/bin/best.sh ''; @@ -103,8 +105,6 @@ let license = with licenses; [ mit ]; maintainers = with maintainers; [ bbigras ]; platforms = platforms.all; - # not compatible with bat 0.25.0 - broken = true; }; }; script = diff --git a/pkgs/tools/misc/bat-extras/disable-theme-tests.patch b/pkgs/tools/misc/bat-extras/disable-theme-tests.patch new file mode 100644 index 000000000000..695d350a2a30 --- /dev/null +++ b/pkgs/tools/misc/bat-extras/disable-theme-tests.patch @@ -0,0 +1,42 @@ +Subject: [PATCH] skip tests depending on color theme +=================================================================== +diff --git a/test/suite/batpipe.sh b/test/suite/batpipe.sh +--- a/test/suite/batpipe.sh (revision 36c77c171cc71b2ff3ec4cb781aa16ca3ad258b1) ++++ b/test/suite/batpipe.sh (date 1736621098865) +@@ -29,6 +29,7 @@ + test:batpipe_term_width() { + description "Test support for BATPIPE_TERM_WIDTH" + snapshot STDOUT ++ skip "bat-extras does not support `--theme` flag" + + export BATPIPE=color + export BATPIPE_DEBUG_PARENT_EXECUTABLE=less +Index: test/suite/batgrep.sh +=================================================================== +diff --git a/test/suite/batgrep.sh b/test/suite/batgrep.sh +--- a/test/suite/batgrep.sh (revision 36c77c171cc71b2ff3ec4cb781aa16ca3ad258b1) ++++ b/test/suite/batgrep.sh (date 1736621086239) +@@ -58,6 +58,7 @@ + description "Snapshot test for colored output." + snapshot stdout + snapshot stderr ++ skip "bat-extras does not support `--theme` flag" + + require_rg + +@@ -118,6 +119,7 @@ + description "Should respect the BAT_STYLE variable." + snapshot stdout + snapshot stderr ++ skip "bat-extras does not support `--theme` flag" + + require_rg + +@@ -128,6 +130,7 @@ + description "Snapshot test for output without separator" + snapshot stdout + snapshot stderr ++ skip "bat-extras does not support `--theme` flag" + + require_rg + diff --git a/pkgs/tools/networking/gmrender-resurrect/default.nix b/pkgs/tools/networking/gmrender-resurrect/default.nix index 58296216ac45..1be8d6d62a6a 100644 --- a/pkgs/tools/networking/gmrender-resurrect/default.nix +++ b/pkgs/tools/networking/gmrender-resurrect/default.nix @@ -15,7 +15,7 @@ }: let - version = "0.1"; + version = "0.3"; pluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [ gstreamer @@ -34,7 +34,7 @@ stdenv.mkDerivation { owner = "hzeller"; repo = "gmrender-resurrect"; rev = "v${version}"; - sha256 = "sha256-FR5bMjwPnY1/PNdPRiaxoY1keogq40M06YOaoks4zVY="; + sha256 = "sha256-Zt8YYRqqX5L/MGLsFzR8JOdYoNX9ypXLX5i+fqkzPkk="; }; buildInputs = [ diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 5c6b9d31f7d8..b98bd8233b3b 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -456,6 +456,7 @@ mapAliases { gmtk = throw "'gmtk' has been removed due to lack of maintenance upstream"; # Added 2024-09-14 gmtp = throw "'gmtp' has been removed due to lack of maintenance upstream. Consider using 'gnome-music' instead"; # Added 2024-09-14 gnome-latex = throw "'gnome-latex' has been superseded by 'enter-tex'"; # Added 2024-09-18 + gnome-settings-daemon43 = throw "'gnome-settings-daemon43' has been removed since it is no longer used by Pantheon."; # Added 2024-09-22 gnu-cobol = gnucobol; # Added 2024-09-17 gnupg1orig = throw "'gnupg1orig' has been removed due to lack of active upstream maintainance. Consider using 'gnupg' instead"; # Added 2025-01-11 gnupg22 = throw "'gnupg22' is end-of-life. Consider using 'gnupg24' instead"; # Added 2025-01-05 @@ -886,6 +887,7 @@ mapAliases { mupdf_1_17 = throw "'mupdf_1_17' has been removed due to being outdated and insecure. Consider using 'mupdf' instead."; # Added 2024-08-22 mustache-tcl = tclPackages.mustache-tcl; # Added 2024-10-02 mutt-with-sidebar = mutt; # Added 2022-09-17 + mutter43 = throw "'mutter43' has been removed since it is no longer used by Pantheon."; # Added 2024-09-22 mysql-client = hiPrio mariadb.client; mysql = throw "'mysql' has been renamed to/replaced by 'mariadb'"; # Converted to throw 2024-10-17 mesa_drivers = throw "'mesa_drivers' has been removed, use 'pkgs.mesa' or 'pkgs.mesa.drivers' depending on target use case."; # Converted to throw 2024-07-11