Skip to content
84 changes: 84 additions & 0 deletions easybuild/easyconfigs/l/LLVM/LLVM-20.1.7-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -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'),
Comment thread
casparvl marked this conversation as resolved.
('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'
35 changes: 35 additions & 0 deletions easybuild/easyconfigs/l/lit/lit-18.1.8-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -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'
67 changes: 67 additions & 0 deletions easybuild/easyconfigs/m/Mesa/Mesa-25.1.3-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -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'),
Comment thread
Micket marked this conversation as resolved.
('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'
126 changes: 126 additions & 0 deletions easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.18-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -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'