Wednesday Jan 06, 2010

Windows TCP Receive Window Auto-Tuning

 During the final testing for GlassFish v3 we ran into an interesting problem triggered by Vista's Receive Window Auto-Tuning feature. For details see Joe Di Pol's blog.

Wednesday Dec 16, 2009

Updating Production Systems Using pkg(5)

As people get exposed to the notion of using the Image Packaging System to deliver their layered applications, they often ask us about the extent to which the pkg(5) system can be used to update production systems.  The following FAQ entry doesn't delve into a great amount of detail, but it attempts to explain the overall role of pkg(5) in this context and how the orchestration of inventorying and applying updates to large numbers of production systems is typically addressed by enterprise system management (ESM) tools - many of which integrate with underlying packaging systems.

FAQ: How can I use pkg(5) to update production systems?

Monday May 04, 2009

Rollback with pkg(5) User Images

Undo Icon Today, a colleague asked about how the Update Center 2 toolkit and the Image Packaging System handles rollback to a previous version of a user image.  He noticed that the Update Tool GUI doesn't seem to have an option to do this.  

Right now, one has to either:

  • Uninstall the package(s) that you don't want and reinstall the older version.  The older version is available in the GUI by using the View|Show All Versions menu choice.  From the command line, this can be done by specifying  some-package@previous.version on the install command after first uninstalling the current version. While not atomic, this has the same effect as a "patchrm" in SVR4.
  • If using a ZFS file system, run "zfs snapshot" on your image directory before doing the update.  If you don't like the update, you can rollback to the snapshot.
  • Create a backup of the image directory before doing the update.  Restore from the backup if you don't like the update.

A few notes:

  1. Currently there is no notion of an "update" defined in Update Center, i.e., all we have are installs of new versions of packages.  So if you install new versions of 3 packages yesterday and 2 packages today, there isn't any way to identify that as 2 "updates".  Rather, it is merely 5 installs of new package versions.  The operational history does record the operations that are done, so one would be able to figure out from the history that two "update" operations were done.  But there isn't anything in the GUI or CLI that takes advantage of this.
  2. From the CLI, installing an older version of a package doesn't downgrade the package.  So if you have version 2 of a package installed and you do "pkg install some-package@1", it will output a message saying that "No updates are available for the image". Technically, there isn't any reason why IPS can't calculate what it takes to go backward directly, although there could be some trickiness relative to dependency calculations, but so far there hasn't been emphasis on that.  This is primarily because the OpenSolaris team depends on ZFS for rollback of operating system updates.  So rollbacks of user image updates has not received as much attention. Eventually, I would like to see the CLI support something like a "pkg rollback" operation that would take a list of older package versions, and the result would be that the image software would be restored to that previous version of the packages.
  3. Uninstalling a package also requires uninstalling the packages that depend on it. So accomplishing the first option can be difficult when dependencies are involved. If there were a "pkg rollback" command, it could take care of this by possibly rolling back updates to the packages that depend on the one being rolled back.
  4. The second option requires root access, which generally is not required for user images. 
  5. When a rollback is done with the second and third option, all other history in that image not related to the update is also lost.  For example, with a database in the image, any updates that were made between the update and the rollback would be lost. Generally, when people think of patch backout with SVR4 packages, they assume that data changes made while the patch was there are not lost.  This actually presents problems sometimes if the patch allows new data structures to be introduced or causes data reformatting, and then the old code has to deal with the new data (and sometimes it can't).  These rollbacks are fool proof because they literally get you back to where you were, but that might not be where you want to be.

Tuesday Feb 24, 2009

Removing a package from a pkg(5) repository

Since several people recently asked about how to remove a package from a pkg(5) repository, we describe the manual steps in this blog entry.
[Read More]

Sunday Feb 01, 2009

Update Center 2 Overview Screencast

This 15 minute screencast gives an overview of Update Center and shows the pkg(1) CLI and Update Tool from the Update Center 2.1 release.

Tuesday Nov 25, 2008

Identifying security updates in your packages

A new Packaging Best Practice has been added which documents how to identify packages which contain relevant security changes such that the Update Center tools can highlight security related changes to the package consumers.

For more details see Packaging Best Practices - Identifying Security Changes in Packages.

Sunday Nov 23, 2008

pkg(5) Introduction Presentation

A new presentation that provides an introduction to the Image Package System is now available.  This presentation looks at pkg(5) from the perspective of using it for the distribution and management of middleware. 

Topics include:pkg(5)

  • Overview of Image Package System
  • Key Concepts
  • Image Content
  • Command Line Interface
  • Repository Lifecycle, Setup and Update
  • Troubleshooting
  • Entitlement
  • Project Status

Thursday Nov 20, 2008

Desktop Notifier Start Up

We recently added some new mechanisms to manage the start up of the notifier.  The changes will be available in version 2.1 starting with build 18.   For more details visit Chris Kasso's blog.

Tuesday Oct 07, 2008

Managing the Desktop Notifier

For some background about how the Update Center's desktop notifier is registered and managed on a system check out Chris' blog entry on the subject. 

Wednesday Oct 01, 2008

New Site for Update Center and pkg(5) Layered Distros

In addition to preparing the binaries of the first production quality release of the pkg(5) multi-platform toolkit, the Update Center 2 development team has been getting the developer-oriented documentation in state where it's easier for people to access.  A culmination of this effort is a new developer-oriented web site:

This site is oriented toward those projects and developers that are a) interested in learning more about how the pkg(5) system can help them add value to their multi-platform software distributions and b) actually taking advantage of the toolkit.

Although developers delivering pkg(5) format packages for OpenSolaris might also find useful information on this site, the site recommends that they check out first.

Why a New Dedicated Site?

Previously, our Update Center 2 development project published all of its toolkit documentation via the development project's wiki on  That approach was awkward because content associated with the development of the toolkit was intermingled with content geared toward users of the toolkit.  We decided the best way to address this issue was to establish a dedicated site for users of the toolkit.

We're also asked about why we didn't depend on the pkg(5) content hosted on   The short answer is that we wanted provide pkg(5) information in the multi-platform context rather than require users to sort through which pkg(5) information on applies to them vs making packages available specifically for OpenSolaris.

Developers vs End Users

Although end users may find the information on this site to be useful, we encourage binary distribution providers that embed pkg(5) technology to provide end user-oriented pkg(5) documentation.  Part of our development project's mission is to provide such documentation modules as part of the toolkit. 

Hosting of the Site

We chose to host the content on for a variety of reasons. First, we wanted to use a full featured, easy to access wiki service to deliver and maintain the content.  Second, we wanted to carve out our own space that is dedicated to a specific topic and community: multi-platform use of pkg(5).  Neither of these requirements were easily met by reusing one of the popular development-oriented open source project hosting sites.

News for projects adopting the multi-platform port of the Image Packaging System - aka pkg(5)


« July 2016