diff --git a/x11-packages/x11vnc/build.sh b/x11-packages/x11vnc/build.sh index 28a28013f..d3a99827f 100644 --- a/x11-packages/x11vnc/build.sh +++ b/x11-packages/x11vnc/build.sh @@ -2,6 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://github.com/LibVNC/x11vnc TERMUX_PKG_DESCRIPTION="VNC server for real X displays" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_VERSION=0.9.16 +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/LibVNC/x11vnc/archive/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=885e5b5f5f25eec6f9e4a1e8be3d0ac71a686331ee1cfb442dba391111bd32bd TERMUX_PKG_DEPENDS="libandroid-shmem, libjpeg-turbo, libvncserver, libxdamage, libxinerama, libxrandr, libxtst, openssl, xorg-xdpyinfo" diff --git a/x11-packages/x11vnc/fix-hardcoded-paths.patch b/x11-packages/x11vnc/fix-hardcoded-paths.patch new file mode 100644 index 000000000..484478c97 --- /dev/null +++ b/x11-packages/x11vnc/fix-hardcoded-paths.patch @@ -0,0 +1,1115 @@ +diff -uNr x11vnc-0.9.16/misc/Xdummy.c x11vnc-0.9.16.mod/misc/Xdummy.c +--- x11vnc-0.9.16/misc/Xdummy.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/misc/Xdummy.c 2020-11-13 22:54:07.244496654 +0200 +@@ -127,7 +127,7 @@ + } + s = getenv("XDUMMY_TMPDIR"); + if (! s) { +- s = "/tmp"; ++ s = "@TERMUX_PREFIX@/tmp"; + } + tmpdir[0] = '\0'; + strcat(tmpdir, s); +@@ -225,7 +225,7 @@ + return(real_rename(oldpath, newpath)); + } + +- if (strstr(oldpath, "/var/log") == oldpath) { ++ if (strstr(oldpath, "@TERMUX_PREFIX@/var/log") == oldpath) { + if (debug) fprintf(stderr, "RENAME: returning 0\n"); + return 0; + } +@@ -270,7 +270,7 @@ + } + + str = (char *) pathname; +- if (strstr(pathname, "/var/log") == pathname) { ++ if (strstr(pathname, "@TERMUX_PREFIX@/var/log") == pathname) { + str = tmpdir_path(pathname); + if (debug) fprintf(stderr, "FOPEN: %s -> %s\n", pathname, str); + } +diff -uNr x11vnc-0.9.16/src/appshare.c x11vnc-0.9.16.mod/src/appshare.c +--- x11vnc-0.9.16/src/appshare.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/appshare.c 2020-11-13 22:45:15.221910136 +0200 +@@ -84,7 +84,7 @@ + " -display dpy X DISPLAY to use.\n" + " -trackdir dir Set tracking directory to 'dir'. x11vnc -appshare does\n" + " better if it can communicate with the x11vnc's via a\n" +-" file channel. By default a dir in /tmp is used, -trackdir\n" ++" file channel. By default a dir in @TERMUX_PREFIX@/tmp is used, -trackdir\n" + " specifies another directory, or use 'none' to disable.\n" + " -args 'string' Pass options 'string' to x11vnc (e.g. -scale 3/4,\n" + " -viewonly, -wait, -once, etc.)\n" +@@ -271,7 +271,7 @@ + static char *x11vnc = "x11vnc"; + static char *control = NULL; + static char *trackdir = "unset"; +-static char *trackpre = "/tmp/x11vnc-appshare-trackdir-tmp"; ++static char *trackpre = "@TERMUX_PREFIX@/tmp/x11vnc-appshare-trackdir-tmp"; + static char *tracktmp = NULL; + static char unique_tag[100]; + static int use_forever = 1; +@@ -1660,7 +1660,7 @@ + sprintf(tracktmp, "%s/0xprop.cmd", trackdir); + file = strdup(tracktmp); + } else { +- char tmp[] = "/tmp/x11vnc-appshare.cmd.XXXXXX"; ++ char tmp[] = "@TERMUX_PREFIX@/tmp/x11vnc-appshare.cmd.XXXXXX"; + int fd = mkstemp(tmp); + if (fd < 0) { + return; +diff -uNr x11vnc-0.9.16/src/cleanup.c x11vnc-0.9.16.mod/src/cleanup.c +--- x11vnc-0.9.16/src/cleanup.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/cleanup.c 2020-11-13 22:49:11.185647908 +0200 +@@ -445,10 +445,10 @@ + crash_stack_command2 = (char *) malloc(buffer_size); + crash_debug_command = (char *) malloc(buffer_size); + +- snprintf(crash_stack_command1, buffer_size, "echo where > /tmp/gdb.%d;" +- " env PATH=$PATH:/usr/local/bin:/usr/sfw/bin:/usr/bin" +- " gdb -x /tmp/gdb.%d -batch -n %s %d;" +- " rm -f /tmp/gdb.%d", pid, pid, program_name, pid, pid); ++ snprintf(crash_stack_command1, buffer_size, "echo where > @TERMUX_PREFIX@/tmp/gdb.%d;" ++ " env PATH=$PATH:@TERMUX_PREFIX@/bin" ++ " gdb -x @TERMUX_PREFIX@/tmp/gdb.%d -batch -n %s %d;" ++ " rm -f @TERMUX_PREFIX@/tmp/gdb.%d", pid, pid, program_name, pid, pid); + snprintf(crash_stack_command2, buffer_size, "pstack %d", program_pid); + + snprintf(crash_debug_command, buffer_size, "gdb %s %d", program_name, pid); +diff -uNr x11vnc-0.9.16/src/connections.c x11vnc-0.9.16.mod/src/connections.c +--- x11vnc-0.9.16/src/connections.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/connections.c 2020-11-13 22:55:28.411245968 +0200 +@@ -632,7 +632,7 @@ + FILE *ph; + char line[1024]; + char *cmd2 = NULL; +- char tmp[] = "/tmp/x11vnc-tmp.XXXXXX"; ++ char tmp[] = "@TERMUX_PREFIX@/tmp/x11vnc-tmp.XXXXXX"; + int deltmp = 0; + + if (input != NULL) { +@@ -645,7 +645,7 @@ + close(tmp_fd); + deltmp = 1; + cmd2 = (char *) malloc(100 + strlen(tmp) + strlen(cmd)); +- sprintf(cmd2, "/bin/cat %s | %s", tmp, cmd); ++ sprintf(cmd2, "@TERMUX_PREFIX@/bin/cat %s | %s", tmp, cmd); + + ph = popen(cmd2, "r"); + } else { +@@ -740,7 +740,7 @@ + setpgrp(); + #endif + } +- execlp("/bin/sh", "/bin/sh", "-c", cmd, (char *) NULL); ++ execlp("@TERMUX_PREFIX@/bin/sh", "@TERMUX_PREFIX@/bin/sh", "-c", cmd, (char *) NULL); + exit(1); + } + } +diff -uNr x11vnc-0.9.16/src/enc.h x11vnc-0.9.16.mod/src/enc.h +--- x11vnc-0.9.16/src/enc.h 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/enc.h 2020-11-13 22:55:33.235109244 +0200 +@@ -2153,7 +2153,7 @@ + + /* + +-#!/usr/bin/perl ++#!@TERMUX_PREFIX@/bin/perl + # + # md5_to_rc4key.pl + # +@@ -2180,7 +2180,7 @@ + # n.b. this is not super secure against bad locals... + + $pw = shift; +-$tmp = "/tmp/md5out.$$"; ++$tmp = "@TERMUX_PREFIX@/tmp/md5out.$$"; + + open(MD5, "| md5sum > $tmp"); + print MD5 $pw; +diff -uNr x11vnc-0.9.16/src/gui.c x11vnc-0.9.16.mod/src/gui.c +--- x11vnc-0.9.16/src/gui.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/gui.c 2020-11-13 22:55:58.542524287 +0200 +@@ -263,8 +263,7 @@ + + /* Most of the following mess is for wish on Solaris: */ + +-static char *extra_path = ":/usr/local/bin:/usr/bin/X11:/usr/sfw/bin" +- ":/usr/X11R6/bin:/usr/openwin/bin:/usr/dt/bin:/opt/sfw/bin"; ++static char *extra_path = ":@TERMUX_PREFIX@/bin"; + static char *wishes[] = {"wish8.4", "wish", "wish8.3", "wish8.5", "wish8.6", "wish8.7", "wishx", "wish8.0", NULL}; + + static void run_gui(char *gui_xdisplay, int connect_to_x11vnc, int start_x11vnc, +@@ -407,7 +406,7 @@ + + orig_path = getenv("PATH"); + if (! orig_path) { +- orig_path = strdup("/bin:/usr/bin:/usr/bin/X11"); ++ orig_path = strdup("@TERMUX_PREFIX@/bin"); + } + full_path = (char *) malloc(strlen(orig_path)+strlen(extra_path)+1); + strcpy(full_path, orig_path); +@@ -715,8 +714,8 @@ + #endif + if (portprompt) { + char *cmd, *p, *p2, *p1, *p0 = getenv("PATH"); +- char tf1[] = "/tmp/x11vnc_port_prompt.2XXXXXX"; +- char tf2[] = "/tmp/x11vnc_port_prompt.1XXXXXX"; ++ char tf1[] = "@TERMUX_PREFIX@/tmp/x11vnc_port_prompt.2XXXXXX"; ++ char tf2[] = "@TERMUX_PREFIX@/tmp/x11vnc_port_prompt.1XXXXXX"; + int fd; + char *dstr = "", *wish = NULL; + char line[128]; +@@ -872,7 +871,7 @@ + pid_t parent = getpid(); + + if (icon_mode) { +- char tf[] = "/tmp/x11vnc.tray.XXXXXX"; ++ char tf[] = "@TERMUX_PREFIX@/tmp/x11vnc.tray.XXXXXX"; + int fd; + + fd = mkstemp(tf); +diff -uNr x11vnc-0.9.16/src/help.c x11vnc-0.9.16.mod/src/help.c +--- x11vnc-0.9.16/src/help.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/help.c 2020-11-13 23:03:57.623128067 +0200 +@@ -302,7 +302,7 @@ + " around transient popup menus (but not for the menu\n" + " itself): a workaround is to disable SaveUnders\n" + " by passing the \"-su\" argument to Xsun (in\n" +-" /etc/dt/config/Xservers).\n" ++" @TERMUX_PREFIX@/etc/dt/config/Xservers).\n" + "\n" + " Use -overlay as a workaround for situations like these:\n" + " Some legacy applications require the default visual to\n" +@@ -565,7 +565,7 @@ + " where the Java vncviewer applet is, have x11vnc try\n" + " to *guess* where the directory is by looking relative\n" + " to the program location and in standard locations\n" +-" (/usr/local/share/x11vnc/classes, etc). Under -ssl or\n" ++" (@TERMUX_PREFIX@/share/x11vnc/classes, etc). Under -ssl or\n" + " -stunnel the ssl classes subdirectory is sought.\n" + "-http_ssl As -http, but force lookup for ssl classes subdir.\n" + "\n" +@@ -1196,7 +1196,7 @@ + " not correct.) Here is an example script (note it has\n" + " a hardwired bogus password \"abc\"!)\n" + "\n" +-" #!/bin/sh\n" ++" #!@TERMUX_PREFIX@/bin/sh\n" + " # Example x11vnc -unixpw_cmd script.\n" + " # Read the first two lines of stdin (user and passwd)\n" + " read user\n" +@@ -1423,7 +1423,7 @@ + "\n" + " A more interesting case is like this:\n" + "\n" +-" WAIT:cmd=/usr/local/bin/find_display\n" ++" WAIT:cmd=@TERMUX_PREFIX@/bin/find_display\n" + "\n" + " in which case the command after \"cmd=\" is run to\n" + " dynamically work out the DISPLAY and optionally the\n" +@@ -1574,7 +1574,7 @@ + " port 5800 and allow the Java vncviewer to be downloaded\n" + " by client web browsers. For example:\n" + "\n" +-" 5815 stream tcp nowait root /usr/sbin/tcpd /.../x11vnc \\\n" ++" 5815 stream tcp nowait root @TERMUX_PREFIX@/bin/tcpd /.../x11vnc \\\n" + " -inetd -q -http_ssl -prog /.../x11vnc \\\n" + " -display WAIT:cmd=HTTPONCE\n" + "\n" +@@ -1645,7 +1645,7 @@ + "\n" + " To troubleshoot the FINDCREATEDISPLAY mechanism,\n" + " set the following env. var. to an output log file,\n" +-" e.g -env CREATE_DISPLAY_OUTPUT=/tmp/mydebug.txt\n" ++" e.g -env CREATE_DISPLAY_OUTPUT=@TERMUX_PREFIX@/tmp/mydebug.txt\n" + "\n" + " So this is a somewhat odd mode for x11vnc in that it\n" + " will start up and poll virtual X servers! This can\n" +@@ -1653,7 +1653,7 @@ + " definitely getting a desktop (either real or virtual)\n" + " on the machine. E.g. a desktop service:\n" + "\n" +-" 5900 stream tcp nowait root /usr/sbin/tcpd /.../x11vnc\n" ++" 5900 stream tcp nowait root @TERMUX_PREFIX@/bin/tcpd /.../x11vnc\n" + " -inetd -q -http -ssl SAVE -unixpw -users unixpw=\\\n" + " -passwd secret -prog /.../x11vnc \\\n" + " -display WAIT:cmd=FINDCREATEDISPLAY\n" +@@ -1990,7 +1990,7 @@ + " Another use is if ~/.vnc/cert is on an NFS share you\n" + " might want your certificates and keys to be on a local\n" + " filesystem to prevent network snooping (for example\n" +-" -ssldir /var/lib/x11vnc-certs).\n" ++" -ssldir @TERMUX_PREFIX@/var/lib/x11vnc-certs).\n" + "\n" + " -ssldir affects nearly all of the other -ssl* options,\n" + " e.g. -ssl SAVE, -sslGenCert, etc..\n" +@@ -2418,7 +2418,7 @@ + " Set -env STUNNEL_DEBUG=1 for more debugging printout.\n" + "\n" + " Set -env STUNNEL_PROG=xxx to the full path of stunnel\n" +-" program you want to be used (e.g. /usr/bin/stunnel4).\n" ++" program you want to be used (e.g. @TERMUX_PREFIX@/bin/stunnel4).\n" + "\n" + " Set -env STUNNEL_LISTEN=xxx to the address of the\n" + " network interface to listen on (the default is to listen\n" +@@ -4380,8 +4380,8 @@ + " Examples:\n" + " -rawfb shm:210337933@800x600x32:ff/ff00/ff0000\n" + " -rawfb map:/dev/fb0@1024x768x32\n" +-" -rawfb map:/tmp/Xvfb_screen0@640x480x8+3232\n" +-" -rawfb file:/tmp/my.pnm@250x200x24+37\n" ++" -rawfb map:@TERMUX_PREFIX@/tmp/Xvfb_screen0@640x480x8+3232\n" ++" -rawfb file:@TERMUX_PREFIX@/tmp/my.pnm@250x200x24+37\n" + " -rawfb file:/dev/urandom@128x128x8\n" + " -rawfb snap:/dev/video0@320x240x24 -24to32\n" + " -rawfb video0\n" +@@ -4679,7 +4679,7 @@ + " use the data in file. For stations that are not\n" + " numeric, e.g. SE20, they are placed above the highest\n" + " numbered station in the order they are found. Example:\n" +-" \"-freqtab /usr/X11R6/share/xawtv/europe-west.list\"\n" ++" \"-freqtab @TERMUX_PREFIX@/share/xawtv/europe-west.list\"\n" + " You can make your own freqtab by copying the xawtv\n" + " format.\n" + "\n" +@@ -4690,7 +4690,7 @@ + " events. If you prefix \"cmd\" with \"tee:\" it will\n" + " both send them to the pipe command and process them.\n" + " For a description of the format run \"-pipeinput\n" +-" tee:/bin/cat\". Another prefix is \"reopen\" which\n" ++" tee:@TERMUX_PREFIX@/bin/cat\". Another prefix is \"reopen\" which\n" + " means to reopen pipe if it exits. Separate multiple\n" + " prefixes with commas.\n" + "\n" +@@ -5937,9 +5937,9 @@ + fprintf(stderr, " - You can explicitly indicate which MIT-MAGIC-COOKIE" + " file should be used\n"); + fprintf(stderr, " by the -auth option, e.g.:\n"); +- fprintf(stderr, " x11vnc -auth /home/someuser/.Xauthority" ++ fprintf(stderr, " x11vnc -auth @TERMUX_HOME@/.Xauthority" + " -display :0\n"); +- fprintf(stderr, " x11vnc -auth /tmp/.gdmzndVlR" ++ fprintf(stderr, " x11vnc -auth @TERMUX_PREFIX@/tmp/.gdmzndVlR" + " -display :0\n"); + fprintf(stderr, " you must have read permission for the auth file.\n"); + fprintf(stderr, " See also '-auth guess' and '-findauth' discussed below.\n"); +@@ -5952,12 +5952,12 @@ + " MIT-MAGIC-COOKIE file.\n"); + fprintf(stderr, " Some examples for various display managers:\n"); + fprintf(stderr, "\n"); +- fprintf(stderr, " gdm: -auth /var/gdm/:0.Xauth\n"); +- fprintf(stderr, " -auth /var/lib/gdm/:0.Xauth\n"); +- fprintf(stderr, " kdm: -auth /var/lib/kdm/A:0-crWk72\n"); +- fprintf(stderr, " -auth /var/run/xauth/A:0-crWk72\n"); +- fprintf(stderr, " xdm: -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk\n"); +- fprintf(stderr, " dtlogin: -auth /var/dt/A:0-UgaaXa\n"); ++ fprintf(stderr, " gdm: -auth @TERMUX_PREFIX@/var/gdm/:0.Xauth\n"); ++ fprintf(stderr, " -auth @TERMUX_PREFIX@/var/lib/gdm/:0.Xauth\n"); ++ fprintf(stderr, " kdm: -auth @TERMUX_PREFIX@/var/lib/kdm/A:0-crWk72\n"); ++ fprintf(stderr, " -auth @TERMUX_PREFIX@/var/run/xauth/A:0-crWk72\n"); ++ fprintf(stderr, " xdm: -auth @TERMUX_PREFIX@/var/lib/xdm/authdir/authfiles/A:0-XQvaJk\n"); ++ fprintf(stderr, " dtlogin: -auth @TERMUX_PREFIX@/var/dt/A:0-UgaaXa\n"); + fprintf(stderr, "\n"); + fprintf(stderr, " Sometimes the command \"ps wwwwaux | grep auth\"" + " can reveal the file location.\n"); +diff -uNr x11vnc-0.9.16/src/nox11_funcs.h x11vnc-0.9.16.mod/src/nox11_funcs.h +--- x11vnc-0.9.16/src/nox11_funcs.h 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/nox11_funcs.h 2020-11-13 22:56:51.177947445 +0200 +@@ -2,7 +2,7 @@ + generated by util script makekeysyms.pl: + + ----- +-#!/usr/bin/perl ++#!@TERMUX_PREFIX@/bin/perl + + print "#if 0\n"; + print "generated by util script makekeysyms.pl:\n\n"; +diff -uNr x11vnc-0.9.16/src/pointer.c x11vnc-0.9.16.mod/src/pointer.c +--- x11vnc-0.9.16/src/pointer.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/pointer.c 2020-11-13 23:04:57.462254872 +0200 +@@ -1179,7 +1179,7 @@ + "#\n" + "# is the corresponding Keysym name.\n" + "#\n" +-"# See the file /usr/include/X11/keysymdef.h for the mappings.\n" ++"# See the file @TERMUX_PREFIX@/include/X11/keysymdef.h for the mappings.\n" + "# You basically remove the leading 'XK_' prefix from the macro name in\n" + "# that file to get the Keysym name.\n" + "#\n" +diff -uNr x11vnc-0.9.16/src/remote.c x11vnc-0.9.16.mod/src/remote.c +--- x11vnc-0.9.16/src/remote.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/remote.c 2020-11-13 23:04:48.621783265 +0200 +@@ -437,13 +437,11 @@ + int i; + char **use; + char *list[] = { +- "/usr/local/share/x11vnc/classes", +- "/usr/share/x11vnc/classes", ++ "@TERMUX_PREFIX@/share/x11vnc/classes", + NULL + }; + char *ssllist[] = { +- "/usr/local/share/x11vnc/classes/ssl", +- "/usr/share/x11vnc/classes/ssl", ++ "@TERMUX_PREFIX@/share/x11vnc/classes/ssl", + NULL + }; + if (use_stunnel && http_ssl) { +diff -uNr x11vnc-0.9.16/src/screen.c x11vnc-0.9.16.mod/src/screen.c +--- x11vnc-0.9.16/src/screen.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/screen.c 2020-11-13 22:44:49.513239400 +0200 +@@ -1750,7 +1750,7 @@ + } + if (strstr(rstr, "solid=") == rstr) { + char *n = rstr + strlen("solid="); +- char tmp[] = "/tmp/rawfb_solid.XXXXXX"; ++ char tmp[] = "@TERMUX_PREFIX@/tmp/rawfb_solid.XXXXXX"; + char str[100]; + unsigned int vals[1024], val; + int x, y, fd, w = 1024, h = 768; +diff -uNr x11vnc-0.9.16/src/solid.c x11vnc-0.9.16.mod/src/solid.c +--- x11vnc-0.9.16/src/solid.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/solid.c 2020-11-13 22:57:26.661979368 +0200 +@@ -56,7 +56,7 @@ + static void usr_bin_path(int restore) { + static char *oldpath = NULL; + char *newpath; +- char addpath[] = "/usr/bin:/bin:"; ++ char addpath[] = "@TERMUX_PREFIX@/bin:"; + + if (restore) { + if (oldpath) { +@@ -70,7 +70,7 @@ + if (getenv("PATH")) { + oldpath = strdup(getenv("PATH")); + } else { +- oldpath = strdup("/usr/bin"); ++ oldpath = strdup("@TERMUX_PREFIX@/bin"); + } + newpath = (char *) malloc(strlen(oldpath) + strlen(addpath) + 1); + newpath[0] = '\0'; +@@ -1218,7 +1218,7 @@ + close(fd); + sprintf(num, "%d", (int) parent); + set_env("SS_WATCH_PID", num); +- execlp("/bin/sh", "/bin/sh", tmp, (char *) NULL); ++ execlp("@TERMUX_PREFIX@/bin/sh", "@TERMUX_PREFIX@/bin/sh", tmp, (char *) NULL); + } + exit(1); + } +diff -uNr x11vnc-0.9.16/src/sslcmds.c x11vnc-0.9.16.mod/src/sslcmds.c +--- x11vnc-0.9.16/src/sslcmds.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/sslcmds.c 2020-11-13 23:02:16.702281523 +0200 +@@ -89,7 +89,7 @@ + + int start_stunnel(int stunnel_port, int x11vnc_port, int hport, int x11vnc_hport) { + #ifdef SSLCMDS +- char extra[] = ":/usr/sbin:/usr/local/sbin:/dist/sbin"; ++ char extra[] = ":@TERMUX_PREFIX@/bin"; + char *path, *p, *exe; + char *stunnel_path = NULL; + struct stat verify_buf; +@@ -598,8 +598,8 @@ + exit(1); + } + +- cmd = (char *)malloc(strlen("/bin/sh ") + strlen(scr) + 1); +- sprintf(cmd, "/bin/sh %s", scr); ++ cmd = (char *)malloc(strlen("@TERMUX_PREFIX@/bin/sh ") + strlen(scr) + 1); ++ sprintf(cmd, "@TERMUX_PREFIX@/bin/sh %s", scr); + + system(cmd); + unlink(scr); +@@ -615,8 +615,8 @@ + exit(1); + } + +- cmd = (char *)malloc(strlen("/bin/sh ") + strlen(scr) + 1); +- sprintf(cmd, "/bin/sh %s", scr); ++ cmd = (char *)malloc(strlen("@TERMUX_PREFIX@/bin/sh ") + strlen(scr) + 1); ++ sprintf(cmd, "@TERMUX_PREFIX@/bin/sh %s", scr); + + if (! ty) { + set_env("TYPE", ""); +@@ -647,7 +647,7 @@ + void sslEncKey(char *path, int mode) { + char *openssl = find_openssl_bin(); + char *scr, *cert = NULL, *tca, *cdir = NULL; +- char line[1024], tmp[] = "/tmp/x11vnc-tmp.XXXXXX"; ++ char line[1024], tmp[] = "@TERMUX_PREFIX@/tmp/x11vnc-tmp.XXXXXX"; + int tmp_fd, incert, info_only = 0, delete_only = 0, listlong = 0; + struct stat sbuf; + FILE *file; +@@ -744,8 +744,8 @@ + write(tmp_fd, genCert, strlen(genCert)); + close(tmp_fd); + +- scr = (char *) malloc(strlen("/bin/sh ") + strlen(tmp) + 1); +- sprintf(scr, "/bin/sh %s", tmp); ++ scr = (char *) malloc(strlen("@TERMUX_PREFIX@/bin/sh ") + strlen(tmp) + 1); ++ sprintf(scr, "@TERMUX_PREFIX@/bin/sh %s", tmp); + + set_env("BASE_DIR", cdir); + set_env("OPENSSL", openssl); +@@ -855,8 +855,8 @@ + write(tmp_fd, genCert, strlen(genCert)); + close(tmp_fd); + +- scr = (char *) malloc(strlen("/bin/sh ") + strlen(tmp) + 1); +- sprintf(scr, "/bin/sh %s", tmp); ++ scr = (char *) malloc(strlen("@TERMUX_PREFIX@/bin/sh ") + strlen(tmp) + 1); ++ sprintf(scr, "@TERMUX_PREFIX@/bin/sh %s", tmp); + + set_env("BASE_DIR", "/no/such/dir"); + set_env("OPENSSL", openssl); +diff -uNr x11vnc-0.9.16/src/sslhelper.c x11vnc-0.9.16.mod/src/sslhelper.c +--- x11vnc-0.9.16/src/sslhelper.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/sslhelper.c 2020-11-13 22:58:15.638488787 +0200 +@@ -195,8 +195,7 @@ + char *path, *exe, *p, *gp; + struct stat sbuf; + int found_openssl = 0; +- char extra[] = ":/usr/bin:/bin:/usr/sbin:/usr/local/bin" +- ":/usr/local/sbin:/usr/sfw/bin"; ++ char extra[] = ":@TERMUX_PREFIX@/bin"; + + gp = getenv("PATH"); + if (! gp) { +@@ -238,8 +237,8 @@ + char *create_tmp_pem(char *pathin, int prompt) { + pid_t pid, pidw; + FILE *in, *out; +- char cnf[] = "/tmp/x11vnc-cnf.XXXXXX"; +- char pem[] = "/tmp/x11vnc-pem.XXXXXX"; ++ char cnf[] = "@TERMUX_PREFIX@/tmp/x11vnc-cnf.XXXXXX"; ++ char pem[] = "@TERMUX_PREFIX@/tmp/x11vnc-pem.XXXXXX"; + char str[8*1024], line[1024], *exe; + int cnf_fd, pem_fd, status, show_cert = 1; + char *days; +@@ -1445,7 +1444,7 @@ + + static int add_anon_dh(void) { + pid_t pid, pidw; +- char cnf[] = "/tmp/x11vnc-dh.XXXXXX"; ++ char cnf[] = "@TERMUX_PREFIX@/tmp/x11vnc-dh.XXXXXX"; + char *infile = NULL; + int status, cnf_fd; + DH *dh; +@@ -2626,7 +2625,7 @@ + #define MSZ 4096 + static void init_prng(void) { + int db = 0, bytes, ubytes, fd; +- char file[MSZ], dtmp[100]; ++ char file[MSZ], dtmp[1024]; + unsigned int sr; + + RAND_file_name(file, MSZ); +@@ -2641,7 +2640,7 @@ + if (db) fprintf(stderr, "bytes read: %d / %d\n", bytes, ubytes); + + /* mix in more predictable stuff as well for fallback */ +- sprintf(dtmp, "/tmp/p%.8f.XXXXXX", dnow()); ++ sprintf(dtmp, "@TERMUX_PREFIX@/tmp/p%.8f.XXXXXX", dnow()); + fd = mkstemp(dtmp); + RAND_add(dtmp, strlen(dtmp), 0); + if (fd >= 0) { +@@ -3511,7 +3510,7 @@ + free(certret_str); + certret_str = NULL; + } +- certret = strdup("/tmp/x11vnc-certret.XXXXXX"); ++ certret = strdup("@TERMUX_PREFIX@/tmp/x11vnc-certret.XXXXXX"); + omode = umask(077); + certret_fd = mkstemp(certret); + umask(omode); +@@ -3528,7 +3527,7 @@ + free(dhret_str); + dhret_str = NULL; + } +- dhret = strdup("/tmp/x11vnc-dhret.XXXXXX"); ++ dhret = strdup("@TERMUX_PREFIX@/tmp/x11vnc-dhret.XXXXXX"); + omode = umask(077); + dhret_fd = mkstemp(dhret); + umask(omode); +diff -uNr x11vnc-0.9.16/src/ssltools.h x11vnc-0.9.16.mod/src/ssltools.h +--- x11vnc-0.9.16/src/ssltools.h 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/ssltools.h 2020-11-13 23:04:28.264709513 +0200 +@@ -37,7 +37,7 @@ + + + char genCA[] = +-"#!/bin/sh\n" ++"#!@TERMUX_PREFIX@/bin/sh\n" + "\n" + "DIR=$BASE_DIR\n" + "if [ \"x$DIR\" = \"x\" ]; then\n" +@@ -50,7 +50,7 @@ + " DIR=\"`pwd`/$DIR\"\n" + "fi\n" + "\n" +-"PATH=/usr/bin:/bin:/usr/sbin:$PATH; export PATH\n" ++"PATH=@TERMUX_PREFIX@/bin:$PATH; export PATH\n" + "if [ \"x$OPENSSL\" = \"x\" ]; then\n" + " OPENSSL=\"openssl\"\n" + "fi\n" +@@ -302,7 +302,7 @@ + ; + + char genCert[] = +-"#!/bin/sh\n" ++"#!@TERMUX_PREFIX@/bin/sh\n" + "\n" + "direrror() {\n" + " echo \"\"\n" +@@ -623,7 +623,7 @@ + " exit\n" + "fi\n" + "\n" +-"PATH=/usr/bin:/bin:/usr/sbin:$PATH; export PATH\n" ++"PATH=@TERMUX_PREFIX@/bin:$PATH; export PATH\n" + "if [ \"x$OPENSSL\" = \"x\" ]; then\n" + " OPENSSL=\"openssl\"\n" + "fi\n" +@@ -746,7 +746,7 @@ + ; + + char find_display[] = +-"#!/bin/sh\n" ++"#!@TERMUX_PREFIX@/bin/sh\n" + "#\n" + "# Script for use in -display WAIT:cmd=FINDDISPLAY -unixpw mode.\n" + "# Attempts to find 1) DISPLAY and 2) XAUTH data for the user and\n" +@@ -758,7 +758,7 @@ + "#\n" + "# If not called with -unixpw, root, etc. uses current $USER.\n" + "\n" +-"#FIND_DISPLAY_OUTPUT=/tmp/fdo.$USER.txt\n" ++"#FIND_DISPLAY_OUTPUT=@TERMUX_PREFIX@/tmp/fdo.$USER.txt\n" + "\n" + "if [ \"X$FIND_DISPLAY_OUTPUT\" != \"X\" ]; then\n" + " if [ \"X$FIND_DISPLAY_EXEC\" = \"X\" ]; then\n" +@@ -767,9 +767,9 @@ + " # we rerun ourselves with verbose output to a file:\n" + " #\n" + " if [ \"X$FIND_DISPLAY_OUTPUT\" != \"X\" ]; then\n" +-" /bin/sh $0 \"$@\" 2> $FIND_DISPLAY_OUTPUT\n" ++" @TERMUX_PREFIX@/bin/sh $0 \"$@\" 2> $FIND_DISPLAY_OUTPUT\n" + " else\n" +-" /bin/sh $0 \"$@\" 2> /dev/null\n" ++" @TERMUX_PREFIX@/bin/sh $0 \"$@\" 2> /dev/null\n" + " fi\n" + " exit $?\n" + " fi\n" +@@ -790,7 +790,7 @@ + "fi\n" + "\n" + "# Set PATH to pick up utilities we use below.\n" +-"PATH=$PATH:/bin:/usr/bin:/usr/X11R6/bin:/usr/bin/X11:/usr/openwin/bin:/usr/ucb\n" ++"PATH=$PATH:@TERMUX_PREFIX@/bin\n" + "export PATH\n" + "\n" + "# This is to try to trick ps(1) into writing wide lines: \n" +@@ -910,8 +910,8 @@ + " psout=`ps aux 2>/dev/null | grep -wv PID | grep -v grep`\n" + "elif [ \"X$uname\" = \"XLinux\" -o \"X$is_bsd\" = \"X1\" ]; then\n" + " psout=`ps wwaux 2>/dev/null | grep -wv PID | grep -v grep`\n" +-"elif [ \"X$uname\" = \"XSunOS\" -a -x /usr/ucb/ps ]; then\n" +-" psout=`/usr/ucb/ps wwaux 2>/dev/null | grep -wv PID | grep -v grep`\n" ++"elif [ \"X$uname\" = \"XSunOS\" -a -x @TERMUX_PREFIX@/bin/ps ]; then\n" ++" psout=`@TERMUX_PREFIX@/bin/ps wwaux 2>/dev/null | grep -wv PID | grep -v grep`\n" + "else\n" + " psout=`ps -ef 2>/dev/null | grep -wv PID | grep -v grep`\n" + "fi\n" +@@ -1108,11 +1108,11 @@ + " xtf=$HOME/.xat.$$\n" + " xtf=`mytmp \"$xtf\"`\n" + " if [ ! -f $xtf ]; then\n" +-" xtf=/tmp/.xat.$$\n" ++" xtf=@TERMUX_PREFIX@/tmp/.xat.$$\n" + " xtf=`mytmp \"$xtf\"`\n" + " fi\n" + " if [ ! -f $xtf ]; then\n" +-" xtf=/tmp/.xatb.$$\n" ++" xtf=@TERMUX_PREFIX@/tmp/.xatb.$$\n" + " rm -f $xtf\n" + " if [ -f $xtf ]; then\n" + " exit 1\n" +@@ -1165,15 +1165,15 @@ + " # do a normal xauth list:\n" + " list=\"$list \"`xauth list | awk '{print $1}' | grep /unix | grep \"^${host}\" | sed -e 's/^.*:/:/' | sort -n | uniq`\n" + "\n" +-" # check for gdm and kdm non-NFS cookies in /tmp: (and now /var/run/gdm)\n" +-" for xa in /tmp/.gdm* /tmp/.Xauth* /var/run/gdm*/auth-for-*/database /var/run/gdm*/auth-cookie-*-for-*\n" ++" # check for gdm and kdm non-NFS cookies in @TERMUX_PREFIX@/tmp: (and now @TERMUX_PREFIX@/var/run/gdm)\n" ++" for xa in @TERMUX_PREFIX@/tmp/.gdm* @TERMUX_PREFIX@/tmp/.Xauth* @TERMUX_PREFIX@/var/run/gdm*/auth-for-*/database @TERMUX_PREFIX@/var/run/gdm*/auth-cookie-*-for-*\n" + " do\n" + " # try to be somewhat careful about the real owner of the file:\n" + " if [ \"X$am_root\" = \"X1\" ]; then\n" + " break\n" + " fi\n" + " if [ -f $xa -a -r $xa ]; then\n" +-" if ls -l \"$xa\" | sed -e 's,/tmp.*$,,' -e 's,/var.*$,,' | grep -w \"$user\" > /dev/null; then\n" ++" if ls -l \"$xa\" | sed -e 's,@TERMUX_PREFIX@/tmp.*$,,' -e 's,@TERMUX_PREFIX@/var.*$,,' | grep -w \"$user\" > /dev/null; then\n" + " # append these too:\n" + " if find \"$xa\" -user \"$user\" -perm 600 > /dev/null; then\n" + " :\n" +@@ -1207,7 +1207,7 @@ + "\n" + "# try the items in the list:\n" + "#\n" +-"nsout_trim=`echo \"$nsout\" | grep \"/tmp/.X11-unix/\"`\n" ++"nsout_trim=`echo \"$nsout\" | grep \"@TERMUX_PREFIX@/tmp/.X11-unix/\"`\n" + "#\n" + "for p in $list\n" + "do\n" +@@ -1220,16 +1220,16 @@ + " fi\n" + "\n" + " # check for the local X11 files:\n" +-" xd=\"/tmp/.X11-unix/X$d\"\n" ++" xd=\"@TERMUX_PREFIX@/tmp/.X11-unix/X$d\"\n" + " if [ -r \"$xd\" -o -w \"$xd\" -o -x \"$xd\" ]; then\n" +-" if echo \"$nsout_trim\" | grep \"/tmp/.X11-unix/X$d[ ]*\\$\" > /dev/null; then\n" ++" if echo \"$nsout_trim\" | grep \"@TERMUX_PREFIX@/tmp/.X11-unix/X$d[ ]*\\$\" > /dev/null; then\n" + " ok=1\n" + " fi\n" + " fi\n" + " if [ \"X$ok\" = \"X\" ]; then\n" + " # instead check for the lock:\n" +-" if [ -f \"/tmp/.X$d-lock\" ]; then\n" +-" pid=`cat \"/tmp/.X$d-lock\" | sed -e 's/[ ]//g'`\n" ++" if [ -f \"@TERMUX_PREFIX@/tmp/.X$d-lock\" ]; then\n" ++" pid=`cat \"@TERMUX_PREFIX@/tmp/.X$d-lock\" | sed -e 's/[ ]//g'`\n" + " if echo \"$pid\" | grep '^[0-9][0-9]*$' > /dev/null; then\n" + " if [ \"X$uname\" = \"XLinux\" -o \"X$uname\" = \"XSunOS\" ]; then\n" + " if [ -d \"/proc/$pid\" ]; then\n" +@@ -1451,12 +1451,12 @@ + ; + + char create_display[] = +-"#!/bin/sh\n" ++"#!@TERMUX_PREFIX@/bin/sh\n" + "\n" +-"#CREATE_DISPLAY_OUTPUT=/tmp/cdo.txt\n" ++"#CREATE_DISPLAY_OUTPUT=@TERMUX_PREFIX@/tmp/cdo.txt\n" + "\n" + "if echo \"$USER\" | egrep 'runge' > /dev/null ; then\n" +-" CREATE_DISPLAY_OUTPUT=/tmp/cdo.$USER.txt\n" ++" CREATE_DISPLAY_OUTPUT=@TERMUX_PREFIX@/tmp/cdo.$USER.txt\n" + " if [ -f $CREATE_DISPLAY_OUTPUT -a ! -w $CREATE_DISPLAY_OUTPUT ]; then\n" + " CREATE_DISPLAY_OUTPUT=$CREATE_DISPLAY_OUTPUT.$$\n" + " fi\n" +@@ -1466,9 +1466,9 @@ + " CREATE_DISPLAY_EXEC=1\n" + " export CREATE_DISPLAY_EXEC\n" + " if [ \"X$CREATE_DISPLAY_OUTPUT\" != \"X\" ]; then\n" +-" /bin/sh $0 \"$@\" 2> $CREATE_DISPLAY_OUTPUT\n" ++" @TERMUX_PREFIX@/bin/sh $0 \"$@\" 2> $CREATE_DISPLAY_OUTPUT\n" + " else\n" +-" /bin/sh $0 \"$@\" 2> /dev/null\n" ++" @TERMUX_PREFIX@/bin/sh $0 \"$@\" 2> /dev/null\n" + " fi\n" + " exit $?\n" + " fi\n" +@@ -1477,7 +1477,7 @@ + " CREATE_DISPLAY_PERL_SETPGRP=1\n" + " export CREATE_DISPLAY_PERL_SETPGRP\n" + " if type perl >/dev/null 2>&1; then\n" +-" perl -e \"setpgrp(0,0); exec '/bin/sh $0 $*'\";\n" ++" perl -e \"setpgrp(0,0); exec '@TERMUX_PREFIX@/bin/sh $0 $*'\";\n" + " exit $?\n" + " fi\n" + "fi\n" +@@ -1509,12 +1509,12 @@ + " if [ \"X$have_netstat\" != \"X\" ]; then\n" + " nsout=`$have_netstat -an`\n" + " fi\n" +-" nsout_trim=`echo \"$nsout\" | grep \"/tmp/.X11-unix/\"`\n" ++" nsout_trim=`echo \"$nsout\" | grep \"@TERMUX_PREFIX@/tmp/.X11-unix/\"`\n" + " while [ $try -lt $sry ]\n" + " do\n" +-" tlock=\"/tmp/.X${try}-lock\"\n" ++" tlock=\"@TERMUX_PREFIX@/tmp/.X${try}-lock\"\n" + " if [ -r $tlock ]; then\n" +-" if echo \"$nsout_trim\" | grep \"/tmp/.X11-unix/X${try}[ ]*\\$\" > /dev/null; then\n" ++" if echo \"$nsout_trim\" | grep \"@TERMUX_PREFIX@/tmp/.X11-unix/X${try}[ ]*\\$\" > /dev/null; then\n" + " :\n" + " else\n" + " pid=`head -n 1 $tlock 2>/dev/null | sed -e 's/[ ]//g' | grep '^[0-9][0-9]*$'`\n" +@@ -1532,7 +1532,7 @@ + " fi\n" + " fi\n" + " if [ ! -f $tlock ]; then\n" +-" if echo \"$nsout_trim\" | grep \"/tmp/.X11-unix/X${try}[ ]*\\$\" > /dev/null; then\n" ++" if echo \"$nsout_trim\" | grep \"@TERMUX_PREFIX@/tmp/.X11-unix/X${try}[ ]*\\$\" > /dev/null; then\n" + " :\n" + " else\n" + " n=$try\n" +@@ -1741,7 +1741,7 @@ + " fi\n" + " csr=`echo \"$FD_CUPS\" | awk -F: '{print $1}'`\n" + " ipp=`echo \"$FD_CUPS\" | awk -F: '{print $2}'`\n" +-" old=`strings -a /usr/sbin/cupsd 2>/dev/null | grep 'CUPS.v1\\.[01]'`\n" ++" old=`strings -a @TERMUX_PREFIX@/bin/cupsd 2>/dev/null | grep 'CUPS.v1\\.[01]'`\n" + " if [ \"X$old\" != \"X\" ]; then\n" + " FD_CUPS=`echo \"$FD_CUPS\" | sed -e 's/:.*$//'`\n" + " fi\n" +@@ -1875,12 +1875,12 @@ + "\n" + " rmf=\"/nosuch\"\n" + " if echo \"$sess\" | grep '[ ]' > /dev/null; then\n" +-" stmp=/tmp/.cd$$`random`\n" ++" stmp=@TERMUX_PREFIX@/tmp/.cd$$`random`\n" + " stmp=`mytmp \"$stmp\"`\n" + " touch $stmp\n" + " chmod 755 $stmp || exit 1\n" +-" echo \"#!/bin/sh\" > $stmp\n" +-" #echo \"(id; env; env | grep XAUTHORITY | sed -e 's/XAUTHORITY=//' | xargs ls -l) > /tmp/ENV.OUT.$$\" >> $stmp\n" ++" echo \"#!@TERMUX_PREFIX@/bin/sh\" > $stmp\n" ++" #echo \"(id; env; env | grep XAUTHORITY | sed -e 's/XAUTHORITY=//' | xargs ls -l) > @TERMUX_PREFIX@/tmp/ENV.OUT.$$\" >> $stmp\n" + " if [ \"X$SAVE_PATH\" != \"X\" ]; then\n" + " echo \"PATH=\\\"$SAVE_PATH\\\"\" >> $stmp\n" + " echo \"export PATH\" >> $stmp\n" +@@ -1896,9 +1896,9 @@ + " fi\n" + "\n" + " if [ \"X$have_root\" != \"X\" -a \"X$USER\" != \"Xroot\" ]; then\n" +-" ctmp1=/tmp/.xat1_$$`random`\n" ++" ctmp1=@TERMUX_PREFIX@/tmp/.xat1_$$`random`\n" + " ctmp1=`mytmp \"$ctmp1\"`\n" +-" ctmp2=/tmp/.xat2_$$`random`\n" ++" ctmp2=@TERMUX_PREFIX@/tmp/.xat2_$$`random`\n" + " ctmp2=`mytmp \"$ctmp2\"`\n" + " touch $ctmp1 $ctmp2\n" + " $have_xauth -f $authfile nextract - :$N > $ctmp1\n" +@@ -1909,7 +1909,7 @@ + " rm -f $ctmp1 $ctmp2\n" + " XAUTHORITY=$authfile\n" + " export XAUTHORITY\n" +-" sess=\"/bin/su - $USER -c $sess\"\n" ++" sess=\"@TERMUX_PREFIX@/bin/su - $USER -c $sess\"\n" + " else\n" + " $have_xauth -f $authfile nextract - :$N | $have_xauth nmerge -\n" + " $have_xauth -f $authfile nextract - `hostname`:$N | $have_xauth nmerge -\n" +@@ -2013,7 +2013,7 @@ + " do\n" + " t=`expr $t + 1`\n" + " sleep $ns2\n" +-" pid2=`head -n 1 \"/tmp/.X$N-lock\" 2>/dev/null | sed -e 's/[ ]//g' | grep '^[0-9][0-9]*$'`\n" ++" pid2=`head -n 1 \"@TERMUX_PREFIX@/tmp/.X$N-lock\" 2>/dev/null | sed -e 's/[ ]//g' | grep '^[0-9][0-9]*$'`\n" + " if [ \"X$pid2\" = \"X\" ]; then\n" + " pid2=9999999\n" + " fi\n" +@@ -2035,7 +2035,7 @@ + " result=0\n" + " fi\n" + " if [ \"X$have_netstat\" != \"X\" ]; then\n" +-" if $have_netstat -an | grep \"/tmp/.X11-unix/X$N\\$\" > /dev/null; then\n" ++" if $have_netstat -an | grep \"@TERMUX_PREFIX@/tmp/.X11-unix/X$N\\$\" > /dev/null; then\n" + " result=1\n" + " fi\n" + " fi\n" +@@ -2229,7 +2229,7 @@ + " if [ \"X$have_xauth\" = \"X\" ]; then\n" + " exit 1\n" + " fi\n" +-" tmp=/tmp/.xas$$`random`\n" ++" tmp=@TERMUX_PREFIX@/tmp/.xas$$`random`\n" + " tmp=`mytmp \"$tmp\"`\n" + " touch $tmp\n" + " chmod 600 $tmp || exit 1\n" +@@ -2332,7 +2332,7 @@ + "\n" + "# Set PATH to have a better chance of finding things:\n" + "SAVE_PATH=$PATH\n" +-"PATH=$PATH:/usr/X11R6/bin:/usr/bin/X11:/usr/openwin/bin:/usr/dt/bin:/opt/kde4/bin:/opt/kde3/bin:/opt/gnome/bin:/usr/bin:/bin:/usr/sfw/bin:/usr/local/bin\n" ++"PATH=$PATH:@TERMUX_PREFIX@/bin\n" + "\n" + "have_root=\"\"\n" + "id0=`id`\n" +@@ -2341,7 +2341,7 @@ + "fi\n" + "\n" + "p_ok=0\n" +-"if [ \"`type -p /bin/sh`\" = \"/bin/sh\" ]; then\n" ++"if [ \"`type -p @TERMUX_PREFIX@/bin/sh`\" = \"@TERMUX_PREFIX@/bin/sh\" ]; then\n" + " p_ok=1\n" + "fi\n" + "\n" +@@ -2443,7 +2443,7 @@ + ; + + char macosx_solid_background[] = +-"#!/bin/sh\n" ++"#!@TERMUX_PREFIX@/bin/sh\n" + "\n" + "#set -xv\n" + "\n" +@@ -2455,7 +2455,7 @@ + " exit\n" + "fi\n" + "\n" +-"PATH=/bin:/usr/bin:$PATH; export PATH\n" ++"PATH=@TERMUX_PREFIX@/bin:$PATH; export PATH\n" + "\n" + "# Check to see if our tarball has already been unpacked. If it has been\n" + "# we don't unpack it again. This lets the user overwrite the png with\n" +diff -uNr x11vnc-0.9.16/src/tkx11vnc.h x11vnc-0.9.16.mod/src/tkx11vnc.h +--- x11vnc-0.9.16/src/tkx11vnc.h 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/tkx11vnc.h 2020-11-13 22:59:47.188596158 +0200 +@@ -9,7 +9,7 @@ + * ...edit tkx11vnc instead. + */ + char gui_code[] = +-"#!/bin/sh\n" ++"#!@TERMUX_PREFIX@/bin/sh\n" + "# the next line restarts using wish. \\\n" + "exec wish \"$0\" \"$@\"\n" + "catch {rename send {}}\n" +@@ -6808,7 +6808,7 @@ + " puts stderr \"failure in restart_everything.\"\n" + " exit 1;\n" + " }\n" +-" set tmp \"/tmp/x11vnc[pid]\"\n" ++" set tmp \"@TERMUX_PREFIX@/tmp/x11vnc[pid]\"\n" + " append tmp [clock clicks]\n" + " set tmp2 \"\"\n" + " catch {set tmp2 [exec mktemp $tmp.XXXXXX 2>/dev/null]}\n" +diff -uNr x11vnc-0.9.16/src/uinput.c x11vnc-0.9.16.mod/src/uinput.c +--- x11vnc-0.9.16/src/uinput.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/uinput.c 2020-11-13 22:59:53.068773894 +0200 +@@ -1464,7 +1464,7 @@ + + Here is a little script to make it easier: + +-#!/usr/bin/perl ++#!@TERMUX_PREFIX@/bin/perl + while (<>) { + $_ =~ s/-XK_/XK_/; + next unless /^XK_/; +diff -uNr x11vnc-0.9.16/src/unixpw.c x11vnc-0.9.16.mod/src/unixpw.c +--- x11vnc-0.9.16/src/unixpw.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/unixpw.c 2020-11-13 23:00:53.902856481 +0200 +@@ -996,28 +996,28 @@ + if (0) { + ; + #endif +- } else if (stat("/bin/su", &sbuf) == 0) { +- bin_su = "/bin/su"; +- } else if (stat("/usr/bin/su", &sbuf) == 0) { +- bin_su = "/usr/bin/su"; ++ } else if (stat("@TERMUX_PREFIX@/bin/su", &sbuf) == 0) { ++ bin_su = "@TERMUX_PREFIX@/bin/su"; ++ } else if (stat("@TERMUX_PREFIX@/bin/su", &sbuf) == 0) { ++ bin_su = "@TERMUX_PREFIX@/bin/su"; + } + if (bin_su == NULL) { +- rfbLogPerror("existence /bin/su"); ++ rfbLogPerror("existence @TERMUX_PREFIX@/bin/su"); + fflush(stderr); + return 0; + } + +- if (stat("/bin/true", &sbuf) == 0) { +- bin_true = "/bin/true"; +- } if (stat("/usr/bin/true", &sbuf) == 0) { +- bin_true = "/usr/bin/true"; ++ if (stat("@TERMUX_PREFIX@/bin/true", &sbuf) == 0) { ++ bin_true = "@TERMUX_PREFIX@/bin/true"; ++ } if (stat("@TERMUX_PREFIX@/bin/true", &sbuf) == 0) { ++ bin_true = "@TERMUX_PREFIX@/bin/true"; + } + if (cmd != NULL && cmd[0] != '\0') { + /* this is for ext. cmd su -c "my cmd" after login */ + bin_true = cmd; + } + if (bin_true == NULL) { +- rfbLogPerror("existence /bin/true"); ++ rfbLogPerror("existence @TERMUX_PREFIX@/bin/true"); + fflush(stderr); + return 0; + } +@@ -1111,11 +1111,11 @@ + + if (db > 2) { + char nam[256]; +- unlink("/tmp/isatty"); +- tfd = open("/tmp/isatty", O_CREAT|O_WRONLY, 0600); ++ unlink("@TERMUX_PREFIX@/tmp/isatty"); ++ tfd = open("@TERMUX_PREFIX@/tmp/isatty", O_CREAT|O_WRONLY, 0600); + if (isatty(sfd)) { + close(tfd); +- sprintf(nam, "stty -a < %s > /tmp/isatty 2>&1", ++ sprintf(nam, "stty -a < %s > @TERMUX_PREFIX@/tmp/isatty 2>&1", + slave); + system(nam); + } else { +@@ -1137,7 +1137,7 @@ + + set_env("LC_ALL", "C"); + set_env("LANG", "C"); +- set_env("SHELL", "/bin/sh"); ++ set_env("SHELL", "@TERMUX_PREFIX@/bin/sh"); + if (nodisp) { + /* this will cause timeout problems with pam_xauth */ + int k; +diff -uNr x11vnc-0.9.16/src/user.c x11vnc-0.9.16.mod/src/user.c +--- x11vnc-0.9.16/src/user.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/user.c 2020-11-13 23:01:28.844228893 +0200 +@@ -1897,7 +1897,7 @@ + clean_up_exit(0); + } + if (!strcmp(cmd, "FINDDISPLAY-run")) { +- char tmp[] = "/tmp/fd.XXXXXX"; ++ char tmp[] = "@TERMUX_PREFIX@/tmp/fd.XXXXXX"; + char com[100]; + int fd = mkstemp(tmp); + if (fd >= 0) { +@@ -1905,7 +1905,7 @@ + write(fd, find_display, strlen(find_display)); + close(fd); + set_env("FINDDISPLAY_run", "1"); +- sprintf(com, "/bin/sh %s -n", tmp); ++ sprintf(com, "@TERMUX_PREFIX@/bin/sh %s -n", tmp); + ret = system(com); + if (WIFEXITED(ret) && WEXITSTATUS(ret) != 0) { + if (got_findauth && !getenv("FD_XDM")) { +@@ -2190,7 +2190,7 @@ + + strlen("FD_TAG='' ") + + strlen("FD_XDMCP_IF='' ") + + strlen("FD_XDUMMY_RUN_AS_ROOT='' ") +- + strlen("FD_SESS='' /bin/sh ") ++ + strlen("FD_SESS='' @TERMUX_PREFIX@/bin/sh ") + + strlen(uu) + 1 + + strlen(fdgeom) + 1 + + strlen(fdopts) + 1 +@@ -2210,13 +2210,13 @@ + sprintf(create_cmd, "env USER='%s' FD_GEOM='%s' FD_SESS='%s' " + "FD_OPTS='%s' FD_EXTRA='%s' FD_PROG='%s' FD_XSRV='%s' FD_CUPS='%s' " + "FD_ESD='%s' FD_NAS='%s' FD_SMB='%s' FD_TAG='%s' FD_XDMCP_IF='%s' " +- "FD_XDUMMY_RUN_AS_ROOT='%s' %s /bin/sh %s %s", ++ "FD_XDUMMY_RUN_AS_ROOT='%s' %s @TERMUX_PREFIX@/bin/sh %s %s", + uu, fdgeom, fdsess, fdopts, fdextra, fdprog, fdxsrv, + fdcups, fdesd, fdnas, fdsmb, fdtag, fdxdmcpif, fdxdum, cdout, tmp, opts); + } else { + create_cmd = (char *) malloc(strlen(tmp) +- + strlen("/bin/sh ") + 1 + strlen(opts) + 1); +- sprintf(create_cmd, "/bin/sh %s %s", tmp, opts); ++ + strlen("@TERMUX_PREFIX@/bin/sh ") + 1 + strlen(opts) + 1); ++ sprintf(create_cmd, "@TERMUX_PREFIX@/bin/sh %s %s", tmp, opts); + } + return create_cmd; + } +@@ -2423,7 +2423,7 @@ + + static void path_lookup(char *prog) { + /* see create_display script */ +- char *create_display_extra = "/usr/X11R6/bin:/usr/bin/X11:/usr/openwin/bin:/usr/dt/bin:/opt/kde4/bin:/opt/kde3/bin:/opt/gnome/bin:/usr/bin:/bin:/usr/sfw/bin:/usr/local/bin"; ++ char *create_display_extra = "@TERMUX_PREFIX@/bin"; + char *path, *try, *p; + int found = 0, len = strlen(create_display_extra); + +@@ -2462,7 +2462,7 @@ + } + + static int do_run_cmd(char *cmd, char *create_cmd, char *users_list_save, int created_disp, int db) { +- char tmp[] = "/tmp/x11vnc-find_display.XXXXXX"; ++ char tmp[] = "@TERMUX_PREFIX@/tmp/x11vnc-find_display.XXXXXX"; + char line1[1024], line2[16384]; + char *q, *usslpeer = NULL; + int n, nodisp = 0, saw_xdmcp = 0; +@@ -2507,7 +2507,7 @@ + } + chmod(tmp, 0644); + if (getenv("X11VNC_FINDDISPLAY_ALWAYS_FAILS")) { +- char *s = "#!/bin/sh\necho _FAIL_\nexit 1\n"; ++ char *s = "#!@TERMUX_PREFIX@/bin/sh\necho _FAIL_\nexit 1\n"; + write(tmp_fd, s, strlen(s)); + } else { + write(tmp_fd, find_display, strlen(find_display)); +@@ -2530,12 +2530,12 @@ + } + + cmd = (char *) malloc(strlen("env X11VNC_SKIP_DISPLAY='' ") +- + strlen(nd) + strlen(" FD_TAG='' ") + strlen(tag) + strlen(tmp) + strlen("/bin/sh ") + strlen(fdout) + 1); ++ + strlen(nd) + strlen(" FD_TAG='' ") + strlen(tag) + strlen(tmp) + strlen("@TERMUX_PREFIX@/bin/sh ") + strlen(fdout) + 1); + + if (strcmp(tag, "")) { +- sprintf(cmd, "env X11VNC_SKIP_DISPLAY='%s' FD_TAG='%s' %s /bin/sh %s", nd, tag, fdout, tmp); ++ sprintf(cmd, "env X11VNC_SKIP_DISPLAY='%s' FD_TAG='%s' %s @TERMUX_PREFIX@/bin/sh %s", nd, tag, fdout, tmp); + } else { +- sprintf(cmd, "env X11VNC_SKIP_DISPLAY='%s' %s /bin/sh %s", nd, fdout, tmp); ++ sprintf(cmd, "env X11VNC_SKIP_DISPLAY='%s' %s @TERMUX_PREFIX@/bin/sh %s", nd, fdout, tmp); + } + } + +diff -uNr x11vnc-0.9.16/src/util.c x11vnc-0.9.16.mod/src/util.c +--- x11vnc-0.9.16/src/util.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/util.c 2020-11-13 23:01:36.760555400 +0200 +@@ -327,7 +327,7 @@ + if (shell) { + return(strdup(shell)); + } else { +- return(strdup("/bin/sh")); ++ return(strdup("@TERMUX_PREFIX@/bin/sh")); + } + } + +diff -uNr x11vnc-0.9.16/src/v4l.c x11vnc-0.9.16.mod/src/v4l.c +--- x11vnc-0.9.16/src/v4l.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/v4l.c 2020-11-13 22:47:22.545559970 +0200 +@@ -1163,7 +1163,7 @@ + + static char *guess_via_v4l_info(char *dev, int *fd) { + char *atparms, *cmd; +- char line[1024], tmp[] = "/tmp/x11vnc-tmp.XXXXXX"; ++ char line[1024], tmp[] = "@TERMUX_PREFIX@/tmp/x11vnc-tmp.XXXXXX"; + FILE *out; + int tmp_fd, len, rc, curr = 0; + int g_w = 0, g_h = 0, g_b = 0, mask_rev = 0; +diff -uNr x11vnc-0.9.16/src/x11vnc.c x11vnc-0.9.16.mod/src/x11vnc.c +--- x11vnc-0.9.16/src/x11vnc.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/x11vnc.c 2020-11-13 23:01:45.048903003 +0200 +@@ -4169,7 +4169,7 @@ + + if (getenv("PATH") == NULL || !strcmp(getenv("PATH"), "")) { + /* set a minimal PATH, usually only null in inetd. */ +- set_env("PATH", "/bin:/usr/bin"); ++ set_env("PATH", "@TERMUX_PREFIX@/bin"); + } + + /* handle -findauth case now that cmdline has been read */ +@@ -5515,7 +5515,7 @@ + rfbLog("If your system has disabled it by default, you can\n"); + rfbLog("enable it to get a nice x11vnc performance speedup\n"); + rfbLog("for scrolling by putting this into the \"Module\" section\n"); +- rfbLog("of /etc/X11/xorg.conf or /etc/X11/XF86Config:\n"); ++ rfbLog("of @TERMUX_PREFIX@/etc/X11/xorg.conf or @TERMUX_PREFIX@/etc/X11/XF86Config:\n"); + rfbLog("\n"); + rfbLog(" Section \"Module\"\n"); + rfbLog(" ...\n"); +diff -uNr x11vnc-0.9.16/src/xevents.c x11vnc-0.9.16.mod/src/xevents.c +--- x11vnc-0.9.16/src/xevents.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/xevents.c 2020-11-13 23:01:50.617139759 +0200 +@@ -2009,7 +2009,7 @@ + } else if (pid == 0) { + char *args[4]; + int d; +- args[0] = "/bin/sh"; ++ args[0] = "@TERMUX_PREFIX@/bin/sh"; + args[1] = "-c"; + /* "ssvnc -cmd VNC://fd=0 -chatonly"; not working */ + args[2] = cmd; +diff -uNr x11vnc-0.9.16/src/xwrappers.c x11vnc-0.9.16.mod/src/xwrappers.c +--- x11vnc-0.9.16/src/xwrappers.c 2019-01-05 15:22:11.000000000 +0200 ++++ x11vnc-0.9.16.mod/src/xwrappers.c 2020-11-13 22:44:42.617244976 +0200 +@@ -1403,7 +1403,7 @@ + + + int xauth_raw(int on) { +- char tmp[] = "/tmp/x11vnc-xauth.XXXXXX"; ++ char tmp[] = "@TERMUX_PREFIX@/tmp/x11vnc-xauth.XXXXXX"; + int tmp_fd = -1; + static char *old_xauthority = NULL; + static char *old_tmp = NULL;