pkg/Makefile.buildnum
changeset 1189 f3178ba616ba
child 1219 c56d74aaef4d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkg/Makefile.buildnum	Mon Aug 15 14:36:26 2011 -0700
@@ -0,0 +1,115 @@
+#
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+
+#
+# This file has no user serviceable parts.
+#
+# If you need to override any value, do not edit it here.  Instead,
+# set the values in your build environment.  If you do this, it must
+# be an integer, and your choice will have ramifications on whether or
+# not the package repositories you build will be upgradable.
+#
+
+#
+# Package Version Information
+#
+# The package version is described in detail within the pkg(5) man page.
+# It is made of four components. The values within this file set the
+# third component, the branch version, which resides after the dash.
+# 
+# This component needs to accommodate the following:
+#
+# o uniquely identifying individual builds to support zone
+#   install/update
+#
+# o for the continued movement forwards when Solaris updates,
+#   bug fixes and other requirements are delivered.
+#
+# The package branch version scheme is:
+#
+#       trunk_id.update.SRU.platform.buildid.nightlyid
+#
+# where
+#       trunk_id : build number for tip development gate, with leading 0
+#       update   : 0 for FCS, 1 for update 1, etc.
+#       SRU      : SRU (support repository update) number for this update
+#       platform : reserved for future use.
+#       buildid  : the build number of the last non-zero element from above
+#       nightlyid: nightly build identifier
+#
+# This scheme is used below.
+#
+
+#
+# Generate the trunk id of the packages from the tag in the gate.
+# In X the Nevada builds are tagged with nv_XXX where XXX is the
+# build/trunk number.
+#
+# When the next development train is started this pattern will need to be
+# changed in order to match the tag used there.
+#
+TRUNKID :sh = hg parent --template '{latesttag}\n' | \
+        perl -l -n -e 'if ($_ =~ m/^nv_(\d+)/) {print $1} else {exit 1}'
+# If you get mksh: Fatal error from the above, then you have an unexpected
+# tag other than nv_XXX in your hg repo.   You can run make TRUNKID=123 to
+# override with a different build id until you fix your repo or this regexp.
+
+#
+# The Solaris Update number. This will be set by the gatekeepers.
+# The value must match the update number of the release.
+#
+UPDATENUM= 0
+
+#
+# Support Respository Update number. This is here to reserve space within the
+# version string. Typically it should not be set unless all the packages
+# are being delivered within an SRU.
+#
+SRUNUM= 0
+
+#
+# Platform number. This is here to reserve space within the version
+# string. It should not be set unless there is a specific need to
+# release a platform update while the Solaris Update is being built.
+#
+PLATNUM= 0
+
+#
+# Build Identifier. Used to indicate which build (or respin for
+# the development build) of the Solaris Update is being built. 
+# This is set by the gatekeepers.
+#
+BUILDID= 0
+
+#
+# Each (nightly) build of the code that produces packages needs to
+# be uniquely identified so that packages produced by different
+# builds can't be mixed.  Mixing packages from different builds can
+# easily result in broken global and nonglobal zones.
+#
+# Generate the identifier based upon the changeset id's of the gate.
+#
+# Note: :sh is used for the finding the values because it is evaluated
+# once during the package build.
+#
+NIGHTLYID		:sh = (hg parent --template '{rev}\n')