Unable to build recent version on Mac
This is what I do:
pip install http://pypi.python.org/packages/source/g/geocommit/geocommit-0.9.2.tar.gz#md5=ca7afac17c75de0fb513f40c9b84ea8b
This is what I get:
Downloading/unpacking http://pypi.python.org/packages/source/g/geocommit/geocommit-0.9.2.tar.gz#md5=ca7afac17c75de0fb513f40c9b84ea8b Downloading geocommit-0.9.2.tar.gz Running setup.py egg_info for package from http://pypi.python.org/packages/source/g/geocommit/geocommit-0.9.2.tar.gz#md5=ca7afac17c75de0fb513f40c9b84ea8b Installing collected packages: geocommit Running setup.py install for geocommit building 'geocommit.provider.corelocation.geocommit' extension gcc-4.2 -fno-strict-aliasing -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c src/geocommit/provider/corelocation/geocommit.m -o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o gcc-4.2 -fno-strict-aliasing -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c src/geocommit/provider/corelocation/geocommitdelegate.m -o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommitdelegate.o src/geocommit/provider/corelocation/geocommitdelegate.m: In function ‘-[GeoCommitDelegate locationManager:didUpdateToLocation:fromLocation:]’: src/geocommit/provider/corelocation/geocommitdelegate.m:11: warning: format not a string literal and no format arguments src/geocommit/provider/corelocation/geocommitdelegate.m: In function ‘-[GeoCommitDelegate locationManager:didUpdateToLocation:fromLocation:]’: src/geocommit/provider/corelocation/geocommitdelegate.m:11: warning: format not a string literal and no format arguments gcc-4.2 build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommitdelegate.o -o build/lib.macosx-10.6-i386-2.5/geocommit/provider/corelocation/geocommit -framework Foundation -framework CoreLocation ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o, missing required architecture x86_64 in file ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommitdelegate.o, missing required architecture x86_64 in file Undefined symbols: "_main", referenced from: start in crt1.10.6.o ld: symbol(s) not found collect2: ld returned 1 exit status error: command 'gcc-4.2' failed with exit status 1 Complete output from command /System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python -c "import setuptools; file='/tmp/pip-Q7dvbk-build/setup.py'; execfile('/tmp/pip-Q7dvbk-build/setup.py')" install --single-version-externally-managed --record /tmp/pip-ouRz2b-record/install-record.txt --install-headers /lib/include: running install
running build
running build_py
creating build
creating build/lib.macosx-10.6-i386-2.5
creating build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/init.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/location.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/locationprovider.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/networkmanager.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/tests.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/util.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/wifilocationprovider.py -> build/lib.macosx-10.6-i386-2.5/geocommit
creating build/lib.macosx-10.6-i386-2.5/geocommit/provider
copying src/geocommit/provider/init.py -> build/lib.macosx-10.6-i386-2.5/geocommit/provider
creating build/lib.macosx-10.6-i386-2.5/geocommit/provider/corelocation
copying src/geocommit/provider/corelocation/init.py -> build/lib.macosx-10.6-i386-2.5/geocommit/provider/corelocation
running build_ext
building 'geocommit.provider.corelocation.geocommit' extension
creating build/temp.macosx-10.6-i386-2.5
creating build/temp.macosx-10.6-i386-2.5/src
creating build/temp.macosx-10.6-i386-2.5/src/geocommit
creating build/temp.macosx-10.6-i386-2.5/src/geocommit/provider
creating build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation
gcc-4.2 -fno-strict-aliasing -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c src/geocommit/provider/corelocation/geocommit.m -o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o
gcc-4.2 -fno-strict-aliasing -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c src/geocommit/provider/corelocation/geocommitdelegate.m -o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommitdelegate.o
src/geocommit/provider/corelocation/geocommitdelegate.m: In function ‘-[GeoCommitDelegate locationManager:didUpdateToLocation:fromLocation:]’:
src/geocommit/provider/corelocation/geocommitdelegate.m:11: warning: format not a string literal and no format arguments
src/geocommit/provider/corelocation/geocommitdelegate.m: In function ‘-[GeoCommitDelegate locationManager:didUpdateToLocation:fromLocation:]’:
src/geocommit/provider/corelocation/geocommitdelegate.m:11: warning: format not a string literal and no format arguments
gcc-4.2 build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommitdelegate.o -o build/lib.macosx-10.6-i386-2.5/geocommit/provider/corelocation/geocommit -framework Foundation -framework CoreLocation
ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o, missing required architecture x86_64 in file
ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommitdelegate.o, missing required architecture x86_64 in file
Undefined symbols:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
error: command 'gcc-4.2' failed with exit status 1
Command /System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python -c "import setuptools; file='/tmp/pip-Q7dvbk-build/setup.py'; execfile('/tmp/pip-Q7dvbk-build/setup.py')" install --single-version-externally-managed --record /tmp/pip-ouRz2b-record/install-record.txt --install-headers /lib/include failed with error code 1 Storing complete log in ./pip-log.txt
We only tested this on 64bit-macs yet, seems to be a problem there. I'll look into that.
I use a Macbook Pro with an Intel Core i5 at 2.4 GHz. Should be 64bit...
Can you try
unset CFLAGS
pip install geocommit
?
If that doesn't work, can you post the output of
env|grep -i flag
? Thanks.
Reason behind this is, I can reproduce your error like this:
filip@box ~/workspace/geocommit [git:master?] $ export CFLAGS='-arch i386'
filip@box ~/workspace/geocommit [git:master?] $ python setup.py clean build_ext
running clean
removing 'build/temp.macosx-10.6-universal-2.6' (and everything under it)
running build_ext
building 'geocommit.provider.corelocation.geocommit' extension
creating build/temp.macosx-10.6-universal-2.6
creating build/temp.macosx-10.6-universal-2.6/src
creating build/temp.macosx-10.6-universal-2.6/src/geocommit
creating build/temp.macosx-10.6-universal-2.6/src/geocommit/provider
creating build/temp.macosx-10.6-universal-2.6/src/geocommit/provider/corelocation
gcc-4.2 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -arch i386 -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c src/geocommit/provider/corelocation/geocommit.m -o build/temp.macosx-10.6-universal-2.6/src/geocommit/provider/corelocation/geocommit.o
gcc-4.2 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -arch i386 -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c src/geocommit/provider/corelocation/geocommitdelegate.m -o build/temp.macosx-10.6-universal-2.6/src/geocommit/provider/corelocation/geocommitdelegate.o
src/geocommit/provider/corelocation/geocommitdelegate.m: In function ‘-[GeoCommitDelegate locationManager:didUpdateToLocation:fromLocation:]’:
src/geocommit/provider/corelocation/geocommitdelegate.m:11: warning: format not a string literal and no format arguments
gcc-4.2 build/temp.macosx-10.6-universal-2.6/src/geocommit/provider/corelocation/geocommit.o build/temp.macosx-10.6-universal-2.6/src/geocommit/provider/corelocation/geocommitdelegate.o -o build/lib.macosx-10.6-universal-2.6/geocommit/provider/corelocation/geocommit -framework Foundation -framework CoreLocation
ld: warning: in build/temp.macosx-10.6-universal-2.6/src/geocommit/provider/corelocation/geocommit.o, file was built for i386 which is not the architecture being linked (x86_64)
ld: warning: in build/temp.macosx-10.6-universal-2.6/src/geocommit/provider/corelocation/geocommitdelegate.o, file was built for i386 which is not the architecture being linked (x86_64)
Undefined symbols:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
error: command 'gcc-4.2' failed with exit status 1
This is what I get:
[jens@mandu:~]$ unset CFLAGS [jens@mandu:~]$ pip install geocommit
Downloading/unpacking geocommit Running setup.py egg_info for package geocommit Installing collected packages: geocommit Running setup.py install for geocommit building 'geocommit.provider.corelocation.geocommit' extension gcc-4.2 build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommitdelegate.o -o build/lib.macosx-10.6-i386-2.5/geocommit/provider/corelocation/geocommit -framework Foundation -framework CoreLocation ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o, missing required architecture x86_64 in file ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommitdelegate.o, missing required architecture x86_64 in file Undefined symbols: "_main", referenced from: start in crt1.10.6.o ld: symbol(s) not found collect2: ld returned 1 exit status error: command 'gcc-4.2' failed with exit status 1 Complete output from command /System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python -c "import setuptools; file='/Users/jens/build/geocommit/setup.py'; execfile('/Users/jens/build/geocommit/setup.py')" install --single-version-externally-managed --record /tmp/pip-CuWGX9-record/install-record.txt --install-headers /Users/jens/lib/include: running install
running build
running build_py
running build_ext
building 'geocommit.provider.corelocation.geocommit' extension
gcc-4.2 build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommitdelegate.o -o build/lib.macosx-10.6-i386-2.5/geocommit/provider/corelocation/geocommit -framework Foundation -framework CoreLocation
ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o, missing required architecture x86_64 in file
ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommitdelegate.o, missing required architecture x86_64 in file
Undefined symbols:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
error: command 'gcc-4.2' failed with exit status 1
Command /System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python -c "import setuptools; file='/Users/jens/build/geocommit/setup.py'; execfile('/Users/jens/build/geocommit/setup.py')" install --single-version-externally-managed --record /tmp/pip-CuWGX9-record/install-record.txt --install-headers /Users/jens/lib/include failed with error code 1 Storing complete log in ./pip-log.txt
And running
env|grep -i flag
gives me:
Nothing.
@wooster made significant improvements towards mac os x / xcode 4 support, they are in geocommit 0.9.3beta1. Can you upgrade with pip install --upgrade geocommit and tell if the error persists ?
pip install --upgrade geocommit
Downloading/unpacking geocommit
Downloading geocommit-0.9.3beta1.tar.gz
Running setup.py egg_info for package geocommit
Installing collected packages: geocommit
Running setup.py install for geocommit
building 'geocommit.provider.corelocation.geocommit' extension
gcc-4.2 -fno-strict-aliasing -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c src/geocommit/provider/corelocation/geocommit.m -o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o
gcc-4.2 -fno-strict-aliasing -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c src/geocommit/provider/corelocation/GGCLDelegate.m -o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/GGCLDelegate.o
gcc-4.2 build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/GGCLDelegate.o -o build/lib.macosx-10.6-i386-2.5/geocommit/provider/corelocation/geocommit -framework Foundation -framework CoreLocation
ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o, missing required architecture x86_64 in file
ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/GGCLDelegate.o, missing required architecture x86_64 in file
Undefined symbols:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
error: command 'gcc-4.2' failed with exit status 1
Complete output from command /System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python -c "import setuptools;__file__='/Users/bjoern/Documents/projects/yoc_ag/prototypes/reveal/web/build/geocommit/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/ph/phISKAKxGZmoN7+EMfpTZk+++TI/-Tmp-/pip-2B6z8V-record/install-record.txt:
running install
running build
running build_py
creating build
creating build/lib.macosx-10.6-i386-2.5
creating build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/__init__.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/location.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/locationprovider.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/networkmanager.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/tests.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/util.py -> build/lib.macosx-10.6-i386-2.5/geocommit
copying src/geocommit/wifilocationprovider.py -> build/lib.macosx-10.6-i386-2.5/geocommit
creating build/lib.macosx-10.6-i386-2.5/geocommit/provider
copying src/geocommit/provider/__init__.py -> build/lib.macosx-10.6-i386-2.5/geocommit/provider
creating build/lib.macosx-10.6-i386-2.5/geocommit/provider/corelocation
copying src/geocommit/provider/corelocation/__init__.py -> build/lib.macosx-10.6-i386-2.5/geocommit/provider/corelocation
running build_ext
building 'geocommit.provider.corelocation.geocommit' extension
creating build/temp.macosx-10.6-i386-2.5
creating build/temp.macosx-10.6-i386-2.5/src
creating build/temp.macosx-10.6-i386-2.5/src/geocommit
creating build/temp.macosx-10.6-i386-2.5/src/geocommit/provider
creating build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation
gcc-4.2 -fno-strict-aliasing -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c src/geocommit/provider/corelocation/geocommit.m -o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o
gcc-4.2 -fno-strict-aliasing -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c src/geocommit/provider/corelocation/GGCLDelegate.m -o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/GGCLDelegate.o
gcc-4.2 build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/GGCLDelegate.o -o build/lib.macosx-10.6-i386-2.5/geocommit/provider/corelocation/geocommit -framework Foundation -framework CoreLocation
ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/geocommit.o, missing required architecture x86_64 in file
ld: warning: in build/temp.macosx-10.6-i386-2.5/src/geocommit/provider/corelocation/GGCLDelegate.o, missing required architecture x86_64 in file
Undefined symbols:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
error: command 'gcc-4.2' failed with exit status 1
----------------------------------------
Command /System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python -c "import setuptools;__file__='/Users/bjoern/Documents/projects/yoc_ag/prototypes/reveal/web/build/geocommit/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/ph/phISKAKxGZmoN7+EMfpTZk+++TI/-Tmp-/pip-2B6z8V-record/install-record.txt failed with error code 1
The interesting part here is the processor family, I think. @bjoerns Mac is a Core2Duo and boots in 32bit mode by default. However, our buildscript tries to compile in 64bit.
I don't think I have the option to boot into 64bit mode - holding 6+4 during boot did not work. Also, I am still on Snow Leopard.
So, i just tried to reproduce this by booting into 32-bit-mode by holding [3][2] during boot, but I probably don't trigger this bug because LLVM (part of xcode 4) works just fine.
Can you try to
export ARCHFLAGS=-m32
before installing geocommit ?
Tried that and it seems to have compiled. However, I just tried a geo commit and got the following error:
Retrieving location .../Library/Python/2.5/site-packages/geocommit/provider/corelocation/__init__.py:51: Warning: 'as' will become a reserved keyword in Python 2.6
Traceback (most recent call last):
File "/usr/local/bin/git-geo", line 8, in <module>
load_entry_point('geocommit==0.9.3beta1', 'console_scripts', 'git-geo')()
File "/Library/Python/2.5/site-packages/geocommit/__init__.py", line 300, in git_geo
f(sys.argv[2:])
File "/Library/Python/2.5/site-packages/geocommit/__init__.py", line 145, in cmd_note
note = self.get_note()
File "/Library/Python/2.5/site-packages/geocommit/__init__.py", line 48, in get_note
provider = LocationProvider.new()
File "/Library/Python/2.5/site-packages/geocommit/locationprovider.py", line 19, in new
from geocommit.provider.corelocation import CoreLocationProvider
File "/Library/Python/2.5/site-packages/geocommit/provider/corelocation/__init__.py", line 51
except ValueError as e:
^
SyntaxError: invalid syntax
Ui, nice.
As a workaround you can edit /Library/Python/2.5/site-packages/geocommit/provider/corelocation/__init__.py in line 51 to say
except (ValueError, e):
, but i will prepare a version that is compatible with python 2.5 (and includes the fix for ARCHFLAGS=).
Still no luck, unfortunately (I tried editing line 51). I am on Python 2.5 because that is what App Engine uses.
maggie:witty-wizards bjoern$ git commit -m "removing unused code"
Retrieving location ...
Traceback (most recent call last):
File "/usr/local/bin/git-geo", line 8, in
OK, sudo easy_install simplejson fixed that lassed issue. Guess it is a missing dependency in the geocommit descriptor?
Yes, it's a dependency only for Python <= 2.5 (whereas 2.6 includes a json module). Will fix that as well, thanks for reporting.