push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
{
lib,
stdenv,
fetchFromGitHub,
pnpm,
nodejs,
nix-update-script,
makeBinaryWrapper,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vue-language-server";
version = "3.0.7";
src = fetchFromGitHub {
owner = "vuejs";
repo = "language-tools";
rev = "v${finalAttrs.version}";
hash = "sha256-oiQUEUBOZrTB7BhRmc4HEGTpbOGGSCiTlO/Cn0sBNtU=";
};
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
hash = "sha256-BKiTGANch9phNN+zVpPzA+E4MtpM/G3yLiEQObtKLmI=";
};
nativeBuildInputs = [
nodejs
pnpm.configHook
makeBinaryWrapper
];
buildPhase = ''
runHook preBuild
pnpm run build packages/language-server
runHook postBuild
'';
preInstall = ''
# the mv commands are workaround for https://github.com/pnpm/pnpm/issues/8307
mv packages packages.dontpruneme
CI=true pnpm prune --prod
find packages.dontpruneme/**/node_modules -xtype l -delete
mv packages.dontpruneme packages
find -type f \( -name "*.ts" -o -name "*.map" \) -exec rm -rf {} +
# https://github.com/pnpm/pnpm/issues/3645
find node_modules packages/language-server/node_modules -xtype l -delete
# remove non-deterministic files
rm node_modules/.modules.yaml node_modules/.pnpm-workspace-state-v1.json
'';
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib/language-tools}
cp -r {node_modules,packages,extensions} $out/lib/language-tools/
makeWrapper ${lib.getExe nodejs} $out/bin/vue-language-server \
--inherit-argv0 \
--add-flags $out/lib/language-tools/packages/language-server/bin/vue-language-server.js
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Official Vue.js language server";
homepage = "https://github.com/vuejs/language-tools#readme";
changelog = "https://github.com/vuejs/language-tools/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ friedow ];
mainProgram = "vue-language-server";
};
})

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchurl,
jre,
runtimeShell,
}:
stdenv.mkDerivation rec {
pname = "vue";
version = "3.3.0";
src = fetchurl {
url = "http://releases.atech.tufts.edu/jenkins/job/VUE/116/deployedArtifacts/download/artifact.1";
sha256 = "0yfzr80pw632lkayg4qfmwzrqk02y30yz8br7isyhmgkswyp5rnx";
};
dontUnpack = true;
installPhase = ''
mkdir -p "$out"/{share/vue,bin}
cp ${src} "$out/share/vue/vue.jar"
echo '#!${runtimeShell}' >> "$out/bin/vue"
echo '${jre}/bin/java -jar "'"$out/share/vue/vue.jar"'" "$@"' >> "$out/bin/vue"
chmod a+x "$out/bin/vue"
'';
meta = {
description = "Visual Understanding Environment - mind mapping software";
maintainers = with lib.maintainers; [ raskin ];
platforms = with lib.platforms; linux;
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
license = lib.licenses.ecl20;
mainProgram = "vue";
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
nix-update-script,
}:
buildNpmPackage rec {
pname = "vuetorrent";
version = "2.29.0";
src = fetchFromGitHub {
owner = "VueTorrent";
repo = "VueTorrent";
tag = "v${version}";
hash = "sha256-EnyLMaLElgGUjwxpkhTxV7aVa8l5B5wpBBzg5qyagIQ=";
};
npmDepsHash = "sha256-JA5nl+otuyloSi7JPRb8ZJe6PRAaYxuuEpqlmLE65yU=";
installPhase = ''
runHook preInstall
mkdir -p $out/share
cp -r vuetorrent $out/share/vuetorrent
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Full-featured BitTorrent client written in Vue";
homepage = "https://github.com/VueTorrent/VueTorrent";
changelog = "https://github.com/VueTorrent/VueTorrent/releases/tag/${src.tag}";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ redxtech ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "vul";
version = "0-unstable-2022-07-02";
src = fetchFromGitHub {
owner = "LukeSmithxyz";
repo = "vul";
rev = "97efaedb79c9de62b6a19b04649fd8c00b85973f";
sha256 = "sha256-NwRUx7WVvexrCdPtckq4Szf5ISy7NVBHX8uAsRtbE+0=";
};
makeFlags = [
"PREFIX=${placeholder "out"}"
];
meta = with lib; {
description = "Latin Vulgate Bible on the Command Line";
homepage = "https://github.com/LukeSmithxyz/vul";
license = licenses.publicDomain;
maintainers = [
maintainers.j0hax
maintainers.cafkafk
];
mainProgram = "vul";
};
}

View File

@@ -0,0 +1,153 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
runCommand,
cmake,
ffmpeg,
glslang,
libdrm,
libglvnd,
libffi,
libpng,
libX11,
libXau,
libXdmcp,
libxcb,
makeWrapper,
mesa,
ninja,
pkg-config,
python3,
spirv-headers,
vulkan-headers,
vulkan-loader,
vulkan-utility-libraries,
wayland,
wayland-protocols,
wayland-scanner,
zlib,
}:
let
renderdoc = fetchurl {
url = "https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h";
hash = "sha256-57XwqlsbDq3GOhxiTAyn9a8TOqhX1qQnGw7z0L22ho4=";
};
# The build system expects all these dependencies inside the external folder and
# does not search for system-wide installations.
# It also expects the version specified in the repository, which can be incompatible
# with the version in nixpkgs (e.g. for SPIRV-Headers), so we don't want to patch in our packages.
# The revisions are extracted from https://github.com/KhronosGroup/VK-GL-CTS/blob/main/external/fetch_sources.py#L290
# with the vk-cts-sources.py script.
sources = import ./sources.nix { inherit fetchurl fetchFromGitHub; };
in
stdenv.mkDerivation (finalAttrs: {
pname = "vulkan-cts";
version = "1.4.3.3";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "VK-GL-CTS";
rev = "vulkan-cts-${finalAttrs.version}";
hash = "sha256-bhbk2ayY4syyUXJcYesRlVFArAVhivTjELvM8uuNzEQ=";
};
prePatch = ''
mkdir -p external/renderdoc/src
cp -r ${renderdoc} external/renderdoc/src/renderdoc_app.h
${sources.prePatch}
substituteInPlace external/vulkan-validationlayers/CMakeLists.txt \
--replace-fail 'UPDATE_DEPS ON' 'UPDATE_DEPS OFF'
substituteInPlace external/vulkan-video-samples/src/cmake/FindVulkanSDK.cmake \
--replace-fail 'GIT_TAG main' 'GIT_TAG main FIND_PACKAGE_ARGS NAMES VulkanHeaders'
chmod u+w -R external
'';
buildInputs = [
ffmpeg
libdrm
libffi
libglvnd
libpng
libX11
libXau
libXdmcp
libxcb
vulkan-headers
vulkan-utility-libraries
wayland
wayland-protocols
zlib
];
nativeBuildInputs = [
cmake
makeWrapper
ninja
pkg-config
python3
wayland-scanner
];
depsBuildBuild = [
pkg-config
];
cmakeFlags = [
# Fix cts cmake not coping with absolute install dirs
"-DCMAKE_INSTALL_BINDIR=bin"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
"-DWAYLAND_SCANNER=wayland-scanner"
# For vulkan-validation-layers
"-DGLSLANG_INSTALL_DIR=${glslang}"
"-DSPIRV_HEADERS_INSTALL_DIR=${spirv-headers}"
"-DSELECTED_BUILD_TARGETS=deqp-vk"
];
postInstall = ''
# Check that nothing was installed so far
! test -e $out
mkdir -p $out/bin $out/archive-dir
cp -a external/vulkancts/modules/vulkan/deqp-vk $out/bin/
cp -a external/vulkancts/modules/vulkan/vulkan $out/archive-dir/
cp -a external/vulkancts/modules/vulkan/vk-default $out/
'';
postFixup = ''
patchelf --add-rpath "${vulkan-loader}/lib" --add-needed "libvulkan.so" $out/bin/deqp-vk
wrapProgram $out/bin/deqp-vk \
--add-flags "--deqp-archive-dir=$out/archive-dir"
'';
passthru.updateScript = ./update.sh;
passthru.tests.lavapipe =
runCommand "vulkan-cts-tests-lavapipe"
{
nativeBuildInputs = [
finalAttrs.finalPackage
mesa.llvmpipeHook
];
}
''
deqp-vk -n dEQP-VK.api.smoke.triangle
touch $out
'';
meta = with lib; {
description = "Khronos Vulkan Conformance Tests";
homepage = "https://github.com/KhronosGroup/VK-GL-CTS/blob/main/external/vulkancts/README.md";
changelog = "https://github.com/KhronosGroup/VK-GL-CTS/releases/tag/vulkan-cts-${finalAttrs.version}";
license = licenses.asl20;
maintainers = with maintainers; [ Flakebi ];
};
})

