This patch extends the caching mechanism of the chromium
update scripts to use cached dependencies of all attributes
in the lockfile.
When updating ungoogled-chromium for example, the update script
will now use cached dependencies from vanilla chromium, usually
meaning that no additional fetching has to be done.
- Migrate to pkgs/by-name
- Format with nixfmt-rfc-style
- Make it possible to remove support for very old migrations in the future by increasing the `minRepoVersion` parameter
- Rename kubo-migrator-all-fs-repo-migrations to kubo-fs-repo-migrations since it may no longer include all migrations
- Add an alias for kubo-migrator-all-fs-repo-migrations to keep backwards compatibility
- Update descriptions to differentiate between kubo-migrator and kubo-migrator-unwrapped and better describe the purpose of the migrator
- Add a description to every individual migration
- Add a description to kubo-fs-repo-migrations
- Fetch the source code of the individual migrations from their specific Git tags, like upstream intends
- Enable tests for some migrations
- Check that the migrations don't crash on startup
- Mark two broken migrations as broken. They are not compatible with the latest Go versions and upstream is not interested in fixing this
- Change code to allow most updates to be done by only changing three lines (add new version and change git tag and hash)
- Add a stub for any disabled or broken migration to prevent downloading unsigned binaries from the internet, see https://github.com/ipfs/fs-repo-migrations/issues/148#issuecomment-2351355627 and https://github.com/ipfs/fs-repo-migrations/issues/188
- Use `lib.getExe` instead of hardcoding the binary name in the kubo NixOS module
- Use `substituteInPlace` with `--replace-fail` instead of `--replace`
I wondered why my neovim was slow. Turned out notmuch.vim loading took >
500ms to load (ruby and all). And I dont even use it !
I suspect the plugin could be improved to lazyload more stuff but I
think it's ok to have the vim plugin installer be a user decision as well.
I moved it to a new "vim" output : you can install the plugin via
"notmuch.vim"
This builds upon Yureka's work to build electron from source.
A lot of the newly introduced changes to the chromium derivation and
update script are 1-to-1 copies or slight derivates of that work.
Especially the newly added depot_tools.py to resolve the DEPS files does
most of the heavy lifting and is an ever so slightly modified version of
that section Yureka implemented in electron's update.py.
Some coordination between the chromium and electron maintainers should
allow us to deduplicate a lot of the duplicated code fairly easily in
the future.
That just wasn't a goal with this commit, due to time constraints and
the urgency to switch away from the release tarballs.
Instead of taking just a few hours for a tarball to be available for
download after a release, it now takes multiple days at least.
At the time of writing, roughly a week after M131 was released, the
tarball is still not available. It's unclear if it will ever be.
Reason for this are CI issues on Google's side.
Note that virtually every release contains some security critical fixes.
Also note that this commit is written with a lot of conditionals so the
electron derivation doesn't change (just yet).
The new update.mjs update script is still very much work-in-progress but
gets the job done.
Co-Authored-By: Yureka <yuka@yuka.dev>
This is no longer used as we only differentiate between stable and
ungoogled-chromium, which we already track in the "ungoogled" boolean.
Beta and dev channels are gone for good.
It's been a year since their removal in 59719f787e.
There is, however, an additional channel mapping in nixos/tests/chromium
but that one is independent from this one here.
* alfis: migrate to the new fetcher
* workstyle: migrate to the new fetcher
* mullvad: migrate to the new fetcher
* chiptrack: migrate to the new fetcher
* conduwuit: migrate to the new fetcher
* xdg-desktop-portal-cosmic: migrate to the new rust fetcher
* cloud-hypervisor: migrate to the new fetcher
On non-nixos systems the startup script uses coreutils commands linked
against a different glibc than exposed via our wrapped program. As a
result the following failure can occur when invoking `rm`, `readlink`,
`timeout`, and other coreutils commands:
```
+ timeout 3s /update-ffmpeg --user
timeout: symbol lookup error: /nix/store/pacbfvpzqz2mksby36awvbcn051zcji3-glibc-2.40-36/lib/libc.so.6: undefined symbol: __tunable_is_initialized, version GLIBC_PRIVATE
```
Repro:
1. Be on ubuntu 22.04[1]
2. `nix build --impure --expr 'with import ./. {config.allowUnfree=true;}; vivaldi.override { proprietaryCodecs = true; enableWidevine=true;}'`
3. `./result/bin/vivaldi`
[1]: I suspect other distros can exhibit the issue, but this is what I've tested on.
The changes introduced with https://github.com/NixOS/nixpkgs/pull/354367
lead currently to an evaluation error when prefetching vendored go
dependencies with `nix-prefetch`. Although this is probably a bug in
`nix-prefetch`, I prefer to use `nurl` instead as it does the same
thing, seems better maintained and doesn't block k3s updates even longer.