setup.py revision 1191
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] 814N/A# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 20N/A# Use is subject to license terms. 382N/A# 3rd party software required for the build 812N/A# No hash, since we always fetch the latest 589N/A# Unbuffer stdout and stderr. This helps to ensure that subprocess output 858N/A# is properly interleaved with output from this program. 812N/A 'pkg.client.transport',
466N/A# Runs the test suite with the code coverage suite (figleaf) turned on, and 466N/A# outputs a coverage report. 589N/A# TODO: Make the cov report format an option (html, ast, cov, etc) 765N/A # Run the test suite with coverage enabled 765N/A# Runs lint on the extension module source code 429N/A # Make string shell-friendly 429N/A # assumes lint is on the $PATH 812N/A # Insert tests directory onto sys.path so any custom checkers 812N/A # assumes pylint is accessible on the sys.path 812N/A # specify the filenames of the scripts, in addition 812N/A # to the package names themselves 812N/A # For some reason, the load-plugins option, when used in the 812N/A # rcfile, does not work, so we put it here instead, to load 812N/A # PRIVATE_BUILD set in the environment tells us to put the build 812N/A # directory into the .pyc files, rather than the final 812N/A # installation directory. 451N/A # This is used when installing scripts, below, but it isn't a 445N/A # standard distutils variable. 466N/A At the end of the install function, we need to rename some files 466N/A because distutils provides no way to rename files as they are 451N/A placed in their install locations. 812N/A Also, make sure that cherrypy and other external dependencies 429N/A # make scripts executable 386N/A # Take cacerts in cacert_dir and install them in 589N/A # proto-area-relative cacert_install_dir 461N/A # to ensure that this builds and runs on older 461N/A # nevada builds, before openssl moved out of /usr/sfw. 812N/A # Remove some bits that we're not going to package, but be sure 812N/A # not to complain if we try to remove them twice. 858N/A # Call openssl to create hash symlink 466N/A print "Unable to retrieve %s.\nPlease retrieve the file " \
466N/A # remove a partial download or error message from proxy 466N/A # extractall doesn't exist until python 2.5 466N/A # If there are patches, apply them now. 452N/A print "install failed and returned %d." %
ret 451N/A """ Run python's compiler over the file, and discard the results. 451N/A Arrange to generate an exception if the file does not compile. 466N/A This is needed because distutil's own use of pycompile (in the 814N/A distutils.utils module) is broken, and doesn't stop on error. """ 466N/A # override the build_module method to do VERSION substitution on pkg/__init__.py 466N/A # 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
# Will raise a DistutilsError on failure. description =
"Deletes any and all files created by setup" # NOTE: these options need to be in sync with tests/run.py and the # list of options stored in initialize_options below. The first entry # in each tuple must be the exact name of a member variable. user_options = [(
"verbosemode",
'v',
"run tests in verbose mode"),
(
"genbaseline",
'g',
"generate test baseline"),
(
"parseable",
'p',
"parseable output"),
(
"timing",
"t",
"timing file <file>"),
(
"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