diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-20.1.7-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/LLVM/LLVM-20.1.7-GCCcore-14.2.0.eb new file mode 100644 index 000000000000..2264e5ee9082 --- /dev/null +++ b/easybuild/easyconfigs/l/LLVM/LLVM-20.1.7-GCCcore-14.2.0.eb @@ -0,0 +1,84 @@ +name = 'LLVM' +version = '20.1.7' + + +homepage = "https://llvm.org/" +description = """The LLVM Core libraries provide a modern source- and target-independent + optimizer, along with code generation support for many popular CPUs + (as well as some less common ones!) These libraries are built around a well + specified code representation known as the LLVM intermediate representation + ("LLVM IR"). The LLVM Core libraries are well documented, and it is + particularly easy to invent your own language (or port an existing compiler) + to use LLVM as an optimizer and code generator.""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} +toolchainopts = { + # 'cstd': 'gnu++11', + 'pic': True +} + +source_urls = ['https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/'] +sources = [ + 'llvm-project-%(version)s.src.tar.xz', +] +patches = [ + 'LLVM-18.1.8_envintest.patch', + 'LLVM-19.1.7_libomptarget_tests.patch', + 'LLVM-19.1.7_clang_rpathwrap_test.patch', +] +checksums = [ + {'llvm-project-20.1.7.src.tar.xz': 'cd8fd55d97ad3e360b1d5aaf98388d1f70dfffb7df36beee478be3b839ff9008'}, + {'LLVM-18.1.8_envintest.patch': '8e25dfab8a29a860717b4bd2d8cdd0e795433766d7fffbda32d06a2bde47058d'}, + {'LLVM-19.1.7_libomptarget_tests.patch': '79a67c118d034cfb74e255696369150c73432d2b422f4834efacb26f7904edbf'}, + {'LLVM-19.1.7_clang_rpathwrap_test.patch': '5ee6a87ec8ff1c8b736ffe0513aa2098bd2b83a1ffc647a1ad2cf966f567e8a1'}, +] + +builddependencies = [ + ('binutils', '2.42'), + ('Python', '3.13.1'), + ('CMake', '3.31.3'), + ('psutil', '7.0.0'), # Needed to enable test timeout in lit + ('lit', '18.1.8'), + ('git', '2.49.0'), +] + +dependencies = [ + ('libxml2', '2.13.4'), + ('ncurses', '6.5'), + ('zlib', '1.3.1'), + ('Z3', '4.13.4'), + ('zstd', '1.5.6'), +] + +build_shared_libs = True + +bootstrap = True +full_llvm = False +build_clang_extras = True +build_runtimes = True +build_lld = True +build_lldb = True +build_bolt = True +build_openmp = True +build_openmp_tools = True +build_openmp_offload = True +use_polly = True + +python_bindings = True + +build_targets = ['all'] +# disable_werror = True + +skip_all_tests = False +skip_sanitizer_tests = True +test_suite_max_failed = 10 +test_suite_timeout_single = 5 * 60 +test_suite_ignore_patterns = [ + "X86/register-fragments-bolt-symbols.s", + "modularize/ProblemsCoverage.modularize", + "Driver/atomic.f90", + "Driver/gcc-toolchain-install-dir.f90", + "api_tests/test_ompd_get_icv_from_scope.c", +] + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/l/lit/lit-18.1.8-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/lit/lit-18.1.8-GCCcore-14.2.0.eb new file mode 100644 index 000000000000..b8a830d9c568 --- /dev/null +++ b/easybuild/easyconfigs/l/lit/lit-18.1.8-GCCcore-14.2.0.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonBundle' + +name = 'lit' +version = '18.1.8' + +homepage = 'https://llvm.org/docs/CommandGuide/lit.html' +description = """lit is a portable tool for executing LLVM and Clang style test suites, summarizing their results, and +providing indication of failures.""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('Python', '3.13.1'), +] + +exts_list = [ + ('ptyprocess', '0.7.0', { + 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl', + 'checksums': ['4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35'], + }), + ('pexpect', '4.9.0', { + 'checksums': ['ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f'], + }), + (name, version, { + 'checksums': ['47c174a186941ae830f04ded76a3444600be67d5e5fb8282c3783fba671c4edb'], + }), +] + +sanity_check_commands = ['lit -h'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-25.1.3-GCCcore-14.2.0.eb b/easybuild/easyconfigs/m/Mesa/Mesa-25.1.3-GCCcore-14.2.0.eb new file mode 100644 index 000000000000..5754c7e7ee0d --- /dev/null +++ b/easybuild/easyconfigs/m/Mesa/Mesa-25.1.3-GCCcore-14.2.0.eb @@ -0,0 +1,67 @@ +# This is a Mesa using software rendering via Gallium-DRI and libglvnd +# - libglvnd can dynamically choose between system-installed NVidia +# libGLX/libEGL or the software renderers provided by this Mesa +# - EGL is available +# +# Software renderers enabled (swr deprecated as of v22): +# - llvmpipe: uses LLVM for JIT code generation (multi-threaded) +# - softpipe: a reference Gallium driver +# Default renderer is llvmpipe. To use softpipe, set the environment +# variable GALLIUM_DRIVER=softpipe + +name = 'Mesa' +version = '25.1.3' + +homepage = 'https://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = [ + 'https://archive.mesa3d.org/', + 'https://archive.mesa3d.org/older-versions/%(version_major)s.x/', +] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['ffcb6cadb5fd356d56008e6308641dfe4b2929f30139f6585436ca6e3cddba7f'] + +builddependencies = [ + ('binutils', '2.42'), + ('Meson', '1.6.1'), + ('Ninja', '1.12.1'), + ('flex', '2.6.4'), + ('Bison', '3.8.2'), + ('pkgconf', '2.3.0'), + ('Mako', '1.3.10'), + ('libxml2', '2.13.4'), + ('expat', '2.6.4'), + ('gettext', '0.24'), + ('glslang-SPIRV', '15.3.0'), + ('PyYAML', '6.0.2'), +] + +dependencies = [ + ('zlib', '1.3.1'), + ('zstd', '1.5.6'), + ('libdrm', '2.4.125'), + ('libglvnd', '1.7.0'), + ('libunwind', '1.8.1'), + ('LLVM', '20.1.7'), + ('X11', '20250521'), + ('Wayland', '1.23.92'), +] + +configopts = "-Dplatforms=x11,wayland -Dvulkan-drivers='swrast' -Dvulkan-layers='device-select' " +configopts += "-Dllvm=enabled -Dshared-llvm=enabled -Dlibunwind=enabled -Degl=enabled -Dglvnd=enabled -Dglx=auto " +configopts += "-Dvideo-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc,av1dec,av1enc,vp9dec " + +# Easybuild will automatically add appropriate Gallium drivers for the processor architecture of the host +# If you need a different configuration, it possible to override those values by setting your own configopts +# configopts += " -Dgallium-drivers=auto" + +# symlink indirect to mesa GLX, similar to Debian, see +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881789 +# This helps in certain X forwarding situations (e.g. XQuartz) +postinstallcmds = ["ln -s libGLX_mesa.so.0 %(installdir)s/lib/libGLX_indirect.so.0"] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.18-GCCcore-14.2.0.eb b/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.18-GCCcore-14.2.0.eb new file mode 100644 index 000000000000..4f1021340606 --- /dev/null +++ b/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.18-GCCcore-14.2.0.eb @@ -0,0 +1,126 @@ +easyblock = 'Bundle' + +name = 'Xvfb' +version = '21.1.18' + +homepage = 'https://www.x.org/releases/X11R7.6/doc/man/man1/Xvfb.1.xhtml' +description = """Xvfb is an X server that can run on machines with no display hardware and no physical input devices. + It emulates a dumb framebuffer using virtual memory.""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +builddependencies = [ + ('binutils', '2.42'), + ('pkgconf', '2.3.0'), + ('Python', '3.13.1'), + ('Meson', '1.6.1'), + ('Ninja', '1.12.1'), + ('libxslt', '1.1.42'), + ('gettext', '0.24'), + ('Bison', '3.8.2'), +] + +dependencies = [ + ('X11', '20250521'), + ('pixman', '0.46.2'), + ('libdrm', '2.4.125'), + ('Mesa', '25.1.3'), + ('nettle', '3.10.1'), + ('libunwind', '1.8.1'), + ('XZ', '5.6.3'), +] + +default_easyblock = 'ConfigureMake' + +local_xvfb_configopts = "--enable-xvfb --disable-xorg --disable-xnest --disable-xwin " +local_xvfb_configopts += "--disable-dri --disable-dri2 --disable-dri3 --disable-libunwind " +local_xvfb_configopts += "--with-fontrootdir=%(installdir)s/share/fonts/X11" + +# use 'make V=1' to see compiler commands +local_xvfb_buildopts = "V=1 " + +# use static libraries for nettle & libunwind, so avoid errors like "No rule to make target '-lnettle'" +local_xvfb_buildopts += 'SHA1_LIBS="$EBROOTNETTLE/lib*/libnettle.a" ' +local_xvfb_buildopts += 'LIBUNWIND_LIBS="$EBROOTLIBUNWIND/lib*/libunwind.a $EBROOTXZ/lib*/liblzma.a"' + +default_component_specs = { + 'sources': [SOURCE_TAR_GZ], + 'start_dir': '%(name)s-%(version)s', +} + +local_font_misc_preconfigopts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && " +local_font_misc_preconfigopts += "export PATH=%(installdir)s/bin:$PATH && " + +components = [ + ('mkfontscale', '1.2.3', { + 'source_urls': ['https://www.x.org/archive/individual/app/'], + 'checksums': ['3a026b468874eb672a1d0a57dbd3ddeda4f0df09886caf97d30097b70c2df3f8'], + }), + ('mkfontdir', '1.0.7', { + 'source_urls': ['https://www.x.org/archive/individual/app/'], + 'checksums': ['bccc5fb7af1b614eabe4a22766758c87bfc36d66191d08c19d2fa97674b7b5b7'], + }), + ('bdftopcf', '1.1', { + 'source_urls': ['https://www.x.org/archive/individual/app/'], + 'checksums': ['699d1a62012035b1461c7f8e3f05a51c8bd6f28f348983249fb89bbff7309b47'], + }), + ('font-util', '1.4.1', { + 'source_urls': ['https://www.x.org/archive/individual/font/'], + 'checksums': ['f029ae80cdd75d89bee7f7af61c21e07982adfb9f72344a158b99f91f77ef5ed'], + }), + ('font-misc-misc', '1.1.3', { + 'source_urls': ['https://www.x.org/archive/individual/font/'], + 'checksums': ['bece4a9482b3cb6f7fad2164fd3b394d22dfe1ad2f96f60030a703bcff30f5a5'], + 'preconfigopts': local_font_misc_preconfigopts, + }), + ('xkbcomp', '1.4.7', { + 'source_urls': ['https://www.x.org/archive/individual/app/'], + 'checksums': ['00cecc490fcbe2f789cf13c408c459673c2c33ab758d802677321cffcda35373'], + }), + ('xkeyboard-config', '2.45', { + 'easyblock': 'MesonNinja', + 'source_urls': ['https://www.x.org/archive/individual/data/xkeyboard-config/'], + 'sources': [SOURCE_TAR_XZ], + 'checksums': ['169e075a92d957a57787c199e84e359df2931b7196c1c5b4a3d576ee6235a87c'], + 'configopts': '-Dxorg-rules-symlinks=true', + }), + ('xauth', '1.1.3', { + 'source_urls': ['https://www.x.org/releases/individual/app/'], + 'checksums': ['88c288e0a30bf071631118644f5232cae3a79713a7c82dd31a236e8e2c6fca15'], + }), + ('libxcvt', '0.1.3', { + 'easyblock': 'MesonNinja', + 'source_urls': ['https://www.x.org/archive/individual/lib/'], + 'sources': [SOURCE_TAR_XZ], + 'checksums': ['a929998a8767de7dfa36d6da4751cdbeef34ed630714f2f4a767b351f2442e01'], + }), + (name, version, { + 'source_urls': ['https://www.x.org/releases/individual/xserver/'], + 'sources': ['xorg-server-%(version)s.tar.gz'], + 'patches': [('xvfb-run', '.')], + 'checksums': [ + 'c8591ceb70b177440062406542fe52ba60212f217f27f8f802dd20373ca9e74b', # xorg-server-21.1.14.tar.gz + 'fd6d13182b77871d4f65fccdaebb8a72387a726426066d3f8e6aa26b010ea0e8', # xvfb-run + ], + 'start_dir': 'xorg-server-%(version)s', + 'configopts': local_xvfb_configopts, + 'buildopts': local_xvfb_buildopts, + 'installopts': local_xvfb_buildopts, + }), +] + +# enable exec permissions for xvfb-run after copying; +# need to also enable user write permissions on xvfb-run to ensure that copying with preserved permissions works +postinstallcmds = ["chmod u+w xvfb-run && cp -a xvfb-run %(installdir)s/bin/ && chmod a+x %(installdir)s/bin/xvfb-run"] + +sanity_check_paths = { + 'files': ['bin/Xvfb', 'bin/xvfb-run'], + 'dirs': ['lib/xorg', 'share/fonts/X11/misc', 'share/fonts/X11/util'], +} + +sanity_check_commands = [ + "xvfb-run --help", + "xvfb-run --error-file %(builddir)s/xvfb-run-test.err echo hello", +] + +moduleclass = 'vis'