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

Reply via email to