== [[image: pkg-block-logo.png||alt="pkg(5) logo"]] pkg(5): image packaging system ==
pkg(5), the image packaging system (IPS), 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.
=== Reporting 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 report them on the discussion list.
=== Getting more involved ===
Our discussion alias is ''pkg-discuss AT ips.java.net''. Ideas, issues, patches are all welcome; commit notifications add to the open development aura. The [http://java.net/projects/ips/sources/pkg-gate/content/doc/TODO TODO list] provides some potential areas to start; short essays and notes on various topics—such as [http://java.net/projects/ips/sources/pkg-gate/content/doc/filter.txt content filtering], [http://java.net/projects/ips/sources/pkg-gate/content/doc/elf-jar-handling.txt handling of ELF dependencies], and some [http://java.net/projects/ips/sources/pkg-gate/content/doc/rfes.tx initial RFEs]—can be found in the ''doc/'' directory of the repository. More specific hints can be found in the [[Developer Information|Developer Information Page]]. If you want to experiment, you can use the image-create subcommand of pkg(1) to create your own image that subscribes to the release/ repository:
<pre name="sh">$ pkg image-create -F -p http://pkg.oracle.com/solaris/release/ /path/to/image</pre>
(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 java.net. You can get a copy of the source tree via:
<pre name="sh">$ hg clone https://hg.java.net/hg/ips~pkg-gate</pre>
If you would like to browse the source directly, it's available via the java.net source browser:
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 ===
Current official documentation is available [http://docs.oracle.com/cd/E26502_01/html/E28984/ghqhm.html here]. Also, you can read the draft manual pages directly out of the source code repository:
* [http://java.net/projects/ips/sources/pkg-gate/content/src/man/pkg.1 pkg(1)], the retrieval and installation client,
* [http://java.net/projects/ips/sources/pkg-gate/content/src/man/pkgsend.1 pkgsend(1)], the publication client,
* [http://java.net/projects/ips/sources/pkg-gate/content/src/man/pkgrecv.1 pkgrecv(1)], the raw contents retrieval utility,
* [http://java.net/projects/ips/sources/pkg-gate/content/src/man/pkg.depotd.1m pkg.depotd(1M)], the depot server, and
* [http://java.net/projects/ips/sources/pkg-gate/content/src/man/pkg.5 pkg(5)], the system overview.
The [http://java.net/projects/ips/sources/pkg-gate/content/src/pkg/gate/doc/one-pager-main.txt one pager], which begins the architectural review, was recently published; the image packaging system will be tracked as case 2008/190.
=== Background reading ===
The project team has been explaining some of the ingoing assumptions behind the project in a series of blog posts:
* [http://blogs.oracle.com/barts/ Bart] on [http://blogs.oracle.com/barts/entry/rethinking_patching ''Rethinking patching''], and
* [http://blogs.oracle.com/sch/ ''Stephen''] on [http://blogs.oracle.com/sch/entry/observations_on_packaging ''Observations on packaging''], [http://blogs.oracle.com/sch/entry/pkg_1_a_no_scripting ''pkg(5): a no scripting zone''], [http://blogs.oracle.com/sch/entry/pkg_leaving_the_build_system ''pkg(5): leaving the build system `out'''], and [http://blogs.oracle.com/sch/entry/pkg_no_more_installer_magic ''pkg(5): no more installer magic''].