Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{lib}[GCCcore/13.2.0] Mesa v23.19, libunwind v1.6.2, LLVM v17.0.3, libdrm v2.4.117, libGLU v9.0.3, libglvnd v1.7.0 #19057

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions easybuild/easyconfigs/l/LLVM/LLVM-16.0.6-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name = 'LLVM'
version = '16.0.6'

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': '13.2.0'}
toolchainopts = {'cstd': 'gnu++11', 'pic': True}

source_urls = ['https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/']
sources = [
'llvm-%(version)s.src.tar.xz',
'cmake-%(version)s.src.tar.xz',
'third-party-%(version)s.src.tar.xz',
]
checksums = [
{'llvm-16.0.6.src.tar.xz': 'e91db44d1b3bb1c33fcea9a7d1f2423b883eaa9163d3d56ca2aa6d2f0711bc29'},
{'cmake-16.0.6.src.tar.xz': '39d342a4161095d2f28fb1253e4585978ac50521117da666e2b1f6f28b62f514'},
{'third-party-16.0.6.src.tar.xz': '15f5b9aeeba938530af977d5f9205612737a091a7f0f6c8075df8723b7713f70'},
]

builddependencies = [
('binutils', '2.40'),
('CMake', '3.27.6'),
('Python', '3.11.5'),
]

dependencies = [
('ncurses', '6.4'),
('zlib', '1.2.13'),
]

build_shared_libs = True

sanity_check_paths = {
'files': ['bin/llvm-ar', 'bin/FileCheck'],
'dirs': ['include/llvm', 'include/llvm-c'],
}

sanity_check_commands = ["llvm-ar --help"]

moduleclass = 'compiler'
27 changes: 27 additions & 0 deletions easybuild/easyconfigs/l/libGLU/libGLU-9.0.3-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
easyblock = 'MesonNinja'

name = 'libGLU'
version = '9.0.3'

homepage = 'https://mesa.freedesktop.org/archive/glu/'
description = """The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL. """

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
toolchainopts = {'pic': True}

source_urls = ['https://mesa.freedesktop.org/archive/glu/']
sources = ['glu-%(version)s.tar.xz']
checksums = ['bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f']

builddependencies = [('binutils', '2.40'),
('Ninja', '1.11.1'),
('Meson', '1.2.3')]

dependencies = [('Mesa', '23.1.9')]

sanity_check_paths = {
'files': ['lib/libGLU.%s' % SHLIB_EXT],
'dirs': [],
}

moduleclass = 'vis'
32 changes: 32 additions & 0 deletions easybuild/easyconfigs/l/libdrm/libdrm-2.4.117-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
easyblock = 'MesonNinja'

name = 'libdrm'
version = '2.4.117'

homepage = 'https://dri.freedesktop.org'
description = """Direct Rendering Manager runtime library."""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}

source_urls = ['https://dri.freedesktop.org/libdrm/']
sources = [SOURCELOWER_TAR_XZ]
checksums = ['a2888d69e3eb1c8a77adc08a75a60fbae01f0d208d26f034d1a12e362361242b']

builddependencies = [
('binutils', '2.40'),
('pkgconf', '2.0.3'),
('Meson', '1.2.3'),
('Ninja', '1.11.1'),
]
dependencies = [('X11', '20231019')]

# installing manpages requires an extra build dependency (docbook xsl)
configopts = '-Dman-pages=disabled'

sanity_check_paths = {
'files': ['lib/libdrm.%s' % SHLIB_EXT, 'include/libdrm/drm.h'],
'dirs': ['include', 'lib'],
}


moduleclass = 'lib'
33 changes: 33 additions & 0 deletions easybuild/easyconfigs/l/libglvnd/libglvnd-1.7.0-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
easyblock = 'MesonNinja'

name = 'libglvnd'
version = '1.7.0'

homepage = 'https://gitlab.freedesktop.org/glvnd/libglvnd'
description = "libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors."

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}

source_urls = ['https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v%(version)s/']
sources = ['libglvnd-v%(version)s.tar.gz']
checksums = ['2b6e15b06aafb4c0b6e2348124808cbd9b291c647299eaaba2e3202f51ff2f3d']

builddependencies = [
('binutils', '2.40'),
('pkgconf', '2.0.3'),
('Meson', '1.2.3'),
('Ninja', '1.11.1'),
]

dependencies = [('X11', '20231019')]

# Let EGL find system-installed vendor files in /etc/glvnd/egl_vendor.d etc.
allow_prepend_abs_path = True
modextrapaths = {"__EGL_VENDOR_LIBRARY_DIRS": "/etc/glvnd/egl_vendor.d:/usr/share/glvnd/egl_vendor.d"}

sanity_check_paths = {
'files': ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['EGL', 'GL', 'GLX', 'OpenGL']],
'dirs': ['include/%s' % x for x in ['EGL', 'GL', 'GLES', 'GLES2', 'GLES3', 'glvnd', 'KHR']] + ['lib/pkgconfig'],
}

moduleclass = 'lib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
easyblock = 'ConfigureMake'

name = 'libunwind'
version = '1.6.2'

homepage = 'https://www.nongnu.org/libunwind/'
description = """The primary goal of libunwind is to define a portable and efficient C programming interface
(API) to determine the call-chain of a program. The API additionally provides the means to manipulate the
preserved (callee-saved) state of each call-frame and to resume execution at any point in the call-chain
(non-local goto). The API supports both local (same-process) and remote (across-process) operation.
As such, the API is useful in a number of applications"""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}

source_urls = [GNU_SAVANNAH_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976']

builddependencies = [('binutils', '2.40')]

dependencies = [
('XZ', '5.4.4'),
]

preconfigopts = 'export LIBS="$LIBS -llzma" && export CFLAGS="$CFLAGS -fno-common" && '

sanity_check_paths = {
'files': ['include/libunwind.h', 'lib/libunwind.%s' % SHLIB_EXT],
'dirs': []
}

moduleclass = 'lib'
66 changes: 66 additions & 0 deletions easybuild/easyconfigs/m/Mesa/Mesa-23.1.9-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# 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 = '23.1.9'

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': '13.2.0'}

source_urls = [
'https://mesa.freedesktop.org/archive/',
'https://mesa.freedesktop.org/archive/%(version)s',
'ftp://ftp.freedesktop.org/pub/mesa/%(version)s',
'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s',
'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x',
]
sources = [SOURCELOWER_TAR_XZ]
checksums = ['295ba27c28146ed09214e8ce79afa1659edf9d142decc3c91f804552d64f7510']

builddependencies = [
('binutils', '2.40'),
('Meson', '1.2.3'),
('Ninja', '1.11.1'),
('flex', '2.6.4'),
('Bison', '3.8.2'),
('pkgconf', '2.0.3'),
('Mako', '1.2.4'),
('libxml2', '2.11.5'),
('expat', '2.5.0'),
('gettext', '0.22'),
]

dependencies = [
('zlib', '1.2.13'),
('zstd', '1.5.5'),
('libdrm', '2.4.117'),
('libglvnd', '1.7.0'),
('libunwind', '1.6.2'),
('LLVM', '16.0.6'),
('X11', '20231019'),
]

configopts = "-Dplatforms=x11 -Dosmesa=true -Dvulkan-drivers='' "
configopts += "-Dllvm=enabled -Dshared-llvm=enabled -Dlibunwind=enabled -Dglvnd=true"

# 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=swrast"

# 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'
Loading