From 404177e8da440f90a930eab17e2b5c6b4e24ade5 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Dec 2025 17:37:55 +0800 Subject: [PATCH 1/8] xfce.libxfce4windowing: Move away from mkXfceDerivation To reduce the diff when build system change comes. mkXfceDerivation is generally pointless with meson. --- .../xfce/core/libxfce4windowing/default.nix | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/pkgs/desktops/xfce/core/libxfce4windowing/default.nix b/pkgs/desktops/xfce/core/libxfce4windowing/default.nix index 2b08e334a79d..8e82630e099f 100644 --- a/pkgs/desktops/xfce/core/libxfce4windowing/default.nix +++ b/pkgs/desktops/xfce/core/libxfce4windowing/default.nix @@ -1,9 +1,12 @@ { stdenv, lib, - mkXfceDerivation, + fetchFromGitLab, + gettext, + pkg-config, python3, wayland-scanner, + xfce4-dev-tools, glib, gtk3, libdisplay-info, @@ -18,18 +21,32 @@ && stdenv.hostPlatform.emulatorAvailable buildPackages, buildPackages, gobject-introspection, + gitUpdater, }: -mkXfceDerivation { - category = "xfce"; +stdenv.mkDerivation (finalAttrs: { pname = "libxfce4windowing"; version = "4.20.4"; - sha256 = "sha256-8iLkljuGyJ4giVN5yuOFuTZsrdr8U3avTS/1aRSpaxc="; + outputs = [ + "out" + "dev" + ]; + + src = fetchFromGitLab { + domain = "gitlab.xfce.org"; + owner = "xfce"; + repo = "libxfce4windowing"; + tag = "libxfce4windowing-${finalAttrs.version}"; + hash = "sha256-8iLkljuGyJ4giVN5yuOFuTZsrdr8U3avTS/1aRSpaxc="; + }; nativeBuildInputs = [ + gettext + pkg-config python3 wayland-scanner + xfce4-dev-tools ] ++ lib.optionals withIntrospection [ gobject-introspection @@ -51,9 +68,19 @@ mkXfceDerivation { patchShebangs xdt-gen-visibility ''; + configureFlags = [ "--enable-maintainer-mode" ]; + enableParallelBuilding = true; + + passthru.updateScript = gitUpdater { + rev-prefix = "libxfce4windowing-"; + odd-unstable = true; + }; + meta = { description = "Windowing concept abstraction library for X11 and Wayland"; + homepage = "https://gitlab.xfce.org/xfce/libxfce4windowing"; license = lib.licenses.lgpl21Plus; + platforms = lib.platforms.linux; teams = [ lib.teams.xfce ]; }; -} +}) From cb6bb0aa45c047a4abbde8f649f80388945f4c0e Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Dec 2025 17:51:59 +0800 Subject: [PATCH 2/8] xfce.thunar: Enable introspection conditionally Assuming this is a fallout from efbd153c406e00dd3f300e2a91c686509c6896d5. --- pkgs/desktops/xfce/core/thunar/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/desktops/xfce/core/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix index 777a87e487cf..23a09c001a41 100644 --- a/pkgs/desktops/xfce/core/thunar/default.nix +++ b/pkgs/desktops/xfce/core/thunar/default.nix @@ -16,7 +16,10 @@ pcre2, xfce4-panel, xfconf, - withIntrospection ? false, + withIntrospection ? + lib.meta.availableOn stdenv.hostPlatform gobject-introspection + && stdenv.hostPlatform.emulatorAvailable buildPackages, + buildPackages, gobject-introspection, }: From a95f41cad047ec00c21097b50dac07b6bfa8ca0b Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Dec 2025 21:17:52 +0800 Subject: [PATCH 3/8] xfce.thunar: Move away from mkXfceDerivation To reduce the diff when build system change comes. mkXfceDerivation is generally pointless with meson. --- pkgs/desktops/xfce/core/thunar/default.nix | 44 +++++++++++++++++++--- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/pkgs/desktops/xfce/core/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix index 23a09c001a41..acb8c43afd8a 100644 --- a/pkgs/desktops/xfce/core/thunar/default.nix +++ b/pkgs/desktops/xfce/core/thunar/default.nix @@ -1,8 +1,9 @@ { stdenv, - mkXfceDerivation, lib, + fetchFromGitLab, docbook_xsl, + gettext, exo, gdk-pixbuf, gtk3, @@ -14,25 +15,43 @@ libxfce4util, libxslt, pcre2, + pkg-config, + xfce4-dev-tools, xfce4-panel, xfconf, + wrapGAppsHook3, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages, buildPackages, gobject-introspection, + gitUpdater, }: -mkXfceDerivation { - category = "xfce"; +stdenv.mkDerivation (finalAttrs: { pname = "thunar"; version = "4.20.6"; - sha256 = "sha256-Ll1mJEkkxYGASWQ2z7GRiubNjggqeHXzgGSXQK+10qs="; + outputs = [ + "out" + "dev" + ]; + + src = fetchFromGitLab { + domain = "gitlab.xfce.org"; + owner = "xfce"; + repo = "thunar"; + tag = "thunar-${finalAttrs.version}"; + hash = "sha256-Ll1mJEkkxYGASWQ2z7GRiubNjggqeHXzgGSXQK+10qs="; + }; nativeBuildInputs = [ docbook_xsl + gettext libxslt + pkg-config + xfce4-dev-tools + wrapGAppsHook3 ] ++ lib.optionals withIntrospection [ gobject-introspection @@ -53,7 +72,12 @@ mkXfceDerivation { xfconf ]; - configureFlags = [ "--with-custom-thunarx-dirs-enabled" ]; + configureFlags = [ + "--enable-maintainer-mode" + "--with-custom-thunarx-dirs-enabled" + ]; + + enableParallelBuilding = true; # the desktop file … is in an insecure location» # which pops up when invoking desktop files that are @@ -72,9 +96,17 @@ mkXfceDerivation { ) ''; + passthru.updateScript = gitUpdater { + rev-prefix = "thunar-"; + odd-unstable = true; + }; + meta = { description = "Xfce file manager"; + homepage = "https://gitlab.xfce.org/xfce/thunar"; + license = lib.licenses.gpl2Plus; mainProgram = "thunar"; + platforms = lib.platforms.linux; teams = [ lib.teams.xfce ]; }; -} +}) From ecad8695e85d7f3b97f1b92ac369bd61941e0cec Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Dec 2025 21:23:06 +0800 Subject: [PATCH 4/8] xfce.thunar-volman: Move away from mkXfceDerivation To reduce the diff when build system change comes. mkXfceDerivation is generally pointless with meson. --- .../xfce/core/thunar-volman/default.nix | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/pkgs/desktops/xfce/core/thunar-volman/default.nix b/pkgs/desktops/xfce/core/thunar-volman/default.nix index 42eeaba2aec1..777f845b3de1 100644 --- a/pkgs/desktops/xfce/core/thunar-volman/default.nix +++ b/pkgs/desktops/xfce/core/thunar-volman/default.nix @@ -1,19 +1,39 @@ { + stdenv, lib, - mkXfceDerivation, + fetchFromGitLab, + gettext, + pkg-config, + xfce4-dev-tools, + wrapGAppsHook3, exo, gtk3, libgudev, libxfce4ui, libxfce4util, xfconf, + gitUpdater, }: -mkXfceDerivation { - category = "xfce"; +stdenv.mkDerivation (finalAttrs: { pname = "thunar-volman"; version = "4.20.0"; + src = fetchFromGitLab { + domain = "gitlab.xfce.org"; + owner = "xfce"; + repo = "thunar-volman"; + tag = "thunar-volman-${finalAttrs.version}"; + hash = "sha256-XIVs/vRwy3QJQW/U7eLBvGdzplWlhdxn3f1lyTQsmpE="; + }; + + nativeBuildInputs = [ + gettext + pkg-config + xfce4-dev-tools + wrapGAppsHook3 + ]; + buildInputs = [ exo gtk3 @@ -23,12 +43,20 @@ mkXfceDerivation { xfconf ]; - sha256 = "sha256-XIVs/vRwy3QJQW/U7eLBvGdzplWlhdxn3f1lyTQsmpE="; + configureFlags = [ "--enable-maintainer-mode" ]; + enableParallelBuilding = true; - odd-unstable = false; + passthru.updateScript = gitUpdater { + rev-prefix = "thunar-volman-"; + odd-unstable = true; + }; meta = { description = "Thunar extension for automatic management of removable drives and media"; + homepage = "https://gitlab.xfce.org/xfce/thunar-volman"; + license = lib.licenses.gpl2Plus; + mainProgram = "thunar-volman"; + platforms = lib.platforms.linux; teams = [ lib.teams.xfce ]; }; -} +}) From a1f5b23947147fc8c5965305d5c80ace7c6230d7 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Dec 2025 21:28:26 +0800 Subject: [PATCH 5/8] xfce.tumbler: Enable libopenraw support libopenraw is not packaged when the TODO is added. --- pkgs/desktops/xfce/core/tumbler/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/tumbler/default.nix b/pkgs/desktops/xfce/core/tumbler/default.nix index 2817bcfaa319..d5c94785967b 100644 --- a/pkgs/desktops/xfce/core/tumbler/default.nix +++ b/pkgs/desktops/xfce/core/tumbler/default.nix @@ -9,6 +9,7 @@ libgsf, libheif, libjxl, + libopenraw, librsvg, poppler, gst_all_1, @@ -16,8 +17,6 @@ libxfce4util, }: -# TODO: add libopenraw - mkXfceDerivation { category = "xfce"; pname = "tumbler"; @@ -34,6 +33,7 @@ mkXfceDerivation { gst_all_1.gst-plugins-base libgepub # optional EPUB thumbnailer support libgsf + libopenraw poppler # technically the glib binding ]; From 2aaae4955bc86b80b3b55e5817403dc81d2b60cd Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Dec 2025 22:25:51 +0800 Subject: [PATCH 6/8] xfce.tumbler: Move away from mkXfceDerivation To reduce the diff when build system change comes. mkXfceDerivation is generally pointless with meson. --- pkgs/desktops/xfce/core/tumbler/default.nix | 39 ++++++++++++++++++--- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/pkgs/desktops/xfce/core/tumbler/default.nix b/pkgs/desktops/xfce/core/tumbler/default.nix index d5c94785967b..721c7601ef34 100644 --- a/pkgs/desktops/xfce/core/tumbler/default.nix +++ b/pkgs/desktops/xfce/core/tumbler/default.nix @@ -1,6 +1,11 @@ { + stdenv, lib, - mkXfceDerivation, + fetchFromGitLab, + gettext, + pkg-config, + xfce4-dev-tools, + wrapGAppsNoGuiHook, ffmpegthumbnailer, gdk-pixbuf, glib, @@ -15,14 +20,27 @@ gst_all_1, webp-pixbuf-loader, libxfce4util, + gitUpdater, }: -mkXfceDerivation { - category = "xfce"; +stdenv.mkDerivation (finalAttrs: { pname = "tumbler"; version = "4.20.1"; - sha256 = "sha256-p4lAFNvCakqrsDa2FP0xbc/khx6eYqAlHwWkk8yEB7Y="; + src = fetchFromGitLab { + domain = "gitlab.xfce.org"; + owner = "xfce"; + repo = "tumbler"; + tag = "tumbler-${finalAttrs.version}"; + hash = "sha256-p4lAFNvCakqrsDa2FP0xbc/khx6eYqAlHwWkk8yEB7Y="; + }; + + nativeBuildInputs = [ + gettext + pkg-config + xfce4-dev-tools + wrapGAppsNoGuiHook + ]; buildInputs = [ libxfce4util @@ -58,8 +76,19 @@ mkXfceDerivation { wrapGApp $out/lib/tumbler-1/tumblerd ''; + configureFlags = [ "--enable-maintainer-mode" ]; + enableParallelBuilding = true; + + passthru.updateScript = gitUpdater { + rev-prefix = "tumbler-"; + odd-unstable = true; + }; + meta = { description = "D-Bus thumbnailer service"; + homepage = "https://gitlab.xfce.org/xfce/tumbler"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; teams = [ lib.teams.xfce ]; }; -} +}) From a739f1a334459aed236c0ee45233b46e8570bc56 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Dec 2025 22:35:02 +0800 Subject: [PATCH 7/8] xfce.xfce4-appfinder: Move away from mkXfceDerivation To reduce the diff when build system change comes. mkXfceDerivation is generally pointless with meson. --- .../xfce/core/xfce4-appfinder/default.nix | 42 +++++++++++++++---- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix b/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix index 2ebe6fea6c8a..77563a44a736 100644 --- a/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix +++ b/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix @@ -1,22 +1,38 @@ { + stdenv, lib, - mkXfceDerivation, - exo, + fetchFromGitLab, + gettext, + pkg-config, + xfce4-dev-tools, + wrapGAppsHook3, garcon, gtk3, libxfce4util, libxfce4ui, xfconf, + gitUpdater, }: -mkXfceDerivation { - category = "xfce"; +stdenv.mkDerivation (finalAttrs: { pname = "xfce4-appfinder"; version = "4.20.0"; - sha256 = "sha256-HovQnkfv5BOsRPowgMkMEWQmESkivVK0Xb7I15ZaOMc="; + src = fetchFromGitLab { + domain = "gitlab.xfce.org"; + owner = "xfce"; + repo = "xfce4-appfinder"; + tag = "xfce4-appfinder-${finalAttrs.version}"; + hash = "sha256-HovQnkfv5BOsRPowgMkMEWQmESkivVK0Xb7I15ZaOMc="; + }; + + nativeBuildInputs = [ + gettext + pkg-config + xfce4-dev-tools + wrapGAppsHook3 + ]; - nativeBuildInputs = [ exo ]; buildInputs = [ garcon gtk3 @@ -25,8 +41,20 @@ mkXfceDerivation { xfconf ]; + configureFlags = [ "--enable-maintainer-mode" ]; + enableParallelBuilding = true; + + passthru.updateScript = gitUpdater { + rev-prefix = "xfce4-appfinder-"; + odd-unstable = true; + }; + meta = { description = "Appfinder for the Xfce4 Desktop Environment"; + homepage = "https://gitlab.xfce.org/xfce/xfce4-appfinder"; + license = lib.licenses.gpl2Plus; + mainProgram = "xfce4-appfinder"; + platforms = lib.platforms.linux; teams = [ lib.teams.xfce ]; }; -} +}) From 32abe8d23f0164e56c2f06c862c6e280968e96dc Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Dec 2025 22:39:25 +0800 Subject: [PATCH 8/8] xfce.xfce4-panel: Move away from mkXfceDerivation To reduce the diff when build system change comes. mkXfceDerivation is generally pointless with meson. --- .../xfce/core/xfce4-panel/default.nix | 41 ++++++++++++++++--- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfce4-panel/default.nix b/pkgs/desktops/xfce/core/xfce4-panel/default.nix index d7873ab66722..fe8cfc0a1b33 100644 --- a/pkgs/desktops/xfce/core/xfce4-panel/default.nix +++ b/pkgs/desktops/xfce/core/xfce4-panel/default.nix @@ -1,8 +1,12 @@ { stdenv, lib, - mkXfceDerivation, + fetchFromGitLab, + gettext, + pkg-config, python3, + xfce4-dev-tools, + wrapGAppsHook3, cairo, exo, garcon, @@ -22,17 +26,32 @@ buildPackages, gobject-introspection, vala, + gitUpdater, }: -mkXfceDerivation { - category = "xfce"; +stdenv.mkDerivation (finalAttrs: { pname = "xfce4-panel"; version = "4.20.5"; - sha256 = "sha256-Jftj+EmmsKfK9jk8rj5uMjpteFUHFgOpoEol8JReDNI="; + outputs = [ + "out" + "dev" + ]; + + src = fetchFromGitLab { + domain = "gitlab.xfce.org"; + owner = "xfce"; + repo = "xfce4-panel"; + tag = "xfce4-panel-${finalAttrs.version}"; + hash = "sha256-Jftj+EmmsKfK9jk8rj5uMjpteFUHFgOpoEol8JReDNI="; + }; nativeBuildInputs = [ + gettext + pkg-config python3 + xfce4-dev-tools + wrapGAppsHook3 ] ++ lib.optionals withIntrospection [ gobject-introspection @@ -65,8 +84,20 @@ mkXfceDerivation { --replace-fail "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" ''; + configureFlags = [ "--enable-maintainer-mode" ]; + enableParallelBuilding = true; + + passthru.updateScript = gitUpdater { + rev-prefix = "xfce4-panel-"; + odd-unstable = true; + }; + meta = { description = "Panel for the Xfce desktop environment"; + homepage = "https://gitlab.xfce.org/xfce/xfce4-panel"; + license = lib.licenses.gpl2Plus; + mainProgram = "xfce4-panel"; + platforms = lib.platforms.linux; teams = [ lib.teams.xfce ]; }; -} +})