dbus: Do not try to switch user

as Termux is a single-user environment.
This commit is contained in:
Tee KOBAYASHI 2022-11-08 13:41:00 +09:00 committed by xtkoba
parent 184f895a80
commit 34bf2f3a1f
3 changed files with 49 additions and 0 deletions

View File

@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Freedesktop.org message bus system"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=1.15.2
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL="https://dbus.freedesktop.org/releases/dbus/dbus-$TERMUX_PKG_VERSION.tar.xz"
TERMUX_PKG_SHA256=7e640803084af59f5e477b7ded11fd888b5380910a895c51ca3aedd63c0626ca
TERMUX_PKG_DEPENDS="libexpat, libx11"

View File

@ -0,0 +1,12 @@
--- a/bus/activation-helper.c
+++ b/bus/activation-helper.c
@@ -294,7 +294,8 @@
static dbus_bool_t
switch_user (char *user, DBusError *error)
{
-#ifndef ACTIVATION_LAUNCHER_TEST
+/* Termux is a single-user environment. */
+#if !defined ACTIVATION_LAUNCHER_TEST && !defined __ANDROID__
struct passwd *pw;
/* find user */

View File

@ -0,0 +1,36 @@
--- a/dbus/dbus-sysdeps-util-unix.c
+++ b/dbus/dbus-sysdeps-util-unix.c
@@ -311,11 +311,16 @@
dbus_bool_t
_dbus_verify_daemon_user (const char *user)
{
+/* Termux is a single-user environment. */
+#ifdef __ANDROID__
+ return TRUE;
+#else
DBusString u;
_dbus_string_init_const (&u, user);
return _dbus_get_user_id_and_primary_group (&u, NULL, NULL);
+#endif
}
@@ -332,6 +337,8 @@
_dbus_change_to_daemon_user (const char *user,
DBusError *error)
{
+/* Termux is a single-user environment. */
+#ifndef __ANDROID__
dbus_uid_t uid;
dbus_gid_t gid;
DBusString u;
@@ -375,6 +382,7 @@
_dbus_strerror (errno));
return FALSE;
}
+#endif
return TRUE;
}