Fedora Console needs to be packaged as a RPM. Here are some of the requirements for this: - Must have a buildable source RPM - Should use rpm dependencies for build and install requirements - Should be a distributed intall layout as opposed to self-contained
Created attachment 121375 [details] CVS DIffs Quite a few things needed to be modified to make Console work properly as a RPM. The Console RPM will install the Console jar files in "/usr/share/java", and the startconsole script will go in "/usr/bin". The RPM will require nspr, nss, jss, and ldapjdk RPMs to be installed already. These dependencies will exist in system locations (/usr/lib and /usr/share/java). The build system had to be modified to use system copies of nspr, nss, jss, and ldapjdk instead of downloading them. The developer still has the ability to build the old way if they supply an imports.file property to Ant, otherwise it looks in system locations (/usr/lib and /usr/share/java). The default build option is to use these local system dependencies and just build the jar files. A standalone console can be build with the "package" target. The downloaded jars are no longer stored in a local "jars" directory where the console is installed. This would be a problem since the user running console may not have permission to download a jar file to a system directory such as "/usr/share/java". They are now put in the users preference directory. This used to be "~/.mcc", but it's now changed to "~/.fedora-console". The Console jar file names are now more decriptive. The names used to be things such as "mcc10.jar", btu they are now "fedora-mcc-1.0.jar". The startconsole script was changed around to allow it to be run from any location. Previously, you had to run it from the location that it was installed due to the use of relative paths. There are now two versions of the startconsole script, one for Console installs that will use system locations (plain startconsole), and one for standalone installs of the Console (startconsole-sandbox). The appropriate one will be packaged depending on how you build Console. I also was able to strip out a bunch of stuff related to setting LD_LIBRARY_PATH to satisfy the JSS C library. JSS versions prior to 3.7 were linked against libjava.so and libjvm.so. These links were unnecessary and have been removed in JSS 3.7, so we don't need to put them in LD_LIBRARY_PATH anymore. I also cleaned up the way the caplugin stuff works for the manual certificate request plugin. The old way this was done was to have a separate jar file for this. The Console would require there to be a "caplugin" directory where the server jar files get downloaded that must contain this default plugin. Additional plugins would be loaded from here as well. I changed it so that the default plugin is located withing one of the main Console jars (the mcc jar specifically) instead of being a standalone jar. This allows the console to run without this jar being present in the user's ".fedora-console" directory. Additional plugins can be loaded from the user's ".fedora-console/caplugin" directory.
Created attachment 121376 [details] fedora-console specfile This is the initial specfile for the fedora-console RPM.
Created attachment 121377 [details] New standalone startconsole script This is the new startconsole script that will only be used for self-contained installs of Console. Ant will package it during the package target (which is not used by rpmbuild).
Created attachment 121606 [details] CVS Commit Checked into console (HEAD). Reviewed by Rich and Noriko.