summaryrefslogtreecommitdiffstats
path: root/packaging/macosx/ports/lang/python25
diff options
context:
space:
mode:
authorLiam P. White <inkscapebrony@gmail.com>2014-10-16 23:36:32 +0000
committerLiam P. White <inkscapebrony@gmail.com>2014-10-16 23:36:32 +0000
commitb2c02c3cd7513b6fad49a0bd0c669f9a581f5cc8 (patch)
tree7d37d088e9179f631f22143a980157da49a331a9 /packaging/macosx/ports/lang/python25
parentRemoved dangerous GTK-mimicking macros. (diff)
parentupdate to trunk (r13610) (diff)
downloadinkscape-b2c02c3cd7513b6fad49a0bd0c669f9a581f5cc8.tar.gz
inkscape-b2c02c3cd7513b6fad49a0bd0c669f9a581f5cc8.zip
Merge in osx-packaging-update branch. OS X packaging now works correctly for trunk.
(bzr r13620)
Diffstat (limited to 'packaging/macosx/ports/lang/python25')
-rw-r--r--packaging/macosx/ports/lang/python25/Portfile214
-rw-r--r--packaging/macosx/ports/lang/python25/files/_localemodule.c.ed2
-rw-r--r--packaging/macosx/ports/lang/python25/files/locale.py.ed2
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-64bit.diff1234
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-FSIORefNum.diff11
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-Lib-cgi.py.diff18
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-Lib-distutils-dist.py.diff51
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-Makefile.pre.in.diff49
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-Misc-setuid-prog.c.diff16
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-Modules-posixmodule.c.diff21
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-configure.diff45
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-fwrapv.diff12
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-libedit.diff132
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-mac_ver.diff114
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-pyconfig.h.in.diff13
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-setup.py-disabled_modules.diff11
-rw-r--r--packaging/macosx/ports/lang/python25/files/patch-setup.py.diff80
-rw-r--r--packaging/macosx/ports/lang/python25/files/pyconfig.ed2
-rw-r--r--packaging/macosx/ports/lang/python25/files/pyconfig.h-universal.ed50
-rw-r--r--packaging/macosx/ports/lang/python25/files/python2513
20 files changed, 2090 insertions, 0 deletions
diff --git a/packaging/macosx/ports/lang/python25/Portfile b/packaging/macosx/ports/lang/python25/Portfile
new file mode 100644
index 000000000..a27bdaf64
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/Portfile
@@ -0,0 +1,214 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
+# $Id: Portfile 104926 2013-04-05 04:43:09Z larryv@macports.org $
+
+PortSystem 1.0
+PortGroup select 1.0
+
+name python25
+version 2.5.6
+revision 100
+
+set branch [join [lrange [split ${version} .] 0 1] .]
+categories lang
+license PSF
+platforms darwin
+maintainers nomaintainer
+
+description An interpreted, object-oriented programming language
+long_description Python is an interpreted, interactive, object-oriented \
+ programming language.
+
+homepage http://www.python.org/
+master_sites http://ftp.python.org/ftp/python/${version}/
+
+distname Python-${version}
+use_bzip2 yes
+
+checksums md5 5d45979c5f30fb2dd5f067c6b06b88e4 \
+ sha1 29f6dd41bf09c5e04311b367cbb7604fa016e699 \
+ rmd160 92f0a955971f187a7d50c6422168202ec551bf22
+
+# patch-Lib-distutils-dist.py.diff comes from
+# <http://bugs.python.org/issue1180>
+patchfiles patch-Makefile.pre.in.diff \
+ patch-Lib-cgi.py.diff \
+ patch-Lib-distutils-dist.py.diff \
+ patch-setup.py.diff \
+ patch-configure.diff \
+ patch-64bit.diff \
+ patch-setup.py-disabled_modules.diff \
+ patch-mac_ver.diff \
+ patch-libedit.diff \
+ patch-fwrapv.diff
+
+depends_lib port:gettext port:zlib port:openssl \
+ port:sqlite3 port:db46 port:bzip2 \
+ port:libedit port:ncurses
+depends_run port:python_select
+
+configure.args --enable-shared \
+ --enable-framework=${frameworks_dir} \
+ --mandir=${prefix}/share/man \
+ --enable-ipv6 \
+ --with-cxx=${configure.cxx}
+
+post-patch {
+ reinplace "s|__PREFIX__|${prefix}|g" ${worksrcpath}/Lib/cgi.py \
+ ${worksrcpath}/setup.py
+ reinplace "s|/Applications/MacPython|${applications_dir}/MacPython|g" \
+ ${worksrcpath}/Mac/Makefile.in \
+ ${worksrcpath}/Mac/IDLE/Makefile.in \
+ ${worksrcpath}/Mac/Tools/Doc/setup.py \
+ ${worksrcpath}/Mac/PythonLauncher/Makefile.in \
+ ${worksrcpath}/Mac/BuildScript/build-installer.py
+ reinplace "s|xargs -0 rm -r|xargs -0 rm -rf|g" \
+ ${worksrcpath}/Mac/PythonLauncher/Makefile.in
+ reinplace "s|__BUILD_ARCH__|${build_arch}|" ${worksrcpath}/configure
+ reinplace "s|__UNIVERSAL_CFLAGS__|${configure.universal_cflags}|" ${worksrcpath}/configure
+ reinplace "s|__UNIVERSAL_LDFLAGS__|${configure.universal_ldflags}|" \
+ ${worksrcpath}/configure \
+ ${worksrcpath}/Makefile.pre.in
+
+ # http://trac.macports.org/ticket/21517
+ system -W ${worksrcpath} "ed - Modules/_localemodule.c < ${filespath}/_localemodule.c.ed"
+ system -W ${worksrcpath} "ed - Lib/locale.py < ${filespath}/locale.py.ed"
+}
+
+build.target all
+
+# TODO: From python24, do we still need this?
+# Workaround for case-sensitive file systems
+post-build {
+ if { ![file exists ${worksrcpath}/python.exe] } {
+ ln -s python ${worksrcpath}/python.exe
+ }
+}
+
+test.run yes
+test.target test
+
+destroot.target frameworkinstall maninstall
+
+# ensure that correct compiler is used
+build.args-append MAKE="${build.cmd}" CC="${configure.cc}"
+destroot.args-append MAKE="${destroot.cmd}" CC="${configure.cc}"
+
+select.group python
+select.file ${filespath}/python[string map {. {}} ${branch}]
+
+notes "
+To make python ${branch} the default (i.e. the version you get when you run\
+'python'), please run:
+
+sudo port select --set ${select.group} [file tail ${select.file}]
+"
+
+platform macosx {
+post-destroot {
+
+ set framewpath ${frameworks_dir}/Python.framework
+ set framewdir ${framewpath}/Versions/${branch}
+
+ # Without this, LINKFORSHARED is set to
+ # ... $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
+ # (this becomes Python.framework/Versions/2.5/Python) which doesn't
+ # quite work (see ticket #15099); instead specifically list the
+ # full path to the proper Python framework file (which becomes
+ # ${prefix}/Library/Frameworks/Python.framework/Versions/2.5/Python)
+ reinplace {s|^\(LINKFORSHARED=.*\)$(PYTHONFRAMEWORKDIR).*$|\1 $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)|} ${destroot}${framewdir}/lib/python${branch}/config/Makefile
+
+ foreach dir { lib include } {
+ file rename ${destroot}${framewdir}/${dir}/python${branch} ${destroot}${prefix}/${dir}
+ ln -s ${prefix}/${dir}/python${branch} ${destroot}${framewdir}/${dir}/python${branch}
+ }
+ ln -s ${prefix}/share ${destroot}${framewdir}/share
+
+ ln -s ${framewdir}/Python ${destroot}${prefix}/lib/libpython${branch}.dylib
+
+ file rename ${destroot}${prefix}/share/man/man1/python.1 ${destroot}${prefix}/share/man/man1/python${branch}.1
+
+ # delete symlinks without version suffix, use python_select instead to choose version
+ foreach bin { python pythonw idle pydoc smtpd.py python-config } {
+ file delete ${destroot}${prefix}/bin/${bin}
+ }
+ foreach bin [list python${branch} pythonw${branch} idle${branch} pydoc${branch} smtpd${branch}.py python${branch}-config] {
+ file rename -force ${destroot}${framewdir}/bin/${bin} ${destroot}${prefix}/bin
+ ln -s ${prefix}/bin/${bin} ${destroot}${framewdir}/bin/${bin}
+ }
+
+ foreach dir { Headers Resources Python Versions/Current } {
+ file delete ${destroot}${framewpath}/${dir}
+ }
+
+ # Fix incorrectly-pointed libpython2.5.a symlink, see
+ # http://trac.macports.org/ticket/19906
+ set python_staticlink ${destroot}${prefix}/lib/python${branch}/config/libpython${branch}.a
+ file delete ${python_staticlink}
+ ln -s ${framewdir}/Python ${python_staticlink}
+}
+}
+
+platform darwin {
+ post-configure {
+ # See http://trac.macports.org/ticket/18376
+ system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.ed"
+ }
+ if {${os.major} >= 10} {
+ configure.cppflags-append -D_DARWIN_C_SOURCE
+ patchfiles-append patch-pyconfig.h.in.diff
+ }
+ post-patch {
+ if {![file exists /usr/lib/libSystemStubs.a]} {
+ reinplace s/-lSystemStubs//g ${worksrcpath}/configure
+ }
+ }
+ post-destroot {
+ # remove -arch flags from the config
+ reinplace -E {s|-arch [a-z0-9_]+||g} \
+ ${destroot}${prefix}/lib/python${branch}/config/Makefile
+ }
+}
+
+platform darwin 8 {
+ patchfiles-append patch-FSIORefNum.diff
+}
+
+platform darwin 9 {
+ configure.cppflags-append -D__DARWIN_UNIX03
+}
+
+platform puredarwin {
+ patchfiles-append patch-Modules-posixmodule.c.diff
+ configure.args-delete --enable-framework=${frameworks_dir}
+ configure.args-append --disable-toolbox-glue --disable-framework
+ destroot.target install maninstall
+
+post-build {
+ # thin dynamic library to have the same arch as static lib, even after -lSystemStubs
+ system "lipo ${worksrcpath}/libpython${branch}.dylib -output ${worksrcpath}/libpython${branch}.dylib -thin `lipo -info ${worksrcpath}/libpython${branch}.a | tail -n 1 | sed -e 's/.*architecture: \\(.*\\)/\\1/'`"
+}
+
+post-destroot {
+ # delete symlinks without version suffix, use python_select instead to choose version
+ foreach bin { python pythonw idle pydoc smtpd.py python-config } {
+ file delete ${destroot}${prefix}/bin/${bin}
+ }
+
+ file rename ${destroot}${prefix}/share/man/man1/python.1 ${destroot}${prefix}/share/man/man1/python${branch}.1
+}
+}
+
+variant universal {
+ if {${configure.sdkroot} == ""} {
+ configure.args-append --enable-universalsdk=/
+ } else {
+ configure.args-append --enable-universalsdk=${configure.sdkroot}
+ }
+ post-configure {
+ system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.h-universal.ed"
+ }
+}
+
+livecheck.type regex
+livecheck.url ${homepage}download/releases/
+livecheck.regex Python (${branch}.\[0-9\]+)
diff --git a/packaging/macosx/ports/lang/python25/files/_localemodule.c.ed b/packaging/macosx/ports/lang/python25/files/_localemodule.c.ed
new file mode 100644
index 000000000..d4617a931
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/_localemodule.c.ed
@@ -0,0 +1,2 @@
+g/defined(__APPLE__)/s//0/g
+w
diff --git a/packaging/macosx/ports/lang/python25/files/locale.py.ed b/packaging/macosx/ports/lang/python25/files/locale.py.ed
new file mode 100644
index 000000000..0bdbf3ea0
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/locale.py.ed
@@ -0,0 +1,2 @@
+g/'darwin', /s///
+w
diff --git a/packaging/macosx/ports/lang/python25/files/patch-64bit.diff b/packaging/macosx/ports/lang/python25/files/patch-64bit.diff
new file mode 100644
index 000000000..100617df6
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-64bit.diff
@@ -0,0 +1,1234 @@
+--- Include/pymactoolbox.h.orig 2004-11-05 18:02:59.000000000 +1100
++++ Include/pymactoolbox.h 2009-09-10 18:08:58.000000000 +1000
+@@ -8,7 +8,9 @@
+ #endif
+
+ #include <Carbon/Carbon.h>
++#ifndef __LP64__
+ #include <QuickTime/QuickTime.h>
++#endif /* !__LP64__ */
+
+ /*
+ ** Helper routines for error codes and such.
+@@ -18,8 +20,10 @@
+ PyObject *PyMac_GetOSErrException(void); /* Initialize & return it */
+ PyObject *PyErr_Mac(PyObject *, int); /* Exception with a mac error */
+ PyObject *PyMac_Error(OSErr); /* Uses PyMac_GetOSErrException */
++#ifndef __LP64__
+ extern OSErr PyMac_GetFullPathname(FSSpec *, char *, int); /* convert
+ fsspec->path */
++#endif /* !__LP64__ */
+ /*
+ ** These conversion routines are defined in mactoolboxglue.c itself.
+ */
+@@ -83,9 +87,10 @@
+ #endif /* USE_TOOLBOX_OBJECT_GLUE */
+
+ /* macfs exports */
++#ifndef __LP64__
+ int PyMac_GetFSSpec(PyObject *, FSSpec *); /* argument parser for FSSpec */
+ PyObject *PyMac_BuildFSSpec(FSSpec *); /* Convert FSSpec to PyObject */
+-
++#endif /* !__LP64__ */
+ int PyMac_GetFSRef(PyObject *, FSRef *); /* argument parser for FSRef */
+ PyObject *PyMac_BuildFSRef(FSRef *); /* Convert FSRef to PyObject */
+
+@@ -101,39 +106,54 @@
+ extern int CmpInstObj_Convert(PyObject *, ComponentInstance *);
+
+ /* Ctl exports */
++#ifndef __LP64__
+ extern PyObject *CtlObj_New(ControlHandle);
+ extern int CtlObj_Convert(PyObject *, ControlHandle *);
++#endif /* !__LP64__ */
+
+ /* Dlg exports */
++#ifndef __LP64__
+ extern PyObject *DlgObj_New(DialogPtr);
+ extern int DlgObj_Convert(PyObject *, DialogPtr *);
+ extern PyObject *DlgObj_WhichDialog(DialogPtr);
++#endif /* !__LP64__ */
+
+ /* Drag exports */
++#ifndef __LP64__
+ extern PyObject *DragObj_New(DragReference);
+ extern int DragObj_Convert(PyObject *, DragReference *);
++#endif /* !__LP64__ */
+
+ /* List exports */
++#ifndef __LP64__
+ extern PyObject *ListObj_New(ListHandle);
+ extern int ListObj_Convert(PyObject *, ListHandle *);
++#endif /* !__LP64__ */
+
+ /* Menu exports */
++#ifndef __LP64__
+ extern PyObject *MenuObj_New(MenuHandle);
+ extern int MenuObj_Convert(PyObject *, MenuHandle *);
++#endif /* !__LP64__ */
+
+ /* Qd exports */
++#ifndef __LP64__
+ extern PyObject *GrafObj_New(GrafPtr);
+ extern int GrafObj_Convert(PyObject *, GrafPtr *);
+ extern PyObject *BMObj_New(BitMapPtr);
+ extern int BMObj_Convert(PyObject *, BitMapPtr *);
+ extern PyObject *QdRGB_New(RGBColor *);
+ extern int QdRGB_Convert(PyObject *, RGBColor *);
++#endif /* !__LP64__ */
+
+ /* Qdoffs exports */
++#ifndef __LP64__
+ extern PyObject *GWorldObj_New(GWorldPtr);
+ extern int GWorldObj_Convert(PyObject *, GWorldPtr *);
++#endif /* !__LP64__ */
+
+ /* Qt exports */
++#ifndef __LP64__
+ extern PyObject *TrackObj_New(Track);
+ extern int TrackObj_Convert(PyObject *, Track *);
+ extern PyObject *MovieObj_New(Movie);
+@@ -146,6 +166,7 @@
+ extern int UserDataObj_Convert(PyObject *, UserData *);
+ extern PyObject *MediaObj_New(Media);
+ extern int MediaObj_Convert(PyObject *, Media *);
++#endif /* !__LP64__ */
+
+ /* Res exports */
+ extern PyObject *ResObj_New(Handle);
+@@ -154,13 +175,17 @@
+ extern int OptResObj_Convert(PyObject *, Handle *);
+
+ /* TE exports */
++#ifndef __LP64__
+ extern PyObject *TEObj_New(TEHandle);
+ extern int TEObj_Convert(PyObject *, TEHandle *);
++#endif /* !__LP64__ */
+
+ /* Win exports */
++#ifndef __LP64__
+ extern PyObject *WinObj_New(WindowPtr);
+ extern int WinObj_Convert(PyObject *, WindowPtr *);
+ extern PyObject *WinObj_WhichWindow(WindowPtr);
++#endif /* !__LP64__ */
+
+ /* CF exports */
+ extern PyObject *CFObj_New(CFTypeRef);
+--- Python/mactoolboxglue.c.orig 2006-07-12 02:44:25.000000000 +1000
++++ Python/mactoolboxglue.c 2009-09-10 19:26:39.000000000 +1000
+@@ -105,7 +105,7 @@
+ return PyErr_Mac(PyMac_GetOSErrException(), err);
+ }
+
+-
++#ifndef __LP64__
+ OSErr
+ PyMac_GetFullPathname(FSSpec *fss, char *path, int len)
+ {
+@@ -153,6 +153,7 @@
+ Py_XDECREF(fs);
+ return err;
+ }
++#endif /* !__LP64__ */
+
+ /* Convert a 4-char string object argument to an OSType value */
+ int
+@@ -417,6 +418,7 @@
+ GLUE_NEW(GWorldPtr, GWorldObj_New, "Carbon.Qdoffs")
+ GLUE_CONVERT(GWorldPtr, GWorldObj_Convert, "Carbon.Qdoffs")
+
++#ifndef __LP64__
+ GLUE_NEW(Track, TrackObj_New, "Carbon.Qt")
+ GLUE_CONVERT(Track, TrackObj_Convert, "Carbon.Qt")
+ GLUE_NEW(Movie, MovieObj_New, "Carbon.Qt")
+@@ -429,6 +431,7 @@
+ GLUE_CONVERT(UserData, UserDataObj_Convert, "Carbon.Qt")
+ GLUE_NEW(Media, MediaObj_New, "Carbon.Qt")
+ GLUE_CONVERT(Media, MediaObj_Convert, "Carbon.Qt")
++#endif /* !__LP64__ */
+
+ GLUE_NEW(Handle, ResObj_New, "Carbon.Res")
+ GLUE_CONVERT(Handle, ResObj_Convert, "Carbon.Res")
+--- Modules/_ctypes/libffi/src/darwin/ffitarget.h.orig 2006-05-26 07:58:05.000000000 +1000
++++ Modules/_ctypes/libffi/src/darwin/ffitarget.h 2009-09-10 20:15:39.000000000 +1000
+@@ -4,7 +4,7 @@
+ * created by configure). This makes is possible to build a univeral binary
+ * of ctypes in one go.
+ */
+-#if defined(__i386__)
++#if defined(__i386__) || defined(__x86_64__)
+
+ #ifndef X86_DARWIN
+ #define X86_DARWIN
+@@ -13,7 +13,7 @@
+
+ #include "../src/x86/ffitarget.h"
+
+-#elif defined(__ppc__)
++#elif defined(__ppc__) || defined(__ppc64__)
+
+ #ifndef POWERPC_DARWIN
+ #define POWERPC_DARWIN
+--- Mac/Modules/res/_Resmodule.c.orig 2005-07-04 06:59:44.000000000 +1000
++++ Mac/Modules/res/_Resmodule.c 2009-09-10 20:44:43.000000000 +1000
+@@ -414,6 +414,7 @@
+ return _res;
+ }
+
++#ifndef __LP64__
+ static PyObject *ResObj_as_Control(ResourceObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+@@ -431,6 +432,7 @@
+ return _res;
+
+ }
++#endif /* !__LP64__ */
+
+ static PyObject *ResObj_LoadResource(ResourceObject *_self, PyObject *_args)
+ {
+@@ -501,10 +503,12 @@
+ PyDoc_STR("(long newSize) -> None")},
+ {"GetNextFOND", (PyCFunction)ResObj_GetNextFOND, 1,
+ PyDoc_STR("() -> (Handle _rv)")},
++#ifndef __LP64__
+ {"as_Control", (PyCFunction)ResObj_as_Control, 1,
+ PyDoc_STR("Return this resource/handle as a Control")},
+ {"as_Menu", (PyCFunction)ResObj_as_Menu, 1,
+ PyDoc_STR("Return this resource/handle as a Menu")},
++#endif /* !__LP64__ */
+ {"LoadResource", (PyCFunction)ResObj_LoadResource, 1,
+ PyDoc_STR("() -> None")},
+ {"AutoDispose", (PyCFunction)ResObj_AutoDispose, 1,
+@@ -1152,6 +1156,7 @@
+ return _res;
+ }
+
++#ifndef __LP64__
+ static PyObject *Res_OpenRFPerm(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+@@ -1287,6 +1292,7 @@
+ _res = Py_None;
+ return _res;
+ }
++#endif /* !__LP64__ */
+
+ static PyObject *Res_InsertResourceFile(PyObject *_self, PyObject *_args)
+ {
+@@ -1327,6 +1333,7 @@
+ return _res;
+ }
+
++#ifndef __LP64__
+ static PyObject *Res_FSpResourceFileAlreadyOpen(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+@@ -1413,6 +1420,7 @@
+ nextRefNum);
+ return _res;
+ }
++#endif /* !__LP64__ */
+
+ static PyObject *Res_FSOpenResFile(PyObject *_self, PyObject *_args)
+ {
+@@ -1438,6 +1446,7 @@
+ return _res;
+ }
+
++#ifndef __LP64__
+ static PyObject *Res_FSCreateResFile(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+@@ -1534,6 +1543,7 @@
+ PyMac_BuildFSSpec, &newSpec);
+ return _res;
+ }
++#endif /* !__LP64__ */
+
+ static PyObject *Res_FSOpenResourceFile(PyObject *_self, PyObject *_args)
+ {
+@@ -1637,6 +1647,7 @@
+ PyDoc_STR("(short refNum) -> (short _rv)")},
+ {"SetResFileAttrs", (PyCFunction)Res_SetResFileAttrs, 1,
+ PyDoc_STR("(short refNum, short attrs) -> None")},
++#ifndef __LP64__
+ {"OpenRFPerm", (PyCFunction)Res_OpenRFPerm, 1,
+ PyDoc_STR("(Str255 fileName, short vRefNum, SignedByte permission) -> (short _rv)")},
+ {"HOpenResFile", (PyCFunction)Res_HOpenResFile, 1,
+@@ -1647,10 +1658,12 @@
+ PyDoc_STR("(FSSpec spec, SignedByte permission) -> (short _rv)")},
+ {"FSpCreateResFile", (PyCFunction)Res_FSpCreateResFile, 1,
+ PyDoc_STR("(FSSpec spec, OSType creator, OSType fileType, ScriptCode scriptTag) -> None")},
++#endif /* !__LP64__ */
+ {"InsertResourceFile", (PyCFunction)Res_InsertResourceFile, 1,
+ PyDoc_STR("(SInt16 refNum, RsrcChainLocation where) -> None")},
+ {"DetachResourceFile", (PyCFunction)Res_DetachResourceFile, 1,
+ PyDoc_STR("(SInt16 refNum) -> None")},
++#ifndef __LP64__
+ {"FSpResourceFileAlreadyOpen", (PyCFunction)Res_FSpResourceFileAlreadyOpen, 1,
+ PyDoc_STR("(FSSpec resourceFile) -> (Boolean _rv, Boolean inChain, SInt16 refNum)")},
+ {"FSpOpenOrphanResFile", (PyCFunction)Res_FSpOpenOrphanResFile, 1,
+@@ -1659,14 +1672,17 @@
+ PyDoc_STR("() -> (SInt16 refNum)")},
+ {"GetNextResourceFile", (PyCFunction)Res_GetNextResourceFile, 1,
+ PyDoc_STR("(SInt16 curRefNum) -> (SInt16 nextRefNum)")},
++#endif /* !__LP64__ */
+ {"FSOpenResFile", (PyCFunction)Res_FSOpenResFile, 1,
+ PyDoc_STR("(FSRef ref, SignedByte permission) -> (short _rv)")},
++#ifndef __LP64__
+ {"FSCreateResFile", (PyCFunction)Res_FSCreateResFile, 1,
+ PyDoc_STR("(FSRef parentRef, Buffer nameLength) -> (FSRef newRef, FSSpec newSpec)")},
+ {"FSResourceFileAlreadyOpen", (PyCFunction)Res_FSResourceFileAlreadyOpen, 1,
+ PyDoc_STR("(FSRef resourceFileRef) -> (Boolean _rv, Boolean inChain, SInt16 refNum)")},
+ {"FSCreateResourceFile", (PyCFunction)Res_FSCreateResourceFile, 1,
+ PyDoc_STR("(FSRef parentRef, Buffer nameLength, Buffer forkNameLength) -> (FSRef newRef, FSSpec newSpec)")},
++#endif /* !__LP64__ */
+ {"FSOpenResourceFile", (PyCFunction)Res_FSOpenResourceFile, 1,
+ PyDoc_STR("(FSRef ref, Buffer forkNameLength, SignedByte permissions) -> (SInt16 refNum)")},
+ {"Handle", (PyCFunction)Res_Handle, 1,
+--- Mac/Modules/MacOS.c.orig 2006-07-26 05:20:54.000000000 +1000
++++ Mac/Modules/MacOS.c 2009-09-10 21:47:34.000000000 +1000
+@@ -54,7 +54,7 @@
+ do_close(rfobject *self)
+ {
+ if (self->isclosed ) return;
+- (void)FSClose(self->fRefNum);
++ (void)FSCloseFork(self->fRefNum);
+ self->isclosed = 1;
+ }
+
+@@ -68,6 +68,7 @@
+ long n;
+ PyObject *v;
+ OSErr err;
++ ByteCount n2;
+
+ if (self->isclosed) {
+ PyErr_SetString(PyExc_ValueError, "Operation on closed file");
+@@ -81,13 +82,13 @@
+ if (v == NULL)
+ return NULL;
+
+- err = FSRead(self->fRefNum, &n, PyString_AsString(v));
++ err = FSReadFork(self->fRefNum, fsAtMark, 0, n, PyString_AsString(v), &n2);
+ if (err && err != eofErr) {
+ PyMac_Error(err);
+ Py_DECREF(v);
+ return NULL;
+ }
+- _PyString_Resize(&v, n);
++ _PyString_Resize(&v, n2);
+ return v;
+ }
+
+@@ -109,7 +110,7 @@
+ }
+ if (!PyArg_ParseTuple(args, "s#", &buffer, &size))
+ return NULL;
+- err = FSWrite(self->fRefNum, &size, buffer);
++ err = FSWriteFork(self->fRefNum, fsAtMark, 0, size, buffer, NULL);
+ if (err) {
+ PyMac_Error(err);
+ return NULL;
+@@ -126,9 +127,9 @@
+ static PyObject *
+ rf_seek(rfobject *self, PyObject *args)
+ {
+- long amount, pos;
++ long amount;
+ int whence = SEEK_SET;
+- long eof;
++ int mode;
+ OSErr err;
+
+ if (self->isclosed) {
+@@ -138,35 +139,23 @@
+ if (!PyArg_ParseTuple(args, "l|i", &amount, &whence))
+ return NULL;
+
+- if ((err = GetEOF(self->fRefNum, &eof)))
+- goto ioerr;
+-
+ switch (whence) {
+ case SEEK_CUR:
+- if ((err = GetFPos(self->fRefNum, &pos)))
+- goto ioerr;
++ mode = fsFromMark;
+ break;
+ case SEEK_END:
+- pos = eof;
++ mode = fsFromLEOF;
+ break;
+ case SEEK_SET:
+- pos = 0;
++ mode = fsFromStart;
+ break;
+ default:
+ PyErr_BadArgument();
+ return NULL;
+ }
+
+- pos += amount;
+-
+- /* Don't bother implementing seek past EOF */
+- if (pos > eof || pos < 0) {
+- PyErr_BadArgument();
+- return NULL;
+- }
+-
+- if ((err = SetFPos(self->fRefNum, fsFromStart, pos)) ) {
+-ioerr:
++ err = FSSetForkPosition(self->fRefNum, mode, amount);
++ if (err != noErr) {
+ PyMac_Error(err);
+ return NULL;
+ }
+@@ -182,7 +171,7 @@
+ static PyObject *
+ rf_tell(rfobject *self, PyObject *args)
+ {
+- long where;
++ long long where;
+ OSErr err;
+
+ if (self->isclosed) {
+@@ -191,11 +180,13 @@
+ }
+ if (!PyArg_ParseTuple(args, ""))
+ return NULL;
+- if ((err = GetFPos(self->fRefNum, &where)) ) {
++
++ err = FSGetForkPosition(self->fRefNum, &where);
++ if (err != noErr) {
+ PyMac_Error(err);
+ return NULL;
+ }
+- return PyInt_FromLong(where);
++ return PyLong_FromLongLong(where);
+ }
+
+ static char rf_close__doc__[] =
+@@ -292,17 +283,61 @@
+ static PyObject *
+ MacOS_GetCreatorAndType(PyObject *self, PyObject *args)
+ {
+- FSSpec fss;
+- FInfo info;
+ PyObject *creator, *type, *res;
+ OSErr err;
+-
+- if (!PyArg_ParseTuple(args, "O&", PyMac_GetFSSpec, &fss))
++ FSRef ref;
++ FSCatalogInfo cataloginfo;
++ FileInfo* finfo;
++
++ if (!PyArg_ParseTuple(args, "O&", PyMac_GetFSRef, &ref)) {
++#ifndef __LP64__
++ /* This function is documented to take an FSSpec as well,
++ * which only works in 32-bit mode.
++ */
++ PyErr_Clear();
++ FSSpec fss;
++ FInfo info;
++
++ if (!PyArg_ParseTuple(args, "O&", PyMac_GetFSSpec, &fss))
++ return NULL;
++
++ if ((err = FSpGetFInfo(&fss, &info)) != noErr) {
++ return PyErr_Mac(MacOS_Error, err);
++ }
++ creator = PyString_FromStringAndSize(
++ (char *)&info.fdCreator, 4);
++ type = PyString_FromStringAndSize((char *)&info.fdType, 4);
++ res = Py_BuildValue("OO", creator, type);
++ Py_DECREF(creator);
++ Py_DECREF(type);
++ return res;
++#else /* __LP64__ */
++ return NULL;
++#endif /* __LP64__ */
++ }
++
++ err = FSGetCatalogInfo(&ref,
++ kFSCatInfoFinderInfo|kFSCatInfoNodeFlags, &cataloginfo,
++ NULL, NULL, NULL);
++ if (err != noErr) {
++ PyErr_Mac(MacOS_Error, err);
+ return NULL;
+- if ((err = FSpGetFInfo(&fss, &info)) != noErr)
+- return PyErr_Mac(MacOS_Error, err);
+- creator = PyString_FromStringAndSize((char *)&info.fdCreator, 4);
+- type = PyString_FromStringAndSize((char *)&info.fdType, 4);
++ }
++
++ if ((cataloginfo.nodeFlags & kFSNodeIsDirectoryMask) != 0) {
++ /* Directory: doesn't have type/creator info.
++ *
++ * The specific error code is for backward compatibility with
++ * earlier versions.
++ */
++ PyErr_Mac(MacOS_Error, fnfErr);
++ return NULL;
++
++ }
++ finfo = (FileInfo*)&(cataloginfo.finderInfo);
++ creator = PyString_FromStringAndSize((char*)&(finfo->fileCreator), 4);
++ type = PyString_FromStringAndSize((char*)&(finfo->fileType), 4);
++
+ res = Py_BuildValue("OO", creator, type);
+ Py_DECREF(creator);
+ Py_DECREF(type);
+@@ -314,20 +349,66 @@
+ static PyObject *
+ MacOS_SetCreatorAndType(PyObject *self, PyObject *args)
+ {
+- FSSpec fss;
+ ResType creator, type;
+- FInfo info;
++ FSRef ref;
++ FileInfo* finfo;
+ OSErr err;
+-
++ FSCatalogInfo cataloginfo;
++
+ if (!PyArg_ParseTuple(args, "O&O&O&",
++ PyMac_GetFSRef, &ref, PyMac_GetOSType, &creator, PyMac_GetOSType, &type)) {
++#ifndef __LP64__
++ /* Try to handle FSSpec arguments, for backward compatibility */
++ FSSpec fss;
++ FInfo info;
++
++ if (!PyArg_ParseTuple(args, "O&O&O&",
+ PyMac_GetFSSpec, &fss, PyMac_GetOSType, &creator, PyMac_GetOSType, &type))
++ return NULL;
++
++ if ((err = FSpGetFInfo(&fss, &info)) != noErr)
++ return PyErr_Mac(MacOS_Error, err);
++
++ info.fdCreator = creator;
++ info.fdType = type;
++
++ if ((err = FSpSetFInfo(&fss, &info)) != noErr)
++ return PyErr_Mac(MacOS_Error, err);
++ Py_INCREF(Py_None);
++ return Py_None;
++#else /* __LP64__ */
++ return NULL;
++#endif /* __LP64__ */
++ }
++
++ err = FSGetCatalogInfo(&ref,
++ kFSCatInfoFinderInfo|kFSCatInfoNodeFlags, &cataloginfo,
++ NULL, NULL, NULL);
++ if (err != noErr) {
++ PyErr_Mac(MacOS_Error, err);
+ return NULL;
+- if ((err = FSpGetFInfo(&fss, &info)) != noErr)
+- return PyErr_Mac(MacOS_Error, err);
+- info.fdCreator = creator;
+- info.fdType = type;
+- if ((err = FSpSetFInfo(&fss, &info)) != noErr)
+- return PyErr_Mac(MacOS_Error, err);
++ }
++
++ if ((cataloginfo.nodeFlags & kFSNodeIsDirectoryMask) != 0) {
++ /* Directory: doesn't have type/creator info.
++ *
++ * The specific error code is for backward compatibility with
++ * earlier versions.
++ */
++ PyErr_Mac(MacOS_Error, fnfErr);
++ return NULL;
++
++ }
++ finfo = (FileInfo*)&(cataloginfo.finderInfo);
++ finfo->fileCreator = creator;
++ finfo->fileType = type;
++
++ err = FSSetCatalogInfo(&ref, kFSCatInfoFinderInfo, &cataloginfo);
++ if (err != noErr) {
++ PyErr_Mac(MacOS_Error, fnfErr);
++ return NULL;
++ }
++
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+@@ -399,6 +480,7 @@
+ return Py_BuildValue("s", buf);
+ }
+
++#ifndef __LP64__
+ static char splash_doc[] = "Open a splash-screen dialog by resource-id (0=close)";
+
+ static PyObject *
+@@ -470,6 +552,7 @@
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
++#endif /* !__LP64__ */
+
+ static char WMAvailable_doc[] =
+ "True if this process can interact with the display."
+@@ -530,17 +613,18 @@
+ {
+ OSErr err;
+ char *mode = "r";
+- FSSpec fss;
+- SignedByte permission = 1;
++ FSRef ref;
++ SInt8 permission = fsRdPerm;
+ rfobject *fp;
++ HFSUniStr255 name;
+
+- if (!PyArg_ParseTuple(args, "O&|s", PyMac_GetFSSpec, &fss, &mode))
++ if (!PyArg_ParseTuple(args, "O&|s", PyMac_GetFSRef, &ref, &mode))
+ return NULL;
+ while (*mode) {
+ switch (*mode++) {
+ case '*': break;
+- case 'r': permission = 1; break;
+- case 'w': permission = 2; break;
++ case 'r': permission = fsRdPerm; break;
++ case 'w': permission = fsWrPerm; break;
+ case 'b': break;
+ default:
+ PyErr_BadArgument();
+@@ -548,33 +632,18 @@
+ }
+ }
+
+- if ( (fp = newrfobject()) == NULL )
++ err = FSGetResourceForkName(&name);
++ if (err != noErr) {
++ PyMac_Error(err);
+ return NULL;
++ }
+
+- err = HOpenRF(fss.vRefNum, fss.parID, fss.name, permission, &fp->fRefNum);
++ if ( (fp = newrfobject()) == NULL )
++ return NULL;
++
+
+- if ( err == fnfErr ) {
+- /* In stead of doing complicated things here to get creator/type
+- ** correct we let the standard i/o library handle it
+- */
+- FILE *tfp;
+- char pathname[PATHNAMELEN];
+-
+- if ( (err=PyMac_GetFullPathname(&fss, pathname, PATHNAMELEN)) ) {
+- PyMac_Error(err);
+- Py_DECREF(fp);
+- return NULL;
+- }
+-
+- if ( (tfp = fopen(pathname, "w")) == NULL ) {
+- PyMac_Error(fnfErr); /* What else... */
+- Py_DECREF(fp);
+- return NULL;
+- }
+- fclose(tfp);
+- err = HOpenRF(fss.vRefNum, fss.parID, fss.name, permission, &fp->fRefNum);
+- }
+- if ( err ) {
++ err = FSOpenFork(&ref, name.length, name.unicode, permission, &fp->fRefNum);
++ if (err != noErr) {
+ Py_DECREF(fp);
+ PyMac_Error(err);
+ return NULL;
+@@ -589,10 +658,12 @@
+ {"SetCreatorAndType", MacOS_SetCreatorAndType, 1, setcrtp_doc},
+ {"GetErrorString", MacOS_GetErrorString, 1, geterr_doc},
+ {"openrf", MacOS_openrf, 1, openrf_doc},
++#ifndef __LP64__
+ {"splash", MacOS_splash, 1, splash_doc},
+ {"DebugStr", MacOS_DebugStr, 1, DebugStr_doc},
+- {"GetTicks", MacOS_GetTicks, 1, GetTicks_doc},
+ {"SysBeep", MacOS_SysBeep, 1, SysBeep_doc},
++#endif /* !__LP64__ */
++ {"GetTicks", MacOS_GetTicks, 1, GetTicks_doc},
+ {"WMAvailable", MacOS_WMAvailable, 1, WMAvailable_doc},
+ {NULL, NULL} /* Sentinel */
+ };
+--- Mac/Modules/file/_Filemodule.c.orig 2006-05-29 07:57:35.000000000 +1000
++++ Mac/Modules/file/_Filemodule.c 2009-09-10 22:48:47.000000000 +1000
+@@ -18,9 +18,11 @@
+ #include <Carbon/Carbon.h>
+
+ #ifdef USE_TOOLBOX_OBJECT_GLUE
++#ifndef __LP64__
+ extern int _PyMac_GetFSSpec(PyObject *v, FSSpec *spec);
+-extern int _PyMac_GetFSRef(PyObject *v, FSRef *fsr);
+ extern PyObject *_PyMac_BuildFSSpec(FSSpec *spec);
++#endif /* !__LP64__ */
++extern int _PyMac_GetFSRef(PyObject *v, FSRef *fsr);
+ extern PyObject *_PyMac_BuildFSRef(FSRef *spec);
+
+ #define PyMac_GetFSSpec _PyMac_GetFSSpec
+@@ -28,20 +30,26 @@
+ #define PyMac_BuildFSSpec _PyMac_BuildFSSpec
+ #define PyMac_BuildFSRef _PyMac_BuildFSRef
+ #else
++#ifndef __LP64__
+ extern int PyMac_GetFSSpec(PyObject *v, FSSpec *spec);
+-extern int PyMac_GetFSRef(PyObject *v, FSRef *fsr);
+ extern PyObject *PyMac_BuildFSSpec(FSSpec *spec);
++#endif /* !__LP64__ */
++extern int PyMac_GetFSRef(PyObject *v, FSRef *fsr);
+ extern PyObject *PyMac_BuildFSRef(FSRef *spec);
+ #endif
+
+ /* Forward declarations */
++#ifndef __LP64__
+ static PyObject *FInfo_New(FInfo *itself);
+-static PyObject *FSRef_New(FSRef *itself);
+ static PyObject *FSSpec_New(FSSpec *itself);
++#define FSSpec_Convert PyMac_GetFSSpec
++#endif /* !__LP64__ */
++static PyObject *FSRef_New(FSRef *itself);
+ static PyObject *Alias_New(AliasHandle itself);
++#ifndef __LP64__
+ static int FInfo_Convert(PyObject *v, FInfo *p_itself);
++#endif /* !__LP64__ */
+ #define FSRef_Convert PyMac_GetFSRef
+-#define FSSpec_Convert PyMac_GetFSSpec
+ static int Alias_Convert(PyObject *v, AliasHandle *p_itself);
+
+ /*
+@@ -62,6 +70,7 @@
+ /*
+ ** Optional fsspec and fsref pointers. None will pass NULL
+ */
++#ifndef __LP64__
+ static int
+ myPyMac_GetOptFSSpecPtr(PyObject *v, FSSpec **spec)
+ {
+@@ -71,6 +80,7 @@
+ }
+ return PyMac_GetFSSpec(v, *spec);
+ }
++#endif /* !__LP64__ */
+
+ static int
+ myPyMac_GetOptFSRefPtr(PyObject *v, FSRef **ref)
+@@ -92,6 +102,7 @@
+ return Py_BuildValue("u#", itself->unicode, itself->length);
+ }
+
++#ifndef __LP64__
+ static OSErr
+ _PyMac_GetFullPathname(FSSpec *fss, char *path, int len)
+ {
+@@ -135,6 +146,7 @@
+ }
+ return 0;
+ }
++#endif /* !__LP64__ */
+
+
+ static PyObject *File_Error;
+@@ -282,12 +294,28 @@
+
+ static PyObject *FSCatalogInfo_get_permissions(FSCatalogInfoObject *self, void *closure)
+ {
+- return Py_BuildValue("(llll)", self->ob_itself.permissions[0], self->ob_itself.permissions[1], self->ob_itself.permissions[2], self->ob_itself.permissions[3]);
++ FSPermissionInfo* info = (FSPermissionInfo*)&(self->ob_itself.permissions);
++ return Py_BuildValue("(llll)", info->userID, info->groupID, info->userAccess, info->mode);
+ }
+
+ static int FSCatalogInfo_set_permissions(FSCatalogInfoObject *self, PyObject *v, void *closure)
+ {
+- return PyArg_Parse(v, "(llll)", &self->ob_itself.permissions[0], &self->ob_itself.permissions[1], &self->ob_itself.permissions[2], &self->ob_itself.permissions[3])-1;
++ long userID;
++ long groupID;
++ long userAccess;
++ long mode;
++ int r;
++
++ FSPermissionInfo* info = (FSPermissionInfo*)&(self->ob_itself.permissions);
++
++ r = PyArg_Parse(v, "(llll)", &userID, &groupID, &userAccess, &mode);
++ if (!r) {
++ return -1;
++ }
++ info->userID = userID;
++ info->groupID = groupID;
++ info->userAccess = userAccess;
++ info->mode = mode;
+ return 0;
+ }
+
+@@ -501,6 +529,7 @@
+
+ /* ----------------------- Object type FInfo ------------------------ */
+
++#ifndef __LP64__
+ static PyTypeObject FInfo_Type;
+
+ #define FInfo_Check(x) ((x)->ob_type == &FInfo_Type || PyObject_TypeCheck((x), &FInfo_Type))
+@@ -682,6 +711,7 @@
+ FInfo_tp_free, /* tp_free */
+ };
+
++#endif /* !__LP64__ */
+ /* --------------------- End object type FInfo ---------------------- */
+
+
+@@ -729,6 +759,7 @@
+ self->ob_type->tp_free((PyObject *)self);
+ }
+
++#ifndef __LP64__
+ static PyObject *Alias_ResolveAlias(AliasObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+@@ -818,6 +849,7 @@
+ wasChanged);
+ return _res;
+ }
++#endif /* !__LP64__ */
+
+ static PyObject *Alias_FSResolveAliasWithMountFlags(AliasObject *_self, PyObject *_args)
+ {
+@@ -891,6 +923,7 @@
+ }
+
+ static PyMethodDef Alias_methods[] = {
++#ifndef __LP64__
+ {"ResolveAlias", (PyCFunction)Alias_ResolveAlias, 1,
+ PyDoc_STR("(FSSpec fromFile) -> (FSSpec target, Boolean wasChanged)")},
+ {"GetAliasInfo", (PyCFunction)Alias_GetAliasInfo, 1,
+@@ -899,6 +932,7 @@
+ PyDoc_STR("(FSSpec fromFile, unsigned long mountFlags) -> (FSSpec target, Boolean wasChanged)")},
+ {"FollowFinderAlias", (PyCFunction)Alias_FollowFinderAlias, 1,
+ PyDoc_STR("(FSSpec fromFile, Boolean logon) -> (FSSpec target, Boolean wasChanged)")},
++#endif /* !__LP64__ */
+ {"FSResolveAliasWithMountFlags", (PyCFunction)Alias_FSResolveAliasWithMountFlags, 1,
+ PyDoc_STR("(FSRef fromFile, unsigned long mountFlags) -> (FSRef target, Boolean wasChanged)")},
+ {"FSResolveAlias", (PyCFunction)Alias_FSResolveAlias, 1,
+@@ -1033,6 +1067,7 @@
+
+
+ /* ----------------------- Object type FSSpec ----------------------- */
++#ifndef __LP64__
+
+ static PyTypeObject FSSpec_Type;
+
+@@ -1488,6 +1523,7 @@
+ FSSpec_tp_free, /* tp_free */
+ };
+
++#endif /* !__LP64__ */
+ /* --------------------- End object type FSSpec --------------------- */
+
+
+@@ -1568,7 +1604,9 @@
+ FSCatalogInfoBitmap whichInfo;
+ FSCatalogInfo catalogInfo;
+ FSRef newRef;
++#ifndef __LP64__
+ FSSpec newSpec;
++#endif /* !__LP64__ */
+ if (!PyArg_ParseTuple(_args, "u#lO&",
+ &nameLength__in__, &nameLength__in_len__,
+ &whichInfo,
+@@ -1580,11 +1618,20 @@
+ whichInfo,
+ &catalogInfo,
+ &newRef,
+- &newSpec);
++#ifndef __LP64__
++ &newSpec
++#else
++ NULL
++#endif /* !__LP64__ */
++ );
+ if (_err != noErr) return PyMac_Error(_err);
++#ifndef __LP64__
+ _res = Py_BuildValue("O&O&",
+ FSRef_New, &newRef,
+ FSSpec_New, &newSpec);
++#else
++ _res = Py_BuildValue("O&O", FSRef_New, &newRef, Py_None);
++#endif /* !__LP64__ */
+ return _res;
+ }
+
+@@ -1598,7 +1645,9 @@
+ FSCatalogInfoBitmap whichInfo;
+ FSCatalogInfo catalogInfo;
+ FSRef newRef;
++#ifndef __LP64__
+ FSSpec newSpec;
++#endif /* !__LP64__ */
+ UInt32 newDirID;
+ if (!PyArg_ParseTuple(_args, "u#lO&",
+ &nameLength__in__, &nameLength__in_len__,
+@@ -1611,13 +1660,25 @@
+ whichInfo,
+ &catalogInfo,
+ &newRef,
++#ifndef __LP64__
+ &newSpec,
++#else
++ NULL,
++#endif /* !__LP64__ */
+ &newDirID);
+ if (_err != noErr) return PyMac_Error(_err);
++
++#ifndef __LP64__
+ _res = Py_BuildValue("O&O&l",
+ FSRef_New, &newRef,
+ FSSpec_New, &newSpec,
+ newDirID);
++#else
++ _res = Py_BuildValue("O&Ol",
++ FSRef_New, &newRef,
++ Py_None,
++ newDirID);
++#endif /* !__LP64__ */
+ return _res;
+ }
+
+@@ -1699,7 +1760,9 @@
+ FSCatalogInfoBitmap whichInfo;
+ FSCatalogInfo catalogInfo;
+ HFSUniStr255 outName;
++#ifndef __LP64__
+ FSSpec fsSpec;
++#endif /* !__LP64__ */
+ FSRef parentRef;
+ if (!PyArg_ParseTuple(_args, "l",
+ &whichInfo))
+@@ -1708,14 +1771,26 @@
+ whichInfo,
+ &catalogInfo,
+ &outName,
++#ifndef __LP64__
+ &fsSpec,
++#else
++ NULL,
++#endif /* !__LP64__ */
+ &parentRef);
+ if (_err != noErr) return PyMac_Error(_err);
++#ifndef __LP64__
+ _res = Py_BuildValue("O&O&O&O&",
+ FSCatalogInfo_New, &catalogInfo,
+ PyMac_BuildHFSUniStr255, &outName,
+ FSSpec_New, &fsSpec,
+ FSRef_New, &parentRef);
++#else
++ _res = Py_BuildValue("O&O&OO&",
++ FSCatalogInfo_New, &catalogInfo,
++ PyMac_BuildHFSUniStr255, &outName,
++ Py_None,
++ FSRef_New, &parentRef);
++#endif /* !__LP64__ */
+ return _res;
+ }
+
+@@ -1784,7 +1859,7 @@
+ UniCharCount forkNameLength__len__;
+ int forkNameLength__in_len__;
+ SInt8 permissions;
+- SInt16 forkRefNum;
++ FSIORefNum forkRefNum;
+ if (!PyArg_ParseTuple(_args, "u#b",
+ &forkNameLength__in__, &forkNameLength__in_len__,
+ &permissions))
+@@ -2034,7 +2109,7 @@
+
+ /* --------------------- End object type FSRef ---------------------- */
+
+-
++#ifndef __LP64__
+ static PyObject *File_UnmountVol(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+@@ -2562,6 +2637,7 @@
+ FSSpec_New, &spec);
+ return _res;
+ }
++#endif /* !__LP64__ */
+
+ static PyObject *File_FSGetForkPosition(PyObject *_self, PyObject *_args)
+ {
+@@ -2785,6 +2861,7 @@
+ return _res;
+ }
+
++#ifndef __LP64__
+ static PyObject *File_NewAlias(PyObject *_self, PyObject *_args)
+ {
+ PyObject *_res = NULL;
+@@ -2933,6 +3010,7 @@
+ wasAliased);
+ return _res;
+ }
++#endif /* !__LP64__ */
+
+ static PyObject *File_FSNewAlias(PyObject *_self, PyObject *_args)
+ {
+@@ -3050,6 +3128,7 @@
+ }
+
+ static PyMethodDef File_methods[] = {
++#ifndef __LP64__
+ {"UnmountVol", (PyCFunction)File_UnmountVol, 1,
+ PyDoc_STR("(Str63 volName, short vRefNum) -> None")},
+ {"FlushVol", (PyCFunction)File_FlushVol, 1,
+@@ -3100,6 +3179,7 @@
+ PyDoc_STR("(short vRefNum, long dirID, Str255 oldName, long newDirID, Str255 newName) -> None")},
+ {"FSMakeFSSpec", (PyCFunction)File_FSMakeFSSpec, 1,
+ PyDoc_STR("(short vRefNum, long dirID, Str255 fileName) -> (FSSpec spec)")},
++#endif /* !__LP64__ */
+ {"FSGetForkPosition", (PyCFunction)File_FSGetForkPosition, 1,
+ PyDoc_STR("(SInt16 forkRefNum) -> (SInt64 position)")},
+ {"FSSetForkPosition", (PyCFunction)File_FSSetForkPosition, 1,
+@@ -3124,6 +3204,7 @@
+ PyDoc_STR("(UInt8 * path, FNMessage message, OptionBits flags) -> None")},
+ {"FNNotifyAll", (PyCFunction)File_FNNotifyAll, 1,
+ PyDoc_STR("(FNMessage message, OptionBits flags) -> None")},
++#ifndef __LP64__
+ {"NewAlias", (PyCFunction)File_NewAlias, 1,
+ PyDoc_STR("(FSSpec fromFile, FSSpec target) -> (AliasHandle alias)")},
+ {"NewAliasMinimalFromFullPath", (PyCFunction)File_NewAliasMinimalFromFullPath, 1,
+@@ -3136,6 +3217,7 @@
+ PyDoc_STR("(FSSpec fromFile, FSSpec target, AliasHandle alias) -> (Boolean wasChanged)")},
+ {"ResolveAliasFileWithMountFlagsNoUI", (PyCFunction)File_ResolveAliasFileWithMountFlagsNoUI, 1,
+ PyDoc_STR("(FSSpec theSpec, Boolean resolveAliasChains, unsigned long mountFlags) -> (FSSpec theSpec, Boolean targetIsFolder, Boolean wasAliased)")},
++#endif /* !__LP64__ */
+ {"FSNewAlias", (PyCFunction)File_FSNewAlias, 1,
+ PyDoc_STR("(FSRef fromFile, FSRef target) -> (AliasHandle inAlias)")},
+ {"FSResolveAliasFileWithMountFlags", (PyCFunction)File_FSResolveAliasFileWithMountFlags, 1,
+@@ -3150,7 +3232,7 @@
+ };
+
+
+-
++#ifndef __LP64__
+ int
+ PyMac_GetFSSpec(PyObject *v, FSSpec *spec)
+ {
+@@ -3188,12 +3270,15 @@
+ }
+ return 0;
+ }
++#endif /* !__LP64__ */
+
+ int
+ PyMac_GetFSRef(PyObject *v, FSRef *fsr)
+ {
+ OSStatus err;
++#ifndef __LP64__
+ FSSpec fss;
++#endif /* !__LP64__ */
+
+ if (FSRef_Check(v)) {
+ *fsr = ((FSRefObject *)v)->ob_itself;
+@@ -3211,6 +3296,7 @@
+ return !err;
+ }
+ /* XXXX Should try unicode here too */
++#ifndef __LP64__
+ /* Otherwise we try to go via an FSSpec */
+ if (FSSpec_Check(v)) {
+ fss = ((FSSpecObject *)v)->ob_itself;
+@@ -3219,15 +3305,18 @@
+ PyMac_Error(err);
+ return 0;
+ }
++#endif /* !__LP64__ */
+ PyErr_SetString(PyExc_TypeError, "FSRef, FSSpec or pathname required");
+ return 0;
+ }
+
++#ifndef __LP64__
+ extern PyObject *
+ PyMac_BuildFSSpec(FSSpec *spec)
+ {
+ return FSSpec_New(spec);
+ }
++#endif /* !__LP64__ */
+
+ extern PyObject *
+ PyMac_BuildFSRef(FSRef *spec)
+@@ -3242,10 +3331,11 @@
+ PyObject *d;
+
+
+-
++#ifndef __LP64__
+ PyMac_INIT_TOOLBOX_OBJECT_NEW(FSSpec *, PyMac_BuildFSSpec);
+- PyMac_INIT_TOOLBOX_OBJECT_NEW(FSRef *, PyMac_BuildFSRef);
+ PyMac_INIT_TOOLBOX_OBJECT_CONVERT(FSSpec, PyMac_GetFSSpec);
++#endif /* !__LP64__ */
++ PyMac_INIT_TOOLBOX_OBJECT_NEW(FSRef *, PyMac_BuildFSRef);
+ PyMac_INIT_TOOLBOX_OBJECT_CONVERT(FSRef, PyMac_GetFSRef);
+
+
+@@ -3262,6 +3352,7 @@
+ /* Backward-compatible name */
+ Py_INCREF(&FSCatalogInfo_Type);
+ PyModule_AddObject(m, "FSCatalogInfoType", (PyObject *)&FSCatalogInfo_Type);
++#ifndef __LP64__
+ FInfo_Type.ob_type = &PyType_Type;
+ if (PyType_Ready(&FInfo_Type) < 0) return;
+ Py_INCREF(&FInfo_Type);
+@@ -3269,6 +3360,7 @@
+ /* Backward-compatible name */
+ Py_INCREF(&FInfo_Type);
+ PyModule_AddObject(m, "FInfoType", (PyObject *)&FInfo_Type);
++#endif /* !__LP64__ */
+ Alias_Type.ob_type = &PyType_Type;
+ if (PyType_Ready(&Alias_Type) < 0) return;
+ Py_INCREF(&Alias_Type);
+@@ -3276,6 +3368,7 @@
+ /* Backward-compatible name */
+ Py_INCREF(&Alias_Type);
+ PyModule_AddObject(m, "AliasType", (PyObject *)&Alias_Type);
++#ifndef __LP64__
+ FSSpec_Type.ob_type = &PyType_Type;
+ if (PyType_Ready(&FSSpec_Type) < 0) return;
+ Py_INCREF(&FSSpec_Type);
+@@ -3283,6 +3376,7 @@
+ /* Backward-compatible name */
+ Py_INCREF(&FSSpec_Type);
+ PyModule_AddObject(m, "FSSpecType", (PyObject *)&FSSpec_Type);
++#endif /* !__LP64__ */
+ FSRef_Type.ob_type = &PyType_Type;
+ if (PyType_Ready(&FSRef_Type) < 0) return;
+ Py_INCREF(&FSRef_Type);
+Index: Lib/plat-mac/macresource.py
+===================================================================
+--- Lib/plat-mac/macresource.py (revision 74680)
++++ Lib/plat-mac/macresource.py (revision 74681)
+@@ -79,8 +79,8 @@
+ AppleSingle file"""
+ try:
+ refno = Res.FSpOpenResFile(pathname, 1)
+- except Res.Error, arg:
+- if arg[0] in (-37, -39):
++ except (AttributeError, Res.Error), arg:
++ if isinstance(arg, AttributeError) or arg[0] in (-37, -39):
+ # No resource fork. We may be on OSX, and this may be either
+ # a data-fork based resource file or a AppleSingle file
+ # from the CVS repository.
+@@ -106,8 +106,8 @@
+ try:
+ refno = Res.FSpOpenResFile(pathname, 1)
+ Res.CloseResFile(refno)
+- except Res.Error, arg:
+- if arg[0] in (-37, -39):
++ except (AttributeError, Res.Error), arg:
++ if isinstance(arg, AttributeError) or arg[0] in (-37, -39):
+ # No resource fork. We may be on OSX, and this may be either
+ # a data-fork based resource file or a AppleSingle file
+ # from the CVS repository.
+Index: Lib/plat-mac/applesingle.py
+===================================================================
+--- Lib/plat-mac/applesingle.py (revision 74680)
++++ Lib/plat-mac/applesingle.py (revision 74681)
+@@ -119,8 +119,13 @@
+ if not hasattr(infile, 'read'):
+ if isinstance(infile, Carbon.File.Alias):
+ infile = infile.ResolveAlias()[0]
+- if isinstance(infile, (Carbon.File.FSSpec, Carbon.File.FSRef)):
+- infile = infile.as_pathname()
++
++ if hasattr(Carbon.File, "FSSpec"):
++ if isinstance(infile, (Carbon.File.FSSpec, Carbon.File.FSRef)):
++ infile = infile.as_pathname()
++ else:
++ if isinstance(infile, Carbon.File.FSRef):
++ infile = infile.as_pathname()
+ infile = open(infile, 'rb')
+
+ asfile = AppleSingle(infile, verbose=verbose)
+Index: Mac/scripts/BuildApplet.py
+===================================================================
+--- Mac/scripts/BuildApplet.py (revision 74680)
++++ Mac/scripts/BuildApplet.py (revision 74681)
+@@ -12,7 +12,10 @@
+
+ import os
+ import MacOS
+-import EasyDialogs
++try:
++ import EasyDialogs
++except ImportError:
++ EasyDialogs = None
+ import buildtools
+ import getopt
+
+@@ -32,7 +35,10 @@
+ try:
+ buildapplet()
+ except buildtools.BuildError, detail:
+- EasyDialogs.Message(detail)
++ if EasyDialogs is None:
++ print detail
++ else:
++ EasyDialogs.Message(detail)
+
+
+ def buildapplet():
+@@ -46,6 +52,10 @@
+ # Ask for source text if not specified in sys.argv[1:]
+
+ if not sys.argv[1:]:
++ if EasyDialogs is None:
++ usage()
++ sys.exit(1)
++
+ filename = EasyDialogs.AskFileForOpen(message='Select Python source or applet:',
+ typeList=('TEXT', 'APPL'))
+ if not filename:
+Index: Lib/plat-mac/buildtools.py
+===================================================================
+--- Lib/plat-mac/buildtools.py (revision 74680)
++++ Lib/plat-mac/buildtools.py (revision 74681)
+@@ -15,7 +15,10 @@
+ import MacOS
+ import macostools
+ import macresource
+-import EasyDialogs
++try:
++ import EasyDialogs
++except ImportError:
++ EasyDialogs = None
+ import shutil
+
+
+@@ -67,9 +70,13 @@
+ rsrcname=None, others=[], raw=0, progress="default", destroot=""):
+
+ if progress == "default":
+- progress = EasyDialogs.ProgressBar("Processing %s..."%os.path.split(filename)[1], 120)
+- progress.label("Compiling...")
+- progress.inc(0)
++ if EasyDialogs is None:
++ print "Compiling %s"%(os.path.split(filename)[1],)
++ process = None
++ else:
++ progress = EasyDialogs.ProgressBar("Processing %s..."%os.path.split(filename)[1], 120)
++ progress.label("Compiling...")
++ progress.inc(0)
+ # check for the script name being longer than 32 chars. This may trigger a bug
+ # on OSX that can destroy your sourcefile.
+ if '#' in os.path.split(filename)[1]:
+@@ -119,7 +126,11 @@
+ if MacOS.runtimemodel == 'macho':
+ raise BuildError, "No updating yet for MachO applets"
+ if progress:
+- progress = EasyDialogs.ProgressBar("Updating %s..."%os.path.split(filename)[1], 120)
++ if EasyDialogs is None:
++ print "Updating %s"%(os.path.split(filename)[1],)
++ progress = None
++ else:
++ progress = EasyDialogs.ProgressBar("Updating %s..."%os.path.split(filename)[1], 120)
+ else:
+ progress = None
+ if not output:
diff --git a/packaging/macosx/ports/lang/python25/files/patch-FSIORefNum.diff b/packaging/macosx/ports/lang/python25/files/patch-FSIORefNum.diff
new file mode 100644
index 000000000..6f8ac6608
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-FSIORefNum.diff
@@ -0,0 +1,11 @@
+--- Mac/Modules/file/_Filemodule.c.orig 2009-09-12 15:55:59.000000000 +1000
++++ Mac/Modules/file/_Filemodule.c 2009-09-12 16:12:07.000000000 +1000
+@@ -7,6 +7,8 @@
+
+ #include "pymactoolbox.h"
+
++typedef SInt16 FSIORefNum;
++
+ /* Macro to test whether a weak-loaded CFM function exists */
+ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
+ PyErr_SetString(PyExc_NotImplementedError, \
diff --git a/packaging/macosx/ports/lang/python25/files/patch-Lib-cgi.py.diff b/packaging/macosx/ports/lang/python25/files/patch-Lib-cgi.py.diff
new file mode 100644
index 000000000..8153bebbd
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-Lib-cgi.py.diff
@@ -0,0 +1,18 @@
+--- Lib/cgi.py.orig 2006-08-10 19:41:07.000000000 +0200
++++ Lib/cgi.py 2007-08-21 15:36:54.000000000 +0200
+@@ -1,13 +1,6 @@
+-#! /usr/local/bin/python
++#! __PREFIX__/bin/python2.5
+
+-# NOTE: the above "/usr/local/bin/python" is NOT a mistake. It is
+-# intentionally NOT "/usr/bin/env python". On many systems
+-# (e.g. Solaris), /usr/local/bin is not in $PATH as passed to CGI
+-# scripts, and /usr/local/bin is the default directory where Python is
+-# installed, so /usr/bin/env would be unable to find python. Granted,
+-# binary installations by Linux vendors often install Python in
+-# /usr/bin. So let those vendors patch cgi.py to match their choice
+-# of installation.
++# NOTE: The original #!/usr/local/bin/python patched for MacPorts installation
+
+ """Support module for CGI (Common Gateway Interface) scripts.
+
diff --git a/packaging/macosx/ports/lang/python25/files/patch-Lib-distutils-dist.py.diff b/packaging/macosx/ports/lang/python25/files/patch-Lib-distutils-dist.py.diff
new file mode 100644
index 000000000..961a8ad28
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-Lib-distutils-dist.py.diff
@@ -0,0 +1,51 @@
+--- Lib/distutils/dist.py.orig 2005-03-23 11:54:36.000000000 -0700
++++ Lib/distutils/dist.py 2008-07-25 21:27:15.000000000 -0600
+@@ -57,6 +57,7 @@
+ ('quiet', 'q', "run quietly (turns verbosity off)"),
+ ('dry-run', 'n', "don't actually do anything"),
+ ('help', 'h', "show detailed help message"),
++ ('no-user-cfg', None,'ignore pydistutils.cfg in your home directory'),
+ ]
+
+ # 'common_usage' is a short (2-3 line) string describing the common
+@@ -264,6 +265,12 @@
+ else:
+ sys.stderr.write(msg + "\n")
+
++ # no-user-cfg is handled before other command line args
++ # because other args override the config files, and this
++ # one is needed before we can load the config files.
++ # If attrs['script_args'] wasn't passed, assume false.
++ self.want_user_cfg = '--no-user-cfg' not in (self.script_args or [])
++
+ self.finalize_options()
+
+ # __init__ ()
+@@ -324,6 +331,9 @@
+ Distutils __inst__.py file lives), a file in the user's home
+ directory named .pydistutils.cfg on Unix and pydistutils.cfg
+ on Windows/Mac, and setup.cfg in the current directory.
++
++ The file in the user's home directory can be disabled with the
++ --no-user-cfg option.
+ """
+ files = []
+ check_environ()
+@@ -343,7 +353,7 @@
+ user_filename = "pydistutils.cfg"
+
+ # And look for the user config file
+- if os.environ.has_key('HOME'):
++ if self.want_user_cfg and os.environ.has_key('HOME'):
+ user_file = os.path.join(os.environ.get('HOME'), user_filename)
+ if os.path.isfile(user_file):
+ files.append(user_file)
+@@ -353,6 +363,8 @@
+ if os.path.isfile(local_file):
+ files.append(local_file)
+
++ if DEBUG:
++ print "using config files: %s" % ', '.join(files)
+ return files
+
+ # find_config_files ()
diff --git a/packaging/macosx/ports/lang/python25/files/patch-Makefile.pre.in.diff b/packaging/macosx/ports/lang/python25/files/patch-Makefile.pre.in.diff
new file mode 100644
index 000000000..e99a24741
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-Makefile.pre.in.diff
@@ -0,0 +1,49 @@
+--- Makefile.pre.in.orig 2008-09-22 10:22:44.000000000 +1000
++++ Makefile.pre.in 2011-10-27 06:47:17.000000000 +1100
+@@ -348,8 +348,8 @@
+ # Build the shared modules
+ sharedmods: $(BUILDPYTHON)
+ case $$MAKEFLAGS in \
+- *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
+- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
++ *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q --no-user-cfg build;; \
++ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py --no-user-cfg build;; \
+ esac
+
+ # Build static library
+@@ -387,7 +387,7 @@
+ $(RESSRCDIR)/English.lproj/InfoPlist.strings
+ $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
+ if test "${UNIVERSALSDK}"; then \
+- $(CC) -o $(LDLIBRARY) -arch i386 -arch ppc -dynamiclib \
++ $(CC) -o $(LDLIBRARY) __UNIVERSAL_LDFLAGS__ -dynamiclib \
+ -isysroot "${UNIVERSALSDK}" \
+ -all_load $(LIBRARY) -Wl,-single_module \
+ -install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python \
+@@ -458,7 +458,7 @@
+ $(SIGNAL_OBJS) \
+ $(MODOBJS) \
+ $(srcdir)/Modules/getbuildinfo.c
+- $(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LC_ALL=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
++ $(CC) -c $(PY_CFLAGS) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
+
+ Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
+ $(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
+@@ -894,7 +894,7 @@
+ # Install the dynamically loadable modules
+ # This goes into $(exec_prefix)
+ sharedinstall:
+- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
++ $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py --no-user-cfg install \
+ --prefix=$(prefix) \
+ --install-scripts=$(BINDIR) \
+ --install-platlib=$(DESTSHARED) \
+@@ -968,7 +968,7 @@
+ # This installs a few of the useful scripts in Tools/scripts
+ scriptsinstall:
+ SRCDIR=$(srcdir) $(RUNSHARED) \
+- ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/setup.py install \
++ ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/setup.py --no-user-cfg install \
+ --prefix=$(prefix) \
+ --install-scripts=$(BINDIR) \
+ --root=/$(DESTDIR)
diff --git a/packaging/macosx/ports/lang/python25/files/patch-Misc-setuid-prog.c.diff b/packaging/macosx/ports/lang/python25/files/patch-Misc-setuid-prog.c.diff
new file mode 100644
index 000000000..0fee9e791
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-Misc-setuid-prog.c.diff
@@ -0,0 +1,16 @@
+--- Misc/setuid-prog.c.orig Sat Dec 11 14:29:22 2004
++++ Misc/setuid-prog.c Sat Dec 11 14:30:13 2004
+@@ -70,6 +70,12 @@
+ #define environ _environ
+ #endif
+
++#if defined(__APPLE__)
++#include <sys/time.h>
++#include <crt_externs.h>
++#define environ (*_NSGetEnviron())
++#endif
++
+ /* don't change def_IFS */
+ char def_IFS[] = "IFS= \t\n";
+ /* you may want to change def_PATH, but you should really change it in */
+
diff --git a/packaging/macosx/ports/lang/python25/files/patch-Modules-posixmodule.c.diff b/packaging/macosx/ports/lang/python25/files/patch-Modules-posixmodule.c.diff
new file mode 100644
index 000000000..c14913cf7
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-Modules-posixmodule.c.diff
@@ -0,0 +1,21 @@
+--- Modules/posixmodule.c.orig Sat Dec 11 14:27:52 2004
++++ Modules/posixmodule.c Sat Dec 11 14:28:17 2004
+@@ -339,7 +339,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().
+ */
+@@ -357,7 +357,7 @@
+ d = PyDict_New();
+ if (d == NULL)
+ return NULL;
+-#ifdef WITH_NEXT_FRAMEWORK
++#ifdef __APPLE__
+ if (environ == NULL)
+ environ = *_NSGetEnviron();
+ #endif
+
diff --git a/packaging/macosx/ports/lang/python25/files/patch-configure.diff b/packaging/macosx/ports/lang/python25/files/patch-configure.diff
new file mode 100644
index 000000000..22d260047
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-configure.diff
@@ -0,0 +1,45 @@
+--- configure.orig 2008-12-14 01:13:52.000000000 +1100
++++ configure 2011-05-10 16:25:02.000000000 +1000
+@@ -4534,9 +4534,11 @@
+ ;;
+ # is there any other compiler on Darwin besides gcc?
+ Darwin*)
+- BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
++ BASECFLAGS="$BASECFLAGS -mno-fused-madd"
+ if test "${enable_universalsdk}"; then
+- BASECFLAGS="-arch ppc -arch i386 -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
++ BASECFLAGS="__UNIVERSAL_CFLAGS__ -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
++ else
++ BASECFLAGS="-arch __BUILD_ARCH__ ${BASECFLAGS}"
+ fi
+
+ ;;
+@@ -11362,7 +11364,7 @@
+ if test "${enable_universalsdk}"; then
+ :
+ else
+- LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `arch`"
++ LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only __BUILD_ARCH__"
+ fi
+ LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
+ LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
+@@ -11374,7 +11376,7 @@
+ else
+ LIBTOOL_CRUFT=""
+ fi
+- LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
++ LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only __BUILD_ARCH__"
+ LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
+ LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
+ esac
+@@ -11524,7 +11526,9 @@
+ if test ${MACOSX_DEPLOYMENT_TARGET-${cur_target}} '>' 10.2
+ then
+ if test "${enable_universalsdk}"; then
+- LDFLAGS="-arch i386 -arch ppc -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
++ LDFLAGS="__UNIVERSAL_LDFLAGS__ -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
++ else
++ LDFLAGS="-arch __BUILD_ARCH__ ${LDFLAGS}"
+ fi
+ LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
+ BLDSHARED="$LDSHARED"
diff --git a/packaging/macosx/ports/lang/python25/files/patch-fwrapv.diff b/packaging/macosx/ports/lang/python25/files/patch-fwrapv.diff
new file mode 100644
index 000000000..130a3ad5d
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-fwrapv.diff
@@ -0,0 +1,12 @@
+--- configure.orig 2011-11-22 09:08:58.000000000 +1100
++++ configure 2011-11-22 09:10:56.000000000 +1100
+@@ -4428,9 +4428,7 @@
+ STRICT_PROTO="-Wstrict-prototypes"
+ fi
+ # For gcc 4.x we need to use -fwrapv so lets check if its supported
+- if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
+ WRAP="-fwrapv"
+- fi
+ case $ac_cv_prog_cc_g in
+ yes)
+ if test "$Py_DEBUG" = 'true' ; then
diff --git a/packaging/macosx/ports/lang/python25/files/patch-libedit.diff b/packaging/macosx/ports/lang/python25/files/patch-libedit.diff
new file mode 100644
index 000000000..99da7a9c4
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-libedit.diff
@@ -0,0 +1,132 @@
+--- configure.orig 2011-10-31 13:23:35.000000000 +1100
++++ configure 2011-10-31 13:28:19.000000000 +1100
+@@ -20985,9 +20985,9 @@
+ echo $ECHO_N "checking how to link readline libs... $ECHO_C" >&6; }
+ for py_libtermcap in "" ncursesw ncurses curses termcap; do
+ if test -z "$py_libtermcap"; then
+- READLINE_LIBS="-lreadline"
++ READLINE_LIBS="-ledit"
+ else
+- READLINE_LIBS="-lreadline -l$py_libtermcap"
++ READLINE_LIBS="-ledit -l$py_libtermcap"
+ fi
+ LIBS="$READLINE_LIBS $LIBS_no_readline"
+ cat >conftest.$ac_ext <<_ACEOF
+@@ -21060,13 +21060,13 @@
+ fi
+
+ # check for readline 2.1
+-{ echo "$as_me:$LINENO: checking for rl_callback_handler_install in -lreadline" >&5
+-echo $ECHO_N "checking for rl_callback_handler_install in -lreadline... $ECHO_C" >&6; }
++{ echo "$as_me:$LINENO: checking for rl_callback_handler_install in -ledit" >&5
++echo $ECHO_N "checking for rl_callback_handler_install in -ledit... $ECHO_C" >&6; }
+ if test "${ac_cv_lib_readline_rl_callback_handler_install+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lreadline $READLINE_LIBS $LIBS"
++LIBS="-ledit $READLINE_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -21137,7 +21137,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <readline/readline.h>
++#include <editline/readline.h>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+@@ -21172,7 +21172,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <readline/readline.h>
++#include <editline/readline.h>
+
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+@@ -21188,13 +21188,13 @@
+ fi
+
+ # check for readline 4.0
+-{ echo "$as_me:$LINENO: checking for rl_pre_input_hook in -lreadline" >&5
+-echo $ECHO_N "checking for rl_pre_input_hook in -lreadline... $ECHO_C" >&6; }
++{ echo "$as_me:$LINENO: checking for rl_pre_input_hook in -ledit" >&5
++echo $ECHO_N "checking for rl_pre_input_hook in -ledit... $ECHO_C" >&6; }
+ if test "${ac_cv_lib_readline_rl_pre_input_hook+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lreadline $READLINE_LIBS $LIBS"
++LIBS="-ledit $READLINE_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -21259,13 +21259,13 @@
+
+
+ # check for readline 4.2
+-{ echo "$as_me:$LINENO: checking for rl_completion_matches in -lreadline" >&5
+-echo $ECHO_N "checking for rl_completion_matches in -lreadline... $ECHO_C" >&6; }
++{ echo "$as_me:$LINENO: checking for rl_completion_matches in -ledit" >&5
++echo $ECHO_N "checking for rl_completion_matches in -ledit... $ECHO_C" >&6; }
+ if test "${ac_cv_lib_readline_rl_completion_matches+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lreadline $READLINE_LIBS $LIBS"
++LIBS="-ledit $READLINE_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -21336,7 +21336,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <readline/readline.h>
++#include <editline/readline.h>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+@@ -21371,7 +21371,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <readline/readline.h>
++#include <editline/readline.h>
+
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+--- setup.py.orig 2011-10-31 13:23:35.000000000 +1100
++++ setup.py 2011-10-31 13:32:40.000000000 +1100
+@@ -488,7 +488,7 @@
+ else:
+ readline_extra_link_args = ()
+
+- readline_libs = ['readline']
++ readline_libs = ['edit']
+ if self.compiler.find_library_file(lib_dirs,
+ 'ncursesw'):
+ readline_libs.append('ncursesw')
+--- Modules/readline.c.orig 2007-01-23 03:10:27.000000000 +1100
++++ Modules/readline.c 2011-10-31 14:00:36.000000000 +1100
+@@ -28,8 +28,7 @@
+
+ /* GNU readline definitions */
+ #undef HAVE_CONFIG_H /* Else readline/chardefs.h includes strings.h */
+-#include <readline/readline.h>
+-#include <readline/history.h>
++#include <editline/readline.h>
+
+ #ifdef HAVE_RL_COMPLETION_MATCHES
+ #define completion_matches(x, y) \
+@@ -794,7 +793,6 @@ readline_until_enter_or_signal(char *pro
+ PyEval_SaveThread();
+ #endif
+ if (s < 0) {
+- rl_free_line_state();
+ rl_cleanup_after_signal();
+ rl_callback_handler_remove();
+ *signal = 1;
diff --git a/packaging/macosx/ports/lang/python25/files/patch-mac_ver.diff b/packaging/macosx/ports/lang/python25/files/patch-mac_ver.diff
new file mode 100644
index 000000000..5350dee29
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-mac_ver.diff
@@ -0,0 +1,114 @@
+
+# HG changeset patch
+# User Ronald Oussoren <ronaldoussoren@mac.com>
+# Date 1279889153 0
+# Node ID e267ee9760bd14a8b4270e12af982c941fa7a67d
+# Parent bdc069a1a721b28ad21849232bd5426dda871506
+Merged revisions 83085 via svnmerge from
+svn+ssh://pythondev@svn.python.org/python/branches/release27-maint
+
+................
+ r83085 | ronald.oussoren | 2010-07-23 13:41:00 +0100 (Fri, 23 Jul 2010) | 12 lines
+
+ Merged revisions 83075 via svnmerge from
+ svn+ssh://pythondev@svn.python.org/python/branches/py3k
+
+ ........
+ r83075 | ronald.oussoren | 2010-07-23 12:54:59 +0100 (Fri, 23 Jul 2010) | 5 lines
+
+ Fix for issue 7895. Avoid crashing the interpreter
+ when calling platform.mac_ver after calling os.fork by
+ reading from a system configuration file instead of
+ using OSX APIs.
+ ........
+................
+
+diff --git a/Lib/platform.py b/Lib/platform.py
+--- Lib/platform.py
++++ Lib/platform.py
+@@ -562,28 +562,20 @@ def _bcd2str(bcd):
+
+ return hex(bcd)[2:]
+
+-def mac_ver(release='',versioninfo=('','',''),machine=''):
+-
+- """ Get MacOS version information and return it as tuple (release,
+- versioninfo, machine) with versioninfo being a tuple (version,
+- dev_stage, non_release_version).
+-
+- Entries which cannot be determined are set to the paramter values
+- which default to ''. All tuple entries are strings.
+-
++def _mac_ver_gestalt():
++ """
+ Thanks to Mark R. Levinson for mailing documentation links and
+ code examples for this function. Documentation for the
+ gestalt() API is available online at:
+
+ http://www.rgaros.nl/gestalt/
+-
+ """
+ # Check whether the version info module is available
+ try:
+ import gestalt
+ import MacOS
+ except ImportError:
+- return release,versioninfo,machine
++ return None
+ # Get the infos
+ sysv,sysu,sysa = _mac_ver_lookup(('sysv','sysu','sysa'))
+ # Decode the infos
+@@ -619,6 +611,53 @@ def mac_ver(release='',versioninfo=('','
+ machine = {0x1: '68k',
+ 0x2: 'PowerPC',
+ 0xa: 'i386'}.get(sysa,'')
++
++ return release,versioninfo,machine
++
++def _mac_ver_xml():
++ fn = '/System/Library/CoreServices/SystemVersion.plist'
++ if not os.path.exists(fn):
++ return None
++
++ try:
++ import plistlib
++ except ImportError:
++ return None
++
++ pl = plistlib.readPlist(fn)
++ release = pl['ProductVersion']
++ versioninfo=('', '', '')
++ machine = os.uname()[4]
++ if machine == 'ppc':
++ # for compatibility with the gestalt based code
++ machine = 'PowerPC'
++
++ return release,versioninfo,machine
++
++
++def mac_ver(release='',versioninfo=('','',''),machine=''):
++
++ """ Get MacOS version information and return it as tuple (release,
++ versioninfo, machine) with versioninfo being a tuple (version,
++ dev_stage, non_release_version).
++
++ Entries which cannot be determined are set to the paramter values
++ which default to ''. All tuple entries are strings.
++ """
++
++ # First try reading the information from an XML file which should
++ # always be present
++ info = _mac_ver_xml()
++ if info is not None:
++ return info
++
++ # If that doesn't work for some reason fall back to reading the
++ # information using gestalt calls.
++ info = _mac_ver_gestalt()
++ if info is not None:
++ return info
++
++ # If that also doesn't work return the default values
+ return release,versioninfo,machine
+
+ def _java_getprop(name,default):
diff --git a/packaging/macosx/ports/lang/python25/files/patch-pyconfig.h.in.diff b/packaging/macosx/ports/lang/python25/files/patch-pyconfig.h.in.diff
new file mode 100644
index 000000000..bd0ecd803
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-pyconfig.h.in.diff
@@ -0,0 +1,13 @@
+--- pyconfig.h.in.orig 2009-08-16 10:22:50.000000000 -0700
++++ pyconfig.h.in 2009-08-16 10:23:24.000000000 -0700
+@@ -4,6 +4,10 @@
+ #ifndef Py_PYCONFIG_H
+ #define Py_PYCONFIG_H
+
++// Required on Darwin 10+
++#ifndef _DARWIN_C_SOURCE
++#define _DARWIN_C_SOURCE
++#endif
+
+ /* Define for AIX if your compiler is a genuine IBM xlC/xlC_r and you want
+ support for AIX C++ shared extension modules. */
diff --git a/packaging/macosx/ports/lang/python25/files/patch-setup.py-disabled_modules.diff b/packaging/macosx/ports/lang/python25/files/patch-setup.py-disabled_modules.diff
new file mode 100644
index 000000000..14d3bc582
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-setup.py-disabled_modules.diff
@@ -0,0 +1,11 @@
+--- setup.py.orig 2009-03-31 12:20:48.000000000 -0600
++++ setup.py 2009-09-17 00:33:12.000000000 -0600
+@@ -17,7 +17,7 @@
+ from distutils.command.install_lib import install_lib
+
+ # This global variable is used to hold the list of modules to be disabled.
+-disabled_module_list = []
++disabled_module_list = ["_tkinter", "gdbm"]
+
+ def add_dir_to_list(dirlist, dir):
+ """Add the directory 'dir' to the list 'dirlist' (at the front) if
diff --git a/packaging/macosx/ports/lang/python25/files/patch-setup.py.diff b/packaging/macosx/ports/lang/python25/files/patch-setup.py.diff
new file mode 100644
index 000000000..2649594c8
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/patch-setup.py.diff
@@ -0,0 +1,80 @@
+--- setup.py.orig 2008-10-16 12:58:19.000000000 -0600
++++ setup.py 2009-06-07 20:55:17.000000000 -0600
+@@ -609,7 +609,7 @@
+ # a release. Most open source OSes come with one or more
+ # versions of BerkeleyDB already installed.
+
+- max_db_ver = (4, 5)
++ max_db_ver = (4, 6)
+ # NOTE: while the _bsddb.c code links against BerkeleyDB 4.6.x
+ # we leave that version disabled by default as it has proven to be
+ # quite a buggy library release on many platforms.
+@@ -636,6 +636,7 @@
+ db_inc_paths.append('/usr/local/include/db4%d' % x)
+ db_inc_paths.append('/pkg/db-4.%d/include' % x)
+ db_inc_paths.append('/opt/db-4.%d/include' % x)
++ db_inc_paths.append('__PREFIX__/include/db4%d' % x)
+ # 3.x minor number specific paths
+ for x in (3,):
+ db_inc_paths.append('/usr/include/db3%d' % x)
+@@ -711,6 +712,7 @@
+
+ # check lib directories parallel to the location of the header
+ db_dirs_to_check = [
++ os.path.join('__PREFIX__', 'lib', 'db46'),
+ os.path.join(db_incdir, '..', 'lib64'),
+ os.path.join(db_incdir, '..', 'lib'),
+ os.path.join(db_incdir, '..', '..', 'lib64'),
+@@ -1212,13 +1214,7 @@
+ def detect_tkinter(self, inc_dirs, lib_dirs):
+ # The _tkinter module.
+
+- # Rather than complicate the code below, detecting and building
+- # 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
+--- setup.py.orig 2009-09-10 19:41:32.000000000 +1000
++++ setup.py 2009-09-10 19:48:30.000000000 +1000
+@@ -1197,7 +1197,7 @@
+ # For 8.4a2, the X11 headers are not included. Rather than include a
+ # complicated search, this is a hard-coded path. It could bail out
+ # if X11 libs are not found...
+- include_dirs.append('/usr/X11R6/include')
++ #include_dirs.append('/usr/X11R6/include')
+ frameworks = ['-framework', 'Tcl', '-framework', 'Tk']
+
+ ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
+@@ -1262,17 +1262,17 @@
+ if platform == 'sunos5':
+ include_dirs.append('/usr/openwin/include')
+ added_lib_dirs.append('/usr/openwin/lib')
+- elif os.path.exists('/usr/X11R6/include'):
+- include_dirs.append('/usr/X11R6/include')
+- added_lib_dirs.append('/usr/X11R6/lib64')
+- added_lib_dirs.append('/usr/X11R6/lib')
+- elif os.path.exists('/usr/X11R5/include'):
+- include_dirs.append('/usr/X11R5/include')
+- added_lib_dirs.append('/usr/X11R5/lib')
+- else:
++ #elif os.path.exists('/usr/X11R6/include'):
++ # include_dirs.append('/usr/X11R6/include')
++ # added_lib_dirs.append('/usr/X11R6/lib64')
++ # added_lib_dirs.append('/usr/X11R6/lib')
++ #elif os.path.exists('/usr/X11R5/include'):
++ # include_dirs.append('/usr/X11R5/include')
++ # added_lib_dirs.append('/usr/X11R5/lib')
++ #else:
+ # Assume default location for X11
+- include_dirs.append('/usr/X11/include')
+- added_lib_dirs.append('/usr/X11/lib')
++ # include_dirs.append('/usr/X11/include')
++ # added_lib_dirs.append('/usr/X11/lib')
+
+ # If Cygwin, then verify that X is installed before proceeding
+ if platform == 'cygwin':
diff --git a/packaging/macosx/ports/lang/python25/files/pyconfig.ed b/packaging/macosx/ports/lang/python25/files/pyconfig.ed
new file mode 100644
index 000000000..671d0d560
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/pyconfig.ed
@@ -0,0 +1,2 @@
+g,.*\(HAVE_POLL[_A-Z]*\).*,s,,/* #undef \1 */,
+w
diff --git a/packaging/macosx/ports/lang/python25/files/pyconfig.h-universal.ed b/packaging/macosx/ports/lang/python25/files/pyconfig.h-universal.ed
new file mode 100644
index 000000000..67ecc11a1
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/pyconfig.h-universal.ed
@@ -0,0 +1,50 @@
+/HAVE_LARGEFILE_SUPPORT/c
+#ifdef __LP64__
+/* #undef HAVE_LARGEFILE_SUPPORT */
+#else
+#define HAVE_LARGEFILE_SUPPORT 1
+#endif
+.
+/SIZEOF_LONG/c
+#ifdef __LP64__
+#define SIZEOF_LONG 8
+#else
+#define SIZEOF_LONG 4
+#endif
+.
+/SIZEOF_PTHREAD_T/c
+#ifdef __LP64__
+#define SIZEOF_PTHREAD_T 8
+#else
+#define SIZEOF_PTHREAD_T 4
+#endif
+.
+/SIZEOF_SIZE_T/c
+#ifdef __LP64__
+#define SIZEOF_SIZE_T 8
+#else
+#define SIZEOF_SIZE_T 4
+#endif
+.
+/SIZEOF_TIME_T/c
+#ifdef __LP64__
+#define SIZEOF_TIME_T 8
+#else
+#define SIZEOF_TIME_T 4
+#endif
+.
+/SIZEOF_UINTPTR_T/c
+#ifdef __LP64__
+#define SIZEOF_UINTPTR_T 8
+#else
+#define SIZEOF_UINTPTR_T 4
+#endif
+.
+/SIZEOF_VOID_P/c
+#ifdef __LP64__
+#define SIZEOF_VOID_P 8
+#else
+#define SIZEOF_VOID_P 4
+#endif
+.
+w
diff --git a/packaging/macosx/ports/lang/python25/files/python25 b/packaging/macosx/ports/lang/python25/files/python25
new file mode 100644
index 000000000..e7ca5aed2
--- /dev/null
+++ b/packaging/macosx/ports/lang/python25/files/python25
@@ -0,0 +1,13 @@
+bin/python2.5
+bin/pythonw2.5
+bin/python2.5-config
+bin/idle2.5
+bin/pydoc2.5
+bin/smtpd2.5.py
+-
+-
+share/man/man1/python2.5.1.gz
+${frameworks_dir}/Python.framework/Versions/2.5
+${frameworks_dir}/Python.framework/Versions/2.5/Headers
+${frameworks_dir}/Python.framework/Versions/2.5/Resources
+${frameworks_dir}/Python.framework/Versions/2.5/Python