tree-wide: the rest of MATE Desktop

- Fixes https://github.com/termux/termux-packages/issues/25480

Core MATE packages added

- `mate-backgrounds`
- `mate-control-center`
- `mate-icon-theme`
- `mate-notification-daemon`
- `mate-themes`
- `libmatemixer`

Extra MATE packages added

- `caja-actions`
- `caja-extensions`
- `engrampa`
- `eom`
- `mate-applets`
- `mate-icon-theme-faenza`
- `mate-media`
- `mate-netbook`
- `mate-screensaver`
- `mate-system-monitor`
- `mate-utils`
- `mozo`
- `pluma`

Community MATE packages added

- `mate-tweak`
- `mate-applet-appmenu`

MATE Packages omitted because they are thought to be too difficult or too unnecessary in Termux

- `mate-polkit`
- `mate-user-guide`
- `mate-user-share`
- `mate-power-manager`
- `mate-sensors-applet`

Desktop Linux distros used as references:

- Arch Linux
- Gentoo
- Debian
This commit is contained in:
termux-pacman-bot
2026-01-27 03:35:45 +00:00
parent f2560cfe3f
commit 55eeb697a7
36 changed files with 1477 additions and 9 deletions

View File

@@ -0,0 +1,17 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Extension for Caja which allows the user to add arbitrary programs to be launched"
TERMUX_PKG_LICENSE="GPL-2.0-or-later, LGPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/caja-actions/releases/download/v$TERMUX_PKG_VERSION/caja-actions-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=310d39488e707fad848959a0a800b6154f4498dfddaeff5af49e4db35d0bea4d
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="caja, libgtop"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, glib, mate-common"
termux_step_pre_configure() {
# Fixes:
# CANNOT LINK EXECUTABLE "caja-actions-config-tool":
# library "libna-core.so" not found: needed by main executable
LDFLAGS+=" -Wl,-rpath=$TERMUX_PREFIX/lib/caja-actions"
}

View File

@@ -0,0 +1,14 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Set of extensions for Caja, the MATE file manager"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/caja-extensions/releases/download/v$TERMUX_PKG_VERSION/caja-extensions-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=d2986c5e0740835fe271cfbd5823eeeaf03291af1763203f4700abb8109e3175
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="caja, dbus-glib, gettext, gst-plugins-base, imagemagick, samba"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, glib, mate-common, python, gst-plugins-base"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--disable-upnp
--disable-gksu
"

View File

@@ -0,0 +1,14 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="File archiver for MATE"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.2"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/engrampa/releases/download/v$TERMUX_PKG_VERSION/engrampa-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=1e9977c23745bf8843a37f315171d9af97814a0971aeac3d774f017650ac09ef
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="gtk3, gzip, gettext, libarchive, tar, unzip, zip"
TERMUX_PKG_RECOMMENDS="caja, p7zip, unrar, brotli, rpm, cpio"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, caja, glib, mate-common, python"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--disable-packagekit
"

21
x11-packages/eom/build.sh Normal file
View File

@@ -0,0 +1,21 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Image viewer for MATE"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/eom/releases/download/v$TERMUX_PKG_VERSION/eom-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=9a01cab2995a1a8c7258c865eae5f182ed4730c44672afdc3a07e423edd53abc
# version 1.28.1 has a build failure not only in Termux, but also the same error in upstream's own CI;
# wait for them to fix it
TERMUX_PKG_AUTO_UPDATE=false
TERMUX_PKG_DEPENDS="dbus-glib, gobject-introspection, gettext, librsvg, littlecms, libexif, libjpeg-turbo, mate-desktop, libpeas"
TERMUX_PKG_RECOMMENDS="webp-pixbuf-loader"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, glib, mate-common"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--localstatedir=$TERMUX_PREFIX/var
"
termux_step_pre_configure() {
termux_setup_gir
termux_setup_glib_cross_pkg_config_wrapper
}

View File

