2573N/A.. The contents of this file are subject to the terms of the
2573N/A Common Development and Distribution License (the "License").
2573N/A You may not use this file except in compliance with the License.
2573N/A See the License for the specific language governing permissions
2573N/A and limitations under the License.
2573N/A.. When distributing Covered Code, include this CDDL HEADER in each
2573N/A If applicable, add the following below this CDDL HEADER, with the
2573N/A fields enclosed by brackets "[]" replaced with your own identifying
2573N/A information: Portions Copyright [yyyy] [name of copyright owner]
2573N/A.. Copyright (c) 2011, Oracle
and/or its affiliates. All rights reserved.
2585N/AHow IPS Features Are Used when Packaging the Oracle Solaris OS
2585N/A..............................................................
2585N/AThis chapter describes how Oracle uses IPS to package Oracle Solaris, and how
2585N/Athe various dependency types are used to define working package sets for the OS.
2585N/AWe include this chapter to give another concrete example of how IPS can be used
2585N/Ato manage a complex set of software, and talk about some of the IPS features
2585N/AIn *Chapter 3* we discussed the ``
pkg.fmri`` attribute, and talked about the
2585N/Adifferent components of the version field, describing how the version field can
2585N/Abe used to support different models of software development.
2585N/AThis section explains how Oracle Solaris uses the version field, and is provided
2585N/Ato give an insight into the reasons why a fine-grained versioning scheme can be
2585N/Auseful. Developers **do not** have to follow the same versioning scheme as
2585N/AThis is how the version field ``0.5.11,5.11-0.175.0.0.0.2.1:20111019T070457Z``
2585N/A The component version. For packages that are parts of Oracle Solaris,
2585N/A this is the upstream version. For example, the Apache Web Server in the
2585N/A has the component version 2.2.20.
2585N/A This is the build version. This is used to define the OS release that
2585N/A this package was built for and should always be 5.11 for packages created
2585N/A This is the branch version. Oracle Solaris uses the following notation
2585N/A for the branch version in this release:
2585N/A * 0: Which Oracle Solaris Update this package is part of
2585N/A * 0: The SRU (suppport repository update) number
2585N/A * 0: The platform number, unused at present, but reserved for future use
2585N/A * 2: The build ID, used to indicate the build or respin
2585N/A This is the timestamp, defined when the package was published.
2585N/AOracle Solaris is delivered by a set of packages, with each group of packages
2585N/Aconstrained by an incorporation.
2585N/AEach incorporation roughly represents the organization that developed each
2585N/Agroup of packages, though there are some cross-incorporation dependencies
2585N/Awithin the packages themselves. The following is a list of the incorporation
2585N/AEach of these incorporations includes:
2585N/A to denote dependencies that are specific to a given architecture
2585N/A * a ``license`` action that ensures that when the incorporation is
2585N/A installed, a license is displayed
2585N/AEach of the packages delivered on the system contains a ``require`` dependency
2585N/Aon one of these incorporations.
2585N/AOracle Solaris also includes a special incorporation called ``entire``.
2585N/AThe ``entire`` incorporation constrains all of the individual incorporations
2585N/Atogether to the same build, by including both ``require`` and ``incorporate``
2585N/Adependencies on each incorporation package, effectively defining a
2585N/A*software surface*, such that all packages of Oracle Solaris get upgraded as a
2585N/Asingle group, or not at all.
2585N/Awhich were discussed in *Chapter 6*.
2585N/Aenabling the administrator to allow certain packages to float free from the
2585N/Aconstraints of the incorporation package.
2585N/ANotably, the ``entire`` package also contains version-lock facets, allowing
2585N/Aspecific incorporations to be removed. However, this can result in a system
2585N/Awhich is not covered by support, and those packages should only be unlocked
2585N/Aon advice from Oracle support personnel.
2585N/AOracle Solaris defines several *group packages* which contain a series
2585N/Aof ``group`` dependencies (discussed in *Chapter 6*) enabling convenient
2585N/Ainstallation of common sets of packages.
2585N/AThe following is a list of the group packages in Oracle Solaris:
2585N/AOne group package in particular is interesting, ``solaris-small-server``, as
2585N/Ait is used in the default AI manifest
2573N/AThe following attributes are not necessary for correct package installation,
2573N/Abut having a shared convention lowers confusion between publishers and
2585N/A See *Chapter 3* under "Set actions", and *Appendix A*.
2573N/A A list of additional terms that should cause this package to be
2573N/A A human readable string describing the entity providing the
2573N/A package. For an individual, this string is expected to be their
2573N/A A URL associated with the entity providing the package.
2573N/A A human readable string describing the entity that creates the
2573N/A software. For an individual, this string is expected to be
2573N/A their name, or name and email.
2573N/A A URL associated with the entity that creates the
2573N/A software delivered within the package.
2573N/A A URL to the source code bundle, if appropriate, for the package.
2573N/A A URL to the source code repository, if appropriate, for the
2573N/A A changeset ID for the version of the source code contained in
2573N/A One or more case identifiers (
e.g., PSARC/2008/190) associated with
2585N/A the ARC case (Architecture Review Committee) or cases associated with the
2585N/A component delivered by the package.
2585N/A One or more FMRIs representing SMF services delivered by this
2585N/A package. These attributes are automatically generated by |pkgdepend|
2585N/A for packages containing SMF service manifests.
2585N/AOrganization Specific Attributes
2573N/A~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2585N/A Organizations wanting to provide a package with additional metadata
2573N/A or to amend an existing package's metadata (in a repository that
2573N/A they have control over) must use an organization-specific prefix.
2573N/A For example, a service organization might introduce
2573N/A for a package and its contents.