# 
# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
# 
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
#ident	"$Id$"
#
#
# This required package information file describes characteristics of the
# package, such as package abbreviation, full package name, package version,
# and package architecture.
#
PKG="SUNWpr"
NAME="Netscape Portable Runtime"
ARCH="ISA"
VERSION="NSPRVERS,REV=0.0.0"
SUNW_PRODNAME="Netscape Portable Runtime"
SUNW_PRODVERS="NSPRVERS"
SUNW_PKGTYPE="usr"
MAXINST="1000"
CATEGORY="system"
DESC="Netscape Portable Runtime Interface"
VENDOR="Sun Microsystems, Inc."
HOTLINE="Please contact your local service provider"
EMAIL=""
CLASSES="none"
BASEDIR=/
SUNW_PKGVERS="1.0"
#VSTOCK="<reserved by Release Engineering for package part #>"
#ISTATES="<developer defined>"
#RSTATES='<developer defined>'
#ULIMIT="<developer defined>"
#ORDER="<developer defined>"
#PSTAMP="<developer defined>"
#INTONLY="<developer defined>"
