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

INSTALL: Add libavahi and zlib as requirements #320

Merged
merged 1 commit into from
Sep 11, 2023
Merged

Conversation

hmelder
Copy link
Contributor

@hmelder hmelder commented Sep 9, 2023

This is only a small patch that lifts libxslt, which is used in NSXMLDocument for xslt parsing, from OPTIONAL to RECOMMENDED, as a gnustep-base installation without libxslt would introduce inconsistency. The method objectByApplyingXSLT:arguments:error: (Available since Mac OS X 10.4) would just return nil if gnustep-base was compiled without libxslt support.

Additionally, libavahi for mDNS discovery, used in NSNetService (https://developer.apple.com/documentation/foundation/nsnetservice), and zlib, used in GSFileHandle for file compression should be listed and marked as RECOMMENDED.

@hmelder hmelder requested a review from rfm as a code owner September 9, 2023 11:04
@@ -18,7 +18,9 @@ higher.
* libxml2 (RECOMMENDED)
* libcurl (RECOMMENDED)
* libdispatch (RECOMMENDED)
* libxslt (OPTIONAL)
* libavahi (RECOMMENDED for NSNetServices)
* libxslt (RECOMMENDED)
Copy link
Member

Choose a reason for hiding this comment

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

Why was this changed from OPTIONAL to RECOMMENDED?

Copy link
Contributor Author

@hmelder hmelder Sep 9, 2023

Choose a reason for hiding this comment

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

NSXMLDocument is using libxslt for methods like objectByApplyingXSLT:arguments:error: and returns nil if gnustep-base was compiled without libxslt (See https://github.com/gnustep/libs-base/blob/5f92c87d784753c996e14e4c75af7464014b6833/Source/NSXMLDocument.m#L429C8-L429C28).

Having an incomplete installation is just wrong imo.

OPTIONAL is used in a context where there are different options (i.e. gnutls and openssl, or iconv and glibc).

Copy link
Member

Choose a reason for hiding this comment

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

I see, this is public API and available since macOS 10.4.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think we generally need to improve toolchain consistency by enforcing certain libraries during the configuration phase.

Copy link
Contributor

@rfm rfm left a comment

Choose a reason for hiding this comment

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

Quite right. I believe xslt was optional back before Apple added XML support (it was used only for the GNUstep specific XML extensions, so considered optional) and INSTALL just never got updated.

@hmelder hmelder merged commit b0e2150 into master Sep 11, 2023
9 checks passed
@hmelder hmelder deleted the update-install branch September 11, 2023 18:57
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