From 888eaf467f04f78bba633888e9350873d01d702d Mon Sep 17 00:00:00 2001 From: Suhan G Paradkar <76830230+suhan-paradkar@users.noreply.github.com> Date: Tue, 22 Jun 2021 01:09:52 +0530 Subject: [PATCH] enable-package: xorg-server (#365) --- x11-packages/xorg-server/build.sh | 89 ++++++++++ .../xorg-server/disable-modesetting.patch | 14 ++ x11-packages/xorg-server/kd.patch | 25 +++ x11-packages/xorg-server/linux_noop.patch | 10 ++ .../xorg-server/platform_noop.c.patch | 36 ++++ .../xorg-server/statifiing-all-modules.patch | 147 ++++++++++++++++ x11-packages/xorg-server/stubmain.c.patch | 19 +++ .../xorg-server/xf86AutoConfig.c.patch | 10 ++ ...org-server-1.20.1_Xext_xf86bigfont.c.patch | 20 +++ ...-1.20.1_hw_xfree86_common_compiler.h.patch | 12 ++ ....20.1_hw_xfree86_common_xf86Config.c.patch | 12 ++ ..._xfree86_os-support_linux_lnx_acpi.c.patch | 12 ++ ..._xfree86_os-support_linux_lnx_kmod.c.patch | 18 ++ ...rver-1.20.1_hw_xfree86_parser_scan.c.patch | 22 +++ ...ver-1.20.1_hw_xfree86_parser_write.c.patch | 69 ++++++++ ...ver-1.20.1_hw_xfree86_xorg-wrapper.c.patch | 27 +++ .../xorg-server-1.20.1_include_site.h.patch | 12 ++ .../xorg-server-1.20.1_os_access.c.patch | 12 ++ .../xorg-server-1.20.1_os_backtrace.c.patch | 19 +++ .../xorg-server-1.20.1_os_connection.c.patch | 12 ++ .../xorg-server-1.20.1_os_osinit.c.patch | 12 ++ .../xorg-server-1.20.1_os_utils.c.patch | 161 ++++++++++++++++++ .../xorg-server-1.20.1_xkb_ddxLoad.c.patch | 14 ++ x11-packages/xorg-server/xtest.c.patch | 12 ++ 24 files changed, 796 insertions(+) create mode 100644 x11-packages/xorg-server/build.sh create mode 100644 x11-packages/xorg-server/disable-modesetting.patch create mode 100644 x11-packages/xorg-server/kd.patch create mode 100644 x11-packages/xorg-server/linux_noop.patch create mode 100644 x11-packages/xorg-server/platform_noop.c.patch create mode 100644 x11-packages/xorg-server/statifiing-all-modules.patch create mode 100644 x11-packages/xorg-server/stubmain.c.patch create mode 100644 x11-packages/xorg-server/xf86AutoConfig.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_Xext_xf86bigfont.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_common_compiler.h.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_common_xf86Config.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_os-support_linux_lnx_acpi.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_os-support_linux_lnx_kmod.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_parser_scan.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_parser_write.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_xorg-wrapper.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_include_site.h.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_os_access.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_os_backtrace.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_os_connection.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_os_osinit.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_os_utils.c.patch create mode 100644 x11-packages/xorg-server/xorg-server-1.20.1_xkb_ddxLoad.c.patch create mode 100644 x11-packages/xorg-server/xtest.c.patch diff --git a/x11-packages/xorg-server/build.sh b/x11-packages/xorg-server/build.sh new file mode 100644 index 000000000..62d85f380 --- /dev/null +++ b/x11-packages/xorg-server/build.sh @@ -0,0 +1,89 @@ +TERMUX_PKG_HOMEPAGE=https://xorg.freedesktop.org/wiki/ +TERMUX_PKG_DESCRIPTION="Xorg server" +TERMUX_PKG_VERSION=1.20.11 +TERMUX_PKG_LICENSE="GPL-2.0" +TERMUX_PKG_SRCURL=https://xorg.freedesktop.org/releases/individual/xserver/xorg-server-${TERMUX_PKG_VERSION}.tar.bz2 +TERMUX_PKG_SHA256=914c796e3ffabe1af48071d40ccc85e92117c97a9082ed1df29e4d64e3c34c49 + +#i686 gives the following error... +#relocation R_386_GOTOFF against preemptible symbol fbdevHWLoadPalette cannot be used when making a shared object + +TERMUX_PKG_BLACKLISTED_ARCHES="i686" + +TERMUX_PKG_DEPENDS="libandroid-shmem, libdrm, libpciaccess, libpixman, libx11, libxau, libxfont2, libxinerama, libxkbfile, libxshmfence, mesa, openssl, xkeyboard-config, xorg-xkbcomp" + +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 +--disable-tests +--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 +--enable-xorg +--disable-glamor +--disable-dmx +--disable-xvfb +--disable-xnest +--disable-xwayland +--disable-xwin +--disable-kdrive +--enable-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" +} + +## The following is required for package 'tigervnc'. +if [ "${#}" -eq 1 ] && [ "${1}" == "xorg_server_flags" ]; then + echo ${TERMUX_PKG_EXTRA_CONFIGURE_ARGS} + return +fi diff --git a/x11-packages/xorg-server/disable-modesetting.patch b/x11-packages/xorg-server/disable-modesetting.patch new file mode 100644 index 000000000..391108d9c --- /dev/null +++ b/x11-packages/xorg-server/disable-modesetting.patch @@ -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]) diff --git a/x11-packages/xorg-server/kd.patch b/x11-packages/xorg-server/kd.patch new file mode 100644 index 000000000..f15ece9ac --- /dev/null +++ b/x11-packages/xorg-server/kd.patch @@ -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 + #endif ++#ifdef __ANDROID__ ++#include ++#else + #include ++#endif + #include + + extern _X_HIDDEN void xf86VTAcquire(int); +@@ -195,7 +199,11 @@ + #include + #ifdef __linux__ + #define HAS_USL_VTS ++#ifdef __ANDROID__ ++#include ++#else + #include ++#endif + #include + #define LDGMAP GIO_SCRNMAP + #define LDSMAP PIO_SCRNMAP diff --git a/x11-packages/xorg-server/linux_noop.patch b/x11-packages/xorg-server/linux_noop.patch new file mode 100644 index 000000000..c21e98fef --- /dev/null +++ b/x11-packages/xorg-server/linux_noop.patch @@ -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 \ diff --git a/x11-packages/xorg-server/platform_noop.c.patch b/x11-packages/xorg-server/platform_noop.c.patch new file mode 100644 index 000000000..cf3d7e6d3 --- /dev/null +++ b/x11-packages/xorg-server/platform_noop.c.patch @@ -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 ++#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 diff --git a/x11-packages/xorg-server/statifiing-all-modules.patch b/x11-packages/xorg-server/statifiing-all-modules.patch new file mode 100644 index 000000000..f02b0a93f --- /dev/null +++ b/x11-packages/xorg-server/statifiing-all-modules.patch @@ -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 */ + diff --git a/x11-packages/xorg-server/stubmain.c.patch b/x11-packages/xorg-server/stubmain.c.patch new file mode 100644 index 000000000..aba82f76e --- /dev/null +++ b/x11-packages/xorg-server/stubmain.c.patch @@ -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); + } diff --git a/x11-packages/xorg-server/xf86AutoConfig.c.patch b/x11-packages/xorg-server/xf86AutoConfig.c.patch new file mode 100644 index 000000000..4a5113133 --- /dev/null +++ b/x11-packages/xorg-server/xf86AutoConfig.c.patch @@ -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 + diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_Xext_xf86bigfont.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_Xext_xf86bigfont.c.patch new file mode 100644 index 000000000..c248c2faa --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_Xext_xf86bigfont.c.patch @@ -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 + } + } diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_common_compiler.h.patch b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_common_compiler.h.patch new file mode 100644 index 000000000..c87cbb86b --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_common_compiler.h.patch @@ -0,0 +1,12 @@ +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 diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_common_xf86Config.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_common_xf86Config.c.patch new file mode 100644 index 000000000..7b459ac65 --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_common_xf86Config.c.patch @@ -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[] = { diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_os-support_linux_lnx_acpi.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_os-support_linux_lnx_acpi.c.patch new file mode 100644 index 000000000..b6dff7c5a --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_os-support_linux_lnx_acpi.c.patch @@ -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 + #include + +-#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 diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_os-support_linux_lnx_kmod.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_os-support_linux_lnx_kmod.c.patch new file mode 100644 index 000000000..b70001f67 --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_os-support_linux_lnx_kmod.c.patch @@ -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 */ diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_parser_scan.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_parser_scan.c.patch new file mode 100644 index 000000000..00f53c55a --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_parser_scan.c.patch @@ -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," \ diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_parser_write.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_parser_write.c.patch new file mode 100644 index 000000000..f43508a3a --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_parser_write.c.patch @@ -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); + } diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_xorg-wrapper.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_xorg-wrapper.c.patch new file mode 100644 index 000000000..73293e19a --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_hw_xfree86_xorg-wrapper.c.patch @@ -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 */ diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_include_site.h.patch b/x11-packages/xorg-server/xorg-server-1.20.1_include_site.h.patch new file mode 100644 index 000000000..53787afd0 --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_include_site.h.patch @@ -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 + + /* diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_os_access.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_os_access.c.patch new file mode 100644 index 000000000..c62771cec --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_os_access.c.patch @@ -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) + diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_os_backtrace.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_os_backtrace.c.patch new file mode 100644 index 000000000..ab9f5931e --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_os_backtrace.c.patch @@ -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 { diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_os_connection.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_os_connection.c.patch new file mode 100644 index 000000000..0de201d29 --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_os_connection.c.patch @@ -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); + } diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_os_osinit.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_os_osinit.c.patch new file mode 100644 index 000000000..f48a44c32 --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_os_osinit.c.patch @@ -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 diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_os_utils.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_os_utils.c.patch new file mode 100644 index 000000000..507feb648 --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_os_utils.c.patch @@ -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; + } + + /* diff --git a/x11-packages/xorg-server/xorg-server-1.20.1_xkb_ddxLoad.c.patch b/x11-packages/xorg-server/xorg-server-1.20.1_xkb_ddxLoad.c.patch new file mode 100644 index 000000000..91325e314 --- /dev/null +++ b/x11-packages/xorg-server/xorg-server-1.20.1_xkb_ddxLoad.c.patch @@ -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/"); + } + } + diff --git a/x11-packages/xorg-server/xtest.c.patch b/x11-packages/xorg-server/xtest.c.patch new file mode 100644 index 000000000..1f73a4b05 --- /dev/null +++ b/x11-packages/xorg-server/xtest.c.patch @@ -0,0 +1,12 @@ +diff -uNr xorg-server-1.20.11/test/xtest.c xorg-server-1.20.11.mod/test/xtest.c +--- xorg-server-1.20.11/test/xtest.c 2021-04-13 14:11:40.000000000 +0000 ++++ xorg-server-1.20.11.mod/test/xtest.c 2021-06-18 06:42:16.318605204 +0000 +@@ -61,7 +61,7 @@ + { + ScreenRec screen = {0}; + ClientRec server_client = {0}; +- WindowRec root = {0}; ++ WindowRec root = {{0}}; + WindowOptRec optional = {0}; + + /* random stuff that needs initialization */