MACOSX_DEPLOYMENT_TARGET mismatch between PHENIX and Coot
Howdy PHENIXians, One of my users reported this error: File "/programs/i386-mac/coot/coot-latest/lib/python2.7/sysconfig.py", line 300, in _init_posix raise IOError(msg) IOError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.4" but "10.5" during configure The person is running on OS X Intel, using a PHENIX nightly and trying to call Coot. It looks like the PHENIX nightlies are built with MACOSX_DEPLOYMENT_TARGET=10.4, and the Coot I built used M_D_T=10.5 and Python is unhappy about this. It's easy to test this: $ export MACOSX_DEPLOYMENT_TARGET=10.3 $ phenix.python Traceback (most recent call last): File "/programs/i386-mac/phenix/dev-606/phenix-dev-606/build/mac-intel-osx/base/Python.framework/Versions/Current/lib/python2.7/site.py", line 553, in <module> <snip> IOError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.3" but "10.4" during configure Or if you have access to one of our installations: $ phenix.python import os os.system('coot') Results in the original error pasted above. After playing a bit, I came up with a workaround. If you just set the M_D_T to 10.5 before starting Coot and _after_ starting PHENIX, it all seems to work. E.g. I can start Coot using this script: $ cat coot.py #!/usr/bin/env phenix.python import os os.putenv('MACOSX_DEPLOYMENT_TARGET', '10.5') os.system('coot') And since the 'coot' binary in the PATH is a wrapper script, I can just set it in the environment there. My question is: does Python actually need this? Is my workaround going to break something? I'm not enough of a Pythonista to be able to tell from looking at the sysconfig code if this will be an issue. There is a comment in the source: # On MacOSX we need to check the setting of the environment variable # MACOSX_DEPLOYMENT_TARGET: configure bases some choices on it so # it needs to be compatible. But it's not clear to me when it's going to be used. I'm almost certainly going to implement the workaround, so I'm mostly posting this for the list archives and to see if anyone has a better idea. Thanks. -ben -- | Ben Eisenbraun | SBGrid Consortium | http://sbgrid.org | | Harvard Medical School | http://hms.harvard.edu |
Hi Ben, Thanks for the great analysis of the problem. Could you try editing the file $PHENIX/phenix/phenix/command_line/start_coot.sh It is a short file. In the middle you'll see a list of "unset" statement. Does it solve the original problem if you add unset MACOSX_DEPLOYMENT_TARGET to that list? If it does I'll add the line in our sources so that it will be in all future phenix installers. Ralf ----- Original Message ----
From: Ben Eisenbraun
To: [email protected] Sent: Wed, December 29, 2010 8:04:36 AM Subject: [phenixbb] MACOSX_DEPLOYMENT_TARGET mismatch between PHENIX and Coot Howdy PHENIXians,
One of my users reported this error:
File "/programs/i386-mac/coot/coot-latest/lib/python2.7/sysconfig.py", line 300, in _init_posix raise IOError(msg) IOError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.4" but "10.5" during configure
The person is running on OS X Intel, using a PHENIX nightly and trying to call Coot. It looks like the PHENIX nightlies are built with MACOSX_DEPLOYMENT_TARGET=10.4, and the Coot I built used M_D_T=10.5 and Python is unhappy about this.
It's easy to test this:
$ export MACOSX_DEPLOYMENT_TARGET=10.3 $ phenix.python Traceback (most recent call last): File "/programs/i386-mac/phenix/dev-606/phenix-dev-606/build/mac-intel-osx/base/Python.framework/Versions/Current/lib/python2.7/site.py", line 553, in <module> <snip> IOError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.3" but "10.4" during configure
Or if you have access to one of our installations:
$ phenix.python import os os.system('coot')
Results in the original error pasted above. After playing a bit, I came up with a workaround. If you just set the M_D_T to 10.5 before starting Coot and _after_ starting PHENIX, it all seems to work. E.g. I can start Coot using this script:
$ cat coot.py #!/usr/bin/env phenix.python import os os.putenv('MACOSX_DEPLOYMENT_TARGET', '10.5') os.system('coot')
And since the 'coot' binary in the PATH is a wrapper script, I can just set it in the environment there.
My question is: does Python actually need this? Is my workaround going to break something? I'm not enough of a Pythonista to be able to tell from looking at the sysconfig code if this will be an issue. There is a comment in the source:
# On MacOSX we need to check the setting of the environment variable # MACOSX_DEPLOYMENT_TARGET: configure bases some choices on it so # it needs to be compatible.
But it's not clear to me when it's going to be used. I'm almost certainly going to implement the workaround, so I'm mostly posting this for the list archives and to see if anyone has a better idea.
Thanks.
-ben
-- | Ben Eisenbraun | SBGrid Consortium | http://sbgrid.org | | Harvard Medical School | http://hms.harvard.edu | _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
Dear Ralf and Ben, One of our lab members was having this problem, and I am happy to report that unsetting the MACOSX_DEPLOYMENT_TARGET in the start_coot shell script seems to resolve the problem on my intel Mac. I haven't tested it intensively, but a few coot jobs I initiated from the GUI did start, and behave as expected. Thanks, Engin On 12/29/10 8:59 AM, Ralf W. Grosse-Kunstleve wrote:
Hi Ben,
Thanks for the great analysis of the problem. Could you try editing the file
$PHENIX/phenix/phenix/command_line/start_coot.sh
It is a short file. In the middle you'll see a list of "unset" statement. Does it solve the original problem if you add
unset MACOSX_DEPLOYMENT_TARGET
to that list? If it does I'll add the line in our sources so that it will be in all future phenix installers.
Ralf
----- Original Message ----
From: Ben Eisenbraun
To: [email protected] Sent: Wed, December 29, 2010 8:04:36 AM Subject: [phenixbb] MACOSX_DEPLOYMENT_TARGET mismatch between PHENIX and Coot Howdy PHENIXians,
One of my users reported this error:
File "/programs/i386-mac/coot/coot-latest/lib/python2.7/sysconfig.py", line 300, in _init_posix raise IOError(msg) IOError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.4" but "10.5" during configure
The person is running on OS X Intel, using a PHENIX nightly and trying to call Coot. It looks like the PHENIX nightlies are built with MACOSX_DEPLOYMENT_TARGET=10.4, and the Coot I built used M_D_T=10.5 and Python is unhappy about this.
It's easy to test this:
$ export MACOSX_DEPLOYMENT_TARGET=10.3 $ phenix.python Traceback (most recent call last): File "/programs/i386-mac/phenix/dev-606/phenix-dev-606/build/mac-intel-osx/base/Python.framework/Versions/Current/lib/python2.7/site.py", line 553, in<module> <snip> IOError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.3" but "10.4" during configure
Or if you have access to one of our installations:
$ phenix.python import os os.system('coot')
Results in the original error pasted above. After playing a bit, I came up with a workaround. If you just set the M_D_T to 10.5 before starting Coot and _after_ starting PHENIX, it all seems to work. E.g. I can start Coot using this script:
$ cat coot.py #!/usr/bin/env phenix.python import os os.putenv('MACOSX_DEPLOYMENT_TARGET', '10.5') os.system('coot')
And since the 'coot' binary in the PATH is a wrapper script, I can just set it in the environment there.
My question is: does Python actually need this? Is my workaround going to break something? I'm not enough of a Pythonista to be able to tell from looking at the sysconfig code if this will be an issue. There is a comment in the source:
# On MacOSX we need to check the setting of the environment variable # MACOSX_DEPLOYMENT_TARGET: configure bases some choices on it so # it needs to be compatible.
But it's not clear to me when it's going to be used. I'm almost certainly going to implement the workaround, so I'm mostly posting this for the list archives and to see if anyone has a better idea.
Thanks.
-ben
-- | Ben Eisenbraun | SBGrid Consortium | http://sbgrid.org | | Harvard Medical School | http://hms.harvard.edu | _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
-- Engin Özkan Post-doctoral Scholar Howard Hughes Medical Institute Dept of Molecular and Cellular Physiology 279 Campus Drive, Beckman Center B173 Stanford School of Medicine Stanford, CA 94305 ph: (650)-498-7111
OK, thanks. The additional unset will be in dev-625 and higher. Ralf ----- Original Message ----
From: Engin Özkan
To: PHENIX user mailing list Sent: Wed, December 29, 2010 7:38:38 PM Subject: Re: [phenixbb] MACOSX_DEPLOYMENT_TARGET mismatch between PHENIX and Coot Dear Ralf and Ben,
One of our lab members was having this problem, and I am happy to report that unsetting the MACOSX_DEPLOYMENT_TARGET in the start_coot shell script seems to resolve the problem on my intel Mac. I haven't tested it intensively, but a few coot jobs I initiated from the GUI did start, and behave as expected.
Thanks, Engin
Hi Ben,
Thanks for the great analysis of the problem. Could you try editing the file
$PHENIX/phenix/phenix/command_line/start_coot.sh
It is a short file. In the middle you'll see a list of "unset" statement. Does it solve the original problem if you add
unset MACOSX_DEPLOYMENT_TARGET
to that list? If it does I'll add the line in our sources so that it will be in all future phenix installers.
Ralf
----- Original Message ----
From: Ben Eisenbraun
To: [email protected] Sent: Wed, December 29, 2010 8:04:36 AM Subject: [phenixbb] MACOSX_DEPLOYMENT_TARGET mismatch between PHENIX and Coot Howdy PHENIXians,
One of my users reported this error:
File "/programs/i386-mac/coot/coot-latest/lib/python2.7/sysconfig.py",
On 12/29/10 8:59 AM, Ralf W. Grosse-Kunstleve wrote: line
300, in _init_posix raise IOError(msg) IOError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.4" but "10.5" during configure
The person is running on OS X Intel, using a PHENIX nightly and trying to call Coot. It looks like the PHENIX nightlies are built with MACOSX_DEPLOYMENT_TARGET=10.4, and the Coot I built used M_D_T=10.5 and Python is unhappy about this.
It's easy to test this:
$ export MACOSX_DEPLOYMENT_TARGET=10.3 $ phenix.python Traceback (most recent call last): File
"/programs/i386-mac/phenix/dev-606/phenix-dev-606/build/mac-intel-osx/base/Python.framework/Versions/Current/lib/python2.7/site.py",
line 553, in<module> <snip> IOError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.3" but "10.4" during configure
Or if you have access to one of our installations:
$ phenix.python import os os.system('coot')
Results in the original error pasted above. After playing a bit, I came up with a workaround. If you just set the M_D_T to 10.5 before starting Coot and _after_ starting PHENIX, it all seems to work. E.g. I can start Coot using this script:
$ cat coot.py #!/usr/bin/env phenix.python import os os.putenv('MACOSX_DEPLOYMENT_TARGET', '10.5') os.system('coot')
And since the 'coot' binary in the PATH is a wrapper script, I can just set it in the environment there.
My question is: does Python actually need this? Is my workaround going to break something? I'm not enough of a Pythonista to be able to tell from looking at the sysconfig code if this will be an issue. There is a comment in the source:
# On MacOSX we need to check the setting of the environment variable # MACOSX_DEPLOYMENT_TARGET: configure bases some choices on it so # it needs to be compatible.
But it's not clear to me when it's going to be used. I'm almost certainly going to implement the workaround, so I'm mostly posting this for the list archives and to see if anyone has a better idea.
Thanks.
-ben
-- | Ben Eisenbraun | SBGrid Consortium | http://sbgrid.org | | Harvard Medical School | http://hms.harvard.edu | _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
-- Engin Özkan Post-doctoral Scholar Howard Hughes Medical Institute Dept of Molecular and Cellular Physiology 279 Campus Drive, Beckman Center B173 Stanford School of Medicine Stanford, CA 94305 ph: (650)-498-7111
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
Hi Ralf,
Could you try editing the file
$PHENIX/phenix/phenix/command_line/start_coot.sh
It is a short file. In the middle you'll see a list of "unset" statement. Does it solve the original problem if you add
unset MACOSX_DEPLOYMENT_TARGET
That works fine, but there's still something a bit odd going on. If I add an "echo $MACOSX_DEPLOYMENT_TARGET" to that file, it prints 10.4, but if I run phenix.python and then "os.getenv('MACOSX_DEPLOYMENT_TARGET')" it's unset. So it's being set in the environment somewhere in PHENIX prior to Coot being run? But not in a straight PHENIX python environment? It's probably not a big deal, but I don't like not understanding the problem fully; it makes me less confident of the solution. :-) -ben -- | Ben Eisenbraun | SBGrid Consortium | http://sbgrid.org | | Harvard Medical School | http://hms.harvard.edu |
Hi Ben,
So it's being set in the environment somewhere in PHENIX prior to Coot being run? But not in a straight PHENIX python environment? It's probably not a big deal, but I don't like not understanding the problem fully; it makes me less confident of the solution. :-)
My suspicion is that Python sets the variable in lib/python2.7/sysconfig.py: os.putenv('MACOSX_DEPLOYMENT_TARGET', cfg_target) You could find out for sure by adding a print statement right before this line. Ralf
participants (3)
-
Ben Eisenbraun
-
Engin Özkan
-
Ralf W. Grosse-Kunstleve