View File

@@ -0,0 +1,88 @@
# Autogenerated from vk-cts-sources.py
{ fetchurl, fetchFromGitHub }:
rec {
amber = fetchFromGitHub {
owner = "google";
repo = "amber";
rev = "57ba1ca211b6f4890c013dcf42cb16069ae916dd";
hash = "sha256-mV9Eb+4rWDLAYCwyhAY42uuc8WqWwoOvT/Q8ov/2ISA=";
};
glslang = fetchFromGitHub {
owner = "KhronosGroup";
repo = "glslang";
rev = "963588074b26326ff0426c8953c1235213309bdb";
hash = "sha256-HLmTUILBohdM99H8UTyuzo1rTVKONkfCpniVWcvE2W8=";
};
jsoncpp = fetchFromGitHub {
owner = "open-source-parsers";
repo = "jsoncpp";
rev = "9059f5cad030ba11d37818847443a53918c327b1";
hash = "sha256-m0tz8w8HbtDitx3Qkn3Rxj/XhASiJVkThdeBxIwv3WI=";
};
nvidia-video-samples = fetchFromGitHub {
owner = "Igalia";
repo = "vk_video_samples";
rev = "45fe88b456c683120138f052ea81f0a958ff3ec4";
hash = "sha256-U5IoiRKXsdletVlnHVz8rgMEwDOZFAuld5Bzs0rvcR4=";
};
spirv-headers = fetchFromGitHub {
owner = "KhronosGroup";
repo = "SPIRV-Headers";
rev = "6d0784e9f1ab92c17eeea94821b2465c14a52be9";
hash = "sha256-zAkAK3Dry7YM2xVs1Uwah2cwe8c8WJERLnsxghaMRiM=";
};
spirv-tools = fetchFromGitHub {
owner = "KhronosGroup";
repo = "SPIRV-Tools";
rev = "f06e0f3d2e5acfe4b14e714e4103dd1ccdb237e5";
hash = "sha256-1t27QeNqGlevMC3BtN70rnPFgUcX/a811+UaUpMWe+o=";
};
video_generator = fetchFromGitHub {
owner = "Igalia";
repo = "video_generator";
rev = "426300e12a5cc5d4676807039a1be237a2b68187";
hash = "sha256-zdYYpX3hed7i5onY7c60LnM/e6PLa3VdrhXTV9oSlvg=";
};
vulkan-docs = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Docs";
rev = "112aee75d162412a4623e7d22a3de52e0233cbf5";
hash = "sha256-6aeaQyNhI30Zr7ZrT7bgSWau24ADSrHnKyyhTjd4ELQ=";
};
vulkan-validationlayers = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-ValidationLayers";
rev = "6ae58a2b17b2bcebdc5377995007391b85ffa10f";
hash = "sha256-1Swwe7TsHinOXF1eNAdkDRzujTD/BK4HLxOVzd1tDQ8=";
};
vulkan-video-samples = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Video-Samples";
rev = "a22e0084e6f38a16dc0dcebb4c19a14651a6665b";
hash = "sha256-LXCyFS/hRN4l+z5jNwT9G3MQ05tK+xqgz8uY8qje4jw=";
};
prePatch = ''
mkdir -p external/amber external/glslang external/jsoncpp external/nvidia-video-samples external/spirv-headers external/spirv-tools external/video_generator external/vulkan-docs external/vulkan-validationlayers external/vulkan-video-samples
cp -r ${amber} external/amber/src
cp -r ${glslang} external/glslang/src
cp -r ${jsoncpp} external/jsoncpp/src
cp -r ${nvidia-video-samples} external/nvidia-video-samples/src
cp -r ${spirv-headers} external/spirv-headers/src
cp -r ${spirv-tools} external/spirv-tools/src
cp -r ${video_generator} external/video_generator/src
cp -r ${vulkan-docs} external/vulkan-docs/src
cp -r ${vulkan-validationlayers} external/vulkan-validationlayers/src
cp -r ${vulkan-video-samples} external/vulkan-video-samples/src
'';
}

