homebrew-core
homebrew-core copied to clipboard
krb5: add dependencies
- [x] Have you followed the guidelines for contributing?
- [x] Have you ensured that your commits follow the commit style guide?
- [x] Have you checked that there aren't other open pull requests for the same formula update/change?
- [x] Have you built your formula locally with
brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting? - [x] Is your test running fine
brew test <formula>
, where<formula>
is the name of the formula you're submitting? - [x] Does your build pass
brew audit --strict <formula>
(after doingbrew install --build-from-source <formula>
)? If this is a new formula, does it passbrew audit --new <formula>
?
Building krb5
requires libedit
for the header editline/readline.h
.krb5
builds fine on debian for some reason but it didn't build on other linux distros that don't have the header file somewhere. In any case, including libedit
should be safer.
Sorry about the commit style issue. I have fixed the problems. Please review.
Building
krb5
requireslibedit
for the headereditline/readline.h
.
This should only happen if pkg-config
is detecting libedit is installed:
https://github.com/krb5/krb5/blob/krb5-1.20-final/src/configure.ac#L1340-L1376 https://github.com/krb5/krb5/blob/krb5-1.20-final/src/util/ss/listen.c#L17-L18
It's maybe a good idea to depend on libedit or readline anyway, though it is only used in kadmin
so it's not something dependents will be using much (nor has anyone asked for it). In any case, I don't think it's build-only.
That's interesting. On my system (which is running Scientific Linux 7.9 with a ton of really old packages), it failed with the make step (not the configure setup).
In any case, I don't think it's build-only.
I see, I'll remove the build only option
Alternative would be to just pass --without-libedit
and --without-readline
on Linux if the benefits are limited. I don't particularly mind though given libedit is quite light.
I would prefer having libedit because it is quite lite and it can prevent having problems with other packages that depend on it.
Not sure why CI too so long to finish that it got canceled.
It takes a long time because this formula has many dependents.
I'll review this once we've had the chance to give this a full CI run.
Can you re-trigger CI? I don't think I can trigger it (besides pushing).
CI failed because of the following error
No CI-syntax-only label found. Running tests job.
No CI-no-fail-fast label found. Stopping tests on first failing matrix build.
No CI-skip-dependents label found. Running brew test-bot --only-formulae-dependents.
No CI-long-timeout label found. Setting short GitHub Actions timeout.
Error: PR requires the CI-long-timeout label but it is not set!
Error: If the longer timeout is not required, remove the "long build" label.
Error: Otherwise, add the "CI-long-timeout" label.
Error: No more than 2 PRs at a time may use "CI-long-timeout".
No CI-test-bot-fail-fast label found. Not passing --fail-fast to brew test-bot.
No CI-build-dependents-from-source label found. Not passing --build-dependents-from-source to brew test-bot.
No CI-skip-recursive-dependents label found. Not passing --skip-recursive-dependents to brew test-bot.
No CI-skip-livecheck label found. Not passing --skip-livecheck to brew test-bot.
Yes, CI needs a special slot to schedule a CI run for this and such a slot is not available right now.
The common way of packaging krb5
on Linux would be to use libss.so
from e2fsprogs
(as done by Alpine, Arch, Debian, etc.). I think the krb5
internal copy is where the libedit
dependency comes from.
However, in Homebrew, it may be simpler to just use libedit
for now or disable it.
If we were to properly package e2fsprogs
(current formula is a bit off compared to common distribution), then Linux would require depending on util-linux
as that formula has main libuuid/blkid and that would pull in a couple other dependencies: libxcrypt
, ncurses
, zlib
.
Since Homebrew doesn't supporting split/sub packages which can reduce dependency trees (in this case, we shouldn't need libuuid/etc but cannot avoid those), pulling in e2fsprogs
may not be ideal as krb5
is a heavily used dependency on Linux.
As side note, if we were to pick one, libedit
is probably better than readline
in this case to avoid propagating GPL licensing restrictions. Would mainly impact the corresponding library (libss.so
), but makes it more likely to hit license conflicts.
Though, in other cases, readline
may be better as it is the GNU variant which is more commonly used on Linux.
I don't really know much about the package dependencies in linux, so I am quite lost with your comment.
Are you saying using libedit
in the current form is ok? Or is there anything that need to be changed in the formula?