Merge master into staging-next
This commit is contained in:
commit
013cc265db
@ -25635,6 +25635,12 @@
|
|||||||
name = "Denny Schäfer";
|
name = "Denny Schäfer";
|
||||||
keys = [ { fingerprint = "C752 0E49 4D92 1740 D263 C467 B057 455D 1E56 7270"; } ];
|
keys = [ { fingerprint = "C752 0E49 4D92 1740 D263 C467 B057 455D 1E56 7270"; } ];
|
||||||
};
|
};
|
||||||
|
tuxy = {
|
||||||
|
email = "lastpass7565@gmail.com";
|
||||||
|
github = "tuxy";
|
||||||
|
githubId = 57819359;
|
||||||
|
name = "Binh Nguyen";
|
||||||
|
};
|
||||||
tv = {
|
tv = {
|
||||||
email = "tv@krebsco.de";
|
email = "tv@krebsco.de";
|
||||||
github = "4z3";
|
github = "4z3";
|
||||||
|
|||||||
@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
- [FileBrowser](https://filebrowser.org/), a web application for managing and sharing files. Available as [services.filebrowser](#opt-services.filebrowser.enable).
|
- [FileBrowser](https://filebrowser.org/), a web application for managing and sharing files. Available as [services.filebrowser](#opt-services.filebrowser.enable).
|
||||||
|
|
||||||
|
- Options under [networking.getaddrinfo](#opt-networking.getaddrinfo.enable) are now allowed to declaratively configure address selection and sorting behavior of `getaddrinfo` in dual-stack networks.
|
||||||
|
|
||||||
- [LACT](https://github.com/ilya-zlobintsev/LACT), a GPU monitoring and configuration tool, can now be enabled through [services.lact.enable](#opt-services.lact.enable).
|
- [LACT](https://github.com/ilya-zlobintsev/LACT), a GPU monitoring and configuration tool, can now be enabled through [services.lact.enable](#opt-services.lact.enable).
|
||||||
Note that for LACT to work properly on AMD GPU systems, you need to enable [hardware.amdgpu.overdrive.enable](#opt-hardware.amdgpu.overdrive.enable).
|
Note that for LACT to work properly on AMD GPU systems, you need to enable [hardware.amdgpu.overdrive.enable](#opt-hardware.amdgpu.overdrive.enable).
|
||||||
|
|
||||||
|
|||||||
120
nixos/modules/config/getaddrinfo.nix
Normal file
120
nixos/modules/config/getaddrinfo.nix
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.networking.getaddrinfo;
|
||||||
|
|
||||||
|
formatTableEntries =
|
||||||
|
tableName: table:
|
||||||
|
if table == null then
|
||||||
|
[ ]
|
||||||
|
else
|
||||||
|
lib.mapAttrsToList (cidr: val: "${tableName} ${cidr} ${toString val}") table;
|
||||||
|
|
||||||
|
gaiConfText = lib.concatStringsSep "\n" (
|
||||||
|
[
|
||||||
|
"# Generated by NixOS module networking.getaddrinfo"
|
||||||
|
"# Do not edit manually!"
|
||||||
|
"reload ${if cfg.reload then "yes" else "no"}"
|
||||||
|
]
|
||||||
|
++ formatTableEntries "label" cfg.label
|
||||||
|
++ formatTableEntries "precedence" cfg.precedence
|
||||||
|
++ formatTableEntries "scopev4" cfg.scopev4
|
||||||
|
);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.networking.getaddrinfo = {
|
||||||
|
enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = pkgs.stdenv.hostPlatform.libc == "glibc";
|
||||||
|
defaultText = lib.literalExpression ''
|
||||||
|
pkgs.stdenv.hostPlatform.libc == "glibc"
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Enables custom address sorting configuration for {manpage}`getaddrinfo(3)` according to RFC 3484.
|
||||||
|
|
||||||
|
This option generates a {file}`/etc/gai.conf` file to override the default address sorting tables,
|
||||||
|
as described in {manpage}`gai.conf(5)`.
|
||||||
|
|
||||||
|
This setting is only applicable when using the GNU C Library (glibc).
|
||||||
|
It has no effect with other libc implementations.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
reload = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Determines whether a process should detect changes to the configuration file since it was last read.
|
||||||
|
|
||||||
|
If enabled, the file is re-read automatically. This may cause issues in multithreaded applications
|
||||||
|
and is generally discouraged.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
label = lib.mkOption {
|
||||||
|
type = lib.types.nullOr (lib.types.attrsOf lib.types.int);
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Adds entries to the label table, as described in section 2.1 of RFC 3484.
|
||||||
|
|
||||||
|
If any label entries are provided, the glibc’s default label table is ignored.
|
||||||
|
'';
|
||||||
|
example = {
|
||||||
|
"::/0" = 1;
|
||||||
|
"2002::/16" = 2;
|
||||||
|
"::/96" = 3;
|
||||||
|
"::ffff:0:0/96" = 4;
|
||||||
|
"fec0::/10" = 5;
|
||||||
|
"fc00::/7" = 6;
|
||||||
|
"2001:0::/32" = 7;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
precedence = lib.mkOption {
|
||||||
|
type = lib.types.nullOr (lib.types.attrsOf lib.types.int);
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Similar to {option}`networking.getaddrinfo.label`, but this option
|
||||||
|
defines entries for the precedence table instead.
|
||||||
|
|
||||||
|
See sections 2.1 and 10.3 of RFC 3484 for details.
|
||||||
|
|
||||||
|
Providing any value will disable the glibc's default precedence table.
|
||||||
|
'';
|
||||||
|
example = {
|
||||||
|
"::1/128" = 50;
|
||||||
|
"::/0" = 40;
|
||||||
|
"2002::/16" = 30;
|
||||||
|
"::/96" = 20;
|
||||||
|
"::ffff:0:0/96" = 10;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
scopev4 = lib.mkOption {
|
||||||
|
type = lib.types.nullOr (lib.types.attrsOf lib.types.int);
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Adds custom rules to the IPv4 scope table.
|
||||||
|
|
||||||
|
By default, the scope IDs described in section 3.2 of RFC 6724 are used.
|
||||||
|
|
||||||
|
Modifying these values is rarely necessary.
|
||||||
|
'';
|
||||||
|
example = {
|
||||||
|
"::ffff:169.254.0.0/112" = 2;
|
||||||
|
"::ffff:127.0.0.0/104" = 2;
|
||||||
|
"::ffff:0.0.0.0/96" = 14;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.etc."gai.conf".text = gaiConfText;
|
||||||
|
};
|
||||||
|
|
||||||
|
meta.maintainers = with lib.maintainers; [ moraxyc ];
|
||||||
|
}
|
||||||
@ -8,6 +8,7 @@
|
|||||||
./config/fonts/fontdir.nix
|
./config/fonts/fontdir.nix
|
||||||
./config/fonts/ghostscript.nix
|
./config/fonts/ghostscript.nix
|
||||||
./config/fonts/packages.nix
|
./config/fonts/packages.nix
|
||||||
|
./config/getaddrinfo.nix
|
||||||
./config/gtk/gtk-icon-cache.nix
|
./config/gtk/gtk-icon-cache.nix
|
||||||
./config/i18n.nix
|
./config/i18n.nix
|
||||||
./config/iproute2.nix
|
./config/iproute2.nix
|
||||||
|
|||||||
@ -537,6 +537,7 @@ in
|
|||||||
gancio = runTest ./gancio.nix;
|
gancio = runTest ./gancio.nix;
|
||||||
garage = handleTest ./garage { };
|
garage = handleTest ./garage { };
|
||||||
gatus = runTest ./gatus.nix;
|
gatus = runTest ./gatus.nix;
|
||||||
|
getaddrinfo = runTest ./getaddrinfo.nix;
|
||||||
gemstash = handleTest ./gemstash.nix { };
|
gemstash = handleTest ./gemstash.nix { };
|
||||||
geoclue2 = runTest ./geoclue2.nix;
|
geoclue2 = runTest ./geoclue2.nix;
|
||||||
geoserver = runTest ./geoserver.nix;
|
geoserver = runTest ./geoserver.nix;
|
||||||
|
|||||||
68
nixos/tests/getaddrinfo.nix
Normal file
68
nixos/tests/getaddrinfo.nix
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
ip4 = "192.0.2.1";
|
||||||
|
ip6 = "2001:db8::1";
|
||||||
|
|
||||||
|
precedence = {
|
||||||
|
"::1/128" = 50;
|
||||||
|
"::/0" = 40;
|
||||||
|
"2002::/16" = 30;
|
||||||
|
"::/96" = 20;
|
||||||
|
"::ffff:0:0/96" = 100;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = "getaddrinfo";
|
||||||
|
meta.maintainers = with lib.maintainers; [ moraxyc ];
|
||||||
|
|
||||||
|
nodes.server = _: {
|
||||||
|
networking.firewall.enable = false;
|
||||||
|
networking.useDHCP = false;
|
||||||
|
|
||||||
|
services.dnsmasq = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
address = [
|
||||||
|
"/nixos.test/${ip4}"
|
||||||
|
"/nixos.test/${ip6}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes.client =
|
||||||
|
{ pkgs, nodes, ... }:
|
||||||
|
{
|
||||||
|
networking.nameservers = [
|
||||||
|
(lib.head nodes.server.networking.interfaces.eth1.ipv4.addresses).address
|
||||||
|
];
|
||||||
|
networking.getaddrinfo = {
|
||||||
|
reload = true;
|
||||||
|
inherit precedence;
|
||||||
|
};
|
||||||
|
networking.useDHCP = false;
|
||||||
|
environment.systemPackages = [
|
||||||
|
(pkgs.writers.writePython3Bin "request-addr" { } ''
|
||||||
|
import socket
|
||||||
|
|
||||||
|
results = socket.getaddrinfo("nixos.test", None)
|
||||||
|
print(results[0][4][0])
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript =
|
||||||
|
{ ... }:
|
||||||
|
''
|
||||||
|
server.wait_for_unit("dnsmasq.service")
|
||||||
|
client.wait_for_unit("network.target")
|
||||||
|
|
||||||
|
assert "${ip4}" in client.succeed("request-addr")
|
||||||
|
|
||||||
|
client.succeed("""
|
||||||
|
sed 's/100/10/' /etc/gai.conf > /etc/gai.conf.new && \
|
||||||
|
mv /etc/gai.conf.new /etc/gai.conf
|
||||||
|
""")
|
||||||
|
assert "${ip6}" in client.succeed("request-addr")
|
||||||
|
'';
|
||||||
|
}
|
||||||
@ -44,13 +44,13 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "firewalld";
|
pname = "firewalld";
|
||||||
version = "2.3.0";
|
version = "2.3.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "firewalld";
|
owner = "firewalld";
|
||||||
repo = "firewalld";
|
repo = "firewalld";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-ubE1zMIOcdg2+mgXsk6brCZxS1XkvJYwVY3E+UXIIiU=";
|
sha256 = "sha256-ONpyJJjIn5kEnkudZe4Nf67wdQgWa+2qEkT1nxRBDpI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
|||||||
@ -9,13 +9,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "karmor";
|
pname = "karmor";
|
||||||
version = "1.4.1";
|
version = "1.4.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "kubearmor";
|
owner = "kubearmor";
|
||||||
repo = "kubearmor-client";
|
repo = "kubearmor-client";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-gFcv2VxKTozEAJvcncOc6X1Pn7HWomHgemCfyddZSJs=";
|
hash = "sha256-+Zk1tPZAk3rQ1ZfdNAPEvtjm0mdsWRELbRctlulvFnE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-4F/q6vYOGtLef+rrJXKhLwjM71NMNI4es4dKe1pohZU=";
|
vendorHash = "sha256-4F/q6vYOGtLef+rrJXKhLwjM71NMNI4es4dKe1pohZU=";
|
||||||
|
|||||||
@ -17,14 +17,14 @@
|
|||||||
nix-update-script,
|
nix-update-script,
|
||||||
wayland,
|
wayland,
|
||||||
}:
|
}:
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage (finalAttrs: {
|
||||||
pname = "pineflash";
|
pname = "pineflash";
|
||||||
version = "0.5.5";
|
version = "0.5.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Spagett1";
|
owner = "Spagett1";
|
||||||
repo = "pineflash";
|
repo = "pineflash";
|
||||||
tag = version;
|
tag = finalAttrs.version;
|
||||||
hash = "sha256-4tcwEok36vuXbtlZNUkLNw1kHFQPBEJM/gWRhRWNLPg=";
|
hash = "sha256-4tcwEok36vuXbtlZNUkLNw1kHFQPBEJM/gWRhRWNLPg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -81,11 +81,11 @@ rustPlatform.buildRustPackage rec {
|
|||||||
meta = {
|
meta = {
|
||||||
description = "GUI tool to flash IronOS to the Pinecil V1 and V2";
|
description = "GUI tool to flash IronOS to the Pinecil V1 and V2";
|
||||||
homepage = "https://github.com/Spagett1/pineflash";
|
homepage = "https://github.com/Spagett1/pineflash";
|
||||||
changelog = "https://github.com/Spagett1/pineflash/releases/tag/${version}";
|
changelog = "https://github.com/Spagett1/pineflash/releases/tag/${finalAttrs.version}";
|
||||||
license = lib.licenses.gpl2Only;
|
license = lib.licenses.gpl2Only;
|
||||||
maintainers = with lib.maintainers; [
|
maintainers = with lib.maintainers; [
|
||||||
acuteaangle
|
acuteaangle
|
||||||
];
|
];
|
||||||
mainProgram = "pineflash";
|
mainProgram = "pineflash";
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
|||||||
@ -12,7 +12,6 @@
|
|||||||
gtk-layer-shell,
|
gtk-layer-shell,
|
||||||
gtkmm3,
|
gtkmm3,
|
||||||
howard-hinnant-date,
|
howard-hinnant-date,
|
||||||
hyprland,
|
|
||||||
iniparser,
|
iniparser,
|
||||||
jsoncpp,
|
jsoncpp,
|
||||||
libcava,
|
libcava,
|
||||||
@ -38,7 +37,6 @@
|
|||||||
sndio,
|
sndio,
|
||||||
spdlog,
|
spdlog,
|
||||||
systemdMinimal,
|
systemdMinimal,
|
||||||
sway,
|
|
||||||
udev,
|
udev,
|
||||||
upower,
|
upower,
|
||||||
versionCheckHook,
|
versionCheckHook,
|
||||||
@ -51,7 +49,6 @@
|
|||||||
enableManpages ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
|
enableManpages ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
|
||||||
evdevSupport ? true,
|
evdevSupport ? true,
|
||||||
experimentalPatches ? true,
|
experimentalPatches ? true,
|
||||||
hyprlandSupport ? true,
|
|
||||||
inputSupport ? true,
|
inputSupport ? true,
|
||||||
jackSupport ? true,
|
jackSupport ? true,
|
||||||
mpdSupport ? true,
|
mpdSupport ? true,
|
||||||
@ -64,7 +61,6 @@
|
|||||||
runTests ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
|
runTests ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
|
||||||
sndioSupport ? true,
|
sndioSupport ? true,
|
||||||
systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdMinimal,
|
systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdMinimal,
|
||||||
swaySupport ? true,
|
|
||||||
traySupport ? true,
|
traySupport ? true,
|
||||||
udevSupport ? true,
|
udevSupport ? true,
|
||||||
upowerSupport ? true,
|
upowerSupport ? true,
|
||||||
@ -128,7 +124,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
portaudio
|
portaudio
|
||||||
]
|
]
|
||||||
++ lib.optional evdevSupport libevdev
|
++ lib.optional evdevSupport libevdev
|
||||||
++ lib.optional hyprlandSupport hyprland
|
|
||||||
++ lib.optional inputSupport libinput
|
++ lib.optional inputSupport libinput
|
||||||
++ lib.optional jackSupport libjack2
|
++ lib.optional jackSupport libjack2
|
||||||
++ lib.optional mpdSupport libmpdclient
|
++ lib.optional mpdSupport libmpdclient
|
||||||
@ -136,7 +131,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
++ lib.optional nlSupport libnl
|
++ lib.optional nlSupport libnl
|
||||||
++ lib.optional pulseSupport libpulseaudio
|
++ lib.optional pulseSupport libpulseaudio
|
||||||
++ lib.optional sndioSupport sndio
|
++ lib.optional sndioSupport sndio
|
||||||
++ lib.optional swaySupport sway
|
|
||||||
++ lib.optional systemdSupport systemdMinimal
|
++ lib.optional systemdSupport systemdMinimal
|
||||||
++ lib.optional traySupport libdbusmenu-gtk3
|
++ lib.optional traySupport libdbusmenu-gtk3
|
||||||
++ lib.optional udevSupport udev
|
++ lib.optional udevSupport udev
|
||||||
|
|||||||
102
pkgs/by-name/xe/xenia-canary/package.nix
Normal file
102
pkgs/by-name/xe/xenia-canary/package.nix
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
python3,
|
||||||
|
gtk3,
|
||||||
|
lz4,
|
||||||
|
SDL2,
|
||||||
|
pkg-config,
|
||||||
|
vulkan-loader,
|
||||||
|
ninja,
|
||||||
|
cmake,
|
||||||
|
libuuid,
|
||||||
|
wrapGAppsHook3,
|
||||||
|
makeDesktopItem,
|
||||||
|
copyDesktopItems,
|
||||||
|
llvmPackages_18,
|
||||||
|
autoPatchelfHook,
|
||||||
|
unstableGitUpdater,
|
||||||
|
fetchFromGitHub,
|
||||||
|
}:
|
||||||
|
llvmPackages_18.stdenv.mkDerivation {
|
||||||
|
pname = "xenia-canary";
|
||||||
|
version = "0-unstable-2025-06-07";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "xenia-canary";
|
||||||
|
repo = "xenia-canary";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
rev = "422517c673bba086c2b857946ae5a37ee35b8e50";
|
||||||
|
hash = "sha256-88GHKXURfN8vaVNN7wKn562b6FvsIm/sTcUgtuhvVxM=";
|
||||||
|
};
|
||||||
|
|
||||||
|
dontConfigure = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
python3
|
||||||
|
pkg-config
|
||||||
|
ninja
|
||||||
|
cmake
|
||||||
|
wrapGAppsHook3
|
||||||
|
copyDesktopItems
|
||||||
|
autoPatchelfHook
|
||||||
|
libuuid
|
||||||
|
];
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = [
|
||||||
|
"-Wno-error=unused-result"
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
gtk3
|
||||||
|
lz4
|
||||||
|
SDL2
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
python3 xenia-build setup
|
||||||
|
python3 xenia-build build --config=release -j $NIX_BUILD_CORES
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
runtimeDependencies = [
|
||||||
|
vulkan-loader
|
||||||
|
];
|
||||||
|
|
||||||
|
desktopItems = [
|
||||||
|
(makeDesktopItem {
|
||||||
|
name = "xenia_canary";
|
||||||
|
desktopName = "Xenia Canary";
|
||||||
|
genericName = "Xbox 360 Emulator";
|
||||||
|
exec = "xenia_canary";
|
||||||
|
comment = "Xbox 360 Emulator Research Project";
|
||||||
|
icon = "xenia-canary";
|
||||||
|
startupWMClass = "Xenia_canary";
|
||||||
|
categories = [
|
||||||
|
"Game"
|
||||||
|
"Emulator"
|
||||||
|
];
|
||||||
|
keywords = [ "xbox" ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
find ./build/bin -mindepth 3 -maxdepth 3 -type f -executable -exec install -Dm755 {} -t $out/bin \;
|
||||||
|
for width in 16 32 48 64 128 256; do
|
||||||
|
install -Dm644 assets/icon/$width.png $out/share/icons/hicolor/''${width}x''${width}/apps/xenia-canary.png
|
||||||
|
done
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.updateScript = unstableGitUpdater { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Xbox 360 Emulator Research Project";
|
||||||
|
homepage = "https://github.com/xenia-canary/xenia-canary";
|
||||||
|
license = lib.licenses.bsd3;
|
||||||
|
maintainers = with lib.maintainers; [ tuxy ];
|
||||||
|
mainProgram = "xenia_canary";
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -19,5 +19,9 @@ buildDunePackage {
|
|||||||
|
|
||||||
meta = landmarks.meta // {
|
meta = landmarks.meta // {
|
||||||
description = "Preprocessor instrumenting code using the landmarks library";
|
description = "Preprocessor instrumenting code using the landmarks library";
|
||||||
|
longDescription = ''
|
||||||
|
Automatically or semi-automatically instrument your code using
|
||||||
|
landmarks library.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,23 +5,31 @@
|
|||||||
ocaml,
|
ocaml,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildDunePackage {
|
buildDunePackage rec {
|
||||||
pname = "landmarks";
|
pname = "landmarks";
|
||||||
version = "1.4";
|
version = "1.5";
|
||||||
minimalOCamlVersion = "4.08";
|
minimalOCamlVersion = "4.08";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "LexiFi";
|
owner = "LexiFi";
|
||||||
repo = "landmarks";
|
repo = "landmarks";
|
||||||
rev = "b0c753cd2a4c4aa00dffdd3be187d8ed592fabf7";
|
tag = "v${version}";
|
||||||
hash = "sha256-Wpr76JURUFrj7v39rdM/2Lr7boa7nL/bnPEz1vMrmQo";
|
hash = "sha256-eIq02D19OzDOrMDHE1Ecrgk+T6s9vj2X6B2HY+z+K8Q=";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = lib.versionAtLeast ocaml.version "4.08" && lib.versionOlder ocaml.version "5.0";
|
doCheck = lib.versionAtLeast ocaml.version "4.08" && lib.versionOlder ocaml.version "5.0";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = {
|
||||||
|
inherit (src.meta) homepage;
|
||||||
description = "Simple Profiling Library for OCaml";
|
description = "Simple Profiling Library for OCaml";
|
||||||
maintainers = [ maintainers.kenran ];
|
longDescription = ''
|
||||||
license = licenses.mit;
|
Landmarks is a simple profiling library for OCaml. It provides
|
||||||
|
primitives to measure time spent in portion of instrumented code. The
|
||||||
|
instrumentation of the code may either done by hand, automatically or
|
||||||
|
semi-automatically using the ppx pepreprocessor (see landmarks-ppx package).
|
||||||
|
'';
|
||||||
|
changelog = "https://raw.githubusercontent.com/LexiFi/landmarks/refs/tags/v${version}/CHANGES.md";
|
||||||
|
maintainers = with lib.maintainers; [ kenran ];
|
||||||
|
license = lib.licenses.mit;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user