diff options
Diffstat (limited to 'javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java')
-rwxr-xr-x | javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java | 196 |
1 files changed, 135 insertions, 61 deletions
diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java index fa1ce919245c..74f436f8c375 100755 --- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java +++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java @@ -190,6 +190,22 @@ public class LinuxInstaller extends Installer { if ( sofficeLink.exists() ) { useForce = true; } } + // On Debian based systems, rpms can be installed with the switch --force-debian, if a rpm + // is installed. + + String forceDebianString = ""; + String nodepsString = ""; + + if ( ! data.debianInvestigated() ) { + helper.investigateDebian(data); + data.setDebianInvestigated(true); + } + + if ( data.isDebianSystem() ) { + forceDebianString = "--force-debian"; + nodepsString = "--nodeps"; + } + String rpmCommand = ""; String[] rpmCommandArray; String databasePath = null; @@ -212,107 +228,123 @@ public class LinuxInstaller extends Installer { if (useForce) { if (useLocalDatabase) { if ( relocations != null ) { - rpmCommand = "rpm --upgrade --ignoresize --force -vh " + + rpmCommand = "rpm --upgrade --ignoresize --force " + forceDebianString + " " + nodepsString + " -vh " + "--relocate " + relocations + " " + databaseString + " " + databasePath + " " + packageName; - rpmCommandArray = new String[10]; + rpmCommandArray = new String[12]; rpmCommandArray[0] = "rpm"; rpmCommandArray[1] = "--upgrade"; rpmCommandArray[2] = "--ignoresize"; rpmCommandArray[3] = "--force"; - rpmCommandArray[4] = "-vh"; - rpmCommandArray[5] = "--relocate"; - rpmCommandArray[6] = relocations; - rpmCommandArray[7] = databaseString; - rpmCommandArray[8] = databasePath; - rpmCommandArray[9] = packageName; + rpmCommandArray[4] = forceDebianString; + rpmCommandArray[5] = nodepsString; + rpmCommandArray[6] = "-vh"; + rpmCommandArray[7] = "--relocate"; + rpmCommandArray[8] = relocations; + rpmCommandArray[9] = databaseString; + rpmCommandArray[10] = databasePath; + rpmCommandArray[11] = packageName; } else { - rpmCommand = "rpm --upgrade --ignoresize --force -vh " + + rpmCommand = "rpm --upgrade --ignoresize --force " + forceDebianString + " " + nodepsString + " -vh " + databaseString + " " + databasePath + " " + packageName; - rpmCommandArray = new String[8]; + rpmCommandArray = new String[10]; rpmCommandArray[0] = "rpm"; rpmCommandArray[1] = "--upgrade"; rpmCommandArray[2] = "--ignoresize"; rpmCommandArray[3] = "--force"; - rpmCommandArray[4] = "-vh"; - rpmCommandArray[5] = databaseString; - rpmCommandArray[6] = databasePath; - rpmCommandArray[7] = packageName; + rpmCommandArray[4] = forceDebianString; + rpmCommandArray[5] = nodepsString; + rpmCommandArray[6] = "-vh"; + rpmCommandArray[7] = databaseString; + rpmCommandArray[8] = databasePath; + rpmCommandArray[9] = packageName; } } else { if ( relocations != null ) { - rpmCommand = "rpm --upgrade --ignoresize --force -vh " + + rpmCommand = "rpm --upgrade --ignoresize --force " + forceDebianString + " " + nodepsString + " -vh " + "--relocate " + relocations + " " + packageName; - rpmCommandArray = new String[8]; + rpmCommandArray = new String[10]; rpmCommandArray[0] = "rpm"; rpmCommandArray[1] = "--upgrade"; rpmCommandArray[2] = "--ignoresize"; rpmCommandArray[3] = "--force"; - rpmCommandArray[4] = "-vh"; - rpmCommandArray[5] = "--relocate"; - rpmCommandArray[6] = relocations; - rpmCommandArray[7] = packageName; + rpmCommandArray[4] = forceDebianString; + rpmCommandArray[5] = nodepsString; + rpmCommandArray[6] = "-vh"; + rpmCommandArray[7] = "--relocate"; + rpmCommandArray[8] = relocations; + rpmCommandArray[9] = packageName; } else { - rpmCommand = "rpm --upgrade --ignoresize --force -vh " + packageName; - rpmCommandArray = new String[6]; + rpmCommand = "rpm --upgrade --ignoresize --force " + forceDebianString + " " + nodepsString + " -vh " + packageName; + rpmCommandArray = new String[8]; rpmCommandArray[0] = "rpm"; rpmCommandArray[1] = "--upgrade"; rpmCommandArray[2] = "--ignoresize"; rpmCommandArray[3] = "--force"; - rpmCommandArray[4] = "-vh"; - rpmCommandArray[5] = packageName; + rpmCommandArray[4] = forceDebianString; + rpmCommandArray[5] = nodepsString; + rpmCommandArray[6] = "-vh"; + rpmCommandArray[7] = packageName; } } } else { if (useLocalDatabase) { if ( relocations != null ) { - rpmCommand = "rpm --upgrade --ignoresize -vh " + + rpmCommand = "rpm --upgrade --ignoresize " + forceDebianString + " " + nodepsString + " -vh " + "--relocate " + relocations + " " + databaseString + " " + databasePath + " " + packageName; - rpmCommandArray = new String[9]; + rpmCommandArray = new String[11]; rpmCommandArray[0] = "rpm"; rpmCommandArray[1] = "--upgrade"; rpmCommandArray[2] = "--ignoresize"; - rpmCommandArray[3] = "-vh"; - rpmCommandArray[4] = "--relocate"; - rpmCommandArray[5] = relocations; - rpmCommandArray[6] = databaseString; - rpmCommandArray[7] = databasePath; - rpmCommandArray[8] = packageName; + rpmCommandArray[3] = forceDebianString; + rpmCommandArray[4] = nodepsString; + rpmCommandArray[5] = "-vh"; + rpmCommandArray[6] = "--relocate"; + rpmCommandArray[7] = relocations; + rpmCommandArray[8] = databaseString; + rpmCommandArray[9] = databasePath; + rpmCommandArray[10] = packageName; } else { - rpmCommand = "rpm --upgrade --ignoresize -vh " + + rpmCommand = "rpm --upgrade --ignoresize " + forceDebianString + " " + nodepsString + " -vh " + databaseString + " " + databasePath + " " + packageName; - rpmCommandArray = new String[7]; + rpmCommandArray = new String[9]; rpmCommandArray[0] = "rpm"; rpmCommandArray[1] = "--upgrade"; rpmCommandArray[2] = "--ignoresize"; - rpmCommandArray[3] = "-vh"; - rpmCommandArray[4] = databaseString; - rpmCommandArray[5] = databasePath; - rpmCommandArray[6] = packageName; + rpmCommandArray[3] = forceDebianString; + rpmCommandArray[4] = nodepsString; + rpmCommandArray[5] = "-vh"; + rpmCommandArray[6] = databaseString; + rpmCommandArray[7] = databasePath; + rpmCommandArray[8] = packageName; } } else { if ( relocations != null ) { - rpmCommand = "rpm --upgrade --ignoresize -vh " + + rpmCommand = "rpm --upgrade --ignoresize " + forceDebianString + " " + nodepsString + " -vh " + "--relocate " + relocations + " " + packageName; - rpmCommandArray = new String[7]; + rpmCommandArray = new String[9]; rpmCommandArray[0] = "rpm"; rpmCommandArray[1] = "--upgrade"; rpmCommandArray[2] = "--ignoresize"; - rpmCommandArray[3] = "-vh"; - rpmCommandArray[4] = "--relocate"; - rpmCommandArray[5] = relocations; - rpmCommandArray[6] = packageName; + rpmCommandArray[3] = forceDebianString; + rpmCommandArray[4] = nodepsString; + rpmCommandArray[5] = "-vh"; + rpmCommandArray[6] = "--relocate"; + rpmCommandArray[7] = relocations; + rpmCommandArray[8] = packageName; } else { - rpmCommand = "rpm --upgrade --ignoresize -vh " + packageName; - rpmCommandArray = new String[5]; + rpmCommand = "rpm --upgrade --ignoresize " + forceDebianString + " " + nodepsString + " -vh " + packageName; + rpmCommandArray = new String[7]; rpmCommandArray[0] = "rpm"; rpmCommandArray[1] = "--upgrade"; rpmCommandArray[2] = "--ignoresize"; - rpmCommandArray[3] = "-vh"; - rpmCommandArray[4] = packageName; + rpmCommandArray[3] = forceDebianString; + rpmCommandArray[4] = nodepsString; + rpmCommandArray[5] = "-vh"; + rpmCommandArray[6] = packageName; } } } @@ -383,20 +415,62 @@ public class LinuxInstaller extends Installer { useLocalDatabase = true; } - if (useLocalDatabase) { - rpmCommand = "rpm -ev" + " " + databaseString + " " + databasePath + " " + packageName; - rpmCommandArray = new String[5]; - rpmCommandArray[0] = "rpm"; - rpmCommandArray[1] = "-ev"; - rpmCommandArray[2] = databaseString; - rpmCommandArray[3] = databasePath; - rpmCommandArray[4] = packageName; + // On Debian based systems, rpms can be installed with the switch --force-debian, if a rpm + // is installed. + + String forceDebianString = ""; + String nodepsString = ""; + + if ( ! data.debianInvestigated() ) { + helper.investigateDebian(data); + data.setDebianInvestigated(true); + } + + if ( data.isDebianSystem() ) { + forceDebianString = "--force-debian"; + nodepsString = "--nodeps"; + } + + // Code duplication for isDebianSystem is necessary, because there is no valid position + // for forceDebianString, if it is empty. This is no problem in installPackage. + + if ( data.isDebianSystem() ) { + + if (useLocalDatabase) { + rpmCommand = "rpm " + forceDebianString + " " + nodepsString + " -ev" + " " + databaseString + " " + databasePath + " " + packageName; + rpmCommandArray = new String[7]; + rpmCommandArray[0] = "rpm"; + rpmCommandArray[1] = forceDebianString; + rpmCommandArray[2] = nodepsString; + rpmCommandArray[3] = "-ev"; + rpmCommandArray[4] = databaseString; + rpmCommandArray[5] = databasePath; + rpmCommandArray[6] = packageName; + } else { + rpmCommand = "rpm " + forceDebianString + " " + nodepsString + " -ev" + " " + packageName; + rpmCommandArray = new String[5]; + rpmCommandArray[0] = "rpm"; + rpmCommandArray[1] = forceDebianString; + rpmCommandArray[2] = nodepsString; + rpmCommandArray[3] = "-ev"; + rpmCommandArray[4] = packageName; + } } else { - rpmCommand = "rpm -ev" + " " + packageName; - rpmCommandArray = new String[3]; - rpmCommandArray[0] = "rpm"; - rpmCommandArray[1] = "-ev"; - rpmCommandArray[2] = packageName; + if (useLocalDatabase) { + rpmCommand = "rpm -ev" + " " + databaseString + " " + databasePath + " " + packageName; + rpmCommandArray = new String[5]; + rpmCommandArray[0] = "rpm"; + rpmCommandArray[1] = "-ev"; + rpmCommandArray[2] = databaseString; + rpmCommandArray[3] = databasePath; + rpmCommandArray[4] = packageName; + } else { + rpmCommand = "rpm -ev" + " " + packageName; + rpmCommandArray = new String[3]; + rpmCommandArray[0] = "rpm"; + rpmCommandArray[1] = "-ev"; + rpmCommandArray[2] = packageName; + } } Vector returnVector = new Vector(); |