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 | 220 |
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); } } |