[Python-Dev] Installation on Macs

Ned Deily nad at acm.org
Wed Aug 15 11:30:17 CEST 2012


Raymond raises a couple of issues and Jesse comments on those and brings 
up another issue.  Let me address each in turn (and I apologize for the 
length!):

1. Gatekeeper singing on 10.8

In article <E0FF98C8-13D2-44CA-B890-03F12D836F4A at gmail.com>,
 Raymond Hettinger <raymond.hettinger at gmail.com> wrote:
> On Mountain Lion, the default security settings only allow installation of 
> applications downloaded from the Mac App Stored and "identified developers".
> 
> We need to either become an "identified developer" or include some 
> instructions on how to change the security settings (System Preference -- 
> General -- Unlock --Select the "Anywhere" radio button -- Install Python -- 
> Restore the original settings -- and Relock).  Changing the security settings 
> isn't appealing because 1) it weakens the user's security 2) it involves 
> multiple steps and 3) the user will see an unsettling warnings along the way. 

Yes, Gatekeeper support is a known desirable feature for OS X 10.8 
(Mountain Lion).  There are a number of issues involved, involving code, 
process, and the PSF as a legal entity.  Rather than going into all the 
gory details here, see http://bugs.python.org/issue15661 which I've 
opened to track what needs to be done.  Quick summary is that we need to 
change the installer format that is used to be able to participate in 
the installer singing program and the PSF will likely need to be 
involved as the legal entity "owning" the certificates that need to be 
signed.  Ronald and I are aware of the issues but, to be honest, this 
has been a lower-priority issue compared to others for the Python 3.3.0 
release.  Now that 3.3.0b2 is out and things seem to be in pretty good 
shape, this issue is now in the top set of my list and I have been 
working on it recently. 

