···12superherointj <5861043+superherointj@users.noreply.github.com>
13Vladimír Čunát <v@cunat.cz> <vcunat@gmail.com>
14Vladimír Čunát <v@cunat.cz> <vladimir.cunat@nic.cz>
15+Yifei Sun <ysun@hey.com> StepBroBD <Hi@StepBroBD.com>
16+Yifei Sun <ysun@hey.com> <ysun+git@stepbrobd.com>
+10-9
CONTRIBUTING.md
···2627This section describes in some detail how changes can be made and proposed with pull requests.
2829-> **Note**
30> Be aware that contributing implies licensing those contributions under the terms of [COPYING](./COPYING), an MIT-like license.
31320. Set up a local version of Nixpkgs to work with using GitHub and Git
···273274### Automatically backporting changes
275276-> **Note**
277> You have to be a [Nixpkgs maintainer](./maintainers) to automatically create a backport pull request.
278279Add the [`backport release-YY.MM` label](https://github.com/NixOS/nixpkgs/labels?q=backport) to the pull request on the `master` branch.
···285To manually create a backport pull request, follow [the standard pull request process][pr-create], with these notable differences:
286287- Use `release-YY.MM` for the base branch, both for the local branch and the pull request.
288- > **Warning**
289- > Do not use the `nixos-YY.MM` branch, that is a branch pointing to the tested release channel commit
0290291- Instead of manually making and committing the changes, use [`git cherry-pick -x`](https://git-scm.com/docs/git-cherry-pick) for each commit from the pull request you'd like to backport.
292 Either `git cherry-pick -x <commit>` when the reason for the backport is obvious (such as minor versions, fixes, etc.), otherwise use `git cherry-pick -xe <commit>` to add a reason for the backport to the commit message.
293 Here is [an example](https://github.com/nixos/nixpkgs/commit/5688c39af5a6c5f3d646343443683da880eaefb8) of this.
294295- > **Warning**
296- > Ensure the commits exists on the master branch.
297- > In the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request.
298299- In the pull request description, link to the original pull request to `master`.
300 The pull request title should include `[YY.MM]` matching the release you're backporting to.
···305## How to review pull requests
306[pr-review]: #how-to-review-pull-requests
307308-> **Warning**
309> The following section is a draft, and the policy for reviewing is still being discussed in issues such as [#11166](https://github.com/NixOS/nixpkgs/issues/11166) and [#20836](https://github.com/NixOS/nixpkgs/issues/20836).
310311The Nixpkgs project receives a fairly high number of contributions via GitHub pull requests. Reviewing and approving these is an important task and a way to contribute to the project.
···384In order for the `staging` and `staging-next` branches to be up-to-date with the latest commits on `master`, there are regular _automated_ merges from `master` into `staging-next` and `staging`.
385This is implemented using GitHub workflows [here](.github/workflows/periodic-merge-6h.yml) and [here](.github/workflows/periodic-merge-24h.yml).
386387-> **Note**
388> Changes must be sufficiently tested before being merged into any branch.
389> Hydra builds should not be used as testing platform.
390
···2627This section describes in some detail how changes can be made and proposed with pull requests.
2829+> [!Note]
30> Be aware that contributing implies licensing those contributions under the terms of [COPYING](./COPYING), an MIT-like license.
31320. Set up a local version of Nixpkgs to work with using GitHub and Git
···273274### Automatically backporting changes
275276+> [!Note]
277> You have to be a [Nixpkgs maintainer](./maintainers) to automatically create a backport pull request.
278279Add the [`backport release-YY.MM` label](https://github.com/NixOS/nixpkgs/labels?q=backport) to the pull request on the `master` branch.
···285To manually create a backport pull request, follow [the standard pull request process][pr-create], with these notable differences:
286287- Use `release-YY.MM` for the base branch, both for the local branch and the pull request.
288+289+> [!Warning]
290+> Do not use the `nixos-YY.MM` branch, that is a branch pointing to the tested release channel commit
291292- Instead of manually making and committing the changes, use [`git cherry-pick -x`](https://git-scm.com/docs/git-cherry-pick) for each commit from the pull request you'd like to backport.
293 Either `git cherry-pick -x <commit>` when the reason for the backport is obvious (such as minor versions, fixes, etc.), otherwise use `git cherry-pick -xe <commit>` to add a reason for the backport to the commit message.
294 Here is [an example](https://github.com/nixos/nixpkgs/commit/5688c39af5a6c5f3d646343443683da880eaefb8) of this.
295296+> [!Warning]
297+> Ensure the commits exists on the master branch.
298+> In the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request.
299300- In the pull request description, link to the original pull request to `master`.
301 The pull request title should include `[YY.MM]` matching the release you're backporting to.
···306## How to review pull requests
307[pr-review]: #how-to-review-pull-requests
308309+> [!Warning]
310> The following section is a draft, and the policy for reviewing is still being discussed in issues such as [#11166](https://github.com/NixOS/nixpkgs/issues/11166) and [#20836](https://github.com/NixOS/nixpkgs/issues/20836).
311312The Nixpkgs project receives a fairly high number of contributions via GitHub pull requests. Reviewing and approving these is an important task and a way to contribute to the project.
···385In order for the `staging` and `staging-next` branches to be up-to-date with the latest commits on `master`, there are regular _automated_ merges from `master` into `staging-next` and `staging`.
386This is implemented using GitHub workflows [here](.github/workflows/periodic-merge-6h.yml) and [here](.github/workflows/periodic-merge-24h.yml).
387388+> [!Note]
389> Changes must be sufficiently tested before being merged into any branch.
390> Hydra builds should not be used as testing platform.
391
+1-1
doc/README.md
···48## Syntax {#sec-contributing-markup}
49```
5051-> **Note**
52> NixOS option documentation does not support headings in general.
5354#### Inline Anchors
···48## Syntax {#sec-contributing-markup}
49```
5051+> [!Note]
52> NixOS option documentation does not support headings in general.
5354#### Inline Anchors
···602 };
603604 extraArgs = mkOption {
605- type = types.str;
606 description = lib.mdDoc ''
607 Additional arguments for all {command}`borg` calls the
608 service has. Handle with care.
609 '';
610- default = "";
611- example = "--remote-path=/path/to/borg";
612 };
613614 extraInitArgs = mkOption {
615- type = types.str;
616 description = lib.mdDoc ''
617 Additional arguments for {command}`borg init`.
618 Can also be set at runtime using `$extraInitArgs`.
619 '';
620- default = "";
621- example = "--append-only";
622 };
623624 extraCreateArgs = mkOption {
625- type = types.str;
626 description = lib.mdDoc ''
627 Additional arguments for {command}`borg create`.
628 Can also be set at runtime using `$extraCreateArgs`.
629 '';
630- default = "";
631- example = "--stats --checkpoint-interval 600";
000632 };
633634 extraPruneArgs = mkOption {
635- type = types.str;
636 description = lib.mdDoc ''
637 Additional arguments for {command}`borg prune`.
638 Can also be set at runtime using `$extraPruneArgs`.
639 '';
640- default = "";
641- example = "--save-space";
642 };
643644 extraCompactArgs = mkOption {
645- type = types.str;
646 description = lib.mdDoc ''
647 Additional arguments for {command}`borg compact`.
648 Can also be set at runtime using `$extraCompactArgs`.
649 '';
650- default = "";
651- example = "--cleanup-commits";
652 };
653 };
654 }
···602 };
603604 extraArgs = mkOption {
605+ type = with types; coercedTo (listOf str) escapeShellArgs str;
606 description = lib.mdDoc ''
607 Additional arguments for all {command}`borg` calls the
608 service has. Handle with care.
609 '';
610+ default = [ ];
611+ example = [ "--remote-path=/path/to/borg" ];
612 };
613614 extraInitArgs = mkOption {
615+ type = with types; coercedTo (listOf str) escapeShellArgs str;
616 description = lib.mdDoc ''
617 Additional arguments for {command}`borg init`.
618 Can also be set at runtime using `$extraInitArgs`.
619 '';
620+ default = [ ];
621+ example = [ "--append-only" ];
622 };
623624 extraCreateArgs = mkOption {
625+ type = with types; coercedTo (listOf str) escapeShellArgs str;
626 description = lib.mdDoc ''
627 Additional arguments for {command}`borg create`.
628 Can also be set at runtime using `$extraCreateArgs`.
629 '';
630+ default = [ ];
631+ example = [
632+ "--stats"
633+ "--checkpoint-interval 600"
634+ ];
635 };
636637 extraPruneArgs = mkOption {
638+ type = with types; coercedTo (listOf str) escapeShellArgs str;
639 description = lib.mdDoc ''
640 Additional arguments for {command}`borg prune`.
641 Can also be set at runtime using `$extraPruneArgs`.
642 '';
643+ default = [ ];
644+ example = [ "--save-space" ];
645 };
646647 extraCompactArgs = mkOption {
648+ type = with types; coercedTo (listOf str) escapeShellArgs str;
649 description = lib.mdDoc ''
650 Additional arguments for {command}`borg compact`.
651 Can also be set at runtime using `$extraCompactArgs`.
652 '';
653+ default = [ ];
654+ example = [ "--cleanup-commits" ];
655 };
656 };
657 }
···5# iptables to nftables requires a full reboot, which is a bit hard inside NixOS
6# tests.
78-import ../make-test-python.nix ({ pkgs, ...} : {
9 name = "lxd-nftables";
1011- meta = with pkgs.lib.maintainers; {
12- maintainers = [ patryk27 ];
13 };
1415 nodes.machine = { lib, ... }: {
···5# iptables to nftables requires a full reboot, which is a bit hard inside NixOS
6# tests.
78+import ../make-test-python.nix ({ pkgs, lib, ...} : {
9 name = "lxd-nftables";
1011+ meta = {
12+ maintainers = lib.teams.lxc.members;
13 };
1415 nodes.machine = { lib, ... }: {
+1-1
nixos/tests/lxd/preseed.nix
···4 name = "lxd-preseed";
56 meta = {
7- maintainers = with lib.maintainers; [ adamcstephens ];
8 };
910 nodes.machine = { lib, ... }: {
···470471 in the package expression, attempt build and extract correct hash from error messages.
472473- > **Warning**
474 > You must use one of these four fake hashes and not some arbitrarily-chosen hash.
475 > See [here][secure-hashes]
476
···470471 in the package expression, attempt build and extract correct hash from error messages.
472473+ > [!Warning]
474 > You must use one of these four fake hashes and not some arbitrarily-chosen hash.
475 > See [here][secure-hashes]
476
···246 # (we currently package 1.26 in Nixpkgs while Chromium bundles 1.21):
247 # Source: https://bugs.chromium.org/p/angleproject/issues/detail?id=7582#c1
248 ./patches/angle-wayland-include-protocol.patch
0249 # We need to revert this patch to build M114+ with LLVM 16:
250 (githubPatch {
251 # Reland [clang] Disable autoupgrading debug info in ThinLTO builds
···253 hash = "sha256-Vryjg8kyn3cxWg3PmSwYRG6zrHOqYWBMSdEMGiaPg6M=";
254 revert = true;
255 })
000256 ] ++ lib.optionals (!chromiumVersionAtLeast "119.0.6024.0") [
257 # Fix build with at-spi2-core ≥ 2.49
258 # This version is still needed for electron.
···246 # (we currently package 1.26 in Nixpkgs while Chromium bundles 1.21):
247 # Source: https://bugs.chromium.org/p/angleproject/issues/detail?id=7582#c1
248 ./patches/angle-wayland-include-protocol.patch
249+ ] ++ lib.optionals (!chromiumVersionAtLeast "120") [
250 # We need to revert this patch to build M114+ with LLVM 16:
251 (githubPatch {
252 # Reland [clang] Disable autoupgrading debug info in ThinLTO builds
···254 hash = "sha256-Vryjg8kyn3cxWg3PmSwYRG6zrHOqYWBMSdEMGiaPg6M=";
255 revert = true;
256 })
257+ ] ++ lib.optionals (chromiumVersionAtLeast "120") [
258+ # We need to revert this patch to build M120+ with LLVM 16:
259+ ./chromium-120-llvm-16.patch
260 ] ++ lib.optionals (!chromiumVersionAtLeast "119.0.6024.0") [
261 # Fix build with at-spi2-core ≥ 2.49
262 # This version is still needed for electron.
···1-diff --git a/electron/BUILD.gn b/electron/BUILD.gn
2-index c905891eb8..f2cf11fe88 100644
3---- a/electron/BUILD.gn
4-+++ b/electron/BUILD.gn
5-@@ -111,8 +111,6 @@ electron_version = exec_script("script/print-version.py",
6- [],
7- "trim string",
8- [
9-- ".git/packed-refs",
10-- ".git/HEAD",
11- "script/lib/get-version.js",
12- ])
13-14-diff --git a/electron/script/lib/get-version.js b/electron/script/lib/get-version.js
15-index 45a120482b..ddaf8ab60e 100644
16---- a/electron/script/lib/get-version.js
17-+++ b/electron/script/lib/get-version.js
18-@@ -1,22 +1 @@
19--const { spawnSync } = require('child_process');
20--const path = require('path');
21--
22--module.exports.getElectronVersion = () => {
23-- // Find the nearest tag to the current HEAD
24-- // This is equivilant to our old logic of "use a value in package.json" for the following reasons
25-- //
26-- // 1. Whenever we updated the package.json we ALSO pushed a tag with the same version
27-- // 2. Whenever we _reverted_ a bump all we actually did was push a commit that deleted the tag and changed the version number back
28-- //
29-- // The only difference in the "git describe" technique is that technically a commit can "change" it's version
30-- // number if a tag is created / removed retroactively. i.e. the first time a commit is pushed it will be 1.2.3
31-- // and after the tag is made rebuilding the same commit will result in it being 1.2.4
32-- const output = spawnSync('git', ['describe', '--tags', '--abbrev=0'], {
33-- cwd: path.resolve(__dirname, '..', '..')
34-- });
35-- if (output.status !== 0) {
36-- console.error(output.stderr);
37-- throw new Error('Failed to get current electron version');
38-- }
39-- return output.stdout.toString().trim().replace(/^v/g, '');
40--};
41-+module.exports.getElectronVersion = () => "@version@";
42-
···000000000000000000000000000000000000000000
+2-2
pkgs/development/tools/electron/version.patch
···16--- a/electron/script/lib/get-version.js
17+++ b/electron/script/lib/get-version.js
18@@ -1,22 +1 @@
19--const { spawnSync } = require('node:child_process');
20--const path = require('node:path');
21-
22-module.exports.getElectronVersion = () => {
23- // Find the nearest tag to the current HEAD
···16--- a/electron/script/lib/get-version.js
17+++ b/electron/script/lib/get-version.js
18@@ -1,22 +1 @@
19+-const { spawnSync } = require('child_process');
20+-const path = require('path');
21-
22-module.exports.getElectronVersion = () => {
23- // Find the nearest tag to the current HEAD
···56rustPlatform.buildRustPackage rec {
7 pname = "swaysome";
8- version = "2.0.0";
910 src = fetchFromGitLab {
11 owner = "hyask";
12 repo = pname;
13 rev = version;
14- sha256 = "sha256-KmGAp0EPnnM+hPRpUGsbt+NU2v5mcPaRUqo0pqUr1L8=";
15 };
1617- cargoHash = "sha256-9sOR99CaTyMQoGMKP2Cag6YNxmgEqNPE/kiJPziqB9U=";
1819 meta = with lib; {
20 description = "Helper to make sway behave more like awesomewm";
···56rustPlatform.buildRustPackage rec {
7 pname = "swaysome";
8+ version = "2.1.0";
910 src = fetchFromGitLab {
11 owner = "hyask";
12 repo = pname;
13 rev = version;
14+ sha256 = "sha256-U5W/9VL1t1/R4ADPxseBV6CMKx04I4vbp7sFmSqRZXk=";
15 };
1617+ cargoHash = "sha256-QA3EQsYgjwx8QX50yaxiJyAPDlpYYqiqLiXco1kJmw0=";
1819 meta = with lib; {
20 description = "Helper to make sway behave more like awesomewm";
+1
pkgs/top-level/aliases.nix
···70 angelfish = libsForQt5.kdeGear.angelfish; # Added 2021-10-06
71 ansible_2_12 = throw "Ansible 2.12 goes end of life in 2023/05 and can't be supported throughout the 23.05 release cycle"; # Added 2023-05-16
72 antimicroX = antimicrox; # Added 2021-10-31
073 ardour_6 = throw "ardour_6 has been removed in favor of newer versions"; # Added 2023-10-13
74 aseprite-unfree = aseprite; # Added 2023-08-26
75 asls = throw "asls has been removed: abandoned by upstream"; # Added 2023-03-16
···70 angelfish = libsForQt5.kdeGear.angelfish; # Added 2021-10-06
71 ansible_2_12 = throw "Ansible 2.12 goes end of life in 2023/05 and can't be supported throughout the 23.05 release cycle"; # Added 2023-05-16
72 antimicroX = antimicrox; # Added 2021-10-31
73+ arcanPackages = throw "arcanPackages was removed and its sub-attributes were promoted to top-level"; # Added 2023-11-26
74 ardour_6 = throw "ardour_6 has been removed in favor of newer versions"; # Added 2023-10-13
75 aseprite-unfree = aseprite; # Added 2023-08-26
76 asls = throw "asls has been removed: abandoned by upstream"; # Added 2023-03-16