src/setup.py
author Shawn Walker <shawn.walker@oracle.com>
Fri, 25 Feb 2011 15:05:38 -0800
changeset 2240 de59b73f1428
parent 2223 2da8c49e53dc
child 2242 1bd3f64cf9de
permissions -rw-r--r--
14965 merge should be productized 17909 pkgmerge should support merging multiple variants for each source
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1514
diff changeset
     1
#!/usr/bin/python2.6
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
     2
#
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
     3
# CDDL HEADER START
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
     4
#
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
     8
#
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    12
# and limitations under the License.
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    13
#
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    19
#
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    20
# CDDL HEADER END
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    21
#
2223
2da8c49e53dc 17735 build should use custom pkglintrc to locate proto version of opensolaris.org.sections
Tim Foster <tim.s.foster@oracle.com>
parents: 2180
diff changeset
    22
# Copyright (c) 2008, 2011 Oracle and/or its affiliates.  All rights reserved.
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
    23
#
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    24
883
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
    25
import errno
454
c27abbc11c8c 2811 clobber doesn't clobber all versions of dependencies
Shawn Walker <shawn.walker@sun.com>
parents: 452
diff changeset
    26
import fnmatch
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    27
import os
448
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
    28
import platform
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    29
import stat
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    30
import sys
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    31
import shutil
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
    32
import re
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    33
import subprocess
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
    34
import tarfile
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    35
import tempfile
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
    36
import urllib
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
    37
import py_compile
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1514
diff changeset
    38
import hashlib
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    39
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
    40
from distutils.errors import DistutilsError
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    41
from distutils.core import setup, Extension
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    42
from distutils.cmd import Command
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    43
from distutils.command.install import install as _install
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    44
from distutils.command.build import build as _build
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
    45
from distutils.command.build_py import build_py as _build_py
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    46
from distutils.command.bdist import bdist as _bdist
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    47
from distutils.command.clean import clean as _clean
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    48
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    49
from distutils.sysconfig import get_python_inc
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    50
import distutils.file_util as file_util
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    51
import distutils.dir_util as dir_util
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    52
import distutils.util as util
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
    53
1660
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    54
osname = platform.uname()[0].lower()
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    55
ostype = arch = 'unknown'
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    56
if osname == 'sunos':
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    57
        arch = platform.processor()
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    58
        ostype = "posix"
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    59
elif osname == 'linux':
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    60
        arch = "linux_" + platform.machine()
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    61
        ostype = "posix"
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    62
elif osname == 'windows':
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    63
        arch = osname
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    64
        ostype = "windows"
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    65
elif osname == 'darwin':
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    66
        arch = osname
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    67
        ostype = "posix"
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    68
elif osname == 'aix':
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    69
        arch = "aix"
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    70
        ostype = "posix"
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
    71
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    72
# 3rd party software required for the build
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    73
CP = 'CherryPy'
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    74
CPIDIR = 'cherrypy'
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1514
diff changeset
    75
CPVER = '3.1.2'
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    76
CPARC = '%s-%s.tar.gz' % (CP, CPVER)
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    77
CPDIR = '%s-%s' % (CP, CPVER)
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    78
CPURL = 'http://download.cherrypy.org/cherrypy/%s/%s' % (CPVER, CPARC)
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1514
diff changeset
    79
CPHASH = 'a94aedfd0e675858dbcc32dd250c23d285ee9b88'
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    80
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    81
PO = 'pyOpenSSL'
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    82
POIDIR = 'OpenSSL'
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    83
POVER = '0.7'
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    84
POARC = '%s-%s.tar.gz' % (PO, POVER)
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    85
PODIR = '%s-%s' % (PO, POVER)
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    86
POURL = 'http://downloads.sourceforge.net/pyopenssl/%s' % (POARC)
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
    87
POHASH = 'bd072fef8eb36241852d25a9161282a051f0a63e'
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
    88
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
    89
COV = 'coveragepy'
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
    90
COVIDIR = 'coverage'
2075
f874d5e0efb5 16967 build of clean workspace fails due to coveragepy source location change
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2046
diff changeset
    91
COVVER = '3.2b2'
2180
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
    92
COVPVER = '3.2'
2075
f874d5e0efb5 16967 build of clean workspace fails due to coveragepy source location change
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2046
diff changeset
    93
COVARC = '%s-%s.tar.gz' % (COVIDIR, COVVER)
f874d5e0efb5 16967 build of clean workspace fails due to coveragepy source location change
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2046
diff changeset
    94
COVDIR = '%s-%s' % (COVIDIR, COVVER)
f874d5e0efb5 16967 build of clean workspace fails due to coveragepy source location change
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2046
diff changeset
    95
COVURL = 'http://pypi.python.org/packages/source/c/coverage/%s' % COVARC
f874d5e0efb5 16967 build of clean workspace fails due to coveragepy source location change
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2046
diff changeset
    96
COVHASH = '4710d033b8c6de1efaa562243e5b29e0a31fb8b9'
708
ef2162b85fab 4970 Add code coverage support
Brad Hall <bhall@eng.sun.com>
parents: 691
diff changeset
    97
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
    98
LDTP = 'ldtp'
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
    99
LDTPIDIR = 'ldtp'
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   100
LDTPVER = '1.7.1'
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   101
LDTPMINORVER = '1.7.x'
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   102
LDTPMAJORVER = '1.x'
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   103
LDTPARC = '%s-%s.tar.gz' % (LDTP, LDTPVER)
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   104
LDTPDIR = '%s-%s' % (LDTP, LDTPVER)
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   105
LDTPURL = 'http://download.freedesktop.org/ldtp/%s/%s/%s' % \
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   106
    (LDTPMAJORVER, LDTPMINORVER, LDTPARC)
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   107
LDTPHASH = 'd31213d2b1449a0dadcace723b9ff7041169f7ce'
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   108
742
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   109
MAKO = 'Mako'
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   110
MAKOIDIR = 'mako'
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   111
MAKOVER = '0.2.2'
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   112
MAKOARC = '%s-%s.tar.gz' % (MAKO, MAKOVER)
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   113
MAKODIR = '%s-%s' % (MAKO, MAKOVER)
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   114
MAKOURL = 'http://www.makotemplates.org/downloads/%s' % (MAKOARC)
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   115
MAKOHASH = '85c04ab3a6a26a1cab47067449712d15a8b29790'
742
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   116
941
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 883
diff changeset
   117
PLY = 'ply'
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 883
diff changeset
   118
PLYIDIR = 'ply'
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 883
diff changeset
   119
PLYVER = '3.1'
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 883
diff changeset
   120
PLYARC = '%s-%s.tar.gz' % (PLY, PLYVER)
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 883
diff changeset
   121
PLYDIR = '%s-%s' % (PLY, PLYVER)
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 883
diff changeset
   122
PLYURL = 'http://www.dabeaz.com/ply/%s' % (PLYARC)
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   123
PLYHASH = '38efe9e03bc39d40ee73fa566eb9c1975f1a8003'
941
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 883
diff changeset
   124
2023
aee270220d37 16784 Integrate Pybonjour
johansen <johansen@opensolaris.org>
parents: 2021
diff changeset
   125
PBJ = 'pybonjour'
aee270220d37 16784 Integrate Pybonjour
johansen <johansen@opensolaris.org>
parents: 2021
diff changeset
   126
PBJIDIR = 'pybonjour'
aee270220d37 16784 Integrate Pybonjour
johansen <johansen@opensolaris.org>
parents: 2021
diff changeset
   127
PBJVER = '1.1.1'
aee270220d37 16784 Integrate Pybonjour
johansen <johansen@opensolaris.org>
parents: 2021
diff changeset
   128
PBJARC = '%s-%s.tar.gz' % (PBJ, PBJVER)
aee270220d37 16784 Integrate Pybonjour
johansen <johansen@opensolaris.org>
parents: 2021
diff changeset
   129
PBJDIR = '%s-%s' % (PBJ, PBJVER)
aee270220d37 16784 Integrate Pybonjour
johansen <johansen@opensolaris.org>
parents: 2021
diff changeset
   130
PBJURL = 'http://pybonjour.googlecode.com/files/%s' % (PBJARC)
aee270220d37 16784 Integrate Pybonjour
johansen <johansen@opensolaris.org>
parents: 2021
diff changeset
   131
