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.
This also properly enables the spell checking with enchant2.
Note: This requires a proper configuration.
A quick and dirty solution (not recommended) could look like this:
install -Dt ~/.config/enchant/hunspell/ $(nix-build -A hunspellDicts.en_US)/share/hunspell/en_US.{aff,dic}
According to https://repology.org/repository/nix_unstable/problems, we have a
lot of packages that have http links that redirect to https as their homepage.
This commit updates all these packages to use the https links as their
homepage.
The following script was used to make these updates:
```
curl https://repology.org/api/v1/repository/nix_unstable/problems \
| jq '.[] | .problem' -r \
| rg 'Homepage link "(.+)" is a permanent redirect to "(.+)" and should be updated' --replace 's@$1@$2@' \
| sort | uniq > script.sed
find -name '*.nix' | xargs -P4 -- sed -f script.sed -i
```
The GYP build is now deprecated [0].
This results in a large number of changes and many custom Nix patches
aren't required anymore (and probably haven't been required for quite
some time now, the derivation got a bit outdated...).
A lot of the changes in this commit are based on the changes of the
Arch package [1][2] (which our package is based upon).
Rough overview of the changes:
- gcc9 -> ninja (optional but let's follow Arch here)
- Dropped GYP, only CMake now
- But: Python is still required
- fetchFromGitHub -> fetchurl (optional?)
- Apply all Arch patches and remove old patches
- Requires one new patch for range-v3
- New dependencies: enchant2, lz4, xxHash
- TODO: Plus a few new dependencies that shouldn't be required
- Cleanup: Irrelevant flags (e.g. GYP_DEFINES) and patches (e.g. sed)
- Simplifies quite a few things :)
- Some additional documentation and TODOs
Co-Authored-By: Jan Tojnar <jtojnar@gmail.com>
[0]: https://github.com/telegramdesktop/tdesktop/issues/7001
[1]: https://git.archlinux.org/svntogit/community.git/commit/?id=23eff2b1ef7435441e93120618ca899f0b0e7e61
[2]: https://git.archlinux.org/svntogit/community.git/commit/?id=6a19e949724b2e2bfcdcf2081111ecd46108e449
Most prominently we don't use `phases` because of https://github.com/NixOS/nixpkgs/issues/28910.
This is also problematic when using wrapGAppsHook.
In order to use wrapGAppsHook's automatic wrapping
(this was done manually before because there was no fixupPhase)
we need to install signal at lib/Signal instead of just into libexec.
That's because it would try to wrap .so files.
Also fix 'ld: cannot find -lsecret-1 error' on build and crash with 'This application failed to start because no Qt platform plugin could be initialized' error on startup.
Update the Name attribute in the wire-desktop.desktop applications file
and add StartupWMClass key. This fixes the icons on plasma5 and gnome3
which, in certain places, showed a generic X.org icon instead of the Wire
icon.
(wire-desktop:11531): GLib-GIO-ERROR **: 06:04:45.248: No GSettings schemas are installed on the system
and fix Fontconfig warning: "/etc/fonts/fonts.conf", line 86: unknown element "blank"
and tidied up the linux build greatly
and added kiwi as a maintainer
Adding an additional web-archive url to avoid breakage when
old versions disappear from upstream. Still keeping original location
to not needlessly hit archive.org (it's also slower).
Also:
- Add missing dependency on libpulseaudio
- Extract the deb in the build folder and move only the files we're
interested in to $out
- Use the regular builder, but turn off the patchELF hook
- Move dpkg from buildInputs to nativeBuildInputs, since it's only
used at build time
The tray icon has always been missing for me (on sway / waybar).
It turns out that it is looked up in a different location than where we package it.
Overall, it seems we are not at all following the upstream layout as can
be seen in data.tar.xz available at packages.riot.im/debian/pool/main/r/riot-web/riot-web_1.4.2_amd64.deb
This is a small fix that works for me. May not be optimal :-).