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,85 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
gitMinimal,
installShellFiles,
}:
buildGoModule rec {
pname = "ko";
version = "0.18.0";
src = fetchFromGitHub {
owner = "ko-build";
repo = "ko";
tag = "v${version}";
hash = "sha256-fAdogzNCuz8vHWF1UOFmDKSRXbNvY5knKIhfJzXNGzw=";
};
vendorHash = "sha256-R+vGG2u/unXffD/9Aq065zR7Xq9KEWZl4llYFxR0HLU=";
nativeBuildInputs = [ installShellFiles ];
# Pin so that we don't build the several other development tools
subPackages = ".";
env.CGO_ENABLED = 0;
ldflags = [
"-s"
"-w"
"-X github.com/google/ko/pkg/commands.Version=${version}"
];
checkFlags = [
# requires docker daemon, pulls and builds delve debugger
"-skip=(TestNewPublisherCanPublish|TestDebugger)"
];
nativeCheckInputs = [ gitMinimal ];
preCheck = ''
# Feed in all the tests for testing
# This is because subPackages above limits what is built to just what we
# want but also limits the tests
getGoDirs() {
go list ./...
}
# resolves some complaints from ko
export GOROOT="$(go env GOROOT)"
git init
# ko tests will fail if any of those env are set, as ko tries
# to make sure it can build and target multiple GOOS/GOARCH
unset GOOS GOARCH GOARM
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd ko \
--bash <($out/bin/ko completion bash) \
--fish <($out/bin/ko completion fish) \
--zsh <($out/bin/ko completion zsh)
'';
meta = {
homepage = "https://github.com/ko-build/ko";
changelog = "https://github.com/ko-build/ko/releases/tag/v${version}";
description = "Build and deploy Go applications";
mainProgram = "ko";
longDescription = ''
ko is a simple, fast container image builder for Go applications.
It's ideal for use cases where your image contains a single Go application without any/many dependencies on the OS base image (e.g. no cgo, no OS package dependencies).
ko builds images by effectively executing go build on your local machine, and as such doesn't require docker to be installed. This can make it a good fit for lightweight CI/CD use cases.
ko makes multi-platform builds easy, produces SBOMs by default, and includes support for simple YAML templating which makes it a powerful tool for Kubernetes applications.
'';
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
nickcao
jk
vdemeester
developer-guy
];
};
}

View File

