Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-11-30 06:07:02 +00:00
committed by GitHub
57 changed files with 355 additions and 3098 deletions
@@ -95,93 +95,6 @@ The node_modules abstraction can be also used to build some web framework fronte
For an example of this see how [plausible](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/web-apps/plausible/default.nix) is built. `mkYarnModules` to make the derivation containing node_modules.
Then when building the frontend you can just symlink the node_modules directory.
## Javascript packages inside nixpkgs {#javascript-packages-nixpkgs}
The [pkgs/development/node-packages](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages) folder contains a generated collection of [npm packages](https://npmjs.com/) that can be installed with the Nix package manager.
As a rule of thumb, the package set should only provide _end-user_ software packages, such as command-line utilities.
Libraries should only be added to the package set if there is a non-npm package that requires it.
When it is desired to use npm libraries in a development project, use the `node2nix` generator directly on the `package.json` configuration file of the project.
The package set provides support for the official stable Node.js versions.
The latest stable LTS release in `nodePackages`, as well as the latest stable current release in `nodePackages_latest`.
If your package uses native addons, you need to examine what kind of native build system it uses. Here are some examples:
- `node-gyp`
- `node-gyp-builder`
- `node-pre-gyp`
After you have identified the correct system, you need to override your package expression while adding in build system as a build input.
For example, `dat` requires `node-gyp-build`, so we override its expression in [pkgs/development/node-packages/overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/overrides.nix):
```nix
{
dat = prev.dat.override (oldAttrs: {
buildInputs = [
final.node-gyp-build
pkgs.libtool
pkgs.autoconf
pkgs.automake
];
meta = oldAttrs.meta // {
broken = since "12";
};
});
}
```
### Adding and updating JavaScript packages in Nixpkgs {#javascript-adding-or-updating-packages}
To add a package from npm to Nixpkgs:
1. Modify [pkgs/development/node-packages/node-packages.json](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/node-packages.json) to add, update or remove package entries to have it included in `nodePackages` and `nodePackages_latest`.
2. Run the script:
```sh
./pkgs/development/node-packages/generate.sh
```
3. Build your new package to test your changes:
```sh
nix-build -A nodePackages.<new-or-updated-package>
```
To build against the latest stable Current Node.js version (e.g. 18.x):
```sh
nix-build -A nodePackages_latest.<new-or-updated-package>
```
If the package doesn't build, you may need to add an override as explained above.
4. If the package's name doesn't match any of the executables it provides, add an entry in [pkgs/development/node-packages/main-programs.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/main-programs.nix). This will be the case for all scoped packages, e.g., `@angular/cli`.
5. Add and commit all modified and generated files.
For more information about the generation process, consult the [README.md](https://github.com/svanderburg/node2nix) file of the `node2nix` tool.
To update npm packages in Nixpkgs, run the same `generate.sh` script:
```sh
./pkgs/development/node-packages/generate.sh
```
#### Git protocol error {#javascript-git-error}
Some packages may have Git dependencies from GitHub specified with `git://`.
GitHub has [disabled unencrypted Git connections](https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git), so you may see the following error when running the generate script:
```
The unauthenticated git protocol on port 9418 is no longer supported
```
Use the following Git configuration to resolve the issue:
```sh
git config --global url."https://github.com/".insteadOf git://github.com/
```
## Tool-specific instructions {#javascript-tool-specific}
### buildNpmPackage {#javascript-buildNpmPackage}
-9
View File
@@ -3425,15 +3425,6 @@
"javascript-using-node_modules": [
"index.html#javascript-using-node_modules"
],
"javascript-packages-nixpkgs": [
"index.html#javascript-packages-nixpkgs"
],
"javascript-adding-or-updating-packages": [
"index.html#javascript-adding-or-updating-packages"
],
"javascript-git-error": [
"index.html#javascript-git-error"
],
"javascript-tool-specific": [
"index.html#javascript-tool-specific"
],
-1
View File
@@ -1945,7 +1945,6 @@
./virtualisation/libvirtd.nix
./virtualisation/lxc.nix
./virtualisation/lxcfs.nix
./virtualisation/multipass.nix
./virtualisation/nixos-containers.nix
./virtualisation/oci-containers.nix
./virtualisation/oci-options.nix
+3
View File
@@ -441,6 +441,9 @@ in
to periodically collect random data from the device and mix it
into the kernel's RNG.
'')
(mkRemovedOptionModule [ "virtualisation" "multipass" ] ''
virtualisation.multipass has been removed since it was unmaintained in nixpkgs
'')
# Do NOT add any option renames here, see top of the file
];
}
+8 -6
View File
@@ -64,8 +64,13 @@ in
example = "127.0.0.1:8080, 127.0.0.1:8081";
};
DATABASE_URL = mkOption {
type = types.str;
defaultText = "user=miniflux host=/run/postgresql dbname=miniflux";
type = types.nullOr types.str;
defaultText = literalExpression ''
if createDatabaseLocally then "user=miniflux host=/run/postgresql dbname=miniflux" else null
'';
default =
if cfg.createDatabaseLocally then "user=miniflux host=/run/postgresql dbname=miniflux" else null;
description = ''
Postgresql connection parameters.
See [lib/pq](https://pkg.go.dev/github.com/lib/pq#hdr-Connection_String_Parameters) for more details.
@@ -116,9 +121,6 @@ in
message = "services.miniflux.adminCredentialsFile must be set if services.miniflux.config.CREATE_ADMIN is 1";
}
];
services.miniflux.config = {
DATABASE_URL = lib.mkIf cfg.createDatabaseLocally "user=miniflux host=/run/postgresql dbname=miniflux";
};
services.postgresql = lib.mkIf cfg.createDatabaseLocally {
enable = true;
@@ -202,7 +204,7 @@ in
UMask = "0077";
};
environment = lib.mapAttrs (_: toString) cfg.config;
environment = lib.mapAttrs (_: toString) (lib.filterAttrs (_: v: v != null) cfg.config);
};
environment.systemPackages = [ cfg.package ];
@@ -1,66 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.virtualisation.multipass;
in
{
options = {
virtualisation.multipass = {
enable = lib.mkEnableOption "Multipass, a simple manager for virtualised Ubuntu instances";
logLevel = lib.mkOption {
type = lib.types.enum [
"error"
"warning"
"info"
"debug"
"trace"
];
default = "debug";
description = ''
The logging verbosity of the multipassd binary.
'';
};
package = lib.mkPackageOption pkgs "multipass" { };
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.services.multipass = {
description = "Multipass orchestrates virtual Ubuntu instances.";
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
environment = {
"XDG_DATA_HOME" = "/var/lib/multipass/data";
"XDG_CACHE_HOME" = "/var/lib/multipass/cache";
"XDG_CONFIG_HOME" = "/var/lib/multipass/config";
};
serviceConfig = {
ExecStart = "${cfg.package}/bin/multipassd --logger platform --verbosity ${cfg.logLevel}";
SyslogIdentifier = "multipassd";
Restart = "on-failure";
TimeoutStopSec = 300;
Type = "simple";
WorkingDirectory = "/var/lib/multipass";
StateDirectory = "multipass";
StateDirectoryMode = "0750";
CacheDirectory = "multipass";
CacheDirectoryMode = "0750";
};
};
};
}
-1
View File
@@ -983,7 +983,6 @@ in
mpd = runTest ./mpd.nix;
mpv = runTest ./mpv.nix;
mtp = runTest ./mtp.nix;
multipass = runTest ./multipass.nix;
mumble = runTest ./mumble.nix;
munge = runTest ./munge.nix;
munin = runTest ./munin.nix;
-39
View File
@@ -1,39 +0,0 @@
{ pkgs, lib, ... }:
let
multipass-image = import ../release.nix {
configuration = {
# Building documentation makes the test unnecessarily take a longer time:
documentation.enable = lib.mkForce false;
};
};
in
{
name = "multipass";
meta.maintainers = [ ];
nodes.machine =
{ lib, ... }:
{
virtualisation = {
cores = 1;
memorySize = 1024;
diskSize = 4096;
multipass.enable = true;
};
};
testScript = ''
machine.wait_for_unit("sockets.target")
machine.wait_for_unit("multipass.service")
machine.wait_for_file("/var/lib/multipass/data/multipassd/network/multipass_subnet")
# Wait for Multipass to settle
machine.sleep(1)
machine.succeed("multipass list")
'';
}
@@ -561,11 +561,11 @@
"vendorHash": "sha256-xIagZvWtlNpz5SQfxbA7r9ojAeS3CW2pwV337ObKOwU="
},
"hashicorp_google": {
"hash": "sha256-MrQ16YJBPm0f89lYbbDSPrqSFhB0eShN6VUM1lPI2D4=",
"hash": "sha256-d9rFR5ND72GIqwjusfKgzUozSJY/Dg+yL3AoPxIVExI=",
"homepage": "https://registry.terraform.io/providers/hashicorp/google",
"owner": "hashicorp",
"repo": "terraform-provider-google",
"rev": "v7.11.0",
"rev": "v7.12.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-bpyTtuK3kcntk9hzCU2d+RZ0K0jfFtUlEZezyZHvFW8="
},
@@ -14,6 +14,7 @@
libjxl,
wrapGAppsHook3,
wrapQtAppsHook,
geoclue2,
glib-networking,
webkitgtk_4_1,
withWebkit ? true,
@@ -53,7 +54,10 @@ stdenv.mkDerivation (finalAttrs: {
"--prefix"
"LD_LIBRARY_PATH"
":"
(lib.makeLibraryPath [ webkitgtk_4_1 ])
(lib.makeLibraryPath [
geoclue2
webkitgtk_4_1
])
];
dontUnpack = true;
@@ -12,11 +12,11 @@
buildKodiAddon rec {
pname = "arteplussept";
namespace = "plugin.video.arteplussept";
version = "1.4.3";
version = "1.4.4";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
hash = "sha256-05k0ijTp0JDtHdxTJ5I8ff47F6LXGP78rInyX0nD7W8=";
hash = "sha256-jFIcLhglfOqkFLtlIJKB1o++mWfnpWKS3w1wD0S3+CE=";
};
propagatedBuildInputs = [
+19 -6
View File
@@ -11,12 +11,17 @@
}:
let
inherit (python3Packages) buildPythonApplication docutils pygobject3;
inherit (python3Packages)
buildPythonApplication
setuptools
docutils
pygobject3
;
in
buildPythonApplication rec {
pname = "arandr";
version = "0.1.11";
format = "setuptools";
pyproject = true;
src = fetchFromGitLab {
owner = "arandr";
@@ -35,13 +40,15 @@ buildPythonApplication rec {
];
buildInputs = [
docutils
gsettings-desktop-schemas
gtk3
xrandr
];
propagatedBuildInputs = [
xrandr
build-system = [ setuptools ];
dependencies = [
docutils
pygobject3
];
@@ -52,6 +59,12 @@ buildPythonApplication rec {
# no tests
doCheck = false;
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex=(\\d.*)"
@@ -62,7 +75,7 @@ buildPythonApplication rec {
changelog = "https://gitlab.com/arandr/arandr/-/blob/${src.tag}/ChangeLog";
description = "Simple visual front end for XRandR";
homepage = "https://christian.amsuess.com/tools/arandr/";
license = lib.licenses.gpl3;
license = lib.licenses.gpl3Plus;
mainProgram = "arandr";
maintainers = with lib.maintainers; [
gepbird
+1 -1
View File
@@ -17,7 +17,7 @@ stdenv.mkDerivation (finalAttrs: {
rev = "8572e6313a0d7ec95492dcab04a46c5dd30ef33a";
hash = "sha256-LQ9LLVumi3GN6c9tuMSOd1Bs2pgrwrLLQbs5XF+NZeA=";
};
sourceRoot = "source/aseq2json";
sourceRoot = "${finalAttrs.src.name}/aseq2json";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
-2273
View File
File diff suppressed because it is too large Load Diff
-38
View File
@@ -1,38 +0,0 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "binserve";
version = "0.2.0";
src = fetchFromGitHub {
owner = "mufeedvh";
repo = "binserve";
rev = "v${version}";
hash = "sha256-Chm2xPB0BrLXSZslg9wnbDyHSJRQAvOtpH0Rw6w1q1s=";
};
cargoLock.lockFile = ./Cargo.lock;
postPatch = ''
cp ${./Cargo.lock} Cargo.lock
'';
doCheck = false;
meta = with lib; {
description = "Fast production-ready static web server";
homepage = "https://github.com/mufeedvh/binserve";
longDescription = ''
A fast production-ready static web server with TLS
(HTTPS), routing, hot reloading, caching, templating, and security in a
single-binary you can set up with zero code
'';
license = licenses.mit;
maintainers = with maintainers; [ snapdgn ];
platforms = platforms.unix;
mainProgram = "binserve";
};
}
@@ -32,19 +32,20 @@
python3Packages.buildPythonApplication rec {
pname = "bottles-unwrapped";
version = "52.1";
version = "60.1";
src = fetchFromGitHub {
owner = "bottlesdevs";
repo = "bottles";
tag = version;
hash = "sha256-KRSFljHUB5JEk2saCb0voIukekeUSySinBICBrzY9eQ=";
hash = "sha256-d9nRT6AvFxnhI/theJtPg79EdmA+9UFS4OWDlkV03sA=";
};
patches = [
./vulkan_icd.patch
./redirect-bugtracker.patch
./remove-flatpak-check.patch
./terminal.patch # Needed for `Launch with Terminal`
]
++ (
if removeWarningPopup then
@@ -0,0 +1,13 @@
diff --git a/bottles/backend/utils/terminal.py b/bottles/backend/utils/terminal.py
index 1f28e093..cca8018a 100644
--- a/bottles/backend/utils/terminal.py
+++ b/bottles/backend/utils/terminal.py
@@ -138,7 +138,7 @@ class TerminalUtils:
full_cmd = f"{template} {cmd_for_shell}"
elif term_bin in ["kitty", "foot", "konsole", "gnome-terminal"]:
- cmd_for_shell = shlex.quote(f"sh -c {command}")
+ cmd_for_shell = f"sh -c {command}"
try:
full_cmd = template % cmd_for_shell
except Exception:
+7 -1
View File
@@ -54,6 +54,11 @@ let
gst-plugins-bad
gst-libav
];
waylandDeps =
pkgs: with pkgs; [
libxkbcommon
wayland
];
in
pkgs:
with pkgs;
@@ -106,7 +111,8 @@ let
]
++ xorgDeps pkgs
++ gstreamerDeps pkgs
++ extraLibraries pkgs;
++ extraLibraries pkgs
++ waylandDeps pkgs;
};
in
symlinkJoin {
+2 -2
View File
@@ -14,14 +14,14 @@
python3Packages.buildPythonPackage rec {
pname = "boxflat";
version = "1.34.4";
version = "1.35.2";
pyproject = true;
src = fetchFromGitHub {
owner = "Lawstorant";
repo = "boxflat";
tag = "v${version}";
hash = "sha256-QuBGEOAMVR70JDpD1VVASuCJJdwbWDzK8qmo/BOOua0=";
hash = "sha256-7JIIFti8LHBIDBr+GywImlP2l3Ct/hq4pb5+2/q+F0k=";
};
build-system = [ python3Packages.setuptools ];
+8
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitLab,
fetchpatch,
qt5,
libsForQt5,
cmake,
@@ -21,6 +22,13 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-szPdRxbzJ2+nmgp+1FwmKZwHEDV8EtbDW/3jsw4J6HI=";
};
patches = [
(fetchpatch {
url = "https://invent.kde.org/office/calligraplan/-/commit/cdd85c895b487a8b3837bf8b864103997e0af544.patch";
hash = "sha256-IMoJvvszPuIdWedeU7PQw8ngYmMA7k//wXfT+mZQP88=";
})
];
buildInputs = [
qt5.qtbase
libsForQt5.kdbusaddons
+7 -7
View File
@@ -1,19 +1,19 @@
# Generated by ./update.sh - do not update manually!
# Last updated: 2025-11-11
# Last updated: 2025-11-29
{ fetchurl, fetchzip }:
{
aarch64-darwin = {
version = "1.0.4";
version = "1.0.5";
src = fetchurl {
url = "https://dl.fastmailcdn.com/desktop/production/mac/arm64/Fastmail-1.0.4-arm64-mac.zip";
hash = "sha512-DoBG2pY8a1BjNby0/PFAmRnEdMzX3n/JNlGW1/uHvi8lmzDMfEK5F0RAE4bNW08TPnaomjQOMRnqcas/9SecuA==";
url = "https://dl.fastmailcdn.com/desktop/production/mac/arm64/Fastmail-1.0.5-arm64-mac.zip";
hash = "sha512-/QozVRmwVxOf97GI6TOoR/pAepSVQn/cVd9jdIi9yoOh82/pHUtHZAiL8K+YmxhjfKGumR9oG7rVbAzgrE+jRg==";
};
};
x86_64-linux = {
version = "1.0.4";
version = "1.0.5";
src = fetchurl {
url = "https://dl.fastmailcdn.com/desktop/production/linux/x64/Fastmail-1.0.4.AppImage";
hash = "sha512-lavGgtrIRiYL4NQEecpppvcTLZCgp54sTDFyVgySzBZmB6bcwCk9Kpjgepjma6iCUtUQYkN5ydtEYLZqTcSw4Q==";
url = "https://dl.fastmailcdn.com/desktop/production/linux/x64/Fastmail-1.0.5.AppImage";
hash = "sha512-p9g9K6hi4tceNlyAIgdkpc7VITwfSifsUBqXQWqMJU3aLAM5SH0WZcFQmcn94DWoq6e3bx3Z+7lCV1twhVLiyw==";
};
};
}
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "files-cli";
version = "2.15.152";
version = "2.15.156";
src = fetchFromGitHub {
repo = "files-cli";
owner = "files-com";
rev = "v${version}";
hash = "sha256-0rXDVLr1V54+nXiqzhRsQJhF1JSreyQC9GcW3Sj2IcM=";
hash = "sha256-sVvo0LAdcJvxCSOdmjB2BiFxXscIn3d7yiZrcb7FVI8=";
};
vendorHash = "sha256-BijznllCTXFgjADT/OZrgNYRM4aRXhxsIQu+jZngcFM=";
vendorHash = "sha256-gEoes1Q3ARAC2Fz0H9clNT/0LQ5RCfpLrQljgsMhOhA=";
ldflags = [
"-s"
+4 -2
View File
@@ -7,14 +7,14 @@
python3Packages.buildPythonApplication rec {
pname = "friture";
version = "0.51";
version = "0.54";
pyproject = true;
src = fetchFromGitHub {
owner = "tlecomte";
repo = "friture";
rev = "v${version}";
hash = "sha256-1Swkk7bhQTSo17Gj0i1VNiIt+fSXgDIeWfJ9LpoUEHg=";
hash = "sha256-KWj2AhPloomjYwd7besX5QIG8snZe1L2hATEfm/HaIE=";
};
postPatch = ''
@@ -34,6 +34,8 @@ python3Packages.buildPythonApplication rec {
buildInputs = with qt5; [ qtquickcontrols2 ];
propagatedBuildInputs = with python3Packages; [
platformdirs
pyinstaller
sounddevice
pyopengl
pyopengl-accelerate
@@ -8,18 +8,18 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "gdscript-formatter";
version = "0.18.0";
version = "0.18.1";
src = fetchFromGitHub {
owner = "GDQuest";
repo = "GDScript-formatter";
tag = finalAttrs.version;
hash = "sha256-DO8ctTmPUkB+XZ1iEkv3HLWprCH6IHdGXIWvn08PL+A=";
hash = "sha256-16ASwYNnAtOVB0xxomjyuopya5rtmZriOE4H4W1v6nE=";
# Needed due to .gitattributes being used for the Godot addon and export-ignoring all files
deepClone = true;
};
cargoHash = "sha256-b1seQakW2hZkclzkXX7DcTn+8TLinl2h0XMmdLHUT1A=";
cargoHash = "sha256-HWPSZFe78+NjIV79Un2e06S4AKpw1xJbJuX0fh1YJdo=";
cargoBuildFlags = [
"--bin=gdscript-formatter"
+42 -23
View File
@@ -14,14 +14,14 @@
python3Packages.buildPythonApplication rec {
pname = "hatch";
version = "1.14.2";
version = "1.16.1";
pyproject = true;
src = fetchFromGitHub {
owner = "pypa";
repo = "hatch";
tag = "hatch-v${version}";
hash = "sha256-LrfPDgpb9AQsaiYVb2MNdOfoIBbStZMKmESCbVhfn+s=";
hash = "sha256-HreVb+RZzQV3p9TaoHDZLHBQFifyH+hocP01u5yU+ms=";
};
patches = [ (replaceVars ./paths.patch { uv = lib.getExe python3Packages.uv; }) ];
@@ -33,28 +33,34 @@ python3Packages.buildPythonApplication rec {
pythonRemoveDeps = [ "uv" ];
dependencies = with python3Packages; [
click
hatchling
httpx
hyperlink
keyring
packaging
pexpect
platformdirs
rich
shellingham
tomli-w
tomlkit
userpath
virtualenv
zstandard
];
dependencies =
with python3Packages;
[
click
hatchling
httpx
hyperlink
keyring
packaging
pexpect
platformdirs
pyproject-hooks
rich
shellingham
tomli-w
tomlkit
userpath
virtualenv
]
++ lib.optionals (pythonOlder "3.14") [
backports-zstd
];
nativeCheckInputs =
with python3Packages;
[
binary
flit-core
git
pytestCheckHook
pytest-mock
@@ -121,10 +127,23 @@ python3Packages.buildPythonApplication rec {
++ lib.optionals stdenv.hostPlatform.isAarch64 [ "test_resolve" ];
disabledTestPaths = [
# ModuleNotFoundError: No module named 'hatchling.licenses.parse'
# https://github.com/pypa/hatch/issues/1850
"tests/backend/licenses/test_parse.py"
"tests/backend/licenses/test_supported.py"
# httpx.ConnectError: [Errno -3] Temporary failure in name resolution
"tests/workspaces/test_config.py"
# additional comment `-*- coding: utf-8 -*-` in output
"tests/backend/builders/test_sdist.py"
# missing output `Syncing dependencies`
"tests/cli/build/test_build.py"
"tests/cli/project/test_metadata.py"
"tests/cli/version/test_version.py"
# AttributeError: 'WheelBuilderConfig' object has no attribute 'sbom_files'
"tests/backend/builders/test_wheel.py::TestSBOMFiles"
# some issue with the version of `binary`
"tests/dep/test_sync.py::test_dependency_not_found"
"tests/dep/test_sync.py::test_marker_unmet"
# AssertionError on the version metadata
# https://github.com/pypa/hatch/issues/1877
+23 -23
View File
@@ -1,58 +1,58 @@
diff --git a/src/hatch/env/virtual.py b/src/hatch/env/virtual.py
index 285edb32..90bd94e6 100644
index 72605e58..546b6ad1 100644
--- a/src/hatch/env/virtual.py
+++ b/src/hatch/env/virtual.py
@@ -106,26 +106,7 @@ class VirtualEnvironment(EnvironmentInterface):
@@ -108,26 +108,7 @@ class VirtualEnvironment(EnvironmentInterface):
if self.explicit_uv_path:
return self.explicit_uv_path
- from hatch.env.internal import is_default_environment
-
- env_name = 'hatch-uv'
- env_name = "hatch-uv"
- if not (
- # Prevent recursive loop
- self.name == env_name
- # Only if dependencies have been set by the user
- or is_default_environment(env_name, self.app.project.config.internal_envs[env_name])
- ):
- uv_env = self.app.get_environment(env_name)
- self.app.prepare_environment(uv_env)
- uv_env = self.app.project.get_environment(env_name)
- self.app.project.prepare_environment(uv_env)
- with uv_env:
- return self.platform.modules.shutil.which('uv')
- return self.platform.modules.shutil.which("uv")
-
- import sysconfig
-
- scripts_dir = sysconfig.get_path('scripts')
- old_path = os.environ.get('PATH', os.defpath)
- new_path = f'{scripts_dir}{os.pathsep}{old_path}'
- return self.platform.modules.shutil.which('uv', path=new_path)
+ return '@uv@'
- scripts_dir = sysconfig.get_path("scripts")
- old_path = os.environ.get("PATH", os.defpath)
- new_path = f"{scripts_dir}{os.pathsep}{old_path}"
- return self.platform.modules.shutil.which("uv", path=new_path)
+ return "@uv@"
@staticmethod
def get_option_types() -> dict:
@cached_property
def distributions(self) -> InstalledDistributions:
diff --git a/src/hatch/venv/core.py b/src/hatch/venv/core.py
index d1303f03..e1e60871 100644
index d8c6379e..874f8936 100644
--- a/src/hatch/venv/core.py
+++ b/src/hatch/venv/core.py
@@ -131,7 +131,7 @@ class TempVirtualEnv(VirtualEnv):
class UVVirtualEnv(VirtualEnv):
def create(self, python, *, allow_system_packages=False):
- command = [os.environ.get('HATCH_UV', 'uv'), 'venv', str(self.directory), '--python', python]
+ command = [os.environ.get('HATCH_UV', '@uv@'), 'venv', str(self.directory), '--python', python]
- command = [os.environ.get("HATCH_UV", "uv"), "venv", str(self.directory), "--python", python]
+ command = [os.environ.get("HATCH_UV", "@uv@"), "venv", str(self.directory), "--python", python]
if allow_system_packages:
command.append('--system-site-packages')
command.append("--system-site-packages")
diff --git a/tests/conftest.py b/tests/conftest.py
index e8fe663a..6066316d 100644
index 44681a10..d7e91d36 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -203,7 +203,7 @@ def python_on_path():
@@ -205,7 +205,7 @@ def python_on_path():
@pytest.fixture(scope='session', autouse=True)
@pytest.fixture(scope="session", autouse=True)
def uv_on_path():
- return shutil.which('uv')
+ return '@uv@'
- return shutil.which("uv")
+ return "@uv@"
@pytest.fixture(scope='session')
@pytest.fixture(scope="session")
+1 -1
View File
@@ -1,3 +1,3 @@
module hello-go
go 1.22.7
go 1.25.4
+6 -6
View File
@@ -5,18 +5,18 @@
nasm,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "intel-ipsec-mb";
version = "2.0.1";
src = fetchFromGitHub {
owner = "intel";
repo = "intel-ipsec-mb";
rev = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-k/NoPMKbiWZ25tdomsPpv2gfhQuBHxzX6KRT1UY88Ko=";
};
sourceRoot = "source/lib";
sourceRoot = "${finalAttrs.src.name}/lib";
nativeBuildInputs = [ nasm ];
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
"NOLDCONFIG=y"
];
meta = with lib; {
meta = {
description = "Intel Multi-Buffer Crypto for IPsec Library";
longDescription = ''
Intel Multi-Buffer Crypto for IPsec Library provides software crypto
@@ -34,8 +34,8 @@ stdenv.mkDerivation rec {
and MPEG DRM.
'';
homepage = "https://github.com/intel/intel-ipsec-mb";
license = licenses.bsd3;
license = lib.licenses.bsd3;
platforms = [ "x86_64-linux" ];
maintainers = [ ];
};
}
})
+2 -2
View File
@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libdaq";
version = "3.0.22";
version = "3.0.23";
src = fetchFromGitHub {
owner = "snort3";
repo = "libdaq";
tag = "v${finalAttrs.version}";
hash = "sha256-bx+NBUz+LpX4kOvCOCN+6rRilMreMAGeFGD33xLdfv0=";
hash = "sha256-P57eH301oOSY43LyryFar1aoPcDrd+WNxTResWGOD/I=";
};
nativeBuildInputs = [
@@ -1,13 +0,0 @@
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 52bd407f..a1100112 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -28,7 +28,7 @@ FetchContent_Declare(googletest
)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
set(INSTALL_GTEST OFF CACHE BOOL "")
-FetchContent_MakeAvailable(googletest)
+# FetchContent_MakeAvailable(googletest)
add_executable(multipass_tests
blueprint_test_lambdas.cpp
@@ -1,14 +0,0 @@
diff --git a/src/cert/CMakeLists.txt b/src/cert/CMakeLists.txt
index d44a0b09..de440f24 100644
--- a/src/cert/CMakeLists.txt
+++ b/src/cert/CMakeLists.txt
@@ -22,7 +22,7 @@ add_library(cert STATIC
target_include_directories(cert PRIVATE
${OPENSSL_INCLUDE_DIR})
-foreach(flag -Wno-nested-anon-types -Wno-gnu -Wno-pedantic -Wno-ignored-qualifiers)
+foreach(flag -Wno-nested-anon-types -Wno-gnu -Wno-pedantic -Wno-ignored-qualifiers -Wno-ignored-attributes)
check_cxx_compiler_flag(${flag} SUPPORTED)
if(SUPPORTED)
target_compile_options(cert PRIVATE ${flag})
-83
View File
@@ -1,83 +0,0 @@
{
commonMeta,
multipass_src,
multipassd,
version,
autoPatchelfHook,
flutter332,
gtkmm3,
keybinder3,
lib,
libayatana-appindicator,
libnotify,
protobuf,
protoc-gen-dart,
qt6,
}:
flutter332.buildFlutterApplication {
inherit version;
pname = "multipass-gui";
src = multipass_src;
sourceRoot = "${multipass_src.name}/src/client/gui";
pubspecLock = lib.importJSON ./pubspec.lock.json;
gitHashes = {
dartssh2 = "sha256-9XrxxOamy0uS7kUz6mwWwp4yIBHLX/GSoyxMk/Wwa+4=";
hotkey_manager_linux = "sha256-aO0h94YZvgV/ggVupNw8GjyZsnXrq3qTHRDtuhNv3oI=";
tray_menu = "sha256-TAlRW7VkZWAoHAVlrPeDqS3BsqhQTyCekYQ2b4AEqjU=";
window_size = "sha256-71PqQzf+qY23hTJvcm0Oye8tng3Asr42E2vfF1nBmVA=";
xterm = "sha256-h8vIonTPUVnNqZPk/A4ZV7EYCMyM0rrErL9ZOMe4ZBE=";
};
buildInputs = [
gtkmm3
keybinder3
libayatana-appindicator
libnotify
qt6.qtbase
qt6.qtwayland
];
nativeBuildInputs = [
autoPatchelfHook
protobuf
protoc-gen-dart
qt6.wrapQtAppsHook
];
preBuild = ''
# Temporary fix which can be removed in the next release.
# Already addressed upstream, but part of a larger patch
# that did not trivially apply.
substituteInPlace lib/main.dart --replace-fail 'TabBarTheme(' 'TabBarThemeData('
mkdir -p lib/generated
# Generate the Dart gRPC code for the Multipass GUI.
protoc \
--plugin=protoc-gen-dart=${lib.getExe protoc-gen-dart} \
--dart_out=grpc:lib/generated \
-I ../../rpc \
../../rpc/multipass.proto \
google/protobuf/timestamp.proto
'';
runtimeDependencies = [ multipassd ];
postFixup = ''
mv $out/bin/multipass_gui $out/bin/multipass.gui
install -Dm444 $out/app/multipass-gui/data/flutter_assets/assets/icon.png \
$out/share/icons/hicolor/256x256/apps/multipass.gui.png
cp $out/share/applications/multipass.gui.autostart.desktop \
$out/share/applications/multipass.gui.desktop
'';
meta = commonMeta // {
description = "Flutter frontend application for managing Ubuntu VMs";
};
}
@@ -1,13 +0,0 @@
diff --git a/src/platform/backends/lxd/lxd_request.h b/src/platform/backends/lxd/lxd_request.h
index 4b5e8840..5e673ad7 100644
--- a/src/platform/backends/lxd/lxd_request.h
+++ b/src/platform/backends/lxd/lxd_request.h
@@ -27,7 +27,7 @@
namespace multipass
{
-const QUrl lxd_socket_url{"unix:///var/snap/lxd/common/lxd/unix.socket@1.0"};
+const QUrl lxd_socket_url{"unix:///var/lib/lxd/unix.socket@1.0"};
const QString lxd_project_name{"multipass"};
class NetworkAccessManager;
-139
View File
@@ -1,139 +0,0 @@
{
commonMeta,
multipass_src,
version,
cmake,
dnsmasq,
fetchFromGitHub,
fmt,
git,
grpc,
gtest,
iproute2,
iptables,
lib,
libapparmor,
libvirt,
libxml2,
openssl,
OVMF,
pkg-config,
poco,
protobuf,
qemu-utils,
qemu,
qt6,
slang,
stdenv,
xterm,
}:
stdenv.mkDerivation {
inherit version;
pname = "multipassd";
src = multipass_src;
patches = [
# Multipass is usually only delivered as a snap package on Linux, and it expects that
# the LXD backend will also be delivered via a snap - in which cases the LXD socket
# is available at '/var/snap/lxd/...'. Here we patch to ensure that Multipass uses the
# LXD socket location on NixOS in '/var/lib/...'
./lxd_socket_path.patch
# The upstream cmake file attempts to fetch googletest using FetchContent, which fails
# in the Nix build environment. This patch disables the fetch in favour of providing
# the googletest library from nixpkgs.
./cmake_no_fetch.patch
# As of Multipass 1.14.0, the upstream started using vcpkg for grabbing C++ dependencies,
# which doesn't work in the nix build environment. This patch reverts that change, in favour
# of providing those dependencies manually in this derivation.
./vcpkg_no_install.patch
# The compiler flags used in nixpkgs surface an error in the test suite where an
# unreachable path was not annotated as such - this patch adds the annotation to ensure
# that the test suite passes in the nix build process.
./test_unreachable_call.patch
];
postPatch = ''
# Make sure the version is reported correctly in the compiled binary.
substituteInPlace ./CMakeLists.txt \
--replace-fail "determine_version(MULTIPASS_VERSION)" "" \
--replace-fail 'set(MULTIPASS_VERSION ''${MULTIPASS_VERSION})' 'set(MULTIPASS_VERSION "v${version}")'
# Don't build the GUI .desktop file, do that in the gui derivation instead
substituteInPlace ./CMakeLists.txt --replace-fail "add_subdirectory(data)" ""
# Don't build/use vcpkg
rm -rf 3rd-party/vcpkg
# Patch the patch of the OVMF binaries to use paths from the nix store.
substituteInPlace ./src/platform/backends/qemu/linux/qemu_platform_detail_linux.cpp \
--replace-fail "OVMF.fd" "${OVMF.fd}/FV/OVMF.fd" \
--replace-fail "QEMU_EFI.fd" "${OVMF.fd}/FV/QEMU_EFI.fd"
# Configure CMake to use gtest from the nix store since we disabled fetching from the internet.
cat >> tests/CMakeLists.txt <<'EOF'
add_library(gtest INTERFACE)
target_include_directories(gtest INTERFACE ${gtest.dev}/include)
target_link_libraries(gtest INTERFACE ${gtest}/lib/libgtest.so ''${CMAKE_THREAD_LIBS_INIT})
add_dependencies(gtest GMock)
add_library(gtest_main INTERFACE)
target_include_directories(gtest_main INTERFACE ${gtest.dev}/include)
target_link_libraries(gtest_main INTERFACE ${gtest}/lib/libgtest_main.so gtest)
add_library(gmock INTERFACE)
target_include_directories(gmock INTERFACE ${gtest.dev}/include)
target_link_libraries(gmock INTERFACE ${gtest}/lib/libgmock.so gtest)
add_library(gmock_main INTERFACE)
target_include_directories(gmock_main INTERFACE ${gtest.dev}/include)
target_link_libraries(gmock_main INTERFACE ${gtest}/lib/libgmock_main.so gmock gtest_main)
EOF
'';
# We'll build the flutter application separately using buildFlutterApplication
cmakeFlags = [ "-DMULTIPASS_ENABLE_FLUTTER_GUI=false" ];
buildInputs = [
fmt
grpc
gtest
libapparmor
libvirt
libxml2
openssl
poco.dev
protobuf
qt6.qtbase
qt6.qtwayland
];
nativeBuildInputs = [
cmake
git
pkg-config
qt6.wrapQtAppsHook
slang
];
nativeCheckInputs = [ gtest ];
postInstall = ''
wrapProgram $out/bin/multipassd --prefix PATH : ${
lib.makeBinPath [
dnsmasq
iproute2
iptables
OVMF.fd
qemu
qemu-utils
xterm
]
}
'';
meta = commonMeta // {
description = "Backend server & client for managing on-demand Ubuntu VMs";
};
}
-61
View File
@@ -1,61 +0,0 @@
{
callPackage,
fetchFromGitHub,
lib,
nixosTests,
stdenv,
symlinkJoin,
}:
let
name = "multipass";
version = "1.16.1";
multipass_src = fetchFromGitHub {
owner = "canonical";
repo = "multipass";
rev = "refs/tags/v${version}";
hash = "sha256-DryVXuyAdjk+KhJZYqGh/r1H50rwM16vJ9igLtftgDY=";
fetchSubmodules = true;
};
commonMeta = {
homepage = "https://multipass.run";
license = lib.licenses.gpl3Plus;
maintainers = [ ];
platforms = [ "x86_64-linux" ];
};
multipassd = callPackage ./multipassd.nix {
inherit commonMeta multipass_src version;
};
multipass-gui = callPackage ./gui.nix {
inherit
commonMeta
multipass_src
multipassd
version
;
};
in
symlinkJoin {
inherit version;
pname = name;
paths = [
multipassd
multipass-gui
];
passthru = {
tests = lib.optionalAttrs stdenv.hostPlatform.isLinux {
inherit (nixosTests) multipass;
};
updateScript = ./update.sh;
};
meta = commonMeta // {
description = "Ubuntu VMs on demand for any workstation";
};
}
File diff suppressed because one or more lines are too long
@@ -1,12 +0,0 @@
diff --git a/tests/test_common_callbacks.cpp b/tests/test_common_callbacks.cpp
index ccae78e0..f9ab4423 100644
--- a/tests/test_common_callbacks.cpp
+++ b/tests/test_common_callbacks.cpp
@@ -73,6 +73,7 @@ struct TestLoggingSpinnerCallbacks : public TestSpinnerCallbacks, public WithPar
default:
assert(false && "shouldn't be here");
}
+ __builtin_unreachable();
}
};
-61
View File
@@ -1,61 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. -i bash -p curl jq nix-prefetch-github yj git
# shellcheck shell=bash
set -euo pipefail
cd $(readlink -e $(dirname "${BASH_SOURCE[0]}"))
# Download the latest pubspec.lock (which is a YAML file), convert it to JSON and write it to
# the package directory as pubspec.lock.json
update_pubspec_json() {
local version; version="$1"
echo "Updating pubspec.lock.json"
curl -s \
"https://raw.githubusercontent.com/canonical/multipass/refs/tags/v${version}/src/client/gui/pubspec.lock" \
| yj > pubspec.lock.json
}
# Update the SRI hash of a particular overridden Dart package in the Nix expression
update_dart_pkg_hash() {
local pkg_name; pkg_name="$1"
local owner; owner="$2";
local repo; repo="$3";
echo "Updating dart package hash: $pkg_name"
resolved_ref="$(jq -r --arg PKG "$pkg_name" '.packages[$PKG].description."resolved-ref"' pubspec.lock.json)"
hash="$(nix-prefetch-github --rev "$resolved_ref" "$owner" "$repo" | jq '.hash')"
sed -i "s|${pkg_name} = \".*\";|${pkg_name} = $hash;|" gui.nix
}
# Update the hash of the multipass source code in the Nix expression.
update_multipass_source() {
local version; version="$1"
echo "Updating multipass source"
sri_hash="$(nix-prefetch-github canonical multipass --rev "refs/tags/v${version}" --fetch-submodules | jq -r '.hash')"
sed -i "s|version = \".*$|version = \"$version\";|" package.nix
sed -i "s|hash = \".*$|hash = \"${sri_hash}\";|" package.nix
}
LATEST_TAG="$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} https://api.github.com/repos/canonical/multipass/releases/latest | jq -r '.tag_name')"
LATEST_VERSION="$(expr "$LATEST_TAG" : 'v\(.*\)')"
CURRENT_VERSION="$(grep -Po "version = \"\K[^\"]+" package.nix)"
if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then
echo "multipass is up to date: ${CURRENT_VERSION}"
exit 0
fi
update_pubspec_json "$LATEST_VERSION"
update_dart_pkg_hash dartssh2 canonical dartssh2
update_dart_pkg_hash hotkey_manager_linux canonical hotkey_manager
update_dart_pkg_hash tray_menu canonical tray_menu
update_dart_pkg_hash window_size google flutter-desktop-embedding
update_dart_pkg_hash xterm levkropp xterm.dart
update_multipass_source "$LATEST_VERSION"
@@ -1,14 +0,0 @@
diff --git i/CMakeLists.txt w/CMakeLists.txt
index fd8d446c8..870a2c19c 100644
--- i/CMakeLists.txt
+++ w/CMakeLists.txt
@@ -83,9 +83,6 @@ else()
message(STATUS "Bootstrapping vcpkg completed successfully.")
endif()
-set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/3rd-party/vcpkg/scripts/buildsystems/vcpkg.cmake"
- CACHE STRING "Vcpkg toolchain file")
-
project(Multipass)
option(MULTIPASS_ENABLE_TESTS "Build tests" ON)
@@ -1,26 +1,16 @@
{
lib,
buildPythonApplication,
python3Packages,
fetchFromGitHub,
gobject-introspection,
setuptools,
wrapGAppsHook3,
libnotify,
dbus-python,
packaging,
proton-core,
proton-keyring-linux,
proton-vpn-api-core,
proton-vpn-local-agent,
proton-vpn-network-manager,
pycairo,
pygobject3,
withIndicator ? true,
libappindicator-gtk3,
libayatana-appindicator,
}:
buildPythonApplication rec {
python3Packages.buildPythonApplication rec {
pname = "protonvpn-gui";
version = "4.12.0";
pyproject = true;
@@ -48,11 +38,11 @@ buildPythonApplication rec {
libayatana-appindicator
];
build-system = [
build-system = with python3Packages; [
setuptools
];
dependencies = [
dependencies = with python3Packages; [
dbus-python
packaging
proton-core
@@ -64,6 +54,12 @@ buildPythonApplication rec {
pygobject3
];
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
postInstall = ''
mkdir -p $out/share/{applications,pixmaps}
+10 -4
View File
@@ -15,6 +15,7 @@
pipewireSupport ? stdenv.hostPlatform.isLinux,
pipewire,
qt6Packages,
wayland,
enableWideVine ? false,
widevine-cdm,
# can cause issues on some graphics chips
@@ -26,15 +27,15 @@ let
isQt6 = lib.versions.major qt6Packages.qtbase.version == "6";
pdfjs =
let
version = "5.4.296";
version = "5.4.394";
in
fetchzip {
url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/pdfjs-${version}-dist.zip";
hash = "sha256-UQ7sYOh7s95mfzH2ZbfDyEvUZiXr7MI3u0WY8WNHWv4=";
hash = "sha256-KMpSwF5MmoWdNoIUd4ZOwbJZZmjkid8wUoFKw7XjQFA=";
stripRoot = false;
};
version = "3.6.1";
version = "3.6.2";
in
python3.pkgs.buildPythonApplication {
@@ -44,7 +45,7 @@ python3.pkgs.buildPythonApplication {
src = fetchurl {
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/qutebrowser-${version}.tar.gz";
hash = "sha256-9b31UPJzmsGCXmCAIb+8XMEjKnvFIEO0MozWluHYbZA=";
hash = "sha256-GfSkVluSwcCAvLPlW49QLmyWblTrnW9Qgqne0Qy8JJM=";
};
# Needs tox
@@ -104,6 +105,11 @@ python3.pkgs.buildPythonApplication {
''
+ lib.optionalString withPdfReader ''
sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py
''
+ lib.optionalString (lib.meta.availableOn stdenv.hostPlatform wayland) ''
substituteInPlace qutebrowser/misc/wmname.py \
--replace-fail '_load_library("wayland-client")' \
'ctypes.CDLL("${lib.getLib wayland}/lib/libwayland-client${stdenv.hostPlatform.extensions.sharedLibrary}")'
'';
installPhase = ''
+3 -3
View File
@@ -4,7 +4,7 @@
fetchFromGitHub,
nix-update-script,
}:
buildGoModule {
buildGoModule (finalAttrs: {
pname = "sendgmail";
version = "0-unstable-2025-03-06";
@@ -15,7 +15,7 @@ buildGoModule {
hash = "sha256-bzbTU9SA4dJKtQVkqESvV5o3l3MY4Uy7HDqo7jI3dhM=";
};
sourceRoot = "source/go/sendgmail";
sourceRoot = "${finalAttrs.src.name}/go/sendgmail";
vendorHash = "sha256-0pjcO2Ati+mUSw614uEL3CatHSgbgDUfOBE8bWpjmcw=";
@@ -29,4 +29,4 @@ buildGoModule {
platforms = lib.platforms.unix;
mainProgram = "sendgmail";
};
}
})
+49 -29
View File
@@ -4,17 +4,24 @@
fetchFromGitHub,
installShellFiles,
stdenv,
writableTmpDirAsHomeHook,
buildPackages,
}:
buildGoModule rec {
buildGoModule (finalAttrs: {
pname = "stripe-cli";
version = "1.30.0";
version = "1.31.0";
# required for tests
__darwinAllowLocalNetworking = true;
src = fetchFromGitHub {
owner = "stripe";
repo = "stripe-cli";
rev = "v${version}";
hash = "sha256-qDrEDP3gDHggXxavMVuVitFN+OWz5WlamePS/1/zlq8=";
tag = "v${finalAttrs.version}";
hash = "sha256-fvemd1yo8WOWob/l3TU9lHcFc7OAI/oaX5XEK38vDwo=";
};
vendorHash = "sha256-EDdRgApJ7gv/4ma/IfaHi+jjpTPegsUfqHbvoFMn048=";
@@ -23,54 +30,67 @@ buildGoModule rec {
ldflags = [
"-s"
"-w"
"-X github.com/stripe/stripe-cli/pkg/version.Version=${version}"
"-X github.com/stripe/stripe-cli/pkg/version.Version=${finalAttrs.version}"
];
nativeCheckInputs = [
# required by pkg/rpcservice/sample_create_test.go
writableTmpDirAsHomeHook
];
preCheck = ''
# the tests expect the Version ldflag not to be set
unset ldflags
# requires internet access
rm pkg/cmd/plugin_cmds_test.go
rm pkg/cmd/resources_test.go
rm pkg/cmd/root_test.go
# TODO: no clue why it's broken (1.17.1), remove for now.
rm pkg/login/client_login_test.go
rm pkg/git/editor_test.go
rm pkg/rpcservice/sample_create_test.go
''
+
lib.optionalString
(
# delete plugin tests on all platforms but exact matches
# https://github.com/stripe/stripe-cli/issues/850
# https://github.com/stripe/stripe-cli/blob/e3020d2e2df9c731b2f51df3aa53bf16383e863f/pkg/plugins/test_artifacts/plugins.toml
!lib.lists.any (platform: lib.meta.platformMatch stdenv.hostPlatform platform) [
"x86_64-linux"
"x86_64-darwin"
"aarch64-darwin"
]
)
''
rm pkg/plugins/plugin_test.go
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd stripe \
--bash <($out/bin/stripe completion --write-to-stdout --shell bash) \
--zsh <($out/bin/stripe completion --write-to-stdout --shell zsh)
'';
checkFlags =
let
skippedTests = [
# network access
"TestConflictWithPluginCommand"
"TestLogin"
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/stripe --help
$out/bin/stripe --version | grep "${version}"
runHook postInstallCheck
'';
# not providing git or the various editors it wants to call
"TestGetOpenEditorCommand"
"TestGetDefaultGitEditor"
];
in
[ "-skip=^${lib.concatStringsSep "$|^" skippedTests}$" ];
postInstall =
let
inherit (finalAttrs.meta) mainProgram;
exe =
if stdenv.buildPlatform.canExecute stdenv.hostPlatform then
"$out/bin/${mainProgram}"
else
lib.getExe buildPackages.stripe-cli;
in
''
# only outputs bash and zsh completion
installShellCompletion --cmd ${mainProgram} \
--bash <(${exe} completion --write-to-stdout --shell bash) \
--zsh <(${exe} completion --write-to-stdout --shell zsh)
'';
meta = {
homepage = "https://stripe.com/docs/stripe-cli";
changelog = "https://github.com/stripe/stripe-cli/releases/tag/v${version}";
changelog = "https://github.com/stripe/stripe-cli/releases/tag/${finalAttrs.src.tag}";
description = "Command-line tool for Stripe";
longDescription = ''
The Stripe CLI helps you build, test, and manage your Stripe integration
@@ -90,4 +110,4 @@ buildGoModule rec {
];
mainProgram = "stripe";
};
}
})
+2 -2
View File
@@ -7,13 +7,13 @@
}:
buildGo125Module (finalAttrs: {
pname = "terragrunt";
version = "0.93.10";
version = "0.93.11";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = "terragrunt";
tag = "v${finalAttrs.version}";
hash = "sha256-aq3Q+PsKtkFXvBxZ1dpXsXWcQFEBTR1T/q/svWsEljg=";
hash = "sha256-Ff56GmIgi95BIRFUJ5KJGiqeioCfHY/ZseZ3Q4YzrtU=";
};
nativeBuildInputs = [
+4 -4
View File
@@ -10,14 +10,14 @@ let
platform =
if stdenvNoCC.hostPlatform.isDarwin then "universal-macos" else stdenvNoCC.hostPlatform.system;
hash = builtins.getAttr platform {
"universal-macos" = "sha256-4Z2+uUewnnzUkxU/yJQfiwYfS065TMInP/orBO0Qm0c=";
"x86_64-linux" = "sha256-YnD2M9GsLBAUzKxE3NrkZUwmYUjEyItIIBL6YjP1znQ=";
"aarch64-linux" = "sha256-zjbl/4iExFvQrtOYro/E7/mvxButrBo7fSHFq52jQCw=";
"universal-macos" = "sha256-q+s04xXqmKZfd4If4xMl4It5roHwW2IQeYykz2FzHmI=";
"x86_64-linux" = "sha256-5jBzNCpu4xrMlbRbFLUg57QtXqivfeYpx9hanoS6nIQ=";
"aarch64-linux" = "sha256-/V3tV6f0RY5ymb5zQy81Irox6zgQx0wjuWmB/5QsOQQ=";
};
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "tigerbeetle";
version = "0.16.65";
version = "0.16.66";
src = fetchzip {
url = "https://github.com/tigerbeetle/tigerbeetle/releases/download/${finalAttrs.version}/tigerbeetle-${platform}.zip";
+2 -2
View File
@@ -23,13 +23,13 @@ assert lib.elem lineEditingLibrary [
];
stdenv.mkDerivation (finalAttrs: {
pname = "trealla";
version = "2.85.9";
version = "2.86.5";
src = fetchFromGitHub {
owner = "trealla-prolog";
repo = "trealla";
rev = "v${finalAttrs.version}";
hash = "sha256-RBHak1YAUUV0Kb3CejEXh49WDDAaBpxavOUqELRVdrs=";
hash = "sha256-0r73id/Yy9CrLM56x66iJtzrC7WCC/VSA+rRKiz9cDk=";
};
postPatch = ''
+2 -2
View File
@@ -6,13 +6,13 @@
}:
buildGoModule (finalAttrs: {
pname = "tsidp";
version = "0.0.6";
version = "0.0.7";
src = fetchFromGitHub {
owner = "tailscale";
repo = "tsidp";
tag = "v${finalAttrs.version}";
hash = "sha256-qOZJkCVAgR6xXZryysyFbf/P8zrLhe2iHYWFlIadiBM=";
hash = "sha256-7VOTrIYwNnayjQ4s/dFIIUj58XG5LTRvdLXdGpeW0CY=";
};
vendorHash = "sha256-iBy+osK+2LdkTzXhrkSaB6nWpUCpr8VkxJTtcfVCFuw=";
+3 -3
View File
@@ -6,7 +6,7 @@
pkg-config,
}:
let
version = "1.24.22";
version = "1.24.27";
in
rustPlatform.buildRustPackage {
pname = "websurfx";
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage {
owner = "neon-mmd";
repo = "websurfx";
tag = "v${version}";
hash = "sha256-l04M2veWipVmmR4lN5+8mHpL2/16JMd3biRzEIacgac=";
hash = "sha256-+nd4CchLAC0QbXDCCCdeLUsTyQDXprLHkWDFSljzFLY=";
};
nativeBuildInputs = [
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage {
openssl
];
cargoHash = "sha256-ekosi4t0InWh1c14jEe2MAWPCQ4qnqwPFvTAtAlwiuw=";
cargoHash = "sha256-mkkBJBd17Ct0xpXGK1k+TZf5GqDIUW8EgFtokTDe8Vw=";
postPatch = ''
substituteInPlace src/handler.rs \
+3 -3
View File
@@ -19,14 +19,14 @@
}:
llvmPackages_20.stdenv.mkDerivation {
pname = "xenia-canary";
version = "0-unstable-2025-11-22";
version = "0-unstable-2025-11-29";
src = fetchFromGitHub {
owner = "xenia-canary";
repo = "xenia-canary";
fetchSubmodules = true;
rev = "07501cfcb9f592c3f99eeb7a8d8f10294755a980";
hash = "sha256-dacGpGAK4At0KXdANY6ibEAjxWcY4bUbyFraXO+kK/0=";
rev = "ce5100cbf384d441f7ccfd0269938616a345722f";
hash = "sha256-v2RFsOFbsM14lGo//7Qf25neRfM9mSbC8cJZP1xCsms=";
};
dontConfigure = true;
@@ -19,6 +19,10 @@ stdenv.mkDerivation {
nativeBuildInputs = [ cmake ];
postPatch = ''
substituteInPlace CMakeLists.txt --replace-fail 'cmake_minimum_required(VERSION 3.0)' 'cmake_minimum_required(VERSION 3.10)'
'';
cmakeFlags = [
"-DQT5_BUILD=1"
"-DQt5Core_DIR=${qtbase.dev}/lib/cmake/Qt5Core"
+88 -1
View File
@@ -1 +1,88 @@
Moved to [/doc/languages-frameworks/javascript.section.md](/doc/languages-frameworks/javascript.section.md)
> [!IMPORTANT]
> There is currently an active project to [remove packages from `nodePackages`](https://github.com/NixOS/nixpkgs/issues/229475).
> Please consider adding new packages using [another method](https://nixos.org/manual/nixpkgs/unstable/#javascript-tool-specific).
This folder contains a generated collection of [npm packages](https://npmjs.com/) that can be installed with the Nix package manager.
As a rule of thumb, the package set should only provide _end-user_ software packages, such as command-line utilities.
Libraries should only be added to the package set if there is a non-npm package that requires it.
When it is desired to use npm libraries in a development project, use the `node2nix` generator directly on the `package.json` configuration file of the project.
The package set provides support for the official stable Node.js versions.
The latest stable LTS release in `nodePackages`, as well as the latest stable current release in `nodePackages_latest`.
If your package uses native addons, you need to examine what kind of native build system it uses. Here are some examples:
- `node-gyp`
- `node-gyp-builder`
- `node-pre-gyp`
After you have identified the correct system, you need to override your package expression while adding in build system as a build input.
For example, `dat` requires `node-gyp-build`, so we override its expression in [pkgs/development/node-packages/overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/overrides.nix):
```nix
{
dat = prev.dat.override (oldAttrs: {
buildInputs = [
final.node-gyp-build
pkgs.libtool
pkgs.autoconf
pkgs.automake
];
meta = oldAttrs.meta // {
broken = since "12";
};
});
}
```
### Adding and updating JavaScript packages in Nixpkgs
To add a package from npm to Nixpkgs:
1. Modify [pkgs/development/node-packages/node-packages.json](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/node-packages.json) to add, update or remove package entries to have it included in `nodePackages` and `nodePackages_latest`.
2. Run the script:
```sh
./pkgs/development/node-packages/generate.sh
```
3. Build your new package to test your changes:
```sh
nix-build -A nodePackages.<new-or-updated-package>
```
To build against the latest stable Current Node.js version (e.g. 18.x):
```sh
nix-build -A nodePackages_latest.<new-or-updated-package>
```
If the package doesn't build, you may need to add an override as explained above.
4. If the package's name doesn't match any of the executables it provides, add an entry in [pkgs/development/node-packages/main-programs.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/main-programs.nix). This will be the case for all scoped packages, e.g., `@angular/cli`.
5. Add and commit all modified and generated files.
For more information about the generation process, consult the [README.md](https://github.com/svanderburg/node2nix) file of the `node2nix` tool.
To update npm packages in Nixpkgs, run the same `generate.sh` script:
```sh
./pkgs/development/node-packages/generate.sh
```
#### Git protocol error
Some packages may have Git dependencies from GitHub specified with `git://`.
GitHub has [disabled unencrypted Git connections](https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git), so you may see the following error when running the generate script:
```
The unauthenticated git protocol on port 9418 is no longer supported
```
Use the following Git configuration to resolve the issue:
```sh
git config --global url."https://github.com/".insteadOf git://github.com/
```
@@ -3,7 +3,6 @@
buildPythonPackage,
fetchFromGitHub,
django,
pythonOlder,
pytestCheckHook,
django-polymorphic,
setuptools,
@@ -16,16 +15,14 @@
buildPythonPackage rec {
pname = "django-filer";
version = "3.3.3";
version = "3.4.1";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "django-cms";
repo = "django-filer";
tag = version;
hash = "sha256-EAiqGRdmUii86QwHkZ2BT5vBRaiXpNWbr9INmuYW444=";
hash = "sha256-lbt7Tk+BJX9sesIPjZ0bIpE0RzO4nH/TAdimowfYtkA=";
};
build-system = [ setuptools ];
@@ -52,6 +49,7 @@ buildPythonPackage rec {
'';
meta = {
changelog = "https://github.com/django-cms/django-filer/blob/${src.tag}/CHANGELOG.rst";
description = "File management application for Django";
homepage = "https://github.com/django-cms/django-filer";
license = lib.licenses.mit;
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "niapy";
version = "2.6.0";
version = "2.6.1";
pyproject = true;
src = fetchFromGitHub {
owner = "NiaOrg";
repo = "NiaPy";
tag = "v${version}";
hash = "sha256-o/JHFPsYMHxSkUMfRbR3SJawbzTsoh6ae0pyxLd1bAs=";
hash = "sha256-5Cxxug/FyucU+MkWXMtH43AembfZ/kj5r8nId5664z8=";
};
build-system = [ poetry-core ];
@@ -17,7 +17,7 @@ let
in
buildPythonPackage rec {
pname = "reportlab";
version = "4.4.3";
version = "4.4.5";
pyproject = true;
# See https://bitbucket.org/pypy/compatibility/wiki/reportlab%20toolkit
@@ -25,7 +25,7 @@ buildPythonPackage rec {
src = fetchPypi {
inherit pname version;
hash = "sha256-BzsJddq2lTas0yUYWOawUk7T4IfnHx0NGJWstQrPnHs=";
hash = "sha256-BFfWQqp233s2sCNTSZBMWNj5xgaockVu0EQ2qvrcFRA=";
};
postPatch = ''
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "svg2tikz";
version = "3.3.3";
version = "3.3.4";
pyproject = true;
@@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "xyz2tex";
repo = "svg2tikz";
tag = "v${version}";
hash = "sha256-wc5yzfWWixzO73s+jADpoQli0f3bmu2tBrGgj6DYnUM=";
hash = "sha256-hIVxrUqT9g3e8eKdz1xPqRBiN62BPLav+xPHm6WCAqw=";
};
build-system = [
+2
View File
@@ -345,6 +345,7 @@ mapAliases {
belr = throw "'belr' has been moved to 'linphonePackages.belr'"; # Added 2025-09-20
bfc = throw "bfc has been removed, as it does not build with supported LLVM versions"; # Added 2025-08-10
bindle = throw "bindle has been removed since it is vulnerable to CVE-2025-62518 and upstream has been archived"; # Added 2025-10-24
binserve = throw "'binserve' has been removed because it is unmaintained upstream."; # Added 2025-11-29
bitbucket-server-cli = throw "bitbucket-server-cli has been removed due to lack of maintenance upstream."; # Added 2025-05-27
bitcoin-abc = throw "bitcoin-abc has been removed due to a lack of maintanance"; # Added 2025-06-17
bitcoind-abc = throw "bitcoind-abc has been removed due to a lack of maintanance"; # Added 2025-06-17
@@ -1084,6 +1085,7 @@ mapAliases {
mrxvt = throw "'mrxvt' has been removed due to lack of maintainence upstream"; # Added 2025-09-25
msgpack = throw "msgpack has been split into msgpack-c and msgpack-cxx"; # Added 2025-09-14
msp430NewlibCross = throw "'msp430NewlibCross' has been renamed to/replaced by 'msp430Newlib'"; # Converted to throw 2025-10-27
multipass = throw "multipass was dropped since it was unmaintained."; # Added 2025-11-29
mumps_par = throw "'mumps_par' has been renamed to/replaced by 'mumps-mpi'"; # Converted to throw 2025-10-27
mustache-tcl = throw "'mustache-tcl' has been renamed to/replaced by 'tclPackages.mustache-tcl'"; # Converted to throw 2025-10-27
mutt-with-sidebar = throw "'mutt-with-sidebar' has been renamed to/replaced by 'mutt'"; # Converted to throw 2025-10-27
-2
View File
@@ -11880,8 +11880,6 @@ with pkgs;
// (config.profanity or { })
);
protonvpn-gui = python3Packages.callPackage ../applications/networking/protonvpn-gui { };
psi = libsForQt5.callPackage ../applications/networking/instant-messengers/psi { };
psi-plus = libsForQt5.callPackage ../applications/networking/instant-messengers/psi-plus { };