PBJHASH = '92cabd14e04c5f62ce067c47c2057ee3d424d29b'
aee270220d37 16784 Integrate Pybonjour
johansen <johansen@opensolaris.org>
parents: 2021
diff changeset
   132
1191
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   133
PC = 'pycurl'
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   134
PCIDIR = 'curl'
1191
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   135
PCVER = '7.19.0'
2180
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   136
PCPVER= '7.19.0.1'
1191
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   137
PCARC = '%s-%s.tar.gz' % (PC, PCVER)
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   138
PCDIR = '%s-%s' % (PC, PCVER)
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   139
PCURL = 'http://pycurl.sourceforge.net/download/%s' % PCARC
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   140
PCHASH = '3fb59eca1461331bb9e9e8d6fe3b23eda961a416'
1660
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   141
PCENVIRON = {}
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   142
if osname in ("sunos", "linux", "darwin"):
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   143
        PCENVIRON = {'CFLAGS': '-O3'}
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   144
2026
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   145
M2C = 'M2Crypto'
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   146
M2CIDIR = 'm2crypto'
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   147
M2CVER = '0.20.2'
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   148
M2CARC = '%s-%s.tar.gz' % (M2C, M2CVER)
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   149
M2CDIR = '%s-%s' % (M2C, M2CVER)
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   150
M2CURL = 'http://pypi.python.org/packages/source/M/M2Crypto/%s' % (M2CARC)
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   151
M2CHASH = '6e85d7035971c353db74a497fca0ec2eaea4dea0'
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   152
448
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   153
pwd = os.path.normpath(sys.path[0])
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   154
534
44a901d55161 676 'make install' fails if GNU install is first in path
Dan Price <dp@eng.sun.com>
parents: 513
diff changeset
   155
#
44a901d55161 676 'make install' fails if GNU install is first in path
Dan Price <dp@eng.sun.com>
parents: 513
diff changeset
   156
# Unbuffer stdout and stderr.  This helps to ensure that subprocess output
44a901d55161 676 'make install' fails if GNU install is first in path
Dan Price <dp@eng.sun.com>
parents: 513
diff changeset
   157
# is properly interleaved with output from this program.
44a901d55161 676 'make install' fails if GNU install is first in path
Dan Price <dp@eng.sun.com>
parents: 513
diff changeset
   158
#
44a901d55161 676 'make install' fails if GNU install is first in path
Dan Price <dp@eng.sun.com>
parents: 513
diff changeset
   159
sys.stdout = os.fdopen(sys.stdout.fileno(), "w", 0)
44a901d55161 676 'make install' fails if GNU install is first in path
Dan Price <dp@eng.sun.com>
parents: 513
diff changeset
   160
sys.stderr = os.fdopen(sys.stderr.fileno(), "w", 0)
44a901d55161 676 'make install' fails if GNU install is first in path
Dan Price <dp@eng.sun.com>
parents: 513
diff changeset
   161
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   162
dist_dir = os.path.normpath(os.path.join(pwd, os.pardir, "proto", "dist_" + arch))
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   163
build_dir = os.path.normpath(os.path.join(pwd, os.pardir, "proto", "build_" + arch))
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   164
if "ROOT" in os.environ and os.environ["ROOT"] != "":
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   165
        root_dir = os.environ["ROOT"]
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   166
else:
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   167
        root_dir = os.path.normpath(os.path.join(pwd, os.pardir, "proto", "root_" + arch))
534
44a901d55161 676 'make install' fails if GNU install is first in path
Dan Price <dp@eng.sun.com>
parents: 513
diff changeset
   168
pkgs_dir = os.path.normpath(os.path.join(pwd, os.pardir, "packages", arch))
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   169
extern_dir = os.path.normpath(os.path.join(pwd, "extern"))
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   170
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1514
diff changeset
   171
py_install_dir = 'usr/lib/python2.6/vendor-packages'
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   172
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   173
scripts_dir = 'usr/bin'
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   174
lib_dir = 'usr/lib'
661
edf14bae4465 2717 pkg.depotd: need smf support for depot mode options
Brock Pytlik <bpytlik@sun.com>
parents: 613
diff changeset
   175
svc_method_dir = 'lib/svc/method'
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   176
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   177
man1_dir = 'usr/share/man/cat1'
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   178
man1m_dir = 'usr/share/man/cat1m'
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   179
man5_dir = 'usr/share/man/cat5'
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   180
resource_dir = 'usr/share/lib/pkg'
2125
58b5b0fdbd4f 15411 pkg delivered SMF manifests should be relocated to /lib/svc/manifest
Shawn Walker <shawn.walker@oracle.com>
parents: 2078
diff changeset
   181
smf_dir = 'lib/svc/manifest/application'
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   182
zones_dir = 'etc/zones'
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1452
diff changeset
   183
etcbrand_dir = 'etc/brand/ipkg'
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   184
brand_dir = 'usr/lib/brand/ipkg'
1498
1800f38ca303 6133 need to add pkg commands in /etc/security/exec_attr with "Software Installation" profile
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1483
diff changeset
   185
execattrd_dir = 'etc/security/exec_attr.d'
1800f38ca303 6133 need to add pkg commands in /etc/security/exec_attr with "Software Installation" profile
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1483
diff changeset
   186
