Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-08-17 18:05:44 +00:00
committed by GitHub
56 changed files with 1298 additions and 347 deletions
+7 -21
View File
@@ -391,35 +391,21 @@ runTests {
expected = 9223372036854775807;
};
testFromHexStringLeadingZeroes = {
expr = fromHexString "00ffffffffffffff";
expected = 72057594037927935;
};
testFromHexStringWithPrefix = {
expr = fromHexString "0Xf";
expr = fromHexString "0xf";
expected = 15;
};
# FIXME: This might be bad and should potentially be deprecated.
testFromHexStringQuestionableMixedCase = {
testFromHexStringMixedCase = {
expr = fromHexString "eEeEe";
expected = 978670;
};
# FIXME: This is probably bad and should potentially be deprecated.
testFromHexStringQuestionableUnderscore = {
expr = fromHexString "F_f";
expected = 255;
};
# FIXME: This is definitely bad and should be deprecated.
testFromHexStringBadComment = {
expr = fromHexString "0 # oops";
expected = 0;
};
# FIXME: Oh my god.
testFromHexStringAwfulInjection = {
expr = fromHexString "1\nwhoops = {}";
expected = 1;
};
testToBaseDigits = {
expr = toBaseDigits 2 6;
expected = [
+13 -6
View File
@@ -1119,14 +1119,21 @@ in
```
*/
fromHexString =
value:
str:
let
noPrefix = lib.strings.removePrefix "0x" (lib.strings.toLower value);
match = builtins.match "(0x)?([0-7]?[0-9A-Fa-f]{1,15})" str;
in
let
parsed = builtins.fromTOML "v=0x${noPrefix}";
in
parsed.v;
if match != null then
(builtins.fromTOML "v=0x${builtins.elemAt match 1}").v
else
# TODO: Turn this into a `throw` in 26.05.
assert lib.warn "fromHexString: ${
lib.generators.toPretty { } str
} is not a valid input and will be rejected in 26.05" true;
let
noPrefix = lib.strings.removePrefix "0x" (lib.strings.toLower str);
in
(builtins.fromTOML "v=0x${noPrefix}").v;
/**
Convert the given positive integer to a string of its hexadecimal
+12
View File
@@ -15454,6 +15454,12 @@
githubId = 1189862;
name = "Valter Nazianzeno";
};
mannerbund = {
email = "apostalimus@gmail.com";
github = "mannerbund";
githubId = 110305316;
name = "mannerbund";
};
manojkarthick = {
email = "smanojkarthick@gmail.com";
github = "manojkarthick";
@@ -23078,6 +23084,12 @@
githubId = 2049686;
name = "Sebastián Estrella";
};
seven_bear = {
name = "Edmond Freeman";
email = "edmondfreeman7@gmail.com";
github = "yueneiqi";
githubId = 26707756;
};
seylerius = {
name = "Sable Seyler";
email = "sable@seyleri.us";
+30 -41
View File
@@ -2,37 +2,28 @@ let
cert =
pkgs:
pkgs.runCommand "selfSignedCerts" { buildInputs = [ pkgs.openssl ]; } ''
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -subj '/CN=example.com/CN=uploads.example.com/CN=conference.example.com' -days 36500
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -days 365 \
-subj '/C=GB/CN=example.com' -addext "subjectAltName = DNS:example.com,DNS:uploads.example.com,DNS:conference.example.com"
mkdir -p $out
cp key.pem cert.pem $out
'';
# Creates and set password for the 2 xmpp test users.
#
# Doing that in a bash script instead of doing that in the test
# script allow us to easily provision the users when running that
# test interactively.
createUsers =
pkgs:
pkgs.writeScriptBin "create-prosody-users" ''
#!${pkgs.bash}/bin/bash
pkgs.writeShellScriptBin "create-prosody-users" ''
set -e
# Creates and set password for the 2 xmpp test users.
#
# Doing that in a bash script instead of doing that in the test
# script allow us to easily provision the users when running that
# test interactively.
prosodyctl register cthon98 example.com nothunter2
prosodyctl register azurediamond example.com hunter2
'';
# Deletes the test users.
delUsers =
pkgs:
pkgs.writeScriptBin "delete-prosody-users" ''
#!${pkgs.bash}/bin/bash
pkgs.writeShellScriptBin "delete-prosody-users" ''
set -e
# Deletes the test users.
#
# Doing that in a bash script instead of doing that in the test
# script allow us to easily provision the users when running that
# test interactively.
prosodyctl deluser cthon98@example.com
prosodyctl deluser azurediamond@example.com
'';
@@ -49,20 +40,20 @@ import ../make-test-python.nix {
}:
{
security.pki.certificateFiles = [ "${cert pkgs}/cert.pem" ];
console.keyMap = "fr-bepo";
networking.extraHosts = ''
${nodes.server.config.networking.primaryIPAddress} example.com
${nodes.server.config.networking.primaryIPAddress} conference.example.com
${nodes.server.config.networking.primaryIPAddress} uploads.example.com
${nodes.server.networking.primaryIPAddress} example.com
${nodes.server.networking.primaryIPAddress} conference.example.com
${nodes.server.networking.primaryIPAddress} uploads.example.com
'';
environment.systemPackages = [
(pkgs.callPackage ./xmpp-sendmessage.nix {
connectTo = nodes.server.config.networking.primaryIPAddress;
connectTo = nodes.server.networking.primaryIPAddress;
})
];
};
server =
{ config, pkgs, ... }:
{ nodes, pkgs, ... }:
{
nixpkgs.overlays = [
(self: super: {
@@ -72,11 +63,10 @@ import ../make-test-python.nix {
})
];
security.pki.certificateFiles = [ "${cert pkgs}/cert.pem" ];
console.keyMap = "fr-bepo";
networking.extraHosts = ''
${config.networking.primaryIPAddress} example.com
${config.networking.primaryIPAddress} conference.example.com
${config.networking.primaryIPAddress} uploads.example.com
${nodes.server.networking.primaryIPAddress} example.com
${nodes.server.networking.primaryIPAddress} conference.example.com
${nodes.server.networking.primaryIPAddress} uploads.example.com
'';
networking.firewall.enable = false;
environment.systemPackages = [
@@ -98,7 +88,7 @@ import ../make-test-python.nix {
domain = "conference.example.com";
}
];
uploadHttp = {
httpFileShare = {
domain = "uploads.example.com";
};
extraConfig = ''
@@ -131,16 +121,15 @@ import ../make-test-python.nix {
};
};
testScript =
{ nodes, ... }:
''
# Check with mysql storage
mysql.wait_for_unit("mysql.service")
server.wait_for_unit("prosody.service")
server.succeed('prosodyctl status | grep "Prosody is running"')
testScript = _: ''
# Check with mysql storage
start_all()
mysql.wait_for_unit("mysql.service")
server.wait_for_unit("prosody.service")
server.succeed('prosodyctl status | grep "Prosody is running"')
server.succeed("create-prosody-users")
client.succeed("send-message")
server.succeed("delete-prosody-users")
'';
server.succeed("create-prosody-users")
client.succeed("send-message")
server.succeed("delete-prosody-users")
'';
}
@@ -0,0 +1,75 @@
{
# Basic
lib,
melpaBuild,
fetchFromGitHub,
# Java Script dependency
nodejs,
fetchNpmDeps,
npmHooks,
# Updater
nix-update-script,
}:
melpaBuild (finalAttrs: {
pname = "eaf-map";
version = "0-unstable-2025-07-04";
src = fetchFromGitHub {
owner = "emacs-eaf";
repo = "eaf-map";
rev = "667865a9422ec71e3518833e1a13806d4f03adfb";
hash = "sha256-UgHIzYu/K1NzTDvUn2JkEmiyDEBT9JDmlvp6xG7Nv5k=";
};
env.npmDeps = fetchNpmDeps {
name = "${finalAttrs.pname}-npm-deps";
inherit (finalAttrs) src;
hash = "sha256-prxCFrKvC2dG9BgO3LIKDCFzjn9vFegpvuMy4Eg6Ghs=";
};
nativeBuildInputs = [
nodejs
npmHooks.npmConfigHook
];
postBuild = ''
npm run build
'';
files = ''
("*.el"
"*.py"
"*.js"
"src")
'';
postInstall = ''
LISPDIR=$out/share/emacs/site-lisp/elpa/${finalAttrs.ename}-${finalAttrs.melpaVersion}
touch node_modules/.nosearch
cp -r node_modules $LISPDIR/
cp -r dist $LISPDIR/
'';
passthru = {
updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
eafPythonDeps =
ps: with ps; [
numpy
pycurl
python-tsp
];
eafOtherDeps = [ ];
};
meta = {
description = "OpenStreetMap application for the EAF";
homepage = "https://github.com/emacs-eaf/eaf-map";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
thattemperature
];
};
})
@@ -0,0 +1,27 @@
{
lib,
melpaBuild,
fetchFromGitHub,
unstableGitUpdater,
}:
melpaBuild {
pname = "eglot-booster";
version = "0-unstable-2025-07-16";
src = fetchFromGitHub {
owner = "jdtsmith";
repo = "eglot-booster";
rev = "cab7803c4f0adc7fff9da6680f90110674bb7a22";
hash = "sha256-xUBQrQpw+JZxcqT1fy/8C2tjKwa7sLFHXamBm45Fa4Y=";
};
passthru.updateScript = unstableGitUpdater { };
meta = {
homepage = "https://github.com/jdtsmith/eglot-booster";
description = "Boost eglot using lsp-booster";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ mannerbund ];
};
}
@@ -2767,6 +2767,8 @@ in
};
nvzone-menu = super.nvzone-menu.overrideAttrs {
# Plugin managers like Lazy.nvim expect pname to match the name of the git repository
pname = "menu";
checkInputs = with self; [
# Optional integrations
nvim-tree-lua
@@ -2779,13 +2781,22 @@ in
};
nvzone-minty = super.nvzone-minty.overrideAttrs {
# Plugin managers like Lazy.nvim expect pname to match the name of the git repository
pname = "minty";
dependencies = [ self.nvzone-volt ];
};
nvzone-typr = super.nvzone-typr.overrideAttrs {
# Plugin managers like Lazy.nvim expect pname to match the name of the git repository
pname = "typr";
dependencies = [ self.nvzone-volt ];
};
nvzone-volt = super.nvzone-volt.overrideAttrs {
# Plugin managers like Lazy.nvim expect pname to match the name of the git repository
pname = "volt";
};
obsidian-nvim = super.obsidian-nvim.overrideAttrs {
checkInputs = with self; [
# Optional pickers
@@ -3560,8 +3560,8 @@ let
mktplcRef = {
name = "veriloghdl";
publisher = "mshr-h";
version = "1.16.0";
hash = "sha256-5C9SggdZ3gtYdQhpPFG4wme98b3VgKicXUpPn84gYb4=";
version = "1.16.1";
hash = "sha256-GsUNvBUlGZ5gRk6GnAfT0eUKHK+D+cPtdAhuYtxe3w8=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/mshr-h.VerilogHDL/changelog";
@@ -4270,8 +4270,8 @@ let
mktplcRef = {
publisher = "shd101wyy";
name = "markdown-preview-enhanced";
version = "0.8.18";
hash = "sha256-BHLFlhcIXm3mvmjDPu3fuzpJIGHQvT/RDBEE/QFoRvU=";
version = "0.8.19";
hash = "sha256-F87YInLUkPUpB2oifCCq1xWD41LUdqg8cusGw2wEYg0=";
};
meta = {
description = "Provides a live preview of markdown using either markdown-it or pandoc";
@@ -66,7 +66,10 @@ buildPythonApplication rec {
postInstall = ''
mkdir -p $out/share/{applications,pixmaps}
install -Dm 644 ${src}/rpmbuild/SOURCES/protonvpn-app.desktop $out/share/applications
# Fix the desktop file to correctly identify the wrapped app and show the icon during runtime
substitute ${src}/rpmbuild/SOURCES/protonvpn-app.desktop $out/share/applications/protonvpn-app.desktop \
--replace-fail "StartupWMClass=protonvpn-app" "StartupWMClass=.protonvpn-app-wrapped"
install -Dm 644 ${src}/rpmbuild/SOURCES/proton-vpn-logo.svg $out/share/pixmaps
'';
@@ -40,7 +40,7 @@
libsecret,
libsoup_2_4,
libvorbis,
libxml2,
libxml2_13,
llvmPackages,
more,
nspr,
@@ -90,19 +90,6 @@ let
'';
};
libxml2' = libxml2.overrideAttrs (oldAttrs: rec {
version = "2.13.8";
src = fetchurl {
url = "mirror://gnome/sources/libxml2/${lib.versions.majorMinor version}/libxml2-${version}.tar.xz";
hash = "sha256-J3KUyzMRmrcbK8gfL0Rem8lDW4k60VuyzSsOhZoO6Eo=";
};
meta = oldAttrs.meta // {
knownVulnerabilities = oldAttrs.meta.knownVulnerabilities or [ ] ++ [
"CVE-2025-6021"
];
};
});
in
stdenv.mkDerivation rec {
@@ -174,7 +161,7 @@ stdenv.mkDerivation rec {
libsecret
libsoup_2_4
libvorbis
libxml2'
libxml2_13
llvmPackages.libunwind
nspr
nss
+8 -7
View File
@@ -13,18 +13,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "010editor";
version = "15.0.2";
version = "16.0";
src =
if stdenv.hostPlatform.isLinux then
fetchzip {
url = "https://download.sweetscape.com/010EditorLinux64Installer${finalAttrs.version}.tar.gz";
hash = "sha256-oXwC4criDox8rac7mnJroqxMNKU7k+y7JQqc88XoRFc=";
hash = "sha256-DK+AIk90AC/KjZR0yBMHaRF7ajuX+UvT8rqDVdL678M=";
}
else
fetchurl {
url = "https://download.sweetscape.com/010EditorMac64Installer${finalAttrs.version}.dmg";
hash = "sha256-RZtFV3AbE5KfzW18usW0FS/AnX8Uets/RkVayBAODQ4=";
hash = "sha256-TWatSVqm9a+bVLXtJjiWAtkcB7qZqoeJ7Gmr62XUVz4=";
};
sourceRoot = ".";
@@ -53,13 +53,14 @@ stdenv.mkDerivation (finalAttrs: {
mkdir -p $out/Applications
cp -R *.app $out/Applications
'';
linuxInstall = ''
mkdir -p $out/opt && cp -ar source/* $out/opt
# Unset wrapped QT plugins since they're already included in the package,
# else the program crashes because of the conflict
# Use makeWrapper to clean environment and force xcb
makeWrapper $out/opt/010editor $out/bin/010editor \
--unset QT_PLUGIN_PATH
--unset QT_PLUGIN_PATH \
--set QT_QPA_PLATFORM xcb
# Copy the icon and generated desktop file
install -D $out/opt/010_icon_128x128.png $out/share/icons/hicolor/128x128/apps/010.png
@@ -84,7 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
exec = "010editor %f";
icon = "010";
desktopName = "010 Editor";
genericName = "Text and hex edtior";
genericName = "Text and hex editor";
categories = [ "Development" ];
mimeTypes = [
"text/html"
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "aliae";
version = "0.26.5";
version = "0.26.6";
src = fetchFromGitHub {
owner = "jandedobbeleer";
repo = "aliae";
tag = "v${version}";
hash = "sha256-F5OteK1D0MCNyiZG6iz3vawkx74WJKst2Yr6ca8TYZw=";
hash = "sha256-W/jj2YQc6M0ro4groCynly2stjv2FLAMvIopnQYCngY=";
};
vendorHash = "sha256-TsJU1oAc1T+VdUYzrcyflTPYJhG6sPjFNZ7bZKk1KdM=";
vendorHash = "sha256-8YTyhjF0p2l76sowq92ts5TjjcARToOfJN9nlFu19L4=";
sourceRoot = "${src.name}/src";
+14
View File
@@ -85,6 +85,20 @@ stdenv.mkDerivation (finalAttrs: {
cmakeDir = "../drivers/xgl";
cmakeFlags = [
# There is some incredibly cursed issue with
# `directx-shader-compiler` flagging up compiler errors only on
# `i686-linux` and only when it has been compiled with a recent
# GCC. Since few 32bit games are going to use ray tracing anyway,
# we just disable it for now. Arch has done this since 2022.
#
# See:
# * <https://github.com/NixOS/nixpkgs/issues/216294>
# * <https://github.com/GPUOpen-Drivers/gpurt/issues/5>
# * <https://gitlab.archlinux.org/archlinux/packaging/packages/lib32-amdvlk/-/commit/905d9bc2cf4a003b3d367537b5e120d9771cce16>
(lib.cmakeBool "VKI_RAY_TRACING" (!(stdenv.hostPlatform.isx86 && stdenv.hostPlatform.is32bit)))
];
installPhase = ''
runHook preInstall
+3 -3
View File
@@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "apko";
version = "0.30.2";
version = "0.30.4";
src = fetchFromGitHub {
owner = "chainguard-dev";
repo = "apko";
tag = "v${finalAttrs.version}";
hash = "sha256-5d/92BrrKfDGtIVp3AAg0cfKooaJH9YtDgmO635gZc4=";
hash = "sha256-4bmfHgtxaoXyx6GAUTtdNr47/Weol4KqO4fnonOCkEM=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@@ -29,7 +29,7 @@ buildGoModule (finalAttrs: {
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
vendorHash = "sha256-jHvImL22IYaeYhhedN+C/AfJAFkCFN1UqKZOBsNhQnA=";
vendorHash = "sha256-snyfsRyNOx6bsz506Nde2ofcBgVQOlNvYGuwFoHKOzI=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -23,13 +23,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "aquamarine";
version = "0.9.2";
version = "0.9.3";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "aquamarine";
tag = "v${finalAttrs.version}";
hash = "sha256-4izhj1j7J4mE8LgljCXSIUDculqOsxxhdoC81VhqizM=";
hash = "sha256-ZIa0peLluZ0AVT0f6bMW+bRCIxMRUVlN798PE4iHRAw=";
};
nativeBuildInputs = [
@@ -0,0 +1,14 @@
Submodule Plugin/modules/JUCE contains modified content
diff --git a/Plugin/modules/JUCE/modules/juce_gui_basics/windows/juce_ComponentPeer.h b/Plugin/modules/JUCE/modules/juce_gui_basics/windows/juce_ComponentPeer.h
index 06c0a729d..119f146b8 100644
--- a/Plugin/modules/JUCE/modules/juce_gui_basics/windows/juce_ComponentPeer.h
+++ b/Plugin/modules/JUCE/modules/juce_gui_basics/windows/juce_ComponentPeer.h
@@ -23,6 +23,8 @@
==============================================================================
*/
+#include <utility>
+
namespace juce
{
+6 -6
View File
@@ -32,14 +32,9 @@
pkg-config,
python3,
sqlite,
gcc11Stdenv,
stdenv,
webkitgtk_4_0,
}:
let
# JUCE version in submodules is incompatible with GCC12
# See here: https://forum.juce.com/t/build-fails-on-fedora-wrong-c-version/50902/2
stdenv = gcc11Stdenv;
in
stdenv.mkDerivation (finalAttrs: {
pname = "chow-tape-model";
version = "2.11.4";
@@ -52,6 +47,11 @@ stdenv.mkDerivation (finalAttrs: {
fetchSubmodules = true;
};
patches = [
# Fix the old JUCE submodule for GCC ≥ 12
./fix-juce-gcc-12.patch
];
nativeBuildInputs = [
pkg-config
cmake
@@ -0,0 +1,444 @@
Processing diff for: collectl.conf
--- a/collectl.conf 2025-08-14 08:42:24.434419733 +0000
+++ b/collectl.conf 2025-08-16 07:56:13.806350456 +0000
@@ -43,7 +43,7 @@
#Ps = /bin/ps
#Rpm = /bin/rpm
#Lspci = /sbin/lspci
-#Lctl = /usr/sbin/lctl
+#Lctl = /usr/sbin/lctl # disabled since collectl 4.0.4
# I n f i n i b a n d S u p p o r t
@@ -55,10 +55,11 @@
# variable below. PQuery for OFED, PCounter for get_pcounter calls and
# VStat for ALL non-ofed access of any kind.
# can disable either by commenting out the reference to VStat/PQuery below.
-PQuery = /usr/sbin/perfquery:/usr/bin/perfquery:/usr/local/ofed/bin/perfquery
-PCounter = /usr/mellanox/bin/get_pcounter
-VStat = /usr/mellanox/bin/vstat:/usr/bin/vstat
-OfedInfo = /usr/bin/ofed_info:/usr/local/ofed/bin/ofed_info
+# Disable the Infiniband support by default
+# PQuery = /usr/sbin/perfquery:/usr/bin/perfquery:/usr/local/ofed/bin/perfquery
+# PCounter = /usr/mellanox/bin/get_pcounter
+# VStat = /usr/mellanox/bin/vstat:/usr/bin/vstat
+# OfedInfo = /usr/bin/ofed_info:/usr/local/ofed/bin/ofed_info
# D e f a u l t s
@@ -116,7 +117,7 @@
# size, comment out the Resize line and uncomment TermHeight, setting it to
# what you want.
#TermHeight = 24
-Resize=/usr/bin/resize:/usr/X11R6/bin/resize
+Resize=@resize@
# To turn off Time:HiRes/glibc incompatibility checking, the following
# should be enabled and set to 0
@@ -125,7 +126,7 @@
# These control environmental monitoring and to use it you MUST have ipmitool
# installed (see http://ipmitool.sourceforge.net/). If not in the path shown
# below, you must change it.
-Ipmitool = /usr/bin/ipmitool:/usr/local/bin/ipmitool:/opt/hptc/sbin/ipmitool
+Ipmitool = @ipmitool@
IpmiCache = /var/run/collectl-ipmicache
IpmiTypes = fan,temp,current
Processing diff for: collectl
--- a/collectl 2025-08-14 08:42:24.434419733 +0000
+++ b/collectl 2025-08-16 09:25:20.238548613 +0000
@@ -69,14 +69,14 @@
use IO::Select;
use Cwd 'abs_path';
-$Cat= '/bin/cat';
-$Grep= '/bin/grep';
-$Egrep= '/bin/egrep';
-$Ps= '/bin/ps';
-$Rpm= '/bin/rpm';
-$Lspci= '/sbin/lspci';
-$Lctl= '/usr/sbin/lctl';
-$Dmidecode= '/usr/sbin/dmidecode';
+$Cat= '@cat@';
+$Grep= '@grep@';
+$Egrep= '@egrep@';
+$Ps= '@ps@';
+$Rpm= '@rpm@';
+$Lspci= '@lspci@';
+$Lctl= '/usr/sbin/lctl'; # disabled since collectl 4.0.4
+$Dmidecode= '@dmidecode@';
%TopProcTypes=qw(vsz '' rss '' syst '' usrt '' time '' accum '' rkb '' wkb '' iokb ''
rkbc '' wkbc '' iokbc '' ioall '' rsys '' wsys '' iosys ''
@@ -108,7 +108,7 @@
$syslogFlag=(eval {require "Sys/Syslog.pm" or die}) ? 1 : 0;
# Always nice to know if we're root
-$rootFlag=(!$PcFlag && `whoami`=~/root/) ? 1 : 0;
+$rootFlag=(!$PcFlag && `@whoami@`=~/root/) ? 1 : 0;
$SrcArch= $Config{"archname"};
$Version= '4.3.20';
@@ -126,15 +126,15 @@
# we're in the background. We also need to know if STDOUT connected to a terminal.
if (!$PcFlag)
{
- $MyDir=`pwd`;
- $Cat= 'cat';
+ $MyDir=`@pwd@`;
+ $Cat= '@cat@';
$Sep= '/';
$backFlag=(getpgrp()!=tcgetpgrp(0)) ? 1 : 0;
$termFlag= (-t STDOUT) ? 1 : 0;
}
else
{
- $MyDir=`cd`;
+ $MyDir=`@cd@`;
$Cat= 'type';
$Sep= '\\';
$backFlag=0;
@@ -148,7 +148,7 @@
# which was recorded with the data file and WILL override in playback mode.
# We also need our host name before calling initRecord() so we can log it at
# startup as well as for naming the logfile.
-$myHost=($PcFlag) ? `hostname` : `/bin/hostname`;
+$myHost=($PcFlag) ? `@hostname@` : `@hostname@`;
$myHost=(split(/\./, $myHost))[0];
chomp $myHost;
$Host=$myHost;
@@ -509,12 +509,12 @@
if ($runasUser!~/^\d+$/)
{
- $runasUid=(split(/:/, `grep ^$runasUser: /etc/passwd`))[2];
+ $runasUid=(split(/:/, `@grep@ ^$runasUser: /etc/passwd`))[2];
error("can't find '$runasUser' in /etc/passwd. Consider UID.") if !defined($runasUid);
}
if (defined($runasGroup) && $runasGroup!~/^\d+$/)
{
- $runasGid=(split(/:/, `grep ^$runasGroup: /etc/group`))[2];
+ $runasGid=(split(/:/, `@grep@ ^$runasGroup: /etc/group`))[2];
error("can't find '$runasGroup' in /etc/group. Consider GID.") if !defined($runasGid);
}
$runasUid=$runasUser if $runasUser=~/^\d+/;
@@ -1167,19 +1167,19 @@
if (!$PcFlag)
{
# This matches THIS host, but in playback mode will be reset to the target
- $Kernel=`uname -r`;
+ $Kernel=`@uname@ -r`;
chomp $Kernel;
error("collectl no longer supports 2.4 kernels") if $Kernel=~/^2\.4/;
- $LocalTimeZone=`date +%z`;
+ $LocalTimeZone=`@date@ +%z`;
chomp $LocalTimeZone;
# Some distros put lspci in /usr/sbin and others in /usr/bin, so take one last look in
# those before complaining, but only if in record mode AND only if looking at interconnects
if (!-e $Lspci && $playback eq '' && $subsys=~/x/i)
{
- $Lspci=(-e '/usr/sbin/lspci') ? '/usr/sbin/lspci' : '/usr/bin/lspci';
- if (!-e "/usr/sbin/lspci" && !-e "/usr/bin/lspci")
+ $Lspci='@lspci@';
+ if (!-e "@lspci@")
{
pushmsg('W', "-sx disabled because 'lspci' not in $Lspci or '/usr/sbin' or '/usr/bin'");
pushmsg('W', "If somewhere else, move it or define in collectl.conf");
@@ -1274,7 +1274,7 @@
# it further on so not to worry, but at least record a warning.
$pid=`$Cat $PidFile`;
chomp $pid;
- @ps=`ps axo pid,command`;
+ @ps=`@ps@ axo pid,command`;
foreach my $line (@ps)
{
$line=~s/^\s+//; # trim leading whitespace for short pids
@@ -1551,14 +1551,14 @@
}
# if -N, set priority to 20
-`renice 20 $$` if $niceFlag;
+`@renice@ 20 $$` if $niceFlag;
# Couldn't find anywhere else to put this one...
error("-sT only works with -P for now (too much data)")
if $TFlag && !$plotFlag;
# get parent pid so we can check later to see it still there
-$stat=`cat /proc/$$/stat`;
+$stat=`@cat@ /proc/$$/stat`;
$myPpid=(split(/\s+/, $stat))[3];
###############################
@@ -2311,7 +2311,7 @@
printBriefCounters('T');
}
- `stty echo` if !$PcFlag && $termFlag && !$backFlag; # in brief mode, we turned it off
+ `@stty@ echo` if !$PcFlag && $termFlag && !$backFlag; # in brief mode, we turned it off
my $temp=(!$msgFlag) ? ' Try again with -m.' : '';
print "No files selected contain the selected data.$temp\n" if !$numProcessed;
exit(0);
@@ -2453,7 +2453,7 @@
open STDIN, '/dev/null' or logmsg("F", "Can't read /dev/null: $!");
open STDOUT, '>/dev/null' or logmsg("F", "Can't write to /dev/null: $!");
open STDERR, '>/dev/null' or logmsg("F", "Can't write to /dev/null: $!");
- `echo $$ > $PidFile`;
+ `@echo@ $$ > $PidFile`;
# Now that we're set up to start, if '--runas' has been sprecified we need to do a
# few things that require privs before actually changing our UID. Also note the
@@ -2469,8 +2469,8 @@
$logname=(-d $filename) ? $filename : dirname($filename);
$logname.="/$myHost-collectl-$yymm.log";
- `chown $runasUid $logname`;
- `chgrp $runasGid $logname` if defined($runasGid);
+ `@chown@ $runasUid $logname`;
+ `@chgrp@ $runasGid $logname` if defined($runasGid);
# now we can change our process's ownership taking care to do the group first
# since we won't be able to change anything once we change our UID.
@@ -3244,7 +3244,7 @@
# close logs cleanly and turn echo back on because when 'brief' we turned it off.
closeLogs($subsys);
unlink $PidFile if $daemonFlag;
-`stty echo` if !$PcFlag && $termFlag && !$backFlag;
+`@stty@ echo` if !$PcFlag && $termFlag && !$backFlag;
# clean up when in pure top mode
if ($numTop && !$topVertFlag)
@@ -4350,7 +4350,7 @@
if (!-e $temp)
{
logmsg('W', "Creating directory '$temp'");
- `mkdir $temp`;
+ `@mkdir@ $temp`;
}
# track number of times same file processed, primarily for options 'a/c'. in
@@ -5363,7 +5363,7 @@
# build up the search list being extra neat and leaving
# off possible duplicate /etc
- $configFile="$BinDir/$ConfigFile;$etcDir/$ConfigFile";
+ $configFile="$BinDir/../etc/$ConfigFile;$etcDir/$ConfigFile";
$configFile.=";/etc/$ConfigFile" if $etcDir ne '/etc';
}
print "Config File Search Path: $configFile\n" if $debug & 1;
@@ -5789,7 +5789,7 @@
# what gets stored in /proc/XXX/stat and to make sure we look at the same
# values dynamically as well as staticly, we better pull cmd from the stat
# file itself.
- @ps=`ps axo pid,ppid,uid,comm,user`;
+ @ps=`@ps@ axo pid,ppid,uid,comm,user`;
my $firstFilePass=1;
foreach $process (@ps)
{
@@ -6228,7 +6228,7 @@
$briefFlag=0;
$verboseFlag=1;
intervalPrint(time);
- `stty echo` if !$PcFlag && $termFlag && !$backFlag;
+ `@stty@ echo` if !$PcFlag && $termFlag && !$backFlag;
}
sub error
@@ -6241,7 +6241,7 @@
# printText() will try to send error over socket and we want it local.
$sockFlag=0 if $serverFlag;
- `stty echo` if !$PcFlag && $termFlag && !$backFlag;
+ `@stty@ echo` if !$PcFlag && $termFlag && !$backFlag;
logmsg("F", "Error: $text") if $daemonFlag;
# we can only call printText() when formatit loaded.
Processing diff for: colmux
--- a/colmux 2025-08-14 08:42:24.438419919 +0000
+++ b/colmux 2025-08-15 07:38:22.003168089 +0000
@@ -78,7 +78,7 @@
my $License="colmux may be copied only under the terms of either the Artistic License\n";
$License.= "or the GNU General Public License, which may be found in the source kit";
-my $Ping='/bin/ping';
+my $Ping='@ping@';
my $ResizePath='/usr/bin/resize:/usr/X11R6/bin/resize';
my $Route='/sbin/route';
my $Ifconfig='/sbin/ifconfig';
@@ -235,7 +235,7 @@
$Collectl="sudo $Collectl" if $sudoFlag;
# ok if host not in known_hosts and when not debugging be sure to turn off motd
-my $Ssh='/usr/bin/ssh -o StrictHostKeyChecking=no -o BatchMode=yes';
+my $Ssh='@ssh@ -o StrictHostKeyChecking=no -o BatchMode=yes';
$Ssh.=" -o ServerAliveInterval=$keepalive" if $keepalive ne '';
$Ssh.=" -q" unless $debug;
@@ -357,7 +357,7 @@
# See if any host specs contain 'username@' & reset 'localhost' and
# adjust maximum hostname length if necessary.
my $hostlen=$hostWidth;
-my $myhost=`hostname`;
+my $myhost=`@hostname@`;
chomp $myhost;
my (%usernames, %sshswitch, %aliases);
@@ -510,7 +510,7 @@
$line=~s/^\s+//; # can have leading space
my $pid=(split(/\s+/, $line))[0];
print "Killing ssh with pid: $pid\n" if $debug & 1;
- `kill $pid`;
+ `@kill@ $pid`;
}
sleep 1; # wait a tad for ssh in thread to exit
close PS;
@@ -983,7 +983,7 @@
$line=~s/^\s+//;
my $pid=(split(/\s+/, $line))[0];
print "Killing ssh with pid: $pid\n" if $debug & 1;
- `kill $pid`;
+ `@kill@ $pid`;
}
}
@@ -1179,7 +1179,7 @@
foreach my $host (keys %files)
{
print "Killing pid $files{$host}->{pid} for '$host'\n" if $debug & 1;
- `kill -9 $files{$host}->{pid}`;
+ `@kill@ -9 $files{$host}->{pid}`;
#close $files{$host}->{fd} or error("Failed to close playback file for '$host'");
}
Processing diff for: formatit.ph
--- a/formatit.ph 2025-08-14 08:42:24.438419919 +0000
+++ b/formatit.ph 2025-08-15 07:18:19.548190580 +0000
@@ -20,19 +20,19 @@
$rawPFlag=0; # always 0 when no files involved
# In some case, we need to know if we're root.
- $rootFlag=`whoami`;
+ $rootFlag=`@whoami@`;
$rootFlag=($rootFlag=~/root/) ? 1 : 0;
# be sure to remove domain portion if present. also note we keep the hostname in
# two formats, one in it's unaltered form (at least needed by lustre directory
# parsing) as well as all lc because it displays nicer.
- $Host=`hostname`;
+ $Host=`@hostname@`;
chomp $Host;
$Host=(split(/\./, $Host))[0];
$HostLC=lc($Host);
# when was system booted?
- $uptime=(split(/\s+/, `cat /proc/uptime`))[0];
+ $uptime=(split(/\s+/, `@cat@ /proc/uptime`))[0];
$boottime=time-$uptime;
$Distro=cat('/etc/redhat-release') if -e '/etc/redhat-release';
@@ -83,11 +83,11 @@
if ($subsys=~/y/i && $slabinfoFlag || $slubinfoFlag)
{
$message='';
- $message='/proc/slabinfo' if $slabinfoFlag && !(eval {`cat /proc/slabinfo 2>/dev/null` or die});
- $message='/sys/slab' if $slubinfoFlag && !(eval {`cat /proc/slubinfo 2>/dev/null` or die});
+ $message='/proc/slabinfo' if $slabinfoFlag && !(eval {`@cat@ /proc/slabinfo 2>/dev/null` or die});
+ $message='/sys/slab' if $slubinfoFlag && !(eval {`@cat@ /proc/slubinfo 2>/dev/null` or die});
if ($message ne '')
{
- my $whoami=`whoami`;
+ my $whoami=`@whoami@`;
chomp $whoami;
disableSubsys('y', "/proc/slabinfo is not readable by $whoami");
$interval=~s/(^\d*):\d+/$1:/ if $subsys!~/z/i; # remove int2 if not needed or we'll get error
@@ -132,7 +132,7 @@
for (my $i=1; $i<$NumCpus; $i++)
{
- my $online=`cat /sys/devices/system/cpu/cpu$i/online`;
+ my $online=`@cat@ /sys/devices/system/cpu/cpu$i/online`;
chomp $online;
$cpuEnabled[$i]=$online;
@@ -266,7 +266,7 @@
$ibSpeed='??';
if (-e '/sys/class/infiniband')
{
- $line=`cat /sys/class/infiniband/*/ports/1/rate 2>&1`;
+ $line=`@cat@ /sys/class/infiniband/*/ports/1/rate 2>&1`;
if ($line=~/\s*(\d+)\s+(\S)/)
{
$ibSpeed=$1;
@@ -669,7 +669,7 @@
{
# Get Luster and SFS Versions before looking at any data structures in the
# 'lustreCheck' routines because things change over time
- $temp=`cat /proc/fs/lustre/version | grep lustre 2>/dev/null`;
+ $temp=`@cat@ /proc/fs/lustre/version | grep lustre 2>/dev/null`;
$temp=~/lustre: (\d+.*)/;
$cfsVersion=$1;
$sfsVersion='';
@@ -716,7 +716,7 @@
# The first step is to build up a hash of the sizes of all the
# existing partitions. Since we're only doing this once, a 'cat's
# overhead should be minimal
- @partitions=`cat /proc/partitions`;
+ @partitions=`@cat@ /proc/partitions`;
foreach $part (@partitions)
{
# ignore blank lines and header
@@ -778,7 +778,7 @@
$temp=`head -n 1 /proc/slabinfo`;
$temp=~/(\d+\.\d+)/;
$SlabVersion=$1;
- $NumSlabs=`cat /proc/slabinfo | wc -l`*1;
+ $NumSlabs=`@cat@ /proc/slabinfo | wc -l`*1;
chomp $NumSlabs;
$NumSlabs-=2;
@@ -4127,7 +4127,7 @@
$netSpeeds{$netName}='??';
if ($line ne '')
{
- $speed=`cat $line 2>&1`;
+ $speed=`@cat@ $line 2>&1`;
chomp $speed;
$line=~/.*\/(\S+)\/speed/;
my $netName=$1;
Processing diff for: graphite.ph
--- a/graphite.ph 2025-08-14 08:42:24.442420106 +0000
+++ b/graphite.ph 2025-08-14 08:44:07.351625049 +0000
@@ -117,7 +117,7 @@
# behavior for -f logs matches that of -A
$rawtooFlag=1 if $filename ne '' && !$plotFlag;
- $graphiteMyHost=(!$graphiteFqdnFlag) ? `hostname` : `hostname -f`;
+ $graphiteMyHost=(!$graphiteFqdnFlag) ? `@hostname@` : `@hostname@ -f`;
chomp $graphiteMyHost;
$graphiteMyHost =~ s/\./$graphiteEscape/g if $graphiteEscape ne '';
Processing diff for: vmsum.ph
--- a/vmsum.ph 2025-08-14 08:42:24.442420106 +0000
+++ b/vmsum.ph 2025-08-14 08:44:24.184414112 +0000
@@ -20,8 +20,8 @@
my $oneMB=1024*1024;
my ($debug, $helpFlag, $instMin, $versionFlag, $zeroFlag);
-my $Ssh= '/usr/bin/ssh';
-my $Ping='/bin/ping';
+my $Ssh= '@ssh@';
+my $Ping='@ping@';
my $PingTimeout=1;
# these control writing the vm text file
@@ -32,7 +32,7 @@
my $lexprFlag=0;
my $noNetMsg=''; # if not null, problem with n/w stats (very rare)
-my $hostname=`hostname`;
+my $hostname=`@hostname@`;
chomp $hostname;
sub vmsumInit
@@ -0,0 +1,133 @@
--- a/INSTALL 2025-08-14 08:46:43.845548078 +0000
+++ b/INSTALL 2025-08-14 08:50:33.771706783 +0000
@@ -1,28 +1,29 @@
#!/bin/sh
-DESTDIR=${DESTDIR:="/"}
+# Use Nix output directory instead of system paths
+DESTDIR=${out}
-BINDIR=$DESTDIR/usr/bin
-DOCDIR=$DESTDIR/usr/share/doc/collectl
-SHRDIR=$DESTDIR/usr/share/collectl
-MANDIR=$DESTDIR/usr/share/man/man1
-SYSDDIR=$DESTDIR/usr/lib/systemd/system
-ETCDIR=$DESTDIR/etc
-INITDIR=$ETCDIR/init.d
+BINDIR=$out/bin
+DOCDIR=$out/share/doc/collectl
+SHRDIR=$out/share/collectl
+MANDIR=$out/share/man/man1
+SYSDDIR=$out/lib/systemd/system
+ETCDIR=$out/etc
+INITDIR=$out/etc/init.d
mkdir -p $BINDIR
mkdir -p $DOCDIR
mkdir -p $SHRDIR
mkdir -p $ETCDIR
mkdir -p $MANDIR
-mkdir -p $INITDIR
+# Skip init.d creation for Nix
mkdir -p $SHRDIR/util
mkdir -p $DESTDIR/var/log/collectl
cp collectl colmux $BINDIR
cp collectl.conf $ETCDIR
cp man1/* $MANDIR
-cp initd/* $INITDIR
+# Skip init scripts for Nix
cp docs/* $DOCDIR
cp GPL ARTISTIC COPYING $DOCDIR
@@ -42,87 +43,12 @@
# Force in case redoing the install and files already zipped
gzip -f $MANDIR/collectl*
-chmod 755 $INITDIR/collectl*
+# Skip chmod on init scripts for Nix
chmod 444 $ETCDIR/collectl.conf
chmod 755 $BINDIR/collectl
chmod 444 $DOCDIR/ARTISTIC $DOCDIR/COPYING $DOCDIR/GPL
chmod 444 $SHRDIR/*ph
chmod 755 $SHRDIR/util/*
-# remove any stale versions in case the names/numbers used have changed.
-# on new ROCKS installion 'rm' isn't there yet! [thanks roy]
-if [ -x /bin/rm ] ; then
- /bin/rm -f $INITDIR/rc*.d/*collectl
- /bin/rm -f $ETCDIR/rc.d/rc*.d/*collectl
-fi
-
-# only if systemd is supported
-if [ -d $SYSDDIR ]; then
- cp service/collectl.service $SYSDDIR
-fi
-
-# Try and decide which distro this is based on distro specific files.
-distro=1
-if [ -f /sbin/yast ]; then
- distro=2
- mv -f $INITDIR/collectl-suse $INITDIR/collectl
- rm -f $INITDIR/collectl-debian
- rm -f $INITDIR/collectl-generic
-fi
-
-# debian
-if [ -f /usr/sbin/update-rc.d ]; then
- distro=3
- mv -f $INITDIR/collectl-debian $INITDIR/collectl
- rm -f $INITDIR/collectl-suse
- rm -f $INITDIR/collectl-generic
-
- # only if we're installing under /
- [ "$DESTDIR" = "/" ] && update-rc.d collectl defaults
-fi
-
-# redhat
-if [ -f /etc/redhat-release ]; then
- distro=4
- rm -f $INITDIR/collectl-suse
- rm -f $INITDIR/collectl-debian
- rm -f $INITDIR/collectl-generic
- if [ -f /usr/sbin/chkconfig ]; then
- [ "$DESTDIR" = "/" ] && chkconfig --add collectl
- fi
-# Not needed for RHEL8 and higher
-fi
-
-# gentoo
-if [ -f $ETCDIR/gentoo-release ]; then
- distro=5
- mv -f $INITDIR/collectl-generic $INITDIR/collectl
- rm -f $INITDIR/collectl-suse
- rm -f $INITDIR/collectl-debian
- [ "$DESTDIR" = "/" ] && rc-update -a collectl default
-fi
-
-# Generic Distros
-# If /etc/init.d doesn't exist and/or there's no way to use chkconfig or
-# rc-update you're going to have to add some custom code below...
-if [ ${distro} = 1 ]; then
-
- mv -f $INITDIR/collectl-generic $INITDIR/collectl
- rm -f $INITDIR/collectl-suse
- rm -f $INITDIR/collectl-debian
-
- # If in not installing under / there's nothing extra do
- [ $DESTDIR != "/" ] && exit 0
-
- # figure out how to handle reboots
- if [ -f /sbin/chkconfig ]; then
- chkconfig --add collectl
- elif [ -f /sbin/rc-update ]; then
- rc-update -a collectl default
-# RHEL9 has no chkconfig
- elif [ -f /usr/bin/systemctl ]; then
- systemctl enable collectl
- else
- echo "could not figure out how to enable restarting across reboots"
- fi
-fi
+# Skip all distro-specific service installation for Nix
+# Nix manages services differently through NixOS modules
+126
View File
@@ -0,0 +1,126 @@
{
callPackage,
lib,
stdenv,
fetchFromGitHub,
replaceVars,
# Runtime dependencies
coreutils,
dmidecode,
gnugrep,
inetutils,
openssh,
pciutils,
perl,
procps,
rpm,
util-linux,
xterm,
# Dependencies
ipmitool,
}:
let
inherit (lib) getExe getExe' genAttrs;
# Define tool dependencies for script patches
scriptDeps =
let
mkTools = pkg: tools: genAttrs tools (tool: getExe' pkg tool);
in
# Tools from various packages
(mkTools coreutils [
"cat"
"whoami"
"pwd"
"uname"
"date"
"mkdir"
"chown"
"chgrp"
"echo"
"kill"
"cd"
"stty"
])
// (mkTools util-linux [ "renice" ])
// (mkTools gnugrep [
"grep"
"egrep"
])
// (mkTools inetutils [
"hostname"
"ping"
])
// (mkTools procps [ "ps" ])
// (mkTools pciutils [ "lspci" ])
// (mkTools xterm [ "resize" ])
// (mkTools dmidecode [ "dmidecode" ])
// (mkTools rpm [ "rpm" ])
// {
# Single-tool packages
ssh = getExe openssh;
ipmitool = getExe ipmitool;
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "collectl";
version = "4.3.20.1";
src = fetchFromGitHub {
owner = "sharkcz";
repo = "collectl";
rev = finalAttrs.version;
hash = "sha256-OJGCuxWvoId1cQ5Ugiav5/T/NzddwhM+gG3s0BnYYz0=";
};
strictDeps = true;
patches = [
(replaceVars ./0001-scripts-external-executable-calls.patch scriptDeps)
./0002-fix-install-script.patch
];
buildInputs = [
perl
dmidecode
ipmitool
];
dontBuild = true;
installPhase = ''
runHook preInstall
bash ./INSTALL
runHook postInstall
'';
passthru.tests.run = callPackage ./test.nix { };
meta = {
description = "Performance monitoring tool for Linux systems";
longDescription = ''
Collectl is a light-weight performance monitoring tool capable of reporting
interactively as well as logging to disk. It reports statistics on cpu, disk,
infiniband, lustre, memory, network, nfs, process, quadrics, slabs and more
in easy to read format.
The `--config` option allows specifying a custom configuration file path,
overriding the default configuration file in the package's etc directory.
'';
homepage = "https://github.com/sharkcz/collectl";
downloadPage = "https://github.com/sharkcz/collectl/releases";
license = with lib.licenses; [
artistic1
gpl1Plus
];
maintainers = with lib.maintainers; [ seven_bear ];
platforms = lib.platforms.linux;
mainProgram = "collectl";
};
})
+44
View File
@@ -0,0 +1,44 @@
{
runCommand,
collectl,
coreutils,
}:
runCommand "collectl-test"
{
nativeBuildInputs = [
collectl
coreutils
];
meta.timeout = 60;
}
''
# Test basic functionality - limit to 5 seconds to avoid hanging
timeout 5s collectl -c1 >/dev/null || true
# Test that explicit config file option still works with original config
timeout 5s collectl --config ${collectl}/etc/collectl.conf -c1 >/dev/null || true
# Test custom config file path override
custom_config_path=$(mktemp)
cp ${collectl}/etc/collectl.conf "$custom_config_path"
# Test that collectl uses the custom config file path
config_output=$(timeout 5s collectl --config "$custom_config_path" -c1 -d1 2>&1 | grep -i "Config File Search Path:" | head -1)
expected_output="Config File Search Path: $custom_config_path"
if [ "$config_output" = "$expected_output" ]; then
echo " Custom config file path test passed"
else
echo " Custom config file path test failed"
echo "Expected: $expected_output"
echo "Got: $config_output"
exit 1
fi
# Cleanup
rm -f "$custom_config_path"
# Signal success
touch $out
''
+3 -3
View File
@@ -11,16 +11,16 @@
buildGoModule rec {
pname = "matrix-dendrite";
version = "0.14.1";
version = "0.15.2";
src = fetchFromGitHub {
owner = "element-hq";
repo = "dendrite";
rev = "v${version}";
hash = "sha256-b/kybHF9WcP88kQuG7LB0/pgflYUeWNqEHfUyKfUCIU=";
hash = "sha256-VxQ5fuGzkEL371TmnDQ0wNqqmfzupmsTX/v+eFthj8E=";
};
vendorHash = "sha256-380xuwMD9gxrjUsLfO8R08wruyWZwjRhiIDmSc/FGwA=";
vendorHash = "sha256-QUztOoOesECAhwh4whzvrc43rJxjtPaEICUHno2DId0=";
subPackages = [
# The server
+2 -2
View File
@@ -18,11 +18,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dwm";
version = "6.5";
version = "6.6";
src = fetchzip {
url = "https://dl.suckless.org/dwm/dwm-${finalAttrs.version}.tar.gz";
hash = "sha256-Cc4B8evvuRxOjbeOhg3oAs3Nxi/msxWg950/eiq536w=";
hash = "sha256-fD97OpObSOBTAMc3teejS0u2h4hCkMVYJrNZ6F4IaFs=";
};
nativeBuildInputs = lib.optional stdenv.hostPlatform.isStatic pkg-config;
+2 -2
View File
@@ -23,11 +23,11 @@
stdenv.mkDerivation rec {
pname = "e16";
version = "1.0.30";
version = "1.0.31";
src = fetchurl {
url = "mirror://sourceforge/enlightenment/e16-${version}.tar.xz";
hash = "sha256-JKBmBgC5cN4XO03r0NR78Ly9tpI733/sUEPL0GLU5B0=";
hash = "sha256-ZQTsIy/BiO/xUiCu+bc2n406F0unAinxyYLjVRfUSiQ=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "emcee";
version = "0.5.1";
version = "0.6.1";
src = fetchFromGitHub {
owner = "loopwork-ai";
repo = "emcee";
tag = "v${finalAttrs.version}";
hash = "sha256-ri/4Xxc6QgGqsARI5c2JjVeEe5lOmi/c+B3+vUvW6ow=";
hash = "sha256-k8W3kCVF1WuX5nYX75HvfMlxpEcVbuX2lZKlLOf1qGI=";
};
vendorHash = "sha256-B8shxh1fLdIR7TN0mSugu9wFNShmrb1WBzCArHVVnoU=";
vendorHash = "sha256-e8LPcKue7rhAh03uCRG0VTcwwyj3kDOBoeo3t7Hwvi0=";
ldflags = [
"-X main.version=${finalAttrs.version}"
@@ -8,6 +8,7 @@
glew,
gsl,
lcms2,
libjpeg,
libpng,
libtiff,
libGLU,
@@ -35,6 +36,7 @@ stdenv.mkDerivation {
glew
gsl
lcms2
libjpeg
libpng
libtiff
libGLU
+2 -2
View File
@@ -7,14 +7,14 @@
python3Packages.buildPythonApplication rec {
pname = "flexget";
version = "3.17.6";
version = "3.17.11";
pyproject = true;
src = fetchFromGitHub {
owner = "Flexget";
repo = "Flexget";
tag = "v${version}";
hash = "sha256-E0ytB30tiJgmdfpJ+KCy67enqmfZT7HjoZHlqtRQWsQ=";
hash = "sha256-Qfq6TXSNAnIq8m3I7noFe6pIq6PmUTQKUjN+ZC4NxyU=";
};
pythonRelaxDeps = true;
+9 -10
View File
@@ -2,30 +2,26 @@
lib,
buildNpmPackage,
fetchFromGitHub,
fetchpatch,
gitUpdater,
}:
buildNpmPackage (finalAttrs: {
pname = "gemini-cli";
version = "0.1.18";
version = "0.1.21";
src = fetchFromGitHub {
owner = "google-gemini";
repo = "gemini-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-vO70olSAG6NaZjyERU22lc8MbVivyJFieGcy0xOErrc=";
hash = "sha256-eS83Uwp6LzyQuIx2jirXnJ6Xb2XEaAKLnS9PMKTIvyI=";
};
patches = [
(fetchpatch {
url = "https://github.com/google-gemini/gemini-cli/pull/5336/commits/c1aef417d559237bf4d147c584449b74d6fbc1f8.patch";
name = "restore-missing-dependencies-fields.patch";
hash = "sha256-euRoLpbv075KIpYF9QPMba5FxG4+h/kxwLRetaay33s=";
})
# FIXME: remove once https://github.com/google-gemini/gemini-cli/pull/5336 is merged
./restore-missing-dependencies-fields.patch
];
npmDepsHash = "sha256-8dn0i2laR4LFZk/sFDdvblvrHSnraGcLl3WAthCOKc0=";
npmDepsHash = "sha256-5pFnxZFhVNxYLPJClYq+pe4wAX5623Y3hFj8lIq00+E=";
preConfigure = ''
mkdir -p packages/generated
@@ -59,7 +55,10 @@ buildNpmPackage (finalAttrs: {
description = "AI agent that brings the power of Gemini directly into your terminal";
homepage = "https://github.com/google-gemini/gemini-cli";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ donteatoreo ];
maintainers = with lib.maintainers; [
donteatoreo
taranarmo
];
platforms = lib.platforms.all;
mainProgram = "gemini";
};
@@ -0,0 +1,69 @@
From c1aef417d559237bf4d147c584449b74d6fbc1f8 Mon Sep 17 00:00:00 2001
From: ljxfstorm <ljxf.storm@live.cn>
Date: Fri, 1 Aug 2025 10:23:11 +0800
Subject: [PATCH] build(deps): restore missing `resolved` and `integrity` of
some dependencies
---
package-lock.json | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/package-lock.json b/package-lock.json
index 3938c5e32b..99590b8a9b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11738,6 +11738,8 @@
},
"packages/cli/node_modules/@testing-library/dom": {
"version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz",
+ "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -11773,6 +11775,8 @@
},
"packages/cli/node_modules/@testing-library/react": {
"version": "16.3.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz",
+ "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11824,6 +11828,8 @@
},
"packages/cli/node_modules/aria-query": {
"version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
"dev": true,
"license": "Apache-2.0",
"peer": true,
@@ -11833,6 +11839,8 @@
},
"packages/cli/node_modules/emoji-regex": {
"version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
"license": "MIT"
},
"packages/cli/node_modules/react-is": {
@@ -11845,6 +11853,8 @@
},
"packages/cli/node_modules/string-width": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"license": "MIT",
"dependencies": {
"emoji-regex": "^10.3.0",
@@ -11942,6 +11952,8 @@
},
"packages/core/node_modules/ignore": {
"version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
"license": "MIT",
"engines": {
"node": ">= 4"
+35 -33
View File
@@ -1,31 +1,32 @@
{
lib,
stdenv,
gettext,
fetchurl,
pkg-config,
udisks2,
libhandy,
libsecret,
libdvdread,
meson,
ninja,
gtk3,
adwaita-icon-theme,
desktop-file-utils,
docbook-xsl-nons,
gettext,
glib,
wrapGAppsHook3,
libnotify,
itstool,
gnome,
gnome-settings-daemon,
adwaita-icon-theme,
libxml2,
gsettings-desktop-schemas,
gtk3,
itstool,
libcanberra-gtk3,
libxslt,
docbook-xsl-nons,
desktop-file-utils,
libdvdread,
libhandy,
libnotify,
libpwquality,
libsecret,
libxml2,
libxslt,
meson,
ninja,
pkg-config,
systemd,
udisks2,
wrapGAppsHook3,
xz,
}:
stdenv.mkDerivation rec {
@@ -38,32 +39,33 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
desktop-file-utils
docbook-xsl-nons
gettext
itstool
libxml2
libxslt
meson
ninja
pkg-config
gettext
itstool
libxslt
docbook-xsl-nons
desktop-file-utils
wrapGAppsHook3
libxml2
];
buildInputs = [
gtk3
glib
libhandy
libsecret
libpwquality
libnotify
libdvdread
libcanberra-gtk3
udisks2
adwaita-icon-theme
systemd
glib
gnome-settings-daemon
gsettings-desktop-schemas
gtk3
libcanberra-gtk3
libdvdread
libhandy
libnotify
libpwquality
libsecret
systemd
udisks2
xz
];
passthru = {
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "gollama";
version = "v1.35.1";
version = "v1.35.3";
src = fetchFromGitHub {
owner = "sammcj";
repo = "gollama";
tag = "v${version}";
hash = "sha256-fiCfkCxj/7XTmlqxLwZqnv+tRDF6RC412RthAcpHUUA=";
hash = "sha256-k2SGcsWQi2jC3W2ZO8KXY+WUyh7n7qonLr6BLKZXzdY=";
};
vendorHash = "sha256-O9uv/oXZKr9060woz/RQ8UEPdbW4Z8vnhXIQXm+ljQ4=";
vendorHash = "sha256-hZx4AsPnlFmJGms0vRKgBV/4Ea8uvHaNc0zNehs2RB8=";
doCheck = false;
+3 -3
View File
@@ -23,7 +23,7 @@
}:
python3Packages.buildPythonApplication rec {
version = "6.0.3";
version = "6.0.4";
pname = "gramps";
pyproject = true;
@@ -31,7 +31,7 @@ python3Packages.buildPythonApplication rec {
owner = "gramps-project";
repo = "gramps";
tag = "v${version}";
hash = "sha256-dmokrAN6ZC7guMYHifNifL9rXqZPW+Z5LudQhIUxMs8=";
hash = "sha256-MBsc4YMbCvzRG6+7/cGQpx7iYvQAdqWYrIMEpf1A7ew=";
};
patches = [
@@ -113,7 +113,7 @@ python3Packages.buildPythonApplication rec {
pinpox
tomasajt
];
changelog = "https://github.com/gramps-project/gramps/blob/${src.rev}/ChangeLog";
changelog = "https://github.com/gramps-project/gramps/blob/${src.tag}/ChangeLog";
longDescription = ''
Every person has their own story but they are also part of a collective
family history. Gramps gives you the ability to record the many details of
@@ -68,13 +68,13 @@ lib.checkListOfEnum "${pname}: colorVariants" colorVariantList colorVariants lib
stdenvNoCC.mkDerivation
{
inherit pname;
version = "0-unstable-2025-07-28";
version = "0-unstable-2025-08-13";
src = fetchFromGitHub {
owner = "Fausto-Korpsvart";
repo = "Gruvbox-GTK-Theme";
rev = "39aed8f4d09d5ac75162adea1a64212ad4ef9ade";
hash = "sha256-Q2XwcYMz/GsFyd5kjj7OYwa724OUxw8w+nhTBkWo3Z0=";
rev = "f9f56cb51ba06d27f5ee8e7b88e20b0b4de6bf4c";
hash = "sha256-gKJQ2TTh0MJB0SULA2ND8gvZ/YlC1dSxCOr0K2X4So0=";
};
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+10 -15
View File
@@ -5,6 +5,7 @@
fetchFromGitHub,
pkg-config,
wrapGAppsHook4,
bashNonInteractive,
gdk-pixbuf,
gtk4,
libdrm,
@@ -18,21 +19,20 @@
hwdata,
fuse3,
autoAddDriverRunpath,
fetchpatch,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "lact";
version = "0.8.0";
version = "0.8.1";
src = fetchFromGitHub {
owner = "ilya-zlobintsev";
repo = "LACT";
tag = "v${finalAttrs.version}";
hash = "sha256-HsDVz9Wd1WoGWIB4Cs/GsvC7RDyHAeXfFGXZDWEmo/c=";
hash = "sha256-bgMQTiNeJR6zPTy/YpQ0oI1oGBzCf+VtBUn6pgADZAY=";
};
cargoHash = "sha256-fgF7gOXxB9sQqA5H1hw6A0Fb5tTBPySAbSxVhcKVhcM=";
cargoHash = "sha256-VxyYnX6AW+AS4NOB1XZXi2Dyrf4rtJzKHXMYwgLY6pQ=";
nativeBuildInputs = [
pkg-config
@@ -68,14 +68,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
]
);
patches = [
(fetchpatch {
name = "fix-tests::snapshot_everything-due-to-outdated-hwdata-649.patch";
url = "https://github.com/ilya-zlobintsev/LACT/commit/c9a59e48a36d590d7522c22bd15a8f9208bef0ee.patch";
hash = "sha256-Ehq8vRosqyqpRPeabkdpBHBF6ONqSJHOeq3AXw8PXPU=";
})
];
postPatch = ''
substituteInPlace lact-daemon/src/system.rs \
--replace-fail 'Command::new("uname")' 'Command::new("${coreutils}/bin/uname")'
@@ -83,15 +75,18 @@ rustPlatform.buildRustPackage (finalAttrs: {
substituteInPlace lact-daemon/src/server/handler.rs \
--replace-fail 'run_command("journalctl",' 'run_command("${systemdMinimal}/bin/journalctl",'
substituteInPlace lact-daemon/src/server/handler.rs \
--replace-fail 'Command::new("sh")' 'Command::new("${bashNonInteractive}/bin/bash")'
substituteInPlace lact-daemon/src/server/vulkan.rs \
--replace-fail 'Command::new("vulkaninfo")' 'Command::new("${vulkan-tools}/bin/vulkaninfo")'
substituteInPlace lact-daemon/src/socket.rs \
--replace-fail 'run_command("chown"' 'run_command("${coreutils}/bin/chown"'
substituteInPlace res/lactd.service \
--replace-fail ExecStart={lact,$out/bin/lact}
substituteInPlace res/io.github.ilya_zlobintsev.LACT.desktop \
--replace-fail Exec={lact,$out/bin/lact}
# read() looks for the database in /usr/share so we use read_from_file() instead
substituteInPlace lact-daemon/src/server/handler.rs \
--replace-fail 'Database::read()' 'Database::read_from_file("${hwdata}/share/hwdata/pci.ids")'
+2 -2
View File
@@ -178,11 +178,11 @@ in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "microsoft-edge";
version = "139.0.3405.86";
version = "139.0.3405.102";
src = fetchurl {
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb";
hash = "sha256-S1/RUSwRQsBQno/I31xjw1CGs0tJpl5HRatat+wOqmE=";
hash = "sha256-rY6Q3sMIAGX/ZKOVvwSl6cxq24SB1PiCn7b1pMXMeps=";
};
# With strictDeps on, some shebangs were not being patched correctly
+2 -2
View File
@@ -7,14 +7,14 @@
python3Packages.buildPythonApplication rec {
pname = "nvitop";
version = "1.5.2";
version = "1.5.3";
pyproject = true;
src = fetchFromGitHub {
owner = "XuehaiPan";
repo = "nvitop";
tag = "v${version}";
hash = "sha256-kUlKb5L8dzT4ESi0rO2v0kQILjnVy+zcoePwqckyfbk=";
hash = "sha256-cqRvjK3q9fm5HPnZFGSV59FPnAdLkeq/D5wSR5ke7Ok=";
};
build-system = with python3Packages; [ setuptools ];
+3 -3
View File
@@ -12,6 +12,7 @@
libpulseaudio,
libva,
libxkbcommon,
libxml2_13,
makeShellWrapper,
minizip,
nss,
@@ -56,9 +57,11 @@ let
buildInputs = [
elfutils
ffmpeg_6-headless
libedit
libpulseaudio
libva
libxkbcommon
libxml2_13
minizip
nss
stdenv.cc.cc
@@ -104,8 +107,6 @@ let
rm $out/lib/libdrm.so*
rm $out/lib/libdrm*
ln -s ${libedit}/lib/libedit.so.0 $out/lib/libedit.so.2
# Keep dependencies where the version from nixpkgs is higher.
cp usr/lib/x86_64-linux-gnu/libasound.so.2 $out/lib/libasound.so.2
cp usr/lib/x86_64-linux-gnu/libjbig.so.0 $out/lib/libjbig.so.0
@@ -116,7 +117,6 @@ let
cp usr/lib/x86_64-linux-gnu/libtiff.so.5 $out/lib/libtiff.so.5
cp usr/lib/x86_64-linux-gnu/libwebp.so.6 $out/lib/libwebp.so.6
cp usr/lib/x86_64-linux-gnu/libxkbfile.so.1.0.2 $out/lib/libxkbfile.so.1
cp usr/lib/x86_64-linux-gnu/libxml2.so.2 $out/lib/libxml2.so.2
cp usr/lib/x86_64-linux-gnu/libxslt.so.1.1.34 $out/lib/libxslt.so.1
runHook postInstall
+3 -3
View File
@@ -12,16 +12,16 @@
buildGoModule rec {
pname = "stackit-cli";
version = "0.38.0";
version = "0.39.1";
src = fetchFromGitHub {
owner = "stackitcloud";
repo = "stackit-cli";
rev = "v${version}";
hash = "sha256-i6UOgD3C0nq6Z3Gdki8YOZotU1CbC14Jx8d9B1LV7Hk=";
hash = "sha256-6Y71KglFPfecbrXwczsrEdoVECOP8C/Mt021H6nQrvE=";
};
vendorHash = "sha256-qzNd1wn3N+EPjXO1gFYKtVNdGwd2D/jf6oJFvloR7HY=";
vendorHash = "sha256-Vz8jcbp3HzzgfzHFeEYPeGg0lmElPbm2hpHWNVhTQa0=";
subPackages = [ "." ];
+3 -3
View File
@@ -16,16 +16,16 @@
buildNpmPackage rec {
pname = "teams-for-linux";
version = "2.1.4";
version = "2.3.0";
src = fetchFromGitHub {
owner = "IsmaelMartinez";
repo = "teams-for-linux";
tag = "v${version}";
hash = "sha256-wzw7GXKehQCYX2RDH5G/SqhBSziVPnXiaPiLrhC2Dfc=";
hash = "sha256-wbkjLPaQFfAQmWtWVZ5U6PslaO7XvuuvU1yjlgaiKwQ=";
};
npmDepsHash = "sha256-PWWEFbenAXuYKwFN+C+pQumrYJqgtfAt9EzEiaMddhQ=";
npmDepsHash = "sha256-OesAv8y2FWWJsNS4ms/B65cbJ7jEwnuQLVUb8zm1oSQ=";
nativeBuildInputs = [
makeWrapper
+2 -2
View File
@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "terragrunt";
version = "0.84.1";
version = "0.85.0";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = "terragrunt";
tag = "v${finalAttrs.version}";
hash = "sha256-fdKw0hNUKhOz/L0/ozkZPP/6z+C4i3UIGM2lX3/szr4=";
hash = "sha256-ey3Qbwg036OzWYfw/0lso3CentUXGF0/NB/w3ss3Dp0=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -6,20 +6,20 @@
rustPlatform.buildRustPackage rec {
pname = "wasm-tools";
version = "1.236.0";
version = "1.236.1";
src = fetchFromGitHub {
owner = "bytecodealliance";
repo = "wasm-tools";
tag = "v${version}";
hash = "sha256-gw5LIfbrJojsK7g8sMLBGXKJbME8MMtLm1ytVR1Zbmo=";
hash = "sha256-kg8I74i5MlsrmFGeHMFDs+FyuCNqNwj8buJE/apRMkg=";
fetchSubmodules = true;
};
# Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
auditable = false;
cargoHash = "sha256-/ixFvNTh1loXd3CPzNzGMGDbQPnGUtp/XaoK/7dW48Q=";
cargoHash = "sha256-5QUYWhWfmvvmHxlpPNT3nQmRb2D17XGkcHTzwvdjh6g=";
cargoBuildFlags = [
"--package"
"wasm-tools"
+2 -2
View File
@@ -16,13 +16,13 @@
}:
stdenv.mkDerivation rec {
pname = "xdp-tools";
version = "1.5.5";
version = "1.5.6";
src = fetchFromGitHub {
owner = "xdp-project";
repo = "xdp-tools";
rev = "v${version}";
hash = "sha256-dK+ZpD1wv20iU51dsMUiW/Z9jojuwC8P3rrjU3LEB1Y=";
hash = "sha256-ztIatDNp0RXUpNsSoNWGj/kHNsCOlI6mqZvaQdlGbtQ=";
};
outputs = [
@@ -5,7 +5,6 @@
buildPackages,
targetPackages,
stdenv,
gcc12Stdenv,
pkgs,
recurseIntoAttrs,
# This is the default binutils, but with *this* version of LLD rather
@@ -81,13 +80,6 @@ let
;
}
// packageSetArgs # Allow overrides.
// {
stdenv =
if (lib.versions.major release_version == "13" && stdenv.cc.cc.isGNU or false) then
gcc12Stdenv
else
stdenv; # does not build with gcc13
}
)
)
);
@@ -11,19 +11,15 @@
stdenv.mkDerivation {
pname = "falcon";
version = "unstable-2018-10-23";
version = "0-unstable-2023-11-19";
src = fetchFromGitHub {
owner = "falconpl";
repo = "falcon";
rev = "637e2d5cd950a874496042993c02ab7d17c1b688";
sha256 = "iCyvvZJjXb1CR396EJ6GiP6d4e7iAc6QQlAOQoAfehg=";
rev = "fc403c6e8c1f3d8c2a5a6ebce5db6f1b3e355808";
hash = "sha256-0yLhwDVFNbfiW23hNxrvItCCkyaOvEbFSg1ZQuJvhIs=";
};
# -Wnarrowing is enabled by default in recent GCC versions,
# causing compilation to fail.
env.NIX_CFLAGS_COMPILE = "-Wno-narrowing";
nativeBuildInputs = [
cmake
pkg-config
@@ -39,5 +35,6 @@ stdenv.mkDerivation {
license = licenses.gpl2Only;
maintainers = with maintainers; [ pSub ];
platforms = with platforms; unix;
broken = stdenv.cc.isClang;
};
}
+1 -1
View File
@@ -453,7 +453,7 @@ in
luarocksConfig = lib.recursiveUpdate oa.luarocksConfig {
variables = {
MYSQL_INCDIR = "${lib.getDev libmysqlclient}/include/";
MYSQL_LIBDIR = "${lib.getLib libmysqlclient}/lib/";
MYSQL_LIBDIR = "${lib.getLib libmysqlclient}/lib//mysql/";
};
};
buildInputs = oa.buildInputs ++ [
@@ -15,14 +15,14 @@
}:
buildPythonPackage rec {
pname = "ingredient-parser-nlp";
version = "2.1.1";
version = "2.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "strangetom";
repo = "ingredient-parser";
tag = version;
hash = "sha256-rmCM3KmsCGrKX5AvfIinkL689+miXII9meGAYQxSqEk=";
hash = "sha256-vv7sNRG2GH1uYy1UMpIx6yGLMIFrFN+dggpoqzhRFRg=";
};
build-system = [ setuptools ];
@@ -38,14 +38,14 @@
buildPythonPackage rec {
pname = "plotly";
version = "6.2.0";
version = "6.3.0";
pyproject = true;
src = fetchFromGitHub {
owner = "plotly";
repo = "plotly.py";
tag = "v${version}";
hash = "sha256-Vfj5jG0AkBjivExOx7oMoocTopWl0yMc1INpEbtlgTc=";
hash = "sha256-s+kWJy/dOqlNqRD/Ytxy/SSRsFJvp13jSvPMd0LQliQ=";
};
postPatch = ''
@@ -9,14 +9,14 @@
buildPythonPackage rec {
pname = "xmpppy";
version = "0.7.1";
version = "0.7.2";
pyproject = true;
src = fetchFromGitHub {
owner = "xmpppy";
repo = "xmpppy";
tag = version;
hash = "sha256-SnzIjEWSCdiCtD8bmPTH02JprmZhrABB4HCqtt2RBuk=";
hash = "sha256-lemHFPb1oQGL3O5lHOBsyEqTAzKmZ0khBHL73gXh8PA=";
};
dependencies = [ six ];
@@ -3,82 +3,73 @@
stdenv,
fetchFromGitHub,
buildPackages,
pkg-config,
meson,
ninja,
libusb-compat-0_1,
readline,
libewf,
perl,
zlib,
openssl,
libuv,
capstone,
file,
libzip,
xxHash,
gtk2,
vte,
gtkdialog,
python3,
ruby,
libewf,
libusb-compat-0_1,
libuv,
libzip,
lua,
lz4,
capstone,
meson,
ninja,
openssl,
perl,
pkg-config,
python3,
readline,
ruby,
vte,
xxHash,
zlib,
useX11 ? false,
rubyBindings ? false,
luaBindings ? false,
}:
let
# NOTE: Check these revision changes when updating the package.
# https://github.com/radareorg/radare2/blob/master/libr/arch/p/arm/v35/Makefile#L25-L26
arm64 = fetchFromGitHub {
owner = "radareorg";
repo = "vector35-arch-arm64";
rev = "55d73c6bbb94448a5c615933179e73ac618cf876";
hash = "sha256-pZxxp5xDg8mgkGEx7LaBSoKxNPyggFYA4um9YaO20LU=";
binaryninja = fetchFromGitHub {
owner = "Vector35";
repo = "binaryninja-api";
rev = "c40a5f04deec68d388b2072dc42b29141089f9ce"; # https://github.com/radareorg/radare2/blob/master/subprojects/binaryninja.wrap
hash = "sha256-IfuGgwVI51urQxhaYkYsE45NkScgxKmmEBV6Pllhwmo=";
};
armv7 = fetchFromGitHub {
owner = "radareorg";
repo = "vector35-arch-armv7";
rev = "f270a6cc99644cb8e76055b6fa632b25abd26024";
hash = "sha256-YhfgJ7M8ys53jh1clOzj0I2yfJshXQm5zP0L9kMYsmk=";
sdb = fetchFromGitHub {
owner = "radare";
repo = "sdb";
tag = "2.2.0"; # https://github.com/radareorg/radare2/blob/master/subprojects/sdb.wrap
hash = "sha256-S/aL3F6+Z/rqelfIJaZaBF1IxSmhA1qE9ahFvKARoaE=";
};
qjs = fetchFromGitHub {
owner = "quickjs-ng";
repo = "quickjs";
rev = "7238ee64dbc2fbdea044555cda8cda78785a93ed"; # https://github.com/radareorg/radare2/blob/master/subprojects/qjs.wrap
hash = "sha256-1ZeLCTmbrlRrZB9El3L497gt3QUA5GIScrFVIBkxA88=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "radare2";
version = "5.9.8";
version = "6.0.2";
src = fetchFromGitHub {
owner = "radare";
repo = "radare2";
tag = finalAttrs.version;
hash = "sha256-XSnv0yWEPlXHUPjf1Qu50AN3Gvgr0o6Q4e0dOyRdO9A=";
hash = "sha256-uCMf+pNqyjRLeNJlE8Kk6PQCIRBjidO/XGHeNV/F1lA=";
};
preBuild = ''
pushd ../libr/arch/p/arm/v35
cp -r ${arm64} arch-arm64
chmod -R +w arch-arm64
cp -r ${armv7} arch-armv7
chmod -R +w arch-armv7
popd
'';
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
install_name_tool -add_rpath $out/lib $out/lib/libr_io.${finalAttrs.version}.dylib
'';
mesonFlags = [
"-Dr2_gittap=${finalAttrs.version}"
"-Duse_sys_capstone=true"
"-Duse_sys_lz4=true"
"-Duse_sys_magic=true"
"-Duse_sys_openssl=true"
"-Duse_sys_xxhash=true"
"-Duse_sys_zip=true"
"-Duse_sys_zlib=true"
(lib.mesonOption "use_sys_capstone" "true")
(lib.mesonOption "use_sys_lz4" "true")
(lib.mesonOption "use_sys_magic" "true")
(lib.mesonOption "use_sys_openssl" "true")
(lib.mesonOption "use_sys_xxhash" "true")
(lib.mesonOption "use_sys_zip" "true")
(lib.mesonOption "use_sys_zlib" "true")
(lib.mesonOption "r2_gittap" finalAttrs.version)
];
enableParallelBuilding = true;
@@ -97,14 +88,14 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
capstone
file
readline
libusb-compat-0_1
libewf
perl
zlib
openssl
libusb-compat-0_1
libuv
lz4
openssl
perl
readline
zlib
]
++ lib.optionals useX11 [
gtkdialog
@@ -121,7 +112,28 @@ stdenv.mkDerivation (finalAttrs: {
xxHash
];
meta = with lib; {
postUnpack = ''
pushd $sourceRoot/subprojects
cp -r ${binaryninja} binaryninja
chmod -R +w binaryninja
cp packagefiles/binaryninja/meson.build binaryninja
cp -r ${sdb} sdb
chmod -R +w sdb
cp -r ${qjs} qjs
chmod -R +w qjs
cp packagefiles/qjs/meson.build qjs
popd
'';
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
install_name_tool -add_rpath $out/lib $out/lib/libr_io.${finalAttrs.version}.dylib
'';
meta = {
description = "UNIX-like reverse engineering framework and command-line toolset";
longDescription = ''
r2 is a complete rewrite of radare. It provides a set of libraries, tools
@@ -140,18 +152,18 @@ stdenv.mkDerivation (finalAttrs: {
'';
homepage = "https://radare.org";
changelog = "https://github.com/radareorg/radare2/releases/tag/${finalAttrs.version}";
license = with licenses; [
license = with lib.licenses; [
gpl3Only
lgpl3Only
];
maintainers = with maintainers; [
maintainers = with lib.maintainers; [
arkivm
azahi
raskin
makefu
mic92
arkivm
raskin
];
mainProgram = "radare2";
platforms = platforms.unix;
platforms = lib.platforms.unix;
};
})
@@ -9,13 +9,13 @@
buildHomeAssistantComponent rec {
owner = "AlexxIT";
domain = "xiaomi_gateway3";
version = "4.0.8";
version = "4.1.0";
src = fetchFromGitHub {
owner = "AlexxIT";
repo = "XiaomiGateway3";
rev = "v${version}";
hash = "sha256-VvuvOUldhmROTs1+YbCT7++VJ71GgGKRbHjqZxQQY0w=";
hash = "sha256-fpMrp8iVO1Gmj0c80qRr3yfdZ3fl+DOiEi1vF1GZwXU=";
};
dependencies = [ zigpy ];
+1
View File
@@ -553,6 +553,7 @@ python.pkgs.buildPythonApplication rec {
preCheck = ''
export HOME="$TEMPDIR"
export PYTHONASYNCIODEBUG=1
# the tests require the existance of a media dir
mkdir "$NIX_BUILD_TOP"/media
+2 -2
View File
@@ -14,13 +14,13 @@
let
pname = "iaito";
version = "5.9.9";
version = "6.0.0";
main_src = fetchFromGitHub rec {
owner = "radareorg";
repo = pname;
tag = version;
hash = "sha256-y8Mfd7BmnMFJ9mpGKVL3i4VRxrzJ1gXaSsUQIFB9Wd4=";
hash = "sha256-bwGKHc2jlf1C/25CEoDUCLr6zOhAJES7+PvcGVyO8To=";
name = repo;
};
+53 -20
View File
@@ -47,24 +47,25 @@
withDBengine ? true,
withDebug ? false,
withEbpf ? false,
withIpmi ? (stdenv.hostPlatform.isLinux),
withIpmi ? stdenv.hostPlatform.isLinux,
withLibbacktrace ? true,
withNdsudo ? false,
withNetfilter ? (stdenv.hostPlatform.isLinux),
withNetworkViewer ? (stdenv.hostPlatform.isLinux),
withSsl ? true,
withSystemdJournal ? (stdenv.hostPlatform.isLinux),
withML ? true,
withNdsudo ? false,
withNetfilter ? stdenv.hostPlatform.isLinux,
withNetworkViewer ? stdenv.hostPlatform.isLinux,
withSsl ? true,
withSystemdJournal ? stdenv.hostPlatform.isLinux,
withSystemdUnits ? stdenv.hostPlatform.isLinux,
}:
stdenv.mkDerivation (finalAttrs: {
version = "2.5.3";
version = "2.6.2";
pname = "netdata";
src = fetchFromGitHub {
owner = "netdata";
repo = "netdata";
rev = "v${finalAttrs.version}";
hash = "sha256-OdH6cQ2dYvbeLh9ljaqmdr02VN2qbvNUXbPNCEkNzxc=";
hash = "sha256-XtU+oGynAnpwWTinwXVjtRYsTwIyAhkiRqY9CaOo7B0=";
fetchSubmodules = true;
};
@@ -119,7 +120,8 @@ stdenv.mkDerivation (finalAttrs: {
libnetfilter_acct
]
++ lib.optionals withSsl [ openssl ]
++ lib.optionals withSystemdJournal [ systemd ];
++ lib.optionals withSystemdJournal [ systemd ]
++ lib.optionals withSystemdUnits [ systemd ];
patches = [
# Allow ndsudo to use non-hardcoded `PATH`
@@ -166,24 +168,28 @@ stdenv.mkDerivation (finalAttrs: {
$out/libexec/netdata/plugins.d/slabinfo.plugin.org
mv $out/libexec/netdata/plugins.d/debugfs.plugin \
$out/libexec/netdata/plugins.d/debugfs.plugin.org
${lib.optionalString withSystemdJournal ''
mv $out/libexec/netdata/plugins.d/systemd-journal.plugin \
$out/libexec/netdata/plugins.d/systemd-journal.plugin.org
''}
${lib.optionalString withIpmi ''
mv $out/libexec/netdata/plugins.d/freeipmi.plugin \
$out/libexec/netdata/plugins.d/freeipmi.plugin.org
''}
${lib.optionalString withNetworkViewer ''
mv $out/libexec/netdata/plugins.d/network-viewer.plugin \
$out/libexec/netdata/plugins.d/network-viewer.plugin.org
''}
${lib.optionalString withNdsudo ''
mv $out/libexec/netdata/plugins.d/ndsudo \
$out/libexec/netdata/plugins.d/ndsudo.org
ln -s /var/lib/netdata/ndsudo/ndsudo $out/libexec/netdata/plugins.d/ndsudo
''}
${lib.optionalString withNetworkViewer ''
mv $out/libexec/netdata/plugins.d/network-viewer.plugin \
$out/libexec/netdata/plugins.d/network-viewer.plugin.org
''}
${lib.optionalString withSystemdJournal ''
mv $out/libexec/netdata/plugins.d/systemd-journal.plugin \
$out/libexec/netdata/plugins.d/systemd-journal.plugin.org
''}
${lib.optionalString withSystemdUnits ''
mv $out/libexec/netdata/plugins.d/systemd-units.plugin \
$out/libexec/netdata/plugins.d/systemd-units.plugin.org
''}
'';
preConfigure = ''
@@ -194,7 +200,7 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace packaging/cmake/Modules/NetdataGoTools.cmake \
--replace-fail \
'GOPROXY=https://proxy.golang.org' \
'GOPROXY=file://${finalAttrs.passthru.netdata-go-modules}'
'GOPROXY=file://${finalAttrs.passthru.netdata-go-modules},file://${finalAttrs.passthru.nd-mcp}'
# Prevent the path to be caught into the Nix store path.
substituteInPlace CMakeLists.txt \
@@ -222,13 +228,14 @@ stdenv.mkDerivation (finalAttrs: {
(lib.cmakeBool "ENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE" withConnPrometheus)
(lib.cmakeBool "ENABLE_JEMALLOC" true)
(lib.cmakeBool "ENABLE_LIBBACKTRACE" withLibbacktrace)
(lib.cmakeBool "ENABLE_ML" withML)
(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_SYSTEMD_UNITS" withSystemdUnits)
(lib.cmakeBool "ENABLE_PLUGIN_XENSTAT" false)
(lib.cmakeBool "ENABLE_ML" withML)
# Suggested by upstream.
"-G Ninja"
]
@@ -252,6 +259,32 @@ stdenv.mkDerivation (finalAttrs: {
enableParallelBuilding = true;
passthru = rec {
nd-mcp =
(buildGoModule {
pname = "nd-mcp";
version = finalAttrs.version;
inherit (finalAttrs) src;
sourceRoot = "${finalAttrs.src.name}/src/web/mcp/bridges/stdio-golang";
vendorHash = "sha256-6JfHrBloJQ5wHyogIPTVDZjlITWZXbsv2m2lMlQmBUY=";
proxyVendor = true;
doCheck = false;
subPackages = [ "." ];
ldflags = [
"-s"
"-w"
];
meta = {
description = "Netdata Model Context Protocol (MCP) Integration";
license = lib.licenses.gpl3Only;
};
}).goModules;
netdata-go-modules =
(buildGoModule {
pname = "netdata-go-plugins";
@@ -259,7 +292,7 @@ stdenv.mkDerivation (finalAttrs: {
sourceRoot = "${finalAttrs.src.name}/src/go/plugin/go.d";
vendorHash = "sha256-N03IGTtF78PCo4kf0Sdtzv6f8z47ohg8g3YIXtINRjU=";
vendorHash = "sha256-aOFmfBcBjnTfFHfMNemSJHbnMnhBojYrGe21zDxPxME=";
doCheck = false;
proxyVendor = true;
@@ -5,8 +5,7 @@
*/
{
lib,
#, stdenv
gcc12Stdenv,
stdenv,
fetchpatch,
fetchurl,
runCommand,
@@ -45,9 +44,6 @@
recurseIntoAttrs,
nixfmt,
}:
let
stdenv = gcc12Stdenv;
in
let
# various binaries (compiled)
bin = callPackage ./bin.nix {
+3 -23
View File
@@ -2740,15 +2740,6 @@ with pkgs;
diffutils = callPackage ../tools/text/diffutils { };
dmd = callPackage ../by-name/dm/dmd/package.nix (
{
}
// lib.optionalAttrs stdenv.hostPlatform.isLinux {
# https://github.com/NixOS/nixpkgs/pull/206907#issuecomment-1527034123
stdenv = gcc11Stdenv;
}
);
dotnetfx35 = callPackage ../development/libraries/dotnetfx35 { };
dotnetfx40 = callPackage ../development/libraries/dotnetfx40 { };
@@ -5466,9 +5457,7 @@ with pkgs;
haxePackages = recurseIntoAttrs (callPackage ./haxe-packages.nix { });
inherit (haxePackages) hxcpp;
falcon = callPackage ../development/interpreters/falcon {
stdenv = gcc10Stdenv;
};
falcon = callPackage ../development/interpreters/falcon { };
dotnetPackages = recurseIntoAttrs (callPackage ./dotnet-packages.nix { });
@@ -6796,13 +6785,7 @@ with pkgs;
inherit (darwin) sigtool;
buildJdk = jdk11_headless;
runJdk = jdk11_headless;
stdenv =
if stdenv.cc.isClang then
llvmPackages_17.stdenv
else if stdenv.cc.isGNU then
gcc12Stdenv
else
stdenv;
stdenv = if stdenv.cc.isClang then llvmPackages_17.stdenv else stdenv;
bazel_self = bazel_6;
};
@@ -10006,10 +9989,7 @@ with pkgs;
diod = callPackage ../servers/diod { lua = lua5_1; };
directx-shader-compiler = callPackage ../tools/graphics/directx-shader-compiler {
# https://github.com/NixOS/nixpkgs/issues/216294
stdenv = if stdenv.cc.isGNU && stdenv.hostPlatform.isi686 then gcc11Stdenv else stdenv;
};
directx-shader-compiler = callPackage ../tools/graphics/directx-shader-compiler { };
dodgy = with python3Packages; toPythonApplication dodgy;
+1 -1
View File
@@ -7241,7 +7241,7 @@ self: super: with self; {
enablePython = true;
enableRtk = false;
stdenv =
if stdenv.cc.isGNU then pkgs.stdenvAdapters.useLibsFrom stdenv pkgs.gcc12Stdenv else stdenv;
if stdenv.cc.isGNU then pkgs.stdenvAdapters.useLibsFrom stdenv pkgs.gcc13Stdenv else stdenv;
}
);