-
Notifications
You must be signed in to change notification settings - Fork 603
Drop Mozilla LDAP SDK detection, update --with-ldap code #1710
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
Conversation
|
Ok to test |
|
It seems that centos-8 and centos-stream-8 do not ship openldap's pkg-config file :\ |
AFAICT,
Perhaps we can treat LDAP SDKs on those two platforms the same way this PR currently treats Mozilla LDAP SDK (i.e. document how to build with those (arguably deficient) SDKs instead of hard-coding those instructions into Squid master/v7)? |
|
That's a fair point; should we drop CentOS 8 as a target platform now? |
I do not know what that would mean, so I cannot answer that question. My comment was specific to Squid LDAP auto-detection code and to the desire to make that specific automation/convenience feature require pkg-config files (among other "standard" things in modern environments), assuming PR Squid can still build (using custom ./configure parameters) with LDAP support on all the exceptional/older platforms where official Squid builds with LDAP support now (by default). |
|
Yes to Dropping CentOS 8 - should have happened with v6 release. I am on the fence about the "Stream" flavours since they are RHEL now which we already support separately. |
Let me try to be clearer: This means that the only ways to not regress our merge testing are to drop both or to do some platform-specific shenanigans in our jenkins (and github actions, if we migrate to them fully or partly) harnesses. Which should it be? |
Our options include:
My preferences, from the most to the least preferred, are 1 ("universal"), 4 ("eat our own dog food"), and 5 ("simple"). Footnotes
|
|
I have retired centos-8 from the build farm. |
|
Commit 558b388 implements the stricter requirements checking for helpers; it passes the build on Centos Stream 8 and 9; a diff of the build log output for the two releases is attached |
|
@yadij this seems good to go; I'll approve it after my own changes, but please do recheck it |
Mozilla has not maintained their LDAP SDK since 2017: https://wiki.mozilla.org/LDAP_C_SDK#Latest_News_-_10.2F13.2F2017 Admin needing to use that SDK can ./configure Squid with: --with-ldap=/path/to/sdk CPPFLAGS=-I/path/to/sdk/mozldap
doc/release-notes/release-7.sgml.in
Outdated
| <p>Removed special support for outdated Mozilla LDAP SDK. | ||
| <em>--with-ldap=/path/to/sdk CPPFLAGS="-I/path/to/sdk/mozldap"</em> | ||
| can be used if needed. |
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 do not insist on this polishing, but it may help avoid the false implication that Squid no longer works with Mozilla LDAP SDK:
| <p>Removed special support for outdated Mozilla LDAP SDK. | |
| <em>--with-ldap=/path/to/sdk CPPFLAGS="-I/path/to/sdk/mozldap"</em> | |
| can be used if needed. | |
| <p>Removed workarounds for outdated Mozilla LDAP SDK. Use | |
| <em>--with-ldap=/path/to/sdk CPPFLAGS="-I/path/to/sdk/mozldap"</em> | |
| to ./configure Squid to build with that SDK. |
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.
Implication is correct: Squid default builds will not work with Mozilla LDAP SDK after this patch is applied.
The custom path and CPPFLAGS are required for that LDAP SDK to be working at all.
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.
Implication is correct: Squid default builds will not work with Mozilla LDAP SDK after this patch is applied.
The above implication is not the false implication I recommend avoiding in my change request.
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.
Then why did you use those words? "false implication that Squid no longer works with Mozilla LDAP SDK"
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.
Then why did you use those words? "false implication that Squid no longer works with Mozilla LDAP SDK"
I used the words I used because I believed they accurately described the problem. I still believe that they do.
There is obviously a difference between my description and the description in your response. The two phrases do not describe the same thing. The description in your response is about whether "default builds" work with Mozilla LDAP SDK. The concept of "support" goes beyond default builds, of course -- Squid may support X even though Squid default build does not support X. My description is about that general "support" concept.
Mozilla has not maintained their LDAP SDK since 2017: https://wiki.mozilla.org/LDAP_C_SDK#Latest_News_-_10.2F13.2F2017 Admin needing to use that SDK can ./configure Squid with: --with-ldap=/path/to/sdk CPPFLAGS=-I/path/to/sdk/mozldap
84407d5 to
06c9839
Compare
| SQUID_AUTO_LIB(ldap,[LDAP],[LIBLDAP]) | ||
| dnl On MinGW set Windows LDAP libraries using -lwldap32 | ||
| AS_IF([test "x$with_ldap" != "xno" -a "$squid_host_os" = "mingw"],[ | ||
| LIBLDAP_LIBS="$LIBLDAP_LIBS -lwldap32" |
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.
Feels wrong to change LIBLDAP_LIBS that was set by admin. Should this be conditional on LIBLDAP_LIBS being empty?
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.
Maybe, for now I am leaving the logic inside this case as-was. Testing changes to it need some testing on MinGW which we are not quite up to doing (yet)
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.
That excuse itself is very weak, but when combined with the fact that this PR does change the condition, it becomes invalid.
AFAICT, the PRs in this series routinely introduce untested changes. That is just the nature of this work, given our current CI limitations. IMO, we should not apply "need some testing before I modify this further" logic when dealing with changes that appear to violate basic rules. Given the two evils, I recommend increasing the risk of breaking MinGW build instead of committing such violations. These changes should be moving us forward as far as code quality is concerned. We can fix marginal builds later, as needed.
| dnl On MinGW set Windows LDAP libraries using -lwldap32 | ||
| AS_IF([test "x$with_ldap" != "xno" -a "$squid_host_os" = "mingw"],[ | ||
| LIBLDAP_LIBS="$LIBLDAP_LIBS -lwldap32" |
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 do we have to place this special code outside of SQUID_CHECK_LIB_WORKS()?
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.
To extract it for now outside the other logic. I would like to later (n the MinGW work) identify whether it is actually needed, or if we should have a completely separate library option+check for the Windows LDAP.
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.
Alex: Why do we have to place this special code outside of SQUID_CHECK_LIB_WORKS()?
Amos: To extract it for now outside the other logic
That sentence does not appear to answer the "why" question. It essentially restates the fact accepted by the question.
Amos: I would like to later identify whether it is actually needed, or if we should have a completely separate library option+check for the Windows LDAP.
I see no reason to move this special code to accomplish the stated "identify the need" and associated possible refactoring goals. AFAICT, the move itself contradicts the intent behind SQUID_CHECK_LIB_WORKS() approach. We should not move unless there is a very compelling argument for doing so. No such argument has been provided AFAICT.
Remove Mosilla LDAP SDK support which has apparently not been maintained since 2017.
9044f6f to
13bcb18
Compare
|
Replaced by PR #1736 |
Mozilla has not maintained their LDAP SDK since 2017:
https://wiki.mozilla.org/LDAP_C_SDK#Latest_News_-_10.2F13.2F2017
Admin needing to use that SDK can ./configure Squid with: