Merge master into staging-next
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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"
|
||||
],
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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="
|
||||
},
|
||||
|
||||
+5
-1
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
Generated
-2273
File diff suppressed because it is too large
Load Diff
@@ -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:
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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==";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -123,10 +129,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
|
||||
|
||||
@@ -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,3 +1,3 @@
|
||||
module hello-go
|
||||
|
||||
go 1.22.7
|
||||
go 1.25.4
|
||||
|
||||
@@ -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 = [ ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -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;
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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)
|
||||
+10
-14
@@ -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}
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -11889,8 +11889,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 { };
|
||||
|
||||
Reference in New Issue
Block a user