Merge master into staging-next
This commit is contained in:
@@ -3,7 +3,22 @@
|
||||
"image": "mcr.microsoft.com/devcontainers/universal:2-linux",
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/nix:1": {
|
||||
"multiUser": false
|
||||
// fails in the devcontainer sandbox, enable sandbox via config instead
|
||||
"multiUser": false,
|
||||
"packages": "nixd,nixfmt-unstable",
|
||||
"extraNixConfig": "experimental-features = nix-command flakes,sandbox = true"
|
||||
}
|
||||
},
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"jnoortheen.nix-ide"
|
||||
],
|
||||
"settings": {
|
||||
"nix.formatterPath": "nixfmt-rfc-style",
|
||||
"nix.enableLanguageServer": true,
|
||||
"nix.serverPath": "nixd"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remoteEnv": {
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
## Issue description
|
||||
|
||||
|
||||
|
||||
### Steps to reproduce
|
||||
|
||||
|
||||
|
||||
## Technical details
|
||||
|
||||
<!-- Please insert the output of running `nix-shell -p nix-info --run "nix-info -m"` below this line -->
|
||||
<!--
|
||||
Please note: This blank issue template is meant for extraordinary issues
|
||||
that do not fit the templates. Unless you know your issue is relevant to
|
||||
Nixpkgs and requires the free-form blank issue, please use the issue
|
||||
templates instead.
|
||||
-->
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
name: "Bug report (package)"
|
||||
description: "Create a generic bug report against a package."
|
||||
title: "PACKAGENAME: BUG TITLE"
|
||||
labels: ["0.kind: bug"]
|
||||
body:
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
<p align="center">
|
||||
<a href="https://nixos.org">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
|
||||
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="400px" alt="NixOS logo">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Welcome to Nixpkgs. Please replace the **`PACKAGENAME: BUG TITLE`** template above with the correct package name (As seen in the [NixOS Package Search](https://search.nixos.org/packages)) and a short title summarising what the bug entails.
|
||||
|
||||
> [!TIP]
|
||||
> For instance, if you were filing a bug against the [`hello`](https://search.nixos.org/packages?channel=unstable&from=0&size=1&buckets=%7B%22package_attr_set%22%3A%5B%22No%20package%20set%22%5D%2C%22package_license_set%22%3A%5B%22GNU%20General%20Public%20License%20v3.0%20or%20later%22%5D%2C%22package_maintainers_set%22%3A%5B%5D%2C%22package_platforms%22%3A%5B%5D%7D&sort=relevance&type=packages&query=hello) package about it failing to launch on ARM Linux, your title would be as follows:
|
||||
> `hello: fails to launch on aarch64-linux`
|
||||
|
||||
---
|
||||
- type: "dropdown"
|
||||
id: "version"
|
||||
attributes:
|
||||
label: "Nixpkgs version"
|
||||
description: |
|
||||
What version of Nixpkgs are you using?
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you are using an older version, please update to the latest stable version and check if the issue persists before continuing this bug report.
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (25.05)"
|
||||
- "- Stable (24.11)"
|
||||
- "- Previous Stable (24.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "description"
|
||||
attributes:
|
||||
label: "Describe the bug"
|
||||
description: "Please include a clear and concise description of what the issue is."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "how-to-reproduce"
|
||||
attributes:
|
||||
label: "Steps to reproduce"
|
||||
description: "Please include a step-by-step guide for reproducing this issue. Consider writing in concise, numbered bullet points to ensure that Nixpkgs developers can retrace your steps."
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "expected-behaviour"
|
||||
attributes:
|
||||
label: "Expected behaviour"
|
||||
description: "Please write a concise description of what was supposed to happen."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "screenshots"
|
||||
attributes:
|
||||
label: "Screenshots"
|
||||
description: |
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
If you need help uploading images to GitHub, please review the [relevant documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#uploading-assets).
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "logs"
|
||||
attributes:
|
||||
label: "Relevant log output"
|
||||
description: |
|
||||
If applicable, copy and paste any relevant log output.
|
||||
This will be automatically formatted into code, so no need for backticks.
|
||||
render: "console"
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "additional-context"
|
||||
attributes:
|
||||
label: "Additional context"
|
||||
description: "Add any other context about the problem here."
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "metadata"
|
||||
attributes:
|
||||
label: "System metadata"
|
||||
description: "Please run `nix-shell -p nix-info --run \"nix-info -m\"` on a terminal and paste the output of that command here."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "maintainers"
|
||||
attributes:
|
||||
label: "Notify maintainers"
|
||||
description: |
|
||||
Please mention the people who are in the **Maintainers** list of the offending package. This is done by by searching for the package on the [NixOS Package Search](https://search.nixos.org/packages) and mentioning the people listed under **Maintainers** by prefixing their GitHub usernames with an '@' character. Please add the mentions above the `---` characters in the template below.
|
||||
value: |
|
||||
|
||||
---
|
||||
|
||||
**Note for maintainers:** Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)
|
||||
validations:
|
||||
required: false
|
||||
- type: "checkboxes"
|
||||
id: "sanity-check"
|
||||
attributes:
|
||||
label: "I assert that this issue is relevant for Nixpkgs"
|
||||
description: |
|
||||
This bug tracker is for actionable issues that are not the result of user error. If you need help using your system and are unsure if this is a bug with Nixpkgs, please consider asking for help on the [NixOS Discourse](https://discourse.nixos.org/) or the [NixOS Matrix Space](https://matrix.to/#/#community:nixos.org) before opening an issue.
|
||||
options:
|
||||
- label: "I assert that this is a bug and not a support request."
|
||||
required: true
|
||||
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+label%3A%220.kind%3A+bug%22+-label%3A%226.topic%3A+darwin%22+-label%3A%226.topic%3A+nixos%22). "
|
||||
required: true
|
||||
- label: "I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it."
|
||||
required: true
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
# Thank you for helping improve Nixpkgs!
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "prioritisation"
|
||||
attributes:
|
||||
label: "Is this issue important to you?"
|
||||
description: |
|
||||
**Please do not modify this text area!**
|
||||
|
||||
This template helps Nixpkgs developers know which issues should be prioritised by allowing users to vote with a :+1: reaction.
|
||||
This is not a guarantee that highly-requested issues will be fixed first, but it helps us to figure out what's important to users. Please react on other users' issues if you find them important.
|
||||
value: |
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -0,0 +1,156 @@
|
||||
name: "Bug report (macOS)"
|
||||
description: "Create a bug report against a package where the issue only occurs on macOS."
|
||||
title: "PACKAGENAME: BUG TITLE"
|
||||
labels: ["0.kind: bug", "6.topic: darwin"]
|
||||
body:
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
<p align="center">
|
||||
<a href="https://nixos.org">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
|
||||
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="400px" alt="NixOS logo">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Welcome to Nixpkgs. Please replace the **`PACKAGENAME: BUG TITLE`** template above with the correct package name (As seen in the [NixOS Package Search](https://search.nixos.org/packages)) and a short title summarising what the bug entails.
|
||||
|
||||
> [!TIP]
|
||||
> For instance, if you were filing a bug against the [`hello`](https://search.nixos.org/packages?channel=unstable&from=0&size=1&buckets=%7B%22package_attr_set%22%3A%5B%22No%20package%20set%22%5D%2C%22package_license_set%22%3A%5B%22GNU%20General%20Public%20License%20v3.0%20or%20later%22%5D%2C%22package_maintainers_set%22%3A%5B%5D%2C%22package_platforms%22%3A%5B%5D%7D&sort=relevance&type=packages&query=hello) package about it failing to launch on Apple Silicon, your title would be as follows:
|
||||
> `hello: fails to launch on aarch64-darwin`
|
||||
|
||||
---
|
||||
- type: "dropdown"
|
||||
id: "version"
|
||||
attributes:
|
||||
label: "Nixpkgs version"
|
||||
description: |
|
||||
What version of Nixpkgs are you using?
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you are using an older version, please update to the latest stable version and check if the issue persists before continuing this bug report.
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (25.05)"
|
||||
- "- Stable (24.11)"
|
||||
- "- Previous Stable (24.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "description"
|
||||
attributes:
|
||||
label: "Describe the bug"
|
||||
description: "Please include a clear and concise description of what the issue is."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "how-to-reproduce"
|
||||
attributes:
|
||||
label: "Steps to reproduce"
|
||||
description: "Please include a step-by-step guide for reproducing this issue. Consider writing in concise, numbered bullet points to ensure that Nixpkgs developers can retrace your steps."
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "expected-behaviour"
|
||||
attributes:
|
||||
label: "Expected behaviour"
|
||||
description: "Please write a concise description of what was supposed to happen."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "screenshots"
|
||||
attributes:
|
||||
label: "Screenshots"
|
||||
description: |
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
If you need help uploading images to GitHub, please review the [relevant documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#uploading-assets).
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "logs"
|
||||
attributes:
|
||||
label: "Relevant log output"
|
||||
description: |
|
||||
If applicable, copy and paste any relevant log output.
|
||||
This will be automatically formatted into code, so no need for backticks.
|
||||
render: "console"
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "additional-context"
|
||||
attributes:
|
||||
label: "Additional context"
|
||||
description: "Add any other context about the problem here."
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "metadata"
|
||||
attributes:
|
||||
label: "System metadata"
|
||||
description: "Please run `nix-shell -p nix-info --run \"nix-info -m\"` on a terminal and paste the output of that command here."
|
||||
validations:
|
||||
required: true
|
||||
- type: "dropdown"
|
||||
id: "nix-darwin"
|
||||
attributes:
|
||||
label: "Are you using nix-darwin?"
|
||||
description: |
|
||||
[`nix-darwin`](https://github.com/LnL7/nix-darwin) is a set of NixOS-like modules for macOS systems. Depending on your issue, this information may be relevant.
|
||||
options:
|
||||
- "Yes, I am using nix-darwin."
|
||||
- "No, I am not using nix-darwin."
|
||||
default: 1
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "maintainers"
|
||||
attributes:
|
||||
label: "Notify maintainers"
|
||||
description: |
|
||||
Please mention the people who are in the **Maintainers** list of the offending package. This is done by by searching for the package on the [NixOS Package Search](https://search.nixos.org/packages) and mentioning the people listed under **Maintainers** by prefixing their GitHub usernames with an '@' character. Please add the mentions above the `---` characters in the template below.
|
||||
|
||||
If this issue is related to the Darwin packaging architecture as a whole, or is related to the core Darwin frameworks, consider mentioning the `@NixOS/darwin-core` team.
|
||||
value: |
|
||||
|
||||
---
|
||||
|
||||
**Note for maintainers:** Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)
|
||||
validations:
|
||||
required: false
|
||||
- type: "checkboxes"
|
||||
id: "sanity-check"
|
||||
attributes:
|
||||
label: "I assert that this issue is relevant for Nixpkgs"
|
||||
description: |
|
||||
This bug tracker is for actionable issues that are not the result of user error. If you need help using your system and are unsure if this is a bug with Nixpkgs/NixOS, please consider asking for help on the [NixOS Discourse](https://discourse.nixos.org/) or the [NixOS Matrix Space](https://matrix.to/#/#community:nixos.org) before opening an issue.
|
||||
options:
|
||||
- label: "I assert that this is a bug and not a support request."
|
||||
required: true
|
||||
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+label%3A%220.kind%3A+bug%22+label%3A%226.topic%3A+darwin%22). "
|
||||
required: true
|
||||
- label: "I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it."
|
||||
required: true
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
# Thank you for helping improve Nixpkgs!
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "prioritisation"
|
||||
attributes:
|
||||
label: "Is this issue important to you?"
|
||||
description: |
|
||||
**Please do not modify this text area!**
|
||||
|
||||
This template helps Nixpkgs developers know which issues should be prioritised by allowing users to vote with a :+1: reaction.
|
||||
This is not a guarantee that highly-requested issues will be fixed first, but it helps us to figure out what's important to users. Please react on other users' issues if you find them important.
|
||||
value: |
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -0,0 +1,146 @@
|
||||
name: "Bug report (NixOS module)"
|
||||
description: "Create a bug report against a NixOS Module."
|
||||
title: "nixos/MODULENAME: BUG TITLE"
|
||||
labels: ["0.kind: bug", "6.topic: nixos"]
|
||||
body:
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
<p align="center">
|
||||
<a href="https://nixos.org">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
|
||||
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="400px" alt="NixOS logo">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Welcome to Nixpkgs. Please replace the **`nixos/MODULENAME: BUG TITLE`** template above with the correct module name (As seen in the [NixOS Option Search](https://search.nixos.org/options)) and a short title summarising what the bug entails.
|
||||
|
||||
> [!TIP]
|
||||
> For instance, if you were filing a bug against the [`systemd-boot`](https://search.nixos.org/options?channel=unstable&show=boot.loader.systemd-boot.enable&from=0&size=1) module about it failing to install [`memtest86`](https://search.nixos.org/options?channel=unstable&show=boot.loader.systemd-boot.memtest86.enable&from=0&size=1), your title would be as follows:
|
||||
> `nixos/systemd-boot: fails to install memtest86`
|
||||
|
||||
---
|
||||
- type: "dropdown"
|
||||
id: "version"
|
||||
attributes:
|
||||
label: "Nixpkgs version"
|
||||
description: |
|
||||
What version of Nixpkgs are you using?
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you are using an older version, please [update to the latest stable version](https://nixos.org/download) and check if the issue persists before continuing this bug report.
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (25.05)"
|
||||
- "- Stable (24.11)"
|
||||
- "- Previous Stable (24.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "description"
|
||||
attributes:
|
||||
label: "Describe the bug"
|
||||
description: "Please include a clear and concise description of what the issue is."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "how-to-reproduce"
|
||||
attributes:
|
||||
label: "Steps to reproduce"
|
||||
description: "Please include a step-by-step guide for reproducing this issue. Consider writing in concise, numbered bullet points to ensure that Nixpkgs developers can retrace your steps."
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "expected-behaviour"
|
||||
attributes:
|
||||
label: "Expected behaviour"
|
||||
description: "Please write a concise description of what was supposed to happen."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "screenshots"
|
||||
attributes:
|
||||
label: "Screenshots"
|
||||
description: |
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
If you need help uploading images to GitHub, please review the [relevant documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#uploading-assets).
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "logs"
|
||||
attributes:
|
||||
label: "Relevant log output"
|
||||
description: |
|
||||
If applicable, copy and paste any relevant log output.
|
||||
This will be automatically formatted into code, so no need for backticks.
|
||||
render: "console"
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "additional-context"
|
||||
attributes:
|
||||
label: "Additional context"
|
||||
description: "Add any other context about the problem here."
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "metadata"
|
||||
attributes:
|
||||
label: "System metadata"
|
||||
description: "Please run `nix-shell -p nix-info --run \"nix-info -m\"` on a terminal and paste the output of that command here."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "maintainers"
|
||||
attributes:
|
||||
label: "Notify maintainers"
|
||||
description: |
|
||||
Please mention the people who are in the `meta.maintainers` list of the offending module. This is done by prefixing the person's username with an '@' character. You can quickly go to the source code of a module by searching for it on the [NixOS Option Search](https://search.nixos.org/options) and clicking the "Declared in..." button.
|
||||
|
||||
Please note that the maintainer attribute name does not always match the maintainer's GitHub username. If that occurs, try looking in [`maintainers/maintainer-list.nix`](https://github.com/NixOS/nixpkgs/blob/master/maintainers/maintainer-list.nix) for the maintainer attribute name, and checking if the maintainer has a listed GitHub username.
|
||||
|
||||
If in doubt, check `git blame` for whoever last touched the module, or check the associated package's maintainers. Please add the mentions above the `---` characters.
|
||||
value: |
|
||||
|
||||
---
|
||||
|
||||
**Note for maintainers:** Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)
|
||||
validations:
|
||||
required: false
|
||||
- type: "checkboxes"
|
||||
id: "sanity-check"
|
||||
attributes:
|
||||
label: "I assert that this issue is relevant for Nixpkgs"
|
||||
description: |
|
||||
This bug tracker is for actionable issues that are not the result of user error. If you need help using your system and are unsure if this is a bug with Nixpkgs, please consider asking for help on the [NixOS Discourse](https://discourse.nixos.org/) or the [NixOS Matrix Space](https://matrix.to/#/#community:nixos.org) before opening an issue.
|
||||
options:
|
||||
- label: "I assert that this is a bug and not a support request."
|
||||
required: true
|
||||
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+label%3A%220.kind%3A+bug%22+label%3A%226.topic%3A+nixos%22). "
|
||||
required: true
|
||||
- label: "I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it."
|
||||
required: true
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
# Thank you for helping improve Nixpkgs!
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "prioritisation"
|
||||
attributes:
|
||||
label: "Is this issue important to you?"
|
||||
description: |
|
||||
**Please do not modify this text area!**
|
||||
|
||||
This template helps Nixpkgs developers know which issues should be prioritised by allowing users to vote with a :+1: reaction.
|
||||
This is not a guarantee that highly-requested issues will be fixed first, but it helps us to figure out what's important to users. Please react on other users' issues if you find them important.
|
||||
value: |
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -0,0 +1,149 @@
|
||||
name: "Build failure"
|
||||
description: "Report a package that is failing to build."
|
||||
title: "Build failure: PACKAGENAME"
|
||||
labels: ["0.kind: build failure"]
|
||||
body:
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
<p align="center">
|
||||
<a href="https://nixos.org">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
|
||||
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="400px" alt="NixOS logo">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Welcome to Nixpkgs. Please replace the **`Build failure: PACKAGENAME`** template above with the correct package name (As seen in the [NixOS Package Search](https://search.nixos.org/packages)).
|
||||
|
||||
> [!TIP]
|
||||
> For instance, if you were filing a build failure against the [`hello`](https://search.nixos.org/packages?channel=unstable&from=0&size=1&buckets=%7B%22package_attr_set%22%3A%5B%22No%20package%20set%22%5D%2C%22package_license_set%22%3A%5B%22GNU%20General%20Public%20License%20v3.0%20or%20later%22%5D%2C%22package_maintainers_set%22%3A%5B%5D%2C%22package_platforms%22%3A%5B%5D%7D&sort=relevance&type=packages&query=hello) package, your title would be as follows:
|
||||
> `Build failure: hello`
|
||||
|
||||
---
|
||||
- type: "dropdown"
|
||||
id: "version"
|
||||
attributes:
|
||||
label: "Nixpkgs version"
|
||||
description: |
|
||||
In what version of Nixpkgs did the build failure occur?
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you are using an older version, please update to the latest stable version and check if the build failure persists before continuing this report.
|
||||
> If you are purposefully trying to build an ancient version of a package in an older Nixpkgs, please coordinate with the [NixOS Archivists](https://matrix.to/#/#archivists:nixos.org).
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (25.05)"
|
||||
- "- Stable (24.11)"
|
||||
- "- Previous Stable (24.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "how-to-reproduce"
|
||||
attributes:
|
||||
label: "Steps to reproduce"
|
||||
description: "Please include a step-by-step guide for reproducing this build failure. Consider writing in concise, numbered bullet points to ensure that Nixpkgs developers can retrace your steps."
|
||||
validations:
|
||||
required: true
|
||||
- type: "dropdown"
|
||||
id: "hydra"
|
||||
attributes:
|
||||
label: "Can Hydra reproduce this build failure?"
|
||||
description: |
|
||||
Can [Hydra](https://hydra.nixos.org), Nixpkgs' Continuous Integration system, reproduce this build failure?
|
||||
Please use the search function in the header bar to locate the last build job for the package in question.
|
||||
- If there's a <img src="https://raw.githubusercontent.com/NixOS/hydra/refs/heads/master/src/root/static/images/emojione-red-x-274c.svg" width="20px" align="top" alt="Red X"> icon near the package entry, say '**Yes, Hydra can reproduce this build failure.**'
|
||||
- If there's a <img src="https://raw.githubusercontent.com/NixOS/hydra/refs/heads/master/src/root/static/images/emojione-gray-x-2716.svg" width="20px" align="top" alt="Dark Gray X"> icon near the package entry, then the build failure occurs with another package, and you need to track the original failing package by going down the chain of 'Cached failures' until you reach the final package in the failing dependency chain. Once you locate the failing package, re-write this report against that package and say '**Yes, Hydra can reproduce this build failure.**'
|
||||
- If there's a <img src="https://raw.githubusercontent.com/NixOS/hydra/refs/heads/master/src/root/static/images/emojione-check-2714.svg" width="20px" align="top" alt="Green Check Mark"> icon near the package entry, then it most likely means it's a local issue with your system. (Maybe you ran out of space?)
|
||||
You can still open a build failure report, but please say '**No, Hydra cannot reproduce this build failure.**' below.
|
||||
- If there's a <img src="https://raw.githubusercontent.com/NixOS/hydra/refs/heads/master/src/root/static/images/emojione-question-2754.svg" width="20px" align="top" alt="Gray Question Mark"> icon near the package entry, say '**Hydra is currently rebuilding this package.**'
|
||||
- If there's a <img src="https://raw.githubusercontent.com/NixOS/hydra/refs/heads/master/src/root/static/images/emojione-stopsign-1f6d1.svg" width="20px" align="top" alt="Red Stop Sign"> icon near the package entry, then the build job was stopped manually. If this occurs, please coordinate with the [Infrastructure Team](https://matrix.to/#/#infra:nixos.org), and say '**The last build job was manually cancelled.**'
|
||||
options:
|
||||
- "Please select the Hydra Status."
|
||||
- "Yes, Hydra can reproduce this build failure."
|
||||
- "No, Hydra cannot reproduce this build failure."
|
||||
- "Hydra is currently rebuilding this package."
|
||||
- "The last build job was manually cancelled."
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "hydra-logs"
|
||||
attributes:
|
||||
label: "Link to Hydra build job"
|
||||
description: "If you answered 'yes' in the question above, please copy-and-paste the link to the failing Hydra job here."
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "logs"
|
||||
attributes:
|
||||
label: "Relevant log output"
|
||||
description: |
|
||||
Please copy and paste the logs from the failed build.
|
||||
This will be automatically formatted into code, so no need for backticks.
|
||||
render: "console"
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "additional-context"
|
||||
attributes:
|
||||
label: "Additional context"
|
||||
description: "Add any other context about the problem here."
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "metadata"
|
||||
attributes:
|
||||
label: "System metadata"
|
||||
description: "Please run `nix-shell -p nix-info --run \"nix-info -m\"` on a terminal and paste the output of that command here."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "maintainers"
|
||||
attributes:
|
||||
label: "Notify maintainers"
|
||||
description: |
|
||||
Please mention the people who are in the **Maintainers** list of the offending package. This is done by by searching for the package on the [NixOS Package Search](https://search.nixos.org/packages) and mentioning the people listed under **Maintainers** by prefixing their GitHub usernames with an '@' character. Please add the mentions above the `---` characters in the template below.
|
||||
value: |
|
||||
|
||||
---
|
||||
|
||||
**Note for maintainers:** Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)
|
||||
validations:
|
||||
required: false
|
||||
- type: "checkboxes"
|
||||
id: "sanity-check"
|
||||
attributes:
|
||||
label: "I assert that this issue is relevant for Nixpkgs"
|
||||
description: |
|
||||
This bug tracker is for actionable issues that are not the result of user error. If you need help using your system and are unsure if this is a bug with Nixpkgs, please consider asking for help on the [NixOS Discourse](https://discourse.nixos.org/) or the [NixOS Matrix Space](https://matrix.to/#/#community:nixos.org) before opening an issue.
|
||||
options:
|
||||
- label: "I assert that this is a bug and not a support request."
|
||||
required: true
|
||||
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+label%3A%220.kind%3A+build+failure%22). "
|
||||
required: true
|
||||
- label: "I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it."
|
||||
required: true
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
# Thank you for helping improve Nixpkgs!
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "prioritisation"
|
||||
attributes:
|
||||
label: "Is this issue important to you?"
|
||||
description: |
|
||||
**Please do not modify this text area!**
|
||||
|
||||
This template helps Nixpkgs developers know which issues should be prioritised by allowing users to vote with a :+1: reaction.
|
||||
This is not a guarantee that highly-requested issues will be fixed first, but it helps us to figure out what's important to users. Please react on other users' issues if you find them important.
|
||||
value: |
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -0,0 +1,127 @@
|
||||
name: "Request: new package"
|
||||
description: "Create a package request for software that is not yet included in Nixpkgs."
|
||||
title: "Package request: PACKAGENAME"
|
||||
labels: ["0.kind: enhancement", "0.kind: packaging request", "9.needs: package (new)"]
|
||||
body:
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
<p align="center">
|
||||
<a href="https://nixos.org">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
|
||||
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="400px" alt="NixOS logo">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Welcome to Nixpkgs. Please replace the **`Package request: PACKAGENAME`** template above with the correct package name (As seen in the [NixOS Package Search](https://search.nixos.org/packages)).
|
||||
|
||||
> [!TIP]
|
||||
> For instance, if you were filing a request against the missing `hello` package, your title would be as follows:
|
||||
> `Package request: hello`
|
||||
|
||||
---
|
||||
- type: "dropdown"
|
||||
id: "version"
|
||||
attributes:
|
||||
label: "Nixpkgs version"
|
||||
description: |
|
||||
What version of Nixpkgs are you using?
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you are using an older or stable version, please update to the latest **unstable** version and check if the package still does not exist before continuing this request.
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (25.05)"
|
||||
- "- Stable (24.11)"
|
||||
- "- Previous Stable (24.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "description"
|
||||
attributes:
|
||||
label: "Describe the package"
|
||||
description: "Please include a clear and concise description of what the package is."
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "homepage"
|
||||
attributes:
|
||||
label: "Upstream homepage"
|
||||
description: "Please copy and paste a link to the package's homepage. Leave this field blank if there is no upstream homepage."
|
||||
validations:
|
||||
required: false
|
||||
- type: "input"
|
||||
id: "source"
|
||||
attributes:
|
||||
label: "Source URL"
|
||||
description: "Please copy and paste a link to the package's source code or binary download page."
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "license"
|
||||
attributes:
|
||||
label: "License"
|
||||
description: "Please indicate the package's license. If the package has no license, or the source code is not public, please indicate the package is `unfree`."
|
||||
validations:
|
||||
required: true
|
||||
- type: "dropdown"
|
||||
id: "platforms"
|
||||
attributes:
|
||||
label: "Platforms"
|
||||
description: "Please indicate the platforms this package compiles for. `darwin` refers to macOS. `Exotic` refers to uncommon platforms like RISC-V or 32-bit ARM; please mention in the 'Additional Context' section below if this package is supposed to compile for such exotic platforms."
|
||||
multiple: true
|
||||
options:
|
||||
- "x86_64-linux"
|
||||
- "aarch64-linux"
|
||||
- "x86_64-darwin"
|
||||
- "aarch64-darwin"
|
||||
- "Exotic"
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "additional-context"
|
||||
attributes:
|
||||
label: "Additional context"
|
||||
description: "Add any other context about the proposed module here."
|
||||
validations:
|
||||
required: false
|
||||
- type: "checkboxes"
|
||||
id: "sanity-check"
|
||||
attributes:
|
||||
label: "I assert that this issue is relevant for Nixpkgs"
|
||||
options:
|
||||
- label: "I assert that this package does not yet exist in an [open pull request](https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+package+%28new%29%22) or in [Nixpkgs Unstable](https://search.nixos.org/packages?channel=unstable)."
|
||||
required: true
|
||||
- label: "I assert that this is not a [duplicate of any known issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+label%3A%220.kind%3A+packaging+request%22)."
|
||||
required: true
|
||||
- label: "I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it."
|
||||
required: true
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
# Thank you for helping improve Nixpkgs!
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "prioritisation"
|
||||
attributes:
|
||||
label: "For this package's maintainers:"
|
||||
description: |
|
||||
**Please do not modify this text area!**
|
||||
|
||||
This template helps Nixpkgs developers know which issues should be prioritised by allowing users to vote with a :+1: reaction and also reminds them to tag this issue in their pull requests.
|
||||
This is not a guarantee that highly-requested issues will be fixed first, but it helps us to figure out what's important to users. Please react on other users' issues if you find them important.
|
||||
value: |
|
||||
|
||||
Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)
|
||||
|
||||
---
|
||||
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -0,0 +1,120 @@
|
||||
name: "Request: package update"
|
||||
description: "Create an update request for an existing, but outdated package."
|
||||
title: "Update Request: PACKAGENAME OLDVERSION → NEWVERSION"
|
||||
labels: ["0.kind: enhancement", "9.needs: package (update)"]
|
||||
body:
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
<p align="center">
|
||||
<a href="https://nixos.org">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
|
||||
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="400px" alt="NixOS logo">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Welcome to Nixpkgs. Please replace the **`Update Request: PACKAGENAME OLDVERSION → NEWVERSION`** template above with the correct package name (As seen in the [NixOS Package Search](https://search.nixos.org/packages)), the current version of the package, and the latest version of the package.
|
||||
|
||||
> [!TIP]
|
||||
> For instance, if you were filing a request against the out of date `hello` package, where the current version in Nixpkgs is 1.0.0, but the latest version upstream is 1.0.1, your title would be as follows:
|
||||
> `Update Request: hello 1.0.0 → 1.0.1`
|
||||
|
||||
> [!NOTE]
|
||||
> If you are filing an update request to change a package's source to a fork, please file a new package request instead. Even if the original upstream is outdated, the fork should be considered a new package.
|
||||
|
||||
---
|
||||
- type: "dropdown"
|
||||
id: "version"
|
||||
attributes:
|
||||
label: "Nixpkgs version"
|
||||
description: |
|
||||
What version of Nixpkgs are you using?
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you are using an older or stable version, please update to the latest **unstable** version and check if the package is still out of date.
|
||||
> If the package has been updated in unstable, but you believe the update should be backported to the stable release of Nixpkgs, please file the '**Request: backport to stable**' form instead.
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (25.05)"
|
||||
- "- Stable (24.11)"
|
||||
- "- Previous Stable (24.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "name"
|
||||
attributes:
|
||||
label: "Package name"
|
||||
description: "Please indicate the name of the package."
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "upstream-version"
|
||||
attributes:
|
||||
label: "Upstream version"
|
||||
description: "Please indicate the latest version of the package."
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "nixpkgs-version"
|
||||
attributes:
|
||||
label: "Nixpkgs version"
|
||||
description: |
|
||||
Please indicate the current version number in Nixpkgs' **unstable** channel. You can check this by setting the [NixOS Package Search](https://search.nixos.org/packages?channel=unstable) channel to 'unstable' and searching for the package.
|
||||
If you meant to request an upgrade in the stable channel, please file the '**Request: backport to stable**' form instead.
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "changelog"
|
||||
attributes:
|
||||
label: "Changelog"
|
||||
description: "If applicable, please link the upstream changelog for the latest version."
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "maintainers"
|
||||
attributes:
|
||||
label: "Notify maintainers"
|
||||
description: |
|
||||
Please mention the people who are in the **Maintainers** list of the offending package. This is done by by searching for the package on the [NixOS Package Search](https://search.nixos.org/packages) and mentioning the people listed under **Maintainers** by prefixing their GitHub usernames with an '@' character. Please add the mentions above the `---` characters in the template below.
|
||||
value: |
|
||||
|
||||
---
|
||||
|
||||
**Note for maintainers:** Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)
|
||||
validations:
|
||||
required: false
|
||||
- type: "checkboxes"
|
||||
id: "sanity-check"
|
||||
attributes:
|
||||
label: "I assert that this issue is relevant for Nixpkgs"
|
||||
options:
|
||||
- label: "I assert that this package update does not yet exist in an [open pull request](https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+package+%28update%29%22) or in [Nixpkgs Unstable](https://search.nixos.org/packages?channel=unstable)."
|
||||
required: true
|
||||
- label: "I assert that this is not a [duplicate of any known issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+label%3A%229.needs%3A+package+%28update%29%22)."
|
||||
required: true
|
||||
- label: "I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it."
|
||||
required: true
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
# Thank you for helping improve Nixpkgs!
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "prioritisation"
|
||||
attributes:
|
||||
label: "Is this issue important to you?"
|
||||
description: |
|
||||
**Please do not modify this text area!**
|
||||
|
||||
This template helps Nixpkgs developers know which issues should be prioritised by allowing users to vote with a :+1: reaction.
|
||||
This is not a guarantee that highly-requested issues will be fixed first, but it helps us to figure out what's important to users. Please react on other users' issues if you find them important.
|
||||
value: |
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -0,0 +1,100 @@
|
||||
name: "Request: NixOS module"
|
||||
description: "Create a new NixOS Module request for an existing package."
|
||||
title: "Module Request: nixos/MODULENAME"
|
||||
labels: ["0.kind: enhancement", "6.topic: nixos", "9.needs: module (new)"]
|
||||
body:
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
<p align="center">
|
||||
<a href="https://nixos.org">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
|
||||
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="400px" alt="NixOS logo">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Welcome to Nixpkgs. Please replace the **`Module Request: nixos/MODULENAME`** template above with the correct module name (As seen in the [NixOS Option Search](https://search.nixos.org/options)).
|
||||
|
||||
> [!TIP]
|
||||
> For instance, if you were filing a request against the missing `hello` module, your title would be as follows:
|
||||
> `Module Request: nixos/hello`
|
||||
|
||||
---
|
||||
- type: "dropdown"
|
||||
id: "version"
|
||||
attributes:
|
||||
label: "Nixpkgs version"
|
||||
description: |
|
||||
What version of Nixpkgs are you using?
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you are using an older or stable version, please update to the latest **unstable** version and check if the module still does not exist before continuing this request.
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (25.05)"
|
||||
- "- Stable (24.11)"
|
||||
- "- Previous Stable (24.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "description"
|
||||
attributes:
|
||||
label: "Describe the proposed module"
|
||||
description: "Please include a clear and concise description of what the module should accomplish."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "additional-context"
|
||||
attributes:
|
||||
label: "Additional context"
|
||||
description: "Add any other context about the proposed module here."
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "maintainers"
|
||||
attributes:
|
||||
label: "Notify maintainers"
|
||||
description: |
|
||||
Please mention the people who are in the **Maintainers** list of the offending package. This is done by by searching for the package on the [NixOS Package Search](https://search.nixos.org/packages) and mentioning the people listed under **Maintainers** by prefixing their GitHub usernames with an '@' character. Please add the mentions above the `---` characters in the template below.
|
||||
value: |
|
||||
|
||||
---
|
||||
|
||||
**Note for maintainers:** Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)
|
||||
validations:
|
||||
required: false
|
||||
- type: "checkboxes"
|
||||
id: "sanity-check"
|
||||
attributes:
|
||||
label: "I assert that this issue is relevant for Nixpkgs"
|
||||
options:
|
||||
- label: "I assert that this module does not yet exist in an [open pull request](https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+module+%28new%29%22) or in [NixOS Unstable](https://search.nixos.org/options?channel=unstable)."
|
||||
required: true
|
||||
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+label%3A%229.needs%3A+module+%28new%29%22). "
|
||||
required: true
|
||||
- label: "I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it."
|
||||
required: true
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
# Thank you for helping improve NixOS!
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "prioritisation"
|
||||
attributes:
|
||||
label: "Is this issue important to you?"
|
||||
description: |
|
||||
**Please do not modify this text area!**
|
||||
|
||||
This template helps Nixpkgs developers know which issues should be prioritised by allowing users to vote with a :+1: reaction.
|
||||
This is not a guarantee that highly-requested issues will be fixed first, but it helps us to figure out what's important to users. Please react on other users' issues if you find them important.
|
||||
value: |
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -0,0 +1,102 @@
|
||||
name: "Request: backport to stable"
|
||||
description: "Create a backport request for a package that is up-to-date in the unstable channel, but outdated in the stable channel."
|
||||
title: "Backport to Stable: PACKAGENAME OLDVERSION → NEWVERSION"
|
||||
labels: ["0.kind: enhancement", "9.needs: port to stable"]
|
||||
body:
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
<p align="center">
|
||||
<a href="https://nixos.org">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
|
||||
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="400px" alt="NixOS logo">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
> [!CAUTION]
|
||||
> **Before you begin:** Be advised that backports are subject to the [release suitability guidelines](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#changes-acceptable-for-releases).
|
||||
> Stable releases of Nixpkgs do not receive breaking changes, which include major package updates that have incompatible API changes and break backwards compatibility. In the [Semantic Versioning standard](https://semver.org/), this is the first version number. (1.X.X)
|
||||
> Generally, only minor package updates, such as security patches, bug fixes and feature additions (but not removals!) will be considered for backporting. Please read the rules above carefully before filing this backport request.
|
||||
|
||||
Welcome to Nixpkgs. Please replace the **`Backport to Stable: PACKAGENAME OLDVERSION → NEWVERSION`** template above with the correct package name (As seen in the [NixOS Package Search](https://search.nixos.org/packages)), the current version of the package in Nixpkgs Stable and the current version of the package in Nixpkgs Unstable.
|
||||
|
||||
> [!TIP]
|
||||
> For instance, if you were filing a request against the out of date `hello` package, where the current version in Nixpkgs Unstable is 1.0.1, but the current version in Nixpkgs Stable is 1.0.0, your title would be as follows:
|
||||
> `Backport to Stable: hello 1.0.0 → 1.0.1`
|
||||
|
||||
---
|
||||
- type: "input"
|
||||
id: "name"
|
||||
attributes:
|
||||
label: "Package name"
|
||||
description: "Please indicate the name of the package."
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "unstable-version"
|
||||
attributes:
|
||||
label: "Version in unstable"
|
||||
description: "Please indicate the current version of the package in the unstable channel."
|
||||
validations:
|
||||
required: true
|
||||
- type: "input"
|
||||
id: "stable-version"
|
||||
attributes:
|
||||
label: "Version in stable"
|
||||
description: "Please indicate the current version of the package in the stable channel."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "reasoning"
|
||||
attributes:
|
||||
label: "Reasoning for backport"
|
||||
description: "Please briefly explain why this backport fits the [release suitability guidelines](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#changes-acceptable-for-releases) and why you think this update should be backported."
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "maintainers"
|
||||
attributes:
|
||||
label: "Notify maintainers"
|
||||
description: |
|
||||
Please mention the people who are in the **Maintainers** list of the offending package. This is done by by searching for the package on the [NixOS Package Search](https://search.nixos.org/packages) and mentioning the people listed under **Maintainers** by prefixing their GitHub usernames with an '@' character. Please add the mentions above the `---` characters in the template below.
|
||||
value: |
|
||||
|
||||
---
|
||||
|
||||
**Note for maintainers:** Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)
|
||||
validations:
|
||||
required: false
|
||||
- type: "checkboxes"
|
||||
id: "sanity-check"
|
||||
attributes:
|
||||
label: "I assert that this issue is relevant for Nixpkgs"
|
||||
options:
|
||||
- label: "I assert that this backport does not yet exist in an [open pull request](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+in%3Atitle+backport)."
|
||||
required: true
|
||||
- label: "I assert that this is not a [duplicate of any known issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+label%3A%229.needs%3A+port+to+stable%22+)."
|
||||
required: true
|
||||
- label: "I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it."
|
||||
required: true
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
# Thank you for helping improve Nixpkgs!
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "prioritisation"
|
||||
attributes:
|
||||
label: "Is this issue important to you?"
|
||||
description: |
|
||||
**Please do not modify this text area!**
|
||||
|
||||
This template helps Nixpkgs developers know which issues should be prioritised by allowing users to vote with a :+1: reaction.
|
||||
This is not a guarantee that highly-requested issues will be fixed first, but it helps us to figure out what's important to users. Please react on other users' issues if you find them important.
|
||||
value: |
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -0,0 +1,86 @@
|
||||
name: "Request: documentation"
|
||||
description: "Report missing or incorrect documentation in the NixOS or Nixpkgs manuals."
|
||||
title: "Missing Documentation: PACKAGENAME"
|
||||
labels: ["0.kind: enhancement", "9.needs: documentation"]
|
||||
body:
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
<p align="center">
|
||||
<a href="https://nixos.org">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
|
||||
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="400px" alt="NixOS logo">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Welcome to Nixpkgs. Please replace the **`Missing Documentation: PACKAGENAME`** template above with the correct package name (As seen in the [NixOS Package Search](https://search.nixos.org/packages)) or module name (As seen in the [NixOS Option Search](https://search.nixos.org/options)).
|
||||
|
||||
> [!TIP]
|
||||
> For instance, if you were filing an issue against the [`hello`](https://search.nixos.org/packages?channel=unstable&from=0&size=1&buckets=%7B%22package_attr_set%22%3A%5B%22No%20package%20set%22%5D%2C%22package_license_set%22%3A%5B%22GNU%20General%20Public%20License%20v3.0%20or%20later%22%5D%2C%22package_maintainers_set%22%3A%5B%5D%2C%22package_platforms%22%3A%5B%5D%7D&sort=relevance&type=packages&query=hello) package about it not having any NixOS-specific documentation, your title would be as follows:
|
||||
> `Missing Documentation: hello`
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "description"
|
||||
attributes:
|
||||
label: "Describe the problem"
|
||||
description: "Please include a clear and concise description of what the issue is."
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "proposal"
|
||||
attributes:
|
||||
label: "Proposed solution"
|
||||
description: |
|
||||
If possible, please draft a tentative documentation chapter to resolve this issue.
|
||||
Your proposal should be written in CommonMark Markdown, optionally enhanced with [Nix-specific extensions](https://github.com/NixOS/nixpkgs/tree/master/doc#syntax).
|
||||
render: "markdown"
|
||||
validations:
|
||||
required: false
|
||||
- type: "textarea"
|
||||
id: "maintainers"
|
||||
attributes:
|
||||
label: "Notify maintainers"
|
||||
description: |
|
||||
Please mention the people who are in the **Maintainers** list of the offending package. This is done by by searching for the package on the [NixOS Package Search](https://search.nixos.org/packages) and mentioning the people listed under **Maintainers** by prefixing their GitHub usernames with an '@' character. Please add the mentions above the `---` characters in the template below.
|
||||
value: |
|
||||
|
||||
---
|
||||
|
||||
**Note for maintainers:** Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)
|
||||
validations:
|
||||
required: false
|
||||
- type: "checkboxes"
|
||||
id: "sanity-check"
|
||||
attributes:
|
||||
label: "I assert that this issue is relevant for Nixpkgs"
|
||||
options:
|
||||
- label: "I assert that this request is not already implemented in the latest [NixOS](https://nixos.org/manual/nixos/unstable/) or [Nixpkgs](https://nixos.org/manual/nixpkgs/unstable/) manuals."
|
||||
required: true
|
||||
- label: "I assert that this is not a [duplicate of an existing documentation issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+label%3A%229.needs%3A+documentation%22)."
|
||||
required: true
|
||||
- label: "I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it."
|
||||
required: true
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
# Thank you for helping improve Nixpkgs!
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "priorisation"
|
||||
attributes:
|
||||
label: "Is this issue important to you?"
|
||||
description: |
|
||||
**Please do not modify this text area!**
|
||||
|
||||
This template helps Nixpkgs developers know which issues should be prioritised by allowing users to vote with a :+1: reaction.
|
||||
This is not a guarantee that highly-requested issues will be fixed first, but it helps us to figure out what's important to users. Please react on other users' issues if you find them important.
|
||||
value: |
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -0,0 +1,157 @@
|
||||
name: "Unreproducible Package"
|
||||
description: "Report a package that does not produce a bit-by-bit reproducible result each time it is built."
|
||||
title: "Unreproducible Package: PACKAGENAME"
|
||||
labels: ["0.kind: enhancement", "6.topic: reproducible builds"]
|
||||
body:
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
<p align="center">
|
||||
<a href="https://nixos.org">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
|
||||
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="400px" alt="NixOS logo">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Welcome to Nixpkgs. Please replace the **`Unreproducible Package: PACKAGENAME`** template above with the correct package name (As seen in the [NixOS Package Search](https://search.nixos.org/packages)).
|
||||
|
||||
> [!NOTE]
|
||||
> This form is for reporting unreproducible packages. For more information, see the [Reproducible Builds Status](https://reproducible.nixos.org/) page.
|
||||
> To report a package that fails to build entirely, please use the "Build Failure" form instead.
|
||||
|
||||
---
|
||||
- type: "input"
|
||||
id: "version"
|
||||
attributes:
|
||||
label: "Nixpkgs Revision"
|
||||
description: "In which commit of Nixpkgs is this package displaying unreproducibility?"
|
||||
- type: "textarea"
|
||||
id: "introduction"
|
||||
attributes:
|
||||
label: "Introduction"
|
||||
description: |
|
||||
This is a generic introduction to build reproducibility.
|
||||
Please replace **PACKAGENAME** below with the canonical package name of the package, as you have done for the title above.
|
||||
value: |
|
||||
Building **PACKAGENAME** multiple times does not yield bit-by-bit identical
|
||||
results, complicating the detection of Continuous Integration (CI) breaches. For
|
||||
more information on this issue, visit [reproducible-builds.org](https://reproducible-builds.org/).
|
||||
|
||||
Fixing bit-by-bit reproducibility also has additional advantages, such as
|
||||
avoiding hard-to-reproduce bugs, making content-addressed storage more effective
|
||||
and reducing rebuilds in such systems.
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "how-to-reproduce"
|
||||
attributes:
|
||||
label: "Steps to reproduce"
|
||||
description: |
|
||||
This is a step-by-step instruction set meant for maintainers to debug the package that is failing to reproduce. You should also follow it to gather the `diffoscope` logs that will be needed below.
|
||||
Please replace **PACKAGENAME** below with the canonical package name of the package, as you have done for the introduction and the title above.
|
||||
value: |
|
||||
### 1. Build the package
|
||||
|
||||
This step will build the package. Specific arguments are passed to the command
|
||||
to keep the build artifacts so we can compare them in case of differences.
|
||||
|
||||
Execute the following command:
|
||||
|
||||
```
|
||||
nix-build '<nixpkgs>' -A PACKAGENAME && nix-build '<nixpkgs>' -A PACKAGENAME --check --keep-failed
|
||||
```
|
||||
|
||||
Or using the new command line style:
|
||||
|
||||
```
|
||||
nix build nixpkgs#PACKAGENAME && nix build nixpkgs#PACKAGENAME --rebuild --keep-failed
|
||||
```
|
||||
|
||||
### 2. Compare the build artifacts
|
||||
|
||||
If the previous command completes successfully, no differences were found and
|
||||
there's nothing to do, builds are reproducible.
|
||||
If it terminates with the error message `error: derivation '<X>' may not be
|
||||
deterministic: output '<Y>' differs from '<Z>'`, use `diffoscope` to investigate
|
||||
the discrepancies between the two build outputs. You may need to add the
|
||||
`--exclude-directory-metadata recursive` option to ignore files and directories
|
||||
metadata (*e.g. timestamp*) differences.
|
||||
|
||||
```
|
||||
nix run nixpkgs#diffoscopeMinimal -- --exclude-directory-metadata recursive <Y> <Z>
|
||||
```
|
||||
|
||||
### 3. Examine the build log
|
||||
|
||||
To examine the build log, use:
|
||||
|
||||
```
|
||||
nix-store --read-log $(nix-instantiate '<nixpkgs>' -A PACKAGENAME)
|
||||
```
|
||||
|
||||
Or with the new command line style:
|
||||
|
||||
```
|
||||
nix log $(nix path-info --derivation nixpkgs#PACKAGENAME)
|
||||
```
|
||||
validations:
|
||||
required: true
|
||||
- type: "textarea"
|
||||
id: "logs"
|
||||
attributes:
|
||||
label: "Diffoscope log"
|
||||
description: |
|
||||
Please copy and paste the relevant `diffoscope` log output, gathered from the steps above.
|
||||
This will be automatically formatted into a monospaced text block, so no need for backticks.
|
||||
render: "console"
|
||||
- type: "textarea"
|
||||
id: "additional-context"
|
||||
attributes:
|
||||
label: "Additional context"
|
||||
description: "Add any other context about the problem here."
|
||||
validations:
|
||||
required: false
|
||||
id: "maintainers"
|
||||
attributes:
|
||||
label: "Notify maintainers"
|
||||
description: |
|
||||
Please mention the people who are in the **Maintainers** list of the offending package. This is done by by searching for the package on the [NixOS Package Search](https://search.nixos.org/packages) and mentioning the people listed under **Maintainers** by prefixing their GitHub usernames with an '@' character. Please add the mentions above the `---` characters in the template below.
|
||||
value: |
|
||||
|
||||
---
|
||||
|
||||
**Note for maintainers:** Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)
|
||||
validations:
|
||||
required: false
|
||||
- type: "checkboxes"
|
||||
id: "sanity-check"
|
||||
attributes:
|
||||
label: "I assert that this issue is relevant for Nixpkgs"
|
||||
options:
|
||||
- label: "I assert that this is not a [duplicate of any known issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+label%3A%226.topic%3A+reproducible+builds%22)."
|
||||
required: true
|
||||
- label: "I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it."
|
||||
required: true
|
||||
- type: "markdown"
|
||||
attributes:
|
||||
value: |
|
||||
# Thank you for helping improve Nixpkgs!
|
||||
|
||||
---
|
||||
- type: "textarea"
|
||||
id: "prioritisation"
|
||||
attributes:
|
||||
label: "Is this issue important to you?"
|
||||
description: |
|
||||
**Please do not modify this text area!**
|
||||
|
||||
This template helps Nixpkgs developers know which issues should be prioritised by allowing users to vote with a :+1: reaction.
|
||||
This is not a guarantee that highly-requested issues will be fixed first, but it helps us to figure out what's important to users. Please react on other users' issues if you find them important.
|
||||
value: |
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -1,54 +0,0 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: '0.kind: bug'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Describe the bug
|
||||
|
||||
<!-- A clear and concise description of what the bug is. -->
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
Steps to reproduce the behavior:
|
||||
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
|
||||
## Expected behavior
|
||||
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
## Screenshots
|
||||
|
||||
<!-- If applicable, add screenshots to help explain your problem: -->
|
||||
|
||||
## Additional context
|
||||
|
||||
<!-- Add any other context about the problem here. -->
|
||||
|
||||
## Metadata
|
||||
|
||||
<!-- Please insert the output of running `nix-shell -p nix-info --run "nix-info -m"` below this line -->
|
||||
|
||||
## Notify maintainers
|
||||
|
||||
<!--
|
||||
Please @ people who are in the `meta.maintainers` list of the offending package or module.
|
||||
If in doubt, check `git blame` for whoever last touched something.
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
Note for maintainers: Please tag this issue in your PR.
|
||||
|
||||
---
|
||||
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -1,53 +0,0 @@
|
||||
---
|
||||
name: Build failure
|
||||
about: Create a report to help us improve
|
||||
title: 'Build failure: PACKAGENAME'
|
||||
labels: '0.kind: build failure'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
Steps to reproduce the behavior:
|
||||
|
||||
1. build *X*
|
||||
|
||||
## Build log
|
||||
|
||||
<!-- insert build log in code block in collapsable section -->
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Build Log</summary>
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Additional context
|
||||
|
||||
<!-- Add any other context about the problem here. -->
|
||||
|
||||
## Metadata
|
||||
|
||||
<!-- Please insert the output of running `nix-shell -p nix-info --run "nix-info -m"` below this line -->
|
||||
|
||||
## Notify maintainers
|
||||
|
||||
<!--
|
||||
Please @ people who are in the `meta.maintainers` list of the offending package or module.
|
||||
If in doubt, check `git blame` for whoever last touched something.
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
Note for maintainers: Please tag this issue in your PR.
|
||||
|
||||
---
|
||||
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
name: Missing or incorrect documentation
|
||||
about: Help us improve the Nixpkgs and NixOS reference manuals
|
||||
title: 'Documentation: '
|
||||
labels: '9.needs: documentation'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Problem
|
||||
|
||||
<!-- describe your problem -->
|
||||
|
||||
## Proposal
|
||||
|
||||
<!-- propose a solution (optional) -->
|
||||
|
||||
## Checklist
|
||||
|
||||
<!-- make sure this issue is not redundant or obsolete -->
|
||||
|
||||
- [ ] checked [latest Nixpkgs manual] \([source][nixpkgs-source]) and [latest NixOS manual] \([source][nixos-source])
|
||||
- [ ] checked [open documentation issues] for possible duplicates
|
||||
- [ ] checked [open documentation pull requests] for possible solutions
|
||||
|
||||
---
|
||||
|
||||
Note for maintainers: Please tag this issue in your PR.
|
||||
|
||||
---
|
||||
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
[latest Nixpkgs manual]: https://nixos.org/manual/nixpkgs/unstable/
|
||||
[latest NixOS manual]: https://nixos.org/manual/nixos/unstable/
|
||||
[nixpkgs-source]: https://github.com/NixOS/nixpkgs/tree/master/doc
|
||||
[nixos-source]: https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual
|
||||
[open documentation issues]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+label%3A%229.needs%3A+documentation%22
|
||||
[open documentation pull requests]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+documentation%22%2C%226.topic%3A+documentation%22
|
||||
@@ -1,27 +0,0 @@
|
||||
---
|
||||
name: Module requests
|
||||
about: For NixOS modules that you would like to see
|
||||
title: 'Module request: MODULENAME'
|
||||
labels: '9.needs: module (new)'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- Describe what the module should accomplish: -->
|
||||
|
||||
## Notify maintainers
|
||||
|
||||
<!-- If applicable, tag the maintainers of the package that corresponds to the module. If the search.nixos.org result shows no maintainers, tag the person that last updated the package. -->
|
||||
|
||||
-----
|
||||
|
||||
Note for maintainers: Please tag this issue in your PR.
|
||||
|
||||
---
|
||||
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -1,42 +0,0 @@
|
||||
---
|
||||
name: Out-of-date package reports
|
||||
about: For packages that are out-of-date
|
||||
title: 'Update request: PACKAGENAME OLDVERSION → NEWVERSION'
|
||||
labels: '9.needs: package (update)'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Package information
|
||||
|
||||
<!-- Search for the package here: https://search.nixos.org/packages?channel=unstable -->
|
||||
|
||||
- Package name:
|
||||
- Latest released version:
|
||||
- Current version on the unstable channel:
|
||||
- Current version on the stable/release channel:
|
||||
|
||||
## Checklist
|
||||
|
||||
<!--
|
||||
Type the name of your package and try to find an open pull request for the package
|
||||
If you find an open pull request, you can review it!
|
||||
There's a high chance that you'll have the new version right away while helping the community!
|
||||
-->
|
||||
|
||||
- [ ] Checked the [nixpkgs pull requests](https://github.com/NixOS/nixpkgs/pulls)
|
||||
|
||||
## Notify maintainers
|
||||
|
||||
<!-- If the search.nixos.org result shows no maintainers, tag the person that last updated the package. -->
|
||||
|
||||
---
|
||||
|
||||
Note for maintainers: Please tag this issue in your PR.
|
||||
|
||||
---
|
||||
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -1,30 +0,0 @@
|
||||
---
|
||||
name: Packaging requests
|
||||
about: For packages that are missing
|
||||
title: 'Package request: PACKAGENAME'
|
||||
labels: '0.kind: packaging request'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Project description
|
||||
|
||||
<!-- Describe the project a little: -->
|
||||
|
||||
## Metadata
|
||||
|
||||
* homepage URL:
|
||||
* source URL:
|
||||
* license: mit, bsd, gpl2+ , ...
|
||||
* platforms: unix, linux, darwin, ...
|
||||
|
||||
---
|
||||
|
||||
Note for maintainers: Please tag this issue in your PR.
|
||||
|
||||
---
|
||||
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -1,39 +0,0 @@
|
||||
---
|
||||
name: Tracking issue
|
||||
about: Provide an overview on a multi-step effort
|
||||
title: 'Tracking issue: ISSUENAME'
|
||||
labels: '5.scope: tracking'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### Tracking description
|
||||
|
||||
<!--
|
||||
Provide a brief summary of the project or multi-step effort. Explain why it is
|
||||
necessary and what the goals are.
|
||||
|
||||
You may include way to reproduce the problem, screenshots or any information
|
||||
that you find relevant.
|
||||
-->
|
||||
|
||||
#### Reference Issue(s)/PR(s)
|
||||
|
||||
- ...
|
||||
|
||||
### Follow-up issues/notes
|
||||
|
||||
<!--
|
||||
List any follow-up issues that need to be addressed after the main tasks are
|
||||
completed, or any notes related to the project.
|
||||
-->
|
||||
|
||||
#### Additional context
|
||||
Add any other context about the problem here.
|
||||
|
||||
---
|
||||
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -1,104 +0,0 @@
|
||||
---
|
||||
name: Unreproducible package
|
||||
about: A package that does not produce a bit-by-bit reproducible result each time it is built
|
||||
title: ''
|
||||
labels: [ '0.kind: enhancement', '6.topic: reproducible builds' ]
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
Hello dear reporter,
|
||||
|
||||
Thank you for bringing attention to this issue. Your insights are valuable to
|
||||
us, and we appreciate the time you took to document the problem.
|
||||
|
||||
I wanted to kindly point out that in this issue template, it would be beneficial
|
||||
to replace the placeholder `<package>` with the actual, canonical name of the
|
||||
package you're reporting the issue for. Doing so will provide better context and
|
||||
facilitate quicker troubleshooting for anyone who reads this issue in the
|
||||
future.
|
||||
|
||||
Best regards
|
||||
-->
|
||||
|
||||
Building this package multiple times does not yield bit-by-bit identical
|
||||
results, complicating the detection of Continuous Integration (CI) breaches. For
|
||||
more information on this issue, visit
|
||||
[reproducible-builds.org](https://reproducible-builds.org/).
|
||||
|
||||
Fixing bit-by-bit reproducibility also has additional advantages, such as
|
||||
avoiding hard-to-reproduce bugs, making content-addressed storage more effective
|
||||
and reducing rebuilds in such systems.
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
In the following steps, replace `<package>` with the canonical name of the
|
||||
package.
|
||||
|
||||
### 1. Build the package
|
||||
|
||||
This step will build the package. Specific arguments are passed to the command
|
||||
to keep the build artifacts so we can compare them in case of differences.
|
||||
|
||||
Execute the following command:
|
||||
|
||||
```
|
||||
nix-build '<nixpkgs>' -A <package> && nix-build '<nixpkgs>' -A <package> --check --keep-failed
|
||||
```
|
||||
|
||||
Or using the new command line style:
|
||||
|
||||
```
|
||||
nix build nixpkgs#<package> && nix build nixpkgs#<package> --rebuild --keep-failed
|
||||
```
|
||||
|
||||
### 2. Compare the build artifacts
|
||||
|
||||
If the previous command completes successfully, no differences were found and
|
||||
there's nothing to do, builds are reproducible.
|
||||
If it terminates with the error message `error: derivation '<X>' may not be
|
||||
deterministic: output '<Y>' differs from '<Z>'`, use `diffoscope` to investigate
|
||||
the discrepancies between the two build outputs. You may need to add the
|
||||
`--exclude-directory-metadata recursive` option to ignore files and directories
|
||||
metadata (*e.g. timestamp*) differences.
|
||||
|
||||
```
|
||||
nix run nixpkgs#diffoscopeMinimal -- --exclude-directory-metadata recursive <Y> <Z>
|
||||
```
|
||||
|
||||
### 3. Examine the build log
|
||||
|
||||
To examine the build log, use:
|
||||
|
||||
```
|
||||
nix-store --read-log $(nix-instantiate '<nixpkgs>' -A <package>)
|
||||
```
|
||||
|
||||
Or with the new command line style:
|
||||
|
||||
```
|
||||
nix log $(nix path-info --derivation nixpkgs#<package>)
|
||||
```
|
||||
|
||||
## Additional context
|
||||
|
||||
(please share the relevant fragment of the diffoscope output here, and any additional analysis you may have done)
|
||||
|
||||
## Notify maintainers
|
||||
|
||||
<!--
|
||||
Please @ people who are in the `meta.maintainers` list of the offending package or module.
|
||||
If in doubt, check `git blame` for whoever last touched something.
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
Note for maintainers: Please tag this issue in your PR.
|
||||
|
||||
---
|
||||
|
||||
Add a :+1: [reaction] to [issues you find important].
|
||||
|
||||
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
|
||||
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
|
||||
@@ -14,12 +14,13 @@
|
||||
# Processing of this file is implemented in workflows/codeowners-v2.yml
|
||||
|
||||
# CI
|
||||
/.github/workflows @NixOS/Security @Mic92 @zowoq @infinisil @azuwis
|
||||
/.github/*_TEMPLATE* @SigmaSquadron
|
||||
/.github/workflows @NixOS/Security @Mic92 @zowoq @infinisil @azuwis
|
||||
/.github/workflows/check-nix-format.yml @infinisil
|
||||
/.github/workflows/nixpkgs-vet.yml @infinisil @philiptaron
|
||||
/.github/workflows/codeowners-v2.yml @infinisil
|
||||
/ci @infinisil @philiptaron @NixOS/Security
|
||||
/ci/OWNERS @infinisil @philiptaron
|
||||
/.github/workflows/codeowners-v2.yml @infinisil
|
||||
/.github/workflows/nixpkgs-vet.yml @infinisil @philiptaron
|
||||
/ci @infinisil @philiptaron @NixOS/Security
|
||||
/ci/OWNERS @infinisil @philiptaron
|
||||
|
||||
# Development support
|
||||
/.editorconfig @Mic92 @zowoq
|
||||
@@ -251,6 +252,9 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
|
||||
/nixos/modules/services/databases/postgresql.nix @NixOS/postgres
|
||||
/nixos/tests/postgresql @NixOS/postgres
|
||||
|
||||
# MySQL/MariaDB and related stuff
|
||||
/nixos/modules/services/backup/mysql-backup.nix @6543
|
||||
|
||||
# Hardened profile & related modules
|
||||
/nixos/modules/profiles/hardened.nix @joachifm
|
||||
/nixos/modules/security/lock-kernel-modules.nix @joachifm
|
||||
|
||||
+3
-2
@@ -94,8 +94,9 @@ let
|
||||
inherit (self.lists) singleton forEach map foldr fold foldl foldl' imap0 imap1
|
||||
filter ifilter0 concatMap flatten remove findSingle findFirst any all count
|
||||
optional optionals toList range replicate partition zipListsWith zipLists
|
||||
reverseList listDfs toposort sort sortOn naturalSort compareLists take
|
||||
drop sublist last init crossLists unique allUnique intersectLists
|
||||
reverseList listDfs toposort sort sortOn naturalSort compareLists
|
||||
take drop dropEnd sublist last init
|
||||
crossLists unique allUnique intersectLists
|
||||
subtractLists mutuallyExclusive groupBy groupBy' concatLists genList
|
||||
length head tail elem elemAt isList;
|
||||
inherit (self.strings) concatStrings concatMapStrings concatImapStrings
|
||||
|
||||
+63
-9
@@ -6,6 +6,7 @@ let
|
||||
inherit (lib.strings) toInt;
|
||||
inherit (lib.trivial) compare min id warn pipe;
|
||||
inherit (lib.attrsets) mapAttrs;
|
||||
inherit (lib) max;
|
||||
in
|
||||
rec {
|
||||
|
||||
@@ -1330,35 +1331,48 @@ rec {
|
||||
pairs);
|
||||
|
||||
/**
|
||||
Compare two lists element-by-element.
|
||||
Compare two lists element-by-element with a comparison function `cmp`.
|
||||
|
||||
List elements are compared pairwise in order by the provided comparison function `cmp`,
|
||||
the first non-equal pair of elements determines the result.
|
||||
|
||||
:::{.note}
|
||||
The `<` operator can also be used to compare lists using a boolean condition. (e.g. `[1 2] < [1 3]` is `true`).
|
||||
See also [language operators](https://nix.dev/manual/nix/stable/language/operators#comparison) for more information.
|
||||
:::
|
||||
|
||||
# Inputs
|
||||
|
||||
`cmp`
|
||||
|
||||
: 1\. Function argument
|
||||
: The comparison function `a: b: ...` must return:
|
||||
- `0` if `a` and `b` are equal
|
||||
- `1` if `a` is greater than `b`
|
||||
- `-1` if `a` is less than `b`
|
||||
|
||||
See [lib.compare](#function-library-lib.trivial.compare) for a an example implementation.
|
||||
|
||||
`a`
|
||||
|
||||
: 2\. Function argument
|
||||
: The first list
|
||||
|
||||
`b`
|
||||
|
||||
: 3\. Function argument
|
||||
: The second list
|
||||
|
||||
|
||||
# Examples
|
||||
:::{.example}
|
||||
## `lib.lists.compareLists` usage example
|
||||
## `lib.lists.compareLists` usage examples
|
||||
|
||||
```nix
|
||||
compareLists compare [] []
|
||||
compareLists lib.compare [] []
|
||||
=> 0
|
||||
compareLists compare [] [ "a" ]
|
||||
compareLists lib.compare [] [ "a" ]
|
||||
=> -1
|
||||
compareLists compare [ "a" ] []
|
||||
compareLists lib.compare [ "a" ] []
|
||||
=> 1
|
||||
compareLists compare [ "a" "b" ] [ "a" "c" ]
|
||||
compareLists lib.compare [ "a" "b" ] [ "a" "c" ]
|
||||
=> -1
|
||||
```
|
||||
|
||||
@@ -1484,6 +1498,46 @@ rec {
|
||||
count:
|
||||
list: sublist count (length list) list;
|
||||
|
||||
/**
|
||||
Remove the last (at most) N elements of a list.
|
||||
|
||||
|
||||
# Inputs
|
||||
|
||||
`count`
|
||||
|
||||
: Number of elements to drop
|
||||
|
||||
`list`
|
||||
|
||||
: Input list
|
||||
|
||||
# Type
|
||||
|
||||
```
|
||||
dropEnd :: Int -> [a] -> [a]
|
||||
```
|
||||
|
||||
# Examples
|
||||
|
||||
:::{.example}
|
||||
## `lib.lists.dropEnd` usage example
|
||||
|
||||
```nix
|
||||
dropEnd 2 [ "a" "b" "c" "d" ]
|
||||
=> [ "a" "b" ]
|
||||
dropEnd 2 [ ]
|
||||
=> [ ]
|
||||
```
|
||||
:::
|
||||
|
||||
*/
|
||||
dropEnd =
|
||||
n: xs:
|
||||
take
|
||||
(max 0 (length xs - n))
|
||||
xs;
|
||||
|
||||
/**
|
||||
Whether the first list is a prefix of the second list.
|
||||
|
||||
|
||||
+1
-1
@@ -364,7 +364,7 @@ let
|
||||
if class != null
|
||||
then
|
||||
m:
|
||||
if m._class != null -> m._class == class
|
||||
if m._class == null || m._class == class
|
||||
then m
|
||||
else
|
||||
throw "The module ${m._file or m.key} was imported into ${class} instead of ${m._class}."
|
||||
|
||||
+329
-116
@@ -1,4 +1,6 @@
|
||||
/* Nixpkgs/NixOS option handling. */
|
||||
/**
|
||||
Module System option handling.
|
||||
*/
|
||||
{ lib }:
|
||||
|
||||
let
|
||||
@@ -45,158 +47,272 @@ let
|
||||
in
|
||||
rec {
|
||||
|
||||
/* Returns true when the given argument is an option
|
||||
/**
|
||||
Returns true when the given argument `a` is an option
|
||||
|
||||
Type: isOption :: a -> bool
|
||||
# Inputs
|
||||
|
||||
`a`
|
||||
: Any value to check whether it is an option
|
||||
|
||||
# Examples
|
||||
:::{.example}
|
||||
## `lib.options.isOption` usage example
|
||||
|
||||
```nix
|
||||
isOption 1 // => false
|
||||
isOption (mkOption {}) // => true
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
# Type
|
||||
|
||||
```
|
||||
isOption :: a -> Bool
|
||||
```
|
||||
|
||||
Example:
|
||||
isOption 1 // => false
|
||||
isOption (mkOption {}) // => true
|
||||
*/
|
||||
isOption = lib.isType "option";
|
||||
|
||||
/* Creates an Option attribute set. mkOption accepts an attribute set with the following keys:
|
||||
/**
|
||||
Creates an Option attribute set. mkOption accepts an attribute set with the following keys:
|
||||
|
||||
All keys default to `null` when not given.
|
||||
# Inputs
|
||||
|
||||
Example:
|
||||
mkOption { } // => { _type = "option"; }
|
||||
mkOption { default = "foo"; } // => { _type = "option"; default = "foo"; }
|
||||
Structured attribute set
|
||||
: Attribute set containing none or some of the following attributes.
|
||||
|
||||
`default`
|
||||
: Optional default value used when no definition is given in the configuration.
|
||||
|
||||
`defaultText`
|
||||
: Substitute for documenting the `default`, if evaluating the default value during documentation rendering is not possible.
|
||||
: Can be any nix value that evaluates.
|
||||
: Usage with `lib.literalMD` or `lib.literalExpression` is supported
|
||||
|
||||
|
||||
`example`
|
||||
: Optional example value used in the manual.
|
||||
: Can be any nix value that evaluates.
|
||||
: Usage with `lib.literalMD` or `lib.literalExpression` is supported
|
||||
|
||||
`description`
|
||||
: Optional string describing the option. This is required if option documentation is generated.
|
||||
|
||||
`relatedPackages`
|
||||
: Optional related packages used in the manual (see `genRelatedPackages` in `../nixos/lib/make-options-doc/default.nix`).
|
||||
|
||||
`type`
|
||||
: Optional option type, providing type-checking and value merging.
|
||||
|
||||
`apply`
|
||||
: Optional function that converts the option value to something else.
|
||||
|
||||
`internal`
|
||||
: Optional boolean indicating whether the option is for NixOS developers only.
|
||||
|
||||
`visible`
|
||||
: Optional boolean indicating whether the option shows up in the manual. Default: true. Use false to hide the option and any sub-options from submodules. Use "shallow" to hide only sub-options.
|
||||
|
||||
`readOnly`
|
||||
: Optional boolean indicating whether the option can be set only once.
|
||||
|
||||
`...` (any other attribute)
|
||||
: Any other attribute is passed through to the resulting option attribute set.
|
||||
|
||||
# Examples
|
||||
:::{.example}
|
||||
## `lib.options.mkOption` usage example
|
||||
|
||||
```nix
|
||||
mkOption { } // => { _type = "option"; }
|
||||
mkOption { default = "foo"; } // => { _type = "option"; default = "foo"; }
|
||||
```
|
||||
|
||||
:::
|
||||
*/
|
||||
mkOption =
|
||||
{
|
||||
# Default value used when no definition is given in the configuration.
|
||||
default ? null,
|
||||
# Textual representation of the default, for the manual.
|
||||
defaultText ? null,
|
||||
# Example value used in the manual.
|
||||
example ? null,
|
||||
# String describing the option.
|
||||
description ? null,
|
||||
# Related packages used in the manual (see `genRelatedPackages` in ../nixos/lib/make-options-doc/default.nix).
|
||||
relatedPackages ? null,
|
||||
# Option type, providing type-checking and value merging.
|
||||
type ? null,
|
||||
# Function that converts the option value to something else.
|
||||
apply ? null,
|
||||
# Whether the option is for NixOS developers only.
|
||||
internal ? null,
|
||||
# Whether the option shows up in the manual. Default: true. Use false to hide the option and any sub-options from submodules. Use "shallow" to hide only sub-options.
|
||||
visible ? null,
|
||||
# Whether the option can be set only once
|
||||
readOnly ? null,
|
||||
default ? null,
|
||||
defaultText ? null,
|
||||
example ? null,
|
||||
description ? null,
|
||||
relatedPackages ? null,
|
||||
type ? null,
|
||||
apply ? null,
|
||||
internal ? null,
|
||||
visible ? null,
|
||||
readOnly ? null,
|
||||
} @ attrs:
|
||||
attrs // { _type = "option"; };
|
||||
|
||||
/* Creates an Option attribute set for a boolean value option i.e an
|
||||
option to be toggled on or off:
|
||||
/**
|
||||
Creates an option declaration with a default value of ´false´, and can be defined to ´true´.
|
||||
|
||||
Example:
|
||||
mkEnableOption "foo"
|
||||
=> { _type = "option"; default = false; description = "Whether to enable foo."; example = true; type = { ... }; }
|
||||
# Inputs
|
||||
|
||||
`name`
|
||||
|
||||
: Name for the created option
|
||||
|
||||
# Examples
|
||||
:::{.example}
|
||||
## `lib.options.mkEnableOption` usage example
|
||||
|
||||
```nix
|
||||
# module
|
||||
let
|
||||
eval = lib.evalModules {
|
||||
modules = [
|
||||
{
|
||||
options.foo.enable = mkEnableOption "foo";
|
||||
|
||||
config.foo.enable = true;
|
||||
}
|
||||
]:
|
||||
}
|
||||
in
|
||||
eval.config
|
||||
=> { foo.enable = true; }
|
||||
```
|
||||
|
||||
:::
|
||||
*/
|
||||
mkEnableOption =
|
||||
# Name for the created option
|
||||
name: mkOption {
|
||||
mkEnableOption = name: mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Whether to enable ${name}.";
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
/* Creates an Option attribute set for an option that specifies the
|
||||
package a module should use for some purpose.
|
||||
/**
|
||||
Creates an Option attribute set for an option that specifies the
|
||||
package a module should use for some purpose.
|
||||
|
||||
The package is specified in the third argument under `default` as a list of strings
|
||||
representing its attribute path in nixpkgs (or another package set).
|
||||
Because of this, you need to pass nixpkgs itself (usually `pkgs` in a module;
|
||||
alternatively to nixpkgs itself, another package set) as the first argument.
|
||||
The package is specified in the third argument under `default` as a list of strings
|
||||
representing its attribute path in nixpkgs (or another package set).
|
||||
Because of this, you need to pass nixpkgs itself (usually `pkgs` in a module;
|
||||
alternatively to nixpkgs itself, another package set) as the first argument.
|
||||
|
||||
If you pass another package set you should set the `pkgsText` option.
|
||||
This option is used to display the expression for the package set. It is `"pkgs"` by default.
|
||||
If your expression is complex you should parenthesize it, as the `pkgsText` argument
|
||||
is usually immediately followed by an attribute lookup (`.`).
|
||||
If you pass another package set you should set the `pkgsText` option.
|
||||
This option is used to display the expression for the package set. It is `"pkgs"` by default.
|
||||
If your expression is complex you should parenthesize it, as the `pkgsText` argument
|
||||
is usually immediately followed by an attribute lookup (`.`).
|
||||
|
||||
The second argument may be either a string or a list of strings.
|
||||
It provides the display name of the package in the description of the generated option
|
||||
(using only the last element if the passed value is a list)
|
||||
and serves as the fallback value for the `default` argument.
|
||||
The second argument may be either a string or a list of strings.
|
||||
It provides the display name of the package in the description of the generated option
|
||||
(using only the last element if the passed value is a list)
|
||||
and serves as the fallback value for the `default` argument.
|
||||
|
||||
To include extra information in the description, pass `extraDescription` to
|
||||
append arbitrary text to the generated description.
|
||||
To include extra information in the description, pass `extraDescription` to
|
||||
append arbitrary text to the generated description.
|
||||
|
||||
You can also pass an `example` value, either a literal string or an attribute path.
|
||||
You can also pass an `example` value, either a literal string or an attribute path.
|
||||
|
||||
The `default` argument can be omitted if the provided name is
|
||||
an attribute of pkgs (if `name` is a string) or a valid attribute path in pkgs (if `name` is a list).
|
||||
You can also set `default` to just a string in which case it is interpreted as an attribute name
|
||||
(a singleton attribute path, if you will).
|
||||
The `default` argument can be omitted if the provided name is
|
||||
an attribute of pkgs (if `name` is a string) or a valid attribute path in pkgs (if `name` is a list).
|
||||
You can also set `default` to just a string in which case it is interpreted as an attribute name
|
||||
(a singleton attribute path, if you will).
|
||||
|
||||
If you wish to explicitly provide no default, pass `null` as `default`.
|
||||
If you wish to explicitly provide no default, pass `null` as `default`.
|
||||
|
||||
If you want users to be able to set no package, pass `nullable = true`.
|
||||
In this mode a `default = null` will not be interpreted as no default and is interpreted literally.
|
||||
If you want users to be able to set no package, pass `nullable = true`.
|
||||
In this mode a `default = null` will not be interpreted as no default and is interpreted literally.
|
||||
|
||||
Type: mkPackageOption :: pkgs -> (string|[string]) -> { nullable? :: bool, default? :: string|[string], example? :: null|string|[string], extraDescription? :: string, pkgsText? :: string } -> option
|
||||
|
||||
Example:
|
||||
mkPackageOption pkgs "hello" { }
|
||||
=> { ...; default = pkgs.hello; defaultText = literalExpression "pkgs.hello"; description = "The hello package to use."; type = package; }
|
||||
# Inputs
|
||||
|
||||
Example:
|
||||
mkPackageOption pkgs "GHC" {
|
||||
default = [ "ghc" ];
|
||||
example = "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])";
|
||||
}
|
||||
=> { ...; default = pkgs.ghc; defaultText = literalExpression "pkgs.ghc"; description = "The GHC package to use."; example = literalExpression "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])"; type = package; }
|
||||
`pkgs`
|
||||
|
||||
Example:
|
||||
mkPackageOption pkgs [ "python3Packages" "pytorch" ] {
|
||||
extraDescription = "This is an example and doesn't actually do anything.";
|
||||
}
|
||||
=> { ...; default = pkgs.python3Packages.pytorch; defaultText = literalExpression "pkgs.python3Packages.pytorch"; description = "The pytorch package to use. This is an example and doesn't actually do anything."; type = package; }
|
||||
: Package set (an instantiation of nixpkgs such as pkgs in modules or another package set)
|
||||
|
||||
Example:
|
||||
mkPackageOption pkgs "nushell" {
|
||||
nullable = true;
|
||||
}
|
||||
=> { ...; default = pkgs.nushell; defaultText = literalExpression "pkgs.nushell"; description = "The nushell package to use."; type = nullOr package; }
|
||||
`name`
|
||||
|
||||
Example:
|
||||
mkPackageOption pkgs "coreutils" {
|
||||
default = null;
|
||||
}
|
||||
=> { ...; description = "The coreutils package to use."; type = package; }
|
||||
: Name for the package, shown in option description
|
||||
|
||||
Example:
|
||||
mkPackageOption pkgs "dbus" {
|
||||
nullable = true;
|
||||
default = null;
|
||||
}
|
||||
=> { ...; default = null; description = "The dbus package to use."; type = nullOr package; }
|
||||
Structured function argument
|
||||
: Attribute set containing the following attributes.
|
||||
|
||||
Example:
|
||||
mkPackageOption pkgs.javaPackages "OpenJFX" {
|
||||
default = "openjfx20";
|
||||
pkgsText = "pkgs.javaPackages";
|
||||
}
|
||||
=> { ...; default = pkgs.javaPackages.openjfx20; defaultText = literalExpression "pkgs.javaPackages.openjfx20"; description = "The OpenJFX package to use."; type = package; }
|
||||
`nullable`
|
||||
: Optional whether the package can be null, for example to disable installing a package altogether. Default: `false`
|
||||
|
||||
`default`
|
||||
: Optional attribute path where the default package is located. Default: `name`
|
||||
If omitted will be copied from `name`
|
||||
|
||||
`example`
|
||||
: Optional string or an attribute path to use as an example. Default: `null`
|
||||
|
||||
`extraDescription`
|
||||
: Optional additional text to include in the option description. Default: `""`
|
||||
|
||||
`pkgsText`
|
||||
: Optional representation of the package set passed as pkgs. Default: `"pkgs"`
|
||||
|
||||
# Type
|
||||
|
||||
```
|
||||
mkPackageOption :: pkgs -> (string|[string]) -> { nullable? :: bool, default? :: string|[string], example? :: null|string|[string], extraDescription? :: string, pkgsText? :: string } -> option
|
||||
```
|
||||
|
||||
# Examples
|
||||
:::{.example}
|
||||
## `lib.options.mkPackageOption` usage example
|
||||
|
||||
```nix
|
||||
mkPackageOption pkgs "hello" { }
|
||||
=> { ...; default = pkgs.hello; defaultText = literalExpression "pkgs.hello"; description = "The hello package to use."; type = package; }
|
||||
|
||||
|
||||
mkPackageOption pkgs "GHC" {
|
||||
default = [ "ghc" ];
|
||||
example = "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])";
|
||||
}
|
||||
=> { ...; default = pkgs.ghc; defaultText = literalExpression "pkgs.ghc"; description = "The GHC package to use."; example = literalExpression "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])"; type = package; }
|
||||
|
||||
|
||||
mkPackageOption pkgs [ "python3Packages" "pytorch" ] {
|
||||
extraDescription = "This is an example and doesn't actually do anything.";
|
||||
}
|
||||
=> { ...; default = pkgs.python3Packages.pytorch; defaultText = literalExpression "pkgs.python3Packages.pytorch"; description = "The pytorch package to use. This is an example and doesn't actually do anything."; type = package; }
|
||||
|
||||
|
||||
mkPackageOption pkgs "nushell" {
|
||||
nullable = true;
|
||||
}
|
||||
=> { ...; default = pkgs.nushell; defaultText = literalExpression "pkgs.nushell"; description = "The nushell package to use."; type = nullOr package; }
|
||||
|
||||
|
||||
mkPackageOption pkgs "coreutils" {
|
||||
default = null;
|
||||
}
|
||||
=> { ...; description = "The coreutils package to use."; type = package; }
|
||||
|
||||
|
||||
mkPackageOption pkgs "dbus" {
|
||||
nullable = true;
|
||||
default = null;
|
||||
}
|
||||
=> { ...; default = null; description = "The dbus package to use."; type = nullOr package; }
|
||||
|
||||
|
||||
mkPackageOption pkgs.javaPackages "OpenJFX" {
|
||||
default = "openjfx20";
|
||||
pkgsText = "pkgs.javaPackages";
|
||||
}
|
||||
=> { ...; default = pkgs.javaPackages.openjfx20; defaultText = literalExpression "pkgs.javaPackages.openjfx20"; description = "The OpenJFX package to use."; type = package; }
|
||||
```
|
||||
|
||||
:::
|
||||
*/
|
||||
mkPackageOption =
|
||||
# Package set (an instantiation of nixpkgs such as pkgs in modules or another package set)
|
||||
pkgs:
|
||||
# Name for the package, shown in option description
|
||||
mkPackageOption = pkgs:
|
||||
name:
|
||||
{
|
||||
# Whether the package can be null, for example to disable installing a package altogether (defaults to false)
|
||||
nullable ? false,
|
||||
# The attribute path where the default package is located (may be omitted, in which case it is copied from `name`)
|
||||
default ? name,
|
||||
# A string or an attribute path to use as an example (may be omitted)
|
||||
example ? null,
|
||||
# Additional text to include in the option description (may be omitted)
|
||||
extraDescription ? "",
|
||||
# Representation of the package set passed as pkgs (defaults to `"pkgs"`)
|
||||
pkgsText ? "pkgs"
|
||||
}:
|
||||
let
|
||||
@@ -220,16 +336,27 @@ rec {
|
||||
(if isList example then "${pkgsText}." + concatStringsSep "." example else example);
|
||||
});
|
||||
|
||||
/* Deprecated alias of mkPackageOption, to be removed in 25.05.
|
||||
Previously used to create options with markdown documentation, which is no longer required.
|
||||
/**
|
||||
Deprecated alias of mkPackageOption, to be removed in 25.05.
|
||||
|
||||
Previously used to create options with markdown documentation, which is no longer required.
|
||||
*/
|
||||
mkPackageOptionMD = lib.warn "mkPackageOptionMD is deprecated and will be removed in 25.05; please use mkPackageOption." mkPackageOption;
|
||||
|
||||
/* This option accepts anything, but it does not produce any result.
|
||||
/**
|
||||
This option accepts arbitrary definitions, but it does not produce an option value.
|
||||
|
||||
This is useful for sharing a module across different module sets
|
||||
without having to implement similar features as long as the
|
||||
values of the options are not accessed. */
|
||||
This is useful for sharing a module across different module sets
|
||||
without having to implement similar features as long as the
|
||||
values of the options are not accessed.
|
||||
|
||||
|
||||
# Inputs
|
||||
|
||||
`attrs`
|
||||
|
||||
: Attribute set whose attributes override the argument to `mkOption`.
|
||||
*/
|
||||
mkSinkUndeclaredOptions = attrs: mkOption ({
|
||||
internal = true;
|
||||
visible = false;
|
||||
@@ -243,6 +370,51 @@ rec {
|
||||
apply = x: throw "Option value is not readable because the option is not declared.";
|
||||
} // attrs);
|
||||
|
||||
/**
|
||||
A merge function that merges multiple definitions of an option into a single value
|
||||
|
||||
:::{.caution}
|
||||
This function is used as the default merge operation in `lib.types.mkOptionType`. In most cases, explicit usage of this function is unnecessary.
|
||||
:::
|
||||
|
||||
# Inputs
|
||||
|
||||
`loc`
|
||||
: location of the option in the configuration as a list of strings.
|
||||
|
||||
e.g. `["boot" "loader "grub" "enable"]`
|
||||
|
||||
`defs`
|
||||
: list of definition values and locations.
|
||||
|
||||
e.g. `[ { file = "/foo.nix"; value = 1; } { file = "/bar.nix"; value = 2 } ]`
|
||||
|
||||
# Example
|
||||
:::{.example}
|
||||
## `lib.options.mergeDefaultOption` usage example
|
||||
|
||||
```nix
|
||||
myType = mkOptionType {
|
||||
name = "myType";
|
||||
merge = mergeDefaultOption; # <- This line is redundant. It is the default aready.
|
||||
};
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
# Merge behavior
|
||||
|
||||
Merging requires all definition values to have the same type.
|
||||
|
||||
- If all definitions are booleans, the result of a `foldl'` with the `or` operation is returned.
|
||||
- If all definitions are strings, they are concatenated. (`lib.concatStrings`)
|
||||
- If all definitions are integers and all are equal, the first one is returned.
|
||||
- If all definitions are lists, they are concatenated. (`++`)
|
||||
- If all definitions are attribute sets, they are merged. (`lib.mergeAttrs`)
|
||||
- If all definitions are functions, the first function is applied to the result of the second function. (`f -> x: f x`)
|
||||
- Otherwise, an error is thrown.
|
||||
|
||||
*/
|
||||
mergeDefaultOption = loc: defs:
|
||||
let list = getValues defs; in
|
||||
if length list == 1 then head list
|
||||
@@ -258,7 +430,7 @@ rec {
|
||||
Require a single definition.
|
||||
|
||||
WARNING: Does not perform nested checks, as this does not run the merge function!
|
||||
*/
|
||||
*/
|
||||
mergeOneOption = mergeUniqueOption { message = ""; };
|
||||
|
||||
/*
|
||||
@@ -453,6 +625,47 @@ rec {
|
||||
in "\n- In `${def.file}'${result}"
|
||||
) defs;
|
||||
|
||||
/**
|
||||
Pretty prints all option definition locations
|
||||
|
||||
# Inputs
|
||||
|
||||
`option`
|
||||
: The option to pretty print
|
||||
|
||||
# Examples
|
||||
:::{.example}
|
||||
## `lib.options.showOptionWithDefLocs` usage example
|
||||
|
||||
|
||||
```nix
|
||||
showOptionWithDefLocs { loc = ["x" "y" ]; files = [ "foo.nix" "bar.nix" ]; }
|
||||
"x.y, with values defined in:\n - foo.nix\n - bar.nix\n"
|
||||
```
|
||||
|
||||
```nix
|
||||
nix-repl> eval = lib.evalModules {
|
||||
modules = [
|
||||
{
|
||||
options = {
|
||||
foo = lib.mkEnableOption "foo";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
nix-repl> lib.options.showOptionWithDefLocs eval.options.foo
|
||||
"foo, with values defined in:\n - <unknown-file>\n"
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
# Type
|
||||
|
||||
```
|
||||
showDefsSep :: { files :: [ String ]; loc :: [ String ]; ... } -> string
|
||||
```
|
||||
*/
|
||||
showOptionWithDefLocs = opt: ''
|
||||
${showOption opt.loc}, with values defined in:
|
||||
${concatMapStringsSep "\n" (defFile: " - ${defFile}") opt.files}
|
||||
|
||||
@@ -854,6 +854,30 @@ runTests {
|
||||
([ 1 2 3 ] == (take 4 [ 1 2 3 ]))
|
||||
];
|
||||
|
||||
testDrop = let inherit (lib) drop; in testAllTrue [
|
||||
# list index -1 is out of bounds
|
||||
# ([ 1 2 3 ] == (drop (-1) [ 1 2 3 ]))
|
||||
(drop 0 [ 1 2 3 ] == [ 1 2 3 ])
|
||||
(drop 1 [ 1 2 3 ] == [ 2 3 ])
|
||||
(drop 2 [ 1 2 3 ] == [ 3 ])
|
||||
(drop 3 [ 1 2 3 ] == [ ])
|
||||
(drop 4 [ 1 2 3 ] == [ ])
|
||||
(drop 0 [ ] == [ ])
|
||||
(drop 1 [ ] == [ ])
|
||||
];
|
||||
|
||||
testDropEnd = let inherit (lib) dropEnd; in testAllTrue [
|
||||
(dropEnd 0 [ 1 2 3 ] == [ 1 2 3 ])
|
||||
(dropEnd 1 [ 1 2 3 ] == [ 1 2 ])
|
||||
(dropEnd 2 [ 1 2 3 ] == [ 1 ])
|
||||
(dropEnd 3 [ 1 2 3 ] == [ ])
|
||||
(dropEnd 4 [ 1 2 3 ] == [ ])
|
||||
(dropEnd 0 [ ] == [ ])
|
||||
(dropEnd 1 [ ] == [ ])
|
||||
(dropEnd (-1) [ 1 2 3 ] == [ 1 2 3 ])
|
||||
(dropEnd (-1) [ ] == [ ])
|
||||
];
|
||||
|
||||
testListHasPrefixExample1 = {
|
||||
expr = lists.hasPrefix [ 1 2 ] [ 1 2 3 4 ];
|
||||
expected = true;
|
||||
|
||||
@@ -99,7 +99,7 @@ mkPackageOption pkgs "name" { default = [ "path" "in" "pkgs" ]; example = "liter
|
||||
|
||||
Creates an Option attribute set for an option that specifies the package a module should use for some purpose.
|
||||
|
||||
**Note**: You shouldn’t necessarily make package options for all of your modules. You can always overwrite a specific package throughout nixpkgs by using [nixpkgs overlays](https://nixos.org/manual/nixpkgs/stable/#chap-overlays).
|
||||
**Note**: You should make package options for your modules, where applicable. While one can always overwrite a specific package throughout nixpkgs by using [nixpkgs overlays](https://nixos.org/manual/nixpkgs/stable/#chap-overlays), they slow down nixpkgs evaluation significantly and are harder to debug when issues arise.
|
||||
|
||||
The package is specified in the third argument under `default` as a list of strings
|
||||
representing its attribute path in nixpkgs (or another package set).
|
||||
|
||||
@@ -343,6 +343,21 @@ have a predefined type and string generator already declared under
|
||||
and returning a set with TOML-specific attributes `type` and
|
||||
`generate` as specified [below](#pkgs-formats-result).
|
||||
|
||||
`pkgs.formats.xml` { format ? "badgerfish", withHeader ? true}
|
||||
|
||||
: A function taking an attribute set with values
|
||||
and returning a set with XML-specific attributes `type` and
|
||||
`generate` as specified [below](#pkgs-formats-result).
|
||||
|
||||
`format`
|
||||
|
||||
: Input format. Because XML can not be translated one-to-one, we have to use intermediate formats. Possible values:
|
||||
- `"badgerfish"`: Uses [badgerfish](http://www.sklar.com/badgerfish/) conversion.
|
||||
|
||||
`withHeader`
|
||||
|
||||
: Outputs the xml with header.
|
||||
|
||||
`pkgs.formats.cdn` { }
|
||||
|
||||
: A function taking an empty attribute set (for future extensibility)
|
||||
|
||||
@@ -89,6 +89,8 @@
|
||||
|
||||
- [immich-public-proxy](https://github.com/alangrainger/immich-public-proxy), a proxy for sharing Immich albums without exposing the Immich API. Available as [services.immich-public-proxy](#opt-services.immich-public-proxy.enable).
|
||||
|
||||
- [Zipline](https://zipline.diced.sh/), a ShareX/file upload server that is easy to use, packed with features, and with an easy setup. Available as [services.zipline](#opt-services.zipline.enable).
|
||||
|
||||
- [mqtt-exporter](https://github.com/kpetremann/mqtt-exporter/), a Prometheus exporter for exposing messages from MQTT. Available as [services.prometheus.exporters.mqtt](#opt-services.prometheus.exporters.mqtt.enable).
|
||||
|
||||
- [nvidia-gpu](https://github.com/utkuozdemir/nvidia_gpu_exporter), a Prometheus exporter that scrapes `nvidia-smi` for GPU metrics. Available as [services.prometheus.exporters.nvidia-gpu](#opt-services.prometheus.exporters.nvidia-gpu.enable).
|
||||
|
||||
@@ -1583,6 +1583,7 @@
|
||||
./services/web-apps/your_spotify.nix
|
||||
./services/web-apps/youtrack.nix
|
||||
./services/web-apps/zabbix.nix
|
||||
./services/web-apps/zipline.nix
|
||||
./services/web-apps/zitadel.nix
|
||||
./services/web-servers/agate.nix
|
||||
./services/web-servers/apache-httpd/default.nix
|
||||
|
||||
@@ -5,12 +5,40 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
||||
inherit (pkgs) mariadb gzip;
|
||||
|
||||
cfg = config.services.mysqlBackup;
|
||||
defaultUser = "mysqlbackup";
|
||||
|
||||
compressionAlgs = {
|
||||
gzip = rec {
|
||||
pkg = pkgs.gzip;
|
||||
ext = ".gz";
|
||||
minLevel = 1;
|
||||
maxLevel = 9;
|
||||
cmd = compressionLevelFlag: "${pkg}/bin/gzip -c ${cfg.gzipOptions} ${compressionLevelFlag}";
|
||||
};
|
||||
xz = rec {
|
||||
pkg = pkgs.xz;
|
||||
ext = ".xz";
|
||||
minLevel = 0;
|
||||
maxLevel = 9;
|
||||
cmd = compressionLevelFlag: "${pkg}/bin/xz -z -c ${compressionLevelFlag} -";
|
||||
};
|
||||
zstd = rec {
|
||||
pkg = pkgs.zstd;
|
||||
ext = ".zst";
|
||||
minLevel = 1;
|
||||
maxLevel = 19;
|
||||
cmd = compressionLevelFlag: "${pkg}/bin/zstd ${compressionLevelFlag} -";
|
||||
};
|
||||
};
|
||||
|
||||
compressionLevelFlag = lib.optionalString (cfg.compressionLevel != null) (
|
||||
"-" + toString cfg.compressionLevel
|
||||
);
|
||||
|
||||
selectedAlg = compressionAlgs.${cfg.compressionAlg};
|
||||
compressionCmd = selectedAlg.cmd compressionLevelFlag;
|
||||
|
||||
backupScript = ''
|
||||
set -o pipefail
|
||||
failed=""
|
||||
@@ -20,9 +48,10 @@ let
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
|
||||
backupDatabaseScript = db: ''
|
||||
dest="${cfg.location}/${db}.gz"
|
||||
if ${mariadb}/bin/mysqldump ${lib.optionalString cfg.singleTransaction "--single-transaction"} ${db} | ${gzip}/bin/gzip -c ${cfg.gzipOptions} > $dest.tmp; then
|
||||
dest="${cfg.location}/${db}${selectedAlg.ext}"
|
||||
if ${pkgs.mariadb}/bin/mysqldump ${lib.optionalString cfg.singleTransaction "--single-transaction"} ${db} | ${compressionCmd} > $dest.tmp; then
|
||||
mv $dest.tmp $dest
|
||||
echo "Backed up to $dest"
|
||||
else
|
||||
@@ -33,12 +62,9 @@ let
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
|
||||
services.mysqlBackup = {
|
||||
|
||||
enable = lib.mkEnableOption "MySQL backups";
|
||||
|
||||
calendar = lib.mkOption {
|
||||
@@ -49,6 +75,31 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
compressionAlg = lib.mkOption {
|
||||
type = lib.types.enum (lib.attrNames compressionAlgs);
|
||||
default = "gzip";
|
||||
description = ''
|
||||
Compression algorithm to use for database dumps.
|
||||
'';
|
||||
};
|
||||
|
||||
compressionLevel = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.int;
|
||||
default = null;
|
||||
description = ''
|
||||
Compression level to use for ${lib.concatStringsSep ", " (lib.init (lib.attrNames compressionAlgs))} or ${lib.last (lib.attrNames compressionAlgs)}.
|
||||
${lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (
|
||||
name: algo: "- For ${name}: ${toString algo.minLevel}-${toString algo.maxLevel}"
|
||||
) compressionAlgs
|
||||
)}
|
||||
|
||||
:::{.note}
|
||||
If compression level is also specified in gzipOptions, the gzipOptions value will be overwritten
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = defaultUser;
|
||||
@@ -69,7 +120,7 @@ in
|
||||
type = lib.types.path;
|
||||
default = "/var/backup/mysql";
|
||||
description = ''
|
||||
Location to put the gzipped MySQL database dumps.
|
||||
Location to put the compressed MySQL database dumps.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -86,13 +137,25 @@ in
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
Command line options to use when invoking `gzip`.
|
||||
Only used when compression is set to "gzip".
|
||||
If compression level is specified both here and in compressionLevel, the compressionLevel value will take precedence.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# assert config to be correct
|
||||
assertions = [
|
||||
{
|
||||
assertion =
|
||||
cfg.compressionLevel == null
|
||||
|| selectedAlg.minLevel <= cfg.compressionLevel && cfg.compressionLevel <= selectedAlg.maxLevel;
|
||||
message = "${cfg.compressionAlg} compression level must be between ${toString selectedAlg.minLevel} and ${toString selectedAlg.maxLevel}";
|
||||
}
|
||||
];
|
||||
|
||||
# ensure unix user to be used to perform backup exist.
|
||||
users.users = lib.optionalAttrs (cfg.user == defaultUser) {
|
||||
${defaultUser} = {
|
||||
isSystemUser = true;
|
||||
@@ -102,11 +165,14 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
# add the compression tool to the system environment.
|
||||
environment.systemPackages = [ selectedAlg.pkg ];
|
||||
|
||||
# ensure database user to be used to perform backup exist.
|
||||
services.mysql.ensureUsers = [
|
||||
{
|
||||
name = cfg.user;
|
||||
ensurePermissions =
|
||||
with lib;
|
||||
let
|
||||
privs = "SELECT, SHOW VIEW, TRIGGER, LOCK TABLES";
|
||||
grant = db: lib.nameValuePair "${db}.*" privs;
|
||||
@@ -140,4 +206,5 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = [ lib.maintainers._6543 ];
|
||||
}
|
||||
|
||||
@@ -17,6 +17,22 @@ in
|
||||
{
|
||||
port = 9342;
|
||||
extraOpts = {
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "frr";
|
||||
description = ''
|
||||
User name under which the frr exporter shall be run.
|
||||
The exporter talks to frr using a unix socket, which is owned by frr.
|
||||
'';
|
||||
};
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "frrtty";
|
||||
description = ''
|
||||
Group under which the frr exporter shall be run.
|
||||
The exporter talks to frr using a unix socket, which is owned by frrtty group.
|
||||
'';
|
||||
};
|
||||
enabledCollectors = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
@@ -38,6 +54,7 @@ in
|
||||
serviceConfig = {
|
||||
DynamicUser = false;
|
||||
RuntimeDirectory = "prometheus-frr-exporter";
|
||||
RestrictAddressFamilies = [ "AF_UNIX" ];
|
||||
ExecStart = ''
|
||||
${lib.getExe pkgs.prometheus-frr-exporter} \
|
||||
${concatMapStringsSep " " (x: "--collector." + x) cfg.enabledCollectors} \
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.zipline;
|
||||
in
|
||||
{
|
||||
meta.maintainers = with lib.maintainers; [ defelo ];
|
||||
|
||||
options.services.zipline = {
|
||||
enable = lib.mkEnableOption "Zipline";
|
||||
|
||||
package = lib.mkPackageOption pkgs "zipline" { };
|
||||
|
||||
settings = lib.mkOption {
|
||||
description = ''
|
||||
Configuration of Zipline. See <https://zipline.diced.sh/docs/config> for more information.
|
||||
'';
|
||||
default = { };
|
||||
example = {
|
||||
CORE_SECRET = "changethis";
|
||||
CORE_DATABASE_URL = "postgres://postgres:postgres@postgres/postgres";
|
||||
CORE_HOST = "0.0.0.0";
|
||||
CORE_PORT = "3000";
|
||||
DATASOURCE_LOCAL_DIRECTORY = "/var/lib/zipline/uploads";
|
||||
};
|
||||
|
||||
type = lib.types.submodule {
|
||||
freeformType =
|
||||
with lib.types;
|
||||
attrsOf (oneOf [
|
||||
str
|
||||
int
|
||||
]);
|
||||
|
||||
options = {
|
||||
CORE_HOST = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "The hostname to listen on.";
|
||||
default = "127.0.0.1";
|
||||
example = "0.0.0.0";
|
||||
};
|
||||
|
||||
CORE_PORT = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
description = "The port to listen on.";
|
||||
default = 3000;
|
||||
example = 8000;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environmentFiles = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.path;
|
||||
default = [ ];
|
||||
example = [ "/run/secrets/zipline.env" ];
|
||||
description = ''
|
||||
Files to load environment variables from (in addition to [](#opt-services.zipline.settings)). This is useful to avoid putting secrets into the nix store. See <https://zipline.diced.sh/docs/config> for more information.
|
||||
'';
|
||||
};
|
||||
|
||||
database.createLocally = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to enable and configure a local PostgreSQL database server.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.zipline.settings = {
|
||||
CORE_DATABASE_URL = lib.mkIf cfg.database.createLocally "postgresql://zipline@localhost/zipline?host=/run/postgresql";
|
||||
DATASOURCE_LOCAL_DIRECTORY = lib.mkDefault "/var/lib/zipline/uploads"; # created automatically by zipline
|
||||
};
|
||||
|
||||
services.postgresql = lib.mkIf cfg.database.createLocally {
|
||||
enable = true;
|
||||
ensureUsers = lib.singleton {
|
||||
name = "zipline";
|
||||
ensureDBOwnership = true;
|
||||
};
|
||||
ensureDatabases = [ "zipline" ];
|
||||
};
|
||||
|
||||
systemd.services.zipline = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
wants = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ] ++ lib.optional cfg.database.createLocally "postgresql.service";
|
||||
requires = lib.optional cfg.database.createLocally "postgresql.service";
|
||||
|
||||
environment = lib.mapAttrs (_: value: toString value) cfg.settings;
|
||||
|
||||
serviceConfig = {
|
||||
User = "zipline";
|
||||
Group = "zipline";
|
||||
DynamicUser = true;
|
||||
StateDirectory = "zipline";
|
||||
EnvironmentFile = cfg.environmentFiles;
|
||||
ExecStart = lib.getExe cfg.package;
|
||||
|
||||
# Hardening
|
||||
CapabilityBoundingSet = [ "" ];
|
||||
DeviceAllow = [ "" ];
|
||||
LockPersonality = true;
|
||||
PrivateDevices = true;
|
||||
PrivateTmp = true;
|
||||
PrivateUsers = true;
|
||||
ProcSubset = "pid";
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "invisible";
|
||||
ProtectSystem = "strict";
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
"AF_UNIX"
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -558,7 +558,10 @@ in
|
||||
paths = cfg.qemu.vhostUserPackages;
|
||||
pathsToLink = [ "/share/qemu/vhost-user" ];
|
||||
};
|
||||
in [ "L+ /var/lib/qemu/vhost-user - - - - ${vhostUserCollection}/share/qemu/vhost-user" ];
|
||||
in [
|
||||
"L+ /var/lib/qemu/vhost-user - - - - ${vhostUserCollection}/share/qemu/vhost-user"
|
||||
"L+ /var/lib/qemu/firmware - - - - ${cfg.qemu.package}/share/qemu/firmware"
|
||||
];
|
||||
|
||||
security.polkit = {
|
||||
enable = true;
|
||||
|
||||
@@ -1196,6 +1196,7 @@ in {
|
||||
zeronet-conservancy = handleTest ./zeronet-conservancy.nix {};
|
||||
zfs = handleTest ./zfs.nix {};
|
||||
zigbee2mqtt = handleTest ./zigbee2mqtt.nix {};
|
||||
zipline = handleTest ./zipline.nix {};
|
||||
zoneminder = handleTest ./zoneminder.nix {};
|
||||
zookeeper = handleTest ./zookeeper.nix {};
|
||||
zram-generator = handleTest ./zram-generator.nix {};
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
import ./make-test-python.nix (
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "zipline";
|
||||
meta.maintainers = with lib.maintainers; [ defelo ];
|
||||
|
||||
nodes.machine = {
|
||||
services.zipline = {
|
||||
enable = true;
|
||||
settings = {
|
||||
CORE_HOST = "127.0.0.1";
|
||||
CORE_PORT = 8000;
|
||||
};
|
||||
environmentFiles = [
|
||||
(builtins.toFile "zipline.env" ''
|
||||
CORE_SECRET=testsecret
|
||||
'')
|
||||
];
|
||||
};
|
||||
|
||||
networking.hosts."127.0.0.1" = [ "zipline.local" ];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
import json
|
||||
import re
|
||||
|
||||
machine.wait_for_unit("zipline.service")
|
||||
machine.wait_for_open_port(8000)
|
||||
|
||||
resp = machine.succeed("curl zipline.local:8000/api/auth/login -v -X POST -H 'Content-Type: application/json' -d '{\"username\": \"administrator\", \"password\": \"password\"}' 2>&1")
|
||||
assert json.loads(resp.splitlines()[-1]) == {"success": True}
|
||||
|
||||
assert (cookie := re.search(r"(?m)^< Set-Cookie: ([^;]*)", resp))
|
||||
resp = machine.succeed(f"curl zipline.local:8000/api/user/token -H 'Cookie: {cookie[1]}' -X PATCH")
|
||||
token = json.loads(resp)["success"]
|
||||
|
||||
resp = machine.succeed(f"curl zipline.local:8000/api/shorten -H 'Authorization: {token}' -X POST -H 'Content-Type: application/json' -d '{{\"url\": \"https://nixos.org/\", \"vanity\": \"nixos\"}}'")
|
||||
url = json.loads(resp)["url"]
|
||||
assert url == "http://zipline.local:8000/go/nixos"
|
||||
|
||||
resp = machine.succeed(f"curl -I {url}")
|
||||
assert re.search(r"(?m)^HTTP/1.1 302 Found\r?$", resp)
|
||||
assert (location := re.search(r"(?mi)^location: (.+?)\r?$", resp))
|
||||
assert location[1] == "https://nixos.org/"
|
||||
'';
|
||||
}
|
||||
)
|
||||
@@ -9,8 +9,8 @@ let
|
||||
inherit tiling_wm;
|
||||
};
|
||||
stableVersion = {
|
||||
version = "2024.2.1.12"; # "Android Studio Ladybug | 2024.2.1 Patch 3"
|
||||
sha256Hash = "sha256-TfUax9c+RSAzg0GKU3yVYsWL72q4DUB0zZiss4flyqY=";
|
||||
version = "2024.2.2.13"; # "Android Studio Ladybug Feature Drop | 2024.2.2"
|
||||
sha256Hash = "sha256-t/4e1KeVm9rKeo/VdGHbv5ogXrI8whjtgo7YjouZjLU=";
|
||||
};
|
||||
betaVersion = {
|
||||
version = "2024.2.2.12"; # "Android Studio Ladybug Feature Drop | 2024.2.2 RC 2"
|
||||
|
||||
@@ -2,57 +2,85 @@
|
||||
, buildPythonApplication
|
||||
, fetchPypi
|
||||
# build inputs
|
||||
, about-time
|
||||
, aiofiles
|
||||
, aiohttp
|
||||
, aiosignal
|
||||
, alive-progress
|
||||
, async-timeout
|
||||
, attrs
|
||||
, certifi
|
||||
, charset-normalizer
|
||||
, cssselect
|
||||
, frozenlist
|
||||
, html5lib
|
||||
, idna
|
||||
, isodate
|
||||
, json-home-client
|
||||
, kdl-py
|
||||
, lxml
|
||||
, multidict
|
||||
, pillow
|
||||
, pygments
|
||||
, requests
|
||||
, result
|
||||
, setuptools
|
||||
, six
|
||||
, tenacity
|
||||
, typing-extensions
|
||||
, uri-template
|
||||
, urllib3
|
||||
, webencodings
|
||||
, widlparser
|
||||
, yarl
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "bikeshed";
|
||||
version = "3.7.0";
|
||||
version = "4.2.7";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-3fVo+B71SsJs+XF4+FWH2nz0ouTnpC/02fXYr1C9Jrk=";
|
||||
hash = "sha256-vtZ97brCk+fd/HsA2UHdS17o8rJ/VvSOdhg0MHzlCs8=";
|
||||
};
|
||||
|
||||
# Relax requirements from "==" to ">="
|
||||
# https://github.com/tabatkins/bikeshed/issues/2178
|
||||
postPatch = ''
|
||||
substituteInPlace requirements.txt \
|
||||
--replace "==" ">="
|
||||
'';
|
||||
build-system = [ setuptools ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
dependencies = [
|
||||
about-time
|
||||
aiofiles
|
||||
aiohttp
|
||||
aiosignal
|
||||
alive-progress
|
||||
async-timeout
|
||||
attrs
|
||||
certifi
|
||||
charset-normalizer
|
||||
cssselect
|
||||
frozenlist
|
||||
html5lib
|
||||
idna
|
||||
isodate
|
||||
json-home-client
|
||||
kdl-py
|
||||
lxml
|
||||
multidict
|
||||
pillow
|
||||
pygments
|
||||
requests
|
||||
result
|
||||
setuptools
|
||||
six
|
||||
tenacity
|
||||
typing-extensions
|
||||
uri-template
|
||||
urllib3
|
||||
webencodings
|
||||
widlparser
|
||||
yarl
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,10 +9,10 @@
|
||||
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox";
|
||||
version = "134.0";
|
||||
version = "134.0.1";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "1275a686dc0a27b48df4ae05616511512f676e03474e3095b2521eac25a385d345aa3e8786716dbe812af49e07d72b32772479089d648968e2004ca0c9c35344";
|
||||
sha512 = "3f40ca5a753a66e08af4e8b12d75feab67b0567ecffd34f5cf013f49aeb809ccd458c8011e9456dc902c24eaf626078117874514eb40cee5574eafce93ee772d";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -12,13 +12,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "autodock-vina";
|
||||
version = "1.2.5";
|
||||
version = "1.2.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ccsb-scripps";
|
||||
repo = "autodock-vina";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-yguUMEX0tn75wKrPKyqlCYbBFaEwC5b1s3k9xept1Fw=";
|
||||
hash = "sha256-Y0whqBecZt5D/5HEfL005rCq4lAJTr2mUxy5rygCEtc=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/build/${
|
||||
|
||||
@@ -7,7 +7,7 @@ linkNodeModulesHook() {
|
||||
fi
|
||||
|
||||
@nodejs@ @script@ @storePrefix@ "${npmDeps}/node_modules"
|
||||
if test -f node_modules/.bin; then
|
||||
if test -d node_modules/.bin; then
|
||||
export PATH=$(readlink -f node_modules/.bin):$PATH
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,199 +1,3 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
python312,
|
||||
fetchFromGitHub,
|
||||
gitMinimal,
|
||||
portaudio,
|
||||
}:
|
||||
{ python3Packages }:
|
||||
|
||||
let
|
||||
python3 = python312.override {
|
||||
self = python3;
|
||||
packageOverrides = _: super: { tree-sitter = super.tree-sitter_0_21; };
|
||||
};
|
||||
version = "0.70.0";
|
||||
aider-chat = python3.pkgs.buildPythonApplication {
|
||||
pname = "aider-chat";
|
||||
inherit version;
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Aider-AI";
|
||||
repo = "aider";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-wGm6JV9ISRi/p1lA3JyzOdHQKFHFxEhfr+NdShUxm0M=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
build-system = with python3.pkgs; [ setuptools-scm ];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
aiohappyeyeballs
|
||||
aiohttp
|
||||
aiosignal
|
||||
annotated-types
|
||||
anyio
|
||||
attrs
|
||||
backoff
|
||||
beautifulsoup4
|
||||
certifi
|
||||
cffi
|
||||
charset-normalizer
|
||||
click
|
||||
configargparse
|
||||
diff-match-patch
|
||||
diskcache
|
||||
distro
|
||||
filelock
|
||||
flake8
|
||||
frozenlist
|
||||
fsspec
|
||||
gitdb
|
||||
gitpython
|
||||
grep-ast
|
||||
h11
|
||||
httpcore
|
||||
httpx
|
||||
huggingface-hub
|
||||
idna
|
||||
importlib-resources
|
||||
jinja2
|
||||
jiter
|
||||
json5
|
||||
jsonschema
|
||||
jsonschema-specifications
|
||||
litellm
|
||||
markdown-it-py
|
||||
markupsafe
|
||||
mccabe
|
||||
mdurl
|
||||
multidict
|
||||
networkx
|
||||
numpy
|
||||
openai
|
||||
packaging
|
||||
pathspec
|
||||
pexpect
|
||||
pillow
|
||||
prompt-toolkit
|
||||
psutil
|
||||
ptyprocess
|
||||
pycodestyle
|
||||
pycparser
|
||||
pydantic
|
||||
pydantic-core
|
||||
pydub
|
||||
pyflakes
|
||||
pygments
|
||||
pypandoc
|
||||
pyperclip
|
||||
python-dotenv
|
||||
pyyaml
|
||||
referencing
|
||||
regex
|
||||
requests
|
||||
rich
|
||||
rpds-py
|
||||
scipy
|
||||
smmap
|
||||
sniffio
|
||||
sounddevice
|
||||
soundfile
|
||||
soupsieve
|
||||
tiktoken
|
||||
tokenizers
|
||||
tqdm
|
||||
tree-sitter
|
||||
tree-sitter-languages
|
||||
typing-extensions
|
||||
urllib3
|
||||
watchfiles
|
||||
wcwidth
|
||||
yarl
|
||||
zipp
|
||||
pip
|
||||
|
||||
# Not listed in requirements
|
||||
mixpanel
|
||||
monotonic
|
||||
posthog
|
||||
propcache
|
||||
python-dateutil
|
||||
];
|
||||
|
||||
buildInputs = [ portaudio ];
|
||||
|
||||
nativeCheckInputs = (with python3.pkgs; [ pytestCheckHook ]) ++ [ gitMinimal ];
|
||||
|
||||
disabledTestPaths = [
|
||||
# Tests require network access
|
||||
"tests/scrape/test_scrape.py"
|
||||
# Expected 'mock' to have been called once
|
||||
"tests/help/test_help.py"
|
||||
];
|
||||
|
||||
disabledTests =
|
||||
[
|
||||
# Tests require network
|
||||
"test_urls"
|
||||
"test_get_commit_message_with_custom_prompt"
|
||||
# FileNotFoundError
|
||||
"test_get_commit_message"
|
||||
# Expected 'launch_gui' to have been called once
|
||||
"test_browser_flag_imports_streamlit"
|
||||
# AttributeError
|
||||
"test_simple_send_with_retries"
|
||||
# Expected 'check_version' to have been called once
|
||||
"test_main_exit_calls_version_check"
|
||||
# AssertionError: assert 2 == 1
|
||||
"test_simple_send_non_retryable_error"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# Tests fails on darwin
|
||||
"test_dark_mode_sets_code_theme"
|
||||
"test_default_env_file_sets_automatic_variable"
|
||||
# FileNotFoundError: [Errno 2] No such file or directory: 'vim'
|
||||
"test_pipe_editor"
|
||||
];
|
||||
|
||||
makeWrapperArgs = [
|
||||
"--set AIDER_CHECK_UPDATE false"
|
||||
"--set AIDER_ANALYTICS false"
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export HOME=$(mktemp -d)
|
||||
export AIDER_ANALYTICS="false"
|
||||
'';
|
||||
|
||||
optional-dependencies = with python3.pkgs; {
|
||||
playwright = [
|
||||
greenlet
|
||||
playwright
|
||||
pyee
|
||||
typing-extensions
|
||||
];
|
||||
};
|
||||
|
||||
passthru = {
|
||||
withPlaywright = aider-chat.overridePythonAttrs (
|
||||
{ dependencies, ... }:
|
||||
{
|
||||
dependencies = dependencies ++ aider-chat.optional-dependencies.playwright;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "AI pair programming in your terminal";
|
||||
homepage = "https://github.com/paul-gauthier/aider";
|
||||
changelog = "https://github.com/paul-gauthier/aider/blob/v${version}/HISTORY.md";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ taha-yassine ];
|
||||
mainProgram = "aider";
|
||||
};
|
||||
};
|
||||
in
|
||||
aider-chat
|
||||
python3Packages.toPythonApplication python3Packages.aider-chat
|
||||
|
||||
@@ -17,14 +17,14 @@
|
||||
}:
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "alacarte";
|
||||
version = "3.54.0";
|
||||
version = "3.54.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = "alacarte";
|
||||
rev = version;
|
||||
hash = "sha256-btqSlO0vM4fmoBcxh3mshv0t2oZSxm8Vr26UvH5fVvE=";
|
||||
hash = "sha256-nfSYbGZvx76UzHGf6Jxq8Ny5o9NX5nXG9Kc/gRNn6HM=";
|
||||
};
|
||||
|
||||
format = "other";
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "baddns";
|
||||
version = "1.3.3";
|
||||
version = "1.6.68";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "blacklanternsecurity";
|
||||
repo = "baddns";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-pF7HYl1l+TSahJHuyVBZtYeET6wPCiSi+Yi7Rg46T44=";
|
||||
tag = version;
|
||||
hash = "sha256-TQPjSmLXgcHYxBQFO1QPozs1XRaJDTakGN24LLuFdfY=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "cross-seed";
|
||||
version = "6.8.4";
|
||||
version = "6.8.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cross-seed";
|
||||
repo = "cross-seed";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-R0mgrRWb9pM7DWC4Y5cASkuwWBJAtk6iKz2tIa5rLVE=";
|
||||
hash = "sha256-PrpS4GzGkicfN04yqGDeFZBVk0RA5RFlZPbNVHpNN8E=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-1xP0KwuVZMeIxg3dXd0CAGW0517i/6WBu3qGOkwsoks=";
|
||||
npmDepsHash = "sha256-xX0su3q31R42m8jksF2IoSZCe9dFjUlrvaI5uMD/HGQ=";
|
||||
|
||||
meta = {
|
||||
description = "Fully-automatic torrent cross-seeding with Torznab";
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dico";
|
||||
version = "2.11";
|
||||
version = "2.12";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-rB+Y4jPQ+srKrBBZ87gThKVZLib9TDCCrtAD9l4lLFo=";
|
||||
sha256 = "sha256-couJxQ4JC/+Dno97MEO1xwI/hhqSEckwSLQqtFWGavc=";
|
||||
};
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
Generated
+270
-11
@@ -91,9 +91,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.1.30"
|
||||
version = "1.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945"
|
||||
checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e"
|
||||
dependencies = [
|
||||
"shlex",
|
||||
]
|
||||
@@ -214,7 +214,7 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
|
||||
|
||||
[[package]]
|
||||
name = "difftastic"
|
||||
version = "0.61.0"
|
||||
version = "0.62.0"
|
||||
dependencies = [
|
||||
"assert_cmd",
|
||||
"bumpalo",
|
||||
@@ -245,9 +245,33 @@ dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
"smallvec",
|
||||
"streaming-iterator",
|
||||
"strsim",
|
||||
"strum",
|
||||
"tree-sitter",
|
||||
"tree-sitter-bash",
|
||||
"tree-sitter-c",
|
||||
"tree-sitter-c-sharp",
|
||||
"tree-sitter-cpp",
|
||||
"tree-sitter-css",
|
||||
"tree-sitter-go",
|
||||
"tree-sitter-haskell",
|
||||
"tree-sitter-html",
|
||||
"tree-sitter-java",
|
||||
"tree-sitter-javascript",
|
||||
"tree-sitter-json",
|
||||
"tree-sitter-julia",
|
||||
"tree-sitter-language",
|
||||
"tree-sitter-lua",
|
||||
"tree-sitter-objc",
|
||||
"tree-sitter-ocaml",
|
||||
"tree-sitter-php",
|
||||
"tree-sitter-python",
|
||||
"tree-sitter-ruby",
|
||||
"tree-sitter-scala",
|
||||
"tree-sitter-toml-ng",
|
||||
"tree-sitter-typescript",
|
||||
"tree-sitter-xml",
|
||||
"tree_magic_mini",
|
||||
"typed-arena",
|
||||
"unicode-width",
|
||||
@@ -750,9 +774,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "1.10.4"
|
||||
version = "1.11.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
|
||||
checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"memchr",
|
||||
@@ -762,9 +786,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "regex-automata"
|
||||
version = "0.4.6"
|
||||
version = "0.4.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
|
||||
checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"memchr",
|
||||
@@ -773,9 +797,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "regex-syntax"
|
||||
version = "0.8.2"
|
||||
version = "0.8.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
||||
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
||||
|
||||
[[package]]
|
||||
name = "rustc-hash"
|
||||
@@ -897,6 +921,12 @@ version = "1.13.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
||||
|
||||
[[package]]
|
||||
name = "streaming-iterator"
|
||||
version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520"
|
||||
|
||||
[[package]]
|
||||
name = "strsim"
|
||||
version = "0.10.0"
|
||||
@@ -982,12 +1012,241 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter"
|
||||
version = "0.20.10"
|
||||
version = "0.24.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d"
|
||||
checksum = "8ac95b18f0f727aaaa012bd5179a1916706ee3ed071920fdbda738750b0c0bf5"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"regex",
|
||||
"regex-syntax",
|
||||
"streaming-iterator",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-bash"
|
||||
version = "0.23.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "329a4d48623ac337d42b1df84e81a1c9dbb2946907c102ca72db158c1964a52e"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-c"
|
||||
version = "0.23.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "afd2b1bf1585dc2ef6d69e87d01db8adb059006649dd5f96f31aa789ee6e9c71"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-c-sharp"
|
||||
version = "0.23.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "67f06accca7b45351758663b8215089e643d53bd9a660ce0349314263737fcb0"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-cpp"
|
||||
version = "0.23.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "df2196ea9d47b4ab4a31b9297eaa5a5d19a0b121dceb9f118f6790ad0ab94743"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-css"
|
||||
version = "0.23.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "25435a275adb3226b6fddab891bbc50d1a500774a44ceb97022a39666ccda75d"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-go"
|
||||
version = "0.23.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b13d476345220dbe600147dd444165c5791bf85ef53e28acbedd46112ee18431"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-haskell"
|
||||
version = "0.23.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "977c51e504548cba13fc27cb5a2edab2124cf6716a1934915d07ab99523b05a4"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-html"
|
||||
version = "0.23.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "261b708e5d92061ede329babaaa427b819329a9d427a1d710abb0f67bbef63ee"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-java"
|
||||
version = "0.23.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6f9b24494d5f386acb2c086e0541c1b145692e0e012101ddb8257737b83c2803"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-javascript"
|
||||
version = "0.23.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bf40bf599e0416c16c125c3cec10ee5ddc7d1bb8b0c60fa5c4de249ad34dc1b1"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-json"
|
||||
version = "0.24.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4d727acca406c0020cffc6cf35516764f36c8e3dc4408e5ebe2cb35a947ec471"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-julia"
|
||||
version = "0.23.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4144731a178812ee867619b1e98b3b91e54c1652304b26e5ebe3175b701de323"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-language"
|
||||
version = "0.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c199356c799a8945965bb5f2c55b2ad9d9aa7c4b4f6e587fe9dea0bc715e5f9c"
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-lua"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5cdb9adf0965fec58e7660cbb3a059dbb12ebeec9459e6dcbae3db004739641e"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-objc"
|
||||
version = "3.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9ca8bb556423fc176f0535e79d525f783a6684d3c9da81bf9d905303c129e1d2"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-ocaml"
|
||||
version = "0.23.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "93c104a23d175906dd0cf1f872745d2b4ec10f29a75194a3556501b2f66ce377"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-php"
|
||||
version = "0.23.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f066e94e9272cfe4f1dcb07a1c50c66097eca648f2d7233d299c8ae9ed8c130c"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-python"
|
||||
version = "0.23.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "70beaa47e19e1529e8787fc0a80ebbae5a9fdaefc5fcc8972c885c9abf6ab0f0"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-ruby"
|
||||
version = "0.23.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "be0484ea4ef6bb9c575b4fdabde7e31340a8d2dbc7d52b321ac83da703249f95"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-scala"
|
||||
version = "0.23.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ab837c0df7ffb6c315fd1cd792164375b3ec0c282ea35f639231f138044f8d0c"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-toml-ng"
|
||||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e9adc2c898ae49730e857d75be403da3f92bb81d8e37a2f918a08dd10de5ebb1"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-typescript"
|
||||
version = "0.23.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6c5f76ed8d947a75cc446d5fccd8b602ebf0cde64ccf2ffa434d873d7a575eff"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-xml"
|
||||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e670041f591d994f54d597ddcd8f4ebc930e282c4c76a42268743b71f0c8b6b3"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -18,13 +18,13 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "difftastic";
|
||||
version = "0.61.0";
|
||||
version = "0.62.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wilfred";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-hhkcujMuirBTIwUP3RMZ+F76T1TLcjMqa5l328xrwRg=";
|
||||
hash = "sha256-AAnlopJTb+tjkACISK9OC0k59BDt+8michzt37P1lL8=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
|
||||
@@ -37,13 +37,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "dxvk";
|
||||
version = "2.5.2";
|
||||
version = "2.5.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "doitsujin";
|
||||
repo = "dxvk";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-be1TDfUivl+tjcwT/VYWMV2lP7uxFfCXVPSApKgoC78=";
|
||||
hash = "sha256-/dXU5x+YdOHF2mpUy5wykibShQuIfo3OHS4DzXUymIs=";
|
||||
fetchSubmodules = true; # Needed for the DirectX headers and libdisplay-info
|
||||
};
|
||||
|
||||
|
||||
@@ -41,13 +41,16 @@ stdenv.mkDerivation rec {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
scons
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
SDL2
|
||||
libpng
|
||||
libjpeg
|
||||
glew
|
||||
openal
|
||||
scons
|
||||
libmad
|
||||
libuuid
|
||||
];
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
autoreconfHook,
|
||||
autoconf-archive,
|
||||
ncurses,
|
||||
pkg-config,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "finalcut";
|
||||
version = "0.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gansm";
|
||||
repo = "finalcut";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-iKLE4UMDbnsKYEjQHlF+xyZSBke1EZSVJiabbKRkzhg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
autoconf-archive
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [ ncurses ];
|
||||
|
||||
meta = {
|
||||
description = "Text-based widget toolkit";
|
||||
homepage = "https://github.com/gansm/finalcut";
|
||||
changelog = "https://github.com/gansm/finalcut/releases/tag/${finalAttrs.version}";
|
||||
license = lib.licenses.lgpl3Plus;
|
||||
maintainers = with lib.maintainers; [ sikmir ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "flyctl";
|
||||
version = "0.3.56";
|
||||
version = "0.3.61";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "superfly";
|
||||
repo = "flyctl";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-l413128FjVflVKHAYJspK63UP8IomNimIeJi3xyYmxw=";
|
||||
hash = "sha256-YGUjEK8Yvb1S879MNQ/gJYNG4DjFMTL2VHE/m5KLoE0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-/YP9qx6OS2OcPSF1BgEZ4l+nSwg+T5rKOHjdDHlNy+k=";
|
||||
vendorHash = "sha256-SqG5JJ2l71+fQirsg51hjr5sFHQzzH3U+acJMaN5W0c=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
||||
@@ -54,7 +54,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
vala
|
||||
desktop-file-utils
|
||||
wrapGAppsHook3
|
||||
pcre2
|
||||
python3
|
||||
];
|
||||
|
||||
@@ -67,6 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
vte
|
||||
libuuid
|
||||
nautilus # For extension
|
||||
pcre2
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, installShellFiles
|
||||
, testers
|
||||
, nix-update-script
|
||||
, go-task
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
testers,
|
||||
nix-update-script,
|
||||
go-task,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
@@ -34,14 +36,16 @@ buildGoModule rec {
|
||||
|
||||
env.CGO_ENABLED = 0;
|
||||
|
||||
postInstall = ''
|
||||
ln -s $out/bin/task $out/bin/go-task
|
||||
|
||||
installShellCompletion --cmd task \
|
||||
--bash <($out/bin/task --completion bash) \
|
||||
--fish <($out/bin/task --completion fish) \
|
||||
--zsh <($out/bin/task --completion zsh)
|
||||
'';
|
||||
postInstall =
|
||||
''
|
||||
ln -s $out/bin/task $out/bin/go-task
|
||||
''
|
||||
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
installShellCompletion --cmd task \
|
||||
--bash <($out/bin/task --completion bash) \
|
||||
--fish <($out/bin/task --completion fish) \
|
||||
--zsh <($out/bin/task --completion zsh)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "kubecolor";
|
||||
version = "0.4.0";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
owner = "kubecolor";
|
||||
repo = "kubecolor";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-jOFeTAfV7X8+z+DBOBOFVcspxZ8QssKFWRGK9HnqBO0=";
|
||||
sha256 = "sha256-Q3Bl1ejuSpiMpQgiqKa2x/g02hNx326GM2MIDoi7q7o=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-b99HAM1vsncq9Q5XJiHZHyv7bjQs6GGyNAMONmGpxms=";
|
||||
vendorHash = "sha256-SWJbJ/zr9ygZYUuH8QNvgmUXdxb/3OViai48CFmWmXw=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
diff --git a/src/libLfunction/Lcomplex.h b/src/libLfunction/Lcomplex.h
|
||||
index 363bbf4..ffecd70 100644
|
||||
--- a/src/libLfunction/Lcomplex.h
|
||||
+++ b/src/libLfunction/Lcomplex.h
|
||||
@@ -56,8 +56,11 @@
|
||||
#include <cmath>
|
||||
#include <sstream>
|
||||
|
||||
-namespace std
|
||||
-{
|
||||
+#ifdef _LIBCPP_VERSION
|
||||
+_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
+#else
|
||||
+namespace std {
|
||||
+#endif
|
||||
// Forward declarations
|
||||
template<typename _Tp> class complex;
|
||||
template<> class complex<float>;
|
||||
@@ -1193,6 +1196,10 @@ namespace std
|
||||
inline
|
||||
complex<long double>::complex(const complex<double>& __z)
|
||||
: _M_value(_ComplexT(__z._M_value)) { }
|
||||
-} // namespace std
|
||||
+#ifdef _LIBCPP_VERSION
|
||||
+_LIBCPP_END_NAMESPACE_STD
|
||||
+#else
|
||||
+}
|
||||
+#endif
|
||||
|
||||
#endif /* _CPP_COMPLEX */
|
||||
@@ -9,20 +9,16 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2.0.5";
|
||||
version = "2.1.0";
|
||||
pname = "lcalc";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "sagemath";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-RxWZ7T0I9zV7jUVnL6jV/PxEoU32KY7Q1UsOL5Lonuc=";
|
||||
tag = version;
|
||||
hash = "sha256-v+7Uh6tPOfb3E9dqxx//RqD22XM4S/8ejS2v+D5G5pE=";
|
||||
};
|
||||
|
||||
# workaround for vendored GCC <complex> on libc++
|
||||
# https://gitlab.com/sagemath/lcalc/-/issues/16
|
||||
patches = [ ./libcxx-compat.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
gengetopt
|
||||
|
||||
@@ -7,27 +7,31 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "lha";
|
||||
version = "unstable-2021-01-07";
|
||||
version = "1.14i-unstable-2024-11-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jca02266";
|
||||
repo = "lha";
|
||||
rev = "03475355bc6311f7f816ea9a88fb34a0029d975b";
|
||||
sha256 = "18w2x0g5yq89yxkxh1fmb05lz4hw7a3b4jmkk95gvh11mwbbr5lm";
|
||||
rev = "26b71be85a762098bdeb95f4533045c7dad86f31";
|
||||
hash = "sha256-jiYTBqDXvxTdrvHYaK+1eo4xIpl+B9ZljhBBYD0BGzQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "LHa is an archiver and compressor using the LZSS and Huffman encoding compression algorithms";
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.sander ];
|
||||
# Some of the original LhA code has been rewritten and the current author
|
||||
homepage = "https://github.com/jca02266/lha";
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [
|
||||
sander
|
||||
momeemt
|
||||
];
|
||||
# Some of the original LHa code has been rewritten and the current author
|
||||
# considers adopting a "true" free and open source license for it.
|
||||
# However, old code is still covered by the original LHa license, which is
|
||||
# not a free software license (it has additional requirements on commercial
|
||||
# use).
|
||||
license = licenses.unfree;
|
||||
license = lib.licenses.unfree;
|
||||
mainProgram = "lha";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
cava,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
meson,
|
||||
ninja,
|
||||
}:
|
||||
cava.overrideAttrs (old: rec {
|
||||
pname = "libcava";
|
||||
# fork may not be updated when we update upstream
|
||||
version = "0.10.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LukashonakV";
|
||||
repo = "cava";
|
||||
tag = version;
|
||||
hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [
|
||||
meson
|
||||
ninja
|
||||
];
|
||||
|
||||
# Automatically enable all optional dependencies
|
||||
# (instead, Nix sets this option to "enabled" which
|
||||
# forces all optional dependencies to be required
|
||||
# or disabled individually)
|
||||
mesonAutoFeatures = "auto";
|
||||
|
||||
dontVersionCheck = true; # no `bin/cava`
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = old.meta // {
|
||||
homepage = "https://github.com/LukashonakV/cava";
|
||||
description = "Fork of CAVA to build it as a shared library";
|
||||
};
|
||||
})
|
||||
@@ -26,9 +26,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
automake
|
||||
autoconf
|
||||
pkg-config
|
||||
check
|
||||
];
|
||||
buildInputs = [ libtool ];
|
||||
buildInputs = [
|
||||
check
|
||||
libtool
|
||||
];
|
||||
|
||||
# .so endings are missing (quick and dirty fix)
|
||||
postInstall = ''
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libdsk";
|
||||
version = "1.5.20";
|
||||
version = "1.5.21";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.seasip.info/Unix/LibDsk/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-/ivN4+Oe0N6VmhWTfdDU48NcQLSIVAAtqzzi6DdlAZ0=";
|
||||
sha256 = "sha256-uDRwFS2oF1k/m4biJvkxq+cacB1QlefM0T5bC2h1dd4=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -11,15 +11,15 @@
|
||||
lz4,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libosmium";
|
||||
version = "2.20.0";
|
||||
version = "2.21.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osmcode";
|
||||
repo = "libosmium";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-QM6Nj2cmrhUysR2enFKhTWXdBXNqM21/Yqdn/zXEfYE=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-IGZQBziXKYVG+uKLjHr6LsIF5H8klq6LGF5j1KrfHZU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
@@ -33,18 +33,18 @@ stdenv.mkDerivation rec {
|
||||
lz4
|
||||
];
|
||||
|
||||
cmakeFlags = [ "-DINSTALL_GDALCPP:BOOL=ON" ];
|
||||
cmakeFlags = [ (lib.cmakeBool "INSTALL_GDALCPP" true) ];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Fast and flexible C++ library for working with OpenStreetMap data";
|
||||
homepage = "https://osmcode.org/libosmium/";
|
||||
license = licenses.boost;
|
||||
license = lib.licenses.boost;
|
||||
changelog = [
|
||||
"https://github.com/osmcode/libosmium/releases/tag/v${version}"
|
||||
"https://github.com/osmcode/libosmium/blob/v${version}/CHANGELOG.md"
|
||||
"https://github.com/osmcode/libosmium/releases/tag/v${finalAttrs.version}"
|
||||
"https://github.com/osmcode/libosmium/blob/v${finalAttrs.version}/CHANGELOG.md"
|
||||
];
|
||||
maintainers = with maintainers; teams.geospatial.members ++ [ das-g ];
|
||||
maintainers = lib.teams.geospatial.members ++ (with lib.maintainers; [ das-g ]);
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libqalculate";
|
||||
version = "5.4.0.1";
|
||||
version = "5.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qalculate";
|
||||
repo = "libqalculate";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-cx0pl3OEA/dANcGW3obvEnAiR06IcZedyCACwibNThg=";
|
||||
hash = "sha256-lyewx2dc8EywDvLnOkbrys5ObMR7BkEppN/cpWHPBbg=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libxmp";
|
||||
version = "4.6.0";
|
||||
version = "4.6.1";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Extended module player library";
|
||||
@@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/xmp/libxmp/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-LTxF/lI7UJB+ieYPmjt/TMmquD7J27p3Q+r/vNyzXqY=";
|
||||
sha256 = "sha256-r2Becsg7JKuvAyaTR+JOvD/AbNe0lWUqLGGcH1FLxcs=";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "littlefs-fuse";
|
||||
version = "2.7.9";
|
||||
version = "2.7.10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "littlefs-project";
|
||||
repo = "littlefs-fuse";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-77bm3cnigMewmCywp1ivT/a9PCc6fKmavcKysJvYrSc=";
|
||||
hash = "sha256-O9fzwN2qItsmDwqtNCsnU76PR/cYx00eeHjuD1HU5X4=";
|
||||
};
|
||||
buildInputs = [ fuse ];
|
||||
installPhase = ''
|
||||
@@ -25,7 +25,6 @@ stdenv.mkDerivation rec {
|
||||
meta = src.meta // {
|
||||
description = "FUSE wrapper that puts the littlefs in user-space";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ ehmry ];
|
||||
mainProgram = "littlefs-fuse";
|
||||
inherit (fuse.meta) platforms;
|
||||
# fatal error: 'linux/fs.h' file not found
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "oelint-adv";
|
||||
version = "6.6.6";
|
||||
version = "6.6.9";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "priv-kweihmann";
|
||||
repo = "oelint-adv";
|
||||
tag = version;
|
||||
hash = "sha256-vScQzj461Pw4m83581FPSgfQIkfeehCSyFioxEgpSDE=";
|
||||
hash = "sha256-2QV8fYfqi+UvPL1WiGtVZWwjHEs4r8siy3TLwy9uHH0=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
@@ -62,7 +62,7 @@ python3Packages.buildPythonApplication rec {
|
||||
description = "Advanced bitbake-recipe linter";
|
||||
mainProgram = "oelint-adv";
|
||||
homepage = "https://github.com/priv-kweihmann/oelint-adv";
|
||||
changelog = "https://github.com/priv-kweihmann/oelint-adv/releases/tag/v${version}";
|
||||
changelog = "https://github.com/priv-kweihmann/oelint-adv/releases/tag/${version}";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ otavio ];
|
||||
};
|
||||
|
||||
@@ -37,6 +37,10 @@ stdenv.mkDerivation rec {
|
||||
url = "https://github.com/Tencent/rapidjson/commit/862c39be371278a45a88d4d1d75164be57bb7e2d.patch";
|
||||
hash = "sha256-V5zbq/THUY75p1RdEPKJK2NVnxbZs07MMwJBAH7nAMg=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/osmcode/osmium-tool/commit/1c62771a62f260b07c1b9a52338a24a978dcd967.patch";
|
||||
hash = "sha256-/2HUu4tLRZzoCcGVEM61gE4RjiA2XGalr9OnhCUhKj8=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -86,7 +86,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# Pin the compiler to the current version in a cross compiler friendly way.
|
||||
# Same pattern as for openmpi (see https://github.com/NixOS/nixpkgs/pull/58964#discussion_r275059427).
|
||||
substituteInPlace "''${!outputDev}"/share/pmix/pmixcc-wrapper-data.txt \
|
||||
--replace-fail compiler=gcc \
|
||||
--replace-fail compiler=${stdenv.cc.targetPrefix}gcc \
|
||||
compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc
|
||||
'';
|
||||
|
||||
|
||||
@@ -5,30 +5,30 @@
|
||||
cmake,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "protozero";
|
||||
version = "1.7.1";
|
||||
version = "1.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mapbox";
|
||||
repo = "protozero";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-R8lGewsEOxPNbKlkIeiM4yIwUcTzi2Dm0+xJ2WrBTBQ=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-kqR0YLxkRu8WclxaoR/zx+2sRTEZus7dUTbqjBkv12U=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Minimalistic protocol buffer decoder and encoder in C++";
|
||||
homepage = "https://github.com/mapbox/protozero";
|
||||
license = with licenses; [
|
||||
license = with lib.licenses; [
|
||||
bsd2
|
||||
asl20
|
||||
];
|
||||
changelog = [
|
||||
"https://github.com/mapbox/protozero/releases/tag/v${version}"
|
||||
"https://github.com/mapbox/protozero/blob/v${version}/CHANGELOG.md"
|
||||
"https://github.com/mapbox/protozero/releases/tag/v${finalAttrs.version}"
|
||||
"https://github.com/mapbox/protozero/blob/v${finalAttrs.version}/CHANGELOG.md"
|
||||
];
|
||||
maintainers = with maintainers; teams.geospatial.members ++ [ das-g ];
|
||||
maintainers = lib.teams.geospatial.members ++ (with lib.maintainers; [ das-g ]);
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qalculate-gtk";
|
||||
version = "5.4.0";
|
||||
version = "5.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qalculate";
|
||||
repo = "qalculate-gtk";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-YZfjZxuYnpmIh9dKk1ggLgwww6gCP9F0MnY8BBOWiB0=";
|
||||
hash = "sha256-9/fj+dwnEpbfcqBDQowhU4ltr/h43NQYTMUQnLL4Ut8=";
|
||||
};
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
+13
-15
@@ -4,42 +4,40 @@
|
||||
fetchFromGitHub,
|
||||
intltool,
|
||||
pkg-config,
|
||||
qmake,
|
||||
wrapQtAppsHook,
|
||||
qt6,
|
||||
libqalculate,
|
||||
qtbase,
|
||||
qttools,
|
||||
qtsvg,
|
||||
qtwayland,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qalculate-qt";
|
||||
version = "5.4.0";
|
||||
version = "5.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qalculate";
|
||||
repo = "qalculate-qt";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-Tpb/ZN5p3JfPug9NpBHguOi6Okek+g87orD4ISkV+ac=";
|
||||
hash = "sha256-IfdD3Nk+feLnILgEpccjEBlWfcW8ps7U+V7pTRG3LwM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
nativeBuildInputs = with qt6; [
|
||||
qmake
|
||||
intltool
|
||||
pkg-config
|
||||
qttools
|
||||
wrapQtAppsHook
|
||||
];
|
||||
buildInputs = [
|
||||
libqalculate
|
||||
qtbase
|
||||
qtsvg
|
||||
] ++ lib.optionals stdenv.hostPlatform.isLinux [ qtwayland ];
|
||||
buildInputs =
|
||||
with qt6;
|
||||
[
|
||||
libqalculate
|
||||
qtbase
|
||||
qtsvg
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ qtwayland ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace qalculate-qt.pro\
|
||||
--replace "LRELEASE" "${qttools.dev}/bin/lrelease"
|
||||
--replace "LRELEASE" "${qt6.qttools.dev}/bin/lrelease"
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
@@ -0,0 +1,103 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
nix-update-script,
|
||||
blueprint-compiler,
|
||||
desktop-file-utils,
|
||||
libadwaita,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
wrapGAppsHook4,
|
||||
python3,
|
||||
libxml2,
|
||||
python3Packages,
|
||||
libportal,
|
||||
libportal-gtk4,
|
||||
appstream,
|
||||
gtk4,
|
||||
glib,
|
||||
}:
|
||||
|
||||
let
|
||||
libadwaita' = libadwaita.overrideAttrs (oldAttrs: {
|
||||
version = "1.6.2-unstable-2025-01-02";
|
||||
src = oldAttrs.src.override {
|
||||
rev = "f5f0e7ce69405846a8f8bdad11cef2e2a7e99010";
|
||||
hash = "sha256-n5RbGHtt2g627T/Tg8m3PjYIl9wfYTIcrplq1pdKAXk=";
|
||||
};
|
||||
|
||||
# `test-application-window` is flaky on aarch64-linux
|
||||
doCheck = false;
|
||||
});
|
||||
in
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "refine";
|
||||
version = "0.4.0";
|
||||
pyproject = false; # uses meson
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "TheEvilSkeleton";
|
||||
repo = "Refine";
|
||||
tag = version;
|
||||
hash = "sha256-dgp2a/+Du2mEPQ4EPmOPvKsklrWI2zD1rPJnhE7LetQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream
|
||||
blueprint-compiler
|
||||
glib # For `glib-compile-schemas`
|
||||
gtk4 # For `gtk-update-icon-cache`
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
wrapGAppsHook4
|
||||
python3
|
||||
desktop-file-utils
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libxml2
|
||||
libadwaita'
|
||||
];
|
||||
|
||||
dependencies =
|
||||
[
|
||||
libportal
|
||||
libportal-gtk4
|
||||
]
|
||||
++ (with python3Packages; [
|
||||
pygobject3
|
||||
]);
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
mesonFlags = [ (lib.mesonBool "network_tests" false) ];
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ];
|
||||
|
||||
# NOTE: `postCheck` is intentionally not used here, as the entire checkPhase
|
||||
# is skipped by `buildPythonApplication`
|
||||
# https://github.com/NixOS/nixpkgs/blob/9d4343b7b27a3e6f08fc22ead568233ff24bbbde/pkgs/development/interpreters/python/mk-python-derivation.nix#L296
|
||||
postInstallCheck = ''
|
||||
mesonCheckPhase
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Tweak various aspects of GNOME";
|
||||
homepage = "https://gitlab.gnome.org/TheEvilSkeleton/Refine";
|
||||
mainProgram = "refine";
|
||||
platforms = lib.platforms.linux;
|
||||
license = with lib.licenses; [ gpl3Plus ];
|
||||
maintainers = with lib.maintainers; [
|
||||
getchoo
|
||||
aucub
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "riffdiff";
|
||||
version = "3.3.7";
|
||||
version = "3.3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "walles";
|
||||
repo = "riff";
|
||||
tag = version;
|
||||
hash = "sha256-PlE94OikRabxSr+23903nveXXa0DqqQmGgUJJfSZg1M=";
|
||||
hash = "sha256-KJ+2MdhBW0og6uj9eTUsoKcpenQj7tp3fZzgCNfdrqI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-ZDlhU6izva0lPi66Gv0fjpLcGiBBo/Ym6FizBhqmcuQ=";
|
||||
cargoHash = "sha256-RN//dB53Jy6fGJeUHHM7jdJrPhnbfjKiJ5TFFOtcbFI=";
|
||||
|
||||
passthru = {
|
||||
tests.version = testers.testVersion { package = riffdiff; };
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "samrewritten";
|
||||
version = "202008-unstable-2023-05-22";
|
||||
version = "202008-unstable-2025-01-09";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PaulCombal";
|
||||
repo = "SamRewritten";
|
||||
# The latest release is too old, use latest commit instead
|
||||
rev = "39d524a72678a226bf9140db6b97641f554563c3";
|
||||
hash = "sha256-sS/lVY5EWXdTOg7cDWPbi/n5TNt+pRAF1x7ZEaYG4wM=";
|
||||
rev = "b18a009c20eb90e2edffb6ee6d5290c86c860e03";
|
||||
hash = "sha256-qwasSxNc4hJDadGTUOxzumJ4lZcHQ4Aa8W8jIJAvTt4=";
|
||||
};
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
ocamlPackages,
|
||||
ocaml-ng,
|
||||
ipaexfont,
|
||||
junicode,
|
||||
lmodern,
|
||||
@@ -29,15 +29,18 @@ let
|
||||
propagatedBuildInputs = [ ocamlPackages.biniou ];
|
||||
inherit (ocamlPackages.yojson) meta;
|
||||
};
|
||||
ocamlPackages = ocaml-ng.ocamlPackages_4_14;
|
||||
version = "0.0.11";
|
||||
in
|
||||
ocamlPackages.buildDunePackage rec {
|
||||
ocamlPackages.buildDunePackage {
|
||||
pname = "satysfi";
|
||||
version = "0.0.10";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gfngfn";
|
||||
repo = "SATySFi";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-qgVM7ExsKtzNQkZO+I+rcWLj4LSvKL5uyitH7Jg+ns0=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-eeeoUVTGId56SQvrmmMc7nwH/blrXgwcw3+0FLbvc34=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -82,13 +85,16 @@ ocamlPackages.buildDunePackage rec {
|
||||
$out/share/satysfi/dist/fonts/Junicode.ttf
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/gfngfn/SATySFi";
|
||||
description = "Statically-typed, functional typesetting system";
|
||||
changelog = "https://github.com/gfngfn/SATySFi/blob/v${version}/CHANGELOG.md";
|
||||
license = licenses.lgpl3Only;
|
||||
maintainers = [ maintainers.mt-caret ];
|
||||
platforms = platforms.all;
|
||||
license = lib.licenses.lgpl3Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
mt-caret
|
||||
momeemt
|
||||
];
|
||||
platforms = lib.platforms.all;
|
||||
mainProgram = "satysfi";
|
||||
};
|
||||
}
|
||||
@@ -27,13 +27,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "snapper";
|
||||
version = "0.12.0";
|
||||
version = "0.12.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openSUSE";
|
||||
repo = "snapper";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Hh5etDx7nLBYC6VLeZS4F52w2VpaA4aZRvGUQ0QGBJc=";
|
||||
sha256 = "sha256-yVjsbWa7t+md0xdy5eFST+pkPbXhgfyJcTt+aNkQpsQ=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
@@ -19,15 +19,15 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "stgit";
|
||||
version = "2.4.13";
|
||||
version = "2.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stacked-git";
|
||||
repo = "stgit";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Qb4pn/8SK36lUdbURY67592YWrmG7c5PJi19Ly+u2X4=";
|
||||
hash = "sha256-XyBVboNrvhOSZBPd5ZqdMuF261TpFzduC6XQtKJGntE=";
|
||||
};
|
||||
cargoHash = "sha256-7loyQj/mtgzt80XN6ckjojxeddXYRCmdl6U7Y9t95aY=";
|
||||
cargoHash = "sha256-xh8TW8TgwaCqqKVyP9ImHkKAIwW5c6AC1pZD5tu0XBs=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff --git a/Swift/Controllers/StatusCache.h b/Swift/Controllers/StatusCache.h
|
||||
index 83fd17a..a7ca765 100644
|
||||
--- a/Swift/Controllers/StatusCache.h
|
||||
+++ b/Swift/Controllers/StatusCache.h
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <list>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
+#include <vector>
|
||||
|
||||
#include <boost/filesystem/path.hpp>
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
fetchurl,
|
||||
fetchpatch,
|
||||
openssl,
|
||||
boost,
|
||||
# pin Boost 1.86 due to use of boost/asio/io_service.hpp
|
||||
boost186,
|
||||
scons,
|
||||
}:
|
||||
|
||||
@@ -33,6 +34,8 @@ stdenv.mkDerivation rec {
|
||||
url = "https://swift.im/git/swift/patch/Swiften/Base/Platform.h?id=3666cbbe30e4d4e25401a5902ae359bc2c24248b";
|
||||
sha256 = "Wh8Nnfm0/EppSJ7aH2vTNObHtodE5tM19kV1oDfm70w=";
|
||||
})
|
||||
|
||||
./gcc14-fix.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -49,13 +52,13 @@ stdenv.mkDerivation rec {
|
||||
|
||||
propagatedBuildInputs = [
|
||||
openssl
|
||||
boost
|
||||
boost186
|
||||
];
|
||||
|
||||
sconsFlags = [
|
||||
"openssl=${openssl.dev}"
|
||||
"boost_includedir=${boost.dev}/include"
|
||||
"boost_libdir=${boost.out}/lib"
|
||||
"boost_includedir=${lib.getDev boost186}/include"
|
||||
"boost_libdir=${boost186.out}/lib"
|
||||
"boost_bundled_enable=false"
|
||||
"max_jobs=1"
|
||||
"optimize=1"
|
||||
|
||||
@@ -27,13 +27,13 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0ibs575pfr0wmhfcw6ln6iz7gw2y45l3bah11rksf6g9jlwsxy1d";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
python3
|
||||
]; # ToDo: optional stuff missing
|
||||
# TODO: optional build inputs missing
|
||||
|
||||
nativeBuildInputs =
|
||||
[
|
||||
telepathy-glib # glib-genmarshal
|
||||
pkg-config
|
||||
python3
|
||||
libxslt
|
||||
makeWrapper
|
||||
]
|
||||
|
||||
@@ -10,14 +10,14 @@ let
|
||||
platform =
|
||||
if stdenvNoCC.hostPlatform.isDarwin then "universal-macos" else stdenvNoCC.hostPlatform.system;
|
||||
hash = builtins.getAttr platform {
|
||||
"universal-macos" = "sha256-xuj14E2JVcyAJ8TrLdZ42X19x3E94SSDC4VqrvQD6Lo=";
|
||||
"x86_64-linux" = "sha256-M6OCtktN6GnHpIMYNeEvB4K6uHR/+KDq2ByMBPcstQw=";
|
||||
"aarch64-linux" = "sha256-WxO1A2bVMEv5k7yFkeUy06BZy8vVnykSXs+6GN6VIGA=";
|
||||
"universal-macos" = "sha256-blzpEQf9+vTg5gAelssD7Sje+8Rt2Ugvgxdxt+ehAKw=";
|
||||
"x86_64-linux" = "sha256-329wngZhFgR775/uuAmU5RMNkEXHwsG5f8QNm5UFZ9c=";
|
||||
"aarch64-linux" = "sha256-9Q1f1GRQMdoTfLsQA0D6k4VCFl8AfYy9UJjokwJimk8=";
|
||||
};
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "tigerbeetle";
|
||||
version = "0.16.20";
|
||||
version = "0.16.21";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/tigerbeetle/tigerbeetle/releases/download/${finalAttrs.version}/tigerbeetle-${platform}.zip";
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "twitch-dl";
|
||||
version = "2.9.4";
|
||||
version = "2.10.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ihabunek";
|
||||
repo = "twitch-dl";
|
||||
tag = version;
|
||||
hash = "sha256-kc/YU37q91IBcX4JOzN9549OX0jDYFTvI9g7OqN/IXs=";
|
||||
hash = "sha256-D8jVm1nezEAvXpAToDdgr2OK7HZUaGrnT8qLqjBLJF8=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
cmake,
|
||||
pkg-config,
|
||||
fetchFromGitHub,
|
||||
lksctp-tools,
|
||||
iproute2,
|
||||
unstableGitUpdater,
|
||||
makeWrapper,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ueransim";
|
||||
version = "3.2.6-unstable-2024-08-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aligungr";
|
||||
repo = "ueransim";
|
||||
rev = "528061fe10389876da58d3bd15e8cba6d7c152a9";
|
||||
hash = "sha256-8OxJzEcpFT6e/nQw1VK9kBdw9ulXedCpUEaBxIAN9cA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [ lksctp-tools ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace tools/nr-binder \
|
||||
--replace-fail "./libdevbnd.so" "$out/lib/libdevbnd.so"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,lib}
|
||||
|
||||
chmod +x ../tools/nr-binder
|
||||
cp ../tools/nr-binder $out/bin
|
||||
|
||||
for app in nr-gnb nr-ue nr-cli; do
|
||||
cp $app $out/bin
|
||||
wrapProgram "$out/bin/$app" \
|
||||
--prefix PATH : ${lib.makeBinPath [ iproute2 ]}
|
||||
done
|
||||
|
||||
cp libdevbnd.so $out/lib
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = unstableGitUpdater { };
|
||||
|
||||
meta = {
|
||||
description = "Open source 5G UE and RAN (gNodeB) implementation";
|
||||
homepage = "https://github.com/aligungr/UERANSIM";
|
||||
changelog = "https://github.com/aligungr/UERANSIM/releases";
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ theobori ];
|
||||
license = lib.licenses.gpl3Only;
|
||||
};
|
||||
})
|
||||
@@ -11,11 +11,8 @@
|
||||
zstd,
|
||||
rust-jemalloc-sys,
|
||||
rust-jemalloc-sys-unprefixed,
|
||||
Security,
|
||||
libiconv,
|
||||
coreutils,
|
||||
CoreServices,
|
||||
SystemConfiguration,
|
||||
tzdata,
|
||||
cmake,
|
||||
perl,
|
||||
@@ -39,18 +36,8 @@ rustPlatform.buildRustPackage {
|
||||
hash = "sha256-BFVRaHNd9LMJQnkHHfNtvGKkv8q7GjnT+FzNwSc8GZw=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"greptime-proto-0.1.0" = "sha256-QT3PZnHJoVghuRCGoZIH6L8jnX7Wn9eSuQqHIyrUY4E=";
|
||||
"greptimedb-ingester-0.1.0" = "sha256-1M9yWXDZ6U9JTVyXQg9ZcSSGJp7GXtaCfQHdtjhw6FY=";
|
||||
"heim-0.1.0-rc.1" = "sha256-pMraYKr6srTQqEzoBx9gGHHlJ7nMKwj50ftimQAkfL0=";
|
||||
"nix-0.26.2" = "sha256-uquYvRT56lhupkrESpxwKEimRFhmYvri10n3dj0f2yg=";
|
||||
"ntapi-0.3.7" = "sha256-G6ZCsa3GWiI/FeGKiK9TWkmTxen7nwpXvm5FtjNtjWU=";
|
||||
"tokio-util-0.7.11" = "sha256-oV9fSPjLMY1KbcbDP2WTVjF/N0qlQBPDIYHOp3aNCTY=";
|
||||
"tracing-0.2.0" = "sha256-YAxeEofFA43PX2hafh3RY+C81a2v6n1fGzYz2FycC3M=";
|
||||
};
|
||||
};
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-1xxEu4/IxUe10Wngz1RUT6Iu982pueRteiOwg6BZ1/E=";
|
||||
|
||||
nativeBuildInputs =
|
||||
[
|
||||
@@ -73,11 +60,8 @@ rustPlatform.buildRustPackage {
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ rust-jemalloc-sys-unprefixed ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
rust-jemalloc-sys
|
||||
Security
|
||||
libiconv
|
||||
coreutils
|
||||
CoreServices
|
||||
SystemConfiguration
|
||||
];
|
||||
|
||||
# Rust 1.80.0 introduced the unexepcted_cfgs lint, which requires crates to allowlist custom cfg options that they inspect.
|
||||
@@ -16,6 +16,7 @@
|
||||
hyprland,
|
||||
iniparser,
|
||||
jsoncpp,
|
||||
libcava,
|
||||
libdbusmenu-gtk3,
|
||||
libevdev,
|
||||
libinotify-kqueue,
|
||||
@@ -74,15 +75,6 @@
|
||||
waybar,
|
||||
}:
|
||||
|
||||
let
|
||||
# Derived from subprojects/cava.wrap
|
||||
libcava.src = fetchFromGitHub {
|
||||
owner = "LukashonakV";
|
||||
repo = "cava";
|
||||
rev = "0.10.3";
|
||||
hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "waybar";
|
||||
version = "0.11.0";
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cargo-tauri,
|
||||
jq,
|
||||
libsoup_3,
|
||||
moreutils,
|
||||
nodejs,
|
||||
openssl,
|
||||
pkg-config,
|
||||
@@ -41,6 +43,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo-tauri.hook
|
||||
jq
|
||||
moreutils
|
||||
nodejs
|
||||
pkg-config
|
||||
pnpm.configHook
|
||||
@@ -54,6 +58,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
webkitgtk_4_1
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
jq \
|
||||
'.plugins.updater.endpoints = [ ]
|
||||
| .bundle.createUpdaterArtifacts = false' \
|
||||
src-tauri/tauri.conf.json \
|
||||
| sponge src-tauri/tauri.conf.json
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -3,17 +3,18 @@
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
openssl,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "xilinx-bootgen";
|
||||
version = "xilinx_v2024.1";
|
||||
version = "xilinx_v2024.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xilinx";
|
||||
repo = "bootgen";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-/gNAqjwfaD2NWxs2536XGv8g2IyRcQRHzgLcnCr4a34=";
|
||||
hash = "sha256-t165nTG4IkI3WrcS3ZryINmAOVzfctxg5zY3oqmNtLw=";
|
||||
};
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
@@ -24,6 +25,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
install -Dm755 bootgen $out/bin/bootgen
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Generate Boot Images for Xilinx Zynq and ZU+ SoCs";
|
||||
longDescription = ''
|
||||
|
||||
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
|
||||
# fiddle with the terminal.
|
||||
doCheck = false;
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=incompatible-function-pointer-types";
|
||||
env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
|
||||
|
||||
# XXX: Work around cross-compilation-unfriendly `gl_FUNC_FSTATAT' macro.
|
||||
gl_cv_func_fstatat_zero_flag = "yes";
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
nodejs,
|
||||
yarn-berry,
|
||||
pkg-config,
|
||||
makeWrapper,
|
||||
cacert,
|
||||
prisma-engines,
|
||||
openssl,
|
||||
ffmpeg,
|
||||
python3,
|
||||
vips,
|
||||
nixosTests,
|
||||
}:
|
||||
|
||||
let
|
||||
environment = {
|
||||
NEXT_TELEMETRY_DISABLED = "1";
|
||||
FFMPEG_BIN = lib.getExe ffmpeg;
|
||||
PRISMA_SCHEMA_ENGINE_BINARY = lib.getExe' prisma-engines "schema-engine";
|
||||
PRISMA_QUERY_ENGINE_BINARY = lib.getExe' prisma-engines "query-engine";
|
||||
PRISMA_QUERY_ENGINE_LIBRARY = "${prisma-engines}/lib/libquery_engine.node";
|
||||
PRISMA_INTROSPECTION_ENGINE_BINARY = lib.getExe' prisma-engines "introspection-engine";
|
||||
PRISMA_FMT_BINARY = lib.getExe' prisma-engines "prisma-fmt";
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "zipline";
|
||||
version = "3.7.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "diced";
|
||||
repo = "zipline";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-sogsPx6vh+1+ew9o3/0B4yU9I/Gllo9XLJqvMvGZ89Q=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Update prisma to match the version in nixpkgs exactly (currently 6.0.1). To create this patch, change the
|
||||
# versions in `package.json`, then run `nix run nixpkgs#yarn-berry -- install --mode update-lockfile`
|
||||
# to update `yarn.lock`.
|
||||
./prisma6.patch
|
||||
];
|
||||
|
||||
# we cannot use fetchYarnDeps because that doesn't support yarn 2/berry lockfiles
|
||||
yarnOfflineCache = stdenv.mkDerivation {
|
||||
pname = "yarn-deps";
|
||||
inherit (finalAttrs) version src patches;
|
||||
|
||||
nativeBuildInputs = [ yarn-berry ];
|
||||
|
||||
dontInstall = true;
|
||||
|
||||
YARN_ENABLE_TELEMETRY = "0";
|
||||
NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||
|
||||
configurePhase = ''
|
||||
export HOME="$NIX_BUILD_TOP"
|
||||
yarn config set enableGlobalCache false
|
||||
yarn config set cacheFolder $out
|
||||
yarn config set --json supportedArchitectures.os '[ "linux" ]'
|
||||
yarn config set --json supportedArchitectures.cpu '[ "arm64", "x64" ]'
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
mkdir -p $out
|
||||
yarn install --immutable --mode skip-build
|
||||
'';
|
||||
|
||||
outputHash = "sha256-kWE6YVhyH5Lk/SO0h624Zq9/6ztoUE3FNzHB0dyl5aI=";
|
||||
outputHashMode = "recursive";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
makeWrapper
|
||||
nodejs
|
||||
yarn-berry
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
vips
|
||||
openssl
|
||||
];
|
||||
|
||||
YARN_ENABLE_TELEMETRY = "0";
|
||||
|
||||
ZIPLINE_DOCKER_BUILD = "true";
|
||||
|
||||
configurePhase = ''
|
||||
export HOME="$NIX_BUILD_TOP"
|
||||
yarn config set enableGlobalCache false
|
||||
yarn config set cacheFolder $yarnOfflineCache
|
||||
|
||||
${lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (name: value: "export ${name}=${lib.escapeShellArg value}") environment
|
||||
)}
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
mkdir -p $HOME/.node-gyp/${nodejs.version}
|
||||
echo 9 > $HOME/.node-gyp/${nodejs.version}/installVersion
|
||||
ln -sfv ${nodejs}/include $HOME/.node-gyp/${nodejs.version}
|
||||
export npm_config_nodedir=${nodejs}
|
||||
|
||||
yarn install --immutable --immutable-cache
|
||||
yarn build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,share/zipline}
|
||||
|
||||
cp -r dist public node_modules .next prisma next.config.js mimes.json package.json $out/share/zipline
|
||||
|
||||
mkBin() {
|
||||
makeWrapper ${lib.getExe nodejs} "$out/bin/$1" \
|
||||
--chdir "$out/share/zipline" \
|
||||
--prefix PATH : ${lib.makeBinPath [ openssl ]} \
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ openssl ]} \
|
||||
${
|
||||
lib.concatStringsSep " " (
|
||||
lib.mapAttrsToList (name: value: "--set ${name} ${lib.escapeShellArg value}") environment
|
||||
)
|
||||
} \
|
||||
--add-flags "--enable-source-maps $2"
|
||||
}
|
||||
|
||||
mkBin zipline dist
|
||||
for script in dist/scripts/*.js; do
|
||||
mkBin "zipline-$(basename $script .js)" "$script"
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests = { inherit (nixosTests) zipline; };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "ShareX/file upload server that is easy to use, packed with features, and with an easy setup";
|
||||
changelog = "https://github.com/diced/zipline/releases/tag/v${finalAttrs.version}";
|
||||
homepage = "https://zipline.diced.sh/";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ defelo ];
|
||||
mainProgram = "zipline";
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
};
|
||||
})
|
||||
File diff suppressed because it is too large
Load Diff
@@ -34,11 +34,11 @@ stdenv.mkDerivation rec {
|
||||
pkg-config
|
||||
gettext
|
||||
itstool
|
||||
libxml2 # xmllint
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libxml2
|
||||
libcanberra-gtk3
|
||||
libgtop
|
||||
libXdamage
|
||||
@@ -53,10 +53,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/core/util.c \
|
||||
--replace-fail 'argvl[i++] = "zenity"' 'argvl[i++] = "${zenity}/bin/zenity"'
|
||||
--replace-fail 'argvl[i++] = "zenity"' 'argvl[i++] = "${lib.getExe zenity}"'
|
||||
'';
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
|
||||
env.ZENITY = lib.getExe zenity;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
autoconf
|
||||
dbus-glib # dbus-binding-tool
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
autoreconfHook
|
||||
dbus-glib # dbus-binding-tool
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -115,7 +115,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
(
|
||||
cd $out${finalAttrs.passthru.libdir}
|
||||
|
||||
for f in librdimon.a libc.a libg.a; do
|
||||
for f in librdimon.a libc.a libm.a libg.a libgloss.a; do
|
||||
# Some libraries are only available for specific architectures.
|
||||
# For example, librdimon.a is only available on ARM.
|
||||
[ -f "$f" ] && cp "$f" "''${f%%\.a}_nano.a"
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
python312,
|
||||
fetchFromGitHub,
|
||||
gitMinimal,
|
||||
portaudio,
|
||||
}:
|
||||
|
||||
let
|
||||
python3 = python312.override {
|
||||
self = python3;
|
||||
packageOverrides = _: super: { tree-sitter = super.tree-sitter_0_21; };
|
||||
};
|
||||
version = "0.71.0";
|
||||
aider-chat = python3.pkgs.buildPythonPackage {
|
||||
pname = "aider-chat";
|
||||
inherit version;
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Aider-AI";
|
||||
repo = "aider";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-UptGAR0q3JlzYS5QJVeQo/uxBPaivsvOBBjoX869BRU=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
build-system = with python3.pkgs; [ setuptools-scm ];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
aiohappyeyeballs
|
||||
aiohttp
|
||||
aiosignal
|
||||
annotated-types
|
||||
anyio
|
||||
attrs
|
||||
backoff
|
||||
beautifulsoup4
|
||||
certifi
|
||||
cffi
|
||||
charset-normalizer
|
||||
click
|
||||
configargparse
|
||||
diff-match-patch
|
||||
diskcache
|
||||
distro
|
||||
filelock
|
||||
flake8
|
||||
frozenlist
|
||||
fsspec
|
||||
gitdb
|
||||
gitpython
|
||||
grep-ast
|
||||
h11
|
||||
httpcore
|
||||
httpx
|
||||
huggingface-hub
|
||||
idna
|
||||
importlib-resources
|
||||
jinja2
|
||||
jiter
|
||||
json5
|
||||
jsonschema
|
||||
jsonschema-specifications
|
||||
litellm
|
||||
markdown-it-py
|
||||
markupsafe
|
||||
mccabe
|
||||
mdurl
|
||||
multidict
|
||||
networkx
|
||||
numpy
|
||||
openai
|
||||
packaging
|
||||
pathspec
|
||||
pexpect
|
||||
pillow
|
||||
prompt-toolkit
|
||||
psutil
|
||||
ptyprocess
|
||||
pycodestyle
|
||||
pycparser
|
||||
pydantic
|
||||
pydantic-core
|
||||
pydub
|
||||
pyflakes
|
||||
pygments
|
||||
pypandoc
|
||||
pyperclip
|
||||
python-dotenv
|
||||
pyyaml
|
||||
referencing
|
||||
regex
|
||||
requests
|
||||
rich
|
||||
rpds-py
|
||||
scipy
|
||||
smmap
|
||||
sniffio
|
||||
sounddevice
|
||||
soundfile
|
||||
soupsieve
|
||||
tiktoken
|
||||
tokenizers
|
||||
tqdm
|
||||
tree-sitter
|
||||
tree-sitter-languages
|
||||
typing-extensions
|
||||
urllib3
|
||||
watchfiles
|
||||
wcwidth
|
||||
yarl
|
||||
zipp
|
||||
pip
|
||||
|
||||
# Not listed in requirements
|
||||
mixpanel
|
||||
monotonic
|
||||
posthog
|
||||
propcache
|
||||
python-dateutil
|
||||
];
|
||||
|
||||
buildInputs = [ portaudio ];
|
||||
|
||||
nativeCheckInputs = (with python3.pkgs; [ pytestCheckHook ]) ++ [ gitMinimal ];
|
||||
|
||||
disabledTestPaths = [
|
||||
# Tests require network access
|
||||
"tests/scrape/test_scrape.py"
|
||||
# Expected 'mock' to have been called once
|
||||
"tests/help/test_help.py"
|
||||
];
|
||||
|
||||
disabledTests =
|
||||
[
|
||||
# Tests require network
|
||||
"test_urls"
|
||||
"test_get_commit_message_with_custom_prompt"
|
||||
# FileNotFoundError
|
||||
"test_get_commit_message"
|
||||
# Expected 'launch_gui' to have been called once
|
||||
"test_browser_flag_imports_streamlit"
|
||||
# AttributeError
|
||||
"test_simple_send_with_retries"
|
||||
# Expected 'check_version' to have been called once
|
||||
"test_main_exit_calls_version_check"
|
||||
# AssertionError: assert 2 == 1
|
||||
"test_simple_send_non_retryable_error"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# Tests fails on darwin
|
||||
"test_dark_mode_sets_code_theme"
|
||||
"test_default_env_file_sets_automatic_variable"
|
||||
# FileNotFoundError: [Errno 2] No such file or directory: 'vim'
|
||||
"test_pipe_editor"
|
||||
];
|
||||
|
||||
makeWrapperArgs = [
|
||||
"--set AIDER_CHECK_UPDATE false"
|
||||
"--set AIDER_ANALYTICS false"
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export HOME=$(mktemp -d)
|
||||
export AIDER_ANALYTICS="false"
|
||||
'';
|
||||
|
||||
optional-dependencies = with python3.pkgs; {
|
||||
playwright = [
|
||||
greenlet
|
||||
playwright
|
||||
pyee
|
||||
typing-extensions
|
||||
];
|
||||
};
|
||||
|
||||
passthru = {
|
||||
withPlaywright = aider-chat.overridePythonAttrs (
|
||||
{ dependencies, ... }:
|
||||
{
|
||||
dependencies = dependencies ++ aider-chat.optional-dependencies.playwright;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "AI pair programming in your terminal";
|
||||
homepage = "https://github.com/paul-gauthier/aider";
|
||||
changelog = "https://github.com/paul-gauthier/aider/blob/v${version}/HISTORY.md";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ taha-yassine ];
|
||||
mainProgram = "aider";
|
||||
};
|
||||
};
|
||||
in
|
||||
aider-chat
|
||||
@@ -359,7 +359,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "boto3-stubs";
|
||||
version = "1.35.97";
|
||||
version = "1.35.98";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@@ -367,7 +367,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "boto3_stubs";
|
||||
inherit version;
|
||||
hash = "sha256-QYL58Y8nmWn7y2lyAPmommsHqV5F99snarkNzfZacro=";
|
||||
hash = "sha256-qdOM6v3XKtpgvfqnLYO1Sflr2CNbOy8JBHU+RRkdaQ0=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "botocore-stubs";
|
||||
version = "1.35.97";
|
||||
version = "1.35.98";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@@ -18,7 +18,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "botocore_stubs";
|
||||
inherit version;
|
||||
hash = "sha256-quCOpKKqPDYM/Xg/jkxxPbZDUbQpuu4UiCDVsKbZIho=";
|
||||
hash = "sha256-oz9HTo6eNU7X5OR9XvsT1oI01zZjYNY5HG5wljxHdYk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
||||
@@ -1,53 +1,57 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
pytestCheckHook,
|
||||
fetchFromGitHub,
|
||||
hypothesis,
|
||||
numpy,
|
||||
pytest-cov-stub,
|
||||
pytestCheckHook,
|
||||
python,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
numpy,
|
||||
wheel,
|
||||
hypothesis,
|
||||
pytest-cov-stub,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "fast-histogram";
|
||||
version = "0.14";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
disabled = pythonOlder "3.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "astrofrog";
|
||||
repo = pname;
|
||||
repo = "fast-histogram";
|
||||
tag = "v${version}";
|
||||
sha256 = "sha256-vIzDDzz6e7PXArHdZdSSgShuTjy3niVdGtXqgmyJl1w=";
|
||||
hash = "sha256-vIzDDzz6e7PXArHdZdSSgShuTjy3niVdGtXqgmyJl1w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
wheel
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ numpy ];
|
||||
dependencies = [ numpy ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
hypothesis
|
||||
pytest-cov-stub
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pytestFlagsArray = [ "${builtins.placeholder "out"}/${python.sitePackages}" ];
|
||||
|
||||
pythonImportsCheck = [ "fast_histogram" ];
|
||||
|
||||
disabledTests = [
|
||||
# ValueError
|
||||
"test_1d_compare_with_numpy"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/astrofrog/fast-histogram";
|
||||
description = "Fast 1D and 2D histogram functions in Python";
|
||||
homepage = "https://github.com/astrofrog/fast-histogram";
|
||||
changelog = "https://github.com/astrofrog/fast-histogram/blob/v${version}/CHANGES.md";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ ifurther ];
|
||||
};
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "fnllm";
|
||||
version = "0.0.12";
|
||||
version = "0.0.14";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-qWZ//i1Xd6vWp3TlZz+TNJQGb1Ym8/edn4BV8e5wkjM=";
|
||||
hash = "sha256-HZsOqETSDezQQKmCPeib4EztgO2VKtwM0dxnAl/H3/s=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user