Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-10-28 00:17:14 +00:00
committed by GitHub
331 changed files with 11334 additions and 9436 deletions
+81
View File
@@ -0,0 +1,81 @@
name: Teams
on:
schedule:
# Every Tuesday at 19:42 (randomly chosen)
- cron: '42 19 * * 1'
# Allows manual trigger
workflow_dispatch:
permissions: {}
defaults:
run:
shell: bash
jobs:
sync:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4
id: team-token
with:
app-id: ${{ vars.OWNER_APP_ID }}
private-key: ${{ secrets.OWNER_APP_PRIVATE_KEY }}
permission-administration: read
permission-members: read
- name: Fetch source
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
sparse-checkout: |
ci/github-script
maintainers/github-teams.json
- name: Install dependencies
run: npm install bottleneck
- name: Synchronise teams
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{ steps.team-token.outputs.token }}
script: |
require('./ci/github-script/get-teams.js')({
github,
context,
core,
outFile: "maintainers/github-teams.json"
})
# Use a GitHub App to create the PR so that CI gets triggered
- uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4
id: sync-token
with:
app-id: ${{ vars.NIXPKGS_CI_APP_ID }}
private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
permission-contents: write
permission-pull-requests: write
- name: Get GitHub App User Git String
id: user
env:
GH_TOKEN: ${{ steps.sync-token.outputs.token }}
APP_SLUG: ${{ steps.sync-token.outputs.app-slug }}
run: |
name="${APP_SLUG}[bot]"
userId=$(gh api "/users/$name" --jq .id)
email="$userId+$name@users.noreply.github.com"
echo "git-string=$name <$email>" >> "$GITHUB_OUTPUT"
- name: Create Pull Request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
token: ${{ steps.sync-token.outputs.token }}
add-paths: maintainers/github-teams.json
author: ${{ steps.user.outputs.git-string }}
committer: ${{ steps.user.outputs.git-string }}
commit-message: "maintainers/github-teams.json: Automated sync"
branch: github-team-sync
title: "maintainers/github-teams.json: Automated sync"
body: |
This is an automated PR to sync the GitHub teams with access to this repository to the `lib.teams` list.
This PR can be merged without taking any further action.
+2
View File
@@ -32,6 +32,8 @@
/lib/asserts.nix @infinisil @hsjobeki @Profpatsch
/lib/path/* @infinisil @hsjobeki
/lib/fileset @infinisil @hsjobeki
/maintainers/github-teams.json @infinisil
/maintainers/computed-team-list.nix @infinisil
## Standard environmentrelated libraries
/lib/customisation.nix @alyssais @NixOS/stdenv
/lib/derivations.nix @alyssais @NixOS/stdenv
+82
View File
@@ -0,0 +1,82 @@
const excludeTeams = [
/^voters.*$/,
/^nixpkgs-maintainers$/,
/^nixpkgs-committers$/,
]
module.exports = async ({ github, context, core, outFile }) => {
const withRateLimit = require('./withRateLimit.js')
const { writeFileSync } = require('node:fs')
const result = {}
await withRateLimit({ github, core }, async (_stats) => {
/// Turn an Array of users into an Object, mapping user.login -> user.id
function makeUserSet(users) {
// Sort in-place and build result by mutation
users.sort((a, b) => (a.login > b.login ? 1 : -1))
return users.reduce((acc, user) => {
acc[user.login] = user.id
return acc
}, {})
}
/// Process a list of teams and append to the result variable
async function processTeams(teams) {
for (const team of teams) {
core.notice(`Processing team ${team.slug}`)
if (!excludeTeams.some((regex) => team.slug.match(regex))) {
const members = makeUserSet(
await github.paginate(github.rest.teams.listMembersInOrg, {
org: context.repo.owner,
team_slug: team.slug,
role: 'member',
}),
)
const maintainers = makeUserSet(
await github.paginate(github.rest.teams.listMembersInOrg, {
org: context.repo.owner,
team_slug: team.slug,
role: 'maintainer',
}),
)
result[team.slug] = {
description: team.description,
id: team.id,
maintainers,
members,
name: team.name,
}
}
await processTeams(
await github.paginate(github.rest.teams.listChildInOrg, {
org: context.repo.owner,
team_slug: team.slug,
}),
)
}
}
const teams = await github.paginate(github.rest.repos.listTeams, {
owner: context.repo.owner,
repo: context.repo.repo,
})
await processTeams(teams)
})
// Sort the teams by team name
const sorted = Object.keys(result)
.sort()
.reduce((acc, key) => {
acc[key] = result[key]
return acc
}, {})
const json = `${JSON.stringify(sorted, null, 2)}\n`
if (outFile) {
writeFileSync(outFile, json)
} else {
console.log(json)
}
}
+12
View File
@@ -83,4 +83,16 @@ program
}
})
program
.command('get-teams')
.description('Fetch the list of teams with GitHub and output it to a file')
.argument('<owner>', 'Owner of the GitHub repository to label (Example: NixOS)')
.argument('<repo>', 'Name of the GitHub repository to label (Example: nixpkgs)')
.argument('[outFile]', 'Path to the output file (Example: github-teams.json). If not set, prints to stdout')
.action(async (owner, repo, outFile, options) => {
const getTeams = (await import('./get-teams.js')).default
// TODO: Refactor this file so we don't need to pass a PR
await run(getTeams, owner, repo, undefined, { ...options, outFile })
})
await program.parse()
+38 -106
View File
@@ -26,23 +26,9 @@ All CUDA package sets include common CUDA packages like `libcublas`, `cudnn`, `t
CUDA support is not enabled by default in Nixpkgs. To enable CUDA support, make sure Nixpkgs is imported with a configuration similar to the following:
```nix
{ pkgs }:
{
allowUnfreePredicate =
let
ensureList = x: if builtins.isList x then x else [ x ];
in
package:
builtins.all (
license:
license.free
|| builtins.elem license.shortName [
"CUDA EULA"
"cuDNN EULA"
"cuSPARSELt EULA"
"cuTENSOR EULA"
"NVidia OptiX EULA"
]
) (ensureList package.meta.license);
allowUnfreePredicate = pkgs._cuda.lib.allowUnfreeCudaPredicate;
cudaCapabilities = [ <target-architectures> ];
cudaForwardCompat = true;
cudaSupport = true;
@@ -63,45 +49,23 @@ The `cudaForwardCompat` boolean configuration option determines whether PTX supp
### Modifying CUDA package sets {#cuda-modifying-cuda-package-sets}
CUDA package sets are created by using `callPackage` on `pkgs/top-level/cuda-packages.nix` with an explicit argument for `cudaMajorMinorVersion`, a string of the form `"<major>.<minor>"` (e.g., `"12.2"`), which informs the CUDA package set tooling which version of CUDA to use. The majority of the CUDA package set tooling is available through the top-level attribute set `_cuda`, a fixed-point defined outside the CUDA package sets.
CUDA package sets are defined in `pkgs/top-level/cuda-packages.nix`. A CUDA package set is created by `callPackage`-ing `pkgs/development/cuda-modules/default.nix` with an attribute set `manifests`, containing NVIDIA manifests for each redistributable. The manifests for supported redistributables are available through `_cuda.manifests` and live in `pkgs/development/cuda-modules/_cuda/manifests`.
::: {.caution}
The `cudaMajorMinorVersion` and `_cuda` attributes are not part of the CUDA package set fixed-point, but are instead provided by `callPackage` from the top-level in the construction of the package set. As such, they must be modified via the package set's `override` attribute.
:::
The majority of the CUDA package set tooling is available through the top-level attribute set `_cuda`, a fixed-point defined outside the CUDA package sets. As a fixed-point, `_cuda` should be modified through its `extend` attribute.
::: {.caution}
As indicated by the underscore prefix, `_cuda` is an implementation detail and no guarantees are provided with respect to its stability or API. The `_cuda` attribute set is exposed only to ease creation or modification of CUDA package sets by expert, out-of-tree users.
:::
Out-of-tree modifications of packages should use `overrideAttrs` to make any necessary modifications to the package expression.
::: {.note}
The `_cuda` attribute set fixed-point should be modified through its `extend` attribute.
The `_cuda` attribute set previously exposed `fixups`, an attribute set mapping from package name (`pname`) to a `callPackage`-compatible expression which provided to `overrideAttrs` on the result of a generic redistributable builder. This functionality has been removed in favor of including full package expressions for each redistributable package to ensure consistent attribute set membership across supported CUDA releases, platforms, and configurations.
:::
The `_cuda.fixups` attribute set is a mapping from package name (`pname`) to a `callPackage`-compatible expression which will be provided to `overrideAttrs` on the result of our generic builder.
::: {.caution}
Fixups are chosen from `_cuda.fixups` by `pname`. As a result, packages with multiple versions (e.g., `cudnn`, `cudnn_8_9`, etc.) all share a single fixup function (i.e., `_cuda.fixups.cudnn`, which is `pkgs/development/cuda-modules/fixups/cudnn.nix`).
:::
As an example, you can change the fixup function used for cuDNN for only the default CUDA package set with this overlay:
```nix
final: prev: {
cudaPackages = prev.cudaPackages.override (prevArgs: {
_cuda = prevArgs._cuda.extend (
_: prevAttrs: {
fixups = prevAttrs.fixups // {
cudnn = <your-fixup-function>;
};
}
);
});
}
```
### Extending CUDA package sets {#cuda-extending-cuda-package-sets}
CUDA package sets are scopes and provide the usual `overrideScope` attribute for overriding package attributes (see the note about `cudaMajorMinorVersion` and `_cuda` in [Configuring CUDA package sets](#cuda-modifying-cuda-package-sets)).
CUDA package sets are scopes and provide the usual `overrideScope` attribute for overriding package attributes (see the note about `_cuda` in [Configuring CUDA package sets](#cuda-modifying-cuda-package-sets)).
Inspired by `pythonPackagesExtensions`, the `_cuda.extensions` attribute is a list of extensions applied to every version of the CUDA package set, allowing modification of all versions of the CUDA package set without needing to know their names or explicitly enumerate and modify them. As an example, disabling `cuda_compat` across all CUDA package sets can be accomplished with this overlay:
@@ -115,6 +79,8 @@ final: prev: {
}
```
Redistributable packages are constructed by the `buildRedist` helper; see `pkgs/development/cuda-modules/buildRedist/default.nix` for the implementation.
### Using `cudaPackages` {#cuda-using-cudapackages}
::: {.caution}
@@ -194,7 +160,7 @@ In `pkgsForCudaArch`, the `cudaForwardCompat` option is set to `false` because e
::: {.caution}
Not every version of CUDA supports every architecture!
To illustrate: support for Blackwell (e.g., `sm_100`) was added in CUDA 12.8. Assume our Nixpkgs' default CUDA package set is to CUDA 12.6. Then the Nixpkgs variant available through `pkgsForCudaArch.sm_100` is useless, since packages like `pkgsForCudaArch.sm_100.opencv` and `pkgsForCudaArch.sm_100.python3Packages.torch` will try to generate code for `sm_100`, an architecture unknown to CUDA 12.6. In that case, you should use `pkgsForCudaArch.sm_100.cudaPackages_12_8.pkgs` instead (see [Using cudaPackages.pkgs](#cuda-using-cudapackages-pkgs) for more details).
To illustrate: support for Blackwell (e.g., `sm_100`) was added in CUDA 12.8. Assume our Nixpkgs' default CUDA package set is to CUDA 12.6. Then the Nixpkgs variant available through `pkgsForCudaArch.sm_100` is useless, since packages like `pkgsForCudaArch.sm_100.opencv` and `pkgsForCudaArch.sm_100.python3Packages.torch` will try to generate code for `sm_100`, an architecture unknown to CUDA 12.6. In that case, you should use `pkgsForCudaArch.sm_100.cudaPackages_12_8.pkgs` instead (see [Using `cudaPackages.pkgs`](#cuda-using-cudapackages-pkgs) for more details).
:::
The `pkgsForCudaArch` attribute set makes it possible to access packages built for a specific architecture without needing to manually call `pkgs.extend` and supply a new `config`. As an example, `pkgsForCudaArch.sm_89.python3Packages.torch` provides PyTorch built for Ada Lovelace GPUs.
@@ -306,82 +272,41 @@ This section of the docs is still very much in progress. Feedback is welcome in
### Package set maintenance {#cuda-package-set-maintenance}
The CUDA Toolkit is a suite of CUDA libraries and software meant to provide a development environment for CUDA-accelerated applications. Until the release of CUDA 11.4, NVIDIA had only made the CUDA Toolkit available as a multi-gigabyte runfile installer, which we provide through the [`cudaPackages.cudatoolkit`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.cudatoolkit) attribute. From CUDA 11.4 and onwards, NVIDIA has also provided CUDA redistributables (“CUDA-redist”): individually packaged CUDA Toolkit components meant to facilitate redistribution and inclusion in downstream projects. These packages are available in the [`cudaPackages`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages) package set.
The CUDA Toolkit is a suite of CUDA libraries and software meant to provide a development environment for CUDA-accelerated applications. Until the release of CUDA 11.4, NVIDIA had only made the CUDA Toolkit available as a multi-gigabyte runfile installer. From CUDA 11.4 and onwards, NVIDIA has also provided CUDA redistributables (“CUDA-redist”): individually packaged CUDA Toolkit components meant to facilitate redistribution and inclusion in downstream projects. These packages are available in the [`cudaPackages`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages) package set.
All new projects should use the CUDA redistributables available in [`cudaPackages`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages) in place of [`cudaPackages.cudatoolkit`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.cudatoolkit), as they are much easier to maintain and update.
While the monolithic CUDA Toolkit runfile installer is no longer provided, [`cudaPackages.cudatoolkit`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.cudatoolkit) provides a `symlinkJoin`-ed approximation which common libraries. The use of [`cudaPackages.cudatoolkit`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.cudatoolkit) is discouraged: all new projects should use the CUDA redistributables available in [`cudaPackages`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages) instead, as they are much easier to maintain and update.
#### Updating redistributables {#cuda-updating-redistributables}
1. Go to NVIDIA's index of CUDA redistributables: <https://developer.download.nvidia.com/compute/cuda/redist/>
2. Make a note of the new version of CUDA available.
3. Run
Whenever a new version of a redistributable manifest is made available:
```bash
nix run github:connorbaker/cuda-redist-find-features -- \
download-manifests \
--log-level DEBUG \
--version <newest CUDA version> \
https://developer.download.nvidia.com/compute/cuda/redist \
./pkgs/development/cuda-modules/cuda/manifests
```
1. Check the corresponding README.md in `pkgs/development/cuda-modules/_cuda/manifests` for the URL to use when vendoring manifests.
2. Update the manifest version used in construction of each CUDA package set in `pkgs/top-level/cuda-packages.nix`.
3. Update package expressions in `pkgs/development/cuda-modules/packages`.
This will download a copy of the manifest for the new version of CUDA.
4. Run
Updating package expressions amounts to:
```bash
nix run github:connorbaker/cuda-redist-find-features -- \
process-manifests \
--log-level DEBUG \
--version <newest CUDA version> \
https://developer.download.nvidia.com/compute/cuda/redist \
./pkgs/development/cuda-modules/cuda/manifests
```
This will generate a `redistrib_features_<newest CUDA version>.json` file in the same directory as the manifest.
5. Update the `cudaVersionMap` attribute set in `pkgs/development/cuda-modules/cuda/extension.nix`.
#### Updating cuTensor {#cuda-updating-cutensor}
1. Repeat the steps present in [Updating CUDA redistributables](#cuda-updating-redistributables) with the following changes:
- Use the index of cuTensor redistributables: <https://developer.download.nvidia.com/compute/cutensor/redist>
- Use the newest version of cuTensor available instead of the newest version of CUDA.
- Use `pkgs/development/cuda-modules/cutensor/manifests` instead of `pkgs/development/cuda-modules/cuda/manifests`.
- Skip the step of updating `cudaVersionMap` in `pkgs/development/cuda-modules/cuda/extension.nix`.
- adding fixes conditioned on newer releases, like added or removed dependencies
- adding package expressions for new packages
- updating `passthru.brokenConditions` and `passthru.badPlatformsConditions` with various constraints, (e.g., new releases removing support for various architectures)
#### Updating supported compilers and GPUs {#cuda-updating-supported-compilers-and-gpus}
1. Update `nvccCompatibilities` in `pkgs/development/cuda-modules/_cuda/data/nvcc.nix` to include the newest release of NVCC, as well as any newly supported host compilers.
2. Update `cudaCapabilityToInfo` in `pkgs/development/cuda-modules/_cuda/data/cuda.nix` to include any new GPUs supported by the new release of CUDA.
#### Updating the CUDA Toolkit runfile installer {#cuda-updating-the-cuda-toolkit}
::: {.warning}
While the CUDA Toolkit runfile installer is still available in Nixpkgs as the [`cudaPackages.cudatoolkit`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.cudatoolkit) attribute, its use is not recommended, and it should be considered deprecated. Please migrate to the CUDA redistributables provided by the [`cudaPackages`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages) package set.
To ensure packages relying on the CUDA Toolkit runfile installer continue to build, it will continue to be updated until a migration path is available.
:::
1. Go to NVIDIA's CUDA Toolkit runfile installer download page: <https://developer.nvidia.com/cuda-downloads>
2. Select the appropriate OS, architecture, distribution, and version, and installer type.
- For example: Linux, x86_64, Ubuntu, 22.04, runfile (local)
- NOTE: Typically, we use the Ubuntu runfile. It is unclear if the runfile for other distributions will work.
3. Take the link provided by the installer instructions on the webpage after selecting the installer type and get its hash by running:
```bash
nix store prefetch-file --hash-type sha256 <link>
```
4. Update `pkgs/development/cuda-modules/cudatoolkit/releases.nix` to include the release.
1. Update `nvccCompatibilities` in `pkgs/development/cuda-modules/_cuda/db/bootstrap/nvcc.nix` to include the newest release of NVCC, as well as any newly supported host compilers.
2. Update `cudaCapabilityToInfo` in `pkgs/development/cuda-modules/_cuda/db/bootstrap/cuda.nix` to include any new GPUs supported by the new release of CUDA.
#### Updating the CUDA package set {#cuda-updating-the-cuda-package-set}
1. Include a new `cudaPackages_<major>_<minor>` package set in `pkgs/top-level/all-packages.nix`.
::: {.note}
Changing the default CUDA package set should occur in a separate PR, allowing time for additional testing.
:::
- NOTE: Changing the default CUDA package set should occur in a separate PR, allowing time for additional testing.
::: {.warning}
As described in [Using `cudaPackages.pkgs`](#cuda-using-cudapackages-pkgs), the current implementation fix for package set leakage involves creating a new instance for each non-default CUDA package sets. As such, We should limit the number of CUDA package sets which have `recurseForDerivations` set to true: `lib.recurseIntoAttrs` should only be applied to the default CUDA package set.
:::
2. Successfully build the closure of the new package set, updating `pkgs/development/cuda-modules/cuda/overrides.nix` as needed. Below are some common failures:
1. Include a new `cudaPackages_<major>_<minor>` package set in `pkgs/top-level/cuda-packages.nix` and inherit it in `pkgs/top-level/all-packages.nix`.
2. Successfully build the closure of the new package set, updating expressions in `pkgs/development/cuda-modules/packages` as needed. Below are some common failures:
| Unable to ... | During ... | Reason | Solution | Note |
| -------------- | -------------------------------- | ------------------------------------------------ | -------------------------- | ------------------------------------------------------------ |
@@ -389,6 +314,13 @@ To ensure packages relying on the CUDA Toolkit runfile installer continue to bui
| Find libraries | `configurePhase` | Missing dependency on a `dev` output | Add the missing dependency | The `dev` output typically contains CMake configuration files |
| Find libraries | `buildPhase` or `patchelf` | Missing dependency on a `lib` or `static` output | Add the missing dependency | The `lib` or `static` output typically contains the libraries |
::: {.note}
Two utility derivations ease testing updates to the package set:
- `cudaPackages.tests.redists-unpacked`: the `src` of each redistributable package unpacked and `symlinkJoin`-ed
- `cudaPackages.tests.redists-installed`: each output of each redistributable package `symlinkJoin`-ed
:::
Failure to run the resulting binary is typically the most challenging to diagnose, as it may involve a combination of the aforementioned issues. This type of failure typically occurs when a library attempts to load or open a library it depends on that it does not declare in its `DT_NEEDED` section. Try the following debugging steps:
1. First ensure that dependencies are patched with [`autoAddDriverRunpath`](https://search.nixos.org/packages?channel=unstable&type=packages&query=autoAddDriverRunpath).
+2 -7
View File
@@ -58,9 +58,8 @@
],
"cuda-updating-redistributables": [
"index.html#cuda-updating-redistributables",
"index.html#updating-cuda-redistributables"
],
"cuda-updating-cutensor": [
"index.html#updating-cuda-redistributables",
"index.html#updating-the-cuda-toolkit",
"index.html#cuda-updating-cutensor",
"index.html#updating-cutensor"
],
@@ -72,10 +71,6 @@
"index.html#cuda-updating-the-cuda-package-set",
"index.html#updating-the-cuda-package-set"
],
"cuda-updating-the-cuda-toolkit": [
"index.html#cuda-updating-the-cuda-toolkit",
"index.html#updating-the-cuda-toolkit"
],
"cuda-user-guide": [
"index.html#cuda-user-guide"
],
+1 -1
View File
@@ -63,7 +63,7 @@ let
customisation = callLibs ./customisation.nix;
derivations = callLibs ./derivations.nix;
maintainers = import ../maintainers/maintainer-list.nix;
teams = callLibs ../maintainers/team-list.nix;
teams = callLibs ../maintainers/computed-team-list.nix;
meta = callLibs ./meta.nix;
versions = callLibs ./versions.nix;
+9 -1
View File
@@ -24,13 +24,21 @@ let
default = false;
};
members = lib.mkOption {
type = types.listOf (types.submodule (import ./maintainer-module.nix { inherit lib; }));
type = types.listOf (types.submodule ./maintainer-module.nix);
default = [ ];
};
github = lib.mkOption {
type = types.str;
default = "";
};
githubId = lib.mkOption {
type = types.int;
default = 0;
};
githubMaintainers = lib.mkOption {
type = types.listOf (types.submodule ./maintainer-module.nix);
default = [ ];
};
};
};
+5 -1
View File
@@ -158,13 +158,17 @@ If the team lists no specific membership policy, feel free to merge changes to t
> [!IMPORTANT]
> If a team says it is a closed group, do not merge additions to the team without an approval by at least one existing member.
A corresponding GitHub team can be created by any org member.
#### Synced GitHub teams
As an alternative to tracking team members in `team-list.nix`, a corresponding GitHub team can be created by any org member and its members subsequently managed directly on GitHub.
When creating the team it should be created with the `nixpkgs-maintainers` team as parent.
Once approved, the team will have the right privileges to be pinged and requested for review in Nixpkgs.
> [!TIP]
> The team name should be as short as possible; because it is nested under the maintainers group, no -maintainers suffix is needed.
After the first [weekly team sync](../.github/workflows/team-sync.yml) with the new team, it's then also possible to link it to the entry in `team-list.nix` by setting its `github` field to the GitHub team name.
# Maintainer scripts
Various utility scripts, which are mainly useful for nixpkgs maintainers, are available under `./scripts/`.
+59
View File
@@ -0,0 +1,59 @@
# Extends ./team-list.nix with synced GitHub information from ./github-teams.json
{ lib }:
let
githubTeams = lib.importJSON ./github-teams.json;
teams = import ./team-list.nix { inherit lib; };
# A fast maintainer id lookup table
maintainersById = lib.pipe lib.maintainers [
lib.attrValues
(lib.groupBy (attrs: toString attrs.githubId))
(lib.mapAttrs (_: lib.head))
];
maintainerSetToList =
githubTeam:
lib.mapAttrsToList (
login: id:
maintainersById.${toString id}
or (throw "lib.teams: No maintainer entry for GitHub user @${login} who's part of the @NixOS/${githubTeam} team")
);
in
# TODO: Consider automatically exposing all GitHub teams under `lib.teams`,
# so that no manual PRs are necessary to add such teams anymore
lib.mapAttrs (
name: attrs:
if attrs ? github then
let
githubTeam =
githubTeams.${attrs.github}
or (throw "lib.teams.${name}: Corresponding GitHub team ${attrs.github} not known yet, make sure to create it and wait for the regular team sync");
in
# TODO: Consider specifying `githubId` in team-list.nix and inferring `github` from it (or even dropping it)
# This would make renames easier because no additional place needs to keep track of them.
# Though in a future where all Nixpkgs GitHub teams are automatically exposed under `lib.teams`,
# this would also not be an issue anymore.
assert lib.assertMsg (!attrs ? githubId)
"lib.teams.${name}: Both `githubId` and `github` is set, but the former is synced from the latter";
assert lib.assertMsg (!attrs ? shortName)
"lib.teams.${name}: Both `shortName` and `github` is set, but the former is synced from the latter";
assert lib.assertMsg (
!attrs ? scope
) "lib.teams.${name}: Both `scope` and `github` is set, but the former is synced from the latter";
assert lib.assertMsg (
!attrs ? members
) "lib.teams.${name}: Both `members` and `github` is set, but the former is synced from the latter";
attrs
// {
githubId = githubTeam.id;
shortName = githubTeam.name;
scope = githubTeam.description;
members =
maintainerSetToList attrs.github githubTeam.maintainers
++ maintainerSetToList attrs.github githubTeam.members;
githubMaintainers = maintainerSetToList attrs.github githubTeam.maintainers;
}
else
attrs
) teams
File diff suppressed because it is too large Load Diff
+5
View File
@@ -21343,6 +21343,11 @@
matrix = "@qyriad:katesiria.org";
name = "Qyriad";
};
qzylinra = {
github = "qzylinra";
githubId = 225773816;
name = "qzylinra";
};
r-aizawa = {
github = "Xantibody";
githubId = 109563705;
+16 -33
View File
@@ -1,11 +1,11 @@
#!/usr/bin/env nix-shell
#!nix-shell -i perl -p perl -p perlPackages.JSON perlPackages.LWPUserAgent perlPackages.LWPProtocolHttps perlPackages.TermReadKey
#!nix-shell -i perl -p perl -p perlPackages.JSON github-cli
# This script generates a list of teams to ping for the Feature Freeze announcement on Discourse.
# It's intended to be used by Release Managers before creating such posts.
#
# The script interactively reads a GitHub username and a corresponding GitHub Personal Access token.
# This is required to access the GitHub Teams API so the token needs at least the read:org privilege.
# The script uses the credentials from the GitHub CLI (gh)
# This is required to access the GitHub Teams API so it needs at least the read:org privilege.
## no critic (InputOutput::RequireCheckedSyscalls, InputOutput::ProhibitBacktickOperators)
use strict;
@@ -14,39 +14,21 @@ use Carp;
use Cwd 'abs_path';
use File::Basename;
use JSON qw(decode_json);
use LWP::UserAgent;
use Term::ReadKey qw(ReadLine ReadMode);
sub github_team_members {
my ($team_name, $username, $token) = @_;
my ($team_name) = @_;
my @ret;
my $req = HTTP::Request->new('GET', "https://api.github.com/orgs/NixOS/teams/$team_name/members", [ 'Accept' => 'application/vnd.github.v3+json' ]);
$req->authorization_basic($username, $token);
my $response = LWP::UserAgent->new->request($req);
if ($response->is_success) {
my $content = decode_json($response->decoded_content);
foreach (@{$content}) {
push @ret, $_->{'login'};
}
} else {
print {*STDERR} "!! Requesting members of GitHub Team '$team_name' failed: " . $response->status_line;
my $content = decode_json(`gh api orgs/NixOS/teams/$team_name/members`);
foreach (@{$content}) {
push @ret, $_->{'login'};
}
return \@ret;
}
# Read GitHub credentials
print {*STDERR} 'GitHub username: ';
my $github_user = ReadLine(0);
ReadMode('noecho');
print {*STDERR} 'GitHub personal access token (no echo): ';
my $github_token = ReadLine(0);
ReadMode('restore');
print {*STDERR} "\n";
chomp $github_user;
chomp $github_token;
`gh auth status` or die "`gh` comes from `pkgs.github-cli`, or in one command:
nix-shell -p github-cli --run 'gh auth login'\n";
# Read nix output
my $nix_version = `nix --version`;
@@ -60,7 +42,6 @@ if ($nix_version =~ m/2[.]3[.]/msx) {
my $data = decode_json($out);
# Process teams
print {*STDERR} "\n";
while (my ($team_nix_key, $team_config) = each %{$data}) {
# Ignore teams that don't want to be or can't be pinged
if (not defined $team_config->{enableFeatureFreezePing} or not $team_config->{enableFeatureFreezePing}) {
@@ -71,12 +52,12 @@ while (my ($team_nix_key, $team_config) = each %{$data}) {
next;
}
# Team name
print {*STDERR} "$team_config->{shortName}:";
print {*STDOUT} "$team_config->{shortName}:";
# GitHub Teams
my @github_members;
if (defined $team_config->{github}) {
print {*STDERR} " \@NixOS/$team_config->{github}";
push @github_members, @{github_team_members($team_config->{github}, $github_user, $github_token)};
print {*STDOUT} " \@NixOS/$team_config->{github}";
push @github_members, @{github_team_members($team_config->{github})};
}
my %github_members = map { $_ => 1 } @github_members;
# Members
@@ -88,9 +69,11 @@ while (my ($team_nix_key, $team_config) = each %{$data}) {
if (defined $github_members{$github_handle}) {
next;
}
print {*STDERR} " \@$github_handle";
print {*STDOUT} " \@$github_handle";
}
}
print {*STDERR} "\n";
print {*STDOUT} "\n";
}
print {*STDOUT} "Everyone else: \@NixOS/nixpkgs-committers\n";
+7 -326
View File
@@ -1,11 +1,9 @@
/*
List of maintainer teams.
name = {
# Required
members = [ maintainer1 maintainer2 ];
scope = "Maintain foo packages.";
shortName = "foo";
# Optional
enableFeatureFreezePing = true;
github = "my-subsystem";
};
@@ -18,7 +16,12 @@
- `enableFeatureFreezePing` will ping this team during the Feature Freeze announcements on releases
- There is limited mention capacity in a single post, so this should be reserved for critical components
or larger ecosystems within nixpkgs.
- `github` will ping the specified GitHub team as well
- `github` will ping the specified GitHub team and sync the `members`, `scope` and `shortName` fields from it
- `githubId` will be set automatically based on `github`
If `github` is specified and you'd like to be added to the team, contact one of the `githubMaintainers` of the team:
nix eval -f lib teams.someTeam.githubMaintainers --json | jq
More fields may be added in the future.
@@ -56,16 +59,7 @@ with lib.maintainers;
};
android = {
members = [
adrian-gierakowski
hadilq
johnrtitor
numinit
RossComputerGuy
];
scope = "Maintain Android-related tooling in nixpkgs.";
github = "android";
shortName = "Android";
enableFeatureFreezePing = true;
};
@@ -106,20 +100,7 @@ with lib.maintainers;
};
beam = {
members = [
adamcstephens
ankhers
Br1ght0ne
DianaOlympos
gleber
happysalada
minijackson
yurrriq
savtrip
];
github = "beam";
scope = "Maintain BEAM-related packages and modules.";
shortName = "BEAM";
enableFeatureFreezePing = true;
};
@@ -193,34 +174,11 @@ with lib.maintainers;
};
categorization = {
members = [
aleksana
fgaz
getpsyched
lyndeno
natsukium
philiptaron
pyrotelekinetic
raskin
sigmasquadron
tomodachi94
];
github = "categorization";
scope = "Maintain the categorization system in Nixpkgs, per RFC 146. This team has authority over all categorization issues in Nixpkgs.";
shortName = "Categorization";
};
ci = {
members = [
MattSturgeon
mic92
philiptaron
wolfgangwalther
zowoq
];
github = "nixpkgs-ci";
scope = "Maintain Nixpkgs' in-tree Continuous Integration, including GitHub Actions.";
shortName = "CI";
};
cinnamon = {
@@ -237,7 +195,6 @@ with lib.maintainers;
members = [ floriansanderscc ];
scope = "Maintain Clever Cloud related packages.";
shortName = "CleverCloud";
github = "CleverCloud";
};
cloudposse = {
@@ -263,21 +220,7 @@ with lib.maintainers;
};
cosmic = {
members = [
a-kenji
ahoneybun
drakon64
griffi-gh
HeitorAugustoLN
nyabinary
pandapip1
qyliss
thefossguy
michaelBelsanti
];
github = "cosmic";
shortName = "cosmic";
scope = "Maintain the COSMIC DE and related packages.";
enableFeatureFreezePing = true;
};
@@ -291,15 +234,6 @@ with lib.maintainers;
};
cuda = {
members = [
connorbaker
GaetanLepage
prusnak
samuela
SomeoneSerge
];
scope = "Maintain CUDA-enabled packages";
shortName = "Cuda";
github = "cuda-maintainers";
};
@@ -316,14 +250,7 @@ with lib.maintainers;
};
darwin = {
members = [
emily
reckenrode
toonn
];
github = "darwin-core";
scope = "Maintain core platform support and packages for macOS and other Apple platforms.";
shortName = "Darwin";
enableFeatureFreezePing = true;
};
@@ -367,10 +294,7 @@ with lib.maintainers;
};
docs = {
members = [ ];
github = "documentation-team";
scope = "Maintain nixpkgs/NixOS documentation and tools for building it.";
shortName = "Docs";
enableFeatureFreezePing = true;
};
@@ -411,31 +335,11 @@ with lib.maintainers;
};
enlightenment = {
members = [ romildo ];
github = "enlightenment";
scope = "Maintain Enlightenment desktop environment and related packages.";
shortName = "Enlightenment";
enableFeatureFreezePing = true;
};
# Dummy group for the "everyone else" section
feature-freeze-everyone-else = {
members = [ ];
github = "nixpkgs-committers";
scope = "Dummy team for the #everyone else' section during feture freezes, not to be used as package maintainers!";
shortName = "Everyone else";
enableFeatureFreezePing = true;
};
flutter = {
members = [
mkg20001
RossComputerGuy
FlafyDev
hacker1024
];
scope = "Maintain Flutter and Dart-related packages and build tools";
shortName = "flutter";
enableFeatureFreezePing = false;
github = "flutter";
};
@@ -496,18 +400,7 @@ with lib.maintainers;
};
geospatial = {
members = [
autra
imincik
l0b0
nh2
nialov
sikmir
willcohen
];
github = "geospatial";
scope = "Maintain geospatial, remote sensing and OpenStreetMap software.";
shortName = "Geospatial";
enableFeatureFreezePing = true;
};
@@ -524,15 +417,7 @@ with lib.maintainers;
};
gnome = {
members = [
bobby285271
hedning
jtojnar
dasj19
];
github = "gnome";
scope = "Maintain GNOME desktop environment and platform.";
shortName = "GNOME";
enableFeatureFreezePing = true;
};
@@ -547,17 +432,7 @@ with lib.maintainers;
};
golang = {
members = [
kalbasit
katexochen
mic92
zowoq
qbit
mfrw
];
github = "golang";
scope = "Maintain Golang compilers.";
shortName = "Go";
enableFeatureFreezePing = true;
};
@@ -573,15 +448,7 @@ with lib.maintainers;
};
haskell = {
members = [
cdepillabout
maralorn
sternenseemann
wolfgangwalther
];
github = "haskell";
scope = "Maintain Haskell packages and infrastructure.";
shortName = "Haskell";
enableFeatureFreezePing = true;
};
@@ -607,16 +474,7 @@ with lib.maintainers;
};
hyprland = {
members = [
donovanglover
fufexan
johnrtitor
khaneliman
NotAShelf
];
github = "hyprland";
scope = "Maintain Hyprland compositor and ecosystem";
shortName = "Hyprland";
enableFeatureFreezePing = true;
};
@@ -638,14 +496,6 @@ with lib.maintainers;
java = {
github = "java";
members = [
chayleaf
fliegendewurst
infinidoge
tomodachi94
];
shortName = "Java";
scope = "Maintainers of the Nixpkgs Java ecosystem (JDK, JVM, Java, Gradle, Maven, Ant, and adjacent projects)";
enableFeatureFreezePing = true;
};
@@ -684,17 +534,6 @@ with lib.maintainers;
k3s = {
github = "k3s";
members = [
euank
frederictobiasc
heywoodlh
marcusramberg
mic92
rorosen
wrmilling
];
scope = "Maintain K3s package, NixOS module, NixOS tests, update script";
shortName = "K3s";
};
kodi = {
@@ -746,16 +585,7 @@ with lib.maintainers;
};
lisp = {
members = [
raskin
lukego
nagy
uthar
hraban
];
github = "lisp";
scope = "Maintain the Lisp ecosystem.";
shortName = "lisp";
enableFeatureFreezePing = true;
};
@@ -773,19 +603,7 @@ with lib.maintainers;
};
llvm = {
members = [
dtzWill
emily
ericson2314
lovek323
qyliss
RossComputerGuy
rrbutani
sternenseemann
];
github = "llvm";
scope = "Maintain LLVM package sets and related packages";
shortName = "LLVM";
enableFeatureFreezePing = true;
};
@@ -797,23 +615,12 @@ with lib.maintainers;
};
loongarch64 = {
members = [
aleksana
Cryolitia
darkyzhou
dramforever
wegank
];
github = "loongarch64";
scope = "Maintain LoongArch64 related packages and code";
shortName = "LoongArch64";
enableFeatureFreezePing = true;
};
lua = {
github = "lua";
scope = "Maintain the lua ecosystem.";
shortName = "lua";
enableFeatureFreezePing = true;
};
@@ -828,10 +635,7 @@ with lib.maintainers;
};
lumina = {
members = [ romildo ];
github = "lumina";
scope = "Maintain lumina desktop environment and related packages.";
shortName = "Lumina";
enableFeatureFreezePing = true;
};
@@ -847,23 +651,12 @@ with lib.maintainers;
};
lxqt = {
members = [ romildo ];
github = "lxqt";
scope = "Maintain LXQt desktop environment and related packages.";
shortName = "LXQt";
enableFeatureFreezePing = true;
};
marketing = {
members = [
djacu
flyfloh
thilobillerbeck
tomberek
];
github = "marketing-team";
scope = "Marketing of Nix/NixOS/nixpkgs.";
shortName = "Marketing";
enableFeatureFreezePing = true;
};
@@ -927,15 +720,7 @@ with lib.maintainers;
};
neovim = {
members = [
GaetanLepage
khaneliman
mrcjkb
perchun
];
github = "neovim";
scope = "Maintain the vim and neovim text editors and related packages.";
shortName = "Vim/Neovim";
};
nextcloud = {
@@ -993,13 +778,7 @@ with lib.maintainers;
};
ocaml = {
members = [
alizter
redianthus
];
github = "ocaml";
scope = "Maintain the OCaml compiler and package set.";
shortName = "OCaml";
enableFeatureFreezePing = true;
};
@@ -1031,13 +810,7 @@ with lib.maintainers;
};
pantheon = {
members = [
davidak
bobby285271
];
github = "pantheon";
scope = "Maintain Pantheon desktop environment and platform.";
shortName = "Pantheon";
enableFeatureFreezePing = true;
};
@@ -1053,26 +826,12 @@ with lib.maintainers;
};
php = {
members = [
aanderse
ma27
piotrkwiecinski
talyz
];
github = "php";
scope = "Maintain PHP related packages and extensions.";
shortName = "PHP";
enableFeatureFreezePing = true;
};
podman = {
members = [
saschagrunert
vdemeester
];
github = "podman";
scope = "Maintain Podman and CRI-O related packages and modules.";
shortName = "Podman";
};
postgres = {
@@ -1097,18 +856,7 @@ with lib.maintainers;
};
qt-kde = {
members = [
ilya-fedin
k900
LunNova
mjm
nickcao
SuperSandro2000
ttuegel
];
github = "qt-kde";
scope = "Maintain the Qt framework, KDE application suite, Plasma desktop environment and related projects.";
shortName = "Qt / KDE";
enableFeatureFreezePing = true;
};
@@ -1134,43 +882,12 @@ with lib.maintainers;
shortName = "Red Code Labs";
};
release = {
members = [ ];
github = "nixos-release-managers";
scope = "Manage the current nixpkgs/NixOS release.";
shortName = "Release";
};
rocm = {
members = [
Flakebi
GZGavinZhao
LunNova
mschwaig
];
github = "rocm";
scope = "Maintain ROCm and related packages.";
shortName = "ROCm";
};
ruby = {
members = [ ];
scope = "Maintain the Ruby interpreter and related packages.";
shortName = "Ruby";
enableFeatureFreezePing = true;
};
rust = {
members = [
figsoda
mic92
tjni
winter
zowoq
];
github = "rust";
scope = "Maintain the Rust compiler toolchain and nixpkgs integration.";
shortName = "Rust";
enableFeatureFreezePing = true;
};
@@ -1185,16 +902,7 @@ with lib.maintainers;
};
sdl = {
members = [
evythedemon
grimmauld
jansol
marcin-serwin
pbsds
];
github = "SDL";
scope = "Maintain core SDL libraries.";
shortName = "SDL";
github = "sdl";
enableFeatureFreezePing = true;
};
@@ -1221,16 +929,6 @@ with lib.maintainers;
};
stdenv = {
members = [
artturin
emily
ericson2314
philiptaron
reckenrode
RossComputerGuy
];
scope = "Maintain the standard environment and its surrounding logic.";
shortName = "stdenv";
enableFeatureFreezePing = true;
github = "stdenv";
};
@@ -1267,16 +965,7 @@ with lib.maintainers;
};
systemd = {
members = [
flokli
arianvp
elvishjerricco
aanderse
grimmauld
];
github = "systemd";
scope = "Maintain systemd for NixOS.";
shortName = "systemd";
enableFeatureFreezePing = true;
};
@@ -1326,14 +1015,6 @@ with lib.maintainers;
};
xen = {
members = [
hehongbo
lach
sigmasquadron
rane
];
scope = "Maintain the Xen Project Hypervisor and the related tooling ecosystem.";
shortName = "Xen Project Hypervisor";
enableFeatureFreezePing = true;
github = "xen-project";
};
@@ -125,9 +125,19 @@ runCommand (lib.appendToName "with-packages" emacs).name
local origin_path=$2
local dest_path=$3
# Add the path to the search path list, but only if it exists
# Add the path to the search path list, but only if it exists.
# Executables in /bin are linked by their resolved paths in case they are
# relative symlinks (which break when 'lndir'ed as is);
# see https://github.com/NixOS/nixpkgs/issues/395442
if [[ -d "$pkg/$origin_path" ]]; then
$lndir/bin/lndir -silent "$pkg/$origin_path" "$out/$dest_path"
case "$origin_path" in
bin)
for exe in $pkg/$origin_path/*; do
ln -s "$(realpath "$exe")" "$out/$dest_path/$(basename "$exe")"
done
;;
*) $lndir/bin/lndir -silent "$pkg/$origin_path" "$out/$dest_path";;
esac
fi
}
@@ -773,8 +773,8 @@ let
mktplcRef = {
name = "vscode-tailwindcss";
publisher = "bradlc";
version = "0.14.28";
hash = "sha256-xq12b0i0TsYZ5XxF1t9c2YrV7wAROjEjdLgBg3ZaLi0=";
version = "0.14.29";
hash = "sha256-58/yM4xP8ewpegNlVSWnyFIoAmEd7E/CigQgae7OgZY=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/bradlc.vscode-tailwindcss/changelog";
@@ -1154,8 +1154,8 @@ let
mktplcRef = {
publisher = "DanielSanMedium";
name = "dscodegpt";
version = "3.14.135";
hash = "sha256-y7qfBzXqyGrZXrpIkbMA1TDEQsKcfPCLmllypNu51G0=";
version = "3.14.158";
hash = "sha256-c+5CJqjn7dmwDgNcaaDBapi3T8OI+5UnPJj9+t8sWng=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/DanielSanMedium.dscodegpt/changelog";
@@ -5140,8 +5140,8 @@ let
mktplcRef = {
name = "volar";
publisher = "Vue";
version = "3.1.1";
hash = "sha256-l5x7fLznJGm2dPAbJlz4/5BDikM45h1W9GkmoC4Sv7k=";
version = "3.1.2";
hash = "sha256-DgLGTxUWBSjDr9m+lfmAPteZv1mX7OOlYynCrd+zU0o=";
};
meta = {
changelog = "https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md";
@@ -4,8 +4,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "fstar-vscode-assistant";
publisher = "FStarLang";
version = "0.21.0";
hash = "sha256-p1Gh7HKcEXGiObzFt0P/hGS0e5g8ekktmAqSWi6sJwA=";
version = "0.22.0";
hash = "sha256-jDHVN34f/HlE74+uXt4tx8cDjh9pG4nKZG5CaHKT9oE=";
};
meta = {
description = "Interactive editing mode VS Code extension for F*";
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "ms-pyright";
name = "pyright";
version = "1.1.406";
hash = "sha256-Lz8x/op0RUluE7R6xssg2nVviT0O1tZXUopzKt0f99U=";
version = "1.1.407";
hash = "sha256-x236ExuITXKqDoRgjDhnq9WnBbI1DvIIW/PXEYx2oVA=";
};
meta = {
@@ -6,8 +6,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-sqlite3-editor";
publisher = "yy0931";
version = "1.0.208";
hash = "sha256-4NOyMHp42RS7qsx0Zy86kqQzKgQkh3WprRoEI6GIXvg=";
version = "1.0.210";
hash = "sha256-SuLGdTDZssXu5NeBhdFyT1+MIWo9B7BohG7YfB0SX7I=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/yy0931.vscode-sqlite3-editor/changelog";
+2 -2
View File
@@ -25,14 +25,14 @@
stdenv.mkDerivation rec {
pname = "tellico";
version = "4.1.3";
version = "4.1.4";
src = fetchFromGitLab {
domain = "invent.kde.org";
owner = "office";
repo = "tellico";
rev = "v${version}";
hash = "sha256-+ky47wbyGAsBLx9q4ya/Vm9jiqEAbFfhloOytAyUYCQ=";
hash = "sha256-eScAOd1da05fqXtbcz8oEJiObB7CUxiYReSrr3R7ybM=";
};
nativeBuildInputs = [
@@ -5,16 +5,16 @@
}:
buildGoModule rec {
pname = "helm-dt";
version = "0.4.10";
version = "0.4.11";
src = fetchFromGitHub {
owner = "vmware-labs";
repo = "distribution-tooling-for-helm";
rev = "refs/tags/v${version}";
hash = "sha256-2Owm5x42R+BXGPrTz4Kaw8vboy4G6Jx93JWganOUlfo=";
hash = "sha256-k7+t52UU5dfElD7885AppO2+mccjQwh2mRImByUfAaE=";
};
vendorHash = "sha256-CIVgNS74V75etC9WBzoxu6aoMHlUYxWd22h2NG1uNn0=";
vendorHash = "sha256-dkE3eYZnaS+kC0kDVxaFW/Ev15TY2MY3m5xgPof7Y18=";
ldflags = [
"-s"
@@ -7,13 +7,13 @@
mkHyprlandPlugin {
pluginName = "hypr-dynamic-cursors";
version = "0-unstable-2025-10-12";
version = "0-unstable-2025-10-23";
src = fetchFromGitHub {
owner = "VirtCode";
repo = "hypr-dynamic-cursors";
rev = "d0e9f7320711fc83967cf6b172e8ed40c565631b";
hash = "sha256-Zr9eBntl3vfoIjmgSF9MgDAW+YGbYa1auttah7qqqTc=";
rev = "7336d7a7cf81422d0d8a574e9e9ba6fe8eab8dfc";
hash = "sha256-ZaiEZnsm7LlpDL/C/D4vO5QHgv9GdFrO9Fd2qlyvVRc=";
};
dontUseCmakeConfigure = true;
+3 -1
View File
@@ -60,6 +60,7 @@ lib.makeOverridable (
# Impure env vars (https://nixos.org/nix/manual/#sec-advanced-attributes)
# needed for netrcPhase
netrcImpureEnvVars ? [ ],
passthru ? { },
meta ? { },
allowedRequisites ? null,
# fetch all tags after tree (useful for git describe)
@@ -195,7 +196,8 @@ lib.makeOverridable (
passthru = {
gitRepoUrl = url;
inherit tag;
};
}
// passthru;
}
)
)
+6 -3
View File
@@ -22,6 +22,7 @@ lib.makeOverridable (
sparseCheckout ? lib.optional (rootDir != "") rootDir,
githubBase ? "github.com",
varPrefix ? null,
passthru ? { },
meta ? { },
... # For hash agility
}@args:
@@ -112,7 +113,8 @@ lib.makeOverridable (
revWithTag = if tag != null then "refs/tags/${tag}" else rev;
fetcherArgs =
(
passthruAttrs
// (
if useFetchGit then
{
inherit
@@ -124,6 +126,7 @@ lib.makeOverridable (
fetchLFS
;
url = gitRepoUrl;
inherit passthru;
}
// lib.optionalAttrs (leaveDotGit != null) { inherit leaveDotGit; }
else
@@ -148,11 +151,11 @@ lib.makeOverridable (
passthru = {
inherit gitRepoUrl;
};
}
// passthru;
}
)
// privateAttrs
// passthruAttrs
// {
inherit name;
};
+4 -1
View File
@@ -44,7 +44,10 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
bluez
libnotify
opencv
# NOTE: Specifically not using lib.getOutput here because it would select the out output of opencv, which changes
# semantics since make-derivation uses lib.getDev on the dependency arrays, which won't touch derivations with
# specified outputs.
(opencv.cxxdev or opencv)
qt6.qtbase
qt6.qtmultimedia
qt6.qttools
@@ -7,16 +7,16 @@
buildNpmPackage rec {
pname = "all-the-package-names";
version = "2.0.2241";
version = "2.0.2247";
src = fetchFromGitHub {
owner = "nice-registry";
repo = "all-the-package-names";
tag = "v${version}";
hash = "sha256-jiHYGxESaEKQ6g4Bz7fZNz24PFmF/PWKc3ySqZzFDa8=";
hash = "sha256-IK94a6XOTOqyUnMPfjV3GzKUpf0WpPwINbhxzbTvAKA=";
};
npmDepsHash = "sha256-KtfzWr8I0fmZfIgkVAohgd0UlJY1DeP6Q0n8e7YENrs=";
npmDepsHash = "sha256-sdCRKOtwDEixjCZdg1Tl5CXvfAcFOIWK7Iw17h1caOE=";
passthru.updateScript = nix-update-script { };
+9
View File
@@ -40,6 +40,15 @@ stdenv.mkDerivation rec {
ntk
];
postPatch = ''
substituteInPlace CMakeLists.txt --replace-fail \
'cmake_minimum_required (VERSION 2.6)' \
'cmake_minimum_required(VERSION 4.0)'
substituteInPlace src/avtk/CMakeLists.txt --replace-fail \
'cmake_minimum_required (VERSION 2.6)' \
'cmake_minimum_required(VERSION 4.0)'
'';
meta = with lib; {
homepage = "http://openavproductions.com/artyfx/";
description = "LV2 plugin bundle of artistic realtime effects";
+3 -3
View File
@@ -6,18 +6,18 @@
rustPlatform.buildRustPackage rec {
pname = "agg";
version = "1.6.0";
version = "1.7.0";
src = fetchFromGitHub {
owner = "asciinema";
repo = "agg";
rev = "v${version}";
hash = "sha256-FjAf/rhyxsm4LHoko4QRA9t5e+qKIgO2kSd48Zmf224=";
hash = "sha256-6UenPE6mmmvliaIuGdQj/FrlmoJvmBJgfo0hW+uRaxM=";
};
strictDeps = true;
cargoHash = "sha256-CeXcpSD/6qPzA8nrSyC3oDFBpjFYNfDPySQxSOZPlgc=";
cargoHash = "sha256-VpbjvrMhzS1zrcMNWBjTLda6o3ea2cwpnEDUouwyp8w=";
meta = with lib; {
description = "Command-line tool for generating animated GIF files from asciicast v2 files produced by asciinema terminal recorder";
@@ -0,0 +1,69 @@
{
stdenv,
fetchFromGitHub,
lib,
copyDesktopItems,
installShellFiles,
makeDesktopItem,
cmake,
curl,
httplib,
nlohmann_json,
openssl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "beammp-launcher";
version = "2.7.0";
src = fetchFromGitHub {
owner = "BeamMP";
repo = "BeamMP-Launcher";
tag = "v${finalAttrs.version}";
hash = "sha256-+qdDGOLds2j00BRijFAZ8DMrnjvigs+z+w9+wbitJno=";
};
strictDeps = true;
nativeBuildInputs = [
copyDesktopItems
installShellFiles
cmake
];
buildInputs = [
curl
httplib
nlohmann_json
openssl
];
desktopItems = [
(makeDesktopItem {
categories = [ "Game" ];
comment = "Launcher for the BeamMP mod for BeamNG.drive";
desktopName = "BeamMP-Launcher";
exec = "BeamMP-Launcher";
name = "BeamMP-Launcher";
terminal = true;
})
];
installPhase = ''
runHook preInstall
installBin "BeamMP-Launcher"
copyDesktopItems
runHook postInstall
'';
meta = {
description = "Launcher for the BeamMP mod for BeamNG.drive";
homepage = "https://github.com/BeamMP/BeamMP-Launcher";
license = lib.licenses.agpl3Only;
mainProgram = "BeamMP-Launcher";
maintainers = [ lib.maintainers.Andy3153 ];
platforms = lib.platforms.linux;
};
})
+1 -3
View File
@@ -434,9 +434,7 @@ stdenv'.mkDerivation (finalAttrs: {
# They comment two licenses: GPLv2 and Blender License, but they
# say: "We've decided to cancel the BL offering for an indefinite period."
# OptiX, enabled with cudaSupport, is non-free.
license =
with lib.licenses;
[ gpl2Plus ] ++ lib.optional cudaSupport (unfree // { shortName = "NVidia OptiX EULA"; });
license = with lib.licenses; [ gpl2Plus ] ++ lib.optional cudaSupport nvidiaCudaRedist;
platforms = [
"aarch64-linux"
+3 -3
View File
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-tarpaulin";
version = "0.34.0";
version = "0.34.1";
src = fetchFromGitHub {
owner = "xd009642";
repo = "tarpaulin";
tag = version;
hash = "sha256-G7tzOprDzf+rC7PYPdjlX5VeJwADzpp3JOSK4t55zfA=";
hash = "sha256-HJgcFQrHINm4BPfZ4c5ZHQYBTSBVYdSl/n0qBlSsNOI=";
};
cargoHash = "sha256-RI+8QQSrxjXsfrqqoJ56UIG4rnhww0gqtjF59j43agU=";
cargoHash = "sha256-/IIO462dN1v7r05uDGo+QbH8gkSGa93StjLleP/KUPw=";
nativeBuildInputs = [
pkg-config
+2 -2
View File
@@ -7,13 +7,13 @@
buildGo125Module (finalAttrs: {
pname = "chezmoi";
version = "2.66.1";
version = "2.66.2";
src = fetchFromGitHub {
owner = "twpayne";
repo = "chezmoi";
tag = "v${finalAttrs.version}";
hash = "sha256-DwMkfS+D9o10Dk3jEzgkDcSoblbpoimN6RPV2iZTLcg=";
hash = "sha256-TYEVMxebA4dvWMmgx4bMv1UKO2YGH+D+lZuiAu8ZmI4=";
};
vendorHash = "sha256-g9bzsmLKJ7pCmTnO8N9Um1FDBvQA0mqw14fwGYMb/K0=";
+8
View File
@@ -38,11 +38,19 @@ stdenv.mkDerivation rec {
doCheck = true;
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "CMAKE_MINIMUM_REQUIRED(VERSION 2.6)" "cmake_minimum_required(VERSION 3.10)" \
--replace-fail "CMAKE_POLICY(VERSION 2.8.7)" "CMAKE_POLICY(VERSION 3.10)" \
--replace-fail "CMAKE_POLICY(SET CMP0045 OLD)" ""
'';
meta = with lib; {
homepage = "https://github.com/Washington-University/CiftiLib";
description = "Library for reading and writing CIFTI files";
maintainers = with maintainers; [ bcdarwin ];
platforms = platforms.unix;
broken = stdenv.hostPlatform.isDarwin;
license = licenses.bsd2;
};
}
+4 -2
View File
@@ -3,10 +3,11 @@
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
}:
stdenv.mkDerivation rec {
version = "1.22";
version = "1.23";
pname = "cliquer";
# autotoolized version of the original cliquer
@@ -14,13 +15,14 @@ stdenv.mkDerivation rec {
owner = "dimpase";
repo = "autocliquer";
rev = "v${version}";
sha256 = "00gcmrhi2fjn8b246w5a3b0pl7p6haxy5wjvd9kcqib1xanz59z4";
hash = "sha256-SGpur3sF1dYQU97wprERUqlr6LIX+NyXZVl0eSEd3uM=";
};
doCheck = true;
nativeBuildInputs = [
autoreconfHook
pkg-config
];
meta = with lib; {
+4 -4
View File
@@ -5,7 +5,7 @@
"packages": {
"": {
"dependencies": {
"codebuff": "^1.0.502"
"codebuff": "^1.0.506"
}
},
"node_modules/chownr": {
@@ -18,9 +18,9 @@
}
},
"node_modules/codebuff": {
"version": "1.0.502",
"resolved": "https://registry.npmjs.org/codebuff/-/codebuff-1.0.502.tgz",
"integrity": "sha512-gI1e7Hf+gnZux9O+NjhkGrR9kXltycLEvwMmULJ+2t72mk1bvDrCjRuzIZ5AFWxUeZsCj/rVtBpoJail9Qz7Og==",
"version": "1.0.506",
"resolved": "https://registry.npmjs.org/codebuff/-/codebuff-1.0.506.tgz",
"integrity": "sha512-9iviqvCGCd6JB3POccbRkaW05NlhTrh1mHDC9UX5nkGDhge9DRUMpjwycg/IX4OsWPdSvR6dkW4p5cLvy1/8OQ==",
"cpu": [
"x64",
"arm64"
+3 -3
View File
@@ -6,14 +6,14 @@
buildNpmPackage rec {
pname = "codebuff";
version = "1.0.502";
version = "1.0.506";
src = fetchzip {
url = "https://registry.npmjs.org/codebuff/-/codebuff-${version}.tgz";
hash = "sha256-2bskaDG7T/27Re1X4ZXsUrcu1WBb1+iuVcAOqWBRw8w=";
hash = "sha256-T+cevGbgTvZGdy8l2C5m3By9WhHIEZ1n2MOhxWzN1Hg=";
};
npmDepsHash = "sha256-zqtV6AB2N8M9WqVc1JpfEOIoAyxoVEY3zO7WQiwwpQc=";
npmDepsHash = "sha256-hGMhkbVpG8ed0VS1gm8VPPGaEq7LapjF/MXS7mUO0HU=";
postPatch = ''
cp ${./package-lock.json} package-lock.json
+3 -3
View File
@@ -14,18 +14,18 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "codex";
version = "0.47.0";
version = "0.50.0";
src = fetchFromGitHub {
owner = "openai";
repo = "codex";
tag = "rust-v${finalAttrs.version}";
hash = "sha256-5AyatNXgHuia656OuSDozQzQv80bNHncgLN1X23bfM4=";
hash = "sha256-8qNQ92VV0aog3USzeAMqWXws7kaQ//6/A/M85USTTXY=";
};
sourceRoot = "${finalAttrs.src.name}/codex-rs";
cargoHash = "sha256-PQ1NxwNBaI48gQ4GGoricA/j7vpsnaLlL6st5P+CTHk=";
cargoHash = "sha256-T6Zt5U2aCJWflwKzTbJXwK+BeE7L6IP4WAmISitrpRg=";
nativeBuildInputs = [
installShellFiles
+2 -2
View File
@@ -55,7 +55,7 @@ let
]
++ lib.optionals cudaSupport [
cudatoolkit
cudaPackages.cuda_cudart.static
(lib.getOutput "static" cudaPackages.cuda_cudart)
]
++ lib.optional stdenv'.cc.isClang llvmPackages.openmp;
@@ -129,7 +129,7 @@ stdenv'.mkDerivation {
mainProgram = "colmap";
homepage = "https://colmap.github.io/index.html";
license = licenses.bsd3;
platforms = platforms.unix;
platforms = if cudaSupport then platforms.linux else platforms.unix;
maintainers = with maintainers; [
lebastr
usertam
+3 -3
View File
@@ -7,18 +7,18 @@
buildGoModule rec {
pname = "crawley";
version = "1.7.13";
version = "1.7.14";
src = fetchFromGitHub {
owner = "s0rg";
repo = "crawley";
rev = "v${version}";
hash = "sha256-36pdesO1jfCMue4Equ+qFpkjN2tXbOpQ32P9a/c+7aA=";
hash = "sha256-2TE7WbW8wm0PSJSLRVIvHd7f8pzJghO40l4LVAtuO0g=";
};
nativeBuildInputs = [ installShellFiles ];
vendorHash = "sha256-IyrySlg2zj+vqrFR821zdysVguh4UZG1bxnC+GVoLr4=";
vendorHash = "sha256-igLEQT08Yeq0WCdK0I8Bsn9NewKM9Dj/Nfh6lsGk+KM=";
ldflags = [
"-w"
+4
View File
@@ -35,6 +35,10 @@ clangStdenv.mkDerivation rec {
hash = "sha256-PLbT1lqdw+69lIHH96MPcGRjfIeZyb88vc875QLYyqw=";
})
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "cmake_minimum_required(VERSION 3.0 FATAL_ERROR)" "cmake_minimum_required(VERSION 3.10)"
'';
nativeBuildInputs = [
cmake
lua
+1 -1
View File
@@ -60,7 +60,7 @@ let
in
[
(lib.cmakeFeature "CUDA${version}_INCLUDE_DIR" "${headers}")
(lib.cmakeFeature "CUDA${version}_LIBS" "${cudaPackages.cuda_cudart.stubs}/lib/stubs/libcuda.so")
(lib.cmakeFeature "CUDA${version}_LIBS" "${lib.getOutput "stubs" cudaPackages.cuda_cudart}/lib/stubs/libcuda.so")
(lib.cmakeFeature "CUDA${version}_STATIC_LIBS" "${lib.getLib cudaPackages.cuda_cudart}/lib/libcudart.so")
(lib.cmakeFeature "CUDA${version}_STATIC_CUBLAS_LIBS" (
lib.concatStringsSep ";" [
+4 -4
View File
@@ -11,16 +11,16 @@
buildGoModule (finalAttrs: {
pname = "discordo";
version = "0-unstable-2025-10-16";
version = "0-unstable-2025-10-22";
src = fetchFromGitHub {
owner = "ayn2op";
repo = "discordo";
rev = "9a1bdac4fbb715374acc88f59e2ca614b72a5b2c";
hash = "sha256-pCY82Xzlq+QVOpr3aTthfcPXjTjuKfO63oqDD7Hl/sc=";
rev = "55e31cfb477ffdb2cdba8fc81db84f45574fe218";
hash = "sha256-x8ZIcMEtnya32BuHN7HgG8WbLu+fPOiFrAAI49alpbM=";
};
vendorHash = "sha256-lYlVr9sKceCaOFpv7owCeaP9PyZWh/U9lUrGjUh98hk=";
vendorHash = "sha256-UVjwirGN1A8SJRLr6L4bweFcwkXJolHrF6kRST2ShRA=";
env.CGO_ENABLED = 0;
+33 -7
View File
@@ -4,17 +4,19 @@
fetchFromGitHub,
fetchpatch,
cmake,
enableStatic ? stdenv.hostPlatform.isStatic,
ninja,
ctestCheckHook,
testers,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "double-conversion";
version = "3.3.1";
src = fetchFromGitHub {
owner = "google";
repo = "double-conversion";
rev = "v${version}";
rev = "v${finalAttrs.version}";
sha256 = "sha256-M80H+azCzQYa4/gBLWv5GNNhEuHsH7LbJ/ajwmACnrM=";
};
@@ -30,22 +32,46 @@ stdenv.mkDerivation rec {
url = "https://github.com/google/double-conversion/commit/0604b4c18815aadcf7f4b78dfa6bfcb91a634ed7.patch";
hash = "sha256-cJBp1ou1O/bMQ/7kvcX52dWbUdhmPfQ9aWmEhQdyhis=";
})
(fetchpatch {
name = "double-conversion-add-pkg-config.patch";
url = "https://github.com/google/double-conversion/commit/ddfd18c58ecc32fc74afc1083bb8774240b54efb.patch";
hash = "sha256-/pKCL19vS8fNwCm27yTNP+32ApHTH5dEGpnsMI11Lf4=";
})
];
nativeBuildInputs = [ cmake ];
outputs = [
"out"
"dev"
];
cmakeFlags = lib.optional (!enableStatic) "-DBUILD_SHARED_LIBS=ON";
nativeBuildInputs = [
cmake
ninja
ctestCheckHook
];
doCheck = true;
cmakeFlags = [
(lib.cmakeBool "BUILD_TESTING" true)
(lib.cmakeBool "BUILD_SHARED_LIBS" stdenv.hostPlatform.hasSharedLibraries)
];
# Case sensitivity issue
preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
rm BUILD
'';
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = with lib; {
pkgConfigModules = [ "double-conversion" ];
description = "Binary-decimal and decimal-binary routines for IEEE doubles";
homepage = "https://github.com/google/double-conversion";
license = licenses.bsd3;
platforms = platforms.unix ++ platforms.windows;
maintainers = [ ];
maintainers = with lib.maintainers; [ fzakaria ];
};
}
})
+180
View File
@@ -0,0 +1,180 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
fetchzip,
autoPatchelfHook,
gitMinimal,
gobject-introspection,
makeWrapper,
nodejs_20,
pnpm_10,
electron,
atk,
atkmm,
cairo,
cairomm,
gdk-pixbuf,
glib,
glibmm,
gtk3,
gtkmm3,
harfbuzz,
libsForQt5,
pango,
pangomm,
xorg,
zlib,
nix-update-script,
commandLineArgs ? "",
}:
let
eSearch-OCR-ch = fetchzip {
url = "https://github.com/xushengfeng/eSearch-OCR/releases/download/4.0.0/ch.zip";
hash = "sha256-0NCXuy8k9/AdpK4ie49S8032u37gNhX6Jc6bOGufrV4=";
stripRoot = false;
};
eSearch-OCR-doc_cls = fetchurl {
url = "https://github.com/xushengfeng/eSearch-OCR/releases/download/8.1.0/doc_cls.onnx";
hash = "sha256-9VFoIq+SYnEeGX/yJKip2IT4BGpjIbdi40+MvwgsRe8=";
};
eSearch-seg = fetchurl {
url = "https://github.com/xushengfeng/eSearch-seg/releases/download/1.0.0/seg.onnx";
hash = "sha256-IJSPX4Kg7wIPjdXVmpGbeSk2y98OS+tJrIth9W+J/Q8=";
};
eSearch-migan_pipeline_v2 = fetchurl {
url = "https://github.com/xushengfeng/eSearch/releases/download/13.1.6/migan_pipeline_v2.onnx";
hash = "sha256-bx81MKGiMksZdSAYznVgiLB5c82o19iQA0rOXIpIxAs=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "e-search";
version = "15.2.1";
src = fetchFromGitHub {
owner = "xushengfeng";
repo = "eSearch";
tag = finalAttrs.version;
hash = "sha256-K4GFLUeq/IbJC3FZBgvKnZq7JrXkqe6eVGsUxxlpWF0=";
};
pnpmDeps = pnpm_10.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 2;
prePnpmInstall = ''
export PATH=$PATH:${gitMinimal}/bin
'';
hash = "sha256-wPwsFY7wvbE1LW5PMwMZKejELtqmdsYO2RVrEuOzdcg=";
};
nativeBuildInputs = [
autoPatchelfHook
gobject-introspection
pnpm_10.configHook
makeWrapper
nodejs_20
];
buildInputs = [
atk
atkmm
cairo
cairomm
gdk-pixbuf
glib
glibmm
gtk3
gtkmm3
harfbuzz
(lib.getLib stdenv.cc.cc)
libsForQt5.kauth
libsForQt5.kcodecs
libsForQt5.kcompletion
libsForQt5.kconfigwidgets
libsForQt5.kcoreaddons
libsForQt5.kitemviews
libsForQt5.kjobwidgets
libsForQt5.kservice
libsForQt5.kwidgetsaddons
libsForQt5.kio
libsForQt5.qt5.qtbase
libsForQt5.qt5.qtnetworkauth
libsForQt5.qt5.qttools
libsForQt5.qt5.qtxmlpatterns
pango
pangomm
xorg.libX11
xorg.libXrandr
xorg.libXt
xorg.libXtst
xorg.libxcb
zlib
];
env = {
ELECTRON_OVERRIDE_DIST_PATH = "${electron}/libexec/electron";
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
};
preBuild = ''
mkdir -p assets/onnx/ppocr assets/onnx/seg assets/onnx/inpaint
cp --recursive --no-preserve=mode ${eSearch-OCR-ch}/* assets/onnx/ppocr
cp --no-preserve=mode ${eSearch-OCR-doc_cls} assets/onnx/ppocr/doc_cls.onnx
cp --no-preserve=mode ${eSearch-seg} assets/onnx/seg/seg.onnx
cp --no-preserve=mode ${eSearch-migan_pipeline_v2} assets/onnx/inpaint/migan_pipeline_v2.onnx
'';
buildPhase = ''
runHook preBuild
npm run build
npm exec electron-builder -- \
--linux \
--dir \
-p never \
--config electron-builder.config.js \
--config.electronDist=${electron.dist} \
--config.electronVersion=${electron.version}
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/eSearch
${
if stdenv.hostPlatform.isAarch64 then
"cp -r build/linux-arm64-unpacked/{resources,LICENSE*} $out/share/eSearch"
else
"cp -r build/linux-unpacked/{resources,LICENSE*} $out/share/eSearch"
}
makeWrapper ${lib.getExe electron} $out/bin/e-search \
--inherit-argv0 \
--add-flags $out/share/eSearch/resources/app \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true --wayland-text-input-version=3}}" \
--add-flags ${lib.escapeShellArg commandLineArgs}
for icon_size in 16x16 32x32 48x48 64x64 128x128 256x256 512x512 1024x1024; do
install -Dm0644 assets/logo/$icon_size.png $out/share/icons/hicolor/$icon_size/apps/e-search.png
done
install -Dm0644 assets/e-search.desktop $out/share/applications/e-search.desktop
runHook postInstall
'';
dontWrapQtApps = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Screenshot OCR search translate search for picture paste the picture on the screen screen recorder";
homepage = "https://github.com/xushengfeng/eSearch";
changelog = "https://github.com/xushengfeng/eSearch/releases/tag/${finalAttrs.version}";
mainProgram = "e-search";
platforms = lib.platforms.linux;
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ qzylinra ];
};
})
+2 -2
View File
@@ -23,13 +23,13 @@
stdenv.mkDerivation rec {
pname = "eid-mw";
# NOTE: Don't just blindly update to the latest version/tag. Releases are always for a specific OS.
version = "5.1.23";
version = "5.1.25";
src = fetchFromGitHub {
owner = "Fedict";
repo = "eid-mw";
rev = "v${version}";
hash = "sha256-nZn3LSXn8g0mtorJZjE9nc8vf99buwvW1fdxHOAsIwU=";
hash = "sha256-LdOfwgRGyNK+a4SByClPgH9SrDeCdnhI9sLO7agsNsA=";
};
postPatch = ''
+2 -2
View File
@@ -7,13 +7,13 @@
buildGoModule rec {
pname = "fn";
version = "0.6.43";
version = "0.6.44";
src = fetchFromGitHub {
owner = "fnproject";
repo = "cli";
rev = version;
hash = "sha256-8JvrCY56i6Nksg+LgfIIpUZozUF0IBfdG8rKMuYUrzI=";
hash = "sha256-UfvBkUZ09mKM+84e89VFE+KZr0ora8eUWiJlYO11USQ=";
};
vendorHash = null;
+2 -2
View File
@@ -71,11 +71,11 @@ in
stdenv.mkDerivation rec {
pname = "gap";
# https://www.gap-system.org/Releases/
version = "4.14.0";
version = "4.15.1";
src = fetchurl {
url = "https://github.com/gap-system/gap/releases/download/v${version}/gap-${version}.tar.gz";
sha256 = "sha256-hF9ScsJv6xuOue8pS/BUXyZMH+WhmwYBu8ZdedlQZIc=";
hash = "sha256-YEnVPpmxLiXC2EjbIaxKBjgKRv5MQVckPVVv4GkwBCw=";
};
# remove all non-essential packages (which take up a lot of space)
+3 -3
View File
@@ -12,16 +12,16 @@
buildNpmPackage rec {
pname = "gitlab-ci-local";
version = "4.62.0";
version = "4.63.0";
src = fetchFromGitHub {
owner = "firecow";
repo = "gitlab-ci-local";
rev = version;
hash = "sha256-JcCfrrb/xAvILfHgnKoRxjWG4fvi4kVg0W+s+y25A6Y=";
hash = "sha256-IqfCEU/ZX28CAAFW9Wx9QFQY4E5iYKC5Ac0m7AuubNk=";
};
npmDepsHash = "sha256-J/my72RPPwg1r1t4vO3CgMnGDP7H/Cc3apToypaK1YI=";
npmDepsHash = "sha256-0XV9jT1Ps8TPhl4pKN92v6mbMT37EcXdcn+GUo2wprg=";
nativeBuildInputs = [
makeBinaryWrapper
+7 -3
View File
@@ -6,7 +6,6 @@
lib,
}:
let
inherit (lib.attrsets) getBin;
inherit (lib.lists) last map optionals;
inherit (lib.trivial) boolToString;
inherit (config) cudaSupport;
@@ -36,7 +35,11 @@ backendStdenv.mkDerivation {
substituteInPlace gpu_burn-drv.cpp \
--replace-fail \
'#define COMPARE_KERNEL "compare.ptx"' \
"#define COMPARE_KERNEL \"$out/share/compare.ptx\""
'#define COMPARE_KERNEL "${placeholder "out"}/share/compare.ptx"'
substituteInPlace Makefile \
--replace-fail \
'${''''${CUDAPATH}/bin/nvcc''}' \
'${lib.getExe cuda_nvcc}'
'';
nativeBuildInputs = [
@@ -52,7 +55,8 @@ backendStdenv.mkDerivation {
];
makeFlags = [
"CUDAPATH=${getBin cuda_nvcc}"
# NOTE: CUDAPATH assumes cuda_cudart is a single output containing all of lib, dev, and stubs.
"CUDAPATH=${cuda_cudart}"
"COMPUTE=${last (map dropDots cudaCapabilities)}"
"IS_JETSON=${boolToString isJetsonBuild}"
];
+3 -3
View File
@@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "grype";
version = "0.101.1";
version = "0.102.0";
src = fetchFromGitHub {
owner = "anchore";
repo = "grype";
tag = "v${finalAttrs.version}";
hash = "sha256-EbRkK8qTEP1UICqHs4V4xteh/bUh3WxlRihPtUcJw6M=";
hash = "sha256-aYY/AYHbPWs5Rtbfsvam0lE3WzcJHt6LHQ6us2dukFI=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@@ -32,7 +32,7 @@ buildGoModule (finalAttrs: {
proxyVendor = true;
vendorHash = "sha256-Zqtd10KrmAH5yOvKnCl8w8neLsQPylr4lFAU5OTm7Kk=";
vendorHash = "sha256-N/J+Y3PohhnChOIEn4ZITaKEK62gwuApNf1XEZVL23k=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "inadyn";
version = "2.12.0";
version = "2.13.0";
src = fetchFromGitHub {
owner = "troglobit";
repo = "inadyn";
rev = "v${version}";
sha256 = "sha256-aQHJtnMDaHF1XY9lwQVR6f78Zk2UI7OC3Oxt1r1KMak=";
sha256 = "sha256-R+DlhRZOwL/hBZAu4L7w7DAoHy1/1m8wsidSxByO74E=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec {
pname = "integrity-scrub";
version = "0.6.5";
version = "0.6.6";
src = fetchFromGitHub {
owner = "illdefined";
repo = "integrity-scrub";
tag = version;
hash = "sha256-oWS6HxdZ8tGeIRGpfHHkNhNdepBjhhdgTjKmxElNPbk=";
hash = "sha256-OLO64R9AYpHSkIwk2arka5EEzCWusZPWsBhy5HEDIQI=";
};
cargoHash = "sha256-3LC3eZNmHG6OFIvQzmvs4BCSX0CVpwaYhZM2H2YoY4M=";
cargoHash = "sha256-sS4z5NImUdk0EnQ+BGPofFZtXZsomfUXXbHNDmVqAos=";
nativeInstallCheckInputs = [ versionCheckHook ];
@@ -49,6 +49,9 @@ stdenv.mkDerivation rec {
zita-resampler
];
# Fix linking issues with C++ code generated by Faust
env.NIX_LDFLAGS = "-lstdc++ -lm";
meta = with lib; {
description = "Set of LADSPA and LV2 plugins for guitar sound processing";
homepage = "https://github.com/olegkapitonov/Kapitonov-Plugins-Pack";
+5
View File
@@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "CMAKE_MINIMUM_REQUIRED(VERSION 2.6)" "cmake_minimum_required(VERSION 3.10)"
'';
meta = with lib; {
description = "Fast and Reliable ARQ Protocol";
homepage = "https://github.com/skywind3000/kcp";
+8
View File
@@ -55,6 +55,14 @@ effectiveStdenv.mkDerivation (finalAttrs: {
python3Packages.wrapPython
];
postPatch = ''
nixLog "patching $PWD/Makefile to remove explicit linking against CUDA driver"
substituteInPlace "$PWD/Makefile" \
--replace-fail \
'CUBLASLD_FLAGS = -lcuda ' \
'CUBLASLD_FLAGS = '
'';
pythonInputs = builtins.attrValues { inherit (python3Packages) tkinter customtkinter packaging; };
buildInputs = [
+2 -2
View File
@@ -15,7 +15,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lean4";
version = "4.23.0";
version = "4.24.0";
# Using a vendored version rather than nixpkgs' version to match the exact version required by
# Lean. Apparently, even a slight version change can impact greatly the final performance.
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "leanprover";
repo = "lean4";
tag = "v${finalAttrs.version}";
hash = "sha256-wcB3HxSNukIOttjrfvDQB5IkmhYG9w/UMeOfCQ1+lvo=";
hash = "sha256-m0DjKjFia5F5rCVMgn2xxPbbU/5uy7g84FUXSBPgy3w=";
};
postPatch =
+4 -2
View File
@@ -3,18 +3,19 @@
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
boehmgc,
}:
stdenv.mkDerivation rec {
version = "1.02r6";
version = "1.03";
pname = "libhomfly";
src = fetchFromGitHub {
owner = "miguelmarco";
repo = "libhomfly";
rev = version;
sha256 = "sha256-s1Hgy6S9+uREKsgjOVQdQfnds6oSLo5UWTrt5DJnY2s=";
hash = "sha256-lav/c5i4TXiQSp4r376sy7s+xLO85GutTb/UZJ70gh8=";
};
buildInputs = [
@@ -23,6 +24,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
autoreconfHook
pkg-config
];
doCheck = true;
+9 -9
View File
@@ -1,21 +1,21 @@
{
"version": "3.167.0",
"version": "3.168.1",
"assets": {
"x86_64-linux": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.167.0/mirrord_linux_x86_64",
"hash": "sha256-7LxoI0y82Hy2Vi7SveKgkKw1Bv5AzcMceBbV1FDhock="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.168.1/mirrord_linux_x86_64",
"hash": "sha256-guBC7Zuh5xT+d/lcJVwDLZ++tMy97mcLZo31XkkU2HM="
},
"aarch64-linux": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.167.0/mirrord_linux_aarch64",
"hash": "sha256-a4SuVF1e02IjAt//DgSdJ3dy4GfDaNhOHOwrZHio7OY="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.168.1/mirrord_linux_aarch64",
"hash": "sha256-ScKDz4nc4N0mjdaN2mBIJfXckZJZkQ32OValSl3JbQ8="
},
"aarch64-darwin": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.167.0/mirrord_mac_universal",
"hash": "sha256-pqIjHduZMwsR6zXEURkKfixkY+FLy4oIE+aPPUX904M="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.168.1/mirrord_mac_universal",
"hash": "sha256-tSpVWlfbJQi2Ww1Ovc2BPXfeb/Bm7vgfDDPKyMfLZMg="
},
"x86_64-darwin": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.167.0/mirrord_mac_universal",
"hash": "sha256-pqIjHduZMwsR6zXEURkKfixkY+FLy4oIE+aPPUX904M="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.168.1/mirrord_mac_universal",
"hash": "sha256-tSpVWlfbJQi2Ww1Ovc2BPXfeb/Bm7vgfDDPKyMfLZMg="
}
}
}
+9
View File
@@ -46,6 +46,15 @@ stdenv.mkDerivation {
rm CMake/Modules/FindTBB.cmake
substituteInPlace CMake/Modules/CMakeLists.txt \
--replace-fail '"FindTBB.cmake"' ""
substituteInPlace CMakeLists.txt \
--replace-fail "cmake_minimum_required(VERSION 3.4 FATAL_ERROR)" "cmake_minimum_required(VERSION 3.10)"
substituteInPlace CMake/Basis/{BasisSettings.cmake,ProjectTools.cmake,configure_script.cmake.in} \
--replace-fail "cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR)" "cmake_minimum_required(VERSION 3.10)"
substituteInPlace {ThirdParty/LBFGS,Packages/Deformable,Packages/Mapping,Packages/Scripting,Packages/Viewer}/CMakeLists.txt \
--replace-fail "cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)" "cmake_minimum_required(VERSION 3.10)"
'';
postInstall = ''
-79
View File
@@ -1,79 +0,0 @@
{
lib,
stdenv,
cmake,
fetchFromGitLab,
json_c,
libsodium,
libxml2,
ncurses,
}:
let
rev = "22796663dcad81684ab24308d9db570f6781ba2c";
in
stdenv.mkDerivation rec {
name = "mpw-${version}-${builtins.substring 0 8 rev}";
version = "2.6";
src = fetchFromGitLab {
owner = "MasterPassword";
repo = "MasterPassword";
sha256 = "1f2vqacgbyam1mazawrfim8zwp38gnwf5v3xkkficsfnv789g6fw";
inherit rev;
};
sourceRoot = "${src.name}/platform-independent/c/cli";
postPatch = ''
rm build
substituteInPlace mpw-cli-tests \
--replace '/usr/bin/env bash' ${stdenv.shell} \
--replace ./mpw ./build/mpw
'';
cmakeFlags = [
"-Dmpw_version=${version}"
"-DBUILD_MPW_TESTS=ON"
];
nativeBuildInputs = [ cmake ];
buildInputs = [
json_c
libxml2
libsodium
ncurses
];
installPhase = ''
runHook preInstall
install -Dm755 mpw $out/bin/mpw
install -Dm644 ../mpw.completion.bash $out/share/bash-completion/completions/_mpw
install -Dm644 ../../../../README.md $out/share/doc/mpw/README.md
runHook postInstall
'';
# Some tests are expected to fail on ARM64
# See: https://gitlab.com/spectre.app/cli/-/issues/27#note_962950844 (mpw is a predecessor to spectre-cli and this issue is relevant to mpw as well)
doCheck = !(stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
checkPhase = ''
runHook preCheck
../mpw-cli-tests
runHook postCheck
'';
meta = with lib; {
description = "Stateless password management solution";
mainProgram = "mpw";
homepage = "https://masterpasswordapp.com/";
license = licenses.gpl3;
platforms = platforms.unix;
};
}
@@ -70,13 +70,13 @@ lib.checkListOfEnum "${pname}: colorVariants" colorVariantList colorVariants lib
stdenvNoCC.mkDerivation
{
inherit pname;
version = "0-unstable-2025-10-14";
version = "0-unstable-2025-10-23";
src = fetchFromGitHub {
owner = "Fausto-Korpsvart";
repo = "Nightfox-GTK-Theme";
rev = "0ca46a44ec83bb44b3ae687aaa756dcd528349be";
hash = "sha256-j7hWzwgSdoCEdMFDp6sJ1O01bRX7peUmJXh3qoR5L1c=";
rev = "f0212f2aa0d3d6cc0b313020d2d0122f313eafc9";
hash = "sha256-KZR5vuMQnLa7AK77YB11BqgqwQHVVFfIe/rXzcocbwk=";
};
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+3 -3
View File
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "nixpacks";
version = "1.40.0";
version = "1.41.0";
src = fetchFromGitHub {
owner = "railwayapp";
repo = "nixpacks";
rev = "v${version}";
hash = "sha256-vF0vkUuvQR5z3v7LJmzpuvyLjuDjUL3HFIUzRKPojCs=";
hash = "sha256-y2zrXS56fSsPaVmJcUxTMYhOroYjcNKepuI9tmdORsY=";
};
cargoHash = "sha256-lVdGIQxRREG7EYtQAzXzBx3Mg5bRopIe5rlGkNY3kTI=";
cargoHash = "sha256-Oom7CC8WBHd3hEQ62hQU91YbC4ydtdQuhAH6LFRN+P8=";
# skip test due FHS dependency
doCheck = false;
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "nmap-formatter";
version = "3.0.5";
version = "3.1.0";
src = fetchFromGitHub {
owner = "vdjagilev";
repo = "nmap-formatter";
rev = "v${version}";
hash = "sha256-jpgAcnDDVVboZEMkLIE9ei0oT91Y9yp8KUJkH6LQSY4=";
hash = "sha256-qai8HbVJJLFH5cNiG24fBjq5++6mvlhpT+4hlvx+gGI=";
};
vendorHash = "sha256-xOS59co6FE2lJae2VtsBKcGjvmMRiGlmZKbqH++mEYk=";
vendorHash = "sha256-q94ET4oMYvF3eCJ358EznwL++vwdCeEAu5UquGChCc0=";
meta = {
description = "Tool that allows you to convert nmap output";
@@ -13,16 +13,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "oklch-color-picker";
version = "2.2.1";
version = "2.3.0";
src = fetchFromGitHub {
owner = "eero-lehtinen";
repo = "oklch-color-picker";
tag = "${finalAttrs.version}";
hash = "sha256-tPYxcZghGR1YZl1bwoDDIBmbTVGuksCpfgLYwG+k4Ws=";
hash = "sha256-dbsE1mYt/GhpkWIBS6MejiKKKz1B+h/3wqGKHCp0p2Q=";
};
cargoHash = "sha256-tdIkvBYKfcbCYXhDbIwXNNbNb4X32uBwDh3mAyqt/IM=";
cargoHash = "sha256-R1nQAm1rw2hkhxeyzgXCTLF+gXdH1tr6DCv/L8b9D+s=";
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
+3 -8
View File
@@ -23,7 +23,7 @@
darwinMinVersionHook,
pythonSupport ? true,
cudaSupport ? config.cudaSupport,
ncclSupport ? config.cudaSupport,
ncclSupport ? cudaSupport && cudaPackages.nccl.meta.available,
withFullProtobuf ? false,
cudaPackages ? { },
}@inputs:
@@ -154,12 +154,7 @@ effectiveStdenv.mkDerivation rec {
cudnn # cudnn.h
cuda_cudart
]
++ lib.optionals (cudaSupport && ncclSupport) (
with cudaPackages;
[
nccl
]
)
++ lib.optionals ncclSupport [ nccl ]
)
++ lib.optionals effectiveStdenv.hostPlatform.isDarwin [
(darwinMinVersionHook "13.3")
@@ -270,7 +265,7 @@ effectiveStdenv.mkDerivation rec {
'';
passthru = {
inherit cudaSupport cudaPackages; # for the python module
inherit cudaSupport cudaPackages ncclSupport; # for the python module
inherit protobuf;
tests = lib.optionalAttrs pythonSupport {
python = python3Packages.onnxruntime;
+3 -2
View File
@@ -123,8 +123,9 @@ stdenv.mkDerivation (finalAttrs: {
# TODO: add UCX support, which is recommended to use with cuda for the most robust OpenMPI build
# https://github.com/openucx/ucx
# https://www.open-mpi.org/faq/?category=buildcuda
(lib.withFeatureAs cudaSupport "cuda" (lib.getDev cudaPackages.cuda_cudart))
(lib.withFeatureAs cudaSupport "cuda-libdir" "${cudaPackages.cuda_cudart.stubs}/lib")
# NOTE: Open MPI requires the header files specifically, which are in the `include` output.
(lib.withFeatureAs cudaSupport "cuda" (lib.getOutput "include" cudaPackages.cuda_cudart))
(lib.withFeatureAs cudaSupport "cuda-libdir" "${lib.getLib cudaPackages.cuda_cudart}/lib")
(lib.enableFeature cudaSupport "dlopen")
(lib.withFeatureAs fabricSupport "psm2" (lib.getDev libpsm2))
(lib.withFeatureAs fabricSupport "ofi" (lib.getDev libfabric))
+2 -2
View File
@@ -8,7 +8,7 @@
let
pname = "p3x-onenote";
version = "2025.10.101";
version = "2025.10.103";
plat =
{
@@ -22,7 +22,7 @@ let
{
aarch64-linux = "sha256-FB6+0Ze3d/6QETgtMtc6GztnPdSy5s7k67qsAtFdsyM=";
armv7l-linux = "sha256-Q45tfcGrNjd9wXt+VhXhaHrC4w68lRUIuB4cJSW5NDE=";
x86_64-linux = "sha256-h2U9EctjyM4FlVe/pPMWugCIe9tQ4Av4/HOcWWSUNEI=";
x86_64-linux = "sha256-sDzwEhoPEfa21zBwD0IYoRdz4VHeTSUL0biHbbWE+Dc=";
}
.${stdenv.hostPlatform.system};
+2 -2
View File
@@ -11,13 +11,13 @@
buildGo125Module (finalAttrs: {
pname = "pocket-id";
version = "1.14.0";
version = "1.14.1";
src = fetchFromGitHub {
owner = "pocket-id";
repo = "pocket-id";
tag = "v${finalAttrs.version}";
hash = "sha256-5F3XchB3kl54Sm45yD9giRd1K3xwPNhFAVYILyY3f2Q=";
hash = "sha256-PnZKlJ6smwpgijqQM5xTcopyGJfO2pebiEJhEIdAOFk=";
};
sourceRoot = "${finalAttrs.src.name}/backend";
+2 -2
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "qtalarm";
version = "3.0.0";
version = "3.0.1";
src = fetchFromGitHub {
owner = "CountMurphy";
repo = "QTalarm";
tag = finalAttrs.version;
hash = "sha256-lliVj9OaddkQgSzJ8F6A06V/seRnDqGJkxj4cKoDdyo=";
hash = "sha256-IN/XdR8J5uMIAjb1G2kzuLDtO972RLKSy3Ceh9CcHWw=";
};
buildInputs = [
+5
View File
@@ -16,6 +16,11 @@ stdenv.mkDerivation rec {
hash = "sha256-NK7jB5ijcu9OObmfLgiWxlJi4cVAhr7p6m9HKf+5TnQ=";
};
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "cmake_minimum_required(VERSION 3.1)" "cmake_minimum_required(VERSION 3.10)"
'';
nativeBuildInputs = [ cmake ];
meta = {
+11 -3
View File
@@ -34,9 +34,17 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [ gmp ];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
buildFlags = lib.optionals stdenv.hostPlatform.isDarwin [
"CCFLAGS2=-lgmp -lc -lm"
"CCFLAGS=-UUSE_SSE"
buildFlags = [
"CCFLAGS1=${
if stdenv.hostPlatform.avx512Support then
"-DUSE_AVX512 -mavx512f"
else if stdenv.hostPlatform.avx2Support then
"-DUSE_AVX -mavx2"
else if stdenv.hostPlatform.avxSupport then
"-DUSE_AVX -mavx"
else
"-DUSE_SSE"
}"
];
installFlags = [ "INSTALL_DIR=$(out)" ];
+2 -2
View File
@@ -7,12 +7,12 @@
stdenv,
}:
let
version = "25.2.9";
version = "25.2.10";
src = fetchFromGitHub {
owner = "redpanda-data";
repo = "redpanda";
rev = "v${version}";
sha256 = "sha256-wjYYpFCuHd7r9d0s3rT7CTyRzVviO6g6t9i+R/5+aXQ=";
sha256 = "sha256-kw/nQjIwNZGEfFRmBqNdXQPVadK0BQY3ha6S4E0Bc8A=";
};
in
buildGoModule rec {
+3 -3
View File
@@ -34,13 +34,13 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rerun";
version = "0.26.1";
version = "0.26.2";
src = fetchFromGitHub {
owner = "rerun-io";
repo = "rerun";
tag = finalAttrs.version;
hash = "sha256-T4Ko0CDaKSEadaKB3JtTK9b2dRT9eJ7ThXEVipCRdBU=";
hash = "sha256-o+aV7YcsunaG3n2m8oTXug/kR3IU+ty9NYCkG/vEzyM=";
};
# The path in `build.rs` is wrong for some reason, so we patch it to make the passthru tests work
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
--replace-fail '"rerun_sdk/rerun_cli/rerun"' '"rerun_sdk/rerun"'
'';
cargoHash = "sha256-c234pbC5wNKsWwt049Zmk3gaAEb+obkkwAqefRmsu2A=";
cargoHash = "sha256-EH/R+OgLeLNrZnkIGqutTo4K9XzhW+CGwG/uQKwWGXA=";
cargoBuildFlags = [ "--package rerun-cli" ];
cargoTestFlags = [ "--package rerun-cli" ];
+3 -3
View File
@@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "riffdiff";
version = "3.5.0";
version = "3.5.1";
src = fetchFromGitHub {
owner = "walles";
repo = "riff";
tag = version;
hash = "sha256-qA20sLiGqDtIPWBNww+WXM5AG162RPTdkUPoJ0PLiYY=";
hash = "sha256-SRr4yFv6fulBN/HNM3uCVLXS6pcspi5X5hXvQJg1sDI=";
};
cargoHash = "sha256-omwKOstRXIAUDgLUFqmtxu77JJzAOASzbjLEImad1cE=";
cargoHash = "sha256-86nBxitdA8deJHRQqLM/JWcpSX/u6C4cofJAbYj5Ijs=";
passthru = {
tests.version = testers.testVersion { package = riffdiff; };
+3 -3
View File
@@ -7,16 +7,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rkik";
version = "1.1.1";
version = "1.2.0";
src = fetchFromGitHub {
owner = "aguacero7";
repo = "rkik";
tag = "v${finalAttrs.version}";
hash = "sha256-zC06Wt8XNpSSru7GUC2VAiP6t6fuWdpinXoIuBSk7kw=";
hash = "sha256-bT1WTs/gei8CGundLynVgekNFlyY8p/mK73Utrw8N9I=";
};
cargoHash = "sha256-XMO7imFg/f+1KzNTrGLzxZ3yRSvD2WxSKpHCIT99xEk=";
cargoHash = "sha256-iu9vADHhems0pzQ0Hs+Zp0dZ4K185M5L4fftBaAZdvE=";
passthru.updateScript = nix-update-script { };
+7
View File
@@ -75,6 +75,13 @@ stdenv.mkDerivation rec {
# should come from or be proposed to upstream. This list will probably never
# be empty since dependencies update all the time.
packageUpgradePatches = [
# https://github.com/sagemath/sage/pull/40919, landed in 10.8.beta8
(fetchpatch2 {
name = "gap-4.15.1-update.patch";
url = "https://github.com/sagemath/sage/commit/54d4ddb132cc71ef26b4db1f48afd6736d41cc63.patch?full_index=1";
hash = "sha256-PZyOXRsgcsPvgceGGZXet5URJgWiIlCfFx8tvwpLk5A=";
excludes = [ "src/doc/zh/constructions/rep_theory.rst" ];
})
];
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "sdl_gamecontrollerdb";
version = "0-unstable-2025-09-13";
version = "0-unstable-2025-10-26";
src = fetchFromGitHub {
owner = "mdqinc";
repo = "SDL_GameControllerDB";
rev = "38fc811c715365e963a6942092cae147eddddc90";
hash = "sha256-dyOzv9cloQuLOuq8CExXQxloNJ02VgoxWiBHeNrSZcA=";
rev = "e40b8910f859cd988124def50dcdb63b2f2ff48b";
hash = "sha256-mSTRTtoFaYXS2ywe7g68dKuJD6FG3436HDip4cm8MeM=";
};
dontBuild = true;
+2 -2
View File
@@ -12,12 +12,12 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "signal-cli";
version = "0.13.20";
version = "0.13.21";
# Building from source would be preferred, but is much more involved.
src = fetchurl {
url = "https://github.com/AsamK/signal-cli/releases/download/v${finalAttrs.version}/signal-cli-${finalAttrs.version}.tar.gz";
hash = "sha256-MFgR2c+XhzgxO6jv7e30rTf7bRVa5gxnzVOLnemXYY8=";
hash = "sha256-c5oRMzrQ3cZ6nl0Qlo6DrDT0D6lAyZbuI1G1P8C0558=";
};
buildInputs = lib.optionals stdenvNoCC.hostPlatform.isLinux [
+12 -6
View File
@@ -3,16 +3,22 @@
stdenv,
fetchFromGitLab,
python3Packages,
arpack-mpi,
arpack,
petsc,
mpi,
mpiCheckPhaseHook,
pythonSupport ? false,
withExamples ? false,
withArpack ? stdenv.hostPlatform.isLinux,
}:
assert petsc.mpiSupport;
assert pythonSupport -> petsc.pythonSupport;
let
slepcPackages = petsc.petscPackages.overrideScope (
final: prev: {
inherit pythonSupport;
mpiSupport = true;
arpack = final.callPackage arpack.override { useMpi = true; };
}
);
in
stdenv.mkDerivation (finalAttrs: {
pname = "slepc";
version = "3.24.0";
@@ -50,10 +56,10 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [
mpi
slepcPackages.mpi
]
++ lib.optionals withArpack [
arpack-mpi
slepcPackages.arpack
];
propagatedBuildInputs = [
+3 -3
View File
@@ -34,7 +34,7 @@
# enable internal X11 support via libssh2
enableX11 ? true,
enableNVML ? config.cudaSupport,
nvml,
cudaPackages,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -110,8 +110,8 @@ stdenv.mkDerivation (finalAttrs: {
++ lib.optionals enableNVML [
(runCommand "collect-nvml" { } ''
mkdir $out
ln -s ${lib.getDev nvml}/include $out/include
ln -s ${lib.getLib nvml}/lib/stubs $out/lib
ln -s ${lib.getOutput "include" cudaPackages.cuda_nvml_dev}/include $out/include
ln -s ${lib.getOutput "stubs" cudaPackages.cuda_nvml_dev}/lib/stubs $out/lib
'')
];
+3 -3
View File
@@ -7,7 +7,7 @@
buildGoModule rec {
pname = "smug";
version = "0.3.8";
version = "0.3.11";
subPackages = [ "." ];
@@ -15,10 +15,10 @@ buildGoModule rec {
owner = "ivaaaan";
repo = "smug";
rev = "v${version}";
sha256 = "sha256-m6yK7WPfrItIR3ULJgnw+oysX+zlotiIZMyr4SkPPdM=";
sha256 = "sha256-NUnabx71q/yrkGsdYa9qruyTLjk/sJBvV7bzoKn+eLo=";
};
vendorHash = "sha256-vaDUzVRmpmNn8/vUPeR1U5N6T4llFRIk9A1lum8uauU=";
vendorHash = "sha256-N6btfKjhJ0MkXAL4enyNfnJk8vUeUDCRus5Fb7hNtug=";
nativeBuildInputs = [ installShellFiles ];
@@ -5,7 +5,7 @@
cmake,
}:
let
version = "11.11.1";
version = "12.0.0";
in
stdenv.mkDerivation (finalAttrs: {
pname = "source-meta-json-schema";
@@ -15,7 +15,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "sourcemeta";
repo = "jsonschema";
rev = "v${version}";
hash = "sha256-JB37vOFoThc3wsaeMJ/BqGO27HQaA8bqtaA2avNSn7A=";
hash = "sha256-fhY/DNuQWzVWQC/Ur0Ksp5eW3S7flV2jEaVQiva160Q=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -6,13 +6,13 @@
}:
buildGoModule {
pname = "starlark";
version = "0-unstable-2025-09-06";
version = "0-unstable-2025-10-24";
src = fetchFromGitHub {
owner = "google";
repo = "starlark-go";
rev = "bf296ed553ea1715656054a7f64ac6a6dd161360";
hash = "sha256-ijZvmR9oFsIvpindO1RSi01USr2bhBATvVEQtYlgP/A=";
rev = "6d2315cd1916ff6bc9ab3d6b3415e29da31df64d";
hash = "sha256-GAxcKJHrvTPK2IvK3AEhNvYcFZw7mkaubXNiFnsiqDo=";
};
vendorHash = "sha256-8drlCBy+KROyqXzm/c+HBe/bMVOyvwRoLHxOApJhMfo=";
+5 -5
View File
@@ -1,7 +1,7 @@
{
"version": "0.28.1",
"gitHash": "cc6917f2",
"srcHash": "sha256-hUx4y7VzsZYbykt9eOdwho0f/Xueh2eh7QykCsgt62A=",
"yarnHash": "sha256-MEyhPPzqJH7lNB5CLMbehjJXU/HQUNsFtPrl670kTvA=",
"vendorHash": "sha256-bD2YpsrksvDWvrokvRBGdnAUNJ5XHD/jDrF5dSCESr0="
"version": "0.29.1",
"gitHash": "869cbd49",
"srcHash": "sha256-OM2tpa8m4QuUs/HABRt8t/WHNeHWtrbJPZvlKBHcj9Y=",
"yarnHash": "sha256-E5JJZa+P83CnNDyhfrMwjC0xoXIV2DfyslQTLard4uE=",
"vendorHash": "sha256-1YVtA+kE7QHW/ACr9GPh7P0yQHdmF2NdrQR06ke2idY="
}
+2 -2
View File
@@ -22,7 +22,7 @@ let
requests-mock
;
version = "4.137";
version = "4.151";
in
@@ -35,7 +35,7 @@ buildPythonApplication {
owner = "spaam";
repo = "svtplay-dl";
rev = version;
hash = "sha256-KBX2YfDyEu9nwlaZlOw+4FKy+hhLncVr8xhXn7XhvAU=";
hash = "sha256-MqV49Xi0pwP8kVXPPmOOYvZpQ6ZtWbeWZc+Qo0i30/g=";
};
build-system = [ setuptools ];
@@ -21,6 +21,7 @@
libpulseaudio,
libxkbcommon,
libgbm,
libvdpau,
nss,
pipewire,
udev,
@@ -55,6 +56,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
libpulseaudio
libxkbcommon
libgbm
libvdpau
nss
pipewire
xorg.libX11
@@ -104,6 +106,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
udev
libGL
libpulseaudio
libvdpau
pipewire
]
}"
+2 -2
View File
@@ -7,13 +7,13 @@
}:
buildGo125Module (finalAttrs: {
pname = "terragrunt";
version = "0.91.1";
version = "0.91.5";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = "terragrunt";
tag = "v${finalAttrs.version}";
hash = "sha256-GbPPBEl41p3sI31WuGquvnI+pVQ5zXpGey7zHjsKfw8=";
hash = "sha256-/XvqS3lTeoSuqF5NDcXmh2H60AOXn15jETKMUSaJx1w=";
};
nativeBuildInputs = [
+28 -37
View File
@@ -1,26 +1,23 @@
{
lib,
stdenv,
python312,
makeWrapper,
nix-update-script,
fetchFromGitHub,
rustPlatform,
buildNpmPackage,
nodejs_24,
wrapGAppsHook3,
libappindicator-gtk3,
}:
let
version = "8.2.3";
version = "8.2.3-unstable-2025-10-14";
python3 = python312;
nodejs = nodejs_24;
src = fetchFromGitHub {
owner = "tribler";
repo = "Tribler";
tag = "v${version}";
hash = "sha256-yThl3HhPtwi/pK5Rcr2ClVLY8uCnIyfvdc53A8gjKDg=";
rev = "3e5bc56a15c568d0ba41262cad63155445e062da";
hash = "sha256-zGh2nVcJyOwVfPEdU8ZDgANFt0KnTqEXU3I3ZOGot2c=";
};
tribler-webui = buildNpmPackage {
@@ -59,7 +56,6 @@ python3.pkgs.buildPythonApplication {
dependencies = with python3.pkgs; [
# requirements.txt
bitarray
configobj
pyipv8
ipv8-rust-tunnels
@@ -68,12 +64,17 @@ python3.pkgs.buildPythonApplication {
pillow
pony
pystray
# build/requirements.txt
cx-freeze
requests
];
nativeBuildInputs = [ wrapGAppsHook3 ];
buildInputs = with python3.pkgs; [
# setup.py requirements
pygobject3
setuptools
# sphinx requirements
sphinxHook
sphinx
@@ -81,43 +82,40 @@ python3.pkgs.buildPythonApplication {
sphinx-rtd-theme
astroid
# tray icon deps
wrapGAppsHook3
libappindicator-gtk3
# test phase requirements
pytestCheckHook
];
outputs = [
"out"
];
postPatch = ''
# fix the entrypoint
substituteInPlace build/setup.py --replace-fail '"tribler=tribler.run:main"' '"tribler=tribler.run:main_sync"'
substituteInPlace src/run_tribler.py --replace-fail 'if __name__ == "__main__":' 'def main_sync():'
# ValueError: ZIP does not support timestamps before 1980
substituteInPlace build/win/build.py --replace-fail "if {'setup.py', 'bdist_wheel'}.issubset(sys.argv):" "if True:"
# copy the built webui
rm -r src/tribler/ui
ln -s ${tribler-webui} src/tribler/ui
'';
buildPhase = ''
# fix the entrypoint
substituteInPlace build/setup.py --replace-fail '"tribler=tribler.run:main"' '"tribler=tribler.run:main_sync"'
substituteInPlace src/run_tribler.py --replace-fail 'if __name__ == "__main__":' 'def main_sync():'
runHook preBuild
# copy the built webui
rm -r src/tribler/ui
ln -s ${tribler-webui} src/tribler/ui
export GITHUB_TAG=v${version}
python3 build/debian/update_metainfo.py
python3 build/setup.py bdist_wheel
# build the docs
# FIXME: make doc SPHINXBUILD=${lib.getExe' python3.pkgs.sphinx "sphinx-build"}
# build the wheel
substituteInPlace build/win/build.py --replace-fail "if {'setup.py', 'bdist_wheel'}.issubset(sys.argv):" "if True:"
export GITHUB_TAG=v${version}
python3 build/debian/update_metainfo.py
python3 build/setup.py bdist_wheel
runHook pytestCheckHook
# build the docs
runHook sphinxHook
runHook postBuild
'';
postInstall = ''
ln -s ${tribler-webui} $out/lib/python3.12/site-packages/tribler/ui
ln -s ${tribler-webui} $out/lib/python*/site-packages/tribler/ui
'';
preFixup = ''
@@ -126,10 +124,6 @@ python3.pkgs.buildPythonApplication {
)
'';
postFixup = ''
runHook wrapGAppsHook3
'';
disabledTests = [
"test_request_for_version"
"test_establish_connection"
@@ -139,9 +133,6 @@ python3.pkgs.buildPythonApplication {
"test_get_set_explicit"
];
disabledTestPaths = [
];
passthru.updateScript = nix-update-script { };
meta = {
@@ -0,0 +1,37 @@
commit 111bb8d98b4ff1897c36ff23806c492e9a313457
Author: Will Dillon <william@housedillon.com>
Date: Mon Aug 11 13:58:40 2025 -0700
Update CMAKE version
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ea0dfa6..9f1bcb3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,7 +20,7 @@
#
#top level cmake project for ubertooth lib + tools
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.10)
project(ubertooth_all)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules
CACHE STRING "CMake module path")
diff --git a/misc/CMakeLists.txt b/misc/CMakeLists.txt
index f728056..4336fb0 100644
--- a/misc/CMakeLists.txt
+++ b/misc/CMakeLists.txt
@@ -1,2 +1,2 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.10)
add_subdirectory(udev)
diff --git a/misc/udev/CMakeLists.txt b/misc/udev/CMakeLists.txt
index a7d4ed0..f7dcaf8 100644
--- a/misc/udev/CMakeLists.txt
+++ b/misc/udev/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.10)
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
SET(SYSTEM_IS_LINUX TRUE)
+5
View File
@@ -24,6 +24,11 @@ stdenv.mkDerivation rec {
sourceRoot = "${src.name}/host";
patches = [
# https://github.com/greatscottgadgets/ubertooth/pull/546
./fix-cmake4-build.patch
];
nativeBuildInputs = [
cmake
pkg-config
+4 -2
View File
@@ -15,7 +15,7 @@ inputs@{
enableSse42 ? stdenv.hostPlatform.sse4_2Support,
}:
let
inherit (lib.attrsets) getLib;
inherit (lib.attrsets) getOutput;
inherit (lib.lists) optionals;
inherit (lib.strings) concatStringsSep;
@@ -88,8 +88,10 @@ effectiveStdenv.mkDerivation (finalAttrs: {
# referring to an array!
env.LDFLAGS = toString (
optionals enableCuda [
# Fake libcuda.so (the real one is deployed impurely)
"-L${getOutput "stubs" cuda_cudart}/lib/stubs"
# Fake libnvidia-ml.so (the real one is deployed impurely)
"-L${getLib cuda_nvml_dev}/lib/stubs"
"-L${getOutput "stubs" cuda_nvml_dev}/lib/stubs"
]
);
+18 -4
View File
@@ -34,6 +34,13 @@ let
};
in
stdenv.mkDerivation (finalAttrs: {
__structuredAttrs = true;
# TODO(@connorbaker):
# When strictDeps is enabled, `cuda_nvcc` is required as the argument to `--with-cuda` in `configureFlags` or else
# configurePhase fails with `checking for cuda_runtime.h... no`.
# This is odd, especially given `cuda_runtime.h` is provided by `cuda_cudart.dev`, which is already in `buildInputs`.
strictDeps = true;
pname = "ucx";
version = "1.19.0";
@@ -75,10 +82,17 @@ stdenv.mkDerivation (finalAttrs: {
]
++ lib.optionals enableRocm rocmList;
LDFLAGS = lib.optionals enableCuda [
# Fake libnvidia-ml.so (the real one is deployed impurely)
"-L${lib.getLib cudaPackages.cuda_nvml_dev}/lib/stubs"
];
# NOTE: With `__structuredAttrs` enabled, `LDFLAGS` must be set under `env` so it is assured to be a string;
# otherwise, we might have forgotten to convert it to a string and Nix would make LDFLAGS a shell variable
# referring to an array!
env.LDFLAGS = toString (
lib.optionals enableCuda [
# Fake libcuda.so (the real one is deployed impurely)
"-L${lib.getOutput "stubs" cudaPackages.cuda_cudart}/lib/stubs"
# Fake libnvidia-ml.so (the real one is deployed impurely)
"-L${lib.getOutput "stubs" cudaPackages.cuda_nvml_dev}/lib/stubs"
]
);
configureFlags = [
"--with-rdmacm=${lib.getDev rdma-core}"
+2 -2
View File
@@ -18,13 +18,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "universal-ctags";
version = "6.2.0";
version = "6.2.1";
src = fetchFromGitHub {
owner = "universal-ctags";
repo = "ctags";
rev = "v${finalAttrs.version}";
hash = "sha256-M2MuVWUsN9kBRF4OAavTYQGPUYvzNmP30AWnW1SendU=";
hash = "sha256-x5ZlWTNUc1J/yslKHc8rCIl9LtNTN/HTaAJpFyF0KRI=";
};
depsBuildBuild = [
@@ -9,12 +9,12 @@
let
generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community";
version = "20251020145026";
version = "20251026234004";
src = fetchFromGitHub {
owner = "v2fly";
repo = "domain-list-community";
rev = version;
hash = "sha256-9S1R4f6F4IIuNOKT61k8paoKJpkAq3yuh5IpcdC+6vI=";
hash = "sha256-bZM47aPNLvdkmmCFyie/dlUs9JdGPngkdmGrVzDl8as=";
};
vendorHash = "sha256-HmIXpF7P3J+lPXpmWWoFpSYAu5zbBQSDrj6S88LgWSU=";
meta = with lib; {
+3 -3
View File
@@ -9,13 +9,13 @@
stdenv.mkDerivation {
pname = "vgmtools";
version = "0.1-unstable-2025-08-20";
version = "0.1-unstable-2025-10-22";
src = fetchFromGitHub {
owner = "vgmrips";
repo = "vgmtools";
rev = "7e071f9fff11031e6bbe3ccc73d180be08727804";
hash = "sha256-GTdMLDGVAeV4aIrnKYc/NE1FVU5DS1TspeTcx4qwUQA=";
rev = "606db7fa229389b80bccb4c6e28b3d71dfddc984";
hash = "sha256-kOkBIN1/FG6snpriLiu8ZMqGa2MXOC79zUZwGrMyk/A=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -6,13 +6,13 @@
buildGoModule rec {
pname = "weaviate";
version = "1.33.1";
version = "1.33.2";
src = fetchFromGitHub {
owner = "weaviate";
repo = "weaviate";
rev = "v${version}";
hash = "sha256-Y8oqZMBV7e24+uytiNCkUGC76vA3WW08TDS44eJb04E=";
hash = "sha256-+QchAvIBJcbrwveeGHXFC+96oD5Uy/+lqMV/vxRPzbk=";
};
vendorHash = "sha256-KiDU9fw/4vIhI0XbEzUfw+HhopJniVeGhFVJBbLkixU=";
+1 -1
View File
@@ -16,7 +16,7 @@
rPackages,
}@inputs:
assert ncclSupport -> (cudaSupport && !cudaPackages.nccl.meta.unsupported);
assert ncclSupport -> (cudaSupport && cudaPackages.nccl.meta.available);
# Disable regular tests when building the R package
# because 1) the R package runs its own tests and
# 2) the R package creates a different binary shared
@@ -18,13 +18,13 @@ let
self:
stdenv.mkDerivation rec {
pname = "hex";
version = "2.2.2";
version = "2.3.1";
src = fetchFromGitHub {
owner = "hexpm";
repo = "hex";
rev = "v${version}";
sha256 = "sha256-Qih10OeI7KsnAthAW0yuH+YL8uoeLy7tOVn9rdkGA4M=";
sha256 = "sha256-1LFWyxXR33qsvbzkBfUVgcT1/w1FuQDy3PBsRscyTpk=";
};
setupHook = writeText "setupHook.sh" ''
+37 -28
View File
@@ -10,39 +10,48 @@ package set by [cuda-packages.nix](../../top-level/cuda-packages.nix).
## Top-level directories
- `cuda`: CUDA redistributables! Provides extension to `cudaPackages` scope.
- `cudatoolkit`: monolithic CUDA Toolkit run-file installer. Provides extension
to `cudaPackages` scope.
- `cudnn`: NVIDIA cuDNN library.
- `cutensor`: NVIDIA cuTENSOR library.
- `fixups`: Each file or directory (excluding `default.nix`) should contain a
`callPackage`-able expression to be provided to the `overrideAttrs` attribute
of a package produced by the generic manifest builder.
These fixups are applied by `pname`, so packages with multiple versions
(e.g., `cudnn`, `cudnn_8_9`, etc.) all share a single fixup function
(i.e., `fixups/cudnn.nix`).
- `generic-builders`:
- Contains a builder `manifest.nix` which operates on the `Manifest` type
defined in `modules/generic/manifests`. Most packages are built using this
builder.
- Contains a builder `multiplex.nix` which leverages the Manifest builder. In
short, the Multiplex builder adds multiple versions of a single package to
single instance of the CUDA Packages package set. It is used primarily for
packages like `cudnn` and `cutensor`.
- `modules`: Nixpkgs modules to check the shape and content of CUDA
redistributable and feature manifests. These modules additionally use shims
provided by some CUDA packages to allow them to re-use the
`genericManifestBuilder`, even if they don't have manifest files of their
own. `cudnn` and `tensorrt` are examples of packages which provide such
shims. These modules are further described in the
[Modules](./modules/README.md) documentation.
- `_cuda`: Fixed-point used to configure, construct, and extend the CUDA package
set. This includes NVIDIA manifests.
- `buildRedist`: Contains the logic to build packages using NVIDIA's manifests.
- `packages`: Contains packages which exist in every instance of the CUDA
package set. These packages are built in a `by-name` fashion.
- `setup-hooks`: Nixpkgs setup hooks for CUDA.
- `tensorrt`: NVIDIA TensorRT library.
- `tests`: Contains tests which can be run against the CUDA package set.
Many redistributable packages are in the `packages` directory. Their presence
ensures that, even if a CUDA package set which no longer includes a given package
is being constructed, the attribute for that package will still exist (but refer
to a broken package). This prevents missing attribute errors as the package set
evolves.
## Distinguished packages
Some packages are purposefully not in the `packages` directory. These are packages
which do not make sense for Nixpkgs, require further investigation, or are otherwise
not straightforward to include. These packages are:
- `cuda`:
- `collectx_bringup`: missing `libssl.so.1.1` and `libcrypto.so.1.1`; not sure how
to provide them or what the package does.
- `cuda_sandbox_dev`: unclear on purpose.
- `driver_assistant`: we don't use the drivers from the CUDA releases; irrelevant.
- `mft_autocomplete`: unsure of purpose; contains FHS paths.
- `mft_oem`: unsure of purpose; contains FHS paths.
- `mft`: unsure of purpose; contains FHS paths.
- `nvidia_driver`: we don't use the drivers from the CUDA releases; irrelevant.
- `nvlsm`: contains FHS paths/NVSwitch and NVLINK software
- `libnvidia_nscq`: NVSwitch software
- `libnvsdm`: NVSwitch software
- `cublasmp`:
- `libcublasmp`: `nvshmem` isnt' packaged.
- `cudnn`:
- `cudnn_samples`: requires FreeImage, which is abandoned and not packaged.
> [!NOTE]
>
> When packaging redistributables, prefer `autoPatchelfIgnoreMissingDeps` to providing
> paths to stubs with `extraAutoPatchelfLibs`; the stubs are meant to be used for
> projects where linking against libraries available only at runtime is unavoidable.
### CUDA Compatibility
[CUDA Compatibility](https://docs.nvidia.com/deploy/cuda-compatibility/),
@@ -100,10 +100,27 @@
}
)
{
# Tesla K40
"3.5" = {
archName = "Kepler";
minCudaMajorMinorVersion = "10.0";
dontDefaultAfterCudaMajorMinorVersion = "11.0";
maxCudaMajorMinorVersion = "11.8";
};
# Tesla K80
"3.7" = {
archName = "Kepler";
minCudaMajorMinorVersion = "10.0";
dontDefaultAfterCudaMajorMinorVersion = "11.0";
maxCudaMajorMinorVersion = "11.8";
};
# Tesla/Quadro M series
"5.0" = {
archName = "Maxwell";
minCudaMajorMinorVersion = "10.0";
maxCudaMajorMinorVersion = "12.9";
dontDefaultAfterCudaMajorMinorVersion = "11.0";
};
@@ -111,6 +128,7 @@
"5.2" = {
archName = "Maxwell";
minCudaMajorMinorVersion = "10.0";
maxCudaMajorMinorVersion = "12.9";
dontDefaultAfterCudaMajorMinorVersion = "11.0";
};
@@ -118,6 +136,7 @@
"6.0" = {
archName = "Pascal";
minCudaMajorMinorVersion = "10.0";
maxCudaMajorMinorVersion = "12.9";
# Removed from TensorRT 10.0, which corresponds to CUDA 12.4 release.
# https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-1001/support-matrix/index.html
dontDefaultAfterCudaMajorMinorVersion = "12.3";
@@ -128,6 +147,7 @@
"6.1" = {
archName = "Pascal";
minCudaMajorMinorVersion = "10.0";
maxCudaMajorMinorVersion = "12.9";
# Removed from TensorRT 10.0, which corresponds to CUDA 12.4 release.
# https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-1001/support-matrix/index.html
dontDefaultAfterCudaMajorMinorVersion = "12.3";
@@ -137,11 +157,22 @@
"7.0" = {
archName = "Volta";
minCudaMajorMinorVersion = "10.0";
maxCudaMajorMinorVersion = "12.9";
# Removed from TensorRT 10.5, which corresponds to CUDA 12.6 release.
# https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-1050/support-matrix/index.html
dontDefaultAfterCudaMajorMinorVersion = "12.5";
};
# Jetson AGX Xavier, Drive AGX Pegasus, Xavier NX
"7.2" = {
archName = "Volta";
minCudaMajorMinorVersion = "10.0";
# Note: without `cuda_compat`, maxCudaMajorMinorVersion is 11.8
# https://docs.nvidia.com/cuda/cuda-for-tegra-appnote/index.html#deployment-considerations-for-cuda-upgrade-package
maxCudaMajorMinorVersion = "12.2";
isJetson = true;
};
# GTX/RTX Turing GTX 1660 Ti, RTX 2060, RTX 2070, RTX 2080, Titan RTX, Quadro RTX 4000,
# Quadro RTX 5000, Quadro RTX 6000, Quadro RTX 8000, Quadro T1000/T2000, Tesla T4
"7.5" = {
@@ -163,20 +194,30 @@
minCudaMajorMinorVersion = "11.2";
};
# Jetson AGX Orin and Drive AGX Orin only
# Tegra T234 (Jetson Orin)
"8.7" = {
archName = "Ampere";
minCudaMajorMinorVersion = "11.5";
minCudaMajorMinorVersion = "11.4";
isJetson = true;
};
# Tegra T239 (Switch 2?)
# "8.8" = {
# archName = "Ampere";
# minCudaMajorMinorVersion = "13.0";
# # It's not a Jetson device, but it does use the same architecture.
# isJetson = true;
# # Should never be default.
# dontDefaultAfterCudaMajorMinorVersion = "13.0";
# };
# NVIDIA GeForce RTX 4090, RTX 4080, RTX 6000, Tesla L40
"8.9" = {
archName = "Ada";
minCudaMajorMinorVersion = "11.8";
};
# NVIDIA H100 (GH100)
# NVIDIA H100, H200, GH200
"9.0" = {
archName = "Hopper";
minCudaMajorMinorVersion = "11.8";
@@ -187,7 +228,7 @@
minCudaMajorMinorVersion = "12.0";
};
# NVIDIA B100
# NVIDIA B200, GB200
"10.0" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.7";
@@ -203,26 +244,33 @@
minCudaMajorMinorVersion = "12.9";
};
# NVIDIA Jetson Thor Blackwell
# NVIDIA Jetson Thor Blackwell, T4000, T5000 (CUDA 12.7-12.9)
# Okay, so:
# - Support for Thor was added in CUDA 12.7, which was never released but is referenced in docs
# - NVIDIA changed the compute capability from 10.0 to 11.0 in CUDA 13.0
# - From CUDA 13.0 and on, 10.1 is no longer a valid compute capability
"10.1" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.7";
maxCudaMajorMinorVersion = "12.9";
isJetson = true;
};
"10.1a" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.7";
maxCudaMajorMinorVersion = "12.9";
isJetson = true;
};
"10.1f" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.9";
maxCudaMajorMinorVersion = "12.9";
isJetson = true;
};
# NVIDIA ???
# NVIDIA B300
"10.3" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.9";
@@ -238,6 +286,25 @@
minCudaMajorMinorVersion = "12.9";
};
# NVIDIA Jetson Thor Blackwell, T4000, T5000 (CUDA 13.0+)
"11.0" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "13.0";
isJetson = true;
};
"11.0a" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "13.0";
isJetson = true;
};
"11.0f" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "13.0";
isJetson = true;
};
# NVIDIA GeForce RTX 5090 (GB202) etc.
"12.0" = {
archName = "Blackwell";
@@ -254,7 +321,7 @@
minCudaMajorMinorVersion = "12.9";
};
# NVIDIA ???
# NVIDIA DGX Spark
"12.1" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.9";

Some files were not shown because too many files have changed in this diff Show More