@@ -0,0 +1,245 @@
<?xml version="1.0"?>
<dump>
<class name="EomListStore" get-type="eom_list_store_get_type" parents="GtkListStore,GObject">
<implements name="GtkTreeModel"/>
<implements name="GtkTreeDragSource"/>
<implements name="GtkTreeDragDest"/>
<implements name="GtkTreeSortable"/>
<implements name="GtkBuildable"/>
</class>
<class name="EomTransform" get-type="eom_transform_get_type" parents="GObject">
</class>
<class name="EomJob" get-type="eom_job_get_type" parents="GObject">
<signal name="finished" return="void" when="last">
</signal>
<signal name="progress" return="void" when="last">
<param type="gfloat"/>
</signal>
</class>
<class name="EomJobThumbnail" get-type="eom_job_thumbnail_get_type" parents="EomJob,GObject">
</class>
<class name="EomJobLoad" get-type="eom_job_load_get_type" parents="EomJob,GObject">
</class>
<class name="EomJobModel" get-type="eom_job_model_get_type" parents="EomJob,GObject">
</class>
<class name="EomJobTransform" get-type="eom_job_transform_get_type" parents="EomJob,GObject">
</class>
<class name="EomJobSave" get-type="eom_job_save_get_type" parents="EomJob,GObject">
</class>
<class name="EomJobSaveAs" get-type="eom_job_save_as_get_type" parents="EomJobSave,EomJob,GObject">
</class>
<class name="EomJobCopy" get-type="eom_job_copy_get_type" parents="EomJob,GObject">
</class>
<class name="EomImageSaveInfo" get-type="eom_image_save_info_get_type" parents="GObject">
</class>
<class name="EomImage" get-type="eom_image_get_type" parents="GObject">
<signal name="size-prepared" return="void" when="last">
<param type="gint"/>
<param type="gint"/>
</signal>
<signal name="changed" return="void" when="last">
</signal>
<signal name="thumbnail-changed" return="void" when="last">
</signal>
<signal name="save-progress" return="void" when="last">
<param type="gfloat"/>
</signal>
<signal name="next-frame" return="void" when="last">
<param type="gint"/>
</signal>
<signal name="file-changed" return="void" when="last">
</signal>
</class>
<class name="EomWindow" get-type="eom_window_get_type" parents="GtkApplicationWindow,GtkWindow,GtkBin,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GActionGroup"/>
<implements name="GActionMap"/>
<property name="collection-position" type="EomWindowCollectionPos" flags="35" default-value="EOM_WINDOW_COLLECTION_POS_BOTTOM"/>
<property name="collection-resizable" type="gboolean" flags="35" default-value="FALSE"/>
<property name="startup-flags" type="EomStartupFlags" flags="11" default-value="0"/>
<signal name="prepared" return="void" when="last">
</signal>
</class>
<class name="EomApplication" get-type="eom_application_get_type" parents="GtkApplication,GApplication,GObject">
<implements name="GActionGroup"/>
<implements name="GActionMap"/>
</class>
<interface name="EomApplicationActivatable" get-type="eom_application_activatable_get_type">
<property name="app" type="EomApplication" flags="235"/>
</interface>
<interface name="EomWindowActivatable" get-type="eom_window_activatable_get_type">
<property name="window" type="EomWindow" flags="235"/>
</interface>
<class name="EomSidebar" get-type="eom_sidebar_get_type" parents="GtkBox,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkOrientable"/>
<property name="current-page" type="GtkWidget" flags="3"/>
<signal name="page-added" return="void" when="first">
<param type="GtkWidget"/>
</signal>
<signal name="page-removed" return="void" when="first">
<param type="GtkWidget"/>
</signal>
</class>
<class name="EomThumbView" get-type="eom_thumb_view_get_type" parents="GtkIconView,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkCellLayout"/>
<implements name="GtkScrollable"/>
<implements name="GtkOrientable"/>
</class>
<class name="EomPropertiesDialog" get-type="eom_properties_dialog_get_type" parents="GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<property name="thumbview" type="EomThumbView" flags="235"/>
<property name="netbook-mode" type="gboolean" flags="227" default-value="FALSE"/>
</class>
<class name="EomFileChooser" get-type="eom_file_chooser_get_type" parents="GtkFileChooserDialog,GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkFileChooser"/>
</class>
<class name="EomStatusbar" get-type="eom_statusbar_get_type" parents="GtkStatusbar,GtkBox,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkOrientable"/>
</class>
<class name="EomThumbNav" get-type="eom_thumb_nav_get_type" parents="GtkBox,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkOrientable"/>
<property name="show-buttons" type="gboolean" flags="3" default-value="TRUE"/>
<property name="thumbview" type="EomThumbView" flags="11"/>
<property name="mode" type="gint" flags="3" default-value="0"/>
</class>
<class name="EomScrollView" get-type="eom_scroll_view_get_type" parents="GtkGrid,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkOrientable"/>
<property name="antialiasing-in" type="gboolean" flags="35" default-value="TRUE"/>
<property name="antialiasing-out" type="gboolean" flags="35" default-value="TRUE"/>
<property name="background-color" type="GdkRGBA" flags="35"/>
<property name="image" type="EomImage" flags="35"/>
<property name="scrollwheel-zoom" type="gboolean" flags="35" default-value="TRUE"/>
<property name="transparency-color" type="GdkRGBA" flags="34"/>
<property name="transparency-style" type="EomTransparencyStyle" flags="35" default-value="EOM_TRANSP_CHECKED"/>
<property name="use-background-color" type="gboolean" flags="35" default-value="FALSE"/>
<property name="zoom-multiplier" type="gdouble" flags="35" default-value="0.050000"/>
<signal name="zoom-changed" return="void" when="last">
<param type="gdouble"/>
</signal>
</class>
<class name="EomClipboardHandler" get-type="eom_clipboard_handler_get_type" parents="GInitiallyUnowned,GObject">
<property name="pixbuf" type="GdkPixbuf" flags="235"/>
<property name="uri" type="gchararray" flags="235" default-value="NULL"/>
</class>
<boxed name="EomExifData" get-type="eom_exif_data_get_type"/>
<flags name="EomDebug" get-type="eom_debug_get_type">
<member name="EOM_DEBUG_NO_DEBUG" nick="no-debug" value="0"/>
<member name="EOM_DEBUG_WINDOW" nick="window" value="1"/>
<member name="EOM_DEBUG_VIEW" nick="view" value="2"/>
<member name="EOM_DEBUG_JOBS" nick="jobs" value="4"/>
<member name="EOM_DEBUG_THUMBNAIL" nick="thumbnail" value="8"/>
<member name="EOM_DEBUG_IMAGE_DATA" nick="image-data" value="16"/>
<member name="EOM_DEBUG_IMAGE_LOAD" nick="image-load" value="32"/>
<member name="EOM_DEBUG_IMAGE_SAVE" nick="image-save" value="64"/>
<member name="EOM_DEBUG_LIST_STORE" nick="list-store" value="128"/>
<member name="EOM_DEBUG_PREFERENCES" nick="preferences" value="256"/>
<member name="EOM_DEBUG_PRINTING" nick="printing" value="512"/>
<member name="EOM_DEBUG_LCMS" nick="lcms" value="1024"/>
<member name="EOM_DEBUG_PLUGINS" nick="plugins" value="2048"/>
</flags>
<flags name="EomImageData" get-type="eom_image_data_get_type">
<member name="EOM_IMAGE_DATA_IMAGE" nick="image" value="1"/>
<member name="EOM_IMAGE_DATA_DIMENSION" nick="dimension" value="2"/>
<member name="EOM_IMAGE_DATA_EXIF" nick="exif" value="4"/>
<member name="EOM_IMAGE_DATA_XMP" nick="xmp" value="8"/>
</flags>
<enum name="EomImageError" get-type="eom_image_error_get_type">
<member name="EOM_IMAGE_ERROR_SAVE_NOT_LOCAL" nick="save-not-local" value="0"/>
<member name="EOM_IMAGE_ERROR_NOT_LOADED" nick="not-loaded" value="1"/>
<member name="EOM_IMAGE_ERROR_VFS" nick="vfs" value="2"/>
<member name="EOM_IMAGE_ERROR_FILE_EXISTS" nick="file-exists" value="3"/>
<member name="EOM_IMAGE_ERROR_TMP_FILE_FAILED" nick="tmp-file-failed" value="4"/>
<member name="EOM_IMAGE_ERROR_GENERIC" nick="generic" value="5"/>
<member name="EOM_IMAGE_ERROR_UNKNOWN" nick="unknown" value="6"/>
</enum> <enum name="EomImageStatus" get-type="eom_image_status_get_type">
<member name="EOM_IMAGE_STATUS_UNKNOWN" nick="unknown" value="0"/>
<member name="EOM_IMAGE_STATUS_LOADING" nick="loading" value="1"/>
<member name="EOM_IMAGE_STATUS_LOADED" nick="loaded" value="2"/>
<member name="EOM_IMAGE_STATUS_SAVING" nick="saving" value="3"/>
<member name="EOM_IMAGE_STATUS_FAILED" nick="failed" value="4"/>
</enum> <enum name="EomImageMetadataStatus" get-type="eom_image_metadata_status_get_type">
<member name="EOM_IMAGE_METADATA_NOT_READ" nick="not-read" value="0"/>
<member name="EOM_IMAGE_METADATA_NOT_AVAILABLE" nick="not-available" value="1"/>
<member name="EOM_IMAGE_METADATA_READY" nick="ready" value="2"/>
</enum> <enum name="EomJobSaveResponse" get-type="eom_job_save_response_get_type">
<member name="EOM_SAVE_RESPONSE_NONE" nick="none" value="0"/>
<member name="EOM_SAVE_RESPONSE_RETRY" nick="retry" value="1"/>
<member name="EOM_SAVE_RESPONSE_SKIP" nick="skip" value="2"/>
<member name="EOM_SAVE_RESPONSE_OVERWRITE" nick="overwrite" value="3"/>
<member name="EOM_SAVE_RESPONSE_CANCEL" nick="cancel" value="4"/>
<member name="EOM_SAVE_RESPONSE_LAST" nick="last" value="5"/>
</enum> <enum name="EomListStoreColumn" get-type="eom_list_store_column_get_type">
<member name="EOM_LIST_STORE_THUMBNAIL" nick="thumbnail" value="0"/>
<member name="EOM_LIST_STORE_THUMB_SET" nick="thumb-set" value="1"/>
<member name="EOM_LIST_STORE_EOM_IMAGE" nick="eom-image" value="2"/>
<member name="EOM_LIST_STORE_EOM_JOB" nick="eom-job" value="3"/>
<member name="EOM_LIST_STORE_NUM_COLUMNS" nick="num-columns" value="4"/>
</enum> <enum name="EomPropertiesDialogPage" get-type="eom_properties_dialog_page_get_type">
<member name="EOM_PROPERTIES_DIALOG_PAGE_GENERAL" nick="page-general" value="0"/>
<member name="EOM_PROPERTIES_DIALOG_PAGE_EXIF" nick="page-exif" value="1"/>
<member name="EOM_PROPERTIES_DIALOG_PAGE_DETAILS" nick="page-details" value="2"/>
<member name="EOM_PROPERTIES_DIALOG_N_PAGES" nick="n-pages" value="3"/>
</enum> <enum name="EomTransparencyStyle" get-type="eom_transparency_style_get_type">
<member name="EOM_TRANSP_BACKGROUND" nick="background" value="0"/>
<member name="EOM_TRANSP_CHECKED" nick="checked" value="1"/>
<member name="EOM_TRANSP_COLOR" nick="color" value="2"/>
</enum> <enum name="EomThumbNavMode" get-type="eom_thumb_nav_mode_get_type">
<member name="EOM_THUMB_NAV_MODE_ONE_ROW" nick="one-row" value="0"/>
<member name="EOM_THUMB_NAV_MODE_ONE_COLUMN" nick="one-column" value="1"/>
<member name="EOM_THUMB_NAV_MODE_MULTIPLE_ROWS" nick="multiple-rows" value="2"/>
<member name="EOM_THUMB_NAV_MODE_MULTIPLE_COLUMNS" nick="multiple-columns" value="3"/>
</enum> <enum name="EomThumbViewSelectionChange" get-type="eom_thumb_view_selection_change_get_type">
<member name="EOM_THUMB_VIEW_SELECT_CURRENT" nick="current" value="0"/>
<member name="EOM_THUMB_VIEW_SELECT_LEFT" nick="left" value="1"/>
<member name="EOM_THUMB_VIEW_SELECT_RIGHT" nick="right" value="2"/>
<member name="EOM_THUMB_VIEW_SELECT_FIRST" nick="first" value="3"/>
<member name="EOM_THUMB_VIEW_SELECT_LAST" nick="last" value="4"/>
<member name="EOM_THUMB_VIEW_SELECT_RANDOM" nick="random" value="5"/>
</enum> <enum name="EomTransformType" get-type="eom_transform_type_get_type">
<member name="EOM_TRANSFORM_NONE" nick="none" value="0"/>
<member name="EOM_TRANSFORM_ROT_90" nick="rot-90" value="1"/>
<member name="EOM_TRANSFORM_ROT_180" nick="rot-180" value="2"/>
<member name="EOM_TRANSFORM_ROT_270" nick="rot-270" value="3"/>
<member name="EOM_TRANSFORM_FLIP_HORIZONTAL" nick="flip-horizontal" value="4"/>
<member name="EOM_TRANSFORM_FLIP_VERTICAL" nick="flip-vertical" value="5"/>
<member name="EOM_TRANSFORM_TRANSPOSE" nick="transpose" value="6"/>
<member name="EOM_TRANSFORM_TRANSVERSE" nick="transverse" value="7"/>
</enum> <enum name="EomWindowMode" get-type="eom_window_mode_get_type">
<member name="EOM_WINDOW_MODE_UNKNOWN" nick="unknown" value="0"/>
<member name="EOM_WINDOW_MODE_NORMAL" nick="normal" value="1"/>
<member name="EOM_WINDOW_MODE_FULLSCREEN" nick="fullscreen" value="2"/>
<member name="EOM_WINDOW_MODE_SLIDESHOW" nick="slideshow" value="3"/>
</enum> <enum name="EomWindowCollectionPos" get-type="eom_window_collection_pos_get_type">
<member name="EOM_WINDOW_COLLECTION_POS_BOTTOM" nick="bottom" value="0"/>
<member name="EOM_WINDOW_COLLECTION_POS_LEFT" nick="left" value="1"/>
<member name="EOM_WINDOW_COLLECTION_POS_TOP" nick="top" value="2"/>
<member name="EOM_WINDOW_COLLECTION_POS_RIGHT" nick="right" value="3"/>
</enum> <enum name="EomWindowError" get-type="eom_window_error_get_type">
<member name="EOM_WINDOW_ERROR_CONTROL_NOT_FOUND" nick="control-not-found" value="0"/>
<member name="EOM_WINDOW_ERROR_UI_NOT_FOUND" nick="ui-not-found" value="1"/>
<member name="EOM_WINDOW_ERROR_NO_PERSIST_FILE_INTERFACE" nick="no-persist-file-interface" value="2"/>
<member name="EOM_WINDOW_ERROR_IO" nick="io" value="3"/>
<member name="EOM_WINDOW_ERROR_TRASH_NOT_FOUND" nick="trash-not-found" value="4"/>
<member name="EOM_WINDOW_ERROR_GENERIC" nick="generic" value="5"/>
<member name="EOM_WINDOW_ERROR_UNKNOWN" nick="unknown" value="6"/>
</enum> <flags name="EomStartupFlags" get-type="eom_startup_flags_get_type">
<member name="EOM_STARTUP_FULLSCREEN" nick="fullscreen" value="1"/>
<member name="EOM_STARTUP_SLIDE_SHOW" nick="slide-show" value="2"/>
<member name="EOM_STARTUP_DISABLE_COLLECTION" nick="disable-collection" value="4"/>
</flags>
<error-quark function="eom_image_error_quark" domain="eom-image-error-quark"/>
</dump>

View File

@@ -0,0 +1,13 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Mixer library for MATE Desktop"
TERMUX_PKG_LICENSE="LGPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/libmatemixer/releases/download/v$TERMUX_PKG_VERSION/libmatemixer-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=5d73b922397f60688e3c9530eb532bce46c30e262db1b5352fa32c40d870a0c7
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="alsa-lib, glib, pulseaudio"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--sysconfdir=$TERMUX_PREFIX/etc
--localstatedir=$TERMUX_PREFIX/var
"

