Hi,

I've run into an issue where the scripts I'm using to merge the x86 and SPARC versions of slim_source packages into a single repo stopped working if the source repo was created on build 147. It appears to be because the on disk format changed, which means I'm probably merging the wrong way.

The general steps used for the build process are:
- Build slim_source on each architecture. This generates an IPS repo for each. (The repo is created using pkgsend*)
- Zip up the IPS repo for archiving and transport
- Copy the x86.zip and sparc.zip repos to a common area, and unzip them
(The next few steps were based heavily on ON's use of merge.py)
- Use pkg.depotd to start the repos:
47 <http://indiana-build.central:8001/file/b34598f05b64/hudson/merge_repo.ksh#l47> /usr/lib/pkg.depotd -d ${x86_REPO_DIR} --add-content -p ${TMP_PORT_x86} --set-property publisher.prefix=${PUB_PREFIX} > ${LOG_i386} 2>&1 & 48 <http://indiana-build.central:8001/file/b34598f05b64/hudson/merge_repo.ksh#l48> i386_pid=${!} 49 <http://indiana-build.central:8001/file/b34598f05b64/hudson/merge_repo.ksh#l49> /usr/lib/pkg.depotd -d ${SPARC_REPO_DIR} --add-content -p ${TMP_PORT_SPARC} --set-property publisher.prefix=${PUB_PREFIX} > ${LOG_sparc} 2>&1 & 50 <http://indiana-build.central:8001/file/b34598f05b64/hudson/merge_repo.ksh#l50> sparc_pid=${!}

- Use merge.py to pull from the temporary depots and generate blended packages - this is where I varied from ON, as they use "make clobber/merge/publish" I believe.
57 <http://indiana-build.central:8001/file/b34598f05b64/hudson/merge_repo.ksh#l57> ${PKG_GATE}/src/util/publish/merge.py -d ${MERGED_PKG_DIR} -v i386,http://localhost:${TMP_PORT_x86} -v sparc,http://localhost:${TMP_PORT_SPARC} arch

- Using pkgsend*, create a new repo, and publish the blended packages to it
- Using pkg.depotd --add-content --exit-ready, prepare the repo for use (then zip it up to be ready for integration) - Additionally, rsync the content of the new repo with a "long-standing" repo with each nightly build of the packages, and use pkg.depotd --add-content --exit-ready, then restart the SMF service running the repo.

* I'm aware that pkgsend's use as a method for creating repos is deprecated, but haven't had a chance to replace it with pkgrepo yet.

I suspect I could *probably* get around the issue by pointing at $REPO_DIR/publisher/install-nightly instead of $REPO_DIR when pulling down the x86-only / sparc-only packages, but I get the feeling that's not the best way to do it. I also suspect that my usage of pkg.depotd can and should be replaced with some pkgrepo commands. Any tips on what direction I should take to make this work more elegantly with pkg tools would be appreciated!

Thanks,
Keith
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to