From 5f987f22e3215003921d807eb1d890117a9110a8 Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Tue, 10 Feb 2026 03:18:24 +0200 Subject: [PATCH] glib: move overrides to package.nix Move the dbus, shared-mime-info, and desktop-file-utils overrides into package.nix and remove the all-packages.nix entry The glib-untested pattern is kept to break dependency cycles: these packages depend on glib, so using them directly in nativeCheckInputs would cause errors when building glib.tests.withChecks. --- pkgs/by-name/gl/glib/package.nix | 16 ++++++++++++---- pkgs/top-level/all-packages.nix | 13 ------------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/pkgs/by-name/gl/glib/package.nix b/pkgs/by-name/gl/glib/package.nix index 887d6617d8ef8..430755541a164 100644 --- a/pkgs/by-name/gl/glib/package.nix +++ b/pkgs/by-name/gl/glib/package.nix @@ -27,6 +27,7 @@ buildPackages, # this is just for tests (not in the closure of any regular package) + glib, dbus, tzdata, desktop-file-utils, @@ -45,6 +46,13 @@ assert stdenv.hostPlatform.isLinux -> util-linuxMinimal != null; let + glib-untested = glib.overrideAttrs { doCheck = false; }; + # break dependency cycles + # these things are only used for tests, they don't get into the closure + dbus' = dbus.override { enableSystemd = false; }; + shared-mime-info' = shared-mime-info.override { glib = glib-untested; }; + desktop-file-utils' = desktop-file-utils.override { glib = glib-untested; }; + gobject-introspection' = buildPackages.gobject-introspection.override { propagateFullGlib = false; # Avoid introducing cairo, which enables gobjectSupport by default. @@ -213,8 +221,8 @@ stdenv.mkDerivation (finalAttrs: { nativeCheckInputs = [ tzdata - desktop-file-utils - shared-mime-info + desktop-file-utils' + shared-mime-info' ]; mesonFlags = [ @@ -315,8 +323,8 @@ stdenv.mkDerivation (finalAttrs: { export XDG_CACHE_HOME="$TMP" export XDG_RUNTIME_HOME="$TMP" export HOME="$TMP" - export XDG_DATA_DIRS="${desktop-file-utils}/share:${shared-mime-info}/share" - export G_TEST_DBUS_DAEMON="${dbus}/bin/dbus-daemon" + export XDG_DATA_DIRS="${desktop-file-utils'}/share:${shared-mime-info'}/share" + export G_TEST_DBUS_DAEMON="${dbus'}/bin/dbus-daemon" # pkg_config_tests expects a PKG_CONFIG_PATH that points to meson-private, wrapped pkg-config # tries to be clever and picks up the wrong glib at the end. diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fa357ead5f9bc..7dc7b882900b9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6824,19 +6824,6 @@ with pkgs; grantlee = libsForQt5.callPackage ../development/libraries/grantlee { }; - glib = callPackage ../by-name/gl/glib/package.nix ( - let - glib-untested = glib.overrideAttrs { doCheck = false; }; - in - { - # break dependency cycles - # these things are only used for tests, they don't get into the closure - shared-mime-info = shared-mime-info.override { glib = glib-untested; }; - desktop-file-utils = desktop-file-utils.override { glib = glib-untested; }; - dbus = dbus.override { enableSystemd = false; }; - } - ); - glirc = haskell.lib.compose.justStaticExecutables haskellPackages.glirc; # Not moved to aliases while we decide if we should split the package again.