setup.py revision 742
20N/A# The contents of this file are subject to the terms of the 20N/A# Common Development and Distribution License (the "License"). 20N/A# You may not use this file except in compliance with the License. 20N/A# See the License for the specific language governing permissions 20N/A# and limitations under the License. 20N/A# When distributing Covered Code, include this CDDL HEADER in each 20N/A# If applicable, add the following below this CDDL HEADER, with the 20N/A# fields enclosed by brackets "[]" replaced with your own identifying 20N/A# information: Portions Copyright [yyyy] [name of copyright owner] 20N/A# Copyright 2008 Sun Microsystems, Inc. All rights reserved. 20N/A# Use is subject to license terms. 52N/A# 3rd party software required for the build 30N/A# Unbuffer stdout and stderr. This helps to ensure that subprocess output 30N/A# is properly interleaved with output from this program. 22N/A [
'svc-pkg-depot',
'svc-pkg-depot'],
0N/A# indexed by 'osname' 0N/A# Runs the test suite with the code coverage suite (figleaf) turned on, and 0N/A# outputs a coverage report. 0N/A# TODO: Make the cov report format an option (html, ast, cov, etc) 26N/A # Run the test suite with coverage enabled 26N/A # Reconstruct the cmdline and send that to run.py 22N/A# Runs lint on the extension module source code description =
"Runs various lint tools over IPS extension source code" # Make string shell-friendly # assumes lint is on the $PATH # Insert tests directory onto sys.path so any custom checkers # assumes pylint is accessible on the sys.path # specify the filenames of the scripts, in addition # to the package names themselves # For some reason, the load-plugins option, when used in the # rcfile, does not work, so we put it here instead, to load lint.
Run([
'--load-plugins=multiplatform',
'--rcfile',
# PRIVATE_BUILD set in the environment tells us to put the build # directory into the .pyc files, rather than the final # installation directory. # It's OK to have /'s here, python figures it out when writing files # This is used when installing scripts, below, but it isn't a # standard distutils variable. At the end of the install function, we need to rename some files because distutils provides no way to rename files as they are placed in their install locations. Also, make sure that cherrypy is installed. # make scripts executable print "downloading %s" %
swname print "Unable to retrieve %s.\nPlease retrieve the file " \
# remove a partial download or error message from proxy # extractall doesn't exist until python 2.5 print "installing %s" %
swname print >>
sys.
stderr,
"ERROR: unable to obtain mercurial version" # override the build_module method to do VERSION substitution on pkg/__init__.py # Grab the previously-built version out of the build vstr =
'VERSION = "%s"' % v
# If the versions haven't changed, there's no need to print "doing version substitution: ", v
description =
"Deletes any and all files created by setup" # NOTE: these options need to be in sync with tests/run.py user_options = [(
"verbosemode",
'v',
"run tests in verbose mode"),
(
"genbaseline",
'g',
"generate test baseline"),
(
"parseable",
'p',
"parseable output"),
(
"baselinefile=",
'b',
"baseline file <file>"),
(
"only=",
"o",
"only <regex>")]
# Reconstruct the cmdline and send that to run.py # These are set to real values based on the platform, down below # all builds of IPS should have manpages # Solaris-specific extensions are added here # Unix platforms which the elf extension has been ported to # are specified here, so they are built automatically # Solaris has built-in md library and Solaris-specific arch extension # All others use OpenSSL and cross-platform arch module