This engine is unmaintained upstream for over a decade. It also depends on GTK2 which is going away.
https://gitlab.gnome.org/Archive/murrine
This also removes all reverse dependencies, which are all themes.
cc @amadaluzia @alexarice @corbinwunderlich @fpletz @fufexan @gvolpe @mkg20001 @romildo @sauyon @VergeDX @dretyuiop @Icy-Thought @iynaix @lovesegfault @luftmensch-luftmensch @moni-dz @simonvandel @tadfisher @zoedsoupe @jakedevs
Part of https://github.com/NixOS/nixpkgs/issues/410814
#!/usr/bin/env bash
set -euo pipefail
rg -l 'gtk-engine-murrine' pkgs/by-name | sort | while read -r package; do
dir=$(dirname "$package")
attr=$(basename "$dir")
[[ "$attr" == "gtk-engine-murrine" ]] && continue
git rm -r "$dir"
./add-throw.py "$attr"
git add pkgs/top-level/aliases.nix
git commit \
-m "$attr: remove" \
-m "Depends on gtk-engine-murrine, which is being removed from nixpkgs."
done
#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p keep-sorted
from pathlib import Path
from subprocess import run
import sys
attr = sys.argv[1]
aliases = Path("pkgs/top-level/aliases.nix")
lines = aliases.read_text().splitlines()
marker = "# keep-sorted start case=no numeric=yes block=yes"
insert_after = next(i for i, line in enumerate(lines) if marker in line)
entry = f' {attr} = throw "{attr} has been removed because it depended on gtk-engine-murrine."; # Added 2026-07-22'
lines.insert(insert_after + 2, entry)
aliases.write_text("\n".join(lines) + "\n")
run(
["keep-sorted", str(aliases)],
check=True,
)
Things done
- Built on platform:
- x86_64-linux
- aarch64-linux
- aarch64-darwin
- Tested, as applicable:
- NixOS tests in nixos/tests.
-
Package tests at
passthru.tests. - Tests in lib/tests or pkgs/test for functions and "core" functionality.
-
Ran
nixpkgs-reviewon this PR. See nixpkgs-review usage. -
Tested basic functionality of all binary files, usually in
./result/bin/. - Nixpkgs Release Notes
- Package update: when the change is major or breaking.
- NixOS Release Notes
- Module addition: when adding a new NixOS module.
- Module update: when the change is significant.
- Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.
- Follows the automation/AI policy.
- The commit messages follow the nixpkgs format, like
hello: 2.12 -> 2.13ornixos/nginx: fix the test. Guide metais complete:description,homepage,license,maintainers,mainProgram. Guide- Sources are fixed-output and pinned by a hash. No
lib.fakeHashis left. Guide - A command-line tool has
versionCheckHook, or another check that runs it. Guide meta.platformsmatches what upstream supports. Guide- The tests run:
passthru.tests, the NixOS test of a module, or nixpkgs-review. Guide - AI use is disclosed with an
Assisted-by:trailer. Guide
The title names what it changes. AI use: none disclosed in the last commit or the description.
Files changed 72
Reviews and comments
adapta-gtk-theme = throw "'adapta-gtk-theme' has been removed because it depended on 'gtk-engine-murrine', which was removed because it was unmaintained upstream and depended on GTK 2."; # Added 2026-07-22
etc.
This is a really minor nitpick but I would prefer to leave the user with something like this, with the complete diagnostic, rather than a "... gtk-engine-murrine, yes? so what?". AFAICT most other "because it depended on" entries do go on to say why the dep is bad, if only just "EOL"
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 544598
Commit: f9a469f0f8021e132f0f507437f2afb1bcc02b4f
x86_64-linux
<details>
<summary>:white_check_mark: 14 packages built:</summary>
<ul>
<li>beauty-line-icon-theme</li>
<li>cosmic-settings-daemon</li>
<li>enlightenment.ecrire</li>
<li>enlightenment.efl</li>
<li>enlightenment.enlightenment</li>
<li>enlightenment.ephoto</li>
<li>enlightenment.evisum</li>
<li>enlightenment.rage</li>
<li>enlightenment.terminology</li>
<li>fastfetch</li>
<li>fastfetch-unwrapped</li>
<li>fetch</li>
<li>iconpack-obsidian</li>
<li>mint-x-icons</li>
</ul>
</details>
How many of these themes would continue to work if gtk-engine-murrine was just removed from their inputs and/or trivially patched out? For most of these I'd hazard to say it's likely only brought in for GTK 2 compat, not that they need it.
Then to you i ask: How many of the themes you could theoretically save are worth keeping? If there is no maintainer to step up, it is unreasonable to push that work onto the people removing gtk2. If you want to do the work necessary to keep the themes, you are welcome. Though in my experience the domain knowledge required to fully test a theme is prohibitively hard to come by if you want to patch these.
Yea, that's fair enough. I'm not a maintainer or a user of any of these packages so I'm not affected, just wanted to bring up the possibility of it. Removing gtk-engine-murrine from the inputs and seeing if they build seems like it'd be possible to automate though? Might look to see if there already exists tooling for this since I don't imagine this will be the last time a package with lots of dependents that use it optionally get dropped.
How many of these themes would continue to work if
gtk-engine-murrinewas just removed from their inputs and/or trivially patched out?
This is where the ping-ing maintainers part comes in. (Manually done in the PR description, since the count exceeds 15.) Many of these are active maintainers. If they can save the theme they maintain, possibly others they're interested in, these themes don't have to be removed. If many themes were saved or easily savable, this removal would be worth reconsidering.
And in any case, no code is lost, we could easily pick a revert of a removal if a theme is to be saved later on.
juno-theme can probably be removed from this PR (https://github.com/NixOS/nixpkgs/pull/544668), thanks for the ping :)
I honestly don't mind the removal of gruvbox-material-gtk-theme. Thanks for the heads up.
I no longer use orchis-theme so it can be removed if no one else wants to pick it up.
3 PRs have been created for themes that no longer depend on gtk-engine-murrine and still have at least one user :)
If you have a moment, any help with the reviews would be greatly appreciated!
Hi folks, this PR removes quite a lot of good themes most of which also support gtk3 and some even gtk4. For instance, I use adapta-gtk-theme, I don't have any gtk2 app on my system but the theme served just fine for gtk3 apps and adapta-kde-theme continues to serve for Qt apps. It seems gtk-engine-murrine isn't even used to build themes, it's just in propagatedUserEnvPkgs and it could have been just removed from there in all themes instead of removing themes thmeselves.
@ilya-fedin see #548594 for adapta-gtk-theme.
I would ask for a revert, this is just nuts to kill so many themes when maintainers are only mentioned and not even asked for a proper review.
The GTK2 removal is nowhere near to be done, so this is not a blocker and should be done properly! Not a single maintainer approved this!
You left maintainers and users only 8 days to respond!
If there have been any GTK 3 themes removed by accident, please don't freak out - nobody wants to ruin your day on purpose. We can open up re-init PRs, just point out which ones were removed by accident or (better) open a PR yourself.
I opened a place to discuss potential future policy for this sort of thing at https://github.com/NixOS/nixpkgs/issues/548704; it seems to not have gotten any attention. @FlorianFranzen (and, of course, anyone else), if you've got any ideas for specific policies, I'd encourage you to comment them there.
The GTK2 removal is nowhere near to be done, so this is not a blocker and should be done properly!
And it would never be done if every single component that needed to be removed had a person blocking its removal on the basis that they like it so it should be removed last. That would be a deadlock.
I miss the materia-theme :/
Consider re-adding the package without gtk-engine-murrine. Feel free to request me for review.
I miss the materia-theme :/
Consider re-adding the package without gtk-engine-murrine. Feel free to request me for review.
Created a PR: https://github.com/NixOS/nixpkgs/pull/556957
Alright, I did as you requested and brought back all the GTK4 themes that were somewhat popular and are still maintained.
There are also a bunch of GTK3 themes that you deleted, but as evident by the fact that they are GTK3 only, these have not seen any recent activity. If there is any interest, I can return these as well once reviewers have made it through the current onslaught of packages.
I am still pretty taken by how careless this was, only a handful of the themes removed were actually GTK2 only. I am sure there would have been a better solution, e.g. it would have been easy enough to check the derivation output as GTK version compatibility can be identified by path.
@mweinelt Seems you have merge privileges and are familiar with the issue. All of the themes added in the last wave now have at least one review, would be great if you could take a look.
The themes I manage also needs gtk-engine-murrine removed, but I am in the process of migrating my dotfiles to guix and therefore I have to ask someone to manage that for me for the time being.