Skip to content

{lib}[GCCcore/13.3.0] python-mujoco v3.3.5, MuJoCo v3.3.5, TinyXML-2 v11.0.0, ... - #26538

Open
JarneRenders wants to merge 4 commits into
easybuilders:developfrom
JarneRenders:20260727150356_new_pr_python-mujoco335
Open

{lib}[GCCcore/13.3.0] python-mujoco v3.3.5, MuJoCo v3.3.5, TinyXML-2 v11.0.0, ...#26538
JarneRenders wants to merge 4 commits into
easybuilders:developfrom
JarneRenders:20260727150356_new_pr_python-mujoco335

Conversation

@JarneRenders

Copy link
Copy Markdown
Contributor

(created using eb --new-pr)

…CCcore-13.3.0.eb, TinyXML-2-11.0.0-GCCcore-13.3.0.eb, tinyobjloader-2.0.0rc13-GCCcore-13.3.0.eb, etils-1.14.0-GCCcore-13.3.0.eb, python-glfw-2.10.2-GCCcore-13.3.0.eb and patches: MuJoCo-3.3.5_use_eb_deps.patch
@github-actions github-actions Bot added update 2024a issues & PRs related to 2024a common toolchains labels Jul 27, 2026
@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown

Updated software etils-1.14.0-GCCcore-13.3.0.eb

Diff against etils-1.12.2-GCCcore-13.2.0.eb

easybuild/easyconfigs/e/etils/etils-1.12.2-GCCcore-13.2.0.eb

diff --git a/easybuild/easyconfigs/e/etils/etils-1.12.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/e/etils/etils-1.14.0-GCCcore-13.3.0.eb
index 5cb74b5309..15afbd0abc 100644
--- a/easybuild/easyconfigs/e/etils/etils-1.12.2-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/e/etils/etils-1.14.0-GCCcore-13.3.0.eb
@@ -1,7 +1,7 @@
 easyblock = 'PythonPackage'
 
 name = 'etils'
-version = '1.12.2'
+version = '1.14.0'
 
 homepage = 'https://github.com/google/etils'
 description = """etils (eclectic utils) is an open-source collection of utils for python.
@@ -10,16 +10,16 @@ Each top-level submodule is a self-contained independent module (with its own BU
 meant to be imported individually.
 """
 
-toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
 
 sources = [SOURCE_TAR_GZ]
-checksums = ['c6b9e1f0ce66d1bbf54f99201b08a60ba396d3446d9eb18d4bc39b26a2e1a5ee']
+checksums = ['8136e7f4c4173cd0af0ca5481c4475152f0b8686192951eefa60ee8711e1ede4']
 
 builddependencies = [
-    ('binutils', '2.40'),
+    ('binutils', '2.42'),
 ]
 dependencies = [
-    ('Python', '3.11.5'),
+    ('Python', '3.12.3'),
 ]
 
 moduleclass = 'tools'

Updated software MuJoCo-3.3.5-GCCcore-13.3.0.eb

Diff against MuJoCo-3.3.0-GCCcore-13.2.0.eb

easybuild/easyconfigs/m/MuJoCo/MuJoCo-3.3.0-GCCcore-13.2.0.eb

diff --git a/easybuild/easyconfigs/m/MuJoCo/MuJoCo-3.3.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/MuJoCo/MuJoCo-3.3.5-GCCcore-13.3.0.eb
index 20019cc352..eb00180c75 100644
--- a/easybuild/easyconfigs/m/MuJoCo/MuJoCo-3.3.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/m/MuJoCo/MuJoCo-3.3.5-GCCcore-13.3.0.eb
@@ -1,7 +1,7 @@
 easyblock = 'CMakeMake'
 
 name = 'MuJoCo'
-version = '3.3.0'
+version = '3.3.5'
 
 homepage = 'https://mujoco.org/'
 description = """MuJoCo stands for Multi-Joint dynamics with Contact. It is a general purpose
@@ -10,7 +10,7 @@ biomechanics, graphics and animation, machine learning, and other areas which
 demand fast and accurate simulation of articulated structures interacting with
 their environment."""
 
-toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
 
 source_urls = ['https://github.com/google-deepmind/mujoco/archive/refs/tags']
 
