README.pkg revision fe57a5b1399f3b7de79bf9944ca334c9c61de7dd
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#
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# Copyright 2010 Sun Microsystems, Inc. All rights reserved.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza# Use is subject to license terms.
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
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazausr/src/pkg/ contains the definitions and rules needed to build
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaa set of IPS repositories which contain the deliverables from an
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaON 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
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThe build rules create two repositories. These are both built
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazafor DEBUG and non-DEBUG, and are thus available at
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza $CODEMGR_WS/packages/$MACH/nightly[-nd]/repo.(extra|redist)
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza repo.redist
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Contains the bulk of ON, and is what is delivered to the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza main OpenSolaris 'dev' and 'release' repositories. All
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza components delivered there must be redistributable.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza repo.extra
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Is only built for Closed builds, and contains
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza non-redistributable (without a proper legal agreement) pieces
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza which may or may not be suitable for inclusion in the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg.sun.com/opensolaris/extra repository, including the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza SUNWcryptoint bits necessary for working crypto in a Closed
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza build. Do not distribute any of the bits in repo.extra
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza without prior agreement from the appropriate lawyers.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaBuilding Packages
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza-----------------
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThe -p option to nightly will build the IPS repositories.
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 CLOSED_IS_PRESENT
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza If CLOSED_IS_PRESENT is set to "yes," repo.extra will be built.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza ON_CRYPTO_BINS or CODESIGN_USER
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza If ON_CRYPTO_BINS or CODESIGN_USER is set in your build env,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza no packages will depend on the internal crypto certificates.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza If neither is set, your bits depend on the internal crypto
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza certificates being available and packages will depend on
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza pkg:/driver/crypto/dprov, which is only available in the
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza on-extra repository.
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
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaTo test the generated repositories, 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
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazaserve the generated repositories 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
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
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza architecture are stripped. It also ensures non-redistributable
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza packages aren't included in an open-only build.
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
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza org.opensolaris.redist, 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
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaTo remove a package, you must mark it as obsolete. The obsoleted
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazapackage manifest 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 remove SUNWwbsd in build 133 you'd change the pkg.fmri
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza line to read
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=pkg.fmri value=pkg:/SUNWwbsd@0.5.11,5.11-0.133
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=pkg.obsolete value=true
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza The architectures and variants you're obsoleting. These
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza should just be copied from your old package, as you
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza must obsolete a package on all architectures and
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza variants simultaneously.
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=variant.opensolaris.zone
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza Every package must specify whether it can be installed in
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza global zones, non-global zones, or both.
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
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane PrazaThe following actions are uncommon but specific to ON.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza set name=org.opensolaris.redist
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza This may be set to nonredist or internal. If a package
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza is redistributable, do not create this action. "internal"
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza packages which are legally not allowed to be distributed
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza at all are strongly discouraged. If you're adding
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza content to a package with this action, you should have
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza modified bindrop.sh, and test open-only builds.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
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.