From b8fd64f2e627db2c03fdd3f38a301020ec33be29 Mon Sep 17 00:00:00 2001 From: Nathan Regner Date: Sat, 13 Jul 2024 11:40:32 -0600 Subject: [PATCH 01/57] maintainers: add nathanregner --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 25802a260cff..d8e6bcb85cbc 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -14382,6 +14382,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"; From d64c6bdc876c58e9494eed06f2d7c22a9640bfd5 Mon Sep 17 00:00:00 2001 From: Nathan Regner Date: Fri, 28 Jun 2024 17:57:36 -0600 Subject: [PATCH 02/57] mvnd: init at 1.0.2 --- pkgs/by-name/mv/mvnd/package.nix | 109 +++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 pkgs/by-name/mv/mvnd/package.nix diff --git a/pkgs/by-name/mv/mvnd/package.nix b/pkgs/by-name/mv/mvnd/package.nix new file mode 100644 index 000000000000..34b4754ce84d --- /dev/null +++ b/pkgs/by-name/mv/mvnd/package.nix @@ -0,0 +1,109 @@ +{ + darwin, + fetchFromGitHub, + graalvmCEPackages, + 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 = graalvmCEPackages.graalvm-ce; + mvnHash = "sha256-Bx0XSnpHNxNX07uVPc18py9qbnG5b3b7J4vs44ty034="; + + nativeBuildInputs = [ + graalvmCEPackages.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"; + }; +} From 2187d1970e627656bf3a2ed7d23d579bc66874be Mon Sep 17 00:00:00 2001 From: r-vdp Date: Wed, 11 Dec 2024 14:37:48 +0100 Subject: [PATCH 03/57] nixos/etc-overlay: make the etc overlay compatible with nixos-enter and nixos-install When using nixos-enter (and so also nixos-install) on a system with etc-overlay enabled, he activation script gets called directly, and there is no systemd running. This violates a couple of assumptions in the etc-overlay activation script which assumed that it only ever ran when switching into a new generation and that the very first /etc would always have been set up by the systemd initrd. As more and more things are being moved into systemd components (initrd services, mount units, tmpfiles, etc), I think that it is going to become increasingly difficult to stay compatible with these tools, but at least for now there is no real alternative and so we probably want to be able to install systems with etc-overlay enabled. --- nixos/modules/system/etc/etc-activation.nix | 1 + nixos/modules/system/etc/etc.nix | 122 ++++++++++++-------- pkgs/by-name/ni/nixos-enter/nixos-enter.sh | 5 +- 3 files changed, 76 insertions(+), 52 deletions(-) diff --git a/nixos/modules/system/etc/etc-activation.nix b/nixos/modules/system/etc/etc-activation.nix index aed58af780b7..acf8c99eab91 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; } diff --git a/nixos/modules/system/etc/etc.nix b/nixos/modules/system/etc/etc.nix index 5f2acd7bacb9..062e414d5d6b 100644 --- a/nixos/modules/system/etc/etc.nix +++ b/nixos/modules/system/etc/etc.nix @@ -250,69 +250,91 @@ 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="" mktemp --tmpdir=/tmp --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="" mktemp --tmpdir=/tmp --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 @@ -321,7 +343,7 @@ in findmnt --type erofs --list --kernel --output TARGET | while read -r mountPoint; do if [[ "$mountPoint" =~ ^/tmp/nixos-etc-metadata\..{10}$ && "$mountPoint" != "$tmpMetadataMount" ]]; then - umount --lazy $mountPoint + umount --lazy "$mountPoint" rmdir "$mountPoint" fi done diff --git a/pkgs/by-name/ni/nixos-enter/nixos-enter.sh b/pkgs/by-name/ni/nixos-enter/nixos-enter.sh index 214ab7dfbda4..906c5b0e0b90 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() { From df7c405f3201216f7be5301848f5af91c6136988 Mon Sep 17 00:00:00 2001 From: r-vdp Date: Thu, 12 Dec 2024 10:14:23 +0100 Subject: [PATCH 04/57] nixos/etc-overlay: always create the metadata mountpoints in /run This avoids the dependence on the presence of /tmp, which causes issues with nixos-install --- nixos/modules/system/etc/etc-activation.nix | 6 +++--- nixos/modules/system/etc/etc.nix | 6 +++--- nixos/tests/activation/etc-overlay-immutable.nix | 16 ++++++++++------ nixos/tests/activation/etc-overlay-mutable.nix | 16 ++++++++++------ 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/nixos/modules/system/etc/etc-activation.nix b/nixos/modules/system/etc/etc-activation.nix index acf8c99eab91..59fa2faa2b80 100644 --- a/nixos/modules/system/etc/etc-activation.nix +++ b/nixos/modules/system/etc/etc-activation.nix @@ -47,7 +47,7 @@ boot.initrd.systemd = { mounts = [ { - where = "/run/etc-metadata"; + where = "/run/nixos-etc-metadata"; what = "/etc-metadata-image"; type = "erofs"; options = "loop,ro"; @@ -82,7 +82,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" @@ -112,7 +112,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 062e414d5d6b..7c7db061359c 100644 --- a/nixos/modules/system/etc/etc.nix +++ b/nixos/modules/system/etc/etc.nix @@ -274,7 +274,7 @@ in chmod --recursive 0755 /.rw-etc ''} - tmpMetadataMount=$(TMPDIR="" mktemp --tmpdir=/tmp --directory -t nixos-etc-metadata.XXXXXXXXXX) + tmpMetadataMount=$(TMPDIR="/run" mktemp --directory -t nixos-etc-metadata.XXXXXXXXXX) mount --type erofs -o ro ${config.system.build.etcMetadataImage} $tmpMetadataMount # There was no previous /etc mounted. This happens when we're called @@ -287,7 +287,7 @@ in # 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="" mktemp --tmpdir=/tmp --directory -t nixos-etc.XXXXXXXXXX) + 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} \ @@ -341,7 +341,7 @@ in # 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" rmdir "$mountPoint" 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" ''; } From e19ce2cf9555cc860a9e5b72116a26f83719f235 Mon Sep 17 00:00:00 2001 From: FliegendeWurst Date: Thu, 19 Dec 2024 18:45:47 +0100 Subject: [PATCH 05/57] wsjtx: fix and enable strictDeps --- pkgs/applications/radio/wsjtx/default.nix | 3 +++ 1 file changed, 3 insertions(+) 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 = '' From 872f6c46b9461e924719b89f129b863bd9fe1fbd Mon Sep 17 00:00:00 2001 From: Martin Joerg Date: Sun, 29 Dec 2024 07:24:49 +0000 Subject: [PATCH 06/57] nyxt: drop dependency on notify-osd notify-osd is no longer used (https://github.com/atlas-engineer/nyxt/pull/1387) --- pkgs/applications/networking/browsers/nyxt/default.nix | 2 -- 1 file changed, 2 deletions(-) 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 From 4bff45851f45b6e40bb1e51dc396be1b1bdc0d7e Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 18 Dec 2024 07:14:22 -0600 Subject: [PATCH 07/57] calibre: add fonttools dependency --- pkgs/by-name/ca/calibre/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 = '' From 52ca86359248573a9f84edeecf7e74523870ce4e Mon Sep 17 00:00:00 2001 From: Liam Murphy Date: Wed, 1 Jan 2025 15:09:25 +0000 Subject: [PATCH 08/57] newlib: 4.4.0.20231231 -> 4.5.0.20241231 --- pkgs/development/misc/newlib/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 [ From 4e67cff74c392503a12fa03ef411f2094d0bea00 Mon Sep 17 00:00:00 2001 From: FliegendeWurst Date: Thu, 2 Jan 2025 22:40:29 +0100 Subject: [PATCH 09/57] flrig: fix cross / strictDeps build --- pkgs/by-name/fl/flrig/package.nix | 2 ++ 1 file changed, 2 insertions(+) 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/"; From 51291dec17f40e5ded25be40d2a4729d46b308ec Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 6 Jan 2025 02:01:18 +0000 Subject: [PATCH 10/57] python312Packages.httpx-ws: 0.7.0 -> 0.7.1 --- pkgs/development/python-modules/httpx-ws/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 5470f2af93ea3d6120c5674a386e43412e78ce1a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 7 Jan 2025 05:10:58 +0000 Subject: [PATCH 11/57] python312Packages.bayesian-optimization: 2.0.1 -> 2.0.3 --- .../python-modules/bayesian-optimization/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 ]; From 6ca5e99a09c30401f7b2fe4bcdafdabac11e85a5 Mon Sep 17 00:00:00 2001 From: Reno Dakota Date: Tue, 7 Jan 2025 12:55:12 +0000 Subject: [PATCH 12/57] symcc: unpin LLVM17 --- pkgs/by-name/sy/symcc/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 ]; From 25f51baa634beabb1757cef02df23275bd3f8bc5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 7 Jan 2025 14:54:28 +0000 Subject: [PATCH 13/57] ansible-lint: 24.9.2 -> 24.12.2 --- pkgs/tools/admin/ansible/lint.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = '' From e8b4b187ec6ef33aedc58f3f9d9e921cef57ef0f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 7 Jan 2025 18:13:15 +0000 Subject: [PATCH 14/57] python312Packages.linode-api: 5.25.0 -> 5.26.0 --- pkgs/development/python-modules/linode-api/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/linode-api/default.nix b/pkgs/development/python-modules/linode-api/default.nix index 86114e43b097..ca839a1c149c 100644 --- a/pkgs/development/python-modules/linode-api/default.nix +++ b/pkgs/development/python-modules/linode-api/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "linode-api"; - version = "5.25.0"; + version = "5.26.0"; pyproject = true; disabled = pythonOlder "3.6"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "linode"; repo = "python-linode-api"; tag = "v${version}"; - hash = "sha256-rEBMZft4o7R2e0N7x1ZEaCisRmhKggMbZWdtDvraoD0="; + hash = "sha256-+Co8c0JJKzA2IBj/RUrY+iNTCI0nCvqQUW1F7Crd2mc="; }; nativeBuildInputs = [ setuptools ]; From c4d5b3e824c5912c701d7cb08fc20f2278ea6658 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jan 2025 10:17:57 +0000 Subject: [PATCH 15/57] python312Packages.python-gitlab: 5.3.0 -> 5.3.1 --- pkgs/development/python-modules/python-gitlab/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 ]; From d3021588ce5775eeecdff615618281225110f7c2 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Wed, 8 Jan 2025 10:54:00 -0500 Subject: [PATCH 16/57] python312Packages.linode-api: modernize --- .../python-modules/linode-api/default.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/linode-api/default.nix b/pkgs/development/python-modules/linode-api/default.nix index ca839a1c149c..a32ed18f7194 100644 --- a/pkgs/development/python-modules/linode-api/default.nix +++ b/pkgs/development/python-modules/linode-api/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { version = "5.26.0"; pyproject = true; - disabled = pythonOlder "3.6"; + disabled = pythonOlder "3.9"; # Sources from Pypi exclude test fixtures src = fetchFromGitHub { @@ -27,9 +27,9 @@ buildPythonPackage rec { 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 ]; }; } From 1f8c054e8259755d8d3fe5b007e01e9ddb4b3610 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jan 2025 16:21:55 +0000 Subject: [PATCH 17/57] typos-lsp: 0.1.32 -> 0.1.33 --- pkgs/by-name/ty/typos-lsp/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 From b73fcd8361230da3d93a01ba4cae3049a92bdec1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jan 2025 11:28:32 +0000 Subject: [PATCH 18/57] rss-bridge: 2024-02-02 -> 2025-01-02 --- pkgs/by-name/rs/rss-bridge/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = '' From 7516283004a4a9a8bc3ca5737a650684ae39a5d5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jan 2025 18:31:51 +0000 Subject: [PATCH 19/57] arouteserver: 1.23.1 -> 1.23.2 --- pkgs/by-name/ar/arouteserver/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ar/arouteserver/package.nix b/pkgs/by-name/ar/arouteserver/package.nix index 99c976e8ec71..316e9c9b6791 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 = '' From 3439ba2665589bd389dc7f823b58c02c34874b82 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 10 Nov 2024 10:19:17 +0800 Subject: [PATCH 20/57] pantheon.mutter: Default to 46 46 is the version used in elementary OS 8. --- .../mu/{mutter43 => mutter46}/package.nix | 102 ++++++++++-------- pkgs/desktops/gnome/default.nix | 2 +- pkgs/desktops/pantheon/default.nix | 2 +- pkgs/top-level/aliases.nix | 1 + 4 files changed, 58 insertions(+), 49 deletions(-) rename pkgs/by-name/mu/{mutter43 => mutter46}/package.nix (67%) 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/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix index 489b9f98f39d..04bac8d94227 100644 --- a/pkgs/desktops/gnome/default.nix +++ b/pkgs/desktops/gnome/default.nix @@ -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/default.nix b/pkgs/desktops/pantheon/default.nix index f22a11cd7d7b..4a55e1e09193 100644 --- a/pkgs/desktops/pantheon/default.nix +++ b/pkgs/desktops/pantheon/default.nix @@ -38,7 +38,7 @@ 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; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 453805988349..c8816a70d739 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -885,6 +885,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 From 91447e2125eb73ec7cb904976a7dca4d808e2461 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 10 Nov 2024 10:21:24 +0800 Subject: [PATCH 21/57] pantheon.gnome-settings-daemon: Default to 46 46 is the version used in elementary OS 8. --- .../add-gnome-session-ctl-option.patch | 58 +++++++++++++++++++ .../fix-paths.patch | 0 .../package.nix | 14 +---- pkgs/desktops/gnome/default.nix | 2 +- pkgs/desktops/pantheon/default.nix | 2 +- pkgs/top-level/aliases.nix | 1 + 6 files changed, 64 insertions(+), 13 deletions(-) create mode 100644 pkgs/by-name/gn/gnome-settings-daemon46/add-gnome-session-ctl-option.patch rename pkgs/by-name/gn/{gnome-settings-daemon43 => gnome-settings-daemon46}/fix-paths.patch (100%) rename pkgs/by-name/gn/{gnome-settings-daemon43 => gnome-settings-daemon46}/package.nix (86%) 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/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix index 04bac8d94227..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. diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix index 4a55e1e09193..86ae59b2fb80 100644 --- a/pkgs/desktops/pantheon/default.nix +++ b/pkgs/desktops/pantheon/default.nix @@ -41,7 +41,7 @@ lib.makeScope pkgs.newScope (self: with self; { 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/top-level/aliases.nix b/pkgs/top-level/aliases.nix index c8816a70d739..f82ecfe363d1 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 gnupg22 = throw "'gnupg22' is end-of-life. Consider using 'gnupg24' instead"; # Added 2025-01-05 gogs = throw '' From b306de526e84fe3bb12b3c269f40d8c8d80e516a Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 28 May 2024 00:41:54 +0800 Subject: [PATCH 22/57] pantheon.gala: 7.1.3 -> 8.1.0 https://github.com/elementary/gala/compare/7.1.3...8.1.0 --- .../pantheon/desktop/gala/default.nix | 87 ++++++++----------- 1 file changed, 38 insertions(+), 49 deletions(-) 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 { }; }; From 0c0404ee06c4d37b3fb10a4e414739a8603edf9a Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 25 Aug 2024 13:34:01 +0800 Subject: [PATCH 23/57] pantheon.elementary-dock: reinit at 8.0.1 This is completely rewritten. --- nixos/tests/pantheon.nix | 4 +- .../pantheon/apps/elementary-dock/default.nix | 98 +++++++------------ 2 files changed, 39 insertions(+), 63 deletions(-) diff --git a/nixos/tests/pantheon.nix b/nixos/tests/pantheon.nix index 0387a0359ab0..8ff20296c482 100644 --- a/nixos/tests/pantheon.nix +++ b/nixos/tests/pantheon.nix @@ -56,9 +56,9 @@ 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"]: machine.wait_for_unit(i, "${user.name}") 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"; }; -} +}) From 5540e16f474d6132eb3c35040808c334cd01a005 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 25 Aug 2024 13:36:20 +0800 Subject: [PATCH 24/57] pantheon.switchboard-plug-keyboard: 8.0.0 -> 8.0.1 https://github.com/elementary/switchboard-plug-keyboard/compare/8.0.0...8.0.1 --- .../pantheon/apps/switchboard-plugs/keyboard/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = [ From 8ba5496d4a27428d64821c15c875b5b9eab4a249 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 25 Aug 2024 13:37:07 +0800 Subject: [PATCH 25/57] pantheon.switchboard-plug-pantheon-shell: 8.0.0 -> 8.1.0 https://github.com/elementary/switchboard-plug-pantheon-shell/compare/8.0.0...8.1.0 --- .../pantheon-shell/default.nix | 21 ++----------------- 1 file changed, 2 insertions(+), 19 deletions(-) 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 { }; }; From e71b4d747d472543cd21664c3e0dbdeb16b264e9 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 11 Jul 2024 22:53:14 +0800 Subject: [PATCH 26/57] pantheon.elementary-default-settings: 7.1.0 -> 8.0.2 https://github.com/elementary/default-settings/compare/7.1.0...8.0.2 --- .../x11/desktop-managers/pantheon.nix | 2 +- .../elementary-default-settings/default.nix | 25 ++----------------- .../launchers/gala-multitaskingview.dockitem | 2 -- .../io.elementary.appcenter.dockitem | 2 -- .../launchers/io.elementary.calendar.dockitem | 2 -- .../launchers/io.elementary.files.dockitem | 2 -- .../launchers/io.elementary.mail.dockitem | 2 -- .../launchers/io.elementary.music.dockitem | 2 -- .../launchers/io.elementary.photos.dockitem | 2 -- .../launchers/io.elementary.settings.dockitem | 2 -- .../launchers/io.elementary.tasks.dockitem | 2 -- .../launchers/io.elementary.videos.dockitem | 2 -- .../launchers/org.gnome.Epiphany.dockitem | 2 -- .../plank-dockitems.gschema.override | 2 -- .../elementary-gsettings-schemas/default.nix | 2 -- 15 files changed, 3 insertions(+), 50 deletions(-) delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/gala-multitaskingview.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.appcenter.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.calendar.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.files.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.mail.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.music.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.photos.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.settings.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.tasks.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.videos.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Epiphany.dockitem delete mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index 14e7e25252de..c7292ddd18a3 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -232,7 +232,7 @@ 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"; + environment.etc."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/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix index dedf372d6e80..168ea7c71122 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 = [ accountsservice dbus @@ -46,19 +36,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-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 From 21cbea6c71f3352f0473e2a17937976627b5f66e Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 25 Aug 2024 13:45:23 +0800 Subject: [PATCH 27/57] pantheon.wingpanel: 3.0.5 -> 8.0.1 https://github.com/elementary/wingpanel/compare/3.0.5...8.0.1 --- .../pantheon/desktop/wingpanel/default.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) 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 = '' From 02d91ad96aeee8d732c7bd24203a6fa99bbbdb58 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Fri, 17 May 2024 21:46:10 +0800 Subject: [PATCH 28/57] pantheon.wingpanel-applications-menu: 2.11.1 -> 8.0.0 https://github.com/elementary/applications-menu/compare/2.11.1...8.0.0 --- .../applications-menu/default.nix | 24 +---------- .../applications-menu/fix-paths.patch | 40 +++++++++---------- 2 files changed, 21 insertions(+), 43 deletions(-) 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 ); } From afc01a56d205a75085e80d451d063c728464291d Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sat, 18 May 2024 11:00:23 +0800 Subject: [PATCH 29/57] pantheon.elementary-greeter: 7.0.0 -> 8.0.0 https://github.com/elementary/greeter/compare/7.0.0...8.0.0 --- .../pantheon/desktop/elementary-greeter/default.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 From 145822827a7a57b73997a8324b4674cdb8af9555 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 25 Aug 2024 14:19:48 +0800 Subject: [PATCH 30/57] pantheon.elementary-shortcut-overlay: 8.0.0 -> 8.0.1 https://github.com/elementary/shortcut-overlay/compare/8.0.0...8.0.1 --- .../pantheon/desktop/elementary-shortcut-overlay/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = [ From 1d6cf41b08dd03cdc287f201a004197cf0bde87c Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 25 Jul 2024 20:48:52 +0800 Subject: [PATCH 31/57] pantheon.elementary-notifications: 7.0.1 -> 8.0.0 https://github.com/elementary/notifications/compare/7.0.1...8.0.0 --- .../services/elementary-notifications/default.nix | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) 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 { }; }; From 35008ef1438b1ddb6af26b766ec32be44d97412e Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sat, 23 Nov 2024 20:33:17 +0800 Subject: [PATCH 32/57] pantheon.xdg-desktop-portal-pantheon: 7.2.0 -> 8.0.0 https://github.com/elementary/portals/compare/7.2.0...8.0.0 --- .../services/xdg-desktop-portal-pantheon/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 ]; From 541a663eb46adccaec5ff51e5393623270bbc0fd Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sat, 23 Nov 2024 20:36:56 +0800 Subject: [PATCH 33/57] pantheon.pantheon-agent-polkit: 8.0.0 -> 8.0.1 https://github.com/elementary/pantheon-agent-polkit/compare/8.0.0...8.0.1 --- .../pantheon/services/pantheon-agent-polkit/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 ]; From f2f2eb9b775c8e5efe9c69fbae04a296d1338148 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 22 Dec 2024 20:43:47 +0800 Subject: [PATCH 34/57] pantheon.elementary-onboarding: 8.0.2 -> 8.0.3 https://github.com/elementary/onboarding/compare/8.0.2...8.0.3 --- .../pantheon/desktop/elementary-onboarding/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 = { From 13d9fa4a2bb0c20c3312c590ff80afddbe55ec79 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 5 Jun 2024 21:01:47 +0800 Subject: [PATCH 35/57] pantheon.elementary-session-settings: Build wayland session Finally finishes issue 237954. --- .../elementary-session-settings/default.nix | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix index 8790cc68c41b..885f46cebcba 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix @@ -61,7 +61,7 @@ let X-GNOME-Autostart-Phase=EarlyInitialization ''; - executable = writeScript "pantheon" '' + common-export = '' # 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 @@ -71,10 +71,17 @@ let # * gnome-session can find the `pantheon' session # * use pantheon-mimeapps.list export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS + ''; + executable = writeScript "pantheon" (common-export + '' # Start pantheon session. Keep in sync with upstream exec ${gnome-session}/bin/gnome-session --session=pantheon "$@" - ''; + ''); + + executable-wayland = writeScript "pantheon-wayland" (common-export + '' + # Start pantheon-wayland session. Keep in sync with upstream + exec ${gnome-session}/bin/gnome-session --session=pantheon-wayland "$@" + ''); # Absolute path patched version of the upstream xsession xsession = writeText "pantheon.desktop" '' @@ -88,6 +95,16 @@ let Type=Application ''; + wayland-session = writeText "pantheon-wayland.desktop" '' + [Desktop Entry] + Name=Pantheon (Wayland) + Comment=This session provides elementary experience + Exec=@out@/libexec/pantheon-wayland + TryExec=${wingpanel}/bin/io.elementary.wingpanel + Icon= + DesktopNames=Pantheon + Type=Application + ''; in stdenv.mkDerivation rec { @@ -122,6 +139,7 @@ stdenv.mkDerivation rec { "-Dfallback-session=GNOME" "-Ddetect-program-prefixes=true" "--sysconfdir=${placeholder "out"}/etc" + "-Dwayland=true" ]; postInstall = '' @@ -136,10 +154,12 @@ stdenv.mkDerivation rec { # script `Exec` to start pantheon mkdir -p $out/libexec substitute ${executable} $out/libexec/pantheon --subst-var out - chmod +x $out/libexec/pantheon + substitute ${executable-wayland} $out/libexec/pantheon-wayland --subst-var out + chmod +x $out/libexec/pantheon{,-wayland} - # absolute path patched xsession + # absolute path patched sessions substitute ${xsession} $out/share/xsessions/pantheon.desktop --subst-var out + substitute ${wayland-session} $out/share/wayland-sessions/pantheon-wayland.desktop --subst-var out ''; passthru = { @@ -147,6 +167,7 @@ stdenv.mkDerivation rec { providedSessions = [ "pantheon" + "pantheon-wayland" ]; }; From 669951f7801a9e83e84cdad2a83ee2f6ec185847 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 7 Jan 2025 22:51:47 +0800 Subject: [PATCH 36/57] pantheon.elementary-session-settings: Various simplifications * Remove default-elementary-dockitems.desktop as it is not useful with the new dock. * See https://github.com/GNOME/gtk/blob/4.16.12/gtk/gtksettings.c for gtk-4.0/settings.ini. * With systemd managed session the required components are actually managed by systemd. * After the above changes there is no more need to install the script in libexec. --- .../x11/desktop-managers/pantheon.nix | 3 +- .../elementary-session-settings/default.nix | 76 +------------------ 2 files changed, 4 insertions(+), 75 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index c7292ddd18a3..445a45598f43 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -232,7 +232,8 @@ in ])) config.environment.pantheon.excludePackages; # Settings from elementary-default-settings - environment.etc."gtk-4.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-4.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/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix index 885f46cebcba..9698383abf78 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 @@ -21,74 +20,12 @@ }: 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 - ''; - - common-export = '' - # 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 - ''; - - executable = writeScript "pantheon" (common-export + '' - # Start pantheon session. Keep in sync with upstream - exec ${gnome-session}/bin/gnome-session --session=pantheon "$@" - ''); - - executable-wayland = writeScript "pantheon-wayland" (common-export + '' - # Start pantheon-wayland session. Keep in sync with upstream - exec ${gnome-session}/bin/gnome-session --session=pantheon-wayland "$@" - ''); - # 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 + Exec=${gnome-session}/bin/gnome-session --session=pantheon TryExec=${wingpanel}/bin/io.elementary.wingpanel Icon= DesktopNames=Pantheon @@ -99,7 +36,7 @@ let [Desktop Entry] Name=Pantheon (Wayland) Comment=This session provides elementary experience - Exec=@out@/libexec/pantheon-wayland + Exec=${gnome-session}/bin/gnome-session --session=pantheon-wayland TryExec=${wingpanel}/bin/io.elementary.wingpanel Icon= DesktopNames=Pantheon @@ -148,15 +85,6 @@ 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 - substitute ${executable-wayland} $out/libexec/pantheon-wayland --subst-var out - chmod +x $out/libexec/pantheon{,-wayland} - # absolute path patched sessions substitute ${xsession} $out/share/xsessions/pantheon.desktop --subst-var out substitute ${wayland-session} $out/share/wayland-sessions/pantheon-wayland.desktop --subst-var out From 1ffd79918c8a39979502a2b21beeb2c1b63dfba1 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 8 Jan 2025 20:57:58 +0800 Subject: [PATCH 37/57] pantheon.elementary-session-settings: Use upstream session files * "Secure Session" is the wayland session. * Even I prefer the original name, upstream prefers to name session this way so :shrug: --- .../elementary-session-settings/default.nix | 30 ++----------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix index 9698383abf78..166e47207030 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix @@ -19,31 +19,6 @@ , ninja }: -let - # Absolute path patched version of the upstream xsession - xsession = writeText "pantheon.desktop" '' - [Desktop Entry] - Name=Pantheon - Comment=This session provides elementary experience - Exec=${gnome-session}/bin/gnome-session --session=pantheon - TryExec=${wingpanel}/bin/io.elementary.wingpanel - Icon= - DesktopNames=Pantheon - Type=Application - ''; - - wayland-session = writeText "pantheon-wayland.desktop" '' - [Desktop Entry] - Name=Pantheon (Wayland) - Comment=This session provides elementary experience - Exec=${gnome-session}/bin/gnome-session --session=pantheon-wayland - TryExec=${wingpanel}/bin/io.elementary.wingpanel - Icon= - DesktopNames=Pantheon - Type=Application - ''; -in - stdenv.mkDerivation rec { pname = "elementary-session-settings"; version = "8.0.1"; @@ -86,8 +61,9 @@ stdenv.mkDerivation rec { cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list # absolute path patched sessions - substitute ${xsession} $out/share/xsessions/pantheon.desktop --subst-var out - substitute ${wayland-session} $out/share/wayland-sessions/pantheon-wayland.desktop --subst-var out + 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 = { From b1ebe0ae829e8ee78b7f3a586af8a3b5c36ca346 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 10 Nov 2024 11:12:20 +0800 Subject: [PATCH 38/57] nixos/pantheon: Get rid of bamf This is not needed with the latest gala and dock. --- nixos/modules/services/desktops/bamf.nix | 2 +- nixos/modules/services/x11/desktop-managers/pantheon.nix | 1 - nixos/tests/pantheon.nix | 2 +- pkgs/desktops/pantheon/apps/elementary-files/default.nix | 2 -- 4 files changed, 2 insertions(+), 5 deletions(-) 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/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index 445a45598f43..01afa5c1debf 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -132,7 +132,6 @@ in 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 diff --git a/nixos/tests/pantheon.nix b/nixos/tests/pantheon.nix index 8ff20296c482..0f2a7af401c6 100644 --- a/nixos/tests/pantheon.nix +++ b/nixos/tests/pantheon.nix @@ -60,7 +60,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : machine.wait_until_succeeds(f"pgrep -f {i}") 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"): 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 From 3b3a06ce595f21f6e179ea2f8e3a2be62447a792 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 7 Jan 2025 22:38:16 +0800 Subject: [PATCH 39/57] nixos/pantheon: Replace sessionCommands with extraInit I think the issue here will be similar to issue 276028. --- .../x11/desktop-managers/pantheon.nix | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index 01afa5c1debf..50e1f195f988 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -112,20 +112,17 @@ 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 From 1c26dec649ba72a044efbc06525ccc6d68e8ee56 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 8 Jan 2025 21:03:55 +0800 Subject: [PATCH 40/57] nixosTests.pantheon: Unbreak and restore test for closing multitasking view * Closing multitasking view seems to work now. * See the Pantheon 8 PR for session-settings packaging changes. --- nixos/tests/pantheon.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nixos/tests/pantheon.nix b/nixos/tests/pantheon.nix index 0f2a7af401c6..7a19d6432fb0 100644 --- a/nixos/tests/pantheon.nix +++ b/nixos/tests/pantheon.nix @@ -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") From 9e74210fa1b97d4fca7204389596e379b6e21251 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 8 Jan 2025 22:09:41 +0800 Subject: [PATCH 41/57] nixosTests.pantheon-wayland: init It is unclear to me how to properly start apps so I am using autostart here. --- nixos/tests/all-tests.nix | 1 + nixos/tests/pantheon-wayland.nix | 105 +++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 nixos/tests/pantheon-wayland.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index be077353de00..4c03ed56e679 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -802,6 +802,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") + ''; + } +) From cc6f2096a87e098e57575066f7bebdfb1c468544 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 8 Jan 2025 22:28:45 +0800 Subject: [PATCH 42/57] nixos/doc/rl-2505: Mention Pantheon 8 --- nixos/doc/manual/release-notes/rl-2505.section.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index 772f7daa8d79..3d0484dd8a6e 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -319,6 +319,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. From 9822e000f0232d96a7646e341af3a7f361e5f48a Mon Sep 17 00:00:00 2001 From: Henner Zeller Date: Sat, 11 Jan 2025 13:01:01 -0800 Subject: [PATCH 43/57] gmrender-resurrect: 0.1 -> 0.3 --- pkgs/tools/networking/gmrender-resurrect/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = [ From 126d1f7432239f7f04c5bfdd076fc82552a37a21 Mon Sep 17 00:00:00 2001 From: Shawn8901 Date: Sat, 11 Jan 2025 22:08:50 +0100 Subject: [PATCH 44/57] linux_xanmod: 6.6.69 -> 6.6.70 --- pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index f41c4d1256b9..063fdf9694c7 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -14,8 +14,8 @@ 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"; From 7d8148550f0cf198201f79c7c17fab61a2896e10 Mon Sep 17 00:00:00 2001 From: Shawn8901 Date: Sat, 11 Jan 2025 22:08:59 +0100 Subject: [PATCH 45/57] linux_xanmod_latest: 6.12.8 -> 6.12.9 --- pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index 063fdf9694c7..e8a291c5aeb1 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -18,8 +18,8 @@ let hash = "sha256-5G3Lo+dWObVDaBRzn2Ho24R2vMjsupx5z2jRIQ0NAl0="; }; main = { - version = "6.12.8"; - hash = "sha256-rEzSM71ACrBclunnJZ4qaEhPGIKCvyLVpeHgsiDxMu4="; + version = "6.12.9"; + hash = "sha256-vA1/OhhwSKVIaLJ7uN2ut1b1/UX/mIAITQ3BqTZD9Uk="; }; }; From 567f3cb4bfe12146593231671c5ac247d43cb3c6 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sun, 12 Jan 2025 01:32:45 +0100 Subject: [PATCH 46/57] famistudio: 4.3.0 -> 4.3.1 --- pkgs/by-name/fa/famistudio/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = From 7c848a760575fdbe5c08acf10eba2a36fa9200e3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 12 Jan 2025 00:48:07 +0000 Subject: [PATCH 47/57] tiled: 1.11.0 -> 1.11.1 --- pkgs/applications/editors/tiled/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = [ From a7699ed2d53573b9bdfa043de3cf129eedb7745d Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 12 Jan 2025 06:08:31 +0000 Subject: [PATCH 48/57] vcmi: 1.6.2 -> 1.6.3 Changes: https://github.com/vcmi/vcmi/blob/master/ChangeLog.md#162---163 --- pkgs/games/vcmi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = [ From 2b306c831769a6bb29b202d008487e48694bfea4 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sun, 12 Jan 2025 09:37:50 +0200 Subject: [PATCH 49/57] python312Packages.pwlf: fix src tag https://github.com/cjekel/piecewise_linear_fit_py/issues/121#issuecomment-2585470870 --- pkgs/development/python-modules/pwlf/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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="; }; From a478143064c0fe370f27f88e464bad2f6aaa5932 Mon Sep 17 00:00:00 2001 From: r-vdp Date: Sun, 12 Jan 2025 08:56:41 +0100 Subject: [PATCH 50/57] niri: avoid flaky tests See https://github.com/YaLTeR/niri/issues/953 --- pkgs/by-name/ni/niri/package.nix | 2 ++ 1 file changed, 2 insertions(+) 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 = { From a2b71edd54586f87cc714c8771cf73b29dca26fe Mon Sep 17 00:00:00 2001 From: Arne Keller Date: Sun, 12 Jan 2025 10:38:00 +0100 Subject: [PATCH 51/57] mvnd: fix eval --- pkgs/by-name/mv/mvnd/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/mv/mvnd/package.nix b/pkgs/by-name/mv/mvnd/package.nix index 34b4754ce84d..7e347bafcab7 100644 --- a/pkgs/by-name/mv/mvnd/package.nix +++ b/pkgs/by-name/mv/mvnd/package.nix @@ -1,7 +1,7 @@ { darwin, fetchFromGitHub, - graalvmCEPackages, + graalvmPackages, installShellFiles, lib, makeWrapper, @@ -33,11 +33,11 @@ maven.buildMavenPackage rec { }; # need graalvm at build-time for the `native-image` tool - mvnJdk = graalvmCEPackages.graalvm-ce; + mvnJdk = graalvmPackages.graalvm-ce; mvnHash = "sha256-Bx0XSnpHNxNX07uVPc18py9qbnG5b3b7J4vs44ty034="; nativeBuildInputs = [ - graalvmCEPackages.graalvm-ce + graalvmPackages.graalvm-ce installShellFiles makeWrapper ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk_11_0.frameworks.Foundation ]; From f4fafc4bc25095fd27dc3ec4a5a2c7049dafe471 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 12 Jan 2025 10:41:30 +0100 Subject: [PATCH 52/57] exo: 0.0.4-alpha -> 0.0.5-alpha Diff: https://github.com/exo-explore/exo/compare/v0.0.4-alpha...v0.0.5-alpha --- pkgs/by-name/ex/exo/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 ]; From 809f97881d4e0d827ca5e872bd2e435fef363855 Mon Sep 17 00:00:00 2001 From: Kira Bruneau Date: Thu, 2 Jan 2025 18:10:04 -0500 Subject: [PATCH 53/57] nixos/klipper: preserve SAVE_CONFIG for nixos-managed config Klipper macros that use `SAVE_CONFIG` (eg. bed mesh calibration, PID tuning, ...) don't currently work with a nixos-managed config. This can be worked around by using `services.klipper.mutableConfig = true`, but then you lose out on being able to configure klipper from NixOS. This changes the default behaviour so that: 1. The config is stored in `services.klipper.configDir` instead of `/etc` 2. The config is copied instead of symlinked (keeping a timestamped backup of the existing config) 3. The `SAVE_CONFIG` section from the backup is copied over into the new config 4. The backup is deleted if the final config is identical --- nixos/modules/services/misc/klipper.nix | 57 +++++++++++++++---------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/nixos/modules/services/misc/klipper.nix b/nixos/modules/services/misc/klipper.nix index bac0c5cf14bb..ad414abcee6b 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,31 @@ 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 ''; serviceConfig = { - ExecStart = "${cfg.package}/bin/klippy ${klippyArgs} ${printerConfigPath}"; + ExecStart = "${cfg.package}/bin/klippy ${klippyArgs} ${cfg.configDir}/printer.cfg"; RuntimeDirectory = "klipper"; StateDirectory = "klipper"; SupplementaryGroups = [ "dialout" ]; From d5493eb70174b5e342553ad973206c5ce35497cf Mon Sep 17 00:00:00 2001 From: Kira Bruneau Date: Fri, 10 Jan 2025 09:34:56 -0500 Subject: [PATCH 54/57] nixos/klipper: restart when config changes --- nixos/modules/services/misc/klipper.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/modules/services/misc/klipper.nix b/nixos/modules/services/misc/klipper.nix index ad414abcee6b..78e7f35fed4e 100644 --- a/nixos/modules/services/misc/klipper.nix +++ b/nixos/modules/services/misc/klipper.nix @@ -209,6 +209,8 @@ in popd ''; + restartTriggers = lib.optional (!cfg.mutableConfig) [ printerConfig ]; + serviceConfig = { ExecStart = "${cfg.package}/bin/klippy ${klippyArgs} ${cfg.configDir}/printer.cfg"; From 80d08100fa04fdb0187f3a7a8667e12aa3614b5e Mon Sep 17 00:00:00 2001 From: Petr Zahradnik Date: Sun, 12 Jan 2025 11:32:18 +0100 Subject: [PATCH 55/57] bat-extras: disable broken tests --- pkgs/tools/misc/bat-extras/default.nix | 4 +- .../misc/bat-extras/disable-theme-tests.patch | 42 +++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 pkgs/tools/misc/bat-extras/disable-theme-tests.patch 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 + From 816ec374f1c6e5e8af6c072f5bc2d8a3bc7cce65 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 12 Jan 2025 11:34:55 +0100 Subject: [PATCH 56/57] onnxruntime: fix build on darwin --- pkgs/development/libraries/onnxruntime/default.nix | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) 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 - ]; }; } From afffa89ec53b44f017bfb6a315e8b08a2ed85bac Mon Sep 17 00:00:00 2001 From: Klemens Nanni Date: Sun, 12 Jan 2025 14:47:30 +0300 Subject: [PATCH 57/57] ssh: Fix environment variable parsing (#177503) From systemctl(1)'s `show-environment`: [...] If no special characters or whitespace is present in the variable values, no escaping is performed, and the assignments have the form "VARIABLE=value". If whitespace or characters which have special meaning to the shell are present, dollar-single-quote escaping is used, and assignments have the form "VARIABLE=$'value'". [...] `DISPLAY` is unlikely to require such escaping, but is still broken and overly complicated. Just rely on the fact that systemctl outputs line that are safe to be interpreted by the shell. Filter for `DISPLAY` and `eval` the output instead of trying to parse just the value part and reassign it again. --- nixos/modules/programs/ssh.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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} "$@" '';