@@ -26,7 +26,7 @@ sources = [
     },
     {
         'source_urls': ['https://github.com/lvandeve/lodepng/archive'],
-        'filename': 'b4ed2cd7ecf61d29076169b49199371456d4f90b.tar.gz',
+        'filename': '17d08dd26cac4d63f43af217ebd70318bfb8189c.tar.gz',
         'extract_cmd': local_extract_cmd_tmpl.format('lodepng-src'),
     },
     {
@@ -34,35 +34,43 @@ sources = [
         'filename': 'f03a1b3ec29b1d7d865691ca8aea4f1eb2c2873d.tar.gz',
         'extract_cmd': local_extract_cmd_tmpl.format('marchingcubecpp-src'),
     },
+    {
+        'source_urls': ['https://github.com/InteractiveComputerGraphics/TriangleMeshDistance/archive'],
+        'filename': '2cb643de1436e1ba8e2be49b07ec5491ac604457.tar.gz',
+        'extract_cmd': local_extract_cmd_tmpl.format('trianglemeshdistance-src'),
+    },
 ]
 patches = [
-    'MuJoCo-3.3.0_use_eb_deps.patch',
+    'MuJoCo-3.3.5_use_eb_deps.patch',
+    'MuJoCo-3.3.5_disable-lld.patch',
 ]
 checksums = [
-    {'3.3.0.tar.gz': '608cd202ac5066096fdc7e5adb322aca2fe7b4d118543a7c4b54dc183a6b3b54'},
+    {'3.3.5.tar.gz': 'ae19ac122b0ec06001a1a49cdb11775d4af3fae90e059a558ab913c5a512715d'},
     {'7931e764a19ef6b21b443376c699bbc9c6d4fba8.tar.gz':
      '479994a86d32e2effcaad64204142000ee6b6b291fd1859ac6710aee8d00a482'},
-    {'b4ed2cd7ecf61d29076169b49199371456d4f90b.tar.gz':
-     'b67e466ba659c07ac775d07dbd97af319cde449ce14abed9ae596df29d888603'},
+    {'17d08dd26cac4d63f43af217ebd70318bfb8189c.tar.gz':
+     '83d828c5478ffe7bad0e8ed80678ef826206becbd8cf70097b6cc4d29549389b'},
     {'f03a1b3ec29b1d7d865691ca8aea4f1eb2c2873d.tar.gz':
      '227c10b2cffe886454b92a0e9ef9f0c9e8e001d00ea156cc37c8fc43055c9ca6'},
-    {'MuJoCo-3.3.0_use_eb_deps.patch': 'd60c4f78f5f59c8fc43c1e9e93580806b86bcd17507c1030e831bece17fbd710'},
+    {'2cb643de1436e1ba8e2be49b07ec5491ac604457.tar.gz':
+     '0221ec6446c1305aa9a9e2ec2e149dbb3993211c77c1f770ad4273ea10035a75'},
+    {'MuJoCo-3.3.5_use_eb_deps.patch': '2b23535c29923144b9cd730ff6c4bb54fac692b07b14dd26fa4c6c3db71980f5'},
+    {'MuJoCo-3.3.5_disable-lld.patch': '595b7c7ccec3ede4a395bf66e2cb446c068ea1268a46e16e177a3725e48d966f'},
 ]
 
 builddependencies = [
-    ('binutils', '2.40'),
-    ('CMake', '3.27.6'),
+    ('Abseil', '20240722.0'),
+    ('binutils', '2.42'),
+    ('CMake', '3.29.3'),
     ('googlebenchmark', '1.9.1'),
-    ('googletest', '1.14.0'),
+    ('googletest', '1.15.2'),
 ]
 dependencies = [
-    ('Abseil', '20240116.1'),
     ('GLFW', '3.4'),
     ('Qhull', '2020.2'),
-    ('SdfLib', '20250125'),
     ('tinyobjloader', '2.0.0rc13'),
     ('TinyXML-2', '11.0.0'),
-    ('X11', '20231019'),
+    ('X11', '20240607'),
 ]
 
 build_shared_libs = True
@@ -86,6 +94,4 @@ sanity_check_paths = {
     'dirs': ['bin', 'include', 'share/mujoco/model'],
 }
 
-sanity_check_commands = ['basic']
-
 moduleclass = 'phys'
Diff against MuJoCo-3.1.4-GCCcore-12.3.0.eb

easybuild/easyconfigs/m/MuJoCo/MuJoCo-3.1.4-GCCcore-12.3.0.eb

diff --git a/easybuild/easyconfigs/m/MuJoCo/MuJoCo-3.1.4-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/MuJoCo/MuJoCo-3.3.5-GCCcore-13.3.0.eb
index fe1f93209e..eb00180c75 100644
--- a/easybuild/easyconfigs/m/MuJoCo/MuJoCo-3.1.4-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/m/MuJoCo/MuJoCo-3.3.5-GCCcore-13.3.0.eb
@@ -1,7 +1,7 @@
-easyblock = 'PackedBinary'
+easyblock = 'CMakeMake'
 
 name = 'MuJoCo'
