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

{vis}[GCCcore/13.3.0] Ghostscript v10.03.1, HarfBuzz v9.0.0, ImageMagick v7.1.1-38, ... #21386

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
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
easyblock = 'ConfigureMake'

name = 'Ghostscript'
version = '10.03.1'

homepage = 'https://ghostscript.com'
description = """Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to
different targets. It used to be part of the cups printing stack, but is no longer used for that."""

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

source_urls = [
'https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs%s/' % version.replace('.', ''),
]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['31cd01682ad23a801cc3bbc222a55f07c4ea3e068bdfb447792d54db21a2e8ad']

builddependencies = [
('binutils', '2.42'),
('pkgconf', '2.2.0'),
]

dependencies = [
('zlib', '1.3.1'),
('libpng', '1.6.43'),
('freetype', '2.13.2'),
('libjpeg-turbo', '3.0.1'),
('expat', '2.6.2'),
('GLib', '2.80.4'),
('cairo', '1.18.0'),
('LibTIFF', '4.6.0'),
]

# Do not use local copies of zlib, jpeg, freetype, and png
preconfigopts = 'mv zlib zlib.no && mv jpeg jpeg.no && mv freetype freetype.no && '
preconfigopts += 'mv libpng libpng.no && export LIBS="$LIBS -L$EBROOTZLIB/lib -lz" && '
configopts = "--with-system-libtiff --enable-dynamic --disable-hidden-visibility"

# also build and install shared libs
build_cmd_targets = ['', 'so']
installopts = 'soinstall'

postinstallcmds = [
# install header files
"mkdir -p %(installdir)s/include/%(namelower)s",
"install -v -m644 base/*.h %(installdir)s/include/%(namelower)s",
"install -v -m644 psi/*.h %(installdir)s/include/%(namelower)s",
]

sanity_check_paths = {
'files': ['bin/gs', 'lib/libgs.%s' % SHLIB_EXT],
'dirs': ['lib/%(namelower)s', 'include/%(namelower)s', 'share/man'],
}

sanity_check_commands = ["gs --help"]

moduleclass = 'tools'
51 changes: 51 additions & 0 deletions easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-9.0.0-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
easyblock = 'MesonNinja'

name = 'HarfBuzz'
version = '9.0.0'

homepage = 'https://www.freedesktop.org/wiki/Software/HarfBuzz'
description = """HarfBuzz is an OpenType text shaping engine."""

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

github_account = 'harfbuzz'
source_urls = [GITHUB_SOURCE]
sources = ['%(version)s.tar.gz']
patches = ['HarfBuzz-9.0.0_fix-subset-test.patch']
checksums = [
{'9.0.0.tar.gz': 'b7e481b109d19aefdba31e9f5888aa0cdfbe7608fed9a43494c060ce1f8a34d2'},
{'HarfBuzz-9.0.0_fix-subset-test.patch': '1635505c27c312dca507863f2a865eb88d42e35ff4cc241cfa0e90c0ade8b790'},
]

builddependencies = [
('binutils', '2.42'),
('GObject-Introspection', '1.80.1'),
('pkgconf', '2.2.0'),
('Ninja', '1.12.1'),
('Meson', '1.4.0'),
('fonttools', '4.53.1'), # For tests
]

dependencies = [
('GLib', '2.80.4'),
('ICU', '75.1'),
('cairo', '1.18.0'),
('freetype', '2.13.2'),
]

configopts = '--default-library=both' # static and shared library
configopts += ' -Dgobject=enabled -Dintrospection=enabled'
configopts += ' -Dglib=enabled'
configopts += ' -Dicu=enabled'
configopts += ' -Dcairo=enabled'
configopts += ' -Dfreetype=enabled'

runtest = 'meson'
testopts = 'test -C %(builddir)s/easybuild_obj -t 60'

sanity_check_paths = {
'files': ['lib/libharfbuzz.%s' % SHLIB_EXT, 'bin/hb-view'],
'dirs': []
}

moduleclass = 'vis'
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
The test "feature_variation_instance_collect_lookups" fails when run in environments
where the decimal separator is not a dot (".").
Fix this by using the C locale.
See https://github.com/harfbuzz/harfbuzz/pull/4857

Author: Alexander Grund (TU Dresden)

diff --git a/test/subset/run-tests.py b/test/subset/run-tests.py
index 9e09d95d1d9..c0c256d8974 100755
--- a/test/subset/run-tests.py
+++ b/test/subset/run-tests.py
@@ -135,10 +135,13 @@ def check_ots (path):

has_ots = has_ots()

+env = os.environ.copy()
+env['LC_ALL'] = 'C'
process = subprocess.Popen ([hb_subset, '--batch'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
- stderr=sys.stdout)
+ stderr=sys.stdout,
+ env=env)

fails = 0
for path in args:
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
easyblock = 'ConfigureMake'

name = 'ImageMagick'
version = '7.1.1-38'

homepage = 'https://www.imagemagick.org/'
description = "ImageMagick is a software suite to create, edit, compose, or convert bitmap images"

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

source_urls = ['https://github.com/%(name)s/%(name)s/archive/']
sources = ['%(version)s.tar.gz']
patches = ['ImageMagick-7.1.1-38_fix-linking.patch']
checksums = [
{'7.1.1-38.tar.gz': '5e449530ccec8b85ae2bfd1ad773184fb7a4737d40fd9439db8a5d4beee4403e'},
{'ImageMagick-7.1.1-38_fix-linking.patch': '0fbe8e3b6621e3e0d1efec59949fecb45924bc6e65851b9b6399bb3eff8d55d9'},
]

