Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1# Maintainers 2 3- Note: We could always use more contributors, testers, etc. E.g.: 4 - Dedicated maintainers for the NixOS stable channel 5 - PRs with cleanups, improvements, fixes, etc. (but please try to make reviews 6 as easy as possible) 7 - People who handle stale issues/PRs 8 9- Other relevant packages: 10 - `google-chrome`: Updated via Chromium's `upstream-info.nix`. 11 - `ungoogled-chromium`: A patch set for Chromium, that has its own entry in Chromium's `upstream-info.nix`. 12 - `chromedriver`: Updated via Chromium's `upstream-info.nix` and not built 13 from source. Must match Chromium's major version. 14 - `electron-source`: Various version of electron that are built from source using Chromium's 15 `-unwrapped` derivation, due to electron being based on Chromium. 16 17# Upstream links 18 19- Source code: https://source.chromium.org/chromium/chromium/src 20- Bugs: https://bugs.chromium.org/p/chromium/issues/list 21- Release updates: https://chromereleases.googleblog.com/ 22 - Available as Atom or RSS feed (filter for 23 "Stable Channel Update for Desktop") 24 - Release API: https://developer.chrome.com/docs/versionhistory/guide/ 25 - Release schedule: https://chromiumdash.appspot.com/schedule 26 27# Updating Chromium 28 29Simply run `./pkgs/applications/networking/browsers/chromium/update.py` to 30update `upstream-info.nix`. After updates it is important to test at least 31`nixosTests.chromium` (or basic manual testing) and `google-chrome` (which 32reuses `upstream-info.nix`). 33 34Note: The source tarball is often only available a few hours after the release 35was announced. The CI/CD status can be tracked here: 36- https://ci.chromium.org/p/infra/builders/cron/publish_tarball 37- https://ci.chromium.org/p/infra/builders/cron/publish_tarball_dispatcher 38 39To run all automated NixOS VM tests for Chromium, ungoogled-chromium, 40and Google Chrome (not recommended, currently 6x tests!): 41``` 42nix-build nixos/tests/chromium.nix 43``` 44 45A single test can be selected, e.g. to test `ungoogled-chromium` (see 46`channelMap` in `nixos/tests/chromium.nix` for all available options): 47``` 48nix-build nixos/tests/chromium.nix -A ungoogled 49``` 50(Note: Testing Google Chrome requires `export NIXPKGS_ALLOW_UNFREE=1`.) 51 52For custom builds it's possible to "override" `channelMap`. 53 54## Backports 55 56All updates are considered security critical and should be ported to the stable 57channel ASAP. When there is a new stable release the old one should receive 58security updates for roughly one month. After that it is important to mark 59Chromium as insecure (see 69e4ae56c4b for an example; it is important that the 60tested job still succeeds and that all browsers that use `upstream-info.nix` 61are marked as insecure). 62 63## Major version updates 64 65Unfortunately, Chromium regularly breaks on major updates and might need 66various patches. Either due to issues with the Nix build sandbox (e.g. we cannot 67fetch dependencies via the network and do not use standard FHS paths) or due to 68missing upstream fixes that need to be backported. 69 70Good sources for such patches and other hints: 71- https://github.com/archlinux/svntogit-packages/tree/packages/chromium/trunk 72- https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium 73- https://src.fedoraproject.org/rpms/chromium/tree/master 74 75If the build fails immediately due to unknown compiler flags this usually means 76that a new major release of LLVM is required. 77 78## Beta and Dev channels 79 80Those channels are only used to test and fix builds in advance. They may be 81broken at times and must not delay stable channel updates. 82 83# Testing 84 85Useful tests: 86- Version: chrome://version/ 87- GPU acceleration: chrome://gpu/ 88- Essential functionality: Browsing, extensions, video+audio, JS, ... 89- WebGL: https://get.webgl.org/ 90- VA-API: https://wiki.archlinux.org/index.php/chromium#Hardware_video_acceleration 91- Optional: Widevine CDM (proprietary), Benchmarks, Ozone, etc.