Greetings,
As of changeset 2028 / b2c674e6ee28ccfcdd32664527100f3e5d29305a in the
pkg(5) gate, the on-disk format for pkg(5) package repositories has been
formalised. (See doc/on-disk-format.txt for format details.)
============================================================
What changed?
============================================================
The repository format has been altered for what will hopefully be the
last time. The new repository format allows the storage of packages
from multiple publishers and does so in a way that is intended to permit
easy composition and decomposition of package data.
The search indexing functionality provided by the depot server has been
made more robust and will now automatically detect when search data
becomes available.
Publication tools no longer automatically build search indexes during
publication.
The pkgrepo(1) 'set-property' and 'property' subcommands have been
renamed to 'set' and 'get' respectively.
The pkgrepo(1) 'publisher' subcommand has been renamed to 'info'.
pkgrepo(1)'s functionality has been greatly expanded to provide the
ability to manage both filesystem-based repositories and those served by
pkg.depotd(1m) over the network. For more information about these new
operations and which ones support network-based access, see pkgrepo(1).
The '--no-index' option for pkgsend(1) subcommands is now ignored as
search indexes are never built automatically during publication.
============================================================
How could this impact me?
============================================================
Because repositories are created in the new format (by default), older
versions of pkg.depotd(1m), the publication tools, and clients such as
pkg(1) *WILL NOT BE ABLE TO UNDERSTAND THE NEW REPOSITORY FORMAT*.
For example, the following error message may be seen when attempting to
access or use a repository in this new format with an older version of a
client such as pkg(1):
file protocol error: code: 22 reason: The path '/my/repo' does not
contain a valid package repository.
Repository URL: 'file:/my/repo'.
If there is a need to create a repository in a format compatible with
older versions of pkg(5), the new --version option of the pkgrepo(1)
create subcommand can be used. For example:
$ pkgrepo create --version=3 /my/repo
See pkgrepo(1) for more information about this new option.
The publication tools in pkg(5) (such as pkgsend(1) and pkgrecv(1)) will
no longer automatically generate search indexes during publication. If
search functionality is desired, you must either execute the 'pkgrepo
refresh' command for the target repository or start a pkg.depotd server
pointed at the repository in read/write mode.
The subcommand names and options for pkgrepo have changed extensively,
please view the man page for updated syntax. Since this command was
only introduced one build ago, there is no transition period for these
changes.
The depot server process will no longer fork itself to perform indexing
or other operations; this may increase the amount of memory used. If
this is a concern, consider using pkgrepo(1) to perform indexing or
other administrative operations.
============================================================
Changeset Details
============================================================
The following RFEs or defects were resolved as part of the changes
discussed above (see defect.opensolaris.org for details):
16744 repository multi-publisher on-disk format should be formalized
and implemented
166 repository class doesn't set directory mode when creating
directories
684 read-only depots should look for changes to files
2086 repository class should validate that a repository is really a
repository
2671 Indexing should recover from partial success indexing
7425 depot started not readonly but without fork-allowed (or on
non-posix system) won't ever serve search
7357 depots don't discover when search becomes available via
external means
8725 versioning information for depot and repository metadata needed
12517 interrupting indexing can cause search failure
14636 publisher alias isn't validated
15318 pkg.search_errors EmptyMainDictLine references unbound variable
15670 test suite needs to setup client info/error logger handlers
15807 depot should fail with proper error message if repo structure
is not right
16558 repository class should load in-flight transactions on demand
16583 pkgrepo provides too much management
16646 pkgsend close --no-catalog option ignored
16720 pkgsend crashes with PartialIndexingException
============================================================
Thanks
============================================================
These changes would not have been possible without the patience,
insight, and efforts of the pkg(5) team, and individuals such as Rich
Lowe and others. Thanks to all who contributed.
Cheers,
-Shawn
_______________________________________________
install-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/install-discuss