CMake in its usual infinite wisdom searches all over the system for java
and finds the host OSX java and JNI headers. It then decides to build the
connector and fails later on because we didn't actually tell Nix that we
wanted java in scope. So instead, we just tell CMake that we don't want
the jdbc connector. I believe it does the same with GSS, so I disable
that stuff too. None of this should affect Linux, but let me know if it
does somheow.
The default darwin build added a je_ prefix to all exported symbols, and
that broke downstream consumers that were not expecting the prefix, like
mariadb.
I can't submit this in smaller units because the various components all
depend on one another during the stdenv bootstrap, so I think this is
the smallest sensible change I can make.
I also removed the symbol-hiding shenanigans in Libsystem. It might mess
up compatibility with 10.9 but I don't really want to support the added
complexity and I see little evidence of anyone else wanting to support
it. If someone cares, we might be able to revive compatibility, but for
now it'll stay like this.
The `dmenu` package includes two binary programs, `dmenu` and `stest`,
and two shell scripts, `dmenu_run` and `dmenu_path`. `dmenu_run`
invokes `dmenu` and `dmenu_path`, and `dmenu_path` invokes `stest`.
`dmenu_run`'s invocation of `dmenu` was patched to run it by its full
store path, but its invocation of `dmenu_path` and `dmenu_path`'s
invocation of `stest` were not.
If `dmenu_path` and `stest` were not in the set of system packages or
otherwise in the `PATH`, this situation would result in `dmenu_run`
opening a dmenu instance with no menu entries (which would normally be
generated by `dmenu_path`, which `dmenu_run` couldn't find, as it was
running it by `PATH` lookup).
This commit fixes the package to also patch the invocation of
`dmenu_path` in `dmenu_run` and the invocations of `stest` in
`dmenu_path` to invoke those programs by their full store paths.
I have tested this change on NixOS.