authattrd_dir = 'etc/security/auth_attr.d'
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   187
1674
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   188
# A list of source, destination tuples of modules which should be hardlinked
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   189
# together if the os supports it and otherwise copied.
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   190
hardlink_modules = [
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   191
    ("%s/pkg/flavor/depthlimitedmf24" % py_install_dir,
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   192
    "%s/pkg/flavor/depthlimitedmf25" % py_install_dir)
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   193
]
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   194
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   195
scripts_sunos = {
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   196
        scripts_dir: [
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   197
                ['client.py', 'pkg'],
1544
e0ce5081236a 12697 pkgdep throws an exception for $PLATFORM or $ISALIST in runpath
Brock Pytlik <bpytlik@sun.com>
parents: 1516
diff changeset
   198
                ['pkgdep.py', 'pkgdepend'],
1968
c0540b1e4f7e 8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents: 1903
diff changeset
   199
                ['pkgrepo.py', 'pkgrepo'],
1557
d242d38c27d9 12899 Need a nice way of comparing manifests from the command line to aid publication
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1544
diff changeset
   200
                ['util/publish/pkgdiff.py', 'pkgdiff'],
1903
460ef45c8ebd 15939 Need a easy way to format package manifests in a consistent style
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1902
diff changeset
   201
                ['util/publish/pkgfmt.py', 'pkgfmt'],
2046
2522cde7adc2 13536 We need a way to audit one or more packages
Tim Foster <tim.s.foster@oracle.com>
parents: 2041
diff changeset
   202
                ['util/publish/pkglint.py', 'pkglint'],
2240
de59b73f1428 14965 merge should be productized
Shawn Walker <shawn.walker@oracle.com>
parents: 2223
diff changeset
   203
                ['util/publish/pkgmerge.py', 'pkgmerge'],
1506
9c8b3a3184be 12373 Need a programatic way of transforming manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1505
diff changeset
   204
                ['util/publish/pkgmogrify.py', 'pkgmogrify'],
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   205
                ['publish.py', 'pkgsend'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   206
                ['pull.py', 'pkgrecv'],
2026
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   207
                ['sign.py', 'pkgsign'],
424
a767ef6bf887 2578 integrate packagemanager into ips gate
Danek Duvall <danek.duvall@sun.com>
parents: 422
diff changeset
   208
                ['packagemanager.py', 'packagemanager'],
1024
e83271f2e133 7645 Man page required for Package Manager and Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents: 954
diff changeset
   209
                ['updatemanager.py', 'pm-updatemanager'],
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   210
                ],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   211
        lib_dir: [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   212
                ['depot.py', 'pkg.depotd'],
2078
a13afe24c79a 17024 pm-updatemanager can't find display when running from cron
John Rice <john.rice@oracle.com>
parents: 2075
diff changeset
   213
                ['checkforupdates.py', 'pm-checkforupdates'],
578
da257532b3f2 3816 RFE UpdateManager notify users of repo updates
John Rice <john.rice@sun.com>
parents: 534
diff changeset
   214
                ['updatemanagernotifier.py', 'updatemanagernotifier'],
1172
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents: 1101
diff changeset
   215
                ['launch.py', 'pm-launch'],
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   216
                ],
661
edf14bae4465 2717 pkg.depotd: need smf support for depot mode options
Brock Pytlik <bpytlik@sun.com>
parents: 613
diff changeset
   217
        svc_method_dir: [
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   218
                ['svc/svc-pkg-depot', 'svc-pkg-depot'],
1902
59b7214232cb 6957 mDNS support for depot
johansen <johansen@opensolaris.org>
parents: 1815
diff changeset
   219
                ['svc/svc-pkg-mdns', 'svc-pkg-mdns'],
661
edf14bae4465 2717 pkg.depotd: need smf support for depot mode options
Brock Pytlik <bpytlik@sun.com>
parents: 613
diff changeset
   220
                ],
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   221
        }
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   222
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   223
scripts_windows = {
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   224
        scripts_dir: [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   225
                ['client.py', 'client.py'],
1968
c0540b1e4f7e 8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents: 1903
diff changeset
   226
                ['pkgrepo.py', 'pkgrepo.py'],
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   227
                ['publish.py', 'publish.py'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   228
                ['pull.py', 'pull.py'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   229
                ['scripts/pkg.bat', 'pkg.bat'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   230
                ['scripts/pkgsend.bat', 'pkgsend.bat'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   231
                ['scripts/pkgrecv.bat', 'pkgrecv.bat'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   232
                ],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   233
        lib_dir: [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   234
                ['depot.py', 'depot.py'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   235
                ['scripts/pkg.depotd.bat', 'pkg.depotd.bat'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   236
                ],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   237
        }
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   238
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   239
scripts_other_unix = {
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   240
        scripts_dir: [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   241
                ['client.py', 'client.py'],
1231
f7b99e8118d2 9290 need a way to find the file dependencies of a package
Brock Pytlik <bpytlik@sun.com>
parents: 1228
diff changeset
   242
                ['pkgdep.py', 'pkgdep'],
1557
d242d38c27d9 12899 Need a nice way of comparing manifests from the command line to aid publication
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1544
diff changeset
   243
                ['util/publish/pkgdiff.py', 'pkgdiff'],
1903
460ef45c8ebd 15939 Need a easy way to format package manifests in a consistent style
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1902
diff changeset
   244
                ['util/publish/pkgfmt.py', 'pkgfmt'],
1557
d242d38c27d9 12899 Need a nice way of comparing manifests from the command line to aid publication
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1544
diff changeset
   245
                ['util/publish/pkgmogrify.py', 'pkgmogrify'],
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   246
                ['pull.py', 'pull.py'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   247
                ['publish.py', 'publish.py'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   248
                ['scripts/pkg.sh', 'pkg'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   249
                ['scripts/pkgsend.sh', 'pkgsend'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   250
                ['scripts/pkgrecv.sh', 'pkgrecv'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   251
                ],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   252
        lib_dir: [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   253
                ['depot.py', 'depot.py'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   254
                ['scripts/pkg.depotd.sh', 'pkg.depotd'],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   255
                ],
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   256
        }
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   257
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   258
# indexed by 'osname'
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   259
scripts = {
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   260
        "sunos": scripts_sunos,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   261
        "linux": scripts_other_unix,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   262
        "windows": scripts_windows,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   263
        "darwin": scripts_other_unix,
1302
65995c02a467 10042 Port pkg(5) to AIX
Tom Mueller <Tom.Mueller@sun.com>
parents: 1265
diff changeset
   264
        "aix" : scripts_other_unix,
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   265
        "unknown": scripts_sunos,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   266
        }
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   267
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   268
man1_files = [
1024
e83271f2e133 7645 Man page required for Package Manager and Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents: 954
diff changeset
   269
        'man/packagemanager.1',
413
3170bad6ceb7 2406 man pages are re-installed every time
Danek Duvall <danek.duvall@sun.com>
parents: 409
diff changeset
   270
        'man/pkg.1',
1544
e0ce5081236a 12697 pkgdep throws an exception for $PLATFORM or $ISALIST in runpath
Brock Pytlik <bpytlik@sun.com>
parents: 1516
diff changeset
   271
        'man/pkgdepend.1',
1557
d242d38c27d9 12899 Need a nice way of comparing manifests from the command line to aid publication
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1544
diff changeset
   272
        'man/pkgdiff.1',
1903
460ef45c8ebd 15939 Need a easy way to format package manifests in a consistent style
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1902
diff changeset
   273
        'man/pkgfmt.1',
2046
2522cde7adc2 13536 We need a way to audit one or more packages
Tim Foster <tim.s.foster@oracle.com>
parents: 2041
diff changeset
   274
        'man/pkglint.1',
2240
de59b73f1428 14965 merge should be productized
Shawn Walker <shawn.walker@oracle.com>
parents: 2223
diff changeset
   275
        'man/pkgmerge.1',
1506
9c8b3a3184be 12373 Need a programatic way of transforming manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1505
diff changeset
   276
        'man/pkgmogrify.1',
413
3170bad6ceb7 2406 man pages are re-installed every time
Danek Duvall <danek.duvall@sun.com>
parents: 409
diff changeset
   277
        'man/pkgsend.1',
2026
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   278
        'man/pkgsign.1',
413
3170bad6ceb7 2406 man pages are re-installed every time
Danek Duvall <danek.duvall@sun.com>
parents: 409
diff changeset
   279
        'man/pkgrecv.1',
1978
69f2ff97bcd8 16567 pkgrepo help and manpage need to be consistent, and manpage needs publishing
Shawn Walker <shawn.walker@oracle.com>
parents: 1968
diff changeset
   280
        'man/pkgrepo.1',
1024
e83271f2e133 7645 Man page required for Package Manager and Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents: 954
diff changeset
   281
        'man/pm-updatemanager.1',
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   282
        ]
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   283
man1m_files = [
413
3170bad6ceb7 2406 man pages are re-installed every time
Danek Duvall <danek.duvall@sun.com>
parents: 409
diff changeset
   284
        'man/pkg.depotd.1m'
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   285
        ]
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   286
man5_files = [
413
3170bad6ceb7 2406 man pages are re-installed every time
Danek Duvall <danek.duvall@sun.com>
parents: 409
diff changeset
   287
        'man/pkg.5'
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   288
        ]
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   289
packages = [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   290
        'pkg',
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   291
        'pkg.actions',
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   292
        'pkg.bundle',
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   293
        'pkg.client',
1191
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   294
        'pkg.client.transport',
1452
bd6ffa78fed9 7960 client and depot need different organization of files
Brock Pytlik <bpytlik@sun.com>
parents: 1401
diff changeset
   295
        'pkg.file_layout',
1231
f7b99e8118d2 9290 need a way to find the file dependencies of a package
Brock Pytlik <bpytlik@sun.com>
parents: 1228
diff changeset
   296
        'pkg.flavor',
2046
2522cde7adc2 13536 We need a way to audit one or more packages
Tim Foster <tim.s.foster@oracle.com>
parents: 2041
diff changeset
   297
        'pkg.lint',
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   298
        'pkg.portable',
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   299
        'pkg.publish',
424
a767ef6bf887 2578 integrate packagemanager into ips gate
Danek Duvall <danek.duvall@sun.com>
parents: 422
diff changeset
   300
        'pkg.server'
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   301
        ]
742
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   302
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   303
web_files = []
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   304
for entry in os.walk("web"):
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   305
        web_dir, dirs, files = entry
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   306
        if not files:
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   307
                continue
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   308
        web_files.append((os.path.join(resource_dir, web_dir), [
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   309
            os.path.join(web_dir, f) for f in files
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   310
            if f != "Makefile"
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   311
            ]))
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   312
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   313
zones_files = [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   314
        'brand/SUNWipkg.xml',
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   315
        ]
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   316
brand_files = [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   317
        'brand/pkgcreatezone',
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   318
        'brand/attach',
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   319
        'brand/clone',
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   320
        'brand/detach',
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   321
        'brand/prestate',
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   322
        'brand/poststate',
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   323
        'brand/uninstall',
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 941
diff changeset
   324
        'brand/common.ksh',
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   325
        ]
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1452
diff changeset
   326
etcbrand_files = [
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1452
diff changeset
   327
        'brand/pkgrm.conf',
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1452
diff changeset
   328
        'brand/smf_disable.conf',
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1452
diff changeset
   329
        ]
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   330
smf_files = [
1902
59b7214232cb 6957 mDNS support for depot
johansen <johansen@opensolaris.org>
parents: 1815
diff changeset
   331
        'svc/pkg-mdns.xml',
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   332
        'svc/pkg-server.xml',
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   333
        'svc/pkg-update.xml',
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   334
        ]
2046
2522cde7adc2 13536 We need a way to audit one or more packages
Tim Foster <tim.s.foster@oracle.com>
parents: 2041
diff changeset
   335
resource_files = [
2223
2da8c49e53dc 17735 build should use custom pkglintrc to locate proto version of opensolaris.org.sections
Tim Foster <tim.s.foster@oracle.com>
parents: 2180
diff changeset
   336
        'util/opensolaris.org.sections',
2046
2522cde7adc2 13536 We need a way to audit one or more packages
Tim Foster <tim.s.foster@oracle.com>
parents: 2041
diff changeset
   337
        'util/pkglintrc',
2522cde7adc2 13536 We need a way to audit one or more packages
Tim Foster <tim.s.foster@oracle.com>
parents: 2041
diff changeset
   338
        ]
1498
1800f38ca303 6133 need to add pkg commands in /etc/security/exec_attr with "Software Installation" profile
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1483
diff changeset
   339
execattrd_files = ['util/misc/exec_attr.d/SUNWipkg']
1800f38ca303 6133 need to add pkg commands in /etc/security/exec_attr with "Software Installation" profile
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1483
diff changeset
   340
authattrd_files = ['util/misc/auth_attr.d/SUNWipkg']
691
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   341
pspawn_srcs = [
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   342
        'modules/pspawn.c'
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   343
        ]
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   344
elf_srcs = [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   345
        'modules/elf.c',
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   346
        'modules/elfextract.c',
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   347
        'modules/liblist.c',
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   348
        ]
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   349
arch_srcs = [
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   350
        'modules/arch.c'
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   351
        ]
591
dbe9236b0884 2686 action key/value pairs separated by tabs cause parsing problems
Danek Duvall <danek.duvall@sun.com>
parents: 578
diff changeset
   352
_actions_srcs = [
dbe9236b0884 2686 action key/value pairs separated by tabs cause parsing problems
Danek Duvall <danek.duvall@sun.com>
parents: 578
diff changeset
   353
        'modules/actions/_actions.c'
dbe9236b0884 2686 action key/value pairs separated by tabs cause parsing problems
Danek Duvall <danek.duvall@sun.com>
parents: 578
diff changeset
   354
        ]
1505
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1498
diff changeset
   355
solver_srcs = [
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1498
diff changeset
   356
        'modules/solver/solver.c', 
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1498
diff changeset
   357
        'modules/solver/py_solver.c'
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1498
diff changeset
   358
        ]
1632
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   359
solver_link_args = ["-lm", "-lc"]
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   360
if osname == 'sunos':
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   361
        solver_link_args = ["-ztext"] + solver_link_args
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   362
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   363
include_dirs = [ 'modules' ]
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   364
lint_flags = [ '-u', '-axms', '-erroff=E_NAME_DEF_NOT_USED2' ]
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   365
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   366
# Runs lint on the extension module source code
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   367
class lint_func(Command):
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   368
        description = "Runs various lint tools over IPS extension source code"
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   369
        user_options = []
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   370
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   371
        def initialize_options(self):
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   372
                pass
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   373
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   374
        def finalize_options(self):
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   375
                pass
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   376
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   377
        # Make string shell-friendly
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   378
        @staticmethod
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   379
        def escape(astring):
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   380
                return astring.replace(' ', '\\ ')
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   381
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   382
        def run(self):
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   383
                # assumes lint is on the $PATH
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   384
                if osname == 'sunos' or osname == "linux":
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   385
                        archcmd = ['lint'] + lint_flags + ['-D_FILE_OFFSET_BITS=64'] + \
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   386
                            ["%s%s" % ("-I", k) for k in include_dirs] + \
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   387
                            ['-I' + self.escape(get_python_inc())] + \
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   388
                            arch_srcs
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   389
                        elfcmd = ['lint'] + lint_flags + \
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   390
                            ["%s%s" % ("-I", k) for k in include_dirs] + \
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   391
                            ['-I' + self.escape(get_python_inc())] + \
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   392
                            ["%s%s" % ("-l", k) for k in elf_libraries] + \
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   393
                            elf_srcs
591
dbe9236b0884 2686 action key/value pairs separated by tabs cause parsing problems
Danek Duvall <danek.duvall@sun.com>
parents: 578
diff changeset
   394
                        _actionscmd = ['lint'] + lint_flags + \
dbe9236b0884 2686 action key/value pairs separated by tabs cause parsing problems
Danek Duvall <danek.duvall@sun.com>
parents: 578
diff changeset
   395
                            ["%s%s" % ("-I", k) for k in include_dirs] + \
dbe9236b0884 2686 action key/value pairs separated by tabs cause parsing problems
Danek Duvall <danek.duvall@sun.com>
parents: 578
diff changeset
   396
                            ['-I' + self.escape(get_python_inc())] + \
dbe9236b0884 2686 action key/value pairs separated by tabs cause parsing problems
Danek Duvall <danek.duvall@sun.com>
parents: 578
diff changeset
   397
                            _actions_srcs
691
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   398
                        pspawncmd = ['lint'] + lint_flags + ['-D_FILE_OFFSET_BITS=64'] + \
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   399
                            ["%s%s" % ("-I", k) for k in include_dirs] + \
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   400
                            ['-I' + self.escape(get_python_inc())] + \
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   401
                            pspawn_srcs
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   402
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   403
                        print(" ".join(archcmd))
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   404
                        os.system(" ".join(archcmd))
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   405
                        print(" ".join(elfcmd))
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   406
                        os.system(" ".join(elfcmd))
591
dbe9236b0884 2686 action key/value pairs separated by tabs cause parsing problems
Danek Duvall <danek.duvall@sun.com>
parents: 578
diff changeset
   407
                        print(" ".join(_actionscmd))
dbe9236b0884 2686 action key/value pairs separated by tabs cause parsing problems
Danek Duvall <danek.duvall@sun.com>
parents: 578
diff changeset
   408
                        os.system(" ".join(_actionscmd))
691
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   409
                        print(" ".join(pspawncmd))
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   410
                        os.system(" ".join(pspawncmd))
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   411
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   412
                        proto = os.path.join(root_dir, py_install_dir)
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   413
                        sys.path.insert(0, proto)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   414
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   415
                        # Insert tests directory onto sys.path so any custom checkers
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   416
                        # can be found.
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   417
                        sys.path.insert(0, os.path.join(pwd, 'tests'))
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   418
                        print(sys.path)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   419
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   420
                # assumes pylint is accessible on the sys.path
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   421
                from pylint import lint
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   422
                scriptlist = [ 'setup.py' ]
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   423
                for d, m in scripts_sunos.items():
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   424
                        for a in m:
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   425
                                # specify the filenames of the scripts, in addition
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   426
                                # to the package names themselves
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   427
                                scriptlist.append(os.path.join(root_dir, d, a[1]))
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   428
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   429
                # For some reason, the load-plugins option, when used in the
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   430
                # rcfile, does not work, so we put it here instead, to load
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   431
                # our custom checkers.
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   432
                lint.Run(['--load-plugins=multiplatform', '--rcfile',
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   433
                          os.path.join(pwd, 'tests', 'pylintrc')] +
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   434
                          scriptlist + packages)
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   435
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   436
class install_func(_install):
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   437
        def initialize_options(self):
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   438
                _install.initialize_options(self)
506
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   439
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   440
                # PRIVATE_BUILD set in the environment tells us to put the build
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   441
                # directory into the .pyc files, rather than the final
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   442
                # installation directory.
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   443
                private_build = os.getenv("PRIVATE_BUILD", None)
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   444
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   445
                if private_build is None:
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   446
                        self.install_lib = py_install_dir
834
f8b3396500b3 4883 import failure for non-sunos platforms due to missing pspawn
Tom Mueller <Tom.Mueller@sun.com>
parents: 801
diff changeset
   447
                        self.install_data = os.path.sep
506
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   448
                        self.root = root_dir
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   449
                else:
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   450
                        self.install_lib = os.path.join(root_dir, py_install_dir)
513
4ddcb572f5d9 3330 smf manifest file in wrong location
Danek Duvall <danek.duvall@sun.com>
parents: 506
diff changeset
   451
                        self.install_data = root_dir
506
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   452
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   453
                # This is used when installing scripts, below, but it isn't a
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   454
                # standard distutils variable.
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   455
                self.root_dir = root_dir
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   456
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   457
        def run(self):
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   458
                """
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   459
                At the end of the install function, we need to rename some files
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   460
                because distutils provides no way to rename files as they are
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   461
                placed in their install locations.
883
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   462
                Also, make sure that cherrypy and other external dependencies
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   463
                are installed.
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   464
                """
413
3170bad6ceb7 2406 man pages are re-installed every time
Danek Duvall <danek.duvall@sun.com>
parents: 409
diff changeset
   465
                for f in man1_files + man1m_files + man5_files:
3170bad6ceb7 2406 man pages are re-installed every time
Danek Duvall <danek.duvall@sun.com>
parents: 409
diff changeset
   466
                        file_util.copy_file(f + ".txt", f, update=1)
3170bad6ceb7 2406 man pages are re-installed every time
Danek Duvall <danek.duvall@sun.com>
parents: 409
diff changeset
   467
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   468
                _install.run(self)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   469
1674
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   470
                for o_src, o_dest in hardlink_modules:
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   471
                        for e in [".py", ".pyc"]:
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   472
                                src = util.change_root(self.root_dir, o_src + e)
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   473
                                dest = util.change_root(
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   474
                                    self.root_dir, o_dest + e)
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   475
                                if ostype == "posix":
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   476
                                        if os.path.exists(dest) and \
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   477
                                            os.stat(src)[stat.ST_INO] != \
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   478
                                            os.stat(dest)[stat.ST_INO]:
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   479
                                                os.remove(dest)
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   480
                                        file_util.copy_file(src, dest,
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   481
                                            link="hard", update=1)
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   482
                                else:
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   483
                                        file_util.copy_file(src, dest, update=1)
faf484754465 13059 pkgdep generate should analyze python modules using the version of python they use
Brock Pytlik <bpytlik@sun.com>
parents: 1660
diff changeset
   484
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   485
                for d, files in scripts[osname].iteritems():
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   486
                        for (srcname, dstname) in files:
506
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   487
                                dst_dir = util.change_root(self.root_dir, d)
acc9011bd8d4 2754 incorrect paths and source snippets in development stack traces
Danek Duvall <danek.duvall@sun.com>
parents: 498
diff changeset
   488
                                dst_path = util.change_root(self.root_dir,
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   489
                                       os.path.join(d, dstname))
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   490
                                dir_util.mkpath(dst_dir, verbose = True)
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   491
                                file_util.copy_file(srcname, dst_path, update = True)
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   492
                                # make scripts executable
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   493
                                os.chmod(dst_path,
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   494
                                    os.stat(dst_path).st_mode
834
f8b3396500b3 4883 import failure for non-sunos platforms due to missing pspawn
Tom Mueller <Tom.Mueller@sun.com>
parents: 801
diff changeset
   495
                                    | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   496
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   497
                prep_sw(CP, CPARC, CPDIR, CPURL, CPHASH)
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   498
                install_sw(CP, CPDIR, CPIDIR)
1401
9dd0120dc51b 11785 ldtp build fails on Solaris 10
Tom Mueller <Tom.Mueller@sun.com>
parents: 1394
diff changeset
   499
		if osname == "sunos" and platform.uname()[2] == "5.11":
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   500
                        prep_sw(LDTP, LDTPARC, LDTPDIR, LDTPURL,
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   501
                            LDTPHASH)
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   502
                        saveenv = os.environ.copy()
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   503
                        os.environ["LDFLAGS"] = os.environ.get("LDFLAGS", "") + \
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   504
                            " -lsocket -lnsl"
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   505
                        install_ldtp(LDTP, LDTPDIR, LDTPIDIR)
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   506
                        os.environ = saveenv
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   507
836
1800b2c96160 5599 Installing SUNWxvnc to a zone is not enough
David.Comay@Sun.COM
parents: 834
diff changeset
   508
		if "BUILD_PYOPENSSL" in os.environ and \
1800b2c96160 5599 Installing SUNWxvnc to a zone is not enough
David.Comay@Sun.COM
parents: 834
diff changeset
   509
                    os.environ["BUILD_PYOPENSSL"] != "":
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   510
                        #
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   511
                        # Include /usr/sfw/lib in the build environment
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   512
                        # to ensure that this builds and runs on older
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   513
                        # nevada builds, before openssl moved out of /usr/sfw.
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   514
                        #
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   515
                        saveenv = os.environ.copy()
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   516
                        if osname == "sunos":
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   517
                                os.environ["CFLAGS"] = "-I/usr/sfw/include " + \
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   518
                                    os.environ.get("CFLAGS", "")
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   519
                                os.environ["LDFLAGS"] = \
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   520
                                    "-L/usr/sfw/lib -R/usr/sfw/lib " + \
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   521
                                    os.environ.get("LDFLAGS", "")
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   522
                        prep_sw(PO, POARC, PODIR, POURL, POHASH)
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   523
                        install_sw(PO, PODIR, POIDIR)
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   524
                        os.environ = saveenv
2026
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   525
                prep_sw(M2C, M2CARC, M2CDIR, M2CURL, M2CHASH)
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 2023
diff changeset
   526
                install_sw(M2C, M2CDIR, M2CIDIR)
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   527
                prep_sw(MAKO, MAKOARC, MAKODIR, MAKOURL, MAKOHASH)
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   528
                install_sw(MAKO, MAKODIR, MAKOIDIR)
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   529
                prep_sw(PLY, PLYARC, PLYDIR, PLYURL, PLYHASH)
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   530
                install_sw(PLY, PLYDIR, PLYIDIR)
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   531
                prep_sw(PC, PCARC, PCDIR, PCURL, PCHASH)
1660
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   532
                install_sw(PC, PCDIR, PCIDIR, extra_env=PCENVIRON)
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   533
                prep_sw(COV, COVARC, COVDIR, COVURL, COVHASH)
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   534
                install_sw(COV, COVDIR, COVIDIR)
2023
aee270220d37 16784 Integrate Pybonjour
johansen <johansen@opensolaris.org>
parents: 2021
diff changeset
   535
                prep_sw(PBJ, PBJARC, PBJDIR, PBJURL, PBJHASH)
aee270220d37 16784 Integrate Pybonjour
johansen <johansen@opensolaris.org>
parents: 2021
diff changeset
   536
                install_sw(PBJ, PBJDIR, PBJIDIR)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   537
883
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   538
                # Remove some bits that we're not going to package, but be sure
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   539
                # not to complain if we try to remove them twice.
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   540
                def onerror(func, path, exc_info):
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   541
                        if exc_info[1].errno != errno.ENOENT:
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   542
                                raise
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   543
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   544
                for dir in ("cherrypy/scaffold", "cherrypy/test",
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   545
                    "cherrypy/tutorial"):
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   546
                        shutil.rmtree(os.path.join(root_dir, py_install_dir, dir),
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   547
                            onerror=onerror)
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   548
                try:
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   549
                        os.remove(os.path.join(root_dir, "usr/bin/mako-render"))
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   550
                except EnvironmentError, e:
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   551
                        if e.errno != errno.ENOENT:
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   552
                                raise
77885b2adc42 5539 SUNWpython-mako should deliver egg info
Danek Duvall <danek.duvall@sun.com>
parents: 849
diff changeset
   553
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   554
def hash_sw(swname, swarc, swhash):
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   555
        if swhash == None:
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   556
                return True
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   557
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   558
        print "checksumming %s" % swname
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1514
diff changeset
   559
        hash = hashlib.sha1()
1265
c700981b0af2 8656 build download hash check fails in Windows due to text mode open
Tom Mueller <Tom.Mueller@sun.com>
parents: 1231
diff changeset
   560
        f = open(swarc, "rb")
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   561
        while True:
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   562
                data = f.read(65536)
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   563
                if data == "":
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   564
                        break
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   565
                hash.update(data)
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   566
        f.close()
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   567
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   568
        if hash.hexdigest() == swhash:
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   569
                return True
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   570
        else:
1208
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   571
                print >> sys.stderr, "bad checksum! %s != %s" % \
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   572
                    (swhash, hash.hexdigest())
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   573
                return False
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   574
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   575
def prep_sw(swname, swarc, swdir, swurl, swhash):
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   576
        swarc = os.path.join(extern_dir, swarc)
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   577
        swdir = os.path.join(extern_dir, swdir)
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   578
        if not os.path.exists(extern_dir):
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   579
                os.mkdir(extern_dir)
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   580
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   581
        if not os.path.exists(swarc):
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   582
                print "downloading %s" % swname
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   583
                try:
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   584
                        fname, hdr = urllib.urlretrieve(swurl, swarc)
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   585
                except IOError:
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   586
                        pass
2176
9056aef72613 17679 setup.py checks during extern source retrieval too strict
Shawn Walker <shawn.walker@oracle.com>
parents: 2125
diff changeset
   587
                if not os.path.exists(swarc):
1208
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   588
                        print >> sys.stderr, "Unable to retrieve %s.\n" \
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   589
                            "Please retrieve the file " \
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   590
                            "and place it at: %s\n" % (swurl, swarc)
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   591
                        # remove a partial download or error message from proxy
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   592
                        remove_sw(swname)
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   593
                        sys.exit(1)
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   594
        if not os.path.exists(swdir):
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   595
                if not hash_sw(swname, swarc, swhash):
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   596
                        sys.exit(1)
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   597
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   598
                print "unpacking %s" % swname
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   599
                tar = tarfile.open(swarc)
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   600
                # extractall doesn't exist until python 2.5
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   601
                for m in tar.getmembers():
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   602
                        tar.extract(m, extern_dir)
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   603
                tar.close()
1191
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   604
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   605
        # If there are patches, apply them now.
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   606
        patchdir = os.path.join("patch", swname)
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   607
        already_patched = os.path.join(swdir, ".patched")
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   608
        if os.path.exists(patchdir) and not os.path.exists(already_patched):
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   609
                patches = os.listdir(patchdir)
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   610
                for p in patches:
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   611
                        patchpath = os.path.join(os.path.pardir,
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   612
                            os.path.pardir, patchdir, p)
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   613
                        print "Applying %s to %s" % (p, swname)
1265
c700981b0af2 8656 build download hash check fails in Windows due to text mode open
Tom Mueller <Tom.Mueller@sun.com>
parents: 1231
diff changeset
   614
                        args = ["patch", "-d", swdir, "-i", patchpath, "-p0"]
c700981b0af2 8656 build download hash check fails in Windows due to text mode open
Tom Mueller <Tom.Mueller@sun.com>
parents: 1231
diff changeset
   615
                        if osname == "windows":
c700981b0af2 8656 build download hash check fails in Windows due to text mode open
Tom Mueller <Tom.Mueller@sun.com>
parents: 1231
diff changeset
   616
                                args.append("--binary")
1208
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   617
                        ret = subprocess.Popen(args).wait()
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   618
                        if ret != 0:
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   619
                                print >> sys.stderr, \
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   620
                                    "patch failed and returned %d." % ret
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   621
                                print >> sys.stderr, \
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   622
                                    "Command was: %s" % " ".join(args)
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   623
                                sys.exit(1)
1191
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   624
                file(already_patched, "w").close()
a48bee2a4b2e 305 http_proxy value needs more checking for valid url syntax
johansen <johansen@sun.com>
parents: 1172
diff changeset
   625
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   626
def install_ldtp(swname, swdir, swidir):
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   627
        swdir = os.path.join(extern_dir, swdir)
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   628
        swinst_file = os.path.join(root_dir, py_install_dir, swidir + ".py")
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   629
        if not os.path.exists(swinst_file):
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   630
                print "installing %s" % swname
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   631
                args_config = ['./configure',
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   632
                    '--prefix=/usr',
1394
38c552cdcfbf 11763 make install noise / packages failure for ldtp if PYTHONPATH set
Shawn Walker <srw@sun.com>
parents: 1391
diff changeset
   633
                    '--bindir=/usr/bin',
38c552cdcfbf 11763 make install noise / packages failure for ldtp if PYTHONPATH set
Shawn Walker <srw@sun.com>
parents: 1391
diff changeset
   634
                    'PYTHONPATH=""',
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   635
                       ]
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   636
                args_make_install = ['make', 'install', 
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   637
                    'DESTDIR=%s' % root_dir
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   638
                       ]
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   639
                run_cmd(args_config, swdir)
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   640
                run_cmd(args_make_install, swdir)
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   641
1660
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   642
def install_sw(swname, swdir, swidir, extra_env=None):
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   643
        swdir = os.path.join(extern_dir, swdir)
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   644
        swinst_dir = os.path.join(root_dir, py_install_dir, swidir)
1660
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   645
        inst_env = os.environ.copy()
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   646
        if extra_env:
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   647
                inst_env.update(extra_env)
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   648
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   649
        if not os.path.exists(swinst_dir):
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   650
                print "installing %s" % swname
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1514
diff changeset
   651
                args = ['python2.6', 'setup.py', 'install',
498
e1c077b81de6 3135 SUNWpython-cherrypy delivers pyc files with embedded gate path
Danek Duvall <danek.duvall@sun.com>
parents: 465
diff changeset
   652
                    '--root=%s' % root_dir,
e1c077b81de6 3135 SUNWpython-cherrypy delivers pyc files with embedded gate path
Danek Duvall <danek.duvall@sun.com>
parents: 465
diff changeset
   653
                    '--install-lib=%s' % py_install_dir,
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   654
                    '--install-data=%s' % py_install_dir]
1660
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   655
                run_cmd(args, swdir, env=inst_env)
1391
1a9bd005489f 7987 LDTP package needs to be included in the gate
Michal Pryc <Michal.Pryc@Sun.Com>
parents: 1337
diff changeset
   656
1660
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   657
def run_cmd(args, swdir, env=None):
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   658
                if env is None:
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   659
                        env = os.environ
f99db08aa9db 13799 pycurl could stand to be built with optimization
Tim Foster <tim.foster@sun.com>
parents: 1637
diff changeset
   660
                ret = subprocess.Popen(args, cwd=swdir, env=env).wait()
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   661
                if ret != 0:
1208
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   662
                        print >> sys.stderr, \
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   663
                            "install failed and returned %d." % ret
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   664
                        print >> sys.stderr, \
9d8a558cae2d 9901 Patch failure should stop build
johansen <johansen@sun.com>
parents: 1201
diff changeset
   665
                            "Command was: %s" % " ".join(args)
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   666
                        sys.exit(1)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   667
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   668
def remove_sw(swname):
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   669
        print("deleting %s" % swname)
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   670
        for file in os.listdir(extern_dir):
465
44fddb622fe4 2818 We should include pyOpenSSL in the gate
Brad Hall <bhall@eng.sun.com>
parents: 454
diff changeset
   671
                if fnmatch.fnmatch(file, "%s*" % swname):
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   672
                        fpath = os.path.join(extern_dir, file)
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   673
                        if os.path.isfile(fpath):
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   674
                                os.unlink(fpath)
454
c27abbc11c8c 2811 clobber doesn't clobber all versions of dependencies
Shawn Walker <shawn.walker@sun.com>
parents: 452
diff changeset
   675
                        else:
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   676
                                shutil.rmtree(fpath, True)
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   677
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   678
class build_func(_build):
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   679
        def initialize_options(self):
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   680
                _build.initialize_options(self)
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   681
                self.build_base = build_dir
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   682
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   683
def get_hg_version():
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   684
        try:
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   685
                p = subprocess.Popen(['hg', 'id', '-i'], stdout = subprocess.PIPE)
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   686
                return p.communicate()[0].strip()
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   687
        except OSError:
384
9d4746e5dd3e 115 pkg needs to not have a cow on a SIGPIPE
Shawn Walker <swalker@opensolaris.org>
parents: 383
diff changeset
   688
                print >> sys.stderr, "ERROR: unable to obtain mercurial version"
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   689
                return "unknown"
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   690
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   691
def syntax_check(filename):
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   692
        """ Run python's compiler over the file, and discard the results.
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   693
            Arrange to generate an exception if the file does not compile.
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   694
            This is needed because distutil's own use of pycompile (in the
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   695
            distutils.utils module) is broken, and doesn't stop on error. """
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   696
        try:
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   697
                py_compile.compile(filename, os.devnull, doraise=True)
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   698
        except py_compile.PyCompileError, e:
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   699
                raise DistutilsError("%s: failed syntax check: %s" %
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   700
                    (filename, e))
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   701
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   702
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   703
class build_py_func(_build_py):
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   704
        # override the build_module method to do VERSION substitution on pkg/__init__.py
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   705
        def build_module (self, module, module_file, package):
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   706
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   707
                if module == "__init__" and package == "pkg":
422
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   708
                        versionre = '(?m)^VERSION[^"]*"([^"]*)"'
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   709
                        # Grab the previously-built version out of the build
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   710
                        # tree.
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   711
                        try:
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   712
                                ocontent = \
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   713
                                    file(self.get_module_outfile(self.build_lib,
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   714
                                        [package], module)).read()
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   715
                                ov = re.search(versionre, ocontent).group(1)
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   716
                        except IOError:
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   717
                                ov = None
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   718
                        v = get_hg_version()
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   719
                        vstr = 'VERSION = "%s"' % v
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   720
                        # If the versions haven't changed, there's no need to
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   721
                        # recompile.
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   722
                        if v == ov:
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   723
                                return
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   724
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   725
                        mcontent = file(module_file).read()
422
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   726
                        mcontent = re.sub(versionre, vstr, mcontent)
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   727
                        tmpfd, tmp_file = tempfile.mkstemp()
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   728
                        os.write(tmpfd, mcontent)
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   729
                        os.close(tmpfd)
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   730
                        print "doing version substitution: ", v
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   731
                        rv = _build_py.build_module(self, module, tmp_file, package)
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   732
                        os.unlink(tmp_file)
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   733
                        return rv
422
c69607a5bdce 2554 make install could stand to be quieter
Danek Duvall <danek.duvall@sun.com>
parents: 413
diff changeset
   734
849
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   735
                # Will raise a DistutilsError on failure.
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   736
                syntax_check(module_file)
5fd94ce78823 3813 pkg build needs to fail when sub-builds fail
Dan Price <dp@eng.sun.com>
parents: 836
diff changeset
   737
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   738
                return _build_py.build_module(self, module, module_file, package)
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   739
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   740
class clean_func(_clean):
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   741
        def initialize_options(self):
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   742
                _clean.initialize_options(self)
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   743
                self.build_base = build_dir
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   744
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   745
class clobber_func(Command):
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   746
        user_options = []
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   747
        description = "Deletes any and all files created by setup"
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   748
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   749
        def initialize_options(self):
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   750
                pass
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   751
        def finalize_options(self):
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   752
                pass
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   753
        def run(self):
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   754
                # nuke everything
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   755
                print("deleting " + dist_dir)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   756
                shutil.rmtree(dist_dir, True)
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   757
                print("deleting " + build_dir)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   758
                shutil.rmtree(build_dir, True)
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   759
                print("deleting " + root_dir)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   760
                shutil.rmtree(root_dir, True)
534
44a901d55161 676 'make install' fails if GNU install is first in path
Dan Price <dp@eng.sun.com>
parents: 513
diff changeset
   761
                print("deleting " + pkgs_dir)
44a901d55161 676 'make install' fails if GNU install is first in path
Dan Price <dp@eng.sun.com>
parents: 513
diff changeset
   762
                shutil.rmtree(pkgs_dir, True)
1099
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   763
                print("deleting " + extern_dir)
bd94d4910b8a 8602 tidy top level of source directory
Dan Price <dp@eng.sun.com>
parents: 1024
diff changeset
   764
                shutil.rmtree(extern_dir, True)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   765
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   766
class test_func(Command):
1101
35f360e2ee19 5247 Test suite should provide timing info
Brock Pytlik <bpytlik@sun.com>
parents: 1099
diff changeset
   767
        # NOTE: these options need to be in sync with tests/run.py and the
35f360e2ee19 5247 Test suite should provide timing info
Brock Pytlik <bpytlik@sun.com>
parents: 1099
diff changeset
   768
        # list of options stored in initialize_options below. The first entry
35f360e2ee19 5247 Test suite should provide timing info
Brock Pytlik <bpytlik@sun.com>
parents: 1099
diff changeset
   769
        # in each tuple must be the exact name of a member variable.
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   770
        user_options = [
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1674
diff changeset
   771
            ("archivedir=", 'a', "archive failed tests <dir>"),
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   772
            ("baselinefile=", 'b', "baseline file <file>"),
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   773
            ("coverage", "c", "collect code coverage data"),
448
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   774
            ("genbaseline", 'g', "generate test baseline"),
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   775
            ("only=", "o", "only <regex>"),
448
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   776
            ("parseable", 'p', "parseable output"),
1101
35f360e2ee19 5247 Test suite should provide timing info
Brock Pytlik <bpytlik@sun.com>
parents: 1099
diff changeset
   777
            ("timing", "t", "timing file <file>"),
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   778
            ("verbosemode", 'v', "run tests in verbose mode"),
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1674
diff changeset
   779
            ("stoponerr", 'x', "stop when a baseline mismatch occurs"),
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1674
diff changeset
   780
            ("debugoutput", 'd', "emit debugging output"),
1716
10e09e28528a 12257 setup.py doesn't respect run.py options [fix traceback]
Dan Price <dp@eng.sun.com>
parents: 1715
diff changeset
   781
            ("showonexpectedfail", 'f',
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1674
diff changeset
   782
                "show all failure info, even for expected fails"),
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1674
diff changeset
   783
            ("startattest=", 's', "start at indicated test"),
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   784
        ]
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   785
        description = "Runs unit and functional tests"
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   786
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   787
        def initialize_options(self):
448
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   788
                self.only = ""
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   789
                self.baselinefile = ""
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   790
                self.verbosemode = 0
448
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   791
                self.parseable = 0
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   792
                self.genbaseline = 0
1101
35f360e2ee19 5247 Test suite should provide timing info
Brock Pytlik <bpytlik@sun.com>
parents: 1099
diff changeset
   793
                self.timing = 0
1513
3ece69a26155 5032 make coverage should only report on the files in our gate
Danek Duvall <danek.duvall@sun.com>
parents: 1508
diff changeset
   794
                self.coverage = 0
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1674
diff changeset
   795
                self.stoponerr = 0
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1674
diff changeset
   796
                self.debugoutput = 0
1716
10e09e28528a 12257 setup.py doesn't respect run.py options [fix traceback]
Dan Price <dp@eng.sun.com>
parents: 1715
diff changeset
   797
                self.showonexpectedfail = 0
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1674
diff changeset
   798
                self.startattest = ""
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1674
diff changeset
   799
                self.archivedir = ""
1101
35f360e2ee19 5247 Test suite should provide timing info
Brock Pytlik <bpytlik@sun.com>
parents: 1099
diff changeset
   800
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   801
        def finalize_options(self):
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   802
                pass
1101
35f360e2ee19 5247 Test suite should provide timing info
Brock Pytlik <bpytlik@sun.com>
parents: 1099
diff changeset
   803
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   804
        def run(self):
1101
35f360e2ee19 5247 Test suite should provide timing info
Brock Pytlik <bpytlik@sun.com>
parents: 1099
diff changeset
   805
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   806
                os.putenv('PYEXE', sys.executable)
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   807
                os.chdir(os.path.join(pwd, "tests"))
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   808
448
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   809
                # Reconstruct the cmdline and send that to run.py
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   810
                cmd = [sys.executable, "run.py"]
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   811
                args = ""
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   812
                if "test" in sys.argv:
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   813
                        args = sys.argv[sys.argv.index("test")+1:]
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   814
                        cmd.extend(args)
448
bcfa99ac18b0 2664 test suite baseline enhancements
Brad Hall <bhall@eng.sun.com>
parents: 430
diff changeset
   815
                subprocess.call(cmd)
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   816
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   817
class dist_func(_bdist):
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   818
        def initialize_options(self):
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   819
                _bdist.initialize_options(self)
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   820
                self.dist_dir = dist_dir
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   821
2180
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   822
class info_func(Command):
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   823
        user_options = [
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   824
            ("pkg=", None, "Component package name")
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   825
        ]
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   826
        description = "Print component information"
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   827
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   828
        def initialize_options(self):
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   829
                self.pkg = ""
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   830
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   831
        def finalize_options(self):
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   832
                self.pkg = urllib.unquote(self.pkg.rsplit(".", 1)[0])
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   833
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   834
        pkginfo = {
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   835
            "library/python-2/cherrypy": (CPVER, CPVER, CPURL),
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   836
            "library/python-2/coverage": (COVVER, COVPVER, COVURL),
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   837
            "library/python-2/m2crypto": (M2CVER, M2CVER, M2CURL),
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   838
            "library/python-2/mako": (MAKOVER, MAKOVER, MAKOURL),
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   839
            "library/python-2/ply": (PLYVER, PLYVER, PLYURL),
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   840
            "library/python-2/pybonjour": (PBJVER, PBJVER, PBJURL),
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   841
            "library/python-2/pycurl": (PCVER, PCPVER, PCURL),
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   842
            "system/desktop/ldtp": (LDTPVER, LDTPVER, LDTPURL)
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   843
        }
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   844
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   845
        def run(self):
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   846
                if self.pkg in self.pkginfo:
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   847
                        print "-D SOURCE_VER=%s -D PKG_VER=%s " \
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   848
                            "-D SOURCE_URL=%s" % self.pkginfo[self.pkg]
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   849
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   850
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   851
# These are set to real values based on the platform, down below
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   852
compile_args = None
1637
0a60d77db8d9 13796 pkg(5) could stand to have its C modules optimized
Danek Duvall <danek.duvall@sun.com>
parents: 1632
diff changeset
   853
if osname in ("sunos", "linux", "darwin"):
0a60d77db8d9 13796 pkg(5) could stand to have its C modules optimized
Danek Duvall <danek.duvall@sun.com>
parents: 1632
diff changeset
   854
        compile_args = [ "-O3" ]
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   855
link_args = None
613
886277645061 3956 Windows API test cases fail
Tom Mueller <Tom.Mueller@sun.com>
parents: 591
diff changeset
   856
ext_modules = [
886277645061 3956 Windows API test cases fail
Tom Mueller <Tom.Mueller@sun.com>
parents: 591
diff changeset
   857
        Extension(
886277645061 3956 Windows API test cases fail
Tom Mueller <Tom.Mueller@sun.com>
parents: 591
diff changeset
   858
                'actions._actions',
886277645061 3956 Windows API test cases fail
Tom Mueller <Tom.Mueller@sun.com>
parents: 591
diff changeset
   859
                _actions_srcs,
886277645061 3956 Windows API test cases fail
Tom Mueller <Tom.Mueller@sun.com>
parents: 591
diff changeset
   860
                include_dirs = include_dirs,
886277645061 3956 Windows API test cases fail
Tom Mueller <Tom.Mueller@sun.com>
parents: 591
diff changeset
   861
                extra_compile_args = compile_args,
886277645061 3956 Windows API test cases fail
Tom Mueller <Tom.Mueller@sun.com>
parents: 591
diff changeset
   862
                extra_link_args = link_args
886277645061 3956 Windows API test cases fail
Tom Mueller <Tom.Mueller@sun.com>
parents: 591
diff changeset
   863
                ),
1632
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   864
        Extension(
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   865
                'solver',
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   866
                solver_srcs,
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   867
                include_dirs = include_dirs + ["."],
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   868
                extra_compile_args = compile_args,
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   869
                extra_link_args = solver_link_args,
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   870
                define_macros = [('_FILE_OFFSET_BITS', '64')]
082a54aa7b58 13499 port solver to non-sunos platforms
Tom Mueller <Tom.Mueller@sun.com>
parents: 1557
diff changeset
   871
                ),
613
886277645061 3956 Windows API test cases fail
Tom Mueller <Tom.Mueller@sun.com>
parents: 591
diff changeset
   872
        ]
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   873
elf_libraries = None
742
909b912fa942 3011 new depot index page desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 708
diff changeset
   874
data_files = web_files
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   875
cmdclasses = {
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   876
        'install': install_func,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   877
        'build': build_func,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   878
        'build_py': build_py_func,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   879
        'bdist': dist_func,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   880
        'lint': lint_func,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   881
        'clean': clean_func,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   882
        'clobber': clobber_func,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   883
        'test': test_func,
2180
50a104a28193 17669 Packages from IPS consolidation should include metadata on upstream packages
Danek Duvall <danek.duvall@oracle.com>
parents: 2176
diff changeset
   884
        'info': info_func,
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   885
        }
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   886
383
08762e4dac3c 1068 cleanup pylint errors caused by portable package
Tom Mueller <Tom.Mueller@sun.com>
parents: 365
diff changeset
   887
# all builds of IPS should have manpages
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   888
data_files += [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   889
        (man1_dir, man1_files),
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   890
        (man1m_dir, man1m_files),
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   891
        (man5_dir, man5_files),
2046
2522cde7adc2 13536 We need a way to audit one or more packages
Tim Foster <tim.s.foster@oracle.com>
parents: 2041
diff changeset
   892
        (resource_dir, resource_files),
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   893
        ]
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   894
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   895
if osname == 'sunos':
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   896
        # Solaris-specific extensions are added here
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   897
        data_files += [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   898
                (zones_dir, zones_files),
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   899
                (brand_dir, brand_files),
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1452
diff changeset
   900
                (etcbrand_dir, etcbrand_files),
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   901
                (smf_dir, smf_files),
1498
1800f38ca303 6133 need to add pkg commands in /etc/security/exec_attr with "Software Installation" profile
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1483
diff changeset
   902
                (execattrd_dir, execattrd_files),
1800f38ca303 6133 need to add pkg commands in /etc/security/exec_attr with "Software Installation" profile
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1483
diff changeset
   903
                (authattrd_dir, authattrd_files),
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   904
                ]
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   905
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   906
if osname == 'sunos' or osname == "linux":
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   907
        # Unix platforms which the elf extension has been ported to
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   908
        # are specified here, so they are built automatically
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   909
        elf_libraries = ['elf']
613
886277645061 3956 Windows API test cases fail
Tom Mueller <Tom.Mueller@sun.com>
parents: 591
diff changeset
   910
        ext_modules += [
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   911
                Extension(
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   912
                        'elf',
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   913
                        elf_srcs,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   914
                        include_dirs = include_dirs,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   915
                        libraries = elf_libraries,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   916
                        extra_compile_args = compile_args,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   917
                        extra_link_args = link_args
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   918
                        ),
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   919
                ]
290
6c5c87515614 160 Make IPS cross-platform for use across other supported OS's (missing files)
Tom Mueller <Tom.Mueller@Sun.COM>
parents:
diff changeset
   920
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   921
        # Solaris has built-in md library and Solaris-specific arch extension
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   922
        # All others use OpenSSL and cross-platform arch module
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   923
        if osname == 'sunos':
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   924
            elf_libraries += [ 'md' ]
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   925
            ext_modules += [
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   926
                    Extension(
430
3fb945d3bff3 2627 Test suite should have support for baselining
Brad Hall <bhall@eng.sun.com>
parents: 424
diff changeset
   927
                            'arch',
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   928
                            arch_srcs,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   929
                            include_dirs = include_dirs,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   930
                            extra_compile_args = compile_args,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   931
                            extra_link_args = link_args,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   932
                            define_macros = [('_FILE_OFFSET_BITS', '64')]
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   933
                            ),
691
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   934
                    Extension(
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   935
                            'pspawn',
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   936
                            pspawn_srcs,
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   937
                            include_dirs = include_dirs,
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   938
                            extra_compile_args = compile_args,
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   939
                            extra_link_args = link_args,
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   940
                            define_macros = [('_FILE_OFFSET_BITS', '64')]
cd1d9c1e82f3 4612 Alternative to os.fork needed for subprocess
johansen <johansen@sun.com>
parents: 661
diff changeset
   941
                            ),
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   942
                    ]
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   943
        else:
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   944
            elf_libraries += [ 'ssl' ]
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   945
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   946
setup(cmdclass = cmdclasses,
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1514
diff changeset
   947
    name = 'pkg',
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1514
diff changeset
   948
    version = '0.1',
395
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   949
    package_dir = {'pkg':'modules'},
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   950
    packages = packages,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   951
    data_files = data_files,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   952
    ext_package = 'pkg',
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   953
    ext_modules = ext_modules,
0ae5e72ba7ee 1958 Modify setup.py to handle pkgrecv
Tom Mueller <Tom.Mueller@sun.com>
parents: 384
diff changeset
   954
    )