zoom-us: fix launch
Probably due to glibc update, ZoomLauncher became broken when v4l is present in
LD_PRELOAD path. It can be fixed by a) removing ZoomLauncher from startup chain,
so `zoom` is started directly or b) removing v4l from LD_PRELOAD.
The reason v4l was added before was because my video was rotated upside down without it.
Seem like nowadays this is fixed by Zoom itself, so I'm removing it.
Fixes https://github.com/NixOS/nixpkgs/issues/79954
Co-authored-by: @mmlb
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.
As explained by Orivej (reformatted from Markdown):
> These (except libsignal-protocol-c) are private dependencies of the
> actual dependencies that should neither be propagated nor added
> manually to dino. For example, libpsl and brotli come from
> libsoup-2.4.pc:
>
> Requires: glib-2.0 >= 2.38, gobject-2.0 >= 2.38, gio-2.0 >= 2.38
> Requires.private: libxml-2.0, sqlite3, libpsl >= 0.20, libbrotlidec, zlib
>
> (To be precise, glib uses utillinuxMinimal rather than utillinux.)
>
> The warnings we see, such as Package 'mount', required by 'gio-2.0',
> not found, come from CMake running both pkg-config --libs and
> pkg-config --static --libs to populate both <XXX>_LIBRARIES and
> <XXX>_STATIC_LIBRARIES[1], but dino has no use for the latter.
> Currently these warnings can not be disabled:
> https://gitlab.kitware.com/cmake/cmake/issues/18158
>
> (They could be prevented by pruning Requires.private from shared-only
> libraries akin to <https://github.com/NixOS/nixpkgs/pull/51767>,
> although it can not be detected if a library is shared-only from the
> .pc file alone, and this is just a warning.)
>
> [1]: docs: https://cmake.org/cmake/help/v3.16/module/FindPkgConfig.html
wrapQtAppsHook ignores Mach-O binaries [1]. Additionally, wrapQtAppsHook
doesn't look inside $out/Applications [2], which is where chatterino2 is
installed. This means chatterino2 for Darwin/macOS is not wrapped
properly, causing the following error when launched:
> qt.qpa.plugin: Could not find the Qt platform plugin "cocoa" in ""
>
> This application failed to start because no Qt platform plugin could
> be initialized. Reinstalling the application may fix this problem.
On macOS, explicitly wrap chatterino2's executable.
[1] pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh line 85
[2] pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh line 76
On Darwin/macOS, chatterino2's install phase copies no files into the
output. `make install` does not copy chatterino2.app. Copy the .app
manually, fixing the installation.
With this patch, chatterino2 almost works on macOS. Issue #42893
applies, so to make chatterino2 work, you must install qtbase in your
environment. For example:
$ nix-env -iA nixpkgs.qt5.qtbase
$ open ~/.nix-profile/Applications/chatterino.app
Previously:
** (dino:7442): CRITICAL **: 00:35:22.373: file /build/source/main/src/ui/unified_window.vala: line 86: uncaught error: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
(dino:7442): Gtk-WARNING **: 00:35:22.601: Found an icon but could not load it. Most likely gdk-pixbuf does not provide SVG support.
The system libsignal-protocol-c is preferred now, so fetching
submodules is no longer required.
The other libraries added are ones that the build complained about. I
suspect they are optional dependencies. Adding them makes the build
quieter, and has basically no impact on runtime closure size, so no
harm in making them available to keep the build system happy.
This is not required anymore and therefore a refactoring/cleanup
(verified with diffoscope that only the output paths change).
Credit to @ilya-fedin for bringing this to my attention.