ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza#
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# CDDL HEADER START
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza#
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# The contents of this file are subject to the terms of the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# Common Development and Distribution License (the "License").
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# You may not use this file except in compliance with the License.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza#
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# or http://www.opensolaris.org/os/licensing.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# See the License for the specific language governing permissions
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# and limitations under the License.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza#
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# When distributing Covered Code, include this CDDL HEADER in each
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# If applicable, add the following below this CDDL HEADER, with the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# fields enclosed by brackets "[]" replaced with your own identifying
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# information: Portions Copyright [yyyy] [name of copyright owner]
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza#
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# CDDL HEADER END
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza#
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza#
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza#
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaIntroduction
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThis README describes some basics about creating, modifying, and
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazabuilding packages in ON. All package creation in ON is done using
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazatools available to our customers. If terminology in this document
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazais confusing, you may wish to review the pkg(5) manpage.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaPackaging Overview
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza------------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
77c29b8ee88bf82021ff549b17b44e17f2ef7d7bRichard Loweusr/src/pkg/ contains the definitions and rules needed to build an IPS
77c29b8ee88bf82021ff549b17b44e17f2ef7d7bRichard Lowerepository which contain the deliverables from an ON build.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThe manifests directory contains all manifests, and has one file
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaper package. For most packaging changes you only need to add or
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazachange the packaging manifests themselves.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
77c29b8ee88bf82021ff549b17b44e17f2ef7d7bRichard LoweThe build rules create a package repository. Separate DEBUG and
77c29b8ee88bf82021ff549b17b44e17f2ef7d7bRichard Lowenon-DEBUG versions are built, and are available at:
77c29b8ee88bf82021ff549b17b44e17f2ef7d7bRichard Lowe $CODEMGR_WS/packages/$MACH/nightly[-nd]/repo.redist
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaBuilding Packages
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza-----------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
77c29b8ee88bf82021ff549b17b44e17f2ef7d7bRichard LoweThe -p option to nightly will build the IPS repository.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaAlternatively, in usr/src/pkg/Makefile there are make targets for:
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza all
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Process manifests into their final form with unresolved
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza dependencies before publication.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza install
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Publish packages.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza gendeps
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Run `pkgdepend resolve`. See Dependencies section.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza protocmp
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Compare the proto area against package definitions for
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza missing or incorrect files.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pmodes
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Check file and directory modes for best practices.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza check
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Run protocmp and pmodes.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThe build behavior may modified by the following variables:
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza SUPPRESSPKGDEP
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza If SUPPRESSPKGDEP is set to "true" in your environment,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza package dependencies will not be generated. This variable
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza should not be set in normal builds as it will mask product
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza bugs.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza PKGDEBUG
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza If PKGDEBUG is set in your environment, $MAKE will print
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza detailed information about the commands it executes to
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza process and publish packages.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza ONNV_BUILDNUM
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza If ONNV_BUILDNUM is set to an older ON build number,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza your packages will be published at that version instead
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza of the one defined in usr/src/Makefile.buildnum, which
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza is managed by the gatekeepers.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaA set of intermediate build products are placed in
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazausr/src/pkg/packages.$MACH/. These can be useful during development.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza .mog
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza The resulting package manifest after running pkgmogrify(1)
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza on the supplied manifest. See below for details on
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkgmogrify(1) use in ON.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza .dep
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza The resulting manifest after running `pkgdepend generate`
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza on the .mog manifest.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza .res
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza The resulting manifest after running `pkgdepend resolve`
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza on the .dep manifest.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaIncremental Builds
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza------------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza If you want to process a subset of manifests, simply set PKGS on the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza make command line and specify the "all" target. If you want to process
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza them all, simply specify the "all" target.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza % dmake -e PKGS="BRCMbnx BRCMbnxe" all
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza % dmake -e all
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza If you want to publish a subset of packages, simply set PKGS on the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza make command line and specify the "install" target. Overriding PKGS
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza will cause dependency resolution to be limited to PKGS from the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza current build, with a fallback to packages installed on the build
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza system. If you want to publish them all, simply specify the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza "install" target.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza % dmake -e PKGS="BRCMbnx BRCMbnxe" install
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza % dmake -e install
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza You can also use package names, or package names with ".pub"
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza extensions, as build targets. This will cause processing or
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza publication of the specified package(s).
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza The on-disk repository will be initialized when it does not exist,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza or when you run nightly -p. If you build incrementally,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza packages will simply be added to the existing repository.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza To do cross-platform packaging, prefix your target with (for
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza example) "sparc/", as in "dmake sparc/install". Note that we
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza currently pull some license files directly from a built source
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza tree, so if you do this in a workspace that had proto area copied
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza in via nightly -U, then you'll need to set $SRC to point to the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza workspace that was actually built.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaTesting Packages
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza----------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
77c29b8ee88bf82021ff549b17b44e17f2ef7d7bRichard LoweTo test the generated repository, you should use the "onu" tool
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaavailable from /opt/onbld/bin or usr/src/tools/scripts/ to setup and
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaupgrade your system. A manpage is available in /opt/onbld/man
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaor usr/src/tools/scripts/onu.1.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaAlternatively, you can manually start a pkg.depot(1M) server to
77c29b8ee88bf82021ff549b17b44e17f2ef7d7bRichard Loweserve the generated repository to multiple test machines.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Start up a depot on your build machine.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza cd $CODEMGR_WS/packages/$MACH/nightly[-nd]
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza /usr/lib/pkg.depotd -d repo.redist -p <port> &
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Make SURE you choose an unused port and the depot
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza starts successfully.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza The depot can be started across NFS as well if you
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza have a fast pipe.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Configure your test system.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg set-publisher -P -g http://<your server host>:<port> on-nightly
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg set-publisher --non-sticky opensolaris.org
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg uninstall entire
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg image-update your test system.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg image-update will upgrade all packages on your test system
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaAlways make sure your bits are installed with image-update.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Check your versions.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg info osnet-incorporation
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Multiple packages should be updated.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza If you did a full build, all ON packages will be updated.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza When image-update tells you that only one or two packages has
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza been updated, you likely did not get the updates you expected.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThere are various tactics for troubleshooting a failed upgrade.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Make sure entire is uninstalled.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg install -nv osnet-incorporation@<your version>
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Ask IPS to explicitly check if ON can be installed, and
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza if it can't, tell you why not.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Obsolete and renamed packages can cause trouble.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg search -l ::pkg.renamed:true
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg search -l ::pkg.obsolete:true
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaMaking Packaging Changes
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza------------------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaPackage definitions are in usr/src/pkg/manifests/, and have one
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazafile per package, including for multi-architecture packages. For
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazamost packaging changes you only need to add or change the packaging
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazamanifests themselves. No packaging metadata may be kept outside of the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazamanifests. If you find yourself needing to modify usr/src/pkg/Makefile,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazayou're almost certainly doing something wrong.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaRemember that the "check" target is available to check many of
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazayour packaging changes.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaWe run pkgmogrify(1) over the manifests before publication. This
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaallows us to apply a set of macros and package transformations in
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaorder to make the manifests themselves easier to maintain.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaWe supply a set of commonly-used macros for use in package manifests.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThese are the PKGMOG_DEFINES in usr/src/pkg/Makefile.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza $(i386_ONLY)
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza $(sparc_ONLY)
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza $(ARCH)
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza $(ARCH32)
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza $(ARCH64)
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza $(PKGVERS), which is set to
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza $(PKGVERS_COMPONENT),$(PKGVERS_BUILTON)-0.$(PKGVERS_BRANCH)
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazapkgmogrify(1) also allows us to include a set of default transformations.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThe definitions for these transforms are in usr/src/pkg/transforms/. An
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaoverview of their use is supplied here, but for a full accounting, please
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaread pkmogrify(1) and the files themselves.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza defaults
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza This transform is applied to all manifests. It specifies
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza a set of sensible default permissions, a set of
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza directory locations for which the reboot-needed actuator
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza is always applied to files, and some other basic defaults.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza publish
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza This transform is applied to all manifests. It ensures
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza that manifest lines which don't apply to the current
77c29b8ee88bf82021ff549b17b44e17f2ef7d7bRichard Lowe architecture are stripped.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza restart_fmri
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza This transform is applied to all manifests. It modifies
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza all package manifest lines for SMF manifests in standard
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza locations to include an actuator which runs manifest-import
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza on installation/update/removal, as well as some others. If
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza you're adding a new class of file that would benefit from
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza a restart or refresh of a specific SMF service, please add
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza it here.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza extract_metadata
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza This transform is applied to all manifests. It deals with
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza manipulations required for packaging metadata like
77c29b8ee88bf82021ff549b17b44e17f2ef7d7bRichard Lowe pkg.renamed, and pkg.obsolete.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza hollow_zone_pkg
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza This transform is available for explicit inclusion in
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza some manifests. It ensures that all contents of the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza package are not installed within a non-global zone, but the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza package and its metadata are available in order to satisfy
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza packaging dependencies.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazapkgmogrify(1) also allows us to use comments and continuation lines
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazain our manifests.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaZones and Packages
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza------------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazapkg(5) uses variants to implement zones. If a package is marked
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazawith both global and non-global zone variants, the package contents will
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazabe installed in both global and non-global by default.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=variant.opensolaris.zone value=global value=nonglobal
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaSpecific actions within a package can be tagged as applying to only
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazathe global zone or only the non-global zones.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThe hollow_zone_pkg transform described above is also available to
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazasimplify a common packaging scenario.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaDependencies
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaPackage dependencies are automatically calculated during build time
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazausing pkgdepend(1). After you've done a build, you can verify your
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazadependencies in the <package>.res file described above. If the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazafile is missing a dependency that you believe could be auto-detected,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaplease file a bug against pkgdepend(1).
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaDependencies can be added manually using the "depend" action. Please
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaadd a comment describing why the dependency is required.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaMoving Content Between Packages and Removing Content
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza----------------------------------------------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazapkg(5) tracks when content is removed from packages, and automatically
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaremoves it.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaIf you need to move content between packages, there are two primary
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazathings to do.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza "preserve" files must be marked with original_name.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza The first time a "preserve" file moves between packages,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza you must set original_name=<original package>:<file>
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza in that file's action. Subsequent moves do not require
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza modification.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Consider adding a dependency on the new package.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza The only way a system will end up with a new package
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza after upgrade is if an existing package depends on it.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaRenaming a Package
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza------------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaTo rename a package, leave the old package manifest in place, but
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaempty it of all delivered content. The old package should include:
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=pkg.fmri with the version set explicitly to the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza build you're integrating into. For example, if you wanted
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza to rename SUNWrmodu in build 133 you'd change the pkg.fmri
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza line to read
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=pkg.fmri value=pkg:/SUNWrmodu@0.5.11,5.11-0.133
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=pkg.renamed value=true
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza The architectures and variants you're renaming. These
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza should just be copied from your old package, as you
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza must rename a package on all architectures and
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza variants simultaneously.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza A dependency on the new package.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaIf there were "preserve" files in the package you're renaming, make
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazasure to create original_name settings in the new package.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
fe57a5b1399f3b7de79bf9944ca334c9c61de7ddMark J. NelsonIf there was a org.opensolaris.noincorp property in the package being
fe57a5b1399f3b7de79bf9944ca334c9c61de7ddMark J. Nelsonrenamed, make sure you keep it in both the original and the renamed
fe57a5b1399f3b7de79bf9944ca334c9c61de7ddMark J. Nelsonpackages.
fe57a5b1399f3b7de79bf9944ca334c9c61de7ddMark J. Nelson
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaEOFs and Removals
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza-----------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaTo remove files, directories, drivers, or anything else within a package,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazasimply stop delivering them in the package. IPS will manage the removal
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaof no longer delivered content.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaPackage removals have impact on the rest of the system. Before marking
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaa package as obsolete, search in the OpenSolaris development
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazarepository (http://pkg.opensolaris.org/dev or http://ipkg.sfbay/dev)
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazato find out if any other packages depend on the software you intend
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazato EOF. If any packages do, you need to coordinate with those
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaconsolidations.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThe "slim_install" package may depend on ON packages. If it does,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazayou must send a FLAG DAY message for ON users and PIT who test
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazainstall. You must also file an installation bug to get that package
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaupdated in the same build or earlier than you intend to integrate.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaYou should also test install yourself. You can do this by replacing
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazathe "slim_install" in your Distro Constructor manifest with the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaexplicit list of packages to install.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan PriceTo remove a package, you must mark it as obsolete. You must *also* mark
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Priceas obsolete any packages which are renamed ancestors of this package, and
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Priceremove their rename dependencies. Here is what you must do.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan PriceTo find rename ancestors, select all of the manifests which are renames,
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Pricethen look for the one which was renamed to the package you care about.
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan PriceFor example, to find rename ancestors of 'system/zones', do the following:
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price $ cd usr/src/pkg/manifests
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price $ mypkgname=system/zones
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price $ grep -l "fmri=pkg:/$mypkgname@" `grep -l pkg.renamed *.mf` /dev/null
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price SUNWzone.mf
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan PriceMake sure to check that the package has not undergone multiple renames!
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price $ mypkgname=SUNWzone
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price $ grep -l "fmri=pkg:/$mypkgname@" `grep -l pkg.renamed *.mf` /dev/null
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price $
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan PriceOnce you have the renamed ancestor list, for *each* of the packages (the
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Pricenewly obsolete package, and its renamed ancestors), edit the package as
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Pricefollows:
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price Update 'set name=pkg.fmri' with the version set explicitly to the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza build you're integrating into. For example, if you wanted
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza to remove SUNWwbsd in build 133 you'd change the pkg.fmri
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price line to read:
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price 'set name=pkg.fmri value=pkg:/SUNWwbsd@0.5.11,5.11-0.133'
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price Add 'set name=pkg.obsolete value=true'.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price Maintain the architecture and variant declarations in the
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price package you are obsoleting. Note that you must obsolete a
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price package on all architectures and variants simultaneously.
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price Delete everything else.
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price If the package is a renamed ancestor, leave a comment behind as
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price follows:
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price # Was renamed to <other-pkg-name>, both now obsolete.
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan PriceHere is a complete example. SUNWfoobar was a package which was renamed
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Priceto system/foobar in build 140, and then later obsoleted in build 150.
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan PriceNote that in all cases the package FMRI is updated to the obsoletion
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Pricebuild, 150.
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price SUNWfoobar.mf:
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price # Was renamed to system/foobar, both now obsolete.
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price set name=pkg.fmri value=pkg:/SUNWfoobar@0.5.11,5.11-0.150
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price set name=pkg.obsolete value=true
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price set name=variant.arch value=$(ARCH)
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price system-foobar.mf:
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price set name=pkg.fmri value=pkg:/system/foobar@0.5.11,5.11-0.150
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price set name=pkg.obsolete value=true
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price set name=variant.arch value=$(ARCH)
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaCreating a Package
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza------------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThe easiest thing is to copy a package similar to the one you're
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazatrying to create. Note that packages are no longer split on the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza/usr and / boundary.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThe following actions are required for all packages in ON.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=pkg.fmri
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Every package must have an FMRI. That is the package's
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza name.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=pkg.summary
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Every package must have a short summary of its purpose.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=pkg.description
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Every package must have a one-sentence description of
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza its purpose.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=variant.arch
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Every package must specify which architectures it delivers.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=info.classification
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Every package must specify a category for the packaging GUI.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza You must use an existing category, and may not invent new ones.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Existing categories and their subcategories are listed
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza in /usr/share/package-manager/data/opensolaris.org.sections.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza license
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza All packages must specify a set of license actions. If
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza you're adding items here that are not already included in
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza usr/src/pkg/license_files, then you will also need to modify
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza usr/src/tools/opensolaris/license-list.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan PriceYou don't need to set the following. They're taken care of for all OS/Net
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Pricepackages in the transforms/common_actions file.
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price set name=variant.opensolaris.zone
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price Every package must specify whether it can be installed in
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price global zones, non-global zones, or both. All ON packages are
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price delivered in both global and non-global zones.
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price set name=org.opensolaris.consolidation value=osnet
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price All packages from OS/Net come from OS/Net...
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaDrivers and Packages
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza--------------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaScripting is no longer required to deal with addition or removal of
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazadrivers in ON. A "driver" action should be specified for each driver,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaand IPS will handle updates to all the driver files.