Page MenuHomeFreeBSD

devel/glib20 and devel/gobject-introspection: update to 2.82.1 and 1.82.0
ClosedPublic

Authored by vishwin on Oct 15 2024, 9:30 PM.
Tags
None
Referenced Files
F121036491: D47139.id152533.diff
Mon, Jun 23, 2:59 AM
F121008421: D47139.id147891.diff
Sun, Jun 22, 9:22 PM
Unknown Object (File)
Sat, Jun 21, 12:52 PM
Unknown Object (File)
Thu, Jun 19, 6:42 AM
Unknown Object (File)
Thu, Jun 19, 3:49 AM
Unknown Object (File)
Wed, Jun 18, 4:57 PM
Unknown Object (File)
Tue, Jun 17, 10:01 PM
Unknown Object (File)
Sun, Jun 15, 5:41 PM

Details

Summary

Changelogs:

These are and have always meant to be maintained and updated together. They are slated to merge at some point.

Several GLib introspection data files now live in glib rather than introspection, which is problematic for us since keeping them available for consumers requires -Dintrospection=disabled in glib, which causes a circular dependency.

Since our build and packaging system is fully deterministic, we cannot quite follow upstream's advice exactly; however since introspection only becomes a build dependency in glib when -Dintrospection=true, this is workable. Introduce bootstrap flavours of both ports:

  • glib-bootstrap is the same -Dintrospection=disabled as before, to facilitate...
  • gobject-introspection-bootstrap links to the above and serves only as a build dependency for...
  • glib with '-Dintrospection=enabled`
  • gobject-introspection links to the above

In-place building of this sequence will not work and is not supported, you must use isolated environments like poudriere. poudriere-testport(8) will fail on glib default flavour during the install/delete phase as the bootstrap flavour will still be present in the environment.

Test Plan

exp-run will be needed, especially for gobject-introspection as it is stricter on consumers. Light runtime testing has commenced.

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

vishwin created this revision.
arrowd added a subscriber: arrowd.

At first I was thinking to simply replicate glibs build process in the gobject-introspection port, but your approach is much more concise. Cool!

Building outside the jail should still be possible by installing and removing bootstrap packages manually. I think this warrants an UPDATING entry.

devel/gobject-introspection/Makefile
21

This should either be default_USE= gnome=glib20 or remove gnome from USES, since there is no accompanying USE_GNOME.

This revision is now accepted and ready to land.Oct 16 2024, 5:39 AM
  • devel/glib20: update to 2.82.4

use GNetworkMonitorNetlink commit directly instead of patch file

This revision now requires review to proceed.Dec 12 2024, 8:00 PM
jhale requested changes to this revision.Feb 15 2025, 5:59 PM
jhale added a subscriber: jhale.

Typo in devel/gobject-introspection/Makefile

devel/glib20/Makefile
57

_LIBVERSION could be derived from DISTVERSION. _LIBVERSION= 0.${DISTVERSION:R:E}00.${DISTVERSION:E}

devel/gobject-introspection/Makefile
26

s/CONFLICS/CONFLICTS/

This revision now requires changes to proceed.Feb 15 2025, 5:59 PM

Running a mini (Queued: 2012) exp-run with this Diff.

Fixed last build failures uncovered by my mini-exprun. Let's finally land this?

One last consumer inventory check since I remember a couple others failed before. Also to draft an UPDATING entry since the circular build situation requires "manual intervention" for those not using poudriere/isolated build environments.

  • devel/glibd: Fix build with new devel/glib20
  • devel/glib20: Fix plist by adding docs
  • devel/glib20: Remove OPTIONS and TRIGGERS from the bootstrap FLAVOR

Also to draft an UPDATING entry since the circular build situation requires "manual intervention" for those not using poudriere/isolated build environments.

If I understand it correctly, no manual intervention would be needed, because the g-ir-scanner and glib20 dependencies would be fulfilled from the previously installed versions.

A manual intervention would only be needed when installing new glib20 for the first time outside the Poudriere. But I'm not sure this deserves an entry in a file called UPDATING.

May want to also provide the upstream links explaining the not-ideal circular dependency, but otherwise good to go.

Testport claims error on glib-bootstrap:

Error: Orphaned: @dir share/pkg/triggers

And for full glib:

Error: Missing: %%DOCSDIR%%-2.0/const.VA_COPY_AS_ARRAY.html

  • Fix plist for glib20@bootstrap
  • Add an URL to the upstream announcement explaining the circular dependency situation
This revision was not accepted when it landed; it landed in state Needs Review.Apr 3 2025, 7:49 AM
This revision was automatically updated to reflect the committed changes.