Monday Mar 09, 2009
Today, I am proud to announce the release of version 0.9 of the Solaris Package Companion. This new version is primary based upon a set of patches provided by Jerome Blanchet that provided support for the collection and processing of reverse dependency information ("R" entries in a package's depend(4)) file) as well as enhanced processing and display of platform specific packages. Thank you, Jerome!
As is my tradition when a bug is found, I try and publish a little something extra as a mea cupla. Due to limited "free time", the "mea culpa" enhancement this time is quite minor but worth mentioning anyway. In past versions, there was no interface to change the information collection rules of the tool. If you wanted to disable the collection of certain types of information (such as package names or dependencies) you had to go into the code and change the relevent COLLECT_ variable. No longer. The defaults are still the same, but now the tool will honor variable settings originating from the shell or command line as follows:
$ env COLLECT_NAMES=0 ./spc-v0.9.ksh -r /tmp/myrepository -i -l
Note that the COLLECT_ variables are only used during the creation of a repository. Not a big enhancement, but one none the less! Thank you again Jerome for discovering the bug and offering a patch!
Keep the suggestions, reports and fixes coming!
Glenn
Technorati Tag:
OpenSolaris
Solaris
security
packaging
installation
minimization
Monday Aug 04, 2008
On the heels of the v0.8 release, Clive
King was able to find a new bug introduced as a result of my attempting to make the code a little more in line with Korn Shell conventions. Clive, thank you for reporting the details! I have published an updated version as v0.8.1. As always, you can get all of the details at the OpenSolaris Solaris Package Companion Project Page
As is my tradition when a bug is found, I try and publish a little something extra as a mea cupla. This time is no different. In addition to version 0.8.1 of the Solaris Package Companion, I have also published a testing tool for the same.
The testing tool, called spc-test-v0.1.ksh is also available from the project page. This tool can test multiple versions of the tool against multiple repositories which is pretty cool when checking for regressions. There are currently 48 tests although tests can be easily added or removed as needed. It can optionally display the results to the screen, but by default it records them in a directory where a basic consistency check is performed to detect differences in output (for the same repository) resulting from the use of different versions of the tool. This is not intended to be an all encompassing test suite or even a piece of production code, but rather a basic sanity check to make sure the key functions are working as expected.
Thanks again, Clive!
Keep the suggestions, reports and fixes coming!
Glenn
Technorati Tag:
OpenSolaris
Solaris
security
packaging
installation
minimization
Friday Aug 01, 2008
Wow, has time passed since my last posting. I promise to do a quick update soon as a lot has been happening over the last six months! In the meantime, I wanted to tell you all about a new version of the Solaris Package Companion (version 0.8) that is now available.
For those not familiar with the tool, here is a brief overview:
The Solaris Package Companion is a small Korn shell script that allows you to ask
quite a number of interesting questions about the relationships between Solaris
metaclusters, clusters and packages as well as their respective dependencies. Very
often, answers to these kinds of questions are essential for the construction of
minimized systems as well as more generally for OS golden images.
The goal of the Solaris Package Companion, or SPC for short, is to do all of the
hard work so you don't have to. SPC will create a cache of important facts by mining
information from the various packaging files and directories to allow you to quickly
and easily obtain answers to a variety of questions such as:
* What clusters or packages are contained in a given metacluster?
* What packages are contained in a given cluster?
* What metacluster or cluster contains a given package?
* On what other packages does a given package or cluster depend?
* Which packages depend on a given package?
* … and so on…
New to this release is a tree view display method that allows you to list the contents of metaclusters and clusters in a more eye-friendly tree-view. Thanks to Fredrich Maney for contributing the idea and code! Here are a few examples from the project page showing what this looks like:
To see what packages are included in a cluster, just use the "-t" option:
$ ./spc-v0.8.ksh -v -r ./myrepository -t SUNWCssh
[C] SUNWCssh Secure Shell
[P] SUNWsshcu SSH Common, (Usr)
[P] SUNWsshdr SSH Server, (Root)
[P] SUNWsshdu SSH Server, (Usr)
[P] SUNWsshr SSH Client and utilities, (Root)
[P] SUNWsshu SSH Client and utilities, (Usr)
To see what packages and clusters are included in a metacluster, just use the "-T" option:
$ ./spc-v0.8.ksh -v -r ./myrepository -T SUNWCmreq | head -10
[M] SUNWCmreq Minimal Core System Support
[C] SUNWCfca Sun ISP Fibre Channel Device Drivers
[P] SUNWqlc Qlogic ISP 2200/2202 Fibre Channel Device Driver
[P] SUNWemlxs Emulex-Sun LightPulse Fibre Channel Adapter (FCA) driver (root)
[C] SUNWCfct Sun Fibre Channel Transport Software
[P] SUNWfcsm FCSM driver
[P] SUNWfctl Sun Fibre Channel Transport layer
[P] SUNWfcp Sun FCP SCSI Device Driver
[P] SUNWfcip Sun FCIP IP/ARP over FibreChannel Device Driver
[C] SUNWCfmd Fault Management Daemon and Utilities
[…]
I would also like to thank Peter Pickford for sharing a fix for a bug that resulted in the tool not properly recording all dependencies under certain circumstances. Thank you! While I was at it, I also took a little time to clean up the code a bit.
You can find more information, examples and the source code on the project page.
Keep the suggestions, reports and fixes coming!
Glenn
Technorati Tag:
OpenSolaris
Solaris
security
packaging
installation
minimization
Friday Nov 02, 2007
This one must have slipped my mind. Please accept my apologies. Back in September (2007), I
published an updated version of the Solaris Package Companion. For those not familiar with the tool, here is a brief overview:
The Solaris Package Companion is a small Korn shell script that allows you to ask
quite a number of interesting questions about the relationships between Solaris
metaclusters, clusters and packages as well as their respective dependencies. Very
often, answers to these kinds of questions are essential for the construction of
minimized systems as well as more generally for OS golden images.
The goal of the Solaris Package Companion, or SPC for short, is to do all of the
hard work so you don't have to. SPC will create a cache of important facts by mining
information from the various packaging files and directories to allow you to quickly
and easily obtain answers to a variety of questions such as:
* What clusters or packages are contained in a given metacluster?
* What packages are contained in a given cluster?
* What metacluster or cluster contains a given package?
* On what other packages does a given package or cluster depend?
* Which packages depend on a given package?
* … and so on…
New to this release is the tag before the item description to inform the user of the type of object being dispayed. [P] indicates a package while [C] is a cluster and [M] is a metacluster. Another new feature is the ability to fold packages back into their respective clusters (where possible). This can be helpful when trying to create a complete list of items for a standard OE image or JumpStart configuration. Essentially, this will report the cluster name in which the package is found. This can be accomplished using the -F (folding) option. The new -Z option will display the list of packages that depend on a specific cluster. There is also an new experimental option -f that will allow you to map a file to a package or cluster (with the -F option). This only works for local files reliably right now. Finally, special thanks to Dave Comay for reporting a bug - that has been fixed in this version too!
You can find more information, examples and the source code on the project page.
Technorati Tag:
OpenSolaris
Solaris
security
minimization
Thursday Aug 31, 2006
This note is to announce the new Solaris Package Companion OpenSolaris project
page (child of the SVR4 packaging project page) at:
http://www.opensolaris.org/os/project/svr4_packaging/package_companion/
Check it out to get all of the latest and greatest information, usage instructions, code and examples.
Love to hear what you think!
g
Technorati Tag:
OpenSolaris
Solaris
security
minimization
Monday Jul 10, 2006
Well, it is time for another update of the Solaris Package Companion. During the course of some additional testing, I found a few bugs which I have corrected in this new version. The biggest issue corrected in this update is the detection of packages versus clusters. I also added a check to avoid an exception case where a package is defined in a clustertoc(4) file but it cannot be found in the distribution (or on the local system when in local-only mode). For those interested, here is a diff:
blackhole$ diff spc-v0.5.ksh spc-v0.6.ksh
44,48c44,45
< BASEDIR=""
< REPOSITORY=""
<
< export BASEDIR REPOSITORY
<
---
> export BASEDIR=""
> export REPOSITORY=""
69c66,69
< else
---
> elif [ -d "`dirname ${fileName}`" ]; then
> # GMB: This is a small hack to avoid generating an error message
> # when a package is listed in a "contents" file but it does
> # not otherwise exist (e.g., SUNWphx on snv_18)
88a89,94
> if [ -z "${name}" ]; then
> # This method should only be trusted when in "local only" mode.
> if [ ${LOCAL_ONLY} -eq 1 ]; then
> name="`pkgparam ${1} NAME 2>/dev/null`"
> fi
> fi
221c227
< if [ `echo ${member} | grep -c "^[A-Z]*C"` -eq 1 ]; then
---
> if [ -d ${C_DIR}/${member} ]; then
If you are interested in giving this version a whirl, please download version 0.6 and let me
know what you think! Thank you to everyone who has provided feedback and ideas so far!
Keep them coming!
Take care,
Glenn
Technorati Tag:
OpenSolaris
Solaris
security
minimization
Friday Jun 30, 2006
A few days ago, I posted version 0.4 of the Solaris Package Companion. I had a little time today to do some tweaking based on the feedback that I have received so far. Today, I am pleased to announce that I have made version 0.5 available.
There is only two signficiant differences between versions 0.4 and 0.5. In version 0.5, you must specify that you want to create a working repository for the tool using the newly added -i option (which must be used with either the -l (local) or -s (source distribution) options. Once the repository has been created, the rest of the code should operate in the same manner as before.
The second difference is that during the creation of the repository, the tool will collect package names automatically. This way, you do not need to specify either the -l or -s options after the repository has been created. This makes the -v (verbose) mode a bit faster although the repository creation process (a one time event) is just a little bit longer.
You will still need to specify one of those two options if you want to try out the undocumented -f option to map a file name to a package (if possible). This functionality is still in development but feel free to try it out!
I did add a bunch of new exception handling code that should make it easier to know what is going on if there is a problem or if required arguments are not being passed in a way expected by the program. I hope that these updates will make this tool more easy for everyone to use. Please let me know what you think about the changes!
Thank you to everyone who has provided feedback and ideas so far! Keep them coming!
Take care,
Glenn
Technorati Tag:
OpenSolaris
Solaris
security
minimization
Thursday Jun 22, 2006
[Read More]
Did you mean "mea culpa" (from Latin &qu...
You got it. Thanks for the catch. Fixed.