Update of /cvsroot/fink/experimental/danielj In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv4577
Added Files: python32.info python32.patch Log Message: Python 3.2a1 experimental package. --- NEW FILE: python32.info --- Package: python32 Version: 3.2 Revision: 0.a1.1 Maintainer: Daniel Johnson <dan...@daniel-johnson.org> Depends: << %N-shlibs (= %v-%r), blt-shlibs, bzip2-shlibs, gdbm3-shlibs, libgettext8-shlibs, libncursesw5-shlibs, readline5-shlibs, sqlite3-shlibs (>= 3.2.8-1001), tcltk (>= 8.4.1-1), x11 << BuildConflicts: libquicktime0 BuildDepends: << blt-dev (>= 2.4z-15), bzip2-dev, fink (>= 0.24.12-1), gdbm3, gettext-bin, gettext-tools, libgettext8-dev, libncursesw5, readline5, sqlite3-dev (>= 3.2.8-1001), system-openssl-dev, tcltk-dev (>= 8.4.1-1), x11-dev << #Source: http://python.org/ftp/python/%v/Python-%v.tar.bz2 Source: http://python.org/ftp/python/%v/Python-%{v}a1.tar.bz2 Source-MD5: b371e1f7a0e98e7a0d1792823fd0f58c # No html docs yet. #Source2: http://www.python.org/ftp/python/doc/%v/python-%v-docs-html.tar.bz2 #Source2-MD5: c9ccf8e9fc4d046c168af313706f159b PatchFile: %n.patch PatchFile-MD5: ed3ad9bf2e8524c7d0f2e54c660ffb53 PatchScript: sed 's|@PREFIX@|%p|g' < %{PatchFile} | patch -p1 SetLDFLAGS: -L%p/lib/system-openssl/lib ConfigureParams: --enable-shared CompileScript: << #!/bin/sh -ex if [ "%m" = "x86_64" ]; then #perl -pi.bak -e 's|num_missing != 2:|num_missing != 2:|g' ./setup.py # Architecture:x86_64 has tcltk-8.5.x, other arch have 8.4.x perl -pi.bak -e "s/8.4\'/8.5\'/" ./setup.py fi %{default_script} << InstallScript: << #!/bin/sh -ex make install DESTDIR=%d # don't propagate our hackery perl -pi -e 's|-L%p/lib/system-openssl/lib||' %i/lib/python3.2/config/Makefile # fix all main things to be python-versioned filenames with # unversioned symlinks to them pushd %i/bin for f in 2to3 idle3 pydoc3; do mv ${f} ${f}-3.2 ln -s ${f}-3.2 %i/bin/${f} done #Remove this for now to avoid conflicting with 'python' package. rm 2to3 popd ln -s python3.2.1 %i/share/man/man1/python3.1 # install some docs and other useful tidbits rm -rf Misc/RPM /bin/cp -R Misc Tools %i/lib/python3.2 mkdir -p %i/share/doc/%n /bin/cp -R Demo Doc %i/share/doc/%n # No html docs yet. # mkdir -p %i/share/doc/%n/html # /bin/cp -R ../python-%v-docs-html/ %i/share/doc/%n/html << SplitOff: << Package: %N-shlibs Depends: libgettext8-shlibs Files: lib/python3.2/config/libpython3.2.dylib Shlibs: %p/lib/python3.2/config/libpython3.2.dylib 3.2.0 %n (>= 3.2-0.a1.1) DocFiles: README LICENSE << SplitOff2: << Package: python3 Depends: %N (>= %v-%r) Files: << bin/idle3 bin/pydoc3 bin/python3 bin/python3-config lib/pkgconfig/python3.pc share/man/man1/python3.1 << DocFiles: README LICENSE Description: Generic "python3" command that invokes python31 << DocFiles: README LICENSE Description: Interpreted, object-oriented language DescDetail: << Python is often compared to Tcl, Perl, Scheme or Java. This package installs unix python - not the OSX Framework version. Builds a two-level namespace dynamic libpython (needed for koffice). The interpretter is installed as "python3.2", and all associated commands are similarly named with the python-version in them. To get the simple "python3" command, install the fink package "python3" (note: the "python3" command there is not guaranteed to be python3.1!). << DescUsage: << python3.2 changes the compiler options used to compile third-party python modules. Please do not add 3.2 variants to them without actually testing that they build cleanly. << DescPackaging: << Patch a lot of things to impliment shared-lib support for non-Framework build on Darwin. Static libpython is installed in lib/pythonX.X/config/ but shared goes in %p/lib by default. Fink's packaging has always placed manually-built shared lib in config/ along side static, This gives consistency regardless of -search_paths_first. Continue this practice so that -pyXX varianted packages don't need special-casing for certain variants. Make sure all compiled modules link against libpython3.2 (and propagate this to third-party compiled modules) to ensure that all symbols resolved at compile-time to avoid packager mistakes and user runtime surprises. Play lots of games to make sure we get expected support libraries. Also make sure -L/sw/lib/system-openssl is passed before -L/sw (build system seems to confuse standard meanings and uses of CFLAGS vs CPPFLAGS vs LDFLAGS) but avoid propagating into modules that compile using distutils. Adjust "python3" unversioned link to be a symlink not a hard link. Shared lib is buried next to static one instead of being in %p/lib because that's where it's always been in the fink package series. Why would they be in different places? Patch -config script to continue this tradition (bug in previous versions accidentally did the Right Thing here). << DescPort: << libpython needs to link to CF because that lib has the parent thread that load modules that need to have CF available. See: http://bugs.python.org/issue7085 bsddb is gone so drop db* patch and dep. Patch setup.py to find ncursesw headers and drop libncurses5 dep. Ensure $(LDFLAGS) is used linking libpython or else it can't find libintl. << License: OSI-Approved Homepage: http://www.python.org --- NEW FILE: python32.patch --- diff -ru Python-3.2a1.orig/Makefile.pre.in Python-3.2a1/Makefile.pre.in --- Python-3.2a1.orig/Makefile.pre.in 2010-07-17 16:39:23.000000000 -0400 +++ Python-3.2a1/Makefile.pre.in 2010-08-10 15:17:08.000000000 -0400 @@ -453,8 +453,7 @@ fi libpython$(VERSION).dylib: $(LIBRARY_OBJS) - $(CC) -dynamiclib -Wl,-single_module $(PY_LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(VERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ - + $(CC) -dynamiclib -Wl,-single_module $(LDFLAGS) @LIBTOOL_CRUFT@ -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LDLAST) libpython$(VERSION).sl: $(LIBRARY_OBJS) $(LDSHARED) $(PY_LDFLAGS) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST) @@ -808,7 +807,7 @@ # Install the interpreter with $(VERSION) affixed # This goes into $(exec_prefix) altbininstall: $(BUILDPYTHON) - @for i in $(BINDIR) $(LIBDIR); \ + @for i in $(BINDIR) $(LIBDIR) $(LIBPL); \ do \ if test ! -d $(DESTDIR)$$i; then \ echo "Creating directory $$i"; \ @@ -821,9 +820,9 @@ if test -n "$(DLLLIBRARY)" ; then \ $(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \ else \ - $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \ + $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBPL)/$(INSTSONAME); \ if test $(LDLIBRARY) != $(INSTSONAME); then \ - (cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) $(LDLIBRARY)) \ + (cd $(DESTDIR)$(LIBPL); $(LN) -sf $(INSTSONAME) $(LDLIBRARY)) \ fi \ fi; \ else true; \ @@ -834,7 +833,7 @@ then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON)3$(EXE); \ else true; \ fi - (cd $(DESTDIR)$(BINDIR); $(LN) python$(VERSION)$(EXE) $(PYTHON)3$(EXE)) + (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) $(PYTHON)3$(EXE)) -rm -f $(DESTDIR)$(BINDIR)/python3-config (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python3-config) -rm -f $(DESTDIR)$(LIBPC)/python3.pc diff -ru Python-3.2a1.orig/Misc/python-config.in Python-3.2a1/Misc/python-config.in --- Python-3.2a1.orig/Misc/python-config.in 2010-04-06 17:30:42.000000000 -0400 +++ Python-3.2a1/Misc/python-config.in 2010-08-10 15:32:45.000000000 -0400 @@ -46,11 +46,10 @@ elif opt in ('--libs', '--ldflags'): libs = getvar('LIBS').split() + getvar('SYSLIBS').split() libs.append('-lpython'+pyver) - # add the prefix/lib/pythonX.Y/config dir, but only if there is no - # shared library in prefix/lib/. + # add the prefix/lib/pythonX.Y/config dir (fink keeps shared + # library there too) if opt == '--ldflags': - if not getvar('Py_ENABLE_SHARED'): - libs.insert(0, '-L' + getvar('LIBPL')) + libs.insert(0, '-L' + getvar('LIBPL')) libs.extend(getvar('LINKFORSHARED').split()) print(' '.join(libs)) diff -ru Python-3.2a1.orig/Misc/python.pc.in Python-3.2a1/Misc/python.pc.in --- Python-3.2a1.orig/Misc/python.pc.in 2009-05-24 16:39:11.000000000 -0400 +++ Python-3.2a1/Misc/python.pc.in 2010-08-10 15:11:27.000000000 -0400 @@ -1,6 +1,6 @@ pref...@prefix@ exec_pref...@exec_prefix@ -libd...@libdir@ +libd...@libdir@/pyt...@version@/config included...@includedir@ Name: Python diff -ru Python-3.2a1.orig/Modules/posixmodule.c Python-3.2a1/Modules/posixmodule.c --- Python-3.2a1.orig/Modules/posixmodule.c 2010-07-23 09:53:51.000000000 -0400 +++ Python-3.2a1/Modules/posixmodule.c 2010-08-10 15:34:27.000000000 -0400 @@ -426,7 +426,7 @@ #endif /* Return a dictionary corresponding to the POSIX environment table */ -#ifdef WITH_NEXT_FRAMEWORK +#ifdef __APPLE__ /* On Darwin/MacOSX a shared library or framework has no access to ** environ directly, we must obtain it with _NSGetEnviron(). */ @@ -453,7 +453,7 @@ d = PyDict_New(); if (d == NULL) return NULL; -#ifdef WITH_NEXT_FRAMEWORK +#ifdef __APPLE__ if (environ == NULL) environ = *_NSGetEnviron(); #endif diff -ru Python-3.2a1.orig/configure Python-3.2a1/configure --- Python-3.2a1.orig/configure 2010-07-19 03:31:40.000000000 -0400 +++ Python-3.2a1/configure 2010-08-10 15:57:51.000000000 -0400 @@ -4872,7 +4872,7 @@ ;; Darwin*) LDLIBRARY='libpython$(VERSION).dylib' - BLDLIBRARY='-L. -lpython$(VERSION)' + BLDLIBRARY="$LDLIBRARY" RUNSHARED='DYLD_LIBRARY_PATH=`pwd`:${DYLD_LIBRARY_PATH}' ;; @@ -7361,8 +7361,8 @@ #ARCH_RUN_32BIT="true" fi - LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only ${MACOSX_DEFAULT_ARCH}" - LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' + LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs" + LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(BINLIBDEST)/config/$(INSTSONAME)' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; esac @@ -7508,15 +7508,6 @@ # Use -undefined dynamic_lookup whenever possible (10.3 and later). # This allows an extension to be used in any Python - if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2 - then - if test "${enable_universalsdk}"; then - LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}" - fi - LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup' - LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle -undefined dynamic_lookup' - BLDSHARED="$LDSHARED" - else LDSHARED='$(CC) $(LDFLAGS) -bundle' LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle' if test "$enable_framework" ; then @@ -7526,11 +7517,10 @@ LDCXXSHARED="$LDCXXSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' else # No framework, use the Python app as bundle-loader - BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)' - LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)' - LDCXXSHARED="$LDCXXSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)' + BLDSHARED="$LDSHARED "'$(BLDLIBRARY)' + LDSHARED="$LDSHARED "'-L$(BINLIBDEST)/config -lpython$(VERSION)' + LDCXXSHARED="$LDCXXSHARED "'-L$(BINLIBDEST)/config -lpython$(VERSION)' fi - fi ;; Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared' @@ -13375,7 +13365,7 @@ if test $ac_sys_system = Darwin then - LIBS="$LIBS -framework CoreFoundation" + LIBS="$LIBS -Wl,-framework,CoreFoundation" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for %zd printf() format support" >&5 diff -ru Python-3.2a1.orig/setup.py Python-3.2a1/setup.py --- Python-3.2a1.orig/setup.py 2010-07-23 15:25:47.000000000 -0400 +++ Python-3.2a1/setup.py 2010-08-10 15:29:47.000000000 -0400 @@ -240,13 +240,17 @@ longest, g)) if missing: + num_missing=len(missing) print() print("Python build finished, but the necessary bits to build " "these modules were not found:") print_three_column(missing) print("To find the necessary bits, look in setup.py in" " detect_modules() for the module's name.") + print ("(Fink package build should have 2 missing)") print() + if num_missing != 2: + sys.exit(1) if self.failed: failed = self.failed[:] @@ -254,6 +258,7 @@ print("Failed to build these modules:") print_three_column(failed) print() + sys.exit(1) def build_extension(self, ext): @@ -342,9 +347,8 @@ return sys.platform def detect_modules(self): - # Ensure that /usr/local is always used - add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') - add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') + add_dir_to_list(self.compiler.library_dirs, '@PREFIX@/lib') + add_dir_to_list(self.compiler.include_dirs, '@PREFIX@/include') # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. @@ -616,10 +620,9 @@ depends = ['socketmodule.h']) ) # Detect SSL support for the socket module (via _ssl) search_for_ssl_incs_in = [ - '/usr/local/ssl/include', - '/usr/contrib/ssl/include/' + '@PREFIX@/lib/system-openssl/include' ] - ssl_incs = find_file('openssl/ssl.h', inc_dirs, + ssl_incs = find_file('openssl/ssl.h', [], search_for_ssl_incs_in ) if ssl_incs is not None: @@ -627,9 +630,8 @@ ['/usr/kerberos/include']) if krb5_h: ssl_incs += krb5_h - ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, - ['/usr/local/ssl/lib', - '/usr/contrib/ssl/lib/' + ssl_libs = find_library_file(self.compiler, 'ssl', [], + ['@PREFIX@/lib/system-openssl/lib' ] ) if (ssl_incs is not None and @@ -649,7 +651,7 @@ # look for the openssl version header on the compiler search path. opensslv_h = find_file('openssl/opensslv.h', [], - inc_dirs + search_for_ssl_incs_in) + search_for_ssl_incs_in) if opensslv_h: name = os.path.join(opensslv_h[0], 'openssl/opensslv.h') if sys.platform == 'darwin' and is_macosx_sdk_path(name): @@ -900,12 +902,7 @@ # We hunt for #define SQLITE_VERSION "n.n.n" # We need to find >= sqlite version 3.0.8 sqlite_incdir = sqlite_libdir = None - sqlite_inc_paths = [ '/usr/include', - '/usr/include/sqlite', - '/usr/include/sqlite3', - '/usr/local/include', - '/usr/local/include/sqlite', - '/usr/local/include/sqlite3', + sqlite_inc_paths = [ '@PREFIX@/include' ] MIN_SQLITE_VERSION_NUMBER = (3, 0, 8) MIN_SQLITE_VERSION = ".".join([str(x) @@ -917,7 +914,7 @@ if sys.platform == 'darwin': sysroot = macosx_sdk_root() - for d in inc_dirs + sqlite_inc_paths: + for d in sqlite_inc_paths: f = os.path.join(d, "sqlite3.h") if sys.platform == 'darwin' and is_macosx_sdk_path(d): @@ -949,11 +946,9 @@ sqlite_dirs_to_check = [ os.path.join(sqlite_incdir, '..', 'lib64'), os.path.join(sqlite_incdir, '..', 'lib'), - os.path.join(sqlite_incdir, '..', '..', 'lib64'), - os.path.join(sqlite_incdir, '..', '..', 'lib'), ] sqlite_libfile = self.compiler.find_library_file( - sqlite_dirs_to_check + lib_dirs, 'sqlite3') + sqlite_dirs_to_check, 'sqlite3') if sqlite_libfile: sqlite_libdir = [os.path.abspath(os.path.dirname(sqlite_libfile))] @@ -1108,6 +1103,7 @@ panel_library = 'panelw' curses_libs = [curses_library] exts.append( Extension('_curses', ['_cursesmodule.c'], + include_dirs=["@PREFIX@/include/ncursesw"], libraries = curses_libs) ) elif curses_library == 'curses' and platform != 'darwin': # OSX has an old Berkeley curses, not good enough for @@ -1128,6 +1124,7 @@ if (module_enabled(exts, '_curses') and self.compiler.find_library_file(lib_dirs, panel_library)): exts.append( Extension('_curses_panel', ['_curses_panel.c'], + include_dirs=["@PREFIX@/include/ncursesw"], libraries = [panel_library] + curses_libs) ) else: missing.append('_curses_panel') @@ -1442,16 +1439,12 @@ # AquaTk is a separate method. Only one Tkinter will be built on # Darwin - either AquaTk, if it is found, or X11 based Tk. platform = self.get_platform() - if (platform == 'darwin' and - self.detect_tkinter_darwin(inc_dirs, lib_dirs)): - return # Assume we haven't found any of the libraries or include files # The versions with dots are used on Unix, and the versions without # dots on Windows, for detection by cygwin. tcllib = tklib = tcl_includes = tk_includes = None - for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', - '8.2', '82', '8.1', '81', '8.0', '80']: + for version in ['8.4']: tklib = self.compiler.find_library_file(lib_dirs, 'tk' + version) tcllib = self.compiler.find_library_file(lib_dirs, ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Fink-commits mailing list Fink-commits@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.cvs