Changeset 4edc407


Ignore:
Timestamp:
Apr 4, 2017 2:07:49 PM (3 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
dd8f763
Parents:
0d3b1fa
Message:

Gentoo: Fix config dir location
http://zzz.i2p/topics/2285

Location:
router/java/src/net/i2p/router
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • router/java/src/net/i2p/router/startup/WorkingDir.java

    r0d3b1fa r4edc407  
    7474        boolean isWindows = SystemVersion.isWindows();
    7575        File dirf = null;
     76        String gentooWarning = null;
    7677        if (dir != null) {
    7778            dirf = new SecureDirectory(dir);
     
    9394                }
    9495            } else {
    95                 if (SystemVersion.isLinuxService())
    96                     dirf = new SecureDirectory(home, WORKING_DIR_DEFAULT_DAEMON);
    97                 else
     96                if (SystemVersion.isLinuxService()) {
     97                    if (SystemVersion.isGentoo() &&
     98                        SystemVersion.GENTOO_USER.equals(System.getProperty("user.name"))) {
     99                        // whoops, we didn't recognize Gentoo as a service until 0.9.29,
     100                        // so the config dir was /var/lib/i2p/.i2p through 0.9.28
     101                        // and changed to /var/lib/i2p/i2p-config in 0.9.29.
     102                        // Look for both to decide which to use.
     103                        // We prefer .i2p if neither exists.
     104                        // We prefer the newer if both exist.
     105                        File d1 = new SecureDirectory(home, WORKING_DIR_DEFAULT);
     106                        File d2 = new SecureDirectory(home, WORKING_DIR_DEFAULT_DAEMON);
     107                        boolean e1 = isSetup(d1);
     108                        boolean e2 = isSetup(d2);
     109                        if (e1 && e2) {
     110                            // d1 is probably older. Switch if it isn't.
     111                            if (d2.lastModified() < d1.lastModified()) {
     112                                File tmp = d2;
     113                                d2 = d1;
     114                                d1 = tmp;
     115                                // d1 now is the older one
     116                            }
     117                            dirf = d2;
     118                            gentooWarning = "Warning - Found both an old configuration directory " + d1.getAbsolutePath() +
     119                                            " and new configuration directory " + d2.getAbsolutePath() +
     120                                            " created due to a bug in release 0.9.29\n. Using the new configuration" +
     121                                            " directory. To use the old directory instead, stop i2p," +
     122                                            " delete the new directory, and restart.";
     123                        } else if (e1 && !e2) {
     124                            dirf = d1;
     125                        } else if (!e1 && e2) {
     126                            dirf = d2;
     127                        } else {
     128                            dirf = d1;
     129                        }
     130                    } else {
     131                        dirf = new SecureDirectory(home, WORKING_DIR_DEFAULT_DAEMON);
     132                    }
     133                } else {
    98134                    dirf = new SecureDirectory(home, WORKING_DIR_DEFAULT);
     135                }
    99136            }
    100137        }
     
    135172                if (isSetup(dirf)) {
    136173                    setupSystemOut(rv);
     174                    // see above for why
     175                    if (gentooWarning != null)
     176                        System.err.println(gentooWarning);
    137177                    return rv; // all is good, we found the user directory
    138178                }
  • router/java/src/net/i2p/router/tasks/OOMListener.java

    r0d3b1fa r4edc407  
    5454            String path;
    5555            if (SystemVersion.isLinuxService()) {
    56                 path = "/etc/i2p";
     56                if (SystemVersion.isGentoo())
     57                    path = "/usr/share/i2p";
     58                else
     59                    path = "/etc/i2p";
    5760            } else {
    5861                path = _context.getBaseDir().toString();
Note: See TracChangeset for help on using the changeset viewer.