-
Notifications
You must be signed in to change notification settings - Fork 282
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
Conversation
@@ -18,7 +18,9 @@ higher. | |||
* libxml2 (RECOMMENDED) | |||
* libcurl (RECOMMENDED) | |||
* libdispatch (RECOMMENDED) | |||
* libxslt (OPTIONAL) | |||
* libavahi (RECOMMENDED for NSNetServices) | |||
* libxslt (RECOMMENDED) |
There was a problem hiding this comment.
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
?
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this 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.
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.