[pymunk] Fix for 64-bit.
Jon Ciesla
limb at fedoraproject.org
Mon Mar 4 19:09:42 UTC 2013
commit dc55ae44f41fcafc650193519995f2a0d72a41ab
Author: Jon Ciesla <limburgher at gmail.com>
Date: Mon Mar 4 13:06:36 2013 -0600
Fix for 64-bit.
pymunk-1.0.0-sharedlib64.patch | 110 ++++++++++++++++++++++++++++++++++++++++
pymunk.spec | 10 +++-
2 files changed, 119 insertions(+), 1 deletions(-)
---
diff --git a/pymunk-1.0.0-sharedlib64.patch b/pymunk-1.0.0-sharedlib64.patch
new file mode 100644
index 0000000..8995a81
--- /dev/null
+++ b/pymunk-1.0.0-sharedlib64.patch
@@ -0,0 +1,110 @@
+--- pymunk/libload.py~ 2010-02-07 22:58:20.000000000 -0600
++++ pymunk/libload.py 2010-07-15 09:16:27.240569523 -0500
+@@ -21,77 +21,7 @@
+
+
+ def load_library(libname, print_path=True):
+- # lib gets loaded from
+- # 32bit python: pymunk/libchipmunk.so, libchipmunk.dylib or chipmunk.dll
+- # 64 bit python pymunk/libchipmunk64.so, libchipmunk.dylib or chipmunk64.dll
+-
+- s = platform.system()
+- arch = str(ctypes.sizeof(ctypes.c_voidp) * 8)
+-
+- path = os.path.dirname(os.path.abspath(__file__))
+-
+- try:
+- if hasattr(sys, "frozen") or \
+- hasattr(sys, "importers") or \
+- hasattr(imp, "is_frozen") and imp.is_forzen("__main__"):
+- if 'site-packages.zip' in __file__:
+- path = os.path.join(os.path.dirname(os.getcwd()), 'Frameworks')
+- else:
+- path = os.path.dirname(os.path.abspath(sys.executable))
+- except:
+- pass
+-
+- if arch == "64":
+- arch_param = "64"
+- else:
+- arch_param = ""
+-
+- if s in ('Linux', 'FreeBSD'):
+- libfn = "lib%s%s.so" % (libname, arch_param)
+-
+- elif s in ('Windows', 'Microsoft'):
+- libfn = "%s%s.dll" % (libname, arch_param)
+-
+- elif s == 'Darwin':
+- libfn = "lib%s.dylib" % libname
+-
+- # we use *nix library naming as default
+- else:
+- libfn = "lib%s.so" % libname
+-
+- libfn = os.path.join(path, libfn)
+-
+-
+- if print_path:
+- print ("Loading chipmunk for %s (%sbit) [%s]" % (s, arch, libfn))
+- try:
+- lib = platform_specific_functions()['library_loader'].LoadLibrary(libfn)
+- except OSError:
+- print ("""
+-Failed to load pymunk library.
+-
+-This error usually means that you don't have a compiled version of chipmunk in
+-the correct spot where pymunk can find it. pymunk does not include precompiled
+-chipmunk library files for all platforms.
+-
+-The good news is that it is usually enough (at least on *nix and OS X) to
+-simply run the compile command first before installing and then retry again:
+-
+-You compile chipmunk with
+-> python setup.py build_chipmunk
+-and then continue as usual with
+-> python setup.py install
+-> cd examples
+-> python basic_test.py
+-
+-(for complete instructions please see the readme file)
+-
+-If it still doesnt work, please report as a bug on the issue tracker at
+-http://code.google.com/p/pymunk/issues
+-Remember to include information about your OS, which version of python you use
+-and the version of pymunk you tried to run. A description of what you did to
+-trigger the error is also good. Please include the exception traceback if any
+-(usually found below this message).
+-""")
+- raise
++ # Library is always in this location on Fedora
++ libfn = "/usr/lib/libchipmunk.so"
++ lib = platform_specific_functions()['library_loader'].LoadLibrary(libfn)
+ return lib
+--- setup.py~ 2010-03-07 21:21:08.000000000 -0600
++++ setup.py 2010-07-15 08:59:15.231318426 -0500
+@@ -99,11 +99,6 @@
+ , description='A python wrapper for the 2d physics library Chipmunk'
+ , long_description=long_description
+ , packages=['pymunk'] #find_packages(exclude=['*.tests']),
+- , package_data = {'pymunk': ['chipmunk.dll'
+- , 'chipmunk64.dll'
+- , 'libchipmunk.so'
+- , 'libchipmunk64.so'
+- , 'libchipmunk.dylib']}
+ , eager_resources = [os.path.join('pymunk','chipmunk.dll')
+ , os.path.join('pymunk','chipmunk64.dll')
+ , os.path.join('pymunk','libchipmunk.so')
+--- pymunk.egg-info/SOURCES.txt~ 2010-03-07 22:20:40.000000000 -0600
++++ pymunk.egg-info/SOURCES.txt 2010-07-15 09:00:45.069319331 -0500
+@@ -121,10 +121,7 @@
+ examples/slide_and_pinjoint.py
+ pymunk/__init__.py
+ pymunk/_chipmunk.py
+-pymunk/chipmunk.dll
+ pymunk/constraint.py
+-pymunk/libchipmunk.so
+-pymunk/libchipmunk64.so
+ pymunk/libload.py
+ pymunk/util.py
+ pymunk/vec2d.py
diff --git a/pymunk.spec b/pymunk.spec
index f40890a..fc9f95f 100644
--- a/pymunk.spec
+++ b/pymunk.spec
@@ -2,7 +2,7 @@
Name: pymunk
Version: 1.0.0
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: Python wrapper for the chipmunk 2D physics engine
Group: Development/Languages
# pymunx is under GPL+
@@ -12,6 +12,7 @@ Source0: http://pymunk.googlecode.com/files/pymunk-%{version}.zip
# Use the shared library provided by the chipmunk package
#Patch0: pymunk-sharedlib.patch
Patch1: pymunk-1.0.0-sharedlib.patch
+Patch2: pymunk-1.0.0-sharedlib64.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: python-devel
BuildRequires: python-setuptools
@@ -28,7 +29,11 @@ engine. It aims to be easy to use, "Pythonic", and non-intrusive.
%prep
%setup -q
#%patch0 -p0
+%ifarch %{ix86}
%patch1 -p0
+%else
+%patch2 -p0
+%endif
# Fix newlines -- preserve timestamps
for file in docs/api/*.{html,txt,css,js} examples/*.py *.txt PKG-INFO; do
sed -e 's/\r//g' $file > $file.new &&
@@ -60,6 +65,9 @@ rm -rf $RPM_BUILD_ROOT
%doc docs examples LICENSE.txt PKG-INFO THANKS.txt README.txt
%changelog
+* Mon Mar 04 2013 Jon Ciesla <limb at jcomserv.net> - 1.0.0-6
+- Fix shared lib patch for 64-bit.
+
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.0.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
More information about the scm-commits
mailing list