Totalview Packaging The totalview debugger is produced by Etnus, Inc (www.etnus.com). Licensing Issues The licensing for the debugger is based upon the machine on which the debugging is being done. Regardless of how many processors are being used by the program, the debugger will not run unless there is an available license for a machine of a specified type and number of processors. Totalview uses the FLEXlm license product to do its license management. From the standpoint of licensing, the product that is packaged in fnkits and is downloaded is a client that must communicate at intervals (upon startup and every few minutes thereafter) with a centralized license server. The license server is specified in the license.dat file; that file must be updated whenever the centralized license server changes. If the license server is not available, then the user cannot run the debugger. If no licenses are available, then the user cannot run the debugger. There are unusual failure conditions by which the license server perceives that the license that has been checked out is still being used, while in fact the client session has disappeared. This normally doesn't happen, but if it does it can normally be spotted by a license that appears to be in use for a long time, but the user is not running a session. In this case, the support person within the OSS Department that manages the license server can force the license to be returned. Note that this condition cannot be distinguished from a long debugging session (for example, waiting for an intermittent error) without communicating with the user. Due to cost considerations, there are currently only 8 SGI/64 processor licenses, but 32 Linux licenses. Occasionally users may not be able to get a session and submit a help desk ticket. Further investigations, which must be done in conjunction with the OSS Department, often show that there are users who have sessions open but are not using them. It is important to properly educate the users about polite license use. The totalview license server is located on its own machine because that allows users from remote institutions to use totalview without potentially compromising security on other license servers. This is a highly desirable characteristic to both experiments and is allowed according to the totalview license agreement as the work is associated with a Fermilab project. Occasionally it is important to review the log of users using the totalview licenses, as produced by the license server, to determine that they are all appropriate. Etnus provides a single license that handles all machine types, but that license needs to be upgraded based on the annual maintenance renewal periods or system release. Etnus will send notification to the contact person asking for information that will be used to generate a new license. That new license will have to be installed and tested by OSS. In the event that the license server changes, the license.dat file within the totalview product will need to be updated This can be done by updating the license.dat file within the totalview/ups directory, as there is a symbolic link to the flexlm directory (refer to Art Kreymer for the details, it was his suggestion). Releases that Get Packaged The following versions get packed for every release. Etnus tends to put out a point release of their product every several months. They normally send email notification to the contact person indicating that a new version is available. In addition, Fermilab has served as a beta test site, especially in the area of usage with KAI. · IRIX 6.5 · Linux · Compaq Packaging Instructions Totalview packaging is relatively straightforward as there is a consistent licensing strategy between all versions. However, the same strategy of a packaging script is used so that the vendor installation scripts can be run automatically. The installation scripts vary between versions of Unix and need the automatic responses should be evaluated on every totalview release to insure that they are appropriate. Steps To Package 1. Check out the packaging environment from CVS. The ups and packaging environment is stored in cdcvs repository, under totalview. 2. The contact person should receive notification when a new version is released. If there is a question, check the web site for the latest version to download. 3. Verify that you have a valid license key, by examining the FLEXlm file or email from the vendor to indicate whether a new license is required. Sometimes it is for a point release, sometimes it's not. 4. Download the release file from the vendor (http://ww.etnus.com/ ). The format for Unix versions is tar, the Linux version is packaged as an rpm. Place the tar/rpm file within the totalview directory that has been checked out from cvs. 5. As each release and Unix/Linux flavor has been packaged differently, the steps needed to do packaging are contained within a shell script that is named according to the release to be packaged. If you are packaging a new version, copy package_v to package_v, as it is often the case that multiple versions must be supported at one time. 6. Modify the package_v script to reflect the new release numbers, both as provided by the vendor and used by ups. Check tar file names to see if the pattern has changed; if so, make adjustments following documentation contained within the package script. 7. It is easiest to package within AFS space, using the Computing Division's build nodes, to insure a consistent environment. (Using experiment machines can produce unexpected results as they have been locally tailored). As with kai packaging, the totalview package script has been constructed so that it can only package the version on a specific machine (i.e. an Irix version can only be packaged on an SGI machine). This is because some of the installation scripts that the vendor provides use machine-specific commands. 8. Update the totalview product to include a new license.dat file, if needed. Place this in the "local" subdirectory, it will get copied to the appropriate spot by the packaging script. 9. To package, execute the "package_v" script. Examine the resulting output, which will indicate errors as detected, or that the packaging was successful. Note: the vendor frequently modifies the question/answer sequences of the installation scripts. As the package script automatically answers the installation script questions, it is important to verify that the answers remain correct. If you suspect that the sequence is different, install the package once by hand, carefully noting the question/answer sequences and updating the appropriate unpack routine to answer the questions appropriately. 10. In order to test, you need to have a program compiled with appropriate debug flags. The "hello world" program found within the kai/test directory is one possible program. 11. Verify that the debugger works by invoking it as settting up totalview, invoking the debugger as "totalview " and see if the debugger windows display correctly. Most of the errors that occur do so because of licensing issues and dealing with the license server; the initial debug window is displayed only if the license is properly resolved. 12. Finally, if you have not already done so, put totalview into fnkits and do appropriate notifications (see upd documentation). The totalview product contains a makefile in the top directory that was generated from the product_template product. I use the "addproduct" and "delproduct" targets to add and remove the product from fnkits, overriding the version and flavor variables as needed.