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.java220
1 files changed, 110 insertions, 110 deletions
diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
index 4383904569c0..204c9e18ea83 100755
--- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
+++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
@@ -1,7 +1,7 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
@@ -43,13 +43,13 @@ import java.util.Map;
import java.util.Vector;
public class LinuxInstaller extends Installer {
-
+
LinuxHelper helper = new LinuxHelper();
-
+
public LinuxInstaller() {
super();
}
-
+
public void preInstall(PackageDescription packageData) {
InstallData installData = InstallData.getInstance();
// Collecting package names
@@ -108,8 +108,8 @@ public class LinuxInstaller extends Installer {
String installDir = null;
InstallData installData = InstallData.getInstance();
- String packageName = packageData.getPkgRealName();
-
+ String packageName = packageData.getPkgRealName();
+
if ( packageName != null ) {
String rpmCommand = "rpm -q --queryformat %{INSTALLPREFIX} " + packageName;
String[] rpmCommandArray = new String[5];
@@ -118,19 +118,19 @@ public class LinuxInstaller extends Installer {
rpmCommandArray[2] = "--queryformat";
rpmCommandArray[3] = "%{INSTALLPREFIX}";
rpmCommandArray[4] = packageName;
-
+
Vector returnVector = new Vector();
Vector returnErrorVector = new Vector();
int returnValue = ExecuteProcess.executeProcessReturnVector(rpmCommandArray, returnVector, returnErrorVector);
String returnString = (String) returnVector.get(0);
returnString = returnString.replaceAll("//","/");
-
+
String log = rpmCommand + "<br><b>Returns: " + returnString + "</b><br>";
LogManager.addCommandsLogfileComment(log);
-
- installDir = returnString;
+
+ installDir = returnString;
}
-
+
return installDir;
}
@@ -142,7 +142,7 @@ public class LinuxInstaller extends Installer {
// String log = "<br><b>Package: " + packageData.getName() + "</b>";
// LogManager.addCommandsLogfileComment(log);
String log = "";
-
+
// setting installDir
String installDir = data.getInstallDir();
String packagePath = data.getPackagePath();
@@ -160,55 +160,55 @@ public class LinuxInstaller extends Installer {
} else {
log = "<b>Package Name: " + packageName + "</b>";
LogManager.addCommandsLogfileComment(log);
-
+
File completePackage = new File(packagePath, packageName);
packageName = completePackage.getPath();
packageName = "\"" + packageName + "\""; // Quoting is necessary, if the path the the packages contains white spaces.
-
+
if ( completePackage.exists() ) {
String relocations = helper.getRelocationString(packageData, packageName);
if ( relocations != null ) {
// Problem: If Prefix = "/" the packages are not relocatable with RPM version 3.x .
- // Therefore Prefix has to be "/opt" in spec file, although packages shall not be
+ // Therefore Prefix has to be "/opt" in spec file, although packages shall not be
// relocatable (except for installations with root privileges). So /opt has to be
- // listed left and right of equal sign: --relocate /opt=<installDir>/opt
+ // listed left and right of equal sign: --relocate /opt=<installDir>/opt
// -> /opt has to be added to the installDir
File localInstallDir = new File(installDir, relocations); // "/" -> "/opt"
String localInstallDirString = localInstallDir.getPath();
// Fixing problem with installation directory and RPM version 3.x
- String fixedInstallDir = helper.fixInstallationDirectory(localInstallDirString);
+ String fixedInstallDir = helper.fixInstallationDirectory(localInstallDirString);
relocations = relocations + "=" + fixedInstallDir;
// relocations: "/opt/staroffice8=" + fixedInstallDir;
}
-
- // Some packages have to be installed with parameter "--force", if the link "/usr/bin/soffice"
+
+ // Some packages have to be installed with parameter "--force", if the link "/usr/bin/soffice"
// already exists. These pacakges return true with methode "useForce()".
boolean useForce = false;
if ( packageData.useForce() ) {
File sofficeLink = new File("/usr/bin/soffice");
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() ) {
nodepsString = "--nodeps";
-
+
if ( data.useForceDebian() ) {
forceDebianString = "--force-debian";
}
}
-
+
String databasePath = null;
String databaseString = "";
boolean useLocalDatabase = false;
@@ -220,63 +220,63 @@ public class LinuxInstaller extends Installer {
data.setDatabasePath(databasePath);
}
}
-
+
if (( databasePath != null ) && (! databasePath.equalsIgnoreCase("null"))) {
databaseString = "--dbpath";
useLocalDatabase = true;
}
-
- // Defining a Vector that contains the full rpm command. Then the string array can be
+
+ // Defining a Vector that contains the full rpm command. Then the string array can be
// created dynamically. Otherwise there would be too many different scenarios.
-
+
Vector rpmVector = new Vector();
-
+
rpmVector.add("rpm");
rpmVector.add("--upgrade");
rpmVector.add("--ignoresize");
-
+
if ( useForce ) {
rpmVector.add("--force");
}
-
+
if ( ! forceDebianString.equals("") ) {
rpmVector.add(forceDebianString);
}
-
+
if ( ! nodepsString.equals("") ) {
rpmVector.add(nodepsString);
}
-
+
rpmVector.add("-vh");
-
+
if ( relocations != null ) {
rpmVector.add("--relocate");
rpmVector.add(relocations);
}
-
+
if ( useLocalDatabase ) {
rpmVector.add(databaseString);
rpmVector.add(databasePath);
}
-
+
rpmVector.add(packageName);
-
+
// Creating String and StringArray for rpm command
-
+
int capacity = rpmVector.size();
-
+
String rpmCommand = "";
String[] rpmCommandArray = new String[capacity];
-
+
for (int i = 0; i < rpmVector.size(); i++) {
rpmCommandArray[i] = (String)rpmVector.get(i);
rpmCommand = rpmCommand + " " + (String)rpmVector.get(i);
}
-
+
rpmCommand = rpmCommand.trim();
-
+
// Staring rpm process
-
+
Vector returnVector = new Vector();
Vector returnErrorVector = new Vector();
// int returnValue = SystemManager.executeProcessReturnVector(rpmCommand, returnVector, returnErrorVector);
@@ -285,7 +285,7 @@ public class LinuxInstaller extends Installer {
if ( returnValue == 0 ) {
log = rpmCommand + "<br><b>Returns: " + returnValue + " Successful installation</b><br>";
LogManager.addCommandsLogfileComment(log);
- } else { // an error occured during installation
+ } else { // an error occured during installation
if ( packageData.installCanFail() ) {
log = rpmCommand + "<br><b>Returns: " + returnValue + " Problem during installation. Can be ignored.</b><br>";
LogManager.addCommandsLogfileComment(log);
@@ -323,19 +323,19 @@ public class LinuxInstaller extends Installer {
// LogManager.addCommandsLogfileComment(log);
String rpmPackageName = packageData.getPackageName();
-
+
if (( rpmPackageName.equals("")) || ( rpmPackageName == null )) {
log = "<b>No package name specified. Nothing to do</b>";
LogManager.addCommandsLogfileComment(log);
} else {
log = "<b>Package Name: " + rpmPackageName + "</b>";
LogManager.addCommandsLogfileComment(log);
-
+
String packageName = packageData.getPkgRealName();
String databasePath = data.getDatabasePath();
String databaseString = "";
boolean useLocalDatabase = false;
-
+
if (( databasePath != null ) && (! databasePath.equalsIgnoreCase("null"))) {
databaseString = "--dbpath";
useLocalDatabase = true;
@@ -346,56 +346,56 @@ public class LinuxInstaller extends Installer {
String forceDebianString = "";
String nodepsString = "";
-
+
if ( ! data.debianInvestigated() ) {
helper.investigateDebian(data);
data.setDebianInvestigated(true);
}
-
+
if ( data.isDebianSystem() ) {
nodepsString = "--nodeps";
-
+
if ( data.useForceDebian() ) {
forceDebianString = "--force-debian";
}
}
- // Defining a Vector that contains the full rpm command. Then the string array can be
+ // Defining a Vector that contains the full rpm command. Then the string array can be
// created dynamically. Otherwise there would be too many different scenarios.
-
+
Vector rpmVector = new Vector();
-
+
rpmVector.add("rpm");
-
+
if ( ! forceDebianString.equals("") ) {
rpmVector.add(forceDebianString);
}
-
+
if ( ! nodepsString.equals("") ) {
rpmVector.add(nodepsString);
}
-
+
rpmVector.add("-ev");
-
+
if ( useLocalDatabase ) {
rpmVector.add(databaseString);
rpmVector.add(databasePath);
}
-
+
rpmVector.add(packageName);
-
+
// Creating String and StringArray for rpm command
-
+
int capacity = rpmVector.size();
-
+
String rpmCommand = "";
String[] rpmCommandArray = new String[capacity];
-
+
for (int i = 0; i < rpmVector.size(); i++) {
rpmCommandArray[i] = (String)rpmVector.get(i);
rpmCommand = rpmCommand + " " + (String)rpmVector.get(i);
}
-
+
rpmCommand = rpmCommand.trim();
// Starting rpm process
@@ -406,8 +406,8 @@ public class LinuxInstaller extends Installer {
if ( returnValue == 0 ) {
log = rpmCommand + "<br><b>Returns: " + returnValue + " Successful uninstallation</b><br>";
- LogManager.addCommandsLogfileComment(log);
- } else { // an error occured during installation
+ LogManager.addCommandsLogfileComment(log);
+ } else { // an error occured during installation
if ( packageData.uninstallCanFail() ) {
log = rpmCommand + "<br><b>Returns: " + returnValue + " Problem during uninstallation. Can be ignored.</b><br>";
LogManager.addCommandsLogfileComment(log);
@@ -422,23 +422,23 @@ public class LinuxInstaller extends Installer {
}
}
}
-
+
public boolean isPackageInstalledClassic(PackageDescription packageData, InstallData installData) {
-
+
boolean isInstalled = false;
boolean doCheck = false;
-
- // only checking existing packages (and always at uninstallation)
+
+ // only checking existing packages (and always at uninstallation)
if ( (packageData.pkgExists()) || (installData.isUninstallationMode()) ) {
doCheck = true;
}
-
+
String rpmPackageName = packageData.getPackageName();
if ( rpmPackageName.equals("") ) {
rpmPackageName = null;
}
-
+
if (( rpmPackageName != null ) && ( doCheck )) {
String databaseString = "";
@@ -450,17 +450,17 @@ public class LinuxInstaller extends Installer {
if (installData.isUserInstallation()) {
databasePath = installData.getDatabasePath();
}
-
+
if (( databasePath != null ) && (! databasePath.equals("null"))) {
databaseString = "--dbpath";
useLocalDatabase = true;
}
-
+
if (packageName != null) {
-
+
String rpmCommand;
String[] rpmCommandArray;
-
+
if (useLocalDatabase) {
rpmCommand = "rpm" + " " + databaseString + " " + databasePath + " --query " + packageName;
rpmCommandArray = new String[5];
@@ -468,7 +468,7 @@ public class LinuxInstaller extends Installer {
rpmCommandArray[1] = databaseString;
rpmCommandArray[2] = databasePath;
rpmCommandArray[3] = "--query";
- rpmCommandArray[4] = packageName;
+ rpmCommandArray[4] = packageName;
} else {
rpmCommand = "rpm" + " --query " + packageName;
rpmCommandArray = new String[3];
@@ -476,7 +476,7 @@ public class LinuxInstaller extends Installer {
rpmCommandArray[1] = "--query";
rpmCommandArray[2] = packageName;
}
-
+
int returnValue = ExecuteProcess.executeProcessReturnValue(rpmCommandArray);
if ( returnValue == 0 ) {
@@ -493,26 +493,26 @@ public class LinuxInstaller extends Installer {
return isInstalled;
}
-
+
private void queryAllDatabase(InstallData installData) {
String databaseString = "";
String databasePath = null;
HashMap map = new HashMap();;
boolean useLocalDatabase = false;
-
+
if (installData.isUserInstallation()) {
databasePath = installData.getDatabasePath();
}
-
+
if (( databasePath != null ) && (! databasePath.equals("null"))) {
databaseString = "--dbpath";
useLocalDatabase = true;
}
-
+
String rpmCommand;
String[] rpmCommandArray;
-
+
if (useLocalDatabase) {
rpmCommand = "rpm" + " " + databaseString + " " + databasePath + " --query" + " -a";
rpmCommandArray = new String[5];
@@ -520,7 +520,7 @@ public class LinuxInstaller extends Installer {
rpmCommandArray[1] = databaseString;
rpmCommandArray[2] = databasePath;
rpmCommandArray[3] = "--query";
- rpmCommandArray[4] = "-a";
+ rpmCommandArray[4] = "-a";
} else {
rpmCommand = "rpm" + " --query" + " -a";
rpmCommandArray = new String[3];
@@ -528,15 +528,15 @@ public class LinuxInstaller extends Installer {
rpmCommandArray[1] = "--query";
rpmCommandArray[2] = "-a";
}
-
+
Vector returnVector = new Vector();
Vector returnErrorVector = new Vector();
int returnValue = ExecuteProcess.executeProcessReturnVector(rpmCommandArray, returnVector, returnErrorVector);
-
+
String log = rpmCommand + "<br><b>Returns: " + returnValue + "</b><br>";
LogManager.addCommandsLogfileComment(log);
String value = "1";
-
+
if ( ! returnVector.isEmpty()) {
for (int i = 0; i < returnVector.size(); i++) {
String onePackage = (String)returnVector.get(i);
@@ -548,15 +548,15 @@ public class LinuxInstaller extends Installer {
}
installData.setDatabaseQueried(true);
- installData.setDatabaseMap(map);
+ installData.setDatabaseMap(map);
}
public boolean isPackageInstalled(PackageDescription packageData, InstallData installData) {
-
+
boolean isInstalled = false;
boolean doCheck = false;
-
- // only checking existing packages (and always at uninstallation)
+
+ // only checking existing packages (and always at uninstallation)
if ( (packageData.pkgExists()) || (installData.isUninstallationMode()) ) {
doCheck = true;
}
@@ -566,10 +566,10 @@ public class LinuxInstaller extends Installer {
if ( rpmPackageName.equals("") ) {
rpmPackageName = null;
}
-
+
if (( rpmPackageName != null ) && ( doCheck )) {
String packageName = packageData.getPkgRealName();
-
+
if (packageName != null) {
HashMap map = null;
@@ -578,13 +578,13 @@ public class LinuxInstaller extends Installer {
}
map = installData.getDatabaseMap();
-
+
if ( map.containsKey(packageName)) {
isInstalled = true;
- }
+ }
} else {
- System.err.println("Error: No packageName defined for package: " + packageData.getPackageName());
- }
+ System.err.println("Error: No packageName defined for package: " + packageData.getPackageName());
+ }
}
return isInstalled;
@@ -605,39 +605,39 @@ public class LinuxInstaller extends Installer {
}
private boolean findOlderPackage(PackageDescription packageData, InstallData installData, boolean checkIfInstalledIsOlder) {
-
+
// The information about the new package is stored in packageData (the version and the release).
// This information can be stored in xpd files. If it is not stored in xpd files, it is determined
// during installation process by querying the rpm file. This process costs much time and should
// therefore be done by the process, that creates the xpd files. On the other hand this requires,
// that the xpd files contain the correct information.
-
+
boolean isOlder = false;
-
+
// get the version of the installed package
String rpmPackageName = packageData.getPackageName();
String log;
-
+
if ( rpmPackageName.equals("")) {
rpmPackageName = null;
}
-
+
if ( rpmPackageName != null ) {
String databaseString = "";
String databasePath = null;
- String packageName = packageData.getPkgRealName();
+ String packageName = packageData.getPkgRealName();
Vector allPackages = null;
boolean useLocalDatabase = false;
if (installData.isUserInstallation()) {
databasePath = installData.getDatabasePath();
}
-
+
if (( databasePath != null ) && (! databasePath.equals("null"))) {
databaseString = "--dbpath";
useLocalDatabase = true;
}
-
+
if (packageName != null) {
// Collect information about the installed package by querying the database.
// Instead of rpm file name, the real package name has to be used.
@@ -654,7 +654,7 @@ public class LinuxInstaller extends Installer {
rpmCommandArray[3] = "-q";
rpmCommandArray[4] = "--queryformat";
rpmCommandArray[5] = "%{VERSION}\\n";
- rpmCommandArray[6] = packageName;
+ rpmCommandArray[6] = packageName;
} else {
rpmCommand = "rpm" + " -q --queryformat %{VERSION}\\n " + packageName;
rpmCommandArray = new String[5];
@@ -677,13 +677,13 @@ public class LinuxInstaller extends Installer {
installData.setInstalledProductMinor(productMinor);
installData.setInstalledProductMinorSet(true);
}
-
+
if (useLocalDatabase) {
rpmCommand = "rpm" + " " + databaseString + " " + databasePath + " -q --queryformat %{RELEASE}\\n " + packageName;
rpmCommandArray[5] = "%{RELEASE}\\n";
} else {
rpmCommand = "rpm" + " -q --queryformat %{RELEASE}\\n " + packageName;
- rpmCommandArray[3] = "%{RELEASE}\\n";
+ rpmCommandArray[3] = "%{RELEASE}\\n";
}
Vector releaseVector = new Vector();
@@ -694,7 +694,7 @@ public class LinuxInstaller extends Installer {
LogManager.addCommandsLogfileComment(log);
isOlder = helper.compareVersionAndRelease(version, release, packageData, checkIfInstalledIsOlder);
-
+
if ( checkIfInstalledIsOlder ) {
if ( isOlder ) {
LogManager.addCommandsLogfileComment("<b>-> Installed package is older</b><br>");
@@ -706,11 +706,11 @@ public class LinuxInstaller extends Installer {
LogManager.addCommandsLogfileComment("<b>-> Package in installation set is older</b><br>");
} else {
LogManager.addCommandsLogfileComment("<b>-> Package in installation set is not older</b><br>");
- }
+ }
}
} else {
- System.err.println("Error: No packageName defined for package: " + rpmPackageName);
+ System.err.println("Error: No packageName defined for package: " + rpmPackageName);
}
}