@@ -0,0 +1,83 @@
--- a/enemies.h
+++ b/enemies.h
@@ -70,9 +70,9 @@
extern const enemy_kind bomb2;
extern const enemy_kind bombdeto;
extern const enemy_kind cannon;
-extern const enemy_kind pipe1;
+extern const enemy_kind pipeone;
extern const enemy_kind core;
-extern const enemy_kind pipe2;
+extern const enemy_kind pipetwo;
extern const enemy_kind rock;
extern const enemy_kind ring;
extern const enemy_kind enemy_m1;
@@ -430,7 +430,7 @@
inline int _enemy::is_pipe()
{
- return ((_state != notuse) && ((ek == &pipe1) || (ek == &pipe2)));
+ return ((_state != notuse) && ((ek == &pipeone) || (ek == &pipetwo)));
}
--- a/enemy.cpp
+++ b/enemy.cpp
@@ -713,7 +713,7 @@
void _enemy::kill_cannon()
{
- enemies.make(&pipe1, CS2PIXEL(x), CS2PIXEL(y));
+ enemies.make(&pipeone, CS2PIXEL(x), CS2PIXEL(y));
sound.g_base_node_explo(x, y);
release();
}
@@ -755,10 +755,10 @@
void _enemy::kill_core()
{
- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
+ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
+ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
+ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
+ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
enemies.make(&explosion4, CS2PIXEL(x), CS2PIXEL(y));
sound.g_base_core_explo(x, y);
release();
@@ -851,7 +851,7 @@
screen.set_map(x1, y1, m ^ a);
release();
}
-const enemy_kind pipe1 = {
+const enemy_kind pipeone = {
0,
&_enemy::make_pipe1,
&_enemy::move_pipe1,
@@ -978,19 +978,19 @@
}
p ^= a;
if(p & U_MASK)
- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
+ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
if(p & R_MASK)
- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
+ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
if(p & D_MASK)
- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
+ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
if(p & L_MASK)
- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
+ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
manage.add_score(10);
release();
}
-const enemy_kind pipe2 = {
+const enemy_kind pipetwo = {
0,
&_enemy::make_pipe2,
&_enemy::move_pipe2,

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchurl,
SDL,
SDL_image,
libGLU,
libGL,
}:
stdenv.mkDerivation rec {
pname = "kobodeluxe";
version = "0.5.1";
src = fetchurl {
url = "https://olofson.net/kobodl/download/KoboDeluxe-${version}.tar.bz2";
sha256 = "0f7b910a399d985437564af8c5d81d6dcf22b96b26b01488d72baa6a6fdb5c2c";
};
buildInputs = [
SDL
SDL_image
libGLU
libGL
];
prePatch = ''
sed -e 's/char \*tok/const char \*tok/' -i graphics/window.cpp
'';
patches = [ ./glibc29.patch ];
meta = {
homepage = "https://olofson.net/kobodl/";
description = "Enhanced version of Akira Higuchi's game XKobo for Un*x systems with X11";
mainProgram = "kobodl";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,133 @@
{
lib,
fetchFromGitHub,
stdenv,
makeWrapper,
python3Packages,
tk,
addDriverRunpath,
apple-sdk_12,
koboldLiteSupport ? true,
config,
cudaPackages ? { },
cublasSupport ? config.cudaSupport,
# You can find a full list here: https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
# For example if you're on an RTX 3060 that means you're using "Ampere" and you need to pass "sm_86"
cudaArches ? cudaPackages.flags.realArches or [ ],
clblastSupport ? stdenv.hostPlatform.isLinux,
clblast,
ocl-icd,
vulkanSupport ? true,
vulkan-loader,
shaderc,
metalSupport ? stdenv.hostPlatform.isDarwin,
nix-update-script,
}:
let
makeBool = option: bool: (if bool then "${option}=1" else "");
libraryPathWrapperArgs = lib.optionalString config.cudaSupport ''
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ addDriverRunpath.driverLink ]}"
'';
effectiveStdenv = if cublasSupport then cudaPackages.backendStdenv else stdenv;
in
effectiveStdenv.mkDerivation (finalAttrs: {
pname = "koboldcpp";
version = "1.98.1";
src = fetchFromGitHub {
owner = "LostRuins";
repo = "koboldcpp";
tag = "v${finalAttrs.version}";
hash = "sha256-CJM97DRSIq2d3X6aR096+9QwBeI4kQNzxufdSoEydco=";
};
enableParallelBuilding = true;
nativeBuildInputs = [
makeWrapper
python3Packages.wrapPython
];
pythonInputs = builtins.attrValues { inherit (python3Packages) tkinter customtkinter packaging; };
buildInputs = [
tk
]
++ finalAttrs.pythonInputs
++ lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_12 ]
++ lib.optionals cublasSupport [
cudaPackages.libcublas
cudaPackages.cuda_nvcc
cudaPackages.cuda_cudart
cudaPackages.cuda_cccl
]
++ lib.optionals clblastSupport [
clblast
ocl-icd
]
++ lib.optionals vulkanSupport [
vulkan-loader
shaderc
];
pythonPath = finalAttrs.pythonInputs;
makeFlags = [
(makeBool "LLAMA_CUBLAS" cublasSupport)
(makeBool "LLAMA_CLBLAST" clblastSupport)
(makeBool "LLAMA_VULKAN" vulkanSupport)
(makeBool "LLAMA_METAL" metalSupport)
(lib.optionals cublasSupport "CUDA_DOCKER_ARCH=${builtins.head cudaArches}")
];
installPhase = ''
runHook preInstall
mkdir -p "$out/bin"
install -Dm755 koboldcpp.py "$out/bin/koboldcpp.unwrapped"
cp *.so "$out/bin"
cp *.embd "$out/bin"
${lib.optionalString metalSupport ''
cp *.metal "$out/bin"
''}
${lib.optionalString (!koboldLiteSupport) ''
rm "$out/bin/kcpp_docs.embd"
rm "$out/bin/klite.embd"
''}
runHook postInstall
'';
postFixup = ''
wrapPythonProgramsIn "$out/bin" "$pythonPath"
makeWrapper "$out/bin/koboldcpp.unwrapped" "$out/bin/koboldcpp" \
--prefix PATH : ${lib.makeBinPath [ tk ]} ${libraryPathWrapperArgs}
'';
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/LostRuins/koboldcpp/releases/tag/v${finalAttrs.version}";
description = "Way to run various GGML and GGUF models";
homepage = "https://github.com/LostRuins/koboldcpp";
license = lib.licenses.agpl3Only;
mainProgram = "koboldcpp";
maintainers = with lib.maintainers; [
maxstrid
FlameFlag
];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,40 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation rec {
pname = "kochi-substitute-naga10";
version = "20030809";
src = fetchzip {
url = "mirror://osdn/efont/5411/kochi-substitute-${version}.tar.bz2";
stripRoot = false;
hash = "sha256-dRJAxeVGYcNjLWqJJ+9Z2FW3BHrgyGRzlgM2x5YG3AM=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/truetype
mv */kochi-gothic-subst.ttf $out/share/fonts/truetype/kochi-gothic-subst-naga10.ttf
mv */kochi-mincho-subst.ttf $out/share/fonts/truetype/kochi-mincho-subst-naga10.ttf
runHook postInstall
'';
meta = {
description = "Japanese font, non-free replacement for MS Gothic and MS Mincho";
longDescription = ''
Kochi Gothic and Kochi Mincho were developed as free replacements for the
MS Gothic and MS Mincho fonts from Microsoft. This version of the fonts
includes some non-free glyphs from the naga10 font, which stipulate that
this font may not be sold commercially. See kochi-substitute for the free
Debian version.
'';
homepage = "https://osdn.net/projects/efont/";
license = lib.licenses.unfreeRedistributable;
maintainers = [ lib.maintainers.auntie ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchurl,
dpkg,
}:
let
version = "20030809";
in
stdenv.mkDerivation {
pname = "kochi-substitute";
inherit version;
src = fetchurl {
url = "mirror://debian/pool/main/t/ttf-kochi/ttf-kochi-gothic_${version}-15_all.deb";
sha256 = "6e2311cd8e880a9328e4d3eef34a1c1f024fc87fba0dce177a0e1584a7360fea";
};
src2 = fetchurl {
url = "mirror://debian/pool/main/t/ttf-kochi/ttf-kochi-mincho_${version}-15_all.deb";
sha256 = "91ce6c993a3a0f77ed85db76f62ce18632b4c0cbd8f864676359a17ae5e6fa3c";
};
nativeBuildInputs = [ dpkg ];
unpackCmd = ''
dpkg-deb --fsys-tarfile $src | tar xf - ./usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf
dpkg-deb --fsys-tarfile $src2 | tar xf - ./usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf
'';
installPhase = ''
mkdir -p $out/share/fonts/truetype
cp ./share/fonts/truetype/kochi/kochi-gothic-subst.ttf $out/share/fonts/truetype/
cp ./share/fonts/truetype/kochi/kochi-mincho-subst.ttf $out/share/fonts/truetype/
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "10hcrf51npc1w2jsz5aiw07dgw96vs4wmsz4ai9zyaswipvf8ddy";
meta = {
description = "Japanese font, a free replacement for MS Gothic and MS Mincho";
longDescription = ''
Kochi Gothic and Kochi Mincho were developed as free replacements for the
MS Gothic and MS Mincho fonts from Microsoft. These are the Debian
versions of the fonts, which remove some non-free glyphs that were added
from the naga10 font.
'';
homepage = "https://osdn.net/projects/efont/";
license = lib.licenses.wadalab;
maintainers = [ lib.maintainers.auntie ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "kode-mono";
version = "1.206";
src = fetchzip {
url = "https://github.com/isaozler/kode-mono/releases/download/${finalAttrs.version}/kode-mono-fonts.zip";
hash = "sha256-0EZTlSqGCavSwjpKcEFv2L/bkKLE2jLyBWPSnmxQ3ww=";
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -Dm644 kode-mono-fonts/fonts/ttf/*.ttf -t $out/share/fonts/truetype/
install -Dm644 kode-mono-fonts/fonts/variable/*.ttf -t $out/share/fonts/truetype/
runHook postInstall
'';
meta = with lib; {
description = "Custom-designed typeface explicitly created for the developer community";
homepage = "https://kodemono.com/";
changelog = "https://github.com/isaozler/kode-mono/blob/main/CHANGELOG.md";
license = licenses.ofl;
maintainers = [ maintainers.isaozler ];
platforms = platforms.all;
};
})

View File

@@ -0,0 +1,115 @@
{
lib,
stdenv,
fetchurl,
makeWrapper,
autoPatchelfHook,
dpkg,
alsa-lib,
curl,
avahi,
gst_all_1,
libxcb,
libX11,
libXcursor,
libXext,
libXi,
libXinerama,
libXrandr,
libXrender,
libXxf86vm,
libglvnd,
zenity,
}:
let
runLibDeps = [
curl
avahi
libxcb
libX11
libXcursor
libXext
libXi
libXinerama
libXrandr
libXrender
libXxf86vm
libglvnd
];
runBinDeps = [
zenity
];
in
stdenv.mkDerivation rec {
pname = "kodelife";
version = "1.1.0.173";
suffix =
{
aarch64-linux = "linux-arm64";
armv7l-linux = "linux-armhf";
x86_64-linux = "linux-x64";
}
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
src = fetchurl {
url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.deb";
hash =
{
aarch64-linux = "sha256-WPUWvgVZR+2Dg4zpk+iUemMBGlGBDtaGkUGrWuF5LBs=";
armv7l-linux = "sha256-tOPqP40e0JrXg92OluMZrurWHXZavGwTkJiNN1IFVEE=";
x86_64-linux = "sha256-ZA8BlUtKaiSnXGncYwb2BbhBlULuGz7SWuXL0RAgQLI=";
}
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};
strictDeps = true;
nativeBuildInputs = [
makeWrapper
autoPatchelfHook
dpkg
];
buildInputs = [
(lib.getLib stdenv.cc.cc)
alsa-lib
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
];
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r usr/share $out/share
mkdir -p $out/bin
cp opt/kodelife/KodeLife $out/bin/KodeLife
wrapProgram $out/bin/KodeLife \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath runLibDeps} \
--prefix PATH : ${lib.makeBinPath runBinDeps}
runHook postInstall
'';
passthru.updateScript = ./update.sh;
meta = with lib; {
homepage = "https://hexler.net/kodelife";
description = "Real-time GPU shader editor";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
maintainers = with maintainers; [ prusnak ];
platforms = [
"aarch64-linux"
"armv7l-linux"
"x86_64-linux"
];
mainProgram = "KodeLife";
};
}

View File

@@ -0,0 +1,54 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nix curl libxml2 jq
set -euo pipefail
nixpkgs="$(git rev-parse --show-toplevel || (printf 'Could not find root of nixpkgs repo\nAre we running from within the nixpkgs git repo?\n' >&2; exit 1))"
attr="${UPDATE_NIX_ATTR_PATH:-kodelife}"
version="$(curl -sSL https://hexler.net/kodelife/appcast/linux | xmllint --xpath '/rss/channel/item/enclosure/@*[local-name()="version"]' - | cut -d= -f2- | tr -d '"' | head -n1)"
narhash() {
nix --extra-experimental-features nix-command store prefetch-file --json "$url" | jq -r .hash
}
nixeval() {
if [ "$#" -ge 2 ]; then
systemargs=(--argstr system "$2")
else
systemargs=()
fi
nix --extra-experimental-features nix-command eval --json --impure "${systemargs[@]}" -f "$nixpkgs" "$1" | jq -r .
}
findpath() {
path="$(nix --extra-experimental-features nix-command eval --json --impure -f "$nixpkgs" "$1.meta.position" | jq -r . | cut -d: -f1)"
outpath="$(nix --extra-experimental-features nix-command eval --json --impure --expr "fetchGit \"$nixpkgs\"")"
if [ -n "$outpath" ]; then
path="${path/$(echo "$outpath" | jq -r .)/$nixpkgs}"
fi
echo "$path"
}
oldversion="${UPDATE_NIX_OLD_VERSION:-$(nixeval "$attr".version)}"
pkgpath="$(findpath "$attr")"
if [ "$version" = "$oldversion" ]; then
echo 'update.sh: New version same as old version, nothing to do.'
exit 0
fi
sed -i -e "/version\s*=/ s|\"$oldversion\"|\"$version\"|" "$pkgpath"
for system in aarch64-linux armv7l-linux x86_64-linux; do
url="$(nixeval "$attr".src.url "$system")"
curhash="$(nixeval "$attr".src.outputHash "$system")"
newhash="$(narhash "$url")"
sed -i -e "s|\"$curhash\"|\"$newhash\"|" "$pkgpath"
done

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
curl,
bash,
jq,
youtube-dl,
zenity,
}:
stdenv.mkDerivation rec {
pname = "kodi-cli";
version = "1.1.1";
src = fetchFromGitHub {
owner = "nawar";
repo = "kodi-cli";
rev = version;
sha256 = "0f9wdq2fg8hlpk3qbjfkb3imprxkvdrhxfkcvr3dwfma0j2yfwam";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
mkdir -p $out/bin
cp -a kodi-cli $out/bin
wrapProgram $out/bin/kodi-cli --prefix PATH : ${
lib.makeBinPath [
curl
bash
]
}
cp -a playlist_to_kodi $out/bin
wrapProgram $out/bin/playlist_to_kodi --prefix PATH : ${
lib.makeBinPath [
curl
bash
zenity
jq
youtube-dl
]
}
'';
meta = with lib; {
homepage = "https://github.com/nawar/kodi-cli";
description = "Kodi/XBMC bash script to send Kodi commands using JSON RPC. It also allows sending YouTube videos to Kodi";
license = licenses.gpl2Only;
platforms = platforms.unix;
maintainers = [ maintainers.pstn ];
};
}

View File

@@ -0,0 +1,43 @@
{
stdenv,
pkgs,
lib,
runtimeShell,
cores ? [ ],
}:
let
script = exec: ''
#!${runtimeShell}
nohup sh -c "pkill -SIGTSTP kodi" &
# https://forum.kodi.tv/showthread.php?tid=185074&pid=1622750#pid1622750
nohup sh -c "sleep 10 && ${exec} '$@' -f;pkill -SIGCONT kodi"
'';
scriptSh = exec: pkgs.writeScript ("kodi-" + exec.name) (script exec.path);
execs = map (core: rec {
name = core.core;
path = core + "/bin/retroarch-" + name;
}) cores;
in
stdenv.mkDerivation {
pname = "kodi-retroarch-advanced-launchers";
version = "0.2";
dontBuild = true;
buildCommand = ''
mkdir -p $out/bin
${lib.concatMapStrings (exec: "ln -s ${scriptSh exec} $out/bin/kodi-${exec.name};") execs}
'';
meta = {
description = "Kodi retroarch advanced launchers";
longDescription = ''
These retroarch launchers are intended to be used with
advanced (emulation) launcher for Kodi since device input is
otherwise caught by both Kodi and the retroarch process.
'';
license = lib.licenses.gpl3;
};
}

View File

@@ -0,0 +1,84 @@
{
stdenv,
lib,
fetchFromGitHub,
python312Packages,
qt5,
makeWrapper,
copyDesktopItems,
makeDesktopItem,
}:
let
python3Packages = python312Packages;
in
python3Packages.buildPythonApplication rec {
pname = "kohighlights";
version = "2.3.1.0";
pyproject = false; # manual install
src = fetchFromGitHub {
owner = "noembryo";
repo = "KoHighlights";
tag = "v${version}";
hash = "sha256-JxUVv2gq/AcNbikF5ix1KjbCILW3fQ1PBKMlrJH3lsk=";
};
dontWrapPythonPrograms = true;
dontBuild = true;
buildInputs = [
qt5.qtbase
]
++ lib.optionals (stdenv.hostPlatform.isLinux) [
qt5.qtwayland
];
nativeBuildInputs = [
qt5.wrapQtAppsHook
makeWrapper
copyDesktopItems
];
dependencies = with python3Packages; [
pyside2
beautifulsoup4
packaging
requests
future
];
desktopItems = [
(makeDesktopItem {
name = "kohighlights";
desktopName = "KoHighlights";
exec = meta.mainProgram;
comment = meta.description;
categories = [ "Utility" ];
})
];
dontWrapQtApps = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/KoHighlights
rm -rf docs screens
cp -r * $out/share/KoHighlights
makeWrapper ${python3Packages.python.interpreter} $out/bin/KoHighlights \
--add-flags "$out/share/KoHighlights/main.py" \
--set PYTHONPATH "${python3Packages.makePythonPath dependencies}" \
''${qtWrapperArgs[@]}
runHook postInstall
'';
meta = {
description = "Utility for viewing and/or exporting KOReader's highlights";
homepage = "https://github.com/noembryo/KoHighlights";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dtomvan ];
mainProgram = "KoHighlights";
};
}

View File

@@ -0,0 +1,74 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
pkg-config,
perl,
udev,
openssl,
gitMinimal,
writableTmpDirAsHomeHook,
installShellFiles,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "koji";
version = "3.2.0";
src = fetchFromGitHub {
owner = "cococonscious";
repo = "koji";
tag = "v${finalAttrs.version}";
hash = "sha256-+xtq4btFbOfiyFMDHXo6riSBMhAwTLQFuE91MUHtg5Q=";
};
cargoHash = "sha256-WiFXDXLJc2ictv29UoRFRpIpAqeJlEBEOvThXhLXLJA=";
OPENSSL_NO_VENDOR = 1;
nativeBuildInputs = [
pkg-config
perl
installShellFiles
];
buildInputs = [
openssl
]
++ lib.optionals stdenv.hostPlatform.isLinux [ udev ];
nativeCheckInputs = [
gitMinimal
writableTmpDirAsHomeHook
];
preCheck = ''
git config --global user.name 'nix-user'
git config --global user.email 'nix-user@example.com'
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd koji \
--bash <($out/bin/koji completions bash) \
--fish <($out/bin/koji completions fish) \
--zsh <($out/bin/koji completions zsh)
'';
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}";
meta = {
description = "Interactive CLI for creating conventional commits";
homepage = "https://github.com/its-danny/koji";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
ByteSudoer
WeetHet
];
mainProgram = "koji";
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,111 @@
{
lib,
stdenv,
fetchFromGitHub,
pkgsHostTarget,
haskellPackages,
cmake,
makeWrapper,
}:
let
version = "3.2.2";
src = fetchFromGitHub {
owner = "koka-lang";
repo = "koka";
rev = "v${version}";
hash = "sha256-k1N085NoAlxewAhg5UDMo7IUf2A6gCTc9k5MWMbU0d0=";
fetchSubmodules = true;
};
kklib = stdenv.mkDerivation {
pname = "kklib";
inherit version;
src = "${src}/kklib";
nativeBuildInputs = [ cmake ];
outputs = [
"out"
"dev"
];
postInstall = ''
mkdir -p ''${!outputDev}/share/koka/v${version}
cp -a ../../kklib ''${!outputDev}/share/koka/v${version}
'';
};
inherit (pkgsHostTarget.targetPackages.stdenv) cc;
runtimeDeps = [
cc
cc.bintools.bintools
pkgsHostTarget.gnumake
pkgsHostTarget.cmake
];
in
haskellPackages.mkDerivation {
pname = "koka";
inherit version src;
isLibrary = false;
isExecutable = true;
buildTools = [ makeWrapper ];
libraryToolDepends = with haskellPackages; [
hpack
];
executableHaskellDepends = with haskellPackages; [
FloatingHex
aeson
array
async
base
bytestring
co-log-core
containers
directory
hashable
isocline
lens
lsp
mtl
network
network-simple
parsec
process
stm
text
text-rope
time
kklib
];
executableToolDepends = with haskellPackages; [
alex
];
postInstall = ''
mkdir -p $out/share/koka/v${version}
cp -a lib $out/share/koka/v${version}
ln -s ${kklib.dev}/share/koka/v${version}/kklib $out/share/koka/v${version}
wrapProgram "$out/bin/koka" \
--set CC "${lib.getBin cc}/bin/${cc.targetPrefix}cc" \
--prefix PATH : "${lib.makeSearchPath "bin" runtimeDeps}"
'';
doHaddock = false;
doCheck = false;
prePatch = "hpack";
description = "Koka language compiler and interpreter";
homepage = "https://github.com/koka-lang/koka";
changelog = "https://github.com/koka-lang/koka/blob/v${version}/doc/spec/news.mdk";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
siraben
sternenseemann
];
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
gitUpdater,
cmake,
python3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "kokkos";
version = "4.7.00";
src = fetchFromGitHub {
owner = "kokkos";
repo = "kokkos";
rev = finalAttrs.version;
hash = "sha256-KCGUv6SnTfKiWw0zzvKgiggANPCxSQY8bmqQT4xTMb8=";
};
nativeBuildInputs = [
cmake
python3
];
cmakeFlags = [
(lib.cmakeBool "Kokkos_ENABLE_TESTS" true)
];
postPatch = ''
patchShebangs .
'';
doCheck = true;
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "C++ Performance Portability Programming EcoSystem";
homepage = "https://github.com/kokkos/kokkos";
changelog = "https://github.com/kokkos/kokkos/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = with licenses; [
asl20
llvm-exception
];
platforms = platforms.unix;
broken = stdenv.hostPlatform.isDarwin;
};
})

View File

@@ -0,0 +1,76 @@
{
lib,
python3Packages,
fetchFromGitHub,
bashate,
}:
python3Packages.buildPythonApplication rec {
pname = "kolla";
version = "20.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "openstack";
repo = "kolla";
tag = version;
hash = "sha256-aqYEzBphzwB42Z0HmnCPQlV71dOi3yLKh+zL2dMTaB8=";
};
postPatch = ''
substituteInPlace kolla/image/kolla_worker.py \
--replace-fail "os.path.join(sys.prefix, 'share/kolla')," \
"os.path.join(PROJECT_ROOT, '../../../share/kolla'),"
sed -e 's/git_info = .*/git_info = "${version}"/' -i kolla/version.py
'';
pythonRelaxDeps = [
"hacking"
];
# fake version to make pbr.packaging happy
env.PBR_VERSION = version;
build-system = with python3Packages; [
setuptools
pbr
];
dependencies = with python3Packages; [
docker
jinja2
oslo-config
gitpython
podman
];
postInstall = ''
cp kolla/template/repos.yaml $out/${python3Packages.python.sitePackages}/kolla/template/
'';
nativeCheckInputs = with python3Packages; [
testtools
stestr
oslotest
hacking
coverage
bashate
];
# Tests output a few exceptions but still succeed
checkPhase = ''
runHook preCheck
stestr run -e <(echo "test_load_ok")
runHook postCheck
'';
meta = with lib; {
description = "Provides production-ready containers and deployment tools for operating OpenStack clouds";
mainProgram = "kolla-build";
homepage = "https://opendev.org/openstack/kolla";
license = licenses.asl20;
maintainers = [ maintainers.astro ];
teams = [ teams.openstack ];
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
openssl,
rustPlatform,
testers,
komac,
dbus,
zstd,
installShellFiles,
versionCheckHook,
nix-update-script,
bzip2,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "komac";
version = "2.13.0";
src = fetchFromGitHub {
owner = "russellbanks";
repo = "Komac";
tag = "v${finalAttrs.version}";
hash = "sha256-wOojfEEzf/NGiyL3Q8ql7t7/gM/hVfgeQmc5cvugKR4=";
};
cargoHash = "sha256-Bn2Nq/aH2Ta/3VaNQwLClv9gaz2qjo0Ko+d1XQtVdFY=";
nativeBuildInputs = [
pkg-config
]
++ lib.optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
installShellFiles
];
buildInputs = [
dbus
openssl
zstd
bzip2
];
env = {
OPENSSL_NO_VENDOR = true;
YRX_REGENERATE_MODULES_RS = "no";
ZSTD_SYS_USE_PKG_CONFIG = true;
};
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/komac";
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd komac \
--bash <($out/bin/komac complete bash) \
--zsh <($out/bin/komac complete zsh) \
--fish <($out/bin/komac complete fish)
'';
passthru = {
tests.version = testers.testVersion {
inherit (finalAttrs) version;
package = komac;
command = "komac --version";
};
updateScript = nix-update-script { };
};
meta = {
description = "Community Manifest Creator for WinGet";
homepage = "https://github.com/russellbanks/Komac";
changelog = "https://github.com/russellbanks/Komac/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
HeitorAugustoLN
];
mainProgram = "komac";
};
})

View File

@@ -0,0 +1,45 @@
{
lib,
stdenvNoCC,
fetchurl,
makeWrapper,
jdk23_headless,
libwebp, # Fixes https://github.com/gotson/komga/issues/1294
nixosTests,
}:
stdenvNoCC.mkDerivation rec {
pname = "komga";
version = "1.23.4";
src = fetchurl {
url = "https://github.com/gotson/${pname}/releases/download/${version}/${pname}-${version}.jar";
sha256 = "sha256-mFcnD6QAuc3VGpa6AhJVfXF++yCaQ7irvftew33ImUo=";
};
nativeBuildInputs = [
makeWrapper
];
buildCommand = ''
makeWrapper ${jdk23_headless}/bin/java $out/bin/komga --add-flags "-jar $src" \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libwebp ]}
'';
passthru.tests = {
komga = nixosTests.komga;
};
meta = {
description = "Free and open source comics/mangas server";
homepage = "https://komga.org/";
license = lib.licenses.mit;
platforms = jdk23_headless.meta.platforms;
maintainers = with lib.maintainers; [
tebriel
govanify
];
mainProgram = "komga";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
};
}

View File

@@ -0,0 +1,120 @@
{
stdenvNoCC,
lib,
fetchzip,
variants ? [
"display"
"hand"
"poster"
"text"
"title"
"komikahuna"
"komikandy"
"komikazba"
"komikaze"
"komikazoom"
],
}:
let
fetchFont =
{
url,
hash,
curlOptsList ? [ ],
}:
fetchzip {
inherit url hash curlOptsList;
name = lib.nameFromURL url ".";
stripRoot = false;
};
fontMap = {
"display" = {
url = "https://www.1001fonts.com/download/komika-display.zip";
hash = "sha256-6oNKuaoV+a/cFCKFXRV8gtWqvFtPGtrqg+vt8hQREMI=";
};
"hand" = {
url = "https://www.1001fonts.com/download/komika.zip";
hash = "sha256-yb5SWQj7BRCLYHL31m25bhCOuo8qAvkRzGH6UIo3Bbs=";
};
"poster" = {
url = "https://www.1001freefonts.com/d/5010/komika-poster.zip";
hash = "sha256-k1uUfHSh9kymCJrfuPtKHejFeZGl2PxL4C/3hpoPIc4=";
curlOptsList = [
"-H"
"Referer: https://www.1001freefonts.com/komika-poster.font"
];
};
"text" = {
url = "https://www.1001fonts.com/download/komika-text.zip";
hash = "sha256-FdeFGw6MlYVTiYdvbfjSlQYq+UlKZTJ79HAdEEjMPQs=";
};
"title" = {
url = "https://www.1001freefonts.com/d/5011/komika-title.zip";
hash = "sha256-M/1NgsHjLR/w/ZxWEb5cebqEI1VKgPvtk75bhAPaw20=";
curlOptsList = [
"-H"
"Referer: https://www.1001freefonts.com/komika-title.font"
];
};
"komikahuna" = {
url = "https://www.1001fonts.com/download/komikahuna.zip";
hash = "sha256-TjGxQA3ZyIOyJUNP+MVkYiSDk9WDIDPy3d2ttWC1aoc=";
};
"komikandy" = {
url = "https://www.1001fonts.com/download/komikandy.zip";
hash = "sha256-NqpR+gM2giTHGUBYoJlO8vkzOD0ep7LzAry3nIagjLY=";
};
"komikazba" = {
url = "https://www.1001fonts.com/download/komikazba.zip";
hash = "sha256-SGJMP0OdZ/AEImN5S3QshCbWSLXO4qTjHnSQYqoy3Pc=";
};
"komikaze" = {
url = "https://www.1001fonts.com/download/komikaze.zip";
hash = "sha256-daJRwgkzL5v224KwkaGMK2FqVnfin8+8WvMTvXTkCGE=";
};
"komikazoom" = {
url = "https://www.1001fonts.com/download/komikazoom.zip";
hash = "sha256-/o2QPPPiQBkNU0XRxJyI0+5CKFEv4FKU3A5ku1zyVX4=";
};
};
knownFonts = lib.attrNames fontMap;
selectedFonts =
if (variants == [ ]) then
lib.warn "No variants selected, installing all instead" knownFonts
else
let
unknown = lib.subtractLists knownFonts variants;
in
if (unknown != [ ]) then
throw "Unknown variant(s): ${lib.concatStringsSep " " unknown}"
else
variants;
in
stdenvNoCC.mkDerivation {
pname = "komika-fonts";
version = "0-unstable-2024-08-12";
sourceRoot = ".";
srcs = map (variant: fetchFont fontMap.${variant}) selectedFonts;
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/ttf
mv **/*.ttf $out/share/fonts/ttf
runHook postInstall
'';
meta = {
homepage = "https://moorstation.org/typoasis/designers/lab/index.htm";
# description from archive here: http://web.archive.org/web/20030422173903fw_/http://www.hardcovermedia.com/lab/Pages/Fontpages/komikahands.html
description = "First ever comic lettering super family";
longDescription = ''
50 fonts, covering everything the comic artist needs when it comes to lettering. 10 text faces, 10 display faces, 10 tiling faces, 10 hand variations, 9 poster faces, and 20 balloons in a font.
'';
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ pancaek ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,112 @@
{
lib,
fetchFromGitea,
desktop-file-utils,
gettext,
glib,
gobject-introspection,
blueprint-compiler,
gtk4,
libadwaita,
libnotify,
webkitgtk_6_0,
meson,
ninja,
pkg-config,
python3,
wrapGAppsHook4,
librsvg,
gnome,
webp-pixbuf-loader,
nix-update-script,
}:
python3.pkgs.buildPythonApplication rec {
pname = "komikku";
version = "1.86.0";
pyproject = false;
src = fetchFromGitea {
domain = "codeberg.org";
owner = "valos";
repo = "Komikku";
tag = "v${version}";
hash = "sha256-LIiwQVXT0RWCli9twFA+cmf/LzKK9JjbRVA2xVu/XX4=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook4
gettext
glib # for glib-compile-resources
desktop-file-utils
gobject-introspection
blueprint-compiler
];
buildInputs = [
glib
gtk4
libadwaita
libnotify
webkitgtk_6_0
];
dependencies = with python3.pkgs; [
beautifulsoup4
brotli
dateparser
emoji
keyring
lxml
modern-colorthief
natsort
piexif
pillow
curl-cffi
pygobject3
python-magic
rarfile
requests
unidecode
];
# Tests require network
doCheck = false;
# Pull in WebP support for manga pics of some servers.
# In postInstall to run before gappsWrapperArgsHook.
postInstall = ''
export GDK_PIXBUF_MODULE_FILE="${
gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
extraLoaders = [
librsvg
webp-pixbuf-loader
];
}
}"
'';
# Prevent double wrapping.
dontWrapGApps = true;
makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Manga reader for GNOME";
mainProgram = "komikku";
homepage = "https://apps.gnome.org/Komikku/";
license = lib.licenses.gpl3Plus;
changelog = "https://codeberg.org/valos/Komikku/releases/tag/v${version}";
maintainers = with lib.maintainers; [
chuangzhu
Gliczy
];
teams = [ lib.teams.gnome-circle ];
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "komodo";
version = "1.19.5";
src = fetchFromGitHub {
owner = "moghtech";
repo = "komodo";
tag = "v${version}";
hash = "sha256-dLBgdcrIp5QM2TVIa86qX7m1c5n+qOIQJtqJPGvIZ+0=";
};
cargoHash = "sha256-jf/Jp28g3inGn5jQp3cACdhl//tbXTMc1vP1K3g/CyQ=";
# disable for check. document generation is fail
# > error: doctest failed, to rerun pass `-p komodo_client --doc`
doCheck = false;
passthru.updateScript = nix-update-script { };
meta = {
description = "Tool to build and deploy software on many servers";
longDescription = ''
Komodo is a web app to provide structure for managing your servers, builds, deployments, and automated procedures.
With Komodo you can:
* Connect all of your servers, and alert on CPU usage, memory usage, and disk usage.
* Create, start, stop, and restart Docker containers on the connected servers, and view their status and logs.
* Deploy docker compose stacks. The file can be defined in UI, or in a git repo, with auto deploy on git push.
* Build application source into auto-versioned Docker images, auto built on webhook. Deploy single-use AWS instances for infinite capacity.
* Manage repositories on connected servers, which can perform automation via scripting / webhooks.
* Manage all your configuration / environment variables, with shared global variable and secret interpolation.
* Keep a record of all the actions that are performed and by whom.
Komodo is composed of a single core and any amount of connected servers running the periphery application.
'';
homepage = "https://komo.do";
changelog = "https://github.com/moghtech/komodo/releases/tag/v${version}";
mainProgram = "komodo";
maintainers = with lib.maintainers; [ r17x ];
license = lib.licenses.gpl3;
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
vala,
pkg-config,
glib,
gtk3,
libgee,
webkitgtk_4_0,
clutter-gtk,
clutter-gst,
ninja,
wrapGAppsHook3,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "komorebi";
version = "2.2.1";
src = fetchFromGitHub {
owner = "Komorebi-Fork";
repo = "komorebi";
rev = "v${finalAttrs.version}";
hash = "sha256-vER69dSxu4JuWNAADpkxHE/zjOMhQp+Fc21J+JHQ8xk=";
};
nativeBuildInputs = [
meson
vala
pkg-config
ninja
wrapGAppsHook3
];
buildInputs = [
glib
gtk3
libgee
webkitgtk_4_0
clutter-gtk
clutter-gst
];
passthru.tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
meta = with lib; {
description = "Beautiful and customizable wallpaper manager for Linux";
homepage = "https://github.com/Komorebi-Fork/komorebi";
license = licenses.gpl3Only;
maintainers = with maintainers; [ kranzes ];
platforms = platforms.linux;
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
testers,
kompose,
git,
}:
buildGoModule rec {
pname = "kompose";
version = "1.37.0";
src = fetchFromGitHub {
owner = "kubernetes";
repo = "kompose";
rev = "v${version}";
hash = "sha256-wS9YoYEsCALIJMxoVTS6EH6NiBfF+qkFIv7JALnVPgs=";
};
vendorHash = "sha256-dBVrkTpeYtTVdA/BEcBGyBdSk3po7TQQwo0ux6qPK2Q=";
nativeBuildInputs = [
installShellFiles
git
];
ldflags = [
"-s"
"-w"
];
checkFlags = [ "-short" ];
postInstall = ''
for shell in bash zsh; do
$out/bin/kompose completion $shell > kompose.$shell
installShellCompletion kompose.$shell
done
'';
passthru.tests.version = testers.testVersion {
package = kompose;
command = "kompose version";
};
meta = with lib; {
description = "Tool to help users who are familiar with docker-compose move to Kubernetes";
mainProgram = "kompose";
homepage = "https://kompose.io";
license = licenses.asl20;
maintainers = with maintainers; [
thpham
vdemeester
];
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
vulkan-headers,
vulkan-loader,
fmt,
spdlog,
glslang,
ninja,
}:
stdenv.mkDerivation rec {
pname = "kompute";
version = "0.9.0";
src = fetchFromGitHub {
owner = "KomputeProject";
repo = "kompute";
rev = "v${version}";
hash = "sha256-cf9Ef85R+VKao286+WHLgBWUqgwvuRocgeCzVJOGbdc=";
};
cmakeFlags = [
"-DKOMPUTE_OPT_USE_SPDLOG=ON"
# Doesnt work without the vendored `spdlog`, and is redundant.
"-DKOMPUTE_OPT_LOG_LEVEL_DISABLED=ON"
"-DKOMPUTE_OPT_USE_BUILT_IN_SPDLOG=OFF"
"-DKOMPUTE_OPT_USE_BUILT_IN_FMT=OFF"
"-DKOMPUTE_OPT_USE_BUILT_IN_GOOGLE_TEST=OFF"
"-DKOMPUTE_OPT_USE_BUILT_IN_PYBIND11=OFF"
"-DKOMPUTE_OPT_USE_BUILT_IN_VULKAN_HEADER=OFF"
"-DKOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK=ON"
"-DKOMPUTE_OPT_INSTALL=1"
];
patches = [
# FIXME: remove next update
(fetchpatch {
name = "vulkan-14-support.patch";
url = "https://github.com/KomputeProject/kompute/commit/299b11fb4b8a7607c5d2c27e2735f26b06ae8e29.patch";
sha256 = "sha256-JuoTQ+VjIdyF+I1IcT1ofbBjRS0Ibm2w6F2jrRJlx40=";
})
# Fix the build with fmt ≥ 11.
(fetchpatch {
url = "https://github.com/KomputeProject/kompute/commit/e7985da9950bf75f00799f73b0e1d4ea7c24f0b2.patch";
hash = "sha256-sZf1lazaGaiRzry0Y+KE6z3FKm79gVKoSFyW0GN3TMM=";
})
];
nativeBuildInputs = [
cmake
ninja
];
buildInputs = [
fmt
spdlog
];
propagatedBuildInputs = [
glslang
vulkan-headers
vulkan-loader
];
meta = with lib; {
description = "General purpose GPU compute framework built on Vulkan";
longDescription = ''
General purpose GPU compute framework built on Vulkan to
support 1000s of cross vendor graphics cards (AMD,
Qualcomm, NVIDIA & friends). Blazing fast, mobile-enabled,
asynchronous and optimized for advanced GPU data
processing usecases. Backed by the Linux Foundation"
'';
homepage = "https://kompute.cc/";
license = licenses.asl20;
maintainers = with maintainers; [ atila ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "kona";
version = "20211225";
src = fetchFromGitHub {
owner = "kevinlawler";
repo = "kona";
rev = "Win64-${version}";
sha256 = "sha256-m3a9conyKN0qHSSAG8zAb3kx8ir+7dqgxm1XGjCQcfk=";
};
makeFlags = [ "PREFIX=$(out)" ];
preInstall = ''mkdir -p "$out/bin"'';
meta = with lib; {
description = "Interpreter of K, APL-like programming language";
homepage = "https://github.com/kevinlawler/kona/";
maintainers = with maintainers; [ raskin ];
mainProgram = "k";
platforms = platforms.all;
license = licenses.isc;
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
vala,
pkg-config,
wrapGAppsHook3,
blueprint-compiler,
pantheon,
gtksourceview5,
chcase,
libadwaita,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "konbucase";
version = "4.4.0";
src = fetchFromGitHub {
owner = "ryonakano";
repo = "konbucase";
tag = finalAttrs.version;
hash = "sha256-56P2RueZSsuQth8IB73r3WYXCQ+rEyfQpGXhLAAeFlY=";
fetchSubmodules = true;
};
nativeBuildInputs = [
meson
ninja
vala
pkg-config
wrapGAppsHook3
blueprint-compiler
];
buildInputs = [
pantheon.granite7
gtksourceview5
chcase
libadwaita
];
postInstall = ''
mv $out/bin/com.github.ryonakano.konbucase $out/bin/konbucase
substituteInPlace $out/share/applications/com.github.ryonakano.konbucase.desktop \
--replace-fail "Exec=com.github.ryonakano.konbucase" "Exec=konbucase"
'';
meta = {
homepage = "https://github.com/ryonakano/konbucase";
description = "Case converting app suitable for coding or typing";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.linux;
mainProgram = "konbucase";
};
})

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
installShellFiles,
}:
rustPlatform.buildRustPackage rec {
pname = "kondo";
version = "0.8";
src = fetchFromGitHub {
owner = "tbillington";
repo = "kondo";
rev = "v${version}";
hash = "sha256-OqOmOujnyLTqwzNvLWudQi+xa5v37JTtyUXaItnpnfs=";
};
cargoHash = "sha256-jmN7mtQ3CXfyeYrYD+JBE6ppln8+VJRBzygmczo8M04=";
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd kondo \
--bash <($out/bin/kondo --completions bash) \
--fish <($out/bin/kondo --completions fish) \
--zsh <($out/bin/kondo --completions zsh)
'';
meta = with lib; {
description = "Save disk space by cleaning unneeded files from software projects";
homepage = "https://github.com/tbillington/kondo";
license = licenses.mit;
maintainers = with maintainers; [ Br1ght0ne ];
mainProgram = "kondo";
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "konf";
version = "0.7.0";
src = fetchFromGitHub {
owner = "SimonTheLeg";
repo = "konf-go";
rev = "v${version}";
hash = "sha256-GSrR2uLeGodmE1egRtvTyWhJckYUnI97n7dnmjPvu3k=";
};
vendorHash = "sha256-sB3j19HrTtaRqNcooqNy8vBvuzxxyGDa7MOtiGoVgN8=";
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "Lightweight and blazing fast kubeconfig manager which allows to use different kubeconfigs at the same time";
mainProgram = "konf-go";
homepage = "https://github.com/SimonTheLeg/konf-go";
license = licenses.asl20;
maintainers = with maintainers; [ arikgrahl ];
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
python3Packages,
fetchPypi,
}:
python3Packages.buildPythonApplication rec {
pname = "konsave";
version = "2.2.0";
format = "pyproject";
src = fetchPypi {
inherit version;
pname = "Konsave";
hash = "sha256-tWarqT2jFgCuSsa2NwMHRaR3/wj0khiRHidvRNMwM8M=";
};
build-system = with python3Packages; [
setuptools
setuptools-scm
];
dependencies = with python3Packages; [
pyyaml
setuptools # pkg_resources is imported during runtime
];
pythonImportsCheck = [ "konsave" ];
meta = with lib; {
description = "Save Linux Customization";
mainProgram = "konsave";
maintainers = with maintainers; [ MoritzBoehme ];
homepage = "https://github.com/Prayag2/konsave";
license = licenses.gpl3;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "konstraint";
version = "0.43.0";
src = fetchFromGitHub {
owner = "plexsystems";
repo = "konstraint";
rev = "v${version}";
sha256 = "sha256-PzJTdSkobcgg04C/sdHJF9IAZxK62axwkkI2393SFbg=";
};
vendorHash = "sha256-nq1bHOOSNXcANTV0g8VCjcRKUCgfoMIHFgPqnJ+V4Bw=";
# Exclude go within .github folder
excludedPackages = ".github";
nativeBuildInputs = [ installShellFiles ];
ldflags = [
"-s"
"-w"
"-X github.com/plexsystems/konstraint/internal/commands.version=${version}"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd konstraint \
--bash <($out/bin/konstraint completion bash) \
--fish <($out/bin/konstraint completion fish) \
--zsh <($out/bin/konstraint completion zsh)
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/konstraint --help
$out/bin/konstraint --version | grep "${version}"
runHook postInstallCheck
'';
meta = {
homepage = "https://github.com/plexsystems/konstraint";
changelog = "https://github.com/plexsystems/konstraint/releases/tag/v${version}";
description = "Policy management tool for interacting with Gatekeeper";
mainProgram = "konstraint";
longDescription = ''
konstraint is a CLI tool to assist with the creation and management of templates and constraints when using
Gatekeeper. Automatically copy Rego to the ConstraintTemplate. Automatically update all ConstraintTemplates with
library changes. Enable writing the same policies for Conftest and Gatekeeper.
'';
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jk ];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
buildGoModule,
fetchgit,
}:
buildGoModule {
pname = "kontemplate";
version = "1.8.0-unstable-2024-06-09";
src = fetchgit {
url = "https://code.tvl.fyi/depot.git";
hash = "sha256-Cv/y1Tj+hUKP0gi9ceS1Gml1WRYbUGSeWfJfXyX6dLA=";
rev = "b16ddb54b0327606cec2df220eaabb1328e18e3e";
};
modRoot = "ops/kontemplate";
vendorHash = "sha256-xPGVM2dq5fAVOiuodOXhDm3v3k+ncNLhlk6aCtF5S9E=";
meta = {
description = "Extremely simple Kubernetes resource templates";
mainProgram = "kontemplate";
homepage = "https://code.tvl.fyi/about/ops/kontemplate";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [
mbode
tazjin
];
platforms = lib.platforms.unix;
longDescription = ''
Kontemplate is a simple CLI tool that can take sets of
Kubernetes resource files with placeholders and insert values
per environment.
It can be used as a simple way of deploying the same set of
resources to different Kubernetes contexts with context-specific
configuration.
'';
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
rustPlatform,
fetchFromGitHub,
protobuf,
}:
rustPlatform.buildRustPackage rec {
pname = "kontroll";
version = "1.0.1";
src = fetchFromGitHub {
owner = "zsa";
repo = "kontroll";
rev = version;
hash = "sha256-k7Twbjl8umk3PeIv3ivCLdhZFgTTV8WdfIAoGAD/pEk=";
};
cargoHash = "sha256-maryIYWZdDaGe9IC+hCSNH7IhZ6r7nWlD6ws5n1U6Xo=";
nativeBuildInputs = [ protobuf ];
meta = {
description = "Demonstrates how to control the Keymapp API, making it easy to control your ZSA keyboard from the command line and scripts";
homepage = "https://github.com/zsa/kontroll";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ davsanchez ];
mainProgram = "kontroll";
};
}

View File

@@ -0,0 +1,17 @@
diff --git a/yarn.lock b/yarn.lock
index 83cf080..8bee81e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10914,9 +10914,9 @@ node-abi@^3.0.0, node-abi@^3.3.0:
semver "^7.3.5"
node-abi@^3.45.0:
- version "3.74.0"
- resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.74.0.tgz#5bfb4424264eaeb91432d2adb9da23c63a301ed0"
- integrity sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==
+ version "3.77.0"
+ resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.77.0.tgz#3ad90d5c9d45663420e5aa4ff58dbf4e3625419a"
+ integrity sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==
dependencies:
semver "^7.3.5"

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/epub+zip">
<glob pattern="*.epub"/>
<icon name="x-office-document" />
</mime-type>
<mime-type type="application/pdf">
<glob pattern="*.pdf"/>
<icon name="x-office-document" />
</mime-type>
<mime-type type="image/vnd.djvu">
<glob pattern="*.djvu"/>
<icon name="x-office-document" />
</mime-type>
<mime-type type="application/x-mobipocket-ebook">
<glob pattern="*.mobi"/>
<icon name="x-office-document" />
</mime-type>
<mime-type type="application/vnd.amazon.ebook">
<glob pattern="*.azw3"/>
<icon name="x-office-document" />
</mime-type>
<mime-type type="application/vnd.amazon.ebook">
<glob pattern="*.azw"/>
<icon name="x-office-document" />
</mime-type>
<mime-type type="application/x-cbz">
<glob pattern="*.cbz"/>
<icon name="x-office-document" />
</mime-type>
<mime-type type="application/x-cbr">
<glob pattern="*.cbr"/>
<icon name="x-office-document" />
</mime-type>
<mime-type type="application/x-cbt">
<glob pattern="*.cbt"/>
<icon name="x-office-document" />
</mime-type>
<mime-type type="application/x-cb7">
<glob pattern="*.cb7"/>
<icon name="x-office-document" />
</mime-type>
<mime-type type="application/x-fictionbook+xml">
<glob pattern="*.fb2"/>
<icon name="x-office-document" />
</mime-type>
</mime-info>

View File

@@ -0,0 +1,150 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
makeDesktopItem,
copyDesktopItems,
cctools,
makeWrapper,
nodejs,
yarnConfigHook,
yarnBuildHook,
wrapGAppsHook3,
xcbuild,
electron_37,
}:
let
electron = electron_37; # don't use latest electron to avoid going over the supported abi numbers
in
stdenv.mkDerivation (finalAttrs: {
pname = "koodo-reader";
version = "2.0.9";
src = fetchFromGitHub {
owner = "troyeguo";
repo = "koodo-reader";
tag = "v${finalAttrs.version}";
hash = "sha256-t93yRd9TrtGZogjpSy0Bse0cM5BFyMaSxFYQFZZyvPM=";
};
patches = [
./bump-node-abi.patch
];
offlineCache = fetchYarnDeps {
inherit (finalAttrs) src patches;
hash = "sha256-gRaHVWSTBwjVcswy6DVk5yLympudbDcKkvWDry4rsvI=";
};
nativeBuildInputs = [
makeWrapper
nodejs
(nodejs.python.withPackages (ps: [ ps.setuptools ]))
yarnConfigHook
yarnBuildHook
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
copyDesktopItems
wrapGAppsHook3
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
cctools
xcbuild
];
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
postBuild = ''
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
# we need to build cpu-features with the non-electron headers first
export npm_config_nodedir=${nodejs}
npm rebuild --verbose cpu-features
export npm_config_nodedir=${electron.headers}
npm run postinstall
# Explicitly set identity to null to avoid signing on darwin
yarn --offline run electron-builder --dir \
-c.mac.identity=null \
-c.electronDist=electron-dist \
-c.electronVersion=${electron.version}
'';
installPhase = ''
runHook preInstall
${lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
install -Dm644 assets/icons/256x256.png $out/share/icons/hicolor/256x256/apps/koodo-reader.png
install -Dm644 ${./mime-types.xml} $out/share/mime/packages/koodo-reader.xml
mkdir -p $out/share/lib/koodo-reader
cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/lib/koodo-reader
''}
${lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
cp -r dist/mac*/"Koodo Reader.app" $out/Applications
makeWrapper "$out/Applications/Koodo Reader.app/Contents/MacOS/Koodo Reader" $out/bin/koodo-reader
''}
runHook postInstall
'';
dontWrapGApps = true;
# we use makeShellWrapper instead of the makeBinaryWrapper provided by wrapGAppsHook for proper shell variable expansion
postFixup = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
makeShellWrapper ${lib.getExe electron} $out/bin/koodo-reader \
--add-flags $out/share/lib/koodo-reader/resources/app.asar \
"''${gappsWrapperArgs[@]}" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--set-default ELECTRON_IS_DEV 0 \
--inherit-argv0
'';
desktopItems = [
(makeDesktopItem {
name = "koodo-reader";
desktopName = "Koodo Reader";
exec = "koodo-reader %U";
icon = "koodo-reader";
comment = finalAttrs.meta.description;
categories = [ "Office" ];
mimeTypes = [
"application/epub+zip"
"application/pdf"
"image/vnd.djvu"
"application/x-mobipocket-ebook"
"application/vnd.amazon.ebook"
"application/vnd.amazon.ebook"
"application/x-cbz"
"application/x-cbr"
"application/x-cbt"
"application/x-cb7"
"application/x-fictionbook+xml"
];
startupWMClass = "Koodo Reader";
terminal = false;
})
];
meta = {
changelog = "https://github.com/troyeguo/koodo-reader/releases/tag/${finalAttrs.src.tag}";
description = "Cross-platform ebook reader";
longDescription = ''
A modern ebook manager and reader with sync and backup capacities
for Windows, macOS, Linux and Web
'';
homepage = "https://github.com/troyeguo/koodo-reader";
license = lib.licenses.agpl3Only;
mainProgram = "koodo-reader";
maintainers = with lib.maintainers; [ tomasajt ];
platforms = electron.meta.platforms;
};
})

View File

@@ -0,0 +1,41 @@
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication {
pname = "koodousfinder";
version = "0.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "teixeira0xfffff";
repo = "KoodousFinder";
# Not properly tagged, https://github.com/teixeira0xfffff/KoodousFinder/issues/7
#rev = "refs/tags/v${version}";
rev = "d9dab5572f44e5cd45c04e6fcda38956897855d1";
hash = "sha256-skCbt2lDKgSyZdHY3WImbr6CF0icrDPTIXNV1736gKk=";
};
pythonRelaxDeps = [ "keyring" ];
build-system = with python3.pkgs; [ poetry-core ];
dependencies = with python3.pkgs; [
keyring
requests
];
# Project has no tests, re-check with next release
doCheck = false;
pythonImportsCheck = [ "koodousfinder" ];
meta = with lib; {
description = "Tool to allows users to search for and analyze Android apps";
homepage = "https://github.com/teixeira0xfffff/KoodousFinder";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,78 @@
{
lib,
stdenv,
fetchFromGitHub,
appstream-glib,
cargo,
desktop-file-utils,
glib,
gst_all_1,
pipewire,
gtk4,
libadwaita,
libpulseaudio,
librsvg,
meson,
ninja,
pkg-config,
rustPlatform,
rustc,
wayland,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "kooha";
version = "2.3.0";
src = fetchFromGitHub {
owner = "SeaDve";
repo = "Kooha";
rev = "v${version}";
hash = "sha256-Z+PMSV6fipfHBrqGS24SOgGJS173Vct12sVzCGZL0IA=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-3LYoNQquYbyiEd9ZXRr4UPIcl3gultsBYWCWaCYshwQ=";
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
cargo
rustc
wrapGAppsHook4
];
buildInputs = [
glib
gst_all_1.gstreamer
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-ugly
gtk4
libadwaita
libpulseaudio
librsvg
wayland
pipewire
];
installCheckPhase = ''
$out/bin/kooha --help
'';
meta = with lib; {
description = "Elegantly record your screen";
homepage = "https://github.com/SeaDve/Kooha";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ austinbutler ];
mainProgram = "kooha";
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
kool,
}:
buildGoModule rec {
pname = "kool";
version = "3.5.2";
src = fetchFromGitHub {
owner = "kool-dev";
repo = "kool";
rev = version;
hash = "sha256-yUJbuMOLEa9LVRltskSwD0XBdmwwLcEaLYUHsSQOiCk=";
};
vendorHash = "sha256-IqUkIf0uk4iUTedTO5xRzjmJwHS+p6apo4E0WEEU6cc=";
ldflags = [
"-s"
"-w"
"-X=kool-dev/kool/commands.version=${version}"
];
passthru.tests = {
version = testers.testVersion {
package = kool;
};
};
meta = with lib; {
description = "From local development to the cloud: development workflow made easy";
mainProgram = "kool";
homepage = "https://kool.dev";
changelog = "https://github.com/kool-dev/kool/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,63 @@
diff --git a/public/utils.js b/public/utils.js
index c5963e41..30f72965 100644
--- a/public/utils.js
+++ b/public/utils.js
@@ -17,7 +17,7 @@ const osShortName = (function () {
export function iconsPath() {
if (!app.isPackaged) {
- return path.join(__dirname, "..", "resources", osShortName, "icons");
+ return path.join(__dirname, "..", "..", "icons");
}
return path.join(process.resourcesPath, "icons");
@@ -25,47 +25,14 @@ export function iconsPath() {
export function publicPath() {
if (!app.isPackaged) {
- return path.join(__dirname, "..", "public");
+ return path.join(__dirname, "..", "..", "public");
}
return process.resourcesPath;
}
export function defaultServerBinary() {
- if (!app.isPackaged) {
- return {
- mac: path.join(
- __dirname,
- "..",
- "..",
- "dist",
- "kopia_darwin_amd64",
- "kopia",
- ),
- win: path.join(
- __dirname,
- "..",
- "..",
- "dist",
- "kopia_windows_amd64",
- "kopia.exe",
- ),
- linux: path.join(
- __dirname,
- "..",
- "..",
- "dist",
- "kopia_linux_amd64",
- "kopia",
- ),
- }[osShortName];
- }
-
- return {
- mac: path.join(process.resourcesPath, "server", "kopia"),
- win: path.join(process.resourcesPath, "server", "kopia.exe"),
- linux: path.join(process.resourcesPath, "server", "kopia"),
- }[osShortName];
+ return "KOPIA";
}
export function selectByOS(x) {
return x[osShortName];

View File

@@ -0,0 +1,94 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
electron,
copyDesktopItems,
makeDesktopItem,
nix-update-script,
makeWrapper,
kopia,
}:
let
version = "0.21.1";
src = fetchFromGitHub {
owner = "kopia";
repo = "kopia";
tag = "v${version}";
hash = "sha256-0i8bKah3a7MrgzATysgFCsmDZxK9qH+4hmBMW+GR9/4=";
};
in
buildNpmPackage {
pname = "kopia-ui";
inherit version src;
sourceRoot = "${src.name}/app";
npmDepsHash = "sha256-IoPR3es5rHVOxITYCG5I3ETB/KKh5Ku8ftyR9uQH//8=";
makeCacheWritable = true;
nativeBuildInputs = [
copyDesktopItems
makeWrapper
];
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
};
patches = [ ./fix-paths.patch ];
postPatch = ''
substituteInPlace public/utils.js --replace-fail KOPIA ${lib.getExe kopia}
'';
buildPhase = ''
runHook preBuild
cp -r ${electron.dist} electron-dist
chmod -R u+w ..
npm exec electron-builder -- \
--dir \
-c.electronDist=electron-dist \
-c.electronVersion=${electron.version} \
-c.extraMetadata.version=v${version}
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/kopia
cp -r ../dist/kopia-ui/*-unpacked/{locales,resources{,.pak}} $out/share/kopia
install -Dm644 $src/icons/kopia.svg $out/share/icons/hicolor/scalable/apps/kopia.svg
makeWrapper ${lib.getExe electron} $out/bin/kopia-ui \
--prefix PATH : ${lib.makeBinPath [ kopia ]} \
--add-flags $out/share/kopia/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--inherit-argv0
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "kopia-ui";
type = "Application";
desktopName = "KopiaUI";
comment = "Fast and secure open source backup.";
icon = "kopia";
exec = "kopia-ui";
categories = [ "Utility" ];
})
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Cross-platform backup tool with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication";
mainProgram = "kopia-ui";
homepage = "https://kopia.io";
downloadPage = "https://github.com/kopia/kopia";
changelog = "https://github.com/kopia/kopia/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ blenderfreaky ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
installShellFiles,
stdenv,
testers,
kopia,
}:
buildGoModule rec {
pname = "kopia";
version = "0.21.1";
src = fetchFromGitHub {
owner = "kopia";
repo = "kopia";
tag = "v${version}";
hash = "sha256-0i8bKah3a7MrgzATysgFCsmDZxK9qH+4hmBMW+GR9/4=";
};
vendorHash = "sha256-x5WIwYvQtbR72jqdD+O4Wg+4/qs24aqNeBuron/0ztk=";
subPackages = [ "." ];
ldflags = [
"-X github.com/kopia/kopia/repo.BuildVersion=${version}"
"-X github.com/kopia/kopia/repo.BuildInfo=${src.rev}"
];
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd kopia \
--bash <($out/bin/kopia --completion-script-bash) \
--zsh <($out/bin/kopia --completion-script-zsh)
'';
passthru = {
updateScript = nix-update-script { };
tests = {
kopia-version = testers.testVersion {
package = kopia;
};
};
};
meta = {
homepage = "https://kopia.io";
changelog = "https://github.com/kopia/kopia/releases/tag/v${version}";
description = "Cross-platform backup tool with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication";
mainProgram = "kopia";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
bbigras
blenderfreaky
nadir-ishiguro
];
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
buildGoModule,
fetchFromGitHub,
writableTmpDirAsHomeHook,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "kor";
version = "0.6.4";
src = fetchFromGitHub {
owner = "yonahd";
repo = "kor";
tag = "v${finalAttrs.version}";
hash = "sha256-hGiak28gwxwYOogYyZjTgQ+aGSumxzeZiQKlbVvvrIU=";
};
vendorHash = "sha256-a7B0cJi71mqGDPbXaWYKZ2AeuuQyNDxwWNgahTN5AW8=";
nativeCheckInputs = [ writableTmpDirAsHomeHook ];
ldflags = [
"-s"
"-w"
"-X github.com/yonahd/kor/pkg/utils.Version=${finalAttrs.version}"
];
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "version";
doInstallCheck = true;
meta = {
description = "Golang Tool to discover unused Kubernetes Resources";
homepage = "https://github.com/yonahd/kor";
changelog = "https://github.com/yonahd/kor/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ivankovnatsky ];
mainProgram = "kor";
};
})

View File

@@ -0,0 +1,63 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
gtk3,
adwaita-icon-theme,
kdePackages,
hicolor-icon-theme,
gitUpdater,
}:
stdenvNoCC.mkDerivation rec {
pname = "kora-icon-theme";
version = "1.6.5";
src = fetchFromGitHub {
owner = "bikass";
repo = "kora";
tag = "v${version}";
hash = "sha256-Oralfx5MzCzkx+c+zwtFp8q83oKrNINd/PmVeugNKGo=";
};
nativeBuildInputs = [
gtk3
];
propagatedBuildInputs = [
adwaita-icon-theme
kdePackages.breeze-icons
hicolor-icon-theme
];
# breeze-icons propagates qtbase
dontWrapQtApps = true;
dontDropIconThemeCache = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
cp -a kora* $out/share/icons/
rm $out/share/icons/kora*/create-new-icon-theme.cache.sh
for theme in $out/share/icons/*; do
gtk-update-icon-cache -f $theme
done
runHook postInstall
'';
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = {
description = "SVG icon theme in four variants";
homepage = "https://github.com/bikass/kora";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ romildo ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
rustPlatform,
pkg-config,
alsa-lib,
}:
rustPlatform.buildRustPackage rec {
pname = "kord";
version = "0.6.1";
# kord depends on nightly features
RUSTC_BOOTSTRAP = 1;
src = fetchFromGitHub {
owner = "twitchax";
repo = "kord";
rev = "v${version}";
sha256 = "sha256-CeMh6yB4fGoxtGLbkQe4OMMvBM0jesyP+8JtU5kCP84=";
};
cargoHash = "sha256-DpZsi2eIhuetHnLLYGAvv871mbPfAIUevqBLaV8ljGA=";
patches = [
# Fixes build issues due to refactored Rust compiler feature annotations.
# Should be removable with the next release after v. 0.6.1.
(fetchpatch {
name = "fix-rust-features.patch";
url = "https://github.com/twitchax/kord/commit/fa9bb979b17d77f54812a915657c3121f76c5d82.patch";
hash = "sha256-XQu9P7372J2dHWzvpvbPtALS0Bh8EC+J1EyG3qlak2M=";
excludes = [ "Cargo.*" ];
})
];
nativeBuildInputs =
lib.optionals stdenv.hostPlatform.isLinux [ pkg-config ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ rustPlatform.bindgenHook ];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ alsa-lib ];
meta = with lib; {
description = "Music theory binary and library for Rust";
homepage = "https://github.com/twitchax/kord";
maintainers = with maintainers; [ kidsan ];
license = with licenses; [ mit ];
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
openssl,
curl,
libpq,
yajl,
}:
stdenv.mkDerivation rec {
pname = "kore";
version = "4.2.3";
src = fetchFromGitHub {
owner = "jorisvink";
repo = "kore";
rev = version;
sha256 = "sha256-p0M2P02xwww5EnT28VnEtj5b+/jkPW3YkJMuK79vp4k=";
};
patches = [
(fetchpatch {
url = "https://github.com/jorisvink/kore/commit/978cb0ab79c9c939c35996f34f7d835f9c671831.patch";
hash = "sha256-uHTWiliM4m2i9/6GQQfnAo31XBXd/2+fzysPeNo2dQ0=";
})
(fetchpatch {
url = "https://github.com/jorisvink/kore/commit/6122affe22bf676eed0f544e421c53699aa7a2e2.patch";
hash = "sha256-xaiUOjBJPEgEwwuseXe6VbOTkOCKdQ5tuwDdL7DojHM=";
})
];
buildInputs = [
openssl
curl
libpq
yajl
];
nativeBuildInputs = [
libpq.pg_config
];
makeFlags = [
"PREFIX=${placeholder "out"}"
"ACME=1"
"CURL=1"
"TASKS=1"
"PGSQL=1"
"JSONRPC=1"
"DEBUG=1"
];
preBuild = ''
make platform.h
'';
env.NIX_CFLAGS_COMPILE = toString (
[
"-Wno-error=deprecated-declarations"
]
++ lib.optionals stdenv.cc.isGNU [
"-Wno-error=pointer-compare"
"-Wno-error=discarded-qualifiers"
]
++ lib.optionals stdenv.cc.isClang [
"-Wno-error=incompatible-pointer-types-discards-qualifiers"
]
);
enableParallelBuilding = true;
meta = with lib; {
description = "Easy to use web application framework for C";
homepage = "https://kore.io";
license = licenses.isc;
platforms = platforms.all;
maintainers = with maintainers; [ johnmh ];
};
}

View File

@@ -0,0 +1,144 @@
{
lib,
stdenv,
fetchurl,
makeWrapper,
fetchFromGitHub,
dpkg,
glib,
gnutar,
gtk3-x11,
luajit,
sdcv,
SDL2,
openssl,
writeScript,
}:
let
luajit_lua52 = luajit.override { enable52Compat = true; };
version = "2025.08";
src_repo = fetchFromGitHub {
repo = "koreader";
owner = "koreader";
tag = "v${version}";
fetchSubmodules = true;
hash = "sha256-lkXpmvde1PPJRocnRpmuu4AeCv/0Mql40Aw5WIZfj5s=";
};
in
stdenv.mkDerivation {
pname = "koreader";
inherit version;
src =
let
selectSystem =
attrs:
attrs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
arch = selectSystem {
aarch64-linux = "arm64";
armv7l-linux = "armhf";
x86_64-linux = "amd64";
};
in
fetchurl {
url = "https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-${arch}.deb";
hash = selectSystem {
aarch64-linux = "sha256-OWhTlVEw1Sj7ZBE6/vTMwt67nP/qzBi47ZOtUZ2aBeo=";
armv7l-linux = "sha256-NOlyh+q0WAsSD8r4MH0jVfRvxBmqkxmMzUp9Jwn5u+s=";
x86_64-linux = "sha256-nzQdfc9bo0RCpa9sGH0rc7RBnR6Z0z6NIyJcYogNhCw=";
};
};
nativeBuildInputs = [
makeWrapper
dpkg
];
buildInputs = [
glib
gnutar
gtk3-x11
luajit_lua52
sdcv
SDL2
openssl
];
installPhase = ''
runHook preInstall
cp --recursive usr $out
''
# Link required binaries
+ ''
ln -sf ${luajit_lua52}/bin/luajit $out/lib/koreader/luajit
ln -sf ${sdcv}/bin/sdcv $out/lib/koreader/sdcv
ln -sf ${gnutar}/bin/tar $out/lib/koreader/tar
''
# Link SSL/network libraries
+ ''
ln -sf ${openssl.out}/lib/libcrypto.so.3 $out/lib/koreader/libs/libcrypto.so.1.1
ln -sf ${openssl.out}/lib/libssl.so.3 $out/lib/koreader/libs/libssl.so.1.1
''
# Copy fonts
+ ''
find ${src_repo}/resources/fonts -type d -execdir cp -r '{}' $out/lib/koreader/fonts \;
''
# Remove broken symlinks
+ ''
find $out -xtype l -print -delete
''
+ ''
wrapProgram $out/bin/koreader --prefix LD_LIBRARY_PATH : $out/lib/koreader/libs:${
lib.makeLibraryPath [
gtk3-x11
SDL2
glib
stdenv.cc.cc
openssl.out
]
}
runHook postInstall
'';
passthru = {
inherit src_repo;
updateScript = writeScript "update-koreader" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nix curl jq nix-update common-updater-scripts
set -eou pipefail
version=$(nix eval --raw --file . koreader.version)
nix-update koreader
latestVersion=$(nix eval --raw --file . koreader.version)
if [[ "$latestVersion" == "$version" ]]; then
exit 0
fi
update-source-version koreader $latestVersion --source-key=src_repo --ignore-same-version
systems=$(nix eval --json -f . koreader.meta.platforms | jq --raw-output '.[]')
for system in $systems; do
hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 $(nix-prefetch-url $(nix eval --raw -f . koreader.src.url --system "$system")))
update-source-version koreader $latestVersion $hash --system=$system --ignore-same-version --ignore-same-hash
done
'';
};
meta = {
homepage = "https://github.com/koreader/koreader";
changelog = "https://github.com/koreader/koreader/releases/tag/v${version}";
description = "Ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices";
mainProgram = "koreader";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
platforms = [
"aarch64-linux"
"armv7l-linux"
"x86_64-linux"
];
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [
contrun
liberodark
];
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchCrate,
rustPlatform,
installShellFiles,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "korrect";
version = "0.2.1";
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-/tFrHTZ6YHnN9OvoHBJWEnwX780DYrs0f5wV1dPyAcc=";
};
cargoHash = "sha256-bG31pqI/eB+J0FUq/lWak6Ekf+00JiCfuKZdyUkIAAw=";
passthru.updateScript = nix-update-script { };
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd ${finalAttrs.meta.mainProgram} \
--bash <($out/bin/${finalAttrs.meta.mainProgram} completions bash) \
--fish <($out/bin/${finalAttrs.meta.mainProgram} completions fish) \
--zsh <($out/bin/${finalAttrs.meta.mainProgram} completions zsh)
'';
meta = {
description = "Kubectl version managing shim that invokes the correct kubectl version";
homepage = "https://gitlab.com/cromulentbanana/korrect";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.dwt ];
mainProgram = "korrect";
};
})

View File

@@ -0,0 +1,31 @@
{
lib,
fetchFromGitHub,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation rec {
pname = "koruri";
version = "20210720";
src = fetchFromGitHub {
owner = "Koruri";
repo = "Koruri";
rev = version;
hash = "sha256-zL9UtT15mWvsXgGJqbTs6cOsQaoh/0AIAyQ5z7JpTXk=";
};
installPhase = ''
runHook preInstall
install -Dm644 *.ttf -t $out/share/fonts/koruri
runHook postInstall
'';
meta = with lib; {
description = "Japanese TrueType font obtained by mixing M+ FONTS and Open Sans";
homepage = "https://github.com/Koruri/Koruri";
license = licenses.asl20;
maintainers = with maintainers; [ haruki7049 ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
maven,
fetchFromGitHub,
makeWrapper,
jre,
}:
maven.buildMavenPackage rec {
pname = "kotlin-interactive-shell";
version = "0.5.2";
src = fetchFromGitHub {
owner = "Kotlin";
repo = "kotlin-interactive-shell";
rev = "v${version}";
hash = "sha256-3DTyo7rPswpEVzFkcprT6FD+ITGJ+qCXFKXEGoCK+oE=";
};
mvnHash = "sha256-UHtvBVw35QBwgCD+nSduR0924ANAOfwrr/a4qPEYsrM=";
mvnParameters = "compile";
nativeBuildInputs = [ makeWrapper ];
doCheck = false;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib}
cp lib/ki-shell.jar $out/lib/ki-shell.jar
makeWrapper ${lib.getExe jre} $out/bin/ki \
--add-flags "-jar $out/lib/ki-shell.jar"
runHook postInstall
'';
meta = with lib; {
description = "Kotlin Language Interactive Shell";
longDescription = ''
The shell is an extensible implementation of Kotlin REPL with a rich set of features including:
- Syntax highlight
- Type inference command
- Downloading dependencies in runtime using Maven coordinates
- List declared symbols
'';
homepage = "https://github.com/Kotlin/kotlin-interactive-shell";
license = licenses.asl20;
maintainers = [ maintainers.starsep ];
platforms = jre.meta.platforms;
mainProgram = "ki";
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchzip,
openjdk,
gradle,
makeWrapper,
maven,
}:
stdenv.mkDerivation rec {
pname = "kotlin-language-server";
version = "1.3.13";
src = fetchzip {
url = "https://github.com/fwcd/kotlin-language-server/releases/download/${version}/server.zip";
hash = "sha256-ypiOeXA+14Js31WPGJAdSjskQJR9sBPVWGecLkKHiN4=";
};
dontBuild = true;
installPhase = ''
mkdir -p $out/lib
mkdir -p $out/bin
cp -r lib/* $out/lib
cp -r bin/* $out/bin
'';
nativeBuildInputs = [
gradle
makeWrapper
];
buildInputs = [
openjdk
gradle
];
postFixup = ''
wrapProgram "$out/bin/kotlin-language-server" --set JAVA_HOME ${openjdk} --prefix PATH : ${
lib.strings.makeBinPath [
openjdk
maven
]
}
'';
meta = {
description = "Kotlin language server";
longDescription = ''
About Kotlin code completion, linting and more for any editor/IDE
using the Language Server Protocol Topics'';
maintainers = with lib.maintainers; [ vtuan10 ];
homepage = "https://github.com/fwcd/kotlin-language-server";
changelog = "https://github.com/fwcd/kotlin-language-server/blob/${version}/CHANGELOG.md";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
mainProgram = "kotlin-language-server";
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "koto-ls";
version = "0.16.1";
src = fetchFromGitHub {
owner = "koto-lang";
repo = "koto-ls";
tag = "v${finalAttrs.version}";
hash = "sha256-k3XzVfuObA+PyE45arZvp1aER/6uDOyMzs937K8VECQ=";
};
cargoHash = "sha256-4mHl9Pds2B4Htkpm425LBHADaR2E2VwvhYC1FwDu304=";
passthru.updateScript = nix-update-script { };
meta = {
description = "Language server for Koto";
homepage = "https://github.com/koto-lang/koto-ls";
changelog = "https://github.com/koto-lang/koto-ls/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ defelo ];
mainProgram = "koto-ls";
};
})

View File

@@ -0,0 +1,47 @@
{
lib,
rustPlatform,
fetchFromGitHub,
yq,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "koto";
version = "0.16.0";
src = fetchFromGitHub {
owner = "koto-lang";
repo = "koto";
tag = "v${finalAttrs.version}";
hash = "sha256-KdwKJ0ZKKHU+Fe/TTIITHOyRH9uoJ3LU3qXqUwpJI6g=";
};
cargoHash = "sha256-5uWCpTnGbqoogOxSD2GcXMjQpoYIp1GfB9k4bd+Easc=";
postPatch = ''
tomlq -ti 'del(.bench)' crates/koto/Cargo.toml
'';
nativeBuildInputs = [
yq # for `tomlq`
];
cargoBuildFlags = [ "--package=koto_cli" ];
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Simple, expressive, embeddable programming language";
homepage = "https://github.com/koto-lang/koto";
changelog = "https://github.com/koto-lang/koto/blob/v${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ defelo ];
mainProgram = "koto";
};
})

View File

@@ -0,0 +1,90 @@
{
stdenv,
lib,
fetchurl,
fetchzip,
copyDesktopItems,
gccmakedep,
imake,
installShellFiles,
libX11,
libXext,
makeDesktopItem,
}:
let
debian-extras = fetchzip {
url = "mirror://debian/pool/main/k/koules/koules_1.4-27.debian.tar.xz";
hash = "sha256-g0Z6C1YSZL6N2eYUuZgXkPDoOLc4e9jAFL3ivk3OAS8=";
};
in
stdenv.mkDerivation rec {
pname = "koules";
version = "1.4";
src = fetchurl {
url = "https://www.ucw.cz/~hubicka/koules/packages/${pname}${version}-src.tar.gz";
hash = "sha256-w2+T/q/uvVmYO/RBACQOZ6hKi6yr1+5SjJMEbe/kohs=";
};
nativeBuildInputs = [
imake
gccmakedep
installShellFiles
copyDesktopItems
];
buildInputs = [
libX11
libXext
];
# Debian maintains lots of patches for koules. Let's include all of them.
prePatch = ''
patches="$patches $(cat ${debian-extras}/patches/series | sed 's|^|${debian-extras}/patches/|')"
'';
postPatch = ''
# We do not want to depend on that particular font to be available in the
# xserver, hence substitute it by a font which is always available
sed -i -e 's:-schumacher-clean-bold-r-normal--8-80-75-75-c-80-\*iso\*:fixed:' xlib/init.c
'';
preBuild = ''
cp xkoules.6 xkoules.man # else "make" will not succeed
sed -i -e "s:^SOUNDDIR\s*=.*:SOUNDDIR=$out/lib:" Makefile
sed -i -e "s:^KOULESDIR\s*=.*:KOULESDIR=$out:" Makefile
'';
installPhase = ''
runHook preInstall
install -Dm755 xkoules $out/bin/xkoules
install -Dm755 koules.sndsrv.linux $out/lib/koules.sndsrv.linux
install -m644 sounds/* $out/lib/
install -Dm644 Koules.xpm $out/share/pixmaps/koules.xpm
installManPage xkoules.6
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
desktopName = "Koules";
name = "koules";
exec = "xkoules";
icon = "koules";
comment = "Push your enemies away, but stay away from obstacles";
categories = [
"Game"
"ArcadeGame"
];
})
];
meta = with lib; {
homepage = "https://www.ucw.cz/~hubicka/koules/English/";
description = "Fast arcade game based on the fundamental law of body attraction";
mainProgram = "xkoules";
license = licenses.gpl2Plus;
maintainers = [ maintainers.iblech ];
platforms = platforms.linux;
};
}