Maintainer Mode
Sign in with GitHub
Work in progress. Maintainer Mode changes every day: pages, numbers and links can change or break. Tell us what is wrong or missing.

gtk-engine-murrine: drop with all themes #544598

merged mweinelt wants to merge into master · opened 2mo ago
About
State
merged
Author
mweinelt member
Base
master
Labels
8.has: clean-up10.rebuild-linux: 11-10010.rebuild-darwin: 012.approvals: 26.topic: mate12.approved-by: package-maintainer6.topic: COSMIC
Age
2mo ago, merged 2mo ago by mweinelt
Size
+66 −4571 in 72 files
AI use
none disclosed in the last commit or the description
In Maintainer Mode
Queue
in no queue
Why not ready
it is merged
Approved head
none
Credit earned
dramforever · review 2mo ago · 0.07
amadaluzia · review 2mo ago · 0.07
moni-dz · review 2mo ago · 0.07
What it touches
maintainers romildo, emilylange
arc-theme risk 2 2 0
maintainers chvp, romildo
dracula-theme risk 2 1 0
maintainers alexarice
maintainers imnotpoz
flat-remix-gtk risk 2 1 0
maintainers FlorianFranzen
greybird risk 2 0 0
maintainers bobby285271, romildo, muscaln · teams Xfce
maintainers romildo
mate-themes risk 2 0 0
maintainers bobby285271, romildo · teams MATE
materia-theme risk 2 0 0
maintainers marrobHD
maintainers marrobHD
mint-x-icons risk 2 0 0
maintainers bobby285271, mkg20001 · teams Cinnamon
nordic risk 2 2 0
maintainers romildo
Description

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

Review checklist from CONTRIBUTING.md and pkgs/README.md
  • The commit messages follow the nixpkgs format, like hello: 2.12 -> 2.13 or nixos/nginx: fix the test. Guide
  • meta is complete: description, homepage, license, maintainers, mainProgram. Guide
  • Sources are fixed-output and pinned by a hash. No lib.fakeHash is left. Guide
  • A command-line tool has versionCheckHook, or another check that runs it. Guide
  • meta.platforms matches 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

The diff could not be read: this server reads GitHub only for people who sign in (sign in). Read it on GitHub

Reviews and comments

dramforever commented on pkgs/top-level/aliases.nix:275 2mo ago
  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"

mweinelt commented 2mo ago

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>
Pandapip1 commented 2mo ago

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.

Pandapip1 commented 2mo ago

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-murrine was 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.

gvolpe commented 2mo ago

juno-theme can probably be removed from this PR (https://github.com/NixOS/nixpkgs/pull/544668), thanks for the ping :)

amadaluzia reviewed approved 2mo ago

I honestly don't mind the removal of gruvbox-material-gtk-theme. Thanks for the heads up.

moni-dz reviewed approved 2mo ago
fufexan commented 2mo ago

I no longer use orchis-theme so it can be removed if no one else wants to pick it up.

qweered commented 2mo ago

Needs one more rebase 😉

Mershl commented 2mo ago

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.

Pandapip1 commented 2mo ago

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.

marrobHD commented 7w ago

I miss the materia-theme :/

Pandapip1 commented 7w ago

I miss the materia-theme :/

Consider re-adding the package without gtk-engine-murrine. Feel free to request me for review.

marrobHD commented 7w ago

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.