Child pages
  • Release Publishing with IPS
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Building all the consolidations produces a collection of IPS repositories, all of which might contain packages with different publisher strings (For example the default ONNV publisher is on-nightly).

When you're ready to take all these depots to do an official build, you can use the set-publisher.sh tool from pkg-gate:

# pkg-gate/src/util/publish/set-publisher.sh

Usage: -b <build> -d <scratch_dir> -p <publish_repo> <input_repos>

-b <build>
     e.g. -b 136, to make sure to publish only packages from the
     specified build.  Packages from any other builds contained in the
     repository are simply discarded.  This allows us to ignore
     packages obsoleted in a previous build without requiring that
     the consolidations strip them.

-d <scratch_dir>
     A scratch directory to use for pkgrecv.  If it's not initially
     empty other packages there will be published at publication time.

-p <publish_repo>
     A file: or http: repository path to publish the results.  This
     repository should have already been created with opensolaris.org
     as its publisher.

<input_repos>
     A list of input IPS repositories to pull packages from for
     publishing.

It expects to be run from a directory with a file called set-publisher.transforms inside, which contains the transformation mapping. To change all publishers to openindiana.org, use:

<transform set name=pkg.fmri -> edit value pkg://[^/]+/ pkg://openindiana.org/>

# These are needed until 14870 is fixed.
<transform file depend -> delete pkg.debug.depend.file .*>
<transform file depend -> delete pkg.debug.depend.reason .*>
<transform file depend -> delete pkg.debug.depend.type .*>
<transform file depend -> delete pkg.debug.depend.path .*>
<transform file depend -> delete pkg.debug.depend.severity .*>

It might be necessary to run the tool from the pkg-gate/src/util/publish folder but we haven't tested this yet.

The command below worked for me and pulled in all version of the packages. dev05.openindiana.org:11000 was initially an empty repo. I had to restart pkg.depotd with --rebuild parameter for packages to show up in the repository after doing the publish.

rm -rf /export/home/openindiana/scratch/*; ./set-publisher.sh -b ".*" -d /export/home/openindiana/scratch -p http://dev05.openindiana.org:11000/ http://dev05.openindiana.org:11145/  http://dev05.openindiana.org:10001/  http://dev05.openindiana.org:10003/ http://dev05.openindiana.org:10000/
  • No labels