This reverts commits 6d0ba08b97,
723100d83b, and
bf13eca852.
The underlying issue has now been fixed, so we can re-enable
wasm32-unknown-unknown on all platforms.
This is a temporary fix to get rustc building again with these
configurations (which notably include the default aarch64-darwin one)
without causing a stdenv rebuild. The real fix will be to avoid
passing these options through the Clang wrapper when the target is
overridden.
It could be that there are packages that need wasm32-unknown-unknown
beyond those I've marked as broken here — it's impossible to be sure
without a full rebuild. But this should be most of them.
The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.
I find lldap's defaults security-wise and its security-posture in a
broader sense deeply unsettling for something as security-critical an
authentication server.
Doesn't build with glibc 2.39. There's a potential fix documented in
https://github.com/389ds/389-ds-base/issues/5332, but the package is too
old for the patch to apply, so I'll mark it as broken for now and leave
it to the maintainer to update & fix.
Since wasm32-unknown-unknown doesn't require any extra
platform-specific dependencies (e.g. libc), we might as well just
always include in with rustc. We could also include other targets
fitting these criteria, but I wasn't able to find any others that
actually build (not even wasm64-unknown-unknown).
The old rustc-wasm32 package disabled documentation, but we don't
actually need to do that — we just need to allow for some broken links
in the wasm32-unknown-unknown documentation. Broken links in
documentation are an upstream issue anyway. There's no need we need
to fail our build for them.
Many packages have some kind of flag indicating whether or not to build with
systemd support. Most of these default to `stdenv.isLinux`, but systemd does
not build on (and is marked `broken` for) `isStatic`. Only a few packages have
the needed `&& !isStatic` in the default value for their parameter.
This commit moves the logic for the default value of these flags into
`systemd.meta.{platforms,badPlatforms}` and evaluates those conditions using
`lib.meta.availableOn`.
This provides three benefits:
1. The default values are set correctly (i.e. including `&& isStatic`)
2. The default values are set consistently
3. The way is paved for any future non-Linux systemd platforms (FreeBSD is
reported to have experimental systemd support)