summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorYour Name2022-03-24 16:11:40 +0800
committerYour Name2022-03-24 16:11:40 +0800
commitd367645ae1032b2109586698530ad6006c4d248f (patch)
tree970f6be834ebbf4f3133733afb1a34dcea0eb670
parenteffb3a2c0acd4f1f6949a9db4ee3dd6668d1c598 (diff)
downloadaur-d367645ae1032b2109586698530ad6006c4d248f.tar.gz
patch to use system glew
-rw-r--r--.SRCINFO3
-rw-r--r--PKGBUILD23
-rw-r--r--mujoco.patch93
3 files changed, 103 insertions, 16 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 9d756db9edc5..02b87584c3a7 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -16,7 +16,10 @@ pkgbase = python-mujoco
depends = python-numpy
depends = python-opengl
depends = mujoco
+ depends = glew
source = git+https://github.com/deepmind/mujoco.git#tag=2.1.3
+ source = mujoco.patch
sha256sums = SKIP
+ sha256sums = 8852ea463f868859726e92b61d2f40f2f224a520f8b1b8b066933ba935b80452
pkgname = python-mujoco
diff --git a/PKGBUILD b/PKGBUILD
index ac4fb425737c..65905252fb77 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,38 +2,29 @@ pkgname=python-mujoco
pkgver=2.1.3
pkgrel=1
pkgdesc="Mujoco's Python bindings"
-depends=('python' 'absl-py' 'python-glfw' 'python-numpy' 'python-opengl' 'mujoco')
+depends=('python' 'absl-py' 'python-glfw' 'python-numpy' 'python-opengl' 'mujoco' 'glew')
makedepends=('python-setuptools' 'pybind11' 'abseil-cpp' 'eigen' 'cmake')
arch=('x86_64')
url="https://github.com/deepmind/mujoco"
license=('LGPL3')
-source=("git+https://github.com/deepmind/mujoco.git#tag=$pkgver")
-sha256sums=('SKIP')
+source=("git+https://github.com/deepmind/mujoco.git#tag=$pkgver"
+"mujoco.patch")
+sha256sums=('SKIP'
+ '8852ea463f868859726e92b61d2f40f2f224a520f8b1b8b066933ba935b80452')
build() {
+ cd "${srcdir}/mujoco"
+ patch -Np1 -i "${srcdir}/mujoco.patch"
cd "${srcdir}/mujoco/python"
PYTHONPATH="..:${PYTHONPATH}" python mujoco/codegen/generate_enum_traits.py > mujoco/enum_traits.h
PYTHONPATH="..:${PYTHONPATH}" python mujoco/codegen/generate_function_traits.py > mujoco/function_traits.h
cp ../LICENSE .
mkdir -p cmake
cp ../cmake/*.cmake cmake
- sed -i "s/OFF$/ON/g" mujoco/CMakeLists.txt
- sed -i "s/self._find_mujoco()/\"\/usr\/lib\",\"\/usr\/include\/mujoco\"/g" setup.py
- sed -i "/self._copy_external_libraries()/d" setup.py
- sed -i "/self._copy_mujoco_headers()/d" setup.py
python setup.py build
}
package() {
cd "${srcdir}/mujoco/python"
python setup.py install --root="$pkgdir" --optimize=1 --skip-build
- cd $pkgdir/$(python -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')/mujoco
- ln -s /usr/include/mujoco ./include
- ln -s /usr/lib/libmujoco.so ./libmujoco.so
- ln -s /usr/lib/libmujoco.so.$pkgver ./libmujoco.so.$pkgver
- ln -s /usr/lib/libmujoco_nogl.so ./libmujoco_nogl.so
- ln -s /usr/lib/libmujoco_nogl.so.$pkgver ./libmujoco_nogl.so.$pkgver
- ln -s /opt/mujoco/lib/libglew.so ./libglew.so
- ln -s /opt/mujoco/lib/libglewegl.so ./libglewegl.so
- ln -s /opt/mujoco/lib/libglewosmesa.so ./libglewosmesa.so
}
diff --git a/mujoco.patch b/mujoco.patch
new file mode 100644
index 000000000000..4198f1169719
--- /dev/null
+++ b/mujoco.patch
@@ -0,0 +1,93 @@
+diff --git a/python/mujoco/CMakeLists.txt b/python/mujoco/CMakeLists.txt
+index 1ee5c8e..c00db28 100644
+--- a/python/mujoco/CMakeLists.txt
++++ b/python/mujoco/CMakeLists.txt
+@@ -102,7 +102,7 @@ else()
+ endif()
+ findorfetch(
+ USE_SYSTEM_PACKAGE
+- OFF
++ ON
+ PACKAGE_NAME
+ absl
+ LIBRARY_NAME
+@@ -123,7 +123,7 @@ findorfetch(
+ add_compile_definitions(EIGEN_MPL2_ONLY)
+ findorfetch(
+ USE_SYSTEM_PACKAGE
+- OFF
++ ON
+ PACKAGE_NAME
+ Eigen3
+ LIBRARY_NAME
+@@ -144,7 +144,7 @@ if(MUJOCO_PYBIND11_DIR)
+ else()
+ findorfetch(
+ USE_SYSTEM_PACKAGE
+- OFF
++ ON
+ PACKAGE_NAME
+ pybind11
+ LIBRARY_NAME
+diff --git a/python/mujoco/__init__.py b/python/mujoco/__init__.py
+index 63e4e59..5351838 100644
+--- a/python/mujoco/__init__.py
++++ b/python/mujoco/__init__.py
+@@ -19,7 +19,7 @@ import os
+ import platform
+ import subprocess
+
+-HEADERS_DIR = os.path.join(os.path.dirname(__file__), 'include')
++HEADERS_DIR = os.path.join('/usr/include/', 'mujoco')
+
+ _MUJOCO_GL_ENABLE = ('enable', 'enabled', 'on', 'true', '1' , '')
+ _MUJOCO_GL_DISABLE = ('disable', 'disabled', 'off', 'false', '0')
+@@ -29,23 +29,19 @@ _MUJOCO_GL_IS_VALID = True
+ _SYSTEM = platform.system()
+ if _SYSTEM == 'Linux':
+ libglew_name = None
+- if _MUJOCO_GL in _MUJOCO_GL_ENABLE + ('glfw', 'glx'):
+- libglew_name = 'libglew.so'
+- elif _MUJOCO_GL == 'egl':
+- libglew_name = 'libglewegl.so'
+- elif _MUJOCO_GL == 'osmesa':
+- libglew_name = 'libglewosmesa.so'
++ if _MUJOCO_GL in _MUJOCO_GL_ENABLE:
++ libglew_name = 'libGLEW.so'
+ elif _MUJOCO_GL not in _MUJOCO_GL_DISABLE:
+ _MUJOCO_GL_IS_VALID = False
+ if libglew_name is not None:
+- ctypes.CDLL(os.path.join(os.path.dirname(__file__), libglew_name),
++ ctypes.CDLL(os.path.join("/usr/lib/", libglew_name),
+ ctypes.RTLD_GLOBAL)
+ ctypes.CDLL(
+- os.path.join(os.path.dirname(__file__), 'libmujoco.so.2.1.3'),
++ os.path.join("/usr/lib/", 'libmujoco.so.2.1.3'),
+ ctypes.RTLD_GLOBAL)
+ else:
+ ctypes.CDLL(
+- os.path.join(os.path.dirname(__file__), 'libmujoco_nogl.so.2.1.3'),
++ os.path.join("/usr/lib/", 'libmujoco_nogl.so.2.1.3'),
+ ctypes.RTLD_GLOBAL)
+ elif _SYSTEM == 'Windows':
+ if _MUJOCO_GL in _MUJOCO_GL_ENABLE + ('glfw', 'wgl'):
+diff --git a/python/setup.py b/python/setup.py
+index 837d5b3..4ec6338 100644
+--- a/python/setup.py
++++ b/python/setup.py
+@@ -137,14 +137,12 @@ class BuildCMakeExtension(build_ext.build_ext):
+ """Uses CMake to build extensions."""
+
+ def run(self):
+- self._mujoco_library_path, self._mujoco_include_path = self._find_mujoco()
++ self._mujoco_library_path, self._mujoco_include_path = "/usr/lib","/usr/include/mujoco"
+ self._configure_cmake()
+ for ext in self.extensions:
+ assert ext.name.startswith(EXT_PREFIX)
+ assert '.' not in ext.name[len(EXT_PREFIX):]
+ self.build_extension(ext)
+- self._copy_external_libraries()
+- self._copy_mujoco_headers()
+
+ def _find_mujoco(self):
+ if MUJOCO_PATH not in os.environ: