Skip to content

Commit

Permalink
#357 imagecodecs pre-PR
Browse files Browse the repository at this point in the history
  • Loading branch information
pavelToman committed Nov 28, 2024
1 parent c8ad6b3 commit eedff5d
Show file tree
Hide file tree
Showing 10 changed files with 332 additions and 15 deletions.
31 changes: 31 additions & 0 deletions 357_Synthcity/2023b_v0.2.11_new/monai-2023b-full/LibLZF-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak
# Update: Thomas Hoffmann (EMBL), Denis Kristak
easyblock = 'ConfigureMake'

name = 'LibLZF'
version = '3.6'

homepage = 'http://oldhome.schmorp.de/marc/liblzf.html'
description = """LibLZF is a very small data compression library. It consists of only two .c and two .h files
and is very easy to incorporate into your own programs. The compression algorithm is very, very fast, yet still
written in portable C."""

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

source_urls = ['http://dist.schmorp.de/liblzf/Attic/']
sources = ['liblzf-%(version)s.tar.gz']
checksums = ['9c5de01f7b9ccae40c3f619d26a7abec9986c06c36d260c179cedd04b89fb46a']

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

sanity_check_commands = ['lzf -h']

sanity_check_paths = {
'files': ['bin/lzf', 'lib/liblzf.a'],
'dirs': ['bin', 'lib'],
}

moduleclass = 'lib'
37 changes: 37 additions & 0 deletions 357_Synthcity/2023b_v0.2.11_new/monai-2023b-full/Zopfli-2023.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Updated: Denis Kristak
# Updated: Thomas Hoffmann (EMBL), Denis Kristak (Inuits)
easyblock = 'CMakeMake'

name = 'Zopfli'
version = '1.0.3'

homepage = 'https://github.com/google/zopfli'
description = """Zopfli Compression Algorithm is a compression library programmed in C to perform
very good, but slow, deflate or zlib compression."""

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

source_urls = ['https://github.com/google/zopfli/archive/refs/tags/']
sources = ['%(namelower)s-%(version)s.tar.gz']
checksums = ['e955a7739f71af37ef3349c4fa141c648e8775bceb2195be07e86f8e638814bd']

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

configopts = [
'-DBUILD_SHARED_LIBS=ON',
'-DBUILD_SHARED_LIBS=OFF',
]

sanity_check_paths = {
'files': ['bin/zopfli', 'include/zopfli.h', 'lib/libzopfli.a', 'lib/libzopfli.%s' % SHLIB_EXT],
'dirs': [],
}

sanity_check_commands = ["zopfli --help"]

moduleclass = 'tools'
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
easyblock = 'PythonPackage'

name = 'bitshuffle'
version = '0.5.2'

homepage = 'https://github.com/kiyo-masui/bitshuffle'
description = """
Filter for improving compression of typed binary data.
Bitshuffle is an algorithm that rearranges typed, binary data for improving compression, as
well as a python/C package that implements this algorithm within the Numpy framework.
The library can be used along side HDF5 to compress and decompress datasets and is integrated
through the dynamically loaded filters framework. Bitshuffle is HDF5 filter number 32008.
"""

toolchain = {'name': 'foss', 'version': '2023b'}

sources = [SOURCE_TAR_GZ]
checksums = ['dc0e3fb7bdbf42be1009cc3028744180600d625a75b31833a24aa32aeaf83d8d']

dependencies = [
('Python', '3.11.5'),
('SciPy-bundle', '2023.11'),
('h5py', '3.11.0'),
]

use_pip = True
download_dep_fail = True
sanity_pip_check = True

moduleclass = 'lib'
Original file line number Diff line number Diff line change
Expand Up @@ -28,53 +28,51 @@ dependencies = [
('CFITSIO', '4.3.1'),
('CharLS', '2.4.2'), # CREATED
('giflib', '5.2.1'),
# ('jxrlib', '1.1'), # CREATE 1.2
('jxrlib', '1.1'), # CREATED
('LittleCMS', '2.15'),
('LERC', '4.0.0'),
('libaec', '1.0.6'),
# ('libavif', '1.0.4'), # CREATE
('libavif', '1.1.1'), # CREATED
('libdeflate', '1.19'),
# ('libheif', '1.17.6'), # CREATE
('libheif', '1.19.5'), # CREATED
('libjpeg-turbo', '3.0.1'),
('libjxl', '0.8.2'),
# ('LibLZF', '3.6'), # CREATE
('LibLZF', '3.6'), # CREATED
('libpng', '1.6.40'),
('LibTIFF', '4.6.0'),
('libwebp', '1.3.2'),
('lz4', '1.9.4'),
('OpenJPEG', local_openjpeg_maj_min + '.0'),
('snappy', '1.1.10'),
# ('zlib-ng', '2.1.6'), # CREATE
# ('Zopfli', '1.0.3'), # CREATE
# ('zfp', '1.0.1'), # CREATE
('zlib-ng', '2.2.2'), # PR: https://github.com/easybuilders/easybuild-easyconfigs/pull/21861
('Zopfli', '1.0.3'), # CREATED
('zfp', '1.0.1'), # CREATED
('zstd', '1.5.5'),
('HDF5', '1.14.3'),
('h5py', '3.11.0'),
# ('bitshuffle', '0.5.1'), # CREATE # Cannot be as extension because Cython 3.0.8 is too new
('bitshuffle', '0.5.2'), # CREATED # Cannot be as extension because Cython 3.0.8 is too new
]

