Merge staging-next into staging

This commit is contained in:
Emily 2025-04-23 17:26:19 +01:00
commit 35937cd7d0
84 changed files with 961 additions and 953 deletions

View file

@ -42,7 +42,7 @@ shows the status of tests for the `nixpkgs-unstable` channel.
The tests are conducted by a cluster called [Hydra](https://nixos.org/hydra/), The tests are conducted by a cluster called [Hydra](https://nixos.org/hydra/),
which also builds binary packages from the Nix expressions in Nixpkgs for which also builds binary packages from the Nix expressions in Nixpkgs for
`x86_64-linux`, `i686-linux` and `x86_64-darwin`. `x86_64-linux`, `aarch64-linux`, `x86_64-darwin` and `aarch64-darwin`.
The binaries are made available via a [binary cache](https://cache.nixos.org). The binaries are made available via a [binary cache](https://cache.nixos.org).
The current Nix expressions of the channels are available in the The current Nix expressions of the channels are available in the

View file

@ -196,6 +196,8 @@
- `nodejs_latest` was updated from 23.x to 24.x. `nodejs_23` has been removed in favor of `nodejs_24`. - `nodejs_latest` was updated from 23.x to 24.x. `nodejs_23` has been removed in favor of `nodejs_24`.
- `nodejs_18` package was removed due to upstream End-of-Life in April 2025.
- `nodePackages."@commitlint/config-conventional"` has been removed, as it is a library, and projects should depend on it instead. - `nodePackages."@commitlint/config-conventional"` has been removed, as it is a library, and projects should depend on it instead.
- zigbee2mqtt is now available in version 2.x as `zigbee2mqtt_2`. In NixOS 25.11 we'll remove `zigbee2mqtt_1` and default to `zigbee2mqtt_2`. See the [breaking changes](https://github.com/Koenkk/zigbee2mqtt/discussions/24198) announcement for 2.0.0. - zigbee2mqtt is now available in version 2.x as `zigbee2mqtt_2`. In NixOS 25.11 we'll remove `zigbee2mqtt_1` and default to `zigbee2mqtt_2`. See the [breaking changes](https://github.com/Koenkk/zigbee2mqtt/discussions/24198) announcement for 2.0.0.

View file

@ -301,9 +301,9 @@ rec {
Nix has an [attribute selection operator](https://nixos.org/manual/nix/stable/language/operators#attribute-selection) which is sufficient for such queries, as long as the number of attributes is static. For example: Nix has an [attribute selection operator](https://nixos.org/manual/nix/stable/language/operators#attribute-selection) which is sufficient for such queries, as long as the number of attributes is static. For example:
```nix ```nix
x.a.b == getAttrByPath ["a" "b"] x x.a.b == getAttrFromPath ["a" "b"] x
# and # and
x.${f p}."example.com" == getAttrByPath [ (f p) "example.com" ] x x.${f p}."example.com" == getAttrFromPath [ (f p) "example.com" ] x
``` ```
# Inputs # Inputs

View file

@ -279,6 +279,7 @@ let
naturalSort naturalSort
compareLists compareLists
take take
takeEnd
drop drop
dropEnd dropEnd
sublist sublist

View file

@ -1462,6 +1462,40 @@ rec {
*/ */
take = count: sublist 0 count; take = count: sublist 0 count;
/**
Return the last (at most) N elements of a list.
# Inputs
`count`
: Maximum number of elements to pick
`list`
: Input list
# Type
```
takeEnd :: int -> [a] -> [a]
```
# Examples
:::{.example}
## `lib.lists.takeEnd` usage example
```nix
takeEnd 2 [ "a" "b" "c" "d" ]
=> [ "c" "d" ]
takeEnd 2 [ ]
=> [ ]
```
:::
*/
takeEnd = n: xs: drop (max 0 (length xs - n)) xs;
/** /**
Remove the first (at most) N elements of a list. Remove the first (at most) N elements of a list.

View file

@ -1357,6 +1357,69 @@ runTests {
) )
]; ];
testTakeEnd =
let
inherit (lib) takeEnd;
in
testAllTrue [
(
takeEnd 0 [
1
2
3
] == [ ]
)
(
takeEnd 1 [
1
2
3
] == [ 3 ]
)
(
takeEnd 2 [
1
2
3
] == [
2
3
]
)
(
takeEnd 3 [
1
2
3
] == [
1
2
3
]
)
(
takeEnd 4 [
1
2
3
] == [
1
2
3
]
)
(takeEnd 0 [ ] == [ ])
(takeEnd 1 [ ] == [ ])
(
takeEnd (-1) [
1
2
3
] == [ ]
)
(takeEnd (-1) [ ] == [ ])
];
testDrop = testDrop =
let let
inherit (lib) drop; inherit (lib) drop;

View file

@ -2,15 +2,30 @@
Nixpkgs contains a variety of modules to build custom images for different virtualization platforms and cloud providers, such as e.g. `amazon-image.nix` and `proxmox-lxc.nix`. Nixpkgs contains a variety of modules to build custom images for different virtualization platforms and cloud providers, such as e.g. `amazon-image.nix` and `proxmox-lxc.nix`.
While those can be imported individually, `system.build.images` provides an attribute set mapping variant names to image derivations. Available variants are defined - end extendable - in `image.modules`, an attribute set mapping variant names to a list of NixOS modules. While those can be imported directly, `system.build.images` provides an attribute set mapping variant names to image derivations. Available variants are defined - end extendable - in `image.modules`, an attribute set mapping variant names to NixOS modules.
All of those images can be built via both, their `system.build.image` attribute, and the CLI `nixos-rebuild build-image`. To build i.e. an Amazon image from your existing NixOS configuration: All of those images can be built via both, their `system.build.image` attribute and the `nixos-rebuild build-image` command.
For example, to build an Amazon image from your existing NixOS configuration, run:
```ShellSession ```ShellSession
$ nixos-rebuild build-image --image-variant amazon $ nixos-rebuild build-image --image-variant amazon
$ ls result [...]
nixos-image-amazon-25.05pre-git-x86_64-linux.vhd nix-support Done. The disk image can be found in /nix/store/[hash]-nixos-image-amazon-25.05pre-git-x86_64-linux/nixos-image-amazon-25.05pre-git-x86_64-linux.vpc
``` ```
To get a list of all variants available, run `nixos-rebuild build-image` without arguments. To get a list of all variants available, run `nixos-rebuild build-image` without arguments.
::: {.example #ex-nixos-rebuild-build-image-customize}
## Customize specific image variants {#sec-image-nixos-rebuild-build-image-customize}
The `image.modules` option can be used to set specific options per image variant, in a similar fashion as [specialisations](options.html#opt-specialisation) for generic NixOS configurations.
E.g. images for the cloud provider Linode use `grub2` as a bootloader by default. If you are using `systemd-boot` on other platforms and want to disable it for Linode only, you could use the following options:
``` nix
image.modules.linode = {
boot.loader.systemd-boot.enable = lib.mkForce false;
};
```

View file

@ -161,6 +161,9 @@
"ex-config": [ "ex-config": [
"index.html#ex-config" "index.html#ex-config"
], ],
"ex-nixos-rebuild-build-image-customize": [
"index.html#ex-nixos-rebuild-build-image-customize"
],
"sec-installation-additional-notes": [ "sec-installation-additional-notes": [
"index.html#sec-installation-additional-notes" "index.html#sec-installation-additional-notes"
], ],
@ -215,6 +218,9 @@
"sec-image-nixos-rebuild-build-image": [ "sec-image-nixos-rebuild-build-image": [
"index.html#sec-image-nixos-rebuild-build-image" "index.html#sec-image-nixos-rebuild-build-image"
], ],
"sec-image-nixos-rebuild-build-image-customize": [
"index.html#sec-image-nixos-rebuild-build-image-customize"
],
"sec-image-repart": [ "sec-image-repart": [
"index.html#sec-image-repart" "index.html#sec-image-repart"
], ],

View file

@ -536,8 +536,7 @@
./services/desktops/deepin/dde-api.nix ./services/desktops/deepin/dde-api.nix
./services/desktops/deepin/app-services.nix ./services/desktops/deepin/app-services.nix
./services/desktops/deepin/dde-daemon.nix ./services/desktops/deepin/dde-daemon.nix
./services/desktops/dleyna-renderer.nix ./services/desktops/dleyna.nix
./services/desktops/dleyna-server.nix
./services/desktops/espanso.nix ./services/desktops/espanso.nix
./services/desktops/flatpak.nix ./services/desktops/flatpak.nix
./services/desktops/geoclue2.nix ./services/desktops/geoclue2.nix

View file

@ -1,29 +0,0 @@
# dleyna-renderer service.
{
config,
lib,
pkgs,
...
}:
{
###### interface
options = {
services.dleyna-renderer = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to enable dleyna-renderer service, a DBus service
for handling DLNA renderers.
'';
};
};
};
###### implementation
config = lib.mkIf config.services.dleyna-renderer.enable {
environment.systemPackages = [ pkgs.dleyna-renderer ];
services.dbus.packages = [ pkgs.dleyna-renderer ];
};
}

View file

@ -1,29 +0,0 @@
# dleyna-server service.
{
config,
lib,
pkgs,
...
}:
{
###### interface
options = {
services.dleyna-server = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to enable dleyna-server service, a DBus service
for handling DLNA servers.
'';
};
};
};
###### implementation
config = lib.mkIf config.services.dleyna-server.enable {
environment.systemPackages = [ pkgs.dleyna-server ];
services.dbus.packages = [ pkgs.dleyna-server ];
};
}

View file

@ -0,0 +1,33 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
(lib.mkRenamedOptionModule [ "services" "dleyna-server" ] [ "services" "dleyna" ])
(lib.mkRenamedOptionModule [ "services" "dleyna-renderer" ] [ "services" "dleyna" ])
];
###### interface
options = {
services.dleyna = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to enable dleyna-renderer and dleyna-server service,
a DBus service for handling DLNA servers and renderers.
'';
};
};
};
###### implementation
config = lib.mkIf config.services.dleyna.enable {
environment.systemPackages = [ pkgs.dleyna ];
services.dbus.packages = [ pkgs.dleyna ];
};
}

View file

@ -73,7 +73,8 @@ in
serviceConfig = { serviceConfig = {
Type = "notify"; Type = "notify";
ExecStart = "${pkgs.runtimeShell} -c 'source ${config.system.build.setEnvironment}; exec ${cfg.package}/bin/emacs --fg-daemon'"; ExecStart = "${pkgs.runtimeShell} -c 'source ${config.system.build.setEnvironment}; exec ${cfg.package}/bin/emacs --fg-daemon'";
ExecStop = "${cfg.package}/bin/emacsclient --eval (kill-emacs)"; # Emacs exits with exit code 15 (SIGTERM), when stopped by systemd.
SuccessExitStatus = 15;
Restart = "always"; Restart = "always";
}; };

View file

@ -509,9 +509,27 @@ in
upstreams.dependency-track.servers."localhost:${toString cfg.port}" = { }; upstreams.dependency-track.servers."localhost:${toString cfg.port}" = { };
virtualHosts.${cfg.nginx.domain} = { virtualHosts.${cfg.nginx.domain} = {
locations = { locations = {
"/".alias = "${cfg.package.frontend}/dist/"; "/" = {
alias = "${cfg.package.frontend}/dist/";
index = "index.html";
tryFiles = "$uri $uri/ /index.html";
extraConfig = ''
location ~ (index\.html)$ {
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires 0;
}
'';
};
"/api".proxyPass = "http://dependency-track"; "/api".proxyPass = "http://dependency-track";
"= /static/config.json".alias = frontendConfigFile; "= /static/config.json" = {
alias = frontendConfigFile;
extraConfig = ''
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires 0;
'';
};
}; };
}; };
}; };

View file

@ -245,8 +245,7 @@ in
services.system-config-printer.enable = config.services.printing.enable; services.system-config-printer.enable = config.services.printing.enable;
# For BCC's Sharing panel. # For BCC's Sharing panel.
services.dleyna-renderer.enable = mkDefault true; services.dleyna.enable = mkDefault true;
services.dleyna-server.enable = mkDefault true;
services.gnome.gnome-user-share.enable = mkDefault true; services.gnome.gnome-user-share.enable = mkDefault true;
services.gnome.rygel.enable = mkDefault true; services.gnome.rygel.enable = mkDefault true;

View file

@ -282,8 +282,7 @@ in
programs.dconf.enable = true; programs.dconf.enable = true;
security.polkit.enable = true; security.polkit.enable = true;
services.accounts-daemon.enable = true; services.accounts-daemon.enable = true;
services.dleyna-renderer.enable = mkDefault true; services.dleyna.enable = mkDefault true;
services.dleyna-server.enable = mkDefault true;
services.power-profiles-daemon.enable = mkDefault true; services.power-profiles-daemon.enable = mkDefault true;
services.gnome.at-spi2-core.enable = true; services.gnome.at-spi2-core.enable = true;
services.gnome.evolution-data-server.enable = true; services.gnome.evolution-data-server.enable = true;

View file

@ -45,22 +45,27 @@ import ./make-test-python.nix (
}; };
}; };
testScript = '' testScript =
import json # python
''
import json
start_all() start_all()
server.wait_for_unit("dependency-track.service") server.wait_for_unit("dependency-track.service")
server.wait_until_succeeds( server.wait_until_succeeds(
"journalctl -o cat -u dependency-track.service | grep 'Dependency-Track is ready'" "journalctl -o cat -u dependency-track.service | grep 'Dependency-Track is ready'"
)
server.wait_for_open_port(${toString dependencyTrackPort})
with subtest("version api returns correct version"):
version = json.loads(
server.succeed("curl http://localhost/api/version")
) )
assert version["version"] == "${pkgs.dependency-track.version}" server.wait_for_open_port(${toString dependencyTrackPort})
'';
with subtest("version api returns correct version"):
version = json.loads(
server.succeed("curl http://localhost/api/version")
)
assert version["version"] == "${pkgs.dependency-track.version}"
with subtest("nginx serves frontend"):
server.succeed("curl http://localhost/ | grep \"<title>Dependency-Track</title>\"")
'';
} }
) )

View file

@ -22,6 +22,7 @@ import ./make-test-python.nix (
]; ];
services.netdata = { services.netdata = {
enable = true; enable = true;
package = pkgs.netdataCloud;
python.recommendedPythonPackages = true; python.recommendedPythonPackages = true;
configDir."apps_groups.conf" = pkgs.writeText "apps_groups.conf" '' configDir."apps_groups.conf" = pkgs.writeText "apps_groups.conf" ''
@ -32,35 +33,25 @@ import ./make-test-python.nix (
}; };
testScript = '' testScript = ''
start_all() start_all()
netdata.wait_for_unit("netdata.service") netdata.wait_for_unit("netdata.service")
# wait for the service to listen before sending a request # wait for the service to listen before sending a request
netdata.wait_for_open_port(19999) netdata.wait_for_open_port(19999)
# check if the netdata main page loads. # check if the netdata main page loads.
netdata.succeed("curl --fail http://localhost:19999/") netdata.succeed("curl --fail http://127.0.0.1:19999")
netdata.succeed("sleep 4") netdata.succeed("sleep 4")
# check if netdata can read disk ops for root owned processes. # check if netdata api shows correct os
# if > 0, successful. verifies both netdata working and url = "http://127.0.0.1:19999/api/v3/info"
# apps.plugin has elevated capabilities. filter = '.agents[0].application.os.os | . == "NixOS"'
url = "http://localhost:19999/api/v1/data?chart=user.root_disk_physical_io"
filter = '[.data[range(10)][2]] | add | . < 0'
cmd = f"curl -s {url} | jq -e '{filter}'" cmd = f"curl -s {url} | jq -e '{filter}'"
netdata.wait_until_succeeds(cmd) netdata.wait_until_succeeds(cmd)
# check if the control socket is available # check if the control socket is available
netdata.succeed("sudo netdatacli ping") netdata.succeed("sudo netdatacli ping")
# check that custom groups in apps_groups.conf are used.
# if > 0, successful. verifies that user-specified apps_group.conf
# is used.
url = "http://localhost:19999/api/v1/data?chart=app.netdata_test_cpu_utilization"
filter = '[.data[range(10)][2]] | add | . > 0'
cmd = f"curl -s {url} | jq -e '{filter}'"
netdata.wait_until_succeeds(cmd, timeout=30)
''; '';
} }
) )

View file

@ -27,7 +27,6 @@
SDL2, SDL2,
SDL2_mixer, SDL2_mixer,
wayland-protocols, wayland-protocols,
CoreServices,
callPackage, callPackage,
nixosTests, nixosTests,
@ -44,6 +43,15 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-8rGnW+VtqNJYqUqQDp0yOVIQd7w+cq7PIpqqIQPhkbE="; hash = "sha256-8rGnW+VtqNJYqUqQDp0yOVIQd7w+cq7PIpqqIQPhkbE=";
}; };
prePatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
# Disable code signing on macOS
substituteInPlace cmake/macros.cmake --replace-fail "codesign" "true"
substituteInPlace cmake/system/apple.cmake --replace-fail "if(APPLE)" "if(false)"
# calls otool -L on /usr/lib/libSystem.B.dylib and fails because it doesn't exist
substituteInPlace cmake/applebundle.cmake --replace-fail 'fixup_bundle("''${TARGET_BUNDLE_DIR}" "" "")' ""
'';
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
pkg-config pkg-config
@ -73,8 +81,6 @@ stdenv.mkDerivation (finalAttrs: {
++ lib.optional stdenv.hostPlatform.isLinux wayland-protocols ++ lib.optional stdenv.hostPlatform.isLinux wayland-protocols
++ lib.optional (!stdenv.hostPlatform.isDarwin) opencl-headers; ++ lib.optional (!stdenv.hostPlatform.isDarwin) opencl-headers;
cmakeFlags = lib.optional stdenv.hostPlatform.isDarwin "-DCORESERVICES_LIB=${CoreServices}";
# error: "The plain signature for target_link_libraries has already been used" # error: "The plain signature for target_link_libraries has already been used"
doCheck = false; doCheck = false;
@ -82,17 +88,27 @@ stdenv.mkDerivation (finalAttrs: {
gtest gtest
]; ];
# Set the data directory for each executable. We cannot set it at build time postInstall =
# with the PKGDATADIR cmake variable because each executable needs a specific if stdenv.hostPlatform.isDarwin then
# one. ''
# This is not needed on darwin, since on that platform data files are saved mkdir -p $out/Applications
# in *.app/Contents/Resources/ too, and are picked up automatically. mv $out/*.app $out/Applications/
postInstall = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
for prog in $out/bin/*; do mkdir -p $out/bin
wrapProgram "$prog" \ ln -s $out/Applications/vengi-voxconvert.app/Contents/MacOS/vengi-voxconvert $out/bin/vengi-voxconvert
--set CORE_PATH $out/share/$(basename "$prog")/ ''
done else
''; # Set the data directory for each executable. We cannot set it at build time
# with the PKGDATADIR cmake variable because each executable needs a specific
# one.
# This is not needed on darwin, since on that platform data files are saved
# in *.app/Contents/Resources/ too, and are picked up automatically.
''
for prog in $out/bin/*; do
wrapProgram "$prog" \
--set CORE_PATH $out/share/$(basename "$prog")/
done
'';
passthru.tests = { passthru.tests = {
voxconvert-roundtrip = callPackage ./test-voxconvert-roundtrip.nix { }; voxconvert-roundtrip = callPackage ./test-voxconvert-roundtrip.nix { };
@ -117,6 +133,5 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
maintainers = with maintainers; [ fgaz ]; maintainers = with maintainers; [ fgaz ];
platforms = platforms.all; platforms = platforms.all;
broken = stdenv.hostPlatform.isDarwin;
}; };
}) })

View file

@ -1,39 +1,45 @@
{ {
fetchurl, fetchFromGitHub,
lib, lib,
stdenv, stdenv,
gtk, gtk,
pkg-config, pkg-config,
libgsf, libgsf,
libofx, libofx,
autoreconfHook,
intltool, intltool,
wrapGAppsHook3, wrapGAppsHook3,
libsoup_2_4,
adwaita-icon-theme, adwaita-icon-theme,
nix-update-script,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "grisbi"; pname = "grisbi";
version = "2.0.5"; version = "3.0.4";
src = fetchurl { src = fetchFromGitHub {
url = "mirror://sourceforge/grisbi/${pname}-${version}.tar.bz2"; owner = "grisbi";
sha256 = "sha256-vTrbq/xLTfwF7/YtKzZFiiSw8A0HzzWin2ry8gPHej8="; repo = "grisbi";
tag = "upstream_version_${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
hash = "sha256-3E57M/XE4xyo3ppVceDA4OFDnVicosCY8ikE2gDJoUQ=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config
wrapGAppsHook3 wrapGAppsHook3
intltool intltool
autoreconfHook
]; ];
buildInputs = [ buildInputs = [
gtk gtk
libgsf libgsf
libofx libofx
libsoup_2_4
adwaita-icon-theme adwaita-icon-theme
]; ];
passthru.updateScript = nix-update-script { };
meta = with lib; { meta = with lib; {
description = "Personnal accounting application"; description = "Personnal accounting application";
mainProgram = "grisbi"; mainProgram = "grisbi";
@ -50,4 +56,4 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ layus ]; maintainers = with maintainers; [ layus ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} })

View file

@ -1,53 +0,0 @@
{
stdenv,
lib,
meson,
ninja,
pkg-config,
fetchFromGitHub,
fetchpatch,
dleyna-core,
glib,
}:
stdenv.mkDerivation rec {
pname = "dleyna-connector-dbus";
version = "0.4.1";
src = fetchFromGitHub {
owner = "phako";
repo = "dleyna-connector-dbus";
rev = "v${version}";
sha256 = "WDmymia9MD3BRU6BOCzCIMrz9V0ACRzmEGqjbbuUmlA=";
};
patches = [
# Fix build with meson 1.2. We use the gentoo patch instead of the
# usptream one because the latter only applies on the libsoup_3 based
# merged dLeyna project.
# https://gitlab.gnome.org/World/dLeyna/-/merge_requests/6
(fetchpatch {
url = "https://github.com/gentoo/gentoo/raw/4a0982b49a1d94aa785b05d9b7d256c26c499910/net-libs/dleyna-connector-dbus/files/meson-1.2.0.patch";
sha256 = "sha256-/p2OaPO5ghWtPotwIir2TtcFF5IDFN9FFuyqPHevuFI=";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
dleyna-core
glib
];
meta = with lib; {
description = "D-Bus API for the dLeyna services";
homepage = "https://github.com/phako/dleyna-connector-dbus";
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.unix;
license = licenses.lgpl21Only;
};
}

View file

@ -1,53 +0,0 @@
{
stdenv,
lib,
fetchFromGitHub,
meson,
ninja,
pkg-config,
gupnp,
}:
stdenv.mkDerivation rec {
pname = "dleyna-core";
version = "0.7.0";
outputs = [
"out"
"dev"
];
setupHook = ./setup-hook.sh;
src = fetchFromGitHub {
owner = "phako";
repo = "dleyna-core";
rev = "v${version}";
sha256 = "i4L9+iyAdBNtgImbD54jkjYL5hvzeZ2OaAyFrcFmuG0=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
propagatedBuildInputs = [
gupnp
];
env.NIX_CFLAGS_COMPILE = toString (
lib.optionals stdenv.cc.isClang [
"-Wno-error=implicit-function-declaration"
"-Wno-error=int-conversion"
]
);
meta = with lib; {
description = "Library of utility functions that are used by the higher level dLeyna";
homepage = "https://github.com/phako/dleyna-core";
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.unix;
license = licenses.lgpl21Only;
};
}

View file

@ -1,8 +0,0 @@
addDleynaConnectorPath () {
if test -d "$1/lib/dleyna-1.0/connectors"
then
export DLEYNA_CONNECTOR_PATH="${DLEYNA_CONNECTOR_PATH-}${DLEYNA_CONNECTOR_PATH:+:}$1/lib/dleyna-1.0/connectors"
fi
}
addEnvHooks "$targetOffset" addDleynaConnectorPath

View file

@ -1,76 +0,0 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
meson,
ninja,
pkg-config,
dleyna-connector-dbus,
dleyna-core,
gssdp,
gupnp,
gupnp-av,
gupnp-dlna,
libsoup_2_4,
makeWrapper,
docbook-xsl-nons,
libxslt,
}:
stdenv.mkDerivation rec {
pname = "dleyna-renderer";
version = "0.7.2";
src = fetchFromGitHub {
owner = "phako";
repo = "dleyna-renderer";
rev = "v${version}";
sha256 = "sha256-bGasT3XCa7QHV3D7z59TSHoqWksNSIgaO0z9zYfHHuw=";
};
patches = [
# Fix build with meson 1.2. We use the gentoo patch instead of the
# usptream one because the latter only applies on the libsoup_3 based
# merged dLeyna project.
# https://gitlab.gnome.org/World/dLeyna/-/merge_requests/6
(fetchpatch {
url = "https://github.com/gentoo/gentoo/raw/2ebe20ff4cda180cc248d31a021107d08ecf39d9/net-libs/dleyna-renderer/files/meson-1.2.0.patch";
sha256 = "sha256-/p2OaPO5ghWtPotwIir2TtcFF5IDFN9FFuyqPHevuFI=";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
makeWrapper
# manpage
docbook-xsl-nons
libxslt # for xsltproc
];
buildInputs = [
dleyna-core
dleyna-connector-dbus # runtime dependency to be picked up to DLEYNA_CONNECTOR_PATH
gssdp
gupnp
gupnp-av
gupnp-dlna
libsoup_2_4
];
preFixup = ''
wrapProgram "$out/libexec/dleyna-renderer-service" \
--set DLEYNA_CONNECTOR_PATH "$DLEYNA_CONNECTOR_PATH"
'';
meta = with lib; {
description = "Library to discover and manipulate Digital Media Renderers";
homepage = "https://github.com/phako/dleyna-renderer";
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.unix;
license = licenses.lgpl21Only;
};
}

View file

@ -1,70 +0,0 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
meson,
ninja,
makeWrapper,
pkg-config,
dleyna-core,
dleyna-connector-dbus,
gssdp,
gupnp,
gupnp-av,
gupnp-dlna,
libsoup_2_4,
}:
stdenv.mkDerivation rec {
pname = "dleyna-server";
version = "0.7.2";
src = fetchFromGitHub {
owner = "phako";
repo = pname;
rev = "v${version}";
sha256 = "sha256-jlF9Lr/NG+Fsy/bB7aLb7xOLqel8GueJK5luo9rsDME=";
};
patches = [
# Fix build with meson 1.2. We use the gentoo patch instead of the
# usptream one because the latter only applies on the libsoup_3 based
# merged dLeyna project.
# https://gitlab.gnome.org/World/dLeyna/-/merge_requests/6
(fetchpatch {
url = "https://github.com/gentoo/gentoo/raw/2e3a1f4f7a1ef0c3e387389142785d98b5834e60/net-misc/dleyna-server/files/meson-1.2.0.patch";
sha256 = "sha256-/p2OaPO5ghWtPotwIir2TtcFF5IDFN9FFuyqPHevuFI=";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
makeWrapper
];
buildInputs = [
dleyna-core
dleyna-connector-dbus # runtime dependency to be picked up to DLEYNA_CONNECTOR_PATH
gssdp
gupnp
gupnp-av
gupnp-dlna
libsoup_2_4
];
preFixup = ''
wrapProgram "$out/libexec/dleyna-server-service" \
--set DLEYNA_CONNECTOR_PATH "$DLEYNA_CONNECTOR_PATH"
'';
meta = with lib; {
description = "Library to discover, browse and manipulate Digital Media Servers";
homepage = "https://github.com/phako/dleyna-server";
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.unix;
license = licenses.lgpl21Only;
};
}

View file

@ -0,0 +1,57 @@
{
stdenv,
lib,
docutils,
fetchFromGitLab,
meson,
ninja,
pkg-config,
gupnp_1_6,
gupnp-av,
gupnp-dlna,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dleyna";
version = "0.8.3";
outputs = [
"out"
"dev"
];
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "dLeyna";
tag = "v${finalAttrs.version}";
hash = "sha256-ti4yF8sALpWyrdQTt/jVrMKQ4PLhakEi620fJNMxT0c=";
};
nativeBuildInputs = [
meson
ninja
docutils
pkg-config
];
buildInputs = [
gupnp_1_6
gupnp-dlna
gupnp-av
gupnp-dlna
];
mesonFlags = [
# Sphinx docs not installed, do not depend on sphinx
"-Ddocs=false"
];
meta = {
description = "Library of utility functions that are used by the higher level dLeyna";
homepage = "https://gitlab.gnome.org/World/dLeyna";
maintainers = with lib.maintainers; [ jtojnar ];
platforms = lib.platforms.unix;
license = lib.licenses.lgpl21Only;
};
})

View file

@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
koral koral
]; ];
mainProgram = "dysk"; mainProgram = "dysk";
platforms = platforms.linux;
}; };
} }

View file

@ -10,18 +10,22 @@
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "equicord"; pname = "equicord";
version = "1.11.4"; # Upstream discourages inferring the package version from the package.json found in
# the Equicord repository. Dates as tags (and automatic releases) were the compromise
# we came to with upstream. Please do not change the version schema (e.g., to semver)
# unless upstream changes the tag schema from dates.
version = "2025-04-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Equicord"; owner = "Equicord";
repo = "Equicord"; repo = "Equicord";
tag = "v${finalAttrs.version}"; tag = "${finalAttrs.version}";
hash = "sha256-BjAp+bubpG9tTo8y5LWcTCnpLbiyuY1Q6ZnprgeKoZg="; hash = "sha256-pAuNqPrQBeL2qPIoIvyBl1PrUBz81TrBd5RT15Iuuus=";
}; };
pnpmDeps = pnpm_9.fetchDeps { pnpmDeps = pnpm_9.fetchDeps {
inherit (finalAttrs) pname version src; inherit (finalAttrs) pname version src;
hash = "sha256-4uCo/pQ4f8k/7DNpCPDAeqfroZ9icFiTwapwS10uWkE="; hash = "sha256-fjfzBy1Z7AUKA53yjjCQ6yasHc5QMaOBtXtXA5fNK5s=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -52,7 +56,12 @@ stdenv.mkDerivation (finalAttrs: {
runHook postInstall runHook postInstall
''; '';
passthru.updateScript = nix-update-script { }; passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^\d{4}-\d{2}-\d{2}$"
];
};
meta = { meta = {
description = "The other cutest Discord client mod"; description = "The other cutest Discord client mod";

View file

@ -7,13 +7,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "exploitdb"; pname = "exploitdb";
version = "2025-04-19"; version = "2025-04-23";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "exploit-database"; owner = "exploit-database";
repo = "exploitdb"; repo = "exploitdb";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-Gq+Yg9Qf1D86vM0d+FFPneztm0KMdbheghmef334+Ps="; hash = "sha256-K5WQhYVO3z6gR2Jl5yJJW8vK8BA89iAwPzhq4jX27y0=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -7,18 +7,19 @@
xcbuild, xcbuild,
nix-update-script, nix-update-script,
}: }:
buildNpmPackage rec { buildNpmPackage rec {
pname = "firebase-tools"; pname = "firebase-tools";
version = "14.1.0"; version = "14.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "firebase"; owner = "firebase";
repo = "firebase-tools"; repo = "firebase-tools";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-7yxDBK3A2Yosp/83JmFpV3cm+YEDxHMLVj5B+rwSIR8="; hash = "sha256-ga0UsU/VTDIoz88XxdQIGX+md1G21DgctYYmXPr3zbQ=";
}; };
npmDepsHash = "sha256-r6vonG5edL/nTtyj8uXc/4w2xgihRce/Md+umxomTzo="; npmDepsHash = "sha256-XiOLtZCm3qxd2Oq3vqMzxU64y37ZZfhivvkxT6m7ES4=";
postPatch = '' postPatch = ''
ln -s npm-shrinkwrap.json package-lock.json ln -s npm-shrinkwrap.json package-lock.json
@ -32,9 +33,7 @@ buildNpmPackage rec {
xcbuild xcbuild
]; ];
env = { env.PUPPETEER_SKIP_DOWNLOAD = true;
PUPPETEER_SKIP_DOWNLOAD = true;
};
passthru.updateScript = nix-update-script { }; passthru.updateScript = nix-update-script { };

View file

@ -6,7 +6,7 @@
babl, babl,
dbus, dbus,
desktop-file-utils, desktop-file-utils,
dleyna-renderer, dleyna,
gdk-pixbuf, gdk-pixbuf,
gegl, gegl,
geocode-glib_2, geocode-glib_2,
@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
babl babl
dbus dbus
dleyna-renderer dleyna
gdk-pixbuf gdk-pixbuf
gegl gegl
geocode-glib_2 geocode-glib_2

View file

@ -0,0 +1,36 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule {
pname = "goarista";
version = "0-unstable-2025-03-24";
src = fetchFromGitHub {
owner = "aristanetworks";
repo = "goarista";
rev = "2af7f36a2220911d96d9d5cf8dee641a7c01eb07";
hash = "sha256-M/gZVn4ioaxRwbqlee3yeRfWIjaG6mFq2Z+XL5mGjoA=";
};
vendorHash = "sha256-5vdVHTQOXsYc8EdEGEAXk2ZX/6o88gHxBzfwETcwXvA=";
checkFlags =
let
skippedTests = [
"TestDeepSizeof"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ "TestDialTCPTimeoutWithTOS" ];
in
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
meta = {
description = "Collection of open-source tools for network management and monitoring mostly based around gNMI";
homepage = "https://github.com/aristanetworks/goarista";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.haylin ];
mainProgram = "gnmi";
};
}

View file

@ -7,13 +7,13 @@
buildGoModule rec { buildGoModule rec {
pname = "gosmee"; pname = "gosmee";
version = "0.23.4"; version = "0.24.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "chmouel"; owner = "chmouel";
repo = "gosmee"; repo = "gosmee";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-orQDLuEbfxWWXmothxfTgeaMiqzJeTOFeNnPNDHwnYU="; hash = "sha256-hE9iZkIkMzCICw9n1XhJ2PO5SvqE0EVhLJQO7tCUw3U=";
}; };
vendorHash = null; vendorHash = null;

View file

@ -26,7 +26,7 @@
json-glib, json-glib,
avahi, avahi,
tinysparql, tinysparql,
dleyna-server, dleyna,
itstool, itstool,
totem-pl-parser, totem-pl-parser,
}: }:
@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
avahi avahi
libmediaart libmediaart
tinysparql tinysparql
dleyna-server dleyna
gst_all_1.gstreamer gst_all_1.gstreamer
]; ];

View file

@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
doxygen,
graphviz,
pkg-config,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gz-cmake";
version = "4.1.1";
src = fetchFromGitHub {
owner = "gazebosim";
repo = "gz-cmake";
tag = "gz-cmake${lib.versions.major finalAttrs.version}_${finalAttrs.version}";
hash = "sha256-BWgRm+3UW65Cu7TqXtFFG05JlYF52dbpAsIE8aDnJM0=";
};
nativeBuildInputs = [
cmake
doxygen
graphviz
pkg-config
];
meta = {
description = "CMake modules to build Gazebo projects";
homepage = "https://github.com/gazebosim/gz-cmake";
changelog = "https://github.com/gazebosim/gz-cmake/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ guelakais ];
};
})

View file

@ -9,13 +9,13 @@
buildGoModule rec { buildGoModule rec {
pname = "ignite-cli"; pname = "ignite-cli";
version = "28.8.2"; version = "28.9.0";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "cli"; repo = "cli";
owner = "ignite"; owner = "ignite";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-d7+T0VlmKQgmAJ8eyDg8JDL9HHJbU+nOTvJP0GTuIRY="; hash = "sha256-NLQ+Zd77JyHuih7hPeM067fcpny1V50GFDLGhtclGms=";
}; };
vendorHash = "sha256-EaOs3m5AN0EYMO8j3mkKPOQwapi0WRaTIUJKTjDpmCo="; vendorHash = "sha256-EaOs3m5AN0EYMO8j3mkKPOQwapi0WRaTIUJKTjDpmCo=";

View file

@ -9,16 +9,16 @@
buildGoModule rec { buildGoModule rec {
pname = "kubecolor"; pname = "kubecolor";
version = "0.5.0"; version = "0.5.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kubecolor"; owner = "kubecolor";
repo = "kubecolor"; repo = "kubecolor";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Q3Bl1ejuSpiMpQgiqKa2x/g02hNx326GM2MIDoi7q7o="; sha256 = "sha256-FyHTceFpB3Osj8SUw+IRk+JWnoREVZgl8YHczDyY+Ak=";
}; };
vendorHash = "sha256-SWJbJ/zr9ygZYUuH8QNvgmUXdxb/3OViai48CFmWmXw="; vendorHash = "sha256-eF0NcymLmRsFetkI67ZVUfOcIYtht0iYFcPIy2CWr+M=";
ldflags = [ ldflags = [
"-s" "-s"

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = lib.optionals useTBB [ propagatedBuildInputs = lib.optionals useTBB [
# 2022.0 crashes on macOS at the moment # 2022.0 crashes on macOS at the moment
tbb_2021_11 tbb_2021_11
]; ];

View file

@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "mathmod"; pname = "mathmod";
version = "12.0"; version = "12.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "parisolab"; owner = "parisolab";
repo = "mathmod"; repo = "mathmod";
tag = finalAttrs.version; tag = finalAttrs.version;
hash = "sha256-h1iI7bheJVfE2+0m6Yk7QNCkl9Vye97tqb/WkQExVcQ="; hash = "sha256-gDIYDXI9X24JAM1HP10EhJXkHZV2X8QngD5KPCUqdyI=";
}; };
patches = [ ./fix-paths.patch ]; patches = [ ./fix-paths.patch ];

View file

@ -4,13 +4,13 @@
fetchYarnDeps, fetchYarnDeps,
makeWrapper, makeWrapper,
mkYarnPackage, mkYarnPackage,
nodejs_18, nodejs_20,
callPackage, callPackage,
}: }:
let let
data = lib.importJSON ./pin.json; data = lib.importJSON ./pin.json;
nodejs = nodejs_18; nodejs = nodejs_20;
matrix-sdk-crypto-nodejs = callPackage ./matrix-sdk-crypto-nodejs-0_1_0-beta_3/package.nix { }; matrix-sdk-crypto-nodejs = callPackage ./matrix-sdk-crypto-nodejs-0_1_0-beta_3/package.nix { };
in in
mkYarnPackage rec { mkYarnPackage rec {
@ -59,5 +59,7 @@ mkYarnPackage rec {
chvp chvp
]; ];
license = licenses.asl20; license = licenses.asl20;
# Depends on nodejs_18 that has been removed.
broken = true;
}; };
} }

View file

@ -2,7 +2,7 @@ src: version:
{ {
lib, lib,
fetchYarnDeps, fetchYarnDeps,
nodejs_18, nodejs_20,
fixup-yarn-lock, fixup-yarn-lock,
stdenv, stdenv,
yarn, yarn,
@ -19,8 +19,8 @@ stdenv.mkDerivation {
nativeBuildInputs = [ nativeBuildInputs = [
fixup-yarn-lock fixup-yarn-lock
nodejs_18 nodejs_20
(yarn.override { nodejs = nodejs_18; }) (yarn.override { nodejs = nodejs_20; })
]; ];
configurePhase = '' configurePhase = ''
@ -55,5 +55,7 @@ stdenv.mkDerivation {
description = "Frontend for Mealie"; description = "Frontend for Mealie";
license = licenses.agpl3Only; license = licenses.agpl3Only;
maintainers = with maintainers; [ litchipi ]; maintainers = with maintainers; [ litchipi ];
# Depends on nodejs_18 that has been removed.
broken = true;
}; };
} }

View file

@ -1,21 +1,21 @@
{ {
"version": "3.137.0", "version": "3.139.1",
"assets": { "assets": {
"x86_64-linux": { "x86_64-linux": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.137.0/mirrord_linux_x86_64", "url": "https://github.com/metalbear-co/mirrord/releases/download/3.139.1/mirrord_linux_x86_64",
"hash": "sha256-IrsvX7Z+8k3OvtojhWuSeeiO75Okth6MCF3sPs3jIZo=" "hash": "sha256-VBmPo94DPWh/fvA8ZZfxcqCab9ZNqCVXKLwNcBMZm4E="
}, },
"aarch64-linux": { "aarch64-linux": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.137.0/mirrord_linux_aarch64", "url": "https://github.com/metalbear-co/mirrord/releases/download/3.139.1/mirrord_linux_aarch64",
"hash": "sha256-E5Jhx3FsaVNCbvC1SH0D2GPsgQDwKkMPe/wR9MoVzKs=" "hash": "sha256-ct/NyfVXI/GlR4HKAKX2vKrzU95+u2tO7ltw2aEbji0="
}, },
"aarch64-darwin": { "aarch64-darwin": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.137.0/mirrord_mac_universal", "url": "https://github.com/metalbear-co/mirrord/releases/download/3.139.1/mirrord_mac_universal",
"hash": "sha256-PKW2K5ITt1wagtET6MVx2rTn9CcqqujKaYt0XleIyzY=" "hash": "sha256-selcbXCfkvKVzNClhYkssVY3CvZFH8uXzYGKhA6N63w="
}, },
"x86_64-darwin": { "x86_64-darwin": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.137.0/mirrord_mac_universal", "url": "https://github.com/metalbear-co/mirrord/releases/download/3.139.1/mirrord_mac_universal",
"hash": "sha256-PKW2K5ITt1wagtET6MVx2rTn9CcqqujKaYt0XleIyzY=" "hash": "sha256-selcbXCfkvKVzNClhYkssVY3CvZFH8uXzYGKhA6N63w="
} }
} }
} }

View file

@ -19,20 +19,24 @@
xmessage, xmessage,
xterm, xterm,
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "notion"; pname = "notion";
version = "4.0.2"; version = "4.0.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "raboof"; owner = "raboof";
repo = "notion"; repo = "notion";
rev = finalAttrs.version; tag = finalAttrs.version;
hash = "sha256-u5KoTI+OcnQu9m8/Lmsmzr8lEk9tulSE7RRFhj1oXJM="; hash = "sha256-Ll4thDS8fHxkm2IuGjePPVPyPPrz7yDzpKVloFuk/yE=";
}; };
# error: 'PATH_MAX' undeclared
postPatch = '' postPatch = ''
# Fix build failure due missing headers
sed -i '1i#define _POSIX_C_SOURCE 200809L' mod_notionflux/notionflux/notionflux.c
sed -i '2i#include <stdio.h>' mod_notionflux/notionflux/notionflux.c
sed -i '3i#include <string.h>' mod_notionflux/notionflux/notionflux.c
# error: 'PATH_MAX' undeclared
sed 1i'#include <linux/limits.h>' -i mod_notionflux/notionflux/notionflux.c sed 1i'#include <linux/limits.h>' -i mod_notionflux/notionflux/notionflux.c
''; '';
@ -92,6 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
maintainers = with lib.maintainers; [ maintainers = with lib.maintainers; [
jfb jfb
raboof raboof
NotAShelf
]; ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
}; };

View file

@ -5,7 +5,7 @@
makeBinaryWrapper, makeBinaryWrapper,
makeDesktopItem, makeDesktopItem,
copyDesktopItems, copyDesktopItems,
nodejs_18, nodejs_20,
electron, electron,
python3, python3,
nix-update-script, nix-update-script,
@ -29,7 +29,7 @@ buildNpmPackage rec {
npmDepsHash = "sha256-UqjYNXdNoQmirIgU9DRgkp14SIrawfrfi9mD2h6ACyU="; npmDepsHash = "sha256-UqjYNXdNoQmirIgU9DRgkp14SIrawfrfi9mD2h6ACyU=";
nodejs = nodejs_18; nodejs = nodejs_20;
nativeBuildInputs = [ nativeBuildInputs = [
copyDesktopItems copyDesktopItems
@ -97,5 +97,7 @@ buildNpmPackage rec {
maintainers = [ ]; maintainers = [ ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "open-stage-control"; mainProgram = "open-stage-control";
# Depends on nodejs_18 that has been removed.
broken = true;
}; };
} }

View file

@ -3,19 +3,18 @@
stdenv, stdenv,
perlPackages, perlPackages,
fetchFromGitHub, fetchFromGitHub,
fetchpatch,
shortenPerlShebang, shortenPerlShebang,
}: }:
perlPackages.buildPerlPackage rec { perlPackages.buildPerlPackage rec {
pname = "pgformatter"; pname = "pgformatter";
version = "5.5"; version = "5.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "darold"; owner = "darold";
repo = "pgFormatter"; repo = "pgFormatter";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-4KtrsckO9Q9H0yIM0877YvWaDW02CQVAQiOKD919e9w="; hash = "sha256-EJLAP1uBmWxWEsdLJYTuViMv4o0iEi2fqy79ixyRijU=";
}; };
outputs = [ "out" ]; outputs = [ "out" ];
@ -25,14 +24,6 @@ perlPackages.buildPerlPackage rec {
# Avoid creating perllocal.pod, which contains a timestamp # Avoid creating perllocal.pod, which contains a timestamp
installTargets = [ "pure_install" ]; installTargets = [ "pure_install" ];
patches = [
# Fix an uninitialized variable error. Remove with the next release.
(fetchpatch {
url = "https://github.com/darold/pgFormatter/commit/c2622c47d48cee47effecbf58a588c3cd3a7bf1a.patch";
sha256 = "sha256-WnQIOvfuzL2HrwtL0HaaYObrBxhXDu82jxGcqggQVhc=";
})
];
# Makefile.PL only accepts DESTDIR and INSTALLDIRS, but we need to set more to make this work for NixOS. # Makefile.PL only accepts DESTDIR and INSTALLDIRS, but we need to set more to make this work for NixOS.
patchPhase = '' patchPhase = ''
substituteInPlace pg_format \ substituteInPlace pg_format \

View file

@ -8,7 +8,7 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "quantlib"; pname = "quantlib";
version = "1.37"; version = "1.38";
outputs = [ outputs = [
"out" "out"
@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "lballabio"; owner = "lballabio";
repo = "QuantLib"; repo = "QuantLib";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-Q8Bz94yd4A0VCDldtiichFKgiZMN4dHHJJep/tcE/z0="; hash = "sha256-4a86sGUOz/B5IQHE41r5+OTvR9es4FgXeufy3bKRWAc=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View file

@ -7,11 +7,11 @@
appimageTools.wrapType2 rec { appimageTools.wrapType2 rec {
pname = "quiet"; pname = "quiet";
version = "4.0.3"; version = "4.1.2";
src = fetchurl { src = fetchurl {
url = "https://github.com/TryQuiet/quiet/releases/download/@quiet/desktop@${version}/Quiet-${version}.AppImage"; url = "https://github.com/TryQuiet/quiet/releases/download/@quiet/desktop@${version}/Quiet-${version}.AppImage";
hash = "sha256-BeN0O/Q95M42+2iRtYoko0mM4rLFVlzeRPXdls+5zOs="; hash = "sha256-oYN+oXUvSeAR+gaRxEuBZHHV6lKTS7OrYVW4MMGoUO0=";
}; };
meta = { meta = {

View file

@ -7,17 +7,17 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "rcp"; pname = "rcp";
version = "0.15.0"; version = "0.16.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wykurz"; owner = "wykurz";
repo = "rcp"; repo = "rcp";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-gFkrUqG3GXPAg9Zqv7Wr3axQ30axYGXw8bo+P1kmSJM="; hash = "sha256-mMSO5twpuxiA6pMG/bNMn3WJjs3ZwuoOk62M0WIrRBk=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-izJRaxJhLvk064JB3hlzN50V7ZWmv/X1pbL0lRCZV60="; cargoHash = "sha256-uVBWPxGxNgiahywA78QjN8msNx3gZ6vOyX7AkOdK2EM=";
RUSTFLAGS = "--cfg tokio_unstable"; RUSTFLAGS = "--cfg tokio_unstable";
@ -33,7 +33,8 @@ rustPlatform.buildRustPackage rec {
license = with licenses; [ mit ]; license = with licenses; [ mit ];
mainProgram = "rcp"; mainProgram = "rcp";
maintainers = with maintainers; [ wykurz ]; maintainers = with maintainers; [ wykurz ];
# = note: Undefined symbols for architecture x86_64: "_utimensat" # Building procfs on an for a unsupported platform. Currently only linux and android are supported
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64; # (Your current target_os is macos)
broken = stdenv.hostPlatform.isDarwin;
}; };
} }

View file

@ -0,0 +1,30 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "regname";
version = "0.1.0";
src = fetchFromGitHub {
owner = "linkdd";
repo = "regname";
tag = "v${finalAttrs.version}";
hash = "sha256-zKsWEjFMTFibzfZ2dEc+RN74Ih1jr9vJhOUU0gY1rYE=";
};
cargoHash = "sha256-6iRDUOXPDzlD11JEL4at+z3aWkhn/dECtl7y2/vGMwo=";
passthru.updateScript = nix-update-script { };
meta = {
description = "Mass renamer TUI written in Rust";
homepage = "https://github.com/linkdd/regname";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ilarvne ];
mainProgram = "regname";
};
})

View file

@ -9,11 +9,11 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "texturepacker"; pname = "texturepacker";
version = "7.6.1"; version = "7.6.2";
src = fetchurl { src = fetchurl {
url = "https://www.codeandweb.com/download/texturepacker/${finalAttrs.version}/TexturePacker-${finalAttrs.version}.deb"; url = "https://www.codeandweb.com/download/texturepacker/${finalAttrs.version}/TexturePacker-${finalAttrs.version}.deb";
hash = "sha256-e824tHi9vTxhGbIxg5BPWgb3nBt5ZA2XgtkM7g3Y5Rw="; hash = "sha256-CJtUWxjleojjK+LljDbdhSH2FNQfVGMkif/XDRW1Y/k=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -15,6 +15,11 @@ stdenv.mkDerivation rec {
sha256 = "1n2mkawfl2bpd4pwy3mdzxwlqjjvb5bdrr2x2gldlyqdwbk7qjhd"; sha256 = "1n2mkawfl2bpd4pwy3mdzxwlqjjvb5bdrr2x2gldlyqdwbk7qjhd";
}; };
postPatch = ''
substituteInPlace Makefile \
--replace "ar -rcs" "${stdenv.cc.targetPrefix}ar -rcs"
'';
preConfigure = "patchShebangs ./scripts/mk_bits_lut"; preConfigure = "patchShebangs ./scripts/mk_bits_lut";
doCheck = true; doCheck = true;

View file

@ -5,12 +5,12 @@
}: }:
mkYaziPlugin { mkYaziPlugin {
pname = "glow.yazi"; pname = "glow.yazi";
version = "0-unstable-2025-04-14"; version = "0-unstable-2025-04-15";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Reledia"; owner = "Reledia";
repo = "glow.yazi"; repo = "glow.yazi";
rev = "a1711f10e815f7f7b6e529e0814342b8518d9ee6"; rev = "2da96e3ffd9cd9d4dd53e0b2636f83ff69fe9af0";
hash = "sha256-4krck4U/KWmnl32HWRsblYW/biuqzDPysrEn76buRck="; hash = "sha256-4krck4U/KWmnl32HWRsblYW/biuqzDPysrEn76buRck=";
}; };

View file

@ -5,13 +5,13 @@
}: }:
mkYaziPlugin { mkYaziPlugin {
pname = "relative-motions.yazi"; pname = "relative-motions.yazi";
version = "25.2.7-unstable-2025-04-07"; version = "25.4.8-unstable-2025-04-16";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dedukun"; owner = "dedukun";
repo = "relative-motions.yazi"; repo = "relative-motions.yazi";
rev = "61ae7950daeea3e1d960aa777b7a07cde4539b29"; rev = "ce2e890227269cc15cdc71d23b35a58fae6d2c27";
hash = "sha256-L5B5X762rBoxgKrUi0uRLDmAOJ/jPALc2bP9MYLiGYw="; hash = "sha256-Ijz1wYt+L+24Fb/rzHcDR8JBv84z2UxdCIPqTdzbD14=";
}; };
meta = { meta = {

View file

@ -7,15 +7,15 @@
buildNpmPackage rec { buildNpmPackage rec {
pname = "zwave-js-ui"; pname = "zwave-js-ui";
version = "10.1.5"; version = "10.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zwave-js"; owner = "zwave-js";
repo = "zwave-js-ui"; repo = "zwave-js-ui";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-z0uLX8tVL5g9Vnneu4r35iucRi3mDOJXC3mx9Xwz5So="; hash = "sha256-RfjjGpQhjpRV/+Uqh/uki9GRQQ3IrkyPkYY9hWUGWoA=";
}; };
npmDepsHash = "sha256-mO+PJFbhj8n/HRpBc9YyJHnvcXHnC3gT4pQM91PbL3M="; npmDepsHash = "sha256-vjHqL3t5FiBWlh2lEeRr31Ynyu4peHyMC82zHsBbQ8E=";
passthru.tests.zwave-js-ui = nixosTests.zwave-js-ui; passthru.tests.zwave-js-ui = nixosTests.zwave-js-ui;

View file

@ -0,0 +1,61 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
#dependencies
colcon,
pyaml,
# tests
pytestCheckHook,
pytest-cov-stub,
pytest-repeat,
pytest-rerunfailures,
scspell,
writableTmpDirAsHomeHook,
}:
buildPythonPackage rec {
pname = "colcon-defaults";
version = "0.2.9";
pyproject = true;
src = fetchFromGitHub {
owner = "colcon";
repo = "colcon-defaults";
tag = version;
hash = "sha256-Nb6D9jpbCvUnCNgRLBgWQFybNx0hyWVLSKj6gmTWjVs=";
};
build-system = [
setuptools
];
dependencies = [
colcon
pyaml
];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
pytest-repeat
pytest-rerunfailures
scspell
writableTmpDirAsHomeHook
];
disabledTestPaths = [
# Skip formatting checks to prevent depending on flake8
"test/test_flake8.py"
];
pythonImportsCheck = [ "colcon_defaults" ];
meta = {
description = "Extension for colcon to read defaults from a config file";
homepage = "https://github.com/colcon/colcon-defaults";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ guelakais ];
};
}

View file

@ -0,0 +1,51 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
colcon,
notify2,
pytestCheckHook,
scspell,
setuptools,
writableTmpDirAsHomeHook,
}:
buildPythonPackage rec {
pname = "colcon-notification";
version = "0.3.0";
pyproject = true;
src = fetchFromGitHub {
owner = "colcon";
repo = "colcon-notification";
tag = version;
hash = "sha256-78LruNk3KlHFgwujSbnbkjC24IN6jGnfRN+qdjvZh+k=";
};
build-system = [ setuptools ];
dependencies = [
colcon
notify2
];
nativeCheckInputs = [
pytestCheckHook
scspell
writableTmpDirAsHomeHook
];
pythonImportsCheck = [
"colcon_notification"
];
disabledTestPaths = [
# Linting/formatting tests are not relevant and would require extra dependencies
"test/test_flake8.py"
];
meta = {
description = "Extension for colcon-core to provide status notifications";
homepage = "https://github.com/colcon/colcon-notification";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ guelakais ];
};
}

View file

@ -23,14 +23,14 @@
let let
self = buildPythonPackage rec { self = buildPythonPackage rec {
pname = "jaxtyping"; pname = "jaxtyping";
version = "0.3.1"; version = "0.3.2";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "google"; owner = "google";
repo = "jaxtyping"; repo = "jaxtyping";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-rEKZ04R6PwDTk76KSjPprn58RUIQ+U8WVlxgrAwktLI="; hash = "sha256-zRuTOt9PqFGDZbSGvkzxIWIi3z+vU0FmAEecPRcGy2w=";
}; };
build-system = [ hatchling ]; build-system = [ hatchling ];

View file

@ -1,20 +1,24 @@
{ {
lib, lib,
bibtexparser,
buildPythonPackage, buildPythonPackage,
fetchPypi,
fetchFromGitHub,
# build-system
setuptools,
# dependencies
bibtexparser,
cdcs, cdcs,
datamodeldict, datamodeldict,
fetchPypi,
habanero, habanero,
ipywidgets, ipywidgets,
lxml, lxml,
matplotlib, matplotlib,
numpy, numpy,
pandas, pandas,
pythonOlder,
requests, requests,
scipy, scipy,
setuptools,
unidecode, unidecode,
xmltodict, xmltodict,
yabadaba, yabadaba,
@ -25,11 +29,11 @@ buildPythonPackage rec {
version = "0.4.0"; version = "0.4.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; src = fetchFromGitHub {
owner = "usnistgov";
src = fetchPypi { repo = "potentials";
inherit pname version; tag = "v${version}";
hash = "sha256-7ujcfFa/cweUtCY2MrEh3bTkwAVzvbF+5AJ4fs5o6bE="; hash = "sha256-VDA3dQ34kvrs3XMfC0j3T63KrXlmOa/hPvOni/UkgP4=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];
@ -56,11 +60,11 @@ buildPythonPackage rec {
pythonImportsCheck = [ "potentials" ]; pythonImportsCheck = [ "potentials" ];
meta = with lib; { meta = {
description = "Python API database tools for accessing the NIST Interatomic Potentials Repository"; description = "Python API database tools for accessing the NIST Interatomic Potentials Repository";
homepage = "https://github.com/usnistgov/potentials"; homepage = "https://github.com/usnistgov/potentials";
changelog = "https://github.com/usnistgov/potentials/releases/tag/v${version}"; changelog = "https://github.com/usnistgov/potentials/releases/tag/v${version}";
license = licenses.mit; license = lib.licenses.mit;
maintainers = with maintainers; [ fab ]; maintainers = with lib.maintainers; [ fab ];
}; };
} }

View file

@ -9,13 +9,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pytest-check"; pname = "pytest-check";
version = "2.5.2"; version = "2.5.3";
pyproject = true; pyproject = true;
src = fetchPypi { src = fetchPypi {
pname = "pytest_check"; pname = "pytest_check";
inherit version; inherit version;
hash = "sha256-Ex+letLw4h45iG4FJVFCu1hOYYgaXkWE/QaxSq5j7l0="; hash = "sha256-I1fX33fDldMMDElXck/fzhp16ovJ6yMIwP/lb2KscMo=";
}; };
build-system = [ hatchling ]; build-system = [ hatchling ];

View file

@ -1,32 +1,37 @@
{ {
lib, lib,
buildPythonPackage, buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
# dependencies
cdcs, cdcs,
datamodeldict, datamodeldict,
fetchFromGitHub,
ipython, ipython,
lxml, lxml,
numpy, numpy,
pandas, pandas,
pillow,
pymongo, pymongo,
pytestCheckHook,
pythonOlder,
setuptools,
tqdm, tqdm,
# tests
pytestCheckHook,
writableTmpDirAsHomeHook,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "yabadaba"; pname = "yabadaba";
version = "0.2.2"; version = "0.3.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "usnistgov"; owner = "usnistgov";
repo = "yabadaba"; repo = "yabadaba";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-NfvnUrTnOeNfiTMrcRtWU3a/Wb6qsDeQlk5jwZ1OpgI="; hash = "sha256-DpkJvi4w0aoD7RC2IFORy8uZ12TuLdcJxfLaSGyATac=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];
@ -38,23 +43,23 @@ buildPythonPackage rec {
lxml lxml
numpy numpy
pandas pandas
pillow
pymongo pymongo
tqdm tqdm
]; ];
nativeCheckInputs = [ pytestCheckHook ]; nativeCheckInputs = [
pytestCheckHook
writableTmpDirAsHomeHook
];
pythonImportsCheck = [ "yabadaba" ]; pythonImportsCheck = [ "yabadaba" ];
preCheck = '' meta = {
export HOME=$(mktemp -d);
'';
meta = with lib; {
description = "Abstraction layer allowing for common interactions with databases and records"; description = "Abstraction layer allowing for common interactions with databases and records";
homepage = "https://github.com/usnistgov/yabadaba"; homepage = "https://github.com/usnistgov/yabadaba";
changelog = "https://github.com/usnistgov/yabadaba/releases/tag/v${version}"; changelog = "https://github.com/usnistgov/yabadaba/releases/tag/v${version}";
license = licenses.mit; license = lib.licenses.mit;
maintainers = with maintainers; [ fab ]; maintainers = with lib.maintainers; [ fab ];
}; };
} }

View file

@ -1,138 +0,0 @@
From 4b83f714c821d6d4d2306673ee3a87907cfec80e Mon Sep 17 00:00:00 2001
From: Ivan Trubach <mr.trubach@icloud.com>
Date: Fri, 19 Jul 2024 10:45:13 +0300
Subject: [PATCH] build: support setting an emulator from configure script
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
V8s JIT infrastructure requires binaries such as mksnapshot to be run
during the build. However, these binaries must have the same bit-width
as the host platform (e.g. a x86_64 build platform targeting ARMv6 needs
to produce a 32-bit binary).
To work around this issue, allow building the binaries for the host
platform and running them on the build platform with an emulator.
Based on Buildroots nodejs-src 0001-add-qemu-wrapper-support.patch.
https://gitlab.com/buildroot.org/buildroot/-/blob/c1d5eada4d4db9eeaa1c44dd1dea95a67c8a70ca/package/nodejs/nodejs-src/0001-add-qemu-wrapper-support.patch
Upstream: https://github.com/nodejs/node/pull/53899
---
common.gypi | 1 +
configure.py | 14 ++++++++++++++
node.gyp | 3 +++
tools/v8_gypfiles/v8.gyp | 4 ++++
4 files changed, 22 insertions(+)
diff --git a/common.gypi b/common.gypi
index ec92c9df4c..6474495ab6 100644
--- a/common.gypi
+++ b/common.gypi
@@ -13,6 +13,7 @@
'enable_pgo_generate%': '0',
'enable_pgo_use%': '0',
'python%': 'python',
+ 'emulator%': [],
'node_shared%': 'false',
'force_dynamic_crt%': 0,
diff --git a/configure.py b/configure.py
index 82916748fd..10dc0becbb 100755
--- a/configure.py
+++ b/configure.py
@@ -112,6 +112,12 @@ parser.add_argument('--dest-cpu',
choices=valid_arch,
help=f"CPU architecture to build for ({', '.join(valid_arch)})")
+parser.add_argument('--emulator',
+ action='store',
+ dest='emulator',
+ default=None,
+ help='emulator command that can run executables built for the target system')
+
parser.add_argument('--cross-compiling',
action='store_true',
dest='cross_compiling',
@@ -2160,6 +2166,14 @@ write('config.mk', do_not_edit + config_str)
gyp_args = ['--no-parallel', '-Dconfiguring_node=1']
gyp_args += ['-Dbuild_type=' + config['BUILDTYPE']]
+if options.emulator is not None:
+ if not options.cross_compiling:
+ # Note that emulator is a list so we have to quote the variable.
+ gyp_args += ['-Demulator=' + shlex.quote(options.emulator)]
+ else:
+ # TODO: perhaps use emulator for tests?
+ warn('The `--emulator` option has no effect when cross-compiling.')
+
if options.use_ninja:
gyp_args += ['-f', 'ninja-' + flavor]
elif flavor == 'win' and sys.platform != 'msys':
diff --git a/node.gyp b/node.gyp
index 08cb3f38e8..515b305933 100644
--- a/node.gyp
+++ b/node.gyp
@@ -332,6 +332,7 @@
'<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
],
'action': [
+ '<@(emulator)',
'<(node_mksnapshot_exec)',
'--build-snapshot',
'<(node_snapshot_main)',
@@ -351,6 +352,7 @@
'<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
],
'action': [
+ '<@(emulator)',
'<@(_inputs)',
'<@(_outputs)',
],
@@ -1520,6 +1522,7 @@
'<(PRODUCT_DIR)/<(node_core_target_name).def',
],
'action': [
+ '<@(emulator)',
'<(PRODUCT_DIR)/gen_node_def.exe',
'<@(_inputs)',
'<@(_outputs)',
diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
index ba8b161f0f..d5c90dad50 100644
--- a/tools/v8_gypfiles/v8.gyp
+++ b/tools/v8_gypfiles/v8.gyp
@@ -99,6 +99,7 @@
'<@(torque_outputs_inc)',
],
'action': [
+ '<@(emulator)',
'<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
'-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated',
'-v8-root', '<(V8_ROOT)',
@@ -219,6 +220,7 @@
'action': [
'<(python)',
'<(V8_ROOT)/tools/run.py',
+ '<@(emulator)',
'<@(_inputs)',
'<@(_outputs)',
],
@@ -442,6 +444,7 @@
}],
],
'action': [
+ '<@(emulator)',
'>@(_inputs)',
'>@(mksnapshot_flags)',
],
@@ -1577,6 +1580,7 @@
'action': [
'<(python)',
'<(V8_ROOT)/tools/run.py',
+ '<@(emulator)',
'<@(_inputs)',
'<@(_outputs)',
],
--
2.44.1

View file

@ -1,16 +0,0 @@
Disable v8 system instrumentation on Darwin
On Darwin, the v8 system instrumentation requires the header "os/signpost.h"
which is available since apple_sdk 11+. See: https://github.com/nodejs/node/issues/39584
--- old/tools/v8_gypfiles/features.gypi
+++ new/tools/v8_gypfiles/features.gypi
@@ -62,7 +62,7 @@
}, {
'is_component_build': 0,
}],
- ['OS == "win" or OS == "mac"', {
+ ['OS == "win"', {
# Sets -DSYSTEM_INSTRUMENTATION. Enables OS-dependent event tracing
'v8_enable_system_instrumentation': 1,
}, {

View file

@ -1,13 +0,0 @@
Fixes cross compilation to aarch64-linux by reverting
https://github.com/nodejs/node/pull/43200
--- old/configure.py
+++ new/configure.py
@@ -1236,7 +1236,6 @@
# Enable branch protection for arm64
if target_arch == 'arm64':
- o['cflags']+=['-msign-return-address=all']
o['variables']['arm_fpu'] = options.arm_fpu or 'neon'
if options.node_snapshot_main is not None:

View file

@ -1,76 +0,0 @@
Backport V8_TRAP_HANDLER_SUPPORTED conditional compilation for trap
handler implementation.
See https://github.com/v8/v8/commit/e7bef8d4cc4f38cc3d5a532fbcc445dc62adc08f
E.g. when cross-compiling from aarch64-linux for x86_64-linux target,
handler-inside-posix.cc is built on aarch64-linux even though it is not
supported; see src/trap-handler/trap-handler.h in v8 for (host, target)
combinations where trap handler is supported.
Note that handler-inside-posix.cc fails to build in the case above.
diff --git a/deps/v8/src/trap-handler/handler-inside-posix.cc b/deps/v8/src/trap-handler/handler-inside-posix.cc
index e4454c378f..17af3d75dc 100644
--- a/deps/v8/src/trap-handler/handler-inside-posix.cc
+++ b/deps/v8/src/trap-handler/handler-inside-posix.cc
@@ -47,6 +47,8 @@ namespace v8 {
namespace internal {
namespace trap_handler {
+#if V8_TRAP_HANDLER_SUPPORTED
+
#if V8_OS_LINUX
#define CONTEXT_REG(reg, REG) &uc->uc_mcontext.gregs[REG_##REG]
#elif V8_OS_DARWIN
@@ -181,6 +183,8 @@ void HandleSignal(int signum, siginfo_t* info, void* context) {
// TryHandleSignal modifies context to change where we return to.
}
+#endif
+
} // namespace trap_handler
} // namespace internal
} // namespace v8
diff --git a/deps/v8/src/trap-handler/handler-inside-win.cc b/deps/v8/src/trap-handler/handler-inside-win.cc
index fcccc78ee5..3d7a2c416a 100644
--- a/deps/v8/src/trap-handler/handler-inside-win.cc
+++ b/deps/v8/src/trap-handler/handler-inside-win.cc
@@ -38,6 +38,8 @@ namespace v8 {
namespace internal {
namespace trap_handler {
+#if V8_TRAP_HANDLER_SUPPORTED
+
// The below struct needed to access the offset in the Thread Environment Block
// to see if the thread local storage for the thread has been allocated yet.
//
@@ -129,6 +131,8 @@ LONG HandleWasmTrap(EXCEPTION_POINTERS* exception) {
return EXCEPTION_CONTINUE_SEARCH;
}
+#endif
+
} // namespace trap_handler
} // namespace internal
} // namespace v8
diff --git a/deps/v8/src/trap-handler/handler-outside-simulator.cc b/deps/v8/src/trap-handler/handler-outside-simulator.cc
index 179eab0659..5e58719e7f 100644
--- a/deps/v8/src/trap-handler/handler-outside-simulator.cc
+++ b/deps/v8/src/trap-handler/handler-outside-simulator.cc
@@ -4,6 +4,9 @@
#include "include/v8config.h"
#include "src/trap-handler/trap-handler-simulator.h"
+#include "src/trap-handler/trap-handler.h"
+
+#if V8_TRAP_HANDLER_SUPPORTED
#if V8_OS_DARWIN
#define SYMBOL(name) "_" #name
@@ -35,3 +38,5 @@ asm(
SYMBOL(v8_probe_memory_continuation) ": \n"
// If the trap handler continues here, it wrote the landing pad in %rax.
" ret \n");
+
+#endif

View file

@ -1,86 +0,0 @@
{
callPackage,
lib,
openssl,
python311,
fetchpatch2,
icu75,
enableNpm ? true,
}:
let
buildNodejs = callPackage ./nodejs.nix {
inherit openssl;
python = python311;
icu = icu75; # does not build with newer
};
gypPatches = callPackage ./gyp-patches.nix { } ++ [
./gyp-patches-pre-v22-import-sys.patch
];
in
buildNodejs {
inherit enableNpm;
version = "18.20.8";
sha256 = "36a7bf1a76d62ce4badd881ee5974a323c70e1d8d19165732684e145632460d9";
patches = [
./configure-emulator-node18.patch
./configure-armv6-vfpv2.patch
./disable-darwin-v8-system-instrumentation.patch
./bypass-darwin-xcrun-node16.patch
./revert-arm64-pointer-auth.patch
./node-npm-build-npm-package-logic.patch
./trap-handler-backport.patch
./use-correct-env-in-tests.patch
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/534c122de166cb6464b489f3e6a9a544ceb1c913.patch";
hash = "sha256-4q4LFsq4yU1xRwNsM1sJoNVphJCnxaVe2IyL6AeHJ/I=";
})
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/87598d4b63ef2c827a2bebdfa0f1540c35718519.patch";
hash = "sha256-JJi8z9aaWnu/y3nZGOSUfeNzNSCYzD9dzoHXaGkeaEA=";
includes = [ "test/common/assertSnapshot.js" ];
})
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/d0a6b605fba6cd69a82e6f12ff0363eef8fe1ee9.patch";
hash = "sha256-TfYal/PikRZHL6zpAlC3SmkYXCe+/8Gs83dLX/X/P/k=";
})
# Remove unused `fdopen` in vendored zlib, which causes compilation failures with clang 18 on Darwin.
(fetchpatch2 {
url = "https://github.com/madler/zlib/commit/4bd9a71f3539b5ce47f0c67ab5e01f3196dc8ef9.patch?full_index=1";
extraPrefix = "deps/v8/third_party/zlib/";
stripLen = 1;
hash = "sha256-WVxsoEcJu0WBTyelNrVQFTZxJhnekQb1GrueeRBRdnY=";
})
# Backport V8 fixes for LLVM 19.
(fetchpatch2 {
url = "https://chromium.googlesource.com/v8/v8/+/182d9c05e78b1ddb1cb8242cd3628a7855a0336f%5E%21/?format=TEXT";
decode = "base64 -d";
extraPrefix = "deps/v8/";
stripLen = 1;
hash = "sha256-bDTwFbATPn5W4VifWz/SqaiigXYDWHq785C64VezuUE=";
})
(fetchpatch2 {
url = "https://chromium.googlesource.com/v8/v8/+/1a3ecc2483b2dba6ab9f7e9f8f4b60dbfef504b7%5E%21/?format=TEXT";
decode = "base64 -d";
extraPrefix = "deps/v8/";
stripLen = 1;
hash = "sha256-6y3aEqxNC4iTQEv1oewodJrhOHxjp5xZMq1P1QL94Rg=";
})
# Fix for https://github.com/NixOS/nixpkgs/issues/355919
# FIXME: remove after a minor point release
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/a094a8166cd772f89e92b5deef168e5e599fa815.patch?full_index=1";
hash = "sha256-5FZfozYWRa1ZI/f+e+xpdn974Jg2DbiHbua13XUQP5E=";
})
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/f270462c09ddfd770291a7c8a2cd204b2c63d730.patch?full_index=1";
hash = "sha256-Err0i5g7WtXcnhykKgrS3ocX7/3oV9UrT0SNeRtMZNU=";
})
# fix test failure on macos 15.4
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/33f6e1ea296cd20366ab94e666b03899a081af94.patch?full_index=1";
hash = "sha256-aVBMcQlhQeviUQpMIfC988jjDB2BgYzlMYsq+w16mzU=";
})
] ++ gypPatches;
}

View file

@ -865,16 +865,18 @@ if [ -z "$rollback" ]; then
set = if builtins.isFunction value then value {} else value; set = if builtins.isFunction value then value {} else value;
in set.${attr:+$attr.}config.system.build.images.$imageVariant.v.passthru.filePath" \ in set.${attr:+$attr.}config.system.build.images.$imageVariant.v.passthru.filePath" \
"${extraBuildFlags[@]}" "${extraBuildFlags[@]}"
| jq -r .
)" )"
elif [[ -z $flake ]]; then elif [[ -z $flake ]]; then
imageName="$( imageName="$(
runCmd nix-instantiate --eval --strict --json --expr \ runCmd nix-instantiate --eval --strict --json --expr \
"with import <nixpkgs/nixos> {}; config.system.build.images.$imageVariant.passthru.filePath" \ "with import <nixpkgs/nixos> {}; config.system.build.images.$imageVariant.passthru.filePath" \
"${extraBuildFlags[@]}" "${extraBuildFlags[@]}"
| jq -r .
)" )"
else else
imageName="$( imageName="$(
runCmd nix "${flakeFlags[@]}" eval --json \ runCmd nix "${flakeFlags[@]}" eval --raw \
"$flake#$flakeAttr.config.system.build.images.$imageVariant.passthru.filePath" \ "$flake#$flakeAttr.config.system.build.images.$imageVariant.passthru.filePath" \
"${evalArgs[@]}" "${extraBuildFlags[@]}" "${evalArgs[@]}" "${extraBuildFlags[@]}"
)" )"

View file

@ -1,31 +1,31 @@
{ fetchurl, fetchzip }: { fetchurl, fetchzip }:
{ {
x86_64-darwin = fetchzip { x86_64-darwin = fetchzip {
sha256 = "sha256-wNDPmB/RyTc3ZZWx7glhDx3aeWFrvcsiNv7hvsnWWu4="; sha256 = "sha256-/xwRH9+qJQ91z2alo2sBdnLs2Z2wXUMHqJvxagptx5U=";
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.57/AdGuardHome_darwin_amd64.zip"; url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_darwin_amd64.zip";
}; };
aarch64-darwin = fetchzip { aarch64-darwin = fetchzip {
sha256 = "sha256-gm9QHJFrCbKyEK6RsSKCeIQY2eYJIXO1n4vAkA3yatY="; sha256 = "sha256-60uD8dH4Dqbey21HGx/PIzWBcN/00V1/oS1ubrucayY=";
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.57/AdGuardHome_darwin_arm64.zip"; url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_darwin_arm64.zip";
}; };
i686-linux = fetchurl { i686-linux = fetchurl {
sha256 = "sha256-2TVrjG4C4uLsBUJoya4YxiOlTJlcmzPG6lUWcCj/PYE="; sha256 = "sha256-RJeU+n46IMncX5MXDedw/7DSe6pISsTJEyfI5B1pEcY=";
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.57/AdGuardHome_linux_386.tar.gz"; url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_linux_386.tar.gz";
}; };
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
sha256 = "sha256-E2bzQIYsRpijlJnjD+V3lh5a1nauD5aMVoI/9tHfrRM="; sha256 = "sha256-jZV/U4DUw70J1xmZLM5+gqAgpUP7fdyw46Neq8fQxT0=";
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.57/AdGuardHome_linux_amd64.tar.gz"; url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_linux_amd64.tar.gz";
}; };
aarch64-linux = fetchurl { aarch64-linux = fetchurl {
sha256 = "sha256-0yedCjUkpye2Rly87a5Qdyfy8/kgrEOrHKpbZ0YhruM="; sha256 = "sha256-TtD8KR92Mv3Z3nCz4xIT+FcuxwqgDTq3C1lGIELrEQU=";
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.57/AdGuardHome_linux_arm64.tar.gz"; url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_linux_arm64.tar.gz";
}; };
armv6l-linux = fetchurl { armv6l-linux = fetchurl {
sha256 = "sha256-RhPXB3G9iDmijTCsljXedJxqLr8Zna5IzU18KITU0m0="; sha256 = "sha256-MosFBi72sgdZshUzAxi/ht56VpeHMguRQawU3DI5Va8=";
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.57/AdGuardHome_linux_armv6.tar.gz"; url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_linux_armv6.tar.gz";
}; };
armv7l-linux = fetchurl { armv7l-linux = fetchurl {
sha256 = "sha256-tAtuMWgy+HMUIMbKLQZOMVO7z65UuPIZnHpJr1IYpJw="; sha256 = "sha256-7YFzd6z9eCGBHlyYgDiwE+cpQzEuQIHDYfbCopapYrw=";
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.57/AdGuardHome_linux_armv7.tar.gz"; url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_linux_armv7.tar.gz";
}; };
} }

View file

@ -13,7 +13,7 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "adguardhome"; pname = "adguardhome";
version = "0.107.57"; version = "0.107.61";
src = sources.${system} or (throw "Source for ${pname} is not available for ${system}"); src = sources.${system} or (throw "Source for ${pname} is not available for ${system}");
installPhase = '' installPhase = ''

View file

@ -36,7 +36,7 @@ for asset in $(curl --silent https://api.github.com/repos/AdguardTeam/AdGuardHom
if [ -n "$adg_system" ]; then if [ -n "$adg_system" ]; then
fetch="$(grep '\.zip$' <<< "$url" > /dev/null && echo fetchzip || echo fetchurl)" fetch="$(grep '\.zip$' <<< "$url" > /dev/null && echo fetchzip || echo fetchurl)"
nix_system=${systems[$adg_system]} nix_system=${systems[$adg_system]}
nix_src="$(nix-prefetch -s --output nix $fetch --url $url)" nix_src="$(nix-prefetch --option extra-experimental-features flakes -s --output nix $fetch --url $url)"
echo "$nix_system = $fetch $nix_src;" >> $bins echo "$nix_system = $fetch $nix_src;" >> $bins
fi fi
done done

View file

@ -9,13 +9,13 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "icingaweb2"; pname = "icingaweb2";
version = "2.12.3"; version = "2.12.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Icinga"; owner = "Icinga";
repo = "icingaweb2"; repo = "icingaweb2";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-PWP5fECKjdXhdX1E5hYaGv/fqb1KIKfclcPiCY/MMZM="; hash = "sha256-Ds1SxNQ3WAhY79SWl1ZIQUl2Pb8bZlHISRaSEe+Phos=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -4,7 +4,7 @@
pkgs, pkgs,
lib, lib,
node-pre-gyp, node-pre-gyp,
nodejs_18, nodejs_20,
pkg-config, pkg-config,
libjpeg, libjpeg,
pixman, pixman,
@ -15,7 +15,7 @@
}: }:
let let
nodejs = nodejs_18; nodejs = nodejs_20;
version = "0.1.1"; version = "0.1.1";
@ -72,7 +72,8 @@ myNodePackages.package.override {
maintainers = [ ]; maintainers = [ ];
platforms = platforms.unix; platforms = platforms.unix;
# never built on aarch64-darwin since first introduction in nixpkgs # never built on aarch64-darwin since first introduction in nixpkgs
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64; # Depends on nodejs_18 that has been removed.
broken = true;
mainProgram = "mx-puppet-discord"; mainProgram = "mx-puppet-discord";
}; };
} }

View file

@ -5,7 +5,7 @@
inherit system; inherit system;
}, },
system ? builtins.currentSystem, system ? builtins.currentSystem,
nodejs ? pkgs."nodejs_18", nodejs ? pkgs."nodejs_20",
}: }:
let let

View file

@ -259,6 +259,8 @@ stdenv.mkDerivation (finalAttrs: {
"x86_64-darwin" "x86_64-darwin"
"aarch64-darwin" "aarch64-darwin"
]; ];
# Depends on nodejs_18 that has been removed.
broken = true;
mainProgram = "openvscode-server"; mainProgram = "openvscode-server";
}; };
}) })

View file

@ -118,10 +118,16 @@ let
prePatch = '' prePatch = ''
sed -i 's,[^"]*/var/log,/var/log,g' storage/mroonga/vendor/groonga/CMakeLists.txt sed -i 's,[^"]*/var/log,/var/log,g' storage/mroonga/vendor/groonga/CMakeLists.txt
''; '';
env = lib.optionalAttrs (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isGnu) {
# MariaDB uses non-POSIX fopen64, which musl only conditionally defines.
NIX_CFLAGS_COMPILE = "-D_LARGEFILE64_SOURCE";
};
patches = patches =
[ [
./patch/cmake-includedir.patch ./patch/cmake-includedir.patch
# patch for musl compatibility
./patch/include-cstdint-full.patch
] ]
# Fixes a build issue as documented on # Fixes a build issue as documented on
# https://jira.mariadb.org/browse/MDEV-26769?focusedCommentId=206073&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-206073 # https://jira.mariadb.org/browse/MDEV-26769?focusedCommentId=206073&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-206073

View file

@ -0,0 +1,48 @@
diff --git a/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h b/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
index f356395..3215221 100644
--- a/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
+++ b/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
@@ -5,6 +5,7 @@
#pragma once
+#include <cstdint>
#include <string>
#include <vector>
diff --git a/storage/rocksdb/rocksdb/util/string_util.h b/storage/rocksdb/rocksdb/util/string_util.h
index a761be6..064d059 100644
--- a/storage/rocksdb/rocksdb/util/string_util.h
+++ b/storage/rocksdb/rocksdb/util/string_util.h
@@ -6,6 +6,7 @@
#pragma once
+#include <cstdint>
#include <sstream>
#include <string>
#include <unordered_map>
diff --git a/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h b/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
index c7f93b4..3c2ab80 100644
--- a/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
+++ b/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
@@ -8,6 +8,7 @@
#pragma once
#ifndef ROCKSDB_LITE
+#include <cstdint>
#include <string>
#include <vector>
#include "rocksdb/status.h"
diff --git a/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h b/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
index 963c1d8..8d70309 100644
--- a/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
+++ b/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
@@ -6,6 +6,7 @@
#pragma once
#include "rocksdb/rocksdb_namespace.h"
+#include <cstdint>
struct CompactionIterationStats {
// Compaction statistics

View file

@ -0,0 +1,53 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
octodns,
pytestCheckHook,
setuptools,
requests,
}:
buildPythonPackage rec {
pname = "octodns-ddns";
version = "0.2.1";
pyproject = true;
src = fetchFromGitHub {
owner = "octodns";
repo = "octodns-ddns";
tag = "v${version}";
hash = "sha256-n4dTkJT5UmmEqtN5x2zkJe7NQtjXz3gPwwFnOmMIfIs=";
};
build-system = [
setuptools
];
dependencies = [
octodns
requests
];
postPatch = ''
substituteInPlace tests/test_octodns_source_ddns.py \
--replace-fail "assertEquals" "assertEqual"
'';
env.OCTODNS_RELEASE = 1;
pythonImportsCheck = [
"octodns_ddns"
];
nativeCheckInputs = [
pytestCheckHook
];
meta = {
description = "Simple Dynamic DNS source for octoDNS";
homepage = "https://github.com/octodns/octodns-ddns";
changelog = "https://github.com/octodns/octodns-ddns/blob/${src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.provokateurin ];
};
}

View file

@ -1,25 +0,0 @@
# Original: https://github.com/netdata/netdata/pull/17240
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f37cbd18a..6db4c9f52 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -134,6 +134,7 @@ mark_as_advanced(DEFAULT_FEATURE_STATE)
# High-level features
option(ENABLE_ACLK "Enable Netdata Cloud support (ACLK)" ${DEFAULT_FEATURE_STATE})
option(ENABLE_CLOUD "Enable Netdata Cloud by default at runtime" ${DEFAULT_FEATURE_STATE})
+option(ENABLE_DASHBOARD_V2 "enable dashboard v2" True)
option(ENABLE_ML "Enable machine learning features" ${DEFAULT_FEATURE_STATE})
option(ENABLE_DBENGINE "Enable dbengine metrics storage" True)
@@ -2946,7 +2947,9 @@ endif()
#
include(src/web/gui/v1/dashboard_v1.cmake)
-include(src/web/gui/v2/dashboard_v2.cmake)
+if(ENABLE_DASHBOARD_V2)
+ include(src/web/gui/v2/dashboard_v2.cmake)
+endif()
include(src/web/gui/gui.cmake)
function(cat IN_FILE OUT_FILE)

View file

@ -0,0 +1,35 @@
diff --git a/packaging/cmake/Modules/NetdataDashboard.cmake b/packaging/cmake/Modules/NetdataDashboard.cmake
index 098eaffcf..e52375bd0 100644
--- a/packaging/cmake/Modules/NetdataDashboard.cmake
+++ b/packaging/cmake/Modules/NetdataDashboard.cmake
@@ -26,29 +26,12 @@ function(bundle_dashboard)
set(dashboard_src_dir "${CMAKE_BINARY_DIR}/dashboard-src")
set(dashboard_src_prefix "${dashboard_src_dir}/dist/agent")
set(dashboard_bin_dir "${CMAKE_BINARY_DIR}/dashboard-bin")
- set(DASHBOARD_URL "https://app.netdata.cloud/agent.tar.gz" CACHE STRING
- "URL used to fetch the local agent dashboard code")
message(STATUS "Preparing local agent dashboard code")
- message(STATUS " Fetching ${DASHBOARD_URL}")
- file(DOWNLOAD
- "${DASHBOARD_URL}"
- "${CMAKE_BINARY_DIR}/dashboard.tar.gz"
- TIMEOUT 180
- STATUS fetch_status)
-
- list(GET fetch_status 0 result)
-
- if(result)
- message(FATAL_ERROR "Failed to fetch dashboard code")
- else()
- message(STATUS " Fetching ${DASHBOARD_URL} -- Done")
- endif()
-
message(STATUS " Extracting dashboard code")
extract_gzipped_tarball(
- "${CMAKE_BINARY_DIR}/dashboard.tar.gz"
+ "@dashboardTarball@"
"${dashboard_src_dir}"
)
message(STATUS " Extracting dashboard code -- Done")

View file

@ -1,18 +1,22 @@
{ {
lib,
stdenv,
fetchFromGitHub,
bash, bash,
bison,
buildGoModule, buildGoModule,
cmake, cmake,
cups, cups,
curl, curl,
dlib,
fetchFromGitHub,
fetchurl,
flex,
freeipmi, freeipmi,
go, go,
google-cloud-cpp, google-cloud-cpp,
grpc, grpc,
jemalloc, jemalloc,
json_c, json_c,
lib,
libbacktrace,
libbpf, libbpf,
libcap, libcap,
libelf, libelf,
@ -30,57 +34,52 @@
openssl, openssl,
pkg-config, pkg-config,
protobuf, protobuf,
replaceVars,
snappy, snappy,
stdenv,
systemd, systemd,
withCloud ? false, zlib,
withCloudUi ? false, withCloudUi ? false,
withConnPrometheus ? false, withConnPrometheus ? false,
withConnPubSub ? false, withConnPubSub ? false,
withCups ? false, withCups ? false,
withDBengine ? true, withDBengine ? false,
withDebug ? false, withDebug ? false,
withEbpf ? false, withEbpf ? false,
withIpmi ? (stdenv.hostPlatform.isLinux), withIpmi ? (stdenv.hostPlatform.isLinux),
withLibbacktrace ? true,
withNdsudo ? false,
withNetfilter ? (stdenv.hostPlatform.isLinux), withNetfilter ? (stdenv.hostPlatform.isLinux),
withNetworkViewer ? (stdenv.hostPlatform.isLinux), withNetworkViewer ? (stdenv.hostPlatform.isLinux),
withSsl ? true, withSsl ? true,
withSystemdJournal ? (stdenv.hostPlatform.isLinux), withSystemdJournal ? (stdenv.hostPlatform.isLinux),
zlib, withML ? true,
withNdsudo ? false,
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
version = "1.47.5"; version = "2.4.0";
pname = "netdata"; pname = "netdata";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "netdata"; owner = "netdata";
repo = "netdata"; repo = "netdata";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = hash = "sha256-egHsWmhnrl8D59gr7uD5hBnleCOI8gVEBGwdO5GSnOg=";
if withCloudUi then
"sha256-+cPYwjxg/+A5bNa517zg9xKEjUa8uPM9WD67tToPH5o="
# we delete the v2 GUI after fetching
else
"sha256-0aiBUkDymmdIT/u1y2PG30QYAvb8Zc4i8ZgjOtlzt+A=";
fetchSubmodules = true; fetchSubmodules = true;
# Remove v2 dashboard distributed under NCUL1. Make sure an empty
# Makefile.am exists, as autoreconf will get confused otherwise.
postFetch = lib.optionalString (!withCloudUi) ''
rm -rf $out/src/web/gui/v2/*
touch $out/src/web/gui/v2/Makefile.am
'';
}; };
strictDeps = true; strictDeps = true;
nativeBuildInputs = [ nativeBuildInputs = [
bison
cmake cmake
pkg-config flex
makeWrapper
go go
makeWrapper
ninja ninja
pkg-config
] ++ lib.optionals withCups [ cups.dev ]; ] ++ lib.optionals withCups [ cups.dev ];
# bash is only used to rewrite shebangs # bash is only used to rewrite shebangs
buildInputs = buildInputs =
[ [
@ -89,8 +88,10 @@ stdenv.mkDerivation (finalAttrs: {
jemalloc jemalloc
json_c json_c
libuv libuv
zlib
libyaml libyaml
lz4
protobuf
zlib
] ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ ++ lib.optionals stdenv.hostPlatform.isDarwin [
libossp_uuid libossp_uuid
@ -101,34 +102,44 @@ stdenv.mkDerivation (finalAttrs: {
libuuid libuuid
lm_sensors lm_sensors
] ]
++ lib.optionals withCups [ cups ] ++ lib.optionals withConnPrometheus [ snappy ]
++ lib.optionals withDBengine [ lz4 ]
++ lib.optionals withIpmi [ freeipmi ]
++ lib.optionals withNetfilter [
libmnl
libnetfilter_acct
]
++ lib.optionals withConnPubSub [ ++ lib.optionals withConnPubSub [
google-cloud-cpp google-cloud-cpp
grpc grpc
] ]
++ lib.optionals withConnPrometheus [ snappy ] ++ lib.optionals withCups [ cups ]
++ lib.optionals withEbpf [ ++ lib.optionals withEbpf [
libelf
libbpf libbpf
libelf
] ]
++ lib.optionals (withCloud || withConnPrometheus) [ protobuf ] ++ lib.optionals withIpmi [ freeipmi ]
++ lib.optionals withSystemdJournal [ systemd ] ++ lib.optionals withLibbacktrace [ libbacktrace ]
++ lib.optionals withSsl [ openssl ]; ++ lib.optionals withNetfilter [
libmnl
libnetfilter_acct
]
++ lib.optionals withSsl [ openssl ]
++ lib.optionals withSystemdJournal [ systemd ];
patches = [ patches =
# Allow ndsudo to use non-hardcoded `PATH` [
# See https://github.com/netdata/netdata/pull/17377#issuecomment-2183017868 # Allow ndsudo to use non-hardcoded `PATH`
# https://github.com/netdata/netdata/security/advisories/GHSA-pmhq-4cxq-wj93 # See https://github.com/netdata/netdata/pull/17377#issuecomment-2183017868
./ndsudo-fix-path.patch # https://github.com/netdata/netdata/security/advisories/GHSA-pmhq-4cxq-wj93
# Allow building without non-free v2 dashboard. ./ndsudo-fix-path.patch
./dashboard-v2-removal.patch
]; ./use-local-libbacktrace.patch
]
++ lib.optional withCloudUi (
replaceVars ./dashboard-v3-add.patch {
# FIXME web.archive.org link can be replace once https://github.com/netdata/netdata-cloud/issues/1081 resolved
# last update 03/16/2025 23:56:24
dashboardTarball = fetchurl {
url = "https://web.archive.org/web/20250316235624/https://app.netdata.cloud/agent.tar.gz";
hash = "sha256-Vtw+CbBgqGRenkis0ZR2/TLsoM83NjNA6mbndb95EK8=";
};
}
);
# Guard against unused build-time development inputs in closure. Without # Guard against unused build-time development inputs in closure. Without
# the ./skip-CONFIGURE_COMMAND.patch patch the closure retains inputs up # the ./skip-CONFIGURE_COMMAND.patch patch the closure retains inputs up
@ -137,7 +148,7 @@ stdenv.mkDerivation (finalAttrs: {
# We pick zlib.dev as a simple canary package with pkg-config input. # We pick zlib.dev as a simple canary package with pkg-config input.
disallowedReferences = lib.optional (!withDebug) zlib.dev; disallowedReferences = lib.optional (!withDebug) zlib.dev;
donStrip = withDebug; donStrip = withDebug || withLibbacktrace;
env.NIX_CFLAGS_COMPILE = lib.optionalString withDebug "-O1 -ggdb -DNETDATA_INTERNAL_CHECKS=1"; env.NIX_CFLAGS_COMPILE = lib.optionalString withDebug "-O1 -ggdb -DNETDATA_INTERNAL_CHECKS=1";
postInstall = postInstall =
@ -169,10 +180,6 @@ stdenv.mkDerivation (finalAttrs: {
mv $out/libexec/netdata/plugins.d/network-viewer.plugin \ mv $out/libexec/netdata/plugins.d/network-viewer.plugin \
$out/libexec/netdata/plugins.d/network-viewer.plugin.org $out/libexec/netdata/plugins.d/network-viewer.plugin.org
''} ''}
${lib.optionalString (!withCloudUi) ''
rm -rf $out/share/netdata/web/index.html
cp $out/share/netdata/web/v1/index.html $out/share/netdata/web/index.html
''}
${lib.optionalString withNdsudo '' ${lib.optionalString withNdsudo ''
mv $out/libexec/netdata/plugins.d/ndsudo \ mv $out/libexec/netdata/plugins.d/ndsudo \
$out/libexec/netdata/plugins.d/ndsudo.org $out/libexec/netdata/plugins.d/ndsudo.org
@ -206,27 +213,29 @@ stdenv.mkDerivation (finalAttrs: {
--replace-fail 'set(libconfigdir_POST "''${NETDATA_RUNTIME_PREFIX}/usr/lib/netdata/conf.d")' 'set(libconfigdir_POST "${placeholder "out"}/share/netdata/conf.d")' \ --replace-fail 'set(libconfigdir_POST "''${NETDATA_RUNTIME_PREFIX}/usr/lib/netdata/conf.d")' 'set(libconfigdir_POST "${placeholder "out"}/share/netdata/conf.d")' \
--replace-fail 'set(cachedir_POST "''${NETDATA_RUNTIME_PREFIX}/var/cache/netdata")' 'set(libconfigdir_POST "/var/cache/netdata")' \ --replace-fail 'set(cachedir_POST "''${NETDATA_RUNTIME_PREFIX}/var/cache/netdata")' 'set(libconfigdir_POST "/var/cache/netdata")' \
--replace-fail 'set(registrydir_POST "''${NETDATA_RUNTIME_PREFIX}/var/lib/netdata/registry")' 'set(registrydir_POST "/var/lib/netdata/registry")' \ --replace-fail 'set(registrydir_POST "''${NETDATA_RUNTIME_PREFIX}/var/lib/netdata/registry")' 'set(registrydir_POST "/var/lib/netdata/registry")' \
--replace-fail 'set(varlibdir_POST "''${NETDATA_RUNTIME_PREFIX}/var/lib/netdata")' 'set(varlibdir_POST "/var/lib/netdata")' --replace-fail 'set(varlibdir_POST "''${NETDATA_RUNTIME_PREFIX}/var/lib/netdata")' 'set(varlibdir_POST "/var/lib/netdata")' \
--replace-fail 'set(BUILD_INFO_CMAKE_CACHE_ARCHIVE_PATH "usr/share/netdata")' 'set(BUILD_INFO_CMAKE_CACHE_ARCHIVE_PATH "${placeholder "out"}/share/netdata")'
''; '';
cmakeFlags = [ cmakeFlags = [
"-DWEB_DIR=share/netdata/web" "-DWEB_DIR=share/netdata/web"
(lib.cmakeBool "ENABLE_CLOUD" withCloud) (lib.cmakeBool "ENABLE_DASHBOARD" withCloudUi)
# ACLK is agent cloud link. # FIXME uncomment when https://github.com/netdata/netdata/issues/19901#issuecomment-2819701451 resolved
(lib.cmakeBool "ENABLE_ACLK" withCloud) (lib.cmakeBool "ENABLE_DBENGINE" true)
(lib.cmakeBool "ENABLE_DASHBOARD_V2" withCloudUi) # (lib.cmakeBool "ENABLE_DBENGINE" withDBengine)
(lib.cmakeBool "ENABLE_DBENGINE" withDBengine)
(lib.cmakeBool "ENABLE_PLUGIN_FREEIPMI" withIpmi)
(lib.cmakeBool "ENABLE_PLUGIN_SYSTEMD_JOURNAL" withSystemdJournal)
(lib.cmakeBool "ENABLE_PLUGIN_NETWORK_VIEWER" withNetworkViewer)
(lib.cmakeBool "ENABLE_PLUGIN_EBPF" withEbpf)
(lib.cmakeBool "ENABLE_PLUGIN_XENSTAT" false)
(lib.cmakeBool "ENABLE_PLUGIN_CUPS" withCups)
(lib.cmakeBool "ENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE" withConnPrometheus) (lib.cmakeBool "ENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE" withConnPrometheus)
(lib.cmakeBool "ENABLE_JEMALLOC" true) (lib.cmakeBool "ENABLE_JEMALLOC" true)
(lib.cmakeBool "ENABLE_LIBBACKTRACE" withLibbacktrace)
(lib.cmakeBool "ENABLE_PLUGIN_CUPS" withCups)
(lib.cmakeBool "ENABLE_PLUGIN_EBPF" withEbpf)
(lib.cmakeBool "ENABLE_PLUGIN_FREEIPMI" withIpmi)
(lib.cmakeBool "ENABLE_PLUGIN_NETWORK_VIEWER" withNetworkViewer)
(lib.cmakeBool "ENABLE_PLUGIN_SYSTEMD_JOURNAL" withSystemdJournal)
(lib.cmakeBool "ENABLE_PLUGIN_XENSTAT" false)
(lib.cmakeBool "ENABLE_ML" withML)
# Suggested by upstream. # Suggested by upstream.
"-G Ninja" "-G Ninja"
]; ] ++ lib.optional withML "-DNETDATA_DLIB_SOURCE_PATH=${dlib.src}";
postFixup = '' postFixup = ''
wrapProgram $out/bin/netdata-claim.sh --prefix PATH : ${lib.makeBinPath [ openssl ]} wrapProgram $out/bin/netdata-claim.sh --prefix PATH : ${lib.makeBinPath [ openssl ]}
@ -251,7 +260,7 @@ stdenv.mkDerivation (finalAttrs: {
sourceRoot = "${finalAttrs.src.name}/src/go/plugin/go.d"; sourceRoot = "${finalAttrs.src.name}/src/go/plugin/go.d";
vendorHash = "sha256-NZ1tg+lvXNgypqmjjb5f7dHH6DIA9VOa4PMM4eq11n0="; vendorHash = "sha256-PgQs3+++iD9Lg8psTBVzF4b+kGJzhV5yNQBkw/+Dqks=";
doCheck = false; doCheck = false;
proxyVendor = true; proxyVendor = true;
@ -282,6 +291,7 @@ stdenv.mkDerivation (finalAttrs: {
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ maintainers = with maintainers; [
mkg20001 mkg20001
rhoriguchi
]; ];
}; };
}) })

View file

@ -1,10 +1,10 @@
# See https://github.com/netdata/netdata/pull/17377#issuecomment-2183017868 # See https://github.com/netdata/netdata/pull/17377#issuecomment-2183017868
# https://github.com/netdata/netdata/security/advisories/GHSA-pmhq-4cxq-wj93 # https://github.com/netdata/netdata/security/advisories/GHSA-pmhq-4cxq-wj93
diff --git a/src/collectors/plugins.d/ndsudo.c b/src/collectors/plugins.d/ndsudo.c diff --git a/src/collectors/utils/ndsudo.c b/src/collectors/utils/ndsudo.c
index d53ca9f28..b42a121bf 100644 index d53ca9f28..b42a121bf 100644
--- a/src/collectors/plugins.d/ndsudo.c --- a/src/collectors/utils/ndsudo.c
+++ b/src/collectors/plugins.d/ndsudo.c +++ b/src/collectors/utils/ndsudo.c
@@ -357,9 +357,9 @@ int main(int argc, char *argv[]) { @@ -357,9 +357,9 @@ int main(int argc, char *argv[]) {
return 3; return 3;
} }

View file

@ -0,0 +1,34 @@
--- a/CMakeLists.txt 2025-03-29 00:48:23.397111607 +0100
+++ b/CMakeLists.txt 2025-03-29 00:45:42.296199537 +0100
@@ -501,10 +501,6 @@
message(STATUS "Added compiler and linker flags for better stack trace support")
endif()
-if(ENABLE_LIBBACKTRACE)
- netdata_bundle_libbacktrace()
-endif()
-
#
# check source compilation
#
@@ -2183,8 +2179,10 @@
"$<$<BOOL:${LINK_LIBM}>:m>"
"${SYSTEMD_LDFLAGS}")
-if(HAVE_LIBBACKTRACE)
- netdata_add_libbacktrace_to_target(libnetdata)
+if(ENABLE_LIBBACKTRACE AND HAVE_LIBBACKTRACE)
+ target_link_libraries(libnetdata ${LIBBACKTRACE_LIBRARIES})
+ target_include_directories(libnetdata PUBLIC ${LIBBACKTRACE_INCLUDE_DIRS})
+ target_compile_options(libnetdata PUBLIC ${LIBBACKTRACE_CFLAGS_OTHER})
endif()
if(OS_WINDOWS)
--- /dev/null
+++ b/pkgs/tools/system/netdata/use-local-libbacktrace.patch
@@ -0,0 +1,5 @@
+FIND_PATH(LIBBACKTRACE_INCLUDE_DIR NAMES backtrace.h)
+FIND_LIBRARY(LIBBACKTRACE_LIBRARIES NAMES libbacktrace)
+
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBBACKTRACE DEFAULT_MSG LIBBACKTRACE_LIBRARIES LIBBACKTRACE_INCLUDE_DIR)

View file

@ -509,6 +509,10 @@ mapAliases {
dibbler = throw "dibbler was removed because it is not maintained anymore"; # Added 2024-05-14 dibbler = throw "dibbler was removed because it is not maintained anymore"; # Added 2024-05-14
dillong = throw "'dillong' has been removed, as upstream is abandoned since 2021-12-13. Use either 'dillo' or 'dillo-plus'. The latter integrates features from dillong."; # Added 2024-10-07 dillong = throw "'dillong' has been removed, as upstream is abandoned since 2021-12-13. Use either 'dillo' or 'dillo-plus'. The latter integrates features from dillong."; # Added 2024-10-07
diskonaut = throw "'diskonaut' was removed due to lack of upstream maintenance"; # Added 2025-01-25 diskonaut = throw "'diskonaut' was removed due to lack of upstream maintenance"; # Added 2025-01-25
dleyna-core = dleyna; # Added 2025-04-19
dleyna-connector-dbus = dleyna; # Added 2025-04-19
dleyna-renderer = dleyna; # Added 2025-04-19
dleyna-server = dleyna; # Added 2025-04-19
dnnl = throw "'dnnl' has been renamed to/replaced by 'oneDNN'"; # Converted to throw 2024-10-17 dnnl = throw "'dnnl' has been renamed to/replaced by 'oneDNN'"; # Converted to throw 2024-10-17
dnscrypt-wrapper = throw "dnscrypt-wrapper was removed because it has been effectively unmaintained since 2018. Use DNSCcrypt support in dnsdist instead"; # Added 2024-09-14 dnscrypt-wrapper = throw "dnscrypt-wrapper was removed because it has been effectively unmaintained since 2018. Use DNSCcrypt support in dnsdist instead"; # Added 2024-09-14
docear = throw "Docear was removed because it was unmaintained upstream. JabRef, Zotero, or Mendeley are potential replacements."; # Added 2024-11-02 docear = throw "Docear was removed because it was unmaintained upstream. JabRef, Zotero, or Mendeley are potential replacements."; # Added 2024-11-02
@ -1284,6 +1288,9 @@ mapAliases {
nixosTest = testers.nixosTest; # Added 2022-05-05 nixosTest = testers.nixosTest; # Added 2022-05-05
nmap-unfree = throw "'nmap-unfree' has been renamed to/replaced by 'nmap'"; # Converted to throw 2024-10-17 nmap-unfree = throw "'nmap-unfree' has been renamed to/replaced by 'nmap'"; # Converted to throw 2024-10-17
nodejs_18 = throw "Node.js 18.x has reached End-Of-Life and has been removed"; # Added 2025-04-23
nodejs-slim_18 = nodejs_18; # Added 2025-04-23
corepack_18 = nodejs_18; # Added 2025-04-23
nodejs-18_x = nodejs_18; # Added 2022-11-06 nodejs-18_x = nodejs_18; # Added 2022-11-06
nodejs-slim-18_x = nodejs-slim_18; # Added 2022-11-06 nodejs-slim-18_x = nodejs-slim_18; # Added 2022-11-06
nomad_1_4 = throw "nomad_1_4 is no longer supported upstream. You can switch to using a newer version of the nomad package, or revert to older nixpkgs if you cannot upgrade"; # Added 2025-02-02 nomad_1_4 = throw "nomad_1_4 is no longer supported upstream. You can switch to using a newer version of the nomad package, or revert to older nixpkgs if you cannot upgrade"; # Added 2025-02-02

View file

@ -427,6 +427,7 @@ with pkgs;
hetzner = python3Packages.callPackage ../tools/networking/octodns/providers/hetzner { }; hetzner = python3Packages.callPackage ../tools/networking/octodns/providers/hetzner { };
powerdns = python3Packages.callPackage ../tools/networking/octodns/providers/powerdns { }; powerdns = python3Packages.callPackage ../tools/networking/octodns/providers/powerdns { };
cloudflare = python3Packages.callPackage ../tools/networking/octodns/providers/cloudflare { }; cloudflare = python3Packages.callPackage ../tools/networking/octodns/providers/cloudflare { };
ddns = python3Packages.callPackage ../tools/networking/octodns/providers/ddns { };
}; };
oletools = with python3.pkgs; toPythonApplication oletools; oletools = with python3.pkgs; toPythonApplication oletools;
@ -3852,7 +3853,6 @@ with pkgs;
protobuf = protobuf_21; protobuf = protobuf_21;
}; };
netdataCloud = netdata.override { netdataCloud = netdata.override {
withCloud = true;
withCloudUi = true; withCloudUi = true;
}; };
@ -3877,10 +3877,6 @@ with pkgs;
nodejs-slim = nodejs-slim_22; nodejs-slim = nodejs-slim_22;
corepack = hiPrio corepack_22; corepack = hiPrio corepack_22;
nodejs_18 = callPackage ../development/web/nodejs/v18.nix { };
nodejs-slim_18 = callPackage ../development/web/nodejs/v18.nix { enableNpm = false; };
corepack_18 = hiPrio (callPackage ../development/web/nodejs/corepack.nix { nodejs = nodejs_18; });
nodejs_20 = callPackage ../development/web/nodejs/v20.nix { }; nodejs_20 = callPackage ../development/web/nodejs/v20.nix { };
nodejs-slim_20 = callPackage ../development/web/nodejs/v20.nix { enableNpm = false; }; nodejs-slim_20 = callPackage ../development/web/nodejs/v20.nix { enableNpm = false; };
corepack_20 = hiPrio (callPackage ../development/web/nodejs/corepack.nix { nodejs = nodejs_20; }); corepack_20 = hiPrio (callPackage ../development/web/nodejs/corepack.nix { nodejs = nodejs_20; });
@ -11083,7 +11079,7 @@ with pkgs;
lemmy-server = callPackage ../servers/web-apps/lemmy/server.nix { }; lemmy-server = callPackage ../servers/web-apps/lemmy/server.nix { };
lemmy-ui = callPackage ../servers/web-apps/lemmy/ui.nix { lemmy-ui = callPackage ../servers/web-apps/lemmy/ui.nix {
nodejs = nodejs_18; nodejs = nodejs_20;
}; };
mailmanPackages = callPackage ../servers/mail/mailman { }; mailmanPackages = callPackage ../servers/mail/mailman { };
@ -15118,9 +15114,7 @@ with pkgs;
vdirsyncer = with python3Packages; toPythonApplication vdirsyncer; vdirsyncer = with python3Packages; toPythonApplication vdirsyncer;
vengi-tools = callPackage ../applications/graphics/vengi-tools { vengi-tools = callPackage ../applications/graphics/vengi-tools { };
inherit (darwin.apple_sdk_11_0.frameworks) CoreServices;
};
veusz = libsForQt5.callPackage ../applications/graphics/veusz { }; veusz = libsForQt5.callPackage ../applications/graphics/veusz { };
@ -15274,7 +15268,7 @@ with pkgs;
}; };
openvscode-server = callPackage ../servers/openvscode-server { openvscode-server = callPackage ../servers/openvscode-server {
nodejs = nodejs_18; nodejs = nodejs_20;
}; };
code-server = callPackage ../servers/code-server { code-server = callPackage ../servers/code-server {

View file

@ -2659,6 +2659,10 @@ self: super: with self; {
colcon-argcomplete = callPackage ../development/python-modules/colcon-argcomplete { }; colcon-argcomplete = callPackage ../development/python-modules/colcon-argcomplete { };
colcon-defaults = callPackage ../development/python-modules/colcon-defaults { };
colcon-notification = callPackage ../development/python-modules/colcon-notification { };
collections-extended = callPackage ../development/python-modules/collections-extended { }; collections-extended = callPackage ../development/python-modules/collections-extended { };
collidoscope = callPackage ../development/python-modules/collidoscope { }; collidoscope = callPackage ../development/python-modules/collidoscope { };