Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-10-02 00:26:50 +00:00
committed by GitHub
170 changed files with 3772 additions and 1811 deletions

View File

@@ -1,142 +0,0 @@
# pnpmBuildHook {#pnpm-build-hook}
[pnpm](https://pnpm.io/) is a an NPM-compatible package manager focused on increasing managment speeds, and reducing disk space.
The `pnpmBuildHook` in Nixpkgs overrides the default build phase for building packages that use pnpm.
:::{.example #ex-pnpm-build-hook}
## pnpmBuildHook example code snippet {#pnpm-build-hook-code-snippet}
```nix
{
lib,
stdenv,
fetchFromGitHub,
fetchPnpmDeps,
pnpmConfigHook,
pnpmBuildHook,
makeBinaryWrapper,
pnpm_10,
}:
let
pnpm = pnpm_10;
in
stdenv.mkDerivation (finalAttrs: {
pname = "coolPackages";
version = "1.0";
src = fetchFromGitHub {
owner = "JaneCool";
repo = "coolpackage";
tag = finalAttrs.version;
hash = lib.fakeHash;
};
__structuredAttrs = true;
strictDeps = true;
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherVersion = 4;
hash = lib.fakeHash;
};
nativeBuildInputs = [
pnpmConfigHook
pnpmBuildHook
makeBinaryWrapper
];
pnpmBuildScript = "build";
pnpmBuildFlags = [
"--mode"
"production"
];
pnpmWorkspaces = [
"test"
];
installPhase = ''
runHook preInstall
mkdir "$out"
cp -r dist/. "$out"
runHook postInstall
'';
meta = {
description = "very cool package that does cool things";
mainProgram = "cool";
};
})
```
:::
## Variables controlling pnpmBuildHook {#pnpm-build-hook-variables}
### pnpm Exclusive Variables {#pnpm-build-hook-exclusive-variables}
#### `pnpmBuildScript` {#pnpm-build-hook-script}
Controls the script ran to build the package, by default the script is `build`.
#### `pnpmFlags` {#pnpm-build-hook-flags}
Controls flags used for all invocations of pnpm across all hooks local to this derivation.
#### `pnpmBuildFlags` {#pnpm-build-hook-build-flags}
Controls the flags pass only to the pnpm build script invocation.
#### `dontPnpmBuild` {#pnpm-build-hook-dont}
Disables automatically running `pnpmBuildHook`. The build can still be run manually if needed, for example:
```nix
{
lib,
rustPlatform,
pnpmBuildHook,
pnpmConfigHook,
fetchPnpmDeps,
emptyDirectory,
pnpm_10,
}:
let
pnpm = pnpm_10;
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "super-fast-application";
version = "1.0";
src = emptyDirectory;
cargoHash = lib.fakeHash;
nativeBuildInputs = [
pnpmBuildHook
pnpmConfigHook
];
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherVersion = 4;
hash = lib.fakeHash;
};
dontPnpmBuild = true;
postBuild = ''
pnpmBuildHook
'';
})
```
### Honored Variables {#pnpm-build-hook-honored-variables}
The following variables are honored by `pnpmBuildHook`.
* [`pnpmRoot`](#javascript-pnpm-sourceRoot)
* [`pnpmWorkspaces`](#javascript-pnpm-workspaces)

View File

@@ -6,6 +6,12 @@ Package JavaScript applications with the tools below.
## Tools overview {#javascript-tools-overview}
- **npm**: [`buildNpmPackage`](#javascript-buildNpmPackage), [`prefetch-npm-deps` (CLI)](#javascript-buildNpmPackage-prefetch-npm-deps), [`fetchNpmDeps`](#javascript-buildNpmPackage-fetchNpmDeps), [`importNpmLock`](#javascript-buildNpmPackage-importNpmLock)
- [**corepack**](#javascript-corepack)
- **pnpm**: [`fetchPnpmDeps`](#javascript-pnpm), [`pnpmConfigHook`](#javascript-pnpm-pnpmConfigHook), [`pnpmBuildHook`](#javascript-pnpm-pnpmBuildHook)
- [**Yarn v1**](#javascript-yarn-v1): [`fetchYarnDeps`](#javascript-fetchyarndeps), [`yarnConfigHook`](#javascript-yarnconfighook), [`yarnBuildHook`](#javascript-yarnbuildhook), [`yarnInstallHook`](#javascript-yarninstallhook)
- [**Yarn Berry (v3/v4)**](#javascript-yarn-v3-v4): [`fetchYarnBerryDeps`](#javascript-fetchYarnBerryDeps), [`yarnBerryConfigHook`](#javascript-yarnBerryConfigHook)
## General principles {#javascript-general-principles}
The principles below are ordered by importance.
@@ -288,9 +294,7 @@ This package puts the corepack wrappers for pnpm and yarn in your PATH, and they
pnpm is available as the top-level package `pnpm`. Additionally, there are variants pinned to certain major versions, like `pnpm_9`, `pnpm_10`, `pnpm_10_29_2` and `pnpm_11`, which support different sets of lock file versions.
When packaging an application that includes a `pnpm-lock.yaml`, you need to fetch the pnpm store for that project using a fixed-output-derivation. The function `fetchPnpmDeps` can create this pnpm store derivation. In conjunction, the setup hook `pnpmConfigHook` prepares the build environment to install the pre-fetched dependencies store. The example below uses the fetcher and setup hook for a package that has `package.json` and `pnpm-lock.yaml`:
There is also the [`pnpmBuildHook`](#pnpm-build-hook) for building packages with `pnpm`, as seen in [](#ex-pnpm-build-hook).
When packaging an application that includes a `pnpm-lock.yaml`, you need to fetch the pnpm store for that project using a fixed-output-derivation. The function `fetchPnpmDeps` can create this pnpm store derivation. In conjunction, the setup hook [`pnpmConfigHook`](#javascript-pnpm-pnpmConfigHook) prepares the build environment to install the pre-fetched dependencies store. The example below uses the fetcher and setup hook for a package that has `package.json` and `pnpm-lock.yaml`:
```nix
{
@@ -298,6 +302,7 @@ There is also the [`pnpmBuildHook`](#pnpm-build-hook) for building packages with
nodejs,
pnpm_11,
pnpmConfigHook,
pnpmBuildHook,
stdenv,
}:
let
@@ -319,7 +324,8 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
nodejs # in case scripts are run outside of a pnpm call
pnpmConfigHook
pnpm # At least required by pnpmConfigHook, if not other (custom) phases
pnpmBuildHook
pnpm # At least required by pnpmConfigHook and pnpmBuildHook, if not other (custom) phases
];
pnpmDeps = fetchPnpmDeps {
@@ -331,49 +337,11 @@ stdenv.mkDerivation (finalAttrs: {
})
```
Use a pinned version of pnpm (for example `pnpm_9` or `pnpm_10`) to increase reproducibility. An older version may be required if the package needs a certain lock file version. To do so, pass the `pnpm` argument to `fetchPnpmDeps`. Then override the `pnpm` arg in `pnpmConfigHook`. Here are the changes in the example above to use a pinned pnpm version:
The example also uses [`pnpmBuildHook`](#javascript-pnpm-pnpmBuildHook), which runs `pnpm run build` in the build phase.
<!-- TODO: Does splicing still work when overriding in nativeBuildInputs here? -->
In case you are patching `package.json` or `pnpm-lock.yaml`, make sure to pass `finalAttrs.patches` to the `fetchPnpmDeps` function as well (i.e., `inherit (finalAttrs) patches`).
```diff
{
fetchPnpmDeps,
nodejs,
- pnpm,
+ pnpm_10,
pnpmConfigHook,
stdenv,
}:
+let
+ # Optionally override pnpm to use a custom nodejs version
+ # Make sure that the same nodejs version is referenced in nativeBuildInputs
+ # pnpm = pnpm_10.override { nodejs-slim = nodejs-slim_22; };
+in
stdenv.mkDerivation (finalAttrs: {
pname = "foo";
version = "0-unstable-1980-01-01";
src = {
#...
};
nativeBuildInputs = [
nodejs # in case scripts are run outside of a pnpm call
pnpmConfigHook
- pnpm # At least required by pnpmConfigHook, if not other (custom) phases
+ pnpm_10 # At least required by pnpmConfigHook, if not other (custom) phases
];
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
+ pnpm = pnpm_10;
fetcherVersion = 4;
hash = "...";
};
})
```
In case you are patching `package.json` or `pnpm-lock.yaml`, make sure to pass `finalAttrs.patches` to the function as well (i.e., `inherit (finalAttrs) patches`).
#### pnpmConfigHook {#javascript-pnpm-pnpmConfigHook}
`pnpmConfigHook` supports adding additional `pnpm install` flags via `pnpmInstallFlags` which can be set to a Nix string array:
@@ -391,6 +359,33 @@ In case you are patching `package.json` or `pnpm-lock.yaml`, make sure to pass `
If needed, set `dontPnpmConfigure = true;` to fully disable `pnpmConfigHook` without removing it from inputs manually.
#### pnpmBuildHook {#javascript-pnpm-pnpmBuildHook}
The `pnpmBuildHook` in overrides the default build phase with `pnpm run <build-script>`.
```nix
{
nativeBuildInputs = [
pnpmBuildHook
];
pnpmBuildScript = "build-ui";
pnpmBuildFlags = [
"--mode"
"production"
];
}
```
Available options:
- `pnpmBuildScript`: select which script from `package.json` to run. Defaults to `build`.
- `pnpmBuildFlags`: array of flags to pass to the build script.
- `pnpmFlags`: currently the same as `pnpmBuildFlags`, but might be used by other hooks in the future.
- `dontPnpmBuild`: disable this hook from running automatically. The hook can still be invoked manually.
Both [`pnpmRoot`](#javascript-pnpm-sourceRoot) and [`pnpmWorkspaces`](#javascript-pnpm-workspaces) are honored by this hook.
#### Dealing with `sourceRoot` {#javascript-pnpm-sourceRoot}
If the pnpm project is in a subdirectory, you can define `sourceRoot` or `setSourceRoot` for `fetchPnpmDeps`.
@@ -603,13 +598,8 @@ To install the package, `yarnInstallHook` uses both `npm` and `yarn` to clean up
- `yarnKeepDevDeps`: Disables the removal of devDependencies from `node_modules` before installation.
#### Yarn Berry v3/v4 {#javascript-yarn-v3-v4}
Yarn Berry (v3 / v4) versions have similar formats. They start with blocks like these:
```yaml
__metadata:
version: 6
cacheKey: 8[cX]
```
Yarn Berry (v3 / v4) versions have similar formats. The `yarn.lock` file starts with blocks like these:
```yaml
__metadata:
@@ -634,7 +624,6 @@ Explicitly pin the major version. For example, capture the `yarn-berry_Xn` argum
let
yarn-berry = yarn-berry_4;
in
stdenv.mkDerivation (finalAttrs: {
pname = "foo";
@@ -657,6 +646,7 @@ stdenv.mkDerivation (finalAttrs: {
```
##### `yarn-berry_X.fetchYarnBerryDeps` {#javascript-fetchYarnBerryDeps}
`fetchYarnBerryDeps` runs `yarn-berry-fetcher fetch` in a fixed-output-derivation. It is a custom fetcher designed to reproducibly download all files in the `yarn.lock` file, validating their hashes in the process. For git dependencies, it creates a checkout at `${offlineCache}/checkouts/<40-character-commit-hash>` (relying on the git commit hash to describe the contents of the checkout).
To produce the `hash` argument for the `fetchYarnBerryDeps` call, run `yarn-berry-fetcher prefetch`:
@@ -668,14 +658,17 @@ $ yarn-berry-fetcher prefetch </path/to/yarn.lock> [/path/to/missing-hashes.json
This prints the hash to stdout. Use it in update scripts to recalculate the hash for a new `yarn.lock`.
##### `yarn-berry_X.yarnBerryConfigHook` {#javascript-yarnBerryConfigHook}
`yarnBerryConfigHook` uses the store path `offlineCache` points to, to run a `yarn install` during the build, producing a usable `node_modules` directory from the downloaded dependencies.
Internally, this uses a patched version of Yarn to ensure git dependencies are re-packed and any attempted downloads fail immediately.
##### Patching the project's `package.json` or `yarn.lock` files {#javascript-yarnBerry-patching}
In case patching the project's `package.json` or `yarn.lock` is needed, it's important to pass `finalAttrs.patches` to `fetchYarnBerryDeps` as well, so the patched variants are picked up (i.e., `inherit (finalAttrs) patches`).
##### Missing hashes in the `yarn.lock` file {#javascript-yarnBerry-missing-hashes}
Unfortunately, `yarn.lock` files do not include hashes for optional/platform-specific dependencies. This is [by design](https://github.com/yarnpkg/berry/issues/6759).
To compensate for this, run the `yarn-berry-fetcher missing-hashes` subcommand to produce all missing hashes. These are stored in a `missing-hashes.json` file, which needs to be passed to both the build itself, as well as the `fetchYarnBerryDeps` helper:
@@ -689,7 +682,6 @@ To compensate for this, run the `yarn-berry-fetcher missing-hashes` subcommand t
let
yarn-berry = yarn-berry_4;
in
stdenv.mkDerivation (finalAttrs: {
pname = "foo";

View File

@@ -430,9 +430,6 @@
{
"file": "hooks/pkg-config.section.md"
},
{
"file": "hooks/pnpm.section.md"
},
{
"file": "hooks/postgresql-test-hook.section.md"
},

View File

@@ -128,9 +128,6 @@
"ex-pkgs-replace-vars-with": [
"index.html#ex-pkgs-replace-vars-with"
],
"ex-pnpm-build-hook": [
"index.html#ex-pnpm-build-hook"
],
"ex-shfmt": [
"index.html#ex-shfmt"
],
@@ -406,33 +403,6 @@
"pkgs.treefmt.withConfig": [
"index.html#pkgs.treefmt.withConfig"
],
"pnpm-build-hook": [
"index.html#pnpm-build-hook"
],
"pnpm-build-hook-build-flags": [
"index.html#pnpm-build-hook-build-flags"
],
"pnpm-build-hook-code-snippet": [
"index.html#pnpm-build-hook-code-snippet"
],
"pnpm-build-hook-dont": [
"index.html#pnpm-build-hook-dont"
],
"pnpm-build-hook-exclusive-variables": [
"index.html#pnpm-build-hook-exclusive-variables"
],
"pnpm-build-hook-flags": [
"index.html#pnpm-build-hook-flags"
],
"pnpm-build-hook-script": [
"index.html#pnpm-build-hook-script"
],
"pnpm-build-hook-variables": [
"index.html#pnpm-build-hook-variables"
],
"pnpm-build-hook-honored-variables": [
"index.html#pnpm-build-hook-honored-variables"
],
"preface": [
"index.html#preface",
"index.html#overview-of-nixpkgs"
@@ -1711,6 +1681,9 @@
"var-meta-mainProgram": [
"index.html#var-meta-mainProgram"
],
"var-meta-mainDarwinApp": [
"index.html#var-meta-mainDarwinApp"
],
"var-meta-priority": [
"index.html#var-meta-priority"
],
@@ -3883,7 +3856,23 @@
"index.html#javascript-corepack"
],
"javascript-pnpm": [
"index.html#javascript-pnpm"
"index.html#javascript-pnpm",
"index.html#ex-pnpm-build-hook"
],
"javascript-pnpm-pnpmBuildHook": [
"index.html#javascript-pnpm-pnpmBuildHook",
"index.html#pnpm-build-hook",
"index.html#pnpm-build-hook-build-flags",
"index.html#pnpm-build-hook-code-snippet",
"index.html#pnpm-build-hook-dont",
"index.html#pnpm-build-hook-exclusive-variables",
"index.html#pnpm-build-hook-flags",
"index.html#pnpm-build-hook-script",
"index.html#pnpm-build-hook-variables",
"index.html#pnpm-build-hook-honored-variables"
],
"javascript-pnpm-pnpmConfigHook": [
"index.html#javascript-pnpm-pnpmConfigHook"
],
"javascript-pnpm-sourceRoot": [
"index.html#javascript-pnpm-sourceRoot"

View File

@@ -105,6 +105,10 @@ A list of the teams of this Nix expression. Teams are defined in [`nixpkgs/maint
The name of the main binary for the package. This affects the binary `nix run` executes. Example: `"rg"`
### `mainDarwinApp` {#var-meta-mainDarwinApp}
The name of the main Darwin/macOS Application for the package. It must end in `.app`. Example: `"VSCodium.app"`
### `priority` {#var-meta-priority}
The *priority* of the package, used by `nix-env` to resolve file name conflicts between packages. See the [manual page for `nix-env`](https://nixos.org/manual/nix/stable/command-ref/nix-env) for details. Example: `"10"` (a low-priority package).

View File

@@ -452,6 +452,8 @@ let
getLicenseFromSpdxIdOr
getExe
getExe'
getDarwinApp
getDarwinApp'
;
inherit (self.filesystem)
pathType

View File

@@ -581,6 +581,90 @@ rec {
|| throw "lib.meta.getExe': The second argument \"${y}\" is a nested path with a \"/\" character, but it should just be the name of the executable instead.";
"${getBin x}/bin/${y}";
/**
Get the path to the main darwin app of a package based on `meta.mainDarwinApp`
# Inputs
`x`
: 1\. Function argument
# Type
```
getDarwinApp :: Derivation -> StorePath
```
# Examples
:::{.example}
## `lib.meta.getDarwinApp` usage example
```nix
getDarwinApp pkgs.vscodium
=> "/nix/store/0y95mgmlrs8cayv2cnj23xjfljwhlib0-vscodium-1.121.03429/Applications/VSCodium.app"
getDarwinApp pkgs.slack
=> "/nix/store/g52cl8dblki8dr5bkr0vajpkralkmhi0-slack-4.49.89/Applications/Slack.app"
```
:::
*/
getDarwinApp =
x:
getDarwinApp' x (
x.meta.mainDarwinApp or (builtins.throw "getDarwinApp: Package ${
lib.strings.escapeNixIdentifier x.meta.name or x.pname or x.name
} does not have the meta.mainDarwinApp attribute. If the package has a main darwin app, please set `meta.mainDarwinApp` in its definition to make this error go away. Otherwise, if the package does not have a main darwin app, or if you don't control its definition, use getDarwinApp' to specify the name to the program, such as lib.getDarwinApp' vscodium \"VSCodium.app\".")
);
/**
Get the path of an darwin app for a derivation.
# Inputs
`x`
: 1\. Function argument
`y`
: 2\. Function argument
# Type
```
getDarwinApp' :: Derivation -> String -> StorePath
```
# Examples
:::{.example}
## `lib.meta.getDarwinApp'` usage example
```nix
getDarwinApp' pkgs.linear "Linear.app"
=> "/nix/store/z4vh6ldb2vpspv307q7mk6wazfmh5dic-linear-1.30.2/Applications/Linear.app"
getDarwinApp' pkgs.vscodium "VSCodium.app"
=> "/nix/store/0y95mgmlrs8cayv2cnj23xjfljwhlib0-vscodium-1.121.03429/Applications/VSCodium.app"
```
:::
*/
getDarwinApp' =
x: y:
assert
isDerivation x
|| throw "lib.meta.getDarwinApp': The first argument is of type ${typeOf x}, but it should be a derivation instead.";
assert
isString y
|| throw "lib.meta.getDarwinApp': The second argument is of type ${typeOf y}, but it should be a string instead.";
assert
lib.hasInfix "/" y == false
|| throw "lib.meta.getDarwinApp': The second argument \"${y}\" is a nested path with a \"/\" character, but it should just be the name of the app instead.";
assert
lib.hasSuffix ".app" y
|| throw "lib.meta.getDarwinApp': The second argument \"${y}\" must end in `.app`";
"${lib.getOutput "out" x}/Applications/${y}";
/**
Generate [CPE parts](#var-meta-identifiers-cpeParts) from inputs. Copies `vendor` and `version` to the output, and sets `update` to `*`.

View File

@@ -61,6 +61,8 @@ let
genList
getExe
getExe'
getDarwinApp
getDarwinApp'
getLicenseFromSpdxIdOr
groupBy
groupBy'
@@ -4752,6 +4754,31 @@ runTests {
testGetExe'FailureSecondArg = testingThrow (getExe' { type = "derivation"; } "dir/executable");
testGetDarwinAppOutput = {
expr = getDarwinApp {
type = "derivation";
out = "somelonghash";
bin = "somelonghash";
meta.mainDarwinApp = "mainDarwinApp.app";
};
expected = "somelonghash/Applications/mainDarwinApp.app";
};
testGetDarwinApp'Output = {
expr = getDarwinApp' {
type = "derivation";
out = "somelonghash";
bin = "somelonghash";
} "app.app";
expected = "somelonghash/Applications/app.app";
};
testGetDarwinApp'FailureFirstArg = testingThrow (getDarwinApp' "not a derivation" "executable");
testGetDarwinApp'FailureSecondArg = testingThrow (
getDarwinApp' { type = "derivation"; } "dir/executable"
);
testGetLicenseFromSpdxIdOrExamples = {
expr = [
(getLicenseFromSpdxIdOr "MIT" null)

View File

@@ -161,8 +161,7 @@
"samuela": 226872
},
"members": {
"ethancedwards8": 60861925,
"prusnak": 42201
"ethancedwards8": 60861925
},
"name": "cuda-maintainers"
},
@@ -248,7 +247,6 @@
"mstone": 412508,
"n8henrie": 1234956,
"ofalvai": 1694986,
"prusnak": 42201,
"reckenrode": 7413633,
"ryand56": 22267679,
"samrose": 115821,
@@ -386,6 +384,31 @@
},
"name": "Freedesktop"
},
"gaming": {
"description": "Maintain games, game engines, launchers, compatibility layers, game-related utilities and other gaming software in nixpkgs.",
"id": 19617985,
"maintainers": {
"TomaSajt": 62384384,
"ethancedwards8": 60861925,
"iedame": 60272,
"keenanweaver": 37268985,
"l0b0": 168301
},
"members": {
"DrymarchonShaun": 40149778,
"Gliczy": 129636582,
"Mistyttm": 51770769,
"PaulGrandperrin": 1748936,
"RoGreat": 64620440,
"carlossless": 498906,
"dwt": 57199,
"liamthexpl0rer": 119797945,
"liberodark": 4238928,
"qubitnano": 146656568,
"yvnth": 201552597
},
"name": "Gaming"
},
"geospatial": {
"description": "Maintain geospatial, remote sensing and OpenStreetMap software",
"id": 7084621,
@@ -939,16 +962,16 @@
"name": "Scala"
},
"sdl": {
"description": "Maintain core SDL libraries",
"description": "Maintain core SDL libraries. Matrix: #nixpkgs-sdl-team:nixos.org",
"id": 13033942,
"maintainers": {
"LordGrimmauld": 49513131,
"marcin-serwin": 12128106,
"pbsds": 140964
},
"members": {
"LordGrimmauld": 49513131,
"evysgarden": 92547295,
"jansol": 2588851,
"marcin-serwin": 12128106
"jansol": 2588851
},
"name": "SDL"
},

View File

@@ -3256,6 +3256,12 @@
githubId = 766221;
name = "Ngoc Nguyen";
};
baptiste0928 = {
email = "contact@bgirardeau.me";
github = "baptiste0928";
githubId = 22115890;
name = "Baptiste Girardeau";
};
barab-i = {
email = "barab_i@outlook.com";
github = "barab-i";
@@ -15844,6 +15850,11 @@
github = "kumpelinus";
githubId = 174106140;
};
kunkka19xx = {
name = "Kunkka";
github = "kunkka19xx";
githubId = 53131553;
};
KunyaKud = {
name = "KunyaKud";
email = "wafuu@posteo.net";
@@ -18590,6 +18601,11 @@
{ fingerprint = "838A FE0D 55DC 074E 360F 943A 84B6 9CE6 F3F6 B767"; }
];
};
MCT32 = {
github = "MCT32";
githubId = 32090502;
name = "MCT32";
};
mcuste = {
email = "github@muratcanuste.com";
github = "mcuste";
@@ -28702,6 +28718,11 @@
githubId = 2389333;
name = "Andy Tockman";
};
Teamofeyy = {
name = "Teamofeyy";
github = "Teamofeyy";
githubId = 128955381;
};
teatwig = {
email = "nix@teatwig.net";
name = "tea";

View File

@@ -291,6 +291,10 @@ with lib.maintainers;
github = "freedesktop";
};
gaming = {
github = "gaming";
};
gcc = {
members = [
vcunat

View File

@@ -46,7 +46,7 @@ in
powerManagement.powerDownCommands = ''
#flush any bytes in pipe
while read -n 1 -t 1 SUSPEND_RESULT < /tmp/PmMessagesPort_out; do : ; done;
while read -r -n 1 -t 1 < /tmp/PmMessagesPort_out; do : ; done;
#suspend DisplayLinkManager
echo "S" > /tmp/PmMessagesPort_in
@@ -54,7 +54,7 @@ in
#wait until suspend of DisplayLinkManager finish
if [ -f /tmp/PmMessagesPort_out ]; then
#wait until suspend of DisplayLinkManager finish
read -n 1 -t 10 SUSPEND_RESULT < /tmp/PmMessagesPort_out
read -r -n 1 -t 10 < /tmp/PmMessagesPort_out
fi
'';

View File

@@ -12,7 +12,7 @@ in
};
nodes.fireflySqlite =
{ config, ... }:
{ ... }:
{
environment.etc = {
"firefly-iii-appkey".text = app-key;
@@ -29,7 +29,7 @@ in
};
nodes.fireflyPostgresql =
{ config, pkgs, ... }:
{ pkgs, ... }:
{
environment.etc = {
"firefly-iii-appkey".text = app-key;
@@ -67,7 +67,7 @@ in
};
nodes.fireflyMysql =
{ config, pkgs, ... }:
{ pkgs, ... }:
{
environment.etc = {
"firefly-iii-appkey".text = app-key;
@@ -100,21 +100,40 @@ in
};
};
testScript = ''
fireflySqlite.wait_for_unit("phpfpm-firefly-iii.service")
fireflySqlite.wait_for_unit("nginx.service")
fireflySqlite.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
fireflySqlite.succeed("curl -fvvv -Ls http://localhost/v1/js/app.js")
fireflySqlite.succeed("systemctl start firefly-iii-cron.service")
fireflyPostgresql.wait_for_unit("phpfpm-firefly-iii.service")
fireflyPostgresql.wait_for_unit("nginx.service")
fireflyPostgresql.wait_for_unit("postgresql.target")
fireflyPostgresql.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
fireflyPostgresql.succeed("systemctl start firefly-iii-cron.service")
fireflyMysql.wait_for_unit("phpfpm-firefly-iii.service")
fireflyMysql.wait_for_unit("nginx.service")
fireflyMysql.wait_for_unit("mysql.service")
fireflyMysql.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
fireflyMysql.succeed("systemctl start firefly-iii-cron.service")
'';
testScript =
let
checkCron = node: ''
${node}.succeed(
"curl -fsS -c /tmp/jar -b /tmp/jar -o /tmp/register.html http://localhost/register",
"grep -oP 'name=\"_token\" value=\"\\K[^\"]+' /tmp/register.html | tr -d '\\n' > /tmp/token",
)
redirect = ${node}.succeed(
"curl -fsS -c /tmp/jar -b /tmp/jar -o /dev/null -w '%{redirect_url}' http://localhost/register"
+ " --data-urlencode _token@/tmp/token"
+ " --data-urlencode email=test@example.com"
+ " --data-urlencode password=TestTestTestTest1"
+ " --data-urlencode password_confirmation=TestTestTestTest1"
)
# A failed registration redirects back to the form.
assert "register" not in redirect, f"registration failed, redirected to {redirect}"
${node}.succeed("systemctl start firefly-iii-cron.service")
'';
in
''
fireflySqlite.wait_for_unit("phpfpm-firefly-iii.service")
fireflySqlite.wait_for_unit("nginx.service")
fireflySqlite.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
fireflySqlite.succeed("curl -fvvv -Ls http://localhost/build/manifest.json")
${checkCron "fireflySqlite"}
fireflyPostgresql.wait_for_unit("phpfpm-firefly-iii.service")
fireflyPostgresql.wait_for_unit("nginx.service")
fireflyPostgresql.wait_for_unit("postgresql.target")
fireflyPostgresql.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
${checkCron "fireflyPostgresql"}
fireflyMysql.wait_for_unit("phpfpm-firefly-iii.service")
fireflyMysql.wait_for_unit("nginx.service")
fireflyMysql.wait_for_unit("mysql.service")
fireflyMysql.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
${checkCron "fireflyMysql"}
'';
}

View File

@@ -103,5 +103,19 @@ in
record = check_answer(r)["records"][0]
if record["fields"]["result"] != record["fields"]["number"] * 2:
sys.exit(1)
# Importing a file needs the built-in parsers registered in plugins/ and a
# gVisor sandbox that can read the upload.
with subtest("Import a CSV file"):
r = requests.post(
f"{url}docs",
files={"upload": ("import.csv", "name,value\nfoo,1\nbar,2\n")},
headers={"X-Requested-With": "XMLHttpRequest"},
)
import_doc_id = check_answer(r)
r = requests.get(f"{url}docs/{import_doc_id}/tables/Import/records")
names = [rec["fields"]["name"] for rec in check_answer(r)["records"]]
if names != ["foo", "bar"]:
sys.exit(1)
'';
}

View File

@@ -77,7 +77,7 @@ in
# Close the client
await client.close()
asyncio.get_event_loop().run_until_complete(main())
asyncio.run(main())
'')
];
};

View File

@@ -77,7 +77,7 @@ in
# Close the client
await client.close()
asyncio.get_event_loop().run_until_complete(main())
asyncio.run(main())
'')
];
};

View File

@@ -1192,8 +1192,8 @@ let
mktplcRef = {
publisher = "DanielSanMedium";
name = "dscodegpt";
version = "3.24.72";
hash = "sha256-yIQALNOm9C0ji+g96oqaXDuwlbS+088+whbFTQAe5Z8=";
version = "3.24.76";
hash = "sha256-8HwYwCtROlU8txNVREr45Jx1tpCI2a50uHfAb6iT7V8=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/DanielSanMedium.dscodegpt/changelog";
@@ -1244,8 +1244,8 @@ let
mktplcRef = {
name = "databricks";
publisher = "databricks";
version = "2.18.0";
hash = "sha256-Qf3o0QIW864p8BsRxB+RmGXe28N68Jqrzs+tpxeCceM=";
version = "2.19.0";
hash = "sha256-hW0Q0gnAanWZ4IuF/AY5uypvHZ5YDjvFnJzGn4Hd7V8=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/databricks.databricks/changelog";
@@ -2725,8 +2725,8 @@ let
mktplcRef = {
name = "language-julia";
publisher = "julialang";
version = "1.242.2";
hash = "sha256-E8SdCf5emB/ix3qmj56CfWhCGCVIm4voI8fJoyCA2kE=";
version = "1.243.2";
hash = "sha256-907pr/y67bDKpKs1Sxk+XV7xUL8+e3jYW0tkHNWUEUs=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/julialang.language-julia/changelog";

View File

@@ -82,6 +82,7 @@ buildVscode rec {
bobby285271
];
mainProgram = "codium";
mainDarwinApp = "VSCodium.app";
platforms = [
"x86_64-linux"
"aarch64-linux"

View File

@@ -0,0 +1,8 @@
{
lib,
callPackage,
}:
lib.packagesFromDirectoryRecursive {
inherit callPackage;
directory = ./plugins;
}

View File

@@ -14,7 +14,7 @@
obs-studio,
opencv,
procps,
qtbase,
qt6,
stdenv,
websocketpp,
libxscrnsaver,
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
# tesseract
# leptonica
procps
qtbase
qt6.qtbase
websocketpp
libxscrnsaver
libusb1

View File

@@ -1,120 +0,0 @@
{
callPackage,
qt6Packages,
pkgsi686Linux,
}:
# When adding new plugins:
# - Respect alphabetical order. On diversion, file a PR.
# - Plugin name should reflect upstream's name. Including or excluding "obs" prefix/suffix.
# - Add plugin to it's own directory (because of future patches).
{
advanced-scene-switcher = qt6Packages.callPackage ./advanced-scene-switcher { };
droidcam-obs = callPackage ./droidcam-obs { };
distroav = qt6Packages.callPackage ./distroav { };
input-overlay = qt6Packages.callPackage ./input-overlay.nix { };
looking-glass-obs = callPackage ./looking-glass-obs.nix { };
obs-3d-effect = callPackage ./obs-3d-effect.nix { };
obs-advanced-masks = callPackage ./obs-advanced-masks.nix { };
obs-aitum-multistream = qt6Packages.callPackage ./obs-aitum-multistream.nix { };
obs-backgroundremoval = callPackage ./obs-backgroundremoval { };
obs-browser-transition = callPackage ./obs-browser-transition.nix { };
obs-color-monitor = qt6Packages.callPackage ./obs-color-monitor.nix { };
obs-command-source = callPackage ./obs-command-source.nix { };
obs-composite-blur = callPackage ./obs-composite-blur.nix { };
obs-dir-watch-media = callPackage ./obs-dir-watch-media.nix { };
obs-dvd-screensaver = callPackage ./obs-dvd-screensaver.nix { };
obs-freeze-filter = qt6Packages.callPackage ./obs-freeze-filter.nix { };
obs-gradient-source = callPackage ./obs-gradient-source.nix { };
obs-gstreamer = callPackage ./obs-gstreamer.nix { };
obs-hyperion = qt6Packages.callPackage ./obs-hyperion/default.nix { };
obs-livesplit-one = callPackage ./obs-livesplit-one { };
obs-markdown = callPackage ./obs-markdown.nix { };
obs-media-controls = qt6Packages.callPackage ./obs-media-controls { };
obs-move-transition = callPackage ./obs-move-transition.nix { };
obs-multi-rtmp = qt6Packages.callPackage ./obs-multi-rtmp { };
obs-mute-filter = callPackage ./obs-mute-filter.nix { };
obs-noise = callPackage ./obs-noise.nix { };
obs-pipewire-audio-capture = callPackage ./obs-pipewire-audio-capture.nix { };
obs-plugin-countdown = qt6Packages.callPackage ./obs-plugin-countdown.nix { };
obs-recursion-effect = callPackage ./obs-recursion-effect.nix { };
obs-replay-source = qt6Packages.callPackage ./obs-replay-source.nix { };
obs-retro-effects = callPackage ./obs-retro-effects.nix { };
obs-rgb-levels = callPackage ./obs-rgb-levels.nix { };
obs-scale-to-sound = callPackage ./obs-scale-to-sound.nix { };
obs-scene-as-transition = callPackage ./obs-scene-as-transition.nix { };
obs-shaderfilter = qt6Packages.callPackage ./obs-shaderfilter.nix { };
obs-source-clone = callPackage ./obs-source-clone.nix { };
obs-source-record = callPackage ./obs-source-record.nix { };
obs-source-switcher = callPackage ./obs-source-switcher.nix { };
obs-stroke-glow-shadow = callPackage ./obs-stroke-glow-shadow.nix { };
obs-teleport = callPackage ./obs-teleport { };
obs-text-pthread = callPackage ./obs-text-pthread.nix { };
obs-transition-table = qt6Packages.callPackage ./obs-transition-table.nix { };
obs-tuna = qt6Packages.callPackage ./obs-tuna { };
obs-vaapi = callPackage ./obs-vaapi { };
obs-vertical-canvas = qt6Packages.callPackage ./obs-vertical-canvas.nix { };
obs-vintage-filter = callPackage ./obs-vintage-filter.nix { };
obs-vkcapture = callPackage ./obs-vkcapture.nix {
obs-vkcapture32 = pkgsi686Linux.obs-studio-plugins.obs-vkcapture;
};
obs-vnc = callPackage ./obs-vnc.nix { };
obs-wayland-hotkeys = qt6Packages.callPackage ./obs-wayland-hotkeys { };
obs-websocket = qt6Packages.callPackage ./obs-websocket.nix { }; # Websocket 4.x compatibility for OBS Studio 28+
pixel-art = callPackage ./pixel-art.nix { };
wlrobs = callPackage ./wlrobs.nix { };
waveform = callPackage ./waveform { };
}

View File

@@ -4,7 +4,7 @@
fetchFromGitHub,
obs-studio,
cmake,
qtbase,
qt6,
ndi-6,
curl,
}:
@@ -15,12 +15,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
cmake
qtbase
qt6.qtbase
];
buildInputs = [
obs-studio
qtbase
qt6.qtbase
ndi-6
curl
];

View File

@@ -6,7 +6,7 @@
pkg-config,
ninja,
obs-studio,
qtbase,
qt6,
libxt,
libxtst,
libxi,
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
obs-studio
qtbase
qt6.qtbase
sdl3
libx11
libxau

View File

@@ -5,7 +5,7 @@
cmake,
curl,
obs-studio,
qtbase,
qt6,
}:
stdenv.mkDerivation rec {
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
buildInputs = [
curl
obs-studio
qtbase
qt6.qtbase
];
dontWrapQtApps = true;

View File

@@ -4,7 +4,7 @@
fetchFromGitHub,
cmake,
obs-studio,
qtbase,
qt6,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ cmake ];
buildInputs = [
obs-studio
qtbase
qt6.qtbase
];
postInstall = ''

View File

@@ -4,7 +4,7 @@
fetchFromGitHub,
cmake,
obs-studio,
qtbase,
qt6,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ cmake ];
buildInputs = [
obs-studio
qtbase
qt6.qtbase
];
postInstall = ''

View File

@@ -6,7 +6,7 @@
pkg-config,
obs-studio,
libGL,
qtbase,
qt6,
flatbuffers,
}:
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
obs-studio
flatbuffers
libGL
qtbase
qt6.qtbase
];
dontWrapQtApps = true;

View File

@@ -4,7 +4,7 @@
fetchFromGitHub,
cmake,
obs-studio,
qtbase,
qt6,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ cmake ];
buildInputs = [
obs-studio
qtbase
qt6.qtbase
];
dontWrapQtApps = true;

View File

@@ -4,7 +4,7 @@
fetchFromGitHub,
obs-studio,
cmake,
qtbase,
qt6,
fetchpatch,
}:
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
buildInputs = [
obs-studio
qtbase
qt6.qtbase
];
cmakeFlags = [

View File

@@ -4,7 +4,7 @@
fetchFromGitHub,
cmake,
obs-studio,
qtbase,
qt6,
}:
stdenv.mkDerivation rec {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
buildInputs = [
obs-studio
qtbase
qt6.qtbase
];
cmakeFlags = [

View File

@@ -4,7 +4,7 @@
fetchFromGitHub,
cmake,
obs-studio,
qtbase,
qt6,
}:
stdenv.mkDerivation {
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
nativeBuildInputs = [ cmake ];
buildInputs = [
obs-studio
qtbase
qt6.qtbase
];
dontWrapQtApps = true;

View File

@@ -8,8 +8,7 @@
curl,
dbus,
pkg-config,
qtbase,
wrapQtAppsHook,
qt6,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -19,11 +18,11 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
pkg-config
wrapQtAppsHook
qt6.wrapQtAppsHook
];
buildInputs = [
obs-studio
qtbase
qt6.qtbase
zlib
curl
dbus

View File

@@ -5,7 +5,7 @@
cmake,
curl,
obs-studio,
qtbase,
qt6,
}:
stdenv.mkDerivation rec {
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
buildInputs = [
curl
obs-studio
qtbase
qt6.qtbase
];
cmakeFlags = [

View File

@@ -16,8 +16,11 @@
vulkan-headers,
vulkan-loader,
libGL,
obs-vkcapture32,
pkgsi686Linux,
}:
let
obs-vkcapture32 = pkgsi686Linux.obs-studio-plugins.obs-vkcapture;
in
stdenv.mkDerivation (finalAttrs: {
pname = "obs-vkcapture";

View File

@@ -5,7 +5,7 @@
cmake,
obs-studio,
pkg-config,
qtbase,
qt6,
nix-update-script,
}:
stdenv.mkDerivation (finalAttr: {
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttr: {
buildInputs = [
obs-studio
qtbase
qt6.qtbase
];
dontWrapQtApps = true;

View File

@@ -5,7 +5,7 @@
cmake,
asio,
obs-studio,
qtbase,
qt6,
websocketpp,
}:
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
buildInputs = [
asio
obs-studio
qtbase
qt6.qtbase
websocketpp
];

View File

@@ -103,12 +103,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
writableTmpDirAsHomeHook
];
# Flaky test: reads the AGENT_BROWSER_CDP env variable without using the
# shared test lock.
checkFlags = [
"--skip"
"native::actions::tests::test_execute_unknown_command"
];
# Some tests use a shared state that makes them flaky when run concurrently.
dontUseCargoParallelTests = true;
__darwinAllowLocalNetworking = true;
@@ -135,7 +131,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
license = lib.licenses.asl20;
sourceProvenance = with lib.sourceTypes; [ fromSource ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
maintainers = with lib.maintainers; [ codgician ];
maintainers = with lib.maintainers; [
baptiste0928
codgician
];
mainProgram = "agent-browser";
};
})

View File

@@ -16,7 +16,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "bookorbit";
version = "3.0.0";
version = "3.2.0";
__structuredAttrs = true;
strictDeps = true;
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "bookorbit";
repo = "bookorbit";
tag = "v${finalAttrs.version}";
hash = "sha256-+1yTDRnq8gHWHJY2q24+EpkPjvZFLgzzUkfa/XQS55g=";
hash = "sha256-+0e/gZ5foYeb6jYghL/f66H5dbAyrsuj37fRChx2H3Y=";
};
pnpmWorkspaces = [
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
;
inherit pnpm;
fetcherVersion = 4;
hash = "sha256-A+qKEHVLKn/tvYOk+h+drjWx59nVTh0wnrBxwf+uGx0=";
hash = "sha256-zRmENCmKw2gHDYjVmPCXjKWEmDbDKCJEf03ZAmh1tYw=";
};
nativeBuildInputs = [

View File

@@ -76,11 +76,13 @@ flutter344.buildFlutterApplication {
description = "Note taking app where your ideas come first";
homepage = "https://github.com/LinwoodDev/Butterfly";
mainProgram = "butterfly";
license = with lib.licenses; [
agpl3Plus
cc-by-sa-40
asl20
];
license =
with lib.licenses;
AND [
agpl3Only
cc-by-sa-40
asl20
];
maintainers = [ ];
platforms = [
"aarch64-linux"

View File

@@ -94,6 +94,11 @@ stdenv.mkDerivation (finalAttrs: {
# fix "first argument in call to 'memset' is a pointer to non-trivially copyable type"
"-Wno-error=nontrivial-memcall"
]
++ lib.optionals stdenv.cc.isGNU [
"-Wno-error=unused-but-set-variable"
"-Wno-error=sfinae-incomplete"
"-Wno-error=array-bounds"
]
);
# TODO: add jbmc support
@@ -119,7 +124,10 @@ stdenv.mkDerivation (finalAttrs: {
description = "Bounded Model Checker for C and C++ programs";
homepage = "http://www.cprover.org/cbmc/";
license = lib.licenses.bsdOriginal;
maintainers = with lib.maintainers; [ jiegec ];
maintainers = with lib.maintainers; [
jiegec
mkannwischer
];
platforms = lib.platforms.unix;
};
})

View File

@@ -2,13 +2,13 @@
lib,
stdenv,
fetchFromGitHub,
buildGoModule,
buildGo127Module,
buildPackages,
installShellFiles,
writableTmpDirAsHomeHook,
}:
buildGoModule (finalAttrs: {
buildGo127Module (finalAttrs: {
pname = "circleci-cli";
version = "1.0.48571";

View File

@@ -8,16 +8,16 @@
buildNpmPackage (finalAttrs: {
pname = "claude-agent-acp";
version = "0.81.2";
version = "0.84.0";
src = fetchFromGitHub {
owner = "agentclientprotocol";
repo = "claude-agent-acp";
tag = "v${finalAttrs.version}";
hash = "sha256-5c4WTVtG628EwQq7WXDbFLu1u8wSAjlI7HbXsTH5xDg=";
hash = "sha256-9BbbkvdhWejAfCFvyRnFVMWKcpQ6lWOOBj+KI31ypww=";
};
npmDepsHash = "sha256-0Zjla0bbKrRKMT7SfBOKYmnbMw6zq27ddD2wxnbqg/Y=";
npmDepsHash = "sha256-GQJy5ey+B/ehKqH6M5ts1yuCcpW/dibB+SVyzLhNCHs=";
nativeBuildInputs = [ makeWrapper ];
@@ -29,6 +29,7 @@ buildNpmPackage (finalAttrs: {
meta = {
description = "ACP-compatible coding agent powered by the Claude Agent SDK";
homepage = "https://github.com/agentclientprotocol/claude-agent-acp";
changelog = "https://github.com/agentclientprotocol/claude-agent-acp/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
amadejkastelic

View File

@@ -1,7 +1,7 @@
{
lib,
stdenv,
buildGo126Module,
buildGo127Module,
fetchFromGitHub,
installShellFiles,
nix-update-script,
@@ -9,18 +9,18 @@
versionCheckHook,
}:
buildGo126Module (finalAttrs: {
buildGo127Module (finalAttrs: {
pname = "crush";
version = "0.92.0";
version = "0.96.1";
src = fetchFromGitHub {
owner = "charmbracelet";
repo = "crush";
tag = "v${finalAttrs.version}";
hash = "sha256-qAwbvPV1yxqQu7H6YyFYCth09Kg/c0akCTpQTfOXla8=";
hash = "sha256-iaZ0rw9585iLVj+HSWCiQnaj2XZ+eYr6zprpUs/47z0=";
};
vendorHash = "sha256-iq3EDdEwZEPzHrBqy0k8QLcLSCLGlezKxICWgo7vMqg=";
vendorHash = "sha256-ADDHgngAChNch8Sp6Zltw52eSlk7swEQG+R4fCxDbY8=";
ldflags = [
"-s"

View File

@@ -6,14 +6,14 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "cyclonedx-python";
version = "7.4.0";
version = "7.5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "CycloneDX";
repo = "cyclonedx-python";
tag = "v${finalAttrs.version}";
hash = "sha256-tyYMofGXtnk0tAaryhdcSaZxi8LDVJmuUMGeO6v0zdg=";
hash = "sha256-OF3ALdzTIjha+TmU92BRpKclJ4Iaeg1A3lAUD4Ss8fg=";
};
build-system = with python3Packages; [ poetry-core ];

View File

@@ -75,10 +75,12 @@ stdenv.mkDerivation (finalAttrs: {
amplitude, this software does not aim to be an audio editor.
'';
homepage = "https://gillesdegottex.gitlab.io/dfasma-website/";
license = [
lib.licenses.gpl3Plus
reaperFork.meta.license
];
license =
with lib.licenses;
AND [
gpl3Plus
reaperFork.meta.license
];
platforms = lib.platforms.linux;
};
})

View File

@@ -1,78 +1,78 @@
{
"linux-canary": {
"distro": {
"hash": "sha256-u4BDfFut8koEMRENcSWUiXNO4A5VEXbP7Yau3Nkh4eA=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/full.distro"
"hash": "sha256-83XO5J0gV/1j5t3S1eXfehIXOMPNOix4HlX2TUswaIE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-OtdXA6Gb/K0SNf/hVorTvcdlKruWCyHmWeKtyXGvFYs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_cloudsync/1/full.distro",
"hash": "sha256-HX5nEZCJdl365ruy49WPwW2Sh1/C+50llvyDMZT8oQc=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-oSCSTY/S3jHbSzb9EYtsqmCbrKQvCTbB7Wd+qvbDOF4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_desktop_core/1/full.distro",
"hash": "sha256-FPuXtyEYLmKeHdM86qyEcND4FpBg13Z9G5JCpo5/XHg=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-JwtutjBjBUCpwm3HeJEC65pSsRKadRMX8TG/BVWexx0=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_dispatch/1/full.distro",
"hash": "sha256-vR7v9Q+q01ni3Gyf0NbVz2Xta0QQ6eRbwQFNcpBxubo=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-uiTu+4kbRvxfS5fGBx8I3RNDAfA8u+y3TIDdcCJ8xVs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_erlpack/1/full.distro",
"hash": "sha256-2OAr7k9HVo+qQD6MuAKL9BUy8f6C5azfCaO/4T/PwLY=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-3g5+GZUeS0rSMRwzxntegECqVo4b8mYgdingByAms3o=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_game_utils/1/full.distro",
"hash": "sha256-auTyx1fv/kbxY3zearaVbqQfPLxxnsYiwqmjnXf7n5g=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_game_utils/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-YoWde/uWpzhnO3JC4WKGBStQkAk9DwOqk1i+hYu/QLo=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_krisp/1/full.distro",
"hash": "sha256-lIZDJoDq8+vWS7YDC2P3/W77mYMriezS817nOQYIv3M=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-RgwpoI1XCuQv3zc7dR+Ra1PeYF6utSyy/gWs8fQRn5g=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_modules/1/full.distro",
"hash": "sha256-teTSKsnePR/JzRyUjrv9ND7tjSmOhs/duPA43pWqQ5U=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_modules/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-kgTEQS2xhZ89KRLbYF7GLU5L4WSxSP5J4Fj333TKaEs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_rpc/1/full.distro",
"hash": "sha256-imFX0kfoT8cRgacN5iG18Pp+4kGp9u7vicV49fgbRHM=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-Vcjti+8lmVru3OwcSlI6DmP2FPOCbo2NsYeilPQZuUw=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_spellcheck/1/full.distro",
"hash": "sha256-RDbRlagXIq1rZ5x+XFbP/wUuUFYVJdllqArVcMyhWH4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-Nx1+SXMmBFbOL2SIsUUhjo9U4yVLgVapMXUdht12PMU=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_sysimg/1/full.distro",
"hash": "sha256-R1ZXcq2khyNs3ILFJUf2XfmcEvdgqlES9JNVjSJrTjI=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-38Yw5bmhATZuncVELXANGmFa3L9XjaYRJnuF+P/8MdE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_utils/1/full.distro",
"hash": "sha256-kRTqIsfzSJoig4mofjKMue7xxcesTIw0pLIJhkZ8RR4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-68QTGzpm+JwhjaNaCAQbUgqQEPywK9eJNC9ukueTUiM=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_voice/1/full.distro",
"hash": "sha256-64gYsdgW1CRrqIyqH1WcbFzmPjl1wEha5BJIo5B7uLg=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_voice/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-u3CMlGZn/AazRvVmC40Mc+OiDEdokoFkjdlOb2PLI70=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_zstd/1/full.distro",
"hash": "sha256-x/hP1aOwUq96l+yucsgMCUd3vf1r60/dR7hES4FYBQE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2050/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.2010"
"version": "1.0.2050"
},
"linux-development": {
"distro": {
@@ -82,69 +82,69 @@
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-7WmL3OGf1KN5cA2vFk2QRPeNQsvwSZHBQSmK3sKB39Q=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_cloudsync/1/full.distro",
"version": 1
"hash": "sha256-xXKLhvvVLYTon7LQzPp+JDv+pLQi2NHQnzVq6a6GQBU=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_cloudsync/2/full.distro",
"version": 2
},
"discord_desktop_core": {
"hash": "sha256-BQyAlQM9ccx0O9gq5dyox+qwY8GDJyaIGpX24OQLqqI=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_desktop_core/1/full.distro",
"version": 1
"hash": "sha256-iNQ2yGXhcLVKGu8wPOuId+PmdG7Y1xx6KlOHBRbH1gQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_desktop_core/2/full.distro",
"version": 2
},
"discord_dispatch": {
"hash": "sha256-RiiIbawRV6E185x+vyXlWyMaX5Kby0ezNDkPuAuGCLc=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_dispatch/1/full.distro",
"version": 1
"hash": "sha256-YdRmTxJdmnAmZh7Q9xs57YQZ2nl8Ipaz6k8KjTn0DG4=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_dispatch/2/full.distro",
"version": 2
},
"discord_erlpack": {
"hash": "sha256-z4zmcxI0bwu1e2RrqJgyETqeofs4zvErFcIusxh9dBU=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_erlpack/1/full.distro",
"version": 1
"hash": "sha256-42C1Yp7usCOBiI8LilabBcuvvQt4lw1YjPZl1RwhyXQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_erlpack/2/full.distro",
"version": 2
},
"discord_game_utils": {
"hash": "sha256-rIfLBAJfgK5lA2M3KAe2iVeTPSf6JtoJB8bQOY3LKIk=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_game_utils/1/full.distro",
"version": 1
"hash": "sha256-omEdvkmPO2zaDKRf3KONcyZmUjkDnXEgwAj/up2+xg0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_game_utils/2/full.distro",
"version": 2
},
"discord_krisp": {
"hash": "sha256-czwuwablQoZwNYmGDYSg7/QBv8BYvHqNZPZt1B0koNs=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_krisp/1/full.distro",
"version": 1
"hash": "sha256-eczIZz/JJwSf9LUcnINr6JERJsukDf6iG6Dx6+QBGc4=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_krisp/2/full.distro",
"version": 2
},
"discord_modules": {
"hash": "sha256-abUJ7DO8FXMpjL59OIRZPZW9ceIWSWaui6Gpe+gjkd4=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_modules/1/full.distro",
"version": 1
"hash": "sha256-B69z+xaAlahdEW8o4Lf+uSCRznSU8L51WJ2bfCx7V3c=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_modules/2/full.distro",
"version": 2
},
"discord_rpc": {
"hash": "sha256-RnoA44FbQpvG8RkaTici9BUgsFlCqEbBMBOdrBSGB08=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_rpc/1/full.distro",
"version": 1
"hash": "sha256-xwrfWr9rPfjgtwMlhaR/QCii+1IGPoTOo8pvh0BTVbg=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_rpc/2/full.distro",
"version": 2
},
"discord_spellcheck": {
"hash": "sha256-3Gp+TINtiO8FYzGWU+FQh5cmRrRIn21nBN6DSXr9kzI=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_spellcheck/1/full.distro",
"version": 1
"hash": "sha256-/igsTIZHk4eLlF8o4ZCjO4PHM3WAk+6G7/tB5bvhTOQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_spellcheck/2/full.distro",
"version": 2
},
"discord_sysimg": {
"hash": "sha256-mcUuZe5UTheBZFn+Us2KRFlTbzeea3Uq6P450mLmRHA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_sysimg/1/full.distro",
"version": 1
"hash": "sha256-NkoDmpzCLjLTq3oAA3xJ8wOy8CsAqoxbniZwnGEzV2M=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_sysimg/2/full.distro",
"version": 2
},
"discord_utils": {
"hash": "sha256-dUcITYjNytwjMCJpCxqG+phnMInXaespTTYZx4foWF8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_utils/1/full.distro",
"version": 1
"hash": "sha256-KfAbigHc+cQn90Xr/jZBnYzrcc3HC5CTRDXw3YoDIdQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_utils/2/full.distro",
"version": 2
},
"discord_voice": {
"hash": "sha256-4xuxMvgYlwel+uQbQs4oSXrv7mteqVCngfvEc5HA+s0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_voice/1/full.distro",
"version": 1
"hash": "sha256-BsfZ3ngaam0Nr5fz0cLflPNK9N5+hdJHO3qjcPrjHeA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_voice/2/full.distro",
"version": 2
},
"discord_zstd": {
"hash": "sha256-DFtMCneWPEkEBSqi4ioZd8JS//yayU6bl5C1Mf8NYms=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_zstd/1/full.distro",
"version": 1
"hash": "sha256-8Dm0UUGJ4Gycy6NxptZz5RPyArg4b+uAdivQVBZMkg0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_zstd/2/full.distro",
"version": 2
}
},
"version": "1.0.1012"
@@ -162,9 +162,9 @@
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-YG5ky9Tjh72D5Fn13RxBC9OMssrC2I1pby9uu8VpRGo=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_desktop_core/1/full.distro",
"version": 1
"hash": "sha256-ac0iPp1ECq6PXcq6wGBm07fUELVqAxzfWA9FtBM089c=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_desktop_core/2/full.distro",
"version": 2
},
"discord_dispatch": {
"hash": "sha256-cMmC0SJrE85rzP9hlSacDqQDbcaY4cpxDh3LJXZ8JSY=",
@@ -226,168 +226,168 @@
},
"linux-stable": {
"distro": {
"hash": "sha256-SS+fRoAZv/8V3YIPX4Ng/xukej6I1j2Jt1mru/TOGKk=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/full.distro"
"hash": "sha256-Yf2S1IUnxGql2voqimJeG5aou1AoIgbAQ3qUibAUVWI=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-Flg1s5h1b4wO2Fa1jyxntXZAKsQjfGrwAp3f9qqv568=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_cloudsync/1/full.distro",
"hash": "sha256-ZLZlEB+vYFh65n4gkuG2N1hiFNpZlCKKvyyrq5amlqo=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-gCanHeTYXtRwRtM3qZIUeevUnn7/yUd2PqGtsz7FySY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_desktop_core/1/full.distro",
"version": 1
"hash": "sha256-efB4/1UUz+LQdrzOTFgPhz5nQC/2PTHU29MruExW38k=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_desktop_core/2/full.distro",
"version": 2
},
"discord_dispatch": {
"hash": "sha256-Hf3z6mWRIPajBapg0zE6g/VIiq5wvDXv9bearVHW5JE=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_dispatch/1/full.distro",
"hash": "sha256-XOib0/SrhV8EK/um8oc+4nEPCZ81BPU8r2TfviDDzX8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-ctkRMFtr4fteOEnSWBEUW7MjEkLtnQ0tn7upvjzmixg=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_erlpack/1/full.distro",
"hash": "sha256-LBUdVEbJk2S7i76AdTrESi9LiUeHa8ki4Foe9KFX/vA=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-HmCDr5/AK/zuqFZkxbktxL6+WByFrSElXaHqriK70ek=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_game_utils/1/full.distro",
"hash": "sha256-E1T69jb9WT96vwPWD9g1RejpSDHLIXbYTsF2GJnV2cA=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_game_utils/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-ySGOnM7ZVPWieeqvVcwv8Z007rJbnzNB27ww4cucVXY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_krisp/1/full.distro",
"hash": "sha256-qpW/S11u2nezFuH5N/xFXafobEPrUORyC4bMN3hinDo=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-pJ1tYeVcS2/m7m8Ck3KNgHoUjjgclG3LNRCXRUhQT7I=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_modules/1/full.distro",
"hash": "sha256-SUezfQQzT/A/66yAAHrds0TSY0NAlzwgiPin7Rr5kHo=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_modules/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-0IX32PJf2oIvt9S7QakfdChgiW913WEpLCeU1vsKiCM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_rpc/1/full.distro",
"hash": "sha256-aUm4J9d9QfQ5Bh3AL5R00zFqrFt1tbXVvwrxmM+bcHU=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-3wQlG3RzJOdvYDwSG87rB+l35T0w7L0JkVuHquAZvyE=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_spellcheck/1/full.distro",
"hash": "sha256-UJ3TIL1QlJ078NYNsbBhoY+l7tknTGamtgmsvsb3NU4=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-xNqj+tpoupPzjTRQ/g8HrNcEEofEIdaqe8x5qlnOzec=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_sysimg/1/full.distro",
"hash": "sha256-c5nH7dbrVcmvu3XGe1N99Sy7/bO1pCVWXw85j4oSf24=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-IQ3wyUNKkDqSHXnDya298I6ZTAmOQ+xqh7S/BTO0el8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_utils/1/full.distro",
"hash": "sha256-tILNUFJPTyuNRgL4s4PTgZSHpJnWJ6erN0aJ5JRt9YM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-l9hesjeBC1gz3d24dzCruv0XyVoUTawaRSXihbni6mI=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_voice/1/full.distro",
"hash": "sha256-woGTYNHbRMpv3ypL5QXWuBlSCSKORkqCKhyPxVFsZmU=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_voice/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-8ISi8oaI2XuhnHDs1z7AkG+W5wEG8uXAQAH1E1nYTv0=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_zstd/1/full.distro",
"hash": "sha256-ACB2tKxTaEhx01MxVOy3SDfzlCLih2Exs60z1piht/U=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.160/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.159"
"version": "1.0.160"
},
"osx-canary": {
"distro": {
"hash": "sha256-+hWiUN5Zg0Q1V+4kiJZ+Oy/jS5VrI7vqfxhBEPsY7Ik=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/full.distro"
"hash": "sha256-qTgkOAC/mfgQgaGkgSa9oXy/HOsV9lTTg/DLaByXWgs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-CkHf7h643AODJpf9WUg+V50SLDDm66iWa89IxJMGjUs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_cloudsync/1/full.distro",
"hash": "sha256-HiWJnXI5zIGVVEWni2yPNx4xHHiEN5SE1SvHFJufABc=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-45/Ql70030WSutoDXqwJXz+ceF37m//r1wg7mDpR0DQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_desktop_core/1/full.distro",
"hash": "sha256-gB7QdGwrVyciWLXPZUkxRxpn360uFZIfmsNkhgAgfJQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-hL0Ok+Vot0Bx/0Zz9e/Y2iRvH8UBYRIuBpmTH4VZ870=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_dispatch/1/full.distro",
"hash": "sha256-U90gYov/eNoBaKQ9YHAz5hVwQkZUWldHunyoAPLm4YU=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-xM2LcBT7JGBX0+WKZpYcRjaxs91HdGWMc0H/TDh1440=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_erlpack/1/full.distro",
"hash": "sha256-CfNOM8CEI+WhSijaSkqL/G/nFVkXcBh+ETM73RUBc1Y=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-ynQsKTEX1QZ28Xwvq4J6EpktRZQk6iLeAU8pjry3260=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_game_utils/1/full.distro",
"hash": "sha256-0JBt/7W2Zi/Z2Rel74ZrsYnZWofRXx20GlzeZ9eXvUg=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_game_utils/1/full.distro",
"version": 1
},
"discord_intents": {
"hash": "sha256-n/DsoWO8nYHEl4BPckeUny85xnAcJHRYqajRS8R9uLg=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_intents/1/full.distro",
"hash": "sha256-McDTtVrzVp5LvngrvXd+iy7Ax+w5atLe1NyJ7Q4okHI=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_intents/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-ZtkZG1MRsOPESHsVtuDkfCobFe9sq06w4CFLBmLEt6M=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_krisp/1/full.distro",
"hash": "sha256-N3s1lpqRY3dhXE69G3heD8N2ct4FWOAa0dyV1467EqM=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-E2qC69Ff6ijiPvstZ7tRfBolQRvd4NUfUO4hR9rPvs0=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_modules/1/full.distro",
"hash": "sha256-XnbVkqp5k7S8lztqvPFOkvhzACz6us6fY0x7y+YyQFE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_modules/1/full.distro",
"version": 1
},
"discord_notifications": {
"hash": "sha256-0cObBRuHfAcO1iu9HmE03yoFzzQCSMUtHKBEi+VJoMw=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_notifications/1/full.distro",
"hash": "sha256-omq0UG6//UX2KUPm3sEyAarCsnwcDHpxo43U+OpDcGs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_notifications/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-+GUlU0TIP0BYpesGwwUCx8mTNNP9BczQnVJIjZTqp0w=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_rpc/1/full.distro",
"hash": "sha256-PtlQK/TL4flbdelRBHcU6XBwq3BoE7RlvxM3OlvjE88=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-/U3hEDhI0tE6ay34Fpav4XtGMsLRFfvqoZYb2qg++PE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_spellcheck/1/full.distro",
"hash": "sha256-CbWpBZcp4ldOsRh2+oZXmmILKNgpLmlx7gewO8TLIJ8=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-QDdz1K+MdWexh8EmUSHwHjwaTeDtNfZdTnj56N/M7yY=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_sysimg/1/full.distro",
"hash": "sha256-Xy4wGjgWYhX26+VeZzQvxXfCpxhCnLCvOp6zHLob8ec=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-N4OfoOgb+5wk+Xy+G5KVUmCLfTVp0Sh+XG0SpgAwdMk=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_utils/1/full.distro",
"version": 1
"hash": "sha256-dV4Ym4qIW5/dtZLSATZjd0n8eOCmlMxVX7vs+jBJ7Uo=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_utils/5/full.distro",
"version": 5
},
"discord_voice": {
"hash": "sha256-aNncuumXBFu28I/1SqcwFtesbUR0i73eogXGS0K6rSI=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_voice/1/full.distro",
"hash": "sha256-Yr27uQPbckOJ9Y/cFYvmuI6w1l2JjXlH6QBGltR0l6k=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_voice/1/full.distro",
"version": 1
},
"discord_webauthn": {
"hash": "sha256-SjOgWEuqWrTSiYf3IFNLR4O7UhUJpKBF7ehm6N8/Hn8=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_webauthn/1/full.distro",
"hash": "sha256-ornaoTyYwRVW3bVNuPsG2KTEoO33kWEMuS5eydM3u+k=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_webauthn/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-UUwwShc/uQXafcqqrRIDQGpmkck9zcAVs/NxNn4Oiiw=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_zstd/1/full.distro",
"hash": "sha256-lHZ/py4p9pauk+UkYjEN2r+BPWMKW4hgki90C953XbM=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1351/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "0.0.1345"
"version": "0.0.1351"
},
"osx-development": {
"distro": {
@@ -397,84 +397,84 @@
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-L8fU45CnFo5OGKJY08hFtOIMJg3LZ7m6Dmn+lbaYYtY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_cloudsync/1/full.distro",
"version": 1
"hash": "sha256-2fgKfNO/Zh9DHpem2LaloloaHNDrNv4TQD1++Sq8AE8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_cloudsync/2/full.distro",
"version": 2
},
"discord_desktop_core": {
"hash": "sha256-gw2S79nPa0eMTePiC4Vw1dKtGbZSLLYWpRljQaUqmQ8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_desktop_core/1/full.distro",
"version": 1
"hash": "sha256-tn+3FKOuzvukIeYmEy7lP/yJsa1y8san8rnhNZxD2zI=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_desktop_core/2/full.distro",
"version": 2
},
"discord_dispatch": {
"hash": "sha256-sAAT1Hk0qBJMe1liNh4KOv9kQSRbXmFy9iwZ42mR6TM=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_dispatch/1/full.distro",
"version": 1
"hash": "sha256-azcX6K7M9RsKsgZN0chr3dw9EBsqLBhJk+1wnd0KqVE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_dispatch/2/full.distro",
"version": 2
},
"discord_erlpack": {
"hash": "sha256-10kIZjyAvpQsMDL/F6f72t9Edv+fQ0BlhT0BwTQPRM0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_erlpack/1/full.distro",
"version": 1
"hash": "sha256-NG6IIEgoGq3vlAfocWeCACws+OuzPm63oNg40Dio4OQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_erlpack/2/full.distro",
"version": 2
},
"discord_game_utils": {
"hash": "sha256-caUv9DGk7Zgkeploix92aiVrJLwFHzzeWZsgbRQetkI=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_game_utils/1/full.distro",
"version": 1
"hash": "sha256-Xs2oaVYAWEWVMwQrYuEYqje6OPrMcbVEPwE3/YnFCVw=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_game_utils/2/full.distro",
"version": 2
},
"discord_intents": {
"hash": "sha256-4FaAvVLC6LNn3OGK7o6WOw/acx+pJYi7JxorgLUv8ro=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_intents/1/full.distro",
"version": 1
"hash": "sha256-WOwwf4h8/sO5sfhQxaKJ0UbyUqX96pOBXTtPwzHmOXk=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_intents/2/full.distro",
"version": 2
},
"discord_krisp": {
"hash": "sha256-njAKEa5Txqxua0/TLLjXzM9o9LvYhmi+d2AW2L50IZ8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_krisp/1/full.distro",
"version": 1
"hash": "sha256-4eHaDCepK+9LBuuNeAAN6IlSc9e/0mPSuRPSXwYK7nc=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_krisp/2/full.distro",
"version": 2
},
"discord_modules": {
"hash": "sha256-ybg2tgjH0A2Eh1vID8IX6yOeMqCN1nJ0WdB7FEHHX34=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_modules/1/full.distro",
"version": 1
"hash": "sha256-BYlQTshu/WAN9025Fzm6DGfkz0RSMF7d8+7SGopVGM0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_modules/2/full.distro",
"version": 2
},
"discord_notifications": {
"hash": "sha256-pAiZqFb4weJK9PYHhAOyEokl9WXHtkIZDYg7LD7jw2s=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_notifications/1/full.distro",
"version": 1
"hash": "sha256-VPAesFBhS7WQdc4sPavjqsLToeT5/hE2NG+vG60vKuk=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_notifications/2/full.distro",
"version": 2
},
"discord_rpc": {
"hash": "sha256-KyAKFjcAHzsSkD0b675ZZ2/JNotzUAcZSuLv2eq8jC4=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_rpc/1/full.distro",
"version": 1
"hash": "sha256-T0/nU/LgOmF3etW6bAXZHHL/Ee+yboqqMvp4gm8oT0g=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_rpc/2/full.distro",
"version": 2
},
"discord_spellcheck": {
"hash": "sha256-W5vNRWPT9WCh4Sj4RsDlHSMYOumVUoNgegI6vdjJeJw=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_spellcheck/1/full.distro",
"version": 1
"hash": "sha256-NHGJDvRQ6XKakUeh4o9CWmBJzAkcrTAybwqEYOdw+/k=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_spellcheck/2/full.distro",
"version": 2
},
"discord_sysimg": {
"hash": "sha256-/l7hCtsk8uSla7PZrDl+SodJbPnbW8Jk1JdTRMCXAis=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_sysimg/1/full.distro",
"version": 1
"hash": "sha256-jataH7tZmaSjE7O2n9O3iXe4971itl4JfrdlHIjoKwA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_sysimg/2/full.distro",
"version": 2
},
"discord_utils": {
"hash": "sha256-XB97VEE81GS3BJjhepLLtKc2pHYSetv3xvjDLHisYAw=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_utils/1/full.distro",
"version": 1
"hash": "sha256-KEfo/eoqquPBX8Vi13m+gkzySDJkdAAimc3asml3PLo=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_utils/2/full.distro",
"version": 2
},
"discord_voice": {
"hash": "sha256-8YSoF8v72J+cZqKVLl4RwRHkLt4+M6K3/dmwiXCjh9E=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_voice/1/full.distro",
"version": 1
"hash": "sha256-84hFSAlA8Fmu4uChSupfh7u8rMGgv5SOaYMfWwpNpXA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_voice/2/full.distro",
"version": 2
},
"discord_webauthn": {
"hash": "sha256-kA/gLGrv3fYmV4s+FLfeDuiAzTO0k6rWZLsglcNAhtM=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_webauthn/1/full.distro",
"version": 1
"hash": "sha256-A/EDqQRdkUIFHiE0QNwkk3e6ALq2MLIPymgTfdZdcHs=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_webauthn/2/full.distro",
"version": 2
},
"discord_zstd": {
"hash": "sha256-zQvjzYCROq80S7nxvh7ZB+7UzjI4cKEvMjwFm5WOQsA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_zstd/1/full.distro",
"version": 1
"hash": "sha256-73HADDS1gB5eXNlYGFVZbnVppgDUFt2d/BHnM1sU2HY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_zstd/2/full.distro",
"version": 2
}
},
"version": "1.0.1023"
@@ -492,9 +492,9 @@
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-MJzmVMqAN84tdg6agPEAwhHchSld88gJ/PIIp7Q6EGw=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_desktop_core/1/full.distro",
"version": 1
"hash": "sha256-nxQEIh3iEsRfjDBrdtvPPOwX6Jy1/FexcAGdCnCivW4=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_desktop_core/2/full.distro",
"version": 2
},
"discord_dispatch": {
"hash": "sha256-Y71+yng3J27Afm5UuEw2bjEmCT0mmT+6XiHqKykpOek=",
@@ -571,92 +571,92 @@
},
"osx-stable": {
"distro": {
"hash": "sha256-QLObkBgCHPEytuT4mnBZrCyQgSvcU3mvPCrhYuJpt6w=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/full.distro"
"hash": "sha256-m8kNZRmrBCpAOZyefohah/RHAAX+o3xPgpyPbfoiwtU=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-EW+QQr887OgQh4QhJBfq5d+n29Qkye0icm7Tpv0mCiM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_cloudsync/1/full.distro",
"hash": "sha256-TI0Wn3tKeRFSuxzY+fqjfD803wGs1oXfOLLe44EAT60=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-vOwayV7KcAV9VMsAJNjQd4Oc5SJIleUney5uji8+j5E=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_desktop_core/1/full.distro",
"version": 1
"hash": "sha256-jzHQPy4po7SIQaYH5Lh12MARxxkt4u6fQrYvCsxh9aQ=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_desktop_core/2/full.distro",
"version": 2
},
"discord_dispatch": {
"hash": "sha256-gGaIOeljjC88z4UKkBvgxOsiDhYyWKVh4rZCn8O4XIk=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_dispatch/1/full.distro",
"hash": "sha256-5DIzw2AiucbTUEu5PK7e6PwVQF9PNObofKReXjSygFI=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-k44L+5yLKtx3jtUGddhtus6FU/2QeJLG3tpfvIPQv/g=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_erlpack/1/full.distro",
"hash": "sha256-lxLJUFOUP/4/BCeuE1TTROekK2U5zg28VTHLnkBvcWY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-CQHLfLekzrbFyaWIwAYXHXtTpkED4l6eX/2eTWlIh1M=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_game_utils/1/full.distro",
"hash": "sha256-2ZugIiASIgZ8aw/tVO6iODNCq7r9AipL+7FVjG8k228=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_game_utils/1/full.distro",
"version": 1
},
"discord_intents": {
"hash": "sha256-FHbCbqG32t4slAI1pxl6BzghtKNz62qyeWHi075/zKY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_intents/1/full.distro",
"hash": "sha256-rA9AP6K/Nvbn+21mcMMtutoo0eizbbEaOcp1pJNms1M=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_intents/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-KroterrE5sGmyCCJqHQUjupz0aPVBayQ+7bKUt+F/cQ=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_krisp/1/full.distro",
"hash": "sha256-rtfc0TUR/hxwDsaDUAgBiRQ17gID1wj2MTD378ifEAw=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-7LGp7cvRbtB3Ur0cV98gBmZLVLsJWQEuCXFLpG1OyeY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_modules/1/full.distro",
"hash": "sha256-Gt1kXL6cpZkFKmdptOzZ6dG/ZagGWI6ZW+SxX04+Vag=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_modules/1/full.distro",
"version": 1
},
"discord_notifications": {
"hash": "sha256-n98wITVAtU7LaH0OftU32Gk/fkyTszYf5Ofr5uqABw8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_notifications/1/full.distro",
"hash": "sha256-M/j8vxuNTiu0MHDYUyAg74Hco8o9jRU3RdqzWq3pMwE=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_notifications/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-DxjBxnhaHWopkN5tV1bnW034mC+u+UIY0ZWgwBpW15M=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_rpc/1/full.distro",
"hash": "sha256-QIk1D90Zt3E+WXrF76W7c+85qhYhlrwWNjKQLGqRGdg=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-DhMB8KMC2AGDYK+iuD/qFgW8ZXnaxkB1+wkThRJ/Qyc=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_spellcheck/1/full.distro",
"hash": "sha256-hy8MIe9JE3yhAmOY01b4+14r4xMyBlfbJzVpaOwp+OM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-nRAXBgDOe2rD233V/1oD4A48QYvxNsLDBXQkk6zs1W8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_sysimg/1/full.distro",
"hash": "sha256-I5fGSgdqEgjQKv+9FV9AdCTOIMoCY2umtMEQEHYoSM4=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-YC/2ClGXm7ASRk3S/KkdwtMvKeQUEwfvTrB90vw6F58=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_utils/1/full.distro",
"hash": "sha256-P+od458JCfOD/dFMwH4Aa8fcnJh0COOwXEASMHXIf+M=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-dVweX8sFoI6CBysvSsq/yge2eYSBCTT9jcLRGplpH1E=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_voice/1/full.distro",
"hash": "sha256-vosH0u5B3Rn6VzI/xhEF9xaJB8HfOhhs1FKbVIn/XwU=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_voice/1/full.distro",
"version": 1
},
"discord_webauthn": {
"hash": "sha256-K3ngxy1FoozdYzd/8aihBcAuZXEHQaGCpeocBI81dPM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_webauthn/1/full.distro",
"hash": "sha256-a2FLp+3HSzjxw9RGFnV+D1cJrkOiIyEk4pLdhQzk9bg=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_webauthn/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-yC8e6EGzHr7f8TpVVCE5yBB8J+p/3mQ8wuvajdY6mfM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_zstd/1/full.distro",
"hash": "sha256-+3/5gtwTnNpVXMwGC1qmyoQCxeMHNE2LoAjT5JBT3Pk=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.414/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "0.0.413"
"version": "0.0.414"
}
}

View File

@@ -13,7 +13,7 @@
}:
let
php = php85;
version = "6.6.6";
version = "6.7.6";
# Release tarball contains translations downloaded from crowdin
releaseTarball = fetchzip {
@@ -25,12 +25,13 @@ in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "firefly-iii";
inherit version;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "firefly-iii";
repo = "firefly-iii";
tag = "v${finalAttrs.version}";
hash = "sha256-OfdMx0qiEszFRsgZlF7KILLNA+XBzcD4c2oWIzdIGfk=";
hash = "sha256-v9Bfd8bQemO4jkLg+KHLkjJupqOKoa+7wh19hzdxKeQ=";
};
buildInputs = [ php ];
@@ -48,18 +49,17 @@ stdenvNoCC.mkDerivation (finalAttrs: {
inherit (finalAttrs) pname src version;
composerStrictValidation = true;
strictDeps = true;
vendorHash = "sha256-pdgXnNTE3iQ/v6t23nc7FojvVbB74W1AhiP7Z1XACUA=";
vendorHash = "sha256-Ne0twRNAuTx9wJOEa2bvEIuBNkChveg/9YAMR33PNhQ=";
};
npmDeps = fetchNpmDeps {
inherit (finalAttrs) src;
name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps";
hash = "sha256-7RvuwFI7NrPwjkS0Lz56ItcHAPt2Sp3iarod+FrNon0=";
hash = "sha256-JEpMwD18zCccRKLw7S3tfBrwLd/RcSbf7SOM0Y9sN8k=";
};
preInstall = ''
npm run prod --workspace=v1
npm run build --workspace=v2
npm run build --workspace=v3
'';
passthru = {

View File

@@ -122,5 +122,6 @@ stdenv.mkDerivation (finalAttrs: {
maintainers = with lib.maintainers; [ iedame ];
platforms = lib.platforms.all;
mainProgram = "freedink";
teams = [ lib.teams.gaming ];
};
})

View File

@@ -36,16 +36,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "goose-cli";
version = "1.47.0";
version = "1.49.0";
src = fetchFromGitHub {
owner = "aaif-goose";
repo = "goose";
tag = "v${finalAttrs.version}";
hash = "sha256-+sowkBtUbpBPAgi1Tn1WSgIac2yzCWsXcsh96Pp5VSY=";
hash = "sha256-KTHfaPJ3Vf2b6efMr0k9/AAMykDaG0lgSVCUpL58fnk=";
};
cargoHash = "sha256-rJnhi14eKkYBK1rmQsRTb3lS2ChklOZ8mOA/H1iclh0=";
cargoHash = "sha256-78E/J64RIy7AkFODLVQBFy8HPUtT2ODLwNAstErRMdQ=";
cargoBuildFlags = [
"--bin"
@@ -116,26 +116,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
# vars, OnceLock caches) when the lib tests run in parallel
# https://github.com/aaif-goose/goose/issues/11059
"--skip=hooks::tests::matcher_filters_by_tool_name"
"--skip=plugins::discovery::tests::enabled_in_config_keeps_plugin_without_modifying_config"
# the mock provider can finish before the polling loop observes an active run
"--skip=test_steer_session_adds_input_to_active_prompt"
# integration tests that need network access
"--skip=test_replayed_session::vec_uvx_mcp_server_fetch_vec_calltoolrequestparam_name_fetch_into_arguments_some_object_url_https_example_com_vec_expects"
"--skip=test_replayed_session::vec_github_mcp_server_stdio_vec_calltoolrequestparam_name_get_file_contents_into_arguments_some_object_owner_block_repo_goose_path_readme_md_sha_ab62b863c1666232a67048b6c4e10007a2a5b83c_vec_github_personal_access_token_expects"
"--skip=test_replayed_session::vec_npx_y_modelcontextprotocol_server_everything_vec_calltoolrequestparam_name_echo_into_arguments_some_object_message_hello_world_calltoolrequestparam_name_add_into_arguments_some_object_a_1_b_2_calltoolrequestparam_name_longrunningoperation_into_arguments_some_object_duration_1_steps_5_calltoolrequestparam_name_structuredcontent_into_arguments_some_object_location_11238_vec_expects"
# loopback_transport_does_not_use_environment_proxy sets HTTP_PROXY
# process-wide; concurrent wiremock-based tests in the same binary pick it
# up and fail with NetworkError. Remove once the fix lands upstream:
# https://github.com/aaif-goose/goose/pull/11262
"--skip=api_client::tests::loopback_transport_does_not_use_environment_proxy"
"--skip=anthropic::tests::fetch_models_treats_invalid_json_as_endpoint_not_found"
"--skip=anthropic::tests::fetch_models_treats_missing_data_field_as_request_failed"
"--skip=anthropic::tests::fetch_supported_models_accepts_null_error"
"--skip=anthropic::tests::fetch_supported_models_does_not_fall_back_on_missing_data"
"--skip=anthropic::tests::fetch_supported_models_falls_back_on_invalid_payload"
"--skip=anthropic::tests::fetch_supported_models_preserves_200_error_type"
"--skip=anthropic::tests::fetch_supported_models_propagates_auth_error"
"--skip=anthropic::tests::fetch_supported_models_propagates_auth_error_from_200_payload"
# otel span capture races with other tests' global tracing subscribers
# when the lib tests run in parallel
"--skip=agents::agent::tests::tool_dispatch_records_gen_ai_span_attributes"
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
# Broken on aarch64-linux: request capture races across session_id_propagation_test cases

View File

@@ -65,7 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
;
inherit pnpm;
fetcherVersion = 3;
hash = "sha256-suVaAsK8bzsb2nNbvlhb/lMjs3Q2fiKRo3TSpome6tI=";
hash = "sha256-FpnWCJsytxJ5w9yqWayU2ZNDCm7RgubU34ouIeNWqfA=";
};
strictDeps = true;
@@ -187,7 +187,7 @@ stdenv.mkDerivation (finalAttrs: {
exec = "goose-desktop %U";
icon = "goose-desktop";
categories = [ "Development" ];
startupWMClass = "Goose";
startupWMClass = "goose";
mimeTypes = [ "x-scheme-handler/goose" ];
})
];

View File

@@ -0,0 +1,26 @@
From 261bfe75d718abfc537ddcebfe805df01c33ab3a Mon Sep 17 00:00:00 2001
From: Pino Toscano <toscano.pino@tiscali.it>
Date: Sat, 25 Apr 2026 10:21:47 +0200
Subject: [PATCH] Remove template-id in constructor of template class
It was not required, and it is invalid now in C++ 20.
---
templates/defaulttags/cycle.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/templates/defaulttags/cycle.h b/templates/defaulttags/cycle.h
index 936c2a2e..a917555f 100644
--- a/templates/defaulttags/cycle.h
+++ b/templates/defaulttags/cycle.h
@@ -40,9 +40,9 @@ Cycles endlessly over elements.
template <typename T> class RingIterator
{
public:
- RingIterator<T>() {}
+ RingIterator() {}
- RingIterator<T>(const QList<T> &list)
+ RingIterator(const QList<T> &list)
: m_begin(list.constBegin()), m_it(list.constBegin()),
m_end(list.constEnd())
{

View File

@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
qt5,
cmake,
}:
@@ -30,6 +31,8 @@ stdenv.mkDerivation rec {
patches = [
./grantlee-nix-profiles.patch
./grantlee-no-canonicalize-filepath.patch
# https://github.com/steveire/grantlee/pull/93
./Fix-cpp-20-build.patch
];
outputs = [

View File

@@ -1,5 +1,5 @@
diff --git a/sandbox/gvisor/run.py b/sandbox/gvisor/run.py
index db074508..d94b3cc8 100755
index db074508..8aa09637 100755
--- a/sandbox/gvisor/run.py
+++ b/sandbox/gvisor/run.py
@@ -75,8 +75,8 @@ mounts = [ # These will be filled in more fully programmatically bel
@@ -13,7 +13,21 @@ index db074508..d94b3cc8 100755
] + (args.env or [])
settings = {
"ociVersion": "1.0.0",
@@ -157,17 +157,13 @@ def preserve(*locations, short_failure=False):
@@ -87,8 +87,12 @@ settings = {
# during imports, try commenting this section out. We could make imports work
# for any version of gvisor by setting mode when using tmp.dir to allow
# others to list directory contents.
+ # NixOS: runsc runs with -rootless, where only container uid 0 is mapped
+ # to the invoking (service) user. Any other uid is unmapped inside the
+ # sandbox and cannot read uploaded files (0600, owned by the service user),
+ # which breaks imports. Container uid 0 grants nothing beyond that user.
"user": {
- "uid": os.getuid(),
+ "uid": 0,
"gid": 0
},
"args": cmd_args,
@@ -157,17 +161,13 @@ def preserve(*locations, short_failure=False):
})
preserved.add(location)
@@ -33,7 +47,7 @@ index db074508..d94b3cc8 100755
# Support user-specific extra directories. This is handy if Python is
# somewhere weird and there is a maze of soft links to get
@@ -176,31 +172,7 @@ extra_dirs = os.environ.get('GVISOR_EXTRA_DIRS')
@@ -176,31 +176,7 @@ extra_dirs = os.environ.get('GVISOR_EXTRA_DIRS')
if extra_dirs:
preserve(*extra_dirs.split(':'))
@@ -66,7 +80,7 @@ index db074508..d94b3cc8 100755
# Set up any specific shares requested.
if args.mount:
@@ -227,18 +199,15 @@ settings['mounts'] = sorted(tmpfs_mounts, key=lambda mount: mount["destination"]
@@ -227,18 +203,15 @@ settings['mounts'] = sorted(tmpfs_mounts, key=lambda mount: mount["destination"]
# because gvisor is written in Go and doesn't use the standard library that faketime
# tweaks.
if args.faketime:

View File

@@ -189,7 +189,7 @@ stdenv.mkDerivation (
mkdir -p "$out/grist-core"
cp -r {_build,node_modules,sandbox,static,bower_components} "$out/grist-core"
cp -r {_build,node_modules,plugins,sandbox,static,bower_components} "$out/grist-core"
${lib.optionalString enterpriseEdition ''
mkdir -p "$out/grist-core/ext"
cp -r ext/assets "$out/grist-core/ext/"

View File

@@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gumbo";
version = "0.13.2";
version = "0.14.1";
src = fetchFromCodeberg {
owner = "gumbo-parser";
repo = "gumbo-parser";
rev = finalAttrs.version;
hash = "sha256-8mri7mLZkuIZgzE6p0yc41bNNyzGTV9V90OiA/9TkkU=";
hash = "sha256-ir63pDxENWAz1PNPBfjev2Sg46yaRNkE6cBjeuIudfY=";
};
nativeBuildInputs = [ autoreconfHook ];

View File

@@ -8,14 +8,14 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "harper-desktop";
version = "2.9.1";
version = "2.11.0";
__structuredAttrs = true;
strictDeps = true;
src = fetchurl {
url = "https://github.com/Automattic/harper/releases/download/v${finalAttrs.version}/Harper_${finalAttrs.version}_universal.dmg";
hash = "sha256-4A5QGuCEC7oBW9TkkbqKKoQ8MjbrlFWFCNxn1o2KFDs=";
hash = "sha256-eNrAsEW98pCMx+UoHQA+InSKp/b54FVE0KXf8VHNfok=";
};
sourceRoot = ".";

View File

@@ -43,11 +43,23 @@ rustPlatform.buildRustPackage (finalAttrs: {
xcbuild
];
postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace vendor/libghostty-vt/src/build/GhosttyLibVt.zig \
--replace-fail 'lib.bundle_compiler_rt = true;' 'lib.bundle_compiler_rt = false;' \
--replace-fail 'lib.bundle_ubsan_rt = true;' 'lib.bundle_ubsan_rt = false;'
'';
postPatch =
lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace vendor/libghostty-vt/src/build/GhosttyLibVt.zig \
--replace-fail 'lib.bundle_compiler_rt = true;' 'lib.bundle_compiler_rt = false;' \
--replace-fail 'lib.bundle_ubsan_rt = true;' 'lib.bundle_ubsan_rt = false;'
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace vendor/libghostty-vt/pkg/apple-sdk/native_link.zig \
--replace-fail '"/usr/bin/xcrun"' '"xcrun"'
substituteInPlace vendor/libghostty-vt/src/build/GhosttyLibVt.zig \
--replace-fail '"/bin/ln"' '"ln"'
substituteInPlace vendor/libghostty-vt/src/build/LibtoolStep.zig \
--replace-fail '/bin/cp ' 'cp ' \
--replace-fail '/usr/bin/ranlib ' 'ranlib '
'';
# Upstream binary tests are renamed, added, or changed between releases and
# depend on host process details, so Nix-only patches for them are brittle.

View File

@@ -1,6 +1,5 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,

View File

@@ -3,6 +3,7 @@
callPackage,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
pkg-config,
intel-gmmlib,
@@ -43,6 +44,11 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
# https://github.com/intel/compute-runtime/pull/879
./add-cstdint-include-gcc15.patch
# https://github.com/intel/compute-runtime/commit/c1eb6c1a183c2f69e0d6e9ed5aa042fac2201217
(fetchpatch {
url = "https://github.com/intel/compute-runtime/commit/c1eb6c1a183c2f69e0d6e9ed5aa042fac2201217.patch";
hash = "sha256-O8ZJaxIr4TF73T+fyEbNjEYFbgwLxIUWoYnorxh8ZTo=";
})
];
cmakeFlags = [

View File

@@ -1,6 +1,7 @@
{
lib,
boost,
cacert,
cmake,
fetchFromGitHub,
libgit2,
@@ -10,13 +11,12 @@
rust-jemalloc-sys,
rustPlatform,
sqlite,
versionCheckHook,
zlib,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "kingfisher";
version = "1.113.0";
version = "2.8.0";
__structuredAttrs = true;
@@ -24,10 +24,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "mongodb";
repo = "kingfisher";
tag = "v${finalAttrs.version}";
hash = "sha256-yuBHKHGj5woedq5sd1NnyJG2mod3r1zerrSvemQVH98=";
hash = "sha256-hhNwLhA7n/dHILYavbTYUasHHWLQkAVP5hb2Fp35wk8=";
};
cargoHash = "sha256-P4Sq8N/8mLAquWHAJYnfSkysmEGefXTTJke9rmdhhwE=";
cargoHash = "sha256-blflKXAIg+KM1DAqK6RbCGKywiguGv3IeiiCXwQAIUA=";
nativeBuildInputs = [
cmake
@@ -43,14 +43,12 @@ rustPlatform.buildRustPackage (finalAttrs: {
zlib
];
nativeInstallCheckInputs = [ versionCheckHook ];
env = {
LIBSQLITE3_SYS_USE_PKG_CONFIG = true;
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
VECTORSCAN_BUILD_FROM_SOURCE = "1";
};
doInstallCheck = true;
# Integration tests exceed memory limits and can crash
doCheck = false;

View File

@@ -33,7 +33,6 @@ stdenvNoCC.mkDerivation rec {
this font may not be sold commercially. See kochi-substitute for the free
Debian version.
'';
homepage = "https://osdn.net/projects/efont/";
license = lib.licenses.unfreeRedistributable;
maintainers = [ lib.maintainers.auntie ];
};

View File

@@ -47,7 +47,6 @@ stdenv.mkDerivation {
versions of the fonts, which remove some non-free glyphs that were added
from the naga10 font.
'';
homepage = "https://osdn.net/projects/efont/";
license = lib.licenses.wadalab;
maintainers = [ lib.maintainers.auntie ];
};

View File

@@ -29,7 +29,12 @@ stdenv.mkDerivation (finalAttrs: {
cmakeBuildType = "RelWithDebInfo";
cmakeFlags = [ "-DKTX_FEATURE_DOC=ON" ];
cmakeFlags = [
"-DKTX_FEATURE_DOC=ON"
# 4.4.x does not build with GCC 16's default of gnu++20; fixed upstream in 5.0.0
# https://github.com/KhronosGroup/KTX-Software/issues/1172
(lib.cmakeFeature "CMAKE_CXX_STANDARD" "17")
];
postPatch = ''
patchShebangs .

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "snes9x";
version = "0-unstable-2026-09-20";
version = "0-unstable-2026-09-24";
src = fetchFromGitHub {
owner = "snes9xgit";
repo = "snes9x";
rev = "cf2b0e5d1759a0dd143949db238e377d146b83ff";
hash = "sha256-K43/8IeLZZ84XazeFeD9EnjqtSlv9rk2/6lMSqh9YMI=";
rev = "1bcc369e89f08243e0a462882fb1f3e42e51de3a";
hash = "sha256-9YK7SMHOU/v2eyzXMYb8iXhfdcQ4bDyLYE0E3j11OBI=";
};
makefile = "Makefile";

View File

@@ -36,6 +36,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
description = "App to manage software development and track bugs";
homepage = "https://linear.app/";
license = lib.licenses.unfree;
mainDarwinApp = "Linear.app";
maintainers = with lib.maintainers; [
wini
pradyuman

View File

@@ -39,13 +39,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "linyaps";
version = "1.14.2";
version = "1.14.3";
src = fetchFromGitHub {
owner = "OpenAtom-Linyaps";
repo = finalAttrs.pname;
tag = finalAttrs.version;
hash = "sha256-5eDxCK1zrD2+rBjxU1WE9O2woBpD2fGQon3a60sJkEQ=";
hash = "sha256-RWSoVTTYwFzYvFBHvBJmLungjEVYryHwzK6P2h5SiaQ=";
};
patches = [

View File

@@ -6,7 +6,7 @@
}:
let
version = "0.0.18";
version = "0.0.20";
in
buildGoModule {
pname = "longcat";
@@ -16,10 +16,10 @@ buildGoModule {
owner = "mattn";
repo = "longcat";
tag = "v${version}";
hash = "sha256-5D+hGWwpjRLDNw1zwM+tkVPHRebERU83Gye6WQZUuhg=";
hash = "sha256-PSEi5AfgP4PvAmqCvnAEfdSg5NKKjKgq4GoytZ7XR1w=";
};
vendorHash = "sha256-VcNhzQyhd7gDvlrz7Lh2QRUkMjZj40s2hanNP6gsnMs=";
vendorHash = "sha256-dgQhSZEWWhS3ee9rhXVdB8toj6mGWbp3pIB2PEasy28=";
passthru.updateScript = nix-update-script { };

View File

@@ -0,0 +1,119 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
pkg-config,
wrapGAppsHook3,
webkitgtk_4_1,
gtk3,
libsoup_3,
glib,
cairo,
pango,
gdk-pixbuf,
harfbuzz,
alsa-lib,
dbus,
openssl,
libappindicator,
xdg-utils,
fontconfig,
curl,
procps,
copyDesktopItems,
makeDesktopItem,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "lookapp";
version = "0.6.13";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "kunkka19xx";
repo = "look";
tag = "v${finalAttrs.version}";
hash = "sha256-rfSuwSRD1mHpvi8wP+xZNaE4bsc6btMRxAM4q/314FU=";
};
cargoRoot = "apps/linows/src-tauri";
buildAndTestSubdir = finalAttrs.cargoRoot;
cargoHash = "sha256-U58By3qm5hr35oZjOChOHgf7LcrJy5VEAAjKz+vWdmw=";
nativeBuildInputs = [
copyDesktopItems
pkg-config
wrapGAppsHook3
];
buildInputs = [
webkitgtk_4_1
gtk3
libsoup_3
glib
cairo
pango
gdk-pixbuf
harfbuzz
alsa-lib
dbus
openssl
libappindicator
];
desktopItems = [
(makeDesktopItem {
name = "lookapp";
desktopName = "Look";
comment = "Keyboard-first desktop launcher";
exec = "lookapp";
icon = "look";
categories = [ "Utility" ];
startupWMClass = "Look";
})
];
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : ${
lib.makeBinPath [
xdg-utils
fontconfig
curl
procps
glib
]
}
)
'';
postInstall = ''
for size in 32 128 256; do
icon="$src/apps/linows/src-tauri/icons/''${size}x''${size}.png"
if [ -f "$icon" ]; then
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
cp "$icon" \
"$out/share/icons/hicolor/''${size}x''${size}/apps/look.png"
fi
done
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Keyboard-first, local-first desktop launcher";
homepage = "https://github.com/kunkka19xx/look";
changelog = "https://github.com/kunkka19xx/look/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
mainProgram = "lookapp";
maintainers = [
lib.maintainers.Teamofeyy
lib.maintainers.kunkka19xx
];
};
})

View File

@@ -26,7 +26,6 @@ stdenv.mkDerivation {
meta = {
description = "Utility to check whether audio is truly lossless or not";
homepage = "https://losslessaudiochecker.com";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];

View File

@@ -5,6 +5,7 @@
fetchFromGitHub,
fetchNpmDeps,
fetchurl,
cargo-tauri,
makeBinaryWrapper,
@@ -22,24 +23,34 @@
rustPlatform.buildRustPackage rec {
pname = "lrcget";
version = "2.1.0";
version = "2.2.0";
src = fetchFromGitHub {
owner = "tranxuanthang";
repo = "lrcget";
tag = version;
hash = "sha256-cxQpCuyFsJeujcL2TPMH7n+Q6l4h+P1HvsrMoFmbWMI=";
hash = "sha256-sp31o62rwWONd7ajo8prvkEVbU3lPPLFkXsxAT9oRzY=";
};
patches = [
# needed to not attempt codesigning on darwin
./remove-signing-identity.patch
# Make npm ci pass by adding missing packages to package-lock.json
# Upstream PR: https://github.com/tranxuanthang/lrcget/pull/408
./sync-package-lock.patch
];
cargoPatches = [
# Update charabia crate to v0.10.0 to allow caching of Lindera dictionaries
# Upstream PR: https://github.com/tranxuanthang/lrcget/pull/407
./update-to-charabia-0.10.0.patch
];
cargoRoot = "src-tauri";
buildAndTestSubdir = "src-tauri";
cargoHash = "sha256-9vyvRJsR4o7kWSLJyGIoiM/13ABWWTrRXVdyU2HfJ+E=";
cargoHash = "sha256-qyIvUbEBImJfVaxILtLN88KREgUk45zRdxbdZ1A6vc0=";
# FIXME: This is a workaround, because we have a git dependency node_modules/lrc-kit contains install scripts
# but has no lockfile, which is something that will probably break.
@@ -48,9 +59,73 @@ rustPlatform.buildRustPackage rec {
npmDeps = fetchNpmDeps {
name = "lrcget-${version}-npm-deps";
inherit src forceGitDeps patches;
hash = "sha256-yXRbQ6xM23VrVaS8Hb5sxPPic1yawKtFi2rCGkplgw4=";
hash = "sha256-PyKnh2AjdhWurTQmoCuOnLDdDIcZT51xwpPImkc3nBc=";
};
preConfigure =
let
# Adapted from pg_search's Nix package: https://github.com/NixOS/nixpkgs/blob/b1b875982b17dabde9b4a37f3e229e74913e6db3/pkgs/servers/sql/postgresql/ext/pg_search.nix#L27
# Lindera dictionaries are copied to a temporary directory and Lindera's
# cache environment variable prevents the build.rs files in
# the Lindera crates from downloading their dictionary from an
# external URL, which doesn't work in the Nix sandbox.
# Lindera uses subdirectory in the main cache directory to separate cached
# dictionaries for different versions of Lindera.
# The name of those subdirectories is made up of the Lindera version
# and the "format" version (currently only for format version 2).
# LRCGET's Lindera version is in their Cargo.lock file: https://github.com/tranxuanthang/lrcget/tree/${version}/src-tauri/Cargo.lock
# And the current format version is 2, represented by the -fmt2 suffix in the subdirectory name.
cacheSubdir = "5.3.0-fmt2";
# The env var Lindera uses for the cache has changed over time.
# Currently, the correct variable name is LINDERA_BUILD_DICTIONARY_CACHE_DIR.
dictCacheVarName = "LINDERA_BUILD_DICTIONARY_CACHE_DIR";
# The Lindera uses several language dictionaries that can be enabled by consuming apps and libraries.
# Check the relevant build.rs files to get the proper URLs:
# https://github.com/lindera/lindera/blob/${linderaVersion}/${dictionaryKey}/build.rs
# Here's an example build.rs URL:
# https://github.com/lindera/lindera/blob/v1.5.1/lindera-cc-cedict/build.rs
dict =
{
language,
filename,
hash,
}:
{
inherit filename language;
source = fetchurl {
url = "https://lindera.dev/${filename}";
inherit hash;
};
};
# LRCGET via charabia requires the Korean and Japanese (unidic) dictionaries.
dictionaries = {
lindera-ko-dic = dict {
language = "Korean";
filename = "mecab-ko-dic-2.1.1-20180720.tar.gz";
hash = "sha256-cCztIcYWfp2a68Z0q17lSvWNREOXXylA030FZ8AgWRo=";
};
lindera-unidic = dict {
language = "Japanese";
filename = "unidic-mecab-2.1.2.tar.gz";
hash = "sha256-JKx1/k5E2XO1XmWEfDX6Suwtt6QaB7ScoSUUbbn8EYk=";
};
};
in
''
export ${dictCacheVarName}=$TMPDIR/lindera-cache
mkdir -p ''$${dictCacheVarName}/${cacheSubdir}
${lib.concatMapStringsSep "\n" (dict: ''
echo "Copying ${dict.language} dictionary to Lindera cache"
cp -r ${dict.source} ''$${dictCacheVarName}/${cacheSubdir}/${dict.filename}
'') (lib.attrValues dictionaries)}
echo "Lindera cache prepared at ''$${dictCacheVarName}"
'';
nativeBuildInputs = [
cargo-tauri.hook
nodejs

View File

@@ -0,0 +1,66 @@
diff --git a/package-lock.json b/package-lock.json
index 7265f5f..e44f063 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -192,6 +192,29 @@
"w3c-keyname": "^2.2.4"
}
},
+ "node_modules/@emnapi/core": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.2.1",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@emnapi/wasi-threads": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
@@ -5866,8 +5889,30 @@
"w3c-keyname": "^2.2.4"
}
},
+ "node_modules/@emnapi/core": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@emnapi/wasi-threads": "1.2.1",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.4.0"
+ }
+ },
"@emnapi/wasi-threads": {
- "version": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
"integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
"dev": true,
"optional": true,

File diff suppressed because it is too large Load Diff

View File

@@ -1,54 +1,47 @@
{
lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
glib,
pango,
gdk-pixbuf,
gtk4,
libadwaita,
stdenv,
fetchgit,
cmake,
qt6,
}:
rustPlatform.buildRustPackage (finalAttrs: {
stdenv.mkDerivation (finalAttrs: {
pname = "lsfg-vk-ui";
version = "1.0.0";
version = "2.0.0";
src = fetchFromGitHub {
owner = "PancakeTAS";
repo = "lsfg-vk";
tag = "v${finalAttrs.version}";
hash = "sha256-nIyVOil/gHC+5a+sH3vMlcqVhixjJaGWqXbyoh2Nqyw=";
src = fetchgit {
url = "https://git.lsfg-vk.dev/lsfg-vk.git";
tag = finalAttrs.version;
hash = "sha256-vp0/adJdVV73C2RFjcEE90KjWiZJQhiqqOlYQ89RG+Y=";
};
cargoHash = "sha256-hIQRS/egIDU5Vu/1KWHtpt4S26h+9GadVr+lBAG2LDg=";
sourceRoot = "source/ui";
nativeBuildInputs = [
pkg-config
glib
cmake
qt6.wrapQtAppsHook
];
buildInputs = [
pango
gdk-pixbuf
gtk4
libadwaita
buildInputs = [ qt6.qtdeclarative ];
cmakeFlags = [
(lib.cmakeBool "LSFGVK_MANAGED" true)
(lib.cmakeBool "LSFGVK_BUILD_LAYER" false)
(lib.cmakeBool "LSFGVK_BUILD_UI" true)
(lib.cmakeBool "LSFGVK_BUILD_CLI" false)
];
postInstall = ''
install -Dm444 $src/ui/rsc/gay.pancake.lsfg-vk-ui.desktop $out/share/applications/gay.pancake.lsfg-vk-ui.desktop
install -Dm444 $src/ui/rsc/icon.png $out/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png
'';
__structuredAttrs = true;
strictDeps = true;
meta = {
description = "Graphical configuration interface for lsfg-vk";
homepage = "https://github.com/PancakeTAS/lsfg-vk/";
changelog = "https://github.com/PancakeTAS/lsfg-vk/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
homepage = "https://lsfg-vk.dev/";
license = lib.licenses.cc-by-nc-nd-40;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ pabloaul ];
maintainers = with lib.maintainers; [
Gliczy
pabloaul
];
mainProgram = "lsfg-vk-ui";
};
})

View File

@@ -1,31 +1,23 @@
{
lib,
fetchFromGitHub,
stdenv,
fetchgit,
cmake,
vulkan-headers,
llvmPackages,
vulkan-loader,
}:
llvmPackages.stdenv.mkDerivation (finalAttrs: {
stdenv.mkDerivation (finalAttrs: {
pname = "lsfg-vk";
version = "1.0.0";
version = "2.0.0";
src = fetchFromGitHub {
owner = "PancakeTAS";
repo = "lsfg-vk";
tag = "v${finalAttrs.version}";
hash = "sha256-hWpuPH7mKbeMaLaRUwtlkNLy4lOnJEe+yd54L7y2kV0=";
fetchSubmodules = true;
src = fetchgit {
url = "https://git.lsfg-vk.dev/lsfg-vk.git";
tag = finalAttrs.version;
hash = "sha256-vp0/adJdVV73C2RFjcEE90KjWiZJQhiqqOlYQ89RG+Y=";
};
postPatch = ''
substituteInPlace VkLayer_LS_frame_generation.json \
--replace-fail "liblsfg-vk.so" "$out/lib/liblsfg-vk.so"
'';
nativeBuildInputs = [
llvmPackages.clang-tools
llvmPackages.libllvm
cmake
];
@@ -33,12 +25,31 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
vulkan-headers
];
cmakeFlags = [
(lib.cmakeFeature "LSFGVK_LAYER_LIBRARY_PATH" "${placeholder "out"}/lib/liblsfg-vk-layer.so")
(lib.cmakeBool "LSFGVK_MANAGED" true)
];
/*
Installed lsfg-vk-layer version: terminate called after throwing an instance of 'std::runtime_error'
what(): Failed to load vulkan library!
*/
postFixup = ''
patchelf --add-rpath "${lib.getLib vulkan-loader}/lib" "$out/bin/lsfg-vk-cli"
'';
__structuredAttrs = true;
strictDeps = true;
meta = {
description = "Vulkan layer for frame generation (Requires owning Lossless Scaling)";
homepage = "https://github.com/PancakeTAS/lsfg-vk/";
changelog = "https://github.com/PancakeTAS/lsfg-vk/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
homepage = "https://lsfg-vk.dev/";
license = lib.licenses.cc-by-nc-nd-40;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ pabloaul ];
maintainers = with lib.maintainers; [
Gliczy
pabloaul
];
mainProgram = "lsfg-vk-cli";
};
})

View File

@@ -350,15 +350,16 @@
"bigdecimal"
"jmespath"
"logger"
"rexml"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "16yjk5b6vw9c1pwgbjz4x52nlm36p5zx0qzcsj64ghrl47iqk02i";
sha256 = "1iljck5b1s02vagyvgivg9j81nk2wl721qwfd33cws7ngyfd2am9";
type = "gem";
};
version = "3.254.1";
version = "3.257.0";
};
aws-sdk-kms = {
dependencies = [
@@ -384,10 +385,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "15pma52a4n5rzgkr8kixvfxc3dmals1s78605rfm1cvm308imlbx";
sha256 = "1jpf3wgxd5inczqd0ga5d002qmrc3m71vj56nd78s1lzapsxn5cx";
type = "gem";
};
version = "1.229.0";
version = "1.232.3";
};
aws-sigv4 = {
dependencies = [ "aws-eventstream" ];
@@ -1004,10 +1005,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "158dy953r9r2s6zppnc3yn02r3g3g56yzxyvilnpcl4p170x5c0r";
sha256 = "11pchqkzd0jp5alh0554yqybnhr3bj2jdghqal3prsn22mwch7v9";
type = "gem";
};
version = "5.9.6";
version = "5.9.9";
};
dotenv = {
groups = [ "default" ];
@@ -3265,10 +3266,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1mz3sswgbq0wfy0r044zg6qq72kzxar96kf0c2nbc5rmvh8jcx6d";
sha256 = "1biqhfhcan9mv06312r27ibw9r25530a7if7aa70wmalfbkq4r0k";
type = "gem";
};
version = "1.0.1";
version = "1.0.3";
};
rack-session = {
dependencies = [

View File

@@ -5,14 +5,14 @@
patches ? [ ],
}:
let
version = "4.7.2";
version = "4.7.3";
in
applyPatches {
src = fetchFromGitHub {
owner = "mastodon";
repo = "mastodon";
rev = "v${version}";
hash = "sha256-21tGRIUqPy9lWwgSOyLjCXPV9M/gBdCv1rZCsclDde0=";
hash = "sha256-cKLjdk5FWcM4e5bh2P0W2UDP+9CKI6FgHH9vDnjg2xQ=";
passthru = {
inherit version;
yarnHash = "sha256-PTyRdKzbDTjXtIWuaFK1zY3Q1ThTXTdoit+ZUKL7mGE=";

View File

@@ -205,5 +205,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
scvalex
];
mainProgram = "tuwunel";
broken = stdenv.hostPlatform.isDarwin; # macos build fails with a rocksdb linker error
};
})

View File

@@ -6,13 +6,13 @@
buildGo127Module (finalAttrs: {
pname = "nerva";
version = "1.70.1";
version = "1.70.2";
src = fetchFromGitHub {
owner = "praetorian-inc";
repo = "nerva";
tag = "v${finalAttrs.version}";
hash = "sha256-8XEoNhczrDQ2vrgimfYxJ3jQFGsZmfM7vWTa6vfOmW0=";
hash = "sha256-Mr41R2Quio/GJ4xCjR2vb/BJ2gUzS3BeqJtz4a0eOfU=";
};
vendorHash = "sha256-Fjxs+JKq9Lv9wBQEjvSlEw9cpgm/Ye1l4iqdjRa8+X8=";

View File

@@ -1,6 +1,7 @@
import json
import logging
import os
import re
import sys
import textwrap
import uuid
@@ -47,9 +48,6 @@ SWITCH_TO_CONFIGURATION_CMD_PREFIX: Final = [
"NIXOS_NO_CHECK",
"--collect",
"--no-ask-password",
"--wait",
"--verbose",
"--output=cat",
"--quiet",
"--service-type=exec",
"--unit=nixos-rebuild-switch-to-configuration",
@@ -734,6 +732,10 @@ def switch_to_configuration(
cmd = []
elif os.environ.get("NIXOS_REBUILD_NO_SYSTEMD_RUN"):
cmd = []
elif _systemd_run_supports_output_cat(target_host):
cmd = [*cmd, "--wait", "--verbose", "--output=cat"]
else:
cmd = [*cmd, "--pipe"]
run_wrapper(
[*cmd, path_to_config / "bin/switch-to-configuration", str(action)],
@@ -753,6 +755,23 @@ def switch_to_configuration(
)
# TODO: remove this after release-27.05 and assume systemd 261+
def _systemd_run_supports_output_cat(target_host: Remote | None) -> bool:
"""Check whether the target's systemd-run supports --output=cat (systemd 261+)."""
try:
result = run_wrapper(
["systemd-run", "--version"],
remote=target_host,
capture_output=True,
)
except CalledProcessError:
logger.debug("systemd-run version detection failed, assuming <261")
return False
match = re.search(r"^systemd (\d+)(?:\D|$)", result.stdout, re.MULTILINE)
return match is not None and int(match.group(1)) >= 261
def upgrade_channels(
all_channels: bool = False,
elevate: Elevator = NO_ELEVATOR,

View File

@@ -227,6 +227,8 @@ def test_execute_nix_boot(mock_run: Mock, tmp_path: Path) -> None:
return CompletedProcess([], 0, "nixpkgs-rev")
elif args[0] == "nix-build":
return CompletedProcess([], 0, str(config_path))
elif "systemd-run" in args and "--version" in args:
return CompletedProcess([], 0, "systemd 261 (261.2)")
else:
return CompletedProcess([], 0)
@@ -234,7 +236,7 @@ def test_execute_nix_boot(mock_run: Mock, tmp_path: Path) -> None:
nr.execute(["nixos-rebuild", "boot", "--no-flake", "-vvv", "--no-reexec"])
assert mock_run.call_count == 8
assert mock_run.call_count == 9
mock_run.assert_has_calls(
[
call(
@@ -289,9 +291,18 @@ def test_execute_nix_boot(mock_run: Mock, tmp_path: Path) -> None:
check=False,
**DEFAULT_RUN_KWARGS,
),
call(
["systemd-run", "--version"],
check=True,
capture_output=True,
**DEFAULT_RUN_KWARGS,
),
call(
[
*nr.nix.SWITCH_TO_CONFIGURATION_CMD_PREFIX,
"--wait",
"--verbose",
"--output=cat",
config_path / "bin/switch-to-configuration",
"boot",
],
@@ -571,6 +582,8 @@ def test_execute_nix_switch_flake(mock_run: Mock, tmp_path: Path) -> None:
return CompletedProcess([], 0, str(config_path))
elif args[0] == "nix-instantiate":
return CompletedProcess([], 1)
elif "systemd-run" in args and "--version" in args:
return CompletedProcess([], 0, "systemd 258 (258.2)")
else:
return CompletedProcess([], 0)
@@ -593,7 +606,7 @@ def test_execute_nix_switch_flake(mock_run: Mock, tmp_path: Path) -> None:
]
)
assert mock_run.call_count == 5
assert mock_run.call_count == 6
mock_run.assert_has_calls(
[
call(
@@ -637,6 +650,12 @@ def test_execute_nix_switch_flake(mock_run: Mock, tmp_path: Path) -> None:
check=False,
**DEFAULT_RUN_KWARGS,
),
call(
["systemd-run", "--version"],
check=True,
capture_output=True,
**DEFAULT_RUN_KWARGS,
),
call(
[
"sudo",
@@ -644,6 +663,7 @@ def test_execute_nix_switch_flake(mock_run: Mock, tmp_path: Path) -> None:
"-i",
"NIXOS_INSTALL_BOOTLOADER=1",
*nr.nix.SWITCH_TO_CONFIGURATION_CMD_PREFIX,
"--pipe",
config_path / "bin/switch-to-configuration",
"switch",
],
@@ -685,6 +705,8 @@ def test_execute_nix_switch_build_target_host_custom_profile(
return CompletedProcess([], 0, "/tmp/tmpdir")
elif args[0] == "ssh" and "readlink" in args:
return CompletedProcess([], 0, str(config_path))
elif "systemd-run" in args and "--version" in args:
return CompletedProcess([], 0, "systemd 258 (258.2)")
else:
return CompletedProcess([], 0)
@@ -712,7 +734,7 @@ def test_execute_nix_switch_build_target_host_custom_profile(
]
)
assert mock_run.call_count == 13
assert mock_run.call_count == 14
mock_run.assert_has_calls(
[
call(
@@ -901,6 +923,23 @@ def test_execute_nix_switch_build_target_host_custom_profile(
check=False,
**DEFAULT_RUN_KWARGS,
),
call(
[
"ssh",
*nr.process.SSH_DEFAULT_OPTS,
"user@target-host",
"--",
"/bin/sh",
"-c",
"""'exec /usr/bin/env -i PATH="${PATH-}" "$@"'""",
"sh",
"systemd-run",
"--version",
],
check=True,
capture_output=True,
**DEFAULT_RUN_KWARGS,
),
call(
[
"ssh",
@@ -913,6 +952,7 @@ def test_execute_nix_switch_build_target_host_custom_profile(
"""'exec /usr/bin/env -i PATH="${PATH-}" LOCALE_ARCHIVE="${LOCALE_ARCHIVE-}" NIXOS_NO_CHECK="${NIXOS_NO_CHECK-}" NIXOS_INSTALL_BOOTLOADER=0 "$@"'""",
"sh",
*nr.nix.SWITCH_TO_CONFIGURATION_CMD_PREFIX,
"--pipe",
str(config_path / "bin/switch-to-configuration"),
"switch",
],
@@ -944,6 +984,8 @@ def test_execute_nix_switch_flake_target_host(
return CompletedProcess([], 0, str(config_path))
elif args[0] == "nix-instantiate":
return CompletedProcess([], 1)
elif "systemd-run" in args and "--version" in args:
return CompletedProcess([], 0, "systemd 258 (258.2)")
else:
return CompletedProcess([], 0)
@@ -962,7 +1004,7 @@ def test_execute_nix_switch_flake_target_host(
]
)
assert mock_run.call_count == 6
assert mock_run.call_count == 7
mock_run.assert_has_calls(
[
call(
@@ -1027,6 +1069,23 @@ def test_execute_nix_switch_flake_target_host(
check=False,
**DEFAULT_RUN_KWARGS,
),
call(
[
"ssh",
*nr.process.SSH_DEFAULT_OPTS,
"user@localhost",
"--",
"/bin/sh",
"-c",
"""'exec /usr/bin/env -i PATH="${PATH-}" "$@"'""",
"sh",
"systemd-run",
"--version",
],
check=True,
capture_output=True,
**DEFAULT_RUN_KWARGS,
),
call(
[
"ssh",
@@ -1039,6 +1098,7 @@ def test_execute_nix_switch_flake_target_host(
"""'exec /usr/bin/env -i PATH="${PATH-}" LOCALE_ARCHIVE="${LOCALE_ARCHIVE-}" NIXOS_NO_CHECK="${NIXOS_NO_CHECK-}" NIXOS_INSTALL_BOOTLOADER=0 "$@"'""",
"sh",
*nr.nix.SWITCH_TO_CONFIGURATION_CMD_PREFIX,
"--pipe",
str(config_path / "bin/switch-to-configuration"),
"switch",
],
@@ -1072,6 +1132,8 @@ def test_execute_nix_switch_flake_build_host(
return CompletedProcess([], 0, str(config_path))
elif args[0] == "nix-instantiate":
return CompletedProcess([], 1)
elif "systemd-run" in args and "--version" in args:
return CompletedProcess([], 0, "systemd 258 (258.2)")
else:
return CompletedProcess([], 0)
@@ -1089,7 +1151,7 @@ def test_execute_nix_switch_flake_build_host(
]
)
assert mock_run.call_count == 8
assert mock_run.call_count == 9
mock_run.assert_has_calls(
[
call(
@@ -1164,9 +1226,16 @@ def test_execute_nix_switch_flake_build_host(
check=False,
**DEFAULT_RUN_KWARGS,
),
call(
["systemd-run", "--version"],
check=True,
capture_output=True,
**DEFAULT_RUN_KWARGS,
),
call(
[
*nr.nix.SWITCH_TO_CONFIGURATION_CMD_PREFIX,
"--pipe",
config_path / "bin/switch-to-configuration",
"switch",
],
@@ -1527,7 +1596,7 @@ def test_execute_switch_store_path(mock_run: Mock, tmp_path: Path) -> None:
)
# --store-path skips build and write_version_suffix, so only activation calls
assert mock_run.call_count == 4
assert mock_run.call_count == 5
mock_run.assert_has_calls(
[
call(
@@ -1552,9 +1621,16 @@ def test_execute_switch_store_path(mock_run: Mock, tmp_path: Path) -> None:
check=False,
**DEFAULT_RUN_KWARGS,
),
call(
["systemd-run", "--version"],
check=True,
capture_output=True,
**DEFAULT_RUN_KWARGS,
),
call(
[
*nr.nix.SWITCH_TO_CONFIGURATION_CMD_PREFIX,
"--pipe",
config_path / "bin/switch-to-configuration",
"switch",
],
@@ -1600,9 +1676,15 @@ def test_execute_switch_store_path_target_host(
)
# --store-path skips build and write_version_suffix, so only copy/activation calls
assert mock_run.call_count == 6
assert mock_run.call_count == 7
mock_run.assert_has_calls(
[
call(
["nix-instantiate", "--find-file", "nixos-system"],
check=False,
capture_output=True,
**DEFAULT_RUN_KWARGS,
),
call(
["nix-copy-closure", "--to", "user@remote-host", config_path],
check=True,
@@ -1662,6 +1744,23 @@ def test_execute_switch_store_path_target_host(
check=False,
**DEFAULT_RUN_KWARGS,
),
call(
[
"ssh",
*nr.process.SSH_DEFAULT_OPTS,
"user@remote-host",
"--",
"/bin/sh",
"-c",
"""'exec /usr/bin/env -i PATH="${PATH-}" "$@"'""",
"sh",
"systemd-run",
"--version",
],
check=True,
capture_output=True,
**DEFAULT_RUN_KWARGS,
),
call(
[
"ssh",
@@ -1674,6 +1773,7 @@ def test_execute_switch_store_path_target_host(
"""'exec /usr/bin/env -i PATH="${PATH-}" LOCALE_ARCHIVE="${LOCALE_ARCHIVE-}" NIXOS_NO_CHECK="${NIXOS_NO_CHECK-}" NIXOS_INSTALL_BOOTLOADER=0 "$@"'""",
"sh",
*nr.nix.SWITCH_TO_CONFIGURATION_CMD_PREFIX,
"--pipe",
str(config_path / "bin/switch-to-configuration"),
"switch",
],

View File

@@ -957,9 +957,16 @@ def test_switch_to_configuration_without_systemd_run_env_var(
)
@patch(
get_qualified_name(n._systemd_run_supports_output_cat, n),
autospec=True,
return_value=True,
)
@patch(get_qualified_name(n.run_wrapper, n), autospec=True)
def test_switch_to_configuration_with_systemd_run(
mock_run: Mock, monkeypatch: MonkeyPatch
mock_run: Mock,
mock_supports_output_cat: Mock,
monkeypatch: MonkeyPatch,
) -> None:
profile_path = Path("/path/to/profile")
config_path = Path("/path/to/config")
@@ -979,6 +986,9 @@ def test_switch_to_configuration_with_systemd_run(
mock_run.assert_called_with(
[
*n.SWITCH_TO_CONFIGURATION_CMD_PREFIX,
"--wait",
"--verbose",
"--output=cat",
profile_path / "bin/switch-to-configuration",
"switch",
],
@@ -992,6 +1002,7 @@ def test_switch_to_configuration_with_systemd_run(
stdout=sys.stderr,
)
mock_supports_output_cat.return_value = False
target_host = m.Remote("user@localhost", [], "ssh")
with monkeypatch.context() as mp:
mp.setenv("LOCALE_ARCHIVE", "/path/to/locale")
@@ -1009,6 +1020,7 @@ def test_switch_to_configuration_with_systemd_run(
mock_run.assert_called_with(
[
*n.SWITCH_TO_CONFIGURATION_CMD_PREFIX,
"--pipe",
config_path / "specialisation/special/bin/switch-to-configuration",
"test",
],
@@ -1023,6 +1035,33 @@ def test_switch_to_configuration_with_systemd_run(
)
@pytest.mark.parametrize(
("version_output", "expected"),
[
("systemd 260 (260.1)\n", False),
(
textwrap.dedent("""\
systemd 261 (261.2)
+PAM +AUDIT -SELINUX +APPARMOR +IMA +IPE +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 +KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK -BTF -XKBCOMMON +UTMP +LIBARCHIVE
"""),
True,
),
("systemd 270 (270.2)\n", True),
("unexpected output\n", False),
],
)
@patch(get_qualified_name(n.run_wrapper, n), autospec=True)
def test_systemd_run_supports_output_cat(
mock_run: Mock, version_output: str, expected: bool
) -> None:
mock_run.return_value = CompletedProcess([], 0, stdout=version_output)
assert n._systemd_run_supports_output_cat(None) is expected
mock_run.assert_called_once_with(
["systemd-run", "--version"], remote=None, capture_output=True
)
@patch("os.geteuid", autospec=True, return_value=1000)
@patch(get_qualified_name(n.run_wrapper, n), autospec=True)
def test_upgrade_channels(mock_run: Mock, mock_geteuid: Mock, tmpdir: Path) -> None:

View File

@@ -33,7 +33,6 @@ stdenv.mkDerivation (finalAttrs: {
env.NIX_CFLAGS_COMPILE = "-std=gnu17";
meta = {
homepage = "http://monkey.org/~marius/nylon";
description = "Proxy server, supporting SOCKS 4 and 5, as well as a mirror mode";
license = lib.licenses.bsdOriginal;
maintainers = with lib.maintainers; [ edwtjo ];

View File

@@ -42,7 +42,6 @@ stdenv.mkDerivation (finalAttrs: {
'';
meta = {
homepage = "http://wiki.muiline.com/obex-data-server";
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
};

View File

@@ -84,7 +84,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "opencode";
version = "1.18.33";
version = "1.18.34";
__structuredAttrs = true;
strictDeps = true;
@@ -93,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "anomalyco";
repo = "opencode";
tag = "v${finalAttrs.version}";
hash = "sha256-x1ZG4/zsL1/EfpelNByRMi5mSHumXfmoq/LPQ3+jhrc=";
hash = "sha256-ygTBG79utH0A1Dmg+tjEeTA633bLO0OfDdi6AwwQnZw=";
};
postPatch =

View File

@@ -16,13 +16,13 @@
let
package = buildGo127Module rec {
pname = "opentofu";
version = "1.13.0";
version = "1.13.1";
src = fetchFromGitHub {
owner = "opentofu";
repo = "opentofu";
tag = "v${version}";
hash = "sha256-GPnmjDX0OTlf7X+tYB/ii3FqoBaSXmUFjoMKPRvS+1I=";
hash = "sha256-F9F8/g3Ge7YDUgI6beB/DeinliuHr+sRM/14eHc02uo=";
};
vendorHash = "sha256-NwHu+t6GFPCGMLt9PHdz+PMAzcrUBGXwmi5vvl2NsEw=";

View File

@@ -19,13 +19,13 @@
rustPlatform.buildRustPackage {
pname = "par-lang";
version = "0-unstable-2026-09-20";
version = "0-unstable-2026-09-28";
src = fetchFromGitHub {
owner = "par-team";
repo = "par-lang";
rev = "dc0d3dfecd483b6df960d9d4a00676d0449be4cf";
hash = "sha256-7IoXCRuCyTuWBocd0xM33t8JySIoS7NaCnNdj9KWwI4=";
rev = "553fbca88e8973aed81f1428cfca2efcd020207e";
hash = "sha256-93rHznhzTC/pC6A7Q6dDbbGdN0OjAIUk8RZ6Mbt2uM8=";
};
cargoHash = "sha256-wRgSLBFQKsv8mJL0mdwkcHJqMKhuVj0rcfqvm6JNlSM=";

View File

@@ -21,8 +21,8 @@ let
inherit (yarn-berry_4-fetcher) fetchYarnBerryDeps yarnBerryConfigHook;
yarnLock = runCommand "yarn-v9.lock" { } ''
sed -e 's/^ version: 8$/ version: 9/' ${src}/yarn.lock > $out
yarnLock = runCommand "yarn-v10.lock" { } ''
sed -e 's/^ version: 8$/ version: 10/' ${src}/yarn.lock > $out
'';
python = python3;
@@ -76,7 +76,7 @@ let
offlineCache = fetchYarnBerryDeps {
inherit yarnLock;
hash = "sha256-VVew6/rjc0Uz6xM2komL9Sceym3vFrGnAqrdLtGxQVI=";
hash = "sha256-jdYmtAbEhZwaNGmUVTyvz4ejhTRJg95fsy+7r8dwWS8=";
};
postPatch = ''

View File

@@ -145,7 +145,8 @@ python.pkgs.buildPythonApplication (finalAttrs: {
psycopg2
];
};
postBuild = ''
preBuild = ''
# Generate all static files and translations, see
# https://docs.pretalx.org/administrator/commands.html#python-m-pretalx-rebuild
PYTHONPATH=$PYTHONPATH:./src python -m pretalx rebuild

View File

@@ -18,6 +18,7 @@
libx11,
libxcursor,
libxext,
libxkbcommon,
libxrandr,
libxxf86vm,
openal,
@@ -107,6 +108,7 @@ symlinkJoin {
libxxf86vm
wayland
libdecor
libxkbcommon
udev # oshi

View File

@@ -8,7 +8,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "prowler";
version = "5.43.0";
version = "5.44.0";
pyproject = true;
__structuredAttrs = true;
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "prowler-cloud";
repo = "prowler";
tag = finalAttrs.version;
hash = "sha256-eh3LitCEVqd60rZ+C9yh+3vnTNYlEziQzj7on/rTkIU=";
hash = "sha256-dqj1yP0nnoNpkaCmqKwtm3dQuejT27znNg4+GAeB858=";
};
postPatch = ''

View File

@@ -33,7 +33,6 @@ stdenv.mkDerivation rec {
meta = {
description = "Show the set of running processes as a tree";
homepage = "http://www.thp.uni-duisburg.de/pstree/";
license = lib.licenses.gpl2;
maintainers = [ ];
platforms = lib.platforms.unix;

View File

@@ -10,12 +10,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "rgbds";
version = "1.0.3";
version = "1.0.4";
src = fetchFromGitHub {
owner = "gbdev";
repo = "rgbds";
tag = "v${finalAttrs.version}";
hash = "sha256-m9iqBXM9qcvBKiTpVhKmRyOD4nd5fBwbGcWIOZJvjSI=";
hash = "sha256-NNw0ZsUEpbmTGq8GZqAszi3Im1Pj331xNSYa7Aq2wWM=";
};
nativeBuildInputs = [
bison

View File

@@ -13,7 +13,6 @@ stdenv.mkDerivation (finalAttrs: {
urls = [
"https://src.fedoraproject.org/repo/pkgs/rogue/rogue${finalAttrs.version}-src.tar.gz/033288f46444b06814c81ea69d96e075/rogue${finalAttrs.version}-src.tar.gz"
"http://ftp.vim.org/ftp/pub/ftp/os/Linux/distr/slitaz/sources/packages-cooking/r/rogue${finalAttrs.version}-src.tar.gz"
"http://rogue.rogueforge.net/files/rogue${lib.versions.majorMinor finalAttrs.version}/rogue${finalAttrs.version}-src.tar.gz"
];
sha256 = "18g81274d0f7sr04p7h7irz0d53j6kd9j1y3zbka1gcqq0gscdvx";
};
@@ -23,7 +22,6 @@ stdenv.mkDerivation (finalAttrs: {
env.NIX_CFLAGS_COMPILE = "-std=gnu17";
meta = {
homepage = "http://rogue.rogueforge.net/rogue-5-4/";
description = "Final version of the original Rogue game developed for the UNIX operating system";
mainProgram = "rogue";
platforms = lib.platforms.all;

View File

@@ -47,7 +47,6 @@ stdenv.mkDerivation (finalAttrs: {
'';
meta = {
homepage = "http://support.identiv.com/products";
description = "PCSC drivers for linux, for the SCM SCR3310 v2.0 card and others";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;

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