View File

@@ -0,0 +1,21 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts curl jq
set -euo pipefail
rawVersion="$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -s "https://api.github.com/repos/KhronosGroup/VK-GL-CTS/releases" | jq -r 'map(select(.tag_name | startswith("vulkan-cts-"))) | .[0].tag_name')"
basedir="$(git rev-parse --show-toplevel)"
cd "$basedir"
# Strip prefix
version="$(echo "$rawVersion" | sed 's/vulkan-cts-//')"
update-source-version vulkan-cts "$version"
# Update imported sources
tmpDir="$(mktemp -d)"
trap "rm -rf $tmpDir" EXIT
curl -s "https://raw.githubusercontent.com/KhronosGroup/VK-GL-CTS/$rawVersion/external/fetch_sources.py" -o "$tmpDir/fetch_sources.py"
sed -i '/from ctsbuild.common import/d' "$tmpDir/fetch_sources.py"
cd "$(dirname "$0")"
PYTHONPATH="$tmpDir/" ./vk-cts-sources.py

View File

@@ -0,0 +1,93 @@
#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p nix-prefetch-github -p git
#nix-shell -I nixpkgs=../../../../ -i python3 -p "python3.withPackages (ps: with ps; [ nix-prefetch-github ])" -p "git"
import json
import re
import subprocess
import sys
import fetch_sources
def get_github_hash(owner, repo, revision):
result = subprocess.run(
["nix-prefetch-github", owner, repo, "--json", "--rev", revision],
check=True,
capture_output=True,
text=True,
)
j = json.loads(result.stdout)
# Remove False values
return {k: v for k, v in j.items() if v}
def main():
pkgs = fetch_sources.PACKAGES
pkgs.sort(key = lambda pkg: pkg.baseDir)
existing_sources = {}
# Fetch hashes from existing sources file
with open("sources.nix") as f:
existing_file = f.read()
source_re = re.compile("(?P<name>[^ ]+) = fetchFromGitHub[^\n]*\n"
"[^\n]+\n" # owner
"[^\n]+\n" # repo
" *rev = \"(?P<rev>[^\"]+)\";\n"
" *hash = \"(?P<hash>[^\"]+)\";\n"
)
for m in source_re.finditer(existing_file):
if m.group("hash").startswith("sha"):
print(f"Found {m.group('name')}: {m.group('rev')} -> {m.group('hash')}")
existing_sources[m.group("name")] = (m.group("rev"), m.group("hash"))
print()
# Write new sources file
with open("sources.nix", "w") as f:
f.write("# Autogenerated from vk-cts-sources.py\n")
f.write("{ fetchurl, fetchFromGitHub }:\n")
f.write("rec {");
github_re = re.compile("https://github.com/(?P<owner>[^/]+)/(?P<repo>[^/]+).git")
for pkg in pkgs:
if isinstance(pkg, fetch_sources.GitRepo):
ms = github_re.match(pkg.httpsUrl)
# Check for known hash
hash = None
if pkg.baseDir in existing_sources:
existing_src = existing_sources[pkg.baseDir]
if existing_src[0] == pkg.revision:
hash = existing_src[1]
if hash is None:
print(f"Fetching {pkg.baseDir}: {pkg.revision}")
hash = get_github_hash(ms.group("owner"), ms.group("repo"), pkg.revision)["hash"]
print(f"Got {pkg.baseDir}: {pkg.revision} -> {hash}")
f.write(f"\n {pkg.baseDir} = fetchFromGitHub {{\n");
f.write(f" owner = \"{ms.group('owner')}\";\n");
f.write(f" repo = \"{ms.group('repo')}\";\n");
f.write(f" rev = \"{pkg.revision}\";\n");
f.write(f" hash = \"{hash}\";\n");
f.write(f" }};\n");
f.write("\n prePatch = ''\n");
f.write(" mkdir -p");
for pkg in pkgs:
if isinstance(pkg, fetch_sources.GitRepo):
f.write(f" external/{pkg.baseDir}")
f.write("\n\n");
for pkg in pkgs:
if isinstance(pkg, fetch_sources.GitRepo):
f.write(f" cp -r ${{{pkg.baseDir}}} external/{pkg.baseDir}/{pkg.extractDir}\n");
f.write(" '';\n");
f.write("}\n");
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
writeText,
vulkan-headers,
vulkan-utility-libraries,
jq,
libX11,
libXrandr,
libxcb,
wayland,
}:
stdenv.mkDerivation rec {
pname = "vulkan-extension-layer";
version = "1.4.321.0";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-ExtensionLayer";
rev = "vulkan-sdk-${version}";
hash = "sha256-tWUi+yCI7wNLVeGg/h5a+yvKWAu8KZqtgEujfCUtYQ4=";
};
nativeBuildInputs = [
cmake
pkg-config
jq
];
buildInputs = [
vulkan-headers
vulkan-utility-libraries
libX11
libXrandr
libxcb
wayland
];
# Help vulkan-loader find the validation layers
setupHook = writeText "setup-hook" ''
addToSearchPath XDG_DATA_DIRS @out@/share
'';
# Tests are not for gpu-less and headless environments
cmakeFlags = [
"-DBUILD_TESTS=false"
];
# Include absolute paths to layer libraries in their associated
# layer definition json files.
preFixup = ''
for f in "$out"/share/vulkan/explicit_layer.d/*.json "$out"/share/vulkan/implicit_layer.d/*.json; do
jq <"$f" >tmp.json ".layer.library_path = \"$out/lib/\" + .layer.library_path"
mv tmp.json "$f"
done
'';
meta = with lib; {
description = "Layers providing Vulkan features when native support is unavailable";
homepage = "https://github.com/KhronosGroup/Vulkan-ExtensionLayer/";
platforms = platforms.linux;
license = licenses.asl20;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
stdenv,
cmake,
fetchFromGitHub,
libX11,
meson,
ninja,
pkg-config,
unstableGitUpdater,
vulkan-headers,
vulkan-loader,
wayland-scanner,
wayland,
}:
stdenv.mkDerivation {
pname = "vulkan-hdr-layer-kwin6";
version = "0-unstable-2025-07-31";
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
meson
ninja
pkg-config
cmake
wayland-scanner
];
buildInputs = [
vulkan-headers
vulkan-loader
libX11
wayland
];
strictDeps = true;
src = fetchFromGitHub {
owner = "Zamundaaa";
repo = "VK_hdr_layer";
rev = "303e0c69e1d33acd95158d92b1fc652fb5b85399";
hash = "sha256-NsC44Ifl/fAHvFqP7NLrVZ71Y+x5mBEkv+r43HN5yn4=";
fetchSubmodules = true;
};
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Vulkan Wayland HDR WSI Layer (Xaver Hugl's fork for KWin 6)";
homepage = "https://github.com/Zamundaaa/VK_hdr_layer";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ d4rk ];
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
}:
stdenv.mkDerivation rec {
pname = "vulkan-headers";
version = "1.4.321.0";
# Adding `ninja` here to enable Ninja backend. Otherwise on gcc-14 or
# later the build fails as:
# modules are not supported by this generator: Unix Makefiles
nativeBuildInputs = [
cmake
ninja
];
# TODO: investigate why <algorithm> isn't found
cmakeFlags = lib.optionals stdenv.hostPlatform.isDarwin [ "-DVULKAN_HEADERS_ENABLE_MODULE=OFF" ];
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Headers";
rev = "vulkan-sdk-${version}";
hash = "sha256-Yznjiiu/EEW7B37hbO0aw8Lvc6aVxOy7J/zSwmGxVc0=";
};
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Vulkan Header files and API registry";
homepage = "https://www.lunarg.com";
platforms = platforms.unix ++ platforms.windows;
license = licenses.asl20;
maintainers = [ maintainers.ralith ];
};
}

View File

@@ -0,0 +1,24 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nix-update
set -euf -o pipefail
SDK_PACKAGES=(
"vulkan-headers"
"vulkan-loader"
"vulkan-validation-layers"
"vulkan-tools"
"vulkan-tools-lunarg"
"vulkan-extension-layer"
"vulkan-utility-libraries"
"vulkan-volk"
"spirv-headers"
"spirv-cross"
"spirv-tools"
)
nix-update glslang --version-regex '(\d+\.\d+\.\d+)' --commit
for P in "${SDK_PACKAGES[@]}"; do
nix-update "$P" --version-regex "(?:vulkan-sdk-)(.*)" --commit
done

View File

@@ -0,0 +1,39 @@
{
lib,
rustPlatform,
fetchFromGitHub,
vulkan-loader,
addDriverRunpath,
}:
rustPlatform.buildRustPackage {
pname = "vulkan-helper";
version = "0-unstable-2023-12-22";
src = fetchFromGitHub {
owner = "imLinguin";
repo = "vulkan-helper-rs";
rev = "04b290c92febcfd6293fcf4730ce3bba55cd9ce0";
hash = "sha256-2pLHnTn0gJKz4gfrR6h85LHOaZPrhIGYzQeci4Dzz2E=";
};
cargoHash = "sha256-9Zc949redmYLCgDR9pabR4ZTtcvOjrXvviRdsb8AiBU=";
nativeBuildInputs = [
addDriverRunpath
];
postFixup = ''
patchelf --add-rpath ${vulkan-loader}/lib $out/bin/vulkan-helper
addDriverRunpath $out/bin/vulkan-helper
'';
meta = with lib; {
description = "Simple CLI app used to interface with basic Vulkan APIs";
homepage = "https://github.com/imLinguin/vulkan-helper-rs";
license = licenses.mit;
maintainers = with maintainers; [ aidalgol ];
platforms = platforms.linux;
mainProgram = "vulkan-helper";
};
}

View File

@@ -0,0 +1,14 @@
diff --git a/loader/vulkan.pc.in b/loader/vulkan.pc.in
index 153815577..584b15273 100644
--- a/loader/vulkan.pc.in
+++ b/loader/vulkan.pc.in
@@ -1,7 +1,5 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR_PC@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR_PC@
+libdir=@CMAKE_INSTALL_LIBDIR@
+includedir=@CMAKE_INSTALL_INCLUDEDIR@
Name: @CMAKE_PROJECT_NAME@
Description: Vulkan Loader

View File

@@ -0,0 +1,85 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
libX11,
libxcb,
libXrandr,
wayland,
moltenvk,
vulkan-headers,
addDriverRunpath,
enableX11 ? stdenv.hostPlatform.isLinux,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vulkan-loader";
version = "1.4.321.0";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Loader";
rev = "vulkan-sdk-${finalAttrs.version}";
hash = "sha256-i06il1GRkjSlhY36XpIUCcd1Wy+If+Eennzbb//1dzk=";
};
patches = [ ./fix-pkgconfig.patch ];
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
vulkan-headers
]
++ lib.optionals enableX11 [
libX11
libxcb
libXrandr
]
++ lib.optionals stdenv.hostPlatform.isLinux [
wayland
];
cmakeFlags = [
"-DCMAKE_INSTALL_INCLUDEDIR=${vulkan-headers}/include"
(lib.cmakeBool "BUILD_WSI_XCB_SUPPORT" enableX11)
(lib.cmakeBool "BUILD_WSI_XLIB_SUPPORT" enableX11)
]
++ lib.optional stdenv.hostPlatform.isDarwin "-DSYSCONFDIR=${moltenvk}/share"
++ lib.optional stdenv.hostPlatform.isLinux "-DSYSCONFDIR=${addDriverRunpath.driverLink}/share"
++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "-DUSE_GAS=OFF";
outputs = [
"out"
"dev"
];
doInstallCheck = true;
installCheckPhase = ''
grep -q "${vulkan-headers}/include" $dev/lib/pkgconfig/vulkan.pc || {
echo vulkan-headers include directory not found in pkg-config file
exit 1
}
'';
passthru = {
tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
};
meta = with lib; {
description = "LunarG Vulkan loader";
homepage = "https://www.lunarg.com";
platforms = platforms.unix ++ platforms.windows;
license = licenses.asl20;
maintainers = [ maintainers.ralith ];
broken = finalAttrs.version != vulkan-headers.version;
pkgConfigModules = [ "vulkan" ];
};
})

View File

@@ -0,0 +1,43 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
cmake,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "vulkan-memory-allocator";
version = "3.3.0";
src = fetchFromGitHub {
owner = "GPUOpen-LibrariesAndSDKs";
repo = "VulkanMemoryAllocator";
tag = "v${finalAttrs.version}";
hash = "sha256-TPEqV8uHbnyphLG0A+b2tgLDQ6K7a2dOuDHlaFPzTeE=";
};
# A compiler is only required for the samples. This lets us use stdenvNoCC.
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-warn 'LANGUAGES CXX' 'LANGUAGES NONE'
'';
nativeBuildInputs = [
cmake
];
strictDeps = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Easy to integrate Vulkan memory allocation library";
homepage = "https://gpuopen.com/vulkan-memory-allocator/";
changelog = "https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/blob/v${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fgaz ];
mainProgram = "vulkan-memory-allocator";
platforms = lib.platforms.unix ++ lib.platforms.windows;
};
})

View File

@@ -0,0 +1,100 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
python3,
jq,
expat,
jsoncpp,
libX11,
libXdmcp,
libXrandr,
libffi,
libxcb,
pkg-config,
wayland,
which,
xcbutilkeysyms,
xcbutilwm,
valijson,
vulkan-headers,
vulkan-loader,
vulkan-utility-libraries,
writeText,
qt6,
}:
stdenv.mkDerivation rec {
pname = "vulkan-tools-lunarg";
version = "1.4.321.0";
src = fetchFromGitHub {
owner = "LunarG";
repo = "VulkanTools";
rev = "vulkan-sdk-${version}";
hash = "sha256-Wd37AYfZ8Ia5kXS9Nvxyj7s+W2DPHUONtqD+tX45XGk=";
};
nativeBuildInputs = [
cmake
python3
jq
which
pkg-config
qt6.wrapQtAppsHook
];
buildInputs = [
expat
jsoncpp
libX11
libXdmcp
libXrandr
libffi
libxcb
valijson
vulkan-headers
vulkan-loader
vulkan-utility-libraries
wayland
xcbutilkeysyms
xcbutilwm
qt6.qtbase
qt6.qtwayland
];
cmakeFlags = [
"-DVULKAN_HEADERS_INSTALL_DIR=${vulkan-headers}"
];
preConfigure = ''
patchShebangs scripts/*
'';
# Include absolute paths to layer libraries in their associated
# layer definition json files.
preFixup = ''
for f in "$out"/share/vulkan/explicit_layer.d/*.json "$out"/share/vulkan/implicit_layer.d/*.json; do
jq <"$f" >tmp.json ".layer.library_path = \"$out/lib/\" + .layer.library_path"
mv tmp.json "$f"
done
'';
# Help vulkan-loader find the validation layers
setupHook = writeText "setup-hook" ''
export XDG_CONFIG_DIRS=@out@/etc''${XDG_CONFIG_DIRS:+:''${XDG_CONFIG_DIRS}}
'';
meta = with lib; {
description = "LunarG Vulkan Tools and Utilities";
longDescription = ''
Tools to aid in Vulkan development including useful layers, trace and
replay, and tests.
'';
homepage = "https://github.com/LunarG/VulkanTools";
platforms = platforms.linux;
license = licenses.asl20;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,102 @@
{
lib,
stdenv,
fetchFromGitHub,
buildPackages,
cmake,
pkg-config,
python3,
glslang,
libffi,
libX11,
libXau,
libxcb,
libXdmcp,
libXrandr,
vulkan-headers,
vulkan-loader,
vulkan-volk,
wayland,
wayland-protocols,
wayland-scanner,
moltenvk,
}:
stdenv.mkDerivation rec {
pname = "vulkan-tools";
version = "1.4.321.0";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Tools";
rev = "vulkan-sdk-${version}";
hash = "sha256-cd7aLDhXiZ4Wlnrx2dfCQG3j+9vosM3SeohhCNvVN48=";
};
patches = [ ./wayland-scanner.patch ];
nativeBuildInputs = [
cmake
pkg-config
python3
wayland-scanner
];
buildInputs = [
glslang
vulkan-headers
vulkan-loader
vulkan-volk
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
libffi
libX11
libXau
libxcb
libXdmcp
libXrandr
wayland
wayland-protocols
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
moltenvk
moltenvk.dev
];
libraryPath = lib.strings.makeLibraryPath [ vulkan-loader ];
dontPatchELF = true;
env.PKG_CONFIG_WAYLAND_SCANNER_WAYLAND_SCANNER = lib.getExe buildPackages.wayland-scanner;
cmakeFlags = [
# Temporarily disabled, see https://github.com/KhronosGroup/Vulkan-Tools/issues/1130
# FIXME: remove when fixed upstream
"-DBUILD_CUBE=OFF"
# Don't build the mock ICD as it may get used instead of other drivers, if installed
"-DBUILD_ICD=OFF"
# vulkaninfo loads libvulkan using dlopen, so we have to add it manually to RPATH
"-DCMAKE_INSTALL_RPATH=${libraryPath}"
"-DGLSLANG_INSTALL_DIR=${glslang}"
# Hide dev warnings that are useless for packaging
"-Wno-dev"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DMOLTENVK_REPO_ROOT=${moltenvk}/share/vulkan/icd.d"
# Dont build the cube demo because it requires `ibtool`, which is not available in nixpkgs.
"-DBUILD_CUBE=OFF"
];
meta = with lib; {
description = "Khronos official Vulkan Tools and Utilities";
longDescription = ''
This project provides Vulkan tools and utilities that can assist
development by enabling developers to verify their applications correct
use of the Vulkan API.
'';
homepage = "https://github.com/KhronosGroup/Vulkan-Tools";
platforms = platforms.unix;
license = licenses.asl20;
maintainers = [ maintainers.ralith ];
};
}

View File

@@ -0,0 +1,17 @@
diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt
index 4ecd3e36..17dc3f2e 100644
--- a/cube/CMakeLists.txt
+++ b/cube/CMakeLists.txt
@@ -96,9 +96,9 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD|GNU")
pkg_get_variable(WAYLAND_SCANNER_EXECUTABLE wayland-scanner wayland_scanner)
message(DEBUG "WAYLAND_SCANNER_EXECUTABLE = ${WAYLAND_SCANNER_EXECUTABLE}")
- pkg_get_variable(WAYLAND_CLIENT_PATH wayland-client pkgdatadir)
- message(DEBUG "WAYLAND_CLIENT_PATH = ${WAYLAND_CLIENT_PATH}")
- set(WAYLAND_CODE_PROTOCOL ${WAYLAND_CLIENT_PATH}/wayland.xml)
+ pkg_get_variable(WAYLAND_SCANNER_PATH wayland-scanner pkgdatadir)
+ message(DEBUG "WAYLAND_SCANNER_PATH = ${WAYLAND_SCANNER_PATH}")
+ set(WAYLAND_CODE_PROTOCOL ${WAYLAND_SCANNER_PATH}/wayland.xml)
pkg_get_variable(WAYLAND_PROTOCOLS_PATH wayland-protocols pkgdatadir)
message(DEBUG "WAYLAND_PROTOCOLS_PATH = ${WAYLAND_PROTOCOLS_PATH}")

View File

@@ -0,0 +1,34 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
python3,
vulkan-headers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vulkan-utility-libraries";
version = "1.4.321.0";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Utility-Libraries";
rev = "vulkan-sdk-${finalAttrs.version}";
hash = "sha256-MaEn0qVTnhp5kKCbyMhFXysIcAnZF+ba4+KaVD4wSPY=";
};
nativeBuildInputs = [
cmake
python3
];
buildInputs = [ vulkan-headers ];
meta = with lib; {
description = "Set of utility libraries for Vulkan";
homepage = "https://github.com/KhronosGroup/Vulkan-Utility-Libraries";
platforms = platforms.all;
license = licenses.asl20;
maintainers = with maintainers; [ nickcao ];
};
})

View File

@@ -0,0 +1,91 @@
{
lib,
callPackage,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
jq,
glslang,
libffi,
libX11,
libXau,
libxcb,
libXdmcp,
libXrandr,
spirv-headers,
spirv-tools,
vulkan-headers,
vulkan-utility-libraries,
wayland,
}:
let
robin-hood-hashing = callPackage ./robin-hood-hashing.nix { };
in
stdenv.mkDerivation rec {
pname = "vulkan-validation-layers";
version = "1.4.321.0";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-ValidationLayers";
rev = "vulkan-sdk-${version}";
hash = "sha256-aTO8AIwN6/oOcxu6AgYBoOQiUHQkT6MJGAYNgP5js9I=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
pkg-config
jq
];
buildInputs = [
glslang
robin-hood-hashing
spirv-headers
spirv-tools
vulkan-headers
vulkan-utility-libraries
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libX11
libXau
libXdmcp
libXrandr
libffi
libxcb
wayland
];
cmakeFlags = [
"-DBUILD_LAYER_SUPPORT_FILES=ON"
# Hide dev warnings that are useless for packaging
"-Wno-dev"
];
# Tests require access to vulkan-compatible GPU, which isn't
# available in Nix sandbox. Fails with VK_ERROR_INCOMPATIBLE_DRIVER.
doCheck = false;
separateDebugInfo = true;
# Include absolute paths to layer libraries in their associated
# layer definition json files.
preFixup = ''
for f in "$out"/share/vulkan/explicit_layer.d/*.json "$out"/share/vulkan/implicit_layer.d/*.json; do
jq <"$f" >tmp.json ".layer.library_path = \"$out/lib/\" + .layer.library_path"
mv tmp.json "$f"
done
'';
meta = with lib; {
description = "Official Khronos Vulkan validation layers";
homepage = "https://github.com/KhronosGroup/Vulkan-ValidationLayers";
platforms = platforms.all;
license = licenses.asl20;
maintainers = [ maintainers.ralith ];
};
}

View File

@@ -0,0 +1,34 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "robin-hood-hashing";
version = "3.11.5"; # pin
src = fetchFromGitHub {
owner = "martinus";
repo = "robin-hood-hashing";
rev = version; # pin
sha256 = "sha256-J4u9Q6cXF0SLHbomP42AAn5LSKBYeVgTooOhqxOIpuM=";
};
nativeBuildInputs = [
cmake
];
cmakeFlags = [
"-DRH_STANDALONE_PROJECT=OFF"
];
meta = with lib; {
description = "Faster, more efficient replacement for std::unordered_map / std::unordered_set";
homepage = "https://github.com/martinus/robin-hood-hashing";
platforms = platforms.unix;
license = licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
vulkan-headers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "volk";
version = "1.4.321.0";
src = fetchFromGitHub {
owner = "zeux";
repo = "volk";
rev = "vulkan-sdk-${finalAttrs.version}";
hash = "sha256-Revi0OVvLI23yh1R6mNfcUCo1DXlACLjIw+k6EZQb/U=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ vulkan-headers ];
cmakeFlags = [ "-DVOLK_INSTALL=1" ];
meta = with lib; {
description = "Meta loader for Vulkan API";
homepage = "https://github.com/zeux/volk";
platforms = platforms.all;
license = licenses.mit;
maintainers = with maintainers; [ k900 ];
};
})

View File

@@ -0,0 +1,69 @@
{
lib,
python3Packages,
fetchFromGitHub,
nix,
ronn,
}:
python3Packages.buildPythonApplication rec {
pname = "vulnix";
version = "1.12.1";
format = "setuptools";
src = fetchFromGitHub {
owner = "nix-community";
repo = "vulnix";
tag = version;
hash = "sha256-Nxhv3K/wF7AYi5kTJxL2pjiDWgWN+27wKsMXf0yaXrk=";
};
__darwinAllowLocalNetworking = true;
outputs = [
"out"
"doc"
"man"
];
nativeBuildInputs = [ ronn ];
nativeCheckInputs = with python3Packages; [
freezegun
pytestCheckHook
pytest-cov-stub
];
propagatedBuildInputs = [
nix
]
++ (with python3Packages; [
click
colorama
pyyaml
requests
setuptools
toml
zodb
]);
postBuild = "make -C doc";
enabledTestPaths = [ "src/vulnix" ];
postInstall = ''
install -D -t $doc/share/doc/vulnix README.rst CHANGES.rst
gzip $doc/share/doc/vulnix/*.rst
install -D -t $man/share/man/man1 doc/vulnix.1
install -D -t $man/share/man/man5 doc/vulnix-whitelist.5
'';
dontStrip = true;
meta = with lib; {
description = "NixOS vulnerability scanner";
mainProgram = "vulnix";
homepage = "https://github.com/nix-community/vulnix";
license = licenses.bsd3;
maintainers = with maintainers; [ henrirosten ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
buildGo124Module,
fetchFromGitHub,
}:
buildGo124Module rec {
pname = "vuls";
version = "0.35.1";
src = fetchFromGitHub {
owner = "future-architect";
repo = "vuls";
tag = "v${version}";
hash = "sha256-bgeg5y1wFYDXr2M4yNNWbgKJhtdoUZJRPxpniAXCyRU=";
fetchSubmodules = true;
};
vendorHash = "sha256-DUkF1iqofgO9o34owkvQRkV+e7fA0VmeUz1VOPMiZIs=";
ldflags = [
"-s"
"-w"
"-X=github.com/future-architect/vuls/config.Version=${version}"
"-X=github.com/future-architect/vuls/config.Revision=${src.rev}-1970-01-01T00:00:00Z"
];
postFixup = ''
mv $out/bin/cmd $out/bin/trivy-to-vuls
'';
meta = {
description = "Agent-less vulnerability scanner";
homepage = "https://github.com/future-architect/vuls";
changelog = "https://github.com/future-architect/vuls/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "vuls";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "vultr-cli";
version = "3.8.0";
src = fetchFromGitHub {
owner = "vultr";
repo = "vultr-cli";
rev = "v${version}";
hash = "sha256-6uVMy7FogacaJOtedly5kg7Gt55WSIhPLF2zGbM3LbE=";
};
vendorHash = "sha256-YPAlOC+8hxjtc4q4VQ+f0C/CpO1nGvEvuR2FOA34b08=";
nativeBuildInputs = [ installShellFiles ];
ldflags = [
"-s"
"-w"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd vultr-cli \
--bash <($out/bin/vultr-cli completion bash) \
--fish <($out/bin/vultr-cli completion fish) \
--zsh <($out/bin/vultr-cli completion zsh)
'';
meta = {
description = "Official command line tool for Vultr services";
homepage = "https://github.com/vultr/vultr-cli";
changelog = "https://github.com/vultr/vultr-cli/blob/v${version}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ Br1ght0ne ];
mainProgram = "vultr-cli";
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "vultr";
version = "2.0.3";
src = fetchFromGitHub {
owner = "JamesClonk";
repo = "vultr";
rev = "v${version}";
sha256 = "sha256-kyB6gUbc32NsSDqDy1zVT4HXn0pWxHdBOEBOSaI0Xro=";
};
vendorHash = null;
# There are not test files
doCheck = false;
meta = with lib; {
description = "CLI and API client library";
mainProgram = "vultr";
homepage = "https://jamesclonk.github.io/vultr";
changelog = "https://github.com/JamesClonk/vultr/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ zauberpony ];
};
}

View File

@@ -0,0 +1,93 @@
{
lib,
fetchFromGitHub,
git,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "vunnel";
version = "0.41.0";
pyproject = true;
src = fetchFromGitHub {
owner = "anchore";
repo = "vunnel";
tag = "v${version}";
hash = "sha256-YlyhIT8hlkFGo7xBjxa/5feiqv7H2HfA/E4+gz9cCkw=";
leaveDotGit = true;
};
pythonRelaxDeps = [
"defusedxml"
"ijson"
"importlib-metadata"
"sqlalchemy"
"websockets"
"xsdata"
];
build-system = with python3.pkgs; [
hatchling
uv-dynamic-versioning
];
dependencies =
with python3.pkgs;
[
click
colorlog
cvss
defusedxml
ijson
importlib-metadata
iso8601
lxml
mashumaro
mergedeep
oras
orjson
packageurl-python
pytest-snapshot
python-dateutil
pyyaml
requests
sqlalchemy
xsdata
xxhash
zstandard
]
++ xsdata.optional-dependencies.cli
++ xsdata.optional-dependencies.lxml
++ xsdata.optional-dependencies.soap;
nativeCheckInputs = [
git
]
++ (with python3.pkgs; [
jsonschema
pytest-mock
pytest-unordered
pytestCheckHook
]);
pythonImportsCheck = [ "vunnel" ];
disabledTests = [
# Compare output
"test_status"
# TypeError
"test_parser"
# Test require network access
"test_rhel_provider_supports_ignore_hydra_errors"
];
meta = {
description = "Tool for collecting vulnerability data from various sources";
homepage = "https://github.com/anchore/vunnel";
changelog = "https://github.com/anchore/vunnel/releases/tag/${src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "vunnel";
};
}