make_release_packages revision 919
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# 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,
# 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.
#
#
# Create and fill a package staging area for X
#
# This script should be run from the base of the build tree.
# It takes no parameters.
#
# Example:
# ./make_release_packages
#
# To build a subset of packages
# ./make_release_packages packages
# or
# env PACKAGE_LIST="packages" ./make_release_packages
#
# Make sure that we aren't affected by the personal environment of
# whoever is running this script
export LC_NUMERIC=C
# List of official (deliverable) X-window packages for all platforms
SUNWfontconfig
SUNWfontconfig-docs
SUNWfontconfig-root
SUNWfont-daewoo-misc
SUNWfont-isas-misc
SUNWfont-jis-misc
SUNWfont-misc-ethiopic
SUNWfont-misc-meltho
SUNWfont-xorg-cyrillic
SUNWfont-xorg-core
SUNWfont-xorg-iso8859-1
SUNWfont-xorg-iso8859-2
SUNWfont-xorg-iso8859-3
SUNWfont-xorg-iso8859-4
SUNWfont-xorg-iso8859-5
SUNWfont-xorg-iso8859-7
SUNWfont-xorg-iso8859-8
SUNWfont-xorg-iso8859-9
SUNWfont-xorg-iso8859-10
SUNWfont-xorg-iso8859-11
SUNWfont-xorg-iso8859-13
SUNWfont-xorg-iso8859-14
SUNWfont-xorg-iso8859-15
SUNWfont-xorg-iso8859-16
SUNWfreetype2
SUNWpciaccess
SUNWpixman
SUNWsynergy
SUNWttf-bh-luxi
SUNWttf-bitstream-vera
SUNWttf-dejavu
SUNWttf-google-droid
SUNWttf-liberation
SUNWvncviewer
SUNWxcompmgr
SUNWxcursor-themes
SUNWxdm
SUNWxdm-root
SUNWxorg-client-docs
SUNWxorg-client-programs
SUNWxorg-clientlibs
SUNWxorg-compatlinks
SUNWxorg-graphics-ddx
SUNWxorg-headers
SUNWxorg-mesa
SUNWxorg-server
SUNWxorg-tsol-module
SUNWxvnc
SUNWxwacx
SUNWxwdem
SUNWxwdxm
SUNWxwfs
SUNWxwfsw
SUNWxwice
SUNWxwinc
SUNWxwman
SUNWxwmod
SUNWxwopt
SUNWxwplr
SUNWxwplt
SUNWxwpmn
SUNWxwrtl
SUNWxwslb
SUNWxwxft
"
# Localization template packages for delivery to translation teams
if [[ "$BUILD_L10N" != "no" ]]; then
XW_L10N_PACKAGES="SUNW0xacx SUNW0xman SUNW0xpmn
SUNW0xwplt SUNW0xwopt"
else
XW_L10N_PACKAGES=" "
fi
# To build a subset of packages:
# make_release_packages packages
# or
# env PACKAGE_LIST="packages" make_release_packages
#
if (( $# > 0 )) ; then
PACKAGE_LIST="$*"
else
fi
### Functions for use later
function print_and_run
{
print "$@"
"$@"
}
progname="$0"
function fatal_error
{
print -u2 "${progname}: ERROR: $*"
exit 1
}
function process_includes
{
nawk \
"/^include / {
system(\"cat $1/\" \$2)
next
}
{ print }" $2
}
# Which platform name do we use for 64-bit?
case "${MACH}" in
*) fatal_error "Unknown architecture - not SPARC nor i386." ;;
esac
cd ${PKG_SOURCE_DIR}
# Hardcode base package version for now, append OS version from uname
XVERSION="6.9.0"
VERSION="${XVERSION}.${OSVERSION}"
# Get build version from hg by searching for most recent tag matching nv_*
if [[ -z "${BUILD_TAG}" ]] ; then
fatal_error "BUILD_TAG could not be found from hg_log"
fi
print "Building packages for X11 version ${VERSION} build ${BUILD_TAG}"
if [[ "${MACH}" = "sparc" ]]; then
else
fi
# Next, create the staging area.
#
print 'Removing old proto-packages and recreating'
# Now copy the package description info
print 'Copying package descriptions'
if [[ ! -d ${package} ]] ; then
print "packages/${package} not found ; skipping"
continue
fi
cd ${package}
# We keep the master copyright in the top-level copyright file
# Packages that need additional copyright have copyright.add files
# that we then merge here
if [[ -f $F ]] ; then
process_includes "${PROTODIR}/licenses" $F \
fi
done
cd ..
done
# Now move into the package staging area and build the packages.
cd ${PACKAGE_DIR}
done
done
print -- '---Building packages'
# Variables to pass to pkgmk for use in prototype files
# They must start with lowercase letters to be resolved at pkgmk time
PKGMK_VARS="plat_64=${PLAT_64} plat=${MACH}"
print "******** Making the ${package} package ********"
if [[ ! -d ${package} ]] ; then
print "${PACKAGE_DIR}/${package} was not found ; skipping"
continue
fi
cd ${package}
sed -e '/ARCH/s/ISA/'${MACH}'/' -e 's/SUNW_PRODVERS=.*$/SUNW_PRODVERS='${VERSION}/ -e 's/VERSION=.*$/VERSION='${VERSION}.${BUILD},REV=${DATE}/ pkginfo.tmpl > pkginfo
if [[ -f Makefile ]] ; then
else
# If filename.tmpl exists, but filename does not,
# build filename from the .tmpl
if [[ -f "${pf}.tmpl" && ! -f "${pf}" ]] ; then
SOURCEDIR=${PKG_SOURCE_DIR} \
fi
done
fi
# If filename.tmpl exists, but filename does not,
# build filename from the .tmpl
if [[ -f "${df}.tmpl" && ! -f "${df}" ]] ; then
fi
done
if [[ -f prototype ]] ; then
# Simple package with the same prototype on all platforms
PROTOTYPE="prototype"
else
# Package with some platform-specific settings in prototype
if [[ ! -f prototype_${MACH} ]]; then
fi
PROTOTYPE="prototype_${MACH}"
fi
print "******** Done Making the ${package} package ********"
cd ..
print -n "Packages built: "
print -n "Packages failed: "
# Create an installdir with symlinks to built packages
cd ${PACKAGE_DIR}
cd installdir
fi
done
if [[ -f ${PKG_SOURCE_DIR}/upgrade-X ]] ; then
fi
exit 0