summarylogtreecommitdiffstats
path: root/xdg-basedir-compliant-userPrefs.patch
diff options
context:
space:
mode:
author902023-03-28 11:42:04 +0100
committer902023-03-28 11:42:04 +0100
commit9b978abb735b4bb760ead53a2f2d7c4f464c3c84 (patch)
tree794d94081c961da7d548dd87e99d085f238ca9fd /xdg-basedir-compliant-userPrefs.patch
downloadaur-java8-openjdk-xdg.tar.gz
Initial package release
Diffstat (limited to 'xdg-basedir-compliant-userPrefs.patch')
-rw-r--r--xdg-basedir-compliant-userPrefs.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/xdg-basedir-compliant-userPrefs.patch b/xdg-basedir-compliant-userPrefs.patch
new file mode 100644
index 000000000000..f7089f99bbcf
--- /dev/null
+++ b/xdg-basedir-compliant-userPrefs.patch
@@ -0,0 +1,37 @@
+diff --git a/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java b/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java
+index 5f922f12..217516cf 100644
+--- a/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java
++++ b/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java
+@@ -107,9 +107,29 @@ class FileSystemPreferences extends AbstractPreferences {
+ private static void setupUserRoot() {
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ public Void run() {
+- userRootDir =
+- new File(System.getProperty("java.util.prefs.userRoot",
+- System.getProperty("user.home")), ".java/.userPrefs");
++ /* On Linux systems, put the userPrefs dir into
++ * ${XDG_CONFIG_HOME:-$HOME/.config}/java/userPrefs in order to
++ * follow the XDG Base Directory Specification.
++ */
++ if (System.getProperty("os.name").equals("Linux")) {
++ /* assume findable homedir, which the jvm already does */
++ String xdgDefaultConfigHome = System.getenv("HOME") + "/.config";
++ String xdgConfigHomeEnvVar = "XDG_CONFIG_HOME";
++ String xdgConfigDir;
++
++ String xdgSetConfigDir = System.getenv(xdgConfigHomeEnvVar);
++
++ if (xdgSetConfigDir == null) {
++ xdgConfigDir = xdgDefaultConfigHome;
++ } else {
++ xdgConfigDir = xdgSetConfigDir;
++ }
++ userRootDir = new File(xdgConfigDir, "java/userPrefs");
++ } else {
++ userRootDir =
++ new File(System.getProperty("java.util.prefs.userRoot",
++ System.getProperty("user.home")), ".java/.userPrefs");
++ }
+ // Attempt to create root dir if it does not yet exist.
+ if (!userRootDir.exists()) {
+ if (userRootDir.mkdirs()) {