By the way, it's not necessary to use System Preferences to change the 
security settings, although Apple doesn't make it obvious that this is 
the case.  As documented here (http://support.apple.com/kb/HT5290) and 
in the online help, you can override the signing check by using 
control-click on the installer mpkg file and selecting Open using ... 
Installer (or use spctl(8) from the command line).

Thread-tie: the current ActiveTcl installers for OS X are also not yet 
signed so attempting to install them on 10.8 currently results in the 
same user experience as with python.org installers.

In article <5432C23E-CABB-476E-966C-164209BA47AE at gmail.com>,
 Jesse Noller <jnoller at gmail.com> wrote:
> I think becoming an apple signed developer to get a cert is the best 
> approach.
> 
> If anyone wanted to approach apple about open source/non profit gratis 
> licenses, that would be appreciated. 
> 
> Otherwise I could do it / fund it from the PSF board side, which I am happy 
> to do.

Thanks, Jesse.  There seems to be a fairly straightforward process for a 
corporate entity to request a development team membership from Python 
(at nominal cost, see the references in the opened issue).  As the 
developer ID program is new to me, I have been intending to propose 
something officially to PSF officers once we were further along with 
implementation and testing.  With Ronald's concurrence, I will make sure 
to follow up with you and/or Van when we are further along.


2. Tcl/Tk on OS X

Raymond:
> Another unrelated issue is that the instructions for updating Tcl/Tk are 
> problematic.  In the past few months, I've witnessed hundreds of people 
> unsuccessfully trying follow the instructions and having an immediate 
> unpleasant out-of-the-box experience when IDLE crashes.  I suggest that we 
> stop being so indirect about the chain of footnotes and links leading to a 
> Tcl/Tk download.  I would like to see a direct Tcl/Tk updater link 
> side-by-side with our Python installer link at 
> http://www.python.org/download/releases/2.7.3/
[...]
> I would like to see our download page have something more simple, 
> affirmative, positively worded and direct.  For example:
> 
> *  Mac OS X 64-bit/32-bit Installer (3.2.3) for Mac OS X 10.6 and 10.7 [2] 
> (sig).  To run IDLE or Tkinter, you need to update Tcl/Tk to ActiveTcl 8.5.12 
> <http://www.activestate.com/activetcl/downloads> .

I am open to changing the wording.  However, as I've noted in the past, 
I think it's problematic to use wording that implies you can 
unconditionally download and install ActiveState's Tcl.   I really 
appreciate the great work that the ActiveState folks do and am happy to 
recommend people to use it.  But not everyone can without cost.  The 
free (as in beer) ActiveTcl Community Edition is not open source and it 
is released with a license that restricts the use of some parts of 
ActiveTcl, the pieces that ActiveState have developed themselves.  
That's a perfectly understandable business decision.  I am not a lawyer 
so I'm not in a position to say to our users whether or not they can 
legally download and use ActiveTcl without entering into some other 
license arrangement.  That's one reason why the links send users to the 
special page.  I'd would be happy to see wording on the release pages 
that incorporate that sense.  I'll see what I can come up with and 
propose something.  Let me know if you have any specific suggestions or 
if you think my concerns are misplaced.

http://www.activestate.com/activetcl/license-agreement
http://www.python.org/download/releases/3.3.0/
http://www.python.org/download/mac/tcltk/
 
> Someone did add a note the the IDLE startup screen to the effect of:  
> "WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
> Visit http://www.python.org/download/mac/tcltk/ for current information."   
> In some ways this is progress.  In others, it falls short.  If IDLE crashes, 
> you can't see the message.

The warning message when IDLE.app is run with the buggy Apple-supplied 
10.6 Tcl/Tk has been available since 3.2 and 2.7.2 (Issue10907).  I did 
recently update all branches to warn about the 10.7/10.8 versions as 
well; they are not as totally broken as 10.6 was but can still crash 
easily from the "wrong" user keyboard input.

> If you have installed the ActiveTCL 8.5.12 
> update, you still see the warning eventhough it isn't necessary.

That should not be the case with installers downloaded from python.org.     
If you can reproduce, please check to see the actual path to the Tcl and 
Tk frameworks.  Probably the easiest way for IDLE.app is to launch 
"/Applications/Utilites/Actiity Monitor.app", select the IDLE process 
and click on Inspect.  In the list of open files, you should see 
/Library/Frameworks/Tcl.framework/Versions/8.5/Tcl and 
/Library/Frameworks/Tk.framework/Versions/8.5/Tk if ActiveTcl is being 
linked or /System/Library/Frameworks/Tcl.framework/Versions/8.5/Tcl and 
Tk if the Apple system versions are being used.  If you are using 
Pythons from another source or self-built, there is no guarantee that 
they will link to the ActiveTcl versions without taking some steps 
during building.  Let me know if I can help with that.

> Also, I 
> don't link that the referenced page is so complex and that it is full 
> unsettling warnings, important notices, do-not-use advice, mentions of 
> instability,  etc.  

Well, the situation *is* pretty complex.  We support a *lot* of 
configurations and there are a lot of gotchas.  We have have taken some 
steps to simplify things, like dropping installer support for 10.3 and 
10.4 with Python 3.3 but unfortunately the most problematic OS X 
releases for Apple Tcl are the most recent ones (10.6, in particular).  
Prior to 3.3.0 release, I intend to review and revise it.  Wording 
change suggestions are welcome!

But I totally agree that the user experience is not good.  The only way 
I see to make a major improvement is to get into the business of 
building and supplying Tcl/Tk with the OS X installers, as is currently 
done for the Windows installers.   Now that the Mac Tcl community has 
been getting more involved in maintaining the Cocoa port themselves and 
things are getting more stable (and Apple continues to appear to be 
uninterested), perhaps it is time for us to bite the bullet.  I've 
opened Issue15663 to look into that for 3.4 (and *possibly* for earlier 
maintenance releases).


3. Download instructions and Xcode

Jesse:
> I also concur with Raymond that the download/install instructions could be 
> simplified. Noting for users that rather than downloading Xcode, they can 
> just download the OSX Command Line Tools installer and easy_install/pip/etc 
> will just work would also be nice

The Mac section of the Python docset is woefully out-of-date (from long 
before I got involved!) and I plan to give it a major update for 3.3.0.  
The whole business of what's needed to build extension modules on OS X 
got *much* more complicated with Xcode 4 (the default for 10.7 and 10.8) 
and each minor release of Xcode 4 has brought new changes.  The 
introduction of the stand-alone Command Line Tools (with Xcode 4.2?) was 
a nice addition but there are gotchas with using it, for example, 
extension building with current Python 3.2.3 installers do not work 
out-of-the-box with the CLT because the CLT do not provide SDKs.  2.7.3 
is better but neither of the current 32-bit installers will work out of 
the box with Xcode 4.   A lot of work has gone into 3.3.0 to make 
extension building and building Python itself play more nicely with 
Xcode 4 without breaking support for older versions.  Some subset of 
that support will get backported for 2.7.4 and 3.2.4 once 3.3.0 is done.

Also, if network bandwidth and disk space usage are not major concerns, 
it may now be procedurally easier for most people to install Xcode 4 
than the Command  Line Tools package since the former is now available 
for free download from the Mac App Store while the latter still requires 
registering for a (free) Apple Developer Id and download from the Apple 
Developer site.  And since Xcode 4 has been partitioned up into smaller 
downloadable components, the Xcode download is smaller as it is not 
necessary to download everything (including iOS development tools) as 
was the case with Xcode 3.

-- 
 Ned Deily,
 nad at acm.org



More information about the Python-Dev mailing list