Darwin build of Python-2.0c1

Steven D. Majewski sdm7g at virginia.edu
Tue Oct 10 12:54:53 EDT 2000


The "What's new in Python-2.0" on :
<http://www.pythonlabs.com/products/python2.0/news.html>
mentions initial support for static builds on Darwin/MacOSX.

It does in fact now build and install right out of the box,
using "configure --with-dyld --with-suffix=.x" 

Dynamic library support also work almost out of the box --
you just have to uncomment the "#*shared*" line in Modules/Setup.

( *DON'T* use --with-next-framework ! just edit Modules/Setup and
   run make again. ) 

cryptmodule will build if you uncomment it.
bsddb & threading get added automatically by Setup.config. 
readline, zlib, and pyexpat all build if you have those libraries
and you edit the locations in Setup. 

'make test' results after fixes below:

...
test_xmllib
test_zipfile
test_zlib
86 tests OK.
2 tests failed: test_format test_largefile
18 tests skipped: test_al test_audioop test_cd test_cl test_dbm test_dl 
test_gdbm test_gl test_imageop test_imgfile test_linuxaudiodev test_nis 
test_poll test_rgbimg test_sunaudiodev test_timing test_winreg test_winsound


Remaing gotcha's:


[1] Move the line for fcntlmodule above the *shared* marker.
You can't build fcntlmodule as shared -- HFS+ filesystem is case
blind, and you'll get a confusion resolving both FCNTL and fcntl
as the same file if fcntlmodule.so is build. Keeping it built-in
to the python exec. avoids this. 


[2] The platform specific header files ( FCNTL.py, TERMIOS.py, SOCKET.py ...)
for Darwin aren't shipped pre-built in the distribution, and they aren't
built until the "make install" phase, so those tests will be skipped
on 'make test' done before install. 


[3] test/test_fcntl.py will still fail unless you add "Darwin1.2" 
among the BSD's:
*** old.test_fcntl.py   Tue Oct 10 12:18:33 2000
--- test_fcntl.py       Tue Oct 10 12:21:00 2000
***************
*** 16,22 ****
  if verbose:
      print 'Status from fnctl with O_NONBLOCK: ', rv
      
! if sys.platform in ('netbsd1', 
                      'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
                      'bsdos2', 'bsdos3', 'bsdos4',
                      'openbsd', 'openbsd2'):
--- 16,22 ----
  if verbose:
      print 'Status from fnctl with O_NONBLOCK: ', rv
      
! if sys.platform in ('netbsd1', 'Darwin1.2',
                      'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
                      'bsdos2', 'bsdos3', 'bsdos4',
                      'openbsd', 'openbsd2'):


---|  Steven D. Majewski   (804-982-0831)  <sdm7g at Virginia.EDU>  |---
---|  Department of Molecular Physiology and Biological Physics  |---
---|  University of Virginia             Health Sciences Center  |---
---|  P.O. Box 10011            Charlottesville, VA  22906-0011  |---
		"All operating systems want to be unix, 
		 All programming languages want to be lisp." 





More information about the Python-list mailing list