Compare commits

...

10 Commits

10 changed files with 115 additions and 56 deletions
+4
View File
@@ -1,3 +1,7 @@
2022-09-20 idk
* improve compatibility with local service installs and with un-bundled installs side-by-side with bundled intalls
* version 1.9.7
2022-09-18 idk
* remove unstable/deprecated targets from Makefile.
* make it fatal if a jpackaged I2P is not found, the profile launcher is now part of the jpackage
+1
View File
@@ -9,6 +9,7 @@ if [ -f i2pversion_override ]; then
. "$SCRIPT_DIR/i2pversion_override"
fi
mv "$SCRIPT_DIR/config_override.sh" "$SCRIPT_DIR/config_override.sh.bak"
. "$SCRIPT_DIR/config.sh"
### How to set up this script:
+2 -2
View File
@@ -2,13 +2,13 @@
JNA_VERSION=5.11.0
export JNA_VERSION=5.11.0
I2PFIREFOX_VERSION=0.0.34
I2PFIREFOX_VERSION=0.0.36
export I2PFIREFOX_VERSION=0.0.36
# Comment this out to build from an alternate branch or
# the tip of the master branch.
VERSIONMAJOR=1
VERSIONMINOR=9
VERSIONBUILD=6
VERSIONBUILD=7
I2P_VERSION="$VERSIONMAJOR.$VERSIONMINOR.$VERSIONBUILD"
export I2P_VERSION="$VERSIONMAJOR.$VERSIONMINOR.$VERSIONBUILD"
VERSION=i2p-jpackage-1.9.4
+68 -19
View File
@@ -88,25 +88,6 @@ public class WinLauncher extends CopyConfigDir {
File programs = programFile();
File home = homeDir();
boolean continuerunning = promptServiceStartIfAvailable("i2p");
if (!continuerunning) {
logger.severe(
"Service startup failure, please start I2P service with services.msc");
System.exit(2);
}
continuerunning = promptUserInstallStartIfAvailable();
if (!continuerunning) {
logger.severe("User-install startup required.");
System.exit(2);
}
// This actually does most of what we use NSIS for if NSIS hasn't
// already done it, which essentially makes this whole thing portable.
if (!copyConfigDir()) {
logger.severe("Cannot copy the configuration directory");
System.exit(1);
}
System.setProperty("i2p.dir.base", programs.getAbsolutePath());
System.setProperty("i2p.dir.config", home.getAbsolutePath());
System.setProperty("router.pid",
@@ -122,6 +103,29 @@ public class WinLauncher extends CopyConfigDir {
logger.info("\t" + System.getProperty("i2p.dir.base"));
logger.info("\t" + System.getProperty("i2p.dir.config"));
logger.info("\t" + System.getProperty("router.pid"));
boolean continuerunning = promptServiceStartIfAvailable("i2p");
if (!continuerunning) {
logger.severe(
"Service startup failure, please start I2P service with services.msc");
System.exit(2);
} else {
fixServiceConfig();
}
continuerunning = promptUserInstallStartIfAvailable();
if (!continuerunning) {
logger.severe("User-install startup required.");
System.exit(2);
} else {
fixServiceConfig();
}
// This actually does most of what we use NSIS for if NSIS hasn't
// already done it, which essentially makes this whole thing portable.
if (!copyConfigDir()) {
logger.severe("Cannot copy the configuration directory");
System.exit(1);
}
if (launchBrowser(privateBrowsing, usabilityMode, chromiumFirst,
proxyTimeoutTime, newArgsList)) {
System.exit(0);
@@ -148,6 +152,51 @@ public class WinLauncher extends CopyConfigDir {
i2pRouter.runRouter();
}
private static void fixServiceConfig() {
// If the user installed the Easy bundle before installing the
// regulalr bundle, then they have a config file which contains the
// wrong update URL. Check for it, and change it back if necessary.
// closes #23
i2pRouter = new Router(routerConfig(), System.getProperties());
if (isInstalled("i2p") || checkProgramFilesInstall()) {
String newsURL = i2pRouter.getConfigSetting("router.newsURL");
if (newsURL != null) {
if (newsURL.contains("win/beta")) {
logger.info(
"checked router.newsURL config, containes win/beta in a service install, invalid update type");
if (i2pRouter.saveConfig("router.newsURL", ServiceUpdaterString())) {
logger.info("updated routerconsole.browser config " +
appImageExe());
}
}
}
String backupNewsURL = i2pRouter.getConfigSetting("router.backupNewsURL");
if (backupNewsURL != null) {
if (backupNewsURL.contains("win/beta")) {
logger.info(
"checked router.backupNewsURL config, containes win/beta in a service install, invalid update type");
if (i2pRouter.saveConfig("router.backupNewsURL",
ServiceBackupUpdaterString())) {
logger.info("updated routerconsole.browser config " +
appImageExe());
}
}
}
String updateURL = i2pRouter.getConfigSetting("router.updateURL");
if (updateURL != null) {
if (updateURL.contains("i2pwinupdate.su3")) {
logger.info(
"checked router.updateURL config, containes win/beta in a service install, invalid update type");
if (i2pRouter.saveConfig("router.updateURL",
ServiceStaticUpdaterString())) {
logger.info("updated routerconsole.browser config " +
appImageExe());
}
}
}
}
}
private static void setupLauncher() {
File jrehome = javaHome();
logger.info("jre home is: " + jrehome.getAbsolutePath());
+36 -18
View File
@@ -131,16 +131,17 @@ public class WindowsServiceUtil {
// user can start the service themselves. OR maybe we ask for
// elevation here? May need to refactor Elevator and Shell32X to
// achieve it though
ProcessBuilder pb = new ProcessBuilder("C:\\Windows\\System32\\services.msc");
try{
ProcessBuilder pb =
new ProcessBuilder("C:\\Windows\\System32\\services.msc");
try {
Process p = pb.start();
int exitCode = p.waitFor();
if (exitCode != 0){
if (exitCode != 0) {
return false;
}
}catch(IOException e){
} catch (IOException e) {
return false;
}catch(InterruptedException e){
} catch (InterruptedException e) {
return false;
}
}
@@ -154,27 +155,42 @@ public class WindowsServiceUtil {
public static String ServiceUpdaterString() {
return "http://tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq.b32.i2p/news.su3";
}
public static String ServiceBackupUpdaterString() {
return "http://dn3tvalnjz432qkqsvpfdqrwpqkw3ye4n4i2uyfr4jexvo3sp5ka.b32.i2p/news.su3";
}
public static String ServiceStaticUpdaterString() {
return "http://echelon.i2p/i2p/i2pupdate.sud,http://stats.i2p/i2p/i2pupdate.sud";
}
public static String getProgramFilesInstall() {
String programFiles = System.getenv("PROGRAMFILES");
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
if (programFilesI2P.exists())
return programFilesI2P.getAbsolutePath();
if (programFiles != null) {
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
if (programFilesI2P.exists())
return programFilesI2P.getAbsolutePath();
}
String programFiles86 = System.getenv("PROGRAMFILES86");
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
if (programFiles86I2P.exists())
return programFiles86I2P.getAbsolutePath();
if (programFiles86 != null) {
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
if (programFiles86I2P.exists())
return programFiles86I2P.getAbsolutePath();
}
return null;
}
public static boolean checkProgramFilesInstall() {
String programFiles = System.getenv("PROGRAMFILES");
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
if (programFilesI2P.exists())
return true;
if (programFiles != null) {
File programFilesI2P = new File(programFiles, "i2p/i2p.exe");
if (programFilesI2P.exists())
return true;
}
String programFiles86 = System.getenv("PROGRAMFILES86");
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
if (programFiles86I2P.exists())
return true;
if (programFiles86 != null) {
File programFiles86I2P = new File(programFiles86, "i2p/i2p.exe");
if (programFiles86I2P.exists())
return true;
}
return false;
}
@@ -198,7 +214,9 @@ public class WindowsServiceUtil {
return true;
} else {
try {
Runtime.getRuntime().exec(getProgramFilesInstall());
String pfi = getProgramFilesInstall();
if (pfi != null)
Runtime.getRuntime().exec(pfi);
} catch (IOException e) {
return false;
}
+1 -1
View File
@@ -1 +1 @@
1.9.6
1.9.7
-13
View File
@@ -221,19 +221,6 @@ Function installerFunction
SetOutPath "$INSTDIR"
SetShellVarContext current
Var /Global I2PAPPDATA
IfFileExists "$I2PINSTEXE\clients.config" 0 +2
StrCpy $I2PAPPDATA "$I2PINSTEXE"
IfFileExists "$APPDATA\I2P\clients.config.d" 0 +2
StrCpy $I2PAPPDATA "$APPDATA\I2P\"
IfFileExists "$LOCALAPPDATA\I2P\clients.config.d" 0 +2
StrCpy $I2PAPPDATA "$LOCALAPPDATA\I2P\"
IfFileExists "$LOCALAPPDATA\I2P\clients.config" 0 +2
StrCpy $I2PAPPDATA "$LOCALAPPDATA\I2P\"
createDirectory "$I2PAPPDATA"
SetOutPath "$I2PAPPDATA"
IfFileExists "$LOCALAPPDATA\I2P\eepsite\docroot" +2 0
File /a /r "I2P\eepsite"
+1 -1
View File
@@ -1 +1 @@
!define I2P_VERSION 1.9.6
!define I2P_VERSION 1.9.7
+1 -1
View File
@@ -1,3 +1,3 @@
!define VERSIONMAJOR 1
!define VERSIONMINOR 9
!define VERSIONBUILD 6
!define VERSIONBUILD 7
+1 -1
View File
@@ -1 +1 @@
1.9.6
1.9.7