add xwayland
This commit is contained in:
parent
3ee7d52320
commit
5c9a539117
|
@ -0,0 +1,13 @@
|
||||||
|
TERMUX_PKG_HOMEPAGE=https://wayland.freedesktop.org/
|
||||||
|
TERMUX_PKG_DESCRIPTION="Wayland protocols library"
|
||||||
|
TERMUX_PKG_LICENSE="MIT"
|
||||||
|
TERMUX_PKG_MAINTAINER="Leonid Plyushch <leonid.plyushch@gmail.com>"
|
||||||
|
TERMUX_PKG_VERSION=1.17
|
||||||
|
TERMUX_PKG_SRCURL=https://wayland.freedesktop.org/releases/wayland-protocols-${TERMUX_PKG_VERSION}.tar.xz
|
||||||
|
TERMUX_PKG_SHA256=df1319cf9705643aea9fd16f9056f4e5b2471bd10c0cc3713d4a4cdc23d6812f
|
||||||
|
TERMUX_PKG_DEPENDS="libandroid-support"
|
||||||
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-documentation --with-host-scanner"
|
||||||
|
|
||||||
|
termux_step_post_make_install() {
|
||||||
|
mv ${TERMUX_PREFIX}/share/pkgconfig/wayland-protocols.pc ${TERMUX_PREFIX}/lib/pkgconfig/
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
+++ ./Makefile.am
|
||||||
|
@@ -71,7 +71,7 @@
|
||||||
|
protocol/wayland-client-protocol.h
|
||||||
|
|
||||||
|
libwayland_server_la_CFLAGS = $(FFI_CFLAGS) $(AM_CFLAGS) -pthread
|
||||||
|
-libwayland_server_la_LIBADD = $(FFI_LIBS) libwayland-private.la libwayland-util.la -lrt -lm
|
||||||
|
+libwayland_server_la_LIBADD = $(FFI_LIBS) libwayland-private.la libwayland-util.la -lm
|
||||||
|
libwayland_server_la_LDFLAGS = -version-info 1:0:1
|
||||||
|
libwayland_server_la_SOURCES = \
|
||||||
|
src/wayland-server.c \
|
||||||
|
@@ -83,7 +83,7 @@
|
||||||
|
protocol/wayland-protocol.c
|
||||||
|
|
||||||
|
libwayland_client_la_CFLAGS = $(FFI_CFLAGS) $(AM_CFLAGS) -pthread
|
||||||
|
-libwayland_client_la_LIBADD = $(FFI_LIBS) libwayland-private.la libwayland-util.la -lrt -lm
|
||||||
|
+libwayland_client_la_LIBADD = $(FFI_LIBS) libwayland-private.la libwayland-util.la -lm
|
||||||
|
libwayland_client_la_LDFLAGS = -version-info 3:0:3
|
||||||
|
libwayland_client_la_SOURCES = \
|
||||||
|
src/wayland-client.c
|
||||||
|
@@ -227,7 +227,7 @@
|
||||||
|
libwayland-client.la \
|
||||||
|
libwayland-server.la \
|
||||||
|
libtest-helpers.la \
|
||||||
|
- -lrt -ldl $(FFI_LIBS)
|
||||||
|
+ -ldl $(FFI_LIBS)
|
||||||
|
|
||||||
|
array_test_SOURCES = tests/array-test.c
|
||||||
|
array_test_LDADD = libtest-runner.la
|
|
@ -0,0 +1,17 @@
|
||||||
|
TERMUX_PKG_HOMEPAGE=https://wayland.freedesktop.org/
|
||||||
|
TERMUX_PKG_DESCRIPTION="Wayland protocol library"
|
||||||
|
TERMUX_PKG_LICENSE="MIT"
|
||||||
|
TERMUX_PKG_MAINTAINER="Leonid Plyushch <leonid.plyushch@gmail.com>"
|
||||||
|
TERMUX_PKG_VERSION=1.17.0
|
||||||
|
TERMUX_PKG_SRCURL=https://wayland.freedesktop.org/releases/wayland-${TERMUX_PKG_VERSION}.tar.xz
|
||||||
|
TERMUX_PKG_SHA256=72aa11b8ac6e22f4777302c9251e8fec7655dc22f9d94ee676c6b276f95f91a4
|
||||||
|
TERMUX_PKG_DEPENDS="libandroid-support, libffi, libxml2, libexpat, libxkbcommon"
|
||||||
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-documentation --with-host-scanner"
|
||||||
|
|
||||||
|
termux_step_pre_configure() {
|
||||||
|
autoreconf -fi
|
||||||
|
}
|
||||||
|
|
||||||
|
termux_step_post_make_install() {
|
||||||
|
sed -i 's/wayland_scanner=${exec_prefix}\/bin\/wayland-scanner/wayland_scanner=\/usr\/bin\/wayland-scanner/g' /data/data/com.termux/files/usr/lib/pkgconfig/wayland-scanner.pc
|
||||||
|
}
|
|
@ -0,0 +1,77 @@
|
||||||
|
TERMUX_PKG_HOMEPAGE=https://xorg.freedesktop.org/wiki/
|
||||||
|
TERMUX_PKG_DESCRIPTION="Wayland X11 server"
|
||||||
|
TERMUX_PKG_LICENSE="MIT"
|
||||||
|
TERMUX_PKG_MAINTAINER="Leonid Plyushch <leonid.plyushch@gmail.com>"
|
||||||
|
TERMUX_PKG_VERSION=1.20.3
|
||||||
|
TERMUX_PKG_SRCURL=https://xorg.freedesktop.org/releases/individual/xserver/xorg-server-${TERMUX_PKG_VERSION}.tar.bz2
|
||||||
|
TERMUX_PKG_SHA256=1b3ce466c12cacbe2252b3ad5b0ed561972eef9d09e75900d65fb1e21f9201de
|
||||||
|
TERMUX_PKG_DEPENDS="libandroid-shmem, libdrm, libpciaccess, libpixman, libx11, libxau, libxfont2, libxinerama, libxkbfile, libxshmfence, mesa, openssl, xkeyboard-config, xorg-xkbcomp, libwayland, libwayland-protocols, libepoxy"
|
||||||
|
|
||||||
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||||
|
--enable-composite
|
||||||
|
--enable-mitshm
|
||||||
|
--enable-xres
|
||||||
|
--enable-record
|
||||||
|
--enable-xv
|
||||||
|
--enable-xvmc
|
||||||
|
--enable-dga
|
||||||
|
--enable-screensaver
|
||||||
|
--enable-xdmcp
|
||||||
|
--disable-glx
|
||||||
|
--disable-dri
|
||||||
|
--disable-dri2
|
||||||
|
--disable-dri3
|
||||||
|
--enable-present
|
||||||
|
--enable-xinerama
|
||||||
|
--enable-xf86vidmode
|
||||||
|
--enable-xace
|
||||||
|
--enable-xcsecurity
|
||||||
|
--enable-dbe
|
||||||
|
--enable-xf86bigfont
|
||||||
|
--disable-xfree86-utils
|
||||||
|
--disable-vgahw
|
||||||
|
--disable-vbe
|
||||||
|
--disable-int10-module
|
||||||
|
--enable-libdrm
|
||||||
|
--disable-pciaccess
|
||||||
|
--disable-linux-acpi
|
||||||
|
--disable-linux-apm
|
||||||
|
--disable-xorg
|
||||||
|
--disable-glamor
|
||||||
|
--disable-dmx
|
||||||
|
--disable-xvfb
|
||||||
|
--disable-xnest
|
||||||
|
--enable-xwayland
|
||||||
|
--disable-xwin
|
||||||
|
--disable-kdrive
|
||||||
|
--disable-xephyr
|
||||||
|
--disable-libunwind
|
||||||
|
--enable-xshmfence
|
||||||
|
--enable-ipv6
|
||||||
|
--with-sha1=libcrypto
|
||||||
|
--with-fontrootdir=${TERMUX_PREFIX}/share/fonts
|
||||||
|
--with-xkb-path=${TERMUX_PREFIX}/share/X11/xkb
|
||||||
|
LIBS=-landroid-shmem"
|
||||||
|
|
||||||
|
termux_step_pre_configure () {
|
||||||
|
CFLAGS+=" -DFNDELAY=O_NDELAY -Wno-int-to-pointer-cast"
|
||||||
|
CPPFLAGS+=" -I${TERMUX_PREFIX}/include/libdrm"
|
||||||
|
|
||||||
|
if [ -n "${TERMUX_DEBUG}" ]; then
|
||||||
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --enable-debug"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# fixing automake version mismatch
|
||||||
|
cd ${TERMUX_PKG_SRCDIR}
|
||||||
|
files=`find . -name configure -o -name config.status -o -name Makefile.in`
|
||||||
|
for file in $files; do rm $file; done
|
||||||
|
unset files
|
||||||
|
|
||||||
|
#you will need xutils-dev package for xorg-macros installed
|
||||||
|
autoreconf -if
|
||||||
|
cd -
|
||||||
|
}
|
||||||
|
|
||||||
|
termux_step_post_make_install () {
|
||||||
|
rm -f "${TERMUX_PREFIX}/usr/share/X11/xkb/compiled"
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
+++ ./configure.ac
|
||||||
|
@@ -2005,9 +2005,9 @@
|
||||||
|
XORG_SYS_LIBS="$XORG_SYS_LIBS $XORG_MODULES_LIBS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- if test "x$DRM" = xyes; then
|
||||||
|
- XORG_DRIVER_MODESETTING=yes
|
||||||
|
- fi
|
||||||
|
+# if test "x$DRM" = xyes; then
|
||||||
|
+# XORG_DRIVER_MODESETTING=yes
|
||||||
|
+# fi
|
||||||
|
|
||||||
|
AC_SUBST([XORG_LIBS])
|
||||||
|
AC_SUBST([XORG_SYS_LIBS])
|
|
@ -0,0 +1,25 @@
|
||||||
|
+++ ./hw/xfree86/os-support/xf86_OSlib.h 2017-12-20 22:32:33.000000000 +0200
|
||||||
|
@@ -132,7 +132,11 @@
|
||||||
|
#if !defined(__sun)
|
||||||
|
#include <sys/at_ansi.h>
|
||||||
|
#endif
|
||||||
|
+#ifdef __ANDROID__
|
||||||
|
+#include <linux/kd.h>
|
||||||
|
+#else
|
||||||
|
#include <sys/kd.h>
|
||||||
|
+#endif
|
||||||
|
#include <sys/vt.h>
|
||||||
|
|
||||||
|
extern _X_HIDDEN void xf86VTAcquire(int);
|
||||||
|
@@ -195,7 +199,11 @@
|
||||||
|
#include <sys/mman.h>
|
||||||
|
#ifdef __linux__
|
||||||
|
#define HAS_USL_VTS
|
||||||
|
+#ifdef __ANDROID__
|
||||||
|
+#include <linux/kd.h>
|
||||||
|
+#else
|
||||||
|
#include <sys/kd.h>
|
||||||
|
+#endif
|
||||||
|
#include <sys/vt.h>
|
||||||
|
#define LDGMAP GIO_SCRNMAP
|
||||||
|
#define LDSMAP PIO_SCRNMAP
|
|
@ -0,0 +1,10 @@
|
||||||
|
+++ ./hw/xfree86/os-support/linux/Makefile.am 2018-11-21 22:50:02.949575248 +0200
|
||||||
|
@@ -18,7 +18,7 @@
|
||||||
|
XORG_CFLAGS += $(DBUS_CFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
-liblinux_la_SOURCES = linux.h lnx_init.c lnx_video.c \
|
||||||
|
+liblinux_la_SOURCES = linux.h lnx_init.c $(srcdir)/../shared/ioperm_noop.c $(srcdir)/../shared/platform_noop.c \
|
||||||
|
lnx_agp.c lnx_kmod.c lnx_bell.c lnx_platform.c \
|
||||||
|
$(srcdir)/../shared/VTsw_usl.c \
|
||||||
|
$(srcdir)/../shared/posix_tty.c \
|
|
@ -0,0 +1,36 @@
|
||||||
|
+++ ./hw/xfree86/os-support/shared/platform_noop.c 2018-11-22 02:41:02.516704523 +0200
|
||||||
|
@@ -0,0 +1,34 @@
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_XORG_CONFIG_H
|
||||||
|
+#include <xorg-config.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+/* noop platform device support */
|
||||||
|
+#include "xf86_OSproc.h"
|
||||||
|
+#include "xf86OSpriv.h"
|
||||||
|
+
|
||||||
|
+#include "xf86.h"
|
||||||
|
+
|
||||||
|
+/***************************************************************************/
|
||||||
|
+/* Video Memory Mapping section */
|
||||||
|
+/***************************************************************************/
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+xf86OSInitVidMem(VidMemInfoPtr pVidMem)
|
||||||
|
+{
|
||||||
|
+ pVidMem->initialised = TRUE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#ifdef XSERVER_PLATFORM_BUS
|
||||||
|
+#include "xf86platformBus.h"
|
||||||
|
+Bool
|
||||||
|
+xf86PlatformDeviceCheckBusID(struct xf86_platform_device *device, const char *busid)
|
||||||
|
+{
|
||||||
|
+ return FALSE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void xf86PlatformDeviceProbe(struct OdevAttributes *attribs)
|
||||||
|
+{
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
+#endif
|
|
@ -0,0 +1,147 @@
|
||||||
|
+++ ./hw/xfree86/Makefile.am 2018-01-28 10:03:56.740173910 +0200
|
||||||
|
@@ -36,8 +36,8 @@
|
||||||
|
|
||||||
|
SUBDIRS = common ddc x86emu $(INT10_SUBDIR) os-support parser \
|
||||||
|
ramdac $(VGAHW_SUBDIR) loader modes $(DRI_SUBDIR) \
|
||||||
|
- $(DRI2_SUBDIR) . $(VBE_SUBDIR) i2c dixmods xkb \
|
||||||
|
- fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man \
|
||||||
|
+ $(DRI2_SUBDIR) fbdevhw shadowfb . $(VBE_SUBDIR) i2c \
|
||||||
|
+ dixmods xkb exa $(XF86UTILS_SUBDIR) doc man \
|
||||||
|
$(GLAMOR_EGL_SUBDIR) drivers
|
||||||
|
|
||||||
|
DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \
|
||||||
|
@@ -45,8 +45,8 @@
|
||||||
|
loader dixmods xkb dri dri2 exa modes \
|
||||||
|
utils doc man glamor_egl drivers
|
||||||
|
|
||||||
|
+lib_LTLIBRARIES = libXFree86.la
|
||||||
|
bin_PROGRAMS = Xorg
|
||||||
|
-nodist_Xorg_SOURCES = sdksyms.c
|
||||||
|
|
||||||
|
AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@
|
||||||
|
AM_CPPFLAGS = $(XORG_INCS) -I$(srcdir)/parser \
|
||||||
|
@@ -75,11 +75,35 @@
|
||||||
|
$(top_builddir)/os/libos.la \
|
||||||
|
$(top_builddir)/Xext/libXvidmode.la
|
||||||
|
|
||||||
|
-Xorg_LDADD = \
|
||||||
|
- $(LOCAL_LIBS) \
|
||||||
|
- $(XORG_SYS_LIBS) \
|
||||||
|
- $(XSERVER_SYS_LIBS)
|
||||||
|
-Xorg_DEPENDENCIES = $(LOCAL_LIBS)
|
||||||
|
+LIBXFREE86_LIBS = \
|
||||||
|
+ $(MAIN_LIB) \
|
||||||
|
+ $(XSERVER_LIBS) \
|
||||||
|
+ loader/libloader.la \
|
||||||
|
+ common/libcommon.la \
|
||||||
|
+ os-support/libxorgos.la \
|
||||||
|
+ parser/libxf86config.la \
|
||||||
|
+ dixmods/libdixmods.la \
|
||||||
|
+ modes/libxf86modes.la \
|
||||||
|
+ ramdac/libramdac.la \
|
||||||
|
+ ddc/libddc.la \
|
||||||
|
+ i2c/libi2c.la \
|
||||||
|
+ $(XORG_LIBS) \
|
||||||
|
+ xkb/libxorgxkb.la \
|
||||||
|
+ fbdevhw/libfbdevhw.la \
|
||||||
|
+ $(top_builddir)/Xext/libXvidmode.la \
|
||||||
|
+ $(top_builddir)/fb/libfb.la \
|
||||||
|
+ $(top_builddir)/miext/shadow/libshadow.la
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+libXFree86_la_LDFLAGS = $(Xorg_LDFLAGS) -module -avoid-version -Wl,--unresolved-symbols=report-all -rdynamic
|
||||||
|
+nodist_libXFree86_la_SOURCES = sdksyms.c
|
||||||
|
+libXFree86_la_SOURCES =
|
||||||
|
+libXFree86_la_LIBADD = $(LIBXFREE86_LIBS) $(XORG_SYS_LIBS) $(XSERVER_SYS_LIBS)
|
||||||
|
+libXFree86_la_CFLAGS = $(AM_CFLAGS)
|
||||||
|
+libXFree86_la_DEPENDENCIES = $(LOCAL_LIBS)
|
||||||
|
+
|
||||||
|
+Xorg_LDADD = libXFree86.la
|
||||||
|
+Xorg_SOURCES = $(top_srcdir)/dix/stubmain.c
|
||||||
|
|
||||||
|
Xorg_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
|
||||||
|
|
||||||
|
+++ ./hw/xfree86/shadowfb/Makefile.am 2018-01-28 15:18:06.191501835 +0200
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
module_LTLIBRARIES = libshadowfb.la
|
||||||
|
-libshadowfb_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
+libshadowfb_la_LDFLAGS = -module -avoid-version -static $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
libshadowfb_la_SOURCES = sfbmodule.c shadowfb.c
|
||||||
|
libshadowfb_la_LIBADD = $(PIXMAN_LIBS)
|
||||||
|
|
||||||
|
|
||||||
|
+++ ./miext/shadow/Makefile.am 2018-01-28 15:24:22.836598681 +0200
|
||||||
|
@@ -6,6 +6,7 @@
|
||||||
|
sdk_HEADERS = shadow.h
|
||||||
|
endif
|
||||||
|
|
||||||
|
+libshadow_la_LDFLAGS = -module -avoid-version -static
|
||||||
|
libshadow_la_SOURCES = \
|
||||||
|
c2p_core.h \
|
||||||
|
shadow.c \
|
||||||
|
|
||||||
|
+++ ./hw/xfree86/fbdevhw/Makefile.am 2018-01-28 16:04:05.242414784 +0200
|
||||||
|
@@ -1,17 +1,11 @@
|
||||||
|
SUBDIRS = man
|
||||||
|
|
||||||
|
-module_LTLIBRARIES = libfbdevhw.la
|
||||||
|
+noinst_LTLIBRARIES = libfbdevhw.la
|
||||||
|
|
||||||
|
-libfbdevhw_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
+libfbdevhw_la_LDFLAGS = -module -avoid-version -static $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
-
|
||||||
|
-if FBDEVHW
|
||||||
|
libfbdevhw_la_SOURCES = fbdevhw.c
|
||||||
|
-else
|
||||||
|
-libfbdevhw_la_SOURCES = fbdevhwstub.c
|
||||||
|
-endif
|
||||||
|
|
||||||
|
AM_CPPFLAGS = $(XORG_INCS) -I$(srcdir)/../i2c -I$(srcdir)/../modes -I$(srcdir)/../ddc -I$(srcdir)/../parser
|
||||||
|
-
|
||||||
|
AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
|
||||||
|
|
||||||
|
sdk_HEADERS = fbdevhw.h
|
||||||
|
|
||||||
|
+++ ./hw/xfree86/dixmods/Makefile.am 2018-01-30 00:09:07.250483502 +0200
|
||||||
|
@@ -17,17 +17,17 @@
|
||||||
|
-I$(top_srcdir)/miext/shadow \
|
||||||
|
-I$(top_srcdir)/glx
|
||||||
|
|
||||||
|
-libfb_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
+libfb_la_LDFLAGS = -module -avoid-version -static $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
libfb_la_LIBADD = $(top_builddir)/fb/libfb.la
|
||||||
|
libfb_la_SOURCES = fbmodule.c
|
||||||
|
libfb_la_CFLAGS = $(AM_CFLAGS)
|
||||||
|
|
||||||
|
-libwfb_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
+libwfb_la_LDFLAGS = -module -avoid-version -static $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
libwfb_la_LIBADD = $(top_builddir)/fb/libwfb.la
|
||||||
|
libwfb_la_SOURCES = fbmodule.c
|
||||||
|
libwfb_la_CFLAGS = $(AM_CFLAGS) -DFB_ACCESS_WRAPPER
|
||||||
|
|
||||||
|
-libglx_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
+libglx_la_LDFLAGS = -module -avoid-version -static $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
libglx_la_LIBADD = $(top_builddir)/glx/libglx.la $(GLX_SYS_LIBS)
|
||||||
|
if DRI2
|
||||||
|
libglx_la_LIBADD += $(top_builddir)/glx/libglxdri.la
|
||||||
|
@@ -37,7 +37,7 @@
|
||||||
|
endif
|
||||||
|
libglx_la_SOURCES = glxmodule.c
|
||||||
|
|
||||||
|
-libshadow_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
+libshadow_la_LDFLAGS = -module -avoid-version -static $(LD_NO_UNDEFINED_FLAG)
|
||||||
|
libshadow_la_LIBADD = $(top_builddir)/miext/shadow/libshadow.la
|
||||||
|
if NO_UNDEFINED
|
||||||
|
libshadow_la_LIBADD += libfb.la
|
||||||
|
|
||||||
|
+++ ./include/dix.h 2018-01-25 00:43:05.367766278 +0200
|
||||||
|
@@ -307,7 +307,7 @@
|
||||||
|
extern _X_EXPORT void
|
||||||
|
SetVendorString(const char *string);
|
||||||
|
|
||||||
|
-int
|
||||||
|
+_X_EXPORT int
|
||||||
|
dix_main(int argc, char *argv[], char *envp[]);
|
||||||
|
|
||||||
|
/* events.c */
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
+++ ./dix/stubmain.c
|
||||||
|
@@ -23,6 +23,7 @@
|
||||||
|
|
||||||
|
******************************************************************/
|
||||||
|
|
||||||
|
+extern const char *xf86LogFile;
|
||||||
|
int dix_main(int argc, char *argv[], char *envp[]);
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -31,5 +32,9 @@
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[], char *envp[])
|
||||||
|
{
|
||||||
|
+#ifdef ANDROID
|
||||||
|
+ xf86LogFile = "/dev/null";
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
return dix_main(argc, argv, envp);
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
+++ ./hw/xfree86/common/xf86AutoConfig.c
|
||||||
|
@@ -294,7 +294,7 @@
|
||||||
|
xf86PciMatchDriver(md);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(__linux__)
|
||||||
|
+#if defined(__linux__) && !defined(__ANDROID__)
|
||||||
|
xf86AddMatchedDriver(md, "modesetting");
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/Xext/xf86bigfont.c xorg-server-1.20.1.mod/Xext/xf86bigfont.c
|
||||||
|
--- xorg-server-1.20.1/Xext/xf86bigfont.c 2018-08-07 19:31:00.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/Xext/xf86bigfont.c 2018-10-08 21:07:49.005945142 +0300
|
||||||
|
@@ -715,16 +715,7 @@
|
||||||
|
/* fprintf(stderr, "signature = 0x%08X\n", signature); */
|
||||||
|
|
||||||
|
FontShmdescIndex = xfont2_allocate_font_private_index();
|
||||||
|
-
|
||||||
|
-#if !defined(CSRG_BASED) && !defined(__CYGWIN__)
|
||||||
|
- pagesize = SHMLBA;
|
||||||
|
-#else
|
||||||
|
-#ifdef _SC_PAGESIZE
|
||||||
|
pagesize = sysconf(_SC_PAGESIZE);
|
||||||
|
-#else
|
||||||
|
- pagesize = getpagesize();
|
||||||
|
-#endif
|
||||||
|
-#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/hw/xfree86/common/compiler.h xorg-server-1.20.1.mod/hw/xfree86/common/compiler.h
|
||||||
|
--- xorg-server-1.20.1/hw/xfree86/common/compiler.h 2018-08-07 19:31:02.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/hw/xfree86/common/compiler.h 2018-10-08 21:07:16.804247702 +0300
|
||||||
|
@@ -518,7 +518,7 @@
|
||||||
|
barrier();
|
||||||
|
}
|
||||||
|
|
||||||
|
-#elif defined(__mips__) || (defined(__arm32__) && !defined(__linux__))
|
||||||
|
+#elif defined(__mips__) || (defined(__arm32__) && !defined(__linux__)) || defined(__ANDROID__)
|
||||||
|
#if defined(__arm32__) || defined(__mips64)
|
||||||
|
#define PORT_SIZE long
|
||||||
|
#else
|
||||||
|
@@ -758,7 +758,7 @@
|
||||||
|
return xf86ReadMmio32Le((void *) ioBase, port);
|
||||||
|
}
|
||||||
|
|
||||||
|
-#elif defined(__arm__) && defined(__linux__)
|
||||||
|
+#elif defined(__arm__) && defined(__linux__) && !defined(__ANDROID__)
|
||||||
|
|
||||||
|
/* for Linux on ARM, we use the LIBC inx/outx routines */
|
||||||
|
/* note that the appropriate setup via "ioperm" needs to be done */
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/hw/xfree86/common/xf86Config.c xorg-server-1.20.1.mod/hw/xfree86/common/xf86Config.c
|
||||||
|
--- xorg-server-1.20.1/hw/xfree86/common/xf86Config.c 2018-08-07 19:31:02.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/hw/xfree86/common/xf86Config.c 2018-10-08 21:07:16.807582583 +0300
|
||||||
|
@@ -106,7 +106,7 @@
|
||||||
|
#define SYS_CONFIGDIRPATH "%D/X11/%X"
|
||||||
|
#endif
|
||||||
|
#ifndef PROJECTROOT
|
||||||
|
-#define PROJECTROOT "/usr/X11R6"
|
||||||
|
+#define PROJECTROOT "/data/data/com.termux/files/usr/X11R6"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static ModuleDefault ModuleDefaults[] = {
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/hw/xfree86/os-support/linux/lnx_acpi.c xorg-server-1.20.1.mod/hw/xfree86/os-support/linux/lnx_acpi.c
|
||||||
|
--- xorg-server-1.20.1/hw/xfree86/os-support/linux/lnx_acpi.c 2018-08-07 19:31:03.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/hw/xfree86/os-support/linux/lnx_acpi.c 2018-10-08 21:07:16.807582583 +0300
|
||||||
|
@@ -15,7 +15,7 @@
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
-#define ACPI_SOCKET "/var/run/acpid.socket"
|
||||||
|
+#define ACPI_SOCKET "/data/data/com.termux/files/usr/var/run/acpid.socket"
|
||||||
|
|
||||||
|
#define ACPI_VIDEO_NOTIFY_SWITCH 0x80
|
||||||
|
#define ACPI_VIDEO_NOTIFY_PROBE 0x81
|
|
@ -0,0 +1,18 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/hw/xfree86/os-support/linux/lnx_kmod.c xorg-server-1.20.1.mod/hw/xfree86/os-support/linux/lnx_kmod.c
|
||||||
|
--- xorg-server-1.20.1/hw/xfree86/os-support/linux/lnx_kmod.c 2018-08-07 19:31:03.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/hw/xfree86/os-support/linux/lnx_kmod.c 2018-10-08 21:07:16.810917466 +0300
|
||||||
|
@@ -68,14 +68,6 @@
|
||||||
|
*/
|
||||||
|
switch (pid = fork()) {
|
||||||
|
case 0: /* child */
|
||||||
|
- /* change real/effective user ID to 0/0 as we need to
|
||||||
|
- * preinstall agpgart module for some DRM modules
|
||||||
|
- */
|
||||||
|
- if (setreuid(0, 0)) {
|
||||||
|
- xf86Msg(X_WARNING, "LoadKernelModule: "
|
||||||
|
- "Setting of real/effective user Id to 0/0 failed");
|
||||||
|
- }
|
||||||
|
- setenv("PATH", "/sbin", 1);
|
||||||
|
execl(mpPath, "modprobe", modName, NULL);
|
||||||
|
xf86Msg(X_WARNING, "LoadKernelModule %s\n", strerror(errno));
|
||||||
|
exit(EXIT_FAILURE); /* if we get here the child's exec failed */
|
|
@ -0,0 +1,22 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/hw/xfree86/parser/scan.c xorg-server-1.20.1.mod/hw/xfree86/parser/scan.c
|
||||||
|
--- xorg-server-1.20.1/hw/xfree86/parser/scan.c 2018-08-07 19:31:03.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/hw/xfree86/parser/scan.c 2018-10-08 21:07:16.814252348 +0300
|
||||||
|
@@ -873,13 +873,13 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DEFAULT_CONF_PATH
|
||||||
|
-#define DEFAULT_CONF_PATH "/etc/X11/%S," \
|
||||||
|
+#define DEFAULT_CONF_PATH "@TERMUX_PREFIX@/etc/X11/%S," \
|
||||||
|
"%P/etc/X11/%S," \
|
||||||
|
- "/etc/X11/%G," \
|
||||||
|
+ "@TERMUX_PREFIX@/etc/X11/%G," \
|
||||||
|
"%P/etc/X11/%G," \
|
||||||
|
- "/etc/X11/%X-%M," \
|
||||||
|
- "/etc/X11/%X," \
|
||||||
|
- "/etc/%X," \
|
||||||
|
+ "@TERMUX_PREFIX@/etc/X11/%X-%M," \
|
||||||
|
+ "@TERMUX_PREFIX@/etc/X11/%X," \
|
||||||
|
+ "@TERMUX_PREFIX@/etc/%X," \
|
||||||
|
"%P/etc/X11/%X.%H," \
|
||||||
|
"%P/etc/X11/%X-%M," \
|
||||||
|
"%P/etc/X11/%X," \
|
|
@ -0,0 +1,69 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/hw/xfree86/parser/write.c xorg-server-1.20.1.mod/hw/xfree86/parser/write.c
|
||||||
|
--- xorg-server-1.20.1/hw/xfree86/parser/write.c 2018-08-07 19:31:03.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/hw/xfree86/parser/write.c 2018-10-08 21:07:16.817587230 +0300
|
||||||
|
@@ -129,64 +129,5 @@
|
||||||
|
int
|
||||||
|
xf86writeConfigFile(const char *filename, XF86ConfigPtr cptr)
|
||||||
|
{
|
||||||
|
-#ifndef HAS_NO_UIDS
|
||||||
|
- int ret;
|
||||||
|
-
|
||||||
|
- if (getuid() != geteuid()) {
|
||||||
|
-
|
||||||
|
-#if !defined(HAS_SAVED_IDS_AND_SETEUID)
|
||||||
|
- int pid, p;
|
||||||
|
- int status;
|
||||||
|
- void (*csig) (int);
|
||||||
|
-
|
||||||
|
- /* Need to fork to change ruid without loosing euid */
|
||||||
|
- csig = OsSignal(SIGCHLD, SIG_DFL);
|
||||||
|
- switch ((pid = fork())) {
|
||||||
|
- case -1:
|
||||||
|
- ErrorF("xf86writeConfigFile(): fork failed (%s)\n",
|
||||||
|
- strerror(errno));
|
||||||
|
- return 0;
|
||||||
|
- case 0: /* child */
|
||||||
|
- if (setuid(getuid()) == -1)
|
||||||
|
- FatalError("xf86writeConfigFile(): "
|
||||||
|
- "setuid failed(%s)\n", strerror(errno));
|
||||||
|
- ret = doWriteConfigFile(filename, cptr);
|
||||||
|
- exit(ret);
|
||||||
|
- break;
|
||||||
|
- default: /* parent */
|
||||||
|
- do {
|
||||||
|
- p = waitpid(pid, &status, 0);
|
||||||
|
- } while (p == -1 && errno == EINTR);
|
||||||
|
- }
|
||||||
|
- OsSignal(SIGCHLD, csig);
|
||||||
|
- if (p != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0)
|
||||||
|
- return 1; /* success */
|
||||||
|
- else
|
||||||
|
- return 0;
|
||||||
|
-
|
||||||
|
-#else /* HAS_SAVED_IDS_AND_SETEUID */
|
||||||
|
- int ruid, euid;
|
||||||
|
-
|
||||||
|
- ruid = getuid();
|
||||||
|
- euid = geteuid();
|
||||||
|
-
|
||||||
|
- if (seteuid(ruid) == -1) {
|
||||||
|
- ErrorF("xf86writeConfigFile(): seteuid(%d) failed (%s)\n",
|
||||||
|
- ruid, strerror(errno));
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
- ret = doWriteConfigFile(filename, cptr);
|
||||||
|
-
|
||||||
|
- if (seteuid(euid) == -1) {
|
||||||
|
- ErrorF("xf86writeConfigFile(): seteuid(%d) failed (%s)\n",
|
||||||
|
- euid, strerror(errno));
|
||||||
|
- }
|
||||||
|
- return ret;
|
||||||
|
-
|
||||||
|
-#endif /* HAS_SAVED_IDS_AND_SETEUID */
|
||||||
|
-
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
-#endif /* !HAS_NO_UIDS */
|
||||||
|
- return doWriteConfigFile(filename, cptr);
|
||||||
|
+ return doWriteConfigFile(filename, cptr);
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/hw/xfree86/xorg-wrapper.c xorg-server-1.20.1.mod/hw/xfree86/xorg-wrapper.c
|
||||||
|
--- xorg-server-1.20.1/hw/xfree86/xorg-wrapper.c 2018-08-07 19:31:04.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/hw/xfree86/xorg-wrapper.c 2018-10-08 21:07:16.817587230 +0300
|
||||||
|
@@ -251,23 +251,6 @@
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- /* If we've found cards, and all cards support kms, drop root rights */
|
||||||
|
- if (needs_root_rights == 0 || (total_cards && kms_cards == total_cards)) {
|
||||||
|
- gid_t realgid = getgid();
|
||||||
|
- uid_t realuid = getuid();
|
||||||
|
-
|
||||||
|
- if (setresgid(-1, realgid, realgid) != 0) {
|
||||||
|
- fprintf(stderr, "%s: Could not drop setgid privileges: %s\n",
|
||||||
|
- progname, strerror(errno));
|
||||||
|
- exit(1);
|
||||||
|
- }
|
||||||
|
- if (setresuid(-1, realuid, realuid) != 0) {
|
||||||
|
- fprintf(stderr, "%s: Could not drop setuid privileges: %s\n",
|
||||||
|
- progname, strerror(errno));
|
||||||
|
- exit(1);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
snprintf(buf, sizeof(buf), "%s/Xorg", SUID_WRAPPER_DIR);
|
||||||
|
|
||||||
|
/* Check if the server is executable by our real uid */
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/include/site.h xorg-server-1.20.1.mod/include/site.h
|
||||||
|
--- xorg-server-1.20.1/include/site.h 2018-08-07 19:31:05.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/include/site.h 2018-10-08 21:07:16.824256995 +0300
|
||||||
|
@@ -72,7 +72,7 @@
|
||||||
|
* DO NOT CHANGE THESE VALUES OR THE DIX IMAKEFILE!
|
||||||
|
*/
|
||||||
|
#ifndef COMPILEDDEFAULTFONTPATH
|
||||||
|
-#define COMPILEDDEFAULTFONTPATH "/usr/share/fonts/X11/misc/"
|
||||||
|
+#define COMPILEDDEFAULTFONTPATH "/data/data/com.termux/files/usr/share/fonts/X11/misc/"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/os/access.c xorg-server-1.20.1.mod/os/access.c
|
||||||
|
--- xorg-server-1.20.1/os/access.c 2018-08-07 19:31:05.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/os/access.c 2018-10-08 21:07:16.834261640 +0300
|
||||||
|
@@ -961,7 +961,7 @@
|
||||||
|
#if defined WIN32 && defined __MINGW32__
|
||||||
|
#define ETC_HOST_PREFIX "X"
|
||||||
|
#else
|
||||||
|
-#define ETC_HOST_PREFIX "/etc/X"
|
||||||
|
+#define ETC_HOST_PREFIX "/data/data/com.termux/files/usr/etc/X"
|
||||||
|
#endif
|
||||||
|
#define ETC_HOST_SUFFIX ".hosts"
|
||||||
|
fnamelen = strlen(ETC_HOST_PREFIX) + strlen(ETC_HOST_SUFFIX) +
|
|
@ -0,0 +1,19 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/os/backtrace.c xorg-server-1.20.1.mod/os/backtrace.c
|
||||||
|
--- xorg-server-1.20.1/os/backtrace.c 2018-08-07 19:31:05.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/os/backtrace.c 2018-10-08 21:07:16.834261640 +0300
|
||||||
|
@@ -244,14 +244,13 @@
|
||||||
|
/* CHILD */
|
||||||
|
char parent[16];
|
||||||
|
|
||||||
|
- seteuid(0);
|
||||||
|
close(STDIN_FILENO);
|
||||||
|
close(STDOUT_FILENO);
|
||||||
|
dup2(pipefd[1], STDOUT_FILENO);
|
||||||
|
closefrom(STDERR_FILENO);
|
||||||
|
|
||||||
|
snprintf(parent, sizeof(parent), "%d", getppid());
|
||||||
|
- execle("/usr/bin/pstack", "pstack", parent, NULL);
|
||||||
|
+ execle("/data/data/com.termux/files/usr/bin/pstack", "pstack", parent, NULL);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
else {
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/os/connection.c xorg-server-1.20.1.mod/os/connection.c
|
||||||
|
--- xorg-server-1.20.1/os/connection.c 2018-08-07 19:31:05.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/os/connection.c 2018-10-08 21:07:16.837596523 +0300
|
||||||
|
@@ -996,7 +996,7 @@
|
||||||
|
XtransConnInfo ciptr;
|
||||||
|
const char *display_env = getenv("DISPLAY");
|
||||||
|
|
||||||
|
- if (display_env && (strncmp(display_env, "/tmp/launch", 11) == 0)) {
|
||||||
|
+ if (display_env && (strncmp(display_env, "/data/data/com.termux/files/usr/tmp/launch", 11) == 0)) {
|
||||||
|
/* Make the path the launchd socket if our DISPLAY is set right */
|
||||||
|
strcpy(port, display_env);
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/os/osinit.c xorg-server-1.20.1.mod/os/osinit.c
|
||||||
|
--- xorg-server-1.20.1/os/osinit.c 2018-08-07 19:31:05.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/os/osinit.c 2018-10-08 21:07:16.840931406 +0300
|
||||||
|
@@ -72,7 +72,7 @@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ADMPATH
|
||||||
|
-#define ADMPATH "/usr/adm/X%smsgs"
|
||||||
|
+#define ADMPATH "/data/data/com.termux/files/usr/adm/X%smsgs"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef RLIMIT_DATA
|
|
@ -0,0 +1,161 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/os/utils.c xorg-server-1.20.1.mod/os/utils.c
|
||||||
|
--- xorg-server-1.20.1/os/utils.c 2018-08-07 19:31:05.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/os/utils.c 2018-10-08 21:07:16.844266287 +0300
|
||||||
|
@@ -228,7 +228,7 @@
|
||||||
|
* server at a time. This keeps the servers from stomping on each other
|
||||||
|
* if the user forgets to give them different display numbers.
|
||||||
|
*/
|
||||||
|
-#define LOCK_DIR "/tmp"
|
||||||
|
+#define LOCK_DIR "/data/data/com.termux/files/usr/tmp"
|
||||||
|
#define LOCK_TMP_PREFIX "/.tX"
|
||||||
|
#define LOCK_PREFIX "/.X"
|
||||||
|
#define LOCK_SUFFIX "-lock"
|
||||||
|
@@ -320,7 +320,7 @@
|
||||||
|
i = 0;
|
||||||
|
haslock = 0;
|
||||||
|
while ((!haslock) && (i++ < 3)) {
|
||||||
|
- haslock = (link(tmp, LockFile) == 0);
|
||||||
|
+ haslock = (rename(tmp, LockFile) == 0);
|
||||||
|
if (haslock) {
|
||||||
|
/*
|
||||||
|
* We're done.
|
||||||
|
@@ -1383,11 +1383,7 @@
|
||||||
|
p = -1;
|
||||||
|
break;
|
||||||
|
case 0: /* child */
|
||||||
|
- if (setgid(getgid()) == -1)
|
||||||
|
- _exit(127);
|
||||||
|
- if (setuid(getuid()) == -1)
|
||||||
|
- _exit(127);
|
||||||
|
- execl("/bin/sh", "sh", "-c", command, (char *) NULL);
|
||||||
|
+ execl("/data/data/com.termux/files/usr/bin/sh", "sh", "-c", command, (char *) NULL);
|
||||||
|
_exit(127);
|
||||||
|
default: /* parent */
|
||||||
|
do {
|
||||||
|
@@ -1453,10 +1449,6 @@
|
||||||
|
#endif
|
||||||
|
return NULL;
|
||||||
|
case 0: /* child */
|
||||||
|
- if (setgid(getgid()) == -1)
|
||||||
|
- _exit(127);
|
||||||
|
- if (setuid(getuid()) == -1)
|
||||||
|
- _exit(127);
|
||||||
|
if (*type == 'r') {
|
||||||
|
if (pdes[1] != 1) {
|
||||||
|
/* stdout */
|
||||||
|
@@ -1473,7 +1465,7 @@
|
||||||
|
}
|
||||||
|
close(pdes[1]);
|
||||||
|
}
|
||||||
|
- execl("/bin/sh", "sh", "-c", command, (char *) NULL);
|
||||||
|
+ execl("/data/data/com.termux/files/usr/bin/sh", "sh", "-c", command, (char *) NULL);
|
||||||
|
_exit(127);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1531,10 +1523,6 @@
|
||||||
|
free(cur);
|
||||||
|
return NULL;
|
||||||
|
case 0: /* child */
|
||||||
|
- if (setgid(getgid()) == -1)
|
||||||
|
- _exit(127);
|
||||||
|
- if (setuid(getuid()) == -1)
|
||||||
|
- _exit(127);
|
||||||
|
if (*type == 'r') {
|
||||||
|
if (pdes[1] != 1) {
|
||||||
|
/* stdout */
|
||||||
|
@@ -1577,20 +1565,7 @@
|
||||||
|
|
||||||
|
return iop;
|
||||||
|
#else
|
||||||
|
- int ruid, euid;
|
||||||
|
-
|
||||||
|
- ruid = getuid();
|
||||||
|
- euid = geteuid();
|
||||||
|
-
|
||||||
|
- if (seteuid(ruid) == -1) {
|
||||||
|
- return NULL;
|
||||||
|
- }
|
||||||
|
iop = fopen(file, type);
|
||||||
|
-
|
||||||
|
- if (seteuid(euid) == -1) {
|
||||||
|
- fclose(iop);
|
||||||
|
- return NULL;
|
||||||
|
- }
|
||||||
|
return iop;
|
||||||
|
#endif /* HAS_SAVED_IDS_AND_SETEUID */
|
||||||
|
}
|
||||||
|
@@ -1670,7 +1645,7 @@
|
||||||
|
else if (getenv("TMP") != NULL)
|
||||||
|
return getenv("TMP");
|
||||||
|
else
|
||||||
|
- return "/tmp";
|
||||||
|
+ return "/data/data/com.termux/files/usr/tmp";
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
@@ -1722,64 +1697,7 @@
|
||||||
|
Bool
|
||||||
|
PrivsElevated(void)
|
||||||
|
{
|
||||||
|
- static Bool privsTested = FALSE;
|
||||||
|
- static Bool privsElevated = TRUE;
|
||||||
|
-
|
||||||
|
- if (!privsTested) {
|
||||||
|
-#if defined(WIN32)
|
||||||
|
- privsElevated = FALSE;
|
||||||
|
-#else
|
||||||
|
- if ((getuid() != geteuid()) || (getgid() != getegid())) {
|
||||||
|
- privsElevated = TRUE;
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
-#if defined(HAVE_ISSETUGID)
|
||||||
|
- privsElevated = issetugid();
|
||||||
|
-#elif defined(HAVE_GETRESUID)
|
||||||
|
- uid_t ruid, euid, suid;
|
||||||
|
- gid_t rgid, egid, sgid;
|
||||||
|
-
|
||||||
|
- if ((getresuid(&ruid, &euid, &suid) == 0) &&
|
||||||
|
- (getresgid(&rgid, &egid, &sgid) == 0)) {
|
||||||
|
- privsElevated = (euid != suid) || (egid != sgid);
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
- printf("Failed getresuid or getresgid");
|
||||||
|
- /* Something went wrong, make defensive assumption */
|
||||||
|
- privsElevated = TRUE;
|
||||||
|
- }
|
||||||
|
-#else
|
||||||
|
- if (getuid() == 0) {
|
||||||
|
- /* running as root: uid==euid==0 */
|
||||||
|
- privsElevated = FALSE;
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
- /*
|
||||||
|
- * If there are saved ID's the process might still be privileged
|
||||||
|
- * even though the above test succeeded. If issetugid() and
|
||||||
|
- * getresgid() aren't available, test this by trying to set
|
||||||
|
- * euid to 0.
|
||||||
|
- */
|
||||||
|
- unsigned int oldeuid;
|
||||||
|
-
|
||||||
|
- oldeuid = geteuid();
|
||||||
|
-
|
||||||
|
- if (seteuid(0) != 0) {
|
||||||
|
- privsElevated = FALSE;
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
- if (seteuid(oldeuid) != 0) {
|
||||||
|
- FatalError("Failed to drop privileges. Exiting\n");
|
||||||
|
- }
|
||||||
|
- privsElevated = TRUE;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-#endif
|
||||||
|
- }
|
||||||
|
-#endif
|
||||||
|
- privsTested = TRUE;
|
||||||
|
- }
|
||||||
|
- return privsElevated;
|
||||||
|
+ return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
|
@ -0,0 +1,14 @@
|
||||||
|
diff -uNr xorg-server-1.20.1/xkb/ddxLoad.c xorg-server-1.20.1.mod/xkb/ddxLoad.c
|
||||||
|
--- xorg-server-1.20.1/xkb/ddxLoad.c 2018-08-07 19:31:06.000000000 +0300
|
||||||
|
+++ xorg-server-1.20.1.mod/xkb/ddxLoad.c 2018-10-08 21:07:16.844266287 +0300
|
||||||
|
@@ -76,8 +76,8 @@
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
- if (strlen("/tmp/") < size) {
|
||||||
|
- (void) strcpy(outdir, "/tmp/");
|
||||||
|
+ if (strlen("/data/data/com.termux/files/usr/tmp/") < size) {
|
||||||
|
+ (void) strcpy(outdir, "/data/data/com.termux/files/usr/tmp/");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
+++ ./hw/xwayland/Makefile.am 2019-06-26 02:44:24.968986945 +0300
|
||||||
|
@@ -24,7 +24,6 @@
|
||||||
|
Xwayland_LDADD = \
|
||||||
|
$(glamor_lib) \
|
||||||
|
$(XWAYLAND_LIBS) \
|
||||||
|
- $(top_builddir)/glx/libglxvnd.la \
|
||||||
|
$(XWAYLAND_SYS_LIBS) \
|
||||||
|
$(top_builddir)/Xext/libXvidmode.la \
|
||||||
|
$(XSERVER_SYS_LIBS)
|
||||||
|
|
||||||
|
+++ ./hw/xwayland/Makefile.in 2019-06-26 02:46:04.650920429 +0300
|
||||||
|
@@ -640,7 +640,7 @@
|
||||||
|
$(top_srcdir)/mi/miinitext.c $(am__append_1) $(am__append_2) \
|
||||||
|
$(am__append_3)
|
||||||
|
Xwayland_LDADD = $(glamor_lib) $(XWAYLAND_LIBS) \
|
||||||
|
- $(top_builddir)/glx/libglxvnd.la $(XWAYLAND_SYS_LIBS) \
|
||||||
|
+ $(XWAYLAND_SYS_LIBS) \
|
||||||
|
$(top_builddir)/Xext/libXvidmode.la $(XSERVER_SYS_LIBS) \
|
||||||
|
$(am__append_5)
|
||||||
|
Xwayland_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
|
Loading…
Reference in New Issue