use_pip = True
sanity_pip_check = True

exts_list = [
('colorlog', '6.8.2', {
'checksums': ['3e3e079a41feb5a1b64f978b5ea4f46040a94f11f0e8bbb8261e3dbbeca64d44'],
('colorlog', '6.9.0', {
'checksums': ['bfba54a1b93b94f54e1f4fe48395725a3d92fd2a4af702f6bd70946bdc0c6ac2'],
}),
(name, version, {
'buildopts': '--global-option="build_ext" --global-option="--lite"',
'extract_cmd': "tar -xvf %s && find . -type f -print0 | xargs -0 dos2unix",
'patches': ['imagecodecs-2024.1.1_fix-aec-version.patch'],
'preinstallopts': "export CPATH=$EBROOTOPENJPEG/include/openjpeg-2.5/:$CPATH && ",
'source_urls': [
'https://github.com/cgohlke/imagecodecs/releases/download/v%(version)s/imagecodecs-2024.1.1.tar.gz'
],
'source_urls': ['https://github.com/cgohlke/imagecodecs/releases/download/v%(version)s/'],
'sources': ['%(name)s-%(version)s.tar.gz'],
'checksums': [
{'imagecodecs-2024.1.1.tar.gz': 'fde46bd698d008255deef5411c59b35c0e875295e835bf6079f7e2ab22f216eb'},
{'imagecodecs-2024.6.1.tar.gz': '0f3e94b7f51e2f78287b7ffae82cd850b1007639148894538274fa50bd179886'},
{'imagecodecs-2024.1.1_fix-aec-version.patch':
'7feb0a5fe37893d1a186f85c8f6cdb940704605ee2da5ea8e5d555ec5bfa01aa'},
],
}),
]

moduleclass = 'lib'
moduleclass = 'lib'
39 changes: 39 additions & 0 deletions 357_Synthcity/2023b_v0.2.11_new/monai-2023b-full/jxrlib-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
##
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author:: Denis Kristak (INUITS)
# Update: Thomas Hoffmann (EMBL)
##

easyblock = 'CMakeMake'

name = 'jxrlib'
version = '1.1'

homepage = 'https://github.com/4creators/jxrlib'
description = """Open source implementation of jpegxr"""

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

source_urls = ['https://deb.debian.org/debian/pool/main/j/jxrlib/']
sources = ['%(name)s_%(version)s.orig.tar.gz']
patches = [('jxrlib-%(version)s_cmake.patch', 1)]
checksums = [
{'jxrlib_1.1.orig.tar.gz': 'c7287b86780befa0914f2eeb8be2ac83e672ebd4bd16dc5574a36a59d9708303'},
{'jxrlib-1.1_cmake.patch': 'e96ea8b418fdab10e9cbc2f4cad95ca1f59a826ce7379c6a3192882050689a74'},
]

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

sanity_check_paths = {
'files': ['bin/JxrDecApp', 'bin/JxrEncApp', "lib/libjpegxr.%s" % SHLIB_EXT],
'dirs': [],
}

sanity_check_commands = ['JxrDecApp', 'JxrEncApp']

modextrapaths = {'CPATH': 'include/jxrlib'}

moduleclass = 'lib'
36 changes: 36 additions & 0 deletions 357_Synthcity/2023b_v0.2.11_new/monai-2023b-full/libavif-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak (Inuits)
# Update: Thomas Hoffmann (EMBL), Denis Kristak (Inuits)
easyblock = 'CMakeMake'

name = 'libavif'
version = '1.1.1'

homepage = 'https://github.com/AOMediaCodec/libavif'
description = """This library aims to be a friendly, portable C implementation of the AV1 Image File Format,
as described here: https://aomediacodec.github.io/av1-avif/
"""

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

source_urls = ['https://github.com/AOMediaCodec/libavif/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['914662e16245e062ed73f90112fbb4548241300843a7772d8d441bb6859de45b']

builddependencies = [
('CMake', '3.27.6'),
('binutils', '2.40'),
('NASM', '2.16.01'),
('Meson', '1.2.3'),
('Ninja', '1.11.1'),
('Rust', '1.76.0'),
('pkgconf', '2.0.3'),
('libyuv', '20241125'),
]

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

moduleclass = 'tools'
34 changes: 34 additions & 0 deletions 357_Synthcity/2023b_v0.2.11_new/monai-2023b-full/libde265-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak
easyblock = 'CMakeMake'

name = 'libde265'
version = '1.0.15'

homepage = 'https://github.com/strukturag/libde265'
description = "libde265 is an open source implementation of the h.265 video codec"

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

source_urls = ['https://github.com/strukturag/libde265/releases/download/v%(version)s/']
sources = [SOURCE_TAR_GZ]
checksums = ['00251986c29d34d3af7117ed05874950c875dd9292d016be29d3b3762666511d']

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

configopts = "-DENABLE_DECODER=ON -DENABLE_ENCODER=ON"

sanity_check_paths = {
'files': ['bin/dec265', 'bin/enc265', 'lib/libde265.%s' % SHLIB_EXT, 'lib/pkgconfig/libde265.pc'],
'dirs': ['include/libde265', 'lib/cmake/libde265'],
}

sanity_check_commands = [
"dec265 --help",
"enc265 --help",
]

moduleclass = 'tools'
43 changes: 43 additions & 0 deletions 357_Synthcity/2023b_v0.2.11_new/monai-2023b-full/libheif-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak
easyblock = 'CMakeMake'

name = 'libheif'
version = '1.19.5'

homepage = 'https://github.com/strukturag/libheif'
description = "libheif is an HEIF and AVIF file format decoder and encoder"

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

source_urls = ['https://github.com/strukturag/libheif/releases/download/v%(version)s/']
sources = [SOURCE_TAR_GZ]
checksums = ['d3cf0a76076115a070f9bc87cf5259b333a1f05806500045338798486d0afbaf']

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

dependencies = [
('libpng', '1.6.40'),
('libjpeg-turbo', '3.0.1'),
('libde265', '1.0.15'),
('x265', '3.5'),
('Gdk-Pixbuf', '2.42.10'),
]

# build both static and shared libraries
configopts = [
"-DBUILD_SHARED_LIBS=OFF",
"-DBUILD_SHARED_LIBS=ON",
]

sanity_check_paths = {
'files': ['bin/heif-info', 'lib/libheif.a', 'lib/libheif.%s' % SHLIB_EXT, 'lib/pkgconfig/libheif.pc'],
'dirs': ['include/libheif'],
}

sanity_check_commands = ["heif-info --help"]

moduleclass = 'tools'
29 changes: 29 additions & 0 deletions 357_Synthcity/2023b_v0.2.11_new/monai-2023b-full/libyuv-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
easyblock = 'CMakeMake'

name = 'libyuv'
version = '20241125'
local_commit = '9a97521'

homepage = 'https://github.com/lemenkov/libyuv'
description = """libyuv is an open source project that includes YUV scaling and conversion functionality."""

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

source_urls = ['https://github.com/lemenkov/libyuv/archive/']
sources = [{
"download_filename": "%s.tar.gz" % local_commit,
"filename": SOURCE_TAR_GZ,
}]
checksums = ['25e48eb78c41383e391b68ed017e82e42ded0ae2667fb399f7b2442582ae2af2']

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

sanity_check_paths = {
'files': ['bin/yuvconvert', f'lib/{name}.so', f'lib/{name}.a', f'include/{name}.h'],
'dirs': [],
}

moduleclass = 'tools'
40 changes: 40 additions & 0 deletions 357_Synthcity/2023b_v0.2.11_new/monai-2023b-full/zfp-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak
# Update: Thomas Hoffmann (EMBL)
easyblock = 'MakeCp'

name = 'zfp'
version = '1.0.1'

homepage = 'https://github.com/LLNL/zfp'
description = """zfp is a compressed format for representing multidimensional floating-point and integer arrays.
zfp provides compressed-array classes that support high throughput read and write random access to individual array
elements. zfp also supports serial and parallel (OpenMP and CUDA) compression of whole arrays, e.g., for applications
that read and write large data sets to and from disk."""

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

source_urls = ['https://github.com/LLNL/zfp/archive']
sources = ['%(version)s.tar.gz']
checksums = ['4984db6a55bc919831966dd17ba5e47ca7ac58668f4fd278ebd98cd2200da66f']

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

prebuildopts = "sed -i 's/FLAGS = -O3/FLAGS = $CFLAGS/g' Makefile && "
buildopts = 'ZFP_WITH_OPENMP=1'

runtest = 'test'

files_to_copy = ['bin', 'include', 'lib']

sanity_check_paths = {
'files': ['bin/zfp', 'bin/testzfp', 'include/zfp.h', 'lib/libzfp.a'],
'dirs': ['include/zfp'],
}

sanity_check_commands = ["zfp --help 2>&1 | grep 'Usage: zfp'"]

moduleclass = 'lib'

0 comments on commit eedff5d

Please sign in to comment.