Merge master into staging-next
This commit is contained in:
@@ -14,6 +14,8 @@
|
||||
designed to run on affordable, low-power devices. Available as [services.meshtasticd]
|
||||
(#opt-services.meshtasticd.enable).
|
||||
|
||||
- [Goupile](https://goupile.org/en), an open-source design tool for secure forms including Clinical Report Forms (eCRF). Available as [services.goupile](#opt-services.goupile.enable).
|
||||
|
||||
- [knot-resolver](https://www.knot-resolver.cz/) in version 6. Available as `services.knot-resolver`. A module for knot-resolver 5 was already available as `services.kresd`.
|
||||
|
||||
- [ImmichFrame](https://immichframe.dev/), display your photos from Immich as a digital photo frame. Available as `services.immichframe`.
|
||||
|
||||
@@ -1651,6 +1651,7 @@
|
||||
./services/web-apps/goatcounter.nix
|
||||
./services/web-apps/gotify-server.nix
|
||||
./services/web-apps/gotosocial.nix
|
||||
./services/web-apps/goupile.nix
|
||||
./services/web-apps/grav.nix
|
||||
./services/web-apps/grocy.nix
|
||||
./services/web-apps/guacamole-client.nix
|
||||
|
||||
@@ -298,7 +298,6 @@ in
|
||||
let
|
||||
enabledTables = lib.filterAttrs (_: table: table.enable) cfg.tables;
|
||||
deletionsScript = pkgs.writeScript "nftables-deletions" ''
|
||||
#! ${pkgs.nftables}/bin/nft -f
|
||||
${
|
||||
if cfg.flushRuleset then
|
||||
"flush ruleset"
|
||||
@@ -313,9 +312,9 @@ in
|
||||
${cfg.extraDeletions}
|
||||
'';
|
||||
deletionsScriptVar = "/var/lib/nftables/deletions.nft";
|
||||
makeDeletions = "${pkgs.nftables}/bin/nft -f ${deletionsScriptVar}";
|
||||
ensureDeletions = pkgs.writeShellScript "nftables-ensure-deletions" ''
|
||||
touch ${deletionsScriptVar}
|
||||
chmod +x ${deletionsScriptVar}
|
||||
'';
|
||||
saveDeletionsScript = pkgs.writeShellScript "nftables-save-deletions" ''
|
||||
cp ${deletionsScript} ${deletionsScriptVar}
|
||||
@@ -380,7 +379,7 @@ in
|
||||
saveDeletionsScript
|
||||
];
|
||||
ExecStop = [
|
||||
deletionsScriptVar
|
||||
makeDeletions
|
||||
cleanupDeletionsScript
|
||||
];
|
||||
StateDirectory = "nftables";
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.goupile;
|
||||
settingsFormat = pkgs.formats.ini { };
|
||||
in
|
||||
{
|
||||
options.services.goupile = {
|
||||
enable = lib.mkEnableOption "Goupile server";
|
||||
package = lib.mkPackageOption pkgs "goupile" { };
|
||||
|
||||
enableSandbox = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Enable the sandbox option.";
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
options = {
|
||||
HTTP.Port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 8889;
|
||||
description = "The port goupile runs on";
|
||||
};
|
||||
Data.RootDirectory = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/var/lib/goupile";
|
||||
description = "Goupile's data directory.";
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { }; # default will be lost for submodules if overriden
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
HTTP.Port = 8888;
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
The options for `systemd.services.goupile` in ini format.
|
||||
|
||||
The configuration options available can be found here
|
||||
https://github.com/Koromix/rygel/blob/goupile/3.11.1/src/goupile/server/admin.cc#L41
|
||||
'';
|
||||
};
|
||||
|
||||
configFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = ''
|
||||
The configuration file to be passed to goupile server.
|
||||
|
||||
By default the configuration file is created from `services.goupile.settings`.
|
||||
'';
|
||||
};
|
||||
|
||||
hostName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "goupile";
|
||||
description = "Nginx service name for goupile service.";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable (
|
||||
lib.mkMerge [
|
||||
{
|
||||
services.nginx = {
|
||||
enable = lib.mkDefault true;
|
||||
virtualHosts.${cfg.hostName} = {
|
||||
locations."/".proxyPass = "http://${cfg.hostName}:${builtins.toString cfg.settings.HTTP.Port}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
services.goupile.configFile = settingsFormat.generate "goupile.ini" cfg.settings;
|
||||
}
|
||||
{
|
||||
systemd.services.goupile = {
|
||||
wants = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
documentation = [ "https://goupile.org/en" ];
|
||||
description = "Goupile eCRF";
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${lib.getExe cfg.package} \
|
||||
${lib.optionalString cfg.enableSandbox "--sandbox"} \
|
||||
-C ${cfg.configFile}
|
||||
'';
|
||||
|
||||
DynamicUser = true;
|
||||
|
||||
RuntimeDirectory = "goupile";
|
||||
RuntimeDirectoryPreserve = "yes";
|
||||
StateDirectory = "goupile";
|
||||
UMask = 0077;
|
||||
WorkingDirectory = "%S/goupile";
|
||||
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [
|
||||
"~@privileged"
|
||||
"~@resources"
|
||||
"~@obsolete"
|
||||
"~@mount"
|
||||
"@system-service"
|
||||
"@file-system"
|
||||
"@basic-io"
|
||||
"@clock"
|
||||
];
|
||||
|
||||
ProtectHome = true;
|
||||
PrivateUsers = true;
|
||||
PrivateDevices = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectKernelModules = true;
|
||||
|
||||
CapabilityBoundingSet = [
|
||||
"CAP_SYS_PTRACE"
|
||||
"CAP_CHOWN"
|
||||
"CAP_DAC_OVERRIDE"
|
||||
"CAP_FOWNER"
|
||||
"CAP_KILL" # Required for child process management
|
||||
"CAP_NET_BIND_SERVICE"
|
||||
"CAP_SETGID"
|
||||
"CAP_SETUID"
|
||||
"CAP_SYS_CHROOT"
|
||||
"CAP_SYS_RESOURCE"
|
||||
];
|
||||
|
||||
Restart = "always";
|
||||
RestartSec = 20;
|
||||
TimeoutStopSec = 30;
|
||||
LimitNOFILE = 4096;
|
||||
};
|
||||
};
|
||||
}
|
||||
]
|
||||
);
|
||||
|
||||
meta.maintainers = lib.teams.ngi.members;
|
||||
}
|
||||
@@ -690,6 +690,7 @@ in
|
||||
gotenberg = runTest ./gotenberg.nix;
|
||||
gotify-server = runTest ./gotify-server.nix;
|
||||
gotosocial = runTest ./web-apps/gotosocial.nix;
|
||||
goupile = runTest ./web-apps/goupile;
|
||||
grafana = handleTest ./grafana { };
|
||||
graphite = runTest ./graphite.nix;
|
||||
grav = runTest ./web-apps/grav.nix;
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
import os
|
||||
import openpyxl
|
||||
import tempfile
|
||||
from playwright.sync_api import sync_playwright
|
||||
|
||||
BASE_URL = "http://localhost:8889"
|
||||
|
||||
# NOTE: these are the passwords
|
||||
ADMIN_PASSWD = "car-shop-in-the-mall"
|
||||
ALICE_PASSWD = "user-goes-to-the-car-shop"
|
||||
|
||||
|
||||
def run_test():
|
||||
is_headful = os.getenv("HEADFUL") == "1"
|
||||
|
||||
with sync_playwright() as p:
|
||||
browser = p.chromium.launch(headless=not is_headful)
|
||||
context = browser.new_context(
|
||||
accept_downloads=True, record_video_dir="/tmp/videos/"
|
||||
)
|
||||
# more default timeout for slow nixos test vms
|
||||
context.set_default_timeout(90 * 1000)
|
||||
page = context.new_page()
|
||||
|
||||
page.goto(f"{BASE_URL}/admin")
|
||||
|
||||
# admin and doman setup
|
||||
page.get_by_role("textbox", name="Domain name *").fill("domain")
|
||||
page.get_by_role("textbox", name="Domain title *").fill("domain")
|
||||
page.get_by_role("textbox", name="Password *").fill(ADMIN_PASSWD)
|
||||
page.get_by_role("textbox", name="Confirmation").fill(ADMIN_PASSWD)
|
||||
page.get_by_role("textbox", name="Decryption key *").click()
|
||||
page.get_by_role("button", name="Installer").click()
|
||||
|
||||
# login to admin dashboard as admin
|
||||
page.get_by_role("textbox", name="Username *").fill("admin")
|
||||
page.get_by_role("textbox", name="Password *").fill(ADMIN_PASSWD)
|
||||
page.get_by_role("button", name="Login").click()
|
||||
|
||||
# create a sample project, it will switch the view to project's configure page
|
||||
page.get_by_text("Create new project").click()
|
||||
page.get_by_role("textbox", name="Name *").fill("proj1")
|
||||
page.get_by_role("button", name="Create").click()
|
||||
|
||||
# create a test non-root user, alice
|
||||
page.get_by_text("Create new user").click()
|
||||
page.get_by_role("textbox", name="Username *").fill("alice")
|
||||
page.get_by_role("button", name="No", exact=True).click()
|
||||
page.get_by_role("textbox", name="Password *").fill(ALICE_PASSWD)
|
||||
page.get_by_role("textbox", name="Confirmation").fill(ALICE_PASSWD)
|
||||
page.get_by_role("button", name="Create").click()
|
||||
|
||||
# give alice, permissions to access the project
|
||||
page.get_by_role("button", name="Assign").nth(1).click()
|
||||
page.get_by_text("Read", exact=True).click()
|
||||
page.get_by_text("Save", exact=True).click()
|
||||
page.get_by_text("Export", exact=True).click()
|
||||
page.get_by_text("Download", exact=True).click()
|
||||
|
||||
# Open the project in new page
|
||||
page.locator("form").get_by_role("button", name="Edit").click()
|
||||
with page.expect_popup() as page1_info:
|
||||
page.get_by_role("link", name="access").click()
|
||||
page1 = page1_info.value
|
||||
page1.set_default_timeout(120 * 1000)
|
||||
|
||||
# fill entries as admin (enter 1 for everything)
|
||||
page1.get_by_role("button", name="Create new record").click()
|
||||
|
||||
page1.locator("#ins_tiles").get_by_text("Introduction").click()
|
||||
page1.get_by_role("textbox", name="Inclusion date *").fill("2000-01-01")
|
||||
page1.get_by_role("spinbutton", name="Age *").click()
|
||||
page1.get_by_role("spinbutton", name="Age *").fill("1")
|
||||
page1.get_by_role("button", name="Save").click()
|
||||
page1.wait_for_timeout(1000)
|
||||
|
||||
page1.get_by_role("button", name="Advanced").click()
|
||||
page1.get_by_role("spinbutton", name="Age *").click()
|
||||
page1.get_by_role("spinbutton", name="Age *").fill("1")
|
||||
page1.get_by_role("button", name="Save").click()
|
||||
page1.wait_for_timeout(1000)
|
||||
|
||||
page1.get_by_role("button", name="Page layout").click()
|
||||
page1.get_by_role("spinbutton", name="Variable A1").fill("1")
|
||||
page1.get_by_role("button", name="Save").click()
|
||||
page1.wait_for_timeout(1000)
|
||||
|
||||
# create export #1
|
||||
page1.get_by_role("button", name="Data").click()
|
||||
page1.wait_for_timeout(1000)
|
||||
|
||||
page1.get_by_role("button", name="Data exports").click()
|
||||
with page1.expect_download() as download_info:
|
||||
page1.get_by_role("button", name="Create export").click()
|
||||
|
||||
# logout as admin
|
||||
page.get_by_role("button", name="admin", exact=True).click()
|
||||
with page.expect_popup() as page2_info:
|
||||
page.get_by_role("link", name="access").click()
|
||||
page2 = page2_info.value
|
||||
page2.set_default_timeout(120 * 1000)
|
||||
|
||||
page2.get_by_role("button", name="admin").click()
|
||||
page2.get_by_role("button", name="Logout").click()
|
||||
|
||||
# login as alice
|
||||
page2.get_by_role("textbox", name="Username *").fill("alice")
|
||||
page2.get_by_role("textbox", name="Password *").fill(ALICE_PASSWD)
|
||||
page2.get_by_role("button", name="Login").click()
|
||||
|
||||
# create entry as alice (fill `2` for everything)
|
||||
page2.get_by_role("button", name="Create new record").click()
|
||||
|
||||
page2.get_by_text("1 Introduction").click()
|
||||
page2.get_by_role("textbox", name="Inclusion date *").fill("2000-01-01")
|
||||
page2.get_by_role("spinbutton", name="Age *").click()
|
||||
page2.get_by_role("spinbutton", name="Age *").fill("2")
|
||||
page2.get_by_role("button", name="Save").click()
|
||||
page2.wait_for_timeout(1000)
|
||||
|
||||
page2.get_by_role("button", name="Advanced").click()
|
||||
page2.get_by_role("spinbutton", name="Age *").click()
|
||||
page2.get_by_role("spinbutton", name="Age *").fill("2")
|
||||
page2.get_by_role("button", name="Save").click()
|
||||
page2.wait_for_timeout(1000)
|
||||
|
||||
page2.get_by_role("button", name="Page layout").click()
|
||||
page2.get_by_role("spinbutton", name="Variable A1").click()
|
||||
page2.get_by_role("spinbutton", name="Variable A1").fill("2")
|
||||
page2.get_by_role("button", name="Save").click()
|
||||
page2.wait_for_timeout(1000)
|
||||
|
||||
# create export #2
|
||||
page2.get_by_role("button", name="Data").click()
|
||||
page2.wait_for_timeout(1000)
|
||||
|
||||
page2.get_by_role("button", name="Data exports").click()
|
||||
page2.get_by_role("button", name="Previous exports").click()
|
||||
|
||||
with page2.expect_download() as download1_info:
|
||||
page2.locator("a").filter(has_text="Download").click()
|
||||
|
||||
download1 = download1_info.value
|
||||
save_path1 = os.path.join(tempfile.gettempdir(), download1.suggested_filename)
|
||||
download1.save_as(save_path1)
|
||||
|
||||
print(f"exported all records to {save_path1}")
|
||||
|
||||
page2.get_by_role("button", name="Data exports").click()
|
||||
with page2.expect_download() as download2_info:
|
||||
page2.get_by_role("button", name="Create export").click()
|
||||
|
||||
download2 = download2_info.value
|
||||
save_path2 = os.path.join(tempfile.gettempdir(), download2.suggested_filename)
|
||||
download2.save_as(save_path2)
|
||||
|
||||
print(f"exported all records to {save_path2}")
|
||||
|
||||
context.close()
|
||||
browser.close()
|
||||
|
||||
# check that exported files have correct entries
|
||||
|
||||
wb1 = openpyxl.load_workbook(save_path1)
|
||||
for sheet, cell in zip(["intro", "advanced", "layout"], ["D2", "D2", "C2"]):
|
||||
val = wb1[sheet][cell].value
|
||||
assert val == 1, f"Sheet {sheet}, Cell {cell}: Expected 1 (admin), got {val}"
|
||||
|
||||
wb2 = openpyxl.load_workbook(save_path2)
|
||||
for sheet, cell in zip(["intro", "advanced", "layout"], ["D3", "D3", "C3"]):
|
||||
val = wb2[sheet][cell].value
|
||||
assert val == 2, f"Sheet {sheet}, Cell {cell}: Expected 2 (alice), got {val}"
|
||||
|
||||
print("Test passed successfully!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run_test()
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
python = pkgs.python3.withPackages (
|
||||
ps: with ps; [
|
||||
requests
|
||||
playwright
|
||||
openpyxl
|
||||
]
|
||||
);
|
||||
|
||||
runScript = "${lib.getExe python} ${./basic_interaction_test.py}";
|
||||
|
||||
run-goupile-test = pkgs.writeShellScriptBin "run-goupile-test" ''
|
||||
set -euo pipefail
|
||||
|
||||
export PLAYWRIGHT_BROWSERS_PATH=${pkgs.playwright-driver.browsers}
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
|
||||
# check if attached to a terminal
|
||||
if [ -t 1 ]; then
|
||||
# interactive testing
|
||||
export HEADFUL=''${HEADFUL:-1}
|
||||
export PWDEBUG=''${PWDEBUG:-0}
|
||||
export DISPLAY=''${DISPLAY:-:0}
|
||||
if [ "$(id -u)" = "0" ] && [ -d "/home/alice" ]; then
|
||||
runuser -u alice \
|
||||
-w DISPLAY,HEADFUL,PWDEBUG,PLAYWRIGHT_BROWSERS_PATH,PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD \
|
||||
-- ${runScript}
|
||||
else
|
||||
${runScript}
|
||||
fi
|
||||
else
|
||||
# non-interactive nixos test
|
||||
|
||||
# Print instructions to the nix logs
|
||||
cat <<'EOF' | tee >(systemd-cat -t goupile-e2e)
|
||||
================================================================================
|
||||
NOTE: The goupile e2e test can be run interactively either inside the vm or on the host
|
||||
- First, run `nix-build -A nixosTests.goupile.driverInteractive` and `./result/bin/nixos-test-driver`
|
||||
- Run `start_all()` inside the repl
|
||||
- Then `$(nix-build -A nixosTests.goupile.interactive-script)/bin/run-goupile-test` to run the full test interactively
|
||||
- Or `env PWDEBUG=1 $(nix-build -A nixosTests.goupile.interactive-script)/bin/run-goupile-test` to show the playwright inspector to debug
|
||||
================================================================================
|
||||
EOF
|
||||
|
||||
echo "Starting smoke test..." | systemd-cat -t goupile-e2e
|
||||
${runScript} 2>&1 | tee >(systemd-cat -t goupile-e2e)
|
||||
fi
|
||||
'';
|
||||
in
|
||||
{
|
||||
name = "goupile";
|
||||
|
||||
passthru.interactive-script = run-goupile-test;
|
||||
|
||||
nodes.machine =
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.goupile = {
|
||||
enable = true;
|
||||
enableSandbox = true;
|
||||
settings.HTTP.Port = 8889;
|
||||
};
|
||||
#systemd.services.goupile.environment.DEFAULT_SECCOMP_ACTION = "Log"; # Block|Log|Kill
|
||||
networking = {
|
||||
firewall.allowedTCPPorts = [ config.services.nginx.defaultHTTPListenPort ];
|
||||
hostName = "goupile";
|
||||
domain = "local";
|
||||
};
|
||||
|
||||
# goupile tries to resolve it at runtime, resolve it instead of patching it out
|
||||
# as the dns resolution step serves a purpose, to force glibc to load NSS libraries
|
||||
# see server/goupile.cc and search for getaddrinfo or www.example.com
|
||||
networking.extraHosts = ''
|
||||
127.0.0.1 www.example.com
|
||||
'';
|
||||
|
||||
environment.systemPackages = [
|
||||
python
|
||||
run-goupile-test
|
||||
];
|
||||
|
||||
# more cores and memory to improve chromium performance
|
||||
virtualisation.memorySize = lib.mkForce 8192;
|
||||
virtualisation.cores = 4;
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
port = builtins.toString nodes.machine.services.goupile.settings.HTTP.Port;
|
||||
in
|
||||
# py
|
||||
''
|
||||
import os
|
||||
start_all()
|
||||
|
||||
machine.wait_for_unit("goupile.service")
|
||||
machine.wait_for_open_port(${port})
|
||||
|
||||
machine.succeed("curl -q http://localhost:${port}")
|
||||
machine.succeed("curl -q http://goupile.local")
|
||||
machine.succeed("curl -q http://localhost")
|
||||
|
||||
machine.succeed("run-goupile-test")
|
||||
out_dir = os.environ.get("out", os.getcwd())
|
||||
machine.copy_from_vm("/tmp/videos", out_dir)
|
||||
'';
|
||||
|
||||
# Debug interactively with:
|
||||
# - nix-build -A nixosTests.goupile.driverInteractive
|
||||
# - ./result/bin/nixos-test-driver
|
||||
# - run_tests()
|
||||
# ssh -o User=root vsock%3 (can also do vsock/3, but % works with scp etc.)
|
||||
interactive.sshBackdoor.enable = true;
|
||||
|
||||
interactive.nodes.machine =
|
||||
{ config, ... }:
|
||||
let
|
||||
port = config.services.goupile.settings.HTTP.Port;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# enable graphical session + users (alice, bob)
|
||||
../../common/x11.nix
|
||||
../../common/user-account.nix
|
||||
];
|
||||
services.xserver.enable = true;
|
||||
test-support.displayManager.auto.user = "alice";
|
||||
|
||||
virtualisation.forwardPorts = [
|
||||
{
|
||||
from = "host";
|
||||
host.port = port;
|
||||
guest.port = port;
|
||||
}
|
||||
];
|
||||
|
||||
# forwarded ports need to be accessible
|
||||
networking.firewall.allowedTCPPorts = [ port ];
|
||||
};
|
||||
|
||||
meta.maintainers = lib.teams.ngi.members;
|
||||
}
|
||||
@@ -3008,8 +3008,8 @@ let
|
||||
mktplcRef = {
|
||||
publisher = "mesonbuild";
|
||||
name = "mesonbuild";
|
||||
version = "1.28.1";
|
||||
hash = "sha256-Cu2sBg8wTjGLOMF4bCOG8noXZXZB2j5wSXZS2VxxNoA=";
|
||||
version = "1.28.2";
|
||||
hash = "sha256-Wb3cfATe8pc+LftmKyFj3q6kmdTHUMtoIHlChKKeEoU=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/mesonbuild.mesonbuild/changelog";
|
||||
@@ -4458,8 +4458,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "vscode-stylelint";
|
||||
publisher = "stylelint";
|
||||
version = "2.0.2";
|
||||
hash = "sha256-nJYy7HFycKXTQCHgaLP46CGl0hlgaexL1QZ8icGpeVo=";
|
||||
version = "2.1.0";
|
||||
hash = "sha256-cL86Gv2HAtvqNd+2vJPuKAgKVrp5pg6IECFm1Di8Eqk=";
|
||||
};
|
||||
meta = {
|
||||
description = "Official Stylelint extension for Visual Studio Code";
|
||||
|
||||
@@ -15,13 +15,13 @@ let
|
||||
vsix = stdenv.mkDerivation (finalAttrs: {
|
||||
name = "gitlens-${finalAttrs.version}.vsix";
|
||||
pname = "gitlens-vsix";
|
||||
version = "17.11.0";
|
||||
version = "17.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gitkraken";
|
||||
repo = "vscode-gitlens";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-MMUfl8Vc6mAjs0ZPWV0lHQdqRkKKY0FEx7mbz/yrk9k=";
|
||||
hash = "sha256-BN6qgPYhZ+FuYnwmV0S3y2vOR4ZLC+VGWuEEPqfOqi4=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
|
||||
@@ -472,13 +472,13 @@
|
||||
"vendorHash": "sha256-mzDFyk2oImRXt72kFV5Ln++ScgoecpJEJtzUKjvCaws="
|
||||
},
|
||||
"grafana_grafana": {
|
||||
"hash": "sha256-ifE5W6sUo/BTxO+noss+nqw+LDPlkxdpySlJ08n7Kd4=",
|
||||
"hash": "sha256-XXnmPZstCrZ2NDMx/azDpvXknuEwqJ+GW0hiaH3+bDQ=",
|
||||
"homepage": "https://registry.terraform.io/providers/grafana/grafana",
|
||||
"owner": "grafana",
|
||||
"repo": "terraform-provider-grafana",
|
||||
"rev": "v4.27.1",
|
||||
"rev": "v4.28.1",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-OCdknvuL/+khhFdopVLKEYKBwLbyPnziKamHDUEX+Zk="
|
||||
"vendorHash": "sha256-OMrFGY8rIf32E6/TKSmR/AQPj+GS1e9V5UyPxzhXaNE="
|
||||
},
|
||||
"gridscale_gridscale": {
|
||||
"hash": "sha256-FAKvQ/MEod5Ck0PG4ffQ+gQp6zZ0JDRXPOrOiDpWMls=",
|
||||
|
||||
@@ -18,18 +18,18 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "audio-mirroring";
|
||||
version = "0.1.1";
|
||||
version = "0.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mkg20001";
|
||||
repo = "audio-mirroring";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-f4V5ZJvXhdwqS4kx99Lr2Eb8r08PRd3T4mbRoAyyIqE=";
|
||||
hash = "sha256-Idu15ZfY8JYVZhub0LRXYtWdiVCMVRyC3MVTX4JcbzY=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit pname version src;
|
||||
hash = "sha256-+mAdxaaQOO7AIn/o/J13FbHIvtepk8/okGxO6p6aGzI=";
|
||||
hash = "sha256-kiDGCl3De5dhDwwCf1F38gnGtfNpAVot0G0+Gxmyyp0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cgl";
|
||||
version = "0.60.9";
|
||||
version = "0.60.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coin-or";
|
||||
repo = "Cgl";
|
||||
rev = "releases/${finalAttrs.version}";
|
||||
hash = "sha256-E84yCrgpRMjt7owPLPk1ATW+aeHNw8V24DHgkb6boIE=";
|
||||
hash = "sha256-zkq8pdn4m56sGd3I6xID3M+u7BxVp0S5naKBjqAdeyE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "cnspec";
|
||||
version = "13.0.0";
|
||||
version = "13.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mondoohq";
|
||||
repo = "cnspec";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-qA48TBt1S4M6xyvfBELxbJd0R7PwY34naZctb4XRnwo=";
|
||||
hash = "sha256-579zSogioTKdsqOwTptJUqN1IEWnPzEmWrSjllqIYOY=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-CwR0/L+ptBKjBLLZ7I96+jxJyCAgM7V0etXz+H0vlhI=";
|
||||
vendorHash = "sha256-ZPJGtI5HTetjSDfkXmF2elyXPO7AmQn1zmXzEjNIIXc=";
|
||||
|
||||
subPackages = [ "apps/cnspec" ];
|
||||
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "codebook";
|
||||
version = "0.3.32";
|
||||
version = "0.3.34";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "blopker";
|
||||
repo = "codebook";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-UkE1ND1ditGIlplHG6EslK2uDvRWz7jmn2UmUhlYbdE=";
|
||||
hash = "sha256-BMPwYw7BHywyDJLgHzJt6HsrI23Y+Ng+vcUdFNJH68M=";
|
||||
};
|
||||
|
||||
buildAndTestSubdir = "crates/codebook-lsp";
|
||||
cargoHash = "sha256-27+9vjTHBxJ3WM2e3xmTO2CmJvsmqN4nhqD0Sf0YtEw=";
|
||||
cargoHash = "sha256-q6oEHXGxItR9GW2vqpj2i6AN0hH8ybMQ+vkX4aljt/I=";
|
||||
|
||||
env = {
|
||||
CARGO_PROFILE_RELEASE_LTO = "fat";
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
|
||||
let
|
||||
pname = "fflogs";
|
||||
version = "8.20.113";
|
||||
version = "9.0.24";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/RPGLogs/Uploaders-fflogs/releases/download/v${version}/fflogs-v${version}.AppImage";
|
||||
hash = "sha256-mwbATBhkbeZ2f4KAytOgp8XbCL4dY7S7OPHj//4kqGQ=";
|
||||
hash = "sha256-9L9eNpK2MI3P+mhUDCAzfi3YDdWpHGjiUS5LjksUjqo=";
|
||||
};
|
||||
extracted = appimageTools.extractType2 { inherit pname version src; };
|
||||
in
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "olm";
|
||||
version = "1.4.2";
|
||||
version = "1.4.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fosrl";
|
||||
repo = "olm";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Tily8Srpr5GpKTYl3Ivm1b/VN2yEzbbHHABeoJvo3wo=";
|
||||
hash = "sha256-4dzbSW9AoFitypVOD/N4/mnUJwh0USgOwVqcopLkcYs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-lqH/pMWeDsTJa39uJwHntCAUs0BwJiB0aMyFaI++5ms=";
|
||||
vendorHash = "sha256-D93SPwXAeoTLCbScjyH8AB9TJIF2b/UbLNMIQYi+B+c=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ft2-clone";
|
||||
version = "2.11";
|
||||
version = "2.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "8bitbubsy";
|
||||
repo = "ft2-clone";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-thOQcsnFkDJh0P2Yu/1rCmt/M3Ikr88ffFHUDrgFNyk=";
|
||||
hash = "sha256-Ca4vp2uEF7rZJ+0lAmVqC/6F+2CgbDLK2GkbG5Tn//0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -6,20 +6,21 @@
|
||||
fetchFromGitLab,
|
||||
nix-update-script,
|
||||
versionCheckHook,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gitlab-runner";
|
||||
version = "18.8.0";
|
||||
version = "18.9.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "gitlab-org";
|
||||
repo = "gitlab-runner";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-rS7+BUdec+Z4G/dd5D/NHe3gbELWicg0Nmgx4zJAIX4=";
|
||||
hash = "sha256-U13SouwEfCVy5M8fv6rkCX0F+ecVYdsocvAdt3yxPJA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Br9TW+sg7PDOE2d8lVQ9Xv9+UD7JHzitdTOcyodHr+s=";
|
||||
vendorHash = "sha256-Ak1Q8FnTD8LKcN9xRc1gpcnUiambGC3CJP84cwQqTtM=";
|
||||
|
||||
# For patchShebangs
|
||||
buildInputs = [ bash ];
|
||||
@@ -85,6 +86,8 @@ buildGoModule (finalAttrs: {
|
||||
"-X ${ldflagsPackageVariablePrefix}.REVISION=v${finalAttrs.version}"
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ writableTmpDirAsHomeHook ];
|
||||
|
||||
preCheck = ''
|
||||
# Make the tests pass outside of GitLab CI
|
||||
export CI=0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/shells/bash_test.go b/shells/bash_test.go
|
||||
index 9ed9e65ff..02b6e6d5f 100644
|
||||
index bbbe949f4..955992d3f 100644
|
||||
--- a/shells/bash_test.go
|
||||
+++ b/shells/bash_test.go
|
||||
@@ -4,11 +4,9 @@ package shells
|
||||
@@ -11,10 +11,10 @@ index 9ed9e65ff..02b6e6d5f 100644
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
- "github.com/stretchr/testify/require"
|
||||
"gitlab.com/gitlab-org/gitlab-runner/common"
|
||||
)
|
||||
|
||||
@@ -90,65 +88,6 @@ func TestBash_CheckForErrors(t *testing.T) {
|
||||
"gitlab.com/gitlab-org/gitlab-runner/common"
|
||||
"gitlab.com/gitlab-org/gitlab-runner/common/spec"
|
||||
@@ -78,65 +76,6 @@ func TestBash_CheckForErrors(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -43,19 +43,15 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0017xg5agj3dy0hx71ijdcrxb72bjqv7x6aq7c9zxzyyw0mkxj0k";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://sources.debian.org/data/main/g/glob2/0.9.4.4-6/debian/patches/10_pthread_underlinkage.patch";
|
||||
url = "https://sources.debian.org/data/main/g/glob2/0.9.4.4-11/debian/patches/10_pthread_underlinkage.patch";
|
||||
sha256 = "sha256-L9POADlkgQbUQEUmx4s3dxXG9tS0w2IefpRGuQNRMI0=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://sources.debian.org/data/main/g/glob2/0.9.4.4-6/debian/patches/link-boost-system.patch";
|
||||
sha256 = "sha256-ne6F2ZowB+TUmg3ePuUoPNxXI0ZJC6HEol3oQQHJTy4=";
|
||||
url = "https://sources.debian.org/data/main/g/glob2/0.9.4.4-11/debian/patches/scons.patch";
|
||||
sha256 = "sha256-kHuFQCmkCkogqK6vfHKGYeZrMvsdQ7h8B3CcCtjLr50=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://sources.debian.org/data/main/g/glob2/0.9.4.4-6/debian/patches/scons.patch";
|
||||
sha256 = "sha256-Gah7SoVcd/Aljs0Nqo3YF0lZImUWtrGM4HbbQ4yrhHU=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://sources.debian.org/data/main/g/glob2/0.9.4.4-6/debian/patches/boost-1.69.patch";
|
||||
url = "https://sources.debian.org/data/main/g/glob2/0.9.4.4-11/debian/patches/boost-1.69.patch";
|
||||
sha256 = "sha256-D7agFR4uyIHxQz690Q8EHPF+rTEoiGUpgkm7r5cL5SI=";
|
||||
})
|
||||
];
|
||||
@@ -77,6 +73,7 @@ stdenv.mkDerivation rec {
|
||||
scons
|
||||
bsdiff # bspatch
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libGLU
|
||||
libGL
|
||||
@@ -98,8 +95,6 @@ stdenv.mkDerivation rec {
|
||||
"DATADIR=${placeholder "out"}/share/globulation2/glob2"
|
||||
];
|
||||
|
||||
env.NIX_LDFLAGS = "-lboost_system";
|
||||
|
||||
meta = {
|
||||
description = "RTS without micromanagement";
|
||||
mainProgram = "glob2";
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
versionCheckHook,
|
||||
installShellFiles,
|
||||
|
||||
stdenv,
|
||||
clangStdenv,
|
||||
llvmPackages,
|
||||
nixosTests,
|
||||
|
||||
# https://goupile.org/en/build recommends a Paranoid build
|
||||
# which is not bit by bit reproducible, whereas others are
|
||||
profile ? "Paranoid",
|
||||
}:
|
||||
|
||||
assert lib.assertOneOf "profile" profile [
|
||||
"Fast"
|
||||
"Debug"
|
||||
"Paranoid"
|
||||
];
|
||||
|
||||
let
|
||||
stdenv' = if (profile == "Paranoid") then clangStdenv else stdenv;
|
||||
in
|
||||
stdenv'.mkDerivation (finalAttrs: {
|
||||
pname = "goupile";
|
||||
version = "3.12.1";
|
||||
|
||||
# https://github.com/Koromix/rygel/tags
|
||||
src = fetchFromGitHub {
|
||||
owner = "Koromix";
|
||||
repo = "rygel";
|
||||
tag = "goupile/${finalAttrs.version}";
|
||||
hash = "sha256-Pn/0tjezVKJedAtqj69avxeIK2l3l9FGioYSyEao12E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
]
|
||||
++ lib.optionals (profile == "Paranoid") [
|
||||
llvmPackages.bintools
|
||||
];
|
||||
|
||||
# pipe2() is only exposed with _GNU_SOURCE
|
||||
NIX_CFLAGS_COMPILE = [ "-D_GNU_SOURCE" ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
./bootstrap.sh
|
||||
echo "goupile = ${finalAttrs.version}" >FelixVersions.ini
|
||||
./felix -s -p${profile} goupile
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
installBin bin/${profile}/goupile
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
versionCheckProgramArg = "--version";
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
passthru.tests = { inherit (nixosTests) goupile; };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/Koromix/rygel/blob/${finalAttrs.src.rev}/src/goupile/CHANGELOG.md";
|
||||
description = "Free design tool for secure forms including Clinical Report Forms (eCRF)";
|
||||
homepage = "https://goupile.org/en";
|
||||
license = lib.licenses.gpl3Plus; # sdpx headers
|
||||
platforms = lib.platforms.linux; # https://goupile.org/en/build
|
||||
mainProgram = "goupile";
|
||||
teams = with lib.teams; [ ngi ];
|
||||
};
|
||||
})
|
||||
@@ -6,105 +6,106 @@
|
||||
buildGoModule,
|
||||
buildNpmPackage,
|
||||
systemd,
|
||||
grafana-alloy,
|
||||
installShellFiles,
|
||||
versionCheckHook,
|
||||
nixosTests,
|
||||
nix-update-script,
|
||||
installShellFiles,
|
||||
testers,
|
||||
lld,
|
||||
useLLD ? stdenv.hostPlatform.isArmv7,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "grafana-alloy";
|
||||
version = "1.12.2";
|
||||
version = "1.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "grafana";
|
||||
repo = "alloy";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-C/yqsUjEwKnGRkxMOQkKfGdeERbvO/e7D7c3CyJ+cVY=";
|
||||
hash = "sha256-zgbbbuq+sb+nU1vgzaxEHGY77k+TXFrlvcvs/NSqQAM=";
|
||||
};
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
src = "${finalAttrs.src}/internal/web/ui";
|
||||
hash = "sha256-3J1Slka5bi+72NUaHBmDTtG1faJWRkOlkClKnUyiUsk=";
|
||||
hash = "sha256-GT0yisPn+3FCtWL3he0i5zPMlaWNparQDefU69G4Yis=";
|
||||
};
|
||||
|
||||
frontend = buildNpmPackage {
|
||||
pname = "alloy-frontend";
|
||||
inherit (finalAttrs) version src;
|
||||
|
||||
inherit (finalAttrs) npmDeps;
|
||||
sourceRoot = "${finalAttrs.src.name}/internal/web/ui";
|
||||
|
||||
inherit (finalAttrs) npmDeps;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir $out
|
||||
mkdir -p $out
|
||||
cp -av dist $out/share
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-Bq/6ld2LldSDhksNqGMHXZAeNHh74D07o2ETpQqMcP4=";
|
||||
patchPhase = ''
|
||||
cp -av ${finalAttrs.frontend}/share internal/web/ui/dist
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
modRoot = "collector";
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-A1mbMmpUxg5T7//X5PL1CPGB1OMPhertFvz4sPFTgOg=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X github.com/grafana/alloy/internal/build.Version=${finalAttrs.version}"
|
||||
"-X github.com/grafana/alloy/internal/build.Branch=v${finalAttrs.version}"
|
||||
"-X github.com/grafana/alloy/internal/build.Revision=v${finalAttrs.version}"
|
||||
"-X github.com/grafana/alloy/internal/build.BuildUser=nix@nixpkgs"
|
||||
"-X github.com/grafana/alloy/internal/build.BuildDate=1970-01-01T00:00:00Z"
|
||||
];
|
||||
|
||||
tags = [
|
||||
"embedalloyui"
|
||||
"netgo"
|
||||
]
|
||||
++ lib.optionals useLLD [ lld ];
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
"promtail_journal_enabled"
|
||||
];
|
||||
|
||||
env =
|
||||
lib.optionalAttrs useLLD {
|
||||
NIX_CFLAGS_LINK = "-fuse-ld=lld";
|
||||
}
|
||||
// lib.optionalAttrs (stdenv.hostPlatform.isLinux) {
|
||||
# uses go-systemd, which uses libsystemd headers
|
||||
# Uses go-systemd, which uses libsystemd headers.
|
||||
# https://github.com/coreos/go-systemd/issues/351
|
||||
NIX_CFLAGS_COMPILE = "-I${lib.getDev systemd}/include";
|
||||
};
|
||||
|
||||
ldflags =
|
||||
let
|
||||
prefix = "github.com/grafana/alloy/internal/build";
|
||||
in
|
||||
[
|
||||
"-s"
|
||||
"-w"
|
||||
# https://github.com/grafana/alloy/blob/3201389252d2c011bee15ace0c9f4cdbcb978f9f/Makefile#L110
|
||||
"-X ${prefix}.Branch=v${finalAttrs.version}"
|
||||
"-X ${prefix}.Version=${finalAttrs.version}"
|
||||
"-X ${prefix}.Revision=v${finalAttrs.version}"
|
||||
"-X ${prefix}.BuildUser=nix"
|
||||
"-X ${prefix}.BuildDate=1970-01-01T00:00:00Z"
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
]
|
||||
++ lib.optionals useLLD [ lld ];
|
||||
|
||||
tags = [
|
||||
"netgo"
|
||||
"builtinassets"
|
||||
"promtail_journal_enabled"
|
||||
];
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
mv -v $out/bin/otel_engine $out/bin/alloy
|
||||
|
||||
patchPhase = ''
|
||||
# Copy frontend build in
|
||||
cp -va "${finalAttrs.frontend}/share" "internal/web/ui/dist"
|
||||
installShellCompletion --cmd alloy \
|
||||
--bash <($out/bin/alloy completion bash) \
|
||||
--fish <($out/bin/alloy completion fish) \
|
||||
--zsh <($out/bin/alloy completion zsh)
|
||||
'';
|
||||
|
||||
subPackages = [
|
||||
"."
|
||||
];
|
||||
|
||||
checkFlags = [
|
||||
"-tags"
|
||||
"nonetwork" # disable network tests
|
||||
"-tags"
|
||||
"nodocker" # disable docker tests
|
||||
];
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "-v";
|
||||
|
||||
# go-systemd uses libsystemd under the hood, which does dlopen(libsystemd) at
|
||||
# runtime.
|
||||
# Add to RUNPATH so it can be found.
|
||||
# runtime. Add to RPATH so it can be found.
|
||||
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
patchelf \
|
||||
--set-rpath "${
|
||||
@@ -113,20 +114,9 @@ buildGoModule (finalAttrs: {
|
||||
$out/bin/alloy
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
installShellCompletion --cmd alloy \
|
||||
--bash <($out/bin/alloy completion bash) \
|
||||
--fish <($out/bin/alloy completion fish) \
|
||||
--zsh <($out/bin/alloy completion zsh)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
inherit (nixosTests) alloy;
|
||||
version = testers.testVersion {
|
||||
version = "v${finalAttrs.version}";
|
||||
package = grafana-alloy;
|
||||
};
|
||||
};
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [
|
||||
@@ -134,21 +124,26 @@ buildGoModule (finalAttrs: {
|
||||
"v(.+)"
|
||||
];
|
||||
};
|
||||
# for nix-update to be able to find and update the hash
|
||||
# For nix-update to be able to find and update the hash.
|
||||
inherit (finalAttrs) npmDeps;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Open source OpenTelemetry Collector distribution with built-in Prometheus pipelines and support for metrics, logs, traces, and profiles";
|
||||
mainProgram = "alloy";
|
||||
license = lib.licenses.asl20;
|
||||
description = "OpenTelemetry Collector distribution with programmable pipelines";
|
||||
longDescription = ''
|
||||
Grafana Alloy is an open source OpenTelemetry Collector distribution with
|
||||
built-in Prometheus pipelines and support for metrics, logs, traces, and
|
||||
profiles.
|
||||
'';
|
||||
homepage = "https://grafana.com/oss/alloy";
|
||||
changelog = "https://github.com/grafana/alloy/blob/${finalAttrs.src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [
|
||||
azahi
|
||||
flokli
|
||||
hbjydev
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "alloy";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
withDocumentation ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
|
||||
}:
|
||||
let
|
||||
version = "1.46.0";
|
||||
version = "1.47.1";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit version;
|
||||
@@ -34,10 +34,10 @@ rustPlatform.buildRustPackage {
|
||||
owner = "casey";
|
||||
repo = "just";
|
||||
tag = version;
|
||||
hash = "sha256-NE54LKS2bYBfQL+yLJPaG4iF7EiJfDqBfnsrlPo1+OE=";
|
||||
hash = "sha256-HGrUiPe4vVYNISovTb9PZt8s6xCUg+OWkrp8dPm9tWg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-yyaJAWp6luizA/aQuUGhdxRX2Ofri4CeLIO3/ndSCzc=";
|
||||
cargoHash = "sha256-ZRcYVvodaQmQtBGnkTIOI3PXC6YQ1kqycm6Xh/MwIqA=";
|
||||
|
||||
nativeBuildInputs =
|
||||
lib.optionals (installShellCompletions || installManPages) [ installShellFiles ]
|
||||
|
||||
@@ -24,11 +24,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "keycloak";
|
||||
version = "26.5.5";
|
||||
version = "26.5.6";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/keycloak/keycloak/releases/download/${finalAttrs.version}/keycloak-${finalAttrs.version}.zip";
|
||||
hash = "sha256-k6keuENMQ1S+4YN67E6vc48W8x4Le0Bw9E1+UBLyxh0=";
|
||||
hash = "sha256-lkBSzM0kPYe3301EJkY/NShaKpBz+7NuAK/MPNLwMX4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -332,7 +332,10 @@ stdenv.mkDerivation rec {
|
||||
The Programs handle Schematic Capture, and PCB Layout with Gerber output.
|
||||
'';
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ korken89 ];
|
||||
maintainers = with lib.maintainers; [
|
||||
korken89
|
||||
ryand56
|
||||
];
|
||||
platforms = lib.platforms.all;
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
mainProgram = "kicad";
|
||||
|
||||
Generated
+44
-44
@@ -167,16 +167,16 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/collections",
|
||||
"version": "v12.53.0",
|
||||
"version": "v12.54.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/collections.git",
|
||||
"reference": "f35c084f0d9bc57895515cb4d0665797c66285fd"
|
||||
"reference": "86f874536cbda5f35c23a9908ee7f176caa4496e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/collections/zipball/f35c084f0d9bc57895515cb4d0665797c66285fd",
|
||||
"reference": "f35c084f0d9bc57895515cb4d0665797c66285fd",
|
||||
"url": "https://api.github.com/repos/illuminate/collections/zipball/86f874536cbda5f35c23a9908ee7f176caa4496e",
|
||||
"reference": "86f874536cbda5f35c23a9908ee7f176caa4496e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -223,11 +223,11 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2026-02-16T14:10:38+00:00"
|
||||
"time": "2026-02-25T15:25:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "illuminate/conditionable",
|
||||
"version": "v12.53.0",
|
||||
"version": "v12.54.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/conditionable.git",
|
||||
@@ -273,7 +273,7 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/contracts",
|
||||
"version": "v12.53.0",
|
||||
"version": "v12.54.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/contracts.git",
|
||||
@@ -321,16 +321,16 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/filesystem",
|
||||
"version": "v12.53.0",
|
||||
"version": "v12.54.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/filesystem.git",
|
||||
"reference": "c4c3f8612f218afcf09f3c7f5c7dc9e282626800"
|
||||
"reference": "b91eede30e1bde98cb51fb4c4f28269a8dea593e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/filesystem/zipball/c4c3f8612f218afcf09f3c7f5c7dc9e282626800",
|
||||
"reference": "c4c3f8612f218afcf09f3c7f5c7dc9e282626800",
|
||||
"url": "https://api.github.com/repos/illuminate/filesystem/zipball/b91eede30e1bde98cb51fb4c4f28269a8dea593e",
|
||||
"reference": "b91eede30e1bde98cb51fb4c4f28269a8dea593e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -384,11 +384,11 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2026-02-13T20:26:32+00:00"
|
||||
"time": "2026-03-09T14:26:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "illuminate/macroable",
|
||||
"version": "v12.53.0",
|
||||
"version": "v12.54.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/macroable.git",
|
||||
@@ -434,16 +434,16 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/reflection",
|
||||
"version": "v12.53.0",
|
||||
"version": "v12.54.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/reflection.git",
|
||||
"reference": "6188e97a587371b9951c2a7e337cd760308c17d7"
|
||||
"reference": "348cf5da9de89b596d7723be6425fb048e2bf4bb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/reflection/zipball/6188e97a587371b9951c2a7e337cd760308c17d7",
|
||||
"reference": "6188e97a587371b9951c2a7e337cd760308c17d7",
|
||||
"url": "https://api.github.com/repos/illuminate/reflection/zipball/348cf5da9de89b596d7723be6425fb048e2bf4bb",
|
||||
"reference": "348cf5da9de89b596d7723be6425fb048e2bf4bb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -481,20 +481,20 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2026-02-04T15:21:22+00:00"
|
||||
"time": "2026-02-25T15:25:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "illuminate/support",
|
||||
"version": "v12.53.0",
|
||||
"version": "v12.54.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/support.git",
|
||||
"reference": "18d7d75366ddb9eded3b7f05173f791da47faf34"
|
||||
"reference": "e54208c0b5693becd8d3bec02f07e8db9aa4f512"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/support/zipball/18d7d75366ddb9eded3b7f05173f791da47faf34",
|
||||
"reference": "18d7d75366ddb9eded3b7f05173f791da47faf34",
|
||||
"url": "https://api.github.com/repos/illuminate/support/zipball/e54208c0b5693becd8d3bec02f07e8db9aa4f512",
|
||||
"reference": "e54208c0b5693becd8d3bec02f07e8db9aa4f512",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -561,20 +561,20 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2026-02-23T15:44:06+00:00"
|
||||
"time": "2026-03-06T15:24:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/prompts",
|
||||
"version": "v0.3.13",
|
||||
"version": "v0.3.14",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/prompts.git",
|
||||
"reference": "ed8c466571b37e977532fb2fd3c272c784d7050d"
|
||||
"reference": "9f0e371244eedfe2ebeaa72c79c54bb5df6e0176"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/ed8c466571b37e977532fb2fd3c272c784d7050d",
|
||||
"reference": "ed8c466571b37e977532fb2fd3c272c784d7050d",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/9f0e371244eedfe2ebeaa72c79c54bb5df6e0176",
|
||||
"reference": "9f0e371244eedfe2ebeaa72c79c54bb5df6e0176",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -618,22 +618,22 @@
|
||||
"description": "Add beautiful and user-friendly forms to your command-line applications.",
|
||||
"support": {
|
||||
"issues": "https://github.com/laravel/prompts/issues",
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.3.13"
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.3.14"
|
||||
},
|
||||
"time": "2026-02-06T12:17:10+00:00"
|
||||
"time": "2026-03-01T09:02:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
"version": "3.11.1",
|
||||
"version": "3.11.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/CarbonPHP/carbon.git",
|
||||
"reference": "f438fcc98f92babee98381d399c65336f3a3827f"
|
||||
"reference": "6a7e652845bb018c668220c2a545aded8594fbbf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/f438fcc98f92babee98381d399c65336f3a3827f",
|
||||
"reference": "f438fcc98f92babee98381d399c65336f3a3827f",
|
||||
"url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/6a7e652845bb018c668220c2a545aded8594fbbf",
|
||||
"reference": "6a7e652845bb018c668220c2a545aded8594fbbf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -725,7 +725,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2026-01-29T09:26:29+00:00"
|
||||
"time": "2026-03-11T17:23:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/clock",
|
||||
@@ -958,16 +958,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v7.4.6",
|
||||
"version": "v7.4.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "6d643a93b47398599124022eb24d97c153c12f27"
|
||||
"reference": "e1e6770440fb9c9b0cf725f81d1361ad1835329d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/6d643a93b47398599124022eb24d97c153c12f27",
|
||||
"reference": "6d643a93b47398599124022eb24d97c153c12f27",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/e1e6770440fb9c9b0cf725f81d1361ad1835329d",
|
||||
"reference": "e1e6770440fb9c9b0cf725f81d1361ad1835329d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1032,7 +1032,7 @@
|
||||
"terminal"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/console/tree/v7.4.6"
|
||||
"source": "https://github.com/symfony/console/tree/v7.4.7"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1052,7 +1052,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2026-02-25T17:02:47+00:00"
|
||||
"time": "2026-03-06T14:06:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
@@ -2495,11 +2495,11 @@
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
"version": "2.1.40",
|
||||
"version": "2.1.41",
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b",
|
||||
"reference": "9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/a2eae8f20856b3afe74bf1f9726ce8c11438e300",
|
||||
"reference": "a2eae8f20856b3afe74bf1f9726ce8c11438e300",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2544,7 +2544,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2026-02-23T15:04:35+00:00"
|
||||
"time": "2026-03-16T18:24:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
|
||||
@@ -7,19 +7,19 @@
|
||||
}:
|
||||
php.buildComposerProject2 (finalAttrs: {
|
||||
pname = "laravel";
|
||||
version = "5.24.7";
|
||||
version = "5.24.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "laravel";
|
||||
repo = "installer";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-szyoqX4wgJpQZO9H/WVq70A5n/3qV1SdBCKQc9vm4WY=";
|
||||
hash = "sha256-RlY6is5rRks2mXdE2/EXuSWX2CxJuK+q8yfsDcZMFBo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
composerLock = ./composer.lock;
|
||||
vendorHash = "sha256-yX6EmbopVUpbbVBfep1Rk84wUK5sxjrlzvii+s39SqA=";
|
||||
vendorHash = "sha256-o7YryCZjTm/O4ts21NjODqacdXnjWZUH8Dmr8fPnDEg=";
|
||||
|
||||
# Adding npm (nodejs) and php composer to path
|
||||
postInstall = ''
|
||||
|
||||
@@ -31,15 +31,15 @@
|
||||
writeScript,
|
||||
}:
|
||||
let
|
||||
id = "354596705";
|
||||
id = "373278730";
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "multiviewer-for-f1";
|
||||
version = "2.5.1";
|
||||
version = "2.7.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://releases.multiviewer.dev/download/${id}/multiviewer_${finalAttrs.version}_amd64.deb";
|
||||
hash = "sha256-9ts5CZD14CzJHiC3YoKWIEKiFpOrcUX1tRUhE4it5Mo=";
|
||||
url = "https://releases.multiviewer.app/download/${id}/multiviewer_${finalAttrs.version}_amd64.deb";
|
||||
hash = "sha256-BKXw8a4fUT+B7KBc6p/Heo+sAtWAG5b/D2iohuNOotY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -29,13 +29,13 @@
|
||||
lndir,
|
||||
}:
|
||||
let
|
||||
version = "2.20.10";
|
||||
version = "2.20.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "paperless-ngx";
|
||||
repo = "paperless-ngx";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-4kc1LyqcVKHQ/WnsZOL0zanbLIv27CGGgNZXVFBwCgQ=";
|
||||
hash = "sha256-Bn5k6h80nSNxWYsIpqVLXp+udzxDCY8f/jbgDvyATM0=";
|
||||
};
|
||||
|
||||
python = python3.override {
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "piday25";
|
||||
version = "0-unstable-2025-03-13";
|
||||
version = "0-unstable-2026-03-18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elkasztano";
|
||||
repo = "piday25";
|
||||
rev = "68b417a3016c58a2948cb3b39c9bde985d82bdb8";
|
||||
hash = "sha256-58ZBRmB990Tp+/nkuRZA+8cjCRFUBzdzu93Sk5uvKOE=";
|
||||
rev = "3fdeb37e33572c0924fc8f23a62824df8f6a9496";
|
||||
hash = "sha256-iNc6NUEekk793j3Ob02H9NB4SH1anYsWzixr8OiglOE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-3uztB5/VevFyEz3S+VlAUPgDrNDJcwaTnHuXXYAX+MY=";
|
||||
|
||||
Generated
+1021
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,146 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
gradle_9,
|
||||
jdk25_headless,
|
||||
makeBinaryWrapper,
|
||||
nix-update-script,
|
||||
versionCheckHook,
|
||||
zig,
|
||||
}:
|
||||
|
||||
let
|
||||
jdk = jdk25_headless;
|
||||
gradle = gradle_9;
|
||||
gradleOverlay = gradle.override { java = jdk; };
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pkl-lsp";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "apple";
|
||||
repo = "pkl-lsp";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-V6MrDpdh4jnSiXWD0UbF/XXpLa95smCbdj9/jT0Xb3w=";
|
||||
leaveDotGit = true;
|
||||
postFetch = ''
|
||||
pushd $out
|
||||
git rev-parse HEAD | tr -d '\n' > .commit-hash
|
||||
rm -rf .git
|
||||
popd
|
||||
'';
|
||||
};
|
||||
|
||||
# Dependencies for tree-sitter compilation specific versions from gradle/libs.versions.toml
|
||||
treeSitterSrc = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter";
|
||||
rev = "v0.25.3";
|
||||
hash = "sha256-xafeni6Z6QgPiKzvhCT2SyfPn0agLHo47y+6ExQXkzE=";
|
||||
};
|
||||
treeSitterPklSrc = fetchFromGitHub {
|
||||
owner = "apple";
|
||||
repo = "tree-sitter-pkl";
|
||||
rev = "v0.20.0";
|
||||
hash = "sha256-HfZ2NwO466Le2XFP1LZ2fLJgCq4Zq6hVpjChzsIoQgA=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace buildSrc/src/main/kotlin/BuildInfo.kt \
|
||||
--replace-fail 'val jdkVersion: Int = 22' \
|
||||
'val jdkVersion: Int = ${lib.versions.major jdk.version}' \
|
||||
--replace-fail 'val executable: Path get() = installDir.resolve(if (os.isWindows) "zig.exe" else "zig")' \
|
||||
'val executable: Path get() = java.nio.file.Path.of("${lib.getExe zig}")' \
|
||||
|
||||
substituteInPlace build.gradle.kts \
|
||||
--replace-fail 'dependsOn(setupTreeSitterRepo)' "" \
|
||||
--replace-fail 'dependsOn(setupTreeSitterPklRepo)' "" \
|
||||
--replace-fail 'dependsOn(tasks.named("installZig"))' ""
|
||||
|
||||
# Ensure all pkl-cli platform variants are cached
|
||||
# Otherwise, deps.json only includes the current system's pkl-cli, and the tests fail
|
||||
cat >> build.gradle.kts << 'GRADLE_PATCH'
|
||||
val pklCliAllPlatforms by configurations.creating
|
||||
dependencies {
|
||||
for (platform in listOf("linux-amd64", "linux-aarch64", "macos-amd64", "macos-aarch64")) {
|
||||
pklCliAllPlatforms("org.pkl-lang:pkl-cli-$platform:''${libs.versions.pkl.get()}")
|
||||
}
|
||||
}
|
||||
GRADLE_PATCH
|
||||
|
||||
mkdir -p build/repos/{tree-sitter,tree-sitter-pkl}
|
||||
cp -r $treeSitterSrc/* build/repos/tree-sitter/
|
||||
cp -r $treeSitterPklSrc/* build/repos/tree-sitter-pkl/
|
||||
chmod +w -R build/repos/{tree-sitter,tree-sitter-pkl}
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
gradleOverlay
|
||||
makeBinaryWrapper
|
||||
zig
|
||||
];
|
||||
|
||||
mitmCache = gradle.fetchDeps {
|
||||
inherit (finalAttrs) pname;
|
||||
data = ./deps.json;
|
||||
};
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
gradleFlags = [
|
||||
"-DreleaseBuild=true"
|
||||
"-Dfile.encoding=utf-8"
|
||||
"-Porg.gradle.java.installations.auto-download=false"
|
||||
"-Porg.gradle.java.installations.auto-detect=false"
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
gradleFlagsArray+=(-DcommitId=$(cat .commit-hash))
|
||||
'';
|
||||
|
||||
# running the checkPhase replaces the .jar produced by the buildPhase, and leads to this error:
|
||||
# Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
|
||||
# at org.pkl.lsp.cli.Main.main(Main.kt)
|
||||
# Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
|
||||
doCheck = false;
|
||||
|
||||
postInstallCheck = ''
|
||||
gradle test
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -D build/libs/pkl-lsp-${finalAttrs.version}.jar $out/lib/pkl-lsp/pkl-lsp.jar
|
||||
|
||||
makeWrapper ${lib.getExe' jdk "java"} $out/bin/pkl-lsp \
|
||||
--add-flags "-jar $out/lib/pkl-lsp/pkl-lsp.jar"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "The Pkl Language Server";
|
||||
homepage = "https://pkl-lang.org/lsp/current/index.html";
|
||||
downloadPage = "https://github.com/apple/pkl-lsp";
|
||||
changelog = "https://pkl-lang.org/lsp/current/CHANGELOG.html#release-${finalAttrs.version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ ryota2357 ];
|
||||
mainProgram = "pkl-lsp";
|
||||
platforms = lib.lists.intersectLists (
|
||||
lib.platforms.x86_64 ++ lib.platforms.aarch64
|
||||
) jdk.meta.platforms;
|
||||
sourceProvenance = with lib.sourceTypes; [
|
||||
fromSource
|
||||
binaryBytecode # mitm cache
|
||||
binaryNativeCode # mitm cache
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -6,10 +6,10 @@
|
||||
}:
|
||||
let
|
||||
pname = "remnote";
|
||||
version = "1.24.0";
|
||||
version = "1.24.7";
|
||||
src = fetchurl {
|
||||
url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage";
|
||||
hash = "sha256-OV8o2AOoDXdz02tXbtelcIOVOT3PIiBYJf38mRuvWdM=";
|
||||
hash = "sha256-W4KM7QgkO+5Rr12IxlTlqp63LAakUJlMOX68JWBet6c=";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 { inherit pname version src; };
|
||||
in
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
makeWrapper,
|
||||
electron_39,
|
||||
electron_40,
|
||||
vulkan-loader,
|
||||
makeDesktopItem,
|
||||
copyDesktopItems,
|
||||
@@ -18,20 +18,20 @@
|
||||
}:
|
||||
|
||||
let
|
||||
electron = electron_39;
|
||||
electron = electron_40;
|
||||
in
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "shogihome";
|
||||
version = "1.26.1";
|
||||
version = "1.27.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sunfish-shogi";
|
||||
repo = "shogihome";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-7kDk85tN4uP0WJnof8yyn0M85Qairls5ZqhKwwhRQxc=";
|
||||
hash = "sha256-T1MgcqCi9rwN86vgCAshokznMXh+masFLcO43sz2bo0=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-Sft5fEf86o1uUJ+yszx9XgQBGNRc+9aKRyR5rOelgQw=";
|
||||
npmDepsHash = "sha256-5tZQCxql6jZAEU+e/hkQYnaHy1l5dWaH/p2rbGDAX14=";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace package.json \
|
||||
|
||||
@@ -199,6 +199,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# Not sure why this fails
|
||||
+ lib.optionalString stdenv.hostPlatform.isAarch64 ''
|
||||
rm llvm/test/tools/llvm-exegesis/AArch64/latency-by-opcode-name.s
|
||||
''
|
||||
# The second llvm-install-name-tool invocation fails with
|
||||
# "is not a Mach-O file" on aarch64-linux, even on a fresh copy of
|
||||
# the original yaml2obj output. Root cause unknown.
|
||||
+ lib.optionalString stdenv.hostPlatform.isAarch64 ''
|
||||
rm llvm/test/tools/llvm-objcopy/MachO/install-name-tool-change.test
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "vacuum-tube";
|
||||
version = "1.6.0";
|
||||
version = "1.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "shy1132";
|
||||
repo = "VacuumTube";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-BnFI517pXKsHQ8AJMRzAlXBTLMLhjyEasIhZdSHtyC0=";
|
||||
hash = "sha256-DbcJJ9FL9LPCQrg6lGa5N9KC8stXLdaMI+2hKAiZFxQ=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-R7DISsTJv/DDi8uJTWF+6/P8K86BguxtZNsaL2qCxhY=";
|
||||
npmDepsHash = "sha256-/TAGGiNuT7YC29U9n6M+zD51kecbAPXzzEJU5ey1hXs=";
|
||||
makeCacheWritable = true;
|
||||
|
||||
env = {
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
}:
|
||||
let
|
||||
pname = "volanta";
|
||||
version = "1.15.3";
|
||||
build = "64ba2e0c";
|
||||
version = "1.16.3";
|
||||
build = "581a1e68";
|
||||
src = fetchurl {
|
||||
url = "https://cdn.volanta.app/software/volanta-app/${version}-${build}/volanta-${version}.AppImage";
|
||||
hash = "sha256-rTonFExYHXLuRWf98IsNE7KqGrRMRC+Hke6CGKJWLAA=";
|
||||
hash = "sha256-5187tE37dRyqjBa8P0Jwio2lBd8qd+tEZgl/98nGQy8=";
|
||||
};
|
||||
appImageContents = appimageTools.extract { inherit pname version src; };
|
||||
in
|
||||
|
||||
@@ -9,20 +9,20 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "vultisig-cli";
|
||||
version = "0.5.0";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vultisig";
|
||||
repo = "vultisig-sdk";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-vpWoKxdiUSSI8xGYXmnduJnB3zB3jpBMxz+9eGXJgvM=";
|
||||
hash = "sha256-eQvWD0Jubtp0wfmuTBN4Mr4rKqoEvMiAGI5D8GAHYDY=";
|
||||
};
|
||||
|
||||
missingHashes = ./missing-hashes.json;
|
||||
|
||||
offlineCache = yarn-berry.fetchYarnBerryDeps {
|
||||
inherit (finalAttrs) src missingHashes;
|
||||
hash = "sha256-ZJfLfaTvJKyCh4FtOs7IyZskBBjrJLjI0/9hphclFvU=";
|
||||
hash = "sha256-SQ2C01dVSzJwzCvJUclcSiGTPz7RJfO3fYPCZbvnAHk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -7,17 +7,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "zed-discord-presence";
|
||||
version = "0.10.1";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xhyrom";
|
||||
repo = "zed-discord-presence";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-7bTLMrvcgT5/ziyD4ieDGx7218rezQToHqAwEAwYB/E=";
|
||||
hash = "sha256-HmSJipRWVB1rXyO5ZK1ksyCLDzSJD820Klo88A7NLx4=";
|
||||
};
|
||||
|
||||
cargoBuildFlags = [ "--package discord-presence-lsp" ];
|
||||
cargoHash = "sha256-cOG9VeKdi1mSYpOPGYXLwHksEKJypvSK6vMFaO7TYBg=";
|
||||
cargoHash = "sha256-x9sB90jW7v2SGggLILgLbBfFV7DkJazcrUiKAfIroMA=";
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
lib,
|
||||
mkCoqDerivation,
|
||||
coq,
|
||||
ceres-bs,
|
||||
equations,
|
||||
metarocq-erasure-plugin,
|
||||
version ? null,
|
||||
}:
|
||||
|
||||
(mkCoqDerivation {
|
||||
pname = "CakeMLExtraction";
|
||||
owner = "peregrine-project";
|
||||
repo = "cakeml-backend";
|
||||
opam-name = "rocq-cakeml-extraction";
|
||||
|
||||
inherit version;
|
||||
defaultVersion =
|
||||
let
|
||||
case = coq: mr: out: {
|
||||
cases = [
|
||||
coq
|
||||
mr
|
||||
];
|
||||
inherit out;
|
||||
};
|
||||
in
|
||||
with lib.versions;
|
||||
lib.switch
|
||||
[
|
||||
coq.coq-version
|
||||
metarocq-erasure-plugin.version
|
||||
]
|
||||
[
|
||||
(case (range "9.0" "9.1") (range "1.4" "1.5.1") "0.1.0")
|
||||
]
|
||||
null;
|
||||
release = {
|
||||
"0.1.0".sha256 = "sha256-diDUTj0l4vliov9+Lg8lNRdkLE7JAfJn8OU7J/HgmDE=";
|
||||
};
|
||||
releaseRev = v: "v${v}";
|
||||
|
||||
mlPlugin = false;
|
||||
useDune = false;
|
||||
|
||||
buildInputs = [
|
||||
equations
|
||||
metarocq-erasure-plugin
|
||||
ceres-bs
|
||||
];
|
||||
propagatedBuildInputs = [ coq.ocamlPackages.findlib ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://peregrine-project.github.io/";
|
||||
description = "CakeML backend for Peregrine";
|
||||
maintainers = with maintainers; [ _4ever2 ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
pkg-config,
|
||||
mkCoqDerivation,
|
||||
coq,
|
||||
wasmcert,
|
||||
compcert,
|
||||
metarocq-erasure-plugin,
|
||||
metarocq-safechecker-plugin,
|
||||
ExtLib,
|
||||
version ? null,
|
||||
}:
|
||||
|
||||
with lib;
|
||||
mkCoqDerivation {
|
||||
pname = "CertiRocq";
|
||||
owner = "CertiRocq";
|
||||
repo = "certirocq";
|
||||
opam-name = "rocq-certirocq";
|
||||
mlPlugin = true;
|
||||
|
||||
inherit version;
|
||||
defaultVersion =
|
||||
let
|
||||
case = coq: mr: out: {
|
||||
cases = [
|
||||
coq
|
||||
mr
|
||||
];
|
||||
inherit out;
|
||||
};
|
||||
in
|
||||
lib.switch
|
||||
[
|
||||
coq.coq-version
|
||||
metarocq-erasure-plugin.version
|
||||
]
|
||||
[
|
||||
(case "9.1" "1.5.1-9.1" "0.9.1+9.1")
|
||||
]
|
||||
null;
|
||||
release = {
|
||||
"0.9.1+9.1".sha256 = "sha256-YsweBaoq8+QG63e7Llp/4bHldAFnSQSyMumJkb+Bsp0=";
|
||||
};
|
||||
releaseRev = v: "v${v}";
|
||||
|
||||
buildInputs = [
|
||||
pkgs.clang
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
wasmcert
|
||||
compcert
|
||||
ExtLib
|
||||
metarocq-erasure-plugin
|
||||
metarocq-safechecker-plugin
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
patchShebangs ./configure.sh
|
||||
patchShebangs ./clean_extraction.sh
|
||||
patchShebangs ./make_plugin.sh
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
./configure.sh local
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
make all
|
||||
make plugins
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
OUTDIR=$out/lib/coq/${coq.coq-version}/user-contrib
|
||||
|
||||
DST=$OUTDIR/CertiRocq/Plugin/runtime make -C runtime install
|
||||
COQLIBINSTALL=$OUTDIR make -C theories install
|
||||
COQLIBINSTALL=$OUTDIR make -C libraries install
|
||||
COQLIBINSTALL=$OUTDIR COQPLUGININSTALL=$OCAMLFIND_DESTDIR make -C plugin install
|
||||
COQLIBINSTALL=$OUTDIR COQPLUGININSTALL=$OCAMLFIND_DESTDIR make -C cplugin install
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "CertiRocq";
|
||||
maintainers = with maintainers; [
|
||||
womeier
|
||||
_4ever2
|
||||
];
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
||||
@@ -8,7 +8,6 @@
|
||||
libGL,
|
||||
openal,
|
||||
luajit,
|
||||
lua5_1,
|
||||
freetype,
|
||||
physfs,
|
||||
libmodplug,
|
||||
@@ -22,14 +21,14 @@
|
||||
cmake,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "love";
|
||||
version = "11.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "love2d";
|
||||
repo = "love";
|
||||
rev = version;
|
||||
tag = finalAttrs.version;
|
||||
sha256 = "sha256-wZktNh4UB3QH2wAIIlnYUlNoXbjEDwUmPnT4vesZNm0=";
|
||||
};
|
||||
|
||||
@@ -40,7 +39,7 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [
|
||||
SDL2
|
||||
openal
|
||||
(if stdenv.isDarwin then lua5_1 else luajit)
|
||||
luajit
|
||||
freetype
|
||||
physfs
|
||||
libmodplug
|
||||
@@ -51,7 +50,7 @@ stdenv.mkDerivation rec {
|
||||
which
|
||||
libtool
|
||||
]
|
||||
++ lib.optionals stdenv.isLinux [
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
libx11 # SDL2 optional depend, for SDL_syswm.h
|
||||
libGLU
|
||||
libGL
|
||||
@@ -61,9 +60,10 @@ stdenv.mkDerivation rec {
|
||||
# On Darwin, autotools doesn't compile macOS-specific module (src/common/macosx.mm),
|
||||
# leading to stubbed functions and segfaults
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5" # Required by LÖVE's CMakeLists.txt
|
||||
"-DCMAKE_SKIP_BUILD_RPATH=ON" # Don't include build directory in RPATH
|
||||
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" # Use install RPATH even during build
|
||||
(lib.cmakeFeature "CMAKE_POLICY_VERSION_MINIMUM" "3.5") # Required by LÖVE's CMakeLists.txt
|
||||
(lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) # Don't include build directory in RPATH
|
||||
(lib.cmakeBool "CMAKE_BUILD_WITH_INSTALL_RPATH" true) # Use install RPATH even during build
|
||||
(lib.cmakeBool "LOVE_JIT" true) # Enable LuaJIT support even though it is warned about for Apple
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3
|
||||
@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
|
||||
cp $src/platform/unix/love.6 $out/share/man/man1/love.1
|
||||
gzip -9n $out/share/man/man1/love.1
|
||||
''
|
||||
+ lib.optionalString stdenv.isLinux ''
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
# Install Linux-specific files (desktop, mime, icons)
|
||||
mkdir -p $out/share/applications
|
||||
mkdir -p $out/share/mime/packages
|
||||
@@ -112,4 +112,4 @@ stdenv.mkDerivation rec {
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
maintainers = [ lib.maintainers.raskin ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "gvm-tools";
|
||||
version = "25.4.8";
|
||||
version = "25.4.9";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "greenbone";
|
||||
repo = "gvm-tools";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-tKUaUo9Sr4d9mLdbbmn+OmAgUcEuwWSzCYY4BPJ4UKw=";
|
||||
hash = "sha256-dt7njGUqi6zfwUz0gSdOHWnSUJ+yJ7qJ3RttoPweR3c=";
|
||||
};
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "osc";
|
||||
version = "1.24.0";
|
||||
version = "1.25.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openSUSE";
|
||||
repo = "osc";
|
||||
rev = version;
|
||||
hash = "sha256-EPt+HTvDhBEs1sf1yrG+aawRcP1yd/+kY4OTeVHHFt4=";
|
||||
hash = "sha256-ES4HhWlJx7fRf9rXWBeAANyCy1eC1Rz6yFczXvQ66Vo=";
|
||||
};
|
||||
|
||||
buildInputs = [ bashInteractive ]; # needed for bash-completion helper
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "polyswarm-api";
|
||||
version = "3.16.0";
|
||||
version = "3.17.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "polyswarm";
|
||||
repo = "polyswarm-api";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-mdsgHwbGThy2Lzvgzb0mItwJkNspLiqGZzBGGuQdatM=";
|
||||
hash = "sha256-nL+DolLBnw/yahNqeCYtepAMFw4yHWXTajz3+KxF9R8=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -21,8 +21,8 @@ let
|
||||
in
|
||||
buildMongoDB {
|
||||
inherit avxSupport;
|
||||
version = "7.0.30";
|
||||
hash = "sha256-z0stPphy9EliDkanlDCHJ+ck3p1gUTMQ83uOW7kvlmI=";
|
||||
version = "7.0.31";
|
||||
hash = "sha256-Vk/XsnYut0Hfad/X6LZw6gJX1NHc4/6XT8y1KehpLMk=";
|
||||
patches = [
|
||||
# ModuleNotFoundError: No module named 'mongo_tooling_metrics':
|
||||
# NameError: name 'SConsToolingMetrics' is not defined:
|
||||
|
||||
@@ -68,9 +68,11 @@ let
|
||||
callPackage ../development/coq-modules/bignums { }
|
||||
else
|
||||
null;
|
||||
CakeMLExtraction = callPackage ../development/coq-modules/CakeMLExtraction { };
|
||||
category-theory = callPackage ../development/coq-modules/category-theory { };
|
||||
ceres = callPackage ../development/coq-modules/ceres { };
|
||||
ceres-bs = callPackage ../development/coq-modules/ceres-bs { };
|
||||
CertiRocq = callPackage ../development/coq-modules/CertiRocq { };
|
||||
Cheerios = callPackage ../development/coq-modules/Cheerios { };
|
||||
coinduction = callPackage ../development/coq-modules/coinduction { };
|
||||
CoLoR = callPackage ../development/coq-modules/CoLoR (
|
||||
|
||||
Reference in New Issue
Block a user