builddependencies = [
('binutils', '2.42'),
('pkgconf', '2.2.0'),
]
dependencies = [
('bzip2', '1.0.8'),
('X11', '20240607'),
('Ghostscript', '10.03.1'),
('JasPer', '4.2.4'),
('libjpeg-turbo', '3.0.1'),
('LibTIFF', '4.6.0'),
('LittleCMS', '2.16'),
('Pango', '1.54.0'),
('pixman', '0.43.4'),
('FriBidi', '1.0.15'),
]

preconfigopts = 'PKG_CONFIG=$EBROOTPKGCONF/bin/pkgconf'
configopts = "--with-gslib --with-x"

sanity_check_paths = {
'files': ['bin/magick'],
'dirs': ['etc/%(name)s-%(version_major)s', 'include/%(name)s-%(version_major)s', 'lib', 'share'],
}

sanity_check_commands = [
'magick --help',
]

modextravars = {'MAGICK_HOME': '%(installdir)s'}

moduleclass = 'vis'
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
The configure script sets this to a path inside the install location which is empty during build.
However this path(s) is/are used by the compiler/linker to find libraries. `pkg-config` used during configure assumes this is the same during build as on invocation of itself and omits any path already contained in the variable.

This combination causes build failures due to dependent libraries not being found in the link step unless there happens to be some other way the paths get pulled in. E.g. if HarfBuzz is built using (the deprecated) configure&make it has `*.la` files which contain the required link flags. If HarfBuzz is built using the new Meson build system those files are no longer present and the linker paths will be missing.

As there doesn't seem to be a specific reason for the variable to be set to an empty directory in the Makefile just remove it.

See https://github.com/ImageMagick/ImageMagick/pull/7613

Author: Alexander Grund (TU Dresden)

---
Makefile.in | 1 -
1 file changed, 1 deletion(-)

diff --git a/Makefile.in b/Makefile.in
index 47b78566f0c..3a9761cfd5b 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -3288,7 +3288,6 @@ LIBOBJS = @LIBOBJS@
LIBOPENJP2_CFLAGS = @LIBOPENJP2_CFLAGS@
LIBOPENJP2_LIBS = @LIBOPENJP2_LIBS@
LIBRARY_EXTRA_CPPFLAGS = @LIBRARY_EXTRA_CPPFLAGS@
-LIBRARY_PATH = @LIBRARY_PATH@
LIBS = @LIBS@
LIBSTDCLDFLAGS = @LIBSTDCLDFLAGS@
LIBTOOL = @LIBTOOL@
36 changes: 36 additions & 0 deletions easybuild/easyconfigs/j/JasPer/JasPer-4.2.4-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
easyblock = 'CMakeMake'

name = 'JasPer'
version = '4.2.4'

homepage = 'https://www.ece.uvic.ca/~frodo/jasper/'

description = """
The JasPer Project is an open-source initiative to provide a free
software-based reference implementation of the codec specified in
the JPEG-2000 Part-1 standard.
"""

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

github_account = 'jasper-software'
source_urls = [GITHUB_SOURCE]
sources = ['version-%(version)s.tar.gz']
checksums = ['23a3d58cdeacf3abdf9fa1d81dcefee58da6ab330940790c0f27019703bfd2cd']

builddependencies = [
('binutils', '2.42'),
('CMake', '3.29.3'),
]

configopts = '-DJAS_ENABLE_DOC=OFF '

sanity_check_paths = {
'files': ['bin/jasper', ('lib/libjasper.%s' % SHLIB_EXT, 'lib64/libjasper.%s' % SHLIB_EXT)],
'dirs': ['include'],
}

sanity_check_commands = ['jasper --version']

moduleclass = 'vis'
41 changes: 41 additions & 0 deletions easybuild/easyconfigs/p/Pango/Pango-1.54.0-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
easyblock = 'MesonNinja'

name = 'Pango'
version = '1.54.0'

homepage = 'https://pango.gnome.org/'
description = """Pango is a library for laying out and rendering of text, with an emphasis on internationalization.
Pango can be used anywhere that text layout is needed, though most of the work on Pango so far has been done in the
context of the GTK+ widget toolkit. Pango forms the core of text and font handling for GTK+-2.x."""

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

source_urls = [FTPGNOME_SOURCE]
sources = [SOURCELOWER_TAR_XZ]
checksums = ['8a9eed75021ee734d7fc0fdf3a65c3bba51dfefe4ae51a9b414a60c70b2d1ed8']

builddependencies = [
('binutils', '2.42'),
('Meson', '1.4.0'),
('Ninja', '1.12.1'),
('GObject-Introspection', '1.80.1'),
('pkgconf', '2.2.0'),
]

dependencies = [
('X11', '20240607'),
('GLib', '2.80.4'),
('cairo', '1.18.0'),
('HarfBuzz', '9.0.0'),
('FriBidi', '1.0.15'),
]

configopts = "--buildtype=release --default-library=both "

sanity_check_paths = {
'files': ['bin/pango-view', 'lib/libpango-1.0.%s' % SHLIB_EXT, 'lib/libpangocairo-1.0.%s' % SHLIB_EXT,
'lib/libpangoft2-1.0.%s' % SHLIB_EXT, 'lib/libpangoxft-1.0.%s' % SHLIB_EXT],
'dirs': [],
}

moduleclass = 'vis'
Loading