From e88c4378baf599d49732fa5019f792bf7f8b5595 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Thu, 12 Sep 2024 16:48:24 +0200 Subject: [PATCH 1/2] adding easyconfigs: GObject-Introspection-1.80.1-GCCcore-13.3.0.eb and patches: GObject-Introspection-1.80.1_install-GLib-GIR-files.patch --- ...ect-Introspection-1.80.1-GCCcore-13.3.0.eb | 51 ++++++++++++++++++ ...ection-1.80.1_install-GLib-GIR-files.patch | 52 +++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb create mode 100644 easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb new file mode 100644 index 00000000000..4f1620c0db9 --- /dev/null +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb @@ -0,0 +1,51 @@ +easyblock = 'MesonNinja' + +name = 'GObject-Introspection' +version = '1.80.1' + +homepage = 'https://gi.readthedocs.io/en/latest/' +description = """GObject introspection is a middleware layer between C libraries + (using GObject) and language bindings. The C library can be scanned at + compile time and generate a metadata file, in addition to the actual + native C library. Then at runtime, language bindings can read this + metadata and automatically provide bindings to call into the C library.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +patches = ['GObject-Introspection-1.80.1_install-GLib-GIR-files.patch'] +checksums = [ + {'gobject-introspection-1.80.1.tar.xz': 'a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8'}, + {'GObject-Introspection-1.80.1_install-GLib-GIR-files.patch': + '2920b94cf33a41b424de2fb3a0f04b7a1076fd8f47417fa82cf4703ff1ba95fa'}, +] + +builddependencies = [ + ('binutils', '2.42'), + ('pkgconf', '2.2.0'), + ('CMake', '3.29.3'), + ('Meson', '1.4.0'), + ('Ninja', '1.12.1'), + ('Python', '3.12.3'), + ('Bison', '3.8.2'), + ('cairo', '1.18.0'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('GLib', '2.80.4'), + ('libffi', '3.4.5'), + ('util-linux', '2.40'), +] + +preconfigopts = "env GI_SCANNER_DISABLE_CACHE=true " +configopts = "-Dcairo=enabled" + +sanity_check_paths = { + 'files': ['bin/g-ir-%s' % x for x in ['annotation-tool', 'compiler', 'generate', 'scanner']] + + ['lib/libgirepository-1.0.' + SHLIB_EXT], + 'dirs': ['include', 'share'] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch new file mode 100644 index 00000000000..349eecf7c0b --- /dev/null +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch @@ -0,0 +1,52 @@ +This reverts a commit from upstream +> build: Do not install generated GLib GIR files +> +> GLib 2.79 ships its own introspection data. + +However GObject-Introspection requires (optionally) Cairo, which requires GLib +which requires GLib-Introspection for generating the introspection data. + +So there is a cyclib dependency, see https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/517 + +Author: Alexander Grund (TU Dresden) + +diff --git a/gir/meson.build b/gir/meson.build +index 3a016831..312aa886 100644 +--- a/gir/meson.build ++++ b/gir/meson.build +@@ -241,6 +241,8 @@ glib_gir = custom_target('gir-glib', + output: 'GLib-2.0.gir', + depends: [gir_giscanner_pymod, glib_gir_dep, gdump], + depend_files: gir_giscanner_built_files, ++ install: true, ++ install_dir: girdir, + env: g_ir_scanner_env, + command: glib_command + [ + '--cflags-begin'] + glib_includes + extra_giscanner_cflags + [ +@@ -308,6 +310,8 @@ gobject_gir = custom_target('gir-gobject', + output: 'GObject-2.0.gir', + depends: [glib_gir, gir_giscanner_pymod, gobject_gir_dep, gdump], + depend_files: gir_giscanner_built_files, ++ install: true, ++ install_dir: girdir, + env: g_ir_scanner_env, + command: gobject_command + [ + '--include-uninstalled=' + glib_gir.full_path(), +@@ -360,6 +364,8 @@ uninstalled_gir_files += custom_target('gir-gmodule', + output: 'GModule-2.0.gir', + depends: [glib_gir, gir_giscanner_pymod, gmodule_gir_dep, gdump], + depend_files: gir_giscanner_built_files, ++ install: true, ++ install_dir: girdir, + env: g_ir_scanner_env, + command: gmodule_command + [ + '--include-uninstalled=' + glib_gir.full_path(), +@@ -455,6 +461,8 @@ gio_gir = custom_target('gir-gio', + output: 'Gio-2.0.gir', + depends: [gobject_gir, gir_giscanner_pymod, gio_gir_dep, gdump], + depend_files: gir_giscanner_built_files, ++ install: true, ++ install_dir: girdir, + env: g_ir_scanner_env, + command: gio_command + [ + '--include-uninstalled=' + gobject_gir.full_path(), From f14cfd24a3040e012e3a95f1038f368a84ca5d78 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Fri, 13 Sep 2024 09:16:34 +0200 Subject: [PATCH 2/2] Fix typo in patch --- .../GObject-Introspection-1.80.1-GCCcore-13.3.0.eb | 2 +- .../GObject-Introspection-1.80.1_install-GLib-GIR-files.patch | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb index 4f1620c0db9..83ab6981ae3 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb @@ -18,7 +18,7 @@ patches = ['GObject-Introspection-1.80.1_install-GLib-GIR-files.patch'] checksums = [ {'gobject-introspection-1.80.1.tar.xz': 'a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8'}, {'GObject-Introspection-1.80.1_install-GLib-GIR-files.patch': - '2920b94cf33a41b424de2fb3a0f04b7a1076fd8f47417fa82cf4703ff1ba95fa'}, + 'c1909f1b7fd30784ae789ac0b5e45e0ca3dd2456890b864efa86a2f8c2e563aa'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch index 349eecf7c0b..5c09ded1cb2 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch @@ -6,7 +6,7 @@ This reverts a commit from upstream However GObject-Introspection requires (optionally) Cairo, which requires GLib which requires GLib-Introspection for generating the introspection data. -So there is a cyclib dependency, see https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/517 +So there is a cyclic dependency, see https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/517 Author: Alexander Grund (TU Dresden)