Merge pull request #289062 from bobby285271/upd/mate

MATE 1.28
This commit is contained in:
Bobby Rong 2024-03-16 21:38:24 +08:00 committed by GitHub
commit 3b48b3aaa9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
50 changed files with 717 additions and 456 deletions

View File

@ -320,7 +320,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `addDriverRunpath` has been added to facilitate the deprecation of the old `addOpenGLRunpath` setuphook. This change is motivated by the evolution of the setuphook to include all hardware acceleration.
- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release.
- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
- MATE has been updated to 1.28.
- To properly support panel plugins built with Wayland (in-process) support, we are introducing `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
- Similarly, please use `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
- To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early stage and introduces a new set of Wayfire closure. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM for display manager.
- New `boot.loader.systemd-boot.xbootldrMountPoint` allows setting up a separate [XBOOTLDR partition](https://uapi-group.org/specifications/specs/boot_loader_specification/) to store boot files. Useful on systems with a small EFI System partition that cannot be easily repartitioned.

View File

@ -20,6 +20,22 @@ in
};
debug = mkEnableOption (lib.mdDoc "mate-session debug messages");
extraPanelApplets = mkOption {
default = [ ];
example = literalExpression "with pkgs.mate; [ mate-applets ]";
type = types.listOf types.package;
description = lib.mdDoc "Extra applets to add to mate-panel.";
};
extraCajaExtensions = mkOption {
default = [ ];
example = lib.literalExpression "with pkgs.mate; [ caja-extensions ]";
type = types.listOf types.package;
description = lib.mdDoc "Extra extensions to add to caja.";
};
enableWaylandSession = mkEnableOption (lib.mdDoc "MATE Wayland session");
};
environment.mate.excludePackages = mkOption {
@ -31,55 +47,63 @@ in
};
config = mkIf cfg.enable {
config = mkMerge [
(mkIf (cfg.enable || cfg.enableWaylandSession) {
services.xserver.displayManager.sessionPackages = [
pkgs.mate.mate-session-manager
];
services.xserver.displayManager.sessionPackages = [
pkgs.mate.mate-session-manager
];
# Debugging
environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
# Let caja find extensions
environment.sessionVariables.CAJA_EXTENSION_DIRS = [ "${config.system.path}/lib/caja/extensions-2.0" ];
environment.systemPackages = utils.removePackagesByName
(pkgs.mate.basePackages ++
pkgs.mate.extraPackages ++
[
(pkgs.mate.caja-with-extensions.override {
extensions = cfg.extraCajaExtensions;
})
(pkgs.mate.mate-panel-with-applets.override {
applets = cfg.extraPanelApplets;
})
pkgs.desktop-file-utils
pkgs.glib
pkgs.gtk3.out
pkgs.shared-mime-info
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
pkgs.yelp # for 'Contents' in 'Help' menus
])
config.environment.mate.excludePackages;
# Let mate-panel find applets
environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets";
environment.sessionVariables."MATE_PANEL_EXTRA_MODULES" = "${config.system.path}/lib/mate-panel/applets";
programs.dconf.enable = true;
# Shell integration for VTE terminals
programs.bash.vteIntegration = mkDefault true;
programs.zsh.vteIntegration = mkDefault true;
# Debugging
environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
# Mate uses this for printing
programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
environment.systemPackages = utils.removePackagesByName
(pkgs.mate.basePackages ++
pkgs.mate.extraPackages ++
[
pkgs.desktop-file-utils
pkgs.glib
pkgs.gtk3.out
pkgs.shared-mime-info
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
pkgs.yelp # for 'Contents' in 'Help' menus
])
config.environment.mate.excludePackages;
services.gnome.at-spi2-core.enable = true;
services.gnome.gnome-keyring.enable = true;
services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
services.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true;
programs.dconf.enable = true;
# Shell integration for VTE terminals
programs.bash.vteIntegration = mkDefault true;
programs.zsh.vteIntegration = mkDefault true;
security.pam.services.mate-screensaver.unixAuth = true;
# Mate uses this for printing
programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ];
services.gnome.at-spi2-core.enable = true;
services.gnome.gnome-keyring.enable = true;
services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
services.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true;
environment.pathsToLink = [ "/share" ];
})
(mkIf cfg.enableWaylandSession {
programs.wayfire.enable = true;
programs.wayfire.plugins = [ pkgs.wayfirePlugins.firedecor ];
security.pam.services.mate-screensaver.unixAuth = true;
xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ];
environment.pathsToLink = [ "/share" ];
};
environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${pkgs.mate.mate-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
environment.systemPackages = [ pkgs.mate.mate-wayland-session ];
services.xserver.displayManager.sessionPackages = [ pkgs.mate.mate-wayland-session ];
})
];
}

View File

@ -513,6 +513,7 @@ in {
mastodon = discoverTests (import ./web-apps/mastodon { inherit handleTestOn; });
pixelfed = discoverTests (import ./web-apps/pixelfed { inherit handleTestOn; });
mate = handleTest ./mate.nix {};
mate-wayland = handleTest ./mate-wayland.nix {};
matter-server = handleTest ./matter-server.nix {};
matomo = handleTest ./matomo.nix {};
matrix-appservice-irc = handleTest ./matrix/appservice-irc.nix {};

View File

@ -0,0 +1,63 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "mate-wayland";
meta.maintainers = lib.teams.mate.members;
nodes.machine = { ... }: {
imports = [
./common/user-account.nix
];
services.xserver.enable = true;
services.xserver.displayManager = {
sddm.enable = true; # https://github.com/canonical/lightdm/issues/63
sddm.wayland.enable = true;
defaultSession = "MATE";
autoLogin = {
enable = true;
user = "alice";
};
};
services.xserver.desktopManager.mate.enableWaylandSession = true;
hardware.pulseaudio.enable = true;
# Need to switch to a different GPU driver than the default one (-vga std) so that wayfire can launch:
virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
};
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-1")
with subtest("Check if MATE session components actually start"):
for i in ["wayfire", "mate-panel", "mate-wayland.sh", "mate-wayland-components.sh"]:
machine.wait_until_succeeds(f"pgrep -f {i}")
machine.wait_for_text('(Applications|Places|System)')
# It is expected that this applet doesn't work in Wayland
machine.wait_for_text('WorkspaceSwitcherApplet')
with subtest("Check if various environment variables are set"):
cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ"
machine.succeed(f"{cmd} | grep 'XDG_SESSION_TYPE' | grep 'wayland'")
machine.succeed(f"{cmd} | grep 'XDG_SESSION_DESKTOP' | grep 'MATE'")
machine.succeed(f"{cmd} | grep 'MATE_PANEL_APPLETS_DIR' | grep '${pkgs.mate.mate-panel-with-applets.pname}'")
with subtest("Check if Wayfire config is properly configured"):
for i in ["button_style = mate", "firedecor", "mate-wayland-components.sh"]:
machine.wait_until_succeeds(f"cat /home/${user.name}/.config/mate/wayfire.ini | grep '{i}'")
with subtest("Check if Wayfire has ever coredumped"):
machine.fail("coredumpctl --json=short | grep wayfire")
machine.sleep(10)
machine.screenshot("screen")
'';
})

