Skip to content

Conversation

@rfm
Copy link
Contributor

@rfm rfm commented Sep 28, 2025

Re-instate the gui interface version setting to specify the version for linking the library in order to maintain ABI compatibility. Without this, apps linked to one version of the GUI library will try to use more recent (but incompatible) versions.

Re-instate the gui interface version setting to specify the version for linking the library in order to maintain ABI compatibility.
Without this, apps linked to one version of the GUI library will try to use more recent (but incompatible) versions.
@rfm rfm requested a review from fredkiefer as a code owner September 28, 2025 15:56
@fredkiefer
Copy link
Member

This variable was removed in this commit: 857c173 857c173
When we reintroduce it we most likely will break things again for @buzzdeee. Either way is fine for me but we should discuss it first.

@rfm
Copy link
Contributor Author

rfm commented Sep 30, 2025

I think all the other changes in that commit fixed the issue; they stopped the interface version being used for other purposes.
But perhaps I missed something.

@fredkiefer
Copy link
Member

I am really unsure. I suggest we just wait a few days for Sebastian to reply and if there is no rejection from him, we merge your changes.

@rfm
Copy link
Contributor Author

rfm commented Oct 1, 2025

Having spent more time looking at this, I'm pretty sure this change is correct.
While I'm sure his patch was correct to detach the resource installation from the interface version, because NSBundle always tries to get library resources using the major and minor version numbers of the dynamic library actually being used (irrespective of the interface version we gave it), his removal of the line to set the interface version does break ABI security, so that line needs to be reinstated.

I'm making a similar change (always install the resources based on major and minor version number irrespective of interface version) for base.
I haven't looked at back yet.,

@rfm
Copy link
Contributor Author

rfm commented Oct 1, 2025

Ah, not an issue for back, because it's a bundle rather than a library.

Copy link
Member

@fredkiefer fredkiefer left a comment

Choose a reason for hiding this comment

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

Feel free to go ahead

@buzzdeee
Copy link
Contributor

buzzdeee commented Oct 2, 2025

chiming in late. I came up with the patch, because with OpenBSD ports building system, usually whenever a library gets included, library version starts with 0.0 irespectively about what the current version actually is, as well as then counting up, out of order. This is because not every library properly maintains (minor-)version bumps appropriately.
Kind of what you can see here: https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/gui/Makefile?rev=1.70&content-type=text/x-cvsweb-markup passed into the MAKE_FLAGS

And because the release version doesn't properly reflect library version, my intent was to separate it.

if I understand Richard @rfm right, this is otherwise not an issue anymore?

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants