Merge master into staging-next
This commit is contained in:
@@ -1246,6 +1246,8 @@ let
|
||||
allInvalid = filter (def: !type.check def.value) defsFinal;
|
||||
in
|
||||
throw "A definition for option `${showOption loc}' is not of type `${type.description}'. Definition values:${showDefs allInvalid}"
|
||||
else if type.emptyValue ? value then
|
||||
type.emptyValue.value
|
||||
else
|
||||
# (nixos-option detects this specific error message and gives it special
|
||||
# handling. If changed here, please change it there too.)
|
||||
|
||||
+10
-5
@@ -589,11 +589,16 @@ rec {
|
||||
renderOptionValue opt.example
|
||||
);
|
||||
}
|
||||
// optionalAttrs (opt ? defaultText || opt ? default) {
|
||||
default = builtins.addErrorContext "while evaluating the ${
|
||||
if opt ? defaultText then "defaultText" else "default value"
|
||||
} of option `${name}`" (renderOptionValue (opt.defaultText or opt.default));
|
||||
}
|
||||
//
|
||||
optionalAttrs (opt ? defaultText || opt ? default || ((opt.type or { }).emptyValue or { }) ? value)
|
||||
{
|
||||
default =
|
||||
builtins.addErrorContext
|
||||
"while evaluating the ${
|
||||
if opt ? defaultText then "defaultText" else "default value"
|
||||
} of option `${name}`"
|
||||
(renderOptionValue (opt.defaultText or opt.default or opt.type.emptyValue.value));
|
||||
}
|
||||
// optionalAttrs (opt ? relatedPackages && opt.relatedPackages != null) {
|
||||
inherit (opt) relatedPackages;
|
||||
};
|
||||
|
||||
@@ -3393,6 +3393,44 @@ runTests {
|
||||
];
|
||||
};
|
||||
|
||||
testEmptyValueOption = {
|
||||
expr =
|
||||
let
|
||||
module =
|
||||
{ lib, ... }:
|
||||
{
|
||||
options = {
|
||||
"empty-value" = lib.mkOption {
|
||||
type = lib.mkOptionType {
|
||||
name = "propagate-empty-value-to-default";
|
||||
emptyValue.value = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
eval = evalModules {
|
||||
modules = [ module ];
|
||||
};
|
||||
in
|
||||
filter (o: o.name == "empty-value") (optionAttrSetToDocList eval.options);
|
||||
expected = [
|
||||
{
|
||||
declarations = [ ];
|
||||
default = {
|
||||
_type = "literalExpression";
|
||||
text = "2";
|
||||
};
|
||||
description = null;
|
||||
internal = false;
|
||||
loc = [ "empty-value" ];
|
||||
name = "empty-value";
|
||||
readOnly = false;
|
||||
type = "propagate-empty-value-to-default";
|
||||
visible = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
testDocOptionVisiblity = {
|
||||
expr =
|
||||
let
|
||||
|
||||
@@ -674,6 +674,17 @@ checkConfigOutput "{}" config.submodule.a ./emptyValues.nix
|
||||
checkConfigError 'The option .int.a. was accessed but has no value defined. Try setting the option.' config.int.a ./emptyValues.nix
|
||||
checkConfigError 'The option .nonEmptyList.a. was accessed but has no value defined. Try setting the option.' config.nonEmptyList.a ./emptyValues.nix
|
||||
|
||||
## defaults
|
||||
checkConfigOutput "\[\]" config.list ./defaults.nix
|
||||
checkConfigOutput "{}" config.attrs ./defaults.nix
|
||||
checkConfigOutput "{}" config.attrsOf ./defaults.nix
|
||||
checkConfigOutput "null" config.null ./defaults.nix
|
||||
checkConfigOutput "{}" config.submodule ./defaults.nix
|
||||
checkConfigOutput "\[\]" config.unique ./defaults.nix
|
||||
checkConfigOutput "\[\]" config.coercedTo ./defaults.nix
|
||||
# These types don't have empty values
|
||||
checkConfigError 'The option .int. was accessed but has no value defined. Try setting the option.' config.int ./defaults.nix
|
||||
|
||||
# types.unique
|
||||
# requires a single definition
|
||||
checkConfigError 'The option .examples\.merged. is defined multiple times while it.s expected to be unique' config.examples.merged.a ./types-unique.nix
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib) types;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
list = lib.mkOption {
|
||||
type = types.listOf types.int;
|
||||
};
|
||||
attrs = lib.mkOption {
|
||||
type = types.attrs;
|
||||
};
|
||||
attrsOf = lib.mkOption {
|
||||
type = types.attrsOf types.int;
|
||||
};
|
||||
null = lib.mkOption {
|
||||
type = types.nullOr types.int;
|
||||
};
|
||||
submodule = lib.mkOption {
|
||||
type = types.submodule { };
|
||||
};
|
||||
unique = lib.mkOption {
|
||||
type = types.unique { message = "hi"; } (types.listOf types.int);
|
||||
};
|
||||
coercedTo = lib.mkOption {
|
||||
type = types.coercedTo (types.attrsOf types.int) builtins.attrNames (types.listOf types.str);
|
||||
};
|
||||
# no empty value
|
||||
int = lib.mkOption {
|
||||
type = types.int;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -4,6 +4,32 @@
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
- The system.nix file has been added has an alternative entry point to configuration.nix (and flake.nix) that allows to configure NixOS without using `nix-channel`.
|
||||
This file must evaluate to a NixOS system derivation or an attribute set of such derivations, in which case the attribute to build has to be selected with the `--attr` option of `nixos-rebuild` or `nixos-install`.
|
||||
For example,
|
||||
```nix
|
||||
# system.nix
|
||||
let
|
||||
# Pinned Nixpkgs archive
|
||||
#
|
||||
# Use `curl -I https://channels.nixos.org/nixos-26.05` to get the
|
||||
# latest commit of the stable channel and `nix-prefetch-url --unpack`
|
||||
# to compute its sha256 hash.
|
||||
nixpkgs = builtins.fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/c217913993d6.tar.gz";
|
||||
sha256 = "026mprs324330pfazlgbw987qmsa8ligglarvqbcxzig2kgw0lqg";
|
||||
};
|
||||
in
|
||||
import "${nixpkgs}/nixos" {
|
||||
# Build NixOS using an external configuration.nix file,
|
||||
# or directly set your options here
|
||||
configuration = ./configuration.nix;
|
||||
}
|
||||
```
|
||||
|
||||
The default location of system.nix is `/etc/nixos/system.nix` and can be changed by setting the `<nixos-system>` search path.
|
||||
`nixos-rebuild` and `nixos-install` can now also load a system.nix file in the current directory (only if `--attr` is used) or from a directory specified with `--file`.
|
||||
|
||||
- The default kernel package has been updated from 6.12 to 6.18. All supported kernels remain available.
|
||||
|
||||
## New Modules {#sec-release-26.05-new-modules}
|
||||
|
||||
@@ -179,12 +179,44 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
preBuildCommands = mkOption {
|
||||
type = types.lines;
|
||||
example = literalExpression ''
|
||||
'''
|
||||
if [ ! -w "$root_fs" ]; then
|
||||
cp --no-preserve=mode "$root_fs" ./root-fs.img
|
||||
root_fs=./root-fs.img
|
||||
fi
|
||||
resize2fs $root_fs 15G
|
||||
'''
|
||||
'';
|
||||
default = "";
|
||||
description = ''
|
||||
Shell commands to run after the root filesystem image has been
|
||||
prepared, but before the final SD image is assembled.
|
||||
|
||||
The path to the root filesystem image is available in the
|
||||
{var}`root_fs` shell variable. This hook can be used to modify
|
||||
the rootfs, for example to resize it or inject additional files.
|
||||
|
||||
Note that when {option}`sdImage.compressImage` is disabled,
|
||||
{var}`root_fs` points to a read-only store path. To modify it,
|
||||
first copy it to a writable location and update {var}`root_fs`
|
||||
to point to the copy.
|
||||
'';
|
||||
};
|
||||
|
||||
postBuildCommands = mkOption {
|
||||
type = types.lines;
|
||||
example = literalExpression "'' dd if=\${pkgs.myBootLoader}/SPL of=$img bs=1024 seek=1 conv=notrunc ''";
|
||||
default = "";
|
||||
description = ''
|
||||
Shell commands to run after the image is built.
|
||||
Can be used for boards requiring to dd u-boot SPL before actual partitions.
|
||||
Shell commands to run after the SD image has been assembled.
|
||||
|
||||
The path to the image is available in the {var}`img` shell
|
||||
variable. This hook is typically used for boards that require
|
||||
writing a bootloader (such as u-boot SPL) to a fixed offset
|
||||
before the first partition.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -284,6 +316,8 @@ in
|
||||
zstd -d --no-progress "${config.sdImage.rootFilesystemImage}" -o $root_fs
|
||||
''}
|
||||
|
||||
${config.sdImage.preBuildCommands}
|
||||
|
||||
# Gap in front of the first partition, in MiB
|
||||
gap=${toString config.sdImage.firmwarePartitionOffset}
|
||||
|
||||
|
||||
@@ -154,11 +154,6 @@ in
|
||||
mode = "755";
|
||||
inherit (cfg) user group;
|
||||
};
|
||||
"${cfg.profileDir}/qBittorrent/config/qBittorrent.conf"."C+" = mkIf (cfg.serverConfig != { }) {
|
||||
mode = "600";
|
||||
inherit (cfg) user group;
|
||||
argument = toString configFile;
|
||||
};
|
||||
};
|
||||
};
|
||||
services.qbittorrent = {
|
||||
@@ -176,6 +171,12 @@ in
|
||||
Type = "simple";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
|
||||
# the config file has to be writable, so we have to do this weird dance
|
||||
ExecStartPre = lib.mkIf (cfg.serverConfig != { }) ''
|
||||
${pkgs.coreutils}/bin/install -Dm600 ${configFile} "${cfg.profileDir}/qBittorrent/config/qBittorrent.conf"
|
||||
'';
|
||||
|
||||
ExecStart = utils.escapeSystemdExecArgs (
|
||||
[
|
||||
(getExe cfg.package)
|
||||
|
||||
@@ -1126,7 +1126,6 @@ in
|
||||
nixpkgs-config-allow-unfree-packages-and-predicate =
|
||||
pkgs.callPackage ../../pkgs/stdenv/generic/check-meta-test.nix
|
||||
{ };
|
||||
nixseparatedebuginfod = runTest ./nixseparatedebuginfod.nix;
|
||||
nixseparatedebuginfod2 = runTest ./nixseparatedebuginfod2.nix;
|
||||
node-red = runTest ./node-red.nix;
|
||||
nohang = runTest ./nohang.nix;
|
||||
|
||||
@@ -16,19 +16,19 @@ let
|
||||
vsix = stdenv.mkDerivation (finalAttrs: {
|
||||
name = "prettier-vscode-${finalAttrs.version}.vsix";
|
||||
pname = "prettier-vscode-vsix";
|
||||
version = "12.3.0";
|
||||
version = "12.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "prettier";
|
||||
repo = "prettier-vscode";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-a6BBWd+K8boLw+0j6etT/KHmdScLr6mBG7T5pslilTo=";
|
||||
hash = "sha256-N++WB0CvqYQTRg3SQFf9QJrwSJXtUd7z/kvWXQqOSC4=";
|
||||
};
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
name = "${finalAttrs.pname}-npm-deps";
|
||||
inherit (finalAttrs) src;
|
||||
hash = "sha256-itl/OXjL6co3smccRwRbuGM427YzBsYh2BvkEc+oX5Y=";
|
||||
hash = "sha256-vktxhQA2a+D9Nr4vhbmGCnNdGzt0U89K50g0SgiV5SE=";
|
||||
};
|
||||
|
||||
buildInputs = lib.optionals stdenv.isLinux [
|
||||
|
||||
@@ -1229,13 +1229,13 @@
|
||||
"vendorHash": "sha256-skswuFKhN4FFpIunbom9rM/FVRJVOFb1WwHeAIaEjn8="
|
||||
},
|
||||
"spacelift-io_spacelift": {
|
||||
"hash": "sha256-W05b6v8OEPLRUzh0w5Wu7bySuaCkrD3Rl9CkomgEyEE=",
|
||||
"hash": "sha256-HPryfdykq6m9L66z4gC8tb1F4tTHLk9H4UN2/lnNpu4=",
|
||||
"homepage": "https://registry.terraform.io/providers/spacelift-io/spacelift",
|
||||
"owner": "spacelift-io",
|
||||
"repo": "terraform-provider-spacelift",
|
||||
"rev": "v1.44.0",
|
||||
"rev": "v1.45.0",
|
||||
"spdx": "MIT",
|
||||
"vendorHash": "sha256-E9e4+n12uSc12F428D8Oqe0iquTMywAY4DYWhSC+hmk="
|
||||
"vendorHash": "sha256-Ub0lqMdCu44UX3LkcjErsxfWdL9C6CxhVKPOn1AAdEc="
|
||||
},
|
||||
"splunk-terraform_signalfx": {
|
||||
"hash": "sha256-N9vAa6/FAGQaLFv2GUz4P8vKXR1F8QPFJ+sIaFoNFpw=",
|
||||
|
||||
@@ -92,6 +92,7 @@ stdenv.mkDerivation {
|
||||
maintainers = with lib.maintainers; [
|
||||
joelburget
|
||||
khaneliman
|
||||
savtrip
|
||||
];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
license = lib.licenses.unfree;
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "aocl-utils";
|
||||
version = "5.2";
|
||||
version = "5.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "amd";
|
||||
repo = "aocl-utils";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-wPnKfPbkW9ILu1YgyymKmg5gZj0l0cWio3/JTXtbylA=";
|
||||
hash = "sha256-grEuYM+Ss4pQQ12S5uOV27ocVHzYuLK+e70Jm5u8fuI=";
|
||||
};
|
||||
|
||||
patches = [ ./pkg-config.patch ];
|
||||
|
||||
@@ -42,7 +42,10 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
||||
tqdm
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [ "docutils" ];
|
||||
pythonRelaxDeps = [
|
||||
"docutils"
|
||||
"tabulate"
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [
|
||||
backoff
|
||||
@@ -101,6 +104,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
||||
meta = {
|
||||
description = "Command-line tool for accessing the Backblaze B2 storage service";
|
||||
homepage = "https://github.com/Backblaze/B2_Command_Line_Tool";
|
||||
maintainers = with lib.maintainers; [ phaer ];
|
||||
changelog = "https://github.com/Backblaze/B2_Command_Line_Tool/blob/${finalAttrs.src.tag}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "backblaze-b2";
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "btrfs-progs";
|
||||
version = "6.19";
|
||||
version = "6.19.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-rWt5GmDrVj0zFLwY48R/awU6AyY5SItbCbnV55Id5rY=";
|
||||
hash = "sha256-uyfh7FTnw8C3suWW+FOnPAej1y8hvJQEIHPCTb8EV5Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-lock";
|
||||
version = "11.0.0";
|
||||
version = "11.0.1";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit (finalAttrs) pname version;
|
||||
hash = "sha256-Gz459c2IWD19RGBg2TyHbI/VNCelha+R0FeNkAaHksU=";
|
||||
hash = "sha256-l8B98ycfC17vUY29BbFoucGeAn8mapchCvjdMCNhKqc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Kw1LWu/DYfeuf5aMaNslnDyEoaRj0J+yxWs7sKHyWlU=";
|
||||
cargoHash = "sha256-l76udCsgloW5tZ8TgNMOT47un2Epun0B3UjaHCWdZjE=";
|
||||
|
||||
buildFeatures = [ "cli" ];
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
pkg-config,
|
||||
makeWrapper,
|
||||
alsa-lib,
|
||||
@@ -14,13 +16,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "cliamp";
|
||||
version = "1.21.5";
|
||||
version = "1.25.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bjarneo";
|
||||
repo = "cliamp";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-xqiFtMw5kFRAnc4CSkc7/RcAejWxlJAoGFkQ2f5Z3bc=";
|
||||
hash = "sha256-SE8uUdA3u+bm3A65J2nMyG+17NCaq5mQgji7eYUQKd8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-UMDCpfSGfvJmI+sImaFzgZpLNaLMgEnmGCqERwPokHM=";
|
||||
@@ -31,10 +33,12 @@ buildGoModule (finalAttrs: {
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
libogg
|
||||
libvorbis
|
||||
flac
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
alsa-lib
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
@@ -47,6 +51,11 @@ buildGoModule (finalAttrs: {
|
||||
}
|
||||
'';
|
||||
|
||||
# this is set due to failure of testset `net/http/httptest` on darwin
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Terminal Winamp - a retro terminal music player inspired by Winamp 2.x";
|
||||
homepage = "https://github.com/bjarneo/cliamp";
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
}:
|
||||
|
||||
let
|
||||
openShiftVersion = "4.21.0";
|
||||
okdVersion = "4.20.0-okd-scos.11";
|
||||
openShiftVersion = "4.21.4";
|
||||
okdVersion = "4.21.0-okd-scos.5";
|
||||
microshiftVersion = "4.21.0";
|
||||
writeKey = "$(MODULEPATH)/pkg/crc/segment.WriteKey=cvpHsNcmGCJqVzf6YxrSnVlwFSAZaYtp";
|
||||
gitCommit = "275f36851d44a1dba8407f960f763b546ba8fc32";
|
||||
gitHash = "sha256-M622rTWsz35EVmMm/EyIAYbRFFBvpXYjcNp4HrcFl3o=";
|
||||
gitCommit = "e90757a62cf73025d22e2bcdc7b04bf5e5e9a0e0";
|
||||
gitHash = "sha256-0Rs+kpuiCQzgLKpZ4fkspZEiH/cnkkN3jdObgAK9hGw=";
|
||||
in
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "crc";
|
||||
version = "2.58.0";
|
||||
version = "2.59.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "crc-org";
|
||||
|
||||
@@ -126,13 +126,13 @@
|
||||
},
|
||||
{
|
||||
"pname": "Elastic.Clients.Elasticsearch",
|
||||
"version": "9.2.2",
|
||||
"hash": "sha256-5wzN9SoLH/zU3WScLryzfVmk078TpO/5EY2iUflB5IY="
|
||||
"version": "9.3.0",
|
||||
"hash": "sha256-h2ExrklcO6tVFV2ecxnGXA4uY9D1tiQ3sqmmN7wrRoM="
|
||||
},
|
||||
{
|
||||
"pname": "Elastic.Transport",
|
||||
"version": "0.10.1",
|
||||
"hash": "sha256-eX9H+arnuPnIzOFQvle4pdDTTpZ0Rw+t7rJ1ohlxbh0="
|
||||
"version": "0.10.3",
|
||||
"hash": "sha256-9AcJAN3uP3wywsm52caPg6Qgt4iZS0nhjIl2bb0hlx8="
|
||||
},
|
||||
{
|
||||
"pname": "ExtendedNumerics.BigDecimal",
|
||||
@@ -161,8 +161,13 @@
|
||||
},
|
||||
{
|
||||
"pname": "Hardware.Info",
|
||||
"version": "101.1.0.1",
|
||||
"hash": "sha256-R2kxac5rNQ9mEsD3OR5LmXiBP4uakmcRBrHazzs+EMU="
|
||||
"version": "101.1.1.1",
|
||||
"hash": "sha256-JPd8B7bvz8jMtVXsJH9mwW+wd71cTtC7O3RyRbrR0X4="
|
||||
},
|
||||
{
|
||||
"pname": "Hardware.Info.Core",
|
||||
"version": "101.1.1.1",
|
||||
"hash": "sha256-NHPzZZ286Wtj4Fv53gLUf5duqSx6GhXtyufbwe49nyM="
|
||||
},
|
||||
{
|
||||
"pname": "HarfBuzzSharp",
|
||||
@@ -191,8 +196,8 @@
|
||||
},
|
||||
{
|
||||
"pname": "HtmlSanitizer",
|
||||
"version": "9.0.889",
|
||||
"hash": "sha256-0U6K39KkovhpFujGNhjUCv5/JCbESCiiAJbvHCYi9f0="
|
||||
"version": "9.0.892",
|
||||
"hash": "sha256-8ZVGH6RJ3QjgmwSGdVadS2pd3Tgq9IHXW7VHOX0slH0="
|
||||
},
|
||||
{
|
||||
"pname": "Humanizer.Core",
|
||||
@@ -216,18 +221,18 @@
|
||||
},
|
||||
{
|
||||
"pname": "Json.More.Net",
|
||||
"version": "2.2.0",
|
||||
"hash": "sha256-Hb4ylcT/6bLHVADpnjoBJKyTR3cU+WjYlblO79A+SSU="
|
||||
"version": "3.0.0",
|
||||
"hash": "sha256-zlJb9Wi9ErFqN8FYphzog9paPxI3DBVnoTL0c12Bfks="
|
||||
},
|
||||
{
|
||||
"pname": "JsonPointer.Net",
|
||||
"version": "6.0.1",
|
||||
"hash": "sha256-iIvOHz6jjTsGnXyxOK71z2F8gh21TmQS4A9SLB4u93A="
|
||||
"version": "7.0.0",
|
||||
"hash": "sha256-/1GemlLhmYnz/HDQTpEEaGxaofoFkFUMNNPInKhAvM4="
|
||||
},
|
||||
{
|
||||
"pname": "JsonSchema.Net",
|
||||
"version": "8.0.5",
|
||||
"hash": "sha256-zFSEmqckius1fa/vxhJEMoNC/RU25kF3AStyMwxHCPM="
|
||||
"version": "9.0.0",
|
||||
"hash": "sha256-N5bp2OswdoQI5fe/ZaKmk7LwL9woJ5cV4D43IUeFJ3E="
|
||||
},
|
||||
{
|
||||
"pname": "LanguageExt.Core",
|
||||
@@ -1046,8 +1051,8 @@
|
||||
},
|
||||
{
|
||||
"pname": "Scalar.AspNetCore",
|
||||
"version": "2.12.10",
|
||||
"hash": "sha256-KBFz5usTX/6AZnzMwkcEA7TbMksEmR9K7g9a/t0AKXs="
|
||||
"version": "2.12.32",
|
||||
"hash": "sha256-0EZAD43NpMpX3P8quuctTLSGBxwjxxbyfQodo0e+nII="
|
||||
},
|
||||
{
|
||||
"pname": "Scriban.Signed",
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "ersatztv";
|
||||
version = "26.2.0";
|
||||
version = "26.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ErsatzTV";
|
||||
repo = "ErsatzTV";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Ld0IdPMfkEdNfEy75bFzAUNhGdG/B8CSUVZKokcxReg=";
|
||||
sha256 = "sha256-yFGMkTI+IQs3WTOQzxhqj3ownENsIzLqrDr3nWurzfA=";
|
||||
};
|
||||
postPatch = ''
|
||||
# Remove config of development tools that don't end up in
|
||||
|
||||
@@ -8,18 +8,18 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "filebeat";
|
||||
version = "8.19.10";
|
||||
version = "8.19.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elastic";
|
||||
repo = "beats";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Ky1oWqQXIjno14ZBfxR1FoXEkSn1kScdQQTyGDRvMTo=";
|
||||
hash = "sha256-KUbGtQW0GsMmEQPQA5DJtxMt+5pNs0LdQHr66e8sW/I=";
|
||||
};
|
||||
|
||||
proxyVendor = true; # darwin/linux hash mismatch
|
||||
|
||||
vendorHash = "sha256-b4W10tGAoxW1oAfmQqM8x0JOi0BD1WBYB2sUVl/hLHY=";
|
||||
vendorHash = "sha256-eZuqIOLNMnFBkZocYP1OCtny5DOPl+k2Hym51rqVQPA=";
|
||||
|
||||
subPackages = [ "filebeat" ];
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@ buildGo126Module (finalAttrs: {
|
||||
maintainers = with lib.maintainers; [
|
||||
mdaniels5757
|
||||
zowoq
|
||||
savtrip
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -107,7 +107,10 @@ buildGoModule (finalAttrs: {
|
||||
homepage = "https://git-lfs.github.com/";
|
||||
changelog = "https://github.com/git-lfs/git-lfs/raw/v${finalAttrs.version}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ twey ];
|
||||
maintainers = with lib.maintainers; [
|
||||
twey
|
||||
savtrip
|
||||
];
|
||||
mainProgram = "git-lfs";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "18.9.2";
|
||||
version = "18.9.3";
|
||||
package_version = "v${lib.versions.major version}";
|
||||
gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
|
||||
|
||||
@@ -21,10 +21,10 @@ let
|
||||
owner = "gitlab-org";
|
||||
repo = "gitaly";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-qCOcy7JOR7OeY5uPZE6xo6NRi5OhVKdl5Q4n36S5XyI=";
|
||||
hash = "sha256-k8byGIGG1sDGTX27QV1N/q9tnae3DY9v47XTv0+Mf9Y=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-lK0fNBhDGFOZ+sCm1VuvN4CpAb0nAkUl4yL/30tZKBY=";
|
||||
vendorHash = "sha256-1lMOJLtwnu0drrGHuhCiZSNdpyBjLed4uV4B2NSJPJQ=";
|
||||
|
||||
ldflags = [
|
||||
"-X ${gitaly_package}/internal/version.version=${version}"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
buildGo125Module rec {
|
||||
pname = "gitlab-container-registry";
|
||||
version = "4.37.0";
|
||||
version = "4.39.0";
|
||||
rev = "v${version}-gitlab";
|
||||
|
||||
# nixpkgs-update: no auto update
|
||||
@@ -14,10 +14,14 @@ buildGo125Module rec {
|
||||
owner = "gitlab-org";
|
||||
repo = "container-registry";
|
||||
inherit rev;
|
||||
hash = "sha256-ZsnmJEzoLSH5bspxTQjOV8EOeQVeFn+rYCl8QqfzGaA=";
|
||||
hash = "sha256-7dGKV2Pc3OPdM4OZqYjp3B9/s6DHtPvrqcWnWb3wHYw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-xUkfcgsw6nRDxq1Tj5Y1CYgnJ7rbCcncB94Aeh9Ek+M=";
|
||||
vendorHash = "sha256-s08LsgYZTRJm0sWkbEUsmTYGkfb/5PJl9o9ozY1KOms=";
|
||||
|
||||
excludedPackages = [
|
||||
"devvm/*"
|
||||
];
|
||||
|
||||
checkFlags =
|
||||
let
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gitlab-pages";
|
||||
version = "18.9.2";
|
||||
version = "18.9.3";
|
||||
|
||||
# nixpkgs-update: no auto update
|
||||
src = fetchFromGitLab {
|
||||
owner = "gitlab-org";
|
||||
repo = "gitlab-pages";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-sOJNwCcIAuLywL9r9c0RUqqtLbNmaaJ6ZMVBLQgus8k=";
|
||||
hash = "sha256-UHQ0M/WTmjmfwFHJM8BJ5XPZs+x4A8uh4FNBp+3x0ew=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-AZIv/CU01OAbn5faE4EkSuDCakYzDjRprB5ox5tIlck=";
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"version": "18.9.2",
|
||||
"repo_hash": "sha256-0ax0wYOEiL9Vl/cw9DaoyhROehZjrtv7KIKmOWrrJY8=",
|
||||
"version": "18.9.3",
|
||||
"repo_hash": "sha256-xApcwmDca3cK/nlDeS+DDh4MklmXxGnO/3+79WIC9Uk=",
|
||||
"yarn_hash": "sha256-uXyUJS4+YIRB3pPezVbj5u1fytOo+/bNR18Kq6FAKSQ=",
|
||||
"frontend_islands_yarn_hash": "sha256-OkCoiyL9FFJcWcNUbeRSBGGSauYIm7l+yxNfA0CsNEQ=",
|
||||
"owner": "gitlab-org",
|
||||
"repo": "gitlab",
|
||||
"rev": "v18.9.2-ee",
|
||||
"rev": "v18.9.3-ee",
|
||||
"passthru": {
|
||||
"GITALY_SERVER_VERSION": "18.9.2",
|
||||
"GITLAB_KAS_VERSION": "18.9.2",
|
||||
"GITLAB_PAGES_VERSION": "18.9.2",
|
||||
"GITALY_SERVER_VERSION": "18.9.3",
|
||||
"GITLAB_KAS_VERSION": "18.9.3",
|
||||
"GITLAB_PAGES_VERSION": "18.9.3",
|
||||
"GITLAB_SHELL_VERSION": "14.45.6",
|
||||
"GITLAB_ELASTICSEARCH_INDEXER_VERSION": "5.13.3",
|
||||
"GITLAB_WORKHORSE_VERSION": "18.9.2"
|
||||
"GITLAB_WORKHORSE_VERSION": "18.9.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ in
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gitlab-workhorse";
|
||||
|
||||
version = "18.9.2";
|
||||
version = "18.9.3";
|
||||
|
||||
# nixpkgs-update: no auto update
|
||||
src = fetchFromGitLab {
|
||||
|
||||
@@ -695,8 +695,8 @@ gem 'valid_email', '~> 0.1', feature_category: :shared # rubocop:todo Gemfile/Mi
|
||||
gem 'jsonb_accessor', '~> 1.4', feature_category: :shared # rubocop:todo Gemfile/MissingFeatureCategory -- https://gitlab.com/gitlab-org/gitlab/-/issues/581839
|
||||
gem 'json', '~> 2.13.0', feature_category: :shared # rubocop:todo Gemfile/MissingFeatureCategory -- https://gitlab.com/gitlab-org/gitlab/-/issues/581839
|
||||
gem 'json_schemer', '~> 2.3.0', feature_category: :shared # rubocop:todo Gemfile/MissingFeatureCategory -- https://gitlab.com/gitlab-org/gitlab/-/issues/581839
|
||||
gem 'oj', '~> 3.16.0', '>=3.16.10', feature_category: :shared # rubocop:todo Gemfile/MissingFeatureCategory -- https://gitlab.com/gitlab-org/gitlab/-/issues/581839
|
||||
gem 'oj-introspect', '~> 0.8', feature_category: :shared # rubocop:todo Gemfile/MissingFeatureCategory -- https://gitlab.com/gitlab-org/gitlab/-/issues/581839
|
||||
gem 'oj', '~> 3.16.0', '>=3.16.16', feature_category: :shared # rubocop:todo Gemfile/MissingFeatureCategory -- https://gitlab.com/gitlab-org/gitlab/-/issues/581839
|
||||
gem 'oj-introspect', '~> 0.9', feature_category: :shared # rubocop:todo Gemfile/MissingFeatureCategory -- https://gitlab.com/gitlab-org/gitlab/-/issues/581839
|
||||
gem 'multi_json', '~> 1.17.0', feature_category: :shared # rubocop:todo Gemfile/MissingFeatureCategory -- https://gitlab.com/gitlab-org/gitlab/-/issues/581839
|
||||
gem 'yajl-ruby', '~> 1.4.3', require: 'yajl', feature_category: :shared # rubocop:todo Gemfile/MissingFeatureCategory -- https://gitlab.com/gitlab-org/gitlab/-/issues/581839
|
||||
|
||||
|
||||
@@ -1292,11 +1292,11 @@ GEM
|
||||
plist (~> 3.1)
|
||||
train-core
|
||||
wmi-lite (~> 1.0)
|
||||
oj (3.16.13)
|
||||
oj (3.16.16)
|
||||
bigdecimal (>= 3.0)
|
||||
ostruct (>= 0.2)
|
||||
oj-introspect (0.8.0)
|
||||
oj (>= 3.16.10)
|
||||
oj-introspect (0.9.0)
|
||||
oj (>= 3.16.16)
|
||||
omniauth (2.1.4)
|
||||
hashie (>= 3.4.6)
|
||||
logger
|
||||
@@ -1555,7 +1555,7 @@ GEM
|
||||
pyu-ruby-sasl (0.0.3.3)
|
||||
raabro (1.4.0)
|
||||
racc (1.8.1)
|
||||
rack (2.2.21)
|
||||
rack (2.2.22)
|
||||
rack-accept (0.4.5)
|
||||
rack (>= 0.4)
|
||||
rack-attack (6.8.0)
|
||||
@@ -2308,8 +2308,8 @@ DEPENDENCIES
|
||||
oauth2 (~> 2.0)
|
||||
octokit (~> 9.0)
|
||||
ohai (~> 19.1.16)
|
||||
oj (~> 3.16.0, >= 3.16.10)
|
||||
oj-introspect (~> 0.8)
|
||||
oj (~> 3.16.0, >= 3.16.16)
|
||||
oj-introspect (~> 0.9)
|
||||
omniauth (~> 2.1.0)
|
||||
omniauth-alicloud (~> 3.0.0)
|
||||
omniauth-atlassian-oauth2 (~> 0.2.0)
|
||||
|
||||
@@ -5789,10 +5789,10 @@ src: {
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "00q33rm7lpfc319pf6him05ak76gfy7i04iiddrz317q7swbq55i";
|
||||
sha256 = "0g817hjx1rh4zhvcpb9m6lr6l8yyq3n8vnjm9x1rc5wr51hv6d9n";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.16.13";
|
||||
version = "3.16.16";
|
||||
};
|
||||
oj-introspect = {
|
||||
dependencies = [ "oj" ];
|
||||
@@ -5800,10 +5800,10 @@ src: {
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0r4jgnw44qvswidfd8fh4s7pkdg34bmmrxn2wn0lhab0klq1bfsw";
|
||||
sha256 = "0kw38qahkkbj3pmn89dss1vwbhamc74pww5p5f8371sfcms4kbxp";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.8.0";
|
||||
version = "0.9.0";
|
||||
};
|
||||
omniauth = {
|
||||
dependencies = [
|
||||
@@ -7105,10 +7105,10 @@ src: {
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0fgpa9qm5qgza69fjnagg2alxs2wmj41aq7z4kj5yib50wpzgqhl";
|
||||
sha256 = "0hj5yq200wlq1clpdvh44pqwllbxll0k3gjajxnrcn95hxzhpky5";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.2.21";
|
||||
version = "2.2.22";
|
||||
};
|
||||
rack-accept = {
|
||||
dependencies = [ "rack" ];
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
}:
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "gridtracker2";
|
||||
version = "2.260111.0";
|
||||
version = "2.260323.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "gridtracker.org";
|
||||
repo = "gridtracker2";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-LcaIOzCMtJxeMs7kEqTYmgMlrV62+HOXmG5wk67NUoE=";
|
||||
hash = "sha256-3DUbKG7bMR2VpJPPsLNRLzYaStv5iTanECAT6DHMExo=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-8bhOfLLsNSK+/mXku5ukLr65bfk+RwC3SyOGRHndqVQ=";
|
||||
npmDepsHash = "sha256-dJmrNP2AwIaQaCq0guG+OTogfcL8f97MAp6N7HAw5z8=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeBinaryWrapper
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
grub2,
|
||||
}:
|
||||
|
||||
grub2.override {
|
||||
efiSupport = true;
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
grub2,
|
||||
}:
|
||||
|
||||
grub2.override {
|
||||
ieee1275Support = true;
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
grub2,
|
||||
}:
|
||||
|
||||
grub2.override {
|
||||
zfsSupport = false;
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
grub2_pvhgrub_image,
|
||||
}:
|
||||
|
||||
grub2_pvhgrub_image.override {
|
||||
grubPlatform = "xen";
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
grub2,
|
||||
}:
|
||||
|
||||
grub2.override {
|
||||
xenSupport = true;
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
grub2,
|
||||
}:
|
||||
|
||||
grub2.override {
|
||||
xenPvhSupport = true;
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
fetchFromGitHub,
|
||||
testers,
|
||||
installShellFiles,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
@@ -25,7 +26,10 @@ buildGoModule (finalAttrs: {
|
||||
"doc"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
@@ -36,8 +40,6 @@ buildGoModule (finalAttrs: {
|
||||
doCheck = false; # Network required
|
||||
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
export HOME="$(mktemp -d)"
|
||||
|
||||
installShellCompletion --cmd harbor \
|
||||
--bash <($out/bin/harbor completion bash) \
|
||||
--fish <($out/bin/harbor completion fish) \
|
||||
|
||||
@@ -34,12 +34,12 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ida-free";
|
||||
version = "9.2";
|
||||
version = "9.3";
|
||||
|
||||
src = requireFile {
|
||||
name = "ida-free-pc_${lib.replaceStrings [ "." ] [ "" ] finalAttrs.version}_x64linux.run";
|
||||
url = "https://my.hex-rays.com/dashboard/download-center/installers/release/${finalAttrs.version}/ida-free";
|
||||
hash = "sha256-CQm9phkqLXhht4UQxooKmhmiGuW3lV8RIJuDrm52aNw=";
|
||||
hash = "sha256-eSX6/nT9joEMs48qFq92qT8Qr25B38xy4FxxaPIOwLw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -88,6 +88,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"libQt6Network.so.6"
|
||||
"libQt6EglFSDeviceIntegration.so.6"
|
||||
"libQt6WaylandEglClientHwIntegration.so.6"
|
||||
"libQt6WaylandCompositor.so.6"
|
||||
"libQt6WlShellIntegration.so.6"
|
||||
];
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
diff --git a/tests/completions/just.bash b/tests/completions/just.bash
|
||||
index 6d5c12c..13bff87 100755
|
||||
--- a/tests/completions/just.bash
|
||||
+++ b/tests/completions/just.bash
|
||||
@@ -17,11 +17,13 @@ reply_equals() {
|
||||
fi
|
||||
}
|
||||
|
||||
+just() {
|
||||
+ cargo run -- "$@"
|
||||
+}
|
||||
+
|
||||
# --- Initial Setup ---
|
||||
source "$1"
|
||||
cd tests/completions
|
||||
-cargo build
|
||||
-PATH="$(git rev-parse --show-toplevel)/target/debug:$PATH"
|
||||
exit_code=0
|
||||
|
||||
# --- Tests ---
|
||||
@@ -17,7 +17,7 @@
|
||||
withDocumentation ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
|
||||
}:
|
||||
let
|
||||
version = "1.47.1";
|
||||
version = "1.48.0";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit version;
|
||||
@@ -34,10 +34,10 @@ rustPlatform.buildRustPackage {
|
||||
owner = "casey";
|
||||
repo = "just";
|
||||
tag = version;
|
||||
hash = "sha256-HGrUiPe4vVYNISovTb9PZt8s6xCUg+OWkrp8dPm9tWg=";
|
||||
hash = "sha256-U/o9MyT/DMybfV/LHi50KL7sh6ZqJ6rvqAY5pzlJAA8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-ZRcYVvodaQmQtBGnkTIOI3PXC6YQ1kqycm6Xh/MwIqA=";
|
||||
cargoHash = "sha256-1cSk7dGuh5ZX4XrYgOvqM89e54o8yrr13VpTtdFbtEA=";
|
||||
|
||||
nativeBuildInputs =
|
||||
lib.optionals (installShellCompletions || installManPages) [ installShellFiles ]
|
||||
@@ -66,10 +66,6 @@ rustPlatform.buildRustPackage {
|
||||
patchShebangs tests
|
||||
'';
|
||||
|
||||
patches = [
|
||||
./fix-just-path-in-tests.patch
|
||||
];
|
||||
|
||||
cargoBuildFlags = [
|
||||
"--package=just"
|
||||
]
|
||||
|
||||
@@ -1,23 +1,27 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
curl,
|
||||
fftw,
|
||||
krita-unwrapped,
|
||||
libsForQt5,
|
||||
kdePackages,
|
||||
qt6,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "krita-plugin-gmic";
|
||||
version = "3.6.4.1";
|
||||
version = "3.7.4.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://files.kde.org/krita/build/dependencies/gmic-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-prbGkwFWC+LqK1WDqOwZvX5Q5LQal3dFUXzpILwF+v4=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vanyossi";
|
||||
repo = "gmic";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-xyln60z9r4spPtN3r2+3a1e5yzd8+B7d9UAR3VsRZ78=";
|
||||
};
|
||||
sourceRoot = "gmic-v${finalAttrs.version}/gmic-qt";
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/gmic-qt";
|
||||
dontWrapQtApps = true;
|
||||
|
||||
postPatch = ''
|
||||
@@ -28,14 +32,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
libsForQt5.qttools
|
||||
kdePackages.extra-cmake-modules
|
||||
qt6.qttools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
curl
|
||||
fftw
|
||||
krita-unwrapped
|
||||
libsForQt5.kcoreaddons
|
||||
kdePackages.kcoreaddons
|
||||
qt6.qtbase
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
@@ -4,10 +4,8 @@
|
||||
boost,
|
||||
cmake,
|
||||
curl,
|
||||
eigen,
|
||||
eigen_5,
|
||||
exiv2,
|
||||
extra-cmake-modules,
|
||||
fetchpatch,
|
||||
fetchurl,
|
||||
fftw,
|
||||
fribidi,
|
||||
@@ -24,7 +22,8 @@
|
||||
libjxl,
|
||||
libmypaint,
|
||||
libraw,
|
||||
libsForQt5,
|
||||
qt6,
|
||||
kdePackages,
|
||||
libunibreak,
|
||||
libwebp,
|
||||
opencolorio,
|
||||
@@ -39,34 +38,25 @@
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "krita-unwrapped";
|
||||
|
||||
version = "5.2.15";
|
||||
version = "6.0.0";
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/krita/${finalAttrs.version}/krita-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-m5T4Qh2XZ8KU3vWY+xBwfd5usje67KJZBmn7DUuQOzk=";
|
||||
hash = "sha256-kytodhJvfGKeQn7j0BIwDIKGsFoYQnc1S0FK9kGg8e0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fixes build with SIP 6.8
|
||||
(fetchpatch {
|
||||
name = "bump-SIP-ABI-version-to-12.8.patch";
|
||||
url = "https://invent.kde.org/graphics/krita/-/commit/2d71c47661d43a4e3c1ab0c27803de980bdf2bb2.diff";
|
||||
hash = "sha256-U3E44nj4vra++PJV20h4YHjES78kgrJtr4ktNeQfOdA=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
kdePackages.extra-cmake-modules
|
||||
pkg-config
|
||||
python3Packages.sip
|
||||
libsForQt5.wrapQtAppsHook
|
||||
qt6.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
libraw
|
||||
fftw
|
||||
eigen
|
||||
eigen_5
|
||||
exiv2
|
||||
fribidi
|
||||
lcms2
|
||||
@@ -90,9 +80,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libwebp
|
||||
SDL2
|
||||
zug
|
||||
python3Packages.pyqt5
|
||||
python3Packages.pyqt6
|
||||
|
||||
qt6.qtmultimedia
|
||||
qt6.qttools
|
||||
]
|
||||
++ (with libsForQt5; [
|
||||
++ (with kdePackages; [
|
||||
breeze-icons
|
||||
karchive
|
||||
kcompletion
|
||||
@@ -108,16 +101,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
kwindowsystem
|
||||
mlt
|
||||
poppler
|
||||
qtmultimedia
|
||||
qtx11extras
|
||||
quazip
|
||||
|
||||
# TODO: reenable libkdcraw when migrating to Qt6, see #430298
|
||||
# libkdcraw
|
||||
libkdcraw
|
||||
]);
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString (lib.optional stdenv.cc.isGNU "-Wno-deprecated-copy");
|
||||
|
||||
# Krita runs custom python scripts in CMake with custom PYTHONPATH which krita determined in their CMake script.
|
||||
# Patch the PYTHONPATH so python scripts can import sip successfully.
|
||||
postPatch =
|
||||
@@ -143,8 +130,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cmakeBuildType = "RelWithDebInfo";
|
||||
|
||||
cmakeFlags = [
|
||||
"-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
|
||||
"-DPYQT_SIP_DIR_OVERRIDE=${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
|
||||
"-DBUILD_WITH_QT6=ON"
|
||||
"-DALLOW_UNSTABLE=QT6"
|
||||
"-DENABLE_UPDATERS=OFF"
|
||||
"-DBUILD_KRITA_QT_DESIGNER_PLUGINS=ON"
|
||||
];
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{
|
||||
lib,
|
||||
libsForQt5,
|
||||
symlinkJoin,
|
||||
krita-plugin-gmic,
|
||||
binaryPlugins ? [
|
||||
|
||||
@@ -3,39 +3,41 @@
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
qt5,
|
||||
libsForQt5,
|
||||
qt6,
|
||||
kdePackages,
|
||||
bison,
|
||||
flex,
|
||||
llvm,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kseexpr";
|
||||
version = "4.0.4.0";
|
||||
version = "6.0.0.0";
|
||||
src = fetchFromGitLab {
|
||||
domain = "invent.kde.org";
|
||||
owner = "graphics";
|
||||
repo = "kseexpr";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-XjFGAN7kK2b0bLouYG3OhajhOQk4AgC4EQRzseccGCE=";
|
||||
hash = "sha256-Z3CjQdKHeZ/6He43qVYQj8Fo0y88v/ldJJD8bPYOaEo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# see https://github.com/NixOS/nixpkgs/issues/144170
|
||||
./cmake_libdir.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
qt5.wrapQtAppsHook
|
||||
kdePackages.extra-cmake-modules
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
buildInputs = [
|
||||
bison
|
||||
flex
|
||||
libsForQt5.ki18n
|
||||
llvm
|
||||
qt5.qtbase
|
||||
kdePackages.ki18n
|
||||
qt6.qtbase
|
||||
qt6.qttools
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "lasuite-meet-frontend";
|
||||
version = "1.11.0";
|
||||
version = "1.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "suitenumerique";
|
||||
repo = "meet";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-CvpGDfdK1+EJ+Tj9NLrfRfK4VpJVcDqezVJL6ZVdOQ8=";
|
||||
hash = "sha256-xm9NhsoM4ggLdtULfiUqJkB41n8q6eS8g4Q/zBaKRbs=";
|
||||
};
|
||||
|
||||
sourceRoot = "source/src/frontend";
|
||||
@@ -21,7 +21,7 @@ buildNpmPackage rec {
|
||||
npmDeps = fetchNpmDeps {
|
||||
inherit version src;
|
||||
sourceRoot = "source/src/frontend";
|
||||
hash = "sha256-/JvAnfqaWHc91T5NhqEJGcqLMbSJmnGmReGjrqc+Chw=";
|
||||
hash = "sha256-HobRnbl7fJJ2F0YuA3eyI0R0eW9FveGyqosj0F+Q73I=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
From cacd75fc0aeba7cf1733193c28c6118e2c249999 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Weinelt <hexa@darmstadt.ccc.de>
|
||||
Date: Tue, 24 Mar 2026 16:07:00 +0100
|
||||
Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B(backend):=20fix=20module=20inclusi?=
|
||||
=?UTF-8?q?on=20with=20uv-build?=
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
After migrating to uv-build only the module matching the project name was
|
||||
included in sdist/wheel packages. Without a src layout additional modules
|
||||
need to be tracked manually to ship them in built packages.
|
||||
---
|
||||
pyproject.toml | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/pyproject.toml b/pyproject.toml
|
||||
index 1f7757146..4a04e995d 100644
|
||||
--- a/pyproject.toml
|
||||
+++ b/pyproject.toml
|
||||
@@ -90,6 +90,11 @@ dev = [
|
||||
]
|
||||
|
||||
[tool.uv.build-backend]
|
||||
+module-name = [
|
||||
+ "core",
|
||||
+ "demo",
|
||||
+ "meet"
|
||||
+]
|
||||
module-root = ""
|
||||
source-exclude = [
|
||||
"**/tests/**",
|
||||
@@ -13,14 +13,14 @@ in
|
||||
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
pname = "lasuite-meet";
|
||||
version = "1.11.0";
|
||||
version = "1.12.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "suitenumerique";
|
||||
repo = "meet";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-CvpGDfdK1+EJ+Tj9NLrfRfK4VpJVcDqezVJL6ZVdOQ8=";
|
||||
hash = "sha256-xm9NhsoM4ggLdtULfiUqJkB41n8q6eS8g4Q/zBaKRbs=";
|
||||
};
|
||||
|
||||
sourceRoot = "source/src/backend";
|
||||
@@ -28,10 +28,6 @@ python.pkgs.buildPythonApplication rec {
|
||||
patches = [
|
||||
# Support configuration throught environment variables for SECURE_*
|
||||
./secure_settings.patch
|
||||
# Fix module inclusion after switching to uv-build
|
||||
# https://github.com/suitenumerique/meet/pull/1199
|
||||
./gh1199.patch
|
||||
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -100,7 +100,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
homepage = "https://developers.google.com/speed/webp/";
|
||||
license = lib.licenses.bsd3;
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [ ajs124 ];
|
||||
maintainers = with lib.maintainers; [
|
||||
ajs124
|
||||
savtrip
|
||||
];
|
||||
pkgConfigModules = [
|
||||
# configure_pkg_config() calls for these are unconditional
|
||||
"libwebp"
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "nb";
|
||||
version = "7.25.2";
|
||||
version = "7.25.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xwmx";
|
||||
repo = "nb";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-G/4BDOsrBqN92noEzDCG9lkZTblsz/HbYl0D+oyLEXc=";
|
||||
hash = "sha256-liDNmc7pueIk0nFUkPjP8llXzV6dTpHMVkRSc0stEVk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "nfs-ganesha";
|
||||
version = "9.8";
|
||||
version = "9.9";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "nfs-ganesha";
|
||||
repo = "nfs-ganesha";
|
||||
tag = "V${finalAttrs.version}";
|
||||
hash = "sha256-os0juaxJGOB1Ugh+7MvK0Gg11PSKkesCq6TgaFR+sDE=";
|
||||
hash = "sha256-yr9rXdW1rNiYt3bc1Rj4mdQTx9SZX6kp7RbdODR1ck0=";
|
||||
};
|
||||
|
||||
patches = lib.optional useDbus ./allow-bypassing-dbus-pkg-config-test.patch;
|
||||
|
||||
@@ -56,9 +56,9 @@ in
|
||||
'';
|
||||
}
|
||||
''
|
||||
nixos-install --help | grep -F 'NixOS Reference Pages'
|
||||
nixos-install --help | grep -F "System Manager's Manual"
|
||||
nixos-install --help | grep -F 'configuration.nix'
|
||||
nixos-generate-config --help | grep -F 'NixOS Reference Pages'
|
||||
nixos-generate-config --help | grep -F "System Manager's Manual"
|
||||
nixos-generate-config --help | grep -F 'hardware-configuration.nix'
|
||||
|
||||
# FIXME: Tries to call unshare, which it must not do for --help
|
||||
|
||||
@@ -33,9 +33,19 @@
|
||||
.Sh DESCRIPTION
|
||||
This command installs NixOS in the file system mounted on
|
||||
.Pa /mnt Ns
|
||||
, based on the NixOS configuration specified in
|
||||
.Pa /mnt/etc/nixos/configuration.nix Ns
|
||||
\&. It performs the following steps:
|
||||
, or defined through the
|
||||
.Fl -root
|
||||
option, based on the NixOS configuration specified in
|
||||
.Pa /mnt/etc/nixos/system.nix Ns
|
||||
,
|
||||
.Pa /mnt/etc/nixos/configuration.nix
|
||||
or specified through the
|
||||
.Fl -file Ns
|
||||
,
|
||||
.Fl -attr Ns
|
||||
or
|
||||
.Fl -flake Ns
|
||||
options. It performs the following steps:
|
||||
.
|
||||
.Bl -enum
|
||||
.It
|
||||
@@ -46,9 +56,7 @@ It copies Nix and its dependencies to
|
||||
.It
|
||||
It runs Nix in
|
||||
.Pa /mnt
|
||||
to build the NixOS configuration specified in
|
||||
.Pa /mnt/etc/nixos/configuration.nix Ns
|
||||
\&.
|
||||
to build the given NixOS configuration.
|
||||
.
|
||||
.It
|
||||
It installs the current channel
|
||||
@@ -114,7 +122,7 @@ output named
|
||||
\&.
|
||||
.
|
||||
.It Fl -file Ar path , Fl f Ar path
|
||||
Enable and build the NixOS system from the specified file. The file must
|
||||
Build the NixOS system from the specified file. The file must
|
||||
evaluate to an attribute set, and it must contain a valid NixOS configuration
|
||||
at attribute
|
||||
.Va attrPath Ns
|
||||
@@ -127,17 +135,19 @@ function in nixpkgs or importing and calling
|
||||
from nixpkgs. If specified without
|
||||
.Fl -attr
|
||||
option, builds the configuration from the top-level
|
||||
attribute of the file.
|
||||
attribute set of the file.
|
||||
.
|
||||
.It Fl -attr Ar attrPath , Fl A Ar attrPath
|
||||
Enable and build the NixOS system from nix file and use the specified attribute
|
||||
Build the NixOS system from nix file and use the specified attribute
|
||||
path from file specified by the
|
||||
.Fl -file
|
||||
option. If specified without
|
||||
.Fl -file
|
||||
option, uses
|
||||
.Va [root] Ns Pa /etc/nixos/default.nix Ns
|
||||
\&.
|
||||
option, it tires to find
|
||||
.Pa system.nix
|
||||
in
|
||||
.Va root Ns Pa /etc/nixos Ns
|
||||
, in current directory and iteratively in parent directories.
|
||||
.
|
||||
.It Fl -channel Ar channel
|
||||
If this option is provided, do not copy the current
|
||||
|
||||
@@ -19,7 +19,8 @@ system=
|
||||
verbosity=()
|
||||
attr=
|
||||
buildFile=
|
||||
buildingAttribute=1
|
||||
# keys: module, by-attrset, flake, system
|
||||
declare -A requestedBuildMethods
|
||||
|
||||
while [ "$#" -gt 0 ]; do
|
||||
i="$1"; shift 1
|
||||
@@ -38,10 +39,12 @@ while [ "$#" -gt 0 ]; do
|
||||
;;
|
||||
--system|--closure|--store-path)
|
||||
system="$1"; shift 1
|
||||
requestedBuildMethods["system"]=1
|
||||
;;
|
||||
--flake)
|
||||
flake="$1"
|
||||
flakeFlags=(--extra-experimental-features 'nix-command flakes')
|
||||
requestedBuildMethods["flake"]=1
|
||||
shift 1
|
||||
;;
|
||||
--file|-f)
|
||||
@@ -49,8 +52,14 @@ while [ "$#" -gt 0 ]; do
|
||||
log "$0: '$i' requires an argument"
|
||||
exit 1
|
||||
fi
|
||||
buildFile="$1"
|
||||
buildingAttribute=
|
||||
if [ -f "$1" ]; then
|
||||
buildFile="$1"
|
||||
elif [ -f "$1/system.nix" ]; then
|
||||
buildFile="${1%/}/system.nix"
|
||||
else
|
||||
buildFile="${1%/}/default.nix"
|
||||
fi
|
||||
requestedBuildMethods["by-attrset"]=1
|
||||
shift 1
|
||||
;;
|
||||
--attr|-A)
|
||||
@@ -59,7 +68,7 @@ while [ "$#" -gt 0 ]; do
|
||||
exit 1
|
||||
fi
|
||||
attr="$1"
|
||||
buildingAttribute=
|
||||
requestedBuildMethods["by-attrset"]=1
|
||||
shift 1
|
||||
;;
|
||||
--recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file)
|
||||
@@ -106,6 +115,20 @@ while [ "$#" -gt 0 ]; do
|
||||
esac
|
||||
done
|
||||
|
||||
# Finds a specific file in a directory or its parents
|
||||
findInParents() {
|
||||
local dir=$1
|
||||
local filename=$2
|
||||
while [[ ! -f "$dir/$filename" ]] && [[ "$dir" != / ]]; do
|
||||
dir=$(dirname "$dir")
|
||||
done
|
||||
if [[ -f "$dir/$filename" ]]; then
|
||||
echo "$dir/$filename"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
if ! test -e "$mountPoint"; then
|
||||
echo "mount point $mountPoint doesn't exist"
|
||||
exit 1
|
||||
@@ -122,30 +145,61 @@ while [[ "$checkPath" != "/" ]]; do
|
||||
checkPath="$(dirname "$checkPath")"
|
||||
done
|
||||
|
||||
# Verify that user is not trying to use attribute building and flake
|
||||
# at the same time
|
||||
if [[ -z $buildingAttribute && -n $flake ]]; then
|
||||
echo "$0: '--flake' cannot be used with '--file' or '--attr'"
|
||||
# If user requested multiple build methods, abort
|
||||
if [[ ${#requestedBuildMethods[@]} -gt 1 ]]; then
|
||||
echo "error: multiple build methods requested: ${!requestedBuildMethods[@]}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the path of the NixOS configuration file.
|
||||
if [[ -z $flake && -n $buildingAttribute ]]; then
|
||||
if [[ -z $NIXOS_CONFIG ]]; then
|
||||
NIXOS_CONFIG=$mountPoint/etc/nixos/configuration.nix
|
||||
findByAttrset() {
|
||||
# - From system.nix up from the current directory
|
||||
# - Hardcoded to $mountPoint/etc/nixos/system.nix
|
||||
# - Hardcoded to /etc/nixos/system.nix
|
||||
# (default.nix is also searched for backward compatibility)
|
||||
if resolvedBuildFile="$(findInParents "$PWD" system.nix)"; then
|
||||
buildFile=$resolvedBuildFile
|
||||
return 0
|
||||
elif resolvedBuildFile="$(findInParents "$PWD" default.nix)"; then
|
||||
buildFile=$resolvedBuildFile
|
||||
return 0
|
||||
elif [[ -f "/etc/nixos/system.nix" ]]; then
|
||||
buildFile="/etc/nixos/system.nix"
|
||||
return 0
|
||||
elif [[ -f "/etc/nixos/default.nix" ]]; then
|
||||
buildFile="/etc/nixos/default.nix"
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
if [[ ${NIXOS_CONFIG:0:1} != / ]]; then
|
||||
echo "$0: \$NIXOS_CONFIG is not an absolute path"
|
||||
findModule() {
|
||||
# - From NIXOS_CONFIG environment variable
|
||||
# - hardcoded to $mountPoint/etc/nixos/configuration.nix
|
||||
if [[ -n $NIXOS_CONFIG ]]; then
|
||||
return 0
|
||||
elif [[ -f "$mountPoint/etc/nixos/configuration.nix" ]]; then
|
||||
NIXOS_CONFIG="$mountPoint/etc/nixos/configuration.nix"
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
# If user didn't request a specific build method, try to find one
|
||||
if [[ ${#requestedBuildMethods[@]} -eq 0 ]]; then
|
||||
# Flakes cannot be resolved without knowing hostname
|
||||
if findByAttrset; then
|
||||
requestedBuildMethods["by-attrset"]=1
|
||||
elif findModule; then
|
||||
requestedBuildMethods["module"]=1
|
||||
else
|
||||
echo "error: no build method found"
|
||||
exit 1
|
||||
fi
|
||||
elif [[ -z $buildingAttribute ]]; then
|
||||
if [[ -z $buildFile ]]; then
|
||||
buildFile="$mountPoint/etc/nixos/default.nix"
|
||||
elif [[ -d $buildFile ]]; then
|
||||
buildFile="$buildFile/default.nix"
|
||||
fi
|
||||
elif [[ -n $flake ]]; then
|
||||
fi
|
||||
|
||||
# Find configuration files if not already found
|
||||
if [[ -n "${requestedBuildMethods["flake"]}" ]]; then
|
||||
if [[ $flake =~ ^(.*)\#([^\#\"]*)$ ]]; then
|
||||
flake="${BASH_REMATCH[1]}"
|
||||
flakeAttr="${BASH_REMATCH[2]}"
|
||||
@@ -156,19 +210,28 @@ elif [[ -n $flake ]]; then
|
||||
exit 1
|
||||
fi
|
||||
flakeAttr="nixosConfigurations.\"$flakeAttr\""
|
||||
elif [[ -n "${requestedBuildMethods["by-attrset"]}" && -z $buildFile ]]; then
|
||||
findByAttrset
|
||||
elif [[ -n "${requestedBuildMethods["module"]}" && -z $NIXOS_CONFIG ]]; then
|
||||
findModule
|
||||
|
||||
if [[ ${NIXOS_CONFIG:0:1} != / ]]; then
|
||||
echo "$0: \$NIXOS_CONFIG is not an absolute path"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Resolve the flake.
|
||||
if [[ -n $flake ]]; then
|
||||
if [[ -n "${requestedBuildMethods["flake"]}" ]]; then
|
||||
flake=$(nix "${flakeFlags[@]}" flake metadata --json "${extraBuildFlags[@]}" "${lockFlags[@]}" -- "$flake" | jq -r .url)
|
||||
fi
|
||||
|
||||
if [[ ! -e $NIXOS_CONFIG && -z $system && -z $flake && -n $buildingAttribute ]]; then
|
||||
if [[ ! -e $NIXOS_CONFIG && -n "${requestedBuildMethods["module"]}" ]]; then
|
||||
echo "configuration file $NIXOS_CONFIG doesn't exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -z $buildingAttribute && -e $buildFile && -z $system ]]; then
|
||||
if [[ ! -e $buildFile && -n "${requestedBuildMethods["by-attrset"]}" ]]; then
|
||||
echo "configuration file $buildFile doesn't exist"
|
||||
exit 1
|
||||
fi
|
||||
@@ -202,12 +265,12 @@ fi
|
||||
# Build the system configuration in the target filesystem.
|
||||
if [[ -z $system ]]; then
|
||||
outLink="$tmpdir/system"
|
||||
if [[ -z $flake && -n $buildingAttribute ]]; then
|
||||
if [[ -n "${requestedBuildMethods["module"]}" ]]; then
|
||||
echo "building the configuration in $NIXOS_CONFIG..."
|
||||
nix-build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
|
||||
--extra-substituters "$sub" \
|
||||
'<nixpkgs/nixos>' -A system -I "nixos-config=$NIXOS_CONFIG" "${verbosity[@]}"
|
||||
elif [[ -z $buildingAttribute ]]; then
|
||||
elif [[ -n "${requestedBuildMethods["by-attrset"]}" ]]; then
|
||||
if [[ -n $attr ]]; then
|
||||
echo "building the configuration in $buildFile and attribute $attr..."
|
||||
else
|
||||
@@ -216,7 +279,7 @@ if [[ -z $system ]]; then
|
||||
nix-build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
|
||||
--extra-substituters "$sub" \
|
||||
"$buildFile" -A "${attr:+$attr.}config.system.build.toplevel" "${verbosity[@]}"
|
||||
else
|
||||
else # [[ -n "${requestedBuildMethods["flake"]}" ]]
|
||||
echo "building the flake in $flake..."
|
||||
nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" \
|
||||
--store "$mountPoint" --extra-substituters "$sub" "${verbosity[@]}" \
|
||||
|
||||
@@ -28,11 +28,12 @@ _nixos-rebuild_ \[--verbose] [--quiet] [--max-jobs MAX_JOBS] [--cores CORES] [--
|
||||
# DESCRIPTION
|
||||
|
||||
This command updates the system so that it corresponds to the configuration
|
||||
specified in /etc/nixos/configuration.nix, /etc/nixos/flake.nix or the file and
|
||||
attribute specified by the *--file* and/or *--attr* options. Thus, every
|
||||
specified in /etc/nixos/configuration.nix, /etc/nixos/flake.nix,
|
||||
/etc/nixos/system.nix or the file and attribute specified by the *--file*,
|
||||
*--attr* or *--flake* options. Thus, every
|
||||
time you modify the configuration or any other NixOS module, you must run
|
||||
*nixos-rebuild* to make the changes take effect. It builds the new system in
|
||||
/nix/store, runs its activation script, and stop and (re)starts any system
|
||||
/nix/store, runs its activation script, stops and (re)starts any system
|
||||
services if needed. Please note that user services need to be started manually
|
||||
as they aren't detected by the activation script at the moment.
|
||||
|
||||
@@ -281,20 +282,21 @@ It must be one of the following:
|
||||
Implies *--sudo*.
|
||||
|
||||
*--file* _path_, *-f* _path_
|
||||
Enable and build the NixOS system from the specified file. The file must
|
||||
Build the NixOS system from the specified file. The file must
|
||||
evaluate to an attribute set, and it must contain a valid NixOS
|
||||
configuration at attribute _attrPath_. This is useful for building a
|
||||
NixOS system from a nix file that is not a flake or a NixOS
|
||||
configuration module. Attribute set a with valid NixOS configuration can
|
||||
be made using _nixos_ function in nixpkgs or importing and calling
|
||||
nixos/lib/eval-config.nix from nixpkgs. If specified without *--attr*
|
||||
option, builds the configuration from the top-level attribute of the
|
||||
option, builds the configuration from the top-level attribute set of the
|
||||
file.
|
||||
|
||||
*--attr* _attrPath_, *-A* _attrPath_
|
||||
Enable and build the NixOS system from nix file and use the specified
|
||||
attribute path from file specified by the *--file* option. If specified
|
||||
without *--file* option, uses _default.nix_ in current directory.
|
||||
Build the NixOS system from a nix file and use the specified
|
||||
attribute path from the file specified by the *--file* option.
|
||||
If specified without *--file* option, uses _system.nix_ in current directory,
|
||||
the system-wide _<nixos-system>_ file, or finally, /etc/nixos/system.nix.
|
||||
|
||||
*--flake* _flake-uri[#name]_, *-F* _flake-uri[#name]_
|
||||
Build the NixOS system from the specified flake. It defaults to the
|
||||
@@ -355,6 +357,11 @@ NIX_SUDOOPTS
|
||||
|
||||
# FILES
|
||||
|
||||
/etc/nixos/system.nix
|
||||
If this file exists, then *nixos-rebuild* will use it as if the
|
||||
*--file* option was given. This allows to build a self-contained
|
||||
system configuration, without requiring ‘nixos’ channel.
|
||||
|
||||
/etc/nixos/flake.nix
|
||||
If this file exists, then *nixos-rebuild* will use it as if the
|
||||
*--flake* option was given. This file may be a symlink to a
|
||||
|
||||
@@ -7,6 +7,7 @@ from enum import Enum
|
||||
from pathlib import Path
|
||||
from typing import Any, ClassVar, Self, TypedDict, override
|
||||
|
||||
from . import nix
|
||||
from .process import Remote, run_wrapper
|
||||
from .utils import Args
|
||||
|
||||
@@ -58,9 +59,31 @@ class BuildAttr:
|
||||
|
||||
@classmethod
|
||||
def from_arg(cls, attr: str | None, file: str | None) -> Self:
|
||||
if not (attr or file):
|
||||
return cls("<nixpkgs/nixos>", None)
|
||||
return cls(Path(file or "default.nix"), attr)
|
||||
# We use, in this order:
|
||||
# 1. the --file argument (can be a directory, implying /system.nix)
|
||||
# 2. system.nix in the cwd, but only if --attr is used
|
||||
# 3. the <nixos-system> Nix path entry
|
||||
# 4. /etc/nixos/system.nix
|
||||
# 5. the <nixpkgs/nixos> Nix path entry (uses configuration.nix)
|
||||
|
||||
if file:
|
||||
fpath = Path(file)
|
||||
if fpath.is_dir() and (fpath / "system.nix").exists():
|
||||
return cls(fpath / "system.nix", attr)
|
||||
# Backward compatibility
|
||||
elif fpath.is_dir() and (fpath / "default.nix").exists():
|
||||
return cls(fpath / "default.nix", attr)
|
||||
return cls(fpath, attr)
|
||||
elif attr and Path("system.nix").exists():
|
||||
return cls(Path("system.nix"), attr)
|
||||
elif attr and Path("default.nix").exists():
|
||||
# Backward compatibility
|
||||
return cls(Path("default.nix"), attr)
|
||||
elif nix.find_file("nixos-system"):
|
||||
return cls("<nixos-system>", attr)
|
||||
elif Path("/etc/nixos/system.nix").exists():
|
||||
return cls(Path("/etc/nixos/system.nix"), attr)
|
||||
return cls("<nixpkgs/nixos>", attr)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
|
||||
@@ -270,8 +270,8 @@ def find_file(file: str, nix_flags: Args | None = None) -> Path | None:
|
||||
"Find classic Nix file location."
|
||||
r = run_wrapper(
|
||||
["nix-instantiate", "--find-file", file, *dict_to_flags(nix_flags)],
|
||||
stdout=PIPE,
|
||||
check=False,
|
||||
capture_output=True,
|
||||
)
|
||||
if r.returncode:
|
||||
return None
|
||||
@@ -670,6 +670,8 @@ def set_profile(
|
||||
remote=target_host,
|
||||
sudo=sudo,
|
||||
)
|
||||
|
||||
|
||||
def switch_to_configuration(
|
||||
path_to_config: Path,
|
||||
action: Literal[Action.SWITCH, Action.BOOT, Action.TEST, Action.DRY_ACTIVATE],
|
||||
|
||||
@@ -187,12 +187,18 @@ def test_execute_nix_boot(mock_run: Mock, tmp_path: Path) -> None:
|
||||
|
||||
nr.execute(["nixos-rebuild", "boot", "--no-flake", "-vvv", "--no-reexec"])
|
||||
|
||||
assert mock_run.call_count == 7
|
||||
assert mock_run.call_count == 8
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
capture_output=True,
|
||||
check=False,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixpkgs", "-vvv"],
|
||||
stdout=PIPE,
|
||||
capture_output=True,
|
||||
check=False,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
@@ -210,7 +216,7 @@ def test_execute_nix_boot(mock_run: Mock, tmp_path: Path) -> None:
|
||||
call(
|
||||
[
|
||||
"nix-build",
|
||||
"<nixpkgs/nixos>",
|
||||
"<nixos-system>",
|
||||
"--attr",
|
||||
"config.system.build.toplevel",
|
||||
"--no-out-link",
|
||||
@@ -278,9 +284,15 @@ def test_execute_nix_build(mock_run: Mock, tmp_path: Path) -> None:
|
||||
]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 1
|
||||
assert mock_run.call_count == 2
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
check=False,
|
||||
capture_output=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix",
|
||||
@@ -308,6 +320,8 @@ def test_execute_nix_build_vm(mock_run: Mock, tmp_path: Path) -> None:
|
||||
def run_side_effect(args: list[str], **kwargs: Any) -> CompletedProcess[str]:
|
||||
if args[0] == "nix-build":
|
||||
return CompletedProcess([], 0, str(config_path))
|
||||
elif args[0] == "nix-instantiate":
|
||||
return CompletedProcess([], 1)
|
||||
else:
|
||||
return CompletedProcess([], 0)
|
||||
|
||||
@@ -326,9 +340,15 @@ def test_execute_nix_build_vm(mock_run: Mock, tmp_path: Path) -> None:
|
||||
]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 1
|
||||
assert mock_run.call_count == 2
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
check=False,
|
||||
capture_output=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix-build",
|
||||
@@ -343,7 +363,7 @@ def test_execute_nix_build_vm(mock_run: Mock, tmp_path: Path) -> None:
|
||||
check=True,
|
||||
stdout=PIPE,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
)
|
||||
),
|
||||
]
|
||||
)
|
||||
|
||||
@@ -363,6 +383,8 @@ def test_execute_nix_build_image_flake(mock_run: Mock, tmp_path: Path) -> None:
|
||||
)
|
||||
elif args[0] == "nix":
|
||||
return CompletedProcess([], 0, str(config_path))
|
||||
elif args[0] == "nix-instantiate":
|
||||
return CompletedProcess([], 1)
|
||||
else:
|
||||
return CompletedProcess([], 0)
|
||||
|
||||
@@ -379,9 +401,15 @@ def test_execute_nix_build_image_flake(mock_run: Mock, tmp_path: Path) -> None:
|
||||
]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 3
|
||||
assert mock_run.call_count == 4
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
check=False,
|
||||
capture_output=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix",
|
||||
@@ -440,6 +468,8 @@ def test_execute_nix_switch_flake(mock_run: Mock, tmp_path: Path) -> None:
|
||||
def run_side_effect(args: list[str], **kwargs: Any) -> CompletedProcess[str]:
|
||||
if args[0] == "nix":
|
||||
return CompletedProcess([], 0, str(config_path))
|
||||
elif args[0] == "nix-instantiate":
|
||||
return CompletedProcess([], 1)
|
||||
else:
|
||||
return CompletedProcess([], 0)
|
||||
|
||||
@@ -462,9 +492,15 @@ def test_execute_nix_switch_flake(mock_run: Mock, tmp_path: Path) -> None:
|
||||
]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 4
|
||||
assert mock_run.call_count == 5
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
check=False,
|
||||
capture_output=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix",
|
||||
@@ -572,9 +608,15 @@ def test_execute_nix_switch_build_target_host(
|
||||
]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 11
|
||||
assert mock_run.call_count == 12
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
check=False,
|
||||
capture_output=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix-instantiate",
|
||||
@@ -586,7 +628,7 @@ def test_execute_nix_switch_build_target_host(
|
||||
"nixpkgs=$HOME/.nix-defexpr/channels/pinned_nixpkgs",
|
||||
],
|
||||
check=False,
|
||||
stdout=PIPE,
|
||||
capture_output=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
@@ -777,6 +819,8 @@ def test_execute_nix_switch_flake_target_host(
|
||||
def run_side_effect(args: list[str], **kwargs: Any) -> CompletedProcess[str]:
|
||||
if args[0] == "nix":
|
||||
return CompletedProcess([], 0, str(config_path))
|
||||
elif args[0] == "nix-instantiate":
|
||||
return CompletedProcess([], 1)
|
||||
else:
|
||||
return CompletedProcess([], 0)
|
||||
|
||||
@@ -795,9 +839,15 @@ def test_execute_nix_switch_flake_target_host(
|
||||
]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 5
|
||||
assert mock_run.call_count == 6
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
check=False,
|
||||
capture_output=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix",
|
||||
@@ -896,6 +946,8 @@ def test_execute_nix_switch_flake_build_host(
|
||||
return CompletedProcess([], 0, str(config_path))
|
||||
elif args[0] == "ssh" and "nix" in args:
|
||||
return CompletedProcess([], 0, str(config_path))
|
||||
elif args[0] == "nix-instantiate":
|
||||
return CompletedProcess([], 1)
|
||||
else:
|
||||
return CompletedProcess([], 0)
|
||||
|
||||
@@ -913,9 +965,15 @@ def test_execute_nix_switch_flake_build_host(
|
||||
]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 7
|
||||
assert mock_run.call_count == 8
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
check=False,
|
||||
capture_output=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix",
|
||||
@@ -1001,7 +1059,9 @@ def test_execute_switch_rollback(mock_run: Mock, tmp_path: Path) -> None:
|
||||
(nixpkgs_path / ".git").mkdir(parents=True)
|
||||
|
||||
def run_side_effect(args: list[str], **kwargs: Any) -> CompletedProcess[str]:
|
||||
if args[0] == "nix-instantiate":
|
||||
if args[0] == "nix-instantiate" and "nixos-system" in args:
|
||||
return CompletedProcess([], 1)
|
||||
elif args[0] == "nix-instantiate":
|
||||
return CompletedProcess([], 0, str(nixpkgs_path))
|
||||
elif args[0] == "git":
|
||||
return CompletedProcess([], 0, "")
|
||||
@@ -1023,13 +1083,19 @@ def test_execute_switch_rollback(mock_run: Mock, tmp_path: Path) -> None:
|
||||
]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 5
|
||||
assert mock_run.call_count == 6
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
capture_output=True,
|
||||
check=False,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixpkgs"],
|
||||
check=False,
|
||||
stdout=PIPE,
|
||||
capture_output=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
@@ -1077,15 +1143,23 @@ def test_execute_build(mock_run: Mock, tmp_path: Path) -> None:
|
||||
config_path = tmp_path / "test"
|
||||
config_path.touch()
|
||||
mock_run.side_effect = [
|
||||
# nix-instantiate --find-file nixos-system
|
||||
CompletedProcess([], 1),
|
||||
# nixos_build_flake
|
||||
CompletedProcess([], 0, str(config_path)),
|
||||
]
|
||||
|
||||
nr.execute(["nixos-rebuild", "build", "--no-flake", "--no-reexec"])
|
||||
|
||||
assert mock_run.call_count == 1
|
||||
assert mock_run.call_count == 2
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
capture_output=True,
|
||||
check=False,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix-build",
|
||||
@@ -1096,7 +1170,7 @@ def test_execute_build(mock_run: Mock, tmp_path: Path) -> None:
|
||||
check=True,
|
||||
stdout=PIPE,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
)
|
||||
),
|
||||
]
|
||||
)
|
||||
|
||||
@@ -1108,6 +1182,8 @@ def test_execute_build_dry_run_build_and_target_remote(
|
||||
config_path = tmp_path / "test"
|
||||
config_path.touch()
|
||||
mock_run.side_effect = [
|
||||
# nix-instantiate --find-file nixos-system
|
||||
CompletedProcess([], 1),
|
||||
CompletedProcess([], 0, str(config_path)),
|
||||
CompletedProcess([], 0),
|
||||
CompletedProcess([], 0, str(config_path)),
|
||||
@@ -1126,9 +1202,15 @@ def test_execute_build_dry_run_build_and_target_remote(
|
||||
]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 3
|
||||
assert mock_run.call_count == 4
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
capture_output=True,
|
||||
check=False,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix",
|
||||
@@ -1181,6 +1263,8 @@ def test_execute_test_flake(mock_run: Mock, tmp_path: Path) -> None:
|
||||
def run_side_effect(args: list[str], **kwargs: Any) -> CompletedProcess[str]:
|
||||
if args[0] == "nix":
|
||||
return CompletedProcess([], 0, str(config_path))
|
||||
elif args[0] == "nix-instantiate":
|
||||
return CompletedProcess([], 1)
|
||||
elif args[0] == "test":
|
||||
return CompletedProcess([], 1)
|
||||
else:
|
||||
@@ -1192,9 +1276,15 @@ def test_execute_test_flake(mock_run: Mock, tmp_path: Path) -> None:
|
||||
["nixos-rebuild", "test", "--flake", "github:user/repo#hostname", "--no-reexec"]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 3
|
||||
assert mock_run.call_count == 4
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
capture_output=True,
|
||||
check=False,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix",
|
||||
@@ -1242,6 +1332,8 @@ def test_execute_test_rollback(
|
||||
2084 2024-11-07 23:54:17 (current)
|
||||
"""),
|
||||
)
|
||||
elif args[0] == "nix-instantiate" and "nixos-system" in args:
|
||||
return CompletedProcess([], 1)
|
||||
elif args[0] == "test":
|
||||
return CompletedProcess([], 1)
|
||||
else:
|
||||
@@ -1253,7 +1345,7 @@ def test_execute_test_rollback(
|
||||
["nixos-rebuild", "test", "--rollback", "--profile-name", "foo", "--no-reexec"]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 3
|
||||
assert mock_run.call_count == 4
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
@@ -1296,7 +1388,7 @@ def test_execute_switch_store_path(mock_run: Mock, tmp_path: Path) -> None:
|
||||
config_path = tmp_path / "test-system"
|
||||
config_path.mkdir()
|
||||
|
||||
mock_run.return_value = CompletedProcess([], 0)
|
||||
mock_run.return_value = CompletedProcess([], 0, stdout="")
|
||||
|
||||
nr.execute(
|
||||
[
|
||||
@@ -1309,9 +1401,15 @@ def test_execute_switch_store_path(mock_run: Mock, tmp_path: Path) -> None:
|
||||
)
|
||||
|
||||
# --store-path skips build and write_version_suffix, so only activation calls
|
||||
assert mock_run.call_count == 3
|
||||
assert mock_run.call_count == 4
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["nix-instantiate", "--find-file", "nixos-system"],
|
||||
capture_output=True,
|
||||
check=False,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"nix-env",
|
||||
@@ -1359,7 +1457,7 @@ def test_execute_switch_store_path_target_host(
|
||||
config_path = tmp_path / "test-system"
|
||||
config_path.mkdir()
|
||||
|
||||
mock_run.return_value = CompletedProcess([], 0)
|
||||
mock_run.return_value = CompletedProcess([], 0, stdout="")
|
||||
|
||||
nr.execute(
|
||||
[
|
||||
@@ -1375,7 +1473,7 @@ def test_execute_switch_store_path_target_host(
|
||||
)
|
||||
|
||||
# --store-path skips build and write_version_suffix, so only copy/activation calls
|
||||
assert mock_run.call_count == 5
|
||||
assert mock_run.call_count == 6
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
|
||||
@@ -5,19 +5,57 @@ from unittest.mock import Mock, patch
|
||||
from pytest import MonkeyPatch
|
||||
|
||||
import nixos_rebuild.models as m
|
||||
import nixos_rebuild.nix as n
|
||||
|
||||
from .helpers import get_qualified_name
|
||||
|
||||
|
||||
def test_build_attr_from_arg() -> None:
|
||||
assert m.BuildAttr.from_arg(None, None) == m.BuildAttr("<nixpkgs/nixos>", None)
|
||||
assert m.BuildAttr.from_arg("attr", None) == m.BuildAttr(
|
||||
Path("default.nix"), "attr"
|
||||
)
|
||||
def test_build_attr_from_arg(tmp_path: Path) -> None:
|
||||
assert m.BuildAttr.from_arg("attr", "file.nix") == m.BuildAttr(
|
||||
Path("file.nix"), "attr"
|
||||
)
|
||||
assert m.BuildAttr.from_arg(None, "file.nix") == m.BuildAttr(Path("file.nix"), None)
|
||||
|
||||
with patch(
|
||||
# system.nix exists
|
||||
"pathlib.Path.exists",
|
||||
autospec=True,
|
||||
side_effect=[True],
|
||||
):
|
||||
assert m.BuildAttr.from_arg("attr", None) == m.BuildAttr(
|
||||
Path("system.nix"), "attr"
|
||||
)
|
||||
|
||||
with patch(
|
||||
# <nixos-system> is defined
|
||||
get_qualified_name(n.find_file),
|
||||
autospec=True,
|
||||
return_value=Path("/some/file.nix"),
|
||||
):
|
||||
assert m.BuildAttr.from_arg("attr", None) == m.BuildAttr(
|
||||
"<nixos-system>", "attr"
|
||||
)
|
||||
|
||||
with (
|
||||
# <nixos-system> not defined
|
||||
patch(get_qualified_name(n.find_file), autospec=True, return_value=None),
|
||||
# system.nix does not exist, but /etc/nixos/system.nix does
|
||||
patch(
|
||||
"pathlib.Path.exists",
|
||||
autospec=True,
|
||||
side_effect=[True],
|
||||
),
|
||||
):
|
||||
assert m.BuildAttr.from_arg(None, None) == m.BuildAttr(
|
||||
Path("/etc/nixos/system.nix"), None
|
||||
)
|
||||
|
||||
with patch(
|
||||
# <nixos-system> not defined
|
||||
get_qualified_name(n.find_file),
|
||||
autospec=True,
|
||||
return_value=None,
|
||||
):
|
||||
assert m.BuildAttr.from_arg(None, None) == m.BuildAttr("<nixpkgs/nixos>", None)
|
||||
|
||||
|
||||
def test_build_attr_to_attr() -> None:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
from pathlib import Path
|
||||
from subprocess import CompletedProcess
|
||||
from unittest.mock import ANY, Mock, call, patch
|
||||
|
||||
from pytest import MonkeyPatch
|
||||
@@ -12,8 +13,13 @@ from .helpers import get_qualified_name
|
||||
|
||||
@patch.dict(os.environ, {}, clear=True)
|
||||
@patch("os.execve", autospec=True)
|
||||
@patch(get_qualified_name(n.nix.run_wrapper, n.nix), autospec=True)
|
||||
@patch(get_qualified_name(s.nix.build), autospec=True)
|
||||
def test_reexec(mock_build: Mock, mock_execve: Mock, monkeypatch: MonkeyPatch) -> None:
|
||||
def test_reexec(
|
||||
mock_build: Mock, mock_run: Mock, mock_execve: Mock, monkeypatch: MonkeyPatch
|
||||
) -> None:
|
||||
mock_run.return_value = CompletedProcess([], 0, stdout="")
|
||||
|
||||
monkeypatch.setattr(s, "EXECUTABLE", "nixos-rebuild-ng")
|
||||
argv = ["/path/bin/nixos-rebuild-ng", "switch", "--no-flake"]
|
||||
args, _ = n.parse_args(argv)
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "oh-my-posh";
|
||||
version = "29.1.0";
|
||||
version = "29.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jandedobbeleer";
|
||||
repo = "oh-my-posh";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-gbb/ZVd3oNABw8Hjeht//bPdLVQnWtEtAkvYudGqMTs=";
|
||||
hash = "sha256-U+zqRCRJrbjmIVJqfYoQ0qCt4EJCaHswIlsmJwNB7M4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-75buRo7DNq4gzY+66NEVSI1XOJdgckqzHoDwraUmEAw=";
|
||||
vendorHash = "sha256-0pxVRDXdvImA2B3yonnl01Y1UuEKNb6UCVH4enohu2I=";
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/src";
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
writableTmpDirAsHomeHook,
|
||||
testers,
|
||||
}:
|
||||
|
||||
@@ -45,9 +46,7 @@ buildGoModule (finalAttrs: {
|
||||
"static_build"
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export HOME="$(mktemp -d)"
|
||||
'';
|
||||
nativeCheckInputs = [ writableTmpDirAsHomeHook ];
|
||||
|
||||
checkFlags =
|
||||
let
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "phpstan";
|
||||
version = "2.1.41";
|
||||
version = "2.1.43";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "phpstan";
|
||||
repo = "phpstan";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-qmexB+JpL9mpWVmTeXmffM+oChdNCRc6be1O+WJcML0=";
|
||||
hash = "sha256-HIRM73A+pXWUV0gdcGPI4vjEKAYntNUAVqg4iEKx9To=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
}:
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "pi-coding-agent";
|
||||
version = "0.58.3";
|
||||
version = "0.62.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "badlogic";
|
||||
repo = "pi-mono";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-3GrE60n+EY5G50iRrbH7R74e+LQIy1M9+huZTp0ZTns=";
|
||||
hash = "sha256-nUK7R9kPkULg8eP9lwyqUpzPGRJeSRv3mDgBkHacf8I=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-EC5fXZTtBTRkYXLg5p4xWE/ghi2iw30XwnSqJs/PT8I=";
|
||||
npmDepsHash = "sha256-mzFtHU3xGFZxIaQ1XTkYLmQ4UCcn9HhPVfNJ0DHi7Ps=";
|
||||
|
||||
npmWorkspace = "packages/coding-agent";
|
||||
|
||||
|
||||
@@ -138,11 +138,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
+ lib.optionalString nixosTestRunner "-for-vm-tests"
|
||||
+ lib.optionalString toolsOnly "-utils"
|
||||
+ lib.optionalString userOnly "-user";
|
||||
version = "10.2.1";
|
||||
version = "10.2.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.qemu.org/qemu-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-o3F0d9jiyE1jC//7wg9s0yk+tFqh5trG0MwnaJmRyeE=";
|
||||
hash = "sha256-eEspb/KcFBeqcjI6vLLS6pq5dxck9Xfc14XDsE8h4XY=";
|
||||
};
|
||||
|
||||
depsBuildBuild = [
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "radicle-job";
|
||||
version = "0.5.1";
|
||||
version = "0.5.2";
|
||||
|
||||
src = fetchFromRadicle {
|
||||
seed = "iris.radicle.xyz";
|
||||
seed = "seed.radicle.xyz";
|
||||
repo = "z2UcCU1LgMshWvXj6hXSDDrwB8q8M";
|
||||
tag = "releases/v${finalAttrs.version}";
|
||||
hash = "sha256-1gvOpdgnug46PUD+4LZF8u73L3XpQGMGZyQCvnYvkgE=";
|
||||
hash = "sha256-kFlSig0eiUdw6GHwacNHtuGkuW14CkHkc3okN2ZeTns=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-nRif/ab+7r9ODuZVXOnYbEDHiipFg91XjezS1OBYYb4=";
|
||||
cargoHash = "sha256-kZg2X9GXyqr1kj82Pxq6+tjhIXAhOk0vMeU0owSi7gU=";
|
||||
|
||||
nativeCheckInputs = [
|
||||
radicle-node
|
||||
@@ -32,8 +32,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
meta = {
|
||||
description = "Create, update, and query Radicle Job Collaborative Objects";
|
||||
homepage = "https://app.radicle.xyz/nodes/iris.radicle.xyz/rad:z2UcCU1LgMshWvXj6hXSDDrwB8q8M";
|
||||
changelog = "https://app.radicle.xyz/nodes/iris.radicle.xyz/rad:z2UcCU1LgMshWvXj6hXSDDrwB8q8M/tree/CHANGELOG.md";
|
||||
homepage = "https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:z2UcCU1LgMshWvXj6hXSDDrwB8q8M";
|
||||
changelog = "https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:z2UcCU1LgMshWvXj6hXSDDrwB8q8M/tree/CHANGELOG.md";
|
||||
license = with lib.licenses; [
|
||||
mit
|
||||
asl20
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "repomix";
|
||||
version = "1.12.0";
|
||||
version = "1.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yamadashy";
|
||||
repo = "repomix";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-ymceZ6HUtHfsJrUc1g2OprO5cNjCzL1QYn4QbZ2rFo4=";
|
||||
hash = "sha256-rHatX8bFfUm3wxjH8TWFnGp/1OfCN6g+ZV9ZoCjCF8U=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-DJH7ogNZNqqnA1M9n0v6Oj5FcSHaOifAyCVjibN/2fU=";
|
||||
npmDepsHash = "sha256-EXpjSOMgESM5oTIdDXQ1CX9GrafFbvolqRcoZPLVG+E=";
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
@@ -16,18 +16,18 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "ruff";
|
||||
version = "0.15.6";
|
||||
version = "0.15.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "astral-sh";
|
||||
repo = "ruff";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-a8A9FdfrGCyg6TdunsZcXqAzeXb9pCWO/02f9Nl5juU=";
|
||||
hash = "sha256-aDRFNJKvxuHPYaZtoM+93DxJGsTPMLKGBH5QhIiTh0Y=";
|
||||
};
|
||||
|
||||
cargoBuildFlags = [ "--package=ruff" ];
|
||||
|
||||
cargoHash = "sha256-TD5FLdi4YJwDzJpCctNKYxUNj/VgMnB/OBp3exk3cZw=";
|
||||
cargoHash = "sha256-m3VkHXhjemXVOFFVSUOVz0xD2Rc2pMsP+dnMYQD29uI=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
||||
@@ -26,14 +26,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "s7";
|
||||
version = "11.7-unstable-2026-03-14";
|
||||
version = "11.7-unstable-2026-03-24";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "cm-gitlab.stanford.edu";
|
||||
owner = "bil";
|
||||
repo = "s7";
|
||||
rev = "18e645b614e053482a8721a0c84c4621586a1676";
|
||||
hash = "sha256-8FGb12BSKZkx9oKg2D2udP7j4V9ZLAhVtWICIDSp7v0=";
|
||||
rev = "cd2667b03715dde80c0188ee117d1853b8c2a05f";
|
||||
hash = "sha256-1+b8yM8JkHRn8b/BsETf5sLWGBN0QSdzQ31NH6Hni0U=";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
blueprint-compiler,
|
||||
meson,
|
||||
ninja,
|
||||
@@ -17,7 +18,7 @@
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "slobdict";
|
||||
version = "1.0.0";
|
||||
version = "1.2.0";
|
||||
|
||||
pyproject = false; # built with meson
|
||||
|
||||
@@ -25,11 +26,12 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
||||
owner = "MuntashirAkon";
|
||||
repo = "SlobDict";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-V6EmEpxUMZUN9lHSNs4nZBZI2QNxUUWWODukm01lYxY=";
|
||||
hash = "sha256-4u0VqaPDpyflWkN119IOVqKxpsskou3ou1dqpuRSaHI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
blueprint-compiler
|
||||
glib
|
||||
gobject-introspection
|
||||
meson
|
||||
ninja
|
||||
@@ -62,13 +64,28 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pymorphy3
|
||||
# python-romkan-ng not packaged
|
||||
xxhash
|
||||
|
||||
# Deps for cli mode
|
||||
pygments
|
||||
rich
|
||||
premailer
|
||||
cssutils
|
||||
markdownify
|
||||
];
|
||||
|
||||
# Prevent double wrapping, let the Python wrapper use the args in preFixup.
|
||||
dontWrapGApps = true;
|
||||
|
||||
postBuild = ''
|
||||
glib-compile-schemas --strict ../gnome-extension/slobdict@muntashir.dev/schemas
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
chmod +x $out/bin/slobdict
|
||||
|
||||
mkdir -p $out/share/gnome-shell/extensions/slobdict@muntashir.dev
|
||||
cp -r ../gnome-extension/slobdict@muntashir.dev/schemas $out/share/gnome-shell/extensions/slobdict@muntashir.dev
|
||||
cp ../gnome-extension/slobdict@muntashir.dev/{extension.js,metadata.json} $out/share/gnome-shell/extensions/slobdict@muntashir.dev
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
@@ -77,6 +94,11 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
passthru = {
|
||||
extensionPortalSlug = "slobdict";
|
||||
extensionUuid = "slobdict@muntashir.dev";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/MuntashirAkon/SlobDict";
|
||||
description = "Modern, lightweight GTK 4 dictionary app";
|
||||
|
||||
@@ -87,7 +87,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
mainProgram = "sqlitebrowser";
|
||||
homepage = "https://sqlitebrowser.org/";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ peterhoeg ];
|
||||
maintainers = with lib.maintainers; [
|
||||
peterhoeg
|
||||
savtrip
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "temporal";
|
||||
version = "1.30.1";
|
||||
version = "1.30.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "temporalio";
|
||||
repo = "temporal";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-pmgQkvWjwwaErKnj/nn73qTeYqIMsHi0lyrY6c1+o/0=";
|
||||
hash = "sha256-Rk1H07UqLr/GLIT4VW4eC3SezYPAZPxlC4TTpZm/F9Q=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-pZrMwud23xq8uA+lDO6Va8iH+AUsoBLestqsB2yRBFw=";
|
||||
vendorHash = "sha256-YJbovD2woypOiYfn9axO8lshIg/6gO9Sa8a3DIt8QFg=";
|
||||
|
||||
overrideModAttrs = old: {
|
||||
# netdb.go allows /etc/protocols and /etc/services to not exist and happily proceeds, but it panic()s if they exist but return permission denied.
|
||||
|
||||
@@ -97,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# Fix MAKEFLAGS order in vendored tikv-jemalloc-sys
|
||||
# TODO: remove when tikv-jemalloc-sys 0.6.2+ is released
|
||||
# equivalent to https://github.com/tikv/jemallocator/pull/152
|
||||
substituteInPlace $cargoDepsCopy/tikv-jemalloc-sys-*/build.rs \
|
||||
substituteInPlace $cargoDepsCopy/*/tikv-jemalloc-sys-*/build.rs \
|
||||
--replace-fail 'format!("{orig_makeflags} {makeflags}")' \
|
||||
'format!("{makeflags} {orig_makeflags}")'
|
||||
'';
|
||||
|
||||
@@ -9,21 +9,21 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "unifont";
|
||||
version = "16.0.03";
|
||||
version = "17.0.04";
|
||||
|
||||
otf = fetchurl {
|
||||
url = "mirror://gnu/unifont/unifont-${finalAttrs.version}/unifont-${finalAttrs.version}.otf";
|
||||
hash = "sha256-9TnyHLrjkWoJP4GdNsR3EtVwGshtrO2KaOzPe9nTPAw=";
|
||||
hash = "sha256-0fZkqXU7nGt/81cSh0njK10+7pDHwDYYNj+r1Do5tbc=";
|
||||
};
|
||||
|
||||
pcf = fetchurl {
|
||||
url = "mirror://gnu/unifont/unifont-${finalAttrs.version}/unifont-${finalAttrs.version}.pcf.gz";
|
||||
hash = "sha256-ysKULOBusx4n7NfYRAzEoRfqaTNn5JtjigTVmb7wozY=";
|
||||
hash = "sha256-21hNQMglGdfPrx8VWP3lMT+/Guga7uoKbm72MqXjxJY=";
|
||||
};
|
||||
|
||||
bdf = fetchurl {
|
||||
url = "mirror://gnu/unifont/unifont-${finalAttrs.version}/unifont-${finalAttrs.version}.bdf.gz";
|
||||
hash = "sha256-fz0WZKwcBR9ZoaE2DdZU942CwkamiMNC6GPOx/a6ldQ=";
|
||||
hash = "sha256-mi3kgmOIJCdxEhx/4A5BJSPDGDGLjuOOa+bNRU5+yAI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -62,6 +62,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
description = "Unicode font for Base Multilingual Plane";
|
||||
homepage = "https://unifoundry.com/unifont/";
|
||||
@@ -71,7 +73,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
gpl2Plus
|
||||
fontException
|
||||
];
|
||||
maintainers = [ lib.maintainers.rycee ];
|
||||
maintainers = with lib.maintainers; [
|
||||
rycee
|
||||
qweered
|
||||
];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
})
|
||||
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl common-updater-scripts
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
latest=$(curl -sL "https://ftp.gnu.org/gnu/unifont/" | grep -oP 'unifont-\K\d+\.\d+\.\d+' | sort -V | tail -1)
|
||||
|
||||
update-source-version unifont "$latest" --ignore-same-version --source-key=otf
|
||||
update-source-version unifont "$latest" --ignore-same-version --source-key=pcf
|
||||
update-source-version unifont "$latest" --ignore-same-version --source-key=bdf
|
||||
@@ -18,16 +18,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "uv";
|
||||
version = "0.11.0";
|
||||
version = "0.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "astral-sh";
|
||||
repo = "uv";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-brKoPk7Wr5QKgJmcUy54zocahbtI1nSnire4o2HAUOU=";
|
||||
hash = "sha256-KZESEU54kD68JqcJwsF5FLvNtgRfV6CHJ7OnSUr2M3s=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-/wWYnsffHWhpDVD3VIybKImmFye5FxeU5h1qXuqNbpc=";
|
||||
cargoHash = "sha256-Qf+u7GdFgTH3Qi0c0MySv54IUeh1Dtf0EMQ5/Ty65G8=";
|
||||
|
||||
buildInputs = [
|
||||
rust-jemalloc-sys
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "zoraxy";
|
||||
version = "3.2.5r2";
|
||||
version = "3.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tobychui";
|
||||
repo = "zoraxy";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-O7Rzx62O0h3kK6+lMag+5totijJoobOKi8DNWT9sDjg=";
|
||||
hash = "sha256-NhjT1z/O2KJtlF/LkGWgxhm2/i83mJUZeBHDiZke0FE=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/src";
|
||||
|
||||
vendorHash = "sha256-Bl3FI8lodSV5kzHvM8GHbQsep0W8s2BG8IbGf2AahZc=";
|
||||
vendorHash = "sha256-HaQP6ZARSHwEnW/G95t5NHdM8/EcXEfN2Q1wPVRWIzQ=";
|
||||
|
||||
checkFlags =
|
||||
let
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "b2sdk";
|
||||
version = "2.10.3";
|
||||
version = "2.10.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Backblaze";
|
||||
repo = "b2-sdk-python";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Gu4MRfjNWuwEFn13U49dEndWA/HNPwrQdX9VEz1ny+M=";
|
||||
hash = "sha256-hgTQRVOgQmCA5RuwKATAev8y+S5R6xXnpmgprJ+bUYY=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -41,14 +41,14 @@
|
||||
}:
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "langgraph";
|
||||
version = "1.1.2";
|
||||
version = "1.1.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "langchain-ai";
|
||||
repo = "langgraph";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Dbzyp9Tl6VaLoWDnLk5UCiYnWFcZM3kljv8EdB1IEAI=";
|
||||
hash = "sha256-J8QqbzJe5tW11Nuio2uFAJk2EZIL1LNGIbJn7TZvlaA=";
|
||||
};
|
||||
|
||||
postgresqlTestSetupPost = ''
|
||||
|
||||
@@ -22,14 +22,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "lastversion";
|
||||
version = "3.6.9";
|
||||
version = "3.6.10";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dvershinin";
|
||||
repo = "lastversion";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-NyNa9x2sJqx65sntchWnpnyJiluDIUxxGMRIimH4SIs=";
|
||||
hash = "sha256-nWhIV8aDug3B/lSwjzIqhvszJILR5w9qM2tJ6li9dJs=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
lxml,
|
||||
cssselect,
|
||||
cssutils,
|
||||
requests,
|
||||
cachetools,
|
||||
lib,
|
||||
}:
|
||||
|
||||
buildPythonPackage {
|
||||
pname = "premailer";
|
||||
version = "3.10.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "peterbe";
|
||||
repo = "premailer";
|
||||
rev = "f4ded0b9701c4985e7ff5c5beda83324c264ea62";
|
||||
hash = "sha256-8ALdpR3aIDg0wP+JYCPY1f7mEJgdJm8xlLlgGpa0Sa4=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
lxml
|
||||
cssselect
|
||||
cssutils
|
||||
requests
|
||||
cachetools
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "premailer" ];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/peterbe/premailer/blob/master/CHANGES.rst";
|
||||
description = "Turns CSS blocks into style attributes";
|
||||
homepage = "https://github.com/peterbe/premailer";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = [ lib.maintainers.linsui ];
|
||||
};
|
||||
}
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pysrdaligateway";
|
||||
version = "0.20.3";
|
||||
version = "0.20.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "maginawin";
|
||||
repo = "PySrDaliGateway";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-D98hT87xcLxwOKHgd0M4wIdQIrojxYhtEFlw3hkE2FI=";
|
||||
hash = "sha256-VHNrlvtSDG66beeKule8OqJ03itmdnu+d2qSqSqd6SE=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -46,14 +46,14 @@ let
|
||||
in
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "rembg";
|
||||
version = "2.0.73";
|
||||
version = "2.0.74";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "danielgatis";
|
||||
repo = "rembg";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-J7xE/GAcebw9URhVagbWLNfnFxkiMbfq1nP6Kkk9754=";
|
||||
hash = "sha256-bCwteS0OJThIAIXxWjzol33p+EH1Gy+CBjKNDwcH7p8=";
|
||||
};
|
||||
|
||||
env.POETRY_DYNAMIC_VERSIONING_BYPASS = finalAttrs.version;
|
||||
|
||||
@@ -29,7 +29,7 @@ buildPythonPackage {
|
||||
# to avoid rebuilding the ruff binary for every active python package set.
|
||||
+ ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail 'requires = ["maturin>=1.9,<2.0"]' 'requires = ["hatchling"]' \
|
||||
--replace-fail 'requires = ["maturin>=1.9.3,<2.0"]' 'requires = ["hatchling"]' \
|
||||
--replace-fail 'build-backend = "maturin"' 'build-backend = "hatchling.build"'
|
||||
|
||||
cat >> pyproject.toml <<EOF
|
||||
|
||||
@@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
[ libcap ] ++ lib.optional (!stdenv.hostPlatform.isMusl) libidn2
|
||||
)
|
||||
}"
|
||||
include <local/bin.ping>
|
||||
include if exists <local/bin.ping>
|
||||
capability net_raw,
|
||||
network inet raw,
|
||||
network inet6 raw,
|
||||
|
||||
@@ -438,6 +438,9 @@ lib.makeOverridable (
|
||||
# Keep root and arch-specific Makefiles
|
||||
chmod u-w Makefile arch/*/Makefile*
|
||||
|
||||
# Keep rust Makefile
|
||||
${lib.optionalString withRust "chmod u-w rust/Makefile"}
|
||||
|
||||
# Keep whole scripts dir
|
||||
chmod u-w -R scripts
|
||||
|
||||
|
||||
@@ -685,6 +685,8 @@ let
|
||||
FANOTIFY = yes;
|
||||
FANOTIFY_ACCESS_PERMISSIONS = yes;
|
||||
|
||||
FS_DAX = yes;
|
||||
|
||||
TMPFS = yes;
|
||||
TMPFS_POSIX_ACL = yes;
|
||||
FS_ENCRYPTION = yes;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"testing": {
|
||||
"version": "7.0-rc4",
|
||||
"hash": "sha256:1954j1rlzv3qqmk8a96gvmcwsji5rjdzdm7yhjfs3jyrdahz37pz",
|
||||
"version": "7.0-rc5",
|
||||
"hash": "sha256:00q4scz3kyrbd8v23pjdzgmaz9scmxg10cqlfwrrd7xj0hxp3pah",
|
||||
"lts": false
|
||||
},
|
||||
"6.1": {
|
||||
"version": "6.1.166",
|
||||
"hash": "sha256:0jcl12gjlfdf9pwqg1m84rzwnrj3grxxgk5blrq8zlaq45sgr3c1",
|
||||
"version": "6.1.167",
|
||||
"hash": "sha256:1jwqwp2fg3wdsh9w663rbnbv1rvsvksv1pj4bzns8swp0wy0a618",
|
||||
"lts": true
|
||||
},
|
||||
"5.15": {
|
||||
@@ -20,23 +20,23 @@
|
||||
"lts": true
|
||||
},
|
||||
"6.6": {
|
||||
"version": "6.6.129",
|
||||
"hash": "sha256:12j42awg44w97zq8fzifpm300jm9q9ya7qkpn7xbnkr2480qz86a",
|
||||
"version": "6.6.130",
|
||||
"hash": "sha256:139480lyi3if8pd2j3yld5a01lk7113kbcn2kxpzyk29p5kslq14",
|
||||
"lts": true
|
||||
},
|
||||
"6.12": {
|
||||
"version": "6.12.77",
|
||||
"hash": "sha256:0rzz5hdixa5xmr99gja3xr9nxgpmrpxyg4llmvkl3vyawpmkd21m",
|
||||
"version": "6.12.78",
|
||||
"hash": "sha256:0gdgykr4nqk1dzb5ms2m07saxx58zvacpfv8ynhfrv7snjs835vi",
|
||||
"lts": true
|
||||
},
|
||||
"6.18": {
|
||||
"version": "6.18.19",
|
||||
"hash": "sha256:0309xd8ifsy9pa19s8qnsyxkmcqq4z3p16jckjnnhz6h3hkpibza",
|
||||
"version": "6.18.20",
|
||||
"hash": "sha256:0lrm76rdlr92kjq3g410qdff9v49mpdf400lmsh7hq74k2ymlyl3",
|
||||
"lts": true
|
||||
},
|
||||
"6.19": {
|
||||
"version": "6.19.9",
|
||||
"hash": "sha256:1gsmklhqpx5k9wca3gr8j439q8khr9byy7ivxqyr9qqjmyinhq61",
|
||||
"version": "6.19.10",
|
||||
"hash": "sha256:072s76238rnf87yhdy15nbxfyq7x3ch7p2v14dq4pq551qd48va6",
|
||||
"lts": false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
generic: {
|
||||
v74 = generic {
|
||||
version = "7.4.7";
|
||||
hash = "sha256-FsOZQv6yg9euoX6Ccfy0/9usBpkVYVjcs3IZZ095m9g=";
|
||||
version = "7.4.8";
|
||||
hash = "sha256-qbRStsV00igpziBpOhqpyriL8PWFt6oqajrUyxTdOxw=";
|
||||
};
|
||||
v70 = generic {
|
||||
version = "7.0.23";
|
||||
hash = "sha256-Q+pfyx5dsl50vcg+qJNtebgJO2FK9OiJQXSFvHTwYeI=";
|
||||
version = "7.0.24";
|
||||
hash = "sha256-b4rpkLmyV2fk//vLXMfEVdZ04qOS3CFHhIil0cDn1Zc=";
|
||||
};
|
||||
v60 = generic {
|
||||
version = "6.0.44";
|
||||
hash = "sha256-TveW2ofMnm3PXUPwoklTPe48tI6dED/dAQKjwO2P4F4=";
|
||||
version = "6.0.45";
|
||||
hash = "sha256-duB2w2xDH9ZHEDh9iZ5Fr6RH0dI2lMCVvySA5dmSZcU=";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2520,6 +2520,32 @@ with pkgs;
|
||||
withXorg = false;
|
||||
};
|
||||
|
||||
grub2 = callPackage ../tools/misc/grub/default.nix { };
|
||||
|
||||
grub2_efi = grub2.override {
|
||||
efiSupport = true;
|
||||
};
|
||||
|
||||
grub2_ieee1275 = grub2.override {
|
||||
ieee1275Support = true;
|
||||
};
|
||||
|
||||
grub2_light = grub2.override {
|
||||
zfsSupport = false;
|
||||
};
|
||||
|
||||
grub2_xen = grub2.override {
|
||||
xenSupport = true;
|
||||
};
|
||||
|
||||
grub2_xen_pvh = grub2.override {
|
||||
xenPvhSupport = true;
|
||||
};
|
||||
|
||||
grub2_pvgrub_image = grub2_pvhgrub_image.override {
|
||||
grubPlatform = "xen";
|
||||
};
|
||||
|
||||
gruut = with python3.pkgs; toPythonApplication gruut;
|
||||
|
||||
gruut-ipa = with python3.pkgs; toPythonApplication gruut-ipa;
|
||||
|
||||
@@ -12787,6 +12787,8 @@ self: super: with self; {
|
||||
|
||||
preggy = callPackage ../development/python-modules/preggy { };
|
||||
|
||||
premailer = callPackage ../development/python-modules/premailer { };
|
||||
|
||||
preprocess-cancellation = callPackage ../development/python-modules/preprocess-cancellation { };
|
||||
|
||||
presenterm-export = callPackage ../development/python-modules/presenterm-export { };
|
||||
|
||||
Reference in New Issue
Block a user