patchelf seems to generate an ELF that "strip" cannot process:
strip: /tmp/stNGAZvd: not enough room for program headers, try linking with -N
strip:/tmp/stNGAZvd[.interp]: bad value
(This unfortunately does not cause any errors or even error output in
the build log, since the default strip hook redirects them to /dev/null
and ignores failures.)
The lack of stripping ends up leaking paths to the compiler in the debug
symbols. This more than doubles the transitive closure size of
alacritty.
Impact on closure size: 314.5M -> 131.8M.
* alacritty now has its own org, so I changed the URLs to point there
* updated the description to match upstream's description
* formatted with nixpkgs-format
Changes the default fetcher in the Rust Platform to be the newer
`fetchCargoTarball`, and changes every application using the current default to
instead opt out.
This commit does not change any hashes or cause any rebuilds. Once integrated,
we will start deleting the opt-outs and recomputing hashes.
See #79975 for details.
note: Undefined symbols for architecture x86_64:
"_CFURLResourceIsReachable", referenced from:
alacritty::config::Monitor:🆕:_$u7b$$u7b$closure$u7d$$u7d$::h8c82fbfba8a3a673 in alacritty-6a8d3226ed5c4bef.alacritty.9tpyu7jw-cgu.1.rcgu.o
"_NSDefaultRunLoopMode", referenced from:
alacritty::main::hd6e46019b2208595 in alacritty-6a8d3226ed5c4bef.alacritty.9tpyu7jw-cgu.1.rcgu.o
ld: symbol(s) not found for architecture x86_64
clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)
Based on popular demand I decided to upgraded alacritty from my own fork.
We currently also have a version in staging that works without but we
cannot easily backport this one because it relies on some changes in the rust
build infrastructure
The biggest benefit is that we no longer have to update the registry
package. This means that just about any cargo package can be built by
nix. No longer does `cargo update` need to be feared because it will
update to packages newer then what is available in nixpkgs.
Instead of fetching the cargo registry this bundles all the source code
into a "vendor/" folder.
This also uses the new --frozen and --locked flags which is nice.
Currently cargo-vendor only provides binaries for Linux and
macOS 64-bit. This can be solved by building it for the other
architectures and uploading it somewhere (like the NixOS cache).
This also has the downside that it requires a change to everyone's deps
hash. And if the old one is used because it was cached it will fail to
build as it will attempt to use the old version. For this reason the
attribute has been renamed to `cargoSha256`.
Authors:
* Kevin Cox <kevincox@kevincox.ca>
* Jörg Thalheim <Mic92@users.noreply.github.com>
* zimbatm <zimbatm@zimbatm.com>