This reverts commit 65a333600d.
This wasn't tested for correctness with something like fodwatch [0],
and should not have been (self-)merged so quickly, especially without
further review.
It also resulted in the breakage of at least one package [1] (and that's
the one we know of and was caught).
A few packages that were updated in between this commit and this revert
were not reverted back to using `rev`, but other than that, this is a
1:1 revert.
[0]: https://codeberg.org/raphaelr/fodwatch
[1]: https://github.com/NixOS/nixpkgs/pull/396904 / 758551e458
Without the commit at hand, zoom-us stops working
and instead simply maxes out RAM when updated
from version 6.2.11.5069 to version 6.3.0.5527 .
https://github.com/NixOS/nixpkgs/issues/371488
Some experimenting yielded these observations
regarding newer (problematic) zoom-us versions on NixOS:
* They still work if started via flatpak
(which creates a virtual FHS-compatible environment)
* They still work if started with `buildFHSEnv`
with all libraries provided in `multiPkgs`.
* They still work if the unmodified zoom binary is started
by manually invoking the `ld-linux` elf interpreter.
However, this again requires that libraries
are available via `LD_PRELOAD_PATH`.
It seems very much that the `patchelf --set-interpreter`
call on the `zoom` binary breaks something inside the binary.
The commit at hand removes `zoom` from the
list of binaries that are to be patched.
To ensure that program can still be executed, the `makeWrapper`
call (which is already there to wrap `zoom`) is extended
such that is explicitely uses the elf interpreter.
Unfortunatelly, when zoom tries to find its data
files (e.g. ring tones), it determines its
data directory by looking at `/proc/self/exe`.
If we start zoom by calling the elf interpreter,
`/proc/self/exe` acutally points to that interpreter.
The only solution is to copy the
interpreter into the zoom data directory
(a symlink isn't enough here).
This test starts zoom with an Xvfb X server and
verifies that the "Zoom Workplace" window is created.
zoom is started with `prlimit` to avoid problems like
https://github.com/NixOS/nixpkgs/issues/371488 .
Note: During my experiments, it turned out that if certain
libraries are missing (I don't recall which ones),
then zoom still opens its Workplace window,
then immediatelly closes it again.
To reduce the likelihood of the test passing in
that scenario, another "sleep 20" is included.
As I said before, I want to keep a narrow focus on Nixpkgs. Now that I am back
at undergrad, this focus should be even narrower: I will keep my eyes on Emacs,
and nothing else.
Cargo 1.84.0 seems to have changed the output format of cargo vendor
again, once again invalidating fetchCargoTarball FOD hashes. It's
time to fix this once and for all, switching across the board to
fetchCargoVendor, which is not dependent on cargo vendor's output
format.
It should be possible to reproduce this diff. To do so, get the list
of files changed by this commit, e.g. with git diff --name-only, then
run the following two commands, each with that list of files as their
standard input:
xargs sed -i 's/^\(. *\)\(cargoHash\)\b/\1useFetchCargoVendor = true;\n\1cargoHash/'
cut -d / -f 4 | xargs -n 1 nix-update --version=skip
This will take a long time. It might be possible to parallelize it
using xargs' -P option. I haven't tested it.