Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot] 2026-05-24 18:23:44 +00:00 committed by GitHub
commit 8aead29dd7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
99 changed files with 2284 additions and 1672 deletions

View file

@ -1,6 +0,0 @@
<!--
Please note: This blank issue template is meant for extraordinary issues
that do not fit the templates. Unless you know your issue is relevant to
Nixpkgs and requires the free-form blank issue, please use the issue
templates instead.
-->

View file

@ -35,7 +35,8 @@ body:
If you are using an older version, please update to the latest stable version and check if the issue persists before continuing this bug report.
options:
- "Please select a version."
- "- Unstable (26.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View file

@ -35,7 +35,8 @@ body:
If you are using an older version, please update to the latest stable version and check if the issue persists before continuing this bug report.
options:
- "Please select a version."
- "- Unstable (26.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View file

@ -35,7 +35,8 @@ body:
If you are using an older version, please update to the latest stable version and check if the issue persists before continuing this bug report.
options:
- "Please select a version."
- "- Unstable (26.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View file

@ -37,7 +37,8 @@ body:
If you are purposefully trying to build an ancient version of a package in an older Nixpkgs, please coordinate with the [NixOS Archivists](https://matrix.to/#/#archivists:nixos.org).
options:
- "Please select a version."
- "- Unstable (26.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View file

@ -37,7 +37,8 @@ body:
If the package has been updated in unstable, but you believe the update should be backported to the stable release of Nixpkgs, please file the '**Request: backport to stable**' form instead.
options:
- "Please select a version."
- "- Unstable (26.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View file

@ -35,7 +35,8 @@ body:
If you are using an older or stable version, please update to the latest **unstable** version and check if the module still does not exist before continuing this request.
options:
- "Please select a version."
- "- Unstable (26.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View file

@ -33,4 +33,15 @@
- maintainers/github-teams.json
- base-branch: ['master']
"backport release-26.05":
- all:
- changed-files:
- any-glob-to-any-file:
- .github/actions/**/*
- .github/workflows/*
- .github/labeler*.yml
- ci/**/*.*
- maintainers/github-teams.json
- base-branch: ['master']
# keep-sorted end

View file

@ -35,7 +35,7 @@ jobs:
into: staging-next-25.11
- from: staging-next-25.11
into: staging-25.11
- from: master
- from: release-26.05
into: staging-next-26.05
- from: staging-next-26.05
into: staging-26.05

View file

@ -2,9 +2,7 @@
There is a TeX Live packaging that lives entirely under attribute `texlive`.
## User's guide (experimental new interface) {#sec-language-texlive-user-guide-experimental}
Release 23.11 ships with a new interface that will eventually replace `texlive.combine`.
## User's guide {#sec-language-texlive-user-guide}
- For basic usage, use some of the prebuilt environments available at the top level, such as `texliveBasic`, `texliveSmall`. For the full list of prebuilt environments, inspect `texlive.schemes`.
@ -24,7 +22,7 @@ Release 23.11 ships with a new interface that will eventually replace `texlive.c
- `texlive.withPackages` uses the same logic as `buildEnv`. Only parts of a package are installed in an environment: its 'runtime' files (`tex` output), binaries (`out` output), and support files (`tlpkg` output). Moreover, man and info pages are assembled into separate `man` and `info` outputs. To add only the TeX files of a package, or its documentation (`texdoc` output), just specify the outputs:
```nix
texlive.withPackages (
texliveBasic.withPackages (
ps: with ps; [
texdoc # recommended package to navigate the documentation
perlPackages.LaTeXML.tex # tex files of LaTeXML, omit binaries
@ -34,64 +32,19 @@ Release 23.11 ships with a new interface that will eventually replace `texlive.c
)
```
- To add the documentation for all packages in the environment, use
```nix
texliveSmall.overrideAttrs { withDocs = true; }
```
This can be applied before or after calling `withPackages`. The parameter `withSources` adds all source containers.
- All packages distributed by TeX Live, which contains most of CTAN, are available and can be found under `texlive.pkgs`:
```ShellSession
$ nix repl
nix-repl> :l <nixpkgs>
nix-repl> texlive.pkgs.[TAB]
```
Note that the packages in `texlive.pkgs` are only provided for search purposes and must not be used directly.
- **Experimental and subject to change without notice:** to add the documentation for all packages in the environment, use
```nix
texliveSmall.__overrideTeXConfig { withDocs = true; }
```
This can be applied before or after calling `withPackages`.
The function currently supports the parameters `withDocs`, `withSources`, and `requireTeXPackages`.
## User's guide {#sec-language-texlive-user-guide}
- For basic usage just pull `texlive.combined.scheme-basic` for an environment with basic LaTeX support.
- It typically won't work to use separately installed packages together. Instead, you can build a custom set of packages like this. Most CTAN packages should be available:
```nix
texlive.combine {
inherit (texlive)
scheme-small
collection-langkorean
algorithms
cm-super
;
}
```
- There are all the schemes, collections and a few thousand packages, as defined upstream (perhaps with tiny differences).
- By default you only get executables and files needed during runtime, and a little documentation for the core packages. To change that, you need to add `pkgFilter` function to `combine`.
```nix
texlive.combine {
# inherit (texlive) whatever-you-want;
pkgFilter =
pkg: pkg.tlType == "run" || pkg.tlType == "bin" || pkg.hasManpages || pkg.pname == "cm-super";
# elem tlType [ "run" "bin" "doc" "source" ]
# there are also other attributes: version, name
}
```
- You can list packages e.g. by `nix repl`.
```ShellSession
$ nix repl
nix-repl> :l <nixpkgs>
nix-repl> texlive.collection-[TAB]
```
- Note that the wrapper assumes that the result has a chance to be useful. For example, the core executables should be present, as well as some core data files. The supported way of ensuring this is by including some scheme, for example, `scheme-basic`, into the combination.
- TeX Live packages are also available under `texlive.pkgs` as derivations with outputs `out`, `tex`, `texdoc`, `texsource`, `tlpkg`, `man`, `info`. They cannot be installed outside of `texlive.combine` but are available for other uses. To repackage a font, for instance, use
These are derivations with outputs `out`, `tex`, `texdoc`, `texsource`, `tlpkg`, `man`, `info`. They cannot be installed outside of `texlive.withPackages` but are available for other uses. To repackage a font, for instance, use
```nix
stdenvNoCC.mkDerivation (finalAttrs: {
@ -112,9 +65,9 @@ Release 23.11 ships with a new interface that will eventually replace `texlive.c
## Custom packages {#sec-language-texlive-custom-packages}
You may find that you need to use an external TeX package. A derivation for such package has to provide the contents of the "texmf" directory in its `"tex"` output, according to the [TeX Directory Structure](https://tug.ctan.org/tds/tds.html). Dependencies on other TeX packages can be listed in the attribute `tlDeps`.
You may find that you need to use an external TeX package. A derivation for such package has to provide the contents of the "texmf" directory in its `"tex"` output, according to the [TeX Directory Structure](https://tug.ctan.org/tds/tds.html). Dependencies on other TeX packages can be listed in the attribute `passthru.tlDeps`, which is a function taking a package set and returning a list of packages.
The functions `texlive.combine` and `texlive.withPackages` recognise the following outputs:
The function `texlive.withPackages` recognise the following outputs:
- `"out"`: contents are linked in the TeX Live environment, and binaries in the `$out/bin` folder are wrapped;
- `"tex"`: linked in `$TEXMFDIST`; files should follow the TDS (for instance `$tex/tex/latex/foiltex/foiltex.cls`);
@ -122,8 +75,6 @@ The functions `texlive.combine` and `texlive.withPackages` recognise the followi
- `"tlpkg"`: linked in `$TEXMFROOT/tlpkg`;
- `"man"`, `"info"`, ...: the other outputs are combined into separate outputs.
When using `pkgFilter`, `texlive.combine` will assign `tlType` respectively `"bin"`, `"run"`, `"doc"`, `"source"`, `"tlpkg"` to the above outputs.
Here is a (very verbose) example. See also the packages `auctex`, `eukleides`, `mftrace` for more examples.
```nix
@ -138,7 +89,7 @@ let
"tex"
"texdoc"
];
passthru.tlDeps = with texlive; [ latex ];
passthru.tlDeps = ps: [ ps.latex ];
srcs = [
(fetchurl {
@ -169,13 +120,14 @@ let
latexmk
]
))
# multiple-outputs.sh fails if $out is not defined
(writeShellScript "force-tex-output.sh" ''
out="''${tex-}"
'')
writableTmpDirAsHomeHook # Need a writable $HOME for latexmk
];
# multiple-outputs.sh fails if $out is not defined
preHook = ''
out="''${tex-}"
'';
dontConfigure = true;
buildPhase = ''

View file

@ -433,6 +433,30 @@
"chap-overlays": [
"index.html#chap-overlays"
],
"sec-nixpkgs-release-26.11": [
"release-notes.html#sec-nixpkgs-release-26.11"
],
"sec-nixpkgs-release-26.11-highlights": [
"release-notes.html#sec-nixpkgs-release-26.11-highlights"
],
"sec-nixpkgs-release-26.11-incompatibilities": [
"release-notes.html#sec-nixpkgs-release-26.11-incompatibilities"
],
"sec-nixpkgs-release-26.11-lib": [
"release-notes.html#sec-nixpkgs-release-26.11-lib"
],
"sec-nixpkgs-release-26.11-lib-breaking": [
"release-notes.html#sec-nixpkgs-release-26.11-lib-breaking"
],
"sec-nixpkgs-release-26.11-lib-deprecations": [
"release-notes.html#sec-nixpkgs-release-26.11-lib-deprecations"
],
"sec-nixpkgs-release-26.11-lib-additions-improvements": [
"release-notes.html#sec-nixpkgs-release-26.11-lib-additions-improvements"
],
"sec-nixpkgs-release-26.11-notable-changes": [
"release-notes.html#sec-nixpkgs-release-26.11-notable-changes"
],
"sec-nixpkgs-release-26.05": [
"release-notes.html#sec-nixpkgs-release-26.05"
],
@ -4428,11 +4452,9 @@
"sec-language-texlive": [
"index.html#sec-language-texlive"
],
"sec-language-texlive-user-guide-experimental": [
"index.html#sec-language-texlive-user-guide-experimental"
],
"sec-language-texlive-user-guide": [
"index.html#sec-language-texlive-user-guide"
"index.html#sec-language-texlive-user-guide",
"index.html#sec-language-texlive-user-guide-experimental"
],
"sec-language-texlive-custom-packages": [
"index.html#sec-language-texlive-custom-packages"

View file

@ -3,6 +3,7 @@
This section lists the release notes for each stable version of Nixpkgs and the current unstable revision.
```{=include=} sections
rl-2611.section.md
rl-2605.section.md
rl-2511.section.md
rl-2505.section.md

View file

@ -1,4 +1,4 @@
# Nixpkgs 26.11 (2026.11/??) {#sec-nixpkgs-release-26.11}
# Nixpkgs 26.11 ("Zokor", 2026.11/??) {#sec-nixpkgs-release-26.11}
## Highlights {#sec-nixpkgs-release-26.11-highlights}
@ -10,7 +10,7 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Create the first release note entry in this section!
- `hurl` has been updated to `8.x.x` which has some breaking changes. See [upstream changelog](https://github.com/Orange-OpenSource/hurl/releases/tag/8.0.0) for details.
## Other Notable Changes {#sec-nixpkgs-release-26.11-notable-changes}

View file

@ -1 +1 @@
26.05
26.11

View file

@ -504,7 +504,7 @@ in
On each release the first letter is bumped and a new animal is chosen
starting with that new letter.
*/
codeName = "Yarara";
codeName = "Zokor";
/**
Returns the current nixpkgs version suffix as string.

View file

@ -28528,6 +28528,12 @@
githubId = 30677291;
name = "u2x1";
};
u3kkasha = {
email = "fida.waseque@gmail.com";
github = "u3kkasha";
githubId = 146055002;
name = "Fida Waseque Choudhury";
};
uakci = {
name = "uakci";
email = "git@uakci.space";

View file

@ -2363,6 +2363,21 @@
"ch-release-notes": [
"release-notes.html#ch-release-notes"
],
"sec-release-26.11": [
"release-notes.html#sec-release-26.11"
],
"sec-release-26.11-highlights": [
"release-notes.html#sec-release-26.11-highlights"
],
"sec-release-26.11-new-modules": [
"release-notes.html#sec-release-26.11-new-modules"
],
"sec-release-26.11-incompatibilities": [
"release-notes.html#sec-release-26.11-incompatibilities"
],
"sec-release-26.11-notable-changes": [
"release-notes.html#sec-release-26.11-notable-changes"
],
"sec-release-26.05": [
"release-notes.html#sec-release-26.05"
],

View file

@ -3,6 +3,7 @@
This section lists the release notes for each stable version of NixOS and current unstable revision.
```{=include=} sections
rl-2611.section.md
rl-2605.section.md
rl-2511.section.md
rl-2505.section.md

View file

@ -1,4 +1,4 @@
# Release 26.11 (2026.11/??) {#sec-release-26.11}
# Release 26.11 ("Zokor", 2026.11/??) {#sec-release-26.11}
## Highlights {#sec-release-26.11-highlights}

View file

@ -155,7 +155,8 @@ in
CapabilityBoundingSet = [ "" ];
DevicePolicy = "closed";
LockPersonality = true;
MemoryDenyWriteExecute = !useYTMusic;
# breaks pyopenssl's cffi calls, used in remote access feature
MemoryDenyWriteExecute = false;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;

View file

@ -26,6 +26,7 @@ in
config = lib.mkIf cfg.enable {
environment.systemPackages = [
pkgs.cosmic-comp
pkgs.cosmic-icons
cfg.package
];

View file

@ -1776,6 +1776,20 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
blink-calc = buildVimPlugin {
pname = "blink-calc";
version = "0-unstable-2025-10-06";
src = fetchFromGitHub {
owner = "joelazar";
repo = "blink-calc";
rev = "199e8a5fe356d553d33a3511ca28e625dac5c470";
hash = "sha256-3w+vQf3N6+umBUF+PkCbPXggn53rNekxHgR2y+ICwHw=";
};
meta.homepage = "https://github.com/joelazar/blink-calc/";
meta.license = unfree;
meta.hydraPlatforms = [ ];
};
blink-cmp-avante = buildVimPlugin {
pname = "blink-cmp-avante";
version = "0.1.0-unstable-2025-07-24";

View file

@ -8,13 +8,13 @@
nix-update-script,
}:
let
version = "0.4.1";
version = "0.5.0";
src = fetchFromGitHub {
owner = "Saghen";
repo = "blink.pairs";
tag = "v${version}";
hash = "sha256-IfnFSusQMm6LujE1AmihK9wEF2RSGfKYwpV2fedg0fc=";
hash = "sha256-PTbj6jlXNRUOmwFSplvRDDiyyGqkBzUKtuBrvZm9kzM=";
};
blink-pairs-lib = rustPlatform.buildRustPackage {
@ -51,6 +51,12 @@ vimUtils.buildVimPlugin {
ln -s ${blink-pairs-lib}/lib/libblink_pairs${ext} target/release/
'';
nvimSkipModules = [
# a module to quickly setup a minimal reproduction environment for testing
# bugs. therefore mostly useless from a consumer side
"repro"
];
passthru = {
updateScript = nix-update-script {
attrPath = "vimPlugins.blink-pairs.blink-pairs-lib";

View file

@ -370,6 +370,10 @@ assertNoAdditions {
};
});
blink-calc = super.blink-calc.overrideAttrs {
dependencies = [ self.blink-cmp ];
};
blink-cmp-conventional-commits = super.blink-cmp-conventional-commits.overrideAttrs {
dependencies = [ self.blink-cmp ];
};

View file

@ -125,6 +125,7 @@ https://github.com/LunarVim/bigfile.nvim/,,
https://github.com/openembedded/bitbake/,,
https://github.com/FabijanZulj/blame.nvim/,,
https://github.com/z4p5a9/blamer.nvim/,,
https://github.com/joelazar/blink-calc/,,
https://github.com/Kaiser-Yang/blink-cmp-avante/,,
https://github.com/disrupted/blink-cmp-conventional-commits/,,
https://github.com/giuxtaposition/blink-cmp-copilot/,,

View file

@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mednafen-pce-fast";
version = "0-unstable-2026-05-16";
version = "0-unstable-2026-05-22";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-pce-fast-libretro";
rev = "82cbe149648969fa55d60b955d455f15fd125b1d";
hash = "sha256-odOMCxLl2fCBdalnW/ykOeVmB+G8N/lGbZqCTr2mdow=";
rev = "b4de121a733a57ce825a7fd7543206ca96af8a18";
hash = "sha256-0V6w9F2T2ROkPvH6K5mKltblogn9mAtvb/JGrWMk4CQ=";
};
makefile = "Makefile";

View file

@ -45,11 +45,11 @@
"vendorHash": "sha256-5IfYhOEhXRpdL7G3Op9a0Ep14el2gwcVmRMkGB7oWH4="
},
"aliyun_alicloud": {
"hash": "sha256-IM7vrhWZG5aAm9qEdEthQJpLj/NPEPIVNzX3KFR8do0=",
"hash": "sha256-YmfHL9uCtbxKE1wdacn9gf4Jo85/ivCkxOtMuBQin0I=",
"homepage": "https://registry.terraform.io/providers/aliyun/alicloud",
"owner": "aliyun",
"repo": "terraform-provider-alicloud",
"rev": "v1.278.0",
"rev": "v1.279.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-lBD9ifRpUwg45V7zZG3grHvndG0V42oiX68zgcM7t74="
},
@ -409,13 +409,13 @@
"vendorHash": null
},
"fastly_fastly": {
"hash": "sha256-deph1BQ/aUgTOf4Bgaxpac4V2fmy4dSdbBRa/qvvKdk=",
"hash": "sha256-dWT0E6eugOD79Cn51P0KQbwwY1seSL1NvZVzjWxtGNs=",
"homepage": "https://registry.terraform.io/providers/fastly/fastly",
"owner": "fastly",
"repo": "terraform-provider-fastly",
"rev": "v9.1.1",
"rev": "v9.2.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-lxBvfkuvf1eoprkCuPtYqOw6P7sTzS70VXTYGToazf8="
"vendorHash": "sha256-+5eeZdU5iS/StHuo/7KRkdM+DW4IDvJ52BDKNZI7lAc="
},
"flexibleenginecloud_flexibleengine": {
"hash": "sha256-yEZ9JiUSqFFbfqzOOD59ZBv4yFCeUBBKlp6aiUqDqiM=",
@ -445,13 +445,13 @@
"vendorHash": "sha256-FcxAh8EOvnT8r1GHu0Oj2C5Jgbr2WPwD7/vY4/qIvTA="
},
"gitlabhq_gitlab": {
"hash": "sha256-0zU1HXGs+4qJ/IYePgX3uE7/i7vV85nXD1jiwKasgxA=",
"hash": "sha256-pMwgByUQPPKM6ZQP/DkbJERXPqfw6pU/zMnJH2YXhCE=",
"homepage": "https://registry.terraform.io/providers/gitlabhq/gitlab",
"owner": "gitlabhq",
"repo": "terraform-provider-gitlab",
"rev": "v18.11.0",
"rev": "v19.0.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-a82yKFb82R6mlts5X2igussJTBldNAtwaz35QIe/hSk="
"vendorHash": "sha256-YdNHXnJXUIYrq9BJ+58+0LEtgKNCF481pAsggBRjISA="
},
"go-gandi_gandi": {
"hash": "sha256-fsCtmwyxkXfOtiZG27VEb010jglK35yr4EynnUWlFog=",

View file

@ -16,7 +16,6 @@
perl,
readline,
tcl,
texlive,
texliveSmall,
tk,
xz,
@ -198,23 +197,20 @@ stdenv.mkDerivation (finalAttrs: {
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
# make tex output available to texlive.combine
passthru.pkgs = [ finalAttrs.finalPackage.tex ];
passthru.tlType = "run";
# dependencies (based on \RequirePackage in jss.cls, Rd.sty, Sweave.sty)
passthru.tlDeps = with texlive; [
amsfonts
amsmath
fancyvrb
graphics
hyperref
iftex
jknapltx
latex
lm
tools
upquote
url
passthru.tlDeps = ps: [
ps.amsfonts
ps.amsmath
ps.fancyvrb
ps.graphics
ps.hyperref
ps.iftex
ps.jknapltx
ps.latex
ps.lm
ps.tools
ps.upquote
ps.url
];
meta = {

View file

@ -55,12 +55,11 @@ stdenv.mkDerivation (finalAttrs: {
export USER=nonexistent-but-specified-user
'';
installPhase = ''
mkdir -p $out/bin
INSTALLDIR=$out/bin make install
installFlags = [ "INSTALLDIR=$(out)/bin" ];
postInstall = ''
installManPage fossil.1
installShellCompletion --name fossil.bash tools/fossil-autocomplete.bash
installShellCompletion --cmd fossil tools/fossil-autocomplete.{bash,zsh}
'';
meta = {

View file

@ -16,16 +16,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "amdgpu_top";
version = "0.11.4";
version = "0.11.5";
src = fetchFromGitHub {
owner = "Umio-Yasuno";
repo = "amdgpu_top";
tag = "v${finalAttrs.version}";
hash = "sha256-ap1X53Ou/eWhHvXOnHY7zGb6i+ZLs8LeSNpOJWm+IKc=";
hash = "sha256-hOwZHqm5DD4GGirvtYT1HWRp7Y59K1HIDsr9myFleRI=";
};
cargoHash = "sha256-b9OO//9M/LyS4ZMQzppvLHJHL3JyPVoSOIPVlrX1Wes=";
cargoHash = "sha256-Mqy95IflBLXnp6ZYWjZCDrNJWZ2kqd90533sPJ94c2U=";
buildInputs = [
libdrm

View file

@ -0,0 +1,76 @@
{
lib,
stdenv,
fetchzip,
autoPatchelfHook,
versionCheckHook,
}:
let
# Version and platform-specific data retrieved from Google's manifests
version = "1.0.2";
sources = {
"x86_64-linux" = {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/1.0.2-6109799369277440/linux-x64/cli_linux_x64.tar.gz";
hash = "sha256-XAq2oHWaAe2AoAgDBb1/NvABfkodg3xYTDmTY5H9RD0=";
};
"aarch64-linux" = {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/1.0.2-6109799369277440/linux-arm/cli_linux_arm64.tar.gz";
hash = "sha256-7pj7TMHg+Z7DyWVmXOMqoM9kQkw5FxXTF+P4hGYc2hE=";
};
"aarch64-darwin" = {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/1.0.2-6109799369277440/darwin-arm/cli_mac_arm64.tar.gz";
hash = "sha256-stu8KZDa5id5wVImTgyedkIKJPdkBTagRCphoYLWUoI=";
};
"x86_64-darwin" = {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/1.0.2-6109799369277440/darwin-x64/cli_mac_x64.tar.gz";
hash = "sha256-KDOEEgFhvpO9bifljSuhRKpb+J6c+q4TWmnrNAAS3A0=";
};
};
source =
sources.${stdenv.hostPlatform.system}
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
in
stdenv.mkDerivation (finalAttrs: {
pname = "antigravity-cli";
inherit version;
src = fetchzip {
inherit (source) url hash;
};
strictDeps = true;
__structuredAttrs = true;
nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
dontBuild = true;
dontConfigure = true;
installPhase = ''
runHook preInstall
install -Dm755 antigravity $out/bin/antigravity-cli
runHook postInstall
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru = {
updateScript = ./update.py;
};
meta = {
description = "Google's Go-based terminal user interface (TUI) agent client";
homepage = "https://antigravity.google";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ u3kkasha ];
platforms = lib.attrNames sources;
mainProgram = "antigravity-cli";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View file

@ -0,0 +1,131 @@
#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p python3 nix jq
import re
import urllib.request
import json
import subprocess
import sys
import os
import tempfile
MANIFEST_BASE = (
"https://antigravity-cli-auto-updater-974169037036.us-central1.run.app/manifests"
)
PLATFORMS = {
"x86_64-linux": "linux_amd64",
"aarch64-linux": "linux_arm64",
"x86_64-darwin": "darwin_amd64",
"aarch64-darwin": "darwin_arm64",
}
def fetch_json(url):
req = urllib.request.Request(
url, headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}
)
with urllib.request.urlopen(req) as response:
return json.loads(response.read().decode("utf-8"))
def get_nix_hash(url):
"""Downloads, unpacks, and returns the SRI hash of the directory content."""
with tempfile.TemporaryDirectory() as tmpdir:
archive_path = os.path.join(tmpdir, "archive.tar.gz")
unpack_path = os.path.join(tmpdir, "unpack")
os.makedirs(unpack_path)
# Download
req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
with (
urllib.request.urlopen(req) as response,
open(archive_path, "wb") as out_file,
):
out_file.write(response.read())
# Unpack
subprocess.run(["tar", "-xzf", archive_path, "-C", unpack_path], check=True)
# Hash
result = subprocess.run(
["nix", "hash", "path", "--type", "sha256", unpack_path],
capture_output=True,
text=True,
check=True,
)
return result.stdout.strip()
def main():
# Change directory to the script's directory so paths are relative
script_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(script_dir)
print("Checking for updates from Google Antigravity release API...")
# 1. Fetch the latest version from the linux_amd64 manifest
try:
manifest = fetch_json(f"{MANIFEST_BASE}/linux_amd64.json")
except Exception as e:
print(f"Error fetching manifest: {e}", file=sys.stderr)
sys.exit(1)
latest_version = manifest["version"]
# Read the current package.nix
package_file = "package.nix"
if not os.path.exists(package_file):
print(f"Error: Could not find package.nix in {script_dir}", file=sys.stderr)
sys.exit(1)
with open(package_file, "r") as f:
content = f.read()
# Extract current version
version_match = re.search(r'version\s*=\s*"([^"]*)"', content)
if not version_match:
print(
"Error: Could not parse current version from package.nix", file=sys.stderr
)
sys.exit(1)
current_version = version_match.group(1)
if current_version == latest_version:
print(f"Already up to date (current version {current_version} is the latest).")
sys.exit(0)
print(f"New version found! Updating: {current_version} -> {latest_version}")
# 2. Update the version string in content
content = re.sub(
r'(version\s*=\s*")[^"]*(";)', f"\\g<1>{latest_version}\\g<2>", content
)
# 3. For each platform, fetch url and hash, and update sources
for platform, manifest_name in PLATFORMS.items():
print(f"Fetching manifest for {platform}...")
try:
m = fetch_json(f"{MANIFEST_BASE}/{manifest_name}.json")
except Exception as e:
print(f"Error fetching manifest for {platform}: {e}", file=sys.stderr)
sys.exit(1)
url = m["url"]
sri_hash = get_nix_hash(url)
# Regex to locate and replace URL and hash for this specific platform in package.nix
pattern = rf'("{platform}"\s*=\s*\{{[^}}]+url\s*=\s*")[^"]*(";[^}}]+hash\s*=\s*")[^"]*(";)'
replacement = f"\\g<1>{url}\\g<2>{sri_hash}\\g<3>"
content = re.sub(pattern, replacement, content)
# Write the updated content back
with open(package_file, "w") as f:
f.write(content)
print(f"Successfully updated package.nix to version {latest_version}!")
if __name__ == "__main__":
main()

View file

@ -35,14 +35,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "apt";
version = "3.3.0";
version = "3.3.1";
src = fetchFromGitLab {
domain = "salsa.debian.org";
owner = "apt-team";
repo = "apt";
rev = finalAttrs.version;
hash = "sha256-UvCdRQDXNwWqc4FDt4AFdPIX1oMUVpFYzbWGDqS7TvA=";
hash = "sha256-93DR4MfKuJ4sF1BHCZyyR04v+WIoEMBW+GvLy7OhuWk=";
};
# cycle detection; lib can't be split

View file

@ -7,50 +7,43 @@
ghostscript,
}:
let
auctex = stdenv.mkDerivation rec {
# Make this a valid tex(live-new) package;
# the pkgs attribute is provided with a hack below.
pname = "auctex";
version = "13.2";
tlType = "run";
stdenv.mkDerivation rec {
pname = "auctex";
version = "13.2";
outputs = [
"out"
"tex"
];
outputs = [
"out"
"tex"
];
src = fetchurl {
url = "mirror://gnu/auctex/auctex-${version}.tar.gz";
hash = "sha256-Hn5AKrz4RmlOuncZklvwlcI+8zpeZgIgHHS2ymCUQDU=";
};
buildInputs = [
emacs
ghostscript
(texliveBasic.withPackages (ps: [
ps.etoolbox
ps.hypdoc
]))
];
preConfigure = ''
mkdir -p "$tex"
export HOME=$(mktemp -d)
'';
configureFlags = [
"--with-lispdir=\${out}/share/emacs/site-lisp"
"--with-texmf-dir=\${tex}"
];
meta = {
homepage = "https://www.gnu.org/software/auctex";
description = "Extensible package for writing and formatting TeX files in GNU Emacs and XEmacs";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
};
src = fetchurl {
url = "mirror://gnu/auctex/auctex-${version}.tar.gz";
hash = "sha256-Hn5AKrz4RmlOuncZklvwlcI+8zpeZgIgHHS2ymCUQDU=";
};
in
auctex // { pkgs = [ auctex.tex ]; }
buildInputs = [
emacs
ghostscript
(texliveBasic.withPackages (ps: [
ps.etoolbox
ps.hypdoc
]))
];
preConfigure = ''
mkdir -p "$tex"
export HOME=$(mktemp -d)
'';
configureFlags = [
"--with-lispdir=\${out}/share/emacs/site-lisp"
"--with-texmf-dir=\${tex}"
];
meta = {
homepage = "https://www.gnu.org/software/auctex";
description = "Extensible package for writing and formatting TeX files in GNU Emacs and XEmacs";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
};
}

View file

@ -145,11 +145,6 @@ stdenv.mkDerivation (finalAttrs: {
perlWithPackages
];
passthru = {
tlType = "run";
pkgs = [ finalAttrs.finalPackage ];
};
meta = {
description = "Create and manage multiple choice questionnaires with automated marking";
mainProgram = "auto-multiple-choice";

View file

@ -14,6 +14,7 @@
glib-networking,
glycin-loaders,
gtk4,
gtksourceview5,
json-glib,
libadwaita,
libdex,
@ -33,7 +34,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bazaar";
version = "0.7.15";
version = "0.8.1";
__structuredAttrs = true;
strictDeps = true;
@ -49,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "bazaar-org";
repo = "bazaar";
tag = "v${finalAttrs.version}";
hash = "sha256-+52W2iU8rdzN4cCxjkKe80qAbvyeqkvDYRRIiBB5yCg=";
hash = "sha256-Ni2WfZu4LpCIXueGJYnZ2c7sCQ9VJAeI9zVNNrh7BLE=";
};
nativeBuildInputs = [
@ -71,6 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
flatpak
glib-networking
gtk4
gtksourceview5
json-glib
libadwaita
libdex

View file

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cargo-codspeed";
version = "4.6.0";
version = "4.7.0";
src = fetchFromGitHub {
owner = "CodSpeedHQ";
repo = "codspeed-rust";
tag = "v${finalAttrs.version}";
hash = "sha256-Hfqh9kKTiRTWhKbsdXAK/DqBeAKxXQaYdWoZN55lcLo=";
hash = "sha256-6XSKAPLcxgnshkMuiSmw13tsE4keJ9h5DpxwidqMLbg=";
};
cargoHash = "sha256-ix8Q+GbazKC5HIIUUVYjLTlufOQLxppqmVGznbTAXEI=";
cargoHash = "sha256-1AjODDI114CL/L8ZDFWDfPwxxxY9vgT/miSVsMLLSgE=";
nativeBuildInputs = [
curl

View file

@ -9,7 +9,6 @@
getopt,
readline,
texinfo,
texlive,
versionCheckHook,
}:
@ -91,17 +90,13 @@ stdenv.mkDerivation (finalAttrs: {
"tex"
];
passthru = {
tlType = "run";
# packages needed by euktoeps, euktopdf and eukleides.sty
tlDeps = with texlive; [
collection-pstricks
epstopdf
iftex
moreverb
];
pkgs = [ finalAttrs.finalPackage.tex ];
};
# packages needed by euktoeps, euktopdf and eukleides.sty
passthru.tlDeps = ps: [
ps.collection-pstricks
ps.epstopdf
ps.iftex
ps.moreverb
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];

View file

@ -25,27 +25,26 @@ let
];
pubspecLock = lib.importJSON ./pubspec.lock.json;
libwebrtc = fetchzip {
url = "https://github.com/flutter-webrtc/flutter-webrtc/releases/download/v1.3.0/libwebrtc.zip";
sha256 = "sha256-lGvWAicdKbNdMZAQS9Qyxv737G/sBI/hKbge/Xw5bDM=";
url = "https://github.com/flutter-webrtc/flutter-webrtc/releases/download/v1.4.0/libwebrtc.zip";
sha256 = "sha256-OvqUF6RuytDorJE+C58EnIxPHfcphs8iPiPjt7SDrU0=";
};
in
flutter341.buildFlutterApplication (
rec {
pname = "fluffychat-${targetFlutterPlatform}";
version = "2.5.1";
version = "2.6.0";
src = fetchFromGitHub {
owner = "krille-chan";
repo = "fluffychat";
tag = "v${version}";
hash = "sha256-8iMSfF5K/9bQot7Tzc2XuuiQnquLZmS0ucC5t2T/HEA=";
hash = "sha256-iAHJjpDd2RNYPtEqyotFNvW/nybW1ozNtvMTT+wQVVY=";
};
inherit pubspecLock;
gitHashes = {
flutter_web_auth_2 = "sha256-3aci73SP8eXg6++IQTQoyS+erUUuSiuXymvR32sxHFw=";
flutter_secure_storage_linux = "sha256-cFNHW7dAaX8BV7arwbn68GgkkBeiAgPfhMOAFSJWlyY=";
webcrypto = "sha256-yPhL0LoSIaJ9e9wrLtdPuTBRvXft1DQM9KR7WdNcj68=";
};
inherit targetFlutterPlatform;

View file

@ -4,31 +4,31 @@
"dependency": "transitive",
"description": {
"name": "_fe_analyzer_shared",
"sha256": "c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d",
"sha256": "8d7ff3948166b8ec5da0fbb5962000926b8e02f2ed9b3e51d1738905fbd4c98d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "91.0.0"
"version": "93.0.0"
},
"analyzer": {
"dependency": "transitive",
"description": {
"name": "analyzer",
"sha256": "f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08",
"sha256": "de7148ed2fcec579b19f122c1800933dfa028f6d9fd38a152b04b1516cec120b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "8.4.1"
"version": "10.0.1"
},
"analyzer_plugin": {
"dependency": "transitive",
"description": {
"name": "analyzer_plugin",
"sha256": "825071d553c4aef2252196d46a665fbd8e0cb06de07725f25d1b29bd18d65fff",
"sha256": "7df504f0c9d6891bacc9f73a5a8c5f6fe4fc49c90ec8e3379916372906ba0b32",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.13.6"
"version": "0.14.1"
},
"ansicolor": {
"dependency": "transitive",
@ -64,11 +64,11 @@
"dependency": "direct main",
"description": {
"name": "async",
"sha256": "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb",
"sha256": "e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.13.0"
"version": "2.13.1"
},
"audio_session": {
"dependency": "transitive",
@ -84,11 +84,11 @@
"dependency": "direct main",
"description": {
"name": "badges",
"sha256": "a7b6bbd60dce418df0db3058b53f9d083c22cdb5132a052145dc267494df0b84",
"sha256": "cf1c88fb3777df69ccd630b80de5267f54efa4a39381b0404a7c03d56cb7c041",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.2"
"version": "3.2.0"
},
"barbecue": {
"dependency": "transitive",
@ -184,11 +184,11 @@
"dependency": "direct main",
"description": {
"name": "chewie",
"sha256": "44bcfc5f0dfd1de290c87c9d86a61308b3282a70b63435d5557cfd60f54a69ca",
"sha256": "53dadd2c5b6748742d7744072b38a417ad22691ca55715850300ee793dc7cb27",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.13.0"
"version": "1.13.1"
},
"cli_config": {
"dependency": "transitive",
@ -314,11 +314,11 @@
"dependency": "direct dev",
"description": {
"name": "dart_code_linter",
"sha256": "1b53722d9933a5f5d4580acc29c7f16b1fde66d21d1ecf7bb2a811caf3a42b42",
"sha256": "f0a63317198a495d04cccf98643fa6c2e8838805e370808b11b883a3efee0380",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.2.1"
"version": "4.0.3"
},
"dart_earcut": {
"dependency": "transitive",
@ -344,21 +344,21 @@
"dependency": "transitive",
"description": {
"name": "dart_style",
"sha256": "a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b",
"sha256": "29f7ecc274a86d32920b1d9cfc7502fa87220da41ec60b55f329559d5732e2b2",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.3"
"version": "3.1.7"
},
"dart_webrtc": {
"dependency": "transitive",
"description": {
"name": "dart_webrtc",
"sha256": "4ed7b9fa9924e5a81eb39271e2c2356739dd1039d60a13b86ba6c5f448625086",
"sha256": "f6d615bddea5e458ce180a914f3055c234ffb52fb7397a51b3491e76d6d7edb2",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.7.0"
"version": "1.8.1"
},
"dbus": {
"dependency": "transitive",
@ -374,21 +374,11 @@
"dependency": "direct main",
"description": {
"name": "desktop_drop",
"sha256": "e70b46b2d61f1af7a81a40d1f79b43c28a879e30a4ef31e87e9c27bea4d784e8",
"sha256": "aa1e797255bfbc76f9eb5aa4f61e5b68dbf69962ab1be6495816d2f251bc0d1f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.7.0"
},
"desktop_notifications": {
"dependency": "direct main",
"description": {
"name": "desktop_notifications",
"sha256": "6d92694ad6e9297a862c5ff7dd6b8ff64c819972557754769f819d2209612927",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.6.3"
"version": "0.7.1"
},
"desktop_webview_window": {
"dependency": "transitive",
@ -404,11 +394,11 @@
"dependency": "direct main",
"description": {
"name": "device_info_plus",
"sha256": "4df8babf73058181227e18b08e6ea3520cf5fc5d796888d33b7cb0f33f984b7c",
"sha256": "b4fed1b2835da9d670d7bed7db79ae2a94b0f5ad6312268158a9b5479abbacdd",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "12.3.0"
"version": "12.4.0"
},
"device_info_plus_platform_interface": {
"dependency": "transitive",
@ -474,11 +464,11 @@
"dependency": "direct main",
"description": {
"name": "file_picker",
"sha256": "57d9a1dd5063f85fa3107fb42d1faffda52fdc948cefd5fe5ea85267a5fc7343",
"sha256": "f13a03000d942e476bc1ff0a736d2e9de711d2f89a95cd4c1d88f861c3348387",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "10.3.10"
"version": "11.0.2"
},
"file_selector": {
"dependency": "direct main",
@ -586,11 +576,11 @@
"dependency": "direct main",
"description": {
"name": "flutter_foreground_task",
"sha256": "1903697944a31f596622e51a6af55e3a9dfb27762f9763ab2841184098c6b0ba",
"sha256": "fc5c01a5e1b8f7bb51d0c737714f0c50440dbdf1aeddc5f8cbba313aa6fd4856",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "9.2.1"
"version": "9.2.2"
},
"flutter_linkify": {
"dependency": "direct main",
@ -662,11 +652,11 @@
"dependency": "direct main",
"description": {
"name": "flutter_map",
"sha256": "391e7dc95cc3f5190748210a69d4cfeb5d8f84dcdfa9c3235d0a9d7742ccb3f8",
"sha256": "03b71c02806ff20c3718d108cbbb3638142ebafe368d8ce2dd22a33344bcb02b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "8.2.2"
"version": "8.3.0"
},
"flutter_native_splash": {
"dependency": "direct dev",
@ -712,21 +702,21 @@
"dependency": "direct main",
"description": {
"name": "flutter_secure_storage",
"sha256": "da922f2aab2d733db7e011a6bcc4a825b844892d4edd6df83ff156b09a9b2e40",
"sha256": "6848263f9744072d0977347c383fb8b57d9780319a6bf5238b5a2866a029de62",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "10.0.0"
"version": "10.2.0"
},
"flutter_secure_storage_darwin": {
"dependency": "transitive",
"description": {
"name": "flutter_secure_storage_darwin",
"sha256": "8878c25136a79def1668c75985e8e193d9d7d095453ec28730da0315dc69aee3",
"sha256": "67cd1ff671add31dc13e45194398187a04bb63804b37fa47866afae296d73fcb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.0"
"version": "0.3.1"
},
"flutter_secure_storage_linux": {
"dependency": "transitive",
@ -752,11 +742,11 @@
"dependency": "transitive",
"description": {
"name": "flutter_secure_storage_web",
"sha256": "6a1137df62b84b54261dca582c1c09ea72f4f9a4b2fcee21b025964132d5d0c3",
"sha256": "073a62b3aeb866ab4ce795f960413948e51e5a42a9b0c8333b6daf5bb3208a1c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.0"
"version": "2.1.1"
},
"flutter_secure_storage_windows": {
"dependency": "transitive",
@ -798,11 +788,11 @@
"dependency": "direct main",
"description": {
"name": "flutter_web_auth_2",
"sha256": "432ff8c7b2834eaeec3378d99e24a0210b9ac2f453b3f7a7d739a5c09069fba3",
"sha256": "d354998934ddc338e69b999b2abaeb33c6fd09999d3a5f92ead1a6b49b49712e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "5.0.1"
"version": "5.0.2"
},
"flutter_web_auth_2_platform_interface": {
"dependency": "transitive",
@ -824,11 +814,11 @@
"dependency": "direct main",
"description": {
"name": "flutter_webrtc",
"sha256": "c549ea8ffb20167110ad0a28e5f17a2650b5bea8837d984898cd9b0ffd5fa78b",
"sha256": "c7b0a67ca2c878575fc5c146d801cd874f58f5f1ef5fa6e8eb0c93d413beb948",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.1"
"version": "1.4.1"
},
"frontend_server_client": {
"dependency": "transitive",
@ -940,11 +930,11 @@
"dependency": "direct main",
"description": {
"name": "go_router",
"sha256": "7974313e217a7771557add6ff2238acb63f635317c35fa590d348fb238f00896",
"sha256": "92d8cee7c57dff0a6c409c05597b460002434eccf7424a712283225b3962d03f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "17.1.0"
"version": "17.2.3"
},
"gsettings": {
"dependency": "transitive",
@ -1050,11 +1040,11 @@
"dependency": "direct main",
"description": {
"name": "image_picker",
"sha256": "784210112be18ea55f69d7076e2c656a4e24949fa9e76429fe53af0c0f4fa320",
"sha256": "91c025426c2881c551100bce834e201c835a170151545f58d17da5180ca7d9ac",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.1"
"version": "1.2.2"
},
"image_picker_android": {
"dependency": "transitive",
@ -1336,11 +1326,11 @@
"dependency": "direct main",
"description": {
"name": "matrix",
"sha256": "5bb38e98212bc4c3244c762a1af787f7239a38d2cfdf44488258283ff899f77c",
"sha256": "734eae63fa4b707999ee9165e0fc7e1205d1fcb37fef9727bb4f79cda460e1ab",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.2.0"
"version": "7.1.2"
},
"meta": {
"dependency": "transitive",
@ -1446,11 +1436,11 @@
"dependency": "direct main",
"description": {
"name": "package_info_plus",
"sha256": "f69da0d3189a4b4ceaeb1a3defb0f329b3b352517f52bed4290f83d4f06bc08d",
"sha256": "468c26b4254ab01979fa5e4a98cb343ea3631b9acee6f21028997419a80e1a20",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "9.0.0"
"version": "9.0.1"
},
"package_info_plus_platform_interface": {
"dependency": "transitive",
@ -1476,11 +1466,21 @@
"dependency": "direct main",
"description": {
"name": "particles_network",
"sha256": "fbaead7961925946ff83e5b441bdbc8628139ea161ce901547e6f1190a6161de",
"sha256": "f35f4e2bbd6872c6cff1d13628853d2fb2df6cc83b88c4f4757afe70333f5c6a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.9.3"
"version": "1.9.4"
},
"pasteboard": {
"dependency": "direct main",
"description": {
"name": "pasteboard",
"sha256": "fedbe8da188d2f713aa8b01260737342e6e1087534a3ab26e1a719f8d3e8f32f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.5.0"
},
"path": {
"dependency": "direct main",
@ -1736,61 +1736,61 @@
"dependency": "direct main",
"description": {
"name": "record",
"sha256": "d5b6b334f3ab02460db6544e08583c942dbf23e3504bf1e14fd4cbe3d9409277",
"sha256": "10911465138fafacef459a780564e883e01bd48eabf87ab20543684884492870",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.2.0"
"version": "6.2.1"
},
"record_android": {
"dependency": "transitive",
"description": {
"name": "record_android",
"sha256": "94783f08403aed33ffb68797bf0715b0812eb852f3c7985644c945faea462ba1",
"sha256": "eb1732e42d0d2a1895b8db86e4fc917287e6d8491b6ed59918aea8bed6c69de4",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.5.1"
"version": "1.5.2"
},
"record_ios": {
"dependency": "transitive",
"description": {
"name": "record_ios",
"sha256": "8df7c136131bd05efc19256af29b2ba6ccc000ccc2c80d4b6b6d7a8d21a3b5a9",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.0"
},
"record_linux": {
"dependency": "transitive",
"description": {
"name": "record_linux",
"sha256": "c31a35cc158cd666fc6395f7f56fc054f31685571684be6b97670a27649ce5c7",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.0"
},
"record_macos": {
"dependency": "transitive",
"description": {
"name": "record_macos",
"sha256": "084902e63fc9c0c224c29203d6c75f0bdf9b6a40536c9d916393c8f4c4256488",
"sha256": "c051fb48edd7a0e265daafb9108730dc827c27b551728a3fdfb3ef69efd89c73",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.1"
},
"record_linux": {
"dependency": "transitive",
"description": {
"name": "record_linux",
"sha256": "31181787bf7eccb0e298835836b69b3cd0a903863b75d70e937de3dec71cd8f3",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.1"
},
"record_macos": {
"dependency": "transitive",
"description": {
"name": "record_macos",
"sha256": "cfe1b61435e27db418bf513dc36820d10c9f7eb1843786c2c9a52e07e2f4f627",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.2"
},
"record_platform_interface": {
"dependency": "transitive",
"description": {
"name": "record_platform_interface",
"sha256": "8a81dbc4e14e1272a285bbfef6c9136d070a47d9b0d1f40aa6193516253ee2f6",
"sha256": "8e56cbe06c6984137fb86132ff03459f29938d927496d9b2d0962e2d6345d488",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.5.0"
"version": "1.6.0"
},
"record_web": {
"dependency": "transitive",
@ -1916,11 +1916,11 @@
"dependency": "direct main",
"description": {
"name": "share_plus",
"sha256": "14c8860d4de93d3a7e53af51bff479598c4e999605290756bbbe45cf65b37840",
"sha256": "223873d106614442ea6f20db5a038685cc5b32a2fba81cdecaefbbae0523f7fa",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "12.0.1"
"version": "12.0.2"
},
"share_plus_platform_interface": {
"dependency": "transitive",
@ -1936,11 +1936,11 @@
"dependency": "direct main",
"description": {
"name": "shared_preferences",
"sha256": "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64",
"sha256": "c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.5.4"
"version": "2.5.5"
},
"shared_preferences_android": {
"dependency": "transitive",
@ -2562,11 +2562,11 @@
"dependency": "direct main",
"description": {
"name": "wakelock_plus",
"sha256": "e4e125b7c1a2f0e491e5452afdc0e25ab77b2d2775a7caa231fcc1c1f2162c47",
"sha256": "ddf3db70eaa10c37558ff817519b85d527dbd21034fd5d8e1c2e85f31588f1c1",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.5.0"
"version": "1.5.2"
},
"wakelock_plus_platform_interface": {
"dependency": "transitive",
@ -2619,13 +2619,14 @@
"version": "3.0.3"
},
"webcrypto": {
"dependency": "transitive",
"dependency": "direct overridden",
"description": {
"name": "webcrypto",
"sha256": "sha256-a0MAHEEQhW/3+l5eZeey1EvsHYtUpNhNX6LHYiJnxcE=",
"url": "https://pub.dev"
"path": ".",
"ref": "master",
"resolved-ref": "dcc7ba78c9721de56a800fda9a9e2bc759b9cad3",
"url": "https://github.com/google/webcrypto.dart.git"
},
"source": "hosted",
"source": "git",
"version": "0.6.0"
},
"webdriver": {
@ -2662,11 +2663,11 @@
"dependency": "direct main",
"description": {
"name": "webrtc_interface",
"sha256": "ad0e5786b2acd3be72a3219ef1dde9e1cac071cf4604c685f11b61d63cdd6eb3",
"sha256": "c6f100eac5057d9a817a60473126f9828c796d42884d498af4f339c97b21014f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.4.0"
"version": "1.5.1"
},
"win32": {
"dependency": "transitive",

View file

@ -24,25 +24,24 @@
libsecret,
curl,
_experimental-update-script-combinators,
nix-update-script,
}:
let
inherit (stdenv.hostPlatform.node) arch platform;
cacheRootHash = "sha256-mR5geiPPAv+oK1efT3pMfnUT1keOxB8Ge1yiq4hLtj0=";
cacheAppHash = "sha256-Th3I9IPiHXEvj3FTCg3gefClnX1jDT8EPb/FzIVpjiY=";
cacheRootHash = "sha256-OJDxq1Yep3swLU87YyJz7WfpPzpxo5ISukB4pIwxJBA=";
cacheAppHash = "sha256-DYUlLNxWn4sn7PBir/miJUoDVAQ2/nbOVGWSGN+IPxw=";
in
stdenv.mkDerivation (finalAttrs: {
pname = "github-desktop";
version = "3.5.8";
version = "3.5.10";
src = fetchFromGitHub {
owner = "desktop";
repo = "desktop";
tag = "release-${finalAttrs.version}";
hash = "sha256-K3+YpdSheeXMRehkWy044OFO9jpzfBjWOK39uXAqrsE=";
hash = "sha256-AG5YiX8Jyi3ebgPSU4he2UamEdxgTjEYjezh2WkZjC8=";
fetchSubmodules = true;
postCheckout = "git -C $out rev-parse HEAD > $out/.gitrev";
};
@ -182,16 +181,16 @@ stdenv.mkDerivation (finalAttrs: {
passthru = {
inherit (finalAttrs) cacheRoot cacheApp;
updateScript = _experimental-update-script-combinators.sequence [
(nix-update-script {
extraArgs = [
"--version-regex"
''^release-(\d\.\d\.\d)$''
];
})
# TODO: in the future, use `nix-update --custom-dep`.
./update-yarn-caches.sh
];
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
''^release-(\d+\.\d+\.\d+)$''
"--custom-dep"
"cacheRoot"
"--custom-dep"
"cacheApp"
];
};
};
meta = {

View file

@ -9,15 +9,15 @@
buildGoModule (finalAttrs: {
pname = "goperf";
version = "0-unstable-2026-04-09";
version = "0-unstable-2026-05-12";
src = fetchgit {
url = "https://go.googlesource.com/perf";
rev = "8e83ce0f7b1c6c5d6eab4763f10b9322cbe4cecb";
hash = "sha256-JIR+ytMsZaiQ5w4vTmLG4JHg6tz3/sAs24C3m5//hy4=";
rev = "3cf34090a3db6bb64df2259e30021db7ff5d9595";
hash = "sha256-2dz8GCzmyS8LkN1zzyCO8cn/NBKmPhIqFRfILc9/lVo=";
};
vendorHash = "sha256-5WnH49NE1OUaTFuan3DZYhm0uJxIf7i5pgXK1PuqhA0=";
vendorHash = "sha256-H9aP7PGzq5gmFvlYrkrOFfqCSdlpoQkIkTwKMgwr2hs=";
passthru.updateScript = writeShellScript "update-goperf" ''
export UPDATE_NIX_ATTR_PATH=goperf

View file

@ -13,16 +13,18 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "hurl";
version = "7.1.0";
version = "8.0.1";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "Orange-OpenSource";
repo = "hurl";
tag = finalAttrs.version;
hash = "sha256-ZKTlS+J+43cqB0O5BAqvGwB9ZXfiOunOVB4hH6t2NxI=";
hash = "sha256-DVxY7vjZpcqptq/4CUxo5WX7+Bf9o/sxGobZ7+BMXHM=";
};
cargoHash = "sha256-ZfkOh/sZb0OrA/f5v1mwZ23XuArTAoAcs3evmtAElf4=";
cargoHash = "sha256-rBn14XK1DrwRfe4Mo0aezF4lLhQf4PtsRYkuM1wcZXU=";
nativeBuildInputs = [
pkg-config

View file

@ -8,13 +8,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "jamulus";
version = "3.11.0";
version = "3.12.0";
src = fetchFromGitHub {
owner = "jamulussoftware";
repo = "jamulus";
tag = "r${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
hash = "sha256-YxXSSVm3n96YzE51cXpWf4z2nQBSguvcEp/kU0a6iBA=";
hash = "sha256-GWbk556oggBgh+fX0oKu3hBZ3pU7vTj0ohuNHrN+fks=";
};
nativeBuildInputs = [

View file

@ -2,7 +2,6 @@
lib,
stdenvNoCC,
fetchzip,
texlive,
callPackage,
}:
@ -47,9 +46,9 @@ stdenvNoCC.mkDerivation rec {
'';
passthru = {
tlDeps = with texlive; [
xkeyval
fontspec
tlDeps = ps: [
ps.xkeyval
ps.fontspec
];
tests = callPackage ./tests.nix { };

View file

@ -30,7 +30,7 @@
withKeePassNetworking ? true,
withKeePassSSHAgent ? true,
withKeePassX11 ? true,
withKeePassYubiKey ? stdenv.hostPlatform.isLinux,
withKeePassYubiKey ? true,
nixosTests,
}:
@ -61,9 +61,15 @@ stdenv.mkDerivation (finalAttrs: {
];
};
patches = [
./darwin.patch
];
patches = [ ./darwin-remove-macdeployqt.patch ];
# Upstream develops against a build of PCSC from Xcode.
# The types are incompatible with nixpkgs pcsclite.
# https://github.com/NixOS/nixpkgs/issues/520227
postPatch = ''
substituteInPlace src/keys/drivers/YubiKeyInterfacePCSC.cpp \
--replace-fail "typedef uint32_t RETVAL;" "typedef int32_t RETVAL;"
'';
cmakeFlags = [
(lib.cmakeFeature "KEEPASSXC_BUILD_TYPE" "Release")

View file

@ -1,46 +0,0 @@
{
lib,
stdenv,
fetchurl,
imake,
gccmakedep,
libx11,
libxext,
libxmu,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "larswm";
version = "7.5.3";
src = fetchurl {
url = "mirror://sourceforge/larswm/larswm-${finalAttrs.version}.tar.gz";
sha256 = "1xmlx9g1nhklxjrg0wvsya01s4k5b9fphnpl9zdwp29mm484ni3v";
};
nativeBuildInputs = [
imake
gccmakedep
];
buildInputs = [
libx11
libxext
libxmu
];
makeFlags = [
"BINDIR=$(out)/bin"
"MANPATH=$(out)/share/man"
];
installTargets = [
"install"
"install.man"
];
meta = {
homepage = "http://www.fnurt.net/larswm";
description = "9wm-like tiling window manager";
license = lib.licenses.free;
platforms = lib.platforms.linux;
};
})

View file

@ -1,4 +1,4 @@
{ callPackage }:
{ callPackage, runCommand }:
let
src = callPackage ./src.nix { };
in
@ -32,10 +32,6 @@ rec {
sed -i '/# This must remain last./i gkrust_features += ["glean_disable_upload"]\'$'\n' toolkit/library/rust/gkrust-features.mozbuild
# Temporary fix used with patches/rust-build.patch
sed -i 's/9456ca46168ef86c98399a2536f577ef7be3cdde90c0c51392d8ac48519d3fae/60cd124908737068ab21c7773b3df71d00e186cd605f15bad9977232830aabc0/g' third_party/rust/encoding_rs/.cargo-checksum.json
sed -i 's/d7405d2bcf99cf9729075473c45f677630f4c1947c8ba9757db607f2025a7da2/a066ad881d5a74386e666fc844f7fecbbd70021d0330c1b08a2d7a2a67437ccf/g' third_party/rust/encoding_rs/.cargo-checksum.json
cp ${source}/patches/pref-pane/category-librewolf.svg browser/themes/shared/preferences
cp ${source}/patches/pref-pane/librewolf.css browser/themes/shared/preferences
cp ${source}/patches/pref-pane/librewolf.inc.xhtml browser/components/preferences
@ -55,7 +51,16 @@ rec {
done
'';
extraPrefsFiles = [ "${source}/settings/librewolf.cfg" ];
localSettingsPrefs = runCommand "local-settings.js" { } ''
# Import of `librewolf.cfg` file is already being done manually.
substitute ${source}/settings/defaults/pref/local-settings.js $out \
--replace-fail 'pref("general.config.filename", "librewolf.cfg");' ""
'';
extraPrefsFiles = [
"${source}/settings/librewolf.cfg"
localSettingsPrefs
];
extraPoliciesFiles = [ "${source}/settings/distribution/policies.json" ];

View file

@ -1,11 +1,11 @@
{
"packageVersion": "150.0.3-1",
"packageVersion": "151.0.1-2",
"source": {
"rev": "150.0.3-1",
"hash": "sha256-ScwnfmK2zUFQLoy1Z9P9xQ2iTss2ufbzji/IHJSri9U="
"rev": "151.0.1-2",
"hash": "sha256-6C048VV6NECGTcdGla4qIa88z677ZTjORf5FM0a4xMM="
},
"firefox": {
"version": "150.0.3",
"hash": "sha512-hFLaYSAPjuZnkNP/8jDKhLKskpGvK1fgGEhsUPk4xTxvtJQ/5s/h6ZuXg0ZvsAv3B/oAYpN1OsaYYY/B47cKSg=="
"version": "151.0.1",
"hash": "sha512-hJKhu5VrODcxU5OL0YsOGOOkrQ0qvCAXtF4CvCdoyPRo1cBjKaMkhaA6Z7ucIhAuar/x5zCAx3dkc11DDcdydw=="
}
}

View file

@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
ninja,
pkg-config,
@ -18,16 +19,24 @@
}:
stdenv.mkDerivation (finalAttrs: {
version = "0.7.36";
version = "0.7.37";
pname = "libsolv";
src = fetchFromGitHub {
owner = "openSUSE";
repo = "libsolv";
rev = finalAttrs.version;
hash = "sha256-7a/vAdgW7ma2GHqv1LaQNFA7w1Hmzm6Q/HriNN6hlpE=";
hash = "sha256-hiumMnTJ3eP+acH2V0eNTM71Fw//IWQPechCA0+kH1s=";
};
patches = [
(fetchpatch {
name = "CVE-2026-9149";
url = "https://github.com/openSUSE/libsolv/commit/210386037c892a720972ad35a3d8f7073b4d763b.patch";
hash = "sha256-ju3xn78UGMR5usq1e1ovFTWnKW1TPDA77sNGx8yc8Z8=";
})
];
cmakeFlags = [
"-DENABLE_COMPLEX_DEPS=true"
(lib.cmakeBool "ENABLE_CONDA" withConda)

View file

@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "manifold";
version = "3.4.1";
version = "3.5.0";
src = fetchFromGitHub {
owner = "elalish";
repo = "manifold";
tag = "v${finalAttrs.version}";
hash = "sha256-QcsyX1YwjqNaPAMJy6LtfHxocbBrqVGaRpZ2kxE4xXQ=";
hash = "sha256-4TFS4toHzZsNO/vf3r2dW9QCpnHi2p0BAGSCZVswlYk=";
};
nativeBuildInputs = [ cmake ];

View file

@ -0,0 +1,71 @@
diff --git a/Cargo.lock b/Cargo.lock
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -37,7 +37,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f72209734318d0b619a5e0f5129918b848c416e122a3c4ce054e03cb87b726f"
dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.11.1",
"cexpr",
"clang-sys",
"itertools",
@@ -57,9 +57,9 @@
[[package]]
name = "bitflags"
-version = "2.9.3"
+version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d"
+checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
[[package]]
name = "block-buffer"
@@ -204,20 +204,20 @@
[[package]]
name = "ffmpeg-next"
-version = "8.0.0"
+version = "8.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d658424d233cbd993a972dd73a66ca733acd12a494c68995c9ac32ae1fe65b40"
+checksum = "f7c4bd5ab1ac61f29c634df1175d350ded29cf74c3c6d4f7030431a5ae3c7d5d"
dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.11.1",
"ffmpeg-sys-next",
"libc",
]
[[package]]
name = "ffmpeg-sys-next"
-version = "8.0.1"
+version = "8.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bca20aa4ee774fe384c2490096c122b0b23cf524a9910add0686691003d797b"
+checksum = "a314bc0e022a33a99567ed4bd2576bd58ffd8fcff7891c29194cfecc26a62547"
dependencies = [
"bindgen",
"cc",
@@ -606,7 +606,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.11.1",
"errno",
"libc",
"linux-raw-sys",
diff --git a/Cargo.toml b/Cargo.toml
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -33,7 +33,7 @@
serde_derive = "1.0.198"
[dependencies.ffmpeg-next]
-version = "8.0.0"
+version = "8.1.0"
default-features = false
features = ["codec", "format"]

View file

@ -20,7 +20,12 @@ rustPlatform.buildRustPackage (finalAttrs: {
hash = "sha256-gDOYqPwrWUfUTCx+p+ZpwsP8XxUufDCGem/WzW5cQPc=";
};
cargoHash = "sha256-tUVaseaavm746sxaA2A3ua4ZxzoKSnRQ4rJRBeO9t1U=";
cargoPatches = [
# bump ffmpeg-next 8.0.0 -> 8.1.0 for ffmpeg 8.1 enum variants
./ffmpeg-next-8.1.patch
];
cargoHash = "sha256-TgF88oaf6567Xk20TkqbtE+H+nEKTiUSyswvxvCNFVI=";
nativeBuildInputs = [
pkg-config

View file

@ -7,7 +7,6 @@
python3,
fontforge,
potrace,
texlive,
fetchpatch2,
}:
@ -59,12 +58,11 @@ stdenv.mkDerivation (finalAttrs: {
wrapProgram $out/bin/mftrace --prefix PATH : ${lib.makeBinPath finalAttrs.buildInputs}
'';
# experimental texlive.combine support
# (note that only the bin/ folder will be combined into texlive)
passthru.tlDeps = with texlive; [
kpathsea
t1utils
metafont
# for use with texlive.withPackages
passthru.tlDeps = ps: [
ps.kpathsea
ps.t1utils
ps.metafont
];
meta = {

View file

@ -11,16 +11,16 @@
buildGoModule (finalAttrs: {
pname = "mongodb-atlas-cli";
version = "1.54.0";
version = "1.55.0";
src = fetchFromGitHub {
owner = "mongodb";
repo = "mongodb-atlas-cli";
tag = "atlascli/v${finalAttrs.version}";
hash = "sha256-OZiumnbWNOaH++1u7ZFkpi2xPQ8PG0TI63dXZxX4GOM=";
hash = "sha256-VLX+EpXFo0ow6lvCiCFnobwtMh1DFmYcAA9YK7eOxro=";
};
vendorHash = "sha256-k7hLJ4bk3IAI/m//MIqp+YVMa3bbADnDiLsuEmz1suI=";
vendorHash = "sha256-SaY2ypCTlt4430TGcXuL97wHLm+2OnLsCZHJZDIi8F4=";
nativeBuildInputs = [ installShellFiles ];

View file

@ -28,6 +28,8 @@ let
."${stdenv.hostPlatform.system}" or throwSystem;
docDir = "share/mprime/doc";
ccArch = stdenv.hostPlatform.gcc.arch or "x86-64";
in
stdenv.mkDerivation (finalAttrs: {
pname = "mprime";
@ -67,17 +69,30 @@ stdenv.mkDerivation (finalAttrs: {
gmp
];
env = {
NIX_CFLAGS_COMPILE = toString (
# The following is needed because compiling with stdenv.hostPlatform.gcc.arch
# set to something like "znver1" causes fatal errors during runtime due to
# rounding issues
lib.optional (stdenv.hostPlatform.isx86_64 && ccArch != "x86-64") "-march=x86-64"
);
};
enableParallelBuilding = true;
buildPhase = ''
runHook preBuild
make -C gwnum -f ${gwnum} ''${enableParallelBuilding:+-j$NIX_BUILD_CORES}
make -C ${srcDir} ''${enableParallelBuilding:+-j$NIX_BUILD_CORES}
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm555 -t $out/bin ${srcDir}/mprime
install -Dm444 -t $out/${docDir} license.txt readme.txt stress.txt undoc.txt
runHook postInstall
'';
meta = {

View file

@ -0,0 +1,7 @@
# nixpkgs-update: no auto update
# updated via the parent 'netbird' derivation
{ netbird }:
netbird.override {
componentName = "proxy";
}

View file

@ -14,6 +14,7 @@
libxxf86vm,
versionCheckHook,
netbird-management,
netbird-proxy,
netbird-relay,
netbird-signal,
netbird-ui,
@ -62,6 +63,11 @@ let
binaryName = "netbird-relay";
license = lib.licenses.agpl3Only;
};
proxy = {
module = "proxy/cmd/proxy";
binaryName = "netbird-proxy";
license = lib.licenses.agpl3Only;
};
};
component = availableComponents.${componentName};
in
@ -149,6 +155,7 @@ buildGoModule (finalAttrs: {
netbird-signal
netbird-ui
netbird-upload
netbird-proxy
;
};
updateScript = nix-update-script { };

File diff suppressed because it is too large Load diff

View file

@ -20,19 +20,19 @@
stdenv.mkDerivation (finalAttrs: {
pname = "netease-cloud-music-gtk";
version = "2.5.2";
version = "2.5.3";
src = fetchFromGitHub {
owner = "gmg137";
repo = "netease-cloud-music-gtk";
tag = finalAttrs.version;
hash = "sha256-3vAEk4HwS7EiMv0DAYOvZ9dOlO0yMEUcaO2qCCWlpLs=";
hash = "sha256-yZOCUoAee2XSfO87SzTBjkZ4r2YzVC7mpqYULV5JPRE=";
};
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
outputHashes = {
"netease-cloud-music-api-1.5.1" = "sha256-PFzXm7jgNsEJiluBaNuhSF0kg/licDdbItMDWmfIBDk=";
"netease-cloud-music-api-1.5.2" = "sha256-7j5MLC++MPyuRvJRiUMWPV7OxWM2H+RD/hChuco3UTE=";
};
};

View file

@ -0,0 +1,96 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
blueprint-compiler,
wrapGAppsHook4,
gettext,
desktop-file-utils,
appstream,
glib,
glib-networking,
pkg-config,
cmake,
gtk4,
python3,
python3Packages,
libadwaita,
gobject-introspection,
libsecret,
gst_all_1,
xdg-user-dirs,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nocturne";
version = "1.1.1";
src = fetchFromGitHub {
owner = "Jeffser";
repo = "Nocturne";
tag = finalAttrs.version;
hash = "sha256-7B9wtuxfsF6brtLkIEeWII4IvXwdJHnZ1Wr3uLfoqHU=";
};
__structuredAttrs = true;
dontUseCmakeConfigure = true;
strictDeps = true;
nativeBuildInputs = [
meson
ninja
blueprint-compiler
gobject-introspection
wrapGAppsHook4
gettext # for msgfmt
desktop-file-utils # for desktop-file-validate
appstream
glib
pkg-config
cmake
gtk4
python3
];
buildInputs = [
gtk4
libadwaita
libsecret
python3
glib-networking
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
];
pythonDependencies = [
python3Packages.pygobject3
python3Packages.tinytag
python3Packages.requests
python3Packages.syncedlyrics
python3Packages.pycairo
python3Packages.colorthief
python3Packages.favicon
python3Packages.mpris-server
python3Packages.pillow
];
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : ${lib.makeBinPath [ xdg-user-dirs ]}
--prefix PYTHONPATH : ${python3.pkgs.makePythonPath finalAttrs.pythonDependencies}
)
'';
meta = {
description = "Adwaita Music Player and Library Manager";
homepage = "https://jeffser.com/nocturne/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ pbsds ];
mainProgram = "nocturne";
platforms = lib.platforms.linux;
};
})

View file

@ -88,11 +88,6 @@ stdenv.mkDerivation (finalAttrs: {
"tex"
];
passthru = {
tlType = "run";
pkgs = [ finalAttrs.finalPackage.tex ];
};
meta = {
description = "Simple, extensible literate-programming tool";
homepage = "https://www.cs.tufts.edu/~nr/noweb";

View file

@ -10,13 +10,13 @@
buildGoModule (finalAttrs: {
pname = "nwg-dock-hyprland";
version = "0.4.8";
version = "0.4.9";
src = fetchFromGitHub {
owner = "nwg-piotr";
repo = "nwg-dock-hyprland";
tag = "v${finalAttrs.version}";
hash = "sha256-a+LNABfe5rHStZrf+qlayNuCwTQf+7qY4xjx2K7Ky7E=";
hash = "sha256-c2rLNHlC03Lt9y1mCL52zZWD2WFiMQBuWOujErp2k44=";
};
vendorHash = "sha256-uHxH3g0pcfA5emF4LpvjYsSocjoFtk2p57JRSsY/PKY=";

View file

@ -5,14 +5,17 @@
fetchFromGitHub,
fetchPnpmDeps,
pnpmConfigHook,
pnpm_10,
pnpm_11,
nodejs_22,
makeWrapper,
versionCheckHook,
rolldown,
installShellFiles,
version ? "2026.5.7",
version ? "2026.5.12",
}:
let
pnpm = pnpm_11.override { nodejs = nodejs_22; };
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "openclaw";
version = version;
@ -21,15 +24,15 @@ stdenvNoCC.mkDerivation (finalAttrs: {
owner = "openclaw";
repo = "openclaw";
tag = "v${finalAttrs.version}";
hash = "sha256-ICkq6YfMJVvRC93sM+7/q2JI82wUhjaYAI3pRzmTHYc=";
hash = "sha256-URuoljISNcDLuWUwOpZoFjPNVOmbThC9r00uShPR4Co=";
};
pnpmDepsHash = "sha256-LXaRfZ0WY8VDpDc2zFr+Oel6AuYo6SiTrp37yokT1VU=";
pnpmDepsHash = "sha256-pLQoA9eyHD84E0Rp8MMqfu95tGJtDEMbY+fh0nHjdWo=";
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 3;
inherit pnpm;
fetcherVersion = 4;
hash = finalAttrs.pnpmDepsHash;
};
@ -37,7 +40,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
nativeBuildInputs = [
pnpmConfigHook
pnpm_10
pnpm
nodejs_22
makeWrapper
installShellFiles

View file

@ -12,13 +12,13 @@
buildGoModule rec {
pname = "orbiton";
version = "2.74.0";
version = "2.74.2";
src = fetchFromGitHub {
owner = "xyproto";
repo = "orbiton";
tag = "v${version}";
hash = "sha256-ZzGwcTmfx7f5TeHim+ynJ7l09sktmXz1fLt2pRyW1Og=";
hash = "sha256-NUXA5K3tT1XhWwS0Xj8DquOSBLmJqzH6ikiqiEg3kIs=";
};
vendorHash = null;

View file

@ -23,25 +23,25 @@
# runs without an external linter, which leaves `jsPlugins` configs inert.
stdenv.mkDerivation (finalAttrs: {
pname = "oxlint";
version = "1.65.0";
version = "1.66.0";
src = fetchFromGitHub {
owner = "oxc-project";
repo = "oxc";
tag = "oxlint_v${finalAttrs.version}";
hash = "sha256-sEc4+FQKzYcKW33AwXzl0A1gNucSbpROYrY0pzVKhE8=";
hash = "sha256-Z2NLzW5e83Mdoj1B0dkJ17FBGGXLH4BH+BJcLjGV1Hk=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname version src;
hash = "sha256-9YTUpr52HSnixGwmuArQVmvvVPHM2um4642FUP8h3lY=";
hash = "sha256-TLdLpOsZswVhi9F+wT9Jbx212wIUl/604sOfhOvoWLY=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-C2WEaxluYXmBl4UG4V444lWeKa7+7zcsY3B7Dz7nEqA=";
hash = "sha256-i626Dy+J5bEqncxQrBV5mZCP09DwW7iF5fYLc8mvKG4=";
};
dontUseCmakeConfigure = true;

View file

@ -21,13 +21,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "peertube";
version = "8.1.5";
version = "8.1.8";
src = fetchFromGitHub {
owner = "Chocobozzz";
repo = "PeerTube";
tag = "v${finalAttrs.version}";
hash = "sha256-vLKjTn8tdHb/DUHj/w3ovXmRNzD8CMSKCaPleW+i7Tc=";
hash = "sha256-Ei7MgEyHDJyLXnjI8mT7S7pLno+pTmFWZHc6oEZaTcM=";
};
outputs = [
@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-gvjk4OmKR6W/nllUCSaiX/lVXJSac9r04xr7fNiBftI=";
hash = "sha256-fQ0FyBPZ3v3lCSoWYz1ccbOSrfgnzwQvOyE7Dp3ZGRY=";
};
nativeBuildInputs = [

View file

@ -29,13 +29,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "planify";
version = "4.19.3";
version = "4.19.4";
src = fetchFromGitHub {
owner = "alainm23";
repo = "planify";
tag = "v${finalAttrs.version}";
hash = "sha256-811T28jvPTHwNDlR03Ym2f6RPq0N3FLZFqnThBIW1CU=";
hash = "sha256-TUtaz0dYy4j6WBcHCLJR5+Rh6PwcU51PfxvdgEUM+vU=";
};
nativeBuildInputs = [

View file

@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "pocketbase";
version = "0.38.0";
version = "0.38.2";
src = fetchFromGitHub {
owner = "pocketbase";
repo = "pocketbase";
rev = "v${finalAttrs.version}";
hash = "sha256-nN3yqf/CKHBTp0Dg31R1g8ZNXpinFfpkKsqYbt8EK5o=";
hash = "sha256-p2cyZ1g5F2sIkhoXVPvDvy67gIJl57mX4dn5dH+E3kI=";
};
vendorHash = "sha256-8YtDQLeStdUb6HXX/KEifDHiX//9cH7XCBu2LtHrCQM=";
vendorHash = "sha256-TrcCWMZx9rVathC4nSLQB72SlF6pQIX1+SseSbx6UDU=";
# This is the released subpackage from upstream repo
subPackages = [ "examples/base" ];

View file

@ -14,7 +14,9 @@
nodejs,
npmHooks,
openssl,
pipewire, # pw-metadata for bit-perfect sample rate queries
pkg-config,
pulseaudio, # pactl for PipeWire device enumeration and sink routing
rustPlatform,
webkitgtk_4_1,
wrapGAppsHook3,
@ -66,6 +68,12 @@ rustPlatform.buildRustPackage (finalAttrs: {
postInstall = ''
gappsWrapperArgs+=(
--prefix PATH : ${
lib.makeBinPath [
pulseaudio
pipewire
]
}
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
libappindicator

View file

@ -14,16 +14,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "qdrant";
version = "1.17.1";
version = "1.18.1";
src = fetchFromGitHub {
owner = "qdrant";
repo = "qdrant";
tag = "v${finalAttrs.version}";
hash = "sha256-EGk1BM8/SjH4LO25fG5GGtRXTnhA9prmGR5MxyzJNd4=";
hash = "sha256-lqMyLnVD2iRu2AxlDHO7LzH2fFT01Gegn2JMhLAtDns=";
};
cargoHash = "sha256-8+tMZQUsyouNbxlvykfQ66/THd9PMPnVUbWaXwMtVCM=";
cargoHash = "sha256-nYW1vZzDg2atNLqROFhzKLh0v6aZHoYKUeNNTb82tr4=";
nativeBuildInputs = [
protobuf

View file

@ -11,14 +11,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "qpwgraph";
version = "1.0.1";
version = "1.0.2";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "rncbc";
repo = "qpwgraph";
tag = "v${finalAttrs.version}";
sha256 = "sha256-RU6FD8/H4Z/IxaP+eTHNqkcP63nJ1Tos4PXpZE+i9d4=";
sha256 = "sha256-mCsjNkQw4yalwZvkMzEmK/NVviVZCLxkROtaNrgEAUo=";
};
nativeBuildInputs = [

View file

@ -109,7 +109,6 @@ rustPlatform.buildRustPackage rec {
passthru = {
tests = {
inherit (nixosTests) quickwit;
inherit (nixosTests.vector) syslog-quickwit;
};
updateScript = nix-update-script { };
};

View file

@ -10,7 +10,7 @@
cargo,
rustc,
cmake,
version ? "1.0.0-rc.12",
version ? "1.0.0",
}:
stdenv.mkDerivation (finalAttrs: {
pname = "rolldown";
@ -22,13 +22,13 @@ stdenv.mkDerivation (finalAttrs: {
owner = "rolldown";
repo = "rolldown";
tag = "v${finalAttrs.version}";
hash = "sha256-G26fPJElnIob1b94KqM5b2A64qs+x/d8FNrAsaN8BOI=";
hash = "sha256-EbxZe2JBj69F6bpPn4X7BTRE/dTb/mUIvvqw7oqhAe8=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
pname = "rolldown";
version = finalAttrs.version;
src = finalAttrs.src;
hash = "sha256-btGnMU+t8zij/gRfFp5p6h2/781IZM5AWvZNqC2dfNs=";
hash = "sha256-VDDbS45Lefs/4x0fU1rULgBtjzZJgL1t2lYwENPknEE=";
};
pnpmDeps = fetchPnpmDeps {
pname = "rolldown";
@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
src = finalAttrs.src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-lQVbYV8S3P1+AQwF9PBDxJqbKf9jBAtwymKcxQ55FeQ=";
hash = "sha256-pq94ZI0WW9XJFzecdiM/PaOUp7DSSOWWjRO91rd8Xs4=";
};
# cmake is only needed for Rust build (mimalloc-sys), not for a top-level configure

View file

@ -43,11 +43,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "saga";
version = "9.12.3";
version = "9.12.4";
src = fetchurl {
url = "mirror://sourceforge/saga-gis/saga-${finalAttrs.version}.tar.gz";
hash = "sha256-GLVFk3gaTJ6+AF3Vk201NwzetDI6VTA1Q7sE3KHyqDA=";
hash = "sha256-hI7l0XiIACD65/i+Mhwlp2FMYrpXKHnGr3oYhwNEw3U=";
};
sourceRoot = "saga-${finalAttrs.version}/saga-gis";

View file

@ -6,7 +6,7 @@
replaceVars,
pandoc,
nodejs,
pnpm_9,
pnpm_10,
fetchPnpmDeps,
pnpmConfigHook,
electron,
@ -15,24 +15,22 @@
copyDesktopItems,
nix-update-script,
xdg-utils,
darwin,
}:
let
inherit (stdenv.hostPlatform) isLinux isDarwin system;
pnpm = pnpm_10;
platformIds = {
"x86_64-linux" = "linux";
"aarch64-linux" = "linux-arm64";
"x86_64-darwin" = "darwin";
"aarch64-darwin" = "darwin-arm64";
};
platformId = platformIds.${stdenv.system} or (throw "Unsupported platform: ${stdenv.system}");
desktopEntry = makeDesktopItem {
name = "siyuan";
desktopName = "SiYuan";
comment = "Refactor your thinking";
icon = "siyuan";
exec = "siyuan %U";
categories = [ "Utility" ];
};
platformId = platformIds.${system} or (throw "Unsupported platform: ${system}");
in
stdenv.mkDerivation (finalAttrs: {
pname = "siyuan";
@ -69,9 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
# Set flags and tags as per upstream's Dockerfile
ldflags = [
"-s"
"-w"
"-X"
"github.com/siyuan-note/siyuan/kernel/util.Mode=prod"
"-X 'github.com/siyuan-note/siyuan/kernel/util.Mode=prod'"
];
tags = [ "fts5" ];
};
@ -85,9 +81,14 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
nodejs
pnpmConfigHook
pnpm_9
pnpm
]
++ lib.optionals isLinux [
makeWrapper
copyDesktopItems
]
++ lib.optionals isDarwin [
darwin.autoSignDarwinBinariesHook
];
pnpmDeps = fetchPnpmDeps {
@ -98,9 +99,9 @@ stdenv.mkDerivation (finalAttrs: {
sourceRoot
postPatch
;
pnpm = pnpm_9;
inherit pnpm;
fetcherVersion = 3;
hash = "sha256-GAbP9H+c+JXymH0/vpeYOJrkkFJGVyKcpJYFeyRLSKc=";
hash = "sha256-M2Fdie0XK2Pck/fP7Djxb7XNAQXpJO2i2kSJrDj1G0E=";
};
sourceRoot = "${finalAttrs.src.name}/app";
@ -114,6 +115,9 @@ stdenv.mkDerivation (finalAttrs: {
# link kernel into the correct starting place so that electron-builder can copy it to it's final location
mkdir kernel-${platformId}
ln -s ${finalAttrs.kernel}/bin/kernel kernel-${platformId}/SiYuan-Kernel
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
'';
buildPhase = ''
@ -121,19 +125,36 @@ stdenv.mkDerivation (finalAttrs: {
pnpm build
npm exec electron-builder -- \
--dir \
--config electron-builder-${platformId}.yml \
-c.electronDist=${electron.dist} \
-c.electronVersion=${electron.version}
electronBuilderArgs=(
--dir
--config electron-builder-${platformId}.yml
-c.electronDist=electron-dist
-c.electronVersion=${electron.version}
-c.mac.identity=null
)
npm exec electron-builder -- "''${electronBuilderArgs[@]}"
runHook postBuild
'';
installPhase = ''
runHook preInstall
''
+ lib.optionalString isDarwin ''
mkdir -p $out/Applications $out/bin
cp -R build/mac*/*.app $out/Applications/SiYuan.app
cat > $out/bin/siyuan << EOF
#!${stdenv.shell}
exec open -na "$out/Applications/SiYuan.app" --args "\$@"
EOF
chmod +x $out/bin/siyuan
''
+ lib.optionalString isLinux ''
mkdir -p $out/share/siyuan
cp -r build/*-unpacked/{locales,resources{,.pak}} $out/share/siyuan
makeWrapper ${lib.getExe electron} $out/bin/siyuan \
@ -145,20 +166,26 @@ stdenv.mkDerivation (finalAttrs: {
--inherit-argv0
install -Dm644 src/assets/icon.svg $out/share/icons/hicolor/scalable/apps/siyuan.svg
''
+ ''
runHook postInstall
'';
desktopItems = [ desktopEntry ];
desktopItems = lib.optional isLinux (makeDesktopItem {
name = "siyuan";
desktopName = "SiYuan";
comment = "Refactor your thinking";
icon = "siyuan";
exec = "siyuan %U";
categories = [ "Utility" ];
});
passthru = {
inherit (finalAttrs.kernel) goModules; # this tricks nix-update into also updating the kernel goModules FOD
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^v(\\d+\\.\\d+\\.\\d+)$"
];
};
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^v(\\d+\\.\\d+\\.\\d+)$"
"--subpackage=kernel"
];
};
meta = {

View file

@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "clipboard.yazi";
version = "0-unstable-2026-05-20";
version = "0-unstable-2026-05-22";
src = fetchFromGitHub {
owner = "XYenon";
repo = "clipboard.yazi";
rev = "a125df07ba69c893df0e22592e55c1130ce16fe4";
hash = "sha256-Q+8MGfeP7reX3nDl5V/HFxRYIayPKEQT5w0b+n73b5k=";
rev = "0ac03203a88a6ca85539378fbb1b73b75fe8521e";
hash = "sha256-Ug0lEL+lR3xH1ps4fNljbs2DyExz0P5M2waWR9XTcEQ=";
};
meta = {

View file

@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "close-and-restore-tab.yazi";
version = "0-unstable-2025-05-29";
version = "0-unstable-2026-05-23";
src = fetchFromGitHub {
owner = "MasouShizuka";
repo = "close-and-restore-tab.yazi";
rev = "5047217e59f9c2f4aa5ae15baa92df7b3f724e67";
hash = "sha256-bsx6HVdB2CcKXQG+tGxY2T8Ys8TluIe6xWHhOhv4L4I=";
rev = "d7638aadf1f6c4ca5ed2dbff2d3b07c6f86d9804";
hash = "sha256-s9VOheYlUw7uqxZnd0+mN6lFghOi1shxf0DVIfn6unQ=";
};
meta = {

View file

@ -3,7 +3,6 @@
stdenv,
fetchurl,
perl,
expat,
fontconfig,
freetype,
libxrender,
@ -11,6 +10,7 @@
libx11,
libsm,
libice,
which,
}:
stdenv.mkDerivation (finalAttrs: {
@ -22,9 +22,12 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-8pZ/HAVV341K6QRDUC0UzzO2rGW2AvSZ++Pp445V27w=";
};
buildInputs = [
nativeBuildInputs = [
perl
expat
which
];
buildInputs = [
fontconfig
freetype
libice
@ -34,7 +37,11 @@ stdenv.mkDerivation (finalAttrs: {
libxrender
];
env.NIX_CFLAGS_COMPILE = "-I${freetype}/include/freetype2 -fgnu89-inline";
strictDeps = true;
__structuredAttrs = true;
enableParallelBuilding = true;
env.CFLAGS = "-fgnu89-inline";
meta = {
homepage = "https://www.logicalshift.co.uk/unix/zoom/";
@ -49,5 +56,6 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.gpl3;
platforms = lib.platforms.linux;
mainProgram = "zoom";
broken = true;
};
})

View file

@ -22,7 +22,7 @@ in
stdenv.mkDerivation rec {
pname = "emscripten";
version = "5.0.6";
version = "5.0.7";
llvmEnv = symlinkJoin {
name = "emscripten-llvm-${version}";
@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "emscripten-core";
repo = "emscripten";
hash = "sha256-1lsM/qyNS1rRj0D45mSTtTz7ba+OZggdE0t9N4SHLBU=";
hash = "sha256-EZYjaTja0rojl27UYFbhjHpSBvWu6Vlr6Xe7S+5C4Xc=";
rev = version;
};

View file

@ -14,7 +14,7 @@
buildPythonPackage (finalAttrs: {
pname = "airos";
version = "0.6.5";
version = "0.6.7";
pyproject = true;
disabled = pythonOlder "3.13";
@ -23,7 +23,7 @@ buildPythonPackage (finalAttrs: {
owner = "CoMPaTech";
repo = "python-airos";
tag = "v${finalAttrs.version}";
hash = "sha256-B94YeY6R+83xo9+tmUbgJNi6AvBZ7h4C9VxovPVOL9E=";
hash = "sha256-ad2rYKVnA3yMhXDwARg01EcAr1Et6ADgppkTEAGDI0I=";
};
build-system = [ setuptools ];

View file

@ -11,6 +11,11 @@
lz4,
zlib,
zstd,
stdenv,
sse2Support ? stdenv.hostPlatform.avx2Support,
ssse3Support ? stdenv.hostPlatform.ssse3Support,
avx2Support ? stdenv.hostPlatform.avx2Support,
avx512Support ? stdenv.hostPlatform.avx512Support,
}:
buildPythonPackage rec {
@ -64,10 +69,10 @@ buildPythonPackage rec {
# on Linux/Darwin. Pin them to keep the output generic and machine-independent.
# https://github.com/silx-kit/hdf5plugin/blob/v6.0.0/doc/install.rst#available-options
env.HDF5PLUGIN_NATIVE = "False";
env.HDF5PLUGIN_SSE2 = "False";
env.HDF5PLUGIN_SSSE3 = "False";
env.HDF5PLUGIN_AVX2 = "False";
env.HDF5PLUGIN_AVX512 = "False";
env.HDF5PLUGIN_SSE2 = if sse2Support then "True" else "False";
env.HDF5PLUGIN_SSSE3 = if ssse3Support then "True" else "False";
env.HDF5PLUGIN_AVX2 = if avx2Support then "True" else "False";
env.HDF5PLUGIN_AVX512 = if avx512Support then "True" else "False";
checkPhase = ''
python test/test.py

View file

@ -0,0 +1,51 @@
{
lib,
buildPythonPackage,
fetchPypi,
emoji,
pydbus,
pygobject3,
unidecode,
setuptools,
strenum,
}:
buildPythonPackage (finalAttrs: {
pname = "mpris-server";
version = "0.9.6";
pyproject = true;
src = fetchPypi {
pname = "mpris_server";
inherit (finalAttrs) version;
hash = "sha256-T0ZeDQiYIAhKR8aw3iv3rtwzc+R0PTQuIh6+Hi4rIHQ=";
};
postPatch = ''
substituteInPlace mpris_server/__init__.py \
--replace-fail \
"__version__: Final[str] = '0.9.0'" \
"__version__: Final[str] = '${finalAttrs.version}'"
'';
build-system = [ setuptools ];
dependencies = [
emoji
pydbus
pygobject3
strenum
unidecode
];
pythonImportsCheck = [ "mpris_server" ];
# upstream has no tests
doCheck = false;
meta = {
description = "Publish a MediaPlayer2 MPRIS device to D-Bus";
homepage = "https://pypi.org/project/mpris-server/";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ pbsds ];
};
})

View file

@ -149,6 +149,10 @@ buildPythonPackage (finalAttrs: {
"test_big_arrays" # ValueError: array is too big; `arr.size * arr.dtype.itemsize` is larger tha...
"test_multinomial_pvals_float32" # Failed: DID NOT RAISE <class 'ValueError'>
]
++ lib.optionals stdenv.hostPlatform.isRiscV64 [
"test_floor_division_errors" # FloatingPointError: invalid value encountered in floor_divide
"test_unary_spurious_fpexception" # AssertionError: Got warnings: [<warnings.WarningMessage ...>]
]
++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
# AssertionError: (np.int64(0), np.longdouble('9.9999999999999994515e-21'), np.longdouble('3.9696755572509052902e+20'), 'arctanh')
"test_loss_of_precision"

View file

@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchFromGitHub,
python,
pytestCheckHook,
# build system
@ -44,6 +45,11 @@ buildPythonPackage (finalAttrs: {
pytest-mypy-plugins
];
# expose the installed package so pytest-mypy-plugins' mypy subprocess can resolve `import obspec`
preCheck = ''
export MYPYPATH=$out/${python.sitePackages}
'';
meta = {
description = "Object storage interface definitions for Python";
homepage = "http://developmentseed.org/obspec/";

View file

@ -3,18 +3,21 @@
buildPythonPackage,
fetchPypi,
unittestCheckHook,
setuptools,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "unidiff";
version = "0.7.5";
format = "setuptools";
pyproject = true;
src = fetchPypi {
inherit pname version;
inherit (finalAttrs) pname version;
sha256 = "2e5f0162052248946b9f0970a40e9e124236bf86c82b70821143a6fc1dea2574";
};
build-system = [ setuptools ];
nativeCheckInputs = [ unittestCheckHook ];
unittestFlagsArray = [
@ -28,8 +31,8 @@ buildPythonPackage rec {
description = "Unified diff python parsing/metadata extraction library";
mainProgram = "unidiff";
homepage = "https://github.com/matiasb/python-unidiff";
changelog = "https://github.com/matiasb/python-unidiff/raw/v${version}/HISTORY";
changelog = "https://github.com/matiasb/python-unidiff/raw/v${finalAttrs.version}/HISTORY";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.pbsds ];
};
}
})

View file

@ -28,11 +28,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "drbd";
version = "9.33.0";
version = "9.34.0";
src = fetchurl {
url = "https://pkg.linbit.com/downloads/drbd/utils/drbd-utils-${finalAttrs.version}.tar.gz";
hash = "sha256-Ij/gfQtkbpkbM7qepBRo+aZvkDVi59p2bdD8a06jPbk=";
hash = "sha256-cGPmRRBWtsUbGrKeGjMyETEobRGu6jy59JFFizymPas=";
};
nativeBuildInputs = [

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "victoriametrics-logs-datasource";
version = "0.26.3";
zipHash = "sha256-6aRSuGZCfw3iPkZrGvgij7sTRCZ/kp+2s1T4MCecdIo=";
version = "0.27.1";
zipHash = "sha256-aE/PUQQJKsavZTNuS304Ds/PaWx6vkUklaAwVNeMHvQ=";
meta = {
description = "Grafana datasource for VictoriaLogs";
license = lib.licenses.asl20;

View file

@ -8,13 +8,13 @@
postgresqlBuildExtension (finalAttrs: {
pname = "pg_net";
version = "0.20.2";
version = "0.20.3";
src = fetchFromGitHub {
owner = "supabase";
repo = "pg_net";
tag = "v${finalAttrs.version}";
hash = "sha256-8xhk3WPONVjB2JIIRDBJP9fmtlMx0ld2t9GFYIzTYyQ=";
hash = "sha256-uOy/ESRKXngAyDTLHEQ81ZxZCfdtqoP9OxsqzyQJdEY=";
};
buildInputs = [ curl ];

View file

@ -239,11 +239,7 @@ rec {
runCommand "texlive-test-texdoc"
{
nativeBuildInputs = [
(texlive.withPackages (ps: [
ps.luatex
ps.texdoc
ps.texdoc.texdoc
]))
((texlive.withPackages (ps: [ ps.texdoc ])).overrideAttrs { withDocs = true; })
];
}
''
@ -951,7 +947,7 @@ rec {
scheme:
builtins.foldl' (
acc: pkg: concatLicenses acc (lib.toList (pkg.meta.license or [ ]))
) [ ] scheme.passthru.requiredTeXPackages;
) [ ] scheme.passthru.includedTeXPackages;
correctLicensesAttrNames = scheme: lib.sort lt (map licenseToAttrName (correctLicenses scheme));
hasLicenseMismatch =

View file

@ -1,7 +1,6 @@
{
# texlive package set
tl,
bin,
tlpdbVersion,
@ -11,10 +10,7 @@
makeFontsConf,
makeWrapper,
runCommand,
writeShellScript,
writeText,
toTLPkgSets,
bash,
perl,
# common runtime dependencies
@ -26,12 +22,9 @@
}:
lib.fix (
self:
buildTeXEnv:
{
withDocs ? false,
withSources ? false,
requiredTeXPackages ? ps: [ ps.scheme-infraonly ],
### texlive.combine backward compatibility
__extraName ? "combined",
__extraVersion ? "",
@ -41,448 +34,494 @@ lib.fix (
__fromCombineWrapper ? false,
# build only the formats of a package (for internal use!)
__formatsOf ? null,
}@args:
}:
buildEnv (
finalAttrs:
let
### texlive.combine backward compatibility
# if necessary, convert old style { pkgs = [ ... ]; } packages to attribute sets
isOldPkgList = p: !p.outputSpecified or false && p ? pkgs && builtins.all (p: p ? tlType) p.pkgs;
ensurePkgSets =
ps:
if !__fromCombineWrapper && builtins.any isOldPkgList ps then
let
oldPkgLists = builtins.partition isOldPkgList ps;
in
oldPkgLists.wrong ++ lib.concatMap toTLPkgSets oldPkgLists.right
else
ps;
pkgList = rec {
# resolve dependencies of the packages that affect the runtime
all =
let
packages = ensurePkgSets (requiredTeXPackages tl);
runtime = builtins.partition (
p:
p.outputSpecified or false
-> builtins.elem (p.tlOutputName or p.outputName) [
"out"
"tex"
"tlpkg"
]
) packages;
keySet = p: {
key =
p.pname or p.name
+ lib.optionalString (p.outputSpecified or false) ("-" + p.tlOutputName or p.outputName or "");
inherit p;
tlDeps = if p ? tlDeps then ensurePkgSets p.tlDeps else (p.requiredTeXPackages or (_: [ ]) tl);
};
in
# texlive.combine: the wrapper already resolves all dependencies
if __fromCombineWrapper then
requiredTeXPackages null
let
# if necessary, convert old style { pkgs = [ ... ]; } packages to attribute sets
isOldPkgList = p: !p.outputSpecified or false && p ? pkgs && builtins.all (p: p ? tlType) p.pkgs;
ensurePkgSets =
ps:
if !finalAttrs.passthru.__fromCombineWrapper && builtins.any isOldPkgList ps then
let
oldPkgLists = builtins.partition isOldPkgList ps;
in
oldPkgLists.wrong ++ lib.concatMap toTLPkgSets oldPkgLists.right
else
builtins.catAttrs "p" (
builtins.genericClosure {
startSet = map keySet runtime.right;
operator = p: map keySet p.tlDeps;
}
)
++ runtime.wrong;
ps;
# group the specified outputs
specified = builtins.partition (p: p.outputSpecified or false) all;
specifiedOutputs = lib.groupBy (p: p.tlOutputName or p.outputName) specified.right;
otherOutputNames = builtins.catAttrs "key" (
builtins.genericClosure {
startSet = map (key: { inherit key; }) (
lib.concatLists (builtins.catAttrs "outputs" specified.wrong)
);
operator = _: [ ];
}
);
otherOutputs = lib.genAttrs otherOutputNames (n: builtins.catAttrs n specified.wrong);
outputsToInstall = builtins.catAttrs "key" (
builtins.genericClosure {
startSet = map (key: { inherit key; }) (
[ "out" ]
++ lib.optional (otherOutputs ? man) "man"
++ lib.concatLists (builtins.catAttrs "outputsToInstall" (builtins.catAttrs "meta" specified.wrong))
);
operator = _: [ ];
}
);
pkgList = rec {
# resolve dependencies of the packages that affect the runtime
all =
let
packages = ensurePkgSets (finalAttrs.passthru.requiredTeXPackages tl);
runtime = builtins.partition (
p:
p.outputSpecified or false
-> builtins.elem (p.tlOutputName or p.outputName) [
"out"
"tex"
"tlpkg"
]
) packages;
keySet = p: {
key =
p.pname or p.name
+ lib.optionalString (p.outputSpecified or false) ("-" + p.tlOutputName or p.outputName or "");
inherit p;
tlDeps =
if p ? tlDeps then
(if builtins.isFunction p.tlDeps then p.tlDeps tl else ensurePkgSets p.tlDeps)
else
[ ];
};
in
# texlive.combine: the wrapper already resolves all dependencies
if finalAttrs.passthru.__fromCombineWrapper then
finalAttrs.passthru.requiredTeXPackages null
else
builtins.catAttrs "p" (
builtins.genericClosure {
startSet = map keySet runtime.right;
operator = p: map keySet p.tlDeps;
}
)
++ runtime.wrong;
# split binary and tlpkg from tex, texdoc, texsource
bin =
if __fromCombineWrapper then
builtins.filter (p: p.tlType == "bin") all # texlive.combine: legacy filter
else
otherOutputs.out or [ ] ++ specifiedOutputs.out or [ ];
tlpkg =
if __fromCombineWrapper then
builtins.filter (p: p.tlType == "tlpkg") all # texlive.combine: legacy filter
else
otherOutputs.tlpkg or [ ] ++ specifiedOutputs.tlpkg or [ ];
nonbin =
if __fromCombineWrapper then
builtins.filter (p: p.tlType != "bin" && p.tlType != "tlpkg") all # texlive.combine: legacy filter
else
(
if __combine then # texlive.combine: emulate old input ordering to avoid rebuilds
lib.concatMap (
p:
lib.optional (p ? tex) p.tex
++ lib.optional ((withDocs || p ? man) && p ? texdoc) p.texdoc
++ lib.optional (withSources && p ? texsource) p.texsource
) specified.wrong
else
otherOutputs.tex or [ ]
++ lib.optionals withDocs (otherOutputs.texdoc or [ ])
++ lib.optionals withSources (otherOutputs.texsource or [ ])
)
++ specifiedOutputs.tex or [ ]
++ specifiedOutputs.texdoc or [ ]
++ specifiedOutputs.texsource or [ ];
# outputs that do not become part of the environment
nonEnvOutputs = lib.subtractLists [ "out" "tex" "texdoc" "texsource" "tlpkg" ] otherOutputNames;
# packages that contribute to config files and formats
fontMaps = lib.filter (p: p ? fontMaps && (p.tlOutputName or p.outputName == "tex")) nonbin;
sortedFontMaps = builtins.sort (a: b: a.pname < b.pname) fontMaps;
hyphenPatterns = lib.filter (
p: p ? hyphenPatterns && (p.tlOutputName or p.outputName == "tex")
) nonbin;
sortedHyphenPatterns = builtins.sort (a: b: a.pname < b.pname) hyphenPatterns;
formatPkgs = lib.filter (
p:
p ? formats
&& (p.outputSpecified or false -> p.tlOutputName or p.outputName == "tex")
&& builtins.any (f: f.enabled or true) p.formats
) all;
sortedFormatPkgs =
if __formatsOf != null then [ __formatsOf ] else builtins.sort (a: b: a.pname < b.pname) formatPkgs;
formats = map (
p:
self {
requiredTeXPackages =
ps:
[
ps.scheme-infraonly
p
]
++ hyphenPatterns;
__formatsOf = p;
}
) sortedFormatPkgs;
};
# list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts`
# and `grep -IR rungs "$TEXMFDIST"`
# and ignoring luatex, perl, and shell scripts (those must be patched using postFixup)
needsGhostscript = lib.any (
p:
lib.elem p.pname [
"context"
"dvipdfmx"
"latex-papersize"
"lyluatex"
]
) pkgList.bin;
pname =
if __combine then
"texlive-${__extraName}" # texlive.combine: old name
else
"texlive";
version =
if __combine then
"${toString tlpdbVersion.year}${__extraVersion}" # texlive.combine: old version
else
"${toString tlpdbVersion.year}-r${toString tlpdbVersion.revision}-"
+ (lib.optionalString tlpdbVersion.frozen "final-")
+ (if __formatsOf != null then "${__formatsOf.pname}-fmt" else "env");
name = "${pname}-${version}";
texmfdist = buildEnv {
name = "${name}-texmfdist";
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
paths = builtins.catAttrs "outPath" pkgList.nonbin;
# mktexlsr
nativeBuildInputs = [
tl.texlive-scripts # for mktexlsr.pl with --sort support
perl
];
postBuild = # generate ls-R database
''
perl ${tl.texlive-scripts.tex}/scripts/texlive/mktexlsr.pl --sort "$out"
'';
};
tlpkg = buildEnv {
name = "${name}-tlpkg";
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
paths = builtins.catAttrs "outPath" pkgList.tlpkg;
};
# the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist
# and sometimes look into $TEXMFROOT/tlpkg (notably fmtutil, updmap look for perl modules in both)
texmfroot =
runCommand "${name}-texmfroot"
{
inherit texmfdist tlpkg;
}
''
mkdir -p "$out"
ln -s "$texmfdist" "$out"/texmf-dist
ln -s "$tlpkg" "$out"/tlpkg
'';
# texlive.combine: expose info and man pages in usual /share/{info,man} location
doc = buildEnv {
name = "${name}-doc";
paths = [ (texmfdist.outPath + "/doc") ];
extraPrefix = "/share";
pathsToLink = [
"/info"
"/man"
];
};
meta = {
description =
"TeX Live environment"
+ lib.optionalString withDocs " with documentation"
+ lib.optionalString (withDocs && withSources) " and"
+ lib.optionalString withSources " with sources";
platforms = lib.platforms.all;
longDescription =
"Contains the following packages and their transitive dependencies:\n - "
+ lib.concatMapStringsSep "\n - " (
p:
p.pname + (lib.optionalString (p.outputSpecified or false) " (${p.tlOutputName or p.outputName})")
) (requiredTeXPackages tl);
};
# other outputs
nonEnvOutputs = lib.genAttrs pkgList.nonEnvOutputs (
outName:
buildEnv {
inherit name;
paths = builtins.catAttrs "outPath" (
pkgList.otherOutputs.${outName} or [ ] ++ pkgList.specifiedOutputs.${outName} or [ ]
# group the specified outputs
specified = builtins.partition (p: p.outputSpecified or false) all;
specifiedOutputs = lib.groupBy (p: p.tlOutputName or p.outputName) specified.right;
otherOutputNames = builtins.catAttrs "key" (
builtins.genericClosure {
startSet = map (key: { inherit key; }) (
lib.concatLists (builtins.catAttrs "outputs" specified.wrong)
);
operator = _: [ ];
}
);
derivationArgs = {
outputs = [ outName ];
nativeBuildInputs = [
# force the output to be ${outName} or nix-env will not work
(writeShellScript "force-output.sh" ''
export out="''${${outName}-}"
'')
];
inherit meta passthru;
};
}
);
passthru = {
# This is set primarily to help find-tarballs.nix to do its job
requiredTeXPackages = builtins.filter lib.isDerivation (
pkgList.bin
++ pkgList.nonbin
++ lib.optionals (!__fromCombineWrapper) (
lib.concatMap (
n: (pkgList.otherOutputs.${n} or [ ] ++ pkgList.specifiedOutputs.${n} or [ ])
) pkgList.nonEnvOutputs
)
);
# useful for inclusion in the `fonts.packages` nixos option or for use in devshells
fonts = "${texmfroot}/texmf-dist/fonts";
# support variants attrs, (prev: attrs)
__overrideTeXConfig =
newArgs:
let
appliedArgs = if builtins.isFunction newArgs then newArgs args else newArgs;
in
self (args // { __fromCombineWrapper = false; } // appliedArgs);
withPackages =
reqs:
self (
args
// {
requiredTeXPackages = ps: reqs ps ++ requiredTeXPackages ps;
__fromCombineWrapper = false;
otherOutputs = lib.genAttrs otherOutputNames (n: builtins.catAttrs n specified.wrong);
outputsToInstall = builtins.catAttrs "key" (
builtins.genericClosure {
startSet = map (key: { inherit key; }) (
[ "out" ]
++ lib.optional (otherOutputs ? man) "man"
++ lib.concatLists (builtins.catAttrs "outputsToInstall" (builtins.catAttrs "meta" specified.wrong))
);
operator = _: [ ];
}
);
};
# TeXLive::TLOBJ::fmtutil_cnf_lines
fmtutilLine =
{
name,
engine,
enabled ? true,
patterns ? [ "-" ],
options ? "",
...
}:
lib.optionalString (!enabled) "#! "
+ "${name} ${engine} ${lib.concatStringsSep "," patterns} ${options}";
fmtutilLines =
{ pname, formats, ... }:
[
"#"
"# from ${pname}:"
]
++ map fmtutilLine formats;
# split binary and tlpkg from tex, texdoc, texsource
bin =
if finalAttrs.passthru.__fromCombineWrapper then
builtins.filter (p: p.tlType == "bin") all # texlive.combine: legacy filter
else
otherOutputs.out or [ ] ++ specifiedOutputs.out or [ ];
tlpkg =
if finalAttrs.passthru.__fromCombineWrapper then
builtins.filter (p: p.tlType == "tlpkg") all # texlive.combine: legacy filter
else
otherOutputs.tlpkg or [ ] ++ specifiedOutputs.tlpkg or [ ];
# TeXLive::TLOBJ::language_dat_lines
langDatLine =
{
name,
file,
synonyms ? [ ],
...
}:
[ "${name} ${file}" ] ++ map (s: "=" + s) synonyms;
langDatLines =
{ pname, hyphenPatterns, ... }:
[ "% from ${pname}:" ] ++ builtins.concatMap langDatLine hyphenPatterns;
nonbin =
if finalAttrs.passthru.__fromCombineWrapper then
builtins.filter (p: p.tlType != "bin" && p.tlType != "tlpkg") all # texlive.combine: legacy filter
else
(
if finalAttrs.__combine then # texlive.combine: emulate old input ordering to avoid rebuilds
lib.concatMap (
p:
lib.optional (p ? tex) p.tex
++ lib.optional ((finalAttrs.withDocs || p ? man) && p ? texdoc) p.texdoc
++ lib.optional (finalAttrs.withSources && p ? texsource) p.texsource
) specified.wrong
else
otherOutputs.tex or [ ]
++ lib.optionals finalAttrs.withDocs (otherOutputs.texdoc or [ ])
++ lib.optionals finalAttrs.withSources (otherOutputs.texsource or [ ])
)
++ specifiedOutputs.tex or [ ]
++ specifiedOutputs.texdoc or [ ]
++ specifiedOutputs.texsource or [ ];
# TeXLive::TLOBJ::language_def_lines
# see TeXLive::TLUtils::parse_AddHyphen_line for default values
langDefLine =
{
name,
file,
lefthyphenmin ? "",
righthyphenmin ? "",
synonyms ? [ ],
...
}:
map (
n:
"\\addlanguage{${n}}{${file}}{}{${if lefthyphenmin == "" then "2" else lefthyphenmin}}{${
if righthyphenmin == "" then "3" else righthyphenmin
}}"
) ([ name ] ++ synonyms);
langDefLines =
{ pname, hyphenPatterns, ... }:
[ "% from ${pname}:" ] ++ builtins.concatMap langDefLine hyphenPatterns;
# outputs that do not become part of the environment
nonEnvOutputs = lib.subtractLists [ "out" "tex" "texdoc" "texsource" "tlpkg" ] otherOutputNames;
# TeXLive::TLOBJ::language_lua_lines
# see TeXLive::TLUtils::parse_AddHyphen_line for default values
langLuaLine =
{
name,
file,
lefthyphenmin ? "",
righthyphenmin ? "",
synonyms ? [ ],
...
}@args:
''
''\t['${name}'] = {
''\t''\tloader = '${file}',
''\t''\tlefthyphenmin = ${if lefthyphenmin == "" then "2" else lefthyphenmin},
''\t''\trighthyphenmin = ${if righthyphenmin == "" then "3" else righthyphenmin},
''\t''\tsynonyms = { ${lib.concatStringsSep ", " (map (s: "'${s}'") synonyms)} },
''
+ lib.optionalString (args ? file_patterns) "\t\tpatterns = '${args.file_patterns}',\n"
+ lib.optionalString (args ? file_exceptions) "\t\thyphenation = '${args.file_exceptions}',\n"
+ lib.optionalString (args ? luaspecial) "\t\tspecial = '${args.luaspecial}',\n"
+ "\t},";
langLuaLines =
{ pname, hyphenPatterns, ... }: [ "-- from ${pname}:" ] ++ map langLuaLine hyphenPatterns;
# packages that contribute to config files and formats
fontMaps = lib.filter (p: p ? fontMaps && (p.tlOutputName or p.outputName == "tex")) nonbin;
sortedFontMaps = builtins.sort (a: b: a.pname < b.pname) fontMaps;
hyphenPatterns = lib.filter (
p: p ? hyphenPatterns && (p.tlOutputName or p.outputName == "tex")
) nonbin;
sortedHyphenPatterns = builtins.sort (a: b: a.pname < b.pname) hyphenPatterns;
formatPkgs = lib.filter (
p:
p ? formats
&& (p.outputSpecified or false -> p.tlOutputName or p.outputName == "tex")
&& builtins.any (f: f.enabled or true) p.formats
) all;
sortedFormatPkgs =
if __formatsOf != null then [ __formatsOf ] else builtins.sort (a: b: a.pname < b.pname) formatPkgs;
formats = map (
p:
buildTeXEnv {
requiredTeXPackages =
ps:
[
ps.scheme-infraonly
p
]
++ hyphenPatterns;
__formatsOf = p;
}
) sortedFormatPkgs;
};
assembleConfigLines = f: packages: builtins.concatStringsSep "\n" (builtins.concatMap f packages);
# list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts`
# and `grep -IR rungs "$TEXMFDIST"`
# and ignoring luatex, perl, and shell scripts (those must be patched using postFixup)
needsGhostscript = lib.any (
p:
lib.elem p.pname [
"context"
"dvipdfmx"
"latex-papersize"
"lyluatex"
]
) pkgList.bin;
updmapLines = { pname, fontMaps, ... }: [ "# from ${pname}:" ] ++ fontMaps;
pname =
if finalAttrs.__combine then
"texlive-${finalAttrs.passthru.__extraName}" # texlive.combine: old name
else
"texlive";
version =
if finalAttrs.__combine then
"${toString tlpdbVersion.year}${finalAttrs.passthru.__extraVersion}" # texlive.combine: old version
else
"${toString tlpdbVersion.year}-r${toString tlpdbVersion.revision}-"
+ (lib.optionalString tlpdbVersion.frozen "final-")
+ (if __formatsOf != null then "${__formatsOf.pname}-fmt" else "env");
in
buildEnv {
name = "${pname}-${version}";
inherit name;
texmfdist = buildEnv {
name = "${name}-texmfdist";
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
paths =
builtins.catAttrs "outPath" pkgList.bin
++ lib.optionals (!__combine && __formatsOf == null) pkgList.formats
++ lib.optional __combine doc;
pathsToLink = [
"/"
"/share/texmf-var/scripts"
"/share/texmf-var/tex/generic/config"
"/share/texmf-var/web2c"
"/share/texmf-config"
"/bin" # ensure these are writeable directories
];
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
paths = builtins.catAttrs "outPath" pkgList.nonbin;
postBuild = ''
. "${./build-tex-env.sh}"
'';
# mktexlsr
nativeBuildInputs = [
tl.texlive-scripts # for mktexlsr.pl with --sort support
perl
];
derivationArgs = {
# use attrNames, attrValues to ensure the two lists are sorted in the same way
outputs = [
"out"
]
++ lib.optionals (!__combine && __formatsOf == null) (builtins.attrNames nonEnvOutputs);
otherOutputs = lib.optionals (!__combine && __formatsOf == null) (
builtins.attrValues nonEnvOutputs
postBuild = # generate ls-R database
''
perl ${tl.texlive-scripts.tex}/scripts/texlive/mktexlsr.pl --sort "$out"
'';
};
tlpkg = buildEnv {
name = "${name}-tlpkg";
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
paths = builtins.catAttrs "outPath" pkgList.tlpkg;
};
# the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist
# and sometimes look into $TEXMFROOT/tlpkg (notably fmtutil, updmap look for perl modules in both)
texmfroot =
runCommand "${name}-texmfroot"
{
inherit texmfdist tlpkg;
}
''
mkdir -p "$out"
ln -s "$texmfdist" "$out"/texmf-dist
ln -s "$tlpkg" "$out"/tlpkg
'';
# texlive.combine: expose info and man pages in usual /share/{info,man} location
doc = buildEnv {
name = "${name}-doc";
paths = [ (texmfdist.outPath + "/doc") ];
extraPrefix = "/share";
pathsToLink = [
"/info"
"/man"
];
};
meta = {
description =
"TeX Live environment"
+ lib.optionalString finalAttrs.withDocs " with documentation"
+ lib.optionalString (finalAttrs.withDocs && finalAttrs.withSources) " and"
+ lib.optionalString finalAttrs.withSources " with sources";
platforms = lib.platforms.all;
longDescription =
"Contains the following packages and their transitive dependencies:\n - "
+ lib.concatMapStringsSep "\n - " (
p:
p.pname + (lib.optionalString (p.outputSpecified or false) " (${p.tlOutputName or p.outputName})")
) (finalAttrs.passthru.requiredTeXPackages tl);
};
# other outputs
nonEnvOutputs = lib.genAttrs pkgList.nonEnvOutputs (
outName:
buildEnv {
inherit name;
paths = builtins.catAttrs "outPath" (
pkgList.otherOutputs.${outName} or [ ] ++ pkgList.specifiedOutputs.${outName} or [ ]
);
derivationArgs = {
outputs = [ outName ];
# force the output to be ${outName} or nix-env will not work
preHook = ''
export out="''${${outName}}"
'';
inherit meta passthru;
};
}
);
nativeBuildInputs = [
makeWrapper
libfaketime
tl."texlive.infra" # mktexlsr
tl.texlive-scripts # fmtutil, updmap
tl.texlive-scripts-extra # texlinks
perl
passthru = {
inherit
requiredTeXPackages
__fromCombineWrapper
__extraName
__extraVersion
;
# This is set primarily to help find-tarballs.nix to do its job
includedTeXPackages = builtins.filter lib.isDerivation (
pkgList.bin
++ pkgList.nonbin
++ lib.optionals (!finalAttrs.passthru.__fromCombineWrapper) (
lib.concatMap (
n: (pkgList.otherOutputs.${n} or [ ] ++ pkgList.specifiedOutputs.${n} or [ ])
) pkgList.nonEnvOutputs
)
);
# useful for inclusion in the `fonts.packages` nixos option or for use in devshells
fonts = "${texmfroot}/texmf-dist/fonts";
__overrideTeXConfig = lib.warn "__overrideTeXConfig is deprecated, please switch to overrideAttrs" (
newArgs:
let
# arguments of buildTeXEnv before deprecation of __overrideTeXConfig
prevArgs = {
inherit (finalAttrs)
__combine
;
inherit (finalAttrs.passthru)
requiredTeXPackages
__extraName
__extraVersion
__fromCombineWrapper
;
}
// lib.optionalAttrs (finalAttrs ? withDocs) { inherit (finalAttrs) withDocs; }
// lib.optionalAttrs (finalAttrs ? withSources) { inherit (finalAttrs) withSources; };
appliedArgs = prevArgs // (if builtins.isFunction newArgs then newArgs prevArgs else newArgs);
in
finalAttrs.finalPackage.overrideAttrs (
prevAttrs:
{
passthru = prevAttrs.passthru // {
inherit (appliedArgs)
requiredTeXPackages
__extraName
__extraVersion
;
__fromCombineWrapper = false;
};
inherit (appliedArgs) __combine;
}
// lib.optionalAttrs (appliedArgs ? withDocs) { inherit (appliedArgs) withDocs; }
// lib.optionalAttrs (appliedArgs ? withSources) { inherit (appliedArgs) withSources; }
)
);
withPackages =
reqs:
finalAttrs.finalPackage.overrideAttrs (prevAttrs: {
passthru = prevAttrs.passthru // {
requiredTeXPackages = ps: reqs ps ++ prevAttrs.passthru.requiredTeXPackages ps;
__fromCombineWrapper = false;
};
});
};
# TeXLive::TLOBJ::fmtutil_cnf_lines
fmtutilLine =
{
name,
engine,
enabled ? true,
patterns ? [ "-" ],
options ? "",
...
}:
lib.optionalString (!enabled) "#! "
+ "${name} ${engine} ${lib.concatStringsSep "," patterns} ${options}";
fmtutilLines =
{ pname, formats, ... }:
[
"#"
"# from ${pname}:"
]
++ map fmtutilLine formats;
# TeXLive::TLOBJ::language_dat_lines
langDatLine =
{
name,
file,
synonyms ? [ ],
...
}:
[ "${name} ${file}" ] ++ map (s: "=" + s) synonyms;
langDatLines =
{ pname, hyphenPatterns, ... }:
[ "% from ${pname}:" ] ++ builtins.concatMap langDatLine hyphenPatterns;
# TeXLive::TLOBJ::language_def_lines
# see TeXLive::TLUtils::parse_AddHyphen_line for default values
langDefLine =
{
name,
file,
lefthyphenmin ? "",
righthyphenmin ? "",
synonyms ? [ ],
...
}:
map (
n:
"\\addlanguage{${n}}{${file}}{}{${if lefthyphenmin == "" then "2" else lefthyphenmin}}{${
if righthyphenmin == "" then "3" else righthyphenmin
}}"
) ([ name ] ++ synonyms);
langDefLines =
{ pname, hyphenPatterns, ... }:
[ "% from ${pname}:" ] ++ builtins.concatMap langDefLine hyphenPatterns;
# TeXLive::TLOBJ::language_lua_lines
# see TeXLive::TLUtils::parse_AddHyphen_line for default values
langLuaLine =
{
name,
file,
lefthyphenmin ? "",
righthyphenmin ? "",
synonyms ? [ ],
...
}@args:
''
''\t['${name}'] = {
''\t''\tloader = '${file}',
''\t''\tlefthyphenmin = ${if lefthyphenmin == "" then "2" else lefthyphenmin},
''\t''\trighthyphenmin = ${if righthyphenmin == "" then "3" else righthyphenmin},
''\t''\tsynonyms = { ${lib.concatStringsSep ", " (map (s: "'${s}'") synonyms)} },
''
+ lib.optionalString (args ? file_patterns) "\t\tpatterns = '${args.file_patterns}',\n"
+ lib.optionalString (args ? file_exceptions) "\t\thyphenation = '${args.file_exceptions}',\n"
+ lib.optionalString (args ? luaspecial) "\t\tspecial = '${args.luaspecial}',\n"
+ "\t},";
langLuaLines =
{ pname, hyphenPatterns, ... }: [ "-- from ${pname}:" ] ++ map langLuaLine hyphenPatterns;
assembleConfigLines = f: packages: builtins.concatStringsSep "\n" (builtins.concatMap f packages);
updmapLines = { pname, fontMaps, ... }: [ "# from ${pname}:" ] ++ fontMaps;
in
{
inherit name;
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
paths =
builtins.catAttrs "outPath" pkgList.bin
++ lib.optionals (!finalAttrs.__combine && __formatsOf == null) pkgList.formats
++ lib.optional finalAttrs.__combine doc;
pathsToLink = [
"/"
"/share/texmf-var/scripts"
"/share/texmf-var/tex/generic/config"
"/share/texmf-var/web2c"
"/share/texmf-config"
"/bin" # ensure these are writeable directories
];
buildInputs = [
coreutils
gawk
gnugrep
gnused
]
++ lib.optional needsGhostscript ghostscript;
postBuild = ''
. "${./build-tex-env.sh}"
'';
inherit passthru __combine;
__formatsOf = __formatsOf.pname or null;
derivationArgs = {
# use attrNames, attrValues to ensure the two lists are sorted in the same way
outputs = [
"out"
]
++ lib.optionals (!finalAttrs.__combine && __formatsOf == null) (builtins.attrNames nonEnvOutputs);
otherOutputs = lib.optionals (!finalAttrs.__combine && __formatsOf == null) (
builtins.attrValues nonEnvOutputs
);
inherit texmfdist texmfroot;
strictDeps = true;
fontconfigFile = makeFontsConf { fontDirectories = [ "${texmfroot}/texmf-dist/fonts" ]; };
nativeBuildInputs = [
makeWrapper
libfaketime
tl."texlive.infra" # mktexlsr
tl.texlive-scripts # fmtutil, updmap
tl.texlive-scripts-extra # texlinks
perl
];
fmtutilCnf = assembleConfigLines fmtutilLines pkgList.sortedFormatPkgs;
updmapCfg = assembleConfigLines updmapLines pkgList.sortedFontMaps;
buildInputs = [
coreutils
gawk
gnugrep
gnused
]
++ lib.optional needsGhostscript ghostscript;
languageDat = assembleConfigLines langDatLines pkgList.sortedHyphenPatterns;
languageDef = assembleConfigLines langDefLines pkgList.sortedHyphenPatterns;
languageLua = assembleConfigLines langLuaLines pkgList.sortedHyphenPatterns;
inherit passthru __combine;
__formatsOf = __formatsOf.pname or null;
postactionScripts = builtins.catAttrs "postactionScript" pkgList.tlpkg;
inherit texmfdist texmfroot;
allowSubstitutes = true;
preferLocalBuild = false;
fontconfigFile = makeFontsConf { fontDirectories = [ "${texmfroot}/texmf-dist/fonts" ]; };
meta =
meta
// lib.optionalAttrs (!__combine && __formatsOf == null) {
inherit (pkgList) outputsToInstall;
};
};
}
fmtutilCnf = assembleConfigLines fmtutilLines pkgList.sortedFormatPkgs;
updmapCfg = assembleConfigLines updmapLines pkgList.sortedFontMaps;
languageDat = assembleConfigLines langDatLines pkgList.sortedHyphenPatterns;
languageDef = assembleConfigLines langDefLines pkgList.sortedHyphenPatterns;
languageLua = assembleConfigLines langLuaLines pkgList.sortedHyphenPatterns;
postactionScripts = builtins.catAttrs "postactionScript" pkgList.tlpkg;
# whethe to include doc, source containers
withDocs = false;
withSources = false;
allowSubstitutes = true;
preferLocalBuild = false;
meta =
meta
// lib.optionalAttrs (!finalAttrs.__combine && __formatsOf == null) {
inherit (pkgList) outputsToInstall;
};
};
}
)
)

View file

@ -2,7 +2,7 @@
{
lib,
toTLPkgList,
toTLPkgSets,
tl,
buildTeXEnv,
}:
args@{
@ -46,7 +46,11 @@ let
in
builtins.genericClosure {
startSet = pkgListToSets pkgList;
operator = { pkg, ... }: pkgListToSets (pkg.tlDeps or [ ]);
operator =
{ pkg, ... }:
pkgListToSets (
if pkg ? tlDeps then if builtins.isFunction pkg.tlDeps then pkg.tlDeps tl else pkg.tlDeps else [ ]
);
}
);
combined = combinePkgs (lib.attrValues pkgSet);

View file

@ -233,7 +233,7 @@ let
# function for creating a working environment
buildTeXEnv = import ./build-tex-env.nix {
inherit bin tl;
inherit tl;
inherit tlpdbVersion;
ghostscript = ghostscript_headless;
inherit
@ -243,10 +243,7 @@ let
makeFontsConf
makeWrapper
runCommand
writeShellScript
writeText
toTLPkgSets
bash
perl
coreutils
gawk
@ -260,19 +257,31 @@ let
# respecting specified outputs
toTLPkgList =
drv:
let
drvWithoutDeps = removeAttrs drv [ "tlDeps" ];
drvWithDeps =
if (drv ? tlDeps) then
drv // { tlDeps = if builtins.isFunction drv.tlDeps then drv.tlDeps tl else drv.tlDeps; }
else
drv;
in
if drv.outputSpecified or false then
let
tlType = drv.tlType or tlOutToType.${drv.tlOutputName or drv.outputName} or null;
in
lib.optional (tlType != null) (drv // { inherit tlType; })
lib.optional (tlType != null) (drvWithDeps // { inherit tlType; })
else
[ (drv.tex // { tlType = "run"; }) ]
lib.optional (drv ? tex) (drvWithDeps.tex // { tlType = "run"; })
++ lib.optional (drv ? texdoc) (
drv.texdoc // { tlType = "doc"; } // lib.optionalAttrs (drv ? man) { hasManpages = true; }
drvWithoutDeps.texdoc
// {
tlType = "doc";
}
// lib.optionalAttrs (drv ? man) { hasManpages = true; }
)
++ lib.optional (drv ? texsource) (drv.texsource // { tlType = "source"; })
++ lib.optional (drv ? tlpkg) (drv.tlpkg // { tlType = "tlpkg"; })
++ lib.optional (drv ? out) (drv.out // { tlType = "bin"; });
++ lib.optional (drv ? texsource) (drvWithoutDeps.texsource // { tlType = "source"; })
++ lib.optional (drv ? tlpkg) (drvWithDeps.tlpkg // { tlType = "tlpkg"; })
++ lib.optional (drv ? out) (drvWithDeps.out // { tlType = "bin"; });
tlOutToType = {
out = "bin";
tex = "run";
@ -315,8 +324,8 @@ let
inherit
buildTeXEnv
lib
tl
toTLPkgList
toTLPkgSets
;
};

View file

@ -1080,6 +1080,7 @@ mapAliases {
languageMachines.ucto = ucto; # Added 2025-10-7
languageMachines.uctodata = uctodata; # Added 2025-10-7
lanzaboote-tool = throw "lanzaboote-tool has been removed due to lack of integration maintenance with nixpkgs. Consider using the Nix expressions provided by https://github.com/nix-community/lanzaboote"; # Added 2025-07-23
larswm = throw "'larswm' has been removed, as it is unmaintained upstream"; # Added 2026-05-24
larynx = throw "'larynx' has been renamed to/replaced by 'piper-tts'"; # Converted to throw 2025-10-27
lash = throw "'lash' has been removed, as it is unmaintained upstream"; # Added 2026-01-02
LAStools = lastools; # Added 2026-02-08

View file

@ -1737,6 +1737,7 @@ with pkgs;
texliveSmall
texliveTeTeX
;
texliveFullWithDocs = texliveFull.overrideAttrs { withDocs = true; };
texlivePackages = recurseIntoAttrs (lib.mapAttrs (_: v: v.build) texlive.pkgs);
futhark = haskell.lib.compose.justStaticExecutables haskellPackages.futhark;

View file

@ -18573,10 +18573,6 @@ with self;
}
done
'';
passthru = {
tlType = "run";
pkgs = [ LaTeXML.tex ];
};
meta = {
description = "Transforms TeX and LaTeX into XML/HTML/MathML";
homepage = "https://dlmf.nist.gov/LaTeXML/";

View file

@ -347,7 +347,6 @@ mapAliases {
monarchmoney = throw "'monarchmoney' has been renamed to/replaced by 'monarchmoneycommunity'"; # Added 2026-03-05
monkeytype = throw "'monkeytype' has been removed as it was unmaintained upstream"; # Added 2026-04-19
moretools = "'moretools' has been removed because it is unmaintained"; # Added 2026-01-19
mpris-server = throw "mpris-server was removed because it is unused"; # added 2025-10-31
msldap-bad = throw "'msldap-bad' has been renamed to/replaced by 'badldap'"; # added 2025-11-06
mullvad-closest = throw "'mullvad-closest' has been removed as it was unmaintained. Consider using 'mullvad-compass' instead."; # Added 2026-01-13
multi_key_dict = throw "'multi_key_dict' has been renamed to/replaced by 'multi-key-dict'"; # Converted to throw 2025-10-29

View file

@ -10409,6 +10409,8 @@ self: super: with self; {
mpris-api = callPackage ../development/python-modules/mpris-api { };
mpris-server = callPackage ../development/python-modules/mpris-server { };
mprisify = callPackage ../development/python-modules/mprisify { };
mpv = callPackage ../development/python-modules/mpv { inherit (pkgs) mpv; };