Merge master into staging-nixos

This commit is contained in:
nixpkgs-ci[bot]
2026-07-07 18:42:42 +00:00
committed by GitHub
72 changed files with 1525 additions and 1088 deletions

View File

@@ -49,7 +49,7 @@ jobs:
- name: Create backport PRs
id: backport
uses: korthout/backport-action@66065406958f46e82238fd59546f5a99e69e22aa # v4.5.2
uses: korthout/backport-action@2e830a1d0b8269505846ddd407a70876913ad1f8 # v4.6.0
with:
# Config README: https://github.com/korthout/backport-action#backport-action
add_author_as_reviewer: true

View File

@@ -17,6 +17,7 @@
busybox,
jq,
nix,
perf,
}:
{
@@ -92,6 +93,8 @@ let
evalSystem ? builtins.currentSystem,
# The path to the `result.json` file from `preEval`
preEvalFile ? "${preEval { inherit evalSystem; }}/result.json",
# Output the number of assembly instructions executed during evaluation
countInstructions ? false,
}:
let
singleChunk = writeShellScript "single-chunk" ''
@@ -147,13 +150,16 @@ let
runCommand "nixpkgs-eval-${evalSystem}"
{
# Don't depend on -dev outputs to reduce closure size for CI.
nativeBuildInputs = map lib.getBin [
busybox
jq
nix
];
nativeBuildInputs = map lib.getBin (
[
busybox
jq
nix
]
++ lib.optionals countInstructions [ perf ]
);
env = {
inherit evalSystem chunkSize;
inherit evalSystem chunkSize countInstructions;
};
__structuredAttrs = true;
unsafeDiscardReferences.out = true;
@@ -203,9 +209,23 @@ let
mkdir -p "$chunkOutputDir"/{result,stats,timestats,stderr}
seq -w 0 "$seq_end" |
xargs -I{} -P"$cores" \
${singleChunk} "$chunkSize" {} "$evalSystem" "$chunkOutputDir" "$preEvalFile"
runAllChunks() {
seq -w 0 "$seq_end" |
xargs -I{} -P"$cores" \
${singleChunk} "$chunkSize" {} "$evalSystem" "$chunkOutputDir" "$preEvalFile"
}
if [[ -n "$countInstructions" ]]; then
export seq_end cores chunkSize evalSystem chunkOutputDir preEvalFile
export -f runAllChunks
perf stat \
--event instructions:u --field-separator , --output "$chunkOutputDir"/perf-output-file \
bash -c runAllChunks
cat "$chunkOutputDir"/perf-output-file | tail -n 1 | cut -d, -f1 > "$chunkOutputDir"/instructions
rm "$chunkOutputDir"/perf-output-file
else
runAllChunks
fi
if (( chunkSize * chunkCount != attrCount )); then
# A final incomplete chunk would mess up the stats, don't include it
@@ -237,6 +257,9 @@ let
# We only use the stats from the allowed attrs eval, because the disallowed attrs are generally not even a full chunk
cp -r "$chunkOutputDirs"/allowed/stats $out/${evalSystem}/stats-by-chunk
if [[ -f "$chunkOutputDirs"/allowed/instructions ]]; then
cp "$chunkOutputDirs"/allowed/instructions $out/${evalSystem}/instructions
fi
cat "$chunkOutputDirs"/*/result/* | jq -s 'add | map_values(.outputs)' > $out/${evalSystem}/paths.json
cat "$chunkOutputDirs"/*/result/* | jq -s 'add | map_values(.meta)' > $out/${evalSystem}/meta.json
@@ -276,14 +299,20 @@ let
}) | from_entries
' > $out/maintainers.json
mkdir -p $out/before/stats
mkdir -p $out/before/stats $out/before/instructions
for d in ${diffDir}/before/*; do
cp -r "$d"/stats-by-chunk $out/before/stats/$(basename "$d")
if [[ -f "$d"/instructions ]]; then
cp "$d"/instructions $out/before/instructions/$(basename "$d")
fi
done
mkdir -p $out/after/stats
mkdir -p $out/after/stats $out/after/instructions
for d in ${diffDir}/after/*; do
cp -r "$d"/stats-by-chunk $out/after/stats/$(basename "$d")
if [[ -f "$d"/instructions ]]; then
cp "$d"/instructions $out/after/instructions/$(basename "$d")
fi
done
'';
@@ -293,13 +322,16 @@ let
{
# Whether to evaluate on a specific set of systems, by default all are evaluated
evalSystems ? if quickTest then [ "x86_64-linux" ] else supportedSystems,
# Output the number of assembly instructions executed during evaluation on
# each system
countInstructions ? false,
}:
symlinkJoin {
name = "nixpkgs-eval-baseline";
paths = map (
evalSystem:
singleSystem {
inherit evalSystem;
inherit evalSystem countInstructions;
}
) evalSystems;
};
@@ -318,6 +350,9 @@ let
# The branch the local comparison is made against; matches the `master`
# used in the touched-files expression above.
baseBranch ? "master",
# Output the number of assembly instructions executed during evaluation on
# each system
countInstructions ? false,
}:
let
diffs = symlinkJoin {
@@ -328,7 +363,7 @@ let
inherit evalSystem;
beforeDir = baseline;
afterDir = singleSystem {
inherit evalSystem;
inherit evalSystem countInstructions;
};
}
) evalSystems;

View File

@@ -4,6 +4,11 @@
...
}:
{
runtimeInputs = [
# tree-root uses `git rev-parse --show-toplevel`
pkgs.gitMinimal
];
settings = {
# numtide/treefmt-nix defaults
excludes = [

View File

@@ -3,6 +3,10 @@
`stdenv.mkDerivation` also accepts a [fixed-point function](#function-library-lib.fixedPoints.fix) instead of a plain attribute set:
```nix
{
stdenv,
fetchurl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "hello";
version = "2.12";
@@ -23,7 +27,8 @@ See [recursive-sets](https://nix.dev/manual/nix/stable/language/syntax#recursive
## Define a build helper with `lib.extendMkDerivation` {#sec-build-helper-extendMkDerivation}
Use [`lib.customisation.extendMkDerivation`](#function-library-lib.customisation.extendMkDerivation) to define a build helper with fixed-point support from an existing one. It takes an attribute overlay similar to [`<pkg>.overrideAttrs`](#sec-pkg-overrideAttrs).
Use [`lib.customisation.extendMkDerivation`](#function-library-lib.customisation.extendMkDerivation) to define a build helper with fixed-point support from an existing one.
Its argument `extendDrvArgs` takes an attribute overlay similar to [`<pkg>.overrideAttrs`](#sec-pkg-overrideAttrs).
Besides overriding, `lib.extendMkDerivation` also supports `excludeDrvArgNames` to optionally exclude some arguments in the input fixed-point arguments from passing down to the base build helper (specified as `constructDrv`).
@@ -36,6 +41,10 @@ Define a build helper named `mkLocalDerivation` that builds locally without usin
Use `lib.extendMkDerivation`:
```nix
{
lib,
stdenv,
}:
lib.extendMkDerivation {
constructDrv = stdenv.mkDerivation;
excludeDrvArgNames = [
@@ -65,3 +74,72 @@ To apply extra changes to the result derivation, pass `transformDrv` to `lib.ext
```nix
lib.customisation.extendMkDerivation { transformDrv = drv: /...; }
```
Construct a wrapper derivation around another derivation using `transformDrv`
The wrapper has access to the original arguments
:::{.example #ex-build-helpers-extendMkDerivation-transformDrv-wrapper}
# Define a custom build helper that downloads and builds
```nix
{
lib,
stdenvNoCC,
cacert,
configure-example,
download-example,
}:
lib.extendMkDerivation {
constructDrv = stdenvNoCC.mkDerivation;
excludeDrvArgNames = [
"bar"
];
extendDrvArgs =
finalAttrs:
{
bar,
foo,
hash ? "",
...
}@args:
{
inherit hash;
nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [
cacert
download-example
];
buildPhase = ''
runHook preBuild
download-example --foo="$foo" --out="$out"
runHook postBuild
'';
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
outputHash = if finalAttrs.hash != "" then finalAttrs.hash else lib.fakeHash;
outputHashFormat = "recursive";
passthru = args.passthru or { } // {
inherit bar;
};
};
transformDrv =
unwrapped:
stdenvNoCC.mkDerivation (finalAttrs: {
name = finalAttrs.src.name + "-wrapped";
src = unwrapped;
nativeBuildInputs = [
configure-example
];
inherit (unwrapped) bar;
buildPhase = ''
runHook preBuild
configure-example --bar="$bar"
runHook postBuild
'';
});
}
```

View File

@@ -108,6 +108,9 @@
"ex-build-helpers-extendMkDerivation": [
"index.html#ex-build-helpers-extendMkDerivation"
],
"ex-build-helpers-extendMkDerivation-transformDrv-wrapper": [
"index.html#ex-build-helpers-extendMkDerivation-transformDrv-wrapper"
],
"ex-first-package-go": [
"index.html#ex-first-package-go"
],

View File

@@ -60,6 +60,8 @@
- `requireFile` now sets `meta.license = lib.licenses.unfree` by default. Users of `requireFile`-based derivations that preserve this default will need to explicitly allow their evaluation as described in [](#sec-allow-unfree).
- `texlive.combine` is deprecated and scheduled for removal in 27.05. Please migrate to `texliveSmall.withPackages` (see [](#sec-language-texlive-user-guide)).
- `librest` providing 0.7 ABI was removed. `librest_1_0` providing 1.0 ABI was renamed to `librest` and `librest_1_0` was kept as an alias.
- `pnpm_10` was upgraded to version 10.34.1+, which introduced stricter integrity checks. If you encounter `ERR_PNPM_MISSING_TARBALL_INTEGRITY`, you can fall back to the older `pnpm_10_34_0`.
@@ -77,6 +79,8 @@
- `nim1` and respective aliases have been removed due to entering EOL; please migrate to `nim` or `nim-unwrapped` (nim 2).
- `nim-2_0` & `nim-2_2` and respective aliases have been removed; please migrate to `nim` or `nim-unwrapped` (nim 2.2.10).
- `vimacs` has been removed, as it has not been maintained in 10 years and was built for an old version of vim (6.0).
## Other Notable Changes {#sec-nixpkgs-release-26.11-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->

View File

@@ -30480,6 +30480,13 @@
github = "x807x";
githubId = 86676478;
};
xaltsc = {
email = "hey+dev@xaltsc.dev";
matrix = "@xaltsc:matrix.org";
name = "xaltsc";
github = "xaltsc";
githubId = 41400742;
};
xanderio = {
name = "Alexander Sieg";
email = "alex@xanderio.de";

View File

@@ -57,6 +57,8 @@
- `security.polkit.enablePkexecWrapper` has been introduced, making the `pkexec` setuid wrapper opt-in.
- Apache Kafka has dropped support for ZooKeeper mode. The `apacheKafka_3_9` and `apacheKafka_4_0` packages have been removed, as every remaining packaged version is KRaft-only. The `services.apache-kafka.zookeeper` option (previously an alias for `services.apache-kafka.settings."zookeeper.connect"`) has been removed; migrate your cluster to [KRaft](#module-services-apache-kafka-kraft) mode instead.
- When Avahi's mDNS resolver is enabled (`services.avahi.nssmdns4` or `services.avahi.nssmdns6`), only the minimal mDNS resolver is enabled by default to avoid adding a 5 second delay to every failed reverse hostname lookup (e.g., delaying ping by 5 seconds). The "full" mDNS resolver now remains disabled unless `services.avahi.nssmdnsFull` is also enabled. Users who have customized [`/etc/mdns.allow`](https://github.com/avahi/nss-mdns/tree/master#etcmdnsallow) to allow mDNS domains not ending `.local` must enable `services.avahi.nssmdnsFull` to continue to resolve such domains.
- `systemd.user.extraConfig` has been removed in favor of the structured [](#opt-systemd.user.settings.Manager) option. Use `systemd.user.settings.Manager` to set any `systemd-user.conf(5)` option directly. For example, replace `systemd.user.extraConfig = "DefaultTimeoutStartSec=60";` with `systemd.user.settings.Manager.DefaultTimeoutStartSec = 60;`.

View File

@@ -63,7 +63,7 @@ in
options = {
"broker.id" = lib.mkOption {
description = "Broker ID. -1 or null to auto-allocate in zookeeper mode.";
description = "Broker ID.";
default = null;
type = with lib.types; nullOr int;
};
@@ -172,9 +172,13 @@ in
[ "services" "apache-kafka" "logDirs" ]
[ "services" "apache-kafka" "settings" "log.dirs" ]
)
(lib.mkRenamedOptionModule
[ "services" "apache-kafka" "zookeeper" ]
[ "services" "apache-kafka" "settings" "zookeeper.connect" ]
(lib.mkRemovedOptionModule
[
"services"
"apache-kafka"
"zookeeper"
]
"ZooKeeper mode is no longer supported by any packaged Apache Kafka version; please migrate to KRaft mode instead"
)
(lib.mkRemovedOptionModule [

View File

@@ -12,10 +12,9 @@ manual](https://kafka.apache.org/documentation/#configuration) broker settings.
## KRaft {#module-services-apache-kafka-kraft}
Unlike in Zookeeper mode, Kafka in
[KRaft](https://kafka.apache.org/documentation/#kraft) mode requires each log
dir to be "formatted" (which means a cluster-specific a metadata file must
exist in each log dir)
Kafka in [KRaft](https://kafka.apache.org/documentation/#kraft) mode requires
each log dir to be "formatted" (which means a cluster-specific a metadata file
must exist in each log dir)
The upstream intention is for users to execute the [storage
tool](https://kafka.apache.org/documentation/#kraft_storage) to achieve this,
@@ -59,5 +58,4 @@ Notable changes to be aware of include:
- [Upstream docs](https://kafka.apache.org/documentation.html#brokerconfigs_broker.id)
- Removal of `services.apache-kafka.zookeeper`
- Translate using: `services.apache-kafka.settings."zookeeper.connect"`
- [Upstream docs](https://kafka.apache.org/documentation.html#brokerconfigs_zookeeper.connect)
- ZooKeeper mode is no longer supported; migrate to [KRaft](#module-services-apache-kafka-kraft) mode instead.

View File

@@ -5,10 +5,7 @@ with pkgs.lib;
let
makeKafkaTest =
name:
{
kafkaPackage,
mode ? "kraft",
}:
{ kafkaPackage }:
(import ../make-test-python.nix {
inherit name;
@@ -16,48 +13,36 @@ let
kafka =
{ ... }:
{
services.apache-kafka = mkMerge [
{
enable = true;
package = kafkaPackage;
settings = {
"offsets.topic.replication.factor" = 1;
"log.dirs" = [
"/var/lib/kafka/logdir1"
"/var/lib/kafka/logdir2"
];
};
}
(mkIf (mode == "zookeeper") {
settings = {
"zookeeper.session.timeout.ms" = 600000;
"zookeeper.connect" = [ "zookeeper1:2181" ];
};
})
(mkIf (mode == "kraft") {
clusterId = "ak2fIHr4S8WWarOF_ODD0g";
formatLogDirs = true;
settings = {
"node.id" = 1;
"process.roles" = [
"broker"
"controller"
];
"listeners" = [
"PLAINTEXT://:9092"
"CONTROLLER://:9093"
];
"listener.security.protocol.map" = [
"PLAINTEXT:PLAINTEXT"
"CONTROLLER:PLAINTEXT"
];
"controller.quorum.voters" = [
"1@kafka:9093"
];
"controller.listener.names" = [ "CONTROLLER" ];
};
})
];
services.apache-kafka = {
enable = true;
package = kafkaPackage;
clusterId = "ak2fIHr4S8WWarOF_ODD0g";
formatLogDirs = true;
settings = {
"offsets.topic.replication.factor" = 1;
"log.dirs" = [
"/var/lib/kafka/logdir1"
"/var/lib/kafka/logdir2"
];
"node.id" = 1;
"process.roles" = [
"broker"
"controller"
];
"listeners" = [
"PLAINTEXT://:9092"
"CONTROLLER://:9093"
];
"listener.security.protocol.map" = [
"PLAINTEXT:PLAINTEXT"
"CONTROLLER:PLAINTEXT"
];
"controller.quorum.voters" = [
"1@kafka:9093"
];
"controller.listener.names" = [ "CONTROLLER" ];
};
};
networking.firewall.allowedTCPPorts = [
9092
@@ -67,29 +52,11 @@ let
# i686 tests: qemu-system-i386 can simulate max 2047MB RAM (not 2048)
virtualisation.memorySize = 2047;
};
}
// optionalAttrs (mode == "zookeeper") {
zookeeper1 =
{ ... }:
{
services.zookeeper = {
enable = true;
};
networking.firewall.allowedTCPPorts = [ 2181 ];
virtualisation.diskSize = 1024;
};
};
testScript = ''
start_all()
${optionalString (mode == "zookeeper") ''
zookeeper1.wait_for_unit("default.target")
zookeeper1.wait_for_unit("zookeeper.service")
zookeeper1.wait_for_open_port(2181)
''}
kafka.wait_for_unit("default.target")
kafka.wait_for_unit("apache-kafka.service")
kafka.wait_for_open_port(9092)
@@ -115,12 +82,8 @@ let
in
with pkgs;
{
kafka_3_9 = makeKafkaTest "kafka_3_9" {
kafkaPackage = apacheKafka_3_9;
mode = "zookeeper";
};
kafka_4_0 = makeKafkaTest "kafka_4_0" { kafkaPackage = apacheKafka_4_0; };
kafka_4_1 = makeKafkaTest "kafka_4_1" { kafkaPackage = apacheKafka_4_1; };
kafka_4_2 = makeKafkaTest "kafka_4_2" { kafkaPackage = apacheKafka_4_2; };
kafka_4_3 = makeKafkaTest "kafka_4_3" { kafkaPackage = apacheKafka_4_3; };
kafka = makeKafkaTest "kafka" { kafkaPackage = apacheKafka; };
}

View File

@@ -74,6 +74,7 @@ mapAliases (
typescript-nvim = throw "'vimPlugins.typescript-nvim' has been removed: upstream deleted repository"; # Added 2026-06-15
vim-csharp = throw "'vimPlugins.vim-csharp' has been removed: repository deleted"; # Added 2026-05-12
vim-sourcetrail = throw "'vimPlugins.vim-sourcetrail' has been removed: abandoned by upstream"; # Added 2022-08-14
vimacs = throw "'vimPlugins.vimacs' has been removed due to lack of maintenance"; # Added 2026-07-07
# keep-sorted end
}
// deprecations

View File

@@ -25096,20 +25096,6 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
vimacs = buildVimPlugin {
pname = "vimacs";
version = "0.96-unstable-2016-03-24";
src = fetchFromGitHub {
owner = "andrep";
repo = "vimacs";
rev = "7b8e297722d55089f0f0535fe6422533c98112fb";
hash = "sha256-zgSKuwhuyoa67UlX4yX2JumjfHrx7Mlvg7Bv2i6TInU=";
};
meta.homepage = "https://github.com/andrep/vimacs/";
meta.license = unfree;
meta.hydraPlatforms = [ ];
};
vimade = buildVimPlugin {
pname = "vimade";
version = "2.5.1-unstable-2026-05-17";

View File

@@ -5820,22 +5820,6 @@ assertNoAdditions {
};
});
vimacs = super.vimacs.overrideAttrs (old: {
buildPhase = ''
substituteInPlace bin/vim \
--replace-fail '/usr/bin/vim' 'vim' \
--replace-fail '/usr/bin/gvim' 'gvim'
# remove unnecessary duplicated bin wrapper script
rm -r plugin/vimacs
'';
meta = old.meta // {
description = "Vim-Improved eMACS: Emacs emulation plugin for Vim";
homepage = "http://algorithm.com.au/code/vimacs";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ millerjason ];
};
});
vimade = super.vimade.overrideAttrs {
checkInputs = with self; [
# Optional providers

View File

@@ -1790,7 +1790,6 @@ https://github.com/marrub--/vim-zscript/,,
https://github.com/dag/vim2hs/,,
https://github.com/monkoose/vim9-stargate/,,
https://github.com/dominikduda/vim_current_word/,,
https://github.com/andrep/vimacs/,,
https://github.com/TaDaa/vimade/,,
https://github.com/jreybert/vimagit/,,
https://github.com/gotcha/vimelette/,,

View File

@@ -1,44 +0,0 @@
{
lib,
stdenv,
config,
vim-full,
macvim,
vimPlugins,
useMacvim ? stdenv.hostPlatform.isDarwin && (config.vimacs.macvim or true),
vimacsExtraArgs ? "",
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vimacs";
version = lib.getVersion finalAttrs.vimPackage;
vimPackage = if useMacvim then macvim else vim-full;
buildInputs = [
finalAttrs.vimPackage
vimPlugins.vimacs
];
buildCommand = ''
mkdir -p "$out"/bin
cp "${vimPlugins.vimacs}"/bin/vim $out/bin/vimacs
substituteInPlace "$out"/bin/vimacs \
--replace '-vim}' '-@bin@/bin/vim}' \
--replace '-gvim}' '-@bin@/bin/vim -g}' \
--replace '--cmd "let g:VM_Enabled = 1"' \
'--cmd "let g:VM_Enabled = 1" --cmd "set rtp^=@rtp@" ${vimacsExtraArgs}' \
--replace @rtp@ ${vimPlugins.vimacs} \
--replace @bin@ ${finalAttrs.vimPackage}
for prog in vm gvm gvimacs vmdiff vimacsdiff
do
ln -s "$out"/bin/vimacs $out/bin/$prog
done
'';
meta = {
description = "Vim-Improved eMACS: Emacs emulation for Vim";
homepage = "http://algorithm.com.au/code/vimacs";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ millerjason ];
};
})

View File

@@ -21,26 +21,26 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
sources = {
"x86_64-linux" = {
arch = "linux-x64";
hash = "sha256-/uvQIg773WUzalc9XFtBrocsGye3v5y1rvKyJVpXWS0=";
hash = "sha256-m1c/d6ZnIKxuzwh62BVITwOrU+O3iarvvzGy8O0Q2fg=";
};
"aarch64-linux" = {
arch = "linux-arm64";
hash = "sha256-zC0iYoAxmymxdqo2JgDcMOvUOA3pFbkx0s9C4F6E75k=";
hash = "sha256-QXufvHESQtNG0MDO3+ELONqSr7Ugzje4ZPX/VYWOmQ4=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
hash = "sha256-mhZBWpV3Gl5TLieIEvrtDmtqQBKeiCcDCwOShQnp++Y=";
hash = "sha256-gtHPurMqM93UhE6VfqR8y/XiF0nICkrPxwlV+ca7Bd4=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
hash = "sha256-I570YO5mvXgzXG52NdoGjgVgHbyshm6fIkCIN0li9+4=";
hash = "sha256-9YxeN0pYu7E8J1lz1IAzTFluBes7joCEOAzQpkRi7SM=";
};
};
in
{
name = "claude-code";
publisher = "anthropic";
version = "2.1.201";
version = "2.1.202";
}
// sources.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");

View File

@@ -9,10 +9,10 @@
buildMozillaMach rec {
pname = "firefox";
version = "152.0.4";
version = "152.0.5";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "0c5662aba8fb897902af95dbb2fd988b196d9cf9ae8b987ae89e0a6492ac753b8d4b8bb7b3274909c2eb200ab098df356e23cd6084556467f55e69127317f39a";
sha512 = "6cf2dc7f28a6a3430f2866df4ca35063cbadf234c82a34fa651e02d909e5741e50cd986fef1bd97d486b51244cb639b2b103514688347bf7f94fd16d264cc4f2";
};
meta = {

View File

@@ -6,6 +6,7 @@
ninja,
pkg-config,
wrapGAppsHook3,
assimp,
boost183,
cacert,
cereal,
@@ -27,6 +28,7 @@
libpng,
libsecret,
makeFontsConf,
libnoise,
mpfr,
nanum,
nlopt,
@@ -39,6 +41,7 @@
webkitgtk_4_1,
wxwidgets_3_1,
libx11,
libharu,
withSystemd ? stdenv.hostPlatform.isLinux,
# 3D viewport blank on NVIDIA proprietary GL; routes through Mesa + zink.
# https://github.com/NixOS/nixpkgs/issues/498311
@@ -66,13 +69,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "bambu-studio";
version = "02.05.00.67";
version = "02.08.00.50";
src = fetchFromGitHub {
owner = "bambulab";
repo = "BambuStudio";
tag = "v${finalAttrs.version}";
hash = "sha256-jLaSUs6OmoD0yw1hOcJarYKfr1rbhB2TwRiBBU0utEI=";
hash = "sha256-zIizozfZkaXo5wymuBFBCUu/lu+FyYTpa4+3SoC2x7k=";
};
nativeBuildInputs = [
@@ -83,6 +86,7 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [
assimp
boost183
cereal
cgal_5
@@ -104,6 +108,7 @@ stdenv.mkDerivation (finalAttrs: {
hicolor-icon-theme
libpng
libsecret
libnoise
mpfr
nlopt
opencascade-occt_7_6
@@ -113,6 +118,7 @@ stdenv.mkDerivation (finalAttrs: {
webkitgtk_4_1
wxGTK'
libx11
libharu
opencv
]
++ lib.optionals withSystemd [ systemd ]
@@ -129,8 +135,25 @@ stdenv.mkDerivation (finalAttrs: {
./patches/no-cereal.patch
# Cmake 4 support
./patches/cmake.patch
# Disable nodejs
./patches/no-device-web-node-download.patch
];
postPatch =
# Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
# now seems to be integrated into the main lib.
''
substituteInPlace cmake/modules/FindNLopt.cmake \
--replace-fail "nlopt_cxx" "nlopt"
''
# Fix libharu include
+ ''
substituteInPlace src/slic3r/GUI/Overview/AssemblyStepsUtils.cpp \
--replace-fail \
"#include <hpdf/hpdf.h>" \
"#include <hpdf.h>"
'';
doCheck = true;
checkInputs = [ gtest ];
@@ -156,13 +179,6 @@ stdenv.mkDerivation (finalAttrs: {
NIX_LDFLAGS = lib.optionalString withSystemd "-ludev" + " -L${opencv}/lib -lopencv_imgcodecs";
};
# TODO: macOS
prePatch = ''
# Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
# now seems to be integrated into the main lib.
sed -i 's|nlopt_cxx|nlopt|g' cmake/modules/FindNLopt.cmake
'';
cmakeFlags = [
(lib.cmakeBool "SLIC3R_STATIC" false)
(lib.cmakeBool "SLIC3R_FHS" true)
@@ -177,6 +193,9 @@ stdenv.mkDerivation (finalAttrs: {
(lib.cmakeBool "DEP_WX_GTK3" true)
(lib.cmakeBool "SLIC3R_BUILD_TESTS" false)
(lib.cmakeFeature "CMAKE_CXX_FLAGS" "-DBOOST_LOG_DYN_LINK")
(lib.cmakeFeature "LIBNOISE_INCLUDE_DIR" "${lib.getInclude libnoise}/include/noise")
(lib.cmakeFeature "LIBNOISE_LIBRARY" "${lib.getLib libnoise}/lib/libnoise-static.a")
];
preFixup = ''

View File

@@ -1,14 +1,14 @@
diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
index 2cdc525..44e6602 100644
index 2315928..55a2f1b 100644
--- a/src/libslic3r/CMakeLists.txt
+++ b/src/libslic3r/CMakeLists.txt
@@ -533,7 +533,8 @@ target_link_libraries(libslic3r
@@ -627,7 +627,8 @@ target_link_libraries(libslic3r
${OCCT_LIBS}
Clipper2
mcut
- opencv_world
+ opencv_core
+ opencv_imgproc
${_cgal_tgt}
assimp::assimp
)
if(NOT WIN32)

View File

@@ -1,22 +1,22 @@
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 0b4b9a8..8c22f60 100644
index 1f12e26..ffd7888 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -125,7 +125,7 @@ if (NOT WIN32 AND NOT APPLE)
@@ -128,7 +128,7 @@ if (NOT WIN32 AND NOT APPLE)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/unix/BuildLinuxImage.sh.in ${CMAKE_CURRENT_BINARY_DIR}/BuildLinuxImage.sh @ONLY)
endif ()
-target_link_libraries(BambuStudio libslic3r cereal)
+target_link_libraries(BambuStudio libslic3r)
if (APPLE)
# add_compile_options(-stdlib=libc++)
# add_definitions(-DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_NO_CXX11_RVALUE_REFERENCES -DBOOST_THREAD_USES_MOVE)
diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
index 4481362..7d41af3 100644
index 2315928..f89b770 100644
--- a/src/libslic3r/CMakeLists.txt
+++ b/src/libslic3r/CMakeLists.txt
@@ -574,7 +574,6 @@ set(OCCT_LIBS
target_link_libraries(libslic3r
@@ -608,7 +608,6 @@ target_link_libraries(libslic3r
noise::noise
libnest2d
admesh
- cereal
@@ -24,17 +24,19 @@ index 4481362..7d41af3 100644
miniz
boost_libs
diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
index 0a852a4..2da0533 100644
index 63671a0..0b77a9f 100644
--- a/src/slic3r/CMakeLists.txt
+++ b/src/slic3r/CMakeLists.txt
@@ -671,8 +671,8 @@ source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SLIC3R_GUI_SOURCES})
encoding_check(libslic3r_gui)
-target_link_libraries(libslic3r_gui libslic3r cereal imgui imguizmo minilzo GLEW::GLEW OpenGL::GL hidapi ${wxWidgets_LIBRARIES} glfw libcurl OpenSSL::SSL OpenSSL::Crypto)
@@ -743,10 +743,10 @@ else ()
find_library(HPDF_LIBRARY NAMES hpdf)
endif ()
-target_link_libraries(libslic3r_gui libslic3r cereal imgui imguizmo minilzo GLEW::GLEW OpenGL::GL hidapi
+target_link_libraries(libslic3r_gui libslic3r imgui imguizmo minilzo GLEW::GLEW OpenGL::GL hidapi
${HPDF_LIBRARY}
${wxWidgets_LIBRARIES} glfw libcurl OpenSSL::SSL OpenSSL::Crypto)
-#target_link_libraries(libslic3r_gui libslic3r cereal imgui imguizmo minilzo GLEW::GLEW OpenGL::GL hidapi libcurl OpenSSL::SSL OpenSSL::Crypto ${wxWidgets_LIBRARIES} glfw)
+target_link_libraries(libslic3r_gui libslic3r imgui imguizmo minilzo GLEW::GLEW OpenGL::GL hidapi ${wxWidgets_LIBRARIES} glfw libcurl OpenSSL::SSL OpenSSL::Crypto)
+#target_link_libraries(libslic3r_gui libslic3r imgui imguizmo minilzo GLEW::GLEW OpenGL::GL hidapi libcurl OpenSSL::SSL OpenSSL::Crypto ${wxWidgets_LIBRARIES} glfw)
if (MSVC)
target_link_libraries(libslic3r_gui Setupapi.lib)
target_link_libraries(libslic3r_gui Setupapi.lib dwmapi.lib)

View File

@@ -0,0 +1,235 @@
diff --git a/src/slic3r/GUI/DeviceWeb/CMakeLists.txt b/src/slic3r/GUI/DeviceWeb/CMakeLists.txt
index bb65ab0..06684d4 100644
--- a/src/slic3r/GUI/DeviceWeb/CMakeLists.txt
+++ b/src/slic3r/GUI/DeviceWeb/CMakeLists.txt
@@ -3,225 +3,11 @@
# date -- 2025.01.01
# status -- Building
-# ==================== Node.js/pnpm 环境准备(仅用于 deviceweb 构建)====================
-
-function(prepare_node_env)
- # 定义版本号
- set(NODE_VERSION "22.22.2")
- set(PNPM_VERSION "10.12.1")
-
- # 定义本地缓存目录放在项目同级目录clean build 后不会丢失)
- set(NODE_CACHE_DIR "${CMAKE_SOURCE_DIR}/../node-cache")
-
- # 根据平台确定下载 URL、文件名和 hash 值
- if(WIN32)
- set(NODE_URL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-win-x64.zip")
- set(NODE_ARCHIVE_NAME "node-v${NODE_VERSION}-win-x64.zip")
- set(NODE_BIN_DIR "node-v${NODE_VERSION}-win-x64")
- set(NODE_EXEC "node.exe")
- set(NODE_HASH "7c93e9d92bf68c07182b471aa187e35ee6cd08ef0f24ab060dfff605fcc1c57c")
- set(PNPM_URL "https://github.com/pnpm/pnpm/releases/download/v${PNPM_VERSION}/pnpm-win-x64.exe")
- set(PNPM_EXEC_NAME "pnpm.exe")
- set(PNPM_HASH "9b802759436b3bccfe0a78cb0b86e937ac44902ec16597260f59d5394602f092")
- elseif(APPLE)
- if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
- set(NODE_URL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-darwin-arm64.tar.gz")
- set(NODE_ARCHIVE_NAME "node-v${NODE_VERSION}-darwin-arm64.tar.gz")
- set(NODE_BIN_DIR "node-v${NODE_VERSION}-darwin-arm64/bin")
- set(NODE_HASH "db4b275b83736df67533529a18cc55de2549a8329ace6c7bcc68f8d22d3c9000")
-
- set(PNPM_URL "https://github.com/pnpm/pnpm/releases/download/v${PNPM_VERSION}/pnpm-macos-arm64")
- set(PNPM_HASH "8b39b2129a19eeec9511eb7cdde2450b604e389551d59ad738167f7495b56d52")
- else()
- set(NODE_URL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-darwin-x64.tar.gz")
- set(NODE_ARCHIVE_NAME "node-v${NODE_VERSION}-darwin-x64.tar.gz")
- set(NODE_BIN_DIR "node-v${NODE_VERSION}-darwin-x64/bin")
- set(NODE_HASH "12a6abb9c2902cf48a21120da13f87fde1ed1b71a13330712949e8db818708ba")
-
- set(PNPM_URL "https://github.com/pnpm/pnpm/releases/download/v${PNPM_VERSION}/pnpm-macos-x64")
- set(PNPM_HASH "4c78e34022bfecfae60c041148a8022858b80b50e3b31c8fa8ba7b2b6259dd4a")
- endif()
- set(NODE_EXEC "node")
- set(PNPM_EXEC_NAME "pnpm")
- else()
- set(NODE_URL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz")
- set(NODE_ARCHIVE_NAME "node-v${NODE_VERSION}-linux-x64.tar.xz")
- set(NODE_BIN_DIR "node-v${NODE_VERSION}-linux-x64/bin")
- set(NODE_EXEC "node")
- set(NODE_HASH "88fd1ce767091fd8d4a99fdb2356e98c819f93f3b1f8663853a2dee9b438068a")
-
- set(PNPM_URL "https://github.com/pnpm/pnpm/releases/download/v${PNPM_VERSION}/pnpm-linux-x64")
- set(PNPM_EXEC_NAME "pnpm")
- set(PNPM_HASH "eb2dc1f109bca046ce734d062c8dd8f34db2b58a115992f9b086456efd7b2305")
- endif()
-
- # 定义最终的可执行文件路径
- set(NODE_EXECUTABLE "${NODE_CACHE_DIR}/${NODE_BIN_DIR}/${NODE_EXEC}")
- # pnpm 放到 node 同目录,这样执行 pnpm 时 PATH 中天然能找到 node
- set(PNPM_EXECUTABLE "${NODE_CACHE_DIR}/${NODE_BIN_DIR}/${PNPM_EXEC_NAME}")
-
- # ============ Node.js 下载 + 解压 ============
- if(NOT EXISTS "${NODE_EXECUTABLE}")
- message(STATUS "Downloading Node.js v${NODE_VERSION} from ${NODE_URL}")
- file(MAKE_DIRECTORY "${NODE_CACHE_DIR}")
-
- file(DOWNLOAD
- ${NODE_URL}
- "${NODE_CACHE_DIR}/${NODE_ARCHIVE_NAME}"
- SHOW_PROGRESS
- STATUS node_dl_status
- EXPECTED_HASH SHA256=${NODE_HASH}
- TLS_VERIFY OFF
- )
- list(GET node_dl_status 0 node_dl_code)
- list(GET node_dl_status 1 node_dl_msg)
- if(NOT node_dl_code EQUAL 0)
- file(REMOVE "${NODE_CACHE_DIR}/${NODE_ARCHIVE_NAME}")
- message(FATAL_ERROR "Failed to download Node.js: ${node_dl_msg}")
- endif()
-
- message(STATUS "Extracting Node.js...")
- if(WIN32)
- execute_process(
- COMMAND powershell -NoProfile -Command
- "Expand-Archive -Path '${NODE_CACHE_DIR}/${NODE_ARCHIVE_NAME}' -DestinationPath '${NODE_CACHE_DIR}' -Force"
- WORKING_DIRECTORY "${NODE_CACHE_DIR}"
- RESULT_VARIABLE extract_result
- OUTPUT_VARIABLE extract_output
- ERROR_VARIABLE extract_error
- )
- else()
- execute_process(
- COMMAND tar -xf "${NODE_ARCHIVE_NAME}"
- WORKING_DIRECTORY "${NODE_CACHE_DIR}"
- RESULT_VARIABLE extract_result
- OUTPUT_VARIABLE extract_output
- ERROR_VARIABLE extract_error
- )
- endif()
-
- if(NOT extract_result EQUAL 0)
- message(FATAL_ERROR "Failed to extract Node.js archive: ${extract_error}")
- endif()
-
- # 清理压缩包(节省空间)
- file(REMOVE "${NODE_CACHE_DIR}/${NODE_ARCHIVE_NAME}")
-
- if(NOT EXISTS "${NODE_EXECUTABLE}")
- message(FATAL_ERROR "Node.js extraction finished but executable not found: ${NODE_EXECUTABLE}")
- endif()
-
- message(STATUS "Node.js extracted to: ${NODE_EXECUTABLE}")
- else()
- message(STATUS "Found cached Node.js: ${NODE_EXECUTABLE}")
- endif()
-
- # ============ pnpm 独立二进制下载 ============
- if(NOT EXISTS "${PNPM_EXECUTABLE}")
- message(STATUS "Downloading pnpm v${PNPM_VERSION} from ${PNPM_URL}")
-
- file(DOWNLOAD
- ${PNPM_URL}
- "${PNPM_EXECUTABLE}"
- SHOW_PROGRESS
- STATUS pnpm_dl_status
- EXPECTED_HASH SHA256=${PNPM_HASH}
- TLS_VERIFY OFF
- )
- list(GET pnpm_dl_status 0 pnpm_dl_code)
- list(GET pnpm_dl_status 1 pnpm_dl_msg)
- if(NOT pnpm_dl_code EQUAL 0)
- file(REMOVE "${PNPM_EXECUTABLE}")
- message(FATAL_ERROR "Failed to download pnpm: ${pnpm_dl_msg}")
- endif()
-
- if(NOT WIN32)
- execute_process(
- COMMAND chmod +x "${PNPM_EXECUTABLE}"
- RESULT_VARIABLE chmod_result
- ERROR_VARIABLE chmod_error
- )
- if(NOT chmod_result EQUAL 0)
- message(FATAL_ERROR "Failed to chmod +x pnpm: ${chmod_error}")
- endif()
- endif()
-
- message(STATUS "pnpm installed: ${PNPM_EXECUTABLE}")
- else()
- message(STATUS "Found cached pnpm: ${PNPM_EXECUTABLE}")
- endif()
-
- # 设置输出变量(使用绝对路径)
- set(NODE_EXECUTABLE "${NODE_EXECUTABLE}" PARENT_SCOPE)
- set(PNPM_EXECUTABLE "${PNPM_EXECUTABLE}" PARENT_SCOPE)
-endfunction()
-
-# 执行环境准备(在 config 阶段执行)
-prepare_node_env()
-
-# ==================== 前端工程构建 ====================
-
-set(DEVICE_PAGE_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/device_page")
-set(DEVICE_PAGE_DIST_DIR "${DEVICE_PAGE_SRC_DIR}/dist")
-set(DEVICE_PAGE_TARGET_DIR "${CMAKE_SOURCE_DIR}/resources/web/device_page/dist")
-
-get_filename_component(NODE_BIN_PATH "${NODE_EXECUTABLE}" DIRECTORY)
-
-if(WIN32)
- # 原本PATH末尾的\会影响后续的分隔符,需要处理
- set(DEVICE_PAGE_PATH_UNESCAPED "${NODE_BIN_PATH};$ENV{PATH}")
- string(REPLACE "\;" ";" DEVICE_PAGE_PATH "${DEVICE_PAGE_PATH_UNESCAPED}")
-else()
- # Unix PATH 分隔符是 :
- set(DEVICE_PAGE_PATH "${NODE_BIN_PATH}:$ENV{PATH}")
-endif()
-
-set(PNPM_STORE_DIR "${CMAKE_CURRENT_BINARY_DIR}/.pnpm-store")
-file(MAKE_DIRECTORY "${PNPM_STORE_DIR}")
-
-set(DEVICE_PAGE_BUILD_STAMP "${CMAKE_CURRENT_BINARY_DIR}/device_page.stamp")
-
-file(GLOB_RECURSE DEVICE_PAGE_SRC_FILES CONFIGURE_DEPENDS
- "${DEVICE_PAGE_SRC_DIR}/src/*"
-)
-file(GLOB_RECURSE DEVICE_PAGE_LOCALE_FILES CONFIGURE_DEPENDS
- "${DEVICE_PAGE_SRC_DIR}/locales/*"
-)
-file(GLOB_RECURSE DEVICE_PAGE_PUBLIC_FILES CONFIGURE_DEPENDS
- "${DEVICE_PAGE_SRC_DIR}/public/*"
-)
-
-set(DEVICE_PAGE_BUILD_INPUTS
- ${DEVICE_PAGE_SRC_FILES}
- ${DEVICE_PAGE_LOCALE_FILES}
- ${DEVICE_PAGE_PUBLIC_FILES}
- "${DEVICE_PAGE_SRC_DIR}/index.html"
- "${DEVICE_PAGE_SRC_DIR}/package.json"
- "${DEVICE_PAGE_SRC_DIR}/pnpm-lock.yaml"
- "${DEVICE_PAGE_SRC_DIR}/vite.config.ts"
- "${DEVICE_PAGE_SRC_DIR}/tsconfig.json"
- "${DEVICE_PAGE_SRC_DIR}/tsconfig.app.json"
- "${DEVICE_PAGE_SRC_DIR}/tsconfig.node.json"
- "${DEVICE_PAGE_SRC_DIR}/eslint.config.js"
- "${DEVICE_PAGE_SRC_DIR}/i18next-parser.config.js"
-)
-
-add_custom_command(
- OUTPUT "${DEVICE_PAGE_BUILD_STAMP}"
- COMMAND ${CMAKE_COMMAND} -E env "PATH=${DEVICE_PAGE_PATH}" "PNPM_STORE_DIR=${PNPM_STORE_DIR}" ${PNPM_EXECUTABLE} install
- COMMAND ${CMAKE_COMMAND} -E env "PATH=${DEVICE_PAGE_PATH}" "PNPM_STORE_DIR=${PNPM_STORE_DIR}" ${PNPM_EXECUTABLE} run build
- COMMAND ${CMAKE_COMMAND} -E remove_directory "${DEVICE_PAGE_TARGET_DIR}"
- COMMAND ${CMAKE_COMMAND} -E make_directory "${DEVICE_PAGE_TARGET_DIR}"
- COMMAND ${CMAKE_COMMAND} -E copy_directory "${DEVICE_PAGE_DIST_DIR}" "${DEVICE_PAGE_TARGET_DIR}"
- COMMAND ${CMAKE_COMMAND} -E touch "${DEVICE_PAGE_BUILD_STAMP}"
- DEPENDS ${DEVICE_PAGE_BUILD_INPUTS}
- WORKING_DIRECTORY ${DEVICE_PAGE_SRC_DIR}
- COMMENT "Building device_page web bundle when sources change..."
- VERBATIM
-)
-
-# Not ALL: rebuilt only when a dependent target (libslic3r_gui / BambuStudio) is built.
-add_custom_target(device_page_build DEPENDS "${DEVICE_PAGE_BUILD_STAMP}")
+# NOTE (nixpkgs): the device_page frontend build has been removed.
+# Upstream downloads Node.js + pnpm at configure time and runs `pnpm install`
+# and `pnpm run build` at build time, none of which works in the offline Nix
+# sandbox. The C++ GUI sources below are still compiled; only the web resource
+# bundle (resources/web/device_page/dist) is not produced.
list(APPEND SLIC3R_GUI_SOURCES
GUI/DeviceWeb/DeviceHttpServer.cpp

View File

@@ -1,47 +1,47 @@
{
"version": "2.1.201",
"commit": "5bb45156ece6b12214696c88adec695b2dca1338",
"buildDate": "2026-07-03T20:01:44Z",
"version": "2.1.202",
"commit": "23f7f00042c9899630a3a02963fe4bb349512614",
"buildDate": "2026-07-06T20:02:44Z",
"platforms": {
"darwin-arm64": {
"binary": "claude",
"checksum": "a0852d76afc47b30f5cb0b7625ec9a7714cb189f2eeef6c28c77e2be954fb7fd",
"size": 231708784
"checksum": "7414f707861e2fe5afef33a466f888a8d2170e5028f5e9d2858f1d3ef45ffca5",
"size": 243631376
},
"darwin-x64": {
"binary": "claude",
"checksum": "1889287a92d25356ae8bd8d8e67b11456015516ee8ba4277a0c7074786c49bb6",
"size": 241100240
"checksum": "0dc578bb294094f5041e99a0444030ac6ae7236b387e56f00d4a5214816763bd",
"size": 251667920
},
"linux-arm64": {
"binary": "claude",
"checksum": "86b2eab34d382c7b428fc2e9f4c97f04e46805e950582472a13eb7d48de60516",
"size": 248101616
"checksum": "de5e0bb28e2b32409444ed4c1431e2931001c05ed270a3dc96c6706b0693867f",
"size": 258587376
},
"linux-x64": {
"binary": "claude",
"checksum": "a34809a6839fdefff21b9347d7fb5b6b58e6a9cc208a5e62853f29c83eb107a3",
"size": 251300664
"checksum": "71590202249892db3805ecd5b867f831f04b8129eaabd3f9a5bd4ba16b52c839",
"size": 261786424
},
"linux-arm64-musl": {
"binary": "claude",
"checksum": "5b4cde588b0196c8f88654ca9652c4703788f4d9fbab32a17ab3c444830085ae",
"size": 241349816
"checksum": "80405fead329dd67d786b2a3d49bb121797a157937c99dedae2e36fcc77b55e6",
"size": 251835576
},
"linux-x64-musl": {
"binary": "claude",
"checksum": "a0f81ec99ac65e8c5919e7aae54b8a496488e0f1311884fc9ffd05c7cbf6bd2f",
"size": 245985664
"checksum": "bd62d47b677b8867e34f32642ee13f9fb87ad31b8acfdd326307eeffec02ec89",
"size": 256471424
},
"win32-x64": {
"binary": "claude.exe",
"checksum": "fb804ee019bfbb8d7e85abf965e528e53b5aa5a4e4ebc0f164139dc10a9e0320",
"size": 241591968
"checksum": "7ff0787ebdc19fc509ccea8886ebf6a53ad8213407fa3a2b7c6d1446efc419f6",
"size": 252038816
},
"win32-arm64": {
"binary": "claude.exe",
"checksum": "a3ad78a0b593dea94c3ee787b1f5b17a173a7679203a296acf9aae7ef4705d42",
"size": 236058784
"checksum": "67a437feb7489620063f57e3bb073b8b7b82252d9373c9edc1d4969e42796be4",
"size": 246505120
}
}
}

View File

@@ -1,13 +0,0 @@
diff --git a/Source/CTest/cmCTestCurl.h b/Source/CTest/cmCTestCurl.h
index 7836f4b9c78a1d103eee515d618856a6712b4480..9113890b5a12cb157b691b66d96e25d0fd4b50ef 100644
--- a/Source/CTest/cmCTestCurl.h
+++ b/Source/CTest/cmCTestCurl.h
@@ -52,7 +52,7 @@ private:
std::vector<std::string> HttpHeaders;
std::string HTTPProxyAuth;
std::string HTTPProxy;
- curl_proxytype HTTPProxyType;
+ long HTTPProxyType;
bool UseHttp10 = false;
bool Quiet = false;
int TimeOutSeconds = 0;

View File

@@ -8,13 +8,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "codexbar";
version = "0.37.2";
version = "0.41.0";
__structuredAttrs = true;
strictDeps = true;
src = fetchurl {
url = "https://github.com/steipete/CodexBar/releases/download/v${finalAttrs.version}/CodexBar-macos-universal-${finalAttrs.version}.zip";
hash = "sha256-3I98PH/eAH1G9up+1AiwXshxGoZRNf3bFxsx5W32unc=";
hash = "sha256-M3i05Yu15uTLd/bO5E5bYen3dYo1iTEI/z7+VxeFhY0=";
};
sourceRoot = ".";

View File

@@ -12,7 +12,7 @@
}:
let
pname = "dependabot-cli";
version = "1.90.0";
version = "1.91.0";
# `tag` is what `dependabot` uses to find the relevant docker images.
tag = "nixpkgs-dependabot-cli-${version}";
@@ -20,12 +20,12 @@ let
# Get these hashes from
# nix run nixpkgs#nix-prefetch-docker -- --image-name ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy --image-tag latest --final-image-name dependabot-update-job-proxy --final-image-tag ${tag}
updateJobProxy.imageDigest = "sha256:70cf9a8f006db9cde732faf9e33a4f60af895532bbe803268fc8fd2f70aa3202";
updateJobProxy.hash = "sha256-S6ZbaFu6cGZJA26Qf4wCC8rj+cE4MpER3LOgdenM+k8=";
updateJobProxy.hash = "sha256-IBUBBSXHwepTqvcWJyo5St+ceCc80ml0Arf6R9v54Eg=";
# Get these hashes from
# nix run nixpkgs#nix-prefetch-docker -- --image-name ghcr.io/dependabot/dependabot-updater-github-actions --image-tag latest --final-image-name dependabot-updater-github-actions --final-image-tag ${tag}
updaterGitHubActions.imageDigest = "sha256:7940ec1d1828ae4935ef6fc862a7849dbe7d91ca3e294b37493e7e856c5f4f76";
updaterGitHubActions.hash = "sha256-o23JPAY+NErfiiK1j4hIHIjuaV3kiwE8D0yXbq8puaE=";
updaterGitHubActions.imageDigest = "sha256:57b7da54e9ce0f360523f27b3536f38af1606bf6a0a74a906d39fb9fa5caf80a";
updaterGitHubActions.hash = "sha256-cuAlu1PovPztc3P79bz8ySRCCDKh3dbt2WA4/ws6In8=";
in
buildGoModule {
inherit pname version;
@@ -34,7 +34,7 @@ buildGoModule {
owner = "dependabot";
repo = "cli";
rev = "v${version}";
hash = "sha256-MLdCSo89H5/G/V4ncdSAi/B6Nv1prRtF6e/ighHqH5U=";
hash = "sha256-8wDP9NRsO/xbtbRTXY1BviEbZUEsiZBosJAni62uyFE=";
};
vendorHash = "sha256-mo/OOo+vw2jX0ggeEzNE8Qr5xXg0GEaTH6krdGQyeEE=";

View File

@@ -6,13 +6,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "exploitdb";
version = "2026-06-09";
version = "2026-07-07";
src = fetchFromGitLab {
owner = "exploit-database";
repo = "exploitdb";
tag = finalAttrs.version;
hash = "sha256-iNtAJkcbrEcjjMs4lqwDzMc1xussDTONVW7IsPrgnB0=";
hash = "sha256-YjE8ovQAbBPOT7dES7ihHWUQE2b/jhfboLuoqxrd314=";
};
nativeBuildInputs = [ makeWrapper ];

View File

@@ -0,0 +1,29 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule {
pname = "fast";
version = "0-unstable-2026-07-01";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "maaslalani";
repo = "fast";
rev = "26d8fc9c189ba748c68f8930af11dee5c2467f7e";
hash = "sha256-YeDx082+ySqzamo9UutFTXXkrb37nmqt3ZUNzUHShf4=";
};
vendorHash = "sha256-YSjJ8NOL97hXZLnfGYIjoKmARv+gWOsv+5qkl9konnA=";
meta = {
homepage = "https://github.com/maaslalani/fast";
description = "Internet speed test in your terminal";
license = lib.licenses.mit;
mainProgram = "fast";
maintainers = with lib.maintainers; [ yarn ];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule (finalAttrs: {
pname = "gh-pr-review";
version = "1.6.2";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "agynio";
repo = "gh-pr-review";
tag = "v${finalAttrs.version}";
hash = "sha256-NVctUkxfYGs29T9naAfqbEhUXfhynx8Ajsh+V+4gCLw=";
};
vendorHash = "sha256-CEV23koYz0FpSWXJRF4J+dGNuDT8Ftkn4LGFftvd0ts=";
nativeBuildInputs = lib.optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
installShellFiles
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd gh-pr-review \
--zsh <($out/bin/gh-pr-review completion zsh) \
--fish <($out/bin/gh-pr-review completion fish) \
--bash <($out/bin/gh-pr-review completion bash)
'';
meta = {
description = "GitHub CLI extension that adds full inline PR review comment support";
homepage = "https://github.com/agynio/gh-pr-review";
changelog = "https://github.com/agynio/gh-pr-review/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ doronbehar ];
mainProgram = "gh-pr-review";
};
})

View File

@@ -8,17 +8,17 @@
}:
buildNpmPackage rec {
pname = "immich-public-proxy";
version = "2.5.0";
version = "3.0.1";
src = fetchFromGitHub {
owner = "alangrainger";
repo = "immich-public-proxy";
tag = "v${version}";
hash = "sha256-YcnJFj/IW7ceXN/sEdGuLC0lV0ZpehFqi0UwzEyVlf0=";
hash = "sha256-y7y21AEMGHtynsguKp8HmTqZni5dIc7qjt2PQnsxN90=";
};
sourceRoot = "${src.name}/app";
npmDepsHash = "sha256-IM47ySyVn5B+FLbFUKpbbFKeI0jo4YxqOMg1PTT2SVc=";
npmDepsHash = "sha256-a7qiiIvkDqxj1ZUBONLlZ49LSM8UpGIis/NXt5wEDjw=";
# patch in absolute nix store paths so the process doesn't need to cwd in $out
postPatch = ''

View File

@@ -13,16 +13,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "jellyfin-tui";
version = "1.5.0";
version = "1.5.1";
src = fetchFromGitHub {
owner = "dhonus";
repo = "jellyfin-tui";
tag = "v${finalAttrs.version}";
hash = "sha256-BeZyJQ04S2Vnqx3sTFe6a0s56KckIzOIfOVz+bkhBoY=";
hash = "sha256-su2zybyRc5Tyi7F+xX/YsWxqz8vLJdX3mAccqKqkRgo=";
};
cargoHash = "sha256-MP6wso9YlxJdN8WPuU149C5Hn3KeL+CekpPyN21ioA0=";
cargoHash = "sha256-euTJMkTPAnPJCAGUWkmcME1w6nOBq0GSUTDFEhE5nIc=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [

View File

@@ -8,18 +8,18 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "kakoune-lsp";
version = "20.0.0";
version = "21.0.1";
src = fetchFromGitHub {
owner = "kakoune-lsp";
repo = "kakoune-lsp";
rev = "v${finalAttrs.version}";
hash = "sha256-1O0Seyz+Wzt2aJh5Os5D/7UI4LVizvY195aXJSMpeyw=";
hash = "sha256-ZBeUxH/CBpg/Af1rYjOPWAyDkRNvgeifltpP5GGr+wA=";
};
patches = [ (replaceVars ./Hardcode-perl.patch { inherit perl; }) ];
cargoHash = "sha256-wmoF0pwuXN83xy4R7wC1+YBBNdseFCg8xSqkBR/Axro=";
cargoHash = "sha256-TBjoUy2e9GLYa0fNI1NgC4rr32vZXqaUGYksaSHE8hg=";
meta = {
description = "Kakoune Language Server Protocol Client";

View File

@@ -0,0 +1,36 @@
{
stdenv,
fetchFromCodeberg,
lib,
nix-update-script,
}:
stdenv.mkDerivation {
pname = "kbd-ergol";
version = "0-unstable-2026-07-03";
src = fetchFromCodeberg {
owner = "Alerymin";
repo = "kbd-ergol";
rev = "5111b8c90cee7daddb6c49115ba1ca665b2102ab";
hash = "sha256-kkxsTFNXGO8dly8r/EQyKL/JWZC4hUnq67rHChhwmkU=";
};
strictDeps = true;
__structuredAttrs = true;
# console.nix expects keymaps to be under /share/keymaps
postPatch = ''
substituteInPlace Makefile \
--replace "/usr/share/kbd/" "$out/share/"
'';
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
meta = {
description = "Ergo-L layout in keymap format for linux console";
homepage = "https://codeberg.org/Alerymin/kbd-ergol";
maintainers = with lib.maintainers; [ xaltsc ];
platforms = lib.platforms.linux;
license = lib.licenses.wtfpl;
};
}

View File

@@ -43,8 +43,8 @@ let
# The commit on the rocksdb fork, tuwunel-changes branch referenced by the upstream
# tuwunel flake.lock:
# https://github.com/matrix-construct/tuwunel/blob/main/flake.lock#L557C17-L557C57
rev = "9a3a213b55df0b11408102c899a940675c0d90e4";
hash = "sha256-aOV/jJjRjNJ3hrRqhCsXlIz05NvEhDF/j5Q5UOQuvp8=";
rev = "0bd7e6d6438d318d66e8374ec1fe24126204f3b3";
hash = "sha256-THAHov40punmqm3J9kNYwFXfdRZ2VwjR/+lmFhun/xk=";
};
version = "tuwunel-changes";
patches = [ ];
@@ -88,16 +88,16 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "matrix-tuwunel";
version = "1.7.1";
version = "1.8.0";
src = fetchFromGitHub {
owner = "matrix-construct";
repo = "tuwunel";
tag = "v${finalAttrs.version}";
hash = "sha256-KbcijWL4PwEUycE9pxdJjnBP0pxK6ywuf7wpuy2eA60=";
hash = "sha256-+VoJrUvjZOS3y59HbjHX0kwCT1AUvJo1jJQEC/OLYec=";
};
cargoHash = "sha256-RsZWk+cm9JJ6+8xsWXNyN2QcHSMFOD3CikNm84DhXWU=";
cargoHash = "sha256-906VroeI1ZjUokOWKNBcfgZLZhca87p7sQuYDwQmPDI=";
nativeBuildInputs = [
pkg-config

View File

@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "mcp-grafana";
version = "0.17.0";
version = "0.17.1";
src = fetchFromGitHub {
owner = "grafana";
repo = "mcp-grafana";
tag = "v${finalAttrs.version}";
hash = "sha256-uAVqmLGZzD1CMXIw/eYGh/15W2jDS8Iwr5jClRSuCyQ=";
hash = "sha256-nuG17gscAzGzxehlR+UkVo6NyGM0swiKXSx0N95ffvU=";
};
vendorHash = "sha256-E7Uh5nG6elUhEa+4RCtgGrle0Py6TjRc+OOvjtik1D8=";
vendorHash = "sha256-SovR9UxTqN397oczKgJqlJ9iOFnCrZGqPWhhfcjSNPg=";
ldflags = [
"-s"

View File

@@ -7,13 +7,13 @@
}:
rustPlatform.buildRustPackage {
pname = "nufmt";
version = "0-unstable-2026-05-24";
version = "0-unstable-2026-07-05";
src = fetchFromGitHub {
owner = "nushell";
repo = "nufmt";
rev = "a24c2b1bc7f573b1a8b2c4a453e989407a4d29c8";
hash = "sha256-3AOxUXDd6LDgBqKPnHG+3K2qfcFGzIsPW3pqnt+oNs8=";
rev = "de410853fc4d0f04e101a2573ebba8c15978ea33";
hash = "sha256-tNdoHiSZRi0PMUtlHqD5vjjPNDzNyZ73QnCOw8rmEPs=";
};
nativeBuildInputs = [
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage {
cargoHash = "sha256-MLfhuFjYv2Vi3BGJFzbmi+xhhm6M0a4oOe7wpHtfObc=";
# NOTE: Patch follows similar intention upstream https://github.com/nushell/nufmt/commit/a24c2b1bc7f573b1a8b2c4a453e989407a4d29c8
# NOTE: Patch follows similar intention upstream https://github.com/nushell/nufmt/commit/de410853fc4d0f04e101a2573ebba8c15978ea33
postPatch = ''
substituteInPlace tests/ground_truth.rs --replace-fail \
' let path = PathBuf::from(target_dir).join("debug").join(exe_name);' \

View File

@@ -165,8 +165,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
passthru = {
jsonschema = {
config = "${placeholder "out"}/share/opencode/config.json";
tui = "${placeholder "out"}/share/opencode/tui.json";
config = "${finalAttrs.finalPackage}/share/opencode/config.json";
tui = "${finalAttrs.finalPackage}/share/opencode/tui.json";
};
updateScript = nix-update-script {
extraArgs = [

View File

@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "otree";
version = "0.6.5";
version = "0.7.1";
src = fetchFromGitHub {
owner = "fioncat";
repo = "otree";
tag = "v${finalAttrs.version}";
hash = "sha256-w3ZS3hg9hrqjYcNKacT86llhz7PzJbz1r7/bDJJWxxs=";
hash = "sha256-Kcdhppc1hdPCQ+Q0ogmGSS9skC+ql96WQgCgKMBKcss=";
};
cargoHash = "sha256-S7ZG+p9grgqb5O7QqPdDUyhJnRWnPpCCDonyLQEznxc=";
cargoHash = "sha256-B72PRaCMF4jEvsoUJyGFRNnA0ok3UYZfIwU/MAiWMJo=";
meta = {
description = "Command line tool to view objects (JSON/YAML/TOML/XML) in TUI tree widget";

View File

@@ -25,6 +25,14 @@ stdenv.mkDerivation (finalAttrs: {
sha256 = "sha256-OiGKUnsKX0ihDRceZoNkcZcEAnz17h2j2QUOSVcxQEY=";
};
# macOS's ld64 has no --version-script, so translate the data/playerctl.syms
# filter to an -exported_symbols_list to keep the same symbols exported on darwin
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
printf '%s\n' '_Playerctl*' '_PLAYERCTL*' '_playerctl_*' '_pctl_*' > data/playerctl.syms
substituteInPlace playerctl/meson.build \
--replace-fail '--version-script' '-exported_symbols_list'
'';
nativeBuildInputs = [
docbook_xsl
gobject-introspection
@@ -49,8 +57,10 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://github.com/acrisci/playerctl";
license = lib.licenses.lgpl3;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ puffnfresh ];
broken = stdenv.hostPlatform.isDarwin;
maintainers = with lib.maintainers; [
puffnfresh
anish
];
mainProgram = "playerctl";
};
})

View File

@@ -8,17 +8,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "polkit-stdin-agent";
version = "0.3.0";
version = "0.3.1";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "r-vdp";
repo = "polkit-stdin-agent";
tag = "v${finalAttrs.version}";
hash = "sha256-Nl/+IBbUEsxSKSWLXwUB3mV4iAG0z9mv+Bl6CSeFzR4=";
hash = "sha256-Na3v1773UZmsI6EdK0SwGeSOAPC890jy0J8EUwBBH2E=";
};
cargoHash = "sha256-Eb/7ejVmtG5FNSh66gZO3337KCPNi+xtYVC5qyFKJzg=";
cargoHash = "sha256-F/cbNrI6qC4rxUNHIRHE9ZfLh5WuKcE3xz/FaBz5eSw=";
strictDeps = true;
__structuredAttrs = true;

View File

@@ -15,7 +15,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "proton-pass-cli";
version = "2.2.1";
version = "2.2.2";
__structuredAttrs = true;
strictDeps = true;
@@ -57,19 +57,19 @@ stdenv.mkDerivation (finalAttrs: {
sources = {
"aarch64-darwin" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-macos-aarch64";
hash = "sha256-+v1y8gxFy4Fnk/SNhiPObrnQZHhDGSN2fTZ3b96LRQ4=";
hash = "sha256-CdY2oYT7jck81ldf6RNFHsRlOcdFukjVM/2fq0THQPM=";
};
"aarch64-linux" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-linux-aarch64";
hash = "sha256-W/qSKyieYTM9cIx1x3qdvX0FbwBMg42CO8lIrN+xpa0=";
hash = "sha256-oVjbGFgF3wMPJZYfiUfZkRCLzW+QGv44krj/HUACGWE=";
};
"x86_64-darwin" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-macos-x86_64";
hash = "sha256-9lpkph6Quup7olbZsUcgFo8EQPWz1jDRbSffNbRVR5o=";
hash = "sha256-Gvek5eqz1Sah5Hw4klxiQSQSAW3LOuEPvFUQUmXlwVM=";
};
"x86_64-linux" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-linux-x86_64";
hash = "sha256-+RbPDVhFA0aOTOy0EreGV7VUU4IphBc/y5ZWo9GnjOY=";
hash = "sha256-Zb91GVv9D+jZZgFEyDdGa37pGV045W41V9XuZDnF91E=";
};
};
updateScript = writeShellScript "update-proton-pass-cli" ''

View File

@@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "radicale";
version = "3.7.5";
version = "3.7.6";
pyproject = true;
src = fetchFromGitHub {
owner = "Kozea";
repo = "Radicale";
tag = "v${finalAttrs.version}";
hash = "sha256-P9xm/2sTDLiX7PqJ+juaIVpwbJ4r/jyBEFE/QWtl9Yo=";
hash = "sha256-uHxYGN7qp0Tur13RrJ7Xu+IpJ2vC2iiyzOfG578Q+18=";
};
build-system = with python3.pkgs; [

View File

@@ -12,16 +12,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "spotatui";
version = "0.39.1";
version = "0.40.1";
src = fetchFromGitHub {
owner = "LargeModGames";
repo = "spotatui";
tag = "v${finalAttrs.version}";
hash = "sha256-fuOSJSN5bKKmEVZZnzckNOxGK1+gDC9pU0vO7MHowis=";
hash = "sha256-kuiL3d5gB37X/WampwDI1r21fP/HWWWR+HDUmKFIhHw=";
};
cargoHash = "sha256-fe86HbNckgFruPl8KIW2akW6qFOpR98iCde9kRXthpM=";
cargoHash = "sha256-7j4EdJJy8AZjYYbfa3rotnJeekCBJkZapCI2z6XE3hM=";
nativeBuildInputs = [ pkg-config ] ++ lib.optional withPipewireVisualizer rustPlatform.bindgenHook;

View File

@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "typos";
version = "1.47.2";
version = "1.48.0";
src = fetchFromGitHub {
owner = "crate-ci";
repo = "typos";
tag = "v${finalAttrs.version}";
hash = "sha256-S7end5AqeNm4M/ox2BVb6mTGaJmO6jhz1Rczs0otaWk=";
hash = "sha256-bXKdfq056p0gkbgEDysmHmIkZB0DowKZLlQA+93Fkuw=";
};
cargoHash = "sha256-w39zZ508kBnrkesqlgGv+6Y9FRGHEZlNz48MaOixfP8=";
cargoHash = "sha256-RlxKciOdzzvy8hweSBAy64hPJFmNRUgqEb7zbPQvrbc=";
passthru.updateScript = nix-update-script { };

View File

@@ -0,0 +1,47 @@
{
lib,
fetchFromGitHub,
gitMinimal,
makeWrapper,
rustPlatform,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "worktrunk-sync";
version = "0.1.2";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "pablospe";
repo = "worktrunk-sync";
tag = "v${finalAttrs.version}";
hash = "sha256-LGxTzXF/AWNWajH8gygbSQVpIidbArUZRaokefeD7es=";
};
cargoHash = "sha256-iClMQtyDH6SPJSaHXzOsme4uAJCoLQA9QF8EUu/FQDM=";
nativeBuildInputs = [ makeWrapper ];
nativeCheckInputs = [ gitMinimal ];
postInstall = ''
wrapProgram $out/bin/wt-sync \
--prefix PATH : ${lib.makeBinPath [ gitMinimal ]}
'';
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Rebase stacked worktree branches in dependency order";
homepage = "https://github.com/pablospe/worktrunk-sync";
changelog = "https://github.com/pablospe/worktrunk-sync/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ steveej ];
mainProgram = "wt-sync";
};
})

View File

@@ -4,6 +4,7 @@
rustPlatform,
fetchFromGitHub,
glib,
just,
libcosmicAppHook,
pkg-config,
util-linux,
@@ -34,6 +35,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
__structuredAttrs = true;
nativeBuildInputs = [
just
libcosmicAppHook
rustPlatform.bindgenHook
pkg-config
@@ -53,11 +55,16 @@ rustPlatform.buildRustPackage (finalAttrs: {
--replace-fail '/usr/share/backgrounds' '${cosmic-wallpapers}/share/backgrounds'
'';
dontCargoInstall = true;
dontUseJustBuild = true;
dontUseJustCheck = true;
makeFlags = [
"prefix=${placeholder "out"}"
"CARGO_TARGET_DIR=target/${stdenv.hostPlatform.rust.cargoShortTarget}"
justFlags = [
"--set"
"prefix"
(placeholder "out")
"--set"
"cargo-target-dir"
"target/${stdenv.hostPlatform.rust.cargoShortTarget}"
];
passthru = {

View File

@@ -0,0 +1,87 @@
{
lib,
stdenv,
fetchFromGitHub,
apple-sdk,
installShellFiles,
writeShellScriptBin,
zig_0_15,
nix-update-script,
}:
let
zig = zig_0_15;
sdkRoot = apple-sdk.sdkroot;
# Ghostty's Zig build asks Zig to discover the native Darwin SDK via
# std.zig.LibCInstallation.findNative, which shells out to xcrun/xcode-select
# on macOS. Provide wrappers so this works inside the Nix sandbox.
xcrunWrapper = writeShellScriptBin "xcrun" ''
echo "${sdkRoot}"
'';
xcodeselectWrapper = writeShellScriptBin "xcode-select" ''
echo "${sdkRoot}"
'';
in
stdenv.mkDerivation (finalAttrs: {
pname = "zmx";
version = "0.6.0";
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitHub {
owner = "neurosnap";
repo = "zmx";
tag = "v${finalAttrs.version}";
hash = "sha256-OkXtVf/LdBrZL6FH9TGx+mIhUXt2eSugLxZyMd+HL6k=";
};
zigDeps = zig.fetchDeps {
inherit (finalAttrs) src pname version;
fetchAll = true;
hash = "sha256-TwKoeaE4g5G7t7smKoqHkCCh998nSqKx5k6sO2vDlGs=";
};
postConfigure = ''
# Zig may write cache metadata next to fetched dependencies while checking them.
cp -rLT ${finalAttrs.zigDeps} "$ZIG_GLOBAL_CACHE_DIR/p"
chmod -R u+w "$ZIG_GLOBAL_CACHE_DIR/p"
'';
nativeBuildInputs = [
installShellFiles
zig
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
xcrunWrapper
xcodeselectWrapper
];
doCheck = true;
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd ${finalAttrs.meta.mainProgram} \
--bash <($out/bin/zmx completions bash) \
--zsh <($out/bin/zmx completions zsh) \
--fish <($out/bin/zmx completions fish)
'';
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/neurosnap/zmx";
description = "Session persistence for terminal processes";
longDescription = ''
zmx provides session persistence for terminal shell sessions (pty processes).
Features include ability to attach and detach from shell sessions without killing them,
native terminal scrollback, multiple client connections to the same session,
and restoration of previous terminal state and output when re-attaching.
'';
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
dwt
GabrielDougherty
];
mainProgram = "zmx";
platforms = lib.platforms.unix;
};
})

View File

@@ -1,25 +1,27 @@
GEM
remote: https://rubygems.org/
specs:
forwardable (1.3.3)
iostruct (0.5.0)
prime (0.1.3)
forwardable (1.4.0)
iostruct (0.7.0)
prime (0.1.4)
forwardable
singleton
rainbow (3.1.1)
singleton (0.3.0)
zpng (0.4.5)
zpng (0.4.6)
iostruct (>= 0.7.0)
rainbow (~> 3.1.1)
zsteg (0.2.13)
iostruct (>= 0.0.5)
zsteg (0.2.14)
iostruct (>= 0.7.0)
prime
zpng (>= 0.4.5)
zpng (>= 0.4.6)
PLATFORMS
ruby
x86_64-linux
DEPENDENCIES
zsteg
BUNDLED WITH
2.6.6
2.6.9

View File

@@ -4,20 +4,20 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1b5g1i3xdvmxxpq4qp0z4v78ivqnazz26w110fh4cvzsdayz8zgi";
sha256 = "0f78rjpnhm4lgp1qzadnr6kr02b6afh1lvy7w607k4qjk3641kgi";
type = "gem";
};
version = "1.3.3";
version = "1.4.0";
};
iostruct = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0pswyhjz9d90bympsz6s0rgv24b8nrd4lk5y16kz67vdw6vbaqbp";
sha256 = "1774p81hdx9wd678g4mnaffdhs1340zvvq7h8l80x6mplgz2ygz9";
type = "gem";
};
version = "0.5.0";
version = "0.7.0";
};
prime = {
dependencies = [
@@ -28,10 +28,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1qsk9q2n4yb80f5mwslxzfzm2ckar25grghk95cj7sbc1p2k3w5s";
sha256 = "0pi2g9sd9ssyrpvbybh4skrgzqrv0rrd1q7ylgrsd519gjzmwxad";
type = "gem";
};
version = "0.1.3";
version = "0.1.4";
};
rainbow = {
groups = [ "default" ];
@@ -54,15 +54,18 @@
version = "0.3.0";
};
zpng = {
dependencies = [ "rainbow" ];
dependencies = [
"iostruct"
"rainbow"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0xyr7ipgls7wci1gnsz340idm69jls0gind0q4f63ccjwgzsfkqw";
sha256 = "0vi4chg2k17ha6ax6wg2fa7bri0c85xzxkd55xk68j5cgngn5x20";
type = "gem";
};
version = "0.4.5";
version = "0.4.6";
};
zsteg = {
dependencies = [
@@ -74,9 +77,9 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "128kbv9vsi288mj17zwvc45ijpzf3p116vk9kcvkz978hz0n6spm";
sha256 = "0vqg35sbicpb93zcwcjyvlqapijh64dfv1v1jh30cqqjhmdf67kn";
type = "gem";
};
version = "0.2.13";
version = "0.2.14";
};
}

View File

@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "lomiri-wallpapers";
version = "20.04.0";
version = "20.04.1";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-wallpapers";
rev = finalAttrs.version;
hash = "sha256-n8+vY+MPVqW6s5kSo4aEtGZv1AsjB3nNEywbmcNWfhI=";
hash = "sha256-NttA+je2jbE0q0EXZ5PSxrpB0ijRbqpSq0N0GCWEzJk=";
};
dontConfigure = true;
@@ -23,15 +23,16 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runHook preInstall
mkdir -p $out/share
# release-specific wallpapers
''
# release-specific wallpapers
+ ''
cp -r ${lib.versions.majorMinor finalAttrs.version} $out/share/wallpapers
rm $out/share/wallpapers/.placeholder
# eternal hardwired fallback/default
install -Dm644 {.,$out/share/wallpapers}/warty-final-ubuntu.png
ln -s warty-final-ubuntu.png $out/share/wallpapers/lomiri-default-background.png
''
# default
+ ''
install -Dm644 {.,$out/share/wallpapers}/lomiri-default-background.png
''
+ ''
runHook postInstall
'';

View File

@@ -36,6 +36,7 @@ let
# The dependency target "qmldoc" of target "doc" does not exist.
withDocumentation = !useQt6;
};
lomiri-notifications = callPackage ./qml/lomiri-notifications { };
lomiri-ui-extras = callPackage ./qml/lomiri-ui-extras { };
lomiri-ui-toolkit = callPackage ./qml/lomiri-ui-toolkit { };
qqc2-suru-style = callPackage ./qml/qqc2-suru-style { };
@@ -89,7 +90,6 @@ let
u1db-qt = callPackage ./development/u1db-qt { };
#### QML / QML-related
lomiri-notifications = callPackage ./qml/lomiri-notifications { };
lomiri-push-qml = callPackage ./qml/lomiri-push-qml { };
lomiri-settings-components = callPackage ./qml/lomiri-settings-components { };

View File

@@ -2,7 +2,6 @@
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
gitUpdater,
testers,
cmake,
@@ -22,23 +21,15 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-action-api";
version = "1.2.1";
version = "1.2.2";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-action-api";
tag = finalAttrs.version;
hash = "sha256-pwHvbiUvkAi7/XgpNfgrqcp3znFKSXlAAacB2XsHQkg=";
hash = "sha256-2bI507ey9VMVgnrsly5L6SexLE6OPgmgwfv+ejwk/Mw=";
};
patches = [
(fetchpatch {
name = "0001-lomiri-action-api-fix-qt6-unit-tests.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-action-api/-/commit/8fadb3d75938403aca2dc0e9392370c0d9b45c3e.patch";
hash = "sha256-qqgFgw2YY6cPEbzGKI7r4fk/CgR9NRe1ZY2HUsKLNlo=";
})
];
outputs = [
"out"
"dev"

View File

@@ -2,7 +2,6 @@
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
gitUpdater,
cmake,
dbus,
@@ -13,29 +12,20 @@
qtdeclarative,
}:
let
withQt6 = lib.versions.major qtbase.version == "6";
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-notifications";
version = "1.3.2";
version = "1.3.3";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-notifications";
tag = finalAttrs.version;
hash = "sha256-rGs+MTt/Z+Gk3jSxU7tfNAUdypG/HJ4pDqvC+U722Eg=";
hash = "sha256-9K9+zS2MDqARTlGH2bu363ysrCg82D53sBkKiLSXBoI=";
};
patches = [
# Remove when version > 1.3.2
(fetchpatch {
name = "0001-lomiri-notifications-support-qt6-and-newer-lomiri-api.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-notifications/-/commit/55e9b61d2214edb31613d67fa66284acfa171dc5.patch";
excludes = [
"debian/*"
];
hash = "sha256-BURficKpFd15RyNFWyZ+hqxFHnIbv4krFpTARQ86Ykw=";
})
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "\''${CMAKE_INSTALL_LIBDIR}/qt\''${QT_VERSION_MAJOR}/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
@@ -76,8 +66,9 @@ stdenv.mkDerivation (finalAttrs: {
dontWrapQtApps = true;
cmakeFlags = [
(lib.strings.cmakeBool "ENABLE_QT6" withQt6)
# In case anything still depends on deprecated hints
(lib.cmakeBool "ENABLE_UBUNTU_COMPAT" true)
(lib.strings.cmakeBool "ENABLE_UBUNTU_COMPAT" (!withQt6))
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;

View File

@@ -1,79 +0,0 @@
{
aiohttp,
apscheduler,
beautifulsoup4,
brotli,
buildPythonPackage,
colorama,
fetchPypi,
httpx,
lib,
lxml,
pillow,
pycryptodomex,
pyjwt,
pyyaml,
qrcode,
qrcode-terminal,
rsa,
setuptools,
setuptools-scm,
tqdm,
yarl,
}:
buildPythonPackage rec {
pname = "bilibili-api-python";
version = "17.4.1";
pyproject = true;
src = fetchPypi {
pname = "bilibili_api_python";
inherit version;
hash = "sha256-Ww8WRoz7s+6AHH18yXD5CCJS9nWMbYxIxdjaxCI1y2I=";
};
# The upstream uses requirements.txt, which overly strict version constraints.
pythonRelaxDeps = [
"beautifulsoup4"
"lxml"
"pillow"
];
build-system = [
setuptools-scm
setuptools
];
dependencies = [
aiohttp
beautifulsoup4
colorama
lxml
pyyaml
brotli
httpx
qrcode
apscheduler
rsa
pillow
tqdm
yarl
pycryptodomex
pyjwt
qrcode-terminal
];
# tests require network
doCheck = false;
pythonImportsCheck = [ "bilibili_api" ];
meta = {
changelog = "https://github.com/Nemo2011/bilibili-api/releases/tag/${version}";
description = "Python module providing convenient integration for various Bilibili API along with some additional common features";
homepage = "https://nemo2011.github.io/bilibili-api";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ moraxyc ];
};
}

View File

@@ -9,14 +9,14 @@
buildPythonPackage (finalAttrs: {
pname = "inject";
version = "5.4.0";
version = "5.4.1";
pyproject = true;
src = fetchFromGitHub {
owner = "ivankorobkov";
repo = "python-inject";
tag = "v${finalAttrs.version}";
hash = "sha256-ITnqTGCOPLzATisAcPi52cpxsm9/Adj/Xb53jd18IWo=";
hash = "sha256-thVgKkpFtMwTMfeQ2r7xMvLtzBFJ/xIy6aUTq3400VA=";
};
build-system = [

View File

@@ -1,4 +1,5 @@
{
lib,
fetchFromGitHub,
llvmPackages,
libbpf,
@@ -49,7 +50,7 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
];
__structuredAttrs = true;
EXPECTED_SCHEDULERS = finalAttrs.passthru.schedulers;
env.EXPECTED_SCHEDULERS = lib.concatStringsSep " " finalAttrs.passthru.schedulers;
doInstallCheck = true;
installCheckPhase = ''

View File

@@ -48,6 +48,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
"-C link-args=-lz"
"-C link-args=-lzstd"
];
EXPECTED_SCHEDULERS = lib.concatStringsSep " " finalAttrs.passthru.schedulers;
};
hardeningDisable = [
@@ -64,7 +65,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
'';
__structuredAttrs = true;
EXPECTED_SCHEDULERS = finalAttrs.passthru.schedulers;
doInstallCheck = true;
installCheckPhase = ''

View File

@@ -1,5 +0,0 @@
import ./generic.nix {
kafkaVersion = "3.9.2";
scalaVersion = "2.13";
hash = "sha256-1dlRwiSE+aCQiwVWO8gKBC3pd53x4GqJ930nzrX2gyM=";
}

View File

@@ -1,5 +0,0 @@
import ./generic.nix {
kafkaVersion = "4.0.1";
scalaVersion = "2.13";
hash = "sha256-M8xc04WE6w9yYWxMLwX7SINKVvoKnNn+AKxzIMNM9SQ=";
}

View File

@@ -1,5 +1,5 @@
import ./generic.nix {
kafkaVersion = "4.2.0";
kafkaVersion = "4.2.1";
scalaVersion = "2.13";
hash = "sha256-ZklCfC0GKQih+guUHY0idPUlNiAvqhsT41RbOVoihfs=";
hash = "sha256-z/g5pZlKj9mwJrVU0JhSgHpu+f1NgkbvFRcyYx2knfo=";
}

View File

@@ -0,0 +1,5 @@
import ./generic.nix {
kafkaVersion = "4.3.1";
scalaVersion = "2.13";
hash = "sha256-8Rgyiy0FNJc1DVvv2CwI23/9cQMn/1KUPdXKqhsl2yE=";
}

View File

@@ -1,7 +1,6 @@
{ callPackage }:
{
apacheKafka_4_3 = callPackage ./4_3.nix { };
apacheKafka_4_2 = callPackage ./4_2.nix { };
apacheKafka_4_1 = callPackage ./4_1.nix { };
apacheKafka_4_0 = callPackage ./4_0.nix { };
apacheKafka_3_9 = callPackage ./3_9.nix { };
}

View File

@@ -32,6 +32,9 @@ stdenv.mkDerivation rec {
inherit hash;
};
strictDeps = true;
__structuredAttrs = true;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
jre

View File

@@ -20,13 +20,13 @@
buildHomeAssistantComponent rec {
owner = "mampfes";
domain = "waste_collection_schedule";
version = "2.29.0";
version = "2.30.0";
src = fetchFromGitHub {
inherit owner;
repo = "hacs_waste_collection_schedule";
tag = "v${version}";
hash = "sha256-8OgHPhCSYuFymUBd0CtrWjf/W7OAuC7We5NRFEzHyuI=";
hash = "sha256-9MQBKVm0IgVG0ePWe7Q1PskCa0p/6bNxj4IH73aLQnA=";
};
dependencies = [

View File

@@ -6,7 +6,7 @@
# script interpreters
bash,
jdk,
jre_headless,
perl,
python3,
ruby,
@@ -174,7 +174,7 @@ let
# find interpreters for the script extensions found in tlpdb
extToInput = {
jar = jdk;
jar = jre_headless;
lua = texliveBinaries.luatex;
py = python3;
rb = ruby;

View File

@@ -73,10 +73,14 @@ let
all = lib.filter pkgFilter combined ++ lib.filter (pkg: pkg.tlType == "tlpkg") combined;
converted = map toSpecified all;
in
buildTeXEnv {
__extraName = extraName;
__extraVersion = extraVersion;
requiredTeXPackages = _: converted;
__combine = true;
__fromCombineWrapper = true;
}
lib.addMetaAttrs
{
problems.removal.message = "texlive.combine is deprecated and will be removed from Nixpkgs 27.05. Please switch to texliveSmall.withPackages. See https://nixos.org/manual/nixpkgs/stable/#sec-language-texlive-user-guide.";
}
(buildTeXEnv {
__extraName = extraName;
__extraVersion = extraVersion;
requiredTeXPackages = _: converted;
__combine = true;
__fromCombineWrapper = true;
})

View File

@@ -21,7 +21,7 @@
ruby,
perl,
tk,
jdk,
jre_headless,
bash,
snobol4,
coreutils,
@@ -202,7 +202,7 @@ let
runCommand
writeShellScript
bash
jdk
jre_headless
perl
python3
ruby
@@ -624,6 +624,7 @@ let
meta = meta // {
description = "TeX Live environment for ${pname}";
license = licenses.${pname};
problems.removal.message = "texlive.combined schemes are deprecated and will be removed from Nixpkgs 27.05. Please switch to texliveSmall or another top level scheme.";
};
}
)

View File

@@ -308,8 +308,10 @@ mapAliases {
antlr4_8 = throw "antlr4_8 has been removed. Consider using a more recent version of antlr4"; # Added 2025-10-20
ao = throw "'ao' has been renamed to/replaced by 'libfive'"; # Converted to throw 2025-10-27
apacheAnt = throw "'apacheAnt' has been renamed to/replaced by 'ant'"; # Converted to throw 2025-10-27
apacheKafka_3_7 = throw "apacheKafka_2_8 through _3_8 have been removed from nixpkgs as outdated"; # Added 2025-09-27
apacheKafka_3_8 = throw "apacheKafka_2_8 through _3_8 have been removed from nixpkgs as outdated"; # Added 2025-09-27
apacheKafka_3_7 = throw "apacheKafka_2_8 through _4_0 have been removed from nixpkgs as outdated"; # Added 2025-09-27
apacheKafka_3_8 = throw "apacheKafka_2_8 through _4_0 have been removed from nixpkgs as outdated"; # Added 2025-09-27
apacheKafka_3_9 = throw "apacheKafka_2_8 through _4_0 have been removed from nixpkgs as outdated"; # Added 2026-07-07
apacheKafka_4_0 = throw "apacheKafka_2_8 through _4_0 have been removed from nixpkgs as outdated"; # Added 2026-07-07
apmplanner2 = throw "'apmplanner2' has been removed as it depends on insecure&unmaintained qtwebkit"; # Added 2026-04-26
apple-sdk_11 = throw "apple-sdk_11 was removed as Nixpkgs no longer supports macOS 11; see the 25.11 release notes"; # Added 2025-05-10
apple-sdk_12 = throw "apple-sdk_12 was removed as Nixpkgs no longer supports macOS 12; see the 25.11 release notes"; # Added 2025-05-10
@@ -2324,6 +2326,7 @@ mapAliases {
vieb = throw "'vieb' has been removed as it doesn't satisfy our security criteria for browsers."; # Added 2025-06-25
ViennaRNA = throw "'ViennaRNA' has been renamed to/replaced by 'viennarna'"; # Converted to throw 2025-10-27
vim_configurable = throw "'vim_configurable' has been renamed to/replaced by 'vim-full'"; # Converted to throw 2025-10-27
vimacs = throw "'vimacs' has been removed due to lack of maintenance"; # Added 2026-07-07
vimHugeX = throw "'vimHugeX' has been renamed to/replaced by 'vim-full'"; # Converted to throw 2025-10-27
vimpc = throw "'vimpc' has been removed as it is unmaintained and depends on pcre, which is deprecated"; # Added 2026-06-06
virt-manager-qt = throw "'virt-manager-qt' has been dropped as it depends on KDE Gear 5, and is unmaintained"; # Added 2025-08-20

View File

@@ -4823,13 +4823,12 @@ with pkgs;
antlr = antlr4;
inherit (callPackages ../servers/apache-kafka { })
apacheKafka_3_9
apacheKafka_4_0
apacheKafka_4_1
apacheKafka_4_2
apacheKafka_4_3
;
apacheKafka = apacheKafka_4_2;
apacheKafka = apacheKafka_4_3;
libastyle = astyle.override { asLibrary = true; };
@@ -9625,8 +9624,6 @@ with pkgs;
};
});
vimacs = callPackage ../applications/editors/vim/vimacs.nix { };
# this is a lower-level alternative to wrapNeovim conceived to handle
# more usecases when wrapping neovim. The interface is being actively worked on
# so expect breakage. use wrapNeovim instead if you want a stable alternative

View File

@@ -116,6 +116,7 @@ mapAliases {
beets-stable = lib.warn "beets-stable was aliased to beets, since upstream releases are frequent nowadays" self.beets; # added 2025-10-16
beets-unstable = lib.warn "beets-unstable was aliased to beets, since upstream releases are frequent nowadays" self.beets; # added 2025-10-16
betterproto-fw = throw "'betterproto-fw' has been removed as it is not longer required by fireworks-ai"; # Added 2026-06-09
bilibili-api-python = throw "'bilibili-api-python' was removed because its source is unavailable"; # added 2026-07-07
bimmer-connected = throw "'bimmer-connected' was removed because BMW started blocking third parties"; # added 2026-03-30
bip_utils = throw "'bip_utils' has been renamed to/replaced by 'bip-utils'"; # Converted to throw 2025-10-29
bjoern = throw "'bjoern' has been removed, as the upstream repository was unmaintained and it was using libraries with severe security issues."; # Added 2025-09-01

View File

@@ -2375,8 +2375,6 @@ self: super: with self; {
biliass = callPackage ../development/python-modules/biliass { };
bilibili-api-python = callPackage ../development/python-modules/bilibili-api-python { };
billiard = callPackage ../development/python-modules/billiard { };
binance-connector = callPackage ../development/python-modules/binance-connector { };