diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py index 37974e994a3..1fd2439be5a 100755 --- a/Mac/BuildScript/build-installer.py +++ b/Mac/BuildScript/build-installer.py @@ -199,7 +199,7 @@ PKG_RECIPES = [ dict( name="PythonApplications", long_name="GUI Applications", - source="/Applications/MacPython %(VER)s", + source="/Applications/Python %(VER)s", readme="""\ This package installs IDLE (an interactive Python IDE), Python Launcher and Build Applet (create application bundles diff --git a/Mac/BuildScript/resources/ReadMe.txt b/Mac/BuildScript/resources/ReadMe.txt index 1a6e63764ff..cb00c937cc9 100644 --- a/Mac/BuildScript/resources/ReadMe.txt +++ b/Mac/BuildScript/resources/ReadMe.txt @@ -19,7 +19,7 @@ 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" +The installer puts the applications in "Python $VERSION" in your Applications folder, command-line tools in /usr/local/bin and the underlying machinery in $PYTHONFRAMEWORKINSTALLDIR. diff --git a/Mac/IDLE/Makefile.in b/Mac/IDLE/Makefile.in index 2f63892a071..600f1fc8db2 100644 --- a/Mac/IDLE/Makefile.in +++ b/Mac/IDLE/Makefile.in @@ -9,6 +9,7 @@ srcdir= @srcdir@ VERSION= @VERSION@ UNIVERSALSDK=@UNIVERSALSDK@ builddir= ../.. +PYTHONFRAMEWORK=@PYTHONFRAMEWORK@ RUNSHARED= @RUNSHARED@ BUILDEXE= @BUILDEXEEXT@ @@ -21,7 +22,7 @@ MACOSX_DEPLOYMENT_TARGET=@CONFIGURE_MACOSX_DEPLOYMENT_TARGET@ BUNDLEBULDER=$(srcdir)/../../Lib/plat-mac/bundlebuilder.py -PYTHONAPPSDIR=/Applications/MacPython $(VERSION) +PYTHONAPPSDIR=/Applications/$(PYTHONFRAMEWORK) $(VERSION) all: IDLE.app diff --git a/Mac/Makefile.in b/Mac/Makefile.in index 8b2e1dbabf8..34734d04130 100644 --- a/Mac/Makefile.in +++ b/Mac/Makefile.in @@ -13,14 +13,16 @@ BUILDPYTHON=$(builddir)/python$(BUILDEXE) DESTDIR= LDFLAGS=@LDFLAGS@ FRAMEWORKUNIXTOOLSPREFIX=@FRAMEWORKUNIXTOOLSPREFIX@ +PYTHONFRAMEWORK=@PYTHONFRAMEWORK@ + # These are normally glimpsed from the previous set bindir=$(prefix)/bin -PYTHONAPPSDIR=/Applications/MacPython $(VERSION) +PYTHONAPPSDIR=/Applications/$(PYTHONFRAMEWORK) $(VERSION) APPINSTALLDIR=$(prefix)/Resources/Python.app # Variables for installing the "normal" unix binaries -INSTALLED_PYTHONAPP=$(APPINSTALLDIR)/Contents/MacOS/Python +INSTALLED_PYTHONAPP=$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK) # Items more-or-less copied from the main Makefile DIRMODE=755 @@ -103,7 +105,7 @@ install_versionedtools: pythonw: $(srcdir)/Tools/pythonw.c Makefile $(CC) $(LDFLAGS) -o $@ $(srcdir)/Tools/pythonw.c \ - -DPYTHONWEXECUTABLE='"$(APPINSTALLDIR)/Contents/MacOS/Python"' + -DPYTHONWEXECUTABLE='"$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"' install_PythonLauncher: @@ -155,7 +157,7 @@ install_Python: esac; \ done; \ done - $(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/Python" + $(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)" install_IDLE: cd IDLE && make install diff --git a/Mac/Resources/app/Info.plist b/Mac/Resources/app/Info.plist.in similarity index 86% rename from Mac/Resources/app/Info.plist rename to Mac/Resources/app/Info.plist.in index 387bbed2de3..123371526b1 100644 --- a/Mac/Resources/app/Info.plist +++ b/Mac/Resources/app/Info.plist.in @@ -20,7 +20,7 @@ CFBundleExecutable Python CFBundleGetInfoString - 2.5alpha0, (c) 2004 Python Software Foundation. + @VERSION@, (c) 2004 Python Software Foundation. CFBundleHelpBookFolder Documentation @@ -33,21 +33,21 @@ CFBundleIconFile PythonInterpreter.icns CFBundleIdentifier - org.python.python + @PYTHONFRAMEWORKIDENTIFIER@.app CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 2.5alpha0, (c) 2004 Python Software Foundation. + @VERSION@, (c) 2004-2008 Python Software Foundation. CFBundleName Python CFBundlePackageType APPL CFBundleShortVersionString - 2.5alpha0 + @VERSION@ CFBundleSignature PytX CFBundleVersion - 2.5alpha0 + @VERSION@ CSResourcesFileMapped LSRequiresCarbon diff --git a/Mac/Resources/app/Resources/English.lproj/InfoPlist.strings b/Mac/Resources/app/Resources/English.lproj/InfoPlist.strings deleted file mode 100644 index f8a8bc18fe2..00000000000 Binary files a/Mac/Resources/app/Resources/English.lproj/InfoPlist.strings and /dev/null differ diff --git a/Mac/Resources/framework/English.lproj/InfoPlist.strings b/Mac/Resources/framework/English.lproj/InfoPlist.strings deleted file mode 100644 index cc24bfcf3ef..00000000000 Binary files a/Mac/Resources/framework/English.lproj/InfoPlist.strings and /dev/null differ diff --git a/Mac/Resources/framework/Info.plist b/Mac/Resources/framework/Info.plist.in similarity index 72% rename from Mac/Resources/framework/Info.plist rename to Mac/Resources/framework/Info.plist.in index 302ff480060..a753e88d79e 100644 --- a/Mac/Resources/framework/Info.plist +++ b/Mac/Resources/framework/Info.plist.in @@ -9,7 +9,7 @@ CFBundleGetInfoString Python Runtime and Library CFBundleIdentifier - org.python.python + @PYTHONFRAMEWORKIDENTIFIER@ CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -17,10 +17,12 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.5 + %VERSION%, (c) 2004-2008 Python Software Foundation. + CFBundleLongVersionString + %VERSION%, (c) 2004-2008 Python Software Foundation. CFBundleSignature ???? CFBundleVersion - 2.5 + %VERSION% diff --git a/Mac/Resources/framework/version.plist b/Mac/Resources/framework/version.plist deleted file mode 100644 index 7527442ab20..00000000000 --- a/Mac/Resources/framework/version.plist +++ /dev/null @@ -1,18 +0,0 @@ - - - - - BuildVersion - 1 - CFBundleShortVersionString - 2.5alpha0 - CFBundleVersion - 2.5alpha0 - ProjectName - Python - ReleaseStatus - alfa - SourceVersion - 2.4a0 - - diff --git a/Makefile.pre.in b/Makefile.pre.in index 8ee12c0dea3..b3f1cf06c22 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -418,18 +418,16 @@ libpython$(VERSION).sl: $(LIBRARY_OBJS) # This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary # minimal framework (not including the Lib directory and such) in the current # directory. -RESSRCDIR=$(srcdir)/Mac/Resources/framework +RESSRCDIR=Mac/Resources/framework $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \ $(LIBRARY) \ - $(RESSRCDIR)/Info.plist \ - $(RESSRCDIR)/version.plist \ - $(RESSRCDIR)/English.lproj/InfoPlist.strings + $(RESSRCDIR)/Info.plist $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION) if test "${UNIVERSALSDK}"; then \ $(CC) -o $(LDLIBRARY) -arch i386 -arch ppc -dynamiclib \ -isysroot "${UNIVERSALSDK}" \ -all_load $(LIBRARY) -Wl,-single_module \ - -install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python \ + -install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \ -compatibility_version $(VERSION) \ -current_version $(VERSION); \ else \ @@ -440,10 +438,6 @@ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj $(INSTALL_DATA) $(RESSRCDIR)/Info.plist \ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist - $(INSTALL_DATA) $(RESSRCDIR)/version.plist \ - $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/version.plist - $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \ - $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj/InfoPlist.strings $(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK) $(LN) -fsn Versions/Current/Headers $(PYTHONFRAMEWORKDIR)/Headers @@ -1030,12 +1024,9 @@ frameworkinstallstructure: $(LDLIBRARY) fi; \ done $(LN) -fsn include/python$(VERSION) $(DESTDIR)$(prefix)/Headers - $(INSTALL_DATA) $(RESSRCDIR)/Info.plist $(DESTDIR)$(prefix)/Resources/Info.plist - $(INSTALL_DATA) $(RESSRCDIR)/version.plist $(DESTDIR)$(prefix)/Resources/version.plist - $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \ - $(DESTDIR)$(prefix)/Resources/English.lproj/InfoPlist.strings + sed 's/%VERSION%/'"`$(RUNSHARED) ./$(BUILDPYTHON) -c 'import platform; print platform.python_version()'`"'/g' < $(RESSRCDIR)/Info.plist > $(DESTDIR)$(prefix)/Resources/Info.plist $(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current - $(LN) -fsn Versions/Current/Python $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Python + $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/$(PYTHONFRAMEWORK) $(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers $(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY) @@ -1044,7 +1035,7 @@ frameworkinstallstructure: $(LDLIBRARY) # Install a number of symlinks to keep software that expects a normal unix # install (which includes python-config) happy. frameworkinstallmaclib: - ln -fs "../../../Python" "$(DESTDIR)$(prefix)/lib/python$(VERSION)/config/libpython$(VERSION).a" + ln -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/python$(VERSION)/config/libpython$(VERSION).a" cd Mac && $(MAKE) installmacsubtree DESTDIR="$(DESTDIR)" # This installs the IDE, the Launcher and other apps into /Applications diff --git a/Misc/NEWS b/Misc/NEWS index 19b80e25f32..85152387970 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -141,6 +141,9 @@ Build - Issue #2544: On HP-UX systems, use 'gcc -shared' for linking when gcc is used as compiler. +- Issue #2573: On MacOS X it is now possible to install the framework + with a different name using --with-framework-name=NAME. + C API ----- diff --git a/configure b/configure index 6009d888490..6c19b2c458c 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 62451 . +# From configure.in Revision: 62499 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 2.6. # @@ -658,6 +658,7 @@ SOVERSION CONFIG_ARGS UNIVERSALSDK PYTHONFRAMEWORK +PYTHONFRAMEWORKIDENTIFIER PYTHONFRAMEWORKDIR PYTHONFRAMEWORKPREFIX PYTHONFRAMEWORKINSTALLDIR @@ -1327,6 +1328,9 @@ Optional Features: Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-framework-name=FRAMEWORK + specify an alternate name of the framework built + with --enable-framework --without-gcc never use gcc --with-cxx-main= compile main() and link python executable with C++ @@ -1879,6 +1883,22 @@ fi + +# Check whether --with-framework-name was given. +if test "${with_framework_name+set}" = set; then + withval=$with_framework_name; + PYTHONFRAMEWORK=${withval} + PYTHONFRAMEWORKDIR=${withval}.framework + PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr 'A-Z' 'a-z'` + +else + + PYTHONFRAMEWORK=Python + PYTHONFRAMEWORKDIR=Python.framework + PYTHONFRAMEWORKIDENTIFIER=org.python.python + +fi + # Check whether --enable-framework was given. if test "${enable_framework+set}" = set; then enableval=$enable_framework; @@ -1904,8 +1924,6 @@ if test "${enable_framework+set}" = set; then enable_framework= ;; *) - PYTHONFRAMEWORK=Python - PYTHONFRAMEWORKDIR=Python.framework PYTHONFRAMEWORKPREFIX=$enableval PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR FRAMEWORKINSTALLFIRST="frameworkinstallstructure" @@ -1919,7 +1937,7 @@ if test "${enable_framework+set}" = set; then fi prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION - # Add makefiles for Mac specific code to the list of output + # Add files for Mac specific code to the list of output # files: ac_config_files="$ac_config_files Mac/Makefile" @@ -1927,6 +1945,10 @@ if test "${enable_framework+set}" = set; then ac_config_files="$ac_config_files Mac/IDLE/Makefile" + ac_config_files="$ac_config_files Mac/Resources/framework/Info.plist" + + ac_config_files="$ac_config_files Mac/Resources/app/Info.plist" + esac else @@ -1958,6 +1980,7 @@ fi + ##AC_ARG_WITH(dyld, ## AC_HELP_STRING(--with-dyld, ## Use (OpenStep|Rhapsody) dynamic linker)) @@ -24579,6 +24602,8 @@ do "Mac/Makefile") CONFIG_FILES="$CONFIG_FILES Mac/Makefile" ;; "Mac/PythonLauncher/Makefile") CONFIG_FILES="$CONFIG_FILES Mac/PythonLauncher/Makefile" ;; "Mac/IDLE/Makefile") CONFIG_FILES="$CONFIG_FILES Mac/IDLE/Makefile" ;; + "Mac/Resources/framework/Info.plist") CONFIG_FILES="$CONFIG_FILES Mac/Resources/framework/Info.plist" ;; + "Mac/Resources/app/Info.plist") CONFIG_FILES="$CONFIG_FILES Mac/Resources/app/Info.plist" ;; "Makefile.pre") CONFIG_FILES="$CONFIG_FILES Makefile.pre" ;; "Modules/Setup.config") CONFIG_FILES="$CONFIG_FILES Modules/Setup.config" ;; @@ -24684,6 +24709,7 @@ SOVERSION!$SOVERSION$ac_delim CONFIG_ARGS!$CONFIG_ARGS$ac_delim UNIVERSALSDK!$UNIVERSALSDK$ac_delim PYTHONFRAMEWORK!$PYTHONFRAMEWORK$ac_delim +PYTHONFRAMEWORKIDENTIFIER!$PYTHONFRAMEWORKIDENTIFIER$ac_delim PYTHONFRAMEWORKDIR!$PYTHONFRAMEWORKDIR$ac_delim PYTHONFRAMEWORKPREFIX!$PYTHONFRAMEWORKPREFIX$ac_delim PYTHONFRAMEWORKINSTALLDIR!$PYTHONFRAMEWORKINSTALLDIR$ac_delim @@ -24738,7 +24764,6 @@ LINKFORSHARED!$LINKFORSHARED$ac_delim CFLAGSFORSHARED!$CFLAGSFORSHARED$ac_delim SHLIBS!$SHLIBS$ac_delim USE_SIGNAL_MODULE!$USE_SIGNAL_MODULE$ac_delim -SIGNAL_OBJS!$SIGNAL_OBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -24780,6 +24805,7 @@ _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF +SIGNAL_OBJS!$SIGNAL_OBJS$ac_delim USE_THREAD_MODULE!$USE_THREAD_MODULE$ac_delim LDLAST!$LDLAST$ac_delim THREADOBJ!$THREADOBJ$ac_delim @@ -24801,7 +24827,7 @@ SRCDIRS!$SRCDIRS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 19; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 20; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/configure.in b/configure.in index a4793aa999e..bc9a02e9611 100644 --- a/configure.in +++ b/configure.in @@ -83,6 +83,18 @@ AC_ARG_ENABLE(universalsdk, ]) AC_SUBST(UNIVERSALSDK) +AC_ARG_WITH(framework-name, + AC_HELP_STRING(--with-framework-name=FRAMEWORK, + specify an alternate name of the framework built with --enable-framework), +[ + PYTHONFRAMEWORK=${withval} + PYTHONFRAMEWORKDIR=${withval}.framework + PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr '[A-Z]' '[a-z]'` + ],[ + PYTHONFRAMEWORK=Python + PYTHONFRAMEWORKDIR=Python.framework + PYTHONFRAMEWORKIDENTIFIER=org.python.python +]) dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output AC_ARG_ENABLE(framework, AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework), @@ -109,8 +121,6 @@ AC_ARG_ENABLE(framework, enable_framework= ;; *) - PYTHONFRAMEWORK=Python - PYTHONFRAMEWORKDIR=Python.framework PYTHONFRAMEWORKPREFIX=$enableval PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR FRAMEWORKINSTALLFIRST="frameworkinstallstructure" @@ -124,11 +134,13 @@ AC_ARG_ENABLE(framework, fi prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION - # Add makefiles for Mac specific code to the list of output + # Add files for Mac specific code to the list of output # files: AC_CONFIG_FILES(Mac/Makefile) AC_CONFIG_FILES(Mac/PythonLauncher/Makefile) AC_CONFIG_FILES(Mac/IDLE/Makefile) + AC_CONFIG_FILES(Mac/Resources/framework/Info.plist) + AC_CONFIG_FILES(Mac/Resources/app/Info.plist) esac ],[ PYTHONFRAMEWORK= @@ -147,6 +159,7 @@ AC_ARG_ENABLE(framework, enable_framework= ]) AC_SUBST(PYTHONFRAMEWORK) +AC_SUBST(PYTHONFRAMEWORKIDENTIFIER) AC_SUBST(PYTHONFRAMEWORKDIR) AC_SUBST(PYTHONFRAMEWORKPREFIX) AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)