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

Reply via email to