View File

@ -54,6 +54,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine.wait_for_text('(Applications|Places|System)')
machine.wait_for_text('(Computer|Home|Trash)')
with subtest("Check if various environment variables are set"):
machine.succeed("xargs --null --max-args=1 echo < /proc/$(pgrep -xf marco)/environ | grep 'XDG_CURRENT_DESKTOP' | grep 'MATE'")
# From mate-panel-with-applets packaging
machine.succeed("xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ | grep 'MATE_PANEL_APPLETS_DIR' | grep '${pkgs.mate.mate-panel-with-applets.pname}'")
with subtest("Check if applets are built with in-process support"):
# This is needed for Wayland support
machine.fail("pgrep -fa clock-applet")
with subtest("Lock the screen"):
machine.wait_until_succeeds("su - ${user.name} -c '${env} mate-screensaver-command -q' | grep 'The screensaver is inactive'")
machine.succeed("su - ${user.name} -c '${env} mate-screensaver-command -l >&2 &'")

View File

@ -0,0 +1,73 @@
{ stdenv
, lib
, fetchFromGitHub
, meson
, ninja
, pkg-config
, boost
, cairo
, glib
, libGL
, libinput
, librsvg
, libxkbcommon
, pango
, udev
, wayfire
, wayland
, wf-config
, xcbutilwm
, mate
}:
stdenv.mkDerivation (finalAttrs: {
pname = "firedecor";
version = "2023-10-23";
src = fetchFromGitHub {
owner = "mntmn";
repo = "Firedecor";
rev = finalAttrs.version;
hash = "sha256-7or8HkmIZnLpXEZzUhJ3u8SIPfIQFgn32Ju/5OzK06Y=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
boost
cairo
glib
libGL
libinput
librsvg
libxkbcommon
pango
udev
wayfire
wayland
wf-config
xcbutilwm
];
postPatch = ''
substituteInPlace src/firedecor-theme.cpp \
--replace-fail "/usr/share" "/run/current-system/sw/share"
'';
env = {
PKG_CONFIG_WAYFIRE_PLUGINDIR = "${placeholder "out"}/lib/wayfire";
PKG_CONFIG_WAYFIRE_METADATADIR = "${placeholder "out"}/share/wayfire/metadata";
};
meta = with lib; {
homepage = "https://github.com/mntmn/Firedecor";
description = "Advanced window decoration plugin for the Wayfire window manager";
license = licenses.mit;
inherit (mate.mate-wayland-session.meta) maintainers;
inherit (wayfire.meta) platforms;
};
})

View File

