Merge staging-next into staging
This commit is contained in:
+7
-21
@@ -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
@@ -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
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
|
||||
})
|
||||
+27
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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 32‐bit 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
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
@@ -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
|
||||
''
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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")'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = [ "." ];
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user