OpenSolaris

You are not signed in. Sign in or register.

OpenSolaris Project: Image Packaging System

View the leaders for this project
Project Observers

Endorsing communities

HPC Developer
Installation and Packaging
Software Porters

pkg(5) logo pkg(5): image packaging system

pkg(5), the image packaging system, is an attempt to design and implement a software delivery system with interaction with a network repository as its primary design goal. Other key ideas are: safe execution for zones and other installation contexts, use of ZFS for efficiency and rollback, preventing the introduction of incorrect or incomplete packages, and efficient use of bandwidth.

The pkg(5) project is sponsored by the Install CG.

NOTE: The image packaging system is under development. Changes to interfaces may occur as part of the architectural review process, as shortcomings are identified, and as new features are introduced. Questions about planned or possible change should be asked on pkg-discuss.

Filing bugs

We would really like to eliminate any bug you encounter—so every bug report we receive is valued. Should you run into a bug, please check the Bugzilla database to make sure it hasn't already been reported. Feel free to file bugs there or report them on the discussion list. If using Bugzilla to file issues, you can file directly into appropriate classification and product:

  • For bugs involving any of the commands or the packagemanager graphical interface, use the "Development" classification and the "pkg" product.
  • For bugs involving package contents—like missing dependencies or incorrect metadata text, or a bad packagename, use the "Distribution" classification, the "opensolaris" product, and the "packaging" component.

Getting more involved

Our discussion alias is pkg-discuss@opensolaris.org. Ideas, issues, patches are all welcome; commit notifications add to the open development aura. The TODO list provides some potential areas to start; short essays and notes on various topics—such as content filtering, handling of ELF dependencies, and some initial RFEs—can be found in the doc/ directory of the repository. More specific hints can be found in the developer information page.

Since 31 Oct, we've been running repository servers at pkg.opensolaris.org. By default, the 2008.11 release is configured to pull packages from the release/ repository. Development builds of the next OpenSolaris release are available at the dev/ repository. If you want to experiment, you can use the image-create subcommand of pkg(1) to create your own image that subscribes to the dev/ repository:

$ pkg image-create -F -a opensolaris.org=http://pkg.opensolaris.org/dev/ /path/to/image

(If you're interested in developing pkg(5)-style packages, the best step at present is to join the discussion. As support for multiple package authors is fleshed out, we'll set up additional test publication spaces or repositories.)

The source code is stored in a Mercurial repository here at opensolaris.org. You can get a copy of the source tree via

$ hg clone ssh://anon@hg.opensolaris.org/hg/pkg/gate
If you just want to browse the source, that's available via the opensolaris.org source cross-reference:
http://src.opensolaris.org/source/xref/pkg/gate/
Please get a contributor agreement in place before submitting anything but the most trivial of patches. At present, pkg(5) is being implemented in Python; we're developing in an ON-sympathetic coding style.

Documentation and architecture process

See Documentation for preliminary user documentation. Also, you can read the draft manual pages directly out of the source code repository:

The one pager, which begins the architectural review, was recently published; the image packaging system will be tracked as case 2008/190.

At present, we expect a number of format, interface, and operational flag days to come. Only experimental deployments using the image packaging system should be considered.

Background reading

The project team has been explaining some of the ingoing assumptions behind the project in a series of blog posts:

News

Client API Improvements | Shawn Walker | 03/10/2009

The Python pkg.client.api for pkg(5) has been enhanced to allow clients to fully manage and retrieve publisher, repository, mirror, and origin information. Read the Integration Notes page or article linked above to find out more.

Blogs

sch - 2009.06: A netbook for meetings

Apr 21, 5:20 PM

It's been a busy few months, but things are clearing up now. The past few weeks, I've been using an Acer Aspire One for coverage when my trusty Toshiba r500 is recharging. It's my computer for ...

migi - Broken OpenSolaris? NEVER!

Apr 9, 3:11 AM

If for some reason your OpenSolaris installation is broken or you want to have an exact system on many computers here is the recipe, which I have successfully tested yesterday! What you will need? - ...

migi - "Simplicity is the ultimate sophistication."

Mar 31, 9:14 AM

Mattman wrote very nice entry How To : Build JDS (GNOME) on OpenSolaris 2008.11 , but why would I want to type so many CLI commands, if I can simply click on the p5i file and install all necessary ...

migi - What can you expect from Package Manger for 2009.06

Mar 26, 9:06 AM

For the past few months Package Manager was under heavy development. Even if you will not notice many of the changes and bug fixes trust me - it's faster, more stable and way more polished then it ...

Shawn Walker - What's in a name? That which we call an Authority...

Mar 10, 4:37 PM

The pkg(5) team is always looking for ways to improve the user experience for those using the pkg(5) system and to promote a better understanding of it.  One of the ways to do that is to ensure that ...