An improved script for building the binary distribution on MacOSX.

This commit is contained in:
Ronald Oussoren 2006-05-23 15:09:57 +00:00
parent 3e134a5960
commit 69c347655d
9 changed files with 1246 additions and 0 deletions

View File

@ -0,0 +1,35 @@
Building a MacPython distribution
=================================
The ``build-install.py`` script creates MacPython distributions, including
sleepycat db4, sqlite3 and readline support. It builds a complete
framework-based Python out-of-tree, installs it in a funny place with
$DESTROOT, massages that installation to remove .pyc files and such, creates
an Installer package from the installation plus other files in ``resources``
and ``scripts`` and placed that on a ``.dmg`` disk image.
Here are the steps you ned to follow to build a MacPython installer:
- Run ``./build-installer.py``. Optionally you can pass a number of arguments
to specify locations of various files. Please see the top of
``build-installer.py`` for its usage.
- When done the script will tell you where the DMG image is.
The script needs to be run on Mac OS X 10.4 with Xcode 2.2 or later and
the 10.4u SDK.
When all is done, announcements can be posted to at least the following
places:
- pythonmac-sig@python.org
- python-dev@python.org
- python-announce@python.org
- archivist@info-mac.org
- adcnews@apple.com
- news@macnn.com
- http://www.macupdate.com
- http://guide.apple.com/usindex.lasso
- http://www.apple.com/downloads/macosx/submit
- http://www.versiontracker.com/ (userid Jack.Jansen@oratrix.com)
- http://www.macshareware.net (userid jackjansen)
Also, check out Stephan Deibels http://pythonology.org/market contact list

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
diff -r -u ncurses-5.5-orig/test/Makefile.in ncurses-5.5/test/Makefile.in
--- ncurses-5.5-orig/test/Makefile.in 2006-03-24 12:47:40.000000000 +0100
+++ ncurses-5.5/test/Makefile.in 2006-03-24 12:47:50.000000000 +0100
@@ -75,7 +75,7 @@
MATH_LIB = @MATH_LIB@
LD = @LD@
-LINK = @LINK_TESTS@ $(LIBTOOL_LINK) $(CC) $(CFLAGS)
+LINK = @LINK_TESTS@ $(LIBTOOL_LINK) $(CC)
usFLAGS = @LD_MODEL@ @LOCAL_LDFLAGS@ @LDFLAGS@
diff -ru ncurses-5.5-orig/ncurses/tinfo/read_entry.c ncurses-5.5/ncurses/tinfo/read_entry.c
--- ncurses-5.5-orig/ncurses/tinfo/read_entry.c 2004-01-11 02:57:05.000000000 +0100
+++ ncurses-5.5/ncurses/tinfo/read_entry.c 2006-03-25 22:49:39.000000000 +0100
@@ -474,7 +474,7 @@
}
/* truncate the terminal name to prevent buffer overflow */
- (void) sprintf(ttn, "%c/%.*s", *tn, (int) sizeof(ttn) - 3, tn);
+ (void) sprintf(ttn, "%x/%.*s", *tn, (int) sizeof(ttn) - 3, tn);
/* This is System V behavior, in conjunction with our requirements for
* writing terminfo entries.
diff -ru ncurses-5.5-orig/configure ncurses-5.5/configure
--- ncurses-5.5-orig/configure 2005-09-24 23:50:50.000000000 +0200
+++ ncurses-5.5/configure 2006-03-26 22:24:59.000000000 +0200
@@ -5027,7 +5027,7 @@
darwin*)
EXTRA_CFLAGS="-no-cpp-precomp"
CC_SHARED_OPTS="-dynamic"
- MK_SHARED_LIB='$(CC) -dynamiclib -install_name $(DESTDIR)$(libdir)/`basename $@` -compatibility_version $(ABI_VERSION) -current_version $(ABI_VERSION) -o $@'
+ MK_SHARED_LIB='$(CC) $(CFLAGS) -dynamiclib -install_name $(DESTDIR)$(libdir)/`basename $@` -compatibility_version $(ABI_VERSION) -current_version $(ABI_VERSION) -o $@'
test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
cf_cv_shlib_version_infix=yes
;;

View File

@ -0,0 +1,31 @@
This package will install MacPython $FULL_VERSION for Mac OS X
$MACOSX_DEPLOYMENT_TARGET for the following
architecture(s): $ARCHITECTURES.
Separate installers are available for older versions
of Mac OS X, see the homepage, below.
Installation requires approximately $INSTALL_SIZE MB of disk
space, ignore the message that it will take zero bytes.
You must install onto your current boot disk, even
though the installer does not enforce this, otherwise
things will not work.
MacPython consists of the Python programming language
interpreter, plus a set of programs to allow easy
access to it for Mac users (an integrated development
environment, an applet builder), plus a set of pre-built
extension modules that open up specific Macintosh technologies
to Python programs (Carbon, AppleScript, Quicktime, more).
The installer puts the applications in "MacPython $VERSION"
in your Applications folder, command-line tools in
/usr/local/bin and the underlying machinery in
$PYTHONFRAMEWORKINSTALLDIR.
More information on MacPython can be found at
http://www.cwi.nl/~jack/macpython and
http://pythonmac.org/. More information on
Python in general can be found at
http://www.python.org.

View File

@ -0,0 +1,15 @@
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf330
{\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fswiss\fcharset77 Helvetica-Bold;}
{\colortbl;\red255\green255\blue255;}
\paperw11900\paperh16840\margl1440\margr1440\vieww9920\viewh10660\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\f0\fs24 \cf0 This package will install
\f1\b MacPython $FULL_VERSION
\f0\b0 for
\f1\b Mac OS X $MACOSX_DEPLOYMENT_TARGET
\f0\b0 .\
\
MacPython consists of the Python programming language interpreter, plus a set of programs to allow easy access to it for Mac users (an integrated development environment, an applet builder), plus a set of pre-built extension modules that open up specific Macintosh technologies to Python programs (Carbon, AppleScript, Quicktime, more).\
\
See the ReadMe file for more information.}

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -0,0 +1,12 @@
#!/bin/sh
# FIXME
PYVER="@PYVER@"
if [ -d /Developer/Documentation ]; then
if [ ! -d /Developer/Documentation/Python ]; then
mkdir -p /Developer/Documentation/Python
fi
ln -fhs /Library/Frameworks/Python.framework/Versions/${PYVER}/Resources/English.lproj/Documentation "/Developer/Documentation/Python/Reference Documentation"
fi

View File

@ -0,0 +1,33 @@
#!/bin/sh
#
# Recompile the .py files.
#
PYVER="@PYVER@"
FWK="/Library/Frameworks/Python.framework/Versions/@PYVER@/"
"${FWK}/bin/python" -Wi -tt \
"${FWK}/lib/python${PYVER}/compileall.py" \
-x badsyntax -x site-packages \
"${FWK}/lib/python${PYVER}"
"${FWK}/bin/python" -Wi -tt -O \
"${FWK}/lib/python${PYVER}/compileall.py" \
-x badsyntax -x site-packages \
"${FWK}/lib/python${PYVER}"
"${FWK}/bin/python" -Wi -tt \
"${FWK}/lib/python${PYVER}/compileall.py" \
-x badsyntax -x site-packages \
"${FWK}/Mac/Tools"
"${FWK}/bin/python" -Wi -tt -O \
"${FWK}/lib/python${PYVER}/compileall.py" \
-x badsyntax -x site-packages \
"${FWK}/Mac/Tools"
chown -R admin "${FWK}"
chmod -R g+w "${FWK}"
exit 0

View File

@ -0,0 +1,71 @@
#!/bin/sh
echo "This script will update your shell profile when the 'bin' directory"
echo "of python is not early enough of the PATH of your shell."
echo "These changes will be effective only in shell windows that you open"
echo "after running this script."
PYVER=@PYVER@
PYTHON_ROOT="/Library/Frameworks/Python.framework/Versions/Current"
# Make sure the directory ${PYTHON_ROOT}/bin is on the users PATH.
BSH="`basename "${SHELL}"`"
case "${BSH}" in
bash|ksh|sh|*csh)
P="`${SHELL} -c 'echo $PATH'`"
;;
*)
echo "Sorry, I don't know how to patch $BSH shells"
exit 0
;;
esac
# Now ensure that our bin directory is on $P and before /usr/bin at that
for elem in `echo $P | tr ':' ' '`
do
if [ "${elem}" == "${PYTHON_ROOT}/bin" ]; then
echo "All right, you're a python lover already"
exit 0
elif [ "${elem}" == "/usr/bin" ]; then
break
fi
done
echo "${PYTHON_ROOT}/bin is not on your PATH or at least not early enough"
case "${BSH}" in
*csh)
# Create backup copy before patching
if [ -f "${HOME}/.cshrc" ]; then
cp -fp "${HOME}/.cshrc" "${HOME}/.cshrc.pysave"
fi
echo "" >> "${HOME}/.cshrc"
echo "# Setting PATH for MacPython ${PYVER}" >> "${HOME}/.cshrc"
echo "# The orginal version is saved in .cshrc.pysave" >> "${HOME}/.cshrc"
echo "setenv path=(${PYTHON_ROOT}/bin "'$path'")" >> "${HOME}/.cshrc"
exit 0
;;
bash)
if [ -e "${HOME}/.profile" ]; then
PR="${HOME}/.profile"
else
PR="${HOME}/.bash_profile"
fi
;;
*sh)
PR="${HOME}/.profile"
;;
esac
# Create backup copy before patching
if [ -f "${PR}" ]; then
cp -fp "${PR}" "${PR}.pysave"
fi
echo "" >> "${PR}"
echo "# Setting PATH for MacPython ${PYVER}" >> "${PR}"
echo "# The orginal version is saved in `basename ${PR}`.pysave" >> "${PR}"
echo 'PATH="'"${PYTHON_ROOT}/bin"':${PATH}"' >> "${PR}"
echo 'export PATH' >> "${PR}"
if [ `id -ur` = 0 ]; then
chown "${LOGNAME}" "${PR}"
fi
exit 0