View File

@@ -0,0 +1,33 @@
From a2b5941a6120c9aa0bfba03603147171e1cdec74 Mon Sep 17 00:00:00 2001
From: Colomban Wendling <cwendling@hypra.fr>
Date: Tue, 4 Feb 2025 17:59:19 +0100
Subject: [PATCH] pulse: Don't crash on failure to retrieve server info
Although the documentation isn't very verbose, pactl handles this case
like this, so a NULL info is likely a valid result of this call upon
failure.
Most of the code is actually just copied over from pactl.c itself,
there wasn't much more to it.
Part-of: mate-desktop/mate-media#159
---
backends/pulse/pulse-connection.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/backends/pulse/pulse-connection.c b/backends/pulse/pulse-connection.c
index b8ca8c5..6a745f8 100644
--- a/backends/pulse/pulse-connection.c
+++ b/backends/pulse/pulse-connection.c
@@ -1467,6 +1467,11 @@ pulse_server_info_cb (pa_context *c,
{
PulseConnection *connection;
+ if (! info) {
+ g_warning ("Failed to get PulseAudio server information: %s", pa_strerror (pa_context_errno (c)));
+ return;
+ }
+
connection = PULSE_CONNECTION (userdata);
g_signal_emit (G_OBJECT (connection),

View File

@@ -0,0 +1,16 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Applets for use with the MATE panel"
TERMUX_PKG_LICENSE="GPL-2.0-or-later, LGPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.1"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-applets/releases/download/v$TERMUX_PKG_VERSION/mate-applets-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=a5967141527dc5b172d322a6003c23aeec253160f650bb36430a06ddaefa7e2e
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="gtksourceview4, libgtop, libnotify, mate-panel, libnl"
TERMUX_PKG_SUGGESTS="fortune, gucharmap"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, mate-common, glib"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--sysconfdir=$TERMUX_PREFIX/etc
--with-dbus-sys=$TERMUX_PREFIX/share/dbus-1/system.d
--disable-polkit
"

View File

@@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Set of backgrounds packaged with the MATE desktop"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-backgrounds/releases/download/v$TERMUX_PKG_VERSION/mate-backgrounds-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=50d1afd02486bd07ac22a5a6b6efa3031148f0d48a82e488d909ad57003a6943
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_BUILD_DEPENDS="mate-common"
TERMUX_PKG_PLATFORM_INDEPENDENT=true

View File

@@ -0,0 +1,21 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Set of backgrounds packaged with the MATE desktop"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.1"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-control-center/releases/download/v$TERMUX_PKG_VERSION/mate-control-center-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=e12d34c1c1f11e3d0a2ba2dd41bc1c997bf0d1d56486896756f6edaac5f9a9b2
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="dconf, mate-menus, mate-settings-daemon, marco, libgtop, libxss, mate-desktop, gettext, mate-panel, libcanberra, libayatana-appindicator"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, glib, mate-common"
TERMUX_PKG_PLATFORM_INDEPENDENT=true
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--sysconfdir=$TERMUX_PREFIX/etc
--localstatedir=$TERMUX_PREFIX/var
--disable-update-mimedb
--disable-systemd
"
termux_step_pre_configure() {
autoreconf -fi
}

View File

@@ -0,0 +1,88 @@
--- a/configure.ac
+++ b/configure.ac
@@ -106,7 +106,6 @@ COMMON_MODULES="gtk+-3.0 >= $GTK_REQUIRED dnl
gio-2.0 dnl
gio-unix-2.0 dnl
libxml-2.0 dnl
- udisks2 dnl
libgtop-2.0 dnl
mate-desktop-2.0 >= $MATE_DESKTOP_REQUIRED"
PKG_CHECK_MODULES(CAPPLET, $COMMON_MODULES)
@@ -113,14 +113,12 @@ PKG_CHECK_MODULES(CAPPLET, $COMMON_MODULES)
PKG_CHECK_MODULES(MATECC, $COMMON_MODULES libmate-menu >= 1.21.0)
PKG_CHECK_MODULES(MATECC_SHELL, $COMMON_MODULES libmate-menu librsvg-2.0 pango)
-PKG_CHECK_MODULES(POLKIT, polkit-gobject-1)
PKG_CHECK_MODULES(MATE_DESKTOP, mate-desktop-2.0 >= $MATE_DESKTOP_REQUIRED)
PKG_CHECK_MODULES(DEFAULT_APPLICATIONS_CAPPLET, libxml-2.0)
PKG_CHECK_MODULES(MARCO, libmarco-private >= $MARCO_REQUIRED)
PKG_CHECK_MODULES(TYPING, $GMODULE_ADD glib-2.0 >= $GLIB_REQUIRED gio-2.0 gtk+-3.0 >= $GTK_REQUIRED)
PKG_CHECK_MODULES(GIO, gio-2.0)
PKG_CHECK_MODULES(GLIBTOP, libgtop-2.0)
-PKG_CHECK_MODULES(UDISKS, udisks2)
PKG_CHECK_MODULES([DCONF], [dconf >= 0.13.4])
AC_SUBST(DCONF_CFLAGS)
--- a/capplets/system-info/mate-system-info.c
+++ b/capplets/system-info/mate-system-info.c
@@ -26,7 +26,6 @@
#include <glibtop/mountlist.h>
#include <glibtop/mem.h>
#include <glibtop/sysinfo.h>
-#include <udisks/udisks.h>
#include <sys/utsname.h>
#ifdef GDK_WINDOWING_WAYLAND
@@ -374,7 +373,6 @@ get_graphics_hardware_string (void)
static char *
get_primary_disk_size (void)
{
- g_autoptr(UDisksClient) client = NULL;
GDBusObjectManager *manager;
g_autolist(GDBusObject) objects = NULL;
GList *l;
@@ -384,42 +382,13 @@ get_primary_disk_size (void)
total_size = 0;
- client = udisks_client_new_sync (NULL, &error);
- if (client == NULL)
+ error = g_error_new(G_FILE_ERROR, G_FILE_ERROR_NOSYS, "Unsupported system");
+ if (TRUE)
{
g_warning ("Unable to get UDisks client: %s. Disk information will not be available.",
error->message);
return g_strdup ("Unknown");
}
-
- manager = udisks_client_get_object_manager (client);
- objects = g_dbus_object_manager_get_objects (manager);
-
- for (l = objects; l != NULL; l = l->next)
- {
- UDisksDrive *drive;
- drive = udisks_object_peek_drive (UDISKS_OBJECT (l->data));
-
- /* Skip removable devices */
- if (drive == NULL ||
- udisks_drive_get_removable (drive) ||
- udisks_drive_get_ejectable (drive))
- {
- continue;
- }
-
- total_size += udisks_drive_get_size (drive);
- }
- if (total_size > 0)
- {
- size = g_format_size (total_size);
- }
- else
- {
- size = g_strdup ("Unknown");
- }
-
- return size;
}
static char *

View File

@@ -0,0 +1,7 @@
--- a/help/Makefile.am
+++ b/help/Makefile.am
@@ -1,4 +1,3 @@
-@YELP_HELP_RULES@
HELP_ID = mate-control-center
HELP_FILES = \

View File

@@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="A metapackage that installs various utilities and programs for the MATE desktop environment"
TERMUX_PKG_LICENSE="Public Domain"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_AUTO_UPDATE=false
TERMUX_PKG_SKIP_SRC_EXTRACT=true
TERMUX_PKG_DEPENDS="atril, caja-actions, caja-extensions, engrampa, eom, mate-applets, mate-calc, mate-icon-theme-faenza, mate-media, mate-netbook, mate-screensaver, mate-system-monitor, mate-terminal, mate-utils, mozo, pluma"
TERMUX_PKG_METAPACKAGE=true
TERMUX_PKG_PLATFORM_INDEPENDENT=true

View File

@@ -0,0 +1,27 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Faenza icon theme for MATE"
TERMUX_PKG_LICENSE="GPL-3.0-only"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.20.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop-legacy-archive/mate-icon-theme-faenza/archive/refs/tags/v$TERMUX_PKG_VERSION.tar.gz"
TERMUX_PKG_SHA256=3e838a08c18116d4d69fcacf50b456d79846db12bf249b44c7d971cf2df7b9c0
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_UPDATE_TAG_TYPE=newest-tag
TERMUX_PKG_BUILD_DEPENDS="mate-common"
TERMUX_PKG_PLATFORM_INDEPENDENT=true
TERMUX_PKG_HOSTBUILD=true
TERMUX_PKG_BUILD_IN_SRC=true
termux_step_host_build() {
termux_download_ubuntu_packages mate-common
sed -i "s|prefix=/usr|prefix=$TERMUX_PKG_HOSTBUILD_DIR/ubuntu_packages/usr|" \
"$TERMUX_PKG_HOSTBUILD_DIR/ubuntu_packages/usr/bin/mate-doc-common"
}
termux_step_pre_configure() {
if [[ "$TERMUX_ON_DEVICE_BUILD" == "false" ]]; then
export PATH="$TERMUX_PKG_HOSTBUILD_DIR/ubuntu_packages/usr/bin:$PATH"
fi
./autogen.sh
}

View File

@@ -0,0 +1,26 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="MATE default icon theme"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-icon-theme/releases/download/v$TERMUX_PKG_VERSION/mate-icon-theme-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=94d6079060ca5df74542921de4eea38b7d02d07561c919356d95de876f9a6d3a
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_BUILD_DEPENDS="mate-common, icon-naming-utils"
TERMUX_PKG_PLATFORM_INDEPENDENT=true
TERMUX_PKG_HOSTBUILD=true
termux_step_host_build() {
if [[ "$TERMUX_ON_DEVICE_BUILD" == "true" ]]; then
return
fi
# XML::Simple for running $TERMUX_PREFIX/libexec/icon-name-mapping in
# the Ubuntu termux-package-builder's perl during cross-compilation
termux_download_ubuntu_packages libxml-simple-perl
}
termux_step_pre_configure() {
if [[ "$TERMUX_ON_DEVICE_BUILD" == "false" ]]; then
export PERL5LIB="$TERMUX_PKG_HOSTBUILD_DIR/ubuntu_packages/usr/share/perl5"
fi
}

View File

@@ -0,0 +1,14 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="MATE Media Tools"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.1"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-media/releases/download/v$TERMUX_PKG_VERSION/mate-media-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=bcdc102e22f63f55e63166d5c708e91c113570e6a30a874345a88609e83a9912
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="libcanberra, libmatemixer, mate-desktop, mate-panel, gettext"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, mate-common"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--sysconfdir=$TERMUX_PREFIX/etc
--localstatedir=$TERMUX_PREFIX/var
"

View File

@@ -0,0 +1,13 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Simple window management tool"
TERMUX_PKG_LICENSE="GPL-3.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.27.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-netbook/releases/download/v$TERMUX_PKG_VERSION/mate-netbook-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=b41a890c515e4dc2f51038fbc0fca65344a3b8551c7d7fd04b5470f18049df4c
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="libfakekey, mate-panel, gettext"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, mate-common"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--sysconfdir=$TERMUX_PREFIX/etc
"

View File

@@ -0,0 +1,13 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Notification daemon for MATE"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.5"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-notification-daemon/releases/download/v$TERMUX_PKG_VERSION/mate-notification-daemon-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=d3090ea9d1a859e2def9c4d2319f9ac96a79b7a33598a97784db40be2508f668
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="libcanberra, libwnck, libnotify, gettext, mate-panel"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, glib, mate-common, python"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--sysconfdir=$TERMUX_PREFIX/etc
"

View File

@@ -0,0 +1,17 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Screensaver for MATE"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-screensaver/releases/download/v$TERMUX_PKG_VERSION/mate-screensaver-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=6a0f24a8f84a2f95e10114ab53e63fd4aca688a55fdc503ed650e0a410e3ea70
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="mate-panel, libmatekbd, gettext, libnotify, libxss, mate-desktop, mate-menus, mate-session-manager"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, glib, mate-common"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--sysconfdir=$TERMUX_PREFIX/etc
--with-mit-ext
--with-libnotify
--disable-locking
--without-console-kit
"

View File

@@ -0,0 +1,22 @@
--- a/savers/slideshow.c
+++ b/savers/slideshow.c
@@ -103,7 +103,7 @@ main (int argc, char **argv)
{
location = xdg_user_dir_lookup ("PICTURES");
if (location == NULL ||
- strcmp (location, "/tmp") == 0 ||
+ strcmp (location, "@TERMUX_PREFIX@/tmp") == 0 ||
strcmp (location, g_get_home_dir ()) == 0)
{
free (location);
--- a/savers/xdg-user-dir-lookup.c
+++ b/savers/xdg-user-dir-lookup.c
@@ -45,7 +45,7 @@ xdg_user_dir_lookup (const char *type)
home_dir = getenv ("HOME");
if (home_dir == NULL)
- return strdup ("/tmp");
+ return strdup ("@TERMUX_PREFIX@/tmp");
config_home = getenv ("XDG_CONFIG_HOME");
if (config_home == NULL || config_home[0] == 0)

View File

@@ -3,15 +3,11 @@ TERMUX_PKG_DESCRIPTION="mate-settings-daemon is a fork of gnome-settings-daemon"
TERMUX_PKG_LICENSE="GPL-2.0, LGPL-2.1"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://github.com/mate-desktop/mate-settings-daemon/releases/download/v$TERMUX_PKG_VERSION/mate-settings-daemon-$TERMUX_PKG_VERSION.tar.xz
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-settings-daemon/releases/download/v$TERMUX_PKG_VERSION/mate-settings-daemon-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=4ed7cdadaaa4c99efffc0282b8411703bb76e072c41c4b57989f8c5b40611a3a
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="atk, dbus, dbus-glib, dconf, fontconfig, freetype, gdk-pixbuf, glib, gtk3, harfbuzz, libcairo, libice, libmatekbd, libnotify, libsm, libx11, libxext, libxi, libxklavier, mate-desktop, pango, startup-notification, zlib"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--without-libcanberra
--without-libmatemixer
"
TERMUX_PKG_DEPENDS="atk, dbus, dbus-glib, dconf, fontconfig, freetype, gdk-pixbuf, glib, gtk3, harfbuzz, libcairo, libcanberra, libice, libmatekbd, libmatemixer, libnotify, libsm, libx11, libxext, libxi, libxklavier, mate-desktop, pango, startup-notification, zlib"
termux_step_pre_configure() {
LDFLAGS+=" -lm"

View File

@@ -0,0 +1,13 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Process viewer and system resource monitor for MATE"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.1"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-system-monitor/releases/download/v$TERMUX_PKG_VERSION/mate-system-monitor-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=42d663d6b90fb5361ebc13f6547983d6f1e2ac75dc2ae4f1cac6ea6329965a25
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="gettext, glib, gtkmm3, libgtop, libsm, librsvg"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, mate-common"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--disable-systemd
"

View File

@@ -0,0 +1,20 @@
--- a/Makefile.in
+++ b/Makefile.in
@@ -169,7 +169,7 @@ am__installdirs = "$(DESTDIR)$(man1dir)" \
"$(DESTDIR)$(polkit_policydir)"
NROFF = nroff
MANS = $(man_MANS)
-DATA = $(Applications_DATA) $(appdata_DATA) $(polkit_policy_DATA)
+DATA = $(Applications_DATA) $(appdata_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
@@ -982,7 +982,7 @@ info: info-recursive
info-am:
install-data-am: install-ApplicationsDATA install-appdataDATA \
- install-man install-polkit_policyDATA
+ install-man
install-dvi: install-dvi-recursive

View File

@@ -0,0 +1,27 @@
--- a/src/disks.cpp
+++ b/src/disks.cpp
@@ -17,6 +17,24 @@
#include "interface.h"
#include "iconthemewrapper.h"
+#if defined __ANDROID__ && __ANDROID_API__ < 26
+#include <dlfcn.h>
+static char *hasmntopt(const struct mntent *__entry, const char *__option)
+{
+ static int initialized = 0;
+ static char *(*libc_impl)(const struct mntent *, const char *) = NULL;
+ if (!initialized) {
+ void *libc_handle = dlopen("libc.so", RTLD_NOW);
+ if (libc_handle != NULL)
+ libc_impl = (char *(*)(const struct mntent *, const char *))dlsym(libc_handle, "hasmntopt");
+ initialized = 1;
+ }
+ if (libc_impl != NULL)
+ return libc_impl(__entry, __option);
+ return NULL;
+}
+#endif
+
namespace
{
const unsigned DISK_ICON_SIZE = 24;

View File

@@ -0,0 +1,18 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Official themes for the MATE desktop"
TERMUX_PKG_LICENSE="LGPL-2.1-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="3.22.26"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-themes/releases/download/v$TERMUX_PKG_VERSION/mate-themes-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=224e89d364eb3b73f1cf756d05494a98421a93cbf54349a2c85fc607eb755ed7
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, mate-common"
TERMUX_PKG_RECOMMENDS="mate-icon-theme"
TERMUX_PKG_PLATFORM_INDEPENDENT=true
termux_step_pre_configure() {
# Remove check for gtk2
sed -i '/Check GTK+ theme engines/,+3d' configure.ac
autoreconf -fi
}

View File

@@ -0,0 +1,86 @@
alternative to distutilsextra that can be inserted into setup.py
based on https://davesteele.github.io/development/2015/12/11/add-i18n-to-setup-py/
diff --git a/setup.py b/setup.py
index 412527b..2e79447 100755
--- a/setup.py
+++ b/setup.py
@@ -20,13 +20,11 @@
import os
import sys
+import shutil
from glob import glob
from setuptools import setup
-
-import DistUtilsExtra.command.build_extra
-import DistUtilsExtra.command.build_i18n
-import DistUtilsExtra.command.clean_i18n
+from setuptools.command.build import build
# to update i18n .mo files (and merge .pot file into .po files) run on Linux:
# tx pull -a --minimum-perc=5
@@ -43,6 +41,48 @@ with open('mate-tweak') as f:
PROGRAM_VERSION = __VERSION__
+podir = "po"
+pos = [x for x in os.listdir(podir) if x[-3:] == ".po"]
+langs = sorted([os.path.split(x)[-1][:-3] for x in pos])
+
+def mkmo(lang):
+ outpath = os.path.join("build/mo", lang, "LC_MESSAGES")
+ if os.path.exists(outpath):
+ shutil.rmtree(outpath)
+ os.makedirs(outpath)
+
+ inpath = os.path.join(podir, lang + ".po")
+
+ cmd = "msgfmt %s -o %s/%s.mo" % (inpath, outpath, "mate-tweak")
+ os.system(cmd)
+
+def merge_i18n():
+ cmd = "LC_ALL=C intltool-merge -u -c ./po/.intltool-merge-cache ./po "
+ for infile in (x[:-3] for x in os.listdir('.') if x[-3:] == '.in'):
+ print("Processing %s.in to %s" % (infile, infile))
+
+ if 'desktop' in infile:
+ flag = '-d'
+ elif 'schema' in infile:
+ flag = '-s'
+ elif 'xml' in infile:
+ flag = '-x'
+ else:
+ flag = ''
+
+ if flag:
+ os.system("%s %s %s.in %s" % (cmd, flag, infile, infile))
+
+class custom_build(build):
+ def run(self, *args):
+ build.run(self, *args)
+
+ for lang in langs:
+ mkmo(lang)
+
+ merge_i18n()
+ data_files.extend(datafilelist('{prefix}/share/locale'.format(prefix=sys.prefix), 'build/mo'))
+
def datafilelist(installbase, sourcebase):
datafileList = []
for root, subFolders, files in os.walk(sourcebase):
@@ -62,12 +102,9 @@ data_files = [
('{prefix}/share/polkit-1/actions'.format(prefix=sys.prefix), ['data/org.mate.mate-tweak.policy',]),
('{prefix}/lib/mate-tweak'.format(prefix=sys.prefix), ['data/mate-tweak.ui', 'util/mate-tweak-helper']),
]
-data_files.extend(datafilelist('{prefix}/share/locale'.format(prefix=sys.prefix), 'build/mo'))
cmdclass ={
- "build" : DistUtilsExtra.command.build_extra.build_extra,
- "build_i18n" : DistUtilsExtra.command.build_i18n.build_i18n,
- "clean": DistUtilsExtra.command.clean_i18n.clean_i18n,
+ "build" : custom_build,
}
setup(

View File

@@ -0,0 +1,25 @@
TERMUX_PKG_HOMEPAGE=https://github.com/ubuntu-mate/mate-tweak
TERMUX_PKG_DESCRIPTION="Tweak tool for the MATE Desktop"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="22.10.0"
TERMUX_PKG_SRCURL="https://github.com/ubuntu-mate/mate-tweak/archive/refs/tags/$TERMUX_PKG_VERSION.tar.gz"
TERMUX_PKG_SHA256=c33c092b0151b50d8a5706825f1bcef57f1738f8f5cf22af49c11f45bc14e84a
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_PYTHON_RUNTIME_DEPS="distro, psutil, setproctitle"
TERMUX_PKG_DEPENDS="dconf, gsettings-desktop-schemas, ldd, libnotify, libmatekbd, mate-applets, mate-panel, pygobject, python, python-pip"
TERMUX_PKG_SUGGESTS="mate-applet-brisk-menu, plank-reloaded, tilda, mate-applet-appmenu"
TERMUX_PKG_BUILD_DEPENDS="rsync"
TERMUX_PKG_PLATFORM_INDEPENDENT=true
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_RM_AFTER_INSTALL="
local
share/polkit-1
"
termux_step_post_make_install() {
# this software installs itself in a really messed-up directory structure.
# The easiest way to explain what is wrong is to just show commands fixing it after installation:
rsync -av "$TERMUX_PREFIX/local/bin/" "$TERMUX_PREFIX/bin"
rsync -av "$TERMUX_PREFIX/local/lib/python$TERMUX_PYTHON_VERSION/dist-packages/usr/" "$TERMUX_PREFIX"
}

View File

@@ -0,0 +1,280 @@
--- a/mate-tweak
+++ b/mate-tweak
@@ -96,7 +96,7 @@ __MENU_TRADITIONAL_BUTTONS__ = "menu:minimize,maximize,close"
__MENU_CONTEMPORARY_BUTTONS__ = "close,minimize,maximize:menu"
# i18n
-gettext.install('mate-tweak', os.path.join('/','usr','share','locale'))
+gettext.install('mate-tweak', os.path.join('@TERMUX_PREFIX@','share','locale'))
class SidePage:
def __init__(self, notebook_index, name, icon):
@@ -295,7 +295,7 @@ class MateTweak:
def create_autostart(self, filename, content):
# Create a local autostart only if it is missing from the system path.
- if not os.path.exists(os.path.join('/','usr','share','mate','autostart',filename)):
+ if not os.path.exists(os.path.join('@TERMUX_PREFIX@','share','mate','autostart',filename)):
config_dir = GLib.get_user_config_dir()
self.mkdir_p(os.path.join(config_dir, 'autostart/'))
if not os.path.exists(os.path.join(config_dir, 'autostart',filename)):
@@ -309,8 +309,8 @@ class MateTweak:
os.remove(autostart_file)
# Make sure any system desktop files are also removed
- mate_tweak_helper = os.path.join('/','usr', 'lib', 'mate-tweak', 'mate-tweak-helper')
- subprocess.call(['pkexec', mate_tweak_helper, 'autostop', filename], stdout=DEVNULL, stderr=DEVNULL)
+ mate_tweak_helper = os.path.join('@TERMUX_PREFIX@', 'lib', 'mate-tweak', 'mate-tweak-helper')
+ subprocess.call([mate_tweak_helper, 'autostop', filename], stdout=DEVNULL, stderr=DEVNULL)
def check_wm_features(self):
screen = Gdk.Screen.get_default()
@@ -447,7 +447,7 @@ class MateTweak:
if self.hud_available and not self.process_running('mate-hud'):
if self.schema_has_key('org.mate.hud', 'enabled'):
self.set_bool('org.mate.hud', None, 'enabled', True)
- pid = subprocess.Popen(['/usr/lib/mate-hud/mate-hud'], stdout=DEVNULL, stderr=DEVNULL).pid
+ pid = subprocess.Popen(['@TERMUX_PREFIX@/lib/mate-hud/mate-hud'], stdout=DEVNULL, stderr=DEVNULL).pid
self.hud_enabled = True
def disable_hud(self):
@@ -555,7 +555,7 @@ class MateTweak:
"""
self.kill_process('mate-volume-control-applet')
self.remove_autostart('mate-volume-control-applet.desktop')
- if os.path.exists('/usr/libexec/ayatana-indicator-power/ayatana-indicator-power-service'):
+ if os.path.exists('@TERMUX_PREFIX@/libexec/ayatana-indicator-power/ayatana-indicator-power-service'):
self.set_string('org.mate.power-manager', None, 'icon-policy', 'never')
self.set_bool('org.mate.power-manager', None, 'notify-low-capacity', False)
@@ -568,10 +568,10 @@ class MateTweak:
When indicators are disabled some MATE applets need enabling
or showing.
"""
- pid = subprocess.Popen(['mate-volume-control-applet'], stdout=DEVNULL, stderr=DEVNULL).pid
+ pid = subprocess.Popen(['@TERMUX_PREFIX@/libexec/mate-volume-control-applet'], stdout=DEVNULL, stderr=DEVNULL).pid
self.remove_autostart('mate-volume-control-applet.desktop')
self.create_autostart('mate-volume-control-applet.desktop', __APPLET_SOUND__)
- if os.path.exists('/usr/libexec/ayatana-indicator-power/ayatana-indicator-power-service'):
+ if os.path.exists('@TERMUX_PREFIX@/libexec/ayatana-indicator-power/ayatana-indicator-power-service'):
self.set_string('org.mate.power-manager', None, 'icon-policy', 'present')
self.set_bool('org.mate.power-manager', None, 'notify-low-capacity', True)
@@ -591,7 +591,7 @@ class MateTweak:
def panel_layout_uses(self, applet, panel_layout):
try:
- with open(os.path.join('/','usr','share','mate-panel','layouts', panel_layout + '.layout'), 'rb', 0) as layout, \
+ with open(os.path.join('@TERMUX_PREFIX@','share','mate-panel','layouts', panel_layout + '.layout'), 'rb', 0) as layout, \
mmap.mmap(layout.fileno(), 0, access=mmap.ACCESS_READ) as data:
if data.find(applet.encode('utf-8')) != -1:
return True
@@ -622,7 +622,7 @@ class MateTweak:
settings = {}
if self.panel_layout_uses(section, panel_layout):
try:
- with open(os.path.join('/','usr','share','mate-panel','layouts', panel_layout + '.layout'), 'rb', 0) as layout, \
+ with open(os.path.join('@TERMUX_PREFIX@','share','mate-panel','layouts', panel_layout + '.layout'), 'rb', 0) as layout, \
mmap.mmap(layout.fileno(), 0, access=mmap.ACCESS_READ) as data:
section_pos = data.find(section.encode('utf-8'))
@@ -791,12 +791,12 @@ class MateTweak:
self.set_enum('com.solus-project.brisk-menu', None, 'window-type', 1)
# If we have a custom panel layout just replace the dconf dump.
- if os.path.exists(os.path.join('/','usr','share','mate-panel','layouts', new_layout + '.panel')):
+ if os.path.exists(os.path.join('@TERMUX_PREFIX@','share','mate-panel','layouts', new_layout + '.panel')):
# Reset panel configuration to defaults.
self.reset_dconf_path('/org/mate/panel/objects/')
self.reset_dconf_path('/org/mate/panel/toplevels/')
print('Loading additional panel configuration for ' + new_layout)
- cmd = 'dconf load /org/mate/panel/ < /usr/share/mate-panel/layouts/' + new_layout + '.panel'
+ cmd = 'dconf load /org/mate/panel/ < @TERMUX_PREFIX@/share/mate-panel/layouts/' + new_layout + '.panel'
subprocess.call(cmd, shell=True, stdout=DEVNULL, stderr=DEVNULL)
else:
# Set the new layout
@@ -828,7 +828,7 @@ class MateTweak:
self.maximus_decorate()
# Determine if the dock should be enabled
- if os.path.exists(os.path.join('/','usr','share','mate-panel','layouts', new_layout + '.dock')) and self.dock is not None:
+ if os.path.exists(os.path.join('@TERMUX_PREFIX@','share','mate-panel','layouts', new_layout + '.dock')) and self.dock is not None:
print('Found dock hint for ' + new_layout)
mate_theme = self.get_string('org.mate.interface', None, 'gtk-theme')
if not new_layout.startswith('mutiny'):
@@ -930,7 +930,7 @@ class MateTweak:
self.disable_keyboard_led()
def panel_layout_exists(self, panel_layout):
- return os.path.exists('/usr/share/mate-panel/layouts/' + panel_layout + '.layout')
+ return os.path.exists('@TERMUX_PREFIX@/share/mate-panel/layouts/' + panel_layout + '.layout')
def check_glx_features(self):
if self.find_on_path('glxinfo'):
@@ -1061,7 +1061,7 @@ class MateTweak:
def check_dock_features(self):
# Order matters. Plank is preferred.
if self.find_on_path('plank') and \
- os.path.exists(os.path.join('/','usr','share','applications', 'plank.desktop')):
+ os.path.exists(os.path.join('@TERMUX_PREFIX@','share','applications', 'net.launchpad.plank.desktop')):
self.dock = 'plank'
else:
self.dock = None
@@ -1085,7 +1085,7 @@ class MateTweak:
self.pulldown_terminal_enabled = False
def check_hud_features(self):
- if os.path.exists('/usr/lib/mate-hud/mate-hud'):
+ if os.path.exists('@TERMUX_PREFIX@/lib/mate-hud/mate-hud'):
self.hud_available = True
if self.schema_has_key('org.mate.hud', 'enabled'):
self.hud_enabled = self.get_bool('org.mate.hud', None, 'enabled')
@@ -1107,38 +1107,38 @@ class MateTweak:
self.brisk_menu_available = False
self.appmenu_applet_available = False
- if os.path.exists('/usr/libexec/ayatana-indicator-application/ayatana-indicator-application-service') and \
- os.path.exists('/usr/share/mate-panel/applets/org.mate.applets.Indicator.mate-panel-applet'):
+ if os.path.exists('@TERMUX_PREFIX@/libexec/ayatana-indicator-application/ayatana-indicator-application-service') and \
+ os.path.exists('@TERMUX_PREFIX@/share/mate-panel/applets/org.mate.applets.Indicator.mate-panel-applet'):
self.indicators_available = True
- if os.path.exists('/usr/share/applications/mageia-drakconf.desktop'):
+ if os.path.exists('@TERMUX_PREFIX@/share/applications/mageia-drakconf.desktop'):
self.mageia_cc_available = True
- if os.path.exists('/usr/lib/mate-applets/mate-dock-applet/dock.py'):
+ if os.path.exists('@TERMUX_PREFIX@/lib/mate-applets/mate-dock-applet/dock.py'):
self.mate_dock_available = True
- if os.path.exists('/usr/lib/mate-menu/mate-menu.py'):
+ if os.path.exists('@TERMUX_PREFIX@/lib/mate-menu/mate-menu.py'):
self.mate_menu_available = True
- if os.path.exists('/usr/lib/' + self.multiarch + '/brisk-menu/brisk-menu') or \
- os.path.exists('/usr/lib/brisk-menu/brisk-menu') or \
- os.path.exists('/usr/libexec/brisk-menu'):
- if os.path.exists('/usr/share/mate-panel/applets/com.solus_project.brisk.BriskMenu.mate-panel-applet'):
+ if os.path.exists('@TERMUX_PREFIX@/lib/' + self.multiarch + '/brisk-menu/brisk-menu') or \
+ os.path.exists('@TERMUX_PREFIX@/lib/brisk-menu/brisk-menu') or \
+ os.path.exists('@TERMUX_PREFIX@/libexec/brisk-menu'):
+ if os.path.exists('@TERMUX_PREFIX@/share/mate-panel/applets/com.solus_project.brisk.BriskMenu.mate-panel-applet'):
self.brisk_menu_available = True
- if os.path.exists('/usr/lib/' + self.multiarch + '/mate-panel/libappmenu-mate.so') and \
- os.path.exists('/usr/share/mate-panel/applets/org.vala-panel.appmenu.mate-panel-applet'):
+ if os.path.exists('@TERMUX_PREFIX@/lib/mate-panel/libappmenu-mate.so') and \
+ os.path.exists('@TERMUX_PREFIX@/share/mate-panel/applets/org.vala-panel.appmenu.mate-panel-applet'):
self.appmenu_applet_available = True
- if os.path.exists('/usr/bin/mate-maximus') and \
- os.path.exists('/usr/lib/mate-netbook/mate-window-picker-applet'):
+ if os.path.exists('@TERMUX_PREFIX@/bin/mate-maximus') and \
+ os.path.exists('@TERMUX_PREFIX@/lib/mate-netbook/mate-window-picker-applet'):
self.maximus_available = True
- if os.path.exists('/usr/lib/linuxmint/mintMenu/mintMenu.py'):
+ if os.path.exists('@TERMUX_PREFIX@/lib/linuxmint/mintMenu/mintMenu.py'):
self.mint_menu_available = True
config_dir = GLib.get_user_config_dir()
- if os.path.exists('/etc/xdg/autostart/mate-volume-control-applet.desktop') or \
+ if os.path.exists('@TERMUX_PREFIX@/etc/xdg/autostart/mate-volume-control-applet.desktop') or \
os.path.exists(os.path.join(config_dir, 'autostart/') + 'mate-volume-control-applet.desktop'):
self.volume_applet_enabled = True
@@ -1161,7 +1161,7 @@ class MateTweak:
# Use 'ldd' to determine which Marco compositor is enabled.
compositor = "Xrender"
try:
- ldd = subprocess.Popen('ldd /usr/bin/marco', shell=True, stdout=subprocess.PIPE)
+ ldd = subprocess.Popen('ldd @TERMUX_PREFIX@/bin/marco', shell=True, stdout=subprocess.PIPE)
for line in ldd.stdout:
if "libXpresent" in str(line):
compositor = "Xpresent"
@@ -1291,7 +1291,7 @@ class MateTweak:
print(self.system_installed_panel_layouts)
# Add any saved panel layouts to the start.
- layouts = os.path.join('/','usr','share','mate-panel','layouts','*-tweak.layout')
+ layouts = os.path.join('@TERMUX_PREFIX@','share','mate-panel','layouts','*-tweak.layout')
for layout in glob.glob(layouts):
list_entry = self.get_custom_panel_list_entry(layout)
panels.prepend([list_entry['displayname'], list_entry['codename']])
@@ -1305,7 +1305,7 @@ class MateTweak:
self.system_installed_panel_layouts.append(item_code_name)
def get_custom_panel_list_entry(self, layout_full_name):
- layout_code_name = layout_full_name.replace('.layout','').replace('/usr/share/mate-panel/layouts/', '')
+ layout_code_name = layout_full_name.replace('.layout','').replace('@TERMUX_PREFIX@/share/mate-panel/layouts/', '')
layout_display_name = layout_code_name
custom_layout_prefix = self.get_custom_layout_file_prefix(layout_code_name)
@@ -1372,8 +1372,8 @@ class MateTweak:
text = _('<b>Deleting this custom layout will also return your layout to the system default.</b>\n\nAre you sure you want to permanently delete this custom layout?')
if self.confirm_dialog(title, text):
- mate_tweak_helper = os.path.join('/','usr', 'lib', 'mate-tweak', 'mate-tweak-helper')
- delete = subprocess.call(['pkexec', mate_tweak_helper, 'delete', old_layout], stdout=DEVNULL, stderr=DEVNULL)
+ mate_tweak_helper = os.path.join('@TERMUX_PREFIX@', 'lib', 'mate-tweak', 'mate-tweak-helper')
+ delete = subprocess.call([mate_tweak_helper, 'delete', old_layout], stdout=DEVNULL, stderr=DEVNULL)
Notify.init(_('MATE Tweak'))
delete_panel_notify=Notify.Notification.new (_('Panel Layout Deleted'),_('Your panel layout has been deleted: ') + old_layout.replace('-tweak','') , 'dialog-information')
delete_panel_notify.show()
@@ -1403,11 +1403,11 @@ class MateTweak:
if self.panel_layout_exists(layoutname):
print('Layout exists. Ignoring that for now and over writting it.')
- mate_tweak_helper = os.path.join('/','usr', 'lib', 'mate-tweak', 'mate-tweak-helper')
+ mate_tweak_helper = os.path.join('@TERMUX_PREFIX@', 'lib', 'mate-tweak', 'mate-tweak-helper')
backup = subprocess.call([mate_tweak_helper, 'backup', layoutname], stdout=DEVNULL, stderr=DEVNULL)
if self.dock_enabled:
dock = subprocess.call([mate_tweak_helper, 'dock', layoutname], stdout=DEVNULL, stderr=DEVNULL)
- install = subprocess.call(['pkexec', mate_tweak_helper, 'install', layoutname], stdout=DEVNULL, stderr=DEVNULL)
+ install = subprocess.call([mate_tweak_helper, 'install', layoutname], stdout=DEVNULL, stderr=DEVNULL)
Notify.init(_('MATE Tweak'))
save_panels_notify=Notify.Notification.new (_('Panel Layout Saved'),_('Your panel layout has been saved as ') + layoutname.replace('-tweak',''), 'dialog-information')
save_panels_notify.show()
@@ -1472,7 +1472,7 @@ class MateTweak:
print('Development mode.')
self.builder.add_from_file('./data/mate-tweak.ui')
else:
- self.builder.add_from_file('/usr/lib/mate-tweak/mate-tweak.ui')
+ self.builder.add_from_file('@TERMUX_PREFIX@/lib/mate-tweak/mate-tweak.ui')
self.window = self.builder.get_object( "main_window" )
self.builder.get_object("main_window").connect("destroy", Gtk.main_quit)
--- a/util/mate-tweak-helper
+++ b/util/mate-tweak-helper
@@ -28,7 +28,7 @@ from subprocess import PIPE
def autostop(filename):
- desktopfile = os.path.join('/','etc','xdg','autostart', filename)
+ desktopfile = os.path.join('@TERMUX_PREFIX@','etc','xdg','autostart', filename)
if os.path.exists(desktopfile):
os.remove(desktopfile)
@@ -36,18 +36,18 @@ def autostop(filename):
def install_layout(filename):
if os.path.exists(os.path.join(tempfile.gettempdir(),filename)):
shutil.copy2(os.path.join(tempfile.gettempdir(),filename),
- os.path.join('/','usr','share','mate-panel','layouts',filename))
+ os.path.join('@TERMUX_PREFIX@','share','mate-panel','layouts',filename))
os.remove(os.path.join(tempfile.gettempdir(),filename))
else:
# If a .dock hint is not found but is installed, remove it.
- if filename.endswith('dock') and os.path.exists(os.path.join('/','usr','share','mate-panel','layouts',filename)):
- os.remove(os.path.join('/','usr','share','mate-panel','layouts',filename))
+ if filename.endswith('dock') and os.path.exists(os.path.join('@TERMUX_PREFIX@','share','mate-panel','layouts',filename)):
+ os.remove(os.path.join('@TERMUX_PREFIX@','share','mate-panel','layouts',filename))
print('Unable to find ' + os.path.join(tempfile.gettempdir(),filename))
def delete_layout(filename):
if 'tweak' in filename:
- layout = os.path.join('/','usr','share','mate-panel','layouts',filename)
+ layout = os.path.join('@TERMUX_PREFIX@','share','mate-panel','layouts',filename)
if os.path.exists(layout):
os.remove(layout)
else:

View File

@@ -0,0 +1,41 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Common MATE utilities for viewing disk usage, logs and fonts, taking screenshots, managing dictionaries and searching files"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mate-utils/releases/download/v$TERMUX_PKG_VERSION/mate-utils-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=58449d7a0d1d900ff03b78ca9f7e98c21e97f47fc26bee7ff1c61834f22f88d3
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="mate-desktop, gettext, libcanberra, libgtop, libsm, libxml2"
TERMUX_PKG_SUGGESTS="mate-panel"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, glib, inkscape, mate-common, mate-panel, python"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--sysconfdir=$TERMUX_PREFIX/etc
--disable-maintainer-flags
--disable-disk-image-mounter
"
TERMUX_PKG_CONFFILES="
etc/mate-system-log.conf
"
termux_step_post_make_install() {
# populate a custom configuration file in syslog.conf-like format
# with log file locations that are likely to exist in Termux
mkdir -p "$TERMUX_PREFIX/etc"
if [[ "$TERMUX_PACKAGE_FORMAT" == "debian" ]]; then
cat <<- EOF > "$TERMUX_PREFIX/etc/mate-system-log.conf"
$TERMUX_PREFIX/var/log/apt/history.log
$TERMUX_PREFIX/var/log/apt/term.log
$TERMUX_PREFIX/var/log/aptitude
$TERMUX_PREFIX/var/log/alternatives.log
$TERMUX_PREFIX/var/log/oma/history
$TERMUX_PREFIX/var/log/dpkg.log
EOF
fi
if [[ "$TERMUX_PACKAGE_FORMAT" == "pacman" ]]; then
cat <<- EOF > "$TERMUX_PREFIX/etc/mate-system-log.conf"
$TERMUX_PREFIX/var/log/pacman.log
EOF
fi
}

View File

@@ -0,0 +1,14 @@
If a configuration file with valid data does not exist in this location,
mate-system-log will crash on launch
--- a/logview/src/logview-app.c
+++ b/logview/src/logview-app.c
@@ -99,7 +99,7 @@ parse_syslog (void)
FILE *cf;
GSList *logfiles = NULL;
- if ((cf = fopen ("/etc/syslog.conf", "r")) == NULL) {
+ if ((cf = fopen ("@TERMUX_PREFIX@/etc/mate-system-log.conf", "r")) == NULL) {
return NULL;
}

View File

@@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="A metapackage that installs all parts of the MATE desktop environment"
TERMUX_PKG_LICENSE="Public Domain"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_AUTO_UPDATE=false
TERMUX_PKG_SKIP_SRC_EXTRACT=true
TERMUX_PKG_DEPENDS="caja, marco, mate-backgrounds, mate-control-center, mate-desktop, mate-icon-theme, mate-menus, mate-notification-daemon, mate-panel, mate-session-manager, mate-settings-daemon, mate-themes"
TERMUX_PKG_METAPACKAGE=true
TERMUX_PKG_PLATFORM_INDEPENDENT=true

View File

@@ -0,0 +1,19 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="MATE menu editing tool"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/mozo/releases/download/v$TERMUX_PKG_VERSION/mozo-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=fe98984ffd6aa8c36d0594bcefdba03de39b42d41e007251680384f3cef44924
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="gtk3, python, mate-menus, pygobject, gettext, mate-panel"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, mate-common"
TERMUX_PKG_RM_AFTER_INSTALL="
local
"
termux_step_post_make_install() {
mkdir -p "$TERMUX_PYTHON_HOME/site-packages"
mv "$TERMUX_PREFIX/local/lib/python$TERMUX_PYTHON_VERSION/dist-packages/Mozo" \
"$TERMUX_PYTHON_HOME/site-packages/"
}

View File

@@ -0,0 +1,30 @@
TERMUX_PKG_HOMEPAGE=https://mate-desktop.org/
TERMUX_PKG_DESCRIPTION="Powerful text editor for MATE"
TERMUX_PKG_LICENSE="GPL-2.0-or-later"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="1.28.0"
TERMUX_PKG_SRCURL="https://github.com/mate-desktop/pluma/releases/download/v$TERMUX_PKG_VERSION/pluma-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=aa8adf9589345093a50e30b27ede4a78a2421d1727c27f465fc87c435965a1d4
# version 1.28.1 has a build failure not only in Termux, but also the same error in upstream's own CI;
# wait for them to fix it
TERMUX_PKG_AUTO_UPDATE=false
TERMUX_PKG_DEPENDS="iso-codes, mate-desktop, zenity, gtksourceview4, glib, gobject-introspection, libpeas, gettext, enchant, libsm"
TERMUX_PKG_SUGGESTS="pygobject"
TERMUX_PKG_BUILD_DEPENDS="autoconf-archive, mate-common"
# the python plugins do not work because of a libpeas-related dependency conflict
# if upstream fixes that in the future, enable python in libpeas to resolve this
# (enabling python in libpeas will not resolve this
# until upstream pluma and/or libpeas and/or python-gobject fixes this problem)
# (setting --disable-python does not seem to hide the broken python plugins from the user,
# so there is no point to disabling python in pluma)
# More information:
# https://gitlab.archlinux.org/archlinux/packaging/packages/libpeas/-/commit/75310ec6c665e4104044b996e26b34c4ab169b2d
# https://gitlab.archlinux.org/archlinux/packaging/packages/pygobject/-/issues/3
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--enable-python
"
termux_step_pre_configure() {
termux_setup_gir
termux_setup_glib_cross_pkg_config_wrapper
}

View File

@@ -0,0 +1,242 @@
<?xml version="1.0"?>
<dump>
<boxed name="PlumaEncoding" get-type="pluma_encoding_get_type"/>
<class name="PlumaDocument" get-type="pluma_document_get_type" parents="GtkSourceBuffer,GtkTextBuffer,GObject">
<property name="uri" type="gchararray" flags="225" default-value="NULL"/>
<property name="shortname" type="gchararray" flags="227" default-value="NULL"/>
<property name="content-type" type="gchararray" flags="227" default-value="NULL"/>
<property name="mime-type" type="gchararray" flags="225" default-value="text/plain"/>
<property name="read-only" type="gboolean" flags="225" default-value="FALSE"/>
<property name="encoding" type="PlumaEncoding" flags="225"/>
<property name="can-search-again" type="gboolean" flags="225" default-value="FALSE"/>
<property name="enable-search-highlighting" type="gboolean" flags="227" default-value="FALSE"/>
<property name="newline-type" type="PlumaDocumentNewlineType" flags="163" default-value="PLUMA_DOCUMENT_NEWLINE_TYPE_LF"/>
<signal name="cursor-moved" return="void" when="last">
</signal>
<signal name="load" return="void" when="last">
<param type="gchararray"/>
<param type="PlumaEncoding"/>
<param type="gint"/>
<param type="gboolean"/>
</signal>
<signal name="loading" return="void" when="last">
<param type="guint64"/>
<param type="guint64"/>
</signal>
<signal name="loaded" return="void" when="last">
<param type="gpointer"/>
</signal>
<signal name="save" return="void" when="last">
<param type="gchararray"/>
<param type="PlumaEncoding"/>
<param type="PlumaDocumentSaveFlags"/>
</signal>
<signal name="saving" return="void" when="last">
<param type="guint64"/>
<param type="guint64"/>
</signal>
<signal name="saved" return="void" when="last">
<param type="gpointer"/>
</signal>
<signal name="search-highlight-updated" return="void" when="last">
<param type="GtkTextIter"/>
<param type="GtkTextIter"/>
</signal>
</class>
<class name="PlumaView" get-type="pluma_view_get_type" parents="GtkSourceView,GtkTextView,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkScrollable"/>
<signal name="start-interactive-search" return="gboolean" when="last" action="1">
</signal>
<signal name="start-interactive-goto-line" return="gboolean" when="last" action="1">
</signal>
<signal name="reset-searched-text" return="gboolean" when="last" action="1">
</signal>
<signal name="drop-uris" return="void" when="last" action="1">
<param type="GStrv"/>
</signal>
</class>
<class name="PlumaTab" get-type="pluma_tab_get_type" parents="GtkBox,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkOrientable"/>
<property name="name" type="gchararray" flags="225" default-value="NULL"/>
<property name="state" type="PlumaTabState" flags="225" default-value="PLUMA_TAB_STATE_NORMAL"/>
<property name="autosave" type="gboolean" flags="227" default-value="TRUE"/>
<property name="autosave-interval" type="gint" flags="227" default-value="0"/>
</class>
<class name="PlumaPanel" get-type="pluma_panel_get_type" parents="GtkBox,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkOrientable"/>
<property name="panel-orientation" type="GtkOrientation" flags="235" default-value="GTK_ORIENTATION_VERTICAL"/>
<signal name="item-added" return="void" when="first">
<param type="GtkWidget"/>
</signal>
<signal name="item-removed" return="void" when="first">
<param type="GtkWidget"/>
</signal>
<signal name="close" return="void" when="last" action="1">
</signal>
<signal name="focus-document" return="void" when="last" action="1">
</signal>
</class>
<class name="PlumaMessage" get-type="pluma_message_get_type" parents="GObject">
<property name="object-path" type="gchararray" flags="225" default-value="NULL"/>
<property name="method" type="gchararray" flags="225" default-value="NULL"/>
<property name="type" type="PlumaMessageType" flags="235"/>
</class>
<boxed name="PlumaMessageType" get-type="pluma_message_type_get_type"/>
<class name="PlumaMessageBus" get-type="pluma_message_bus_get_type" parents="GObject">
<signal name="dispatch" return="void" when="last">
<param type="PlumaMessage"/>
</signal>
<signal name="registered" return="void" when="last">
<param type="PlumaMessageType"/>
</signal>
<signal name="unregistered" return="void" when="last">
<param type="PlumaMessageType"/>
</signal>
</class>
<class name="PlumaWindow" get-type="pluma_window_get_type" parents="GtkWindow,GtkBin,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<property name="state" type="PlumaWindowState" flags="225" default-value="PLUMA_WINDOW_STATE_NORMAL"/>
<signal name="tab-added" return="void" when="first">
<param type="PlumaTab"/>
</signal>
<signal name="tab-removed" return="void" when="first">
<param type="PlumaTab"/>
</signal>
<signal name="tabs-reordered" return="void" when="first">
</signal>
<signal name="active-tab-changed" return="void" when="first">
<param type="PlumaTab"/>
</signal>
<signal name="active-tab-state-changed" return="void" when="first">
</signal>
</class>
<class name="PlumaApp" get-type="pluma_app_get_type" parents="GObject">
<property name="lockdown" type="PlumaLockdownMask" flags="225" default-value="0"/>
</class>
<interface name="PlumaAppActivatable" get-type="pluma_app_activatable_get_type">
<property name="app" type="PlumaApp" flags="235"/>
</interface>
<class name="PlumaEncodingsComboBox" get-type="pluma_encodings_combo_box_get_type" parents="GtkComboBox,GtkBin,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkCellLayout"/>
<implements name="GtkCellEditable"/>
<property name="save-mode" type="gboolean" flags="231" default-value="FALSE"/>
</class>
<class name="PlumaNotebook" get-type="pluma_notebook_get_type" parents="GtkNotebook,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<signal name="tab-added" return="void" when="first">
<param type="PlumaTab"/>
</signal>
<signal name="tab-removed" return="void" when="first">
<param type="PlumaTab"/>
</signal>
<signal name="tabs-reordered" return="void" when="first">
</signal>
<signal name="tab-detached" return="void" when="first">
<param type="PlumaTab"/>
</signal>
<signal name="tab-close-request" return="void" when="last">
<param type="PlumaTab"/>
</signal>
</class>
<class name="PlumaProgressMessageArea" get-type="pluma_progress_message_area_get_type" parents="GtkInfoBar,GtkBox,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkOrientable"/>
<property name="has-cancel-button" type="gboolean" flags="234" default-value="TRUE"/>
</class>
<class name="PlumaStatusbar" get-type="pluma_statusbar_get_type" parents="GtkStatusbar,GtkBox,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<implements name="GtkOrientable"/>
</class>
<class name="PlumaStatusComboBox" get-type="pluma_status_combo_box_get_type" parents="GtkEventBox,GtkBin,GtkContainer,GtkWidget,GInitiallyUnowned,GObject">
<implements name="AtkImplementorIface"/>
<implements name="GtkBuildable"/>
<property name="label" type="gchararray" flags="3" default-value="NULL"/>
<signal name="changed" return="void" when="last">
<param type="GtkMenuItem"/>
</signal>
</class>
<interface name="PlumaViewActivatable" get-type="pluma_view_activatable_get_type">
<property name="view" type="PlumaView" flags="235"/>
</interface>
<interface name="PlumaWindowActivatable" get-type="pluma_window_activatable_get_type">
<property name="window" type="PlumaWindow" flags="235"/>
</interface>
<flags name="PlumaLockdownMask" get-type="pluma_lockdown_mask_get_type">
<member name="PLUMA_LOCKDOWN_COMMAND_LINE" nick="command-line" value="1"/>
<member name="PLUMA_LOCKDOWN_PRINTING" nick="printing" value="2"/>
<member name="PLUMA_LOCKDOWN_PRINT_SETUP" nick="print-setup" value="4"/>
<member name="PLUMA_LOCKDOWN_SAVE_TO_DISK" nick="save-to-disk" value="8"/>
<member name="PLUMA_LOCKDOWN_ALL" nick="all" value="15"/>
</flags>
<flags name="PlumaDebugSection" get-type="pluma_debug_section_get_type">
<member name="PLUMA_NO_DEBUG" nick="no-debug" value="0"/>
<member name="PLUMA_DEBUG_VIEW" nick="debug-view" value="1"/>
<member name="PLUMA_DEBUG_SEARCH" nick="debug-search" value="2"/>
<member name="PLUMA_DEBUG_PRINT" nick="debug-print" value="4"/>
<member name="PLUMA_DEBUG_PREFS" nick="debug-prefs" value="8"/>
<member name="PLUMA_DEBUG_PLUGINS" nick="debug-plugins" value="16"/>
<member name="PLUMA_DEBUG_TAB" nick="debug-tab" value="32"/>
<member name="PLUMA_DEBUG_DOCUMENT" nick="debug-document" value="64"/>
<member name="PLUMA_DEBUG_COMMANDS" nick="debug-commands" value="128"/>
<member name="PLUMA_DEBUG_APP" nick="debug-app" value="256"/>
<member name="PLUMA_DEBUG_SESSION" nick="debug-session" value="512"/>
<member name="PLUMA_DEBUG_UTILS" nick="debug-utils" value="1024"/>
<member name="PLUMA_DEBUG_METADATA" nick="debug-metadata" value="2048"/>
<member name="PLUMA_DEBUG_WINDOW" nick="debug-window" value="4096"/>
<member name="PLUMA_DEBUG_LOADER" nick="debug-loader" value="8192"/>
<member name="PLUMA_DEBUG_SAVER" nick="debug-saver" value="16384"/>
</flags>
<enum name="PlumaDocumentNewlineType" get-type="pluma_document_newline_type_get_type">
<member name="PLUMA_DOCUMENT_NEWLINE_TYPE_LF" nick="lf" value="0"/>
<member name="PLUMA_DOCUMENT_NEWLINE_TYPE_CR" nick="cr" value="1"/>
<member name="PLUMA_DOCUMENT_NEWLINE_TYPE_CR_LF" nick="cr-lf" value="2"/>
</enum> <flags name="PlumaSearchFlags" get-type="pluma_search_flags_get_type">
<member name="PLUMA_SEARCH_DONT_SET_FLAGS" nick="dont-set-flags" value="1"/>
<member name="PLUMA_SEARCH_ENTIRE_WORD" nick="entire-word" value="2"/>
<member name="PLUMA_SEARCH_CASE_SENSITIVE" nick="case-sensitive" value="4"/>
<member name="PLUMA_SEARCH_PARSE_ESCAPES" nick="parse-escapes" value="8"/>
<member name="PLUMA_SEARCH_MATCH_REGEX" nick="match-regex" value="16"/>
</flags>
<flags name="PlumaDocumentSaveFlags" get-type="pluma_document_save_flags_get_type">
<member name="PLUMA_DOCUMENT_SAVE_IGNORE_MTIME" nick="ignore-mtime" value="1"/>
<member name="PLUMA_DOCUMENT_SAVE_IGNORE_BACKUP" nick="ignore-backup" value="2"/>
<member name="PLUMA_DOCUMENT_SAVE_PRESERVE_BACKUP" nick="preserve-backup" value="4"/>
</flags>
<enum name="PlumaTabState" get-type="pluma_tab_state_get_type">
<member name="PLUMA_TAB_STATE_NORMAL" nick="state-normal" value="0"/>
<member name="PLUMA_TAB_STATE_LOADING" nick="state-loading" value="1"/>
<member name="PLUMA_TAB_STATE_REVERTING" nick="state-reverting" value="2"/>
<member name="PLUMA_TAB_STATE_SAVING" nick="state-saving" value="3"/>
<member name="PLUMA_TAB_STATE_PRINTING" nick="state-printing" value="4"/>
<member name="PLUMA_TAB_STATE_PRINT_PREVIEWING" nick="state-print-previewing" value="5"/>
<member name="PLUMA_TAB_STATE_SHOWING_PRINT_PREVIEW" nick="state-showing-print-preview" value="6"/>
<member name="PLUMA_TAB_STATE_GENERIC_NOT_EDITABLE" nick="state-generic-not-editable" value="7"/>
<member name="PLUMA_TAB_STATE_LOADING_ERROR" nick="state-loading-error" value="8"/>
<member name="PLUMA_TAB_STATE_REVERTING_ERROR" nick="state-reverting-error" value="9"/>
<member name="PLUMA_TAB_STATE_SAVING_ERROR" nick="state-saving-error" value="10"/>
<member name="PLUMA_TAB_STATE_GENERIC_ERROR" nick="state-generic-error" value="11"/>
<member name="PLUMA_TAB_STATE_CLOSING" nick="state-closing" value="12"/>
<member name="PLUMA_TAB_STATE_EXTERNALLY_MODIFIED_NOTIFICATION" nick="state-externally-modified-notification" value="13"/>
<member name="PLUMA_TAB_NUM_OF_STATES" nick="num-of-states" value="14"/>
</enum> <flags name="PlumaWindowState" get-type="pluma_window_state_get_type">
<member name="PLUMA_WINDOW_STATE_NORMAL" nick="normal" value="0"/>
<member name="PLUMA_WINDOW_STATE_SAVING" nick="saving" value="2"/>
<member name="PLUMA_WINDOW_STATE_PRINTING" nick="printing" value="4"/>
<member name="PLUMA_WINDOW_STATE_LOADING" nick="loading" value="8"/>
<member name="PLUMA_WINDOW_STATE_ERROR" nick="error" value="16"/>
<member name="PLUMA_WINDOW_STATE_SAVING_SESSION" nick="saving-session" value="32"/>
</flags>
<error-quark function="pluma_document_error_quark" domain="pluma_io_load_error"/>
</dump>

View File

@@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Global Menu for Vala Panel (metapackage)"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="25.04"
TERMUX_PKG_REVISION=1
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL=https://gitlab.com/vala-panel-project/vala-panel-appmenu/-/archive/${TERMUX_PKG_VERSION}/vala-panel-appmenu-${TERMUX_PKG_VERSION}.tar.bz2
TERMUX_PKG_SHA256=ff270de372c41f18f64e8788629dd4cc9f116a89ee8947e3fc2657b19182e2dc
TERMUX_PKG_AUTO_UPDATE=true
@@ -14,7 +14,7 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-Dwm_backend=wnck
-Dvalapanel=disabled
-Dxfce=enabled
-Dmate=disabled
-Dmate=enabled
-Dbudgie=disabled
-Dregistrar=disabled
-Dappmenu-gtk-module=enabled

View File

@@ -0,0 +1,6 @@
TERMUX_SUBPKG_INCLUDE="
lib/mate-panel/
share/mate-panel/
"
TERMUX_SUBPKG_DESCRIPTION="Global Menu applet for use with mate-panel"
TERMUX_SUBPKG_DEPENDS="mate-panel"