summaryrefslogtreecommitdiff
path: root/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
diff options
context:
space:
mode:
Diffstat (limited to 'javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java')
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java196
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();