--- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp @@ -417,17 +417,17 @@ // 7: The default directories, normally /lib and /usr/lib. #ifndef OVERRIDE_LIBPATH #if defined(AMD64) || (defined(_LP64) && defined(SPARC)) || defined(PPC64) || defined(S390) - #define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib" + #define DEFAULT_LIBPATH "@TERMUX_PREFIX@/lib" #else - #define DEFAULT_LIBPATH "/lib:/usr/lib" + #define DEFAULT_LIBPATH "@TERMUX_PREFIX@/lib" #endif #else #define DEFAULT_LIBPATH OVERRIDE_LIBPATH #endif // Base path of extensions installed on the system. -#define SYS_EXT_DIR "/usr/java/packages" -#define EXTENSIONS_DIR "/lib/ext" +#define SYS_EXT_DIR "@TERMUX_PREFIX@/java/packages" +#define EXTENSIONS_DIR "@TERMUX_PREFIX@/lib/ext" // Buffer that fits several sprintfs. // Note that the space for the colon and the trailing null are provided @@ -2244,7 +2244,7 @@ } bool os::Linux::print_ld_preload_file(outputStream* st) { - return _print_ascii_file("/etc/ld.so.preload", st, "/etc/ld.so.preload:"); + return _print_ascii_file("@TERMUX_PREFIX@/etc/ld.so.preload", st, "@TERMUX_PREFIX@/etc/ld.so.preload:"); } void os::Linux::print_uptime_info(outputStream* st) { --- a/src/hotspot/share/utilities/virtualizationSupport.cpp +++ b/src/hotspot/share/utilities/virtualizationSupport.cpp @@ -52,7 +52,7 @@ // the open-vm-tools have a different guest lib name // on some distros e.g. SLES12 the open-vm-tools are the default, // so use the different libname as a fallback - dlHandle = os::dll_load("/usr/lib64/libguestlib.so.0", ebuf, sizeof ebuf); + dlHandle = os::dll_load("@TERMUX_PREFIX@/lib/libguestlib.so.0", ebuf, sizeof ebuf); } #endif if (dlHandle == NULL) { --- a/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystem.java +++ b/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystem.java @@ -118,7 +118,7 @@ */ @Override List getMountEntries() { - return getMountEntries("/etc/mtab"); + return getMountEntries("@TERMUX_PREFIX@/etc/mtab"); } --- a/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java +++ b/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java @@ -104,7 +104,7 @@ FileTypeDetector getFileTypeDetector() { String userHome = StaticProperty.userHome(); Path userMimeTypes = Path.of(userHome, ".mime.types"); - Path etcMimeTypes = Path.of("/etc/mime.types"); + Path etcMimeTypes = Path.of("@TERMUX_PREFIX@/etc/mime.types"); return chain(new MimeTypesFileTypeDetector(userMimeTypes), new MimeTypesFileTypeDetector(etcMimeTypes)); --- a/src/java.base/share/classes/sun/net/www/MimeTable.java +++ b/src/java.base/share/classes/sun/net/www/MimeTable.java @@ -57,9 +57,8 @@ mailcapLocations = new String[] { System.getProperty("user.mailcap"), StaticProperty.userHome() + "/.mailcap", - "/etc/mailcap", - "/usr/etc/mailcap", - "/usr/local/etc/mailcap", + "@TERMUX_PREFIX@/etc/mailcap", + "@TERMUX_PREFIX@/local/etc/mailcap", }; return null; } --- a/src/java.base/share/classes/sun/security/jca/ProviderConfig.java +++ b/src/java.base/share/classes/sun/security/jca/ProviderConfig.java @@ -98,7 +98,7 @@ Boolean o = AccessController.doPrivileged( new PrivilegedAction() { public Boolean run() { - File file = new File("/usr/lib/libpkcs11.so"); + File file = new File("@TERMUX_PREFIX@/lib/libpkcs11.so"); if (file.exists() == false) { return Boolean.FALSE; } --- a/src/java.base/unix/classes/sun/net/dns/ResolverConfigurationImpl.java +++ b/src/java.base/unix/classes/sun/net/dns/ResolverConfigurationImpl.java @@ -62,7 +62,7 @@ { LinkedList ll = new LinkedList<>(); - String resolvPath = System.getProperty("ext.net.resolvPath", "/etc/resolv.conf"); + String resolvPath = System.getProperty("ext.net.resolvPath", "@TERMUX_PREFIX@/etc/resolv.conf"); try { BufferedReader in = --- a/src/java.base/unix/native/libjava/ProcessImpl_md.c +++ b/src/java.base/unix/native/libjava/ProcessImpl_md.c @@ -230,7 +230,7 @@ static const char* defaultPath(void) { - return ":/bin:/usr/bin"; + return ":@TERMUX_PREFIX@/bin"; } static const char* --- a/src/java.base/unix/native/libjava/TimeZone_md.c +++ b/src/java.base/unix/native/libjava/TimeZone_md.c @@ -60,9 +60,9 @@ #endif #if defined(__linux__) || defined(_ALLBSD_SOURCE) -static const char *ETC_TIMEZONE_FILE = "/etc/timezone"; -static const char *ZONEINFO_DIR = "/usr/share/zoneinfo"; -static const char *DEFAULT_ZONEINFO_FILE = "/etc/localtime"; +static const char *ETC_TIMEZONE_FILE = "@TERMUX_PREFIX@/etc/timezone"; +static const char *ZONEINFO_DIR = "@TERMUX_PREFIX@/share/zoneinfo"; +static const char *DEFAULT_ZONEINFO_FILE = "@TERMUX_PREFIX@/etc/localtime"; #else static const char *SYS_INIT_FILE = "/etc/default/init"; static const char *ZONEINFO_DIR = "/usr/share/lib/zoneinfo"; --- a/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java +++ b/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java @@ -482,13 +482,10 @@ String[] dirs = new String[] { userHome + sep + ".themes", System.getProperty("swing.metacitythemedir"), - "/usr/X11R6/share/themes", - "/usr/X11R6/share/gnome/themes", - "/usr/local/share/themes", - "/usr/local/share/gnome/themes", - "/usr/share/themes", - "/usr/gnome/share/themes", // Debian/Redhat/Solaris - "/opt/gnome2/share/themes" // SuSE + "@TERMUX_PREFIX@/share/themes", + "@TERMUX_PREFIX@/share/gnome/themes", + "@TERMUX_PREFIX@/local/share/themes", + "@TERMUX_PREFIX@/local/share/gnome/themes", }; URL themeDir = null; --- a/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java +++ b/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java @@ -685,11 +685,11 @@ File[] systemSoundFontsDir = new File[] { /* Arch, Fedora, Mageia */ - new File("/usr/share/soundfonts/"), - new File("/usr/local/share/soundfonts/"), + new File("@TERMUX_PREFIX@/share/soundfonts/"), + new File("@TERMUX_PREFIX@/local/share/soundfonts/"), /* Debian, Gentoo, OpenSUSE, Ubuntu */ - new File("/usr/share/sounds/sf2/"), - new File("/usr/local/share/sounds/sf2/"), + new File("@TERMUX_PREFIX@/share/sounds/sf2/"), + new File("@TERMUX_PREFIX@/local/share/sounds/sf2/"), }; /* --- a/src/java.desktop/share/classes/sun/font/SunFontManager.java +++ b/src/java.desktop/share/classes/sun/font/SunFontManager.java @@ -3448,7 +3448,7 @@ public void register1dot0Fonts() { AccessController.doPrivileged(new PrivilegedAction() { public Void run() { - String type1Dir = "/usr/openwin/lib/X11/fonts/Type1"; + String type1Dir = "@TERMUX_PREFIX@/openwin/lib/X11/fonts/Type1"; registerFontsInDir(type1Dir, true, Font2D.TYPE1_RANK, false, false); return null; --- a/src/java.desktop/share/classes/sun/print/PSPrinterJob.java +++ b/src/java.desktop/share/classes/sun/print/PSPrinterJob.java @@ -1630,7 +1630,7 @@ String osname = System.getProperty("os.name"); if (osname.equals("Linux") || osname.contains("OS X")) { execCmd = new String[ncomps]; - execCmd[n++] = "/usr/bin/lpr"; + execCmd[n++] = "@TERMUX_PREFIX@/bin/lpr"; if ((pFlags & PRINTER) != 0) { execCmd[n++] = "-P" + printer; } @@ -1652,7 +1652,7 @@ } else { ncomps+=1; //add 1 arg for lp execCmd = new String[ncomps]; - execCmd[n++] = "/usr/bin/lp"; + execCmd[n++] = "@TERMUX_PREFIX@/bin/lp"; execCmd[n++] = "-c"; // make a copy of the spool file if ((pFlags & PRINTER) != 0) { execCmd[n++] = "-d" + printer; --- a/src/java.desktop/unix/classes/sun/awt/X11/MotifColorUtilities.java +++ b/src/java.desktop/unix/classes/sun/awt/X11/MotifColorUtilities.java @@ -412,7 +412,7 @@ if (!pFile.exists()) { // Must be a system palette - paletteFilePath = "/usr/dt/palettes/" + paletteFile; + paletteFilePath = "@TERMUX_PREFIX@/dt/palettes/" + paletteFile; pFile = new File(paletteFilePath); if (!pFile.exists()) { --- a/src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java +++ b/src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java @@ -81,10 +81,10 @@ // List of commands used to deal with the printer queues on AIX String[] lpNameComAix = { - "/usr/bin/lsallq", - "/usr/bin/lpstat -W -p|/usr/bin/expand|/usr/bin/cut -f1 -d' '", - "/usr/bin/lpstat -W -d|/usr/bin/expand|/usr/bin/cut -f1 -d' '", - "/usr/bin/lpstat -W -v" + "@TERMUX_PREFIX@/bin/lsallq", + "@TERMUX_PREFIX@/bin/lpstat -W -p|@TERMUX_PREFIX@/bin/expand|@TERMUX_PREFIX@/bin/cut -f1 -d' '", + "@TERMUX_PREFIX@/bin/lpstat -W -d|@TERMUX_PREFIX@/bin/expand|@TERMUX_PREFIX@/bin/cut -f1 -d' '", + "@TERMUX_PREFIX@/bin/lpstat -W -v" }; private static final int aix_lsallq = 0; private static final int aix_lpstat_p = 1; @@ -172,13 +172,13 @@ static int cmdIndex = UNINITIALIZED; String[] lpcFirstCom = { - "/usr/sbin/lpc status | grep : | sed -ne '1,1 s/://p'", - "/usr/sbin/lpc status | grep -E '^[ 0-9a-zA-Z_-]*@' | awk -F'@' '{print $1}'" + "@TERMUX_PREFIX@/bin/lpc status | grep : | sed -ne '1,1 s/://p'", + "@TERMUX_PREFIX@/bin/lpc status | grep -E '^[ 0-9a-zA-Z_-]*@' | awk -F'@' '{print $1}'" }; String[] lpcAllCom = { - "/usr/sbin/lpc status all | grep : | sed -e 's/://'", - "/usr/sbin/lpc status all | grep -E '^[ 0-9a-zA-Z_-]*@' | awk -F'@' '{print $1}' | sort" + "@TERMUX_PREFIX@/bin/lpc status all | grep : | sed -e 's/://'", + "@TERMUX_PREFIX@/bin/lpc status all | grep -E '^[ 0-9a-zA-Z_-]*@' | awk -F'@' '{print $1}' | sort" }; String[] lpcNameCom = { @@ -188,7 +188,7 @@ static int getBSDCommandIndex() { - String command = "/usr/sbin/lpc status all"; + String command = "@TERMUX_PREFIX@/bin/lpc status all"; String[] names = execCmd(command); if ((names == null) || (names.length == 0)) { @@ -757,7 +757,7 @@ if (cmdIndex == UNINITIALIZED) { cmdIndex = getBSDCommandIndex(); } - String command = "/usr/sbin/lpc status " + name + lpcNameCom[cmdIndex]; + String command = "@TERMUX_PREFIX@/bin/lpc status " + name + lpcNameCom[cmdIndex]; String[] result = execCmd(command); if (result == null || !(result[0].equals(name))) { @@ -779,7 +779,7 @@ static String getDefaultPrinterNameSysV() { String defaultPrinter = "lp"; - String command = "/usr/bin/lpstat -d"; + String command = "@TERMUX_PREFIX@/bin/lpstat -d"; String [] names = execCmd(command); if (names == null || names.length == 0) { @@ -801,7 +801,7 @@ private PrintService getNamedPrinterNameSysV(String name) { - String command = "/usr/bin/lpstat -v " + name; + String command = "@TERMUX_PREFIX@/bin/lpstat -v " + name; String []result = execCmd(command); if (result == null || result[0].indexOf("unknown printer") > 0) { @@ -813,7 +813,7 @@ private String[] getAllPrinterNamesSysV() { String defaultPrinter = "lp"; - String command = "/usr/bin/lpstat -v|/usr/bin/expand|/usr/bin/cut -f3 -d' ' |/usr/bin/cut -f1 -d':' | /usr/bin/sort"; + String command = "@TERMUX_PREFIX@/bin/lpstat -v|@TERMUX_PREFIX@/bin/expand|@TERMUX_PREFIX@/bin/cut -f3 -d' ' |@TERMUX_PREFIX@/bin/cut -f1 -d':' | @TERMUX_PREFIX@/bin/sort"; String [] names = execCmd(command); ArrayList printerNames = new ArrayList<>(); @@ -870,7 +870,7 @@ try { final String[] cmd = new String[3]; if (isAIX()) { - cmd[0] = "/usr/bin/sh"; + cmd[0] = "@TERMUX_PREFIX@/bin/sh"; cmd[1] = "-c"; cmd[2] = "env LC_ALL=C " + command; } else { --- a/src/java.desktop/unix/classes/sun/print/UnixPrintJob.java +++ b/src/java.desktop/unix/classes/sun/print/UnixPrintJob.java @@ -882,7 +882,7 @@ ncomps+=1; } execCmd = new String[ncomps]; - execCmd[n++] = "/usr/bin/lpr"; + execCmd[n++] = "@TERMUX_PREFIX@/bin/lpr"; if ((pFlags & PRINTER) != 0) { execCmd[n++] = "-P" + printer; } --- a/src/java.desktop/unix/classes/sun/print/UnixPrintService.java +++ b/src/java.desktop/unix/classes/sun/print/UnixPrintService.java @@ -231,7 +231,7 @@ PrintServiceLookupProvider.getBSDCommandIndex(); } - String command = "/usr/sbin/lpc status " + printer + String command = "@TERMUX_PREFIX@/bin/lpc status " + printer + lpcStatusCom[PrintServiceLookupProvider.cmdIndex]; String[] results= PrintServiceLookupProvider.execCmd(command); @@ -280,7 +280,7 @@ private PrinterIsAcceptingJobs getPrinterIsAcceptingJobsAIX() { // On AIX there should not be a blank after '-a'. - String command = "/usr/bin/lpstat -a" + printer; + String command = "@TERMUX_PREFIX@/bin/lpstat -a" + printer; String[] results= PrintServiceLookupProvider.execCmd(command); // Remove headers and bogus entries added by remote printers. @@ -336,7 +336,7 @@ } int qlen = 0; - String command = "/usr/sbin/lpc status " + printer + String command = "@TERMUX_PREFIX@/bin/lpc status " + printer + lpcQueueCom[PrintServiceLookupProvider.cmdIndex]; String[] results = PrintServiceLookupProvider.execCmd(command); @@ -365,7 +365,7 @@ private QueuedJobCount getQueuedJobCountAIX() { // On AIX there should not be a blank after '-a'. - String command = "/usr/bin/lpstat -a" + printer; + String command = "@TERMUX_PREFIX@/bin/lpstat -a" + printer; String[] results= PrintServiceLookupProvider.execCmd(command); // Remove headers and bogus entries added by remote printers. --- a/src/java.desktop/unix/native/common/awt/fontpath.c +++ b/src/java.desktop/unix/native/common/awt/fontpath.c @@ -66,19 +66,18 @@ * various flavors of Linux */ static char *fullLinuxFontPath[] = { - "/usr/X11R6/lib/X11/fonts/TrueType", /* RH 7.1+ */ - "/usr/X11R6/lib/X11/fonts/truetype", /* SuSE */ - "/usr/X11R6/lib/X11/fonts/tt", - "/usr/X11R6/lib/X11/fonts/TTF", - "/usr/X11R6/lib/X11/fonts/OTF", /* RH 9.0 (but empty!) */ - "/usr/share/fonts/ja/TrueType", /* RH 7.2+ */ - "/usr/share/fonts/truetype", - "/usr/share/fonts/ko/TrueType", /* RH 9.0 */ - "/usr/share/fonts/zh_CN/TrueType", /* RH 9.0 */ - "/usr/share/fonts/zh_TW/TrueType", /* RH 9.0 */ - "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType", /* Debian */ - "/usr/X11R6/lib/X11/fonts/Type1", - "/usr/share/fonts/default/Type1", /* RH 9.0 */ + "@TERMUX_PREFIX@/share/fonts/TrueType", + "@TERMUX_PREFIX@/share/fonts/truetype", + "@TERMUX_PREFIX@/share/fonts/tt", + "@TERMUX_PREFIX@/share/fonts/TTF", + "@TERMUX_PREFIX@/share/fonts/OTF", + "@TERMUX_PREFIX@/share/fonts/ja/TrueType", + "@TERMUX_PREFIX@/share/fonts/ko/TrueType", + "@TERMUX_PREFIX@/share/fonts/zh_CN/TrueType", + "@TERMUX_PREFIX@/share/fonts/zh_TW/TrueType", + "@TERMUX_PREFIX@/share/fonts/Type1", + "@TERMUX_PREFIX@/share/fonts/default/Type1", + "/system/fonts", NULL, /* terminates the list */ }; #elif defined(_AIX) --- a/src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java +++ b/src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java @@ -182,7 +182,7 @@ AccessController.doPrivileged(new PrivilegedAction() { public Void run() { String systemPrefsDirName = - System.getProperty("java.util.prefs.systemRoot","/etc/.java"); + System.getProperty("java.util.prefs.systemRoot","@TERMUX_PREFIX@/etc/.java"); systemRootDir = new File(systemPrefsDirName, ".systemPrefs"); // Attempt to create root dir if it does not yet exist. --- a/src/java.security.jgss/share/classes/sun/security/krb5/Config.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/Config.java @@ -930,7 +930,7 @@ } else if (osname.contains("OS X")) { name = findMacosConfigFile(); } else { - name = "/etc/krb5.conf"; + name = "@TERMUX_PREFIX@/etc/krb5.conf"; } if (DEBUG) { System.out.println("Native config name: " + name); --- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java @@ -600,7 +600,7 @@ (new InputStreamReader(p.getInputStream(), ISO_8859_1)); String s1 = null; if ((command.length == 1) && - (command[0].equals("/usr/bin/env"))) { + (command[0].equals("@TERMUX_PREFIX@/bin/env"))) { while ((s1 = commandResult.readLine()) != null) { if (s1.length() >= 11) { if ((s1.substring(0, 11)).equalsIgnoreCase --- a/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java +++ b/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java @@ -46,8 +46,8 @@ private final static String PROP_NAME = "sun.security.smartcardio.library"; - private final static String LIB1 = "/usr/$LIBISA/libpcsclite.so"; - private final static String LIB2 = "/usr/local/$LIBISA/libpcsclite.so"; + private final static String LIB1 = "@TERMUX_PREFIX@/lib/libpcsclite.so"; + private final static String LIB2 = "@TERMUX_PREFIX@/local/lib/libpcsclite.so"; private final static String PCSC_FRAMEWORK = "/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC"; PlatformPCSC() { --- a/src/jdk.hotspot.agent/linux/native/libsaproc/symtab.c +++ b/src/jdk.hotspot.agent/linux/native/libsaproc/symtab.c @@ -53,7 +53,7 @@ // should be possible to change this, but in a Java environment there // is no obvious place to put a user interface to do it. Maybe this // could be set with an environment variable. -static const char debug_file_directory[] = "/usr/lib/debug"; +static const char debug_file_directory[] = "@TERMUX_PREFIX@/lib/debug"; /* The CRC used in gnu_debuglink, retrieved from http://sourceware.org/gdb/current/onlinedocs/gdb/Separate-Debug-Files.html#Separate-Debug-Files. */ --- a/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxDebBundler.java +++ b/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxDebBundler.java @@ -414,7 +414,7 @@ final String installDir = LINUX_INSTALL_DIR.fetchFrom(params); if (!StandardBundlerParam.isRuntimeInstaller(params) - || (isInstallDirInUsrTree(installDir) || installDir.startsWith("/usr/"))) { + || (isInstallDirInUsrTree(installDir) || installDir.startsWith("@TERMUX_PREFIX@/"))) { debianFiles.add(new DebianFile( getConfig_CopyrightFile(params), "resource.copyright-file")); @@ -446,8 +446,8 @@ final String packageName = PACKAGE_NAME.fetchFrom(params); final Path installPath; - if (isInstallDirInUsrTree(installDir) || installDir.startsWith("/usr/")) { - installPath = Path.of("/usr/share/doc/", packageName, "copyright"); + if (isInstallDirInUsrTree(installDir) || installDir.startsWith("@TERMUX_PREFIX@/")) { + installPath = Path.of("@TERMUX_PREFIX@/share/doc/", packageName, "copyright"); } else { installPath = Path.of(installDir, packageName, "share/doc/copyright"); } --- a/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxPackageBundler.java +++ b/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxPackageBundler.java @@ -340,7 +340,7 @@ } protected static boolean isInstallDirInUsrTree(String installDir) { - return Set.of("/usr/local", "/usr").contains(installDir); + return Set.of("@TERMUX_PREFIX@/local", "@TERMUX_PREFIX@").contains(installDir); } private final BundlerParamInfo packageName; @@ -368,7 +368,7 @@ } return dir; } - return "/opt"; + return "@TERMUX_PREFIX@/opt"; }, (s, p) -> s ); --- a/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/resources/utils.sh +++ b/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/resources/utils.sh @@ -92,7 +92,7 @@ # uninstall_default_mime_handler () { - for f in /usr/share/applications/defaults.list /usr/local/share/applications/defaults.list; do + for f in @TERMUX_PREFIX@/share/applications/defaults.list @TERMUX_PREFIX@/local/share/applications/defaults.list; do _uninstall_default_mime_handler "$f" "$@" done }