@ -4,6 +4,7 @@ lib.makeScope pkgs.newScope (self:
let
inherit (self) callPackage;
in {
firedecor = callPackage ./firedecor.nix { };
wayfire-plugins-extra = callPackage ./wayfire-plugins-extra.nix { };
wcm = callPackage ./wcm.nix { };
wf-shell = callPackage ./wf-shell.nix { };

View File

@ -3,16 +3,17 @@
, fetchurl
, pkg-config
, gettext
, caja
, gtk3
, glib
, libxml2
, libarchive
, libsecret
, poppler
, mate-desktop
, itstool
, hicolor-icon-theme
, texlive
, mate
, wrapGAppsHook
, enableEpub ? true
, webkitgtk_4_1
@ -28,11 +29,11 @@
stdenv.mkDerivation rec {
pname = "atril";
version = "1.26.2";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "wwW51fVxP0Jiau4DggkTA0IrPXGlbd1lkyzNsjx86SY=";
sha256 = "ztRyX26bccTqY2dr/DzDvgnSnboIqnp6uXlk4LQ1UWI=";
};
nativeBuildInputs = [
@ -42,6 +43,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
caja
gtk3
glib
itstool
@ -49,8 +51,7 @@ stdenv.mkDerivation rec {
libsecret
libxml2
poppler
mate.caja
mate.mate-desktop
mate-desktop
hicolor-icon-theme
texlive.bin.core # for synctex, used by the pdf back-end
]

View File

@ -5,8 +5,8 @@
, pkg-config
, gobject-introspection
, gdk-pixbuf
, caja
, gtk3
, mate
, python3
, dropbox
, mateUpdateScript
@ -17,11 +17,11 @@ let
in
stdenv.mkDerivation rec {
pname = "caja-dropbox";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "16w4r0zjps12lmzwiwpb9qnmbvd0p391q97296sxa8k88b1x14wn";
sha256 = "t0w4qZQlS9PPfLxxK8LsdRagypQqpleFJs29aqYgGWM=";
};
patches = [
@ -44,8 +44,8 @@ stdenv.mkDerivation rec {
];
buildInputs = [
caja
gtk3
mate.caja
python3
];

View File

@ -3,23 +3,24 @@
, fetchurl
, pkg-config
, gettext
, caja
, glib
, gst_all_1
, gtk3
, gupnp
, mate
, imagemagick
, mate-desktop
, wrapGAppsHook
, mateUpdateScript
, glib
, substituteAll
}:
stdenv.mkDerivation rec {
pname = "caja-extensions";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "WJwZ4/oQJC1iOaXMuVhVmENqVuvpTS6ypQtZUMzh1SA=";
sha256 = "0phsXgdAg1/icc+9WCPu6vAyka8XYyA/RwCruBCeMXU=";
};
nativeBuildInputs = [
@ -29,31 +30,20 @@ stdenv.mkDerivation rec {
];
buildInputs = [
caja
glib
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gtk3
gupnp
mate.caja
mate.mate-desktop
imagemagick
];
patches = [
(substituteAll {
src = ./hardcode-gsettings.patch;
caja_gsetttings_path = glib.getSchemaPath mate.caja;
desktop_gsetttings_path = glib.getSchemaPath mate.mate-desktop;
})
mate-desktop
];
postPatch = ''
substituteInPlace open-terminal/caja-open-terminal.c --subst-var-by \
GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
substituteInPlace sendto/caja-sendto-command.c --subst-var-by \
GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
substituteInPlace wallpaper/caja-wallpaper-extension.c --subst-var-by \
GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
for f in image-converter/caja-image-{resizer,rotator}.c; do
substituteInPlace $f --replace "/usr/bin/convert" "${imagemagick}/bin/convert"
substituteInPlace $f --replace-fail 'argv[0] = "convert"' 'argv[0] = "${imagemagick}/bin/convert"'
done
'';

View File

@ -1,169 +0,0 @@
diff --git a/open-terminal/caja-open-terminal.c b/open-terminal/caja-open-terminal.c
index e14a9bf..691afab 100644
--- a/open-terminal/caja-open-terminal.c
+++ b/open-terminal/caja-open-terminal.c
@@ -135,8 +135,18 @@ desktop_opens_home_dir (void)
{
gboolean result;
GSettings* settings;
-
- settings = g_settings_new (COT_SCHEMA);
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
+
+ schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ COT_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
result = g_settings_get_boolean (settings, COT_DESKTOP_KEY);
g_object_unref (settings);
return result;
@@ -147,8 +157,18 @@ set_desktop_opens_home_dir (gboolean val)
{
gboolean result;
GSettings* settings;
-
- settings = g_settings_new (COT_SCHEMA);
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
+
+ schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ COT_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
result = g_settings_set_boolean (settings, COT_DESKTOP_KEY, val);
g_object_unref (settings);
return result;
@@ -159,8 +179,18 @@ desktop_is_home_dir (void)
{
gboolean result;
GSettings* settings;
-
- settings = g_settings_new (CAJA_SCHEMA);
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
+
+ schema_source = g_settings_schema_source_new_from_directory("@caja_gsetttings_path@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ CAJA_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
result = g_settings_get_boolean (settings, CAJA_DESKTOP_KEY);
g_object_unref (settings);
return result;
@@ -171,8 +201,18 @@ default_terminal_application (void)
{
gchar *result;
GSettings* settings;
-
- settings = g_settings_new (TERM_SCHEMA);
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
+
+ schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ TERM_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
result = g_settings_get_string (settings, TERM_EXEC_KEY);
g_object_unref (settings);
@@ -189,8 +229,18 @@ set_default_terminal_application (const gchar* exec)
{
gboolean result;
GSettings* settings;
-
- settings = g_settings_new (TERM_SCHEMA);
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
+
+ schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ TERM_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
result = g_settings_set_string (settings, TERM_EXEC_KEY, exec);
g_object_unref (settings);
return result;
diff --git a/sendto/caja-sendto-command.c b/sendto/caja-sendto-command.c
index 8181db6..579dc81 100644
--- a/sendto/caja-sendto-command.c
+++ b/sendto/caja-sendto-command.c
@@ -801,6 +801,8 @@ caja_sendto_init (void)
int main (int argc, char **argv)
{
GOptionContext *context;
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
GError *error = NULL;
#ifdef ENABLE_NLS
@@ -818,7 +820,15 @@ int main (int argc, char **argv)
return 1;
}
- settings = g_settings_new ("org.mate.Caja.Sendto");
+ schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ "org.mate.Caja.Sendto",
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
caja_sendto_init ();
if (caja_sendto_plugin_init () == FALSE) {
GtkWidget *error_dialog;
diff --git a/wallpaper/caja-wallpaper-extension.c b/wallpaper/caja-wallpaper-extension.c
index 3119e9f..4f80c88 100644
--- a/wallpaper/caja-wallpaper-extension.c
+++ b/wallpaper/caja-wallpaper-extension.c
@@ -47,6 +47,8 @@ set_wallpaper_callback (CajaMenuItem *item,
{
GList *files;
GSettings *settings;
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
CajaFileInfo *file;
gchar *uri;
gchar *filename;
@@ -57,7 +59,15 @@ set_wallpaper_callback (CajaMenuItem *item,
uri = caja_file_info_get_uri (file);
filename = g_filename_from_uri(uri, NULL, NULL);
- settings = g_settings_new (WP_SCHEMA);
+ schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ WP_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
g_settings_set_string (settings, WP_FILE_KEY, filename);

View File

@ -1,29 +0,0 @@
{ stdenv
, lib
, makeWrapper
, caja-extensions
, caja
, extensions ? [ caja-extensions ]
, mateUpdateScript
}:
stdenv.mkDerivation {
pname = "${caja.pname}-with-extensions";
version = caja.version;
dontUnpack = true;
nativeBuildInputs = [
makeWrapper
];
inherit caja;
installPhase = ''
mkdir -p $out/bin
makeWrapper $caja/bin/caja $out/bin/caja \
--set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") extensions}
'';
inherit (caja.meta);
}

View File

@ -3,24 +3,26 @@
, fetchurl
, pkg-config
, gettext
, gtk-layer-shell
, gtk3
, libnotify
, libxml2
, libexif
, exempi
, mate
, mate-desktop
, hicolor-icon-theme
, wayland
, wrapGAppsHook
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "caja";
version = "1.26.3";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "gT7fCKNvmV7DwVBBMf+K+70CH24VhmQ/5dztXnPleQ0=";
sha256 = "HjAUzhRVgX7C73TQnv37aDXYo3LtmhbvtZGe97ghlXo=";
};
nativeBuildInputs = [
@ -30,13 +32,15 @@ stdenv.mkDerivation rec {
];
buildInputs = [
gtk-layer-shell
gtk3
libnotify
libxml2
libexif
exempi
mate.mate-desktop
mate-desktop
hicolor-icon-theme
wayland
];
configureFlags = [ "--disable-update-mimedb" ];

View File

@ -0,0 +1,61 @@
{ stdenv
, lib
, glib
, wrapGAppsHook
, xorg
, caja
, cajaExtensions
, extensions ? [ ]
, useDefaultExtensions ? true
}:
let
selectedExtensions = extensions ++ (lib.optionals useDefaultExtensions cajaExtensions);
in
stdenv.mkDerivation {
pname = "${caja.pname}-with-extensions";
version = caja.version;
src = null;
nativeBuildInputs = [
glib
wrapGAppsHook
];
buildInputs = lib.forEach selectedExtensions (x: x.buildInputs) ++ selectedExtensions
++ [ caja ] ++ caja.buildInputs;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
preferLocalBuild = true;
allowSubstitutes = false;
installPhase = ''
runHook preInstall
mkdir -p $out
${xorg.lndir}/bin/lndir -silent ${caja} $out
dbus_service_path="share/dbus-1/services/org.mate.freedesktop.FileManager1.service"
rm -f $out/share/applications/* "$out/$dbus_service_path"
for file in ${caja}/share/applications/*; do
substitute "$file" "$out/share/applications/$(basename $file)" \
--replace-fail "${caja}" "$out"
done
substitute "${caja}/$dbus_service_path" "$out/$dbus_service_path" \
--replace-fail "${caja}" "$out"
runHook postInstall
'';
preFixup = lib.optionalString (selectedExtensions != [ ]) ''
gappsWrapperArgs+=(
--set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") selectedExtensions}
)
'';
inherit (caja.meta);
}

View File

@ -14,7 +14,7 @@ let
caja = callPackage ./caja { };
caja-dropbox = callPackage ./caja-dropbox { };
caja-extensions = callPackage ./caja-extensions { };
caja-with-extensions = callPackage ./caja-with-extensions { };
caja-with-extensions = callPackage ./caja/with-extensions.nix { };
engrampa = callPackage ./engrampa { };
eom = callPackage ./eom { };
libmatekbd = callPackage ./libmatekbd { };
@ -27,6 +27,7 @@ let
mate-common = callPackage ./mate-common { };
mate-control-center = callPackage ./mate-control-center { };
mate-desktop = callPackage ./mate-desktop { };
mate-gsettings-overrides = callPackage ./mate-gsettings-overrides { };
mate-icon-theme = callPackage ./mate-icon-theme { };
mate-icon-theme-faenza = callPackage ./mate-icon-theme-faenza { };
mate-indicator-applet = callPackage ./mate-indicator-applet { };
@ -35,6 +36,7 @@ let
mate-netbook = callPackage ./mate-netbook { };
mate-notification-daemon = callPackage ./mate-notification-daemon { };
mate-panel = callPackage ./mate-panel { };
mate-panel-with-applets = callPackage ./mate-panel/with-applets.nix { };
mate-polkit = callPackage ./mate-polkit { };
mate-power-manager = callPackage ./mate-power-manager { };
mate-sensors-applet = callPackage ./mate-sensors-applet { };
@ -49,12 +51,13 @@ let
mate-user-guide = callPackage ./mate-user-guide { };
mate-user-share = callPackage ./mate-user-share { };
mate-utils = callPackage ./mate-utils { };
mate-wayland-session = callPackage ./mate-wayland-session { };
mozo = callPackage ./mozo { };
pluma = callPackage ./pluma { inherit (pkgs.gnome) adwaita-icon-theme; };
pluma = callPackage ./pluma { };
python-caja = callPackage ./python-caja { };
# Caja and mate-panel are managed in NixOS module.
basePackages = [
caja
libmatekbd
libmatemixer
libmateweather
@ -65,7 +68,6 @@ let
mate-icon-theme
mate-menus
mate-notification-daemon
mate-panel
mate-polkit
mate-session-manager
mate-settings-daemon
@ -75,7 +77,7 @@ let
extraPackages = [
atril
caja-extensions
caja-extensions # for caja-sendto
engrampa
eom
mate-applets
@ -86,7 +88,6 @@ let
mate-netbook
mate-power-manager
mate-screensaver
mate-sensors-applet
mate-system-monitor
mate-terminal
mate-user-guide
@ -96,6 +97,20 @@ let
pluma
];
cajaExtensions = [
caja-extensions
];
panelApplets = [
mate-applets
mate-indicator-applet
mate-netbook
mate-notification-daemon
mate-media
mate-power-manager
mate-sensors-applet
mate-utils
];
};
in lib.makeScope pkgs.newScope packages

View File

@ -5,22 +5,24 @@
, gettext
, itstool
, libxml2
, caja
, gtk3
, mate
, hicolor-icon-theme
, json-glib
, mate-desktop
, wrapGAppsHook
, mateUpdateScript
# can be defaulted to true once engrampa builds with meson (version > 1.27.0)
# can be defaulted to true once switch to meson
, withMagic ? stdenv.buildPlatform.canExecute stdenv.hostPlatform, file
}:
stdenv.mkDerivation rec {
pname = "engrampa";
version = "1.26.2";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "cx9cR7UfNvyMiWUrbnfbT7K0Zjid6ZkMmFUpo9T/iEw=";
sha256 = "nFxMm8+LCO6qjydVONJLTJVQidWK7AMx6JwCuE2FOGo=";
};
nativeBuildInputs = [
@ -32,10 +34,11 @@ stdenv.mkDerivation rec {
];
buildInputs = [
caja
gtk3
mate.caja
hicolor-icon-theme
mate.mate-desktop
json-glib
mate-desktop
] ++ lib.optionals withMagic [
file
];

View File

@ -13,7 +13,7 @@
, libpeas
, shared-mime-info
, gtk3
, mate
, mate-desktop
, hicolor-icon-theme
, wrapGAppsHook
, mateUpdateScript
@ -21,11 +21,11 @@
stdenv.mkDerivation rec {
pname = "eom";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "tSUSKUlPfmxi4J+yEeQzCN9PB0xVG6CiM9ws1oZLmWA=";
sha256 = "mgHKsplaGoxyWMhl6uXxgu1HMMRGcq/cOgfkI+3VOrw=";
};
nativeBuildInputs = [
@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
shared-mime-info
gtk3
libpeas
mate.mate-desktop
mate-desktop
hicolor-icon-theme
];

View File

@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "libmatekbd";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "Y5ONkSUpRe7qiP2DdNEjG9g9As2WXGu6F8GF7bOXvO0=";
sha256 = "XS5YSDwrI9M1A9JMiPi5CijMAYnX5AAbPic6YE9v6A4=";
};
nativeBuildInputs = [

View File

@ -7,6 +7,7 @@
, glib
, alsaSupport ? stdenv.isLinux
, alsa-lib
, udev
, pulseaudioSupport ? config.pulseaudio or true
, libpulseaudio
, ossSupport ? false
@ -15,11 +16,11 @@
stdenv.mkDerivation rec {
pname = "libmatemixer";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "SWD1mmufr4KgHUpLjMJgtIaN2ZHv1Kmxe10KFaHToa4=";
sha256 = "XXO5Ijl/YGiOPJUw61MrzkbDDiYtsbU1L6MsQNhwoMc=";
};
nativeBuildInputs = [
@ -29,9 +30,12 @@ stdenv.mkDerivation rec {
buildInputs = [
glib
]
++ lib.optional alsaSupport alsa-lib
++ lib.optional pulseaudioSupport libpulseaudio;
] ++ lib.optionals alsaSupport [
alsa-lib
udev
] ++ lib.optionals pulseaudioSupport [
libpulseaudio
];
configureFlags = lib.optional ossSupport "--enable-oss";

View File

@ -14,11 +14,11 @@
stdenv.mkDerivation rec {
pname = "libmateweather";
version = "1.26.3";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "XmzSRBiEfLRazxfaW0NacTHLTsKs/2joKPNCob8T70o=";
sha256 = "VUNz3rWzk7nYSydd0spmyaSi0ObskgRPq4qlPjAy0rU=";
};
strictDeps = true;

View File

@ -14,6 +14,7 @@
, gnome
, glib
, gtk3
, mate-desktop
, mate-settings-daemon
, wrapGAppsHook
, mateUpdateScript
@ -21,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "marco";
version = "1.26.2";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "EvGiVP4QcvAwSIRxHgiaVoJ4CgEVk0Au043muUgOB6M=";
sha256 = "JJbl5A7pgM1oSUk6w+D4/Q3si4HGdNqNm6GaV38KwuE=";
};
nativeBuildInputs = [
@ -45,9 +46,15 @@ stdenv.mkDerivation rec {
libstartup_notification
gtk3
gnome.zenity
mate-desktop
mate-settings-daemon
];
postPatch = ''
substituteInPlace src/core/util.c \
--replace-fail 'argvl[i++] = "zenity"' 'argvl[i++] = "${gnome.zenity}/bin/zenity"'
'';
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
enableParallelBuilding = true;

View File

@ -7,7 +7,7 @@
, dbus-glib
, glib
, gtk3
, gtksourceview3
, gtksourceview4
, gucharmap
, libmateweather
, libnl
@ -20,7 +20,6 @@
, polkit
, upower
, wirelesstools
, mate
, hicolor-icon-theme
, wrapGAppsHook
, mateUpdateScript
@ -28,11 +27,11 @@
stdenv.mkDerivation rec {
pname = "mate-applets";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "Orj2HbN23DM85MGHIsY6B/qz6OEnK34OCXrUWXsXwsI=";
sha256 = "G2vva9XTJvudyCj/kQ5LG5KUtGYMMR3ByQMQ/Zw1ZoY=";
};
nativeBuildInputs = [
@ -45,7 +44,7 @@ stdenv.mkDerivation rec {
buildInputs = [
dbus-glib
gtk3
gtksourceview3
gtksourceview4
gucharmap
hicolor-icon-theme
libgtop
@ -61,7 +60,7 @@ stdenv.mkDerivation rec {
wirelesstools
];
configureFlags = [ "--enable-suid=no" ];
configureFlags = [ "--enable-suid=no" "--enable-in-process" ];
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";

View File

@ -1,31 +1,21 @@
{ lib
, stdenv
, stdenvNoCC
, fetchurl
, fetchpatch
, meson
, ninja
, gettext
, mateUpdateScript
}:
stdenv.mkDerivation rec {
stdenvNoCC.mkDerivation rec {
pname = "mate-backgrounds";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0379hngy3ap1r5kmqvmzs9r710k2c9nal2ps3hq765df4ir15j8d";
sha256 = "UNGv0CSGvQesIqWmtu+jAxFI8NSKguSI2QmtVwA6aUM=";
};
patches = [
# Fix build with meson 0.61, can be removed on next update.
# https://github.com/mate-desktop/mate-backgrounds/pull/39
(fetchpatch {
url = "https://github.com/mate-desktop/mate-backgrounds/commit/0096e237d420e6247a75a1c6940a818e309ac2a7.patch";
sha256 = "HEF8VWunFO+NCG18fZA7lbE2l8pc6Z3jcD+rSZ1Jsqg=";
})
];
nativeBuildInputs = [
gettext
meson

View File

@ -14,11 +14,11 @@
stdenv.mkDerivation rec {
pname = "mate-calc";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0mddfh9ixhh60nfgx5kcprcl9liavwqyina11q3pnpfs3n02df3y";
sha256 = "gEsSXR4oZLHnSvgW2psquLGUcrmvl0Q37nNVraXmKPU=";
};
nativeBuildInputs = [

View File

@ -1,16 +1,16 @@
{ lib
, stdenv
, stdenvNoCC
, fetchurl
, mateUpdateScript
}:
stdenv.mkDerivation rec {
stdenvNoCC.mkDerivation rec {
pname = "mate-common";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "014wpfqpqmfkzv81paap4fz15mj1gsyvaxlrfqsp9a3yxw4f7jaf";
sha256 = "QrfCzuJo9x1+HBrU9pvNoOzWVXipZyIYfGt2N40mugo=";
};
enableParallelBuilding = true;

View File

@ -5,17 +5,27 @@
, gettext
, itstool
, libxml2
, accountsservice
, caja
, dbus-glib
, libxklavier
, libcanberra-gtk3
, libgtop
, libmatekbd
, librsvg
, libappindicator-gtk3
, libayatana-appindicator
, glib
, desktop-file-utils
, dconf
, gtk3
, polkit
, mate
, marco
, mate-desktop
, mate-menus
, mate-panel
, mate-settings-daemon
, udisks2
, systemd
, hicolor-icon-theme
, wrapGAppsHook
, mateUpdateScript
@ -23,11 +33,11 @@
stdenv.mkDerivation rec {
pname = "mate-control-center";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "4F9JKjtleqVvxY989xvIyA344lNR/eTbT1I6uNtbVgg=";
sha256 = "6/LHBP1SSNwvmDb/KQKIae8p1QVJB8xhVzS2ODp5FLw=";
};
nativeBuildInputs = [
@ -39,32 +49,41 @@ stdenv.mkDerivation rec {
];
buildInputs = [
accountsservice
libxml2
dbus-glib
libxklavier
libcanberra-gtk3
libgtop
libmatekbd
librsvg
libappindicator-gtk3
libayatana-appindicator
gtk3
dconf
polkit
hicolor-icon-theme
mate.mate-desktop
mate.libmatekbd
mate.mate-menus
mate.mate-panel # for org.mate.panel schema, see m-c-c#678
mate.marco
mate.mate-settings-daemon
marco
mate-desktop
mate-menus
mate-panel # for org.mate.panel schema, see m-c-c#678
mate-settings-daemon
udisks2
systemd
];
postPatch = ''
substituteInPlace capplets/system-info/mate-system-info.c \
--replace-fail "/usr/bin/mate-about" "${mate-desktop}/bin/mate-about"
'';
configureFlags = [ "--disable-update-mimedb" ];
preFixup = ''
gappsWrapperArgs+=(
# WM keyboard shortcuts
--prefix XDG_DATA_DIRS : "${mate.marco}/share"
--prefix XDG_DATA_DIRS : "${marco}/share"
# Desktop font, works only when passed after gtk3 schemas in the wrapper for some reason
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath mate.caja}"
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath caja}"
)
'';

View File

@ -4,7 +4,7 @@
, pkg-config
, gettext
, isocodes
, gnome
, libstartup_notification
, gtk3
, dconf
, wrapGAppsHook
@ -13,11 +13,13 @@
stdenv.mkDerivation rec {
pname = "mate-desktop";
version = "1.26.2";
version = "1.28.2";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "XtA/fFLXt+zknKHnNqp2au/rXGOeqz5oxwkMUw0CN2o=";
sha256 = "MrtLeSAUs5HB4biunBioK01EdlCYS0y6fSjpVWSWSqI=";
};
nativeBuildInputs = [
@ -28,10 +30,14 @@ stdenv.mkDerivation rec {
buildInputs = [
dconf
gtk3
isocodes
];
propagatedBuildInputs = [
gtk3
libstartup_notification
];
enableParallelBuilding = true;
passthru.updateScript = mateUpdateScript { inherit pname; };

View File

@ -0,0 +1,24 @@
{ lib
, runCommand
, gsettings-desktop-schemas
, mate-wayland-session
, glib
}:
let
gsettingsOverridePackages = [
gsettings-desktop-schemas
mate-wayland-session
];
in
runCommand "mate-gsettings-overrides" { preferLocalBuild = true; } ''
data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides"
schema_dir="$data_dir/glib-2.0/schemas"
mkdir -p "$schema_dir"
${lib.concatMapStringsSep "\n" (pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"${glib.getSchemaPath pkg}\"/*.gschema.override \"$schema_dir\"") gsettingsOverridePackages}
chmod -R a+w "$data_dir"
${glib.dev}/bin/glib-compile-schemas --strict "$schema_dir"
''

View File

@ -12,11 +12,11 @@
stdenv.mkDerivation rec {
pname = "mate-icon-theme";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0nha555fhhn0j5wmzmdc7bh93ckzwwdm8mwmzma5whkzslv09xa1";
sha256 = "lNYHkGDKXfdFQpId5O6ji30C0HVhyRk1bZXeh2+abTo=";
};
nativeBuildInputs = [

View File

@ -5,7 +5,7 @@
, gettext
, gtk3
, libayatana-indicator
, mate
, mate-panel
, hicolor-icon-theme
, wrapGAppsHook
, mateUpdateScript
@ -13,17 +13,17 @@
stdenv.mkDerivation rec {
pname = "mate-indicator-applet";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "144fh9f3lag2cqnmb6zxlh8k83ya8kha6rmd7r8gg3z5w3nzpyz4";
sha256 = "zrPXA5cKPlWNfNffCxwhceOvdSolSVrO0uIiwemtSc0=";
};
postPatch = ''
# Find installed Unity & Ayatana (new-style) indicators
substituteInPlace src/applet-main.c \
--replace '/usr/share' '/run/current-system/sw/share'
--replace-fail '/usr/share' '/run/current-system/sw/share'
'';
nativeBuildInputs = [
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3
libayatana-indicator
mate.mate-panel
mate-panel
hicolor-icon-theme
];

View File

@ -4,32 +4,27 @@
, pkg-config
, gettext
, libtool
, libxml2
, libcanberra-gtk3
, gtk-layer-shell
, gtk3
, mate
, libcanberra-gtk3
, libmatemixer
, libxml2
, mate-desktop
, mate-panel
, wayland
, wrapGAppsHook
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-media";
version = "1.26.2";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "r0ZjlXTMOIUTCJyhC7FB/8Pm0awz5zDkII21dZZChQ8=";
sha256 = "vNwQLiL2P1XmMWbVxwjpHBE1cOajCodDRaiGCeg6mRI=";
};
buildInputs = [
libxml2
libcanberra-gtk3
gtk3
mate.libmatemixer
mate.mate-panel
mate.mate-desktop
];
nativeBuildInputs = [
pkg-config
gettext
@ -37,6 +32,19 @@ stdenv.mkDerivation rec {
wrapGAppsHook
];
buildInputs = [
gtk-layer-shell
gtk3
libcanberra-gtk3
libmatemixer
libxml2
mate-desktop
mate-panel
wayland
];
configureFlags = [ "--enable-in-process" ];
enableParallelBuilding = true;
passthru.updateScript = mateUpdateScript { inherit pname; };

View File

@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "mate-menus";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "RY1ZmuW2UMfSF0D5/pVMSoOL5F7WKrQOIOMG+vXdHYw=";
sha256 = "z0DHXH1vCq0dSWmCj8YgJcYiK8aoTwu51urX5FlwUI0=";
};
nativeBuildInputs = [

View File

@ -7,6 +7,7 @@
, libcanberra-gtk3
, libnotify
, libwnck
, gtk-layer-shell
, gtk3
, libxml2
, mate-desktop
@ -17,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "mate-notification-daemon";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "Dq6SlsSKPHH9VvGTGWH5LSnkWgRf5fGgX4PHQAwxmSQ=";
sha256 = "pDEDSOrYZsvLm0xGP00mXMapahp4KpQRoIsjvWXbsuA=";
};
nativeBuildInputs = [
@ -35,11 +36,14 @@ stdenv.mkDerivation rec {
libcanberra-gtk3
libnotify
libwnck
gtk-layer-shell
gtk3
mate-desktop
mate-panel
];
configureFlags = [ "--enable-in-process" ];
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
enableParallelBuilding = true;

View File

@ -5,25 +5,31 @@
, gettext
, itstool
, glib
, gnome
, gtk-layer-shell
, gtk3
, libmateweather
, libwnck
, librsvg
, libxml2
, dconf
, gtk3
, mate
, mate-desktop
, mate-menus
, hicolor-icon-theme
, wayland
, gobject-introspection
, wrapGAppsHook
, marco
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-panel";
version = "1.26.4";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "IHD51RVlfl3c2g2H73KXE9upy3sq0GIjvWdKIcxrPa8=";
sha256 = "s70EoJTQ61vX3DOA728MSdmp1SCXM9fM17RtBmogjLo=";
};
nativeBuildInputs = [
@ -35,18 +41,29 @@ stdenv.mkDerivation rec {
];
buildInputs = [
glib
gtk-layer-shell
libmateweather
libwnck
librsvg
libxml2
gtk3
dconf
mate.libmateweather
mate.mate-desktop
mate.mate-menus
mate-desktop
mate-menus
hicolor-icon-theme
wayland
];
propagatedBuildInputs = [
glib
gtk3
# See https://github.com/mate-desktop/mate-panel/issues/1402
# This is propagated for mate_panel_applet_settings_new and applet's wrapGAppsHook
gnome.dconf-editor
];
# Needed for Wayland support.
configureFlags = [ "--with-in-process-applets=all" ];
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
makeFlags = [
@ -57,7 +74,7 @@ stdenv.mkDerivation rec {
preFixup = ''
gappsWrapperArgs+=(
# Workspace switcher settings, works only when passed after gtk3 schemas in the wrapper for some reason
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath mate.marco}"
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath marco}"
)
'';

View File

@ -0,0 +1,61 @@
{ stdenv
, lib
, glib
, wrapGAppsHook
, xorg
, marco
, mate-panel
, panelApplets
, applets ? [ ]
, useDefaultApplets ? true
}:
let
selectedApplets = applets ++ (lib.optionals useDefaultApplets panelApplets);
in
stdenv.mkDerivation {
pname = "${mate-panel.pname}-with-applets";
version = mate-panel.version;
src = null;
paths = [ mate-panel ] ++ selectedApplets;
passAsFile = [ "paths" ];
nativeBuildInputs = [
glib
wrapGAppsHook
];
buildInputs = lib.forEach selectedApplets (x: x.buildInputs) ++ selectedApplets
++ [ mate-panel ] ++ mate-panel.buildInputs ++ mate-panel.propagatedBuildInputs;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
preferLocalBuild = true;
allowSubstitutes = false;
installPhase = ''
runHook preInstall
mkdir -p $out
for i in $(cat $pathsPath); do
${xorg.lndir}/bin/lndir -silent $i $out
done
runHook postInstall
'';
preFixup = ''
gappsWrapperArgs+=(
--set MATE_PANEL_APPLETS_DIR "$out/share/mate-panel/applets"
--set MATE_PANEL_EXTRA_MODULES "$out/lib/mate-panel/applets"
# Workspace switcher settings
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath marco}"
)
'';
inherit (mate-panel.meta);
}

View File

@ -5,19 +5,18 @@
, gettext
, gtk3
, gobject-introspection
, libappindicator-gtk3
, libindicator-gtk3
, libayatana-appindicator
, polkit
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-polkit";
version = "1.26.1";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "9bewtd/FMwLEBAMkWZjrkSGvP1DnFmagmrc7slRSA1c=";
sha256 = "NQod0KjtaiycGDz/KiHzlCmelo/MauLoyTxWXa5gSug=";
};
nativeBuildInputs = [
@ -28,8 +27,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3
libappindicator-gtk3
libindicator-gtk3
libayatana-appindicator
polkit
];

View File

@ -6,6 +6,7 @@
, glib
, itstool
, libxml2
, mate-desktop
, mate-panel
, libnotify
, libcanberra-gtk3
@ -21,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "mate-power-manager";
version = "1.26.1";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "IM2dIu0Eur+Yu1DnGg7F14qKR2KHcjJ4+H2nbKv7EEI=";
sha256 = "jr3LdLYH6Ggza6moFGze+Pl7zlNcKwyzv2UMWPce7iE=";
};
nativeBuildInputs = [
@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
dbus-glib
upower
polkit
mate-desktop
mate-panel
];

View File

@ -8,20 +8,22 @@
, libXScrnSaver
, libnotify
, libxml2
, mate-desktop
, mate-menus
, mate-panel
, pam
, systemd
, mate
, wrapGAppsHook
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-screensaver";
version = "1.26.2";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "2pcAziQUW9VdJJJ+7P5tMdClLq6G5WOyxlBUs1al/34=";
sha256 = "ag8kqPhKL5XhARSrU+Y/1KymiKVf3FA+1lDgpBDj6nA=";
};
nativeBuildInputs = [
@ -36,11 +38,11 @@ stdenv.mkDerivation rec {
dbus-glib
libXScrnSaver
libnotify
mate-desktop
mate-menus
mate-panel
pam
systemd
mate.mate-desktop
mate.mate-menus
mate.mate-panel
];
configureFlags = [ "--without-console-kit" ];

View File

@ -10,29 +10,26 @@
, libatasmart
, libnotify
, lm_sensors
, mate
, mate-panel
, hicolor-icon-theme
, wrapGAppsHook
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-sensors-applet";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0s19r30fsicqvvcnz57lv158pi35w9zn5i7h5hz59224y0zpqhsc";
sha256 = "1GU2ZoKvj+uGGCg8l4notw22/RfKj6lQrG9xAQIxWoE=";
};
nativeBuildInputs = [
pkg-config
gettext
itstool
wrapGAppsHook
];
# maybe add nvidia-settings later on
buildInputs = [
gtk3
libxml2
@ -40,10 +37,12 @@ stdenv.mkDerivation rec {
libatasmart
libnotify
lm_sensors
mate.mate-panel
mate-panel
hicolor-icon-theme
];
configureFlags = [ "--enable-in-process" ];
enableParallelBuilding = true;
passthru.updateScript = mateUpdateScript { inherit pname; };

View File

@ -8,11 +8,13 @@
, systemd
, libSM
, libXtst
, glib
, gtk3
, libepoxy
, polkit
, hicolor-icon-theme
, mate
, mate-desktop
, mate-screensaver
, wrapGAppsHook
, fetchpatch
, mateUpdateScript
@ -20,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "mate-session-manager";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "W4x9ZEH9nCk8hjiCq2enSTxTzfZOqyfAlFdfQj69Qng=";
sha256 = "0yzkWVuh2mUpB3cgPyvIK9lzshSjoECAoe9caJkKLXs=";
};
patches = [
@ -48,7 +50,8 @@ stdenv.mkDerivation rec {
libSM
libXtst
gtk3
mate.mate-desktop
mate-desktop
mate-screensaver # for gsm_manager_init
hicolor-icon-theme
libepoxy
polkit
@ -56,9 +59,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
postFixup = ''
substituteInPlace $out/share/xsessions/mate.desktop \
--replace "Exec=mate-session" "Exec=$out/bin/mate-session"
--replace-fail "Exec=mate-session" "Exec=$out/bin/mate-session"
'';
passthru.providedSessions = [ "mate" ];

View File

@ -4,15 +4,16 @@
, pkg-config
, gettext
, glib
, dbus-glib
, libxklavier
, libcanberra-gtk3
, libnotify
, libmatekbd
, libmatemixer
, nss
, polkit
, dconf
, gtk3
, mate
, mate-desktop
, pulseaudioSupport ? stdenv.config.pulseaudio or true
, libpulseaudio
, wrapGAppsHook
@ -21,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "mate-settings-daemon";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "aX6mW1QpIcK3ZhRSktJo0wCcwtqDFtKnhphpBV5LGFk=";
sha256 = "TtfNraqkyZ7//AKCuEEXA7t24HLEHEtXmJ+MW0BhGjo=";
};
nativeBuildInputs = [
@ -35,17 +36,16 @@ stdenv.mkDerivation rec {
];
buildInputs = [
dbus-glib
libxklavier
libcanberra-gtk3
libnotify
libmatekbd
libmatemixer
nss
polkit
gtk3
dconf
mate.mate-desktop
mate.libmatekbd
mate.libmatemixer
mate-desktop
] ++ lib.optional pulseaudioSupport libpulseaudio;
configureFlags = lib.optional pulseaudioSupport "--enable-pulse";

View File

@ -7,21 +7,21 @@
, gtkmm3
, libxml2
, libgtop
, libwnck
, librsvg
, polkit
, systemd
, wrapGAppsHook
, mate-desktop
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-system-monitor";
version = "1.26.3";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "WFthNBX3bucDt7XlK1WWKUKVB+A8kwVKSq3Pb5xlIkk=";
sha256 = "QtZj1rkPtTYevBP2VHmD1vHirHXcKuTxysbqYymWWiU=";
};
nativeBuildInputs = [
@ -35,13 +35,16 @@ stdenv.mkDerivation rec {
gtkmm3
libxml2
libgtop
libwnck
librsvg
polkit
systemd
];
configureFlags = [ "--enable-systemd" ];
postPatch = ''
# This package does not provide mate-version.xml.
substituteInPlace src/sysinfo.cpp \
--replace-fail 'DATADIR "/mate-about/mate-version.xml"' '"${mate-desktop}/share/mate-about/mate-version.xml"'
'';
enableParallelBuilding = true;

View File

@ -16,11 +16,11 @@
stdenv.mkDerivation rec {
pname = "mate-terminal";
version = "1.26.1";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "fBMCBvC0eIfoySdOc/jBn65RETRXKGmnwjERt4nh4dA=";
sha256 = "8TXrGp4q4ieY7LLcGRT9tM/XdOa7ZcAVK+N8xslGnpI=";
};
nativeBuildInputs = [

View File

@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "mate-user-guide";
version = "1.26.2";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "TTK241ZKyPTqqysVSC33+XaXUN+IEavtg30KLn7jgIs=";
sha256 = "U+8IFPUGVEYU7WGre+UiHMjTqfFPfvlpjJD+fkYBS54=";
};
nativeBuildInputs = [
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
postPatch = ''
substituteInPlace mate-user-guide.desktop.in.in \
--replace "Exec=yelp" "Exec=${yelp}/bin/yelp"
--replace-fail "Exec=yelp" "Exec=${yelp}/bin/yelp"
'';
enableParallelBuilding = true;

View File

@ -5,6 +5,7 @@
, gettext
, itstool
, gtk3
, caja
, dbus-glib
, libnotify
, libxml2
@ -21,11 +22,11 @@ let
in
stdenv.mkDerivation rec {
pname = "mate-user-share";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1wh0b4qw5wzpl7sg44lpwjb9r6xllch3xfz8c2cchl8rcgbh2kph";
sha256 = "iYVgmZkXllE0jkl+8I81C4YIG5expKcwQHfurlc5rjg=";
};
nativeBuildInputs = [
@ -38,10 +39,10 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3
caja
dbus-glib
libnotify
libcanberra-gtk3
mate.caja
hicolor-icon-theme
# Should mod_dnssd and apacheHttpd be runtime dependencies?
# In gnome-user-share they are not.

View File

@ -1,43 +1,34 @@
{ lib
, stdenv
, fetchurl
, fetchpatch
, pkg-config
, gettext
, itstool
, glib
, gtk-layer-shell
, gtk3
, libxml2
, libgtop
, libcanberra-gtk3
, inkscape
, udisks2
, mate
, mate-desktop
, mate-panel
, hicolor-icon-theme
, wayland
, wrapGAppsHook
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-utils";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "L1NHWxoJkd1ak9ndpY/KTkFvJZJTWG2UpbEQjxI3BiA=";
sha256 = "WESdeg0dkA/wO3jKn36Ywh6X9H/Ca+5/8cYYNPIviNM=";
};
patches = [
# Hopefully helps "libxml2.treeError: xmlSetProp() failed"
# This patch is not part of upstream yet.
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919058
# https://github.com/mate-desktop/mate-utils/issues/210
(fetchpatch {
url = "https://salsa.debian.org/debian-mate-team/mate-utils/-/raw/2b43d78f3fdbf0aa50716b62bcada2ef015957c6/debian/patches/1001_fix-gsearchtool-pt-help-translation.patch";
sha256 = "SZVpdup/bNv+3hEGQ0L13mgXyNm+wRcL53t9/Oi24wA=";
})
];
nativeBuildInputs = [
pkg-config
gettext
@ -47,15 +38,28 @@ stdenv.mkDerivation rec {
];
buildInputs = [
gtk-layer-shell
gtk3
libgtop
libcanberra-gtk3
libxml2
udisks2
mate.mate-panel
mate-desktop
mate-panel
hicolor-icon-theme
wayland
];
postPatch = ''
# Workaround undefined version requirements
# https://github.com/mate-desktop/mate-utils/issues/361
substituteInPlace configure \
--replace-fail '>= $GTK_LAYER_SHELL_REQUIRED_VERSION' "" \
--replace-fail '>= $GDK_WAYLAND_REQUIRED_VERSION' ""
'';
configureFlags = [ "--enable-wayland" ];
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
enableParallelBuilding = true;

View File

@ -0,0 +1,58 @@
{ stdenvNoCC
, lib
, fetchFromGitHub
, meson
, ninja
, glib
, mate-polkit
, mate-notification-daemon
, wayfire
, wayfirePlugins
, gitUpdater
}:
stdenvNoCC.mkDerivation rec {
pname = "mate-wayland-session";
version = "1.28.3";
src = fetchFromGitHub {
owner = "mate-desktop";
repo = "mate-wayland-session";
rev = "v${version}";
hash = "sha256-sUAq2BylsvjYn8Lt+nm4yIfVhzIEefxKZYnhJnuxjs0=";
};
nativeBuildInputs = [
meson
ninja
glib
];
postPatch = ''
substituteInPlace session/mate-wayland-components.sh \
--replace-fail "polkit-mate-authentication-agent-1" "${mate-polkit}/libexec/polkit-mate-authentication-agent-1" \
--replace-fail "mate-notification-daemon" "${mate-notification-daemon}/libexec/mate-notification-daemon" \
--replace-fail "cat /usr/bin/blueman-applet" "command -v blueman-applet" \
--replace-fail "cat /usr/bin/gnome-keyring-daemon" "command -v gnome-keyring-daemon"
# Ensure wayfire.ini is writable, as this script tries to modify it later.
substituteInPlace session/mate-wayland.sh \
--replace-fail "cp /usr/share/doc/wayfire/examples/wayfire.ini" "cp --no-preserve=mode,ownership ${wayfire.src}/wayfire.ini" \
--replace-fail "/usr/share/doc/wayfire/examples/wayfire.ini" "${wayfire.src}/wayfire.ini" \
--replace-fail "/usr/lib/x86_64-linux-gnu/wayfire/libfiredecor.so" "${wayfirePlugins.firedecor}/lib/wayfire/libfiredecor.so" \
--replace-fail "/usr/share/doc/firedecor/firedecor.config" "$out/share/doc/firedecor/firedecor.config"
'';
passthru = {
providedSessions = [ "MATE" ];
updateScript = gitUpdater { rev-prefix = "v"; };
};
meta = with lib; {
description = "Wayland session using Wayfire for the MATE desktop";
homepage = "https://mate-desktop.org";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = teams.mate.members;
};
}

View File

@ -3,7 +3,7 @@
, fetchurl
, pkg-config
, gettext
, mate
, mate-menus
, gtk3
, glib
, wrapGAppsHook
@ -13,14 +13,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "mozo";
version = "1.26.2";
version = "1.28.0";
format = "other";
doCheck = false;
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "RyxILg7y+xYp5h4X2qoaSH9kOSsCmEncmkCCr7OLye4=";
sha256 = "/piYT/1qqMNtBZS879ugPeObQtQeAHJRaAOE8870SSQ=";
};
nativeBuildInputs = [
@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec {
];
propagatedBuildInputs = [
mate.mate-menus
mate-menus
python3.pkgs.pygobject3
];

View File

@ -9,7 +9,6 @@
, enchant
, libxml2
, python3
, adwaita-icon-theme
, gtksourceview4
, libpeas
, mate-desktop
@ -19,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "pluma";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "WVns49cRjhBmWfZNIC0O0XY60Qu7ul0qzYy/ui45lPE=";
sha256 = "qorflYk0UJOlDjCyft5KeKJCHRcnwn9GX8h8Q1llodQ=";
};
nativeBuildInputs = [
@ -37,7 +36,6 @@ stdenv.mkDerivation rec {
];
buildInputs = [
adwaita-icon-theme
enchant
gtksourceview4
libpeas

View File

@ -3,19 +3,19 @@
, fetchurl
, pkg-config
, gettext
, caja
, gtk3
, mate
, python3Packages
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "python-caja";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "181zcs1pi3762chm4xraqs8048jm7jzwnvgwla1v3z2nqzpp3xr1";
sha256 = "sFbCOdvf4z7QzIQx+zUAqTj3h7Weh19f+TV4umb2gNY=";
};
nativeBuildInputs = [
@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
];
buildInputs = [
caja
gtk3
mate.caja
python3Packages.python
python3Packages.pygobject3
];