-version = '3.1.4'
+version = '3.3.5'
 
 homepage = 'https://mujoco.org/'
 description = """MuJoCo stands for Multi-Joint dynamics with Contact. It is a general purpose
@@ -10,39 +10,88 @@ biomechanics, graphics and animation, machine learning, and other areas which
 demand fast and accurate simulation of articulated structures interacting with
 their environment."""
 
-toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
 
-source_urls = ['https://github.com/deepmind/mujoco/releases/download/%(version)s']
-sources = ['%(namelower)s-%(version)s-linux-%(arch)s.tar.gz']
-checksums = ['3bb373e081daaf6bf179d7f83dd8fa39e491a6daa4250a1b7ac42850309cb313']
+source_urls = ['https://github.com/google-deepmind/mujoco/archive/refs/tags']
 
-builddependencies = [
-    ('binutils', '2.40'),
+# Sources otherwise downloaded by CMake FetchContent
+local_extract_cmd_tmpl = "mkdir -p _deps/{0} && tar --strip-components=1 -C _deps/{0} -xf %s"
+sources = [
+    '%(version)s.tar.gz',
+    # Hashes from MUJOCO_DEP_VERSION_* in cmake/MujocoDependencies.cmake
+    {
+        'source_urls': ['https://github.com/danfis/libccd/archive'],
+        'filename': '7931e764a19ef6b21b443376c699bbc9c6d4fba8.tar.gz',
+        'extract_cmd': local_extract_cmd_tmpl.format('ccd-src'),
+    },
+    {
+        'source_urls': ['https://github.com/lvandeve/lodepng/archive'],
+        'filename': '17d08dd26cac4d63f43af217ebd70318bfb8189c.tar.gz',
+        'extract_cmd': local_extract_cmd_tmpl.format('lodepng-src'),
+    },
+    {
+        'source_urls': ['https://github.com/aparis69/MarchingCubeCpp/archive'],
+        'filename': 'f03a1b3ec29b1d7d865691ca8aea4f1eb2c2873d.tar.gz',
+        'extract_cmd': local_extract_cmd_tmpl.format('marchingcubecpp-src'),
+    },
+    {
+        'source_urls': ['https://github.com/InteractiveComputerGraphics/TriangleMeshDistance/archive'],
+        'filename': '2cb643de1436e1ba8e2be49b07ec5491ac604457.tar.gz',
+        'extract_cmd': local_extract_cmd_tmpl.format('trianglemeshdistance-src'),
+    },
+]
+patches = [
+    'MuJoCo-3.3.5_use_eb_deps.patch',
+    'MuJoCo-3.3.5_disable-lld.patch',
+]
+checksums = [
+    {'3.3.5.tar.gz': 'ae19ac122b0ec06001a1a49cdb11775d4af3fae90e059a558ab913c5a512715d'},
+    {'7931e764a19ef6b21b443376c699bbc9c6d4fba8.tar.gz':
+     '479994a86d32e2effcaad64204142000ee6b6b291fd1859ac6710aee8d00a482'},
+    {'17d08dd26cac4d63f43af217ebd70318bfb8189c.tar.gz':
+     '83d828c5478ffe7bad0e8ed80678ef826206becbd8cf70097b6cc4d29549389b'},
+    {'f03a1b3ec29b1d7d865691ca8aea4f1eb2c2873d.tar.gz':
+     '227c10b2cffe886454b92a0e9ef9f0c9e8e001d00ea156cc37c8fc43055c9ca6'},
+    {'2cb643de1436e1ba8e2be49b07ec5491ac604457.tar.gz':
+     '0221ec6446c1305aa9a9e2ec2e149dbb3993211c77c1f770ad4273ea10035a75'},
+    {'MuJoCo-3.3.5_use_eb_deps.patch': '2b23535c29923144b9cd730ff6c4bb54fac692b07b14dd26fa4c6c3db71980f5'},
+    {'MuJoCo-3.3.5_disable-lld.patch': '595b7c7ccec3ede4a395bf66e2cb446c068ea1268a46e16e177a3725e48d966f'},
 ]
 
-# MuJoCo bundles 3 variants of glew using non-standard sonames:
-# - libglew with GLX
-# - libglewegl with EGL
-# - libglewosmesa with OSMESA
-# - Software depending on MuJoCo expect these non-standard sonames, so they should not be removed
-# - libglew and libglewegl seem to work with Mesa and X11 for toolchain GCCcore/11.2.0
-# - libglewosmesa has to be replaced as it links to an old libOSMesa
-
+builddependencies = [
+    ('Abseil', '20240722.0'),
+    ('binutils', '2.42'),
+    ('CMake', '3.29.3'),
+    ('googlebenchmark', '1.9.1'),
+    ('googletest', '1.15.2'),
+]
 dependencies = [
-    ('glew', '2.2.0', '-osmesa'),
+    ('GLFW', '3.4'),
+    ('Qhull', '2020.2'),
+    ('tinyobjloader', '2.0.0rc13'),
+    ('TinyXML-2', '11.0.0'),
+    ('X11', '20240607'),
 ]
 
-postinstallcmds = [
-    # replace bundled libglewosmesa.so with glew libs from EB
-    "ln -sf $EBROOTGLEW/lib64/libGLEW.so %(installdir)s/lib/libglewosmesa.so",
-]
+build_shared_libs = True
+# Avoid test failure due to different vectorization between C/C++
+# see https://github.com/google-deepmind/mujoco/issues/2515
+preconfigopts = 'CXXFLAGS="$CXXFLAGS -ffp-contract=off" '
+
+configopts = ' '.join([
+    '-DMUJOCO_SAMPLES_USE_SYSTEM_GLFW=ON',
+    '-DMUJOCO_SIMULATE_USE_SYSTEM_GLFW=ON',
+    '-DMUJOCO_TEST_PYTHON_UTIL=OFF',
+    '-DFETCHCONTENT_FULLY_DISCONNECTED=ON',
+    '-DFETCHCONTENT_BASE_DIR=%(builddir)s/_deps',
+])
+
+runtest = True
 
 sanity_check_paths = {
     'files': ['bin/basic', 'bin/record', 'bin/simulate',
               'lib/libmujoco.%s' % SHLIB_EXT],
-    'dirs': ['include', 'model', 'sample'],
+    'dirs': ['bin', 'include', 'share/mujoco/model'],
 }
 
-sanity_check_commands = ['basic']
-
 moduleclass = 'phys'

Updated software python-glfw-2.10.2-GCCcore-13.3.0.eb

Diff against python-glfw-2.8.0-GCCcore-13.2.0.eb

easybuild/easyconfigs/p/python-glfw/python-glfw-2.8.0-GCCcore-13.2.0.eb

diff --git a/easybuild/easyconfigs/p/python-glfw/python-glfw-2.8.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/python-glfw/python-glfw-2.10.2-GCCcore-13.3.0.eb
index 4f67e28817..4d6ba21356 100644
--- a/easybuild/easyconfigs/p/python-glfw/python-glfw-2.8.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/p/python-glfw/python-glfw-2.10.2-GCCcore-13.3.0.eb
@@ -1,26 +1,26 @@
-easyblock = 'PythonPackage'
+easyblock = 'PythonBundle'
 
 name = 'python-glfw'
-version = '2.8.0'
+version = '2.10.2'
 
-homepage = 'https://github.com/google/etils'
+homepage = 'https://github.com/FlorianRhiem/pyGLFW'
 description = """This module provides Python bindings for GLFW (on GitHub: glfw/glfw).
 It is a ctypes wrapper which keeps very close to the original GLFW API."""
 
-toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
-
-source_urls = ['https://pypi.python.org/packages/source/g/glfw']
-sources = ['glfw-%(version)s.tar.gz']
-checksums = ['90e90d328b0b26fed6e1631d21801e2d8a7a0c5dcb480e733c177567ec9666f0']
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
 
 builddependencies = [
-    ('binutils', '2.40'),
+    ('binutils', '2.42'),
 ]
 dependencies = [
-    ('Python', '3.11.5'),
+    ('Python', '3.12.3'),
     ('GLFW', '3.4'),
 ]
 
-options = {'modulename': 'glfw'}
+exts_list = [
+    ('glfw', version, {
+        'checksums': ['5d2cf97c66bc42a6b583be0e307eae5a3945438322e2ed0c5e4f14dc251d693d'],
+    }),
+]
 
 moduleclass = 'tools'

Updated software python-mujoco-3.3.5-gfbf-2024a.eb

Diff against python-mujoco-3.3.0-gfbf-2023b.eb

easybuild/easyconfigs/p/python-mujoco/python-mujoco-3.3.0-gfbf-2023b.eb

diff --git a/easybuild/easyconfigs/p/python-mujoco/python-mujoco-3.3.0-gfbf-2023b.eb b/easybuild/easyconfigs/p/python-mujoco/python-mujoco-3.3.5-gfbf-2024a.eb
index 43dc18e325..b8a17e2d74 100644
--- a/easybuild/easyconfigs/p/python-mujoco/python-mujoco-3.3.0-gfbf-2023b.eb
+++ b/easybuild/easyconfigs/p/python-mujoco/python-mujoco-3.3.5-gfbf-2024a.eb
@@ -1,7 +1,7 @@
-easyblock = 'PythonPackage'
+easyblock = 'PythonBundle'
 
 name = 'python-mujoco'
-version = '3.3.0'
+version = '3.3.5'
 
 homepage = 'https://www.mujoco.org'
 description = """
@@ -11,48 +11,43 @@ constants, and enumerations. Structs are provided as Python classes, with
 Pythonic initialization and deletion semantics.
 """
 
-toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchain = {'name': 'gfbf', 'version': '2024a'}
 
 builddependencies = [
     ('Eigen', '3.4.0'),
-    ('pybind11', '2.11.1'),
-    ('CMake', '3.27.6'),
+    ('pybind11', '2.12.0'),
+    ('CMake', '3.29.3'),
+    ('setuptools', '80.9.0'),
+    ('Abseil', '20240722.0'),
 ]
 
 dependencies = [
-    ('Python', '3.11.5'),
+    ('Python', '3.12.3'),
     ('absl-py', '2.1.0'),
-    ('etils', '1.12.2'),
-    ('python-glfw', '2.8.0'),
-    ('MuJoCo', '3.3.0'),
+    ('etils', '1.14.0'),
+    ('python-glfw', '2.10.2'),
+    ('MuJoCo', '3.3.5'),
     ('PyOpenGL', '3.1.9'),
-    ('SciPy-bundle', '2023.11'),
+    ('SciPy-bundle', '2024.05'),
 ]
 
-
-options = {'modulename': 'mujoco'}
-source_urls = ['https://pypi.python.org/packages/source/m/mujoco']
 local_extract_cmd_tmpl = "mkdir -p %(builddir)s/_deps/{0} && tar --strip-components=1 -C %(builddir)s/_deps/{0} -xf %s"
-sources = [
-    'mujoco-%(version)s.tar.gz',
-    # Hashes from MUJOCO_DEP_VERSION_* in mujoco/simulate/CMakeLists.txt
-    {
+
+# Hash from MUJOCO_DEP_VERSION_lodepng in mujoco/simulate/CMakeLists.txt
+components = [
+    ('lodepng', 'b4ed2cd7ecf61d29076169b49199371456d4f90b', {
+        'easyblock': 'Binary',
         'source_urls': ['https://github.com/lvandeve/lodepng/archive'],
-        'filename': 'b4ed2cd7ecf61d29076169b49199371456d4f90b.tar.gz',
-        'extract_cmd': local_extract_cmd_tmpl.format('lodepng-src'),
-    },
-]
-patches = [
-    'python-mujoco-3.3.0_fix-ogl-use-after-free.patch',
-    'python-mujoco-3.3.0_use_eb_deps.patch',
-]
-checksums = [
-    {'mujoco-3.3.0.tar.gz': '0fb12ab715bc2b6d2394a6330b8c3a1dd95b0f3ba812bfe4f6c91e0a1ca3ad0f'},
-    {'b4ed2cd7ecf61d29076169b49199371456d4f90b.tar.gz':
-     'b67e466ba659c07ac775d07dbd97af319cde449ce14abed9ae596df29d888603'},
-    {'python-mujoco-3.3.0_fix-ogl-use-after-free.patch':
-     'a0098aa9633ec3849ded3d886c957c5802a872f74970bdc5456020cd6ccc86d9'},
-    {'python-mujoco-3.3.0_use_eb_deps.patch': 'bed192acb9aab3d9dbd674c0faafc981a92791385dac300cca5ca80d7ca04991'},
+        'sources': [{
+            'filename': 'b4ed2cd7ecf61d29076169b49199371456d4f90b.tar.gz',
+            'extract_cmd': local_extract_cmd_tmpl.format('lodepng-src'),
+        }],
+        'checksums': [
+            {'b4ed2cd7ecf61d29076169b49199371456d4f90b.tar.gz':
+             'b67e466ba659c07ac775d07dbd97af319cde449ce14abed9ae596df29d888603'},
+        ],
+        'install_cmd': '#',
+    }),
 ]
 
 local_cmake_opts = ' '.join([
@@ -63,8 +58,30 @@ local_cmake_opts = ' '.join([
     '-DMUJOCO_SIMULATE_USE_SYSTEM_GLFW=ON',
 ])
 
-prebuildopts = 'MUJOCO_PATH="$EBROOTMUJOCO" MUJOCO_PLUGIN_PATH="$EBROOTMUJOCO/bin/mujoco_plugin"'
-prebuildopts += f' MUJOCO_CMAKE_ARGS="{local_cmake_opts}"'
-preinstallopts = prebuildopts
+exts_list = [
+    ('mujoco', version, {
+        'source_urls': ['https://pypi.python.org/packages/source/m/mujoco'],
+        'sources': ['mujoco-%(version)s.tar.gz'],
+        'patches': [
+            'python-mujoco-3.3.0_fix-ogl-use-after-free.patch',
+            'python-mujoco-3.3.0_use_eb_deps.patch',
+            'python-mujoco-3.3.5_disable-lld.patch',
+        ],
+        'checksums': [
+            {'mujoco-3.3.5.tar.gz': 'f9fc6550fc9ed9768223db2d7b3cc32b5a02eb9e887282b40e451c266af16a46'},
+            {'python-mujoco-3.3.0_fix-ogl-use-after-free.patch':
+             'a0098aa9633ec3849ded3d886c957c5802a872f74970bdc5456020cd6ccc86d9'},
+            {'python-mujoco-3.3.0_use_eb_deps.patch':
+             'bed192acb9aab3d9dbd674c0faafc981a92791385dac300cca5ca80d7ca04991'},
+            {'python-mujoco-3.3.5_disable-lld.patch':
+             '9389c76aca0708a57c75168fb48975c8783d20d3ea94947a484ec67060afb69a'},
+        ],
+        'preinstallopts': (
+            "sed -i '/^license = /d' pyproject.toml && "
+            'MUJOCO_PATH="$EBROOTMUJOCO" MUJOCO_PLUGIN_PATH="$EBROOTMUJOCO/bin/mujoco_plugin" '
+            f'MUJOCO_CMAKE_ARGS="{local_cmake_opts}"'
+        ),
+    }),
+]
 
 moduleclass = 'lib'
Diff against python-mujoco-3.1.4-foss-2023a.eb

easybuild/easyconfigs/p/python-mujoco/python-mujoco-3.1.4-foss-2023a.eb

diff --git a/easybuild/easyconfigs/p/python-mujoco/python-mujoco-3.1.4-foss-2023a.eb b/easybuild/easyconfigs/p/python-mujoco/python-mujoco-3.3.5-gfbf-2024a.eb
index 18f72c5c7b..b8a17e2d74 100644
--- a/easybuild/easyconfigs/p/python-mujoco/python-mujoco-3.1.4-foss-2023a.eb
+++ b/easybuild/easyconfigs/p/python-mujoco/python-mujoco-3.3.5-gfbf-2024a.eb
@@ -1,7 +1,7 @@
 easyblock = 'PythonBundle'
 
 name = 'python-mujoco'
-version = '3.1.4'
+version = '3.3.5'
 
 homepage = 'https://www.mujoco.org'
 description = """
@@ -11,43 +11,77 @@ constants, and enumerations. Structs are provided as Python classes, with
 Pythonic initialization and deletion semantics.
 """
 
-toolchain = {'name': 'foss', 'version': '2023a'}
+toolchain = {'name': 'gfbf', 'version': '2024a'}
 
 builddependencies = [
-    ('CMake', '3.26.3'),
     ('Eigen', '3.4.0'),
-    ('pybind11', '2.11.1'),
+    ('pybind11', '2.12.0'),
+    ('CMake', '3.29.3'),
+    ('setuptools', '80.9.0'),
+    ('Abseil', '20240722.0'),
 ]
 
 dependencies = [
-    ('Python', '3.11.3'),
-    ('SciPy-bundle', '2023.07'),
-    ('Abseil', '20230125.3'),
-    ('MuJoCo', '3.1.4'),
-    ('GLFW', '3.4'),
-    ('PyOpenGL', '3.1.7'),
+    ('Python', '3.12.3'),
+    ('absl-py', '2.1.0'),
+    ('etils', '1.14.0'),
+    ('python-glfw', '2.10.2'),
+    ('MuJoCo', '3.3.5'),
+    ('PyOpenGL', '3.1.9'),
+    ('SciPy-bundle', '2024.05'),
 ]
 
-exts_list = [
-    ('absl-py', '2.1.0', {
-        'modulename': 'absl',
-        'checksums': ['7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff'],
-    }),
-    ('glfw', '2.7.0', {
-        'checksums': ['0e209ad38fa8c5be67ca590d7b17533d95ad1eb57d0a3f07b98131db69b79000'],
-    }),
-    ('etils', '1.8.0', {
-        'checksums': ['fb478f57fec202e260e54c9192b317692fd63db2d11d993e70bcdffa29cccd58'],
+local_extract_cmd_tmpl = "mkdir -p %(builddir)s/_deps/{0} && tar --strip-components=1 -C %(builddir)s/_deps/{0} -xf %s"
+
+# Hash from MUJOCO_DEP_VERSION_lodepng in mujoco/simulate/CMakeLists.txt
+components = [
+    ('lodepng', 'b4ed2cd7ecf61d29076169b49199371456d4f90b', {
+        'easyblock': 'Binary',
+        'source_urls': ['https://github.com/lvandeve/lodepng/archive'],
+        'sources': [{
+            'filename': 'b4ed2cd7ecf61d29076169b49199371456d4f90b.tar.gz',
+            'extract_cmd': local_extract_cmd_tmpl.format('lodepng-src'),
+        }],
+        'checksums': [
+            {'b4ed2cd7ecf61d29076169b49199371456d4f90b.tar.gz':
+             'b67e466ba659c07ac775d07dbd97af319cde449ce14abed9ae596df29d888603'},
+        ],
+        'install_cmd': '#',
     }),
+]
+
+local_cmake_opts = ' '.join([
+    '-DFETCHCONTENT_FULLY_DISCONNECTED=ON',
+    '-DFETCHCONTENT_BASE_DIR=%(builddir)s/_deps',
+    '-DMUJOCO_PYTHON_USE_SYSTEM_PYBIND11=ON',
+    '-DMUJOCO_SIMULATE_USE_SYSTEM_MUJOCO=ON',
+    '-DMUJOCO_SIMULATE_USE_SYSTEM_GLFW=ON',
+])
+
+exts_list = [
     ('mujoco', version, {
-        'patches': ['python-mujoco-3.1.4_use_eb_deps.patch'],
-        'preinstallopts': 'MUJOCO_PATH="$EBROOTMUJOCO" MUJOCO_PLUGIN_PATH="$EBROOTMUJOCO/bin/mujoco_plugin"',
+        'source_urls': ['https://pypi.python.org/packages/source/m/mujoco'],
+        'sources': ['mujoco-%(version)s.tar.gz'],
+        'patches': [
+            'python-mujoco-3.3.0_fix-ogl-use-after-free.patch',
+            'python-mujoco-3.3.0_use_eb_deps.patch',
+            'python-mujoco-3.3.5_disable-lld.patch',
+        ],
         'checksums': [
-            {'mujoco-3.1.4.tar.gz': '19d78bd7332b8bf02b8d7ca35d381a9f8f1654f4c70c0d7f499c6d4d807c4059'},
-            {'python-mujoco-3.1.4_use_eb_deps.patch':
-             '2160f00996011ff31faaf566d1cb0c0ae4fe49b3c36c29e860b34a61fa732b55'},
+            {'mujoco-3.3.5.tar.gz': 'f9fc6550fc9ed9768223db2d7b3cc32b5a02eb9e887282b40e451c266af16a46'},
+            {'python-mujoco-3.3.0_fix-ogl-use-after-free.patch':
+             'a0098aa9633ec3849ded3d886c957c5802a872f74970bdc5456020cd6ccc86d9'},
+            {'python-mujoco-3.3.0_use_eb_deps.patch':
+             'bed192acb9aab3d9dbd674c0faafc981a92791385dac300cca5ca80d7ca04991'},
+            {'python-mujoco-3.3.5_disable-lld.patch':
+             '9389c76aca0708a57c75168fb48975c8783d20d3ea94947a484ec67060afb69a'},
         ],
+        'preinstallopts': (
+            "sed -i '/^license = /d' pyproject.toml && "
+            'MUJOCO_PATH="$EBROOTMUJOCO" MUJOCO_PLUGIN_PATH="$EBROOTMUJOCO/bin/mujoco_plugin" '
+            f'MUJOCO_CMAKE_ARGS="{local_cmake_opts}"'
+        ),
     }),
 ]
 
-moduleclass = 'phys'
+moduleclass = 'lib'

Updated software TinyXML-2-11.0.0-GCCcore-13.3.0.eb

Diff against TinyXML-2-11.0.0-GCCcore-13.2.0.eb

easybuild/easyconfigs/t/TinyXML-2/TinyXML-2-11.0.0-GCCcore-13.2.0.eb

diff --git a/easybuild/easyconfigs/t/TinyXML-2/TinyXML-2-11.0.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/t/TinyXML-2/TinyXML-2-11.0.0-GCCcore-13.3.0.eb
index 6f6b20b831..f700c3d7a3 100644
--- a/easybuild/easyconfigs/t/TinyXML-2/TinyXML-2-11.0.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/t/TinyXML-2/TinyXML-2-11.0.0-GCCcore-13.3.0.eb
@@ -9,7 +9,7 @@ that can be easily integrated into other programs.
 It parses an XML document, and builds from that a Document Object Model (DOM) that can be read, modified, and saved.
 """
 
-toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/leethomason/tinyxml2/archive/refs/tags']
@@ -17,9 +17,9 @@ sources = ['%(version)s.tar.gz']
 checksums = ['5556deb5081fb246ee92afae73efd943c889cef0cafea92b0b82422d6a18f289']
 
 builddependencies = [
-    ('binutils', '2.40'),
-    ('CMake', '3.27.6'),
-    ('Ninja', '1.11.1'),
+    ('binutils', '2.42'),
+    ('CMake', '3.29.3'),
+    ('Ninja', '1.12.1'),
 ]
 
 build_shared_libs = True

Updated software tinyobjloader-2.0.0rc13-GCCcore-13.3.0.eb

Diff against tinyobjloader-2.0.0rc13-GCCcore-13.2.0.eb

easybuild/easyconfigs/t/tinyobjloader/tinyobjloader-2.0.0rc13-GCCcore-13.2.0.eb

diff --git a/easybuild/easyconfigs/t/tinyobjloader/tinyobjloader-2.0.0rc13-GCCcore-13.2.0.eb b/easybuild/easyconfigs/t/tinyobjloader/tinyobjloader-2.0.0rc13-GCCcore-13.3.0.eb
index d6e8022611..f4934681e9 100644
--- a/easybuild/easyconfigs/t/tinyobjloader/tinyobjloader-2.0.0rc13-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/t/tinyobjloader/tinyobjloader-2.0.0rc13-GCCcore-13.3.0.eb
@@ -7,16 +7,16 @@ homepage = 'https://www.glfw.org'
 description = """Tiny but powerful single file wavefront obj loader written in C++03.
 It can parse over 10M polygons with moderate memory and time."""
 
-toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
 
 source_urls = [GITHUB_LOWER_SOURCE]
 sources = ['v%(version)s.tar.gz']
 checksums = ['0feb92b838f8ce4aa6eb0ccc32dff30cb64a891e0ec3bde837fca49c78d44334']
 
 builddependencies = [
-    ('binutils', '2.40'),
-    ('CMake', '3.27.6'),
-    ('Ninja', '1.11.1'),
+    ('binutils', '2.42'),
+    ('CMake', '3.29.3'),
+    ('Ninja', '1.12.1'),
 ]
 
 build_shared_libs = True

@JarneRenders

JarneRenders commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

pip list check failed for python-mujoco and python-glfw

Test report by @JarneRenders
FAILED
Build succeeded for 7 out of 9 (total: 13 mins 18 secs) (6 easyconfigs in total)
node500.anansi.os - Linux Rocky Linux 9.8 (Blue Onyx), x86_64, Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz, Python 3.9.25
See https://gist.github.com/JarneRenders/16ac2a3c6253319529dbd7fd4adcf90f for a full test report.

@JarneRenders

Copy link
Copy Markdown
Contributor Author

Test report by @JarneRenders
FAILED
Build succeeded for 5 out of 6 (total: 9 mins 31 secs) (6 easyconfigs in total)
node500.anansi.os - Linux Rocky Linux 9.8 (Blue Onyx), x86_64, Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz, Python 3.9.25
See https://gist.github.com/JarneRenders/23af4381c50247026253f34d2db5ad92 for a full test report.

@JarneRenders

Copy link
Copy Markdown
Contributor Author

Test report by @JarneRenders
SUCCESS
Build succeeded for 6 out of 6 (total: 9 mins 51 secs) (6 easyconfigs in total)
node500.anansi.os - Linux Rocky Linux 9.8 (Blue Onyx), x86_64, Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz, Python 3.9.25
See https://gist.github.com/JarneRenders/be391c4fcfaf51499f001c183fde1851 for a full test report.

@JarneRenders

Copy link
Copy Markdown
Contributor Author

Test report by @JarneRenders
SUCCESS
Build succeeded for 6 out of 6 (total: 9 mins 12 secs) (6 easyconfigs in total)
node401.hydra.os - Linux Rocky Linux 9.8 (Blue Onyx), x86_64, AMD EPYC 7282 16-Core Processor, Python 3.9.25
See https://gist.github.com/JarneRenders/61ddd684675ab9187ce8d898a9d76007 for a full test report.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2024a issues & PRs related to 2024a common toolchains update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant