The Update Center 2 development team is please to announce the availability of build 44 (download) of the Update Center Toolkit. This is a significant biuld in that it brings in a new version of the pkg(5) software from OpenSolaris. It also resolves ? issues from the previous build.
Due to unresolved compilation problems, the Windows and AIX versions of this build are not available. Also, the updates to the Java API for pkg(5) to support the new capabilities in this pkg(5) version have not yet been completed, so the Java API and the bootstrap capability it supports is also not available in this build. Both of these issues are expected to be resolved in the next build.
The updated pkg(5) software is based on OpenSolaris build 129. It includes the following new features and characteristics:
- A new catalog format, version 1, is used within repositories, within images, and to download catalogs from the server to the image. This new format enables more efficient catalog processing by including more information from package manifests into the catalog. It uses the JSON data format to store the data.
- The new catalog format includes the name of the publisher. The pkg(5) software now requires that the publisher(s) within a repository be named using a publisher.prefix property that can be set for a repository using either the pkgsend or pkg.depotd command. The name of the publisher within an image must match the name of the publisher in the repository. The pkg(5) client software now enforces this.
- A variation of the catalog format is also used to store information about packages that are installed into an image, replacing the files that were stored in the state/installed meta-data directory.
- The meta-data areas for storing downloaded files in images and the content files in a repository have been modified to use a more efficient storage method that uses a one-level directory tree rather than a two level hierarchy.
- The software for evaluating a proposed update has been improved to make use of a boolean satisfy-ability problem solver. This resolves several defects in the way that package updates are calculated.
- The pkg(5) software not uses Python 2.6 rather than Python 2.4. A minimized version of Python 2.6 is now included in the UC2 toolkit.
- The list of publishers in an image is now completely ordered rather than having a preferred publisher and several other non-preferred publishers. This order is used for selecting which publisher to use when a package is available in multiple publishers. New options are available in pkg(1) for ordering publishers.
- Publishers can now be made "sticky" or "non-sticky". The previous behavior was sticky. When a package is installed from a non-sticky publisher, updates to the package can come from any other publisher, not just from the publisher from which the package was originally installed.
- Pkg(5) now supports "exclude" dependencies in packages. This type of dependency declares that two packages cannot be installed within an image at the same time.
- The pkg(5) API now includes an interface for canceling a search operation. The updatetool client should be able to use this API in the future.
When the new pkg(5) software is used on an image or a repository, the meta-data is automatically converted to the new format. After this conversion, the older pkg(5) software will no longer work with either an image or a repository. A new image will not be recognized as an image by pkg(5) software from previous builds and previous UC2 Toolkit versions. To deal with this situation, the updatetool, software update, and notification software is being modified to avoid automatically updating an image to the new format. These modifications are still underway, but in build 44, updatetool warns the user when it encounters an older image and gives the user an opportunity to choose whether the image will be updated. This behavior may be changed in future builds.
The new pkg.depotd software requires modifications when operating a repository. Details on these modifications are provided in the draft release notes for 2.4.
There are some significant known regressions and limitations with this build:
- The platform and Java API limitations are described above. (issue 1974 and issue 1858)
- Updatetool does not automatically open the image from the current working directory (issue 1982)
- For the most part, the updatetool software does not yet provide access to new features such as publisher ordering or non-sticky publishers.