Skip to content

{devel}[GCCcore/13.3.0] GObject-Introspection v1.80.1#21385

Merged
SebastianAchilles merged 2 commits intoeasybuilders:developfrom
Flamefire:20240912164822_new_pr_GObject-Introspection1801
Sep 13, 2024
Merged

{devel}[GCCcore/13.3.0] GObject-Introspection v1.80.1#21385
SebastianAchilles merged 2 commits intoeasybuilders:developfrom
Flamefire:20240912164822_new_pr_GObject-Introspection1801

Conversation

@Flamefire
Copy link
Copy Markdown
Contributor

@Flamefire Flamefire commented Sep 12, 2024

(created using eb --new-pr)

This is a bit tricky as version 1.79+ does no longer install the GIR files of GLib, see https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/517

The suggested solution is:

  1. build GLib with -Dintrospection=disabled
  2. build gobject-introspection
  3. rebuild GLib with -Dintrospection=enabled

However I don't see how we can do that:
Cairo is a dependency of gobject-introspection and depends on glib. So we cannot get rid the temporary GLib as it is used as a dependency already and introducing both to the toolchain won't work. Ideally the temporary GLib would just be a build-dependency to gobject-introspection but then Cairo would be missing GLib or gobject-introspection would be missing cairo

--> Add a patch to revert the change that disabled installing the required file and hope that in the future there will be a better solution. E.g. they want to merge both projects.

…d patches: GObject-Introspection-1.80.1_install-GLib-GIR-files.patch
@Flamefire
Copy link
Copy Markdown
Contributor Author

Test report by @Flamefire
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
i7087 - Linux Rocky Linux 8.9 (Green Obsidian), x86_64, AMD EPYC 7702 64-Core Processor (zen2), Python 3.8.17
See https://gist.github.com/Flamefire/d5fd8eb4e96e57011cc6eb2652096065 for a full test report.

@SebastianAchilles SebastianAchilles added this to the release after 4.9.3 milestone Sep 12, 2024
@SebastianAchilles
Copy link
Copy Markdown
Member

Test report by @SebastianAchilles
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
zen2-rockylinux-810 - Linux Rocky Linux 8.10, x86_64, AMD EPYC 7452 32-Core Processor (zen2), Python 3.6.8
See https://gist.github.com/SebastianAchilles/35a5cf45fbbb2fc8826c645de9894ef6 for a full test report.

@SebastianAchilles
Copy link
Copy Markdown
Member

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Copy Markdown
Collaborator

@SebastianAchilles: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=21385 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_21385 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 4855

Test results coming soon (I hope)...

Details

- notification for comment with ID 2346624044 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.4, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.18
See https://gist.github.com/boegelbot/01a42d13426a883800d897a96f53a043 for a full test report.

@SebastianAchilles SebastianAchilles added the 2024a issues & PRs related to 2024a common toolchains label Sep 12, 2024
@SebastianAchilles
Copy link
Copy Markdown
Member

@boegelbot please test @ generoso

@boegelbot
Copy link
Copy Markdown
Collaborator

@SebastianAchilles: Request for testing this PR well received on login1

PR test command 'EB_PR=21385 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs /opt/software/slurm/bin/sbatch --job-name test_PR_21385 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 14262

Test results coming soon (I hope)...

Details

- notification for comment with ID 2348658487 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
cns2 - Linux Rocky Linux 8.9, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/boegelbot/1333c80736c1f9c6832bbedd00f60a5d for a full test report.

Copy link
Copy Markdown
Member

@SebastianAchilles SebastianAchilles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@SebastianAchilles
Copy link
Copy Markdown
Member

Going in, thanks @Flamefire!

1 similar comment
@SebastianAchilles
Copy link
Copy Markdown
Member

Going in, thanks @Flamefire!

@SebastianAchilles SebastianAchilles merged commit 8856246 into easybuilders:develop Sep 13, 2024
@Flamefire Flamefire deleted the 20240912164822_new_pr_GObject-Introspection1801 branch September 13, 2024 11:14
@boegel boegel modified the milestones: release after 4.9.4, 4.9.4 Sep 21, 2024
@jhgoebbert
Copy link
Copy Markdown
Contributor

This patch will not provide all typelibs known from the past as you can see from this comparison:

GObject-Introspection/1.80.1-GCCcore-13.3.0/lib/girepository-1.0/

cairo-1.0.typelib  DBusGLib-1.0.typelib    freetype2-2.0.typelib  Vulkan-1.0.typelib  xfixes-4.0.typelib  xlib-2.0.typelib DBus-1.0.typelib   fontconfig-2.0.typelib  GIRepository-2.0.typelib  libxml2-2.0.typelib  win32-1.0.typelib   xft-2.0.typelib     xrandr-1.3.typelib GL-1.0.typelib

GObject-Introspection/1.76.0-GCCcore-12.3.0/lib/girepository-1.0/

cairo-1.0.typelib  DBusGLib-1.0.typelib    freetype2-2.0.typelib  GLib-2.0.typelib     GObject-2.0.typelib  Vulkan-1.0.typelib  xfixes-4.0.typelib  xlib-2.0.typelib DBus-1.0.typelib   fontconfig-2.0.typelib  GIRepository-2.0.typelib Gio-2.0.typelib  GL-1.0.typelib            GModule-2.0.typelib  libxml2-2.0.typelib  win32-1.0.typelib   xft-2.0.typelib     xrandr-1.3.typelib

1.80.1 is missing:

  • Gio-2.0.typelib
  • GLib-2.0.typelib
  • GObject-2.0.typelib
  • GModule-2.0.typelib

You only get this extras if you rebuild GLib with -Dintrospection=enabled

Without this rebuild the following test (through PyGObject) will fail when using:
python -c 'import gi; gi.require_version("GLib", "2.0")'

@Flamefire
Copy link
Copy Markdown
Contributor Author

You are right, this PR just installs the *.gir files, that are required to build dependent software, but not the *.typelib files. I identified the commit that disables installing those and created a patch that reverts that part too such that our EC installs both the gir and the typelib files. Try #22309

You are also right that (re)building GLib with -Dintrospection=enabled is the intended way to get those files. However we cannot easily do that in Easybuild due to the cyclic dependency

@jhgoebbert
Copy link
Copy Markdown
Contributor

jhgoebbert commented Feb 14, 2025

Thank you providing a fix so quickly in #22309
It works! (checked the directory GObject-Introspection/1.80.1-GCCcore-13.3.0/lib/girepository-1.0/ and tested with xpra)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2024a issues & PRs related to 2024a common toolchains update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants