Lines Matching +full:macosx +full:- +full:version +full:- +full:min
6 - 2.7 end-of-life issues:
7 - Python 3 installs now update the Current version link
9 - fully support running under Python 3 as well as 2.7
10 - support building on newer macOS systems with SIP
11 - fully support building on macOS 10.9+
12 - support 10.6+ on best effort
13 - support bypassing docs build by supplying a prebuilt
14 docs html tarball in the third-party source library,
17 python-3.x.y-docs-html.tar.bz2
20 - support Intel 64-bit-only () and 32-bit-only installer builds
21 - build and use internal Tcl/Tk 8.6 for 10.6+ builds
22 - deprecate use of explicit SDK (--sdk-path=) since all but the oldest
27 supported with build-installer.
28 - use generic "gcc" as compiler (CC env var) rather than "gcc-4.2"
31 - test building with SDKROOT and DEVELOPER_DIR xcrun env variables
72 QUOTED_VALUE='quotes' -> str('quotes')
73 UNQUOTED_VALUE=noquotes -> str('noquotes')
80 raise RuntimeError("Cannot find variable %s" % variable[:-1])
103 _cache_getFullVersion = ln.split()[-1][1:-1]
105 raise RuntimeError("Cannot find full version??")
108 FW_VERSION_PREFIX = "--undefined--" # initialized in parseOptions
109 FW_SSL_DIRECTORY = "--undefined--" # initialized in parseOptions
114 # The directory we'll use to store third-party sources. Set this to something
115 # else if you don't want to re-fetch required libraries every time.
116 DEPSRC = os.path.join(WORKDIR, 'third-party')
117 DEPSRC = os.path.expanduser('~/Universal/other-sources')
120 '32-bit': ('i386', 'ppc',),
121 '64-bit': ('x86_64', 'ppc64',),
123 'intel-32': ('i386',),
124 'intel-64': ('x86_64',),
125 '3-way': ('ppc', 'i386', 'x86_64'),
129 '64-bit': '10.5',
130 '3-way': '10.5',
132 'intel-32': '10.4',
133 'intel-64': '10.5',
139 UNIVERSALARCHS = '32-bit'
150 # $MACOSX_DEPLOYMENT_TARGET -> minimum OS X level
161 '10.4': ('gcc-4.0', 'g++-4.0'),
175 -? or -h: Show this message
176 -b DIR
177 --build-dir=DIR: Create build here (default: %(WORKDIR)r)
178 --third-party=DIR: Store third-party sources here (default: %(DEPSRC)r)
179 --sdk-path=DIR: Location of the SDK (deprecated, use SDKROOT env variable)
180 --src-dir=DIR: Location of the Python sources (default: %(SRCDIR)r)
181 --dep-target=10.n macOS deployment target (default: %(DEPTARGET)r)
182 …--universal-archs=x universal architectures (options: %(UNIVERSALOPTS)r, default: %(UNIVERSALARCH…
199 # of Tcl/Tk or a modern version.
200 # We use the old version when buildin on
227 # The names will be inserted into the rtf version of the License.
246 url="https://www.openssl.org/source/openssl-1.1.1i.tar.gz",
273 url="ftp://ftp.tcl.tk/pub/tcl//tcl8_6/tcl%s-src.tar.gz"%(tcl_tk_ver,),
277 '--enable-shared',
278 '--enable-threads',
279 '--libdir=/Library/Frameworks/Python.framework/Versions/%s/lib'%(getVersion(),),
290 url="ftp://ftp.tcl.tk/pub/tcl//tcl8_6/tk%s-src.tar.gz"%(tcl_tk_ver,),
295 '--enable-aqua',
296 '--enable-shared',
297 '--enable-threads',
298 '--libdir=/Library/Frameworks/Python.framework/Versions/%s/lib'%(getVersion(),),
313 url="http://tukaani.org/xz/xz-5.2.3.tar.gz",
316 '--disable-dependency-tracking',
324 url="http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz",
327 "--enable-widec",
328 "--without-cxx",
329 "--without-cxx-binding",
330 "--without-ada",
331 "--without-curses-h",
332 "--enable-shared",
333 "--with-shared",
334 "--without-debug",
335 "--without-normal",
336 "--without-tests",
337 "--without-manpages",
338 "--datadir=/usr/share",
339 "--sysconfdir=/etc",
340 "--sharedstatedir=/usr/com",
341 "--with-terminfo-dirs=/usr/share/terminfo",
342 "--with-default-terminfo-dir=/usr/share/terminfo",
343 "--libdir=/Library/Frameworks/Python.framework/Versions/%s/lib"%(getVersion(),),
346 ("ftp://ftp.invisible-island.net/ncurses//5.9/ncurses-5.9-20120616-patch.sh.bz2",
350 …install='make && make install DESTDIR=%s && cd %s/usr/local/lib && ln -fs ../../../Library/Framewo…
358 url="https://sqlite.org/2020/sqlite-autoconf-3340000.tar.gz",
360 extra_cflags=('-Os '
361 '-DSQLITE_ENABLE_FTS5 '
362 '-DSQLITE_ENABLE_FTS4 '
363 '-DSQLITE_ENABLE_FTS3_PARENTHESIS '
364 '-DSQLITE_ENABLE_JSON1 '
365 '-DSQLITE_ENABLE_RTREE '
366 '-DSQLITE_TCL=0 '
367 '%s' % ('','-DSQLITE_WITHOUT_ZONEMALLOC ')[LT_10_5]),
369 '--enable-threadsafe',
370 '--enable-shared=no',
371 '--enable-static=yes',
372 '--disable-readline',
373 '--disable-dependency-tracking',
382 url="http://bzip.org/1.0.6/bzip2-1.0.6.tar.gz",
385 install='make install CC=%s CXX=%s, PREFIX=%s/usr/local/ CFLAGS="-arch %s"'%(
388 ' -arch '.join(ARCHLIST),
393 url="http://www.gzip.org/zlib/zlib-1.2.3.tar.gz",
396 install='make install CC=%s CXX=%s, prefix=%s/usr/local/ CFLAGS="-arch %s"'%(
399 ' -arch '.join(ARCHLIST),
405 url="http://ftp.gnu.org/pub/gnu/readline/readline-6.1.tar.gz" ,
411 ('http://ftp.gnu.org/pub/gnu/readline/readline-6.1-patches/readline61-001',
413 ('http://ftp.gnu.org/pub/gnu/readline/readline-6.1-patches/readline61-002',
423 url="http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz",
428 '--includedir=/usr/local/include/db4',
467 long_name="UNIX command-line tools",
502 postflight="scripts/postflight.patch-profile",
504 source="/empty-dir",
512 This package installs (or upgrades from an earlier version)
517 source="/empty-dir",
567 search Tcl or Tk configuration file for version line
579 fatal("Version variable %s not found in framework configuration file: %s"
596 # Because we only support dynamic load of only one major/minor version of
599 # 1. there is a user-installed framework (usually ActiveTcl) in (or linked
601 # enforce that the version of the user-installed framework also
602 # exists in the system-supplied Tcl/Tk frameworks. Time to support
620 fatal("The Tcl and Tk frameworks are not the same version.")
622 print(" -- Building with external Tcl/Tk %s frameworks"
633 print(" -- Building private copy of Tcl/Tk")
671 [ 'build-dir=', 'third-party=', 'sdk-path=' , 'src-dir=',
672 'dep-target=', 'universal-archs=', 'help' ])
683 if k in ('-h', '-?', '--help'):
687 elif k in ('-d', '--build-dir'):
690 elif k in ('--third-party',):
693 elif k in ('--sdk-path',):
694 print(" WARNING: --sdk-path is no longer supported")
696 elif k in ('--src-dir',):
699 elif k in ('--dep-target', ):
703 elif k in ('--universal-archs', ):
726 print("-- Settings:")
729 print(" * Third-party source: %s" % DEPSRC)
735 print(" -- Building a Python %s framework at patch level %s"
748 the archive ends with "-src" but the uncompressed directory does not.
755 retval = os.path.basename(archiveName[:-7])
757 and retval.endswith('-src')):
758 retval = retval[:-4]
764 retval = os.path.basename(archiveName[:-8])
770 retval = os.path.basename(archiveName[:-4])
776 retval = os.path.basename(archiveName[:-4])
846 "i386": ["darwin-i386-cc"],
847 "x86_64": ["darwin64-x86_64-cc", "enable-ec_nistp_64_gcc_128"],
848 "arm64": ["darwin64-arm64-cc"],
849 "ppc": ["darwin-ppc-cc"],
850 "ppc64": ["darwin64-ppc-cc"],
854 # "enable-ec_nistp_64_gcc_128" option to get compile errors when
855 # building on our 10.6 gcc-4.2 environment. There have been other
857 # So, for now, do not try to use "enable-ec_nistp_64_gcc_128" when
860 arch_opts['x86_64'].remove('enable-ec_nistp_64_gcc_128')
863 "no-idea",
864 "no-mdc2",
865 "no-rc5",
866 "no-zlib",
867 "no-ssl3",
868 # "enable-unit-test",
870 "--prefix=%s"%os.path.join("/", *FW_VERSION_PREFIX),
871 "--openssldir=%s"%os.path.join("/", *FW_SSL_DIRECTORY),
874 configure_opts.append("no-asm")
885 os.path.basename(srcdir) + "-universal")
907 # copy arch-independent files from last build into the basedir framework
916 # e.g. -> "1.0.0"
919 # e.g. -> "libcrypto.1.0.0.dylib"
922 # e.g. -> "libssl.1.0.0.dylib"
929 # merge the individual arch-dependent shared libs into a fat shared lib
935 runCommand("lipo -create -output " +
944 # and the versioned links so that the setup.py post-build import test
965 to customize this process, basically a poor-mans DarwinPorts.
977 archiveName = os.path.split(url)[-1]
1000 runCommand('patch -p%s < %s'%(recipe.get('patchlevel', 1),
1012 runCommand('bunzip2 -fk %s' % shellQuote(fn))
1013 fn = fn[:-4]
1022 "--prefix=/usr/local",
1023 "--enable-static",
1024 "--disable-shared",
1025 #"CPP=gcc -arch %s -E"%(' -arch '.join(archList,),),
1030 if '--disable-static' in args:
1031 configure_args.remove('--enable-static')
1032 if '--enable-shared' in args:
1033 configure_args.remove('--disable-shared')
1038 "CFLAGS=%s-mmacosx-version-min=%s -arch %s "
1039 "-I%s/usr/local/include"%(
1042 ' -arch '.join(archList),
1043 shellQuote(basedir)[1:-1],),
1044 "LDFLAGS=-mmacosx-version-min=%s -L%s/usr/local/lib -arch %s"%(
1046 shellQuote(basedir)[1:-1],
1047 ' -arch '.join(archList)),
1051 "CFLAGS=%s-mmacosx-version-min=%s -arch %s "
1052 "-I%s/usr/local/include"%(
1055 ' -arch '.join(archList),
1056 shellQuote(basedir)[1:-1],),
1069 # call special-case build recipe, e.g. for openssl
1109 # Search third-party source directory for a pre-built version of the docs.
1111 # python-3.9.0b1-docs-html.tar.bz2
1113 if f.startswith('python-'+getFullVersion())
1114 if f.endswith('-docs-html.tar.bz2') ]
1121 # Extract the first archive found for this version into build
1123 # see if tar extracted a directory ending in -docs-html
1125 if f.endswith('-docs-html')
1130 print(' -- using pre-built python documentation from %s'%archivefile)
1155 os.makedirs(os.path.join(rootDir, 'empty-dir'))
1159 # Extract the version from the configure file, needed to calculate
1161 version = getVersion()
1168 runCommand("%s -C --enable-framework --enable-universalsdk=/ "
1169 "--with-universal-archs=%s "
1175 "LDFLAGS='-g -L%s/libraries/usr/local/lib' "
1176 "CFLAGS='-g -I%s/libraries/usr/local/include' 2>&1"%(
1179 (' ', '--with-computed-gotos ')[PYTHON_3],
1180 (' ', '--without-ensurepip ')[PYTHON_3],
1181 (' ', "--with-openssl='%s/libraries/usr/local'"%(
1182 shellQuote(WORKDIR)[1:-1],))[PYTHON_3],
1183 (' ', "--with-tcltk-includes='-I%s/libraries/usr/local/include'"%(
1184 shellQuote(WORKDIR)[1:-1],))[internalTk()],
1185 (' ', "--with-tcltk-libs='-L%s/libraries/usr/local/lib -ltcl8.6 -ltk8.6'"%(
1186 shellQuote(WORKDIR)[1:-1],))[internalTk()],
1187 shellQuote(WORKDIR)[1:-1],
1188 shellQuote(WORKDIR)[1:-1]))
1193 # DYLD_LIBRARY_PATH, pointing to the third-party libs,
1194 # in build-installer.py's process environment and it was
1210 # us to pass in version control tags, like GITTAG, to a build from a
1253 runCommand("rm -r %s/pkgconfig"%(
1260 frmDirVersioned = os.path.join(frmDir, 'Versions', version)
1261 path_to_lib = os.path.join(frmDirVersioned, 'lib', 'python%s'%(version,))
1273 os.chown(os.path.join(dirpath, dn), -1, gid)
1283 os.chown(p, -1, gid)
1287 # expected library path and version
1288 data = captureCommand("otool -L %s" % shellQuote(p))
1300 VERSION=None
1305 if ln.startswith('VERSION='):
1306 VERSION=ln.split()[1]
1314 LDVERSION = LDVERSION.replace('$(VERSION)', VERSION)
1316 config_suffix = '-' + LDVERSION
1318 config_suffix = config_suffix + '-darwin'
1324 # the end-users system. Also remove the directories from _sysconfigdata.py
1327 include_path = '-I%s/libraries/usr/local/include' % (WORKDIR,)
1328 lib_path = '-L%s/libraries/usr/local/lib' % (WORKDIR,)
1359 # XXX this is extra-fragile
1394 'Python.framework', 'Versions', version, 'bin')
1399 os.path.join(frmDir, 'Versions', version, 'bin')):
1408 data = data.replace('$VERSION', getVersion())
1435 # The major version (such as 2.5) is included in the package name
1436 # because having two version of python installed at the same time is
1438 pkgname = '%s-%s'%(recipe['name'], getVersion())
1445 print("- building package %s"%(pkgname,))
1471 … runCommand("pax -wf %s . 2>&1"%(shellQuote(os.path.join(packageContents, 'Archive.pax')),))
1472 … runCommand("gzip -9 %s 2>&1"%(shellQuote(os.path.join(packageContents, 'Archive.pax')),))
1539 IFPkgFlagPackageLocation='%s-%s.pkg'%(item['name'], getVersion()),
1600 data = captureCommand("du -ks %s"%(
1618 # version numbers of the macOS version we are building on, i.e.
1619 # '10.9' as before for 10.9+ variant, '11.0' for universal2 11.0-.
1624 'python-%s-macosx%s'%(getFullVersion(),build_system_version))
1626 imagepath = imagepath + '-%04d-%02d-%02d'%(time.localtime()[:3])
1636 cmd = ("hdiutil create -format UDRW -volname %s -srcfolder %s -size 100m %s"%(
1647 print(" -- retrying hdiutil create")
1654 runCommand("hdiutil attach %s -mountroot %s"%(
1660 runCommand("SetFile -a C %s/"%(
1666 runCommand("hdiutil convert %s -format UDZO -o %s"%(
1688 runCommand("cc -o %s %s/seticon.m -framework Cocoa"%(
1709 # Then build third-party libraries such as sleepycat DB4.
1720 # be (re-)installed.
1733 patchScript("scripts/postflight.patch-profile", fn)